From 99ff46a4f9794aa10ea685fe571f9007010f32a9 Mon Sep 17 00:00:00 2001 From: Eduardo Abreu Date: Tue, 28 Feb 2023 12:08:07 +0000 Subject: [PATCH 01/39] Migrate to .NET 6 and change installer to Inno Setup --- .gitlab-ci.yml | 119 +- BUILD.md | 2 +- BuildDependencies.bat | 36 +- ProtonVPN.InstallActions.sln | 14 +- ProtonVPN.InstallActions.sln.DotSettings | 3 + .../ProtonVPN.RestoreInternet.csproj | 62 +- ProtonVpn.sln | 400 +- README.md | 13 +- Setup/.gitignore | 8 +- Setup/CodeDependencies.iss | 269 + Setup/NetCoreCheckCA.dll | Bin 0 -> 146848 bytes Setup/NetCoreCheck_x64.exe | Bin 0 -> 146384 bytes Setup/ProtonVPN.aip | 1057 -- Setup/ProtonVPNTap.aip | 337 - Setup/ProtonVPNTun.aip | 299 - .../win7 => }/ProtonVPN.CalloutDriver.inf | 2 +- .../win10 => }/ProtonVPN.CalloutDriver.sys | Bin .../win10 => }/protonvpn.calloutdriver.cat | Bin .../x64/win10/ProtonVPN.CalloutDriver.inf | 55 - .../x64/win7/ProtonVPN.CalloutDriver.sys | Bin 25824 -> 0 bytes .../x64/win7/protonvpn.calloutdriver.cat | Bin 10816 -> 0 bytes .../x86/win10/ProtonVPN.CalloutDriver.inf | 55 - .../x86/win10/ProtonVPN.CalloutDriver.sys | Bin 31104 -> 0 bytes .../x86/win10/protonvpn.calloutdriver.cat | Bin 20122 -> 0 bytes .../x86/win7/ProtonVPN.CalloutDriver.inf | 55 - .../x86/win7/ProtonVPN.CalloutDriver.sys | Bin 22744 -> 0 bytes .../x86/win7/protonvpn.calloutdriver.cat | Bin 10816 -> 0 bytes Setup/check-KB2921916.bat | 7 - Setup/check-KB2992611.bat | 7 - Setup/check-KB3033929.bat | 7 - Setup/check-KB3063858.bat | 7 - Setup/setup.iss | 499 + .../windows10/x64 => Setup/tap}/OemVista.inf | 0 .../x64 => Setup/tap}/tapinstall.exe | Bin .../x64 => Setup/tap}/tapprotonvpn.Sys | Bin .../x64 => Setup/tap}/tapprotonvpn.cat | Bin Setup/tun/wintun.dll | Bin 1401096 -> 427552 bytes .../CSharp/Code/1033/Class/Class.cs | 1 + .../CSharp/Code/1033/Interface/Interface.cs | 1 + .../CSharp/Code/1033/WebClass/Class.cs | 1 + .../prepare-installer-tests.ps1 | 2 +- ci/TestRun/converter-nunit-junit.ps1 | 2 +- ci/TestRun/test-run-settings.xml | 3 +- ci/install-the-app.ps1 | 4 +- ci/installer.py | 27 +- ci/launch-installer-UI.ps1 | 2 +- ci/launch-installer.ps1 | 2 +- ci/main.py | 25 +- ci/prepare-internal-beta.py | 4 +- ci/slack.py | 2 +- ci/uninstall-app.ps1 | 18 +- ci/updater.ps1 | 2 +- .../ProtonVPN.Announcements.Contracts.csproj | 58 +- .../ProtonVPN.Announcements.Installers.csproj | 56 +- .../ProtonVPN.Announcements.Tests.csproj | 84 +- .../ProtonVPN.Announcements.csproj | 72 +- .../ProtonVPN.Api.Contracts.csproj | 124 +- .../ProtonVPN.Api.Installers.csproj | 56 +- ...pleteHttpMessageHandlerStackBuilderTest.cs | 12 +- .../HttpMessageHandlerStackBuilderTest.cs | 12 +- ...tHandler.cs => MockOfHttpClientHandler.cs} | 2 +- .../ProtonVPN.Api.Tests.csproj | 133 +- src/Api/ProtonVPN.Api/BaseApiClient.cs | 12 +- .../Handlers/HumanVerificationHandler.cs | 2 +- .../Handlers/TlsPinning/CertificateHandler.cs | 3 +- src/Api/ProtonVPN.Api/ProtonVPN.Api.csproj | 151 +- .../ProtonVPN.Dns.Contracts.csproj | 67 +- .../ProtonVPN.Dns.Installers.csproj | 64 +- .../Mocks/MockOfHttpClientFactory.cs | 2 +- .../ProtonVPN.Dns.Tests.csproj | 93 +- src/Dns/ProtonVPN.Dns/ProtonVPN.Dns.csproj | 93 +- .../Resolvers/DnsOverHttpsResolverBase.cs | 8 +- .../IEntityMapper.cs | 32 + .../IMapper.cs | 31 + .../ProtonVPN.EntityMapping.Contracts.csproj | 17 + .../EntityMappingModule.cs} | 13 +- .../ProtonVPN.EntityMapping.Installers.csproj | 25 + .../EntityMapperTest.cs | 228 + .../Mocks/MockOfEntityA.cs} | 8 +- .../Mocks/MockOfEntityB.cs} | 6 +- .../Mocks/MockOfEntityMapper.cs | 36 + .../Mocks/MockOfEnumA.cs | 28 + .../Mocks/MockOfEnumB.cs | 28 + .../Mocks/MockOfEnumMapper.cs} | 17 +- .../ProtonVPN.EntityMapping.Tests.csproj | 27 + .../ProtonVPN.EntityMapping/EntityMapper.cs | 87 + .../ProtonVPN.EntityMapping.csproj | 22 + src/GlobalAssemblyInfo.cs | 8 +- .../IHumanVerifier.cs | 4 +- ...otonVPN.HumanVerification.Contracts.csproj | 60 +- .../ProtonVPN.HumanVerification.Gui.csproj | 98 +- .../WebView.xaml | 5 +- ...tonVPN.HumanVerification.Installers.csproj | 69 +- .../ProtonVPN.HumanVerification.csproj | 83 +- .../AppProcessCommunicationModule.cs | 33 + ...ProcessCommunication.App.Installers.csproj | 24 + .../AppGrpcClientTest.cs | 201 + .../GrpcServerTest.cs | 56 + ...nVPN.ProcessCommunication.App.Tests.csproj | 28 + .../AppGrpcClient.cs | 130 + .../GrpcServer.cs | 43 + .../ProtonVPN.ProcessCommunication.App.csproj | 24 + .../Channels/GrpcChannelWrapperFactoryTest.cs | 69 + .../GrpcServerTestBase.cs | 100 + .../ParallelTestRunner.cs} | 25 +- ...N.ProcessCommunication.Common.Tests.csproj | 29 + .../ServiceServerPortRegisterTest.cs | 163 + .../Channels/GrpcChannelWrapper.cs | 47 + .../Channels/GrpcChannelWrapperFactory.cs | 51 + .../Channels/IGrpcChannelWrapper.cs | 29 + .../Channels/IGrpcChannelWrapperFactory.cs} | 6 +- .../GrpcClientBase.cs | 76 + .../GrpcServerBase.cs | 73 + ...otonVPN.ProcessCommunication.Common.csproj | 24 + .../Registration/ServiceServerPortRegister.cs | 158 + .../Controllers/IAppController.cs} | 24 +- .../Controllers/IServiceController.cs | 42 + .../Entities/Auth/AuthCertificateIpcEntity.cs | 29 + .../Communication/StateConsumerIpcEntity.cs | 29 + .../Crypto/AsymmetricKeyPairIpcEntity.cs} | 21 +- .../Entities/Crypto/KeyAlgorithmIpcEntity.cs} | 5 +- .../Entities/Crypto/KeyIpcEntity.cs} | 49 +- .../Entities/Crypto/PublicKeyIpcEntity.cs} | 15 +- .../Entities/Crypto/SecretKeyIpcEntity.cs} | 16 +- .../Crypto/ServerPublicKeyIpcEntity.cs} | 21 +- .../PortForwardingStateIpcEntity.cs} | 18 +- .../PortMappingStatusIpcEntity.cs} | 5 +- .../TemporaryMappedPortIpcEntity.cs} | 14 +- .../Settings/MainSettingsIpcEntity.cs} | 34 +- .../Settings/SplitTunnelSettingsIpcEntity.cs | 42 + .../Vpn/ConnectionDetailsIpcEntity.cs} | 10 +- .../Vpn/ConnectionRequestIpcEntity.cs | 50 + .../Vpn/DisconnectionRequestIpcEntity.cs} | 25 +- .../Entities/Vpn/KillSwitchModeIpcEntity.cs} | 19 +- .../Entities/Vpn/OpenVpnAdapterIpcEntity.cs} | 15 +- .../Entities/Vpn/SplitTunnelModeIpcEntity.cs | 35 + .../Entities/Vpn/TrafficBytesIpcEntity.cs | 32 + .../Entities/Vpn/VpnConfigIpcEntity.cs | 67 + .../Entities/Vpn/VpnCredentialsIpcEntity.cs} | 28 +- .../Entities/Vpn/VpnErrorTypeIpcEntity.cs} | 24 +- .../Entities/Vpn/VpnProtocolIpcEntity.cs} | 5 +- .../Entities/Vpn/VpnServerIpcEntity.cs} | 33 +- .../Entities/Vpn/VpnStateIpcEntity.cs | 47 + .../Entities/Vpn/VpnStatusIpcEntity.cs} | 5 +- .../IAppGrpcClient.cs | 31 + .../IGrpcServer.cs} | 15 +- .../IServiceGrpcClient.cs | 31 + ...nVPN.ProcessCommunication.Contracts.csproj | 24 + .../IServiceServerPortRegister.cs | 29 + .../Common/EnumMapperTestBase.cs | 97 + .../Crypto/AsymmetricKeyPairMapperTest.cs | 136 + .../Crypto/KeyMapperTestBase.cs | 162 + .../Crypto/PublicKeyMapperTest.cs | 46 + .../Crypto/SecretKeyMapperTest.cs | 46 + .../Crypto/ServerPublicKeyMapperTest.cs | 46 + .../PortForwardingStateMapperTest.cs | 124 + .../PortMappingStatusMapperTest.cs | 37 + .../TemporaryMappedPortMapperTest.cs | 122 + ...ssCommunication.EntityMapping.Tests.csproj | 27 + .../Vpn/ConnectionDetailsMapperTest.cs | 100 + .../Vpn/ConnectionRequestMapperTest.cs | 155 + .../Vpn/KillSwitchModeMapperTest.cs | 37 + .../Vpn/OpenVpnAdapterMapperTest.cs | 37 + .../Vpn/SplitTunnelModeMapperTest.cs | 37 + .../Vpn/TrafficBytesMapperTest.cs | 96 + .../Vpn/VpnConfigMapperTest.cs | 215 + .../Vpn/VpnCredentialsMapperTest.cs | 138 + .../Vpn/VpnErrorTypeMapperTest.cs | 37 + .../Vpn/VpnProtocolMapperTest.cs} | 25 +- .../Vpn/VpnServerMapperTest.cs | 116 + .../Vpn/VpnStateChangedEventArgsMapperTest.cs | 199 + .../Vpn/VpnStatusMapperTest.cs | 37 + .../Crypto/AsymmetricKeyPairMapper.cs | 59 + .../Crypto/KeyMapperBase.cs} | 25 +- .../Crypto/PublicKeyMapper.cs | 44 + .../Crypto/SecretKeyMapper.cs | 44 + .../Crypto/ServerPublicKeyMapper.cs | 45 + .../PortForwardingStateMapper.cs | 59 + .../PortMappingStatusMapper.cs} | 24 +- .../TemporaryMappedPortMapper.cs | 53 + ....ProcessCommunication.EntityMapping.csproj | 23 + .../Vpn/ConnectionDetailsMapper.cs | 52 + .../Vpn/ConnectionRequestMapper.cs | 61 + .../Vpn/KillSwitchModeMapper.cs | 50 + .../Vpn/OpenVpnAdapterMapper.cs | 48 + .../Vpn/SplitTunnelModeMapper.cs | 50 + .../Vpn/TrafficBytesMapper.cs | 40 + .../Vpn/VpnConfigMapper.cs | 92 + .../Vpn/VpnCredentialsMapper.cs | 58 + .../Vpn/VpnErrorTypeMapper.cs | 38 + .../Vpn/VpnProtocolMapper.cs | 52 + .../Vpn/VpnServerMapper.cs | 60 + .../Vpn/VpnStateChangedEventArgsMapper.cs | 68 + .../Vpn/VpnStatusMapper.cs | 38 + .../ProcessCommunicationModule.cs | 40 + ...VPN.ProcessCommunication.Installers.csproj | 24 + ...essCommunication.Service.Installers.csproj | 24 + .../ServiceProcessCommunicationModule.cs} | 23 +- .../GrpcServerTest.cs | 74 + ....ProcessCommunication.Service.Tests.csproj | 28 + .../ServiceGrpcClientTest.cs | 130 + .../GrpcServer.cs | 69 + ...tonVPN.ProcessCommunication.Service.csproj | 24 + .../ServiceGrpcClient.cs | 67 + .../About/AboutModalViewModel.cs | 10 +- .../About/LicenseModalView.xaml.cs | 41 +- .../About/LicenseModalViewModel.cs | 23 +- src/ProtonVPN.App/About/UpdateViewModel.cs | 26 +- .../Account/AccountModalViewModel.cs | 9 +- src/ProtonVPN.App/Account/VpnInfoUpdater.cs | 12 +- src/ProtonVPN.App/App.config | 18 +- src/ProtonVPN.App/App.xaml | 4 +- src/ProtonVPN.App/App.xaml.cs | 56 +- .../BugReporting/ReportBugModalViewModel.cs | 13 +- .../BugReporting/Screens/FailureViewModel.cs | 8 +- .../BugReporting/Screens/SentViewModel.cs | 4 +- .../Steps/CategorySelectionViewModel.cs | 4 +- .../BugReporting/Steps/FormView.xaml | 1 + .../BugReporting/Steps/FormViewModel.cs | 77 +- .../BugReporting/Steps/SolutionsViewModel.cs | 11 +- .../Steps/StepsContainerViewModel.cs | 10 +- .../ConnectingScreen/Connecting.xaml | 2 +- .../ConnectingScreen/ConnectingViewModel.cs | 2 +- src/ProtonVPN.App/Core/AppExitHandler.cs | 13 +- .../{ShutdownInvoker.cs => AppExitInvoker.cs} | 0 src/ProtonVPN.App/Core/Bootstraper.cs | 81 +- src/ProtonVPN.App/Core/Ioc/AppModule.cs | 9 +- src/ProtonVPN.App/Core/Ioc/CoreModule.cs | 5 - .../MVVM/Converters/BytesToSizeConverter.cs | 2 +- .../Core/Service/IMonitoredVpnService.cs | 36 + .../Core/Service/MonitoredVpnService.cs | 12 +- .../Core/Service/SafeServiceAction.cs | 9 +- .../Core/Service/ServiceEnabler.cs | 5 +- .../Settings/ISettingsServiceClientManager.cs | 21 +- ...actProvider.cs => MainSettingsProvider.cs} | 34 +- .../Settings/SettingsServiceClientManager.cs | 60 +- .../Core/Service/Vpn/AppController.cs | 78 + .../Core/Service/Vpn/VpnConnectionSpeed.cs | 19 +- .../Core/Service/Vpn/VpnConnector.cs | 2 +- .../Core/Service/Vpn/VpnEvents.cs | 63 - .../Core/Service/Vpn/VpnReconnector.cs | 14 +- .../Core/Service/Vpn/VpnService.cs | 144 +- .../Service/Vpn/VpnServiceActionDecorator.cs | 14 +- .../Core/Service/Vpn/VpnServiceManager.cs | 242 +- .../Core/SingleInstanceApplication.cs | 74 +- src/ProtonVPN.App/Core/SystemTimeValidator.cs | 2 +- .../Core/Wpf/Behavior/AnimateBehaviour.cs | 2 +- .../Behavior/TextBlockAutoToolTipBehavior.cs | 2 +- .../FlashNotificationViewModel.cs | 6 +- .../InsecureWifiNotificationViewModel.cs | 2 +- .../HumanVerification/HumanVerifier.cs | 5 +- .../Login/ViewModels/LoginViewModel.cs | 37 +- .../ViewModels/Pins/AbstractPinViewModel.cs | 2 +- .../ViewModels/Pins/ExitNodePinViewModel.cs | 2 +- src/ProtonVPN.App/Map/Views/Map.xaml | 5 +- src/ProtonVPN.App/Map/Views/Pin.xaml | 5 +- .../Map/Views/SecureCorePin.xaml | 5 +- .../ActionableFailureApiResultEventHandler.cs | 4 +- .../ApiActions/ApiActionModalViewModel.cs | 2 +- .../AssignVpnConnectionsModalViewModel.cs | 2 +- .../Modals/BaseModalViewModel.cs | 27 +- .../Modals/BfeWarningModalViewModel.cs | 2 +- src/ProtonVPN.App/Modals/Dialogs/Dialogs.cs | 23 +- .../Modals/Dialogs/QuestionModalViewModel.cs | 2 +- .../Modals/DisabledServiceModalViewModel.cs | 2 +- .../Modals/DisconnectErrorModalViewModel.cs | 6 +- .../DiscourageSecureCoreModalViewModel.cs | 7 +- .../Modals/ExitModalViewModel.cs | 13 +- .../IncorrectSystemTimeModalViewModel.cs | 2 +- .../KillSwitchConfirmationModalViewModel.cs | 2 +- src/ProtonVPN.App/Modals/Modals.cs | 13 +- .../Modals/OutdatedAppModalViewModel.cs | 5 +- ...ortForwardingConfirmationModalViewModel.cs | 2 +- .../EnableSmartProtocolModalViewModel.cs | 2 +- .../Modals/RebootModalViewModel.cs | 62 - .../MaximumDeviceLimitModalViewModel.cs | 2 +- .../Modals/TroubleshootModalViewModel.cs | 2 +- .../Modals/TunInUseModalViewModel.cs | 2 +- .../Upsell/ModerateNatUpsellModalViewModel.cs | 2 +- .../NonStandardPortsUpsellModalViewModel.cs | 2 +- .../PortForwardingUpsellModalViewModel.cs | 2 +- .../Upsell/SecureCoreUpsellModalViewModel.cs | 2 +- .../Modals/Welcome/WelcomeModalManager.cs | 8 +- .../Modals/Welcome/WelcomeModalViewModel.cs | 2 +- ...ml => WireGuardAdapterInUseModalView.xaml} | 36 +- ...=> WireGuardAdapterInUseModalView.xaml.cs} | 6 +- .../WireGuardAdapterInUseModalViewModel.cs} | 5 +- .../Notifications/InsecureWifiNotification.cs | 4 +- .../NotificationUserActionHandler.cs | 84 - .../Notifications/OutdatedAppNotification.cs | 2 +- .../Notifications/SystemNotification.cs | 2 +- .../Notifications/SystemProxyNotification.cs | 6 +- .../Notifications/UpdateNotification.cs | 4 +- .../Onboarding/OnboardingViewModel.cs | 2 +- src/ProtonVPN.App/P2PDetection/P2PDetector.cs | 6 +- .../PortForwardingActivePortView.xaml | 3 +- .../PortForwardingActivePortViewModel.cs | 2 +- .../PortForwarding/PortForwardingManager.cs | 4 +- .../Profiles/Form/AbstractForm.cs | 17 +- .../BaseCountryServerProfileFormViewModel.cs | 6 +- .../Profiles/ProfileFormModalViewModel.cs | 66 +- .../Profiles/ProfileListModalViewModel.cs | 63 +- .../Profiles/ProfileSyncViewModel.cs | 2 +- .../Properties/Settings.Designer.cs | 4 +- .../Properties/Settings.settings | 786 +- src/ProtonVPN.App/ProtonVPN.App.csproj | 1486 +- .../QuickLaunch/QuickLaunchViewModel.cs | 5 +- .../Resources/Assets/Styles/Tooltip.xaml | 5 +- .../PortForwardingWarningViewModel.cs | 2 +- .../Settings/SettingsModalViewModel.cs | 23 +- .../SplitTunneling/SplitTunnelingViewModel.cs | 2 +- src/ProtonVPN.App/Settings/Style.xaml | 2 +- .../Announcements/AnnouncementsViewModel.cs | 2 +- .../Sidebar/ConnectionStatusViewModel.cs | 22 +- src/ProtonVPN.App/Sidebar/Countries.xaml | 2 +- .../QuickSettings/QuickSettingsViewModel.cs | 18 +- .../Sidebar/SidebarProfilesViewModel.cs | 10 +- .../SpeedGraph/SpeedGraphViewModel.cs | 8 +- src/ProtonVPN.App/ViewModels/MainViewModel.cs | 26 +- .../Vpn/Connectors/GuestHoleConnector.cs | 42 +- .../Vpn/Connectors/ProfileConnector.cs | 57 +- src/ProtonVPN.App/Vpn/DisconnectError.cs | 31 +- src/ProtonVPN.App/Windows/AppWindow.xaml.cs | 23 +- .../Windows/BaseWindowViewModel.cs | 1 + .../Windows/Popups/BasePopupViewModel.cs | 9 +- .../Popups/BaseUpgradePlanPopupViewModel.cs | 8 +- .../Delinquency/DelinquencyPopupViewModel.cs | 6 +- .../DeveloperToolsPopupViewModel.cs | 49 +- .../Popups/Offers/OfferPopupViewModel.cs | 12 +- .../Windows/Popups/PopupWindows.cs | 14 +- .../Rebranding/RebrandingPopupViewModel.cs | 2 +- src/ProtonVPN.App/Windows/TrayIcon.cs | 3 +- src/ProtonVPN.App/appsettings.json | 3 + .../ProtonVPN.CalloutDriver.inf | 2 +- .../Resources/VersionInfo.rc | Bin 2462 -> 2410 bytes src/ProtonVPN.Common/Configuration/Config.cs | 7 + .../Configuration/IConfiguration.cs | 7 + .../Configuration/OpenVpnConfig.cs | 3 + .../Configuration/Source/DefaultConfig.cs | 15 +- .../Configuration/UrlConfig.cs | 3 - src/ProtonVPN.Common/Helpers/PathProvider.cs | 29 + .../ProcessCommunicationLogCategory.cs} | 7 +- .../ProcessCommunicationClientStartLog.cs | 27 + .../ProcessCommunicationClientStopLog.cs | 27 + .../ProcessCommunicationErrorLog.cs | 27 + .../ProcessCommunicationLog.cs | 27 + .../ProcessCommunicationServerStartLog.cs | 27 + .../Networking/OpenVpnAdapter.cs | 6 + src/ProtonVPN.Common/OS/Net/PInvoke.cs | 17 +- .../OS/Processes/SystemProcesses.cs | 6 +- .../OS/Registry/CurrentUserStartupRecord.cs | 2 +- .../OS/Services/ConcurrentService.cs | 6 +- .../OS/Services/IConcurrentService.cs | 7 +- .../OS/Services/ISafeServiceAction.cs | 1 + .../OS/Services/IServiceEnabler.cs | 3 +- .../Services/ServiceControllerExtensions.cs | 2 + src/ProtonVPN.Common/ProtonVPN.Common.csproj | 348 +- src/ProtonVPN.Common/Service/ErrorHandler.cs | 67 - .../Service/ErrorLoggingBehavior.cs | 59 - .../Validation/ParameterValidatingBehavior.cs | 62 - .../Validation/ValidatableObjectValidator.cs | 52 - .../ValidatingParameterInspector.cs | 63 - .../ServiceModel/Server/InprocHostFactory.cs | 74 - .../ServiceModel/Server/SafeServiceHost.cs | 67 - src/ProtonVPN.Common/Vpn/VpnError.cs | 1 + .../Auth/AuthCertificateManager.cs | 3 +- src/ProtonVPN.Core/Modals/IDialogs.cs | 10 +- src/ProtonVPN.Core/Modals/IModal.cs | 2 +- src/ProtonVPN.Core/Modals/IModals.cs | 5 +- .../OS/Net/ServicePointConfiguration.cs | 63 - src/ProtonVPN.Core/ProtonVPN.Core.csproj | 333 +- .../IReportAnIssueFormDataProvider.cs | 2 +- .../ReportAnIssueFormDataProvider.cs | 5 +- .../Servers/ServerLoadUpdater.cs | 4 +- .../Servers/ServerNameComparer.cs | 62 +- src/ProtonVPN.Core/Service/ServiceChannel.cs | 58 - .../Service/ServiceChannelFactory.cs | 52 - .../Settings/Contracts/SplitTunnellingApp.cs | 31 +- .../Settings/Contracts/SplitTunnellingIp.cs | 32 +- .../ServiceSettingsStateChangedEventArgs.cs | 46 - src/ProtonVPN.Core/Srp/SrpPInvoke.cs | 6 +- src/ProtonVPN.Core/Update/FeedUrlProvider.cs | 20 +- src/ProtonVPN.Core/Vpn/IVpnServiceManager.cs | 5 +- src/ProtonVPN.Core/Windows/MainWindowState.cs | 4 +- .../Windows/Popups/IPopupWindow.cs | 4 +- src/ProtonVPN.Crypto/AsymmetricKeyPair.cs | 8 + src/ProtonVPN.Crypto/ProtonVPN.Crypto.csproj | 58 +- .../AppSettingsMigration.cpp | 285 + .../AppSettingsMigration.h | 41 + .../EnvironmentVariable.cpp | 15 - .../EnvironmentVariable.h | 4 - src/ProtonVPN.InstallActions/Installer.cpp | 27 +- src/ProtonVPN.InstallActions/Installer.h | 2 +- src/ProtonVPN.InstallActions/Logger.h | 5 + src/ProtonVPN.InstallActions/Os.cpp | 157 + src/ProtonVPN.InstallActions/Os.h | 18 + src/ProtonVPN.InstallActions/PathManager.cpp | 3 +- .../ProcessExecutionResult.cpp | 13 + .../ProcessExecutionResult.h | 12 + .../ProtonVPN.InstallActions.vcxproj | 155 +- .../ProtonVPN.InstallActions.vcxproj.filters | 50 +- src/ProtonVPN.InstallActions/Service.cpp | 127 - src/ProtonVPN.InstallActions/Service.h | 6 - .../ServiceManager.cpp | 248 + src/ProtonVPN.InstallActions/ServiceManager.h | 20 + src/ProtonVPN.InstallActions/StartupApp.cpp | 32 - src/ProtonVPN.InstallActions/StartupApp.h | 3 - .../StringConverter.cpp | 30 - .../StringConverter.h | 6 - src/ProtonVPN.InstallActions/SystemState.cpp | 115 - src/ProtonVPN.InstallActions/SystemState.h | 3 - .../TapInstallationOutputParser.cpp | 48 + .../TapInstallationOutputParser.h | 14 + src/ProtonVPN.InstallActions/TapInstaller.cpp | 210 + src/ProtonVPN.InstallActions/TapInstaller.h | 38 + src/ProtonVPN.InstallActions/TunAdapter.cpp | 157 - src/ProtonVPN.InstallActions/TunAdapter.h | 5 - src/ProtonVPN.InstallActions/Utils.cpp | 95 +- src/ProtonVPN.InstallActions/Utils.h | 14 +- .../WinApiErrorException.cpp | 18 + .../WinApiErrorException.h | 16 + src/ProtonVPN.InstallActions/dllmain.cpp | 261 +- src/ProtonVPN.InstallActions/framework.h | 8 - src/ProtonVPN.InstallActions/pch.cpp | 5 - src/ProtonVPN.InstallActions/pch.h | 13 - .../pugixml/pugiconfig.hpp | 77 + .../pugixml/pugixml.cpp | 13158 ++++++++++++++++ .../pugixml/pugixml.hpp | 1506 ++ src/ProtonVPN.InstallActions/sha1.hpp | 334 + .../ProtonVPN.IpFilter.vcxproj | 8 +- src/ProtonVPN.Launcher/Program.cs | 50 + .../ProtonVPN.Launcher.csproj | 26 + src/ProtonVPN.Launcher/protonvpn.ico | Bin 0 -> 312656 bytes .../ProtonVPN.MarkupValidator.csproj | 62 +- src/ProtonVPN.Native/ProtonVPN.Native.csproj | 55 +- src/ProtonVPN.NativeHost/NativeHost.rc | Bin 0 -> 3274 bytes src/ProtonVPN.NativeHost/NativeHost.vcxproj | 165 + .../NativeHost.vcxproj.filters | 52 + .../inc/coreclr_delegates.h | 47 + src/ProtonVPN.NativeHost/inc/hostfxr.h | 288 + src/ProtonVPN.NativeHost/inc/nethost.h | 99 + src/ProtonVPN.NativeHost/nativehost.cpp | 109 + src/ProtonVPN.NativeHost/protonvpn.ico | Bin 0 -> 312656 bytes src/ProtonVPN.NativeHost/resource.h | 16 + src/ProtonVPN.NetworkFilter/PInvoke.cs | 69 +- .../ProtonVPN.NetworkFilter.csproj | 68 +- .../ProtonVPN.Resource.csproj | 774 +- .../Crypto/AsymmetricKeyPairContract.cs | 57 - .../Properties/AssemblyInfo.cs | 22 - .../ProtonVPN.Service.Contract.csproj | 100 - .../Settings/ServiceSettingsStateContract.cs | 41 - .../Vpn/IVpnConnectionContract.cs | 53 - .../Vpn/VpnConfigContract.cs | 75 - .../Vpn/VpnConnectionRequestContract.cs | 65 - .../Vpn/VpnCredentialsContract.cs | 54 - .../Vpn/VpnHostContract.cs | 111 - .../Vpn/VpnStateContract.cs | 60 - src/ProtonVPN.Service.Contract/app.config | 12 - .../KillSwitch/KillSwitch.cs | 17 +- .../AppControllerCaller.cs | 235 + .../IAppControllerCaller.cs} | 14 +- src/ProtonVPN.Service/Program.cs | 11 +- .../ProjectInstaller.Designer.cs | 78 - src/ProtonVPN.Service/ProjectInstaller.resx | 129 - .../Properties/Settings.Designer.cs | 23 +- .../ProtonVPN.Service.csproj | 192 +- src/ProtonVPN.Service/ServiceController.cs | 136 + .../ServiceSettingsHostFactory.cs | 53 - .../ServiceHosts/VpnConnectionHostFactory.cs | 65 - .../Settings/IServiceSettings.cs | 14 +- .../Settings/IServiceSettingsAware.cs | 4 +- .../Settings/ISettingsFileStorage.cs | 4 +- .../Settings/ServiceSettings.cs | 20 +- .../Settings/SettingsFileStorage.cs | 4 +- .../Settings/SettingsHandler.cs | 45 - .../SplitTunneling/SplitTunnel.cs | 10 +- .../SplitTunnelNetworkFilters.cs | 2 +- src/ProtonVPN.Service/Start/Bootstrapper.cs | 6 +- .../Start/CommandLineStartStrategy.cs | 48 - src/ProtonVPN.Service/Start/ServiceModule.cs | 16 +- .../Vpn/Ipv6HandlingWrapper.cs | 3 +- src/ProtonVPN.Service/VpnConnectionHandler.cs | 387 - src/ProtonVPN.Service/VpnService.cs | 40 +- .../ProtonVPN.SourceGenerators.csproj | 1 + .../CustomAction.config | 32 - src/ProtonVPN.TapInstaller/CustomActions.cs | 117 - .../DriverInstallation/TapAdapterInstaller.cs | 160 - .../DriverInstallation/TapInstallRunner.cs | 103 - .../TapInstallerStandardOutputParser.cs | 66 - src/ProtonVPN.TapInstaller/PathResolver.cs | 57 - .../Properties/AssemblyInfo.cs | 44 - .../ProtonVPN.TapInstaller.csproj | 112 - .../tap/installer/x86/tapinstall.exe | Bin 78336 -> 0 bytes .../Resources/tap/windows10/x86/OemVista.inf | 203 - .../tap/windows10/x86/tapprotonvpn.Sys | Bin 44416 -> 0 bytes .../tap/windows10/x86/tapprotonvpn.cat | Bin 20117 -> 0 bytes .../Resources/tap/windows7/x64/OemVista.inf | 195 - .../tap/windows7/x64/tapprotonvpn.cat | Bin 9933 -> 0 bytes .../tap/windows7/x64/tapprotonvpn.sys | Bin 39696 -> 0 bytes .../Resources/tap/windows7/x86/OemVista.inf | 195 - .../tap/windows7/x86/tapprotonvpn.cat | Bin 9933 -> 0 bytes .../tap/windows7/x86/tapprotonvpn.sys | Bin 35088 -> 0 bytes .../Win32Processes/ProcessExecutionResult.cs | 36 - .../Win32Processes/ProcessRunner.cs | 87 - .../ProtonVPN.TlsVerify.csproj | 60 +- .../Properties/Resources.Designer.cs | 36 - .../Properties/Resources.resx | 15 +- .../ProtonVPN.Translations.csproj | 75 +- .../Config/IFeedUrlProvider.cs | 3 +- src/ProtonVPN.Update/IRelease.cs | 2 - src/ProtonVPN.Update/ProtonVPN.Update.csproj | 110 +- src/ProtonVPN.Update/Releases/Release.cs | 3 - .../Responses/ReleaseResponse.cs | 5 +- .../Storage/WebReleaseStorage.cs | 27 +- src/ProtonVPN.Update/Updates/AppUpdate.cs | 10 +- src/ProtonVPN.Vpn/Config/Module.cs | 5 + .../Connection/NetworkAdapterStatusWrapper.cs | 37 +- src/ProtonVPN.Vpn/LocalAgent/PInvoke.cs | 4 +- .../NetworkAdapters/TapAdapter.cs | 92 + .../NetworkAdapters/WintunAdapter.cs | 131 + src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj | 217 +- .../Resources/32-bit/libcrypto-1_1.dll | Bin 2583552 -> 0 bytes .../Resources/32-bit/libpkcs11-helper-1.dll | Bin 84480 -> 0 bytes .../Resources/32-bit/libssl-1_1.dll | Bin 538112 -> 0 bytes .../Resources/32-bit/openvpn.exe | Bin 748032 -> 0 bytes src/ProtonVPN.Vpn/Resources/32-bit/tunnel.dll | Bin 2766336 -> 0 bytes .../Resources/32-bit/vcruntime140.dll | Bin 76152 -> 0 bytes .../Resources/32-bit/wireguard.dll | Bin 1885600 -> 0 bytes .../{64-bit => }/libcrypto-1_1-x64.dll | Bin .../{64-bit => }/libpkcs11-helper-1.dll | Bin .../Resources/{64-bit => }/libssl-1_1-x64.dll | Bin .../Resources/{64-bit => }/openvpn.exe | Bin .../Resources/{64-bit => }/tunnel.dll | Bin .../Resources/{64-bit => }/vcruntime140.dll | Bin .../Resources/{64-bit => }/wireguard.dll | Bin .../SystemSynchronizationEvents.cs | 4 +- src/ProtonVPN.Vpn/Wireguard/StatusManager.cs | 4 + .../Wireguard/WireguardConnection.cs | 33 +- .../ProtonVPN.WireGuardDriver.csproj | 75 +- .../ProtonVPN.WireguardService.csproj | 59 +- .../Converters/BytesToSizeConverterTest.cs | 43 +- .../Core/Service/SafeServiceActionTest.cs | 8 +- .../Core/Service/ServiceEnablerTest.cs | 19 +- .../Service/Vpn/ServiceStartDecoratorTest.cs | 2 +- .../Core/SystemTimeValidatorTest.cs | 4 +- .../Modals/Dialogs/DialogsTest.cs | 39 +- .../ProtonVPN.App.Tests/Modals/ModalsTest.cs | 42 +- .../P2PDetection/P2PDetectorTest.cs | 4 +- .../Properties/AssemblyInfo.cs | 2 + .../ProtonVPN.App.Tests.csproj | 177 +- .../Vpn/Connectors/GuestHoleConnectorTest.cs | 5 +- .../ProtonVPN.Common.Tests.csproj | 129 +- .../OS/Net/Dns/DnsClientExtensionsTest.cs | 10 +- .../Properties/AssemblyInfo.cs | 2 + .../ProtonVPN.Core.Tests.csproj | 137 +- .../Servers/ServerLoadUpdaterTest.cs | 9 +- .../Servers/ServerNameComparerTest.cs | 14 +- .../ProtonVPN.Crypto.Tests.csproj | 67 +- .../ProtonVPN.IntegrationTests.csproj | 150 +- .../Properties/AssemblyInfo.cs | 38 - .../ProtonVPN.Service.Contract.Tests.csproj | 101 - .../Vpn/VpnConnectionRequestContractTest.cs | 97 - .../Vpn/VpnErrorTypeContractTest.cs | 62 - .../Vpn/VpnProtocolContractTest.cs | 52 - .../Vpn/VpnStatusContractTest.cs | 62 - .../app.config | 11 - .../KillSwitch/KillSwitchTest.cs | 22 +- .../ProtonVPN.Service.Tests.csproj | 110 +- .../ReverseSplitTunnelAppsTest.cs | 10 +- .../SplitTunneling/SplitTunnelTest.cs | 60 +- .../Extensions/AssertionExtensions.cs} | 9 +- .../ProtonVPN.Tests.Common.csproj | 56 +- .../Properties/AssemblyInfo.cs | 2 + .../ProtonVPN.UI.Tests.csproj | 144 +- .../ProtonVPN.UI.Tests/Results/HomeResult.cs | 12 +- .../ProtonVPN.UI.Tests/Results/LoginResult.cs | 15 +- .../Results/ProfilesResult.cs | 12 +- .../Results/SettingsResult.cs | 2 +- .../Results/SysTrayResult.cs | 4 +- src/Tests/ProtonVPN.UI.Tests/TestSession.cs | 3 +- .../ProtonVPN.UI.Tests/Tests/AccountTests.cs | 4 +- .../Tests/ConnectionTests.cs | 4 + .../ProtonVPN.UI.Tests/Tests/ProfileTests.cs | 17 +- .../Tests/WindowElementsTests.cs | 56 - .../TestsHelper/TestConstants.cs | 4 +- .../TestsHelper/VPNServiceHelper.cs | 102 +- src/Tests/ProtonVPN.UI.Tests/UIActions.cs | 10 +- .../ProtonVPN.UI.Tests/Windows/HomeWindow.cs | 10 +- .../Windows/ProfilesWindow.cs | 11 +- .../Windows/SettingsWindow.cs | 7 +- .../Validatable/CachedFileValidatorTest.cs | 2 +- .../ProtonVPN.Update.Tests.csproj | 112 +- .../Releases/ReleasesTest.cs | 8 +- .../Storage/WebReleaseStorageTest.cs | 18 +- .../TestData/win-update.json | 74 - .../TestData/windows-releases.json | 68 +- .../Updates/AppUpdateTest.cs | 108 +- .../Updates/AppUpdatesTest.cs | 8 +- .../ProtonVPN.Vpn.Tests.csproj | 103 +- .../Properties/AssemblyInfo.cs | 2 + .../TestTools.ApiClient.csproj | 86 +- src/Tests/TestTools.ProfileCleaner/Program.cs | 2 +- .../Properties/AssemblyInfo.cs | 2 + .../TestTools.ProfileCleaner.csproj | 73 +- 604 files changed, 28532 insertions(+), 15742 deletions(-) create mode 100644 ProtonVPN.InstallActions.sln.DotSettings create mode 100644 Setup/CodeDependencies.iss create mode 100644 Setup/NetCoreCheckCA.dll create mode 100644 Setup/NetCoreCheck_x64.exe delete mode 100644 Setup/ProtonVPN.aip delete mode 100644 Setup/ProtonVPNTap.aip delete mode 100644 Setup/ProtonVPNTun.aip rename Setup/SplitTunnel/{x64/win7 => }/ProtonVPN.CalloutDriver.inf (97%) rename Setup/SplitTunnel/{x64/win10 => }/ProtonVPN.CalloutDriver.sys (100%) rename Setup/SplitTunnel/{x64/win10 => }/protonvpn.calloutdriver.cat (100%) delete mode 100644 Setup/SplitTunnel/x64/win10/ProtonVPN.CalloutDriver.inf delete mode 100644 Setup/SplitTunnel/x64/win7/ProtonVPN.CalloutDriver.sys delete mode 100644 Setup/SplitTunnel/x64/win7/protonvpn.calloutdriver.cat delete mode 100644 Setup/SplitTunnel/x86/win10/ProtonVPN.CalloutDriver.inf delete mode 100644 Setup/SplitTunnel/x86/win10/ProtonVPN.CalloutDriver.sys delete mode 100644 Setup/SplitTunnel/x86/win10/protonvpn.calloutdriver.cat delete mode 100644 Setup/SplitTunnel/x86/win7/ProtonVPN.CalloutDriver.inf delete mode 100644 Setup/SplitTunnel/x86/win7/ProtonVPN.CalloutDriver.sys delete mode 100644 Setup/SplitTunnel/x86/win7/protonvpn.calloutdriver.cat delete mode 100644 Setup/check-KB2921916.bat delete mode 100644 Setup/check-KB2992611.bat delete mode 100644 Setup/check-KB3033929.bat delete mode 100644 Setup/check-KB3063858.bat create mode 100644 Setup/setup.iss rename {src/ProtonVPN.TapInstaller/Resources/tap/windows10/x64 => Setup/tap}/OemVista.inf (100%) rename {src/ProtonVPN.TapInstaller/Resources/tap/installer/x64 => Setup/tap}/tapinstall.exe (100%) rename {src/ProtonVPN.TapInstaller/Resources/tap/windows10/x64 => Setup/tap}/tapprotonvpn.Sys (100%) rename {src/ProtonVPN.TapInstaller/Resources/tap/windows10/x64 => Setup/tap}/tapprotonvpn.cat (100%) rename src/Api/ProtonVPN.Api.Tests/Mocks/{MockOfWebRequestHandler.cs => MockOfHttpClientHandler.cs} (92%) create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping.Contracts/IEntityMapper.cs create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping.Contracts/IMapper.cs create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping.Contracts/ProtonVPN.EntityMapping.Contracts.csproj rename src/{ProtonVPN.Service/ProjectInstaller.cs => EntityMapping/ProtonVPN.EntityMapping.Installers/EntityMappingModule.cs} (74%) create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping.Installers/ProtonVPN.EntityMapping.Installers.csproj create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping.Tests/EntityMapperTest.cs rename src/{ProtonVPN.TapInstaller/SetupResult.cs => EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityA.cs} (86%) rename src/{ProtonVPN.Service.Contract/Vpn/ServerValidationObject.cs => EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityB.cs} (84%) create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityMapper.cs create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumA.cs create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumB.cs rename src/{ProtonVPN.Common/OS/Net/Http/HttpStatusCodeExtensions.cs => EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumMapper.cs} (66%) create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping.Tests/ProtonVPN.EntityMapping.Tests.csproj create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping/EntityMapper.cs create mode 100644 src/EntityMapping/ProtonVPN.EntityMapping/ProtonVPN.EntityMapping.csproj create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/AppProcessCommunicationModule.cs create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/ProtonVPN.ProcessCommunication.App.Installers.csproj create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/AppGrpcClientTest.cs create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/GrpcServerTest.cs create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/ProtonVPN.ProcessCommunication.App.Tests.csproj create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/AppGrpcClient.cs create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/GrpcServer.cs create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/ProtonVPN.ProcessCommunication.App.csproj create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/Channels/GrpcChannelWrapperFactoryTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/GrpcServerTestBase.cs rename src/{ProtonVPN.TapInstaller/Logging/Logger.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/ParallelTestRunner.cs} (65%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/ProtonVPN.ProcessCommunication.Common.Tests.csproj create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/Registration/ServiceServerPortRegisterTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapperFactory.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/IGrpcChannelWrapper.cs rename src/{ProtonVPN.App/Notifications/INotificationUserActionHandler.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/IGrpcChannelWrapperFactory.cs} (82%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/GrpcClientBase.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/GrpcServerBase.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/ProtonVPN.ProcessCommunication.Common.csproj create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServiceServerPortRegister.cs rename src/{ProtonVPN.Service.Contract/Vpn/IVpnEventsContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IAppController.cs} (53%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IServiceController.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Auth/AuthCertificateIpcEntity.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Communication/StateConsumerIpcEntity.cs rename src/{ProtonVPN.Service.Contract/Servers/PhysicalServerContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/AsymmetricKeyPairIpcEntity.cs} (69%) rename src/{ProtonVPN.Service.Contract/Crypto/KeyAlgorithmContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/KeyAlgorithmIpcEntity.cs} (89%) rename src/{ProtonVPN.Service.Contract/Crypto/KeyContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/KeyIpcEntity.cs} (51%) rename src/{ProtonVPN.TapInstaller/Extensions/StringExtensions.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/PublicKeyIpcEntity.cs} (74%) rename src/{ProtonVPN.Service.Contract/Crypto/SecretKeyContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/SecretKeyIpcEntity.cs} (70%) rename src/{ProtonVPN.TapInstaller/Logging/InstallerSessionLogger.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/ServerPublicKeyIpcEntity.cs} (69%) rename src/{ProtonVPN.Service.Contract/PortForwarding/PortForwardingStateContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/PortForwardingStateIpcEntity.cs} (68%) rename src/{ProtonVPN.Service.Contract/PortForwarding/PortMappingStatusContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/PortMappingStatusIpcEntity.cs} (90%) rename src/{ProtonVPN.Service.Contract/PortForwarding/TemporaryMappedPortContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/TemporaryMappedPortIpcEntity.cs} (75%) rename src/{ProtonVPN.Service.Contract/Settings/SettingsContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Settings/MainSettingsIpcEntity.cs} (53%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Settings/SplitTunnelSettingsIpcEntity.cs rename src/{ProtonVPN.Service.Contract/Vpn/ConnectionDetailsContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/ConnectionDetailsIpcEntity.cs} (82%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/ConnectionRequestIpcEntity.cs rename src/{ProtonVPN.Service.Contract/Crypto/ServerPublicKeyContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/DisconnectionRequestIpcEntity.cs} (63%) rename src/{ProtonVPN.Service.Contract/Settings/SplitTunnelSettingsContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/KillSwitchModeIpcEntity.cs} (73%) rename src/{ProtonVPN.Common/Service/Validation/IObjectValidator.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/OpenVpnAdapterIpcEntity.cs} (76%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/SplitTunnelModeIpcEntity.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/TrafficBytesIpcEntity.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnConfigIpcEntity.cs rename src/{ProtonVPN.Service.Contract/Crypto/PublicKeyContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnCredentialsIpcEntity.cs} (61%) rename src/{ProtonVPN.Service.Contract/Vpn/VpnErrorTypeContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnErrorTypeIpcEntity.cs} (94%) rename src/{ProtonVPN.Service.Contract/Vpn/OpenVpnProtocolContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnProtocolIpcEntity.cs} (90%) rename src/{ProtonVPN.Service.Contract/Servers/ServerContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnServerIpcEntity.cs} (60%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnStateIpcEntity.cs rename src/{ProtonVPN.Service.Contract/Vpn/VpnStatusContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnStatusIpcEntity.cs} (92%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IAppGrpcClient.cs rename src/{ProtonVPN.Service.Contract/Settings/ISettingsContract.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IGrpcServer.cs} (75%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IServiceGrpcClient.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/ProtonVPN.ProcessCommunication.Contracts.csproj create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServiceServerPortRegister.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Common/EnumMapperTestBase.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/AsymmetricKeyPairMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/KeyMapperTestBase.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/PublicKeyMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/SecretKeyMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/ServerPublicKeyMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/PortForwardingStateMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/PortMappingStatusMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/TemporaryMappedPortMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/ProtonVPN.ProcessCommunication.EntityMapping.Tests.csproj create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/ConnectionDetailsMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/ConnectionRequestMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/KillSwitchModeMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/OpenVpnAdapterMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/SplitTunnelModeMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/TrafficBytesMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnConfigMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnCredentialsMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnErrorTypeMapperTest.cs rename src/{ProtonVPN.App/Core/Service/Settings/SettingsServiceClient.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnProtocolMapperTest.cs} (55%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnServerMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnStateChangedEventArgsMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnStatusMapperTest.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/AsymmetricKeyPairMapper.cs rename src/{ProtonVPN.Common/Service/ServiceHostFactory.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/KeyMapperBase.cs} (58%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/PublicKeyMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/SecretKeyMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/ServerPublicKeyMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/PortForwardingStateMapper.cs rename src/{ProtonVPN.TapInstaller/DriverInstallation/InstallationResult.cs => ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/PortMappingStatusMapper.cs} (57%) create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/TemporaryMappedPortMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/ProtonVPN.ProcessCommunication.EntityMapping.csproj create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/ConnectionDetailsMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/ConnectionRequestMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/KillSwitchModeMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/OpenVpnAdapterMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/SplitTunnelModeMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/TrafficBytesMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnConfigMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnCredentialsMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnErrorTypeMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnProtocolMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnServerMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnStateChangedEventArgsMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnStatusMapper.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProcessCommunicationModule.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProtonVPN.ProcessCommunication.Installers.csproj create mode 100644 src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Installers/ProtonVPN.ProcessCommunication.Service.Installers.csproj rename src/{ProtonVPN.Service.Contract/Vpn/InOutBytesContract.cs => ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Installers/ServiceProcessCommunicationModule.cs} (63%) create mode 100644 src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/GrpcServerTest.cs create mode 100644 src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ProtonVPN.ProcessCommunication.Service.Tests.csproj create mode 100644 src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ServiceGrpcClientTest.cs create mode 100644 src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/GrpcServer.cs create mode 100644 src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ProtonVPN.ProcessCommunication.Service.csproj create mode 100644 src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ServiceGrpcClient.cs rename src/ProtonVPN.App/Core/{ShutdownInvoker.cs => AppExitInvoker.cs} (100%) create mode 100644 src/ProtonVPN.App/Core/Service/IMonitoredVpnService.cs rename src/ProtonVPN.App/Core/Service/Settings/{SettingsContractProvider.cs => MainSettingsProvider.cs} (62%) create mode 100644 src/ProtonVPN.App/Core/Service/Vpn/AppController.cs delete mode 100644 src/ProtonVPN.App/Core/Service/Vpn/VpnEvents.cs delete mode 100644 src/ProtonVPN.App/Modals/RebootModalViewModel.cs rename src/ProtonVPN.App/Modals/{RebootModalView.xaml => WireGuardAdapterInUseModalView.xaml} (69%) rename src/ProtonVPN.App/Modals/{RebootModalView.xaml.cs => WireGuardAdapterInUseModalView.xaml.cs} (88%) rename src/{ProtonVPN.TapInstaller/Logging/ILogger.cs => ProtonVPN.App/Modals/WireGuardAdapterInUseModalViewModel.cs} (87%) delete mode 100644 src/ProtonVPN.App/Notifications/NotificationUserActionHandler.cs create mode 100644 src/ProtonVPN.App/appsettings.json create mode 100644 src/ProtonVPN.Common/Helpers/PathProvider.cs rename src/{ProtonVPN.Core/Settings/IServiceSettingsStateAware.cs => ProtonVPN.Common/Logging/Categorization/Categories/ProcessCommunicationLogCategory.cs} (80%) create mode 100644 src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationClientStartLog.cs create mode 100644 src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationClientStopLog.cs create mode 100644 src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationErrorLog.cs create mode 100644 src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationLog.cs create mode 100644 src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationServerStartLog.cs delete mode 100644 src/ProtonVPN.Common/Service/ErrorHandler.cs delete mode 100644 src/ProtonVPN.Common/Service/ErrorLoggingBehavior.cs delete mode 100644 src/ProtonVPN.Common/Service/Validation/ParameterValidatingBehavior.cs delete mode 100644 src/ProtonVPN.Common/Service/Validation/ValidatableObjectValidator.cs delete mode 100644 src/ProtonVPN.Common/Service/Validation/ValidatingParameterInspector.cs delete mode 100644 src/ProtonVPN.Common/ServiceModel/Server/InprocHostFactory.cs delete mode 100644 src/ProtonVPN.Common/ServiceModel/Server/SafeServiceHost.cs delete mode 100644 src/ProtonVPN.Core/OS/Net/ServicePointConfiguration.cs delete mode 100644 src/ProtonVPN.Core/Service/ServiceChannel.cs delete mode 100644 src/ProtonVPN.Core/Service/ServiceChannelFactory.cs delete mode 100644 src/ProtonVPN.Core/Settings/ServiceSettingsStateChangedEventArgs.cs create mode 100644 src/ProtonVPN.InstallActions/AppSettingsMigration.cpp create mode 100644 src/ProtonVPN.InstallActions/AppSettingsMigration.h delete mode 100644 src/ProtonVPN.InstallActions/EnvironmentVariable.cpp delete mode 100644 src/ProtonVPN.InstallActions/EnvironmentVariable.h create mode 100644 src/ProtonVPN.InstallActions/Logger.h create mode 100644 src/ProtonVPN.InstallActions/Os.cpp create mode 100644 src/ProtonVPN.InstallActions/Os.h create mode 100644 src/ProtonVPN.InstallActions/ProcessExecutionResult.cpp create mode 100644 src/ProtonVPN.InstallActions/ProcessExecutionResult.h delete mode 100644 src/ProtonVPN.InstallActions/Service.cpp delete mode 100644 src/ProtonVPN.InstallActions/Service.h create mode 100644 src/ProtonVPN.InstallActions/ServiceManager.cpp create mode 100644 src/ProtonVPN.InstallActions/ServiceManager.h delete mode 100644 src/ProtonVPN.InstallActions/StartupApp.cpp delete mode 100644 src/ProtonVPN.InstallActions/StartupApp.h delete mode 100644 src/ProtonVPN.InstallActions/StringConverter.cpp delete mode 100644 src/ProtonVPN.InstallActions/StringConverter.h delete mode 100644 src/ProtonVPN.InstallActions/SystemState.cpp delete mode 100644 src/ProtonVPN.InstallActions/SystemState.h create mode 100644 src/ProtonVPN.InstallActions/TapInstallationOutputParser.cpp create mode 100644 src/ProtonVPN.InstallActions/TapInstallationOutputParser.h create mode 100644 src/ProtonVPN.InstallActions/TapInstaller.cpp create mode 100644 src/ProtonVPN.InstallActions/TapInstaller.h delete mode 100644 src/ProtonVPN.InstallActions/TunAdapter.cpp delete mode 100644 src/ProtonVPN.InstallActions/TunAdapter.h create mode 100644 src/ProtonVPN.InstallActions/WinApiErrorException.cpp create mode 100644 src/ProtonVPN.InstallActions/WinApiErrorException.h delete mode 100644 src/ProtonVPN.InstallActions/framework.h delete mode 100644 src/ProtonVPN.InstallActions/pch.cpp delete mode 100644 src/ProtonVPN.InstallActions/pch.h create mode 100644 src/ProtonVPN.InstallActions/pugixml/pugiconfig.hpp create mode 100644 src/ProtonVPN.InstallActions/pugixml/pugixml.cpp create mode 100644 src/ProtonVPN.InstallActions/pugixml/pugixml.hpp create mode 100644 src/ProtonVPN.InstallActions/sha1.hpp create mode 100644 src/ProtonVPN.Launcher/Program.cs create mode 100644 src/ProtonVPN.Launcher/ProtonVPN.Launcher.csproj create mode 100644 src/ProtonVPN.Launcher/protonvpn.ico create mode 100644 src/ProtonVPN.NativeHost/NativeHost.rc create mode 100644 src/ProtonVPN.NativeHost/NativeHost.vcxproj create mode 100644 src/ProtonVPN.NativeHost/NativeHost.vcxproj.filters create mode 100644 src/ProtonVPN.NativeHost/inc/coreclr_delegates.h create mode 100644 src/ProtonVPN.NativeHost/inc/hostfxr.h create mode 100644 src/ProtonVPN.NativeHost/inc/nethost.h create mode 100644 src/ProtonVPN.NativeHost/nativehost.cpp create mode 100644 src/ProtonVPN.NativeHost/protonvpn.ico create mode 100644 src/ProtonVPN.NativeHost/resource.h delete mode 100644 src/ProtonVPN.Service.Contract/Crypto/AsymmetricKeyPairContract.cs delete mode 100644 src/ProtonVPN.Service.Contract/Properties/AssemblyInfo.cs delete mode 100644 src/ProtonVPN.Service.Contract/ProtonVPN.Service.Contract.csproj delete mode 100644 src/ProtonVPN.Service.Contract/Settings/ServiceSettingsStateContract.cs delete mode 100644 src/ProtonVPN.Service.Contract/Vpn/IVpnConnectionContract.cs delete mode 100644 src/ProtonVPN.Service.Contract/Vpn/VpnConfigContract.cs delete mode 100644 src/ProtonVPN.Service.Contract/Vpn/VpnConnectionRequestContract.cs delete mode 100644 src/ProtonVPN.Service.Contract/Vpn/VpnCredentialsContract.cs delete mode 100644 src/ProtonVPN.Service.Contract/Vpn/VpnHostContract.cs delete mode 100644 src/ProtonVPN.Service.Contract/Vpn/VpnStateContract.cs delete mode 100644 src/ProtonVPN.Service.Contract/app.config create mode 100644 src/ProtonVPN.Service/ProcessCommunication/AppControllerCaller.cs rename src/{ProtonVPN.TapInstaller/DriverInstallation/DriverState.cs => ProtonVPN.Service/ProcessCommunication/IAppControllerCaller.cs} (77%) delete mode 100644 src/ProtonVPN.Service/ProjectInstaller.Designer.cs delete mode 100644 src/ProtonVPN.Service/ProjectInstaller.resx create mode 100644 src/ProtonVPN.Service/ServiceController.cs delete mode 100644 src/ProtonVPN.Service/ServiceHosts/ServiceSettingsHostFactory.cs delete mode 100644 src/ProtonVPN.Service/ServiceHosts/VpnConnectionHostFactory.cs delete mode 100644 src/ProtonVPN.Service/Settings/SettingsHandler.cs delete mode 100644 src/ProtonVPN.Service/Start/CommandLineStartStrategy.cs delete mode 100644 src/ProtonVPN.Service/VpnConnectionHandler.cs delete mode 100644 src/ProtonVPN.TapInstaller/CustomAction.config delete mode 100644 src/ProtonVPN.TapInstaller/CustomActions.cs delete mode 100644 src/ProtonVPN.TapInstaller/DriverInstallation/TapAdapterInstaller.cs delete mode 100644 src/ProtonVPN.TapInstaller/DriverInstallation/TapInstallRunner.cs delete mode 100644 src/ProtonVPN.TapInstaller/DriverInstallation/TapInstallerStandardOutputParser.cs delete mode 100644 src/ProtonVPN.TapInstaller/PathResolver.cs delete mode 100644 src/ProtonVPN.TapInstaller/Properties/AssemblyInfo.cs delete mode 100644 src/ProtonVPN.TapInstaller/ProtonVPN.TapInstaller.csproj delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/installer/x86/tapinstall.exe delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/windows10/x86/OemVista.inf delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/windows10/x86/tapprotonvpn.Sys delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/windows10/x86/tapprotonvpn.cat delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/windows7/x64/OemVista.inf delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/windows7/x64/tapprotonvpn.cat delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/windows7/x64/tapprotonvpn.sys delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/windows7/x86/OemVista.inf delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/windows7/x86/tapprotonvpn.cat delete mode 100644 src/ProtonVPN.TapInstaller/Resources/tap/windows7/x86/tapprotonvpn.sys delete mode 100644 src/ProtonVPN.TapInstaller/Win32Processes/ProcessExecutionResult.cs delete mode 100644 src/ProtonVPN.TapInstaller/Win32Processes/ProcessRunner.cs create mode 100644 src/ProtonVPN.Vpn/NetworkAdapters/TapAdapter.cs create mode 100644 src/ProtonVPN.Vpn/NetworkAdapters/WintunAdapter.cs delete mode 100644 src/ProtonVPN.Vpn/Resources/32-bit/libcrypto-1_1.dll delete mode 100644 src/ProtonVPN.Vpn/Resources/32-bit/libpkcs11-helper-1.dll delete mode 100644 src/ProtonVPN.Vpn/Resources/32-bit/libssl-1_1.dll delete mode 100644 src/ProtonVPN.Vpn/Resources/32-bit/openvpn.exe delete mode 100644 src/ProtonVPN.Vpn/Resources/32-bit/tunnel.dll delete mode 100644 src/ProtonVPN.Vpn/Resources/32-bit/vcruntime140.dll delete mode 100644 src/ProtonVPN.Vpn/Resources/32-bit/wireguard.dll rename src/ProtonVPN.Vpn/Resources/{64-bit => }/libcrypto-1_1-x64.dll (100%) rename src/ProtonVPN.Vpn/Resources/{64-bit => }/libpkcs11-helper-1.dll (100%) rename src/ProtonVPN.Vpn/Resources/{64-bit => }/libssl-1_1-x64.dll (100%) rename src/ProtonVPN.Vpn/Resources/{64-bit => }/openvpn.exe (100%) rename src/ProtonVPN.Vpn/Resources/{64-bit => }/tunnel.dll (100%) rename src/ProtonVPN.Vpn/Resources/{64-bit => }/vcruntime140.dll (100%) rename src/ProtonVPN.Vpn/Resources/{64-bit => }/wireguard.dll (100%) delete mode 100644 src/Tests/ProtonVPN.Service.Contract.Tests/Properties/AssemblyInfo.cs delete mode 100644 src/Tests/ProtonVPN.Service.Contract.Tests/ProtonVPN.Service.Contract.Tests.csproj delete mode 100644 src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnConnectionRequestContractTest.cs delete mode 100644 src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnErrorTypeContractTest.cs delete mode 100644 src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnProtocolContractTest.cs delete mode 100644 src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnStatusContractTest.cs delete mode 100644 src/Tests/ProtonVPN.Service.Contract.Tests/app.config rename src/{ProtonVPN.Service.Contract/Vpn/PhysicalServer.cs => Tests/ProtonVPN.Tests.Common/Extensions/AssertionExtensions.cs} (81%) delete mode 100644 src/Tests/ProtonVPN.UI.Tests/Tests/WindowElementsTests.cs delete mode 100644 src/Tests/ProtonVPN.Update.Tests/TestData/win-update.json diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 49f852846..f48d523b8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,15 +15,14 @@ variables: PUBLIC_REPO_URL: git@github.com:ProtonVPN/win-app.git SCREENSHOT_PATH: src/bin/TestFailureData/ TEST_REPORT_PATH: results/ - PROJECT_ID: "1" - MILESTONE: "Automation" + PROJECT_ID: "13" + MILESTONE: "Windows" stages: - release - bot # comes from translations/generator job - build - test - - sign - build-installer - internal-beta - publish-to-slack @@ -34,42 +33,27 @@ stages: - test-cleanup - mirror -sign: - stage: sign - tags: - - windows - script: - - echo "Signing files..." - - python ci\main.py sign - artifacts: - expire_in: 1 day - paths: - - src/bin/ - only: - - master - - /^release.*$/ - - develop - build-release: stage: build tags: - windows script: - - echo "Restoring NuGet Packages..." - - 'c:\nuget\nuget.exe restore ProtonVpn.sln' - - MSBuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "src\\ProtonVPN.MarkupValidator\\ProtonVPN.MarkupValidator.csproj" - echo "Building native dependencies..." - 'c:\nuget\nuget.exe restore ProtonVPN.InstallActions.sln' - cmd.exe /c BuildDependencies.bat + - dotnet publish src\ProtonVPN.MarkupValidator\ProtonVPN.MarkupValidator.csproj --arch x64 -c Release --no-self-contained -o src\bin + - echo "Downloading translations from crowdin..." - python ci\main.py lint-languages - python ci\main.py add-commit-hash $env:CI_COMMIT_SHORT_SHA - python ci\main.py defaultConfig - - echo "Building release..." - - MSBuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "ProtonVpn.sln" + - echo "Publishing release..." + - dotnet publish ProtonVpn.sln --arch x64 -c Release --no-self-contained --verbosity q -o src\bin + - msbuild src\ProtonVPN.NativeHost\NativeHost.vcxproj /p:Configuration=Release /p:Platform=x64 artifacts: expire_in: 1 day paths: - - src/bin/ + - src/bin + - src/ProtonVPN.NativeHost/bin only: - master - /^release.*$/ @@ -81,22 +65,22 @@ build-debug: tags: - windows script: - - echo "Restoring NuGet Packages..." - - 'c:\nuget\nuget.exe restore ProtonVpn.sln' - - MSBuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet "src\\ProtonVPN.MarkupValidator\\ProtonVPN.MarkupValidator.csproj" - echo "Building native dependencies..." - 'c:\nuget\nuget.exe restore ProtonVPN.InstallActions.sln' - cmd.exe /c BuildDependencies.bat + - dotnet publish src\ProtonVPN.MarkupValidator\ProtonVPN.MarkupValidator.csproj --arch x64 -c Release --no-self-contained -o src\bin - echo "Downloading translations from crowdin..." - python ci\main.py lint-languages - python ci\main.py add-commit-hash $env:CI_COMMIT_SHORT_SHA - python ci\main.py defaultConfig - - echo "Building debug..." - - MSBuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Debug /verbosity:quiet "ProtonVpn.sln" + - echo "Publishing debug..." + - dotnet publish ProtonVpn.sln --arch x64 -c Debug --no-self-contained --verbosity q -o src\bin + - msbuild src\ProtonVPN.NativeHost\NativeHost.vcxproj /p:Configuration=Release /p:Platform=x64 artifacts: expire_in: 1 day paths: - - src/bin/ + - src/bin + - src/ProtonVPN.NativeHost/bin except: - master - /^release.*$/ @@ -108,10 +92,9 @@ tests: tags: - windows script: - - echo "Running tests..." - - 'c:\nuget\nuget.exe restore ProtonVpn.sln' - - MSBuild.exe /consoleloggerparameters:ErrorsOnly /maxcpucount /nologo /property:Configuration=Debug /verbosity:quiet "ProtonVpn.sln" - - coverlet src\bin --target "vstest.console.exe" --targetargs "src/bin/ProtonVPN*Tests*.dll /TestCaseFilter:TestCategory!=UI&TestCategory!=Connection /Platform:x64" --format cobertura --output .\coverage-reports --exclude "[*.Tests*]*" --exclude "[ProtonVPN.MarkupValidator]*" --exclude "[TestTools*]*" --exclude "[TapInstaller]*" --exclude "[*.Installers]*" + - dotnet restore ProtonVpn.sln + - dotnet build ProtonVpn.sln + - coverlet src\bin --target "dotnet" --targetargs "test ProtonVpn.sln -l ""console;verbosity=normal"" --filter ""TestCategory!=UI&TestCategory!=Connection"" --no-restore --no-build" --format cobertura --output .\coverage-reports --exclude "[*.Tests*]*" --exclude "[ProtonVPN.MarkupValidator]*" --exclude "[TestTools*]*" --exclude "[*.Installers]*" - powershell -Command "(gc coverage-reports.cobertura.xml) -replace '\\', '/' | Out-File -encoding UTF8 cobertura.xml" - ReportGenerator.exe "-reports:cobertura.xml" "-targetdir:.\code-coverage-report-html" artifacts: @@ -126,15 +109,11 @@ build-installer-for-release: tags: - windows script: - - python ci\main.py tap-installer - - python ci\main.py tun-installer - python ci\main.py update-gh-list - python ci\main.py app-installer $env:CI_COMMIT_SHORT_SHA artifacts: paths: - - Setup/ProtonVPN-SetupFiles/ - - Setup/ProtonVPNTun-SetupFiles/ - - Setup/ProtonVPNTap-SetupFiles/ + - Setup/Installers/ expire_in: 4 weeks only: - master @@ -156,13 +135,11 @@ build-installer-for-debug: tags: - windows script: - - python ci\main.py tap-installer - - python ci\main.py tun-installer - python ci\main.py update-gh-list - python ci\main.py app-installer $env:CI_COMMIT_SHORT_SHA artifacts: paths: - - Setup/ProtonVPN-SetupFiles/ + - Setup/Installers/ expire_in: 4 weeks except: - master @@ -181,19 +158,21 @@ testmo-setup: SOURCE: "Release" - when: always variables: - SOURCE: "Automation" + SOURCE: "Windows" NAME: "$CI_JOB_STARTED_AT UTC" TAGS: "$CI_COMMIT_REF_SLUG" ui-test: stage: ui-test tags: - - ui_tests + - ino-setup script: - - powershell -File ci\uninstall-app.ps1 - - powershell -File ci\install-the-app.ps1 - - VSTest.Console.exe src\bin\ProtonVPN.UI.Tests.dll /TestCaseFilter:"Category=UI" /Settings:ci/TestRun/test-run-settings.xml - - powershell -File ci\uninstall-app.ps1 + - ci\uninstall-app.ps1 + - ci\install-the-app.ps1 + - dotnet build src/Tests/ProtonVPN.UI.Tests/ProtonVPN.UI.Tests.csproj --arch x64 -o src/bin + - dotnet publish src\Tests\TestTools.ProfileCleaner\TestTools.ProfileCleaner.csproj --arch x64 -c Release --self-contained --verbosity q -o src\bin + - VSTest.Console.exe src\bin\ProtonVPN.UI.Tests.dll /Settings:ci/TestRun/test-run-settings.xml + - ci\uninstall-app.ps1 after_script: - powershell.exe ./ci/TestRun/converter-nunit-junit.ps1 except: @@ -207,29 +186,6 @@ ui-test: - $SCREENSHOT_PATH - "results/*" expire_in: 1 weeks - -connection-tests: - stage: ui-test - tags: - - connection_tests - script: - - powershell -File ci\uninstall-app.ps1 - - powershell -File ci\install-the-app.ps1 - - VSTest.Console.exe src\bin\ProtonVPN.UI.Tests.dll /TestCaseFilter:"Category=Connection" /Settings:ci/TestRun/test-run-settings.xml - - powershell -File ci\uninstall-app.ps1 - after_script: - - powershell.exe ./ci/TestRun/converter-nunit-junit.ps1 - except: - - /^debug.*$/ - - release/9.9.9 - - master - artifacts: - when: always - name: "result-connection" - paths: - - $SCREENSHOT_PATH - - "results/*" - expire_in: 1 weeks testmo-upload: allow_failure: true @@ -237,25 +193,6 @@ testmo-upload: variables: RESULT_FOLDER: "results/*.xml" -win-11-tests: - stage: ui-test - when: manual - tags: - - win11 - script: - - powershell -File ci\uninstall-app.ps1 - - powershell -File ci\install-the-app.ps1 - - VSTest.Console.exe src\bin\ProtonVPN.UI.Tests.dll /TestCaseFilter:"Category=Smoke" - except: - - /^debug.*$/ - - release/9.9.9 - - master - artifacts: - when: on_failure - paths: - - $SCREENSHOT_PATH - expire_in: 2 weeks - mirror: stage: mirror tags: diff --git a/BUILD.md b/BUILD.md index 8cd3fcace..54e21fda6 100644 --- a/BUILD.md +++ b/BUILD.md @@ -55,7 +55,7 @@ This creates TAP setup file "ProtonVPNTap.exe" in "Setup\ProtonVPNTap-SetupFiles folder. Otherwise, keep the previously built file. The code signing USB key must be provided during build. - Build the "Setup\ProtonVPN.aip" project using Advanced Installer. This creates -Proton VPN setup file "ProtonVPN_win_x.x.x.exe" in "Setup\ProtonVPN-SetupFiles" folder, +Proton VPN setup file "ProtonVPN_win_x.x.x.exe" in "Setup\Installers" folder, where "x.x.x" is the application version number. The code signing USB key must be provided during build. diff --git a/BuildDependencies.bat b/BuildDependencies.bat index 73fb9e87f..21126d287 100644 --- a/BuildDependencies.bat +++ b/BuildDependencies.bat @@ -1,35 +1,18 @@ -set outputDirX86=..\bin\x86\ -set outputDirX64=..\bin\x64\ +set outputDir=..\bin\Resources\ set platformToolset=v143 +set GOARCH=amd64 -::ProtonVPN.IpFilter.dll (x86) -msbuild src\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=Win32 /p:Configuration=Release /p:OutDir=%outputDirX86% -msbuild src\ProtonVPN.IpFilter\ProtonVPN.IpFilter.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=Win32 /p:Configuration=Release /p:OutDir=%outputDirX86% - -::ProtonVPN.IpFilter.dll (x64) -msbuild src\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=x64 /p:Configuration=Release /p:OutDir=%outputDirX64% -msbuild src\ProtonVPN.IpFilter\ProtonVPN.IpFilter.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=x64 /p:Configuration=Release /p:OutDir=%outputDirX64% - -::ProtonVPN.NetworkUtil.dll (x86) -msbuild src\ProtonVPN.NetworkUtil\ProtonVPN.NetworkUtil.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=Win32 /p:Configuration=Release /p:OutDir=%outputDirX86% - -::ProtonVPN.NetworkUtil.dll (x64) -msbuild src\ProtonVPN.NetworkUtil\ProtonVPN.NetworkUtil.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=x64 /p:Configuration=Release /p:OutDir=%outputDirX64% - -::ProtonVPN.InstallActions.dll (x86) +msbuild src\ProtonVPN.IpFilter\ProtonVPN.IpFilter.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=x64 /p:Configuration=Release /p:OutDir=%outputDir% +msbuild src\ProtonVPN.NetworkUtil\ProtonVPN.NetworkUtil.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=x64 /p:Configuration=Release /p:OutDir=%outputDir% msbuild src\ProtonVPN.InstallActions\ProtonVPN.InstallActions.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=Win32 /p:Configuration=Release +msbuild src\ProtonVPN.InstallActions\ProtonVPN.InstallActions.vcxproj /p:PlatformToolset=%platformToolset% /p:Platform=x64 /p:Configuration=Release ::GoSrp.dll pushd %~dp0\src\srp\windows\cshared set fn=GoSrp set gn=main.go set CGO_ENABLED=1 - -set GOARCH=386 -go build -buildmode=c-shared -v -ldflags="-s -w" -o ..\..\..\bin\x86\%fn%.dll %gn% - -set GOARCH=amd64 -go build -buildmode=c-shared -v -ldflags="-s -w" -o ..\..\..\bin\x64\%fn%.dll %gn% +go build -buildmode=c-shared -v -ldflags="-s -w" -o ..\..\..\bin\Resources\%fn%.dll %gn% ::LocalAgent.dll pushd %~dp0\src\ProtonVPN.LocalAgent\localAgentWin @@ -37,9 +20,4 @@ set GOOS=windows set GO111MODULE=off set CGO_CFLAGS=-O3 -Wall -Wno-unused-function -Wno-switch -std=gnu11 -DWINVER=0x0601 set CC=x86_64-w64-mingw32-gcc - -set GOARCH=386 -go build -buildmode c-shared -ldflags="-w -s" -trimpath -v -o "..\..\bin\Resources\32-bit\LocalAgent.dll" || exit /b 1 - -set GOARCH=amd64 -go build -buildmode c-shared -ldflags="-w -s" -trimpath -v -o "..\..\bin\Resources\64-bit\LocalAgent.dll" || exit /b 1 \ No newline at end of file +go build -buildmode c-shared -ldflags="-w -s" -trimpath -v -o "..\..\bin\Resources\LocalAgent.dll" || exit /b 1 \ No newline at end of file diff --git a/ProtonVPN.InstallActions.sln b/ProtonVPN.InstallActions.sln index 1ec3e12b8..f5a975780 100644 --- a/ProtonVPN.InstallActions.sln +++ b/ProtonVPN.InstallActions.sln @@ -1,20 +1,26 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.31911.196 +# Visual Studio Version 17 +VisualStudioVersion = 17.4.33103.184 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ProtonVPN.InstallActions", "src\ProtonVPN.InstallActions\ProtonVPN.InstallActions.vcxproj", "{BBCBB464-BDCB-49CD-830F-965D07CE1446}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Debug|x64.ActiveCfg = Debug|x64 + {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Debug|x64.Build.0 = Debug|x64 {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Debug|x86.ActiveCfg = Debug|Win32 {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Debug|x86.Build.0 = Debug|Win32 - {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Release|x86.ActiveCfg = Release|Win32 - {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Release|x86.Build.0 = Release|Win32 + {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Release|x64.ActiveCfg = Release|x64 + {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Release|x64.Build.0 = Release|x64 + {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Release|x86.ActiveCfg = Release|x64 + {BBCBB464-BDCB-49CD-830F-965D07CE1446}.Release|x86.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ProtonVPN.InstallActions.sln.DotSettings b/ProtonVPN.InstallActions.sln.DotSettings new file mode 100644 index 000000000..fe366a6f3 --- /dev/null +++ b/ProtonVPN.InstallActions.sln.DotSettings @@ -0,0 +1,3 @@ + + True + True \ No newline at end of file diff --git a/ProtonVPN.RestoreInternet/ProtonVPN.RestoreInternet.csproj b/ProtonVPN.RestoreInternet/ProtonVPN.RestoreInternet.csproj index c09a713a8..1caf89ae8 100644 --- a/ProtonVPN.RestoreInternet/ProtonVPN.RestoreInternet.csproj +++ b/ProtonVPN.RestoreInternet/ProtonVPN.RestoreInternet.csproj @@ -1,68 +1,32 @@ - - - + - Debug - AnyCPU - {8D07769D-0AAE-4224-AECB-DF68567F6B00} - Exe - ProtonVPN.RestoreInternet - ProtonVPN.RestoreInternet - v4.7.2 - 512 - true - true - - - x86 - true - full - false - ..\src\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - AnyCPU - pdbonly - true + net6.0-windows + WinExe + false ..\src\bin\ - TRACE - prompt - 4 - latest + false app.manifest protonvpn.ico + ProtonVPN.RestoreInternet.Program + ..\src\bin - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - + - + + + + all + - - \ No newline at end of file diff --git a/ProtonVpn.sln b/ProtonVpn.sln index 3c31ea27f..96b6093cf 100644 --- a/ProtonVpn.sln +++ b/ProtonVpn.sln @@ -3,43 +3,32 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.2.32630.192 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Service", "src\ProtonVPN.Service\ProtonVPN.Service.csproj", "{25781B52-5858-4387-80A5-C9C38C32B3CC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Service", "src\ProtonVPN.Service\ProtonVPN.Service.csproj", "{25781B52-5858-4387-80A5-C9C38C32B3CC}" ProjectSection(ProjectDependencies) = postProject {CA44B51D-7645-413A-818F-2C5B57DB67DD} = {CA44B51D-7645-413A-818F-2C5B57DB67DD} - {96C5D688-C0F1-4A63-9E26-E485FD0E1365} = {96C5D688-C0F1-4A63-9E26-E485FD0E1365} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.App", "src\ProtonVPN.App\ProtonVPN.App.csproj", "{0CDCA012-BB2D-49B3-944E-CE80D75D651A}" - ProjectSection(ProjectDependencies) = postProject - {96C5D688-C0F1-4A63-9E26-E485FD0E1365} = {96C5D688-C0F1-4A63-9E26-E485FD0E1365} - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.App", "src\ProtonVPN.App\ProtonVPN.App.csproj", "{0CDCA012-BB2D-49B3-944E-CE80D75D651A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Service.Contract", "src\ProtonVPN.Service.Contract\ProtonVPN.Service.Contract.csproj", "{96C5D688-C0F1-4A63-9E26-E485FD0E1365}" - ProjectSection(ProjectDependencies) = postProject - {03B8E43C-5680-4803-A745-0A104FE6620C} = {03B8E43C-5680-4803-A745-0A104FE6620C} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Core", "src\ProtonVPN.Core\ProtonVPN.Core.csproj", "{CA44B51D-7645-413A-818F-2C5B57DB67DD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Core", "src\ProtonVPN.Core\ProtonVPN.Core.csproj", "{CA44B51D-7645-413A-818F-2C5B57DB67DD}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{A592E157-F76B-49CE-A5A4-EF130CDD757F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Core.Tests", "src\Tests\ProtonVPN.Core.Tests\ProtonVPN.Core.Tests.csproj", "{FA0D86B4-2B86-4DFE-B7E6-7C809DB74A13}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.App.Tests", "src\Tests\ProtonVPN.App.Tests\ProtonVPN.App.Tests.csproj", "{7F48FD5C-A4C6-496A-B68E-265237C22330}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Core.Tests", "src\Tests\ProtonVPN.Core.Tests\ProtonVPN.Core.Tests.csproj", "{FA0D86B4-2B86-4DFE-B7E6-7C809DB74A13}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.TapInstaller", "src\ProtonVPN.TapInstaller\ProtonVPN.TapInstaller.csproj", "{5F6696BC-A37D-4726-82AE-95EF42C307FC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.App.Tests", "src\Tests\ProtonVPN.App.Tests\ProtonVPN.App.Tests.csproj", "{7F48FD5C-A4C6-496A-B68E-265237C22330}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Vpn", "src\ProtonVPN.Vpn\ProtonVPN.Vpn.csproj", "{4AA7CE6F-7154-49C1-B598-46055D590CAD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Vpn", "src\ProtonVPN.Vpn\ProtonVPN.Vpn.csproj", "{4AA7CE6F-7154-49C1-B598-46055D590CAD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Update", "src\ProtonVPN.Update\ProtonVPN.Update.csproj", "{90FDF2B3-25C9-428D-B264-5A5FAEB2D988}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Update", "src\ProtonVPN.Update\ProtonVPN.Update.csproj", "{90FDF2B3-25C9-428D-B264-5A5FAEB2D988}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Update.Tests", "src\Tests\ProtonVPN.Update.Tests\ProtonVPN.Update.Tests.csproj", "{7D658974-C38C-421F-8186-B735F06CFC58}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Update.Tests", "src\Tests\ProtonVPN.Update.Tests\ProtonVPN.Update.Tests.csproj", "{7D658974-C38C-421F-8186-B735F06CFC58}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Common", "src\ProtonVPN.Common\ProtonVPN.Common.csproj", "{03B8E43C-5680-4803-A745-0A104FE6620C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Common", "src\ProtonVPN.Common\ProtonVPN.Common.csproj", "{03B8E43C-5680-4803-A745-0A104FE6620C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Resource", "src\ProtonVPN.Resources\ProtonVPN.Resource.csproj", "{45A0EA81-D37E-4D7F-8CE1-CE6B6A95A9ED}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Resource", "src\ProtonVPN.Resources\ProtonVPN.Resource.csproj", "{45A0EA81-D37E-4D7F-8CE1-CE6B6A95A9ED}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Common.Tests", "src\Tests\ProtonVPN.Common.Tests\ProtonVPN.Common.Tests.csproj", "{5F2931B6-9A77-4F94-80CD-BC9B9A0C64BF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Common.Tests", "src\Tests\ProtonVPN.Common.Tests\ProtonVPN.Common.Tests.csproj", "{5F2931B6-9A77-4F94-80CD-BC9B9A0C64BF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{DAD0837D-1F65-47C7-8FA6-D6D34D979418}" ProjectSection(SolutionItems) = preProject @@ -52,83 +41,123 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution README.md = README.md EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.UI.Tests", "src\Tests\ProtonVPN.UI.Tests\ProtonVPN.UI.Tests.csproj", "{24E940FF-C9F3-4D5C-8FCF-CA527F055318}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Service.Tests", "src\Tests\ProtonVPN.Service.Tests\ProtonVPN.Service.Tests.csproj", "{4290C007-2142-4AD1-8EB6-F80EF2F45AA4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.UI.Tests", "src\Tests\ProtonVPN.UI.Tests\ProtonVPN.UI.Tests.csproj", "{24E940FF-C9F3-4D5C-8FCF-CA527F055318}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Vpn.Tests", "src\Tests\ProtonVPN.Vpn.Tests\ProtonVPN.Vpn.Tests.csproj", "{A16637C2-2D91-4953-AE04-D91EC188DD7B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Service.Tests", "src\Tests\ProtonVPN.Service.Tests\ProtonVPN.Service.Tests.csproj", "{4290C007-2142-4AD1-8EB6-F80EF2F45AA4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Tests.Common", "src\Tests\ProtonVPN.Tests.Common\ProtonVPN.Tests.Common.csproj", "{A0DA4200-6643-4F2C-8450-65B8CE8A5576}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Vpn.Tests", "src\Tests\ProtonVPN.Vpn.Tests\ProtonVPN.Vpn.Tests.csproj", "{A16637C2-2D91-4953-AE04-D91EC188DD7B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Service.Contract.Tests", "src\Tests\ProtonVPN.Service.Contract.Tests\ProtonVPN.Service.Contract.Tests.csproj", "{C4E97B08-345A-423B-BD4C-76593D1401B6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Tests.Common", "src\Tests\ProtonVPN.Tests.Common\ProtonVPN.Tests.Common.csproj", "{A0DA4200-6643-4F2C-8450-65B8CE8A5576}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Native", "src\ProtonVPN.Native\ProtonVPN.Native.csproj", "{CB301B4C-D518-41F5-873B-9B1F145DB4AF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Native", "src\ProtonVPN.Native\ProtonVPN.Native.csproj", "{CB301B4C-D518-41F5-873B-9B1F145DB4AF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.NetworkFilter", "src\ProtonVPN.NetworkFilter\ProtonVPN.NetworkFilter.csproj", "{1CF1B8BF-57EB-4E49-B644-0A8F2DFEEB58}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.NetworkFilter", "src\ProtonVPN.NetworkFilter\ProtonVPN.NetworkFilter.csproj", "{1CF1B8BF-57EB-4E49-B644-0A8F2DFEEB58}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.MarkupValidator", "src\ProtonVPN.MarkupValidator\ProtonVPN.MarkupValidator.csproj", "{BA03F069-6A26-45D1-8B05-6E61E3D9D1E1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.MarkupValidator", "src\ProtonVPN.MarkupValidator\ProtonVPN.MarkupValidator.csproj", "{BA03F069-6A26-45D1-8B05-6E61E3D9D1E1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.TlsVerify", "src\ProtonVPN.TlsVerify\ProtonVPN.TlsVerify.csproj", "{643CA26B-B80E-4E6A-AAE4-BCEC021D2AA0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.TlsVerify", "src\ProtonVPN.TlsVerify\ProtonVPN.TlsVerify.csproj", "{643CA26B-B80E-4E6A-AAE4-BCEC021D2AA0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestTools.ProfileCleaner", "src\Tests\TestTools.ProfileCleaner\TestTools.ProfileCleaner.csproj", "{4237AD33-596A-4B35-826A-B4E71461820F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestTools.ProfileCleaner", "src\Tests\TestTools.ProfileCleaner\TestTools.ProfileCleaner.csproj", "{4237AD33-596A-4B35-826A-B4E71461820F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestTools.ApiClient", "src\Tests\TestTools.ApiClient\TestTools.ApiClient.csproj", "{F059E362-20A2-472B-82CA-E727D31AC0C7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestTools.ApiClient", "src\Tests\TestTools.ApiClient\TestTools.ApiClient.csproj", "{F059E362-20A2-472B-82CA-E727D31AC0C7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Translations", "src\ProtonVPN.Translations\ProtonVPN.Translations.csproj", "{2A00C747-8BC0-4EF1-A53E-37A7E156D910}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Translations", "src\ProtonVPN.Translations\ProtonVPN.Translations.csproj", "{2A00C747-8BC0-4EF1-A53E-37A7E156D910}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.RestoreInternet", "ProtonVPN.RestoreInternet\ProtonVPN.RestoreInternet.csproj", "{8D07769D-0AAE-4224-AECB-DF68567F6B00}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.RestoreInternet", "ProtonVPN.RestoreInternet\ProtonVPN.RestoreInternet.csproj", "{8D07769D-0AAE-4224-AECB-DF68567F6B00}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Crypto", "src\ProtonVPN.Crypto\ProtonVPN.Crypto.csproj", "{BA2D505E-CED3-4FCB-A463-DAF6B77C18DE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Crypto", "src\ProtonVPN.Crypto\ProtonVPN.Crypto.csproj", "{BA2D505E-CED3-4FCB-A463-DAF6B77C18DE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Crypto.Tests", "src\Tests\ProtonVPN.Crypto.Tests\ProtonVPN.Crypto.Tests.csproj", "{7D608265-3330-4747-B5B4-9673A119FE6C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Crypto.Tests", "src\Tests\ProtonVPN.Crypto.Tests\ProtonVPN.Crypto.Tests.csproj", "{7D608265-3330-4747-B5B4-9673A119FE6C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.WireGuardService", "src\ProtonVPN.WireguardService\ProtonVPN.WireGuardService.csproj", "{A0A9C7B9-4A33-492E-BA54-8E8E600D3D66}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.WireGuardService", "src\ProtonVPN.WireguardService\ProtonVPN.WireGuardService.csproj", "{A0A9C7B9-4A33-492E-BA54-8E8E600D3D66}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.WireGuardDriver", "src\ProtonVPN.WireGuardDriver\ProtonVPN.WireGuardDriver.csproj", "{7882140D-32E1-4AB5-853D-F8DED5256DC2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.WireGuardDriver", "src\ProtonVPN.WireGuardDriver\ProtonVPN.WireGuardDriver.csproj", "{7882140D-32E1-4AB5-853D-F8DED5256DC2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Api", "src\Api\ProtonVPN.Api\ProtonVPN.Api.csproj", "{3E905528-D87C-4552-A32D-66BF90D14DB0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Api", "src\Api\ProtonVPN.Api\ProtonVPN.Api.csproj", "{3E905528-D87C-4552-A32D-66BF90D14DB0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Api.Contracts", "src\Api\ProtonVPN.Api.Contracts\ProtonVPN.Api.Contracts.csproj", "{9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Api.Contracts", "src\Api\ProtonVPN.Api.Contracts\ProtonVPN.Api.Contracts.csproj", "{9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Api", "Api", "{DCDB1771-1943-4459-8040-F001758E6E1E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Api.Installers", "src\Api\ProtonVPN.Api.Installers\ProtonVPN.Api.Installers.csproj", "{686E902E-0C23-4396-8887-6D9219EF8D27}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Api.Installers", "src\Api\ProtonVPN.Api.Installers\ProtonVPN.Api.Installers.csproj", "{686E902E-0C23-4396-8887-6D9219EF8D27}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.HumanVerification", "src\HumanVerification\ProtonVPN.HumanVerification\ProtonVPN.HumanVerification.csproj", "{8EE4A9C6-AA93-4A84-8EAB-4EC955DD6851}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.HumanVerification", "src\HumanVerification\ProtonVPN.HumanVerification\ProtonVPN.HumanVerification.csproj", "{8EE4A9C6-AA93-4A84-8EAB-4EC955DD6851}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HumanVerification", "HumanVerification", "{95E8A2C3-A9CF-4911-83AB-74498B7D1528}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.HumanVerification.Installers", "src\HumanVerification\ProtonVPN.HumanVerification.Installers\ProtonVPN.HumanVerification.Installers.csproj", "{80A71107-9C8E-47B2-B743-58D5976B38FB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.HumanVerification.Installers", "src\HumanVerification\ProtonVPN.HumanVerification.Installers\ProtonVPN.HumanVerification.Installers.csproj", "{80A71107-9C8E-47B2-B743-58D5976B38FB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.HumanVerification.Contracts", "src\HumanVerification\ProtonVPN.HumanVerification.Contracts\ProtonVPN.HumanVerification.Contracts.csproj", "{C0D6E7EC-29AF-4FC2-B8E0-1E5D083B55DD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.HumanVerification.Contracts", "src\HumanVerification\ProtonVPN.HumanVerification.Contracts\ProtonVPN.HumanVerification.Contracts.csproj", "{C0D6E7EC-29AF-4FC2-B8E0-1E5D083B55DD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Api.Tests", "src\Api\ProtonVPN.Api.Tests\ProtonVPN.Api.Tests.csproj", "{168C5EC3-FF08-402F-8D70-F216CB04DE81}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Api.Tests", "src\Api\ProtonVPN.Api.Tests\ProtonVPN.Api.Tests.csproj", "{168C5EC3-FF08-402F-8D70-F216CB04DE81}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.HumanVerification.Gui", "src\HumanVerification\ProtonVPN.HumanVerification.Gui\ProtonVPN.HumanVerification.Gui.csproj", "{7318548D-B8F2-4ED3-8B3E-F61DD8B552D1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.HumanVerification.Gui", "src\HumanVerification\ProtonVPN.HumanVerification.Gui\ProtonVPN.HumanVerification.Gui.csproj", "{7318548D-B8F2-4ED3-8B3E-F61DD8B552D1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.IntegrationTests", "src\Tests\ProtonVPN.IntegrationTests\ProtonVPN.IntegrationTests.csproj", "{A2B4BEC3-7430-489E-BE6B-F1E8205A7C62}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.IntegrationTests", "src\Tests\ProtonVPN.IntegrationTests\ProtonVPN.IntegrationTests.csproj", "{A2B4BEC3-7430-489E-BE6B-F1E8205A7C62}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.SourceGenerators", "src\ProtonVPN.SourceGenerators\ProtonVPN.SourceGenerators.csproj", "{B7B19A7B-5A20-4690-81F4-83002CA064FB}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Dns", "Dns", "{7D999E1B-C00B-4BA8-AEC3-94BA92010E38}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Dns", "src\Dns\ProtonVPN.Dns\ProtonVPN.Dns.csproj", "{8C4C72C3-DCC4-43B1-A2B3-DF77B435FA75}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Dns", "src\Dns\ProtonVPN.Dns\ProtonVPN.Dns.csproj", "{8C4C72C3-DCC4-43B1-A2B3-DF77B435FA75}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Dns.Contracts", "src\Dns\ProtonVPN.Dns.Contracts\ProtonVPN.Dns.Contracts.csproj", "{455DA1FB-5097-47D2-8603-B0E1F9D90294}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Dns.Contracts", "src\Dns\ProtonVPN.Dns.Contracts\ProtonVPN.Dns.Contracts.csproj", "{455DA1FB-5097-47D2-8603-B0E1F9D90294}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Dns.Installers", "src\Dns\ProtonVPN.Dns.Installers\ProtonVPN.Dns.Installers.csproj", "{E52E34FD-40AE-425B-9C1A-2CAB3EE2704F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Dns.Installers", "src\Dns\ProtonVPN.Dns.Installers\ProtonVPN.Dns.Installers.csproj", "{E52E34FD-40AE-425B-9C1A-2CAB3EE2704F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Dns.Tests", "src\Dns\ProtonVPN.Dns.Tests\ProtonVPN.Dns.Tests.csproj", "{F6B47679-3362-4A0C-BB4D-BD3C9B0550AF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Dns.Tests", "src\Dns\ProtonVPN.Dns.Tests\ProtonVPN.Dns.Tests.csproj", "{F6B47679-3362-4A0C-BB4D-BD3C9B0550AF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Announcements", "Announcements", "{56EA9268-0B36-46CB-B8F0-871DBEED5D4F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Announcements", "src\Announcements\ProtonVPN.Announcements\ProtonVPN.Announcements.csproj", "{45927301-6CF5-4770-888C-7B0B51ECEBEE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Announcements", "src\Announcements\ProtonVPN.Announcements\ProtonVPN.Announcements.csproj", "{45927301-6CF5-4770-888C-7B0B51ECEBEE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Announcements.Contracts", "src\Announcements\ProtonVPN.Announcements.Contracts\ProtonVPN.Announcements.Contracts.csproj", "{153BD6AB-6B34-4E97-A96D-4ED5826DC037}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Announcements.Installers", "src\Announcements\ProtonVPN.Announcements.Installers\ProtonVPN.Announcements.Installers.csproj", "{2088B3AF-F9AF-45B8-B824-16749D5DAF9E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Announcements.Tests", "src\Announcements\ProtonVPN.Announcements.Tests\ProtonVPN.Announcements.Tests.csproj", "{89E58A49-12C4-4C22-B646-348B6BFCCB4D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ProcessCommunication", "ProcessCommunication", "{7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.Contracts", "src\ProcessCommunication\ProtonVPN.ProcessCommunication.Contracts\ProtonVPN.ProcessCommunication.Contracts.csproj", "{8CEF18CA-9009-47F5-ADF4-63E73E6B663B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.Common", "src\ProcessCommunication\ProtonVPN.ProcessCommunication.Common\ProtonVPN.ProcessCommunication.Common.csproj", "{E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Service", "Service", "{AF9F8787-E233-4DBF-B973-916EBCD88D96}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "App", "App", "{A4955C19-C422-45E6-9F01-5AE2E9A76B2F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.Service", "src\ProcessCommunication\Service\ProtonVPN.ProcessCommunication.Service\ProtonVPN.ProcessCommunication.Service.csproj", "{321C6410-B154-45BD-B44A-7CD451BBA9F0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.Service.Installers", "src\ProcessCommunication\Service\ProtonVPN.ProcessCommunication.Service.Installers\ProtonVPN.ProcessCommunication.Service.Installers.csproj", "{076A3785-83CD-4AE3-BE45-1AE183587731}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.Service.Tests", "src\ProcessCommunication\Service\ProtonVPN.ProcessCommunication.Service.Tests\ProtonVPN.ProcessCommunication.Service.Tests.csproj", "{0997005B-E6FF-4D3F-AACE-C29338C7977F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.App", "src\ProcessCommunication\App\ProtonVPN.ProcessCommunication.App\ProtonVPN.ProcessCommunication.App.csproj", "{15F67655-8025-4389-8FF7-3F3CA7F543DA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.App.Installers", "src\ProcessCommunication\App\ProtonVPN.ProcessCommunication.App.Installers\ProtonVPN.ProcessCommunication.App.Installers.csproj", "{1BCFC9AF-6570-4996-949D-3C45F3411712}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.App.Tests", "src\ProcessCommunication\App\ProtonVPN.ProcessCommunication.App.Tests\ProtonVPN.ProcessCommunication.App.Tests.csproj", "{219FADE8-5473-4099-8291-7C29AA6F4808}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityMapping", "EntityMapping", "{E85D3982-0792-430A-9E58-8B7C1A329F88}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.EntityMapping.Contracts", "src\EntityMapping\ProtonVPN.EntityMapping.Contracts\ProtonVPN.EntityMapping.Contracts.csproj", "{BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.EntityMapping", "src\EntityMapping\ProtonVPN.EntityMapping\ProtonVPN.EntityMapping.csproj", "{A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.EntityMapping.Installers", "src\EntityMapping\ProtonVPN.EntityMapping.Installers\ProtonVPN.EntityMapping.Installers.csproj", "{D5596914-F824-45DD-9496-3D8A7FAD5796}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.EntityMapping", "src\ProcessCommunication\ProtonVPN.ProcessCommunication.EntityMapping\ProtonVPN.ProcessCommunication.EntityMapping.csproj", "{32817833-F567-4A92-BB57-8579A1D81DBA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.Installers", "src\ProcessCommunication\ProtonVPN.ProcessCommunication.Installers\ProtonVPN.ProcessCommunication.Installers.csproj", "{354CB379-4F37-4C57-B71C-916257B7B328}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.Common.Tests", "src\ProcessCommunication\ProtonVPN.ProcessCommunication.Common.Tests\ProtonVPN.ProcessCommunication.Common.Tests.csproj", "{E635ECAF-7338-4B82-A606-CAFEDCC11D6E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Announcements.Contracts", "src\Announcements\ProtonVPN.Announcements.Contracts\ProtonVPN.Announcements.Contracts.csproj", "{153BD6AB-6B34-4E97-A96D-4ED5826DC037}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.EntityMapping.Tests", "src\EntityMapping\ProtonVPN.EntityMapping.Tests\ProtonVPN.EntityMapping.Tests.csproj", "{9FAB310D-BB12-42A9-9E09-6762DF98DA0F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Announcements.Installers", "src\Announcements\ProtonVPN.Announcements.Installers\ProtonVPN.Announcements.Installers.csproj", "{2088B3AF-F9AF-45B8-B824-16749D5DAF9E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.ProcessCommunication.EntityMapping.Tests", "src\ProcessCommunication\ProtonVPN.ProcessCommunication.EntityMapping.Tests\ProtonVPN.ProcessCommunication.EntityMapping.Tests.csproj", "{99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Announcements.Tests", "src\Announcements\ProtonVPN.Announcements.Tests\ProtonVPN.Announcements.Tests.csproj", "{89E58A49-12C4-4C22-B646-348B6BFCCB4D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Launcher", "src\ProtonVPN.Launcher\ProtonVPN.Launcher.csproj", "{1CE13B94-7AD5-49A5-802C-945D34903C23}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -164,18 +193,6 @@ Global {0CDCA012-BB2D-49B3-944E-CE80D75D651A}.Release|x64.Build.0 = Release|Any CPU {0CDCA012-BB2D-49B3-944E-CE80D75D651A}.Release|x86.ActiveCfg = Release|Any CPU {0CDCA012-BB2D-49B3-944E-CE80D75D651A}.Release|x86.Build.0 = Release|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Debug|x64.ActiveCfg = Debug|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Debug|x64.Build.0 = Debug|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Debug|x86.ActiveCfg = Debug|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Debug|x86.Build.0 = Debug|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Release|Any CPU.Build.0 = Release|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Release|x64.ActiveCfg = Release|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Release|x64.Build.0 = Release|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Release|x86.ActiveCfg = Release|Any CPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365}.Release|x86.Build.0 = Release|Any CPU {CA44B51D-7645-413A-818F-2C5B57DB67DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CA44B51D-7645-413A-818F-2C5B57DB67DD}.Debug|Any CPU.Build.0 = Debug|Any CPU {CA44B51D-7645-413A-818F-2C5B57DB67DD}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -212,16 +229,6 @@ Global {7F48FD5C-A4C6-496A-B68E-265237C22330}.Release|x64.Build.0 = Release|Any CPU {7F48FD5C-A4C6-496A-B68E-265237C22330}.Release|x86.ActiveCfg = Release|Any CPU {7F48FD5C-A4C6-496A-B68E-265237C22330}.Release|x86.Build.0 = Release|Any CPU - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Debug|Any CPU.ActiveCfg = Debug|x86 - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Debug|Any CPU.Build.0 = Debug|x86 - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Debug|x64.ActiveCfg = Debug|x86 - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Debug|x86.ActiveCfg = Debug|x86 - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Release|Any CPU.ActiveCfg = Release|x86 - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Release|Any CPU.Build.0 = Release|x86 - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Release|x64.ActiveCfg = Release|x86 - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Release|x64.Build.0 = Release|x86 - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Release|x86.ActiveCfg = Release|x86 - {5F6696BC-A37D-4726-82AE-95EF42C307FC}.Release|x86.Build.0 = Release|x86 {4AA7CE6F-7154-49C1-B598-46055D590CAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4AA7CE6F-7154-49C1-B598-46055D590CAD}.Debug|Any CPU.Build.0 = Debug|Any CPU {4AA7CE6F-7154-49C1-B598-46055D590CAD}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -342,18 +349,6 @@ Global {A0DA4200-6643-4F2C-8450-65B8CE8A5576}.Release|x64.Build.0 = Release|Any CPU {A0DA4200-6643-4F2C-8450-65B8CE8A5576}.Release|x86.ActiveCfg = Release|Any CPU {A0DA4200-6643-4F2C-8450-65B8CE8A5576}.Release|x86.Build.0 = Release|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Debug|x64.ActiveCfg = Debug|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Debug|x64.Build.0 = Debug|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Debug|x86.ActiveCfg = Debug|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Debug|x86.Build.0 = Debug|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Release|Any CPU.Build.0 = Release|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Release|x64.ActiveCfg = Release|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Release|x64.Build.0 = Release|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Release|x86.ActiveCfg = Release|Any CPU - {C4E97B08-345A-423B-BD4C-76593D1401B6}.Release|x86.Build.0 = Release|Any CPU {CB301B4C-D518-41F5-873B-9B1F145DB4AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CB301B4C-D518-41F5-873B-9B1F145DB4AF}.Debug|Any CPU.Build.0 = Debug|Any CPU {CB301B4C-D518-41F5-873B-9B1F145DB4AF}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -714,6 +709,210 @@ Global {89E58A49-12C4-4C22-B646-348B6BFCCB4D}.Release|x64.Build.0 = Release|Any CPU {89E58A49-12C4-4C22-B646-348B6BFCCB4D}.Release|x86.ActiveCfg = Release|Any CPU {89E58A49-12C4-4C22-B646-348B6BFCCB4D}.Release|x86.Build.0 = Release|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Debug|x64.ActiveCfg = Debug|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Debug|x64.Build.0 = Debug|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Debug|x86.ActiveCfg = Debug|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Debug|x86.Build.0 = Debug|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Release|Any CPU.Build.0 = Release|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Release|x64.ActiveCfg = Release|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Release|x64.Build.0 = Release|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Release|x86.ActiveCfg = Release|Any CPU + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B}.Release|x86.Build.0 = Release|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Debug|x64.ActiveCfg = Debug|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Debug|x64.Build.0 = Debug|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Debug|x86.ActiveCfg = Debug|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Debug|x86.Build.0 = Debug|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Release|Any CPU.Build.0 = Release|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Release|x64.ActiveCfg = Release|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Release|x64.Build.0 = Release|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Release|x86.ActiveCfg = Release|Any CPU + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62}.Release|x86.Build.0 = Release|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Debug|x64.ActiveCfg = Debug|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Debug|x64.Build.0 = Debug|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Debug|x86.ActiveCfg = Debug|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Debug|x86.Build.0 = Debug|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Release|Any CPU.Build.0 = Release|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Release|x64.ActiveCfg = Release|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Release|x64.Build.0 = Release|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Release|x86.ActiveCfg = Release|Any CPU + {321C6410-B154-45BD-B44A-7CD451BBA9F0}.Release|x86.Build.0 = Release|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Debug|Any CPU.Build.0 = Debug|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Debug|x64.ActiveCfg = Debug|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Debug|x64.Build.0 = Debug|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Debug|x86.ActiveCfg = Debug|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Debug|x86.Build.0 = Debug|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Release|Any CPU.ActiveCfg = Release|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Release|Any CPU.Build.0 = Release|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Release|x64.ActiveCfg = Release|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Release|x64.Build.0 = Release|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Release|x86.ActiveCfg = Release|Any CPU + {076A3785-83CD-4AE3-BE45-1AE183587731}.Release|x86.Build.0 = Release|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Debug|x64.ActiveCfg = Debug|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Debug|x64.Build.0 = Debug|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Debug|x86.ActiveCfg = Debug|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Debug|x86.Build.0 = Debug|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Release|Any CPU.Build.0 = Release|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Release|x64.ActiveCfg = Release|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Release|x64.Build.0 = Release|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Release|x86.ActiveCfg = Release|Any CPU + {0997005B-E6FF-4D3F-AACE-C29338C7977F}.Release|x86.Build.0 = Release|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Debug|x64.ActiveCfg = Debug|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Debug|x64.Build.0 = Debug|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Debug|x86.ActiveCfg = Debug|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Debug|x86.Build.0 = Debug|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Release|Any CPU.Build.0 = Release|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Release|x64.ActiveCfg = Release|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Release|x64.Build.0 = Release|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Release|x86.ActiveCfg = Release|Any CPU + {15F67655-8025-4389-8FF7-3F3CA7F543DA}.Release|x86.Build.0 = Release|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Debug|x64.ActiveCfg = Debug|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Debug|x64.Build.0 = Debug|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Debug|x86.ActiveCfg = Debug|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Debug|x86.Build.0 = Debug|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Release|Any CPU.Build.0 = Release|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Release|x64.ActiveCfg = Release|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Release|x64.Build.0 = Release|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Release|x86.ActiveCfg = Release|Any CPU + {1BCFC9AF-6570-4996-949D-3C45F3411712}.Release|x86.Build.0 = Release|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Debug|Any CPU.Build.0 = Debug|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Debug|x64.ActiveCfg = Debug|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Debug|x64.Build.0 = Debug|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Debug|x86.ActiveCfg = Debug|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Debug|x86.Build.0 = Debug|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Release|Any CPU.ActiveCfg = Release|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Release|Any CPU.Build.0 = Release|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Release|x64.ActiveCfg = Release|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Release|x64.Build.0 = Release|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Release|x86.ActiveCfg = Release|Any CPU + {219FADE8-5473-4099-8291-7C29AA6F4808}.Release|x86.Build.0 = Release|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Debug|x64.ActiveCfg = Debug|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Debug|x64.Build.0 = Debug|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Debug|x86.ActiveCfg = Debug|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Debug|x86.Build.0 = Debug|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Release|Any CPU.Build.0 = Release|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Release|x64.ActiveCfg = Release|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Release|x64.Build.0 = Release|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Release|x86.ActiveCfg = Release|Any CPU + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2}.Release|x86.Build.0 = Release|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Debug|x64.ActiveCfg = Debug|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Debug|x64.Build.0 = Debug|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Debug|x86.ActiveCfg = Debug|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Debug|x86.Build.0 = Debug|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Release|Any CPU.Build.0 = Release|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Release|x64.ActiveCfg = Release|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Release|x64.Build.0 = Release|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Release|x86.ActiveCfg = Release|Any CPU + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F}.Release|x86.Build.0 = Release|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Debug|x64.ActiveCfg = Debug|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Debug|x64.Build.0 = Debug|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Debug|x86.ActiveCfg = Debug|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Debug|x86.Build.0 = Debug|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Release|Any CPU.Build.0 = Release|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Release|x64.ActiveCfg = Release|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Release|x64.Build.0 = Release|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Release|x86.ActiveCfg = Release|Any CPU + {D5596914-F824-45DD-9496-3D8A7FAD5796}.Release|x86.Build.0 = Release|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Debug|x64.ActiveCfg = Debug|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Debug|x64.Build.0 = Debug|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Debug|x86.ActiveCfg = Debug|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Debug|x86.Build.0 = Debug|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Release|Any CPU.Build.0 = Release|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Release|x64.ActiveCfg = Release|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Release|x64.Build.0 = Release|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Release|x86.ActiveCfg = Release|Any CPU + {32817833-F567-4A92-BB57-8579A1D81DBA}.Release|x86.Build.0 = Release|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Debug|Any CPU.Build.0 = Debug|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Debug|x64.ActiveCfg = Debug|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Debug|x64.Build.0 = Debug|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Debug|x86.ActiveCfg = Debug|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Debug|x86.Build.0 = Debug|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Release|Any CPU.ActiveCfg = Release|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Release|Any CPU.Build.0 = Release|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Release|x64.ActiveCfg = Release|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Release|x64.Build.0 = Release|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Release|x86.ActiveCfg = Release|Any CPU + {354CB379-4F37-4C57-B71C-916257B7B328}.Release|x86.Build.0 = Release|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Debug|x64.ActiveCfg = Debug|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Debug|x64.Build.0 = Debug|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Debug|x86.ActiveCfg = Debug|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Debug|x86.Build.0 = Debug|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Release|Any CPU.Build.0 = Release|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Release|x64.ActiveCfg = Release|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Release|x64.Build.0 = Release|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Release|x86.ActiveCfg = Release|Any CPU + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E}.Release|x86.Build.0 = Release|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Debug|x64.ActiveCfg = Debug|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Debug|x64.Build.0 = Debug|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Debug|x86.ActiveCfg = Debug|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Debug|x86.Build.0 = Debug|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Release|Any CPU.Build.0 = Release|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Release|x64.ActiveCfg = Release|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Release|x64.Build.0 = Release|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Release|x86.ActiveCfg = Release|Any CPU + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F}.Release|x86.Build.0 = Release|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Debug|x64.ActiveCfg = Debug|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Debug|x64.Build.0 = Debug|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Debug|x86.ActiveCfg = Debug|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Debug|x86.Build.0 = Debug|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Release|Any CPU.ActiveCfg = Release|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Release|Any CPU.Build.0 = Release|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Release|x64.ActiveCfg = Release|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Release|x64.Build.0 = Release|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Release|x86.ActiveCfg = Release|Any CPU + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026}.Release|x86.Build.0 = Release|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Debug|x64.ActiveCfg = Debug|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Debug|x64.Build.0 = Debug|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Debug|x86.ActiveCfg = Debug|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Debug|x86.Build.0 = Debug|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Release|Any CPU.Build.0 = Release|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Release|x64.ActiveCfg = Release|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Release|x64.Build.0 = Release|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Release|x86.ActiveCfg = Release|Any CPU + {1CE13B94-7AD5-49A5-802C-945D34903C23}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -727,7 +926,6 @@ Global {4290C007-2142-4AD1-8EB6-F80EF2F45AA4} = {A592E157-F76B-49CE-A5A4-EF130CDD757F} {A16637C2-2D91-4953-AE04-D91EC188DD7B} = {A592E157-F76B-49CE-A5A4-EF130CDD757F} {A0DA4200-6643-4F2C-8450-65B8CE8A5576} = {A592E157-F76B-49CE-A5A4-EF130CDD757F} - {C4E97B08-345A-423B-BD4C-76593D1401B6} = {A592E157-F76B-49CE-A5A4-EF130CDD757F} {4237AD33-596A-4B35-826A-B4E71461820F} = {A592E157-F76B-49CE-A5A4-EF130CDD757F} {F059E362-20A2-472B-82CA-E727D31AC0C7} = {A592E157-F76B-49CE-A5A4-EF130CDD757F} {7D608265-3330-4747-B5B4-9673A119FE6C} = {A592E157-F76B-49CE-A5A4-EF130CDD757F} @@ -748,6 +946,24 @@ Global {153BD6AB-6B34-4E97-A96D-4ED5826DC037} = {56EA9268-0B36-46CB-B8F0-871DBEED5D4F} {2088B3AF-F9AF-45B8-B824-16749D5DAF9E} = {56EA9268-0B36-46CB-B8F0-871DBEED5D4F} {89E58A49-12C4-4C22-B646-348B6BFCCB4D} = {56EA9268-0B36-46CB-B8F0-871DBEED5D4F} + {8CEF18CA-9009-47F5-ADF4-63E73E6B663B} = {7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F} + {E2404BB9-0B08-4DDB-AA8A-D55DAD042E62} = {7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F} + {AF9F8787-E233-4DBF-B973-916EBCD88D96} = {7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F} + {A4955C19-C422-45E6-9F01-5AE2E9A76B2F} = {7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F} + {321C6410-B154-45BD-B44A-7CD451BBA9F0} = {AF9F8787-E233-4DBF-B973-916EBCD88D96} + {076A3785-83CD-4AE3-BE45-1AE183587731} = {AF9F8787-E233-4DBF-B973-916EBCD88D96} + {0997005B-E6FF-4D3F-AACE-C29338C7977F} = {AF9F8787-E233-4DBF-B973-916EBCD88D96} + {15F67655-8025-4389-8FF7-3F3CA7F543DA} = {A4955C19-C422-45E6-9F01-5AE2E9A76B2F} + {1BCFC9AF-6570-4996-949D-3C45F3411712} = {A4955C19-C422-45E6-9F01-5AE2E9A76B2F} + {219FADE8-5473-4099-8291-7C29AA6F4808} = {A4955C19-C422-45E6-9F01-5AE2E9A76B2F} + {BCEADFB1-3446-4E82-91C1-E7A5D4E731C2} = {E85D3982-0792-430A-9E58-8B7C1A329F88} + {A3EB6441-4729-4FC9-B0E8-E0A075D4DF4F} = {E85D3982-0792-430A-9E58-8B7C1A329F88} + {D5596914-F824-45DD-9496-3D8A7FAD5796} = {E85D3982-0792-430A-9E58-8B7C1A329F88} + {32817833-F567-4A92-BB57-8579A1D81DBA} = {7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F} + {354CB379-4F37-4C57-B71C-916257B7B328} = {7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F} + {E635ECAF-7338-4B82-A606-CAFEDCC11D6E} = {7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F} + {9FAB310D-BB12-42A9-9E09-6762DF98DA0F} = {E85D3982-0792-430A-9E58-8B7C1A329F88} + {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026} = {7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {5CFD3EA5-ADCA-48F0-9E3F-BBC76CCBF1C2} diff --git a/README.md b/README.md index b232c28b4..7dcc4a33a 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ The app consists of these interacting parts: #### GUI application -The Proton VPN GUI app is installed into "C:\Program Files (x86)\Proton Technologies\ProtonVPN" +The Proton VPN GUI app is installed into "C:\Program Files\Proton AG\Proton VPN" directory by default. The main executable is "ProtonVPN.exe". Proton VPN GUI app starts Proton VPN Service and Update Service when launched and stops services @@ -51,7 +51,7 @@ TLS certificate pinning. To disable TLS certificate pinning the configuration fi #### Proton VPN Service The Windows service "ProtonVPN Service" is installed into -"C:\Program Files (x86)\Proton Technologies\ProtonVPN" directory by default. Service +"C:\Program Files\Proton AG\Proton VPN" directory by default. Service executable is "ProtonVPNService.exe". The service is started and stopped by the Proton VPN GUI app. @@ -70,7 +70,7 @@ Service logs are saved to "%ALLUSERSPROFILE%\ProtonVPN\Logs" directory. #### Proton VPN Update Service The Windows service "ProtonVPN Update Service" is installed into -"C:\Program Files (x86)\Proton Technologies\ProtonVPN" directory by default. Service +"C:\Program Files\Proton AG\Proton VPN" directory by default. Service executable is "ProtonVPN.UpdateService.exe". The service is started and stopped by the Proton VPN GUI app. @@ -115,7 +115,7 @@ The Proton VPN uses OpenVPN for maintaining a VPN tunnel. The new OpenVPN proces connect to a VPN and closed on disconnect. Communication with the OpenVPN process is maintained through TCP management interface. -OpenVPN is installed into "C:\Program Files (x86)\Proton Technologies\ProtonVPN\Resources\" +OpenVPN is installed into "C:\Program Files\Proton AG\Proton VPN\Resources\" directory by default. The OpenVPN config file is static, it doesn't change for each VPN server. The OpenVPN is built from official source by applying a patch to support Proton VPN specific @@ -125,9 +125,6 @@ TAP adapter. See [win-openvpn](https://github.com/ProtonVPN/win-openvpn) reposit TAP adapter "TAP-ProtonVPN Windows Adapter V9" is used by the OpenVPN. -The TAP adapter is installed into "C:\Program Files (x86)\Proton Technologies\ProtonVPNTap" -directory by default. - The TAP adapter is built from official source by applying a patch to have Proton VPN specific name and identification. See [win-tap-adapter](https://github.com/ProtonVPN/win-tap-adapter) repository. @@ -159,7 +156,7 @@ This folder contains Advanced Installer setup project files, resources included and built installer files. Subfolders contain: - "Images" - images for inclusion into the installer. -- "ProtonVPN-SetupFiles" - built Proton VPN installer files. +- "Installers" - built Proton VPN installer files. - "ProtonVPNTap-SetupFiles" - built TAP adapter installer files. The latest successfully built TAP adapter installer file is required to build the Proton VPN installer. - "SplitTunnel" - SplitTunnel Callout driver for inclusion into the installer. diff --git a/Setup/.gitignore b/Setup/.gitignore index c67b0c476..19240da02 100644 --- a/Setup/.gitignore +++ b/Setup/.gitignore @@ -1,7 +1 @@ -ProtonVPN-SetupFiles/* -ProtonVPN-cache/* -ProtonVPN.back.aip -ProtonVPNTap-cache/* -ProtonVPNTap-SetupFiles/* -ProtonVPNTun-cache/* -ProtonVPNTun-SetupFiles/* \ No newline at end of file +Installers/* \ No newline at end of file diff --git a/Setup/CodeDependencies.iss b/Setup/CodeDependencies.iss new file mode 100644 index 000000000..5e443ed0c --- /dev/null +++ b/Setup/CodeDependencies.iss @@ -0,0 +1,269 @@ +; -- CodeDependencies.iss -- +; +; This script shows how to download and install any dependency such as .NET, +; Visual C++ or SQL Server during your application's installation process. +; +; contribute: https://github.com/DomGries/InnoDependencyInstaller + + +; ----------- +; SHARED CODE +; ----------- +[Code] +// types and variables +type + TDependency_Entry = record + Filename: String; + Parameters: String; + Title: String; + URL: String; + Checksum: String; + ForceSuccess: Boolean; + RestartAfter: Boolean; + end; + +var + Dependency_Memo: String; + Dependency_List: array of TDependency_Entry; + Dependency_NeedRestart, Dependency_ForceX86: Boolean; + Dependency_DownloadPage: TDownloadWizardPage; + +procedure Dependency_Add(const Filename, Parameters, Title, URL, Checksum: String; const ForceSuccess, RestartAfter: Boolean); +var + Dependency: TDependency_Entry; + DependencyCount: Integer; +begin + Dependency_Memo := Dependency_Memo + #13#10 + '%1' + Title; + + Dependency.Filename := Filename; + Dependency.Parameters := Parameters; + Dependency.Title := Title; + + if FileExists(ExpandConstant('{tmp}{\}') + Filename) then begin + Dependency.URL := ''; + end else begin + Dependency.URL := URL; + end; + + Dependency.Checksum := Checksum; + Dependency.ForceSuccess := ForceSuccess; + Dependency.RestartAfter := RestartAfter; + + DependencyCount := GetArrayLength(Dependency_List); + SetArrayLength(Dependency_List, DependencyCount + 1); + Dependency_List[DependencyCount] := Dependency; +end; + + +procedure Dependency_Internal1; +begin + Dependency_DownloadPage := CreateDownloadPage(SetupMessage(msgWizardPreparing), SetupMessage(msgPreparingDesc), nil); +end; + + +function Dependency_Internal2(var NeedsRestart: Boolean): String; +var + DependencyCount, DependencyIndex, ResultCode: Integer; + Retry: Boolean; + TempValue: String; +begin + DependencyCount := GetArrayLength(Dependency_List); + + if DependencyCount > 0 then begin + Dependency_DownloadPage.Show; + + for DependencyIndex := 0 to DependencyCount - 1 do begin + if Dependency_List[DependencyIndex].URL <> '' then begin + Dependency_DownloadPage.Clear; + Dependency_DownloadPage.Add(Dependency_List[DependencyIndex].URL, Dependency_List[DependencyIndex].Filename, Dependency_List[DependencyIndex].Checksum); + + Retry := True; + while Retry do begin + Retry := False; + + try + Dependency_DownloadPage.Download; + except + if Dependency_DownloadPage.AbortedByUser then begin + Result := Dependency_List[DependencyIndex].Title; + DependencyIndex := DependencyCount; + end else begin + case SuppressibleMsgBox(AddPeriod(GetExceptionMessage), mbError, MB_ABORTRETRYIGNORE, IDIGNORE) of + IDABORT: begin + Result := Dependency_List[DependencyIndex].Title; + DependencyIndex := DependencyCount; + end; + IDRETRY: begin + Retry := True; + end; + end; + end; + end; + end; + end; + end; + + if Result = '' then begin + for DependencyIndex := 0 to DependencyCount - 1 do begin + Dependency_DownloadPage.SetText(Dependency_List[DependencyIndex].Title, ''); + Dependency_DownloadPage.SetProgress(DependencyIndex + 1, DependencyCount + 1); + + while True do begin + ResultCode := 0; + if ShellExec('', ExpandConstant('{tmp}{\}') + Dependency_List[DependencyIndex].Filename, Dependency_List[DependencyIndex].Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then begin + if Dependency_List[DependencyIndex].RestartAfter then begin + if DependencyIndex = DependencyCount - 1 then begin + Dependency_NeedRestart := True; + end else begin + NeedsRestart := True; + Result := Dependency_List[DependencyIndex].Title; + end; + break; + end else if (ResultCode = 0) or Dependency_List[DependencyIndex].ForceSuccess then begin // ERROR_SUCCESS (0) + break; + end else if ResultCode = 1641 then begin // ERROR_SUCCESS_REBOOT_INITIATED (1641) + NeedsRestart := True; + Result := Dependency_List[DependencyIndex].Title; + break; + end else if ResultCode = 3010 then begin // ERROR_SUCCESS_REBOOT_REQUIRED (3010) + Dependency_NeedRestart := True; + break; + end; + end; + + case SuppressibleMsgBox(FmtMessage(SetupMessage(msgErrorFunctionFailed), [Dependency_List[DependencyIndex].Title, IntToStr(ResultCode)]), mbError, MB_ABORTRETRYIGNORE, IDIGNORE) of + IDABORT: begin + Result := Dependency_List[DependencyIndex].Title; + break; + end; + IDIGNORE: begin + break; + end; + end; + end; + + if Result <> '' then begin + break; + end; + end; + + if NeedsRestart then begin + TempValue := '"' + ExpandConstant('{srcexe}') + '" /restart=1 /LANG="' + ExpandConstant('{language}') + '" /DIR="' + WizardDirValue + '" /GROUP="' + WizardGroupValue + '" /TYPE="' + WizardSetupType(False) + '" /COMPONENTS="' + WizardSelectedComponents(False) + '" /TASKS="' + WizardSelectedTasks(False) + '"'; + if WizardNoIcons then begin + TempValue := TempValue + ' /NOICONS'; + end; + RegWriteStringValue(HKA, 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', '{#SetupSetting("AppName")}', TempValue); + end; + end; + + Dependency_DownloadPage.Hide; + end; +end; + + +function Dependency_Internal3(const Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String; +begin + Result := ''; + if MemoUserInfoInfo <> '' then begin + Result := Result + MemoUserInfoInfo + Newline + NewLine; + end; + if MemoDirInfo <> '' then begin + Result := Result + MemoDirInfo + Newline + NewLine; + end; + if MemoTypeInfo <> '' then begin + Result := Result + MemoTypeInfo + Newline + NewLine; + end; + if MemoComponentsInfo <> '' then begin + Result := Result + MemoComponentsInfo + Newline + NewLine; + end; + if MemoGroupInfo <> '' then begin + Result := Result + MemoGroupInfo + Newline + NewLine; + end; + if MemoTasksInfo <> '' then begin + Result := Result + MemoTasksInfo; + end; + + if Dependency_Memo <> '' then begin + if MemoTasksInfo = '' then begin + Result := Result + SetupMessage(msgReadyMemoTasks); + end; + Result := Result + FmtMessage(Dependency_Memo, [Space]); + end; +end; + + +function Dependency_Internal4: Boolean; +begin + Result := Dependency_NeedRestart; +end; + +function Dependency_IsX64: Boolean; +begin + Result := not Dependency_ForceX86 and Is64BitInstallMode; +end; + +function Dependency_String(const x86, x64: String): String; +begin + if Dependency_IsX64 then begin + Result := x64; + end else begin + Result := x86; + end; +end; + +function Dependency_ArchSuffix: String; +begin + Result := Dependency_String('', '_x64'); +end; + +function Dependency_ArchTitle: String; +begin + Result := Dependency_String(' (x86)', ' (x64)'); +end; + +function Dependency_IsNetCoreInstalled(const Name: String; const Version: String): Boolean; +var + ResultCode: Integer; +begin + // source code: https://github.com/dotnet/deployment-tools/tree/master/src/clickonce/native/projects/NetCoreCheck + if not FileExists(ExpandConstant('{tmp}{\}') + 'netcorecheck' + Dependency_ArchSuffix + '.exe') then begin + ExtractTemporaryFile('netcorecheck' + Dependency_ArchSuffix + '.exe'); + end; + Result := ShellExec('', ExpandConstant('{tmp}{\}') + 'netcorecheck' + Dependency_ArchSuffix + '.exe', '--runtimename ' + Name + ' --runtimeversion ' + Version, '', SW_HIDE, ewWaitUntilTerminated, ResultCode) and (ResultCode = 0); +end; + +procedure Dependency_AddDotNet60Asp; +begin + // https://dotnet.microsoft.com/download/dotnet/6.0 + if not Dependency_IsNetCoreInstalled('Microsoft.AspNetCore.App', '6.0.13') then begin + Dependency_Add('dotnet60asp' + Dependency_ArchSuffix + '.exe', + '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', + 'ASP.NET Core Runtime 6.0.13' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/94504599-143a-4d53-b518-74aee0ebecca/dac4a7b1f7bdc7b4e8441d6befa4941a/aspnetcore-runtime-6.0.13-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/ef825766-9885-4123-890e-3679352eda71/d58566678c1bcd9aa95327bcff043ccb/aspnetcore-runtime-6.0.13-win-x64.exe'), + '', False, False); + end; +end; + +procedure Dependency_AddDotNet60Desktop; +begin + // https://dotnet.microsoft.com/download/dotnet/6.0 + if not Dependency_IsNetCoreInstalled('Microsoft.WindowsDesktop.App', '6.0.13') then begin + Dependency_Add('dotnet60desktop' + Dependency_ArchSuffix + '.exe', + '/lcid ' + IntToStr(GetUILanguage) + ' /passive /norestart', + '.NET Desktop Runtime 6.0.13' + Dependency_ArchTitle, + Dependency_String('https://download.visualstudio.microsoft.com/download/pr/d37ab8e6-095b-4f42-bea5-f519b3c62b68/3b87e1c571a3fc49607acc821d3f107a/windowsdesktop-runtime-6.0.13-win-x86.exe', 'https://download.visualstudio.microsoft.com/download/pr/4c5e26cf-2512-4518-9480-aac8679b0d08/523f1967fd98b0cf4f9501855d1aa063/windowsdesktop-runtime-6.0.13-win-x64.exe'), + '', False, False); + end; +end; + +procedure Dependency_AddVC2015To2022; +begin + // https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist + if not IsMsiProductInstalled(Dependency_String('{65E5BD06-6392-3027-8C26-853107D3CF1A}', '{36F68A90-239C-34DF-B58C-64B30153CE35}'), PackVersionComponents(14, 30, 30704, 0)) then begin + Dependency_Add('vcredist2022' + Dependency_ArchSuffix + '.exe', + '/passive /norestart', + 'Visual C++ 2015-2022 Redistributable' + Dependency_ArchTitle, + Dependency_String('https://aka.ms/vs/17/release/vc_redist.x86.exe', 'https://aka.ms/vs/17/release/vc_redist.x64.exe'), + '', False, False); + end; +end; diff --git a/Setup/NetCoreCheckCA.dll b/Setup/NetCoreCheckCA.dll new file mode 100644 index 0000000000000000000000000000000000000000..21f758d6ebeb0ec42296a36391dd031f1f16a44d GIT binary patch literal 146848 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�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 Y@N}~D2x?zxU(o7tLw0>j%whicH^d%kzyJUM literal 0 HcmV?d00001 diff --git a/Setup/NetCoreCheck_x64.exe b/Setup/NetCoreCheck_x64.exe new file mode 100644 index 0000000000000000000000000000000000000000..73ba728bcf7410468a04f45f0f51df7db3bd4f70 GIT binary patch literal 146384 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

?QvzOWQ+__@}oh|^ebh2>+-6@ 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 MM%}0n^GCdY05~gQ*8l(j literal 0 HcmV?d00001 diff --git a/Setup/ProtonVPN.aip b/Setup/ProtonVPN.aip deleted file mode 100644 index 9bfbc9baf..000000000 --- a/Setup/ProtonVPN.aip +++ /dev/null @@ -1,1057 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Setup/ProtonVPNTap.aip b/Setup/ProtonVPNTap.aip deleted file mode 100644 index 6da2e2ac3..000000000 --- a/Setup/ProtonVPNTap.aip +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Setup/ProtonVPNTun.aip b/Setup/ProtonVPNTun.aip deleted file mode 100644 index 38c493a91..000000000 --- a/Setup/ProtonVPNTun.aip +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Setup/SplitTunnel/x64/win7/ProtonVPN.CalloutDriver.inf b/Setup/SplitTunnel/ProtonVPN.CalloutDriver.inf similarity index 97% rename from Setup/SplitTunnel/x64/win7/ProtonVPN.CalloutDriver.inf rename to Setup/SplitTunnel/ProtonVPN.CalloutDriver.inf index 97b6e7d70..832d7ce48 100644 --- a/Setup/SplitTunnel/x64/win7/ProtonVPN.CalloutDriver.inf +++ b/Setup/SplitTunnel/ProtonVPN.CalloutDriver.inf @@ -48,7 +48,7 @@ LoadOrderGroup = NDIS Dependencies = TCPIP ; Load after TCPIP.sys [Strings] -ManufacturerName = "Proton Technologies AG" +ManufacturerName = "Proton AG" DiskName = "ProtonVPN Callout Driver Installation Disk" ServiceName = "ProtonVPNCallout" ServiceDisplayName = "ProtonVPN Callout" diff --git a/Setup/SplitTunnel/x64/win10/ProtonVPN.CalloutDriver.sys b/Setup/SplitTunnel/ProtonVPN.CalloutDriver.sys similarity index 100% rename from Setup/SplitTunnel/x64/win10/ProtonVPN.CalloutDriver.sys rename to Setup/SplitTunnel/ProtonVPN.CalloutDriver.sys diff --git a/Setup/SplitTunnel/x64/win10/protonvpn.calloutdriver.cat b/Setup/SplitTunnel/protonvpn.calloutdriver.cat similarity index 100% rename from Setup/SplitTunnel/x64/win10/protonvpn.calloutdriver.cat rename to Setup/SplitTunnel/protonvpn.calloutdriver.cat diff --git a/Setup/SplitTunnel/x64/win10/ProtonVPN.CalloutDriver.inf b/Setup/SplitTunnel/x64/win10/ProtonVPN.CalloutDriver.inf deleted file mode 100644 index 97b6e7d70..000000000 --- a/Setup/SplitTunnel/x64/win10/ProtonVPN.CalloutDriver.inf +++ /dev/null @@ -1,55 +0,0 @@ -; -; ProtonVPN.CalloutDriver.inf -; - -[Version] -Signature = "$WINDOWS NT$" -Class = WFPCALLOUTS -ClassGuid = {57465043-616C-6C6F-7574-5F636C617373} -Provider = %ManufacturerName% -CatalogFile = ProtonVPN.CalloutDriver.cat -DriverVer = 01/26/2021,18.36.11.107 - -[SourceDisksNames] -1 = %DiskName%,,,"" - -[SourceDisksFiles] -ProtonVPN.CalloutDriver.sys = 1,, - -[DestinationDirs] -DefaultDestDir = 12 ; %WinDir%\System32\Drivers -ProtonVPN.CalloutDriver.Files = 12 ; %WinDir%\System32\Drivers - -[DefaultInstall.NTamd64] -OptionDesc = %ServiceDescription% -CopyFiles = ProtonVPN.CalloutDriver.Files - -[DefaultUninstall.NTamd64] -LegacyUninstall = 1 -DelFiles = ProtonVPN.CalloutDriver.Files - -[DefaultInstall.NTamd64.Services] -AddService = %ServiceName%,,ProtonVPN.CalloutDriver.Service - -[DefaultUninstall.NTamd64.Services] -DelService = %ServiceName%,0x200 ; SPSVCINST_STOPSERVICE - -[ProtonVPN.CalloutDriver.Files] -ProtonVPN.CalloutDriver.sys,,,0x00000040 ; COPYFLG_OVERWRITE_OLDER_ONLY - -[ProtonVPN.CalloutDriver.Service] -DisplayName = %ServiceDisplayName% -Description = %ServiceDescription% -ServiceType = 1 ; SERVICE_KERNEL_DRIVER -StartType = 3 ; SERVICE_DEMAND_START -ErrorControl = 1 ; SERVICE_ERROR_NORMAL -ServiceBinary = %12%\ProtonVPN.CalloutDriver.sys -LoadOrderGroup = NDIS -Dependencies = TCPIP ; Load after TCPIP.sys - -[Strings] -ManufacturerName = "Proton Technologies AG" -DiskName = "ProtonVPN Callout Driver Installation Disk" -ServiceName = "ProtonVPNCallout" -ServiceDisplayName = "ProtonVPN Callout" -ServiceDescription = "ProtonVPN Callout Driver" diff --git a/Setup/SplitTunnel/x64/win7/ProtonVPN.CalloutDriver.sys b/Setup/SplitTunnel/x64/win7/ProtonVPN.CalloutDriver.sys deleted file mode 100644 index 97bcc0efd2c9a19301e645f6f9530dea97fc2a84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25824 zcmeIa2V7H0_b`0ZAk>5^Dni7lD1w(FQq)Z#$c$=GZb69?z6^rnw{;qhZcFZSbkR&exMZTiV<~^~a)ULnv735S zm&MGa;)OA4D*hp6HWe?9nFF!vkHyi8A$D0fKL*uvS(qM;@Ld)zpy~}uPfkO$TlXY3 z48tU)Z0w_mn`kI&!rU+my0tUb1t4xZXt@o39`RF#VeSy|d@w8k;(zod zLb;QkB?l28Dt45>JwmCwO6(dk?LbCfDs;_DsK4^U>FfA42O}zFiR8oNrZsf zNAfWGcu*pa77s?C1E@S30va4I2u2?d!^U{Y74l?&Q8F%o1nO%mfeJ7z#7i#C$O1$p zb0m9;zdk7Q?r06|GI$`v1VZ?Lt- zurp^GPHVN=GhaTcKFNwgSS1xoYpB=&7)0<9C0$!XRa|OZgHVm+vk6rOpG&Bee5ZJ* z&-4A0AYTyVJ0kdOj-~HO&CEm$Yp4f#?qP#g5GpHEiX*G5ApaB<>jFfCnned-ipsMJ zz$;SyYgC9VUO1=Q3#Y?FAB3qQA zMJqNw1+}oT z5z0y`@+=T5jobIY{M9o8A`JM82#w^SX3eFzu$oD6QK{%dcvKU6&gumYTvFxQlf>J* z1o@t*e8wWQCkT>(m@@%oR)sc0qwYlUGg^-3Tb(zIS1bKSsEK5#(|VdRA_{2rKf$1L zF-%+>faL@cq>wEp^VnoIL8c8OO0>$ZBJ!9{4?#m={JsNVPUCc#T*VR2wBlr^&nFl( zsITLomG+?iI;jTpxkHA=3kM5_2!{&MK*W;6ox(_9`kgxTN#7@?7{-|~873EJi$=Id zmYthTUf7FFoYrB7GosuCedbL6UWZXE;q$PAFg-94c{Y-)ptMi35-cr+6|KYK>@p#1 z_)W$4IFYtgL5OHn1%!gR3|tt^h86Z_g=mghatqGaF8cC8P*- zh`k7;9(wDV-{b%KPlSh;@)t3geoXJeOjjYgpp~Oe1u2U#(cp>`ka9^Ld=z z0(O}1$uQpvRN^coFG3Big9r4LAg@v*uz=E&YOR9{0;;F;%K#uG!FY)HI8-E5k$iXG zI)b#i)Ll2RR0k*=L|?NRv;iiR7^DRln*akW+5?~v2^LxaO(QY^hzzNt43rRI$SnaZ z5g2oK$n!MW6rp^W*Qd1(iguLz_ao&Z$aCZct;0+JkrycLr$EvN2rlE70|}V5vBCu5 zXyGW~$b`|OssuiN0yF#cRkaQ=fGwDHtnvJrGr)$3tP|Hh4kN3T+z^njSgfrSF)E^h zPsy9!9HA-A)gfBWE+!jbApQy=SzXz{WmJ=ul^SjeqcY`f%@=F+wS5g?Q#Lk_N0gjY zT2Rev9WJy*az3whSWP9sG$NZ#S>1`?llWE`Q`6DYEp61`35UYu6A&s1ACDrR6XXGY z0rdBTDVqP#3THYWjd*cj2&beSq{whE5}fHAND|~gHd%xOyq?J^`2;aqBS4h>1E?`? z1W0k7fXyknOO*{Hh>{ze=@$_=7;2oRpd;86^blmo0co6*8szUxui%vYii(TZ@CzV@ zgoGapE9P`6>stpyq?yJ-T9MCz1r*^BPUVpr4Wt;Ih(4a8KJ|s0sL4B zKa!7Y98nDtkfDoha?Ckg#!JpLA-j=9GE_n)K@R4}5+!v?E=5aE$cd_>%bKMy(Ed^^Lc3K!OnmObQ(1z00lv|z5v__Xl=v#Z^2(5u%01H&LW*#)y=&h^P;qQ2?K(%01z%>3yC&0-8O(lHK zXs)332y7FYeV}QH!h{5*Ym_g6CNxhchYCIvt9$K5QSiBM%V8vH!wR)ghlr70U4qy5**0J`oB*lx-0SYp4yKL;cn0bj?cmckMoKfJz+H z?)UIxa5cefK}QPSO;d_EyK4*IZ}<$m%)o+o=1M=Zva_}c!}|Wp1yGm5_Z90Qc0o`$ z7U)|KM3mg(cUq-I;rnN>)F~N06;<14RUi!*I#v|oh4K@C@Tq+sfUb4e14}E2F92Cc zn5SW?2p*slFex-JDIi0#9H5@~L})z|DnzLwt{T;zsH;tUZC?xC(hbRtcS|w4FWefRWB^sNc5KuLY1rej4n1qDUd|eo9Q% zYS0KFj{))Pj#@b7b2$v*a2?=3yb`7R6-W=g5+2oPp`ld)mb(C*4G5}LsTF`b50d~%uIYMy*4eCE_ z=Xh~h`JBRvRPyPN#{m!O-r^2s+l5w1p!f~ArZA1Tpt=hU_ zSPqw{tmLM=t<-9BU=S-$avMM`p)NI^)IbtsZ6s;+sw0N&eG5gfN2rH1p>>ssaawaOp)DzB^gg+Fcm7h3<76hT&si<{Z<-tfzvU=vBU8$b@G zH%F@44p0rIHCF+cH{p8@mmb35M$(%&Hnb3qO(dx^K1de1>M0!+4k=5eL1`}nLxbPi1cHzv}0nCVt>%VLC zMC9Q!w4lrVqbx<7JJ^QH;f}Q7akvs2oYPI%1T6`~+LN4a;tEc;fi;|N!|OTjM{{a* z?J|{Z4b%~`fn%tU^9*?4D6ON_BWX=SAZ{n**jOMWs@Fzr8RVzy2;!XMB(f1Sdi_1W ztxC(j#lMG+e~KRJga>rO13KZM>%sDn;nw>2y&k{6K5uBJpaUjAen6RvE=I-~haiBE z4FTN;)If-ZMX(-1EUe;K8z_em3!%aZ!?wW@3eds0E&zuR3n39gHUumY>WzVO{PBRN zz_1wi@B7fUz8@Hxl#vk|A{4zGo6Nl&8yEBI?n_&JJ5D>*Dt}sL-Zg~WmKsv9dttv2 z+T@9WCcBQGPCSLr$~hX8HtgK6tUVF?_&@N2rfJ-2omd;MGB)>r&@ijM@A>1~ZSLPn zN;jbn(18yhUH?Q_5V~r>BCt%je@MY1v2<(t71^V%6MT_gLgFESCo*{3*3qzy(fBqX3CyJ}ROP9@J zJ{260z02vf&qabb3k@1ML?M+cMnBu~Pzkh@WcQBxd`VVwF7WRaO`yiy( zIP9pXJU>&0unItb1rQrxd>qFr0JgzU5AgUt-dMUD9G|z~!34y0cTisG=+1}V3yLrp zCp5J%FC0%!Nrm|U`9zdYO-Yx)yeNQtGYG_R?}T)259pUJ&!0GPqGSwI!*G8Ldw}rr z^cPP8=m(;s&&EQYYG+)gBqcc`NudDYNcc&Bf+a#39K&H=Uza7Lvb1lPNl;lfl(o=Q z=4VUOW$8*FS@2DGGFArg0N9IpjZr|)-~$HHy_ew*40Rl50a$<6g-bE)CPITeAJxc) zdp9Pyhx$7%bXN!@Fugo|Ac;u;20I%A45S5f6kzDwLyzZ&V937vq4Cm<1xOFR0=?|f z-54JS$wMAsWe86PquN05cFt^!<%pSB`PpGs+s&FxvrQ74VZI}N=;kIE9m>r8OfYjF zlSEqwbBqCb2c;F}AhE<8{46jBxlR2uzz4Q43$T@wAs~H0AKiorfnj1Yh#qUpWmB}c zP>&1sxN^&EL%n1;iK~IoQqSI;!nK#MG5f)$m_4*_@59ZeGZ`2S+Gmad+7`OBMUjqA zlP`Q`)155gezCKOlb=22^n-nqZ9TWfy23KsBGEkdOP|=7`5=?*c6@V;4Rsy;oG`~1 zmi6W}>}=CSlUO7J(Dc?a$flb?p8(%XPLHKKTVv*sc9z&+&V#v_vmXa@mOC{$*4x+E zRsg?9ekSe)`DIh`aO{TUfm3}k0Z0fXDoTDRh2)4nQF{a+)2R_mzG>N}oG;rQn4C|+I4MXeUs3xcip7m%L8 zwFtHi{F~X3;R(OJ4!4$HY^!!!m;WdKe@Fscu<;OX_J*|`;#7Sa`MN*Yz}gCMW@}Z;96R9uU8T5D94k*jFipn~+X}_-6mkGf9K~@-0EhHo zh;Kqz25A&u9s{Td2VxIczcV0>)@_&ZFh?Mb{QcDm=ofEN*5hMa9kZ9P52_Pz37sQhgq%sQTW%{WUQ%0xsW9!m%F7N`{(R zhf4?#-SiOT2rgW;<=kwnJ|l>ujylvGrlE!cJ1hYz$_$c4pscEc3bN2raO6Th0agUXQZ8InI0(R>Bh*n%T8Bdjhf4iQr5wUgk&3kf^_PM#Yr&YM z!wA)3NLnx^wqT^8l!_%pMI`Hch)%GE!7oUYde~u$?vT|{=$6m74$hAOy?6@OL>>n` z^=RR#dkZ}$9X&Hd4~}Ph02;*~#TcUn?fF@%+3UAZdm8u!7a5)33*gA8YB`F_|6S2Sz|R1x`BSow%0EI#fO1y49w zBJzHtbr|_5jI+Bp0O?_jS7E_T6BJ=2$OZ1mHP2vXh*bU}RSH`*l?!#0E^viyif-~5 z=TcPYWQ`7$O~qt9TSEtZ0gN6*@o{(b7$}U*;bJFDFmRj+buJI?(fZfS9Mw%Vss}-4 za^XOemUBH!m4h|d18e&`0h2<|LQWA2vSBK3;fXK|39#Wck|JDGqfVliC+7PX(xF4Q zAqy37PEmW%vM^HUL;x3}KzdGlAt`hY3}NQjLV_0+1V1puQfWqz(_mU?b1tBV zExSOhIUH3&4?>mTG&7-F!z`dFhW9VCR zv7zuQhg>?Ag`w@SPUYg^93>rInV=JtWWb1mpn!i#SSqA2OjkY-%b{xL8)1rpN(#`D z1BE1@|218MLWe=g1Z)u0P6Z4Fi@!av?3DN)5ar8oK&Jpe=bT z8o=CtzW?ha(6au+(LC!4tfH_IU4>gg>axEUmfd17tXhXZE0C>)cK`%ggG}9bP*RB& zCN*mxih`?k*WWrq(;J+ux|D5jnT^wV9D_to*>uje6zdL2Ml22rmA{PeE_ zG*C(ZI^eWM0em#JqiVC>QXWPdXk$6p9<75ZqE5Za6rdFpy~RZGaYAqD;3XYeO$(nC z=-9u2)*t4DlCs&Z!DL-d(gsjKBj26*Sz?5l9jwaHV!ghi+&V zeA3fp0o_Jm$YBtGfv@>g*R7m^8LdOwB4_4kXamZIl^ZIrK$Thg%AA==P|k@5 zo`+~SHenjylPAJ71@P4Jc-Wsb5K|L+kfzzZ0cxvQB=SCBCYT?ll)4M5NKsB(Tfu)CA($(3N(O)M++cA&*9KxID_Ta#UQca&;U#v z@gBoo9oSH^#K9Fg0UU3l@*XUaR=og+usA~aRsyT;kVz4#tkCKQ_1mHdaV{p|=?%*q zW#7W!hQ>26>z?2_`1O17Xh#(MzC!F;{ohj z-+%6%zLv^9ELxJT2$w2Fa6}%GlaeBpW9=!J5Ki`!la$hEsZs}zOjjslv$8U<4ODr5 zx%3-l(IRo2SKRP8*ePRSc?KG&T70@PZE#X5b_(FAt}!fy6_pv1lb#`ol4SJHl1FFB zVv|y(5~{VMba9q}4isY@7~(8cAEhN02??PIifn0edP;h7LRykck^vpSWEKgC`HX}d z8Qfb)u&L}p$_z1_mJgAoC&OO?#VO_KGC0Pc4(&qUqX33Ot5CA4qW+}$WWf@-5JaDdl#`;glR_L!nbof%aH|VM{ ze27d=QIg6-@*|}AIJSr?6(*0*Nta7Q(G5X*NzAPCqjv8Tr40SyWl}kajp!C?cN<~tTcoxVg zWkUA2HLvm6>)1=Ac!eEZyFojVK&C1SiHL7eZUXn5tF0-JyAu@FD zg8p9W3oL|!n6`pYLWVQOFL=7TI(WROf23%TPP4zBLI279KbHWFy4Ql^xPq@~!5ISp zKu!JvhwBZDfU-m=nGJjS*57Ofx^^0h#bF8X8wNXobB;jn3A?k4|ND8?J8=wb1z!3_(e^H`oP=f|KqoapL9r13EFUsjg z>aTt9GLomUG>v8H1*4Ns>48p0Iw}&7eKK(VkM!VQm60DcUSHF0J!-ATOayYH!3;w0 zG7P=_qUGpMCt)J$PZMO&19To>tY2o#Z3yA7A4~=`7r3jORyD8Mv$|&W)z$T@0U*%b zabxA~<%06Ga)A8j`~RT?sJ|_y(=oiL%UKh%?xjTOTPvC=y}YQ)Apq^8(`eonxS0vd z!F$HMSP6LSv}xL7XgO{X!-`{8}?HbxK*ZpNTt<;>Oe0u1kHRF7#t^!?41p7#ot zeCpm)b@J1$V^_L7YbYy`a;~Ljg@x*9_Ss2Q{VS(tb77+Z=V2fAC&(dkM!o@E;@p3{#u>q$s6SB zZHL?FxH12NVE{7hjDUC%&CR%HG#17vqH$mdXy)`H8Vx(sIkzm|B+t$9bw%;6>8IRR zd}8I=9NRoo{;@wj^u+dA%b5xM(_RsG6N~!a9kj`^Fg!csmZY}vb&sDpMSU$jwk*D~ z%f6JGzdzWnV8U$nU2)ymF+E*Jzh9JgN7Z#Fo>Q1-{nl$geu}{Rny^8oSu9f;jp>c|#61mpoL1T~ zO{vTd>e(|ZS&{9PN@B@G)wM{`y%?T%pQ1m+`YU@Ilt6RUng0f@vSOe z0LQ~oB_30N!wfQELK4IMa34d%bedxqL_`5CPna;_FI1%2S&DRJmOQ_wu^zz;0X?E& zow6Iw-#her_?87BSw};CH=g}2Xs@Kri!mk<#B;$+lQye9Z>mk`bKLjE%Q?4PJM=r# zE^%p*#jhtmPW^F4_g|)P*2X{mHF#{v<=Y1Z$<3SBR?pmK`|*wN4##YA0{d^C*~pIgos9s()?<|_D$HQ|NjDWx)rRKgpYl!4xF!M=(Yinh_9lCX~kGY6(9 zju86v@`psY??1IP*LLsgym`UP5r>2(&T*$Kxw8ifhx_JBUd1neaH;drC$ZCqEs^I7 z?)A*O_`~Ba)+@Fwoc!VFr}3g&vlDiAB1i9k^)cdfr@mFWjMufZ!w!tk=|I-0REO>l z?0dX=)^_h+rn0@S_l>oB#a+4O(ipM(q$lzFHu+5cZA#thp(g%Mw>_&FyXEmF*UMHb zColT2IeV$+sD(`hHTnIY3<)}OA>aekbiHX#QBi%()Cqg$HrBa++>&XZCY+WVdWG1R zD7w2_uBmC_F(zHVzSAV<#CFE*<^{*o=8m4U;-}^Q_2=rw9X~#?fmz~$W!i1*`qN!do%(cj$4?RQ7e484~>qS zny^v}Eolr~_ywBq-)E|F&5oYwdF`1?#D?bhmx92Kry~1wSkcXcchN&sH}hOOE7tkq z!u^fu2fWqYkDd^nNlaYee16qkI^TNph(kS&bahGHt#Nnt8F)YN<&rylR(g@$cTO^A z960FDoO`lnSa33pY$Vr-{93@^R@Yh z+s!_<^7oZ@^8OeX`#gL>dIW#Zb(Y3*d5p=E0p7f+F{4VS_w4oa*=3c}<6T`hSKM3k z+p})tIxb#&@$;XI-rGLDR(C&eb9(Xp+f{!g;61>4R%K1q=VQy(4&d+U83Q}B7DlFTfb#M=dTMn=Tk&LJv2S)QfHN�W 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 J&8fYw{s+*1YjFSo diff --git a/Setup/SplitTunnel/x86/win10/ProtonVPN.CalloutDriver.inf b/Setup/SplitTunnel/x86/win10/ProtonVPN.CalloutDriver.inf deleted file mode 100644 index a45727648..000000000 --- a/Setup/SplitTunnel/x86/win10/ProtonVPN.CalloutDriver.inf +++ /dev/null @@ -1,55 +0,0 @@ -; -; ProtonVPN.CalloutDriver.inf -; - -[Version] -Signature = "$WINDOWS NT$" -Class = WFPCALLOUTS -ClassGuid = {57465043-616C-6C6F-7574-5F636C617373} -Provider = %ManufacturerName% -CatalogFile = ProtonVPN.CalloutDriver.cat -DriverVer = 01/26/2021,18.36.18.516 - -[SourceDisksNames] -1 = %DiskName%,,,"" - -[SourceDisksFiles] -ProtonVPN.CalloutDriver.sys = 1,, - -[DestinationDirs] -DefaultDestDir = 12 ; %WinDir%\System32\Drivers -ProtonVPN.CalloutDriver.Files = 12 ; %WinDir%\System32\Drivers - -[DefaultInstall.NTx86] -OptionDesc = %ServiceDescription% -CopyFiles = ProtonVPN.CalloutDriver.Files - -[DefaultUninstall.NTx86] -LegacyUninstall = 1 -DelFiles = ProtonVPN.CalloutDriver.Files - -[DefaultInstall.NTx86.Services] -AddService = %ServiceName%,,ProtonVPN.CalloutDriver.Service - -[DefaultUninstall.NTx86.Services] -DelService = %ServiceName%,0x200 ; SPSVCINST_STOPSERVICE - -[ProtonVPN.CalloutDriver.Files] -ProtonVPN.CalloutDriver.sys,,,0x00000040 ; COPYFLG_OVERWRITE_OLDER_ONLY - -[ProtonVPN.CalloutDriver.Service] -DisplayName = %ServiceDisplayName% -Description = %ServiceDescription% -ServiceType = 1 ; SERVICE_KERNEL_DRIVER -StartType = 3 ; SERVICE_DEMAND_START -ErrorControl = 1 ; SERVICE_ERROR_NORMAL -ServiceBinary = %12%\ProtonVPN.CalloutDriver.sys -LoadOrderGroup = NDIS -Dependencies = TCPIP ; Load after TCPIP.sys - -[Strings] -ManufacturerName = "Proton Technologies AG" -DiskName = "ProtonVPN Callout Driver Installation Disk" -ServiceName = "ProtonVPNCallout" -ServiceDisplayName = "ProtonVPN Callout" -ServiceDescription = "ProtonVPN Callout Driver" diff --git a/Setup/SplitTunnel/x86/win10/ProtonVPN.CalloutDriver.sys b/Setup/SplitTunnel/x86/win10/ProtonVPN.CalloutDriver.sys deleted file mode 100644 index 155bda74e6b349d353e85013c67d88492420ff1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31104 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 l=;?Rb&^0uR*av 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 diff --git a/Setup/SplitTunnel/x86/win7/ProtonVPN.CalloutDriver.inf b/Setup/SplitTunnel/x86/win7/ProtonVPN.CalloutDriver.inf deleted file mode 100644 index a45727648..000000000 --- a/Setup/SplitTunnel/x86/win7/ProtonVPN.CalloutDriver.inf +++ /dev/null @@ -1,55 +0,0 @@ -; -; ProtonVPN.CalloutDriver.inf -; - -[Version] -Signature = "$WINDOWS NT$" -Class = WFPCALLOUTS -ClassGuid = {57465043-616C-6C6F-7574-5F636C617373} -Provider = %ManufacturerName% -CatalogFile = ProtonVPN.CalloutDriver.cat -DriverVer = 01/26/2021,18.36.18.516 - -[SourceDisksNames] -1 = %DiskName%,,,"" - -[SourceDisksFiles] -ProtonVPN.CalloutDriver.sys = 1,, - -[DestinationDirs] -DefaultDestDir = 12 ; %WinDir%\System32\Drivers -ProtonVPN.CalloutDriver.Files = 12 ; %WinDir%\System32\Drivers - -[DefaultInstall.NTx86] -OptionDesc = %ServiceDescription% -CopyFiles = ProtonVPN.CalloutDriver.Files - -[DefaultUninstall.NTx86] -LegacyUninstall = 1 -DelFiles = ProtonVPN.CalloutDriver.Files - -[DefaultInstall.NTx86.Services] -AddService = %ServiceName%,,ProtonVPN.CalloutDriver.Service - -[DefaultUninstall.NTx86.Services] -DelService = %ServiceName%,0x200 ; SPSVCINST_STOPSERVICE - -[ProtonVPN.CalloutDriver.Files] -ProtonVPN.CalloutDriver.sys,,,0x00000040 ; COPYFLG_OVERWRITE_OLDER_ONLY - -[ProtonVPN.CalloutDriver.Service] -DisplayName = %ServiceDisplayName% -Description = %ServiceDescription% -ServiceType = 1 ; SERVICE_KERNEL_DRIVER -StartType = 3 ; SERVICE_DEMAND_START -ErrorControl = 1 ; SERVICE_ERROR_NORMAL -ServiceBinary = %12%\ProtonVPN.CalloutDriver.sys -LoadOrderGroup = NDIS -Dependencies = TCPIP ; Load after TCPIP.sys - -[Strings] -ManufacturerName = "Proton Technologies AG" -DiskName = "ProtonVPN Callout Driver Installation Disk" -ServiceName = "ProtonVPNCallout" -ServiceDisplayName = "ProtonVPN Callout" -ServiceDescription = "ProtonVPN Callout Driver" diff --git a/Setup/SplitTunnel/x86/win7/ProtonVPN.CalloutDriver.sys b/Setup/SplitTunnel/x86/win7/ProtonVPN.CalloutDriver.sys deleted file mode 100644 index 8def39f381ec782b9c9d232830b4cca26d450b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22744 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 diff --git a/Setup/SplitTunnel/x86/win7/protonvpn.calloutdriver.cat b/Setup/SplitTunnel/x86/win7/protonvpn.calloutdriver.cat deleted file mode 100644 index 0733a5cb7d920adee21dd1d1868e7530f0e9bafc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10816 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 P(wE73-f%};SugZIEd6eW diff --git a/Setup/check-KB2921916.bat b/Setup/check-KB2921916.bat deleted file mode 100644 index ce91e4f80..000000000 --- a/Setup/check-KB2921916.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off - -wmic qfe get hotfixid | FindStr "KB2921916" > NUL -if errorlevel 1 ( - echo Update is not installed - exit /b %errorlevel% -) \ No newline at end of file diff --git a/Setup/check-KB2992611.bat b/Setup/check-KB2992611.bat deleted file mode 100644 index d8a696fb4..000000000 --- a/Setup/check-KB2992611.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off - -wmic qfe get hotfixid | FindStr "KB2992611" > NUL -if errorlevel 1 ( - echo Update is not installed - exit /b %errorlevel% -) \ No newline at end of file diff --git a/Setup/check-KB3033929.bat b/Setup/check-KB3033929.bat deleted file mode 100644 index ceac6db09..000000000 --- a/Setup/check-KB3033929.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off - -wmic qfe get hotfixid | FindStr "KB3033929 KB4019264 KB4022719 KB4025341 KB4034664 KB4038777 KB4041681 KB4343900 KB4457144 KB4462923 KB4467107 KB4471318 KB4480970 KB4486563 KB4489878 KB4474419 KB4493472 KB4499164 KB4499175 KB4503292 KB4503269 KB4507449 KB4507456 KB4512506 KB4516065 KB4519976 KB4524157 KB4015549 KB3197868 KB3185330" > NUL -if errorlevel 1 ( - echo Update is not installed - exit /b %errorlevel% -) \ No newline at end of file diff --git a/Setup/check-KB3063858.bat b/Setup/check-KB3063858.bat deleted file mode 100644 index 437d55c27..000000000 --- a/Setup/check-KB3063858.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off - -wmic qfe get hotfixid | FindStr "KB3063858 KB2533623 KB4457144 KB3126587 KB3126593 KB3146706 KB4014793" > NUL -if errorlevel 1 ( - echo Update is not installed - exit /b %errorlevel% -) \ No newline at end of file diff --git a/Setup/setup.iss b/Setup/setup.iss new file mode 100644 index 000000000..ceb53561e --- /dev/null +++ b/Setup/setup.iss @@ -0,0 +1,499 @@ +#define MyAppVersion "3.0.0" +#define MyAppName "Proton VPN" +#define MyAppExeName "ProtonVPN.exe" +#define LauncherExeName "ProtonVPN.Launcher.exe" + +#define MyPublisher "Proton AG" + +#define ServiceName "ProtonVPN Service" +#define ServiceExe "ProtonVPNService.exe" + +#define WireGuardServiceName "ProtonVPN WireGuard" +#define WireGuardServiceExe "ProtonVPN.WireGuardService.exe" + +#define NetworkDriverName "ProtonVPNCallout" +#define NetworkDriverFileName "Resources\ProtonVPN.CalloutDriver.sys" + +#define Hash "" +#define VersionFolder "v" + MyAppVersion + +#include "CodeDependencies.iss" + +[Setup] +AppName={#MyAppName} +AppVersion={#MyAppVersion} +DefaultDirName={autopf}\Proton\VPN +DefaultGroupName=Proton +DisableDirPage=auto +DisableProgramGroupPage=auto +AppPublisher={#MyPublisher} +UninstallDisplayIcon={app}\{#LauncherExeName} +UninstallDisplayName={#MyAppName} +OutputBaseFilename=ProtonVPN_{#VersionFolder} +WizardStyle=modern +Compression=lzma2 +SolidCompression=yes +OutputDir=Installers +ArchitecturesInstallIn64BitMode=x64 +SetupIconFile=Images\protonvpn.ico +SetupLogging=yes +DisableFinishedPage=yes +VersionInfoProductTextVersion={#MyAppVersion}-{#hash} +VersionInfoVersion={#MyAppVersion} +AppCopyright= 2022 {#MyPublisher} +SignTool=signtool sign /a /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td SHA256 /fd SHA256 $f + +[Messages] +SetupWindowTitle={#MyAppName} + +[Files] +Source: "..\src\bin\ProtonVPN.Launcher.exe"; DestDir: "{app}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Launcher.dll"; DestDir: "{app}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Launcher.deps.json"; DestDir: "{app}"; +Source: "..\src\bin\ProtonVPN.Launcher.runtimeconfig.json"; DestDir: "{app}"; +Source: "..\src\ProtonVPN.NativeHost\bin\ProtonVPN.exe"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\ProtonVPN.NativeHost\bin\nethost.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.InstallActions.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.InstallActions.x86.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.runtimeconfig.json"; DestDir: "{app}\{#VersionFolder}" +Source: "..\src\bin\ProtonVPN.RestoreInternet.exe"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.RestoreInternet.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.RestoreInternet.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.RestoreInternet.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.RestoreInternet.runtimeconfig.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.TlsVerify.exe"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.TlsVerify.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.TlsVerify.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.TlsVerify.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.TlsVerify.runtimeconfig.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.WireGuardService.exe"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.WireGuardService.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.WireGuardService.runtimeconfig.json"; DestDir: "{app}\{#VersionFolder}" +Source: "..\src\bin\ProtonVPNService.exe"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPNService.dll"; DestDir: "{app}\{#VersionFolder}"; AfterInstall: InstallService; Flags: signonce; +Source: "..\src\bin\ProtonVPNService.deps.json"; DestDir: "{app}\{#VersionFolder}"; AfterInstall: InstallService; +Source: "..\src\bin\ProtonVPNService.runtimeconfig.json"; DestDir: "{app}\{#VersionFolder}"; AfterInstall: InstallService; +Source: "..\src\bin\7za.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Albireo.Base32.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ARSoft.Tools.Net.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Autofac.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\BouncyCastle.Crypto.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ByteSize.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\CalcBinding.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Caliburn.Micro.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Caliburn.Micro.Platform.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Caliburn.Micro.Platform.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\DeviceId.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\DeviceId.Windows.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\DeviceId.Windows.Wmi.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\DnsClient.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\DynamicExpresso.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\GalaSoft.MvvmLight.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Caliburn.Micro.Platform.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\log4net.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Microsoft.Bcl.AsyncInterfaces.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Microsoft.Toolkit.Uwp.Notifications.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Microsoft.Web.WebView2.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Microsoft.Web.WebView2.Wpf.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Microsoft.Win32.Registry.AccessControl.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Newtonsoft.Json.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\OxyPlot.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\OxyPlot.Wpf.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\PInvoke.Kernel32.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\PInvoke.Windows.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\PInvoke.Windows.ShellScalingApi.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\PluralNet.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Polly.Contrib.WaitAndRetry.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Polly.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Announcements.Contracts.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Announcements.Contracts.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Announcements.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Announcements.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Announcements.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Announcements.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Api.Contracts.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Api.Contracts.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Api.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Api.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Api.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Api.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Api.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Common.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Common.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Common.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Core.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Core.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Crypto.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Crypto.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Dns.Contracts.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Dns.Contracts.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Dns.Contracts.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Dns.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Dns.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Dns.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Dns.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Dns.Installers.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Dns.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.EntityMapping.Contracts.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.EntityMapping.Contracts.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.EntityMapping.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.EntityMapping.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.EntityMapping.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.EntityMapping.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.HumanVerification.Contracts.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.HumanVerification.Contracts.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.HumanVerification.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.HumanVerification.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.HumanVerification.Contracts.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.HumanVerification.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.HumanVerification.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.HumanVerification.Gui.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.HumanVerification.Gui.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Native.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Native.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.NetworkFilter.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.NetworkFilter.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.App.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.App.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.App.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.App.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Common.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Common.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Contracts.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Contracts.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.EntityMapping.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.EntityMapping.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Service.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Service.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Service.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.ProcessCommunication.Service.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Resource.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Resource.dll.config"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Resource.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Translations.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Translations.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Update.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Update.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Vpn.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Vpn.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.WireGuardDriver.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.WireGuardDriver.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\Sentry.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Configuration.ConfigurationManager.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Diagnostics.EventLog.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Drawing.Common.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.IO.Packaging.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Text.Encodings.Web.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Text.Json.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Management.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; + +;Do we really need this file? +Source: "..\src\bin\Microsoft.Windows.SDK.NET.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; + +Source: "..\src\bin\System.Private.ServiceModel.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.ServiceProcess.ServiceController.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Reflection.Context.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Runtime.Caching.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Security.Cryptography.Pkcs.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Security.Cryptography.ProtectedData.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Security.Cryptography.Xml.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Security.Permissions.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.ServiceModel.Duplex.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.ServiceModel.Federation.dll"; DestDir: "{app}\{#VersionFolder}" +Source: "..\src\bin\System.ServiceModel.Http.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.ServiceModel.NetTcp.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.ServiceModel.Primitives.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.ServiceModel.Security.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.ServiceModel.Syndication.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.ServiceProcess.ServiceController.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\System.Windows.Extensions.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\WinRT.Runtime.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Grpc.Core.Api.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Grpc.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Grpc.Net.Client.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Grpc.Net.Common.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\grpc_csharp_ext.x64.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Microsoft.Win32.Registry.AccessControl.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Microsoft.Win32.SystemEvents.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\Microsoft.Xaml.Behaviors.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\protobuf-net.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\protobuf-net.Grpc.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\protobuf-net.Grpc.Native.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; + +Source: "..\src\bin\en-US\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\en-US"; Flags: signonce; +Source: "..\src\bin\cs-CZ\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\cs-CZ"; Flags: signonce; +Source: "..\src\bin\de-DE\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\de-DE"; Flags: signonce; +Source: "..\src\bin\fa-IR\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\fa-IR"; Flags: signonce; +Source: "..\src\bin\fr-FR\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\fr-FR"; Flags: signonce; +Source: "..\src\bin\nl-NL\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\nl-NL"; Flags: signonce; +Source: "..\src\bin\hr-HR\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\hr-HR"; Flags: signonce; +Source: "..\src\bin\id-ID\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\id-ID"; Flags: signonce; +Source: "..\src\bin\it-IT\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\it-IT"; Flags: signonce; +Source: "..\src\bin\pl-PL\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\pl-PL"; Flags: signonce; +Source: "..\src\bin\pt-PT\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\pt-PT"; Flags: signonce; +Source: "..\src\bin\pt-BR\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\pt-BR"; Flags: signonce; +Source: "..\src\bin\ro-RO\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\ro-RO"; Flags: signonce; +Source: "..\src\bin\ru-RU\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\ru-RU"; Flags: signonce; +Source: "..\src\bin\es-ES\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\es-ES"; Flags: signonce; +Source: "..\src\bin\es-419\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\es-419"; Flags: signonce; +Source: "..\src\bin\uk-UA\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\uk-UA"; Flags: signonce; +Source: "..\src\bin\tr-TR\ProtonVPN.Translations.resources.dll"; DestDir: "{app}\{#VersionFolder}\tr-TR"; Flags: signonce; + +Source: "..\src\bin\Resources\GoSrp.dll"; DestDir: "{app}\{#VersionFolder}\Resources"; Flags: signonce; +Source: "..\src\bin\Resources\ProtonVPN.IPFilter.dll"; DestDir: "{app}\{#VersionFolder}\Resources"; Flags: signonce; +Source: "..\src\bin\Resources\ProtonVPN.NetworkUtil.dll"; DestDir: "{app}\{#VersionFolder}\Resources"; Flags: signonce; +Source: "..\src\bin\Resources\LocalAgent.dll"; DestDir: "{app}\{#VersionFolder}\Resources"; Flags: signonce; +Source: "..\src\bin\Resources\libcrypto-1_1-x64.dll"; DestDir: "{app}\{#VersionFolder}\Resources"; Flags: signonce; +Source: "..\src\bin\Resources\libpkcs11-helper-1.dll"; DestDir: "{app}\{#VersionFolder}\Resources"; Flags: signonce; +Source: "..\src\bin\Resources\libssl-1_1-x64.dll"; DestDir: "{app}\{#VersionFolder}\Resources"; Flags: signonce; +Source: "..\src\bin\Resources\openvpn.exe"; DestDir: "{app}\{#VersionFolder}\Resources"; Flags: signonce; +Source: "..\src\bin\Resources\vcruntime140.dll"; DestDir: "{app}\{#VersionFolder}\Resources"; Flags: signonce; +Source: "..\src\bin\Resources\config.ovpn"; DestDir: "{app}\{#VersionFolder}\Resources"; +Source: "..\src\ProtonVPN.Vpn\Resources\wireguard.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\ProtonVPN.Vpn\Resources\tunnel.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; + +Source: "..\src\bin\runtimes\win-x64\native\WebView2Loader.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; + +Source: "tap\tapinstall.exe"; DestDir: "{app}\{#VersionFolder}\Resources\tap" +Source: "tap\OemVista.inf"; DestDir: "{app}\{#VersionFolder}\Resources\tap" +Source: "tap\tapprotonvpn.cat"; DestDir: "{app}\{#VersionFolder}\Resources\tap" +Source: "tap\tapprotonvpn.Sys"; DestDir: "{app}\{#VersionFolder}\Resources\tap"; + +Source: "SplitTunnel\ProtonVPN.CalloutDriver.sys"; DestDir: "{app}\{#VersionFolder}\Resources"; AfterInstall: InstallNetworkDriver; +Source: "tun\wintun.dll"; DestDir: "{app}\{#VersionFolder}\Resources"; +Source: "GuestHoleServers.json"; DestDir: "{app}\{#VersionFolder}\Resources"; +Source: "NetCoreCheck_x64.exe"; Flags: dontcopy; +Source: "NetCoreCheckCA.dll"; Flags: dontcopy; + +[Icons] +Name: "{group}\Proton VPN"; Filename: "{app}\{#LauncherExeName}" +Name: "{commondesktop}\Proton VPN"; Filename: "{app}\{#LauncherExeName}" + +[Languages] +Name: "en_US"; MessagesFile: "compiler:Default.isl" +Name: "cs_CZ"; MessagesFile: "compiler:Languages\Czech.isl" +Name: "de_DE"; MessagesFile: "compiler:Languages\German.isl" +Name: "fr_FR"; MessagesFile: "compiler:Languages\French.isl" +Name: "nl_NL"; MessagesFile: "compiler:Languages\Dutch.isl" +Name: "it_IT"; MessagesFile: "compiler:Languages\Italian.isl" +Name: "pl_PL"; MessagesFile: "compiler:Languages\Polish.isl" +Name: "pt_BR"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl" +Name: "pt_PT"; MessagesFile: "compiler:Languages\Portuguese.isl" +Name: "ru_RU"; MessagesFile: "compiler:Languages\Russian.isl" +Name: "es_ES"; MessagesFile: "compiler:Languages\Spanish.isl" +Name: "uk_UA"; MessagesFile: "compiler:Languages\Ukrainian.isl" +Name: "tr_TR"; MessagesFile: "compiler:Languages\Turkish.isl" + +[UninstallDelete] +Type: filesandordirs; Name: "{commonappdata}\ProtonVPN" +Type: filesandordirs; Name: "{localappdata}\ProtonVPN" + +[Dirs] +Name: "{localappdata}\ProtonVPN\DiagnosticLogs" + +[Code] +function InitLogger(logger: Longword): Integer; +external 'InitLogger@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; + +function InitLoggerUninstall(logger: Longword): Integer; +external 'InitLogger@{%TEMP}\ProtonVPN.InstallActions.x86.dll cdecl delayload uninstallonly'; + +function UninstallProduct(upgradeCode: String): Integer; +external 'UninstallProduct@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; + +function UninstallTapAdapter(tapFilesPath: String): Integer; +external 'UninstallTapAdapter@ProtonVPN.InstallActions.x86.dll cdecl delayload uninstallonly'; + +function SaveOldUserConfigFolder(): Integer; +external 'SaveOldUserConfigFolder@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; + +function RestoreOldUserConfigFolder(applicationPath: String): Integer; +external 'RestoreOldUserConfigFolder@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; + +function InstallWindowsService(name, displayName, path: String): Integer; +external 'InstallService@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; + +function IsProcessRunning(processName: String): Boolean; +external 'IsProcessRunning@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; + +function InstallCalloutDriver(name, displayName, path: String): Integer; +external 'InstallCalloutDriver@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; + +function UninstallService(name: String): Integer; +external 'UninstallService@{%TEMP}\ProtonVPN.InstallActions.x86.dll cdecl delayload uninstallonly'; + +function lstrlenW(lpString: Cardinal): Cardinal; +external 'lstrlenW@kernel32.dll stdcall'; + +function lstrcpyW(lpStringDest: String; lpStringSrc: Cardinal): Integer; +external 'lstrcpyW@kernel32.dll stdcall'; + +var + IsToReboot: Boolean; + +function NeedRestart(): Boolean; +begin + Result := IsToReboot; +end; + +procedure LogProc(ptr: Cardinal); +var + length: Cardinal; + line: String; +begin + length := lstrlenW(ptr); + line := ''; + SetLength(line, length); + + if length > 0 then begin + lstrcpyW(line, ptr); + Log(line); + end; +end; + +function InstallServiceInner(name, displayName, path: String): Integer; +begin + Log('Installing Service ' + name + ' Path: ' + path); + Result := InstallWindowsService(name, displayName, path); + Log('Service install returned: ' + IntToStr(Result)); +end; + +procedure InstallService(); +begin + InstallServiceInner('{#ServiceName}', '{#ServiceName}', ExpandConstant('{app}') + '\{#VersionFolder}' + '\{#ServiceExe}'); +end; + +function InstallCalloutDriverInner(name, displayName, path: String): Integer; +begin + Log('Installing callout driver ' + name + ' Path: ' + path); + Result := InstallCalloutDriver(name, displayName, path); + Log('Callout driver install returned: ' + IntToStr(Result)); +end; + +procedure InstallNetworkDriver(); +begin + InstallCalloutDriverInner('{#NetworkDriverName}', '{#NetworkDriverName}', ExpandConstant('{app}') + '\{#VersionFolder}' + '\{#NetworkDriverFileName}'); +end; + +function IsWindowsVersionEqualOrHigher(Major, Minor, Build: Integer): Boolean; +var + Version: TWindowsVersion; +begin + GetWindowsVersionEx(Version); + Result := + (Version.Major > Major) or + ((Version.Major = Major) and (Version.Minor > Minor)) or + ((Version.Major = Major) and (Version.Minor = Minor) and (Version.Build >= Build)); +end; + +function InitializeSetup(): Boolean; +var + Version: String; + ErrCode: integer; + WindowsVersion: TWindowsVersion; +begin + if IsWindowsVersionEqualOrHigher(10, 0, 17763) = False then begin + MsgBox('This application does not support your Windows version. You will be redirected to a download page with an application suitable for your Windows version. ', mbInformation, MB_OK); + ShellExec('open', 'https://protonvpn.com/free-vpn/windows/windows7', '', '', SW_SHOW, ewNoWait, ErrCode); + Result := False; + exit; + end; + if RegValueExists(HKEY_LOCAL_MACHINE,'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1', 'DisplayVersion') then begin + RegQueryStringValue(HKEY_LOCAL_MACHINE,'Software\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1', 'DisplayVersion', Version); + if Version > '{#MyAppVersion}' then begin + MsgBox(ExpandConstant('{#MyAppName} is already installed with the newer version ' + Version + '.'), mbInformation, MB_OK); + Result := False; + end + else begin + Result := True; + end; + end + else begin + Result := True; + end; + + if Result = False then begin + exit; + end; + + InitLogger(CreateCallback(@LogProc)); + Dependency_AddDotNet60Asp; + Dependency_AddDotNet60Desktop; + Dependency_AddVC2015To2022; + Result := true; +end; + +function InitializeUninstall: Boolean; +begin + Log('InitializeUninstall'); + Result := FileCopy(ExpandConstant('{app}\{#VersionFolder}\ProtonVPN.InstallActions.x86.dll'), ExpandConstant('{%TEMP}\ProtonVPN.InstallActions.x86.dll'), False); + InitLoggerUninstall(CreateCallback(@LogProc)); +end; + +function UninstallServiceInner(name: String): Integer; +begin + Log('Uninstalling Service ' + name); + Result := UninstallService(name); + Log('Service uninstall returned: ' + IntToStr(Result)); +end; + +function PrepareToInstall(var NeedsRestart: Boolean): String; +begin + Log('Trying to save user settings for the old ProtonVPN app if it is installed'); + SaveOldUserConfigFolder(); + Log('Trying to uninstall an old version of ProtonVPN app'); + UninstallProduct('{2B10124D-2F81-4BB1-9165-4F9B1B1BA0F9}'); + Log('Trying to uninstall an old version of ProtonVPN TUN adapter'); + UninstallProduct('{FED0679F-A292-4507-AEF5-DD2BB8898A36}'); + Log('Trying to uninstall an old version of ProtonVPN TAP adapter'); + UninstallProduct('{E23B9F7F-AA0A-481A-8ECA-FA69794BF50A}'); +end; + +procedure CurStepChanged(CurStep: TSetupStep); +var + logfilepathname, logfilename, newfilepathname, langCode, launcherArgs: String; + res: Integer; +begin + if CurStep = ssDone then begin + logfilepathname := ExpandConstant('{log}'); + logfilename := ExtractFileName(logfilepathname); + newfilepathname := ExpandConstant('{localappdata}') + '\ProtonVPN\DiagnosticLogs\ProtonVPN_install.log'; + FileCopy(logfilepathname, newfilepathname, false); + if IsProcessRunning('{#MyAppExeName}') then begin + exit; + end; + RestoreOldUserConfigFolder(ExpandConstant('{app}')); + if not IsToReboot or WizardForm.NoRadio.Checked = True then begin + launcherArgs := ''; + if WizardSilent() = false then begin + langCode := ActiveLanguage(); + StringChangeEx(langCode, '_', '-', True); + launcherArgs := '/lang ' + langCode; + end; + ExecAsOriginalUser(ExpandConstant('{app}\{#LauncherExeName}'), launcherArgs, '', SW_SHOW, ewNoWait, res); + end; + end +end; + +procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); +var res, errorCode: Integer; +begin + Log('CurUninstallStepChanged(' + IntToStr(Ord(CurUninstallStep)) + ') called'); + if CurUninstallStep = usUninstall then begin + Log('Killing {#MyAppExeName} process'); + ShellExec('open', 'taskkill.exe', '/f /im {#MyAppExeName}', '', SW_HIDE, ewNoWait, errorCode); + Log('taskkill returned ' + IntToStr(errorCode) + ' code'); + UninstallServiceInner('{#ServiceName}'); + UninstallServiceInner('{#WireGuardServiceName}'); + UninstallServiceInner('{#NetworkDriverName}'); + Log('Uninstalling TAP adapter driver'); + res := UninstallTapAdapter(ExpandConstant('{app}\{#VersionFolder}\Resources\tap')); + Log('TAP uninstallation returned: ' + IntToStr(res)); + end; +end; \ No newline at end of file diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/windows10/x64/OemVista.inf b/Setup/tap/OemVista.inf similarity index 100% rename from src/ProtonVPN.TapInstaller/Resources/tap/windows10/x64/OemVista.inf rename to Setup/tap/OemVista.inf diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/installer/x64/tapinstall.exe b/Setup/tap/tapinstall.exe similarity index 100% rename from src/ProtonVPN.TapInstaller/Resources/tap/installer/x64/tapinstall.exe rename to Setup/tap/tapinstall.exe diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/windows10/x64/tapprotonvpn.Sys b/Setup/tap/tapprotonvpn.Sys similarity index 100% rename from src/ProtonVPN.TapInstaller/Resources/tap/windows10/x64/tapprotonvpn.Sys rename to Setup/tap/tapprotonvpn.Sys diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/windows10/x64/tapprotonvpn.cat b/Setup/tap/tapprotonvpn.cat similarity index 100% rename from src/ProtonVPN.TapInstaller/Resources/tap/windows10/x64/tapprotonvpn.cat rename to Setup/tap/tapprotonvpn.cat diff --git a/Setup/tun/wintun.dll b/Setup/tun/wintun.dll index 6e7a6e3b31dcf91cc6b093efe85c7d6cc749952c..aee04e77bfbd6601adbcd5a46435f059e31cf6e4 100644 GIT binary patch delta 173100 zcmagH34Bx4);^r1IS_`BDg??LFhCiEN%AIwI|LGT|o;iVh`i047?!)tgOLv?( zEuK@)M8$LRnMzTA$C;DjIql3bJfpwvs`~-Yqsp|pX?W&cnkeA&F5P+Ndy#*+j?bgY z4)M&pG==51x?As_IS0hmrBAo$pguO=+Op^QH|9<^8UN}`JzcFVZMvFzTTG@KtfI7N zx%%dOYoC^Do0&`~DS4o|dSt%!>Y){VlT63WCexb!Nv7)wxjM;I@dw)FCz(<@BR{d3 z$(6?PW~SfJHtSD|X}tQq)}~9B(H2t%S~mR4vY2X;Or}7$BvX+(y|2Bk>S~o_YgN+= z*pdO&+wxpzOIODe^+*HObP>;f7Ij*yq>hgKt}I0B)_A&;)L-tic612(;KS4fg=tCZ zGe5TI*d_%nO+_eVzx?VA3#{E+mLkjITr_OowxdIIU^NQCtm)RI=RUJ^bdY&=!eqm9 zY%}$~_nZGmopZmnM=& zu5Mv6$%^#Rpd^!=zEuvFlmb=BUPo~mD1|PX9VH#XlN`1m^Cy{n=@sca()Y%lj}m)W zdKYCN;wXLs!0G3zyzVR$gy)a=gYK;Kz5a-=RQWbCwtd`Lcwdrj^MdQV|#qzEnV<$8qO;5R*X~7`!fVXEz;!<#OC9BUj)JkH{c&qw!xXdoX0c1s40noqt|!F^x#VNI6RG<#@3+n2Tz^qT`MpL2>$CIU>f(Q%-HwektM5 zVU(#gmzwJwq(OB!_+qe8k;)2BIhyNgKr!SA0=4(*3iT(d6kr%ZNXL_>ko{7VBSAq5 zeaVs||J1d_>M%RCmfO`4>u1{Sz{B$&NrbPT|k>vR4Jbeq_?m$>E_} z2@`!=XgDuD?L|v8Z_g8GVQ_A<-8(eW!NyZ}+oLtK76N*~;Y9 zY~{hUY~=^fv}sef>}>K+jz|y5sy$%6%`)qtIwN519hAf4-N}B8U5Y>Kce~`!$y9bb zOKW=rkcYOWUWQ;NY}@|<|Ka}y?|0k&tI=%}CxMPjRxZfFNPtuAvwpA~nBB@jrCO=g z<^Y%SMclan#h9j{t*&WzPBs|vD_>8TlpT31<(x37wJpJ>B3;5Fq?=SBgYaa`!5!J* z2eoXaHYYsuC}w0%_`w>#ax5qONVPBhoFBx|;b1OgJ|hhSve%<7CE z0cS@h$zuKRMaEiWWp~_p)!o8wl&pjGi#xwTJBTrW71YDpmBCj(7#?w)0 zVDu|r5F4zNv=v5|1`2f8hhAs^{C=9+xU+1Iu#FroH!(e9Tj!6}?uK6;p@7@AO z&{yOsZ;gx>P3OpwoK-<0S-_vg{%~QbH(dCFHmyjv5c!}XM^>_Tap&I~sdOimema%^ zz%(rNyJx|n5LPAMXdt@3sj5x)|nDCVs|z4zMO5J)7xH&wjSggDUndKMnXpjT<~X5aC8D*2bPSglB4LWi{n#n z!Y}kxLje@44i7CG%8FTq(mJjn5dn={y~qhUiQxxdzKF*XcPpOz$xN}}($12I|#yMEI9yUg9>br0g-6`^Ec{a8Sz-C% z>YAr77*JXl##e`FgJzghWKH0^4*0T_ZI13R6H7)}p#NO(B33#Gm{nguKans{=n}!e zwGdo6ihl(ZS|=7vAo%b0n1}z}c;{>}3x&(2H!cPVSS8P}B|)!_;WvW=PK-1lz#<^o zKeU)U>#qc)KRioxsezw643x9Lk7xpIplCQr$v;}3|A4KNptZVEG||~EMr(*B2t9&d zigq%MjAuQ6MT4BkXt}Ajt?}e3MyI-tk@OVk#Vwi+QA{Hqq{gbJM?F~a6o#65A0$6 zf*k@H3T6Y)RAei=i4tQ8sy|&tdw3Mpes>nI1s1Sz;GXP=FOG%euSNO7^}@&y4e;?7%VCYeV341|HfUZsS~1g*LsROudjC_ND6SwATbBOuHKx4d@j94x-{3f<5NMNAaw^b5VE=PQ5+nnzklh(~p6Y2ak<*?* z5C;43SN^y$3G&>YzE`P@J1?Q03oxI);<%$^9f)8Wup?d$cm{isMY~D+yl1;^pTSiV z5sP6Ya29{igSDaufzEX8LKPQ7_2xxEhZi|-EZI|Lj*iDl>QlB0XvpR)_6X~j1E=-^ zwofrmp>ZhEHXx_eW00_)(XEcMTl2Y0rWn=$=d6#=D%)Z@s?88^|I-TYg)D^atelY) z#K`IExnJ4nUJEs%A6+hF?OQBW50nS3&UB8zKQ~W zc#WHOSl^3i^glcs>9okStboii7eqoBB8T!76DA+UXkj8U+nkyi8b9$`nu5V)BB$v?NT#vFx&h#yJtgI~A z;V6C%#g1g@JTy^}%viqRX?&EvH|$&MDL=`&zP{C3i^VjZLA^VxFYk_t(uqjwJO86Q z0R%I!^XWAn{%+tpGHPsmemz83d+Wm(?Pn$kKXDc|>#I>#3O+RDH*A8idAUvanDiwe zx5YM$KPdfw?uHIezhHs?|^W6Mf5G8z_|Ov8{G?lQu}xq^{gJlTR4d0n1)KNGM%0FyVE@7L5dp82Z6&A z8E4U&0gqA_^@!pL8Jre#fJivLABZkLgouuT=%EB6F%{u7>Bt@jGWZT4Uw)R@;?DZ6 z)H3_a!)arybQ`+{Wl9i6mWe36{{u+tCh#PWgUYn{=jJ_-Uw2~ePY|Aua@`5!1AXy}o41}M5gp=E8C z4Wz@qGzzy3#vwv}Qbmtt%w&p9Ou@($&Ut-6u;#Sl;`@FVnzVDCAUA!>#qe{wADO{6 zZ@U+>?b5AO6wjU0?liW3JGnd6IzUqC6;;w72+QzalTB*Ygo%u{&Cw0*3+$vK#XHl` z(#{qETFV&9Qcieoq=NQgqys zxMrMf8$!WI^3wg+`Ll9s*5a4Ha*qGhKJ z!xTRM2AjeT82HOyRYh&$)ia^qgnEBCNgDe#raj+y+xvgtBMAhxXJj z(2uI<7Fxn!A}+K5$_zqY_X1E2z?Cw{(Mo~^$N?k|iT>%PFjrRg8G)h0dNEC5kuZf1 zk<8Z9g3MHqx!e+RiTDC283YNs7%YZWLNo$im8{&4=>)$l?%dsx!nZF%hzpSs-DEtB zGV;NvtT<$aO%P*hri)%y#@U#?N{&oQ)_j;KP;$CW8{P*$E5Q#T5W~EkVWoSCB&gWi z3krr&>S$2lQ&zy)dUig&qR#QYeI=q%g;&yzjo2T;Hj{y^D+m`td?qnP*;RySZu5+X zp?^ULPAX0@W+0>+8u2O6K)BKqSlx1h;klY;V<~jSul$S%%~6DBYB7e7bLoTkgD_3{ z5zsr<4Q_IH@-pZe9!0{JoO`1sDmA#(4hZIl5<=;NCP&vn=HR-2S+;G*2k`w77F1h#3yf zQM6A#BI=7!&k0tIB07&1;;A#h30QYDP+5^^BMY z0@ct&cpzMgxV=VbzJ5}JfeFmQK2$phyA3^+6%C;mR>J)s!&#FrbBAGqsFZqa%R6vv z?LCG-azSOAu3BysQnmOji7$3$E6wFhgiZ=uWitwdZh zS#S9sTUMZD`jLdv#kU~(GY)X*Ddf1^oeO3}AA~cNtq0Gw-=p!kIAf?pYfpI*ennRj zEwqZQGz5W8a%6=-LAEmD&i!CZ3D%>Vg)Nu?J_k=DDDVzI~2WR#_~0L!jCn&MBl_vqO99sqhXy7VZ`#V z8v2z=W3@xjy2E&Mxq3r)!ER4vAmkqU5)?pxF}in8d9 z_i|WW`;fJ5W@#FYSOw+*0O{I7=EFz`YXVeFN_mCT%()a;BeF%i8)zfrVC@#PwWyaK zvUU#s9cCB@AT$xc3>5p~&Vt*Tus59<1a||&bq1&F3=RjTxYIAF+J7HJE{uhs{z}~* zi0AI;BY-Oi-DoNt5O;Rf!M8VpJK;1K@O-ZS4*QE}w))Y-)}BF+Vna``Dzyql&4IR| z3+6zZEuPR~o29UwM?lI-OKA7J_AmW+>Z)$H0-MoE2OmJC9u%f z7hH=*Gf)RlxfZ5YDnOcG^;iNwrzH;ilB;}hZxHn>gqK=aUFEB}g1JY(s`4FWx#J3- z7B2h~bzshBM@f~hHAIYAGUp0nfJuR-Bc%jvUM!q`*`vbqR6>4d1O)?T4;}2EGE!(CgR<;*L!a2L&5m!2SV8 zILQoj2D*ub7)+FriL)ny*e>)y%cy7>y8=E%9wK(hDC&kaUim_MNgyMte0Zrivldw6 z&Ot>;c_IXLOp%o_He)fs+|$oE>MMw6Ofp@X$xui)=n?@J8y6Rw@tz4{!ND%W1ltIW zG{IMdMn2#$G_s@)Qp-_}%F1CnFF}NDPHF#41rXIvsq;n_nG*x`{Ogd>m&YN@`smF# zyQ4W>3=g?To7Y}AZ+3Vz4s^Xf+EG+H2SAKCDH?$`Si%PmNHT4p` zMI(v9-iREu(T#So8iwTG|3rPn=>QfQlJh@cxsBw&lKj;M%g-915A9SeH{d+web5%+K7C6|h~LHu zO2v{ubKDk?K4!#7#tg`rh;%2yl);->A}aD3kV3&CPE?>{HPTUnBr$>l}_c zhK=~E9|kaDAB$xt&<9&&b~&3ntKHh;0A;5JVW@HW0q8IwkBC;Ui&oCn2zNM&>(B(V zeGI&9-J8cLo``&feJ}8O1}54vkcQou17%nZYPX2-5VWdL&pyI{7#5`+@OYIyVITYj zMBC572D*OQbFJCttvvk8z zDn{WUh}$WFCrs*Y$AlifCiL0wp0j~tkBvoZF|TP?22gH&bg;(&h5^ni+3^sguJ^O* z>+c1InW*yeG#*QPc2GHh2!~%Rjy*RlgDTKZ+JXY%Jw42Juj%au=qN>R7toX<#!1~` z7d??%aG*3RfoC}4yTtQI0?z})GgZfP9J>kHkOkOHrUjw>sq8YC{1oWLD- zZpI}N0Zh+$8!{#FKo<-@6-`80ULDX&nmncm%GYV0h~BpSIl?KAgqRc46^Y;0?dV4TwMd8fRXW zxT$gZ;^Z4PYqW8M12#@!Sx=lLg+Hac91NGNV2AZNtVmx2B3!bTMamXO-;&ixfeM4g zpu)wXs-yzHq$0LJ-eI$hCO`RX?goqW}qEGr$-w zIm+6E07~jbu8B%x#c5ROaO5{pZy)}5N)7`BHfvA>Hjm>0HZ?q|O6u@SHsj7}j$4IL z<`HiSWuEw*P{nVs{)^#FXmg*I4ca^lklHjI4l(kk+Wa!B+UZsQKo#~cS_w`QXaokM zyK$!jcnous1wEqK@!}vI4>^4YRq5TEp&{X$Y(W{OvV}ifV2j=gOmgJTWY2me(7K{3 z$%RBV?)Y$d5jU3VaH&LA#@b-19C7EBKq8vLPeAu)aZ7>I5+27j#=fDGH0`~)V^;PF zfyJE}Xo=Ohc?bdKtdxKx7$jmMkOeA6OtK7Ak{PWzQ;4h)%dg-DSXwt8*en#7IAL&} zGXSQ+%Os}48~8i}iM8{0#OqVdn8sWGtEP|D_*aw3Qx8v=&Qu?0tfb+?uaj*arpV!J}Q zjX^tMf^P+wcD3kK2^O*UNJd$hCXNR&#=r?rWB*l6P6un7VUEEo<5O1J7!jyj*$Zlz z9)X&eti1tk3POMkL3M>YtkoaU2PW>k0o3Ep8iBz65Rf;-xRw~m`Ao0S*{<_C-XHo$ z&!mR%({~s@s?Z_;!M~Cf`b`S_rinPAla)d^T8Pv{Q5zJgdWpycnsrUkyl9}g27o-* z!|Awwu4fX&5&NVwM+b9|pLkcf^RPz2!KBm2y{BiYXA1Y9^bvV6NsmR8LUCn9dQgHu zf{Z*DyBDAc_mEua=W@bxk1D4T>ZK5L&Ex^CtfadP3|iAaaVyz(Oix@-}4I2 zlOdn4RUWW37fi;o{ozHhzvE;_GP>!wVsx@286K45ig7M&h%hyQc08V{hI0?AYvUck zMYdQw9=qFL{Wrz~S#3it)k26UJ_>|RIf_4|T$M$M$Z=5;HNxH(+c&=wG(yJ%P{=vU zCqu`Wq=*{-8?0U)HRcshW6Iu-rBCyNoE|lP7Ss?Q)RFJ%PUJ?cpvI!(=JT>CJFYv{ z|3t_*9UD^4*)Irn4$2>EW}Nt8UUBm-E-H)wev$A4j9WTtInU^q2|ePOaWzt6Dxbjt zA|t6qC`eG*h212n%trH)Q-xA6Td9h*V)%22Kq!uzI2$>ur^|RQ-OBmuNlatx^$>Jn zY(5KfxXcUzaSCH^EH3xS%30j+t7%2KT?lmcE1x4K1eKi6tF00HlXz$?GZ2UxOa04- z{=tC}Y6QJ;aTUVT4fBD~L|6|IQLOV1jHJfk!l|-7GRBHqkg#l`sL+yrgkex%qK!`@ z)9;MtX!HJBXloYZ?nERap^44u(vy@3xW8zE`~~~E1%j#cD;H(uj8FO9qnr|#rhSpw zX5r`+G(N)amC1!pDEozdy~iU|-XC|`0BOX; zdjT*Wbe=~{1sGQYBeswTfnZgB6=l2*z$b1I23qSE0+~}zc$BTt_t6&a=7%c*Cw+=v zIkMbc41zd2Ds~qkkvK}nl-D-q(LI`{yGOXqH&1tuXmo;!6Qt~?$%gJ937%8IvsW1< zVwg?NuzF;PuH2hA!-5aB#O-Y#m?92`=)*W~;);3bD@4SGjrhDpk|{8scNHVf-5VH% z;~n+mNNLTl#Z(HyWqbwf3e$p`Ot!s*w!A#q0%tLCaqSY<#gTxR9_i9VOpl?AV&XHt zO$=9b21DfQ+W{qdmrI2bA!TI7(-}q=k%aHSB%;ZhS#f9@QTF> zpwlCvj^eM;8~T>Q=S4KOW<6GUkX#I1V^H&<+v3jg0^a^trzUpEgfiMZK9^p?a#2y( zjA&xddO1o?4PzmEac%eBczhyVhJi#`9eoBAmG0@M5PzEO=w1YBrZ`4;Q5s|yakh93 zQnV)4p_ zhGo414I6_FMf^-i?Vf{0~+8o7EM}^I)`=Ze0z6 zIMhg7cc*8$b7%UF= zdLB$BjO=U#cp8l?^w*mS*%DkB&P)G--t^d`zr1mU6_yhVC@trSkFZhqE8C!3fABuW z*feNLPJ@|~6K0OK$lqw@a?v%=+r{GXOvjyX4;M?RQ&_qEhLw9y6c%=+a^-`@>*V9& zZn#yY~&g#x@-Zzw>CYY^HXn6j7`Oc!V=I7p!HlB+M? zG!jnlYJHNg+67OkB6$lwR@GH;?B8b6j)^u z%VxkIi>Uq4Cn3}~fRyL&Rfx)B$njQH*9^cR~2kWn?wY z7i91jdkus^#F0<<(G_y|(HHO%SB5Y?Byof!ZZb&R0TT3#WSH3*Pf+i^fEtKv^0+gG zyKhBt=Zwa-gD?ZNmPXr-Xq&hgI-yA1?Fa@NVaF5pyPbMhPSe=p?5K$HQNH8*A6X)a zi;`2^bG*ttUWVN0PD5dKRTUOe9HlIA=iwqYb``i*ANE!2_vs;y3YRe5IW=18IHD6T zU`;4O1SyDUW4NS-8%zCoFkDiL3}ToS#%ATS>x3XC#+_H6Hz%AdxXX=b^p-dV03@Uj zn_HYB>bcszfpM2BHJ4m@I?d}StHv6rt@;8w5RXpB+89(;enompgk*6AnXD|mxb3rp z<_9GYEZ@}&t$5F=k7sGUDXVUjUe-~RwM8g`N314#0@;~6JdTmu=_%d^Ma~W(GA`nc zxV3mgTPRLMYOb#~DSTjy>5Gg@N{{nRkVUlOkQ%R2@tG<#0cT6sa(WrB(nYu>$3)KK zm4^tfHKK0^uwllr$ezzRrEwj6Fc`tQe@+;FEft|V96?s_dS*qSWxQ%>oR_5^_zIgK zT=aL^U=Bo}q!jJ(VoR1G1X+0Y3ToxbXc}ebRVpbukeUrpWB6d*I6}DC9dS9h>ia6F zh$a{LoKS>xKGRhttWCrC$DJzf!02nXa~_E!NE2)ajJTHcIUFy9ld>>#@ya4P4q1r1 zwbgKka4kr0iMu}sA+S;!vP^?(G>*_~%iO=H%>!q>nOhb$e;_7j?q2w#to)Os3CCZk zY`jV+ZFHLO@i=G@LU0>!ftD88AsDEGUC^dGg-Zj&xsrKM+(U|=0|c`in$rjBC0;f( z!6oyQ+mO{ZB32^Gl5yf-l)aHCJIduvhg-pzN@VCRV1(_&_!~4L#1(grMNh?sBMdc? zBV9KMIQU-)Frr8BECDt{fQ@)hfFWR)03$`{LINxkV2(0r^2uoZXS_$y|U&QRPrSkLIf=%r^kq;Y35GU@SHa3(x&FlPZO zF@Lmj*fO*y6wu;w3w%%jW_mW>Csan%;LfUE4BqUQR)CH7*(_n$bc-aKpTYaaxaP#y z%ivfL0Y`dt%j^<09IG|)?mCz05%Z5a7bvE`7#Jv-*ydFi+GSh7JXsU*E)JYT+_J5!hgU@h1+%j z6{}^MAOoB?0w+e5J9u2%x*IvKa-LBd`VUw(=s(eWpaUd43?(9b6!Ltkd{ z)Gauuhlhh}gYa?k5j!kj-5Z1X;x}Mf_&8O+V8j@SDJktmXXH57+*-hRl&`gCu@BWo zK={VqhJMa`RrhnYZ-r5>jqZR#iRp!#d1%EICSt!5D+HrOZ>BL&qOUOG3dQEfFaW3Y zmJ87m(6Hl;5lnb92Y;tGgD@s&Wm28s=E}III}6f6G3M|NG~p%@m@)pdaQ_WIQ<%z+ zJKq>2rZmI7PPEp7MLIPT8o;A@_E8bE6z)votv^H;#f9pBH8!1Fgr+y?Ew_V`;X7b? z)ImRK1T7_KXC3q(R8#mgHI#(%8{L~=1=6LkIAD5#s~J(5@Jnv>D+y7&kEEC4XpwO zkvMRQ8mx~X^^@aIkG%~2iHtHwH&EE%kyAa(9yxc}MX9XY#6?J6gTx%bh9Gp(m@LI2M1(6ZvT{+0#+^T( z1nD}hb0vBM?-h}LY`6JhmwwfQo4QnP$rKxgA6}twz_hnt;0ouEx8S6%RaLP&=m(kJ z6fbs)S#jsCUpOqd=&5hf73q5L$C&F^sGvBmCs`4C%_W2A-aUiy#3ept#TCBG_q!r4 zfj*%}MS71uh&A+Rfh`|?rBVxTM!BfnicbhMbY%g~f{aTmSONZ*o*Y*%@5wx)BVY~< zWXRrh6e;!dP1b&`Sp*4TTBF4LnYI0>_haa2#NP4+FauHLi}^qu%Y!<&S&HRMhS$Qf zIjl9VZ8&^i3cUoP{LifIf_D%RY-$z*@dJ!ljt^??XT(DUr6^F?UFp5w7$3<-ooIk_ z)1UPu>~RQ5U9JlZxqc~ZEduJyFWpM%HAJ@cSOR{t)I*iGZ=Tj}kOzqk#c<4*^enD$qVgK*iY|FjxTO#k^e@v1gwpjbAlEV~9?} zQSuOA@s2x6mD&-sPleZFT|QwImZObet6FbjHrToucQyrhs6Hw1A`~hYq+`vIP?5l9 zCkxeK{s^4SIo<)ADt zpLfs=@s7=C*d_G8IhMT;J^_Kw&ISu&Rtm9BI>Rpa)!KmvaV$`n0*cR4RG)5CE2^w1 z*GvW{{|RDC6Bwd9maNsIt*IN?4{&=P5sdZSg`nI&smayW-X1|-#m3}v@+Fs%f4z?6 z9|DCY)Q{nmK(iav-vZ{#sIyk5zW5V^`shaLfgc5Rwft*qJ9X6;R!8vt7a^j|Ee}l0 zQJVQ9W6b4HVN*7)?DBT*UPs9TR8htLv&A?k$$?wf%Fl!KJwO|4fq){Sl1NhF+6Xhs zquFQ&w95`R3th4}N_cLUtu!kLW#CPjepP+_{^Dg~WLfvjj z*Bo!K9a$Ktaua^&)L@$NEd(4K3>^#X2#Mm98M3?vEHxZ86a#fap4U;uPv$@HX@sp@5y`ur|A+HQ18EoA$bgc;I4yd`3t!2S)Q}WT;*WjA%gD8t4co zP?Bj#Fb}wN#Da#d`=fw)Q)~Dzu~e)suy=S9;LD%2lZY)tf17jl%81R1J7G;Q;uYlR!aIQTlf`ewEInxq_f5wx8*VXRaO~3Huwd8| zgT}AgxZont)mIM1ohdzyal<#F#5jDR?MGxt2u+M`!#M25jRA&aMuTatTipf6(SHIx z4g-f+1L7nk3pPw!0Sx~w`doHee;JfYql^BFk0Ahx9@k#J7rK87aHTcHCF{8Kt6gB; z&v6|8zaa|}83GMJR;(kF8jO5Gm~ZtFLZry}^&C~Ju=cRLwN7nSi8HsvA^Qi#D>GUc9atb8CP7>^=bpRU= zu;&wC5#novYJ;w5m4q57F1r<=8uv!L1j%5)9zGO6cmj1jpw_=GI_Nn{C|2HxN?n*; zQH|L3egLE&foF0ms>Tmk-NEL7Wd|6OZZG3-8kbf{bdV1JB;YyRxNit8MF5oZnp@y9 zv;z|^y~#Cf^5;hw*g8>r_jjm0S2#E}inrYscr$kg()`LcPF--7-oVw}J<$d&Hgy$@ zr=uCQXC|JpHUg9DJN3vxYuC;Vo){BZJjyX)BLZiy_FJ`Ct+o4z4mv}8Z?rYJxe=J7 zSHU>JPG+J&j;wIkfQlSh?mmhUjyolnaBdvMXHDwewbstANw^(RTv6B=ELs~_eEdVm zl`C%a6ZNfHtGl;xy6JU%jH5UDqcf{O;uOYn1N<%EZ|%{(`%^t%YwekITlXZj%OPvm zTj8)etA3)=z#Ja%$tLvg3!1W4--DzPhtM#k*M`#e?H$#Wtuch_-W!P$Nlp88#? zscNgCw$A-rjTh{3{lcr9_2Udnu}{PKmT~uKt&r@y->9D-vUW;4JeQJi{`xmvY5IR) zycaVVv=B7IFFq%Q6Uv@~cJzYU?y$92_g-MQ;XFj#8r%W|+Ca3%o8L3lX@{*T!KZ(u zi*fX8fQFx3MoBX)rdpuakLAu!DVCdlCk zu*%`GH_#xGW6@5oC6lq+i56#e#qJ_h&^*Gxj9!ewRL^?s7EBu|PR#q9KrU=ujrO=U z|0AfO&jAqGM|Lj>bh7dc@yDHa9U(K%tQMI&^bF+`cjh32&uNvLia?Ib!wO)+T_XWw zA6MUG0l5`rgb+_mm7CeLBIbr;J1)f=z7G3&Hl4?gN5Z) z(HO7Li7NYJ=bLnCDayEk=H@zt7h~}j$-=|x>aVTWTh<;{zx~=eqvb3C5_j%Aq~83E zwYw$rusZh}YlbCyNPX=a>s)EYA+u?x`nUa3M|I%0))tlthty%;T1U3*i*icqZ?$U4 zx7LBSGqvo?sATob$F_EA@-E4$?)%p2vbHh^0U*jB+dZQrHf&cJM5+p{;3+-)q~s zQ+@3R>&NC_)h~}*+u7X*b?7S#!NlLty(&{DKlT^O~F4${q8 zZKF`7H8ntPC~1dic^`+Yxm0@%&rI~Wp}UaV6?%6|Izln^b%iqGx^f+Qo6Giy1BG|76v0QoQXG)plA8%LkV|k6v!LxKSNv&op_lT{z4LG zV6Vxb%Q!^Wd1QcoVUA04ox)avY5?N+$Y733_tE~t9^rD%nOCs*)JInnMV0uW^0^Dx^jpjKq7A;7w@dx*l-1d} z965t=T-iYe^Q{#fy6bkSj?>nD<}vE<)7GArx?=Ut)7Gx(*)QwYusQ1F5*!B1xRALNplXU>rPwy20tZkOr;T!JwQ;?{{T7UF*LMv4pw;s0w2$S zjPNoe+)KXu^oUV@kz-}k#y*jq;qf;9pSUpfIqBpebiGbbCC8m_i4^*SSGAE8z?57b zTZ!w*J5VeVMM%UDRJR8?gD$>A61Zp+#H;sI4+;yfR5eACPb9*3C_ypBj7TUZebpC& zV+@~t4RO5(T&Uo|co!1M1g=~}RN>1y_YvSuofzBxu>$~|&~o$Rx;h8#VWhNq0D;`W z5~YWjHQ>ZR;iYCHxghS`WF*1qhe+ZrXfmeQx5LS6xN$~!lHxNu!?>`Ob(7nV~0=*#Gq4FS-= zRP^R0G=#l@+XPGUw!5BBitke-Q1X!*Cv*tSYaPzUgAg5d_Z5ZsoR2eiDP}{?L@f>N z8O5@p3&8UqK^o>rEDjm^<$P^2;tgomRzKbNi&9KwyZYG8BsPRoA|viRj=OnK&tdc2 zLmo|`ea}dIh4e~}O>o;ku}#3nDDer>D9+wF43OYG)s*o@{6faFPtaf(x2xu$j1YWc zwu{fOO+h;Sl(LPnX3=B#gX|}F8`wyRRbeq!W$rdGJ;n7p`0dhATasG&yY>3!E&mOE zu4$#-f6;p5n40EECh@{Myrfl3-$!MPNXwX>si)U4JxNcOGCf95FJbydJ-xcQfqm+0 zz&@*`!0u>Eh(~mYGK8@OeSR%N+t)%sr1xvq2+^KtgT94ngZ^p6j1%-fNMM;nEZuZ0 zoqs2ULC3@NhD)LsClb(yUj_71o1mGrI#F84(m$Jv(#~z0aPplMIC69x`y_+!`d0uw zO@|H^5Mm=jw~*DtNl5>J8G!ViEMKFS-@)_?dU_($%k}iFOc&|tu}lZ_^f9I-o$5_Y zPtnUqGM%fZzhycJ>P%w8naR*Au4Q_Fo*vA!t4V`vb)-F6Zqv)pk?B8mrawmzG@7ZW zpJ4fMJ^cXFwR(CY(>wL_$RwP&M=SJ98>=B7icucXWPp(LZUH%oK$(n+m}sz`h$Z3#=?;fYg11TLJlNUn!#XwsTt(rMQqRm{(jDAJp#0qVE- zz#fTj+K&SPxk_4rBL0&@>W_a|+XiPM|CumdnN@)YN%n3uJhhG1;Vx7d`*;Z#^J3WJ zI)6otFd)NOiJ0b(C_Kl)u+*L8XgazXb=dSuSE3MahOsN>VVMghIrFI%rWi;(YcET?>N{7k;= zKcJxS$B=Xk&v;?7V*ggOMEq834LhP;r{hGtOIj;x?C%rOIhin z0ZY_Qaq9z?)t{X? zidwP)nja&l(;QIQl;#*Kz8d(cI>aocURwjcv?Ex+WM!(B9qxh`&ZGe(0s@^wv+JOk zAcAO|PBuJMLjdDb^;xr&J>h;3FHDvzE0YV(;{?6XyhX0uksKWfV1)7btr!=!Viezf zLKe`qJCT5+hK&zGo*PGv%b6A4yHzaRxfD7#>!xHmG%b1OIv z&!8+ruCn6Q2OOO=R4DfQ%Zb@b*@-f28q?%( zJ2SFL|K4O)rw_1o>J%1&{-mCCb+2&`v=e8A>(vuU(ooCI>(wq+scVgb|Jyp95GS4bA zhen*)4goq!wxOy@`W_kbueC#a%=mHIRgkQ9Cz@!5_<>n!N!^Xue*i05@8e=4)mM8T zbpUsvelvND*gs_b<{yZ3d0$}VC}j+XiT5OYD{P zfHi6VP@irl4YbJH)J@H#_8n*#IA2@RwWWw+?O<-o)mSrWh-E^t+M~JDsn4)tOiT6H8O^0$-M*n9fw4s-&&*3Lv37t_4hop1W$J6qrA3ys z57llqsms+f)&W-WrO5aW1HOEO9M0CRVY>7~k><8ru z>Lr`h^Tu{)P)?u5bM4^I z>a-S8?}6_@wTdeWS$L)PGXg-!G}qoiX$+qm7N`ZzA5f(|uQnfKyV_i#e&0gsm^2u@ zyk(HBd$9UDgXu>wkRY6l-n82+x|$lD7DGdeuA`Fn4V19~Del8A1zP5#DWIsELC43^ zo=UudxdWqyN#WhHO!^FY?P2Os3Dm-1x1ILYNs(#R0*F3suD;w->JTgjs7X0gco)7F zwdfx05F`MOQgM5Vw@l{~kr^Ce$jRkG=Fi}q6)*!Kg7gB%eNtsP#yM0S|J4zcMgRZ< zcM~4W@`>y?Jhn?6@oN?`a!uYM%)WL}Rnlzjt~4VCP`Fs0X&-_FrsJ9W)c4bDMYnM( zr0)f-R>emOo6Ao+Z>kVdLVLaMMI$m%VtVROz*@Ywu(kFqSjAKsjR8#%;vh$)oSg{4 zhI;ub)U?)8&!pk+o7MkZV{^5B67oTer4D~GVXeBfwUm{9nOSFc5XvF*yju{&ViA8bqObl(Cn78x-I58Mb*lDNd-rQcYO^;i?ME`!+^a}C zKeec>hS<{5UPMWi6vB;Ij<+{#FGA9>;iqAOcgk>#Vme>f9l={sXT? zS*Y4pCG|oAV#Qw*x(X@Jxh<|hMyT3VCACHt`iP2_Z>#wZsY}b)TNYDRxa;?CS=670 z*gDy^!hdqCtk|Ni?Id+muN`Vz;l3L)8Gl3ys*#VBHdhskQyW+b$dyM{*&mwK(?e~U zNlEXR%LZI)OEq74^etgS0@%~SIm0~rQ7yR6cFvOVwmQG9w581;D1TyVUUgi(v7PjY zWoWs&v7OY@(*AYzXglfMme&@<mLa z1Cn<7dt(AMIt_~bme(MR3-LfYLL-H3w0>|H75nulgkewLtIa?jHF!lFpUxDRY6CX7 zv)aqwtEbva-ObBXdj~0H_P1;3CF15zv=rUNSL$AaS+nmzsZy`Ki8m1B(C2t%Ue4Sc zxQhw_*SRh>Rk6Pg2yHLwQ8re5WiWE{Qtg^!INVj#|C;q5)Z5c7u8y(PNhwi_-GooGI1Eb<{FHL z$uNY%1S`zG+?bl)R(jQ&Fq(ibm5T8!}c z9DZfOB2YGetU9|$cbVs?k9Lu!wwduV^g_vTFjzhRgsOFso;SBwgI%T1%`?@TyGi3M zy{D?HyGdQmrDdDCNdwH53;$40c9*(ZetcVP<&rL-Tjg3{yluRN^!oE=jO?VstG$s?%>ji0 zUh@v-+b{cs615lG0kpN;LhW#dkGWW)~>z~Pg{f|?xKX3fq#8NG`^5qu6QGGd#k z%`mE=kk}HymoCFZ&c-P-(_gIA=c^r)HT%isqIa>DIZu9sl$zOF>cRWu36C5%1Z?0; z#BI;NEhc3>9vc4Q54?;Dyaa?3J7Xj2coFqR`YjN|q}TB%hk)h~n!%?M;rMMjrtQS! z0Vd!8uGU85NxinS*9NAC1*Rs5UM3=}5{&CdbVN@R(FJVgE=Sbsu_kzWs%lyvsol_d zfWU72JlZT53W=X_L2PN^{P8nx&iZIW~%hG`6cyi zs+3{ARqfwb>Sj(?Z|*Dk?9(w>iNJ-wJM+A{s;`u9UZMWgSL&X!44++*!_A^kgP3R7 zV<`bg_RKp|w5jTleo}g`5v*14|u|l2JYrHwOKHMS7?&Dyq`42 zwH_xu+DH6(k3Vnn=QaG4YA^A3r#k3Hsl96NFJ057Ktn8DsT(#eCD2;)ss8>_r)!_b zD;hBzqEE7AD`Qi&K}|v0oCOy%r=`eAwfL(TJoErFx1&L+djB`p_7?3M^`ri<3^Da= zf9X2&ZEC*((kSyI>ihxHaEt31_00j&jpp;}&jX|}ojzfYLW^A{NAYUoRo9#K$oPCi?b#nl#GU;YZPn3{&A< zFkZ#Rz7`-lMg0Xfv zET?MiMWt8GxkkFdH5*l4W%hlt^5|WVSh6Wl$ldhr(ZhJ=!~1v>lix#Kq4N>v*yEs+M;K~t@KSL&)hkuIf}zg1u2W1Cu@F7-FR zs9rHdYTJq5|AGCGXZoyiQnj3UCNO5$G%NILo~Sp^Q+o}O);7Bj-P78uM}|o6n0Kn- zq0$iZC+eo5(pBbvsKgxw*R$Cz2!Qo zojeGZ6iY(#KhdRd66~EY5%`^+%yOG3_t=m;wTd9vb64V=zQLC1*k0DL-LQ|YVgiS7 zDjzahg(_`PA85gTHU4YZ_PKz6+$vSQPU>O#=zev>b<#M;k#DJUbMXE8dHDNpyVR5n z>4tvCzCqu^sFA}9Tw0Mxphf4!9-vNv~bFA&=h_z0+-png^+KWxfLQBk6 zQ=p4h(xgnDImK+nF8R`MsiVIm&}rkF)FxVFH7V0u3}i{tmY4-EWtJylArN!3T00C= zj?dO;*Qzr!rK?+y$9^xgIL-8!P0LnSWlEi3Da$gYk+%m=qCb$AjB5%!JyCW+tv93Z z4S7w&x1=*`AG?ZodI^c!6`Bdnyvi4iKz{%zmfV>CP`&kfX;R9Oqa2o+Y{i%6pPAn} zJG9m6PdcV;RV%NT+=E_1ZMHHM_d4pcXIkBIQoXiVG{7k)&F#z_D^5ia<2{Jk0LI&m zkmg-q_Z_7>4ijX%E|$*PH;qNQRCcmJmx|2qPeq(#m%*Eyt!^A4jc;+BOSQx2!BNA3 z=1z6s4U)Ut2M4j(*JwxZ-~>c02WLxH>aPZ23NN@p8f=@P!zk*TH(<&RQV-l9UE})e z09$aMQ=|20(%NYHt=i{C$vdzYUPm?@)-Haf8B9Dhty*g@inn;S-()l65;j7fa9dB5 zt1sRNqy3+9b^ndhnB+hZ>>?Zl-G-lW!((b%mgK!F^-+}S7mfnBa1`2_I}LO8WUBVy zryzx8uH|}svK6Zlvgf4fk05Lk=(ir14d6C;(H0QRML1+vU;TBi4OpSFJUrZfA6$tg zT-)-FdL&Eg-|-uKtHxAl$2*VnmWVxTv)EW|>Nb-}bv$Ep*{j((yts^y{I}ep`aROZ zPCZ16tMN8TVJB@@1%gE;!Op@@)YbE_2A=gu*V+S(8Qr8_MTE>_2klDw8P3antX{VUY>z0z|7=b_w? zbXU~c;6P|ySQh>#(+G^o;dLgYu)Vi#SG(OLbyAo6q*((i(4GHoxPWETwnhPv1XWp~{y{mWuk*EN)7tu4DUM>=h`6uqOK z&Xq=&Wsj3yHCtA^RfgQpX3HD@(TjWBChf8&jh$sy&rFhfwEg#5blZg@spN*k7`n>weZ0SSG zck|Ur1+byJ=c|hgq$5}Ecm+-#zr`P!>IrZ#a((|pS++{&*8Y&YT zZ&6pwkxsTWJxBKjhq43IDR)aPn1Q6!Yrt%bET1; zUYy>9v=0D=MxTCK*XX~`l~U~&(M6;D)u+`xbEOWJ_Ip)ruH^5VCGP#@C^guI;Cs)7 z{CL4M&JU+{FIs&jSjf3X4oYBo4|9=^M@R|R~Xb{68{$MS?8)BP)7Xuo; z%B`G)NuJ|ZTH>{F{S(~$(swieuzONq7K6_;$Tbz*mcw;2MPIyvOpHw4#6J&!Eqk>b zuaLtdlhMY8yBGTe5ouw;il$px9a3zIy`E_|n> zTnRK1)+;qum202J62S9mL)|-?k^~*EcE<0!B%o62;wUq z`|&MyrIn1H$mj{_;Zx@o7Fl%UK%o^q-Cq!%P#zgs=GpKa@D_MVHam(7l5wMWKofzRU$=Ub=CHRt<-d%^F-hxt$E)@XSXJkQ^ zS+>Ca4Wi6qj{{R9o;OIQa4h@ad+HM8=3Q2p-+-*O9AsZOCi`O$-v8YhjEd-sKb%t? zyV(J$#hUY%gCzz8qhoN0W5-dpMZF6={dbpBngyBFix34gaGSZO$Bjt{iS2_lD7Y4j zP2)Md)nDU#sv669T0!QQh4Ve{n?1M*MU`qYodO1?k>5eMoCo`&OJ7{XF7P2J z*A_ji;TRNnGb;-_f>`VW{zw7@l|fM(OG2UNsj4d9)?`fhbG4q0$)H=#t2&;~@|)qB zT4(&3rCd+w7(TNo{`N&uO=NL>c^#_2tK;!^VMCxl!yjzvDBIk>GK#ndhCA~sM+goO zQwJT7KZVr#d-N6$wgQ}|e^oHLfb|&e$LAqYeo<7{JZMMt)x;jnWvc>kBIt}pF5+p4 z1`ntad7&svZ!8NX%DOj{IUb)2^O-1b-lY6Clm`n#oD$se0a|Um6S!v=4U7m@_q(8-OdC8URn` z0h%(QUP9TT6$k`jD~`>|>^$#NkLG*B_imJx=J-Pt!5T3IWMx@BBqS?l$0i%P!4Ie$ z#xyFkU7j~K~A4!LM;`cW@-JYL0IT~i=dMRCjlR4u_*CQ!Y?+yXskU_vJPgus*l!tMo_ zngadUG6<;Y0#z#mRh~el=L}THM6VY>Vq$_G=Y9DCJ!b$RBVLLv|1km7hCp>qfmjti z3k4`IKv;*I2Op0zyFkwxsE~>7VzEAbL2oN_cZkVsNQza_H&|Sw7dsw*iMhi~fmjs{ zv6!E10=)+wEAOYLXe}$Rb_J1(%`Vp`dG!PNA7{>R@F3#B1w|1>LB*vaae)Sl12ZwBgK1h?R$3O>rlvD$E)6n6Ivl60 ztfy{ed)My0rEQ{?%A$hchLqw`qTTG!SX%d{sLA}_pXbZ~TKC?*zrQbsbI!9bpXakZ zpXc)gk$}wzvzr$B!`DNQ0{~bP(QM^7fB-lv!#NHGyo{g%@M~#7aNuw32Nck<{8d_E zPJQWH(vG?;o?Wyfn^&)0)0fnevggfnFs8+Y!Je1!0!tB$}Zai?pq1qW{R8` z;>vKZSQTz#!S=&~H2qblocTou94S~d2ORy-P`i3-jNR1P0gfUY6c~IG-Oi%sNR${r zXa#Y%2Fk2ngn})^rQ1@T)+yTOKb%a)w;tJ3}i=#XKj(2px-v=B~_&dkh9>moz z;?HpGc;3BTQ7=*dTv+ifW9uUJVXA~ZLqf077P$o8er_vmJcn+#L2ora&fLi8~SJ%SLxoZ6V+tlOe+6J5R z?56#krK@Q>qvjQNk0(U;*iOrMC`GO;T1T7Lw}p`FuY`~)M`8=gbOmu{k{?V}jlToN z3C!BvC zTJY=gE8-rd%ZppF;v-i?5(}dEvcPSi6#8f_b41%H`e=>n**1zkTBFd~)&l7RQLbPs z|B26yI`e_rzSSdxanRMY=A)0+B0p#wMIWtE&*7^Ti}4-w;F!!^6ztaACy5C1TIN28 zFt8w1a~}y6F?Ui6ZkpT@meqoha$3TMDjSLQAZ(-zfld=Nf=E{BfuUjv;n_eNZEegqrUKM1Z;{gGt0Yl`?A3J zt{`BX!Ea$wu!>rl6b{y{I4ZUc1cnGVE#Mjsf523YuL4PJn}AYL{8l1!+X!ZY#QF>3 z96+)$Y073!u{RO@Gy7&0prc>Pg)kM=8DX8l-Ogzwq7K1!fuewmemL-h*;sHpS|cdcV$$?`#~T=LMUd z%=2>U8_HYO*dBqKPPup}(irfmGn64_{s;7VQ$DB0h(CcZJ$`OOE0_Sp(Q*0>#{`5ne0M{dbDNIb)8{ z8f!unQFYx`sxIAbF3uZ|D<^cS$hl;YNgZ_y=Z_PKgoiMY$he+#bm%Bi5$_q|tFJ`8 zZCi2$RtNaE2=gz7YLYMOi+}?D$+6dV4Ypng;{0Deh6O+dbN-W1B|zx_soa>;KZv6ne?PklRf#VTovG7q z0@FY{8?7PG(2yQ(X3NRmd*BWW9*}J=?^Ma=eIy1Bj}!B}IdR-+KX8=6=F5po3)s9l z8t%`sc_-Fm7tZD#+W@2O*I;VDg-aP0ljr&=(1AK+$ladnr{h&F+CX)YI!4z5Su++% z#8f~FBtjtZC*iKb7VSxAS6k5qV#y9?I6^9I?lJ*>;EXo+g$U=%c6AJTb1PV%U3Tvn zus#Qf^}!*Z@;p=Zf@}5Hd<&SDepCc5pHhW9bxKU0DUP_FoMxLh3mnfF{IVrdc}?g1 z4!+@A9`@Q`czRN;{*km>l&Eb0cd4tkcJscpY47ivOF|a4)Q4|{;%jd7Tgs4 zd-&jPuqW2bC7n2woa1nzULatBzkFYG0dBa}0VLbBI?|($2)(Z4BSNS)v~*ou+MFlR zc>yqh;p#y;IM+(Jy0s2?b_^Jz{TxOhTOPC$h8Sv*e%0(Nqp*{?e7u-?aKh|HjBX3 zdJ72O*azmrA>AF&U_m!%R}Wa|H2h)kFPc|CXpYF#(sb@%$)4;APJ3)gZ_-6*_+i;HsFs6 z_`md*Ppu8pcGG|9H=kTe)YH~7w{mDmo4{A$#2n2q?Zgq{!C?y8iEFbFx9s#AXc>HO zf!l+Z&dxYrt&kz=1vs>${kR9?unimSXxWe3Fbm_>4~im~a1Dbn+3arWH-FGhCDnk# z_La&|5O;E_0|QQ2_rNVS_ol14)<1@9r?HQhr~ccn&W_ncj2$`XUxoBGp9OnRxlqwO z$c4*Xeb?w1Y=PVCx5eo@Ftp!xn7Ha=mh=ZxoY>phr=5a%33odLb%xdh8^hqyCMuja zu&TLW5nWK>1j`56$^{=oW*MQ)wJWtTM}T|3;#l)oOPM<%=Hm>*C+be+bJ})t?-lah zm#&d5XMH(eVHd2znWa~Bbv=*|s2-QTi`N!K%OyubSX!?P-dZ&b28owkH%y0aNc`mr zetZlk?eAt1j`5Lx3Lgqr#^5WHbiQWac=BMMMY5!_iNtDrndjiE((Hme5NKu*U?-g} zp5sYVi{~U#-{Lui^tE{2MT%NHr<3{>&-+Oyi|0(zwBq?FsbBG&lL);ko(|Hs;<=FI zMLd^~dKFzMKvzgu#48qtD~$B2cwd2F(qiCsC0=RcMBI z?XC)Jcab7I-*iNFKTj`;sa`H5t|++Mb(mE170`$@y7g$3Kr;R&UB=g=T?)#%UynZ` z7fz#iUCIw-FK@I^G!?G!msk00kiNR&8m^D;k6k*#L!^L2D zrd*h%hi6f^tB}~AeA8XYX1Op$kFfF#v;jupcDXP{4BX1fZz^x#f&BA9WmHAXJJcTZB4o*S}H zwNtdH+x=aUuWaLSzz+oY#wq#cqAG{I=*NvNpr$a{vcnp{nc>MXD&)#4stl)vYZv6@ zD}gGMQL!Kg>r!7n`clzxfx$5&`|7AoRm)!*4`a&QQ9NeR-r-e`hNUv&~t;b^}JWTQWO3>q#A-njlZ%`cz zaOb|UqViEzoB!ZJUE62V+G8uMi`(UMS8Z`ngMV5HB32hXKOt=OThbcyB!n5MDobQV_!1Q<#pRD0p-$gr6k{U!A;y zO|ZibbR~P#E{<^B0-ZpvWZE-tp;`-7fK6Vv6AtuYgAE%Z_yL!n!^X(J;1@(@rBPL7 zCj|E{De7lipv>;Q1u6t=bmRp$I*!p6Kr7MtvCVXc2!R8_?vb`&**M3=by!~{H=y&d z)xZvqPBV#~aZ4l{G{6wTYJyUE{Q^kk!CKl#I#>OmN-6&&H`-(8cHow=z7r80MDKg6LNgEN9otoWg!%ZY9t+FdRI818FvDW3YEt zuv8PEeib9OdYY3)61!@7@ImT&ZaI-%v0y3*wk;yzr3z7(Y0t+pCUmd84okroccWYm;)-y zviT;~*i>S8g(4R>1+4;?7G_ZkO`#SJZ_~n11EX6TxM2nw2-OsCq4kfNNX&3dTRzx*I+dFApek`N=ZfLlGP320+Zlm#+PqY-VPXCctnPhS;tyrnaT^(20IdM$6h?m4 z=FrU@veivjf!KWu;B3l)u(SZ@qw~OvN9LI>%br~vZeWFIg1W{7`%RGQ6rFF*iOV-N z%AR6`0e?|(gGf+`bzf-boM-ioodPp0?G_WMd;HNp%Xv`u@cDP5~)B7$>FRf3z`V)=Xc)R+&gnDTq7Mv5 zoTjs~=dW$%)G-%Zd2J`u@ra`CqaudTWOk>?oD`Z&M+O~#ZabYB`81np=@T=Zo$@ep z-SQRhW4QQhhhW2yVY!UA1$O!i^vN>QWM%$tvdE~9@1tKmTRcBNMD}dqGZt`mw42Tb zXY6kXqH5byTSZiR8%@=VG*!A}ipAncj-h>lL?ErLI&466gRtg+EmctX%ZvFcgZpgI(%1wuO!=0Xfeqk)Rr*;T1+w& zy-KZZQ*nxs3@_UdP;jSGzBeXMb)g6=kTT*k5RaF*6)}F{V?%K{^eE)4p|vMOiVkNy z9^)KD^;^AT&YWIk42t4vw4cDn(hk_8fB^cwHcf8;wsH-?4GWy@ zL3x0~awLDRe7Baf=?wAWMP-i8?!_rl4yo9vLJP3r4NU%ed6t`l{qn_N$}2#%UUrHBQ`J5I}al^Z>ZNbFSYRq z;0EJmL<(vRHk5dOsI$I>&9bG^YJ{Olj?{Q52w>1C7Ca$^0kx=fCOI7kLhesaq?4F; z+yuWHn@G)#voK%a0|&rjvv4|d<=y&;EI=gB>kQ^~waJ{oGee0-nZu9^neU*?<3pKA z=YmTfuO>C9eNGs-K6veuH=MN;*P7wL73a^uDt4#4?8>x6c}tZeJWz)7OS{}qHyh?fPZU8bFwUCT}s{01dfS)u8I40B-cP`=s^&8fL(2{Cw*)29B@R_ z)&cY+qGedXZ!{NQ2L8c^C*Zh4JH3oA;{KzUFiz(3Xw;?Y_MV=o4y6$UUY7?Kbq zarPasf$JA^O)giY^Zrh<*7{w=5LjXqF0~i4NncP5*;WM&LF@Yu&ebs!Ri&7hh^m+F@H(N~3E}sz7=De9r_> z2TEObA^_zfN{ku}U9h$6#Bf^_ka(m&(RYgrg`emSK&Omc8ScV7MpY^J?~Q~46tYAC zT10#r>)kaXjxEX*WfyiQ$3yM8B@0oO;wJ3B6k8-LhXaGFa>=8R7B zJGwIrsuDgw(yUI9{Lnp?D{8e;@UsC8!ExNGMv`Z-LtA!6^et#MtM`8t?#m6RcP$Gy ztLK!mQ=;N-=!08j%Dzohj0bJTW60|=DC$L`mQYv18G{97${Wfo8Ix3OO`A&tm9P>t zH9Noa&xg^hqE=aqXZcwYv+)-!GWA{ooqokT*b@rb(r`~h3i zm)5!;@IiJB?baL2Mc+G&N-?z@Y+O8UF)g#G)tLI+j7e^)vMNxf6qmuU@H;c?@iid*e{5K(^x5?^+jw2xL*T+}UiJf&zlbQ#6j zlHJ$eb+hlnN0^2-_!w^35$A3&cR>5dB}e3q8ZD~C@U4BvP2s;3$4cTJl_P+UU02Y65^4S zM}~YO$UYEgEK)8aITNeZvB;uUSkxLttyKbLs^^7d0=%xZ&7Ik1RE{pF`|DZo-fw(lswK_c1o}saefvT;dU*0;|?LrX8cl%SU{(0UqCj@ z*+s*Ge6@%Q0)&9kkz4!LNETX<6lG6F5CwZknWayxU4_Di<`%Q5u5{@WDX**k!Fe<3XlZW-YdWLws>8}%)KSKAk;f!a8z zviu3;W1qscKH#RbTkj<4!qpF@YL_OpzzKEcsO-5OsMmeT;8;qaurSo}x;8EU9}Opv z%=q6R=?cPRHyGB2)|UD&KTsTp%Jl|f{&2Yj47F(lO$X5>8Ul+7M~(Va$vM@yhm%i) zoPCm(?M(T((qKB9oPz^>FruQhZAA@d!zpu(MYbHogjrlg|CBw%@+xYXI(!-A>%Le~ za?!6C7K`t3nDV|_^lxOr+M%3{UsE`67G0E1`-h5p;rww}EzWb?t*G@DSU+`kzw;X9 zAS+G-?i7Ak-~dEG(i?Nkp><-#jP+tnl9)jR|}r#!YYeo;5byyzUT^KQ3N*vYjRZidn^eJm?wf`9Z;>|o)#>5iWc7=U`dknLs;@NyesPA z^FTJhl2b^a)3M|hLL06t(WH^Dnn^{-(TXT}LLE=S@(_5E2V99Koo}^4khBGhb7_AD zK?48&4-82NawHWlQo1FThU^= zju!KDw1~SAvDSmQ5eq(vTIS1YgB!14L?RK*(c~o^P0F70d}@fp)?NJEH>7zmu5^hZQ2n=9D0EZ= zd@P(m%bxon8|u6~lrJDkSTv;j)(KM!KR*d^t^7Q}pU%)zxX#e;(;52P-CL-1&d}2f zG4zzktnzRrP-*t^H-8$8UeFf0&jg&%YCM81+f3{pRybwT-Upql4dAr}vcYhgv9AGXYT0I# z8)mAObIZAaknURulXcMz>jX#%8$Wh|=ZBQA@xMz6VVdz?NRqy2JMxii0C8cHE-pMv z!a)d$LR>JyVPMxn?OzXHLHp$8htLdNT;S3|ygprCmkvSXX^u}^<4-`|e8pbI3x^@x zyM&Rc;O>0diVl2Uuo2uUInY3cK!^y6?D>dF3xZLyTJ(D`0{(4*qehjg#Kj?PAxQ`E zD*)+%WJu3w4==ZI3Ni)x@8DblC?Kxvqz=DEP0CZNZP=3LWk6t|MreIeMjEcSb~!tF zw-Dg!pxg*!YKU08WQZTK=K>P*Q8daq(-8gq7@w{5 z^LEfrI_?Z9gHypjBA;ECs~(+Z>Y@hGQZ8k*p`JnULUnNg#rY0VPb;U;*+2rp8h$5Q z=%NIt(I_%RI8|Oot7Nf}c0P1b1qxnB78oQ@PqV2;F8YnnZxsNBdTlFnoe;bnEUy@Q zsb32+SPzRneg@`46a~6C9FhW&#Nl$$K%FGQ1yx8=pz0K#1uHe-{p}#59(Pb)C?ZR# zKf;nOg2pTA_VsP48#Vi#?so}1Lx|P=E@cSeRFuf`YE!Pr1X;Fm41vx6M$6DYBwUdf zO+O1C0USMZ1ujVx0mrD2M6q36%@L+9Q4sJ4my0e@oP;V0$Qc5K>^ViF0R%0(-=H@v zp5G&BS8&~Zjub#UjuljyTPImpYAXIWx^Y||L^ZN|HKzHG&`n!x(-R{E{hy9SI{vxg zg5TyoEj^~`p0HYBe})7lU9ZGxM>Z1tj&@je+A#^$aoX|UNCy#NZxKO`_T`XB)&GQ*@e)xk~b^QTd;VZK(M%9-p=^FPqxuEi%dkYOAXHEE6f;FK;!5TrZ zgM;jM^R`k~f&}iWwz`l@>)YB`(gLBmjpG3i!5kPMDjS>?hQfeOsISpCs0!~AkrwqJ z=n6GNJD8x;6=!@9!H4iW#iA{Z13<3Y42&z4lbNAJ`AFYLei#0b%OMtBu*NwiHPNoMnR`k({V-f<(z1YZ2UrAaRXki$FKI4MC!OL4rgX zq1XCjd5+QrDUwSU=qMyal1MEZ=6w5)DbiI{K-onhoFWC4UG%N;GX9Vv5p``tkz8^S z?asnHGq{!roH$(R)VR%D6vVg81)qo(%0#kAkTQ|>5tL~cHY9+MaKTK%wOgA5K?2p_ z$WdUn(v~cFNdDnu;_d>w&*BM+-d8N;$gAq5seo)z#LuOxb&Ylcy9Wxez$_m3y99NF zQwRchKTx`QP}|$3X3!dtqHlTSVk@y0)Zjr z$`^?!-BcTYG^rjdFH3%k7zM~mBx(*<|E2hrB%g4f>H|)G$WEn96S<&bby@4a5A0Jb z&+n&=4F&sk@|KlclH%L!5K3!ueBtR(oy;G0C7k?@arq7g?X412<8CwuTRCXKkTMwX zuyVz?Uojp6$2#17ao&QDNo!#Cx$X>@P4$i^!LnH`zUcw*YUy-jfiChRb9SE<9)l|9 zwKuD)d8^2c)B$*?p^%lF5uuP>=A>$DS=BX~lMbnSmAaFbsOp=&D>?UXF@9|^9dkgV z&ndnCuV(DvrRu|_PI6&vFj@qYP|8E3?4*`~RfN`^SQ|JIaGrshR2Lfbp#~I;hy0y6 zq!J@G9{OG|Eb*rL`7k(zq5%%Ih$&B04>jIQsC-DB1>2{|^TIze`1{hd`?~}c~#mLHC?vpj}Bzy+u6@hgf}-vPRJ|&r)8Q-%}Et#zfz|qHDd#|?t62T ztMX>AhtHE4d$eum>3sqPnj0GIv|X^haLDd=cv)fCyfW=_{;W?62oWJ2tXcv|trCB9 zJ`gK*f6%&Qbs70Ogi%Q~A!T{XE)LzWA#u5NtCH$a0Ia9RoA%D{H)Jn%j2*Fjvl(^? z+-{>BixTr_v<%yYO=ZB0FSi-$c6IOhIQ0(y{nF(~W?7nSPZgbQW#h+3Wzog{^IFthdm zkc?IJ(RMPqIQ`~E`g}FHl=hpKZKrMLmQCt=$YQq5H9F?vF)-yh?80Vu+AgTVuosX6 z)4Qn>+_2eUC=0Mlu)`bz1^{MbmpoI2W2AEKa9gX01JOQyGzOPlj2gNOI1=a+(o4edx3a7xmfXym)uPe zPxf~=wR3d9*40Benc?W3R$8GdDOlMPaNDnAf(f?kmi>O4YQv#P(RGdECIHq*G8>Gi zKe%An;24NwYmR|7b-%ygX2RM2czzX!zbl<4djQ z>v0nQijhu)(OVo@HK7SOb*042kJI|VCNXG5Tm^$N9GGbQJC)>qA|=e(MGHeTOeFOb zjby8e1HXxW*fiH@r_mrB8IHzjzOjkg#4pJ_-T6J-X3hyy7te8yb1xola9FuNP1D#I zXL~FFG7sDDkHZOaZmR~{2r?C;aJX4;8p#;bG?rU4A_Hts_rpNUr{I8bPTV=8!O=yX znhNQ>gZ6Mbn7TNvJ6cT6pj~b33%SJ~H(OLEz)s?@`yx)QE=R*1PeRLbz;ToN2Lp^V z@uwgCiH2C=bit23=j}EFd~u2k>o%-$JN~2{@c+yQT*F;AVT~IQME%!fFiKXp25Vg_ zCfw=jLnrJG(4bWB$C`<5`8>Wi5XdTS0>|oK$_w|;a{mzFxSy(?LVr?Fzk_Zcx+g7= zmHtGgL-geu{1dF|ggEOEm`T)L)CR&-)qfMO_az)Y;PrN)dL7|u0slLw3+Q~jX>HBsxpYi|n2MJnzliMJXEqeipuL7%aNYqYm^>#L^K+LPOL2km}cWcZ6FWT`(` zeNP~R-Vj`pQG8a*3N?jnOxxj_KNy<+z9ooMbF%o^QUKO;bMam>BuO#DxQ(2blP&ak zc+Vpaf&x;xA->k32D6a9BtCgOzvwA8D}AwUSPx5Opurk#V|zBXx7gFw3OpDg)ixY! z3u_na@ESTkI+cFQoQKGM-KJtxx{sbgnD&Ya>h|E%D6#yH@rOg~xK zYVuv{=$dbunC>uhD{Gj{k$cRXI6%NCt4p0Y9V0DieE~&SDOb-6H$;XH#MXJys|B74 zj`&sfuIev*1sI&e_+ZnN@7(vFryTwnuby)W{5yxZ9y-LKoxK23+!{&SMiWoKu77@s zVGdd*!SEM|69&I_va?ldaV9MNet9|hr;|N&1egLQE|@5LCLoAD6u4G!1>bWV(m90!&@0 zq=MLlHGUdw`pW;E#|yRsKxdsQc6~e_EwWNg)L2{}`nZJ@NOzOC-I-;Dytlc6h<&4vs!$ z(Rm38KAUyhevVu0s!iHV831;^F$43Jj7YigeSO$7;J%CwjBeuY%P7YE1bt3N!}Wv( zH2>tsNXanBg)=FVJ22y=&|%S*I1==9H>o_%+BPngKHw~s$B;coOD?+SyCtS;+ZcjK z#9;iX!58T()QppQlpfR2Hl_+6x=SdYi|9p5u7A)+s1bi_8}nS-m{qMYbC+xy@9L-z z#oQ&qg67T)7BctYP{{4%G8Glhoe~N$>#m_F%p3|!)g41oSZXM&m(Mx?<_ZSxE46$< zoIfh)pDe>LkDTTihPcYeJy{>TM_%O(N^Wz4)Kos74kb+ho`oBRRCr+EsMhSuZLeJe z-ksPBoUE|}ClN7k5A>F3^^TSN)gdeLVWr;1up?iLg}XS>yBK!li-&p_rvm>$;?VI1 zjtR6N4y^h{3>1O8UG~t9I=xQP-B8f$Ob1^%4?AYk*Q1VM^l&)h>9I&IBCJF3TB)Sa zA|bG?2!0bN^KbOoD!3GWiw|6rJPIQyi*G`+B3sJg0^(7du{8huVOl1z;5L@|GlKbP zt+nQF$v%_vV)LUK{*H}RC~qbl7)iKmEl}#sP6<^Grud4+NTdP@w$6%;H8Sf@bHBO_RhxH#@W4K?ChPLh_4iU4aGCH@o7v88RGE* z$7g|dxYTJN78N*dY=Up4CCTItaUVJuxX0Pi>aGC7;qh`wl(O}16pkaed!4wSEJxtx zvET)AC2cZ_wdw^SVV?ROrII}#B0YTQ*wxE8-64BcQ+D@-YvdwYsyJ)WY%^_l$)4Bg z%TyU)3xq6 zw?&r>ka{g&G5$zVPCrJ`;#+Fa+l`ZaMEKDkJRz0g#0j;r$VFF_qZ;&_4|%>hBgNU< z{a_sKch2SXuJIEfd$`r13g(~!|7ZH}WLeb+tUD)8v<7GB9#~TZXQj$eI{M|tyI}U587vvH$v2+dquW8Vs;e?%v z#Ua;vtr#^BH1yF5@PYk3_^;vPG^DucOgUzIs*rqNv!iCo;8)=Dal7*Z2cW^g#b4-MX4aYeD z4b~Yji_leZhA8VG$)7^j5Yy3T?XVeQQ&T@@I~*qj$JEI>1AJ*w>5~ywgV8z&#^1VV ziKba~`BFdr!XEmY80ETd06*x`h8K17laDwgM`z-u;QZoIXIE|bkQT}9>;803$&W*r zkWI3F4svXXAqhnja3l|>2c1W)UX#BAemFU0@*A^OnDmykuEE{yTgheB5=Lwx-R74EwMV`7 z#Y}wr!l&sRJF)MGVR8)4sKD`mA28udm;WNiIG3C^SD zt%En+ZFcX{O8m~4y-W9*S1hf=`ysp^$2%-imVS@#cG}*vRDIqV)O>UpK$6m@FTIXV zDdu$#9uKA?zSKXp!luSfO~eUboa|i;()KNBEl6L%a+<^x^P7WOZ{V;cQ+j_UU9HyH zYPvKxnhdI;V7}i1t{65&mAK$B-Gs`K0E_I>ybjvE$j{a_;kL~uZpQUmzdSDXijF{7 zPy%0<#Ny}TW|qJAW4Fx3jXfQF#9v!gINuMRw`mwI}M8oq9ax)%u|NkN?HP2F0&<~z-r^>OzBaMHmWlJlAugDK@*H_H_UT?H6z)3JcK&B& zE3v!SKL&eQ+$gLiM}oIa~pgLeEp)@XoQjPg?bDT_aUMCl{kk_ z^3*V#yO7ZRN)S^_VVT^8L>62&AU|i!5NPH;By_(LwCg|#?JYhebl(zh1;gQ6;vP0@ zf!O`lpa+TRd0 zLd3VLpC%Ip2V2!_SA%QB+b$pKr`Y@q_?OfI*pmr@#M)Tyh(U6~FJ3N=xeO#0*l72{ zfrEb$C^Crk%UJ~288Q|VOIoW z6zHGJAFumuu%7=KK3OF0B#KC}x4o6!_yiEmz5|lPW;`Kw7G{0V)(wh?6Mp=XJ^O?> zP?v$Mr5BN* z7ZK?=A9T0CP7I1j5VG}>dR^0|BNpg$)xh~#ona{{+GO;mT=18PrN9bc8NVdmf*p9jE)zhKyvU zCq?V+&VLh66^I>;IFhRfx(1eDx^8?>%Apl0<_BW=2BWx1%umoVmQ9NOI&ju5cexG3wX8|iJt;_om8-h@ft zv7a85#>aF<5uYP73Pv%#wY7UlHC?@xr&2#be-q?rnp^a{n=z6xQP#oCTfW|>pTI#<=yXR)K z`R=h)PCc>99njVv;#k%!saN-7$EdO57CaET60TW2a|H zLv!!q!C=Tr9sS8{g>Klb(t3;3MHHWF^WJE4@02u+#A4&G{(n%BIeY}PFA?VVp|G0n zY}#zxOa5XcTQyti7dxL4`&^I=+EE)%Q=a?SG>;fB+IrmN8}P;<|Ap}M1=#koui?Wu~tiXlA!oWey?-g$mZY^h-#bTQ9T^W14 zSRB#$R2k+N+bh$gow+fFKFsA4T}}^7wnPX?sQSB?Gy-r zdx0zDIm*VD03+J-J@k+~T)(g%$+f~BET#Z>Y)3hppo-mu&&t_Ds+b`Zma~EaY19qR zmJ{TwO@Y{3@J2;h1F@NS1sun~>q-arrGTRyCiGYgfu@hzK--1OBG}IbQg7jK9qY7A z>Mnd=r_-7IGB$Iis0fRvauOxvPi3Vm#m9xu%b8p#_360z04C}hPOcL^+{&i=uu11E zWwkyrDKBm-%2um3cMlIMr6IHi`j03Da^-TB9o8v)F9N*&1+~3a0~Q)|CgEGi-D-{d z#7)+;gfq1ms=69g)}jY6KpwOy~NxaGTLWpg8d)o488s+v}yzsTu9yfc%RX&@Rf=UN2~C5?i%OyjHk&8!KHU_7J*k zV@FqsqoQs|0>exiXKg=Acvegn{5P?jXT>4HxwCA}v&gXXEPLZw(Jt)HWj{R&FhW&l z3Z*gZvFF4N!kJBM@pHgFdpEI{o)c~TmTy9T!lA%O=Bt>~s|&et^ma3STz z9%A$Zo7tPI#n*+^$5{3Y;w9HJpafR+nN?_%)fD~nE|7@sXnNuXz3?da6Sy!?)MlCy z?|q#o1M7!=)M!;e;JQ|W?{I|fIFCMtgGRKH25WDDn(GwCk)TFzM>s^m7kFTeMi*3B z*%vS3p7nK~VUb3ADgK;VPk9rxu{;?kDeywm6tK$XX8&9@dInNi-PHkY7!qKhMXTEE zzjJdHW);(cnLQOxg=JDQ96_fAhe|~x28nqR>&(BGuEYKJ4Lo;eHM;X>NxWU(A_N?k zAIDSnX*!PfWz2PnnB}@va*(2+IcVV2|GZsov3et(fN}Qc7D=O##P3|6^+O zJBa5^oyRM4%xKffp}dualtL%L)XK3)hg!FzFYv_lTzi$9#UFsf^cRTHB+K&J#2` zgF~&kkWQ^}+}~z&KJGyck*;h=Ez+SOxcV{-dxV(7Ql61U=NsGygLbS#0A`Q9`m%^C zgz@1O3qNM3UlxaT9)}dvnhshAguA0hf6P+zc#%{zdG5TZNuvj2e#3vNp*+(UTp^Mx|aOP=HR1L&R5%hcVmLMZ5Go8?WU>_x+w$ zs(R#iMd#|t3a(`luZStx#DsyhNr<49_(qKS2oG2uC1RmoB8~y(T0N{8X%6V2$vcAf zRH#W6lK&v^_BU~C&MQD%?{8naPMtQd<&P+_WG6$cuV|H2?BqpdDG*J0b?>H)6wRBMN27aA{PZ__yf(swQ0yE+q>CeS?2 zw4n>P5jT$F1#bjYl=9Pbur7UCs>7&G8w&N>C~L+`>1cs->PF~M=z_bd`6J2iS!XLO zG@)|ak#>NJx${DEU?X&qVcy)KL|+HMCFLY-5?9NcqBjeb}Ra7jNqt)rWU@$3{L4WX^bxcCLrik5#!A&Df{0MB#HZ=&!fBAbjD$kGJFnwfOz-H& zXh8#H28B}IPbv55DW_0M98U}QomLzx^ohE9kcQyL*D?rAj6xqJ*vVn?6Fc+0npZv2Fe{!mPgNn69mcCc05ftG)^jy?XNxIoBU$A0)w zyiLe^jVbHIuEI^PvB~SiQNsKW*{XHoq$rw+w4=?MsTV&HKM*E=$JTu!UK=y;yI{$*TD04~qml=(E}x1wbacJIi?<&|@pVVp z)KA5Pjw`W*s3C;QzxXFg8o>VXsrY2HfJBP#Zql~={VO)=GjXKweIA?r894L%zGd%x z29c=Gx9t1R#0N%vT1k==v0%<&fQk1{(&urjsoBv9*Jo%i(>DRO=^N)6Mg2D|x1y75 z*#^-nTpGh_Hi-R`x?Ythylo!J@UIiBONn@mSXu`*koAp$T5(2+c&G4u6WdlIcJK2O zAOOd#it5qnydljnB*ndihwSQ}JaxNPYh%Bbh(kK0HW6zHxkWqDz=m!Vt=(2}o6#C= z1)f`Vy^yw~ffa8AwVc|({!Y)42iWe7Vqam}Dt2Zg7QwkZma<8FO4!ubJs{aY)xSm`FQq2tu*c07wtSZePU~eJ+leDiX6m z0S<8Y=5$B$OmL0Ru8r4B$ODuZ>kBcjW0;Rm{GJ1t_(^r_$QR;r!LPD)tEApto`0G~&e=5(tE}Xy zIv!vRtE4pH-59oOi|7$*o7pW}#p@0KV9U0O3Bo<^vNyJh3p#&&vN@o|z+^6nfH&2! zLEE6y{q!BS<~b?9b0)>lh80;bKCXsUZxj2;Q&wWNk()%4xS|fTOWVYu!UI3EL8W3J zTQZKGx%=;U8?fuX)a>kBDQ>_!L2@AWtO`0A>%Mf^*|k!9y(PF7!D_v~yZh2_PDrli zdQc>yL??f}#CoJxOJ4SFl(0wXPT`lzxrl~AYD)tjHSF+iwr7^xJj6%vz4AzQf9vm5XbH-Oa3Tg*d;{`(L#{x(rCa=c|&n6=FL>-=*B_ ztR_T?V27$!HbPB8f-yw6U+UQY?SMbqa&#SXqo@VySi2plaLP({?GABLaN6Z4=DyfMC-pzsip6L|bnuWJuXpaClk2O7VK(XAirrQXC^} z@vt{5#qP$;BhBpdO0n?%2RCCL!Q6_s(@P9qEc5~yT^x=VtM{oyz_DLY{oYv;cMY47 z@HPmWTtxdoWFFjvr`0zuj!ZWU=%;r7;bts>oq5pq#MphKzgy1UtP(v5u1$JP3A5-0 zH6`3lFQ_TOzKLb;5_5!|&20HDakQ{DobB8tF6=g-kXj&~f0@|yzWT>6FSAM2;(fx_ zWo%=$_(6F0W!N?>`%sJ*vjVY~3z)Y?oD=_i0ZM+6R_bUP8(oNt#GL-Jn|0kSUe~=0 zhN=Gc2-t`hD}4FV!XIA1?%XX-9O|l|b;1!)DK=uj7(yY$HP}t?_6P}l9rjir0@i6i z-^dQ{7JIb|d`aglce0;1NH7K8BM#`}8d8Va))iPlxxljt%>-*OS;5`-9*5F0t!Y4J^2kAyfSgSq|_0&~hw4EWFq+ik>-ErXoRdUAAolpuP?@;>U9AMq)Zf$`ur2qT>lTAnS=~FrZKl(5 z(Kx^un%HSE8@*TTi6)u`hWal4N9wKjsHF)|9?05YQI^yYaj}`0R1T z6TB{jAnw?fy}D0~j9q}@)g!1bpQ?j*ZeQ%`XW8a`Vt+XgIsH*8-H;WCZCJ#9+9zJ$ zMdZmEk>Ot@ynX*JVZ-)|j|sjd?9KhyyFam*eYIa4kfTsE%&dK}qwuz=vpxh#c-Jmo z(tFb#y%|{&W2Y1>6UX5CkKxlS` z*wM=hzJ!wRv16?7SK?=#{|1U-SNGr)D})=ccG+1>`%0W7j9RX%mp3@rl!Kxv@<*Z> zRoXWr*{cUZMBnVFYnxYgWJeB)dBU&#*`Pz>TI1Mx1~%n0=|1ByS3lDjjHOX?cBz)4vTTZKen-NHb^Nkg$T!Z0v38<-dDfO zx|K*nga=<{+YXBf-BKu*F2V3LJqb2mX7fv=WybgC7}&)UDbH#FCb9Z9g2f3_SCC3b z6+grj<020Xe;=|s8p`b>wXB1D*ke}|5&-VgQm7khy&ma4$e!6Kbu<3!mu9whqhu3u zXR+Bw#SB+C$^!koZ3}f^Y$DXI7cu1s$(M}qVm}>MSrFT zuF(TYjg6FR^+2y4NJECeSM)#!1-2RN{E5JAiFXnFk@x_Z@gPl70Ih%Q0TH15Q=QIi`*+grT_4o1g zKK64KI4(^X(1g<+h+hjbubtN4*VB80{!T|jwJ$fbVc&?uji(+qun84X591GKn%QF& zQX1R%4R#4)rm&wXq&T79X7=+=DV8N{mtu_T%9~m0cBu!u_qfmXoHHfPs_Em#xEM?Pni`@t5 zUi|L@qR6^!BEKVxtW$meNKU+fKENc6Zx4zU53;0FV0xqscKazvySHYrg{Po-8=ubp zc1pZKNPmx=IwelO`ImPIOkc1f7ZJ`!-X?M?7ww6G3hR0N0aC9-5TKgD!BNr7Oh1b6^{##c!4begr?ADwnn< z`t~y<>h?}cqHSv+k*e=b2gHEo%>w!Al)(0!#pqgRy!f;Dv@ot0TlKSeLv+ZiXaV^P zVy91wz0zLBoknQ&$@o9nYVX!&HsBYL^*#d!^`TZ*z`|8K_hw6jUVpXZ=r53buKD!y z)D6Wy-y|lx?toe2 zZn`Y87D(3_39rhW52=7zWcUh$|IGRFf&h+>gsw?AtVeT z-F<~&xPEFhIa8i*l#kAmQ{?ipA0m=(8r-2E zXGJ)yRQ(3$k4pPmWkqM)ZVQvk#*eNcP{rLiRgE9w6}F2FO=1tj+w5YKxK_A0l&wD| z9X9k~PhJ$K^*)YOzv^>96FEspHYHs5AaK)T))|+;ZVY*lUAidtoG2pC#C3?;lOp3CPEO}Y+k{X|+`(I@o43!3#ULNsD6eY=yJ!U7fk<(t6thG`o%vzeE$ z_|Lt`-nb+VNIdrv&158^{Mkjj7G7(LeiZj4%^P5yu?qk=J)fPrB=+fE(vnJ>{ya(O zoaNj7Vl`NlziwoGszH!99%5svrJIB^Z!oo5vc_JrwdJq6P?Z!pFXjj_)#u;aU>euG`XDi90Fcg21u@U@|;o*_{EgZ?y6pRYE#{?T3|YML>L4cxK!S*G2e*uyHSJjTj?* zn#bB3BE||2=CR3!h#7*A$G$K`3=$66+4qKs0m3>vlZA+UA=l0p2oe2-L_1p}M7$>? zKFw}6M%>Ub^J&Znm5=%O=L+_;G2-uWZdk#7PH3|+8w-j|qox3?d^fWR;StLQJ%i}Jeop+B;Dn?{D~Rz^@#?z4+OGGnm3A{$>cf6Tf@$n~C3S{O04g6h9As zDt^!5_cDHO;P+SjKE&^{-`IyzL}K($D_Z7;x!F-EqK8qcY-Z=Bhy}tdh0Te?a8K^d zSY*U#A+DSqjEu-LT+80r0dtOLS23l1M20Z8j4f#&kuKElWEJ%kQEA-08|$@;cK0*H1SrD69c*J%#5Fx;lwuXYY71vTd}Gfp%lP_h z=t4y8rKeeQ6q@k()6hsrJ!5XeOq0b_o@7niqjfK0w{(cO(Ks7~Y*mMdrNZ}{nH(Jv zf6a5AmR^}$ZQvA=0+|g&55AMI3l{~a-NYtGNA!-LN>Nm{4M!VL- zRz*j28@Ll{ObC<52_Ka2q#6(XcKOAQ5d)>tmxVAb z?sPM|u4BZAxGH?%xc9-){{&pl+h;YF!XSkXJzRP{`CV0Vv z#2;RI&b&X};7HOg)Bc7E-Sx52q{zoeB?Mv%GC^?bwM~WCzKPQg;Gr*O7}R4U^OT>x zu}A8g_m&?U!yAM*Nfg*a_QNh%ebM z-7Ta*j;V!Vkn}PeSu2ec3O2D>wbB4#Xa;++R>~E=O=rhzQO=x6Y-tw&Hu6nBAPpYK zTT@_f8XfM-Hh6Qw{Zb(IzES87PKQ9)#6bj*@;jEY=&ljNqmp&-R>kK=vhlGIi9-Dt zHmhsIyfhPX08lzZubFDd4L4QHm93^<=e|OvO&f{Qpv(equrfJ|OvzB5%R z(=8&=_^H*vMtvo{E_C~h)qf>jFO&>tQ3s{O?q8*~bZ%wx^k8$Uo?vUbM?Btb#8?2y zlcWk#1MpRk^FOiuat&Yl9tBa zI~NoNiocfxqDR}2`Ck?TYdR#|)YI0H*ds{sOB=Kv#|f-&gZCiuFNmK|FZJvAz%d|a zJ?vqGEvuJ?3eOK?>*}Q(VM8<<-xEf|ESk;ki7DTe$}$d1!;Op01~%ugv}E9ysa!W6 z8HjCSP^6QBMi?HR1)MoKyeo=b>FPxnqONNjg!(r_w^a#b&G=ODztXD+$4$=t} zGB#Yx#F(*Fy&@hLZi-^Ygor7^Low{`gou$s+3W0ugow;oH_nkkY#~~eFVneq_vrtR zy?2j`s%ra(*WNSCaFhW-4ssX}6c6ZtsCb6(faYOROf*YSP$+~EP_fiOv!b-5<1(`% zv!XL~TT)qJX*V7!EGuraZZx|i4@qg=RHnc0wfD7cwB$h zo!4G_?LBMu{`(~PuV_nbkH-&R!& z5D5%i-->lByc53%n}RRhdU=(>Z%VI#D!`;e$0nI}FUk%qZAOg5+bG7me+mqo-R%Pw z1)d816i&c^0~F`(fV5Y%EcXAD892v(HwtnHvKs-v*WnRFXy54WNCFt}B_jM3IOhmt zKjc05wfz*B8~u%D&kcB94~I?jX{NB9dKmd11wVjvl6&cX0bf3*rS}6W_&svBnRjC- zJyfq{7V;iE6V>k@lcQrTgL=1WuJgRwG|X*5)=2&aBx_4NswHPjKL5D9FV+(8Tc>B4 z-1xYBC)N@fGfI#1EwcF+{D(w=BYx|mz%Qfg9+$twT1LC$^z=g`G_;*WSm^3U;g=n_ z2ANfSmbNJHx8z3{EdY<_2^AZQ6h_DZN3y5EdV_3jD;8D%{%jl=J%FH-Ri2JPWmG}&K ztwVQfLt*dtr$T=w&mT_(oB^W8uYC#h+`RpJc2{61z>tUv?>#qX_uk)a(ZeZ~-)+eX zaL@4{pN$S@CHZBtQwb7+!gpXcQuJeAwB_xBt2!=C8il4WZ+ z=f}P0a`z$6Lwk;Y|7@b^QLN@kOOAY0&WpFi_v@j#&3k|Em$_|wznl}W{1GJg<($Md zgx}2Z()c%XqHlOa*2i0-CvGD9sd=Gy5FV=dByI2aUxuFC0`hCpdwUQ4mfVfX^Baam z26plV#*V}CW+2KHun0aF8IL2leX^hQ?`5%%%hhem$QI>CY5ZA7jEBAmuIvNFMhXpw zVNkS#87XB^tbh5+jPJd#>ea6g7CN+X7w4jE{5Yi!{W|6D&`-1ITXuZkK6>G>ogenL z+^eV;Z<2XQSc9J_lrJV(dirD|-&4ohzps&pk}M(WKWpT7NtTSF#S8s7_1QZ?S%uDEIZng6W5MFVZVFt5!d;5fEY1O!l zb~2BY`v+P^st0`K*t6adN`s6WWa+6qAV&|f#3|)+{vb<)k}FpZvWzgr#VGQJvslek z`^at`-Zxq|dZB~mGt%ARJvyNpMbLh*@n+K{n0JHXIKdORv0OPzi;JBLFUqzK?{L}V zu-Ik0!_rNCb-3(wSjO}(AFhZ5%P73Nc^sY?=Cu$MkO$CCYc}oM6?_Hmb=$KtKLz!F zTwYAEOfU(DBHudgJxDH3Mcg|FW0^1;_YE+vRu59-m^0oL>cZ>f*uj>erjG|I^7I++ zc)4Y;CEo6c)OzZ4PhL42vVCjt#|r`Pqp6nW1n@5l)HZk4_q z!V-N5Qo=VKf2_ba9hnjG#WYLW@N@C>ZQ+YrG0-PBUJ5Nn0(kt=viXSd8A6R1$HI{? z-t^``F9sZbN=6Q`M8#cXqaCN#kFhLA&KnSCoc3#uOQB;ULU3LNN_ z{nXA6hFG?$>fA6{kZyS=aLaYHSf>lrQ-1AtUnf(BTMEOb#?bgm{AG7WrM>+}eBpB{ z?gOv%82RFG%K_88Pydj&jIbM0tUWF|rr!Ms z_Df&N{J)|ZHA`Hh~`$SEtN@{;@>ZMEfzY-j>^XpN#T2VU#cm6S&lr6zB zYOEzDBxXL!lQE0#T4!%KdDm1t`e(kJHr5iMF1cP7kF`Vxzcibc_2XR|W))$0=C!{x zPi`J-xz+xC5iR(p;!+|TQO9GZ%JptPOvXENliG((mLoGPNzqSeUUyg15qoF03y#^^ z9`QNp?Y9@n>I}mRq_4qrx*{2;@UrvB?Lc_9P2_bHWOnOGiNRdA6m;QU_2HopVy zO$#qxs%?L6G39)Blb)u%eam85l4*%b$bm2Y?#Yf{@m{V{`yzPXTICRHyxXr^d{GYg z!#hr?lpkeU#;ZP+GW04-tlC~7U-|>TMfkWvPQS_$KKM1)9oB~~B7V;@8F3L8+0!bd^P+cnbGw8Dkhz8OJd?8S@yIGp=X6kMU_8-QsmNyuTKEPPd*vPm%T~DxpaT?sjoiUBk$#^4UHRBe>2F5*%pARu<`HK^5xWMQ=RL`IX zV*=wq#tcR$V*z71V-4eDj4v_nVr*tSI@GOabeatp8NG+;_7FxpV=Ch~#<`3x#=97| zGd3{3!+4PKbH;zUS?Of-<-Uqxr0$`QFE{;9+~=)~z1g0|sCx_1v{6*kQpG@fimLI9 zE+`B8284&WwkcYuL)E=(z0_)%-!~v6q;``Y($rfIseMw>LZaRHCQG#R!oON9r__%A z_}73tc*23JXyL*?wR!~pImhFl-HCr0xN$F>_@_23pnyXBYomW1^si|V*%srUtqA`b zO3Aql|LShVzmD7SFYiwLtKNuzs1*iIhJ@D} z3;x;ZpM(Cn=wCJcYodPw-|UN)yYbIP*E^^+T(*&hJ!r!IH2&q$zq)7e&sL9rS#|W^ z{x<$~G?B3x|1#)bE&Xete`rnw&=an!=^xqFv%OcWtI~(%{sA1tldE zFmrs)EGH}m&vz9kFR4ggQCyl_P`JE!VPQq`(q)C^E0ar7l2ei$hMSS7C@U%aGcj2I zB7VgRJtaya`#;jScKnQ)lcrC*obb%-DYHGwBW7lgpEAWGi_(R~=vHaqnkWXI1+ zxEq5&%g?BO?Q}gktZTJT9dr8Xgg*6M!W)_6nnU|EGshxa`?Pl9?aXm6hdyr6*(Cw9 zQ!ju;cMvw_Mh5mS+`-%^U^;W70NKoOd8K`FuZWMsU;!IATof=jv%$sO$e@Zj^%8wn zF*n9#br-(Ai+_!0IL+T1Jq_TsUHE3^Mwe{w5?;^TD9{UC!W+8q9UlJL`J>UpKsDOc zg*P$R=X6}ScL{Iq!Vh-gEzFG;I{at2mcMB2;&Aj&2P%(f>k@vVOL%)1e!2_q=o0_@ zWv=HhIxicv{KSPWTwJ3MN}~qmE*#siw4=xf_h)Xjn5_#BG5k4y5pEdt{6$n3Zf9;B z1&%H}gSjzCvzZ%XCYL#GIcpymbGPA8%?8>5N1x5iqjV}7nMX5k?GoPEB|LnF-Xcc) zbmnx%qfegB-6B%wqM9A-%&D1l*Z%wq1ow?Bk3Cz7X+@W!_ zzY!sW9gGqdFgGS57jvTvs+r^Fy7sAMZWO42xzPeG%oEwalQ{K1zSz({_8h$ihC?=U zEDf|z6>}ql&CKl_-o!kfc{}qY=HavS^!qW-2B&BAh@NaHVh5g^MHTZP4zFcyOr>3C z&bluCjm(YoTbUbUtYeny)(#t^iEQ{XlL~}81KOu+23=>mt`k+)76U1QTT zG>!ttwLANL?zh+)GF!K2Fjf=F%)cwWq;0 z?3EllAF<~nUZoblOjL=1qKMnifcfyy)1U9Y!gYigAr>KlGLer2s8EaH>H;Ud68dt4 zl%Pn3@EifX0=5E#FB1!3$I4UtP?7#R#0WPE;J&h~|IZ5WXOTI75r<;^cSXS7eA)#s z6tq7SCZzL+ts46u>xfSU&=O{ysPUn6CW&cc0*ut2i-7aVFiGTyIUw|*fMPWDO6b!> zCPcuJ579p}+1i(R1&11((i0~ZS^%lSua=i}-Y2plLgPk#n(ZQI(=w!@etYWNXtYd6sY+`I? zY+-C=Yy)a%%62w%Fm^JEGA=QrjWL`ti7|uG$!KJd$K1tO%~;D=U#5=Lnxc^nEsQ4^ zPcwEh+FW{p(ixquokunWeeUP(sL}%rJkQ*~PUZ$)U~ZsTsmC|MZOn~udzWy>mEm&G z)}T3&MQp5MtYO@|Qcf) zjP^Bb*H8D|MLHXtjGNc&>{nsAXqGR$5R@R#PgFzP4R`Btj3s{~b7O*SVs2bUHZ!N` zm_Dt{jpbzy?>ygNt8W^P<_IGKlXcrJ6=NJyVN=J={d`xG%ZR)a3) z+WMEKgDN%{>&t59#&WWTxpB=>%RGiN*vveZc^z{*^LplS%o~`~0-N#|>2AHrjZ20` zb}&}-P0SNHfoA5tnYS?S!@QNbac*y8Zmihbnd6E;%U^V`VE`x4$((K^YM)Jd0S7Vl zW{zD^+Q-HmJE*izICE^9*FJXU!BAH(?z2OGw+Lpt*e<{8X0nP)T4V(w%~W^QL5!`#6< zmU#xawj8jt!O0GB%=4JXGj}oX#k`t%0`pqtiOlPm_h#O}ybtrHd-=kd9?3zU7Ix^z zyp4H(<{iujFc}en9tC;TePs@T6Sn-KAU+5 z^SR8$1A2`MncJA(#N5ujgt>$HTILzd6>UX=F zz$t%`%LawlSVhdu%&VANnb$D)VZNEUFY|il{>&ShM>20_KGL7hzin)|i5)taE5@Sj zA-#rX<~HV5=62>j%pJ^qnP)KfXYOPkY18VD^D`SpvV)7c!i&CY=4R%#%&pApnENnq zVD8JjiMc=X7Uq#|Hng!}B=b(@3a=u)rQQNQ%)^=cGEZXe&pe%ZB=c8=IP9pBt3q%5ubUk5ubUH#?k-E06jvL5rKJ)5rO$;=88l2uQ&XeHyZxT zn+^Xo-M`iFXWmYn#-A@6I*kbFdIax>^%n4D9?o1DrH3aO;mp&G@C-dX+X!c#Yw&S; zcoFzCx@qB?tsANghbcO*F}PFbo0*$e>AaqKB=g3Hcly2+)WhFxEEccQ{e+DdgWQt% z`c<#lQVusRLYd;Lbv?Y54R+>7m^+x$c4PWvFt5`XCKV?eHt7bD$NXdFF6N&xuV(%U z^IGQ5GOuI)2J;5ydzd#dKdNzbY6}~T3xqc22RT9q^LLqxXZ0F4GdHe)j7umRhd;vM zNz89zZd|fy*LXCjGT33E;lP*K)Zg@RayX9#k;ipFH;1Ql_>+866WMI|kR5WFzrehR z`99`V%MYwZtXGaFjip_Td7%-fkaG4EvlDRaS>;Xcg0 zpVwRP5c6>6UolT&?*4)e>1^1~Je&Dz%yXIVW?sbnF!L(r+nLuef06lS=Ko|~uXDG! zpAC)d(8j!(`CH6enSaE*o%u25oy@;v?)`$^0$(!^XZ{c7Ng7A{f4~OgR*7+IC7mM} zm)U}6M&s5csKdFy z{_OAlqTVIOospzXd{JrKEDC3bN{&#)3GhltBysr59G=eHxHDpB{{Rlp=J4svjhk0V z%yVDli^?0>(7*}AGB4r;@|h=bcsJ%%9L{H5;o$H<4zJRF7^*d#;7E3;Vu$t29USgpUc=#!GT+R61@n65%a}JZpT#`;9=(NviPNFd z%nlE+Lo4$f=IzWSb0;Uzop~pR-_1Oa3vAqS^?q5;a1Dp&a{Lf*%3p-DgK-Bkj~zle zLK271W}eP`GxKcb8=2=af1G&{^Lm4G`aO*Ee-%6AvV)5q!kE`^_#Ec7oAeruV!oNf zZ)0B1{2Atr%$GB7X1>)p|5tN{5$w>)4%abn;_!Ip?Hpdfyp#Dm%)J}*0=~~YoOuKD zB<77;`@@*dh6C)7&HV4oYq$WB%yT(>9`i6!rhsT)LF~5a*J15wOc_W7xGjC>I#=Moe$%xPVIP*?$?V_@l z4c@QnP5uP)aOSTvPh$QY^K|ADm}kGbbIWsg zEC}tZnx*TAB}T3pff#kMszaL32c>(^$RC0tWrL0Uda02V;4eQ&R0qm+?Ljf}x!;3^ z%5fKh!e#Am7Mn~uhu`eSN2wvQ_EHcYJ3B%RmXDo7fEKOkoW)ztJxS?Z4ltj$M9S>Z zh%w-2{8Xd?NaGHlAR zYuXap6D7}nZApwSfVv!k6vd8BRTSL?o%VSZ%lw}$J*9s?HA=R2Sb}ASkLoRN^bbxC z)E)KRRZE0jKH(o6Dqp&2@$EZ9OvhgiHiXUAw)<3K7Zx2rGr`AsT4g4F&?HZLsXb)3 zBNj{0D9!OEIG2eP_&-Kob26wGbwRg4+F9npjxpMCR45AMj~D^{<3%FssL!u6U|xcV z%PANY`Kt)go)Lujv!K(knI}iS8x%Z9mX1)-X-&y*~hmKf!%hK=AHn}H*Fs}NlF<~oE&_WcHTAy~URcP(7SgxJuzey%p zf@9>EuPrltsPJ}Fp+G9yPwG-1hSmId+$2S%WC1d2=pJn+iCT`J=StGxnNpaQg&%Z{C1Wirms z+C6Nkwso#t+ufCeK&l@aQGT4F#>w7()^0wRJ><(FYFq%-E}!?-706f4S;Ayzhs7z= z{E_uxFV!AO!>CNlg}RdpVi%?I$Dh!lqrSG-d?t!n*kCpeqwtkcYNGtjq57iMv^}sG zyZaWyzx>{~P?>i!C}g;?`K%au(uP7i8jeQQ0%%uOk+u(djCOg*riP8bqQY?aA4iAh zYxx&-lVg8FTRYo>LjIy3dv>Y*73DwM7c+)7?d>>c36byk1V_oc{DZ^) z>PYVHlPd-wHa1tvwP9+QDHmJzXv&HHv(8r*t_0myA%BbsPL>~;gHvT)Cn~$olPmi<}-9>?1P*gY7|GJxwyd)iO-x zo(W30T*;4ZYJ@!PtJ*JH0{zrJm&w{wmT0-gPmQ{4c_J)$(Cfbj)u=o3+AXmk?PcE@=jV5*)&p(^jb*GCIe4dLgm4cYBy7bSSbTeVUQ5>(l&JB z=||Q~nRm*PCqsIw@zN2cTIA**aJ<%c3(k|S-z}-~)xh8hJKJr+HOhlY)@s=lgem_8 zhdMyEbXvS&it)L8ns{)!wXZA)#YxqbiWy0p_qL|0IkMJdZJ~vOye=a6HQDU)PnS0! zHXa#=(mQ$vx9Y<}8-$a+trMgzU9Fd!ql2?C7dk{Lb_I)_hkUFrE3##TYEQflbKpV@ z!$iy!L$TypCa%}mb>ar$3tjujfRXA7ZAn~#W09r>7h1%H@mPeTjt!gx;&j0q6@AprG9cBChs4kW*V2N;@|Z*{0*hx~Pg> z?fQ{ugwdTHx{Qpvq>8BTuMDG`FjW{r4um=6+BEAR>Bv_zWXE&e{QX>$vA_2ZMEFC! zH!k9#xL~hXV*GJ>=wu>q*^r@zcxiFukNdiX`DMdc2gfQc30b?sUk~LpS`gGV9SWjo zihLzQ?e0afg`U`ESna4F)~hIwv{m_g#ey22Y!97mp48_=yH^#>{auTl(h) z1bsYZ%8r^rw=EcLUP`%TjhHv9qOiPT-sF7gexX}G`9ybXnEO+NkkE&4Vph%+O34!}DDPe4}+Q5jw}}^PrqRlx2dm5oS;k! z^@42gukYaJA*AJbus?piP4fjCwM^UK=rPu`Oz9a1pJQ;bpO&e}z$5B$!XK!ouN}x* zV-rUQ&@q`rY3m$)hC;zshZ}7J7gT6mOwB_LskvO7O7#^r*01$zP2vI~&z~_aQyU<4 zCecQ0&#PbY~h_?z`&U9f@vV~8Z)n&=k z^P*R(Xazq%P1L$k+&>_8GuI|a91!x%PIg;$zI`-%Qzy)k!sAycvySOxK?AvUt1Qq0|#4Ydd~B1K@UVSv(I zSencZ>K+#&#D!W!=y{t6IuRtyhl7O+=cFx=TuQLFMf9$W5WzV;gm*!>X8#3YC7c=g zdGbHw;t-3Ymt-JefrJGT7Dz}S5rM@1bTo;GL?6*TEe8X2itz97ZS!_n^DIuiPo3yf z*%D?AaXSVGu?gaDp_I)?4P&{$TX@|P?cvOhYmw=hz$Q^#RTsI8zMIA0#)*Z67JnhjgpFhP7CM*9ga*p(c|6D4vv z5<1Q^;Rx(G^(_bxzU3Adb*zIrRvR_`B4Z2|7m!g_YB_NQkLc?s!f8kxVS9Wm-j%)<=R_f%hZIoyNfwcG-r}}& zKkRMsF0ffBU|%*?v7C8V?io3vzn6$q4x7E2C_8R39FKa7eQBl#YD|N)P+Hp9_=lPJ zdPqCjus6ATL95yOg!_n@j2o{J;sR&fm0uANwZ0;8ZKnCsEKVFTi^_kP1rqfPkFZ6MwRt9|>fqxK6I4W;RRp@z!jwS8rg$C&E((nHLcdNCW*25kBa$%@=gbgoxN=Cl z7Ng%s?!DI?8^)5c`|w1MWN0g!>x>b01BMJ>p#1Y<&3(9IQ)=kN4$2$^NK z#%ZI5CV;qDi-@g!N(2{d$ISAiu;-%`kS1Tfs-9el@)uDBK_V(AP(-D56H(>i9X;AY zT7sKwF4|Aq*|Olw6KfEq{5NTZNltTE5v?8T3st|NU+ZBVT7%en0g_{5mqDRM+w#$ChD+W ziPpHwPJWMK+Jsc4sz5n6(K>A~C165{V%|lELY^M1YWU4NLVN+f3!FZ|P57b~0xrKy zv_@QR%b#}%5&59axvPSetN~$TQ|y8xm9^ebMeABJ$N9 z@=|Z>D?RN;g%|{>3gScNPc9Giv8HH^b*YbamZr>3vM!SQlB~3Xr4yYJi_>&vyofD` z!|B?N({+>x=?HGKIpt3St?}+^T&f+ItcccNJ#|m6g!_u{G@A&Yp~YzF)`Vqwp0860 z_Y>g-J|aBF8{ro5=V6NKY0H8tB~~d_{_13z=Z7l#;zXQg6~3t!w@W|j18~&i=uh(# zQK^3>r`WJeKt{GSZ(*C^?^68D!avPl_?LUTlo($Tb0Sp4RECI{g6<+FEm*|-6yj7u zd_@SxZODu(vyaf`iX~Xu6$xXmaF}MGG>YyfvJ8j!)GeOuZ8?mAN2D6zSiL}l!<+@DuQs`W(# zz)D4gK{x>s!PjQ>166IDzqCpbO%N(#(<(W+pEX_^aAp0h$rC9NO7`tr6>-aYMf6V7 zGf{3+Lbbj-qHY zY&llkbTy0Bd>{@T>UyJRp4g>`4#)$Pda^a84@GoYQ3q|D_|hft5tRhrvt4KRx-6%g&Z`< zniy&%?t4ZNHIR@Y7+vy}yL|eLG=esrRmA5Iv@rFa(60O|X}xd4RiP@hqhGm8SlY}j zYLm87kZ14oi5})UkNFSM5vk9Ao?P+6x(x~VApt)ZdJBh$V3Fp-{2D$Xvcw-`>HCwL~)gj%Agc$s9d$tCq(N}2mFHQA`O=sG#MIIH}}K=4!HpdKaQwjM!-w4s@Mrxj^+Z& zFN}15Pq8LnF4wFCRXhTr0*_3!4!_)_`}?cn5QL%=`us&#J~{y11ZjW|P`;dMjrMDJ z3nj(J7Gsj`V63{5a2L%9>H47?%JiW*kT4u#=g7p358cG3kEh=%4?mhL=q@AOvvOAB zUY8yBuKHZg&#li{aA<}@EgWj#(DtW;7T$vJ7Rm_WbT_ZFOL!Z?TM=H5@H)g#O1hkZ z7QX}GZ3u5%YZ47{D8%J(H-;lhXrF-BUBICe4jpjFz3iZeI}qN1@D_wOBfP3hcpkz# z5xyDWwFpngZA0Tj>AMgvt~QBkgjXRv+X%-cu~vX;IC#Us1&1Oy)EW*PUW;%W!rKwv zhVZ(+Ci&wICE1<9O))n?&#|eOj<()9Rxw||IE}FfqcD(*n}Zvp^cllQH%jUA7~@@x zH|ppXNo>%(@b5VDJzeYrxS*X}uLC)YgMslK0E%P^x0(eG5_(d+@ z;VxZ}!1f$2fR-5k-Pk4mZ-^I3fhReEcdm#akBkg<^lKDZQ|C{26_(B)SGasySwZ3a zs|#0(XURIHY+-(7p<$mb9n;kK-~|*iv9OZNc*f)WN#mq*npzO%qrjL`c2i;Lq|!xY z$QG6@}9m+*r7<@)~-`B)(zID$^63 zxQr6ILz!7wUR=6(LV4MeiL)k+OBMa)u~ETcI1S8Pp_g5E7vd@zH(l)&5~9v1Ts*U| z^4k28WrgFbX5;>;kRwJ1$0(t4>FD4%#Yd)$4GxhXPglJZMZP#XI6@gO&rVl+;*md8 zB&|B0WfH@rGA1}yJuc*Ary7MjgqO3X;)`#D%or0Kss5x@Fibw;RDF~fxq3`+PdQ^I zc1ewvyPayB5=Qy=7+AWna8ki+u}?ucwfa*}T@)ztGS|4`@uka_==Guwz}A-^#{~CM zGUVuM)SgPRynZZ-YmvvUQ6r`g63+a}qO7td3yMn%QBOZ{ZDG0Aj9T4c8LfFtC@w9S zP+U?tEq@8z3KT7;S*69L6_xoVCDX@GMNYFty!3NoV@BIGYRH(`;;3GptTNY1!$I7v z&RkhhS-51vveJb#EF6P}V#SI4m*kfgOhFlP$}-CrFP|;%8WkKVqecfu?aX@B|7nH3 zIjxrV1**5ZvLC*`#89R!4kYcE|Lm~kLg;C%bQ72!=1TW`=!vcLoYyuWJ=T@(Bhs^5 zn-<}`Rs`EjoN^Z67B=E;hCB~>7xD?@8%QT4u)j$pL&id8_BZ*9QYdc7rv4^5c3g0@ zoHtAD??>I3S&;9lEG(DqS=efHONKQ@4jmsHE>C4x?~r$7TBG{VS3SmOKRpjO17ABD zkE=#NHlB%FmxXU&L;v?F*Z=#J>;HYqwfO(tQ?47;?81DPalUz!PL)~9%F7E&EBTx# z5=>Ld@(bKkiWijUm#-XOl}U53HpypWjw~q@Z)i!3E3Bw2FIy?%RU|=iGYbmJaZbgq z3M8;FzhpvrVWIe$GMHLcu&ks|kBu4qoI0sucG-%dX-1CXO)W(&f*4}P+&(4WucC5% zd3hObs5Y6Uy*)U@y@JoubQ+i~t~Ys{$HikNoHLdc(x!~rW#upu523_T^wS~PBm&vtB2wxg%#qU zX-46avgL*2ip#MAC@WuytajogTvAwBs24R;nV_vgrXo)MVmixxBBX1s+C#Zh#y;U6 z5iyVJQoJ0C5IVzExbhdmFIHajgnyWNP?dG_)Cg7N$uo1+o^k8BVpEr4QwdVrgA$Y! z=2sMI1|i1EvDc}%n=Q{i;UBI3O-TDT{~qeALe^b}r3>yiT&MPQzpd4DMxkEUMVzE( zC03bd7T;W0wrECSMcK0Qg*a>dY@S_Stk+7UQzzf_XIPRpYX0O7g-+Q9pDngh!_9`N zY()if8F{&_UNv7^TwaNVme&36)A9w2xk+VNWu+KjCE{fxTra8kP-~6e-Cjhk^R+dB z5UFO_Hc#y__ztdyv)F~=?xGGHUsYV0g|%c(5!OTnLb3-_u|fJxw#F*sRA zqRzK}=Z(20(3otrrSp%9?6}`2 z#63YTd;!m5;vl(GVmT`@T7tFls!enF&Qf1)mRD%uS}MIY+cflmeo&u5^Pm#N1vI#v zIIP7KN-r}DtG)or2}@4W=aMzcIjOWSR>DOZ`E#+EDT=#TW{XKC*>DrC08W@?T|aY( zx)ZPLnQ9Hk5WOZ(jc}(a6D~LHP|}gS-k8IPU2fVT#I&aEZkm!cHQ%LQgP>uPsC3+B zbS}WvzTPr)jY4e!pMEqaQboD-(YIm>*=EhGyxf5AYEuYJ5<(0|cFQV?D9TmK7A?Zw zIJ)kks+W~k;PLv?msPr!p&f9;*u#nw1LB@H?;NuvBvM;rm&&5)R+pN$R34dbooLF` zAAuibZv7u=1I*5BJw`}KTZR5xn!IH?wiWA7$xn-N;lcW}fEQUhX7P%6!E)WhzO&>S z>r{&yNs(LQy#II5&7aep?k-OEzrx`E4A?n2*Ls8Ehu1=ACCkQKcwL=OZ{heK}xreJ?k67&q<0!TV^ z7w|sT>wqUA8L)fqOEUH>xoHyJ|4GGVJBSI3)fT7fo>r|3P1?=K`NoQ08c`wRXTvio+8g} zL$rM;CJ`59@FyGyX@*WX2hs|i@K#*pwL|yZ@$={QAZ)UueL~+r61;FF2b|gm%?O>a z5Rwhub7zj{_8!{iQ-kjhYT!foEMz-$!oNXwKqq{*FHZhs2Oflwy#;u}jZ4ncAf6j` zXhY9WkPwSW!|m9NGXT2hrX1R=!H)7?J8WxZiMc+Eyi=p zjN5ZV4Q;e}b2RogA_C!Ih`-gO;jhr6pc9T9g91VK+(ScqX+DQIVJG|nQUJXJxGfWf zgYLQYrGFN_JQ|1oZ$tnTF>XAX2D<0Al+~~qdtE%Yv(UDdPbZ*2-X;xWCSpGYbix6U zanK2;L2{sb?mqF{nX)h2jWhdne76lJLN6x<6m-HENE39=9U-2(Nj!I&&<>P7GjONC z$E4w8=tj&O(H*NyBt(3<-fw=pN6+V|R$QbL4T@li)~gcLIa+g?ItF9msn^+?p~2H&zZK zfN(pc13KMonO2BW`yn#$2qX$R-IRHE5ef&LZq7_ujKYx*(7Om6I^D2&4?^}f;E-Y= z@}Oq`>E$~m&=Cy&U*G#N70{Hv=Vvrs_Ii`R&+?1$!;P`fGrRjbcAA)9+xnLb;9c*RQo*ODb`ODx@(akO0*tW4QXB@j9a2wZJ+^Bm5hH8C!7ngHErrDuOga zcLA4fLH{2Fp;uh3g|tAYH(mV`LJ742lONGDa{wnn$UX(=w^i>~f8b0A+38ie%UQ1i zKF9hCz;7T_=o7#pkD_}5F#|q|k-q_i2FOO>>kx8k1ky{7$xiq!H*XTK z{}VV0U>^Wn1fjS^z_%dOD!YImL8x#oz~ii+0A7HscOwERv{8d16K;VBl&%5T1j&Hj z0v!J=1{(Bi;6u-0GJ(Ds_!WfWwgG!Tuj@&`Qr2C--4H6!9$?}Ndc~4}?&yT zLMWjc;QJ7Ya1faKqHa$EroM~<*-Ro0cpg#>op5ghPT$a*fp@=#c^-N#@Tr|R_Mz7U zziq^{4ZR&0`xefYHoPK_zW<#Ep^WJ}-j`UXmz@Rg(hEWFJo9}A0}3_v2i^}M{|A6E zP3R8T?ZDR|bSO3gpW2NA!d?$_yr{J2Z9gqj0 z*8qEbg;s$c4m|fy^#4(i^H3f;hL%7Eb-)YXq9vdcF8h~Wn<`*yJEmLM3AcQYg$neo zK<7!!j?f9)Ayj+9>rd%=9`JM4TY;-j<1~+at54(jpYsFyA7mbI$yuy|pzi{z9eUH5 zfir(Z4Uj<&(D{>|=tkft5Nh7Tz9eByl!J0VK-eT+y%*iop4H^t`ojxQ?%CF1>6#>>sx_)dMct5nGwDh zrHBU7f%(yj*bcn_Xu@l4NjC%k>5f%IGe{fo;W$N9LEj4e8A8oi5D&eVu6F`c67@C!p=YHCeIyzZrTd?&J=8iK>(r8RBU-c zgnHn8(-dtEcmVj?bX{)*COdWA0Xzet$*Kd`aE)#!%$T7U+Mc6`vTGGlLWP*Eh>LUd zO5%2lxM?mP>Or+E0XYVtqu>Pap6jr=2@z_6>O4JBGce+MbO{O?1$+`hakm5e7h-cR z>;r(?@KZC=w*zM_LG96fxj?^CUH1o0h2+BSEX6~;BuEqzdI6a1(hK1L7D1ZfL^yb< zBI=>10e^*5L%#qVSgz>v0Wc3jgOTuKNCEi(->O6l;T z833JL7iqdhPsa{)s6FszNGsxQ1x8|bVjJ`*V9@R8{|q?IyBz}xLN(qF z{DAdlU^|2oCG@^S*9j*=@(?#0cpKy(^cvuYkoC}8fP=6Lu^zeu_y@!ZonFUjhh#&y zyP<^Mg+2xe2f86N7^{K1Ayl9}K)FG0mCe8r8+H3Ap!sgyPWT?{^r}yvd-Q_R8$VN7 zPXiW0D9s|^qYyWdIw*%Y;4si*x~b9l#|!Q7Gsxpm(EQ0m8FyVC0hzaQ-e78oE0VO8DC-Aqc(jwHiXT zA>7J3;hZMS+whqO{1{@#cNg?-*wEd&eqRveV`|l4Qzza96-4J@A_aNRGRhL;1yP4Fk}=mqu0`|g-|+pRh4)F zLKWBrbnesBA$$m;btUj05b{5|563^=87IckH!(op12|1W_XnPa)IlelbPxj*`V`>j z5UNcp@YxU19kA~Jj{Jy6HE>Le?o$MO3_?drGthNNFC5|5q`MKh4a)dW^wMPmXMBpx zVb1|JK`1iePY|lXdEkY^XkPdbKKME20qkb21ID*vo`;?QEI5g{(7jJ7;%W$ui7CJz zPUGYTdk4_{#2NHC$adffh}IpztRM7}jst!Vp&FkCjyj7jfj{91$PVaf9Y_>Hw`4ki zg+J3i!gl-76bTuh;ObAc2PBodLdISD#p9Yni!01i#SMt9iLfiFYGL2m#qO+-4-D}kB4^)&N( zt8Vcs2#w4p;86(m6XBLVr~&K^z$Qo$BI6q|(Ffv!o&+3%UCLF^(}9a16t@U?8-$v- z2581^<&E$m>;)lv0&oaKyZ=)Q8DZk&E}_DCL#UA zf^;`2^fMD8g!ID=(h2dC2TdoWefDH0#7_w{oe;l4&~!rlh(OZ`>30LI71^y+?KZ=OQiP)fH9*h$SV00pf^xp-4Fu|2huU^P~>Bs)*ec>TwSV$ne$+l4S1xOJX)%*(ln)2zK9^DT?04H z@1ph_{4V)#)MNUmdc0W-?_)4DBHnj1g-XO98-C$aU1l(J$Tobx>fyh6KbANi{_Tfw zixl6<7@xL>EO=~(#=N!v8Cxv!K$$vS=DE};uPl)%a^!rM8ttXM8dg(dXX16RGer*w z9+xO);g?I9kVzsN&wHE+|0OOpEX=X4&&w8{ez#}e{_gjSK9o;Z`f zOp9~)SiJgoGvPsO!W{BSr&w-!qW{FNx;b($$Mjc~l*x{4X|D(l zb*H9^5y*KU@*RMjbv@NXAIv(HaUcXo;sTGP)RY{@jF>6n7F1;@szmjr8mEh7$aqwP zG-?s54B4`@$|Zw2M3$7%YDk`{Vv({=k>(lW5tSlM!2fY*FiJ8V|A)a&t>Qr9gOLP{ z3~Js?grY&k5d0qp848VJrf8U{x7}FzO0)mS-0_!-O>H;KF~ni>utaQAtA*prhCKD% z#ZQZFzh#H-sQvfVSI+*T@J#5*|L+@e9BMEa<)=ZEhC1pEIRy3nzcpkMHDuj7^;gF_ z^=HTA%e6y~n@2fD#Pk-|;K6iwN3}epSi5K0@%(;zoF3k(t(q}UD`wvzTDNGuoNz_- z9*&S03mP^@WU;R~1+6Pf)>^OWnT}Z0_S8Sr11VaM42L#Mwp6M;<0&8wX6nu~8bXy< zB)-T|AOn`E5!sXTQQrkx&n|%DP}G=?guy5xY4l7@YK7s@X>8CSTBs#D7_k<@HVpA` z1j!qg2d{J=xFVCayBurZh%wV7!8KU>+%S=g=xG?@Gm&_?))wVRg2rY#p3IthIXwNc zMz8rEimc}Ug~cKYjn`HDA^Us%O`HduL@gkwPqyv6*$&;-QrkhURY;R6;jlc<(jChOSO~!)Dt3@y`=t4kcTAtP z_4w@_6L-XAJ>K?R$EMG|=s9)8$u)=Y0LlXoYz?i8a~E_seRIb=)&1Qqs~6q#$lLdi zyfOX3A=|&16ySKhO}h|E)4M-`vL? zkUaCl(E5vC9SA%A&z}E28hJME`;8@^*ni$ICp}^P*6x!7BfpyS(N$-wzdB!)*T>O4 zZ|Z|Zr*j{8M!r35c1Y^8&;97zF!fMV`l~nY+`E6o)|wWd-tOnGO&p(?bEB`<{J-6@ zwN>4^+8OS1VM9>%fSa=>{_VxS=W_b&o89e>pw+Jp*q2@4PQ0)3jpN_t{u=(|%duZR z{%FRfCtn)auPyj@xqWEj?N@Ev9zXhn;sE@5^678mEfe0p>-W*Yr|z8m-i8?!4?Xcv zj(4{E#>T3@?Wt_sm$yDC|D}6YZW-P0?y`F~IXjQv^vao%GZWt#dSc@2X}1;S_AR)S z@?p}3t?s+m+&JO$_x~|yo-Ov+jD9`K{W02);Y7JlAML*Re$VaJ2Dy*ieYg5}WU3=A zB|UX;TKeF08s0e75*-5i&>Hn#wB_25{o~wEZgs5pd1m3jk9{Y0oJ{!jNrye~hS@2- z*KSF%zUn;u(PAI(Lf^ShUH#H$XKVw%d+OoW9xocSc|)%Hf_+EdJxkwCihAmgQI8ay z*n8@q`H8zaekgkP&@%_t^i$VPE12g$^Y)dqBZlSg-2AJ5-L&{QkNny*dGV+|qpq!8 z^vxgc!qtJdzddB4yZx?%=a1a;{f*O}e`eO{ZFk0eHhBEZ1HV4D;_VLy{OZ-{u2iDi ze-A&FbtvHb=Z+35d;4Nz;F;*D%7kgYFI-sHe)`&5yWcZHITKP)d9vWuMYh+AmNdJ> zYG?Mq(OEyVB|P}Shxh#bkH!-Ze*D#%-ygi;3FX7ASFB%bcl_|k?UDUTcl*uRRvB2f z!5HLO802GRQ?(lXmm_fJ?!16NMSkt;-Q7L+uEj?Ve)dN|@5~kN`cA0Y@wcyoi~FzW z^ptsQZ9;L0UM4Ue5n9y|Qg{poAozG0PjX~fYF-aDT@xG4YljET1%6Uw!pym{b` zbzUjHnH#2k=brDLe`fxt!;{CK+SdKuKVsh7oVhf=$NXkrSK_KU#VH9VmVW2^mO1R- zkC(^n`{b?2cSfrhef(d|+A$~c;hFb86gR)^^PRnws~#NsLZ3h0Ie*)VqS4`RpMPg_ zO?=SpGkTmGf7&E%t~;J|Wi1``<-XfZVg5f?T=&81WAh5me6ctCi!-Um4?Xv(`{QSR znLRE4*A=H0|5Wq0uf-A5rk1yj~DqNwjYli3v~5a_J+4>?6a{SQ|(tsXxE^PwI{=)3bJht1A<1} zm=-zd*}|y6`~+{YGwm>v9I~@dUg!CXW8=F-XFuuC*N@mcHST)wj_%_}CC4{@D~r1q zu{mTYJLO@cEtOzM`bg@irgL@Dy+Eca@T9t??m4(6H8Xq?eTeZ zYL8=faEH~TC`Nv?Z&(&R#gW<9$gzF~fPnB-amx6+GqJh0_dAT@8v~E4ch|a$AEP++KaVZNKxxduIPtLn8Sb zy3e2CdO|UFcQc(cWWVrft$eAqo86<)yRW0=AL8iS3ksIp9r0yTm({y&nmRb94d0ou z`?$;7f~HSd2R3BR^BFzoWzaHME=fL6DV^fa%-Yf?)7n0M-qLoIYlFj$S0jp9TZ6xx z*tmB||DI3#QM#kM-XweKnTcSK)~+19y*$0$J9h9vRUfE4!;b#`o^IW|13caQJ-vKT z;}F^fo%jgvbPr!zS^FyBgTfzoj&Qr+S}L_(=+zPTiMWgO@(KWo9fu;XENa8gRFp$$ znY_ZqHF&R!?HK9)7~#9&dJ)!7RriY7rfZi*WM%uGNPE@c`SXM|XX~dv`r6k}_w|(W zr&oSIIMeERiuz^wgrg7I>1Mt=K37V#x- zu3oAbG-;y8)#Uz88Ox5De4X8Ae|4a7#MmnK+w&bBrTUIud)xEUXO)}YWV<1|DyJTQ zExkUreCMTk@;lBws;m5t?6|e++K0BwUT__af0InV70X(X+JB!{rcv|aUwS)$|?%FKAwd*gxtrx{6^I`YHo7PyTyD?1WgO#aC+AmwxCMSQrO zD4A(!)wa3A-Pc<)-@Kl`@~^(DQStG0UkudSuZMQrJd3~0teerrkD(JR21U&3HQlly zP;_IG-{!Z?ITi1}E@?m5wcz@yBp;s{e)6VE3H$H)zUkvSY-;8)KSQZt)?-CFRr)k1 zduZO(ibF9+?fX5fI~R1cPmCdFwZ+tT^2V2+qp0VP^+a}QUsgZ4I`-O!3orE-&aP;j z|Mc4UB|0U4uHQAsAmsSo{CjQ2hQDellg@iFDu95Mk$J@7_&35XsdPCxf`nI1o^_kcZfs$Vt ztaW%QUeVRFjTv7n-F_Xse0+U8hyIP|$RJRc*9MmDa99e?qImF+qHNtMQtioM>_$%k zsY5(9d2|}dUmNt1XY5(+?Pc8duzlLrTC08VS%CY;aswlOpYca=fxyyMKiMTQ^K;bL zZzrNG1Vzu=y}hD3A3EA2==ihPDKQW{m|XJY$F}seym?TMJwZ%-ehVS8ZF`4Ncy^s8+=mIcM9Pd zercP;HL`P)yCk)HtoUuw@C*aEnhCmiHwi{$P2QO_R@J!77$H>&BO&Pi!N=j@>Ak6*pcnq1G&Eaf&@YZQyO6K55)qi=w2#;ZebH+c#bxWK}Aj^Rc5m zz5LxDX#D%Xf)2gTxLNwxecrO6Ub!OHru4$+dnTQ3oY6DpullCr^>^-NK6rP(!$!Bf zH|0m}``WzMaT~tZI__queYyMIB^~#wZM&yTJ==HhPMzGj?7@Mac~yT(OwSHKFlDpg zW8eAD%;QWS3=EiI8q8@}vg%s%`)S+zjqcNIbwr?ZHUm1v;*pI8ZY1B!)5FW#1503g zPj~1-*S#~47C+AAtR`*YP9@ybnLd6-{5(l#30$9xpEb>0i9xmF=7(9N=Ot`Pt9)4|N;^U{!4D|4rGiQ!FTo%K0rj3vHXoIe9q*9CLZla>e z;{Lli-ehJcbb1eGn;pMm!f0k%3;!C3HiSN9Xay@qcMQR7~YNPHMhdSKm2thED}2@7Qaa4f$K9w30tlE6ZaADM{a3OSC3@X8i!Xo4{S z(;ltZCbZDS4qGT>y2J3-(0OHu(1B-G*|5OqoEEC~*C8p6n2PlX4ao{27&a12bp z#ow$S7W8q};E;3OxxfuWA?PD|Q^N6-gIWZE@qi}66&aXYwRj(p3kmwlUj#Z4gzLAE z^xo>WszquxKP3$iinHPAgA8P>3WY`TXZ)xR|Bo4fP7mWOs{Rsmj{nCvaIqTNHZJ;X zJi~;4D3opA&`CPW-~<8LI)+oKw_EhtiJtSz)$>u7q!2js*^uBCaT5dTY z&tZLT=BF0-gJeS#rhNIKx+RtTB?W-yAF9BC)nXg)lPNB$#bPGqOKR~Hz-Z;7Aza-< z5}uw>0qp#p704Da=3S{4ufufH{Fs{T1JNTC8ZqgrD6lVtL~u6ue^skx3J?kJ`{AZq zN{}bXKU4-fq4`HS5;>%E7^jmyz&=tf?v1%vbfOe6L_7`hSdRVDhQ!nxYZ+3D|HLe( zW#cfi^a%S%u;Wl_u_ulUuqsN9kvHfNBq?toj=2I>0E=IisANB*`m{)qh#uK zTnYB4&jVg9{*2=+xzAs$0J{50Sz5fkOqQ-F1%A}x*|x~@EJwm!%mnRYi-w%#xOIVN zL%=VYNvs$52nZcfXZZ$-FI|BfskYEVuzz|lsJbp-gL>3B*4d!bXF1Lk-xj?+%dxSD zWynO>4^fK~Y%rsWLZG1*$J!#ta~zuyJ2glws%r5&YbJ!oaYo~l%lJ5H9FdIUq9&Ne zu}R|-!}yTc(VDv{HfYN^PEcraqFL$FDHr0!POfYZ;l~-Tg;?tM3AMjCFkS$GR5sW ziw|mbnq1=n93(Jtf+3DtTn+yf8XxaUnc`|%58$f@vno)F7yRSdn%ztA!;P6cShnbu zM5eeWQ>fJ9F|F*_F{D?4Q>Mtk>|h=QGR3OH1WG*5;aJIAuprQ%pb*sJBM?q49?meY z^RPY2IS&ts%?2k<<)5FlKRh%)P?r1(H%6!gD;No6-lt`0i|vyb%sM<6L?|9dC|>Xn zg^``ecy1?C{t^y|UPM|EQyvkDeVCozOFr-yKL^WxG9v9LQ)l7nD@q}{T71wFw>J4w zCx&fk^SiJmD9n?;I0xI(3hb+KI?zOYykE;8`etx4o!b<9fA7k)DfXUl5yyfZI1f8Tz=?r5J6Yh=8s@(|O&(jDn=X&=w?9=%YiYIX3cZ zOz62DS`VHKBKXUKuFNupAp1$RI2r;hO0f4NX6ZA2YOx<+n0BHTdo$UDB-COF#;VWA z7M*gE1$ppOLZQ==DKsqqQ&{_PD21l1WzZq_s|GIruCsyQ8v(w!@kKyf+~7b$-nihZ zyb+GaW+9W}a{DCg<$bAcC>LPzX)H@2BSMA`JB9u_&+#)nWv=aon9&5O&vUFv39`Px z@gf~i-wPZ|t2QtyA8Eh^c;p4Iwc3_Iw4}}yT6%$FLkSGfjtiVlWF@M-zzL#0m?6nU zj*a0hGe|K#qZCqvrivmia@xS_O|cg_V)6-Ea*-3tw>H((0Pd2KJFh~waFFRpb&+$6 z^hFhyVEXhLeY(W);pd8hiN7VO5(Qo6bdZ}i;YNiS?`-m2F4jU=Xoht_R4onz2MpwC zeYrA44}mN#6*mX9I1A9wt*6udVKh;TcjGAOba%$V1!8J(KK%ci`w`&ZnmisfJfUBZ z=-^Sq3N>Elq;Sa_YPDi{N(@?Xg|k5XMh~vF@{LG^&MUB`g>d=BI?s^)RZcl+SbXCu zERx0g&=X*@QER*b4nxfqoTHt#HiATm(}g$}^r1GGnF;~JUjXA6Ys5H?+5uQ}+6kEG z2N-p`t?(ZmBXw-ZiO8Um)84qNgdj>l{~ts|#}n)_wK$|WqLO1t!aE!>*Evz_cR+X5 zKB32|QlWlv`E||{ibTb`Z*go$axS`bo0CrVDjs@=^M*9aOaMCH{UT7#Jvi>&Hd})` ztA*}bs5?i4muR7n7IxRdDOy;i4KL8b))X#j{j0UGNekI?wRAO5PK0U^(ONiL3zur) zCM`Uqg}1cuofh)uX$V?qVJ9t&(86(An4*O%wTu)oZaG}c(0aVmLiT(OL7^6UYGH&H z4%fnXEnKXHYqfBj7UFA=_y-Ci%&$QUxeGLID-0oh!c&Xrs)ggUaK09<(83*BSgwVj zLBjm%v=HB`#6Np2lxpD+EzH;EJW1=`02#*V|MT-AaN`0kFb#y$LdGrq2^NCTNsVDO z1;*0^G#ezKa?%#u_Hfe(Oe9R{qQR7csfHdc2__!`m|S^+DFhSk35j@tnMoj)Gws}= zbybL`T)%gKf56i{qL^{g@TR>@Ywn_A)Jp2lyiv^>2kZnYLt!6 zKH}K8adD8=PuE1lRWac8?=RO(hqWzeeT4T39{`kzOk`Be5xHCf#Skd%)-UJavrwWM zaGp4-=4(zq7$=yG`c!jzlGW(XYEECV6jE&i%O^b(LKoLo8W<`1TFr6nmxR4^K;tsr zka!N2s0Ne81P5KCAKdW1EJVi@jqyx8yxM|zgpWBR01O_DsDU?cV$s4HP7isf9-4#+ zcoJ9uQ(*@%7)Kex2T`JU)7$8<3FxMEb>IbKEIy53;#=eVjKf^QYsZmxa3vE=mNp!P zGxY-wxPowSy9Z$OeMn<0zgk!z9l~ z^G2`*ex;j)Ko#s#3dE)wWH|{6ouT(c#K^uuJE#mF03(wD4u5|Jo&@I( zuwrln0Y4n$F+=0T1a|8>fXHDS5dPVX>HHlB{C}Vg)vSwovj;o}0(t@wB&p>{Ko~-5 zIie8U9D|%---V$Lf&(9|`5A|c;76RM88h+F>RL`)H=Jt$#MUq!!88z8klJzKm}$s} zZnQ4mLt${}X)R}~MxkxZLDF_-k~>YJOd*F|y!9YYq#S_Rnu zkui`HEP&_1d;$*)BXIpe4dKr8Bp30>GyU1y*zv`D_Dl^fJue87=8e=0qhv+ zJHmxmuwy8a!@r~85CIGWa|!Ix01twx2K)D-fJI;t7%tQ^hDzw!C1A&J7Z@L~V|ZDM z$M6Oi8Q}3KkN~S6oEba{#DWnG1alNe0Qe2eX|UssK0IV#JBDAd z0Xqy+L_09tp3tcQ><&f%_9TEVK2T~9MhdWpFO&kPy&f{7`)2B?lf$HAH9XIj()<_o~(W zLppy{tJU6>sa@>{$kKJBhhUBi%jOuc4=B;tr-Oa%F^zpL*pD8>_HIdF&Cys>!Fm>T zdBuq^)nfv7y8{^aEljv-u)arIUU5RHq&?`_D~`ux^-=IiJ}seOaWE=mvSmukfw={t`oP9aWN6nb!s&(9KpM^ei@RU z=a`|nuQ>+B)n70v?QD9~sY|eexs2An=CqaPJpdp5lQQozNPh!3CUi}s*I}eWCmjP= zn(@LFrQn;0ogXW}mH@U>uzYTSa&G;l!lXqYg^G`F#lX7_Fo8(|93B8$e+76_BW-n| z`8O!TUsK+Bn)3KH<^6ujTRf$K!{eeAQaVKsZ}a1yA+l3(OyT+9YY(Z{q)+jQDrx~q z`k*cbd?jk%l^%kYf8iJkO1BKzI(_Thtw~$Wwn?@*Z7WWEBdj8AnF9&XF7!;XTl#}u zt=$|z%|uMEo<71W2;27j_s7*<_0Ct@z7i9+?EV~h?avTBi`6A<12?Dq(s=u& z@%BsO4c-d-rSbMlZk>d8LR~d!~q$D0wlp=D*W?>)b>Qmw5ZNm3_<> zTzaC&_svw7=OszFOI8`lr{6qf);Y`eG8fqya(|Zx%^3gbXO)oAGzqT8|$sX0trrxoqUGvcn9yUC|gc&8h`y@~g zLz3>4g{H*~J*mEyxV>cT7t1zJsW_i?gX(n(ufAY+>wLm*N9rl^!|5QsHp`PGyqmU9 zh6HVHm%-~U|B$-8@ZjS5Kkj_&9>5uQa5-;(=Iae(Odn0B7v>aO#1$Mrq^!TA>V0@+ zm0e*!|A}iqoR2e{>y;Wkc-Lun*Aa>1HuQSNKdb*V^wQ__i*q+Pwl}S=Up#s18*bR; z)gzQ?`nP%KkN;l!$oNCfgjp|LSbx5L&*LxY{!*Dcknj4?CtK|G$|om9_{}p#*z&gy zHH$@hr3haF?%5C10^w~yT}ORCP^K2Y>FR4Q;^+xT_U05)#!ex-g7T^qC4HdUL~M$% zd3bwcM&iV12DdH#z>KO6TM5@9#gQ#7n|wjGqF}a7*Cz>lw_4EoMq0 zCQbz{k8#LIMOhg7`*rQ^<`Wtk<`&@X?aQd+we1bM`EZ$nRr8O2J{f%F!knlxAAMk{ z2ikeTSUYc}jVD|U^7ZQ20TjeFYIGDo@6F0Q4?IV%7*%vQ~ zIxl}a*~&2S@X-%!>$4v#{61HZrt6)pU#!V_e@%IJ*t2J*R!a~1FT6?@xj9bsIZGIijJ75f9ERI{!W?dt7Ol|Je^x`SsB@B0twpjn^OUTU#(g z+!8;k*RY(75jS4t#J79;?n0ksWXF4aZ`%=T@7%neu)?=Cs-pkf5l)XYUnh6F72%Xv zv-Fh6xWbjSZ0w?;yp{n2hx>G#eNgvo$zkh+!tMgo+67_nHrFD-YidG`M!Rp-(DxfZ z{Z%o>ZF0lGLjw#CElvHpK&#!i?RCv8VCJ{Dd8&esgx%eX*eS2H6ynG4tB= zHk>l)?j(mhL!%=KdKU<5d$gRtQmA&QE8?`vjdcAaI#nETc0#h((ce2wSS_8fUS4^A z_ItCxmK}=ascb$DaA!qrYTtFR{f+hslE3cETAV&+tMY=i?n$?|)w6b-%6W5e=b3+wk@KHuBU(Md z%@N|drn8=_mOK0I>)79U@2X3gHyAxZ$EPNicfQjT?C9m?6X4_XkDj2v27#on4J_K> z!2c);Qd!?A3jU^16f~VWM58FUz288m4#!^61~cLtOE)%cj(vNv>gEe+#qBlf)0V-$ z0fxdqJ{v7_$W1c2K(6$d-fOPt;QN={^DoZdoHy}6S@e^%J6972#@GHiNm6-Zlz~~V zn-!M3-`{@M-fhvv!A>QTxl~%g^IbFYto_Uf58|%v^Xi+g$nD7?%l(dYa`a$>XJnE_ zQSj&9fKe1&erLdpo(E6OTt{Zc`)yR;S~=rJ_X+C*seaEDIdzXRf)S%AsHne^o}b?5 z-HLIOch_FKy=T|-sLp@#X7xEzI6aZ=wO*uA6#OXxtSERt{ETs?FvqGse#DOCRkT20 zHz-k zR<^0i8}Brp^|Ai+*#=sbIDRf0<+1J- ztL=-9-&@n+%$TJn1u3h7Z{3W3yD_10!b9r^&HDtY?R%w2o%?UFI+Oe>ILwd;8k2f7#UecZXZt8ntVnZHx8@2(Eql{xCE-IsmE-a}zX__rpz4 zozHMX<>SvcLH7xT7vFv6_S%;4WRuk7zBhC8in$5u?dj>gCXO;`mqO~YC283i$G7wcVsH1BeI-`J9~byrs9^*z%oQc&V5U0Qgc^BC*-{XN&g*C^dR+y8Kf&;}V@hKGURmLICPY!LA4O5d+5eZQ{sLBs#G z!SU-#->)lu|G_JLts5L!u)&e}zun+quJ&!{y6V+C>-(<;M<&G#yFIi+*Q$j&DF1=sruG!#N)x3`DFt`0YDkIR{cDyuqM4QIJeNOgFy6Wwp?DeNp`;#lA1vUcUg}5X4$Bnp&T~WGhz^vN)_lx_6h~ zx2mq?8?+l7oqpQj@N2x z!AiNlt~saJu!agws?gqq{10z%2qzkm*G5pbC)&-axT~1mf7afwC)bx{7kB>4LbTfR z@V@I!t9{4l9+nIrb+Gc~?Zvj1w$(R^jt?Gr?|{x!laoh!D+r^Zy9KM>Zd%ltmthpW zl)pEk>B9)eb93KZD@y8A6V>2+czVct_PMCdgXg~6IdaN{^E+dojXE~7AXwb%$uV>V2W z4RO_PnfdL*v>30Z6vs!tJICGRO`dzNe&zMFh^osQ?v#B7X?W92kH)o|a zyn6DP*jsj3+0<+oIUtiAaj#>Jug35q^0<=x1mPIM`=0#$jyrk$aI)Vr1G&kJRUN zF(Tql84?3{VI9$^B4ImjDru^33LaJqqyc)gm9R@P8JEK)1{fzLMcpb~ zUs-TLs>&tJF6tQ(O4o(bmGHz`kAyn`@T~syrrgmUhui!qFsxaHt;15hFzb-hP`%xrSH4h8Pd*A<5ZYgWj zEn5leCcaCBHdxS+)Pis5jRhTrD*E!QrUKr*M@dzmfM-=LnHQrg4FC<- zIJWuV`F2Lc0Mo5f)kgtQ1f^BMT_{!AVKyk15-0s)jZ~G!CyHV$q^d3?w_d_02BiRWs%lu~F4Zg%Q(ZM6n2*6NyDn8pfGNxnmf-&I#P4J9!%W2V z#c?1!B#ixWdN`e=uX6PO6M87vb7lfxKFsxkqN%Q-|*dbEq;4JNR#BH;;$ElohW$CN(ntmp;Mzq zvT%MdXT&@-$(~Lj9~Qs1r)QG#L)xus+@0g!fY};2MGNsKtnjZu3$JLQpB5TwZ#_6^ zVJ9u@qlNKW_)Ht#ObazsK|}b4Hb9*ge$he$?FAGkE$pdlww{v~`ZEwTgokPoleDn)Cd)c4BZsy4){87JwQjEV!buw~4AerI7EaK@6fIn- zh51^@TwsCpi7Q&fJuPg#$->iKJaN#%U@eT&!U z0Jk5&jsU?(W}-KhLI*DxlSkvEK!KLIf@0Pc6vZJd{sahd#T|=0=gA`rUfV1gE(f(Km&I z$-~U;5wZd)UFk6Tzg`Rx|I3RZsPU#yM4BP%_H++28uh*<41;G3l(&T5;w< z)-0+>v42uqyPJrVY(+KgX;Hgqe|TE~Zmv}lk!IzC-oelaiW>V1;i?5dsR%k8fcTrB zSoOXEAiD?nL;r6K5Pu)k9$+LM54r)~1gP%0v9a?TA5y z3@o_b2LQx%KZ|_I!u6j+)RI^R#$i0v|5Rc$iREB1xUno;CdQCh4lo{PGK45)^uafS zzoaP&vjYa=?u05;S3}l`bW+C5AXFD1 zPB`hVP1;jAF_cin>|j_jMbjS%+mjw><0D}&zwec;Goc*`q(3TK=RzAx0^Ik?)|Clp z+6~I$SKs`rZ~mY6&Bdc13w8b<=v^0s-t_>=Hpvbeu12|f>JLZNb|XQ#dZZ;(k^y6rmOkE9y1vx^e$RzH zt3Ug1SR+_bXBq$L^0T+oZpbxfj%gcq^m)%<>sQ~D z7muPgUr$d9 z>@&8sM7a3uksTk$7QP_6oz`8$yYT4KwH`jzj~A{@{Cdk&H!S<;JL$l@oPC@4AGh_T zCj>3;dscrge_8*H6_;(%??*V_V(tQ@>n1+S94U zRD3RKf8dC(`zNk4@55a*ij{I>avB^GhHa3~p7_%tVMli_e_s?lgx+rGAL8Eu9u)QI z?iSFsYY5h04(9jjyMKr5=982CaK}jYVziY}#cwoM_pN>25WyN z!{{96_|1juWtTpV%Y7?k-sHG%o+6iwj`&N5k+4w-cS1YwW@f_#2x8t zPhKc;Xz9{iG`;kskM7}DX2%o1&O3E7q=Ebx^}8^;p-WPP={Qt=?#rqh2{o3Z?QWm7 zYQ8?S0G{@|JTz^f(HZgjQtNNWdhKyG3VOqHSy7PXqbGMM=TWGvzdHQ2<;LSyz6D)9 zEAIO07_C{c-}&w5H94WSJ(fK{+kKB*-x9sdQUA)-;7q-cIAvkSo*VmhtG+krX!-v6 zFWP6Xmj^!Zem_}v&72cfH=NgAdYo))_4_#_=n(F+G;WJ}5D`~?~uSRq{V{D|v}s^9_FvwQcfKdaR_Hn~@F6LkrSw6)*k zCa_N5d-kkRq$-c!?wwA#^und_iV^W~-=@dpCyn}KG5J|%)jVTeyB3bR@sByXG9L3| zmsS52KJDtq6M1>%=Cl4Z^f+?z$kU1r+b3@6JFwWKUG4tp)RjJq3{NVIO*qf(mTb7z zM^LW+>CKzR3Qq0sUn=ML{U*PAcktd7$EJ3CI`ig>^;08F&kUI(n;LHIKef-j#10Nq z;{!fyXmcyR@k_Pmg~cj$WgneEK6dwej5f>jU3Xz$M*W>jCvS!|87=KSdCbkZFOK%v z?|l8J?cF!s-7bD|-#TW&sF?8N-X+(KyCo{EW^r#jho6W!a0Na~ku$#c&>lX4dVK0d z2G%*YHg4^2HL_eX#*9Lv%gJWhEvxkRy`-ZfiX;;Uczx5i~61o0B z(ZPY&ic|FsM)lsG;xlJfdWB9%$;5X}Gj6o=`5LM8dl-7@`Bh@3@VLTiMoQVTGX^Uy z9mV%T>T7dDq+g0Z?OL(${&Ck?-@5GHLoAuTb*1U)6I~Z4%-J^ad>IPsl2}j@n>Xv( zz!&A~zmaD&I>JAiOr2ckv1P~hZI931PSxlL>u>C!xT0(26I;3Y>tf5?k<+a04{kZ# z;qtgm<>x1MJ)*PyM)7`%x6SM7lBDN>uiZXWzqoQglC$D3!)9JgpIM^WV;o$Sq8ZvHd$7EbdGE)ua#Yr9{mlJ1*qTH%x3rr=yb%ACU%v!9<^c)wE5EOYDJbBFB` z1&(Ha{PwxSz@0N~EV733o(R6h^{){JMh6|vK6idwyKjl7v#7k&sGqUu5BcFePHKL@_)l*B$iQjMYJgv^PHV~m*!9To z&0iT9tA&|O8uwJj9W`-m3{DGo%J6d~B4Mv*Tt0_*l{=Z)qQh8tJ5&O1hguV_z_ABo zV28p3t(#0c8dSsX8ylYQ>_ib1I;Jvk^~ImLO@$D30G)8qQj)--h|Ta1HqMC^@cqSh z04qqsUl;a2M#6qOYAhnHtk{6TA^-ltQ@yZhcWF9FL@Vt?NTSc;>JO*~Z`kbuZdO@R z)`ps$R)~i8CmYa6eU=4(F6>@0pQ17VIE6%SW7+0>Ch=A#=8`DmnVvac3IT{hhz;ow z@a326OujkVtk2Tn0ox36F}dmlWzNT}VwMTmHz$^oD0UyGkzI&W9BwAEwQLYjgmND^ zz1k2;0UQl@fobSL=BYWwd#2Iz*kl8e?h=}@aTqjwm(Yhij`~@PEUX&@Tf$3#5bTrI z9LC3YFg)txQzZeMu%OK|>5k@1kW3szpb7G~cf(9N>^twIf4m#uEC)rz(~duQf5Hji z*o^n`_#cRS{u7%?`$0Ut0JCi?nv0^>@r{d5s|}Wuhc@u-*;W%F8%{Jnb4re4&Ya*x zfl#Xt9up8*Ys3PHeGCNP!XY7?6}dcHL@0IO>juQWZXW#C}jq#%efwt#0)*N9)7_2l>|p$KW)M%xfM- z<$Yxl%58AAr#?koW8%YkEgXk2CsXB6hg@@fTBSME!Dm1C7}1s{;#}eA6Ne{443#%| zQq_3~i?aw^R|40St=WXrt^90VVqY0-fHL&OQaN)(h_mVm4073cx02;tr-1XhFk&7Y zEU9pIZHBzzIBl4 zJb*9wLHeNEDxRZr0|0GeP*q;Cc~jj*sI;pSnXQ0gIhU*!ul2cgh3 z{{H=3B~n}^Eb>26CGwx@q~iM={!=Av=ek``CH=Kkvgo@i>8Py|*ffR`Da2>||FTLf zzpIkAlyf*#0aS?`*GVB4>SR%CodEIHBGpz&As1H(;Bl2mAsiOy&6+CtfnkQ$k5$45 z?ax(`3RQ`#M5vZCMXPN1@?D+$531w=gx6L{1Lmhv~$IE&}qk@16Jq*kpqW$d9KORe@Xgz{mlog$R?TJ0yl zr&Y*OdN8!wzVCk`@9P3EEI6jeou9I6Nh&MaZvecslM8NMh%*{Cm*s4) z#RN1*D-w7Xx)^WU4jq}xvv9?B<1!~@DuiJaO?2QbF*u4ZXA=i;93t6J3B7rRQx1vL zb9v_87)g?R4YG_>>V17wjui_eAoyBseBF0wKcTcr{MwYFoiT4yMK(O(Iu&ftSW%N1_Guc?;oF88!BTt0s96 z!0ET1CCxCxIDtk0?pU3ELsbiS7Mk!O!1n@PXH$j}lvE6q)F9~am}H=&f*b_S|E{F= zB=ADX7pO6T*Gof`1dbd9<4sbbxr*I-Fr|ytGvMpoMO<@qd?C-qqSddat)}#ixx_(V zjenJ+z(zNQ$r`dqhd_8fvKOk9xIZLA7WRSzRd20$Ff-yDrh|3vpeIF z+*%99Of95pnZgM-IT9*3AFp5%wnQz7ycxkvoWE;M69=n*TxV&jocj|aA}u4{n0ZT- zFaM5-`*L18VQYc||KYU7SuhCZkZ?NNK7sbsgL28j8Yka8Af%Jw_HKc6!P$ z21Hg82mwq#8Tud)K1>)=8>WVfG1PH+T3Tof_T8gd~w zO(?`sWJa2!p^hR;y%9Z2^mGWL@Db=rGS7kZM#mP?R^$kDZz0__dIYaT7m{tw%0XZ) z7qVfiN5qj7F<>hAJ%I)aU$4zN0V(5D-vJJ0AXqoa<*Sxutg-T*lWh?TZXD(*bOzNB zMjwqxq&u)GxFgVo6y6y2PN0Q67x5(ICPX@mRa_C49))7}p@< zE(=uRDdykqnn1MIRTPe-OL+#I0*JB9E(qzj7qumW&?rwqxXDpyVy|f;D;gd)gLym5 z6A5EGK059x2ql|Pa-cv&o5H*jO99l7ZxhN16xiyR0ID8^D0w0@{SRIz+(uy3LhHN) zZK%om=(v}_#hl?MBuE*|C$d1qjGsWIOM%2abj?j&6 zOtlC%3JN$2rIw*BX`C$Pj0-dlK_tvdsus5cjb2PUlL_drRG#(UDOy3O%@Bg&ASXy^ zhRPPxV!a?GbV7yBIYH>rV%idpr9UsG+oLYtf`=R&l8Z}bDeY*xAOH)8GZ+~Z3dHfn z6+8%tV(5bUEv2nVXB4}Xc3_tYlxb+6kH8caE~RPG0v%sUcVUx8fb~-F{>BFT3Obm#eEho z+Z8K#F4UW5bYun3fm`3KMmYY?3V#7fl{KT68N89?eq`q(G831z$_O*XDH0J<)k4GK zk%59~q_(1pUn+TRNU!ry?@?i4)xG zErLR5rK2Ap>S|mV4IJPQ)tZG!A$K$jEy$of4Jrtd(9kSnq3i&WnV>@EEG?0M05g4( zGl3pKIMa&jF4B_gP{o+OF~kA-nc^B0yoP7W11|{N@4O3vJOV{ypkK?+q@%bqb%}m1 z&|Z-h;yr*@yK0nlG+ak59=4WePFa4{C9+zl8zxOK{RyM4VWxQ@253|;l(;R*&Z2u7 zf#~6~!&L-9lr8U3OBQ{c+<~sG=e;Fkipw_edXa2XUBVcZZs!|^e1rnW>YwjfRDLsy zm2U=FiP4po0OLL%SX`I!z!A69Pl0<5E)+T_6Go-#6Gex>e7l}-8P?Q`0XNq? zgjwxjO}$bs)@LM&bRgODgqdHpiBu&8w-1;k_doX; z5AuppDE}JNVj;`nc(8n~YS={_%KnGTF`86zCf>~p}Z&V`z5RG9GMFYSb z0K#TKG#4qec_ImB*p{@J(G%$6{&0v;BgsE|E6bVwnc}?$^o+(Og5NJ zU^aq5)qm2dR1+IbT1N+pYuH#G%5s}QG4p-@lZ>|P1axgP?>*J+9on;=c99>3KCXqO z>+ZF+DV7k7SjdhNQwx_Tkoj8J2Ef|3HCriV zbz4d~0A1V4D<&VHxJ|Svc?;!i&`6(PAtJpnc7O9;y}^)F(u4rY$W+urLR0JL4Eb=tF_y zJ21C-?kZJ1V_BfSJ9yT@!JoAy0s^KEV=3(#k&Q9WCbXGFWIf{&S$0q)SeSQ%u5)!Q zrQ8aGW-6X-*^x@@J_zBYK*Lx-sDc630S{bbLUo&qs&?=Kc`eYeKSRTAiAB5|+9s+R zwAJl!np~+W735Qfw=C?~OpgJBu%=@N{>`*uY)MhQ6sApF*vxS@)JOyFHDAygdo+m> zb7(V(B{TsGM$7gf#FXe0zID2w$i0=Fmj_wT(?|DmXbZA0qH}q+tdm^m_i}mj#P3-= zm)lq-pvgHwKY&}yb#yG3=NMjXDOJ_7NabUwwHlUb{&gUWhlW!SJQYYjA1f_+3VyH& z6!2^q>}o*`H;p3l9^2yG1+#oM$O@)03c2OMI9%7!a|XGJSTY!On951y>DO= z_fgd8LT3Ys$Agq1Ev~h{!*f$^NNGU14oqS}N@ECrzdV59I+Bh!4qk%d#$yaA;x-K7 zE0+TXU9!9Fs?(MWIMSVf{w$meFFVQZNnITUq;6<^+K<-fCK$w+ILNx_EZ@gH^ zkuFe+{X}EwaVj-3GnT3jwkXfvV~0X+Z8tICCV{#+q^3rf^XTj31(cId$C5?JXcuj& z_XZjkFz>Phd4W^j8@6Cz1Jdg<4`v2XVc8US@+7dYNnE%p8-nJ-2#32NpNX>%7r`dT zy6y%#wf#$hLRf~Tj z&`LP*Cp;!R4{!wZdA9p`=6X7Bpr>G2<}W}Y`+2t3MW)h{BG|@($9GLfLSb+{@d!l3 z?S_fXP?Wr%=Sc2B%He_@FuQEr&oecOfN}zkpwZ!7QeT3TXOKJl;3H8xp^X?AQ(55H|X}7gU-_H0%&B#7Pa5 zqG2{&3cG9qnB}EH2M>FMB{G8R7fl4;h=$a0vq8g$ihN-Wl3z%V0mQNd{SA!iMN7`Ot@^LXP!FX~}t*>dBbF zh^Gt(D9O=NHpBSK;6`h4Av}~lQe+Bwy;?*^kvWJrN>nQxtr>FgBo&9|=CF}^6fBRE z*=W~RfjO1OL46LuWOhl!`%K4I1)Sa_fm8N4~V z7cH`-l1cPATGR&TY_!OY)j$Nm_wfX4sAGo3D?alANotxQy6}ZpNoR93m5;~33rM+B z(4&7Mpvs{}xCBws4(!*#-XBWD1=bi@P;$wkq%uVUTg?zfqz|P6?lizV*-=tihw<2d76(oHi*}VjH0(?T5Pg z@rpUWGY3_vdDDdNL3F>5X3beWQa_k{gy>_mBgNvNJ^2EQc3-f7uaJJqg%d3t`xCe^ zwGRMqLnnpp@6qdgfj8-il)sCt$PyI1OVGv$TK5kTD^c7ofg>tC2CMFanjpu23UUNp z+a>Ve;9?Ms)>-Gu&gK!OS@dW3l+OoTDbV$B{zehxHt?5;ttCyRne7Zh@m_Hh)3sw(TCr^olLzz!4& zMP+c#LWt_2_ZYAX7+WQzRH)EX-xw91q{V?2-Bft(Ah*y_t%CHTZMvz}VYiLe?Gmb5 zgWWEa#@{_uwGzACDWpD0yXcXoN|InJt@!AOu6`SG9(t&&??~38g{SEDcH(Zh2^Nim zts)6X1RfQ@4eMh~Bqu()aEf+-`E}zd=$P&ya+=7v{dWsIIPWzkVO9q-xNB;4c50pa zQ7YJ#opcCe0)B^3$TX3o;Rh(2)@HbojaHnd{S2Q1P6j7|Txdbd+33hL(NOeYuAmdz ze1`5u08V56?TSfrofaoIR&r$METYUIE*f?~&>0Ifj)<}k2>zsW;XZ7UpaVySk)uPAf~W6nh}Q+Jr8b;}@{0sEdK(~5 zAE4__Mg8(ceLLdKSxbSmp0?0)gA&3K zXdFR=qR-QTq!U_yo_3(%Hq@?}qN!^{`c5eF0{t62|^i zfLH~|L*9z8Xt?uH{w&cSFx2(DM6W|f#rjMd2Nl9WlPhQkA=R}6HkOR!fkYhMp~|D!NHJg3!6byE)Ju@A;_1Mu&yKgg zCo}nHq52BCgBarAy(`FOp)rKR3AOHBffuuP1!P98;hCf8W_W~t_yUpMza*Fg+hz+y zDNq*Q7Kkh<$h~EPr~{=#p}q+)+=ur>>H>XRv@8L(!q0q0hO~Z^$t92p*qkX6JqS_t z2gqa-<~P^rFv?DVhAk8YQ1|Q6p6j$NMOqeLy-sf;g)O1@l4+winYxY%PwF7~P1@2- zM|lqKenVz()wJlrU<3BeEohxwG>oST#eG;N*G>niwn_ffR=AmgRqRHUAmm&&g7r?lTs(qmE^;{$hXXg;gJE-wC zh*stz(Q>MuMmCE@Rn+Yd=-Xn^GAfEj%a({zsADgX;Zo5S5ZHZ7VU|Rpng{f4YRC(8 zHaQc9aCM#D97icG4sg*k{5j9=Uk z9n@tR3>!KqyR*JIDyXIns1DUAcqq>VRaDcR$#7&?1HI@qm?T0AQ;ml8W(&7CP$4QN zAv3&MdNAhxCByximjVfY#v|ya7wKJN$k(t@Mmo%?a?piZ`ZyK*2rYX;_je8vC^rK! z3Cx~zpdqx8Bt`jGsS%zvaiRYLH`elqy7&maSs|K6b$NtFWlI00!Va63Z*IMwJV zIY2{hNO;*nNA`nXnGSLd)3>3V*{D~T{y-|?5qg;^noZ5GLi3-~68LmNP*?pW)D<4e zeLV zLfOuOxltV`(h$&-v8#%EW{C_*s`Mcmx?1Ey-F=8Q)k8nis{!pzjPx*a+kH_!#c>MnR{qEy&=XIa&v)*&hJ@=e*@7(Ja1`|Umu+L%-5%*x7 z*j;VE$W3`6m#h~XvI!z?+*=(Rw%a2va=myM4_be9?#WvnU)X{ycc_I+*WpLpz*?PL zI^JpE+k0`}YIRKbiyy({1hkc0>pGnZHs>K%SEuvbzQykuV(OWguuXQfJ!Ss7@!3Gk zSngZB&T7^Jx+x7hhuDx7oYN*aQ4?BlQ{U+z zXzVueAgz#YN^?Rt?%F4qgD~Mn9my3>6BN#Z*Ame%v)y zn8SvAh`Jy<&gX%8&cjL16A< zrFEFhm##Smk<$D7q@}uI0QVA@-_o1jyeN`k7*qg7uY8C{Ai{65L;?{6Uw4}W+yd(y~fSo8Wi5E45 zrmX!(?&>~q4;DICg8ky5&?g$VUp$i4^Q36WD}w1EPO@LzQPC#t7u)l;QcJ)YkpUNQ zK-9-akEhKs<{b@|E+`5{@+P0o`QT&tEQdq(CQ4=mBVBsSbk`TE5FW2n>W_ zA7GXr$J@FexW@;@p1MA859cJz@KWyvA$FWok=UCZ^`1)=2rc;btLP-gnmgRqBJtSH zo9;jg(QuClDo8rrj#F;0quaBU+pFnzqH=rX9nSHP*w!csY$=Ij8&e=0eeVSgAAg7Y zDHNKBp-Jq%ioO;EDrKO>3@FAs+#YRVBy0GAGuIKCnhGJ$vIWwnNH`iaaV=#22TqHx zXKKj+hb^T~1hUtE!oGy1D!0GEHqA&Aw?aqQL-RFYDO@~jxa&GX=q0`9PK*^8u@ByJ zb;aUtEYqFqEfkuuXWw&<;{=^MSKfxuxU0A6Hty;Tx{bSfjc((vUcRl|)ze^WzN^P? zD|XfJ|Fo<7!7~@|QOkf6$pj*iaf4!>v|vd=AI05ZPNpj~Ht!0zyXdiDbiAA5J=s<8 zOt4}&5Dy0?_#HP;OV1QW@zp2k{qw`(K1?B}EfRKuIWl*Vusv&jn~Pg4Fg0Re_f2%PSTF_}fc7bZnIKzJ1cN~8QUv`$x-St-23hK?=LB-ZSYFMWJ{qB`|&2X^px0>{cw}p6DlwjKmYuT`xiQ*8F0qg(Vl0B2KOLT;LZ9#gvLT! z*5amezn7mDTeB^0a$2c^ICjlvF49%ckBz;_#hrmp)3nc=`AUH!+p>`xxKiNGYBX}G zD+QjcE4Y`5hr?g{ua`ly?eUp&@2&?If_iRjcRfdTVLg}HUC&m3ZatkMHf%qRj=UF= zRlzrCnv>X;P~Xl%U#RFKx1hDKeTPPvN>-KIHrOUG6Q>C$?^77?!BHJ(7?rG`%?px(iX5? z`jv|_6PmNf>bQ+&!ZmDyA?IW+jEBjT!ZiXTZcjNhkhAN!ksbBi*`j#xPF^WdN|NIe8+gdL5GVLfB za}O>uo@Sg|WKlhosS0X%m~`xhRB>)%cYvl86ibir3TE3m0`0mtk?fV*m1XD zwgJ*@FZ?fTs4{FTe+WAW(yaqkrK?I)zDZ!nRdo=;YzL>iMG(%s=4LnuWil8vy=$+A_WS^_=nF;S~uLFfacv5?`B)P=KQt^eAx9@xTTK5fi0{4 zRh)hLa97-*1}hSDwzzsn;ar$u8+=df2)7k1`P?Qa;YJvlnco+~4Fj%TA~XjQb`nlv zcl^sO$Px@>uU+Q$JP>=fT@6!-GohIt2IV~*)&umBUMppNC6KRt=v-V%5LmIGgE|XM zJ)o1Jd2eQ;#VO@GqB%eg!MSI-l%p8L|O0DCD|D6rJ&4dGPh$;;w|N8%AI zv~%ye2*vUTuq*JuPE!i3s%M$*P#e6|3m#keZM#lw=3s+Wn+GHo!x>} zWy`MNE>?+shS1|BYXNSss@zskn-b|8>}kZf*LNao6yHJ z0^Clr25&Nd{R&+7lqg2o@yXK0Nj2R4ZqOebSHrnafWcf)4L1_B>tOJ|jWtyGmt{$t z2GF>3rA_^*7D$`=fyN|4S82R*;*!SYRl^m~IC|A^3tS=2t~K07s!lcBPp~`K{Tb&F zk0xsx*Km&}E2<+snk=Y}^=L8&EPx(P?H9?+WX7MSb((Y(=z#u8p} zKcB&z6I7s9&&9XdTQ51S9&l3cddU^^5RPO=z2fR#haege1@2^H_&Hgv8xFq0h-e)9fjzTq0jy|@i0nySY)Oo5mDsCh_MWx1E0hd4Ti}&WPP}g7FjDEtl zoJBvOKbH}yrwz>wHK=Dmt9gfRwqq_UEzmI^w84s~ z;y;Rcu;YsDQa@o36RX^giqhk8(*D8*xpWrX7J+35>Uh*h)Ogg@s9C7(;n8fm97Dc} z`WUqVmCRQ96QWw7x+qmn2BKjiY8>iX)B@CFs25S6qP|D{iK;zEnV>1EHEK`PK-6f3 z!du#wq9GggAZj`4L)6!(KT!>0l?k;+?TYG&IuLa{YBcI1)KsdFKG}$dT+|ZOtEkUW zf1(=CRVFM&9fCR@H3l^ibuDTJ>K@b+psw^7-atbQ>Q_`D9^=-i)Gu8maEF`=vDay> zExoMxXC?_KQd$fQ(vB)ERdq^@KZJheBIx1~5!_s6GoY)K@DoLU3h7S;{gFh&kBt5l(x3SG@Iw~DDx*Ic^e12u z{1h&M#)?>MgCEg$_$l29KMnLp1`n~54EjU%!Wy9XDS|D?IrNZ@!Vl~vwXi(+Y3K`QQ*2p|GNRU+txFV|xxhFC_lA~Cp&DiTt z|MX1rZRWwh83#1uAY|1cnb^!d3|W<-h-U6le=tp-#54;K+l>Ed#_`B%iv5F^?=^Ez zX~xT&aT+p|kRpAuwwZ_Y|2!y?*xbxLqnUelGxz*vysH@({tmB9pB(&cQ0`JmGd|Xg zOPg_7GcIq&myuN^R-s}{pWJE|pt2c1Y{pf{s!H3?jEPWL%T<+>kF2UQ#>jHTGX}8J zl4c&H$ohDUgOK56jfy1}nKqwvNpI#}(#*ZGnR}y><)p1LJh9MK=9vDko-R^k3k4Ap zhTH}@1=$w4uvz#DWL>Hib|?y2Rf1`h>G6lB?-ff4day>WLRPu+^^_UvfbOoyssw_NEzmt4*$O!y*$%l9 zSWX*>_GsYiD-&piY=^9Bnq86g&^-WI*_0B}yycWN^B;?>ia%YSkt;4Ts!CRf9#lnC zfoy^aHcy~=OV_-i`tLkfM$o)nNYSxW?y;(=Y*v7;_e~BLyTNx zqAcS8)HKv8RH>=bJq@)2Rn!W@p{Ai$pjx!XV~1LSYGJ0dyDC*o0?;5s%{MEaqGPZ? zT`t9H;)Uvq>W>snSNW1P!IA<){^?Rj3W9q^Jndq4F5b+ETzcG>lM_Zax|!}HxhCYiT zeUgF(2Mmyg+z~k)*$FuVxhrx$ayR5cWW|&L*h-My(7hDd9n&Y}Xy}a|Dv+hfmB=2* zRmgpiYmmK=8<2gF84nUS5!`%zT z;)+aXDCiN_gEb{P3bNtEzppG z0W^>ck@?7_$ePFv*pdm5E6`mVxe8fF?twnC zFR~a}g8mJVrO1ZJ0mw$kGRpM$8>1l#J(wWJBg0=o6-yd&E94C1*2sm(X2_+;@V#Ee zQh^Nr-Bv7Bz>2Gw1sWRAgC#QQr95U<$Rgyn$QH=f$P#25WGS*OasV>?y;iZvdSO@J z9t~0Gp*?auatGuzWC!F7cauS7x;pibAc?5DA@<`+i zGY=NweEI}3_ zOOeIM0mufF>G>~1gAsa&LWV!8DVBI-Gvst+2jqO@9>}H0?#LC$eUPh=rvlUTNh2B< z>|^mglzYrWHb&M!wnNrLc16}g_C?l44nj6X4nyvtjo06JG)zSgX~+zA+A@%N$c4xn z$fd}d$Q8(1$W_SN$PLJ*BE|kg5qK*1xCeTG7r-dG*9><0ERcD~5@ZczDY7PV0J0Xc z3|SjF3fWXO)fSJ29_S$*nZaIUKC&iq39=S)IkGl#C9)}U4RQ};(nq<2at3>uA~a|s zTOey8OOQ>GrN}*ygOC{uC{0+xkToq7NMez-kW-W_Cq2-Ru8P1~86aO30dk2d0_1Y! z9>|rd@OH}ZHLCE)jjHg-d@ou8aQqnuWdLJ^0p6aEY=^9c?261tl>U8H{*i-J{*l8} z{#}&*V^#ivk*Ay*-1C|OP#(6ACckU(XE*N{cXw~;N7Zy-yM zcOXlV4B@bC&<1^mXkGT2tp54 z$YIDwkzgj9h|z54l{yQ2yu8Aj9)gHMLTS0aU|m)y#%!YNQ6; zBQSg{hF49sG@^SLx~JnI(n973K?&01?~jHOjKC4un0kQinaCL!fdJVK-PakQ;;K$|9bE z1}S=IgUkE-6KKU39lY_jSmw$b*r~J}g11v#KM;?k?i6zzV+}K^2!0#znbYFn(H5lFin5Iuk(1U6QvH?99Vt{gVAAwwnoQ_e5V;(=L{a`=tVF{l^iYF* z9@!W(V2a#`?xT@|uz&vynLk=tf~S!!kdGs~BFl5p5P*gassNZ^E95YA--sNGJO;T6 z{W~M4pnDv$YSLPYoUU}2lci`-O{=>i=VJu%$f6#~J#s@XLH7h?JIp|9c0q1L_kWOm(cJ=>KSr6s@yM>|ZjNk>?lR;W>Q0Zp3mWXu z!&YP|@;u~tjIbSY5W0sWhapc#jzv~OPC~;Ea4Fy6SKD_$UZX86$?F%&! z!-sO$Tk5N;Qv=~rLk*0072ts@l(GiuN^kEj2wQ6AgE0d<#i~MaX>+vIMT%e$5|#?s z4xp|EJn+kK`=qQ`odzMCB8En=T0n*xf5#w-)mCo<7S-bW$2PUm5Q>ag(r~I}$WX7L z`PT>aNf~J|DAzUZ#&TEhA1pUxm#~+7W@yZ;sF0}eu<0{n9HS;;^`j@c>SU+dw@;uy z{U(YCib?TdW3bU@XI(1){?M`4C$P6r*lr}}!u)k~p zim*{&lm8buKym$u|J!2_^_lXwO%Y+*U$#I+gz10V6#n3WTlhmXWN`AN@QE{FzCewE z|9}BU(-I-ZguvmBU{nTcMb``}FW1Ie-$*_Y_ar)If^|O+MIx?$*+wc7k^X55RQmJ% z%ck@f0JcUL064}f5+}Y<451wrC0oyGddayYx_k`CJ$3g#ROg;ss2KiGfr7Hry%@O>rpR|V_SWWwHo7jdp@WAmC^xE;2#e=(n4w3)B%CIm`Z3Z206FWlArLUZ+= zL~85;?|T%s4UHoKB1QTOY1+1mv}wu5_(HIL%0jseS^_IoT1Zs8LAcH|-wDbOu&WA? z=Lg|nrT+3k2QdK_&Ya~UZLtnL=Jdnt>ml`JoW~;V9$bT?zJ-{l2KL_#+t189yi?w^oRgMl2peL*ILd)0G*_YDo_%yvgsEx8gKr7t%7I)&5$Fwwa>-*QaP3 z>Z?j6A9`pFu*#aauZM(=?P%yq2pynEs{F45X`Bu{mJNz5bK{n1+yCC*)_dXN3u_7% zngI=r#jh%pfPK&ng0&F+IRB4*IR@_j&_k<4KfS1*Wq)TP4cw&%po#g4lTB@@r=-6< zX&)sd2v*5g` zP^<8;&{R=+y_ad5a1Ij;41DOG(bLkU0xqPms`fq}w$uM$r~k31yKWF-cN3b8uiRFM zS&=U2@6#gX5%kAkErg7ngcMDDp%xQ(KinqB6y2wPZYfW`;hf%5Z7~h+ctmJwOY=?7 z=WdEL|1Ok=)zE}Ih0^`XMII44PEj2h(Hm&OU?tyZ#B`2M!mm#F{#;cCw*Mpl4h@iZ zx?%yFkSGXarD&??2_}Mk1j1?uaR$;CFc_F}%RA~=aMGhf36sIiI4X1&M2%3SN5Y~Q zPOh(ED36C8Kt8O^7ka&<3+$L;=Z#^zbhyIw*AMOZ(&bNo5=?~JsVnXB&}%Ebe9}$> z?GWGse~N~!c<^8c9wgvF1|9;U>7SPz-RoeRE@`NRsFzV`Z{yE}|6jyl<}MCot=79k zbK~x=@6Ih6%$jnnhrSWlHiY%zEXK2Zc`gK?QP9f_T~mP9!kPiA#1gI?ZJ=CX1Xc`u z9@aas(tTpdU)|=35fQ{Id}he_h|qqKGh;#`CxjC3$iHw%=(Opx|8s>{peLi6*@TZC z&SJQCgEUP3|Gz%|fBUbGijMD%|3`m)Q4xPh&1fcnrs194YQ3eRv^r9wY0Do5La6HYZqM-)MDjpVa#SMg0=|M7gRKf zArnDcgGPZ`gO-7Mfm-N6w-huU^cGcp=%<5Lfj$SN!>K^{Pf8)^G5Dxc1!y@adH=zE0^KuE zI%hx!p#h+yL22U}0ZJQMs2!**BC+hy3 zq5t>oN1idR5<=kJ?Ib{{eVhcfOxEi$cT?iQi90pnf@$kFAo`Y6`x{(k@)RlJcLl}7!Y=lA%D^Y15 zB9jg0*>$H0hcICZg$#hw1j|utKxu|VJ?I`mMnJ0|fd5dnGQM; z>PQKwA@iK6aHsYVIpf<~nUgfoVGvOb=rj__21%h(LV$A6X^=rz4`qgEgENgxU~53t znJ~2mPw2FOzW^_&Dzp-M6EYYw9ss%)xDb?PupG4t)CS!7FcPsL@(_j&N#?_`tps%= z)r>`7daRx@HK3)Fp>o1NtP!*j23pt2ziRRQq4Gg3FAacxE2!~MLM&mATm#{dfj`=h z82|~;eu@Vu{Y!U0T9-h*z`ZJ%zVdrKlQ9zNiX3tnKbnvn$bj7#=<0!ops|E(fIV&i z?E(>mjU(g~d7&ni!Dti`j0GJ-%9u*fP|&atIJRI=x4@!=O>1gPDG6rBTq0r96XXyj1a@bxTnAa~T|34~G78-3FNcd3`X%2Y=?0 z!yb4r#xn`&2oAoW)I$^~4VVTx0JIA2{216HNI(i&1u6rr0kxY2-#&u~(?Ju+X~uXq zAs@k>56YVYb3t=pQ~>H5OAoP>Ne49m=FgMEo9JL8XdWEXsZdm)mB6krM*9w$4|<)z zHv{I=J@Q~mKtI9kVc`NoW5Iz_*9&{1-kBx_-rQs6@sU>F^yF@~=fyqKz0kZ=fC1KNuwoI+r> zx|9T=rhp!X1f@%q{whGDAY9los2iaC6)=7Rja^B|a!}DKIJ-dQlC`w*c`%ir7szQg ze;tfdz@c(I6g6lA2U8?4ff&DmkbT61m24y=iIxPY3)m|*L!|?iZG}n){^|P$=0XP3 zLG2-frJxVN9+U+wCON~>R}s)dnvo49!Ia6FsvJUgKvAURLK_VcrQ|D10F2OdLQ#RP z19$jFDfvPAsk!c?r|TJpzR6%3D1DiM8$?(Ls?PLnQL-COH>iyC)dq_oKKgcp0g#~# z&HIQa~wJA-f)i3^Qd+{t zYh^j;6^JnX7(~E8oj6WU6Awmuf>y#ZMsyM;v%!A~Xaek!aVgYlVAnD@#-Nh3aBM*v zKo1j7Hvb$PW8m0wIFz7imk8NS&a2UPJJ3TD1}dkuvJ^IG!j)H`_EV2n=~d8&4ZB8* z80?^L!QNOwYd>V{I&Gk!A-MtL!ALl*ZqgDcWg0-&0vA?7%L&TAuT=ojB-!6C~49S!!VI=Vw148NY%C2yABAcsl^ z4jB!E+=D%ceMcS281eyzg5*es5R8BfIL6uIvP^A+r)IUt3D3s2VP=N*yF&q%9~yi)Sjrms3lha-4r9R$iPmA(?P`n`?cW%^b76_d#IJdU7~#}G{wc& z?hCURO9J_VHc*lkkQI~_l@*&6pB0oHl^vfg$#Kn*=J@8oOW$>?d?7XwL!d5_{OyI? zOSV^Tui9R-y)>sHrz)o=ry-{?hvf2eMY+bgcDa&V*Ia3?Z*D+tP_8UDHa8_VJvSpa zKesTqB$vBYtZBt-%qKgz?kNT?oaX>tE8VKSHG3QOHbNsnETATHok|T_ap@(R23)j} zt~F!SI+wcm*jhBav4sN#q@aHR%t#F7PZhs5Oba$jn6E6rL!zDEaom zOzTN|)U#UNPnF%_CGrA0CGrBmqyK*a)mX6g1UFa62$^hjYLo4ae(Ddm_ItDO@&TiDE3+z-_I$KYAv_rE*stW)26tPw$*7=j<+2gZX|V-9F|+c!%_c zHMEQ0Roj2=-m9q^Ew9V=y&uvsXws{_`t16<8Fw|`M(kQq(~DRWl6*L5SnOHzCq=gH zj;?UtIAL$lml^t^#K8p_WBM%-%(zMKEAPI$C0HJKaQoqICLynaCq&CuiMf8&iK4>F z$NI+JG5!|B3#KmC8Kt$KRX_S<)0#)|=YqDa(fBrp{jhu4ntQ%ln=8&sNFek{9{XK$ znqm}pe)p%3;}%Sfx#&7?;k}+k?8`3>*IcD6bljnR(tkMlL)g5t>U}SbSvBO;ym^tG zYGp^0-|J!t@qD6~Nf}-GxyB|+)becTSvL<5Z(qTW1dOjQJMZdJN;#z%8#r@&xr%z|^ zGkPOAo-t5=bH8I(`)-^wbU{Oh{ntn~v{MHh&mWyGkIx#O;V`82rKwI`E*x)@)_a@R znecxlb~D$$CI?}X>8D20#nEZAHmn-&l3Z1|-00b2FGG*ez3-m!N8SG#XHCio8F_Bi z)5m80gS5tfZ*`-~f;UrA=M9cnl>Th#mD|0XZ^I`EZoz-k297!z_t|Pg6Yrw*yrp;N2NhWjtrh6Nf2-_cqjD4Gy||uAtMW>H*o+g2_uC zcL;%(rIG5*PnZ8}x!9<#-ruZsT5k6Hq1vwQ-}Ud`w6X8)xQWf9(^pA0t9{SD^eVYK zFE!1t&2zWxjb6EL>)&)+R#Cd}=Ct4?^epe3|FUX;O|7TAleT5>>&rI{ici=&%k}$| zJ$lT2D|DW+m!73XJ%%5%%;oj>bIv*xUEV@`Jk78AZLC{+t$V&pE@TZdArgknF__O) zIn|j8z1E)_;%|^y6MJLDcs;Yi?1DkR~Z}Bd_ zY5g&$$2 zoBp@Au8Avt)c25ca^Zfl< z7dI?##rsdEUwl>9dAOdW(gxg$Yw+iZEhfG6U%8{~XuiSC-p^NP-w)?+=N+@HAq^Wvll-X61M z#gjtr>oiR%kuKlepi@acedE2C9PM~4Sr{Mm*e=aWpB1|{BZ5r?$MP&cY0*C zD!xBpqPcX;NGrKbHJB3NIDN~RgAwhtmiNx{{^Igu z#r11`hH0ZB4T`M}KQeZ+8f{>dx=z~l^{9C+LCXzl&ihPj>ooAb%dcV*cKqJlK^>*p z2F~_c8gk2_qXMV0PkwMx4c!+#J4rfqlejp$b?P)y;`IAcpvmiG#j~&o7uIesc1jHz zC~?)guF)<>@|<^mOb16FFZ^~zcZN^1(T@h;L9c90HhNt@ALf3tB zGp2vZmS3@|`W$7@DQZetYw`u$4HOW{S6?1zK0+YFpMa#!QV{cckJ155dPhr|Ov z)Ai0D<6Su2`s(r3M>@Q!=rm#e<4@*~kNk76xA6U);pLujcQn=yp_ecjm+**n(iPHe zXlPL36FmlIOey#15!)8tT3CI+V7r9$pOA&#UIck(goT>SW;fjOhr8C-r9 z8MITn6!+HF9l~~&vcwoJ`4!mbXxJ{wHqN%lcFmS%`(}&sjPp|RGV=2C3iBlSzWD+9 zLHRPyNu+y}lNjpS1wmc{SkfA#CbuECG1o3%lJ83W8Xs7W`i=B2mCETy01}!;7qhv?vj`AH9J1Te3bWB^u?oHX7zBhkw$=>q4mC#v&u2MWpN{b)q z>vmwc^^b+AS`bSbt9aamlO8cxP4~W=dIn4Q3>Rsr8^aA8tlO2_lWY*ISIR0Lo00DJ z-L2>^NxAidbqDd{)!=C*=y@5c2V?|g$hiKc2EAHEWyWWwWTt0kWaejN$IYYB!smUW6wCX$A> zgF3jJ3U^;|Wo&`G?3we7iB~j^Mx1}^OnXv&=ik`$>7rXVs?Mcm#o%1#3@upz2A+HwYnD4n;az^@W)YSz;Q$FPE>)^TU zBkf6Les{SRd*l25UT0oj8ccE*CN4d^_jqxtUFrGb&N)A~wxSL~~;InMr)E`2jJVS#&nWI+1fRc5VjRc}2kDNh!Qo%PzYh*rsG;jU(t>Uiv z8HqQV5+6R(Ea)H~P_Mn}kg?${+LKzCR6PV=>5Nrb#*GYuKg7G-mJxK1CtV` zFIfkT$w!!z{Jv~)$)u$hm))LXaqpAfposYn--Bir+!oZHI?>S8t%(kqPHW8E=z6^K z-8<#RMI{5ObUQ4lU*21LsO;L!?vF29JSc{byOD+L!PrOd_2h1~FK(WgoPParL7Ko_ zYxX?p_}TWS77stN0p0;ankHKfFo_*q9&q1p>hZ;&W~|$~rTgHErL#Al?$IU7qHq{- zVMwm#1zqVzXM3Mcf?NHo%&Yur+k6RowOnem=xfpr&6rEX3;G*})FzI9kve8%+?Spc zUD}mxZxeI8`^nWNrUvqH@zodd&XGWd^h!tx8nJEB-LPTZUQA`)-?0|mUEcWMQMzz> z*ZQV{)w9S%hCEt1_UdU1C&zDgb4jRk*y7;xJ`R0PpFW#Aw0}+CZll~t419r4C-T9U zK7)?ro!(isbi(JF2MHFx0+-er`-hHLk?^MD4B7!2x@^QR+mjz(9+SuPTHf`!PPbw8 ztGs8l>HbNx>C4FhI(yoawG4T|%zRk$w!TE;=e7AG4o%`X`Ti@;oyvbMI`h4FvFXyS zB%2`)Wry1O)zr1<*0nrY;Bl91bM!BI?rFHg*6s4kwVjHK$wBz&(&vXA{On%b(Jxrg zu*pAXK}p=c`T;X0C4Y_{WiQ{>g{z}82cvT1@@E|8!d8~;dDl4dSEgs*lsDg_G-eoX z&j@!(9D9k}V#u0hBLx$;*B9MwvDw<=<&G~SXNDK7JZHRk$2*@jKK)a}Ve*$4ewcio z_&6@w66_f?;mW;PABjVF^JP0b2=F`5{# zWY0t45dDu&TQy$kF=#~cs|h>Wl$$v0PJR0>Vje3fo<56Mvn0e}<{eu?XzH>a{UcFyd-r2-Z{cLVi>#BR*9@Mp7 z-{-z~PEXREC4HyP*|_(t=E^Xg=O?y(w{>D4+z`F-EZXt*+oIl+KgsVAKbBa{$%tHc z#-{h~;L@vg?HaWvPP>^?oxapIG|(&d*^TrXGLj{8oGaUm=!l@6 zuAb9h)GFpjt7lI4>;KtlxV0v|M(EY7sC9!MiW#2 z;+sReqEJ>eNEl!peM+q;c40Z|IvCgP)&2{sQy*JM;%QtU3xo-qH!jj@1eTK0E zT01mtE0(R(eD%H6mmgm|cg;=NS^xa#h3T@1fowzI*t3fj(0PUlg%D3Kj5Wy zOJ~AYEl7|yhHIlGk|IVd;#9EDX-I5$> zGrcx!^i`*JQK#4L*6&kgGVh5%qyNWUb7zf~{vZ-H(ye6P6~mX^)_ZGAP9eUjAxGpJ zmpqTQ)t@$@W{sABl(!&KHIi4b>u#&-c?B*X{n)o}Y@^(R+7aD$om@4$u0|pL_6@sFkcNCi(uY$WM7%BwCFe2%0-{ z@|=$mJ^|{(i@!eIS<`0CnsL(x#@~}W|7z;L_c%#ZBd+4kbNpJKe>=2S+@4OowpW{e z8ZXZqHLN6~UE0tMKf_yVk=1G>I8XkI?;Za{ZIQ*xIT~hHdQHgITXZGdKB(QLh@*CStsr+iAk`Lp-nK=oAnUP%jIkke}9$9cI^c=YHIQ_FZcZAMnSHOu)m;%2R{ zAaIktpVpGbHs{C<$k1kux?BQ$HzG%o!~Ug*79^6NOU;*kpzI_$hvwPxZu zn-y{x8I^ZL0}vwz-|wVGpbj`gkx5Z*t>8{H`K0yBE$M0Y$hso#ryw%B zU3kabwTE*1%5#ht_Nmr)y`f8@d8BcK3wLUjPT-IGQRjWf1$V8#&<6cY`@OmRe62f+Qbc~j+50q;(KamSL2hP zt|#?s+ok=|s~MV`3f5m}eV~`iqM$40ZoS@;EFLLath>s@Qtre!r``)=`%QiJc-D>i z3;Z^$eM*G(mwsN`L-zB?n2rvD3bj*R{4aIRv|g<-#PZ$l!gu{@8U}plhopR-x|W>g z5uMswV%uqFEE=yRn>BS_dL+T`>Xzxqw^SdJDqU>WG`W##Ix#;5j zXPf@D&3ShAYTM2(g2}{6oebY~Z{5{hsXjxeM|PQClXt#T0ADb)=iV#FM{f)o;Gx!% zbXF&umPG$pKO?|p_n7ZsK>Fujtfeyzh6>eQaKd zk5)wf32#m9=VZJ(DZBh~&g8}JC(XO|-RC6x$!qO=ci5*5cV~`CsLt5DOO{Ha)ye&S zms_v($zB{6SkIk2_;B^FLuz^rk18}JKL^=dnIy^~iRz@+{^;EKqQX}#8{{j;7)>eL z-+jiz(&g}NiBt6xzf65_eH&S=PWtxy>}jAep`Wx=ebGR>As5$$9sCuxbpM>!mnF_4 zjZ^QEEOnB#D)>-*ic2u(xG~aQ_MSZd6tVmM!{o&EhnyEL-0B@l_N$XaYBfnteq;9? zzqY0Pj*frR>7Jtkzbv`^d|&w4<3;j46GxNN>SSDO#Kxpxe)6lNZbsJw1={>RO>yV6 zj(po`qSsMg&rKsY)X5ar&iuM5VyEagC*L>?O%6AFRP7quf7Z_x`!4Z#h3iYmQ+4vh z^4}-72d*u#Tkr*V&S}>*BhrCxO_tY{^ScbCHGAmZ-gq zxUwrY^U{KlnUemw8SmS^bzS{c&!hbeE4d!&+=9#*c)8^D!*M;HN0fynEK6#ydDp2( zZ^Vh)ZzF_XYDNCq#IpsdO3qhL=y}nz&7oo4Y(h#$`@eF1UOXYodH&pU8P5k~R*-=$ zNW9UrppHGYW#6BTdHDLnn~~w$4vWW34>a-0-?hH#fE6LbThM{<9}C>^&{xhNR_?#> zBV|=nYe~nhP5Tb4n}6T&b>XY&aYnDwnDqWNPHs4Zs4kzf;=@{K9mzOEdHiLg;2kcPJdr7(+>snp^qliD!@tO9kqOL#N#$DWyCE;to3S2VpteZ`* z&R+>x`9bppFX~FP)zr8-qqEAMS7+>TJeWVQ^7f`PZ|^U4t=5bgaG`PA?$)-+au@Z< zQ+aoSuOFXdH%)Bb;oph*efU+%{22#FZ1JmWVz;+D zvu@Kw+gI`H{e<4v&wbqJ;837-EOkux5BtUaoBpxz%n-!3O?tbmdhK$fOW(?O4(p#% z-)?;NiMG0fLdU8J7cQyHzu0Tj%$#f0=SL>7?`HfxgV_0h%pk7tNDF@}zAU^R>h^Z` zoi6<*p2|PHVO`Jf)8ES`_|Mc@qAbZVpW^m=uUk5|XOX*`N!MXlVqMG9BxiU`x6bFk z$6bFr`n==SuY-m^3{86cWX9w!RX&axJ+@vsUdVg-@9s`I!x!xTQpcO~;@b2hlV=Xv zI<&9No;JH?r1C~&4R%}1`_{E}(z$VFNl#NcKk2*H)u7V?H=m?7AtODzZ1A74q(S{t zO8O^x_KnSY5pt!SUKqm7#Vt}otEcXjHirpV4$jW)$zX!>?Ht$M(- ziJ_*U8o?G9b>BoejNG~=V8QUvA9M2U(_<3C@}G>__?egSCiq&zn;g5!?eo|5oXM5- qH|R9o+`wOBT-yH5vyFw41D8rev!_~VRkoYFZDhiOoExmZ?Ee5iDNp(U literal 1401096 zcmd@7dwf*Y)d!59NhV}~ff+E-AW@=>N(F6nK*4}UVIW$-iGdlY+*F9i5jDaLU<;Bs z8D-p@mOh22_Nn#}FRg8Diwfmp)r3$I6uGEX6l$ZTb&r#_5hw|oa^CM+`<%%H!TS7u zpU?Zxi{_kt_GRt0*Is+Awb#DPly9%may3nJ;?FcSZ42J?ubiJ>{qQ<8t^bg1{k4s~ z-@IUpWAd99Ow;dLTvD^>zB?D)c2CJ2x7~a1ebJKJ7nCfD-CJ_ky(JTFt}40bzWEC- z@7J%7&jM{eHLLaIrYm2v|MVBGc<}{%>n~jWVkzG5ZNBQojr_ji#b5CI>KA{)=~un@ zYkvD*d=>APoBS{3;(hz(YhHYb-&el4jo)v+MDLfIp5^!Ln@c(Vmb>oIsm@bd7z}9I zWJfRUj@kLQ*=em>&INrP{fo6H(cmR#adgS|@$%wt1L7z|;T%otMPK-5zqMc?6W9M~ zA(G3l=R%a13h-OKYUkx>_+M+iJx3c$$xr5Jor!@IQvbY#nyV7Q(n76ku%>l>D@U7V zr=8}#Y@?%R9|F%EK-C#WJ&bbCLYGGuEQ=!Qj{ij>;YDpFrpWqNqG|IkUo`)==xv%- z^a>KF?XTkf4BlD)$~CS0a+OW1Cvw%GVSVsM+p_>G zqQ#5uKoZjgw9y_0ZSMV2zVgc#Em(LTG7^o5R$4LM#|rT1{#UMPH*|mfe>*f?w8dAr z9MN9>hS}R)nh3ac&82A(&8%^og#{ZN-b6#}ukv5N)U@67kMbYxtZOR<>DN1Ja=iW> z$$DQAzECt2mzt;kztEL&>F^}}jerQaB7hdrp017Oc+EmLAU<7#V4}fOUx^IH1fQ!J ze;UF;quy7HxBqxB6gk^09I-~_J5S|v1|u%B&1K-K9cB!HC0*`U=d# z63!C68c>Un7F4lChz;q{Wd!=^g}`Lnu>LvTtquKhyb*_I!t0f0VKK6Zc4T*&g+)Yy zdT>Me(>k|r7*i~Ih5kIEk*@^bqCIguIz(TN zDy`Do2C>I1+yOA=yCCsp*(qqb0^>#%Zf(o_hczvhw`DRKQT;T5(Z_OSI&!6c1jNiy zL{cD*2!F#Iv6_3tzgzxgDZ1dVv$wl7tH=!Gh>x3w+*y$u$i90hIxq|Tb7}grp%|s zUq%4EsF|?>Gv+m8ZZqbRZ=3j6<1|a<+k3!YyUh5G67Wz(BbwKPIhlMW%`;L2kfq7>@s~# z$R8l&eFJm6aylov{SAs$x&?q5kMTA)ydoQR8$?mPK#an)y4Eb!`@Rolqr|# z6_8MTCV$3V389rAZ!tmgCf4b>c;@S1xdw>Ea*}HY;$J{$heLY#Ss?2MJmjxFXR3ZR z3UlX(rd#dtR!McfFR!%gEUwZI5V(;A05^-lb$5Jopo_GN|F|{YGl)S|TUfkp6{hnB_c)3xTeJDmvrlcRYy!h^Qn<5&YiPE!4zc00+^D5u7kR^}V}ANw^zK ztk_&qpm!p-&P66N+HTRAN}v^DuM80JxHkq<&Wb`SCwTIMPHv*;OwWQf11ZHM1G)6( zzbT1im9$P<-B;cn6;#q9#6T zP8_hp&51*qP-`Z1I1`eYP+KO{ZiVDE50a_jHn^f-7*^AK#W$CjOAGWT&p}5O7h#zH z*T1NnSduArxO$;#40>M~nT#9KE~*8ObsU&GxWWHs$ALMrzm<_%4SOe~j|9Ak$rGSk zz#A$bP6Sq5w#krA2f}n+h@{dm- zX-XH2w2lMR(DFI*;!N)D{{6p(ls#~|`6?L)4)IxX8kyhzgUP6`q$=VtCOU)WRc7HT zG=~JV85?0PDbk-KGCBvL+YTPhbla`n^Q`YitiE$>8-ZMqz)#%f zYCq%y8de@DNr38;~YACz-;&_MOZ zJA;`1kQ9UYq{a)CMwe{(jHu;(ISlb&^$J8H&;M5Yd;rAi3iH|(FoLXUDEKWbR=8j+ zUncUQMaht;L3ct7kkUBQq-xIG*%%aHZj`UY%oTc>rlCCSh*e-$wqT$c*MmE+$PBij z@fBSIV*`1@<5rUvHDx?y?C~@*Grrk>GXaCM+kaDzuPQN{jOJ1pUn^V@vr4Z;vxCXy zz7cX{lTE4ERaN?y!Qk39JU}9&ok`R!Qb@V2_7ObLWx<_H7xF8;VN~XLhLmg7!Vz!8 z#H#@luh)&RbN>k#A6xLcN~)HLygHVN}kC$jPeQH^4bmb}YRs^&rtlmH!@>FS5#~Yk=N^4%nU3 z(4dG3zf=V5Jv9Yt3!{|8G5#$q2b0zy%0Ge!q` z?AKI?ylBO$LaG7LKNZV;#l~hDSz-^mxn~#8?a{>{bTMg+s_riKBGSOTU_>XEC^!Qn9-42L45gd($L(@K`S-t5bKSvoi>*aLSe6mw zO$^F=IGvU0IX#u>4>`q~HjLFil6$A)@BJri)&^9Pb-@Vy9boQhin-6FR(sF0nY&gY zle!MF2!m)c29a$rVlWkD+K{aSSznX$JX>G8F_v9noyK^^vVEc*otR8?lAu#2E;*sD zwlXPuYaUPmEw{80Q8M<{Tyj6L!MYBPbtPazuq|J>0?v>`o8k>j((0)p7Kj*wz=SZh z9k^LDj2sqc?u|69(m{b_J{c*4^ai`2e2|N|P;4oR8FQWf2tY?c8&Sjke$ z0RJhHUncpH8gEs_^4&;u0ka^iK6!q+17cE9;$UoONWl*36{Ibui;L zq#HN+DdC3BNc)VNOXZItLs5AjyYh5@Rc%=Q8FLW-L9vPY6bfq@WFB5Ln@b#wj_je& zRN*tJGfPck{yU{hG|!n!w)%|QZ00$If8k^$-2=Td-YGikhJtuz-6wdM!k--Ptos{? zr-?^tkog4xA0y+JJ)(5z|Y11Ta`5%K0_`fj3Q7bWM&Cpp30En_UJ_Q84F zvL-Z^$E*L%IWl6!@%Wqtw`(^FRUxdIfmlcMem4F3kWYPo3oi7LHfDB9x218sRnGEbnRHUeHSwIAdY zLz)vCP#ZcxLxy7Sf-m>P#cifH-|H8Wfa+xN4TEGTNL7K1??AH9ic9Q#D@uRz0<^mg4|zUU?M{&aa0WfmrkpEyaw~(k&rK)I7Jdd)lSP9VsO196oYj<5}*Zw3!awoaCYPGqEYCVGu zE;u9k4%PrPO$abY(o(DOFt|oE`Z;R5J^^(oP-fvFRsR6H{tBd}zDoj#Gm9B65WUV$ zU1MVxamWUYG{}jbm}M3&vX%h0^rnuq`$XkWGV6SGUkc7c4H{0Ou)8nE&Q^W-GAL|$ zQ_dt>vP$)`N}(r}{<3(x^RHHqS;l&|zu=u&svcW9?B4C)m6{1(awdZ1g)eKciVxsT zpWO-%MktIfsQ&{n6h|%hlI2_?FH<|AE)Mi`FjcQ1*GK`)`N!e`=gcg|&HE(}OaE*S zOY8zFrrX8jom|KbeU0@`UYF_=ONznb>&5I=Of~voc0vZKXNV@g3*(HkRAGkAKCM%h zZ^WMg=6w-34EdIsoj`IahssO0on4$W-tlhygZ8-$#N7GbkEf-#Sd4oluOqjwT;AMQ2WVEqY(jzQFCH7K8umioLGYp0WUCmzFOp3)4?-<){d`UcvB(3AMY3OBcQp=#|^)oYeb(?Zgiu@IXG*SBRy+t%8Y3?mRE)C-)?| z3SC34ONq`9+*V;cgC>r<;*s|po`>EBA;czXvsg!jS$aX;=UVxdA}{6s&` zL%*S*3r^REocEJRo%vW*ca{CLr{^K*vIWyayw>XAGTwuc6}`>hiWD8P;$GO2%h?1!JN{c zN0No3sxB+Tqm*Gsb_S|BE5lus;gH=j5dY>sa~Bx~Rke+(l_TK5qp|cZ#@05j&7fAv z0xSMiiswoUf-bvYbx{7FA>I$6J0CO}GmiG6coO5lDEjDO7R|%5^+Q!1(^y}Q1hkUq zkijwLsm6>BF~;2cQg>2SluLPh3SRegK#HFr5s*#}Tf)OkP>XPcg7^}suAy7;l zQ2hlvvPj?X4GV`Vxm@9pBH1AfD!xs-6fEbEi!MV9%}IyoUc@M=e-E-#@4Kwte-t$+ zbpFG9TeU0V0A>W=+(cDj^U$fN)!0>4$&dcTRDzvbn16LkUZt0iOlTwSA)Le`J`{z2+2 zxH}X|8Idy?_FG20s1J+1=mQQ58lqbClFaB;d02E}F9GtTZ+ZDXw8n;;oibYaTNr`< zJrVe7)G=+iKp1S~v06(ygfR@16l^#p9jP2*w@swtXz}!8)GwYO9SQR|u>pg|g_!2V zMud1pHn9aE6hYkYGoc2A5T)7uajN}X`~mZ~!2o+MQhucg?c;K%F`<8oKFhc4XYmB< z=dWo(GaCt8!)I*i_$xeEqXm&1b5kjrZ<`}L&^P%IgR$7dw-P(sTIHG2iDlt$20=L9 zvuCe1Alh2+JS&rC%~)u@Li;fbU_Pr^3+>1B;!6Yy;FBJP-EN5n_*cB1Kud_X5Mss4 zOFsT)qP+$OzZL?^^|#8?=f(ucY80U1rMVXUY|$oUzvD>W$X! zmH!JH5fhevYFq&9zY%XNb^;>hQ2PQxBpMWO#IL5B!10B%>}uv+Zjnnq`JNi?ovBSI zt&ErnzIoXFI@Vf{MzDf91@Fn$8y(Ky)2#Ol>y4Q#$Ir9g^XV;LnX618a@2;{0!Af&e)J? z=;lnu-N+d6>YZ@;lSK)Hre&3IebXjQB2(gjP(t+OWeq$=ig#&=qdX`VV=)eWaXvL< zhFuQq)0azPtu{4}O74~CV&^wjdP%4m|3O@?4jrl$WTN~36n{VI0qaE_CwfO-)%*9 z9*$u-gz+f=hhmYYNUbBMenu0I#ZGESNzaCqUSX5Jmud**$;srom>OG~$@B3$R_|xQ zz6r2t^@nzu^%H%?yKLV?6nHFlNfv*ETT3E!(`jud>U-_85 zu;?Buw>kx}>k3cp7GB$DDVZbhe49vDfPF#T-QodYC07u6rd4>bzK_?}gH(0!5}qWD z@2>XzFI7v+>q~>ISII)n%OA%@a&gPQdQ&Gwxl)&Lc>^EcuytF9XEp{J9a%E%ya(IzLt~!sq zU>NcYq_Kdwpk8z(CMBO>`c}E^$r4!9Ez&U*&}c$&K_=5iq}YvkYd=eaR3(PeR~tSk zPF`qUG#Fokp_#pCfW#s|u=W&;W1zftFu2Fs!F*1@+Ci!rpg?|ikn{#h7w}LX92l!Obnj)amLHe79rS8z&WFL#ee~lv_(hAtn#+YWPGh3@}$Rv^dfSB(>iql#F^E^Z!;uz-=7=O=OYKBhoZGq zG>oE{fc!_+2G`?&i87i!i5FmtkR`GPB9OWn)yee`uSQpqkhc~ZFU1j#f}+^a zI-r4(2dPna@)LAVbhM4-L~F%(Kjs|X^kBUuyy_#*mN70OK`@IHV@T9|j$NF;>EO$2Cu_MS8wybuH ze&eUKQNgm?J@prXAbP<~=!yy7q5&d5+f6;`-nty0@fA2mv&JbjoF1 z+M8Ys9)*iZm4(=B0KLGM-W<`sf~3?8fW!#vE-SB9C0U51FN>fR=2dd-&)KFGo&3GT zDdQ>vz0e1p>uzRNfIQ&iM_;-4k$MV55^wlTc?`pX_5(qO*jpD0MuBWOa@!lWq$IIp zTj}K(NyV0x4v8`hen8d62VvT*Z8<@5lAc z(ORQi<5)C^Ym}S0KD3IuhsNFjMvv?_py%}OO6Rc?o05|*2xZ!4kUb+dW9M3X!&m!g zEMUkCx*k2pvtoO)zM3V1y$A0^xt*R_%cB6sS6$mQfXG_X3yJrW>$bp!5>7s`0WbMU ze>6AoJc2-Pn6;B7s@UOIyO?%rTFSd%zOQO(@|)psIFb_%TN6v#(jwY%+{@n5LJ*`X zPjk{Afv9kGpcW!LEh9G|%v4Y8K!}O{N((~O)tU8ne?xO(H=@878ho>~TbZ0>$;5{U zB@?teIhmlH$?zB92`8A^;f(B97kfAHE+R7ghcoOT7 z#p(!d`r7N5$W6vNs!Z&We?m`_`?(q!NiXSMklIMl7GU_6H`0suds*0_2Bj7~^&?Rt z{tD$77#)zcS!R5yH!!xh2b-IygDimZh5Kn-K_q$-|3drBP1Jm~_nl}RlqZ|Hvoh%2 z3+;j~J=e;~V}kqDA>US6t&}H;cR59qTP+~mRT1)$Gi8Z7AQhxefgO`I9Iz>qR$bL_ z@L5oKL@*aT%P@PopAy7^G&+W4@V!XePct(|Uj8CNyWsiaGrR@{r zRM+(2esx}u{6o_)Q|s0*L7KM(-0T=~g$xWpPoSN3Oc>5OBxdQA(da0pS00Dx56l1A zNi=q2ue7|`2QcKFhXVPAQXrHELNul_*;{24aWDqH0rp^ZGL|raI(diG$<Cewe`DRfHb+bCdlNv5gSB92dXJb+0FTGu_Dp(7*mCD_<(vlqZ-AFP(d zTa?Hd%}A3{_#AjBH1Q1BxdLa2bx+`WmeJ$>E&11 z`HD07lE~*jt~~kJ(@L9W;m3lS^RfRPQOH1^D0B|+y<-X!4Z6a|{DEN(Erriv)~E8_ z*ZW3LC$Lit7%b!w6PwvX@U#P-g(3SyQ8TiV9Qv{ZdL4P0^OZM}7#GUGT?XRuu4Y2Q z|5gyQ#*cTgNz_VzTqdKXHy8<5)HAOco$1H-YY&nEJ1i-NSaZZx%HKPF=DFuf4`@jis-2BzEg7 z3{=|BDc%St6Hn5b-)QI$91wfuF??WpYuhh}fhC6C=i9jv*eFp7KEvJ^{_oVimpv2} zm6SQ$G}?Qa0{xnKR}}zYRgv~l+x~ceLvj=CIbuN{gdU>(OG+cXicpd_dL54HC<&$@6Xnf zTQq1wOiYsfYO!iy9bT~QEiV`}!@r$4JdIt5?}wA?+Of=S%SVx*uMnvCO{`#I21~mH zk0DCeK$xIB`Whk0o|Js-uDZB{_=3`dViZ*=_5g8peS#%<#gtAuwn|NCyGk{|nVDY| zWKiPu5quF^*tfL8h4qjEI;W#B!+;4#AV?rshFPf004nP0ff?UJpLAb6P}Ugh3kgWD z2|uV4I=MR#)3ze9uM+de0!dqG(}NVsB&%rqd_nik4>s{JJp>SYdU%B)%X_AfsnNX3^{ojjKOF#(L&I3|=3^15AGEAPcEZn*}a}v-lby zI3EwP|F>ncKrr>30<}c}=MzW#>5BcU+?y=M+K<6`Vr>s9g=3SoyS5D6sW4vUyxPpOX#!IKg-;olK zyo3}6*3jE*YPmvsE2x#;?(ycW0x{Qb!NXYYi$L1yxCUVWv;dMGLo9_W5Pr@I&%pj* z&+jITEDGwSW$32duzUr!)I^Ncc(XHpvSiUmsBttTiN)$QL~L4D;5iDX>0?onds*(^ z!fnSz0@p;ycMwHxsJ|)WYQZ7ViR7Ff8`Nv;{NReYT%zE$A;^FNWN<0+o{9Kr{j1YK z8$dWrw1E~=Qv~8=sDRYvYCM1$)aG#NFW_)+Ghv!`1+A5hA#5Ctfd~OHM4W{1B9Au99kiNMaoW ziS>vdvx%g}Rx%z0pPu&w8k2mW-a0Q1t}-`~_JcAju#46oM*jH8oG5Nd%8e~B3m>EU z8TsKYg8f>9wEhIHm?lc7MrW9ts3Qa)qQ^x<%2Q-+qK=b8U@VeC#f3_n$f8h-Cuk!vgxE>^%{zqp zVM?wnbc=o4)06F7yzw!U^Do2goEiK-J#J%e;apC7Rn*j&Y zf&Vc-(stYoKX&l}VyJsG0EYCDkhO03&xhHnqMeIZSnGzPujL_G!L?@HOMvTOSf^cN zRp$a{5@+OjFVQrT{k8G8v|EB!7fzYYkw-374emYxW@DPc7yG4f#SF&G zk#Gq5&TIN*|3`RO&=z~GZ0DjXY(Sal==c~T0ovs*us5^|rn!&IK`@M+)&nZ-bCo!# z48+p?yT56-6FAWoj<`|-kw2NsU~$V{jwkV3;)UF5c>O%}Pb0iW>_jyOs2XBZRPzO@ z=|DyA>VkBSO$xWWCWe5cI7>10BDzW*i?1?x43*p z9@|&EsMGMaearW&;U1l^_&na3?@9a}bf7DL%CS|btRuRtIzIM(97VW4I!`nY-x;iw z;}X~+51EzQUe>YXAi8r>4!0k~W{Y7x09Y2oew$~C5V9{iX;rki?gbux_8o9pv z{eON-po?GTJJYTc>xe9LZJI&A<>N4@&`pB`&)_n0_|}Vo2J^onfnZcX6i_dWI=`AQ zRp~()Gltp+ED9Kl%&^Il(e0Q-tEx!iv3wqOO8=582FQx{l~|2vELh3Zhg?+$03uqF zTlQs>z+H|}|Ht1D5nQQOke5`hll{%zI`?~s_Y9c;OjJ#8z`Obbs*?6|B*?98(E;ma zIZ>GIxt;{{gC*xxpO6JW#667#z-A5`JKYulSv-)t)r?LL3!r`}2;8mz{&_n6N3DYX z`!zMIpr`&*!iyE}TFibFZ8PA00&q%+pT-<02UMLvqsMM%*v09mY)uV!6;wL8tHx!( zs{ZQfui&$GxP`5mFEDa~N`}EE%;%MuL{mp%oRRl4GtO?N<^JepNkO2`pV4in8z^wjVT^E97$b_L zvI9*g@52AzVHhV?_40!6BT=tMfrEHK?0 z*?kqC2y~V;Mg3L5uI%fvD~G}bgx#<) z$Y-@3=wX_Oi}NBSLC=7|A^f$Og~O0s-+*;iSHP+Obl>-L?&Qdj6saq0>3byzzJ!Nl z)S+$<$xl8##Y2*yOm@YPnyTjLWbQ0{KdIVsG45NSqki0&pQ)O%8gtY6sxcXRk|#VP zt=PzYinKHhvZh{xtfXw=rSyBx`;7a3VwyegGsb18G(Plh^N*$|Jj=g^VwE{Q7K8y! zAXZ5O+9s%_r4LxzA!Cu^MyHs&Zl@d85q4y1rO-*vtDuH3-+ z5uGZKPyCEYjzvb2ZOXaGgi9`+oSch(T#K^FNz*XS2I&Vf#j3d&txdj^DP}nR$)z(? z;YqXXlJig!9+-)Cg(K{e>BV%d){Uj|Qb=T6%y#qq_z5#sqzCP+X#8(6|Hi1tMJeOp zxCfQVF$L(@**Rxa#$eByw;iUm(E}drwrm29g)lzeD z9j00Md&=>Z)1}i;JK)AP`bl1h0tdXWg*yO)!^WhM)~9`CYt~|&;tw?+=X|SB3{X&l zLRt7)Xl4+%@m-3n{~2FghMhHEgS{fkr)Aw|#>-S;m^iGg*P{GaVH0cV z3NbM#Dx9KMShcRSci6xCtGaO#Mvq)XK~C;NgL*dG|2ScNp^dhH4)Im_~G@(dG` zW?_KGw^Lh%OXP!0e-%re6~p($Q_i6+Xnygl_W?T;KDGID4^HmVS+Hk_KDAZJiEeST zQ{;mRliWmwo1LoATw|iw!iw?1daW@hgAUq14;~gY?m@CDMaYHr&$8P;8SUS->}=61 z-k2Z%sH-A(|ImH$iEcFA75f-XpCzWc##A^lBbqoXiGD^zId*VGdz(uzNLtVb7Ul{8 z)DQnmyvTf3v=lNw#o`-&lxNRkXU7hqA_ve&-=6OgU zs;pyCQ0(kcX%x{`rF2&O>sER`@>-RCgh~fdrQbl@R#?2K6gt%Z7CC%qp}P$9SUkFW ze<3zH7mJ&^@G9_Zc3v-9;+?a|!vs2(#FmxckX>%kTe)x9D?orX%%g57nwTT@Ap3~2 zot}qY1PujzE}n-zhE3h0aX&(m)wtCN@?|PdAk!&SP5lUQXic%G?82+WaNa=30S{kw z{KSQx#8r?DM!|GEX>$@UT{AL6Y7v85Ar&?ygpH4}!TQAr5c`%M*w76&7B(kQ;nyYg zOA5IXT-gNz#53e3FVNOms2}8}rHFFiTTr&$^Uy-@9wL06%`Tt@G7Tfd1c3pWPGPzz zqV4`i@arOVK0%|So(E9Vh7YBwH5JVq&y0Lhvm^twm9a_f5PUpPZiT4c^@6?TH7 z*Qr&90LGX~UGFa2<9P^s3p7ZZ38FEJAD6CxqYhV`Ectp3h<+2uXUUjF*KWHogLx6v zTvQftEv`a4ic|ZrUd&Hln>Pjs4(3q<;wNwQB+|%WJovNJU+|8bj@Z@B395n0#ZL~8o}YY$KI11Zi=L%Y zFjA3n0nR}o@ESyumZHgG+{`72vptC)RjD8Q>BTlnBSus077|y zA<}1PoOlu$ttkB>)uJ2YN~QUyf^gH z$of`OzL+y|U;18SweK->pF9h$W1f4IqliwBFwX8}Snl*xwKb^Tw-)5ac1Br<@fybo zk$Nty*P{%G{|aN-eO3-cj>RakNUw;tnwyEG?voxxI2SmP5Alzi4_|8Z(sA>D zi5IR*KAeTp!N;h1-q&z~M@z4NwE;=#yjLH`OT3G=ka&_mhXW36xe%4pcMy9!=x~tL zs2?+gf)v)wPP6AhyoXye7G<6H&53Wf?)!b$*h&jx`#)#dko&p4fn(`4YMH`+>f!>{ z3}W-`>-enN2dmmonV@#ssNzyy(5WZY;ABs1r=``^zKviE<>~<4cJ{aFh6OOXQI~oL z!4c|$X?+$N9WldI^3ER-%}OA{V&|)E?iMoN;{-QvFHb!H-nO;_VCzFMwCym&z*PXH zocTb&N3nR9&>Qy^vh>3qa&S?1aXwBs4Bc)gmr=3 z@cA2P0t?MEx*C^ts2zDDF&)657z?aM2KDkKnwRq6+CV^L?|eP&*5WwaW~}e)k%2S| zd08$*7Mx7MW|0XX8De$(EyQ09Y9U)KiZ==RWuR&;vhZdQNZ^$=(N3HiV>%E-c3bGZfr#Jp#JLW1CqTp%-=?B8h!d50&>>PMyZnRig zdjFfc75nVd!y~4-(MK>y2Skw#N=*J3*3)1qhT z2kabSIheD!?JR@!!{B0UGuvp7U^xgmaJBsomtrNt0U>XubtRdQg`v_4XEF^^bue%; zLK*V7uI(5a*zNCA{&biJ;(hCUB2N6_j_Sg0HxxdfNA1|jR{ zoHY!CE9n#WBj(BvA!M<0eTO%>iD;h2VO~ht7Q~_-lL?9=9*$jMoo1wpa-{qrr`v~7 zER{ok>K%P-2@tu)NR(3XcY|A(p%{(`u0NrqplUw0Y#~~oz#zo|`9lWkP0_uxMxp>k z;S(eX7_$xVHpX9}xLjB zi6RL6OUzA_s4mU0VEhU&ERs`!)NANl8n+Nt-B+<-673;(TCuuYh>FS=t%5F9Q~G{m zlCznAj*-W|xrtf;kJ@wWxs6?@BJ_5;wTS`TZvk*y07}I=!VdQpT=G*!cSz=Ik2h^m)wp~kW4 zUV?L}gq3jHsI7E%Zz(A=_tLV`k3 z3e{0)8HJWoXgP)Mp-?S_?x0XTg=SJ{3x#f`&}s?=D71z`WfWRVp(`l#7=dB=$2&I3@0tzqXU;=T5lY9eMk3k39WSZS-Qf z4sh0cAIR~RKTXegrz7Up3lNGp8LRnD3$=MuUsg zhEp6(U#gErB-CdKNs5MOn;xX^r=2LAiG1&A7e2+FZ3NQa(C&Gm58ye=jz(R8?R>N; zopWUaekM(>0wL=0a}6OeiU5c`x|`vsqYQJJw$W!g=jfXC6ab8W`FCA!fop3LCQWbJ z%8kI`NHKm*5Dw%{#wwN<88q|FZyXPFPKX9VVI$B0tjSPdQ@8=FZs#S;Ezceq-?iz?eD3 zx5Di5_FFPRywHjOgyuD#&2S&2*-WW z7nz%B5~-!f$Hx_cN?PoKjzA|OYMb-u8y$>aM`eQ0ny1`}v7>%8R4svO*(B?3Xk``) zT_|rsq4;IQJ&u@%Ffd0E14$b865ONhYLYMiJJXq}`%mf2<~-^|{ zCsw$VE8g*&9c0UD$rXq2J7vighm$L0az$IrX9RX*VMJaGRQdPZ9AQ1I-P3?g<7m0R zA@v@qeUQ9t`1Z!m9Q>4{a6c>>8|9FWeeqUDGH}SKLkqpJT+il4ab5#%S%G;FXhnYx z0ci0C8KcawZ}S8pF^k}FKAKt4rHaUUw#rId>#e-BjrcbI!78joA5cFf%xjL;O~+!K zj&YR?w87%zvU_o6#wz+zi(eOw0Y(k< z0agPotnAZ6RtrdAfD`=($IK{*UN&Y%aTMz;W9!C_rl0?g6=OHmn8~AEv9rpSj~ z4O(;UNPN>6Ro{Y%k(`{@iSNc%P4vSLkbCJ{UkH|yt>C9!)bfanN47b_(zG_+?H!U+6LjcVLPsODc_0yim5_$}vN1nf-JY6c=Az9OT@^!pC zziUVj;WK0|2?4LoOyk-Z-1oh%0VzT0#;Bi3za)+O{6<$oG+qxQ6x;fSK!ne%hf`ob z%E+?;XjR}ZFF97t{v^JjON)=2u^ckdllTKtoAc;{WSIOG@o(9{eg_Y| zl^As&9L;9|Yrx}zv2_u$BAaj8JssJQ*m!d{a z>~2ZUf4Kyh%Qt~z{350j=N^NaXs3WnAw1LbyY`L`2Ol5Wk&GR-8+ak|h@GcmCRQAV zbdn!~v@@GT?66#lN(kS2-B7M&=KzgBKMc+z;8>MIng{^ z8JfNV4_wI)Ty{~7?LdJX7*FFvML$7O$c`p&i;8|1CLTwV_xln^zoAuRzQ|V*k14Ii zQQOd2GjTC75+W!HMSw+++*pNzaYHxg=qMF6fssi2#FRGSsKhq(R-r+@;eY;#@GC%0 z>||^b3nUa+hFV`H6b1zhvM7WBP~(Ac7M-TvV_6NB*v6&?H=iF~;daFG#%$KW4yP+ zbZ*+}0XCqB?L`CnX5Y!J51I%3QUQwoS*EoD0$5(E2~ zisUb5qh|b;yu3{z=GNz<4H9cfAft5OPS|?t{|wPY2wj6(W~Qd08q`6%*kk!S^X8#| zLr$jA{|^WbAm+TX0T8#`#UFi8t}jZ=Os6(DSTWU(yA4IOsFS|wyf+MSoR)ILZkGo^ z70}^gF!6;7lRUx%B=qPtgxGNqhbT4t%7%0)&aEf=5x&WOIzJcklQJgzMftf5&z*Tx zp9A!t-4w}_t)S{|tR6l|qT^;7V325ArhFUgq+>t?SdFvS(}baJ3w^NpG{>9+R!SS*h;tb)VNjD$k6sdA=F^s6U27mZz48+uPr;m00Q#n{GsEE!wLVd!b_kNyt0^>d^a_;KP|SiJn_# z#liXjRoCVNtg37)i1j~wjwgV8v(vX5ZO5hV(9jX^;B@p6yBt@eK}lm3J=fLK^9eHW zlAD&(^Oa?IRu*twi9F50V$5Px3v*RFqsL249 z^a#?q2O)({HYxj%rd-NE1mn1&HeF~mI7^!eWf#9_IZ?3*zgaZ`9Plzd%8o7`6c*P) zT=x-sZHqm=6SLn%DQHN_JCgF!<3Huyt#9~|=ACbjLVa|$$eUbHkA8xj@oyNe8+thM=|t+UJud(vDCM#xJTROtEt)-p>np=b-Bql|}2R{{<)#U(k*< z3qZxbq7{d#JWq+EwV?}8gqlL)kq znzZ2F7^nsdK@~M-A4=u|pX6d^-{!u7&g8dT$trhjJfK|Eex2zV*MM7uqC>~c>y?8w zxN$Y~DjXN=m8(VjBNDHCMCQ`nXyfXEd3>)U$pN?z`7Nd#j^xisPU#vGIJW$o{#{ws zqE1wYnGb5jF93Bk(K(%H|M=b<3q-D%-M*fv5O2w8&LhGQOFT_69gP@^8g?onBHrRu zsVLr^s=1;MP%h0Iz2CpfRk;DOVrXMpuNDYz-d^pwx8aDVrUA$PYxZfP@gfr|s^i-6SUSYx zbyR!)xvSa}Yr!9~rty9cKg<#{B%yGP5bk6`Ribcv~M{>G-tln+ro z%nK@yHq(7Tq43Utso`c!^^@lE_Ol&0Ylt7x6XRXRVy{1s)PE?LjJ1Pe#pO(^mAWO#ulvQ*wM)+&me*3o~FGnKPV|L~)(rtb-*$Gj;sL z46b}!oRF#YOa2@b1Dw--!&Tz}cs2_GD6?|9R z=#obv^3-gJz~E*V*z&WR;*ELnhP+3;*9?di)xQ;Odo<{{rV`%8ctZ{ttNyLn;WU1& zI^Lpm4&yWeG8d>02#M05tiK(&?3@V={TcMBoCE6Hc8ODk^JM}7WtYqaim)KS?=S=U z;{!^HWE<^+A`qJ{DvHs?Q$?jS@mBO3r08!kYl`Ge=u1oLrmtWVxlN8o+)PX| z7RdDB;|?$Ezw#pCLTN7yb5Y~!o>-kaNkMa)pgf016&Y) z5U38Wdr+ZTgaD)JL4Z(=_M%-spg{>bEm`Bmepp$^!2=?c5wg+2>9gcxkbm)IMcRWdX&`7;6wPJ3SFXfYa+z1)*3u{iYYOBj zLNN0$b#af+-B`AF;{<}w1)g2*!>M;q{aDEEyBZw$7e7(rdHByDecg##Jh6|Ep4%=W z{oz>L`{*yBL7n3BCPc9c^u%9829j>HV}G}RDw0G0V^5+NaRnfC(ezt_m6iIMCo(pO zTDIPStqZRC$%_agvX@X}*#1&ribTf5h`J88F7kCC03m zyrOTi!X5vv6Hbo?AgGhm7BX3W1TCwsJ;lc{e5BSRdH(k?j>(uTBHM}j-`R0J$p&@p zUDS{IU82I}Z;@xWnOG3ei_99gS>rXqOP2!x%|ba3nw8AiLX^uA3e!X3DuGFu|DgXZ z|8c)*?!Og^r8|T8RD32HahKzGAjH{rA){&j&Ein7KS&nQZqY~mRP$oF_V*BPz|;mY zT`csuZmFd043hS9@tl|k_Ih%DjthPtX2g*Bq90B9NJQ7}K%ne;*P^_#>zzyTBK_cN zw1J^c5)Ul4`j2Y?SL0VzWI4^c=r{q=)|Ze`gWEbTQB$E<|De1I>ky)yQ)ZGyd>g)J z&J4*HKpYafnB1#k(`9&XCN(5sj?J}Z?t4{3?${*Sw^CdA#`md1r87iRl z|3<-hKW-Fh3wR3JQO+?^-fCDNm%YvK6%;;L-EGv324>7TP5$n1U*%P}S`0$3Zj-}_8y}R^mrTph6 zYus~^u4K@etZ-rWBCkDHDT8=hQG9`fKL+dBWR8&AGysd%O^YFc0?e7(wmyY5mnoev z@#n8cTQGluJtWlx19SgMGM?swiD?DRiWczCpfOmWtEyY!8j4{a8@Qzp;6SS+9Z)kV za*4(lz(pO{5qetlvT!k`H252n0e~q=Vs(XZ*e3$T$-p}zP=ZyT_<}CM%q4CD>NS^Ol)L0lu^xx5drFZ5 zCW(z?e@QysZMza!DNjOckC!-FW=y$7*|=14_6UDalfoGkSN)pip3k9>HMb!Ux?TrN=U_KiR!qtTifRhUqu_N^^RTt(BWSe9DOD8$izi^0e zG{p^n^y3PmQS8s%S$1-XtE>~h)d>|sCdxx^K~XFFVsXYM@I3TA#HRiNbam{6zeI~J@ND~At|z_`;cCx)Q;!)-jtLW? zIo@~*2G4yHVfx&6Z>h1QG=74<->&vt<9Xi=+h+*ATIp*$eUY7X-<$N=MxXbU7%NK` zZ#I^=Q@^!9cN$ANjT@lWfHt+uSkm=1aCY{9OJ7-V=`#b@ z89(7&bkDl(tm#O>F>8LB5#@e63CEuz#DtgwVy;k8s+)hWl z*`cCfj_qe2`3;z*F_m-l+4#q~rf(e=^BK>e^cs3RkH0PW+l@bqN7fLq?C_%#9jhkM zzE{ zy*d7=BX*RFoR1=6KTt(_{2$KvKb`+R`fL|aF8?`j4dO8ae>mLjU5-Dy&PONau9}pa zg&TkO#7pH-aXs47(M&@j>bY_1&D19K8T(8PsYQC-KWdR&_fLAFyL#bosuzz?2_ADw z@u)7x6WLbYhiogCBHPN9HMT)t3)3mK2F+hI zH2#m0_&-r1Qw^K)H)EWXbTqb7zCU#|!l!6P3qcwXNc4h%PS!a^#?qJ*dgA|dz-*wV z&~B5@EUKh)AyUN7cq{B=PvS3V3|Ql%m5ra~N2@KHp82~MaXXE(5Dm&X7>+zextSO= zj3~4P@zv#c+#AGW$viwBtU%2AWxty?>$9RNeOm)6;Nc(Z1bX0w2=$}{c$R_mL3#>b$&aFl9Q_)#ZcPa zT{PVbXDLw5uJw5;^$a~Igk7_=Tkp(8M`jgmpi*1tK_R%!>9$|1C@In}S3Eka^gC2= zH$5nXt!lKUXg9YI+88*qKDPIfqydw_;u}N+{#b%ubql5)nsb|oYcq`@_Q{*v@&=_;UXo8`g7vJg5JwiK0cP^!3!!k`65ezkqkLzcI-btV~~hJl_!=M}81b{g18m zAK+~+Er4wkk_{b19d~?Xfio7OMfpl9hwaXbao%L+%w(^0IiQc3i(gB^$ow{_7eY~n zErXmT7?R&rK+=WCay7E}kLTm^p<6xcn#Lz*w_1KG(Uk5BV~71y1HZh4FE7T)4|0_~ zN7Q=&Yn@^`8SU|Fv=vTqBHhb)z@7UY7kR)$tRQqtCETr5@_VXtY4gMdc;L>AiNJnw zk=*!qLO-hzQGXV)Dw@Sedb5 z=3+1qGGST=<9HTqq47A z7IxcD>BNq2&+5gn!pd%TdW;AHpi^BLdBr>ly2CF1T`%r+`a42(-&L->vk_odUOxoL zmFG$9L9+k&n8n4OL=%E?ayx#(y2k6Nr?a;5T6|%WD6hhMXFxhcIgsh1TmC;svZ^e0 zDOD8n*_8~mE9q@j66;Oi>uH0j{5$Sz8dFmoygX5zYp*1QHLyoNP}^JGSG@Xse@koNA|Zs(`&{E}8_i5R@v27i{_Iikr5fPzajl z{JziH=On?)Oy74t@B7E^ee?O`?7i1sYwdM?)^mS+-^!yH#)u7@aQ|ywpX^ZwAjDC4 zX~~iofq`&$dLaYkPw_>QNU>gLF+raq$AP95--(gNKB&9Iz&y?7vI?rbhVjl_8IiKX zrX$+;Fv?@FNCSiJqqWDLEC@X8`}UJ$@CP3Cefwb<`<;=pfr7H9e4D<-ler|zEKD=g zv9L!4&i!6u9b83IbzIO%8}7>V&m^& z`ii)y>g}R%J5==mHTcV(GM=|`k)%fh564hsW5F8P*nd)stW$klK!&7Msv$6k@Jo3n zv})Pm#U>VfK_!J@PzN{f@mEVQsy|RfK7!8CFSbZC0iF4*NouKxnyj9>c$8=KKJw zGs5uLt;U&>k#VDL>%AmGmZ|SkM|d3{tQY#UOWgq1TpD&4pt-g-TK1A!#Qtb_34jv~ zyi~3(WRx#>ree171+|C`63N! z_EUY6Z_{)Z3Oc7L)R-SDSmzBD!@#+QQ^y=oe};cpu+kgKZ}w{rc5bs@bF^pMy-G|1 z(1uBv&6a?G6x6Ik)`f5@j-Zi>SjD$l=q5dTMh2=Y%qa`AZ=D1(hHJRbDUk^ zuTs8n6WR5G9Fzsw8()xF@deqtaj8G>>c(r$GB_anJKpz%+Xvho`Y1zse-EPli%&QT zjSE0hkox3A%X;~A1!&Ic4el0+N7axloU%by&2hbIhJaJFVbx}PTIPZvX&z&h5WwbQ z1OlNo(Nb?yfg|+w6RswKwn-d?#+S_%p8OLibLT~uc-zickZGK`33bx8TIYggPGcg% zA4EV1%MY8~R+5$gQIn{D<(^1EdFq7Aixe`De!_vK-3ga7G~t9pC%Z!K{1e3#f&p2W zfVMORkgR$>Vy&p_Em@73*iu({e<{oPMS+tAE3=JR%?q@|;mqa*=P}u#$)JmvRO9xa5a>4*c0>2V$KR(I=MJrV*D+seMalym~haB2!JZ2nG-vBsh zp`H2=uoS*68%4kjvjiUDeimRR4Xad#?G+-xzlQJwk+OXSH>9muaOZ)H$nv-S*G%z{ zYr`zFk^AXhif^2DXGey4O}dAs95T!Hn;w{(hpcf$l=R<_wyL`v=|QEc=F?!t*xxTd zJX4TPZyXcq3H*wQc4&=Lv+L8+La`cLj(ECHvjgept7;igtX7>z2h6hGNNKv7p>JPe zOl*mq@ul!a(1Aen#)PDEV?xro(Ux>x7;bEL7&+*NXEOn6H*+jHNmIg&ze=dP)~Np^ z_%|ZXpl8QZ|A7$t8z9eWE2yG|@@L7os(<0QR}TyNSf+hwM@qA_IgJw5)W~{dIhl^Q z5cUc!gw6Y6A?#FLy-yWWE2bck(rmM1L|TbFVuVM>vXcSTM8F}D`2OeH0E>~=XVEk^ zx>mwer(i$E3Sof{Is8UOs6jmCf9pq7U^b@v*MhtKv)q?>&9s3?nc&b&7Ory84G!hW zS?5(^n@DvHZmzODOE4ZC@TjFcS`%bx{Z>Xx@NM~sX&gfR()x$^6sz;8jt?7Gu(g2z zUiGkD-DhSSoz*hh8W*K5mS&e`cB!>=#y;yZ#W_=2jZhv;nve9v@Qo*+Bf(?ip7Z(n29&GDl2wrxf;-*2qM@xLl~W9$4g=E>fDq9 zhuOH#a{b&Xm|Q@GI|Z+UnPEJ&qOPq=j(Ks7A}ym|tN|_6);gmC4|%4yBIwp(KBbL? zStE>8dwINy83^A_+A#zO5=cf};Uk_(1SE0hI>oAV?dfpTRg@v&u;{}L$2-db1XZTh zdP* zkr!1>`LThZ1~m4Qc=u@9$a*L>eGp!YqZQ6JXAwy9soY(a)zMloooA^Pc^Kb1BX%VS z%unSR4)|`?4eGew?m~|f`4_3Rb+ zIBY^ad;}cUTPgI=FS9ui!MM>tn=54N*(Ty%Pjv-S{FT|}ZgU-`@FIMSy-_DhY9~^> zp`>3r3jYZvJD4bXV>otm2b~Ram`0W#M=#qpm06($3-O7GU)0qBtz+m7PE+@ATYDm@ z5CM`aG;6G`U@!$KCN)k){|+|5UuiwP=I(b_GSu3*iI$&Yw7W|PBeeo5J(NOouk~0N z;YFJ^ptxpCek}8D2#g6?{6^f7FL|t@YW3$YiAX!T)?0~_wCf|OW@#zXi@i%liRMam z{tXPVPZ$o(^7sc5a$ENU*Y&C{P6rLtV*SMlZFNO!tSnCdV zWc#+m%W_2*#}hgMIk}w%Z8Y`?Z^kwY6D>|B+;V@%>TKV(-V>g(U+i|KJ5jD+jvZ!` z@KW16PD}-scYy_ztE-9`EtF+-@kA#t(0Z`b)jyVSxI3m%M!mWiQ8ycXBic5i3-bHr z{bfAHB|}~<^<*#;6&)euvv5|7Gu4fwmE51Gq~D}YStRJUPgi-PIqpd0u06w;kDntD;X)nQjef4zl*`3Ilo4<75UrJC>|SES_uZc@7<`gP>F2YHG-@({nq z_|`|X+iqmb-7RtlnUNiBk!rwNGwqf{qfhY6NJe$TZsh2Im20O0L{x1CJ5|2|=4@oA zhu?Rmz7on|r3!?<-i*q({JTT6u|DFt!MX+Yxf*}>no29rjOw<%5}HLN|)*}IYfzNQ!SZso?W)A2Sq;ocI&Hfu+?e55GoRrx z8?yvuXLvw;F9-VXH&sS|C>6U;g#8Y~ z+dM4QuJQY~>uY|snj)Y!Fa#oKq@q?0{a#BkxD`WKK&lIwY{aAyon8Gz-fnfGN+Y6Z zJ(d+?8*ugKG@vTpfQ}DbU(kZ@Q0r(5uKiRCo;f zsl(BAy2p$f_oX(%)MAM z@2tlb?C(M;a#?L)-Fz8nsZ=|rHWVk*@l_dtJdp#=6`2(OQ1g*3v?E$3erVO@XAAcX z7iNtBHrT~6*Luu;ayI1i)z4domn_uFkh+EMJRwP79_khSZu?H~P2aZV?9!EV&$m4< zTI!0x${n7|K6%AuVJneqjPq^36q23vo|X{V7SNm>=`mr)4&DZH1&!69z6=cL%aM=u zMb*P(=?NTOsV|2<(3iId^kskjczL&PrM~oipf9fu=u2;Xs=Rw?rM|S+GYgP8EA?f^ z2m12tfWB<4pCIp^S*b5imBW|r2|RJLzC7BeFAu+^FArri|2=^RFVvSUg{;S(zysIm zOY0$&4tfHcKGK(_bktOOTGrFgGxgm%xudheyqg*Eap73HujO~_p?Vb8?yJ`~&&jB) zCf;9nZfCz>_4WP%Usz%^n^l84pMPfR|zfL*9(37%n)jyb3eLCf^o$~6cX0xhSr@UsTyyUy@PMT#_wd+)& z6Dj#C-+fg&b%##Qy5n6;0RNvK1J%P4WvBbyKlNqc~nyFBIRM< zeMvgyAxXKJlm~tHiFUGCwM9}&NqN9`-}^eHRZ^}XWs~o|JvyaHQgZ73&&hbNp3(n2 zsXWP;ub#ko&Xr{*I$d*k2oDym8Xq3Kd2Ld(^oN$0pYW+O*4`jL?r=NgGf4kV0MH`T z%I)!tn}fl; zWiq4pUC(?37u42^6H;-csW*Y1>vMSGWY@XmP^FK@efJ698GJ^kiVXp&M|}4UF}l!0 zI`w0Fq!0V<`#`52(y8$|ecN|mpHAJcQ+L~W_xbMog-&JuX_KHc)C*_#37y)jQ~%XY zWet2wr?%_V2kg{ety*sec95dy^x0KkHv`Q3z^awh^USK-%)nFf^c9|-SaqWrcvPNl z;^|@hE(RWwr(&KSTy=#R*dkB!d3s4^8K_kn&I{L&DeSJ zfWL7FoNY$?$^EIl9q+rsJH4p~SOp`K*}sJ4R4wy;7hCy67dGkONFY02Gb->-oV!|g zAl0p|R3{;2HP^ZjNE$!<1SLDsh54eO43_{yPjtCL08-351&GSfH-S@(JX7UHYpP^& zoqQKL27>V zgL)dr^%QIME^9iS2@_~+4XS2Y(WMJjAL2{lCUm7jVTJ3n-U~Mlid@_9b{Efg8sl!P zR4+5OR&u492MJ*oXLYC)K6ngb{d(0lQI;Z6|zIG4}+I2CrE3z~v|Fz)w+LK2KIK4Q}x1Cd^V9lhqK-xTK z`=KOHimRjkAyQ@2`(BVxjqz=7c33~pJ+(I`&Djudj&`pTR~BOXf4c9#!j?=r4kr(z zLZV?Y00-LO!o}MZ3(b!%j?sOy2bHW2bh+ATP+$1tf;AJ{Iuh;a^lj^t)r7hk9^ziyDU36FQaeKz zkWw1{eTvLXR~{etJ@clUnW~Ru#@oQmaK>0K=hCmh;HM`k%_h)v7>v&umnV)wDK9J$ znumF!rpDvu9+|H<;Ucj>WO=0ageoghuU!%gj+YS%452Ua*jtcm%ZF~+67I;OoNxP1 zqSM*am!24|FPgr+RAK!q3I@@|E}6%XNff@VO;6fD{L`~|Ld*Qe3>yP>fU#?X^eWC7 z88bNDIi-oYl!<)iO-{M}9UpnZpPV+IUA}Gm^?cf6S(j(+KzwR;<-S7KzF;Ipd4DgW zp~ae&vG`(!E;2rHohNc#TI9O)NZUdVut-~>{9c#QdR=DZx~#}`*^%pVTCck(a^1Yv z>*m8SM2K}?DOm&$alyrkEKU+L+@&HE(S;&IkWlClPGcMuuYBG%oZn3xLx<(wvLhI3mOu3@7_OUI237 zW!IXnNHY44v*2haj%s>O*D8g9+Dgw%M_Xo_6Y6+UTVGq}g4aXiirSoQeel_j!fX#+ zV2xXNM<{h+Ae2J7q?&uLZF4Tn3!PffWjL>Gb1g1vmGl$X=h!1h%#)%+^+Iy^xCtNH z*yagbiqupbl=-%SX>M!3vwfVq!+w*;n-MS~Z9`06V|v@p^lj@hpBENy)57_8gkZs5 zx>zTk@DzKD<8{2|#X8W;PFLHRW^=qRj#k&=Hdos#t!FN7+rMe2aSU$s>Ec?OH(nug zU~4HhZS)Ec#PIc$usDR>*d1u}i4gWH zHfCmVTDX25q80S?wu5@R_-cJ*>BaTJU%6kZIu$L>Ff&oIYL(chzHRV)cbC_wA7fL{ zTAaDi>kEHVr?(S~bM3#!a$4T_ts`CVS5vnR5fZjtMrPAJ$U2s0gpy!FLj(23;M#o5 zobnhc&WIJoJHz&MaMBXP!{O4r?{Iy#1Ju|NUYZjN*UzD)7x6#e(f?}-`?mLlRd#4W zSh+)&gq1fmQ}eJU^XzNUEc26;h*l5_}%NO3lN*m30boZQa?mQoAC^*Ih}VZ2~cv^d9ld29io z?>+ma&DLvFC<>5P3OC}SS==LS5OzT^q+NW-%~LYyjI@kD%;=)aLJ4yCif41FN6HgG&fyI(W^Rv%-TVzRjD+5FV^Fd@Q|{ zd|MP1g+~Sz{cn&pSQ_nC%Ro)755nqZboNzB=qA}g#=DigIYj@gSGjpdNT9Cp;L5d2 zLxthNudca7hKIg>oxTo!!`Momcj>J4LvAYM=KJiGbg5$<2$j{!jkxXV7q%Gpd&r{0 zZ->=t-=^D0)Z2EC-nQ~ssXeUDue-?C@>iSe%73i}VtX;d74wyPqKQSyjs&w;Z0f`$ zR;c1+?mWS{R>~#>R1<@_%gkN%qH|Vu#F|Woy^8k)J^-8B6{$Mn+g^QfaNUY}|C=Fi za2Z>_57RNJCh1w{Q%=Lx_WSV1Uk-WOy6XK^1BPoWCUq*0VcT@r@USV7k*MG@ge+yp zrEDnK&SnnQN7k2}(5$*6=7#Lt4fAqOohZ&qGa67!xZSMIFkdk@Yc%Hv`nS;QU*ds> z)77*NQKx$`U~w0rk}|9dqKgG6+L?pdH^&OS@q)m{bo&tr@ph!@aJjilO=tQwL!(2vVIi!-a^XaW6NqdCBg^r-xZ&^2Nm099 zZp7&XL($E%lZ4SUa9S%TAq-iJDulw9Jo>;i&@F&F-E>RCCP}-{5p=+%WuAW~Q6+U_xm9ZOAka;PT;_Q%hjNpkjtl48Xf){OAdjF>f* zTTUF)B`Qj^nmcKAnR1Jo$3UTc8Xex^c}A->Q6^}oQnHX*E={U0O3Iw4R7Q`aJVZ~DVQY^-ux4sZcZq5|Yv#*fE3 z74%xTH&`ylP`h~9&i~8&@89uk?uYmRgnt@*k4T=Y}{MQzX zj^)wdS8oZH2ylQVS-}~3rqmrC{4$b=!6LSBGO%#MGKdvxx-r$a9Yn!2sfWc6t1+3|J*aL)A9|cqFH)BSmIyt6zaZi8(9w>EN*9Kq zoam*4a;OIed@le_aUZt_D676hX}KFzIihsQ-Eq|@X}yVBLN0Sqc39vDx~DQ45>`{9 z_!-A5AOTOzm!+E(e(53r3F{z77=S2MZa`UvwVgr>Er40H1j`o|(33DeYHOwY!LP!D z?*J5)$kmu*gCYRYX=Q&prtEKk*{CK|=e4;O&Nap}o&@L8PhShAExZ=A;p-vK!lgzk znA6GNYG76I#nF46ZQ~b%c%RCB6Bc2ldY#LB)>D`+i1(d1s`T zw4z#7=WPxAb^ekJdi9E$Dj<4E8WVz^Zep-x$SW&wU&kh0UZ6KA)13+W=CmeD)-h89 z@t$~;F^1lzfjz|{adISBnWwK$^_*YNYtHGIZhkxSqctg1Qnq|E6RGVr!hP-@V#GwW znJYhM>GLK%tUSgGW^u+p;V7cUV@>52LHopdt|D6e^y8&BU{tI?a& zgB+RxkIMUE9@~lRl{GRUY7M7mZ7sGgs3yes8p@O$r-F~bgc`Hq^jDdrrf=$n_lovc zXs*da3%t?0VNP2zJ9ie;UW20vCwj~s2IOC5v{9`=oZu`jF7Y>d*YDR+Bu7a=XSjVh z;;e^81xpQ0t;dZD`tq~sv#q@2!-+?nlC~A55{s+GJfK#>;)$*HL|2QEc(qx6ee|2@ zk!famX?bM2S^!PLOGFpw-IzR>n?+}a`AcXq>F4ex87_zxA;Q814r7X1KKk+RB1y(k z0$vaFSMy&hn1o^iQe=&dj-iH>g&DiOGC0{sh;K~TQN=}F6?>9Ut%=&uIu9!IMyecp zh*?65to+<{UjHYnT;?a$(Ro*kW-`Mz*a?UzL(@FXbUO1)XPtAM*K{Tdd7PP6s{a#k zM{mq>Ip>R3S-Q>BL6X7=ut@Z%)HiVgrO{}TovF?l&2iI6jxafF1t006wT6WjEjywDZ_3yWB=qBa)s;2s zkDRo!?t87PL=~=V00p^?E_HycXv6W$X7X)!M{f}wxh|Q_Le;H>^- zBKxsZcF1=y9ju z6##&sqe5N6qzUYf8ROKox(+Li604^uzixnx(cN~9?%=d#BYRXYWgMvmAe{R++RGk7$bQRM$~Xd<01 zaAJtu;qvb?j_2;~4+7mV{+15~#E z6utz=m{#mRWj7;*X7sp7hk-BEy*#+K|6LiTL8tG5XGhzA{%HGso367bt^ncm)!f?s z80gQJ>7y6EVEX^{UKn>Kdf=^41?~mo^Hot%&*VKXkp`>l(UaFs5IaI8BbvKx#NNkpP%zdf zPp5SWr{0`Y3_Qe?}*3&m?xv%IMq(WD*qj%#i(S=L1_zpcyq3d?k06;GOW`(Z0 zY5FkM3(>c!RH#3#&~=r4$08G*t`U7MI3_|UMgnQ{W?YXeJI(85?EQEPC0C+h!R*C3P9BJDJ8Hn z=s{9{W#>yMftBshsdC0q-?MQgu(GW>b&H+)Ok4@945gr>rzwGzJt`?9X(A6tPCZgqo*l>l{HDq-=YL|?iVV7U7t__8_@uBMX%GEj9;Vyb~DuEr!>Hb zg)M7*j0RXRuXaQUj7IwIs|3CV7c4`wX*GL$H|}ow{UrVWieSw1|BH%XSAt%k2o}uy zn^nPT`xgS{v@Y0f5LW-SE|~SYKt!N&AqT?$W4d6P&vQ|?>ED+SCfvavvniCUT!nari;-&iq`z(ngx0M(`I+oLJMf|LKXN{-;3- z#)}VX@*cKbifD{$huHWO1iWIJ8@Ee=J2YySg5*)XCs@(|+U;59G;>$fj?mnPVN0X8 zpa4ay4&2#`*HEDbKs8U8_keAO{v@Gx$B8v6EI8};66hd_on{>nM_}lTbEFk}!uNQ* zzLsC|#c*d%bn#tQO86^Y?$cmD|78chG1@C3*$bR&OF~yQ7esjuUD8~D!XsYtn+v`z z*GbI`I>F zN+oCQ;42Pm$_~-0w9M zk5k#HrbYAdDFgHPVG1(H&*$-Yzf(*|hs+dHczl-;R!iLZ?Z!7x#5nZWJaXWFCL@2~ z_1zKUZA?Z+&E6W8VP<6^)^QrC4YzZzBLLLKTW6*eWEztij$<~~aF`$MK&`g6VMr1N zC7}}OCk(g}4;d$PCrR6!*gv zCM+0hcp2ML+rM8qP731^AcWG#ZC`q5+hZA~zRw7-na7Ep#hvg4;p{4`L-dC%Kn0ldbAI#5J&fer_7)($%yKvAYKIebrO z;+nMZ^NLDfkHfi<7!F%mB}_|bDsDpacwt`K(9tiHh7r%9Tg71gZgj9Jsy{nccMRYF zZ-8*e@X(}P*V91SHM3!egqSg4J0H?p9h=oL-h{%90}dHna%j&+qvOMt*L*GA0@nBA zvcllC>(I68N}C$C3324@5>!UbvJ;ngJtpgQOM*&Ii&N=Pr2XQduUdkv%m8eJrm0AJ zf(CpMk)+w(FMfL})fRZDI&$?d3#lpp1V)wDqYfB3EAu|QctVArHHRB`S4mBnv?S?V zBKQ?u>}<%;G&M=Si^t47>k`UoRS33r)U&yq zasq5nSrEXMMQUl}@@&5Lcosk6T~z%$#s-k91fLtsKUiLkfKL7BQj!M2#Id>*AK#nF zVqJ&@0aCEef-^(jXrZTw?K4f;xGjM1Q)BL%G*>Kdy89$*oEa8~La^BF5%k{Pt z5$AU@Jn;-kC2c9zF-iQ1tll!*E72$nPB21-R>_DVNnZ@&G>fy z!f~NXU@u`47E02+(>;r#ain`zGNx-WcS-*m;I&<$g9`iS35i>l1`CDuy2CR8#WXce z;mI+pZK^|A&?^rV<>Y0e^Bb9YNYl*d`zJn30 zEKZcd?bt6O4qD#-7r61^MWtfuiVKYPF8uRe0ndCR)1bYSVKG`mNx@d@x?l;*$sx8_ zN#Q+Ee2?Em!Ti|cQl7Opmz>q=e92!c9BX@%q4$i!W&Ue$P>!{^t;~gsLe9nJ?&v)u zw#s{o-A9EJZX8CE8N|Iq{dw|vR_qC5e7SlfLk=3No*iV}XudMGAbeX$<))7pg|3v| zUM%J8m3|ex#=#oZ4qhSrn0BL--4b-5Ix35DNJ+>F_7X*oh-$7z43{L2mq2dHmH6>{mf7amCre(x1@?i0}p(Z?%<|ai;(TLb+a& zc90aiTq@QP5@VN3MM`*Hv|W9?HQ|H0e;m*-nAYIEiPz~5^ZJg%jE3L|l{qroe1x^7 z=E=s9I8q5@0T{p#ed=TtbODbm8e_O!iYI_8;Nd_GGHoQ%^Wli0%o6M0E;UTm=)taP z^GYxTllWYJ&j0xJ-LLNv2Lf702u}!`+Q^C4KB@vZrp1Y&e|XhRW{N*B6#8?1Ck)Kj zd$D1dj_@$y5N&|(#A}vn9cCt;UGv|1{gwRA*L(c{wdDim@*_r)KX5$sQ=$_f-wGVJ z{uQ=iXhOAG2_j?{ucaP`2+;X0_t+O?-gSr!@a?uE>!(ab*H4*Y?blbvDq40dak?Ky zC<(|`{2wk?4>8W_KJtz|uQZEMuu|586QA401bt{moOsra6!9flC-|;@R3`5LrUJ3c zpWqg2eLJaJCkcR#=ojiaosgpwG~9lI1o*p=%OwrzuLxsoK~Vg+C#jVhZv#oQ-)JmM zEteJL$fYUR30es6>S#6cxr ze-(U0y~1LyO|(KE+!YOJG%s2fQ?r@stSEy$=Icp17!L^FgUjj}(FyhbOPTsk7tCPm1N6&$+sEbFOjbnF zO&jn?bw=E$W<9=zx{JL8Jw+6YG6pA6u_t~UH6NKnpW?bE7eu%()c*d0T7d-Zzy(zn?%GZlqPiS(Wq`VUOx#KBjY^<;Ovueu!rFXM2E(K z`B46ER;U7VtftH3E7>9OO<>D2+1LYnrC}ltJzbQ^UIPeaBFa>AUmK}K9;A1)iC1F|X zx;QZ#WUIgX;Mfy$CQ@ws#2lr1^Dkddi-g+!n~u)1^w_290;$IaNI*TU7cm#T2=Qt; zPBa3O(ad2x;5d^AY3uYv>}awt@-Y%a`l7+bofGy$T?tFx-HS$xkIht2?xBWu38Hg+ zjAR>sDA1*YfMHSH(t)019A3xEl`s2WO1%xJ;*f4Ult3Ot+bDKrwK{{AY01K5br{kqE{8sYqSpTCI-fs?uWqgJ=oqF z_yDx@ZgJ~zlvP9|aT=Q{k^Ver2cbYl1g5fm;>*l`%qUcEiL6AN`}e6m-1ZcDAD|TZ zcsuLP32)1kxV?8K9nv>&A71tM;@=8R4(u#zKm#SS>}`o0U^8bfpmxj4M&ar5MKRo2SBB%>Rf4b zSs$?(KI@W|0g?*8B^7f0F=j3{%DY3PS!k2h!^K1UjAo)8ktXu#CwYZ@`UUNl2B}f= zI&c49aU5}Dv>JZ=uGKSr+xDLDRM~E7(rgbk953mX+qbO)iL`Z{+4L0k1)ZX@B){H@ z>T7h?W)Yhk^A_kUmA1iLy4{)9l@(?;79oxC9jz)|A5FVVgmZ&Hw^hKMmVf6(k*7|#Aw9oDcw~JWT^YVk_k3+_4 z1+u`9dMhGc^>4CNp}!<4k~f9~0FO!Ikjg>7G+PmXHHNxg77v-^QNM$1p~cBNZemGx zh1)Z_)Sg6Axt)|Qm`AJZy&F*3u#xxgV~uQsBJKT$wOBe3`$ej% zUi0Z1OG`mQ#AOWV7ctqJPYL=JN~utJY}N$ZPW@L*#iGQglzi&DBcD0|aiJRzy(-Oz z7@5N6CY+&|Al4gg-SEz5w-lx^El?&B3?EBctJav2GcAlzD+|E}^6Ss5J zlEm#rN&IXI+7_z&v1R0w$VD@OF}{nbL_`i#;8R{MZ;YV`& zKY`i0J=N0B%yKn{dUQ9%Pkkt4eSM_0W%`?;FDDxME_{o4L#LL<+jW6%#bVux`H9A6 z=z@kXk;x;OtOM~zz6cIVBPYfi*-Z>#zqIO$2K0W!4qr5&Ki2O)HK13FwsXvYZY1lN z0bOaA95bMGq*QA+hNA;I#cu0YfIO!Ss2)tci|nzi$&bZ{^FZ#{;k;+ea1Qf^e$*$1 z^V?HKhqER=oNtk*MjaDyWGzYz=gYdF;Y(zCj_1+gT#5TAhVw(^_PahCW;1BjJ~i6iC!A+jCP!KL;7-*WhTLuy4^^m%a^Sa?57llXCw7W4?9`yAZ*%Nlsw*#vCQ1zZcz@e)}z zHWjUFq02HMKqL|x!P8K%5iH^a*HJ8jf$)Zh53S9E%$Z(nWvC%|w=B5qYV{5)M!3yW zkpU-aE!VY%4pMg7c4YMtGf)*a{OT7EOAWR4Zb9M0g9U5cZbGwF5w%qLp4sJr(M4q) z{T?Xhr5KiJ!=XX+NbmU<3zzUjSa}=nhjF+9PcGLWScL@uV{ATt^MiS}L`!0A-lkLa zNbF7(8%eF1rPiOANZ}JtX*yK^aaFdjsbhiV8t!QITJGUOu=tnm=1FFu9{g{SzcYCp8jW6_OV;G z5C_16Oa6WN2bm@Eer%+Y|H6$);ZwJ-nvHja+sV8ko;jFD_WXl4yE+*zf8#y_q6-H$ z6qqRm#;-b)0^=!AMuA(lNcMep=KO=MU9G;>6)5nEcRl-5z;y$-o8Bz;f{t!*mb1r$ z&Kj)3K(ethbHJ)apWW;$DATYVW?Z=O_*_Wq+}`|l`29cRhP^>W%+ihJaEH<=@^{*K zI^sFpd)yu6>WRx_+HidzN@Al}=-x{y?QmXV7O<((@vzTALykJqMqxLl=f7t5w8S>L z%+7H8xPn01+L>lq&S!S=a-4nZoh-+wY~=Y>*&+6P7OjZU&T^VwAT4)y!Rx{&w_sv$ z+3}BH9t+Q(Yb1BO=SEjMF*=(gaifxp%|MRcE#uiO_wJV6k|R+ZMmI__&f2rX15S63 zdjOJ(reWLOmD}wOq%{=o1@NOpiA@X33%8U;eRQd7ejp>{?oJMvRaw}yHO?&MfXaLV4oZf4{l6Ib{|9f>wFO&PfGWaQ!F>DhL~XL}2WkBOv4Pq_P}J>>-X z9XsU`C_rX9`$ic}7J{7R3~7bC8^!dz(Fsm=SkvsxOfcUD)wQRVc&zc|Ct^jc+2jzc z5t!SUe(n6K%uojQY4SkLYy42a7JXc(;Eb-u%<6>hxL0}n2 z!}XueCLC{uJV*m42c2-`@f-iYz_GMV2{m>*^9tSCEG4$#4hbtG8D5eM0Zh%(M`n7< zt1{Et<27Fyoor{3{^UIuoP<-8=`cM0o<@L0jr}Dt-G}{OQy9!ESJC@rLb4>Ba>6nU z+Ed3P(35~;YkLxoe0ma6A#|`R&>mwobNk3#m@&QwJ4?YsSYpw6XL6K@pRx4ZPT4_a z)WxARgxy@VD!OEJ2HXyd=^ZEy4-T!*rK#r^1O^+&wNYvuo2%7ENeE zw{vb0;teribzUc^Lv@XBTVp1HwuGe}KIwGFq8>lY-}XLddbC)~0phL8HHQ3up3%O< z-R16y+3#zoE5S~-suh3-<#r{v7#QO`7J#P5D9 zUP~NdkVUAMpzp<3%xaI|Gs*U;1y-Xxs0fJ%UElUWw9;bUGuwyTtt$0{Qo+-V$zl(q zm(e?TzhVtp3l@oYRbv{;-)L)GR8Z_$fBr^KLGr4Zcse*sn_DdfxH;!NbVL|e0 z&{T;Oo3LZiF+FWx%Qv8*^dE{;>##>>oYWteBBk$+DxWQ85B_deuyZ*San5(G zbHi-^f%WI)w+j>Zd+l`2TTv54<7!A{z@%e^ut+D8+rP}SY9iV&u$QH5p~ngcvl5@u z(2BM*fw7f<0NAzchIgiG3H6COCI@k3s`Mf{l%$ zFHGN(AZ+6j%f}w1e09(bGsj5L9*M1Fe|KYw+5Nb@5gn3Q@JoY^$3>>A9z-*jtsj^0 z8o5DFb>wo%sD?Ph6S=;AdM=UBqw|sOJmej-I16!;_(}9n%aQFO@=3(Iu8b4hjV#$O67J0vVc_y4P zFEg8eLRTJ}m#m)PQ9sn0p5$e7n;#->o)oOkTEq7-+T(WGopG#9g)SEZP%RRXW-F4AM6G=7Ie$xTb=G+Bn((_K8LIjkHZ%#OvoZe052z&(d(ONi@9IIjpxEfJHK+Iby*NmkvgWUcmC z?}ktPJ=LkRDfM$FFB7~7*oTg`&je*@TmB(c{a&hK8moy^v{{CZc1$c+cTr{dNAe8+ zquYa@ZO)lh?}&DW23a5!_E`iBh)unf5jbtfQD4oATbb1{5zN1GhGsTo#*!Q`Zo)cz zdGoM%qtOw}$HSsJR~jQnll_r91K!Lesf9td*X5Y?Z(c6dhzQt@a{dtcMxvbSFN}?H zt{XkJzWAEfj`nVU3{29&2#9rIVLHLJ*88-VstSQejYH0Ow5J3nDd#sIP75B&e{I>x z6aGNjs(HSj5|1&?R(X<@U?*qT4$ zTs9#u5)77aohe+i-Rf7#fB;<2c_SOrA{)~CH_?~;SkqMw;~X*+Y)CUEXm>Fmkq_7s z#PD7pBi3s*HNjZ5K;8^>6A~C3eossAkZ!|aM6G(3U(;dD<9zZHLoH1_H#}nd}axTgsm$HAN+LrdpR6^H9JwG6z69N~r50yL2S=xjo|K1^;yV6Y;PzWyghNj9tlBAr5jo-3V}Q zRIh>0GIX>RckxHi&5LBrC+46VR+H3bJTIb`JUXt%%g5!**YRZ#0Es)1K*YcHZUPY} zDu;J8mW`0`xx37sqLY2#L;l`1$-%T`Xdx5fW`)yzK;rpb4&J5(6|vA{Fg}UYchyLn z1Zm5CFY37p*j8Dt&K-GiCAd3$Md6b%f%qFh@3>lhm3VLXKd2=b&JquPU`~dYcsw<# zT*APiTXl=IDL;lEWIQ47cqh@|<|7XQPe+xCwE7ar8amOD?>zxR>)#WajZ45wLem%C z8k(|jLC9B8qdwrQl(;5PtiLyPwl-&L%hP0ExB&M6B~H-}xKWVy8gg{qq4v4k&#j)q4bJD(R z?Dm-h^L3pla6c#c)frG%3|s$~WVuHrH)7aaXU8C+Kkniw^2h`FcZ>dgQ2#!pe;?+z z^^r&URbsqM17&2mNC7UQT*bkLFodNi?UXi31x@oWHYT-|I#FJ@u<6vrM$-IcE)5{o%bA|r0s0yBw3VxAg?d|1{5FbzYG54l0e14`pZc)Er(x~q7x|66 zGIfjV;7Y8>|IIDxp*w7eC=|yj^Gd>og(jm2`8YX&0<}D&=ZeP6ccp0J9M%v>ANUfw z3@12{NIygv0Er_}v23Zt5l~)<$Maj1;$Ut5La2~}a&IV2eF>e!{MQ&W=i+#1oiWZC z1bk|BJgCPB_<&KF^5yR03`ZOZprJ?Aei_C_Tx6ltNSHlN3k~xi=7`E5nXPgB!foUX zw6!^PqjcGa?XuNT&(-A;&sSytt;Ol9>f(q-xy>7K%905mI*vw^oND6L1_wa}8$3E* z#? z@1vKTtdDc4w2#(v1s&jMoutu$C@&xgTbjA*%zk&4dlZVOeh(z~sK~+41|z*%!&nlYFOKtp%u=TDuZZ zp*14aoUh1!L(!z63jBTFU1SJ|-uw*VaU}HSg(^-U>!3BTF-|i@8?mpuLJHZ7?|CsU zsxXsLTQ4ldk7Id7>~aqXvDyUR(@fUB0xI;&q%#B>^4cq}?~vE5#h0>0DH{7WTP>O- ziEgNsbEJ9S#cNb8wd3u}L#*+|rFe_8zlDNOeBsfNxleEwhUSRcVOCg8uqh;Mr1{uQ zdxa)=tlYj_Z(mCFB>^x17a;vld>7brZaR$>IG)>lB%9$K zJ=Rf^232p~;1OWx+axGlv_--G(LULxuA>ja+4+Qy<{x}fYBRf9HzkQKUm+n}kGHk_ zk<8Jk{C2lUGO<{F+bSeJn>E4TvwA|eojbeG-?`>bC^~C@!tYe#Bj)FHlMO@7KH&)M=!otCSutF>7=y0{37Bl_55eI@v#Wx>ri z=e|L8k?$R*j@<6xhdiU6%!B!yB*ljZ56491@bZCZQMNUaD&%=QAHXfLt8=t^YMdK zJnbqs*OX$zckD?ll%JDybMV-c;cSP3agFLKSaxkKT#6ZL(f$Nq3-(31a#JTr(YL6i z>6@r1C8-zQBV`HLL@66MZz){DCF#xUv?du^*(*y`9~p#=61TDYQhKDQlx~dG#3+a^ z!Rqu#wCs~0&V7kcD+*>vd+{P7Dpq2b!nX^-nB=3dCzfQGj>jdkA=`GPG@u6@0jFN( z?{5)h=TZT2N59H!K}jFxytY4fzv#M!CKjx{J~Yl;E5>ktZ=v_5GSLpL6_R^xsbpWC z=FbnE&)c}RU^3c*n)ek-!A3;)CO@LH4#biZ&=La9Vf_SiqC|aNpD{P;Qo~X3?$iF7 z7G(&$F&6eDiBgDwy`Ch2kAoq(6F@q!n$8@5i{nFbuz!MoRb9*&ki9!eO5Em@g7A?`ui$q<=xFF)iB8Vacw$GjKRhEToVaf;e8lVx`P+)b!}_JZ zZIb|o{=T*6MC;CQzt#M)0GHL1+wLDUTQDWT zGv(Fl2hz88v4F6F%;h(aRXR+#iu!vFH}Ie->MQ#a+<}Mo$gZ}8>=Rc}8R9C+CkXEH zknTCC$ra$BVn*`xojL`@_Hk;at{~wjYKlC~5p8{4Wt zbOzhXGB#bGeg-BH5{(T@a^MnNg3b1eOt_9AW*>R|Nz`O9C@9*^gQ?g$TF7`kmyF3)SGF1lDQH!ixAOXy3B^5t?3 z*qC*}qKDq#K5Nmx!|Po0hebb^%Y}<%Cxm7%(h`pS-(DNzGvpamg z<3{*Tquv0e-L15H6qCUI0wz&?!2%RbIVv7#B*VcEoc^3-C7wSeb*hm8`c(YBLW)VaDHI3j1wHL~qoi4Hj(*!CRx2lhN{4swye{UZRNE zH5x4xd`OJlW{hx7(^vac#okdasI^%0$Ka!TZ7&pqIL-_(NOpXwtNfaNA6gz67rhm+SPEIBrcO5xeKPN zeg;XuStp4r6Rw#b7mqCv=D;A<56EuSkl8(wfofBjJM9pm+j=*#Cn{@@i#JL0 z-CJxcRt&VwUHN_C_s@BKm;X%-2P%+mqt$0!E6h@upGxBC31c#JmSzJ?#h<=jY1$sP zn|JrSfoEsvqc50^O(qtZukW!9W$yPQz>>%jx(U?{TV$XgkRQ1VW-3u}j59bxlYlYi z?%>CX2+;U8ITz0-@rWDMDvO3_m1G#;i9B^M1`88RgNAmgd58S8GRncTm1|7(K3#pH zpp}dUB~vsS&!f7bS4!$S9+u+gs4o3Q)(Mk6`LyD?Sl#m2xeH~QMW9gK&?m)p9nVPd zY_;jXFFtRy_u8taGnI}S083WBK9#Z8p~e#JrvYAqk;KlOKU%{wsi9nc_DKyB zm3vGBr~!oqs-Yi=N-Q4Y&rB*+#skBAA1^=%n{kB zWYp6jX1d1t)i20Sfjt9pdR0uqlH0o>e4axKwxj~%P~BEcb4NcBoB9w9ZE1g8^lQcb zcl4FM3!f`5Mht>&(7;9vRhTEuvw=<%%~#?h`#M;PH{9*jK8?gX(#7~pJTKfm6y89X z=_xw*1WZ^)^4Es{2%`&aALAXgSx?h874V6AVd!jFPvYrY%8eRrQO<98jl(z|AJwh) zKAuKP6T42$66nR*5So748kRks#P*3hdjOYj6)>pC_J}Cx&1Mod&!DCrFV0ied9CbQ@+y7d7-sTiyUMwA*r)uvhHS6fwM3 zPl#r1Mq(8)_F;T?gPDvwpxBjodtg9y3$HY5yygw~h=`*3+W1l=(2F@>q^b|&Jg{TD z6h#AXL$JNX|9(P?eyGEpQz47o`tje=)&rP45Nev19Q^CD zftktrERFA)xF_bC{1eqG|9ecK_S2h+`vPDpTJ~0+40(;J=NnpVca~X_Ms=xFH?>Ax z&$r9f>zBzqG7xSpO53llrKT0ycN!Kxo291s$*8@{ZjgZ7>1rXUTdlvlHoDR&>Js^) zf@XtWd2It;b<@XK8^zno@*<`KszB>O?A-$~r`fuRksf(y8vF3T=tDJBPU)Pw=6eRS zp@pH-Cvo;u-W9&*xKRETLy6~(bkw1YH)2~+uy&~HWp5-tF0sx;xpK2GJLu|Niw2>a zLU)+O>v^gRv%hN1&AL79Q29Jg!MX^lCALjUsC^KJ$hS5(*~Jq%l1FoFg_BTQ8(Xtp z9YsGjUhD&IrI_wcdnh0k7n+;5P|I8)M9bAnqD;H_LGE8{;wQJKT>VTZiQHM99@n)= z1?nMgIcQ_sbpO6bQf)AKS@Z{wawn{j4Re||+JkhKn5E+^fzSEM)ooHmzN+OyV**3r zjSSp0vqVb?B@aeq3+1J}>+*zqM4N;Pjjh!xN78NNP4EY;jTM^Kd}^=@vpbx{7Q*9c z-bw=svD)S{8x!!H;Rcq^Y#!D*&oDPjrY(?}6RXu^#;RKF{Ef6HF+-oKnWdkox%Bj! zSx5A3^+2q2bS;e=yOwxp;#>B@;$d_xjr*dtH2za-X?*zfwFGpGNlQ6>lz_{BtFliY z^>g&wqU)|VCul1oZ8{lBHm?NsFGAk3m;I$-Y3%Y=U}=q7M7x-Rv3_XANmEf3!RahV zkw^VO%6uNH==EBd2XDxe!MR7j*zqJIn@F#iWDO2r~ z41ZEuJjHFNWcriR<0(g9(WSEdNg45!_w1Bxe^O>V6&=T4U%$t@6qeR zDog_fI)1TT#N$sI5->qZmYw4DCpqGkjJH$r{7G}-DTBLo$LINzE{dmoASsCtahPZz z6kWL4N=2ZyQ(kfg`cE21KQkA7%ta9HVkavvTAUT63ETDU{2*SLp3%1ra{HLvZWd?} zbd@W77XW)6ns4NJYA`u1gy%JF5oG)?Ixa-Lsu_6JoOi-!`QZ4<@O_edz;+8r)kDHiGc_o$r{Uo z6#iqh?6A7x9zfypES#z*n*n7mgGoqii9mJ@88X1bI98&bm#NQzCdgHPl(uHV6c#as zsPVb6z8Q>`di@<@%pSUXk;8*0mnrJbud%9+vt7>aNq+TJs9+#_D-A-)g2Zt>$?v?w zvD@u6yLntBuC}Vxo6G2iaXe03ihyGGA1FbDy&SUb3{As?0DcD8npQ9~2ibhYCP5>E zhSWBRx4-dl^AfJ-d!ly`!{C3j_bp&iRqNk-F2HbekBNr&QP3#VOsu1gCMct5Vkiny z-cTSQ1cDiFNrD5#u$!`Tv{RYo=~#cu>Uhq{L=$B|xo9b9DI;QNW}C(o%>b3;`@L)L z8Nlq+^ZozN^L@|reFJN+wb%7s?^^p^YrX4T?|MqwcKhd47Y|PQesQy$CT|=;L4=qn z3Z3R1fVrkqw;##aL#*5Z)GIB4n& zWcnjAD(q2kd=7?C@68VaX@D%?lUDsrDN-q>=xw9q|w(nBVoSZk+|$sdjTE*eyfQO>tTZGDGH@3bYfhmV$nbaoA$}g|@enzd-nGO9}1jipzhX zlC?rb$Z_fEfh&)H7v~PQwaV&u9}^Lb8`yt(&8(`?U#*$yO3D%oFA12L5a_QO;F*CyD4Pw5Y@#o0EjN7YuJm#w(fW$b<{bg&7J z>BpOVBOnzIK=frfR~*W0#pHtHeEv6>lcCQF3-<|QUl(S+-p-d)SWI=6$VQ{*fx!SM zxXs~qKnF)LJuEqGBnNf|L*soo)fjo^geV+4k=S_RqBq842+1l}@RVKT86o`jwiBYK zp)sVT(r^Jup-{KOGVfEq@P1aL#_H2=GL)rQ{We(Dg;?mAOL6m)Xx&Uv^^xr>-5~GI z_^mj3YKQ8z$l^)^C=bojno;~?R7Ts0D?%CFgnJ^SMSKyB0Jrxw;jDKX>2o`E;-Wd{ zE0x96oQ2O-qy(YuCq#m@8I9Lrs*9c@<}IbB`vOf@2NBsasHdZCz#Eo@po9l4rY}Gt z+#vhA;sKVxT&^(Jbbxf;L^4%duWRNb;L9NzrK2R+UOQOOvNATy$K27eGRnFwkU)-# z2H&{VoA$#yOpUnNO5BU|`jc7ruY~%!ODjMVuA9rz!Ag<4DyI(lnCE?gnjVC{7Q+`fvAKcN+CsVU!Pdlf95OVN!dBI) z+60wwtk*T+c1VlfmhEP)RP<^IwpmmpSZMeHsm;rqK{CEDl|rzaaxc|atPIU^8=q60 zJs!o3!juW87SU7{YV>k1>k6#Rt#j0>S?#?_RYxo{+RZg!-_qX6dE|f!nde=HQp&Ha zVYGjWIzXv3DSj5_eX1%Ka@x!%0VgyCiZjg1Yt+*rW`GWYK7oFKzG-Q}hYfO%ef==O zrdMU(YmHW0{nq2!H0g$66dkHpWnHs)12|vv1Oc?)Z0oRin|{K$A)J&60UetPInHPT zqeFR@GBIE596WJRvZY`ZHlcA!%Tlln4r>A3mVm|NE2DvC_7YMLcITA134=|Z6$NPs z#Skb(ixO)QE3R-0`LbCh?msMO!8u$E0vaycEp_C48rK9Xl|lEtLe_#60|6In0qMny z5-V}iN;n!)Djm)R3H7#_Mu1WXM{z)uj^f&kKCLV+8eRddZw%n%ZH*BAU!vw5k74;9 zC5B_7Lu=4yrLrt>IR2`@#gKUT)58Z3)7<1zq;mKq7n9|dyb~62{B}{z#drS6C^$(D z-Rgz29LMlT-rg4JpMop_Us`K(9gxrIb#Zqx&*HOGz&LddVke zaRRU4Q@o3B0E4qRvJxTxpOUiOT zjgyd))!59UVb$Efq%y2NSFy=I!M^%DLC=-1N0Yu{IDx0dz zQjm`~*|gOOGzPKr54av^7*eKna~z|!^%)*_1R;wZlyeKX1hVmlemu(gg9Z1 zduG&vg1iExdRVEtQcVLkQ4KM)SgGt2=LIXZlXsaV-%4;|;9=QD(5T8<{|ULA0s;qz zk{C*GyD6(bh=UjCR0$>hX@|gSAl07KF-Qn7zsH)=g^ndy-&wXSz%wQaBB{WU=neiE zq2@3;fVJr8A80@7RN~czzivOODYYNr@_)Adl0Yr~bNdm7y0jl5`oGx^1JP1vk$Q*x1zENbSZrb%C7%9< zwS^2Gz`a-{h^>ilwn=JzNrMliX$az(G6l`1+@ zuIOWTRumJ7t`!Zbwlxh_mHtLO56Sf$`=9H%dd6Mq2^o1t?VKczK44%J;L2oRwK|%E99Sv_O}gRp-LS-9~aaW zT>M6%^2Md>l5<}-)+I5$-|tlveSx2X|i^xsk% zkdJKM@)9eogXQ9QqszD=0n`QIGC+sVFo1Bybt*>V@r=6iFP>)gqH>{Mrcud&m9b$d zp_1iVSvFC=Xgjl%4Y1IUh7&@RgakQNQ$G*{{VhH}0JdCPKEDrMI%`a12BKN4=B?XG zoV8{S)Os3fT|#l7fdt29PlKRz*8HAsHE$|G;N9V%V-$J@wRIO^ga31Bmb;Z<*0PHR zHtZbs6RcD%Y51~Q2@s2w2%KY(WfKjZQV$YXHd1G>utAR4I+gbImlG0JUuJV^cprB!mU;+ z!|L--2_PzbGz#~DihDY}FJ-{;gp9(}kmCx>nhBC#$B86Trj8@h1P)30d^1&np>>-6 zCSO2TAWGeW^(cu5P=RuHLPvV^wETgf9aakLV-J>Qn9R)=^h9e2(#MZpz%Ia6Ti0SP zY$=c^f(g2aFoD2na=8aOCWVyB1gMLzwO}KnbQWxb{0s(Z?EV&j7$XS775gZO9nd9e z(@cmz>dX0jrfH9L6zYzl@HM|jvAcJCu)_<2NW@O*pcWDIZ1qZOS(_5;6Y} z<&%(0gOLkiG^EOeCcds4<-5t~0Z~3SdJ*L#2T?w1Mw#+adPe!k0o*alN8wJ&M`@gt zkK%N&Tx81kp8={lB{#TC`6w&?#e>vi*{t*~l#fbAkD-DrY&MGyYmu^XQohbI5s|u0 z(=Q+cMETqq%aPU`KH$ahqykD>El? zqk>FZ?jUXi$!`!h3c4F{BmZv1?OTGK;gb=!p9!6;`~8}@5$e%b7JkjTTv0h)cmh#N zG$Vb}!4i>XZoc3FM&Q^t4!R;zEGL0;e)u25lSt4J3S<*eB0(j1>q>%HH*%67dJzgJ zgI|-Ne9DGFPM=aV$PdMqKc!Sw8#a^Z?AzTwa8xWG^016}HVs8W7yV?NJ(Y9tEII2* zj4%IsQ}zz!p$f3jG&tuEF~-f_$yR(XtiR4i}?n=@mkhG z6f7r|W_S`T(rj7Sw2Fc!tA$N#S-GpUd6?gHtXrv}9TbyNRfD~W2z?oDTpU;2A)jLs#>_uSX zN~z?ImEENg7zVqJvglKzkF!42bT4(qQV6Os^hPxG!n=Aj6#o<|Bt$pSA%HHKQET1V z!@h;MD>~>MEqW8&F>2ABKtUzrfN218@G)#Z?8+r-H3#;I;dVCqY#7`}k68-Z>#dEhfam6cH$QlDFr zhEQ(tBBQU9gLx2JVI<%#l+zi~xxuu#hHBDJJiirN=Hi?oBxvyfp0XSZL=8yZo=KJU z$z8306L+3Cyy^U&l9rjJDwm>RsI>COSrbXh6dQifksAOyP=kFY^G)^2ekeKb20-Fg zxb67`mb9gZdz_)SOqMdjaUL*JnIN8zFp1CKMlHTjO9B%0#%E$7!zAM5E66WtQiQxx z8+K)~I}7PBE&^G`Ir28SpkVVY#fp$T2nQ>;$8o!SWSdR&08U0V~je^mWA)sMMLlRO&F< zkyLH6CI)g78Dr7GNNP_b?%Ic5MRI0PeS@3z^h}A3F-}rOquzlbNH`Vc$Q_c(=Uo_H%JI*meC{N5L zh&m-AVsS!6@E`ynEH#X|+~Mj^XGVHZ?!^aC{pKM!a771P+;IrjwTq7)2IVj&Us3ya z5+ElT568HI>Q#YyUs5QOJpczs&rPz4?$1<1(@p^?GvPlA*94gxAx0zCzw1mSYTu@h zR+iHsZCI(}QbWa_fD|HE^|(z4f?JR?6n=6%Zhe7+vTS{`F$|FFgy!hvtvuK*(;B11 z^)zxk(bkdsv~Qbbuyx%y%i=E(P&o}d|6X1d)4uYuEIwJd__V$Pdwiz0#nIx(4^cr< z5g_+r5?sLc_^@c}+f)iJhk__z4_T>+xpEvdBV3CSTR%W5h}1(+Mw=W&4gUNXu%FTU zbvQ0GL{y?;sh)HoWZV|i;Lh8Z%Gu#8XnuKPFY=+|SGSq|9cZI~TBo&x$B!)`Oqm`M ze+1?&YW4=A=SNq}bzVO&)nI#21rQ=j; zregj4!$ z6UFKHy6Kw8fRNJQW{7D)i5GN#DIjwO^*y*F^Jj-DDz&Af_g0dcmU1x9L{f;8_7O`! z)TAyYz5}OOM_((xGN+iG)b)Cc>!m=^>Wc4}f-ZQU+yw{!x(l|T2SUt{bUvXMPL|V0 zy3&j5H={h#W7WAmF3G>ZbGmIHo#kv1*VP z?L-7uw6@}g0}cP;XNaOd%D-?Q7KB#6KUp?4BOTi0nx#OE$oi`*AB>9W6lpdegf!Xn zUP6Tw3<+8mO<*~zTJ={~)LKfeQx>(jd_*5?6TWfAl=gdze6-d%3Sk#zUNpI*FuV^+ zE1c0m6!%+!Ra?qTV2B7lCNPL3&;jU+OOUW>HHdeuC>-JcQ7L6_oiI8!#!_+#B|D|H zg2C%?R&ORS$*+rmPN~n(dO5;Rf3j?)PC?RkhD(p8FxeF(QPZfC;Dhqo|C7><~ zELRycmZy|m$1aA=BlrdmlDzy0VH0^s7@97{vFsv!cbfzm~ygk6-at9+?m!ja%Qi@@UA%lLJrKZ<(&=kzj=3^3ua)JKDlqM=!D*4x%jlsXws zkNXQ&`ra+!)_lu8s}GQi9Zm9)za>UQ^jEXPCGyhLhCMC)H6&wX!eT7Q$6AJxVPBCY zV;>*-fG-ZUvcydXkVJAyiLk*e#pMfEP!RGEUSfI3WxPzjOe+_LcaS&I-tI@*t_DM1 zXE07k8iPdLW{hxsXoQP-4Y4cO><5JIA|_dw(tLy19ym}9LjD~jq11(a9bW|7X{4*g z5o@TS=~<-iRY*FJjAuv|;i^OD@;E}$xmOf8u^|cPUc|_!EL4J}@=r>Mqmn+UQ5E5e z4sO1q5M_uP-vlf}n=*g}2KK_H$Ka$xK=S+;Q)FDhMl?d{g}Z;vWeR?WI?!_G1OjoHC6qJ>RTe`aDS-?ki3h9)D2-F{aJG2x5D^VX9<~v8aXH34RjEttkk5Yt z9!}B2=1|Nv=`_rsN)M;#p)UkBaefh=o|PU<^srJRw2}zfy+}#ohg2NhryD57NkvgP zH-TtO&E%FN9mXVMFaC5Gxz%BS?7Nr59Si1Zp$XieqZA*}Kv?&@htS$YJdcoSNbNyP zZh$N8ZaJ-_XvJ~Ls_yTqhcQQA2HD96sRATBnb|2jIddzDWU`Y_xnw61V-^D~8bXn6 zPT*ot06P6x3V|G_X-HI5bPPZU6x$CH*mOD*rzK;=D<^5T+3M&g9p7@;={&<}@?>2$ zq$Q*thrL*&a%TK!JtjulEMA#~UTzA)age*72a6KV{z45HcxTU% zFQ5^hD@A{;2JdO3O|VH*Mb@c%i&OsU>bR@^j67&2ghKH#JS<&yunoheJPjk6Nqm~# z)JXl_K}{Ti@(171IySDa(IYg>+~&6SXCddK;G4L7fe6iRN@4gEQg`OkQP_tte9C{u@%wY5AOs(Z z!(hP%NW~RH#^#klV8W9i-7UfNX_0$j_(XBqRQ-*$(7#@c!%)3&)3>Oy&507*LQoN0 zMu%&Fa`p))1n3P^@1k{-sK=Txa@L-(s? z;Y*=WfX-^z2rQRIiAE+ZPP_?hI1&(s8kM2gF%M%3zrTL46{m=p9h3e~|yoi*)Hjqw#=e1INiRjT zHFDc*RE#dae5<4PcJ@v3`3=;zILUW7IC3k_AyVrWgWDk(s>U0(@#`xPoSSpZ%QOKO z%0(wx4BM@SZBR&JHEi#m4;@xA=WJ8(>;D2*$5c%RGQt168tNMJKH}GBfGRsyqZco`7nPWzwlj*-%`z=~t@x0nG1JPRr(>`=wxyxdq5{RCsD}fGj3ZE0i#stRt|wT00Uh0MjRB?^ z1B@Hks`9uX&HUJMKcp1=5BjijNH-VwyoPptTlOS=_uy!81Nck0@ul1pWS**4ns0fT zdZ+q66)moE`fE{h)ZbjG)aSHk9qEJsi~|?DMLw<;BYuKo2Q&gK5pJ6=PO^2lKXVp5 z1;+TuUF#pjWX3LKv^Tx*+qwv zXTtm78g1punU&3#7mge+cixn)>75{|Jzk- zW>s^TTvZyz?ruX&0_nd-YZ$?_ODuM#)bYPgB|os#juY8l*&deXKzp~-yl z_T4K=fn6&~1*4)b-nF7Jew`Kdr;0xKr@OQvjy5~nFh*`cd{5}oQXBeVxrstlhd~3a zQWNeFZt81!^Feeftl1|o{ zG>1-}hwsX2r9Lp*YNe#XHfZ}0Y*7fKAxLz9F9#rqCKZT?hAuxlq#n%32zAozs)|3$8#Yy!Nf|g%D6_H&SbEmF>l^N|91Y)0r zu0l^vrpZhV=92^kW()l>%vOX3D$GlCoXi*}E^ZT1JjkLIz5!dBKk#NN;pHqCenJI? zaE#wLg5YBODZo<8h!HJ-BMyozEIAjjdk+94ww^Gru_as?q%hsf$^+Lt)St?sqAd|R z$Gun!NK<`iN`gP=KV2j1x{B9}imr4#0;q+Y3o)XBiYZ54QEa|H8;5IHMqR2PPI{4u zKdG|1lL^jfocYpd`lQ%pjh4vkjE~1=v)DYP*#VZF58w)sDS?V;EFdjYbWz0Zj{>`& zaq-T*;LN>gI}JjW&^n8`)os#(j_H#;kYh~3)ka0(%KLGx(*&haJwbsQ*jj7AVSg6` zKu8OrMQ7|0ovMt%>6{zrK-gS>cGfdDQNuVakVA1d5v+jQRTC8ai=^@lC$_BEBsJl7 z#aW0&(}(7!{{n_E=E))0T8VF=AV0^q(E2Nn8qoBcyH*2g`UJn<03C0}hq1=Sz2~BW zFZclIyC&ZSE&y7=v8}781^bkarmjB!1^^g-W@`McIbVSq#?VDGG`M0_(grQ@(g17n zl*b>;RZL&u`22hCy@$;Spg0+a=h6K~q`Jl7mg9Tn4HeckfO*T~x~4ZV{e+zV$|Ax? z(@S`RI0&i~c}f1LTf!AVp%6GSwB?TLXB;4BF#z?U#gLt0eB*eky zlAHJli`;oP8;&%BX@FdjejK!I<16h9gpweH;A~_SLTIB!52b~!^ZxBzlvs=}nXP7U zGlaVy$N7CQjnLz)GBFTTq-Lda*DX=j6F}*5kq!f?DVSFIINB814pMb^Fm4XUv_1-l zoy6zl7@p#LK3Fb;V}abN%gqxLa1xI*jxk@-@SiMzHoovc^|0J^Smoyq#vsevCj=%5 z>cAv(i=)kK~YTF+LE^F;pzX^2yO(ih4+jx}V~Fs6-r0 zjX76YHHg`zEU_A8J?X>;P7C*=8vbFNK$jX4IJlqq=YhZ^KB)H+)B<)DOj{D4T{AX` zf4(${pX-*(0&dnM@h1*{z|(FeU>>%{7;7`jzROR^G@PV&J0vHAg}TyepJVE zfqO4uX#+NZWp1F4@RhmD4-O5C+JZKi4%qS4vgl3-emabj>yr2~oBKrCJY73%;u!Ey z*6k!1q5#7+em;P671Q9h0iGzWY+xoF?ua&!q9F>p16ezFbGtwRYD8ky!L?8LY3`X0Rz^XlKC6pEX#of(^6qt5ms*9UYTOy_<^(ir9cE z+vPqX9eFnhC&mG=fe|P{tAe7aZyY^8=W>BKuhh_|9B!Y7!Yx$np-M^E26717sI7$U z1Jn=>p95SdVfz5pRX9n*JD^wC&MSqZQ~{hBh8tj;FOK#m5nykdtx@F-i9w*)8<&{6 zPzLT5ME;IEy!1@<}rk(|$frnoKje7;1K-XUOE;FA~sY=Zk)!w*A5}1~u z?!+|%8UQ!-v57qb4hNKB6HJAfgWPrKUV+$D4`?dJ*!9y6yQ$Hh*ocv9*d&m~C~*sM z+9u|%g+@wn40F^_edo)6valW0H}702cJpR46;5$N4Ypa&PeO%3gMm@+TH&beygTNp zl8d@Akmp@%JKw{*jJku9$b*#~i)CkfLry!tdtN(kxhw;6(a+2mHNs)(W`hz{Tih67{_1IePQzQ_np)R29 z1}QKFwx~w@5h#gE_275c0As)#Lz)oTn0KB~2COtdv9X;-s43(EIsG=EhQQ zKz0G(+b;WK;VK-(w{uQ`1YG}WD)Agjl*+53ugX;(dvle?-lXy_>b$F3&o1uYV!o*K zJ}S4^qP2Zk<*_kxjui^_MAw>Q5^L6RbjlE;zT9Qua{2jm7kP1Y>L3@R4qX*%e1BT( z0*8KR5>$)!eBAcyFd~N>59yeUy@NmPS-J;Ygq%8vZ$*M51!aXv7$%{y_^_%`30k`PtGGt&nlzMx9Qvkw>$^#oGl$zAL zm5zRJH&1AUTjl5hciV(!zJSC?cdOBrKC6T-yTY6+C(aign}H$%Y8=Cgo>vQfiYkj{ zxsOmzQ1UO*neE&gV885#RWKm-fv+?1hej5B-|!n09}zoP3Hi|nG_6QM5#1l!P+JqB?cER%W4@X z_%KeG=T5*p__}kJ zBd!M$u%sG5d@%6!aiNU(KD^j!!swm^!ca{rj5w}y_`_5KG?5LwF&NZiTWlJm(!0FH zrZ&3y()ik9Q<4ikx5cI)7lv{+H*2-gwbF=OA=DmV^Ndr*!TOWNKKc`wVVpAc@|9*7 zzS0cCm(y_^9c5814miB%DNJ7Ith7I~l}K>d)YF&C<+z3A<|>GY`GzvL+?GBu82;+d zhqO!`|1b@<{7dVR92IJZL~U*C0fJ=vB;)-UIs#5&%-gQU7=Bo@T|<_7yOu2Fb{&8{ z37zOl?^7VEZDDmeN;C>8qvmM_Kw~-iHO-V#kCe ze4inuEw)L}g}mDqfH6@`n8W-*Lx_ZpcPhO~*3BakT)8+piC+ULkqaTt>`?^qkA==(z{uImCxS} z{KtqBP-Yy>PVCFuQHgeH5x``=sIXm>ka$!=;!z2SN0n# z4XE-yrmy1jKZW0HaVoel*rK^E2BLxD;!un0VCw(jS^#{cyIW1zY9Qd$U24KUdIxMpa0K_t6i4b580`T&{p?+-12DnH{4MYHdHLF=Z3V=(BOhH;Y+b=a-};khMgA zVCzr|V4s}I7@?M}!sOn6(ingipcd+*KZRB}NtmS-DKLwcB+R01h1$IHz%x2OA|tlR z-Mi9(Pjm4i%2~~t7ieLGvp&9xNu+mlsipU!zHHp6m zYjq-V9G2Z;67Pq#e)iW`^dI_?e0;aErF2m5osvCJ3x)*zhm}h257#hzt}Tg=L1yzC zk?f0es$# zUyz)CktRiXO>|GZ>hLxGfvW(n#dgk1W!r8|| zt4GenQ0SctziaG0Xk;UUIqqlpf7mR+{~h81n)&TWQ-yfQM@qLr%Bu!(Ta)W5cUnWFSAMMZ2d6)=@ad@taWxDMcJ$k;_(UmYvHtO{5;WFxRwMv&&8MR_-FqpmB{ zq;{Z~PJ~N{W{54j#+TJl$}&o6^k{I4Kz8MOo2ZLFfuy}D@-==DpuER76z;v$x(>AB zJ-(w^P@HY=7Z{qG?!{!nY*PT&C>E0IcxFGE#K%@6b@g7FF+dF%Dls$A#jzoW##}}g zW7=#46A%@|{T2hLg7C!?6$YOOVaH@NSg=eP0$$bEqJvT2X*q@s8VG zKbmF`C(SWH4wS78a`>1Z?LVBYW;bit#k01Sf_S7-7}a>W+ENy3Qrds<`q8MgH#Qvu zEflBXGxCOp#W6qP3QeQ3A3xBxg5jEg)8@}Hbs})FFBNy1TUW;PSdMY>@lE?a)xIQ`(+X#c9)=X<{=eH z0Y4(3$=>MruA#1JGSb581-Rzl34+4JJ0b0smAc7?rE&&JK&lA1e>nZh?WOi}^&|JA zmS^pE)@&03+dE4u+C&(&SJ$0$`Pt9en<TOhU{F8{X0)UfyOqu)r?SD^lsFOaQ)GNudWf8&nF+D#Y1xjN7&aw%6svUCOBph&? zi>y?ansYTbYHUTeK>ifJAL?(^L_JTd>dfWZs5!F*Z%N8D?#cNb0sjMq+N-5f?cd43 zz~f^E#&SDf|{f+zMMWW>q6lsn@#2*@pG-)Cpp zQh9ev54}b75pxa?*>Tq9EONu$;_K|yck{k88wIjq^^rK_xh1TSb#fsJuj+EhMoJ&D zAK;Zf53g#YronAE-p^L!V<3{yrFVVt1@+xC=kTdF+M9`z*nerTmkXd>7*_H9nGdf^ z0)2D0rvNH*M7!{61=#M1p6VB@dK2fX^1mp zf0nWN=0Kx|_#De!T-aGigIgL90L%enz~Z?x0~g?(s6a8kEH1n9jPF`_I1V(pCEO8l zt}`Mq%&mC)jIWU*zDCCsXg+cf+zYTJAwAVhin0vX9iA@lhJ|fVZwEex5a|aV2NaxP zZHQ|JQ9u3_I@-(Ue}SjDt;f1VV^pd#F4%_4+p)=bzgcuM_GUYcoA4z<-&`R; zZ=y@Rz-)5960ZpEdu=1>^J%wlh22$em|EUJw6j@$v@AYM$nsdTqH0BGPGWyt7tfaB;3$5wIx zq6^!}f!&1*cR&j8e-Bcy8D@)Hmy^uk5X5$b18R_d!b;c7ey6_3#an!mru5X2-;!uFdO2?Rn(7+w3p?~d$I+>9klKowKvm87pSO%%VzJToE==hc)e zeQ-y}Kqo-~WO?L=LpF~h5~H7p3Eku22*r_i3oLKQmSR3T^>DV1G4;jtd zBvmTk?<`jr#{f2lZgnTtjJQEj%bs#Hz-?W1;)dYY`n6ST>8eVr&Su8lB_lrU>e}FUT9oM>4qIV zqj%o8fn-DSfW!sLg+$Rjj3qQDY7S5`2evg2K&K$Nf5j(er%4#|jz3^!wV>1@2?!Vz8%DDzZKslt`*olE?M3#`Y8;fCdI4Un^2!;?=B zs^?bJ)1juUQAUHmbQoB^Bof!|bh{+75FmEhx|#yn_iUe7ez(SAT}z*uyFBAi7^hmu2d*nSG?x|3Dn5tPk8#nOb{)mq;{xUwfX`1jjjy7v?W6g~| zxLWGQK=7jyOK;7%jqltW$J|AywEH6-GLY>6D0;me@iPH@v~> zc|Z2JhBe^ESMw!*4Ch*O5}FH4(c+^)KC$9;kQp3SarnoId*Q592eSExcpPGANGI)q z5mui3!G#sjd3lN&7*ZW3?Opz4zBst0Tx0ahkJRGEc5xrl$C)p-Ha&nZQz#EGXn`Ir z?jQKO6mYAlCj#>AeEyrLW{W|q;qy1Zg&9g7VqoeQ=M?^!D+z!6NfQ3(2jP#UAYS&% zXZqs9bbB5B7oY8OGaV5wUwR)Q1v$oa^<6Va_8rvC7n3FW+#RxQZ*1rbf!U@E^vafU zC7+)}4uckVRFdX-4E7L6wp~#-Z~-@f&?abprY|m>7al|~jtpQXKtzd1xG)cjs(tdx zIP6F^%sXShoOhG-W9C5Z=Gp4drk_ydv+NTOGx=hV66v`LLx;lQN!QPeDTVZ+U^qVp zd)j=3;WkcUYq5X;%l~|_svV-JH93<>?R1%tbB5GwAH)6y!i}Cd`=^+K1d7@#Erv#g zCFhLMGmn@%xp3AlZ^SogsTnU=%MjT`Z~0|$OS#tA6R6hViW;4`Qu4k+>KPZ|goIOD z01eZfR|rbOuLxwLClBa4gTd|JQ=|z@>;WuoODz%7lm<$;!Ozy>_CkZ^z$*ywoR6I% zT-QtQf5E#sLX9mWZ1j-_C^dPoy(Q-HvgE-wnV1JUF2%qSk9P5W1b6I2wbq1$X|TER zP#A_~jo_{-m3=f$pITA&Q9FIG9U^-v$qRzS8tA`eUIFFs5f4B+iBQv0roe?v7@Md2 zXj{tEaMRq(N7GWKak|wlWw=&C@>jN$Vf=;Lb3Q799-i}c<{TYo96=c@(VfFMWT&NseLk%vJ?AgM z6ZbZlmn=b$#;&r@kHRDg`G)D(aG1gbtG!3pa2wylr2wUQeLb)`k8s5>4~uMiS!Po!OoYyuAsagZ0|!SxDV^V2hX-ZAh4>X_f~qxTFr5JNFPA~sVsA&2j$V1 zlG8%g)Ne>1M<2mGpiJ7p@|2vwIdrc8SBs1u_OK{>e}`K`SX4uQ*WH4sBY3kIZcA^& zUWv;SFdkHLL-A?g;NQ3GWe9s=1RS3sgm-Wh)#s1~vnk_!q2{)MYp>E$P8vT=L1OjK z7*Vhv{uZnT1BMwN41wxHK8O!d6@0^AgI0sF0cHd)R7N{UOc0U?0wV-xMV&d}K&xN~ zgwO;wEX8c(3VuM8I1oYx(jbS+NXF6Ng+bQ2Orml3GEMtpXiDeVfODH{S{0ilo7F<`u zal;sZF{#l~YD~JmbZL8G30XYBmK0D18BtRR>L?9eG;hMP5Z#e!M`x2bX_kW-juOhD zac2^3tzwe1yBgASs7Vq)8pMi&kTBElZsc3-5XU;V!J3C~#AWSCb98D>A1ScW8isn2 zI}bP7qF1mx(p}qs#9spfLXMLVX~YCo6~8;okKY~VZZ7p#*>JqKKkbia`si6kxv5S;}xdCLf8bAEpJ?u0bjyBdq@*t()b8} zlLy<^kj~Od3FRm7iL2!lkQ1$R{|J*FqgN`}0KrIyxgHj+Wso@Na#D?ss(rU`_O2cd02z zz)l`XvqLS|Rh+3057fYJ7Rp-_;15YYvQ@Q?X>enr3y!!C#i?zot*`x|w$8iSbiMT_ zp&7CK5Cgk@tru0bSv~ZKw^EbE>k)T_=d54^^q(8(hdYDe0hdqf>DD^)X zDgX)o3{`c2(I1)kA-1;GQEO+Yst2loTErT_Q04DJm7k0%t%NFnAZP$X6+>F&YL8!G z>j{(7Z{ecFRMp%Yq1nB2Z|Jh!`S;3BG?oiBA*H#v3-dhq8zINbyM}*UbK-|`p)BM$ zg^P0dZ0pQGO)w;Nc$KYxwYM#<=|l8Nm#>G@cO!fWuT9`5bVablhf%HtXG2}@6F8p< z6dY`ZK!LrqegfNr;CG`4e(zPj|M4X3EKkZB4C%K=;2ad1Js_#oo|I>MEEEgEx)WkZ zSuoVFk(+o7D{*z;YF}(p;ADk6c~+O#4J^h-RtL?gf+P*-~nill4-Rnr5GJmriOUItzq6^rq9d`M|)B^71t z&40%05A)&3#;BVnd72ymsSNog@sBQ>)*Nb`Ilh^nY%~3c42n_vjsOT7Tqy-SoDAJ> zG0wwCXLfK1pdAIda0vX(cJktA*X2`Ou8hS|j%F7ernyde-{wi%^Nf=|P~!^+Eu|TM zb@>N$2+a7v2O3P>;7RKOcxo|!#v3gg@TSw^tw%8}Do{IG7+|_Yl7AaE;5*Y;C;JF9 zE`?Ny-u1UTiWBC5$21BmOS=SKK;Y%m2n>&=t(NYA*AZAtf&LVD9m<%xq-;jurxf@p z1)l02*oeTtQeYzm?(G&>M58^zS0Y@P(GJ&gR~Z`+6Ak-+?{7tll50y-au;EyCMvnP zFv&1$U3u%%nLAY!|a7Q33Cyq4aPlL$@PO70W%IJ0%kr;GE6Sa%P?=lRKOgE zISbPQqei{_VS-?4P`7c(JV*ZV80IYK1>-*Bg}OeZ7S*m6ABXplL_+z%$qPD z!5oCCfjJ9v38n=`^9;&@84fc6W)93!m`s@UFfYTr3-d3SgD^*7PQzS;X@l_sY&w`n zV4`4BVb;LB1hW-pCk*`>6M#41y${SyxFY~B{i0qWg4g-e^;KwhrYW?Ig2LsG+r+e^ z-&AOu5!M+KE_#c?qDHxa9?kS99fn745FQ*RXv)&@^oj|Rvhi^|HavlcZVr--#zWco z3_X_P5tWX|5_)Je@W`cyHWQD~6^L9zk46Cx9lmaYnd2~nJhr}!N6jnr`YImH z^Z<(S_y7<2w{%(7>P+LPgtRotW6IQNk<;dcjB)x*kBXQX6&5vpRQSx96eE3EiZh5M zh&Iff$HL_tq9bO;QgmmAF@`zO)1R2-dJhYaL2zgO(GiB3Gdo|ojI>18TYi4k;oc_I z%=H(a-M(gTd3;vWBay?tJ=*htO~VDBQ~5v68MryzEIem&A>0^l6c-K`1Ct9|_N*x- zD=~Ub?97a1&lpxMOEYDstVrbMB&H?CXaCxtDx+JC{s2Snef0R>{HZgQ+69r2_&|En z6vwjpmqLp!iqYea{>=ja=N_RD;6{(t78fgMDZfzIlzt{`nu5)j!|5OkUbzI=7)QA@*c9Ign|j?U z*hCf9%66{opD(``%JxgLy#Y4W<1P7pD{RVVoBY0Awm*{ncgpssvRw=t%WrO<{9Y>C z2W7hoHo^0S{9Yr!eiE{$ya z$o^W{_LFUY*wh|@vOO9$;d2~p!b>=8KiCW8_hi^O(ZQ{SJplGwum{54C%>PO-`nN) z0iP?h0SFI;-4FHx*gDv`um{853VS&0DmnZDY##5|VH5mqu-#yD`y_uYY|3veZ0bJ~ zU=#ciuzSFs51Yy{!Y24O!Uj3#_Q4K>eL;TrDN$&H@jebV#h(jX2YVIlp|IbAjS+yW zg8cyO>#*ravv$AKk9Dwn;(aV^>YvVj87lkFg-!7@VH3XcVG}&tVE643-`U@s{mI$h z&VJzRPYZxgYL8N+?+ttL;-w%n2?QeC%MucorNPdO&t4YKDDC3K*~SF8>1FX^V{!@w z;AQdRr1)&3)4d{bnK2_vjz;;UIbRkpPK;lgLh-X#rX(2`Kg9Bp++&zK)0p+hScGRK zW*f6omKiCoDLp~aq1kUM80P4~cSHj|S2_TNfMChO6xW^tt+fCq@EDXtI4S{)T zA;)E8CT7J0CW=22aR~RpXsD4GiHTc6ZASfNvleDJ60L>f0fYy`jD&d*2Io`(%S6C3ksA*8T9`#JOI9Qqfb=r5>tXvmz8KVWu>#`SYn9amdu$ucY0^rxmsIpOZolo8B%|yzA7O;k(}I; zjOFPmI_ewQDb(UiI*}pu`YsLktFWgQb_qq=zIju}imh#y}ib$N0@6 zTycIE7^>s1aP}Ya?e@JIld}@z6P%x|lm6(24%H!B7d=8xSRB7HJ_TgXlPIU|iKVHa*g8x(iAGZ3lKAwD^wrBVOxZfLM`Cs+K0)%ofN?^1K%rd#6VGLG zDWIOqxokXF!krF#8JEFjafxsx!DlI4Su8w_dkB7#;ke&Ro6W68Zp*;k9?3~5$G|n3 zz~-J|d8Xr;#^%rD*F8V-!2$_pYFc(!8rp?FSWaoNn$pfoeG-Cd*9a0)f&#<{84pT>>;@Q$Afe;PQEj*`JBHA)W^ z1$(f3JP^l&Vo?Ib!8_GP38#h(z2fK2xoenVMZ(*|L*wD$0Skuml_FAlayg$Y?f=9h z2(4{Gd!}(1VDSq|H>IV)iAt8zJcxb+;ikDc{a)+hw!-bK$ID&ZSPHxRH*|5o+Qt3n zE^gwLIrAa@o6}7!IH%hOWz+o86NdV|v$rQ=6_>!^=eQ{uSq9LjsH}`-iP_nRh#!{K zY<+?CG_$b|)?yi~#hRNLESR-eFKe+X)?!i2;$YdW#adg7rM4DJYb{pRS}dYje5|Nh z9Lk&WAe)nItkk7EVQ0#2>ce#Mn))#rssq`CPk$KdOujHQ_occ~H=(*xy~!p&vT5x^ zVbmthFv^$Gl1+1L%9j8lKbp(ZJe3Uj4}l?n+O(nfF!_Co{2m3H(#(adAz=$xHV6MY(6_~%nP<$Ghyb! zEPzRXNrN%MtcA&kc?o7C%v&%Y!IZ*$0YmZYU@pKk!*Eqt6T$?-jDwj8GZ$t7OeW0h zFdxB0o6@;RP}RAh*Rfa=%uP0NQ?pXI=y)TCu!Q*49ECF*ak9yQc_Tv%on?A6>1lsUtc#)X-l=AsibxhJqNnU%4E3r}1| z@i8}FO=+^21NkEDvSipupF({V>Dl0dJOCa1O;4M$G3X;NW8(6qiPUeAX9l^DuhWb2 zce%qN@vXx|Mn0I3@Zf5ePXc};bdmV!$gvtfE+XR5<;x$HC{Hw~Dvdvp7?sJMi+2Jf z7S9Cso(v!00bfoE>}ZUnG#8Q5CE$$}Bd70tm-5L*9#RY`KN^!e{pMoyHnGv)8OvEt z=etxM#p?8%fjkM;smN_9>`1&5e!}pTlTGgg)eO0AWD}0VU_T8z8tI50JOS!Vb(w{_ zuYes6|7EbH{7o!Z%10_E3#q9bXMM>{^ABgaDXa{sOxBdF{4_bfRJIAVrxKko7*XPK zc@E@+C&TqF!PPZ}6UOd-VW=_vqGUS~_JhDz0-meo^68EKMt~YpIQ{8dJ`_ue8No$x zj{>IUcxK~|eu=>LNNyhR_Wyr6V6FRK5a;~s?tk~U2#kFH=`SB6&z*nW$Ba(d-i_5uVnv$Qd?R1!9x|5 zRn>=&eDUScV>PwMPki&VJK)?)JWmD{n*Y>=pmtXHb_xktk*MGpkL4$Qeh6V%<8-8EV z{SO3>7&+>}(GQIY8T;@fe;PObQ9ag;lS1Q{f@zoZbaG1SGil4yGcupe$~Kx-tX#Ev z%~J~?>#*dv!=GE5^ZdI1)Aj#9UH*R?|6!A-gd3(#ilf8a9wfxrI&3aH3){VD$7&q=|^Ua#o1XHDf&(v!GZVY9e&%%@=oMdNWlvc`K*HXh_A|LL>B z$;tdv(i50FF?jUo(eRs({1RX?Vb;Q=VvaTvGcQ^vu3_AvDVX08PbdTakF#~7oS-|n4qt*R)ZlP*GsTphiQaqhUv~{ z`ZdpsX0bHuGh#Nq9JZ5t^+)+$#4}6ll8(4uV^ELZD>n`GUxrv|NWX@`kiusC&hjar zhyGjn(7ZJpc@lI~!>&0~OG&@qgOg_P1Szc(Xs(=$_e8*(fH!B3gsVSNXG%}2mUPVe zyQU>*eh&`fFJ`l}Nr1YD!vSSY}Fg z*sSR3j4$Wpt&u%*N@RRyG}{LR_gUgeF@M@JOq>Ol{oIV1Q>KR_i1Dq$GBcwx(o&YK z2B%wQOwLWrTAq@Qy~T|5$V6ju2C)OUUNDr;Z`meLTK2o(J(u`k;PfpUxv26P;veD{ z`ooXLsWoqnc!zjlT>Q^_b{yEYp#19n%fP$EFJad&W8DrOe=+ILH+t*S7;wnIz9Dhr zh{;P&DGWp3ym$D0PrQSep~_7jHcL$4fd9IA=;`HE*=Lr2?8ssxlkI52eeW(i?7!{G zu;*&O%)Ii=GlL)dVasA-XkvRJ{dW16sXqIX#ta@0O*V!nhqWDlHfBay`DyUyw6BcX zu9@<$57+h^@^a|WqMy8v9?ZYb+p)HMC^kA_a$tHju{^Mu{tVi z(2cKaH{SpGmro_VHcJ0)ea_9qkD|}6-2AR?XY`E&6+4D)d_3}7HJ3NC{MPlFp>v{w z_}xEU>lNF}Z}OR(h2u}Y(KoJbz_>qiC;k5Y!k(4yt%<+A`<~Qza5FFT9B6&IJVrNo z5S?2B(}rWzuXecrGC<<-9ge$(qx^62}* zKYinJSl(ylhn4fM&Q7+!J8VUc_1RhIK?%1mnxDMJe;m89=dN5XY1jR_W5*Aj%2__? zy#bNCzdW0{<@Cg`KD%cfu6g$LUKdVncr^5h^OJVm$XFRU{Ng{nsF!IUnzzIA_!toUMNkT_qT;9|FTTDC-7MV&W3Yg1MZt~Z+h$}OD}zB8G5DR*1Mlw zxN`2^Yb8k`xrLwp>9G;T2VOn?|&Uz~gEAGPy-+^(Ckxh?juJG^dxqImB85i?RY9T;@~fPoe3<`=W?#?3?X5=b;78kgMtt}2%gf@l-yiv_m~v|PV_6qIec{6m zPYoR(@|MYC&Eu~&O&huLM*5rIhkExp*!E{1ZS&%5J=4mEO%`rcZ+X=_`yXpN+zLic z*_mPr9yuaE_I>S@!8Kgyn#%8%7K^Ecb=vP<|FY`PJd1YTXK^)O?Y}kuq4mY8zJ{5q z@zs%iKjIDzK3_U>_1|)<^|d4a+0-_4`Jy*1ii%b5?D=l>EY-#f(xjIA zThmty(lT-`Z2sP^zwx(>r7LHT6)MEI;Is43PB=EdW9rb}Yh$;^nZ6$${q)NJ#ol)S zM0Ip+-(402L`A`dZB>k@l%*-ymaZru0*W=dzyd2}kzE9h1+d0Mqp^4FSYnAK)`(pr zDwf2q*flW`Th!S8=iJ%r?&6|(-}igJ_xu0omQt{Z-TcKu?+;%_vU ztZvQ!qgzsyMKxFbvSrJkRcHEWrtS;TZ>ZiL)`$oB$b?A0CfSz4&wpX4;Sq1mM9ZQl!>BF2hKhNIV zwdBa@q|z6K>yp|X{ccmwBdL`aESSOV?cBG+#2>pnZG9ms{NAO(2OHOaX_Xh;WzhN6 z=Z1$}x17IxUKTf@{jJ(mHs|;4S=&dFA2So`*z9dR{?(cs`xfiFzxJK=TeF(7R$-N^ znk{bE{;kuF*AudP1uopS>{bWOzQ-ZMXUA#3sn)perFC1Ex_)mTxq8wX-(Lf~X3ko5 z?V9NAnJ1@n#X}3)pmfo^`H_#lyL{OByAD2W!VhUmlG1*)D4f^*#bdJrORh&1v~6m8 zZk1+i(2ff=PMXyjpE0j3zH}V*{q2ZXwJW);2>RuA#^e$Cw`yl6yn1$KaEBoU_ucGAB!)fpbbYk#$>b{4>{QdkG=9#TYdiG_^ZEqZc`+e zP2WAY*ly6zdneI>Rdj&ez1G7HEo@QiskJ=x$;lPVvzIpgaan%fCB<%;w%((H7W}x) zZeL-9N7&KtJQwcT@pkPHkH%rH9>?uEZl3x!qxFS;JIBtl4|wBH9P;9d&z;lbE2(Oq z5<9$ow58*^HQV>A|FEq8BU?oMR`2u6yO90Dxx=~ZgJ-+l{n;wMd*+q8h3iB5wEX47 zWpT^5S3*uqaKX&;64Nd%1Z9 zG?aX0e|yhcyVvi`s|}4$dei#n#37N_x5v@LJ;jD32W!#kqU+`*?KCwm$z2yMy|LhX z#f{7HEq6&in?CR748_c5H}`GNs%+obxk00WgY32~X?OZd&4@<>ubunpP^)Vyi#Fr8 zIsR@jE%CSX(7NhNlcr_mYd>#2H~pad4^vtn3~)L!dFVRFt5u1A3I2QMPWX9_bKnJs zySYnTJN%i_VQ6T6;HtYryWDxxWNyYUr4LX3WPWbhq}{1p!p%*WBbKLI7A{^G{EhZV z%;eXxhqT3K_iqbGkG~LG+;@xj{kL|hitYy-F724HWkJNF#gTVkULHIuzEZ12ZdVsH zq53%d&i3c+d$!5G>9h1$hi(f`=Q%HYzD#@g<^EZB>ksm|HDK-hubx!;>%oMd*Y54p z@kH_Zu^IA43(lmu+_R}OqPBXv>htT)lM_1oE}l`nw3=71_O&-p|Fd)R-LanycfI&k zR>73qc6M7YxlHMNGHs;fmgAgAzD_Z^&^bqZ%*Z4qZtZ5?NU-;l7Vev+$H zy_Bm|<1tss&Rk?^S4U)7(?w)iD^O%rtGCFic818R&IFNlodS_{-R&Z4hchDUdVh#2 z*Rv8=uHQ^txdF`|q|n{Nie=lJ;|j)!IKO~uT<*--SU;bcb3e^(N4lqbQ`)H$cBid6 zkap=Tob)pq2KVl=v!7)^S^!@FY2M@Ru``smKoYGwK&V-q6iCm8oq$$A8Ib7l0n#&5 zKOpIcoq_ahH4;eT(hEqs=RhD9I4&7T&s;Nrq@LvfNiWR>+5;y5>CEC3AU)Ha4Wwt; z1;Dz%LLg}<8-R3XavPAI5f=eTA3XwW2rL28nbGq=DXML5*bCSUm;n3?m;r1K91d&&oB(VIoDOUSEC4zK*8*LD2Y_zC5+MB)&t;$& z@E*_`_!QV0$UT6Z0BwLiz&b!*pd+v?PzG!VY!B=R>;;XwKg%LzaS;B;U+;98&v6XPzR74Qhq8h93H11tqP z03QI`0VQQfkBQPAXa$r4t%1%!2cQqI9WW9ol0vS4R=`xCH86+bfnzA%5p+;Iuz=!$ zYbhSMjpCg^55)t|QarGf!ks}6g#%wuI8gEk;WCU*pcSw_&>HAO;a(V@6b|&Ga9|jP z`+#5M2PTleJ@`d_;BfN$fnVeYPA3ckorIl1Ct(=qB#gv31xkivoB|zyr9gHv0q6Aj zlLs8EW(tlj!8YAl_f$O|Ry4ZEKFpA2RI>e~>M&i0EFIa4=t_hoimqg&WJsqqIK;Aa zWWS?}?BaBh9h|OoUAgHxe}>MVp-WFzSh~p0MHks&>C))zI~s1V&Od}lveeQ=7FW8+ zc1V{BEuxFgdD5kM-yTL+Du40c> z)>^ufb@}NG9$hKA^eMXXG_Z!!m8C0JtE)dlS5A_y9bQo~){Y9IdY;6D~NN zLTfYGAL%|A_skO6iGQX+^5BA#Dzu)HOwfH4?ny3O5DGEHeHQLJ<0J=@4+^KcNJi*B z2KOWvE_h->>C@3`bWb_}$%hM`s!%w|2+>UClbpEVj?$2<&^?t;@zNk#% z13iZzep2})XD+Cf^cRvfx~KM%yiu7%C&`=(QjqRLaz}L1$r_S9y6=O(Ven~neND0` z^cTsa3sMuE6z_u6{;|>@=km!-xiX8q3_~&`dPg+9t0X_ObGWh zF7)?I#)wWDA3}H<-xmV?)Q{|5W004|4e^cg#`83HLQirS71WPxEU>X8Pe(8byr%*z5>cRKTO%H|S(o<7!Qe}3$;HZ$I{HV5*utkH3u+F)28 zqmQ*gs5_G9l2CUT-&3saXr2yMcbKj|k^xo+tGknKY!c5HkJ)?@pra!V>zObDggS!w zK4o=;^F1%r!R7+0gY`SBBak2StbL3QdVWdsh(G=s_Ytd)^?*=cI8O`XTPWXJR&FF8 z&dLqvdw}uHbh$K&n6wDx#_)a1%4IUk$_?V%WLTDQAEfc4%9zG(kX)JvsqI~K_teIo zJiQvsD&%85C)D3t*A~_%G!_MZ(Hu{CD8@Js8;Pu*0KOjtUeKJwo~Ez$5T41)c>S2bKcY0v`a60$%{X1xj9tY)Ekpd;`qPzJmJ zY!5sH49B*aMggx@!P^ z;GYQ$0>%I%fwO=U5N`+U2md7CY?Rv?m<<0&;1tB$1GVt?q_C7sbP08+aCe()Ny^zV^UU_{Rbt09OKE0EYl2@9-W8a2xW~ z1=_;jm*U}X0;~^z0?-NgBhUx9AJ`eV0oV(;4VVl(2Fw8-1{NW|18@TT{eZN$zX_ZU z|32Va;BMdn;0oYn;2hu)h$KPDE!xLx&|1jV^`2B!*E?_$mSO~ul z&A>>{ZvgBC{{Y|=4c#Ep5_K-yP&gNG{Q(HqrF)Yui-E~Oo1Jj zpl8PMbg*z{?Go;ZCU(#0WA`e)ZgxM2?*n$9Zct7JF9$4~S!&olow5?jWHQ9Uhw**S z^fu}tO2ha_GRyAc(F*;&VYog$othKUuy=!4UivG9C-FRG;mLfTvHLXa{e?8?JWp9T zvoHzw#CPFdUvCC46D*u|h(ekygYY3bzR@02sk^8BIpq@U8Y;f+%r?X36h7A3pz zf9am+XYZRa`-_5?2WIzSmPE2^x`3P1Mz#lMa?I}OFSB*JV24Qa3$v{x@%&--krZC8 zn4N;rBiI+1kMfXBD}`?}v!kT&^9{2bF-s-0Co$_KvneonWp*HDon-b8Rw~;yF)Jb2 z4yg?^zS$0pM!ayJ#`iI^_t0O#4#zCD%+|pAjNQ{;N<+IcAr0|}jR$7GVRbPZ9<%f^ z8(tjWMt09Ezry~V&STOg_?h(U{TVz*1^XYf7Bl-FvlufQ5385i2blb^dqyX_r@ypc zBHIcQ3BaBr+ z&e;B!#v+YO;rRynNrLr$%E!_s^YycPI$0}(YxuFo!nOQ7&g`bFeN+}*sp=$m8M`(3 zTSlrjt}?l&gxv|qeEPrirE3#ct`J6_@}v)Q3&@8TU1H?}ZShI_ckjLl5D@XX2pIJq za~4I~1)Y)i+Ek;F`@=>ZjLT)E(qAE*p`L!@aKR@FWOo9V>GGG267dmwe0gHlA^R`A z{W|2eNU)k_S=3{U_n_RP&5BNY&%7)i^jiLWPMwj9*3|Oz-k5#)@vz5xEd5>gqz>!D z+9y;;ZK4*@h1OkOd2ajI#K9Y@`0*j&O%=cAtpjal*Zp(G8(q#)xtTJDCSG>ou_Qj% zXNwQ@+2T8Ww)kqFtq{dy(Ytrv`;r?kxmfM!JGpT8R#%q54NE^u3BE-E$4T%!mz?e@ zlaCS$xjOnWu0GUJEL1eRh$Wuw$B@1q&MwH%dpRPaGt}9fLZc!P;O7ZD{gEv>#WlWbhxIWb;=d~~5J5F}JI9KkFk-qR$J^boHQSayHzblY0#%Bt; zx2%Ww_(RYCS}K=6%X<{p+7j^(dpE4TQhq7sq}*Y5EyN!dPwBW?KJHA(k=WDt%9Y=K z7f+Axq|&lRNZ-5l_v{C@bPC)IA_Ygq#aZ8V>>N4_%qhb7A=<7-;d z_6O&s70HADy8g$cJP+dM+KyHB%GZ^RJ{CN&VF#{6TT{Mmul(%0X^-kw7Qx@m{B8Gr z@}g`fKdZHG+jFH)>&u?+ll#XzR5|=i)`5#0S}kMxetANs!%+EsjMswA(b^UV%-^_213dd{}=EpP|@;>*r+PsqnV%A4}+H^fhwKBQNplX7lK z?O%UeUkUYJYLq+Yq&#`%YN^ zbn`nU|7u5*0BL*BGeuQ**059ZIsIH34}A>z@3mGoY|AP6$T9EYI-UeSwzaK!sqB>e zT2-5-uDzOf;5r9%tNPh#`O8MjoNPzdM0wR$#KoPK*Qjgb>ad|k2kv}e(csyqO7b|v!*=%i$R0sWdXzknsT z&hq&M9Jqq{1x!w1egR)NGrxd2&(84q1FBS6(xJ}Od0v6O@egV1r zC4Bh;p5Mp(0{YBhegSPY%r9U@DDw+g^cnLDIGbaB0ZTVyKENeluA2D;l(uAk0gG;( z;L{5@a1rwh$n{}<0jJbsegS2_9Ov^3STu|I1&r*?`~sFbFu#BUZx-|U1uR>}`~qgA zF~5ME8}kd8`}`Q6UqG&i`QIZ~Dz^te=+|i*0O|Kw$;L=OU`sYb`pMfyz%u-3jUDg> zurZLUBIa$_^gFRt;4J`F16m@Sv>scaIgoxemTY@<;I9F!50nC>KpUVVurkmYNH$t8 zAlVe#1M32VfMmlC1J(h?0LeDn4@frI1Yi?jDzGUq14ufN7T64!1N;n_3xrxl<^&FE z6^~j4^DA&e;e;MQQol&`qTqNX|7jd9F;&ffm@`ok$LnNi>V!nflbXO(%>nT&VnFiH z3^la1L?od2#7tfMP#HI1s5@LbHvmc>*`WrcD|57pM0}N!QVLhuC}SOx%e4>3ciUEx z)|%T5sRmFyrS69BqtH{&AYde{wEkQ>{OhE{c6?k56XEm}xCLU{A}$ ziWmW_E&1EwDP^ecJ7-i6<@tBlQ~sNI`mdGYyLOsbb#`kn-D`o=OStG&bX>_t6`rnc z14A~CRL#E}=CPe@!J-<=*9^Pn)7JXJl!SoOgV%{EAuf{DSbi@{@2B$J4glYl<6!x0$8j^mQO9 zdNvU>DX@>#p!cNM4&>l_u{r#=cj#?qvZ;`@jM|Zac(Qa1!@WK&(b|HqsT0Dr<@gbV zdWJwk(ov5Zl0hjHD1)pOA-X$OGQ|`B=>2I!el`OI#%ZZCRu`2=yL@^FI|?od_e3kT zEfRm#=oji0dN0_x3@O6YsExIc@xoNiQj}m^j-E$E2VLbQfGGZ0J}FP76g*Lb3TiR& zm8d3rNfLZcJjFyi@tMja4u87M)c0ib!}r4s$|D*LWtRMO8S|gW@&RFfT)(IrUZhZ6YrYa=;f_N;Ea z)Ti^KO&A@9Twqk0ZZ|z$VKW(7iiti`Ba*11ltSq=x9GV{XUT*{ZOW8J`Do@$nMQnB!8q&H93AsqV#-}qHM-VYAMZBWR0e} zOw~dZ5Pd`i%^c~F8R9OJQq%lkEulWs*JWA;Nd`VF)v#T98b6%Ns83Aslb#>y`C__V zl$Ye2aqr``=+h}NGk%QArs*N>3B6PiHKy7@vol*!Xp~mWLE}-ZmtUfkW?lAe3R=x* z#%DSPn;%#&2BHsW4ol(JUwRTlYZ|^84=ze!cO>13echPDicGO2Ez~BaBhjiu>o7?b zNfcY}SlMhY7jhY{^)Xn_NwPjYkLxASw1gVBpSWhILrD229i%%D6&d{M%GM&|xg&_@ zl>+G^P=XfoO(Mz(MT-pAs!+&3U8ed=Sa+L2<7Iv^Q04#%+g5>(tN2r;sX1A3TfsDDCiJEzkaBf8n@r{s54w2qtVv#`n=(YGbInS z##XF93KR(QLo}jDGdqy3Q}I};hz5P_X2q)?%SWv`b{;jp}FnF;*2 znUKvNhO+{tXKS#&R^vWor4b$M>AvYc(67PNTI1SDerY^VZ^_d{^R98RDoaJ+w4j0x=k`J=-kT$@s|BC(;+Wn98i+;ssbeL+Z;r@y0AS)Be z64`IqzCZ=JBW>Go$Hd_s0>f0@kV4oqo9p83?64r!6rF!Bzmy*rOtYlD3ylt< zQ`n=@oKwDi`dNa$BOS-jh*I8i!MGuVrX}O;Tx4aS8mLqnleGG?-Ay7Sn=A$t%65g} z2pNjfl)8}-g*ei1Sq`#x(YupGn=vP;r%bhHs3)4uZR?*H{UkcIcgkGaLgs3yN z(lNVRwklnlmF}t;iXqew|KxC;V6W}QTVum8=DXov48~YAFEFO)(61$iwKHvs)n0x_ zV7$iAOhtP;+It#u;lp-QPY_ROrzPwmP0h_8(!r#a^eUpLJU^Kv(T?SxDV20Q;sLWv z@@#^wfc*Lr+1^x&l)}0u)MZR7(B$f z*DN~2#4NnD+a}o|+ak%Xurs5S)JEEc5hsZnruC9cv$QmK&}mGvxX~4bJF*zlI>dPU zaeCOw?h1J$O9Kaem2?Ba_RY9MrL!`r)=!s5tAi;%k>(=Eo$<&Kv=E`!Olbf_8~bu5 z*)l#&MHc1^)~ZmRza%llOMx%OazH7C^uz~K^vCmj7Dhgee_Cb8ZbfT5t&BuJjTV|y z^y?(`BIykzC-jVfN}$U)oKEJkb=5eW^746jZD_RhV3v-H}OiJ&zSQ( zA@~!`%OriDU(X-fg0vu+F2S}Eqn*l6kk82@57pf zlK6`7CmOS42;Ac=|O`;^M2d|x1@4Sq#NhB{lLd{3NI^yGZt3&x#0{sqCgAjBIX z-nf(DUm%Daee$xrereQ$C7`}LVBpT_w=R~kK=5bQ7&ja8m);G`Nnp|PgleNd0-*T3@8$}}rs z_eeCHYY`QOws&J1X(kYKJgS`}l=e?dWBPC&C5r#+)?{kC zsrCqZUPbNEYdog&3;q9h^8157`n{g8qYeQlXax@9d8d~N_8dvD%~eFde*9F#dsdF{ z6hhGJX||w|q1PgeTR`;*Ba-HFeR{GN8@9tVUubq><+F8E*rS+|5w;T2nRLB`FuoEM zrpu?&X|5pa1?jcSD$kzH>G%AkXPA0gN2?CoThem_A(!4lRdKz>?IH_uHtPP6_omv! zGy;-&nt@EW%UEwP?h~fJ7}r)2e?Bgk6+bWiSb2JVrXsowM~mt9QNIa0ZKgR?RF-}w zVZHIMl}C0=>d%uW7q|MZK%ngNYVX{YNcloD^&XrfT>!RW$R^ zn;o>Wr+h@-^eeq-dh~qxu#f*MsSwtkU`Ud%=L$j_sDC?QrJ;M`3u*hpWr}}-Tu^!a zpmqM8(mqyBdHJI9*b_j3V$*zMbYwyLJ{&VnXa)PqJ?T=0CzqJUR*}7gcp%tRjZZGn zZi{xuw9b)z!cY?=je=$$(x{BrY$}iP5MTX~N3VOBZWBqhe(zhJGi-lpTqfzQrcT$e zc{S>Nc_drxsk|W-Y(1-(X4;L=9y5p^=gfLVvSF$}E7Ier<`36mCSk_qe5h+0?*N68 zn03oJd7)d+Xxze9eTp9M>~!L^qwHS9{5dB8TNU-fXud6KHtZ35Vza&w3EDaB(H8% zuxA+&sEur5m`X z&W+QP^^CN08dXfopk6av8HuyPWr`m(%4s%XH49w&*UQ!OnRrUJXVUITqJ$Y%&#{lu zXWZVuSC*-E8ka-*FIidsnf{GIUee`+*-3w{^<(YO*GPRu_PI~jZMq#Kw`9v;=U|AV z`m#T6k#B}k=K=c|U8c*X6+q}Gy&YZ9YE0!3=H2qCKixXxdB6O*VZ%9}zFKE!?a=QN z4Nn#SV{IZHd^mQ6zBR19qPqWHznkLE$9w7Tw1e$=*)EdKQM1!*UD12^6<+ipn{iC_ zm!aPBF)fyz_7Ut&!oEh&`HEynKkh$WIz0iV)hk9fSJGTYwlq4$OD$mYKeIHGjrs4E z_$k?o0-uCED9xG`@vnTkPRNH}KZX<5CgOtW{vtastq3$XlLbGW*X+pBlg_UT%mzub zB9$d*#Kvp0>H10TOrNDLpT0X%(k@qcGHgm744=nlmg5UOyQJBMoj20&I0c=ie0?8F zFFdU_JUu}=l)y>qGkS(ilFZh1cDB5H9r`vI_ru>yrym>CZ~wg9Rm_)vRQB}k3Bt(j z2K&B#{qI>J_f2tApT8nreylv<{fY7=dqH~X>pHY{3(tJ@Z(7ivfa!x3^IuPwG50^s z|IB|t9zVr*Q?gHcDmFf;CVG-W&(rlM^GHUhU4}7i4j>Jj^mU43`ZuLDRY&>pWmpzl zSB=j(m?}g6w6wJZrbT|3gFV}zoj2K@k zStH0kXE-C7?q^}0XZtnwbdYK>d`ikQ1Aji`8}XR&I|g^gPg?2ZIK`7?gtU1!n+xeG z;xExdHX?e;!rD%EB<<|2EyH~!&7`yr(b~o&`qTC_S{KU8iLhSNzQ^!QE~1`|1Df%P zpL&@m&N2&${(UV|eQzu;q{Rp;E7=7qwx=8CV|=6&gY21su^wfrUcEk3-X20bEz{PT ziu#0V7xWHh`xaI|Hi!5_ZkZ;Rz>lE-%t!P#9;Kx#7&-;X0Xsv<_L)I^Kd@g&jD~Dz zzze3OQ49MaC)*!VZ&4~&gipYnW@a!sJE zGOf4?PG_+>gr%l=k4_T^+8#T1K|3=VvBoDCP18n_A&gUYiju}5U8d4A9p3mY6J|vw zZd87arjtLiYWBl1$ z(n1{BK<(j55m#C+j^3m8fg?mgYpMR|PS_tS+@JRgBS zhUHM64fs&)lm#5OeF@IqF2#2c)`_@-a5v!I!PQ?c;(XzvqJyHf!8h!C7JU^u{Ml=Vu?bk!2%+&PjqR^<*rT(tcAa%MjJyDsO&<`)c4^qZ!HT~ED(SA|NRHZ_r z?3d%yS{LM+kr2lyI}ad7*Dr9L0%OAHt@*-*BFeLE4)!mtW#5OD|4 zU{_TFK8xV!P5BRO6mb$tBa_7^;yCsZ!5SPWm@YvV9J9rwM6 z8z@2@Nr|ciO!5Oai8$#T_%n$g_!2{yn7d3g@P0>L!RUvv;G_@J&ef%34o3{ua*m37j7V>Ms8u@L6kJ zdI5zvhzCDc%A)XX7V~NBSD|rF;gLWg9U+AY^&8T8aV=+i6^_yf@rHaD{~c%h6&%HL zppD=x%BH!q6!=koYau032YxD2>4a0}u7K)Qi&%P1YLmb$(uM%*qq zx=MjIp!F}E|0nQdHQY=%(wVNpmBG=qSx0je%JI{c)tn0m%p97b?UtcT_fJhyXR5Tx zX;A8is1ooguzI@K5LLQLliXQB-zpR9!U9v(8s&#s@Kq~TVvtg!%~TKNGd0zPktc}P zSuKQ8GL;Igl9fDw3k)C7NvRzWq#P2VPEZbr)+)4F8tyv^4_9OaX2z&vRq37{!I_yH zECl-0s(9sq&~$vfEKz~GFqK9d3(MHY;s->lhACs|_a*|>=|hy6+V|Q0Q&kF0j5;h! zm4GFod@KdWs5?<4^o59cRkTuzH0js_snqEaiZmt1br2yiDV$jG9U(}We!DWWq|&nvD{{ZG|||H#cP!b zEG@pCE5r#jWvb9>Jx$%jJk34QRp}b7A~m&Ja5y4kxg;SU`b8j=PY|idRHSJ@akN2- zz*L1sgJhcE9K-|)F~R9sX+iHRM9fwp29>_2lur=LX@xkd@qMNsrBb<~lnL_ycTp#xPdLhmGy7hF$2yw{&zIV_A)meC; zI%BBN)!Z~8txooILW|U`gc!aElJbyDbsCKVVhldstI#F~s?*|B=`^Ooc|Ycigb-D# zl2XTVl{gSU-kvZdV5E@bu_0*7A*g$nGIMB8MQRr1w=|J9mdg;Kgcx;-lFyr&rl0}G z&Z9!;a%K@>bVOOeXo&lH3Elo4Z+TE2<=;5tt^FC$6{;ipC#wi|TuxYspqDTU}; z%jfx)!XngKRpQXVWJP+CQb^9Zm_-lOXq9OpS?T=zBJ*s`S)s*gX^M1w$2eUXqxR2C z8iMv56EOzx{n8^e$b)9Ku;|br3Sd$E8t}h=D&_#~RVcQfLd@?4Yv7(-A#{u~I3I-P z!YE(l3p+zF*50mgX;5YGCCtdi2!p|83NVtaSoknvQ8VasxThZmq96AuL!2xMdGJF6 zNmLfxbhtveJ#Zy(H{qVaS;KD82(C3;3|u1IFt{0TE8up*9fPA)NX(hRc4N+2V3b)x zKCHRQ==~~ORjwLVu{U);PixO3?~|wEH6!Fx||waP)Me-Twxg2x-?-BTwOAK zAit)v;t&|6R3yYIRNCMn%5;Hh3eHN$%9X^Z(M>VBl4!UZQy-vD}>t&cLeSt+#R?-;VctjBZF%R=K&W07YWx7E*)+hTmjrR zxDvPraF$8XN#R`KI>PmY)548|TL`xU?iaW_a4+C2lEs_@oHLvcTxYmmaLI7FaFgK{ z!X1J;4R;mpPdEwMRR_)qt^{q{1s8++L^#Vdv<)~LZUx*vxKg;MaJGZc9ymX^o^Tm( zfac~)M`EZlrmcV@vcL44L+(o!Ma4+Dj zL7Nn=HC!azAh=<0U&9r^ZGfYTY=*Ajdo8%XaNim9(&Z+J(xyUCBeXi{jL1rh!&1m` zmBbNRenDVUJuQsF;>L02$Q7YwdT@+7NUeeDi*Nrv6Y28MBEzL?F|=K2c=t2wtRy{| zbZUIhSd0n-vobR=RCFsHcit>at-#U|m#N6a66ViwlR195>Wmd7Rmt_|OVBBa+-@p? zvic_^WI~oX?l$trD^h6`bK@vBT%C}W3I(2WV;x#)X8d(rj{BT1k6B{d(AX`cawjEG$~5&5WsoWp`l~taad6Pc~+MbR3j`81;vBVecb}AifZZ zIt{@=$HVdz*VToaDkWVMoRfj>4^AJV%2cPPLD*Pn*c=?zwT7Rq(V7Nk=(8AAd`cji zu5Aq~yMphhC~PFLBysz6=?!~-ra9?}>cl9eMxB)z54m=>h(*Wo9nC!=c}&sAUE$?h z?_VM!Jyh_=a_xu$tR@NSY>iUM!b~yl656Hbt2b zlA5JS=1btVna8ARbP}_J?m;N8_H#SQ2lg=EcJlFZcENZyMsNCJW{OAmN2;Nzp|yiB zx>WCH@3BOS;f%}gAM*8~)IPT1;%+j!6Lb?h*O&Z!`-eiX>_m8s!#@U_h5!y@pQmI{gG7K2x4k1BzrH4^hG_ap7l`~xF7ZUvQ&eI?x=r_jJi zVjXvbzt?YH{JERuLSi{{NqAPORuwQ*i``8u%uv`9WpZ^agxeVP`*<#h>M=F(z`{Tb zHWhW)EG!VlBsNE(-3O=)ofy*Ui9R4nrbg;IAsA0D<0&j!`<|Qe{Jcdo6UVI)@j^g3 z0UY zh`wB(V*Ix5agptd{p{I*kj4-PW{7P|Knop8*m1%*ok(h!^6%e^k*}h5f2q!UdzW5ZDrM0h{LOpIg8X#2_;mbR7{%Yw< zj&mQ$ath}xI%kV*?MHvwjnZ9VNM8r(D{`)=i`@V1m*^9hxZGu?yM%TVe+}2Ttl2^g zL(&g~D+~#xQJn4CDr{|bmHYRMQzQ&f3R@gMjW)s0k28$_SezCL^#B$0UF7-S>+f+O zVGL*62QCsW1g<@t2b>d}HQd9|oUJ`D9j+l9mFkp_bZ{PURp2Nr1gOy6ZvpOsTMTyw z?h4#pxJPi~;LK5GHMqKPP2pVN)*##;*cGk^+yFQgoCaP=atAu*ubB)q#lDgPlx- zlb-8mBHT*CalH&D7QQ4AN8!m8gy&QcKB0o}*%gErRuI0eg76~jRv3Th&I&-RJuYvL*mc_7TR}x||Po5#0zk$DTO|BQ#O5w_JtjUeg zSBHL##T)+-cn7Kn{<`9Q3xC{~52X|#AB3`RUsvaX@GdR=B3u|3j4vJs1L+GPp?J>h zia7deq^(gcE~q0MG3@=Lic&-&jbRF*1q@~REix>uT8`^H?s*kaC2>K13k8Dui$x;$ zYO*R8Rs+X%7AegnVv#u~%QwGaVb#h)BoXDeu@)8No1a0@Ntum>wJy*`B$C)(bZ=TC z*FL+`cfxzeT;IolsPrDL|^c4eCl%4GJFBd6)&o=55CIs-b$o#%M`v(V(uTdYuUWl z)x=e!AJ0GZ!@=flmp@aK`g-3Ra@#%cLU~H_|Jx{~mvrb8w6Y%W+b9-E+&jsF4QLXJ z>MkMfxtHtKPq&Tlp08xSXKHuucg=V6?fyfCE7z|U?P+DAd;SBB&KFror2B^Nd$#2G zpjJ7O@jH72HXI&wamA0`XU?_vu5G38SR~u!o_F1V7dHPPN$PLZKiy>EvN{GK)nwLY zV)KFmNd^7%sWukmi~VK!;tsOB>F-Omfgt3KmF49(bifG7;^OemAAR#%|LuBwy+|OHYZ>NOZvwHy==h5?ULT;3WI3VGaI^*ur<> z>DQ)Gb*-_E!OLv)83^QSYn0Df*0NzO%$xL%8@-Xq-Z$pUFp)QJyHV!6)v~;m4J9<; z=o0769)Oo>X{Mo1;Op-P;6=P>gnt<3VIs`aM3|R}Fz<3?e&ztOCS!QKn)kbvip+#;MW&Lc7VV2urQ!saG%_nL6^BlhnX-IQ6GOgY$u-LtRl^D?vKHryMBER@ zn?9dX&AV{WYWtmDp@+4trraE`amLTJKd;(6dDOB>vs(`L(ggTxHZE?MU0B+>@rJKH z@0jiTXJyX}d-wWwNpl0ZD_*_&yz70oNZ$48v9G!mtilfltHQT!T(PM5%S*}27gd>f zvDeqbdj8Vpk3BJW-Yq^m;@!*xnP22i?~@&_Sg_*g=FL~;+P7NgZ&!KxqXqqzS3P>O zL3qSji6kelYuwGf-6|iv6}kGm-ru_JZQE+YvzFcq@4M9;uzYvTR#MraOUZvF=FB+$ zw*ICyUD~BSw#k`QzyDOH=;Kp|#AZ%Tn>74LujggAM@zn$5`DVE)$jIotiJb5S>3|! zg(tdp@(k$UwKe@s<3DQF6`NsQUz#r}21ky_oWbY@%_PlaP2UT-wVAm^WkEqPGZ$G{ z!eee;$;?dFfKpeL)RNf0(s)1V*mL^ysmJdIj4%1Vb=$EIb7US?Nt!H0rYcA(P>zdF)@n1_y18X% zXS=2e!@)IPo#vL2qEcsQ+~PA+_2ZzKhfFsTaL11YAU_&_@5ck(`{NId30LHo<>d)X zfv%P%)5r!3ewlcj@{<&x-I{-q1}zjuwA@Z4dM6QM&NQA$%<{z|uI=QS>st>zFs#AD zK(i@>o_v+MV(K`*dEJ73yJwqzBBN0{ch~D}gUa7eITe~JuRV5QqeYLN*ydjO>P@RH zBHy0-o-TT;nVJ|=7UsSEn%nood#r5m+uH{L*{d+&x$NJLKFy>oe}FMbExo+kMFHYcGymsm@J4=XyGH=ZKv3 zJ?2SzHcSaxeRoWXZ3mZaMK>J=B-ZKva@etgtS>r+)n6TYa`NxvuGU;ueSF}uI$Jl_ zyqhgn=GI$otJrd;akJn1F1|79UfaVnUKWr0GIV2j@87!hPKv)cRs8bKx^M2g+-Z=! zK53Oj>5l>3`sH1IaQ4)c8Eq4N!rBeEDgVN+rIpvdAK!H8{{7>zRm(oFsXlN$r0N>C zq?^Z%&bc(CQS2<6pI#l9;&*?}%mL9Bd!HS(xt@9c%cZO1A4IksD6ZV{i*E0FwpwuT zp!H;nT~TG-%HBrzn0n*R4<1pziHfMaxw8C9k=R=J7_2{4R8{)tOe-0}%%xSzNsTOT z!oOuYhmJyn+sv+oejbQYtFg>rAgB^?rberj`e$jA>3xEswDLfysa?h0%Uy<*N9O77 z(S}wYU*`29@Bh4|GGF}RvLmKtM~r0$qw&~)hHJV%Ju^b#a=Px^-Ob+2>X&uAxao#D zJsxk*HETUcoqNb;%Z~QVgC!OvUcj^10=z1JMJI zel1&iXheMDkW$NOZrf(eQnz?F^!(&mzDGQl#x|5?+W+yxuu<=NU-B-=x_|Wh%mqF7 z9{a)hhr{z4x}_{A4Q*TRsqdNHg_T#T=Jd6zACY9$W?ezyXUaZ1Mt!$4^rtT^lA0X6 z_ieqp--rh{>bqC#XtDO*FsD_?qn8Eja&sJ+_h?k}gl{sElJ{r6Qk}b9R@J$Q=dF5& z>z!*B?)G}fEBE1#XD^!EXwaO2YxX?ysP@wv&&~^a_v`iDjSekxoMhS~-Vu)<&aBht z(!jzW@4lJ4_GM9rni$LdT zRnPnow?3-5w?=-c`m)fMJ8xc-&$#gN?6i9s7uNQ*v z>Un2vd-im7y!`cnd7Eo4RZKj8;Nk7#L9f2k-ZNX0rYf4Ya>$-q7lwBKzR-4x=<@j1 z9lNg?eBo5YjLCP-_kFU;J7c_6yRUnc{jBjGZ2vZ;YR{URQoQzP&HpH9m-Zsvy~d4B zPrKgzA+*YG%43V0j#>6a-$yszB&beoYE-Z9qU5ryCOPUt-(zKOZ>>n$UO8m&+hHTK z>^jC??-{v3Saw%o*qRl~w!ZEh*kTCSdP@A5V?hcVM^8*PV9lo-poJAIq8R zoZYVNnU=V;mGq}E6IH>@<(j4*(*`xY|L)C&I=`QIw>!mOGbwidi_K}Fv(4`;^bEat|Gszs$VP*@*uU7kvhkt8Lf1`qVbB7=7 zAD%f`TWQqFaPIY$WXBrWEqi1&KfcPj!Q|m}|4=zE(l+zVx4h(2Jp6FC)V3-6+EmZU zeA}aU!a&cCuGbE@+;u+p$~wQ9dfPdhG0U$X(5APX;jysb?eWcZzB$wGJCE--&fS(~ z9{B2Am1^$!HOI^HYmSCxPnNghf7~im;V#p_09lZ?8}<@m-)Uv$Uitl?w-#Y1DVQO} zqRQ@74a|~aQB9efKA*(BiA1_MbyjsIKX+!QJrQkfs)lU; zys|9Hpg0@%AXz|xeQphGo!N)Y=tpSDaFDRLWv&wqR*gx;U77BZrE#M}ia3TTH5``M z+)48BV%>}h^EF=I?vE=CxM)+SYRLHA*{%0Z9J{-2yDbODhvdhV9MAxNVcBK0f~Ht1xN3Be&bQy47ADwMX*%nOXLZ2|-O`?mi8b zHgxUMyp@CE^_niS#f^@>dU))+${iM#UHEH3(&2Wi+C6PFLbEz`|69L-x5j>9v9WIE zS?fkznOmw={aM-vGbjD=Y|GAs_}6O}=ht{7%dheKduE%NiQMyRTtV1{_dP~t=^8&F z=#W@sX2L8j>S0k?XN<726-f&6MM2=LAC{~3kak_sV|rVgiA)$jn@V<+&2ib^Ro>*7 z%b>7+HcgMu+rN2q{TX|{kR1MM$;7QSCUb4=?$Jjk$rX#9 z7UZ2>mUl{)cjDiogZ=}1QJBK9SYg}RASPLns?dv@(-kl!| zQWy#~S%QZDTbQ70nVDS!lN3iXvk$L)qm$gBfcwJM<4(%Ahs?{}UFZFOu8$z&A1d#L zHltY+78Lq_*X>Ww+$@am;W%n zacGw_uAAn0IPQM(#g+LP!&46K=~kT5@J+9oUK#Qh1uZVra=QHGplhc}pLJ8eeUQ^| zf7>euo=4Rh@7TSX?UKi4jlUF>*LvVoZ39)cXT!M*eyR8B=VtM@HZ1uH1KytT!SwAp47 z8=1ABZkkz^8^SO;ia6V_YJFElCLW%C#-sktm(@J`1eScx%@4I)eJrs~ul|ku{1{TB z=@8eFj@6UW&$&7Mbg0kH+;4t&E`Ahqdd-Lc=h>5wjp}{9-hnl$H6@*Xuk~`)dFROA z=Wklqxu^TgIey#gq>fBheQ&-myXUnpuRlL7@}2bN&bhnZZs+e^Y4n%(m4e={hEJM* zQ+qJ(U`y$@JF*f8qxQ!H9_Nk8auyLm5I{1Uw`@6E~#Im&sw<3 zJ!3|PoNlpYRbg1v(EGk^tKP1CI4V7>ZNr(C2NM3=4iorbOn$xD#AmIr%4$6UI$M-l6^yoD(0uLs@i;uj!C1QB^H^@3>x{cr0bjX+jD=~SonBYOKbPCixC!6w@$G1 zzL!&f!~HqO+uwBy+OhKK<%HeKM0=%H({hf#-c@uosQ>4+=8Md`H3=7HsympeZhUl` z{j;g5>3=uC`pvagmRCUYoRnsg)P^3`D1PSt<4N-ytKR+dqy1^^|;N5KJxmH=M3#KHHusBQ?2$hx1o8;3#+!I+&X;X z&!2{I>aMaN$0qGh{%*E><~O}t?ArQ9ay?^_N0;VrdaQSQyY=>D&z*4t=3a{RyZ`9K zoWv<#zZ(=c>dL_`m8X7o!}memE`#G2e9<^<|NNy(+W$3b#LPica#p0BzCQnDgV#Ri zr$0Tk+#lWy!-4qsy+h8*Fv0zjk&LOU1v%E9g<=082o~|`oJS%dGY2Ntxk+l&QowjXUb!q1JD+87sJz3X3ymZ{l zmUEX@Pn4b6srBf3E&hvVb0)ggJKT7E?=9;t2eqFSIr!Y-(+7LpR9%hTd+MsJ=uPpR z@K;s#^zU|mLBqN}Zo5wQGIxDgr6AJ#;zO(E^?%+p(z~JMj*G1?of+`WRqce(8jJJA zr(t$&$M4Z!FaCdXTd}06HB1ndEX-R~H4{6S)#PfXM~$)Z9Ts%p^T+S5_fI{&b^pns z1$m=odAZ9*{)g8rgJ)Cb=A77^yS4G|%Eub$D;kpq;F^z*=TW z*~}^}mM#|VMdJz#rxlQFmY2tU+xPm`@E*go1x+kEB`YT0&rEMU-|g^|=qBQC4pj=x z%2Q@NU(nC`>-3Y6C)%Xk3z8hOe>|k5>dz0m+>dElYuY!dxs_$Ry0%(lrhGi`Y)|`( zkp;4ecRD21s@v}5^l4Lf{JdKHu!%}r<;cU~;+CiVHay<)iYI;dRl4FK8L@i=U zod0+2a|Te8{`$Z7{_nm2-^YP-&VE1EUVH7eUu*r(wkTg_`nDWJfH*}gCey=qxJI;Ro#p;n${{39&Un4)=+Ir*Tw=ep8`hh>b_M;!~JuoDB zy}9Ax{{>y)+X07#v?tCQUaCni`ZVz`E@9P+Zy(Be{@mR=_iX=qiT{_IUjEql++c*n z`T#9@CC9$@ZrImr57gg0?)2K<@69i`p{@DivnBcCo*mAl;%BARmFu0w|6Y4r;8n-c6Ghy{c6LTuSh?>@AGq8 ze*V<@+F2uKp8wwBknmSxHZNFo_unFq9H`Xh_C!Yi(EGUile5qM?yh%#7I>*B(D3Ar zq&2TKPr9*CduP?7KdQSU!Uig_L(6B6W?Owj5+9lLPP_P*VJM9pTDW=@t|jB{u_@IwHZFLKX3qS$v5`Z$ zyd${Jsc@;59LOkv!##;vmTC5s=?PdqN=TX#AD?NTl98PmKLtlR%?TOycx-Ye*F_G+ z#ZoRx4N=A;X$W7LN{0}Zt=ml3bjKr6h(lYueidCFojPYef?-vZLSYLPvDa16^>(b1 zu7gi}Ym}0sU?f$7 zZh%8R46fc&pe%)RBoDYyz=X)5{a~uv%oCf63+t*E68SdY%d$h6@Mqp+#xD_VVFIqq zb(Cc1<&@2yQ?{VcUN+A@Cq3V8y0_nb&fLQ9&vx*dsL6A1AlV@B6fqUN-YAM1NR{w4 zS+x(2uX-T`y1k6XsHnyr^VKV;BIZr;DASzG?6RWS^X4x|&x;%iDGd+-HIVY0^3{k5 z4CeqCaPM~_m_!bpIC~{s-iCjY1xe1%E}LKCu$MXJ&2;UB0@8 z9L2k+(i0ud%{3$iV{kaL8f>tic-Mk;HB}WWs5_QN4z;gawtQ_xmUBfF)d}H&8RTNh z%FVnCmMSc!s>`R;?j)5$SxiOTjU3@8n-YS642JBtbBPL&u7gYxQVSi0MVYhb6wWV8 zFD#s!S!kbEG&|Ei82G3k^2q)EJVFGe<%%|C)sRieYbvl(4S=wdgA2RBnqY_l-^H_o zas`pVf+`$#nnxnKD6z5Y0LUaz37!>Fx-4wo`i+-`UB8wb5PATKRT!YKfL+zvWt=7e zB0;QENd%!?HH4X=-wg5`gp#0P3N(YQ3_z)HDO1Ellx5AEU1Xn!fF#I34MsQ<43=fj zPoI-jRyaR>-h8wziDywovLH*s*I+>Vym@oymCczuFP{)s%{K$xx_UDeEO)7d5`mY%jo{R9KmKzjES5>igAo!p$K?y%-5JM=))Vp&x zqF%QJ!#qqX(AVcmS*mGTn8zrSpJ14ZQfb|AT8cLNt*(GP6a_{ED;^FWgMYAQ47Oi0 z|LYJ~z`CT)Ua4!-UZcY%SdO@};#{7rxLhBedd&m@_E?K|B|a1IOvE!4PXeB4cxK>9 zBhL(vHqKGto*y?K5f>6};JZ|iYbl}f>lM3GwXap})a(?F@RYu~hc#J(J1B6cXPk^~=lEbjmf|^At~nWoVncu5tc|pgmWg z-Efg8>qec_5+Qxm7kZHiO~E19FLIfmo(FI6}~PDM{;LgVaF* z>^jf-oOfy_Mp)HJ+_8_)5uCo-8VaYY5v)>NF&8qC19?aQ}p? zYC`vDn*xT$pQCpEP|s|EZPYj5jHL_2YGt^6x=ylCh1Y6$`G{b!vxYyU8SZ7 zmMF5kKtS{`dN=imuMR*y;EGGe18iwTIDf{$F+dj93KWd=l*b9~+&qq67bu+D6&FKc z(X1xIS0xURp;9PhHeE0;LP0_S6T#oi{=znC+40cDaeDTF``)-*);20H&WL)Lx(z-9 zzPZ*mY6S6J>j&a-q!zXtY5ynUOJ2f%lhXc!@{b#o|Ac>%zvOiy{)DUIPaYKCjQA5S zEB}Q4@=M+-#5Z3RKWb3?7{oVU7T>JIFI%z*ROYZzP{_<-ooZ02PLSTrWchl_J7@?U zH3Yt#z__F0&||fDjCi7e$*fMtUZQ~=Z5P*c)X>moxSVDc1Ak8*wfTJ_nA5`>&&IMrADMMo$iqey5))*RJfr(`% zy0>#LuV`>MJlkyurXnZsZ>HK|GYNs+;Ve_j9xx#Uy1ALzjG%f8SV0V%O*NSi`Zk;= z!<5LXV%R35M?c;AM)l3i5rv*IA@qY#_=djETyf^mIZ@WPYxRtRQV%}vk3gOWs1E=F z07qdUIuSOif#(5&!xgn?nt^^esC)p80xu+~XYE8ReV{0woCyRq*2|^?!;7`7jbr#5 zC}T3=H?^&`P5j6TyLbv%EqOPw-rfItXfx}j{xc}`C>BgT=37!Xp*S(S2luyFj&I4l zznOqWx6aaO_Wzi$&+z5IkR1TfzkY~ck9+*r~=Euc(9-`p~1)cy~7MeDfg~Fz{ zwi%>nL!hm6U|`w~E346>nf2DU3{5W}UL~50vQwQAF&4?hSidqf?SZ#v`(Lg&SQ)nOCa=3Aq|f_6GWFI=0KQ@SJ#du1j;bEB)25Bx^$K zmBK#}IYmidPcUqqgTP9-r5Iaa;bFm+Q`l`E3Ih5JFIVokcD7yZd3vfN%Z&-mH6o$d zNq?xsFslu1nMV{gD-d0U`cPqskGP*;Q-rj3@-Qlr!m+vDlcZJLjyX_t9qPy<&A!C@}WmQW(+xL@~{TOd37xHRE`yNAA zmR^%7mZ6E{46*DO_ja;N_vvEL*T@Me+4L;NU3!vLX_-UEa`o=~4wh?l=bvDY6mUO4ed$mncqUH+sZUD9E7Y)kJ`(Yy2bx+8O|xNaddJY1PTw9wV+y{N=*`5{ zI4U)JPf`oP6awn-1es4_%-J!DhoYtlh$n#&97DGYl-W;^nY*-;aP`k2z;_SO;%ddBfZzqnG*U`G2s%wzUB#^PAeGukg&BZD8xN?!p`#xT)U5}@VGr!6F5dqP4ixKOgaZu){cxy9vYwZS z`l0}Y+&=pOn$Y;{&3NPE<+RF9+yQJylutW-4j~Ru$*F%|kL z)eejjfrjyv2+fI5NtXgH9fs+qNwBCO9LP(J@el#ovz^{48CpZraD-*K+7ykUDHKNc z2=^V@LBIs;UJgN6`L!<8~p{uzCbi5 z?fEb$&{Yvi=5?cfOaXm1EzxnNP#bjy#YaW8A^x@I>TkO%n}wKVLY75kOK1^6MKMml zrLHVxvE+5Py$@vDV?XWAKaz0DXMYbs5gb1IY5H1vc9eb+h;BwA9{Wj0QBkEW5N%Ai z38@&?rQQZmu*jLbQG z))qr!J&d0G69s@~6v~V?TIaEMq5vlX(L1PI_S0b2Z}Zq+!C3X4gGJED$A=@eNhd2I zB3S-=)<1|*6aZ;$LR6{lv>*F6#>Hy;`BcF#Y?O4}u0Y^J-k-FmZO zYX+KoXXz*Y8xp+KPxJdMZ_0}eC@`8Q;nbCIg#XUgvL%)`7s=DrKzv3<{inXph!GNs zX$7#%DpAQr-g}9DSOTe>s!Ya&4g7pcZkDHcA+mPe#02gmb`9zZWii`jikS&lx{`{~*@Tyd#B`iw3Lh&q_zj#XmoJ9;l*qd9LwRTa1tS)Uo@3+nt&mJ==t#2c~Xt~3M`GMTpRoI zy^ZH9u4HpD8`jEi{38&+cz5CCP2TZ;0pAifmKqXy`N5wrMP%SYED9Hhu7?E^Pw@Lj zTEJsF4xke@9R)A?zI^2GfdEB1s01a_6o@`g5#X5c4tvX;9plT6MFhCNr@HsoQeBL| z2k@fhva9n2jOz64{{AeBm$G>=vIk3-S7ljT#FApJ0B5PX@PYKH3N+XW7H`n?iu`G2 zx>4(kpweE=5hx=8F;O<8f_9+spv>Z3La8b3-Oxn~0l_8f#yA=xu%N3eDkkFgDiCDv zX|xn4rp|@%jHG=7Bt;~(KJ_I01lB9wNS$>zLh~?{La|(cZ42p$-mfE{TKFi1@odz) z%XF9@VT_$gzzyeYB>dgY1Tkd*BogTG@HEB|Tjode6-ZfLb%X|N!#N$dNDmUYD0iyQE`ZZ=~`rS6b!V8KO7jXM?RRs!G-3X6a>lI zkSvWed6y+vnQ^1HP01Z%@K6q7q3Jh}=Z?lWB3n0k;Y%zJ{iKdw*n(h?yfa}VKAe6l z-HmbKFk8G1D$uUT*R_!xs$`5;%x}TA&?q}qwc86-8ui6)?_Qk4wscMHB z7oH9#2mHHMO}9$T$3T4_$ag zamzSq;sx`iPtYPcX|qXN6X{EjqqLi^12u1D>9Merr`u@p2Dhb%UZ$I*UTw|wh)U(+ zq1Bi~@mN8u)T<++s`%F!g2{v^1Qu3`2Y$s37qIGssV>2Xi8}X&2`L*)H6zq?c^)XV zRzRtWuvoMqPIh4D7x=^JthRp_K%4(To(oSk zoG(*><2``mC|~9P994go84Fi}rjMUnP;d;aV5&wFB5ZWHrlnqo61ieiaSm1x7gXwB z-jU8T`C=gFm#Kpx-<$y_cDIAwIiKCJkj7P3y_n5g%53HSHK~xyCAj9KhSMh=HqAG# z{&F2s(3Ch)wWt;^DuBcVwYbiQVU`XXky+*7%*^c0M0Q8AlG#i)&&F(7p>JaaGHO&? z=m(=(9rNTrVbs3DEy#F%09*Z$3uggHi9Euk&sTkIuNU(Ot zj)7U~9&1B)?LZ$4BrW8OlaczP!Wi+csm%My2n-*HOC}ajdjxh`^ekNJz2u5ybF`ty zE&60R5(7HR*0DKyZb!F1^K}UH*#DCsPfzNKLhqy9o6S1U2BRgF_R@WJqJ;R+KrXb| zf%XwTdoRck`U&MaR~!14MISCdge+K&j?L98cD{m+t=)Wmk4?LhmFUG4ZacUtqubu? zv3I%C`=ozdGBh?KAr|mthIq7@EN{EkquuVdpJ!MW)PZNb9z5ey$m@B{j{E@F`s=qW z0}1hm?#vIclgM9eYdq@8^52XSQStoINYj<*q=FZ{3=9p(FCsRJxV)%cUHvI zvfF!ueKKD!mva|=%0j)%prpp$W$p56a?aPI2p}QpdRaskEdRW8M91D|vvu+a_;V-| z5J6keA!w&4X2Cp1L4ng0ZxdFP2OyF#$ns$yZB@DZRwRmHnl02J>}1OgtV%Cky5zFb zW|H*vC70HEwsxu~vDUNr1tS~g&ecozXa(^YU#Z1*t9%|crxkwMdzFdr@b6z${s5kVmOOfuYc%P{_WpcrB+a?^t>)fxz2XbtrA!&Awn? zv6f1WoQE{H_fZ501U^H#fW-h6ai`8V0i6Q*4unCOOL<;v<8<>1Xq{dD6#z{oLQgza zSa3){`}&8e1{6u}{=UwgsdcZ>FDP&9?vv{o#+H3iDxmMN<2I8JcZ`~o@01U2 zB231Ui)Sew7oHt>p271fo_Fwkfd`vp!dN_$@nqv!j^}PXPvSAJ5rkjkJC@3cCmW9* zY2OO>8F=Vd1@44?-A23|(ReMTmzUW1?y+QwBhz@i9Jk_CMX&wz@=nC-#1y>hr;;1J zO!0VCCE&%+9O6sAdX1ici5k%&1O0+$7DHfOj%QB>9!e3vpdWECG{NnKUoZTK_y3Rn zs2lIfu<^MAEtAl1GQK0oV8Vg?F5(1 z8H@Qz*Tr`%tHF`w^r@yS5<{^ObO>xji&^9{q=k~aoO^P#b&sX}x#oc}P-R0Ch1V@%~1am46 z7`F*da1;cZ;RVlOz6bj*vM(p?nfNWmS<_HK2%f*BbEh-mtd^V5O_&e2r~x+%xjErB zsD6p$Mt!J@Qj!eL=4+#JYLb>n#u>p*@_s9&`)eCb*ekR^#(9d`<}mnobVEgS)H3Fg%fXAnsnENgd7b zXgWr76`GIH438!-H1nW|8PDq4>tBKZ__>CzdNkm`mKNq?#D&-C+)by^Wj#$Y-VR?A zP1((mIqqvZ36m=UQylI^i+6$Or);!FxOvE{VaV5V%CBd?>q0R0SU27t9vRCoUW9Tt zb-)Sd#b|F>W0yzw^1Z)+31ASLU`8>^@UMb zGOH6vT76abgviJu$-m*E10gB}EO<86qd+^gp*uWHFzjfe)2fO$pP1g{UFmDuMrDq~ zF*#q;4l?2=dFT6@cBz(??xw9UK2e0EcQiG^=xf@I_x@W6rh8!WP9)RAN zeV>5I!A(!WbONg^zNTkj>Nb*z*!`u^WZF;Rxaj~)R0LmBbHC}8eqV3D=}5n+9j1Do z@3DTj6RMjs^QLXdO;epT{q}H(V4o!LJ3<$%;3X5>5MXoiWwZ5fpP`qrw%~5w{l|li z!*Z&yfwzzLY%FiG9Gfqv${UAT<=DE%V=rLIKH7e;co)fw`lG0GbUs6oF?b23XG~aa zP-ZLz9J>z^aRc6Itu11-A)ZfL_VEc$1Z&}j3n%u`jOJ+Tu}v5kgFo#`5H}mxw?S@u zz%%B;jmFR5?`Gl`Z9&`R-)nsK|C!I;uEAZmntUik&0oE4HC?Vsce$!pFNezN8fQVTAWC?RIAE9c^g6`kr(?RwL<=bU~;Lb#p8YYnxo%FR1)vbYTB zg8ubac?#qKHd3jR@TZ`gde0aeXqV?duVO{T>e|a|3g|t@<6Q+G4g&5IKg- zUY{YZURzFr&7ovGzkIE5RQvr3(l|{Ot59`Nza5s3OPjcuvxXG()(A6(-MR6*bj|-l zfI9dU8${fnF2tSH3Q7pqrJ?5;8jev?np)U5sr)*ryr!GUgM42`UVzE+3P6s$lpLQN zQdp6`Vg)p>XF4lZtPzeQ7e!BdP$zdDRCzx+V|5+;Owze3fU&XolN1C(%p@Rsno%U2Q}K~Zl7 z^h&EL)rIE)(;)s4JogR2BUse_+A3vUfRwntWL3rTm*I{YMO!y+=ejEH3fAJOt5Z@S z%#+Ev8mfw~5RF=(5mu~0_gc2X3E&bOv3wNasL5NuevMeAI%RBD4W#q>xq;k*t)!;+ z4azqF<3Uj>bFHsgQ@w8O)QU~0 zdDD;q&GYd{D??nxyF6*nUM3K2LX+13pd6(^g+!1Tm5hK3K#1?s_&y(gDrNeP*tzL> zbQ4(EJ*;fm+O_4YYlY8--BoediYid&FUV9=fmZmx=Lb22s7wr&qb{!#=2mdP^zJJ6 zAzJW3@T0YWywJ;Iku5KjmK2J>VV7|oYowxQwlEi3*UIoE?QC;-q~B}5guYYE^SF%; zY+U}+3R;1Zr}<{^_p12pit;BlYNW`Ce$#|u2upRMRq|?lN$S}^X$LD5 z8c?H#JH^5b#2b*4MzyU%J*gb41Se9%n%Y%vCgB$-Z30RVj~mHTxQP@^nf?h(rouNJ zWm=2xy#CZ{xQ(DgrKXyf^DDz?ygqZ)a!|`reS)wco6-v3RWGIO9EiUjDT;u-YY;U4 zIozjmxL+RkO6U)UeJ*-K5KpL7)CL$TIrLnBCU_s=cKmJRe^c?M`Y3Ha6{ZT9v8;*K zCtNK;-KzU*I)J5gJsTYf8VpG{);gq0da?%N(h%)_3h-b5Lx*ohszc4k&7S!E@n6SV z67EfCPjFbaS$=4F&T`1|r6pkbGHKkjDbpUB_Vl#hO?z|NiRm9qzc_t%vNL&C@iSf7YIEuzQ@=w~B+Z#tomQ8&Gws2&=h9wCYfgJL?aj24X&fupEqR)4TH~|_rad+7 z_tX9~?aOI@pO!Fv+4ODGe>nZE=^sxYpKM7kO18~dJY(C8f17b~#wRnnXAHHDuwHMC zwT`t;uqIj4ttB(J&GgUQpLziBdL`AHdL;FQw1a7{rM;f^M%szAKc<~ZE1HEy1Yw(i zkHK7Oe%id>+#3I7d~f^>38sWu3HF4-ggX5LZ=2sYhr|zy9}#~YpgT4`FTO6` z6aP^B-uP$Ze;5B+{82#p!}x#1hb0&iZb%rH01XTYX$kWamL;r8SesCturZ-7;jx5Y zBchSWdlK0Q};9 z>G4o@_yp6c-Qpdk>1*C`tYvl!~4HjAKnh=!)wHh z^8dg3@LnaomqFEMq4D}b(_ZcWONDqBO3z*V)1l8gfBVAuk1pN**t9JV++CJ+qk8K^*-A!*5s>d%KAoK`U6R8dIO@hPJlrc{3VvhAB$aZi7^{z%O09Sb(xl(yo>&l(Q> zF{h>O{ViX9@#yZqpPj9_e#^8+7vC0=?H8y2$n>-L1$M(vr`qz*{?9AKd+j%0&(YuB zJohiJPJ7Drqh`mH_dh>r_UpU<&=hum;K1`sRfTx7u26^R*duPMaq?~)o! z;QnXz9gsHaYYOo+q|I6bZPqxTc}*c6Hc$6$)m&4E7tn^71@kq9c-Iu-X~Rc_EGUd0 zWgbClQFWt+7B8#$kFROOQ-^neQK%=Ohc z*3C8b#Q%@!*}kR_4|k=mDa2dwKf;B4yIwc!LH=hH;(hqS`FnFFZv1k}=-<7~Hg1o8 zaNUZDRXXQyKASzi^AF3PntDwk-nQIr7jT6T>jT=YICdHF`IHH(UoZQ8>O*y|Tf@IN z+y1wQ-n%XC@v_lJKK_Y&va@CUXVZMShU=%+-@VfOv(M*cESucWl6%MTAC)}v$PFda z-*~|OMdru;iEr+??vAkGe_F14ectarZZYm$_~Xa3LMv0>X*zi({gXHM-nHqm#N30) zBZnl-Ja_IdaR)cO5S6&7|RmJYoORHS3#ueik!vVyUje zcW%b5df#J~sF&sCnYAzq!p++re07X@$0KF7srkR|{W8S< zMAXcZnjN`kKd(wz-5dSNuPtBP{r-f58DB)cTJq++Vf!|G`h__Bd zf9CkPANSIQ;{S}^AClempVj+wBJH*p_mt&)8hmo5WOY6cd(M=M&RG71?tBQ}J!RRSzK(DHq`93B@^6m%ZT?iT+qs?e15sYzb+$^;6BH)+ z?~GU$4AUWm+`{z)dEv56arKVE7iT7g6Wng(W}Gpm8)x(jeuXLk2`4sx+XJPc|3ptv zJ%pGoM7)#u(%C%$a;iEIwf|?+2#z?|mf}p+aC}B4faMkgOb+(`~XMzm5Z9lANPz&=#zznKAGq>f?i=3ug!0k zhod9;!(=%O$5~(W`o{!BBXX2+H9;ux8zqw9`k)s+4wa5E9!c zry_+Cl8gQ};>d|eXovli7c@IcKPUM$QmSsIhQz?W4qsmwSqQ1*)d<(+)m9c-IX zC;4H#oD)z_XAEBQXdLG*DIwvv@(3lc$r(kyM)G}cD)}l25=tkWLWZgwX*m@RjiU;mUDrtoW1Y<4 z4#}Y^Mv?rhl0p(2E8~{0&=i0`v_PnstE7=JkhCjFamwO_@W-+IE~Y66n4R@T^a{dQ zJtZ<1;FONUv_hh|rDp(IR|5*20-{xI@1P&{h`b|=LMlK8o=&i{L2jR(%R#NvYs4_Q z5qLY0*RN4_F7Js4L3>5VpfjQrkmC%46Zdtz(Cq*ty0rn^UsuD z;q&MNVIBA|yRh#){?+a~iLb}5+t*3anBzn z>ZiW24%JktUAV?8`06`hrw*ss8K*k#ys%!_TRL!!AA^yR?9MEJS0?!aN2%rz-6mC> zhj8ulQbjKbh)e_kAkxfYKM(2NkW2|{JQ*e{1_)q7pb0!sw+BL~?OhgopQQy@&a*5k zevNLKV>Ar}tjAs2rnkgfL|YjZE$Tbl)ttX3Hk*aHyNF6rXjxmx-2pe+P8 zsvZekW4SX!+YK+JM|lcjLQlXDzNULZ=vnLgt{Whd&3cEvdML}#g=Xlj?bUke@C57o zB7~7a02w>%zgQ&CKqm!8n9BDO@qJZ~Y$1`_ueF|VfiAH(x(&|{2Q} z98zasj*!0wS@8cAf#o~l#HkW2sG7VN=_2DBBScW2ADcno^XZCA&hpJBb)30UT~c z7ayyXqzBNT0ma}nQNcb}tgcB3UcXs78gNHadEJpQ{2j~R6wnA8p3+X_{hGw!5?-d-Jx+Q28PX@6*N|L)|@`vOqL5mplvN=x*AD3b{Qy=>1?Ly&tQm z_wVkd_wP61y>i!sPw|iEVg7l{#Xn6|{PXl${&~)c&!Z1CJ&F&rYu!zIVDOOP2^f4l zU!rBq)>r9pH|^%W&rnH516vRSh4I;+fiN+f&;Bc-Yi|1iNSH>ChrsBCfeWWR_GjGo zUZn;%o&rU>)T&T)kG&Ukh)6mRM-Qe#he`vpgpx%^Tcz=n35ucMq538X*ZD;N5%g7w>M1?#4n^VIHQHgmVfJ2OW2hjGV5!L{xpZ9P<_3Sb;=uAdD~PyL?|om-b+xB+CzL{1Q^1QedKbX1zi*JU4IA% zsa>o1BKm-@pmS}eP=e95!E)4~IRO!(?gib{UGuvu!>e&>RlL(}@8m*OWoV;tXZA^f zORm){zt@uk39C6Qw!x!qz(@-?LcD4e#H;=SfC-9MjoOl{$X5La@AK9#A6*!YEZk@`{?fI>cltH4n^+;JV#O zUs?VY@sV24&YM^gxv;mOCZvDBd!LEjBv6%$j%6q0*~kKOtdvc9*GMIE_5nn(&QqKz zbN52MT!Z|$?KI99A;vVm|SZu5`ibjNG}t;%=EI+%R#TD^s4f_Mg?d%LvN5Vuqu9i=7h2Gw zf=lN{9kkLJ?S+WrH(w24BvxaTN5L_v7+0f)g0sEyce}sXmU+VICSkCN)cliV8 z$3)+_B zAr5!Q)AUHWoBNaykGTx?l9D3%c>srq?hs^1Go6@;nCVEVltMrZg(?CpV(^u~KoYsJ zUb$-+QaV{8{UhMIzUh=$QW;RZq{GWp6_d@}-{{|7INM0!#Eiey%3h^vG5Rm@h5#bQdi&7PC#HaCt!=JKJ=0)08!bqoh_{ zXe(B_q^|?6nUWlJN6Ny!I;}P4zA(6m5lrlxjo?j3H~%HWdST;@*7rAFr;OTV?kfEf zx6bX*x^s1y56I&uD1(926(d#1SnZG%wg>|Pgvx_SAj$FeD9l2-j($&oF34VR$>n=d z7tBb&56R{G$c))^0WnWyKw{Po-db^HSp7g{NQq@boo*b+v^cW)Mx=vL#jU|GbB2~+ zr3x(5*pIB7AQ(Au@#K3gEp9uKiGe0dUWOCQ9t#bW%x-eqPf8W15vK!BC$wOmcHh+z zERfe@_o_MDbpf+1{0z86Rne&O^#KJGn=^A5|7db%gF_$hiBwbQmRo@O_HlvwvID^b z=D-5rFs%Veb)ACi`f@g!YRte$dflPrZf^4rVFNk$0MJ%!XL(D$UnV_ZMSH>lJ&<^k=7N`hCsb(u(BjDk)@y#J1iGQuX zvQh&l@LK#G#otOTxRF=nkLY2j2pniFLL5dA6ZP_wpt(WCQJ6bJ*`SjUQ7%X8OGjeS z*whv)V%Zu~paZ!njVE>K&>Fx4ObHzhEFPf&uxx~k_`>aKB`?eyh&RU+670D;9zX|{ z3u+3Wr~~YYp0%*IL))yEYIW9L!`3|*LWo7#`VIzag}&&I&luP`$aa`)#3!wPldN52U2pPi zG1t80snwtPjhb|?r1+xIV&S$kQ!WE+$& zS^Lw~N*9gQqs|%D17b!`Eo!y}5HtE^!^osT%&e|?}(T! zwP_@uMsWf=_BO|nUjtcM&V-zMTKYIN5ceRD7UwyD*t_ZV3Z8a6r}3ybvYQecY~Goz z*^#4BT>xY9SKM}HhwR7+35N9~4)@G7@LUTN^i#Owt$WZ$YDuB<9tD~7#?I`(j-0@p zxzZOJ@f?qGGorA!QB?R#f741|YQH)6bRUZBn2fS6#mk9j6P{gof_d)D4&9LxI;d>i zetEf+FpAq{b-Cc9uHZ7vo->!~q*%qTlrB~6Z1`I}yc@oxH<~LP&m1FOMJBwKnDJU^ z!)u)buiB+}-B+b@*mDtVOEH3NDMPR=s}O9sR}am^Hwc?X!-<|0cw1-rR9qV*GiSA=lC5?*iQYdh&tsGbVoi#nM(*-3@6kD z?kjD0t#ja2yA-ecs^GB-Zm1t#8{vlfd0r%#DU+8w#C<4R8JhNsFwA#vQS_2tT~SXh zI<@Hz@l)xeF)lM}0VcQ%>^k@LGz)3NM1*S8E`1cLV0(7XZ1F;HN&-D93VrLZ&&wE( zgh?kRy-~mpE3t;`yl%(!JXVVw0`)jZ88i$OELS{Na^?)^J0DH>4B5Y)MR;PHyx_~2 z1$OKWTBysy-fkD@y;g&{I+PltCxLm2XSeyXfsWQU3+jVqPbK@5#QR{ei~Z(w5- zc$*^Gdx6gnr7clfv4{=<6i~dtG`Z$)gd^^7zYVFUl*NeS&@=A@^okIbr!6~p5J!=G zkCKQ#8bPKbh@~e&TPZ9uJlG0_xgF{{6>Iem1GB@|r$%0VWI&FD7%*BYOD5>u2Hue^ zAf{cKA=GKvMSr+wvp)209j$;dF{)@@0aR=j%J(acONTXX!Anf^WTW&oG4cV-%S%c~ z&u?u^v3v>hEq_eV?_utz_`C<7U;(dK6;lf={eFUQf7hQg+;PRot{s zMi&cVK461GejM8Wm>3tBhItBlU9o%yQ(o|+HU}Jv<=ZiNbz(OLT=9fJ4G;){Fs%b~ zycoQYbR?NNb+JSK9+KfRd-N!&tDII!>S8Qjgp9(30jRgbF3Yc@4xn4uOv>+-E(Q#{ zYQTkA=V}d}N*DmA1}m+K8Jb8Zl5~$T)X?--m>TX;mh!HHfiLAn!az%ThNidRZRts= zi8VB}!YJo;2LdToMnmHZ;1J|A*f2?yr{UXXmo?0W!t{~0Q_@hTWF}6ejKsKLCL@EH z3{f)?hfwm3?UdkOv2&bK73*3qe*zP;Vd8aOK1tij;`u^%Rjj-Rz$?K48qvn;&ZkT_ z+;2uSmZNo6VW*wtg=^(MVIqzLHcheQVegjOj5Yws8e#B+!NvbBkO}isY=vM>o8Jr7 zgmu`3crOT;XVDT0VD`ckEc3Sj1_w5QesL)|dc(Gny!lKX`w41}0_dLhI^-7!HVckm z=?K#^%pBbd&RZ88Gf1BTjBDPAa_4t4!Bh8WWf;Q}sl7M!tCDk1r`R7gJn%FESnW?3 z9(a^sf7G4dos$2Iq49p$SY|A<>6uaTYTfn@X8)CY!D-UM*6pd=|1^HAt^@P*p8IYM z)Wmx1`vcP*@^h#(A4kNob1-By^=$bB+at8&vfy;Ok(5J+retWe1G5V$(xb8yFm?BBwuf6ydH>BR4hjzMN1%Mlg^cm z1)NP7E?BpG7Rs_ys&p<(gO#sfPinC87430Kt%8jJYJ)}?hc1B$B(Y{Kgcr10(dDk| z#xoe~7=kthLY{WWV?m_Zf)0+5z?$>u1=a?y_-1UDPwf$G;%%fg110t3wgrPj*SemNdZM;r7z)K@ ztW0a^v9`L*o=n}&8)n3aH$vI<$eksc84ESyaBTiy3kciKonV8)_znZ=~wlWx)&nw|rcdor{uUALxe&>9*a zhc!h6-aZHemajM_y#y>lUp>=6o*VSo&_ohSe+f(35GxKxa!!`6c9|tghT;tAZewV5 zV#?i7wYRg3SnTg$;2m#x(H@63FroP=dE!^vT!~5tKbbgWi(QHZycmVkkXxD~s z5CZDb0{;*M}ho@u`q@`McmbyUE9CAFm4(NoEAjR;cYke9D>5w;(A1!UEf#KzlzxX5&xNx%M zMsLX_sP*J)(1X)=$Qg*$W7la)K#253au*n${tPN-Iv=LZIN!gcNvQ+j{Gk_vB(`X= z_HqKMW&#^yJoW<)xeWak9FYB(oDWLIY+%CLV32eqik)PLJAh-I|stmSxnU zC><>SB-3JXv%^0m9WkwQ_0??->>d=#MaUYQvE>xXbPF+^I+YXh*U$n?p&jM6E_|KOq3lt@%z#iumkpnEy116Ey116 zEy_;kM5)dzh;dD)TqZPt{1)1nPWgRt&RuPv5;`!O|1Yo)e1_f0I&AAbOa+>doU zPUS}vT;)eF^2v|V+FrhnrcmzOSh)c3lb;&_GQ)ogIx#`rgq_AWVa?yY2^-CmH^|vY z)p9i5ooiw({kxUekLX{c1KJTlaqP+HtRf^^{vn7(zxQZmQ09j|<%^%e%Z4TJKEWzR zxty3a8t%v9F`D0K-3Z?8CuD{yR(-cSpLl3AmLT2Rtrc8m8tZhjpEsZ08Hz7;&m3LA z)vcB1!0L|-0JZ)|&?0`DGGSr|j(hrls5Y_uJtT*W#cAl;pa44gQ6;&nS{r9%^HElH zD>Z|Pog0H~b4;3*u`UK%2BN;0W*+rOl%-itH3jb5fF8@1|gu%^e7He7Rkb=z|AVKWH|iPe`sAU#GL{@2x7vRuWQ((B~We&H@upz!!Znc zsl_Eiqu4MN(ADFlyDOI&F!9Rp6liv8(!nHOob*Ovk*5Tl&U~bb{V?QpLtr`>n7L%f z3iw+XZ*crq*Jjgdu>S?uk|m2UpTy34gj>^=uEm*q%8*v(>+eGrI?M>WA`wiwRcOoB z3d%%X>H-g|E2R0*Av(YSjvHsXrqHzYW`^xvZBYSs@vBViEw(8pI0P-BV_!WHI#<{s z!S-V;vV#-FIjr-J%Fs%UlLk|F>3N(34@BP!7O9MHET|0=Y#&;Ep`uwuz3awrJxC_% zMVZzxxXL98TI|1`A2=I6aNrDWJd_TdA#A6z;=w~VQxQ_^I^rBkTQPV#l(TF&wW%m@ z0xQ=MMQ{aJW7&1=4bRryXe^vT9gY@BNpVF=EjYhQhZ@S39BoC@^gtIgYW<}Y2os0U zV2MG({|TM@4#T33|4+0}flUEyePwH<&03wI=@1f>4##;i*7_r)U)a2jJ_XGZeeP)9 zN}tT;M*7TbNclH45uD)Si5v(~68RmzNMv*~auNKanvsd%*EcuOC#-oVK5opmD|G`P z#c;Vqx5z(|>KNFd9pphfT-n+)k)R%!$fK0aunky=WgH|}YO8T-- zT8^gj$@-oank(8niGIsT*icr~g;xfg6&U)I?MDapP?f_GuY=h?uWa?veH3w|{3C!4 zv!x+K+P{Rk#ADaD+0P-1(;iaa-QlsH z2don(@{{2WDg6BJ=w{{oZ+eV4QrheqUaOZ5%9Ob)6x-=^X#4q5=pVfrS2RvBnBl=@ zJ6q0RF-#+>A$X|(tgQpUDk!=dRye|mBcKjvCrCY&t5GS}EzUkT1jKG-ZIpL)45@<_ zJEgjAfq;t;eBpHfKIrlsFuVl7?|p<}U~kVx~o^Vo!x zO&G&y1=NIjuwGtI`C>!g?7y98Hf?UAYkRcY9EeB6223syHrnOPbtmmXZu@rQMTZ~c zClMLbtYRD(ww!Vlxl4QH%{RlT7mLvt6zB-z76kE6WD9!PAK2lP8(lh&O`DGH(_83{ zq;wF+9Zjjq3n;OFl<-t$li63YXh|8C#QEAhP7q)U9s|;EESAQBsnYpqNT$&bc&Brl z`C^Jb;V4wn*UuU&Mm8SZKNe@kb71!;1wujF!*)jO2+!Ubk+Z{o$?z)Hc9L;&fp}8= zAn%-=_DjI~8=%X+@u>K_nI@NZ<`D5YM2~384hVkDTsjfDGlDLE9Y+3YfUumM5&m=J z_#71~AFID8R6OxHq?tY{AXwhXz|1uy$F|c@e{r$vLjA?D;?!p};!Qj!m%e_BW~>;R z;~xgQ<(RHF0$6Pg)h!VA-&>Pl(Q?fzAhk$I^=DcImC54c2>qy{dnzo z&6a>0`xVv+^`_;!5C_ypwt}kh9GnqFnZ%CM-Sk zcUp5w?Mdr!s@XEW&EW(Pb`0a_YaoC@3vb()JnTqX_pvgwV!wW28X9vFV^b(Pa-o{WRbiY&8b8$K{|rl z$lngF^3kEwfKSG(v-uTjipF}hFh6!g4dTf^7aZL?mC;=W+3s}6q|sH*MA*UORXz?3 zbFLKlpuv$qF_I6OZVe9pxYLmnCQB@UvvvD%kY0WpQ>{SK0T?lxP@G=nPDG*I+(Ukj zJ3P!CIN^R24wxmolgNz@tzCIy+86c|QmjuRUn(1C!{o)l6yOqP!yGWv$vTAtk?E35 zzYY7>0i2qnRxFZZ(d6j$I2KqW|9lF)-?*LLWjLmakxDr-hb}bf9hxdD$tjFhfwLaP z^W+C)&>S4l|9J4q)rq(e6lFepkRLD2}J(J|OW6QCg~ zaXJDC8RexU0}+9fbb~qsl4+vpZ2LFNIeLy~6fYi~`QbPZ&Wr*&KJvf>97lpOnh3$5 zjP6V`8kGq_WBPtq?cJS#c=UdL_rH7dNp{Rj*a6R;}uS<3*^UYw(tarn#Ol zMCp;MAxad@eIo&sN*6LovAFBqs|l5{nk8#t5mUkl zZK0jnWf-$A+(KG&9GgX?Fc_8j?0LxzyWn{`g{pV##D(Hbx&x4How#=0MGO-^GIuS(ObzS(Sw&96%1cy`NKZ#uJ`?(GxwV zVW4;rB%5cZT3X;|ESBb(HrzN|x&_2XvrfIq8k}j@8i^AZyxA$06v(a@qWecbne_vf z3@J1CH9xDU5{EWJdn;n?u{kx~Ka}nE?Q#$O*H!Fv_>wh5S@)0~3h`B&(}j`V;L;B0 z9DWnMb7moFa>h&~Fbu7Ls?9do^gh3%WiB&>%rDJzZE@iQ77~i#(nr!fsw_g zuds$HMCq_l^Ue$X#2Fl;dGox%^Yp7}s(eJjf!R60i}rxfhP{X#@f_3H7avsb&9hSD znb=|)ZOD_*xK}FScciDDYLYB`-i+5zHIf*8NXIVgi0kA1d9;n|X9mJ?>#yl)Oz?Mw ztRp5x7+bRY_}TEDW*y;<_rDzoTi2(Cc1HU9`vZ;EQ>_!5pQ+-{caTBz_9mt8qP7Zn zQRQ0P^?$M0Qjg3UOp)=lSK~y2>@tsb?7q5`9+Xn*zKThsQI4F1KXUAjckCXTA!ifl zac$D$e!M@rx_tt|8nYIX7Z!P1PF{E9do6LFlavB6?Ghl4jzOGvHpIL<+He|E7{gAS z-%)*9h8^FK0(}}~iLO_5Ci-t(P2UvFDoe8Z^}ZL;rq|f1x0&TH@3+<1ljBvRT1Ac3olg z^H{v`5UiEf#zS#gVoOe*(1e%LVBTuw)s~YT13WK*?drZrHEDLU5@zx}A*UK;Z76f5 zehFn&Ur&;t%*tAtNXC-6+n7{kE!6GR9ni#F0II$c>)&#G*QXAVG7X5lR)3iBo>7}I z#B6Q00P-|j^=U!hH>^OfAc9~YSvN!fvGE*PH%-4I`go0A5Pi(j=R_YT>+a~|75cR3 zV~##4`Z!xZ-+bJ;4EpGH-U55m2a1_o|rSQ*sUgZUuw3@?TE?l_2)*) z^9CYpCIodF=|bUk@5xPUx0^`r zW|ak!NhXrboSOeB+!3?Vxd~dNpq-nb_ZvCMiHre){%`=#K?MCFQ3nw;$4EJdpi>Dc z)YnQ!j}bK4!1YH2oJ9m?*rsqi8?yu+-L-K_K6bjc z+6H4yeaTYxjhpA#;tZaLDZB~Uxw)3FJ~0_mn=(GQ5k}ldks$!x&;Wa1<_*5w!W`Dlc?GdE53WuV%0Eep#=)-@b(R_|Iy(@iaM~uk)Y|>YwDHMP+Fo)DPAiSCOz1 zAc(_{5TYJPc7liK`Ft^%lm?AM3T-OTJd8g|EZ7Jg3^J_a>>Gzu`ZE8rRPWvu8?2dQ zp7K$><^m#cVsa?IjRvw8<+G5d%{y49LnbbGbm8HMq{sa;1_gGoa-24V2Am9sJDCsk zuFJKZcTg$PaL$45Ixejp(i5;>ayb?7ld-*neB)5L1w+% z{+g`Je3#|~dZ(0s7Rvocpm)Ruj>Iim+!U&wO&(>#i{1M!sGrynsF$rd>uV1a-y~h3 zJ_D2hR1mc3|C`9gNVg;?IBk%C1(A%MR-7Ieoa54~C06sCalE7vN3TI;1{x;qSwtUi z3e=}I>E+R&1xAq5;8ab?j=iii^Q}dvdfXm+`8AH;qe$B0KW|PrRsYCXKDi3@D;W$# zyf?bA%oe$}Do0GYJVe0>Y7eLAkAXsqx@mPl`li^GDG*vFTO-9*mBOC}@oYjoy_xEg z0^Uw~RX~&DQT?3x-0iWgmkqAPO&8RkYKxLcHse6?e2AdEso%g-CNmP;WD9Px2RAvp zwm_`RNYxD%|9B!y-(>fva1iHBeKqkQOBsjpGxwJUZQ-|yipnB|Wr*NY^+RyBG)TUW ziQ;yT;HEe5t69R=utDiYXUy)UWnOGRLd(D&*hto2{k!WQXi8RewU| z<{FIgpJ&R8fGem%D!M~7CM#*XhRA# z{|my(PNU%ZA0QxlhMoEwjDfVM+nLj%!_`9g1asxjcrmbdPsKYkUe{W3PqkvI!@X~P zQki`b+ZycXFO5rR7yZS4k}6Im;v0!3h-fDMZb}p{gCwrYI(j_eM|NV2zmR32u8x{ccsiVxcFv?NRmnIKQ>q#8i)dg2W&wl);k(c*1aa z_0?1hO;7L?90fpC)>Qw9y1Y2dd|Y02da6G$Yf(IttwJ^O{5oQwMlKOWyCpTM*c}H}AU7@~* z05(;OiCT?;>MW-yi*ewF@pl`-Q1(;HUU~`;{Ze< ztzjwil^S)iVpwWNpC{E49?CDrqnU*b`LsexrG4B;TNtw5=#>)`y6gKUr>y#OtXGWl z(9&oFohLb-EHe^}eUY}wHhq&-Y3P=7^u&KjnUxbaE)J8h7nY>^c;NV`Ob@;^(TqWD zeU2@BFyn@XNW8F3kEl{=u{S9@cTPaXyGI`73;Jv3?n{X(s72XL+}R=s#8r5GTO4-H5K^ywHW-Tv4)|6SFm7D5IsLf4fJ13aSfo_wXtUhtYnWMVL z77EECWo04*64UkQS~V>AM?`t7p@IsXdZA1J9%tZ}$BAtTh7RGefRbNhxulj(&1#`z z(NhR#K>O72Brb1~k5}Iy%#T|0NFS7Sihk3trN<*eyjSFsBcCIJN6y*bL`RNo1zry2 zzK=X|g(NZ>-wUEIQJ^I$acrPI&07$;_FmQ+`cGjGwWJqBS)f3DOdQLjeBLOZ?~>27 z#l0@s=0TckZ1fN$`lL$iD(LND=~N7Kr+lz!GxLIRW?qPXqw5WiZOYROGrq|I-Rc_` z&{KR)5iu*hvnQ>cvZ{E}Vt9S;tG8a|MF$Lq3sz~LFm?wfZ2>tE76y9z{Uciv08V8X~z5_sFzj z7wcgaw$M-P!9U9Jo6P!WwKt!AwyyeKmMgWhlhbmmPYbm-{-f@J`>rBrOQw)?PIbQ! zdE?&^{hK^$^$8c`9bhaJ=Ur62$tr`PV~a46p&Fgu%GoVzWb|)Tdvt91ih^byepR4p zO|@GRMKGO%()`J~noo!v3dwJCjRd3p?$}ij2j>t@ako^YG#jy9Iqt^wpCZbyi-Wi9 zm=E|+O`l{`gikuJ@LgHVaONkPYfHlE76+%z-#7#iCj?UXqHJ z9=dg`_IBCFi!z$EZpZE|3nfDi#n`KcI_tKK?jw)z$Q|+W?vi(4hU4p+YOAH7Gjma* zpo}fyJIj8xsO*6sWxNBp;3LO@kiM^AfK0a#-Dkr~+VGFMNJ+vAf@YfxfR> zmbAd7Pas;l44ANGqQF@76NJu*`X^#GWET8P9vyhvt^U!xRNt%i2#}Sm%hP*+fKa;6 zR2#a*8O+V27*BSy2Uw#R0{`^TEEMTZgz~>COAO7D19?crQEToqB;uk-N8UN`Y?3MS z_N-LR@|0{M(ry18_^2$QH2k;4+K0C{q4BUthPW$#Pi-L^JI;JQM)5a(b1A6 zq$T`YG$f+%I8l6-21S!zfgX8mGlPe!>{=OZ{4-h-Wsh9)Xi1dOu{KklWEicwnxdq$ z6jQtC^q#V>_1CB`#`WezNsW2XCOuD&M$o^elZo*%*-gge;+bQBUFo|g%Cd*^6P?9! z)Uc5n&x~jXv=$bl(;wY>4R-yu^iiDLK>aj=vb%XM|ET&aU5y>@@#fgw#4NVm95wb4 zvPT9MYzSTgdl7s^I&pAQT4`|8I0O=z^`TAnXPcneMiKolu)?g_9uNfSa&x;D!~9IomOgl?G#-x6MeZevqY-QQAFvfUKe)u&f<%_w^-16f zeg>l0tqk32FG~t-eHdU%OSSmWZSkeSxX?}UqOSjG*Hct^p}t+pRxeUXV~APwUojRR zxl1amcsap!4^tb%!zlez8oeQ%u=2!eUY4CsvHOqN)p0aro9Q)~DQm zP$39Ihw8sm0K#^nSB%oP%iG1GM)|xP@!|+r*_cH!$q!69yt;7ZL5w~+b}fX>>8;C8 z-7?QP7BOYMlVwK=)2Bw$vU+QjeL{7J>|3T#_*>ceqxWy40_h8ej6E`XCvEa6(aemD zeoh{@^GF9#y@8UyaP3~2X~TxezLG%i<-TRv8N9C_ojp~&+p@31^WBo2Dc)>&vG8Tt zkG{k6xa?<+65$`&e-!WXZ0QNUiP_TT{cXex9OEDRMy$V~As@ugZEEx6R(;{RvHn+H#aQg3GGp6~u+OF}c_IqRTG zTTsACv>r&ZVdU6SLz70d0t3qQnb9na{lQ+;T<0Th(mQCpY?>-Lia(ijdr3!=yNw1| zkNyFge)DN>BlO?>oq=uO`&Eel`WVi7ful6AjP-%7NUtGcm?Q0#_}cr?BwCY_8Y%ol zZp`?8K}_K5tZ?W@8Dyiv+we>!pJRJ5nd7%ES$XwB)Cf{xC+fME5P~T+hELyUcYno* zj8h@2yHGmF`Aj-Y(6WujN@8XAaWQ}(Kk`I#l_N$p*QS-uzY%DYA9*T6c?lw^FOwzE zB|q|1Hc~%eelbWZ+9H*m|uj!k6uAPVXL8*hsLS)dS)v-6>q=p zepd}y1t>yUFc)ji2oSr-LKOVAx6?`KnlrgE`hOqbF`StTBnB97^wumA5{Q zwyX9;2U*}yhTfwhgO%$9@=EzpRzEJ%;|GCvDDW}hnC@6c6`9cGWX{TaC8dI)EPssG zn^cap6DnJDAO<#nR5CFevRbNHX8*#KRgzr6*egajT>6&pPQGFwd95T@Fq8$53A$%c za%^}=spXV{aa{-q*f`D<5ot;4=uD@Y&zggrOtV;Ar*eeFmM=qre}G0*9t&mMW~yeS9Lq7gfN)?Asfv zg%u$icvaf)7tijDTN+h;RPhw*%D(NTg|A3Y5xXG#MC2Hlao&MrV92|w`vri%bIDFr z4F|G_jD7<|YwDkpeWSCDEfXy;Nj{)c8D;nKLY_SoFNaj6fy%$L)cX$#%vg3pIK4Wa z3$@J9ENenD7=_`vq+SX8ma{~G;C+4)y*Dnt(`fU zP&gj882VUP{Mr~JB8+D6o&$-yvl6aRDFd6*B0f96{T!3Ob#hhMueCJKnOq&|{8p?4RNIvYthhx)ofsHnDG+!N7be)9&E<{|N6qa#fv_ws9+joVAy_MJIvI|IsNzhy z3x-os^Yve{?Ji3%hrWiSO8%&Brim^QP^`4ned7=?7r+2&lz^fZ+0EA;5XylDOSlVV zC;wOSj_#N=6IuM0cZjyFYFox+z|iX}&`xO=QS9N`pUn>WHhifq&@5;B{Kw^h-&FT0 z-z9v;2k7g%-+1D zbNg-n<6=0|99ZGCo_YvsM#ovDXs^2Od1s7TvYD#xL@~}QK;S(>;EE@ij7pA+PX04T zp^Vb9Rom9;xLM}40$Yxm#dOw%xZhlH$$HG9?-CGFdA$PrJQFr3B44`soZufl8~p#I z63<5BRr+lz4^=4u&J*#|6p=<@OlK&@!}KKIPzl3c4_6&LtSGbRal@0$2;8bX1>x?L zHZ<4Zk?jfl+znVOT4UGeZi99+@r&1Y?_$ zwx;YThP!> z&}~v!%+(I`uQL!wF_UfGLtF&|&}98qfNJ@z9A*BdB`63a0C!Un#rSWbmt#y>8oKt| zX$Hb&?K3pxqb>I-36IV}D$qOvpuL%SZ8XiB=3;XAnSGhgFDkZ|(xU#ry3FWchmg4# z{g?T9JqGmXbhpzIlnI)v5%|k$eYhdhwQoJBr^j&?SR$R0NTRGY1krDVjd*R2Jz$f= zFp9YB`+utru21r8D!XE3mf&(p441|4K?!3lk)i&{9sGpGJ%ENl(0>Rj{}A(jo=!3Q zBeDR6;dNS(P5U8-d_tAnskIl&71VohVJo$OG=O8KVjD(`-iUrrDF0*qORxhVqjmV# z-v`&Rf>X3RyTn#4-B{gTBz?M5>4|dO{~JGr>7tf9a*4r#8CtvbPKHB+9MXZ@J4u!X!WNj%wUqld2C{G z&u5hg648j1FUDm;|6sc>P*NUwfUj@fXkHBt0W`UkTvHgk8Rc3ignv-s)=d$=S zPnh^K%B+RKYbB!o$e>ss@jNJ&==E^uE;I5474L!$b zD>A|sz>k@A3IAXV^mlHU#=xOes{TzW;`mUhIwHG>v{Y28VhU0Z8C<2PROQhZ_ikU2>V8Da=rIP(bIvWhb%qZu<9kGCLLLQM$mtgbJ3LV8!VDHRQG z)VKEkg`O}+OfR$cuRg6rP!kJR?xAFc5xsn>mW~FLU{s*_-vaHe>05W;`$s`9v2pky zFOFS9kRygSJ9arVZi!0Gt6ZR9V=Omr(?oas#_`R+8k@xBT9I%)Uuh_wUOpF7)V*131w9jimz3SI5;!k3XYai1V_Kb zZ&ZjNYd=L3|7bm1CS|o1p%=Uh3Zf5(-s@Io9Yp>z($Dyh=&Vz5h*l*d{VP)EuZo&H z%wl!F^hP9{H~5k{Nb`zJ6If=HvHIBe8LRIRs3;!2P!E`#2cyU4V#9`N|H716zlABA z4>bnH=k5r`=<+rq`%LJL#A&r#AXx0BYVeCNBIcJu1i^WemsH=^n?na@BVz>O5z@y8 z?mH=4BL#iY_Xek!vwtVD^Knw^^JF@Wb_!Y{J+g?Uh5)Yjt7JjveCrpeWt4I*7A+O(XHBRhvzFA)%#`Vu^lLA`l1gd3yHRf=2^hjSCT@=?Au zao>ilHv#D1S*Two;pW;^nx^z6-ry;WmR=pDha^UF6X7iu{koEM0>V6e- ztoDFJ+RC6kyioras9C7L`B%XwT0>_+rm;sM=bZ^z^$uS}cO-A1Ee##qmUyWmFQfVJ zGSHTWep_1_c2-*&7C5sl{fLqYru4gerQhxSH)?|AnqJT76uNhwmZCQI)Ttqi;bO_u zpN&Gw(N>a4r;J=Hy|PHp1}~~$@Y!Qd9V#W~uwB+}R{cv!bFRI#OIxB^bTVM02|>+bzZZ52_>T zEH<_?^GYo*90UZb!z|g~ZK=@#K*2FEA79>fljHXX65b4kY{1eQGT+K*K6MHuYMbN1 zT|{xe>3HB$_^MFqb-_ovNyn=9^I(mY$nMWJTsv}WTo9JGq2DaZ+@ z+@GyK7<~DpfH=r1)1A?vy&sKf*o&^SJ43g{Y0nGrx|xyM*<;A9_T~sj1yMaz#WsLx ziVztGG=-6YI*2~FjD%hHG0Yy+wLd$4-(r9d&6rkH7<^gm2}flW+Ves=g|Jp5MBS7h zd|prszAR;QxA?NPZ3@*>+RK7YI6>J&*WSr^w{BQ%eC_Z#g48FPf@-3sU>e{e&ns&F z8O}yYE8o^0kpP22HyLq)&kIJ{=WL~1r)`txjK*M%B5|upkEGE0xVm{)LkZliiVk5j zGX?Lqq5i8|N0xkLrja? z3Ec*f+@~rgY9ZAM*&tB`d_>+%daBId4$m~ioo-$eSbwoURi zGSZ$Gu(AA&a%q3gXbXlEa__GnUo^<&3$3k= ztxX6#Mm06Fp@oek1{x+PMQrz1nBSEe>+kvq&waXLhEW$W{4(~LcpX?jp{QU`DHSS% zsN?%c(!Fwtv?I9VgY}asrJ)2KzhNQe{=vdX0OPN|aW_w2XxlK%u`9l3wr#BFyf$YvYVQO(<1$)r zK6~?9YmDL;I5BQuLSjV$cOJ?=u3sU*7mtJbNm%sL79kVDPOisQM1)khc)`K?8nc-N z{eHbu28cA|hO*+2y@7;!5hdo?+zoOn$M-MU7Ur1^qx8fZSc9BohP|jI>5Vs71j7tY z`kbtkLA;?YNgW+fs@bMB6DM0NvJ~ng{+0UhpES4ZMCt2Z@)P6QTt*{26T9W?5<}_H zZ6detWxmGbH-JH;xT+GPP{YuXFl_*6EuoS&+MA)uxCx!r0WO-RH!`4ey`o?tyju-~ zkJ@l3C>TU1F=JFzb9hs#Iyv&bhz8tE#hhnl3xsX_becLX4YMss0kJybNtcDoWU)2{ z?IcZx#ul5%-H`QySUG%^?nbIV zNeUpc2f!{lvIcp(eMi_eL|wCIhPI8u>y~^iS}5=NE!Py8hu&L0h)% z*+wtauV5%E)=q`bH}>_y?IQR&PXbln&g{uNT&NFGk(xp!Ct|H(-R4+p7*I30_@Feu z$;i#lxl!oVkA5u`h>`6x^}x?OajxHv^dWOU)}@R)kY#{TgTQEgCpHAkL16DbK*?g1 zUN|7bI5HspkPUkgT?xJaffecEaJo5Q3@y^%1yFI=iF9QBB>hJUs$FUdOEer}yBp15 zsP|E!{v4(+MNV>9F06~5BYha^WI;XfHjx)1i3EsR|A&vkKV z#Gouc1o;Ko9t-WLr!wP*O`4B z=oLdbt(VuWG+d%`LAe5}EUPR>e+F`B-5l)li;X6RrE-fxn_OD= zd_&ANx6`X1JO=rG*c++(aY}D+d}wo4aOoSNxt%R@TP>Dh!cgk=jCamcbI z<-tgVyUi>v_S7cmM_Evm4HXThFPbUAH?;SZE+JcWX?uYq(^|jUFJ*%R5y{5!)3141 zgmV6?bm2*YR`td-mMTWx&fKR8|CdS`sLy$-mi5Nm@SkL@!+xSbjtSNnD~%1+`m6-2 z+7pF&JyXth&M1S#ZpJE~i$8ztzE*OoSW2;u3fOSc-Mz>Ww+YHUvxiKMV}p0&5Vl;i z^{eGX9flewX4YqPvuOS#j%^bJ38TDhw_>I8pWy^=Sx;p2aT&G^2!VMdWs)1C|0kqt zvB)A${|S!)muS=tG$@!0_K}h0EHOUnt77rPv$(h8Qg@2Nb3Cf{$8K!UlkVORmNf>J zHn2?65PH%tE;7?!7E7;Zzh-tr*+i7;omxZZRSKXU+39;)h7PGWWjrKH302RMs4@qW z$AlvNhtk|3x32n^|3X7yh7+20VsNwj}^aPi*Y!kwlZI+*{G z)Jo9vI7aM5v*0(8(cKWP>L;nlVYVW+{Ifpt1-jHM*7P>5U+u9yigNq2&uX6Sa&)lO z?fH!(kjgqyt9(gpjP9wfd{ji6b@8>H1Da=NaB+Q$=MYn)MYF5c5X^thQF9FefrhDC zQ^J9)vA!WWxq;rqjsMgtf0OYgS5nCIr|ghkl(SF zli@iO^z3oBIDU2!!hNyP|CQ!{t}dx|cD6ouj{Ee+lUn5-_A*9cX;DvTxDEZ(pHmPv z4Y5K|`I7dw#xYCl^U^*OT59ibPMzsKxbc&Se=h|kMbPtbD8H8TEQ@OcmHVs(>`4X} zKa}GIyO8H$s9etlpu=QHPDPOK*fLU(@U$j)_JkM05;|U~6+|&M{+#=O<7dBCtifIZ zR~0yI4KCgi%C8D8+y~U00t4ng1Li}6V7@{s1@k!&&g-gyhIK0(Q+oDVeHYcuc1*20 z{uTJvdOC&H$7=b+&Qe*tH#|r4>~-uKCKqNP8y=Ted8Ilwx=+>BjRr21pe!D$Oh9)I zQJgA7zRGZ4_#(iT#oeX~88_(r6a%68^K;4)u@i5ci-#WdXaxJW>VHAP22VicNCk=- z?fg*w({d?@oS%O@GWvw-la4KLdlrq2xYslCx3i5XwYvxHW6iT~y60)fPn-E%Re4~T ze+Ea+=a&XOJ3^kP(Vq@^cAN=E1c!mjr{f$y6{B>KIkpHu_+Qv6O=ID296wzPuMobE zW^f6F)cl7untrOEFqeRcf!c7hK+-RfqOUJ5|gG33O#qD$VR@~^=J$}A!NrB-lbvOAZ2j*Dg178jE zk1k8OorM7Wh6;C5a>^fQiFa4_mH&AF1Evk7(x(=P#-viHFXV)YFeJ;g{=i2!Hbj!{ zKFV0FroF0-X_GCLb6FI{_AN#{PrqRUcaLmB$cAq$=4G%LA+dgHgkZY`3)d%ACCk=h zI9@Dkh(e*{zQ+y+qd$!Wtk{6XH8gTnwe~{6iwMY|Tk2bFl0g@_gm)Eu1N<~ z$_%W^qpcdM5i$in>OXfu<>TOjO2!oQ!E+Y$^@@Rlrb$6NuRKRV(MX8apOMf)zO;^k}(I3|_TOn3?5lqzM*q3l}iWHgm&jV42I(oWoXIPMR=WT{7aK zZe9DI_y+&r2q-n-qp*8&6`|}M2lG2)Y+oGA&e}pok5I)b)#${1cs4pQ)#(z=wiD_gp2VqJ$`~$GoDvuZHb0wQ5V0qOl zw4lHQG^hxA--|N%i~Y5;&(5gcA2=~hx|FgR#tjBa46hbf>}Lvh0K0uTHvVR%$IWMb z9GvCyHqROt=WUsl##-N^KM{l8wL>PM77ppdTlI_1BJ7hnkuxU+7oMn_9e-J^Co&@* zGsJO}py5>OjyT_cF#%-u2w7ad;q%Ml3o&7@F%B|;bC~_emy}R$R?4aKMDQl|@0$_l zcu>w~Aqok34zVou>bDY0*oW?}{|!>idFB`N-Iw>sr_}I=7)dZ^4GbexZL~3({?PG? zhXZN8YY~xQc2eg~oM%WsIQjDk@u-FH(}M$p>~Dm-28a9+1ekv2+0sIlhZqeDpMBPt zTv;pkqSI*%W&WY&`~$DzKZN#++>a%f=lNHn`$F@-qAal(ZM5@*#86n8pin+|i>vDw zu%GCBEQH?0#a$2ahFT*<%0Cff=Hn*kuwm@!t;#yzH_ikxE()T;)m22I4392$jMeB* zKj@WyP<$U{6wN@J{hUntUE#RW|$W=LQ>Ev8e=Lu?9{z7 zZ;9SSLd0`C8hJqJAr|ij!Ct)u(sx?sgddOY5RU>)C~K>LtMP)RZ7`C0i&UEY$}O^)v*&Z=1M6=pG!nzsS(a%g_Lftkj8y; zh2+@9@+Hv8&ZAb_0l1-2QrEHmawsnc)Hij zC?oJy-1^MwE(<*3EgI^0y$$-X>SGaB5h<27u0B??TlId+5qTb-@FjDd>=8Y}0ly5t z?O=boo2{?7$M`_iK%8tjS=E-i8*G-5F=!sJ8`xd@=xg%h+WhW zZj>Iya`bnU&H)8KBoSb_-HCmog+NH75n^*ET1+52jgV>X#K~sJ6Gq52?!+t1kcT8B zni17$^uZYqgp)C7uvR{z>ES-*|18$aqIH3&$x=3?P;aFDh31Sa0|kn~V^$eW{Wt1y zr97fL90@%j$_Olxbhf?Gh}h1X?gV^fm$Yd;Q9TNutA7dC8&Vg_3CI;Hv5}WoFXSz- zcXsH36T}qQ9`$(~vxU4}r`|+sLvp%|x5%yqyy?FJW@ML~qSPN#k9Wx9R`s|{9&30E z?42AVgjnOs;xsgNtym;i&0rJbq*)v4e7ax9BR zJC;loOug@h<wM) zh(?o28NK$4`i2FI{7gJ)lbLurVaF&I6Ad!WiL@?roDj~!8#V1S;}4RL@GsoG>bEd*Q*;$p_a4x_`go`zdXx95 zD*#3XHjPtOQO4<$|47`@ahBpj{RV1M-2h;c)i8I58lQgXmo$5|UbpElF>cBok!?uN z#{CK!iteSUF%`(}rqx({R|ihm9KXARv+uLht&^%Yvw2cAo>iiweMWkzW=$^*bZ#yU z^llEVNVoYDyGF|pd&1t4ny&w=lLik5FICqRT99tlvkAHFF%tUb$@SEw)icsJ$NQ4n zr?icXb3S9SbZ_=8!LwBPbK6g}?{EJskbOjuaMavE%1}zZGtT)U$1W^g#k?Ca&kG-V z243Cbzc8>do$fP6HmRz7uXVH?p0X9Nd+2tS@WuKL2i^rn)YputuSlHhB@VJ3>|mRD zbrW+?UV0aK{iw;L2daVa82=Aw;;3myXdAYC;n)NLOC6I(cTx)ceYoCIM@8#3rH)PY zrH%!OmJ#yd%hpoI+pj;P)O+V;N0PA~QCaHv;`QvSkp*l{E_J*!FWuS!tfo@O)W}cL zUp&FAioi0s0CUoZ0*$FW*l^Y$bs#qNVLMgyCd+hY?+ZaPRhR83h14J zLo3LA?pOqJv1~dLoghYTjTd(Fm0QslTqx0qLbFhyRmYxR_+m~KyCXd^QfVy{8$&nO zm%@b(`IDI43y-Ch*_$Iz0LMQFr7bJDV-`SL$B;Y0wF9UvS09u3$qm&XSCODW zPe^W&pQfeBNK2wajpBD~FIu3HV|NRu?it12)Alud82_TAF0(8F47vM;x?lI9hTaz* z0-q@uz91z6-;32oqHj#Lsx86SY2Z6l`#c;)Rs`8jPz!v(B~r;8p9F1r?X)!$Tjd|8uZ~4UuVE=;GnS5v{aj4 z*tRReP&`NaD?7hGf04R%sIDo!b4I=2x;s96KF{4VI(beA59hgeMz^Epq{U*{Z7mz( z*ww;;)!NEW-~OQPz|CYau{AuYZj)6TQ`b^=Ytj|*GvXZ&wh+1MG(yW)c)0$6BOtnA zj$H^rk0AJ)?m1F{3IOL5oLZ%xAx9TF-MySLskjuyfV#Ath#X(g$+><;m46d?$U^vo zBwC6j?ksP21L1ryDODm>=jHnZ_88uhx~`zoFmM2iU2d!XGV(r5{|x+y)3V_jQnYxw ztH7njb5a^?i>Fr@boYW9y?hKLiw~Z6>b=4X-kP}Z$Zh&$8iO3LL^^PlnkHx{hVbLD z12Ev7ME$5{z?JrZEOZ zM)$#nJmuv+>?SQmJlU~I)@4K4c+aetyTKo+Z+hcN^_iulT~zRgz`|I#t<0R8MUO-n z8~6{5AOj~d+6iPi1m~Y(@Hc_pB>%;_u!}m}1($)GI{{Os(zVPIK4cMRtOqV~IUu)t zsuL{;LF2S6jl1IHw7@wxwo;H*bWu=IxeO0CwX}y4@clQj)b%fwlBrQjY{m<-Ct@iM zCfNhaL?o3SH%O)v_OYLJi@BdQ>)ZFU*sC}8voHh0(IITybh8G8J3AqlY01u(u6DIJ zxMk1W??sP6GAck4C7BhNLNNWs9m2~92NoSO6jNKIZ&Z}(jlk{pgl~OPM2m90*3h0R z;pVxQjyu8p<9c$IAuGVXZ9dU4Pu8u^mUP9KSlCyjXUVf!%Lqbt8MVk^Sv~XtUpNB$ zvEoYKjdG>Uvqwx8byjHyg}MjMpja+hGNc*<;}>E#WFa=rbg5r?4&*uI02TMXs$Yo9 z^EmlXZ-0=XPjOIX!y=>8rL_th#l23Vo^ZkzINsecE}fa!ny%9W;bBW1Bbm#^u8DeFA7-0`4{U)5dx z4EG7If9|;aGmz_PI5sSy;RU8li^4h3YjMmzD0p@o_`q099&LfC0y11g@nIkf!!g=P z*yrkf@|1NdZt*_}|8 zv2P%^x<`bf?fct~#lqT;wRa1MzP9$q-tT%d%Q8jX=9c1NkL15=X->p0lmHI-sS7ki9YRre21^p7aj zw%q|bRR`j$KJNeHjbUr)pKcsg8r-%-aQvDGq2hIGff+`CtO%nGlry_e7yXmWaQE6|b+E$HGOEs9M1e<9QM{YI|se>0IG;I|5m zzqNkd`dZyp9BqhZx%FJ}UG4kN6?`_BIKZg#7%S+imt~}|Y&J8A8@9g*9?$5=PlK<~ zJ%(|hxg&8G???C38DvNp)VkhyL)z|rO zseN^NQWGnCl-rV2<8C^V*a}eNS(|BPdEdP`TgeI%I^vrM37i;)lp(S?I6FOwS8bT% z>3zu!$C7!s2JPvGuSgH<9R^5R;Y@22f(P3m7?|fEpve?PB(z_V{-Y)(*2qROaS_4| zmv1y3PCeN7$e^yb^Yf!76;t|HYPv{9P*_(`Ieq_)FkiNTFXq9Jmk8j?1)hIG6mXgX z9Qg7=-w^#L3c9{{Ad`;7J_rEipcqs z5uvbU{S!x0tP=6xg+UR1WG@R1mWZeab!(n+s4Ins#)3Pzu21gf#YAZ;%aLF{C!0}Z z?(`Pirhh@c2z5Ff3X9;au06qHWV99D8_NTUuX;D~ z;6bJ4e8Iv&GXX zWbI%XYwuXBcW~yrvtx00N0Jwkm?t>iE$$M1U!n^9E;+<$W)j}hu0ynrv@R)KK)=AT z1vm{ogCmb~b0R%cM;YI*W2A%L&9;V3y7#+`&2c!?j z&%zY+zY9~C;R1cz6S7k^f!N{MV9n4k2oDDK9pwc|vR@Q;DR+jW$B6hO4|cmZeuEvGU6n@s@bV5w zkeEYR=fmN(HFVsOE;Ct~o&CFm5DSJUe51aZr;dfa#HG`99DBdBXYcHvr1dnp{G%jU z`~HDs&Tva%NBjJaHvN19X%6v4)l~{QD*Fz9;CR*3XSUpeg2&n`mBxz4cIsg1#QeUA z9(!r>zEZZY+VANd6jL?;PuRJL**EO)lswQqytwbNo(7vwdZiK4vH0X;y!141$<^U0 z3y32jJq=h2Y5zo+r;aw>TnInI@*#@CV<0ssBS_}4DZ1&45d;<&@7U_UITo~D7!fE2 z35tt5+9AXJ8Anp8E{JoI1Okmq*XOG!z3+8N6p4_?Hlo<)&)Lr;CC4LFrv(ZJlDjvz zA7h;Dj!e%_^}E#-+x~XF?VwON@qR}~J7a#L^Fn%37u1w+$uyS%#8LB}(3gp@>mU!) zJ<;^n4x~?(^hA)xac0^lR9X}C&(+KHe7k?D>`6Lmeo8?5CmkNAfk>`n3+gJ7wswUT zdH>{2nQFs#O!wIR#YzKwK9LQg?e2$dk+j9dZ3ne|k|ftZYM>yTrS`jE2FID;?srJY za4DyYa)zw}nmjtv47)C-Nmy=PIKw1tEhr9>V$DK%w8CEG*li1jPz@3L-o}U)=X1%^ zdGa${ei+~q{Hx2H;o)T?!^6r(U^2;y$t2s-0xWJ~KS9(A8EENzbG2Jg&vjy7>GT*( z$(_E?mlPdubW;rZ z6RszTp8XBB;$mN_UiGJls6}AH;VGWjT|hGO1N|jd8p>*A=3kcRPoa5h+HqBlMm5g% zK1M}G1G6D9hV9^X=(5D{c{^;%deGvg9aujvix128dLkxq7B@L|VIw_0L20LdFN#7= zS7=sR5oZ&ywX2i@6;Un`5_tK7&i8Kh79wIz(?bInryz*E%{EahtTEdS8?E@Q(c$SEw!eJ9w)THRE7R47Z{S~>kP^B`ADAcMAxqUlOtp4m5FII zUi$1$=7sZOq4Iu(@hN=u;L!UoGD9yqBb1R?`g+*(+dDhPqHfl;mL}QL6z|wlDi0nf z25DuJlgScwzJ^b&9hQlwp=MXGvRAs>Y=?FwpHa9)EF>dR7Sz-h>a^JD@NC&Q@L!3J(KXyQoFFv;?nOof6lqq`tMJYBm?z>n$Px8?r%YGLyuJD}J`7!C?PvNkz(0yKAEO`*oz_#WnYlK0L$1oT5v(O8aKncR zu|-1;>Sl;F8p6Jf85A!;sNvZf^h6ajv5649v6rsVDyHv-$i#e;-PzM<vn~Eg?KX@Qn*}_REE?aSXf0 z>(|LmVd{=ujy{3Hki)K!OSJ-({9^U(!!SxXD*4BOeO7LvF4lKL3B$Q7t`S$tOrfMu>@OhWC#A+|3PMs?_-W&CoSFtBVHpKR?3?TftO z>jiEuMm3oW;)A&^nYbiPM=TBB7mw3&mqnupl#YasMP9wDN4AAILK0VIL1lKMNW%r1 zZHJSY=8}GSvdPm|@?@2#Q}V?2ZQznm<%uip0++n6#l0B$f@!5QL978Pg}94lrc06D zHMx4Y+6r`ONs}UU_!J>C`aMp0KPB&Q-r-LsjM3uQ!wYm`N07}xNiGK3{O3;?6CR@_ zO>9h&UKSo|JVJA{iJ%p?__pVI+b;+wcI0|HF5nUqgSnxM2!5Dr>-+J!t9UEAAuX1R z=^ChB1=Py~^`fRVx*^v@alFv}S}m-Ux+Lwwjh~5J-M}3Wc8=+QC^o#ZwiPYL&y;$9zV(ZU6lg1JiV;8r0sn z6@`$MN84YK@$vmmMgZZ1;%4=DhCBV^6HqMWLhJjI0{a;#?Fnz)D&am|-~|`j_IwJ* zP&%;}TR6Mfa;hADyKiWUrHZhiXE?}|S&V`GDmB#DF`H&7=x9@8{Y3;hcAugs4WC%6 zKT;CUPeh!&RLB#%Ev^8~F{fjVDmCElUXNFA8DgZNw?eYk`d4N=Yj`M{#hXp~nVLJY1WVjFllOIGo-4*(Mbl zfzm}PJ2Vt%rHC~gr`j*rA2_x(RLyrdW3E>PvU8uQh(3UwVq)byL$ zUjSKXkolHuV&~0B*yq@to9ftIjEShUga)+sE|6me>+J6S@}U?cN_f+Kx_sEoK>cL* z+vU2_+dKoBk_VLauUy17*2?;E7Uzm5LC)eum_Y`Lx4p{KoB0~7Rkv~aC|IJ)W;lN< zaZY_Bzp%wnbOCrxkub0EGq5j>D*IR6r8N-=5oM`Q6@?X=Jagy+}3xd36^x9Guher$_P{<2ue{3Li5sX8T$gq z90?5<>`!he?vf>MEObaTRAd_hNWNGzxZ{yKw)SazC$a2{xc7Zto~$(#Ka6cyYx?I+ zQ$#hQ#uEOR_+4*RopC_|^eQm*2{wup=sAop!%tP(p69{8K&cjBIH3E+9o4=YpOHJx zpuI2&`R!T2Fv5!J*Ve5F4Q-*B zcJ1a9nfvtNvm%i_CnvHded6{=WYEXseEe)C9}lJTvHHx9C;50tKJJi@E6)7b&BxvH zarPuW&OP&ECm(+yAJ@sp%g^{&Cj$iE@8`RAb01IZVtH7I3FZI)zyGgNza60ZJ&c?aFG~DI5Yj8QZdAKFGb+`v`kK=aX zT5+AY&vEgT!HK&VHx)MnHxIWAw;K0T+{3sXxLvqIIQiRpz6>k_f8L)nS!}jAyZ?J2 zyeeREuKT^k>8ctCQz=LpUnR-wQN$BaJdHz3pi{VwtuB7H3v0K1qWnzfr&E5M*YlGj zKU;6$XXh>aSmxoJ^5c@99QpCePnG;^l^-s#hTACQ$5q5nj{IzwAFc%i%H8}}*5cOr z`PnKzt@6_?Kg%}oQ!hUVz4?LruuvMn2jrDu&q4u-{NMcSe2$;a=jC-bKNi{V*#2jE z8uZtSriyENoRgwDTmNd25z}%6pFL#Dar3CCEW`AWc+pJchSA#)v^&^=8`S=68|B5sokyk4EC0XO`l6TRQTiO z`*zcR+VpqeOF5o1-}m4PoR`e^deh%)hVL`|H%z}3A5PJ7$b4@z{UfH|i7)sZH{W&h z{e=16ZN8s0-+N8J&-5+t8tJX3Z!>+n={rq7)%4R$e;mHxL&G*zcm zFI{@)@`{obf+Ej%tth!`HU7Hg6?ZLPZG=_$R`4t@OPBgqu96SDEL~c*5+p@N`mO^FOc7T1cB)g`_X%->inH!uv&m|;!mRnR@w{H@3kneC7oroo%pku(79yVcmG3J` zN|*ar`&@UeT@y{_x@+~?3V*qQm(=O<@^4RX!XKP`mCvBBAT^MG4Eo^DvF`@z=Z3Ou z{i<@GpVF^bRk3dM^1DjzDOuxl-Lrh1l&@r^>pM^w9A|(wt^qU#!T6uhuq?Z4?YjHE zg;2}fq?Y7bJ$93_=F2KgdBU-}J>xXxiF=D&sG2WPYEnB{3?V9`US?jNGQ6D80>*#`#sE>Ifi<^CXxaF30 zmQ{?N_gE_U-N5r2{JY>B%Pl25l@f9%Pvz?SYRgrG8O~z)uCx`F`+#;AQkW?gBjwdR zO%t>&cPp4{_+4$uw8*S+Harz1(p1Zw)fKs`sTU&z9@_|;Q(ht>hS>Yu5?|r+)&4WW z=10SXZnzb9&xJvH5t7M&g zC+)sL-|wVZ4F1MvOCmhA%=hwlAx^tE8fW0RC8a zC_b76hw@oLI9WhAE%J_Iso`X$;bcAGWI3VYur6_S7s4kI&g#O+;=)NIQt?@fs5lC^ z36oWh3S%i_z{Gc%&r(-oa8h65qzvKlFW~{4z}bS6^t1)bWwHCk3S1dIdWz*{iOK%d`(zBjbL9({WiJ(uQztxXIiSCu7eH{5;%N+;-e| zjVCL>&&P=2V@$dSKRT*>-|7_-krGD<@_ug~h_kG|Pv^Gj8I11&?Y~6!tzrwQKto`VmEm%e8 zl5^8nLf299wZxOzehQQk8l0;aOUp#KZqh%R$GPDS)Y-T3C_>FMX<&@`x#cBuR;@0{ zUAL+t_tyD0sd*$i7l=P^R{rvJ^VRwcuD}>WRk$qWN^XUfTCjHBtea-@NsY6)>(+VK zu3mN5eQ+S=M7p4){GL^7So5u2lV9Rnxpsxb9fcD(-{znAh&dE@64#6C!&yE?mW8w7 zoVYZc3wH%B3zvhNhx6hV;1=QTz%9eAz^%ls#;wEoaQEUi;9=zWw>>?D%}6g-kSi_l>h(# z=eAHOLfMy#5Gv>Hx7)2-3Rj9KgwRUSriHR5S(C{K8I0^^G#Eld2qAmcF_w{G41)Of}ptGOVo6Nf+-5fq)u^h%0h0>e@mxJ8DgGvv+@ev-)mfAPEtI;H5;B+e3L zM>x(O!lov1CWi41i)VU8g){zPNsL!w5}3~TB2C}aSjH=L3=x-dX?)YunoGtI{-eytll;L4A0O=nKHBkd)2`!VI6j?^GM^sJ zv>)w!kt(g#dm*-P&>u3@j~C`3BFU61Uqji5RL5T67%&jw62bnM!)ZU)4`rVK`oKN{ zP(&U_g+GNXq`Y$ zCLv$+L=kL+Jl3}JLW$`LFwh_Dj{1tk-*iLzB+)-7tWL?D{)s=>kT2e+p3yTJq!@?4 zw8Ee(3bpOb3_`vA_a#QH)&A$m2>)u^|FxvYRP|5)val2Q^j~fNGq8sc{)w1>@1JoD znasz3CfGatJO706;{V@wfQ%WLGqYyRo-=pe{Okoe3qQ+U^!ehvB}n(-fY~8l~+Z{WLcJ1C%{N3JtCHoH?EIoAiNZHY2$IDNgJazia z*>e@=FI>EI`O5cKf4Fx2#?2pZRo?#T&fTBy{c``ouMZzR{_RQC)8C&xfAPo5>Q}Gd zynXk+h7p;Vnwi(BYhh_s&)TMb1KWm;8r#`7Y1*uLi>8$4;FcyL9d5 ze}l$??}VPabPq~ReWMve;o zd-usxrcRswzq|bZyVL()u79r{-ab8h_15?C?d#{?uRp%e6c{vU@Q~o4!}$9Dd-wk% z>R*HzAo?Z$PBIZBy-gYjwF8p@lHMj4B)v^O2sH##0FrKIGe|m*?I7twib2v@l!BzI zC1MCRS1?k;XF4!5& z2T7Mx0Fq8-GuRE>4myFwpfgwsb_dHrC0GHfz^kAdtOQ-b`=AF{1?s?R&=X`{F}7ZS z1?Uahf<9m~uoox>dxMT(ACLuoK{ePH^aM!gE zpe5K0v;rMKYmfz7fLhQE3M9JB)Q=_p$_&>9pukX~G5YY94n zR-l~RK~HjbM1IH}3?X+gn(UpBAF>BC$R1ok_AJIH*@NrJ9^6j$a*R*12g}JGyhQeD z)ECL%Ba*fB_<#(W;TKLso~SR-3T#F6K|YCkIN7^h$hFdF1{q6~Iy zV^D4eJH#-Kg05X}*hNJc_Exm3rHk}tbdmOqC+%=a=J#Nv|DtO&w=<+V;r;Wwa|W)w zKhj6iMS6a^NUu*AeXrk2d6Yf}xzz*pJc`25mfDQHFfQ8R88?P0%&Y z5RSCabVVD&)4MRb#u@yNGsKq+EiYZEhIms9=_eZE8DmI?w4`*=4xO%XoW_CP?+Eq6 zyT=*q#~8{-^-VQK`e5=&I$XZSs4S#!4&>f3QU7pedNA}{rat1#^yGR5^$Talo1y0{ z^$lleCHit^dSl=NUwj{NM#zCMQ@?PAhJv2!)HldX_S8R|VTjsm9Yo+ z4vzX4#Yy!*?^mckDSql_&PbKkG1S+{Oy#BiMsZR;sn0pX2d#mq-%&nEqe6X;%){{4 z4^oPut*I{x?M4038NMl>JkgIRCtv`mNxH`YyF2<&%Gl(u=E4>cf;b z%1<1ZXMZlw^wvRW7yezoKUa3@K4u&6oT=n4Uk>*#yKh3Gs|EPZBx$+2OhWrE=+KkE{2&r}-;>Q3#ZjJky zH#cwa&j7x?`EkOxcMq<Z~-%L{4na{;Bnw>zJPH#g?_^6~kg_p;QEUifP~ z&XY0vC_TOfg!KHmyzuqbhbt`~Zvbb{$Lr6v0AFu^9WRX{zPAYR261i6$IJIwK3*TL zOvZ85Zi6^(RMpO7fAn0TZG8=9D&t@-zf>-g_?8pWA8IHI-zGE`h5Dj7p2Cnz?J)dE z%1(PtJ|4a&^M3krpGV;R1Q^CE z#p8`O6VmcBYL7u&-{ZsfF!CQ@WIw>rmJ|;^Yw+m?ax)5V)*IS|{PZ(CU&tK5<^SWl zjz$yJQxZqo6H^`1Ufv1JwGi3T3W{_m?{T*zkNCCKy)ss!hN`LH(!A3>&PJ?Vr< zM^p`YEof#XvRwq)f;4VhfjdD*a0^Jf270c_A!mc6OR5X{Kqg(rcE}cB0OWOG2zUmJ z1`ELy@C29vehw}G_k#K0QE)w21a1effF)oBSPs&&{SsITR)QD7Vx(sYK7xE6tOjp_ zX7xn)NIuE|o&;NgyFf?q5GV&Pfu7)c&=33u3Fx55v&BKfcwC?;8`#aybTtB z*TF*YN3azk%_5(@hBn*@9dISuqgc{HGfjmS2W z+!4MZNV+l|Xb1awpaU2PGO(8dEM(f@!+0J7j}&=cHD z_VC{X41gRAIzny=hCrs(9_b{tU^L`eU<$Yi%m62V3&5428sVCQ`H+W`JLLA@ddQLB zcJKgL3LXI~!0liqSPWKyr$DBG$o4qkiSR8zTgV|G?eXt`tsox;<=}qM58Mbwg3CcY z!nFjaK>h-p3yuISP!1WG2YC`mx>QfF0P=j0g{%g*L(TxzkX^wN$TPqI#M=rihddIz z1jd8Gux|}kLLLP+LpTNa2=Wv#5$W|fkj{<$nS&blXk+hI}Fc!!5og= zlVFbIcIy0dJc`q*@a7n-_XR&=x!pf+KaShs^X6FWWCcI`n|R)y)=YwZ0#-JHdAyN5 z?N$VP+RY1Qeiz8clWxc}?XCD#e1y^Zowwot#=>3LKax(w89Adkc|8EHE#miI^m#n8 zr!_`6LeVGOK8EFW1++4ueG~bK;Od9cbw=$_d3n7-B=%%vrnD%$VCFxwz}wSb!Ja<( z_|Z&r1FyTFJ|qcs`rcgAol9DW@Zh8>r%&J5@B!Q1m%FTqTC;>~>icykPwHg6uw zwE=IAH;N~b>j%6&uc_h9^f?M4PQDNE_LI1_=hto2Lga_9N9wb@IRd5lXg0S0=$}3- zC-~t%6T*k3zk>Z3u1nvguObSF0Uit`!270;y(|=>oNp;+SgH^#=L=;ow>hcru_4oOkV#I#`OnY@55^p zNx$ig+N3h_dvLxV^JZS_$$z$aEce+SUbixas~=uJGLGw4yq<#3kDy=RCDLJ#PHP-j zW?qjnj+<|Iy%Dde9s_LA2r@cot71M%8PUjMnp}&G2j@Q`ox(2?@cr&lj<@FANAF3mMJn;G(J}q8{$7_6f9bPzBM&8V8fQ9`# zea@6FLFRk^M>&zJQ9=L5YmIsRAFny)bv%5!yncZ1f4rH`CvT>|v|l3K6|ZIHb$Ilt zVt&6#bDyBEru`?$d??VeEc*-1Y~-;$xUC|z=)rvm8`skD4O@}CwL%%m^nweP&X zk#BEacS?ULEX@skd+_>F`s5nv04aq;q$ubEc}wJ2kEl&Nasrjsj zK)B<8lA7rsn6^5gvCla*l_7l9bP?z9 zk+04!J7zae;psl3OQhvui_$?^im@3dI+k8gEWKee_O0&a@@CUkZ)xJG_;%ur-zWWk z(89~*VChJ~kvnS}-2 zj2YhV(rvh^bkj|QP#&Iqtv)g2SV$Z(jw zL;}~LlgB6V9hnO(Cl%~zbVkI!PkTa zbZrUuh+{8buhZ#X%y=5Ew1E4Qp>3LO(p?War)#kvzW~G>H_7$*S~vS*Mfs2m_%^lY z5oek78(mwUAF8iULimC!i47gM>m~$jbIg7QIrQnHwkyBYT^bbFMpudal}5d5X}?pq zWXuAyjGu6>W9ZS0&Wnq5&o+dgDJ;V`r86FkOg7)GTRnA6hjT}oB0k@oiR1R@CdC&t zx^If}2TSkvt9PYXm+9B<^v?{+Kzf73yd%2Eq!#JA2N<6PMS&?@%5?I+B}XmK zQhmIC?QpV8Hz4|64{x!HJHuKwN)11%b8h9Y4u zozuE0`v;w|KSlKydui38)4HU>dwIQfZYc?);O_T84DtIz0? zW4|xyFd6v^oi@4O zb&>w{wi(OM>7tkZ{&H$EPBg5r>^a=3LN~o*V29!3P~Z38s50~wx?_#L`)=`A^vBKZ z2218t=(avPIQ3c>@>e{z_4s2II_V)c$M*rsyZOSIA8IOe8LOWDQD1@no_6>^chB>> z?7i)Kh_%R1ZcOuKlg{gwhd8%O{~i55xR9N+>%4ASR!z9aIn+n7#{PQMdEKr0)*W1e zJG(Rb9{uZgx}ba2cDPh9*tKgW3ftNGsOdBIH!0}Rg(1FP;|<7PU6 zl^MJ&u(T~N3oJPB1Lt30#t2>(7+}iF0>xil<@^h*9K_249c#Yl+y#bi<7I*Qqj*_h zMFUCVdnGhUwJ!V6?d zdHDmGN}V0*gMJO5HAv^*lWviIFo1N0^b-SZ!NgV~PS=_Swu77j)(7caejAXEfwX3R4t4~q!A>B9^9!+zA~gboWfaGhFkTLWf$WJ=kd|At)FSJM zDDJCJ%;?wz?f{t4Vd2~wEG{8(G=+(cGCB6x>U(dmf^Se=cA2XY^sWN=SsnNjHy z-0{pPEbvJGG%7wSEhTI;PCp@^!c{fB_L`B&uxpF=Z>MOLn$aJ=Mv?oFKK+6Q4hjr% z@$vJckUmK<6QYuO;k$pa{C5Hk(LEeiH;jxXxGBx7wmAE&F~3R_+^8L>58Q{_{ZHJe zZA%dNE!^H3+)7~gKYN+6&{?BA^j^mrzkosU=s}hYsq_iN|GJCS{(bzpI7ciG=PU@R zQw^<$TxhT(cfpP7pUj@Pjl+;#BK+Mjiihg`5#(y4xX2IR0yuZxC@$l06jveqIijw} zOc#YwL-sV-kvr#rKgRJ;7&`xr4t+ZTMfqq))bSbU?Qmz}UX8m1_Yb%S2Koec-k?>V z9;NS@?{v23`?<&aQaaw6kU_~&Ny#C;VaW;cVlNl5PeOcD{OG9I$Pj$jl#cvJ4w)De zpOP9MG7v{7;dGIZG_^7$5{FmBMoox{O^%LD#xHGso8P$TZ!kv9#khwX$9Cl8ah+M+?@0~IMIHwU&xg;eg zML4h$iZ&E>8KMt%Tt3O(_@YyINv<$ZkasrZ=QlzA)IGh?N6kYl%!0p5M)3@4jPDxb zruYSS{Gv9O9?AM2Fhg>=>%r9?=XRACc^Y^o{fRtAw%r z4LA7_+>PsDnUt|zft%d%@|$BMPO_!662S$y$&Kb-qL4=#`#2Jlv&;PpH=LBo<(b0# z-9_shiZ55p`=v6RHl+7y81gIRzZ_x6on%vQy!*s0$VB7vk<9ks>zL9pPLIkc$Jx8& z=hKVwV(gdX=zs7_;f4Ge_d~KD<@@*fo9WNk&cSUQ{?q(79`MiZ&IAA1ecHbWfAJId zPxC*+a2}9QzEATPF}im8pN21*_|NVQ(`&nz7_~3e%g)KQ-9L>VU&sH)`ZJkY+r8+M z__u!I{%QQfX4Ve>sr#APwcU-!ALakM#kJi(4ZnOzZTC;ZFZuGH-KVbkXZM?%YP)}$ z{>bgM-HqF~3)atCZVgQ(`FPRTAZZ7lJv26ido$!h+}m+etYt)|_Ua}QhgbgPx*N|d z;Tni%6|G_Z>iX~Vk3XJ&tT)GzX?{2cv}aNhZM0^Z;7}9)gviv`D1BIbBu-7iyGOD! z^0S|0I{3sZG7@Kd;+fvJ=fHkF{bW)XY8vLa`Jnh{E^uT|;W#xMz{2gf=1_Wn>+C== zd#5HP;owN&h_a35!r>}Wf)%sEv`?}@NJ#1xMdxwAF)A6sm@u;esZmMk0Z~aff)FPG zMnrihq{dU?9seAApGc;Qk!=un{vRxv*JK-*o{R%Gf@0#Lyprhz88R_xrXSCg3-pUg zPSNAYKqe14@`(yh9Wy2>Nyy1Ei9EzFPCw_Fo5N0;n7}xF)oC1dUkUN}rH!do& zS8Qr>G#4xLz-(Yj?4Wq8^&=T~QBU&o$q{x8bJ5fLUOU?b9Vi(2_mZ@%o?;IN*NRB zO&P_ho6G?b3hw0{z%Uyr<^DbW$$W-vy#uI8nV&dwLL538${Ua2a_1A9A&j}1KTd9q z>5-m-gM@~}L`Hc>hb1x1>IlZ5gb(hF52e#H9w(_L#MAMq{INvIDCKUhhX2axxT)XA z6O7=qjN&j152_i4xkEOADUtk;#_75wb3Ga-Rx;vi3GXE^h~ zD87CpX#5(*v_-^qS&FMi>gdtfx#IK2b%x-qMefWc#+u^x#+kJVu~Gd~Qxa2AaoD{X z*HKXsu;tVL+ioEK&*bkvl*<3*-9cnR-{6P77rL>~%=FB5 zhHBe*i#M#~8ZN{DC>I7?8+lF4jJh`V+MiWbGcI2JvGNteNT%^Q(?8_DM?(=C z&%MTG<3v4`wRH^ttFjPxwNbp~k8y_I6UKJ#&-`9a@MFvj1wJ2+_Xys`mIkv({1=x0 zhLs7z{av~LDL94u^f~l*{sp~*UWM;F;Wxnl)ji#C`N98b`2V}x1qssqfBPl+7njK= zm#N_r$}QBdAgAUFCZ6;gW@K{Fc@4%n+M_<4qwR^`rSSA*jNSjqjecffR18+#2=m|9 z|64VH-&;adxHD?Uh~HF#1^XBFbUu$BZlt51`WJ&&t4oWE#Sa!FCF3|$_s$X*wzD{j zc7NDlxOW~D)XQ1jnSLQ7J~Av8FSpz~r$;4s)_K@iX>m$EPOywk7bAlBWcSYal?F|6 zM08YKSh6#IU?3?WIbn2)b3{U%CM-G5WrCzLeqACyW;A|CW3X{*h)OKh;>R_TQ)rWB zh^_s3x|-&Q4y)w!K52x*d#@b$KjwUQIP?7--}(!n5g6rj>gVC(-4$Sf%T(z zaboU`oO|c6+YRLhs7pGbryI35RbO|->0JOUMo-9?jH(= z;M(p&y+Nqmh<`0%G`2#!)nV(gjoHqu3#(^Gu;bV(tcj$7gq0{H{Um{sP{~@!*OHr( zUnDOiwo*rFj&!wjq-=$3m+V*BGueBYxxAUYliW!zm8<0*avynL`9S$ld8mAhJYJqE zpDLdv&yg>eua$3-eCmeP%ls~SMOI>s8_m{xE^!8 z<$B-su`8po(=^vOX}mNeHTjygnk|}vZo}Oo+`e?%?DnnOUbk~@SKaDrZMDs{owclX zpmwM>R{Kz!?7qo;oBJX6v+h;y;U0H9#_3R9V!W3CF0=R9P>H>?om3<9l8uuk%C^W# zW!GdTa$9*5xdbJRlh2bcmamd;ksp(PFTW$Nk+)SiE944|B2W>bFi|#FhAGpP)08ii z*{YSQ6xTVf8(ep~hPmatt#(_Fd=L<|hljbYwXTWB^cyZNxTZTd^wEi}hy*vP0NZb~>BQ=CVuJ z-Rv>8f^92tk<^#E$)_U+QLfuv%U#d9K6JI$^wlJ46<$0)s zt@4BNTk?8}L5fI4oMN)#x}s9ysFWz%sE4RWsu#O%buC5ew_P8(zI1J(`AqYp=7Gl1 ztuJa~ms_b@x!XmzAKdP`{pwcj)=1k#+fM7O9i&~R{YG1=y`g=feXZ@}u5#D9k942x z-ql0lvBG1W$5$TKIxk(QZYk9XDx?soVB4eL=16{$43LhI+R7fvewVe7%ekI8UcMT+ zER|oBKbDIWZ56!~!xiHcX^NGKb?AFliW)^jrGwH#>934eE>V81+^amUe5!n-Y^Rc{ zda6dMvQ?j}HlR=LRh6o)tA0{-QY+N`)LPeGu7R#uuCH7hX!)Shz1;UuUPJi_brrivQY@*Em`Ver!P1e^d-BeT9K~kE4n;@h zT;(R^Nu|B2m8yfPtI9_es2ZUft4dL2sjjLXs%+J2b++ak&2JhDw-)H-JKXlU9dtYD zb^^WpqT5ZkD!2D;c3K~8ymq@*?H=X6*uB!-L|0d5qidwg*3lPY=)Jx-o5LPue`cFW z7D<*$R!Fu;wo7(Nj!I5S&PiTkytk2dl`5sa(oku#G*7xlx?6fs`cm3J)>bBysb%i6 zVX|qm&t=PGD`k6RhtMak$ga!&z?@(!x0kn&D=;7Qmj_{#Oq9=-FOn~nuaK9>Ps_~} zT@?O`@rp@`Rf=tjeToZ;9~8eUER>$gBxMe2{Jqjv<*ABL9anv?vOqZ#)eF^y>N52$ z^{;BNtA}eJ*UhfmTz9+fcRlIaQX|%M)O6LzG|x5fG$Y(byG?WZ+O5LPLFjZu#Eic1QOGFdqvea1=E zLlvU3R2Qi`Vzk%MXf^XS?cKuN9=q@Mu&4BLx&O>;$pXnk$x}&lX%A@}`e|3pF4JW> zvae-3P>Vltb89Qit8wxad71pG+)|-c3_yQ9t@ugdtkj~e<}2?hyQtDs7gRs1on7Nx zmt!uha2=@0(rnd~YEEh%YwEjAM&B!Ud*BwSov-~?TcKUxUgCbm-P)szM;{L_9rtOw z0zN;z*Z_6|`y*S!){(T9$RwVUo)|~>Q0CpTa?E*;kRw}pdyJ%B@?ebmDe{H#ZJ5z7 z%72!>luuC}RGwD8R1Q(?P`7qfx%#-KxaPaA!;Ev-)k@Prvq@8;IjT9UnXPT*Nwg#hqxreymBdx*CG8^} zARQ{5D4j07EqyE%$!yRPuCffS*3QXpVYI)N+2Fa7q1b~qxvzMp@Kl~qTB|%%8!=jU ztFNfUrLLlCDN_RBGp~hMm&A?Yp!da zXkKUvF&Z7TSF|DS>F!J2ce+=&zs9Gn>AjQ>#-O#Nl|(FYz!O(4QA>QJdd#~t8-z-u zG5e-TGZ1sGG+$aE-7MWMEtZx_%cT|4tI|r$#8uL2DI>Fx*~*&9#4<-2i&5z*)5`*6 z!Lm?UGSnGiSC%g;kZqQ2mlfmrRW7T*>|H6lFRPMO%NV%@#%nXVSneoi@f7!z z>*WDx;ZS+BJW-w|&ydfR=gRZt1@g`E?eb#Gp5^ii^v6p1eR-9kB3hA%xiv#ESCOm8R}^4g+pZ{9lq$*yhFy#UsNb%VVy`0*`8X z5?10fh^R`2HDlGRmi1(Pu!`|RPYz;(*$_4qV>z0QWfR#HHjSOaX0Tc8T*U(9Cl5JV zi9D@Gt_qQ_BIK+Dc`HNiPAe+VcdjaK;Q4hIedrOM49^wSinj_zX{NMLS}SdpcFJbT zR!T9R7LH0MC5!Rssq|6mm43U&FDb7oZzwC3ca`_)(=}D-D(EMEC{qZ^ z6N|D;K{*z%c^Dz<*+RC6En&;p)9fYo278x%#6D-=vSt!%i5+^DgTx8_N-Ob^_(_5! zA(BW*tRzJ;MUsWtCr`3cvR+asDUy^($|R>Hmn1hNcO{Q7*4|3Yq}Eb9X)CFN)JZCr zYNbBtl|j-FX{0n(nj)Pd&5|y_6Je!vy|j?)^<~o2SR34s-jzO*K9|0gn#rtXcCuD7 z2bq&hF4M|X*>s zchTC<(b8sUWjnO616o&(*7ZTl2BB3W(V{76%`CKJ9$IldTCfPMSB93mgjTz&e58D? ze5*85S*z^u>~>H&spKjxp5K0|AUqc$Rix>l_DqzdNiy(E$(7_w3M8BHZ&l}7>qVsj5IMu8LL!d zjOj7Hf-$zDF|N`ursiTiGDp(b&idH4!$(f;=tIAd7s|r+`Rohj?Sk;xQDzLt)RNYrqsj5{Bb{n?pW@@q8 zQO#l{;;GiF1JuFlP<1p`C28sm^;|V+@iH(>CrPJCGo`bo3*7SDR$^^m=vL%b;#TH% z+U=6t4XkS)Va|K&W~Q~)+G$&9X?-HsYOzM~!^%HI8;QLL&4kb0tKAt73y(z1aJe1@ z9_u{{J<2>Td0h3l@A1f^%A?xDRwvdu=;S)J&Qljm&mge~=U(EoTzC>#W4t+Htm!e% zqPclLkDK#LFuJO^QRRd=-tWWwPGe~& ziZ$BB4lUCPE#rjv80S<`X#Drlp9enCocAc%C{nAEM z*Q6lRK>;g?iAW@Az}nQY44thPMVXqJh|J;D^imzGZgoUvqD+;E$gCjKvY(Tz&ids-CV}w|mPv1}A)9V7_p;o*h}mnBjLlnkX|DUb=K(pLm?D zUyli|{O#0zYf|40^L)N3~9^_%;wCUIW0PkdAf97 zoeP@Y`_=R%-vNEyDz}I`&wF&kqHV;fr5i3xNhq{im=M%`pTBxzPD)E0NXs&~#2)({JuXuE(&&GC{8&_}fJbP{CHyKGS^o;^> z$OhwgZ`!*t-#I+Lsm>Se+t=#BIq$YE`z8kN=<#m&!^wfMJL#*`_j{KOxUuWNx_} z(DccHArGe4XYv?k!y9QkS0?=Dpl83I8+M@I&i-9@Y#%c2^61C?gSrm3xiJNY=rTL^ zG=KHK5HFoz*t-IzDub-=lvzKK<*A@RB!~*PU_kl2 zVAto9JI!}5K!ST5+V`{s*@vX<|?&u6X-+`9PncXcXzZ?gO`Gxlq?@<*R3PrebC+3m}IwgLwY|I0anm3%U4 z&BTkHcfDxwMm=@xPwfxZF*h&ytV8kEZW&WQ|E%wZ#olFJ(+e_N-eNP&-eWl4D=;+? znV8tx^zf}bpqX0}>e=qB9aD9a;xx<=qI#GKk|gz5%Q~im%<42Y85Ah7XB(4X)!5o6 zW=xECR8oq#Pke-=Iop)1>ovBWIB}v&B%C7PLM8b9_C)37`A3_A`y`*BVWco4V zNO2z@F@4Yq3gS3?AZd))+ly_})JBSJ68>@5u%qnDj&(h*broK8JXX$=m?1VWF=I^i08qsFLiMz)pOwa_LKYwwU^0Q;> zZg+2~*%Njp`BA?(+59OZdOG+0HsGF@Mm2c$jl~^uUIui$A9?TQ#m~AA*)>P}u>L}) z%N?#g_fP9}$8@Hoi*JavWWMi$xkq2J!(Q2KvmX`f-N*7>rw)OC0xeO*VKab zB73o!1{*ge|CE{iF1D_S?ZS2ze3^)vw2V$kNz`=j{%QZ|?i~=wwxuXKm^EXYWY|65 zeOui6eV45l?uKpHv9{xm@}`P-wl#UEZ`Q=jPU$my;rhMXM;|D0bZ+gVym@Erq!M;K zIkz<%i#?*WfGu#D?PN$TA}Ll@tGjkjjt-MLL%~jc(>W#C1wQ^9M*gqE%$OwlT5Jb5G~2X_{>F{8^N1V&7*guS}YJ z&AP;0TG8^iw3?4 zsSI=I*nh{Z6J0hZdk?s_KjKQ;;VWLcwCvxw^-Euy@za*=d9KTPc<9c$K5Jf|-E?s9 zxxGUtgv}c@ZBx<0F=?-q`L|CwUK>7Vu~D^WoB#0{(1C4_{)ZW`rO;@`li$FEgcQT1CsAUSQ%R&W&k2*BApUQei2v2} zxW7XBTi-LEO~3io-pu7kU4tBl?C#)OR=;jf*#O(A6|biHM^F1@cfs?VopbLlI~dU} zH~(Pck|7t5+@5A}Wvm^ee(BQ2?YGk#|Bw!SKPpOBx#HoSUcKwI7&NV3=V_&DUldgS z*j`t^X4;ZB&(`g2@6oKV;oYj`rg3hwrdVG5ZAAGO^@8qfwj4jM@?3k{2C3)9C-t-X z=9Z@>WY2)xYtrqG`8#xAN0dC$hK?=lUib97s$YBmFgIZ2yV3E3!#a1Fmo?yC<}bYh z-sN?5+H^P7V{d+gtm&&Ic2~Z+{Cni7$!*LlvYIC~ecH6n6ZbP${GZh6@osHk*Z#9w zm$lYzJ9n+n_QlP@!UuzE77NqkSxk>7jV7VLoTH2(!~J{NyqcAXd{1a ztG8`7YMwgGKfIU2oQMUB20Cr)GVkZKwpZ%eZOHh(QSZc^sh1beT0Cv{=VRUkhRxgj zV%*Zw=fN>HQ_4l(e&?9FXL-b|_6x#Jrsqu?`gTEsI|;i)op#4=_-)RBc6WnASM0TR z?iRPUY}&rEj@^2jSWM}&wejxTQ+o7pJl1URIWPI{(Ia-JOnxy~*1mgt<&M5 zxqfX{w{hKpQIT=@Jx)m*wiS7^YHaT>y!aR6$IBBFlDJ=4mC#~=n?uFM?vYVqd=emL zG=Auv-olHiW76soi%vP-YrD!7G8raPEc7^0K_VMlJA?n@^LaP63!j(vLa!9-W5z`D zlRA9^LELjNmlc}U|J4+F?DWsc_ugFE_p`IJbmOg`XXs9x>DXuY_^wAT=gG&cwQ99} zRLn-tZ_D=V_^cv-{a0Q?H5YH>UC~}oQLpzs?cXu;rSFEoM(W?5^@$t5Xj;VXEgMH2 zS)WziKYYM}>Z6aYt3SU}=VyyW)@6=fgWjAPHqU^$z! z^NUS|ag5zCvpstoKOA6{@8#9LUsTwf8D0S!(?jO{*xYx>WtV#+S_L{y%RkeiPLuV~ z$rW<5#vyCQUmP}N(Djj#w^ei4!Dc@z4pb|8=x-kdy1bzXPjbZlyf}=1KEnj{8z^eW13;> zp{83mp!FsuzXl|56Qnt7iV4za#{JggNQ`Oq!QP@v`JGx=m^_Jy>~^HqvN8OPRlDKS zz2h5RvkVFt_u|6R@lU^G2T_D=&HCX@f^UJopx11lkCT_nhfko;Hl};xxR~x(3wBRT z!nbAct?cd}`XPONfa`_S`?&R@(e!~4VVa4FT)g1W(8mcY$2lMJ^+;{q)6XlQ)&7iM zf7t$ccAc(`b%9O39PB!Fe#GuHhx8Xyi@)o=#%k%|KThpmJ9>4U+l3d>E$hG2-Y7J& zPTZzz`6zALrH6gZLp%MD9JZ+4XdQy#I8^k|n-dTJO%^KEiVS#0k@$ zY+5)X>yKs*r_RT1JhEoxVcXP~>Pu72$hEJzmnnHKco9oPLjJ zl&t%{8_vn{d1gJVT4krdTKBr?lhgZVHcPbN#Q!9(0(OQ@;P| z>dCGehl0zu&Oh^QvFwkH36t7x&;4p=p~!X7#jrh*Pd$dHO}Cw$bYWNSi>)_YmtWqk zUG{k6sV2v#j_c}|n|IGI=v|vL;zwtrSI!B35EgpiVf_=An@?T+AZ>sB!gi^3Kl>`a za>3ZH<5u4JC90&vSsQo5?8ca$O6fMU86}&U_%OdEM?)?xT)4XXA!*9~{SBi`>z;YC zXQauHYqKx4aFlPG+h@nQ4L36fCq#d3_tVgz_cg!%_T<;k6WfQ*xYMyi>FU!B`s`4A z9ehM{}0EhQuUA^~O&tM~eOYyajvHPwfBYEWELzYn;r%vuV?y za|1K3dAl{YTM-kx=j^EKXZoggoSD_A-7mLxWp)gWTr+ub1G^C|-0y$o7^k;Cb!uO1 zpX%d#T)sbf?Zp<8S95<0{Cw;WJr9=TcI_W>rSYonEdnKz<~QFE&iF-E9T?g>Rz2kP zv-k7uqXP8Hdpw@_Tk=Bt#GqE;xu4lwG_(5UyQ$ZHTsf@m z`R>1lXL*h_f5~>GX|!PLnOeVn?t^B4&?DgP@=Z1uvAaN>*{}Rsje47VX3YaivCYpfm(&}_Hw3* z;M4)NRW?QsDnU6g{f_^oFZWI`T~J&gpYU{H>xCWm22Oe;>RkHcG_$+GT_%>)G|?Yy z9v=K&d-2za%kq_V_uh+WZ`-fRT=7O9KICN2s6#`)_@Zo}|H5*=A+I)%96#w<>n}2T z)pTpuxX)C^Oa0pfjajo!1;3Aay*T{PpsTGKUhh;bGy~0!{vLu zC#QZrDE_uSa>~qk@!j@D{&D9B+e*1osmV8~gB`mXKaD(>mGO3KhT{D0 z?~ku@Ds16Y_%y3fqiCf0e9_(^cgs#Z>%Lj9-E$@W#^X_i5XGKvT$yT3W zkM(PoZkp4-!?Yu@Q4YC-Jl34-Fy&~E2W6AOd#;%JV?@fSFC#iuXMOR-H$D4ro!Yj% z@u}1mCvM-KUtP~S|M^Leik@FjYO^7Du~L4Zn@cxI@aQ6`?dnxk1J^vc?{RU$@1DbM zydLY`vhOz&wl4_zO}TgGuk2>OAD`Ci8tgT9D>HA4>G>v^;`S3Bjto*a3cr0J(c${z zwuu)aEi;^d+P&&*+u!%Kdlq~B>dxkq=Lf8Q@F;hHbk|sRG-wA* zgRyT4`k&q1o3hh|!H+2;nH~RcP8ofKP?$2@|D7p=dL6ejryWes!Nz<1&-m$g#vFD= z7VBByQJ|fz5u*H)0#(=({at*qe~#gknfPDFkSQwTC*@4hK0LAZ;NEFGHD`*}vl^iS zu=RH_<>cg8=ZM5)=cK5_gyfi%grszMjYD*iA3|eB5DjjVDH_Ol;Rxh(MvTLh z=@4fz4lo{#zjPoo9ZoLB&k;r8nB^2mbl@``tWL)_i(yJYNE~zq+Z2Q*Tk;5oB7~DeKlu7{8o%@PQXfARckF7vgXAyZxdMtS1y3C+G; zEnOz9{pq=PkEUN9?6=1M_P5s`%(%H)^!wepmmj>heAn*KqY)Vws;(UJKKy=Sx9hLI zUnDyldwEB5w|g#EPAu*}*K^^S+b^a)ZE$Sp;H3Kx$9nB=b-CB&DSb|kR@)ysSh*;1 z;+z{NawI3LyR4Nx&iQH1nRz+7mNl0vTP(|-axL!7=3_fFqsL7a?L2dJqx?}L(Uv8_ z8_EKQY!1Emi%Fw`?>a=T_1`yTM#so@2hRQ0qnY=zeH&DDw)xj|+Tb77_fape;;6I5 z>0eqbtv6%Ae7DbzFJG{(YkYp($gpEe_sst;%z1I~!}@04-@kaju`2x1^06BZ9jc1V z%aCN6jl@P{n2AWl&dB)BJ`qf8|7u@j^tpn9DXi_sj{%6RCG_5?`G*&dmZlPGBWE+{ zgg$-!BTWrZQt2mLic`(8|AHy*ZG(qO=E z_4=IbH0OmvmTEqD*ro)NIU6UmEGe-%7MbVpb@#G4X1?qxtxLaxJ6BddWOrnL^*y_Y zxmk6DH9fa^W$z!nlX~2_VE)^y8H*Ym?w+@D(Z+-6)0eK;v^msr$CHe9n$s&al^(;3 zCU5!fwQY}PHosLxK(`W*>8GDuM1+_*jbweMS&0%_R*u<)0d_dL=R}l!pDO&q(@PmX=Jo zK83xoK-qOm_OjVxuXkhXt*+eqVrk5;SMNPEUhf(D%-G_=-nPAWtZ13gsq5P61CsHl z`YdVHNOybHou-HNvx~o-VB4e`R@9)_Z$G>{kCb`SA zPBxuJPPL7Dk&`gzbn;iHH8-yY6gUt6qDuthd)MRF7BkjOD_%FY>j|ekcAaMBSL>qt zl-}tPFevx)S2JI)s~ofCg_nb4^`Q5vQwL*)rC1=3{8G}(w-D5; zdi!?e=;`asv6rto=ib}bkz)_ezk_#=zIP$NQ}y+A;^^($kz+|;qJ#G(j_*`noc+L< zh-gal?@AcZ6DJqVwqQn#s2e8usbboT>zUMV#au$c#g=^jHv+btF$1=|8DGAu!&!YK zekhKs6bCfDX=OkT4xS@e>MYba~#8eN`!z|CPTeoce?KsG(8!+yNRt*8T<`((M7)|D!Mc%twy;?87r(iBjsy zO7%0#9FOR;_041#yo#wvHTLx?@fm|zrKxxCKRt^h`t;=^UNbCM2?Lem)0L} zc(53G(`VcGayEXjk(EBkBD)-$->fJ{+bOb{?iTRCq{!j*IIO7@+o)c$ZK@1n1^LUi z`IZZGha$SJpV#^VL`1cYvzbE$&}>hR$009UXtuKz|7R z-qUO3sF5Rve@N&^7PaA*ea0{QSa!KS`}^#x_j@6R>{B)NXK#oYv_3|qkT)uTtsaGI zM)9!4s3a!)b)T1&`s@e#>?-}N3n`7z53^$(^!n@+hX90SQH$9&eJxFq$g%A2X#{)L z*l$79e2+`*;FEohqQpQkUl~mu?sAUasuEyTQiNy14%Tb6W|*x=~rh ziW)U)6s*yB0Ry@#8+os6FkVo+f(4N(RSLU;ia^*ziEmc1RjXAiwYIg@wpgoNtTiD> zf?Nc=6z_O{uThJaLICUjp0AnrhG6^q{_)X=*&FE=qIV!2b=NsfpC$Xn+`4{reF!<;ATC63 z*L4oz{UW^&uPfZ$}%&irfjuJ+h;1nL-{ge>5{jFk-I+9*d zZ`dra$s*@TO*rmrR2zprPPnaVPI@dCzOIs~tYg_BRLq4h=7sK6qBJ4=iKdD0gFM_0 zZ$BE*G<6y{&=|aYNgD#{81>_9dsosP(YV6#(m|=yk;T_a)ajO7I6^JUqp2aLuU6F@ zKf(0%RGN^w`PmNC&Dp4%*Z!&E093aG(li%SdvyAKqb%D|>*b(L!Izk)j_T2mpXp@_ zJ&D?$>}h-Q(nQmf1g+%4zcNh(Pcaz!+TvpJG%V)1E}PU4!w9KC(8(4r?OA-FUtG_n z?_e2c&!C3E8(q-@@%+qXpVA*?Qj-zJ#Je2r;!`H%WJZvdzF;yM+eYW5LX8kZG)e6; z`U^>3RNrNh#xjv!x$yE=MXoJQx+|AD0L95bPp7X5Sq;IrNO?21tIvNl<$}YDd$8g} z^3-QNeO0REMq=lEprj8hGNke6#q z@0>7mx$W*eq{UzpoCP*f_jB)-u3WCOx3R3wQ|a)Z1jh}YS=6KRKPFF|*E0dq1j#rW6%*EmXMcU)+Y9!Vj5&BG*&H~@3?E>SJP7J z;FvpHx?!XpkZ+)gH+vgmyCwT;XphGC=9tm*3_U46Qj^|fQ#`zu;u)vd3z{08QzgsB zj-JxZfHTebENlO8@(X6}FpZzYau87qE$yHUcUvwzl#I?}>~q*ww0Nq--PU=4kKAb% zxv@g-y{$sdK>5o{8l&D+WsDv!C@!Fnb_#!$oA|s9 z+d*sTWFIYK_6s$(nL37Nx-5xXc~r0RUjJGoh8OL85BvVWABrl58IHVQYfV7f#sBedBIPMecd0d3brec|b+> zZo>dZ0M0P5gNFm#n+0TulIo4UyFt?@_RYg2AY#q8J&1TYc_N~ox#zPZfEHbOD=Y{cRZr25qI z{_F26*@jQ&z(+9Pb(?(#Y&46Z>YPEtF(1E#|5&lVCK;>>U1+SS!POflhGxTt8pun{ zJRDupm*SKe;~mWcP=qbl`bWaFp4o$8Ixyy*DUFeZQfQ(dNhs^+Q*}${e$}g>|N26) zLB$*xC=$B6U9;MJyE>z9)pG>(feN7B08Ei5O(&B3z@CwPP(X`d z)?E0(7c~%_1BCybq*+cGxZb4aWW0s$Y7;ZfuP|-Xi=WK4BXqA|H>?nnyZ0cXrRMq3 z(JVI`J{@B)4y=E>yAKg^Pyx|@KqH8FPN|v4Sk;Md_yz*KYh7%?Rn?#6!Vevy^|YO; zQNSYxK>eF6^%p^lHmnde;OEPtmrAWVnF|?zWM~YKYy_Jo7ksr=3*uSCyL>fE_gxqzAzDkIJ4dw0mst0=+Y8H`3p;P;l&3Tfg9it`Jfl|9*CQ(d%ZV`JW*OtO`lb0 zuW}<8W<7yrE~(Y}elQ44x=?g|-B=2e0ST*NJ6b|`%X8s93;~jdBdqoNr1sVVDcNU< zk(u<0$R%yQ^uDv&UtW;qd<`2|#@+ghVIC)0{hru7<@EdX21vIYp+pHImoY&}vz_OY`^P(qh)#Hs*)YLax z77!0n7nf8fe7S(^?E@JiAa?bOwKu!9Jv*DeFoCn=z{;abcA%wEKXfl*S z(1c0eI$@)>=*`zg)8C$$niS2ogV)EPFP}tZG;={hD+S{P6s5e!I}L74cOf#yZDD!k zd1}z_(|A~g`8DO1S`izvN?e+~1WYr-3nlBFFF>q~l*RU0mSZ!E2;>kbD|qLx5k&bde~UWfH>z z7R$6#<30X~`ky++u9a`MCeC6Ww%h;Vv)}DAI?U91l{`$UPZwhHmCR()bTZd>i%Ux4 zBDa$Y8BMrEdpt&3a^VyETUD4BkpULxS19bQr!gk)fKdzyJQ_wATq_(ht|Tm)kR&{s zqa-Abi%p^@6VpS}c{Z$&uE?8NkqeArkNqLWas&PT3AX-z1vv@#OI(wfgM+^Ijr8b} zdaCEbZo5>US&mi5GES*6!Ssoto_?O;jzth!o{LRcX%ajahfoKi-$%#I{H-yUYxVJp zN7XvwK1pphKVs!#&R}HdvxK`@YrgV2_eDTATID|42YoZ3-LCBWrut;`a3=Ui>0}s~ znN*b4u7lWF{`%a0*cZ)vm<8SsV8rPLSg@3bH_bx26-e!8mX=e~eM|l=cdta|%u;z# z4%pue&4Ib_?3LXMkKa=8Ikl6m6AtcPn&s+g5XF!7P}BGr16Q6?Bo%4Ze&&KwGX>_t zdl`_)@y19?oilOBz-k zGA0R4eVA{<>yvMwb1eDCigaBc<4rgxjwuPwofazQo569i#qqa*6?$ta>UMQjIGIs{ zy%uH|8rhTeKM0T=jLQOF=N*Nk#Qjg)U6TtZ`C<}}t&kVOat6N3Q$-UyO%Dlcn(pK~ zeA@VhrfGk5{Cn~=O`9jC*F(H_7CY|e5*D$VBbSEHeKO=s)_k+;C3(@0Zp!K7{LW>(>_-^_pbzfzy9nCwMN3LQtSgA;P#M_Ot)hqcZ zmy;jp2nJ=nK4-$)dB|sR5ubb=^{Y0cqpSvzW-#s2(`KzPI0{Xno^Ldin(9loG%L<5-G^*Z-(Rxwm`f0GtLKtyg$AR8pSXL z5DuddTJFI#(e2dCyN$nvpoj;4Y>*)Us zrdj%bJP)g-FZ>XGV%7hm*sLS_2<^IuRDag=M)LC9Y9}+jibW6Wa8>(pN2Qpc_>0iu z#E>64#p}GSZx|u0(iCd8Y#D%ADk_m%#`J0is6IasH+^6SVrbJFsfVAXB|3CAh(ZXD z{rT=r^zl1ko-8ejd9U8;uFUR59r3_mEojz@=uoFV7yiM%_-!{Cp_GaNVLQ&j10;ig zquK0G!@t2frXBnr_y=1hHQN429cBD*n&Vji)ENrBV>qP9JB7+oe9PH?gD!d&O?Bdl zBx9lrjaP4E(Nnz@zwkar1)itnvM~6E;k4i{cz7oO#5fSHpiO$a5+D z<&hax=uLQ^F8zZ&J%FrlF$n#*Cqnbd6GD0#k5HO~y7(J?@N(h%dD4p$snk7Y7wQ|8 z^wj*S(P{cD)HD?1$X(fap;_hT!sBe!?Vt9jI>4`Lo-23TDvM+D(BZjYZuT_(@Lspy z;s%kOM`4y5qsi-yA@nlNpmCdtD+NxJ&fhR|K)h!XGTEUVkk;O|PiGtSvIy_%pCr)$ioP_&@_Qhvta~m&l0#DO()uMClJc;8$@a$M-MMi#+ zKRGViY;4l=(SkCM=FwJki8P4Q%wv zH#(WR7N@;-QMveRNdbSoFL4dY>zn>vC{oA1&rB^&VY4zEoX&LgxyR8jb0;I0P&jkP~%gE;H*~J zit_G6z!>=3XqM4tKE9OpA9xE@;;yOAc~f!DSFgfHd3P)0a-6S!8gkM`H<7>t`Wba!27S7e3*SyC4x+dpGluFJ)(dXHTkG|sVlI3p=rO6h^O2@T zsVV9dktb!Qr%_LaHN~T_=PYzN^R~3HMwlMl4^UKWxLVrv#vwef%GQ zN-ZL5JW&$_=2n5ZM_|y;veT~TbFI6=n}t>9?@w#}dz}^ZD%F`r9oXb4gKI`eN^dQg zIONi3kx^IwHo$y$A41GRC48^}(4^9}?iyd_%X8t6h$rdB?ZDB$*#2bO>3&ev#gcGT=>+d)n3Mm z#j*Cq@_#um6VuO%y39Z~8n!SalM4rIIf-2^yy+<%j=$#f?)@BM@hJ20I2Sy!)6hcI zZ$9Hk(O$WiymE*%aNZL1wh9Iv-v{mS?y`GcWsx0n_Vz zYcaJJpf#v0xOw7mBv-`A7rRWw-o|{^fVf{ND(U2jXQXG&MnPs~7pA^4Om{}6!qZEv?N;x51jg!J(MsBR!2T!j3$6R(cYE05^T{*zKhNwn6oYrF zkZtC$L-AjG6aHz$;R3$=0~1>`vBbWH3Z17=`qZ;c>90mp`eaj@I1$@YZgXD0Z_0%a z^IOuB1PijUrP!K_v+d2V^j(AThD}Veq&-f>6|gSnepZj zYJ=y?;d9;~wKi(9pN4%*H#;-0Qxuxb%Z10Arj)wxuWHoV$!zQg#f8t3SKSiBWvGBJ zY}}~3LS7@;%Z{5dR(kas@17s=in~Jv*rDqY^bpC%8WJ440~4NJ9skaET%QX}!)8%E z_`9ypnWu>>!q3B^@^`)UvLCcnVGv_Y;YT@|>BShwld(fT(~4}I`)@CExbWPh83c!? zoEbm2tHY!K))jg40f?IZ6RaR%%mklVtSw36f^y+8MG&dEmy8j)g2Lc&x2YXGncCi+ zRPAKjaYU)rqU{CchM|afH3s?>RHxnk>?cxlI8^}ujZBCORr6@$oO{vRljSMJ*sMES zPDr=Tbogb;sl%VXWHlTEzw`->4~Z>{#QAdBg?s_MrBE)r!KOfP!&^P%@@vYfj(IYm zpYkr3-M_S68)y7=5X^=kbrZ9DwY!G(F77IVRUB4q^|&H&TrEONu~s{^1w^#~Zkoe# zsICc3hMU#NTv{=KJ+gSH_O+!GZV^?tYHT8Lw=33MJ#k3zgcphml4bb+aYK5;>Ty?` ziYZ3Ve@d6NGJ90;GvV8KMfN&3YC&<**Khhv0|RX#ZQbVaQ0!awsp!-HpX+?+P(#jP zJ~z?V^&OF6x|0i^!e5a4l^Gy>JO-9_`xctE0`H(QwOGB^P}pLf znN=EP{fOYU_Y(hV$yybYzu$BSJ33dC??uik^ewV)eoo`Gbr_%&71CZiNAV&iFr;>& zjRuJ|r{=NH{d=Mrw^DNoC7W7A-V(3ZPsKqXSUU&JiNE|?(*!>5GvzbyIK$ApSHTLnG=FXDzbDhE$=2^@>&x1lB1hT`qYC_fdIjv9!w-l0 zuKXuV{qV!om!ub25F2`{wKd*L2ZK0@WRkDDv=jeNJ1b4`Ypj3Kba56n*oHvOEJgpq z2KQP#(I|$T_gOqo6`pTVCA%CB^D7)?DqLkN?C)1tVk`7kg~zEt{A6d)UmsdtY1r98 z#Zcx_AmR1xBE8%-0Y-TW46OR_f%?v-H#}JOi zyZ7B8bg7ab!dn5IIlIXFcujX7UfvG$VxZ^3@jr^&g73ZBW4a5Fr|C{l3E((dhZkN2 zsCWDz!#MO{q>qF5_Wshrfq$yao~%TbKD2G{SgLXNCV)bojYP|Y@VE&>+_XaZm(;|% zfyQ&dGPIjbZ?a9S;B)8wak)0udHb8;PaWqgf_qH>NccWB-lYh(uim|>ce`k+jHZA( zMRWy1fE^e*63m5%|H0_|U-CV=WN#xzrj%E77)6_#)}z~{LbU2qZMxh4B6T->wBKGc z?V%~hm=?m%oXJPLM^Cb0<_}qqs!!=_Cj2?>WJ{L>m9r@jceNQsc-SA5?gjsS+kCBZIHXZiCX8jcg{z<(?+$>nzcoY; zAym*gg6ZcevaD6W>RBXG$U&YAlU7+W9Bi$E*DRD5e5+s?U!T(=nsbJ~HzU&Wl9o>^ zY=raszq2Evr|A^yhONjoUPl&S*!OSyAz>^u)uNUTwI5B@2d zi7t_EWp@%MGV{vdB5%`xJgr!YQ9}wJ$RgND%rQi+sVa6yIcsR6@Bb~eu|{(C0ZAr_ zLmP6(qVH2fmomfBWG&d|+8TDsSs9vt7OPTg!V(YTzT}-^L=v?C~lEyV52ae1j>E0qVeI9evq2a1r_yN(bCHX_G zyZWb&Y9Qe3?h-ao&urNFF%(Ij<|BO9Z!N+muIQI$yMAw`R=jIX_ZY&3&jn44m!A^| z>76W$HY?wvGv>e1anZj2jZV;_(@W^=kqoHX7&w>h&cl&FZ7<-g4ouh7*abHqNn=aG zw8QYnx>!8dyDv)Myt~=P=$sIBzg1L%p<142uNiJMK$7hQ?`%r>2IyUnNa322H1I0Q zGyAd*@vtnt!F&pwK%N0YyMKn&yuGQdO{k1iR4%;ZD*$&-)SvR!nKuY;J=c(ChH4#1 zEmI7GAeX!j0?8wy!CNXL0; zEs=r4aX@O-%~W3O4aH;XZ=jMdAh=^q;(oDD&xo{0NY)I45;04T$JlH?i=JoFZ+nH1lKsl;ZaM+*xvPjO7 z@*>;=HxtHavhz&-Lkr>#9^Tbdj#{rIaqy)?US!TF^D0+~f+O|nZZSFgkpowiM4L~< z^~RuGfeVrSZ~ihX4qYc5><1Q)B~K;vG{*(pZwXZRH+Y$?b4Q=svmf&AG_)q5f!1&Y zveBPy-ZI=)7|^Ecn%Id@aZQ;_U~!GIHEs}{*2?_B=55E>SiB>3*b7|>Gxs+f@t*+_LsF*8*q}E48C<9l$ztWXQnK_ zQUg&4TD95A`|V!&p}48MP?d-KmD?E6A&g6sBd~o`%iGS(NQ<2587T+JS=FYK*H8&V zXw7oT8wfVd5&3)_ptN*=>bEyF@@AAk^HcLk=E7HPF$!Qm$K4n9EM00fz!fGpbyP0= zuZP%B?Nd~+Imyuy)6FAjjc#s55qbB~BxH>a8CoHO-Xi%3wtrKL+ny|PS4NvlD$Hu5 z*Frh;SazHSKcV;1o$^9jenqa?X5fy{*_lha8|j!YAJT8BYxW)wS<9}+SXB}h}gH~G%w z1G&gF8r(-T98HT@Mg;b264PRYCO#vXv;&o_m|^2RX_wskathd(6*_Zq)O~d#&mSRX z6XmL4dYp{ci9aah3i66^oOdp4qs_F@ zloh@RUF{srf!b+{(PyVP}6&mLUaEFfIoJe8T$G4#=DkzPFmZ?Z~;>*JOa<#qML2e zD=3Pj{fMIZFSE#EL`PU44qvR~X^5ue;SnGDsgbk&?Z~+=`GVGEvQx+B!nZt-7qkim zu1x^uGfeU@-=~`Ej{~svm|sRgx2tx@aVbs^`RE?c(nGWJ^H%11i3)2m^Lj`N{!4%Q zQ!v`U!gbtSaE`h-yKBBnTlx3g#Sc2N!Sq-&5UAVn|!|}h1>ZH z``3w2{OOG#XM^9Xbp9`bUUZU~+K#}!rZndZfI5oyfqEg|%~a)fd8?mgZo6JYK|vD) z4Uk-TKPU{FR231tp~=nW=V!Ni3uSM$GN0;Zwa|&a%};J4musdS#Vbx*&331f!Q8e- zdogt26OQEcFV&If`OEBfd3z6|rGY$&nV#A-x{f*$q@S7^KiAi;?73vhR3C(q2+y&Q zz0rOcB1)rbHqjC9?T|E?@f#?Y{> zHJ?B+tNWyb4x%aq{s_u@8*KI8QC;hfwe*xLTh5~b2<=bdh%LNSg.JEzsUUsD)i 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≥8W72yPtrt*!#pil>8l;rCDRU`eIl`en z!-N*PGAHMj6lLq7#d>XWZV{K^MtVj<`h-zDO$dc0(FQ_#$uBdd=u-<&DihIeWMBo& zS%ASPa#;Y|&+)X8Pq#~U73SsSqvcS|rnre@HS1BInciTyQeNd$UZjz$p7*70m$*T< zT)mAIx9ZQ6a|(-ef1Sq~-7OJEpD9X;s0xTHLT++0qewusb7DJLU_=yV4C{$A)+6Y7 zuWpx4-73EDvC#+-5SUPsTbvWQv>0>X6f9O^=3FTHwpWkI1s;D9M_m0?d+~~HOa8nX zy!#PY)ms7aQCNhOZ3gfz;>!A?UP*{=$wm4nLo)~yN%f4f%>{v?5ev!9RJ*eEmWA35 z%!p9FFbawhSu%gV-hXx>uIP4(3ec>U6uV1`NjqnnTv2R@J6g6j91@BDkGMvz{WSFc zi-dUR3ftcK`)H;qFB)agc{JKTBNvsK`mXZ#-P9;vQSvuGtMF~n%02u$acuD~0 zVox{5eLKUepa?05dV^dEd}V7|MV@86}vARFEP(=Y85m&NA_;7jG3%8RZN ztn-_%U^6g1S1gdfPn$Z=dmJ%rQpC)8>6vp~YAWa`D$aB`guigUVTirIaK#vO&&|O^ z3w-|f`X8bJ^jg)`77+}(88jBO|5Fx`32Fy*gNA|b08It8;c#3dXc=fTQ5=SA0c`|r z1;xgV$lhQPwV=Tp;f{@}=FK?Y1$qqB)&uX?;B1=%v^!`8(?-zVz%8KtLG9;C>INnE zGSH!*bk=S(C=RWPiJ)nq@t{?p$)Jv2NFS8m@ul}f-Jo+o8*D<9f;!Q#SAdo=-2_?% zZ0kqwvd`1XK=ZV$fR+oP54cz1#gygRXBJxs_S=A4K@Wl2halge6+@Aq$1EajI96Oh z@sgLA2)YS06_obe7J)DAxw#30UJpw9ZdHV_ANMM#0|#LnKx-nf`epetpfL*i1Wt{C zo*u{fHz)E9N_%?Apw4u>cMnSYd*$Sg{k?Udwb;9>1-0dZA7~Xmng0z@?5~R_a1O2j z{6H%gK~zx3V(1Svc!?01pv|DAps`m8u?jTkYRrm3ORvRN9=Vqx|Df&_C{NIkm3ZL+ zc2jW!%8TshCiIPm-nrZwRiR+oBJtXm*hb7&|)LBLErOwkD zK|cVkc|?fYKx5ZJZZR*g`cXdAtp!WoP*}kk=h;-2?8bM!$ob+CqcoOo0 zW`Z{3U9NPTEOl<6Z;>3;szG~-GEuA3M$y2y1@vPv&l3DJ)+xcy30jNzwV;;(i)RGB z$AoWH zRg!sH186DQgI3UUv?k5^8o8%y<)9=-J?ISZ3E4{J;<8kNZbtZ^*9kXirJy8FjgB)c zA+9LhI@-i=z1@~p$U2imU|&^_YIfZAQCcfdjKq27VI_kbVrQ@I!Ah46I#7Qb1f z(fQg4&_>WWOcG)4MMyCEDpdQAI5I%%S#wnGa#Llf%|z7g~tgxu6w6W?l+ z1FO!`#0YJBfYqw$`N#&nQ$$)~yGUFG8mGksGN}p05cT!a4A+(+<#b&|1{d)!IWO4R>L$H?>8Mo{5sGu_y=DEK3ZHr zHr|Ws4Qvh7P>!|23ECIb4LSq->p=$qi(v>4eojz)4OpuI4TXC%DEV9QP87wngC>BM zfs%VQ=p68G1T6!lk292m)`K>JR*cYK&kn5-bQLhY50!^>>Oozi))F>G6M@g5y&kLK z?3u$-b+Lvo-9%_Xct7b9go_0ofpkilR)fYOd@JZ?&@#MRlndGbS^*l1_mTF1uWbV5 zH$qDV{aH9H&WRenrWL8xfzAT8U4nNr5I#6uLtBRUpx?rd>Lx*dz*P=e{$PRn6QMak zNne$qvp`!I$HK%2SAjMlo+C=;w-l7}(Fpn^_?Aa&V(2E+*I2U4w=9jILBL^`!j80^ zmX>%;4Ax=;f)in9;L{9hgMafhvWGV7`b*fDYE`EVdaM+KnAr3urrS zO8eHCWUp}nj#N!VBYp*F0`l7kx?F72(q<8beadKPjo&`|#)ER_p2 zu@ZW))S9YByUc;_j?Dd+s zU!YwBeFyHFR)U`vV+p#E>J{t|bPwD^$~A1N!@fY5gTL)2*r^t&rQS?(M`|sg%eC!V z&8@IYgsZ$=6JJs~cc5KD{;hYSJm4lZsQU?7KPx~lLpe8su7Z2jlX&L@ zwCpLVpGMG?$ba^Fvct(1#|F|1<*QVVwVLBK=oJ`E zz6ioNJaxOIn|9!xa^SGHG_eW(k-XgRL&~c!3pn1q|*lsGXZCdRf$b)zl z@1uPMweO?!!Sn;N_lST}&=1f*RD4M7u0yNeuZbTZXI%r?EBdPgcs~U3>JH*P4bZfY zsEe%C!VZx=?al?>!jf2YQEmA1J+>y$by^ zy^~!9dK{GE(YxRA!1TUmGx`B~AGZdS-aXxic9-6*BzN1lcz*`a&cY245FugBDl-_ANMEU(UUttf+^?{*GZA`l}4PtuyAsMcP z>29XUOdFU+bND94O5Cd-knvYBEoU0YRE4Wz9Q>dRuiS^OmN<-QccxCJbC_l`EoQo! z`P|C5lIc38o0z`J)W&ol(?+J>Fl}WTxJJrjW!jr*2-DF_%Q$>A(>kUqUryGS!ZjSv z!Bn~LU>wVOo#>J_YO9MDV-1?dUY^xWn_S8 z!J3M?Dw5iX)BuH$_nGYkhD4sL6TbQzhp&?-qxVk4%6629z_YI_g_wMTtNhL6E+QJ= z4NgIbc=WI{amV93ow4AW0DkIM|LiLU-_^e3kQ-ue_}7_Q2TRq8!Pmj*9~Mm;akl-; z_8rr1h}B#HfflWuu&-!uZQt>t_FAB};^IzP)r$6-eMP%J?48?pV#m&!7HAz)_Q%HI zBWfczzdv?Q$(9)H+%rdxu!q@4ju>ITc+|Mr_OndE1Bh$D6#McA1G|s8yWjXLw$-{0 zju>?18Rz|Wc-XA(c8*xS!frLfTLMN{RtWoOlZ!TDpuK;e&d6yJG*pbgLQ9|(_7r&5 zNPLoY1lHT=r-m^f3iFCJ#2(To2)fh1M9VRHECHm?fyy7}r04k*bA{GE(02Jf)fLZ{ zW{2I;^ZuPnwtVnr&$!&zCocbC%5QUD?;n@({-hDh5BrK*_Wzow>i0tJS9mgM(E>+I zvnSYtO)h8KI|W$URaFJ9wLrEJKIMDrJnH52#3#WKZ(Z>Fi=SV;AY@<14xe=!^TG9g z%IQCl`Q?8G+I~8(>aXX=Y`Ngi$UfgEr99K&uN~!+{@mK!c=6D4BhK2hF@MDJ1HQ%d zAF!wyra}oEF~uHZlF6d=Y@>KimA9%DmIC_<%R>9|RUZDGVF$}s+Ly2B(+f4EM9jme znSP_$_-%6hN(tNlm1FP|F(dGqpNsM1D;J~I%mo^)|7__P;L-RT>?pX5!azCM)uAE;&*dC-N=8ijR6XL2_lh^vKBP|%w1V`lWcpPN z`ORaUho891k9tL3zR$jVPoF?)bU5(xH|8Sw|A)Qz0Ep_?{>SI;QkJG5pjcVJ0;sSH zqM|YG0xGB|0(K2uL6nY)jiOQ1SXPZKiDHR@QG+cJOB5^CpeCA_7{M0MM6t6f?*DV{ z-i5X0z3(gk_rBkstCzXc&di)Sb7tnuopXrW5Z1`lY#?9XFuaAJ{p}F??)VOWBi`#T z;^n}!KT3Xg34_q-?~bKD^GDACLmsa*vZc(ig(;$F9)hh}p`rEkdj>}oITk-)UYH`w zF^J9+i#UTPoaD=B=%;$D0-Qk4TB05RnqY*B0%Ij2nx4lhUB{$g#NU z9g~7t$x$D#n4rZuTz#6YOhq{y$G$z|^mJi;ulzBaZ1#2tIG)ya;q|a>pZ?hBqk3&( zGuIn0cb(E9)km4SZB2^_`DGm)3g>?G;RNp|W}Znl@@CefSNgCk9fl0k4E^C?_ddU! zn%g_Cz|uk#7r1-dhSjHM{}TJG6A z)2f@(4Hhg6Ip6KKEr&j|D!x$FIDbI?**?8IeY$n{CZWdRu5DwH7^{GFIoxSrq(s&Z zh;H7>pq0$2mdH)ThDK((<&4;nGm^k#XlN`J%bHW_dIk**Y@VljJ^XOck|nA$zx&K8 z-QF>>V(T7R5Jg)V1ju@=?;-P*yU5y5H=0>X>$(wN`D>{%6GJu;-iMtYw3=3Q`74)@dZFy_8d(}8 zus0Ydizb>BW^;Kt?;e=2`4 z;NuI+zxuOfAD?Rzln1w+2r2eHXtkTGs+VpL5C%(JG?)RK=-}LM9@w})B-@C7jT;Oo= zUQC;%;^KL&F2r2vWPYznkKn0ykIr5vU+ZwfB){-HXJI@$Y4j)2^CBB&4Z8kqy3>c7 zr8mtFdgl*iX{#eADOb%N`r<*07qc&q_lYpR;Sq8A*R6Xl4&A--z?G3rCRYB?dFI^J zk3ZQwVEq28)g@P~*!)Xw=L7amo%r>@&kP2&i1*v{`;2(YZtZs;yxt^il-&UJq*Hn6 zlY8}TwkhEI`G3y*&33)jEZ_BZ-|V#geS#<^tLc}P5xXupwEA=SnroRAU5|g)*;oQPcyNv4Gw`k;*9>a=#nGdt^NsceSM{%Y88T3H?bf#*!QP`Hg0ol3a*Ttp z5$UWq|5(IXjGVZ*bUY5l@UwW0YGm2D{}y)cA(PSI7F)a2@qysPL`*Xn2yvruLntjq zs!UIdB`qEqH1o)4=8<=h%P{lEJmnspXy)h-lgoVcNlHJQddB zs{xNLOpR!NzVXWat!kEyNI!Ghsc^->2Sr)pj$;zDj+yV;^Ff;)21d5=Tk8Ebt=HDh z;?($V&ej$!+qrw&`ETs`k)+^ANcf3QWb2MijdJK&CRyyh`_pBKE}D#=<}dRu@mx2! zg)GJ9?zfXNHA8>#Dow9Eu|4IBLB*%OZTIc*&sw<0e^D0DrRgK@3;XlUHpZG`^YUBA4BL~rWpBXA*+!!sk5(*d+IWE|*?xF&T1%tN6_cC`VyCb7+2`JJTK4_S zHqi@`M#mmbc^-G^W>vj*j-EG~9&dW7RiOKe@z3Q`9xPuy-+s)B@UITs_o#oe#?$|c zp(BQDxz^2PqO&Zm#H-(fdrR$x{Su!4-S0IkH>(eJyFRsF@9)iGt~#twzTxON{Xs~0 z@caSUUA*#cSH37tFZ=kAk#D=j^)7rH`E_s`uhj0pSgj9G@4bGt`=>vve^^|R^z-K7 z67v9gYS^)mcAuG~`}=tYte7Bkw95X$a?l{RmcM>-mug-bmZR6Gk(vvq*aL5 zj*C0Ec;om34S&uUusz>$A@}R7jvo&AD*5Mg{XU(4>!;xl3%rtMnRNYRVAYSQUdc8u zqDkDwZ3(p zizaR_H5e%yE;BMRz$=ptFftcr>Ausaa-2*l>#m!HL|jA9zcmZ_B}S#X2gf8OrpBe= z9-v!n+BjL`+G^Q|49v02)ozU-WRaOs1?n46WoOFj*UmkLGBKv0SLW#-pA0&+pknQa z$k=n;mMk28>Fi3oBeFr1!`^^)-hJ`{@_NneA=D4k>6`O3KS?L0;Cd8H7|=`!b^&Gq z9uY>|p}nkQdk;^3CLX41GA81Fvc9t3IzJ}j5B~}U?oql~_#Lp*UgM7ZoVs+^;jZ!r zljGOe551Dsu2b~3eR+%34?TNTsz*L(KKs$&RoA;)t{WO;XV}%oMfuIfdc(8Vp58yh zr})Ts=Vlx_vfuoZUiE?p0UK+d4GS7W(l>F<%@r@@e{L!`kzOfCC95t7YdR)&vXz@=c zpJ(12^ry*B8$-4oca59)YgO3qeWc%f9kr``+lZ`wpHC`i9{AL`=R^miPXj%!g!|n1 zrpb{9Jv;v9l`1OUbu+A}?a&^R7WrN}QW; zWE8%1`L92FUUHa_nLBQCuawJcdnSAp9ozPNzva)pPG|nn-FlqW&0i+`S$ue!{g~c1 z)jKyj97~=#I_b<$jn|E|&--lUl%pd9Q|6}`XKoB+FRsM4Y%sxfV0xP~1?`&8pVIhl zT)Wk2tvquizjQu5<#_+GUE&XQvYMFka^TSDaL*6jt{!Rsd%H`|O>Oca`!kx-{%^O`tlsx$+8^V36KNIvN!zK%|h?oW$KA5 z^Ro9t_@&!-nuz6QwS(T2!%k8sv=nh>@_KqgOc7@*bFa&1Aa^v7K2f&*^8V1qc@F17 zPA#h$Fsc6ZZO6W$cGKW+|@1?zz`m;1?l@@(+sBN=)kV?DhfgCG$@^cvSJ zXBw=jZ(X>@B(zUYb*GD)xKt|DAC}nM8RT#*IluMJ?2||RK0SWcc~wudpKl+&+A*k8 zm&qlCPs@7x{&1~d$f1c_j_t7iXu#lwG4tm8zWBZAtt)?4eQk0Qq{X|>J^uL0$Ss9G{4m+fJ;r)(pRpUf8vn8~XGepA+pV8PTw3Qc zWw3en{*0XUA1oT{X>+~#q^vupmfh+txn=Uf;7&gbI8dlR zT>w2}sHvEHi-dI2D9@fo=elh-{jTKqo$19vyEO8-i%wWw&u%|?)3)cE{}dU8t5>#a zz243myC|L5yR%1UH@THNO|O)Jvz#~XyHv=CKtT_r}_u9{pO-wUskm1&NpesJDRF@_=s*E zs!+}@99|aMV(r!b*O%qC-qqJxk&t?2OtK<1V8Na7PO~blI#{}W5}B8_wpZmZEkj55 zPtTcmc1iKJY>zaP>76|XPO=ZZUt;RAHvF8Uy?d7rt7d!|{bK)j>!u8D;yuiK@?BY{ zs4)p4OT}}#9Ez|E8v0ejq7}x!TZO774+-p3QF^tf(~-w%VLkirIJ0b;Z28zLH&tKn z{xNM_+WrBp22UJwE<1Hvldd_}pSt%veayw`)TI8CKi)Harz~@Evm;&lmKtsOzI5KA z$#CeN9KKJrU?tZ16pC)x~<%5>ipFY^s!1A+ilOtbDDk?wS=##)rdUHwJ9*wNNv8@cuWv04irdaaY@P)7uU%i6MsE;V57fL}lFwJm?ubeH}0jtov&cID4!Hv@ZS-f9(HGHhSOlsS1mAO5+k z-{}=0nW;zb_Znj6=CN(ms@tba)O$UDxmXc7Bc{0ZwsdjclV+{LLRwC}&}PQ!+_@HN zt3fVzci7ImFm>*R6)gt$?*8zw;+OCC%8l1-pXau8?9qF3ovNE3yXI)K@a(VmKI&Kb z=$`GYX^l&cd{NkEU(pB3$_Wialv6kEk4{VIH0s-x&t|y|K7ZKv$MKPIfh#wR9F%zO z^3O$Q%j&nt@$&$_J+O-frmX zBRdq=bMuWg=cXU|qDu#ezLUZDhH9CfX@p6(EAcuedJS3sZ4w8WtP_d5Jv(~wjL%E! z?LglDFkAjxoT{L?#l8tvbGk_XcwxQl@w3dhCGlyYmOp-J%5pw_{^yj~KJCJe9=;iI zX#BSyj%qu+$~L5pf!to%w8^K<&ze}zpAsP(x=rR+|9*Jxj8I?mOM$yPOLq8NS-kmT zs%&uUoOL}cN^d{zm3`(w%W#h&;XNM=={3`1MvJtF(WF}?Oti0nuMDxPj1V9Fv-iD-?_~W>J#7|O=1S$pb&RlijIKl3trBksLd|I zX{U#@IljRl+nqR}#DQQCtTBzn79k2>-iAR0LDp2s?kd?prOy!Dq|IOBBmCan_*U)! zi)+WqmUqui7I*t%-5Q6)9d|aIek}j)d&6r5FP{w_*I2gW(9uyR#$0{;d)37K$MaXU zx~|^$XME^jN!tNAehr=%g?w`QQFwzn<4-FT%Flis(MU5w{ZS*YH|KlqjSO4)%V0(2{j)1ZE&N0?CNlHN(cWgN*4MoM zXxuwF>Wj$^;|_nmZtVxpGN&#bvvA^uap%iFS2usr`KKk1j(usmbmsc~tD0;z@R`1Q zSJr2aou#{4-HiU@>7xVFqK3ArKgrE|@c6aKn~dhvpWSdz#73)AD}SojYh~8a(lZ-N z?@gUvRo*q(i51oP{$D-)EoE9neBy+H z>{A;}Hhb^=!G{0{_6L^vY_NkYtA1Xcs=g7!Nuo(lO3!%eJk*}#etFiE5B&bxU>7d?}r$= z-LuFG^16J_q)oFQcTDqYA=z`e<1ZJ&7W|f$8_-})j_54Jt)2M2dG(tAd)tY%PNon$ z7#kV3ttS>W5!~0L``0&Y>zHxwv%Ku-vh1w&)BeNrmEL)jp&=6) zvK!l~Y-Emh^=tQk9`cSJvSGCWkn-~ZvI$@=S{Vd3n+BZR9h}Kj06>CLQ~VK$#B)Uu zI~w!vmg}?$b|{xn0^NrYlwBmphY+y5j@Mc_4^SGYT2|q1wW#@lmS^DRL_v|>nazbDOW%!BQ(TC=L+1`umTK}Ha znSmFt#a26Q8)WNQ{G0E#fmY`qW=WP`8g^`9p38;t(+Wi&j&_VOT=r;R&BEyKhYp{& zYV*Pd3mR8^-`i$Uc)jfl9fIxe>>KuDewM;{`t*{J(G%o3VhijYO?Zl4{GaVnUbOVK zt*gFhDTnJVYf>w5fNaU)6`8^t@}t0B`GZ2n<{X^ZYiawQBbq9oEq6O9dzSUA@@&@u z&s|y@%Cev70T8*%vv13?f0t$7kY(>TkOmc-F7Vzdm6*I(wq~L4hLz3RO>dSswx0c% zBZjf_b}hj76wCh$hQiws2jSVa?q^#UY#%k>e{TbW=wU4u#4FY`I%aro&()x{!*-7h z*{M&EkPDEYYuwEG@yjNCHhkif#*O7>?!&_tZ(ZEaR5JMR+^MY_*RRSPy>Pc#x8Da1 zy&D~IZuKx%Nz}P{k?i@`UzDGnV!6^>^^-}z4PFN2XH7DyJGUR%=XCso{lEYEBEY=o z<|6BETSh)Q=(spz@UOYwr!^mQqw}?ye<*IGR#ciU3Ay{xg?Z6!3KM2MC^-59u6Bj4 zty!{omF)&;*igm%kE%R728AzpZq_o`Y`}F8ltKkEEhK--t zJuJ8T>LE8aNou}Z;q$%;;oxiTqkRZPy?fXKyl8_qHJ|G&OtKbMRCZ&tC zS5V*f9&R!V)2{fB&qIvd%c^SSy zK(bURl-NOR6BF%bVQOJITu=u&(!w+(ZZuSmrQ?&6Zc@jVx({dig|>9GFy-}%BfMWs zn&9aLMYRZ++`-SYV-N369uOLNc(s?yeS5U`>FFzPk54{j9zH$fIM(bu)xs2txOkHV z$kGa+p@G+pK0Am=$RMRPQ{X&rpa!^WzLsR5VNFw!okc%cDMs8tR ztK}A6S!Z{dhdVX8oeXj|HyPmuEeniDNQb=vYEcTB_qJm7YQtBfowQ%5GB~hf2OdBO zuP4wiE;T-t*Wd^sa=jcBK`IwpwUatJwv)DdJr6Y{6?ue)q-LaQ>yE0CeoNBt1~tJ@ z9!QD&w5vvnKnNxDurRGfR8j^H%ni!zgeU-cTkI>vp-%WGn<&Gt1A0RWYUv*|v}fO5 zVFCTZ28Q$q3+~ZR8Q4QQr8c}@|ByZbL3~RD@B%^rScgEZs!hJ-sEm+I(5Bx`@asbm zq5y$(z@bARjYRXKs423Ea@4AyZ_ltn0l}dIm3=Ktp%f76*6Semi;hE1P&to+y71Z{ z!it5dYrrT{>V|kPPk;>Q85TM;s7F{(aQ~n>*sg&w(Qy$%I=MF$9UYfSf$8I@*{(sc z8L6bnQ$L+dNTwf`K5k$_YEn!T4asN=(;f*Ckz-^0Vxy9%O-K*gpb)8_zway96ma1t z2u`Wz(O$uayc2k$ZzuK8AySvJ*3WB&gqmd(;?XT6C}fatK);aCFl9(cf8UTE!Gi*P zd*~w{?L!&NXU)Wwbn(An?+fPqQ)#3`86 z;S(^&1R&B2oPsY3kX}jKH*vx%X%oj%08-bHv48_q7Pw0q8^QAhU_?iC0-GSROM&44 zj2yj4J(2_;(+Z_^y$nPNcnQ-g$_(=h4j9xU7zs)BqmYbfMwiU5N1(EwUswoOK`8o` zRLlx$Wl<#2t1e-W;NbqjVg33C2NK~5<@#V?r({s&ijd*Y}JAzKBbe;v9Z7Y^F$~A`%kt(N1KHG$lPj8kZpT z>mMQ=2OW-X78a&01;7_F_g-7p;>T^e$8YSp!iDhrjlEd7h$dJbFI`WBzV}nR{F>)i#LA?x>dtuL`JgaZA!BETgD!Je2OW zhA99qpkF{JV%SM@{7J%74^J07dOs;+k!~reDNzXHahHV`YJ)!>y`KUKN!?OnpnX=0 zOTsB%ZeP7bc%^i&hWx+hlY!zaMGCb&v%Iqgsy7ab!=O>4?pHJUyMh`qQ&BoxKH$^J zjTGvtUR;63gh7kUhduZ!6xM-dB+WR@MJ zQjJBp^ngVqlXR3ayfb=d9UYm%8?N{3bgu7llVE4F_(e7Hff9 z2MNOPNEyPIREy&mVVxsi*mr&xjtQ^V1^g189jZR7Cj5$lYkmA41b!VDhw>DC$!$q) z)v{`bs>Rh&@P|uTUvi`2628^~U-f}&)c+jem~ahTo+G>y{&jf?$AoLbc{p&d!}VI= zn#v)VR3^b+3!FP-p^bQ?c?ip+Flk2z1;X%1lMt3fVRjuIqzJ=e%Q*Xst_>SBYiw&}(bAzsQ#%_= zbC=ey{q%_&?~3Hr<_d=c777PuL48!~=cKRrmAIB)7q1_umrpNGU3z9t`TT(&31>PN zN^ANm@KD%mRbi5YS;1jUatBxULjzv)SnOiR?km=;?t2uve;;rLr9 z9^_$6N|fweg;;XR2O1C*$+>+4Ui4gSFBSjz`oovuAe3RFSmg6uvy<@K_OT|E$|m|O zex#}8TN+<>j`)-uJnepz{M3D8rq-_$#Z?(A)D&M8B|Bv=vbvLv`XHZ*(oy+kVoPWy zAPsAb)lB9JY7qC$OU<&H$;twKSQIbi>|eoC&Ex|-zx++3S*Gz7os(E*1(#1?Mdje3 z6^A)*f0h-j>BH0&lUY%L0UIK*&I+z(zL@t1#(yS8|m>FgTSD10CGPF;rB3PZ^7f? zT*1>QQGq&MT=3k9scRTbMXH$h6?ow$FF3{;;sW_FbJpqP18 zY*nbAL@J9Kaf+e}d#0xJyX=^qM$|BVEqLbR`U*9lms6_Coj6tAAw#~Ly_1whr;ONu z^hV6?juZ7o(>^9vY=A3gW*WxX#5)?J?u1h-rMe9HsJ!Qm6zZpdSLv(pt^hthg9<6z zd8|l+w!r?iwk;}!x?F7HO6^IVrno@)%8ayi5CLBjTZ(VGiNbIDaH@c*VI?k{-Q0kw zk`mbM^|~D?dP|rtU6Z%y+-!mMkOcqdZ+u zTVlmFW)IOW6STW>5?2)G0UAD}Q0Jm;6~_?1hEvg)sT3KhJUPbW;^8r-#VK$@?Re^> zD0(8c-sEDz?0!I7I~cK@SX)J9rsji*@#>{RB zc*l}wnq6wp{zbfhqt@)Y4crjj5U%{?pg+)$38&Z|AQx}|x*{Ar1kOCgY^NIS0)wft z#S`lR{K9NkTu0E%A*LojjRm4n7h_gb_6_j7L7^tPP~y?iiX-0h8xoyZ^X(_tJ8Gz2 zS~}9FNuEZD=0KCWG4v3)iPLBr5zljFP6zGrSTXLPA!AuKaES%H&hOsN5BBl=;1O`C z$>a)FoK>hBVeH%DX^5xXlKX@D^+z$2WS3OIKav!Yng=e(2PlU54#K@r=zwY{R~YrOxV zben71PEllHiS{U6=h}1TcbqUEN}Lr%E=uRQZ4tJ~MN#CBbS7N=xtW~F9inN>cEXFkVe8POQwos8AEX zt_HvNwm7*`4SJz*VJ~hPAK6&oy~OXuP53gQx76#2k)lYOreS=sjz6O;ko9>g>k;A~ zqK=g2iP*+jEWL{gt4y=1?(FA1hTJc5;1 zqX}(6yhdyjpN;(p#XAER6{f66zmDZPSjh^tG3sc9#}Mg=?}_oyI4?iUR0_CMe}ba{ zjA?+ad(Q)&`1%xS>vL5E{M2Wm@y2XGiO8-G@$K$bEctLf7JA#K^IYP&Ar^|FKsi$p z-<2Soc%C`Nz-r9Nxfa+r1+!!^>gKOhc$-)>YtWtJl4-4EqsR(wh<-vFZ8F!gWG8dI zG}&D88Z)HH$_l<%_}Tef&dzKz#*rP$&*vJQ!rZBvgR#_hs$x+t#uM6jp4v#fZ8F9V z@%V~HOdT$k%;ozdL)#uT`pX;hMFsfmb)?Ay%yMz#O_4~)w_B-Am-j@#gO@^m6Jv{T zcpd2oK8=0CAN73*cyL^fq9_mZZ$8HQ_)$!qiMe4S<~3K&#&t{%c)*9CL81w)J1Ad1 zXwU}h4Z?Yekw6Zy!?|eGYny!vJz-M>dVnlddmY-*+|8{^6JjVKSa2sa#EqKVzkI;uAvFaOZrY78l zL4GS%FsHq;U{iapAh(qd{Gx(9%-vsM?%do~QG_|ihSm>!Sy$@H%9XMXxqxXO!IB-M zEOZlK_Ql$Bb6Zx_$52u9722dQ!90O6nD5Jq0<0881#Otx-xmJ1Or5J#3^0+i0dbLB zQK*#J?L-@$vlRm_W#$FjbB*FlnzK-6LpA{G=P?m@S2Slk+u{M=I3K;%P(|w{zD|{x z_rUv4)9Oz8<8KYxlSk_%>O*1Ng>Pc&$<3JEUZhtvW;?y{UW9kzNe()g zL$xr&HzBXh!HnGqx99A}*ka#ei+xKt&41?L@4(efv8}7X*Ul3R>MOpyaskFxrlzv6 z0NH6`pyjD?SZ`AMW3hhk&Pn3eTC>o6Uqz8bhoiOHc)}0iCci-)Zj^Y>YYW&7K)-F! z=Ta&`R>d-v(C6pZ zMsX_c#eoLlhm5o^Ki0y`6IFNA@ypusz7+Zge2y=_KJMSp&T6#5d2h5IQUVc7n)_5&x4&%uN~m0-(c+#uB&sgkXJjOmP*nE zKhd^cn`o_Cn^za7%lnOxR>(_fJ3#dy(QqbsO_{i%mR|_<$^&1onS3JuIrxeiEx5har$N2(nq?hmXJu(?EMV{PAr?`-uk=uaj7?ovV%5HUq2B zXKOHDQ$2KPb-1TIl%DY37PyWD&cR>qa7gcpcYhxLCU>$izxM&o3EyL=4+$?qTL`~O z!1?aEW*Hw2y3wa4VU8@7fPRQ>YW)KhY8@?6SomcDhZu*%({A`Om9S1Yk1@*EGmoq8 zRE9M)U(TOz&YuLQHeTq9TDWR$zs7D=@astv%#9|7tSDU9cY5{a>!YI&fu{eb^uqH- z!qYowM2AC~x2U|D$%pbEhG^w7MC&ATc^JZBPK2B#N(@C(D3X}`FA$&>=^=Rc&giqIoSBMowxlmb~ zhjRIPfZlFKG1Uzx#?KGH(Rog27ZX)?qV#3PR31x)2>cm`^#bLkvEx5o+Xfyctu>G? zc7isn6XJRJHRuze?AK|N+8GO2v3c`tt(%gNOO! zt9?Ri9MFU6=rhf-=a~D{@qVBgU(k*ZXh;dZajcfF;P~ty)B8OP`L5ux8LhRn=RU+& z{K4a$t@!nBsbqjcO)`r-jC~!yKpl7<9RU77wAP(?H1OiABs|&NK>?vIh@ruJP;4dHD^2Z`4+|N^1aTp9A4vDv?n2+Md{zg zvsAzrU$)-Zr}>ZS#fQJ=S=uq8*ur98oSe~R~Ic+ZC{5No9PJkSuW=OEV$1^%n7lZ7$bT&cdN<3ErG z(tH{&>VB~gXo~MAi#oXu?;j_OON_f&qGIpL#gMH#v4UGDli;#!roxyibsnjmYiNDy zi--85PTs`BIRW~{SkTFgE!j zSXa+DZM}Hdwn~g0RuwKXs2x}NVrF-6E#x1_lZCO4edeY;Si6+L&*#Coq4c%%X`+=e zRyrw)W_z$A4)tH%f@%BgCd~yl{2sIn@pRrnvYxuN#$mqCtOU8AjwRIb1MRs6UoPrR zG9K!~+OpqL|2)*4>Ya;z<{Cqu1^Mb<)f;hD)@T!-=8ZnK<@=bL`|cP2yg5~a_?9+)rVZ;WR?&0E$L;ljS0%A@)`G*(vY%B`8a_lGf*O zvNR*1Uma>`mgFesBYmJ&9j>mgV@<&~t=UfNHAs)Mrr3@wqf)alxY9T;r3uca;##mG zZ@`=s$-Fa0F>kcFQ1Y`v?T9ccOOO8*N@j!J1U}8DBflUccq5;HBRwR~U;j%EbmMwXuOW)m39{;H_?C;H{}I%6M$X6=~{o)JKI93+)&Qe}ero=7tiq zp#o=RkoT5K9x941iL-()vAmQ)s4MXb7tf_lauHUEGqg&qJt}a9mTQm|+?^B7;IIa# z@*W!F+{~A&=F9NbmT?g45fi|igFV%gSH?gUN|Yj%#;IOG1=TGR`^cyKm?@M9xC)01pXlEVye#|)KV}Oh@>+gYDEX1rB(}Bd z#4?<{fc{l^pxrmuBieH&dz?eOdHzWI94+qwJuag0Pz)Z(_uH%Ew@@gKw=n{uDt9EWLlwiFzsEenepcpDUCIJeH4(ApWbR>vD|aH5kXV zF6QIVe#*o12VosgJXInCeF1N#opCM;d29~WM)n;@1`b}2^Jj?-&LPN;G+0{}Q5fN+ zp}?0-kv|Oi)*_z?`o?~}k&6_2OG;-3zX|f20d|-JOFo1&d|3iK2LYa0ou5A&*N1-x zJU!L{XBm!J!7dnA*#E^>U@fh{yhidCQwM_qVOV!NTcUhxX6Zb1)9yGiToVcZeFK-3 zhqE`cO(etP$__N3_rrLPl`D!)qJCq%(Qa?Zq47P?7%!ft7Mhkjs{FA&jJKsdKKAmE zi^ZAXY_IXbjM&C>W=-dL5?5*?!I=$z9Kit|rb{5VM!r8Vmf`@<9BtH3A0W*N4iMUr zYr;ay(3TT=ZNvU3)J0j>R$6Pg=;bK~eAD$k3M3t9{xsVp;Y{Xo_)cP#(55-MHpw9e zCmeyUOq8Z7YMV3KGzN9^N1I&GCSAP((6+a=#R=!o)RxVF`L?#0uJrM6zON%h$x+WWd|#V}Gu2qsr4M+Ef2-pB+*aB7 zVVv2WHP{nS|K|cvIvf$43fNzyhsF*4?%@3{9v!{z#oomkGD3eN*1_J8CFh||_9iTu z_I`Nm2!^v1xDxueyFy$|^ejQ2<7|hgXA^IO0o{=|7GXGZWs0j%U=QY>$-Ob&{QLgb2@vaw%Nj^ z_H9C%0zA|RrgWyYY@zf0x^p+sWGPGM<*$X#R<%63)S5HU zrUf6DNwhKNQ?(!M!M?lL)RhHEbOU@jnUfAAi3cRj&% z7Tn%~J4$e;3GP|}4|9a}YHP!ov%QR^;XN9UogW_3xQ(AK4l;6v zPxILn#7#k5XB{9u)xYqMUcL08cJ>kQBDns7i*H@EzaIat3h4^?*SNtUejzJ%-f~%Z zIk?YO_o3GJE|!{6&3(I!;BTCa=pB)Yt3ygRsUN8T9~Cn;dIat!j){Q+M&Yu~h~Sv9 zF%hXTBO+49b?h)AIwfv=Op5LzPf~Ow>*X8Tm+m42L9nU2pAZD$q6`N!yual*p5bS8 zX0R}!3rhvjY419?#nIh@mR{6i;GMtL;3ktrjT((B0r2}%p3$S?qLF1G{8(Qw-Tell zorAUhmXjt;ijG7!_EQfn{kTok-dmu{8f64W@Rq@^CVylqpyC%U#0&Qv=52#4)LUW^+2viKs=4%~xiDZ}Ti z@FOe;WeQ<@86GT1g5k%?vu|8i0DrWO(lCYHB&J~HbI(go%sgRGlH+=#38%2T|5}(o z7i9MVhjgm*#^?BS&Ntct2C4_Uj*RuiL$vTgD=d_pU>_F``5F9Em_jm<;7xbDv5W;t z=OMWKyy=PD6GkO7N_(g+$}|9+8#frk+DB48{RWPEnFL-a_1C)Af(x49!=nV(2zhb7#5iO& zLw(?9H@H6t6a!pKF`9Nw&mh))nt>xeTflA|>Qg%gicvV;8Hv3!C9e(DYTlPK-|?=LVwXEL?t%1yQB z$?laTt2RDI-F!M@T-d(KL7?@)Y4%ZKx_eeGF<7_w@THJ3w19uE0v7S3@P&h;zA3U3#L)49oQ zji%HevTzrx+$I4L#@;*(7w!HO@1-`yVpT3=tR;~1WI?uX&m{4Yn3}?^m>s52n^;qA z9ED4=vzp{04G#lyX?zn?+7bI;IzyuUt}gr__QB+zgKz%)tIK=a zcPzP1khO7U@wX>1Z)eDUHH{!E9nHK=ApelqAYNl!K=Bke+Z6W!IzfI5nM_3{^De=D zU83x!{WhJ)vAwD?6?Z?J7}aZ`OSY+sPs4RpRoVk?TYSrmJTBQ?DZEsYZKtYigK$qF zJ=atScUD!pBfKl0zSO1Ixh}jD!g~qf*?QqlCXh!{nJwzlI+@mnRSsu#cY&8LARRAX zpz{I35zc~K)9GxS`XXDbf?FtQu29c#WUA{?{C5WD%f*dwPN)55fYLw4H%70+a}eP1 z`FWXyUZ23P>l1u$hx2V?)w~MLvZwf7rtVz(2!DnZn*!PZtT-RYltkKkOS0vv**$gm z>#T}R!FNMGObvMw|NVPAeEUwrgyb38Z)>zNXQJDOplQfNme4m0bavn=+?k>8Gjwtc zYP*Dk92|FBTwubKzMIJd4OWPq>AR~^XM86^@(z-lko-zF@0Nj2>3&(*YgsD557TrZ z;FH*gWg(2#hq~V(gfWHA_p1ATKd;5d`~AEY4}b4|-im{+iPXT5n6$vSgg8=epiE0k ziHl56ivi_Hw6V}90*xavDY_(DZ3S!wqr5#+Vq&1y#wUH$sF;+#NXHuT;n0|q7zK+R zufzoBg*4Nc3A^MffsifIpY)o1Vd!&UB0HqmJ1Qb!ErKk3o$gJO9 zvhp=R?6x+4ub4Eg<_qj#p^PIfgJII5HcSPxS_VcpQ-G3b&A6Y;-GXTdMvxd=Zc6Xl*I7bFBmzlMM=#BWG zh|%cQ5VK(u04pT}ieJ)V#swsdN=zBYE7M`HW!+<N|1&Y zrt(^X`o^JKSq5qk-20}dq(EO&XlzPM1U4ZN2<<_dQ+#3f1sy(?=rJ*Y^%MsrA~ost z=pRWEh+Z)Xq^UbFA_+Je&Abfz#0-vzOY51K5(tfwaiAS-I#BjhqyCYjhyp>hF$qyZ z1lE?osg809pX=)Ip{r_bYqfO_0VLnCiK#LEe9y5zje=5rQE`wZk6v9XRA@y&0vZr8 zHf~ak4t0#Jf3pNF=6UcRzKLyZEOSKbc(TBNjfjc`(h0weg&7B>_DxKTPfrqpd@_WW z0N`>12=Jbx-gUUI%VJLD#H0zd^wpdBYw>{_tI(- zie~kpPDV$i={#|e3L4Udu?Xo=4Q=NHCjw$Z40H&k5b}0Y>jb_{t3zTiH0&DYD zG0EvrVa3?5D3OP$rC8EF!#dT`a|q~LN6jo7J&qpI5}iUV5#wWC8@cDf z4}2q%NVQnVtG$zumY5o!k}%dSW+HIo&HBXfoGK_Lg=bP2slJKn#0!|evM*`ud371| z-uDk-fP)Z+q%H7^E?z#HoV;BF?_5#YgAF-`{)pbuEELtJ}y z2$?URMh2;r3{*rev~(cv2dp0Q`r=G+97MJe$en@OM8F4f!|x4~BTNdN!+nv1F+V=9 zt}L>BnhM>+REMNj&M66o&J3~?xhRF!wkl(;kS=ny^&JElDS%RU#!2Ru$>1yfIzlqZ z@ol1$(G4ckpEkWPdE+Up_F%|fD^~~GEppX*$ z>wgMIa>c3u~>ZpgaubtonXay>Yfd3Jel-v9oOVxY4nsnnTR>|58Fn6ZwWc#pD^A0-V*YAOUUmn zA*W^hg*E2aZS?4Ao;M@g-#AEoZwdLmCFJ*(kYWDL*xEQaCVE_ALbSXEOg$pR)Y`Vr z9-MDt3M9q6#8BQDb`*G{&18NxB{4N|RGJhYY4Ro*c|++^-b_05tdC2gFNR>vSxIWv zVf*R5CFJ*(kl$NEZkT2B-V*YAOUVC+Eg?^VCFF^`ZJPhBmXN@u-nJKC zHtG5Pwkc$1<6if!?jGu$9N%!nyv-9feH{8UOg(f*@)Z}O{e>O7e*6EEDdY}U;wH5> zD7mqF<7A&zUzbms9-Q-~yxZqpLW1Tm5r1ZG?tP*AZ{kLm^S4L+xMAb0Utg}X9Fsf! z#Kl474Gi1f4g5CuSmQr-I@X`$H>*6Z`;QGrH8lUe+2F4W;sQ1-`*dqbai%o(=FRD$ zeOEe^u1Y_CyZ!HHdS+e|IUEap*zLMw`!Dy|76*)PU+C)FZO&I0yA0`*e!9kR_rc0W z4SH#ge7@D!D?|I>jLBglO?rUOF&Wo%+@0;HyEg)GFWcV;D!gmhVC-a@_ok3Jj+edQgYJPx+a%u~6R^2-th`a?g!Bu~3uZ^#+?WuO z$n8IH@wd>d%T4DPxH~rM&~H^m>$3(Y`iIzhLx?g8b+c>hYHzT`{}==^B~LXu;xN6M{9$PRA|w z4Xqs3uXQ`Wpy6LBe%p2O{7C}`$Hn0ZXSdz0kdOBbf4nX8vf;-$J4V+(e`w-JqueKb zmTeCYJh(gT=dcbFKE6DmCV5B9^)IX%9X&Pd(4PyFW_UE2SKfE-7spn=H--H7N*w-P z3-vkNUmIQTbe4Kj}J`PMJ0atKhqHj!!GCfVOE#I-d zhbL^yzc+>a-W2kCQ^AKeSwZ!xZv?gjJzSx2`y`IHl2~nH#n%4*PyI{J+-}@`E<7nnL#Q zlFMH)h0F*1g(>6*ZE&n5m_ioG>P#V9breh?`);HJ|2k91BQIYJZr*2A!H7*0Cw1#H zx{;G?(1%>T?~ebneokdjBlp-r9W(k(xSsFZv&BkH=FqrVnMYsP?o!%KR9&68tch|`(73JO_QpE?-LG==ko0b%T5O6U0q(V=&3}xRk|X-dR1EZ zu4l2K^&eIruJ#ZouWMbH{@-T``7K-5f5sH@f#>IP9l!bQCzlg>4$GVhyt7U?XI<+! zD?Yc|%djs!BsPC-3VHF}5y#ifZ58xMnB|x$?b9sg^#3hs>(_hAmpYut-nzF9+~4Mjai z4P6$xuFK<;nU8GpBIel|1e=xpx_;3vx0hwz%`R`=5cI+H`gxztbX_rUY{tEBzuz#e zXldz_qm8>c**|Tu)V$f&1^#EEE>2h!b$j-D?}s0pem3C9oG0rW4ow(iWOUWSx!PK^ zzwh0t%GHspxcnbN7s^j&k6iwRmE-rOzSiDxqw`&z{lmnlf7;&T?7%bI&$L@tu6tU1lvnmW{4GA(P}Yxk zH`sU>?WHsGx-$TaHWYY!dD?w}M-U zcq812?F&Uh@V@I;iuhM_T~y)Lj<%|A&BE(fK#a{5{Gkd_+h6;_P>O4~I(-R`aFG(4 zG8vnQ=NcZpp8~hhbovoGDNMBCA1VVm8A%J@L=;%iH}a{UZPIl zuP%NY(#dgulhVoYkiEyz26grxVQ1`|czxFSD35gyu8Ubgxf$$1LRTWeqDP11har1v z^}q7=!%_{P&(9Dx)i_mZkfI=ch_YZpxKBYwtZ%{OB)@_PXN6k9NN-+`g6FAz&~vSC zkLnnIzw_S#Q&->j_A1}otNg!guTpcEJ4ZGRABKo9F2&FbZh$dnh_Pl=-~by{xQEZ* z?x0#zQFkZT1^^ez!KD2vf&Symy3#ncbu#7^h2S#K%N0!g77_E`DK|TL`;* z6jvq|^SUVAUurC)NzsYkuUzcls)LE?ZRbLQX{m)-2hYLuRd^yEUVp#~dJP`#*f+R@ zJLZWt{!RQq9-rEr<2?ey-Oxf;j;CVyjZ!?^Jm%TuHV< zasP*(FD=ieErK27bKOCg-9@mS3>}t)tJ|P^8SKGYwJ7Y@0FO1EFr7VE(LZkwHVF1$ zgJ2IfNU#T6>lbXh>ikN<9<0_csr>_F$=OpV#cc>gYn}hAG(nv34xfw*|9|jg9OaC6Sy8XZE%06|r-1zH`gse0xrO z2lhxpds`g5?1D!DeGX;DtDCTvS;MHG#WNJu&Uh$Y8E7KP{NQB?(uKo5?knm16uX`A z)TWaloyl9$*(f?Y<9Q?hzq*{3iiys6GO3ZJE zfo>UB*iYeg>R{dE`Z_FXnoifQ0~D=wH(<$Gz;Aa6OD+SP?&d5x94^%Z+i#m~99ser zfX!;SP}vrOyR$asSku8>f~~$y7-RQ|SK$Wk5-N+vS*^Ve>pB}SWb5Gx>2(6!%Ya4p zETCt)LkQl<9>xw|=G_5t-vWOXIsJ;9jhUA-{1rL%ipC4+^HJXz5nIw4{!VzP&0M*J z$GJ3HqIzV`mY^+O5E=0BojKNlPZJ@eQA$)7kj7ttYXg^XhCWg!^z`?YLa7ehLHj`bGr?3&G zwTY~?lTn6ncPjHWdpTquvViCaut;~+Y4nEEHlolmn@IEe>}fUq0|hdY+-y zE);gnmY`pk$WhJ#;F8*V7hzZvqU|=WFm%Y{ipqJ2evGH|NOKcw7^E(k>vgB}6#UxtyQ5tRA8g5#NGzUal z`rHUu`f-gBw_3!KXEgDhRQy_U=vn*q{f^nABV?DT975DaKO; z_ITi*g)Zf=xd9z<&WNLNRsnlJCQ}p_TsX-|K5sE>?;xJ?^7({#vWZojX3eW*b zW-qPNyX7h9y_5o9geOYRvb~8P6*@a`DsBDjYr|WMwEG`EU9orVK9%>E*ZFn$eu6%l zZIE?df;}~C29W+R^<#vQ--OHD4w^yTv^leVvO?To(`M9Vjzbrf8RjJa zny`{s*f;M}V^UIp{T<-hWO9-_;h=v?!^eXjb@8;Plfc%zmiK7Op|;it`x{+(kQpxt z$2jQ#m*$6ksAHvtHjMJpIB8y=E#dRNrM{GA9Oz1C>UI+W9IXDaI&`qiR8Z@kngo`dDnZsRs45XT)!mlN^9I z)I}JxT0L{uU{hPme;RE%h&dYLm-M~4jyBVdo7Zh6>G#_$z|I36^NEg>T~u9wGn!+| zFlQ;y=8JIOh8MyGY@jbGLEGLIk9n!k-)fRK)tmGox^U2eXw}8L1m&q-!>I)2Z3isE zbFP5re56so1+V%#?zH24GT9n(g&hPh;y?&B+~7F)!=dWe50Zr`Erwi^>Lm zN<-~{&JG(&CqerQ;JP5*6gFE-U08uD9#a$8R>nhXgIrNpZ(U#N>>TDHd>G2q;#F&Z zZd1VAVA8E;!ZDRIr^tZ)&v*`es9iTjk!x|gxn`SkgZ*K1z#cjll~}X-%aNwNBpGt7 zP%~z7$^~hhT@)E)x5G37JjMd=hFRy^xkx_S1U?i7`|S$QLICXWW-49oU~UTahpi6S z*DxdhbohINA7Sh^LR-#{!5E{qn*M*Zy$gJlSDpX=JTn1i5}+kl2yK%)N0=Sxtmu;6siB$>I)lgg)g6*p7 z+5oMckalf_LZ)n+|NC>Ed6FkXXx-QE_n+5mUh~X(&gFZ)=X<`l^F8O#*V-#0T~TXr zuKthbzxtyw*MG0>VDu`_Jq^;C)X#3{Wlsi|fr^_FWpC~1(YzHMxOYlirbTRQJ_x;%S*gJCXEdI{aCnD{-3+Ii?B5B=4IRLHX+S3lT z;g`~w2iHb6&#|Yq^xs%hT|0&Q>=tu>GJ1SMBHin86miUFCLg z&-y~{&544;>CLQv@cX^`s+Jz^j$ghgG_ZmDD|>RC=NWqD{^%5XRnKJT8~v*s{GSMO zH`k&N_oU|~C41YrSFC}%EyW-1*8MZc^UBHG6~a9y(v70ut#?flrA3WrwwQ=`O=I?`o&`I86i(}$dUKW zJivR?lKwVJe?{Zg^h+PIvewHm#q)z4ZQx;qQWvet&Mb zXPkqFnZg6}QTRE)yccfA+tWYWVCHwMK8dXSXUcq&?|15FwX{)g-9m6l-`gms=NUZr zPvKr|zQT+Ai2W1!&z#r)82_8l``5u+PH-=2KX9zGCpH~J2UkCORF=7>x_%OfJc#WD zZ!voD6pcq}vDI~ux-=%@0W%g=wtNIUsDG+UI8Z%1e8HxZ{$QB<+my%$V+Ub(aOtw=zcy&^PX% zYgdn0rlMz=v9&cPrt-`^NjssLKsmf!@9p3c*;xUlO=XNZ zn>YyV^fS%@?y<4=SGHK(rBw{f7lDh(d;`dtxLrP1cWhN*ucI?@4=r~>28ZoSGpD5Y z>YP~3rEL9E<61s$%d~RK@i}_=yX@Cb&|dKBNctdShrCNm@9ty#E71WrGJY;zMtFOy z{(qQPp{pa6@;yiPhguGCH(O8F<0vNuX)i*yTQzJH|are@IK(v9cHpQzr*{RGXK%FZwp@U+*@X7EOY1Cjl9Rn zj|~w?U&nJnp_Tqu^vn81i~2tJ;YEEeopZT$A>?Rv)9*I%Ci~A4oYy=Mp^cyMZiH_G zd*(hk;j4qZv0~uKv2KVlFHa$#qbh%FWF9D=@|bknXLNfTdX)V^{^9o4ao=tO?TNP~ zfzjI!w@u`{^yLnh#(zUTi%+(E`yMd#2(EF~4Vn4dJ0JWR7;3n0G-Lm`u*whBO@23B zK9_ym*Uh*sdpsx8Ct!E;0RLve4=i(v=nFPtp?xuZ;`uL_?`~gJkII}vmsQ=5L$lIr zRkjscM;FU)d(i5_7RFXF@NEi=ZpYwBZ3r(Pr@z!q9;Xk|k5!laTEfYBa^J(B(Brsk z^(NU^n?n0X#;1+{R*_}KP;{pM1&qJbjx%05d)W(f6qq#^WS@*R@U(}Ti-v}LN?!`5JHm40}X4BD=AMQGej8=Pvv?o}LcKQ+}=&ab`x3$0hLQg|| z$#%8bLtf3hgC{TQ;!Nr}E^o;8RY9K6r{>KMj1Ne@1q4HS=S(ZTi*v3(iJS)+&R-u#NZX;ZBJp7FL-+g>V;L9DPxJs(7e zd(dO#cOq1(>MOoj?=0FdeL}B*r=(ZSDBd1{?*_Q@Ogh7t7^?t$OwZVu%eYT>4&&VW zZgi&ey3zl!-3pSAA}@HxUsaI&Pula!s1Y9O^%FaG#|iqTHSkl|kVVj!;8z`5|6c8> zlY0)IXn^N%j(xs#em}4u&*ambc<*@ek9JiwviZ-V0_a(N0%T8#cA3P=>Dcz2alwJZJ@38|djp&vypm$t@ zoa63Go&!xkhfiAmNE-U>4WYLkqpupcPgF%8jvNhEmu?SF zighioxn{s(jyn3%#3t$c(v?;+KAp^g-yw_Qz!^k#Z3IrqLG^#Mj^muu?%=_DKeVHN zpYrFJKHm!tWXlT&!n^Q~-z_Y?WKPhk`g>%`Wbpn;`aPcC0nUa0Jh-@>Nag5I~A^{cf$98+9j`^zsU0o$b?@^X(|0ZZ98}@YVxCZ zDt!<;qi4#F(n02@{->sMSHXlwOZyq4)GY3lydu(ma)ZTv1trPUl~#K#|5I1Wzx&L2 zcR9~CJ_m=leD|#GbnqR4W}eJ#&PlwwJd(b(#+MlITjnmtsJV-AqFKi#tj@U~wdP85 zFK3i{8GAk#+4AB{fBV;q(0Bcds{1eUp*F;N>wMOoFMT1W{hul#>79)Ead^sc>P&re zTswSqv+f`eod&RXT-gR3iA})c%24^`q!Sr>@W>0zgB8$F1+g0ebfR_0=k?(4(#(I2 z4{h{Dxz}|nX$4n{-U^Hya_6?!&mq1yIa78Absb}jax?#7VjTtOSW1u4Mv8h;$a%#B z*qOSGY{=*}zr`mccwN0ZgH1F1d;{3n=a#@D>a zO5{Sn^7CI_6K?rie}<1``LIt?zkHf?mqxm*gN=L30@e-9;BN+Leg52Jh%p+mQ$~2J z`076J8s+ZcAbImQ!zL`~;umR_OYg>bi@qBhqI-U~Sx1?zcKF!d|#02m5vZbuDe!1(ORS zT@%62WNgj&!w(+~k{)ind+)dQhg*iMJmVw!BKG4BdvcQ>e)w~ENnAYWgQ1o%c_YB# z$o*LU+tAYo^Q^*Qzon7?PJc9Bl3f}zjbjOIw!y#KsP7ZV89fKPLoL!Nf{YuqU*DK# z^w+A7dERSY=zXZByE>YSUIO38Z#Ab4xt$6Q&TZ$n5gQ>Y+l4+HwCB%_lNQIekq&cv z;|J1nm=AwIenmBRGqS%Gnco_)I=1jd=PEpCO`VHwnJ(vl0bl&q@MG*^>I(R*x%+vy zVuIDd!eht!;uy44kZj`)(71H53Tw626B>YlBUw9|i8cLq?sZljm#dCar{CAouZ=wC zc2}By%Lhl_>d~#!tMG@%vG?xbtMc5Vn*1?!s4Zl^kr!X2y^Ebeo??CGJ=J%e#L0 z55xU?dXye>4*u`zGKvwF>^_cunWoR&`;Pp!;4h`f^J%~}HF@F$zEynlr~KoS=lm0r zKY%Yu<{yRk3J=b@m+p=!PJRb`tjUXX-Gl#W7x2D}?Qxv@Uw)6@^Nmkh?JrSpJ37M& z$;RCatB+A82f9%^DSQKeMj6E@i@#jR?;;&}_&%hSe&Q5!+Rx3RPkt-$U(nLfBL5NH zar822Z_uZ+^jG={^;T<5P%`EWy7Uk5&kp*>hu`ELdFg|LvvvQx#-b#71Ncm%$1Rv( z-7xEN^fKo40)L?C*_r4G&|v!&*3_r@$_B6Co@~*o{1^MVzdAmHxn)l`zKdG@FJ*lx zXm#Gncm^)!zMFEZ<9414d0xtI2pTBHU!i;GWAJ&w)(9TdPU8%xjT-4HnKq8WE4^(* z^`ACUmsuSP)CRs0cw5JNc`oMpCVqwIvP&FY?{fMkUrud~HK&I*up7-CPLnRRmhFX? zd=33fkcmw*CR)p0{XiuB_w+Zl03Y&(NY|^_RsnRR;JV1s|K4CHa`7vM z9=>RM9y~aS?$KoDwnV9G73n?H_3RXMzm=+QTGK?vI`v71PQHyVRedT3xBd6P$KV;M z&wwZHeCi=Cqvw&x(cCL8+CFeX_iRVnqtvySI#*HOZ-86l8N^>Hp1Nd;l^DPV{G}(o zq^EK3M0nD_tB+-o^qY*uddldouj%iP?5%m`JuNB9RG^19ur_oS+hd6J_%9L*BsiXD z4Ak!z7>7Q1SO0a9G`3es>I;$TTPXW7eLsue^Cjv#&iJ_aO|9has|}HA@hjaIr8%3L z1?^3+xZ?`h<+r-T=Tx`&vFdpBD(-$~45m)7rU=hv{)tT|h% z0lwWu_?V-Na~m>XGkw#uWI!cyBzh&!LEq9!?h<$Ic`8aa8G5&tLhp0j_rUiBI@M=%uly6>^-cOH+hyn@;$H>Gf*5yY$<`@J zPNDuu^i#Bm4qo*e;#^(^AHRntUxF50yg9K3;*o{P8Q7|~GaochnNywct3>DNp(oB! zF5Pr9G1rUW*9+lsHP{T!eu~N<{^5YNwE}ul9p8GBxNXL!o$-xhFWCFvo6!Fs(XaPW zxBPkUz%Rd)ja6EUf1#ZSxOe2n&n_r8RA-7g`Nr;? zcFCZF=v|}hgm=ue6MfIviAB&rir-gSGQ0yCF}&j;hj;Aaj`%m<6G?v=IzPwUIRg)f zVy_=$UcX9Shi^JfUc4AMeU#3qlk@xg+tNr)DdJJ6WFc(!$a!d7!kG$ZU z*d#poSu@!I4|xPyE5lxt?^r(MY(JCQivlY#I`S1HMqRaSj3?9K1x~}X~GS*#y|v`YR=@7 zF3?7~`!oM@Gv#QfS7jpjfj1)CD)^mGzZ%FZ9aH*hn`u8Vw~^n*p|ZKp^1F(?1cEE| z_Jp~stc%Ta{OuB+1LisO_C<5cDQ|SOEIV!N^-f18O@k-F+J{ai-9~zibecit-<#6Q z;AP(>mTUohp^iHh0}hb>)=}=`t#uD3k+m^&Y_0iw zdG}fR&-#bMkLj~uUmP5fFDC^53`f4a3GM4ybP<$%@$_>y^HBYiys3lMgu9L79bIfE zJj>`}ldRQ?^h_OPc5zcb{WNkLAJay~2T{NKznHmthPhfRerRIQoOqU({nO!XrSP^< zI!tDM7Md6rtz*7S9!I83_sEoK!};EW9CGRELVEL8Cph!c_2Wn$R6@*G@|}T97?ukj z|4vl4r9A=ro%=+gyC}Bb3hbM5bh>qKTkS6}Mkdex2?@Q^_=>h&-+=5Zr;b1(@IO{N z^J7yTd4ra7*P`Bg{Vng--ZQk9-G*Bx@ORcA@L;#gkM7JH_nqcW47lUKsJNr&sAmgv z)n;Fd(L#=<~@C7B>gn{;GP-izvyml*ejjTbmwdbk3SIo zQ%!(R^-#A(3oto?*rE!^sMN$$X@KS5b(4C%X^f6K6L|+zdTld z*G}j#2+2rzXy0{LSriP6uz1e>jl?Pt}J48wUtD=I*1#LBX?ZgTpvJM=ly!h5JmtSFLHS3vqw~@6^cbz!J+!jyR3Vbp6 zvV@fycA_P6dyRWs--HbXc)Z2P+31n(Apg2P|n|7>Ofu{NR#juKwhuuUz~A z@@=j2SzQyySyS`)D$cqVe8|Sw4}YiyM`mpsm}@JL+jgF@4Uyf;Dxr^B#*+RG>;(Qb z)Z>;_f8Da`ueWT#d8e`NJV2ic87s|yl^^kgjL`CE_{XB>rwu(Tj%F`3DxHs*;q)Hp z%ETW-Bj|l$`C7is*qkHZ)6lh}OE`Mi?@4E#h5r$FwEi5#-=_6u;)ieea{fmi{1P^i zo+rWU+n@{lxJ^lH=dV((EjQK`__wN-;>L!(--B+qc+%j_En#R3UsBbVNEa_^8RLD^ zfpE(n=u-V>J)rkn_>$1O!;ajUntYxzYngkW8>6i1zAsbvnlautce!} z@MhNOUA%ppu|AIO>-OX8wDZZ83u+H`; z={*k2vTLR9P-#aBJ}?a$7q1o0@OdrUirzVy`fI_pYcDUwUJiQFreZ6X`N@xb#_rxS z{o%sxHt*Nm64`5fefXi5QvMA6PC=JD4^*{Cr)YczUpKV(=g8J>e6!fEw<+FAbxp*M z7M)cCi(n9JjxHQ%YB@JVe8M!-*9*zwPJDeS`lY=dmhHruxc}M98+OwWKUNSwcdhtm z&4k1P+j_lxN_?B+XCECGX!PnCk!txXd(b}`;cw_6#He&v6VoI=aaHZ5-Sb)FpL2&D zJk&j&Jwd=B92B9O+(rKVr2Q3Xk_C?=E8{b`k_~$QFlq9EM#-~-G|ACy9o8$yU0Bp+ z17#LaejVkYBU8?+AJDhML3ASS5P!0^c_w`%rUY8+C%!s27D!^+&Fec}2W7z4Nd=fquZ|sG|s)dhYF^j(x?}>&?_tHqJ_y1Lq&%(Zu(>zQTb!U-yvT zk6nHrYng?}Bj&;CX6%r<{Z?WY>$K_@be^unR#f}iZyZ1m*oggcAM4-JVS3O9B7B3S z>3oU)h85P(gp^IbnReU*erm%K+mu*+2j3v&d-(k&U-9-f>g?dF z{??MVjBhj_y(KfRv?e7QL{7lRV)dfM`*yOAct=sHjj+R@Iu3MlN$vWEI+Q9t(6#vb-CHlQf z10(e?4=CsE!IHi3I6SuvewrF@&Cz_0(?9Fjf<)jo>^kT#$k-l~T}?Xcu<0d5R(=w_ zp8x2&(&=)|-j6!=)y%%;&^GOFtIgm@_)%am-H3HadQayyuK1D~r&+n-6>8BDxJS{!;ca8gD*y-mCu-&-Zm=vCE< zNpRPUT%7!rwubRyY(YmiydGWoNpwDVdwACue3f_MJ5`&36;9lM`XL_Kip&XEk+tpY z3lN=EK;wb;M!K{QK>n3F@W%XTS^XObR zx#RXzb;EGC8andWyy{;8>1K@tz0mZrX2fwQVjIs9-;rJcE)73*VI3Y1W7|6PPFt_p#OG^VLzkP0(0zRk-zd-O7x@oc=?{0gXIz-^$g;Uz{0;i$bH@Md zH+xiiL;Py4N(QLsMG+I9sx#^!A)seGxbg;IG9- zNd&0_-qI2O;|uenKC7B|x5VQ-BlE-BXH^ajoR`V)LAIs)zJjruJ>uhn#g~(gh?Cb+ByTXBu{hP$H1(E@DHSGmT1+YgveF*{U z6M4*8;H?B+)iaCww&o$btK#FktCc2MCU_-# z_koW$z=vX|7C&q+WinJz$8Gn}?){m*dHWqkZ;a7yx!OI3Vb3B=uuO{Zv%U>KicJ(VKZVp{Ld@nxIw#<#{RNa|f|uFyhym7h-FbJ91(HYx;5iZzMhRx}DbV?Eadx@D&B8wT#Oa-oFSB z92&CQPprg81FXzH6B}F!PdxL5ns(+S|BI7d{MY;`RGbEF$C1~9L;d?P|F`h}dSF>U zxwu7jsy;W)ub8svN2@Eu%kUAk0Lz-RomSZZbo3biYy16Omr-6i^bqn@^0=F|Eb-V= z;_vX4uhWjw^?oPMFu%f+qz9>|){dkH(C^~v-F#{wT67jZoy-H%}U3xjf3tUc46_+_CXXl85nA#?S?xV@|5C;=R|A@3gP5 zCB=M=qPLu;tv2wg_@5B(!1G`m<0zb5o`H$|R9l^Mlw!StTknLYv2=H>!4lhutaNBw z?N;H>9Kqv=4_M<7_!@CkmJ^@YK!273e>PmcEV$mrX1(w@W!3-qyVrk``n>)A{kzuh z$a$l8Idp!wU_}nLDC>3^-KGIt|2FeXKMxns&$0S;D68$C>A&&=_gMM&W#xa`z)H-Y zM|ZxSu^o+X2VTix#m032b2)nW$B8!)%(=`H&HEU-I5ej;<0J9bIa1$PYtxQBC?8f2 zG?fQ$XmaLc{sQQE8|&b=A`==(58D%;ZN#qoGCKL~*Zg9e{(jaBO25mA9}%A|0H}9lV~>&Jmn>igGc!2Q!!+L{0t4? zT6L#fbX?z+oIA=TygRJ!jm{*dM(y^eaCj-D1 z;EMV{z=6;8H>j*WCeQvN$*{wrS96T5?akxB>x?ydvAJ>*CxFE~V+-~1Tn^0Yw-+v_ zc88C;`rD%UzOk~0A|tXr5Rd1k=c*;L1)iy^3}|5ooAiRE9>31_3MQnzEpp` z_!8^0?*y-RO#$I@ICi`yz3LUp5xb*j10#NhGOJ*q0X+W)aBewn8{B2{sOBZKe1Nr-RCis<(G2D4`X3#_E>xCk&Tv;eoOm-H*S_))A6^QL!dJ9Re0fA z_9wt4xC7X~*=@T0_0r9FU@Mr&`VVbpZ2KqOI9%}tY|Fy;!1IWuI5IS}Bc2+1ARk3+=0bOQ zmVGF6sa4Pheu?p(A8lMQU+-284OON5xl4i%mn|)Sc<~ZtMCSLCA00!1z2u9Dwkka$fqEJ{sQ@sn*_4@s!8J``Ql)VYMxLIlhn>H`cm(GJcaC z_@>ai+4kzhwKd~c(He-(7pgTpPciPSt+4j91zF*)bBd>A+sN7NoBq;A=&sY$m4W4d z1IMIyf#WD+5u=T4Shm0)|NnreAD!@>@NxjZbD>_7>JG@~!lH zn8WMAar1il-V2f|`5#R#!jBV}7qH82l+21I{aqV($%i#sFHxMm=&Hd#GQS-9a>n~K z`ia+1_+D@q2RD+nPwo*7lhr>=z~fy2aQK!12C65svJBi9f|1|6f{jr~-H*e80}T zQ2zvHHtsAw+4PXD&*|JQ^-uVk4Zfs5YK(q-l66pEr;kqtkX7s0r_(^6^llbBCq|oj zW3;LE-g?OKF{aQx`tYGDcD0Q$PR%4vjx>J3U97&HZ~yL`O4`8hcvYhR8Q!r*Eni6g zRTlPetUfPfb)DG2`9#+_KItImlF2?jegfNd3-vEzuA@_(R9r&_)+O+je*TBv@1!>d z(2LgEYgI1zdB6EBJ7TBrhPF=Z)>^5ZIJU>B>mNyzZ*eFi!wmjB{s!>{WG+5YM-NUJ z9Ke&tl&6lKmZFWm-M)5%1J=XUZ>9CKb}ZbepTb89zh@Brt5*1+pISSM8Jq``zo4By z)}bxpKMwJn((^UaD>Kjd9{<&So)bwQaG$S;r11?o`70yoAG*(fMy!VWT*G>{`+Te> zy@%%$=#R&r0mmyHynI@?x`(tAq-}80ZZNnStxt~7o1^oIAI6v~ib2ra`5|-Pj5qT} z>F+joZXy2`=FUCfT(mct|JgFY;*;Gjde@W0-{8J02P>(m>5oV3%c$!)M+TI_qCucCe7OZk3@UM?6vPF{=O59uAUUH+Qoq;*q1Q(x~#`7il- zmiPKCqdzKBLm30B?Z`v=XnfeG4KAJdsO93>CT09*gFx{@3l@9 z%k*(B?_2RLx_uL$QGUHgewn^qLmt5?y%4_(XC)RSL!_y1nR%e%x|sFLr@(vw7Dr#<(%4=Z)JL{9@``pWbE0?RC=BH+S4#RUEiy z+@8wx?I>j!w@rbpaZ_IPH+#%3)L&?FliJc6vtl$`8MmK1{<`FB=7GkohH(>|W7V61 zbMrHT^X;MGv3xi)mU{1wsY@r>oYnf^XOnE-Pj_MyP` z-%(cmaX+F%*M7kN#9G94i7nIv57}g0YMJ>hKR9ihGtSmS`!UC+)mrDMGgO8$Jl(BZ zzlP2|{Cx}cHqbBOi+YxQjjTaIquwrf!r{`D#AZn9S6|DMvm%ipz|c$9MT$*-?|70?g;nlZ}6 z+qmt62jug(1ZVzj$)%n0irnqk51Z;(!*_-+P)y1D@Ma9_*`8~YidL2?LlN)cnWK>#NrOHk5V%Kx5RIA zKB0Wu^{hj$jxbijnRFm;yH0a&|dqKQBL>ejh|cl*M?5;_1o1$Gwo{Tx^%5g zfr{ygU?pc^?Y0t)oZ%*2Xn=e#(Pv^Yx2o^o#MbiaC~DW~=jd2Kx6h~9?{8a!_x#UL=UDac!Dlj-Z}?mA2;h4%ucjcO zHM3heFCqRq`-B^t2zLxN!E=|f_BCaBr?pz=B?NBeJk|GGtE13JD{COR%&Wj_zT31u zoy-4&*tLsXp@ao|YlJ(lpC%maYfrQp%sBaTG5%LxNqU+c6 zRr!{C^EGGkadxxv7~1jZjAPMh6@6=%Yjv$TZdLz;IvcL#`G9Ps(Kax{Z^qvp?;20L ztQs5m;Fj#e9PzQKJvaXxZ~hFN7I0?gH!+C#f!%Vg$jOvHwwd$Qx0TuUzy^G+fzR37 zE14(ad#%qd#FuEjKASVz7%${mj+sk}$74;ytYu@D$xi0%m7K&k0Juz|)o-@vlUcxz)!?+Yb5^qvm zZk6^g?21$aV-;uhrq$1N*v9J~vD?>SPk)GdX?Qnq{f2(9etCqLCaq@~8G05wa7;Quj-Oes zvppPH@lIoc-)z*F)SEHktji0GiToHELu6F%_b<@jvBsozWK60xChTME)fp1mVO=4)m4P>P$`^qSmsx`k zC`LtVsNvh;Rj1hJskPC3+Byb2s^d8MkCKNN*6>;QN)KzLDde5*;EDSR4h7#@v}F!! zv;CAK9@^N0F=9Y_fqRFq*u))PPJO37;?ymkqW905_eJLY8;rZoBb)X4$Y9jO2j`87 z53aTI4h1+nbDGwG?ZScm=$A8S%Q+LEDETeUh7ta7a(6OEdiPNG8^EKsT50Q_`M;0Y zP{lwJ_mVIEoFq*#H6il+W^z%B@+;3-_BQn~*Z-5g?E+`DR(Ewj`bHF97Rtmchiu;= z=47JIUvek~4?F>$Du7RG(l<&5Fo)!;xxZ=7U?*#$s<*^0X<`4b^!(mp#__Q%7$5b( zDEQX%-~hI-6FklSEOD3qhr{24U9vKu~i&FjCvS_x5J@Lb8S;!9Mg;Fd0=^G5>{3tL#%ZVz5u zNSH^gw-FgMU2UR6BR|s8rGpi;i_R^3={3rXH73_HCX%ljm$&dQjyf}9CUVqoC2o63 z=SAclk)NS2GcLE6Sa;^BKhR;|N1T~>skL+gdLd)Ato_QKZ3iuDo-RPqeelY!Qh&%(cN_WIsGBzCq60?dK(NPo=KZO0h z6Zo=Wx(%38&qS)Fg91ZUA9Lx)_(e1(cLPiO%1AqBzaN^<_)=f*(9pQ{z7vWu8s9#& zz)BDKebt`^j?_$IOMkSZK9D)L)x-uZsxj*|C)o$%UB{V8zA4nb71~IV$AZ^^hpO}P z0l)T?jrC43An0fK9ND*hl(P?@lQ-s}kD#aY6+FI8V_4SZ>~9U^5OW64)qmOlfdKo6 zX>Vkn6eKSK56so@9h{Ak@-M75xPVq40v93SxY@z+G4LwhBl|CQc4*FHGa~IlJNM8m z@Kff`GvhAbgMWWnA~I=e%L;qyAc2p{|^+7&Mr&l}4>?yTcD@>_7qPbGTnTWKYJAsS}?*Lm~@Zremx;C3wf zJI>@IOp{+4;Qmm-Wuj-y-M_m}L_ef&T{D65rAsmM*UN32%%G=X)4`l_M|EA3gSw zt3Pt5Ul<;4bo5&4^Xl^RH5NYfMsz2m%fnZtC%gH+f?ZylS?i7PYs#Xl&!SvLSFhGy z23Ozm@C&0Gi(jC}>74nk@)042Izt+7kIw!9+V~t_3!S}4^`f&&cJ#3K$;g#SOJ zu5MqX>lOHue0}cz!=a3Cw`|ko)fW0^S?lE04aml_Urt`#P5rgvcRQyg%6>H&SrXqC z1b(GiE2a@G<^kY-a+5KibjQ__yE0c2#;1Qy;e?mTOq>cp#{ax#FtsC~! zP6+&l_;2RIu^h91dfjB}2FcD*@Af+~Lo_WpEt!aIe*@z-oKHG%0kSu>J42(;ub1aZ zo+}pC%Ueg_b^V=Ivf(Z(AzIMbcYwbrxSt5_*DbULAA@$*<=g2d@~k^x4OWtG9cS~h zk9j`vxwl1$L1`xj^)YCo=@Y=r`|NiY;_qgDiytz-PeO-78!j=rSp)krL+A_WR88IN z84igSY<$@4b&&mK<~irN1c0}nxuZB3?1d?1cFyYE&{-aQkn>im@sU>de-zqB4|s)q z>?^L8Ur70Ofyb7*P^MgN6F!M$p=%=ZSwEWdH?)rpUH{_li3vabIZoLM{)^9l7n%M^ zy(fJ|eogwN-8qRNztxq)f2|e!_*K5&;a3@*FEBb^#L4$d@?CA2*#6%CroBm&{{wZt zygQIMctzxaessjfg;%#MY5dIm&`QJ8t+1*^pZ&zwIPX50c{km>lPt=k&RV;m zCGT%?s_}IuIBRCgcNnj`-_p6nRw3sn_6kpGFZy}=wz9wB>~-m~4_mjbS{Q2iGhhM2_1>?+k)H7!bt@pF{DzmR}5As&yWWkI0&4r$SA_j7*|znYVQ{ttA8(W92zfmPaPrC15kf9fi~i5+OCTpDyQCD4~-`IEEw5Ptj^-zTSe%V_#h8)iJ>q>9Ye%p=2 z=(up953Fhh2l2%Q){ZT=MA9feg{{D}oW0ii-v*ynoJb$^vlQ7O99<1Q`dl4TJjWA9 z@-<-FLzykNSd2?S^8MshefLt|DddjQ#`5X@#TkvM^Ks%TSMHybF#TfBU6eC@-_Krs`Gq6U$x3uu@dDkarg4hjcu{pZzlO(o;-%HD z>nA*m|0GVkwtZ3J+mut@p^Q9o^8IMoUKKC=CUiDL9HCi@V(h?oxGLYO5=_N*zFE`A z8z1Yvopp`2NAk7@8}HkT-=+!wt+TFClv&q+hwk9qg$DMmhD1L*9hnk)pS4sxw3U5F z;xIQ;K2!{cs6=G4Nk1Mq9v6I#z{To`Uy{+55WlkZZKZxMXG0esEa zOAGL~(2qF%QNPf6ntJHVXMk&HT+ZsdcwV)T^J^PFF<*W817C-C2EyW-DyK5-_!e5| z*CF^c{4((i`u^YWOwrn!T~?)Vt#bfb*XmVYK6Rs&IK;cjoNe=O+{N4$p1hs!Ghi0sR^|d+wQGn$*m3=8YR4;p#Rv=Rx2*p)BWw zgo*nPe+s=!cG#-Rtfc|YO$`2x#<6gf^qJ?xbKqS8cuw%ws~%Wj7p-#nvBp62=0duQ z^pYt}yN_Rirc?X>y4pcaLgXmpjX!YA^lU|dR{_05VvpY9c zXWOG+HF`*#{=`53RrKV*67A!Q!|VE&q03#-Q%b$_%G&TVz>}pz$1+CKrnrg>@ z>m+d10$1GUz$M>;3y*lO3s0Q~o=Towc)EeXg{MLAJTNt1*!Z!W>zTnYq z@XM+Xz>9~_>tEJ>AK|=t1nyxv^4w`<^6Yf;82vVRPevXupq(i8?f|q3FR1Eg&qO$g zj(1J>1I*Pq@>K`ls@W2TzMIBzJ|}mONoR}N_{zyQmv<+yXI*>LwRg>$BJhj$zXK1} z`qUe=X<*s!z@qsfI#G;?e3qQ)Z{l{48J(iJH;@C0)#04H;rd_151{tE^($Vi6`3X< zL5eb3N06^vb-c*`vD#E#Bg?YlH^#!BD}QyK9_tF3HP+`?V=W#yz<4ESBaW{%z?i5_ z8ZPWG^0F}bX=0S*OVN00t)ugi;_Yf%XTdzoJJr2|dpc?A803%WB82xGr%# zlNWih72C1Oq^}rBUrBldS`|DY;0aK_cvE&8OZ`@7_lK%lNZ;%Om#M32+SR8OZw@U3 zKZo<+lexsAMm}8K(g+R~BL}f@HV43i&E1-BykK~DuXy7-?Ez97@=^7ZpSj!tyoUoj zhxe%)8aHX!cE{k|va4L$7j5i0H`F0`a%EEkOP=CmoiSMwz4jom4=_1{jd2}-;mI+-FyT4ovq}ei-|VyqrWjf)Xr>Z*TCV4BT@WfD}8Ptc0@D^{8O`a ztFm(cb60rJh492*n09ww=d`>3x`b(yvA8qSru4?_Hr=+$$!FT~#9f%Y!*}D9J#YS3 zIA@%ebC!?!f6O@(Vfep2@_wxOt2;9&_nObX-s~g5uWA0<71t*gaUXX#bN6cC#g;Mi z+q7YDYI_ZZP*p5>#!?1=e&^fM1t1e)w5?Ju_HIKddt6TECtu$ zt>9Yl1a{VSb#SH^c4SlW{w<{pMwM*3`OU@R35QFX$1Co#cUq9OPH-c_~9En1g0r=Cs)breMJ&xQEK3b`ZI*vqvo%6E>nyE+W zX52G<7;6u{gBSRvM~_z@9Iv#@#12ayHeDvFbhM)VqxM)&|xqx=p>(tw--~gDmpw zxN5Vv2mX6(CB7Ygqx8FxZ;E~6KV=SieYV5x*;cz{+wHEba_D6=pLfpEb?gCXC#*XR zr&F)y$|2y$0oE@4=|9IY!&)U9zOX)wqiW%H-E%Dq+d!MyB1`gtP5WkCE z+(UdR_DOgTFe?6G26-PnHLOQrh5+!T%lqKw}Lt<$)Hh7liO7Ggq2~ z?@DZp1<2+V%z1oBy$7)k=fF!`zwd7uNAbUT75G=^*FO3+m3-K@RSo>Vg!gA?1H3&s z&9)MINDuj0*Mi=j^#z{21A2IYbLbl23D0wfkNTRTuYnoO^?@sXSsF(+?PdLIFLo4u zXPwVzY?a@!?|eG@37=;F*njdI=bW~{#g;j@Za?KiqU*bBj1M+m0M?tkHGTKV(LFF@4lMTY@Xa`o0T$39t(`*N1~0U845oJNz+iN~iw=F;BELyf=CU zXW?1sv*KaWQ?uV|y!1}}j1s@)_A~I-1p4XpZzty{e8cq5>eBfMEK}`5xbtz;ITdM)v#qPZW0bLw{#D5x29-su8DKYt=1f}JhTaewXXQ(_slN-xm3~&f znV|2^xms7JOm)Bf)|3xWKIoPmXD{uMzCgM~`d8sq+AAX5s=Zq2FY^5n<1Lx1wRGqx zKgjNp31Xmm5o#YodJBHz=&$Ymv-REP#ebBmdo)>P(y#dA{2_D+%QyX=C3tsW9ndn1T zac0{r>c5U>e1AHNTIaa!-oSYitflPSZJF~XzRDa`TmpUWY6foIeUU8-+~S)|x= z2tTS$QC~lNDMg$8oC_C#zJ`W;l|g>{cl#^NK1A9v`w%%B?kUVl8;;oJ)%c&g z%BRFjy=PsF#;;=!h@R1BjS9?<0X9iBHz=0%w#BUkq$obCt~d zK4}fW24BlJvc-k@n!KfLq$|%S==Ya&79&16@juBAKW8X9y4L73`82-eX!$cMbKF zqNj2$aK7>PaQAG(0s4ziTy?agmnYH5kFE+0rXFk@tg9&9KC1|xgKiFAdA$}|Sj$?A zu^X6E_uOSCI1}x*4(tbwfyO-ho=#UzIoNXXHCiuY|H~6S&|3(&wLgn-FtFYS{5@xG zPB*NI4i55O&y74Mv2)7zTZstvmgcr#;Qp~W-MrrmK3+JJ!#eHQ^rtogHIBc->Xyys z>?bqnE6z_Jo@XBWwJc^m6=g2Tj%1yqx4@2VGv$dNxfhtV$3s3U*T*Wm5FJ6j+b6Xz zgtgG&eIaXD8?oSHqxOY>ON%nynSCL3^eGOn2xR=Drf*p`x`ESUSD3XpV9|d5M))0T zRRgrMEUNyqE*orH)J57V$%=i<0pK$@^Tu8b)3>Ky${*I=cGaJ|_O3yv?%WI34gHQ; z_XXi)zxKPq`yBq_{}sHfWB#e|{`dlQ57R-GJt3P&e(h8Egl`X89dr4%v6m&zoG;`V z-}KsBG$(hN7)pHX1<56U;O-dYsMahZibZ8zq}dsp!+txI(7jB~olMT%d-p*5lDW{^ z>hh;zrL(E8_WvNOnDcA!F|_&ETSGe`(%X4P_OX7||G-B7;M_&*FDAihkd{Gt9)@NCx?vs8X`A(S^4pa_218ua8H+`v6x+--67MuR1T<7;j}xCWJmW%g!sVmD)fq>ha&^}0 zcvhQcje@&2C5JR8hCIHU(c|Ul@Vb|#6ZtOP;}e{VFI_hZEQN-i3$^#*$vx;Aad?VZ z*9TVz4-_S$%paX0)e1iL^Iv0lafYtNe@-C}TG0z0qE538n6)Ni@liWgMaZnhm;Gk6 z{J4-E69+#V`O1#@IXu#9$BgdZi2QF@XeF-t4fy^nzHsc?%k})A^IW0l`<&;?^t|4A zp3XDyJz2bBI&m&m;yK!k`<4%CeI`bqWAtBjO(9=={l^C5Jjbw`l{S&It?R7>GT}D% zKhJ60Ozb`BA@PZt8_k&y4b)M-dR)RL?}hlX)1UMG4o0VWgg9OHv)YpUM3 z{FIME`)U7?3cY(wdb01xWqSUy^E_Q;DKkyK^nWHgv|ud(pZD#`$--%g;gvCP>V+ql zvfZQw_!W+OGB}Q9`cq4PY~JboLKokUBX>oM=M3GAeHNj?tA~FJpZBoLwg_7bB6Xls%P+}Ja_U8 zt~R|J?R|)R*|b+jnv07p+C#>VroH!(cP!d-`ZMA`n-6c6pC}V6v`Mm3a)elpzQn|gk4Nv;^6n^o6Asm;H@^B~*nSqD>~$yvPD{u6j* zZ#Eo)-I}!6jQNN^<-&KDe)m_z_&jsb5#4zqd8c!ZOVMeLK}!|TiOZXN=sWomZR9^U zYwSA%hcbNn4)mL9z6%1@>nnjd#JOO^CZ^9}CrxcE-u}kSK;n%*Snb3H_RdrP{H3g! zKfg_D>B}q7N3jpf{G|i^+|_y1SBejP>cDB%X_&Li9Dk&I^6D;sQVS#8UUW<{zB8%D&hd5Mcwo3Xpgv| zBega%_4Ts(#0z!0^*MD-r4OU)a^YU?ci_I&e_^=Kud8qrTy9-|3Jy*I#~TJ;1q1E$ z$-!me0B6FzBi`Asxr}*I=;A)~C**$*5A5F`!7=w=WX6_z zyqE1`?)Z@pPM?a1e=IV%{**VhvzuF1<3l0r@B+{Ppl^&9wafmX@{Urm( zng91QAE3j;Lo=rK!vVo-%tpWmM-~ydNZvfc4rE zl^2b(C-KMt_lMHPk#pENdB=yo{{v*v1JL(O!#^B;yM1IMb3%Hi(qAFYM(+Zdca5~IzQFT3=qCVoE?8xR-zTlw<`Q9mh&MPM!ykA%zeZ zCe9DOo-19)>t zf`_Q%C1SRm`+A)-ODcd#aOMD~%CyQCD&DlyS?@j$>?ep@aQ1#p3zs90luzpzvca$? ziL=80Nc$ms`Q9Wju!i5X0@%xItRtV$d|2u1(^w227`;!UFua`pi2lC&{JYC}(c`;~ z=U1plbL-7Tiq*^szkh;7tdX@^I66oCiDItKFqUWi6T+_o<4(px`-*c|+bpw+nu>C) zDMhW1m)_5KMd4i~jC1Vu#qvVNjBYfyiC2xKk{-^xA$*;RynJ>Mj z9DVTS)0|PhuaQrC6P6Q;q`C3(bMHPk9R56d-O;`0huEMa+K+Eyn5l1&d7%5P&oDpU z;0z?)ZGDRQFc1BkJ$=Np7I0r{A$NNhC10dJDL-dTBI}`ZeEQRpeY>rM*>`dxv;PWy z?w!}PM=a7a?-~c<%ERa6duE+qbE=PXSG;n_neUEYq7PX!72LS8W}mTvVw;2D9zLbB z6wKK*mGH07eusZ)T*b4zb-H|Hb;DcvUznUt+sOFB zb?dFCYVq3|K6z|>LjIoajIWlv0>P6*Pii;j_-i*6k*^c~cnsQ8-2wcAAx64!n^wKU^DS?L>IgHSw7CpKj*xGiCyh}JmPTq6HYL0<6T+Pq!4 ziYqNj&VAS}_!T@g@Q2SGwHxmrWG!=RH!w6(-mUcfdNLb6(u_ji18{_7Xdm z3%vUt%^7T~|Eu}?e3v}%{TY|c|Nf197hWr~BX$lIO=ei~V~ z39+tXv1aop9XB}7v`s9Y;_wb=-I=+7O|fYX@D#pv%h6)s zX?t+ZUEJ{(iVXy$Zo6fXW-Etzr8%e(~R%k z&>_6sp^K4u=+dFvS7LK+I0iiJnX)>M&aH2%;PH*%L2DAb7~d>BAN7vQEXJh~Jb#k0U0bOE8Eg%os5qfg@aGwvcXyZtru;Ycj)fIwccs$KLKn7;PG!g@IvqTG5qZt;`Arue9Zp7#1V8yr06ONM*#{MJJkwxjkQmEP@>Uym4RE37+ci6h(e zQSclD=K*kS?rRt9@-=q4?Gbf?qc}_=RP9oSGm&Nx$}1MRp6C7 zO76PMGI!%Hp{`HY%rJ0$=&A|rQP$b!k)N_%$n|Qirx|(4zQQJ8WA9siV9_-#K|8M{ zobIlE3|e51+LV3pb=l~(Gr6+_|J!%QvnPnXrqPE!IjBB_(~;_)gD2-tChzn1q$NA{ z&mCwggh%`HTJq9XV)0BLcG{${{C3FW+vJC6$0nDIc>$Z{8s?4m1KmnK$G0~rkNs^^ zmfOWm@q?A}BQ7IvuhU*`3-8QcW6rQ?S%BR6Aa&JJcKPm{_FC1+o#L`#=3%QI=iF7D zExBl>ov2x4Cn5!`RdHqoeCMh1B4V(R)zGu{Bvn6uFg3pinZ09wXrSd{e5KU0{NKm1 z_k{I3z8}F38m@08^=)wKYs%Eunoo@8fw?VLQ{M-{&!--`dob5Ov1Q2{tYzAl<*UAx z^tBe;E~Gz=j7QBPU!r!AuR2=B`k)=it^0tly7mpLx|ljN&Q0XOACO+fzU%O>Pd@Oh zJvg_P_%`k>O}v2bdd4K3|1&MA`eeJRe>>5+=-&;@}NBuW8Xe%r$iA z8p^uo;KZ<}M3<|4fhEA)wahNcTXvCXw76*zdsb`xoaa-CeaReeL-y6qw${3Jd+P=E z`Woi4TW>e?r}{z@tSVv|rl?NV)20Y7TA#U#`+z=l)d$)aUlr*hcDF=()py|El0W$( zVC}Id6WJnj5O)ZfNmC zjIBeDpB~iw&>Wa$LzmRGin2-ST25Vgg0^iKRMP94{UV!c<2k70L;w+_Keq8HF5#Jfu9 z`@Qfd={VxI@(4P)VyJDPx8^LR2E%6S+c*PD{yEPZQ5`z?EZ*ZAC-QYD~=N&3$@1)}UUECgc zux#lugImWp-{8S**|_2+;aB`hZ3zao{lCHMsU!dQ^!i)s_%P%2pa-w-M635fr=ro6 z-}n~c2gL)#Vs#0xGuT@wdUf&oG<`aYzM_7e^iR*=wb-o7G_pt4#p?>_bvk$*!D;Tm zGtjDV>IbL8yffKc|KiN)iR08~>~Z94F1`liTfxVq`SYA`Odh+Yszqb5%U8I>jK?DJ zH)k9o%EQ^#h47ypzM`fLwAJV}%Zb#pgAGCwBxHIQR<45r)iQ&G%hCV{{OM6e&aaOTnT;wZOoXcEz zTA{~QV6C-jJ+?v|ooOmIg6xHA^rq?POhI&|&_fRlHqHzh{d6(5f^49l;!8ls$=5sO zaoSN6L)- ztMs;iia8UJ`1)Gt>W=@JFs~N-pvMZ$6%H5DfAw8{-+wcAE|i1`MA{lbwyVBM>Iom~ zu6{N!I5)a$BxdV(oW*Ejqlmj|$F?2LOPi~Z+xmZOH~tyQL&xkXpO7eLj=Hu6e$y&q zwW^4bS{-|K;e%JB%lu&B+?FBiU(F-QB+hQdt}Y!I#QtB8Jz0EJ|uHpfOiKlOyrHMLe($+}f7_0>_A_(^I)q^pN>S>Z2T-SnZX(7~lU z*ENsY`I`A7J^(-XEAS_s^dL6NUkI1O^b*0gxPERMIzd^Zv)4oAMdusYKkUvy)q&kn z!oHIwvj1h@GiMTiefUq4D)C@H@O$*5DOz6@d>z0iUL{-lg8r+lIHlnjbKr{u-|+uw;|;tG z#Pa`;HtmoTdwv6WT=$5jGsU~)YsijU^7=t!tKTEr6WE{~b55Xz|D#qi2tSbgAM2rM z>60c6-h&Tfl>b9=S-yveU79c5Y`Let@jPpMy*`g&xn%n3`aPWUNfrv{7hA704$CAf z`-eDBjQi=^`K@e@moCM>##+)^em_41;|kCFLL8{SYJ!xDCs!O z+Q9c%zkHB6ww-Sj`i(M|X7CJ73Zvtl|M1LS`K_Y4(6?=^Ug+Px?M3FEY%jCE2;ab= zWo%Hw*^LFFrTase8!dzLG-)@CplEMZ87+N%-no#T+QTj@VQ)e~~F|$QZ@} z-xKm}rs9znwU79$N6s5%F7@8W_X)m#Djp8_o*0D(+UY$^T&QgEKF*r#W6U(BHP9Ni zf$4{SQ^3hwNd70kBYrSvEd!raatmVv%^fZz*0F)O+c;n7aUeoH7If8+Pa0o0?HqHf zfjzWwzHZtXrInJ#*G+p}X_t}4*G+pxX){RU>!!V|v@1#D>!ux7+Fa83x@rHVw3|rd z>!$rmY40PAubXyMX$wi?>!$reX}6HZ*G)U9G-B*@CYPJ`6Vl9F9&?|n{D&UAL3hJ= z^HC39w;u7whVi8Fb<@71v|Q5ox@m1nyOuP*ZrX08-AEc=H|-xuyD(g%_vvd)_vEtf zdt7nFg#+^Ww=$Nk?C1U>_3R^UC${zDyjM(fjPyrIM^`rKYYy0ndl&kL->vh$BmLe3 zIm7QB@V+DcUf;OkcdI?`8g@m}ck{pD8~9}Onv`8uUz5I>{|$H4q!;Sa?m`xlul{0i zp5*MpS(is1s2%5=Em+rVO^Nb+YxBm^MxJ$!V3g+=>uuCG=Tp?ZkoCHSZx3~ zYue&2JzIR7dF}3V8L>IMy74sDDa9*}0iXDl(c9rynV9;`^3w#QOYY3*J?MhR;kDAq zr1zk6ou~JRAMgCV6Zfh6>s5a%>sA}lp#|eu>nrl(x8bi_g)FPZXBR!@+*>)8oK|d{ z+dtQL-#61*J089VJXOb+I_J&FXML4o4Zy9(d;g`GE9k^J zJ9&1-Zis^u*$o@v=P$uGU7Nwj7`t}NY4mf(65sde{m8>Q!wnOcY7H$4JpTn;TF-y$ zk2){Wi48@5>nx$LS=S?7x{B7NhQ|?@yu3!^c$D}yjhkSToYA^_J1~v~-_JAfN%s;= z$eVn#e@^=tv85e7n|sJ<+lAw4b6$2q@<*(*>wUGs=ipqGmHsTA4}LoyV!S!?E-l!< zK^{lXI)82qqt*Mmh$KIR3MOl6SbR3>vW*VPGO`$$8IUQK6_yp5<)DDWqSB^hmY7y(i)3nKR+v__SX5S6mcRFT?zuC= zq}AvD{eC~+-~adh-g!N9=6%my&pr1%cbn(g^fu;{p*Rz(>aE|VyYYXkWj?uEke2$t zs~PyMrScsex{3UTF|UQswk^r%+dAC$7eG$NHhAV1#`7dzqr>S&lPw^`J9dL ztH(767tXy+^}~6+me>;*qG{!Q(X;hn>|1t>XlEGP2J78Zv6q#5ndhhYpRVnR;8o|b z=6F!kdii#hw*C6c-Vba!uF<@SdUbpq`wMvP-ll4=ZYY<>ifoLnsyiy}TXk(U_$tnc zdg7jOi>8e_x3g;oO`WPyUc`IXGim-C-bTr+g8tH23+wPxd;Q*P#RiPO?hc-~0%J|Q z%N6Cu`btZBzLa94=h6?)yesb07{^vb9m5;}&o4QI^!?C&$~pa}mhksGB2aFzt=w^p99qa7i~3hg@~d%O=GOEKghQCeQySMU551r5 zU#q_?AC;pHvY@hEt309~Ui&{G4m&WL#!qq{(&Yctow70C~_Jt6DBOZ-ajGyiF~u`*{L6Z=1q_J5TqKE@JQM8O+;j$o4=+vuN-5*olzKw6;Qi#@?ayo`5m5#uAKvW7LG;oUJk% zHf~l6#HahF0l&TQ`)&{A>pI-?={}$UYn$`|j2rO3A=S@CR}mlgzK(<>nCr)*x)_fL-~F+cpcZ3?(e9xI^Vt4xIqhf^jfWyXnhsD zUKIBLJnNxXm8KEvE|(RPvT4CvVqBpekM}Tx?_K40fA}CnW&~`vANHb@Xl2t|7+-kf z8D8OdzQrwuLHH{;$pQMQY1xYKd0?DHZg)5Asba%EZGp0h_Fz!16SCjCKAVMPw)yJS z8l3gQbBffl$|$M>oomMYb5pd3_D$kpp7wYYj}=L$wf!(ZzuST{wF;)a&U(}NWtopw zF=Up6->=T$qtRY!y-IUMy-?;`G_BNgUB*D1;UanXYgZUhe#&2_LH$(xS6=9gAN9Rp z@w_h!{;vzY7_Gr`RJ)_>bnjQ^BUl@t`0^fV>47y!I%Nv(rFE3o9eRHrz zbHAat^6tiCI0uA0DK5n`Dux%m5msBhtT7y6>Afn0HHsQG``FbkYJa10$+KoIwv(Ri z@CfFXw5Cqy&gd*Qjjv+xoL4%N^(EwJ$FpsZw$7S01bI%OdTUxPv%oK2b6+={sa{qG z8HjhDIN!@S|0Le?1v$%dx<2nm%Icj@g#NgF%2IrR$l=z@2k+=KtZ|FNywjyhFiotm&8&Y~fm%g?|b4g!zpVEBF6O!1|D zN3x5?n1uY*uw9|oI1@nkJn2{BrTA)li?BBI1L@z=#h=<-`p0`Z!)GJ>v)EUVJUkyp zE$1MVVMH@L!vnkyXq#Yen`bchxaE&+xkPn;e3I+hAE@54{dCP9>Dn7tA6!l3fM8DJuFl~FrFHG0kAQj%glK zJJTwrA2a=#sZX59N5^zH(@9JhFtspU&GbH|Hl}--zRL6+re~Ob%k&SXK4y_`H>Lxa z4re-%={%+hOmmoSWxAK?$4ncTDlG5zO#3j^GYw%no#{fR2~4w?Ze+Th>GMphnVx2< zHWt3>a3d2nlRj?r6~Xt}dF^nfUBcf6V@c^4?AHz_Q*FS32ahVuij=(G`10wCFO&fz zVw_G?Y{T$n2*+0*efeNDN2!a!mlBK1KwnYxRYhM7s$U$z<@hqJz?Y4_>gX#k1z!z! z;4A6@e3>@kOWA@;PhU3rs-rK%Q~1iGFH{lGjxSUS?iF09mZDfc!`F43ew9Y8ca5Y& zMg60G6;#Xdtc+VQ&T!-BGH%KIe8yP2Qk~rmS2D(VXw_A_#Xrdy^BmRHx$zs^u=1NI zuPmRIvCQ9>G1kFU=f_xm#$V`$ zquj8Cv22etH+}|VS)SEy{46)T)-8Ol8{X)K^B8+_{WiPt^WE@PH*8}p4t0F@L9%EUUhExf?N1{H~ftoZeT3+ zRkNn`v5s*DW317uE}t>x{i>^Si(khW>tw2HU@YZ-i81D!!u=u2Bg6YJmgO7C zSlS;0V<~SFWBhMZby19EeXuc& zKlk+A?VG!Oa_`^n_8_18kF<~O`j4|v>V2>i=f8MyOmwO_PKr-iyf`+_9Gd`YjZTe? z#?%qvGKXY)wlUJrd%Y%m zjw@>AlCK6PCPc@Y6U|9!y2NO!tf$$c z`CLnv43ohC(_H<@w9(9O3>^;i%q!lH=c`-=x2%SyIf=aW36nk@ig2r;iTF zJ8^9C;^;e~M607Oqa-N2wiA$qLnPPZbr;9+%a?!uwyRyMnxwjCuJrkr>E-B ze&$pwx-=)PmKWw$y`QPT```96Yr444Vv?+u4^w27&P`gLlzc~$&YTfz zwx-1=Cvk}yuM<87&FUH!1gg%1zhJ6K2b?kVwGeiMKR+uOo>wx@KKb|t{tBE z)<}(l=Pjt^bq$YIk|z3!Ws)WsOCKu6>W50P@X~~0%|yjmHc=@SNK}e75|zrbV&z4} zSZxvEm|_`4#aKyEDb`z5D)Yf2jEZGCl1jeB1{@Y~trr$~nxtc3452sir#PK)Q5(@k zdO(zP82@)r+qMlT%|}Q#THqp`A)O*hene@#gLu>zB#+XixJ0S{Q@S{7sQS_Pp2p;K zk$-Po6c!uMDh_5G%9vKPD9$YQpUreWD5ZZZF3Ov9h|)>KrNd>#)dN=wE-GslE-Gs_ z(;QIpzXunkvlbV{M?X^r;d+{J0VtKT5EtdM6BmWshl|Sf4ld%qkBj)XLVz@8^@UJK zKFgG7j9aH*t6#WPcp|R95~@sRyc~VOUzw`bkGuqbjzaZwb-EV9jzuxGF>PRK(h9zf zX&qBtOOD6X#knGDbt<@u&&)Z-36f4 zgB;S(##=3b=nAe+l9xxWpTdxWi@Upnn%X0dkH-s05_5N-aw~e5j0~ z9F$(*e@c4EN(^L>td^E)?3#n#k;C7W*9y(05}T1$Dx_vnEoL<2Nb+^cPRii#(xWs| z)K*#AB)%-s-^b5{v|?55bxKUe{(JeSDw!xbX~h!MOV+?C^}owsXjBSnA>)$f{PX-X zR4ED_q!dKX&J?blKjr7t;Uu7Rq+^C8rH;p;Hg{a3OxI42;>IEkYKb&R#2=}VTu4t6 zA(?bl#?(hhH=DM!v#z8>W+el$-1}S862>7N()eU$DReR!F|IAUf0~|X15sltGfA^) zFLJgCY3fRZpk6(~rKc`erI&>7geLw}ayb^D@?2YfYBeP%#K&e%Hp@ZK9CJ!y zd=l0Xl9Q&H(=5qx6jnM@TVbE)FpXrokZBatIHne+2~5+NW--lWn$NV5X$8{*Oskk4 zVOq`fEv7Y0Pcp4#dX{M&(+f=NnKm$OWa{N3>erg7Our-J9!&c&)iX6PH8PE48pqVa z)XFrAX+Bd83)s%Mf@vkwDyG#;YnawDtz+82RB0#b;ltFAse!49sfDSPX$I3QrnyY> znC3IJF|{+TU|PwvifJ{|TBZ$5mG+{1GJPM$I;MK22BwirEljhRZf3fbshw#R(|V=~ zUK&C&o}HegOv9{ePP$o{kF~=&mULxOO1v^VI*oX7(U}VIRZ2~QaH#|kHc9*v4TX3q zDgzMl9pRBqdJ3Z{(MifAbBr=AItBeK1vFEcg8ZkXCn&+`OO@GXt1<%%n$we4Dih7I zYQl(vwYyA;m!kfFFXG2qK#@i~jW>~onF1pnlotN!OVd+%LXR}l%!x5(8h?^Q`pJZl zhpRW`=fJ_!u$797+_Y%{ad82eYPy8u;D+j^!RhEnCLDPyM&r1|#BnrZ5^lC?4-sFz zgFtS;RLJ@GCId1Dckp!3N$Nca?Vwt5qGU&DlqS*@@ts(tlj;Z|(jzJDJTKW#U~-<7|?0JB*S3XeWHY^gj2YlM5!%;L6?HgMm#I%4BTg_ zDW*dXD?um1pITO=pRT4#>4<#jE<*W;y2G3ErSXn%B7Yi#3McYcn_u-1<#5Iq<)OQe zPzX^jai5PtSsZ$ymXpSe!cUZ!Mg!7Eqr8+KYjcZ`S~;N&pt-Xi2v%d z7Bf=!Pt)+(n9ItKM)_wS*A#LT=f?x%mVfe*@pb>>l^`oS=bp9qu3MkG;lBGfKJef} zd7B=7Wb>nsJ)Zx>mM6D9_4GDd!S)@6Ma4VqC8cHMyLRuXc;?yXo_}HQzRDN(zjWZ` zR}NMkdiC&;*Is|4`slGY-+KF<<2CP|c<g#VVe*0a+_doo2>8GE6X}tXFZ&&c*ZoG@d)2mtY7TT8Hty;Iap{-B5_8mHQ>fFV* zYq#z_dfwPe*Sk;Oe*Fgw^cysI$WZ@b0s6q@Nli;%c}GU(s@oPWx_xof_4#+MzH80h|K0Wf@6P`}EdSt;(1~G_CL6=2 zOpTZ}eTHe~tl4ws&YK^3>jEMF>+}DwkiUj4fN7u@&(ZvbTqI*p0hK7mSQb;Ag|S>a z&R{IhJ!CPaHAQl{jA?C=TpnXuyCav+nAY~l*%;GW9638u`)=s|0Kp*#*-QQFb-$z z%XkW79pkBt{TR#jW%nxF0Vr*bMkFk-lT#q&}UcmfF#&RSa#rSUKTNrED09YA& zFwSD^$vBU(7h_9vA&+K^ZOm`ZxPoyD##M~9jB6OcMM{IeC~I_9@#+`zbv3_n=p ze*6$?@j%8_#)BAVF&@k~kMR)3HpW94S1|TxT+KLuaV_KFjO!VXWZcMj6l3jBQUB45 zeHo8o?8i8WaS&ttiB@$+#^V@AGQNqih4IadGZ^2(IG3@3aX#Z<#&*V`j4K&WWL(2I zjBy>~NsJp9PiCz6i~5E$_F+7Qv5xUn#(KsPj17#ZGd3}v!8nSsiLsUOEXG-k=P}M> zJfE?R@dCybjLnRz7%yjB!#II)9ph}q4U9E%05VL}AMalg?Z^GO1!EuPw`8ni?9Euu zxHV$~V;{yQ#vK?(G49CN%D6M*EXLg!=P~Zd*v@z;<4VRiF|J{JGvhkOp^O_CFK4U` z5cSvafXbJ#7h^xhEf@zeZpqll*qd=A z7L02cw`5$$*qd%D6S- zEXLg!=P|yCv7NDo2aJ`BTQaU@?9I5Aacjo)jJq*zWPB52pFnPJ9#HBSw`8nm?9JG~ zxEo^=;7;AK*|70+3$vBs>H{*O6pRrxW?ewUBQ%AofX8gFcslw z#hY9_YCP=|)2mZJ>-`TY{ZJVaHLnnpY6c3 zJ0Fhy5aCF#{IMG$<0nD$3CnpH>6t%P@+F`2jp{4&C%y9rlHp1J2+RCQ52-vdJn19J zPu4$GSpgjENIw8U?T%iSEgQ+jh8>5<-2`DA*ezf?aq6DSSkH`k@TNM0f8 z`7DwE={4mi>4b=@UWoHl(;RZ7eoE)Xq@GiMB`o^|^;^O+f9k)~F79%m{_Lth zF>1Y?<)VJ>T2AWku9*6LQ!M(2tQXkbi&g7685$)V z*%8-v6!yfKqOdEZakr`wgngkDg@&y_eMmAP+%n>{jk8@7)pnZhkh8Ey;mS+fnGD7?u~*O8H59EApG-sHX@&$Dv0ee6XWkMfeDp@=*E<9Or*Uc-h-zf1B#U zr|>3+9g+2s;|P&{uuJ_(I&&TULhwV};+x#~GadRN(wA0KjJrwOhB!yi#t8(1v$BHEbYBqrynZRK&c28^As`K#u*6SM`5;7#r#_Ks9}7DaUJ7l z7&kDsF;+rE`VTSoVSJpij`1nRdd4Rh8yJ@`HZgvYaTMbtjIE5%GR|Tw_X+YCzr}nT zy zIKJE`3}U|QHyO9Y@qWfe#;-AsWc)m13**y_GZ@z}&Sfme$@z?{m~UtN9%CEVuO;J3=D*9h zn(;@BYZ<@KxSsJb#*K_$V5|)j@;JoUm+?u)evAtl2Ql8o*vR-3#*vI4VQgVs$2f!W zON?_Fzr#46@j1qJ#vd}SWc)GXYQ`Thu4Vi>V=MQ^zKrXcZ)Pm_HRZl&Bl8oOpUd$F zFxE~I^0LVI+&-^lzKjPp4?KgQb0qJ5SzHZi{!V_)V+GnVHPZeZ-kd|rlgoKtAa z{2=B(%Gk(wCga+HB7Yyok<6F#ZMiS*&wLB>#oZdu2IBGtGCza)8I0vV^f<=3%+Fz5 zH&Eo?j(98F`AZpRFuxz;TIP$@GexOq z{2=oyIQ$UCjm%GEtTl@I+{4(w^_jpJ50cE%;P*PldgkB6*pK;Z8P{@tdd5M_e~Ph@ zu~@akJ~QKV=35xgWh~F7v}c^b{KpvQGM>XYpYh|233%A$NWgfKFsgJ zIEeXTH9=A2xry=2H!}ZT#*vJ7GPW>Y$vA`YR>nHcuPftR=HDjcGrtexeCEe7wljW( zaV6u!jH?+}Fs@}>$+({Jn~WP7zrom#^Y6x3J4MKMA!E6&f1a@~^Iv7GXZ$i_BjaMm zQH-CE;W@wVj5Cf$9MT{Fb{0PSR%wNS=o>MU}wln`e#=e6@eS#QQGCzy4j`?F5 zS2I7GaS-RYl3NX9|Tf10t0@tutGIQ&4y7Ust@&S0F(IG3>}<9x=SGPX0$V_eC&fN?eB zXBpQrE@fQLcoO4A##Y8+U3L}L5`+`;+-OCPp9GG<>aHt4j(0ocJlo8>QxfAPXHCK{ z5H>fL)MVmFn?);|l=|7;Z;l+Pz$VcSoY;S>=I@(WQ zi$iY&PQ-sxUDHc)w4dP1T}PR|)kU6EAMxKHXZ}`)-ir9ND(;$ox*LC`OM0}|TtWfl9-ByX9XSYLJOkHpdr2~6KIKU#lHaOk7p zC#wHtq7Y&q#92PEPvh*DV&BsFza_E%L>R3oaGVwIL`hfu(Lh_ z)3=OI`=9c(h1^%BCksfv*gudd(0V@IlVl2Vf5eqf`z5Y?lBg_^+)r>~+DE5<)yw>3 z|DmT{&{+n-5&Ii|z8?zzRLK2W;f25J{Zs7c$=s>Fq_48HglWH*{#7r_LuH^4;?6Dh zX`S*GPo!|gwC^uZsn9tNs=ZTx#5n-^7EbIN%hNC7{E9zxMA{E=PQdE8e+%sq->&j; z^>?kW*wi?X zjEJCgCZ@!%G^b3$|Naxi^8m;b?)?QVR1tgNH_iFJnW0g>38oyKyw>>L5tqrNQA{CC zd2Qf-5|QJ;ivur6u;Kfk?5v`G?x|{jX!@L@495Lsz;t+UZWnPw$1R+jYEDUAI3+qYIY}2hOgAw($(*#roDjDV4=$s} z=A|yYBR(lDJ!#=AJnj@v>RT9{k~n(g!Zp_|hmmsw{wD^(4~vhBPK)lRE*YS| zsn6pYrq{uaDMPZv6NwI-0)Be7t}PI8rRUo z&!omRHi>JBq_~ky!$nfSsHT2udX^@BbJX;#P5snxuq8@0(ipaMNqih`3x*$YVc~38 z3dsY{{(`Y?2Ji5M|LX)+l*YRu%VCr#)5hBf$(ai!i=X8r6<-dkzOn z8QRou1o;`@=hE&Y$&cPsQSODbgf5IGKg9}r(Gq?ldA0AE;H_eagZhM@6RS5?-735= z29+5W!_St;(}?662jFNDI$^L%M!Q!&^;5XK_trT#w%kE_{h4 zzXkH3bSRJMiq+@bz13gksi^u2v7HI3O`b@QvJ@$uoVL^KN*NJ zAuQ2W2-||gcE|57s+=yIABf+5)ZcwBv{wv1ZPecOJL{_UO8!Xn>&? zTz>u?U&x2r_rm$1C=aTr{P#k*=X{8X9HdZpJi+&gjkeI;lOMrQTE z6M@MYrsFqVj3IBWH~gs$*CO3jlxR3 zdWWvU_x$-KN|f)p>~}pyP0ydVC{d7Y^{Z5Gvr|un#eiQm`ui)8@ws=oM{Kxqf%=0T zIvS?vea=;T+(QYIUoHG1)bwi9^omqIdeOZiPBr+j(LSn;W?9Sjtlx+?@jQTj@D(zH zBU^zXpsJT~RAxifKw0K{Dczc;`I=NY;a-HoNLfa%gYK?(%KL7}YY+ zlW`Yf<2enN@7HQ^Fkbm{n7nO@QjW{OVYVtJ-2jokw7Dc2wLBh3=28Lr-FDa{4nJ}S z?%}v3ZjCx?xz3%h(eCxg%gg4h&xmV;S&j5s7s6g~9up|c{Y~X!0$(Xolp`FbFNLA| zxQp!GDo5RSp*=WEPqdpa)h%1}2`Q)6&%hSp>hTTIglhpCN^^8q8!GjKY$$9!UNK1N zT)BXAlDJ7~zX&Y~S5BJTJ&=oF+75!t1Lh@?bKWHqewi(+` z+4ePOVW)9baeTC$YHwv*4!DL4zc~l_ed?59SGqT3JI6dV7cd_rT|k;d>3*a333Mbe zR?bp17%am+V2X%wv*sHbI>Y`Od^~YG_|zlhLI^zC@i@qXXteZLUPewUbvkkFrS@ymqyjk`m>iiPGv*Wl6G068?R+P1jYD_I!0 zxjVUr;To>t8sTI-8SV$Z$_Ua)elwKYDg1BIOar@ueY)NHmnEdsCT2}?<#x7@7vzyn{WCC8;Fn2pg%ad_e^_DsmnCCsaY z>B;!PadCLR4(8`m!)8qnix@F{7^$VQ*lT9GIVIC%PQi;b@cxQeb7*pU5?<<}45pZ& z=_x6A`3gT;KRiwu=Hfd?ePabYm8;}CJ2MrJt(+5|Xbw)L=ikyVQ*UQS#HXei z@sbPWb2WTgG+y&!4NqELrOJ(00h2sT#ztqMa=ewm#TT6r zxr9)$l%_{q)xqs4-?X!}{@= z+t28f#b=hC!J@sJ%YLu+6-ym_64zmKn=d9AM<&OJSMY)u#O^n6Yu)IER;*63Wof8tLMr2DV5;Xloq(xvSD>$DA^b)b!)`YtFJ z)-|I*dw?okvFFe0oOCv&3V%R~R_YYpjf%1nn9fVofYKRxCZntWr>HW zzlfI$O8$1xMWA#*U@OwGgT{eo3{;e{O0=c|Gz=7*WjOnKL6gCh*4_&|;=O7xSDQfm zp(1}1D5YyedsRZo`S_66n>F4=l?+%oVY$a$FXr>aQ2@1fz1llbUw3Ft7#;Pa( zXiYsRm4i;e%tbo6pm@KXML>WM-Yzn$OUbtv3TZ<#L57|HH@Nt zWSnmsjd2pfHGpOSo5qOpS(s*l_6Oh2l=h78QsO)^f=DjsG*zJC%BPxK9DFF82ff4| z{#j7dctv?v`O;H20qfh)J4*=k0JLTz(nEb3!_Zy`N9*jG~tGiW2| zLgeo^7v;e_I<25Jz`66#-k{d`C=ZnnG)$>dd?T?R1WXSmnd$L{hY3T@OeI)T4O*Z% z;$c~&C=Vzhnnq9~(lack{6aJ~rb-m_8U7WZ8K6*VoM#C4G{vACgk!0^Rf++$H)s?n zo@S=00__is_iCbDLNtarDu1xX4(bp8T2SKC0c?t=1DytnB_P#5A9O3yuK}$BZ2+wX ztz3fhxP(DhAl;~?*vnO3)zpEWg}>E;Gisowc%1#Z6>Oiy6PI$j5(h2j>V-0E=R$a3|6OkVMVZn@iEuaSwzbc*n`w^`1TSOqb0_q`YG394TQxq?=$SCnUzU=M4qqTEYz04;~V&;5`;sBI(q87SVX3cU%@)PfE| z`LG10%z=M?o}xUe9QMF_Sk?Bcdl+)i9MR}DD@qCEPz`zk;i?}K^*20DDg-%!J_>$D zzM}lDgnMQ@LH+Tt2Jel9oDOU7URd-?=nrT!&E)2dPoh6T@9_RtibDW`U=QtY5t zkdJAXC`T^n+ej~RH^OVeJSz53KM6)hBfUJLsR7k3MEgEN`UJUy8i5;MKzo2T?1dhK zR_r7F2=TB~V(bkZv>)~h)buiT1e7;Cl~+W2`GJz2W`R<^`3KSd6b?;!N}1&0cZlQ; zf6$ZguY8sI1Il$+QJz3N;}Pr|QhDe z0Ob!lPyRPhJY}g0U%6!@I+}Zoha>p=cB&= zJr4Ck#<;SY=C4ubpZaU~xAcPEBXE>Wquh0kVvoNiBQZgTzka0Rb&nGU1`g8?)R}3A z2^$C#2F{%`$vr` z)L4r-F*?;hF+MgWIW>7nntyC^;<)J4#9=D~2kNjR6Tifqnl{fhHzcLgjZaI#8|-NN zhEwbFH>r*2qsBwbRC8=Pb|^9#!zabO0x#`LGsl_mpBC&wEH$S(n6B)w3`C{3Tt?6d zd7XMre!{@$)bOO0$;-_t19j=~!LjsK@CgH#L?@)02kHVG>5LD!elFt!nv`jLfTMDV zK0ZLo4WMZwUK=&Q?t!D-?zdgP-MHPfJ#xEohiOOTj;I~h9a%f_cGz}Q?5NsNv!iZD z!w#j;r%+d@FEkXI3Zn|Gg;|Apg|@#`;+o>R;)Y^nr_WB^PW?{9 zPSeh)oz|UMJM(thc2?}H+F7%+ZfCQkyK)t4GdO{F9b^h@Y$WkFRz zbwPbWLqTIfjatt})KrVQ`l7aeg+ZvV5jBoPoh_(!Zef0*9ks4Ry{ikeigQtmeAL5^ znpC1L)u>G^>Qj#zHKI;h)GDt$zuZ=CFRv)CEUzlBF0U!CEw3xDFK;MsELV1Eclqq{ z-KE>*w@be(XqRD^ahGXVvbw(Pd<&e)x`J9l^9?)=@h-S*uT zyDN8B?XKQkv%7Y8-R}C`4Z9n6D|@tieD?V6(e3fuqu&#>$FRqUd!6C~TLj`;;#U$> zVl0U)v6N(#Ps3+w57hKex*UB#?r`AOKC=FZfSn0y|l8ly0o^m zzO=DaTjpElR~A%eEQ>6&lx39VmgSe(%PPyN%WBK&%NonH<-X;9LY(#x6sB13jX-6HaQNMcB zO^bT@p-#p<}?;)xBH?81)&E; zZntdD*q*yRf4hBq<@W0BwOB`P+^*f>yTfls&<-PdmSsoAj@%vjJM23ucU14F-BG`z zafcSV<_AqPLdz_L8LVTK(68FU`ohLSZIN%0Ur|tzu_&_0Qj}4YTa;g9FRCo6E~+i6 zFKR5(7W)?a6$cd?izACI#Tn4aeCT5(bg>qC*jTLH>ATZ!XV6aLPE=Np`yuq+`u}wQ zjw-d5W|iiZ+Da=*t4eE1>q;9+l`@|)U75bjP-ZHNDzlblmF1P$$|}mL%4*8$${Na) za-VWtxxU;`ZYqx|x0Yv>=b_hDpvTsrw>F@s`komTYBJoL&6^vD{uH!A3f zI`l#VdSDcKUlw|v4ZW@kJ+2PDO+io7p_du1=wN!Dg~W*{rrKTb|8ktFTqsYHW432AfjgQ=lu*7Z?gm1yKdof~}rtR2+JA? z+iHPz&47Ki!*Vua4E?|E|4j*K`=eeS9*RDvUt{x@gV!0?{nAF$!o!x+?@M@n=AqF9 zw$-<3-ZE;PQDgS>^3XIxP_NwP-b0#eyfisuJTzXm9Ip)crQw?3;@=k7-xD*`9IpWd zIbMCde2QOKck20qeoJ;Y+ur5OgHflwa=cmx=6Gol(90Ro(<3m)^O9GNCq^b1n|}~z z9rD@mmzteC{*Y<#=I)ng{=Va#zQ1H$_TO;(sf&}d6^uW%pBVFl8cX#bwHe%Y%_xH* zy8m4fIRS?*UR^vZd&T`L8fi^(QSg}8_rIP0)DsWwh#J)6={KHhyWw)|qSQX;`ug7U z%VViGEB)|4NbAK1LuS2L_@u@*{q0wJKk#&9-6q4^J@%Qd-sMv{A8#HRsVIY!YwsE8 z6Mm_E$H`w$-Q_pshv$yeFPUE2F)BXi&}Q9j@6dzeJAM1p=7V>9{lwI*`vQtr-{w7H zMA?wnCk$D?HX?Vx$%h|3NDs|5FW4}!@|%y|OKR5T;cp+A`ds(%3r-EYDJ`$x{;ZLk zA_uls;uPhEAHB9--E$=4fdd;`G>@5KRK z^lGO$-O11EvqNvSyHnYWx!#;i_0lg!y*P2?rI>(yn?7z+_3c-uz8dlPk(bh@ zA5aQ0PyKxD2fqgUMX!I(@=Krew8HOx?%3n;`5T6Q^nvYy_e@me;ZhLi@SNhIQRe@$b#R}{f$gRq&fW0Ll}(+#zUSiD z;;)bQ&Ng;xXt?R?K&8D#DSG;ivNP}GO+It z3!_(@NY&inakSf&LkGY8IQi^jqvFTDQ1k3?C z%svHk$+O>?Js$GyKkDH{N6H(2&9l9I@1o0RF82Lw#rMVU-r$j~SC(j$xsg3z|KdvU zyDvWd!;;dK-d8R@_Ic~8eFC06U(%}cBTrwspY9>SSD!wA|KQcbX8!j4d)rEie-Ll9(uyQs?DvRUeZM6?MO2$ z|6Eyhjme>#N!16sSsE{0-s7)pXD-{+U3uUs)59l2$9YeD`n9*edTaTx7w;X|i3@w1V|Y32dcr+1zuk zSMv@Yb7u#3(sv->-J$iw_@(io=9DyDcv5U&SA7@qZq>o(jyvuc76(==Si>;g3=Gr< z5X-ZJpCiU>WAJcYaB6CLiaAafK2b-^{QLYrOgNe zqZ#UrP0Q3p-$|6|2ARW9D%7w*o&H9Vbr;ESW~CdhM;H@(H4dsi(NkR{c-I=UiMB;pSJn=)}|K*`25kcI(gIb){lMBZK3hI ziJu*OGWzXKn_?DJUR~O1YwYi%mu3GtsPUsA)_Xtp@cl6(@xWb|-$-mZ;gw}8*ME86 z%Z+On-MI4Th1XZE95?&jci&qu`k~i%oD1kaZeR52)NiIIj<|32qA>rd&zL?B9yey* zy0ee;ec%^U|N6MkKYH(>fcY=1*L{7%gF{dCJ#%SV#-#I}_XG}_vaogFeN#5(zV?fL z!R3y7IxS8J4R87TfWEVTejv8KTiI>T^whulWPHx^A6}U^=RmK5^<}TDy3Jb`Ftz2; zM|VE(?60R|@1I_j(&O80t2C*NT~GhfCVcJ7c)Kvp$nVI}R6-)p>u-QGd$!eRu6lWS zdbG&Ww6F)arxDU*|PWAEX~G?u_exPiUdh57G~m zp*%F5yIa!Itm6U#-1R3Q)HGY)i<0Q;<*VS>bkgr3DKpc&`%d0b_V9`RN36HL($V(W!0e)F9XoYxk=gLB*Wq;^-1PDv6Frtp zyBJ^C_UB6L@tFFbW=_e-9KCAbz8}Aswe69e7ek-E^NZ&{3huMvxAog6c}~A_>5qMJ zcf>C4J1hR4oL{@mzL@vc0|i}D+g$q5Jk~n($E~MV-Fc?&oa2i`VRY{=uag zmq+KHd(-dCZR?Bg3()5@L(li>$`;VOp#SO9!@I8uzR>K<=*M5}c_|4zjcgm3)T7-?5>2p`j<-4X?)_k$ocIkoVaxXl7Ft&GI{=p6h=D&CN+#2oa zWgV5EUxwXy)32W$tAT5(w*O?S`?$|7H(Xuw=x;yn z*x%=7-|}`B8lLb>yy@Q6E#LcgQT3KqbI#jau2^1oypK=Y^y4d1rhD)D#4v8*zM1C= zGCRILtzTdLq66QIk6Kn9(BiG%8@`(SL9Xfc-XMZ;fn<_hE$f# zOLn#}t*i7I`f*qg8oh3$Oe!V8%}h$||8qJCe~#;Bmj5cQiHe}}3fE882Q~MmsTXcA ziiekeu-;GB5qFp#RIt?R-C|m~-kO?@fmEZp;?eeB&Rjn){_XERIx#Pzny;}EPFnC|Hkv*5~exh;U_9X{fmPUQDvT)oZ zZ5y9`w{~^cnEKmu`rmkDe~&wd_WtzrZ9_Yb3iYx)`(e6AUCJBzr^m;A*30PQyLdxT z^t6~s{np2B+%#+Go)dlQPjT|cw;g~+HU_qX;RlDPfI znwO6BA2QiPyE=S#hrQ=khlKdO?mO>z@W{PO7VS;D^QUa|yk z4lQPx;}VmT;sS5f_n=_j9Xd^un-#jy

XiN;K^W1kzwZwV^s!ew<~88|9%?8s3gM!=9_pr^u71oa6`3;3_w^C9{{qAY!+R_cuLOD)2v)Bmn? zVe{0YkXipb6Z-mFpQV2O+sT(c^YqzWHa`O|6gk1<(EM%>^4etyxh&>fp2#j6uf*nQpryu=@kgz0ogh z%g*vdrQ-sxefv9nJ<~fsIJnPrbM*S`U{i7C!VMpHoihK_u+JCum_2k&{@dM}cP_M~ z){OM(u&`jodka?2{qXjnLnVL*5kX_xFLs|3>#y9^X`4y z-JwbC&a|9kTK?0C$5wp*w0`QsVUArhn#KfJm&XTSEEr%- z!N2tIgr@+99@3woR4pX!Q^$)g<^w&#GY5uTxAD-e7n8Rx_dhh{=JcLn5y7S&FK2!A zLB+%OHy_;Lmf4-3o;P;ceX)Bp`epufSLKV73%nnD_2)NV-o9j8^K<1VGF#s8`}niv z9<8l=Zt4C_#+s8~Pi+=8;DglYO}#HxSYqoQZ(o*dYk%>BZ70qQ9RJ*fd6(Zknca59 z%OR_aH=KR@)XR@Pq_2Q_po9JGkcFW~TegHyu0j$eSyQ zo+{j&9NGHUB;65h;0yOYwI=)Wi3!JU^Sw90d)+sET6Ql=8#&`{zXOj>DeJj6zhY6# z!aG*3`EKWfi`M?^+waYH6N?WQY<<-yJ?rXI!+-z$c<8vCU*37>T*}}lWA-h+_-MDW z3j;PM8uw`yj|h0_tbgjr4PGJMJ?_uEyyMp{-~C$9&F7Q4XAeF4^}^Q89=~bS&Az$Q zK1?{+Z^HxCFV}9nbL_Z&wo{+H`{R^ukN;epysB44UdeOinz5VSi{2Oa{mt`(Jomh_ z>ck6qKkYs{_K8z_$3K3t_|495+_ijgMBe7lBj)^mD`e`ejuZhj;8&8@gnAU z4~?f|F~G&sql4EBOMG%*Pknc?k8N9bq%B|k%S<;TWhpkBR|!+j#=lvI79)obA2T*^ zL{od*PVMHnVQ52>6JY-1l3i{WA<5|p_y=WRXMIP?!n;G8`SB^{$?4H4ak_|zQ0edK z=Kr@=xVUC;;)s5RE?wpvpOtkc^ro&IpNvn~_s-%E-=3P@|DLt&dw=oC3pxFx;tKA3 zq;1DV-6qtR_$3-Uz4_)#3E_=z>>Kv}u`@rFd0fu@cJ{-|J_tK_AaC%Dg{M0_70_*V z;Hvw&7R4wLaSgBBIyoU|{;xm&abG91$@oOb#XG)DeXx^tPLG(phuXa7<^9F6PkybB zG5>NXV#CDe8g88bTifn4x4aO#vwHI_uWg-jxP7}1w`?2#Yx3qZ7jNxxdg6ogmR~Ww zHKhC1FQ47~WiQK|gK48r+_>+Zccx#exI1%P_wV0WU9C(C*R}e7@6(C1Z(AQzv30_O zUGIGL?2gOJ%WlkgYwE#_jXU;!bl*3%1rNWS-_RKKPnariQ&S>HFT zk1rdScXjz!Ctd7r-j83*>v-3hkGC%9^=`mdF>4LWn*E|5OlGy6S6_W^TQ4~P(|X#V zL#^A+o$Wuv7(T)Z=*Kt)iJl(+(&(~9^JYu4TWdV^Yot6dR8P@c z|KU*GC}Ux$K3-P+uT}+`R3ak){+#euuePdoYa{*|5^D{UiJe*a+4 z2m9`yz3Lmyz^aeecwLAbbjN|Kos9>(#zg)x{=Kj6csze}i~XO+_VJnC&}`Ii#+doX z!pw(m-LmD#tZ5HcN6f!$zkS83AA4@ensjwY?+)R2DZxSCt{ms(JHYnC;$I($IW)Jn zN4pOP)YRPZ;-g(3nD^3MKLxkjxG3(?mzz(W{Ck%#?|i5t`{(LmU0+S9YB>4G%C)zS zyBhgS?%t;=-XG>|?$BS!UoaP5$tP9ytdw&1?xy9phzVG;0#&hr2PG0!$Fx1x{Ow!PHIL5Lt)?}*5 zP>*qe|K{7q-wkbd&i=LSvoCb`KJNJ1tSh^-M!mcD{Wo?DE$=q8{QI@#<3_a~_wc6u z^Di7Z`eT6IIDX&hq_dCr**`NgdQWITn|)6{A0D`SV&u(*1&{4qKcnxO!wKeod2??r zIM#RdYaw4ASrrrZ9o3Z<@Uez7mOn>s|xpVh5wrZV!>DbLR zVWq2XEQ)+&^vG9+3>y*{x#aobKHHvZm{ssy{mt*K{K2r`?61ovbf3CwWyQvY-;UmY z&sTbT#K+&a8XOs%yIa{%=J{^t99^H4U*A3_sC~@26V`qoUhHK(5!W)y|I@usz0>Q5 zmwNx0@L}z9UGKclwC%fZMtd*ZvTw?JTHDyn-#R0?jlMyas!DLMMCnkfmPMw+43?^)z>m2_fVScmM>$BJD4Yr$YQu#vo$$2J}o&V6G0P^T%02|EP`gFq0mw^KRZqM zkLOi+$~fY;!;GmbX1|@_{igpCR$Ijpq_(gjSL0FZBdwcPMU?lXw0zamotao#qG*7{m^o~cSq+Ao!g?dD{A){K6cU+EGcS=_S_xz`cb6nBM!L~wNH^PVHJlWmx+wk zHqDAZvhS7K_l$>^wVYh`60TI#pI7hVBV-@nn0DW6Lxyepdm>*_;T*@5H8=MKNjpm1 zdDg8fq!)iPZ6Wi;HDfYqYwT8ctlmgPa6MeTQ*3JA4PW}m!2|$F@m9Xc=(p&7cXJQ@ zS+?<)%+rb+&b!2(+MSx4r(rgHi+}jh)h{*%9f@50^Ci>|u8I#Xj@bS@{1$Hl+rlf> zr6}FvYwgw>jr022R;33ARSNNZb?aCV9KBFpdzZq4ZnnEi1~Uzo+$ppc*s5{G;R!Qq zs%8B3YLz4lw*9AyMfQJgki0JV-qv-AMug*qc`Pz4X^+E_B~&^uS5xn;L+@okn5h7TEYebk`;Sy3e?6P@>dEmbQokmksM4^Q3)n0 z{*olKYA|s&cnLEUDD>a)+2QverKhUVb`_yt9FtUG?RIi24gqv#@`05}m7B5nrwN~W zRn=7HYi{}noq0X`bJwFbdcw)JfCDT7N7Gzf+IhR;H)lS!R*!nk+8X^Eoyj<5c*p97 zK{`)f)EDFQgCb{kT-a}TY+#3Yfk>kZf3}xJO?;b4NK@@)#e}UpJab+oQbg0-j8{f? zhP;&8dU{3~UF1c_*PFqQ1s|Iy9z5i_Leq1kfy2z#p!$H&*H;mx7gyXqdB*l8Ygc51 zJMZVZh%=1>opK%#e%oWL%47=+ynA_^y%sGR+MEP~olRKY=hZd!Zs7V+hOO(bU`-oe>rqJW`GaFHV$mSH3qxcYjH4ioBVkc?;GZ1Ji+NS6Yiu#h7C!? z$%hHI06Yjl4_liU@5WYu>k3_mA#^9>Hg#edVN_s?kqY1&uxk(h;XEe91#$JDJ92|g z33pijzzw!jvz0-815m;p(MsrsaW{rLDM44iXp^$2sl4Z2|;2=kAARKUDY z(R`4YD$)e}8orwk_f$sSelH(oc&o!m7Y{NfspDacDMM12YivIW&J}|+wHf(YJHZE* z7tYV5Z1K~0iTqu@#>>$J;(Gu^UnmEkDbo0B8R#?8!KnjG4bsPQ|8v~GN`I>C4FJJ0 zsWX!UBY?Ltq~`N;}HTRk1Sw$Gy#2L0{9bK zK%jU628BL>K`90lN+sY>OaNPA3+NJ0z?aYgVG;!xlO#Zy8Fu^o!G8a6*zuph*z^D2iPP!$iPS+nL}nlfK>@6VECXk;5ik~h z8Q~cT85tP`8D$yu866pe85GcaSdn7~v&jR* zU}bU>AO=wiPYM-~lQck1+NOA>&{LvPl2Y06no@dF&^exS)N?B5Xn?7-Wgsdc zO*1M#(4kFWbS4ox;edfm z02Cx{QFx#Q!I>fz^aBh{5 zZWCbLdLVU_OaXk65Fm_X0b`^&!OKQK8aYp3jS>L;mdC)qRRRL8iGiNPvJgta2~Yq2 znFLIfAOr(0mz1X1H>+Ck%v#}Dd&}Kma)utrxDvg`is!1u)C7l})g^|OS5p_XZo4FG^eruG z37v!|p+Yl_SnI9N?zMjZTX%I-Z&FQ~QD&yYnq!$G-Ilobs=09*Ybr%I6XR}tkEqQ|&)M~; zp@fAkdi|YG8&?_mR&(r3p>H(5l2E%}1>g4Brok+!I&M7=+vnGtF!>FwFLAx6^Zk&wtHSOIm$B^zs1?>EBA3aW z*mCSWy=13=tFqOad2S6GU+J!?jqyJzYQUom@6E<1qV2bV@YnC_$vT_zBA&8^9dH2)$o=qytBatpu5KsKv+_#qFQFsd*6 zY@|;>xm)Gb>O!{}G|iAJd!T)Eol<&dcK$QvkS)(dABw!5a}k*nP{Xz5=__n(#2@9{ z0d&?jXUlrS^Rq10Ss7OBKBSs|To^eLP>k;3knYo`R&KX^61i^~IYv0;UM64s42Nq) z7Y4SeJbQ(F2uUhNePD!T3JkgRt8A{@nmVk(B*w%vPM&MJC~bzbhH z?re+a?`E!}iM`2;`l?k=QA9Na^rQLKnH3Sr+B4m6p6lHj>oNFpyF=Mm#Zm2xn~#5q z7>k4>lu%p3(POcrw!Dh5r{}iwzEp434CNSGTS|E>ugJ^d6Z{H&C7_dSMLs(9qA#Bf zXbE;@>aecbuCT{ZPUP&-I{g>r4bt|AOhh5>2~}@yX2=y@s5@X;`%p0Ef!9dq`t^I1 zDvDW(GWgAr01-W`n4=xv>%b#+{p9JqoSmBzJGb3pi@5jFNN=`;edb#kBt=943Cq~) zm9ADwmyBj8HmpB(XG3yWbW!_fj@pdt4nlJ zNCE0PHl7`aoAVcw;ph`YJ$k?Jd-!g*u~hZJjHQ?5)XE|UZ2MPv?>ZDZy0)}U1DO-i z4K<{+Ak~@+9VRs>>;H|9zZ@s^!VUt6z}RmE=!J+7M)S@!~Stcddn$mWs7<@rX7v3 zT#617k;LaU=07+>K3GMzY+zA(u~32g^P(jW4!){V-g?|mTuutb!rYl-%-T(P;k{2ScS?6l2YzDN$rpGBwGhDo z)ZX%~(TlZg+GcOuQ8U{3>TP4H&9QX~Dy1UJpI#%sLSKj|dya^&6z7_>0F&+}`cw9= z2|@8jEH5qhHrPG>q*S7J9T7=r#}$LVQy*WPa9cYsq3qcX+a1Gi4=W1y`7b!-#lB^Z zE;r&Mp{kqNGww%SeLrhu>kEF`)xpn99<@h#kjVMX3VIG3iUg4)36*#St-W?f?fLQJ zv*K>|wB&a5MT;Jm+_SIU>WK3WEvfBjJ_+dt4*UN>>OEO|I6f*xY<;zSdyHAa;srx; zKKoV|kA}WSx+Jt9-HEVD<|dm~wam_)e#?G*d>pnfby3@=H-+r_N58FZMy4cm!oHj> z&@o>$&#+y$NQLL4h*kKHTel07hb#HTaxz}JB6|{Q*IK&tS~m6FIj;U6TvsRuX4naP zb%w97IIsBXSRBWXUC5h+o|J6h?}}4b+|~ER(^hVkZBx{byYz>LE}RPCALh2o)mIeIO+1&(h5ei61S+p}9+vTbey89B-Tt)|x=TWl7MX_@2i=os+tYBTxLM#&$3~`crX%$IOTKbevIzCI)ro8KRd?_~2jU>s4 zE~+g(b0q2w<@L!%|9#|wbsdeucYCSyp;q4Ii6b2&Xg(Q~B#w(@qiZk18zQbj7;FHvCdtjimIPj0`o^kG062j5@up&D!oK`(w$0 zgGJxkvWoZm)K+b#X3cmjzhmj`vl1f6n~WMw6C(sxOE%B;z9rc3s7bKvZTDj0u-xN^ zImz$N_=>uqU^40^+qdG4F464MonK9HG1FK@cBY;b+M)WN<1q{xKAD${q# zg=YBex~1qk&&uh;n(mr%slgM4UFDX{qH{B6Aa$mHHmyN`_kukPQ$B5ysY`5vf)4Vf zUJzU>KKz*}ynJ6{0cz>cCr!lX?$jp3cf z@J?fRr!lRZl!=$#lb^MO1$%sXs9akm1u(WBdhlW!jM&z!0*6Bu3{S$D~8@hwqR zF-y7Yzwilh(7W}lbOPtUrABKNkGyW{h-YPf?tjc@ORw`>%aH@$sGdsKhD}a0yBgZE zRmyLZ`eDt(w)Pyq^Za`(Yi`b@%SV@ybC2=oRore_p`sv$RIG&6(=8HqTMkOCyUMZ8 z)SYS1dc{M7)+2gqyKXNJ3yHfTb1k~E^ZAIOU;fI*BlW(w4bC#t>~4lQ9vrpTll~r1 zYj&KxMdE|c`!ZMVr44iI+WGEu7arK4cx-;^2RHRlH)gq8MuPpGd;Erj4lVB4y{MXg zm|huo*uno~^R7=`k)_t3N>Av;a2|K@UAEFVx9hzr^{KcKb0zPk?7WpJUs*Q)ufp)+ z1N{Dq`+k=EXocd(@QY_t6|2ixN+0B>k9?;Er$rq|(&|sU@?phqbf%ayh;NM0U)>PP zdRVpQV#J+?gHb26lTL)jdun~+RN+~~E1|n-$&sDH>~j4grxtL`>HDJ(F_~WOe;)g> z#d`TtkEqzZ&?{$-@Nc;hwXhZZV7uvG)I6OOrI0GMKl@p7aA8}RGG<)g>Z`|P_A4{^nc4ffHZiwA>^fcifg;Jy_i90K6i`p7k&+XZ;zC`d2J!2E(q~B-+;Y zpW3ebg^A_)Pg}1m{!iGhGXYy~wqWhe6YRaw!QxvK*nCR@t8aN=_pKN#zg2?mwKaI6D_?N63 zLZJdiR~F=q{vTSc{GZ%@{H;|x6CyU7{BOY8M*U0HOOfX|K9>&mER(V^<0J-V-*W<+ zD+GvGXRx@3vAJao9I(lsZ03z4ax=g#X#rR!Ed$%6^W(P2+R1RR5hn zXDvvbfxp$-_;Y6^#@}igssw8-|2_UzxZ@XG7TdiOu2%^bu7T^!6o0_q3P&>Vx5A;x z!NS46!`}+Kss;-?LqNx05i$N&*qj_JjE{#v^0!Zg&3mZ8!|BGX@>Vfpv{w23o6P~Y zKW~_qz2)0sMRPz?Ym}-w>rk(F5MIxcPn9lu&C!z*{0n_85vgs z*0oA&dDXgKQIn`omB#qnb-l`_?pq^1IWxU3qetuTsjp&Dt_!^UiWEX1B}1r^*Q&>Q^+Cb^VLSCh1P^h zNk54lX37bnB<&|h>JvswG5%KcitdJ$T{Ka$qhDOT6EhQQR-Es(8k?u~TJ+}<6}qCh zLv2uPQDnE*Qfl~OwOVS!mQcUtrAOM&4tw0q-5oWyB=HQ!-@4A9Bd6DLwN+rAM(m6m zDsfE`i!Gj$5^vmn^l2_v@$$JCe_P16bI$e*577sjB6iis)=MNVEH3V{=}6AD9C*^d zwgT{z2(gt2G+HF|cp40qV;M@Pp@?5%-q66^xJZsZS9kV%Q618Ca@-Ai{!9E z@t|e1j&_D^%3`j$d|d;U%XexU8QQM5!T8(#xn}z_zqB*$vaGMDR?o!vTcx#DPF)3tbh(wzPv^b*w!p8J zQ1kA6K#Rfhy`OhRhwa4p+hYNAp_ROqgfn8s(bU#4-gw>}SGZ^S7d(+z^ISupofqS8 z<;!ny)hc}q;d=hvJF}z1k*;o2O!BtvdC;gSl+AhH7vpcmIp5Fv_UY>fk6HSq0))o% zO3`Jdp^fWVp1WUtE;vWP9^-G_*7n~Rle*#e;?3;Y^!J+zdw6&^-QXqFg{K~JPg zkMXyw9ABCc_D6~dM|-|{b9`RZ`Ox6Qfs1(J(nC#+hqYPVG5)rPtR?ER*jnVKWl`e~ zSLSbfO@wbMpoeIH0=6m|b%mZh2SnT|eeHyn;`fBrKhjP2ypBOv-xcDY3ej~lQ|JhR( zfyc@z>5E@X#e@?12^{w3;rL=G|_qLximn;eMbLo0fL-pby$eM6=>3V(t1o3v$Bt+u8b_v5);gTYEB~$x?#bBJ0CY zy##V5q6;6>)@G?U@|`THTfEjU?HT*)uB|rjU1~3xHY}F)f17V zg7jUJnr-Vs~gq))q`ZX#+VXDwP(pk;F|Gw!0xs{FYTX<_Qdw>MsC39G+XCl#ZD zMu}+u6$43j^WoRI4Wj9DP9{}ce`!NsN}d;K_`%vSO?r^CSDIXlWKwC&)=?9kQ` z*Har#AubZ~%Sg=)HRZf@+>hT` zGqzd#-NUSA%}Kj_4n?9ys^wQdCnMh1NSTD5-yFGrB~?H#w%e<$``ClT#s??5B5T*M zFkSedv1znJ0}gaRCnT@fSzU1ES-K&+_p{Iy4)gm5Mtu8~S18QLT=XP?%L5scP?W#o zr9mP7(A|6ivn)4Bmd5U(ioCfcyEm)k@WU7bUNht4(%fmMp`rE^1>+XMf!!R-;qTrh}zgmv?uGaoD2j-@s z01`US`>orwdnn>i)fRK2--omJuCITY6cJ|l;aFmPoT}XbI!Z#6VROH?wVMxzWG@VL z5P0Z1pr&5w(YS8lTeNd#sm*;Mlt@Ae^8RB4^599%@Y(>*RWI5c<%@RhxXw{^A>|R-1=+_FOK5ks@ae8oc0ifyVZMtpl%ZC(XlSv z@9Gt~d(F_??5+)ueBAFxp5B~kpWkNRlCv&V6OEG4OwWQ@Mh-_@j+HQ7QW)x$S#&?- zoxsyU@8zP;Yge6r(1Ezf$XL<4eEYmz%ACzCQl)IR=>%gh*}T_+#|?w-x^!}C^dm7c zx=Np2(fRINC8@=}JCfG5UA=2qtmUXvsr}mndo)Dhz)fW`Vy?Bk8?uzFktp-rtA5aj zaC=eUCbyUGUWor_ZP_sQkpa>sqlC5~Rj0wHK?2VL=hG^+4fD%;)IX|yU3hN8{Y`ZB zTc?mQ8RZ9_Q z=OwOzts_kXR?Pyd(FHQvEoCk^T+sCHov-ZqwVU6KhPb( z`ik>cetUMeYLQ`|+pT%^IkM$^g~K~7Y6bkY1H z#%5CrmhtWwX>K}rxwGyTDF?kJqYE=udQ`u2`}}UV>B`eKx5u_~_!|-1&mMO2HSD=N z%C89kX0%yh`Q7y?gO6{%Fq*~2w)dgQ=jH(`XHQGbgrZMBI=zF?DA1|%+G-=E!C%$U zmFnwn)N^9}smL0_Be$^S&w|tg^K}sy6Vh3}qMYaTWxg&ZkiaL%1lV>tzM34 zd(4x|-RUyEY-VQ$<+kNi6Zk0=f$uX7pXHxK+Dxcy?{|A?P1(Erfx5?cENt7`d6Zi| zoBx1t$_vx=D||ikkuejBV5&{Fk1bLQdjFwqfSj{>uha)e>rA@jAatFRfD(S0XzGVfQ|xz51HPMn@qkD4Lih&8n;NVLhelH`_T<2pBJr)nNc8o%1_Yg z#r3V?A0MGZYu}#Pe|5#>JR20iggO*on(ed9xAI|Kpe-GFAS@%Qc+4=o|qqNgkC>Ylft#D$5s%5+xVbhYcjl zMwnDSMJF_dNU~K%iSf@A{&eW;nGkzq%#0k{U#t`nTu|;-YMwDKeDyNU4Ri>AY5Cve%`iRrbbm*NCob1^d%_>q9hA05jsb$jqN0=fG`p{H56~q`Sw{ephbf zt-d>E&iONMEo-VnN10K~%K5A-Xu;aCovQolX*@ZNC(hcd@Rr{?oLzLomi2xQN@PZ| z%jc=wQZ76gb6Bf8$Kr(emSN*^Gi0U7wDtLMCFT2Z=mIm+Z~2IH-FZ~MqSp$GbxTbi z&(?6<%dZnv+28HdxmC9b-C;)g#vDdv_5mkk;;2>g__k+oxx2p}sdR`~dS=g(NYRcU z^pqKSix}KF_+)c`rw6<3*BX)vPk!JH)0LE$2gH;|$>Q{4^p+X!eZhOSjjcbv-*#E*>HLm^+3btC zPK9PXZ~uWtnUQe)RS)w4)`XP~Vcm;8m$!sKm$;-!mftDsrB#57*gC|;f*d)UT(^vT>yNLxFjlOy^~T3m#e4LL3o8M7e0_vy)Px4GYVbX(}Hk%;Z~ zSE2HrZ=03KY_-AOApVvavSvY7_fQO*ZGTWu}>GWIz~$_AAG+m=Pf$Qg3gwewu>qVD}D2f|MB3O;_$10p|X1gS2^c4 z>+K8c(XK{`Ea*UiSf9AEQ*~s>qW8<(&fLBD<<;icwF*78qsjSFBhkVzK2)O!jLJbcY39H<8ml|KM01Gjqa{^L-Zs-~N#^ z#O#>>sFQB5+au*hppl>mUghEteROlzrNQ@-D%M01A5DX z+VWy=JEpz8ZeDfOE)sj~`BYAJCXVAO);)>8H3-Y{C>fO>Uc4&FywncMW4#{WUYkk{E^hh#)OAd1_ zw@pJ_6m+t|vq8tqkXhV)>9BNI)XEL6vvxQ&Z(K0HqQ&xH=)U<#jDl|KevG~p6L8i| zb_M^o6Bn6!yp;0`6z%uw#0Gfqf9*{~$`sVgpDWzUYA+UPKt!JwUt}|<+;ffCD_H7C zO*qGosYYIw!tRthh?~$iy^p$fgr)v~6o+cM` zbLXs%<@w}s*DJ;cxl@qrPEC;wR~#?O+SG4f?cx%bcVx$|yKFy3`bp#;YoyMYq5ulI zap_6Wo7@G1XI5=;t0f*hrS_!qVUqD>5BZLg@1A>w4x*zJRCpz7?^fx$`Lg(rtt1S6kAL&R)s4aYI^^{z^8vz^|^-Rhn))mHD9mqM(`t9+nHy^i5m4 zyV(6c@5p=6T)$u7q5i`=3+=)UiSdBWH)aFZDf_F#ukJuD^TBqxex+zF3jvR6* zZHdx=?7`4u8tv-LPP8Z6v?_&V5?@Y)zVkv%**35KoD@^72)(6%u1b zzPG-!?&(>|t0|xC$IM)V?Pu;ddPmgS;)>_> zGE-G#%!=~47Kp7gyWJ6^)!eio=+J1!$I*kQwQRG(o$mSJi`MqH<=UbVvs%+cNmcjO>mYn72C@VT+T}0U@ zVHPKn@q7vP-P{jGbbjA&x)*X#A}gvqS~VJbE|Tk+?g~Sq5FNXrPlI9?p`CBnqFu_;MJ;9Ovu`y##4Lb3U~ z-l1+*wBTX)ZQW;wDR)>!=*&sfvb>%v0NbVMC6+J_jQ{g+G00(NUO?8fE&tXY&ST zS9FvOy$+_uh^9*=R!UfZ`W&)oP*zvrL7-;!>0m2Xd7H#{d?*p<@Qswt_|}!V_2Apw z(n^$9UbA`AeVe5<0n5G(`nj6eq6=*3#p#mWhYS`9iq7SK|Do$+hG*;5zVLk|dBY2P zYu#)b!qFWzl)<8+d3lrk6UhyGK5m*fuTtCQOw_{A2Nl`2O)+s!cM*EZhKPn|mgO@!0{YNfHZ=RdcO#O=;=$n}(K4x*C2qn$sz_AM z-Sez2-SZ=*751TawtxB=={IK*8S%V*fAPi)>0`4EBUlvP-7WO7N;Uu0!;$>mN< zJEzYinm&^#zv0Jv^IPJ{Vbf<4O`l0bCYoIaE2=a=*8 zGl?YsvMHYwOyEX<31cG$69{PfOrq&CiNy`aBQJ2g2jJ#6iqfP1c6rJ^jflc&!l znm&_g`b?sENDrV}W{Ao#QSAt>517H;3NAMC?Fxp)vFYn=@N5Dhyy2}s-0Of3HX6Q_ zVbmL&MyG<2Y-b4T0RO2FZ#%r%&hW?gcCc>~8(GIbI6gLqjnl#uaauSH2Qd8Y4aT?e ze>(_=4U1D5yx=f61Qn>@*!bBAF6`oXTamKLY`l2HMV>(x_@g7B$8G)AYWGk%9w z)R@c18WnN;dJb7gWd>c~lJ>prq`{(p6{`*Ik6+H zq@>3&maZE7zxGU`lE-obc{*?6IRn@Bbe7PngO+(_+~jIsMDBh3f4dvc$y*Fgl@;N@?%VZxsUoOa9p}-X= zZ1E(LXv4+ozg6(%o65k|Z(bxSNC>63yA>GAUvawsiih`WEBSbCtZwhUsMjY9FVAO= zxpDVZ=pF@~19hiGdtKHhZqE{~-DfBexAXB9PGNM8zwF>4fA*@u9_M8$MqQ+N2{PRK zBn}nsaX9mF#A#7m&(g4>#fOIuGh2HY=cuZmc%#+t?CJkV`13;VmDhQ`^bap`-2LF; zNAuI}y8~kXcb!SJ=pWA{dcE?hw^FHVHq#65V$lOBw^A2Kyx8q@A*qll@>vV}!6U!X z8P$~~U3Z_!osE5(wD{PLv(Dd(mcQdgX@+r)!S5`;5M96VM=W#7`{Lvh?vnXFp5DDm z_ss3}VY!l5gt)eSGMXFHk>8%Ssjk#@@vU>K^J-dIy)JAz@9mr0yVWJ5A-rBCwmQ%A zxxuSBHA-Lh*C{*=86oyRtEkFJB^eG*H6`=o;lsnkbH)CH zCJnWVw3&)OpPze?TU%H7yb_gF;tzu^v8Z=z{dElX=M*&TI`rdM%~F+=t}Soh=zCHM z0vk3}M+%33`9`xi&9&=tt(b+3+P0T1M?N^;GI}Rf7ns9w*2{NTe5a?)v1oZO+hMzd zTQiC!**fsXgf*L@06mN_Toa9r!8rif6Mi(t|NrrS62yXXkDX(P= zSJ6v@;Xe1o?!sj^8E*G#Wrn}$b_Zvi=3jGYvK%4DEEcq33ya<4yB;J-WhZipq9(|& zEtVG8z0QGuJd9g9_>SKb5n@L04}Oy_Y-VBzHza}y-q`AlOBw=DaVY#7Co<_w`XrSQ zQ4WwY0=t9^gSR{+Ob*X*=MVt58QXWg_oE`oOi4wQ+`yChO)P#osS(tn;PK-&_qq(wt_q5 zM+0?I9uI~#iolCX$Oi|wkhiHn8XR|`>^UBgkw?fY;(`!3{FEP!L2o+*L>PJpKgbB? z4Qww?{n0Qz@15Qb;K`63$Plf9Fo6G>`h##ZW$&%79uN@A5`jz+1zfN>HuXnCNO$V< z{~zu>2`Gw(h@yFjv>|cC)2V}yc`?bRZe;JB%n=fbo_y~G;Z!BZ!>K~po|S}55e7n8 zy9Uc)>;S4FrP8Y%=AZlWj)XFs*$J887maD*Yf@HyW;ZgwSrIY^9Eh1iE~L!wJIR?N zdzmsv^a#;AO=y|E8+9^w+v;ZeJL_fc_0-R_lcf#O&@$j>IfT`RIC>CQ7ij2Y_L)7* zz_kBw(46F#gb3w^hKswzMw({d#_baJHxbaQ1y^>QT; zG5Tj5GRn2*Amlm<5ObYGNx2U24#&42h4@GX^3rI8>DnV%4QdkHC*gal2GtYpJ@LH| zzUP2@j{j=ju?&E>BN9Dl2eC{^a32gZO#zuo@SrLOxTsWHkS&!n1!OBh0YA8?2>cLr zT*g0aH0^(gYyO>#v0UFx$QR35qUY2gmM;lpJypKNAYTbYfb?ia*pm{NMsVC=0~#ugYxf9-(SvF9GTj z5$Y5P>J}O57!%Yr=1d7h8)_z@p+3;{uOvd&HxeaLSNBakf8V(R(p(N{>jMvZ zz>6-l2|Ag;8>9W0tSi5B+kh^}b>T89>YW2+dJgIeF3S`}T8vHcvfc>r!?JrvB9$lk z(2NKfUha}eMl6^KsY{R#l&2xm5gbMT+LvLcsJ9|7JH)CTn(?G|k#z_PIB?#y=O0YFXq7ud^!_%DzdC;XGQyh*)rXRtySr9W~ zf{qaC5h9@R-P;)`iVp1(a1a=&j_`@b#5AI1n zc*66>#ungrO(c>$em8G)jK>jVHkDp8NkV>-W)#qj!ZdltY5t-o!S-i*L(<(r#>;N%(SXypqI;tJe|p)``CYyk4g6<)Nd6If-$dHo-rR>{BYUO zQEv`2oVG!9N(_h5DeHE7O$saP5d?h5&)^dk7UboWk`NOS65!#GlljYUlJJCU;&qn8 zM52h(L;`W*^nX4RsDFCaA&mFqHG*~X!v9KF*zpGYm$7{=n2S1mxmS;JUDjsck!lX$$*pgB?)9q(Lq%mBucq1 zqLiC>g&P_ESaA&3>Azl#G$ba{5TM2Aejm%n@>TdYW{%Uw{b$M7-I}1tCH{m>y z4$=l?;lkmXfPV*$;#U+1XAAQ9Q#gHEfh=4u_O%Hi+w{h!va|6+ME>JE%0 zpx#tX)qUva&22#EC16}X)!z=DvA^AToZcNUu7tSJxL&!n!99#Ort;nlZ3Fl*#tKxZ zmvA5LK>Tyv`@1^!cV&d@@#HW3X;l8c`jdBjTsN-@ZAmTbntUR@r{Dz^%X#q-KOGZ<6A-16nf zSp3)lN>wvEQeOtN2)xMLnE*%eWik!H;#4Jt71N+sGiX3Rh3WXfdwL4f5FOxe6e``c zgM-OlYqZTnlLVw$LTWo6CCGH4boveAJ_Sr|0aIKNUMW| zRwyoqygn>EI}7OL87^YS`Oibi3egO?ThfLWz_@^(vV5E-@X3%rGt+_b z^<74JLEI?*@wj=ihO{9(rk{{=RCvttAy{9@x1GVrb0y^iZ3tw`CRB4oawiH0WAeCL3oE%>nhmt;VgpM3sD;gf$8o{=whG}OXP%>0$F@wFPLlhGaU zjv@a=z#HVV5AuoS`4059g)v_fgnT3U!$6x+4p0x8NCNUW40f?ze1oukX5)G4GXt4T z$PMCU34lH@;sJderv+q$bpq=#qYNg?4C)Ym|0@lCMjAN(eP$DF1<0$;vUQwZj)GqReXoH2jJWVB#vekSihb_{-}=I>{^f0MVOj|49}Xb(Fe z-8vWt%K^U<&3w^KBtiLpm>1rgLBnlC6fv1UI+!tk7L@0Oy2|jg6NuhF;Rj2j0#FuN zu=F|pPKP&ok`~rWXg^G8aBYR~#n66D${6Qoye+<)F(g78`n67W|EGTTnce;=@1L@! zjmvtnUieMO8T|)xHs?Y4ZIkjn0rdvt+X_6tGegmmz*{q{2{eJ689e=sjG=7*LB>DR z{2LjMO_4F4*PWY`X^`N!jFJVSr67GMUwJu@50r;M%S>9~S8g<9Kt}7tnUI%$_{u$W z=tpr}hFp_{qT5JBc}6)9W-{Vq`Eo-1xMsR3JJ7&o+5~l&u%BSIZU%~NBK}!#zQURY z$WQ(&%#$W{28{3q+jKg%1)OCGn~eGun4=&>`A<`3L|<5r0;wGK!_b zx`Z>a*#84OJHr}+tWvRG2h3Sz3H;@(BRa?AnNajjX0{_ZzQO3&0s+X&zs}QmoA67Q z?lE*p9cXrf{24Nv)K8H8RQYh- zmePjE4BiBw-4V#)H3}8Hq$HYHn0AuJ&IxzMRJW61Ur8_j>dk6El&hBJJ zyn!(Uukw+xKg$PrnH-zU09xN+JOrP=1Q>D`oYL?9i+wcK87#BE=I>8(`)hrShA}hL zJzN*?m>u^ec+Gfn3{L0%b9;%$3xUvM-0`vo+UJ2D=(xN((189sOB?h8 z>wX~UE3EC9ADHZSbY#ctD#XEj&?n-_OqPcnZHNWrf%`{X7oaVuo|I8@!D-W=HHF@j zW9}ws%Ncoqb_)s9O>w)8^MSuJF#IRVQ@oy?G0wp6De&$m|2lF%`QJ6c2O}Qn#AF&% z>0nt*_D%n+9r+6F1{Km{w9!Auz2kb%pgCn6iFx`dpCGB9@&O*?^?|SP`U7qKU+7@{ z8rge;F+cofMTGAGB={~s&it+b?GFh>uNlVkMZAs%^8gW4Xb5w>j=2Om1K>*zu8z4x zIjk##pm#Ij8P||~&j$H$J)wp3D% z9l&J)bHD}8TH|$0oP+FD0^bGyEYn}(VVoA@-QToLGug*wir2u$by6@Z z0pvraAaz`(3?6__tS`+l|7!vnU>>L}P?tzB4a0wgq)1Y-uAH@kPr(Ny3O)4vWpO_d=Y7fyYi zItKq|GR0+#(+h=k@EDL4WGf40PlPcF8Ooak<&9-SgFGLHwEsFj!McgRTNezC#eY|z z4Gp>IgC6R^m{}L}63?3-GR8ks*D=x|>==o)3bzmN{bUfgdt-rwOo}1U3M6JW^`U6I zPJ!zh= zxT1m2JW3&>Ei+~G>$-H)R?r2!=7Q70 zv?1IMNP{f&;lgzY&r5<}4+Cx&FwaxRAHia@LY!AZkVZ5sxKx5>v^2;%2K0yFpRCE4 z*Wh;G0Y8ex^U`=Cy4nmpW4{^Pus(ogrL!m+%Y{Uxn_@Z=K!*nD4Syet$74JOZ?FzE z*`CyKjkf{*kPhP=tIkkR%Ku^SU7+KtuKWLcXJmUu@=KO%%Qm2q&0{o%fNjafJmQf= zh>Q~&%Oa4Zsb#w~5+X?zNQ+5`BpVVLk=BDvY2cUoMO$f-G)l3FRgz%Y{UtJxRF;#p zN!lNJ@EF-4HL)Qc!07k+o_p`;O2~$iu7B71ub{T!f-C+91{$+elbMn~k58869a zm6u=T!FVtAMF+d<>cj%@*%SyH+&l8|Tj1&b1=G#_(_UZ7u7O_D4gPy+*VHY$)~P$g zsk?Pi!el-z4FzqyC?7OYLf(K(gxVtoBEn3K~A zPkVlq>0{ZHgknZEab=5mm}%2L@1d!Qja4`_J)n7yucLY2Pwb->Kcfw~AECdR<0mJT zoz{AT;U~!^pFHrtr|ahLocbTy4R4-)MDZZazX9S48Z&!(Q?GpUuejsY<@ytWqM&1Y z*jdP_S!TQny!inxeePIU;QBK2uiN<4v&Q(;v!3aL{_?9up91J(X!7-Vdf@~s7g<&C)0&jY_g`Vqe9clk~HK7d?_qJQkJEJuce%QSFMn?1BSlmD_$uHt9l+GXi}`qH=C zO61X=>=uo&Y|$OP(0Gy)BM+@Kxfu!dTkmPBL@~zoo8F&Tx5r8xL$_pT&iloleEBf- z7L3>uaq2yfj#l0In{89~S7Yifpswurjqv%c=vLF$LlY8#4DGWLk5LC-W>FvO90A6| z^kG9*;-8ihD^ZLhsD5Q7B;$o|VUN|Y3w|*^&hBXqH!x;H%s~s9jirOv|5L>1pHf-! zcti_6M_c{3X-Q7M#>&T-c;I(>12=Lzw8YE8M=(+JL-w=0*A04#^bwwr~L?g z*8r|+PrMLY&_76_sgBqH6@vgG$L>6UaQ;IIOk1n1M z3cY(D2Vd#)9Q4*{+PcN_W&5)o-T=-Z?*-!owhVSj>;cgd9b%QuO4Kp$qIH>ALa%(t z3d%BWz3BB`@ljL2N-LI-iKX=CICKN{Nf+j4ffE?Su@kpT!0=@TDVJyHI2SQfvvOVd>F_7Hx3iztvrx-*8>5r0jb2`h@vCwie`Gc73|H7k z43AAIBM;F|4#2DO7WRU4QW5-S#*O&28S`~B zjU1cFm}L6tvju1~aV2g0{gepfpy!LnJU^GcQe^O-bEMMRY1XM_k83RdyvQo>tz#K^ zqqRBN=%Tg!m^;t6_731r8T=AuW^G%3cMY;eWyCA5;v1Ov#-X4kVeQk|j= z^}fcHn4!^;>0*)Q`hYU*X~t*)z@ z_h{Lk3lq^##y6IBX`E)Z-d4i=W`6utzE%1>{?g#Ug=U=AZE$S2?e19F}B7l0vs@FC!|5Zg^nGC2z!p1qK)KZUoqkz!NWdG*Vf=kC(yqEOUG51go@kqE&h+_=Mm``;`l% zW41>B1AK@x4OGZJbo|eq$S70BE;Kki2d|{?-)Dy7oipDYHtzyu5yvkAw?X=#x$=H+ z>}E%Ze3Yf@oc@f((Y$wYG}mU#T)l(e&6hxPM+Weom}-!J(6lHafRtpwi)>-3UA zsd8tXOFS*yBzyMeAbarX2H}IyHthB>a_6SN>7|}c;HOt5a1~pqT;TMx_7dq2XFOYS ztb(Tkq53lX7x|0gBgv4*@jqs|a-+6t=A&U`M%~3TAC21it%jbvE=*X+kdH61w$~tQ zj1geOn$ zf*(vBpFGWe2Og>)hle8IApiLdXgzvQjFY$F@y)sP)5cTsr>!IC5@LN;x;aGr8(vjx zojj7xC~cS+`+`96&@`)4>kZPu1&s4-e%Oya*pFMqTYtv?4a9ZV4_=<=-*knEJzuN7 z-tCVY6XSE^=zaJHm75(|s&!E>W*k8duLq7@u_)08oa=zG-DiW!558kYJpK5a!~0&t zZ`}(VLr)_+oIIAB!OPF{Kc#%gwP6)A@M2+F^N6~;86&(E{c3n$|<7h1>)SFbc* z(UZZkfvoHlDFGp*`%0~Z?}**8->ho8A_apJKb)EwRO)}J2zHh9WE z83wOE1lIxD@nD|fon%xAv^nJVF<=)b1W$8fC+`a;S-D4;gDq2uOOfw!m@%Y{9(&iE zMAPnqMCrxYBG}6fBn;2@XBYt&ws#W5ZmrYqr`JKqA+IN|A5k*Gb z%A6Jrhi<;UGy3Azs?=3GKX>f%igckJu1_I1%>OmlcP_xs&aqmmR{b#fxkfuwAL89+ z@co8;ptsS^KHj2zVD{Yl6wiXJH5J-(>RY(p6IR~n%;RmdXa0b zYQ=q~VOK-H6M^QK85iVb?^U$927l&&Yfl8qF3pVD65fe6rcT%U64!md=4i#4KRxR4 z$U@#5JPzaE&cP%x-L%$o(11ax5;kz^WlG0Z)hyVS663b z`;x?C$V%dmRY4DSJHBhAsVaBjW@0Ie*pIN{=X0qioTAvBcK@ZaEjuFi`w~;B^H;X< zCp!W~mpgR+G5a>C+fUux+ectni^wSoE>0BQW3}7(KZW<$?WX_5l1YmVJwoSMYiPr? z6Ige-X{U&G;^6ly?2JD0V6an7yis%O6!q8-+>twLQ*WB~So^y&@}niKf#9UXI>u{$ z*xKHPE_*c?iWN3n4R>S{Dt~ANj`5nIs9;L`{-x)=-DNspWVf?zRimhUcEcH z_i)6QKe4;KG|^969(;|-fs0HmeQSt*Xk6FtcFVZ!sm#s`N6O?=W>a9P1IKM&WttXv zvTJDqop{0?bYxm1ecDC4UYi?P8;W0Gm8_#3uTOXKjL(>qGy~V`(`R{R@eKO)gqE-B z9L{0Ql(Cot>^43_5#oPeYN8U5LZwx#|FlM7*kc>h1M;CC*5%reQWS2d%wZsBj9j=`pS!* zPuZf)D-vhWUy{+MXy3r?T9L4z&1%XD#@|ssRq>0BL*P>Dj}vk)IKDXH)=;h!Cw!iF zinA|paZ)>eoTBKUK$&fDV(-esU!)E5tT~XO*Bp;tf9vFAXdUyu2=n#Wrrzh_Va;Xr z7yj$@#zbwPhf4*^E(@Bm65p#o=K~Kq=GRL9?R&c(CYMZW_YVrb>PVjm?k{E^bifQkwp6xWE_cgzy_Z?g( z7@D7=-pyW}acqTAb?ix|&P&v}LG+{D;ZIHMlpP=&q3_U~#L$L`ow5Ulmj%wc)DJ+A6+MG>O4iA`PA`j zglg8vT8wVa9}_#ze@6VIwHre-kC(9T#^WWGZF1sgTeY62_OUbeD(>|I+MGz6Au~^w z89ctuGx4+0E7u|uT^Xi&nP)zkl6mHnA*qUwZ3H*Rh6P3+e4eR)*@*0%L))6i28Qo> z9?$!{=NCCR3rC~(Tp4?Zi)YBgpV+YMfKR*6)xR%u&D<_c{e5{mc6~ZU4r-MD$}8*V zx-U2{`7-O_DJLc+8FgYjoPlIER6RULc{LDQvMeV3>chF7*{t!LQJMi}WM2qLL zjj@YcZ+_+6Hg+NYF>3)$!~9w9-?{vqYk~I%v8LW%@n3d#qh-C4!d}@pz2y<&DajS^ z`0Lo<_%QBFf^jy9g@w&@H;Hl3kq$k!StaFTf|*2cs01~5%p6t z@TZOq-(m7k+_eJ1j?>Rq(N$jm6(dj`wR3&Y$~W}Ak33*#SyOKETYHgBZ;SW$JGL#d zdupN&xTk@s*x)=5#<${W?Pt)M0dul9fc?CbgIHp9Zc?62V^+K5 z)Ntd3c0TQx9luHwY1+FLnR95|9Dxp-yc^MUkK4u%X(P2P-szPO+2O^hWmabf z)>obRCw-C0Gbo#2U_9u;;J6jDZerU0n6uVl#@%1X&NFrHbL+IJZ_v4*Yf2*1)=lIU zv+k!ng!%MOYbI}lQC;4fm zbt1u#|2-^UpFG=#f{smRlb5~{*xJW70T_x|Z=gQ&z~CkRE!Fzfo=Z)vbk;;SH^)BD z@zvK&Nj%THV8n?%PXuQ(=2Il=oY*SsTW_P0<@Q_l+^D{nou8z(pB?Kv}*G6 zQ1b<*{3-Oa*RF8(+U}R{;mGpLn%gRTk{XST>8GRrqsYV|#i4rfueeaxo+;w3e(f z^5%oD%@fKmSDW8HOPl|THbcxan_Mr^>1Wy2_K0%4_LP|WuTL;zj4UU|i)R|!b-)w- zH=PCMSAePZ3|w-e2A4Ro^&jRK*rok@t}(E`oPkX~6wmyy>(2t4vj`k~$(Qorb^y1A zm`m<#8(Y_h`BIm;!J4a+hkMx<>_lmRBXKeEOSqGBd z&n6}ye%5^R@|MJp>cf2Im&$!Rci$RQTw$V}Sm$*dvn$xpn%J9y|pJJQtq8+3)y zb=c-A7hnxB%>N>H4KWM2(r+iRW$5pT5O$7yrv>nY_^=;%_{7G467JwqV&D|ba^Mur z2H*U|TeLF(4B4Rbsi(eu10NhY&?DRAqrU!`_T75oy+P^<_CncH#IL|ZI-N0^GpY@h z{Wr?)!`8^9tjYx0hokj$ufKhJ&P#m9?Xz+TRK`|Ylv!Us&+z(>)E<5IkEK7ZO8XsJ z2Qcr89Gz&ceRiJuNx2iAoqZGQf|BXT=m!VDLA1}k)$#Rb4cy!NGx%oO`y4;1X}VS2 zhD?{tTTdO8>o@+}tk!tMy5$4tDADW*_Nak>M^@1k6AKFLx`Z4X+6>3j_fc;%Klyrs z*raoQ?5n%=F)^G^HRul<Nf2&@%Mwg zDz$U`&Eab0CtQi1u~;WmKWt)k!ZQM%HQ-m~;oo06Vvm56aLeGez`@Ip(@>6sSD(pQ zzy9u2-j=yqXE1bSJw)TsCSCiN@nVlI>c>pGX|C{4JW(`S0uDvspfy3>8$J%8ucPwO zoAV4UMeFk^m*G2iecyrO#?xK8tLzNQYM-Crdv%15DetZ0P+nyxQC56X2~JMlr;~#* za_{K(kV_}K*~~*jKiM+V-1?>Lq)PCG-50mmlZNE`vW z3=D=dV;sl!7;6XYq>gZ|fp4Q@bbB?vOU*dC-SoB2@$XdE+#|!}@9DljSl<3wWVdiM z{oCinIlOU|A5`kgJuzh(d~<%ebM23}%5O65oJBU6cScr>&OMRuCcp5=%kSPVd?;)5 z`st|r@p(?3$#;P_yg7Vit^7gel48j>;S<)7@Aee?h*_73Y3=LLEGO?9n{!`C@)g_H z;nT|!8{FKurW4M-A(Lw*f8>yLx-ZY{%Xa*cVY}VQ4bMCGcTy+9c)Rh54((+?w#PId zES|$Fi7Vil-?7JfWM7Dr$9=B&!};Q~iWw%~P-}gY;3wq+o}Of-U7M%F<*A;c{`Vo* zXD8#dclOT6>Py4F-LHHrgx*l_MtM;xKxSb>VX+k+VhIoSXrdLPp z?VK`_qiEV;+;_rnUe3Dmh!3*)vFM7iEC zLT9fH*;VlGNIB+`%0+Ho}}%yLQFmL`_9W;zrt(pV`fP6kR#{Znj5rkG?7P?H96t zX_sPLzOtOhH(NaF)%~Qe?x=ZMF(YyPug|S3&NW{bQFr)I!I2fNUMNB*aBcD+CbF0A zz&JGfBz$=Fc=Os>!|y37yTaHIuOahApEsAqXR>9H%SPvD9oNiZ;GA(` zXx-M({T|16kWK5^u<%D|h`Fa&mRIjT-Fg>OPx~bCG0gnFiE`u!b&w;}!5r^7w%JO+ z?I!-OynsG((}x&;#s8(lz9#zQkq5w7vwJ4p_8F7U7MssIKMpnIu~qtVh?`lnHuz#o zj4i7;G7>}_`=vIXORKyhtwRpmi~zEytaqvCw5x$)d|+#b)28DlePb)7vLWY zAIYP`%x`x+Su_f)TViy7QN^f(yS^f6pli_K~*{owmsPi?-Zigpo z-M*SRB>CmeDgS<3U~YANq>fNg#$IxDO`g#;8W)Yp@0cH7KO2u9DoA|w__=x9^8KBQ z-#-tW;mvc7NN;HG-0Q@@l}q-?fVG{4Eak|H2YouK#Ly{DnR5CLpT@p4mY>g|r^MUP zD7j-?9aWO}fD3aSFqhGWbdh*78{KmXojFv`K9|No@$o_UZ;7>W1-d7IY+r%yamFbp zN#085Ft*lj=-Z~av$j0ED$v=tCY(sD#Gb5QbowRUnK6FIm0Rd9`EtTf^4c#KrK{L~ zTYVWg^}}l__YLrjaGof%IlI2ukn89hw~k;p`EufSBIA@V=joc6E*)iiz=y8BA%6-u z_nmL@QA)i%lTV^on$QCV&s}Bd|8#T2jZeCO7)Nl$&xvuyBxkW*OE`yf_TVKZ*4v>t zj^sj7e~FPxJ;-p4qoIeHgPAoPR}arIbTMriJ?z~78FY$(=V+VBxA%>8y}@Je%%_6k z<${ZCL&^g#i|H(_SHj3&5@k=Ud?m}AVXF7z+4F~JXIiAGcb)i|bslg0L<8Af-nma2 z1Nm_c^w}a${YB=o>?xgNqc}vMiG55#*1@C1{oJ#kLY)0XPSK*HS@%}Km(?fVn6`0v zc-ls2w%2P%aN&iXVA;}yWI$gq!d?QMkK@K!fO`vVDz4Yo*x%)A*wr=-9kb+g_6 zVuh6$;%ouNnV7znKxVw6u?n;AH=F;J>y{;oIJ3=z3m=#`Uf)yq8d#@-@${Xn37?(j z`N=qSG*&8W;GA##2S=WGHZ9MLd|@1*XW~5QI^s(>=PHb%f1cy3P8R(uLPrc-^or!C zcgB~^c#5B;pML7(Ui1WtuGEsS#;1|?_Ui;19B#uJ?#z+ygcW@Z2`_y3%0*>iSnGCbKIocwbx$j zw66_XiAMUOdHe$N%&Z;Krs59DFZ~T?)q8W;JHO3;cH6o1;l@VLci#01>;HZ6ism38-n|<6pMY~uR25!^~g&uk5SlJmmI*XqMglI~Q!QsmLjznB1@I(pw`odI3Z5uyGcx%Fjx zg0IPs?WfJ1>o3i$L(<0%yZQZ@I;-6}mr#fG!yeTmPj@Rer*eq5?)r-lqz7m}^x=5A zX2B%}&H>I3JTQUwU7JccH~ybMgG~%`C*}JoU%AGaODbEFW$lZ)Wd+}qpUOFmtnE28 z*BLcl%+NNtiT?0s?0oPOOw%81Y0;pGvk#$dhyUzD^ZurhIc@II(}H2>4gFj_xYarL z(BYE^&$WN52!1+O?yxiO&z?V=BYxZ*WFNGZtili3IiGkRV`XjmK$;w*H2l#KO&gh5 zB{`?L;L0(h&xE7s^0>!``yT?PHch1TJ*IxXe8Oj3^&4e%UkrV&wj;DA!v4KE{eCmyvIu1 ze_2^OYaG3&>g|MLj%^oN?JXCTxBrf|l9$=-_b-Zfwp|oxPcE`LH{AB;R~`&Fd8yJr zUm%Z|wU`k3?lA13A`Kd2|bIk*NMV^Pd~gt76D z#~N=ux=akcC(@jgI1Juu*PKt`o*Q9cj58)p$bZugxmiYbQ6Ie*Q~!5({ddPB(|;qQ z9eRvyN8{~pckH=$k`c9U)*P)x&fM`uN6us;XVxNTn#tL(qAI zomWEGH*<0yoonhamd<%Yb7E@K+jlMdLG7A)oSW5{Z8g;3Gc=;}%NU1Ht4}7wM=OKY zGqU;3{MyC&^VHQ|LecRqVx4Eh&uioHH-<}0|J`|QN6cAwF`b>Tcamc#c{cY3_Kkdk zKKF0XnK${#DeMssnYl6D;aTWn&hO!UFk<3Lu{Y7}A2)Rh61G>q%k|MI{~~*AoI1|A zH*wLCI$8(f{K&n1_!nAh9th5haW4&|}(&h&4Jk0xf0IC?{K;5y*=`zN|C z^`8050&6+X=}(8>pV$p9et%;4^3cZA!jQu=et)8ZH7;-$T}0cI&!6BsOJ(fa6j2+j@ zyh!YO@!T@dvDZeo3=C^z>@k(FNO8mz~Zoao8!?tSe+L2+bT~k(L z`WX*D^~YViwwPnUO(cNtKljVvy~P<*Y@3*37NLQAvH3#mL9uSJu@O~o^O$;tzWiCw z&&qt4Yr%-0rMZ8AwYnwv{E9j89iZ5JU@b$&6_-$FmCsxArV{;Yr4702}b9z&^$NH2u!l z3nOPb35I!Be0)JKBb;n(m z-h%dCzQmLF-3(t>}t`%CxgLX$$gBb^JWI#K(hq@L(f6ILP`#^gZZj=I-8| zK3elXO`o!VW%8IA9y-5U0~j;8ahjBOzP-*6T>kF^V=^R#Zod@2#0DlMHi6d2=Q z1k4#d%BN&ZJ0j$%ZGgt#Ll;H({*1Ph2p2Pl7*br5`q?i=Gl_d z9Yy`K9KFqZN1t#G0Arw-mSoNV`Au4%fL}A`jbj&A_gCl~zgfu~;Jrv0!8GvJ&2`~9 z`YF&=VEl@gvCAIn=Nxii3a`Ee=ssd=4`FB5kc%sQej)GteLlrA(PA&(@$o+gr?luQ zeg00gP(Kt`PLXq#@iFML|6GF~f}7^FM@Q*!cmsVoJu&qB@WW|j-sp4goPFu%vO|AH zz2S<2BL*h=Oye(J5o|}FHT4#t)6Dz(%zE6}Y)^6>jP2PGvF9Zo2Uq0>REm%65!-VU z^bk!v8$`5u92>9`UVM_@6Z}3-9e6EcZ(h&*kv+9-;z*oH^=h-7v96s=%)zrc{{(&G z+M7k#nwo#=3vCC?qA-{bGudegaR{YBvPJ>0f*w}Y&ym*v-=Z_cDza#WV@!}z_W#5@L%$&{G zcO3!8zBB!Mo^sB7%!>)nv3(k;@3-#?64%0a?;MXCy$%u+uLcW_w9rR##ySmeP0+bv z!PxW2RLLrxr2_BtijVcZ5sj^dKLFf%EC$Lr5)*jwY^ zZ_ctX`JK6Zi$^kMfn-d6^0(ydjgm1Ln68W|yTHhppZef7A!~%AWPE|?Z=Z5tDwzzGD71xo{T7> z{Qp-nqMQD_dl^xb@XH9{`7UGxd&&wDCGg(4WJKnB0$QhY&*71+gOAkHmvn89za@9p z=DVk^ERb(8(}{zzPGZiA>4>bm(41E=5!`e>Q>N}iqy3J2C$Fc&woNW`rrv4nEuB-B zskdvS9=_l{jkjHNu^Df#t>e_mrH-M+*Bu{2xRpBk1sQA35a}oaH_t!)A$2nHDBqdi zhL`%?vi;Fa*(WJ0nWFP*#-8~e1)m_XK?7@%yN-KBQN8~WL?@t8*@pHVsO zrXS5FzrG_vTZ)@^o}(QD|7&J_p?9!?^)cfo>l-yrJnn!;&vh|}HZIJ^fQkH$nfgXQ zI_24OT#7!+f1dcm4lBRja$>|C%KdX}#3(X6pS6Tp$vFME+oP8YW3L+{HgJtj8_6#n zk4|IT*W4Sg+}XaTq&;r3w==dMwl+CFvA`^HVqEzwJw?CvrTlgud1hIZ@qFz{uOHwn z`%iM$;O5%gvOPCKmrzAKce5G8FIVL)vT{wC?~tFY@2Q{@RZsI{smGH}URy_m_SRG8 zdfE}JTY$CgZmW~E$c~-!FG>7Wx#igL_l=1^04ugYN8rg8R2#yLo{hlTwZ!2GaErLGqQL4K;GB5oY12oYvp0)ez6^AgI6Odk zjr|+g3hK*j>KHl{JLeB57a_Ag$GLEu1~|XK{U(HP*y-%QV2+zJ$xUA@xBaG%#vMAq zPY%9g?ynzxZ`%EqZ04=fhs2?rIc1)|2Y<=bGkojhlW0ukr~EbfoaWuWc)G~iS=F@O zSvwl_tlTy$ytzHxRP^Mv!S)ffGZjeD4OR*v+^vlF+Fd)rcu z{l$4fto>IXWgYH3=*zQoctX5W-yCkC%nHs7n$P;z{ghoxS*u%c6Lj-)yaMC{WlmsG4MsRnsO^K7M4S= zk?+qLe0;R>^l0tDwfn=iy}0gR;r{z+=LYQS2k2+(_0X_vVQY9wytAFP?&wBqMwouK zfLDyZuCjA-!r<0Ioq9W*-FiK_t_D}W&A=H>TT~x7qBSzz^eG8VDxt~S#@USSxZ~TS zv$`c)#iNXGOm)rpW{)0U>EJCl!jBhNxjEn$wViQRS@FRDF|G%wQw)wFd-AI6Tx<0W z;LSNvX3TUxL}tuJ=G{AvSqp8p2kgbdFR$#<*1D-yr-z>zJI=|%I z7~q?dLB0p_eeZjyiQzqVyQ%j9a+r|!FK%|^`|}%=bK=-D)=o!f4mHOAF~pi7<9fUs z{FGM@ECnEtrB;CUx*w-tG?wWwevYO05c?{$?`VZ+o@Z5K7k0=loVB*BT|8xAVIO+unFxkxaVNA$k^82Y;1K$+ zsCo4H=UoF%Oi=5WvM-dc{S)@XYJ9ccPu(8vZ}RGTw(;ZClYOMvmD<)GCwSvTbi~H% zmCYhNh;f*6&imnA!PA~5!Ha-PCveUOMhIQ0^F+*ex5v}>&dfIavhXF4{DSTo)_<%oqOA=!U*YcDw(3y{Uy(x^GhOTLaUwzV-a<3Ez6LaN@W6 zgSo`8;QgN2i6iW{I03FN7GBT$4^Zy9Z}m;8_*QBmIqHSip?fNTSKi(?N#CRTNt+cY z{JCj&{iMVove{ghPfGN8*YhVObjG)NzI#&Qm)`ZkNeO-H$2<=N67L!3j}#;xd#^a} zwnuOtut#t{Xpi7r{(IooQ;@jlz2de$FoIhk^n1`}PJ(kx-`kjO3cmMtd*&qG|6bc2 z@b$f%@3we+vO6#`E(Zf6ytI3QkC%dppL*rz2NTM3G(1)wO#H;VULQ<6<6Uo>km&ZV zcLx*y+q*s(OdRyC2Z9ON9R^MyEAc(=dVW@d4L;8EgA)=@c-QN*5|4Y=o3awx^J41m z&PsgCyFQqeNP5=;S&6^*t^*Sik9pVgCnR*9vxEPH#NT+=>n9}m4yyBf{lvt3pF49C zKeOK>Z%^>wCtBbr)}3=KJKy zdY?QwX!-co8sXbb)(GFOw|sodcj+=Ptr5NrSR;H}ZjbP7;P)Aed5P8UweRcSvyAGn zK5|}S$$M+JXHj{`(A?-}-}mCt&mEz}^_?xjnx)m2IXme@Hu2F){963%+?Dv$D>$FI z8C$L_*Ge>@gMUc5JeB1<+gkh-^zVs0dtu^E>=6Uc?2B^pf@L=62V94X3v0NTg|f)?b_R6b2jIh=ei@<5waQXAfIsw z_9uABP9h#R+bOq>Tw=<}##7n8x6GP*hrMogqG_U~7*R)bOql~`hW9pQTj`d!)^^td zciUUxZoW-bYVaX1u_n9h^{hE%uVb54N1%uNJlQ7xK8>X_{@TN%=+z$^pI+q-y%c8< zEwU-6y%0}b75v!>a=|LY4qaM?hxc7de^-@RiP|#`p0}SF!LysQ(Z|Q9)7U$rQOI^^ zqy0I7iTJSCWum3%6sO-c*86{|v-Gxvw0|XhTOaXrQ?F~HOH(_cvM+xy-kHR=uMcEr z-_MU2M9xrf$}`_6i?&{B=iOg7!8$_j58`2-bd`E)M^NW z-|er&JD(*sQCrLz;ft)q#W4H@a)PWD-k93FidQ1597EH ze&>CT?t|d;EqMPadvg5^yR1Ypzdgit7~@{~)SN-nS$Pp>xblA`agPIK#jUR+draK$ z6E^nV4-Ad9J}BDChV6s4z3_nOyA4`sO}d3RoZ`)4#yR?n8#>unC4Zg|!zcU8TH>PKiPw2dN$F5X$Wb-=vr<`woJM+xJ&A?#Z*D~)v zD&7>Yjm-Pin)h4C4~#=2@x@`v%u>1EYtCbXujw-1W_9MrlYFz)=G(0Sz9AfJe`A5x z<@S5DOQxaS&#>j6iIo?355$X^gFUR(C0_efp#3nhqhI3h9m5yS4zs>r9&J6wHxZ5v zvWIY4jJQ}mDs$+a3mUv@Hio7SViv?Dn#7(Z2x=_VSSy2MKFr*DP^d$fOggm!V41}Z1|Eg{Fdn=_VckptcE zNR#s zvy7f_@Kaky&qB{Um!9bBy&;3I6LSzPo4{9lPfdM~mRIvlhq1IgG(yXrL5G&P%!iZE zb4k$3@YPMeF%z$gHmCk2tKDME)!t5*J{IsLL(Y7m`>Z*rh3J@@txq5L62C@%ny21g z&LZfzf|z6zv|2$-vJX0~nC#^8M`%ManQvpCNFRQk{}!@h64&}hG5@#A23X4;@jkwF z{0H1iKS`dBw=Pe7B&og27I6O!Sdu%HldKZiU3pwTUSTaS;oWTHR_dxh=!|l{gyd%G zs%f3Xz)blz@ZErKg-qQJ-)t9;*?y zrYP-L;OWtDCOEV~zd~Xz+OPR3-VHD|m($Ku&{F;VHP0j)iG#*|=k`(UoMas9xL27M z(0{^jf`^~cgHGICYsgRJS*)+vvAvvCLT-9;-!$&gFCp3wxp?31;(Zl-(!w{&^j(k? zyrw;TeBX$e*sLV+N6|d?IC6g*dENeZ(qrB`=Ip3<&;0wyJI=CbAhvXOvkTkl+pOe4 z$~+Zt_!B?#VQ=rC+MPqY#E2X2om+8t*BG3x^tF2uUEs$FTOot5>^S6q)l=XunkoK2 zT0b+chHlPYE%9RBnR2r(r8TM7pxYhT4&swAu=L*1BaUnle_;oh*rE7K^UDukb6I~Q z{NuF48c&Qfs2U{OH8y3819=nMoqpsQc&+r&!1M8w1I@C$bq1{~U?ZmE;3xY-@o~NL z?D$aFG_3Quc8}!i z;@!_(_O*qUwZ#1&qK{VdHLhR7{zapg3xDoCe}prLMQd~4b&a8^?mfCD;oB`)O}!yY z`v=0wkY%M`WxRABwj2KuUNQcbH%?wXg3daJwj>ptk(>+;_uJPdawgC(`4i}+Rjxk) zy!=Kxbi4+>R~hpjKJ?xjzYZJSkvWb`7muDnCiw9rk7Rod^J6jpr5Ch*)5SR{dZxOX zAFp!ukE!eG27i5(`850^T_E`*J>uyQf4R>fgN&Vud{G^>HN^Q}-ZQZ8X#S8ZkG=|GUuE&l#|g_(IoGH7z2)a3ZC%eVT=`i0g2RH5G zJHT9Z?DzcGih0ib_}zwbWI-AE`u=k!oca1Zuy;Z;_<{Yj*Cu9wuXO8vbXA-_{{#QW zql;+qW6H+q+j#HMM?ICVd~vz(E~ad;-7{ZJl@%7y4Z zy0530_xO86&shW8?(mJ{6D3!+R^eNA058G1 z{zjc|Vk2)Z#m|g&UD_)9QE`z%Y{xS8Emkg~%w?el)@%4aRQQ=<%0%%ynS;j9ESAqX zp{e)M;?Sc>(sj6G%6UmRYMo+m$R`vLgnahH}M``Sd|nH}Alx8ehDUBtgn z*w7YUQ2k`}Cgw|HVCL}!=j;*1SxPShv1c_UkV`INd&Q z?c_2mkv-X(L0sa&>5tUhn44X52_58As3I8j|=i-swyIZ|0}t#eem4E%`JHIqMjkw;H^*HBD)0y-@hNeY$}@Roc_;UujRhpB$;<-JJ1!5PEt2 zBfdnP)>f2Iek(NpQzW z+EeOl>>ZCdd_7(q!?9m}hfYZSNxc0yzRar^D4)|x9!C~r+jE|2BSxV)9o`s!u+*N@ zI<&ZKd1bD3x^yY$UJ*;g1No* ziK>#;ZoXTzwjz3bGx-En;41-MEH% zs&?mde-e8sV%o|}{t@lyxpZKVHjpLB7v{5foO4`?C{sJ^*lnMnoceW~y6W?G&PG$e zH$exjKWYAzGfpY;M!w1WJZQQjFu8scIV#73lVkq?J%)nWv2J2mqJ#GKbt7+eeGs`W z+D^3ReXhpH@209Gw$Qh!^Y{F|Rkg6Sje3pc(2~BlQBT+NxgN@mcee2pT@))An#?^i zUH47g6SK@!zSkh<*$jb4BXPujcv$`DR$XMNVEuC_em6cfy2JQ8xf+iYId_MFr7@9g zonKMhx(GU`e}W|%2+oc`xc*o$92-16Tw-VU#lA05)O0>+xX{>pDdzmI;ri3rhuinB>{{5${BL#SA9~h3?@R673I6TGtLTTJm&Ke}$-U;sPTCE-*9UkW zh7O!PvpsZ$%32NI;ywPqxyN@}9lpZq6h6kraDAx7yw9I*;S5Xi%c_cs zz7PLFMW4s-=bi8PO$X?ANVX#1xZ`~4<8j(pz&lS*`|VTVFB`Rq_@Va4kjqqk5_>VXs^f1|G+mkEdIvY zF|)u+aZTj+B6lA5UJ3mS4x{6_TSMTAKOZ|lc@JmB)SluTPsXkKAt$B@Z-o+G8SsBl z_=8I+IY)eJ*2=f1()6~g+Sm_3tOK9a#cy;w zhE8fjbUA>(Vqh0JF=@q_1WS7{MU%JLcRv0G{#MJrOujQ`3XP19#@m`{nK2Zf={}F~ z_xd2bbxwjG=UQ;qT##Ktz7=CI+P3w}N90*gjm82V>0^8i+%8}H(4cmf1J8{4IC2u4 zu#;^E_kO3YiPxWMt}^|HmL^8{wYb5{tjB&$`yxi;H^Rr?ch*ygwRyY+&zv~=NWAkX zx?1h!)1Gjh$=OP?@lA-UtZsknx$c^(*^jEtZpv!j9e%{>TtbXq^br1I_XNS7uAKZQ zvtFav5eg!`Yk`&CU1+8EumxfC@h2AdLb}g`3BPIrfZ2Jx| zmKAU9XtC+zPGaz9zVO3L>}2eG5Fb8{J)^kdN&5F!fu>&83U%((>UQi4WJ>zB`LiC4 zBX>htj?MH{#wvsylO6GCuD6kk%sBVH6Q3y$8b2>7e*H3f!^zRhOR^9BVZW{#k)i%L zo8w;&(l@OK>MX>W@R#rxJbk;p!3Xn)z^p;$kdHh=zFiR9wdY>tG$*d%J62<3yUuug z&l!JrJ--7GhR6VIQ{Oi_PJ@rbnP9XVI=6 zf{w{A&3zPGDZL6h-od(U9X953*dLdn=W4MrpM#dHxmH_2v){Wniv6ZFLkoVo{qM?( zbKoJx*ruRArvl?r#;O)SBfNa>qp>MXoomZ3J8m&Y9lL3Az5F`aOdA-VeawOXgDz?T z&oH`c3wTNos{fLlQzR)~a2M-mojuyfuYD7P8f_~?__ZlDC;QOzv$MG!hQt{i^bH_&P9m&0^ zZrvTg>Sv6y-Ft-C-aKq9J#V6o6mU}L`8VKa+l6g(gKO7xFt3HLN8i(&=V2kkygqr) zf2-#uBhUSMN&P#<`@AchnC~cgG=>g+DpxX2xlEkKkz0}#{qWE>=7!dCv_^2mZR03D z?N3}d&+^~8vqq)<9|JzNc6#Oc z?2|ZLx1aqFi<+U|e4goi`zT{%>`v345!oua`V@4nWz9EC*&%Q)#&(S`Pb4oqS`?p$ zZs2|3aPfWv$K*q0`Wlm*7OZdjV8wtVcq@S=-|NHR!?{8ZTzCA0pY&Grin8S^r&~v4 z&wkL_@<@a;X{O;XT$Y6&+jV(s8-Bsm{CMYN=ra|cv*n(9j)r+2tNZl+Z*;|4hpikF z3w!`Sa)&*&KFIue7Fp6F8T8?3YmBnW%W(95(~P&^r=p2`dv=Xq|2zHBcu99@%ruVr zmOvZwn>kzZC+HbnhYv(sWmAOVdw9R9j`Ljf{*Qd`H81o&T6SQ0ZMIdCMD7!xENw$? zr^2U~w)4LZAE8#h3w=0jU%9k}XD#?P*f1S8b$u|+8th)JO}A+7x@)34(fK<$yJ;Ig z<+vZV3YKD9rX$?v@v8|~$YcCtV1)wK(k|Yun`G@}VR`SSSxxX#UXl|{9&V8>R>XO7 z`1Lj5VDUYHW^&K|h3{qxhT=vobDe&_kA7|8I{QGe>9=C7^sNfpI(-}K9xeELckomF zKF&z~0Wj1SI^XE)Kc>Cuz^i3k*YLykESUpL!51w(TGg3v9)p*C!RKxOelfqBIs5m! z*hI+Mn94ae=G)hL$v@iuO@80tM{d>jc7ARAG(X0!-^q?R$=Ft+UlmW1jUoSjC3a2} zp3Fz*YEQUqhd&2T?JI&NW?vC~s$NGwchdKJ>8D`Tx^#M8{Li)R_DTND0{WnJLFr&< zZ2VZS{+(m$|8$)CUfq}Z{)Vx+unWBP=|9c%Z@hS#!_UK;ts~Oi1K5{o`usY2T|7R( zd3yc9Ip9^0930dhz6sD|V)BjPq~t##m!$KLB6~##XI*nPWoISHGk*9^&M&!xIMi|=_=OhchQ9I=KEWegI;KaVjgJ+Guoa?*{ z`>1qi(46b|(n8kl=+p1ecd}Q2yIgC&(lM`LOaBvb_|w6OvDd$1EtfrbdI|YOW-MkW z7eP!ht`N;<_;`}c0s^S-2oU_$3U%7Ad zOzfgk_j6fC3|sqdVLU_A`R;GT+N#O)LIv1Yj*m@VzH^p=+IrpcVHnbl` zvUSS&R&@cgEEO!p^#Xj#d34vi7yv$Z>Sx$vxTa zDZc%;g)+pS>(|X3>9eit`6F~~$!AR9qY&!=FK|Aj&S}!wnghW(vHm@QMBjoyf(6ru zQ~dw+9?Hok8?>>btoGD4$&ktQ^EsD0E5T4T3kPella7`jo>b-z280KIvN`Lw6v@ zkQu4ZLZ{2I)5yE&=G?vPi>5t#d@uk`@%CC^-2lwnfcH!A)_8`ATS}&`B2V}@KHyJ% z&u4en?VpTH`WN+)?~lLESZtzBAMoaVAilrs(ABN1yQYh*C46xK!;>)k6?o0IjcjSM)0K5Ul$D?m*gS9-hIlf%-N@tO2 z&T5ZNYLb;sEkSn$txm}~!InH0jF&Hor!@uzldN3PxiC1ne(=EwH4K{nU zq8ojG9__anzanh>3dsw_1{4>;&rKt9j%%$zZM3`VBI3n5u1}&fO#GkwmzdL>(Zl&t z`OtGF^L)0epQM8elK)6MacJ-8jUSy=ZwO|JIr-|Itaj<3!`NM;VIn&guz%u^ov45Z zQvCmQt1CO;5hFXk;K+{MtfRetbv*qS@cA3eo!5{7wfO6Ynb$8<){z@ijoi2aU*9h` z+L-G}$&F7qa^u(7SgEy++<1WNp?c;KcxEFrhL9)4#ZwGVeglD*2Xi@24CZN9G+@+%gGjKqu!sp_t|be+UZrDIP08S z&}~Kh-#**Kl}lt}%3f_V?T41u@xN}kaOuk+Tep0@Y0-8|4lB2XH#6u8Kkly7IQAwH06bbk4ttdFQbp=>W?FzXVoi)BstqQ z*;>{DeY~~QCg#4z51+2&-}o+IZ7^#56~Ry*o$#6CGP@7c$G(VpFV!3S9%EkZ%nS z(NCkdi7{2x^f>pkn5(ZbS6j4a+T?;ec}p*GX7!8M#A9rjjIKCUk50(w1z%hPe90-9W%jWQ!FRRz ze(UgWBG`0|Z&~fnF-E2g=lJQ}*w~KzD+k8xMCeVc{eIxB)R}*ll{q8EA8&c5_72hB z*fzX6p?j^<;Dg^j5>N8pX`VNMcMCWwzwBqg*~VP8gIY7mPd-;6xX!uqUQUy6*WcLl z2j0N0^7d88zuSk+C_7KF`KQRo<)=7(`VTp4t^m7!KmNzZxSoT(53{HDvM#-sT+1gf zj;Ei*9(;U0_Ah+WhQG28p5C{_q2oV^|EVWkzLNi1m-`_9>ME(Q* zN;C7jiMhi#!1og~@x>?d;+>CUo9xFv?8JV35*@m4Nj&{sbhKo^8_eTBWB%5$4%|Y0 z$*q1*Ug2jo>zaADg|$y_ojAqZmQ2_Veoe@958oQ@)BNT@$KUb406NwcN*{7=GV#ys z!^Ni^o+6JQT*f<_N%O|DpZxrlO*}xct;T@WIeCIrki$=T^p(& z7NNK89OE0JyQ_=gk4nZ;GItmF-w7PAuKMfMRe$|;L(V&m^}d7jDW9>@{8#;vILOGJ zz|r{o)-~W8ho7G`>rTq2*$6RkymG2`aDzlu+!>nX_kHu!=#ZhaEp`LC(hmfh4D`f*9? zth$>0Pr$d^e9w^0tuc6vSW?MXc`o~b4Pu!(-uwE4vDU}oOZA`ifZlHqOCpCm=GgTG z$)8haBXjSIB?*`@)z9xMyNZ$Sv?E{&YH0RIK_IKg!eem|< z@Um#QU;GW9Kfzo&1wMOOFL)BYRqfJAzPHvoJ~Bc#vrg~P?VF7C$k}}b$;ZI&%oqOm zS$Xxh_!qD68?n2*Sgdkt6?4nSez22mPJhw4vyy|%dwnBFv?^!rd)In*H|5~(`cE4? z@}MWa59K%UocK@7U$&WNtiR{`pWT*eM>+bV_s}`=bv!@B!C8K->>YsaO(6&7z~hp& zq8Tx->h0K_Q-NOztv!F4{a%T%?^yx9a$%72=x6-yZS(HQf7Isvo!7_rn^+%l=rz=T zjee)#%UuUcT4htz9U|5Z?|lT_dVtt0{_ASxT?y7?{Alsna&Qq2!p*UTL-nn143nQQ z$Mp4Vx)@oxJw?B?m&dZ5JQMGJfO+OU6Me$Oxm%1MHQRi|Q2wx4Ix z1rMPsTjpEK#qZzXnPQ-|l-a>E>Cv$^tY43NxTwt<>O4yQM(V*wrk=NUp#IUfo-j7i zF>-|~n-|kZa!TN}A@b<6n>fQL94FT|WMcSHVlcX1$$S~fgZ0Phzh~r_bfS2C=>+SR zee|u3@u?+tehOUFo@}r!o7SFQQWQ^@&T-bzwZ4jta763orc9Bu9@Y=9E7mK&wGUol z4b{M_v7D~Nx@(NyJM)Eqe%so=XOCI&ui2u9 zmv7U!K>5T@&h2-hUk&XZ;QKJ$TqFOthR`dO_!Xi<4ef<;op`qDjU9`|_15xc*##F8 zYx+B@UAZX0=m?dScXq?u23`^Rxj5clm$cgRc>g8*9oc#{j9I7>+k!Q`@OANY9ecSO zi6_)R%XQ^eqK#|uTC}}_xJ_tT$Sz!rUag9@2Rm=0UBA6H3~tUki)Fpc7$q-?-?i|< z_+6C~?A3+0S`90kt=w9!Kh(TsZXMTpR?Bsh9aD>*`}nE}CU+ z?}k<(%j#^IDY|sbkX$MwH+6s*wbp0I4e3>0iul-%m!V%~&CXlzcKGQeu&4T9H@L8u z0q-VYYd%Xh;s-x`9J{IZ>)2k@adc2#@(|ClxAWnP6SK++6Ezpd?<%yi%r_(_pBF#c z&A!+0#@p}OB0q8qYYla`UnzS^d(yO?qy2{;r%l1mzs6d#^BwAk-TGl){Ttl+Vd^&p z!iKItePg&ZwI{wDTuY82<0=`;@Wu;ftYi%R`>Mv$X}oXIMt-aq{0#H0KFvXWdltKW zpJd8m#-!zdwS3E^7O{n_q+)6AIdQ!<*OE0a!r%O#A(~dhvo~?Zz`q6>e>=R*-v3y3 z{Pp3Z_FbvjJLdA;)a51~8DxHLW<9$ikbZRydz6`@ujK_4!{{8&vzO~T?Zbz%P7iP3 z`n%S~;d<^L=lbeEdU!=3Jvf{1xwmF@X0u+5+=}sSk-dLqTT4M=-yP6{ysH_x;F6N; zxATwhLN@Uo!DTxRE;+uQ>(l7+hp9uJ+ul1^FM5jaMQNiYZZ(5><27QFFD+C^UyJhkG(Ntk-#xykzVxo}wa$WX zAM$K0zQ5v`#$!Bu4_MQeq5qd2K*omn2JZ^u6zwi;B!hT1L%9c{sq#D5vWNEoW4)F= zyc+Y$E1W%-L-0tHxfcGaz53Xh9aY4+Z_Ba1^k5UPG$+FRB#%P;FXq?CnHcE!xze{9 z2iX~F!!P$n`J}{Uz44ds{~EGbb`y4c>=%sL0Q2cznRg)C`2nsKyF#~@wCVc|TiBZf zuEIlQDi2x9wMKXI<(4^zaqQe2&a<{}AvPIa=;YN#ZStJ(xt9dv8|#oUQOW)sD0 ze)LA;6IR2O^riM6SZn9}Rs5XW&_nFgu@Y;@`4&IZrypS z*XsEr7c~sxb2J{j$a((AMXNt%o?p_iz&yXieSXR6HRgG7!v_44#)HM~^WxRyCje(* z!ye*JjRzOH&lj%#pm}~-!yvv*dya z+~-SHmzw9L4SUF`Z#-D)J}+HOK5l+v`SONA;!%yaEq9)mFJE13o?qRtz&yX&eSY<7 z`SFdLu4&kSZQPi=#(BQ!n$zfzjmUd+iSmUudd_0 zbb3^41=8)Ctkt!fTIPoS!&=?KTFm|M?$8@Ms#d`pAA(07fIn*2Q6Ik92`pr5gZL_h zOxri3W$r5Y7=L-AiB8Zq@>fZM;`K@md%@+c#s2nOk~R>B3>|&A18s zq6u4SO894U$MRvF%ZKWl=r$f7)}4h9>kf|3hjnM+!@5Vt=fk>3#^=MjN5<#Fx<|(6 z!@5Vt=fk>3#^=MjN5<#Fy0h?MUHSNYSm*Mg_)RoC8y|)YAM*Y^@L{Fl!%)4)hjsAb z3Uc(Mv&ZAZZkHcDJ`BT$0nG*Y;Q@GYg*~%=fV$mZnmJE=l%u_ctW6JHvSaRZfhqN= zhj+|nk8>oER*7WwO3wR~tX_$nzRR+fA#Z0$UrRRs z8~TcQwzow#xq;PT_IHkXHX}s&TPXWlaMmi-^S{UMH#%`_PN=8LF+W`U!=D@K_$t^? z$=jC3JFf)awU;sPrdid8bFJyok0tjL6Pg|k>l=NAKfiOg=6Aev8FoWUZq}L^al<1^(xy&1(T~3ES}pW31J$0#-e+ zYMYrXDr~^6OJM;hX zr8hVJr};AQU*JpP+!?-n6W{!QiZ4I#|M>F%_ww=&S%-eN@-oNAm#ks_kMZS>=_WSf z>>>JZl9%C2%hOxX8{xQ}2t^c+!PbwKr$cATk47hiT62*1IT4+~l9T*3KW}egMZUkt9vMn8o0jQU~f|C$)|E7(M}#GZAoz3ioMrRq6r z!S95}AF#GI1z45mS$R{aGnMn=I2SR=9+6Qv#qn>7zxeG(h1aEgn^(BC+!I{GcNEsd zrhF)8VOI94X6|dj)A%wkSPkvy#pukbIbpuH5If(>TZxYo<-hR9rr4;yN$;s2$LYuO z^rOw~N9~w?{P@{tpOspAr~Z&HX!JV!tg69e%{)&)WOKk7^&d##}u5Vg5hmj(wYN?DbsZ z-p2TkH}=X|{e9@^$Nwzj{<`8vF~)tBXvw%YdgK1)bw@SsweGktJl`_oj(i$5*WS&z zJ9g4Yu7qNSExY5(wdZ;lZO9k*$AMc8I`LtxA8vbJyz_I&!Mq4_Yryv$yZ?4QzfgNQ zob_kVmWx`z4C>~`j-Cja|ZI9Fl*5BEE{Ff4~uh_{Lj2H+8C#goNptJ z4*mteQ)L<@@f`JOROsK%#|I1Y}@Gs^idD|!A{V{Q_Jq~6XX`VJZFEk59`7f&E1;=vAMJdu+Q#r#>O3&)b?#U zVC*eoF?wP7bKv;)d%$sw{b?O-q{6ZQ8>|D5Yuj|}FVa8%XjiyJ`c0jg&>au5g@`8~ zJ2<}=Kjc{VwPuU#)d_6wPhj7zWB=0vUV;b0CG?{>I2}I>^qtL&SseeT9*z%)GhX(7mv$mE<|~HeUip7$|Feue&qDS)FLB1oqHg)T zc3=ldeXsqHyHC;{$=w@$XN+S9iK}eYP0l{6Dy?lE^D~V9JAB~L>&*$V*Ug-DE1J@Is>nm(l1-yW;b&?!1b82+{L{ zY!0w@rw+}fY4Erzp3(PdEsiZjw}H{YE?;|pdQs&55k<8pu`$!`Eu`1hGuH6Y+HY_N zuYP~PIUQiA-3wo!&$aM}QuMQt5PMkkHKQowJYO>-Fz{^5kloNppEN@>;ymZis0(u;~ zeYTdpeqOTv3gBIF5MIdIbGdpW)EfYoT9+e~EqW}PSIMu|f58=mFAIJ>H}U)$^e>%K z;+6j5RC;;jwf4x|7_@A`~5Q7=PrW&!+f9S zi=DsU;KSG(S$uQ#hmYpHYsUzzLGLiptT82D!k^=#C(P*vFM%ya$=?CHVxd;jmw6>- z4d+koJke1T<^AZL6+2PTSOpX3G+bZU~2R7z;EoKdV z$jh41$IqL}T0k4~ZZvJX&b%dNjbxsAJI$IC&`-dUjEHWJ|5`VL(57XfzoLElqAuiD zccjOG%_=t9q|XwZbM)(${S{}2R5qP@4jDC^KU}tmJks^#zrcUmv)>(c&g50`E{LB? z2KA|}sjBOIQ@MqHGVoFK^U%J9jy;k_3`OEP#r?+YBFc!K;=rRb;PW0!_T#8&$1j@q zJN^U1yl%6mkp6a%Pj^~GDMzgB@xp(G7iP+P`@4zvn$MN|27pU^)N5NeuiRK*4vh1E zww#4;oyQN-j#rJJ*+st*<3a)ZJ}vRo$hz=`jC6C!^50=E_yF?URCtSYh(3OkIz+~h z^AK6Blh9|$uC8arpPiC?{u=28$>;k?mmS2JzgO9F%`LwgKT7B@yOQ}B%t>D={uDGP z&WJF_-8?^IO&Lv|!epDH*guL-=)LTJvMofwRpsOnMHl!lSffL=F(9x*OG+{6(}qc)$cD^E-@Hi#Cg;&g~CssFbHsfztQ&+Lh$akk=0I_82c)z&yn4Y4XQhmT#GANi$x1M+jrq$LBoFRJ0^Z`=Q;Z#n$|cSCKg(pF_2Gv zCGfkrAB_#uOCzQ59?^*AfM`VPvJ0EmGIwlO(w@e41vrsD`wzVP|C^Q;(+BY}%^k^z z_>{!H^fUa4@fWmXIWPwD36x)#D^C-rwV!<{*K9ez`tN>~{(is2^s?*m=Ert#mxsSx z^3KiYZJ+Fh+qRpoG&isN%er8|U+lHmO>^5vW*Ep15{C6Vv1MRa-WkSLavtB9J<#YL z`5CfDTmi4DK>mOH0)Cj2xi`c|Y)|-Plray2=Lj-f5qCO@zrq8FhjCR59)S*ucm+ux zM((#bB3aM1Jq+i=0l1g!uNcFl_WBYEw@GfUnj!hmSq~O*XR6kn)8dctN%?9VB2OH? z9>R~I3VBLvU!WE9~goA|dJ9N{@|Lo4(}plo!2y9=Iwg7fhe8HR4Q=_=U{Rz5)3!1|i%IU*`^Z#t3HrLF^B%^=NWOsI zxIIX0OyHVRi(KfItsYZXu02oydzo8S{jSy;pQI(?Xda0ya%2|G@l=^s{_`fZR5(CS z?*4Re4=8(=>}><%lVXGP(!K1B=iVBy>CQU8z$jS@Ui&|Ru3!MSIj!5lO`LhPhH=yR zX02!9@$%miP1O0KjdwCm26VfQy^r=P%Im(5@;-;PNdLvh*3n0mQ@UtL{dD7jx%|u7 ze-G+~-feEL!46u$deeoDriyuO+k4^Po6?Zc7PiiH<+Q5Fb#3z7(0taq6ZILy1LApp zyL^B)*!!xD?eZ%wDFV()`XYGkwFtZ@?XX9d4}8pO?e-tpBj70Gp}-5CouL~nG1?- zbR1umA7~!=pnKZMfbK;XicMtenO>+`zuX-A<;aMwjakfn z6x(APGT$x6a0iOfXa7f53Yh#yRv-rmM)X|15$3Xi@U;4Hd{HZGW zukrE5gmcH}lK$8+xSX>(ijOW|*Hie>Dz=5r?DU^9N_1YQ-*1-a3{3wNvqW-MfUnl5 zxqQEi?k$cV_^Z3|-R3N^=43*C>ZS8_hJ6;#k6ML}FSzow5dZrX{0DlFbGrSdC9lxN z=_#cpoRQq~Bk28czQj7)n@!!?)1Kw*_p^L2Jh`BEzc07vCC;b52;b5%r-9 zVlb}Y_jTmIXV9tC!cX+>1Z|ZedkWX8e>A`H34aM#hXy+C4~;{Qp$8`Qh~B4BJ& ze)=;`{e0zAxI}$#LhmLzi6niaEAfrid*waES|a`HS>V_CDCx!ZuGLNdM7ZsHN=Glw znu%}C&xgbUyL7zaPmJxwd!4bi$Cm#Z=UKq3an=}Xe7_@KAI9@EV^x+io{Z&?@$4Z_ zCF6OX@~ap(;X`-Aj5PloI^fGs>qRBB@=E14fa^X}s#JBshI9v-3g}(&2V_$3Q z2~z#a6W}fG;s?BaHi@?ccpFFuZ?~u5?L1?l7&k7?>~jP;;knbY!*l;n&k=wx`%Hx9 zK^OSRVm%R#ECXK}`t;|YBhWhP=&;3KHIC<~_ab$<^;RV7MYhgf>N!L3P44MUu)oOI zguIm-o*SsFnj7KQ;I4h%@V+%V>X(^243WcrjT%@Db-+hH$v_A32{^BBRZt#=6lHrst-vPa|lJ6>M8~Me)k1)zFx{ou_ShTSWc$Oox z9(ucfuj<`Ny;hppU}Uhzg6~UrDHyK<#xi)3#oYWyU<~v8Jnz)+)Ruk8zZ5vt)=Hj{aqPRE3_cFrp0l|re*KNe8-3tie*Np% zNB)L3dZ^<$U`Kb^_9>nqW_P0PyGk@i~AC{_(?{0~r54&jCozbz+w%k}@=B#rpbzO?#C7 z1$^bG^N2bxw9`bdKG+RnpOX)L99cuw{n{<*ToPW^1z~1}0`w3z_ zc>R+S3zGW=@}K=QIz#lW+J_}pdD1@n46egN^+VEu$@fI-c$huV zI`+$Jxl0K_B6*im4(IrZy~^2f_B?WfKR4_yaZd*vJ+hFk;h)kF9=j#;32S6dx?w-%0zH8ODdin6PeK z7=34;x&vFJ{6Yhy>3cN^b{JO`37qwMzZUsc<7d&y_Jz2vjn+e!QJv32Ep_)0I+ z!S6GCr7Mk7=N`W5Zy9OJ_(sOz>ywOUFmQ)2`UTw$DOy~|dyD+SZE8O0A(ZDU;Prdp zIA$2_-{AXAzW>N~3*U$MBHOm_@fq!V`5Js2IaTxB)f*}vzQ6Tx^b-X}xUCt#CD{dN zcUy%o-1ZCpr|Rkk>v8oQgL~xj@Q?V(`6Y=F#;iimr!V%@Pl=}m{h{w{J49?C z(zj%we_NbmjBCY@K>4gYbVfVFzFTo2cTdioexyV2FJI%CWR}jlC>bA+eqaNdW@gZ)&O4Y7+j9-=R?FOdUT3n@))6AU-uQQfK7tgXM;sPYKcS9fNVzCIf@^qk^TH`3>FU%K^{e zS^cu}w}jhtZ=tKt8FH>%J~_$wBfWmb`XuhB-?nLV2Kkjf%hkuQ9_~4Y-16LHd`M^` zn%h2CI^3PirG8}Y3&d-TXl z01aG{SN4x&UheLSVcRMucIB-78;zRpvnu!1aA@WsvgNI(xrP-!{1_$b8)9Ohv1q#F8;i2DBmIaFBocv zfdT)$@wf5rIAbiFxcJaq8SsU$?Ms7x5UKOqGXD4w@<`80@g?RC{AI7sTU&vHjl@>y z*#+K;zUteNxS~MuWqYs{FDn>rG_VGAF2xR{xdJVBehHbGIo_I_ubqOy%U|qvQ{uPa zKO9<1Y|1!skXZ|B&|fV3XX0SHI#~Q@Y#q>2#^+nuQ_nG%>V5v$#sVj<#RKRvqWq`a zmf(G9efpib_NG4JD*{f-7?-WQe-R$o-*2{@T7{h!SebwJolHgW#J9d)+QOXVf3B@> z)cnat|8x&P5bb zs(;@I_ZC6_9q97ZRwZ?-&IHdH$#w&jciS1kv*Lt^58Lb9W$lhhIg@&#FWbCv4}DOa zitIUz!9PLA8uQ1Y6ZP#4`#uk6f1~jq2j6Ed%kDHzYq#Jr&KP}lFC!;XkII~)jPjna ze`R+WdL}`9(4iNvzIj0Y#U85IS=p_^Nl^UbJn=HpH#IH>A7%IsfRkBOdWL@lc}DNm zS-}7Aj~WU)akaJyo)B=p1w5OmcN6w5)y*0*5SOdW%sw)n^7Ck?9r_pTD<0xj>XQ%r zT4Zo1w%YjCr|@U2Ll$_JIjOqEd%sUR=X}`>3Fd1Ax#b*f#Ti50yU@(L=r_Z?amGY)syepwtarlGaI(AWOY73M%KX(yuiaI0p@Tn-hjj+Mpb@s?%2d!F6r{|T zp>W-k0vB?=9h1pxyBHj&l=@$N@A_A!)c@J{tlyDqZMiE+=UJ@1!pnapWt$3c{oCZT z`k6&PhwIydl(y&b-_8%*!{wiol7FTRD|fAU>^L8?$I7K!;luSoaqcA9la#~%pG;>g zGnglu_jSnP#6i*cG7pBFV(Ir(u$BfW`)z1Dvb(fzCS@hZ8^}zOiw==bZBC<2wH4tvgZvTN{v>(#W2@Ky z#XMJ-x4+$mTyTMNg6H}6Vuv`#mpEYBXFgWPS|A(HuemQnb*hg6>buTN+VFWMwkK!W z)j!$|IC>e)k>TR|^&@w>@|5CZUGy8atQd!n$Dj1IG@}ByrAo+J55}^GfTaWULN5J|Mmu1x5>ceDQ;UctQ3%_R8JRX>h8^ z9&PZQ>J|U<&ROk+UIK=M_$hlJ@U&fJ)L*x6D(8N@EOK`-0oHca3-3)~~mH^}AF22>Zyp!Rw9Tsk+_%Y?sPwCl# zF_Zf(vwAAP?-FQZ>zC4O+^Jsgd`#^h>+6<^5101cM48$Tn~MFhrQ&0yePR9oSn~ga zH}!o){~t_q-fzCCZ?67t_O#*IGo|)3!k)sYpAs{TwAjL+*g>Pts^= zz18G%@$KgE)+7JL1nU*wE!K^twx04M#FJAQ+n>t=m*mj*f=loJ3i&6sO&2aN-P{Rm zS);K1vz{gQ^pCpt9*HNI%!|i+obvAF~cGLpM^vn($fj zNIpzm6Y`Vs%u# ze`BX*>+9@i@(%JzXAL_AFFeVZoq!k0W*-4xm3$NM$zQ-*1fxrr1NECmi(#5AE?yjb zcECkJ*hQsAOfmHYSAwEBM|hL70& zGuk9CxbVb)M>u^1f91jX=g3L&HHget9A4xl=Cuuz$CollxmxOv%r{ElJ6nSIN=kPm zeUQa?XvfE=bV9l#wU;=?edvwqpi}Xe zUr=WqI?Alymi8^>*T#!S=k+4K38(NgJjs4X_f<(I6JHk&E~jI#adE=3_s0Lq+*ALg z6AmC7NiR$csKZO4>&O4tzjwI$ryrO9!lf}tA7QK=ygKrm^$}xfH}MM-oVAi}Rdm?J z|GA7+*D516(*H@;5H#C{PnvKppc-q3Z2pdG~8&`*qg*JR~ z{pMtxSEKTab7e=U!>`vqqek3V`EqnoUh!d9y5$$<#}p^l8za^r#;fvbEfpVD%-JaW ztf|o1i=5e-!moI$S)e_+)r#{8w2OZmb&J-zt_^QUJel+%L!aQasd;5k#_Q3{`fFp- zeci%+v(Yo$vshWZFW(4Mi%&`qwj7`RDYC!Z0$=<%^9npQGY7RESa0~2NY9+X|3j>) z;g}PLZxi)IILla28QJHq2i|pGdl&phw~3B4zE-_-E7Z4zHG;iN7U$<)VCtJ>ysay?yz+Ci!&$}p+3px75HYiLqm$AsAus0hBdXcPx?E9v9`zIfMMVNUdI@7 zCq-KsG?hdC+C}JKfTQev!jamqE7dQ@e$uxYcnX0h%=dfJ_fW6k{GasiZS+#=pYSyk zd};r!Jx4Kk>jHMWPiAI}*n~Y5n%}&GPi<3Qa)xQs8BfPXlYj?w$p)2g^u?he_yl%m z&TCIWXUzW=zTLaiifH2v3p+*kle|MNkuJIWT7&pIb>*2sqwUlK?9;I2N3>?vUlo&n z@8l`up{c7&u zx%)skQh$Y)1ok8GYW3Hmzlz6DXX8H5dX72L#XSlJ_m`aEIict2;l9`0=Nr*cy3eza z7u@Hm+*{{97lA+b`J>^!Z^UXW)%>A7t&} zj-(3a=>1nXauK|5kJ3%nx%)`d7(Prt^t*$8r`Bzczx3zG5bpZU_zc7(N!qPK&(dCV zvb`?GY$bIwc6(_5v2*^qM(LmRo^~Hv&btcc7<$=G>~-1Z2K1yn|21<`a+2}^|6cNT zE+a28UgsKMJI6XKz4xa{Yo~m&zRtz`mrTJqNX}Vjw_Z(uROSnmv0+WhRP@od1)j5U z>D=#=YIpr$LSb)(NDkZ^?Q(v-z*Far&0k`ZD%pmH7~5l%6_XZ~egw|DQi@ z=dg{|U1r?Q@UCK*aeE!TWa_xROkTk`!ZU6sNK@b3ar+(rz2o*D$-bem8g|^2SN%;L zGlS1?bn4Qie04Mrni;qMq)m;(Oy+^ct(0*SoWs?dg!7@t1?Qjo2gdSo`l~wh-W|(U z@~ED}z^-%28q4pJ=I!rJ)#Dk<)ye+;lrk1`pzc%F4*4^yKki5Ua_1d-{5OpH>te*j z77uyUm}=Pb+ua9gU$YU~uY_oo&G#pLBE7A>REO- zZCUJBBOe@$;o#N1rIr_;1Gc9nA5^lwiic~y2wux9YYW5|;CEnE3Fb$L3&b89zB1Hi zHym7covf9rKV!qnUZ?Ji%htW^GId`T-Y?$tp77$+^5?<3V#@o5_n$9Qw+-(l_Dg>& z!S~TWa_=m9LhbE^pKKdH*{vvq9(^47BZ^(ZmS4dCp@Zm87!T=)o5B47{)-lowe3Ew zCNF2y$2TM2{Ej+@v(;%_)Q({WVujGut9#si(eU~jt?63ZrLTF)UMmOnHL2rplKC{5 zeV|?c9Uqr2@eRv#_QEE0Xq_ow&uXW8_RqiPj4^XDbRD|kEaP%={ZKxL&HS+lIvVNw zg3Q@0vrgv>XwMh3dB&X|w_{}KOo-bybh=l0vdQx>Yj6d6KH=|Y%n#_hxS2A_AN|wu z4waE@q8)!W>21=1&1=&gj@LNje0h5dy33>ciQ}-RxhXGty)jnvV0nA6M|K$5=$~c3 zN5jir;!a)qWXFW|?q%ccPJFPI>m0lCmEbLmPV(EpcNn@T>sxay|6=|b6TEQlu8%uz z?YoL~C#rav9ZPGZ&fFVqFc+-@#cFpG<#&#Ecpz zY$iI;{82{9edKK=o^hO*B@xQ1UHK@)eMb2tbe)y?la|gU=HlD6b)ER3#g-S{@}@;h zk`vIY@^_H`5byGT6@K%>W1AY~a}ngd-fbZNYR=`XVSRyL*?Y|M^dr72ToNHo`h!oL z;hr$g$tv!gY&WvgCX)3AeieQwz#U;ewP$v9o~O?j=zEjTsF}{a0BSp6nwzJQFEaID zqvGmJBOYHBzsp}TYAS)T%$$&!!T+)=jU`pN#$4Y=jjTdq^x;pjWaGvD**Vm$`hG=T z?6x73|DvI<@9E#ZdVX<3(2swJ$v(My($WBUo9^G**n)qU@WlD1n8qm6%sZmkn~TBY zV!w4{9_M6Qg-^a^#CVFQa~>0$8hgr;+MQRNSqx1C?yKvJj6T%38Cx>(?|L$S5ZGaX zZ_Z7R-9$d|;@X&bW*T`njdJpO^DIQKt#Wq0BI68pe>P*cSN!GiNdePyPXdRN? zT{Qo0_OVl|!)>CmbN=z6vy9a<$PKbDMBeHzegvDL(u6;~SKPn58M`R@k-$X76&PJ5 z*w&uUpR4t*7Mr2goF>MF)n{y&cTt^<7L5T{6L}(Mj?cA7ix7ivhstQ5v(y_W+Tm#l z=9giHFLLKSa5?waNPi;!hYfw~^T62a9~ruyy>5c|dT-sJ`>~DCOG~k@l5ZDz^3j9z zjBje(&)A=SzNsE49e>33t$1?CI{#jL1>IbzAGi_+oALrvnS0_ZPZrsHWdnVC z$DbCW@2$V)`7HN3$I)ZC{Du2CI77tUXy`?}yaxW)DOpJOuZqXK*VyBnRUBvC5uUoi zQ^?G15KLcW3^hmPTg)6D5}&~bEuSDAJ6i1d$C%fY$7i;+g?XTQL=T6U+t0ukRM$7C zD>}l7DNqSdV7|f=vRdb(hm3f5f?`QDTw~0&{Nc{PfjJG!M;edKG_xBH`?46XyaviW zI{C3stkfTERQbOnMqwSksTJ^^4Zs*@&n_ z$t14kgWynemA&Bj;l}di7aTv%{IB&a`NHQv|9OY5hS&e@KAi}8r?T>}j$Zcqe2n{LKTX@jvovX1Dz=t=tvt#u2)1(TuXlFB&;2OG z$jUHpyXTo*oQt~*oE6+f=(Ls9nnybui9_J7A#eTA89&Xn%jw4rK9`J}eXj6QUZ*{i z?&I!;?}*>cyU%EmTqA$X7Z}gC;dy7^RpNOU<|KLEDu?HZKWPr4qiNH8*8DjRpPRtA zclZKF4iInTW%T-*KgbI?+CQrd{)9{BjWurkz|LFmISh^D`vcXR8Pf=Ur0jua z)t=0s`x50p06flJmEwo85oEXCiJa;1&GD@t}loo5$#IS4$m?be~c7S8*Vd#i5o0CECr5^5tv%=%>)3Z(2CL;mC%{-Uz(sG;6!)Q~qS?D{I6NwVC)j{F%8ujl4R; zd~ic`?-K3^t$_YDZ;xMQ-uC`_s6ODW<>r7-miFvXWDD77KJyXDY`L35$Ty3pKHs<+ zIpzWCuAPkCb52uUh_M;VU3Yc(m^Dx)LSD&CA@bfr-ljrF1}Xp+*)HV26NI-|h0ixK zo<~Dw=H}(dZ6@}B{)0};&5m)4H{*A0*RhzjT=HBkGGEWgraa{9aijTA-DXa;?KlBrl0~ z_{^NlD7>T|UQ)oC@g?+R%msT-GLAOHA6UoARo*Kvl>>wL!+XK{RrYL-+=^_4EzgOI zG$>m+e3X6VT|?)S?l=_Rlx^nLfU##b-#Gj{%3R_ip*`@q4L8$%WMGZRYAt+?I9IF@ zLF|QL*$X+RRS)0mfIs+41IT?@jB74yQ;yB!=HO!!KqtdIt0{P_E^j9FmHi8Q9rQkH zh{F>1g%vw#Ly+_qp39)Mzzf~$H~D*KFW~-p_)^U$ssFgoU!BP>Fr9gcIrpMXKRK<1 z@HE+tx_~(%*@!a74;J-239ZCO*nP3@<}pamrVY)Lh44JdgOUZAhvP&?-g<4jBk-&4 zrPN)4K25YPANUUXnO|h~QO=&fsWGSwK3;wdTzfynymNgWw!#P1ruc_3!8ya=<;g1V zew=ah$St08^~ZoCa_4;6TV`2d2e$mt;%l6jXK!WV&l|bZ*JcpI?T747eocO3rVV%J zFR}ewGfVs8@Qw)i-Mkg>!0(gS&37=Fk2dxSX7Nh;za{Iyh}a?On`36g&*Pok^Jg9fSp>6`<8`Ip$RO7GM$ zqqMK0D$=WaMfF_Cb1OQL0_=lfbRyC-35I8McPsDj2Or00n6?gZxN%n-7U%lp6JfL) zu>#Y%AK6al99U|4hintjyKq@Fs}w)b@DGXG*VDxrivfG`QqTC?=UVpJewlWig_d2X z{2rupN_;=OAx?bC1pB%Ob1R#3Qvu`e%X5$inli#QTYtDI4>=~(sQ%KXRey8a9^^FL zX_k9nYuN-3xRzuu*;YJ!`N^#fd4NzfA~+xpdG-LxF^zk2-s#8X6yjQz7RCX{{Ku1G^kj& zmg480G)jWd`@Q_0gIB}LYbtnOVb+Zk9|-d+nY)1BV87FM`H{q-U(RWq34kXnncfUe z&<~7Tn``uGeU&WWw39bOeovaW*x{3DSI;;>n%>_-ev7z)f<=7{;I~+by(73`U2on* zqYc^|+cd_gQU412oO8SHrnj*9iAR6l1%6hcACu3O=2$j#Q3pR+$(p>IuYAmu=kLiQ zx)GncM4xV-FLQhe1YujZ2OYh8d$RY09~T^`?X&EY}# z9C;`35o2irUlnxl)iZfUugN*xv>M5?w6(=L3cue_xt=vOL-Lp8>+Wlf4U?(AAAgq< z_>icr%}&3HS+6&szsS(IslT=@{t~~6q5Q+{Q)!<1RQ@de%T0%`-XA_@EXm#B^0_-% zBSiP{gJo^(`Nr0M*r-8{9NTixYTHdLJHa5DQJY!d(rFvpP|EodwPn#(;H%-S8MIRX zeJ+BQ7s6A5;wedfB3$X?tPfr}(HRHvwqwA8Y*_5VUq(IRf8(ha7?-p#Un|PT?-1YU zAg}f@hk$n`a=hTx_zWjYsNKuL36Jx_DfnC;f1O?ATzy*r+jnRzK2EI1Jx1>w@vfg? zZ`9sQcwz3;gc)B4hCv;?+I9LnR6pJfjV1hb4_SfsM%^F$0J6OGRdYuXG^p{CuABY$ znVG~O6%M2~7az9u<*e`Oe^OumwDjeNIImIx-n8HAWn2xOhv>^GBR=Qq%S$+uA0^E~ zpAY<PY40PM{{nt##agp>Av3{~ zDl)=-FCbgg?qdITzu8ht9KugQXHjH0OJ{A7htTf~$^WZl{xGn<$g^N)T|a|PsLwE) z@+7BeAFN;9RUM&j-Dy}blKN;5Ty7B0O1Ej+_CFgZnOm|F=Y2vWu{Y*Gzq5eT#<$1* zv5$C@uktmp1<5D168QG}0zH+?Yj2;vlZ3IESVcd%42&(lOJOuPTm3h{_!4)r_`$Ik zt`pdaEZ_ofd$m3Uf$KN)!(zXOzG*<7yMX^m>iD_ilDZ$g+?cFM!tag=%#|@APVi;M zB$CVz&3D#broY3DN%P>ClxR#wQl7mVvB|`52FJ$Hg^Uj!1P8g`VD>O$vxISZFgZ5Y zCdcOZFk|!4B&^bZFS`t^hlUxOuxD&sINdRF;cFabjD9`L7^Uu+o$(n?K5%>>Wp^TO zVrwsB|4I7j%HofnclN{g(_ftr*1FZf{=C1|*CKz9e&nqV>?}*!FPt0c#Pm3e{ZhV& z=RSdt>SCkhqmrd41JBs2{hPbzR-Se6dSrsot?-bucg^Px82jvB_6gw8d+jNagxzzvtPd^IM|ma03??Y@LO!PkO+Kz%v0jC5Qc%Jwy}nDR;7#et@*IpK;;vCeqG4?ub9Ydd2$Lc>DTfpOxSdq|V+El8fC}XXpyhO33UAxj6)q`t36;H^Rh1Z3c`t9%_O|Bv{jYl&^!*ejlN((yW3{a1gB^{Bh{x^B)vVSUaHlg>JDDE=^3Ut$J`>68lJ})&rHsbGr4`ZH zI%H_{`q@EG-Es28shc)tBcniDoQdPtGO~_vyA0!E)aV>`*A#3)#IBHzU$Kb#Mn)UA zz$?lmBc5>LMR@pp`N=6h&Qv+_4E&_EAKjDo6sa&t-zJ}F`5^#9aTjx`0~rQ*Ltg}z z=m*0s+=+2yF5^pmT%VHO(sfE_!$-9A&%-z0?<@JI-&4mF$7kGfea30ajbn5=pShik zHMz3UFTbGS-mzAc<9EUN8Z*{)%om#^`bYOCIi)M> z;YN*Nep}LJlt!!oc&`3SA8B#VS%UTk=Sf!U72tun8oG_UG!p*#vb!Vm<+OecT$BmN z>|-P+o&c}nJ(3gaF7(gZJUQGFFf)!!13&rxOncnXeZS#1Z-|9QPiRn=HbTmP0qooUjyTs zn$J6~DevrYT_F3Y{5G;%=b_82pe^wO%?-)8;?v%9i)nvy{LTjCGLOHfD=QOYIs|XD zWnadj*efH?rQWFIF=P^3MuuNW{&e%*MEu~gyc$2l`MODI5~-!2wvNQ@TL8j_@j8@-#|D04+M_du+=+sDw%fKSHs746(H|0*F^Uk z*Hrj_4*a5B*;+(DXOH=8o^|$^zoj3)aK%mghu=X@z@W1wL+I&&Bt4BBo}NA{dLqvN zJ*DRJ(o@R20Y0&twG#Nh!aVP~7MbpWK&%VI>?>{kxTAZJZ@=P{{|MSDV2mbW zM~Jc(2GG}qJ|6BXU17vJ&_U!BPKh;>Ucef;leKs8@z|Mp|pSuAkF|4z|E8*TqP zI8!=0fVQzbd+WR9b7`?hSnnFB=N0PNY^KGcQxC)=Q|seR=maHSslEv5wfEJ>YoV0` zqqTulzF-OWO{YCzn&nN4+kRs@8*KH2;fsrqg#|+<`8QEE#BYSYm9h42 zB3=K({Qnqrwd1qk0|(NXr0Om5w~VPVkn8fB$Jn-&{Ab40v{QeX+S@rTmjCN9@aSk` z0Qi+=te9q>tF)gBr`hK!?dKDrfpe9PAHQ?%QEQd-1fsJGzwO`7y1ZrH39GG^Sm_67 zCkTFn{9ni%3$Dnp?+K|LW87HCnl$8Hsl(Gn)2dTz4SVJr8MlFak}b1X(-OOrGz$HC zd7jou`5RuM2lMFF#8)d;8Zps=#{R?LFHXNl>5RsFqjxj3Q#;P=t0qtFL8G^be6_jU zH%Bb+BJ?m3e3)9$!)%5osz09=3-CVmovlCf=&lSt1M^$_kokRgtLFDrw#-w3AA)Q) zve&d{*kgnKH@U`vTYH{opr-`hZstx97?8uq=A&;z7q~1FKA5;GTtXc7lJ2{VSd{hk z74n7B!zHryDc>&e*sw5|ESFJTNjdJWoSQ&@{yEy0UGc@;qhfygbCR-!{1>0^MgQ{! zy(fLexYE9tcBjRNYtxp-f1UmC@vD3z@LL+1&l;L9?Bx3+YwvZ29qXv`HQF0Z`PZrQ z54)|{A!7Y@BYRcOzpi0%<=@T?u8_X>su{r*-1$d8x(zG&?hDCxlk9g|ixl@rJ|CH% zODo~bSWNeJ{ebcMB0B5>-g93;r|_iqB45L1`8j;LBqQF3kKO!W!8N$w6FU!Xg{X*e?S~5#yR#DeCI6m zsyW)9wDG%i;l`Eje=>0N;=P8=|1}3rvd1dE%2;~JmNkht4&S>SIa73gjbugUgZ8i% zd?3J?Ui3B9D;Q_-e&%ep@$tIOa`w@p`NthQQD-s#c|R`9dzDAtj`=>$T%eBa@&4^6 zlK&+mZ?*qt$uAV2x}4BICil$yM>unP1$?c;;ibIKYVBs7qw!e*+ECpFb-qczwN|+Q zTbOG>=9xE5k3b3|?&UyU+}mKs(hD;NV`(#l(OaJB@GU z{AmsFj3we74&S@R=54pgcLzRg!KXvu1Kvj7P{ZI^z$1 z%a%W)^e6hYZ+HVj;+fvXI- zqCN*M?bTg)#B*JE7JA?*;@O3#9T;4ADg@8^3F9YH>uiL9?T>i6ZW2OBFH<4?eY z`;q7WfZo%=?I7G54|^T=`0?0z;J4CM2>)7#S0~rud9)K@pW6ei!V8M!i!WPuaC-ZC z=Bn+l7r0ouH3WTEr)M-oOwQB810p86XY$SF-6{65?mpDr=elQ2MEk_E*e-j|dD^sL zDRf}b{17}kBPPAdLio1UxNS+;rs+TLuLdli96} zPFzAeo}+9Bd+*QPp>+8^weU`L%dhB5<8FO>7j^AI@2zpK^JO*6f?vEloWt2Ooc&Oo zxtCl2f!GPoRsCk8FGh?c{N8=73-8*{OYDkP#YKGr9^1n@Uqvhl;vOC@n0~lX{u>qC z`^wJVb9IseaG%x)2sTn(&t*~6e<5f za4`OkHN8HgzFhWR`qU{Mnc>pk2=pmQ--rCaGVNF^wDX2pXvR(^^LDexXU|w{r>_`H zKSg>NS`|D&;IXJ*yeYMfrG8^?`=^Q;1%iHCh*3NvvK!av<|V?aYLBZ8$t}Np$|WnLbw#i$pvJ_$Q>wR`~_~XQz7OV|(_o zcDp-Gr(Nj5Zj-T)yrwoKFQ&HXwpBnryDiTi)y_-oB!^e!KWG0xkn+Di<^RsX|HI8+ z`Rv(pumW=Gk328UiL8d{2qkYiF=Q)BI|H=Nce9~#@li7IBS~w zPP}Y5o?`HE;2LheIx?%|Pt8vo&YdZ69`MDas}!sT`44bJ!Fz=xcE75L{pr@f|lkNOD@ z+h+H1g~O}8W!-Y>FL1x-S*XGO5B1Bi`)c~_F=1bm9237iCSm&dU-V0KTs(wsIdVt4 z@K1X@>KG64dcnL2pIICK>~Fm~O||cS;>3qGp~(h9Pq~i=+6{aUAi*Sr2OjK z`~&pl(I4v^SHiJRypaWu6(5?#d|$KD7puVD*$&Oyd=!2jPx`#oZp`m>?=^7gemHqc z?YVm=8~^o#>o%~zVcd}}d&ZeA{9D!6e$O6WFe^_!dE9#0ZS;yr>{eHzZEXkZ*Xa*g_+JzJA6tEZ0kZv+0d zw6AtMZ1^v2SFoO-O}DL7J*AD~zfK<#f65z<w^%+UMo9mo5{p_wZA#*A?`!0$iyL z^-KLzzr6MdyFVU2syv&}wbH&#pNeN^)97D++>U3bI8VycN*>X=U7v? zD36WqaEP^Rx#`f0=vw)V6_@WH?;q9t@YbU~tFD>Um6RK88(a`t8?NuEeHC3gJpg`y8A#dTAWL(_p$WPJ3GIY38NpeOa=5z<2xX z2=*V!*!Om+yuJT%%ch$;M_jCQgL=Qk*fBS6Y^SW+E0h1L_J(Hi-ctF8vnLJkzm76_ zz-9XYdUOqg{c-&Oox5SgzwMYq`HnpxCpn&3_+++#_uw7#+txi5Yky?B+nwfWk zD~^7xm0#f86L8_C&t<@!+UFC%eaN_dju&p`U91PWpcOo{(5EwojBxtjn`x7kI)Bb*6QGnm>-Topw&J69?ab~zf;W64uEMUAi8?Es1Kmi zV%@{f!8vRCGh}bxSGR*tleMOz+=z|+uA`F-FlQsQqc*I7&*poj(1h~*@;lCcUNoM{ zJ6!xYb_pkTQk-%3#;j8xQsdT<=h4f>t$W?6EG_c-+K3c+7Mp07g(4*tF8hX>`9v&bT~ z;8yYyV}V}6hu@(ile`K(SKvb}J~$d&;SW)rm1d01YTlZsJsdiFoyG4Qlqa&-%V|H9 z%X*&E`lEq!Dy##m=3}eY*{4BW$>r#xf_3R%Xs_bS$k6crMm^u-Ja5 zg4@c6@PQ${OzT1EbUW5l1$7kEq{qHO-gl)J_nbC!(_Q;*TECyT)A*JNMys^IuCohT zj?l+AvL1Y{ErMQE{cNXg3mYUb&iZT4XjV}6=kPl9+xzae@qS^U#?^kzMO(|KN?vXm*+Fa4iFdxCX5_*}OuEd{6J?KA9k z;M5Dx49d2X_91?SyrH`qd!Hw(|HdU-w&g!6Kzi+U3k5$yx>`1h0oRQdd>LQ z`f$c4^4U^*o(pf#?l#psI$7@}_Pc?&CC*$>oijN@A=>-RZg2oT!@&K#o|ClqjGmLU zcT~^dOL?B+S-5&H+WQ&#QfY5LX)Z3_i}v=AcR1P`T#uc;eE3yI)=t_M9+k~QwuK6C zv=!R|vd-Q*=0^p56u6%@iHB1+-=}lPwk)J~5Ag07eG?AVrdQti`)9>By>ftyL$mc5 zwA{=$n^495oHgV(L$UM=yJf8jYw{8Q;MW^CL|_Z{hL52g*g^LgKqzSfsM@a`Svlv`)TE_|=} zU-3O`rTT4UkIL_wjp?zqD@P2JdCgO14e4v=j~saS2k$%5*B*4@O$+`m?>o}h&d(Sq z_k#Bw>1#I*zU%b7t0*t+dy4-Rx0Uw&QonbW_8r#mXG{A!__g^+%HDcqQa+K+dm(4S zk)!uya8Fl;WLJKdV`JF~?hOk&9$$PHjs}P&9^jqc>#lG29GmV~9O9Q*o!0UWva4)# z^LNQl!8rOh&-l!ukCBgN-asr~;(8!^E2hba&{v)TukiCS{C=|W(~zuEge)qXP9bup ztD|<~@xn7gC-GC4uirY#=}egJ+I|)}CXT;qpj3X(R!>2FQzJIFJ^99!XILM(e@uH= zqvsa-mpJ~_A6{|srepgA=jt1dK!Y*q+oIq8wtdd|A@FDO8u(-UCp&CAv-Z;R+g{2% z+C@9A?&S&U(3xSKlXYP%1SY|`4>(n(*~YK-UygnNdnxCoCm~14M{c5RA5=c}ZlN^# z!kz}bH1as@2hHXCT7dzbN40ouL8)={FM+RYmE+H{$e-%Zk{w!3f53n2<(>W8-92tIY3!Tu_l-R)9GLB>y~sy=0mT4mXa06jkM>u#tn}vcxdvy;bI4Ob z|5;D$Gx#R;*mY6{TrO+k4rjfWT{d9nNvk;lZrnU|JiB?qJhQggd-~Kpz;N=Z_JpVW zY0#$8${_CzQdT}*9qo!YGotkvXYbP(A3y2nvE>WaN&TI7bvtJd76DHww6q*QR%p4T ztew~i>{;iv7xhGdWhwq7;$zQHx9YX)r%u(aHioPFChBI54b7xn9XvXhSSIVJdo6g? z+_Fdy;x9}6ivJ%IjxF-Ui32r1%~&E>MuBVgP$ehL-Z>lDH@?XHdyutPx}q}1riD01 z8Xv*Nd6E+B0CV$S0^gLgfImo@jo+WU_mw$&@lDvTkt?#RfTfJ`my4IPg7=aWGMg{I zCv$CK(yvNBj$C6DU(4^c{9^N7lAtdZcIZ%AxQ+9jHKGfP=X`8AI)5SkraQ*sQ_$Zm zy=P2j>3*+3;Ba1WXT~J$W34oNM>wkm?kF3$q^xY&_y=`1r5iVP(avkSg9@Jl#xj<% zzH;B<`pj0&W+7*N?3qa5sYco1Gk-8I2XgcI_q0 zDI*(qD{YGo=97-CeC+6K?9J4XL7D5ACFDw~0nR_*`B`;WK&Hn^tJ=$zLCEJe^kMq2JC_nnlC>HY^+H(ZaaYOG<#3MI+{9P9BH&M zU$A$g3!eI1;}3x0_$csM_)O!cO{>+<_;e&;$V|d8+8iBH-LF$-L2{g43q09)x;Fg7 zj-UE>97l&tOq^pag8zYvA9k2lLtv_Z$7{S#@YNa;r`|_68~PvQtGaK@j#u@rKG4cK z*`t0}8i5AlfA!#paCDKGd8CNBGKMurbaMrLx)ys_g0kvsh`yFhrw;DD&4eZrW_l(x zO@Hs+Cw~WxTbVg}arM-OMr-|b`})n1)l(S5+R_j7EM)wl$MQdb1M2OJQ?`|QRlbaG zfI6nFkL=Sp@26a_bXr4(c|}78^?aJP9-tn<_zJwcgK}B*Sq-@oAdxwHMVHP;#_ zOZ=CRWB?!ihQ@5T^Vb*c(|c$O7_DmgjASxrdf+vpvr4-UmHVogV@j7lh30wcTojK? zO%wlpH#y=%@QVHit~;uAv1_DpQ8wKZHyCZ_{b{XlJ@0RkkNZ3D>xa0LPkO02;K&+_ z-tj(1@2GnRw4N&8a;F zj=}f#);<+}vqE$-jlK4W_St3ZKYTUQV#ncqiW{WZg$Ia55+R?~XnQ`9ek>)9N|d(b zTN(M&U>ubQF;bqVo_zQj`>JKqnHu`#40#3PkUy3)5d62>JTVP^uQ(i&T5Dd$j=s^D zHIq8ixKGA@e_&dym%WtzymMOYy!%`~SZ)>Ny6OyDzr>oJ9eF$a5IlTrVx)o2;0ynn zadFMDZqD^CFABdI@O5e;{)YT7pZ9OdYl5$!i)t&PjxxT}sHbN!cXV`K zS+gn!9M8N)a$4K%yt91G<-H9f+Y(zxwq3`ai5aB5!uwZenz5EUs`f?s>JEfb*SAYP zRM2Pi@Rdt8@g03%`qFEm2Mahxm?Ia{W@oVQ7mexAZ8vp9_zm6>*%wm1*j``sPYng& zfn_-h7jH7T3kN>99C#D{O?S4KnVIu`W!8+UH^y4r9o7#o)A|uGM`zCF-SMZ)8s_4% z|DeuaqGxJ?C)c6lj54R0|4Z_@?{*`!ahi5NMVsPH^8eI5xJpluZr$PVLrZ-((=ra3 z=@}VQe~}j~{I9%4@Z28qRNZmiKCLyXUo_dXINYX~M19;du5#!_iq*GycLeuo-Oh)v zXrH9_Z-Hm6@5J{g=d5GfxA?s<$=BAK?`wO3^ypLIjqm^B?NYq`2pqe3<8GbtO}}Bj zLU)PPQ-{*)T>;|l2ikraaOm|_-oM6p9D-KkNqRkj&xOrTlk~a?n$x_ppgYlFD(wZJ zxq0M0eQi_TZAn_&#Mry=Ok(T~L38sYtH3LQ(1%M`qPIm!y3+h{=}@#3Nz$R{rffqr z%SkKRSETaP<zr4!`)+Q0N~pG`l+AEINwou_%I zd8xU0S)9N#|F7cYzW0ZdI5_zUINDg^oDG=)F0TDU|8~w+wl%z&6_XFp?tf12)OuW5!Rx8w5~ARYMyerUD6${5A(sNQGYH)=;lX;DM#9nUA--4qu^&Nc8^Wf|3+x^A(DAlyXN1wo^=)yJ#SJq|W>PA*dfcJcO_DR}44Gat6 ziAp2b!C1km^CB7-)hk>GCz2Q3@e(cLr!Y(JW)}~({|a;Glbi{R+PE2Q!?1Y(H@O42 z*)#(f;Ln0#{*4arw_zYnyg306W^l9TfzSS*q_-uQ-+Jx=Pl9*Vjhpc$-Qz7U;9VN zrLX$O$Vaan`Mh{Puo>WYKV`IsNKhvKj_Lan#+Xd#aBMf_Zn^yn`%aKP?e;J3`vdl& zej~lQPZC~8Zo8I;cZEOOkl9^RrG$*`DhE-j!V@psSb!TmPcIM>*f7{olme0dae#!W`V|fG5Z+&55QPw+yyyHh+-Z21ED(@JC$>tr&d290y z%DD437rGRT;vKHcC0R=N5bt=4a!S{F9vubm;N3%{&m-pS;2h6&<~a2_bDaM?56JQxbPxc)DIdfcfUpmK$VGGVQU!Mb}eCGID?>WbF{|9q?T0_TmqnP72FvqXBWRAZz z%p9*^PVT3_f9@PtUG5wYzcqA@3+D%sH!h(G`oAuPCd#3SPk3me^+ks!l5=~@1)sHe z`^){atbuubd*p(HKs zdYySa3@uf1{#kVM1%A;hcJ{NbpM>9wcIuHSME~E#c6VZx73-Q}#%2?@?i_q6KZq_4 z{b~`qzE|KK*q=)jLu~a(d>^>e+vP#xKc8Z~a^~Wglr?kIzYC~DAo(;5 zff2rB!$=!n1xAbab?5>VXYVZgRLu#i-547IHo=u3mcVIZLuIEMZRdy=r9Gqc3dFc; zGrk?ZXN#{XFT*$41R$1vjabK&Q+W#Vhn=^qK#RcSriURnP=*IEwX@g z&CMC%d(IN$De*uuCINbnJBZgP-7$KU*h%Ked)Whq(?5@R(uu!q9B%vzgU_#i`O9DG zcR+vc@wZg`0r^(pcjBH~u>H@_W$azaJao@X|NNArFCWfMg`WCM-MFQ1?*=D2J0P9M zeT~GLV*Qi)HR~pZo%9YZ{1&0hU5cHi(r0WKKK|Tr ze#B1wieZ$6ep2y0q}%EPXVPsUAn)O>fz}_POS}huu!C;|n@WUvHJNA8WMqW%e?I>; z$0EdSmrOX{zoYR*@O6rKKel~off2h+@N-tcfLEZC*fXRL^ojNNjC70{rQs!(v7`Js zYyno$qR?sdKvDXYfWKtinmcpz^~QS9r_!RtoZrSb3o=&z+;{r-o@37t^^HH0h3?ki ztVsrWr3Y>zzwSm*`a*PXS{qx4)fzu&-_h`p@b+##`#K}Cj_-E9?-vgTecOlNLHft+ zBp$km$lNOsiVBjuT@v@WSfeh0rN`!R!`%2ZKqUK?|Qj=&4wF4D$Tcfz94?YwwKj zUz=NA@k>Lr__QUeSs=paKj#a%8dQ^-JJI&09g)ZKFtSBe^khP(zHT&V%tLAnb3^go7UOSDfo8M=Y%;P-jD)!OLg`@JZE=j zdUW+=IN!R#ehszL%5Iq@e=`sK@~J2QuR&-i7aHoo&t3j|@)zGb*|cMBtpEnK*G9W) z^Ro0Z1dk3ML!TSkPdwTOXrr4kaL4x+o(sU4=x?|_XfAc}oelnl_x-FR`=Es<_;zo+ z**=>-jXHDv8L^IgR`-@MXJu>r2ke&Z_so><{@!iWuR18b#_ng)IbNOc z_oqB{KX$^N`>Z8{>$&LN^|>fWj?cT>dp+&9 z{S$4GFZNCHzn4698}ax{_|CJ8Gpn$}1@XI)U+p`{W)muNcbuPM#m>KOw8&;SM|{wq z$63wi8bjFCmKPF78#>AN=k;_?G?pFn<-w08^qj+&2Hw2PIrrh59n#q_&0n1jV$5pR z9NgA;jB|;~uk*A$@T=3rlWWpBLCXGvZ^Dr>?DgpLj&7WzzH>mp++UfzG<^F8Dtt!r+MsnKc zE~Gtd7e~wRC8*?%m0M`bt(*Yc$AC#;QPprP`%{>{CKY~_lW%6iYOD=tusB|vCSFi%fHda zeq>!gJizHw4)Hc}Y+T>%%em~h%D-*fxUG$%v%~PickmBu@{RA&9K1l={j|N1XXeco z=d6gged3)#TkXWoA5H&knC&uoJ%M52b@F$SU+o0^Sx0(46K+ZP@{Z_Ui6fL*?jPTy zeb-l*571%k-YG`x#}694nh)%wICn9jN3f#PTlO}zT_Tx`G?iKJDf76ejOtv;`(EVd z>&UP2qVc_xxohJyMhk5meTVfR^JM=MKgI`gJ@h?=e5rhly~keo>Rx<#5buZqL!Y}? ze-7|nMLKh=L^3V(U_VcTC%F9Kn_Yu@8&}@KpP{uIdA|o4|C5Gsq!xKxd@|15D`Vaz z{@7n!q`AnP7(-i1e}(hidS@ly!2|cGFZj&vjq*E>vqI6B9S3>ua^}>bxBK_1UddUO zVK(G5$BYc(R{^Ks^#Nm9QqTT5U<~v8Jny`6+R|^y<}Ux6y8n;8_kfS8So_D%CV^}c zkkCVsEKQO?=t2+-8$wASKp>Q;C<#d*A(a#$2pYLw4RBQu6vRTTH(*0WC3@8$mVk|7 z!Ad~XAYR2DRN(*po_S{X?6Q>mzVEMmKL6j@&+hE^%*->-Jo8L@X3m_c;F<3Y+CTCJ zkTZE zbG-#;K4Jc*p8HbIQ)9n?+N*|gdL8-H?AKhZ}8k+rn1gw(5?Ki;$OW=z4qXuT1!xvnC2-Ca!Jhy_K9d#^QD=a!ie|>( zRP5uhKBJ=Z!t+!y_eDNvH|P}A9OvC~e0nKtJy-c94{3*W*;oA9~Ko&8iX%GmoNc%i+Gd1U)T*-#!op?$E1x1qi;{F4aJ{Uw~6oAHnbYq)giBf~w6 za6CI{Hum(fF2_Nq&o^dL_1XJ8URAfThiEU);WhUZgI*)*0nSlJJy7oo`~~#^?+T1c z--YMapzGhz_QQDr`qv}KPXqRzs55lKqRcaqA2imO=VE;+br$vCdOjTYEV166?HpgW zL;6znS=pC1V~;NPRL&-3p9}8LlnD{fOsCDxibr*b{XP^UT4F$2feRTF2w~t_tH| z*84Q%w-RlTUCk}_F&`H;-&C@N9%HOzKEJiKeOz1EZgBojXRNpQwGIhdmJsqlFwd`O zyJg5STk8X86YW1N-EYfT)HnyvwbX*YG`t7#eb}dI%i0fn32dpk(HK*)og**4=Bh!U z(a;Tcn4IkGyHA}SI(v=(g5`(#nZJ3{1*@U1HRoHdD{hcYv5L)Jb?>ybX!s2(;gZM*pi^faA|k*49_IMn1@ z+ioyUV}5jAm@n%bTjysy-Z5i7kLvFq$$qy1bLB5H)H}Hjl^AQbVt!BC4i1}fr8i8~ z3(P}3pD#Sue9mzv`%gdfIRxx=i>iYztc0Ae!hAajyxAe^{+I(N;+a^!b0s<6IKgMs z!_I#D|e`5MeM^H*R`;@B*qyYoad%)1_M ziZh6Crd{^6^BS3ls1wd%b-TWe!9LZNA7XFXrX53$<+j1t&Oc;T$O&W3`0jpq&Y^h} z=W7^`PT}}-Gsa@HZ5_neBO3iC&mT%cI5nqh9-{V!w#%*D70LPIG=$x!(hFV%Kl4mO zJd?g^Bzma2+p?KEgF!tIWf!yM;#uXQDTjOkPtm%h!722*H z*c%8t^AzZFn`}Slun%`N#MGhgZrTxXY*i@c$e=U(y(XKZKr0d7nHbNw=w*Q3-xR%0 zLa(Y7&Omr|$f`b|Hxcs5yEeZu*uUAT3BO|P#MY%1>180V36Sk5>G^w_}j(1ZH+?`u->&0HmHMm=B-(I{J%im4>8J1yglrRS3JG(ov_N@B*hmp_G8GdW{ zUfxj%$9{qKt`X>asPA`T&!nC0%8r0FGlyah20Inkcj8Og9Z_ zje_TzX|}c@(^^nR+vUddj6A*{IuheV)bVPxB?*I!a!uPx7ral6LtWN%YoULn7lHLT z*wNx8rdc5Dvze@*H&Zu5A&V-I_a+jE_J6XrFvBXF;C9rjn|KzD<8MyzVc z`8fvrm|MPw{qLu3&5lj51+B`4P8~x#Txn|)l0be@7OWejkq=#*gtAroSkTD&!8*{} z2E7EW`G|{s)N9T6QX}jSNZ$?}Ks^|iW9mcDss!i*_s1rJw%yicAj_L=lghihy>*5d zHBO94dDaQqoHc=WT-Z40T z?GxJ@wzsqkT!wZF?+U@3&^X=!y3mO7q5bJml;e-fm+$*FW5B8gtkp8?9LSxzPCXil z^5%Rj1anK4ogH;K2<-vSU*UU@+S$S;MBrQ~>eQG1N~aE)W#7@XEpuGZfOTrDw};^U zH>NJpM$B|{y5yld>`cC7S`V4ln=)+^ML9qQtDb^PE@b?8F1cX}RLLyYh9xkSoq+3&L51;kHhuTi-Zq^Eh{nuD5Ow8wnRd_Qs&o~bb3 zvqPGjK$G)FKC?<1&xhG&Nhcr^RctrVQxjaoc6cv z#X3EneKg;(YRdGtFk^6Ab1tNK+J*H2%9Z?(H_a2}>xVWHdbW@Dr)1#^Yh7&`AYaOs z?`Z6VF=-?APe;M8>KzCCk?0o3kNiPy~q7Ky#+ih+oY}d=VnD11`0G|iDIdZ#VTyX;BJvhW@`3vS8 z2cwJyU7@d4DDNxzeuNR2OJAzq2Qs(?_V1!U`sJWsB-bfe$G-Db$501OU_Rf7aShMB zp*#n<^o{4l@mZSoQ8+_(J=dm~Ps%zGGTMcAqyK`sy$S1U2KYezS&)u4Nu4jJ;>|s! z-sfw*_dM=#j%&Tw6!%cyPjC-F!(@HR@8x~{VxZN}HE zKWqok9?XLLI3~Rsx_Jd<>CzV`<`(^jRAWpKo`ZM!NgF~vUx8;8bR8rO%sbi}HroWw zt2viOomunx?dNaP%=xm{J_MXG9u>E^Su5DFgM<8yFsvEOuRz+*z|O?>n)G`>FVbK$ zO9Ic@#{1+a%J$B7Wi7&Xk}%{c4FB~U-+Eq1{a?rbaa2$hFFlGrBO773k7x(yb~esq<~=9wIe^)A zS$Xy3)14k^GmZB^A9A|10c$SADjn=QX=x0^JiF!t`a`GQ^HZ{*T+WuxMaJCwf=>Og zuP!p_cCOiQ&G{hS6`ls(>isX;avh!@`@VVOb3L(+5P*8x9sJ_#k9`Sf&x}L%HMS#0 zze{j09eUCoVGo{g{=~eFLHHYSKc3-Fo!-ZDW4}Ln`uVyLBbCo#?t;topu^KbLkqgJ z3{C4&8e+`q98=V#2=2Z3zKrkfy%%(;^aqd2(r#bdskqB(zS)=5?+XnwW`VCQEkXY_yf<#ZWkp^3`pvzMvg3aGx_1ip540PzLhx?a zmZ5oF>YmNtzpSY-E6-*Rxeo4H+ng@DuCLhF0GUNZCp{AiI=k@x_1?A?6LL6km^Ed=#a&vJ=l?}n+Ohwq&1Gd>lAD0mj49#M;V!`Uu8t*L(C*Ia zG+|o!P~_{kQPacQBF_G?GsAxiFlLnoFY2;>?iJy`N0oKyID1BTD)X9gb@)`~b;32_ zd`3Fl;r{`3YR2)FwRD%`6xidZudW+hF=FJ`)28EkcI2gZEQlDoxjL5qi{JWmZUJ{~>_;bxKy=)kjnRNt>hjwrwM zhhcvd#2Nu%t;mCY^zaXY>(@?gVGADLu835Hg6@Rd ziWUT=RZRW9^@@(1GhF0Q`>ro?s=bq(Kc2RQ6$ha&{?^vM6`ot{I2$%tJM{Ay>H1f8 zydL-_gp0y6b>G?A;@(Z>bBPmhFA?|tZEJ&jt2(}da13)4=QlPi3r@j&Gb+f|snvYA z6KsJ|X|{`^$bSU*{~pgE9JGZO2O*u^upj7jD?#%u+r_SQCri5T*gE6hZDtyLwvTDl zE%Wn8<87RU;B48$fenWps=caU$tJbk#cEbuQK-qHVLiT zM?J+lz`o{2INpukrBw@@p&e*+#{Q{Jttfl0@kIm}sl9FXm3AzR&4;dU!X5&8;pE-pDg#X!4eTypnH}*B0`&5;(^UyK>`c@`io1ns@RPDe0%3#v9vkjWi7NOvwn8 zRXF}9a?fHd#>zOS0s4JAd1W{?Zd5kuCTlQ8j5qdHvi_#`UUNOp{hS|Kxe>H}1f6}8 z@!!t6ykf)}-s>xVfuWl=7GlhWHu&}{QBDcXab`FA?ze2tVX$@J{Q8)o3i*D|{~WOakOmxp^Chh$^lS@;hB1$bxJw141U1HO^? zV*PSL1lC=HVB_m;3km)=&ly1Yq?XQM&0)Wq0NZrs2^nwV*~6;4;+A{~8^SBLX1NcT zZi{0_yWX<#J)7+<-awPfP3CywXM7MQVwXA z!u67D*lZ`FALcq5*W>jb9@Jl+H6FzK6-ti*g+^HKJzxn8j4rGw-Xv^loH zItt@b&v?dG8uWBC#$tFU#tHJ?4tXQ*=K2oCBi`ryy2nlG{6(|w#Eq)qSO#l_!%lyR zufJ{B>FzeHw`1Ls>mQhV1VuVG|aw3h*+)Ho_;SQlp@g4`RCr5GIlUrx?gm-7a=A3=V7+}^S0G;o&fBnOAC0MmO`c&X7i~kR?{1WDMHwR>gAb>u z_qtH7d(CpkdS7>EIs27*?13jgr)3X4)3+}TNC`&&mSDShV7Sq~cmkgBhfN*-+ZE5p z{{)0nD1A>by&eH#L44K;`Y#{4(t}SdJ`N*}kM_hX`+K+*0 zNQ3#o9+Rks*0crN=Ogb^v0-G|N?Yd?^0mnp?&52ct&5AVO}2|&d~LFIE+(xcBL?P? z<^#1n*%uk;GeP@yymw+{1o{u|J5};i{Q>OVVSNlc+Eu)33E}nlrry6r)OP6UQU5+s zQ8pvE+SV+168eAisksict96iDa6Wl#Kk%T7mv;ECd2EaSn)f#NZwT)#@xQsrdtH+- zk=>bN1SPv*kzKIJE@&X-cCd-P_$cJXGHS2|1v|l)9ep(NX!g-7!MAnIIo#iFj`>{m z$$SY zk1D4#-z(eD%Q$(`-&oV?HuMoY{r28vH&S7PJ{jRm>(Yoi^t*YM8SH+LiJXZXrS=^( zjVb{zMSk<{<2>Kon*iI!ah#n|1DVyMEqDd?1InIz5^|u64Z}gVr7@`CZ|Fz58*7fB zZgCw)*$rr4#B*M#Yh^h5iTem5Xp_YE$DPi6?prwipkIDH?1#U=uF?n_(U0NANjyBX zu0F$9vk-C8Fvnxti+wNa>cgEUDL>)?#I!qt##sIjbe=?B*L->_-?`vCd9L@48k=g( z^0pfjpXOO1x<07#Kl^(31HX8#cjw|60$KCk%5{uL*t?p+Hlx-pBS8v^m(Oss2j9h>dtmnaXu7o6w+Y8xigWZLB6E7T9B&wiTY zOFV04+VD7@K%2F1%!hg`;koYZelA6|H|(c54!9SxV83!F`haxk8}|ort$z2YxD&Kx z@m@mLc)tI2C~aDCXk!y>qu9T)eonmw@j0eIot(N7|51;Q)uWH1?%V`yXPoAfX<(&UaQaf<0(;+9#t= zU_ZlCJD6|wlQz636?uxdLG{zzN5wr;nfUU#zd3MiMzy)$Chd~|v(LsD+}zLOZI`J8 zedA-$Z)QAI4LO@~amgzDL(lqh<~jdn_^#XoXKYyyTJ_+Saz?qLo$)irn$~l%InH3+ zSc`Wan{h2=5FUp12KE!u@XgQ24-@{w{A>QGtM!ltdGp1Os*AqQ`sMflGKNg`zD?`7 z)oR?0HrL#T0X?pv9Si#$vBxU_0Zen;9&kK%rta3gGFb37M}_WxVpZC#A8geKTi zV>1RO;`!27(O>X>8`u4Cxo?>FOE1>pyU6`e^Zxst_5F+GewcY5?^P7~oz45%*u(R0 z&<{G9u)i8M*ki3DqcG1L|1E3*ebA3r!k$qLUK#FtGhE{SI)-au4R^5_u1>-!dgB$n z5No(DKIlzQ^a8En!hO(7QuO>Iqq1$rAoBDn+SMwwv6K(yoRAsv1X)&z%+x*P-@K>f zqV7Rf<~=17bq{hi@2PT7_fQ77$Giu_mIFKOwArxbq@mu;wxunoNBx)$TMq61CJ&fz z1~oATaxYU9^n-1{c(^R*2>2y5F$P6o&d9ljD|}g(R*AUx9l}&He%mlp_PwJ!waSL< zE8%B`?J7Fa73Y>AY&P%=^rb=hom%DK9>W~>bH0?^(s;@APgmh{(j`7I!X^rS3Sp;A zF<#;rhI8qN=HY{~L5IA8&dL5k#z`|>p~HBj%dpwFXNJc;h6k;a10s!+SED>ozwo?@ z+E4T)`i^c0&-RUNDeJmP6Z%sPeWzT5PAs||dudN3nD@fu-a^a0P`OuTxo4MqrLKFG z&;v!UMBTF?zfFu{2g+t7&xS#n@%*7$lo{&V0=AuI_$Kq8rriPg+D9DGWd1YR;D>#6 zBJTZ(F|ir$*KCt6`lP|hQ=Bht^)p_=K%&i*Nasn6`%ZHH;A_tv#)7rC;fr>=b`8F_ z;=3AO)vv2I9c_fEOLm+Y$a5$f*uQMS2RP09>)iR*C??8@xC6f zUj!XG>fbdg+IG>($feHxct`hsynk`!qp%qTVGPLka0MYAZQ*R&NiP`tNnqR9(%V8$ zr=#0{`v_-E2+B3MHeyv`q_aE;HlGMv@G2u6&+TKr6^wTWC88Z0>5RlQm;E#KF(`!i zOW<7WW4Ru77^4dNwa~wCF9yd7n!fcNDD2DIoIbs$!VflN=vbQU=jJ%O68F;m>~GNz z&%1KW_$>QfmY=P!pzr}N|i70%rmI& zC;tO*b};CMN81-TftdzrSo`J#&h68K%=ZgXhcHeVV#9kIJAr4~5?FTZZy8V9KC(Nb z4j`T0Xa^$davSGE_OR!@6=k!na&|TLR*VMWH6zl5PgWP7z9K2VO&w?I>{Hn2bv#S}NgFu>W zyC9eO*|?WuTZwah?DOl9_b(CWuz!2R!Eq6bEdOhW<`Lv#oujO2@PmO21%a!kP z_~;pottDNiw*zUQ&egy^!!@&9!ydP!0{2Y$N!g`7i+!P?#)%nl+hEL;un%KKtOI0} z+Pm>)Zm~Q{ewiehC7WRv6 zh&L&M|6zl&BTg{RR$yNdAw2X35A$)aGA?SBfisk6z;AFf+oV9`>$p*Sc@Xl5cHnl> zZGG$D0@5qSw-4e^CJkHI&ur!7D@XwKJWr#*`rVkMFq)XOgy9nPh9W z5_KFl_lkWtwJ^`+do~yKD+yn$y=|)`kKl=AzXku{w=D-Q+pGq-e13H{$}a;pfjp#@ z3m(S%#SF2ABMpYDGlC|3-z;I(@n$7+YfOk!cBt9XMxyWH^*}b z5nXq0L_5DX3cOALtrb|?inN7H2mucXHro`~hs8g{Rj%Yur@IU3vP|odHuIs|K~+C( zTdLxn!&07Bx~1zN>h=3p{|V>tuY2n3anbgi2teKc3Ux92^y$_9wr*=4z#h!|v5s1W zHUCxTiOY6lH{PE&66b1bI|1t(`Gelny4xn?qrGwBDa_#p&cV{q3N0 z;;9U*!NZSk6z&~uf^j0~v;L*S4$k{#*bZnDv9FZla(!=efDvZzs=~6L)%Sxe_v=v) z^!*&Hh3oJ)Abi%g)9baL9d(*~MS_PxO`IpLfnRIX@8rEoj!(gkH}ce`O1h3y2P>^@ zD)X(|07sLx9lGM%4POsA;Jrjli*gtT+SQP=Jx1NrvKVwR-kHI42fOe0LR+ZkRS#i5 z=7ZRe@c{PY+~3{Y1ApR3&FS@n5C>1Iorpl#r{XEEO_jP$)a|~9?hG|fJb-Zbqs(Jp zJX23R_(pm`&zbzzRO5W|qmbbmC!?wp3$WX+Zy0!WK{dNc*(dXDLH#*eckLSeJqjelzynWTW3e zUzOW{XI6AM(AD~4rNjQhN{e*^?eE|;$S3y#(x(29&$J5&TMwEuE+AYL!f`*y`SNWb z+^7o(C$c=@k9{TQqe&fLe)?Ph-3p}N?E=EV&N(&g0>bGs-;d|K&c`R($C_Oi5)OLw z`p3TMY5mo@vjzDHHntc0YEO;-clnfn^KJB+xW;2Zz^iYaaz}`pEbbg}i^RQ7+?C?q zDefcUZWs4$aX%6Fu(&^oYwS|#H50dsxI@HE7B^em3UTidce}WC;(j6S_u@9)t?2g< zcZj%?#GNnhP2%1uZne12iMw0e&%|vIw^3aCTPmF}ar=uKEAAw57mB-F+;!r{i2S>W zdy%+);(jmT3@NWral45-P~4y1ReVenJXhQbaqkrOF>&7z_cL+77q{s%`q4?iO)h z5ch3yzYy0{cKkdoa{WZycA}T3-caqpRIBD*@L|qe#fuDkCDZH^YF8J zKB86O$8XOn{8Yh=;g<%xhF=kXs$kLZONM#FFYR{x9EY*PaIV9@t#|Ne1AZ#1aWDBX zQsGY#HlY~K7x7b%l`^CMhxpn08GerUfiyy+@srG-BL3{*kI|R+_~RIkpDHKs#o-4M zK(rM6An$;w_*u=Lv@7rvdL@2pufk775q^qF@#9#ApJe{j^2fLiKaekeJ}3N&Kl+-J zQCwbB+BY*VPu+WVOnGu1sOTo%Z!jRX4-VqUnry` zB+X=SO>oATsVRw*C%JIk=o#>K(@#klla%C!Mqyr-1sTSTH`eWLTjrm%{ObkPOJ3NS zUVL=O#GYTi+wzqicBA(p|F8+h7-On23BO6kAY-7>*BFg|CaWfYaTyEBa*DH3rp`<% z%*Y+HI3usDBxhlkF*PeME4}2*`(`A|PmEPqmizzhzkB>De35qk?5W>d1!K>ny2@;! z`tSdZZv7`JU&qB={i(vJ5N3XpPpSN2K5kxVg0c2#UfEv$iv^O|WxEzQ z!gXHwZNXYzd%W=bUf~aT;m^Eqy` zI}2Vc80+8WwZY4OyO;j~FaJit-6g&QFCQkq*f(chPQebr*@Ce*%)BZE!>(*zTfO4% z5!^!j>ji819}x_DlzAQZ3UBx+el&kQ1nc&vzhEtYr{If(Ub0}FpCZ9peyaudl_{PY(87{Qu;s$hrsR|xJVxLR<8-~)oA1lt1?eXI$XSA<~Q9>)l7DgMcV zb^GbvUZ#14Uo2SD-ym4)*H*z=K6?arko3Iid$(`i?UQ%?_HGXvU(vdue618yf7u&%SbCNFUl&M ztAiP7d4=$Bl$55I=43eLm8BPFnto{%TERSbxP>flNCo%HSU}>Frix363lY3Sq-AE! zO)twUbz~G4=%|j2yuy;QVw2Z2>Oy+)+2ad+YxJB_C3CXiPTxh{>h1DZ?4OMa>Eslb zmO&DkIVDAT=^0u1Sp}tz{PZH7&#Y|6d00_$cZYM!%Hd`y&Fz0qmeMi`i^|U?H0HZ3 zv(!a=NzCKvEm(bXswvh&C4b)jS6%H9A}v3?Abnm|=J|x`9nPmvnVws&XGqR1eUETj{$6snhDP|z z@`ChyRE?a1oYEY$980o_9diqd9a=B6e|l-w;+#^8`ddSRj!SvYnVc)!1u@5bpCQNd z(D$hCrP;+<>6w;lZ|L^S(XE>U15Oxk{9T98~q#zA(RtEwp3u zocZW69GDif9hT@uT6#fYL3w^*S&0MXmsL`PDy{vL7|nURMNN*-54L0Mj&`fFlj zwpNebc;jMVJ+~#k(+l4Mtn)^H?iaFRnAYmxFNMFp_^$%E-V#3FC^0gOLZcWq z$Shc`GEEs9MtouM7_^7U#f2GJB_)R8i=L*d=`lTh`3g_}{!j3kQT6PcH9YK*9`zXp zNe>KLqKRQnG+h`B8b@x-dE_R~Unh)5NfAs{3)ug*ns2uxOet444W_ zIw@+pUB;!$_K|dHyyHF2e>i91m-oBk%lnrKjuRX&I2kVEOqKg7 z;?9Ii`d8q~wDa&KoqT*9_!i;Y8Q)@j$!i6^&Q)<4eBY#h3mc;Y8Oh?^>Irnp7oE)};z+#AKM6!#zEt`>KlxEsX1N8BoL9}>4(+^ynn7xy)B z-xgQXe_!xt;vNzAxVT0OB^SH6VdC}>H$vS0;yT4m71t&L&K6uG?qYE(#H|!}wYVF^ ztrB;uxV7T$5w}5HBUJGjDsF_h{l$$D*C}p-xXI$Cikl{Gwzx&&E*7^!+)8mbh`UwX zT5&b~J%a1SJua@%Qt=xmZiKi_ai@tpOWbU6E5xl9w^rPgvI1iwMiJA>vW%IS3s1`~ zGsYI@7%Azc2K+M9%MJRQE{g==N(d0PK>bq%g?PoL2O#3R!h=p(v7qtk1;*H{ImX2F zVk54o7;d>S9_f!S%QNE2<{2qjMaE=I&?glxG)8A-n1m4rbJ23fD>nb&F5+io!v&2T zwhy3@#lWBgZgIbCURj9@P(iaaD}PQF+Y4TxUr2;Bthbq-3&%~waudG1CQj^^nc1)0 zq)VKMtB+$ME(iaVp$8{L9$GsVfDe435nvqEDnd4VX;M#BZjFvvCKqLQ9qd zHw7DU$+C)<38d(%_-?G|lz@f`q39KWs{0XmXK1){7FEgouU!~w8ANk5M^TLRV&qCKd z#jkfL&A;dUIB>};SzP{~h)+MrG!wt&mi+JzKYh@fF$_Nr*Bypbp%aV*<1+A=kKYn} z^p%BDi8iJ~zW?u{1RQ64A`JaG)9=hX2^hhg>vJPU5Z)ip@Hb%Wp+7d`!ai0C%MJGj z^Q8;===hHR-z!1I4a@&_z4Y=cwL4zj`P%Dmyjizv_ginj z^X_|l_U_yN{s$j^bl~GpKK<YspC%SLH{sRUM8hq)Hp)tcQ8xEVvNN4&S7|iF+%g&jfo0nfuShS$Hq_k||qQ&J) zu9|iAHM7&s?tkslW!GK*e>(sFr_=v$%Rg>Z{OB=b$0a0=pO7?h(&XeRQ&Xl*pD{D_ ziYt};&+h+!h5U^(+CPV@{fqG7_rIhCwB6wP*e>wWEg0S9HuuNRc3~eK-Op2Ri6kxm$HzEZ;k-{YIMU>!2 zWBMmf8m%GYMC24?nmDU>|Ni|Y-h7M;qcPf}-GJ8;j0mHRc#JF6m5cFZv@yZ7C%FBm zVZ7~mRdrJGsTbGLS>Yma_lWDbSmY>fmALidI=YCzxLd^y4VU}kZWXsq+@`Q{k6(_soX_akl$efv{`{0+eo$hjKNtD3 z(oj-AU;0X;ijfN)*UJ6*(_d^#QRyHlsPcB_z<2sg&#l7+K%9|r_N8?^6S-OBgD2ng z7&iknSQ4d>NHnNXE^1yk7e16R>j-DxtV!;YcFUS-nq@3TIPd!A$zdkwP~!_x=5z47 z_`gX{m4V7Jd8RZyYmvK5sHqDPg0-6aLG_huN{{pYJdgY2T-)9m*0=n4w+QV=A;OYE zG$cux`D#^En!3C+51w?r<*4k#Oh2wTYiv$lR$Ng|N!+BAMAPm}+i{|688yBb3#wR9 zPQmIO*0aVeW;E0G%5X{X6Vr=Q%smLE4{fsMeQsCCnuI02X@yDgiK7{ZcH6k3qU6H7 zoQ(2uS$ff7T2^s>P675c6c$X(D$OpW`31SnrDGUJLZ*=>EZG^+*Sv|xoXyMm?Y~RM z?zyMWCezlN{%g&nuRJts=Z}#YSP#OL`RvKTOl#jCJq80ug+T6XVjdJ zY-74@Y=23w$(s<;>32uqjukU{bpGcbug}Y`EBP${@ngkikG<)YAho0B& zeW&P$gSp|c-`+dh-%Q|0!Kt0^%y0IuxdX$8_4W4~b7jxQeG6uce|6_4us?_1*0XXm^8F|ZXY3pdnhKat}$`{)|bnBBdHg6i&bjZ^auCAZ`Sw--cQ^%bj-&(z= zqGN7%7-}+Ok_O)S=FGo+Flzjf^lqC!zC3iqOT|BbwWhS~6}8PDx%j)hkE25Oe+_D( zfA4Zt`s9L~sB6PIA5ISFJ^1r}-}g$+xNE_#N7@}7e``cvd;7wI#Eu0WC~fD!OPr4f zBo}u%@xk78kuSb;)!aM#4u9a&Wq)Knmh#1-yB~0DO*!$(8;|x}H(}zJ0mco{JOBJ; zPq(Sb5iOqo`KQ)1TelhY*|MvLeRx-gD;hh;+-`i>=9!yn7CpQq{nYcV=BLA2f28Hb zx6Io)!x6sjvQOhIwrZg4*8O`=@~mT2D!M`P~P;8Z-5J z?iLGuaq+s}{c1}){lmEW_|~#FKHc1==HtT$i(6zRO^8_3uKu_DSJ%W(d2iPpy{12U z_`_abSKsr&L+oskds z?NGJg!++g8I%k=!;6&)XGdh-+J#?F49D2HDL|NtXwe3c}lY7~=6<^$ZpMC6@iP_B_ z`Sj$PwLK2D{w}+JuhHA?`abT4=XUP)OZ{<5_QwzOT)6C(1(TpbnSXx$w<~{Y@%YSj zEuXD0<~|$gcyHh9A1%ut`Ecin&%g6U(Y>Es9@p;qNxSzf*wFgON2@P$PCh*H(G!J> zCSLOOlfl%o&;ipQ4ceF5?2)%FNuP1^-#X9V@ypF+3mZoFd2d`*+qv!9_wJw{N?>g z^G{!T(fk?n+SGjN+&w&MarWHRz9|B6Rw5SL}KJsi((wYrAx2^%Z5`T#_7Tb2_!6#SF{_597 zt9F0$;8j!m`CmTyn^9bwGeSTAWopovs}GIZ_C(*o&pcT8;5#D=mPBm(ebJ5yd+PSh zt8c7+V&3pwk3Tb`E-&QXd+#uIBwTg*%9qFgGUVf_6B|BV@OszICxUJmGk*SoEgvmS zI%L1+;k(O>$`MD}leXc!{r%7%170r93~RPy$jyH~y0}f`lT-d0w*FYpw*7l2gS(_<%jPEiGN|v5+kd{bd5hLL z>yk>UTU?UnY;7A6T)E)wuF($<{bAQ9E4K}Jaa3H=i4XIdtg72?YjSw$zt>NFEq&*l zEeAfi`HOD{ZBNfWzV4-sZ?~TR!H!$ZM{$hM)(u0Jym4P-yI+DwCjR{1BM&cnu=~po zEx+o4xBC@`UV8oLdtct(`qk=51Cw?=KIp!Gy>RNWg#)`L^&R+5>)35;P8ALLc-D)5 zU*Bfb$&PQ2ZTvju>wPx|=Ct4I*YVVk&&EFSXwA;T@9mvmR-LGG%d5^CK3>$==kkvZ zE!fcSn-79ArWAkPq58?OS4MsK?q_~cr#>J1?kzo9_j-I^_vbsj81P!}x0^n{``A@6M`RbKZt^YdRq(yngypuydn7c6fP|X}J zUZ-!J*D=_(ul7)rJ;O^{eLAx5rUwt-`*ix@&oZL^6>!PAyFVyOzq99;uhx`>wCURC z;_$Tjt+zigeBX+aWk04J{Al+Zy$|Lz9eVTj9{+B-cJ8r)#14g@-ms;tM9*W%x$H0({BB1<{PDNzrS<)sDg}-XTE*a zvzHz{)jBVI%4;1zec_I0@16AH{mI{)_-w)T8G*ew_50%9ZcNVzUGdU2BW4U;^kvM0 zZ(Tn5zI`|Jx$pOfO5Z%ObNx4+=f@nG{n$OLeh&QOyUGt9+i_*=yKg`F_o9*E_wLV+ zZfF*^tbO6SoNEsCxivFk*!_33tZy+mbwvAZ>wZh<_0r5smiGN*Raw>Qis7xF`!srW z!h8AG1sv&dSF)L={_#Um`ePgv5QN=8%?(?VR)(!;^!#^n2 z@DENf0)nR+0U=i#0nKuZCe6x>Ce4={O)gq(G-8G$Y9jlfnv z8G)^v*zB#tZ1%R%Hha5xTTr_zY(eddY(Zf-yDF^87Tlr67Tj^aEx6P7wvbLiej%NE z`h{G~c7y}B2J~E^y$qx3CY#|Lg_F?l#M5erer;mx-Z-2i`vKi)fuK8uCJ4B+KB)T~ zr%C&1IESfuw^CcI-w9U3FRbMVX1mBMRj`Z?jcmbGMP5aMF+4M`#e%taf>(v$AO(#| z!Djo2d#eR=uK}+Og3a+KaFt;0QQ%cA*i=v8t%5l==CxfgI#~0n70fX*uR6gTF7nzV zxV3`D0l{qq*9+GBz8eH{j|H#eg1N_pSEJw#3L3^`O5S>3zFn~1_Z}*kdpmfA30C86 z!*B@hqP&d=!TPy}{(>FiA0xP{V5eYJy|AaHtKz4-_$P>e55dWTdkRh!%z*~4G{I0s z^U4;i4OvBkqr`u);NF5O1oshKDL7j2YQg;kZxB30aFt;8QM{@J$0%rQ6+BGvcEM_w zCN`A`9x48Hf}Mi*2#yncKybX^dcmwyycz_v?(sS?1wb3WbyYCoF>>` zaFO5u!3`Z%{3e1c#J{QF)q(>BR|&QY-YOVpvY40NuMwiL_%{>0M{sk&^@1-Fd|Yq~ z!Nv&1U#Q?v!7T-E7yerbJ|MWYV26ZnBe=idwt}64+X+q<940tTa0kIff;$SX5Zp=d zYQdcaR|&pY@K(WH1lJ12S#9REN3cV1z2L5bj|=W5*tlHDr@P=#!94^!1osr&U+^V@ zoq~G_P8J*~I8AVr;3C1j1y=~}BY3soXu;Kj`w8AIn1?L$suMg|@BzV>3T_ZQL~x_v zp@QwPD*rKp!vy2dSo4Yye3{@F!NUb72#yt;DtM&eY{5>!iv`CCt`rR}0P(TqQVH@K(Wjf@=leAb5{p+2n213&wle&8tr8v)a6k_FDXd^nk^w zk zkKkOv4T5blplTExAlM$K@*5~POfb%9Q~E9#=hB&1jNoR169jh@oGN&@;3C1ff-3}L zq0zin3l0!mB{)#47nYXt`j-Xpk~;CjIw1s@kYT(B`p<<}+yyimabf*pbb1@{*m zB-kl9Sa7o7W`ffMcNAPCc(~w7!8RE%ZV((KxLRva4G75{*aFStR+7u=}B_fg^Pqb2`>!vqHlju33?ufoUZ@PZR`c)_VU z{9qM6TZb3CScex}sl&&p@Ef$h;A-tZLiumk{(|eYzf<`i(EfrOG#;(|8#PW)*gi(( zKR8L@FpZNHju0HMRN)xG9R(){R=Xe#tOLz619B~tmtK!fkezuMSassX^;+esktSDL zcyS+}a#c94%kr9wl^9;x2%%i=5;fqf!g0Ne7uUmiaow9&fzT}wTqL+i!gCdr7uR`s zaUGObiL8T^;FW_4FEm}Ql=9+gCoitG@ybDtcyaF}uM$^&6kmDfE>G^;S9q@Qxlr<# zjdeO+>5v$&Ea4|#_(+EYc;!kwu5$9qmiSy3=annrbA?_BRu6fV3EfgjzewoJlXSS+ z#)~V3ymF-+@?G*!{`qo$p5%{m&P8~xGg1;<6Qrc5578*|IQ-{Dy@)nO8G7DB{fNeC zE-A_ztCC!ej5qW=g!&PUU9o!J!}U1gF%n*_&W&^JYoMM)8)FSUkD|U1PnGc0n`roo znnP}7zzNtfsxImg{WU+-C*o=1Pd$ppt_mH$068Mo^DgRDGOi$;JdLNC@dLB#t zXZ~b+IYKWn@s;>Z0xEU23zVB%Z&*K~5liQb;i92MTJIK{a&hA&rrh0_^~xHa^(z`$ zs`I6G6O4708|xeMq4~}?^EuI#Pp-gQ^+N4endp)u>nHc)Xgy~=CD!$V^_5ts&w9&p z@sHXesvkOEtp8U3e6#%B^w}<0{Y$*)v7KPKXnGlD zKF2|$)W!D0T8^q6aZ^<72{rBtGlFVYNKt9n0_2C186_p7b~CukHQy|!NiI37_9)Sq zBI&F4B;HkD)c$cdf7}F>5`DH`~}elOv^P?)tCvY?MphR=u&t({dYwww9NY%NUpbss1{_RiBic;#_@R^UXgS+Oc^hdk&N2Nc})eh+N-R&XMck7!vLN@to&e^ff| z`lQks?aIHEu4lRCn=OGS|C3RZ)TQW-w_wU)hAThJKksPGP<&nC@>lWWUG0dLv+h?J zpC#cLU$-J^d`Wre_E*bKx3?<2@veNT^rpG=NQIAcm8%M$WZ{RYU+LOkslw~prt8}T zi$B9BTiPM!J{~%uE=51il7IS7chw8!Kguh9vX}o9mwqUIbgM~ukY0+b-&Q!mq6hS! zWa;;blU@0DkMC7aPrcx!?Zmph*LL|nDqF_t6gBTqqid{I%esho8&%?eKyGXm{E6UN z!A}X^Be+U%z2Msf9~bmHGUtHl3q!P^Dr3Qo98<)^FQJ>s9C{YAbu!S&*=$A8BKFB5-b zx}x{I;ADxf*9F7GU)P&#@eh#j5#q1MH8Fy37XKm%-$ZbN`0Mt0vH0tC#8mNrK*DDW zUL$z1VBH>93VufXHwb=IrzduQJx;6^|5f5&A?XJS-Y))nU8Yj}?c!f2{tpU1Aov}@ z4T2vN+$eaLVEYUu@7o2334TFvgy7c&#|YjgI6?4-f>Q9HT<~_m9|^7#yj$=A!OseA5WGWhqu}=i+h;0yJR~?w@Z*9b1RoR} zBY3Ug1i|%!Qw6^$I9u?$f)@)uB)C%Wr-C;K{z7oI;Ex4w7yO3cRH={M1=opxmSDY( zsn-oiY z$!|aLuNMDO!FKTv6TDsgpA=jtSdR;~N_x%3|A6>U7F;3pA_O;x|9rtt@edc=DE{e! zw+sD?1lzArtfSn1f3e_DDZk4EXN&)G!Fz@&ep?FG>&hbqFP88t1Xl`9(eWkyfr2-Pzp{$K&L#dm z#lKqo=Lt>|{~m(3i@&m(A%B8z)$}ENZ@~w|KVNWz;J*ph>*(grR@`e8|C_{Lufq=) zY`;>;<3_=?l3sruUi|MB93fa)>kK1CaGCfg2%awZz%WI>mEctIzf*9w;Aw&v3tlg{ zUgEbFTq*vy2-f=)h6vsu{?`d^koau`SBw7)9bf$03f?aMGX>WP-XQpZ;C~2i5WGon zqu^?dg?>B1_N$aUQUx2ADcoLgnD{Ge0`|>_K93Op2=V{B;26RG6r3PYsuA?bAzoGShs1!oJsTJQl0KS=Om@n0g? zIb5ah6kI9(D+L?kA0v2!_*V$l`)Gy2vods_f|7!%-2`&)aU&3E3_<;D& z7Th5Imuf8jO9ktFRt~|9;y*`ljKuGv!(XlPpC-6o{09pT6aV`J_ZNJv;KdTYm*52P z&k>v|xKMDmV1FH7@L|D~f>#UPAoza4)q%sd;WX z=Brjb2i9FH&XiRSJg*ZbQR%tMTj6=G@>4k5r8f%aB$Zkiz`c>Cyh0=h8>zpO5uUb*Xg_H-BoK#$7Mfx~2PEAGQ8u^(TGSTXiYBwqC{N z`Y`ja&QxLuwa%9A(qFX>s8_GmdOF($Eibjs;jXU=^H*K!`SbZGL3OG1vw1Fgsr9a0 zSN%}yN^bu3x{tm?9F5jP%TKM3<+|E&wXUdF(Yc<^bw|Cr&hzlNKIg8FYJE_zqSK%2 zPC7MWwuAgtms;1d`m6fp_9xDF>7QEv0Jr*XZqIgr0;GI z)Hv=kL=9l`axh3X$FP~c0 z{E!ERP(8O=r*+F)J@IeFT=&#LR(!5m$=#o zg-c!ir&{lKr!UdW^H%kL?b`SU2gw#$&TrLzR=2wLHq)%JVfiN0O)dSW>GltP(sVzH zd&YG49e>Vr^KXB_bOU?6Y`WKdR7K(6|xc9`@Ot=5(*G+fDqi>r2S5Dn!;$1)Q zHu3Mby=~&aUhkT2Sj~HMYkNGn$Ml~yZ?B2tBKMj2aD(YOlOEY`-d~mezIp%gjvtur zOM6Y%sJrPy)BmGkAJH`$zct;8K^qU4c-^>2xJx>Zwq)|>ZZi%qw__+`_r_&Mkh@7L~} zX1Y~h-)Fkc*$wJ`{{e^TZ(LJuy7fnEP1o^J;Fl)-h)JefTff$H)BHX*-TK=uK4Q{c zm2SGu#)nMTIPi_>I-;Y#GW}2Fny%CNxan5;eQ&z;qxybrrpvVT_36*$ODn>M#MaI8 z+pwb~JNCXeDmPvA#x=2b^?Q3-AHUSt{wb|4Te5Rb?AoOzIgiguk3IVLr=ObNb7JfR zOP199Yvon3pFMoVo!ti)#xAn$PdFJ^5c}INca1wZFgLcb^H0AViOh?=qSL{Ix|>2{ z`^PQZHshD1*bRf8`>S77M(o0%+{#D3P8T}4u~Vl%xbn7{xv_uMJh`B5SbA*cySBjn zA7sUj>bm#oe|?i5o7ryChFgpBV~6y6^XQnI>9L<&)zJF4!;aYBdi2^>|NMy9H^)YN z74TSL?8~EGd!o(V*Ti13V3L2s)w!|zuXy^<%pLi$bME0JULBjZe(O!y^J8N(f7tqMnNb*f z_l7^0w+b8-yYJ;6cg7z}i@kByGv76Ra&~O?>}M|j`o~GJ4=?EWXZ-rHv3Jg#lzHRf-4}O^w`|_-}3wF)RjJ@)^%l9~o3Sx(Rv3%4k zFVBk|x%gPer&i2~jrp~>{lzP;j9v3=_{*V_Gh){sYq$Tr>X7CH2feWjP*i?LhtV>fKQXX{nZr^j|XSo3JR!o=7)o#XEM`I)TP z=_$Wm5u2MD+v>4H-}XtE8atx=(jSKXQ4pI~IB!6IC__9}jJcLR9V^AOK{jqu^L4z1 z&DWSm45XAH+@oVdeHzepeVxpE%~-^<`P5v#(CH3_T7ldu9i3A zhhz0OQO@nwddc({_kUM!BaZ=tP+%x1E<_9#(Pf|n`dA0 z6dsPrI3r*_GU3nB(GvW3hb6C(W=i95ztl?}qmj-+XhZ?hDTD?vL^^12WHVO&Da!Px z{CJv*Rh~V;fx4{Wc}Jy3n(XO$e$Z5W=ixv3W&V=!TZpn@$?y!CGwC>RzYwXad@7mv z;=lnap0wPu60$DGTO*i*bH#U<96KPRLU2O~P|nN&$5!)zB24a?56YeNDDm^>pSr;L z3C;?((9?`s^-15OYn8K>4`)$|w=+w}fe{p~0+|@;(4~gEcXQ$#8RUjKh!cf9%2uc8 zE4_1H-7-h$kan*@ZZk^TXohi4;sG0LYf#(s81wGbMU8DX} zdHg55DUN*QpS7OzF~yTEg)=qt!c(K(sB!LOvqlt{wNcj`s|2*1wCjsMTFF$4$5}4< z^i^}o9Yg9=*ao>Jt?7?J{1Q_?vMz`xU;La~Us(UVHACsBRXfIlyJAyo;-LYB;0fn# zoAFfN;HkX{rjGF(Cp}-%`SHcyx$BQ_-u~Ftz!0(y5 zrrY7skO}ABsyB;6oIIcPTib2ia&;gLC0XW}EgNUQOw(6t<4b zRL6?BX-NmcRqD|)&nKgbEoDGmxUJfeA4&beo?Br z1kcTt@Az!xRS(75eRj!u)_%91lWVrx>P$8Ej_f(q7)G@#?oy6N`LG?#HT!p3kJwM* z{c4b`17lo{+tev*N|MQD2x=AcsK#RK<=M|u`>1)UA603n{y@jFjwhyJ%s>rv_XSMB zSABA8s&7s9lmn$_9j7=_=T`liXS*}nlv_IZm;@@N812smtwiL?+V3Tz zuIS4bzq&o@i4kTLV$Ql?YLxqh#_=_>8HafZM+fc_Q29tgj%oX4PADyH#rG}mv+?hX zN)%|$g`TLgyij`Hv9vV3Dd1nKUPkB)zfq5qX^~7(^oyO|C|n2f~Z-lhouf$`Ld3I^w`l;Mk;+@ z>2f4ai?SMhvYl5Pa~`VashWFV@pV1t?2A3WstMjbmb>h_{$Ng=Ukg@mUn)Y zb&s;(du!&Ht*gVd$SCRb$EdBp=|`&xQzBK?U5+-?Y-}#HpVklFba;w0Ry`YahqEyDY!1{t_7t>0SWnA#=Y{_~^W%%kxl?9+SY-B% zTas9w}LJrAFn{e-)N(4|nabzveX+|7cNX|E6SoZhq7V zqAzq(SyZMYmU}L)@<-~5CR05>J?n_Ym%KP~(z@wc)AZ;^m!hu`hnY=``_-xTwA-AY zqcXHNDu;=ttf@tmtCo?cZZM<{?~DHoQ{K9zV0*z{i}pH>9oXxVf7T+lL+(D9oU=qZ zHlgNmJ%v=xyw6<@N{XK08CUJx9|Qg7$cD2zxAt4}VUqQ!uauWNu4f6TSnl5xQ&;nm zL$|DW@;>X0vbIn=t?8;cBumacJ2Zg2W2q5hKBQnhf8Lk8&*aye7W-9>H}x)4EB})r z1HRXT&!&z+i#!qGSc0^vvY#r&y?C?SIP&0`{gf(qDwe}Xt=h0Qsr;z%BKL`~otp*P zlnb>f8F8sm+zm3zxE4M`@ix=`NOK7255n$}K}HPF82lT6&uDz3apzLpxfK8U;}ehX zV8o2airX;LXN8=eF_m03S)Nr)quEXZ=?#qaERcM5kIphGIQ;k4Kn3 zS2E8&+V>nqo-6;pT03%MU9<4ym92*!W0C`EF6Vh_gvJ)cGd*(tKikK9(pOT_BEJ@kAr;Nb{%aI7z;_TCm(If&aESA9qxSgNOyfYo9q=Gy=r5fU$7-% zZE?5Bp1IK4sB0?w0e2kQ(5?CLEg!aCDh<^i>p7DzT~R$L_X@f-Mb$UOiLde_bx(Ub zS4z|xr`uM+@rtiiPxe@9-fNBJw!~=(oIQQd{Lz}e$n0ah>w&MlsgVWi09z>E^79;j zc$SYE4|z(`%CRqb>GsPvrE{-GpN*b-eB_&|wZ}ale=JXJ9Z(~Zv(a=*Skv^y--Xhn z9oMtHV(Qk>q3`l>*T3`g$sM6w72(P|Efg8h6f1vfJf^H6%oBIJ%)=+kZ1Fj2K3D7D zn?GIN+6F|M(uGp>B~MQooz42iP^w*@i<+nQ6Zq!u!suDsHeK4j>FNBQy);U|4_kGP zpj3aPDf-Iq*~-^fSx!Uin2dMgCgRukddAsG+jHD~E`BHpC0Y0WfitCje(u;(afdBO z2)XCbL-%OGx4hl*`CrS0wci>8?b7o;_L?l~aTwq6KV`#N1}|Ubsr7^OW??jYA(YNV z$6L=xPpzCfF>tWV3IQ!xJXSCT4C<`2O>Z^RtHa=v^XZGnLFmXKTojI1Z_KT{$AVp!HKbr}I-uLxB zQSxP-QS`)oQQ-mN4uY+cvz$znsMhd-Mpx*14EDu#mHm<4@y->4ER8VpKs|~zIaD>r zy}mOEDHbD-oC&L4nJJJq`vhteSAS_|(@%GK>V-8wDcG|chuQC?m^JhAEN?YGaJP?4 zZJwF38gtTir}jp=XYA*<-7=j?(#CK!p?X(kS!RF6wkHw!a6jGUn=j9CE6;=+P0}8h zul#t%qxFxo0@gk?dSOXgdss?ZU%u$EMPTcrIM8e1{~6tL(Ra(AvZlSAvkPjQZmHc; z)O57#i(k+D|7SGMPmkkoT8I9tdN2*~Iez^A*n1Ozs*3i1e9pZr7ZgQ7#gz+gh>8~w zMa#Tw3JQpT;u`B!kX07N9Wafw6x7^W#H9pN)6|mGLPf<~!lg3P1i`}0!mT7VexK)@ zIdCDc_x*j}@Be+jzyJ5>;d5r@nP+C6dFGkroS7?IxcYCJsZ33!U!Nk?A+0t3V`(?X zPx>B%)?TFVlt|L`X*~bUL{GGPC#?6$S5x_IDF6C*2~CZlnu;&m^Tsj%ky7j1$;RK2 z>-Qye0;c{dP5pdU|10yR>!Z2ykxc&D?&bQ{PrbRc8|nh_`$y&T{90?8Ps4IZtFO{5 zm!Wr;zD^tsO`U^r8@(lY-u#!wIW#_c-soBSvPvGs$n&du$v0Qtdi(JA-04kv{V0TC zrB<@HWCLkUkiO!kl1TlCw6acX>i;O`ztce)2gq|{vbN31u`%69#7l*Rt?%PV8co+5 ztzT2GLN=Y=RwRgTXJ~~gLF`+kwN$dAWKHE!c*B0a>GVnen*OG~G5uIj((Jqb&3g0s z)qkIz+(3gvH8L(W7jnjP|z5LeypWSOfId7a!efb*J$v;L{-(LRj^{;uk z{GARyzdW93&0|nrX)H0mS?M<=&HA{M2l}pptb{b)lJ;#pkDt81rZMM%&|*44gZg~= z-FW>@9GZVf@5KMna@9-!@7w=BqmTcH+?%r3G>?*TsNQ3=Hk&8%#s!TYwA?K=Htm@z2?(wNJzP2$vrWx zQ#AjcpkX{ouJk1*#iIJJk1b2J>3Xjp4>ew^p_yINt4T7)rpiM(k;g33dcHi*t{+KF zW_{UI#);TP3pGDZ&Mq#uM))xyNWe6+dVetC5T!LPz=2sQWZWGEu zcQY5!YxTkd^qwgS@sKYZr%+4JTHGREa_~z(-KuXDEDwCr8}X8935n}Lz3@^zH%^=A zh?mS;KYik_f5|lD=ZZY5Q5V>|txwY6ndn_XBVXQn&*VousSB&X}eZV-Bghbec0^&o;~d zLXg}&;>C^FSE>YNZp3MNU_M=q-;;%oI>bbUr-t`%A^zG20#gAUG@8h1_*B+gc6$T{ z_n6?}Ml=Bp{U(v$ga&>-B3&5#kS*pQ#`W z#D&VF&lOBlPdAw8@{TIlPV&=9`S2|UFZgqv5z|bCAK5|fC#IPVKRw+N(=0iqV5^Ml z=%mHbQU$9rfgcw+we0}nMQ(_k+MJl4OuLmo_Zl$4p~Y zF7bO+=64YMY>|Ekq-`yxe_5a~OQHGnuRkYml)h~<>30+Y)U8pc&6Vrr=kUFz2vA>8 zG#__~GC(~C?YueO>#6J)L|HZ{`_Iowv+y}#+n*B_(o9;ROk-Y7wYj8H)VUJKUQ2$Z z4gETiev!V3YDj-7Dz-i+J^Sa>)gV@6-VXIT0Jk&l@=U3I2cpjV!mSbgB;EYxIcaE6 zuXKJa&9WQo+}liRHB;nsQFVGL>9l=i3eqLs6LBZ%rLjzu4cF?|Bst_m4!fR{_M|4{ zw);8sTNrEOgES*?ug3ijZn<5JM!5&VJ(Bz~rE+_~uMgbA_5AuXb*J(rsDsPKl}m6> z7W2@sJ;A1^3=yZYk};g!t}0(#iLV+1%)N*YZ^wBDq;XQ00>)m)O?^6DD)d|Cxa-^^ zFUDY^D(t|+ROBJ$k9Zg$&J@tk$NiY|2*C5(xUFtWJoE9qM=xA<%i+dIgZNMy{w&G7 zd`XFDlZZcYc!;=XKR}-ZeuS+-Ph)1HAIOrZd=)Zn^j^k#e1!1#irBAG@A2=#CHYAC?uY#J0#7Of^$%6h(Fw?Z zpqNL=ZljDU3!eWjB%kH=c`x}4^@MxdPlAX&K&$3?Z_D$GvWWS%;ONb9E(?&_(`y%v zFNp2QPLv7E8{76Re%JjfV^8l0A|}C|4Y$?Lk`9#Nxl+#!d8 z4u&JSek?~>+Kc|;SV7EBA8OA$FGud(-?e*v>PZ`M5Sd>$=rQ%Sm7iGV~g4!A6MKpUrLswouDW3?dlYyM( z&-Q44xaBlkG4ncEXnqhxJu4m{uxq%93!x!Xs{|wl-B3yP>S^WMEI{3hWWJ=X?TGoI zbSM{3odmYiSzyJyY%dNJSO9L>-4eW1pd;C|Zz7-7P>7a}_4!1bvg#()v19=dZy5Ap zu;?e%1NwAxd(kcF75aB^Y$^6@pl?bZXI)WN+_F5{HIbKXLj-mhw@d@u_7}N6MYv{Y zJ&jEhG+jUwrN^f`(NLd*yvg-b?2b97hrk|kxuFay=mqTV)5^6>t41B*xvtG3W(5uq z3_~5393wtup!o!HZA@cHX>pyG)0#3tV5zv(cO`uxn}+GNSSJ|6s8>*0uQp6;8Vj>3 z&%B_NBwkSwt(Ug0z8%)pQ3>n-%s$$-JjRjQHjQz-_!xo;LG7L99KIsIQn4)W)s1tc zI5a*)zi4hJ%0SA2th44x0-J!_o0lbu@~JKAE$4Fy@xu6DKdk_<{ZD{So8uu{V4{$%m zEl5M8iX_No6y>SDpQGp%gPV|Pae;ub8v4;+Bt6qWConESTyfkW#*^(v%U!5L+_Fwi zz;lwG+Zg>C&DERBH-7&O<0gcoy^v1PIOXJXNovSN9;?)qk4k^#B+7OQc3+l7qqzzZuSdSCrz+T6$UCC2vqz-$- zQvZ}`TQ`P{#^`h>?!!ofkor8aA3(XK`9lU1FoA$A!crgR62i|koj@O?#R>=$ZYta> z-Qj_yC2_2%;MkfYbXN42$CPcDx#%wHK$2t(<9E>=$r0mi6~^_@7u(8*+>hu=zoNfb zvpawk8eQa*5C768!f5@6E{I30JB&4$n)4C^_#b%>-V56|6*1GIb%& z{{6f@FBD#l@MwfbW4);869vm}6wV%@?I1h{;Z+DPZ4_>f@N|STg_2DG|EfmeYJ_JX zJRkAdL9AId3fCY!oA@JtRR}LFYM4JQ!gDA-!Wr>z6dr)^^^`vN(;A=ZXv6qn2+u=! z2I5}<|D;CYNeItJxHd&Nfzvo!W@iUIQId0*oaWv=gO1S$cj;bS4d^JZ;j$s_rIlj*EeU86ze$gCva(;4oo%HmH{4Vo&#T;e2 zD(<%Aa#b{v??u!-T_16Lmm{qa)Aa+##~ejZ{5jl6&Xah4yc^}KH*@z$o|BY1CP|mz z7B@XHIVLqa9xpv+#YE|nS!W(PA|@dwCE7bYC7MRSQVfr{#1!3Mqu`WTDcn<+lA4@2 zM~u{+`;o&_Tn9Fixg_htQ*{#OQ0CzmI#QP!>ZzOMpBSYJ4N479O-o_B$lotK$s;*9 zF(f9z*~u$8nc;11J#|c^F4QL>RhK+198bP6DXAg&ChB?Np+PZobs=OkJrWaU>5^0H zqPxY#gr@{2`liK1;SEXSQ1T8=97%zgL-z>8T3h*mPk2c%vlci5DQ-)jQr%vVN@Xq3Div=t((KxUfCb4r3eTCx8ymftR&=r zP6*qtM-zniRFSE=D2bM_m*g-xPsuSTb$y=3D8xLEONdEGNez#S8{_4Nzz{ZFj)!`Y zGb$1UgeQl`ry$2cdK4aU;VCH~OYurah=&~Fm5>(iS(hL}K9)m}XkAW4f)JJ}hf#`k zkvw&&;W2R`?0q>DF~!t;r2NX+v5~{w(_-SH>f=k2x0ORZP(=Oc&~>M}utv2)QN{8k z$rN?6sF(dtIjpXJ8fA>d$P{(4MT!JyMpOvi6^Ziqj1gs3r!Xv8_OFZe*Lwd@rm0K2 zK3~Cd7~iVJsj#HQFOF zJ|ZT8+LWK@hRui?5fi5)>JVnkkO6Xz$BS096w*AY37Ru_jZM=f&lw*cmqzhbP0)t0 zBmo?P6JvE^+~oLhYH%!5ZlOV`$uSAjgLIK;Fky3`<&nuTNvVl28GrRd8rBLbB;*vS zOF?S~SBCXtsX>P5;^IapB+gCA?@Hqx8&)wP#!adBml8q#`$5;I}CRk z?q#?)CoAGra3=gS!{*LAa^cR$xqSfLWIjtda`t$rLlSmKe9R!dnn?%)Z)U zb<>jZ6PKdm;<#CGiwaM|5QBN5YfaTPbOj_P#z~zG!w3Z@HMzybB}QUo6QoOs3J8yk z)ur+P53zTVV@t#hIqLiUg|AmaR1ho{nLde*`U}o2g?o)i*41TCB7)`QG`_G6oUGnc z9JbU^2I|72Lc(KGy=LhWHPYbX0+qR}2r6F?^7uftt-eC5?&k$a<9E8Q+l5w+`~P?F^o)X?FS7 zOM6zL8}+4x4iq2PiyQ+uMsQ5xxRB#Aj%zu-&+#C~vmCE-yvgxCM|N6DuO-KB90zd> z;26y@gX7yA4{|Kw_&vv8I2wH+@$bQL5J!KGGdM2gxRzr+$B#LF!SNc$Dvpmisz}DT ztT<{ozQoa=<1CI@9M^Dk8pjNdYdP-Z zc#`8aj=yj;Iw$dI%TdkIfuk$O@f@ddOy!u(@m-GlIUeJ9p5sl9_cp^reHryaE zH4aw7Kb4yX|FrlB4D~QyRQRWg10HE8Ljyl~@W#vx5z9YSn&$;4dM2h|YL}RdM#|&R zAc`fV!U#K%Ar4o1>u4TGb4Glhpg@8iY01g3Q+y=HzES!nhGS?HksO|kAsTv^6-*qC zd1J&Bhtp|94tx^CDnT6?9!Ca~MT#NfBMUGjTN93PznC42fBD=e5pzAvYU9{>gFsz; z;w+tKOfu$KiOHCLu}i$8pkZzZ+hiCNr_*7#A>~q!mm0jN1Cgjg#Z<-Kf*lk_h@$a> zNeiD&BVn!JMYCED3~6JKPmE;6K`*P~DFtAD1W}NUOi9AjH-vRFkjAx*{Vytgb>Xvg zf8ms_^hp5o@Hk9|8wVcZskkSmB}74-^@HjVc9VzsrQxGSN1f3AoLM&x-k*- z)g&v1l*I2PMKbj6Qe8C8HhNvRs3;6pgA@On7T!l2_>){Hi+m*8nai+ojyrMxrnsaC zUg=3t0fj;4$#d- zCC*OKPvvLB@iED%n2(5xdRul$*AMXH_(>(wkC*uqx8n zpwuYdWY}o0Kz}b^XD6`MT8kvFe&_L$neZ(?F>T9Q0TfyySM)vBp&2Sf%Z zlA@#8(t6S?gTU~Z6rERkq%KL)YbUwHnxCteVxv}oT6qz6BN8iU0f`ulqLhiy z{g^r%x!W*UmmD9H0LvkpP4*h)RbP(c%yenJFO^lA%Cj)?70W&+NynConk(8^_PY2y zA|^RS3>SI4Bl`K{(`Skj!t#_pDJV@$lm}%Hc8(n<4RrIsjNt>~jP(e5z9{NtfT$He zHqucyrZn(Ni%X4hpOcC?a0nJFF>_94Hb(MeaAI9J^C7NHHG6hQ)TO3^t~BgNpj9W8 zz8+YFlxzmvr->_JQ$JzjXSk7DmJeOR1J$IKfTr!Em{_`9hecJexVc; z!#!=7r2veUC=(&&WqEOle!`_ub@Cyo?mC|18rthwCr!--&C6;NKnII9ujdn$B-P zJITMay@UZRnx<>aud!QGD#a_hD4_=@xY*(E`3dUA-2OFg1^E6mb^4E{N_?eJ>^~ag z-$7^I>?P$!-R$-6$nC#A&G3lGDBZN_(J?b(7dEjM=$Pp=Up zy?sWF_Vx206EHR~D0tlXkO>nf{p<7cpTx0QwJ?`**{oWq|C37bFU!mSa5WJW2GqsX zUEA)S)l%?Z{$~Cud1*Nw_y_6T zIQ_?<|8h&^mQL)}mZ~k2o9Dl9vlwHnA->PO`tnsZ3%xqys?%TTFJ1Y*tcEeig;LJ` z)a%=cIG^`(B|l01&VLmb@oOjNdzSP4XVC$9qx*mQCH&2$Xmlz0C6}A(i>@@R^Xp$$ z`VPJ4oEg&Z(@uzJIF4`_?lwLmJStQtPX)CpsZm-jYl^Nh4Y6;EE)|3B&=^d#z~_Ij z{~;1Uua%##U{=8WKyP4=9SRl&)Bux!uE1j81fUup$CUvyfK`O}7_J&v27C;}iyIcb zQ^AUWR=ePj7gbgJ@qHKYAyC~O`)lxRn-*vZ%;8uD>;iW+um@1nLBb>;`DXz80qI-2 zfk1q;%3cJ90eyjaz+j-Z6VeCL9$(rgngpBzyrO0-9T)(^o&(I_xCfXAx7wEWvPTFR zz<6Q0vbsCu0slN~Ovw~(Db#j&-v;+%;5DGe9_0q+^h0^xQ!v*7SaAVjlNWmtxCb}^ zNblTcf-k*uOCmS$6(GHL%Of}5#~lW0@geLL;6XR6ekpD%%RC@YxF>i)PVeLUw*ZtI zNbmH5fdS#zcMqiZd)efV_j}ubMR<2t1XRa?A21I`=KoBH_v>sszJp5yKj8YA$SP1f z3-SY6&1NhLSOrW6de38Q4Nx^7vtnTSLcGc&{|uBLn3RS31lldZh6m_P&QjDD>CbEE z8-eux@U&vOlHNTYMfvF+;}rPQd&UB|=^bSf-1N@z0^FL_kPF=O9&-(l-eo>Qe0ra` znUxDuHlSWun6ddr33qbTyd}BwIr_dMxl1{Qy(_t=Y?AOY$ACQAml`3I0lxws+|1Y; zK<_QcH;XXH-%9C5DZICl|4rcv@J;1yql|pU!dV$B10F^`XATleMGu=BmJE37~2VV$u-i$N@2ovs!zxTc$D2z=6{bpj7YBx_#Sf; zN^X$6ikKRz(Nic^c$Y(72rs#bZ_}`XmtG-ZQ6*zbj7k*VcTm5I5sI?A5~f#6sQR7k zk-L!d7

v6U=L%C*YF@dzfcE1qFjIk<2*rY`g}}Cfz6^K{lzUnV?5;4vAg`6c9EIabb8|r~M>H^( zxhuTeNbWqKkKm=OYAdj(6yE}8EujBcZz-??C{I9V;&)7`?jk_Xi-ioJ4rtz0U~155 zvDc{>m<`MU=BcqSfZR6N8w9KZdO>~~TbN?Ft-1?rtm2d+x~BlWbQ8*en<3YX-U8aY zyI^jI^moJl_M!CLg@YWeu)pac;+Ftj5pLBNd;}k5H1sAEM6R~La9dr z=a>)l2K{5;eqaXn7R3Rt0CRxe*pGApeAO>ddEJBwz(-802zXJzXi+ z9A&@)@XhuVSie1Juim7WClzHt72K|)p+~|gMYXTM`Uu`iD}U%2_*4Pa2(KDL`fx(w z8VI>TkMn~_E=8;w*heT)sK*Jg8^uC3&`=m@^msh!tB+DUL13PUp9AzmdCP#A?5Gen zkr4VhiR6KH0Q5usu*m`|L_W)auOnXiRDrz>vo1Be9PGsGTODKRTu` zpDwVU$sLXI11H2_PtsoGdxn7a@1|HEE3hSygE|iRfxl}4^c+}{h`nyWj3m-?ci}Ox z56Y#UiM@K@b1+3$0uDhs<_jtRUWzNg7|;hSlJp`UxCVSR8Kj@?!g}CAxT7<% z&j}coMf6%l3Ge{oWh@rh5xkZ2enns#80;GG9Q^kz0YAY@p?a0t74#5z0seN`0$!>^ zzkr$GuYL`BD!2<1mQlXlg=%1?a9lX}I`k5B>sJWuHl?!?b_wM-&qaN}pS>xtU|`Yv zkSj20yVO2&fMZe5WxzG?&nv*56JW*;Nj_!3B`AON2c(B16xy967vvXM3cAu=)Ly(4 zCA+CSuoEAmp7ueH_DS|Hdq4CTZtnx6FYXF_vdgq^TNRQWKBX)LQawHfQoj)JsU#2e zA=nAfT>&Nm*B_>OEE2RwAXm6y@|g% zI0RS%j7NE0&r*FI6^bq(KZuue3HBAJxlHMU=~txhZpw7vSLh#dz9ze?6-vJm*gfR4 zzbX|#`@koM^110X-{?@@F|eu(cW)gxM{y;75V|%k9!bEdrvRJ?$X{$@>k!* z{u#6{+A~N<`}PQFZytry{yRe2Uq}A5e~pm#fRR7#;UYKfmm;J+P1mTr|KiJale9k2 zkE5ESB}WyZj*mGSyd&kuoMRV`b{q$C z%;5B%97{OLYIm&!{G?KG6 zPvTS3C|@%D|Kk745>Sd~3ED9n(t=`609pZ)fcm92fCJr4MmGG@fqB3cz=ObTz|uza z^cE4lF}|8=$Vd7X7y*cbzj_zu5=g{~A~m=qf4gSPyxC&-XZP|7ZpeY_#Vkf`o5#i_qOIGsEgy|+JB zwmp~|o*VlT#fZQ7O23)hhI!)L;1E#wqK6%i+ZX3_dV{MU_{qQer^)KG%E-iisrS;~ z%>-jbURIyQ@LHr01jp7IGb59*rQU*0X`m1cnI_A~+{mP_kzgQX4K@|>vWx^xmfmCr6E|#>vr9GuU~^Buy(lawTz9j?`qn zWnk&D+IHyFqeZ%_j=f)Q(fN;Zhl#(Oa?H%qnAg)Ql#YrlrWvT`BRKZb^ytZYVPFn@GHB(5BUv4>-bOz)jQNmjgIM+&yKXATPCSX0$7nwrPC5=$`f*Nro<=dV z1S13WuI#ws)a=5qPIUB%`~1bsdn5k{{k(@yHh z%>1@-HT@ejYMfrB7&wm9cdBegT$#V@1wMC;gV# zpV1-1@!*NIai$s6fQy}`SGTsXk@V{<(ytDsfIN8N_d8`>aVKaG92_OOC< zRx}Je!ZZXMknw?XYGQ(;IeH3s8e13#>Z0Nk6QUfuX}XY)sYN@#n8@VBl*DPN zYLCR^q{L)#uc4zWbOYf^ivjiF{1aVuaCA&^lp4EGQ|BN~d=ecXi`Z^zCynDkO*eE> z8b>Eb7bhnt7bn+A)Mq(5Y2Xr_n#|n)mJGk386sua>8}~~4o{An9iFTcbBppt#Kd9W zq&griA`V- z^1O^SlV_u73WP4GhvVM@Li~9n<1OWx$SI z6IVGL9ol!#BYT&3Zx3h}`reUtebt(i-$nm1E&a`Ne|FjT!KfGF?zc=|*JWz1UC_DQ zSs}?Q;@_BGGU4~?TZ;`=<^)|F_WiD7FSR*(sk&qS*!=UOM>@L?8~Aa;Gn-%9byO%Z z3fP(@oP|V6H2omxu00KUYP#1cxvA37sD(V7Q5p(HDmV-cjg?AGSE6oZ(B8oENs7yZ zm&UJIlY8z*_g70l8Wd5r`%_H-1-CKq(Tv>YrSWj=qv=i6*up|xUyb<6U((7HR2jB^ zC#nNuA`>0kYb=S>(8A2g*~xL>;JyO~IXey-qOm59-3_cX?K3P(hQ7Uh)bZ~3doC=z z`az$dR>AD}W=$#)SR2G^Vl^>&)AMvoBcoGOlZFl$FnjiFhj_U;I7BAK4@ioQNlZ!^ z5SbiT-wt{@X?RP(lh_u3Vru}_wFi23!yjrB4v4SG%#?+KkzJZ5MKe=&YZOa$f13l8 zJLSKahg1wNQF04Gs5MZ)x;C^V$}EMzhOTJ$;h?bMxm|ztQ0B~dusrVl+@;#L#(3VT zGEX?4WSzi%9QbF~79ZtY@QEAVVadDJo9;a@&$zz)S>FS~knzVJZu&DNcUo|@uS?;L z0UymDx4r9wE9LjcF1fV+gS$OOyWgDcR@s{{rK38mC?L1@Wh5c7f`EMB%qx@x`)sI>6ANvno z@{mnCtfLYZIT|@AmYytFzq0jVqnP&tBX8>DLnv zZv6cE)K2NQFS{;XzUk5HJIBsCa^rEy^)_t9Hx3tl4lPLkaNJu4d*F4^?F zJ9+cXMO8yjy;*a1>1#fF{U+WSGjV$4)m%l*54%_1?*BvA=ntnC7?pkIK4wbhwVy9v z$a!<Gp9FvH_JL?UCS?? z6z6DfZ&(`|WOVe=>6YcmS6;->8uUCGXGf>O)bk9HoCC@EpVw7p zDgN5+D5%>}pxZ%fJQLdOgRu`UEeP*_vE#-gJ)fmnNRwCa_X&a17hDP z^BLOt;gCy5@>^_=*)Z9ni~n?!!MpSFd+8>9x@gxSpD$iBnr?fdYE|csD-|=XCm&7i zVYIVqu3bU&;%)AS2lQB&d2dngsFg|6qmL&)iTUPMb*p~1&Xt`{b^fNO-+-sHo;c3G zzkbsS>lquuKKT5eQ|m9DIeWh|ams{UH;45}x6`DSxcJ}yb*Gi)KDgO1=InO7%Qmd3(;$w{HhsIR1j;{duvQttVbj?Ke1T@8P`FH4mIe-maN?zw2ucL*A_z zZoYM5fR*73mVMkl-rj0*=9aTZUU5HK{Mm(9jujti`TEGiN3xebnWS2~yWfBtpRb;_ zwXgb%SC++i^&Xzm-D&lV?zd~7eQS01eC?4~x0E+R-hRA4-e9C~ zj~?81_IslSEb8=0WTEH8yQ?&3E9aZ6YTL#-@KHBK?zV5fxwSH5WUbX(i!QuvH1pbn zSsiERd}ZJIa9rEs6D`%#9<>?}u=>guPZr%8f7j&7_Mp9|>|@feRfqmKTK(~dkq656 zPRa0pdu~Bjzu)afq}v$1>F0Dk%)RpCPQ~{}4Eo+BMRD}NtuYK$Mjm_*u+3`C^CSTn$BH@Fm=)M>I z*FSMNyXfcP7V&LveK-5=(c=rPXN}aqCp;ytg*aKQYxWc}1%6 zqV0a{>GkLyZD-q$OY42EpkLP&^E>_$({EF1Pv zwRX&EH&2t*ZZ_5dHJR`K$Mr(Z&NB6uEAujsVDU?ycbX_2ThujrQvowcdC^iKv~X;t zw}`0_+Gz&V$1`xWHBkTN*6Y1{6FcVFTnIX|?%CM6trzb-`9W1$+}u-Zvh#nwH9-@o z$F8NLr^Y?c5??;j4?WS3^^C+C1T8T{ZMM&_qsE%jj{NjY?o2Sm(y*r}Cw?7@fF(_d0(0L_$elHv0arvfy(6RJgC-+&rJT@dp z_r?m3r$2W7;riX`7k}A4;NXeGN1?YCJ2<(-e>OeW>4g{juKaLC^`aAxW+eXjZU4dV ztInO6Qq-Z{;SnFUFT6DL(ko|A6ukQD2Oqt6_Em$!Z@+F^QeZYD<1O~=+dnV8dgmL@ z-9H^3+qdMyAIj!*`z&!%`;zY6CcSQ$Rb|0e*RD8Ix$5A;J%-_fHUy}T9=z~q$@Qtb z_FTR^uf+hJ#i7x0@4IyTZe!NIwgo@+`Xl_Ct$pT)w9Gs*Cu`e_tKyt3E4t3jxMONQ ztks$yOkNBbe0lu2ZAZh7%=tWU)YD93kHwp_+TPM+wJom`wo)lLX0^QlzjJjpMvK^O zKZDn&3PIV#BDOHrs0Ck)FfkVl^0EXiWcwnzD_3YcXZ^}VQ>DSO*!yJXU4>Ct&BmU+wpm$V79}rxyE?f#I6Avb(imhY zgok;VrQ0&kX)?d~ZyAHq1XrAkcBvnOy2a~~G5A#1&q-;~Tq5fl9338~OHl_01*yG) z{D(R^xqI~Ya(46TKX{;*yCY|(w9sQmJ8JvmNPzexb&xKZj!w(VY6bZj+{0S_xAmiN zA?RXOvR7P41wQq}JDebWg{D=Y`Ts2f;3ZR9bgdVFUXBB#B_DC%jV>0eJdUnTgETHQ z@TMwrIb_0*Fn4fTG4?!AEz4c>s+(XU2*GJmD_83CYJ?w+j3(}#k%ZX2Yl_c z2`SfS%+#j%th_U;`>VIx3^aFmJt8l4%gEc`^$4CmCN1lY^J|Xo&2&mNS?uaOZmxCk zy%N(tTf#2bS`QfdQuQnEMLj+8+1B|XorX+mIqw(E;K&&XL2H%Eh8_zy519Bt!m16% zKeh?Zoj1X6bXDn%5#5U)rG}0ev+vxxg_`wo*Kg&1c<`&#_|zj~dxoUXxR9B$u+s}! z6~7M{arR`NHfQFJnYZNA#rrjjR(B~L>RW2G>&wzNR-IzQ?b6>^z2w55*RzkfS$Wo` zEWdrfhsB%sceFKs>yw!gPv;hvpY8Cv-=v@}rAKy8e)hv%dC=M!lIoy0L_N7>d5X7v z!9Gn#?I&eP@jD&Id!{uU14a&=vdl5(fycc0BRZdOj-Iq6e%ya`3w=>4G2r0- z8pnUt7_b@MjaOMLXcXJipryuC9%d?4jhZhO8}S89^pQF9|4@6rbV^9^*)sOp+avep zzq`24kygba$?LA){o|J3h($m2j4GLQIDG!HJolIG9`HZAA!t#`iF+d_v~Y0RJMG<{ z&X&|1a{lh?s)$!~M|T*Y1r=3zomXpxR{LY@yhYMeH zyFI&oklTXoN1{>_22cBB;~%d&gj_uC@ztz|7{870PaU6l;p(@A=gV66-1STKw1J;3 zKXG(i;3SKzZ#ER4m}8=w7LxeE+02dARTV8NEX&6wkNU{a-d%GnX2j0Q%@-CIzcX|o zmcD1g@J*DAo@uyArajp@rf4Lr|Fjhcjb<<{cRLSq5e=V< zHp_;pe|~DQ?$IBMV%Ef_2AhBNo+-;(^5pLP=+XT`PaMA$er(n!FHP$^xw>6YZv#hb zx6Ym3?0VkBV#WM$&BVPL&(`7ex0HT>6NwB%dGULM+YWVcr(9GbyU#|9Db+q{XsTaa666{WPs#%(G=tlU{5l4G> z?J>P=awnT*AC8WCEg)j=)MvA;hgFB9?L4x~-A_CALhHAUUYfq>(X=AvTF-^QmX3aw zaBJfid-LzlwKsLFzUpt3`*F6)r7FG4p4%JFz4+q*&ri2MycTt2n{ZTZvO4|T)5Arl zJ*U3h{%yfeocX3EbCo7@W!)UX zL5bCG%`n;iVWq*b*=csbXrBR5w9McU5HtXrqQi0Yg}Bb3t&6U}+fFBSSA2s(zuk#9 zlz1T+fL~*Z!xSMBU*3jd34(r2m40`Xegl<0LvT=cZDdEpxw-KV*<;Oao-A8GJaeXU z*gIP{+a&J0^ZwaKj-P#Lc(dToKSJU=YW5vFG41q>8;^dhPCs%g|J|MyHHYuU28XEn zj?MCH`=l`F^|KGd+Af=QR;zV;>)MnKwNq+d?%=Y%$N15yzq*^3eE9jIlZ);TUNC8R zm-`#$jLHpUAG)^g@MyrCOx?Ey2VyHvo&W8Nxh!$C#_PROb=Z>RhM!qx8 zCjR)_TerOU$D##mXXK>6AAhm@?V7GnU9YTpc=A2dwM(}hdAHMU1NX%T4`jS$>#9D` z^H$W)zd!tZVdTV~t>-!n37NHJ<_@D}tzT>ZY54XwXEt7GHF9IdiPCf1OMhLkxVrp> znI<=;rmnYDgfQrM@QprtB3xs8<}49IN$q&-@i{@7#^EAyCCz-c9We$ z4*h)c%$2PD$>+L0Jh(*Ymhq(XYxcoIKAL>B#BAJ#xv!?Yp!#8b|DWC{b9QLk=TXss z;NCXBm+bVvYIksN!FOvv+U~yP^p_po{K}Tr*l*n0W}4>Gp;V{QHzMaf+OTXu=TkNx zPCT&tn&*q_0%m@*`QnLj6*1q39KG&w+2roHUc_Jg~|ydT3_DxJYXdm~0vdjsswsOgRHuC^f|&g+jSpfn`Ty z@!5Q10k`pG&hA?oqrn-BxF~?&0BQIZ{#{XD9cr0tv<@J3ADa*c+yw-8Ctu=i%Wv0&vwjGnqlr}B5L&Ne{YS7OG`~n zUG8ZPIW5|SX(k{u%_^r^&`KL`QwA)vWn72uI)c!N@uq});oNm`6J_x+vi^x z`=n1VLrvx%dJGf;95a8?Wd5khtkh&4F;E8_HC;JmzglJTblv70kM}or?YFo~Vq7ch z8O4UtZyZ>O?TN$g}+~K6*g->q;Y?*X$ zYS4atg~Yl5Ep){%Z5_LA?pu@7f9u%MvBiMNp{sYV_BU099ACbmSI5@Xi>BusY%%P| z@e_ZE3cs*vlD#VO!W$9n$%pThpPz5Ov1RTR6aV*J49d@&%z5nEf9mM7vGCQN8yhyn4Uj#AR&l z3f}T;&FXjCy{`_Ps9o`Lwez5Wu$50*^ayM*Ir!lD4eV^^z}`1s?Opc%q?EynZx{>1 zrYyO!YW2}RpBhitn2~jTP~eIKd!jeAdfj??*Gu=`ju`4VVEAwC`Wt?tdGo}LHj~G> zPnwlJJT!awrU{ihRL?%!(EX3n^ZU+^Y2|PWd;VTf2L*Ue=J`YKnlN>WWI#q4w(TCnCy7nj2qYlBrha=PQ5sBK@*TX@L z!^`jm0?1O-IK&RiHo7PWGgC9u$^1CTsb;1@G1GD6SQ{Vov>)+$UwA?qes6$El#Jpvm8@QF#BB6a`vKqB&#MvW8zA0l)zGp!R;(j1YQ0}i+2L15BUXoKXCC;Zc-Yj6!jZK$Cw zV*)0Q@EsZI;~zRM$SX9^%iqnUrDy>7ru7Ii2GWN;)bgg*?;Z zso3@b(Q{JhBu{-h4JXqNON$?ukdmZ}q$U|CB|LCTbMZt+w|9J7o>oQ4Gj1daFb@ec|Pbqfj_;}PT) zINry@OJDdXAJXt19Z0Gm)!g`W&lGY=X*obIIRR+<$xFJ>8=0a$bc&Ds8y;XVE(xDF z1=4Z&#LPAUf^>nU5R(F@2DHA3vm4MR#*qi8>(!Xc0GWmClH$Tey8wyETF1=7dL|&p@B?UV$K_qaQgL>5NR~>E-9knrKizwmlskdrt95ggW@8OsC^NUucx5Tp|6` zRL+#3v?P2jiJu+eeDDE^#<8Dzu$T$yWJFR)x#`0)BbT<46RfyDDo8YZ^-} zllsT%(ThKqK{clrV_XVOPoy(()xkKpTo+eQuGcR}^m-i`sKf;}<~NCcSxWjXUOIgc zdrQPi%kg-N=N`Sy&vuqOv@&$zGmtP=6E=w8?D^4?2u`_H(( zXRV0#dnNovbmObQXyVa0zX4u2FJgx=v+y$xm&2-=Eo-4@)dgQ)GuBq}HBSMWi_cnd z`v^T_8z6~EzQxcy{KcM`)l+D%O_-Y`Iryn@iki=$i|k|e@13JSwbbd3t8 z1wS8upJ0TrFIwVH67E*GhvL?|)Qm+qB&Q@t!cUZ41|Fyk-njKHEe<4gNY>%>SxJ^8 zQ!!m%Jt903T|=M$|G6~KICF)z#+sSm*^Hw%ij<)^QKSBPHt(~7XG)e!bl7|#(mEPx zYpO>I1+^v&r^vi?xt{v3Pf8}7S;Q1~j+?UJz&#D5E9Zj*sB;#TLuFOU4xgKV_$!>vw&UlRFQ4YE$Z!7p&#~t;~Lc9;;gl z{z8{Le+6zO?$8W&Z>JFp7TC0RvteybVj^5sCML_7VEwgy`?g&=wrgY7!=_tjD@*g1 zeR?&z^pzXW+L@bLYHdC@)7mgIs-rr$pl;xH!?yhTaQ!g7czSW_=~+vP=MDL&1k>d> zw8mG9oBSGOg{g`%0z;YV4z}(G`#kkp-N%sK({A46dlqfS-CVmW>v8RYrsC=I@ix=m z&qJG3xv>jXO4S*6oPeO6neFTIbi`_FweqXRx0r?vPs38X%Kb_0ev)tBN43F}HtFZl zhqZNftJZ^EAUovOM3ad8O)=+qLq~?sZqRpL51=b6M z0_!%c#<~wHw4TW3{B%kfa_2`j2itU&6ms0s%Ck2pn~!1 zLC~RsN0Wtu-y;Cf5&vA|fMnD2MAHDzsaoDuR~rO+0pbz)W~U0Bd<4>siU7nEP+8?b>QofqhC8sxs& zky#OKk&?Mo?bg=(7U5RdLC_XfS+g3VKVZeIY8CBcx4>pTYOSpi;|gvy<=utcykmx9 zI)~=E6`nC-W79e?t2^DPE;^4kX~V|a3oT4T14Dl$vCmpmkzk}ax z5ABdD$m1;>A=T~;R;WT*@cY+NS#q^C+(~Cq6t5lu2VhTG1;$Uz28mQ&!W!n*}RkaPr7SsYGOT5 z*Y2ouw}J;jCq%uVvP3H_TRcFyOi=FIbA`efC+P4oZA~`HR&^5on}u9zGq)8+xy}L; zW%1x7lVl3nP&t0@t}XmcX|bb^8MC^KvJNz2`!Tkzu0nmU?xZbTq)^4;Si9gM#w_>r z3Rc(){HmQezUlZ`PX6^3eAuY7a9YjmZW7YA@^D@r-A&R* zd!ciS$wCKHIiEhp%xVp6$C^KC57a>SzsB>&HMIwRf^0}{NLJpC&_C#piJ<++$C1kb zdPOpL0GT-}+5Q@o3kIgT9qwo+$QM7`6*CArbBxuHo7w{DXdh!%SoSgG{Jyq^^ui6d ztSh#7&Tmh8Vj-5Fc<*~g`I7WVUnfN!C7pv#%5CTYWD`?c+ktGJJ?ma%jk^sKiVPXc zumq9`Xl(DAwg-nrd+-pltX(7&Y&fs2>43K14tIOp<)&=EE7R84y{;{M3_DfD9uKxN zKpQb)kQb{lfh{=T-e@?b%jGIQH4Et#6WmvvdYX7TmYHL!A+5XOu zUnksFxZC4~?GokbZ6wL_wVSL4N6Q_E-Y&_HbR)yvSh68)(PlY6lDR3DxxJDVMngZ} z_yTsajkcyp!S?U&uPyu#&p*34EH~|^Ei^GldED%mTMI4kbVq-vveOp!akE?A7k)eX zXbZhTXCky-zDO{+LpqI~ye0!}j>=@&Apj};CUZ#+3gPz|_nXW@U-4@xeeVyO4dBx4z0n&%2 z>tE^*L><#IWhCWTdOCdO;93)OadytE4DBIi?%t6~;s ztc8wuBB;(muR0>tCGphfN4)Z$)dqJXTcfm$&BT0!!tEf7DpOXdpT}~U*Gz4VG4g1H z+YoeQ_msG)otGbHxmqCQpZL^*$3pOypYtFmF+YV;er_lrpVllm)|ibgQCN*8yFI)O zn|Zty3;xO7bvfDGATw>DpCij9yQ_jf*}Rr$1Dnt%XPaT(6v$>OkvDHQ?GO{QE^UVk z!b}<~S!y!^+oPUPM$1K8*v#%N^=LAMnVVaHCL<&8>pgE>%oeO#>_j`VLi+hahcoCq zbC;nl^vDW^)W{(PYvp82>OdE*x3rugSFu-saFJ$$hy+6x1QWcGXlo$hXTa*u5lnvXJ|AV&1!iCisq25J0=$f3zeXz6peqf}7rDDH>_#}@! z$X4|0udV5!milq33%Sn{!y3u(By8k^pu_d!PS}DcumR8JeIoWVRDb(m2OeSk8Pc0s zeF7V@|7FynLYe!q1*;+1h2dG`y+Eov73wV-M}L+nJJ|OWm}T@@jK#XM1KFL>_pW6% zueH?{4nN9fZic?^Y^AN)1v{JFQ(KVVlNBuM?^dv*zfh3f(;aR_K_2?<572k+?5izA zpJPem2QjVd^=W0R*}!b@v<_!8ZPYAy2YC8o?76cqD;#a8E&Kpw(wd;3KpV{WV1+(y zw1ow|S&er)xcjo2Y&Y##6Gt{SCPF9-Rx_*pD5G7bcI-Ec@&c`e4zVR&S+JcU8;kMt zjBq?_yR!X#al>w0jM`$DOXDRmPq)$U!S=by?p?f{fL~tc$Ak6T-)592kH$+>hrHc| z?O-+Yx-hFlpx1U}`-kAU5YJ?jY-FAjC7xkB5ZAJ3&O!KF3sy7QVcyaX^Oi8`|60Pn zLsqwx?d-W-yGT5!uEg}pIgj0}hSI_SWWR}lWK&}>-lXzJWBfi`P{nSsV8Qtw+Cr5q zqb*W6$%kZ<-?m;hZg|e?3*K#^zr9iCZDbi4H7O%Ok(VsyM^8>_^G0$)+IisBKu%vs z`PO1Jyjl6cW|4eIHvg1N&U4;|Y=0Q~Mlsz&NnR==i~%RJ!q1&ytF#$`1u1wQj6QNW zZVze9n-AIj09$ywwzj(GQB5wd^NU*|gTc6 ziRl+eZUOBoO!gbcX{el}Lq3wbk8CeC^YD!r;~rDwVq9LM!d!v$h{nPh7&D9Uc$`zTgo9^a0kzKfu$GZ2)&uI$^L!9iG;%Lw_FF z9r@Y^d-^fP9$|8xkMg)ue_ErR0$PB~rjkv3DKM2A)17DjZd-xExFcrEd z%TFvT%1<_!Y@N!C?cZd?_8PPa{$n%xYs!aAE6bkZ5IxDgFJv7JnZv%^5kPN`XKzvd zCU-K?zmJB@N!~N44oNP&EF@ny@cHaX?K;sPdZVvPypJqZL4QbZ>fGbBHL@;|U)WVH zL$pJ(X_X!oeWQsX zD-4tCPA}hLeq{aNI{nY;i)b53PR;0uEJNzID7|O%j^#fHlGbHN*J;h=L6Cqx5$i0G zO02~g6g=sRK2gbXvC|N1O~Qp*V^%}sq*}~hM1Ch|+<|#AEk8L`EDYN(kbz$IH2e05N{eAmzg{sybp9@o;LIPP-tst&iEKS>`d7H zG>n%p_b$aeuN3pV(*26i#}6?M%vQjTw);Qqy$gI*#kKf9`PCj>MBR7j%rSrQ<6LJ;I7f{&bl)j(>?0j!E%31BrRT8jlN@kIbzgQ$g|wzX9g zf;IskSP(c+&F{Nr@12~4V0&--`~U8}f5PW5d(WO(vu4ejHEY&9mYOYkdkH)zI(Z_` zWs4^t2mV1Ou{jx!Q!acX^i1dw#w(8yzr>7haC$3CxU#m4ay1_C+ow}iVE;g+#|LOs zV_5Z4j^md|`r1xXo|=sb{DgtNAbF+lWGpf3pka!xK|0?8Gwu?;Yxv*NCRW*Pc~k1? z1D4EzH#0Z;#Nj%)O zGwJZoXm}_Mx$(PZxx(^Ul?wYioc((6n<&w>%yl1;D;damPqfx|ce^HeLt?Wiqwm}D z0vxoA&O|;4uZGU!4`*-J{3UYhaQ17>di=Ndn06wu(F6f@iEqi3guzOv;H_COg=a~-2T7!ObBcIwh%*U|5HSpAZI z_mE>-YU4_5>jPErGs+aWs#pc+Q@cI4nq!UVr|JAeKHBys4QD6(O<%BWMtiY0+qn8I zToVxr#D!D`Z)hd<$IL`^5tausSrIvS{hkhgJoB7ji+87%LdMlS+tSSxgU(;WiZT6{*1+jV#TFZA? z?+{y0i>|Rlw^_7h_p?Ppi##ybHFUY)EjAu$!{)Nv!M_aL1@98t+315k3;XK#;mx;0 zG1N(?Ii-zz>Nb|Oif|s2xv__OlBZH+<06fxiYjcCxB! z9;Xkv@~%o1oQK6hL&g&aX{1f-k2gI!ucOtjiOoDKc9fbaqq$a{&~9sAByuxGZHie- zde)kJBhVF)l{#;5{mB~|K%A5nCjU0LmcnnA zoYv{&-Les!lFy=%j_;5LpPG7&i#g#5XGCg4C&$7%XG9>>DI!&HZHkFV4fTphZR+M& z_)U~i+0@ODHrn9oV)l{Tqs*5X8>*>818Zg2dw07Idn^Co^k@A+mCd;xTt!wS4f}cD z65<+JLu*9$XkZPkB*LFH%COep(7~m=!<|?+OE-?|GE&Vls?bN=z+A?h>gYo%wdp+a zATydSGV>h0IVx!sWi(xaeVTHb?qNOXs)$sHE9u0#-buAEV`xd=6Y13NJjcQY!F7pB z^-<>r=Kbz|@Tptf(0G+v*s$Iily$C#^%22x1AK?6%Eqaz2}VDV)o@R?lzEORd*H_v z(jT@V19iK#?!Oyc*R`2Lw85*0J|q1hp1y#*-;h**&T5YB8(iocqU-v@pJ@JTKci*#rhldmpocNSbDt3RM!yr3%W&)WL*|}>|%7I_!O~$ zBkNgzcEz#|A@8I?x2%*np-Y@4mm|qPnSATW=caAqpYE8Hz}!;OMe*(?e-yAMC#u=o zNu$fM;3Zn{qFUbd+ITqpgUEDWB5N4~{8>r#E9QTN4d~Kd#x=3GL?%W|nvCA<=}!4E zs=MdLiY*0BLbprrZ!r92ti455hz-xE-P%K*ckt{R>aBbW{HCW;?^Nv2><5}YT=UfO z$hrZ64D`doo-)U0E{|QTz|GoTpQ?qvKC)&l>v^tZsiVMI%6oypfeuSt*saO;Ien=B zc%7+Zc>2r)e^#bdj}o`asiiJE!|KNTC?_ecrLLlDB!%Uv1AgSwV}q^~89$>cT!y>U zV4uWOR-KmFbsCBtTxbMexzi#8Qa2BEnhtIm)G3KN*?47AxAy8XkacLO%k#i&uP%{K zrw3hwyrDawfg3yqgU42Au+QQJp-BeolSPzm(<@S70aNI{6`l|rY`zd2CEZ|)FT&n6 zU+fH{gU}_D_oT9|nkN|7bIfu~-YZIT9v7aq>lKOY(`}vSm_7AmlWyzCTosrBF5{6c z8Ru*(FFB{Ue6kUBa4mBJY5x-FWYb9CG~jDTF78srcXl1qUD6jLl@Ux3HXKhFGvpY3n(kSx!h-1xB^HddZN~nv6 zepHSQX46vmPVh^j|JZSo$HRL#-r@X2zt;R@)2;UJO*tO=x}Cp)>(}k)M0lzf{an^w zrEWb5rG6Ep3G$P=d5f3!m3m1!Npm<%zkybVRGLS0*$tkrTh`s+$=zzcw!d!hL^sRm z-7!XlnHD)_&*yX5FQDZYan16}(r?%sx1sw_iFd?*AiBM@Nzp*(`?h@c^`i`fwH?-w zJk^EAr{CvYnQ6FoB^ySmH&N~R^qZzf6QG~S#3u4dJ+9$=?j(J+@ElI>X7ig%jGW!g zn*KexiaTVe0J&6Jl~;SE+e(+cmm z!k=5=^H%tV74Ek}7)$^4wnC2;jtZB%dGmE*eI3ISDb7q*z}mJRPJEn zE<{N2tK~QGBBjc>A-ie>;U$Fp^uBu=D4`!?v-}Bc`Ae8+!k1@z55I%wY5aPR;U_n4 z^Jjm;p_bRXJ zZh^OC!2U6U|FEelC7)e%xT8qWE>;hg%#K$Imbv3Kt2gE6*JXx$i*96%B@A ze9P4bcvL;}_fJ!xJ31J`HGyz9VJ_hx39ATeC5%RP$afm>5TTcjbewRvFvC^E5q2g_ zKyLRVL?2Lt2}O>JEET=rb3)MzzBL*nL^lv&{#XJWLbwH)F_EzRJmfB+=neN0itg~D z@tITfhqd^37X5*FfFU}>Pxvl+#5-z=Av%P_i;PQCRr>5$xxhi5rs98+($4&S4+UgR zrg>fYEOR~iqDHY*ciJO+OB!OZRW>y(cNqf$nerZ`LSln!?4=ei#g0;2?+7%$f*rJ} zX@l!U_AXd!0{Z**hl@W<0#hk8=T(M zB;sY=>j~9Sk{nazH7%V>WJc9rVJ{^5${dsC;Ne3x%aBRLOn3HDoTG7Uv4 zwVL_5EA0w%Z@Q*&e4ueIXFmoi!E1R^ab!TJF)j-<#sl|!_A-+vsrWL9-|Z^y9cVm{ z_+eIh<18!Q6KK4M_{((q-AUU#E%BESf0Y$q92P&&jXhe*?B9}hU}SS#9l=8)(3<}tOX^{m$h+ei(+ShaD(e?Z|H#mDo{UF?=z^WbM|7L&fGH~>Azu*QCoP4 z7CfC_+a$u;gm=45*l)-BcBjC@4NZ?8W4}zxy7n7-4a+wN-T+p?XlzOj6K_}X(7@6w zZTgK2_~x*0XtWApPtyC}2ebEGx{25`%)K?H%~|;NFg%S-WR>h;khOzh)|naEpJCfE zr0y;QJ2+=sl5k-v`)11E!3L*C_Fe7vuun$p9bz{T`;|TJ)*`3uKRXQjGlknZTWL1kWR(vcy7#@H5HE? zt-ej1HEV{d)!(lklRu|@xZP}=W=?CBd9K`SFe86nzB*z;$mG%tDT0eA=FOiw_HGr^ ze#vQV0I36J{;TrmnKxfBgXJ=gc?%VTmeff;FvT?Mq}JPU)?GiGhA{Kn0xn&dHbebE=gONVB+1veUnsSw!_{23 zLTeOG%)6at&5pWh0kGyQik`FCW_ylvK;JM?8b3SZV^?@pUKdp@@xWpmpM#m&p( zvZJwgPn|J;E_Gz~XN7vqhHg3aMaPMA(?J}z)a12m z5ug^CGpRt{jDkh^HtCdl`qUCk%4_gHIF;JwS2cjzX||xl=1uiMbfK?OlRHhEJ7LzW z!ufYvQKJ`H51G*Nmo25)C|K}Lf_Dq;Te5VPa`NX{y!70u`J3s1Mh-2qT9b72LW?dd zTv_vGP=MWuE@`QmO<7&zYoJp)2BbMwiBH3=Hx^)L8hdyC)cJC8jZz+3Uiy`^&>A={ zb1qQz^x3X*$5 ze%@XAZF+7E@*q9$PPtkvyLIc#oHuK3;hdQ>F3i6h+N7%S`C3v<%%7u$6g@S4)_jo# zDkE)z+}P7v4LbAoU!s745l5^v%HKLWwiP0Vv=i@+Fzu|l8-Zog&~=iP(K*1BdyiYNT@Y5zg+P%tRQY?13v`UIo06rrck)&6xLx_c6?^_E zaS4q53F=~~G?a^aF3?Zn+%(~PXmTN6)4*v4VOBHrx%y40BUnq#r%@}VexU1ft%Zls zNa|zLQ{K#0I9FZu77T6_8Wv#>@xA9)+;Qg+Yqi5iSKU~63=)-KH~}bj3;E=-*t-Vl$Ag2j#)FO z4egJsM`9vldbaq3OP@6dOR=^X4jqXf1?{w1+^^1=HFwr+^Agyksa-H?N9hULO*;3i z-*Knx7{Z%#nq0Gv@24}Kkk5ERKH~{F&L4Zm6Y?2P$p4EyA>WH9fTWwJ9~Xt z{_CmlKlAKEfB9~G_vs}|c7AYuU5^gue|hz9N`BYp^GyS~EgJJsUBRgL<8F)V{QG`C z{8g|Z^O;8~0srhdnxZtnvTv@cwk@&lu!&lS~xZoGB_S}|v z*99Ar)2~?e+y|H5Fn<2q-*(ti)!3`YRZVX^S+V4rr(HuQE+`t`Z^F&S!jJlS0$p!j z`S@2CExcgxiu(CGKfCWo?=(%G_vK}O&U^Egtz(ZJ_;cgo#ltpyR+iIq>Ps)x|N7+* z20nOV<}ao%o7Cl^qUf)O4SlmiVAfS%9s1Lg89#n@_ao`Ae{k89>kHQYKX-+kbL*I2 zmQMYw%Yc2ycV%C7(WhS}FZ}ZIp$9hpu50GpmHXBXcXZ4RJ$cTfjyA54Q*l9^@;|~A z^02X&q~XbT)p(qGmGc`^osN?BmVr_716hpjlO>JmydN@ zwd;<%yXNhS>(jroSN`C$FD_j5+RHOJNZP?y- zB4$34b-$CnuDjm;IY3R&;x2`?lfgKYmnw|3@Rnel^EC=d+{lSAPA(cY}ZX z<*=(i_~@nGg~6gxg93NuWLAx;H(tGURa)|;w|e_dDBIfa(C^)EZXK}0=j=DW^TT)c z?{Q8=O4?H&cN!M>i)YcFUikXER~PPkFzM`76Y4%XzB}$GgWmu8l`C$z?Xq8X{p_1t z%ey^v?7q7nnBB$uaKD*9TM_WQnmHhA@E>1Xd`15o>-RqN^3Aq`(YCITANc5n51$|S z!L3hz7{7nwhA%txm~l_+8CS@Lp=~d0=)Uf^=gt0ldgk-HXAJFCv|#?;lfk9aV)rk| zo@KnY^@ERd{2!jREaIX8{Zg)Zs^Q#sBX(Y!eem30JlOBaU)ERdm>$_Lc}wMscU`b< z)P)1mpQ|@^7aaR^>`gaq3y$w{>y!17k9BrGc4FpNy`D?I{jMLyRmWBDe*D6NyWUHg zIb_3|<3=r*dop|2%J)`1{>%E$?|s<$)O~mT?DhwO<T=4DejrsNe5#8&zyKdV4#qv8JxVZ1b zbrVYe<9BP$xI+GCEe`*zhx*0F_d9Jr;|iJO{q>8DGp>+_I3E1LX`K__Sy*tPC z<|SOq?ptk6o;%c%?olyk=lJq)0GW`Jot-c?`{_l%N26^ zvy$N7=L-4O4?oB{d;C+uTPp5ebjA4Fdkq|N{SS<;ufO@{r~)dv`VkASSx{e| zer5mFO+_~rJXG}CzxUjn*8A?jCwITt>+R*cSN!~qAAEl2%lA*c_%7f1lYbw$`lY^y zg1?_xb(c{d|HC0~O)UH5vEYhhuCx~t9xp%s)V$oyCww{G4jLB|bVZnCjo@@$Vb)P+`dx-%b9-#je=zcZIz2%Uj-D zUwY2OpG@vP{oV`aby;@p$9KN)tC#D3p18C4g;&nQKKI|p6>?j`;R-qD`ht5i{{Bw= z^?iH9eLep2kqcM-{;Yv%CvJYIXdE1ST=B&T;n>i02i7m@} zxMxIGRPA4$Ua|SY?`lUyefaz{6E9!Vt?Y>hlOMls#=@_D^ZRG+ul)J$qrdHQ#lZMu z{eRxM-wQv>cxUPd3sy`$u=MHF!m-lxDud7=_7<vJ@BkY}PD33&z8LCzaT5hPvIK-|Nai;kk z!VP@y$eGv)TqMNn>Hc=}z13Y8hd8xkqS|g2eZK-x|`oVeqn!JPNUiPBaGynuey_p$mYSDH07F8lCH}32dV2wUA1$~+fGU6wf#J5 znm`*(c7YrA2Rzc5ejbHJLM!dBa?UB~Mu%nl|MlYrjuLivs6clI_u%34F^x^9axT%n z@7MnRBI$;5epAv7u`TmztiVC|8Kyw@jc_O@{GUA|IPj?n|2s`#HZomYzO_)$-Uqa^sx@~wT{6=d{l7` zU!U)nyM4cLIx3Djo%lv`Rzz^-Su=f5R7NVKHjX#0R{gXzpDYI{mC3-7-qD zx;^{yoF*f>a4ln1cYH=nd_b;XGVhv9utJ+Y-PMK~;f*2d+?Czoxrw7kzTds;=)K*c zSND!Q|0ri~e5CsN&?ReDcX#CdTGG`T@gMAN`c+N$o5rP{46B>KoWy;xhvr^%@X)a3 ztHoC+=YRBg+5O#lEAWH7XB2!n%7O1>?ywYE9f0qL;14#s|AuRN@QdL$+4cwP_}Bfx zPQ)MVMEt={wEV#~zgxat?e{dxAFTPFpnb)f&#L7)EKf`N*8X6-;|q4;f5IQ^#D9Z7 z*optZAMC`__=AHSrApKr>@sV>*9TovD}uQ)y1$~}X& zmB$;-gZLxK8P}!i!z6xQ?sKT^w5G2b%4$sIy~s-HUAZQPdy!- zEqb1|z5ZEx|Euj~wZrM^{ZI4Pzu2B4o6hGhT>8zPaNbYkF5}7Yd?NSahR5geF7bJ0 zp0B6l$D6zX=~s7r%5ws6!f05BJSXn!8OX;3{510%nCfWV_fFTxPS-|uUzV`s-Q}C^ z{p0G_=gqif+=Kg`uKqmyBhPL97x)+(TyE2Uf!tlg{VvHRGPBJa8YtkKr-ON~P?b`f z%la(Vch!db8<4cdS}Uz}H@)aOdr2>2QCt56x;*X~vi((vuee<9I3iDS(Rb0ax6uc6 z8t#taZkc5Kr|3I%(3_Im!jh`lckL!}(b}j8HQNt;N4eDOTHuW8tY+sD3LZ?qV_!7X zDog;eYY4frEt|8mv32NlgsYh9$4*x2Ymrr)z+EL}Nk41$*Adg=14ev39F=>Wfcqh^ z#GeKCOs8b?EdDSyrmNHxzWoOJH7vfS($h%|_we4ZxNGHIR{C=A&3C9(=kk6DKdG}( z=h8G!D0T&obXKdV%WzBv8otL+DLPG_l_t#<*h`uW3vMi-&?p(0NAS~`K`8CuV>~Wr ztUqMI$pFq=;)MR1&a{QJ`#$v7G!4US4=T4iBXL}%yMv0(OpL4)8Vc>C&f?eP7(T*G zpU9@4j9TI^k}}))%Mt&OLE$4{$=y|N(;haAa6aPF!ATyj!_DL?hkkO;GuPVX z;MZ&w?Ye3xlAbi5qQeM&ooxK@-~H`9uW8?j z;%7yCB%-vjYG|Tpl|x3ZEbKG8CLFL)w*1K6*S}Pq+Zh3wt~Ca*LIYf?Q8n3(e0|~X5Iq@ z?`()!n+Dw!^CBbpD0G`^^?A&7vGUy&*3X5%O#cV5Eq+V1Pi+%EU0MIN@Q+yzcTFYZ zr(m{OjsqT5IcI^lNk7y7bt!dhD;s2f(T>v|gapoeGN-+oeE%l%#n^rr^qc*xHUNp<+# z;Ep&C-=v>4;19@suXk^f;d)Ew-G=WSzDr)6&-yMtv6|DYZJnlZptlmmJ0L!SBa7W{ zHIgU8aKGg;qTX`9=3Oxg+)6N~x{Rf(Iqx58faG@{b$7)BjAGP>|mV38`S@&Kh zKrf+_q*ukMB9AtB5{-a~Uwm`?xejywqtk6mZJwv<_qvvMo8Cuhqooo48W(eFdp%3RGD;u0WDxL?IWr>#tq8O7hzMWj{!@v3XZ{5{F z=6Ar0EizmObK!qUqrbzC_IH`nx$re_${w>Esq44a{KhU1oAIh#`bi3*j1RAZV`CRH zPV!1WIlG%$rSrCfucWyHzOsEB$#~LUy^aE3()f@wl1Ivl>E042-%o(s>B{Lr+Am1c z_IvYqHPzAVC*&A?RQl0z%YJdh8Ik;rvqQzV;2Ez(-lQ!`gl^zs^;z?txqbN5Hsw#R ziYmrv`mfygmVA4Z*>BqVN(yhc&wyP99m|D}(k=~L3e9AUt!2#eQs)l{+oOxn0w3tB zs;OIh-x-%SWJE7Y6};s>#3X||5Th?mt){#{8=AT(@7KT*I+s{9lD0!acB1P zd&JjJGJX(-i~PawK@Rh18Ix1yGA`To>J5DAX}+($G!V*}XXGg50b5Z{wVG`dX z@!1lYq=L!(BHj2_<|n#AiQ}?VyDe=$hh@ayM42XCP5*NhnWb5Bx1QTj0gvHbi2u(* z135JK3U6idw!x)Q6(w02_#BAmj>R-|){LQ~xxh6WJ62AVa_>qajVH;wQ2cg8<{@Lc z@Z7;)GdRihLi7tG@5sBZtSp~mrv}ox{yfhI1?V4)ox55Xu zPpNSK4w|;`g5*!)mqC8$JY2@FEZRXre0enY5gUfklf1hX_dp6R@-8x8<0bk_*f>{$ ze(S3199T*?+~^XBNyOhPzj&kP!O_s^F4}e8gWlut%%3utMUI{a2cqW- z{^4V(l-G7V)#W61G0RE&_myMUPuf79rQWV2Qx_B2WPfkpkG(nW9mC$)aGN(MzHq+j z?+uAB%7gGqq|s+rId&;&bN52;is43|(#DI^QZu6QXEzT2(dc0}86~S-_`TfOS?(@% zPv3_BnB%2JQ1Y$8&-!Tm=J=rDS;ee>5WbX^Qd*7g_{r&>gG=yVSsiIU50Gd4M>n8X zRd zXn!1jMo8mpGROO3(n-Azl2_`ys-udQdM}0!ztv-pKa0h<*oGeXx#4>ZG+pE9T)4Os ze(9Z^lV5-yjn2sA>JBCy1_~YMk3ygA^n0OgN8_wHxw?P*vnm)Xe?^{W`Ta8M{L*sr z6^(|L)V-X1@;rd&#%TO%^Aoy=9kH=9@AP?j_w!ze-d}`lsmCvABX|@UoeS&G!KEJ6 zl9#?Fu-;12hQD~MOS_<#+ec$VTAbDN@2c^ z&V(OYd_uaL=a;%qiQX&s#7bXktA9$nCUjWYCqbDu$8h;B^Vi!b&pp^1+DY3n-i1W( zuBH8x&;ggyel}fNWV=7>@ANCrU~iJxp1s>VrMvLWmgM5z;+=)ZBXpHlO3%Iu>?RRn)s&WRr14 zfcu&cdMV>gzO~40aJT%y3B5Lv)*lBx5o)NPetDSj*(dqyTKa*clQcTsaA@7$fFEW4 zLHg$Mitx9aOL-#OD!?(k9(I|G^P(?rvU&VN(kcGhj&Co4L$%=5K@GL~Z_P;Pr*TNb z->5bJv2hhUR2Av%c(J)`#a}n=mh(u2RVQ$_(}4d9!5>_P_oOb&5o3++)QRUC>F;)3 z1&-u7j4ms%AAx5@ua&%I@H)C!kMc#TlDRN*6^-9=SL<>#oumw*%QWf>Y|@x@5dBzS ziCs%*a>}?LCZEvb@U?oW%(0exwzafRIq#~c(rqYwChsw{zgdpiUUK(xIL!3{I zNO6{~KeR+wU!Ku;t;S2+ks7;Iw#Bc7k1fBr+RkQ{0naSod*Is2y^PUPUM%Gau07W} z0=>{#nTJmbe)marZdR`+q|9p4O26BApj#z(QV+LfLt9%F>?R&Zi7rC-e$rN@)6kxF@{GT^ByjL}z%I zwsIlI#C{N_oH_!?{-WA8e;RyPujK4l)HTJvY5^NmTp%)5o^x5VJtcI4G;f+S?(Pm9f_ z3*%>3U@)IZ@!jX$>rUa&r4l4SnsV{Xd6n$TGrKz;fX8OR#j725j>1OO& z3Z60!O8r~wIOaX=CLO~4L!0{dVP}M{^L%I^b9teG&|T<{-7Q)4lHqQZ@-xPiuF(B< z>fMp>Aos%m7+Tyxp9tR9;fdsJ=ao({x|NnNuFKv3!cQgWgz_w7*Fk5Ov3`8(K@7??a~S17^ds9fHW!72<@igAa-tJyeh3>c zq#xwLLy7F&aG?_wF+MMberH?n(ms??;zxaZ)!@2#|KiD8~p3(XWG`Bt^$$puh{tqr6rf%>9pin8yofk;EPQ&^K5UW+F7tA z-lc{XL%#vU)jA_9JhV~EJf%gpid@|aU48f-c9XUdobgjpnm|7hd12Ecsh{{wMON)h z+R~!GHrF*-44HTdLoP$pcf{RBT5w>(4AQZu`&J)+NErIxNv zaH>t+m@ixq!TfdGMWyA;3%bU7D?3AL?Z4Y`4_ozgZt?FB!X}&7>WBQD!;v zyBv78G0w=dyUJ54I)$5dgZHxvqO|^+@}sct(l6w@C#@>g7l~ei+{bP;yqs~n!F_y0 zkg$L`f=}iy)M2MFazqJnCCqI^hqRRBRBGsxt^7{k75BR;$?>&CHA2+WLnsQk5h{LpP2IH&PkwnLkd3`2&jt8EM zWz4OIPNF+308ez*+0Z11ex+@idDOFvx<5cY1(wgE(|+N9p79u~>m>7=fz(0zvW&sd zSkGha{PWu6f3KbVcHS@8_bc)%eEsst=K8(TN{=~-{I_)(*&{4t_dfK?5Ov1yJL9)P zzVu~0?*m@FE9&d9tzw%$?Ce-^(%GrvW#p2K`FoMQLI-o*OMJ(~Rs0fq%!~3?&c*(; z4t)R0++!d9Up~X``OWPr_$hFM=nVBTHm)C?T1TD;_(sZUz&3CNd1Q~W$d}XET|`H2 z_J=gp$v(x1;K}o;lT!sgf|r`ooqNQ`(O-%ChB_UizM`)HH&xaIWsEtBF8wn0+2hWR z$tUn5FZ$r|Vd8&Y+M-v*Q0N&#j~mrV4LyGldKvwCl+#uC)ir5onS&?d zCtG+`>=)bcUtKbQzGa-HZ5J8x-k0?yx7vII?dj@{zncWL={lZcdCn&EzyopEE5r}I zA2~0$6+j0mr(l3tMw;ja-6a7@cPJLLtoW6a_b0SNEwZceB5#PfSFeVLys1}`_pj9b7&huh!XE}ktI#TJZknJc(YMOTtOP|aFe{Zu1h&IirDzZjTOXLPR~ z_0aVMb(FbF(+@>{#V{85@s%ZWon95u!0$pmg%{DmQ$A#$%U_|#XYk~w@S;sObFYEO z$k>Vj%vG3uuGA@?27m<74AX7um4#`K5p+^}P6n5NrsTVehYR3D1JZI>& zD$^Dt@Xo@cBvl&QWB5kNNse`t=v2HRVQEEjPw7*AJH)<@EImksCLg za^rJ!tcJ;^+(1XoX)L54foCK#qY-(Ml+^W!lu2sOGUV)A)bnj{TgtNw+2D~mE`8-q z;!21M*Ox@MY=9r74kh%na>tNM>Yc*tvOh?8F{a{8XeaIR8_BQ7<(P`YQRzYUo}~Vj zI(C|GjOeg))DkY$tUBMz!f?2iKBC&(80-?$r@zH{qR~m^F^^8iw(K0ok_~` zfh&7-#8yyIf;@Z_cm-CSTLs=n>f}=+Ooj7z>aL$lzU#%aOFw(Q>oy{R{90FQ zGf!)Oz0=f5L(oZZtwkpj-A42p(P@s;|4xWrhAex5y=0@13z_&-ba`2OCp@3u2!7@8 zK?!(CpOX6PHF{g8xB|UZbcl<+p`>o6Up$fBvR+?Hywt~(&vAufLlQY#-dSBz0)6Z? zR6l)R+K)M1${(YUzfO;yuLum;C%3MLoLdq38dLETXf1Z$(kNh&M{GUGJR@t9MW#wR zk;m5~+s11=A`1n-CFn*)U)LC#J=WZEa>IMG+ z=J;{~-j`?L3%86fVf9>3Ka_gPc#{dQ3GJ44GmTVG^bD;>t_pRsz6i>zb*l{Ds^!aq)N$}(-Y#}@v)|a?r0@8_y969%-_iTPSxH|tIM*WM>A>>@uGm4r-LgLj zZt{0HJIoHuJn1BQ)wlO-(c`4d?>3_|ik>I7`K|2Nz(WaWs{s0FWikERPv6N9zUP~5UwkRXTe%V4WDELXCHm_tjG>!{c|*Tpj20Pi zl74&_{kMR1;1cqS+^VzX74xiOd8XejW$n{mCvKo`i%eJretzV%jc+dRA%1ZW~d0Zphf3lLUWc(3aHi;9BsX2OK-E)Yr}{^$pMK zGQUY%Z{ALwVreVs|B}DO4${KQt?_Sg)6bHh0v}m_c4Kdo^=9@D5B+J6A1->BIgvbfLDrYU7uazN zE0{Y!M!xb$f2Hf4l+w6@+$}G`w=2Wqkj2-RWZqL)! z`_O&udOS@z-`?}v)ADM6*0av$*P?gXwpckUDmp|g`h!tXZq}DEH?Bf#w3I=8dRC04 z@7vGvZ4v3<@4`DY9x>p-+=ujwiO2qv9GfHceuHBweDmq2M4s6}<-bBXMDr~dNUnj|aD}mLSd9?6ZD!2#^ zf}5!ey9!HBHnBgUkFM+K#^TM``WmR0ob^zKxzEIY=PYls9mnva+}OD@M1H1q3XC$; z*9p-jt4%w5>wSS*uO8q{6?Nb)98BYGM~Mkf|I$|vnTw-8US^W zG>L8YdNu*mT<1`hAMMk_&!r7)`0uv^-%p>AG7QRqM_SEk!pmW->Mc5cE^Q|1WNn0X zfMnq(!KHP5!`sr-;bcsavrY6reSV0&&YPywj^m*#e%lYS7qOxW*q#n)TjGt_LgAfJ z#21I*6~5oX#?6za_PCmwHuZ$3-v6#?)7Cikbun<_JE%|sc>WC;&HkRR^Gv*Zh#&F= z%**d$Ei;z!h<-4;n0ZL%HWfIZby}$xd>%?-t|;Zpd1DuPz*6QPcd`C0I!rbCfR~?} zIC=LYlXkkyXZR&&sr9UQ&a|Fo%t&ND;_2?sO5w+qGqKf#@9`VJvyX5dKlV+;W)SA^ z>&J5m;VOPC+Qz!Axr;6j9YxC4d$o6tzZsI5P z%^)s^pRWgci`B1WO-gu>aRNE!&k|m|i|;Pd3vJt`V?0WhGz*~XGtihlh*b~s`zgPl z@mtPs1wZuls!a}6wV9vd&+H$f>$i+=vTn1HKANDsl~=+qGS*S=5_F&o3`C4^J?N*hYgMIsd`kP z*Yl39D>_}IKKqf$xtd`Y>{>17+cGQ~34LU5hXGuXuesD;@~OIrfUMiWN3(?&bzEA9 zKsW4qC3czgJAq>qy93C<-3f*}@C`Os9kV`wml{cXCA={JJJ>*E5g6&kwbmf`*2BaP$Bg+_bT*|vJ z$hiRFvqX5@b-A}v&H;#hB@?>QKMM2UG5ailA_kkp7~AU(mZvtZ&F!J*wkE$*)**xa`O+@J z2cB(CXk-LsjwLd49W)X+f`dXI(CLf21j^81OgvlmILdf^7#XkQwS6K+_hIRq!kdz( z%>KT%g%<7grxM{~qh)?S030kn&nl#U!}nQf{Cqr1y-2@Xg|4l%@3_$I(PqwV)9<)b zY|hx9o%)PQjfYVBs*DdZ54#H-_o8Ebz+7L}=1bzLM#e8?Uoku->mSE@t?7GRgg>h% zG=} z*2QY}(|t1+rC}cym_>h!A1Uognmw}4Rzf}xY2%B{bHMTEn7DC%lf7)N3KzPXoCRud zF&_!5iw9gEjiS$jZxZ+lob!Pv_E3?-CH<>Lj$^(RKiimH#<(MOmO0}%LtVnyol?@V zDplfSEE9ZX?A;1IzJVUHcWT^yMmC)x1sId&Qtkq)ZsGM#MsM^}Zh}*#ARC9r`_=4- z-kFQ&?>Xb)FR5=X`6P|daCI2%q|8>dCXG$M@G>ObPUpet%P;orI6r58HMrcY>N zp@~fo(M8+N+wH!i`6;Y_yVT!TppP7!B65kogM8WS=d6v(y?ym4;@3g9q7-t!nPUrau>^(%AV9J+S$d~BrU)_L7V z+Jmd^R#iK&Yb#YbiRZmMXVX5{vo{Pue5iOdbFBn(oEXKLehKeOiT8YMgd`l+m=+Rx z`JibA?Xr^Z`;mc7O-8VODmEH$rT^)@!AZ!(qYtG8>65(2RaEjW{U=uTX;5|vUKA9346$y18M&r$o*WtvDVN-#%{q!J+4CjpQ0xMNAeVsN75GPFcy4F+l-Bi z$U&1|+SPw6q`x14MnV&h$d7M0YuI7w>haJ+=5)|x_;h(jet38`48~&K<0&s3_e>M_ znq=@i3O-ALyOguv0=t0ru;+&vM(nO$6Z_VAJ?Qs(}|TbX0HdbU@$U2V#K zQ{E*#c(<2+Yn$}1Xk6Lz7p6N8p>12!+r(GKVc8qE37iwq!>6&|L~xFzpGd#=ql?3H z5~pn>;V@g^wYN5H&IiSYRSi!?AsY(KKG|aw{JffV@Cl3w1;i&Co!=^8UiVXU^6M^m zceT6+8G}c4Q7`83p23;5kh3$krJk&z#a7%*-c`)~*Kj^^y{zc~pFJH1a~VtBM2^1bXDkpqLoT!ym{LbK@CF+y^cK$|3$ZbWq|9WVC%DZ!wuDF9voqPU zMdZr2_n3AO;iYoqc=--TungN|27M@#U-`3+r1j|4T7O2ymm#m0S$rin3mcZSPp(CC z+B4S8TEB~aCF7*%Sn$*a7r41_QSWk@_}TUb$t!<4&9w|`$+X!_^mWABbUYaFpN#H*Nt zxzPC!;JI?2p=sAvMzyWqO5o+57!!JnJVhrWMAzM&``wt(@8tbE>-|JpXuJMySl`n^ zuj}t&WrWS0+SW5e+9|CY$K4|W8PKl1`i9fx7pzr>pYv#HW0$hqkIBNSwrw2_N9Je^ zqTf=!>zgq$ui11b_Yg=Pu~mfQmGe*FC3w4-|F$jDu5UQsbOg7U&aD4XrZug_#IKpS(Gdo%B;184_Z zKimm!Rp^J|ywr$19H-Q-jDp6Io}Ox?5B(r9LhZr+wV8Rfh7k>n4CXy9bh|CU@bdhX zmf!xYFDyBpq`ay0<}6oZF6a#``HH|bdY@E{4e@w$vSVUoc$D; zvP@)OFul^fuz!!tptG`MyEj#E5}k47h2F}+&^RVRRhH}viyz^wJXhie$)57ox>ieh z>sPLonyUQnt*OOGdNDjkT_7%Wkp;+Z1{?$6n2SZN=DCWDP{_7s}8wPxiR8w!+%a zO2!I%ol|5=+c|RE@^yWwBYd}6!?JMs&*0JJAKT_-lI)_RHTvlqU~b++^`lfTUNK7xJ{ZYR7P+Lb^X8EX^9dP74F${u$)Klgq1 zLec-)*LOVR^8ruBlw9hD{=BI)n*P9ZiO8uh#)M@4iEKB=OU6QZ_rvR~?bAm%FG~8N zam*pW;|KpF9&PI-@~OnM|AnLvC4!Ha-_!I9sh{B4mUfE2w*1gmpObsLq<%uLVbDwT zM`@$i53mjj?$mLEi?OPRb2_=yNxq$r%<)rZR6Au#dEee++87(qJ!-L`%HGv-+PGmL z`{altgm(U{Aiu`-5lNJR-SNCY;|{*DMlH6G#`6^OVSiSXM^)A@;eMivOq;Zud&y*e zy04zO>q_9K)7R0d4#>U+3)k_;l}6q@W6k&i7kbe`W1-}8|JbR+_&rAG4tT46y{wfQ zfx3+*tfz<*+hUV7hH3hR*&9SIFy>+tHTB>IO#@_7yW^>;r!`PU?RrO0(}4AGskg*6 zvUV)Ak$MU}8nAo1(Z4c;9@JCT&itC@?uvIQrC(dg7Lt zaYHq&TI-W7{ATKWA`kua71@IzedksBzHV>&jl}<>zH=q%SJHRpLUZB0uDrJ$0~CL4 z%SG?n!2WxE2053$`BQ8y(snW6An_vmA0|#j`F^XrJaWM&vqh zlOG|j%qp*zHk$)%+HMo};TMlM{j0@pBHt-@#Vo$%(zmcD)L>_hH5M|z=lML!7kWv$ z_t47)$7!ThgxAP7#&)sSOeU_1{1&{Ln|YV<^BCVHjHf=5CyhKBSHm0+siU@GAJMcl z_eZr|FL1EVp!oYfdWx*OlrrtUP{e%4%lf^nQ~9krj^KM4wne*cB4;GMd}sX9b-REx zf~V+(*j>0QF{Z*poYc*NQ!|KnX&bX{oDtOcv3Ha_65qDHYS8Ih@c+-ZTLk6#Pt$G& z-*Ve&HyZVnb~}n)OzKuE->i1~nmDPO-ELpVKJc)1d(o=fUh>dx%Ux~SP0~tz+qT*1 z>I+XUm$GDyS@vj_(Qa>>_PUB;^aE+PG}=w@Y!9x5=ZYPI=XXubZF!&7mh#Jiw@B7U;t*mvnxV2{oUG$@i7O&81#KFW}_dOIa># zfxiB&?<=rj>HN)SLYwEg8)CP02#CE>(VQ+ zuSXYMs%B&Vjt;JKR<371N&@M`t}pe9p&kZ?K!S{4`A=o%d*{8)b zuQi^6pRJ3@npzWjyPL5sIhr+D_TnDo9Hor;e_{VN_Y;b3JBxMb*`9UV%u+KK{bA%7{IT#;$n7^y5w5{y1 z>#5#1Lapafraq);;2x*#+;V=csh*$HNNpNuq|(<#*IMpMJS*T%;x4T9Dp0^3ZlVhv zB;BXfnZ1~+r0&l$*9zBBq+GL}t@i@jbw0v*Ke6-r(eq?&P3}B6&c39OGor#zUlFl!eF-IBb56LRknN7{ zLS$|ZYhTfmH>=rlUxI4__o!#9GCv*2oMBrJmGa!Ftj5vXOR6Gj|NngS}ERsjjN2}Q1 zBWp9i7oH-{rOY)h!ME+$*tY%l(GLc|-?ZHZwR5!S+VnXSFZ3;q6LR?!xiHOY(_a%J zk56eoX#@F_`@^P~<53S;%a!-qM_cZ}GuzqJOSp%!nU*4tL^jF3+!Q&#u+Ezbjw#&L z8qF|n`sE(>G|76F9z%~Y4{VoD7{`xJmb*R7vEuvM1iM+Q zHp$X$!d;iAX%n$yNE|PJ`>tcG|`p);2btb{pCF{SN%vw$UHkX``c) z(>OEPGM1bDroD9}bB-`juj%_CPaK95(ayO2wg2ide)Y!T>i)*8G^_Nd4jYVvi+ zs>7V~l(o?wlvM{l0%ITP_mYM^tjWiaE7h!(HZb0a51tZ7%r5u0=_`k`Hrq%(_CxFW zpr1XUHQ>F*5vTVZ4g%icADXa5rpWiV^!J|n`!}?^+(&l)kG;ozdVg?KtNp|2a-@^$v~#F z*RBR+U_Eq71V34mzF5Wp`jFUa78DLYzL_;qf!oXIRm%Ba(erEKXvbx3aC|TfN5O9~ z?`D60<9pZBEcw=I?fDUGUnak`uTPn4mQt@c_AkkOQKk*DbsgjMntOvYrJ@Pjne039 zBR^$~I-S1Mz#4mR=pyG}6RGDwT}M@MgmKoqC&oOZAi7rr`xvU&%V;=bcbR8s<0{I? zzmIrDe8D6f?Ak)hkvtdh9UJc^4`YA9Iu-0oo1%~I ziiJ1b>d*=~XW77*<{*DD@;aM7?6r8sLw>>MTteAjA}|GS(S_vxQCH{KQr5MD?(VT{ z^YGUcFb16^WuikfeuPAqb|+FUI=9T14w0w5HW@;j$oMMl@-6noR(D1WWE^#>z@$&* zzKEzjVrQte+U2@l>V_z(4}9o)jXM+1R@tM_3u&vI;JMYScPe#>*;ivKnxLJm$*rY- zxJf^%kvmgpHy`_$#7*px8>T?pRN_rsv4#O!Kn zQnZVjE&F+D2eOZbJ&#?X%aX!?C_?F4hjw_we+Rev5QEX+yO2n=X!(O{l04??F+n`rltb*hfX?nfp0Ow%B*Kr1tE*jXY;Ee{-C}bUUNI4}P z_{*8H_P)s;5cD%_j-1=x%iRa?$v2mvkD#a2#yqlG+AzM-Jm2byV9yycSKej*?{aaD znDScsNlZmI=s;ghzMi`=8l0n3H7(%Pd!U6!Xk2X4xDL9C?2-AO|5(%TWdpoHw-LGP zeCQMJjMD8cwg>07_<*-d@6tS@_b%xR>`gM;D$Rsr!w}l*vY>mewnzE7E}A=d!*ICC z#^HPNPSR}_mkdt_%Jy^ajrM4LpFoS9+Hlc15>B;eNM9(LqEd^IA)Z0pP4SEh%2-h% zdM|U)YV1+qddQx47F4Jp`fcoX&eY@~dqqyTGSD&UpYAd2$Dsd;9VZu=kvAIsif54@ z9@g~i^_*nd(Sr?sI^~Ki7Ma(cecW8fF~@JgQ|wg2kF`@(;9cQi&VQZ4f6%sE_zK## z$A3py8x{ID^IzL^;r!R;o94fC_z#?APTUjv=Ter)E$PFei_89r@I5Zv@1gBg=6Her z7&bq$^+$aAB_qSNj-CO$a9w_+w1oq`5#34a^2k-ulkIdrXI`FRt@U~dbzXG!^T}uF z>Zx*;!Pd9J^vgJMRxD2m%D=8do*r!=ALAk59Q#? zVqF4y88Sior?hKZ{CjEK{aMN2F8p(NuS3h$!+V{KehSREYH?6ri1?iaHu^G-E)aM@I3W3?*wVlaTR|yADMT=x2$oB zU&xoNJy=dTi%y@DHM?Zi?9%c$3r&CSxvguUjQ9k`^0oB$0nn{{U(=(q2h{~_co)4j zYZ$UbK{JV$x$LuT;7!Pn2t3EQTne1efwRnr2$Y<&tz7ObT*EmCeHKReg!rQSipz`O zm2K#T2Z1B-Rth{B*TFA=-*eOzoQ8+T`Gg0znd7P#`5gy7Ql}`=FD0++iSkjm40MF0 z#LK&v_g8^c;nUU*c3=AGVoV&xw8XxgQ;0*IVD+uiHc0f9$(5xz_+0A$;}=#;2vg7`4+` zSrn;;ZlfFz^!4zr`$AoWK0jU5RSlJ~v(>k4=9nQoE#tI|iOlVX(r(S^L}^8EwGT+U^B z&==6D3adCX>=9ltuwir7LFQk&pL3s!3w#^tJF*Xk`9gHO5ixr`d=`Zqqo=$DW5rX*8cUK15WC*kGzSz zi=2OfG5vP=PJCXEw9u#PBLYoMRT;s%tQ9*5CEdr^Ra&QWwNB?X)4fN!!AkG#ulbVl zx{&`XVE%QzE3oq%@7;~)hy|kumyR!(HPVyEo*kp##hyHsD*V~V{u=Y!?bf%m^fwuc zqJWuU#FR$mN2Frw3~<*>^e<_zJHC~BiB&B3C)Nm^q&(k`jY;wO+`TTk?0ss|^wFNu zndrfpl;@$m49e?59$yD+qNMYLr8Co|-vN!k(>qtrI&LgB=w&poa>d_ZRt1 ze~`Jh3pwEC%pP{7!aUlU_Q;~o#;UQLy|T^~Ze+Zbc2dY9!XC(&Sjo@4AmA8FUjRm4 zo!q5nzKfo6tA3Bs=l^AH%Yhp`x8KS+cj?<3kvY|-EUlFEjf`^?KKwdaivYF)=AG1A zA?xh-0vQv-dWp(C#CgCy(r~v|mcwx9G zlRz+X4QgdV04Lmx5S6Nx2}y8yt(ugkGDM{SQ@Whjw9H!94+Nb5|m++)%up-?bq< z=H=77efZul&X)Di569|tId0*3+l|i+wZR zx>z;&c}@*&vKwZu%QpiuR1yRoyyF9Vp9hV{8=5tK6WWd&*@l?*?=s!SEkK{+M|Cz$^XS!kKo_wly}x;JeC{hN@F2IPnN!kDL| z9eF7SU1$6DS-l*;SI)xywV@SR%*&tgnzqxO&UTaG7-k1_3!9Ly7tv0my=?jo^8RmV zGbwA;+f^EQ&3gc`u62lcDV?O6UWD6)xZCE}_!e_Z`h|}p{u|lm@2CsbZoFL8;vC-8 zM&y%asK5v0aWUkpX$bNaxqI%HVVPvjG4;mokFaAK7w&_A?gU|RPe?lU{il~=T*i6W z%FEOeH||YLC}ue(ujF{<6}CBOyWD7V5`Mq3cBX6SO4}Z@3|Mb^8@q7a65AG$E~JlP zeEp&O5f*xu#jhe?w6~A5-a$?~+@s96f%48WR3}|$w0(Ar{X3Dp&$ezd&XxzZ=y6B` z^3(8@Ef^=e=kpw21KPTi`54Px-kyqhr;lubo&jw#$57OBxDP+3!!;wE_m#)>?+|_m zUp2p>gU)x$7$<<=cD$2~ct@#A2WuJ&ER7>yrC*(PUwjJ;G@bk^*J<1({vPOh3v~HG zS3{hki@F6%58GZ#Pp*TWH2k*ow1EaoPk{8)rVM6zF>lmObq)FIV>JJD$ODg|y_|AA z+Tybq*Z+y2fo1dQ=A z+Ge~)1M~yjtAl&;!ttMg9)RgN{X7p*) z5p*F8*Ab{IXB;PhdrFgjbzc^0w<#)>vP`8tbrA`%zv^NTUI|RyWFo zX(Hj|UAn(aZY{$eCF)XGo?PqLec!OhnKti&xfgDXdn>;4SvL5lzidZb+o7jtx!1=H z+4OWL#|r17v#0eJ({==P-<8yK6z5Q0+Yr~p`*wNPQ0{GY-Pmi;%JaZ?L3U1|zh8;9 z{}8?>>B)HEG478G;4UG&yPu0oIi+xCDENo@Kx$JO{HMA4Vf^FTfkvU@wrth33-`Pn zzO}lW@oh$)xrb>R!ef7U^6)QKcgLyqi@EOwc{)UWoHFyPR_w9a9h7fojlA8pdLQaC z({YWuvgw%kMSt-K=8jXeeL=*&5cWRED(Ufp9yj7=+Z3C|l6bYdZPAoXuzxrXyzCm6 zy@Pow_{-UR@TX${+Q~%hMfKeh+jy=sKum)= zs*~`Ky1WbYcDT2Nw}*LIlO9Yx#Cd6kuY%Eq%FpWQ`z5;>;^Ed#he)|AQo;KT!< zCGmwrh?`;lAnmV_)5tgr@t=-ceN_`p*ZQk)-dVNgBw@EfJjQRRA53R5WLMMS*hj+s zi_OS$0DDI$qo6+}c5F4$6aUKP&U+yo`!965+paX}?z^%{r-`yyDrs`u7@MX|%L9Kp zEyunK?Kk{woRP0;Jj&d0>cL$;8Xq-xB80Ik;@(sJgb$0^j#au?$Z=Htbk-2Nb+;hcm{tm&K&dgV-8!&X3b__h!ZfwhXYEu**Lsw7r z)#wE{{$%~sbZ(2Gb6;i?b(W-6VZQTGyyI@l`2MY*VvK?M-8uvNC?d3v&~>fr8s8b* zgNXYL?LCOYb^F;BZ|@fq+T&-w$~h<79_ABm*dscwQT?qV12d?GOycFwC63@CqsJIZ5Y{Y@AI*8-_v-D>DhUV=6|-~KV^&QsRMCb ze+hqQ?ySsf9Qivv5`Jtx4E?d|rsjS{6ThiT9Ah$#uJ8HkS}?EZx)SqB+;g6c`$Q7d zmlxyAMAOzp-|Edj+L#Jnr#}K-lOFfB+`YSSrx)gtCByb@PDNo%;hZjO{V=u(9mCi6 zKTrWcEtH+>~N`R8*$%Lm+;DiwmtaQxtra02fIVVd=ICO z8u2*qlR}%wIqeMpQFC_z?mBP6yOpGF)gLQP5A9X%=Y5 zSYq+jXde?n|24Rm=bO0WtR1v)jnF^WZV+jYdog9#b>G zgXFtmzK?O+R(|Un?g3Z*VD4@6!DO53f$5dLkZn*4*EbPY0{G+>`)2S2ayPhUm^#CG z-TH7ksgt-5WhCxP-Nx~yPW#eHM`6d`YvCV#x2A=8Ou#ull+P}2-J0&y5z2g@@@kqy6s$e{%3$0In4)yca?)>M<5uj`kF~!AB>ZhjJ6!-W&Oh z^kbwk8RbBk39PK{2ETUw0s5SEE2nf0Qn-Dc?FShYlc8&Y#^+%XWl16rMr$ zVNU!W`n~Cp&ovnTe26r<^tW8iy|Ha*Q&`6vP-az_bMm{c+@nD=fHGk{rtE^AgF(op z8|_mK;&~+;kLfqak7mS$I1UCuJMPaqwI1=%UYEP%p{FzWhA(I@9piZBfjWw-Km&#yixL`CplhwFS4{he|)M!VlZ_-sQ%g6N}tU zwY8^skD7S%vA;Ed^@=tfFUQu==iAUOt!`ucl!EWg(!3UR7Q7yruU0ps&W&7ZFlak; zA@WN4-TTaU7!sWrV?C~8&|SI4>2(bK8-DFRR=clSpY1{Wd$bU`9hgDnJA}6j=f;19 zI^@*ZhSPJY9m?g}Vf!j0FVXG1xl7l~2OvA?{D$Ghh?jNp*&H>4cdX(3JNBdC?$AW! z55Kn##@as3ROBBf_Y7{Gi2dBOyH2gH2M-!<#{ON*i`%ik6!VkxXF((PKa7Uo2i^;h zqjrNwgZ0?ChkIYoO238n-{=QI+1OL=-o*6+FLcSMD<$N28s-=?(Ki>M&O?WE=m6%1 zQ_+@Kz3=NNN49^{M?t@Wd_9MJrNAHNw^IVZm%#l)qyfI|9N|(;&%)jtk994`+Y52- z7jA|;yn%b@0%#Ln#W#GI*DmDMJ$n6O_vJ6AHlT0XgY~aHm`6eH%=;PjT;-2AcYZO> z6aEb6$NmMs8*opXJ4xw#>-HhMmvX%-TkBvG2PJI6`fx{Rb@mxQe)Ar)WmuzYL;lcb zoSBC_@;h6ks|)M3I)jOP=2Oj;XimWKZpet&dUn zRGh)&?2(n=V-RJ*@mCtYVURWyYX+D%dZ%8nqy^&!Z(lW-eH-&Tvu|o8bu$TZOQ&&N z9bsmiq~03g-3Xsx!}fJ8Y3FzW_6qh}&{pxR2zkr&{2aef_lG^+>~p!64mlc}09=nS zlR#H&8=&w+x4-7QksP1vyEkw~(1W%4uYeyxl$?tn1)CvL zq^kwx-3k+Q?h4b5Jo`a+Y@UyT?gMJ+bSK^H_fDZ4TET}M$WsgA`aarSco#MAaeMN9+&6)>lxF9HaxEt;nq}7#!^1|J4*t@(M z`scl#K@F+SyDp;nYvu!#XN;xx@=S!53z3KQXlE!7KA6G9z8ynd$@8mGPjHTMHP&eN zK7{s*=bWGyYQ@|HI@9FVOy~&UUeX4Bx-gdrEXF-zuj~2z-~`G6(qS5I+(F-fHX$1_ zK|dY;V)V7_Z+hd8xu?LKAz}G*-wy9Z;u#X=A@&>z{Oq**d1B9zpgm$cxp+HxhOp^L zpp9#;?DKvCy8viIyEa(&Etckt0ZUq7Pd_V=?}vC7BXn|X|JZ-T;|@hL){4H9kLBxu zpRYm=_?ypX`VD-C#LhoZ?>mCWa=GR-)$KFqpE%A8Ar9{|4XNC}7(AA+SKaH|{5oW+ z7XH;oee^n4KeS!$k7l1~;r!n96AWU*54=iO@By3_ZOJku+Q8%Wc|fWA;dQw zV?p*?xR>})HR4IdI2HE-57zn~e0w&qANhq&oN?^HxV#l(^1~~=-Cb)#-MOPuA0Iyy zZ4SofXjk6#Ll)|=)}rSPs8dzTT}`+X?Z#c0Kd=l~=CR-DwEdLfmgQIUxD4lC9&Lxb zc|kYNXQ3Q4t!qGk`-ij71Xc#SyW!5?A^dK|Jjb(7HTf{#V%;VU`2N_`Hn{HrKi>GT z57udWmOrN9&NliE)y6rSIZvkT3qETfu4j(<>&SZbOb~U6^GK|792(-Pe@utR{*fBc z%rhR;QCS@;=Y<#}PJAJut_ znWJku9rFsk76)2*oX#-CWXyxYW`*lXO7-yY-cm0q0J{ychLfxh@ZL@(Ac&zIg`^b&Vi4r1mLoD)&6 z{T_6}HzlZD)9|+7EK39Gd@_DRH(fWEb#lAjLkS)Gkkv4e)Td5HeEx5vuR@)#hK`{n4rgnSju-Yj@Ed&} z)~`<1ZjA4qmV+~f>u{&%Ld5?@Tzts@n4sz1H~Vi*-uemKj)Jb;4H!?^G3%B1%{28I1-`Y(eu#DAtV5R*U0!Ak&+pRg zM*q&S#|qqw&#`V0v?ObJPUhK%ozG&d(SSBZuj_+X2lfwb3Znk-4yk7FV;?ZfFiGT^ z?azDY51KJ9xEpcmb-DU(c}xTNvk@=nF)yKwbk1X<^B3v= z1G7}qxYxk%O6bBduN}+ZYt8Rb{JqBfzKp*&nBN!UH|X0rtl(nob5TvNAkBujW!+q# zsYjmck$=WD2>u#2+|k{D-}RU`({3Q_9@(Ip&?nr8^UqU54`c5=?7eI!vM1>~9|DNO zv$}7S3x0cRmrZ^?t9Q_2n)|R%7iU^XqZ@mc*_L%;%o0Q%TcERbV~iTa{s`u?4Qabk zzMygHRLDsHVaK8VFyBtMiQ>lfCGsj=uoq?!eBoG=@itIT`2b}9O#H!7bo&~|$#DlS zme08+n{6zF;S!kQ7Cz8EFjqEGgPX@rF&Dbjh9nS80)Q_7nMg-kEUA*^W zR$S9S(eco&4sM5$H}a5aI`>!Kfw`Z;6Pqskr^ArtX1vMDhwn%aImN!2ad3Tph%$SM zc;2lV_rh~s^V|5{fcdIkPv)Kw+|`47jb-_Gc<`I2L z@82%{;Sucd`Q=3i`OORVcf98~6=RyCkfl+O6WcboBk%Cn)B^t>kMH@LfoG+iz8T}2 z8F**9)w_kD*^7I@us89{$CxLjgoZu-!5DYb2Y*&Ous86~bmlKU6>H|NKE}25Wuq`2 z#r$w&eCnx__*UoPxK!xSQ%=2)bsE&!e4~#vYdDJb z3iF<~a7Jk>*J}~>!MKzc{jN6d13b7f^j20wC_M|h^DOL3*_{$U>_w*8fI0pt=o@yT zZ2X^QA0Be=u*Yqh)u4srH0{YNDupl4*Ff_ zQ{Nq#h5bUiZG0xK6yzZ~E=%{actiJs_}=OMY+T7vblJGhhX?P0jt?}yhMd}gJQ-dl zpTeDR=j1!iYv!Y#BwOBl&%^&UD0kk2xjSyyi##`%hA_PA^3OQGAK@{+e<5Xy?|A1w zhq@Dw{=wvFDE2=N)x0i^8`^8RQm_5U;LVRw&R#&B`55Ett#QNkeajyq?XyTb7ioJb zhk9+(nLf_iAbpJ2r*I8W)2zd!o=WJEUgN(L{+Uif{E!z<-QwHP6_@%V#~Cjo%(D35 zr;efi--Y@BIc&OnjB5Jn1FD<#;S}sByQDP^`TPrHdj@Ex9mCW*!aVB;!#J12y&L-o zuwFZy;VI)dlX&nHz8{J-4t|Vz&VXZQfAUlGMYWLcF}nRQ?UfymJ&EyHGu~{pg=kwA zGtZr9@Aly>ggxrmjK3fpzx6r2W`)#MtrYyu=ff%no za};#8pzirm?{L0!3ifUv+=x2CaVG8G#y%Umxy3Dnw3!#QdAl26V!zM34Ndx-{_bU{ zQwRQXb~oeQhIrk|wP_^km`bc)%)K+D_cZA8%ej#!2F*ShuYFX~MJNh8`zBO*ZsTR-|gr3pu8mRZx>KhCoxW4^Tx zdapFhdA#8DDCpJfo-2DF2z9&@u_yOK=#wxf;JsFhzks~Hg0;&QoEJ@izL{fC&-$&8 zwPD;dQYF31KF576*QnH~1>i&18~6O^qEBZZt|y&USH6gGR}=S-G<@q@i>af33;Vb^ z7TXNDZTZ>bi!pxP%e69|n_hyk?slYO_Y&NVINrpbE%Uuzb7#pY&_p`>fKG;KrY@9i z(>Al-eGIf8$G!z~_G?7C2mKNKaUFwmFw7^h&kFiSr0;bt+tUgfu!dh!0NOp->fj32 zheC5sV;C2EG%HI!P{rrBO^7wh>`Ax*by7iYF?$zv*KBvFJUL&=dJo*^> zPq^pmLzLx5@%_`^0gc;G7Ccwn2Wy)n)zFfmebk_#&EH793*{9=+cg~J?7tu1u0T1b zA)mI4Q9i4)2W?En_qfxKAw2d}r9X@H5bp1)Ls+(Fjo^=W-MY=ra`q&tUAw@ejVQl! zm3JRo-pI!gly?Z_%JMFg@~#5Ep?lS3&9n8JFHpN2-(uD@nX(<8{t)P@AE>4*h1_y~ zAjd||yAqiH9wQuso3*%TU_3>VF_x=b8*8;egN5=jWTq`L3wh9 zWnAMV{7u+bOxosv?w0$a`QXF1&d!zp=UI-B_xF*1?mMyaJ`wrnxcU*1_XhCb5y<|L||vPls6==Ae%&zbbM(5S{mu{e1|8&ie7%Pm@pYpf@cY&uqJDgUJCOKo>-SI}repk# zGkw_4It1TqO~$vqhqj(Te!Aju*ChIS$T@WSBU(G3R89Ka$#FS@Fb9xR`|8N3$k9LZ8Dd@Xv($Ic+ z_nG#K<;ph88K-SWBHs=)@l&oie}Zh`?kCi#znpz^EaFDn3Y^?J8EK=BPhPh{J>!So zR=1N!`!!MD(y5s)aVY%lhJL&rvd6gH&<}d>o8cIS`;%-qjz^nC zXZt$x*bu9;?LjYu@t7V%T?G1aG5^6Bb5|n1Pn4+Jb6*|${gQ2vFXhJh1iTyvC18w$ z@dEUHzB-S~J>SmX-diI2lft<08U**l?8cnZ58e*PIT5aLR9`~<&X55K_xcBHPvpMR zp{>*IbqzU!Hr4&-dk(uocXeYe^N}{t5K!IIUWRTb4)h)7y>4;IB^elFvz=twM7~8D z*^i%qIJ%&xNXMO1FZ}iF^kq%)t2ZDF_>Ot`*rwcj@7c`zs5mz@^8Z=7U0A13?)pRD z1RvQ4pxuP(j`vDpZ@6#6q3Sp{=5NWT>QSCG`&H8|;5F8*AO7)vb&&VG*!7K<&=%~$ z-myf```iP4x?2|Cp7mVZCAB{peM#0&CgGiRNtS!irGr}*Uy{|1?`Y;?9Ea}_rjI*z#}MkP9Q5;^5y%t9q&O>swU2hl6U&3L zw0pEm-xb2Od#1M@=`zjU^rg||Z`P674nBu{XZItG=?L!?nfxQ}BE!BZl;Qp!%aCJ( zPP~`EANl?q<^@=vYDE9qcyfELKC3n!aSpqGSX2Ajs&2^FF3#;9gwCOD?PTuZ+x-aQ zXB<-z2gfRJqP)8hHo@f@baHzF?+I+;_t4&fJ7Bz;NW?&&&h?8W0gy!~8vMqR+1 zqH!wdN&a;1;bEYsWo>o$aM1I@=;4p&9`()G7_X+`?C2Tn<#@&eIXsK~_gFh$?ZTW4 zW4$TsuwShibrdls-vK1hlJ&QbT+;e(i0cq1J@+B zqkLodeArno<54al@Bw_9762cRm*j^f?k5~^=ioQ;@-XQay z#&Ot_u$MGYCUhC0JV*oOg7T3D8qz^SVw{?W`&k~<{2XQYNnQrb`tM@Orgp>FoxG+S z%YFrD8v;I7IOv7E53Ywk|4zh*dY9hY{s!AmcVZ6CV(>VX?g3KN-#5u|Pu}=W^7ViXY+#fZ|k={w%4GumJW*_e4^QU+B zK9AaSnB(p^>h-WkTBY+FwAe@1cpLbf0G_+SYyAzk;pz8+-WP<-LiI2k#Db zQxAC8tkIj6EQ{Zf5bxgPg&g>&E8I6ZdXs;Q!d?-a7cGdChxbX}4Br@~=aBdgZ7V)J z@TeF2E|&E--y`DqDv@J%eDikRIPewUC|Q1)(%;6NkGRURM{BwkjqAT7h;_E<@Q<*2 z(XY?odYbMpajvigwBhXAVs}o)rUci3P3dRaW_%5@fHP`?oVRj5a!cz@`CbRMWgMahRuFkWRfF z`r{j^huDERIs2G5FlWg?z2SMF1@LEddlwAA`L;pJT*FEl4x~|!m=C{)OnQl%;HJ+S z;|`lmGtuuXL|lG^UG`+39e&1%Z;EpcGaYl)W4L#fcT47saW!S)E&peYfzJ=gV>D{Zk6XOSNn*RaTGF_JqW_*Rns~^0bh5Uq29@#l@P5zv? z8NrcQA9T4BbFYt^;r~F*7=}1l&L!{zeZZNOICq`?`?qReaCJ}fV}BdITiWynbl0OV z;Qc=%S{WbbuFT&yjJc4%t2`HS-|4Vc)Z^sQ;!eNxvqk(Ug!hf{?X~lS?;xME3*(wF z4o;s1e;ik`-&qQs0OkFg_}-am7y38dG99`&v<{urOP zznX%*41*Xa*3$-&FI=Blj_(028h8DUdEw*Cx$ZjIO z3EdTXFAHZd2mKa%O3u0lo|^AU*c60Jox=F5!IeC~PkO;W)(yt73bMEeWozWItef?N zbzr;;a*4QBB5W(-T86j=z%Rec;f4&L9?S@7c}UpghdgWqy}5|n?Ye9d%bRVJ$$O-| z^$k#aeVEJg>;c-Grmct0Z+>*H_NxJLT}4#$wre=@UW4|D zV;r`()DK^cc56SrV@sMxWcP3CM)`0Z;`=DacQKe!? zWwa|^>lV=-3_FFrSbNFW(KuU3d9{4~8S?ZI#w*O%Tk#hQUx(>+nGnvXTD}%QUM~h; zBRow!^-IVqc^VI%hTG28^@~r8xwz>V;?whS^skA~HE7)mbWE&2uaL*^448~s>!$oX`gt|L851IPYGKQSD79Ntx(oQ`i3=({}l`yUY}^-k0w zFb>jd!`eMMZ=x?{xx~Xg4kqUs7%LvS;-noj?r-_{9Q({UUO!hmdI1Bk_-l_Nf zwf^S9@N{fMdc=pmo$;k1p7f(_GhT3aPYZ63?AiJw?qbw?qp`fcK) zPeMO~@Q`DiDevFpK^?Vo4d_j$V6WB`?2%es|H7=b6EK$f>8xp+&SL({dc-~ncei3* zoqDPp^ZyN)PYxUBtL0s1-vOO(jP~enRi8n5PZ^*Fy^lG^8|mizrp+ktC*TL`4@*W) zHTMZlxkwHA2>sFfZ^Wf>y_$9GZBxgvFDKF`ccKoQ!Q8PM;~MT!CO;>K`>p&@UG6TFlFbz&D|u+>G~G$VWT&9#fy8&_=ajZ*0QvtGZE-c9X|Du+I&1 zHM55sd+FWa0sScWxeKzy@iykp`3;bv7NlXrbKfn>v%?Qvm6dH9?)Tsee~Rp|SN&DYKBe#;bI{iS`oefbKTU4{d-;EkG+kb^_xvjGaov52 zcZ%<&t|4~cl2Z@Dxq21no}dk~qwfh+(0};Z2SE=+{l^B#G{=+L4s8!~5K;OM_RG{g z_*|)jIW}A7h_4@hvwWR8k8r=F^J(=S=6;e{qwyO&Ne=ci7;WYu>aBu_kZ+e-JuCk4$4;Q`aqgwp7twA&p{3`bl(l-S=|trL zdEz;oT+E9Svwb(Z)#HmXPd(^Po0t9;WD9FSbzS{1@4so-L<~z)^X1P?Q^j=Ro7qiDJ|$@P!7;Np?@30 z{YW`GB0B5HeWR#Lht}YI6z}=+VSn7CQG7r;hdQt?lymV;+%?&WGGm!$L)I`i(D|U* z1v*g|TK@%RL=R@xGN6-c-Hft<%ylGVuVVoFZX57I9#8oYkAhqU2Ez`owfh)#D}Xb! z4S22HhqOzD9bRkqF6}OZ9bRkqHtj~k4zIQQ6YZ{m9bRj9jCRvthu7Nufp%BJ4zIO4 zLc8l=hu7L2rrj*q;k9W;k9;8(=HKqc&%Lv?IywwueE!Uc9UR-*V_F(?0Tmw`kX$?^w~tL`yS)I z;^b4*`8T61n{l4|LB#VM?6zTU{SCNtPjfx&AAmi^%G$nqzpJTcR(#lPozo5WHT(O7 z-D;g~u&;^h8+Kdma0_hrommAO_%3uZG+VL97H0K^zD+gD`-Q_4Il@%KzGhbcu-liM zZm_S}?+&}&>~w>D&8)<*+YL@P*w<``xcMD!fyLQpW&;Oq&OS4X=B?Rhd^GRKK64#R z^8bUFa}X!NYcKZFu`ael-^cG&)U)37QBCgP$*czG*0^5w4*V@gUkHDTlfd&<++8?+ ztgqJJ*W4|byIu_n;`f5}8&gC0&3goc_+5|nHpDlz6mieOdflwQp54v(Aa|$LhS^2@OKy{K55|JW(AIKH#&HkE zT%Q^Dusz=PuV&vTzhBSzo3U=S5o2i5*wgw7_4qB&*R4cf=7-KMc+`BivZsEUd*f{W ztnR*ZjH>I0b`SJSIkv>yH%FcIIPQ@LpE}3*>e!}tqAz1Rd{))~Y&_2IU+TJoF){B> zo-Ff*2JnRQhK*>?-$c7<=L~TuV>^#|ALDbBC3N4>=aIu>hN}iH;Tl>H^!x#IaXtUj zf9HLPW^X9^Z{8)8uGjTo&#?;ErNZS1nw)J7%kePwx3Szv8~YiqyYB#vJ<<1)(8sYC zX+nQ9Sf8KcIY!K-%{Uw1AxGMlj-ToKvWK+(Bi7mJK11`fdm6)X{LD5V{M~go${Tmy zogwYtg&#A{`fS|@^IMNU%=tSl6OQwDXOBmJ!wK#ky`8<|IXm3brqA86yr=SRM7>_} z*>iI7&~)x1ONaupV~S8_VaWUt><0gFUfYZoN(GaNcTVQp012OP{;C z0l(d(@4$p6+D#O<{z+ROD@Wb-px?h0eDYs_JGU^_f6?We0o^F>pUawlJ@|GC1ogDShW50E|UPQiI>GUs^kD8`YUz?*=% zcVs-utM~D)>8CM{-5GcRa|GO9vJdflQGV)ZW>W&}z57f%XZJW2fv3<{99j<3rCRiU zkiZLlbeo1U)B8=FV|>atWCeRk5dT2+Obf~peB9|iYU1^{M!xElv+#PkV?9{=U$6B2 zPq!d!Curq72lYLj<7d`w=Q&xsj<^|j^6RjUxi#-V*oS#MmVZkh>F5M6 zNLx?zn0narnUHWhu!Q3$I}eFEZ@%{utfvGqeo~NG&VfoWZsHoOpY;uMA+Es=gs#A> z!4A~(pjNB{AH}}hIp!=xI_E^J@4P*;x{x#x7TcMW7k!!PHyHDwU>RQ zw-al9(so>dG`Pm9>9X@S$hXYfG_A4w3GBRWo~*HU^~e3{SZC$BD%-K+g=U?V=Z7zn zJTOhBO&Z=r+t2h_25i5mQ)55G{s?{0p&NN0x$cXi*I^^`cT*SG&a)pGZq}}z!MweL zZ4Y>~m}|!`9GZ28x)s{_N9FK40n@2t$ws~LyJlgZt(t~5ZgGEvXTRyg?>_jwE>4~5 zM4!)oKmog>>Hx+KI5(v29I}e===+k>e~f*0)Mp;pFsx|+$~zI|?5!*5W?AQs8u<83 zj13N>50(BZ{Q=1<`*-A7&v$zoH@Lx%k@u(_?i7X3i=q#}T@NGMT;0&SoKbnI>DHIb zxWauczQYXn#5V7y+%#X^0<_&;tVO8;)$|g^7m2vTD;M`$%=D$a2Sf|~lnz#l7x(?ZT@4TCZJbUEq*$(XW!aYTLtTL5(;J#+eKbs2T+%M7% z^R!0;GFGHayT@XFzAlJ8wF=YTNWQs$*{0)GzPcT`oAeyM0Oh6g)!Jb41)68N2IzfV z{;RNui~PuNul9j{rf=h5JvC?Ljl6hS_p;4>UqPJLg-oX32-5>^Ib7jk_q6?>{zc7g}ynTRNTh{a9Z8<_#l1vE|Ee z8GQqKA*R7}nchC65ybwE9WIqZ9gA{judRoj=AV>dGS+8?B&jolVJ1UHTi(D}-4p*x zVb!Wm!&_HtbB=FDD&nTS2cO{;ylxTac%A=&6al z*o%gE&OC$mFb!@r(_weAuS#LPBku|@CZWCdI|6czJpt_Vtlf@2D#bm@_-#f#u=WWK zdzQJi55-6PuZRC1VO_zx;eHrRXBudj+!uFvz-W9NRI=Q&>xX z61w#5SWDRkeG~f6Ggti%`$rK5Cr)rzPyOO&a>%c(4OX5xhOuQ6mYwP9%y#(OhBDuD zM!JY&UpG7#zILnCp(SoV?jk4JWo(4yw{fYyhT?zAfUkr7Q zoJ+g|S#3t!J_p|;J&cmNA%LlPf_w#5)ySI14dHCac!xD;F zey!}ZB0q_0Pi0T-srn!E__6tg&r&f<#k@z%6Dy4S6M}y%=1XE86Y~=>2V+A9pRri#Y`$P>3GDPB<5T(Zxu5r<~?G5P0VI7e=O#H zF@GcGYhwPJn12;Bso12OD&`epP7-srm^X`AD&__;pAhrMV*XLg(_$*&_h2zci zzLuW-*;r3w!$VvfW<{!T6#gZR!9UP|5ixcrs^*FK=gY;vM*d5JHb-?X$3Inw*T;VW z{%hmE)7q|xumt~ntMRXy|2p}vu@e7I--UmHhwv}23IEh%cr*F0ng2TZ&-ZQoYvey< z5wHdSkSRRBz>91tRq-bN_3~t{b?JO}SaX8Of8a01bW6Aj!Tkl-#<({KP7wDkf}y+8 zPfHBmBN+Rk_0t{`{$;_K=jf+1#{F~*Rv#OBEq!jmHvJUA(1Yp6E7;OINw7GpDT1M2 z(vMHDjo&ZW%H9IOm>=jTF9zqw_+J|1etQfK#NeP{TOQRh?zMs~J@>@8*T>*5$M|oE z!4JmZM#1rtzei%+x5VHlVsNuy%b%xW+*@MYe-PuoGsb;ajQgG#{PP&x78CyY7~CF% zUy8vUG5F;ed?W_HF4*#`GX|fC@!u7L-;Tkj1zUMlpBQ#U(k;) z#ywB)U~vx$Msug12ElCk__V~hx5v15#kjjaHS~@#!BwWp1&G;tp6mzmcA*1ZTsUBZ26rh80R+i6A*0kQ!m)^ zuUYWr;=f(+Siz@b+*8gP`o@d9U$BioDA*(JjeWkrnt2EjJ|7Qt4&+5}tvbP66J>BYt$+rGuNPqFnowmsM)^~bi4 zvGR|-P`V!+D(Npu9SqTf zSS(w%qM)kUiPsbtR+m>=8^l{`!Lnt=1c<&0Ws9tteBpr<>g>gl7<+LfFr?R-J zx-wK)ZNt@+6_keVEGy=~LMiLYjCjh5IiApur>MBJxVl(<0qDBxl)Cm>r8uDZ0xU-1 zz3ofJUwK7wWdZ0V%78!0&v*!BMh0H~#>+aHab3E)5+>yvQK@SY2fVB6U`~MPO;hSV zn0Mg42k#XKbPs-{!+kv747^w3y&Ug#2y`tXxB|cL!FvbZz?v1+1eCa0@ZaD#pNrkHx(!?hl8i8x}Z8#=()3|pt4B21<16rJ0t$qu)M()*w?Ut#3f*g z%diUpVtoXPidPiWlvaBR%gby~Phn|!RZXR)H9%P?sO&ww#P19qsx~|)36b=}u{)i^ z?uPu{VqrX?%IX?$q9{~VQCd(~ysEgY+Ow*l!sfF$==mH{4BsREBE0fMND4&U&q-3C zu)LzKH>NS)HAU5)%Hryp$}(L{fjNE^Se&1qtEqsyDc7)6MB|<#ruadv&m~xS+^U?UilMJflZ@5Pbv}mM<%~s~{xJXxRSRFR&Fu+nJAc z#WTCOs<1Lt5osQjXBL}{oYI1-Du=75pxR@)4ySu|Wo1E~@Ku8NL#XPNg~2*UVC}<` zQ@*N#Ewtx`oNH6VsK*&#&kR?{KGMLa}3^v?=Csh!(9kbc%aZ>$EyjJ zFfqAC5M!k{mT9=fg{_!p&(bYCw#9Gyr~59r+lOPosfzJ8Q5C6D z{3(@FUO5N#J+HF7u(+zK=lE>AHoizoJ^QD7#Zs5TeG8gir+;WkqU057k|+$-hsMx; zXcLN;C=)spjiENtCKM#vgpNd;mR4w9G={dt_!ARq6pf)t(I)gQ+O+9F38S%%$C}pN zVjnh(IP(Q1PgFcU!C-onJ;Myc%QE6iIiN`y#(4)_wim$Ue1x*mA1`HwGDVYiG^y{P z8|#8~W4sJYll7nRVy~gL!RJEwDn&eNH7z07kVZoX*|OkX%w+ zjJT@6wV-Y>3&2P6H^Mv1gU^ePaa8J3xic!frRej+*MVDwT6!ZKv!Oqq|5d6Elv65J zAYV2I5w3q;`bMHEkqaA^l5_s)*J>^r8DtD5E7EJ8e#_;Ph8 zWU?F~dgk5v#%IdFQYMttHSob&J=sxHOEmY&@V_+5o|N0M0O{$Of3&Rt zr^?}%F=T*~RRTLkYEbB~y9Vz!IfA?6V=JHGA#B33>P0TJa6+Rk59xtgWQwuTc%C9L_w?KE8AFNSx zD?@5YK{efq3hETywaFrZzbXRwEi=DNK_OhFb^t{9uz$o;Qz>X(L7AFcyj(3Ts6;)h zgjuKNA^mwZr7FATPPL@CLfrs`=A!a7YIbpH}yQ^ckO8o=22wxb4i8w+WZz7Ij zdPY2;7WOrF)>O%a9&uI|uUcNr@h2a|UrvNHoYqV)jI$SFDHSiDg$u7ND!Q^x$4gv< zXM$%T9uI%i;i0wi`>$TL>T1rI%(FzdhX}8G5bzC{MBak`Y(VnSgV(^EtNS37gKouX zvK{3p&BSZMN3e;fD(u6=$96noM+!{*l`*z9y-0i}UG{_#JBFVJ3OE;^iFeUx7KV;Ucta0+A0rTkF4NC12Q6W_&~$RlXzUEV91U0-lb)eJ z+CCdp^2rmEzZc@~O7OG@|LYw2p$-2gD3A6-f1a=neH!0>oFup!sjtF+jy&yCj8e%^ zH-W$Z`;Y^k&-{6n{rjxjXKnnL5ufYt%b1bI{zdy=kGZVA{D-{&$T{4{v_t8{d3%%eNkT{E2V>{nqAf+n;>u zJKz0Y%Z}FX|KRB#{=?2^e)R0F-9P@xp1nW)+0Xy+7tgir+yBew|LIr%+zr6m3Kfcj<^w{weZ~p6_x=y}z>g{*_?a!y*{rC6Y|KP)q zy3hRO<4^G6ZhVU+zE9tN{oM(P0|s7j;YCS<1`kOdI&65#h}4TOx%9G;o>8O6jJ^Dd zao)7_@e?v8UYU8-q{&mJPMe-JK6eb2r3t^4oJ|9^M-|7reb&&ruSXYTd>+Cs(@gq#q<*tY<0)Ag6+PCdco8w@@WuE z-6Eex!PMRH*&>*_JwDBXsf**&BAB{3K05_dhsS4+;0p~@ZGt&hX%I}EDxXHd;|)|>1Wyp$EI31Oi{L8-?-V>u@E*a_1-A*#65K9$hTsmtW|a=* zFL3W__W|0!QFyq3sz~S{O1aG3%*`(lHgpyDT3z-_6VLY*elrTn==L9 zAnsX$^91_@-z?ZK*y^M61m7y|O9k7Ja6s@naSsZ1Ndr(JI8JcA;CR7}g8K*#_A~tG zE4W$Q`w8ADxWC{w!EV7Ff^qJ~JTm_rAh=W92MRtd_yX%c-K2k^;3UBp3HAt15}YY` zkl-w#pBEtWSt@vlV4wI;7Mv$|sNjI$VS+0JrwFbWJVJ1z;8elQf-e@lQ}88%+XP=K zxI^$|f;$C|6nt8+N3a@i_%ljylHk#TJ%Yyw&J;XWuut&ig7XAlAvhp-oZt$=8U)aHik|f_;J)3C%}*#XEzlYe}F#gw1a=l+6|#63ZBDjxW zui*ZIvjisy_6trFyj1W&!9l^Pf@=j|Be+p;iQs0zE*YTh6x>H}o8bO}I|L^P?i8FT z__W}Gf>ox;Z>r!V!Pf}(2zJQ;FH>+I!9KzL1?LG)5F8MkD7ZrKK*9BbQw28)zD971 zV3!OS_Xti9+%7m#@DafS1$PNf72GZO8o^0dNqNhF(jz!QaHily!9KyMg7XAlBRDA7 zB$MAn!6|}W z6O4ba-~_>0*1urC^`B|{FSY&!2d#g>wbuU>wc|q zKVsblcUgCzaqqV7g58rP|FeyIip73|y%sMpILqQZgZ+a0++*-k!Ks3Sf{j*JLCZ<4 zEzc_zXw&YG@QbFgP;`*g67%7@A0Mv%8I#&#Vxz0%J^?-}M8g^s|3>Sr;A;GF{gn^* zXYk=Z3_fKNZ<*iR8UOgj~Z`2A>@QljfA7N zmrqqVUxvO?t-a>{7K2v^y=x?&LDBIRU{?d5Vxeo5#9IJP@F|gSTz%&glh7Sk>lJBk@*C`V|t-oste$f%#Cg&8I|b@3{}h^2NBX68k$Pf8;kg#`SOd@@nZ2$Im&>mh&}jM1MG)J+&q*kx-SW1uFmITJ;Xees|>70*zjeL zd}2Efqnu?xlW*NAZ_KYvpK_N0Wc^eAh;90mL(*gYQy$4boBt}c8aO)~e-*e*cgqjT zX$Gj3YL3(yUw$|~$}Q=$@lk%6KWQdF4b!{HQC{TNEWJOA9H3k?Jq!Pe*?iGo z2BgT!U9ILz1h3WMBbfEe>7Vs115#@9Wp=yF4VN419rI!7UZwN7Fq}{B5OKjmpAu}z=#m*o=62i9k&{4Ce`j?l$=?xd6T-HBQ6qp_(UHeYN9 zobIc1`A6bs``~o1iiwZy1c5e*Sz&%V<;EG# z@@)=i=VSOXCoF%a|MrLLli^c#m~O+T>~Onf_!Mc!4WDwt^{-0HiOHvv4nuz=pO&sX z;jp1=LAc%+x|W3LG;}R+&_Q{Nq-*H9K1{cz%a)gEZ)Z8^T!pbjq~@CRXNTp-q`xrS z4%qY~?IF{T$eT$&C*0nd^dt0gk0GTu8~>f{TNQd<(qT*1(6KN~r{RBYSPo4(d0}^x z&O#|&w%e4mp3`9qU?tR~lOL8JlTM^QnRI4{^Y4r|x?ET3mLQt`8&H$XW8$6Xz~sZt z;ruZFw6T(5==x&V-Gt8xwggvKF;F|R z%{;}7wy_67)=|V+wTb%?vFH%|n&3{s&j>y(xLL58W#a!k!AXLDE7&9W6~UQ;4+-`O z-XS5d6B}dck&`pi%Hk;@&LyIl(&xw_A5vS4b1wChm_5J|eh8a6tTz z5`0?R3k5F~{<;LK9K#kuef^z|3q*=!rOJiEOEE>rdHhhh=0Gh+i}fO!Cw{k zdhy>^a8TTB`)t<@?Yd&ExNjH#4T75lZxL+U;}*fsiu)eH-xnN^bpkt1Y!~-U;@&9q z^%s0Z-0eEe7IAlrdzZLBDY#qkuLZkj8-D*laEjmqg1v$t7Mvycr-J>0|4Hyt!Mg+p z1-~k|R&a;l2ElfmyhU)ExVH#CEVx=pc!;4HyU3-$|sL-10;n*|32cM7f*{4>D~f`21;i{PVzTLk}$;5~x> zD7anl?*$(b{42o~QXj_%?h^N6!FFBKu8Veyd#SiLNcbxRyXP8y1#NgKpG3ha;=Vwz zUH6(EyVZV>kkf;-2V^alyflk%J? zc#HVoD7Z!N62W$zeUjik;$A1XUg*1AaJ#tQDY#bL#|l0o?nZm2RF~kdi~COTKVERR zxUUlI_M80NFW4vf`GR0vBw6pm?*{~Diu*N!z2g35!AB&$Ou<>={%yg2!A5I`b!Nde z;vN)ylVH0qWw78{asQ^^2EqA)w+Mbzu-(TpL~x6^KP1>K`I#nokGS6_xO<$*f3o0q zalcux@*4M{f{%#%ErPoQZxP%r_(8$$ToZn);1t0v)?MNsCfFAF zO4)rA*NVGe+`l4tso?Jk4hmi)xK{8Jf<2Pn2*C~Fewz(1?xO{75%(g&ErNd`c#q&; z3T_v?Q}7YNdjxk0eo=6@;C~kEmGn~uyXP7H-Y(ec^^Xfq5%>LqGX?*nV87t+3JwVV zmh~^`T`ag(+#eI%AoxpyPmBM_g13nKTETXoicfHhxPMJ>N}9<}mf$_&UN6`q?lT0p zi~D-PS(5%Gf{%#%9fG?AmkIWX|4RjTi~BOcO46Gu*gfCScaPwu65b;?MckJQ_KW*v zg1zD%5Zo>9Qv_#;``-)B6MVPeM)5yRa8TSsf@=kr3vLh`FL;aKV}e@*HwxY(c$?sM z!9NmwL~yI%F2QpJcMGl%Z1l2gp-V82ndcTLJAN{FIkdY@_aa&Cu=DI1$E?#7 zhWSidGQefaC$nx-1TD9DjGm0~IdSA%hH>YAr#nyiMq}F#T0QV8S#2`wKzEAP!RmJk zpdB`k(cdf&(`&F@t+f6N!}J^XNPY|sh3PYRWw@LTE{lo3A}p82-LAgb^mwksNnb?H zjsLY_IW+nhO1t$>{R>ZnI&mS&EE>nUM~CMbP^W)$wuUw)y-0Z*d}p})3=W3n#^6;r zo9c|OEL?uZ-L5*?_$wUzWPZ%qph)@^VYxNosTFs|UlZfL#t|R&?7W-8`sca_V=<3e zhYE%HY1R$xsx#M}xlU(SS_>3Qk69v$1*%sR8()xdi)DDTU|{4&_?c2MZ= z%u0}LF)X$<-eOxL%{sN+C1LhSm{Zy&e`cL8LXTO;iPRs1Bl$6y|801#f7;y^c3qh_ z3s`rveqdvuKA(M(jlr&uINiBk;&dlREk$-cA%eM%&QtX^JzIZx+XeSB7#Fj?@!9^+ z*jIt?J^45G&i>P^=h@VmU&^bcmYD0kJXLS$Ar16ldTz5$8{xOPk-~|&?r(Rga32SA zACVuk4}ky8W7duB?iaIvB?B^I+Yhr(pd#FV8|g9so&0gyJM(MS_1Az3^O*Jb2t8)K zfbEHCVItVnAd78ygM(pu4CW02<}tV`+&&mw9qvEPdVeH+38wEmvcIkA!jI-Jxm1PY zzM~wh1aXb*CaeHaw@`b78OP&}WIg}CC3jK&;+vM_Pn^AA0ppon8Cp|ZITz>tOU-=% zw8ZnfTl;Gk$Kf~Ud~e_2Qg3H7#faNL{7%N3m*-M>v!dNDfc?t|Tm-iwxMdk<*!~wk z6()bNvAX{~`kta%!IxW)HFgK5wfKL_Y`?GPeEqGcbQV`f9li>-$fa<%S+B{{rOn~q z;rPu!jKe+<*R%ZX!^?P`j}x^Zj0bXuJJOt9qJC38v*5=*dH5ZhHr*JP_2o>T@jD+U z>PDDmxT6j^y+r+{%N~b&yW=-KG7kGV(`CH&S-fQSl5f60Y0!5^@5=p$jCbz;r^-Q3 z(>3Sn+i$8WuB^I!UO`oPnJ0UqXLfm6aoLLE(xTgOaT%}8tGfNJP+4_N+3kyQ-6?MB zyS<=t)wC(M7vZY8(&9D6rB%Vus)-dv%XLye#ecqhXkMR#&+jGS7IswRiMaldEgJ8C zPkur0*j2h&>+>hvr`6BeVdQ)o=fuGHiJ_u`>VmOaWq|so@8g=7nOV5vPWZPtXL0`6 zr8(J5GbP&YR@!-@>~gg~FYG{;nyAC(=FneOv_Boz7iE{H!}_Db<}GE|rP2PD(qkan zPRAFFvdh=;RYcoqe`rfoJK~sl=Za7fx&_~Rc%e9(SV?~1?k~t|smtQAm85~~=K?4v zjGwV<*RCyE4mPQ*B`(9a%IdKjmPR~PaEvWn2E*4PfEb0+i@w+NpMmVqU|Qr&Idb3xlf@Tzf3@o))eK z3|79R3-s@oU5N7d84Vtsye+JV)aOS12s#kF* z;!eP?8%3aoDqrS>$`^kuao!8=0}mWP0ZcgI`1yJ6hCeLd6UQfj9%NDfZg~@HENGCI zg8s#tMn-+b3FOf|MCiYS{Mi(t-3tj@inpW7m}BABBeV||dXX1R_Yg7tVy;zrDXSUp z#zXxN>TGy5PpGf#vk-kJUhiAR?7+yZ3wSm#AKxPU<|`Qdb|=D~W%y;pyO#0(U39#0 za9=tP<3GHClg1?GM!5!HK9I+7`J$ZM5D#4r*C}7hG{$-VAz^v?iEXfJqTTw4T^(e) zO#6$j7s*#c?yfQN7lfIQmnO@f=5&Ocq~nUz1-d;2x2$W8KR?VHU3s3Va5#D>@j%0Y ze(hgwkK05UW7%y%**ylD*a#hcC_+=3@@0*Jyu2{*z}F7A+aGA}GpqlJD4^6Pgd3*Q z*K~ivIMY~n?jNmxcT7i}iz7v-&uA#wZ>OM3Itn4BhpR#V6o%huF#UVtUE1H4i8`42 z`OPMrUlx$&Ak0jL`3mxkNNk;Z>L&Dy@cYzT=r>?O_S_dDiuLd_$U&3!zX1O8@z%mW zpKu+8|8$3c(o_MOZbV*n+qFKD*CCYauYPiZewyKjPs4I;ApHm*Y??0zu-=N-rg@=C z3iG1*Url-KDn?s~m$A|8t2}Nt2q+7;X&*j0aRKVWQDhADCTS#jA^e^Soaw+{0G>|F zHW~Rs`<#@nu_>R)z-+s%drvf1hj7OxUQ6@P9`dzdCFUo1tsm6)ungF|KLz(A4nL!M z@bf&<8R+nXx|4F5rcY`*^6-T6dA?4&uZCq6w#SdJP=S=A>kr18oE|?OQ~~g|eLwSE z9FbGgV!*B)_5By%@zH})BQ}0=g7u*VGCD_PCLL{$yPpx$?g;D_==eHxeBaUTs6}5f zVcOx2HabbS(ZXw6o?Q>(OFR#u9=wIb@UX4G5Kzly5oz|djk7d=h4FSor<c?<%j)amCE$=7WP-?aGMC( zy;R4m`&G^NOvo@oQP=*;wC^{cBh7+yxJ}pji7w+O z4x`_E8L}dDRG@y$Q{-24{oq(qmzlJmw(L7zM>~zTO~Rw>bbD*d@`@gK`1Voo?^uL~ zBiJ{rkBoUbPGCMrSwNgL+280ofr@0t%Js^H!7|zhOc60|cD>D^GunS&QarkYV{x-i z%!0)r83)CQd6AeH^6T-E9X}0HNg6i}BbQNk#2sTwH^#1%_Y;L;_r93MC*&vB{K~`p zCiX$PD#*D|4{p>A@Ile)vPEC7>M?MOeXI_{>F;z8{%knw@86LoQ?PFr@Y{G#^SuOZ zNPsTUbM_*9V5KMB9Oq#6`TBDFK5bF7`M=)}G<^D>{{6tbzDtU$7vK{;b1EzOm7A}| z;lkI2%#EAb%>e7~ZwIH$a(3?Fq-=?s}uQ(1|RugKNzLrENz$6RpHvo z{Lrf6>?+=W%U|l=_{godOBRHxs{Q!Lh5A?Rzq$aQd8x=PTTyiE?6U2{vTvP)sF)YJTph;A+@#oeGkBm&C} z`T^10%3_SfTyq#x%q6@^9g1I2T(GA2Gxlp8d5CcYT^GA%7xUv6F)r#9sb5fDUQ$yr zx2DY8^IKMpYeChuNWZYWs5q}2`aW=aO`pXDp{n9Jk5e+JF_z17YQg6RBDPF#5iS^p?Xq|zTwxen zsDEqbsRvwGVJOPMXM>8>gZlT}5bl3tNFCd^wcR49AZc|AW+k~*D1lH>4zrB!%&1?w zP(;}|P$PYxDc>+>A%7pDZB8D=LH$YpE?)(KELspMgJ5^X*xaJx`z*w_j6$>Os&O6i zEuo^~oM1tv8r9GK%r6hSt6Zitrwrc}Dlg;5gv{m2RmkPfG=F+>s_VVfv&)K>RD{ZO zO;JbU7nB!(O3h)-fnUWh$O+%zj5H1~btw_@6g@C)mQ)v+YKvJtG1u-rd>^6TEx2!5-$|_oG433E z|EavR_=cM5iW;ySUnOwZq7ovNS&Wylh>-Fk>cc7rpQter-J-s(vCm($nkne~qNSX~ex> zOlipI{o=&GDVcxs#CjErBtuHCV&VClllr$v@c(l$amCpirVO*5!sIQmp>D${;oW!N zFh90^$C&H4c7DQNzWeI6*#iIjo_y^|k8%FY|Mh=0R`|}Ses-Uy|7`L9WBC8=_7mGv z)tlS9w%^u!{P%6sA#Uso{qbveyyj8MUR(JZl=d;t`ol;5*m*{&tL`(DB_*5nb~9@* zb2S^p+F5)q^T?WWuiO83yT{Ug`mUboZ5(FolTwV?IIw4bvGK*?iW(CxQ}$`(#CmXG zm&XDA3xCET-v3A$o^R5Om;Ld7=J_l7a)xiH6@Gv1zs6iA&w~Ai7>moSA(yzTLMh{Ovv;zMt#!sh<4B`eBSc z`Qs;FmxVCLK|KHa{14#(Mp3oc%fUSnUxw+2`F=k3(s6Wk6ZZVUbi;ferWd9M3f7%4 z>tXJp359AK%ubl?FuB1a3*ScE3G=BtT&f-BPMD`*w!usqigj(60Wo*NJObPXvlAvi zT1V3dllFNqyI@jJdm3gZ%x;*O!$BAHngN)Xz*Hl!<}Z3q?oDaK0i*)esXUh{^&l|! zOLV~G9)~H&pLZ19Pq-Rk=BneaBQQs(dUaZxoeCQdH1@#!gIXRJ7{hP*b*e2e8xh_; z7Td%dq$LgsWCe>fX1-h5B@0uJ#4GPcZ4{!DPG@Vm87gJ$qn|fY|}_dBoqCfweoB zY-IPqY=c>+mbrl_kvKz7s}TO5-*Q36+d<- zCV&(tc!?#`;LQNsH$ca~Bg6bQ2E<8l-vG!kIJRScFQ3;B83|Ggt{41}_&4JXhzBu@ zg}2LnLL*2kdP9;JU~LL5{+)%Pi0nD4*qQ{8O0+aRB6cxUOS|@1gjJ zPy><<&!cl84n=yzq~_uM*-Y>P=?QWWz9~ex?M`4~e*d zKEwG6kYOM}sbM~Ym6)9ylmkC@$IIJ@7=u&?=>if~Gb1#D)PiH!R}=chlwjREZAYGRg@GTcP zN$3W78_xTC!5lS^cHS`e%L&>YWI9M4_^xdSG7@Ak$N`X-kw#+UD!lwAgh7z+5M$zi z4?Z{Bl;GuyH<>A+5#$#<-_`I92c8S_Ly&%Wi|6GJxB$n-0eF2I5fMleNT(ZQ6!a79 zZwl#H5K(vsWeaazBSHE?dN^Uh6Y})}SqslMhTz-}6M{}CuIG?1NDR_T{~=pI9)tWM z*L=TEJ`C^*o+}6koC0aN4*DNt%?8kiMNsdJ@a++#e>ARNCIsb8@D2_+N$dk@3Fnn# zp+7;QanPeLwyM?MB@Uye9eRbkcCjb^uq6YJ^<1Q>SI~-{a6GNKOO|>3+>=lg7<49 zQULM`!K2V0 zAP1^Ik3m*c4FZVYqurB37ZZzNQJT#wJ$Zw1^3*>e87 zB)5S-fa8LTU~eD?FM+;+47&<`7o_90@BLo`G8WP`?!fEaL`Vin0>5i_1MHDtN=WF$ z^~01vz6tdwoFeFS;pH?ZO5MhB&6r>ZQVs4O0NDop(Rc^9Hxn_JyU@S5|L(@?12_kA z2;7PrpBh&w*2e zV|>nz4&VzuZ)y;58lR_<4El}F55Xlq2LzY+T#gvfAAJ4=em_3P0+;wa3S8pzB=Gz2 zIRyAIJ_i6l#=pVi691NtOZ@wHI@I^y^8@vQjNyOeAM+;+k3Z4BIWJ8Dy@#7!LawtM7jV}__U*%SZ51RoIi+6(5-FkoqugM#5(imMMyI_GPLdj@F> z1#&Vx*a;qXkn;&ALjtRV_}U?Xt2sgLUY@?LK?c6w?ty+me#?Um-2Hqxu0g(rp_n!q zzQ}kl_Y4Yl_&GO7icIDO2f_|^_~)A+scHO^)TkQ6&%u*Hp6(&=g(CdNF`NnX41i7h zf;~O#fYSnBAy#+>{dV!^%NAkqD89?(EPRGMd3c^YU)wdvYIUgJD$hV|a)`HyJH9J8 zUwgT$PmrfJ+32@)ct-y?7oO1{%EUAJt#a@<&uFCG;NXv)`1eNxfO~L7DoZB|&9cn0 z%W}-J%(lyR%y!B4&yLJa&K6}?WH)BFXLn~0WFtB9IpiEP$2i9>$0f%&O`Hz^X&3m z^8E86^OEyKc@=q$dF^@Kc>{S!zI;A8AI&$;x660Q_s@^aPtF(RSL8S5x94}~59A{S z@&)7qw7|H)uE3?hzaX+8xjUeH|t*k34LNG?PRjSKAxT?+jRBMXxYMTHfG zjfL%n-G$%_isXyPMQD+6kzEnq9AKBAvo)EGnJt-pnFE=FneD^%9E6%mL0y%hwmLa1 zsIMi|*b(aN1+`AdNzW;OTGv3mTXG`v5}+38P>%wrNe$Gc1!~g?_348e4MLrypjOEx z=_R6)f|81onv%wnmXh|8&XVquzLJ5G!4jlYs#LyIxs+V0Q;L?dN{ve`OYKS>OI=F6 zO8ra2N+U}XN|Q^|OGTvxr4^+$rH!R6rR}AirQM|irGuqNnN*p4nQ|GqOs5PjW0e_~ zS(e$AIhMJUd6oH>g_T8?C6pzXrI(4y3d$7Zw!O6t)z07WNem7D^Q< z7wHtSiY$v9i@b`$iV}*_iwcTridu>~i~5QNi=>K`i*<@w#g@g6#a_i>#R019i59`g%cK6QG_2P{$UiUmw&>3hJc;b+RmXEcYr8D^Dm-FE1#s zDQ_w7Ebl8H#Op~WAa6lPiIhb;B9_Qf7oKrji^P`De4mqilj1?Gj%dq znUP;nF*QcnFX0Opf{bMIfI!}S;}BREU+NQEU&Dvtc0xetb(kXtd^`!c#k}o zC6%q5t&`2lwgk)a$_~p;$WG5L$gat5$?nYV%O1>@0$tMqO|t|o^U4YPp<^|mU!6I9 zIfFS;xyrdZxvX5vT*q9m+_2n)-1OXn+?w2$+|Jy-+`(L_Jmox{JXW4%o@1U@UKr?P zI_P5!=wc`6;b5LrzH+`!J}cicA1aH2KLow^{~vANE=B%DkwwWxqN0kT#-jG3?xKMr zq*%U~T#ObQ7uyxP6#ExP7AF^riYtm6i`$F4iwBC468REx30h)YVprl);$IS3k_=W` z0T$a1);a)|Di2nQf`!_Fb^3#4CWBR0fJL?sTO$INNCqo31`Bin>x%@-6M@w=g2i=% zwIN_>WUw;ha=UVua{uzk^5k++c}00+d3$+x`2enu#=zeJfr#WqWDzPd7TJkhME;^k zQL;!Rst`4b+C|->0TGfZpGnR{GmSItGF>wLGb1yTGewz}P;Q;!(jgGH;`|sqEq~CH zPS6o$&<`)bTpX`(j2g%v1VohrOjQO{)d5^(6<7kYIs&$O0lJ0(z7_y-4nhq5>*s%F z3rJ}}y@*5vjn*8Lke(iA8TUbsAW0NOYd(QfJwyTl8-vP8NV~*Y5R;fh3A1g~7RC_|O08{1`Yk5Q7nFG-+C9G)aRbpLaB_<4C6F@-p$P3AeVn zTqi}7WU*+H6x>Mq{XsDz7A^Lc6fFjk3B=|%J^b~0C?~|PUD|FpJyrGN+@b7?Q$Iw0 zG}yefqkm=;0`aHRJEFN2bl$O?y#&$hwtDrX1CHG( z#%*fVcHcJ0*DQpcM`#E#-LG?#w!GEbaf&ma*_7&7zdqdDw|sVyqKkKQQ!3f{BEE3E z(u;Sg4Qrn5vDsH`l(*hlhDt5gJHywDkC~M)?b?oA4fvwDo{KhX*F3*-b+!0}9WQp; z99HEm>M-O6Cu<&$q@_4&%OV~KGWrc^-?#GSu%y~VNr_n^%cw%}LJNmtNz>Xxreraz zBK%#&y^dYB#(pPX9qb&EUGbQH%$)Yt&8Rx%u3Y1bryWnJ zY0W2sXV)S*Fi!1_x%tUN$2I=2*9VP|;GCE571h!fZq~nZQ}oqBuG11Z0%OrD3$E|a z@i(e|(IF=>{}jvo;Iq<@j@2KMEm~hR#mL`5nh|8v-2(v&W!tri=Pgt*iiSh>Yr|o+AijZ)CCDGoij=29P~9aVv68R?Q57r^)xSX^#M8GxcG=m`_uMo zMAqkB^E&-L-omby&mge-Vr7Ai@<7;w{dfA!XWGvzrf#akzkH45)K6c>s@}f|gFa5iFWxr_{RX!{nHGb!TFI#aR zV)E_4!>!ZT8_xZF7_8J^@WLeE68Rh=;R4< z6b!0|p~F9mCdg6o1ICX-)bfvInt&>OFVpCe9Q5%*8DeB~^7pJKj9mCVD>4OzJfaC2 zKUWywS}d9{1~8i-LyRU6kdwWxF)L1Qc_$~8W6|oqYVHlrSkpS0kPzF{BeHf!r^$bv z)Z&-2N_O{SmBp4X&3hX5y0$5$xGk#rwqn#i_aVm0s870scl7*Y?-G^Yg!$HP_;}V= znqR*%H2%q!y1|$wlS9uvIujbovA=xz>LSMWGuiizR5{hI*MpwV_N8uFzr@18=8#>l z35V$rcYEj5qz`sleIC7cu5LG4cr>2;Z1gt$j;Xia+J?<|D7FdHwO%ZXZLv;FIQ;=# z^ii=~X_=3imGscGsrK)a-1}6DoexbyPww@OKGOBYVSeqD%=qH^wazkRBOB>+yYiDN zKV5g!Z1fZJDN}fEph}M4Xrt841w^CL=q!PMxwI# zu>yWfL=kj6ex!vT$)Yk6QsD8##U;h0P!s$-nZ!X^DC4_lj2rTiB%r#e_Q+jC!gy7$ z;9!4_kgi9-V?GF_ol@j*nD)TXmm2>8ozpl}E0*m04PqEfeUg(Mk9Xqe%N*3m)rJx=Ztw@-dp*pBHz#YHH1?ymwBwAjoX)tvdJXQ=IpHFjSqRFzJJ}TtGxx z^;==gv!;jHR+*nJ<~KN8I_?zex_Mbd{*i4f!ag$6@1NJXzXF zaGVoh!eg{o@8(uZYK0 zqPIzh6CR~CxT`0pHz?FDyn5<>gw*wwiU{k2;biWM3wiG;PG6UK3cL3{dpKjJgvx@5 zQQ8rWS?@&McQu5gzeVi&{3iRjhCsPw?4yA_V!qti_0m^gENRIYHUD9Obik_aOB(WH zLM{aa&Xy^?XUth#J@$87?<^S8Wc6brUBr9|# z%94=5hhE@d5F!bkj_Qom5j>0_z^-vm=EggCx4pb`YkiUX z+QVU&B$&oAFKuEPS}%zahfe388cjCUFJJRUZ;Gt?qUqJ*v`H(=_6%xgEpL!6a=90p z!`V4zu<~-}`iX9ROQW?WHy>A9r?39ty0g9_-HhZ_*%dj$Jys*pwKY67!s$!mn1_Bx3Dc^4a$m&HRe$8@viG>Gfu3(xbHs^eExnmU zsr6Q63RU;lo0{sJQFgdwLaSQ7q$+sbI|r(Ukp`pECd+zP=exXZ^8hrt5H?Qz4w^Eq zWLp@%z>oINa48M}FMy+C*cb@T~=IYAr?dds%CQh8I zw^Oh4x`J6b))#EGqCZ&Y+K*$scw^-okP_iuRh+l%R8Gv`9JjgkgQuT&v35L^=#fg1 zZPqba@cI0r%}Nmgee?#~K!`y(EIa2lm}=7Dvzite`6a%H;v!P@afN4dWztPdG-i9c z#z&dh<%KWae0QSt!VbgUC2IEi5$SCz6615cg4$^$g~gcxR~M~c(6!X#J~JM5AoYwr zq8mBxRX95#i#T?@_VVh4>af?XG6k$+8IO|<%a`nmY0A`^9KS@xZWMXk1(Or2N6lr` z*qr|kp;712sFq<(0YjES0skaOVABXX3R-&77(Ctt@Ee043^l@3(K2L6fy0WRk@!6FarK$fq|ec5IcHt{}7@f53sga*KOam}dC94K>GRX3Fe7 z`Tl%e*7AcA_e-vXOOGDn-7X=@`j-n;pNBm4w`pCpR*N|4t4W`Z6s8hSk zx_DAmdc_jyoHd~lFY~u8iFvQAdH%9*-l@!eC*?yTzwM_C^8XZ z`gf_Y7aOJeT2>R5QH@UAHVC3^CYj2pZ4LjJ{b|C>Pnjz6_qr>ac0F4xE1t%s3zQRV zyL=inHz&2!bsk*D=4gsK?p=Okt&;XW&u{INisZt>B?NZLRo7~dSAvBsvGR*+uN+N& zS9Y7dr=yCO)}MEN{Mikwrq4=F?VUA$XmT6*`9-gN@s3YiUFx5WKG!jE!@(zEb)!qv zLnOBsuI^4;Iepc>hmSpLYYlk5w@J5GSTHE%q^Q~gWVP$8U8fgc+qUhXQ4=M&u5PTS zm}J|_>ZQbmx8km;=+Md&tST?%-idbb^D0t&;57g1x2G>&KHcH3;S%*wYii@c3uCM* z=|zsGIHzuoPn8Gw%!QaU=|{{d;ok8jUnjwc@lEyKlGuUcKZ7Vf>i++MQ2%! zSFHX%&?f8PqX*q##AIQBlHY%Z5fct+KO#{yssY1ceAJJZm^>mu?6;QzKb<5hkmh)K z`(cw%RU9A3$SUHWe1T;~o)fqNJ~prY4&^_JGe1JiTjYk#nEMyeq7J3JI&J1x4^dQfgWj1nN>`&+aDGKMcPxqy28c&!o z|I)n3TV~veihI3%sxL0^twNyHP{)CU! z;Mr=!8?CqA6%#)uys+P~@}@;YZSwRvi?1u}H&U_3)^3@Y>xRto7^rue>BCz1>CM+I zN}hI>drbS+ya?K+Q>b#Mv|KHvU{Gl>tCI)yz48IQe<13q= z9M#CnfsGGsuN^oZDwbFyqJ_TNHfh_`aMB%Hr}#fqMPGa-qojT z($X1{$9vs1H* zB9uc?o+f&|?9)!SrUjj9W4orcx34+2Yhseai4E^e#wITD*i|QCGjnLdlXcrGqTaU{ zPCOadIB;!eXp9r*o8zH`s{Iu=3}rkur9+l3IJZ{9LS{l#pmp_rx$u&Q;@bjq3eatiEsQv3}F$)q2N0 z-akBrsxkHvOhWRAXtYEvfOXCfpcZ>|%A*ReJTApVekqHjU#_}wHe0_$MZe@#ObLfRj z_`*lc=iV3&0(SlibUyYjX zXp&HdY%UhNJU*JN5&CTDeAYO(`&axmyZWd2U-6KRG9aIG62nd2iE3x}V__}jn3Z&W-Q6@wa!1R`D>XC%qLyg(fp6aAy~eEyokpOE;U zrw~nO{tn8~gcIPgs^S0PpP@OLkb`nY8UTj=hCfRCmzT>yK|TiV{y_$Tp8kG8-obu> z;c%-jBQZ?@1?-+p9g8++l$~!d#`|FJ4hKX6JBl;I1>ohJz**-zClDVoLe(o zdVC>mGCb!ESMWvozyIwD3&P`D2H{^;7{Yn%YU5zURT4P;)uTuGk$(!_O}DPzwuuasn)VlRAyHxRqJw=Qd2{BivODU+vk$7bF#Ww z)c&Lg@ok%vgsR^eG)uD|8`x!_DCXZfmigu`u}d9>%_2*tY`bDQlK7P$02CXN#w zo9dBedt!Z*mWO)%r5C2kW@#sKnG)r;-=^i-y4pOSVN&CHu_pY0)b3GHiCeha&+bXg zp1wNWcd6@{-PK!;xf<-Oc{ZA4cH`aGyaBgsdsgN)H4S*AM#2n%r7+M~L?jTi(#@qT_(Xhq2DJ?jKW642dCeUmEgPL z$d^iK5~e{Sr^uab-JU%8vvlUBBC{vTx~Vnm%2r)l(f7&Na`YLSpvgb`ZurtiiY5R_ zYHa(Rg7*tvJv^~C@>22a*M-Mc2Iw1Q#(saE0BxudU_S@sW?i|^kf`%zaSx<7aP6Cg+ft&& zc{d%qDJWh)c7a!!dEEP|wYGbzcbu?3b3i5fYjIO-wZ9W*qNSon+u9R~9jTkc4Pvd_ z2S@G6j3%OJG*SQemXyGviId>e#9;-B`*(bH`1_C2KdX^9s{DJ2#V~kxJ2DlA06H^r zAT5rK8GiZ4f=|5|6{WBi{Y7VPPkQ5KRK4AMr9B!M)TQ&dDiYqk$;b7A)FY$$nw6e6^4lM`ku@aj z>dZ^xHa#i#YmF=%-`=JD$m_n`coNU>cK3z){!bs-IjU6k*_UP>jZ3dee4Nw+i&)+q zyJX(E`;(5HT8O{(brhq)ZwGKe%iy;KxE*`ohv9o1ECV?k_RXGy--gtYUVg>r4a*H5 z!Rjp2Mjxgp_bcG!xt~?#6IuH4FZk!PVKY$|?a${yi^q zxGMfDdE!6QVYR*A({q6I0wKlU z(?Nk;h#}PBdl|5TA7QwDcyJI1DdT&K{9f`kKjmo%rS^e;_)j{*f#+tyGb@Ilz-x~0 zdW4sH1-Rj0xaY6u$iR6aBNS*c3}FF(4gZS*f0Kvn_V?{$2v<#p^TmUVk<{@pX5Mg1 z;ibm+Pl9#DAWy+?edhcq2i{(IeMZ_AKlvx)(9}&8+bNeFb_Wgm^O~Xj2IMV=^Mj5{r~?A7?*$R40*iGiNoBB0$>Q?Gt|3* z$2Y5*=U?y1tH^~v0 z3R1vTPzJVw4)7INz*w*Z&cdH-3JH;k2vA-TssHXw8x-c4gT71sui@D^=6mIbS5*N8nh56(kg-7ZeoK6tom{7W5Si7D$2K>wwN9#ze#g z+UvhRkM7@#BL8WgjU5qL4|emP_0#{?93XX(H>>jb`; z4lsKxf!mWX%pMhD72*Bn2!YWf2*eZ757- zGKLuecEkKOf5<5k7)9y8ajSqF8-eH64*7Ni*KGiDM>3^=U!)8SBOTxvv3``r5tv3^ zKe$Hez<#S3=D)QA1Fn0RJ&Cu4au%NPub+R`0(J&)$1v~4!2GxIJEwOcOx5^87;f|?|3(|j##wpe7Mo>_Xly_ zjjS;#T9${GJ>bS;qI|^D8@yegGVdFWvPv3kxWFzZedKPJO`S+;W8k5Gk@>p#r=+nB z^v7EE1*_UB>O5Y!&g>;hWj+dX^=NEfjPq_Xh%DXS3xqP_LH{)!d%o%>wMn`4@;ZZW zaIQO#wo#jh^KRmo?2j5l-k*1a9?Xw1ail2lE_a`oS+Tv6ITXQIlw^S&@RLrzcg zAqIYH)TZvZ79D@klo)sZ3Yq?B#i5C_-sKkYBE|4QsPcqa(w$2Wu3P%}!eepOv*(=` z_c$t6F42$NZy2ptTCf%8-7Hy~+w4piaW=@0c1bjv#y+~EM{qv9f6V2xK}!<`9~a`h z8>bak%39MpXLaW^4GdYRd)$5gcF!#8E7MC}+4+WoOgWr)BM>`(@KI>rl|`6ne2cw_ zbcs`mR?mTTN9WJZmClheEyQ^@AzP^v@=HR`bu~%Kq&U>~J6g{Qxgr~s73nztaC*lE z6zAPg9wFKdmV|6dqU0mSdrLg6+PI7{hq ziHCi3X!1E_@_BQhkKUTLRo}cVkw@@OB1t%H&yt;wBb$O0eGHv#jeNTtZ<*S5>^eSq5if%2^N>8GqRM3I1eRks^G!z@m_`1BL2L4NY-Nq%oPn=4)E zjCUIwB2Zh9foKwtde-S%S?V?~oW%_H7pOluZka5na7W+m)cf1PhUaw)To4)osU#3W zwXYQ>&3~;v=%sq><`M~+6E^!TizkPSnuM4WkWx=w>h-u4mfhoZTTTnM%{9n> zR(#}=VeFDiYG+h$Pc2906OgVdi~JeOmQ6WVQV;B`6<$uAR(UE5<~m!ot=Wtn*)6+q`HaO*VWW z>Fe~fU#?qeWsSC29P9S!oxpe{dH$ zcaA9s{UIRz%7bhzA@6vm z6V~{C%b^Vx@GEtxElD3--dhKTZjSpp=WGuHnNLKHQZbmZa6WQ9U$&sE0(LV2?-`5 ztubGd$Jz{zc9P9l@GN=yr|{idU!9klqto!pF?ZVzCq5EGMATo}&i^7C`@}iv!9q!c z8%(`1FWJ1)F}E%odhQCFqN|Cd!q}lPB=4AlX{z~}WnPnV21{-$T=SaDE5%Am#ws%I z8@C}jM8t2Ny6FAcW3#3g)hcc{S9GQ5zFhQ`XCV4yqWC>p6SUw97o1 zLw9C}Y<1x%>)~-w{?`R(gOj>1UDwoXRar6r?4cy}W%kF5)dWi@x4Yha?L_VpkrweC z^Z1PiDkloZ9=pDCsjngPRR4qevum_A_Dcqh+gOi0Ai@Sv>&|9*CONLW_VwPa zyZ3UI?VPKJo>jHDSVg*pye1;WQ&mGW|S(7UL5r{Jt}RM%7%#B}da6p@<=-8$X3_7kib_u_Y}zYqGAgGb)4BAIy20yh8o$OpMoh&Jdj4{P z^|TW*oGa6Ug2IGfp0>uX&tdoU-#IqQeA_#l`^Y>oWRKff2g zUux@)WqxW`m|RkD(+6=ALwY%UepNB~VfN_vUq&C6+BDvEV!*S684L3CZ|&SI`y~_! z6hkgFEmU~Eo2DQ7=C!|zuC+^d@|Tm5XEvAZjaB$G#<|!8i55fl+En`aFL!)mujIT{ zqv*1>!54w3e++VIB5U8tJCBUZksV@)`qL#X))!rA--6eR)%3rN*c-O++B&;CJ4UH( z8@Kz;6I&!p3|V|MIOxNa`1Z-(;iGvg-0qK`_I#_Y@9a6bQ8FfJGpxrTm10Q29c6~r z+qKk--SUU#PYmy#y3ufs*QaTLSLI`8B2HVnOSst(iQapt4}vQI$e?1Vn}qSoYh*b%oA#>98Tr5 zD>4crEZ11;N_~oTE2^ndl(B~y`^c&{;g%n!__Z1C-*s~J&gIz?wcW`}3Gd&lOq*h; zyvhC{GLD4!M@~DCIC+cxvm?#-Up2{_4=HNSsIHvTD)sP%$IZzfULYDIBvMVFHDM_E zj@0dpd*SOzHFNv!O+5LE9QpClSc?NgeM1O^gs4hrP2YHOLGEp0^yT`p7V+)z+niq9 zwvvm`pSCbi-Np?uB_X}517c@vN}*q<$h0138|rO(Cw=PmwumJ=wj6xBD`UZ9WF85j zrA(jnF8M_6USjiCJ?^5zOPgF04(-0Cp*6LjfQmisK-@^kvw$iU?=YP&yiG9;?|ONXT4)onWzII9qcFhGd&Yt@3!eMy{$_)-xS?9i#iFpLPBDL!9Ma%XSyr3#!Y%@wkK+9;_k&4?xej{z46|5vou}fsd5F|5h02rpQJ70RyFRjZBE4uG;V&# ze4OTgaP}!1N=e_+w#yNGz#nlWH`XKgzP&T$ku39@)zUQvoGEiRHI4U=6>lnfP_CrD z8#eVu*pkJ51-&~XCC_~jKc8>SXC9lQgjFs&E*x~|)r@)b0nryn;@k5>b>j-cLTmMX zjGUK0v3+svyyoDZW6#e!NvLTTjz?(X|7=);0N)GdF#PmslSJk%i;9XFms6%RXUeCS z;tA*1-%Fx@$a}mcz=6KG`xzz zFAnd>nht+i;@}sD_xlnDzc{?VIK26%esOqzad-oNad>}mcz>E&{)@x=i^Kbi!~2WF z`-{W-i^Kbi!~2WF`)3v*_8(dh<`;+e7l-#3ht~&KwZAyLzc{?7ekRzBtU>XM!~4IM z!)y3rnZCKxq%(mB5+|IVPKpnV-#}cWH)htkIzq;s)9)wztS&z|ye2xUHCCiONWQ#- zKc@5bIAz($7iP{T8!30mDV)Zk+dX}0(h^t0cLpzc<)!U3wCNq$-=OM~-98B)D;Jse z=_@q9ER~m;lda%IIVEX(VnXEflonFyPKAoLx(72*y~zmbJdu{aAbpL~pyu48vg_xq z7GLY2zj<)!kQp_!<c`_u*+(Decd$4q1gAnR#z(XGoppK?!5m6R{pKU){{KK1X!e z?;Z~c4`0FJ!U)PcC88#&YWHP{P8^U#VNBS+Q%L$u9%tiR&w$GDh@Bc zfZv~a-b4}CU{&Q0DV;=Ip2{A9-8=uD$r)VObi_gA`7 zrMF<$$`k9)3?}api1x&#`E&Z^Ptw9q<>AqLpOP8JcX8RjNd|u`ItEo>P zEVbbKC8t)z9p1lHVaf62pstyQrFV|W#F`~e=sD?dp1ilqUL{1oarVP`O|xSkyir|c zs2=8hbeHx7riRfm^+us<__CM^in zkC1yGx0D^dJZ9aNPx0Gr_6!XM%eg+t=yW@g_Ibwpds~n4)1HqSOuI^`n=LM0JEnVe zOZyp}TLIhTqO_(Fb}P=O$CX~~j~AbD<~WNQ)>RpLsK+@&b@sv6t&%g3j+=%4;_v?A z@8ay>U;N!){9V`$?tk9?ZSt_cA@IQ_qkMEFEVCAZ?nf)pW9V)4H9ClXLrIu4ri7`( zLRzMnHD-r7VJ_GzEEL;_C1Yt=C032qVJ+B2>?t;Yy~hX?Ny-?C5=E7wPSJ*a0~i!8 z#e_1GVoR~7I8mY~DpU$}6*YhwK~1H0P`juIZ8U8>Z3<1BW=ON9&7m!$`O$)DF|;gN zKJ6IoKFxw|L-(bxp>L!o(39zD^h5M2`WgBF{T-dmKpAX?3B!`%&hTf1GBz-_F?KR? z8KsO$MjzuP<2?gmiZhj%LZ$_C9&;hnn;FH7XKrKeV`efdn8%n+%ogSq=40jnbCCIs zDZ{d2Eo3cbtz-qU*0G{ld8}gAJ=QDMSC$xCm95U6&Ze;0Y;X1&_BM6}yO!O=?qxq? zD{wS9`Wzw0oU?%A%< zkLARA%tF`_Y%*Jm&1A1+C$e|2E7|qzv+PUk>+I+3S8O83gyX`Ak+MI+N_G%MPCnkQ`~ zZ4+%5Era%u_L7Fs#p#pjQ|Wee7rH03dNchT{W*P*K15e!kQrKxEJhjQFyj)Vi_y(6 zV6vIk%=yeEOi!i{Gl&_++{MgdmNU;VuQL0YZ8GE1A4!zyGov#zl2vL3SD zv836`pzpeDls%ihiXFz@$QH5N*s>fdhsCkxEaG@@LOJU=Nt{ERYR)N63+FlKHRm%2 z;c9cOxK6|E-_3o_eZ?Km)8J|IgghIb9d9`=fVY7c%{$6F&gtpyl*5!-%4y0?$~Ov$N~UU2 z=Ta9@H$pFEQJbml)PAZMZ4{uEK21n7hn{ky`OrdX>uBd`w`kII1-c%cM>hrRvZpVi zyV8@Or!LX2(H}x@$uPz+ForQ>23Uy?BbpJ$a>Evyt)73(QWiLJu6VB4@4vKIpi4S-FI;f&|Fa{{1O_73++KlF(t zSC(tQHR0NDmq4!sbB}ZTxoXfO`olfq#`EGu^0tE&WbjV#uJSs0Wd1b15ueEy@NN0_ zd|!S7KZ#$+FXz|uPeH%*@}KdS3A_ax1zQ9uf^@+>!AAi>C;>g9C7dqg3C)GJ!Ue*` z!T{)#Gs5%GBX4p0077~K^a+BBqZiRm^aFU4QJ4c@P$ZUwUBLRVerSCr#S~gTh!RIR zN~x!urSwze0CmEt(bQ6^9W5NZ!A@ExtpxnRDcV!o7ieD%`Vx8pw4@S4m7xx;$zbrn z57;u6GGZC&j7&xzqn2@!ahB1}=wJ+hC-}x7G1ZycOnoMW$pn8epScLI$dl>ET*r(C zudo}uLJqSCtm7!N7Q8|yAQPJ<9By@2mOpDPD~`35wU1T7x(Qz4BTJk;nmwL9i9MA~ zXLHy-U?m&CFBGtku<{b-oJkyv!{FF(Tsg}*>p9V!t(={l3{DoOm~)tO zoYTzd;XLJh;Sjl_xk_9f*9`1uK3LFd?nZ75cNcd*^w=1l3U~?*F9dq(B=06~9Df3T z4u3xXAU}`a#J|876G#b^1ycmpf-u1b!FEBRfG0E+&H@i{K$rt4bpdSSj_{EXarxd4 z1au6lgsP!Tl!scQ_NX)J2L666nh4%uJXpsxY#HW>`C%bg6c&f24|{YO3LSj72gRQf z4*olVa)EN0GL5Q74We$Q?x1E+GpQxiL)25$r{K#qXs}o<%@*t+h1N{#qKVO^=*sjd z^rdun@DdsH3-k~4FLYVP9L9WxH=~4ch;fP`!_;NkFddlA%ur@F_~qwJF_s<+Wf`+( z4!8ONK&DPs59s}87J)6t9tXZbZ@ArU*pBQa?7-pHKfo?w9|KR(&3?*$$wr{=eVN?@t%PtSIoc4t z?BJwxaydnuTFy!ErrjJhE``g4)`)1L;H&)rt>S2@fL7(SHyndvd!35?4|5Y?A;JCwXpB9AG2Sx zKZ4&@;gC7gpr0wj_ArBE%b5?csvE}}{6#n?3Vgd>KnfvEI~=QLKq63J5iV=ye;ezJ{P_g4hoTE7=J*wlhAeO6ikTu zW7*g_tP^{Qy~92ak0<0P3KSjaLvx5y7gLr~E>gO{E03ezrGAA-Nu4&GW<)ckIY1Ar zrbW>XfDi5fTZyG_qwl6)rguSH+D|8fm2enlj9H9DFkXmdBr*;%ni*Y8cUBtfAnOpT zp4H8o$G*yT=A7nsa_xBH{IUG$0!-j6a1rbkR0vuHuLTJBJ9VLzaEUNnxC!Eqy}~Nt zS+MJuLPP|y2h?EnMp7584`tpl1j+_P(Q zF)kl)Y$n$e`eYq9k{ip-<5qDS!Dme7edXy1kqQJ>EJF}K$bSJ%M603I10svlxez;Q zGEXxT*!}EIjue*)JsiVLgdXKWR2(Hh+P|;Q)rCGppP+BC(NOj#N;hRZbq4J^{TBT$ z{QI10(xAY zic%K?E*_=UQ!h~UX&6{rG|i7u02cEI#&Ba@CL zrgC&SG!BPj3A(==+I9n=-eb-XM;`Rtf@{qU1+7lxmT}K>IeaU?H9J786%gsj38w*0 z@r28Tn}x~3JrMn$gc=fXYCNKj>Yzrj*`67iitd4EGaKsU3uEK!*gfn6HkD#Uc|gG+ zj;W+d)6{4>w6(NiS`Uo_*xf*Pfu1*Iu4Kl*cqj`-qc53X0lTL{`RB6ySi52Td4ko# zdd_;o8pk$f&tbc=gCWM)4?eDk{fRBZnE)dp8>mM#Ck?E(1+e=ajDx0eQHUe(QIJ1i z_ea2P8QvV;0(|8Kc>=z?03t>)pxe@wSY539EOj=QZ4F-3gYD0bfYh_u$JuwlGstmN zhg-{hZhH<T{Jpu)x3!Wz| z1_Vn9Akk<%nuP8^M`5QhIf(5&De2%_$5T}yc0s9hss+`WI)}Q3noK=FEdo#5O6{h; zp(+BNFd(L1L)%U}NIMKxQwJFSl{St(fv!ep(oN`d=?-*fh-PBpeZ($^X^#Gg?QcSC zBf%KU7!NTi4{#=yQOIb6aqlO_B&HFQ3-2JDn1K*!o`HT=0}P+X@@0jwN?1o&7og4q z;Hj0^nd}qnMz#&q)}Ma^A_`29CTJHt7D$5b9f7#IQ}`4g=^*%C&NL9CQ8G$F%~1y! z?ch;dDcXQu2D^QSP5_H#QRlOjIkVy2#A41y4q^v;(!(=p*g??GJJ?qG|7q_%yqb)@ zZP5*c4xtz6(xrxwP(zU}9YH}lNKvE5BBCpwfLi z{?0r1jr-1cf55vsh5?c$N$It`-%Uk4VMCy>jqL3aN` zHbmhYZXKrw@luddp3-}zPfFCvyvky*|JNy>z?@Q7v4WX&fWH=Rg1-)p=V10cmpYMB zM!P{2l#Aw*z5w}FqI3q#_E~9tj4vh)_EaotHP$R%F9T;~H`OxKZ2;J_o`H@K6{Kq6$&EQsxi?Orn?2o|qFX zCG5VAGG4Oz@?T*cI|H=>dE8m3(73|BHiVnTea9W+$d%5(HJ1*rr%mYt#5t=<$I22a z-YUf^T`)3V@Yj++@V5`3pni6Ql8|~L#f&aOccaJ9qOe}!Adb5LQNj((^j{?R8%|nM z#p=T=@`Mbr3HuR?#{m*DvhYkIVO3+34TF3H2Up5FxH{s}<$+XM# zz|}edm5pV{>Gq(yM z^1cb>DdjokZOCdNVgaC?0N>64EmYfBQM71QG!L2|ViYl`cw(TMhJ(FJ2d$4bhN#m5 zW{y2Xo_^>MbT~Q^GN>5zp7ar9O9%`Zh6+QAVZ^Y)?!bfLhaEx;gM!MB99%1^P*>2w z=wpnb3S@z?#@J(=Fjt_;;0^WBK&ZrpLtY#W^|%CxH&Zd0u)~*Qs{h916^u$3j7vYn zpCgbrOkw6QU*U>d$81B@ZVxhOfJH!NMunxtGD3dFf#t#SV}-F|*#ATl2VZJeas|0B|}aBm}UWqyS#b64sJ;(jVLBboz7 zL<~j)9}9gL2W!Y-{}Y8s7=a|H!4*IjP!Cm}F34%|DB~-79lZ;g079Bdno*hqase@E z46Je*kPVnY?ShdSfl>MjBeV;ngMg7?gi+y#5y3zm zNdrd03~P;b!n$Mqup!t;Yz#IDn~5#JmSgL&uVDY_huYE<#JTI(UC6HyGE{#VA-{~6 z3Bh9dr*nT`)C@&ykCX*`v>|LnhM8= zteho3gb)yfnHvGTV$t#$t%hEi5E37?S z13576b1>FCuS}?BY=K!@Ju4$`9#18*8gkl0Q8GPN&WSULy6=@palOXzc>gn zBjANcpveB$6Y+j=l6!~<$zA;UO}u+#cogj&?9YEwLajOV=?H;P2eF8x7$WNZg+a=k zdAwiThwEvlUdrb!C>L$?muvgY<@sWRIdQd`>0!oEJ`#*@+Zi*NW&Udp?k|u%cvd9iH_I?o8MIGjPP{yj`{o)d@sU3c2pR%FiPx*9@@>6uaYwrkiH$qE?P-BUF zv-u4kbQ{QDN^C)wnfi{A-n=D`2gVi{4pWfoEV8Q#v)ggANTu9gDHnQ)?Ma{S_X498C-ZYMjE!KK& z>A}I?h4+gadj>xp^ZIHPH7{XxbFEhCpGVJyTD4ATZLagQ^i4dp#}hi*wbtLSx$}Qc zER+%HZuv}#61nkB{NYLnVGLF2==eN|_lq;Iqf}1#b(&!?^TDx7rv>Z&J z;|0mNNtMV-2`{`~9P+gjnT*7#v9ix==r~Fl`al}(8ww>v5u zip)-2T=>1lW+jS)&pt6WiaM*pm;K^8uXolV-Y?E7_SJq8N}iH0#f&P}7HO|& zv(TEZIQFZ&^xVaCwqMG4zc^jo<=_@8+KIf6TR7J7#}gnOL7;*#ys?Hg)FwH7w5{dI0s zYQ?L6{ib!$^+;)CylP&)sRr*CH`qn$RrSecunp@>lNGU@N5n|C&L5`cRS`e-?y&{@ zY*`lpkdhKUZsmUQDfWqL#l~Uk)$ztQ=Ir}tc>L^1*rnzjYVm$?K6YknANg*#%K3&@ z7wYFclc!2hnG(|M{q<;PrJcgB6Ym#yUAMGspVhl&>s$aM;HAi^mhc&@HV<+u&+7uRt7sNwec=H?mqaGZE=p$ln=%aEJWgWnTH z4QH;2T2JEr;!X;Fe=3zxy4X7i%x@ehoL$Kwc)%0%vfrAaj`K(TTMxWnT*j#MZ#lWd z-FP<7oDNpIJz}MgomXoRMS?^^5ma-By?DR4rNo9&zu)Y>_uJIOg=uD&C-txLsjZf( z4!f*6NfGL%;{D>jFSS7?f|j~L7XKI?@0YCC;$6_<9GXizyHmK$g*}w>9H$kYjfPS@&uKH z04w*cO{{D~{Vl^$pn-1nNp37B5Xtw>K(5N?}AoBFl*LunubO{ti!#yq^Q}< zph`1>ImyNUs#KJC!+D&=MKC}Jf~C_}6nl)LLBw>8z+H}X+UCbJ;uFpG!6zHH!x=mn z@t$%)Ot(9v>(s~$2_KV>lQxBZ4E)_%F5u~cvu2S|V*Zc~HVFawFk)q7=h7doZI#ue zf(I|%JlYAz6q_P711L$%ImaEr2_aBn(dWOvHv9bbxeEQo%r(!A4)kZk_cbxr);3Jj z(=68jk_en1FcK^88=~LJ**(+zr8NjS*i9*B+L@A)7bLsc(CGlUh(J)tD))#oH~aO) z)9RcA1<13wqwY<{tIXMZ|yv5g2^n%0xcOF5=+>WJ590d9@X=1)q2ZS ztHtJOZ!t6u1syI+yAcX}5p?tACqa{61RPpebU&taR#*%Eaq_*@rU?v*0P`f-iDBRi zdE;id)Ek-se#<29YMwru&Y`$WHw$cu0E_Rc?%2D=sr2aBM{m=W4A;8*;@Nv> zWv5C}@pI^13gAfuoX-o6?*r1w%Sl58akZWA$aQsQ6|5}T5*ilTly0{cf>0uGpCu@f zOfO!jA^k3a5C6KUzjIVw?UNnu^)sOx%hqh^AdU!>ex0|yrL~qrDzoC&&7&$eQb$Lj zZ}=)l>*vJxj|(F*Ad3hvAX*i~W)_RQ$Gr@4?0%`(h4Srisnt`ohT0xG6|5b$}X5uf{LtjrUW7>LEM+y|RPV2Rv(!ZnrLW2m>~l&{|4 zyGu``lgD0)QEayhk|K+FSilJph|v~NB}Be5jmQnqMX@g|Caj3Hh`dGY2Ww6@ypGrF z21o?(l<2JCQ94Bhl8jBenEYUNk)t+*g1h0+7|NEU77te9~c{ z*`=2%RYrY({())fY0+XrLP{*t*$coH0q*;&F6bq;9rlEr5zM8eA6Rk23U=RUh&!)6 zOS*fXOCES4fC4VbQ#W_LiQ-NDP)@$S>~o=DW&}n$;zf9kMC`7RJqU&Vb!tSSVs!mX zpPpdHA9sYMeJNr5nGk1vn;z3~oD+@C2XP3{r_Xz*b#RJfYu!1mt8FT2G}Znz!&Har z{jtFJX&0VgKo$bfRcg;#5)*Z6@Fxm_6_7Q3F~y;2QT$zHeG0|E#zW(VYHU9iiq}0r&wr|2LjE$&5fwtd2{iN#B4qztNs?7 zP`onBfcJLv(~k;$ziYt>0#Ltaxl8-QNbvdi3$izijuyHKuJhm1U%YO;)@DZaOm7Py ziGkI7^4HsGR1c5J^N^yvJKW+v^Hi6`sUJxRjDJ|((L@3+V&MMfU0I8{&fQBBZYv3U z{W9;|EO?*0{Q4tXxVyPgOQZ`Vh{4V6i85-V%Y2oDDaq&9y?zpYeDCabG2f95T~#E^ zJJh@*31?sT(w8?xDGbc|L$6muVn8$Xecp7BSonF>ujYH3+WO|AE_n%Jbd#wZ7nMTl4}0NkS)u z(neCcUoG$?1`QV)gun1-x7OwzwywtCBHpc0kd~-XAU~7%((tmV0XGOG29|lh&wBP4 z2E<==xw=R!O1&n~{AEPA? zTPtD%P-}KF!XS$n3~x;ihPQo>8d4Kk#QwD6Q?v`p4N$yX!!oG!DX6=p5>yfcFGsG` zE?(!9HbddgA&YnsJIP&A8Fz9{hR~s!(tHdjXe9>g?j?Tf-80uUJvPXSy8KiMoG-U- z_{#EfV_xvFh}<&<1H^#YpRQVyK6mhEe!GW^Nc}Hzu3PG}?(ZsAJIxcCjNep<;_fkB)c)|Gr@mVXEwvj$I z5vKj;3)0flRT$Bh+O08g0^=p`9nbrH)AA7mc?Zv;RAPqb^WUaF9+4g1xI;Mk5g7=O zB!CNZvHJV#)U5|Um_A*%sQtO}e4Sy@FMyHKBh}sn+b;;XNC0*5!itQJ^xjOho|L(I z#dR}Q@l}zDc<-5qW#*@x?yCU_5zgm-Hwu zFy9!Z0iGm4yWYHLRPRGHE7#ja&dY{765_n~?TOgb=hzrxxrOeKgHRGs6g(G_jeKN8 zdyeVOpH%jX?RVNxKj^vG?PFBw>f3TJ%=tt4RCwPV_1%%J5ZSl3C@jHdf8VPJ8| z$Qx;`l%qDtJjlIz@O^!0@`X2H9z?WG5pApv@f z1&g%Q<$|bFZ_;MvjF@y#kCD}eaYBOEKVCUY8M6U4Nr204yusHLQL=yvW`UF3#rV9m zn4tyI3>Alvv)uXJ{2#yx35XAIEwpg?kQc;EYkyujWY)HI_UORLxwY-rK<#niGjf0= zg&+8R^qFh#ruhPU!#&}44W;m^rkfQ_JKrBHwOsZ!S2YD(q~P~gdZu$XEzuSm--71M zpZV-e{LYd&*PgqvT1eQU);k}EJI1^ZRK{YsBQvTFuN z2#Bt^=se^8_$>XH>J3e_Lewe|4Ii*21ysh&eJb+dTBYhbL> zJNI4%JeDUZ5dVanu#{yWk?vJ2x_;xvWMRz` zdo^*DxRXapgDg^@lD4K2{!VFxhr6rn_pw-yADKGkmRM(KQ|1wwq3(@Wppq20k$-kJ z`sk`~D^7Jv=^#gVsiLG?R1-yeZB>%~f_&Li3M1uPi)3cVKA}iO-0( zU@{p=dp?P-{ye7&21vogtaYSecsB*@y$~ZpWAmHSie!POlf`d7pRoHBacw0T%)skf zdQkgR3B-quko=g_M>if4STjlbp9V5=Zn0cv$;H4XDLA^HpsEyjOU-?a@vhx=@k?bP zzaW*Vi7>>hV4%m5VQM^B350J>b^M#DOf*K&n zKa+<$5KUM8?J_QnFpx-p*LD;zlR>MhV2ELa*$Eq2^XV&9VU3$%ELZ3tq z)&pfSAjHNhfA#uqo8@+0s}}~xlOfRZs(QVDzN^A_R;Nl?5g3vI*5yYTE`uCPD$xbm z>@pqQie;AKv{W~U*pj9b1W*Rjz?KZmZkq_Yym%9v&efz471#LQY}WJ+inv>a-Lw{+ zNaijBJjuYVIke+CWkcGfne%dbyIp?{$@-GrqdTl=z6-4jzHGk%Ldk&QIoy|!@~CZx zm6?$@QIv|zN4%qw-wtlm9R&q6L{A=rI5J?C-VyTUvU&UcU*+6m^VWWbLvfvUj{C#7 zDO1}i$-zUAMF#SN@*T6C!zoX9%Et5NGzV@^`hQAa7G@4dT_dssPWzye3~)MI&z;0q z)jB32u3FI+)#wq2l}-+~zP%@*9h@XC4A&1CxT*g>;RCbD{0athVJ7|N1GC{O&WZ0^ z)4#{KpNTt}b%6mgV7<-sp!t=j0`G7b)tyH(LxtB7uS0#QrK?D|f}+3w~m3t*EB)FoQIKU8Af_c_V)V<0@my zpgz)TnTJZ&cDpg*br%&Z7wsqjTA}59Ll$r<1 zIa_WfUkiq>;R$UAmsIn!r{rETbI^p z(vG6c>6g=D$izd#=-8y0DVUYc`~h*~U_pA8qE>M$OyXd3^+9M=r;!z#Ril8}=+Z+` zqPS!^6v!e6gyD&=2c~EHD2zg?pVX=F?D4nllo}kUS*A{~GiUM(fl6{f5%JtK$)oVv zK{>%GBC7KgHE-@(Dvkvh#tjawZT?}-2d(5F4AbD!%E47cZ#udp9oO1uAhWT*bG)uZ z*5{A;L?cuJ2FO8Kb2BD5?#1g1jNTSM;|3AsV=JRdl;VC7yuJC2*zIgELk%EeP4ii<(?LL-@h1al7r)LS34Ee?IUr8nLfc}BYjg_Ya<-c~4OE5sN3Irmw$x4kO7na|HUW?nfUvsg zjbg?RA_k&w8mI(a6Ng)tY3zD@K6j3B7gDF{;QFBe9#WcdL5-*6(k>sn2$-o~YEji! zbSL^wykcNc*{3yd2S`wW2LW5hFKT&`LJgk*^Y&2j1;^s=e_CSrf|&`Z^o=O`fHDO@ z9W~!YdF5SM6dLuo%TzJaAip(Mz%@Q;Ts$DjXyb7k7*c>-bGe|IKV@E{>Mtbo=i8jr zrG`yYavjsHXuf;7V%JB2Ed{uwy%6)3Dd1*r`0yl|ec(!6AHzzKUnY|E+oItR!`v<4 zNdb19Yx2p3$r@L%*l5yb+2MTxV%9esf$u)ZxLl6Q7-|Ng6yV_F<&cUiyPf`*er}~w z#gbvQx|>3JS17t)tmo7^PAq~r3cxp1G_YYcWYTZJXjscrW)tsO>bNm;x;c}$R&l*w zDH~)_0P$-nnH}!imG`@rq;zRTRfDy)_AOHFr4^;Fx};I-)`Ch3&>I&;8Lk}FOZ!5< zEaPdPPxN#3TY|p}Bt2~gcI>JP}n|1apX83 zf71-7dRSgb8qA}{%2O~r#iN)($24Kh3pObL&(HVYkEA~e_%V9Aw+}aZ=-0HZzidDM znf@1Tfp*|CEpP&lW%qVlt-0(lo2Rm~>}&nSVf4$8?^$V;BkJ7pLP?W-07(fj-u6Gq zIZ6a=o^6Yze4~qH`^NeBLkzk9Md8L77kaBsz(omukd*$2Pfqq&uI;D^Ed5HKKrvvL zh%D?iSxT~7>FYTIBq%`^(30!8VSZ8SE-R-A@o1>lI}@`6vrD#Bima91qf@tlG9}26 ziJ|l0_=bvTsCt(DtttA-9EWgp(*7;8^kJ3zMOUYRAtjJMerIleEqC)~67w0d#JbYP z;I%&UQw^@imp}HRyC?F1EhP|J(P%VW47VpSCd|c_G~lF<8$?EzY>0if-WJ9wnJfWM zN|0>Pd(M#Z@=khq(zA-Ak6iuFIGz^^7M>sY(>bbcb1DafQi6%5Bxb960wYai=Y@M+ z`xyR>2a8R&l}4ZBMbVgt{~7>sl)#{*2jkXnjd2U8xcpYw>9>2m;=OxB0iLAlmyG|o z)z^V6NB7RN+2m@?U4UeokQCC zYqE*lns;KQM)ZQ``h^^~5KKPt$S>rKz){lh9g-G!ev z)f|;nu>k{=K-jEY??F>l%Kg9vmFGbSU3Q$(yx2-vMSQ0cnEWnQwl$ zE{y;dB5P6eCvFMyxm`Wpp*2_hzX*BCxr0qgz!(SmMq8hK@_8?4pGJ>9rD>KbSu_`L z>qdR{%x5>jW^h6Y*eD(ZQcj*E?k4S?2$xX?{7l%+oYvQnbhVT57|jfR43Jcy)s^5O zzXuv~{qgTgeV#RBG`Sf&z1G*V$tNh1+{#nDfQt&09QO>W4D5|HW=B+Wo7cQhu_nt;y!gaMUde%ke~uxVOI9_-aZQ6&zh0~Wh#(l z%3_*9@X)O-;&mbj>WDO4y=;c;GqL^?&u}xLv?U4{Qh{vR$SHpYm)S-sjswO`(pc23 zz0-YBF^?n4knHL2X9s~T6$s1YAXTKb>8xHgn5Q5~JIg?@8S~xzNBe9*^F`Y~8$rO6 z3T(^kHLB*k&d`2WX53-+H8%1Th1(U1IxZSB>lt;cr|Te;3Z#zne#m(wnNdXdus=wY$N6kNH=WCD8>nAFQslqq{VT0GOcyw-ZJhO@g>N zWegV64Bj+|7zo)6OaV196I&gnE8G@7V3P{8X>FQkRcNm9UAUC-^h;_n$x?r#`<#@u z_Kf@Lvy892;Dic@mHzfoBTV6!XqVe^fes6m;7yRhs7;RAlYcN-sTPJpcO9{Dy0 z^;>dH7Oc|KR2LvY4U879oOZX}(QbOmCQRW`e5>!^VkW2wy}9pGWq*duK^Q1ggG1*| zf>2X+h0=G|?<3H9BLjb2RX#R!b6t>RIQYaa0FtFdCM& zT8aD0l07f=duXkmw*p&gfVwTZMgl@^bItoJZzaF~!xxliRg#rOF&+>~(tz<=1fJBu zZ^Oxu)Pz@a_E8fx>l}f@Q})i;%7&VBtCYM}UzMFs5K0Za#yvG{{$vun|Cm-Fe8$rhN^vbZ&iOQCC+@!a_?dz1k)7B?JB{eu>9+1H)@I;S3_X z5#DI3kpm~x;3hHeFOOS6ehpMv8G1FCQAB+sbx81b+!;2z+lp?VdH@m$*0i6lY}#9m zWt=!tw8lHIC!I4WKSHjWRQ0=`v>S`>04^kWAkvte?4!Qr?yx{Cy6afdk67QIaN~6bvFO@6GNzPKes3Sgrk%ceJI^Sn29-|@l#!t7JOZn{ zde?R_+0w;d0-fsapo_%xw~p4dPWW(y`OE=BBxux6*uMEVl0l(p)o!tjY}@+F>FDf$ zg?CP=nW2${Np`>%3Cv}*tRhQrj~}>@U0PzU92KSskJOQ%yQ#6@Cgwac4*5G0tX@AO zcTn6VyTqaulUMR_=Sj7Sjk0H?K;DD&-k>wz9Y81&EKfX&P!Tbnr3@I{{xH=YyO}ke z)?9)1<8Gc#H~RwI(#lvJCx8()$lk8Z0Uyi}r4FQGqQ0xIF_<7tmZyP3W|L`=6}z5Ho- zFQzqI;1W=H$5|>=;V|nCT9Lp;a#6gZVAN#QhHF5-bH}7#Yt($3&##8)@?B*Po?lnE+Ye!@-~ z55Wl%RIZQ)dOB+J1oA#{@4ESUZ7)!hL{6UD_~STNY0m!PPryY3M#7I|yhji@jq7q}e&q+R)2lbwBD`XbZ!W45 z=z=I^AVCA{PU&SwZ8mw#2VR^|cVw1tCxs=%IxKP?3VeQ5o&DvZ zdbPO<$Jn|Su%!V!7ro7ra501DR_8gNK2y!}-rmE!V+vc?N3@KqXJ4NHo-{x`KbwbG zlzutzR?(P937>QDNmAY}^GCl%Wup&aMkV_olm@(gPZ^_@h{HU(HtZsLA|g&^qg~hG ztrV-Zru(%lsu}Wk8t_T;mgR$U+d&Nr2@Njdt}X2a{6_X_1&qz1H@fGQp0O|BAmO|Y$-#{fC!lWrf(XCnHOvWC}Q*Tpm$rKsr z)j>Dmcm1~Q72ns?dW5ut@_Dqgp}JyXn$1^xI<}_&GPC%%+~5{Tyi0vwAkY@&REH zIH3V*Q8cVb4R^cqg0q1{oZf*kvOt}LHsbvwk3dQP5So_&Neh~y%m;3982>7La&w*? z`?-Ip_N1JdlhCX;EMAA4Oo9<`(SrIx_e&jGrKVb^QB#WH)=t%j1C|Ef_A)oip$hyjOCTM{I69!^AY-vy);!$z09$ zyzQe$L;Jv%79b+-&=*U^ZgZV^EK7S<&eU0QTq>VF>)YGeuq$t?>foDtwBW(G6z9Hl zXp0FBL%sQsq`lu`nn@tDXzjbBbF9ORb_fWi1v7b{ZN?4HPCl(gj#(V|=kbq9NS2q- zX@~O*FiM0n-KqW0W%@nM2sUiIF9ufO}g3~|g0_juF zwP)>r8m?z5NxhXE3tDMG0X=`)#gD)C8E)^=woCVZ+qaq6S|ig=nqrVmaQph&4Gho% zSrLC@>ArHAYnWC(wy}-;4DGGqm7>L7S{Iu}?DEfhvZ8bmG?` z9~)g>)s(QRp=sXgkDz3*NelASE(POWR&Adz`Fzg#*Tdk2V(rJ0Z#>oLAIpoSxqkZ$ zPG~{Ldt@Q7YSTGFMQ|nLn&0^?^Wl`?kJJz&`IgP+{5(VeNe3t^_anMWfzIfWGK=Id zjCKM055ozZ!GtN2cSo24w+OiC02@hF{`G55)_l#Ec3VSxm}oy<#dlk=*G3j4?32qEuzapk#xT?vRtd#K5=nVzy*DFAo4sdH(*0+8d7MM#x zO?SVOi)gKS@BE(caINjU-TRBV?{UD84txt+%AkG!oaSq!!NtP~@8$4YtZC$X^$o0R zjwAX0fg-?`4vyy2UEZ~och-deG@Ze6@Yvcxio(TXL>53OZ&Xplt*ik~NC zIZzFw?D8rHT;!D=+6mMS1->i`It)s2nn~w@`VSpAq3UA9Ub-z#S zM@_!gnic6Cl*-HqTIs;>@437n_`XQo~{e1U)CjO`D4Av>O}4iX6V3@T2#!DfCgV|w@I|PtyZ4V z`9EaHcxe?>m`S)jZmtY$(gDQ>to^JQk7nkZyl*(iKh#w)6CbUPJTc$U5}OT>FCYdd zbikZ*uCyU;$LwT==ohaRdxcHKx}t53AvZ5ETZdbWaXLWKgGR;7udWL_@NIR@)0u5d zcOvZE#opWzZKiLOd^VnHngh7#!78JHv_Q^Q!1YF>Ly!I2@2?mwIJw2R-^i9!dbOyD z@B_ zQRpCEU`r1^@jli(=uK^)pq4lM)s~yZfi}I6_4CxI({o3fi!G*cz>^+W(FAtKn-mt7 zmS%)?PR$<}jWjIYSYOm1CcbQLc!Nh5gwliO*z!x~rfU(D#{Jswr#zqZkXiBUTAL7k zEci)Zt0u?+;^@I~o>fPYyxL7C$v!%UsAcDKe#v|HBI-X;f9KpWUj7^bvgpBNX;R^* zS+e++kzWh~xAx1my(tP^?oSmmhH;kJeYo@*RMG>^w~2)@!V9@FJv3xCR&T}mu*kME z)URx<3mIPqEo2jcR(kMd`ZDve^bsi+``t-8U#!G;S=9;&n^kM@Tpa(Y- z)aI#thr;&g-kitzN4#m7UGi8s$l51p-O4ky4lxBY^x(~DNkb&d0Pfed7c5H|Jd#j* zy!^K7m;CUwK|LYa);idv2b&4gr_v0G1I`-#d2w<38zGal)`#^mPb1a`7a}UD1u4M^ zJ)kPHHRV1s=&=iq|90*AH~!i&J3H$=gB$%!a31Hic5Z-V0PL6N`8JF_FK{Xwu?WA} zbqeI!PhpnT$ca6F^*h~I^AEtq08*kS#8J=KzV9c$_L!tDqaHM)e)o32p-8VYi2uS_ zuO1-50Qef|(T1^R3MFx_IX+EMQw$1;tK91nzRT!=O7}oN7of}le*6?;`t7L~?<~|C zt0@^Xc%A(CeE```r;W;$b++4QfAP8z_&MA;wY)W}v$z5Bi72s|0UELN`M^oHp* zzatxKvMV&tiK1QTAH>GSkfqYS5#9630-+3GU>TA5V_v~};dyP)jfFWgn*l>bPFw!A z;iYi&jU3}!AdUgJJ!(3BS9nLfx%Z&oOcPC^axZAMvDj7hUFzSI$jy^vN%bjNz5F;W6-X>Ij zLTnYPft?UjoX452Jon{(~oz?KaqC0Jx3hsXb6tr#o?>2U-4BEig@`FJ*+-E9+8{C*Q#o#GNTL4afgRAv@!57JX+?+TykFhor= zPh|RPaeq-yk@}^iOg5#I2)GzQ1}C%fD{X_F)h<2rQp7uotaa{4!>kbLU6uO1)9_o5 z0K%m6S1zkB>6FiW+L>aIlsf0_NAQsP@tT@54wq-JWymTGlo^4$bM4bapXAOk)$*;E z%0<&nh~dS$2Qdc79NfbEja%1&AtSh!sZ>ZeO=8h(>whOunElM;WeH;9ezkjXn@7|` zX7OCWmJ#f7Ow19QETL5fCl?~ecFQ;zp6ejAr4J64qm-zht-1qGMu60ntvF-b@bOZR z8(pw~?}S)0ecbnYy|+6JUV5s06!7zhj3C1KvFWcv(Ps}Ie-N|Eh$p2tP61C0Uo)s=1S%)7+?f@?LK1- zx3XGvE=hw%9a9H$uSi=3B`@8J$8F8FehaZ+h7mlGBjQ}UxMEco`1ma-V~)F7!hIO; z6zIj5_`WAUz)A*eG6G)iCwwwq7P-MLlfLh3SHe=RG0$n3P8sB0m%#Ky{JgJ7hGXNuIgkJ5JpP;W_;1eRzd4Wp<~;tJ^Z0MhV>z2x`S-|j z1uVV7qr?~HU%PsDBujK~jboluDZDRCf*h*UC8--T>d#44YFH>29FDJ1;4wmO31#y`x5U_~*9Gu9}-zDl&$rcE%CD#%7gxOLe{^xvFE zBtm`s=Sk7F<4BrYVMoWdQ&PB8#Q(8#9#vn=`MGWOs+QR=ST_Ea3|ctg*6UhJP#(|B z{L&GGkVIbVoqghapEj zDm~RD$T+5y4{;*)f7F~u4EFy$=do(^sS|^MJZLQ)Ir(^0F5IZq#3>nkdO~A(-Fzol z!})($Go2BazfiLm7Z$l0kzb=&JYLM_y7yZ5iFAYDo$_Tn|MOqg#0hJUh7!#81S9q` zxl9C)d|qEyn^UI71l`r3SqMRyl~(=!wI#Q-p3affS!4d&;i}j0mRLtX`F*N1fuNpS z+qop1ULv@p1$6@MVD3TJi3efDXmOnj2uJ06vuY#H4hsqjJPa~kyuT<)`Gr^d&`-Ye z){})#elwX4b0PS%XK#*b7qsOpD^^B3k(*0Q29kkP7|v-Omr*by|$jzH(cGO z^y2-8cUBj5>2-g712x~CsSz^-P}h!WhgwJ!=bNO|ZF0Na. */ + namespace $rootnamespace$ { public class $safeitemrootname$ diff --git a/VisualStudioItemTemplates/CSharp/Code/1033/Interface/Interface.cs b/VisualStudioItemTemplates/CSharp/Code/1033/Interface/Interface.cs index e35539281..e5f4e4399 100644 --- a/VisualStudioItemTemplates/CSharp/Code/1033/Interface/Interface.cs +++ b/VisualStudioItemTemplates/CSharp/Code/1033/Interface/Interface.cs @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ + namespace $rootnamespace$ { public interface $safeitemrootname$ diff --git a/VisualStudioItemTemplates/CSharp/Code/1033/WebClass/Class.cs b/VisualStudioItemTemplates/CSharp/Code/1033/WebClass/Class.cs index 03d26547f..9e1116f6b 100644 --- a/VisualStudioItemTemplates/CSharp/Code/1033/WebClass/Class.cs +++ b/VisualStudioItemTemplates/CSharp/Code/1033/WebClass/Class.cs @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ + namespace $rootnamespace$ { public class $safeitemrootname$ diff --git a/ci/InstallerTestScripts/prepare-installer-tests.ps1 b/ci/InstallerTestScripts/prepare-installer-tests.ps1 index 72e1e2112..c359fc6e6 100644 --- a/ci/InstallerTestScripts/prepare-installer-tests.ps1 +++ b/ci/InstallerTestScripts/prepare-installer-tests.ps1 @@ -3,7 +3,7 @@ $virtualMachinesPath = Join-Path -Path $env:CI_PROJECT_DIR -ChildPath "\ci\Insta $testStatus = @{} $installerSharedFolderPath = "C:/Shared/Installers/" + $env:CI_PROJECT_ID -$installerPath = $env:CI_PROJECT_DIR + "/setup/ProtonVPN-SetupFiles/*.exe" +$installerPath = $env:CI_PROJECT_DIR + "/setup/Installers/*.exe" $testScriptsSharedPath = "C:/Shared/Scripts/" $testScriptsPath = $env:CI_PROJECT_DIR + "/src/Tests/ProtonVPN.UI.Tests/InstallerScripts/FreshInstall.xml" $testRunnerScript = $env:CI_PROJECT_DIR + "/ci/InstallerTestScripts/run-installer-tests.ps1" diff --git a/ci/TestRun/converter-nunit-junit.ps1 b/ci/TestRun/converter-nunit-junit.ps1 index 0407db1b4..e259f98e2 100644 --- a/ci/TestRun/converter-nunit-junit.ps1 +++ b/ci/TestRun/converter-nunit-junit.ps1 @@ -4,7 +4,7 @@ If(!(test-path -PathType container $folder)) { New-Item -ItemType Directory -Path $folder } -$xml = Resolve-Path nunit-results\ProtonVPN.UI.Tests.xml +$xml = Resolve-Path TestResults\ProtonVPN.UI.Tests.xml $output = Join-Path ($pwd) $outputPath $xslt = New-Object System.Xml.Xsl.XslCompiledTransform; $xslt.Load(".\ci\TestRun\nunit3-junit.xslt"); diff --git a/ci/TestRun/test-run-settings.xml b/ci/TestRun/test-run-settings.xml index 12e6500ed..fa6367225 100644 --- a/ci/TestRun/test-run-settings.xml +++ b/ci/TestRun/test-run-settings.xml @@ -1,6 +1,7 @@ - ../../nunit-results + UseResultDirectory + ./ \ No newline at end of file diff --git a/ci/install-the-app.ps1 b/ci/install-the-app.ps1 index d3e45f75d..36a5acf1c 100644 --- a/ci/install-the-app.ps1 +++ b/ci/install-the-app.ps1 @@ -1,7 +1,7 @@ $version = (get-item .\src\bin\ProtonVPN.exe).VersionInfo | % {("{0}.{1}.{2}" -f $_.FileMajorPart,$_.FileMinorPart,$_.FileBuildPart)} $projectDir = $env:CI_PROJECT_DIR -$installerPath = $projectDir + "\Setup\ProtonVPN-SetupFiles\ProtonVPN_win_v" + $version + ".exe" +$installerPath = $projectDir + "\Setup\Installers\ProtonVPN_v" + $version + ".exe" Write-Output ("Write event with installer path: " + $installerPath) -Start-Process -Wait -FilePath $installerPath -ArgumentList "/qb" -PassThru \ No newline at end of file +Start-Process -FilePath $installerPath -ArgumentList "/verysilent" -PassThru \ No newline at end of file diff --git a/ci/installer.py b/ci/installer.py index 0b1cf49ee..1fc8f2871 100644 --- a/ci/installer.py +++ b/ci/installer.py @@ -1,23 +1,24 @@ import os +import re import subprocess +import pathlib -def build(version, hash, setupFile, params=''): - installerFile = 'build-installer.txt' - script = """;aic -SetVersion {version}""".format(version=version, hash=hash) +def build(version, hash, setupFile): + fileData = '' + with open(setupFile, 'r') as file: + fileData = file.read() + + fileData = re.sub('(#define MyAppVersion \")([0-9+]\.[0-9+]\.[0-9+])(\".+)', rf'\g<1>{version}\3', fileData, 1, flags = re.M | re.DOTALL) if hash: - script = script + "\r\nSetProperty CommitHash=\"{hash}\"".format(hash=hash) + fileData = fileData.replace('#define Hash ""', "#define Hash \"{hash}\"".format(hash=hash)) - if params: - script = script + "\r\n{params}".format(params=params) - - script = script + "\r\nSave\r\nRebuild" - f = open(installerFile, 'w') - f.write(script) - f.close() + setupFile = pathlib.Path(setupFile).parent.resolve().__str__() + '\\' + 'setup-edited.iss' + print(setupFile) + with open(setupFile, 'w') as file: + file.write(fileData) - p = subprocess.Popen(['AdvancedInstaller.com', '/execute', setupFile, installerFile], + p = subprocess.Popen(['iscc', setupFile], env=os.environ, stdout=subprocess.PIPE, universal_newlines=True) diff --git a/ci/launch-installer-UI.ps1 b/ci/launch-installer-UI.ps1 index 04e67da8e..250b19e5a 100644 --- a/ci/launch-installer-UI.ps1 +++ b/ci/launch-installer-UI.ps1 @@ -1,5 +1,5 @@ $version = (get-item .\src\bin\ProtonVPN.exe).VersionInfo | % {("{0}.{1}.{2}" -f $_.FileMajorPart,$_.FileMinorPart,$_.FileBuildPart)} $projectDir = $env:CI_PROJECT_DIR -$installerPath = $projectDir + "\Setup\ProtonVPN-SetupFiles\ProtonVPN_win_v" + $version + ".exe" +$installerPath = $projectDir + "\Setup\Installers\ProtonVPN_v" + $version + ".exe" Write-EventLog -LogName "Application" -Source "ProtonVPN" -EventID 5 -EntryType Information -Message $installerPath -Category 0 \ No newline at end of file diff --git a/ci/launch-installer.ps1 b/ci/launch-installer.ps1 index deb7b4e0a..8bd8a1af6 100644 --- a/ci/launch-installer.ps1 +++ b/ci/launch-installer.ps1 @@ -1,6 +1,6 @@ $version = (get-item .\src\bin\ProtonVPN.exe).VersionInfo | % {("{0}.{1}.{2}" -f $_.FileMajorPart,$_.FileMinorPart,$_.FileBuildPart)} $projectDir = $env:CI_PROJECT_DIR -$installerPath = $projectDir + "\Setup\ProtonVPN-SetupFiles\ProtonVPN_win_v" + $version + ".exe" +$installerPath = $projectDir + "\Setup\Installers\ProtonVPN_v" + $version + ".exe" Write-Output ("Write event with installer path: " + $installerPath) diff --git a/ci/main.py b/ci/main.py index 47277e0f6..98f8386c8 100644 --- a/ci/main.py +++ b/ci/main.py @@ -29,8 +29,6 @@ def print_sha256(file_path): subparsers.add_parser('lint-languages') subparsers.add_parser('defaultConfig') -subparsers.add_parser('tap-installer') -subparsers.add_parser('tun-installer') subparsers.add_parser('sign') custom_parser = subparsers.add_parser('app-installer') @@ -82,28 +80,9 @@ def print_sha256(file_path): elif args.command == 'app-installer': v = win32api.GetFileVersionInfo('.\src\\bin\ProtonVPN.exe', '\\') semVersion = "%d.%d.%d" % (v['FileVersionMS'] / 65536, v['FileVersionMS'] % 65536, v['FileVersionLS'] / 65536) - params = '' - p = Path() - for f in list(p.glob('.\src\\bin\**\ProtonVPN.Translations.resources.dll')): - params = params + "\r\nAddFolder APPDIR {folder}".format(folder=f.parent.absolute()) - print('Building app installer') - err = installer.build(semVersion, args.hash, 'Setup/ProtonVPN.aip', params) - print_sha256('.\Setup\ProtonVPN-SetupFiles\ProtonVPN_win_v{semVersion}.exe'.format(semVersion=semVersion)) - sys.exit(err) - -elif args.command == 'tap-installer': - print('Building tap installer') - version = '1.1.4' - err = installer.build(version, '', 'Setup/ProtonVPNTap.aip') - print_sha256('.\Setup\ProtonVPNTap-SetupFiles\ProtonVPNTap_{version}.exe'.format(version=version)) - sys.exit(err) - -elif args.command == 'tun-installer': - print('Building tun installer') - version = '0.13.1' - err = installer.build(version, '', 'Setup/ProtonVPNTun.aip') - print_sha256('.\Setup\ProtonVPNTun-SetupFiles\ProtonVPNTun_{version}.exe'.format(version=version)) + err = installer.build(semVersion, args.hash, 'Setup/setup.iss') + print_sha256('.\Setup\Installers\ProtonVPN_v{semVersion}.exe'.format(semVersion=semVersion)) sys.exit(err) elif args.command == 'add-commit-hash': diff --git a/ci/prepare-internal-beta.py b/ci/prepare-internal-beta.py index e324e093d..64c11fbc5 100644 --- a/ci/prepare-internal-beta.py +++ b/ci/prepare-internal-beta.py @@ -32,7 +32,7 @@ def get_file_hash(filename, hash, bytes): def generate_file_json(version, installer_path): file_json = {} - file_json['Url'] = f'{os.getenv("INTERNAL_INSTALLER_URL")}/ProtonVPN_win_v' + version + '.exe' + file_json['Url'] = f'{os.getenv("INTERNAL_INSTALLER_URL")}/ProtonVPN_v' + version + '.exe' file_json['SHA1CheckSum'] = get_file_hash(installer_path, hashlib.sha1(), 1024) file_json['SHA256CheckSum'] = get_file_hash(installer_path, hashlib.sha256(), 4096) file_json['SHA512CheckSum'] = get_file_hash(installer_path, hashlib.sha512(), 4096) @@ -78,7 +78,7 @@ def get_full_update_json(version, installer_path): return win_update_json if __name__ == '__main__': - installer_path = glob(os.getenv('CI_PROJECT_DIR') + '\\setup\\ProtonVPN-SetupFiles\\Proton' + '*.exe')[0] + installer_path = glob(os.getenv('CI_PROJECT_DIR') + '\\setup\\Installers\\Proton' + '*.exe')[0] version = get_version_number(installer_path)[:-2] clone_main_branch() diff --git a/ci/slack.py b/ci/slack.py index 2a9a61066..925327435 100644 --- a/ci/slack.py +++ b/ci/slack.py @@ -7,7 +7,7 @@ def send(): client = WebClient(token=os.environ.get("SLACK_BOT_TOKEN")) logger = logging.getLogger(__name__) - files = glob.glob("./Setup/ProtonVPN-SetupFiles/*.exe") + files = glob.glob("./Setup/Installers/*.exe") if len(files) > 0: installer_path = files[0] diff --git a/ci/uninstall-app.ps1 b/ci/uninstall-app.ps1 index f481055f2..86829820e 100644 --- a/ci/uninstall-app.ps1 +++ b/ci/uninstall-app.ps1 @@ -1,17 +1,3 @@ -$protonVpnString = "ProtonVPN" - -$app = Get-WmiObject -Class Win32_Product | Where-Object { - $_.Name -match $protonVpnString -} - -if ($app) { - $appPath = ($app | Where-Object { - $_.Name -eq $protonVpnString - }).InstallLocation - - $output = $app.Uninstall(); - - if (Test-Path $appPath) { - Remove-Item $appPath -Recurse - } +if (Test-Path -Path "C:\Program Files\Proton\VPN") { + Start-Process -FilePath "C:\Program Files\Proton\VPN\unins000.exe" -ArgumentList "/verysilent" -ErrorAction SilentlyContinue } diff --git a/ci/updater.ps1 b/ci/updater.ps1 index ba9e5d936..8387be64e 100644 --- a/ci/updater.ps1 +++ b/ci/updater.ps1 @@ -6,7 +6,7 @@ $newVersionBlockString = @" { "Version": "$($version)", "File": { - "Url": "https://protonvpn.com/download/ProtonVPN_win_v$($version).exe", + "Url": "https://protonvpn.com/download/ProtonVPN_v$($version).exe", "CheckSum": "$($hash.Hash)", "Arguments": "/qb" }, diff --git a/src/Announcements/ProtonVPN.Announcements.Contracts/ProtonVPN.Announcements.Contracts.csproj b/src/Announcements/ProtonVPN.Announcements.Contracts/ProtonVPN.Announcements.Contracts.csproj index 56d4ff160..d8289de67 100644 --- a/src/Announcements/ProtonVPN.Announcements.Contracts/ProtonVPN.Announcements.Contracts.csproj +++ b/src/Announcements/ProtonVPN.Announcements.Contracts/ProtonVPN.Announcements.Contracts.csproj @@ -1,59 +1,19 @@ - - - + - Debug - AnyCPU - {153BD6AB-6B34-4E97-A96D-4ED5826DC037} + net6.0-windows Library - Properties - ProtonVPN.Announcements.Contracts - ProtonVPN.Announcements.Contracts - v4.7.2 - 512 - true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest + false - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - + + + all + + \ No newline at end of file diff --git a/src/Announcements/ProtonVPN.Announcements.Installers/ProtonVPN.Announcements.Installers.csproj b/src/Announcements/ProtonVPN.Announcements.Installers/ProtonVPN.Announcements.Installers.csproj index 488da228a..3545a4e54 100644 --- a/src/Announcements/ProtonVPN.Announcements.Installers/ProtonVPN.Announcements.Installers.csproj +++ b/src/Announcements/ProtonVPN.Announcements.Installers/ProtonVPN.Announcements.Installers.csproj @@ -1,64 +1,26 @@ - - - + - Debug - AnyCPU - {2088B3AF-F9AF-45B8-B824-16749D5DAF9E} + net6.0-windows Library - Properties - ProtonVPN.Announcements.Installers - ProtonVPN.Announcements.Installers - v4.7.2 - 512 - true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 + false - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - {153BD6AB-6B34-4E97-A96D-4ED5826DC037} - ProtonVPN.Announcements.Contracts - - - {45927301-6CF5-4770-888C-7B0B51ECEBEE} - ProtonVPN.Announcements - + + 4.9.4 + + all + - \ No newline at end of file diff --git a/src/Announcements/ProtonVPN.Announcements.Tests/ProtonVPN.Announcements.Tests.csproj b/src/Announcements/ProtonVPN.Announcements.Tests/ProtonVPN.Announcements.Tests.csproj index 397e269c6..ffd0fbc94 100644 --- a/src/Announcements/ProtonVPN.Announcements.Tests/ProtonVPN.Announcements.Tests.csproj +++ b/src/Announcements/ProtonVPN.Announcements.Tests/ProtonVPN.Announcements.Tests.csproj @@ -1,92 +1,40 @@ - - - + - Debug - AnyCPU - {89E58A49-12C4-4C22-B646-348B6BFCCB4D} + net6.0-windows Library - Properties - ProtonVPN.Announcements.Tests - ProtonVPN.Announcements.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest + false + false - - - - Properties\GlobalAssemblyInfo.cs - - - 6.7.0 + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 4.3.0 + + all + - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {CA44B51D-7645-413A-818F-2C5B57DB67DD} - ProtonVPN.Core - - - {153BD6AB-6B34-4E97-A96D-4ED5826DC037} - ProtonVPN.Announcements.Contracts - - - {45927301-6CF5-4770-888C-7B0B51ECEBEE} - ProtonVPN.Announcements - + + + + + - - \ No newline at end of file diff --git a/src/Announcements/ProtonVPN.Announcements/ProtonVPN.Announcements.csproj b/src/Announcements/ProtonVPN.Announcements/ProtonVPN.Announcements.csproj index 6dbf74766..60d8aac21 100644 --- a/src/Announcements/ProtonVPN.Announcements/ProtonVPN.Announcements.csproj +++ b/src/Announcements/ProtonVPN.Announcements/ProtonVPN.Announcements.csproj @@ -1,71 +1,25 @@ - - - + - Debug - AnyCPU - {45927301-6CF5-4770-888C-7B0B51ECEBEE} + net6.0-windows Library - Properties - ProtonVPN.Announcements - ProtonVPN.Announcements - v4.7.2 - 512 - true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest + false - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {CA44B51D-7645-413A-818F-2C5B57DB67DD} - ProtonVPN.Core - - - {153BD6AB-6B34-4E97-A96D-4ED5826DC037} - ProtonVPN.Announcements.Contracts - + + + + + + + + all + - - \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Contracts/ProtonVPN.Api.Contracts.csproj b/src/Api/ProtonVPN.Api.Contracts/ProtonVPN.Api.Contracts.csproj index a03bbdd92..56f1fbc1e 100644 --- a/src/Api/ProtonVPN.Api.Contracts/ProtonVPN.Api.Contracts.csproj +++ b/src/Api/ProtonVPN.Api.Contracts/ProtonVPN.Api.Contracts.csproj @@ -1,131 +1,27 @@ - - - + - Debug - AnyCPU - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} + net6.0-windows Library - Properties - ProtonVPN.Api.Contracts - ProtonVPN.Api.Contracts - v4.7.2 - 512 - true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - 9 - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - 9 - - - true + false - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - + + 13.0.1 + + + all + - \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Installers/ProtonVPN.Api.Installers.csproj b/src/Api/ProtonVPN.Api.Installers/ProtonVPN.Api.Installers.csproj index d31b6aa9e..eaef7786f 100644 --- a/src/Api/ProtonVPN.Api.Installers/ProtonVPN.Api.Installers.csproj +++ b/src/Api/ProtonVPN.Api.Installers/ProtonVPN.Api.Installers.csproj @@ -1,63 +1,27 @@ - - - + - Debug - AnyCPU - {686E902E-0C23-4396-8887-6D9219EF8D27} + net6.0-windows Library - Properties - ProtonVPN.Api.Installers - ProtonVPN.Api.Installers - v4.7.2 - 512 - true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - - - true + false - - - - - Properties\GlobalAssemblyInfo.cs - - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {3E905528-D87C-4552-A32D-66BF90D14DB0} - ProtonVPN.Api - + + 4.9.4 + + + all + - \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Tests/Handlers/StackBuilders/CompleteHttpMessageHandlerStackBuilderTest.cs b/src/Api/ProtonVPN.Api.Tests/Handlers/StackBuilders/CompleteHttpMessageHandlerStackBuilderTest.cs index c49073a59..00856d940 100644 --- a/src/Api/ProtonVPN.Api.Tests/Handlers/StackBuilders/CompleteHttpMessageHandlerStackBuilderTest.cs +++ b/src/Api/ProtonVPN.Api.Tests/Handlers/StackBuilders/CompleteHttpMessageHandlerStackBuilderTest.cs @@ -32,12 +32,12 @@ public class CompleteHttpMessageHandlerStackBuilderTest [TestMethod] public void Test_WithNullDelegatingHandler() { - MockOfWebRequestHandler mockOfWebRequestHandler = new(); + MockOfHttpClientHandler mockOfHttpClientHandler = new(); - CompleteHttpMessageHandlerStackBuilder completeStackBuilder = new(mockOfWebRequestHandler); + CompleteHttpMessageHandlerStackBuilder completeStackBuilder = new(mockOfHttpClientHandler); HttpMessageHandler resultHandler = completeStackBuilder.Build(); - Assert.AreEqual(resultHandler, mockOfWebRequestHandler); + Assert.AreEqual(resultHandler, mockOfHttpClientHandler); } [TestMethod] @@ -62,10 +62,10 @@ public void Test_WithDelegatingHandlers(int numDelegatingHandlers) { mockOfDelegatingHandlers.Add(new MockOfDelegatingHandler()); } - MockOfWebRequestHandler mockOfWebRequestHandler = new(); + MockOfHttpClientHandler mockOfHttpClientHandler = new(); // Act - CompleteHttpMessageHandlerStackBuilder completeStackBuilder = new(mockOfWebRequestHandler, + CompleteHttpMessageHandlerStackBuilder completeStackBuilder = new(mockOfHttpClientHandler, mockOfDelegatingHandlers.Select(dh => (DelegatingHandler)dh).ToList()); HttpMessageHandler resultHandler = completeStackBuilder.Build(); @@ -76,7 +76,7 @@ public void Test_WithDelegatingHandlers(int numDelegatingHandlers) Assert.AreEqual(mockOfDelegatingHandler, handlerToEvaluate); handlerToEvaluate = mockOfDelegatingHandler.InnerHandler; } - Assert.AreEqual(mockOfWebRequestHandler, handlerToEvaluate); + Assert.AreEqual(mockOfHttpClientHandler, handlerToEvaluate); } } } \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Tests/Handlers/StackBuilders/HttpMessageHandlerStackBuilderTest.cs b/src/Api/ProtonVPN.Api.Tests/Handlers/StackBuilders/HttpMessageHandlerStackBuilderTest.cs index 7ec73c8c8..b0f8cd777 100644 --- a/src/Api/ProtonVPN.Api.Tests/Handlers/StackBuilders/HttpMessageHandlerStackBuilderTest.cs +++ b/src/Api/ProtonVPN.Api.Tests/Handlers/StackBuilders/HttpMessageHandlerStackBuilderTest.cs @@ -31,13 +31,13 @@ public class HttpMessageHandlerStackBuilderTest [TestMethod] public void TestAddLastHandler() { - MockOfWebRequestHandler mockOfWebRequestHandler = new(); + MockOfHttpClientHandler mockOfHttpClientHandler = new(); HttpMessageHandler resultHandler = new HttpMessageHandlerStackBuilder() - .AddLastHandler(mockOfWebRequestHandler) + .AddLastHandler(mockOfHttpClientHandler) .Build(); - Assert.AreEqual(resultHandler, mockOfWebRequestHandler); + Assert.AreEqual(resultHandler, mockOfHttpClientHandler); } [TestMethod] @@ -74,7 +74,7 @@ public void TestAddDelegatingHandler(int numDelegatingHandlers) { mockOfDelegatingHandlers.Add(new MockOfDelegatingHandler()); } - MockOfWebRequestHandler mockOfWebRequestHandler = new(); + MockOfHttpClientHandler mockOfHttpClientHandler = new(); // Act HttpMessageHandlerStackBuilder stackBuilder = new HttpMessageHandlerStackBuilder(); @@ -83,7 +83,7 @@ public void TestAddDelegatingHandler(int numDelegatingHandlers) stackBuilder = stackBuilder.AddDelegatingHandler(mockOfDelegatingHandler); } HttpMessageHandler resultHandler = stackBuilder - .AddLastHandler(mockOfWebRequestHandler) + .AddLastHandler(mockOfHttpClientHandler) .Build(); // Assert @@ -93,7 +93,7 @@ public void TestAddDelegatingHandler(int numDelegatingHandlers) Assert.AreEqual(mockOfDelegatingHandler, handlerToEvaluate); handlerToEvaluate = mockOfDelegatingHandler.InnerHandler; } - Assert.AreEqual(mockOfWebRequestHandler, handlerToEvaluate); + Assert.AreEqual(mockOfHttpClientHandler, handlerToEvaluate); } } } \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Tests/Mocks/MockOfWebRequestHandler.cs b/src/Api/ProtonVPN.Api.Tests/Mocks/MockOfHttpClientHandler.cs similarity index 92% rename from src/Api/ProtonVPN.Api.Tests/Mocks/MockOfWebRequestHandler.cs rename to src/Api/ProtonVPN.Api.Tests/Mocks/MockOfHttpClientHandler.cs index 337687b67..749b397f7 100644 --- a/src/Api/ProtonVPN.Api.Tests/Mocks/MockOfWebRequestHandler.cs +++ b/src/Api/ProtonVPN.Api.Tests/Mocks/MockOfHttpClientHandler.cs @@ -20,7 +20,7 @@ namespace ProtonVPN.Api.Tests.Mocks { - public class MockOfWebRequestHandler : WebRequestHandler + public class MockOfHttpClientHandler : HttpClientHandler { } } \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Tests/ProtonVPN.Api.Tests.csproj b/src/Api/ProtonVPN.Api.Tests/ProtonVPN.Api.Tests.csproj index 444af9d8f..058079c45 100644 --- a/src/Api/ProtonVPN.Api.Tests/ProtonVPN.Api.Tests.csproj +++ b/src/Api/ProtonVPN.Api.Tests/ProtonVPN.Api.Tests.csproj @@ -1,137 +1,50 @@ - - - + - Debug - AnyCPU - {168C5EC3-FF08-402F-8D70-F216CB04DE81} + net6.0-windows Library - Properties - ProtonVPN.Api.Tests - ProtonVPN.Api.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest - - - true + false + false - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - - {455DA1FB-5097-47D2-8603-B0E1F9D90294} - ProtonVPN.Dns.Contracts - - - {a0da4200-6643-4f2c-8450-65b8ce8a5576} - ProtonVPN.Tests.Common - - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {3E905528-D87C-4552-A32D-66BF90D14DB0} - ProtonVPN.Api - - - {03b8e43c-5680-4803-a745-0a104fe6620c} - ProtonVPN.Common - - - {ca44b51d-7645-413a-818f-2c5b57db67dd} - ProtonVPN.Core - + + + + + + - - 1.8.9 - 6.7.0 + + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 13.0.1 @@ -146,12 +59,14 @@ 5.0.0 - 5.0.0 + 6.0.0 4.5.4 + + + all + - - \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api/BaseApiClient.cs b/src/Api/ProtonVPN.Api/BaseApiClient.cs index 9584d575e..c3b45a38b 100644 --- a/src/Api/ProtonVPN.Api/BaseApiClient.cs +++ b/src/Api/ProtonVPN.Api/BaseApiClient.cs @@ -19,9 +19,13 @@ using System; using System.IO; +using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; +using System.Web; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.WebUtilities; using Newtonsoft.Json; using ProtonVPN.Api.Contracts; using ProtonVPN.Api.Contracts.Common; @@ -84,10 +88,16 @@ protected async Task> GetApiResponseResult(HttpResponseM } catch (JsonException) { - throw new HttpRequestException(response.StatusCode.Description()); + throw new HttpRequestException(GetStatusCodeDescription(response.StatusCode)); } } + public string GetStatusCodeDescription(HttpStatusCode code) + { + string description = ReasonPhrases.GetReasonPhrase((int)code); + return string.IsNullOrEmpty(description) ? $"HTTP error code: {code}." : description; + } + private ApiResponseResult CreateApiResponseResult(T response, HttpResponseMessage responseMessage) where T : BaseResponse { diff --git a/src/Api/ProtonVPN.Api/Handlers/HumanVerificationHandler.cs b/src/Api/ProtonVPN.Api/Handlers/HumanVerificationHandler.cs index 5e36d1d88..2b0b749cd 100644 --- a/src/Api/ProtonVPN.Api/Handlers/HumanVerificationHandler.cs +++ b/src/Api/ProtonVPN.Api/Handlers/HumanVerificationHandler.cs @@ -105,7 +105,7 @@ private async Task HandleHumanVerification(HttpRequestMessa { await Semaphore.WaitAsync(); - bool? result = _humanVerifier.Verify(hvToken); + bool? result = await _humanVerifier.VerifyAsync(hvToken); if (result.HasValue && result.Value) { string token = _humanVerifier.GetResolvedToken(); diff --git a/src/Api/ProtonVPN.Api/Handlers/TlsPinning/CertificateHandler.cs b/src/Api/ProtonVPN.Api/Handlers/TlsPinning/CertificateHandler.cs index ca10ff4f9..6331e69b4 100644 --- a/src/Api/ProtonVPN.Api/Handlers/TlsPinning/CertificateHandler.cs +++ b/src/Api/ProtonVPN.Api/Handlers/TlsPinning/CertificateHandler.cs @@ -28,14 +28,13 @@ namespace ProtonVPN.Api.Handlers.TlsPinning ///

/// Enforces SSL certificate validation. /// - public class CertificateHandler : WebRequestHandler + public class CertificateHandler : HttpClientHandler { private readonly ICertificateValidator _certificateValidator; public CertificateHandler(ICertificateValidator certificateValidator) { _certificateValidator = certificateValidator; - ServerCertificateCustomValidationCallback = CertificateCustomValidationCallback; AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; } diff --git a/src/Api/ProtonVPN.Api/ProtonVPN.Api.csproj b/src/Api/ProtonVPN.Api/ProtonVPN.Api.csproj index 21d41451b..f593a3a78 100644 --- a/src/Api/ProtonVPN.Api/ProtonVPN.Api.csproj +++ b/src/Api/ProtonVPN.Api/ProtonVPN.Api.csproj @@ -1,149 +1,30 @@ - - - + - Debug - AnyCPU - {3E905528-D87C-4552-A32D-66BF90D14DB0} + net6.0-windows Library - Properties - ProtonVPN.Api - ProtonVPN.Api - v4.7.2 - 512 - true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - 9 - - - pdbonly - true + false + true + true ..\..\bin\ - TRACE - prompt - 4 - 9 - - - true + false - - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {455DA1FB-5097-47D2-8603-B0E1F9D90294} - ProtonVPN.Dns.Contracts - - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {ca44b51d-7645-413a-818f-2c5b57db67dd} - ProtonVPN.Core - - - {C0D6E7EC-29AF-4FC2-B8E0-1E5D083B55DD} - ProtonVPN.HumanVerification.Contracts - - + + + + + - - 1.8.9 - - - 3.2.0 - 1.5.0 + 13.0.1 @@ -153,9 +34,11 @@ 1.1.0 - - 4.3.0 + + + + all + - \ No newline at end of file diff --git a/src/Dns/ProtonVPN.Dns.Contracts/ProtonVPN.Dns.Contracts.csproj b/src/Dns/ProtonVPN.Dns.Contracts/ProtonVPN.Dns.Contracts.csproj index fe10e2bf0..34931e345 100644 --- a/src/Dns/ProtonVPN.Dns.Contracts/ProtonVPN.Dns.Contracts.csproj +++ b/src/Dns/ProtonVPN.Dns.Contracts/ProtonVPN.Dns.Contracts.csproj @@ -1,69 +1,24 @@ - - - + - Debug - AnyCPU - {455DA1FB-5097-47D2-8603-B0E1F9D90294} + net6.0-windows Library - Properties - ProtonVPN.Dns.Contracts - ProtonVPN.Dns.Contracts - v4.7.2 - 512 - true + false + ..\..\bin\ + false - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - + - + + + + all + - \ No newline at end of file diff --git a/src/Dns/ProtonVPN.Dns.Installers/ProtonVPN.Dns.Installers.csproj b/src/Dns/ProtonVPN.Dns.Installers/ProtonVPN.Dns.Installers.csproj index 52d4fa609..3369e62e9 100644 --- a/src/Dns/ProtonVPN.Dns.Installers/ProtonVPN.Dns.Installers.csproj +++ b/src/Dns/ProtonVPN.Dns.Installers/ProtonVPN.Dns.Installers.csproj @@ -1,68 +1,28 @@ - - - + - Debug - AnyCPU - {E52E34FD-40AE-425B-9C1A-2CAB3EE2704F} + net6.0-windows Library - Properties - ProtonVPN.Dns.Installers - ProtonVPN.Dns.Installers - v4.7.2 - 512 - true + false + ..\..\bin\ + false - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - {455DA1FB-5097-47D2-8603-B0E1F9D90294} - ProtonVPN.Dns.Contracts - - - {8C4C72C3-DCC4-43B1-A2B3-DF77B435FA75} - ProtonVPN.Dns - + + 4.9.4 + + + + all + - \ No newline at end of file diff --git a/src/Dns/ProtonVPN.Dns.Tests/Mocks/MockOfHttpClientFactory.cs b/src/Dns/ProtonVPN.Dns.Tests/Mocks/MockOfHttpClientFactory.cs index ccbd0de39..d485eb0c8 100644 --- a/src/Dns/ProtonVPN.Dns.Tests/Mocks/MockOfHttpClientFactory.cs +++ b/src/Dns/ProtonVPN.Dns.Tests/Mocks/MockOfHttpClientFactory.cs @@ -18,8 +18,8 @@ */ using System.Net.Http; -using ProtonVPN.Dns.HttpClients; using RichardSzalay.MockHttp; +using IHttpClientFactory = ProtonVPN.Dns.HttpClients.IHttpClientFactory; namespace ProtonVPN.Dns.Tests.Mocks { diff --git a/src/Dns/ProtonVPN.Dns.Tests/ProtonVPN.Dns.Tests.csproj b/src/Dns/ProtonVPN.Dns.Tests/ProtonVPN.Dns.Tests.csproj index 066503c35..e932d83d1 100644 --- a/src/Dns/ProtonVPN.Dns.Tests/ProtonVPN.Dns.Tests.csproj +++ b/src/Dns/ProtonVPN.Dns.Tests/ProtonVPN.Dns.Tests.csproj @@ -1,101 +1,40 @@ - - - + - Debug - AnyCPU - {F6B47679-3362-4A0C-BB4D-BD3C9B0550AF} + net6.0-windows Library - Properties - ProtonVPN.Dns.Tests - ProtonVPN.Dns.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - + false + ..\..\bin\ + false + false - true - full - false ..\..\bin\ - DEBUG;TRACE - prompt - 4 latest - pdbonly - true - bin\Release\ - TRACE - prompt - 4 latest - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {ca44b51d-7645-413a-818f-2c5b57db67dd} - ProtonVPN.Core - - - {455DA1FB-5097-47D2-8603-B0E1F9D90294} - ProtonVPN.Dns.Contracts - - - {8C4C72C3-DCC4-43B1-A2B3-DF77B435FA75} - ProtonVPN.Dns - + + + + 1.5.0 + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 4.3.0 @@ -103,7 +42,9 @@ 5.0.0 + + + all + - - \ No newline at end of file diff --git a/src/Dns/ProtonVPN.Dns/ProtonVPN.Dns.csproj b/src/Dns/ProtonVPN.Dns/ProtonVPN.Dns.csproj index 8e0305d69..f79a7bff9 100644 --- a/src/Dns/ProtonVPN.Dns/ProtonVPN.Dns.csproj +++ b/src/Dns/ProtonVPN.Dns/ProtonVPN.Dns.csproj @@ -1,99 +1,34 @@ - - - + - Debug - AnyCPU - {8C4C72C3-DCC4-43B1-A2B3-DF77B435FA75} + net6.0-windows Library - Properties - ProtonVPN.Dns - ProtonVPN.Dns - v4.7.2 - 512 - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + false latest + ..\..\bin\ + false - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {CA44B51D-7645-413A-818F-2C5B57DB67DD} - ProtonVPN.Core - - - {455DA1FB-5097-47D2-8603-B0E1F9D90294} - ProtonVPN.Dns.Contracts - - - - + + + 1.2.0 - - 2.2.9 - 1.5.0 + + + + + all + - - \ No newline at end of file diff --git a/src/Dns/ProtonVPN.Dns/Resolvers/DnsOverHttpsResolverBase.cs b/src/Dns/ProtonVPN.Dns/Resolvers/DnsOverHttpsResolverBase.cs index 960982a1e..dc8cce7b6 100644 --- a/src/Dns/ProtonVPN.Dns/Resolvers/DnsOverHttpsResolverBase.cs +++ b/src/Dns/ProtonVPN.Dns/Resolvers/DnsOverHttpsResolverBase.cs @@ -25,9 +25,9 @@ using System.Reflection; using System.Threading; using System.Threading.Tasks; -using System.Web; using ARSoft.Tools.Net; using ARSoft.Tools.Net.Dns; +using Microsoft.AspNetCore.WebUtilities; using ProtonVPN.Common.Configuration; using ProtonVPN.Common.Extensions; using ProtonVPN.Common.Logging; @@ -35,7 +35,7 @@ using ProtonVPN.Common.Networking; using ProtonVPN.Dns.Contracts; using ProtonVPN.Dns.Contracts.Exceptions; -using ProtonVPN.Dns.HttpClients; +using IHttpClientFactory = ProtonVPN.Dns.HttpClients.IHttpClientFactory; namespace ProtonVPN.Dns.Resolvers { @@ -199,7 +199,9 @@ private void ThrowIfHttpResponseMessageIsNotSuccess(HttpResponseMessage response { if (!response.IsSuccessStatusCode) { - throw new HttpException((int)response.StatusCode, $"Unexpected HTTP response '{response.StatusCode}' " + + int statusNumber = (int)response.StatusCode; + string statusDescription = ReasonPhrases.GetReasonPhrase(statusNumber); + throw new Exception($"Unexpected HTTP response {statusNumber} '{statusDescription}' " + $"when resolving for host '{config.Host}' with DNS over HTTPS provider '{config.ProviderUrl}'."); } } diff --git a/src/EntityMapping/ProtonVPN.EntityMapping.Contracts/IEntityMapper.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Contracts/IEntityMapper.cs new file mode 100644 index 000000000..297608b79 --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Contracts/IEntityMapper.cs @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.EntityMapping.Contracts +{ + public interface IEntityMapper + { + TOutput Map(TInput inputEntity); + + TOutput? MapNullableStruct(TInput? inputEntity) + where TInput : struct + where TOutput : struct; + + List Map(IEnumerable inputEntities); + } +} \ No newline at end of file diff --git a/src/EntityMapping/ProtonVPN.EntityMapping.Contracts/IMapper.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Contracts/IMapper.cs new file mode 100644 index 000000000..47bbe8c68 --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Contracts/IMapper.cs @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.EntityMapping.Contracts +{ + public interface IMapper : IMapper + { + TRight Map(TLeft leftEntity); + TLeft Map(TRight rightEntity); + } + + public interface IMapper + { + } +} \ No newline at end of file diff --git a/src/EntityMapping/ProtonVPN.EntityMapping.Contracts/ProtonVPN.EntityMapping.Contracts.csproj b/src/EntityMapping/ProtonVPN.EntityMapping.Contracts/ProtonVPN.EntityMapping.Contracts.csproj new file mode 100644 index 000000000..1143759ba --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Contracts/ProtonVPN.EntityMapping.Contracts.csproj @@ -0,0 +1,17 @@ + + + + net6.0-windows + enable + ..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + diff --git a/src/ProtonVPN.Service/ProjectInstaller.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Installers/EntityMappingModule.cs similarity index 74% rename from src/ProtonVPN.Service/ProjectInstaller.cs rename to src/EntityMapping/ProtonVPN.EntityMapping.Installers/EntityMappingModule.cs index 9fe51f24e..f70741ef3 100644 --- a/src/ProtonVPN.Service/ProjectInstaller.cs +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Installers/EntityMappingModule.cs @@ -17,16 +17,15 @@ * along with ProtonVPN. If not, see . */ -using System.ComponentModel; +using Autofac; -namespace ProtonVPN.Service +namespace ProtonVPN.EntityMapping.Installers { - [RunInstaller(true)] - public partial class ProjectInstaller : System.Configuration.Install.Installer + public class EntityMappingModule : Module { - public ProjectInstaller() + protected override void Load(ContainerBuilder builder) { - InitializeComponent(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); } } -} +} \ No newline at end of file diff --git a/src/EntityMapping/ProtonVPN.EntityMapping.Installers/ProtonVPN.EntityMapping.Installers.csproj b/src/EntityMapping/ProtonVPN.EntityMapping.Installers/ProtonVPN.EntityMapping.Installers.csproj new file mode 100644 index 000000000..a375a7a62 --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Installers/ProtonVPN.EntityMapping.Installers.csproj @@ -0,0 +1,25 @@ + + + + net6.0-windows + enable + ..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + + diff --git a/src/EntityMapping/ProtonVPN.EntityMapping.Tests/EntityMapperTest.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/EntityMapperTest.cs new file mode 100644 index 000000000..2fcefcb5d --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/EntityMapperTest.cs @@ -0,0 +1,228 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Logging; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.EntityMapping.Tests.Mocks; + +namespace ProtonVPN.EntityMapping.Tests +{ + [TestClass] + public class EntityMapperTest + { + private ILogger _logger; + private Lazy> _mappers; + private EntityMapper _entityMapper; + + [TestInitialize] + public void Initialize() + { + _logger = Substitute.For(); + _mappers = new Lazy>(CreateMappers); + _entityMapper = new EntityMapper(_logger, _mappers); + } + + private IEnumerable CreateMappers() + { + yield return new MockOfEntityMapper(); + yield return new MockOfEnumMapper(); + } + + [TestCleanup] + public void Cleanup() + { + _logger = null; + _mappers = null; + _entityMapper = null; + } + + [TestMethod] + public void TestMap_Entity() + { + string value = DateTimeOffset.UtcNow.ToString(); + MockOfEntityA mockOfEntityA = new() { Value = value.ToString() }; + + MockOfEntityB result = _entityMapper.Map(mockOfEntityA); + + Assert.IsNotNull(result); + Assert.AreEqual(value, result.Value); + } + + [TestMethod] + public void TestMap_Entity_Inverse() + { + string value = DateTimeOffset.UtcNow.ToString(); + MockOfEntityB mockOfEntityB = new() { Value = value.ToString() }; + + MockOfEntityA result = _entityMapper.Map(mockOfEntityB); + + Assert.IsNotNull(result); + Assert.AreEqual(value, result.Value); + } + + [TestMethod] + [ExpectedException(typeof(NotImplementedException))] + public void TestMap_WhenMapperDoesNotExist() + { + string value = DateTimeOffset.UtcNow.ToString(); + MockOfEntityA mockOfEntityA = new() { Value = value.ToString() }; + + _entityMapper.Map(mockOfEntityA); + } + + [TestMethod] + public void TestMap_Enum() + { + MockOfEnumA mockOfEnumA = MockOfEnumA.One; + + MockOfEnumB result = _entityMapper.Map(mockOfEnumA); + + Assert.IsNotNull(result); + Assert.AreEqual(MockOfEnumB.One, result); + } + + [TestMethod] + public void TestMap_Enum_Inverse() + { + MockOfEnumB mockOfEnumB = MockOfEnumB.Two; + + MockOfEnumA result = _entityMapper.Map(mockOfEnumB); + + Assert.IsNotNull(result); + Assert.AreEqual(MockOfEnumA.Two, result); + } + + [TestMethod] + [DataRow(MockOfEnumB.Two, MockOfEnumA.Two)] + [DataRow(null, null)] + public void TestMapNullableStruct(MockOfEnumB? expectedResult, MockOfEnumA? mockOfEnumA) + { + MockOfEnumB? result = _entityMapper.MapNullableStruct(mockOfEnumA); + + Assert.AreEqual(expectedResult, result); + } + + [TestMethod] + [DataRow(MockOfEnumA.One, MockOfEnumB.One)] + [DataRow(null, null)] + public void TestMapNullableStruct_Inverse(MockOfEnumA? expectedResult, MockOfEnumB? mockOfEnumB) + { + MockOfEnumA? result = _entityMapper.MapNullableStruct(mockOfEnumB); + + Assert.AreEqual(expectedResult, result); + } + + [TestMethod] + [ExpectedException(typeof(NotImplementedException))] + public void TestMapNullableStruct_WhenMapperDoesNotExist() + { + MockOfEnumA mockOfEnumA = MockOfEnumA.One; + + _entityMapper.Map(mockOfEnumA); + } + + [TestMethod] + public void TestMap_ListOfEntities() + { + List mockOfAEntities = GenerateEntities( + (int i) => new() { Value = DateTimeOffset.UtcNow.AddDays(i).ToString() }); + + List result = _entityMapper.Map(mockOfAEntities.ToList()); + + AssertListsAreEqual(mockOfAEntities, result, + (MockOfEntityA mockOfEntityA, MockOfEntityB mockOfEntityB) => mockOfEntityA.Value == mockOfEntityB.Value); + } + + private List GenerateEntities(Func generator) + { + List entities = new(); + for (int i = 0; i < 9; i++) + { + entities.Add(generator(i)); + } + return entities; + } + + private void AssertListsAreEqual(List expectedResult, List result, Func comparer) + { + Assert.IsNotNull(result); + Assert.AreEqual(expectedResult.Count, result.Count); + for (int i = 0; i < expectedResult.Count; i++) + { + Assert.IsTrue(comparer(expectedResult[i], result[i])); + } + } + + [TestMethod] + public void TestMap_ListOfEntities_Inverse() + { + List mockOfBEntities = GenerateEntities( + (int i) => new() { Value = DateTimeOffset.UtcNow.AddDays(i).ToString() }); + + List result = _entityMapper.Map(mockOfBEntities.ToList()); + + AssertListsAreEqual(mockOfBEntities, result, + (MockOfEntityB mockOfEntityB, MockOfEntityA mockOfEntityA) => mockOfEntityB.Value == mockOfEntityA.Value); + } + + [TestMethod] + [ExpectedException(typeof(NotImplementedException))] + public void TestMap_List_WhenMapperDoesNotExist() + { + List mockOfAEntities = GenerateEntities( + (int i) => new() { Value = DateTimeOffset.UtcNow.AddDays(i).ToString() }); + + _entityMapper.Map(mockOfAEntities.ToList()); + } + + [TestMethod] + public void TestMap_ListOfEnums() + { + List mockOfAEnums = GenerateEnums((int i) => (MockOfEnumA)i); + + List result = _entityMapper.Map(mockOfAEnums.ToList()); + + AssertListsAreEqual(mockOfAEnums, result, + (MockOfEnumA mockOfEnumA, MockOfEnumB mockOfEnumB) => (int)mockOfEnumA == (int)mockOfEnumB); + } + + private List GenerateEnums(Func generator) + { + List entities = new(); + for (int i = 0; i < 3; i++) + { + entities.Add(generator(i)); + } + return entities; + } + + [TestMethod] + public void TestMap_ListOfEnums_Inverse() + { + List mockOfBEnums = GenerateEnums((int i) => (MockOfEnumB)i); + + List result = _entityMapper.Map(mockOfBEnums.ToList()); + + AssertListsAreEqual(mockOfBEnums, result, + (MockOfEnumB mockOfEnumB, MockOfEnumA mockOfEnumA) => (int)mockOfEnumB == (int)mockOfEnumA); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.TapInstaller/SetupResult.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityA.cs similarity index 86% rename from src/ProtonVPN.TapInstaller/SetupResult.cs rename to src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityA.cs index 1deea169a..9a428cf0c 100644 --- a/src/ProtonVPN.TapInstaller/SetupResult.cs +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityA.cs @@ -17,12 +17,10 @@ * along with ProtonVPN. If not, see . */ -namespace TapInstaller +namespace ProtonVPN.EntityMapping.Tests.Mocks { - public enum SetupResult + public class MockOfEntityA { - Success, - Failure, - RestartRequired + public string Value { get; set; } } } \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/ServerValidationObject.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityB.cs similarity index 84% rename from src/ProtonVPN.Service.Contract/Vpn/ServerValidationObject.cs rename to src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityB.cs index 9f6c3c6c8..40484b7fd 100644 --- a/src/ProtonVPN.Service.Contract/Vpn/ServerValidationObject.cs +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityB.cs @@ -17,10 +17,10 @@ * along with ProtonVPN. If not, see . */ -namespace ProtonVPN.Service.Contract.Vpn +namespace ProtonVPN.EntityMapping.Tests.Mocks { - public class ServerValidationObject + public class MockOfEntityB { - public PhysicalServer Server { get; set; } + public string Value { get; set; } } } \ No newline at end of file diff --git a/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityMapper.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityMapper.cs new file mode 100644 index 000000000..a9f388b3a --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEntityMapper.cs @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.EntityMapping.Contracts; + +namespace ProtonVPN.EntityMapping.Tests.Mocks +{ + public class MockOfEntityMapper : IMapper + { + public MockOfEntityB Map(MockOfEntityA leftEntity) + { + return new MockOfEntityB() { Value = leftEntity.Value }; + } + + public MockOfEntityA Map(MockOfEntityB rightEntity) + { + return new MockOfEntityA() { Value = rightEntity.Value }; + } + } +} \ No newline at end of file diff --git a/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumA.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumA.cs new file mode 100644 index 000000000..1befefef2 --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumA.cs @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.EntityMapping.Tests.Mocks +{ + public enum MockOfEnumA + { + Zero = 0, + One = 1, + Two = 2, + } +} \ No newline at end of file diff --git a/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumB.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumB.cs new file mode 100644 index 000000000..85e780d98 --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumB.cs @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.EntityMapping.Tests.Mocks +{ + public enum MockOfEnumB + { + Zero = 0, + One = 1, + Two = 2, + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Common/OS/Net/Http/HttpStatusCodeExtensions.cs b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumMapper.cs similarity index 66% rename from src/ProtonVPN.Common/OS/Net/Http/HttpStatusCodeExtensions.cs rename to src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumMapper.cs index 123d57c1d..04c619865 100644 --- a/src/ProtonVPN.Common/OS/Net/Http/HttpStatusCodeExtensions.cs +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/Mocks/MockOfEnumMapper.cs @@ -17,17 +17,20 @@ * along with ProtonVPN. If not, see . */ -using System.Net; -using System.Web; +using ProtonVPN.EntityMapping.Contracts; -namespace ProtonVPN.Common.OS.Net.Http +namespace ProtonVPN.EntityMapping.Tests.Mocks { - public static class HttpStatusCodeExtensions + public class MockOfEnumMapper : IMapper { - public static string Description(this HttpStatusCode code) + public MockOfEnumB Map(MockOfEnumA leftEntity) { - string description = HttpWorkerRequest.GetStatusDescription((int) code); - return string.IsNullOrEmpty(description) ? $"HTTP error code: {code}." : description; + return (MockOfEnumB)leftEntity; + } + + public MockOfEnumA Map(MockOfEnumB rightEntity) + { + return (MockOfEnumA)rightEntity; } } } \ No newline at end of file diff --git a/src/EntityMapping/ProtonVPN.EntityMapping.Tests/ProtonVPN.EntityMapping.Tests.csproj b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/ProtonVPN.EntityMapping.Tests.csproj new file mode 100644 index 000000000..544d0e05e --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping.Tests/ProtonVPN.EntityMapping.Tests.csproj @@ -0,0 +1,27 @@ + + + + net6.0-windows + enable + ..\..\bin\ + false + Library + false + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + + + diff --git a/src/EntityMapping/ProtonVPN.EntityMapping/EntityMapper.cs b/src/EntityMapping/ProtonVPN.EntityMapping/EntityMapper.cs new file mode 100644 index 000000000..643ca39ad --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping/EntityMapper.cs @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.AppLogs; +using ProtonVPN.EntityMapping.Contracts; + +namespace ProtonVPN.EntityMapping +{ + public class EntityMapper : IEntityMapper + { + private Lazy, IMapper>> _mappers; + private readonly ILogger _logger; + + public EntityMapper(ILogger logger, Lazy> mappers) + { + _logger = logger; + _mappers = new Lazy, IMapper>>(() => CreateMappers(mappers)); + } + + private IDictionary, IMapper> CreateMappers(Lazy> lazyMappers) + { + Dictionary, IMapper> mapperDictionary = new(); + IEnumerable mappers = lazyMappers.Value; + foreach (IMapper mapper in mappers) + { + Type genericInterface = mapper.GetType().GetInterfaces() + .Where(t => t.IsGenericType && t.GenericTypeArguments.Length == 2) + .Single(); + mapperDictionary.Add(new Tuple( + genericInterface.GenericTypeArguments[0], + genericInterface.GenericTypeArguments[1]), mapper); + } + + return mapperDictionary; + } + + public TOutput Map(TInput inputEntity) + { + if (_mappers.Value.TryGetValue(new Tuple(typeof(TInput), typeof(TOutput)), out IMapper genericMapper)) + { + return ((IMapper)genericMapper).Map(inputEntity); + } + if (_mappers.Value.TryGetValue(new Tuple(typeof(TOutput), typeof(TInput)), out IMapper inverseGenericMapper)) + { + return ((IMapper)inverseGenericMapper).Map(inputEntity); + } + + string errorMessage = $"Cannot find Entity Mapper between types '{typeof(TInput).FullName}' and '{typeof(TOutput).FullName}'."; + _logger.Fatal(errorMessage); + throw new NotImplementedException(errorMessage); + } + + public TOutput? MapNullableStruct(TInput? inputEntity) + where TInput : struct + where TOutput : struct + { + return inputEntity == null ? null : Map(inputEntity.Value); + } + + public List Map(IEnumerable inputEntities) + { + List mappedEntities = new(); + foreach (TInput inputEntity in inputEntities) + { + mappedEntities.Add(Map(inputEntity)); + } + return mappedEntities; + } + } +} \ No newline at end of file diff --git a/src/EntityMapping/ProtonVPN.EntityMapping/ProtonVPN.EntityMapping.csproj b/src/EntityMapping/ProtonVPN.EntityMapping/ProtonVPN.EntityMapping.csproj new file mode 100644 index 000000000..2a8539803 --- /dev/null +++ b/src/EntityMapping/ProtonVPN.EntityMapping/ProtonVPN.EntityMapping.csproj @@ -0,0 +1,22 @@ + + + + net6.0-windows + enable + ..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + diff --git a/src/GlobalAssemblyInfo.cs b/src/GlobalAssemblyInfo.cs index 4e006f109..9246fe75b 100644 --- a/src/GlobalAssemblyInfo.cs +++ b/src/GlobalAssemblyInfo.cs @@ -1,5 +1,6 @@ using System.Reflection; using System.Runtime.InteropServices; +using System.Runtime.Versioning; // AssemblyCompany should be left empty as it is used by the .NET in forming // the folder path where user settings are saved. @@ -13,7 +14,8 @@ [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -[assembly: AssemblyVersion("2.3.2.0")] -[assembly: AssemblyFileVersion("2.3.2.0")] +[assembly: AssemblyVersion("3.0.0.0")] +[assembly: AssemblyFileVersion("3.0.0.0")] [assembly: ComVisible(false)] -[assembly: AssemblyInformationalVersion("$AssemblyVersion")] \ No newline at end of file +[assembly: AssemblyInformationalVersion("$AssemblyVersion")] +[assembly: SupportedOSPlatform("windows")] \ No newline at end of file diff --git a/src/HumanVerification/ProtonVPN.HumanVerification.Contracts/IHumanVerifier.cs b/src/HumanVerification/ProtonVPN.HumanVerification.Contracts/IHumanVerifier.cs index 85b0c4fb9..acc6ae0c3 100644 --- a/src/HumanVerification/ProtonVPN.HumanVerification.Contracts/IHumanVerifier.cs +++ b/src/HumanVerification/ProtonVPN.HumanVerification.Contracts/IHumanVerifier.cs @@ -17,11 +17,13 @@ * along with ProtonVPN. If not, see . */ +using System.Threading.Tasks; + namespace ProtonVPN.HumanVerification.Contracts { public interface IHumanVerifier { - bool? Verify(string token); + Task VerifyAsync(string token); string GetResolvedToken(); } } \ No newline at end of file diff --git a/src/HumanVerification/ProtonVPN.HumanVerification.Contracts/ProtonVPN.HumanVerification.Contracts.csproj b/src/HumanVerification/ProtonVPN.HumanVerification.Contracts/ProtonVPN.HumanVerification.Contracts.csproj index 188a1d086..7cc8e990d 100644 --- a/src/HumanVerification/ProtonVPN.HumanVerification.Contracts/ProtonVPN.HumanVerification.Contracts.csproj +++ b/src/HumanVerification/ProtonVPN.HumanVerification.Contracts/ProtonVPN.HumanVerification.Contracts.csproj @@ -1,59 +1,21 @@ - - - + - Debug - AnyCPU - {C0D6E7EC-29AF-4FC2-B8E0-1E5D083B55DD} + net6.0-windows Library - Properties - ProtonVPN.HumanVerification.Contracts - ProtonVPN.HumanVerification.Contracts - v4.7.2 - 512 - true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - - - true + false - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - + + + + + all + + \ No newline at end of file diff --git a/src/HumanVerification/ProtonVPN.HumanVerification.Gui/ProtonVPN.HumanVerification.Gui.csproj b/src/HumanVerification/ProtonVPN.HumanVerification.Gui/ProtonVPN.HumanVerification.Gui.csproj index ddb76783e..36671a2ba 100644 --- a/src/HumanVerification/ProtonVPN.HumanVerification.Gui/ProtonVPN.HumanVerification.Gui.csproj +++ b/src/HumanVerification/ProtonVPN.HumanVerification.Gui/ProtonVPN.HumanVerification.Gui.csproj @@ -1,101 +1,39 @@ - - - + - Debug - AnyCPU - {7318548D-B8F2-4ED3-8B3E-F61DD8B552D1} + net6.0-windows Library - Properties - ProtonVPN.HumanVerification.Gui - ProtonVPN.HumanVerification.Gui - v4.7.2 - 512 - true - - latest - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false + true + true ..\..\bin\ - TRACE - prompt - 4 - latest - - - true + false - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - WebView.xaml - - - - MSBuild:Compile - Designer - - - - - {3E905528-D87C-4552-A32D-66BF90D14DB0} - ProtonVPN.Api - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {C0D6E7EC-29AF-4FC2-B8E0-1E5D083B55DD} - ProtonVPN.HumanVerification.Contracts - - - {8EE4A9C6-AA93-4A84-8EAB-4EC955DD6851} - ProtonVPN.HumanVerification - + + + + + + 1.0.1245.22 - - 5.4.1.1 - + + 13.0.1 + + + all + - \ No newline at end of file diff --git a/src/HumanVerification/ProtonVPN.HumanVerification.Gui/WebView.xaml b/src/HumanVerification/ProtonVPN.HumanVerification.Gui/WebView.xaml index 37453fe58..2270b8fcc 100644 --- a/src/HumanVerification/ProtonVPN.HumanVerification.Gui/WebView.xaml +++ b/src/HumanVerification/ProtonVPN.HumanVerification.Gui/WebView.xaml @@ -4,8 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:wpf="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf" - xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" - xmlns:command="http://www.galasoft.ch/mvvmlight" + xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:gui="clr-namespace:ProtonVPN.HumanVerification.Gui" d:DataContext="{d:DesignInstance gui:WebViewViewModel}" mc:Ignorable="d"> @@ -21,7 +20,7 @@ - diff --git a/src/HumanVerification/ProtonVPN.HumanVerification.Installers/ProtonVPN.HumanVerification.Installers.csproj b/src/HumanVerification/ProtonVPN.HumanVerification.Installers/ProtonVPN.HumanVerification.Installers.csproj index 9ba2b4ce3..e06fed72e 100644 --- a/src/HumanVerification/ProtonVPN.HumanVerification.Installers/ProtonVPN.HumanVerification.Installers.csproj +++ b/src/HumanVerification/ProtonVPN.HumanVerification.Installers/ProtonVPN.HumanVerification.Installers.csproj @@ -1,76 +1,29 @@ - - - + - Debug - AnyCPU - {80A71107-9C8E-47B2-B743-58D5976B38FB} + net6.0-windows Library - Properties - ProtonVPN.HumanVerification.Installers - ProtonVPN.HumanVerification.Installers - v4.7.2 - 512 - true - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 + false - - true - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - {C0D6E7EC-29AF-4FC2-B8E0-1E5D083B55DD} - ProtonVPN.HumanVerification.Contracts - - - {7318548D-B8F2-4ED3-8B3E-F61DD8B552D1} - ProtonVPN.HumanVerification.Gui - - - {8EE4A9C6-AA93-4A84-8EAB-4EC955DD6851} - ProtonVPN.HumanVerification - + + + 4.9.4 - - 5.0.0 + + + + all - \ No newline at end of file diff --git a/src/HumanVerification/ProtonVPN.HumanVerification/ProtonVPN.HumanVerification.csproj b/src/HumanVerification/ProtonVPN.HumanVerification/ProtonVPN.HumanVerification.csproj index e8f910703..adddc009c 100644 --- a/src/HumanVerification/ProtonVPN.HumanVerification/ProtonVPN.HumanVerification.csproj +++ b/src/HumanVerification/ProtonVPN.HumanVerification/ProtonVPN.HumanVerification.csproj @@ -1,82 +1,35 @@ - - - + - Debug - AnyCPU - {8EE4A9C6-AA93-4A84-8EAB-4EC955DD6851} + net6.0-windows Library - Properties - ProtonVPN.HumanVerification - ProtonVPN.HumanVerification - v4.7.2 - 512 - true - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false + true + true ..\..\bin\ - TRACE - prompt - 4 - latest - - - true + false - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {C0D6E7EC-29AF-4FC2-B8E0-1E5D083B55DD} - ProtonVPN.HumanVerification.Contracts - + + + + 1.0.1245.22 + + + all + + + + + - \ No newline at end of file diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/AppProcessCommunicationModule.cs b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/AppProcessCommunicationModule.cs new file mode 100644 index 000000000..21b3ec4e1 --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/AppProcessCommunicationModule.cs @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Autofac; +using ProtonVPN.ProcessCommunication.Contracts; + +namespace ProtonVPN.ProcessCommunication.App.Installers +{ + public class AppProcessCommunicationModule : Module + { + protected override void Load(ContainerBuilder builder) + { + builder.RegisterType().As().SingleInstance(); + builder.RegisterType().As().SingleInstance(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/ProtonVPN.ProcessCommunication.App.Installers.csproj b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/ProtonVPN.ProcessCommunication.App.Installers.csproj new file mode 100644 index 000000000..99218f8e7 --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/ProtonVPN.ProcessCommunication.App.Installers.csproj @@ -0,0 +1,24 @@ + + + + net6.0-windows + enable + ..\..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/AppGrpcClientTest.cs b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/AppGrpcClientTest.cs new file mode 100644 index 000000000..a9b08d3e3 --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/AppGrpcClientTest.cs @@ -0,0 +1,201 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common.Channels; +using ProtonVPN.ProcessCommunication.Common.Tests; +using ProtonVPN.ProcessCommunication.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Registration; + +namespace ProtonVPN.ProcessCommunication.App.Tests +{ + [TestClass] + public class AppGrpcClientTest + { + private const int SERVICE_SERVER_PORT = 1; + private const int APP_SERVER_PORT = 2; + + private ILogger _logger; + private IServiceServerPortRegister _serviceServerPortRegister; + private IGrpcServer _grpcServer; + private IGrpcChannelWrapper _grpcChannelWrapper; + private IGrpcChannelWrapperFactory _grpcChannelWrapperFactory; + private IAppGrpcClient _appGrpcClient; + + [TestInitialize] + public void Initialize() + { + _logger = Substitute.For(); + _serviceServerPortRegister = Substitute.For(); + _grpcServer = Substitute.For(); + _grpcChannelWrapper = Substitute.For(); + _grpcChannelWrapper.CreateService().Returns(c => Substitute.For()); + _grpcChannelWrapperFactory = Substitute.For(); + _grpcChannelWrapperFactory.Create(Arg.Any()).Returns(_grpcChannelWrapper); + _appGrpcClient = new AppGrpcClient(_logger, _serviceServerPortRegister, _grpcServer, _grpcChannelWrapperFactory); + } + + [TestCleanup] + public void Cleanup() + { + _logger = null; + _serviceServerPortRegister = null; + _grpcServer = null; + _grpcChannelWrapper = null; + _grpcChannelWrapperFactory = null; + _appGrpcClient = null; + } + + [TestMethod] + public async Task TestCreateAsync() + { + _serviceServerPortRegister.ReadAsync(Arg.Any()).Returns(SERVICE_SERVER_PORT); + _grpcServer.Port.Returns(APP_SERVER_PORT); + + await _appGrpcClient.CreateAsync(); + + Assert.IsNotNull(_appGrpcClient.ServiceController); + } + + [TestMethod] + public async Task TestCreateAsync_NoRaceConditionOccurs() + { + _serviceServerPortRegister.ReadAsync(Arg.Any()).Returns(SERVICE_SERVER_PORT); + _grpcServer.Port.Returns(APP_SERVER_PORT); + int numOfCalls = 64; + + ParallelTestRunner.ExecuteInParallel(numOfCalls, + (int _) => _appGrpcClient.CreateAsync()); + + Assert.IsNotNull(_appGrpcClient.ServiceController); + await _serviceServerPortRegister.Received(1).ReadAsync(Arg.Any()); + } + + [TestMethod] + public async Task TestCreateAsync_WhenServiceControllerIsNotNull() + { + _serviceServerPortRegister.ReadAsync(Arg.Any()).Returns(SERVICE_SERVER_PORT); + _grpcServer.Port.Returns(APP_SERVER_PORT); + + await _appGrpcClient.CreateAsync(); + + Assert.IsNotNull(_appGrpcClient.ServiceController); + await _serviceServerPortRegister.Received(1).ReadAsync(Arg.Any()); + IServiceController serviceController = _appGrpcClient.ServiceController; + + await _appGrpcClient.CreateAsync(); + + Assert.AreEqual(serviceController, _appGrpcClient.ServiceController); + await _serviceServerPortRegister.Received(1).ReadAsync(Arg.Any()); + } + + [TestMethod] + public async Task TestRecreateAsync() + { + _serviceServerPortRegister.ReadAsync(Arg.Any()).Returns(SERVICE_SERVER_PORT); + _grpcServer.Port.Returns(APP_SERVER_PORT); + + await _appGrpcClient.RecreateAsync(); + + Assert.IsNotNull(_appGrpcClient.ServiceController); + } + + [TestMethod] + public async Task TestRecreateAsync_NoRaceConditionOccurs() + { + _serviceServerPortRegister.ReadAsync(Arg.Any()).Returns(SERVICE_SERVER_PORT); + _grpcServer.Port.Returns(APP_SERVER_PORT); + int numOfCalls = 64; + + ParallelTestRunner.ExecuteInParallel(numOfCalls, + (int _) => _appGrpcClient.RecreateAsync()); + + Assert.IsNotNull(_appGrpcClient.ServiceController); + await _serviceServerPortRegister.Received(numOfCalls).ReadAsync(Arg.Any()); + await _grpcChannelWrapper.Received(numOfCalls - 1).ShutdownAsync(); + } + + [TestMethod] + public async Task TestRecreateAsync_WhenServiceControllerIsNotNull() + { + _serviceServerPortRegister.ReadAsync(Arg.Any()).Returns(SERVICE_SERVER_PORT); + _grpcServer.Port.Returns(APP_SERVER_PORT); + + await _appGrpcClient.RecreateAsync(); + + Assert.IsNotNull(_appGrpcClient.ServiceController); + await _serviceServerPortRegister.Received(1).ReadAsync(Arg.Any()); + IServiceController serviceController = _appGrpcClient.ServiceController; + + await _appGrpcClient.RecreateAsync(); + + Assert.IsNotNull(_appGrpcClient.ServiceController); + await _serviceServerPortRegister.Received(2).ReadAsync(Arg.Any()); + Assert.AreNotEqual(serviceController, _appGrpcClient.ServiceController); + await _grpcChannelWrapper.Received(1).ShutdownAsync(); + } + + [TestMethod] + public async Task TestGetServiceControllerOrThrowAsync() + { + _serviceServerPortRegister.ReadAsync(Arg.Any()).Returns(SERVICE_SERVER_PORT); + _grpcServer.Port.Returns(APP_SERVER_PORT); + TimeSpan timeout = TimeSpan.FromSeconds(0); + await _appGrpcClient.CreateAsync(); + + await _appGrpcClient.GetServiceControllerOrThrowAsync(timeout); + } + + [TestMethod] + public async Task TestGetServiceControllerOrThrowAsync_WhenServiceControllerIsCreatedAfterTheCall() + { + _serviceServerPortRegister.ReadAsync(Arg.Any()).Returns(SERVICE_SERVER_PORT); + _grpcServer.Port.Returns(APP_SERVER_PORT); + TimeSpan timeout = TimeSpan.FromSeconds(5); + + Task task = _appGrpcClient.GetServiceControllerOrThrowAsync(timeout); + await Task.Delay(TimeSpan.FromSeconds(1)); + await _appGrpcClient.CreateAsync(); + IServiceController serviceController = await task; + + Assert.IsNotNull(serviceController); + } + + [TestMethod] + [ExpectedException(typeof(TimeoutException))] + public async Task TestGetServiceControllerOrThrowAsync_WhenServiceControllerIsNullAndTimeoutZero() + { + TimeSpan timeout = TimeSpan.FromSeconds(0); + + await _appGrpcClient.GetServiceControllerOrThrowAsync(timeout); + } + + [TestMethod] + [ExpectedException(typeof(TimeoutException))] + public async Task TestGetServiceControllerOrThrowAsync_WhenServiceControllerIsNullAndTimeoutThreeSeconds() + { + TimeSpan timeout = TimeSpan.FromSeconds(3); + + await _appGrpcClient.GetServiceControllerOrThrowAsync(timeout); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/GrpcServerTest.cs b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/GrpcServerTest.cs new file mode 100644 index 000000000..e4c002764 --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/GrpcServerTest.cs @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common.Tests; +using ProtonVPN.ProcessCommunication.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; + +namespace ProtonVPN.ProcessCommunication.App.Tests +{ + [TestClass] + public class GrpcServerTest : GrpcServerTestBase + { + private ILogger _logger; + private IAppController _appController; + + [TestInitialize] + public override void Initialize() + { + _logger = Substitute.For(); + _appController = Substitute.For(); + base.Initialize(); + } + + protected override IGrpcServer CreateGrpcServer() + { + return new GrpcServer(_logger, _appController); + } + + [TestCleanup] + public override void Cleanup() + { + _logger = null; + _appController = null; + base.Initialize(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/ProtonVPN.ProcessCommunication.App.Tests.csproj b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/ProtonVPN.ProcessCommunication.App.Tests.csproj new file mode 100644 index 000000000..ec2f6fa8d --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Tests/ProtonVPN.ProcessCommunication.App.Tests.csproj @@ -0,0 +1,28 @@ + + + + net6.0-windows + enable + ..\..\..\bin + false + Library + false + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + + + + diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/AppGrpcClient.cs b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/AppGrpcClient.cs new file mode 100644 index 000000000..dbc02a655 --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/AppGrpcClient.cs @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs; +using ProtonVPN.ProcessCommunication.Common; +using ProtonVPN.ProcessCommunication.Common.Channels; +using ProtonVPN.ProcessCommunication.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Communication; +using ProtonVPN.ProcessCommunication.Contracts.Registration; + +namespace ProtonVPN.ProcessCommunication.App +{ + public class AppGrpcClient : GrpcClientBase, IAppGrpcClient + { + private readonly IServiceServerPortRegister _serviceServerPortRegister; + private readonly IGrpcServer _grpcServer; + private readonly SemaphoreSlim _semaphore = new(1, 1); + + public IServiceController ServiceController { get; private set; } + + public AppGrpcClient(ILogger logger, + IServiceServerPortRegister serviceServerPortRegister, + IGrpcServer grpcServer, + IGrpcChannelWrapperFactory grpcChannelWrapperFactory) + : base(logger, grpcChannelWrapperFactory) + { + _serviceServerPortRegister = serviceServerPortRegister; + _grpcServer = grpcServer; + } + + public async Task CreateAsync() + { + await SafeWrapperAsync(async () => + { + if (ServiceController is null) + { + await CreateInternalAsync(); + } + }); + } + + private async Task SafeWrapperAsync(Func function) + { + bool isToEnter = await _semaphore.WaitAsync(0); + if (isToEnter) + { + try + { + await function(); + } + catch + { + } + finally + { + _semaphore.Release(); + } + } + } + + private async Task CreateInternalAsync() + { + CancellationTokenSource cts = new CancellationTokenSource(); + int serviceServerPort = await _serviceServerPortRegister.ReadAsync(cts.Token); + await CreateWithPortAsync(serviceServerPort); + int? appServerPort = _grpcServer?.Port; + if (ServiceController is not null && appServerPort is not null) + { + Logger.Info($"Sending app gRPC server port {appServerPort.Value} to service."); + await ServiceController.RegisterStateConsumer(new StateConsumerIpcEntity() { ServerPort = appServerPort.Value }); + } + } + + public async Task RecreateAsync() + { + await SafeWrapperAsync(async () => + { + ServiceController = null; + await CreateInternalAsync(); + }); + } + + protected override void RegisterServices(IGrpcChannelWrapper channel) + { + ServiceController = channel.CreateService(); + } + + public async Task GetServiceControllerOrThrowAsync(TimeSpan timeout) + { + CancellationTokenSource cts = new(timeout); + IServiceController serviceController = ServiceController; + try + { + while (serviceController is null && !cts.IsCancellationRequested) + { + await Task.Delay(TimeSpan.FromSeconds(1), cts.Token); + serviceController = ServiceController; + } + } + catch + { + } + if (serviceController is null) + { + string errorMessage = $"Failed to get the Service Controller within the allotted time '{timeout}'."; + Logger.Error(errorMessage); + throw new TimeoutException(errorMessage); + } + return serviceController; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/GrpcServer.cs b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/GrpcServer.cs new file mode 100644 index 000000000..aa71f7db6 --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/GrpcServer.cs @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtoBuf.Grpc.Server; +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using static Grpc.Core.Server; + +namespace ProtonVPN.ProcessCommunication.App +{ + public class GrpcServer : GrpcServerBase + { + private readonly IAppController _appController; + + public GrpcServer(ILogger logger, IAppController appController) + : base(logger) + { + _appController = appController; + } + + protected override void RegisterServices(ServiceDefinitionCollection services) + { + services.AddCodeFirst(_appController); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/ProtonVPN.ProcessCommunication.App.csproj b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/ProtonVPN.ProcessCommunication.App.csproj new file mode 100644 index 000000000..4e4dbb7f9 --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/ProtonVPN.ProcessCommunication.App.csproj @@ -0,0 +1,24 @@ + + + + net6.0-windows + enable + ..\..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/Channels/GrpcChannelWrapperFactoryTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/Channels/GrpcChannelWrapperFactoryTest.cs new file mode 100644 index 000000000..5c43c3f06 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/Channels/GrpcChannelWrapperFactoryTest.cs @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common.Channels; + +namespace ProtonVPN.ProcessCommunication.Common.Tests.Channels +{ + [TestClass] + public class GrpcChannelWrapperFactoryTest + { + private ILogger _logger; + private GrpcChannelWrapperFactory _grpcChannelWrapperFactory; + + [TestInitialize] + public void Initialize() + { + _logger = Substitute.For(); + _grpcChannelWrapperFactory = new GrpcChannelWrapperFactory(_logger); + } + + [TestCleanup] + public void Cleanup() + { + _logger = null; + _grpcChannelWrapperFactory = null; + } + + [TestMethod] + [DataRow(1)] + [DataRow(80)] + [DataRow(65535)] + public void TestCreate(int serverPort) + { + IGrpcChannelWrapper result = _grpcChannelWrapperFactory.Create(serverPort); + + Assert.IsNotNull(result); + Assert.IsNotNull(result.ResolvedTarget); + Assert.AreEqual(result.ResolvedTarget, $"localhost:{serverPort}"); + } + + [TestMethod] + [DataRow(0)] + [DataRow(65536)] + [ExpectedException(typeof(ArgumentException))] + public void TestCreate_Throws(int serverPort) + { + _grpcChannelWrapperFactory.Create(serverPort); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/GrpcServerTestBase.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/GrpcServerTestBase.cs new file mode 100644 index 000000000..3f5793f76 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/GrpcServerTestBase.cs @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.ProcessCommunication.Contracts; + +namespace ProtonVPN.ProcessCommunication.Common.Tests +{ + [TestClass] + public abstract class GrpcServerTestBase + { + private bool _isOnStartEventCalled; + private IGrpcServer _grpcServer; + + [TestInitialize] + public virtual void Initialize() + { + _isOnStartEventCalled = false; + _grpcServer = CreateGrpcServer(); + } + + protected abstract IGrpcServer CreateGrpcServer(); + + [TestCleanup] + public virtual void Cleanup() + { + _isOnStartEventCalled = false; + _grpcServer = null; + } + + [TestMethod] + public virtual void TestCreateAndStart() + { + _grpcServer.OnStart += OnGrpcServerStart; + + _grpcServer.CreateAndStart(); + + Assert.IsNotNull(_grpcServer.Port); + Assert.IsTrue(_isOnStartEventCalled); + } + + [TestMethod] + public virtual void TestCreateAndStart_WithoutEventListener() + { + _grpcServer.CreateAndStart(); + + Assert.IsNotNull(_grpcServer.Port); + Assert.IsFalse(_isOnStartEventCalled); + } + + private void OnGrpcServerStart(object sender, EventArgs e) + { + _isOnStartEventCalled = true; + } + + [TestMethod] + public virtual async Task ShutdownAsync_WhenServerIsNull() + { + await _grpcServer.ShutdownAsync(); + } + + [TestMethod] + public virtual async Task ShutdownAsync_WhenServerIsNotNull() + { + _grpcServer.CreateAndStart(); + + await _grpcServer.ShutdownAsync(); + } + + [TestMethod] + public virtual async Task KillAsync_WhenServerIsNull() + { + await _grpcServer.KillAsync(); + } + + [TestMethod] + public virtual async Task KillAsync_WhenServerIsNotNull() + { + _grpcServer.CreateAndStart(); + + await _grpcServer.KillAsync(); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.TapInstaller/Logging/Logger.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/ParallelTestRunner.cs similarity index 65% rename from src/ProtonVPN.TapInstaller/Logging/Logger.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/ParallelTestRunner.cs index 3ecde2be2..4af65ccd3 100644 --- a/src/ProtonVPN.TapInstaller/Logging/Logger.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/ParallelTestRunner.cs @@ -17,27 +17,18 @@ * along with ProtonVPN. If not, see . */ -namespace TapInstaller.Logging +namespace ProtonVPN.ProcessCommunication.Common.Tests { - public static class Logger + public static class ParallelTestRunner { - private static ILogger _logger = new NullLogger(); - - public static ILogger GetLogger() - { - return _logger; - } - - public static void EnableLogging(ILogger logger) - { - _logger = logger; - } - - private class NullLogger : ILogger + public static void ExecuteInParallel(int numOfCalls, Func functionToRepeat) { - public void Log(string message) + IList tasks = new List(); + for (int i = 0; i < numOfCalls; i++) { + tasks.Add(functionToRepeat(i)); } + Task.WaitAll(tasks.ToArray()); } } -} +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/ProtonVPN.ProcessCommunication.Common.Tests.csproj b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/ProtonVPN.ProcessCommunication.Common.Tests.csproj new file mode 100644 index 000000000..3618a18e8 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/ProtonVPN.ProcessCommunication.Common.Tests.csproj @@ -0,0 +1,29 @@ + + + + net6.0-windows + enable + ..\..\bin + false + Library + false + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + + + + + diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/Registration/ServiceServerPortRegisterTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/Registration/ServiceServerPortRegisterTest.cs new file mode 100644 index 000000000..50aa539ec --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common.Tests/Registration/ServiceServerPortRegisterTest.cs @@ -0,0 +1,163 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common.Registration; + +namespace ProtonVPN.ProcessCommunication.Common.Tests.Registration +{ + // Initialize() before each call to make sure no cache is being used + [TestClass] + public class ServiceServerPortRegisterTest + { + private ILogger _logger; + private ServiceServerPortRegister _serviceServerPortRegister; + + [TestInitialize] + public void Initialize() + { + _logger = Substitute.For(); + _serviceServerPortRegister = new ServiceServerPortRegister(_logger); + } + + [TestCleanup] + public void Cleanup() + { + _logger = null; + _serviceServerPortRegister = null; + } + + [TestMethod] + public void TestReadOnce_WhenNothingIsWritten() + { + int? result = _serviceServerPortRegister.ReadOnce(); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestWrite_ReadOnce_Delete_ReadOnce() + { + //Write + int timestamp = GetCurrentDayMilliseconds(); + _serviceServerPortRegister.Write(timestamp); + + //ReadOnce + Initialize(); + int? result = _serviceServerPortRegister.ReadOnce(); + Assert.IsNotNull(result); + Assert.AreEqual(result.Value, timestamp); + + //Delete + Initialize(); + _serviceServerPortRegister.Delete(); + + //ReadOnce + Initialize(); + int? result2 = _serviceServerPortRegister.ReadOnce(); + Assert.IsNull(result2); + } + + private int GetCurrentDayMilliseconds() + { + DateTime utcNow = DateTime.UtcNow; + return (int)utcNow.Subtract(new DateTime(utcNow.Year, utcNow.Month, utcNow.Day)).TotalMilliseconds; + } + + [TestMethod] + public async Task TestWrite_ReadAsync_Delete_ReadOnce() + { + //Write + int timestamp = GetCurrentDayMilliseconds(); + _serviceServerPortRegister.Write(timestamp); + + //ReadAsync + CancellationTokenSource cts = new(); + cts.Cancel(); + Initialize(); + int result = await _serviceServerPortRegister.ReadAsync(cts.Token); + Assert.AreEqual(result, timestamp); + + //Delete + Initialize(); + _serviceServerPortRegister.Delete(); + + //ReadOnce + Initialize(); + int? result2 = _serviceServerPortRegister.ReadOnce(); + Assert.IsNull(result2); + } + + [TestMethod] + [ExpectedException(typeof(TaskCanceledException))] + public async Task TestReadAsync_WhenNothingIsWritten() + { + CancellationTokenSource cts = new(); + cts.Cancel(); + + await _serviceServerPortRegister.ReadAsync(cts.Token); + } + + [TestMethod] + public async Task TestReadAsync_WhenSomethingIsWrittenLater() + { + //ReadAsync start + CancellationTokenSource cts = new(); + Task readAsyncTask = _serviceServerPortRegister.ReadAsync(cts.Token); + await Task.Delay(TimeSpan.FromMilliseconds(500)); + + //Write + int timestamp = GetCurrentDayMilliseconds(); + Initialize(); + _serviceServerPortRegister.Write(timestamp); + + //ReadAsync await + int result = await readAsyncTask; + Assert.AreEqual(result, timestamp); + + //Delete + Initialize(); + _serviceServerPortRegister.Delete(); + + //ReadOnce + Initialize(); + int? result2 = _serviceServerPortRegister.ReadOnce(); + Assert.IsNull(result2); + } + + [TestMethod] + public void TestDelete() + { + //ReadOnce + int? result = _serviceServerPortRegister.ReadOnce(); + Assert.IsNull(result); + + //Delete + Initialize(); + _serviceServerPortRegister.Delete(); + + //ReadOnce + Initialize(); + int? result2 = _serviceServerPortRegister.ReadOnce(); + Assert.IsNull(result2); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapper.cs new file mode 100644 index 000000000..e9123a46f --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapper.cs @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Grpc.Core; +using ProtoBuf.Grpc.Client; + +namespace ProtonVPN.ProcessCommunication.Common.Channels +{ + public class GrpcChannelWrapper : IGrpcChannelWrapper + { + public string ResolvedTarget => _channel.ResolvedTarget; + + private readonly Channel _channel; + + public GrpcChannelWrapper(int serverPort) + { + _channel = new Channel("localhost", serverPort, ChannelCredentials.Insecure); + } + + public T CreateService() + where T : class + { + return _channel.CreateGrpcService(); + } + + public Task ShutdownAsync() + { + return _channel.ShutdownAsync(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapperFactory.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapperFactory.cs new file mode 100644 index 000000000..8a550a046 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapperFactory.cs @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs; + +namespace ProtonVPN.ProcessCommunication.Common.Channels +{ + public class GrpcChannelWrapperFactory : IGrpcChannelWrapperFactory + { + private readonly ILogger _logger; + + public GrpcChannelWrapperFactory(ILogger logger) + { + _logger = logger; + } + + public IGrpcChannelWrapper Create(int serverPort) + { + ValidatePort(serverPort); + return new GrpcChannelWrapper(serverPort); + } + + private void ValidatePort(int serverPort) + { + if (serverPort < 1 || serverPort > ushort.MaxValue) + { + string errorMessage = $"Cannot create a gRPC Client to Server Port {serverPort}. " + + $"It needs to be between [1-{ushort.MaxValue}]."; + _logger.Error(errorMessage); + throw new ArgumentException(errorMessage, nameof(serverPort)); + } + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/IGrpcChannelWrapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/IGrpcChannelWrapper.cs new file mode 100644 index 000000000..b812a63bd --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/IGrpcChannelWrapper.cs @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.ProcessCommunication.Common.Channels +{ + public interface IGrpcChannelWrapper + { + string ResolvedTarget { get; } + + T CreateService() where T : class; + Task ShutdownAsync(); + } +} \ No newline at end of file diff --git a/src/ProtonVPN.App/Notifications/INotificationUserActionHandler.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/IGrpcChannelWrapperFactory.cs similarity index 82% rename from src/ProtonVPN.App/Notifications/INotificationUserActionHandler.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/IGrpcChannelWrapperFactory.cs index c15c2fa6a..e83255d46 100644 --- a/src/ProtonVPN.App/Notifications/INotificationUserActionHandler.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/IGrpcChannelWrapperFactory.cs @@ -17,10 +17,10 @@ * along with ProtonVPN. If not, see . */ -namespace ProtonVPN.Notifications +namespace ProtonVPN.ProcessCommunication.Common.Channels { - public interface INotificationUserActionHandler + public interface IGrpcChannelWrapperFactory { - void Handle(NotificationUserAction data); + IGrpcChannelWrapper Create(int serverPort); } } \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/GrpcClientBase.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/GrpcClientBase.cs new file mode 100644 index 000000000..a265eaa17 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/GrpcClientBase.cs @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs; +using ProtonVPN.ProcessCommunication.Common.Channels; + +namespace ProtonVPN.ProcessCommunication.Common +{ + public abstract class GrpcClientBase + { + protected int? ServerPort { get; private set; } + protected ILogger Logger { get; private set; } + + private readonly IGrpcChannelWrapperFactory _grpcChannelWrapperFactory; + private readonly object _channelLock = new(); + private IGrpcChannelWrapper _channel; + + protected GrpcClientBase(ILogger logger, IGrpcChannelWrapperFactory grpcChannelWrapperFactory) + { + Logger = logger; + _grpcChannelWrapperFactory = grpcChannelWrapperFactory; + } + + protected async Task CreateWithPortAsync(int serverPort) + { + IGrpcChannelWrapper oldChannel = null; + lock(_channelLock) + { + oldChannel = _channel; + IGrpcChannelWrapper newChannel = _grpcChannelWrapperFactory.Create(serverPort); + RegisterServices(newChannel); + _channel = newChannel; + ServerPort = serverPort; + } + Logger.Info($"A new gRPC Client has been created to Server Port {serverPort}."); + await ShutdownChannelIfExists(oldChannel); + } + + protected abstract void RegisterServices(IGrpcChannelWrapper channel); + + private async Task ShutdownChannelIfExists(IGrpcChannelWrapper channel) + { + if (channel is not null) + { + string serverEndpoint = channel.ResolvedTarget; + try + { + await channel.ShutdownAsync(); + } + catch (Exception e) + { + Logger.Error($"A gRPC Client has failed to stop. Server endpoint: '{serverEndpoint}'", e); + return; + } + Logger.Info($"A gRPC Client has been stopped. Server endpoint: '{serverEndpoint}'"); + } + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/GrpcServerBase.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/GrpcServerBase.cs new file mode 100644 index 000000000..372977889 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/GrpcServerBase.cs @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using Grpc.Core; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs; +using ProtonVPN.ProcessCommunication.Contracts; +using static Grpc.Core.Server; + +namespace ProtonVPN.ProcessCommunication.Common +{ + public abstract class GrpcServerBase : IGrpcServer + { + public int? Port { get; private set; } + + public event EventHandler? OnStart; + + protected ILogger Logger { get; private set; } + protected Server? Server { get; private set; } + + protected GrpcServerBase(ILogger logger) + { + Logger = logger; + } + + public virtual void CreateAndStart() + { + ServerPort serverPort = new("localhost", ServerPort.PickUnused, ServerCredentials.Insecure); + Server = new Server() { Ports = { serverPort } }; + RegisterServices(Server.Services); + Server.Start(); + int port = Server.Ports.First().BoundPort; + Logger.Info($"A new gRPC Server has been created using Port {port}."); + Port = port; + OnStart?.Invoke(this, EventArgs.Empty); + } + + protected abstract void RegisterServices(ServiceDefinitionCollection services); + + public virtual async Task ShutdownAsync() + { + Server? server = Server; + if (server is not null) + { + await server.ShutdownAsync(); + } + } + + public virtual async Task KillAsync() + { + Server? server = Server; + if (server is not null) + { + await server.KillAsync(); + } + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/ProtonVPN.ProcessCommunication.Common.csproj b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/ProtonVPN.ProcessCommunication.Common.csproj new file mode 100644 index 000000000..e784d2f52 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/ProtonVPN.ProcessCommunication.Common.csproj @@ -0,0 +1,24 @@ + + + + net6.0-windows + enable + ..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServiceServerPortRegister.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServiceServerPortRegister.cs new file mode 100644 index 000000000..f7f324789 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServiceServerPortRegister.cs @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.Win32; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs; +using ProtonVPN.ProcessCommunication.Contracts.Registration; + +namespace ProtonVPN.ProcessCommunication.Common.Registration +{ + public class ServiceServerPortRegister : IServiceServerPortRegister + { + private const string PATH = "SOFTWARE\\Proton AG\\Proton VPN\\gRPC"; + private const string KEY = "ServiceServerPort"; + private static readonly TimeSpan DELAY = TimeSpan.FromMilliseconds(100); + + private readonly ILogger _logger; + + public ServiceServerPortRegister(ILogger logger) + { + _logger = logger; + } + + public void Write(int serverBoundPort) + { + RegistryKey key = OpenBaseKey().CreateSubKey(PATH); + if (key == null) + { + string errorMessage = "Failed to write gRPC server port to registry."; + _logger.Error(errorMessage); + throw new Exception(errorMessage); + } + try + { + key.SetValue(KEY, serverBoundPort, RegistryValueKind.DWord); + } + finally + { + key.Close(); + } + } + + private RegistryKey OpenBaseKey() + { + return RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); + } + + public void Delete() + { + RegistryKey key = OpenBaseKey().OpenSubKey(PATH, RegistryKeyPermissionCheck.ReadWriteSubTree); + if (key != null) + { + try + { + key.DeleteValue(KEY); + } + catch + { + } + finally + { + key.Close(); + } + } + } + + public int? ReadOnce() + { + object rawRegistryValue = ReadRawRegistryValue(); + return ParseRawRegistryValue(rawRegistryValue); + } + + private object ReadRawRegistryValue() + { + RegistryKey key = null; + try + { + key = OpenBaseKey().OpenSubKey(PATH); + if (key == null) + { + _logger.Error("Failed to open gRPC server port key from registry."); + return null; + } + object? serverBoundPortObject = key.GetValue(KEY); + return serverBoundPortObject; + } + catch (Exception e) + { + _logger.Error("Failed to read gRPC server port from registry.", e); + return null; + } + finally + { + try + { + key?.Close(); + } + catch + { + } + } + } + + private int? ParseRawRegistryValue(object registryValue) + { + if (registryValue is not null) + { + int serverBoundPort; + try + { + serverBoundPort = (int)registryValue; + return serverBoundPort; + } + catch + { + } + try + { + int.TryParse(registryValue.ToString(), out serverBoundPort); + return serverBoundPort; + } + catch + { + } + } + return null; + } + + public async Task ReadAsync(CancellationToken cancellationToken) + { + while (true) + { + int? serverBoundPort = ReadOnce(); + if (serverBoundPort.HasValue && serverBoundPort.Value > 0) + { + return serverBoundPort.Value; + } + await Task.Delay(DELAY, cancellationToken); + } + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/IVpnEventsContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IAppController.cs similarity index 53% rename from src/ProtonVPN.Service.Contract/Vpn/IVpnEventsContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IAppController.cs index 08ab21d22..4d83682a8 100644 --- a/src/ProtonVPN.Service.Contract/Vpn/IVpnEventsContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IAppController.cs @@ -18,24 +18,20 @@ */ using System.ServiceModel; -using ProtonVPN.Service.Contract.PortForwarding; -using ProtonVPN.Service.Contract.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; -namespace ProtonVPN.Service.Contract.Vpn +namespace ProtonVPN.ProcessCommunication.Contracts.Controllers { [ServiceContract] - public interface IVpnEventsContract + public interface IAppController { - [OperationContract(IsOneWay = true)] - void OnStateChanged(VpnStateContract state); + event EventHandler OnVpnStateChanged; + event EventHandler OnPortForwardingStateChanged; + event EventHandler OnConnectionDetailsChanged; - [OperationContract(IsOneWay = true)] - void OnServiceSettingsStateChanged(ServiceSettingsStateContract state); - - [OperationContract(IsOneWay = true)] - void OnPortForwardingStateChanged(PortForwardingStateContract state); - - [OperationContract(IsOneWay = true)] - void OnConnectionDetailsChanged(ConnectionDetailsContract connectionDetailsContract); + Task VpnStateChange(VpnStateIpcEntity vpnState); + Task PortForwardingStateChange(PortForwardingStateIpcEntity portForwardingState); + Task ConnectionDetailsChange(ConnectionDetailsIpcEntity connectionDetails); } } \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IServiceController.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IServiceController.cs new file mode 100644 index 000000000..5ca4f5612 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IServiceController.cs @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System.ServiceModel; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Auth; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Communication; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.Contracts.Controllers +{ + [ServiceContract] + public interface IServiceController + { + Task RegisterStateConsumer(StateConsumerIpcEntity stateConsumer); + + Task Connect(ConnectionRequestIpcEntity connectionRequest); + Task Disconnect(DisconnectionRequestIpcEntity disconnectionRequest); + Task UpdateAuthCertificate(AuthCertificateIpcEntity certificate); + Task GetTrafficBytes(); + Task ApplySettings(MainSettingsIpcEntity settings); + + Task RepeatState(); + Task RepeatPortForwardingState(); + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Auth/AuthCertificateIpcEntity.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Auth/AuthCertificateIpcEntity.cs new file mode 100644 index 000000000..8d04342e5 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Auth/AuthCertificateIpcEntity.cs @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using System.Runtime.Serialization; + +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Auth +{ + [DataContract] + public class AuthCertificateIpcEntity + { + [DataMember(Order = 1, IsRequired = true)] + public string Certificate { get; set; } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Communication/StateConsumerIpcEntity.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Communication/StateConsumerIpcEntity.cs new file mode 100644 index 000000000..c21a9ace3 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Communication/StateConsumerIpcEntity.cs @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using System.Runtime.Serialization; + +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Communication +{ + [DataContract] + public class StateConsumerIpcEntity + { + [DataMember(Order = 1, IsRequired = true)] + public int ServerPort { get; set; } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Servers/PhysicalServerContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/AsymmetricKeyPairIpcEntity.cs similarity index 69% rename from src/ProtonVPN.Service.Contract/Servers/PhysicalServerContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/AsymmetricKeyPairIpcEntity.cs index f82c7612b..97f3b3a5b 100644 --- a/src/ProtonVPN.Service.Contract/Servers/PhysicalServerContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/AsymmetricKeyPairIpcEntity.cs @@ -16,24 +16,17 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - using System.Runtime.Serialization; -namespace ProtonVPN.Service.Contract.Servers +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto { [DataContract] - public class PhysicalServerContract + public class AsymmetricKeyPairIpcEntity { - [DataMember] - public string EntryIp { get; set; } - - [DataMember] - public string ExitIp { get; set; } - - [DataMember] - public string Domain { get; set; } + [DataMember(Order = 1)] + public SecretKeyIpcEntity? SecretKey { get; set; } - [DataMember] - public sbyte Status { get; set; } + [DataMember(Order = 2)] + public PublicKeyIpcEntity? PublicKey { get; set; } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Crypto/KeyAlgorithmContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/KeyAlgorithmIpcEntity.cs similarity index 89% rename from src/ProtonVPN.Service.Contract/Crypto/KeyAlgorithmContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/KeyAlgorithmIpcEntity.cs index 4e50ec751..3e4a574f2 100644 --- a/src/ProtonVPN.Service.Contract/Crypto/KeyAlgorithmContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/KeyAlgorithmIpcEntity.cs @@ -16,13 +16,12 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - using System.Runtime.Serialization; -namespace ProtonVPN.Service.Contract.Crypto +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto { [DataContract] - public enum KeyAlgorithmContract + public enum KeyAlgorithmIpcEntity { [EnumMember] Unknown = 0, diff --git a/src/ProtonVPN.Service.Contract/Crypto/KeyContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/KeyIpcEntity.cs similarity index 51% rename from src/ProtonVPN.Service.Contract/Crypto/KeyContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/KeyIpcEntity.cs index 368dae431..da7d1eb8b 100644 --- a/src/ProtonVPN.Service.Contract/Crypto/KeyContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/KeyIpcEntity.cs @@ -16,55 +16,44 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Runtime.Serialization; +using ProtoBuf; using ProtonVPN.Common.Extensions; using ProtonVPN.Crypto; -namespace ProtonVPN.Service.Contract.Crypto +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto { - [DataContract] - public abstract class KeyContract : IValidatableObject + [ProtoContract] + [ProtoInclude(101, typeof(ServerPublicKeyIpcEntity))] + [ProtoInclude(102, typeof(PublicKeyIpcEntity))] + [ProtoInclude(103, typeof(SecretKeyIpcEntity))] + public abstract class KeyIpcEntity { - [DataMember] + [ProtoMember(1)] public byte[] Bytes { get; set; } - [DataMember] - public string Base64 { get; set; } + [ProtoMember(2)] + public string? Base64 { get; set; } - [DataMember] - public KeyAlgorithmContract Algorithm { get; set; } + [ProtoMember(3)] + public KeyAlgorithmIpcEntity Algorithm { get; set; } - [DataMember] - public string Pem { get; set; } + [ProtoMember(4)] + public string? Pem { get; set; } protected abstract int KeyLength { get; } - protected KeyContract() + protected KeyIpcEntity() { + Algorithm = KeyAlgorithmIpcEntity.Unknown; + Bytes = Array.Empty(); } - protected KeyContract(Key key) + protected KeyIpcEntity(Key key) { Bytes = key.Bytes; Base64 = key.Base64; - Algorithm = key.Algorithm.ToString().ToEnum(); + Algorithm = key.Algorithm.ToString().ToEnum(); Pem = key.Pem; } - - public IEnumerable Validate(ValidationContext validationContext) - { - if (Base64.Length != KeyLength) - { - yield return new ValidationResult($"Incorrect key length {Base64.Length}, should be {KeyLength}"); - } - - if (!Base64.IsValidBase64Key()) - { - yield return new ValidationResult($"Incorrect key value: {Base64}"); - } - } } } \ No newline at end of file diff --git a/src/ProtonVPN.TapInstaller/Extensions/StringExtensions.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/PublicKeyIpcEntity.cs similarity index 74% rename from src/ProtonVPN.TapInstaller/Extensions/StringExtensions.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/PublicKeyIpcEntity.cs index f2f2e9629..2086e4c1c 100644 --- a/src/ProtonVPN.TapInstaller/Extensions/StringExtensions.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/PublicKeyIpcEntity.cs @@ -16,16 +16,17 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ +using System.Runtime.Serialization; -using System; - -namespace TapInstaller.Extensions +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto { - public static class StringExtensions + [DataContract] + public class PublicKeyIpcEntity : KeyIpcEntity { - public static bool ContainsIgnoringCase(this string value, string other) + public PublicKeyIpcEntity() { - return value.IndexOf(other, StringComparison.OrdinalIgnoreCase) >= 0; } + + protected override int KeyLength => 60; } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Crypto/SecretKeyContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/SecretKeyIpcEntity.cs similarity index 70% rename from src/ProtonVPN.Service.Contract/Crypto/SecretKeyContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/SecretKeyIpcEntity.cs index 28013e496..5884cc29f 100644 --- a/src/ProtonVPN.Service.Contract/Crypto/SecretKeyContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/SecretKeyIpcEntity.cs @@ -16,28 +16,20 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - using System.Runtime.Serialization; -using ProtonVPN.Common.Extensions; using ProtonVPN.Crypto; -namespace ProtonVPN.Service.Contract.Crypto +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto { [DataContract] - public class SecretKeyContract : KeyContract + public class SecretKeyIpcEntity : KeyIpcEntity { - public SecretKeyContract() - { - } - - public SecretKeyContract(SecretKey key) - : base(key) + public SecretKeyIpcEntity() { } - public SecretKey ConvertBack() + public SecretKeyIpcEntity(SecretKey key) : base(key) { - return new(Bytes, Algorithm.ToString().ToEnum()); } protected override int KeyLength => 64; diff --git a/src/ProtonVPN.TapInstaller/Logging/InstallerSessionLogger.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/ServerPublicKeyIpcEntity.cs similarity index 69% rename from src/ProtonVPN.TapInstaller/Logging/InstallerSessionLogger.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/ServerPublicKeyIpcEntity.cs index 9b1f3364f..e8071668d 100644 --- a/src/ProtonVPN.TapInstaller/Logging/InstallerSessionLogger.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Crypto/ServerPublicKeyIpcEntity.cs @@ -16,23 +16,22 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ +using ProtoBuf; +using ProtonVPN.Crypto; -using Microsoft.Deployment.WindowsInstaller; - -namespace TapInstaller.Logging +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto { - public class InstallerSessionLogger : ILogger + [ProtoContract] + public class ServerPublicKeyIpcEntity : KeyIpcEntity { - private readonly Session _session; - - public InstallerSessionLogger(Session session) + public ServerPublicKeyIpcEntity() { - _session = session; } - public void Log(string message) + public ServerPublicKeyIpcEntity(PublicKey key) : base(key) { - _session.Log(message); } + + protected override int KeyLength => 44; } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/PortForwarding/PortForwardingStateContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/PortForwardingStateIpcEntity.cs similarity index 68% rename from src/ProtonVPN.Service.Contract/PortForwarding/PortForwardingStateContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/PortForwardingStateIpcEntity.cs index 23f5173dd..6b3a46278 100644 --- a/src/ProtonVPN.Service.Contract/PortForwarding/PortForwardingStateContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/PortForwardingStateIpcEntity.cs @@ -16,22 +16,20 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - -using System; using System.Runtime.Serialization; -namespace ProtonVPN.Service.Contract.PortForwarding +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding { [DataContract] - public class PortForwardingStateContract + public class PortForwardingStateIpcEntity { - [DataMember] - public TemporaryMappedPortContract MappedPort { get; set; } - - [DataMember] - public PortMappingStatusContract Status { get; set; } + [DataMember(Order = 1, IsRequired = true)] + public PortMappingStatusIpcEntity Status { get; set; } - [DataMember] + [DataMember(Order = 2, IsRequired = true)] public DateTime TimestampUtc { get; set; } + + [DataMember(Order = 3)] + public TemporaryMappedPortIpcEntity MappedPort { get; set; } } } \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/PortForwarding/PortMappingStatusContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/PortMappingStatusIpcEntity.cs similarity index 90% rename from src/ProtonVPN.Service.Contract/PortForwarding/PortMappingStatusContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/PortMappingStatusIpcEntity.cs index c84d431c7..a59cd4ef3 100644 --- a/src/ProtonVPN.Service.Contract/PortForwarding/PortMappingStatusContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/PortMappingStatusIpcEntity.cs @@ -16,13 +16,12 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - using System.Runtime.Serialization; -namespace ProtonVPN.Service.Contract.PortForwarding +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding { [DataContract] - public enum PortMappingStatusContract + public enum PortMappingStatusIpcEntity { [EnumMember] Stopped = 0, diff --git a/src/ProtonVPN.Service.Contract/PortForwarding/TemporaryMappedPortContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/TemporaryMappedPortIpcEntity.cs similarity index 75% rename from src/ProtonVPN.Service.Contract/PortForwarding/TemporaryMappedPortContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/TemporaryMappedPortIpcEntity.cs index ea40186c1..0bddad5af 100644 --- a/src/ProtonVPN.Service.Contract/PortForwarding/TemporaryMappedPortContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/PortForwarding/TemporaryMappedPortIpcEntity.cs @@ -16,25 +16,23 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - -using System; using System.Runtime.Serialization; -namespace ProtonVPN.Service.Contract.PortForwarding +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding { [DataContract] - public class TemporaryMappedPortContract + public class TemporaryMappedPortIpcEntity { - [DataMember] + [DataMember(Order = 1, IsRequired = true)] public int InternalPort { get; set; } - [DataMember] + [DataMember(Order = 2, IsRequired = true)] public int ExternalPort { get; set; } - [DataMember] + [DataMember(Order = 3, IsRequired = true)] public TimeSpan Lifetime { get; set; } - [DataMember] + [DataMember(Order = 4, IsRequired = true)] public DateTime ExpirationDateUtc { get; set; } } } \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Settings/SettingsContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Settings/MainSettingsIpcEntity.cs similarity index 53% rename from src/ProtonVPN.Service.Contract/Settings/SettingsContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Settings/MainSettingsIpcEntity.cs index b2f162463..5ee1f072b 100644 --- a/src/ProtonVPN.Service.Contract/Settings/SettingsContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Settings/MainSettingsIpcEntity.cs @@ -16,25 +16,41 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ +using System.Runtime.Serialization; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; -using ProtonVPN.Common.KillSwitch; -using ProtonVPN.Common.Networking; - -namespace ProtonVPN.Service.Contract.Settings +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Settings { - public class SettingsContract + [DataContract] + public class MainSettingsIpcEntity { - public KillSwitchMode KillSwitchMode { get; set; } - public SplitTunnelSettingsContract SplitTunnel { get; set; } + [DataMember(Order = 1)] + public KillSwitchModeIpcEntity KillSwitchMode { get; set; } + [DataMember(Order = 2)] + public SplitTunnelSettingsIpcEntity SplitTunnel { get; set; } + + [DataMember(Order = 3)] public int NetShieldMode { get; set; } + [DataMember(Order = 4)] public bool ModerateNat { get; set; } + [DataMember(Order = 5)] public bool SplitTcp { get; set; } + [DataMember(Order = 6)] public bool? AllowNonStandardPorts { get; set; } + [DataMember(Order = 7)] public bool Ipv6LeakProtection { get; set; } - public VpnProtocol VpnProtocol { get; set; } - public OpenVpnAdapter OpenVpnAdapter { get; set; } + [DataMember(Order = 8)] + public VpnProtocolIpcEntity VpnProtocol { get; set; } + [DataMember(Order = 9)] + public OpenVpnAdapterIpcEntity OpenVpnAdapter { get; set; } + [DataMember(Order = 10)] public bool PortForwarding { get; set; } + + public MainSettingsIpcEntity() + { + SplitTunnel = new(); + } } } \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Settings/SplitTunnelSettingsIpcEntity.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Settings/SplitTunnelSettingsIpcEntity.cs new file mode 100644 index 000000000..9dbf4bc15 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Settings/SplitTunnelSettingsIpcEntity.cs @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using System.Runtime.Serialization; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Settings +{ + [DataContract] + public class SplitTunnelSettingsIpcEntity + { + [DataMember(Order = 1)] + public SplitTunnelModeIpcEntity Mode { get; set; } + + [DataMember(Order = 2)] + public string[] AppPaths { get; set; } + + [DataMember(Order = 3)] + public string[] Ips { get; set; } + + public SplitTunnelSettingsIpcEntity() + { + AppPaths = Array.Empty(); + Ips = Array.Empty(); + } + } +} diff --git a/src/ProtonVPN.Service.Contract/Vpn/ConnectionDetailsContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/ConnectionDetailsIpcEntity.cs similarity index 82% rename from src/ProtonVPN.Service.Contract/Vpn/ConnectionDetailsContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/ConnectionDetailsIpcEntity.cs index 62d310740..2dd5189d8 100644 --- a/src/ProtonVPN.Service.Contract/Vpn/ConnectionDetailsContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/ConnectionDetailsIpcEntity.cs @@ -19,18 +19,18 @@ using System.Runtime.Serialization; -namespace ProtonVPN.Service.Contract.Vpn +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn { [DataContract] - public class ConnectionDetailsContract + public class ConnectionDetailsIpcEntity { - [DataMember] + [DataMember(Order = 1)] public string ClientIpAddress { get; set; } - [DataMember] + [DataMember(Order = 2)] public string ServerIpAddress { get; set; } - [DataMember] + [DataMember(Order = 3)] public string ClientCountryIsoCode { get; set; } } } \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/ConnectionRequestIpcEntity.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/ConnectionRequestIpcEntity.cs new file mode 100644 index 000000000..dae0d291c --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/ConnectionRequestIpcEntity.cs @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using System.Runtime.Serialization; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; + +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn +{ + [DataContract] + public class ConnectionRequestIpcEntity + { + [DataMember(Order = 1, IsRequired = true)] + public VpnServerIpcEntity[] Servers { get; set; } + + [DataMember(Order = 2, IsRequired = true)] + public VpnProtocolIpcEntity Protocol { get; set; } + + [DataMember(Order = 3, IsRequired = true)] + public VpnConfigIpcEntity Config { get; set; } + + [DataMember(Order = 4, IsRequired = true)] + public VpnCredentialsIpcEntity Credentials { get; set; } + + [DataMember(Order = 5, IsRequired = true)] + public MainSettingsIpcEntity Settings { get; set; } + + public ConnectionRequestIpcEntity() + { + Servers = Array.Empty(); + Config = new(); + Credentials = new(); + Settings = new(); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Crypto/ServerPublicKeyContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/DisconnectionRequestIpcEntity.cs similarity index 63% rename from src/ProtonVPN.Service.Contract/Crypto/ServerPublicKeyContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/DisconnectionRequestIpcEntity.cs index c59df027d..4ff3281b9 100644 --- a/src/ProtonVPN.Service.Contract/Crypto/ServerPublicKeyContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/DisconnectionRequestIpcEntity.cs @@ -16,29 +16,24 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - using System.Runtime.Serialization; -using ProtonVPN.Common.Extensions; -using ProtonVPN.Crypto; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; -namespace ProtonVPN.Service.Contract.Crypto +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn { [DataContract] - public class ServerPublicKeyContract : KeyContract + public class DisconnectionRequestIpcEntity { - public ServerPublicKeyContract() - { - } + [DataMember(Order = 1, IsRequired = true)] + public MainSettingsIpcEntity Settings { get; set; } + + [DataMember(Order = 2, IsRequired = true)] + public VpnErrorTypeIpcEntity ErrorType { get; set; } - public ServerPublicKeyContract(PublicKey key) : base(key) - { - } - public PublicKey ConvertBack() + public DisconnectionRequestIpcEntity() { - return new(Bytes, Algorithm.ToString().ToEnum()); + Settings = new(); } - - protected override int KeyLength => 44; } } \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Settings/SplitTunnelSettingsContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/KillSwitchModeIpcEntity.cs similarity index 73% rename from src/ProtonVPN.Service.Contract/Settings/SplitTunnelSettingsContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/KillSwitchModeIpcEntity.cs index 5ed4d0a54..c5f24ffa2 100644 --- a/src/ProtonVPN.Service.Contract/Settings/SplitTunnelSettingsContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/KillSwitchModeIpcEntity.cs @@ -16,17 +16,20 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ +using System.Runtime.Serialization; -using ProtonVPN.Common; - -namespace ProtonVPN.Service.Contract.Settings +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn { - public class SplitTunnelSettingsContract + [DataContract] + public enum KillSwitchModeIpcEntity { - public SplitTunnelMode Mode { get; set; } + [EnumMember] + Off, - public string[] AppPaths { get; set; } + [EnumMember] + Soft, - public string[] Ips { get; set; } + [EnumMember] + Hard, } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Service/Validation/IObjectValidator.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/OpenVpnAdapterIpcEntity.cs similarity index 76% rename from src/ProtonVPN.Common/Service/Validation/IObjectValidator.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/OpenVpnAdapterIpcEntity.cs index 260caf228..8da6d34ab 100644 --- a/src/ProtonVPN.Common/Service/Validation/IObjectValidator.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/OpenVpnAdapterIpcEntity.cs @@ -16,14 +16,17 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ +using System.Runtime.Serialization; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; - -namespace ProtonVPN.Common.Service.Validation +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn { - public interface IObjectValidator + [DataContract] + public enum OpenVpnAdapterIpcEntity { - IEnumerable Validate(object input); + [EnumMember] + Tap, + + [EnumMember] + Tun } } \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/SplitTunnelModeIpcEntity.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/SplitTunnelModeIpcEntity.cs new file mode 100644 index 000000000..394554edc --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/SplitTunnelModeIpcEntity.cs @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using System.Runtime.Serialization; + +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn +{ + [DataContract] + public enum SplitTunnelModeIpcEntity + { + [EnumMember] + Disabled, + + [EnumMember] + Block, + + [EnumMember] + Permit, + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/TrafficBytesIpcEntity.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/TrafficBytesIpcEntity.cs new file mode 100644 index 000000000..1231b471c --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/TrafficBytesIpcEntity.cs @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using System.Runtime.Serialization; + +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn +{ + [DataContract] + public class TrafficBytesIpcEntity + { + [DataMember(Order = 1, IsRequired = true)] + public double BytesIn { get; set; } + + [DataMember(Order = 2, IsRequired = true)] + public double BytesOut { get; set; } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnConfigIpcEntity.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnConfigIpcEntity.cs new file mode 100644 index 000000000..15f31e507 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnConfigIpcEntity.cs @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using System.Runtime.Serialization; + +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn +{ + [DataContract] + public class VpnConfigIpcEntity + { + [DataMember(Order = 1, IsRequired = true)] + public IDictionary Ports { get; set; } + + [DataMember(Order = 2, IsRequired = true)] + public List CustomDns { get; set; } + + [DataMember(Order = 3, IsRequired = true)] + public SplitTunnelModeIpcEntity SplitTunnelMode { get; set; } + + [DataMember(Order = 4, IsRequired = true)] + public List SplitTunnelIPs { get; set; } + + [DataMember(Order = 5, IsRequired = true)] + public int NetShieldMode { get; set; } + + [DataMember(Order = 6, IsRequired = true)] + public VpnProtocolIpcEntity VpnProtocol { get; set; } + + [DataMember(Order = 7, IsRequired = true)] + public IList PreferredProtocols { get; set; } + + [DataMember(Order = 8, IsRequired = true)] + public bool ModerateNat { get; set; } + + [DataMember(Order = 9, IsRequired = true)] + public bool SplitTcp { get; set; } + + [DataMember(Order = 10, IsRequired = true)] + public bool? AllowNonStandardPorts { get; set; } + + [DataMember(Order = 11, IsRequired = true)] + public bool PortForwarding { get; set; } + + public VpnConfigIpcEntity() + { + Ports = new Dictionary(); + CustomDns = new List(); + SplitTunnelIPs = new List(); + PreferredProtocols = new List(); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Crypto/PublicKeyContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnCredentialsIpcEntity.cs similarity index 61% rename from src/ProtonVPN.Service.Contract/Crypto/PublicKeyContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnCredentialsIpcEntity.cs index ded587766..0c72481e6 100644 --- a/src/ProtonVPN.Service.Contract/Crypto/PublicKeyContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnCredentialsIpcEntity.cs @@ -16,30 +16,24 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - using System.Runtime.Serialization; -using ProtonVPN.Common.Extensions; -using ProtonVPN.Crypto; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; -namespace ProtonVPN.Service.Contract.Crypto +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn { [DataContract] - public class PublicKeyContract : KeyContract + public class VpnCredentialsIpcEntity { - public PublicKeyContract() - { - } + [DataMember(Order = 1)] + public string Username { get; set; } - public PublicKeyContract(PublicKey key) - : base(key) - { - } + [DataMember(Order = 2)] + public string Password { get; set; } - public PublicKey ConvertBack() - { - return new(Bytes, Algorithm.ToString().ToEnum()); - } + [DataMember(Order = 3)] + public string ClientCertPem { get; set; } - protected override int KeyLength => 60; + [DataMember(Order = 4)] + public AsymmetricKeyPairIpcEntity ClientKeyPair { get; set; } } } \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/VpnErrorTypeContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnErrorTypeIpcEntity.cs similarity index 94% rename from src/ProtonVPN.Service.Contract/Vpn/VpnErrorTypeContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnErrorTypeIpcEntity.cs index 32155ef4d..facf76887 100644 --- a/src/ProtonVPN.Service.Contract/Vpn/VpnErrorTypeContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnErrorTypeIpcEntity.cs @@ -16,13 +16,12 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - using System.Runtime.Serialization; -namespace ProtonVPN.Service.Contract.Vpn +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn { [DataContract] - public enum VpnErrorTypeContract + public enum VpnErrorTypeIpcEntity { [EnumMember] None, @@ -54,12 +53,6 @@ public enum VpnErrorTypeContract [EnumMember] PingTimeoutError, - [EnumMember] - AdapterTimeoutError, - - [EnumMember] - ClientKeyMismatch, - [EnumMember] UserTierTooLowError, @@ -82,10 +75,10 @@ public enum VpnErrorTypeContract NoServers, [EnumMember] - RpcServerUnavailable, + Unknown, [EnumMember] - Unknown, + RpcServerUnavailable, [EnumMember] MissingServerPublicKey, @@ -96,6 +89,15 @@ public enum VpnErrorTypeContract [EnumMember] ServerUnreachable, + [EnumMember] + AdapterTimeoutError, + + [EnumMember] + ClientKeyMismatch, + + [EnumMember] + WireGuardAdapterInUseError, + [EnumMember] GuestSession = 86100, diff --git a/src/ProtonVPN.Service.Contract/Vpn/OpenVpnProtocolContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnProtocolIpcEntity.cs similarity index 90% rename from src/ProtonVPN.Service.Contract/Vpn/OpenVpnProtocolContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnProtocolIpcEntity.cs index 93bbd9ea7..af726daa6 100644 --- a/src/ProtonVPN.Service.Contract/Vpn/OpenVpnProtocolContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnProtocolIpcEntity.cs @@ -16,13 +16,12 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - using System.Runtime.Serialization; -namespace ProtonVPN.Service.Contract.Vpn +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn { [DataContract] - public enum VpnProtocolContract + public enum VpnProtocolIpcEntity { [EnumMember] Smart, diff --git a/src/ProtonVPN.Service.Contract/Servers/ServerContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnServerIpcEntity.cs similarity index 60% rename from src/ProtonVPN.Service.Contract/Servers/ServerContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnServerIpcEntity.cs index b0a05af2d..74fcaa426 100644 --- a/src/ProtonVPN.Service.Contract/Servers/ServerContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnServerIpcEntity.cs @@ -16,34 +16,27 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - -using System.Collections.Generic; using System.Runtime.Serialization; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; -namespace ProtonVPN.Service.Contract.Servers +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn { [DataContract] - public class ServerContract + public class VpnServerIpcEntity { - [DataMember] - public string Id { get; set; } - - [DataMember] + [DataMember(Order = 1)] public string Name { get; set; } - [DataMember] - public string EntryCountry { get; set; } - - [DataMember] - public string ExitCountry { get; set; } + [DataMember(Order = 2)] + public string Ip { get; set; } - [DataMember] - public sbyte Features { get; set; } + [DataMember(Order = 3)] + public string Label { get; set; } - [DataMember] - public int Tier { get; set; } + [DataMember(Order = 4)] + public ServerPublicKeyIpcEntity X25519PublicKey { get; set; } - [DataMember] - public ICollection Servers { get; set; } + [DataMember(Order = 5)] + public string Signature { get; set; } } -} +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnStateIpcEntity.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnStateIpcEntity.cs new file mode 100644 index 000000000..08dfca1cc --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnStateIpcEntity.cs @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using System.Runtime.Serialization; + +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn +{ + [DataContract] + public class VpnStateIpcEntity + { + [DataMember(Order = 1)] + public VpnStatusIpcEntity Status { get; set; } + + [DataMember(Order = 2)] + public VpnErrorTypeIpcEntity Error { get; set; } + + [DataMember(Order = 3)] + public bool NetworkBlocked { get; set; } + + [DataMember(Order = 4)] + public string EndpointIp { get; set; } + + [DataMember(Order = 5)] + public OpenVpnAdapterIpcEntity? OpenVpnAdapterType { get; set; } + + [DataMember(Order = 6)] + public VpnProtocolIpcEntity VpnProtocol { get; set; } + + [DataMember(Order = 7)] + public string Label { get; set; } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/VpnStatusContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnStatusIpcEntity.cs similarity index 92% rename from src/ProtonVPN.Service.Contract/Vpn/VpnStatusContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnStatusIpcEntity.cs index 42bf09ce3..7ef7fde2f 100644 --- a/src/ProtonVPN.Service.Contract/Vpn/VpnStatusContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Entities/Vpn/VpnStatusIpcEntity.cs @@ -16,13 +16,12 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - using System.Runtime.Serialization; -namespace ProtonVPN.Service.Contract.Vpn +namespace ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn { [DataContract] - public enum VpnStatusContract + public enum VpnStatusIpcEntity { [EnumMember] Disconnected, diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IAppGrpcClient.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IAppGrpcClient.cs new file mode 100644 index 000000000..13564905a --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IAppGrpcClient.cs @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using ProtonVPN.ProcessCommunication.Contracts.Controllers; + +namespace ProtonVPN.ProcessCommunication.Contracts +{ + public interface IAppGrpcClient + { + IServiceController? ServiceController { get; } + + Task CreateAsync(); + Task RecreateAsync(); + Task GetServiceControllerOrThrowAsync(TimeSpan timeout); + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Settings/ISettingsContract.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IGrpcServer.cs similarity index 75% rename from src/ProtonVPN.Service.Contract/Settings/ISettingsContract.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IGrpcServer.cs index d6bfb00cf..ed2257794 100644 --- a/src/ProtonVPN.Service.Contract/Settings/ISettingsContract.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IGrpcServer.cs @@ -17,14 +17,15 @@ * along with ProtonVPN. If not, see . */ -using System.ServiceModel; - -namespace ProtonVPN.Service.Contract.Settings +namespace ProtonVPN.ProcessCommunication.Contracts { - [ServiceContract] - public interface ISettingsContract + public interface IGrpcServer { - [OperationContract(IsOneWay = true)] - void Apply(SettingsContract settings); + int? Port { get; } + event EventHandler? OnStart; + + void CreateAndStart(); + Task ShutdownAsync(); + Task KillAsync(); } } \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IServiceGrpcClient.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IServiceGrpcClient.cs new file mode 100644 index 000000000..2466b766f --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/IServiceGrpcClient.cs @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using ProtonVPN.ProcessCommunication.Contracts.Controllers; + +namespace ProtonVPN.ProcessCommunication.Contracts +{ + public interface IServiceGrpcClient + { + IAppController? AppController { get; } + + Task CreateAsync(int serverPort); + Task RecreateAsync(); + bool IsRecreatable(); + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/ProtonVPN.ProcessCommunication.Contracts.csproj b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/ProtonVPN.ProcessCommunication.Contracts.csproj new file mode 100644 index 000000000..702c8fb7f --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/ProtonVPN.ProcessCommunication.Contracts.csproj @@ -0,0 +1,24 @@ + + + + net6.0-windows + enable + ..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServiceServerPortRegister.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServiceServerPortRegister.cs new file mode 100644 index 000000000..c70231276 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServiceServerPortRegister.cs @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.ProcessCommunication.Contracts.Registration +{ + public interface IServiceServerPortRegister + { + void Write(int serverBoundPort); + void Delete(); + int? ReadOnce(); + Task ReadAsync(CancellationToken cancellationToken); + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Common/EnumMapperTestBase.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Common/EnumMapperTestBase.cs new file mode 100644 index 000000000..59651e274 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Common/EnumMapperTestBase.cs @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.EntityMapping.Contracts; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Common +{ + [TestClass] + public abstract class EnumMapperTestBase + where TLeft : struct, Enum + where TRight : struct, Enum + { + private IMapper _mapper; + + [TestInitialize] + public void Initialize() + { + _mapper = CreateMapper(); + } + + protected abstract IMapper CreateMapper(); + + [TestCleanup] + public void Cleanup() + { + _mapper = null; + } + + [TestMethod] + public void TestEnumsHaveEqualUnderlyingType() + { + Assert.AreEqual( + Enum.GetUnderlyingType(typeof(TLeft)), + Enum.GetUnderlyingType(typeof(TRight))); + } + + [TestMethod] + public void TestEnumsHaveEqualCount() + { + int count = Enum.GetValues().Count(); + Assert.AreEqual(count, Enum.GetValues().Count()); + Assert.AreEqual(count, Enum.GetNames().Count()); + Assert.AreEqual(count, Enum.GetNames().Count()); + } + + [TestMethod] + public void TestEnumsHaveEqualValues() + { + List leftEntities = Enum.GetValues().ToList(); + List rightEntities = Enum.GetValues().ToList(); + + for (int i = 0; i < leftEntities.Count; i++) + { + Assert.AreEqual( + GetValueAsUnderlyingType(leftEntities[i]), + GetValueAsUnderlyingType(rightEntities[i])); + Assert.AreEqual(rightEntities[i], _mapper.Map(leftEntities[i])); + Assert.AreEqual(leftEntities[i], _mapper.Map(rightEntities[i])); + } + } + + private object GetValueAsUnderlyingType(T value) + where T : struct, Enum + { + return Convert.ChangeType(value, value.GetTypeCode()); + } + + [TestMethod] + public void TestEnumsHaveEqualNames() + { + List leftEntitynames = Enum.GetNames().ToList(); + List rightEntityNames = Enum.GetNames().ToList(); + + for (int i = 0; i < leftEntitynames.Count; i++) + { + Assert.AreEqual(leftEntitynames[i], rightEntityNames[i]); + } + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/AsymmetricKeyPairMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/AsymmetricKeyPairMapperTest.cs new file mode 100644 index 000000000..8f732a789 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/AsymmetricKeyPairMapperTest.cs @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; +using ProtonVPN.ProcessCommunication.EntityMapping.Crypto; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Crypto +{ + [TestClass] + public class AsymmetricKeyPairMapperTest + { + private IEntityMapper _entityMapper; + private AsymmetricKeyPairMapper _mapper; + + private SecretKeyIpcEntity _expectedSecretKeyIpcEntity; + private PublicKeyIpcEntity _expectedPublicKeyIpcEntity; + private SecretKey _expectedSecretKey; + private PublicKey _expectedPublicKey; + + [TestInitialize] + public void Initialize() + { + _entityMapper = Substitute.For(); + _mapper = new AsymmetricKeyPairMapper(_entityMapper); + + _expectedSecretKeyIpcEntity = new SecretKeyIpcEntity(); + _entityMapper.Map(Arg.Any()).Returns(_expectedSecretKeyIpcEntity); + _expectedPublicKeyIpcEntity = new PublicKeyIpcEntity(); + _entityMapper.Map(Arg.Any()).Returns(_expectedPublicKeyIpcEntity); + + _expectedSecretKey = new SecretKey("PVPN", KeyAlgorithm.Unknown); + _entityMapper.Map(Arg.Any()).Returns(_expectedSecretKey); + _expectedPublicKey = new PublicKey("PVPN", KeyAlgorithm.Unknown); + _entityMapper.Map(Arg.Any()).Returns(_expectedPublicKey); + } + + [TestCleanup] + public void Cleanup() + { + _entityMapper = null; + _mapper = null; + } + + [TestMethod] + public void TestMapLeftToRight_WhenNull() + { + AsymmetricKeyPair entityToMap = null; + + AsymmetricKeyPairIpcEntity result = _mapper.Map(entityToMap); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapLeftToRight() + { + AsymmetricKeyPair entityToMap = new( + new SecretKey("PVPN", KeyAlgorithm.Unknown), + new PublicKey("PVPN", KeyAlgorithm.Unknown)); + + AsymmetricKeyPairIpcEntity result = _mapper.Map(entityToMap); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedSecretKeyIpcEntity, result.SecretKey); + Assert.AreEqual(_expectedPublicKeyIpcEntity, result.PublicKey); + } + + [TestMethod] + public void TestMapRightToLeft_WhenNull() + { + TestMapRightToLeft(null, null); + } + + private void TestMapRightToLeft(AsymmetricKeyPair expectedResult, AsymmetricKeyPairIpcEntity entityToMap) + { + AsymmetricKeyPair result = _mapper.Map(entityToMap); + + Assert.AreEqual(expectedResult, result); + } + + [TestMethod] + public void TestMapRightToLeft_WhenInnerPropertiesAreNull() + { + TestMapRightToLeft(null, new AsymmetricKeyPairIpcEntity()); + } + + [TestMethod] + public void TestMapRightToLeft() + { + SecretKey secretKey = new SecretKey("PVPN", KeyAlgorithm.Unknown); + AsymmetricKeyPairIpcEntity entityToMap = new() + { + SecretKey = new SecretKeyIpcEntity() + { + Bytes = secretKey.Bytes, + Base64 = secretKey.Base64, + Algorithm = (KeyAlgorithmIpcEntity)((int)secretKey.Algorithm), + Pem = secretKey.Pem, + }, + PublicKey = new PublicKeyIpcEntity() + { + Bytes = secretKey.Bytes, + Base64 = secretKey.Base64, + Algorithm = (KeyAlgorithmIpcEntity)((int)secretKey.Algorithm), + Pem = secretKey.Pem, + } + }; + + AsymmetricKeyPair result = _mapper.Map(entityToMap); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedSecretKey, result.SecretKey); + Assert.AreEqual(_expectedPublicKey, result.PublicKey); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/KeyMapperTestBase.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/KeyMapperTestBase.cs new file mode 100644 index 000000000..b7080e431 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/KeyMapperTestBase.cs @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Crypto +{ + [TestClass] + public abstract class KeyMapperTestBase + where TKey : Key + where TKeyIpcEntity : KeyIpcEntity, new() + { + private IMapper _mapper; + + [TestInitialize] + public void Initialize() + { + _mapper = CreateKeyMapper(); + } + + protected abstract IMapper CreateKeyMapper(); + + [TestCleanup] + public void Cleanup() + { + _mapper = null; + } + + [TestMethod] + public void TestMapLeftToRight_WhenNull() + { + TKey entityToMap = null; + + TKeyIpcEntity result = _mapper.Map(entityToMap); + + Assert.AreEqual(null, result); + } + + [TestMethod] + public void TestMapLeftToRight() + { + TKey entityToMap = CreateKey("PVPN", KeyAlgorithm.Ed25519); + + TKeyIpcEntity result = _mapper.Map(entityToMap); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToMap.Bytes, result.Bytes); + Assert.AreEqual(entityToMap.Base64, result.Base64); + Assert.AreEqual((int)entityToMap.Algorithm, (int)result.Algorithm); + Assert.AreEqual(entityToMap.Pem, result.Pem); + } + + protected abstract TKey CreateKey(string base64, KeyAlgorithm algorithm); + + [TestMethod] + public void TestMapRightToLeft_WhenNull() + { + TKeyIpcEntity entityToMap = null; + + TKey result = _mapper.Map(entityToMap); + + Assert.AreEqual(null, result); + } + + [TestMethod] + public void TestMapRightToLeft() + { + string base64 = "PVPN"; + byte[] bytes = Convert.FromBase64String(base64); + TKeyIpcEntity entityToMap = new() + { + Bytes = bytes, + Base64 = base64, + Algorithm = KeyAlgorithmIpcEntity.X25519, + Pem = CreateExpectedPem(base64) + }; + + TKey result = _mapper.Map(entityToMap); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToMap.Bytes.Count(), result.Bytes.Count()); + for (int i = 0; i < entityToMap.Bytes.Length; i++) + { + Assert.AreEqual(entityToMap.Bytes[i], result.Bytes[i]); + } + Assert.AreEqual(entityToMap.Base64, result.Base64); + Assert.AreEqual((int)entityToMap.Algorithm, (int)result.Algorithm); + Assert.AreEqual(entityToMap.Pem, result.Pem); + } + + protected abstract string CreateExpectedPem(string base64); + + [TestMethod] + public void TestMapRightToLeft_WhenBytesAreNull() + { + string base64 = "PVPN"; + byte[] bytes = Convert.FromBase64String(base64); + TKeyIpcEntity entityToMap = new() + { + Base64 = base64, + Algorithm = KeyAlgorithmIpcEntity.X25519, + Pem = CreateExpectedPem(base64) + }; + + TKey result = _mapper.Map(entityToMap); + + Assert.IsNotNull(result); + Assert.AreEqual(bytes.Count(), result.Bytes.Count()); + for (int i = 0; i < bytes.Length; i++) + { + Assert.AreEqual(bytes[i], result.Bytes[i]); + } + Assert.AreEqual(entityToMap.Base64, result.Base64); + Assert.AreEqual((int)entityToMap.Algorithm, (int)result.Algorithm); + Assert.AreEqual(entityToMap.Pem, result.Pem); + } + + [TestMethod] + public void TestMapRightToLeft_WhenBase64IsNull() + { + string base64 = "PVPN"; + byte[] bytes = Convert.FromBase64String(base64); + TKeyIpcEntity entityToMap = new() + { + Bytes = bytes, + Algorithm = KeyAlgorithmIpcEntity.X25519, + Pem = CreateExpectedPem(base64) + }; + + TKey result = _mapper.Map(entityToMap); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToMap.Bytes.Count(), result.Bytes.Count()); + for (int i = 0; i < entityToMap.Bytes.Length; i++) + { + Assert.AreEqual(entityToMap.Bytes[i], result.Bytes[i]); + } + Assert.AreEqual(base64, result.Base64); + Assert.AreEqual((int)entityToMap.Algorithm, (int)result.Algorithm); + Assert.AreEqual(entityToMap.Pem, result.Pem); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/PublicKeyMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/PublicKeyMapperTest.cs new file mode 100644 index 000000000..5f406ab34 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/PublicKeyMapperTest.cs @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; +using ProtonVPN.ProcessCommunication.EntityMapping.Crypto; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Crypto +{ + [TestClass] + public class PublicKeyMapperTest : KeyMapperTestBase + { + protected override IMapper CreateKeyMapper() + { + return new PublicKeyMapper(); + } + + protected override PublicKey CreateKey(string base64, KeyAlgorithm algorithm) + { + return new(base64, algorithm); + } + + protected override string CreateExpectedPem(string base64) + { + return $"-----BEGIN PUBLIC KEY-----\r\n{base64}\r\n-----END PUBLIC KEY-----"; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/SecretKeyMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/SecretKeyMapperTest.cs new file mode 100644 index 000000000..511304182 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/SecretKeyMapperTest.cs @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; +using ProtonVPN.ProcessCommunication.EntityMapping.Crypto; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Crypto +{ + [TestClass] + public class SecretKeyMapperTest : KeyMapperTestBase + { + protected override IMapper CreateKeyMapper() + { + return new SecretKeyMapper(); + } + + protected override SecretKey CreateKey(string base64, KeyAlgorithm algorithm) + { + return new(base64, algorithm); + } + + protected override string CreateExpectedPem(string base64) + { + return $"-----BEGIN PRIVATE KEY-----\r\n{base64}\r\n-----END PRIVATE KEY-----"; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/ServerPublicKeyMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/ServerPublicKeyMapperTest.cs new file mode 100644 index 000000000..5a284cb67 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Crypto/ServerPublicKeyMapperTest.cs @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; +using ProtonVPN.ProcessCommunication.EntityMapping.Crypto; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Crypto +{ + [TestClass] + public class ServerPublicKeyMapperTest : KeyMapperTestBase + { + protected override IMapper CreateKeyMapper() + { + return new ServerPublicKeyMapper(); + } + + protected override PublicKey CreateKey(string base64, KeyAlgorithm algorithm) + { + return new(base64, algorithm); + } + + protected override string CreateExpectedPem(string base64) + { + return $"-----BEGIN PUBLIC KEY-----\r\n{base64}\r\n-----END PUBLIC KEY-----"; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/PortForwardingStateMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/PortForwardingStateMapperTest.cs new file mode 100644 index 000000000..356d8a1e8 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/PortForwardingStateMapperTest.cs @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.PortForwarding; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding; +using ProtonVPN.ProcessCommunication.EntityMapping.PortForwarding; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.PortForwarding +{ + [TestClass] + public class PortForwardingStateMapperTest + { + private const PortMappingStatusIpcEntity EXPECTED_PORT_MAPPING_STATUS_IPC_ENTITY = PortMappingStatusIpcEntity.Error; + private const PortMappingStatus EXPECTED_PORT_MAPPING_STATUS = PortMappingStatus.DestroyPortMappingCommunication; + + private IEntityMapper _entityMapper; + private PortForwardingStateMapper _mapper; + private TemporaryMappedPortIpcEntity _expectedTemporaryMappedPortIpcEntity; + private TemporaryMappedPort _expectedTemporaryMappedPort; + + [TestInitialize] + public void Initialize() + { + _entityMapper = Substitute.For(); + _mapper = new(_entityMapper); + + _expectedTemporaryMappedPortIpcEntity = new TemporaryMappedPortIpcEntity(); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedTemporaryMappedPortIpcEntity); + _entityMapper.Map(Arg.Any()) + .Returns(EXPECTED_PORT_MAPPING_STATUS_IPC_ENTITY); + + _expectedTemporaryMappedPort = new TemporaryMappedPort(); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedTemporaryMappedPort); + _entityMapper.Map(Arg.Any()) + .Returns(EXPECTED_PORT_MAPPING_STATUS); + } + + [TestCleanup] + public void Cleanup() + { + _entityMapper = null; + _mapper = null; + _expectedTemporaryMappedPortIpcEntity = null; + _expectedTemporaryMappedPort = null; + } + + [TestMethod] + public void TestMapLeftToRight_WhenNull() + { + PortForwardingState entityToTest = null; + + PortForwardingStateIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapLeftToRight() + { + PortForwardingState entityToTest = new() + { + MappedPort = new TemporaryMappedPort(), + Status = PortMappingStatus.Error, + TimestampUtc = DateTime.UtcNow + }; + + PortForwardingStateIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedTemporaryMappedPortIpcEntity, result.MappedPort); + Assert.AreEqual(EXPECTED_PORT_MAPPING_STATUS_IPC_ENTITY, result.Status); + Assert.AreEqual(entityToTest.TimestampUtc, result.TimestampUtc); + } + + [TestMethod] + public void TestMapRightToLeft_WhenNull() + { + PortForwardingStateIpcEntity entityToTest = null; + + PortForwardingState result = _mapper.Map(entityToTest); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapRightToLeft() + { + PortForwardingStateIpcEntity entityToTest = new() + { + MappedPort = new TemporaryMappedPortIpcEntity(), + Status = PortMappingStatusIpcEntity.DestroyPortMappingCommunication, + TimestampUtc = DateTime.UtcNow + }; + + PortForwardingState result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedTemporaryMappedPort, result.MappedPort); + Assert.AreEqual(EXPECTED_PORT_MAPPING_STATUS, result.Status); + Assert.AreEqual(entityToTest.TimestampUtc, result.TimestampUtc); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/PortMappingStatusMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/PortMappingStatusMapperTest.cs new file mode 100644 index 000000000..109d3a8ae --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/PortMappingStatusMapperTest.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common.PortForwarding; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding; +using ProtonVPN.ProcessCommunication.EntityMapping.PortForwarding; +using ProtonVPN.ProcessCommunication.EntityMapping.Tests.Common; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.PortForwarding +{ + [TestClass] + public class PortMappingStatusMapperTest : EnumMapperTestBase + { + protected override IMapper CreateMapper() + { + return new PortMappingStatusMapper(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/TemporaryMappedPortMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/TemporaryMappedPortMapperTest.cs new file mode 100644 index 000000000..c34b21096 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/PortForwarding/TemporaryMappedPortMapperTest.cs @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common.PortForwarding; +using ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding; +using ProtonVPN.ProcessCommunication.EntityMapping.PortForwarding; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.PortForwarding +{ + [TestClass] + public class TemporaryMappedPortMapperTest + { + private TemporaryMappedPortMapper _mapper; + + [TestInitialize] + public void Initialize() + { + _mapper = new(); + } + + [TestCleanup] + public void Cleanup() + { + _mapper = null; + } + + [TestMethod] + public void TestMapLeftToRight_WhenNull() + { + TemporaryMappedPort entityToTest = null; + + TemporaryMappedPortIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapLeftToRight_WhenMappedPortIsNull() + { + TemporaryMappedPort entityToTest = new() + { + Lifetime = TimeSpan.FromMinutes(1), + ExpirationDateUtc = DateTime.UtcNow + }; + + TemporaryMappedPortIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapLeftToRight() + { + int internalPort = 7; + int externalPort = 28; + TemporaryMappedPort entityToTest = new() + { + MappedPort = new MappedPort(internalPort, externalPort), + Lifetime = TimeSpan.FromMinutes(4), + ExpirationDateUtc = DateTime.UtcNow + }; + + TemporaryMappedPortIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(internalPort, result.InternalPort); + Assert.AreEqual(externalPort, result.ExternalPort); + Assert.AreEqual(entityToTest.Lifetime, result.Lifetime); + Assert.AreEqual(entityToTest.ExpirationDateUtc, result.ExpirationDateUtc); + } + + [TestMethod] + public void TestMapRightToLeft_WhenNull() + { + TemporaryMappedPortIpcEntity entityToTest = null; + + TemporaryMappedPort result = _mapper.Map(entityToTest); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapRightToLeft() + { + int internalPort = 7; + int externalPort = 28; + TemporaryMappedPortIpcEntity entityToTest = new() + { + InternalPort = internalPort, + ExternalPort = externalPort, + Lifetime = TimeSpan.FromMinutes(3), + ExpirationDateUtc = DateTime.UtcNow + }; + + TemporaryMappedPort result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.IsNotNull(result.MappedPort); + Assert.AreEqual(entityToTest.InternalPort, result.MappedPort.InternalPort); + Assert.AreEqual(entityToTest.ExternalPort, result.MappedPort.ExternalPort); + Assert.AreEqual(entityToTest.Lifetime, result.Lifetime); + Assert.AreEqual(entityToTest.ExpirationDateUtc, result.ExpirationDateUtc); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/ProtonVPN.ProcessCommunication.EntityMapping.Tests.csproj b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/ProtonVPN.ProcessCommunication.EntityMapping.Tests.csproj new file mode 100644 index 000000000..bb61eebb3 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/ProtonVPN.ProcessCommunication.EntityMapping.Tests.csproj @@ -0,0 +1,27 @@ + + + + net6.0-windows + enable + ..\..\bin + false + Library + false + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + + + diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/ConnectionDetailsMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/ConnectionDetailsMapperTest.cs new file mode 100644 index 000000000..bd2399d93 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/ConnectionDetailsMapperTest.cs @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common.Vpn; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class ConnectionDetailsMapperTest + { + private ConnectionDetailsMapper _mapper; + + [TestInitialize] + public void Initialize() + { + _mapper = new(); + } + + [TestCleanup] + public void Cleanup() + { + _mapper = null; + } + + [TestMethod] + public void TestMapLeftToRight_WhenNull() + { + ConnectionDetails entityToTest = null; + + ConnectionDetailsIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapLeftToRight() + { + ConnectionDetails entityToTest = new() + { + ClientIpAddress = $"A {DateTime.UtcNow}", + ServerIpAddress = $"B {DateTime.UtcNow}", + ClientCountryIsoCode = $"C {DateTime.UtcNow}", + }; + + ConnectionDetailsIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToTest.ClientIpAddress, result.ClientIpAddress); + Assert.AreEqual(entityToTest.ServerIpAddress, result.ServerIpAddress); + Assert.AreEqual(entityToTest.ClientCountryIsoCode, result.ClientCountryIsoCode); + } + + [TestMethod] + public void TestMapRightToLeft_WhenNull() + { + ConnectionDetailsIpcEntity entityToTest = null; + + ConnectionDetails result = _mapper.Map(entityToTest); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapRightToLeft() + { + ConnectionDetailsIpcEntity entityToTest = new() + { + ClientIpAddress = $"A {DateTime.UtcNow}", + ServerIpAddress = $"B {DateTime.UtcNow}", + ClientCountryIsoCode = $"C {DateTime.UtcNow}", + }; + + ConnectionDetails result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToTest.ClientIpAddress, result.ClientIpAddress); + Assert.AreEqual(entityToTest.ServerIpAddress, result.ServerIpAddress); + Assert.AreEqual(entityToTest.ClientCountryIsoCode, result.ClientCountryIsoCode); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/ConnectionRequestMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/ConnectionRequestMapperTest.cs new file mode 100644 index 000000000..36ec6877b --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/ConnectionRequestMapperTest.cs @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Networking; +using ProtonVPN.Common.Vpn; +using ProtonVPN.Core.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class ConnectionRequestMapperTest + { + private IEntityMapper _entityMapper; + private ConnectionRequestMapper _mapper; + + private List _expectedVpnServerIpcEntities; + private VpnProtocolIpcEntity? _expectedVpnProtocolIpcEntity; + private VpnConfigIpcEntity _expectedVpnConfigIpcEntity; + private VpnCredentialsIpcEntity _expectedVpnCredentialsIpcEntity; + private List _expectedVpnHosts; + private VpnProtocol? _expectedVpnProtocol; + private VpnConfig _expectedVpnConfig; + private VpnCredentials? _expectedVpnCredentials; + + [TestInitialize] + public void Initialize() + { + _entityMapper = Substitute.For(); + _mapper = new(_entityMapper); + + _expectedVpnServerIpcEntities = new List() { new VpnServerIpcEntity() }; + _entityMapper.Map(Arg.Any>()) + .Returns(_expectedVpnServerIpcEntities); + + _expectedVpnProtocolIpcEntity = VpnProtocolIpcEntity.OpenVpnUdp; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnProtocolIpcEntity.Value); + + _expectedVpnConfigIpcEntity = new VpnConfigIpcEntity(); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnConfigIpcEntity); + + _expectedVpnCredentialsIpcEntity = new VpnCredentialsIpcEntity(); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnCredentialsIpcEntity); + + _expectedVpnHosts = new List(); + _entityMapper.Map(Arg.Any>()) + .Returns(_expectedVpnHosts); + + _expectedVpnProtocol = VpnProtocol.OpenVpnUdp; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnProtocol.Value); + + _expectedVpnConfig = new VpnConfig(new VpnConfigParameters()); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnConfig); + + _expectedVpnCredentials = new VpnCredentials(); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnCredentials.Value); + } + + [TestCleanup] + public void Cleanup() + { + _entityMapper = null; + _mapper = null; + + _expectedVpnServerIpcEntities = null; + _expectedVpnProtocolIpcEntity = null; + _expectedVpnConfigIpcEntity = null; + _expectedVpnCredentialsIpcEntity = null; + _expectedVpnHosts = null; + _expectedVpnProtocol = null; + _expectedVpnConfig = null; + _expectedVpnCredentials = null; + } + + [TestMethod] + public void TestMapLeftToRight_WhenNull() + { + VpnConnectionRequest entityToTest = null; + + ConnectionRequestIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapLeftToRight() + { + VpnConnectionRequest entityToTest = new( + new List(), + VpnProtocol.OpenVpnUdp, + new VpnConfig(new VpnConfigParameters()), + new VpnCredentials(DateTime.UtcNow.Ticks.ToString(), DateTime.UtcNow.Millisecond.ToString())); + + ConnectionRequestIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedVpnServerIpcEntities.Count, result.Servers.Count()); + Assert.AreEqual(_expectedVpnServerIpcEntities.Single(), result.Servers.Single()); + Assert.AreEqual(_expectedVpnProtocolIpcEntity, result.Protocol); + Assert.AreEqual(_expectedVpnConfigIpcEntity, result.Config); + Assert.AreEqual(_expectedVpnCredentialsIpcEntity, result.Credentials); + Assert.IsNotNull(result.Settings); + } + + [TestMethod] + public void TestMapRightToLeft_WhenNull() + { + ConnectionRequestIpcEntity entityToTest = null; + + VpnConnectionRequest result = _mapper.Map(entityToTest); + + Assert.IsNull(result); + } + + [TestMethod] + public void TestMapRightToLeft() + { + ConnectionRequestIpcEntity entityToTest = new(); + + VpnConnectionRequest result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedVpnHosts, result.Servers); + Assert.AreEqual(_expectedVpnProtocol, result.VpnProtocol); + Assert.AreEqual(_expectedVpnConfig, result.Config); + Assert.AreEqual(_expectedVpnCredentials, result.Credentials); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/KillSwitchModeMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/KillSwitchModeMapperTest.cs new file mode 100644 index 000000000..17a05e42f --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/KillSwitchModeMapperTest.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common.KillSwitch; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Tests.Common; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class KillSwitchModeMapperTest : EnumMapperTestBase + { + protected override IMapper CreateMapper() + { + return new KillSwitchModeMapper(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/OpenVpnAdapterMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/OpenVpnAdapterMapperTest.cs new file mode 100644 index 000000000..b77f038a0 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/OpenVpnAdapterMapperTest.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common.Networking; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Tests.Common; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class OpenVpnAdapterMapperTest : EnumMapperTestBase + { + protected override IMapper CreateMapper() + { + return new OpenVpnAdapterMapper(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/SplitTunnelModeMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/SplitTunnelModeMapperTest.cs new file mode 100644 index 000000000..1fe40158c --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/SplitTunnelModeMapperTest.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Tests.Common; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class SplitTunnelModeMapperTest : EnumMapperTestBase + { + protected override IMapper CreateMapper() + { + return new SplitTunnelModeMapper(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/TrafficBytesMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/TrafficBytesMapperTest.cs new file mode 100644 index 000000000..cdd52cff7 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/TrafficBytesMapperTest.cs @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common.Vpn; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class TrafficBytesMapperTest + { + private TrafficBytesMapper _mapper; + + [TestInitialize] + public void Initialize() + { + _mapper = new(); + } + + [TestCleanup] + public void Cleanup() + { + _mapper = null; + } + + [TestMethod] + public void TestMapLeftToRight_WhenZero() + { + InOutBytes entityToTest = InOutBytes.Zero; + + TrafficBytesIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(0, result.BytesIn); + Assert.AreEqual(0, result.BytesOut); + } + + [TestMethod] + public void TestMapLeftToRight() + { + InOutBytes entityToTest = new(DateTime.UtcNow.Ticks, DateTime.UtcNow.Millisecond); + + TrafficBytesIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToTest.BytesIn, result.BytesIn); + Assert.AreEqual(entityToTest.BytesOut, result.BytesOut); + } + + [TestMethod] + public void TestMapRightToLeft_WhenNull() + { + TrafficBytesIpcEntity entityToTest = null; + + InOutBytes result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(0, result.BytesIn); + Assert.AreEqual(0, result.BytesOut); + } + + [TestMethod] + public void TestMapRightToLeft() + { + TrafficBytesIpcEntity entityToTest = new() + { + BytesIn = DateTime.UtcNow.Ticks, + BytesOut = DateTime.UtcNow.Millisecond, + }; + + InOutBytes result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToTest.BytesIn, result.BytesIn); + Assert.AreEqual(entityToTest.BytesOut, result.BytesOut); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnConfigMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnConfigMapperTest.cs new file mode 100644 index 000000000..e30974b77 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnConfigMapperTest.cs @@ -0,0 +1,215 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using NSubstitute.Core; +using ProtonVPN.Common; +using ProtonVPN.Common.Networking; +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class VpnConfigMapperTest + { + private IEntityMapper _entityMapper; + private VpnConfigMapper _mapper; + + private SplitTunnelModeIpcEntity? _expectedSplitTunnelModeIpcEntity; + private List _expectedVpnProtocolIpcEntities; + + private SplitTunnelMode? _expectedSplitTunnelMode; + private List _expectedVpnProtocols; + + [TestInitialize] + public void Initialize() + { + _entityMapper = Substitute.For(); + _mapper = new(_entityMapper); + + _expectedSplitTunnelModeIpcEntity = SplitTunnelModeIpcEntity.Block; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedSplitTunnelModeIpcEntity.Value); + + _entityMapper.Map(Arg.Any()) + .Returns((CallInfo callInfo) => (VpnProtocolIpcEntity)(int)callInfo[0]); + + _expectedVpnProtocolIpcEntities = new List() { VpnProtocolIpcEntity.OpenVpnUdp }; + _entityMapper.Map(Arg.Any>()) + .Returns(_expectedVpnProtocolIpcEntities); + + _expectedSplitTunnelMode = SplitTunnelMode.Block; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedSplitTunnelMode.Value); + + _entityMapper.Map(Arg.Any()) + .Returns((CallInfo callInfo) => (VpnProtocol)(int)callInfo[0]); + + _expectedVpnProtocols = new List() { VpnProtocol.OpenVpnUdp }; + _entityMapper.Map(Arg.Any>()) + .Returns(_expectedVpnProtocols); + } + + [TestCleanup] + public void Cleanup() + { + _entityMapper = null; + _mapper = null; + + _expectedSplitTunnelModeIpcEntity = null; + _expectedVpnProtocolIpcEntities = null; + + _expectedSplitTunnelMode = null; + _expectedVpnProtocols = null; + } + + [TestMethod] + [ExpectedException(typeof(ArgumentNullException))] + public void TestMapLeftToRight_ThrowsWhenNull() + { + VpnConfig entityToTest = null; + + _mapper.Map(entityToTest); + } + + [TestMethod] + public void TestMapLeftToRight() + { + VpnConfig entityToTest = new(new VpnConfigParameters() + { + Ports = new Dictionary>() + { + { VpnProtocol.WireGuard, new List() { 80, 443 } }, + { VpnProtocol.OpenVpnUdp, new List() { 8080, 1 } } + }, + CustomDns = new List() { "172.16.0.0" }, + SplitTunnelMode = SplitTunnelMode.Block, + SplitTunnelIPs = new List() { "192.168.0.0" }, + OpenVpnAdapter = OpenVpnAdapter.Tun, + VpnProtocol = VpnProtocol.OpenVpnUdp, + PreferredProtocols = new List() { VpnProtocol.OpenVpnTcp }, + NetShieldMode = 2, + SplitTcp = true, + ModerateNat = true, + AllowNonStandardPorts = true, + PortForwarding = true, + }); + + VpnConfigIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + AssertPortsAreEquivalent(entityToTest, result); + CollectionAssert.AreEqual(entityToTest.CustomDns.ToList(), result.CustomDns); + Assert.AreEqual(entityToTest.AllowNonStandardPorts, result.AllowNonStandardPorts); + Assert.AreEqual(_expectedSplitTunnelModeIpcEntity, result.SplitTunnelMode); + CollectionAssert.AreEqual(entityToTest.SplitTunnelIPs.ToList(), result.SplitTunnelIPs); + Assert.AreEqual(entityToTest.NetShieldMode, result.NetShieldMode); + Assert.AreEqual((int)entityToTest.VpnProtocol, (int)result.VpnProtocol); + Assert.AreEqual(entityToTest.ModerateNat, result.ModerateNat); + Assert.AreEqual(_expectedVpnProtocolIpcEntities, result.PreferredProtocols); + Assert.AreEqual(entityToTest.SplitTcp, result.SplitTcp); + Assert.AreEqual(entityToTest.PortForwarding, result.PortForwarding); + } + + private void AssertPortsAreEquivalent(VpnConfig entityToTest, VpnConfigIpcEntity result) + { + Assert.IsNotNull(result.Ports); + + List>> leftEntityDictionary = entityToTest.Ports.ToList(); + List> rightEntityDictionary = result.Ports.ToList(); + Assert.AreEqual(leftEntityDictionary.Count, rightEntityDictionary.Count); + + for (int keyValuePairIndex = 0; keyValuePairIndex < leftEntityDictionary.Count; keyValuePairIndex++) + { + Assert.AreEqual((int)leftEntityDictionary[keyValuePairIndex].Key, (int)rightEntityDictionary[keyValuePairIndex].Key); + CollectionAssert.AreEqual( + leftEntityDictionary[keyValuePairIndex].Value.ToList(), + rightEntityDictionary[keyValuePairIndex].Value); + } + } + + [TestMethod] + [ExpectedException(typeof(ArgumentNullException))] + public void TestMapRightToLeft_ThrowsWhenNull() + { + VpnConfigIpcEntity entityToTest = null; + + _mapper.Map(entityToTest); + } + + [TestMethod] + public void TestMapRightToLeft() + { + VpnConfigIpcEntity entityToTest = new() + { + Ports = new Dictionary() + { + { VpnProtocolIpcEntity.WireGuard, new int[] { 80, 443 } }, + { VpnProtocolIpcEntity.OpenVpnUdp, new int[] { 8080, 1 } } + }, + CustomDns = new List() { "172.16.0.0" }, + SplitTunnelMode = SplitTunnelModeIpcEntity.Block, + SplitTunnelIPs = new List() { "192.168.0.0" }, + NetShieldMode = 2, + VpnProtocol = VpnProtocolIpcEntity.OpenVpnUdp, + PreferredProtocols = new List() { VpnProtocolIpcEntity.OpenVpnTcp }, + SplitTcp = true, + ModerateNat = true, + AllowNonStandardPorts = true, + PortForwarding = true, + }; + + VpnConfig result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + AssertPortsAreEquivalent(entityToTest, result); + CollectionAssert.AreEqual(entityToTest.CustomDns, result.CustomDns.ToList()); + Assert.AreEqual(_expectedSplitTunnelMode, result.SplitTunnelMode); + CollectionAssert.AreEqual(entityToTest.SplitTunnelIPs, result.SplitTunnelIPs.ToList()); + Assert.AreEqual(entityToTest.NetShieldMode, result.NetShieldMode); + Assert.AreEqual((int)entityToTest.VpnProtocol, (int)result.VpnProtocol); + Assert.AreEqual(_expectedVpnProtocols, result.PreferredProtocols); + Assert.AreEqual(entityToTest.SplitTcp, result.SplitTcp); + Assert.AreEqual(entityToTest.ModerateNat, result.ModerateNat); + Assert.AreEqual(entityToTest.AllowNonStandardPorts, result.AllowNonStandardPorts); + Assert.AreEqual(entityToTest.PortForwarding, result.PortForwarding); + } + + private void AssertPortsAreEquivalent(VpnConfigIpcEntity entityToTest, VpnConfig result) + { + Assert.IsNotNull(result.Ports); + + List> leftEntityDictionary = entityToTest.Ports.ToList(); + List>> rightEntityDictionary = result.Ports.ToList(); + Assert.AreEqual(leftEntityDictionary.Count, rightEntityDictionary.Count); + + for (int keyValuePairIndex = 0; keyValuePairIndex < leftEntityDictionary.Count; keyValuePairIndex++) + { + Assert.AreEqual((int)leftEntityDictionary[keyValuePairIndex].Key, (int)rightEntityDictionary[keyValuePairIndex].Key); + CollectionAssert.AreEqual( + leftEntityDictionary[keyValuePairIndex].Value, + rightEntityDictionary[keyValuePairIndex].Value.ToList()); + } + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnCredentialsMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnCredentialsMapperTest.cs new file mode 100644 index 000000000..97d287cc4 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnCredentialsMapperTest.cs @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Vpn; +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class VpnCredentialsMapperTest + { + private IEntityMapper _entityMapper; + private VpnCredentialsMapper _mapper; + + private AsymmetricKeyPairIpcEntity _expectedAsymmetricKeyPairIpcEntity; + private AsymmetricKeyPair _expectedAsymmetricKeyPair; + + [TestInitialize] + public void Initialize() + { + _entityMapper = Substitute.For(); + _mapper = new(_entityMapper); + + _expectedAsymmetricKeyPairIpcEntity = new AsymmetricKeyPairIpcEntity(); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedAsymmetricKeyPairIpcEntity); + + _expectedAsymmetricKeyPair = new AsymmetricKeyPair( + new SecretKey("PVPN", KeyAlgorithm.Unknown), new PublicKey("PVPN", KeyAlgorithm.Unknown)); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedAsymmetricKeyPair); + } + + [TestCleanup] + public void Cleanup() + { + _entityMapper = null; + _mapper = null; + + _expectedAsymmetricKeyPairIpcEntity = null; + _expectedAsymmetricKeyPair = null; + } + + [TestMethod] + public void TestMapLeftToRight_WithUsernameAndPassword() + { + VpnCredentials entityToTest = new(DateTime.UtcNow.Ticks.ToString(), DateTime.UtcNow.Millisecond.ToString()); + + VpnCredentialsIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToTest.Username, result.Username); + Assert.AreEqual(entityToTest.Password, result.Password); + Assert.IsNull(result.ClientCertPem); + } + + [TestMethod] + public void TestMapLeftToRight_WithCertificate() + { + VpnCredentials entityToTest = new("CERT", new AsymmetricKeyPair( + new SecretKey("PVPN", KeyAlgorithm.Ed25519), new PublicKey("PVPN", KeyAlgorithm.Ed25519))); + + VpnCredentialsIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.IsNull(result.Username); + Assert.IsNull(result.Password); + Assert.AreEqual(entityToTest.ClientCertPem, result.ClientCertPem); + Assert.AreEqual(_expectedAsymmetricKeyPairIpcEntity, result.ClientKeyPair); + } + + [TestMethod] + [ExpectedException(typeof(ArgumentNullException))] + public void TestMapRightToLeft_ThrowsWhenNull() + { + VpnCredentialsIpcEntity entityToTest = null; + + _mapper.Map(entityToTest); + } + + [TestMethod] + public void TestMapRightToLeft_WithUsernameAndPassword() + { + VpnCredentialsIpcEntity entityToTest = new() + { + Username = DateTime.UtcNow.Ticks.ToString(), + Password = DateTime.UtcNow.Millisecond.ToString() + }; + + VpnCredentials result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToTest.Username, result.Username); + Assert.AreEqual(entityToTest.Password, result.Password); + Assert.IsNull(result.ClientCertPem); + } + + [TestMethod] + public void TestMapRightToLeft_WithCertificate() + { + VpnCredentialsIpcEntity entityToTest = new() + { + ClientCertPem = DateTime.UtcNow.Ticks.ToString(), + ClientKeyPair = new AsymmetricKeyPairIpcEntity() + }; + + VpnCredentials result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.IsNull(result.Username); + Assert.IsNull(result.Password); + Assert.AreEqual(entityToTest.ClientCertPem, result.ClientCertPem); + Assert.AreEqual(_expectedAsymmetricKeyPair, result.ClientKeyPair); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnErrorTypeMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnErrorTypeMapperTest.cs new file mode 100644 index 000000000..9db0512d7 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnErrorTypeMapperTest.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Tests.Common; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class VpnErrorTypeMapperTest : EnumMapperTestBase + { + protected override IMapper CreateMapper() + { + return new VpnErrorTypeMapper(); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.App/Core/Service/Settings/SettingsServiceClient.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnProtocolMapperTest.cs similarity index 55% rename from src/ProtonVPN.App/Core/Service/Settings/SettingsServiceClient.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnProtocolMapperTest.cs index 2dbb37548..318d5c88e 100644 --- a/src/ProtonVPN.App/Core/Service/Settings/SettingsServiceClient.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnProtocolMapperTest.cs @@ -17,24 +17,21 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Service.Contract.Settings; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common.Networking; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Tests.Common; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; -namespace ProtonVPN.Core.Service.Settings +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn { - public class SettingsServiceClient + [TestClass] + public class VpnProtocolMapperTest : EnumMapperTestBase { - private const string Endpoint = "protonvpn-service/settings"; - private readonly ServiceChannelFactory _channelFactory; - - public SettingsServiceClient(ServiceChannelFactory channelFactory) - { - _channelFactory = channelFactory; - } - - public void Apply(SettingsContract settings) + protected override IMapper CreateMapper() { - using ServiceChannel channel = _channelFactory.Create(Endpoint); - channel.Proxy.Apply(settings); + return new VpnProtocolMapper(); } } } \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnServerMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnServerMapperTest.cs new file mode 100644 index 000000000..a0beddfed --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnServerMapperTest.cs @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Vpn; +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class VpnServerMapperTest + { + private IEntityMapper _entityMapper; + private VpnServerMapper _mapper; + + private ServerPublicKeyIpcEntity _expectedServerPublicKeyIpcEntity; + private PublicKey _expectedPublicKey; + + [TestInitialize] + public void Initialize() + { + _entityMapper = Substitute.For(); + _mapper = new(_entityMapper); + + _expectedServerPublicKeyIpcEntity = new ServerPublicKeyIpcEntity(); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedServerPublicKeyIpcEntity); + + _expectedPublicKey = new PublicKey("PVPN", KeyAlgorithm.Unknown); + _entityMapper.Map(Arg.Any()) + .Returns(_expectedPublicKey); + } + + [TestCleanup] + public void Cleanup() + { + _entityMapper = null; + _mapper = null; + + _expectedServerPublicKeyIpcEntity = null; + _expectedPublicKey = null; + } + + [TestMethod] + public void TestMapLeftToRight() + { + VpnHost entityToTest = new( + name: "protonvpn.com", + ip: "192.168.0.0", + label: DateTime.UtcNow.Millisecond.ToString(), + x25519PublicKey: new PublicKey("PVPN", KeyAlgorithm.Unknown), + signature: DateTime.UtcNow.Ticks.ToString()); + + VpnServerIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToTest.Name, result.Name); + Assert.AreEqual(entityToTest.Ip, result.Ip); + Assert.AreEqual(entityToTest.Label, result.Label); + Assert.AreEqual(_expectedServerPublicKeyIpcEntity, result.X25519PublicKey); + Assert.AreEqual(entityToTest.Signature, result.Signature); + } + + [TestMethod] + [ExpectedException(typeof(ArgumentNullException))] + public void TestMapRightToLeft_ThrowsWhenNull() + { + VpnServerIpcEntity entityToTest = null; + + _mapper.Map(entityToTest); + } + + [TestMethod] + public void TestMapRightToLeft() + { + VpnServerIpcEntity entityToTest = new() + { + Name = "protonvpn.com", + Ip = "192.168.0.0", + Label = DateTime.UtcNow.Millisecond.ToString(), + X25519PublicKey = new ServerPublicKeyIpcEntity(), + Signature = DateTime.UtcNow.Ticks.ToString() + }; + + VpnHost result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(entityToTest.Name, result.Name); + Assert.AreEqual(entityToTest.Ip, result.Ip); + Assert.AreEqual(entityToTest.Label, result.Label); + Assert.AreEqual(_expectedPublicKey, result.X25519PublicKey); + Assert.AreEqual(entityToTest.Signature, result.Signature); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnStateChangedEventArgsMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnStateChangedEventArgsMapperTest.cs new file mode 100644 index 000000000..e6da3e2a5 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnStateChangedEventArgsMapperTest.cs @@ -0,0 +1,199 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Networking; +using ProtonVPN.Common.Vpn; +using ProtonVPN.Core.Servers.Models; +using ProtonVPN.Core.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class VpnStateChangedEventArgsMapperTest + { + private IEntityMapper _entityMapper; + private VpnStateChangedEventArgsMapper _mapper; + + private VpnStatusIpcEntity? _expectedVpnStatusIpcEntity; + private VpnErrorTypeIpcEntity? _expectedVpnErrorTypeIpcEntity; + private OpenVpnAdapterIpcEntity? _expectedOpenVpnAdapterIpcEntity; + private VpnProtocolIpcEntity? _expectedVpnProtocolIpcEntity; + private VpnStatus? _expectedVpnStatus; + private VpnError? _expectedVpnError; + private OpenVpnAdapter? _expectedOpenVpnAdapter; + private VpnProtocol? _expectedVpnProtocol; + + [TestInitialize] + public void Initialize() + { + _entityMapper = Substitute.For(); + _mapper = new(_entityMapper); + + _expectedVpnStatusIpcEntity = VpnStatusIpcEntity.Connecting; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnStatusIpcEntity.Value); + + _expectedVpnErrorTypeIpcEntity = VpnErrorTypeIpcEntity.TapAdapterInUseError; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnErrorTypeIpcEntity.Value); + + _expectedOpenVpnAdapterIpcEntity = OpenVpnAdapterIpcEntity.Tun; + _entityMapper.MapNullableStruct(Arg.Any()) + .Returns(_expectedOpenVpnAdapterIpcEntity); + + _expectedVpnProtocolIpcEntity = VpnProtocolIpcEntity.OpenVpnUdp; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnProtocolIpcEntity.Value); + + _expectedVpnStatus = VpnStatus.Authenticating; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnStatus.Value); + + _expectedVpnError = VpnError.CertificateRevoked; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnError.Value); + + _expectedOpenVpnAdapter = OpenVpnAdapter.Tun; + _entityMapper.MapNullableStruct(Arg.Any()) + .Returns(_expectedOpenVpnAdapter); + + _expectedVpnProtocol = VpnProtocol.OpenVpnTcp; + _entityMapper.Map(Arg.Any()) + .Returns(_expectedVpnProtocol.Value); + } + + [TestCleanup] + public void Cleanup() + { + _entityMapper = null; + _mapper = null; + + _expectedVpnStatusIpcEntity = null; + _expectedVpnErrorTypeIpcEntity = null; + _expectedOpenVpnAdapterIpcEntity = null; + _expectedVpnProtocolIpcEntity = null; + _expectedVpnStatus = null; + _expectedVpnError = null; + _expectedOpenVpnAdapter = null; + _expectedVpnProtocol = null; + } + + [TestMethod] + public void TestMapLeftToRight_UsingMultipleArgumentConstructor() + { + VpnStateChangedEventArgs entityToTest = new( + status: VpnStatus.AssigningIp, + error: VpnError.TlsError, + endpointIp: "192.168.0.0", + networkBlocked: true, + vpnProtocol: VpnProtocol.OpenVpnTcp, + networkAdapterType: OpenVpnAdapter.Tun, + label: "Proton VPN"); + + VpnStateIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedVpnStatusIpcEntity, result.Status); + Assert.AreEqual(_expectedVpnErrorTypeIpcEntity, result.Error); + Assert.AreEqual(entityToTest.NetworkBlocked, result.NetworkBlocked); + Assert.AreEqual(entityToTest.State.EntryIp, result.EndpointIp); + Assert.AreEqual(_expectedOpenVpnAdapterIpcEntity, result.OpenVpnAdapterType); + Assert.AreEqual(_expectedVpnProtocolIpcEntity, result.VpnProtocol); + Assert.AreEqual(entityToTest.State.Label, result.Label); + } + + [TestMethod] + public void TestMapLeftToRight_UsingStateArgumentConstructor() + { + VpnStateChangedEventArgs entityToTest = new( + status: VpnStatus.Authenticating, + error: VpnError.NoServers, + server: Server.Empty(), + networkBlocked: true); + + VpnStateIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedVpnStatusIpcEntity, result.Status); + Assert.AreEqual(_expectedVpnErrorTypeIpcEntity, result.Error); + Assert.AreEqual(entityToTest.NetworkBlocked, result.NetworkBlocked); + Assert.AreEqual(entityToTest.State.EntryIp, result.EndpointIp); + Assert.AreEqual(_expectedOpenVpnAdapterIpcEntity, result.OpenVpnAdapterType); + Assert.AreEqual(_expectedVpnProtocolIpcEntity, result.VpnProtocol); + Assert.AreEqual(entityToTest.State.Label, result.Label); + } + + [TestMethod] + public void TestMapLeftToRight_UsingVpnStateArgumentConstructor() + { + VpnStateChangedEventArgs entityToTest = new( + state: new VpnState( + status: VpnStatus.RetrievingConfiguration, + entryIp: "172.16.0.0", + vpnProtocol: VpnProtocol.WireGuard, + networkAdapterType: OpenVpnAdapter.Tun, + label: "Proton VPN" + ), + error: VpnError.IncorrectVpnConfig, + networkBlocked: true); + + VpnStateIpcEntity result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedVpnStatusIpcEntity, result.Status); + Assert.AreEqual(_expectedVpnErrorTypeIpcEntity, result.Error); + Assert.AreEqual(entityToTest.NetworkBlocked, result.NetworkBlocked); + Assert.AreEqual(entityToTest.State.EntryIp, result.EndpointIp); + Assert.AreEqual(_expectedOpenVpnAdapterIpcEntity, result.OpenVpnAdapterType); + Assert.AreEqual(_expectedVpnProtocolIpcEntity, result.VpnProtocol); + Assert.AreEqual(entityToTest.State.Label, result.Label); + } + + [TestMethod] + [ExpectedException(typeof(ArgumentNullException))] + public void TestMapRightToLeft_ThrowsWhenNull() + { + VpnStateIpcEntity entityToTest = null; + + _mapper.Map(entityToTest); + } + + [TestMethod] + public void TestMapRightToLeft() + { + VpnStateIpcEntity entityToTest = new(); + + VpnStateChangedEventArgs result = _mapper.Map(entityToTest); + + Assert.IsNotNull(result); + Assert.AreEqual(_expectedVpnStatus, result.State.Status); + Assert.AreEqual(_expectedVpnError, result.Error); + Assert.AreEqual(entityToTest.NetworkBlocked, result.NetworkBlocked); + Assert.AreEqual(entityToTest.EndpointIp, result.State.EntryIp); + Assert.AreEqual(_expectedOpenVpnAdapter, result.State.NetworkAdapterType); + Assert.AreEqual(_expectedVpnProtocol, result.State.VpnProtocol); + Assert.AreEqual(entityToTest.Label, result.State.Label); + } + } +} diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnStatusMapperTest.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnStatusMapperTest.cs new file mode 100644 index 000000000..2f5ea795c --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping.Tests/Vpn/VpnStatusMapperTest.cs @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.EntityMapping.Tests.Common; +using ProtonVPN.ProcessCommunication.EntityMapping.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Tests.Vpn +{ + [TestClass] + public class VpnStatusMapperTest : EnumMapperTestBase + { + protected override IMapper CreateMapper() + { + return new VpnStatusMapper(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/AsymmetricKeyPairMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/AsymmetricKeyPairMapper.cs new file mode 100644 index 000000000..55e341e74 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/AsymmetricKeyPairMapper.cs @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Crypto +{ + public class AsymmetricKeyPairMapper : IMapper + { + private readonly IEntityMapper _entityMapper; + + public AsymmetricKeyPairMapper(IEntityMapper entityMapper) + { + _entityMapper = entityMapper; + } + + public AsymmetricKeyPairIpcEntity Map(AsymmetricKeyPair leftEntity) + { + if (leftEntity is null || leftEntity.SecretKey is null || leftEntity.PublicKey is null) + { + return null; + } + return new AsymmetricKeyPairIpcEntity() + { + SecretKey = _entityMapper.Map(leftEntity.SecretKey), + PublicKey = _entityMapper.Map(leftEntity.PublicKey), + }; + } + + public AsymmetricKeyPair Map(AsymmetricKeyPairIpcEntity rightEntity) + { + if (rightEntity is null || rightEntity.SecretKey is null || rightEntity.PublicKey is null) + { + return null; + } + return new AsymmetricKeyPair( + _entityMapper.Map(rightEntity.SecretKey), + _entityMapper.Map(rightEntity.PublicKey)); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Service/ServiceHostFactory.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/KeyMapperBase.cs similarity index 58% rename from src/ProtonVPN.Common/Service/ServiceHostFactory.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/KeyMapperBase.cs index 6f6cb094e..58cb7628d 100644 --- a/src/ProtonVPN.Common/Service/ServiceHostFactory.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/KeyMapperBase.cs @@ -17,24 +17,23 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Common.ServiceModel.Server; -using System; -using System.ServiceModel; +using ProtonVPN.Common.Extensions; +using ProtonVPN.Crypto; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; -namespace ProtonVPN.Common.Service +namespace ProtonVPN.ProcessCommunication.EntityMapping.Crypto { - public abstract class ServiceHostFactory + public abstract class KeyMapperBase + where TIpcEntity : KeyIpcEntity, new() { - private const int MaxMessageSize = 1024 * 1000; - - public abstract SafeServiceHost Create(); - - protected NetNamedPipeBinding BuildNamedPipe() + protected TIpcEntity MapKeyToIpcEntity(Key key) { - return new NetNamedPipeBinding + return new() { - ReceiveTimeout = TimeSpan.MaxValue, - MaxReceivedMessageSize = MaxMessageSize, + Bytes = key.Bytes, + Base64 = key.Base64, + Algorithm = key.Algorithm.ToString().ToEnum(), + Pem = key.Pem, }; } } diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/PublicKeyMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/PublicKeyMapper.cs new file mode 100644 index 000000000..94f238f03 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/PublicKeyMapper.cs @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Crypto +{ + public class PublicKeyMapper : KeyMapperBase, IMapper + { + public PublicKeyIpcEntity Map(PublicKey leftEntity) + { + return leftEntity is null + ? null + : MapKeyToIpcEntity(leftEntity); + } + + public PublicKey Map(PublicKeyIpcEntity rightEntity) + { + return rightEntity is null + ? null + : rightEntity.Base64 is null + ? new(rightEntity.Bytes, (KeyAlgorithm)rightEntity.Algorithm) + : new(rightEntity.Base64, (KeyAlgorithm)rightEntity.Algorithm); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/SecretKeyMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/SecretKeyMapper.cs new file mode 100644 index 000000000..3378c2f34 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/SecretKeyMapper.cs @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Crypto +{ + public class SecretKeyMapper : KeyMapperBase, IMapper + { + public SecretKeyIpcEntity Map(SecretKey leftEntity) + { + return leftEntity is null + ? null + : MapKeyToIpcEntity(leftEntity); + } + + public SecretKey Map(SecretKeyIpcEntity rightEntity) + { + return rightEntity is null + ? null + : rightEntity.Base64 is null + ? new(rightEntity.Bytes, (KeyAlgorithm)rightEntity.Algorithm) + : new(rightEntity.Base64, (KeyAlgorithm)rightEntity.Algorithm); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/ServerPublicKeyMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/ServerPublicKeyMapper.cs new file mode 100644 index 000000000..85f88173f --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Crypto/ServerPublicKeyMapper.cs @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Crypto +{ + public class ServerPublicKeyMapper : KeyMapperBase, IMapper + { + public ServerPublicKeyIpcEntity Map(PublicKey leftEntity) + { + return leftEntity is null + ? null + : MapKeyToIpcEntity(leftEntity); + } + + public PublicKey Map(ServerPublicKeyIpcEntity rightEntity) + { + return rightEntity is null + ? null + : rightEntity.Base64 is null + ? new(rightEntity.Bytes, (KeyAlgorithm)rightEntity.Algorithm) + : new(rightEntity.Base64, (KeyAlgorithm)rightEntity.Algorithm); + } + } +} + diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/PortForwardingStateMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/PortForwardingStateMapper.cs new file mode 100644 index 000000000..d08b63608 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/PortForwardingStateMapper.cs @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.PortForwarding; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.PortForwarding +{ + public class PortForwardingStateMapper : IMapper + { + private readonly IEntityMapper _entityMapper; + + public PortForwardingStateMapper(IEntityMapper entityMapper) + { + _entityMapper = entityMapper; + } + + public PortForwardingStateIpcEntity Map(PortForwardingState leftEntity) + { + return leftEntity is null + ? null + : new PortForwardingStateIpcEntity() + { + MappedPort = _entityMapper.Map(leftEntity.MappedPort), + Status = _entityMapper.Map(leftEntity.Status), + TimestampUtc = leftEntity.TimestampUtc, + }; + } + + public PortForwardingState Map(PortForwardingStateIpcEntity rightEntity) + { + return rightEntity is null + ? null + : new PortForwardingState() + { + MappedPort = _entityMapper.Map(rightEntity.MappedPort), + Status = _entityMapper.Map(rightEntity.Status), + TimestampUtc = rightEntity.TimestampUtc, + }; + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.TapInstaller/DriverInstallation/InstallationResult.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/PortMappingStatusMapper.cs similarity index 57% rename from src/ProtonVPN.TapInstaller/DriverInstallation/InstallationResult.cs rename to src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/PortMappingStatusMapper.cs index 230ff446c..2170f7d0b 100644 --- a/src/ProtonVPN.TapInstaller/DriverInstallation/InstallationResult.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/PortMappingStatusMapper.cs @@ -17,26 +17,22 @@ * along with ProtonVPN. If not, see . */ -using TapInstaller.Win32Processes; +using ProtonVPN.Common.PortForwarding; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding; -namespace TapInstaller.DriverInstallation +namespace ProtonVPN.ProcessCommunication.EntityMapping.PortForwarding { - public class InstallationResult + public class PortMappingStatusMapper : IMapper { - private readonly ProcessExecutionResult _executionResult; - - public InstallationResult(ProcessExecutionResult executionResult) + public PortMappingStatusIpcEntity Map(PortMappingStatus leftEntity) { - _executionResult = executionResult; + return (PortMappingStatusIpcEntity)leftEntity; } - public bool Success => _executionResult.ExitCode == 0; - - public bool RestartRequired => _executionResult.ExitCode == 1; - - public override string ToString() + public PortMappingStatus Map(PortMappingStatusIpcEntity rightEntity) { - return $"Success: {Success},\n ExecutionResult: {_executionResult}\n"; + return (PortMappingStatus)rightEntity; } } -} +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/TemporaryMappedPortMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/TemporaryMappedPortMapper.cs new file mode 100644 index 000000000..c3ad42cea --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/PortForwarding/TemporaryMappedPortMapper.cs @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.PortForwarding; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.PortForwarding +{ + public class TemporaryMappedPortMapper : IMapper + { + public TemporaryMappedPortIpcEntity Map(TemporaryMappedPort leftEntity) + { + return leftEntity?.MappedPort is null + ? null + : new TemporaryMappedPortIpcEntity() + { + InternalPort = leftEntity.MappedPort.InternalPort, + ExternalPort = leftEntity.MappedPort.ExternalPort, + Lifetime = leftEntity.Lifetime, + ExpirationDateUtc = leftEntity.ExpirationDateUtc, + }; + } + + public TemporaryMappedPort Map(TemporaryMappedPortIpcEntity rightEntity) + { + return rightEntity is null + ? null + : new TemporaryMappedPort() + { + MappedPort = new MappedPort(internalPort: rightEntity.InternalPort, externalPort: rightEntity.ExternalPort), + Lifetime = rightEntity.Lifetime, + ExpirationDateUtc = rightEntity.ExpirationDateUtc, + }; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/ProtonVPN.ProcessCommunication.EntityMapping.csproj b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/ProtonVPN.ProcessCommunication.EntityMapping.csproj new file mode 100644 index 000000000..eea427e69 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/ProtonVPN.ProcessCommunication.EntityMapping.csproj @@ -0,0 +1,23 @@ + + + + net6.0-windows + enable + ..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/ConnectionDetailsMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/ConnectionDetailsMapper.cs new file mode 100644 index 000000000..a22abbee4 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/ConnectionDetailsMapper.cs @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class ConnectionDetailsMapper : IMapper + { + public ConnectionDetailsIpcEntity Map(ConnectionDetails leftEntity) + { + return leftEntity is null + ? null + : new ConnectionDetailsIpcEntity() + { + ClientIpAddress = leftEntity.ClientIpAddress, + ClientCountryIsoCode = leftEntity.ClientCountryIsoCode, + ServerIpAddress = leftEntity.ServerIpAddress, + }; + } + + public ConnectionDetails Map(ConnectionDetailsIpcEntity rightEntity) + { + return rightEntity is null + ? null + : new ConnectionDetails + { + ClientIpAddress = rightEntity.ClientIpAddress, + ClientCountryIsoCode = rightEntity.ClientCountryIsoCode, + ServerIpAddress = rightEntity.ServerIpAddress, + }; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/ConnectionRequestMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/ConnectionRequestMapper.cs new file mode 100644 index 000000000..b1a8f55b3 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/ConnectionRequestMapper.cs @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Networking; +using ProtonVPN.Common.Vpn; +using ProtonVPN.Core.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class ConnectionRequestMapper : IMapper + { + private readonly IEntityMapper _entityMapper; + + public ConnectionRequestMapper(IEntityMapper entityMapper) + { + _entityMapper = entityMapper; + } + + public ConnectionRequestIpcEntity Map(VpnConnectionRequest leftEntity) + { + return leftEntity is null + ? null + : new() + { + Servers = _entityMapper.Map(leftEntity.Servers).ToArray(), + Protocol = _entityMapper.Map(leftEntity.VpnProtocol), + Config = _entityMapper.Map(leftEntity.Config), + Credentials = _entityMapper.Map(leftEntity.Credentials) + }; + } + + public VpnConnectionRequest Map(ConnectionRequestIpcEntity rightEntity) + { + return rightEntity is null + ? null + : new( + servers: _entityMapper.Map(rightEntity.Servers), + vpnProtocol: _entityMapper.Map(rightEntity.Protocol), + config: _entityMapper.Map(rightEntity.Config), + credentials: _entityMapper.Map(rightEntity.Credentials)); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/KillSwitchModeMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/KillSwitchModeMapper.cs new file mode 100644 index 000000000..e530ca3b4 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/KillSwitchModeMapper.cs @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.KillSwitch; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class KillSwitchModeMapper : IMapper + { + public KillSwitchModeIpcEntity Map(KillSwitchMode leftEntity) + { + return leftEntity switch + { + KillSwitchMode.Off => KillSwitchModeIpcEntity.Off, + KillSwitchMode.Soft => KillSwitchModeIpcEntity.Soft, + KillSwitchMode.Hard => KillSwitchModeIpcEntity.Hard, + _ => throw new NotImplementedException("KillSwitchMode has an unknown value.") + }; + } + + public KillSwitchMode Map(KillSwitchModeIpcEntity rightEntity) + { + return rightEntity switch + { + KillSwitchModeIpcEntity.Off => KillSwitchMode.Off, + KillSwitchModeIpcEntity.Soft => KillSwitchMode.Soft, + KillSwitchModeIpcEntity.Hard => KillSwitchMode.Hard, + _ => throw new NotImplementedException("KillSwitchMode has an unknown value.") + }; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/OpenVpnAdapterMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/OpenVpnAdapterMapper.cs new file mode 100644 index 000000000..aee0f262e --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/OpenVpnAdapterMapper.cs @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Networking; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class OpenVpnAdapterMapper : IMapper + { + public OpenVpnAdapterIpcEntity Map(OpenVpnAdapter leftEntity) + { + return leftEntity switch + { + OpenVpnAdapter.Tap => OpenVpnAdapterIpcEntity.Tap, + OpenVpnAdapter.Tun => OpenVpnAdapterIpcEntity.Tun, + _ => throw new NotImplementedException("OpenVpnAdapter has an unknown value.") + }; + } + + public OpenVpnAdapter Map(OpenVpnAdapterIpcEntity rightEntity) + { + return rightEntity switch + { + OpenVpnAdapterIpcEntity.Tap => OpenVpnAdapter.Tap, + OpenVpnAdapterIpcEntity.Tun => OpenVpnAdapter.Tun, + _ => throw new NotImplementedException("OpenVpnAdapter has an unknown value.") + }; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/SplitTunnelModeMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/SplitTunnelModeMapper.cs new file mode 100644 index 000000000..2fe6393af --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/SplitTunnelModeMapper.cs @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class SplitTunnelModeMapper : IMapper + { + public SplitTunnelModeIpcEntity Map(SplitTunnelMode leftEntity) + { + return leftEntity switch + { + SplitTunnelMode.Disabled => SplitTunnelModeIpcEntity.Disabled, + SplitTunnelMode.Block => SplitTunnelModeIpcEntity.Block, + SplitTunnelMode.Permit => SplitTunnelModeIpcEntity.Permit, + _ => throw new NotImplementedException("SplitTunnelMode has an unknown value.") + }; + } + + public SplitTunnelMode Map(SplitTunnelModeIpcEntity rightEntity) + { + return rightEntity switch + { + SplitTunnelModeIpcEntity.Disabled => SplitTunnelMode.Disabled, + SplitTunnelModeIpcEntity.Block => SplitTunnelMode.Block, + SplitTunnelModeIpcEntity.Permit => SplitTunnelMode.Permit, + _ => throw new NotImplementedException("SplitTunnelMode has an unknown value.") + }; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/TrafficBytesMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/TrafficBytesMapper.cs new file mode 100644 index 000000000..f84c70e2a --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/TrafficBytesMapper.cs @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class TrafficBytesMapper : IMapper + { + public TrafficBytesIpcEntity Map(InOutBytes leftEntity) + { + return new() { BytesIn = leftEntity.BytesIn, BytesOut = leftEntity.BytesOut }; + } + + public InOutBytes Map(TrafficBytesIpcEntity rightEntity) + { + return rightEntity is null + ? InOutBytes.Zero + : new(bytesIn: rightEntity.BytesIn, bytesOut: rightEntity.BytesOut); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnConfigMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnConfigMapper.cs new file mode 100644 index 000000000..5391bfe0c --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnConfigMapper.cs @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common; +using ProtonVPN.Common.Networking; +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class VpnConfigMapper : IMapper + { + private readonly IEntityMapper _entityMapper; + + public VpnConfigMapper(IEntityMapper entityMapper) + { + _entityMapper = entityMapper; + } + + public VpnConfigIpcEntity Map(VpnConfig leftEntity) + { + if (leftEntity is null) + { + throw new ArgumentNullException(nameof(VpnConfig), + $"The {nameof(VpnConfig)} parameter cannot be mapped from null to {nameof(VpnConfigIpcEntity)}."); + } + Dictionary portConfig = leftEntity.Ports.ToDictionary( + p => _entityMapper.Map(p.Key), + p => p.Value.ToArray()); + + return new VpnConfigIpcEntity + { + Ports = portConfig, + CustomDns = leftEntity.CustomDns.ToList(), + AllowNonStandardPorts = leftEntity.AllowNonStandardPorts, + SplitTunnelMode = _entityMapper.Map(leftEntity.SplitTunnelMode), + SplitTunnelIPs = leftEntity.SplitTunnelIPs.ToList(), + NetShieldMode = leftEntity.NetShieldMode, + VpnProtocol = _entityMapper.Map(leftEntity.VpnProtocol), + ModerateNat = leftEntity.ModerateNat, + PreferredProtocols = _entityMapper.Map(leftEntity.PreferredProtocols), + SplitTcp = leftEntity.SplitTcp, + PortForwarding = leftEntity.PortForwarding, + }; + } + + public VpnConfig Map(VpnConfigIpcEntity rightEntity) + { + if (rightEntity is null) + { + throw new ArgumentNullException(nameof(VpnConfigIpcEntity), + $"The {nameof(VpnConfigIpcEntity)} parameter cannot be mapped from null to {nameof(VpnConfig)}."); + } + Dictionary> portConfig = rightEntity.Ports.ToDictionary( + p => _entityMapper.Map(p.Key), + p => (IReadOnlyCollection)p.Value.ToList()); + + return new VpnConfig( + new VpnConfigParameters + { + Ports = portConfig, + CustomDns = rightEntity.CustomDns, + SplitTunnelMode = _entityMapper.Map(rightEntity.SplitTunnelMode), + SplitTunnelIPs = rightEntity.SplitTunnelIPs, + VpnProtocol = _entityMapper.Map(rightEntity.VpnProtocol), + PreferredProtocols = _entityMapper.Map(rightEntity.PreferredProtocols), + ModerateNat = rightEntity.ModerateNat, + NetShieldMode = rightEntity.NetShieldMode, + SplitTcp = rightEntity.SplitTcp, + AllowNonStandardPorts = rightEntity.AllowNonStandardPorts, + PortForwarding = rightEntity.PortForwarding, + }); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnCredentialsMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnCredentialsMapper.cs new file mode 100644 index 000000000..ab71914cb --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnCredentialsMapper.cs @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Extensions; +using ProtonVPN.Common.Vpn; +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class VpnCredentialsMapper : IMapper + { + private readonly IEntityMapper _entityMapper; + + public VpnCredentialsMapper(IEntityMapper entityMapper) + { + _entityMapper = entityMapper; + } + + public VpnCredentialsIpcEntity Map(VpnCredentials leftEntity) + { + return new() + { + Username = leftEntity.Username, + Password = leftEntity.Password, + ClientCertPem = leftEntity.ClientCertPem, + ClientKeyPair = _entityMapper.Map(leftEntity.ClientKeyPair) + }; + } + + public VpnCredentials Map(VpnCredentialsIpcEntity rightEntity) + { + return rightEntity is null + ? throw new ArgumentNullException($"The {nameof(VpnCredentialsIpcEntity)} to be mapped is null.") + : rightEntity.ClientCertPem.IsNullOrEmpty() || rightEntity.ClientKeyPair == null + ? new(rightEntity.Username, rightEntity.Password) + : new(rightEntity.ClientCertPem, _entityMapper.Map(rightEntity.ClientKeyPair)); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnErrorTypeMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnErrorTypeMapper.cs new file mode 100644 index 000000000..f3b16a798 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnErrorTypeMapper.cs @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class VpnErrorTypeMapper : IMapper + { + public VpnErrorTypeIpcEntity Map(VpnError leftEntity) + { + return (VpnErrorTypeIpcEntity)leftEntity; + } + + public VpnError Map(VpnErrorTypeIpcEntity rightEntity) + { + return (VpnError)rightEntity; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnProtocolMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnProtocolMapper.cs new file mode 100644 index 000000000..5b02f24a0 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnProtocolMapper.cs @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Networking; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class VpnProtocolMapper : IMapper + { + public VpnProtocolIpcEntity Map(VpnProtocol leftEntity) + { + return leftEntity switch + { + VpnProtocol.OpenVpnUdp => VpnProtocolIpcEntity.OpenVpnUdp, + VpnProtocol.OpenVpnTcp => VpnProtocolIpcEntity.OpenVpnTcp, + VpnProtocol.WireGuard => VpnProtocolIpcEntity.WireGuard, + VpnProtocol.Smart => VpnProtocolIpcEntity.Smart, + _ => throw new NotImplementedException("VpnProtocol has an unknown value.") + }; + } + + public VpnProtocol Map(VpnProtocolIpcEntity rightEntity) + { + return rightEntity switch + { + VpnProtocolIpcEntity.OpenVpnTcp => VpnProtocol.OpenVpnTcp, + VpnProtocolIpcEntity.OpenVpnUdp => VpnProtocol.OpenVpnUdp, + VpnProtocolIpcEntity.WireGuard => VpnProtocol.WireGuard, + VpnProtocolIpcEntity.Smart => VpnProtocol.Smart, + _ => throw new NotImplementedException("VpnProtocol has an unknown value."), + }; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnServerMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnServerMapper.cs new file mode 100644 index 000000000..23309c08d --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnServerMapper.cs @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Vpn; +using ProtonVPN.Crypto; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Crypto; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class VpnServerMapper : IMapper + { + private readonly IEntityMapper _entityMapper; + + public VpnServerMapper(IEntityMapper entityMapper) + { + _entityMapper = entityMapper; + } + + public VpnServerIpcEntity Map(VpnHost leftEntity) + { + return new() + { + Name = leftEntity.Name, + Ip = leftEntity.Ip, + Label = leftEntity.Label, + X25519PublicKey = _entityMapper.Map(leftEntity.X25519PublicKey), + Signature = leftEntity.Signature, + }; + } + + public VpnHost Map(VpnServerIpcEntity rightEntity) + { + if (rightEntity is null) + { + throw new ArgumentNullException(nameof(VpnServerIpcEntity), + $"The {nameof(VpnServerIpcEntity)} parameter cannot be mapped from null to {nameof(VpnHost)}."); + } + return new(rightEntity.Name, rightEntity.Ip, rightEntity.Label, + _entityMapper.Map(rightEntity.X25519PublicKey), rightEntity.Signature); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnStateChangedEventArgsMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnStateChangedEventArgsMapper.cs new file mode 100644 index 000000000..da276fe44 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnStateChangedEventArgsMapper.cs @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Networking; +using ProtonVPN.Common.Vpn; +using ProtonVPN.Core.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class VpnStateChangedEventArgsMapper : IMapper + { + private readonly IEntityMapper _entityMapper; + + public VpnStateChangedEventArgsMapper(IEntityMapper entityMapper) + { + _entityMapper = entityMapper; + } + + public VpnStateIpcEntity Map(VpnStateChangedEventArgs leftEntity) + { + return new VpnStateIpcEntity() + { + Status = _entityMapper.Map(leftEntity.State.Status), + Error = _entityMapper.Map(leftEntity.Error), + NetworkBlocked = leftEntity.NetworkBlocked, + EndpointIp = leftEntity.State.EntryIp, + OpenVpnAdapterType = _entityMapper.MapNullableStruct(leftEntity.State.NetworkAdapterType), + VpnProtocol = _entityMapper.Map(leftEntity.State.VpnProtocol), + Label = leftEntity.State.Label + }; + } + + public VpnStateChangedEventArgs Map(VpnStateIpcEntity rightEntity) + { + if (rightEntity is null) + { + throw new ArgumentNullException(nameof(VpnStateIpcEntity), + $"The {nameof(VpnStateIpcEntity)} parameter cannot be mapped from null to {nameof(VpnStateChangedEventArgs)}."); + } + return new VpnStateChangedEventArgs( + status: _entityMapper.Map(rightEntity.Status), + error: _entityMapper.Map(rightEntity.Error), + endpointIp: rightEntity.EndpointIp, + networkBlocked: rightEntity.NetworkBlocked, + vpnProtocol: _entityMapper.Map(rightEntity.VpnProtocol), + networkAdapterType: _entityMapper.MapNullableStruct(rightEntity.OpenVpnAdapterType), + label: rightEntity.Label); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnStatusMapper.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnStatusMapper.cs new file mode 100644 index 000000000..2694c9ab5 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.EntityMapping/Vpn/VpnStatusMapper.cs @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; + +namespace ProtonVPN.ProcessCommunication.EntityMapping.Vpn +{ + public class VpnStatusMapper : IMapper + { + public VpnStatusIpcEntity Map(VpnStatus leftEntity) + { + return (VpnStatusIpcEntity)leftEntity; + } + + public VpnStatus Map(VpnStatusIpcEntity rightEntity) + { + return (VpnStatus)rightEntity; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProcessCommunicationModule.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProcessCommunicationModule.cs new file mode 100644 index 000000000..8f48919ed --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProcessCommunicationModule.cs @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Autofac; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Common.Channels; +using ProtonVPN.ProcessCommunication.Common.Registration; +using ProtonVPN.ProcessCommunication.EntityMapping.Crypto; + +namespace ProtonVPN.ProcessCommunication.Installers +{ + public class ProcessCommunicationModule : Module + { + protected override void Load(ContainerBuilder builder) + { + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterAssemblyTypes(typeof(AsymmetricKeyPairMapper).Assembly) + .Where(t => typeof(IMapper).IsAssignableFrom(t)) + .AsImplementedInterfaces() + .SingleInstance(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProtonVPN.ProcessCommunication.Installers.csproj b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProtonVPN.ProcessCommunication.Installers.csproj new file mode 100644 index 000000000..558e5eb3d --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProtonVPN.ProcessCommunication.Installers.csproj @@ -0,0 +1,24 @@ + + + + net6.0-windows + enable + ..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Installers/ProtonVPN.ProcessCommunication.Service.Installers.csproj b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Installers/ProtonVPN.ProcessCommunication.Service.Installers.csproj new file mode 100644 index 000000000..f98e44c5c --- /dev/null +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Installers/ProtonVPN.ProcessCommunication.Service.Installers.csproj @@ -0,0 +1,24 @@ + + + + net6.0-windows + enable + ..\..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + diff --git a/src/ProtonVPN.Service.Contract/Vpn/InOutBytesContract.cs b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Installers/ServiceProcessCommunicationModule.cs similarity index 63% rename from src/ProtonVPN.Service.Contract/Vpn/InOutBytesContract.cs rename to src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Installers/ServiceProcessCommunicationModule.cs index 54dbfb22a..b37581b57 100644 --- a/src/ProtonVPN.Service.Contract/Vpn/InOutBytesContract.cs +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Installers/ServiceProcessCommunicationModule.cs @@ -16,24 +16,17 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ +using Autofac; +using ProtonVPN.ProcessCommunication.Contracts; -using System.Runtime.Serialization; - -namespace ProtonVPN.Service.Contract.Vpn +namespace ProtonVPN.ProcessCommunication.Service.Installers { - [DataContract] - public class InOutBytesContract + public class ServiceProcessCommunicationModule : Module { - [DataMember] - public double BytesIn { get; private set; } - - [DataMember] - public double BytesOut { get; private set; } - - public InOutBytesContract(double bytesIn, double bytesOut) + protected override void Load(ContainerBuilder builder) { - BytesIn = bytesIn; - BytesOut = bytesOut; + builder.RegisterType().As().SingleInstance(); + builder.RegisterType().As().SingleInstance(); } } -} +} \ No newline at end of file diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/GrpcServerTest.cs b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/GrpcServerTest.cs new file mode 100644 index 000000000..c25cafb1c --- /dev/null +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/GrpcServerTest.cs @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common.Tests; +using ProtonVPN.ProcessCommunication.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Registration; + +namespace ProtonVPN.ProcessCommunication.Service.Tests +{ + [TestClass] + public class GrpcServerTest : GrpcServerTestBase + { + private ILogger _logger; + private IServiceController _serviceController; + private IServiceServerPortRegister _serviceServerPortRegister; + + [TestInitialize] + public override void Initialize() + { + _logger = Substitute.For(); + _serviceController = Substitute.For(); + _serviceServerPortRegister = Substitute.For(); + base.Initialize(); + } + + protected override IGrpcServer CreateGrpcServer() + { + return new GrpcServer(_logger, _serviceController, _serviceServerPortRegister); + } + + [TestCleanup] + public override void Cleanup() + { + _logger = null; + _serviceController = null; + _serviceServerPortRegister = null; + base.Initialize(); + } + + [TestMethod] + public override void TestCreateAndStart() + { + base.TestCreateAndStart(); + _serviceServerPortRegister.Received(1).Write(Arg.Any()); + } + + [TestMethod] + public override void TestCreateAndStart_WithoutEventListener() + { + base.TestCreateAndStart_WithoutEventListener(); + _serviceServerPortRegister.Received(1).Write(Arg.Any()); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ProtonVPN.ProcessCommunication.Service.Tests.csproj b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ProtonVPN.ProcessCommunication.Service.Tests.csproj new file mode 100644 index 000000000..771e25c0d --- /dev/null +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ProtonVPN.ProcessCommunication.Service.Tests.csproj @@ -0,0 +1,28 @@ + + + + net6.0-windows + enable + ..\..\..\bin + false + Library + false + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + + + + diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ServiceGrpcClientTest.cs b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ServiceGrpcClientTest.cs new file mode 100644 index 000000000..391d0bb4f --- /dev/null +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ServiceGrpcClientTest.cs @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.VisualStudio.TestTools.UnitTesting; +using NSubstitute; +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common.Channels; +using ProtonVPN.ProcessCommunication.Common.Tests; +using ProtonVPN.ProcessCommunication.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; + +namespace ProtonVPN.ProcessCommunication.Service.Tests +{ + [TestClass] + public class ServiceGrpcClientTest + { + private const int APP_SERVER_PORT = 3; + + private ILogger _logger; + private IGrpcChannelWrapper _grpcChannelWrapper; + private IGrpcChannelWrapperFactory _grpcChannelWrapperFactory; + private IServiceGrpcClient _serviceGrpcClient; + + [TestInitialize] + public void Initialize() + { + _logger = Substitute.For(); + _grpcChannelWrapper = Substitute.For(); + _grpcChannelWrapper.CreateService().Returns(c => Substitute.For()); + _grpcChannelWrapperFactory = Substitute.For(); + _grpcChannelWrapperFactory.Create(Arg.Any()).Returns(_grpcChannelWrapper); + _serviceGrpcClient = new ServiceGrpcClient(_logger, _grpcChannelWrapperFactory); + } + + [TestCleanup] + public void Cleanup() + { + _logger = null; + _grpcChannelWrapper = null; + _grpcChannelWrapperFactory = null; + _serviceGrpcClient = null; + } + + [TestMethod] + public async Task TestCreateAsync() + { + await _serviceGrpcClient.CreateAsync(APP_SERVER_PORT); + + Assert.IsNotNull(_serviceGrpcClient.AppController); + } + + [TestMethod] + public void TestCreateAsync_NoRaceConditionOccurs() + { + int numOfCalls = 64; + + ParallelTestRunner.ExecuteInParallel(numOfCalls, + (int i) => _serviceGrpcClient.CreateAsync(APP_SERVER_PORT + i)); + + Assert.IsNotNull(_serviceGrpcClient.AppController); + _grpcChannelWrapperFactory.Received(numOfCalls).Create(Arg.Any()); + } + + [TestMethod] + public async Task TestRecreateAsync() + { + await _serviceGrpcClient.CreateAsync(APP_SERVER_PORT); + + await _serviceGrpcClient.RecreateAsync(); + + Assert.IsNotNull(_serviceGrpcClient.AppController); + } + + [TestMethod] + public async Task TestRecreateAsync_WhenPortIsNull() + { + await _serviceGrpcClient.RecreateAsync(); + + Assert.IsNull(_serviceGrpcClient.AppController); + } + + [TestMethod] + public async Task TestRecreateAsync_NoRaceConditionOccurs() + { + await _serviceGrpcClient.CreateAsync(APP_SERVER_PORT); + int numOfCalls = 64; + + ParallelTestRunner.ExecuteInParallel(numOfCalls, + (int _) => _serviceGrpcClient.RecreateAsync()); + + Assert.IsNotNull(_serviceGrpcClient.AppController); + _grpcChannelWrapperFactory.Received(numOfCalls + 1).Create(Arg.Any()); + await _grpcChannelWrapper.Received(numOfCalls).ShutdownAsync(); + } + + [TestMethod] + public void TestIsRecreatable_WhenServerPortIsNull() + { + bool result = _serviceGrpcClient.IsRecreatable(); + + Assert.IsFalse(result); + } + + [TestMethod] + public async Task TestIsRecreatable_WhenServerPortHasValue() + { + await _serviceGrpcClient.CreateAsync(APP_SERVER_PORT); + + bool result = _serviceGrpcClient.IsRecreatable(); + + Assert.IsTrue(result); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/GrpcServer.cs b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/GrpcServer.cs new file mode 100644 index 000000000..3728bbb2d --- /dev/null +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/GrpcServer.cs @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtoBuf.Grpc.Server; +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Registration; +using static Grpc.Core.Server; + +namespace ProtonVPN.ProcessCommunication.Service +{ + public class GrpcServer : GrpcServerBase + { + private readonly IServiceController _serviceController; + private readonly IServiceServerPortRegister _serviceServerPortRegister; + + public GrpcServer(ILogger logger, IServiceController serviceController, + IServiceServerPortRegister serviceServerPortRegister) + : base(logger) + { + _serviceController = serviceController; + _serviceServerPortRegister = serviceServerPortRegister; + } + + protected override void RegisterServices(ServiceDefinitionCollection services) + { + services.AddCodeFirst(_serviceController); + } + + public override void CreateAndStart() + { + base.CreateAndStart(); + int? serverPort = Port; + if (serverPort.HasValue && serverPort.Value > 0) + { + _serviceServerPortRegister.Write(serverPort.Value); + } + } + + public override async Task ShutdownAsync() + { + _serviceServerPortRegister.Delete(); + await base.ShutdownAsync(); + } + + public override async Task KillAsync() + { + _serviceServerPortRegister.Delete(); + await base.KillAsync(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ProtonVPN.ProcessCommunication.Service.csproj b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ProtonVPN.ProcessCommunication.Service.csproj new file mode 100644 index 000000000..4e4dbb7f9 --- /dev/null +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ProtonVPN.ProcessCommunication.Service.csproj @@ -0,0 +1,24 @@ + + + + net6.0-windows + enable + ..\..\..\bin + false + Library + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ServiceGrpcClient.cs b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ServiceGrpcClient.cs new file mode 100644 index 000000000..45d00f21a --- /dev/null +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ServiceGrpcClient.cs @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs; +using ProtonVPN.ProcessCommunication.Common; +using ProtonVPN.ProcessCommunication.Common.Channels; +using ProtonVPN.ProcessCommunication.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; + +namespace ProtonVPN.ProcessCommunication.Service +{ + public class ServiceGrpcClient : GrpcClientBase, IServiceGrpcClient + { + public IAppController AppController { get; private set; } + + public ServiceGrpcClient(ILogger logger, IGrpcChannelWrapperFactory grpcChannelWrapperFactory) + : base(logger, grpcChannelWrapperFactory) + { + } + + public async Task CreateAsync(int serverPort) + { + await CreateWithPortAsync(serverPort); + } + + protected override void RegisterServices(IGrpcChannelWrapper channel) + { + AppController = channel.CreateService(); + } + + public async Task RecreateAsync() + { + int? serverPort = ServerPort; + if (serverPort.HasValue) + { + Logger.Info($"Request to recreate a gRPC Client to Server Port {serverPort}."); + await CreateAsync(serverPort.Value); + } + else + { + Logger.Warn($"Cannot recreate gRPC Client because there is no previous Server Port."); + } + } + + public bool IsRecreatable() + { + return ServerPort.HasValue; + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.App/About/AboutModalViewModel.cs b/src/ProtonVPN.App/About/AboutModalViewModel.cs index 043676381..af8a749dc 100644 --- a/src/ProtonVPN.App/About/AboutModalViewModel.cs +++ b/src/ProtonVPN.App/About/AboutModalViewModel.cs @@ -20,8 +20,10 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; +using System.Threading.Tasks; using System.Windows.Input; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Common.Configuration; using ProtonVPN.Core.Modals; using ProtonVPN.Core.Settings; @@ -98,7 +100,7 @@ public void OnUpdateStateChanged(UpdateStateChangedEventArgs e) Releases = e.ReleaseHistory; } - protected override void OnActivate() + protected override async Task OnActivateAsync(CancellationToken cancellationToken) { LastUpdate = _appSettings.LastUpdate; } @@ -108,9 +110,9 @@ public override void BeforeOpenModal(dynamic options) _appUpdater.StartCheckingForUpdate(); } - private void ShowLicense() + private async void ShowLicense() { - _modals.Show(); + await _modals.ShowAsync(); } } } diff --git a/src/ProtonVPN.App/About/LicenseModalView.xaml.cs b/src/ProtonVPN.App/About/LicenseModalView.xaml.cs index 5dd5c65b1..944f7b79e 100644 --- a/src/ProtonVPN.App/About/LicenseModalView.xaml.cs +++ b/src/ProtonVPN.App/About/LicenseModalView.xaml.cs @@ -1,4 +1,24 @@ -using System.Diagnostics; +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; +using System.Diagnostics; using System.Windows.Input; namespace ProtonVPN.About @@ -9,7 +29,24 @@ public LicenseModalView() { InitializeComponent(); - CommandBindings.Add(new CommandBinding(NavigationCommands.GoToPage, (sender, e) => Process.Start((string)e.Parameter))); + CommandBindings.Add(new CommandBinding(NavigationCommands.GoToPage, (sender, e) => OpenWebsite(e))); + } + + // This should be instead a call to IOsProcesses.Open(string filename), + // but this LicenseModalView constructor needs to be parameterless otherwise the caller who opens this modal crashes + private void OpenWebsite(ExecutedRoutedEventArgs e) + { + try + { + Process.Start(new ProcessStartInfo + { + FileName = (string)e?.Parameter, + UseShellExecute = true + }); + } + catch (Exception) + { + } } } } diff --git a/src/ProtonVPN.App/About/LicenseModalViewModel.cs b/src/ProtonVPN.App/About/LicenseModalViewModel.cs index fdc682e4c..d851ef45a 100644 --- a/src/ProtonVPN.App/About/LicenseModalViewModel.cs +++ b/src/ProtonVPN.App/About/LicenseModalViewModel.cs @@ -1,4 +1,23 @@ -using ProtonVPN.Modals; +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Modals; namespace ProtonVPN.About { @@ -6,7 +25,7 @@ public class LicenseModalViewModel : BaseModalViewModel { public string License { get; } = @"## Copying -Copyright(c) 2023 Proton AG +Copyright (c) 2023 Proton AG Proton VPN is free software: you can redistribute it and / or modify it under the terms of the GNU General Public License as published by diff --git a/src/ProtonVPN.App/About/UpdateViewModel.cs b/src/ProtonVPN.App/About/UpdateViewModel.cs index 1c6a93214..a6ba0764b 100644 --- a/src/ProtonVPN.App/About/UpdateViewModel.cs +++ b/src/ProtonVPN.App/About/UpdateViewModel.cs @@ -33,12 +33,10 @@ using ProtonVPN.Common.Vpn; using ProtonVPN.Core.Modals; using ProtonVPN.Core.MVVM; -using ProtonVPN.Core.OS; using ProtonVPN.Core.Service.Settings; using ProtonVPN.Core.Settings; using ProtonVPN.Core.Update; using ProtonVPN.Core.Vpn; -using ProtonVPN.Modals; using ProtonVPN.Translations; namespace ProtonVPN.About @@ -50,7 +48,6 @@ public class UpdateViewModel : ViewModel, IUpdateStateAware, IVpnStateAware private readonly IOsProcesses _osProcesses; private readonly IModals _modals; private readonly IAppSettings _appSettings; - private readonly ISystemState _systemState; private readonly ISettingsServiceClientManager _settingsServiceClientManager; private readonly IConfiguration _appConfig; @@ -63,7 +60,6 @@ public UpdateViewModel( IOsProcesses osProcesses, IModals modals, IAppSettings appSettings, - ISystemState systemState, ISettingsServiceClientManager settingsServiceClientManager, IConfiguration appConfig) { @@ -72,7 +68,6 @@ public UpdateViewModel( _osProcesses = osProcesses; _modals = modals; _appSettings = appSettings; - _systemState = systemState; _settingsServiceClientManager = settingsServiceClientManager; _appConfig = appConfig; @@ -149,22 +144,11 @@ public Task OnVpnStateChanged(VpnStateChangedEventArgs e) private async void Update() { - if (!CanUpdate() || !AllowToDisconnect()) + if (!CanUpdate() || !(await IsAllowedToDisconnectAsync())) { return; } - if (_systemState.PendingReboot()) - { - bool? result = _modals.Show(); - if (result.HasValue && result.Value) - { - await UpdateInternal(); - } - - return; - } - await UpdateInternal(); } @@ -220,11 +204,11 @@ private string GetUpdateFileName() private bool CanUpdate() => !Updating && Ready; - private bool AllowToDisconnect() + private async Task IsAllowedToDisconnectAsync() { if (ShowConfirmationModal()) { - bool? result = _dialogs.ShowQuestion(Translation.Get("App_msg_UpdateConnectedConfirm")); + bool? result = await _dialogs.ShowQuestionAsync(Translation.Get("App_msg_UpdateConnectedConfirm")); if (result.HasValue && result.Value == false) { return false; @@ -234,11 +218,11 @@ private bool AllowToDisconnect() return true; } - private void OpenAbout() + private async void OpenAbout() { dynamic options = new ExpandoObject(); options.SkipUpdateCheck = true; - _modals.Show(options); + await _modals.ShowAsync(options); } private bool ShowConfirmationModal() diff --git a/src/ProtonVPN.App/Account/AccountModalViewModel.cs b/src/ProtonVPN.App/Account/AccountModalViewModel.cs index ef0c0287c..70eef8f3a 100644 --- a/src/ProtonVPN.App/Account/AccountModalViewModel.cs +++ b/src/ProtonVPN.App/Account/AccountModalViewModel.cs @@ -17,6 +17,8 @@ * along with ProtonVPN. If not, see . */ +using System.Threading; +using System.Threading.Tasks; using System.Windows.Input; using Caliburn.Micro; using GalaSoft.MvvmLight.Command; @@ -143,14 +145,13 @@ public string AccountType set => Set(ref _accountType, value); } - protected override void OnActivate() + protected override async Task OnActivateAsync(CancellationToken cancellationToken) { SetUserDetails(); } - protected override void OnDeactivate(bool close) + protected override async Task OnDeactivateAsync(bool close, CancellationToken cancellationToken) { - base.OnDeactivate(close); CloseActionMessageAction(); } @@ -162,7 +163,7 @@ public void OnUserDataChanged() NotifyOfPropertyChange(nameof(IsPlusPlan)); } - public void Handle(AccountActionMessage message) + public async Task HandleAsync(AccountActionMessage message, CancellationToken cancellationToken) { ActionMessage = message.Message; } diff --git a/src/ProtonVPN.App/Account/VpnInfoUpdater.cs b/src/ProtonVPN.App/Account/VpnInfoUpdater.cs index 082e0be7c..c4430a26a 100644 --- a/src/ProtonVPN.App/Account/VpnInfoUpdater.cs +++ b/src/ProtonVPN.App/Account/VpnInfoUpdater.cs @@ -75,12 +75,7 @@ private async void OnTimerTick(object sender, EventArgs e) await Handle(); } - public async void Handle(UpdateVpnInfoMessage message) - { - await Update(); - } - - public async void Handle(WindowStateMessage message) + public async Task HandleAsync(WindowStateMessage message, CancellationToken cancellationToken) { if (!message.Active) { @@ -90,6 +85,11 @@ public async void Handle(WindowStateMessage message) await Handle(); } + public async Task HandleAsync(UpdateVpnInfoMessage message, CancellationToken cancellationToken) + { + await Update(); + } + private async Task Handle() { if (DateTime.Now.Subtract(_lastCheck) < _checkInterval) diff --git a/src/ProtonVPN.App/App.config b/src/ProtonVPN.App/App.config index ebbd457dd..5b0160d16 100644 --- a/src/ProtonVPN.App/App.config +++ b/src/ProtonVPN.App/App.config @@ -234,9 +234,6 @@ - - 01/01/1970 00:00:00 - @@ -400,6 +397,9 @@ + + 1970-01-01 + @@ -414,16 +414,4 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/ProtonVPN.App/App.xaml b/src/ProtonVPN.App/App.xaml index d72057fa0..ae8760cdc 100644 --- a/src/ProtonVPN.App/App.xaml +++ b/src/ProtonVPN.App/App.xaml @@ -25,12 +25,14 @@ along with ProtonVPN. If not, see . xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:converters="clr-namespace:ProtonVPN.Core.MVVM.Converters" xmlns:sys="clr-namespace:System;assembly=mscorlib" - xmlns:quickSettings="clr-namespace:ProtonVPN.Sidebar.QuickSettings" + xmlns:quickSettings="clr-namespace:ProtonVPN.Sidebar.QuickSettings" + xmlns:core="clr-namespace:ProtonVPN.Core" mc:Ignorable="d"> + 10 diff --git a/src/ProtonVPN.App/App.xaml.cs b/src/ProtonVPN.App/App.xaml.cs index c7056f6c7..75fb36601 100644 --- a/src/ProtonVPN.App/App.xaml.cs +++ b/src/ProtonVPN.App/App.xaml.cs @@ -18,12 +18,10 @@ */ using System; -using System.Linq; using System.Reflection; using System.Runtime; using System.Threading.Tasks; using System.Windows; -using Microsoft.Toolkit.Uwp.Notifications; using ProtonVPN.Common.Configuration; using ProtonVPN.Common.Extensions; using ProtonVPN.Config; @@ -31,23 +29,14 @@ using ProtonVPN.Core.Startup; using ProtonVPN.ErrorHandling; using ProtonVPN.Native.PInvoke; -using ProtonVPN.Notifications; namespace ProtonVPN { public partial class App { - private static Bootstrapper _bootstrapper; - private static bool _failedToLoadAssembly; - [STAThread] - public static void Main(string[] args) - { - Run(args).GetAwaiter().GetResult(); - } - - private static async Task Run(string[] args) + protected override async void OnStartup(StartupEventArgs e) { // The app v1.13.0 starts update installer under local SYSTEM account. // Therefore, when update is complete, the installer starts the app under @@ -64,7 +53,7 @@ private static async Task Run(string[] args) return; } - if (await SingleInstanceApplication.InitializeAsFirstInstance("{588dc704-8eac-4a43-9345-ec7186b23f05}", args)) + if (await SingleInstanceApplication.InitializeAsFirstInstance("{588dc704-8eac-4a43-9345-ec7186b23f05}", e.Args)) { AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyLoadFailed; @@ -73,13 +62,7 @@ private static async Task Run(string[] args) IConfiguration config = GetConfig(); CreateProfileOptimization(config); - App app = new(); - app.InitializeComponent(); - - _bootstrapper = new Bootstrapper(args); - _bootstrapper.Initialize(); - - app.Run(); + base.OnStartup(e); } } @@ -94,7 +77,9 @@ private static Assembly OnAssemblyLoadFailed(object sender, ResolveEventArgs arg if (name.ContainsIgnoringCase(".resources") || name.EndsWithIgnoringCase("XmlSerializers") || - name.StartsWithIgnoringCase("PresentationFramework.")) + name.StartsWithIgnoringCase("PresentationFramework.") || + name.EqualsIgnoringCase("Xamarin.iOS") || + name.EqualsIgnoringCase("Mono.Android")) { return null; } @@ -122,7 +107,7 @@ private static void CreateProfileOptimization(IConfiguration config) protected override void OnExit(ExitEventArgs e) { - _bootstrapper.OnExit(); + Bootstrapper.OnExit(); base.OnExit(e); } @@ -147,32 +132,9 @@ private static void SetDllDirectories() protected override void OnSessionEnding(SessionEndingCancelEventArgs e) { base.OnSessionEnding(e); - _bootstrapper.OnExit(); + Bootstrapper?.OnExit(); } - protected override void OnStartup(StartupEventArgs e) - { - AddToastNotificationActionHandler(); - base.OnStartup(e); - } - - private void AddToastNotificationActionHandler() - { - ToastNotificationManagerCompat.OnActivated += OnToastNotificationUserAction; - } - - private void OnToastNotificationUserAction(ToastNotificationActivatedEventArgsCompat e) - { - ToastArguments args = ToastArguments.Parse(e.Argument); - Application.Current.Dispatcher.Invoke(delegate - { - NotificationUserAction data = new() - { - Arguments = args.ToDictionary(p => p.Key, p => p.Value), - UserInputs = e.UserInput.ToDictionary(p => p.Key, p => p.Value) - }; - _bootstrapper.OnToastNotificationUserAction(data); - }); - } + private Bootstrapper Bootstrapper => (Bootstrapper)Current.Resources["Bootstrapper"]; } } \ No newline at end of file diff --git a/src/ProtonVPN.App/BugReporting/ReportBugModalViewModel.cs b/src/ProtonVPN.App/BugReporting/ReportBugModalViewModel.cs index ea821bd71..559a17ff9 100644 --- a/src/ProtonVPN.App/BugReporting/ReportBugModalViewModel.cs +++ b/src/ProtonVPN.App/BugReporting/ReportBugModalViewModel.cs @@ -21,6 +21,7 @@ using System.Threading; using System.Threading.Tasks; using Caliburn.Micro; +using ProtonVPN.Account; using ProtonVPN.Api; using ProtonVPN.BugReporting.Actions; using ProtonVPN.BugReporting.FormElements; @@ -131,7 +132,7 @@ private void OnTimeoutActionCompleted(object sender, TaskCompletedEventArgs e) _logger.Info("Timeout action completed."); } - public async void Handle(SendReportAction message) + public async Task HandleAsync(SendReportAction message, CancellationToken cancellationToken) { _timeoutAction.Run(); await _eventAggregator.PublishOnUIThreadAsync(new FormStateChange(FormState.Sending)); @@ -162,12 +163,12 @@ private async Task ShowSuccessViewAndPublishSentAsync(SendReportAction message) await _eventAggregator.PublishOnUIThreadAsync(new FormStateChange(FormState.Sent)); } - public void Handle(FinishReportAction message) + public async Task HandleAsync(FinishReportAction message, CancellationToken cancellationToken) { TryClose(); } - public void Handle(FormStateChange message) + public async Task HandleAsync(FormStateChange message, CancellationToken cancellationToken) { _formState = message.State; if (_formState is not FormState.Sending) @@ -188,14 +189,14 @@ private void StopTimeoutAction() } } - public void Handle(GoBackAfterFailureAction message) + public async Task HandleAsync(GoBackAfterFailureAction message, CancellationToken cancellationToken) { ShowStepsView(); } - protected override void OnDeactivate(bool close) + protected override async Task OnDeactivateAsync(bool close, CancellationToken cancellationToken) { - base.OnDeactivate(close); + await base.OnDeactivateAsync(close, cancellationToken); if (_formState == FormState.Sent) { ShowStepsView(); diff --git a/src/ProtonVPN.App/BugReporting/Screens/FailureViewModel.cs b/src/ProtonVPN.App/BugReporting/Screens/FailureViewModel.cs index 6ffd570c6..3e3746d28 100644 --- a/src/ProtonVPN.App/BugReporting/Screens/FailureViewModel.cs +++ b/src/ProtonVPN.App/BugReporting/Screens/FailureViewModel.cs @@ -51,19 +51,19 @@ public string Error public ICommand RetryCommand { get; set; } public ICommand BackCommand { get; set; } - private void TroubleshootAction() + private async void TroubleshootAction() { - _modals.Show(); + await _modals.ShowAsync(); } private void RetryAction() { - _eventAggregator.PublishOnUIThread(new RetryAction()); + _eventAggregator.PublishOnUIThreadAsync(new RetryAction()); } private void BackAction() { - _eventAggregator.PublishOnUIThread(new GoBackAfterFailureAction()); + _eventAggregator.PublishOnUIThreadAsync(new GoBackAfterFailureAction()); } } } \ No newline at end of file diff --git a/src/ProtonVPN.App/BugReporting/Screens/SentViewModel.cs b/src/ProtonVPN.App/BugReporting/Screens/SentViewModel.cs index 603db0c69..711408feb 100644 --- a/src/ProtonVPN.App/BugReporting/Screens/SentViewModel.cs +++ b/src/ProtonVPN.App/BugReporting/Screens/SentViewModel.cs @@ -19,7 +19,7 @@ using System.Windows.Input; using Caliburn.Micro; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.BugReporting.Actions; using ProtonVPN.Translations; @@ -52,7 +52,7 @@ public string Email private void FinishReportAction() { - _eventAggregator.PublishOnUIThread(new FinishReportAction()); + _eventAggregator.PublishOnUIThreadAsync(new FinishReportAction()); } } } \ No newline at end of file diff --git a/src/ProtonVPN.App/BugReporting/Steps/CategorySelectionViewModel.cs b/src/ProtonVPN.App/BugReporting/Steps/CategorySelectionViewModel.cs index bec3bf0c1..b9f99e8e7 100644 --- a/src/ProtonVPN.App/BugReporting/Steps/CategorySelectionViewModel.cs +++ b/src/ProtonVPN.App/BugReporting/Steps/CategorySelectionViewModel.cs @@ -20,7 +20,7 @@ using System.Collections.Generic; using System.Windows.Input; using Caliburn.Micro; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Api.Contracts.ReportAnIssue; using ProtonVPN.BugReporting.Actions; using ProtonVPN.Core.ReportAnIssue; @@ -45,7 +45,7 @@ public CategorySelectionViewModel(IEventAggregator eventAggregator, IReportAnIss public void SelectCategoryAction(string category) { - _eventAggregator.PublishOnUIThread(new SelectCategoryAction(category)); + _eventAggregator.PublishOnUIThreadAsync(new SelectCategoryAction(category)); } } } \ No newline at end of file diff --git a/src/ProtonVPN.App/BugReporting/Steps/FormView.xaml b/src/ProtonVPN.App/BugReporting/Steps/FormView.xaml index ee0b69fb6..2516af1c5 100644 --- a/src/ProtonVPN.App/BugReporting/Steps/FormView.xaml +++ b/src/ProtonVPN.App/BugReporting/Steps/FormView.xaml @@ -217,6 +217,7 @@ along with ProtonVPN. If not, see . diff --git a/src/ProtonVPN.App/Settings/PortForwardingWarningViewModel.cs b/src/ProtonVPN.App/Settings/PortForwardingWarningViewModel.cs index 167022b1e..65dd3533c 100644 --- a/src/ProtonVPN.App/Settings/PortForwardingWarningViewModel.cs +++ b/src/ProtonVPN.App/Settings/PortForwardingWarningViewModel.cs @@ -21,7 +21,7 @@ using System.Threading.Tasks; using System.Windows.Input; using Caliburn.Micro; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Common.Vpn; using ProtonVPN.Core.Servers; using ProtonVPN.Core.Servers.Models; diff --git a/src/ProtonVPN.App/Settings/SettingsModalViewModel.cs b/src/ProtonVPN.App/Settings/SettingsModalViewModel.cs index a13420d59..038d46162 100644 --- a/src/ProtonVPN.App/Settings/SettingsModalViewModel.cs +++ b/src/ProtonVPN.App/Settings/SettingsModalViewModel.cs @@ -20,9 +20,10 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; +using System.Threading; using System.Threading.Tasks; using System.Windows.Input; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Account; using ProtonVPN.Common.Extensions; using ProtonVPN.Common.Networking; @@ -181,7 +182,7 @@ public bool AllowNonStandardPorts { if (value && !_userStorage.GetUser().Paid()) { - _modals.Show(); + ShowNonStandardPortsUpsellModal(); return; } @@ -190,6 +191,11 @@ public bool AllowNonStandardPorts } } + private async void ShowNonStandardPortsUpsellModal() + { + await _modals.ShowAsync(); + } + public bool ShowAllowNonStandardPorts => _appSettings.ShowNonStandardPortsToFreeUsers; public bool ModerateNat @@ -199,7 +205,7 @@ public bool ModerateNat { if (value && !_userStorage.GetUser().Paid()) { - _modals.Show(); + ShowModerateNatUpsellModal(); return; } @@ -208,6 +214,11 @@ public bool ModerateNat } } + private async void ShowModerateNatUpsellModal() + { + await _modals.ShowAsync(); + } + public bool VpnAccelerator { get => _appSettings.VpnAcceleratorEnabled; @@ -342,8 +353,8 @@ public bool CustomDnsEnabled { if (value && _appSettings.IsNetShieldEnabled()) { - bool? result = - _dialogs.ShowQuestion(Translation.Get("Settings_Connection_Warning_CustomDnsServer")); + bool? result = _dialogs.ShowQuestionAsync( + Translation.Get("Settings_Connection_Warning_CustomDnsServer")).Result; if (result.HasValue && !result.Value) { return; @@ -478,7 +489,7 @@ public IReadOnlyList QuickConnectProfiles public SplitTunnelingViewModel SplitTunnelingViewModel { get; } - protected override async void OnActivate() + protected override async Task OnActivateAsync(CancellationToken cancellationToken) { SetDisconnected(); await LoadProfiles(); diff --git a/src/ProtonVPN.App/Settings/SplitTunneling/SplitTunnelingViewModel.cs b/src/ProtonVPN.App/Settings/SplitTunneling/SplitTunnelingViewModel.cs index a16ec6e2e..1b7dbae5b 100644 --- a/src/ProtonVPN.App/Settings/SplitTunneling/SplitTunnelingViewModel.cs +++ b/src/ProtonVPN.App/Settings/SplitTunneling/SplitTunnelingViewModel.cs @@ -53,7 +53,7 @@ public bool Enabled { if (_appSettings.KillSwitchMode != KillSwitchMode.Off) { - bool? result = _dialogs.ShowQuestion(Translation.Get("Dialogs_SplitTunnelWarning_msg")); + bool? result = _dialogs.ShowQuestionAsync(Translation.Get("Dialogs_SplitTunnelWarning_msg")).Result; if (!result.HasValue || !result.Value) { return; diff --git a/src/ProtonVPN.App/Settings/Style.xaml b/src/ProtonVPN.App/Settings/Style.xaml index 423b1bf35..1c74f5a0d 100644 --- a/src/ProtonVPN.App/Settings/Style.xaml +++ b/src/ProtonVPN.App/Settings/Style.xaml @@ -20,7 +20,7 @@ along with ProtonVPN. If not, see . (); + await _modals.ShowAsync(); } } } \ No newline at end of file diff --git a/src/ProtonVPN.App/Sidebar/Countries.xaml b/src/ProtonVPN.App/Sidebar/Countries.xaml index 6a056a683..26196abbb 100644 --- a/src/ProtonVPN.App/Sidebar/Countries.xaml +++ b/src/ProtonVPN.App/Sidebar/Countries.xaml @@ -24,7 +24,7 @@ along with ProtonVPN. If not, see . xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:controls="clr-namespace:ProtonVPN.Views.Controls" xmlns:servers="clr-namespace:ProtonVPN.Servers" - xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" + xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:c="clr-namespace:CalcBinding;assembly=CalcBinding" xmlns:sidebar="clr-namespace:ProtonVPN.Sidebar" xmlns:translations="clr-namespace:ProtonVPN.Translations;assembly=ProtonVPN.Translations" diff --git a/src/ProtonVPN.App/Sidebar/QuickSettings/QuickSettingsViewModel.cs b/src/ProtonVPN.App/Sidebar/QuickSettings/QuickSettingsViewModel.cs index 7a8c5671a..94190e90f 100644 --- a/src/ProtonVPN.App/Sidebar/QuickSettings/QuickSettingsViewModel.cs +++ b/src/ProtonVPN.App/Sidebar/QuickSettings/QuickSettingsViewModel.cs @@ -21,7 +21,7 @@ using System.Threading.Tasks; using System.Windows.Input; using Caliburn.Micro; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Common.Vpn; using ProtonVPN.Config.Url; using ProtonVPN.Core.Modals; @@ -332,7 +332,7 @@ private async void TurnOnSecureCoreActionAsync() { if (!_appSettings.DoNotShowDiscourageSecureCoreDialog) { - bool? result = _modals.Show(); + bool? result = await _modals.ShowAsync(); if (result.HasValue && !result.Value) { return; @@ -388,7 +388,7 @@ private async void EnableHardKillSwitchActionAsync() if (!_appSettings.DoNotShowKillSwitchConfirmationDialog) { - bool? result = _modals.Show(); + bool? result = await _modals.ShowAsync(); if (result.HasValue && !result.Value) { return; @@ -481,19 +481,19 @@ private void OpenPortForwardingArticleAction() _urls.AboutPortForwardingUrl.Open(); } - private void ShowSecureCoreUpsellModalAction() + private async void ShowSecureCoreUpsellModalAction() { - _modals.Show(); + await _modals.ShowAsync(); } - private void ShowNetshieldUpsellModalAction() + private async void ShowNetshieldUpsellModalAction() { - _modals.Show(); + await _modals.ShowAsync(); } - private void ShowPortForwardingUpsellModalAction() + private async void ShowPortForwardingUpsellModalAction() { - _modals.Show(); + await _modals.ShowAsync(); } private void OnActivePortViewModelPropertyChanged(object sender, PropertyChangedEventArgs e) diff --git a/src/ProtonVPN.App/Sidebar/SidebarProfilesViewModel.cs b/src/ProtonVPN.App/Sidebar/SidebarProfilesViewModel.cs index ea4b302e4..969404eaf 100644 --- a/src/ProtonVPN.App/Sidebar/SidebarProfilesViewModel.cs +++ b/src/ProtonVPN.App/Sidebar/SidebarProfilesViewModel.cs @@ -23,7 +23,7 @@ using System.Threading.Tasks; using System.Windows.Input; using Caliburn.Micro; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Core.Modals; using ProtonVPN.Core.Profiles; using ProtonVPN.Core.Servers; @@ -145,14 +145,14 @@ private async Task LoadProfiles() NumOfProfilesText = $"({customProfiles.Count})"; } - private void CreateProfileAction() + private async void CreateProfileAction() { - _modals.Show(); + await _modals.ShowAsync(); } - private void ManageProfilesAction() + private async void ManageProfilesAction() { - _modals.Show(); + await _modals.ShowAsync(); } } } diff --git a/src/ProtonVPN.App/SpeedGraph/SpeedGraphViewModel.cs b/src/ProtonVPN.App/SpeedGraph/SpeedGraphViewModel.cs index 6b0d0038c..62d7e7554 100644 --- a/src/ProtonVPN.App/SpeedGraph/SpeedGraphViewModel.cs +++ b/src/ProtonVPN.App/SpeedGraph/SpeedGraphViewModel.cs @@ -59,9 +59,9 @@ internal class SpeedGraphViewModel : ViewModel, IVpnStateAware, ILogoutAware private readonly Lazy _uploadColor; private readonly Lazy _downloadColor; - public SpeedGraphViewModel(ILogger logger, - VpnConnectionSpeed speedTracker, - IScheduler scheduler, + public SpeedGraphViewModel(ILogger logger, + VpnConnectionSpeed speedTracker, + IScheduler scheduler, IColorPalette colorPalette) { _logger = logger; @@ -190,7 +190,7 @@ private void ResetGraph() private void InitPlotModel() { - PlotModel = new ViewResolvingPlotModel {PlotAreaBorderThickness = new OxyThickness(0)}; + PlotModel = new ViewResolvingPlotModel { PlotAreaBorderThickness = new OxyThickness(0) }; PlotModel.Updated += HideAxis; } diff --git a/src/ProtonVPN.App/ViewModels/MainViewModel.cs b/src/ProtonVPN.App/ViewModels/MainViewModel.cs index a211c8e79..347adf0a1 100644 --- a/src/ProtonVPN.App/ViewModels/MainViewModel.cs +++ b/src/ProtonVPN.App/ViewModels/MainViewModel.cs @@ -21,7 +21,7 @@ using System.Threading.Tasks; using System.Windows.Input; using Caliburn.Micro; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.About; using ProtonVPN.Account; using ProtonVPN.BugReporting; @@ -134,7 +134,7 @@ public bool Connecting { if (_connecting != value) { - _eventAggregator.PublishOnUIThread(new ToggleOverlay(value)); + _eventAggregator.PublishOnUIThreadAsync(new ToggleOverlay(value)); } Set(ref _connecting, value); CommandManager.InvalidateRequerySuggested(); @@ -211,24 +211,24 @@ private bool CanClick() return !Connecting; } - private void AboutAction() + private async void AboutAction() { - _modals.Show(); + await _modals.ShowAsync(); } - private void AccountAction() + private async void AccountAction() { - _modals.Show(); + await _modals.ShowAsync(); } - public void ProfilesAction() + public async void ProfilesAction() { - _modals.Show(); + await _modals.ShowAsync(); } - private void SettingsAction() + private async void SettingsAction() { - _modals.Show(); + await _modals.ShowAsync(); } private void HelpAction() @@ -236,9 +236,9 @@ private void HelpAction() _urls.HelpUrl.Open(); } - private void ReportBugAction() + private async void ReportBugAction() { - _modals.Show(); + await _modals.ShowAsync(); } private void DeveloperToolsAction() @@ -256,7 +256,7 @@ private async void LogoutAction() { if (VpnStatus != VpnStatus.Disconnected && VpnStatus != VpnStatus.Disconnecting) { - bool? result = _dialogs.ShowQuestion(Translation.Get("App_msg_LogoutConnectedConfirm")); + bool? result = await _dialogs.ShowQuestionAsync(Translation.Get("App_msg_LogoutConnectedConfirm")); if (!result.HasValue || !result.Value) { return; diff --git a/src/ProtonVPN.App/Vpn/Connectors/GuestHoleConnector.cs b/src/ProtonVPN.App/Vpn/Connectors/GuestHoleConnector.cs index d0f4b7385..64b3fb82f 100644 --- a/src/ProtonVPN.App/Vpn/Connectors/GuestHoleConnector.cs +++ b/src/ProtonVPN.App/Vpn/Connectors/GuestHoleConnector.cs @@ -25,11 +25,10 @@ using ProtonVPN.Common.Configuration; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.ConnectLogs; -using ProtonVPN.Common.Logging.Categorization.Events.DisconnectLogs; using ProtonVPN.Common.Logging.Categorization.Events.GuestHoleLogs; using ProtonVPN.Common.Networking; using ProtonVPN.Common.Vpn; -using ProtonVPN.Core.Service.Vpn; +using ProtonVPN.Core.Servers.Contracts; using ProtonVPN.Core.Settings; using ProtonVPN.Core.Vpn; using ProtonVPN.GuestHoles.FileStoraging; @@ -47,7 +46,6 @@ public class GuestHoleConnector private readonly GuestHoleState _guestHoleState; private readonly IConfiguration _config; private readonly IGuestHoleServersFileStorage _guestHoleServersFileStorage; - private readonly INetworkAdapterValidator _networkAdapterValidator; private readonly ILogger _logger; public GuestHoleConnector( @@ -56,7 +54,6 @@ public GuestHoleConnector( GuestHoleState guestHoleState, IConfiguration config, IGuestHoleServersFileStorage guestHoleServersFileStorage, - INetworkAdapterValidator networkAdapterValidator, ILogger logger) { _vpnServiceManager = vpnServiceManager; @@ -64,31 +61,21 @@ public GuestHoleConnector( _guestHoleState = guestHoleState; _config = config; _guestHoleServersFileStorage = guestHoleServersFileStorage; - _networkAdapterValidator = networkAdapterValidator; _logger = logger; } public async Task Connect() { - if (_networkAdapterValidator.IsOpenVpnAdapterAvailable()) - { - _logger.Info("OpenVPN adapters are available. Proceeding with guest hole connection."); + _logger.Info("OpenVPN adapters are available. Proceeding with guest hole connection."); - VpnConnectionRequest request = new( - Servers(), - VpnProtocol.Smart, - VpnConfig(), - CreateVpnCredentials()); + VpnConnectionRequest request = new( + Servers(), + VpnProtocol.Smart, + VpnConfig(), + CreateVpnCredentials()); - _logger.Info("Guest hole connection requested."); - await _vpnServiceManager.Connect(request); - } - else - { - _logger.Info("OpenVPN adapters are unavailable. Disconnecting."); - _logger.Info("Guest hole disconnection requested."); - await Disconnect(); - } + _logger.Info("Guest hole connection requested."); + await _vpnServiceManager.Connect(request); } private VpnCredentials CreateVpnCredentials() @@ -135,11 +122,12 @@ public async Task OnVpnStateChanged(VpnStateChangedEventArgs e) public IReadOnlyList Servers() { - return _guestHoleServersFileStorage - .Get() - .Select(server => new VpnHost(server.Host, server.Ip, server.Label, null, server.Signature)) - .OrderBy(_ => _random.Next()) - .ToList(); + IEnumerable servers = _guestHoleServersFileStorage.Get(); + return servers != null + ? servers.Select(server => new VpnHost(server.Host, server.Ip, server.Label, null, server.Signature)) + .OrderBy(_ => _random.Next()) + .ToList() + : new List(); } private VpnConfig VpnConfig() diff --git a/src/ProtonVPN.App/Vpn/Connectors/ProfileConnector.cs b/src/ProtonVPN.App/Vpn/Connectors/ProfileConnector.cs index 03545103d..e397159e3 100644 --- a/src/ProtonVPN.App/Vpn/Connectors/ProfileConnector.cs +++ b/src/ProtonVPN.App/Vpn/Connectors/ProfileConnector.cs @@ -220,11 +220,11 @@ private Features ServerFeatures(Profile profile) return profile.Features; } - public void HandleNoServersAvailable(VpnManagerProfileCandidates profileCandidates) + public async Task HandleNoServersAvailableAsync(VpnManagerProfileCandidates profileCandidates) { if (profileCandidates.Profile.ProfileType == ProfileType.Custom) { - HandleNoCustomServerAvailable(profileCandidates.Candidates.FirstOrDefault()); + await HandleNoCustomServerAvailableAsync(profileCandidates.Candidates.FirstOrDefault()); return; } @@ -238,7 +238,7 @@ public void HandleNoServersAvailable(VpnManagerProfileCandidates profileCandidat (profileCandidates.Profile.IsPredefined && _appSettings.SecureCore)) && _userStorage.GetUser().MaxTier < ServerTiers.Plus) { - _modals.Show(); + await _modals.ShowAsync(); return; } @@ -246,19 +246,19 @@ public void HandleNoServersAvailable(VpnManagerProfileCandidates profileCandidat (profileCandidates.Profile.IsPredefined && _appSettings.IsPortForwardingEnabled())) && _userStorage.GetUser().MaxTier < ServerTiers.Plus) { - _modals.Show(); + await _modals.ShowAsync(); return; } if (!string.IsNullOrEmpty(profileCandidates.Profile.CountryCode)) { - HandleNoCountryServersAvailable(profileCandidates.Candidates); + await HandleNoCountryServersAvailableAsync(profileCandidates.Candidates); return; } if (!profileCandidates.Candidates.Any()) { - _dialogs.ShowWarning(Translation.Get("Profiles_msg_NoServersAvailable")); + await _dialogs.ShowWarningAsync(Translation.Get("Profiles_msg_NoServersAvailable")); return; } @@ -266,24 +266,24 @@ public void HandleNoServersAvailable(VpnManagerProfileCandidates profileCandidat if (!userTierServers.Any()) { - _modals.Show(); + await _modals.ShowAsync(); return; } if (!profileCandidates.Candidates.OnlineServers().Any()) { - _dialogs.ShowWarning(Translation.Get("Profiles_msg_AllServersOffline")); + await _dialogs.ShowWarningAsync(Translation.Get("Profiles_msg_AllServersOffline")); return; } - _modals.Show(); + await _modals.ShowAsync(); } - private void HandleNoCountryServersAvailable(IReadOnlyCollection candidates) + private async Task HandleNoCountryServersAvailableAsync(IReadOnlyCollection candidates) { if (!candidates.Any()) { - _dialogs.ShowWarning(Translation.Get("Profiles_msg_NoServersAvailable")); + await _dialogs.ShowWarningAsync(Translation.Get("Profiles_msg_NoServersAvailable")); return; } @@ -291,17 +291,17 @@ private void HandleNoCountryServersAvailable(IReadOnlyCollection candida if (!userTierServers.Any()) { - _modals.Show(); + await _modals.ShowAsync(); return; } if (!candidates.OnlineServers().Any()) { - _dialogs.ShowWarning(Translation.Get("Profiles_msg_CountryOffline")); + await _dialogs.ShowWarningAsync(Translation.Get("Profiles_msg_CountryOffline")); return; } - _modals.Show(); + await _modals.ShowAsync(); } private VpnConfig VpnConfig(VpnProtocol protocol) @@ -379,7 +379,7 @@ private async Task Connect(IEnumerable servers, VpnProtocol vpnProtocol) Result credentialsResult = await _vpnCredentialProvider.Credentials(); if (credentialsResult.Failure) { - _dialogs.ShowWarning(Translation.Get("ProfileConnector_msg_MissingAuthCert")); + await _dialogs.ShowWarningAsync(Translation.Get("ProfileConnector_msg_MissingAuthCert")); return; } @@ -416,11 +416,11 @@ private void SwitchSecureCoreMode(bool secureCore) } } - private void HandleNoCustomServerAvailable(Server server) + private async Task HandleNoCustomServerAvailableAsync(Server server) { if (server == null) { - HandleEmptyServer(); + await HandleEmptyServerAsync(); return; } @@ -432,19 +432,19 @@ private void HandleNoCustomServerAvailable(Server server) if (_userStorage.GetUser().MaxTier < server.Tier) { - HandleUserTierTooLow(server); + await HandleUserTierTooLowAsync(server); return; } if (!server.Online()) { - HandleOfflineServer(); + await HandleOfflineServerAsync(); } } - private void HandleEmptyServer() + private async Task HandleEmptyServerAsync() { - _dialogs.ShowWarning(Translation.Get("Servers_msg_CantConnect_Missing")); + await _dialogs.ShowWarningAsync(Translation.Get("Servers_msg_CantConnect_Missing")); } private void HandleDelinquentUser() @@ -453,20 +453,21 @@ private void HandleDelinquentUser() _popupWindows.Show(); } - private void HandleOfflineServer() + private async Task HandleOfflineServerAsync() { - _dialogs.ShowWarning(Translation.Get("Servers_msg_CantConnect_Maintenance")); + await _dialogs.ShowWarningAsync(Translation.Get("Servers_msg_CantConnect_Maintenance")); } - private void HandleUserTierTooLow(Server server) + private async Task HandleUserTierTooLowAsync(Server server) { if (server.IsSecureCore()) { - _modals.Show(); - return; + await _modals.ShowAsync(); + } + else + { + await _modals.ShowAsync(); } - - _modals.Show(); } private IReadOnlyList GetValidServers(IEnumerable servers) diff --git a/src/ProtonVPN.App/Vpn/DisconnectError.cs b/src/ProtonVPN.App/Vpn/DisconnectError.cs index c8e044ae2..6322ec7e6 100644 --- a/src/ProtonVPN.App/Vpn/DisconnectError.cs +++ b/src/ProtonVPN.App/Vpn/DisconnectError.cs @@ -65,6 +65,8 @@ public class DisconnectError : IVpnStateAware, ILogoutAware, ILoggedInAware private string _lastAuthCertificate = string.Empty; private bool _loggedIn; + private VpnStatus? _vpnStatus; + private VpnError _vpnError; public DisconnectError(IModals modals, IAppSettings appSettings, @@ -99,9 +101,17 @@ public DisconnectError(IModals modals, public async Task OnVpnStateChanged(VpnStateChangedEventArgs e) { + if (e.State?.Status == _vpnStatus && e.Error == _vpnError) + { + return; + } + + _vpnStatus = e.State?.Status; + _vpnError = e.Error; + if (_appSettings.NetworkAdapterType == OpenVpnAdapter.Tun && e.Error == VpnError.TapAdapterInUseError) { - _modals.Show(); + await _modals.ShowAsync(); return; } @@ -187,6 +197,9 @@ private async Task ShowModalAsync(VpnStateChangedEventArgs e) switch (error) { + case VpnError.WireGuardAdapterInUseError: + await _modals.ShowAsync(); + break; case VpnError.UserTierTooLowError: await ForceReconnectAsync(); break; @@ -194,7 +207,7 @@ private async Task ShowModalAsync(VpnStateChangedEventArgs e) await ShowDelinquencyPopupViewModelAsync(); break; case VpnError.SessionLimitReached: - ShowMaximumDeviceLimitModalViewModel(); + await ShowMaximumDeviceLimitModalViewModelAsync(); break; case VpnError.NoTapAdaptersError: await OnNoTapAdaptersErrorAsync(error, e.NetworkBlocked); @@ -206,7 +219,7 @@ private async Task ShowModalAsync(VpnStateChangedEventArgs e) await _vpnInfoUpdater.Update(); break; default: - ShowDisconnectErrorModalViewModel(error, e.NetworkBlocked); + await ShowDisconnectErrorModalViewModelAsync(error, e.NetworkBlocked); break; } } @@ -227,7 +240,7 @@ private async Task ShowDelinquencyPopupViewModelAsync() await ForceReconnectAsync(); } - private void ShowMaximumDeviceLimitModalViewModel() + private async Task ShowMaximumDeviceLimitModalViewModelAsync() { bool hasMaxTierPlan = HasMaxTierPlan(); @@ -241,7 +254,7 @@ private void ShowMaximumDeviceLimitModalViewModel() $"Has VPN Plus or Visionary? {hasMaxTierPlan.ToYesNoString()}."); _maximumDeviceLimitModalViewModel.SetPlan(hasMaxTierPlan); - _modals.Show(); + await _modals.ShowAsync(); } private bool HasMaxTierPlan() @@ -272,17 +285,17 @@ private async Task OnNoTapAdaptersErrorAsync(VpnError error, bool networkBlocked else { _logger.Warn("Disconnected with NoTapAdaptersError and no OpenVPN adapter is available. Showing error modal."); - ShowDisconnectErrorModalViewModel(error, networkBlocked); + await ShowDisconnectErrorModalViewModelAsync(error, networkBlocked); } } - private void ShowDisconnectErrorModalViewModel(VpnError error, bool networkBlocked) + private async Task ShowDisconnectErrorModalViewModelAsync(VpnError error, bool networkBlocked) { dynamic options = new ExpandoObject(); options.Error = error; options.NetworkBlocked = networkBlocked; - _modals.Show(options); + await _modals.ShowAsync(options); } private async Task OnServerUnreachableError() @@ -293,7 +306,7 @@ private async Task OnServerUnreachableError() } else if (!_appSettings.DoNotShowEnableSmartProtocolDialog) { - bool? isToChangeProtocolToAuto = _modals.Show(); + bool? isToChangeProtocolToAuto = await _modals.ShowAsync(); if (isToChangeProtocolToAuto.HasValue && isToChangeProtocolToAuto.Value) { _appSettings.OvpnProtocol = "auto"; diff --git a/src/ProtonVPN.App/Windows/AppWindow.xaml.cs b/src/ProtonVPN.App/Windows/AppWindow.xaml.cs index 291fc1b73..da09d96b2 100644 --- a/src/ProtonVPN.App/Windows/AppWindow.xaml.cs +++ b/src/ProtonVPN.App/Windows/AppWindow.xaml.cs @@ -20,6 +20,7 @@ using System; using System.ComponentModel; using System.Reflection; +using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; @@ -119,11 +120,17 @@ public AppWindow( private void SetGenericTooltipBehaviour() { - ToolTipService.ShowDurationProperty.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(int.MaxValue)); - ToolTipService.InitialShowDelayProperty.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(0)); + try + { + ToolTipService.ShowDurationProperty.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(int.MaxValue)); + ToolTipService.InitialShowDelayProperty.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(0)); + } + catch + { + } } - public void Handle(ToggleOverlay message) + public async Task HandleAsync(ToggleOverlay message, CancellationToken cancellationToken) { if (message.Show) { @@ -197,7 +204,7 @@ public Task OnVpnStateChanged(VpnStateChangedEventArgs e) public void TriggerAccountInfoUpdate() { - _eventAggregator.PublishOnUIThread(new UpdateVpnInfoMessage()); + _eventAggregator.PublishOnUIThreadAsync(new UpdateVpnInfoMessage()); } private void UpdateIcon(VpnStatus vpnStatus) @@ -281,7 +288,7 @@ protected override void OnSourceInitialized(EventArgs e) SaveWindowsPlacement(); } - private void TrayIconClick(object sender, MouseEventArgs e) + private async void TrayIconClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { @@ -296,7 +303,7 @@ private void TrayIconClick(object sender, MouseEventArgs e) Activate(); if (_isConnecting) { - Handle(new ToggleOverlay(true)); + await HandleAsync(new ToggleOverlay(true), new CancellationTokenSource().Token); } } } @@ -434,7 +441,7 @@ private void SaveWindowsPlacement() private void PublishWindowState(object sender, EventArgs e) { - _eventAggregator.PublishOnUIThread(new WindowStateMessage(IsActive)); + _eventAggregator.PublishOnUIThreadAsync(new WindowStateMessage(IsActive)); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.App/Windows/BaseWindowViewModel.cs b/src/ProtonVPN.App/Windows/BaseWindowViewModel.cs index 67e48f397..e22329f2e 100644 --- a/src/ProtonVPN.App/Windows/BaseWindowViewModel.cs +++ b/src/ProtonVPN.App/Windows/BaseWindowViewModel.cs @@ -17,6 +17,7 @@ * along with ProtonVPN. If not, see . */ +using System.Threading.Tasks; using System.Windows; using System.Windows.Input; using GalaSoft.MvvmLight.Command; diff --git a/src/ProtonVPN.App/Windows/Popups/BasePopupViewModel.cs b/src/ProtonVPN.App/Windows/Popups/BasePopupViewModel.cs index 8e4fff711..5ff9f53fa 100644 --- a/src/ProtonVPN.App/Windows/Popups/BasePopupViewModel.cs +++ b/src/ProtonVPN.App/Windows/Popups/BasePopupViewModel.cs @@ -17,6 +17,7 @@ * along with ProtonVPN. If not, see . */ +using System.Threading.Tasks; using System.Windows; using ProtonVPN.Core.Windows.Popups; @@ -31,14 +32,14 @@ protected BasePopupViewModel(AppWindow appWindow) Owner = appWindow; } - public override void CloseAction() + public override async void CloseAction() { - TryClose(); + await TryCloseAsync(); } - public void TryClose() + public async Task TryCloseAsync() { - base.TryClose(); + await base.TryCloseAsync(); } } } diff --git a/src/ProtonVPN.App/Windows/Popups/BaseUpgradePlanPopupViewModel.cs b/src/ProtonVPN.App/Windows/Popups/BaseUpgradePlanPopupViewModel.cs index b72c236b3..74d13915f 100644 --- a/src/ProtonVPN.App/Windows/Popups/BaseUpgradePlanPopupViewModel.cs +++ b/src/ProtonVPN.App/Windows/Popups/BaseUpgradePlanPopupViewModel.cs @@ -18,7 +18,7 @@ */ using System.Windows.Input; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Account; namespace ProtonVPN.Windows.Popups @@ -37,10 +37,10 @@ protected BaseUpgradePlanPopupViewModel(ISubscriptionManager subscriptionManager public ICommand UpgradeCommand { get; set; } - protected virtual void UpgradeAction() + protected virtual async void UpgradeAction() { - _subscriptionManager.UpgradeAccountAsync(); - TryClose(); + await _subscriptionManager.UpgradeAccountAsync(); + await TryCloseAsync(); } } } \ No newline at end of file diff --git a/src/ProtonVPN.App/Windows/Popups/Delinquency/DelinquencyPopupViewModel.cs b/src/ProtonVPN.App/Windows/Popups/Delinquency/DelinquencyPopupViewModel.cs index b6f3f44b3..e32010f9b 100644 --- a/src/ProtonVPN.App/Windows/Popups/Delinquency/DelinquencyPopupViewModel.cs +++ b/src/ProtonVPN.App/Windows/Popups/Delinquency/DelinquencyPopupViewModel.cs @@ -19,7 +19,7 @@ using System; using System.Windows.Input; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Config.Url; using ProtonVPN.Core.Servers.Models; using ProtonVPN.Servers.Reconnections; @@ -70,10 +70,10 @@ protected override void OnViewLoaded(object view) public ICommand GoToBillingCommand { get; set; } - protected virtual void GoToBillingAction() + protected virtual async void GoToBillingAction() { _urls.InvoicesUrl.Open(); - TryClose(); + await TryCloseAsync(); } public void SetNoReconnectionData() diff --git a/src/ProtonVPN.App/Windows/Popups/DeveloperTools/DeveloperToolsPopupViewModel.cs b/src/ProtonVPN.App/Windows/Popups/DeveloperTools/DeveloperToolsPopupViewModel.cs index 6e06a6453..d5106b7c8 100644 --- a/src/ProtonVPN.App/Windows/Popups/DeveloperTools/DeveloperToolsPopupViewModel.cs +++ b/src/ProtonVPN.App/Windows/Popups/DeveloperTools/DeveloperToolsPopupViewModel.cs @@ -23,7 +23,7 @@ using System.Linq; using System.Threading.Tasks; using System.Windows.Input; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using Microsoft.Toolkit.Uwp.Notifications; using ProtonVPN.Common.Configuration; using ProtonVPN.Common.Extensions; @@ -125,7 +125,6 @@ private void InitializeCommands() ResetDoNotShowAgainCommand = new RelayCommand(ResetDoNotShowAgainAction); FullToastCommand = new RelayCommand(FullToastAction); BasicToastCommand = new RelayCommand(BasicToastAction); - ClearToastNotificationLogsCommand = new RelayCommand(ClearToastNotificationLogsAction); TriggerIntentionalCrashCommand = new RelayCommand(TriggerIntentionalCrashAction); DisableTlsPinningCommand = new RelayCommand(DisableTlsPinningAction); } @@ -209,34 +208,19 @@ public string NetworkInformation } } - private string _toastNotificationLog; - public string ToastNotificationLog - { - get => _toastNotificationLog; - private set - { - if (value == _toastNotificationLog) - { - return; - } - _toastNotificationLog = value; - NotifyOfPropertyChange(); - } - } - - private void OpenModalAction() + private async void OpenModalAction() { if (ModalsByName.TryGetValue(SelectedModalName, out IModal modal)) { - _modalOpener.Show(type: modal.GetType()); + await _modalOpener.ShowAsync(type: modal.GetType()); } } - private void OpenAllModalsAction() + private async void OpenAllModalsAction() { foreach (KeyValuePair modalByName in ModalsByName) { - _modalOpener.Show(type: modalByName.Value.GetType()); + await _modalOpener.ShowAsync(type: modalByName.Value.GetType()); } } @@ -333,29 +317,6 @@ private void BasicToastAction() Translation.Get("Dialogs_Delinquency_Subtitle")); } - public void OnToastNotificationUserAction(NotificationUserAction data) - { - string toastNotificationLog = $"Date: {DateTime.Now}" + Environment.NewLine; - toastNotificationLog += $"Arguments: {data.Arguments.Count}" + Environment.NewLine; - foreach (KeyValuePair argument in data.Arguments) - { - toastNotificationLog += $" {argument.Key}: {argument.Value}" + Environment.NewLine; - } - toastNotificationLog += $"User inputs: {data.UserInputs.Count}" + Environment.NewLine; - foreach (KeyValuePair userInput in data.UserInputs) - { - toastNotificationLog += $" {userInput.Key}: {userInput.Value}" + Environment.NewLine; - } - toastNotificationLog += "--------------------" + Environment.NewLine; - - ToastNotificationLog = toastNotificationLog + ToastNotificationLog; - } - - private void ClearToastNotificationLogsAction() - { - ToastNotificationLog = string.Empty; - } - private void TriggerIntentionalCrashAction() { throw new StackOverflowException("Intentional crash test"); diff --git a/src/ProtonVPN.App/Windows/Popups/Offers/OfferPopupViewModel.cs b/src/ProtonVPN.App/Windows/Popups/Offers/OfferPopupViewModel.cs index 2e837e14d..66aeb1059 100644 --- a/src/ProtonVPN.App/Windows/Popups/Offers/OfferPopupViewModel.cs +++ b/src/ProtonVPN.App/Windows/Popups/Offers/OfferPopupViewModel.cs @@ -18,7 +18,7 @@ */ using System.Windows.Input; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Account; using ProtonVPN.Announcements.Contracts; using ProtonVPN.Common.Extensions; @@ -90,7 +90,7 @@ public OfferPopupViewModel( _webAuthenticator = webAuthenticator; ButtonCommand = new RelayCommand(ButtonAction); - FullScreenImageButtonCommand = new RelayCommand(OpenFullScreeImageButtonLink); + FullScreenImageButtonCommand = new RelayCommand(OpenFullScreenImageButtonLink); } private void OnPanelChange(Panel value) @@ -120,7 +120,7 @@ private void SetFullScreenImage(Panel panel) } } - private async void OpenFullScreeImageButtonLink() + private async void OpenFullScreenImageButtonLink() { if (Panel.Button.Action == "OpenURL") { @@ -134,15 +134,15 @@ private async void OpenFullScreeImageButtonLink() _logger.Error($"Unsupported button action {Panel.Button.Action}"); } - TryClose(); + await TryCloseAsync(); } - protected virtual void ButtonAction() + protected virtual async void ButtonAction() { if (_buttonUrl != null) { _buttonUrl.Open(); - TryClose(); + await TryCloseAsync(); } } } diff --git a/src/ProtonVPN.App/Windows/Popups/PopupWindows.cs b/src/ProtonVPN.App/Windows/Popups/PopupWindows.cs index 1ab552f1c..fa2e8e3b9 100644 --- a/src/ProtonVPN.App/Windows/Popups/PopupWindows.cs +++ b/src/ProtonVPN.App/Windows/Popups/PopupWindows.cs @@ -52,7 +52,7 @@ public void Show(dynamic options = null) where T : IPopupWindow { if (!IsOpen()) { - _windowManager.ShowWindow(screen); + _windowManager.ShowWindowAsync(screen); } }); } @@ -72,28 +72,28 @@ private IEnumerable GetAll() return Application.Current.Windows.OfType(); } - public void Close() where T : IPopupWindow + public async void Close() where T : IPopupWindow { - _container.Resolve().TryClose(); + await _container.Resolve().TryCloseAsync(); } - public void CloseAll() + public async void CloseAll() { IEnumerable windows = _container.Resolve>(); foreach (IPopupWindow window in windows) { - window.TryClose(); + await window.TryCloseAsync(); } } public void Show(Type type, dynamic options = null) { IPopupWindow screen = (IPopupWindow)_container.Resolve(type); - _scheduler.Schedule(() => + _scheduler.Schedule(async () => { if (!IsOpen(type)) { - _windowManager.ShowWindow(screen); + await _windowManager.ShowWindowAsync(screen); } }); } diff --git a/src/ProtonVPN.App/Windows/Popups/Rebranding/RebrandingPopupViewModel.cs b/src/ProtonVPN.App/Windows/Popups/Rebranding/RebrandingPopupViewModel.cs index d789cec41..078e913aa 100644 --- a/src/ProtonVPN.App/Windows/Popups/Rebranding/RebrandingPopupViewModel.cs +++ b/src/ProtonVPN.App/Windows/Popups/Rebranding/RebrandingPopupViewModel.cs @@ -18,7 +18,7 @@ */ using System.Windows.Input; -using GalaSoft.MvvmLight.CommandWpf; +using GalaSoft.MvvmLight.Command; using ProtonVPN.Config.Url; namespace ProtonVPN.Windows.Popups.Rebranding diff --git a/src/ProtonVPN.App/Windows/TrayIcon.cs b/src/ProtonVPN.App/Windows/TrayIcon.cs index 351b1e738..bd4fd37ba 100644 --- a/src/ProtonVPN.App/Windows/TrayIcon.cs +++ b/src/ProtonVPN.App/Windows/TrayIcon.cs @@ -30,6 +30,7 @@ using System.Windows.Threading; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.AppLogs; +using System.Threading; namespace ProtonVPN.Windows { @@ -167,7 +168,7 @@ public void Hide([CallerFilePath] string sourceFilePath = "", _nIcon.Icon = _notConnected.Value(); } - public void Handle(ShowNotificationMessage message) + public async Task HandleAsync(ShowNotificationMessage message, CancellationToken cancellationToken) { ShowBalloon(message.Text); } diff --git a/src/ProtonVPN.App/appsettings.json b/src/ProtonVPN.App/appsettings.json new file mode 100644 index 000000000..0e2d9328d --- /dev/null +++ b/src/ProtonVPN.App/appsettings.json @@ -0,0 +1,3 @@ +{ + "ClientSettingsProvider.ServiceUri": "" +} \ No newline at end of file diff --git a/src/ProtonVPN.CalloutDriver/ProtonVPN.CalloutDriver.inf b/src/ProtonVPN.CalloutDriver/ProtonVPN.CalloutDriver.inf index e419e3983..aeac9f12b 100644 --- a/src/ProtonVPN.CalloutDriver/ProtonVPN.CalloutDriver.inf +++ b/src/ProtonVPN.CalloutDriver/ProtonVPN.CalloutDriver.inf @@ -48,7 +48,7 @@ LoadOrderGroup = NDIS Dependencies = TCPIP ; Load after TCPIP.sys [Strings] -ManufacturerName = "Proton Technologies AG" +ManufacturerName = "Proton AG" DiskName = "ProtonVPN Callout Driver Installation Disk" ServiceName = "ProtonVPNCallout" ServiceDisplayName = "ProtonVPN Callout" diff --git a/src/ProtonVPN.CalloutDriver/Resources/VersionInfo.rc b/src/ProtonVPN.CalloutDriver/Resources/VersionInfo.rc index 4aecf547f87947ba46eabfb32ef61bcc06436a79..75ba279106df57005ea1309583d43029ed17ce63 100644 GIT binary patch delta 41 vcmbOy{7PuU8rI28>@t&M*f=)7V$EUXH)c>^2w*5;$Y&@4;=IlE?D9+i7G?{P delta 93 zcmaDQG*5WL8dlj5hE#@Rh75*0hJ1z`AWmn<1d0?hC@?rOxKIAbCb{_pYYC&K0Z<@- Vp$Mp;1c>v1JRBM~d$Y?k0RT6@6?Fgr diff --git a/src/ProtonVPN.Common/Configuration/Config.cs b/src/ProtonVPN.Common/Configuration/Config.cs index 047258d85..677745dd2 100644 --- a/src/ProtonVPN.Common/Configuration/Config.cs +++ b/src/ProtonVPN.Common/Configuration/Config.cs @@ -39,6 +39,9 @@ public class Config : IConfiguration [Required] public string AppExePath { get; set; } + [Required] + public string AppLauncherExePath { get; set; } + [Required] public string AppLogFolder { get; set; } @@ -242,5 +245,9 @@ public class Config : IConfiguration public TimeSpan AlternativeRoutingCheckInterval { get; set; } public string AutoLoginBaseUrl { get; set; } + + public string WintunDriverPath { get; set; } + public string WintunAdapterName { get; set; } + public string InstallActionsPath { get; set; } } } \ No newline at end of file diff --git a/src/ProtonVPN.Common/Configuration/IConfiguration.cs b/src/ProtonVPN.Common/Configuration/IConfiguration.cs index d07144cf9..787ba6b2d 100644 --- a/src/ProtonVPN.Common/Configuration/IConfiguration.cs +++ b/src/ProtonVPN.Common/Configuration/IConfiguration.cs @@ -38,6 +38,9 @@ public interface IConfiguration [Required] string AppExePath { get; set; } + [Required] + string AppLauncherExePath { get; set; } + [Required] string AppLogFolder { get; set; } @@ -241,5 +244,9 @@ public interface IConfiguration TimeSpan AlternativeRoutingCheckInterval { get; set; } public string AutoLoginBaseUrl { get; set; } + + public string WintunDriverPath { get; set; } + public string WintunAdapterName { get; set; } + public string InstallActionsPath { get; set; } } } \ No newline at end of file diff --git a/src/ProtonVPN.Common/Configuration/OpenVpnConfig.cs b/src/ProtonVPN.Common/Configuration/OpenVpnConfig.cs index a445ccd5d..adecb5f34 100644 --- a/src/ProtonVPN.Common/Configuration/OpenVpnConfig.cs +++ b/src/ProtonVPN.Common/Configuration/OpenVpnConfig.cs @@ -47,6 +47,9 @@ public class OpenVpnConfig [Required] public string TapAdapterId { get; set; } + [Required] + public string TapInstallerDir { get; set; } + [Required] public string TapAdapterDescription { get; set; } diff --git a/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs b/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs index e3ea9084e..bc1c59a52 100644 --- a/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs +++ b/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs @@ -59,6 +59,8 @@ public IConfiguration Value() AppExePath = Path.Combine(baseFolder, "ProtonVPN.exe"), + AppLauncherExePath = Path.Combine(Path.GetDirectoryName(baseFolder) ?? string.Empty, "ProtonVPN.Launcher.exe"), + AppLogFolder = appLogFolder, AppLogDefaultFullFilePath = Path.Combine(appLogFolder, "app-logs.txt"), @@ -178,12 +180,11 @@ public IConfiguration Value() BfeArticleUrl = "https://protonvpn.com/support/how-to-enable-the-base-filtering-engine", PasswordResetUrl = "https://account.protonvpn.com/reset-password", ForgetUsernameUrl = "https://account.protonvpn.com/forgot-username", - OldUpdateUrl = "https://protonvpn.com/download/win-update.json", UpdateUrl = "https://protonvpn.com/download/windows-releases.json", DownloadUrl = "https://protonvpn.com/download", ApiUrl = "https://api.protonvpn.ch", TlsReportUrl = "https://reports.protonmail.ch/reports/tls", - HelpUrl = "https://www.protonvpn.com/support", + HelpUrl = "https://protonvpn.com/support/", AccountUrl = "https://account.protonvpn.com/dashboard", AboutSecureCoreUrl = "https://protonvpn.com/support/secure-core-vpn", RegisterUrl = "https://account.protonvpn.com/signup", @@ -217,7 +218,7 @@ public IConfiguration Value() OpenVpn = { - ExePath = Path.Combine(resourcesFolder, $"{osBits}-bit", "openvpn.exe"), + ExePath = Path.Combine(resourcesFolder, "openvpn.exe"), ConfigPath = Path.Combine(resourcesFolder, "config.ovpn"), @@ -241,6 +242,8 @@ public IConfiguration Value() TapAdapterId = "tapprotonvpn", + TapInstallerDir = Path.Combine(resourcesFolder, "tap"), + TapAdapterDescription = "TAP-ProtonVPN Windows Adapter V9", TunAdapterId = "wintun", @@ -351,6 +354,12 @@ public IConfiguration Value() AlternativeRoutingCheckInterval = TimeSpan.FromMinutes(30), AutoLoginBaseUrl = "https://account.proton.me/lite", + + WintunDriverPath = Path.Combine(resourcesFolder, "wintun.dll"), + + WintunAdapterName = "ProtonVPN TUN", + + InstallActionsPath = Path.Combine(baseFolder, "ProtonVPN.InstallActions.dll"), }; } } diff --git a/src/ProtonVPN.Common/Configuration/UrlConfig.cs b/src/ProtonVPN.Common/Configuration/UrlConfig.cs index 6998090b2..d586cad1d 100644 --- a/src/ProtonVPN.Common/Configuration/UrlConfig.cs +++ b/src/ProtonVPN.Common/Configuration/UrlConfig.cs @@ -32,9 +32,6 @@ public class UrlConfig [Required] public string ForgetUsernameUrl { get; set; } - [Required] - public string OldUpdateUrl { get; set; } - [Required] public string UpdateUrl { get; set; } diff --git a/src/ProtonVPN.Common/Helpers/PathProvider.cs b/src/ProtonVPN.Common/Helpers/PathProvider.cs new file mode 100644 index 000000000..4845a2c73 --- /dev/null +++ b/src/ProtonVPN.Common/Helpers/PathProvider.cs @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.Common.Helpers +{ + public class PathProvider + { + public static string GetResourcesPath(string binaryName) + { + return $"Resources\\{binaryName}"; + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Core/Settings/IServiceSettingsStateAware.cs b/src/ProtonVPN.Common/Logging/Categorization/Categories/ProcessCommunicationLogCategory.cs similarity index 80% rename from src/ProtonVPN.Core/Settings/IServiceSettingsStateAware.cs rename to src/ProtonVPN.Common/Logging/Categorization/Categories/ProcessCommunicationLogCategory.cs index da97b338f..a8a0fec2c 100644 --- a/src/ProtonVPN.Core/Settings/IServiceSettingsStateAware.cs +++ b/src/ProtonVPN.Common/Logging/Categorization/Categories/ProcessCommunicationLogCategory.cs @@ -16,11 +16,10 @@ * You should have received a copy of the GNU General Public License * along with ProtonVPN. If not, see . */ - -namespace ProtonVPN.Core.Settings +namespace ProtonVPN.Common.Logging.Categorization.Categories { - public interface IServiceSettingsStateAware + public class ProcessCommunicationLogCategory : ILogCategory { - void OnServiceSettingsStateChanged(ServiceSettingsStateChangedEventArgs e); + public string Category => "PROCESS.COMM"; } } \ No newline at end of file diff --git a/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationClientStartLog.cs b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationClientStartLog.cs new file mode 100644 index 000000000..77cafee9d --- /dev/null +++ b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationClientStartLog.cs @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using ProtonVPN.Common.Logging.Categorization.Categories; + +namespace ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs +{ + public class ProcessCommunicationClientStartLog : LogEventBase + { + protected override string Event => "CLIENT_START"; + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationClientStopLog.cs b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationClientStopLog.cs new file mode 100644 index 000000000..3c5affaea --- /dev/null +++ b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationClientStopLog.cs @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using ProtonVPN.Common.Logging.Categorization.Categories; + +namespace ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs +{ + public class ProcessCommunicationClientStopLog : LogEventBase + { + protected override string Event => "CLIENT_STOP"; + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationErrorLog.cs b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationErrorLog.cs new file mode 100644 index 000000000..3a1e82b00 --- /dev/null +++ b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationErrorLog.cs @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using ProtonVPN.Common.Logging.Categorization.Categories; + +namespace ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs +{ + public class ProcessCommunicationErrorLog : LogEventBase + { + protected override string Event => "ERROR"; + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationLog.cs b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationLog.cs new file mode 100644 index 000000000..715e70584 --- /dev/null +++ b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationLog.cs @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using ProtonVPN.Common.Logging.Categorization.Categories; + +namespace ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs +{ + public class ProcessCommunicationLog : LogEventBase + { + protected override string Event => null; + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationServerStartLog.cs b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationServerStartLog.cs new file mode 100644 index 000000000..cd5f4ad80 --- /dev/null +++ b/src/ProtonVPN.Common/Logging/Categorization/Events/ProcessCommunicationLogs/ProcessCommunicationServerStartLog.cs @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ +using ProtonVPN.Common.Logging.Categorization.Categories; + +namespace ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs +{ + public class ProcessCommunicationServerStartLog : LogEventBase + { + protected override string Event => "SERVER_START"; + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Networking/OpenVpnAdapter.cs b/src/ProtonVPN.Common/Networking/OpenVpnAdapter.cs index 840b361b6..918e775c0 100644 --- a/src/ProtonVPN.Common/Networking/OpenVpnAdapter.cs +++ b/src/ProtonVPN.Common/Networking/OpenVpnAdapter.cs @@ -17,11 +17,17 @@ * along with ProtonVPN. If not, see . */ +using System.Runtime.Serialization; + namespace ProtonVPN.Common.Networking { + [DataContract] public enum OpenVpnAdapter { + [EnumMember] Tap, + + [EnumMember] Tun } } \ No newline at end of file diff --git a/src/ProtonVPN.Common/OS/Net/PInvoke.cs b/src/ProtonVPN.Common/OS/Net/PInvoke.cs index 93feac4b3..8509fa901 100644 --- a/src/ProtonVPN.Common/OS/Net/PInvoke.cs +++ b/src/ProtonVPN.Common/OS/Net/PInvoke.cs @@ -19,14 +19,15 @@ using System; using System.Runtime.InteropServices; +using ProtonVPN.Common.Helpers; namespace ProtonVPN.Common.Os.Net { internal class PInvoke { - private const string BinaryName = "ProtonVPN.NetworkUtil.dll"; + private const string BINARY_NAME = "ProtonVPN.NetworkUtil.dll"; - private static string BinaryPath => $"{(Environment.Is64BitOperatingSystem ? "x64" : "x86")}\\{BinaryName}"; + private static string BinaryPath => PathProvider.GetResourcesPath(BINARY_NAME); static PInvoke() { @@ -41,7 +42,7 @@ static PInvoke() private static extern IntPtr LoadLibrary(string path); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "NetworkUtilEnableIPv6OnAllAdapters", CallingConvention = CallingConvention.Cdecl)] public static extern uint EnableIPv6OnAllAdapters( @@ -49,7 +50,7 @@ public static extern uint EnableIPv6OnAllAdapters( [MarshalAs(UnmanagedType.LPWStr)] string excludeId); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "NetworkUtilDisableIPv6OnAllAdapters", CallingConvention = CallingConvention.Cdecl)] public static extern uint DisableIPv6OnAllAdapters( @@ -57,7 +58,7 @@ public static extern uint DisableIPv6OnAllAdapters( [MarshalAs(UnmanagedType.LPWStr)] string excludeId); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "NetworkUtilEnableIPv6", CallingConvention = CallingConvention.Cdecl)] public static extern uint EnableIPv6( @@ -65,7 +66,7 @@ public static extern uint EnableIPv6( [MarshalAs(UnmanagedType.LPWStr)] string interfaceId); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "GetBestInterfaceIp", CallingConvention = CallingConvention.Cdecl)] public static extern uint GetBestInterfaceIp( @@ -73,13 +74,13 @@ public static extern uint GetBestInterfaceIp( [MarshalAs(UnmanagedType.LPWStr)] string excludedIfaceHwid); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "SetLowestTapMetric", CallingConvention = CallingConvention.Cdecl)] public static extern uint SetLowestTapMetric(uint index); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "RestoreDefaultTapMetric", CallingConvention = CallingConvention.Cdecl)] public static extern uint RestoreDefaultTapMetric(uint index); diff --git a/src/ProtonVPN.Common/OS/Processes/SystemProcesses.cs b/src/ProtonVPN.Common/OS/Processes/SystemProcesses.cs index a7bce8f87..5d7f008d8 100644 --- a/src/ProtonVPN.Common/OS/Processes/SystemProcesses.cs +++ b/src/ProtonVPN.Common/OS/Processes/SystemProcesses.cs @@ -102,7 +102,11 @@ public void Open(string filename) { try { - System.Diagnostics.Process.Start(filename); + System.Diagnostics.Process.Start(new ProcessStartInfo + { + FileName = filename, + UseShellExecute = true + }); } catch (Win32Exception) { diff --git a/src/ProtonVPN.Common/OS/Registry/CurrentUserStartupRecord.cs b/src/ProtonVPN.Common/OS/Registry/CurrentUserStartupRecord.cs index 7bf7d822e..5b5f407e1 100644 --- a/src/ProtonVPN.Common/OS/Registry/CurrentUserStartupRecord.cs +++ b/src/ProtonVPN.Common/OS/Registry/CurrentUserStartupRecord.cs @@ -38,7 +38,7 @@ public CurrentUserStartupRecord(ILogger logger, IConfiguration appConfig) { _logger = logger; _name = appConfig.AppName; - _command = appConfig.AppExePath; + _command = appConfig.AppLauncherExePath; } public bool Exists() diff --git a/src/ProtonVPN.Common/OS/Services/ConcurrentService.cs b/src/ProtonVPN.Common/OS/Services/ConcurrentService.cs index 150f6d553..b6701ed3b 100644 --- a/src/ProtonVPN.Common/OS/Services/ConcurrentService.cs +++ b/src/ProtonVPN.Common/OS/Services/ConcurrentService.cs @@ -43,9 +43,9 @@ public ConcurrentService(IService service, IServiceEnabler serviceEnabler) public string Name => Service.Name; - public bool Running() => Service.Running(); + public bool IsRunning() => Service.Running(); - public bool Enabled() => Service.Enabled(); + public bool IsEnabled() => Service.Enabled(); public void Enable() => Service.Enable(); @@ -86,7 +86,7 @@ private async Task StartAction(CancellationToken cancellationToken) return Result.Fail(new FileNotFoundException($"Service {Service.Name} is not installed.")); } - Result result = _serviceEnabler.GetServiceEnabledResult(Service); + Result result = await _serviceEnabler.GetServiceEnabledResultAsync(Service); if (result.Failure) { return result; diff --git a/src/ProtonVPN.Common/OS/Services/IConcurrentService.cs b/src/ProtonVPN.Common/OS/Services/IConcurrentService.cs index 6372fe84f..7b89f6e19 100644 --- a/src/ProtonVPN.Common/OS/Services/IConcurrentService.cs +++ b/src/ProtonVPN.Common/OS/Services/IConcurrentService.cs @@ -26,14 +26,11 @@ public interface IConcurrentService { string Name { get; } - bool Running(); - - bool Enabled(); - + bool IsEnabled(); void Enable(); + bool IsRunning(); Task StartAsync(); - Task StopAsync(); } } \ No newline at end of file diff --git a/src/ProtonVPN.Common/OS/Services/ISafeServiceAction.cs b/src/ProtonVPN.Common/OS/Services/ISafeServiceAction.cs index 393730d8a..d3f7375f6 100644 --- a/src/ProtonVPN.Common/OS/Services/ISafeServiceAction.cs +++ b/src/ProtonVPN.Common/OS/Services/ISafeServiceAction.cs @@ -26,5 +26,6 @@ namespace ProtonVPN.Common.OS.Services public interface ISafeServiceAction { Task InvokeServiceAction(Func> action); + Task StartIfStoppedAsync(); } } \ No newline at end of file diff --git a/src/ProtonVPN.Common/OS/Services/IServiceEnabler.cs b/src/ProtonVPN.Common/OS/Services/IServiceEnabler.cs index e663ff007..7b13b5f02 100644 --- a/src/ProtonVPN.Common/OS/Services/IServiceEnabler.cs +++ b/src/ProtonVPN.Common/OS/Services/IServiceEnabler.cs @@ -17,12 +17,13 @@ * along with ProtonVPN. If not, see . */ +using System.Threading.Tasks; using ProtonVPN.Common.Abstract; namespace ProtonVPN.Common.OS.Services { public interface IServiceEnabler { - Result GetServiceEnabledResult(IService service); + Task GetServiceEnabledResultAsync(IService service); } } \ No newline at end of file diff --git a/src/ProtonVPN.Common/OS/Services/ServiceControllerExtensions.cs b/src/ProtonVPN.Common/OS/Services/ServiceControllerExtensions.cs index b72100f10..1a624a2e5 100644 --- a/src/ProtonVPN.Common/OS/Services/ServiceControllerExtensions.cs +++ b/src/ProtonVPN.Common/OS/Services/ServiceControllerExtensions.cs @@ -54,7 +54,9 @@ public static async Task WaitForStatusAsync(this ServiceController controller, S } if (controller.Status != desiredStatus) + { throw new InvalidOperationException($"Service status changed to {controller.Status}"); + } } } } diff --git a/src/ProtonVPN.Common/ProtonVPN.Common.csproj b/src/ProtonVPN.Common/ProtonVPN.Common.csproj index dd996892c..bc270c175 100644 --- a/src/ProtonVPN.Common/ProtonVPN.Common.csproj +++ b/src/ProtonVPN.Common/ProtonVPN.Common.csproj @@ -1,347 +1,28 @@ - - - + - Debug - AnyCPU - {03B8E43C-5680-4803-A745-0A104FE6620C} + net6.0-windows Library - Properties - ProtonVPN.Common - ProtonVPN.Common - v4.7.2 - 512 - - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - latest - true - - - pdbonly - true + false ..\bin\ - TRACE - prompt - 4 - latest + false true - - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {B7B19A7B-5A20-4690-81F4-83002CA064FB} - ProtonVPN.SourceGenerators - + - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - + @@ -350,6 +31,7 @@ 2.0.12 + 13.0.1 @@ -359,6 +41,20 @@ 3.12.3 + + + + + + all + + + + + + + + + - \ No newline at end of file diff --git a/src/ProtonVPN.Common/Service/ErrorHandler.cs b/src/ProtonVPN.Common/Service/ErrorHandler.cs deleted file mode 100644 index 9e46a008a..000000000 --- a/src/ProtonVPN.Common/Service/ErrorHandler.cs +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.IO; -using System.ServiceModel.Channels; -using System.ServiceModel.Dispatcher; -using ProtonVPN.Common.Extensions; -using ProtonVPN.Common.Logging; -using ProtonVPN.Common.Logging.Categorization.Events.AppServiceLogs; -using Sentry; -using Sentry.Protocol; - -namespace ProtonVPN.Common.Service -{ - public class ErrorHandler : IErrorHandler - { - private readonly ILogger _logger; - - public ErrorHandler(ILogger logger) - { - _logger = logger; - } - - public bool HandleError(Exception e) - { - if (e.GetBaseException() is PipeException pipeException && pipeException.Message.Contains("0x6d)")) - { - _logger.Info("The service communication " + - "pipe has been ended, most likely because the service is shutting down."); - - return false; - } - - _logger.Error(e.CombinedMessage()); - - SentrySdk.WithScope(scope => - { - scope.SetTag("captured_in", "Service_ChannelDispatcher_ErrorHandler"); - scope.Level = SentryLevel.Warning; - SentrySdk.CaptureException(e); - }); - - return false; - } - - public void ProvideFault(Exception error, MessageVersion version, ref Message fault) - { - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Service/ErrorLoggingBehavior.cs b/src/ProtonVPN.Common/Service/ErrorLoggingBehavior.cs deleted file mode 100644 index 2afc55f26..000000000 --- a/src/ProtonVPN.Common/Service/ErrorLoggingBehavior.cs +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.ObjectModel; -using System.ServiceModel; -using System.ServiceModel.Channels; -using System.ServiceModel.Description; -using System.ServiceModel.Dispatcher; -using ProtonVPN.Common.Logging; - -namespace ProtonVPN.Common.Service -{ - public class ErrorLoggingBehavior : IServiceBehavior - { - private readonly ILogger _logger; - - public ErrorLoggingBehavior(ILogger logger) - { - _logger = logger; - } - - public void AddBindingParameters( - ServiceDescription serviceDescription, - ServiceHostBase serviceHostBase, - Collection endpoints, - BindingParameterCollection bindingParameters) - { - } - - public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) - { - foreach (var channelDispatcherBase in serviceHostBase.ChannelDispatchers) - { - var channelDispatcher = (ChannelDispatcher) channelDispatcherBase; - channelDispatcher.ErrorHandlers.Add(new ErrorHandler(_logger)); - } - } - - public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) - { - } - } -} diff --git a/src/ProtonVPN.Common/Service/Validation/ParameterValidatingBehavior.cs b/src/ProtonVPN.Common/Service/Validation/ParameterValidatingBehavior.cs deleted file mode 100644 index 0f7f98232..000000000 --- a/src/ProtonVPN.Common/Service/Validation/ParameterValidatingBehavior.cs +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.ServiceModel; -using System.ServiceModel.Channels; -using System.ServiceModel.Description; -using System.ServiceModel.Dispatcher; - -namespace ProtonVPN.Common.Service.Validation -{ - public class ParameterValidatingBehavior : IServiceBehavior - { - private readonly ValidatingParameterInspector _parameterInspector; - - public ParameterValidatingBehavior(ValidatingParameterInspector parameterInspector) - { - _parameterInspector = parameterInspector; - } - - public void AddBindingParameters( - ServiceDescription serviceDescription, - ServiceHostBase serviceHostBase, - Collection endpoints, - BindingParameterCollection bindingParameters) - { - } - - public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) - { - IEnumerable operations = - from dispatcher in serviceHostBase.ChannelDispatchers.Cast() - from endpoint in dispatcher.Endpoints - from operation in endpoint.DispatchRuntime.Operations - select operation; - - operations.ToList().ForEach(operation => operation.ParameterInspectors.Add(_parameterInspector)); - } - - public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) - { - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Service/Validation/ValidatableObjectValidator.cs b/src/ProtonVPN.Common/Service/Validation/ValidatableObjectValidator.cs deleted file mode 100644 index 031cfe233..000000000 --- a/src/ProtonVPN.Common/Service/Validation/ValidatableObjectValidator.cs +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using ProtonVPN.Common.Configuration; - -namespace ProtonVPN.Common.Service.Validation -{ - public class ValidatableObjectValidator : IObjectValidator - { - public const string ServerValidationPublicKeyValue = "ServerValidationPublicKey"; - - private readonly IConfiguration _config; - - public ValidatableObjectValidator(IConfiguration config) - { - _config = config; - } - - public IEnumerable Validate(object input) - { - if (input is IValidatableObject validatableInput) - { - Dictionary items = new Dictionary - { - { ServerValidationPublicKeyValue, _config.ServerValidationPublicKey } - }; - return validatableInput.Validate(new ValidationContext(input, null, items)); - } - - return Enumerable.Empty(); - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Service/Validation/ValidatingParameterInspector.cs b/src/ProtonVPN.Common/Service/Validation/ValidatingParameterInspector.cs deleted file mode 100644 index 0a6fa8384..000000000 --- a/src/ProtonVPN.Common/Service/Validation/ValidatingParameterInspector.cs +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.ServiceModel; -using System.ServiceModel.Dispatcher; - -namespace ProtonVPN.Common.Service.Validation -{ - public class ValidatingParameterInspector : IParameterInspector - { - private readonly IEnumerable _validators; - - public ValidatingParameterInspector(IEnumerable validators) - { - _validators = validators; - } - - public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState) - { - } - - public object BeforeCall(string operationName, object[] inputs) - { - List validationResults = new(); - - foreach (object input in inputs) - { - foreach (IObjectValidator validator in _validators) - { - IEnumerable results = validator.Validate(input); - validationResults.AddRange(results.Where(result => result != null)); - } - } - - if (validationResults.Count > 0) - { - throw new FaultException(operationName + " operation failed: " + - validationResults.FirstOrDefault()?.ErrorMessage); - } - - return null; - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Common/ServiceModel/Server/InprocHostFactory.cs b/src/ProtonVPN.Common/ServiceModel/Server/InprocHostFactory.cs deleted file mode 100644 index 4e7e837d7..000000000 --- a/src/ProtonVPN.Common/ServiceModel/Server/InprocHostFactory.cs +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using ProtonVPN.Common.Helpers; -using System; -using System.ServiceModel; - -namespace ProtonVPN.Common.ServiceModel.Server -{ - public class InprocHostFactory - { - /// - /// Creates service host listening to net.pipe://localhost/serviceEndpoint/contractAddress> - /// - /// Interface of service - /// Instance of service object - /// endpoint name of the hosting process - /// contract address - public SafeServiceHost Create(T serviceInstance, string serviceEndpoint, string contractAddress) where T : class - { - Ensure.NotNull(serviceInstance, nameof(serviceInstance)); - Ensure.NotEmpty(serviceEndpoint, nameof(serviceEndpoint)); - Ensure.NotEmpty(contractAddress, nameof(contractAddress)); - - var serviceHost = new SafeServiceHost( - serviceInstance, - new Uri($"net.pipe://localhost/{serviceEndpoint}")); - - serviceHost.AddServiceEndpoint( - typeof(T), - BuildNamedPipe(), - contractAddress); - - return serviceHost; - } - - /// - /// Creates service host listening to net.pipe://localhost/endpoint> - /// - /// Class of service - /// contract address - public SafeServiceHost Create(string endpoint) where T : class - { - Ensure.NotEmpty(endpoint, nameof(endpoint)); - return new SafeServiceHost(typeof(T), new Uri($"net.pipe://localhost/{endpoint}")); - } - - /// - /// Builds named pipe. By default creates default pipe binding - /// with ReceiveTimoue = TimeSpan.MaxValue - /// - /// - protected virtual NetNamedPipeBinding BuildNamedPipe() => new NetNamedPipeBinding - { - ReceiveTimeout = TimeSpan.MaxValue - }; - } -} diff --git a/src/ProtonVPN.Common/ServiceModel/Server/SafeServiceHost.cs b/src/ProtonVPN.Common/ServiceModel/Server/SafeServiceHost.cs deleted file mode 100644 index 02ab69e81..000000000 --- a/src/ProtonVPN.Common/ServiceModel/Server/SafeServiceHost.cs +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.ServiceModel; - -namespace ProtonVPN.Common.ServiceModel.Server -{ - public class SafeServiceHost : ServiceHost, IDisposable - { - public SafeServiceHost(Type serviceType, params Uri[] baseAddresses) : base(serviceType, baseAddresses) - { - } - - public SafeServiceHost(object singletonInstance, params Uri[] baseAddresses) : base(singletonInstance, baseAddresses) - { - } - - protected SafeServiceHost() - { - } - - public void Dispose() - { - try - { - if (State != CommunicationState.Faulted) - { - Close(); - } - else - { - Abort(); - } - } - catch (CommunicationException) - { - Abort(); - } - catch (TimeoutException) - { - Abort(); - } - catch (Exception) - { - Abort(); - throw; - } - } - } -} diff --git a/src/ProtonVPN.Common/Vpn/VpnError.cs b/src/ProtonVPN.Common/Vpn/VpnError.cs index 6b22ba12f..db59aa53f 100644 --- a/src/ProtonVPN.Common/Vpn/VpnError.cs +++ b/src/ProtonVPN.Common/Vpn/VpnError.cs @@ -45,6 +45,7 @@ public enum VpnError ServerUnreachable, AdapterTimeoutError, ClientKeyMismatch, + WireGuardAdapterInUseError, GuestSession = 86100, CertificateExpired = 86101, diff --git a/src/ProtonVPN.Core/Auth/AuthCertificateManager.cs b/src/ProtonVPN.Core/Auth/AuthCertificateManager.cs index 19cb8d0d3..47e257b99 100644 --- a/src/ProtonVPN.Core/Auth/AuthCertificateManager.cs +++ b/src/ProtonVPN.Core/Auth/AuthCertificateManager.cs @@ -58,7 +58,8 @@ public AuthCertificateManager( eventAggregator.Subscribe(this); } - public async void Handle(WindowStateMessage message) + // [.NET Migration] TO DO: Use CancellationToken + public async Task HandleAsync(WindowStateMessage message, CancellationToken cancellationToken) { if (message.Active) { diff --git a/src/ProtonVPN.Core/Modals/IDialogs.cs b/src/ProtonVPN.Core/Modals/IDialogs.cs index d529fe523..6a28134fd 100644 --- a/src/ProtonVPN.Core/Modals/IDialogs.cs +++ b/src/ProtonVPN.Core/Modals/IDialogs.cs @@ -17,16 +17,18 @@ * along with ProtonVPN. If not, see . */ +using System.Threading.Tasks; + namespace ProtonVPN.Core.Modals { public interface IDialogs { - bool? ShowWarning(string message); + Task ShowWarningAsync(string message); - bool? ShowWarning(string message, string buttonLabel); + Task ShowWarningAsync(string message, string buttonLabel); - bool? ShowQuestion(string message); + Task ShowQuestionAsync(string message); - bool? ShowQuestion(IDialogSettings settings); + Task ShowQuestionAsync(IDialogSettings settings); } } \ No newline at end of file diff --git a/src/ProtonVPN.Core/Modals/IModal.cs b/src/ProtonVPN.Core/Modals/IModal.cs index fe867c6c6..c1fb2a4c5 100644 --- a/src/ProtonVPN.Core/Modals/IModal.cs +++ b/src/ProtonVPN.Core/Modals/IModal.cs @@ -25,6 +25,6 @@ public interface IModal bool StayOnTop { get; } - void TryClose(bool? dialogResult); + void TryClose(bool? dialogResult = null); } } diff --git a/src/ProtonVPN.Core/Modals/IModals.cs b/src/ProtonVPN.Core/Modals/IModals.cs index 30b483190..0d9dd5403 100644 --- a/src/ProtonVPN.Core/Modals/IModals.cs +++ b/src/ProtonVPN.Core/Modals/IModals.cs @@ -18,16 +18,17 @@ */ using System; +using System.Threading.Tasks; namespace ProtonVPN.Core.Modals { public interface IModals { - bool? Show(dynamic options = null) where T : IModal; + Task ShowAsync(dynamic options = null) where T : IModal; bool IsOpen() where T : IModal; void Close(bool? dialogResult = null) where T : IModal; void CloseAll(); - bool? Show(Type type, dynamic options = null); + Task ShowAsync(Type type, dynamic options = null); } } \ No newline at end of file diff --git a/src/ProtonVPN.Core/OS/Net/ServicePointConfiguration.cs b/src/ProtonVPN.Core/OS/Net/ServicePointConfiguration.cs deleted file mode 100644 index 3632d550d..000000000 --- a/src/ProtonVPN.Core/OS/Net/ServicePointConfiguration.cs +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Net; -using ProtonVPN.Common.Logging; -using ProtonVPN.Common.Logging.Categorization.Events.ApiLogs; - -namespace ProtonVPN.Core.OS.Net -{ - public class ServicePointConfiguration - { - private readonly ILogger _logger; - - public ServicePointConfiguration(ILogger logger) - { - _logger = logger; - } - - public void Apply() - { - ConfigureSSlSecurity(); - } - - /// - /// Forces TLS 1.2 on Windows 7 SP1 and Windows Server 2008 R2. - /// - /// - /// On Windows 7 SP1 and Windows Server 2008 R2 only TLS 1.0 is enabled by default, unless a specific security update is installed. - /// TLS 1.1 and 1.2 are also supported, but not enabled by default. - /// - private void ConfigureSSlSecurity() - { - Version osVer = Environment.OSVersion.Version; - if (osVer.Major == 6 && osVer.Minor == 1) - { - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; - _logger.Info($"Security protocol set to 'TLS 1.2' due to operative system version '{osVer}'."); - } - else - { - _logger.Info($"Security protocol kept at '{ServicePointManager.SecurityProtocol}'. " + - $"Operative system version '{osVer}'."); - } - } - } -} diff --git a/src/ProtonVPN.Core/ProtonVPN.Core.csproj b/src/ProtonVPN.Core/ProtonVPN.Core.csproj index 32c7512cc..3e1c7e9fb 100644 --- a/src/ProtonVPN.Core/ProtonVPN.Core.csproj +++ b/src/ProtonVPN.Core/ProtonVPN.Core.csproj @@ -1,293 +1,37 @@ - - - + - Debug - AnyCPU - {CA44B51D-7645-413A-818F-2C5B57DB67DD} + net6.0-windows Library - Properties - ProtonVPN.Core - ProtonVPN.Core - v4.7.2 - 512 - + false + true + true - true - full - false ..\bin\ - DEBUG;TRACE - prompt - 4 + false latest true - pdbonly - true ..\bin\ - TRACE - prompt - 4 + false latest - - true - - - - - - - - - - - - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1.2.0 - - 2.2.9 - - - 1.8.9 - - - 3.2.0 - + 1.5.0 - - 5.0.0 - + + 13.0.1 @@ -297,46 +41,27 @@ 1.1.0 - - 4.5.1 - - - 5.0.0 - - - 5.0.0 + + + + + all + + + + + + + + + + + + + - - {153BD6AB-6B34-4E97-A96D-4ED5826DC037} - ProtonVPN.Announcements.Contracts - - - {455da1fb-5097-47d2-8603-b0e1f9d90294} - ProtonVPN.Dns.Contracts - - - {9e4d6072-c8de-475a-b9a7-4b6bf6eeeaeb} - ProtonVPN.Api.Contracts - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - - - {45a0ea81-d37e-4d7f-8ce1-ce6b6a95a9ed} - ProtonVPN.Resource - - - {90FDF2B3-25C9-428D-B264-5A5FAEB2D988} - ProtonVPN.Update - + - - \ No newline at end of file diff --git a/src/ProtonVPN.Core/ReportAnIssue/IReportAnIssueFormDataProvider.cs b/src/ProtonVPN.Core/ReportAnIssue/IReportAnIssueFormDataProvider.cs index 53fe3670b..d921bc129 100644 --- a/src/ProtonVPN.Core/ReportAnIssue/IReportAnIssueFormDataProvider.cs +++ b/src/ProtonVPN.Core/ReportAnIssue/IReportAnIssueFormDataProvider.cs @@ -25,7 +25,7 @@ namespace ProtonVPN.Core.ReportAnIssue { public interface IReportAnIssueFormDataProvider { - Task FetchData(); + Task FetchDataAsync(); List GetCategories(); List GetSuggestions(string category); List GetInputs(string categorySubmitName); diff --git a/src/ProtonVPN.Core/ReportAnIssue/ReportAnIssueFormDataProvider.cs b/src/ProtonVPN.Core/ReportAnIssue/ReportAnIssueFormDataProvider.cs index d699b410e..bdcecb43e 100644 --- a/src/ProtonVPN.Core/ReportAnIssue/ReportAnIssueFormDataProvider.cs +++ b/src/ProtonVPN.Core/ReportAnIssue/ReportAnIssueFormDataProvider.cs @@ -20,7 +20,6 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; -using System.Net.Http; using System.Threading.Tasks; using ProtonVPN.Api.Contracts; using ProtonVPN.Api.Contracts.ReportAnIssue; @@ -44,7 +43,7 @@ public ReportAnIssueFormDataProvider(IApiClient apiClient, IAppSettings appSetti _appSettings = appSettings; } - public async Task FetchData() + public async Task FetchDataAsync() { try { @@ -92,7 +91,7 @@ public async void OnAppSettingsChanged(PropertyChangedEventArgs e) { if (e.PropertyName == nameof(IAppSettings.Language)) { - await FetchData(); + await FetchDataAsync(); } } diff --git a/src/ProtonVPN.Core/Servers/ServerLoadUpdater.cs b/src/ProtonVPN.Core/Servers/ServerLoadUpdater.cs index e15c8ce3c..2a65e6c88 100644 --- a/src/ProtonVPN.Core/Servers/ServerLoadUpdater.cs +++ b/src/ProtonVPN.Core/Servers/ServerLoadUpdater.cs @@ -20,6 +20,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using System.Threading.Tasks; using Caliburn.Micro; using ProtonVPN.Api.Contracts.Servers; @@ -80,7 +81,8 @@ public void OnUserLoggedOut() _timer.Stop(); } - public void Handle(WindowStateMessage message) + // [.NET Migration] TO DO: Use CancellationToken + public async Task HandleAsync(WindowStateMessage message, CancellationToken cancellationToken) { if (!message.Active || !TimeToUpdateLoads()) { diff --git a/src/ProtonVPN.Core/Servers/ServerNameComparer.cs b/src/ProtonVPN.Core/Servers/ServerNameComparer.cs index 89b469148..2c292a0e1 100644 --- a/src/ProtonVPN.Core/Servers/ServerNameComparer.cs +++ b/src/ProtonVPN.Core/Servers/ServerNameComparer.cs @@ -17,6 +17,7 @@ * along with ProtonVPN. If not, see . */ +using System; using System.Collections.Generic; using ProtonVPN.Common.Extensions; @@ -30,56 +31,60 @@ public int Compare(string x, string y) { return 0; } - if (x.IsNullOrEmpty()) { return -1; } - if (y.IsNullOrEmpty()) { return 1; } - - if (x.IndexOf('#') == -1 || y.IndexOf('#') == -1) + if (!x.Contains('#') || !y.Contains('#')) { - return CompareNames(x, y); + return string.Compare(x, y, StringComparison.InvariantCultureIgnoreCase); } return CompareNameWithHashSymbol(x, y); } - private int CompareNames(string x, string y) - { - return x.CompareTo(y); - } - private int CompareNameWithHashSymbol(string x, string y) { - int? number1 = GetNumber(x); - int? number2 = GetNumber(y); - if (!number1.HasValue || !number2.HasValue) + int preHashtagNameComparisonResult = ComparePreHashtagNames(x, y); + if (preHashtagNameComparisonResult != 0) { - return CompareNames(x, y); + return preHashtagNameComparisonResult; } - string name1 = GetName(x); - string name2 = GetName(y); - - int nameCompare = name1.CompareTo(name2); - if (nameCompare != 0) + int numberComparisonResult = CompareNumbers(x, y); + if (numberComparisonResult != 0) { - return nameCompare; + return numberComparisonResult; } - return number1.Value.CompareTo(number2.Value); + return ComparePostHashtagNames(x, y); + } + + private int ComparePreHashtagNames(string x, string y) + { + string preHashtagName1 = GetPreHashtagName(x); + string preHashtagName2 = GetPreHashtagName(y); + + return preHashtagName1.CompareTo(preHashtagName2); } - private string GetName(string value) + private string GetPreHashtagName(string value) { return value.Substring(0, value.IndexOf('#')); } + private int CompareNumbers(string x, string y) + { + int number1 = GetNumber(x) ?? int.MaxValue; + int number2 = GetNumber(y) ?? int.MaxValue; + + return number1.CompareTo(number2); + } + private int? GetNumber(string value) { string stringAfterHash = value.Substring(value.IndexOf('#') + 1); @@ -92,5 +97,18 @@ private string GetName(string value) { return int.TryParse(value, out int number) ? number : null; } + + private int ComparePostHashtagNames(string x, string y) + { + string postHashtagName1 = GetPostHashtagName(x); + string postHashtagName2 = GetPostHashtagName(y); + + return postHashtagName1.CompareTo(postHashtagName2); + } + + private string GetPostHashtagName(string value) + { + return value.Substring(value.IndexOf('#') + 1); + } } } \ No newline at end of file diff --git a/src/ProtonVPN.Core/Service/ServiceChannel.cs b/src/ProtonVPN.Core/Service/ServiceChannel.cs deleted file mode 100644 index fd28026ff..000000000 --- a/src/ProtonVPN.Core/Service/ServiceChannel.cs +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.ServiceModel; - -namespace ProtonVPN.Core.Service -{ - public class ServiceChannel : IDisposable - { - private readonly ICommunicationObject _factory; - - public T Proxy { get; } - - public ServiceChannel(ICommunicationObject factory, T channel) - { - _factory = factory; - Proxy = channel; - } - - public void Dispose() - { - try - { - _factory.Close(); - } - catch (CommunicationException) - { - _factory.Abort(); - } - catch (TimeoutException) - { - _factory.Abort(); - } - catch (Exception) - { - _factory.Abort(); - throw; - } - } - } -} diff --git a/src/ProtonVPN.Core/Service/ServiceChannelFactory.cs b/src/ProtonVPN.Core/Service/ServiceChannelFactory.cs deleted file mode 100644 index a51e2555d..000000000 --- a/src/ProtonVPN.Core/Service/ServiceChannelFactory.cs +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.ServiceModel; - -namespace ProtonVPN.Core.Service -{ - public class ServiceChannelFactory - { - public ServiceChannel Create(string endpoint, object callback) - { - InstanceContext context = new InstanceContext(callback); - - DuplexChannelFactory factory = new DuplexChannelFactory( - context, - new NetNamedPipeBinding(), - GetEndPointAddress(endpoint)); - - return new ServiceChannel(factory, factory.CreateChannel()); - } - - public ServiceChannel Create(string endpoint) - { - ChannelFactory factory = new ChannelFactory( - new NetNamedPipeBinding(), - GetEndPointAddress(endpoint)); - - return new ServiceChannel(factory, factory.CreateChannel()); - } - - private static EndpointAddress GetEndPointAddress(string endpointName) - { - return new($"net.pipe://localhost/{endpointName}"); - } - } -} diff --git a/src/ProtonVPN.Core/Settings/Contracts/SplitTunnellingApp.cs b/src/ProtonVPN.Core/Settings/Contracts/SplitTunnellingApp.cs index d7c66ab13..6bc47ef22 100644 --- a/src/ProtonVPN.Core/Settings/Contracts/SplitTunnellingApp.cs +++ b/src/ProtonVPN.Core/Settings/Contracts/SplitTunnellingApp.cs @@ -17,36 +17,39 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Common.Helpers; using System; +using HashCode = ProtonVPN.Common.Helpers.HashCode; namespace ProtonVPN.Core.Settings.Contracts { public class SplitTunnelingApp: IEquatable { public string Name { get; set; } - public string Path { get; set; } - public string[] AdditionalPaths { get; set; } - public bool Enabled { get; set; } - #region IEquatable - public bool Equals(SplitTunnelingApp other) { - if (other == null) - return false; - - return string.Equals(Path, other.Path, StringComparison.OrdinalIgnoreCase); + return other == null + ? false + : string.Equals(Path, other.Path, StringComparison.OrdinalIgnoreCase); } public override bool Equals(object obj) { - if (ReferenceEquals(null, obj)) return false; - if (ReferenceEquals(this, obj)) return true; - if (obj.GetType() != GetType()) return false; + if (ReferenceEquals(null, obj)) + { + return false; + } + if (ReferenceEquals(this, obj)) + { + return true; + } + if (obj.GetType() != GetType()) + { + return false; + } return Equals(obj as SplitTunnelingApp); } @@ -55,7 +58,5 @@ public override int GetHashCode() return HashCode.Start .Hash(Path?.ToUpperInvariant()); } - - #endregion } } diff --git a/src/ProtonVPN.Core/Settings/Contracts/SplitTunnellingIp.cs b/src/ProtonVPN.Core/Settings/Contracts/SplitTunnellingIp.cs index 80a9265e6..ace67f40c 100644 --- a/src/ProtonVPN.Core/Settings/Contracts/SplitTunnellingIp.cs +++ b/src/ProtonVPN.Core/Settings/Contracts/SplitTunnellingIp.cs @@ -17,41 +17,43 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Common.Helpers; using System; +using HashCode = ProtonVPN.Common.Helpers.HashCode; namespace ProtonVPN.Core.Settings.Contracts { public class IpContract : IEquatable { public string Ip { get; set; } - public bool Enabled { get; set; } - #region IEquatable - public bool Equals(IpContract other) { - if (other == null) - return false; - - return string.Equals(Ip, other.Ip, StringComparison.OrdinalIgnoreCase); + return other == null + ? false + : string.Equals(Ip, other.Ip, StringComparison.OrdinalIgnoreCase); } public override bool Equals(object obj) { - if (ReferenceEquals(null, obj)) return false; - if (ReferenceEquals(this, obj)) return true; - if (obj.GetType() != GetType()) return false; + if (ReferenceEquals(null, obj)) + { + return false; + } + if (ReferenceEquals(this, obj)) + { + return true; + } + if (obj.GetType() != GetType()) + { + return false; + } return Equals(obj as IpContract); } public override int GetHashCode() { - return HashCode.Start - .Hash(Ip?.ToUpperInvariant()); + return HashCode.Start.Hash(Ip?.ToUpperInvariant()); } - - #endregion } } diff --git a/src/ProtonVPN.Core/Settings/ServiceSettingsStateChangedEventArgs.cs b/src/ProtonVPN.Core/Settings/ServiceSettingsStateChangedEventArgs.cs deleted file mode 100644 index de0c6e20c..000000000 --- a/src/ProtonVPN.Core/Settings/ServiceSettingsStateChangedEventArgs.cs +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using ProtonVPN.Common.Helpers; -using ProtonVPN.Core.Vpn; - -namespace ProtonVPN.Core.Settings -{ - public class ServiceSettingsStateChangedEventArgs - { - public bool IsNetworkBlocked { get; } - public VpnStateChangedEventArgs CurrentState { get; } - - public ServiceSettingsStateChangedEventArgs(bool isNetworkBlocked, VpnStateChangedEventArgs currentState) - { - Ensure.NotNull(currentState, nameof(currentState)); - - IsNetworkBlocked = isNetworkBlocked; - CurrentState = currentState; - } - - public ServiceSettingsStateChangedEventArgs(VpnStateChangedEventArgs currentState) - { - Ensure.NotNull(currentState, nameof(currentState)); - - IsNetworkBlocked = currentState.NetworkBlocked; - CurrentState = currentState; - } - } -} diff --git a/src/ProtonVPN.Core/Srp/SrpPInvoke.cs b/src/ProtonVPN.Core/Srp/SrpPInvoke.cs index d58abab6b..1b65648f3 100644 --- a/src/ProtonVPN.Core/Srp/SrpPInvoke.cs +++ b/src/ProtonVPN.Core/Srp/SrpPInvoke.cs @@ -23,12 +23,13 @@ using System.Security; using System.Text; using ProtonVPN.Common.Go; +using ProtonVPN.Common.Helpers; namespace ProtonVPN.Core.Srp { public static class SrpPInvoke { - private const string BinaryName = "GoSrp.dll"; + private const string BINARY_NAME = "GoSrp.dll"; static SrpPInvoke() { @@ -41,8 +42,7 @@ static SrpPInvoke() } } - private static string BinaryPath => - Environment.Is64BitOperatingSystem ? $"x64\\{BinaryName}" : $"x86\\{BinaryName}"; + private static string BinaryPath => PathProvider.GetResourcesPath(BINARY_NAME); [DllImport("Kernel32.dll")] private static extern IntPtr LoadLibrary(string path); diff --git a/src/ProtonVPN.Core/Update/FeedUrlProvider.cs b/src/ProtonVPN.Core/Update/FeedUrlProvider.cs index 7824bd297..cfc709d5c 100644 --- a/src/ProtonVPN.Core/Update/FeedUrlProvider.cs +++ b/src/ProtonVPN.Core/Update/FeedUrlProvider.cs @@ -41,32 +41,18 @@ public FeedUrlProvider(IConfiguration config) _config = config; } - public IEnumerable GetFeedUrls() + public Uri GetFeedUrl() { if (_feedType is FeedType.Internal) { - if (IsSystemCompatibleWithNet6()) - { - yield return new Uri(GlobalConfig.InternalReleaseUpdateUrl); - } - yield return new Uri(GlobalConfig.InternalReleaseOldUpdateUrl); + return new Uri(GlobalConfig.InternalReleaseUpdateUrl); } else { - if (IsSystemCompatibleWithNet6()) - { - yield return new Uri(_config.Urls.UpdateUrl); - } - yield return new Uri(_config.Urls.OldUpdateUrl); + return new Uri(_config.Urls.UpdateUrl); } } - private bool IsSystemCompatibleWithNet6() - { - return Environment.OSVersion.Version.Major >= 10 - && Environment.Is64BitOperatingSystem; - } - public async Task OnVpnStateChanged(VpnStateChangedEventArgs e) { FeedType type = e.State.Status == VpnStatus.Connected && e.State.Server.Tier == ServerTiers.Internal diff --git a/src/ProtonVPN.Core/Vpn/IVpnServiceManager.cs b/src/ProtonVPN.Core/Vpn/IVpnServiceManager.cs index e7a29a481..2038e1b69 100644 --- a/src/ProtonVPN.Core/Vpn/IVpnServiceManager.cs +++ b/src/ProtonVPN.Core/Vpn/IVpnServiceManager.cs @@ -22,7 +22,6 @@ using System.Threading.Tasks; using ProtonVPN.Common.PortForwarding; using ProtonVPN.Common.Vpn; -using ProtonVPN.Core.Settings; namespace ProtonVPN.Core.Vpn { @@ -36,8 +35,8 @@ Task Disconnect(VpnError vpnError, [CallerLineNumber] int sourceLineNumber = 0); Task Total(); Task RepeatState(); - void RegisterVpnStateCallback(Action onVpnStateChanged); - void RegisterServiceSettingsStateCallback(Action onServiceSettingsStateChanged); + + void RegisterVpnStateCallback(Action callback); void RegisterPortForwardingStateCallback(Action callback); void RegisterConnectionDetailsChangeCallback(Action callback); } diff --git a/src/ProtonVPN.Core/Windows/MainWindowState.cs b/src/ProtonVPN.Core/Windows/MainWindowState.cs index a76957fbb..febd9c9c3 100644 --- a/src/ProtonVPN.Core/Windows/MainWindowState.cs +++ b/src/ProtonVPN.Core/Windows/MainWindowState.cs @@ -17,6 +17,8 @@ * along with ProtonVPN. If not, see . */ +using System.Threading; +using System.Threading.Tasks; using Caliburn.Micro; namespace ProtonVPN.Core.Windows @@ -30,7 +32,7 @@ public MainWindowState(IEventAggregator eventAggregator) public bool Active { get; private set; } - public void Handle(WindowStateMessage message) + public async Task HandleAsync(WindowStateMessage message, CancellationToken cancellationToken) { Active = message.Active; } diff --git a/src/ProtonVPN.Core/Windows/Popups/IPopupWindow.cs b/src/ProtonVPN.Core/Windows/Popups/IPopupWindow.cs index 32f93d68b..2362b284a 100644 --- a/src/ProtonVPN.Core/Windows/Popups/IPopupWindow.cs +++ b/src/ProtonVPN.Core/Windows/Popups/IPopupWindow.cs @@ -17,10 +17,12 @@ * along with ProtonVPN. If not, see . */ +using System.Threading.Tasks; + namespace ProtonVPN.Core.Windows.Popups { public interface IPopupWindow { - void TryClose(); + Task TryCloseAsync(); } } \ No newline at end of file diff --git a/src/ProtonVPN.Crypto/AsymmetricKeyPair.cs b/src/ProtonVPN.Crypto/AsymmetricKeyPair.cs index 5b78595f1..7410c0e88 100644 --- a/src/ProtonVPN.Crypto/AsymmetricKeyPair.cs +++ b/src/ProtonVPN.Crypto/AsymmetricKeyPair.cs @@ -28,6 +28,14 @@ public class AsymmetricKeyPair public AsymmetricKeyPair(SecretKey secretKey, PublicKey publicKey) { + if (secretKey is null) + { + throw new ArgumentNullException(nameof(secretKey), "The SecretKey argument is mandatory but is null."); + } + if (publicKey is null) + { + throw new ArgumentNullException(nameof(publicKey), "The PublicKey argument is mandatory but is null."); + } if (secretKey.Algorithm != publicKey.Algorithm) { throw new ArgumentException("The algorithms used for the key pair are different. " + diff --git a/src/ProtonVPN.Crypto/ProtonVPN.Crypto.csproj b/src/ProtonVPN.Crypto/ProtonVPN.Crypto.csproj index 7a1fb81b9..53ffb6d8e 100644 --- a/src/ProtonVPN.Crypto/ProtonVPN.Crypto.csproj +++ b/src/ProtonVPN.Crypto/ProtonVPN.Crypto.csproj @@ -1,68 +1,28 @@ - - - + - Debug - AnyCPU - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} + net6.0-windows Library - Properties - ProtonVPN.Crypto - ProtonVPN.Crypto - v4.7.2 - 512 - true + false - true - full - false ..\bin\ - DEBUG;TRACE - prompt - 4 + false latest - pdbonly - true - bin\Release\ - TRACE - prompt - 4 latest - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - 1.8.9 + + + + + all - \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp b/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp new file mode 100644 index 000000000..b1de3a529 --- /dev/null +++ b/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp @@ -0,0 +1,285 @@ +#include +#include "sha1.hpp" +#include "WinApiErrorException.h" +#include "pugixml/pugixml.hpp" +#include "AppSettingsMigration.h" + +using namespace std; +namespace fs = std::filesystem; + +AppSettingsMigration::AppSettingsMigration() +{ + this->sha1 = new SHA1; +} + +void AppSettingsMigration::SaveOldUserConfigFolder() +{ + const fs::path old_user_settings_path = GetOldUserConfigPath(); + if (!old_user_settings_path.empty()) + { + try + { + const fs::path version_folder_path = GetTmpFolderPathForStorage() / old_user_settings_path.filename(); + fs::create_directories(version_folder_path); + constexpr auto copy_options = fs::copy_options::update_existing | fs::copy_options::recursive; + fs::copy(old_user_settings_path, version_folder_path, copy_options); + } + catch (fs::filesystem_error& e) + { + string s = string(e.what()); + throw WinApiErrorException(wstring(s.begin(), s.end()), 2); + } + } +} + +void AppSettingsMigration::RestoreOldUserConfigFolder(std::string application_path) +{ + fs::path tmp_folder_path_for_storage = GetTmpFolderPathForStorage(); + if (!fs::exists(tmp_folder_path_for_storage)) + { + return; + } + + for (auto& p : fs::directory_iterator(tmp_folder_path_for_storage)) + { + if (p.is_directory()) + { + try + { + const fs::path settings_folder_path = GetApplicationSettingsFolderPath(application_path); + const fs::path version_folder_path = settings_folder_path / p.path().filename(); + fs::create_directories(settings_folder_path); + fs::copy(p, version_folder_path, fs::copy_options::update_existing); + fs::remove_all(tmp_folder_path_for_storage); + FixUserConfigFile(version_folder_path); + } + catch (fs::filesystem_error& e) + { + string s = string(e.what()); + throw WinApiErrorException(wstring(s.begin(), s.end()), 2); + } + + break; + } + } +} + +void AppSettingsMigration::FixUserConfigFile(fs::path user_config_folder_path) +{ + fs::path path = user_config_folder_path / fs::path("user.config"); + const wchar_t* user_config_path = path.c_str(); + + pugi::xml_document doc; + pugi::xml_parse_result result = doc.load_file(user_config_path, pugi::parse_full); + + pugi::xml_node configuration = doc.root().child("configuration").prepend_child(pugi::node_element); + configuration.set_name("configSections"); + + pugi::xml_node section_group = configuration.append_child(pugi::node_element); + section_group.set_name("sectionGroup"); + section_group.append_attribute("name") = "userSettings"; + section_group.append_attribute("type") = + "System.Configuration.UserSettingsGroup, System.Configuration.ConfigurationManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"; + + pugi::xml_node section = section_group.append_child(pugi::node_element); + section.set_name("section"); + section.append_attribute("name") = "ProtonVPN.Properties.Settings"; + section.append_attribute("type") = + "System.Configuration.ClientSettingsSection, System.Configuration.ConfigurationManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"; + section.append_attribute("allowExeDefinition") = "MachineToLocalUser"; + section.append_attribute("requirePermission") = "false"; + + doc.save_file(user_config_path); +} + +fs::path AppSettingsMigration::GetOldUserConfigPath() +{ + const string local_app_data_path = GetLocalAppDataPath(); + fs::file_time_type latest_version; + fs::path latest_version_folder_path; + fs::path app_data_folder_path = local_app_data_path / fs::path("ProtonVPN"); + if (!fs::exists(app_data_folder_path)) + { + return {}; + } + + for (auto& p : fs::directory_iterator(app_data_folder_path)) + { + if (p.is_directory()) + { + auto folder_name = p.path().filename().generic_string(); + if (folder_name.rfind("ProtonVPN.exe_Url_", 0) == 0) + { + for (auto& version_folder : fs::directory_iterator(p)) + { + if (version_folder.last_write_time() > latest_version) + { + latest_version = version_folder.last_write_time(); + latest_version_folder_path = version_folder.path(); + } + } + break; + } + } + } + + return latest_version_folder_path; +} + +fs::path AppSettingsMigration::GetApplicationSettingsFolderPath(std::string application_path) +{ + return {GetLocalAppDataPath() + "\\ProtonVPN\\" + GetApplicationSettingsFolderName(application_path)}; +} + +fs::path AppSettingsMigration::GetTmpFolderPathForStorage() +{ + return GetTmpFolderPath() / fs::path("ProtonVPN"); +} + +string AppSettingsMigration::GetApplicationSettingsFolderName(std::string application_path) +{ + return "ProtonVPN_Url_" + GetHashForUserSettingsFolder(application_path); +} + +string AppSettingsMigration::GetLocalAppDataPath() +{ + return GetEnvVariable("LOCALAPPDATA"); +} + +string AppSettingsMigration::GetTmpFolderPath() +{ + return GetEnvVariable("TMP"); +} + +string AppSettingsMigration::GetEnvVariable(string name) +{ + char* value; + size_t len; + const errno_t err = _dupenv_s(&value, &len, name.c_str()); + if (err != 0) + { + throw WinApiErrorException(L"Failed to get environment variable " + wstring(name.begin(), name.end()) + L".", + err); + } + + string result = string(value); + free(value); + + return result; +} + +string AppSettingsMigration::GetHashForUserSettingsFolder(std::string application_path) +{ + ranges::replace(application_path, '\\', '/'); + string path_url = string("FILE:///") + application_path + "/PROTONVPN.DLL"; + ranges::for_each(path_url, [](char& c) { c = ::toupper(c); }); + + path_url = GetPathWithSize(path_url); + string hash = GetSha1(path_url); + + return ToBase32StringSuitableForDirName(hex2bin(hash)); +} + +string AppSettingsMigration::GetPathWithSize(string path_url) +{ + vector bytes; + bytes.push_back(path_url.size()); + for (const char i : path_url) + { + bytes.push_back(i); + } + + return {bytes.begin(), bytes.end()}; +} + +string AppSettingsMigration::GetSha1(string str) +{ + sha1->update(str); + return sha1->final(); +} + +int AppSettingsMigration::char2int(char input) +{ + if (input >= '0' && input <= '9') + { + return input - '0'; + } + + if (input >= 'A' && input <= 'F') + { + return input - 'A' + 10; + } + + if (input >= 'a' && input <= 'f') + { + return input - 'a' + 10; + } + + throw invalid_argument("Invalid input string"); +} + +vector AppSettingsMigration::hex2bin(string hex) +{ + const char* src = hex.c_str(); + vector result; + + while (*src && src[1]) + { + result.push_back(char2int(*src) * 16 + char2int(src[1])); + src += 2; + } + + return result; +} + +string AppSettingsMigration::ToBase32StringSuitableForDirName(vector buff) +{ + const auto length = buff.size(); + size_t i = 0; + + stringstream ss; + do + { + int b0 = (i < length) ? buff[i++] : 0; + int b1 = (i < length) ? buff[i++] : 0; + int b2 = (i < length) ? buff[i++] : 0; + int b3 = (i < length) ? buff[i++] : 0; + int b4 = (i < length) ? buff[i++] : 0; + + ss << s_base32_char[b0 & 0x1F]; + ss << s_base32_char[b1 & 0x1F]; + ss << s_base32_char[b2 & 0x1F]; + ss << s_base32_char[b3 & 0x1F]; + ss << s_base32_char[b4 & 0x1F]; + + ss << s_base32_char[( + ((b0 & 0xE0) >> 5) | + ((b3 & 0x60) >> 2))]; + + ss << s_base32_char[( + ((b1 & 0xE0) >> 5) | + ((b4 & 0x60) >> 2))]; + + b2 >>= 5; + + if ((b3 & 0x80) != 0) + { + b2 |= 0x08; + } + + if ((b4 & 0x80) != 0) + { + b2 |= 0x10; + } + + ss << s_base32_char[b2]; + } + while (i < length); + + return ss.str(); +} + +AppSettingsMigration::~AppSettingsMigration() +{ + delete sha1; +} diff --git a/src/ProtonVPN.InstallActions/AppSettingsMigration.h b/src/ProtonVPN.InstallActions/AppSettingsMigration.h new file mode 100644 index 000000000..bad2047e7 --- /dev/null +++ b/src/ProtonVPN.InstallActions/AppSettingsMigration.h @@ -0,0 +1,41 @@ +#pragma once +#include +#include +#include + +#include "sha1.hpp" + +class AppSettingsMigration +{ +public: + AppSettingsMigration(); + void SaveOldUserConfigFolder(); + void RestoreOldUserConfigFolder(std::string application_path); + ~AppSettingsMigration(); + +private: + char s_base32_char[32] + { + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', + 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', + 'y', 'z', '0', '1', '2', '3', '4', '5' + }; + + SHA1* sha1; + + std::string ToBase32StringSuitableForDirName(std::vector buff); + std::vector hex2bin(std::string hex); + int char2int(char input); + std::string GetSha1(std::string str); + std::string GetPathWithSize(std::string path_url); + std::string GetHashForUserSettingsFolder(std::string application_path); + std::string GetLocalAppDataPath(); + std::string GetTmpFolderPath(); + std::string GetEnvVariable(std::string name); + std::filesystem::path GetApplicationSettingsFolderPath(std::string application_path); + std::filesystem::path GetTmpFolderPathForStorage(); + std::string GetApplicationSettingsFolderName(std::string application_path); + std::filesystem::path GetOldUserConfigPath(); + void FixUserConfigFile(std::filesystem::path user_config_folder_path); +}; diff --git a/src/ProtonVPN.InstallActions/EnvironmentVariable.cpp b/src/ProtonVPN.InstallActions/EnvironmentVariable.cpp deleted file mode 100644 index 883ba0177..000000000 --- a/src/ProtonVPN.InstallActions/EnvironmentVariable.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "pch.h" -#include "EnvironmentVariable.h" - -std::string GetEnvironmentVariable(const char* environmentVariableKey) -{ - char* value; - size_t length; - const errno_t error = _dupenv_s(&value, &length, environmentVariableKey); - std::string result; - if (value != nullptr && !error) - { - result = value; - } - return result; -} \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/EnvironmentVariable.h b/src/ProtonVPN.InstallActions/EnvironmentVariable.h deleted file mode 100644 index 6d38524b0..000000000 --- a/src/ProtonVPN.InstallActions/EnvironmentVariable.h +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once -#include - -std::string GetEnvironmentVariable(const char* environmentVariableKey); diff --git a/src/ProtonVPN.InstallActions/Installer.cpp b/src/ProtonVPN.InstallActions/Installer.cpp index 1824d0d0d..25a4e8122 100644 --- a/src/ProtonVPN.InstallActions/Installer.cpp +++ b/src/ProtonVPN.InstallActions/Installer.cpp @@ -1,37 +1,38 @@ -#include "pch.h" +#include #include "Msi.h" #include "Utils.h" + #define MSI_GUID_LEN 38 -long Uninstall(LPCWSTR upgradeCode) +long Uninstall(LPCWSTR upgrade_code) { DWORD index = 0; - TCHAR productCode[MSI_GUID_LEN + 1]; - int totalRemoved = 0; + TCHAR product_code[MSI_GUID_LEN + 1]; + int total_removed = 0; - while (MsiEnumRelatedProducts(upgradeCode, 0, index++, productCode) == ERROR_SUCCESS) + while (MsiEnumRelatedProducts(upgrade_code, 0, index++, product_code) == ERROR_SUCCESS) { const auto args = L"REBOOT=ReallySuppress UILevel=2"; // 2 - INSTALLUILEVEL_NONE - UINT res = MsiConfigureProductEx(productCode, INSTALLLEVEL_DEFAULT, INSTALLSTATE_ABSENT, args); - std::wstring productCodeString = static_cast(productCode); + UINT res = MsiConfigureProductEx(product_code, INSTALLLEVEL_DEFAULT, INSTALLSTATE_ABSENT, args); + std::wstring product_code_string = product_code; if (res == ERROR_SUCCESS) { - totalRemoved++; - LogMessage(L"Successfully uninstalled product code: " + productCodeString); + total_removed++; + LogMessage(L"Successfully uninstalled product code: " + product_code_string); } else { - LogMessage(L"Failed to uninstall product code " + productCodeString + L": ", res); + LogMessage(L"Failed to uninstall product code " + product_code_string + L": ", res); return res; } } - if (totalRemoved == 0) + if (total_removed == 0) { - LogMessage(L"No product found with product code " + static_cast(upgradeCode)); + LogMessage(L"No product found with product code " + static_cast(upgrade_code)); } return 0; -} \ No newline at end of file +} diff --git a/src/ProtonVPN.InstallActions/Installer.h b/src/ProtonVPN.InstallActions/Installer.h index 1df1b07c7..a73ca7d80 100644 --- a/src/ProtonVPN.InstallActions/Installer.h +++ b/src/ProtonVPN.InstallActions/Installer.h @@ -1,2 +1,2 @@ #pragma once -long Uninstall(LPCWSTR upgradeCode); \ No newline at end of file +long Uninstall(LPCWSTR upgrade_code); \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/Logger.h b/src/ProtonVPN.InstallActions/Logger.h new file mode 100644 index 000000000..7cda88329 --- /dev/null +++ b/src/ProtonVPN.InstallActions/Logger.h @@ -0,0 +1,5 @@ +#pragma once + +typedef void (CALLBACK* LoggerFunc)(const wchar_t*); + +inline LoggerFunc logger; diff --git a/src/ProtonVPN.InstallActions/Os.cpp b/src/ProtonVPN.InstallActions/Os.cpp new file mode 100644 index 000000000..7e5539937 --- /dev/null +++ b/src/ProtonVPN.InstallActions/Os.cpp @@ -0,0 +1,157 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ProcessExecutionResult.h" +#include "Os.h" + +using namespace std; +using namespace Os; + +ProcessExecutionResult Os::RunProcess(const wchar_t* application_path, wstring command_line_args) +{ + SECURITY_ATTRIBUTES security_attributes; + HANDLE stdout_rd = INVALID_HANDLE_VALUE; + HANDLE stdout_wr = INVALID_HANDLE_VALUE; + HANDLE stderr_rd = INVALID_HANDLE_VALUE; + HANDLE stderr_wr = INVALID_HANDLE_VALUE; + PROCESS_INFORMATION process_info; + STARTUPINFO startup_info; + thread stdout_thread; + thread stderr_thread; + + security_attributes.nLength = sizeof(SECURITY_ATTRIBUTES); + security_attributes.bInheritHandle = TRUE; + security_attributes.lpSecurityDescriptor = nullptr; + + if (!CreatePipe(&stdout_rd, &stdout_wr, &security_attributes, 0) || + !SetHandleInformation(stdout_rd, HANDLE_FLAG_INHERIT, 0)) + { + return ProcessExecutionResult::Failure(-1); + } + + if (!CreatePipe(&stderr_rd, &stderr_wr, &security_attributes, 0) || + !SetHandleInformation(stderr_rd, HANDLE_FLAG_INHERIT, 0)) + { + if (stdout_rd != INVALID_HANDLE_VALUE) CloseHandle(stdout_rd); + if (stdout_wr != INVALID_HANDLE_VALUE) CloseHandle(stdout_wr); + return ProcessExecutionResult::Failure(-2); + } + + ZeroMemory(&process_info, sizeof(PROCESS_INFORMATION)); + ZeroMemory(&startup_info, sizeof(STARTUPINFO)); + + startup_info.cb = sizeof(STARTUPINFO); + startup_info.hStdInput = nullptr; + startup_info.hStdOutput = stdout_wr; + startup_info.hStdError = stderr_wr; + + if (stdout_rd || stderr_rd) + { + startup_info.dwFlags |= STARTF_USESTDHANDLES; + } + + const int Success = CreateProcess( + application_path, + command_line_args.data(), + nullptr, + nullptr, + TRUE, + CREATE_NO_WINDOW, + nullptr, + nullptr, + &startup_info, + &process_info + ); + DWORD last_error = GetLastError(); + CloseHandle(stdout_wr); + CloseHandle(stderr_wr); + + if (!Success) + { + CloseHandle(process_info.hProcess); + CloseHandle(process_info.hThread); + CloseHandle(stdout_rd); + CloseHandle(stderr_rd); + return ProcessExecutionResult::Failure(last_error); + } + + CloseHandle(process_info.hThread); + + string std_out; + if (stdout_rd) + { + stdout_thread = thread([&] + { + DWORD n; + const size_t buffer_size = 1000; + char buffer[buffer_size]; + for (;;) + { + n = 0; + const int success = ReadFile( + stdout_rd, + buffer, + buffer_size, + &n, + nullptr + ); + + if (!success || n == 0) + { + break; + } + string s(buffer, n); + std_out += s; + } + }); + } + + uint32_t return_code; + WaitForSingleObject(process_info.hProcess, INFINITE); + if (!GetExitCodeProcess(process_info.hProcess, (DWORD*)&return_code)) + { + return_code = -1; + } + + CloseHandle(process_info.hProcess); + + if (stdout_thread.joinable()) + stdout_thread.join(); + + if (stderr_thread.joinable()) + stderr_thread.join(); + + CloseHandle(stdout_rd); + CloseHandle(stderr_rd); + + return {std_out, return_code}; +} + +bool Os::IsProcessRunning(const wchar_t* process_name) +{ + bool running = false; + PROCESSENTRY32 process_entry; + process_entry.dwSize = sizeof(PROCESSENTRY32); + + HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); + + if (Process32First(snapshot, &process_entry)) + { + while (Process32Next(snapshot, &process_entry)) + { + if (!_wcsicmp(process_entry.szExeFile, process_name)) + { + running = true; + } + } + } + + CloseHandle(snapshot); + return running; +} diff --git a/src/ProtonVPN.InstallActions/Os.h b/src/ProtonVPN.InstallActions/Os.h new file mode 100644 index 000000000..1fd322fb6 --- /dev/null +++ b/src/ProtonVPN.InstallActions/Os.h @@ -0,0 +1,18 @@ +#pragma once +#include "ProcessExecutionResult.h" + +namespace Os +{ + ProcessExecutionResult RunProcess(const wchar_t* application_path, std::wstring command_line_args); + bool IsProcessRunning(const wchar_t* process_name); + + enum DriverState + { + DeviceHasAProblem, + DeviceIsDisabled, + DeviceIsStopped, + NoDeviceFound, + DeviceExists, + Unknown + }; +} diff --git a/src/ProtonVPN.InstallActions/PathManager.cpp b/src/ProtonVPN.InstallActions/PathManager.cpp index d036e053b..3095397d4 100644 --- a/src/ProtonVPN.InstallActions/PathManager.cpp +++ b/src/ProtonVPN.InstallActions/PathManager.cpp @@ -1,4 +1,3 @@ -#include "pch.h" #include "PathManager.h" std::wstring AddEndingSlashIfNotExists(std::wstring directory) @@ -13,4 +12,4 @@ std::wstring AddEndingSlashIfNotExists(std::wstring directory) } return directory; -} \ No newline at end of file +} diff --git a/src/ProtonVPN.InstallActions/ProcessExecutionResult.cpp b/src/ProtonVPN.InstallActions/ProcessExecutionResult.cpp new file mode 100644 index 000000000..b1b1c49a0 --- /dev/null +++ b/src/ProtonVPN.InstallActions/ProcessExecutionResult.cpp @@ -0,0 +1,13 @@ +#include +#include "ProcessExecutionResult.h" + +ProcessExecutionResult::ProcessExecutionResult(std::string output, DWORD exitCode) +{ + this->output = output; + this->exitCode = exitCode; +} + +ProcessExecutionResult ProcessExecutionResult::Failure(DWORD exitCode) +{ + return {"", exitCode}; +} diff --git a/src/ProtonVPN.InstallActions/ProcessExecutionResult.h b/src/ProtonVPN.InstallActions/ProcessExecutionResult.h new file mode 100644 index 000000000..ac889ad54 --- /dev/null +++ b/src/ProtonVPN.InstallActions/ProcessExecutionResult.h @@ -0,0 +1,12 @@ +#pragma once +#include +#include + +class ProcessExecutionResult +{ +public: + ProcessExecutionResult(std::string output, DWORD exitCode); + std::string output; + DWORD exitCode; + static ProcessExecutionResult Failure(DWORD exitCode); +}; diff --git a/src/ProtonVPN.InstallActions/ProtonVPN.InstallActions.vcxproj b/src/ProtonVPN.InstallActions/ProtonVPN.InstallActions.vcxproj index 2dce415b4..644416e19 100644 --- a/src/ProtonVPN.InstallActions/ProtonVPN.InstallActions.vcxproj +++ b/src/ProtonVPN.InstallActions/ProtonVPN.InstallActions.vcxproj @@ -9,6 +9,14 @@ Release Win32 + + Debug + x64 + + + Release + x64 + 16.0 @@ -25,6 +33,12 @@ v143 Unicode + + DynamicLibrary + true + v143 + Unicode + DynamicLibrary false @@ -32,6 +46,13 @@ true Unicode + + DynamicLibrary + false + v143 + true + Unicode + @@ -40,21 +61,41 @@ + + + + + + true ..\bin\ + $(ProjectName).x86 + + + true + ..\bin\ + $(ProjectName) + $(Configuration)\ false ..\bin\ + $(ProjectName).x86 + + + true + ..\bin\ + $(ProjectName) + $(Configuration)\ - Use + NotUsing Level3 Disabled true @@ -62,14 +103,14 @@ true pch.h MultiThreadedDebug - stdcpp17 + stdcpp20 ..\ProtonVPN.IpFilterLib;..\..\CppLibraries\Bit7z\include;%(AdditionalIncludeDirectories) Windows true false - msi.lib;..\..\CppLibraries\Bit7z\lib\bit7z_d.lib;Ws2_32.lib;rpcrt4.lib;fwpuclnt.lib;iphlpapi.lib;%(AdditionalDependencies) + msi.lib;Ws2_32.lib;rpcrt4.lib;fwpuclnt.lib;iphlpapi.lib;..\..\src\bin\x86\ProtonVPN.IpFilterLib.lib;%(AdditionalDependencies) xcopy /y /d "..\..\CppLibraries\7-Zip\7za.dll" "$(OutDir)" @@ -78,9 +119,35 @@ msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=Debug /property:Platform=x86 -target:Clean;Build + + + NotUsing + Level3 + Disabled + true + _DEBUG;PROTONVPNIPFILTER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + pch.h + MultiThreadedDebug + stdcpp20 + ..\ProtonVPN.IpFilterLib;..\..\src\bin\x64;..\..\CppLibraries\Bit7z\include;%(AdditionalIncludeDirectories) + + + Windows + true + false + msi.lib;Ws2_32.lib;rpcrt4.lib;fwpuclnt.lib;iphlpapi.lib;..\..\src\bin\x64\ProtonVPN.IpFilterLib.lib;%(AdditionalDependencies) + + + xcopy /y /d "..\..\CppLibraries\7-Zip\7za.dll" "$(OutDir)" + + + msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=$(Configuration) /property:Platform=x64 -target:Clean;Build + + - Use + NotUsing Level3 MaxSpeed true @@ -91,7 +158,7 @@ pch.h MultiThreaded ..\ProtonVPN.IpFilterLib;..\..\CppLibraries\Bit7z\include;%(AdditionalIncludeDirectories) - stdcpp17 + stdcpp20 Windows @@ -99,7 +166,7 @@ true true false - msi.lib;..\..\CppLibraries\Bit7z\lib\bit7z.lib;Ws2_32.lib;rpcrt4.lib;fwpuclnt.lib;iphlpapi.lib;%(AdditionalDependencies) + msi.lib;Ws2_32.lib;rpcrt4.lib;fwpuclnt.lib;iphlpapi.lib;..\..\src\bin\x86\ProtonVPN.IpFilterLib.lib;%(AdditionalDependencies) xcopy /y /d "..\..\CppLibraries\7-Zip\7za.dll" "$(OutDir)" @@ -112,44 +179,72 @@ msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=Release /property:Platform=x86 -target:Clean;Build + + + NotUsing + Level3 + MaxSpeed + true + true + true + NDEBUG;PROTONVPNWINDOWS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + pch.h + MultiThreaded + ..\ProtonVPN.IpFilterLib;..\..\CppLibraries\Bit7z\include;%(AdditionalIncludeDirectories) + stdcpp20 + + + Windows + true + true + true + false + msi.lib;Ws2_32.lib;rpcrt4.lib;fwpuclnt.lib;iphlpapi.lib;..\..\src\bin\x64\ProtonVPN.IpFilterLib.lib;%(AdditionalDependencies) + + + xcopy /y /d "..\..\CppLibraries\7-Zip\7za.dll" "$(OutDir)" + + + + + + + msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=Release /property:Platform=x64 -target:Clean;Build + + - - + + + - - - - - + + + - + + - + + - + - - Create - Create - - - - - - + + + + + - - - - {22381b63-9ba0-4df8-bdb1-ec4ae1b7470d} - + + diff --git a/src/ProtonVPN.InstallActions/ProtonVPN.InstallActions.vcxproj.filters b/src/ProtonVPN.InstallActions/ProtonVPN.InstallActions.vcxproj.filters index a4e1b529a..361ccc6d2 100644 --- a/src/ProtonVPN.InstallActions/ProtonVPN.InstallActions.vcxproj.filters +++ b/src/ProtonVPN.InstallActions/ProtonVPN.InstallActions.vcxproj.filters @@ -15,43 +15,43 @@ - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files - + Header Files @@ -59,38 +59,42 @@ Source Files - + Source Files - + Source Files - + + Source Files + + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files + \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/Service.cpp b/src/ProtonVPN.InstallActions/Service.cpp deleted file mode 100644 index 2cb0b3de7..000000000 --- a/src/ProtonVPN.InstallActions/Service.cpp +++ /dev/null @@ -1,127 +0,0 @@ -#include "pch.h" -#include -#include -#include - -int ModifyServicePermissions(std::wstring serviceName) -{ - const wil::unique_schandle scManager(OpenSCManager(nullptr, nullptr, 0)); - if (scManager == nullptr) - { - return GetLastError(); - } - - const wil::unique_schandle hService(OpenService(scManager.get(), serviceName.c_str(), WRITE_DAC)); - if (hService == nullptr) - { - return GetLastError(); - } - - wil::unique_hlocal_security_descriptor SecurityDescriptor; - if (!ConvertStringSecurityDescriptorToSecurityDescriptorW( - L"D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)" - L"(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)" - L"(A;;CCLCSWLOCRRC;;;IU)" - L"(A;;CCLCSWLOCRRC;;;SU)" - L"(A;;RPWPLC;;;IU)" - L"S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)", - SDDL_REVISION_1, &SecurityDescriptor, 0)) - { - return GetLastError(); - } - - if (!SetServiceObjectSecurity(hService.get(), DACL_SECURITY_INFORMATION, SecurityDescriptor.get())) - { - return GetLastError(); - } - - return 0; -} - -int DeleteService(std::wstring serviceName) -{ - const wil::unique_schandle scManager(OpenSCManager(nullptr, nullptr, SC_MANAGER_ALL_ACCESS)); - if (scManager == nullptr) - { - return GetLastError(); - } - - const wil::unique_schandle service(OpenService(scManager.get(), serviceName.c_str(), GENERIC_ALL)); - if (service == nullptr) - { - const auto err = GetLastError(); - if (err == ERROR_SERVICE_DOES_NOT_EXIST) - { - return 0; - } - - return err; - } - - SERVICE_STATUS_PROCESS status; - if (!ControlService(service.get(), SERVICE_CONTROL_STOP, reinterpret_cast(&status))) - { - const auto err = GetLastError(); - if (err != ERROR_SERVICE_NOT_ACTIVE) - { - return err; - } - } - - if (!DeleteService(service.get())) - { - return GetLastError(); - } - - return 0; -} - -int CreateDriverService(std::wstring serviceName, std::wstring displayName, std::wstring driverFile) -{ - const auto absolutePath = L"\"\\??\\" + driverFile + L"\""; - const auto kernelPath = L"\\??\\" + driverFile; - - const wil::unique_schandle scManager(OpenSCManager(nullptr, nullptr, SC_MANAGER_ALL_ACCESS)); - if (scManager == nullptr) - { - return GetLastError(); - } - - const wil::unique_schandle service(CreateService( - scManager.get(), - serviceName.c_str(), - displayName.c_str(), - SERVICE_ALL_ACCESS, - SERVICE_KERNEL_DRIVER, - SERVICE_DEMAND_START, - SERVICE_ERROR_NORMAL, - absolutePath.c_str(), - L"NDIS", - nullptr, - L"TCPIP\0", - nullptr, - nullptr - )); - if (service == nullptr) - { - return GetLastError(); - } - - BOOL changed = ChangeServiceConfig(service.get(), - SERVICE_NO_CHANGE, - SERVICE_NO_CHANGE, - SERVICE_NO_CHANGE, - kernelPath.c_str(), - nullptr, - nullptr, - nullptr, - nullptr, - nullptr, - nullptr); - if (!changed) - { - return GetLastError(); - } - - return 0; -} diff --git a/src/ProtonVPN.InstallActions/Service.h b/src/ProtonVPN.InstallActions/Service.h deleted file mode 100644 index 29500df8e..000000000 --- a/src/ProtonVPN.InstallActions/Service.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once -#include - -int ModifyServicePermissions(std::wstring serviceName); -int DeleteService(std::wstring serviceName); -int CreateDriverService(std::wstring serviceName, std::wstring displayName, std::wstring driverPath); diff --git a/src/ProtonVPN.InstallActions/ServiceManager.cpp b/src/ProtonVPN.InstallActions/ServiceManager.cpp new file mode 100644 index 000000000..d3ef7497d --- /dev/null +++ b/src/ProtonVPN.InstallActions/ServiceManager.cpp @@ -0,0 +1,248 @@ +#include "ServiceManager.h" +#include +#include +#include +#include "Utils.h" +#include "WinApiErrorException.h" + +using namespace std; + +void ServiceManager::Create(wstring name, wstring display_name, wstring file_path, DWORD type) +{ + wstring path; + if (type == SERVICE_KERNEL_DRIVER) + { + path += L"\\??\\" + file_path; + } + else + { + path += L"\"" + file_path + L"\""; + } + + wil::unique_schandle sc_manager = GetServiceManagerHandle(); + wil::unique_schandle service; + + if (Exists(name)) + { + service = GetServiceHandle(sc_manager, name, SERVICE_ALL_ACCESS); + } + else + { + service = wil::unique_schandle(CreateService( + sc_manager.get(), + name.c_str(), + display_name.c_str(), + SERVICE_ALL_ACCESS, + type, + SERVICE_DEMAND_START, + SERVICE_ERROR_NORMAL, + (type == SERVICE_KERNEL_DRIVER ? path + L"\"" : path).c_str(), + L"NDIS", + nullptr, + L"TCPIP\0", + nullptr, + nullptr + )); + } + + if (service == nullptr) + { + throw WinApiErrorException(L"Failed to create service " + name + L".", GetLastError()); + } + + const bool changed = ChangeServiceConfig(service.get(), + SERVICE_NO_CHANGE, + SERVICE_NO_CHANGE, + SERVICE_NO_CHANGE, + path.c_str(), + nullptr, + nullptr, + nullptr, + nullptr, + nullptr, + nullptr); + if (!changed) + { + throw WinApiErrorException(L"Failed to change service " + name + L" config.", GetLastError()); + } + + if (type != SERVICE_KERNEL_DRIVER) + { + ModifyPermissions(service, name); + } +} + +void ServiceManager::Delete(wstring name) +{ + wil::unique_schandle sc_manager = GetServiceManagerHandle(); + wil::unique_schandle service = GetServiceHandle(sc_manager, name, SERVICE_ALL_ACCESS); + if (service == nullptr) + { + const DWORD last_error = GetLastError(); + if (last_error == ERROR_SERVICE_DOES_NOT_EXIST) + { + LogMessage(L"Service " + name + L" does not exist. Skipping its removal."); + return; + } + + throw WinApiErrorException(L"Failed to receive service handle on service " + name + L" delete.", + GetLastError()); + } + + Stop(service, name); + + if (!DeleteService(service.get())) + { + throw WinApiErrorException(L"Failed to delete service " + name + L".", GetLastError()); + } +} + +void ServiceManager::Stop(wil::unique_schandle& handle, wstring name) +{ + SERVICE_STATUS_PROCESS status = GetStatus(handle); + if (status.dwCurrentState == SERVICE_STOPPED) + { + LogMessage(L"Service " + name + L" is already stopped."); + return; + } + + DWORD wait_time; + DWORD start_time = GetTickCount(); + + while (status.dwCurrentState == SERVICE_STOP_PENDING) + { + LogMessage(L"Service " + name + L" stop pending..."); + + wait_time = GetWaitTime(status); + Sleep(wait_time); + + status = GetStatus(handle); + if (status.dwCurrentState == SERVICE_STOPPED) + { + LogMessage(L"Service " + name + L" stopped."); + return; + } + + if (GetTickCount() - start_time > timeout_) + { + LogMessage(L"Service " + name + L" stop timed out."); + } + } + + if (!ControlService(handle.get(), SERVICE_CONTROL_STOP, reinterpret_cast(&status))) + { + const DWORD last_error = GetLastError(); + if (last_error != ERROR_SERVICE_NOT_ACTIVE) + { + throw WinApiErrorException(L"Failed to stop service " + name + L".", GetLastError()); + } + } + + status = GetStatus(handle); + while (status.dwCurrentState != SERVICE_STOPPED) + { + Sleep(status.dwWaitHint); + status = GetStatus(handle); + + if (status.dwCurrentState == SERVICE_STOPPED) + { + LogMessage(L"Service " + name + L" stopped."); + break; + } + + if (GetTickCount() - start_time > timeout_) + { + LogMessage(L"Service " + name + L" stop timed out."); + } + } +} + +DWORD ServiceManager::GetWaitTime(SERVICE_STATUS_PROCESS status) +{ + DWORD wait_time = status.dwWaitHint / 10; + if (wait_time < 1000) + { + wait_time = 1000; + } + else if (wait_time > 10000) + { + wait_time = 10000; + } + + return wait_time; +} + +SERVICE_STATUS_PROCESS ServiceManager::GetStatus(wil::unique_schandle& handle) +{ + SERVICE_STATUS_PROCESS status; + DWORD bytes_needed; + + if (!QueryServiceStatusEx( + handle.get(), + SC_STATUS_PROCESS_INFO, + reinterpret_cast(&status), + sizeof(SERVICE_STATUS_PROCESS), + &bytes_needed)) + { + throw WinApiErrorException(L"QueryServiceStatusEx failed.", GetLastError()); + } + + return status; +} + +void ServiceManager::ModifyPermissions(wil::unique_schandle& handle, wstring name) +{ + wil::unique_hlocal_security_descriptor security_descriptor; + + if (!ConvertStringSecurityDescriptorToSecurityDescriptor( + L"D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)" + L"(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)" + L"(A;;CCLCSWLOCRRC;;;IU)" + L"(A;;CCLCSWLOCRRC;;;SU)" + L"(A;;RPWPLC;;;IU)" + L"S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)", + SDDL_REVISION_1, &security_descriptor, nullptr)) + { + throw WinApiErrorException(L"Failed to convert string security descriptor for service " + name + L".", + GetLastError()); + } + + if (!SetServiceObjectSecurity(handle.get(), DACL_SECURITY_INFORMATION, security_descriptor.get())) + { + throw WinApiErrorException(L"Failed to set security descriptor for service " + name + L".", GetLastError()); + } +} + +bool ServiceManager::Exists(std::wstring name) +{ + wil::unique_schandle handle = GetServiceManagerHandle(); + SC_HANDLE service = OpenService(handle.get(), name.c_str(), SERVICE_QUERY_CONFIG); + if (service == nullptr) + { + DWORD last_error = GetLastError(); + if (last_error == ERROR_SERVICE_DOES_NOT_EXIST) + { + return false; + } + + throw WinApiErrorException(L"Failed to open service " + name + L".", last_error); + } + + return true; +} + +wil::unique_schandle ServiceManager::GetServiceManagerHandle() +{ + wil::unique_schandle handle = wil::unique_schandle(OpenSCManager(nullptr, nullptr, SC_MANAGER_ALL_ACCESS)); + if (handle == nullptr) + { + throw WinApiErrorException(L"Failed to open service manager.", GetLastError()); + } + + return handle; +} + +wil::unique_schandle ServiceManager::GetServiceHandle(wil::unique_schandle& handle, wstring name, DWORD access) +{ + return wil::unique_schandle(OpenService(handle.get(), name.c_str(), access)); +} diff --git a/src/ProtonVPN.InstallActions/ServiceManager.h b/src/ProtonVPN.InstallActions/ServiceManager.h new file mode 100644 index 000000000..6027796ab --- /dev/null +++ b/src/ProtonVPN.InstallActions/ServiceManager.h @@ -0,0 +1,20 @@ +#pragma once +#include +#include + +class ServiceManager +{ +public: + void Create(std::wstring name, std::wstring displayName, std::wstring file_path, DWORD serviceType); + void Delete(std::wstring serviceName); + void Stop(wil::unique_schandle& handle, std::wstring name); + bool Exists(std::wstring name); + +private: + const DWORD timeout_ = 30000; + wil::unique_schandle GetServiceManagerHandle(); + wil::unique_schandle GetServiceHandle(wil::unique_schandle& handle, std::wstring name, DWORD access); + void ModifyPermissions(wil::unique_schandle& handle, std::wstring name); + SERVICE_STATUS_PROCESS GetStatus(wil::unique_schandle& handle); + DWORD GetWaitTime(SERVICE_STATUS_PROCESS status); +}; diff --git a/src/ProtonVPN.InstallActions/StartupApp.cpp b/src/ProtonVPN.InstallActions/StartupApp.cpp deleted file mode 100644 index cf2ac0f98..000000000 --- a/src/ProtonVPN.InstallActions/StartupApp.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "pch.h" -#include "Utils.h" - -void add_installer_to_startup() -{ - TCHAR tmp_path[MAX_PATH]; - GetTempPath(MAX_PATH, tmp_path); - - const std::wstring tmp_path_str(tmp_path); - const auto installer_path = GetProperty(L"AI_SETUPEXEPATH"); - const auto base_filename = installer_path.substr(installer_path.find_last_of(L"\\\\") + 1); - const auto tmp_new_path = tmp_path_str + base_filename; - const auto new_path = std::wstring(tmp_new_path.begin(), tmp_new_path.end()); - - LogMessage(L"Origin installer path: " + installer_path); - LogMessage(L"New tmp path: " + new_path); - - if (!CopyFile(installer_path.c_str(), new_path.c_str(), false)) - { - LogMessage(L"Failed to copy the installer file: " + std::to_wstring(GetLastError())); - } - - HKEY h_key = nullptr; - RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce"), 0, - KEY_WRITE | KEY_WOW64_64KEY, &h_key); - if (h_key != nullptr) - { - RegSetValueEx(h_key, nullptr, 0, REG_SZ, reinterpret_cast(new_path.c_str()), - (new_path.length() + 1) * sizeof(wchar_t)); - RegCloseKey(h_key); - } -} \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/StartupApp.h b/src/ProtonVPN.InstallActions/StartupApp.h deleted file mode 100644 index 735c669aa..000000000 --- a/src/ProtonVPN.InstallActions/StartupApp.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -void add_installer_to_startup(); diff --git a/src/ProtonVPN.InstallActions/StringConverter.cpp b/src/ProtonVPN.InstallActions/StringConverter.cpp deleted file mode 100644 index 48c455dfd..000000000 --- a/src/ProtonVPN.InstallActions/StringConverter.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "pch.h" -#include "StringConverter.h" - -std::wstring Utf8StringToWstring(const std::string& str) -{ - if (str.empty()) - { - return std::wstring(); - } - - int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), NULL, 0); - std::wstring wstrTo(size_needed, 0); - MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed); - - return wstrTo; -} - -std::string Utf8WstringToString(const std::wstring& wstr) -{ - if (wstr.empty()) - { - return std::string(); - } - - int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), NULL, 0, NULL, NULL); - std::string strTo(size_needed, 0); - WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), &strTo[0], size_needed, NULL, NULL); - - return strTo; -} \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/StringConverter.h b/src/ProtonVPN.InstallActions/StringConverter.h deleted file mode 100644 index 7424ecbf8..000000000 --- a/src/ProtonVPN.InstallActions/StringConverter.h +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once -#include - -std::wstring Utf8StringToWstring(const std::string& str); -std::string Utf8WstringToString(const std::wstring& wstr); - diff --git a/src/ProtonVPN.InstallActions/SystemState.cpp b/src/ProtonVPN.InstallActions/SystemState.cpp deleted file mode 100644 index 5a9afc295..000000000 --- a/src/ProtonVPN.InstallActions/SystemState.cpp +++ /dev/null @@ -1,115 +0,0 @@ -#include "pch.h" -#include "winreg.h" - -HKEY get_key(const LPCWSTR key) -{ - HKEY h_key = nullptr; - RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_READ | KEY_WOW64_64KEY, &h_key); - - return h_key; -} - -bool run_once_check() -{ - const auto key = get_key(TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce")); - if (key != nullptr) - { - WCHAR sz_buffer[512]; - DWORD dw_buffer_size = sizeof sz_buffer; - const auto result = RegQueryValueEx(key, nullptr, nullptr, nullptr, reinterpret_cast(sz_buffer), - &dw_buffer_size); - if (result == ERROR_SUCCESS && wcscmp(sz_buffer, L"DVDRebootSignal") == 0) - { - RegCloseKey(key); - return true; - } - - RegCloseKey(key); - } - - return false; -} - -bool check_keys_exist() -{ - LPCWSTR keys_exist[] = { - TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Component Based Servicing\\RebootPending"), - TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Component Based Servicing\\RebootInProgress"), - TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Auto Update\\RebootRequired"), - TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Component Based Servicing\\PackagesPending"), - TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Auto Update\\PostRebootReporting"), - }; - - for (const auto key : keys_exist) - { - const auto key_p = get_key(key); - if (key_p != nullptr) - { - RegCloseKey(key_p); - return true; - } - } - - return false; -} - -bool pending_update() -{ - const auto key = get_key(TEXT("SOFTWARE\\Microsoft\\Updates")); - if (key != nullptr) - { - WCHAR sz_buffer[512]; - DWORD dw_buffer_size = sizeof sz_buffer; - const auto result = RegQueryValueEx( - key, - TEXT("UpdateExeVolatile"), - nullptr, - nullptr, - reinterpret_cast(sz_buffer), - &dw_buffer_size); - - if (result == ERROR_SUCCESS && wcscmp(sz_buffer, L"0") != 0) - { - RegCloseKey(key); - return true; - } - - RegCloseKey(key); - } - - const auto updatePendingKey = get_key(TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WindowsUpdate\\Services\\Pending")); - if (updatePendingKey != nullptr) - { - DWORD total_subkeys = 0; - - RegQueryInfoKey(updatePendingKey, - nullptr, - nullptr, - nullptr, - &total_subkeys, - nullptr, - nullptr, - nullptr, - nullptr, - nullptr, - nullptr, - nullptr); - - if (total_subkeys > 0) - { - RegCloseKey(updatePendingKey); - return true; - } - - RegCloseKey(updatePendingKey); - } - - return false; -} - -bool pending_reboot() -{ - return check_keys_exist() || - run_once_check() || - pending_update(); -} diff --git a/src/ProtonVPN.InstallActions/SystemState.h b/src/ProtonVPN.InstallActions/SystemState.h deleted file mode 100644 index 0a9cfecc5..000000000 --- a/src/ProtonVPN.InstallActions/SystemState.h +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once - -bool pending_reboot(); diff --git a/src/ProtonVPN.InstallActions/TapInstallationOutputParser.cpp b/src/ProtonVPN.InstallActions/TapInstallationOutputParser.cpp new file mode 100644 index 000000000..8753604c5 --- /dev/null +++ b/src/ProtonVPN.InstallActions/TapInstallationOutputParser.cpp @@ -0,0 +1,48 @@ +#include +#include "TapInstallationOutputParser.h" +#include +#include +#include "Os.h" +#include "Utils.h" + +DriverState TapInstallationOutputParser::ParseInstallerStatus(string output) +{ + if (FindCaseInsensitive(output, "The device has the following problem")) + { + return DeviceHasAProblem; + } + + if (FindCaseInsensitive(output, "Device is disabled")) + { + return DeviceIsDisabled; + } + + if (FindCaseInsensitive(output, "Device is currently stopped")) + { + return DeviceIsStopped; + } + + if (FindCaseInsensitive(output, "No matching devices found")) + { + return NoDeviceFound; + } + + if (FindCaseInsensitive(output, " matching device(s) found")) + { + return DeviceExists; + } + + return Os::Unknown; +} + +optional TapInstallationOutputParser::ParseDeviceCode(string output) +{ + const regex re(R"(: ?(\\d+))"); + cmatch m; + if (regex_search(output.c_str(), m, re)) + { + return stoi(m[1].str()); + } + + return {}; +} diff --git a/src/ProtonVPN.InstallActions/TapInstallationOutputParser.h b/src/ProtonVPN.InstallActions/TapInstallationOutputParser.h new file mode 100644 index 000000000..5d4038eb3 --- /dev/null +++ b/src/ProtonVPN.InstallActions/TapInstallationOutputParser.h @@ -0,0 +1,14 @@ +#pragma once +#include +#include +#include "Os.h" + +using namespace std; +using namespace Os; + +class TapInstallationOutputParser +{ +public: + static DriverState ParseInstallerStatus(string output); + static optional ParseDeviceCode(string output); +}; diff --git a/src/ProtonVPN.InstallActions/TapInstaller.cpp b/src/ProtonVPN.InstallActions/TapInstaller.cpp new file mode 100644 index 000000000..0a07edac4 --- /dev/null +++ b/src/ProtonVPN.InstallActions/TapInstaller.cpp @@ -0,0 +1,210 @@ +#include +#include "TapInstaller.h" +#include +#include "Os.h" +#include "TapInstallationOutputParser.h" +#include "Utils.h" +#include +#include + +using namespace std; + +TapInstaller::TapInstaller(const wchar_t* p) +{ + this->tap_files_path = wstring(p) + L"\\"; +} + +DWORD TapInstaller::Install() +{ + const string version = GetInstalledAdapterVersion(); + bool is_to_install = false; + + if (version.empty()) + { + LogMessage(L"TAP adapter is not installed."); + is_to_install = true; + } + else + { + if (IsVersionOutdated(version)) + { + const string str = std::format("Currently installed TAP adapter version {0} is outdated.", version); + LogMessage(StrToConstWChar(str)); + is_to_install = true; + Uninstall(); + } + } + + ProcessExecutionResult driverStatus = ProcessExecutionResult({}, 0); + if (is_to_install) + { + const ProcessExecutionResult result = RunInstall(); + driverStatus = GetStatus(); + if (result.exitCode != 0) + { + return ProcessDeviceErrorCode(driverStatus); + } + } + else + { + driverStatus = GetStatus(); + } + + if (IsDisabled(driverStatus.output)) + { + LogMessage(L"TAP driver is disabled."); + RunEnable(); + } + + return 0; +} + +DWORD TapInstaller::Uninstall() +{ + const string version = GetInstalledAdapterVersion(); + if (version.empty()) + { + return 0; + } + + return RunRemove().exitCode; +} + +DWORD TapInstaller::ProcessDeviceErrorCode(ProcessExecutionResult result) +{ + if (IsHealthyAndRunning(result.output)) + { + return 0; + } + + if (IsDriverUpdateRequired(result.output)) + { + LogMessage(L"TAP driver update required."); + RunUpdate(); + } + + if (IsDriverReinstallationRequired(result.output)) + { + LogMessage(L"TAP driver reinstall required."); + Uninstall(); + return Install(); + } + + return result.exitCode; +} + +bool TapInstaller::IsVersionOutdated(string version) +{ + return VersionCompare(TapVersion, version) == 1; +} + +string TapInstaller::GetInstalledAdapterVersion() +{ + const ProcessExecutionResult result = GetDriverInfo(); + if (result.exitCode == 0) + { + const regex re(R"(Driver version is ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+))"); + cmatch m; + if (regex_search(result.output.c_str(), m, re)) + { + return m[1].str(); + } + } + + return {}; +} + +ProcessExecutionResult TapInstaller::RunCommand(wstring command) +{ + LogMessage(std::format(L"Executing command: {0} {1}", GetInstallerPath().c_str(), command)); + ProcessExecutionResult result = RunProcess(GetInstallerPath().c_str(), command); + LogMessage(std::format(L"Command finished with exit code {0}, output: \n{1}", result.exitCode, + StrToConstWChar(result.output))); + return result; +} + +ProcessExecutionResult TapInstaller::RunEnable() +{ + return RunCommand(L" enable " + HardwareId); +} + +ProcessExecutionResult TapInstaller::GetStatus() +{ + return RunCommand(L" status " + HardwareId); +} + +ProcessExecutionResult TapInstaller::RunUpdate() +{ + return RunCommand(L" update \"" + GetDriverPath() + L"\" " + HardwareId); +} + +ProcessExecutionResult TapInstaller::RunInstall() +{ + return RunCommand(L" install \"" + GetDriverPath() + L"\" " + HardwareId); +} + +ProcessExecutionResult TapInstaller::RunRemove() +{ + return RunCommand(L" remove " + HardwareId); +} + +ProcessExecutionResult TapInstaller::GetDriverInfo() +{ + return RunCommand(L" drivernodes " + HardwareId); +} + +wstring TapInstaller::GetInstallerPath() +{ + return tap_files_path + L"tapinstall.exe"; +} + +wstring TapInstaller::GetDriverPath() +{ + return tap_files_path + L"OemVista.inf"; +} + +bool TapInstaller::IsRestartRequired(string output) +{ + const optional code = TapInstallationOutputParser::ParseDeviceCode(output); + if (code.has_value()) + { + const int error_codes[] = {3, 14, 21, 28, 33, 38, 42, 44, 47, 54}; + return std::find(std::begin(error_codes), std::end(error_codes), code.value()) != std::end(error_codes); + } + + return false; +} + +bool TapInstaller::IsDriverUpdateRequired(string output) +{ + const optional code = TapInstallationOutputParser::ParseDeviceCode(output); + if (code.has_value()) + { + const int error_codes[] = {1, 10, 18, 24, 31, 41, 48, 52}; + return std::find(std::begin(error_codes), std::end(error_codes), code.value()) != std::end(error_codes); + } + + return false; +} + +bool TapInstaller::IsDriverReinstallationRequired(string output) +{ + const optional code = TapInstallationOutputParser::ParseDeviceCode(output); + if (code.has_value()) + { + const int error_codes[] = {3, 18, 19, 28, 32, 37, 39, 40}; + return std::find(std::begin(error_codes), std::end(error_codes), code.value()) != std::end(error_codes); + } + + return false; +} + +bool TapInstaller::IsHealthyAndRunning(string output) +{ + return TapInstallationOutputParser::ParseInstallerStatus(output) == DeviceExists; +} + +bool TapInstaller::IsDisabled(string output) +{ + return TapInstallationOutputParser::ParseInstallerStatus(output) == DeviceIsDisabled; +} diff --git a/src/ProtonVPN.InstallActions/TapInstaller.h b/src/ProtonVPN.InstallActions/TapInstaller.h new file mode 100644 index 000000000..c785ae9c0 --- /dev/null +++ b/src/ProtonVPN.InstallActions/TapInstaller.h @@ -0,0 +1,38 @@ +#pragma once +#include +#include "ProcessExecutionResult.h" + +using namespace std; + +class TapInstaller +{ +public: + TapInstaller(const wchar_t* tap_files_path); + DWORD Install(); + DWORD Uninstall(); + +private: + DWORD ProcessDeviceErrorCode(ProcessExecutionResult result); + bool IsVersionOutdated(string version); + string GetInstalledAdapterVersion(); + + ProcessExecutionResult RunCommand(wstring command); + ProcessExecutionResult RunEnable(); + ProcessExecutionResult GetStatus(); + ProcessExecutionResult RunUpdate(); + ProcessExecutionResult RunInstall(); + ProcessExecutionResult RunRemove(); + ProcessExecutionResult GetDriverInfo(); + + wstring GetInstallerPath(); + wstring GetDriverPath(); + bool IsRestartRequired(string output); + bool IsDriverUpdateRequired(string output); + bool IsDriverReinstallationRequired(string output); + bool IsHealthyAndRunning(string output); + bool IsDisabled(string output); + + wstring tap_files_path; + const string TapVersion = "9.24.6.601"; + const wstring HardwareId = L"tapprotonvpn"; +}; diff --git a/src/ProtonVPN.InstallActions/TunAdapter.cpp b/src/ProtonVPN.InstallActions/TunAdapter.cpp deleted file mode 100644 index 1dc2ef979..000000000 --- a/src/ProtonVPN.InstallActions/TunAdapter.cpp +++ /dev/null @@ -1,157 +0,0 @@ -#include "pch.h" -#include -#include -#include "Utils.h" -#include "Wintun.h" - -static WINTUN_CREATE_ADAPTER_FUNC WintunCreateAdapter; -static WINTUN_FREE_ADAPTER_FUNC WintunFreeAdapter; -static WINTUN_OPEN_ADAPTER_FUNC WintunOpenAdapter; -static WINTUN_DELETE_POOL_DRIVER_FUNC WintunDeletePoolDriver; -static WINTUN_SET_LOGGER_FUNC WintunSetLogger; - -const WCHAR *AdapterPoolName = L"ProtonVPN"; -const WCHAR *AdapterName = L"ProtonVPN TUN"; -const GUID AdapterGuid = { 0xafdeecba, 0xdfba, 0xcaff, {0x50, 0x44, 0x01, 0x34, 0x12, 0xbc, 0xea, 0xcd} }; - -static void CALLBACK InstallLogger(_In_ WINTUN_LOGGER_LEVEL Level, _In_z_ const WCHAR* LogLine) -{ - LogMessage(LogLine); -} - -static void SetCurrentDir(const std::wstring path, size_t lastSlashPosition) -{ - std::wstring directory = path.substr(0, lastSlashPosition); - std::wstring newCurrentDirectory = directory + L"\\"; - LogMessage(L"Setting current directory to: " + newCurrentDirectory); - if (!SetCurrentDirectory(newCurrentDirectory.c_str())) - { - LogMessage(L"Failed to change current directory: ", GetLastError()); - } -} - -static HMODULE InitializeWintun(LPCWSTR dllPath) -{ - TCHAR currentDirectory[MAX_PATH]; - GetCurrentDirectory(MAX_PATH, currentDirectory); - - std::wstring pathStr = static_cast(dllPath); - const size_t lastSlashPosition = pathStr.rfind('\\'); - if (std::string::npos != lastSlashPosition) - { - SetCurrentDir(pathStr, lastSlashPosition); - } - - std::wstring wintunDll = pathStr.substr(lastSlashPosition + 1, pathStr.length()); - HMODULE Wintun = LoadLibrary(wintunDll.c_str()); - SetCurrentDirectory(currentDirectory); - - if (!Wintun) - { - return nullptr; - } - -#define X(Name, Type) (((Name) = (Type)GetProcAddress(Wintun, #Name)) == NULL) - if (X(WintunCreateAdapter, WINTUN_CREATE_ADAPTER_FUNC) || - X(WintunDeletePoolDriver, WINTUN_DELETE_POOL_DRIVER_FUNC) || - X(WintunFreeAdapter, WINTUN_FREE_ADAPTER_FUNC) || - X(WintunSetLogger, WINTUN_SET_LOGGER_FUNC) || - X(WintunOpenAdapter, WINTUN_OPEN_ADAPTER_FUNC)) -#undef X - { - DWORD LastError = GetLastError(); - FreeLibrary(Wintun); - SetLastError(LastError); - - return nullptr; - } - - return Wintun; -} - -int InstallTunAdapter(LPCWSTR dllPath) -{ - DWORD LastError = ERROR_SUCCESS; - HMODULE Wintun = InitializeWintun(dllPath); - - if (!Wintun) - { - LastError = GetLastError(); - LogMessage(L"Failed to initialize Wintun: ", LastError); - return LastError; - } - - WintunSetLogger(InstallLogger); - - WINTUN_ADAPTER_HANDLE Adapter = WintunOpenAdapter(AdapterPoolName, AdapterName); - if (Adapter != nullptr) - { - LogMessage(L"ProtonVPN TUN adapter detected. Trying to remove..."); - WintunFreeAdapter(Adapter); - - BOOL* rebootRequired = nullptr; - if (WintunDeletePoolDriver(AdapterPoolName, rebootRequired) == 0) - { - LastError = GetLastError(); - LogMessage(L"Failed to uninstall ProtonVPN TUN adapter: ", LastError); - } - else - { - LogMessage(L"ProtonVPN TUN removed. "); - } - } - - LogMessage(L"Trying to install ProtonVPN TUN: "); - Adapter = WintunCreateAdapter(AdapterPoolName, AdapterName, &AdapterGuid, nullptr); - if (Adapter == nullptr) - { - LastError = GetLastError(); - LogMessage(L"Failed to create ProtonVPN TUN adapter: ", LastError); - } - else - { - WintunFreeAdapter(Adapter); - } - - FreeLibrary(Wintun); - - return LastError; -} - -int UninstallTunAdapter(LPCWSTR dllPath, BOOL* rebootRequired) -{ - DWORD LastError = ERROR_SUCCESS; - HMODULE Wintun = InitializeWintun(dllPath); - if (!Wintun) - { - LastError = GetLastError(); - LogMessage(L"Failed to initialize Wintun: ", LastError); - return LastError; - } - - WintunSetLogger(InstallLogger); - - WINTUN_ADAPTER_HANDLE Adapter = WintunOpenAdapter(AdapterPoolName, AdapterName); - if (Adapter != nullptr) - { - WintunFreeAdapter(Adapter); - - if (WintunDeletePoolDriver(AdapterPoolName, rebootRequired) == 0) - { - LastError = GetLastError(); - LogMessage(L"Failed to uninstall ProtonVPN TUN adapter: ", LastError); - } - else - { - LogMessage(L"ProtonVPN TUN adapter uninstalled."); - } - } - else - { - LogMessage(L"ProtonVPN TUN adapter is not installed. Skipping."); - } - - FreeLibrary(Wintun); - - return LastError; -} \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/TunAdapter.h b/src/ProtonVPN.InstallActions/TunAdapter.h deleted file mode 100644 index d29713011..000000000 --- a/src/ProtonVPN.InstallActions/TunAdapter.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -int InstallTunAdapter(LPCWSTR dllPath); - -int UninstallTunAdapter(LPCWSTR dllPath, BOOL* rebootRequired); \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/Utils.cpp b/src/ProtonVPN.InstallActions/Utils.cpp index 2619744a7..3cc5729a2 100644 --- a/src/ProtonVPN.InstallActions/Utils.cpp +++ b/src/ProtonVPN.InstallActions/Utils.cpp @@ -1,57 +1,76 @@ -#include "pch.h" -#include -#include -#include "StringHelper.h" +#include +#include +#include +#include "Logger.h" +#include "WinApiErrorException.h" -MSIHANDLE msiHandle; - -void SetMsiHandle(MSIHANDLE hInstall) +void LogMessage(std::wstring message, UINT result) { - msiHandle = hInstall; -} - -void LogMessage(std::wstring message, int result) -{ - const MSIHANDLE hRecord = MsiCreateRecord(1); - MsiRecordSetString(hRecord, 0, (message + std::to_wstring(result)).c_str()); - MsiProcessMessage(msiHandle, INSTALLMESSAGE_INFO, hRecord); - MsiCloseHandle(hRecord); + logger((message + L" Error code: " + std::to_wstring(result)).c_str()); } void LogMessage(std::wstring message) { - const MSIHANDLE hRecord = MsiCreateRecord(1); - MsiRecordSetString(hRecord, 0, message.c_str()); - MsiProcessMessage(msiHandle, INSTALLMESSAGE_INFO, hRecord); - MsiCloseHandle(hRecord); + logger(message.c_str()); } -std::wstring GetProperty(std::wstring name) +int VersionCompare(std::string v1, std::string v2) { - DWORD valueBufSize = 0; - std::wstring valueBuf; + int vnum1 = 0, vnum2 = 0; + for (UINT i = 0, j = 0; i < v1.length() || j < v2.length();) + { + while (i < v1.length() && v1[i] != '.') + { + vnum1 = vnum1 * 10 + (v1[i] - '0'); + i++; + } - auto result = MsiGetProperty(msiHandle, name.c_str(), tmp_string(valueBuf, valueBufSize), &valueBufSize); + while (j < v2.length() && v2[j] != '.') + { + vnum2 = vnum2 * 10 + (v2[j] - '0'); + j++; + } - if (result == ERROR_MORE_DATA) - { - // valueBufSize now contains the size of the property's string, without null termination - // Add 1 for null termination - ++valueBufSize; - result = MsiGetProperty(msiHandle, name.c_str(), tmp_string(valueBuf, valueBufSize), &valueBufSize); - } + if (vnum1 > vnum2) + { + return 1; + } - if (result != ERROR_SUCCESS) - { - return std::wstring(); + if (vnum2 > vnum1) + { + return -1; + } + + vnum1 = vnum2 = 0; + i++; + j++; } - valueBuf[valueBufSize] = '\0'; + return 0; +} - return valueBuf; +bool FindCaseInsensitive(std::string data, std::string toSearch) +{ + std::transform(data.begin(), data.end(), data.begin(), ::tolower); + std::transform(toSearch.begin(), toSearch.end(), toSearch.begin(), ::tolower); + return data.find(toSearch, 0) != std::string::npos; +} + +std::wstring StrToConstWChar(std::string str) +{ + return std::wstring(str.begin(), str.end()); } -void SetProperty(const std::wstring name, const std::wstring value) +DWORD ExecuteAction(const std::function& func) { - MsiSetProperty(msiHandle, name.c_str(), value.c_str()); + try + { + func(); + return 0; + } + catch (WinApiErrorException& e) + { + LogMessage(e.GetError(), e.GetErrorCode()); + return e.GetErrorCode(); + } } diff --git a/src/ProtonVPN.InstallActions/Utils.h b/src/ProtonVPN.InstallActions/Utils.h index f3071a97d..f4219f633 100644 --- a/src/ProtonVPN.InstallActions/Utils.h +++ b/src/ProtonVPN.InstallActions/Utils.h @@ -1,10 +1,12 @@ #pragma once - -#include +#include #include -void SetMsiHandle(MSIHANDLE msiHandle); -void LogMessage(std::wstring message, int result); +using namespace std; + +void LogMessage(std::wstring message, UINT result); void LogMessage(std::wstring message); -std::wstring GetProperty(std::wstring name); -void SetProperty(const std::wstring name, const std::wstring value); \ No newline at end of file +int VersionCompare(std::string v1, std::string v2); +bool FindCaseInsensitive(string data, string toSearch); +std::wstring StrToConstWChar(string str); +DWORD ExecuteAction(const function& func); diff --git a/src/ProtonVPN.InstallActions/WinApiErrorException.cpp b/src/ProtonVPN.InstallActions/WinApiErrorException.cpp new file mode 100644 index 000000000..e70b32fba --- /dev/null +++ b/src/ProtonVPN.InstallActions/WinApiErrorException.cpp @@ -0,0 +1,18 @@ +#include +#include "WinApiErrorException.h" + +WinApiErrorException::WinApiErrorException(std::wstring message, DWORD error_code) +{ + this->message_ = message; + this->error_code_ = error_code; +} + +std::wstring WinApiErrorException::GetError() +{ + return message_; +} + +DWORD WinApiErrorException::GetErrorCode() +{ + return error_code_; +} diff --git a/src/ProtonVPN.InstallActions/WinApiErrorException.h b/src/ProtonVPN.InstallActions/WinApiErrorException.h new file mode 100644 index 000000000..aad5a0465 --- /dev/null +++ b/src/ProtonVPN.InstallActions/WinApiErrorException.h @@ -0,0 +1,16 @@ +#pragma once +#include +#include +#include + +class WinApiErrorException : public std::exception +{ +public: + WinApiErrorException(std::wstring message, DWORD error_code); + DWORD GetErrorCode(); + std::wstring GetError(); + +private: + std::wstring message_; + DWORD error_code_; +}; diff --git a/src/ProtonVPN.InstallActions/dllmain.cpp b/src/ProtonVPN.InstallActions/dllmain.cpp index 7361a4eee..28cd936fa 100644 --- a/src/ProtonVPN.InstallActions/dllmain.cpp +++ b/src/ProtonVPN.InstallActions/dllmain.cpp @@ -1,51 +1,32 @@ -#pragma once -#include "pch.h" #include -#include +#include #include #include -#include "EnvironmentVariable.h" -#include "Service.h" -#include "msiquery.h" -#include "StartupApp.h" -#include "SystemState.h" -#include "Utils.h" -#include "bitcompressor.hpp" -#include "bitexception.hpp" -#include "PathManager.h" -#include "StringConverter.h" +#include "ServiceManager.h" #include "Installer.h" -#include "TunAdapter.h" +#include "TapInstaller.h" #include "ip_filter.h" +#include "Logger.h" +#include "Os.h" +#include "Utils.h" +#include + +#include "AppSettingsMigration.h" #define EXPORT __declspec(dllexport) using namespace std; -const auto ServiceNameProperty = L"ServiceName"; -const auto CalloutServiceNameProperty = L"CalloutServiceName"; -const auto CalloutServiceDisplayNameProperty = L"CalloutServiceDisplayName"; -const auto CalloutDriverFileProperty = L"CalloutDriverFile"; -const auto SplitTunnelServiceNameProperty = L"SplitTunnelServiceName"; -const auto SplitTunnelServiceDisplayNameProperty = L"SplitTunnelServiceDisplayName"; -const auto SplitTunnelDriverFileProperty = L"SplitTunnelDriverFile"; -const auto ProductLanguageProperty = L"ProductLanguage"; -const auto SelectedLanguageProperty = L"SelectedLanguage"; -const auto MsiLogFileLocationProperty = L"MsiLogFileLocation"; -const auto LocalAppDataFolderProperty = L"LocalAppDataFolder"; -const auto ApplicationDirectoryProperty = L"APPDIR"; -const auto WintunDllPathProperty = L"WintunDllPath"; -const auto ProductUpgradeCodeProperty = L"ProductUpgradeCode"; -const auto RebootRequiredProperty = L"RebootRequired"; -const auto ProductNameProperty = L"ProductName"; +GUID providerGUID = {0x20865f68, 0x0b04, 0x44da, {0xbb, 0x83, 0x22, 0x38, 0x62, 0x25, 0x40, 0xfa}}; +GUID sublayerGUID = {0xaa867e71, 0x5765, 0x4be3, {0x93, 0x99, 0x58, 0x15, 0x85, 0xc2, 0x26, 0xce}}; -GUID providerGUID = { 0x20865f68, 0x0b04, 0x44da, { 0xbb, 0x83, 0x22, 0x38, 0x62, 0x25, 0x40, 0xfa } }; -GUID sublayerGUID = { 0xaa867e71, 0x5765, 0x4be3, { 0x93, 0x99, 0x58, 0x15, 0x85, 0xc2, 0x26, 0xce } }; - -extern "C" EXPORT long RemoveWfpObjects(MSIHANDLE hInstall) +extern "C" EXPORT void InitLogger(LoggerFunc loggerFunc) { - SetMsiHandle(hInstall); + logger = loggerFunc; +} +extern "C" EXPORT long RemoveWfpObjects() +{ IPFilterSessionHandle h = nullptr; UINT status = IPFilterCreateSession(&h); if (status != NO_ERROR) @@ -85,201 +66,77 @@ extern "C" EXPORT long RemoveWfpObjects(MSIHANDLE hInstall) return status; } -extern "C" EXPORT long UninstallProduct(MSIHANDLE hInstall) +extern "C" EXPORT DWORD UninstallProduct(const wchar_t* upgrade_code) { - SetMsiHandle(hInstall); - return Uninstall(GetProperty(ProductUpgradeCodeProperty).c_str()); -} - -extern "C" EXPORT long InstallTunAdapter(MSIHANDLE hInstall) -{ - SetMsiHandle(hInstall); - return InstallTunAdapter(GetProperty(WintunDllPathProperty).c_str()); -} - -extern "C" EXPORT long UninstallTunAdapter(MSIHANDLE hInstall) -{ - SetMsiHandle(hInstall); - BOOL* rebootRequired = nullptr; - const auto result = UninstallTunAdapter(GetProperty(WintunDllPathProperty).c_str(), rebootRequired); - if (rebootRequired) + return ExecuteAction([upgrade_code] { - MsiSetProperty(hInstall, RebootRequiredProperty, L"1"); - } - - return result; + return Uninstall(upgrade_code); + }); } -extern "C" EXPORT long ModifyServicePermissions(MSIHANDLE hInstall) +extern "C" EXPORT DWORD InstallService(const wchar_t* name, const wchar_t* display_name, const wchar_t* path) { - SetMsiHandle(hInstall); - auto serviceName = GetProperty(ServiceNameProperty); - auto result = ModifyServicePermissions(serviceName); - LogMessage(L"ModifyServicePermissions returned: ", result); - - return result; + return ExecuteAction([name, display_name, path] + { + ServiceManager service_manager; + service_manager.Create(name, display_name, path, SERVICE_WIN32_OWN_PROCESS); + }); } -extern "C" EXPORT long UninstallCalloutDriver(MSIHANDLE hInstall) +extern "C" EXPORT DWORD UninstallService(const wchar_t* name) { - SetMsiHandle(hInstall); - const auto serviceName = GetProperty(CalloutServiceNameProperty); - - const auto result = DeleteService(serviceName); - LogMessage(L"DeleteService returned: ", result); - - return result; + return ExecuteAction([name] + { + ServiceManager service_manager; + return service_manager.Delete(name); + }); } -extern "C" EXPORT long InstallCalloutDriver(MSIHANDLE hInstall) +extern "C" EXPORT DWORD InstallCalloutDriver(const wchar_t* name, const wchar_t* display_name, const wchar_t* path) { - SetMsiHandle(hInstall); - const auto driverFile = GetProperty(CalloutDriverFileProperty); - const auto serviceName = GetProperty(CalloutServiceNameProperty); - const auto serviceDisplayName = GetProperty(CalloutServiceDisplayNameProperty); - - const auto result = CreateDriverService( - serviceName, - serviceDisplayName, - driverFile - ); - LogMessage(L"CreateDriverService returned: ", result); - - return result; + return ExecuteAction([name, display_name, path] + { + ServiceManager service_manager; + return service_manager.Create(name, display_name, path, SERVICE_KERNEL_DRIVER); + }); } -extern "C" EXPORT long PendingReboot(MSIHANDLE hInstall) +extern "C" EXPORT DWORD InstallTapAdapter(const wchar_t* tap_files_path) { - SetMsiHandle(hInstall); - const auto result = pending_reboot(); - if (result) - { - SetProperty(L"PENDING_REBOOT", L"1"); - } - - LogMessage(L"Pending reboot value is: ", result); - - return 0; + TapInstaller tap_installer(tap_files_path); + return tap_installer.Install(); } -extern "C" EXPORT long Reboot(MSIHANDLE hInstall) +extern "C" EXPORT DWORD UninstallTapAdapter(const wchar_t* tap_files_path) { - SetMsiHandle(hInstall); - - HANDLE h_token = nullptr; - TOKEN_PRIVILEGES tkp; - - if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &h_token)) - { - return 0; - } - - LookupPrivilegeValue(nullptr, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); - tkp.PrivilegeCount = 1; - tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; - - AdjustTokenPrivileges(h_token, FALSE, &tkp, 0, static_cast(nullptr), nullptr); - if (GetLastError() == ERROR_SUCCESS) - { - add_installer_to_startup(); - ExitWindowsEx(EWX_REBOOT, SHTDN_REASON_MINOR_INSTALLATION); - - return 1; - } - - return 0; + TapInstaller tap_installer(tap_files_path); + return tap_installer.Uninstall(); } -extern "C" EXPORT long RemoveProgramData(MSIHANDLE hInstall) +extern "C" EXPORT bool IsProcessRunning(const wchar_t* process_name) { - SetMsiHandle(hInstall); - - const string programDataPath = GetEnvironmentVariable("PROGRAMDATA"); - if (programDataPath.empty()) - { - return -1; - } - const std::filesystem::path path(programDataPath + "\\ProtonVPN"); - std::filesystem::remove_all(path); - - return 0; + return Os::IsProcessRunning(process_name); } -extern "C" EXPORT long SetLanguageISOCode(MSIHANDLE hInstall) +extern "C" EXPORT DWORD SaveOldUserConfigFolder() { - SetMsiHandle(hInstall); - - const wstring strValue = GetProperty(ProductLanguageProperty); - const int value = std::stoi(strValue); - wstring language = L""; - switch (value) - { - case 1031: language = L"de-DE"; break; - case 1033: language = L"en-US"; break; - case 1034: language = L"es-ES"; break; - case 58378: language = L"es-419"; break; - case 1065: language = L"fa-IR"; break; - case 1036: language = L"fr-FR"; break; - case 1040: language = L"it-IT"; break; - case 1043: language = L"nl-NL"; break; - case 1045: language = L"pl-PL"; break; - case 1046: language = L"pt-BR"; break; - case 2070: language = L"pt-PT"; break; - case 1049: language = L"ru-RU"; break; - case 1055: language = L"tr-TR"; break; - case 1050: language = L"hr-HR"; break; - case 1057: language = L"id-ID"; break; - case 1058: language = L"uk-UA"; break; - case 1029: language = L"cs-CZ"; break; - case 1048: language = L"ro-RO"; break; - } - if (!language.empty()) + return ExecuteAction([] { - SetProperty(SelectedLanguageProperty, language); - } + AppSettingsMigration app_settings; + app_settings.SaveOldUserConfigFolder(); - return 0; + return 0; + }); } -void AddFileToZip(const std::wstring& zipFileName, const std::wstring& fileName) +extern "C" EXPORT DWORD RestoreOldUserConfigFolder(const wchar_t* application_path) { - std::wstring installDirectory = GetProperty(ApplicationDirectoryProperty); - const std::wstring sevenZipDllPath = AddEndingSlashIfNotExists(installDirectory) + L"7za.dll"; - - try + return ExecuteAction([application_path] { - bit7z::Bit7zLibrary lib{ sevenZipDllPath }; - bit7z::BitCompressor compressor{ lib, bit7z::BitFormat::SevenZip }; - - std::vector files = { fileName }; + std::wstring w_path(application_path); + AppSettingsMigration app_settings; + app_settings.RestoreOldUserConfigFolder(string(w_path.begin(), w_path.end())); - compressor.setUpdateMode(true); - compressor.compressFiles(files, zipFileName); - } - catch (const bit7z::BitException& ex) - { - LogMessage(L"Error when compressing file to zip: " + Utf8StringToWstring(ex.what())); - } + return 0; + }); } - -extern "C" EXPORT long CopyInstallLog(MSIHANDLE hInstall) -{ - SetMsiHandle(hInstall); - - const std::wstring productName = GetProperty(ProductNameProperty); - const std::wstring logFile = GetProperty(MsiLogFileLocationProperty); - std::wstring localAppDataFolder = GetProperty(LocalAppDataFolderProperty); - const std::wstring logFolder = AddEndingSlashIfNotExists(localAppDataFolder) + L"ProtonVPN\\DiagnosticLogs\\"; - const std::wstring tmpLogFile = logFolder + productName + L"_install.log"; - - std::filesystem::create_directories(logFolder); - const std::filesystem::copy_options copyOptions = std::filesystem::copy_options::overwrite_existing; - copy_file(logFile, tmpLogFile, copyOptions); - - const std::wstring zipFileName = logFolder + productName + L"_install-log.7z"; - - AddFileToZip(zipFileName, tmpLogFile); - std::filesystem::remove(tmpLogFile); - - return 0; -} \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/framework.h b/src/ProtonVPN.InstallActions/framework.h deleted file mode 100644 index 13268fd22..000000000 --- a/src/ProtonVPN.InstallActions/framework.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -#define WIN32_LEAN_AND_MEAN - -#define WINVER 0x0601 -#define _WIN32_WINNT 0x0601 - -#include diff --git a/src/ProtonVPN.InstallActions/pch.cpp b/src/ProtonVPN.InstallActions/pch.cpp deleted file mode 100644 index 64b7eef6d..000000000 --- a/src/ProtonVPN.InstallActions/pch.cpp +++ /dev/null @@ -1,5 +0,0 @@ -// pch.cpp: source file corresponding to the pre-compiled header - -#include "pch.h" - -// When you are using pre-compiled headers, this source file is necessary for compilation to succeed. diff --git a/src/ProtonVPN.InstallActions/pch.h b/src/ProtonVPN.InstallActions/pch.h deleted file mode 100644 index c9667f6cd..000000000 --- a/src/ProtonVPN.InstallActions/pch.h +++ /dev/null @@ -1,13 +0,0 @@ -// pch.h: This is a precompiled header file. -// Files listed below are compiled only once, improving build performance for future builds. -// This also affects IntelliSense performance, including code completion and many code browsing features. -// However, files listed here are ALL re-compiled if any one of them is updated between builds. -// Do not add files here that you will be updating frequently as this negates the performance advantage. - -#ifndef PCH_H -#define PCH_H - - -#include "framework.h" - -#endif //PCH_H diff --git a/src/ProtonVPN.InstallActions/pugixml/pugiconfig.hpp b/src/ProtonVPN.InstallActions/pugixml/pugiconfig.hpp new file mode 100644 index 000000000..88b2f2aee --- /dev/null +++ b/src/ProtonVPN.InstallActions/pugixml/pugiconfig.hpp @@ -0,0 +1,77 @@ +/** + * pugixml parser - version 1.13 + * -------------------------------------------------------- + * Copyright (C) 2006-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at https://pugixml.org/ + * + * This library is distributed under the MIT License. See notice at the end + * of this file. + * + * This work is based on the pugxml parser, which is: + * Copyright (C) 2003, by Kristen Wegner (kristen@tima.net) + */ + +#ifndef HEADER_PUGICONFIG_HPP +#define HEADER_PUGICONFIG_HPP + +// Uncomment this to enable wchar_t mode +// #define PUGIXML_WCHAR_MODE + +// Uncomment this to enable compact mode +// #define PUGIXML_COMPACT + +// Uncomment this to disable XPath +// #define PUGIXML_NO_XPATH + +// Uncomment this to disable STL +// #define PUGIXML_NO_STL + +// Uncomment this to disable exceptions +// #define PUGIXML_NO_EXCEPTIONS + +// Set this to control attributes for public classes/functions, i.e.: +// #define PUGIXML_API __declspec(dllexport) // to export all public symbols from DLL +// #define PUGIXML_CLASS __declspec(dllimport) // to import all classes from DLL +// #define PUGIXML_FUNCTION __fastcall // to set calling conventions to all public functions to fastcall +// In absence of PUGIXML_CLASS/PUGIXML_FUNCTION definitions PUGIXML_API is used instead + +// Tune these constants to adjust memory-related behavior +// #define PUGIXML_MEMORY_PAGE_SIZE 32768 +// #define PUGIXML_MEMORY_OUTPUT_STACK 10240 +// #define PUGIXML_MEMORY_XPATH_PAGE_SIZE 4096 + +// Tune this constant to adjust max nesting for XPath queries +// #define PUGIXML_XPATH_DEPTH_LIMIT 1024 + +// Uncomment this to switch to header-only version +// #define PUGIXML_HEADER_ONLY + +// Uncomment this to enable long long support +// #define PUGIXML_HAS_LONG_LONG + +#endif + +/** + * Copyright (c) 2006-2022 Arseny Kapoulkine + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ diff --git a/src/ProtonVPN.InstallActions/pugixml/pugixml.cpp b/src/ProtonVPN.InstallActions/pugixml/pugixml.cpp new file mode 100644 index 000000000..c63645b67 --- /dev/null +++ b/src/ProtonVPN.InstallActions/pugixml/pugixml.cpp @@ -0,0 +1,13158 @@ +/** + * pugixml parser - version 1.13 + * -------------------------------------------------------- + * Copyright (C) 2006-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at https://pugixml.org/ + * + * This library is distributed under the MIT License. See notice at the end + * of this file. + * + * This work is based on the pugxml parser, which is: + * Copyright (C) 2003, by Kristen Wegner (kristen@tima.net) + */ + +#ifndef SOURCE_PUGIXML_CPP +#define SOURCE_PUGIXML_CPP + +#include "pugixml.hpp" + +#include +#include +#include +#include +#include + +#ifdef PUGIXML_WCHAR_MODE +# include +#endif + +#ifndef PUGIXML_NO_XPATH +# include +# include +#endif + +#ifndef PUGIXML_NO_STL +# include +# include +# include +#endif + +// For placement new +#include + +#ifdef _MSC_VER +# pragma warning(push) +# pragma warning(disable: 4127) // conditional expression is constant +# pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +# pragma warning(disable: 4702) // unreachable code +# pragma warning(disable: 4996) // this function or variable may be unsafe +#endif + +#if defined(_MSC_VER) && defined(__c2__) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wdeprecated" // this function or variable may be unsafe +#endif + +#ifdef __INTEL_COMPILER +# pragma warning(disable: 177) // function was declared but never referenced +# pragma warning(disable: 279) // controlling expression is constant +# pragma warning(disable: 1478 1786) // function was declared "deprecated" +# pragma warning(disable: 1684) // conversion from pointer to same-sized integral type +#endif + +#if defined(__BORLANDC__) && defined(PUGIXML_HEADER_ONLY) +# pragma warn -8080 // symbol is declared but never used; disabling this inside push/pop bracket does not make the warning go away +#endif + +#ifdef __BORLANDC__ +# pragma option push +# pragma warn -8008 // condition is always false +# pragma warn -8066 // unreachable code +#endif + +#ifdef __SNC__ +// Using diag_push/diag_pop does not disable the warnings inside templates due to a compiler bug +# pragma diag_suppress=178 // function was declared but never referenced +# pragma diag_suppress=237 // controlling expression is constant +#endif + +#ifdef __TI_COMPILER_VERSION__ +# pragma diag_suppress 179 // function was declared but never referenced +#endif + +// Inlining controls +#if defined(_MSC_VER) && _MSC_VER >= 1300 +# define PUGI__NO_INLINE __declspec(noinline) +#elif defined(__GNUC__) +# define PUGI__NO_INLINE __attribute__((noinline)) +#else +# define PUGI__NO_INLINE +#endif + +// Branch weight controls +#if defined(__GNUC__) && !defined(__c2__) +# define PUGI__UNLIKELY(cond) __builtin_expect(cond, 0) +#else +# define PUGI__UNLIKELY(cond) (cond) +#endif + +// Simple static assertion +#define PUGI__STATIC_ASSERT(cond) { static const char condition_failed[(cond) ? 1 : -1] = {0}; (void)condition_failed[0]; } + +// Digital Mars C++ bug workaround for passing char loaded from memory via stack +#ifdef __DMC__ +# define PUGI__DMC_VOLATILE volatile +#else +# define PUGI__DMC_VOLATILE +#endif + +// Integer sanitizer workaround; we only apply this for clang since gcc8 has no_sanitize but not unsigned-integer-overflow and produces "attribute directive ignored" warnings +#if defined(__clang__) && defined(__has_attribute) +# if __has_attribute(no_sanitize) +# define PUGI__UNSIGNED_OVERFLOW __attribute__((no_sanitize("unsigned-integer-overflow"))) +# else +# define PUGI__UNSIGNED_OVERFLOW +# endif +#else +# define PUGI__UNSIGNED_OVERFLOW +#endif + +// Borland C++ bug workaround for not defining ::memcpy depending on header include order (can't always use std::memcpy because some compilers don't have it at all) +#if defined(__BORLANDC__) && !defined(__MEM_H_USING_LIST) +using std::memcpy; +using std::memmove; +using std::memset; +#endif + +// Some MinGW/GCC versions have headers that erroneously omit LLONG_MIN/LLONG_MAX/ULLONG_MAX definitions from limits.h in some configurations +#if defined(PUGIXML_HAS_LONG_LONG) && defined(__GNUC__) && !defined(LLONG_MAX) && !defined(LLONG_MIN) && !defined(ULLONG_MAX) +# define LLONG_MIN (-LLONG_MAX - 1LL) +# define LLONG_MAX __LONG_LONG_MAX__ +# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) +#endif + +// In some environments MSVC is a compiler but the CRT lacks certain MSVC-specific features +#if defined(_MSC_VER) && !defined(__S3E__) && !defined(_WIN32_WCE) +# define PUGI__MSVC_CRT_VERSION _MSC_VER +#elif defined(_WIN32_WCE) +# define PUGI__MSVC_CRT_VERSION 1310 // MSVC7.1 +#endif + +// Not all platforms have snprintf; we define a wrapper that uses snprintf if possible. This only works with buffers with a known size. +#if __cplusplus >= 201103 +# define PUGI__SNPRINTF(buf, ...) snprintf(buf, sizeof(buf), __VA_ARGS__) +#elif defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 +# define PUGI__SNPRINTF(buf, ...) _snprintf_s(buf, _countof(buf), _TRUNCATE, __VA_ARGS__) +#else +# define PUGI__SNPRINTF sprintf +#endif + +// We put implementation details into an anonymous namespace in source mode, but have to keep it in non-anonymous namespace in header-only mode to prevent binary bloat. +#ifdef PUGIXML_HEADER_ONLY +# define PUGI__NS_BEGIN namespace pugi { namespace impl { +# define PUGI__NS_END } } +# define PUGI__FN inline +# define PUGI__FN_NO_INLINE inline +#else +# if defined(_MSC_VER) && _MSC_VER < 1300 // MSVC6 seems to have an amusing bug with anonymous namespaces inside namespaces +# define PUGI__NS_BEGIN namespace pugi { namespace impl { +# define PUGI__NS_END } } +# else +# define PUGI__NS_BEGIN namespace pugi { namespace impl { namespace { +# define PUGI__NS_END } } } +# endif +# define PUGI__FN +# define PUGI__FN_NO_INLINE PUGI__NO_INLINE +#endif + +// uintptr_t +#if (defined(_MSC_VER) && _MSC_VER < 1600) || (defined(__BORLANDC__) && __BORLANDC__ < 0x561) +namespace pugi +{ +# ifndef _UINTPTR_T_DEFINED + typedef size_t uintptr_t; +# endif + + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; +} +#else +# include +#endif + +// Memory allocation +PUGI__NS_BEGIN + PUGI__FN void* default_allocate(size_t size) + { + return malloc(size); + } + + PUGI__FN void default_deallocate(void* ptr) + { + free(ptr); + } + + template + struct xml_memory_management_function_storage + { + static allocation_function allocate; + static deallocation_function deallocate; + }; + + // Global allocation functions are stored in class statics so that in header mode linker deduplicates them + // Without a template<> we'll get multiple definitions of the same static + template allocation_function xml_memory_management_function_storage::allocate = default_allocate; + template deallocation_function xml_memory_management_function_storage::deallocate = default_deallocate; + + typedef xml_memory_management_function_storage xml_memory; +PUGI__NS_END + +// String utilities +PUGI__NS_BEGIN + // Get string length + PUGI__FN size_t strlength(const char_t* s) + { + assert(s); + + #ifdef PUGIXML_WCHAR_MODE + return wcslen(s); + #else + return strlen(s); + #endif + } + + // Compare two strings + PUGI__FN bool strequal(const char_t* src, const char_t* dst) + { + assert(src && dst); + + #ifdef PUGIXML_WCHAR_MODE + return wcscmp(src, dst) == 0; + #else + return strcmp(src, dst) == 0; + #endif + } + + // Compare lhs with [rhs_begin, rhs_end) + PUGI__FN bool strequalrange(const char_t* lhs, const char_t* rhs, size_t count) + { + for (size_t i = 0; i < count; ++i) + if (lhs[i] != rhs[i]) + return false; + + return lhs[count] == 0; + } + + // Get length of wide string, even if CRT lacks wide character support + PUGI__FN size_t strlength_wide(const wchar_t* s) + { + assert(s); + + #ifdef PUGIXML_WCHAR_MODE + return wcslen(s); + #else + const wchar_t* end = s; + while (*end) end++; + return static_cast(end - s); + #endif + } +PUGI__NS_END + +// auto_ptr-like object for exception recovery +PUGI__NS_BEGIN + template struct auto_deleter + { + typedef void (*D)(T*); + + T* data; + D deleter; + + auto_deleter(T* data_, D deleter_): data(data_), deleter(deleter_) + { + } + + ~auto_deleter() + { + if (data) deleter(data); + } + + T* release() + { + T* result = data; + data = 0; + return result; + } + }; +PUGI__NS_END + +#ifdef PUGIXML_COMPACT +PUGI__NS_BEGIN + class compact_hash_table + { + public: + compact_hash_table(): _items(0), _capacity(0), _count(0) + { + } + + void clear() + { + if (_items) + { + xml_memory::deallocate(_items); + _items = 0; + _capacity = 0; + _count = 0; + } + } + + void* find(const void* key) + { + if (_capacity == 0) return 0; + + item_t* item = get_item(key); + assert(item); + assert(item->key == key || (item->key == 0 && item->value == 0)); + + return item->value; + } + + void insert(const void* key, void* value) + { + assert(_capacity != 0 && _count < _capacity - _capacity / 4); + + item_t* item = get_item(key); + assert(item); + + if (item->key == 0) + { + _count++; + item->key = key; + } + + item->value = value; + } + + bool reserve(size_t extra = 16) + { + if (_count + extra >= _capacity - _capacity / 4) + return rehash(_count + extra); + + return true; + } + + private: + struct item_t + { + const void* key; + void* value; + }; + + item_t* _items; + size_t _capacity; + + size_t _count; + + bool rehash(size_t count); + + item_t* get_item(const void* key) + { + assert(key); + assert(_capacity > 0); + + size_t hashmod = _capacity - 1; + size_t bucket = hash(key) & hashmod; + + for (size_t probe = 0; probe <= hashmod; ++probe) + { + item_t& probe_item = _items[bucket]; + + if (probe_item.key == key || probe_item.key == 0) + return &probe_item; + + // hash collision, quadratic probing + bucket = (bucket + probe + 1) & hashmod; + } + + assert(false && "Hash table is full"); // unreachable + return 0; + } + + static PUGI__UNSIGNED_OVERFLOW unsigned int hash(const void* key) + { + unsigned int h = static_cast(reinterpret_cast(key) & 0xffffffff); + + // MurmurHash3 32-bit finalizer + h ^= h >> 16; + h *= 0x85ebca6bu; + h ^= h >> 13; + h *= 0xc2b2ae35u; + h ^= h >> 16; + + return h; + } + }; + + PUGI__FN_NO_INLINE bool compact_hash_table::rehash(size_t count) + { + size_t capacity = 32; + while (count >= capacity - capacity / 4) + capacity *= 2; + + compact_hash_table rt; + rt._capacity = capacity; + rt._items = static_cast(xml_memory::allocate(sizeof(item_t) * capacity)); + + if (!rt._items) + return false; + + memset(rt._items, 0, sizeof(item_t) * capacity); + + for (size_t i = 0; i < _capacity; ++i) + if (_items[i].key) + rt.insert(_items[i].key, _items[i].value); + + if (_items) + xml_memory::deallocate(_items); + + _capacity = capacity; + _items = rt._items; + + assert(_count == rt._count); + + return true; + } + +PUGI__NS_END +#endif + +PUGI__NS_BEGIN +#ifdef PUGIXML_COMPACT + static const uintptr_t xml_memory_block_alignment = 4; +#else + static const uintptr_t xml_memory_block_alignment = sizeof(void*); +#endif + + // extra metadata bits + static const uintptr_t xml_memory_page_contents_shared_mask = 64; + static const uintptr_t xml_memory_page_name_allocated_mask = 32; + static const uintptr_t xml_memory_page_value_allocated_mask = 16; + static const uintptr_t xml_memory_page_type_mask = 15; + + // combined masks for string uniqueness + static const uintptr_t xml_memory_page_name_allocated_or_shared_mask = xml_memory_page_name_allocated_mask | xml_memory_page_contents_shared_mask; + static const uintptr_t xml_memory_page_value_allocated_or_shared_mask = xml_memory_page_value_allocated_mask | xml_memory_page_contents_shared_mask; + +#ifdef PUGIXML_COMPACT + #define PUGI__GETHEADER_IMPL(object, page, flags) // unused + #define PUGI__GETPAGE_IMPL(header) (header).get_page() +#else + #define PUGI__GETHEADER_IMPL(object, page, flags) (((reinterpret_cast(object) - reinterpret_cast(page)) << 8) | (flags)) + // this macro casts pointers through void* to avoid 'cast increases required alignment of target type' warnings + #define PUGI__GETPAGE_IMPL(header) static_cast(const_cast(static_cast(reinterpret_cast(&header) - (header >> 8)))) +#endif + + #define PUGI__GETPAGE(n) PUGI__GETPAGE_IMPL((n)->header) + #define PUGI__NODETYPE(n) static_cast((n)->header & impl::xml_memory_page_type_mask) + + struct xml_allocator; + + struct xml_memory_page + { + static xml_memory_page* construct(void* memory) + { + xml_memory_page* result = static_cast(memory); + + result->allocator = 0; + result->prev = 0; + result->next = 0; + result->busy_size = 0; + result->freed_size = 0; + + #ifdef PUGIXML_COMPACT + result->compact_string_base = 0; + result->compact_shared_parent = 0; + result->compact_page_marker = 0; + #endif + + return result; + } + + xml_allocator* allocator; + + xml_memory_page* prev; + xml_memory_page* next; + + size_t busy_size; + size_t freed_size; + + #ifdef PUGIXML_COMPACT + char_t* compact_string_base; + void* compact_shared_parent; + uint32_t* compact_page_marker; + #endif + }; + + static const size_t xml_memory_page_size = + #ifdef PUGIXML_MEMORY_PAGE_SIZE + (PUGIXML_MEMORY_PAGE_SIZE) + #else + 32768 + #endif + - sizeof(xml_memory_page); + + struct xml_memory_string_header + { + uint16_t page_offset; // offset from page->data + uint16_t full_size; // 0 if string occupies whole page + }; + + struct xml_allocator + { + xml_allocator(xml_memory_page* root): _root(root), _busy_size(root->busy_size) + { + #ifdef PUGIXML_COMPACT + _hash = 0; + #endif + } + + xml_memory_page* allocate_page(size_t data_size) + { + size_t size = sizeof(xml_memory_page) + data_size; + + // allocate block with some alignment, leaving memory for worst-case padding + void* memory = xml_memory::allocate(size); + if (!memory) return 0; + + // prepare page structure + xml_memory_page* page = xml_memory_page::construct(memory); + assert(page); + + assert(this == _root->allocator); + page->allocator = this; + + return page; + } + + static void deallocate_page(xml_memory_page* page) + { + xml_memory::deallocate(page); + } + + void* allocate_memory_oob(size_t size, xml_memory_page*& out_page); + + void* allocate_memory(size_t size, xml_memory_page*& out_page) + { + if (PUGI__UNLIKELY(_busy_size + size > xml_memory_page_size)) + return allocate_memory_oob(size, out_page); + + void* buf = reinterpret_cast(_root) + sizeof(xml_memory_page) + _busy_size; + + _busy_size += size; + + out_page = _root; + + return buf; + } + + #ifdef PUGIXML_COMPACT + void* allocate_object(size_t size, xml_memory_page*& out_page) + { + void* result = allocate_memory(size + sizeof(uint32_t), out_page); + if (!result) return 0; + + // adjust for marker + ptrdiff_t offset = static_cast(result) - reinterpret_cast(out_page->compact_page_marker); + + if (PUGI__UNLIKELY(static_cast(offset) >= 256 * xml_memory_block_alignment)) + { + // insert new marker + uint32_t* marker = static_cast(result); + + *marker = static_cast(reinterpret_cast(marker) - reinterpret_cast(out_page)); + out_page->compact_page_marker = marker; + + // since we don't reuse the page space until we reallocate it, we can just pretend that we freed the marker block + // this will make sure deallocate_memory correctly tracks the size + out_page->freed_size += sizeof(uint32_t); + + return marker + 1; + } + else + { + // roll back uint32_t part + _busy_size -= sizeof(uint32_t); + + return result; + } + } + #else + void* allocate_object(size_t size, xml_memory_page*& out_page) + { + return allocate_memory(size, out_page); + } + #endif + + void deallocate_memory(void* ptr, size_t size, xml_memory_page* page) + { + if (page == _root) page->busy_size = _busy_size; + + assert(ptr >= reinterpret_cast(page) + sizeof(xml_memory_page) && ptr < reinterpret_cast(page) + sizeof(xml_memory_page) + page->busy_size); + (void)!ptr; + + page->freed_size += size; + assert(page->freed_size <= page->busy_size); + + if (page->freed_size == page->busy_size) + { + if (page->next == 0) + { + assert(_root == page); + + // top page freed, just reset sizes + page->busy_size = 0; + page->freed_size = 0; + + #ifdef PUGIXML_COMPACT + // reset compact state to maximize efficiency + page->compact_string_base = 0; + page->compact_shared_parent = 0; + page->compact_page_marker = 0; + #endif + + _busy_size = 0; + } + else + { + assert(_root != page); + assert(page->prev); + + // remove from the list + page->prev->next = page->next; + page->next->prev = page->prev; + + // deallocate + deallocate_page(page); + } + } + } + + char_t* allocate_string(size_t length) + { + static const size_t max_encoded_offset = (1 << 16) * xml_memory_block_alignment; + + PUGI__STATIC_ASSERT(xml_memory_page_size <= max_encoded_offset); + + // allocate memory for string and header block + size_t size = sizeof(xml_memory_string_header) + length * sizeof(char_t); + + // round size up to block alignment boundary + size_t full_size = (size + (xml_memory_block_alignment - 1)) & ~(xml_memory_block_alignment - 1); + + xml_memory_page* page; + xml_memory_string_header* header = static_cast(allocate_memory(full_size, page)); + + if (!header) return 0; + + // setup header + ptrdiff_t page_offset = reinterpret_cast(header) - reinterpret_cast(page) - sizeof(xml_memory_page); + + assert(page_offset % xml_memory_block_alignment == 0); + assert(page_offset >= 0 && static_cast(page_offset) < max_encoded_offset); + header->page_offset = static_cast(static_cast(page_offset) / xml_memory_block_alignment); + + // full_size == 0 for large strings that occupy the whole page + assert(full_size % xml_memory_block_alignment == 0); + assert(full_size < max_encoded_offset || (page->busy_size == full_size && page_offset == 0)); + header->full_size = static_cast(full_size < max_encoded_offset ? full_size / xml_memory_block_alignment : 0); + + // round-trip through void* to avoid 'cast increases required alignment of target type' warning + // header is guaranteed a pointer-sized alignment, which should be enough for char_t + return static_cast(static_cast(header + 1)); + } + + void deallocate_string(char_t* string) + { + // this function casts pointers through void* to avoid 'cast increases required alignment of target type' warnings + // we're guaranteed the proper (pointer-sized) alignment on the input string if it was allocated via allocate_string + + // get header + xml_memory_string_header* header = static_cast(static_cast(string)) - 1; + assert(header); + + // deallocate + size_t page_offset = sizeof(xml_memory_page) + header->page_offset * xml_memory_block_alignment; + xml_memory_page* page = reinterpret_cast(static_cast(reinterpret_cast(header) - page_offset)); + + // if full_size == 0 then this string occupies the whole page + size_t full_size = header->full_size == 0 ? page->busy_size : header->full_size * xml_memory_block_alignment; + + deallocate_memory(header, full_size, page); + } + + bool reserve() + { + #ifdef PUGIXML_COMPACT + return _hash->reserve(); + #else + return true; + #endif + } + + xml_memory_page* _root; + size_t _busy_size; + + #ifdef PUGIXML_COMPACT + compact_hash_table* _hash; + #endif + }; + + PUGI__FN_NO_INLINE void* xml_allocator::allocate_memory_oob(size_t size, xml_memory_page*& out_page) + { + const size_t large_allocation_threshold = xml_memory_page_size / 4; + + xml_memory_page* page = allocate_page(size <= large_allocation_threshold ? xml_memory_page_size : size); + out_page = page; + + if (!page) return 0; + + if (size <= large_allocation_threshold) + { + _root->busy_size = _busy_size; + + // insert page at the end of linked list + page->prev = _root; + _root->next = page; + _root = page; + + _busy_size = size; + } + else + { + // insert page before the end of linked list, so that it is deleted as soon as possible + // the last page is not deleted even if it's empty (see deallocate_memory) + assert(_root->prev); + + page->prev = _root->prev; + page->next = _root; + + _root->prev->next = page; + _root->prev = page; + + page->busy_size = size; + } + + return reinterpret_cast(page) + sizeof(xml_memory_page); + } +PUGI__NS_END + +#ifdef PUGIXML_COMPACT +PUGI__NS_BEGIN + static const uintptr_t compact_alignment_log2 = 2; + static const uintptr_t compact_alignment = 1 << compact_alignment_log2; + + class compact_header + { + public: + compact_header(xml_memory_page* page, unsigned int flags) + { + PUGI__STATIC_ASSERT(xml_memory_block_alignment == compact_alignment); + + ptrdiff_t offset = (reinterpret_cast(this) - reinterpret_cast(page->compact_page_marker)); + assert(offset % compact_alignment == 0 && static_cast(offset) < 256 * compact_alignment); + + _page = static_cast(offset >> compact_alignment_log2); + _flags = static_cast(flags); + } + + void operator&=(uintptr_t mod) + { + _flags &= static_cast(mod); + } + + void operator|=(uintptr_t mod) + { + _flags |= static_cast(mod); + } + + uintptr_t operator&(uintptr_t mod) const + { + return _flags & mod; + } + + xml_memory_page* get_page() const + { + // round-trip through void* to silence 'cast increases required alignment of target type' warnings + const char* page_marker = reinterpret_cast(this) - (_page << compact_alignment_log2); + const char* page = page_marker - *reinterpret_cast(static_cast(page_marker)); + + return const_cast(reinterpret_cast(static_cast(page))); + } + + private: + unsigned char _page; + unsigned char _flags; + }; + + PUGI__FN xml_memory_page* compact_get_page(const void* object, int header_offset) + { + const compact_header* header = reinterpret_cast(static_cast(object) - header_offset); + + return header->get_page(); + } + + template PUGI__FN_NO_INLINE T* compact_get_value(const void* object) + { + return static_cast(compact_get_page(object, header_offset)->allocator->_hash->find(object)); + } + + template PUGI__FN_NO_INLINE void compact_set_value(const void* object, T* value) + { + compact_get_page(object, header_offset)->allocator->_hash->insert(object, value); + } + + template class compact_pointer + { + public: + compact_pointer(): _data(0) + { + } + + void operator=(const compact_pointer& rhs) + { + *this = rhs + 0; + } + + void operator=(T* value) + { + if (value) + { + // value is guaranteed to be compact-aligned; 'this' is not + // our decoding is based on 'this' aligned to compact alignment downwards (see operator T*) + // so for negative offsets (e.g. -3) we need to adjust the diff by compact_alignment - 1 to + // compensate for arithmetic shift rounding for negative values + ptrdiff_t diff = reinterpret_cast(value) - reinterpret_cast(this); + ptrdiff_t offset = ((diff + int(compact_alignment - 1)) >> compact_alignment_log2) - start; + + if (static_cast(offset) <= 253) + _data = static_cast(offset + 1); + else + { + compact_set_value(this, value); + + _data = 255; + } + } + else + _data = 0; + } + + operator T*() const + { + if (_data) + { + if (_data < 255) + { + uintptr_t base = reinterpret_cast(this) & ~(compact_alignment - 1); + + return reinterpret_cast(base + (_data - 1 + start) * compact_alignment); + } + else + return compact_get_value(this); + } + else + return 0; + } + + T* operator->() const + { + return *this; + } + + private: + unsigned char _data; + }; + + template class compact_pointer_parent + { + public: + compact_pointer_parent(): _data(0) + { + } + + void operator=(const compact_pointer_parent& rhs) + { + *this = rhs + 0; + } + + void operator=(T* value) + { + if (value) + { + // value is guaranteed to be compact-aligned; 'this' is not + // our decoding is based on 'this' aligned to compact alignment downwards (see operator T*) + // so for negative offsets (e.g. -3) we need to adjust the diff by compact_alignment - 1 to + // compensate for arithmetic shift behavior for negative values + ptrdiff_t diff = reinterpret_cast(value) - reinterpret_cast(this); + ptrdiff_t offset = ((diff + int(compact_alignment - 1)) >> compact_alignment_log2) + 65533; + + if (static_cast(offset) <= 65533) + { + _data = static_cast(offset + 1); + } + else + { + xml_memory_page* page = compact_get_page(this, header_offset); + + if (PUGI__UNLIKELY(page->compact_shared_parent == 0)) + page->compact_shared_parent = value; + + if (page->compact_shared_parent == value) + { + _data = 65534; + } + else + { + compact_set_value(this, value); + + _data = 65535; + } + } + } + else + { + _data = 0; + } + } + + operator T*() const + { + if (_data) + { + if (_data < 65534) + { + uintptr_t base = reinterpret_cast(this) & ~(compact_alignment - 1); + + return reinterpret_cast(base + (_data - 1 - 65533) * compact_alignment); + } + else if (_data == 65534) + return static_cast(compact_get_page(this, header_offset)->compact_shared_parent); + else + return compact_get_value(this); + } + else + return 0; + } + + T* operator->() const + { + return *this; + } + + private: + uint16_t _data; + }; + + template class compact_string + { + public: + compact_string(): _data(0) + { + } + + void operator=(const compact_string& rhs) + { + *this = rhs + 0; + } + + void operator=(char_t* value) + { + if (value) + { + xml_memory_page* page = compact_get_page(this, header_offset); + + if (PUGI__UNLIKELY(page->compact_string_base == 0)) + page->compact_string_base = value; + + ptrdiff_t offset = value - page->compact_string_base; + + if (static_cast(offset) < (65535 << 7)) + { + // round-trip through void* to silence 'cast increases required alignment of target type' warnings + uint16_t* base = reinterpret_cast(static_cast(reinterpret_cast(this) - base_offset)); + + if (*base == 0) + { + *base = static_cast((offset >> 7) + 1); + _data = static_cast((offset & 127) + 1); + } + else + { + ptrdiff_t remainder = offset - ((*base - 1) << 7); + + if (static_cast(remainder) <= 253) + { + _data = static_cast(remainder + 1); + } + else + { + compact_set_value(this, value); + + _data = 255; + } + } + } + else + { + compact_set_value(this, value); + + _data = 255; + } + } + else + { + _data = 0; + } + } + + operator char_t*() const + { + if (_data) + { + if (_data < 255) + { + xml_memory_page* page = compact_get_page(this, header_offset); + + // round-trip through void* to silence 'cast increases required alignment of target type' warnings + const uint16_t* base = reinterpret_cast(static_cast(reinterpret_cast(this) - base_offset)); + assert(*base); + + ptrdiff_t offset = ((*base - 1) << 7) + (_data - 1); + + return page->compact_string_base + offset; + } + else + { + return compact_get_value(this); + } + } + else + return 0; + } + + private: + unsigned char _data; + }; +PUGI__NS_END +#endif + +#ifdef PUGIXML_COMPACT +namespace pugi +{ + struct xml_attribute_struct + { + xml_attribute_struct(impl::xml_memory_page* page): header(page, 0), namevalue_base(0) + { + PUGI__STATIC_ASSERT(sizeof(xml_attribute_struct) == 8); + } + + impl::compact_header header; + + uint16_t namevalue_base; + + impl::compact_string<4, 2> name; + impl::compact_string<5, 3> value; + + impl::compact_pointer prev_attribute_c; + impl::compact_pointer next_attribute; + }; + + struct xml_node_struct + { + xml_node_struct(impl::xml_memory_page* page, xml_node_type type): header(page, type), namevalue_base(0) + { + PUGI__STATIC_ASSERT(sizeof(xml_node_struct) == 12); + } + + impl::compact_header header; + + uint16_t namevalue_base; + + impl::compact_string<4, 2> name; + impl::compact_string<5, 3> value; + + impl::compact_pointer_parent parent; + + impl::compact_pointer first_child; + + impl::compact_pointer prev_sibling_c; + impl::compact_pointer next_sibling; + + impl::compact_pointer first_attribute; + }; +} +#else +namespace pugi +{ + struct xml_attribute_struct + { + xml_attribute_struct(impl::xml_memory_page* page): name(0), value(0), prev_attribute_c(0), next_attribute(0) + { + header = PUGI__GETHEADER_IMPL(this, page, 0); + } + + uintptr_t header; + + char_t* name; + char_t* value; + + xml_attribute_struct* prev_attribute_c; + xml_attribute_struct* next_attribute; + }; + + struct xml_node_struct + { + xml_node_struct(impl::xml_memory_page* page, xml_node_type type): name(0), value(0), parent(0), first_child(0), prev_sibling_c(0), next_sibling(0), first_attribute(0) + { + header = PUGI__GETHEADER_IMPL(this, page, type); + } + + uintptr_t header; + + char_t* name; + char_t* value; + + xml_node_struct* parent; + + xml_node_struct* first_child; + + xml_node_struct* prev_sibling_c; + xml_node_struct* next_sibling; + + xml_attribute_struct* first_attribute; + }; +} +#endif + +PUGI__NS_BEGIN + struct xml_extra_buffer + { + char_t* buffer; + xml_extra_buffer* next; + }; + + struct xml_document_struct: public xml_node_struct, public xml_allocator + { + xml_document_struct(xml_memory_page* page): xml_node_struct(page, node_document), xml_allocator(page), buffer(0), extra_buffers(0) + { + } + + const char_t* buffer; + + xml_extra_buffer* extra_buffers; + + #ifdef PUGIXML_COMPACT + compact_hash_table hash; + #endif + }; + + template inline xml_allocator& get_allocator(const Object* object) + { + assert(object); + + return *PUGI__GETPAGE(object)->allocator; + } + + template inline xml_document_struct& get_document(const Object* object) + { + assert(object); + + return *static_cast(PUGI__GETPAGE(object)->allocator); + } +PUGI__NS_END + +// Low-level DOM operations +PUGI__NS_BEGIN + inline xml_attribute_struct* allocate_attribute(xml_allocator& alloc) + { + xml_memory_page* page; + void* memory = alloc.allocate_object(sizeof(xml_attribute_struct), page); + if (!memory) return 0; + + return new (memory) xml_attribute_struct(page); + } + + inline xml_node_struct* allocate_node(xml_allocator& alloc, xml_node_type type) + { + xml_memory_page* page; + void* memory = alloc.allocate_object(sizeof(xml_node_struct), page); + if (!memory) return 0; + + return new (memory) xml_node_struct(page, type); + } + + inline void destroy_attribute(xml_attribute_struct* a, xml_allocator& alloc) + { + if (a->header & impl::xml_memory_page_name_allocated_mask) + alloc.deallocate_string(a->name); + + if (a->header & impl::xml_memory_page_value_allocated_mask) + alloc.deallocate_string(a->value); + + alloc.deallocate_memory(a, sizeof(xml_attribute_struct), PUGI__GETPAGE(a)); + } + + inline void destroy_node(xml_node_struct* n, xml_allocator& alloc) + { + if (n->header & impl::xml_memory_page_name_allocated_mask) + alloc.deallocate_string(n->name); + + if (n->header & impl::xml_memory_page_value_allocated_mask) + alloc.deallocate_string(n->value); + + for (xml_attribute_struct* attr = n->first_attribute; attr; ) + { + xml_attribute_struct* next = attr->next_attribute; + + destroy_attribute(attr, alloc); + + attr = next; + } + + for (xml_node_struct* child = n->first_child; child; ) + { + xml_node_struct* next = child->next_sibling; + + destroy_node(child, alloc); + + child = next; + } + + alloc.deallocate_memory(n, sizeof(xml_node_struct), PUGI__GETPAGE(n)); + } + + inline void append_node(xml_node_struct* child, xml_node_struct* node) + { + child->parent = node; + + xml_node_struct* head = node->first_child; + + if (head) + { + xml_node_struct* tail = head->prev_sibling_c; + + tail->next_sibling = child; + child->prev_sibling_c = tail; + head->prev_sibling_c = child; + } + else + { + node->first_child = child; + child->prev_sibling_c = child; + } + } + + inline void prepend_node(xml_node_struct* child, xml_node_struct* node) + { + child->parent = node; + + xml_node_struct* head = node->first_child; + + if (head) + { + child->prev_sibling_c = head->prev_sibling_c; + head->prev_sibling_c = child; + } + else + child->prev_sibling_c = child; + + child->next_sibling = head; + node->first_child = child; + } + + inline void insert_node_after(xml_node_struct* child, xml_node_struct* node) + { + xml_node_struct* parent = node->parent; + + child->parent = parent; + + xml_node_struct* next = node->next_sibling; + + if (next) + next->prev_sibling_c = child; + else + parent->first_child->prev_sibling_c = child; + + child->next_sibling = next; + child->prev_sibling_c = node; + + node->next_sibling = child; + } + + inline void insert_node_before(xml_node_struct* child, xml_node_struct* node) + { + xml_node_struct* parent = node->parent; + + child->parent = parent; + + xml_node_struct* prev = node->prev_sibling_c; + + if (prev->next_sibling) + prev->next_sibling = child; + else + parent->first_child = child; + + child->prev_sibling_c = prev; + child->next_sibling = node; + + node->prev_sibling_c = child; + } + + inline void remove_node(xml_node_struct* node) + { + xml_node_struct* parent = node->parent; + + xml_node_struct* next = node->next_sibling; + xml_node_struct* prev = node->prev_sibling_c; + + if (next) + next->prev_sibling_c = prev; + else + parent->first_child->prev_sibling_c = prev; + + if (prev->next_sibling) + prev->next_sibling = next; + else + parent->first_child = next; + + node->parent = 0; + node->prev_sibling_c = 0; + node->next_sibling = 0; + } + + inline void append_attribute(xml_attribute_struct* attr, xml_node_struct* node) + { + xml_attribute_struct* head = node->first_attribute; + + if (head) + { + xml_attribute_struct* tail = head->prev_attribute_c; + + tail->next_attribute = attr; + attr->prev_attribute_c = tail; + head->prev_attribute_c = attr; + } + else + { + node->first_attribute = attr; + attr->prev_attribute_c = attr; + } + } + + inline void prepend_attribute(xml_attribute_struct* attr, xml_node_struct* node) + { + xml_attribute_struct* head = node->first_attribute; + + if (head) + { + attr->prev_attribute_c = head->prev_attribute_c; + head->prev_attribute_c = attr; + } + else + attr->prev_attribute_c = attr; + + attr->next_attribute = head; + node->first_attribute = attr; + } + + inline void insert_attribute_after(xml_attribute_struct* attr, xml_attribute_struct* place, xml_node_struct* node) + { + xml_attribute_struct* next = place->next_attribute; + + if (next) + next->prev_attribute_c = attr; + else + node->first_attribute->prev_attribute_c = attr; + + attr->next_attribute = next; + attr->prev_attribute_c = place; + place->next_attribute = attr; + } + + inline void insert_attribute_before(xml_attribute_struct* attr, xml_attribute_struct* place, xml_node_struct* node) + { + xml_attribute_struct* prev = place->prev_attribute_c; + + if (prev->next_attribute) + prev->next_attribute = attr; + else + node->first_attribute = attr; + + attr->prev_attribute_c = prev; + attr->next_attribute = place; + place->prev_attribute_c = attr; + } + + inline void remove_attribute(xml_attribute_struct* attr, xml_node_struct* node) + { + xml_attribute_struct* next = attr->next_attribute; + xml_attribute_struct* prev = attr->prev_attribute_c; + + if (next) + next->prev_attribute_c = prev; + else + node->first_attribute->prev_attribute_c = prev; + + if (prev->next_attribute) + prev->next_attribute = next; + else + node->first_attribute = next; + + attr->prev_attribute_c = 0; + attr->next_attribute = 0; + } + + PUGI__FN_NO_INLINE xml_node_struct* append_new_node(xml_node_struct* node, xml_allocator& alloc, xml_node_type type = node_element) + { + if (!alloc.reserve()) return 0; + + xml_node_struct* child = allocate_node(alloc, type); + if (!child) return 0; + + append_node(child, node); + + return child; + } + + PUGI__FN_NO_INLINE xml_attribute_struct* append_new_attribute(xml_node_struct* node, xml_allocator& alloc) + { + if (!alloc.reserve()) return 0; + + xml_attribute_struct* attr = allocate_attribute(alloc); + if (!attr) return 0; + + append_attribute(attr, node); + + return attr; + } +PUGI__NS_END + +// Helper classes for code generation +PUGI__NS_BEGIN + struct opt_false + { + enum { value = 0 }; + }; + + struct opt_true + { + enum { value = 1 }; + }; +PUGI__NS_END + +// Unicode utilities +PUGI__NS_BEGIN + inline uint16_t endian_swap(uint16_t value) + { + return static_cast(((value & 0xff) << 8) | (value >> 8)); + } + + inline uint32_t endian_swap(uint32_t value) + { + return ((value & 0xff) << 24) | ((value & 0xff00) << 8) | ((value & 0xff0000) >> 8) | (value >> 24); + } + + struct utf8_counter + { + typedef size_t value_type; + + static value_type low(value_type result, uint32_t ch) + { + // U+0000..U+007F + if (ch < 0x80) return result + 1; + // U+0080..U+07FF + else if (ch < 0x800) return result + 2; + // U+0800..U+FFFF + else return result + 3; + } + + static value_type high(value_type result, uint32_t) + { + // U+10000..U+10FFFF + return result + 4; + } + }; + + struct utf8_writer + { + typedef uint8_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + // U+0000..U+007F + if (ch < 0x80) + { + *result = static_cast(ch); + return result + 1; + } + // U+0080..U+07FF + else if (ch < 0x800) + { + result[0] = static_cast(0xC0 | (ch >> 6)); + result[1] = static_cast(0x80 | (ch & 0x3F)); + return result + 2; + } + // U+0800..U+FFFF + else + { + result[0] = static_cast(0xE0 | (ch >> 12)); + result[1] = static_cast(0x80 | ((ch >> 6) & 0x3F)); + result[2] = static_cast(0x80 | (ch & 0x3F)); + return result + 3; + } + } + + static value_type high(value_type result, uint32_t ch) + { + // U+10000..U+10FFFF + result[0] = static_cast(0xF0 | (ch >> 18)); + result[1] = static_cast(0x80 | ((ch >> 12) & 0x3F)); + result[2] = static_cast(0x80 | ((ch >> 6) & 0x3F)); + result[3] = static_cast(0x80 | (ch & 0x3F)); + return result + 4; + } + + static value_type any(value_type result, uint32_t ch) + { + return (ch < 0x10000) ? low(result, ch) : high(result, ch); + } + }; + + struct utf16_counter + { + typedef size_t value_type; + + static value_type low(value_type result, uint32_t) + { + return result + 1; + } + + static value_type high(value_type result, uint32_t) + { + return result + 2; + } + }; + + struct utf16_writer + { + typedef uint16_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + *result = static_cast(ch); + + return result + 1; + } + + static value_type high(value_type result, uint32_t ch) + { + uint32_t msh = static_cast(ch - 0x10000) >> 10; + uint32_t lsh = static_cast(ch - 0x10000) & 0x3ff; + + result[0] = static_cast(0xD800 + msh); + result[1] = static_cast(0xDC00 + lsh); + + return result + 2; + } + + static value_type any(value_type result, uint32_t ch) + { + return (ch < 0x10000) ? low(result, ch) : high(result, ch); + } + }; + + struct utf32_counter + { + typedef size_t value_type; + + static value_type low(value_type result, uint32_t) + { + return result + 1; + } + + static value_type high(value_type result, uint32_t) + { + return result + 1; + } + }; + + struct utf32_writer + { + typedef uint32_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + *result = ch; + + return result + 1; + } + + static value_type high(value_type result, uint32_t ch) + { + *result = ch; + + return result + 1; + } + + static value_type any(value_type result, uint32_t ch) + { + *result = ch; + + return result + 1; + } + }; + + struct latin1_writer + { + typedef uint8_t* value_type; + + static value_type low(value_type result, uint32_t ch) + { + *result = static_cast(ch > 255 ? '?' : ch); + + return result + 1; + } + + static value_type high(value_type result, uint32_t ch) + { + (void)ch; + + *result = '?'; + + return result + 1; + } + }; + + struct utf8_decoder + { + typedef uint8_t type; + + template static inline typename Traits::value_type process(const uint8_t* data, size_t size, typename Traits::value_type result, Traits) + { + const uint8_t utf8_byte_mask = 0x3f; + + while (size) + { + uint8_t lead = *data; + + // 0xxxxxxx -> U+0000..U+007F + if (lead < 0x80) + { + result = Traits::low(result, lead); + data += 1; + size -= 1; + + // process aligned single-byte (ascii) blocks + if ((reinterpret_cast(data) & 3) == 0) + { + // round-trip through void* to silence 'cast increases required alignment of target type' warnings + while (size >= 4 && (*static_cast(static_cast(data)) & 0x80808080) == 0) + { + result = Traits::low(result, data[0]); + result = Traits::low(result, data[1]); + result = Traits::low(result, data[2]); + result = Traits::low(result, data[3]); + data += 4; + size -= 4; + } + } + } + // 110xxxxx -> U+0080..U+07FF + else if (static_cast(lead - 0xC0) < 0x20 && size >= 2 && (data[1] & 0xc0) == 0x80) + { + result = Traits::low(result, ((lead & ~0xC0) << 6) | (data[1] & utf8_byte_mask)); + data += 2; + size -= 2; + } + // 1110xxxx -> U+0800-U+FFFF + else if (static_cast(lead - 0xE0) < 0x10 && size >= 3 && (data[1] & 0xc0) == 0x80 && (data[2] & 0xc0) == 0x80) + { + result = Traits::low(result, ((lead & ~0xE0) << 12) | ((data[1] & utf8_byte_mask) << 6) | (data[2] & utf8_byte_mask)); + data += 3; + size -= 3; + } + // 11110xxx -> U+10000..U+10FFFF + else if (static_cast(lead - 0xF0) < 0x08 && size >= 4 && (data[1] & 0xc0) == 0x80 && (data[2] & 0xc0) == 0x80 && (data[3] & 0xc0) == 0x80) + { + result = Traits::high(result, ((lead & ~0xF0) << 18) | ((data[1] & utf8_byte_mask) << 12) | ((data[2] & utf8_byte_mask) << 6) | (data[3] & utf8_byte_mask)); + data += 4; + size -= 4; + } + // 10xxxxxx or 11111xxx -> invalid + else + { + data += 1; + size -= 1; + } + } + + return result; + } + }; + + template struct utf16_decoder + { + typedef uint16_t type; + + template static inline typename Traits::value_type process(const uint16_t* data, size_t size, typename Traits::value_type result, Traits) + { + while (size) + { + uint16_t lead = opt_swap::value ? endian_swap(*data) : *data; + + // U+0000..U+D7FF + if (lead < 0xD800) + { + result = Traits::low(result, lead); + data += 1; + size -= 1; + } + // U+E000..U+FFFF + else if (static_cast(lead - 0xE000) < 0x2000) + { + result = Traits::low(result, lead); + data += 1; + size -= 1; + } + // surrogate pair lead + else if (static_cast(lead - 0xD800) < 0x400 && size >= 2) + { + uint16_t next = opt_swap::value ? endian_swap(data[1]) : data[1]; + + if (static_cast(next - 0xDC00) < 0x400) + { + result = Traits::high(result, 0x10000 + ((lead & 0x3ff) << 10) + (next & 0x3ff)); + data += 2; + size -= 2; + } + else + { + data += 1; + size -= 1; + } + } + else + { + data += 1; + size -= 1; + } + } + + return result; + } + }; + + template struct utf32_decoder + { + typedef uint32_t type; + + template static inline typename Traits::value_type process(const uint32_t* data, size_t size, typename Traits::value_type result, Traits) + { + while (size) + { + uint32_t lead = opt_swap::value ? endian_swap(*data) : *data; + + // U+0000..U+FFFF + if (lead < 0x10000) + { + result = Traits::low(result, lead); + data += 1; + size -= 1; + } + // U+10000..U+10FFFF + else + { + result = Traits::high(result, lead); + data += 1; + size -= 1; + } + } + + return result; + } + }; + + struct latin1_decoder + { + typedef uint8_t type; + + template static inline typename Traits::value_type process(const uint8_t* data, size_t size, typename Traits::value_type result, Traits) + { + while (size) + { + result = Traits::low(result, *data); + data += 1; + size -= 1; + } + + return result; + } + }; + + template struct wchar_selector; + + template <> struct wchar_selector<2> + { + typedef uint16_t type; + typedef utf16_counter counter; + typedef utf16_writer writer; + typedef utf16_decoder decoder; + }; + + template <> struct wchar_selector<4> + { + typedef uint32_t type; + typedef utf32_counter counter; + typedef utf32_writer writer; + typedef utf32_decoder decoder; + }; + + typedef wchar_selector::counter wchar_counter; + typedef wchar_selector::writer wchar_writer; + + struct wchar_decoder + { + typedef wchar_t type; + + template static inline typename Traits::value_type process(const wchar_t* data, size_t size, typename Traits::value_type result, Traits traits) + { + typedef wchar_selector::decoder decoder; + + return decoder::process(reinterpret_cast(data), size, result, traits); + } + }; + +#ifdef PUGIXML_WCHAR_MODE + PUGI__FN void convert_wchar_endian_swap(wchar_t* result, const wchar_t* data, size_t length) + { + for (size_t i = 0; i < length; ++i) + result[i] = static_cast(endian_swap(static_cast::type>(data[i]))); + } +#endif +PUGI__NS_END + +PUGI__NS_BEGIN + enum chartype_t + { + ct_parse_pcdata = 1, // \0, &, \r, < + ct_parse_attr = 2, // \0, &, \r, ', " + ct_parse_attr_ws = 4, // \0, &, \r, ', ", \n, tab + ct_space = 8, // \r, \n, space, tab + ct_parse_cdata = 16, // \0, ], >, \r + ct_parse_comment = 32, // \0, -, >, \r + ct_symbol = 64, // Any symbol > 127, a-z, A-Z, 0-9, _, :, -, . + ct_start_symbol = 128 // Any symbol > 127, a-z, A-Z, _, : + }; + + static const unsigned char chartype_table[256] = + { + 55, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 63, 0, 0, // 0-15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16-31 + 8, 0, 6, 0, 0, 0, 7, 6, 0, 0, 0, 0, 0, 96, 64, 0, // 32-47 + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 192, 0, 1, 0, 48, 0, // 48-63 + 0, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 64-79 + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 0, 0, 16, 0, 192, // 80-95 + 0, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 96-111 + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 0, 0, 0, 0, 0, // 112-127 + + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, // 128+ + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192 + }; + + enum chartypex_t + { + ctx_special_pcdata = 1, // Any symbol >= 0 and < 32 (except \t, \r, \n), &, <, > + ctx_special_attr = 2, // Any symbol >= 0 and < 32, &, <, ", ' + ctx_start_symbol = 4, // Any symbol > 127, a-z, A-Z, _ + ctx_digit = 8, // 0-9 + ctx_symbol = 16 // Any symbol > 127, a-z, A-Z, 0-9, _, -, . + }; + + static const unsigned char chartypex_table[256] = + { + 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 2, 3, 3, // 0-15 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 16-31 + 0, 0, 2, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 16, 16, 0, // 32-47 + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 3, 0, 1, 0, // 48-63 + + 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 64-79 + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 20, // 80-95 + 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 96-111 + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, // 112-127 + + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, // 128+ + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 + }; + +#ifdef PUGIXML_WCHAR_MODE + #define PUGI__IS_CHARTYPE_IMPL(c, ct, table) ((static_cast(c) < 128 ? table[static_cast(c)] : table[128]) & (ct)) +#else + #define PUGI__IS_CHARTYPE_IMPL(c, ct, table) (table[static_cast(c)] & (ct)) +#endif + + #define PUGI__IS_CHARTYPE(c, ct) PUGI__IS_CHARTYPE_IMPL(c, ct, chartype_table) + #define PUGI__IS_CHARTYPEX(c, ct) PUGI__IS_CHARTYPE_IMPL(c, ct, chartypex_table) + + PUGI__FN bool is_little_endian() + { + unsigned int ui = 1; + + return *reinterpret_cast(&ui) == 1; + } + + PUGI__FN xml_encoding get_wchar_encoding() + { + PUGI__STATIC_ASSERT(sizeof(wchar_t) == 2 || sizeof(wchar_t) == 4); + + if (sizeof(wchar_t) == 2) + return is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + else + return is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + } + + PUGI__FN bool parse_declaration_encoding(const uint8_t* data, size_t size, const uint8_t*& out_encoding, size_t& out_length) + { + #define PUGI__SCANCHAR(ch) { if (offset >= size || data[offset] != ch) return false; offset++; } + #define PUGI__SCANCHARTYPE(ct) { while (offset < size && PUGI__IS_CHARTYPE(data[offset], ct)) offset++; } + + // check if we have a non-empty XML declaration + if (size < 6 || !((data[0] == '<') & (data[1] == '?') & (data[2] == 'x') & (data[3] == 'm') & (data[4] == 'l') && PUGI__IS_CHARTYPE(data[5], ct_space))) + return false; + + // scan XML declaration until the encoding field + for (size_t i = 6; i + 1 < size; ++i) + { + // declaration can not contain ? in quoted values + if (data[i] == '?') + return false; + + if (data[i] == 'e' && data[i + 1] == 'n') + { + size_t offset = i; + + // encoding follows the version field which can't contain 'en' so this has to be the encoding if XML is well formed + PUGI__SCANCHAR('e'); PUGI__SCANCHAR('n'); PUGI__SCANCHAR('c'); PUGI__SCANCHAR('o'); + PUGI__SCANCHAR('d'); PUGI__SCANCHAR('i'); PUGI__SCANCHAR('n'); PUGI__SCANCHAR('g'); + + // S? = S? + PUGI__SCANCHARTYPE(ct_space); + PUGI__SCANCHAR('='); + PUGI__SCANCHARTYPE(ct_space); + + // the only two valid delimiters are ' and " + uint8_t delimiter = (offset < size && data[offset] == '"') ? '"' : '\''; + + PUGI__SCANCHAR(delimiter); + + size_t start = offset; + + out_encoding = data + offset; + + PUGI__SCANCHARTYPE(ct_symbol); + + out_length = offset - start; + + PUGI__SCANCHAR(delimiter); + + return true; + } + } + + return false; + + #undef PUGI__SCANCHAR + #undef PUGI__SCANCHARTYPE + } + + PUGI__FN xml_encoding guess_buffer_encoding(const uint8_t* data, size_t size) + { + // skip encoding autodetection if input buffer is too small + if (size < 4) return encoding_utf8; + + uint8_t d0 = data[0], d1 = data[1], d2 = data[2], d3 = data[3]; + + // look for BOM in first few bytes + if (d0 == 0 && d1 == 0 && d2 == 0xfe && d3 == 0xff) return encoding_utf32_be; + if (d0 == 0xff && d1 == 0xfe && d2 == 0 && d3 == 0) return encoding_utf32_le; + if (d0 == 0xfe && d1 == 0xff) return encoding_utf16_be; + if (d0 == 0xff && d1 == 0xfe) return encoding_utf16_le; + if (d0 == 0xef && d1 == 0xbb && d2 == 0xbf) return encoding_utf8; + + // look for <, (contents); + + return guess_buffer_encoding(data, size); + } + + PUGI__FN bool get_mutable_buffer(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, bool is_mutable) + { + size_t length = size / sizeof(char_t); + + if (is_mutable) + { + out_buffer = static_cast(const_cast(contents)); + out_length = length; + } + else + { + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + if (contents) + memcpy(buffer, contents, length * sizeof(char_t)); + else + assert(length == 0); + + buffer[length] = 0; + + out_buffer = buffer; + out_length = length + 1; + } + + return true; + } + +#ifdef PUGIXML_WCHAR_MODE + PUGI__FN bool need_endian_swap_utf(xml_encoding le, xml_encoding re) + { + return (le == encoding_utf16_be && re == encoding_utf16_le) || (le == encoding_utf16_le && re == encoding_utf16_be) || + (le == encoding_utf32_be && re == encoding_utf32_le) || (le == encoding_utf32_le && re == encoding_utf32_be); + } + + PUGI__FN bool convert_buffer_endian_swap(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, bool is_mutable) + { + const char_t* data = static_cast(contents); + size_t length = size / sizeof(char_t); + + if (is_mutable) + { + char_t* buffer = const_cast(data); + + convert_wchar_endian_swap(buffer, data, length); + + out_buffer = buffer; + out_length = length; + } + else + { + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + convert_wchar_endian_swap(buffer, data, length); + buffer[length] = 0; + + out_buffer = buffer; + out_length = length + 1; + } + + return true; + } + + template PUGI__FN bool convert_buffer_generic(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, D) + { + const typename D::type* data = static_cast(contents); + size_t data_length = size / sizeof(typename D::type); + + // first pass: get length in wchar_t units + size_t length = D::process(data, data_length, 0, wchar_counter()); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert utf16 input to wchar_t + wchar_writer::value_type obegin = reinterpret_cast(buffer); + wchar_writer::value_type oend = D::process(data, data_length, obegin, wchar_writer()); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN bool convert_buffer(char_t*& out_buffer, size_t& out_length, xml_encoding encoding, const void* contents, size_t size, bool is_mutable) + { + // get native encoding + xml_encoding wchar_encoding = get_wchar_encoding(); + + // fast path: no conversion required + if (encoding == wchar_encoding) + return get_mutable_buffer(out_buffer, out_length, contents, size, is_mutable); + + // only endian-swapping is required + if (need_endian_swap_utf(encoding, wchar_encoding)) + return convert_buffer_endian_swap(out_buffer, out_length, contents, size, is_mutable); + + // source encoding is utf8 + if (encoding == encoding_utf8) + return convert_buffer_generic(out_buffer, out_length, contents, size, utf8_decoder()); + + // source encoding is utf16 + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return (native_encoding == encoding) ? + convert_buffer_generic(out_buffer, out_length, contents, size, utf16_decoder()) : + convert_buffer_generic(out_buffer, out_length, contents, size, utf16_decoder()); + } + + // source encoding is utf32 + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return (native_encoding == encoding) ? + convert_buffer_generic(out_buffer, out_length, contents, size, utf32_decoder()) : + convert_buffer_generic(out_buffer, out_length, contents, size, utf32_decoder()); + } + + // source encoding is latin1 + if (encoding == encoding_latin1) + return convert_buffer_generic(out_buffer, out_length, contents, size, latin1_decoder()); + + assert(false && "Invalid encoding"); // unreachable + return false; + } +#else + template PUGI__FN bool convert_buffer_generic(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, D) + { + const typename D::type* data = static_cast(contents); + size_t data_length = size / sizeof(typename D::type); + + // first pass: get length in utf8 units + size_t length = D::process(data, data_length, 0, utf8_counter()); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert utf16 input to utf8 + uint8_t* obegin = reinterpret_cast(buffer); + uint8_t* oend = D::process(data, data_length, obegin, utf8_writer()); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN size_t get_latin1_7bit_prefix_length(const uint8_t* data, size_t size) + { + for (size_t i = 0; i < size; ++i) + if (data[i] > 127) + return i; + + return size; + } + + PUGI__FN bool convert_buffer_latin1(char_t*& out_buffer, size_t& out_length, const void* contents, size_t size, bool is_mutable) + { + const uint8_t* data = static_cast(contents); + size_t data_length = size; + + // get size of prefix that does not need utf8 conversion + size_t prefix_length = get_latin1_7bit_prefix_length(data, data_length); + assert(prefix_length <= data_length); + + const uint8_t* postfix = data + prefix_length; + size_t postfix_length = data_length - prefix_length; + + // if no conversion is needed, just return the original buffer + if (postfix_length == 0) return get_mutable_buffer(out_buffer, out_length, contents, size, is_mutable); + + // first pass: get length in utf8 units + size_t length = prefix_length + latin1_decoder::process(postfix, postfix_length, 0, utf8_counter()); + + // allocate buffer of suitable length + char_t* buffer = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!buffer) return false; + + // second pass: convert latin1 input to utf8 + memcpy(buffer, data, prefix_length); + + uint8_t* obegin = reinterpret_cast(buffer); + uint8_t* oend = latin1_decoder::process(postfix, postfix_length, obegin + prefix_length, utf8_writer()); + + assert(oend == obegin + length); + *oend = 0; + + out_buffer = buffer; + out_length = length + 1; + + return true; + } + + PUGI__FN bool convert_buffer(char_t*& out_buffer, size_t& out_length, xml_encoding encoding, const void* contents, size_t size, bool is_mutable) + { + // fast path: no conversion required + if (encoding == encoding_utf8) + return get_mutable_buffer(out_buffer, out_length, contents, size, is_mutable); + + // source encoding is utf16 + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return (native_encoding == encoding) ? + convert_buffer_generic(out_buffer, out_length, contents, size, utf16_decoder()) : + convert_buffer_generic(out_buffer, out_length, contents, size, utf16_decoder()); + } + + // source encoding is utf32 + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return (native_encoding == encoding) ? + convert_buffer_generic(out_buffer, out_length, contents, size, utf32_decoder()) : + convert_buffer_generic(out_buffer, out_length, contents, size, utf32_decoder()); + } + + // source encoding is latin1 + if (encoding == encoding_latin1) + return convert_buffer_latin1(out_buffer, out_length, contents, size, is_mutable); + + assert(false && "Invalid encoding"); // unreachable + return false; + } +#endif + + PUGI__FN size_t as_utf8_begin(const wchar_t* str, size_t length) + { + // get length in utf8 characters + return wchar_decoder::process(str, length, 0, utf8_counter()); + } + + PUGI__FN void as_utf8_end(char* buffer, size_t size, const wchar_t* str, size_t length) + { + // convert to utf8 + uint8_t* begin = reinterpret_cast(buffer); + uint8_t* end = wchar_decoder::process(str, length, begin, utf8_writer()); + + assert(begin + size == end); + (void)!end; + (void)!size; + } + +#ifndef PUGIXML_NO_STL + PUGI__FN std::string as_utf8_impl(const wchar_t* str, size_t length) + { + // first pass: get length in utf8 characters + size_t size = as_utf8_begin(str, length); + + // allocate resulting string + std::string result; + result.resize(size); + + // second pass: convert to utf8 + if (size > 0) as_utf8_end(&result[0], size, str, length); + + return result; + } + + PUGI__FN std::basic_string as_wide_impl(const char* str, size_t size) + { + const uint8_t* data = reinterpret_cast(str); + + // first pass: get length in wchar_t units + size_t length = utf8_decoder::process(data, size, 0, wchar_counter()); + + // allocate resulting string + std::basic_string result; + result.resize(length); + + // second pass: convert to wchar_t + if (length > 0) + { + wchar_writer::value_type begin = reinterpret_cast(&result[0]); + wchar_writer::value_type end = utf8_decoder::process(data, size, begin, wchar_writer()); + + assert(begin + length == end); + (void)!end; + } + + return result; + } +#endif + + template + inline bool strcpy_insitu_allow(size_t length, const Header& header, uintptr_t header_mask, char_t* target) + { + // never reuse shared memory + if (header & xml_memory_page_contents_shared_mask) return false; + + size_t target_length = strlength(target); + + // always reuse document buffer memory if possible + if ((header & header_mask) == 0) return target_length >= length; + + // reuse heap memory if waste is not too great + const size_t reuse_threshold = 32; + + return target_length >= length && (target_length < reuse_threshold || target_length - length < target_length / 2); + } + + template + PUGI__FN bool strcpy_insitu(String& dest, Header& header, uintptr_t header_mask, const char_t* source, size_t source_length) + { + if (source_length == 0) + { + // empty string and null pointer are equivalent, so just deallocate old memory + xml_allocator* alloc = PUGI__GETPAGE_IMPL(header)->allocator; + + if (header & header_mask) alloc->deallocate_string(dest); + + // mark the string as not allocated + dest = 0; + header &= ~header_mask; + + return true; + } + else if (dest && strcpy_insitu_allow(source_length, header, header_mask, dest)) + { + // we can reuse old buffer, so just copy the new data (including zero terminator) + memcpy(dest, source, source_length * sizeof(char_t)); + dest[source_length] = 0; + + return true; + } + else + { + xml_allocator* alloc = PUGI__GETPAGE_IMPL(header)->allocator; + + if (!alloc->reserve()) return false; + + // allocate new buffer + char_t* buf = alloc->allocate_string(source_length + 1); + if (!buf) return false; + + // copy the string (including zero terminator) + memcpy(buf, source, source_length * sizeof(char_t)); + buf[source_length] = 0; + + // deallocate old buffer (*after* the above to protect against overlapping memory and/or allocation failures) + if (header & header_mask) alloc->deallocate_string(dest); + + // the string is now allocated, so set the flag + dest = buf; + header |= header_mask; + + return true; + } + } + + struct gap + { + char_t* end; + size_t size; + + gap(): end(0), size(0) + { + } + + // Push new gap, move s count bytes further (skipping the gap). + // Collapse previous gap. + void push(char_t*& s, size_t count) + { + if (end) // there was a gap already; collapse it + { + // Move [old_gap_end, new_gap_start) to [old_gap_start, ...) + assert(s >= end); + memmove(end - size, end, reinterpret_cast(s) - reinterpret_cast(end)); + } + + s += count; // end of current gap + + // "merge" two gaps + end = s; + size += count; + } + + // Collapse all gaps, return past-the-end pointer + char_t* flush(char_t* s) + { + if (end) + { + // Move [old_gap_end, current_pos) to [old_gap_start, ...) + assert(s >= end); + memmove(end - size, end, reinterpret_cast(s) - reinterpret_cast(end)); + + return s - size; + } + else return s; + } + }; + + PUGI__FN char_t* strconv_escape(char_t* s, gap& g) + { + char_t* stre = s + 1; + + switch (*stre) + { + case '#': // &#... + { + unsigned int ucsc = 0; + + if (stre[1] == 'x') // &#x... (hex code) + { + stre += 2; + + char_t ch = *stre; + + if (ch == ';') return stre; + + for (;;) + { + if (static_cast(ch - '0') <= 9) + ucsc = 16 * ucsc + (ch - '0'); + else if (static_cast((ch | ' ') - 'a') <= 5) + ucsc = 16 * ucsc + ((ch | ' ') - 'a' + 10); + else if (ch == ';') + break; + else // cancel + return stre; + + ch = *++stre; + } + + ++stre; + } + else // &#... (dec code) + { + char_t ch = *++stre; + + if (ch == ';') return stre; + + for (;;) + { + if (static_cast(ch - '0') <= 9) + ucsc = 10 * ucsc + (ch - '0'); + else if (ch == ';') + break; + else // cancel + return stre; + + ch = *++stre; + } + + ++stre; + } + + #ifdef PUGIXML_WCHAR_MODE + s = reinterpret_cast(wchar_writer::any(reinterpret_cast(s), ucsc)); + #else + s = reinterpret_cast(utf8_writer::any(reinterpret_cast(s), ucsc)); + #endif + + g.push(s, stre - s); + return stre; + } + + case 'a': // &a + { + ++stre; + + if (*stre == 'm') // &am + { + if (*++stre == 'p' && *++stre == ';') // & + { + *s++ = '&'; + ++stre; + + g.push(s, stre - s); + return stre; + } + } + else if (*stre == 'p') // &ap + { + if (*++stre == 'o' && *++stre == 's' && *++stre == ';') // ' + { + *s++ = '\''; + ++stre; + + g.push(s, stre - s); + return stre; + } + } + break; + } + + case 'g': // &g + { + if (*++stre == 't' && *++stre == ';') // > + { + *s++ = '>'; + ++stre; + + g.push(s, stre - s); + return stre; + } + break; + } + + case 'l': // &l + { + if (*++stre == 't' && *++stre == ';') // < + { + *s++ = '<'; + ++stre; + + g.push(s, stre - s); + return stre; + } + break; + } + + case 'q': // &q + { + if (*++stre == 'u' && *++stre == 'o' && *++stre == 't' && *++stre == ';') // " + { + *s++ = '"'; + ++stre; + + g.push(s, stre - s); + return stre; + } + break; + } + + default: + break; + } + + return stre; + } + + // Parser utilities + #define PUGI__ENDSWITH(c, e) ((c) == (e) || ((c) == 0 && endch == (e))) + #define PUGI__SKIPWS() { while (PUGI__IS_CHARTYPE(*s, ct_space)) ++s; } + #define PUGI__OPTSET(OPT) ( optmsk & (OPT) ) + #define PUGI__PUSHNODE(TYPE) { cursor = append_new_node(cursor, *alloc, TYPE); if (!cursor) PUGI__THROW_ERROR(status_out_of_memory, s); } + #define PUGI__POPNODE() { cursor = cursor->parent; } + #define PUGI__SCANFOR(X) { while (*s != 0 && !(X)) ++s; } + #define PUGI__SCANWHILE(X) { while (X) ++s; } + #define PUGI__SCANWHILE_UNROLL(X) { for (;;) { char_t ss = s[0]; if (PUGI__UNLIKELY(!(X))) { break; } ss = s[1]; if (PUGI__UNLIKELY(!(X))) { s += 1; break; } ss = s[2]; if (PUGI__UNLIKELY(!(X))) { s += 2; break; } ss = s[3]; if (PUGI__UNLIKELY(!(X))) { s += 3; break; } s += 4; } } + #define PUGI__ENDSEG() { ch = *s; *s = 0; ++s; } + #define PUGI__THROW_ERROR(err, m) return error_offset = m, error_status = err, static_cast(0) + #define PUGI__CHECK_ERROR(err, m) { if (*s == 0) PUGI__THROW_ERROR(err, m); } + + PUGI__FN char_t* strconv_comment(char_t* s, char_t endch) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_comment)); + + if (*s == '\r') // Either a single 0x0d or 0x0d 0x0a pair + { + *s++ = '\n'; // replace first one with 0x0a + + if (*s == '\n') g.push(s, 1); + } + else if (s[0] == '-' && s[1] == '-' && PUGI__ENDSWITH(s[2], '>')) // comment ends here + { + *g.flush(s) = 0; + + return s + (s[2] == '>' ? 3 : 2); + } + else if (*s == 0) + { + return 0; + } + else ++s; + } + } + + PUGI__FN char_t* strconv_cdata(char_t* s, char_t endch) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_cdata)); + + if (*s == '\r') // Either a single 0x0d or 0x0d 0x0a pair + { + *s++ = '\n'; // replace first one with 0x0a + + if (*s == '\n') g.push(s, 1); + } + else if (s[0] == ']' && s[1] == ']' && PUGI__ENDSWITH(s[2], '>')) // CDATA ends here + { + *g.flush(s) = 0; + + return s + 1; + } + else if (*s == 0) + { + return 0; + } + else ++s; + } + } + + typedef char_t* (*strconv_pcdata_t)(char_t*); + + template struct strconv_pcdata_impl + { + static char_t* parse(char_t* s) + { + gap g; + + char_t* begin = s; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_pcdata)); + + if (*s == '<') // PCDATA ends here + { + char_t* end = g.flush(s); + + if (opt_trim::value) + while (end > begin && PUGI__IS_CHARTYPE(end[-1], ct_space)) + --end; + + *end = 0; + + return s + 1; + } + else if (opt_eol::value && *s == '\r') // Either a single 0x0d or 0x0d 0x0a pair + { + *s++ = '\n'; // replace first one with 0x0a + + if (*s == '\n') g.push(s, 1); + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (*s == 0) + { + char_t* end = g.flush(s); + + if (opt_trim::value) + while (end > begin && PUGI__IS_CHARTYPE(end[-1], ct_space)) + --end; + + *end = 0; + + return s; + } + else ++s; + } + } + }; + + PUGI__FN strconv_pcdata_t get_strconv_pcdata(unsigned int optmask) + { + PUGI__STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_trim_pcdata == 0x0800); + + switch (((optmask >> 4) & 3) | ((optmask >> 9) & 4)) // get bitmask for flags (trim eol escapes); this simultaneously checks 3 options from assertion above + { + case 0: return strconv_pcdata_impl::parse; + case 1: return strconv_pcdata_impl::parse; + case 2: return strconv_pcdata_impl::parse; + case 3: return strconv_pcdata_impl::parse; + case 4: return strconv_pcdata_impl::parse; + case 5: return strconv_pcdata_impl::parse; + case 6: return strconv_pcdata_impl::parse; + case 7: return strconv_pcdata_impl::parse; + default: assert(false); return 0; // unreachable + } + } + + typedef char_t* (*strconv_attribute_t)(char_t*, char_t); + + template struct strconv_attribute_impl + { + static char_t* parse_wnorm(char_t* s, char_t end_quote) + { + gap g; + + // trim leading whitespaces + if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + char_t* str = s; + + do ++str; + while (PUGI__IS_CHARTYPE(*str, ct_space)); + + g.push(s, str - s); + } + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr_ws | ct_space)); + + if (*s == end_quote) + { + char_t* str = g.flush(s); + + do *str-- = 0; + while (PUGI__IS_CHARTYPE(*str, ct_space)); + + return s + 1; + } + else if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + *s++ = ' '; + + if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + char_t* str = s + 1; + while (PUGI__IS_CHARTYPE(*str, ct_space)) ++str; + + g.push(s, str - s); + } + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + + static char_t* parse_wconv(char_t* s, char_t end_quote) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr_ws)); + + if (*s == end_quote) + { + *g.flush(s) = 0; + + return s + 1; + } + else if (PUGI__IS_CHARTYPE(*s, ct_space)) + { + if (*s == '\r') + { + *s++ = ' '; + + if (*s == '\n') g.push(s, 1); + } + else *s++ = ' '; + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + + static char_t* parse_eol(char_t* s, char_t end_quote) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr)); + + if (*s == end_quote) + { + *g.flush(s) = 0; + + return s + 1; + } + else if (*s == '\r') + { + *s++ = '\n'; + + if (*s == '\n') g.push(s, 1); + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + + static char_t* parse_simple(char_t* s, char_t end_quote) + { + gap g; + + while (true) + { + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPE(ss, ct_parse_attr)); + + if (*s == end_quote) + { + *g.flush(s) = 0; + + return s + 1; + } + else if (opt_escape::value && *s == '&') + { + s = strconv_escape(s, g); + } + else if (!*s) + { + return 0; + } + else ++s; + } + } + }; + + PUGI__FN strconv_attribute_t get_strconv_attribute(unsigned int optmask) + { + PUGI__STATIC_ASSERT(parse_escapes == 0x10 && parse_eol == 0x20 && parse_wconv_attribute == 0x40 && parse_wnorm_attribute == 0x80); + + switch ((optmask >> 4) & 15) // get bitmask for flags (wnorm wconv eol escapes); this simultaneously checks 4 options from assertion above + { + case 0: return strconv_attribute_impl::parse_simple; + case 1: return strconv_attribute_impl::parse_simple; + case 2: return strconv_attribute_impl::parse_eol; + case 3: return strconv_attribute_impl::parse_eol; + case 4: return strconv_attribute_impl::parse_wconv; + case 5: return strconv_attribute_impl::parse_wconv; + case 6: return strconv_attribute_impl::parse_wconv; + case 7: return strconv_attribute_impl::parse_wconv; + case 8: return strconv_attribute_impl::parse_wnorm; + case 9: return strconv_attribute_impl::parse_wnorm; + case 10: return strconv_attribute_impl::parse_wnorm; + case 11: return strconv_attribute_impl::parse_wnorm; + case 12: return strconv_attribute_impl::parse_wnorm; + case 13: return strconv_attribute_impl::parse_wnorm; + case 14: return strconv_attribute_impl::parse_wnorm; + case 15: return strconv_attribute_impl::parse_wnorm; + default: assert(false); return 0; // unreachable + } + } + + inline xml_parse_result make_parse_result(xml_parse_status status, ptrdiff_t offset = 0) + { + xml_parse_result result; + result.status = status; + result.offset = offset; + + return result; + } + + struct xml_parser + { + xml_allocator* alloc; + char_t* error_offset; + xml_parse_status error_status; + + xml_parser(xml_allocator* alloc_): alloc(alloc_), error_offset(0), error_status(status_ok) + { + } + + // DOCTYPE consists of nested sections of the following possible types: + // , , "...", '...' + // + // + // First group can not contain nested groups + // Second group can contain nested groups of the same type + // Third group can contain all other groups + char_t* parse_doctype_primitive(char_t* s) + { + if (*s == '"' || *s == '\'') + { + // quoted string + char_t ch = *s++; + PUGI__SCANFOR(*s == ch); + if (!*s) PUGI__THROW_ERROR(status_bad_doctype, s); + + s++; + } + else if (s[0] == '<' && s[1] == '?') + { + // + s += 2; + PUGI__SCANFOR(s[0] == '?' && s[1] == '>'); // no need for ENDSWITH because ?> can't terminate proper doctype + if (!*s) PUGI__THROW_ERROR(status_bad_doctype, s); + + s += 2; + } + else if (s[0] == '<' && s[1] == '!' && s[2] == '-' && s[3] == '-') + { + s += 4; + PUGI__SCANFOR(s[0] == '-' && s[1] == '-' && s[2] == '>'); // no need for ENDSWITH because --> can't terminate proper doctype + if (!*s) PUGI__THROW_ERROR(status_bad_doctype, s); + + s += 3; + } + else PUGI__THROW_ERROR(status_bad_doctype, s); + + return s; + } + + char_t* parse_doctype_ignore(char_t* s) + { + size_t depth = 0; + + assert(s[0] == '<' && s[1] == '!' && s[2] == '['); + s += 3; + + while (*s) + { + if (s[0] == '<' && s[1] == '!' && s[2] == '[') + { + // nested ignore section + s += 3; + depth++; + } + else if (s[0] == ']' && s[1] == ']' && s[2] == '>') + { + // ignore section end + s += 3; + + if (depth == 0) + return s; + + depth--; + } + else s++; + } + + PUGI__THROW_ERROR(status_bad_doctype, s); + } + + char_t* parse_doctype_group(char_t* s, char_t endch) + { + size_t depth = 0; + + assert((s[0] == '<' || s[0] == 0) && s[1] == '!'); + s += 2; + + while (*s) + { + if (s[0] == '<' && s[1] == '!' && s[2] != '-') + { + if (s[2] == '[') + { + // ignore + s = parse_doctype_ignore(s); + if (!s) return s; + } + else + { + // some control group + s += 2; + depth++; + } + } + else if (s[0] == '<' || s[0] == '"' || s[0] == '\'') + { + // unknown tag (forbidden), or some primitive group + s = parse_doctype_primitive(s); + if (!s) return s; + } + else if (*s == '>') + { + if (depth == 0) + return s; + + depth--; + s++; + } + else s++; + } + + if (depth != 0 || endch != '>') PUGI__THROW_ERROR(status_bad_doctype, s); + + return s; + } + + char_t* parse_exclamation(char_t* s, xml_node_struct* cursor, unsigned int optmsk, char_t endch) + { + // parse node contents, starting with exclamation mark + ++s; + + if (*s == '-') // 'value = s; // Save the offset. + } + + if (PUGI__OPTSET(parse_eol) && PUGI__OPTSET(parse_comments)) + { + s = strconv_comment(s, endch); + + if (!s) PUGI__THROW_ERROR(status_bad_comment, cursor->value); + } + else + { + // Scan for terminating '-->'. + PUGI__SCANFOR(s[0] == '-' && s[1] == '-' && PUGI__ENDSWITH(s[2], '>')); + PUGI__CHECK_ERROR(status_bad_comment, s); + + if (PUGI__OPTSET(parse_comments)) + *s = 0; // Zero-terminate this segment at the first terminating '-'. + + s += (s[2] == '>' ? 3 : 2); // Step over the '\0->'. + } + } + else PUGI__THROW_ERROR(status_bad_comment, s); + } + else if (*s == '[') + { + // 'value = s; // Save the offset. + + if (PUGI__OPTSET(parse_eol)) + { + s = strconv_cdata(s, endch); + + if (!s) PUGI__THROW_ERROR(status_bad_cdata, cursor->value); + } + else + { + // Scan for terminating ']]>'. + PUGI__SCANFOR(s[0] == ']' && s[1] == ']' && PUGI__ENDSWITH(s[2], '>')); + PUGI__CHECK_ERROR(status_bad_cdata, s); + + *s++ = 0; // Zero-terminate this segment. + } + } + else // Flagged for discard, but we still have to scan for the terminator. + { + // Scan for terminating ']]>'. + PUGI__SCANFOR(s[0] == ']' && s[1] == ']' && PUGI__ENDSWITH(s[2], '>')); + PUGI__CHECK_ERROR(status_bad_cdata, s); + + ++s; + } + + s += (s[1] == '>' ? 2 : 1); // Step over the last ']>'. + } + else PUGI__THROW_ERROR(status_bad_cdata, s); + } + else if (s[0] == 'D' && s[1] == 'O' && s[2] == 'C' && s[3] == 'T' && s[4] == 'Y' && s[5] == 'P' && PUGI__ENDSWITH(s[6], 'E')) + { + s -= 2; + + if (cursor->parent) PUGI__THROW_ERROR(status_bad_doctype, s); + + char_t* mark = s + 9; + + s = parse_doctype_group(s, endch); + if (!s) return s; + + assert((*s == 0 && endch == '>') || *s == '>'); + if (*s) *s++ = 0; + + if (PUGI__OPTSET(parse_doctype)) + { + while (PUGI__IS_CHARTYPE(*mark, ct_space)) ++mark; + + PUGI__PUSHNODE(node_doctype); + + cursor->value = mark; + } + } + else if (*s == 0 && endch == '-') PUGI__THROW_ERROR(status_bad_comment, s); + else if (*s == 0 && endch == '[') PUGI__THROW_ERROR(status_bad_cdata, s); + else PUGI__THROW_ERROR(status_unrecognized_tag, s); + + return s; + } + + char_t* parse_question(char_t* s, xml_node_struct*& ref_cursor, unsigned int optmsk, char_t endch) + { + // load into registers + xml_node_struct* cursor = ref_cursor; + char_t ch = 0; + + // parse node contents, starting with question mark + ++s; + + // read PI target + char_t* target = s; + + if (!PUGI__IS_CHARTYPE(*s, ct_start_symbol)) PUGI__THROW_ERROR(status_bad_pi, s); + + PUGI__SCANWHILE(PUGI__IS_CHARTYPE(*s, ct_symbol)); + PUGI__CHECK_ERROR(status_bad_pi, s); + + // determine node type; stricmp / strcasecmp is not portable + bool declaration = (target[0] | ' ') == 'x' && (target[1] | ' ') == 'm' && (target[2] | ' ') == 'l' && target + 3 == s; + + if (declaration ? PUGI__OPTSET(parse_declaration) : PUGI__OPTSET(parse_pi)) + { + if (declaration) + { + // disallow non top-level declarations + if (cursor->parent) PUGI__THROW_ERROR(status_bad_pi, s); + + PUGI__PUSHNODE(node_declaration); + } + else + { + PUGI__PUSHNODE(node_pi); + } + + cursor->name = target; + + PUGI__ENDSEG(); + + // parse value/attributes + if (ch == '?') + { + // empty node + if (!PUGI__ENDSWITH(*s, '>')) PUGI__THROW_ERROR(status_bad_pi, s); + s += (*s == '>'); + + PUGI__POPNODE(); + } + else if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + PUGI__SKIPWS(); + + // scan for tag end + char_t* value = s; + + PUGI__SCANFOR(s[0] == '?' && PUGI__ENDSWITH(s[1], '>')); + PUGI__CHECK_ERROR(status_bad_pi, s); + + if (declaration) + { + // replace ending ? with / so that 'element' terminates properly + *s = '/'; + + // we exit from this function with cursor at node_declaration, which is a signal to parse() to go to LOC_ATTRIBUTES + s = value; + } + else + { + // store value and step over > + cursor->value = value; + + PUGI__POPNODE(); + + PUGI__ENDSEG(); + + s += (*s == '>'); + } + } + else PUGI__THROW_ERROR(status_bad_pi, s); + } + else + { + // scan for tag end + PUGI__SCANFOR(s[0] == '?' && PUGI__ENDSWITH(s[1], '>')); + PUGI__CHECK_ERROR(status_bad_pi, s); + + s += (s[1] == '>' ? 2 : 1); + } + + // store from registers + ref_cursor = cursor; + + return s; + } + + char_t* parse_tree(char_t* s, xml_node_struct* root, unsigned int optmsk, char_t endch) + { + strconv_attribute_t strconv_attribute = get_strconv_attribute(optmsk); + strconv_pcdata_t strconv_pcdata = get_strconv_pcdata(optmsk); + + char_t ch = 0; + xml_node_struct* cursor = root; + char_t* mark = s; + + while (*s != 0) + { + if (*s == '<') + { + ++s; + + LOC_TAG: + if (PUGI__IS_CHARTYPE(*s, ct_start_symbol)) // '<#...' + { + PUGI__PUSHNODE(node_element); // Append a new node to the tree. + + cursor->name = s; + + PUGI__SCANWHILE_UNROLL(PUGI__IS_CHARTYPE(ss, ct_symbol)); // Scan for a terminator. + PUGI__ENDSEG(); // Save char in 'ch', terminate & step over. + + if (ch == '>') + { + // end of tag + } + else if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + LOC_ATTRIBUTES: + while (true) + { + PUGI__SKIPWS(); // Eat any whitespace. + + if (PUGI__IS_CHARTYPE(*s, ct_start_symbol)) // <... #... + { + xml_attribute_struct* a = append_new_attribute(cursor, *alloc); // Make space for this attribute. + if (!a) PUGI__THROW_ERROR(status_out_of_memory, s); + + a->name = s; // Save the offset. + + PUGI__SCANWHILE_UNROLL(PUGI__IS_CHARTYPE(ss, ct_symbol)); // Scan for a terminator. + PUGI__ENDSEG(); // Save char in 'ch', terminate & step over. + + if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + PUGI__SKIPWS(); // Eat any whitespace. + + ch = *s; + ++s; + } + + if (ch == '=') // '<... #=...' + { + PUGI__SKIPWS(); // Eat any whitespace. + + if (*s == '"' || *s == '\'') // '<... #="...' + { + ch = *s; // Save quote char to avoid breaking on "''" -or- '""'. + ++s; // Step over the quote. + a->value = s; // Save the offset. + + s = strconv_attribute(s, ch); + + if (!s) PUGI__THROW_ERROR(status_bad_attribute, a->value); + + // After this line the loop continues from the start; + // Whitespaces, / and > are ok, symbols and EOF are wrong, + // everything else will be detected + if (PUGI__IS_CHARTYPE(*s, ct_start_symbol)) PUGI__THROW_ERROR(status_bad_attribute, s); + } + else PUGI__THROW_ERROR(status_bad_attribute, s); + } + else PUGI__THROW_ERROR(status_bad_attribute, s); + } + else if (*s == '/') + { + ++s; + + if (*s == '>') + { + PUGI__POPNODE(); + s++; + break; + } + else if (*s == 0 && endch == '>') + { + PUGI__POPNODE(); + break; + } + else PUGI__THROW_ERROR(status_bad_start_element, s); + } + else if (*s == '>') + { + ++s; + + break; + } + else if (*s == 0 && endch == '>') + { + break; + } + else PUGI__THROW_ERROR(status_bad_start_element, s); + } + + // !!! + } + else if (ch == '/') // '<#.../' + { + if (!PUGI__ENDSWITH(*s, '>')) PUGI__THROW_ERROR(status_bad_start_element, s); + + PUGI__POPNODE(); // Pop. + + s += (*s == '>'); + } + else if (ch == 0) + { + // we stepped over null terminator, backtrack & handle closing tag + --s; + + if (endch != '>') PUGI__THROW_ERROR(status_bad_start_element, s); + } + else PUGI__THROW_ERROR(status_bad_start_element, s); + } + else if (*s == '/') + { + ++s; + + mark = s; + + char_t* name = cursor->name; + if (!name) PUGI__THROW_ERROR(status_end_element_mismatch, mark); + + while (PUGI__IS_CHARTYPE(*s, ct_symbol)) + { + if (*s++ != *name++) PUGI__THROW_ERROR(status_end_element_mismatch, mark); + } + + if (*name) + { + if (*s == 0 && name[0] == endch && name[1] == 0) PUGI__THROW_ERROR(status_bad_end_element, s); + else PUGI__THROW_ERROR(status_end_element_mismatch, mark); + } + + PUGI__POPNODE(); // Pop. + + PUGI__SKIPWS(); + + if (*s == 0) + { + if (endch != '>') PUGI__THROW_ERROR(status_bad_end_element, s); + } + else + { + if (*s != '>') PUGI__THROW_ERROR(status_bad_end_element, s); + ++s; + } + } + else if (*s == '?') // 'first_child) continue; + } + } + + if (!PUGI__OPTSET(parse_trim_pcdata)) + s = mark; + + if (cursor->parent || PUGI__OPTSET(parse_fragment)) + { + if (PUGI__OPTSET(parse_embed_pcdata) && cursor->parent && !cursor->first_child && !cursor->value) + { + cursor->value = s; // Save the offset. + } + else + { + PUGI__PUSHNODE(node_pcdata); // Append a new node on the tree. + + cursor->value = s; // Save the offset. + + PUGI__POPNODE(); // Pop since this is a standalone. + } + + s = strconv_pcdata(s); + + if (!*s) break; + } + else + { + PUGI__SCANFOR(*s == '<'); // '...<' + if (!*s) break; + + ++s; + } + + // We're after '<' + goto LOC_TAG; + } + } + + // check that last tag is closed + if (cursor != root) PUGI__THROW_ERROR(status_end_element_mismatch, s); + + return s; + } + + #ifdef PUGIXML_WCHAR_MODE + static char_t* parse_skip_bom(char_t* s) + { + unsigned int bom = 0xfeff; + return (s[0] == static_cast(bom)) ? s + 1 : s; + } + #else + static char_t* parse_skip_bom(char_t* s) + { + return (s[0] == '\xef' && s[1] == '\xbb' && s[2] == '\xbf') ? s + 3 : s; + } + #endif + + static bool has_element_node_siblings(xml_node_struct* node) + { + while (node) + { + if (PUGI__NODETYPE(node) == node_element) return true; + + node = node->next_sibling; + } + + return false; + } + + static xml_parse_result parse(char_t* buffer, size_t length, xml_document_struct* xmldoc, xml_node_struct* root, unsigned int optmsk) + { + // early-out for empty documents + if (length == 0) + return make_parse_result(PUGI__OPTSET(parse_fragment) ? status_ok : status_no_document_element); + + // get last child of the root before parsing + xml_node_struct* last_root_child = root->first_child ? root->first_child->prev_sibling_c + 0 : 0; + + // create parser on stack + xml_parser parser(static_cast(xmldoc)); + + // save last character and make buffer zero-terminated (speeds up parsing) + char_t endch = buffer[length - 1]; + buffer[length - 1] = 0; + + // skip BOM to make sure it does not end up as part of parse output + char_t* buffer_data = parse_skip_bom(buffer); + + // perform actual parsing + parser.parse_tree(buffer_data, root, optmsk, endch); + + xml_parse_result result = make_parse_result(parser.error_status, parser.error_offset ? parser.error_offset - buffer : 0); + assert(result.offset >= 0 && static_cast(result.offset) <= length); + + if (result) + { + // since we removed last character, we have to handle the only possible false positive (stray <) + if (endch == '<') + return make_parse_result(status_unrecognized_tag, length - 1); + + // check if there are any element nodes parsed + xml_node_struct* first_root_child_parsed = last_root_child ? last_root_child->next_sibling + 0 : root->first_child+ 0; + + if (!PUGI__OPTSET(parse_fragment) && !has_element_node_siblings(first_root_child_parsed)) + return make_parse_result(status_no_document_element, length - 1); + } + else + { + // roll back offset if it occurs on a null terminator in the source buffer + if (result.offset > 0 && static_cast(result.offset) == length - 1 && endch == 0) + result.offset--; + } + + return result; + } + }; + + // Output facilities + PUGI__FN xml_encoding get_write_native_encoding() + { + #ifdef PUGIXML_WCHAR_MODE + return get_wchar_encoding(); + #else + return encoding_utf8; + #endif + } + + PUGI__FN xml_encoding get_write_encoding(xml_encoding encoding) + { + // replace wchar encoding with utf implementation + if (encoding == encoding_wchar) return get_wchar_encoding(); + + // replace utf16 encoding with utf16 with specific endianness + if (encoding == encoding_utf16) return is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + // replace utf32 encoding with utf32 with specific endianness + if (encoding == encoding_utf32) return is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + // only do autodetection if no explicit encoding is requested + if (encoding != encoding_auto) return encoding; + + // assume utf8 encoding + return encoding_utf8; + } + + template PUGI__FN size_t convert_buffer_output_generic(typename T::value_type dest, const char_t* data, size_t length, D, T) + { + PUGI__STATIC_ASSERT(sizeof(char_t) == sizeof(typename D::type)); + + typename T::value_type end = D::process(reinterpret_cast(data), length, dest, T()); + + return static_cast(end - dest) * sizeof(*dest); + } + + template PUGI__FN size_t convert_buffer_output_generic(typename T::value_type dest, const char_t* data, size_t length, D, T, bool opt_swap) + { + PUGI__STATIC_ASSERT(sizeof(char_t) == sizeof(typename D::type)); + + typename T::value_type end = D::process(reinterpret_cast(data), length, dest, T()); + + if (opt_swap) + { + for (typename T::value_type i = dest; i != end; ++i) + *i = endian_swap(*i); + } + + return static_cast(end - dest) * sizeof(*dest); + } + +#ifdef PUGIXML_WCHAR_MODE + PUGI__FN size_t get_valid_length(const char_t* data, size_t length) + { + if (length < 1) return 0; + + // discard last character if it's the lead of a surrogate pair + return (sizeof(wchar_t) == 2 && static_cast(static_cast(data[length - 1]) - 0xD800) < 0x400) ? length - 1 : length; + } + + PUGI__FN size_t convert_buffer_output(char_t* r_char, uint8_t* r_u8, uint16_t* r_u16, uint32_t* r_u32, const char_t* data, size_t length, xml_encoding encoding) + { + // only endian-swapping is required + if (need_endian_swap_utf(encoding, get_wchar_encoding())) + { + convert_wchar_endian_swap(r_char, data, length); + + return length * sizeof(char_t); + } + + // convert to utf8 + if (encoding == encoding_utf8) + return convert_buffer_output_generic(r_u8, data, length, wchar_decoder(), utf8_writer()); + + // convert to utf16 + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return convert_buffer_output_generic(r_u16, data, length, wchar_decoder(), utf16_writer(), native_encoding != encoding); + } + + // convert to utf32 + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return convert_buffer_output_generic(r_u32, data, length, wchar_decoder(), utf32_writer(), native_encoding != encoding); + } + + // convert to latin1 + if (encoding == encoding_latin1) + return convert_buffer_output_generic(r_u8, data, length, wchar_decoder(), latin1_writer()); + + assert(false && "Invalid encoding"); // unreachable + return 0; + } +#else + PUGI__FN size_t get_valid_length(const char_t* data, size_t length) + { + if (length < 5) return 0; + + for (size_t i = 1; i <= 4; ++i) + { + uint8_t ch = static_cast(data[length - i]); + + // either a standalone character or a leading one + if ((ch & 0xc0) != 0x80) return length - i; + } + + // there are four non-leading characters at the end, sequence tail is broken so might as well process the whole chunk + return length; + } + + PUGI__FN size_t convert_buffer_output(char_t* /* r_char */, uint8_t* r_u8, uint16_t* r_u16, uint32_t* r_u32, const char_t* data, size_t length, xml_encoding encoding) + { + if (encoding == encoding_utf16_be || encoding == encoding_utf16_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf16_le : encoding_utf16_be; + + return convert_buffer_output_generic(r_u16, data, length, utf8_decoder(), utf16_writer(), native_encoding != encoding); + } + + if (encoding == encoding_utf32_be || encoding == encoding_utf32_le) + { + xml_encoding native_encoding = is_little_endian() ? encoding_utf32_le : encoding_utf32_be; + + return convert_buffer_output_generic(r_u32, data, length, utf8_decoder(), utf32_writer(), native_encoding != encoding); + } + + if (encoding == encoding_latin1) + return convert_buffer_output_generic(r_u8, data, length, utf8_decoder(), latin1_writer()); + + assert(false && "Invalid encoding"); // unreachable + return 0; + } +#endif + + class xml_buffered_writer + { + xml_buffered_writer(const xml_buffered_writer&); + xml_buffered_writer& operator=(const xml_buffered_writer&); + + public: + xml_buffered_writer(xml_writer& writer_, xml_encoding user_encoding): writer(writer_), bufsize(0), encoding(get_write_encoding(user_encoding)) + { + PUGI__STATIC_ASSERT(bufcapacity >= 8); + } + + size_t flush() + { + flush(buffer, bufsize); + bufsize = 0; + return 0; + } + + void flush(const char_t* data, size_t size) + { + if (size == 0) return; + + // fast path, just write data + if (encoding == get_write_native_encoding()) + writer.write(data, size * sizeof(char_t)); + else + { + // convert chunk + size_t result = convert_buffer_output(scratch.data_char, scratch.data_u8, scratch.data_u16, scratch.data_u32, data, size, encoding); + assert(result <= sizeof(scratch)); + + // write data + writer.write(scratch.data_u8, result); + } + } + + void write_direct(const char_t* data, size_t length) + { + // flush the remaining buffer contents + flush(); + + // handle large chunks + if (length > bufcapacity) + { + if (encoding == get_write_native_encoding()) + { + // fast path, can just write data chunk + writer.write(data, length * sizeof(char_t)); + return; + } + + // need to convert in suitable chunks + while (length > bufcapacity) + { + // get chunk size by selecting such number of characters that are guaranteed to fit into scratch buffer + // and form a complete codepoint sequence (i.e. discard start of last codepoint if necessary) + size_t chunk_size = get_valid_length(data, bufcapacity); + assert(chunk_size); + + // convert chunk and write + flush(data, chunk_size); + + // iterate + data += chunk_size; + length -= chunk_size; + } + + // small tail is copied below + bufsize = 0; + } + + memcpy(buffer + bufsize, data, length * sizeof(char_t)); + bufsize += length; + } + + void write_buffer(const char_t* data, size_t length) + { + size_t offset = bufsize; + + if (offset + length <= bufcapacity) + { + memcpy(buffer + offset, data, length * sizeof(char_t)); + bufsize = offset + length; + } + else + { + write_direct(data, length); + } + } + + void write_string(const char_t* data) + { + // write the part of the string that fits in the buffer + size_t offset = bufsize; + + while (*data && offset < bufcapacity) + buffer[offset++] = *data++; + + // write the rest + if (offset < bufcapacity) + { + bufsize = offset; + } + else + { + // backtrack a bit if we have split the codepoint + size_t length = offset - bufsize; + size_t extra = length - get_valid_length(data - length, length); + + bufsize = offset - extra; + + write_direct(data - extra, strlength(data) + extra); + } + } + + void write(char_t d0) + { + size_t offset = bufsize; + if (offset > bufcapacity - 1) offset = flush(); + + buffer[offset + 0] = d0; + bufsize = offset + 1; + } + + void write(char_t d0, char_t d1) + { + size_t offset = bufsize; + if (offset > bufcapacity - 2) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + bufsize = offset + 2; + } + + void write(char_t d0, char_t d1, char_t d2) + { + size_t offset = bufsize; + if (offset > bufcapacity - 3) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + bufsize = offset + 3; + } + + void write(char_t d0, char_t d1, char_t d2, char_t d3) + { + size_t offset = bufsize; + if (offset > bufcapacity - 4) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + buffer[offset + 3] = d3; + bufsize = offset + 4; + } + + void write(char_t d0, char_t d1, char_t d2, char_t d3, char_t d4) + { + size_t offset = bufsize; + if (offset > bufcapacity - 5) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + buffer[offset + 3] = d3; + buffer[offset + 4] = d4; + bufsize = offset + 5; + } + + void write(char_t d0, char_t d1, char_t d2, char_t d3, char_t d4, char_t d5) + { + size_t offset = bufsize; + if (offset > bufcapacity - 6) offset = flush(); + + buffer[offset + 0] = d0; + buffer[offset + 1] = d1; + buffer[offset + 2] = d2; + buffer[offset + 3] = d3; + buffer[offset + 4] = d4; + buffer[offset + 5] = d5; + bufsize = offset + 6; + } + + // utf8 maximum expansion: x4 (-> utf32) + // utf16 maximum expansion: x2 (-> utf32) + // utf32 maximum expansion: x1 + enum + { + bufcapacitybytes = + #ifdef PUGIXML_MEMORY_OUTPUT_STACK + PUGIXML_MEMORY_OUTPUT_STACK + #else + 10240 + #endif + , + bufcapacity = bufcapacitybytes / (sizeof(char_t) + 4) + }; + + char_t buffer[bufcapacity]; + + union + { + uint8_t data_u8[4 * bufcapacity]; + uint16_t data_u16[2 * bufcapacity]; + uint32_t data_u32[bufcapacity]; + char_t data_char[bufcapacity]; + } scratch; + + xml_writer& writer; + size_t bufsize; + xml_encoding encoding; + }; + + PUGI__FN void text_output_escaped(xml_buffered_writer& writer, const char_t* s, chartypex_t type, unsigned int flags) + { + while (*s) + { + const char_t* prev = s; + + // While *s is a usual symbol + PUGI__SCANWHILE_UNROLL(!PUGI__IS_CHARTYPEX(ss, type)); + + writer.write_buffer(prev, static_cast(s - prev)); + + switch (*s) + { + case 0: break; + case '&': + writer.write('&', 'a', 'm', 'p', ';'); + ++s; + break; + case '<': + writer.write('&', 'l', 't', ';'); + ++s; + break; + case '>': + writer.write('&', 'g', 't', ';'); + ++s; + break; + case '"': + if (flags & format_attribute_single_quote) + writer.write('"'); + else + writer.write('&', 'q', 'u', 'o', 't', ';'); + ++s; + break; + case '\'': + if (flags & format_attribute_single_quote) + writer.write('&', 'a', 'p', 'o', 's', ';'); + else + writer.write('\''); + ++s; + break; + default: // s is not a usual symbol + { + unsigned int ch = static_cast(*s++); + assert(ch < 32); + + if (!(flags & format_skip_control_chars)) + writer.write('&', '#', static_cast((ch / 10) + '0'), static_cast((ch % 10) + '0'), ';'); + } + } + } + } + + PUGI__FN void text_output(xml_buffered_writer& writer, const char_t* s, chartypex_t type, unsigned int flags) + { + if (flags & format_no_escapes) + writer.write_string(s); + else + text_output_escaped(writer, s, type, flags); + } + + PUGI__FN void text_output_cdata(xml_buffered_writer& writer, const char_t* s) + { + do + { + writer.write('<', '!', '[', 'C', 'D'); + writer.write('A', 'T', 'A', '['); + + const char_t* prev = s; + + // look for ]]> sequence - we can't output it as is since it terminates CDATA + while (*s && !(s[0] == ']' && s[1] == ']' && s[2] == '>')) ++s; + + // skip ]] if we stopped at ]]>, > will go to the next CDATA section + if (*s) s += 2; + + writer.write_buffer(prev, static_cast(s - prev)); + + writer.write(']', ']', '>'); + } + while (*s); + } + + PUGI__FN void text_output_indent(xml_buffered_writer& writer, const char_t* indent, size_t indent_length, unsigned int depth) + { + switch (indent_length) + { + case 1: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0]); + break; + } + + case 2: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0], indent[1]); + break; + } + + case 3: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0], indent[1], indent[2]); + break; + } + + case 4: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write(indent[0], indent[1], indent[2], indent[3]); + break; + } + + default: + { + for (unsigned int i = 0; i < depth; ++i) + writer.write_buffer(indent, indent_length); + } + } + } + + PUGI__FN void node_output_comment(xml_buffered_writer& writer, const char_t* s) + { + writer.write('<', '!', '-', '-'); + + while (*s) + { + const char_t* prev = s; + + // look for -\0 or -- sequence - we can't output it since -- is illegal in comment body + while (*s && !(s[0] == '-' && (s[1] == '-' || s[1] == 0))) ++s; + + writer.write_buffer(prev, static_cast(s - prev)); + + if (*s) + { + assert(*s == '-'); + + writer.write('-', ' '); + ++s; + } + } + + writer.write('-', '-', '>'); + } + + PUGI__FN void node_output_pi_value(xml_buffered_writer& writer, const char_t* s) + { + while (*s) + { + const char_t* prev = s; + + // look for ?> sequence - we can't output it since ?> terminates PI + while (*s && !(s[0] == '?' && s[1] == '>')) ++s; + + writer.write_buffer(prev, static_cast(s - prev)); + + if (*s) + { + assert(s[0] == '?' && s[1] == '>'); + + writer.write('?', ' ', '>'); + s += 2; + } + } + } + + PUGI__FN void node_output_attributes(xml_buffered_writer& writer, xml_node_struct* node, const char_t* indent, size_t indent_length, unsigned int flags, unsigned int depth) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + const char_t enquotation_char = (flags & format_attribute_single_quote) ? '\'' : '"'; + + for (xml_attribute_struct* a = node->first_attribute; a; a = a->next_attribute) + { + if ((flags & (format_indent_attributes | format_raw)) == format_indent_attributes) + { + writer.write('\n'); + + text_output_indent(writer, indent, indent_length, depth + 1); + } + else + { + writer.write(' '); + } + + writer.write_string(a->name ? a->name + 0 : default_name); + writer.write('=', enquotation_char); + + if (a->value) + text_output(writer, a->value, ctx_special_attr, flags); + + writer.write(enquotation_char); + } + } + + PUGI__FN bool node_output_start(xml_buffered_writer& writer, xml_node_struct* node, const char_t* indent, size_t indent_length, unsigned int flags, unsigned int depth) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + const char_t* name = node->name ? node->name + 0 : default_name; + + writer.write('<'); + writer.write_string(name); + + if (node->first_attribute) + node_output_attributes(writer, node, indent, indent_length, flags, depth); + + // element nodes can have value if parse_embed_pcdata was used + if (!node->value) + { + if (!node->first_child) + { + if (flags & format_no_empty_element_tags) + { + writer.write('>', '<', '/'); + writer.write_string(name); + writer.write('>'); + + return false; + } + else + { + if ((flags & format_raw) == 0) + writer.write(' '); + + writer.write('/', '>'); + + return false; + } + } + else + { + writer.write('>'); + + return true; + } + } + else + { + writer.write('>'); + + text_output(writer, node->value, ctx_special_pcdata, flags); + + if (!node->first_child) + { + writer.write('<', '/'); + writer.write_string(name); + writer.write('>'); + + return false; + } + else + { + return true; + } + } + } + + PUGI__FN void node_output_end(xml_buffered_writer& writer, xml_node_struct* node) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + const char_t* name = node->name ? node->name + 0 : default_name; + + writer.write('<', '/'); + writer.write_string(name); + writer.write('>'); + } + + PUGI__FN void node_output_simple(xml_buffered_writer& writer, xml_node_struct* node, unsigned int flags) + { + const char_t* default_name = PUGIXML_TEXT(":anonymous"); + + switch (PUGI__NODETYPE(node)) + { + case node_pcdata: + text_output(writer, node->value ? node->value + 0 : PUGIXML_TEXT(""), ctx_special_pcdata, flags); + break; + + case node_cdata: + text_output_cdata(writer, node->value ? node->value + 0 : PUGIXML_TEXT("")); + break; + + case node_comment: + node_output_comment(writer, node->value ? node->value + 0 : PUGIXML_TEXT("")); + break; + + case node_pi: + writer.write('<', '?'); + writer.write_string(node->name ? node->name + 0 : default_name); + + if (node->value) + { + writer.write(' '); + node_output_pi_value(writer, node->value); + } + + writer.write('?', '>'); + break; + + case node_declaration: + writer.write('<', '?'); + writer.write_string(node->name ? node->name + 0 : default_name); + node_output_attributes(writer, node, PUGIXML_TEXT(""), 0, flags | format_raw, 0); + writer.write('?', '>'); + break; + + case node_doctype: + writer.write('<', '!', 'D', 'O', 'C'); + writer.write('T', 'Y', 'P', 'E'); + + if (node->value) + { + writer.write(' '); + writer.write_string(node->value); + } + + writer.write('>'); + break; + + default: + assert(false && "Invalid node type"); // unreachable + } + } + + enum indent_flags_t + { + indent_newline = 1, + indent_indent = 2 + }; + + PUGI__FN void node_output(xml_buffered_writer& writer, xml_node_struct* root, const char_t* indent, unsigned int flags, unsigned int depth) + { + size_t indent_length = ((flags & (format_indent | format_indent_attributes)) && (flags & format_raw) == 0) ? strlength(indent) : 0; + unsigned int indent_flags = indent_indent; + + xml_node_struct* node = root; + + do + { + assert(node); + + // begin writing current node + if (PUGI__NODETYPE(node) == node_pcdata || PUGI__NODETYPE(node) == node_cdata) + { + node_output_simple(writer, node, flags); + + indent_flags = 0; + } + else + { + if ((indent_flags & indent_newline) && (flags & format_raw) == 0) + writer.write('\n'); + + if ((indent_flags & indent_indent) && indent_length) + text_output_indent(writer, indent, indent_length, depth); + + if (PUGI__NODETYPE(node) == node_element) + { + indent_flags = indent_newline | indent_indent; + + if (node_output_start(writer, node, indent, indent_length, flags, depth)) + { + // element nodes can have value if parse_embed_pcdata was used + if (node->value) + indent_flags = 0; + + node = node->first_child; + depth++; + continue; + } + } + else if (PUGI__NODETYPE(node) == node_document) + { + indent_flags = indent_indent; + + if (node->first_child) + { + node = node->first_child; + continue; + } + } + else + { + node_output_simple(writer, node, flags); + + indent_flags = indent_newline | indent_indent; + } + } + + // continue to the next node + while (node != root) + { + if (node->next_sibling) + { + node = node->next_sibling; + break; + } + + node = node->parent; + + // write closing node + if (PUGI__NODETYPE(node) == node_element) + { + depth--; + + if ((indent_flags & indent_newline) && (flags & format_raw) == 0) + writer.write('\n'); + + if ((indent_flags & indent_indent) && indent_length) + text_output_indent(writer, indent, indent_length, depth); + + node_output_end(writer, node); + + indent_flags = indent_newline | indent_indent; + } + } + } + while (node != root); + + if ((indent_flags & indent_newline) && (flags & format_raw) == 0) + writer.write('\n'); + } + + PUGI__FN bool has_declaration(xml_node_struct* node) + { + for (xml_node_struct* child = node->first_child; child; child = child->next_sibling) + { + xml_node_type type = PUGI__NODETYPE(child); + + if (type == node_declaration) return true; + if (type == node_element) return false; + } + + return false; + } + + PUGI__FN bool is_attribute_of(xml_attribute_struct* attr, xml_node_struct* node) + { + for (xml_attribute_struct* a = node->first_attribute; a; a = a->next_attribute) + if (a == attr) + return true; + + return false; + } + + PUGI__FN bool allow_insert_attribute(xml_node_type parent) + { + return parent == node_element || parent == node_declaration; + } + + PUGI__FN bool allow_insert_child(xml_node_type parent, xml_node_type child) + { + if (parent != node_document && parent != node_element) return false; + if (child == node_document || child == node_null) return false; + if (parent != node_document && (child == node_declaration || child == node_doctype)) return false; + + return true; + } + + PUGI__FN bool allow_move(xml_node parent, xml_node child) + { + // check that child can be a child of parent + if (!allow_insert_child(parent.type(), child.type())) + return false; + + // check that node is not moved between documents + if (parent.root() != child.root()) + return false; + + // check that new parent is not in the child subtree + xml_node cur = parent; + + while (cur) + { + if (cur == child) + return false; + + cur = cur.parent(); + } + + return true; + } + + template + PUGI__FN void node_copy_string(String& dest, Header& header, uintptr_t header_mask, char_t* source, Header& source_header, xml_allocator* alloc) + { + assert(!dest && (header & header_mask) == 0); + + if (source) + { + if (alloc && (source_header & header_mask) == 0) + { + dest = source; + + // since strcpy_insitu can reuse document buffer memory we need to mark both source and dest as shared + header |= xml_memory_page_contents_shared_mask; + source_header |= xml_memory_page_contents_shared_mask; + } + else + strcpy_insitu(dest, header, header_mask, source, strlength(source)); + } + } + + PUGI__FN void node_copy_contents(xml_node_struct* dn, xml_node_struct* sn, xml_allocator* shared_alloc) + { + node_copy_string(dn->name, dn->header, xml_memory_page_name_allocated_mask, sn->name, sn->header, shared_alloc); + node_copy_string(dn->value, dn->header, xml_memory_page_value_allocated_mask, sn->value, sn->header, shared_alloc); + + for (xml_attribute_struct* sa = sn->first_attribute; sa; sa = sa->next_attribute) + { + xml_attribute_struct* da = append_new_attribute(dn, get_allocator(dn)); + + if (da) + { + node_copy_string(da->name, da->header, xml_memory_page_name_allocated_mask, sa->name, sa->header, shared_alloc); + node_copy_string(da->value, da->header, xml_memory_page_value_allocated_mask, sa->value, sa->header, shared_alloc); + } + } + } + + PUGI__FN void node_copy_tree(xml_node_struct* dn, xml_node_struct* sn) + { + xml_allocator& alloc = get_allocator(dn); + xml_allocator* shared_alloc = (&alloc == &get_allocator(sn)) ? &alloc : 0; + + node_copy_contents(dn, sn, shared_alloc); + + xml_node_struct* dit = dn; + xml_node_struct* sit = sn->first_child; + + while (sit && sit != sn) + { + // loop invariant: dit is inside the subtree rooted at dn + assert(dit); + + // when a tree is copied into one of the descendants, we need to skip that subtree to avoid an infinite loop + if (sit != dn) + { + xml_node_struct* copy = append_new_node(dit, alloc, PUGI__NODETYPE(sit)); + + if (copy) + { + node_copy_contents(copy, sit, shared_alloc); + + if (sit->first_child) + { + dit = copy; + sit = sit->first_child; + continue; + } + } + } + + // continue to the next node + do + { + if (sit->next_sibling) + { + sit = sit->next_sibling; + break; + } + + sit = sit->parent; + dit = dit->parent; + + // loop invariant: dit is inside the subtree rooted at dn while sit is inside sn + assert(sit == sn || dit); + } + while (sit != sn); + } + + assert(!sit || dit == dn->parent); + } + + PUGI__FN void node_copy_attribute(xml_attribute_struct* da, xml_attribute_struct* sa) + { + xml_allocator& alloc = get_allocator(da); + xml_allocator* shared_alloc = (&alloc == &get_allocator(sa)) ? &alloc : 0; + + node_copy_string(da->name, da->header, xml_memory_page_name_allocated_mask, sa->name, sa->header, shared_alloc); + node_copy_string(da->value, da->header, xml_memory_page_value_allocated_mask, sa->value, sa->header, shared_alloc); + } + + inline bool is_text_node(xml_node_struct* node) + { + xml_node_type type = PUGI__NODETYPE(node); + + return type == node_pcdata || type == node_cdata; + } + + // get value with conversion functions + template PUGI__FN PUGI__UNSIGNED_OVERFLOW U string_to_integer(const char_t* value, U minv, U maxv) + { + U result = 0; + const char_t* s = value; + + while (PUGI__IS_CHARTYPE(*s, ct_space)) + s++; + + bool negative = (*s == '-'); + + s += (*s == '+' || *s == '-'); + + bool overflow = false; + + if (s[0] == '0' && (s[1] | ' ') == 'x') + { + s += 2; + + // since overflow detection relies on length of the sequence skip leading zeros + while (*s == '0') + s++; + + const char_t* start = s; + + for (;;) + { + if (static_cast(*s - '0') < 10) + result = result * 16 + (*s - '0'); + else if (static_cast((*s | ' ') - 'a') < 6) + result = result * 16 + ((*s | ' ') - 'a' + 10); + else + break; + + s++; + } + + size_t digits = static_cast(s - start); + + overflow = digits > sizeof(U) * 2; + } + else + { + // since overflow detection relies on length of the sequence skip leading zeros + while (*s == '0') + s++; + + const char_t* start = s; + + for (;;) + { + if (static_cast(*s - '0') < 10) + result = result * 10 + (*s - '0'); + else + break; + + s++; + } + + size_t digits = static_cast(s - start); + + PUGI__STATIC_ASSERT(sizeof(U) == 8 || sizeof(U) == 4 || sizeof(U) == 2); + + const size_t max_digits10 = sizeof(U) == 8 ? 20 : sizeof(U) == 4 ? 10 : 5; + const char_t max_lead = sizeof(U) == 8 ? '1' : sizeof(U) == 4 ? '4' : '6'; + const size_t high_bit = sizeof(U) * 8 - 1; + + overflow = digits >= max_digits10 && !(digits == max_digits10 && (*start < max_lead || (*start == max_lead && result >> high_bit))); + } + + if (negative) + { + // Workaround for crayc++ CC-3059: Expected no overflow in routine. + #ifdef _CRAYC + return (overflow || result > ~minv + 1) ? minv : ~result + 1; + #else + return (overflow || result > 0 - minv) ? minv : 0 - result; + #endif + } + else + return (overflow || result > maxv) ? maxv : result; + } + + PUGI__FN int get_value_int(const char_t* value) + { + return string_to_integer(value, static_cast(INT_MIN), INT_MAX); + } + + PUGI__FN unsigned int get_value_uint(const char_t* value) + { + return string_to_integer(value, 0, UINT_MAX); + } + + PUGI__FN double get_value_double(const char_t* value) + { + #ifdef PUGIXML_WCHAR_MODE + return wcstod(value, 0); + #else + return strtod(value, 0); + #endif + } + + PUGI__FN float get_value_float(const char_t* value) + { + #ifdef PUGIXML_WCHAR_MODE + return static_cast(wcstod(value, 0)); + #else + return static_cast(strtod(value, 0)); + #endif + } + + PUGI__FN bool get_value_bool(const char_t* value) + { + // only look at first char + char_t first = *value; + + // 1*, t* (true), T* (True), y* (yes), Y* (YES) + return (first == '1' || first == 't' || first == 'T' || first == 'y' || first == 'Y'); + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN long long get_value_llong(const char_t* value) + { + return string_to_integer(value, static_cast(LLONG_MIN), LLONG_MAX); + } + + PUGI__FN unsigned long long get_value_ullong(const char_t* value) + { + return string_to_integer(value, 0, ULLONG_MAX); + } +#endif + + template PUGI__FN PUGI__UNSIGNED_OVERFLOW char_t* integer_to_string(char_t* begin, char_t* end, U value, bool negative) + { + char_t* result = end - 1; + U rest = negative ? 0 - value : value; + + do + { + *result-- = static_cast('0' + (rest % 10)); + rest /= 10; + } + while (rest); + + assert(result >= begin); + (void)begin; + + *result = '-'; + + return result + !negative; + } + + // set value with conversion functions + template + PUGI__FN bool set_value_ascii(String& dest, Header& header, uintptr_t header_mask, char* buf) + { + #ifdef PUGIXML_WCHAR_MODE + char_t wbuf[128]; + assert(strlen(buf) < sizeof(wbuf) / sizeof(wbuf[0])); + + size_t offset = 0; + for (; buf[offset]; ++offset) wbuf[offset] = buf[offset]; + + return strcpy_insitu(dest, header, header_mask, wbuf, offset); + #else + return strcpy_insitu(dest, header, header_mask, buf, strlen(buf)); + #endif + } + + template + PUGI__FN bool set_value_integer(String& dest, Header& header, uintptr_t header_mask, U value, bool negative) + { + char_t buf[64]; + char_t* end = buf + sizeof(buf) / sizeof(buf[0]); + char_t* begin = integer_to_string(buf, end, value, negative); + + return strcpy_insitu(dest, header, header_mask, begin, end - begin); + } + + template + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, float value, int precision) + { + char buf[128]; + PUGI__SNPRINTF(buf, "%.*g", precision, double(value)); + + return set_value_ascii(dest, header, header_mask, buf); + } + + template + PUGI__FN bool set_value_convert(String& dest, Header& header, uintptr_t header_mask, double value, int precision) + { + char buf[128]; + PUGI__SNPRINTF(buf, "%.*g", precision, value); + + return set_value_ascii(dest, header, header_mask, buf); + } + + template + PUGI__FN bool set_value_bool(String& dest, Header& header, uintptr_t header_mask, bool value) + { + return strcpy_insitu(dest, header, header_mask, value ? PUGIXML_TEXT("true") : PUGIXML_TEXT("false"), value ? 4 : 5); + } + + PUGI__FN xml_parse_result load_buffer_impl(xml_document_struct* doc, xml_node_struct* root, void* contents, size_t size, unsigned int options, xml_encoding encoding, bool is_mutable, bool own, char_t** out_buffer) + { + // check input buffer + if (!contents && size) return make_parse_result(status_io_error); + + // get actual encoding + xml_encoding buffer_encoding = impl::get_buffer_encoding(encoding, contents, size); + + // if convert_buffer below throws bad_alloc, we still need to deallocate contents if we own it + auto_deleter contents_guard(own ? contents : 0, xml_memory::deallocate); + + // get private buffer + char_t* buffer = 0; + size_t length = 0; + + // coverity[var_deref_model] + if (!impl::convert_buffer(buffer, length, buffer_encoding, contents, size, is_mutable)) return impl::make_parse_result(status_out_of_memory); + + // after this we either deallocate contents (below) or hold on to it via doc->buffer, so we don't need to guard it + contents_guard.release(); + + // delete original buffer if we performed a conversion + if (own && buffer != contents && contents) impl::xml_memory::deallocate(contents); + + // grab onto buffer if it's our buffer, user is responsible for deallocating contents himself + if (own || buffer != contents) *out_buffer = buffer; + + // store buffer for offset_debug + doc->buffer = buffer; + + // parse + xml_parse_result res = impl::xml_parser::parse(buffer, length, doc, root, options); + + // remember encoding + res.encoding = buffer_encoding; + + return res; + } + + // we need to get length of entire file to load it in memory; the only (relatively) sane way to do it is via seek/tell trick + PUGI__FN xml_parse_status get_file_size(FILE* file, size_t& out_result) + { + #if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 + // there are 64-bit versions of fseek/ftell, let's use them + typedef __int64 length_type; + + _fseeki64(file, 0, SEEK_END); + length_type length = _ftelli64(file); + _fseeki64(file, 0, SEEK_SET); + #elif defined(__MINGW32__) && !defined(__NO_MINGW_LFS) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR)) + // there are 64-bit versions of fseek/ftell, let's use them + typedef off64_t length_type; + + fseeko64(file, 0, SEEK_END); + length_type length = ftello64(file); + fseeko64(file, 0, SEEK_SET); + #else + // if this is a 32-bit OS, long is enough; if this is a unix system, long is 64-bit, which is enough; otherwise we can't do anything anyway. + typedef long length_type; + + fseek(file, 0, SEEK_END); + length_type length = ftell(file); + fseek(file, 0, SEEK_SET); + #endif + + // check for I/O errors + if (length < 0) return status_io_error; + + // check for overflow + size_t result = static_cast(length); + + if (static_cast(result) != length) return status_out_of_memory; + + // finalize + out_result = result; + + return status_ok; + } + + // This function assumes that buffer has extra sizeof(char_t) writable bytes after size + PUGI__FN size_t zero_terminate_buffer(void* buffer, size_t size, xml_encoding encoding) + { + // We only need to zero-terminate if encoding conversion does not do it for us + #ifdef PUGIXML_WCHAR_MODE + xml_encoding wchar_encoding = get_wchar_encoding(); + + if (encoding == wchar_encoding || need_endian_swap_utf(encoding, wchar_encoding)) + { + size_t length = size / sizeof(char_t); + + static_cast(buffer)[length] = 0; + return (length + 1) * sizeof(char_t); + } + #else + if (encoding == encoding_utf8) + { + static_cast(buffer)[size] = 0; + return size + 1; + } + #endif + + return size; + } + + PUGI__FN xml_parse_result load_file_impl(xml_document_struct* doc, FILE* file, unsigned int options, xml_encoding encoding, char_t** out_buffer) + { + if (!file) return make_parse_result(status_file_not_found); + + // get file size (can result in I/O errors) + size_t size = 0; + xml_parse_status size_status = get_file_size(file, size); + if (size_status != status_ok) return make_parse_result(size_status); + + size_t max_suffix_size = sizeof(char_t); + + // allocate buffer for the whole file + char* contents = static_cast(xml_memory::allocate(size + max_suffix_size)); + if (!contents) return make_parse_result(status_out_of_memory); + + // read file in memory + size_t read_size = fread(contents, 1, size, file); + + if (read_size != size) + { + xml_memory::deallocate(contents); + return make_parse_result(status_io_error); + } + + xml_encoding real_encoding = get_buffer_encoding(encoding, contents, size); + + return load_buffer_impl(doc, doc, contents, zero_terminate_buffer(contents, size, real_encoding), options, real_encoding, true, true, out_buffer); + } + + PUGI__FN void close_file(FILE* file) + { + fclose(file); + } + +#ifndef PUGIXML_NO_STL + template struct xml_stream_chunk + { + static xml_stream_chunk* create() + { + void* memory = xml_memory::allocate(sizeof(xml_stream_chunk)); + if (!memory) return 0; + + return new (memory) xml_stream_chunk(); + } + + static void destroy(xml_stream_chunk* chunk) + { + // free chunk chain + while (chunk) + { + xml_stream_chunk* next_ = chunk->next; + + xml_memory::deallocate(chunk); + + chunk = next_; + } + } + + xml_stream_chunk(): next(0), size(0) + { + } + + xml_stream_chunk* next; + size_t size; + + T data[xml_memory_page_size / sizeof(T)]; + }; + + template PUGI__FN xml_parse_status load_stream_data_noseek(std::basic_istream& stream, void** out_buffer, size_t* out_size) + { + auto_deleter > chunks(0, xml_stream_chunk::destroy); + + // read file to a chunk list + size_t total = 0; + xml_stream_chunk* last = 0; + + while (!stream.eof()) + { + // allocate new chunk + xml_stream_chunk* chunk = xml_stream_chunk::create(); + if (!chunk) return status_out_of_memory; + + // append chunk to list + if (last) last = last->next = chunk; + else chunks.data = last = chunk; + + // read data to chunk + stream.read(chunk->data, static_cast(sizeof(chunk->data) / sizeof(T))); + chunk->size = static_cast(stream.gcount()) * sizeof(T); + + // read may set failbit | eofbit in case gcount() is less than read length, so check for other I/O errors + if (stream.bad() || (!stream.eof() && stream.fail())) return status_io_error; + + // guard against huge files (chunk size is small enough to make this overflow check work) + if (total + chunk->size < total) return status_out_of_memory; + total += chunk->size; + } + + size_t max_suffix_size = sizeof(char_t); + + // copy chunk list to a contiguous buffer + char* buffer = static_cast(xml_memory::allocate(total + max_suffix_size)); + if (!buffer) return status_out_of_memory; + + char* write = buffer; + + for (xml_stream_chunk* chunk = chunks.data; chunk; chunk = chunk->next) + { + assert(write + chunk->size <= buffer + total); + memcpy(write, chunk->data, chunk->size); + write += chunk->size; + } + + assert(write == buffer + total); + + // return buffer + *out_buffer = buffer; + *out_size = total; + + return status_ok; + } + + template PUGI__FN xml_parse_status load_stream_data_seek(std::basic_istream& stream, void** out_buffer, size_t* out_size) + { + // get length of remaining data in stream + typename std::basic_istream::pos_type pos = stream.tellg(); + stream.seekg(0, std::ios::end); + std::streamoff length = stream.tellg() - pos; + stream.seekg(pos); + + if (stream.fail() || pos < 0) return status_io_error; + + // guard against huge files + size_t read_length = static_cast(length); + + if (static_cast(read_length) != length || length < 0) return status_out_of_memory; + + size_t max_suffix_size = sizeof(char_t); + + // read stream data into memory (guard against stream exceptions with buffer holder) + auto_deleter buffer(xml_memory::allocate(read_length * sizeof(T) + max_suffix_size), xml_memory::deallocate); + if (!buffer.data) return status_out_of_memory; + + stream.read(static_cast(buffer.data), static_cast(read_length)); + + // read may set failbit | eofbit in case gcount() is less than read_length (i.e. line ending conversion), so check for other I/O errors + if (stream.bad() || (!stream.eof() && stream.fail())) return status_io_error; + + // return buffer + size_t actual_length = static_cast(stream.gcount()); + assert(actual_length <= read_length); + + *out_buffer = buffer.release(); + *out_size = actual_length * sizeof(T); + + return status_ok; + } + + template PUGI__FN xml_parse_result load_stream_impl(xml_document_struct* doc, std::basic_istream& stream, unsigned int options, xml_encoding encoding, char_t** out_buffer) + { + void* buffer = 0; + size_t size = 0; + xml_parse_status status = status_ok; + + // if stream has an error bit set, bail out (otherwise tellg() can fail and we'll clear error bits) + if (stream.fail()) return make_parse_result(status_io_error); + + // load stream to memory (using seek-based implementation if possible, since it's faster and takes less memory) + if (stream.tellg() < 0) + { + stream.clear(); // clear error flags that could be set by a failing tellg + status = load_stream_data_noseek(stream, &buffer, &size); + } + else + status = load_stream_data_seek(stream, &buffer, &size); + + if (status != status_ok) return make_parse_result(status); + + xml_encoding real_encoding = get_buffer_encoding(encoding, buffer, size); + + return load_buffer_impl(doc, doc, buffer, zero_terminate_buffer(buffer, size, real_encoding), options, real_encoding, true, true, out_buffer); + } +#endif + +#if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) || (defined(__MINGW32__) && (!defined(__STRICT_ANSI__) || defined(__MINGW64_VERSION_MAJOR))) + PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode) + { +#if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 + FILE* file = 0; + return _wfopen_s(&file, path, mode) == 0 ? file : 0; +#else + return _wfopen(path, mode); +#endif + } +#else + PUGI__FN char* convert_path_heap(const wchar_t* str) + { + assert(str); + + // first pass: get length in utf8 characters + size_t length = strlength_wide(str); + size_t size = as_utf8_begin(str, length); + + // allocate resulting string + char* result = static_cast(xml_memory::allocate(size + 1)); + if (!result) return 0; + + // second pass: convert to utf8 + as_utf8_end(result, size, str, length); + + // zero-terminate + result[size] = 0; + + return result; + } + + PUGI__FN FILE* open_file_wide(const wchar_t* path, const wchar_t* mode) + { + // there is no standard function to open wide paths, so our best bet is to try utf8 path + char* path_utf8 = convert_path_heap(path); + if (!path_utf8) return 0; + + // convert mode to ASCII (we mirror _wfopen interface) + char mode_ascii[4] = {0}; + for (size_t i = 0; mode[i]; ++i) mode_ascii[i] = static_cast(mode[i]); + + // try to open the utf8 path + FILE* result = fopen(path_utf8, mode_ascii); + + // free dummy buffer + xml_memory::deallocate(path_utf8); + + return result; + } +#endif + + PUGI__FN FILE* open_file(const char* path, const char* mode) + { +#if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 + FILE* file = 0; + return fopen_s(&file, path, mode) == 0 ? file : 0; +#else + return fopen(path, mode); +#endif + } + + PUGI__FN bool save_file_impl(const xml_document& doc, FILE* file, const char_t* indent, unsigned int flags, xml_encoding encoding) + { + if (!file) return false; + + xml_writer_file writer(file); + doc.save(writer, indent, flags, encoding); + + return fflush(file) == 0 && ferror(file) == 0; + } + + struct name_null_sentry + { + xml_node_struct* node; + char_t* name; + + name_null_sentry(xml_node_struct* node_): node(node_), name(node_->name) + { + node->name = 0; + } + + ~name_null_sentry() + { + node->name = name; + } + }; +PUGI__NS_END + +namespace pugi +{ + PUGI__FN xml_writer_file::xml_writer_file(void* file_): file(file_) + { + } + + PUGI__FN void xml_writer_file::write(const void* data, size_t size) + { + size_t result = fwrite(data, 1, size, static_cast(file)); + (void)!result; // unfortunately we can't do proper error handling here + } + +#ifndef PUGIXML_NO_STL + PUGI__FN xml_writer_stream::xml_writer_stream(std::basic_ostream >& stream): narrow_stream(&stream), wide_stream(0) + { + } + + PUGI__FN xml_writer_stream::xml_writer_stream(std::basic_ostream >& stream): narrow_stream(0), wide_stream(&stream) + { + } + + PUGI__FN void xml_writer_stream::write(const void* data, size_t size) + { + if (narrow_stream) + { + assert(!wide_stream); + narrow_stream->write(reinterpret_cast(data), static_cast(size)); + } + else + { + assert(wide_stream); + assert(size % sizeof(wchar_t) == 0); + + wide_stream->write(reinterpret_cast(data), static_cast(size / sizeof(wchar_t))); + } + } +#endif + + PUGI__FN xml_tree_walker::xml_tree_walker(): _depth(0) + { + } + + PUGI__FN xml_tree_walker::~xml_tree_walker() + { + } + + PUGI__FN int xml_tree_walker::depth() const + { + return _depth; + } + + PUGI__FN bool xml_tree_walker::begin(xml_node&) + { + return true; + } + + PUGI__FN bool xml_tree_walker::end(xml_node&) + { + return true; + } + + PUGI__FN xml_attribute::xml_attribute(): _attr(0) + { + } + + PUGI__FN xml_attribute::xml_attribute(xml_attribute_struct* attr): _attr(attr) + { + } + + PUGI__FN static void unspecified_bool_xml_attribute(xml_attribute***) + { + } + + PUGI__FN xml_attribute::operator xml_attribute::unspecified_bool_type() const + { + return _attr ? unspecified_bool_xml_attribute : 0; + } + + PUGI__FN bool xml_attribute::operator!() const + { + return !_attr; + } + + PUGI__FN bool xml_attribute::operator==(const xml_attribute& r) const + { + return (_attr == r._attr); + } + + PUGI__FN bool xml_attribute::operator!=(const xml_attribute& r) const + { + return (_attr != r._attr); + } + + PUGI__FN bool xml_attribute::operator<(const xml_attribute& r) const + { + return (_attr < r._attr); + } + + PUGI__FN bool xml_attribute::operator>(const xml_attribute& r) const + { + return (_attr > r._attr); + } + + PUGI__FN bool xml_attribute::operator<=(const xml_attribute& r) const + { + return (_attr <= r._attr); + } + + PUGI__FN bool xml_attribute::operator>=(const xml_attribute& r) const + { + return (_attr >= r._attr); + } + + PUGI__FN xml_attribute xml_attribute::next_attribute() const + { + if (!_attr) return xml_attribute(); + return xml_attribute(_attr->next_attribute); + } + + PUGI__FN xml_attribute xml_attribute::previous_attribute() const + { + if (!_attr) return xml_attribute(); + xml_attribute_struct* prev = _attr->prev_attribute_c; + return prev->next_attribute ? xml_attribute(prev) : xml_attribute(); + } + + PUGI__FN const char_t* xml_attribute::as_string(const char_t* def) const + { + if (!_attr) return def; + const char_t* value = _attr->value; + return value ? value : def; + } + + PUGI__FN int xml_attribute::as_int(int def) const + { + if (!_attr) return def; + const char_t* value = _attr->value; + return value ? impl::get_value_int(value) : def; + } + + PUGI__FN unsigned int xml_attribute::as_uint(unsigned int def) const + { + if (!_attr) return def; + const char_t* value = _attr->value; + return value ? impl::get_value_uint(value) : def; + } + + PUGI__FN double xml_attribute::as_double(double def) const + { + if (!_attr) return def; + const char_t* value = _attr->value; + return value ? impl::get_value_double(value) : def; + } + + PUGI__FN float xml_attribute::as_float(float def) const + { + if (!_attr) return def; + const char_t* value = _attr->value; + return value ? impl::get_value_float(value) : def; + } + + PUGI__FN bool xml_attribute::as_bool(bool def) const + { + if (!_attr) return def; + const char_t* value = _attr->value; + return value ? impl::get_value_bool(value) : def; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN long long xml_attribute::as_llong(long long def) const + { + if (!_attr) return def; + const char_t* value = _attr->value; + return value ? impl::get_value_llong(value) : def; + } + + PUGI__FN unsigned long long xml_attribute::as_ullong(unsigned long long def) const + { + if (!_attr) return def; + const char_t* value = _attr->value; + return value ? impl::get_value_ullong(value) : def; + } +#endif + + PUGI__FN bool xml_attribute::empty() const + { + return !_attr; + } + + PUGI__FN const char_t* xml_attribute::name() const + { + if (!_attr) return PUGIXML_TEXT(""); + const char_t* name = _attr->name; + return name ? name : PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* xml_attribute::value() const + { + if (!_attr) return PUGIXML_TEXT(""); + const char_t* value = _attr->value; + return value ? value : PUGIXML_TEXT(""); + } + + PUGI__FN size_t xml_attribute::hash_value() const + { + return static_cast(reinterpret_cast(_attr) / sizeof(xml_attribute_struct)); + } + + PUGI__FN xml_attribute_struct* xml_attribute::internal_object() const + { + return _attr; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(const char_t* rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(int rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(unsigned int rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(long rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(unsigned long rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(double rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(float rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(bool rhs) + { + set_value(rhs); + return *this; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN xml_attribute& xml_attribute::operator=(long long rhs) + { + set_value(rhs); + return *this; + } + + PUGI__FN xml_attribute& xml_attribute::operator=(unsigned long long rhs) + { + set_value(rhs); + return *this; + } +#endif + + PUGI__FN bool xml_attribute::set_name(const char_t* rhs) + { + if (!_attr) return false; + + return impl::strcpy_insitu(_attr->name, _attr->header, impl::xml_memory_page_name_allocated_mask, rhs, impl::strlength(rhs)); + } + + PUGI__FN bool xml_attribute::set_value(const char_t* rhs, size_t sz) + { + if (!_attr) return false; + + return impl::strcpy_insitu(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, sz); + } + + PUGI__FN bool xml_attribute::set_value(const char_t* rhs) + { + if (!_attr) return false; + + return impl::strcpy_insitu(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, impl::strlength(rhs)); + } + + PUGI__FN bool xml_attribute::set_value(int rhs) + { + if (!_attr) return false; + + return impl::set_value_integer(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, rhs < 0); + } + + PUGI__FN bool xml_attribute::set_value(unsigned int rhs) + { + if (!_attr) return false; + + return impl::set_value_integer(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, false); + } + + PUGI__FN bool xml_attribute::set_value(long rhs) + { + if (!_attr) return false; + + return impl::set_value_integer(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, rhs < 0); + } + + PUGI__FN bool xml_attribute::set_value(unsigned long rhs) + { + if (!_attr) return false; + + return impl::set_value_integer(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, false); + } + + PUGI__FN bool xml_attribute::set_value(double rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, default_double_precision); + } + + PUGI__FN bool xml_attribute::set_value(double rhs, int precision) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, precision); + } + + PUGI__FN bool xml_attribute::set_value(float rhs) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, default_float_precision); + } + + PUGI__FN bool xml_attribute::set_value(float rhs, int precision) + { + if (!_attr) return false; + + return impl::set_value_convert(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, precision); + } + + PUGI__FN bool xml_attribute::set_value(bool rhs) + { + if (!_attr) return false; + + return impl::set_value_bool(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs); + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN bool xml_attribute::set_value(long long rhs) + { + if (!_attr) return false; + + return impl::set_value_integer(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, rhs < 0); + } + + PUGI__FN bool xml_attribute::set_value(unsigned long long rhs) + { + if (!_attr) return false; + + return impl::set_value_integer(_attr->value, _attr->header, impl::xml_memory_page_value_allocated_mask, rhs, false); + } +#endif + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xml_attribute& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xml_attribute& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN xml_node::xml_node(): _root(0) + { + } + + PUGI__FN xml_node::xml_node(xml_node_struct* p): _root(p) + { + } + + PUGI__FN static void unspecified_bool_xml_node(xml_node***) + { + } + + PUGI__FN xml_node::operator xml_node::unspecified_bool_type() const + { + return _root ? unspecified_bool_xml_node : 0; + } + + PUGI__FN bool xml_node::operator!() const + { + return !_root; + } + + PUGI__FN xml_node::iterator xml_node::begin() const + { + return iterator(_root ? _root->first_child + 0 : 0, _root); + } + + PUGI__FN xml_node::iterator xml_node::end() const + { + return iterator(0, _root); + } + + PUGI__FN xml_node::attribute_iterator xml_node::attributes_begin() const + { + return attribute_iterator(_root ? _root->first_attribute + 0 : 0, _root); + } + + PUGI__FN xml_node::attribute_iterator xml_node::attributes_end() const + { + return attribute_iterator(0, _root); + } + + PUGI__FN xml_object_range xml_node::children() const + { + return xml_object_range(begin(), end()); + } + + PUGI__FN xml_object_range xml_node::children(const char_t* name_) const + { + return xml_object_range(xml_named_node_iterator(child(name_)._root, _root, name_), xml_named_node_iterator(0, _root, name_)); + } + + PUGI__FN xml_object_range xml_node::attributes() const + { + return xml_object_range(attributes_begin(), attributes_end()); + } + + PUGI__FN bool xml_node::operator==(const xml_node& r) const + { + return (_root == r._root); + } + + PUGI__FN bool xml_node::operator!=(const xml_node& r) const + { + return (_root != r._root); + } + + PUGI__FN bool xml_node::operator<(const xml_node& r) const + { + return (_root < r._root); + } + + PUGI__FN bool xml_node::operator>(const xml_node& r) const + { + return (_root > r._root); + } + + PUGI__FN bool xml_node::operator<=(const xml_node& r) const + { + return (_root <= r._root); + } + + PUGI__FN bool xml_node::operator>=(const xml_node& r) const + { + return (_root >= r._root); + } + + PUGI__FN bool xml_node::empty() const + { + return !_root; + } + + PUGI__FN const char_t* xml_node::name() const + { + if (!_root) return PUGIXML_TEXT(""); + const char_t* name = _root->name; + return name ? name : PUGIXML_TEXT(""); + } + + PUGI__FN xml_node_type xml_node::type() const + { + return _root ? PUGI__NODETYPE(_root) : node_null; + } + + PUGI__FN const char_t* xml_node::value() const + { + if (!_root) return PUGIXML_TEXT(""); + const char_t* value = _root->value; + return value ? value : PUGIXML_TEXT(""); + } + + PUGI__FN xml_node xml_node::child(const char_t* name_) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + { + const char_t* iname = i->name; + if (iname && impl::strequal(name_, iname)) + return xml_node(i); + } + + return xml_node(); + } + + PUGI__FN xml_attribute xml_node::attribute(const char_t* name_) const + { + if (!_root) return xml_attribute(); + + for (xml_attribute_struct* i = _root->first_attribute; i; i = i->next_attribute) + { + const char_t* iname = i->name; + if (iname && impl::strequal(name_, iname)) + return xml_attribute(i); + } + + return xml_attribute(); + } + + PUGI__FN xml_node xml_node::next_sibling(const char_t* name_) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->next_sibling; i; i = i->next_sibling) + { + const char_t* iname = i->name; + if (iname && impl::strequal(name_, iname)) + return xml_node(i); + } + + return xml_node(); + } + + PUGI__FN xml_node xml_node::next_sibling() const + { + return _root ? xml_node(_root->next_sibling) : xml_node(); + } + + PUGI__FN xml_node xml_node::previous_sibling(const char_t* name_) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->prev_sibling_c; i->next_sibling; i = i->prev_sibling_c) + { + const char_t* iname = i->name; + if (iname && impl::strequal(name_, iname)) + return xml_node(i); + } + + return xml_node(); + } + + PUGI__FN xml_attribute xml_node::attribute(const char_t* name_, xml_attribute& hint_) const + { + xml_attribute_struct* hint = hint_._attr; + + // if hint is not an attribute of node, behavior is not defined + assert(!hint || (_root && impl::is_attribute_of(hint, _root))); + + if (!_root) return xml_attribute(); + + // optimistically search from hint up until the end + for (xml_attribute_struct* i = hint; i; i = i->next_attribute) + { + const char_t* iname = i->name; + if (iname && impl::strequal(name_, iname)) + { + // update hint to maximize efficiency of searching for consecutive attributes + hint_._attr = i->next_attribute; + + return xml_attribute(i); + } + } + + // wrap around and search from the first attribute until the hint + // 'j' null pointer check is technically redundant, but it prevents a crash in case the assertion above fails + for (xml_attribute_struct* j = _root->first_attribute; j && j != hint; j = j->next_attribute) + { + const char_t* jname = j->name; + if (jname && impl::strequal(name_, jname)) + { + // update hint to maximize efficiency of searching for consecutive attributes + hint_._attr = j->next_attribute; + + return xml_attribute(j); + } + } + + return xml_attribute(); + } + + PUGI__FN xml_node xml_node::previous_sibling() const + { + if (!_root) return xml_node(); + xml_node_struct* prev = _root->prev_sibling_c; + return prev->next_sibling ? xml_node(prev) : xml_node(); + } + + PUGI__FN xml_node xml_node::parent() const + { + return _root ? xml_node(_root->parent) : xml_node(); + } + + PUGI__FN xml_node xml_node::root() const + { + return _root ? xml_node(&impl::get_document(_root)) : xml_node(); + } + + PUGI__FN xml_text xml_node::text() const + { + return xml_text(_root); + } + + PUGI__FN const char_t* xml_node::child_value() const + { + if (!_root) return PUGIXML_TEXT(""); + + // element nodes can have value if parse_embed_pcdata was used + if (PUGI__NODETYPE(_root) == node_element && _root->value) + return _root->value; + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + { + const char_t* ivalue = i->value; + if (impl::is_text_node(i) && ivalue) + return ivalue; + } + + return PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* xml_node::child_value(const char_t* name_) const + { + return child(name_).child_value(); + } + + PUGI__FN xml_attribute xml_node::first_attribute() const + { + if (!_root) return xml_attribute(); + return xml_attribute(_root->first_attribute); + } + + PUGI__FN xml_attribute xml_node::last_attribute() const + { + if (!_root) return xml_attribute(); + xml_attribute_struct* first = _root->first_attribute; + return first ? xml_attribute(first->prev_attribute_c) : xml_attribute(); + } + + PUGI__FN xml_node xml_node::first_child() const + { + if (!_root) return xml_node(); + return xml_node(_root->first_child); + } + + PUGI__FN xml_node xml_node::last_child() const + { + if (!_root) return xml_node(); + xml_node_struct* first = _root->first_child; + return first ? xml_node(first->prev_sibling_c) : xml_node(); + } + + PUGI__FN bool xml_node::set_name(const char_t* rhs) + { + xml_node_type type_ = _root ? PUGI__NODETYPE(_root) : node_null; + + if (type_ != node_element && type_ != node_pi && type_ != node_declaration) + return false; + + return impl::strcpy_insitu(_root->name, _root->header, impl::xml_memory_page_name_allocated_mask, rhs, impl::strlength(rhs)); + } + + PUGI__FN bool xml_node::set_value(const char_t* rhs, size_t sz) + { + xml_node_type type_ = _root ? PUGI__NODETYPE(_root) : node_null; + + if (type_ != node_pcdata && type_ != node_cdata && type_ != node_comment && type_ != node_pi && type_ != node_doctype) + return false; + + return impl::strcpy_insitu(_root->value, _root->header, impl::xml_memory_page_value_allocated_mask, rhs, sz); + } + + PUGI__FN bool xml_node::set_value(const char_t* rhs) + { + xml_node_type type_ = _root ? PUGI__NODETYPE(_root) : node_null; + + if (type_ != node_pcdata && type_ != node_cdata && type_ != node_comment && type_ != node_pi && type_ != node_doctype) + return false; + + return impl::strcpy_insitu(_root->value, _root->header, impl::xml_memory_page_value_allocated_mask, rhs, impl::strlength(rhs)); + } + + PUGI__FN xml_attribute xml_node::append_attribute(const char_t* name_) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::append_attribute(a._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::prepend_attribute(const char_t* name_) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::prepend_attribute(a._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_attribute_after(const char_t* name_, const xml_attribute& attr) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::insert_attribute_after(a._attr, attr._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_attribute_before(const char_t* name_, const xml_attribute& attr) + { + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::insert_attribute_before(a._attr, attr._attr, _root); + + a.set_name(name_); + + return a; + } + + PUGI__FN xml_attribute xml_node::append_copy(const xml_attribute& proto) + { + if (!proto) return xml_attribute(); + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::append_attribute(a._attr, _root); + impl::node_copy_attribute(a._attr, proto._attr); + + return a; + } + + PUGI__FN xml_attribute xml_node::prepend_copy(const xml_attribute& proto) + { + if (!proto) return xml_attribute(); + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::prepend_attribute(a._attr, _root); + impl::node_copy_attribute(a._attr, proto._attr); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_copy_after(const xml_attribute& proto, const xml_attribute& attr) + { + if (!proto) return xml_attribute(); + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::insert_attribute_after(a._attr, attr._attr, _root); + impl::node_copy_attribute(a._attr, proto._attr); + + return a; + } + + PUGI__FN xml_attribute xml_node::insert_copy_before(const xml_attribute& proto, const xml_attribute& attr) + { + if (!proto) return xml_attribute(); + if (!impl::allow_insert_attribute(type())) return xml_attribute(); + if (!attr || !impl::is_attribute_of(attr._attr, _root)) return xml_attribute(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_attribute(); + + xml_attribute a(impl::allocate_attribute(alloc)); + if (!a) return xml_attribute(); + + impl::insert_attribute_before(a._attr, attr._attr, _root); + impl::node_copy_attribute(a._attr, proto._attr); + + return a; + } + + PUGI__FN xml_node xml_node::append_child(xml_node_type type_) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::append_node(n._root, _root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::prepend_child(xml_node_type type_) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::prepend_node(n._root, _root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::insert_child_before(xml_node_type type_, const xml_node& node) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::insert_node_before(n._root, node._root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::insert_child_after(xml_node_type type_, const xml_node& node) + { + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::insert_node_after(n._root, node._root); + + if (type_ == node_declaration) n.set_name(PUGIXML_TEXT("xml")); + + return n; + } + + PUGI__FN xml_node xml_node::append_child(const char_t* name_) + { + xml_node result = append_child(node_element); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::prepend_child(const char_t* name_) + { + xml_node result = prepend_child(node_element); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::insert_child_after(const char_t* name_, const xml_node& node) + { + xml_node result = insert_child_after(node_element, node); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::insert_child_before(const char_t* name_, const xml_node& node) + { + xml_node result = insert_child_before(node_element, node); + + result.set_name(name_); + + return result; + } + + PUGI__FN xml_node xml_node::append_copy(const xml_node& proto) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::append_node(n._root, _root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::prepend_copy(const xml_node& proto) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::prepend_node(n._root, _root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::insert_copy_after(const xml_node& proto, const xml_node& node) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::insert_node_after(n._root, node._root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::insert_copy_before(const xml_node& proto, const xml_node& node) + { + xml_node_type type_ = proto.type(); + if (!impl::allow_insert_child(type(), type_)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + xml_node n(impl::allocate_node(alloc, type_)); + if (!n) return xml_node(); + + impl::insert_node_before(n._root, node._root); + impl::node_copy_tree(n._root, proto._root); + + return n; + } + + PUGI__FN xml_node xml_node::append_move(const xml_node& moved) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::append_node(moved._root, _root); + + return moved; + } + + PUGI__FN xml_node xml_node::prepend_move(const xml_node& moved) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::prepend_node(moved._root, _root); + + return moved; + } + + PUGI__FN xml_node xml_node::insert_move_after(const xml_node& moved, const xml_node& node) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + if (moved._root == node._root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::insert_node_after(moved._root, node._root); + + return moved; + } + + PUGI__FN xml_node xml_node::insert_move_before(const xml_node& moved, const xml_node& node) + { + if (!impl::allow_move(*this, moved)) return xml_node(); + if (!node._root || node._root->parent != _root) return xml_node(); + if (moved._root == node._root) return xml_node(); + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return xml_node(); + + // disable document_buffer_order optimization since moving nodes around changes document order without changing buffer pointers + impl::get_document(_root).header |= impl::xml_memory_page_contents_shared_mask; + + impl::remove_node(moved._root); + impl::insert_node_before(moved._root, node._root); + + return moved; + } + + PUGI__FN bool xml_node::remove_attribute(const char_t* name_) + { + return remove_attribute(attribute(name_)); + } + + PUGI__FN bool xml_node::remove_attribute(const xml_attribute& a) + { + if (!_root || !a._attr) return false; + if (!impl::is_attribute_of(a._attr, _root)) return false; + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return false; + + impl::remove_attribute(a._attr, _root); + impl::destroy_attribute(a._attr, alloc); + + return true; + } + + PUGI__FN bool xml_node::remove_attributes() + { + if (!_root) return false; + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return false; + + for (xml_attribute_struct* attr = _root->first_attribute; attr; ) + { + xml_attribute_struct* next = attr->next_attribute; + + impl::destroy_attribute(attr, alloc); + + attr = next; + } + + _root->first_attribute = 0; + + return true; + } + + PUGI__FN bool xml_node::remove_child(const char_t* name_) + { + return remove_child(child(name_)); + } + + PUGI__FN bool xml_node::remove_child(const xml_node& n) + { + if (!_root || !n._root || n._root->parent != _root) return false; + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return false; + + impl::remove_node(n._root); + impl::destroy_node(n._root, alloc); + + return true; + } + + PUGI__FN bool xml_node::remove_children() + { + if (!_root) return false; + + impl::xml_allocator& alloc = impl::get_allocator(_root); + if (!alloc.reserve()) return false; + + for (xml_node_struct* cur = _root->first_child; cur; ) + { + xml_node_struct* next = cur->next_sibling; + + impl::destroy_node(cur, alloc); + + cur = next; + } + + _root->first_child = 0; + + return true; + } + + PUGI__FN xml_parse_result xml_node::append_buffer(const void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + // append_buffer is only valid for elements/documents + if (!impl::allow_insert_child(type(), node_element)) return impl::make_parse_result(status_append_invalid_root); + + // get document node + impl::xml_document_struct* doc = &impl::get_document(_root); + + // disable document_buffer_order optimization since in a document with multiple buffers comparing buffer pointers does not make sense + doc->header |= impl::xml_memory_page_contents_shared_mask; + + // get extra buffer element (we'll store the document fragment buffer there so that we can deallocate it later) + impl::xml_memory_page* page = 0; + impl::xml_extra_buffer* extra = static_cast(doc->allocate_memory(sizeof(impl::xml_extra_buffer) + sizeof(void*), page)); + (void)page; + + if (!extra) return impl::make_parse_result(status_out_of_memory); + + #ifdef PUGIXML_COMPACT + // align the memory block to a pointer boundary; this is required for compact mode where memory allocations are only 4b aligned + // note that this requires up to sizeof(void*)-1 additional memory, which the allocation above takes into account + extra = reinterpret_cast((reinterpret_cast(extra) + (sizeof(void*) - 1)) & ~(sizeof(void*) - 1)); + #endif + + // add extra buffer to the list + extra->buffer = 0; + extra->next = doc->extra_buffers; + doc->extra_buffers = extra; + + // name of the root has to be NULL before parsing - otherwise closing node mismatches will not be detected at the top level + impl::name_null_sentry sentry(_root); + + return impl::load_buffer_impl(doc, _root, const_cast(contents), size, options, encoding, false, false, &extra->buffer); + } + + PUGI__FN xml_node xml_node::find_child_by_attribute(const char_t* name_, const char_t* attr_name, const char_t* attr_value) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + { + const char_t* iname = i->name; + if (iname && impl::strequal(name_, iname)) + { + for (xml_attribute_struct* a = i->first_attribute; a; a = a->next_attribute) + { + const char_t* aname = a->name; + if (aname && impl::strequal(attr_name, aname)) + { + const char_t* avalue = a->value; + if (impl::strequal(attr_value, avalue ? avalue : PUGIXML_TEXT(""))) + return xml_node(i); + } + } + } + } + + return xml_node(); + } + + PUGI__FN xml_node xml_node::find_child_by_attribute(const char_t* attr_name, const char_t* attr_value) const + { + if (!_root) return xml_node(); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + for (xml_attribute_struct* a = i->first_attribute; a; a = a->next_attribute) + { + const char_t* aname = a->name; + if (aname && impl::strequal(attr_name, aname)) + { + const char_t* avalue = a->value; + if (impl::strequal(attr_value, avalue ? avalue : PUGIXML_TEXT(""))) + return xml_node(i); + } + } + + return xml_node(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN string_t xml_node::path(char_t delimiter) const + { + if (!_root) return string_t(); + + size_t offset = 0; + + for (xml_node_struct* i = _root; i; i = i->parent) + { + const char_t* iname = i->name; + offset += (i != _root); + offset += iname ? impl::strlength(iname) : 0; + } + + string_t result; + result.resize(offset); + + for (xml_node_struct* j = _root; j; j = j->parent) + { + if (j != _root) + result[--offset] = delimiter; + + const char_t* jname = j->name; + if (jname) + { + size_t length = impl::strlength(jname); + + offset -= length; + memcpy(&result[offset], jname, length * sizeof(char_t)); + } + } + + assert(offset == 0); + + return result; + } +#endif + + PUGI__FN xml_node xml_node::first_element_by_path(const char_t* path_, char_t delimiter) const + { + xml_node context = path_[0] == delimiter ? root() : *this; + + if (!context._root) return xml_node(); + + const char_t* path_segment = path_; + + while (*path_segment == delimiter) ++path_segment; + + const char_t* path_segment_end = path_segment; + + while (*path_segment_end && *path_segment_end != delimiter) ++path_segment_end; + + if (path_segment == path_segment_end) return context; + + const char_t* next_segment = path_segment_end; + + while (*next_segment == delimiter) ++next_segment; + + if (*path_segment == '.' && path_segment + 1 == path_segment_end) + return context.first_element_by_path(next_segment, delimiter); + else if (*path_segment == '.' && *(path_segment+1) == '.' && path_segment + 2 == path_segment_end) + return context.parent().first_element_by_path(next_segment, delimiter); + else + { + for (xml_node_struct* j = context._root->first_child; j; j = j->next_sibling) + { + const char_t* jname = j->name; + if (jname && impl::strequalrange(jname, path_segment, static_cast(path_segment_end - path_segment))) + { + xml_node subsearch = xml_node(j).first_element_by_path(next_segment, delimiter); + + if (subsearch) return subsearch; + } + } + + return xml_node(); + } + } + + PUGI__FN bool xml_node::traverse(xml_tree_walker& walker) + { + walker._depth = -1; + + xml_node arg_begin(_root); + if (!walker.begin(arg_begin)) return false; + + xml_node_struct* cur = _root ? _root->first_child + 0 : 0; + + if (cur) + { + ++walker._depth; + + do + { + xml_node arg_for_each(cur); + if (!walker.for_each(arg_for_each)) + return false; + + if (cur->first_child) + { + ++walker._depth; + cur = cur->first_child; + } + else if (cur->next_sibling) + cur = cur->next_sibling; + else + { + while (!cur->next_sibling && cur != _root && cur->parent) + { + --walker._depth; + cur = cur->parent; + } + + if (cur != _root) + cur = cur->next_sibling; + } + } + while (cur && cur != _root); + } + + assert(walker._depth == -1); + + xml_node arg_end(_root); + return walker.end(arg_end); + } + + PUGI__FN size_t xml_node::hash_value() const + { + return static_cast(reinterpret_cast(_root) / sizeof(xml_node_struct)); + } + + PUGI__FN xml_node_struct* xml_node::internal_object() const + { + return _root; + } + + PUGI__FN void xml_node::print(xml_writer& writer, const char_t* indent, unsigned int flags, xml_encoding encoding, unsigned int depth) const + { + if (!_root) return; + + impl::xml_buffered_writer buffered_writer(writer, encoding); + + impl::node_output(buffered_writer, _root, indent, flags, depth); + + buffered_writer.flush(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN void xml_node::print(std::basic_ostream >& stream, const char_t* indent, unsigned int flags, xml_encoding encoding, unsigned int depth) const + { + xml_writer_stream writer(stream); + + print(writer, indent, flags, encoding, depth); + } + + PUGI__FN void xml_node::print(std::basic_ostream >& stream, const char_t* indent, unsigned int flags, unsigned int depth) const + { + xml_writer_stream writer(stream); + + print(writer, indent, flags, encoding_wchar, depth); + } +#endif + + PUGI__FN ptrdiff_t xml_node::offset_debug() const + { + if (!_root) return -1; + + impl::xml_document_struct& doc = impl::get_document(_root); + + // we can determine the offset reliably only if there is exactly once parse buffer + if (!doc.buffer || doc.extra_buffers) return -1; + + switch (type()) + { + case node_document: + return 0; + + case node_element: + case node_declaration: + case node_pi: + return _root->name && (_root->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0 ? _root->name - doc.buffer : -1; + + case node_pcdata: + case node_cdata: + case node_comment: + case node_doctype: + return _root->value && (_root->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0 ? _root->value - doc.buffer : -1; + + default: + assert(false && "Invalid node type"); // unreachable + return -1; + } + } + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xml_node& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xml_node& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN xml_text::xml_text(xml_node_struct* root): _root(root) + { + } + + PUGI__FN xml_node_struct* xml_text::_data() const + { + if (!_root || impl::is_text_node(_root)) return _root; + + // element nodes can have value if parse_embed_pcdata was used + if (PUGI__NODETYPE(_root) == node_element && _root->value) + return _root; + + for (xml_node_struct* node = _root->first_child; node; node = node->next_sibling) + if (impl::is_text_node(node)) + return node; + + return 0; + } + + PUGI__FN xml_node_struct* xml_text::_data_new() + { + xml_node_struct* d = _data(); + if (d) return d; + + return xml_node(_root).append_child(node_pcdata).internal_object(); + } + + PUGI__FN xml_text::xml_text(): _root(0) + { + } + + PUGI__FN static void unspecified_bool_xml_text(xml_text***) + { + } + + PUGI__FN xml_text::operator xml_text::unspecified_bool_type() const + { + return _data() ? unspecified_bool_xml_text : 0; + } + + PUGI__FN bool xml_text::operator!() const + { + return !_data(); + } + + PUGI__FN bool xml_text::empty() const + { + return _data() == 0; + } + + PUGI__FN const char_t* xml_text::get() const + { + xml_node_struct* d = _data(); + if (!d) return PUGIXML_TEXT(""); + const char_t* value = d->value; + return value ? value : PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* xml_text::as_string(const char_t* def) const + { + xml_node_struct* d = _data(); + if (!d) return def; + const char_t* value = d->value; + return value ? value : def; + } + + PUGI__FN int xml_text::as_int(int def) const + { + xml_node_struct* d = _data(); + if (!d) return def; + const char_t* value = d->value; + return value ? impl::get_value_int(value) : def; + } + + PUGI__FN unsigned int xml_text::as_uint(unsigned int def) const + { + xml_node_struct* d = _data(); + if (!d) return def; + const char_t* value = d->value; + return value ? impl::get_value_uint(value) : def; + } + + PUGI__FN double xml_text::as_double(double def) const + { + xml_node_struct* d = _data(); + if (!d) return def; + const char_t* value = d->value; + return value ? impl::get_value_double(value) : def; + } + + PUGI__FN float xml_text::as_float(float def) const + { + xml_node_struct* d = _data(); + if (!d) return def; + const char_t* value = d->value; + return value ? impl::get_value_float(value) : def; + } + + PUGI__FN bool xml_text::as_bool(bool def) const + { + xml_node_struct* d = _data(); + if (!d) return def; + const char_t* value = d->value; + return value ? impl::get_value_bool(value) : def; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN long long xml_text::as_llong(long long def) const + { + xml_node_struct* d = _data(); + if (!d) return def; + const char_t* value = d->value; + return value ? impl::get_value_llong(value) : def; + } + + PUGI__FN unsigned long long xml_text::as_ullong(unsigned long long def) const + { + xml_node_struct* d = _data(); + if (!d) return def; + const char_t* value = d->value; + return value ? impl::get_value_ullong(value) : def; + } +#endif + + PUGI__FN bool xml_text::set(const char_t* rhs, size_t sz) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::strcpy_insitu(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, sz) : false; + } + + PUGI__FN bool xml_text::set(const char_t* rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::strcpy_insitu(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, impl::strlength(rhs)) : false; + } + + PUGI__FN bool xml_text::set(int rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_integer(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, rhs < 0) : false; + } + + PUGI__FN bool xml_text::set(unsigned int rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_integer(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, false) : false; + } + + PUGI__FN bool xml_text::set(long rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_integer(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, rhs < 0) : false; + } + + PUGI__FN bool xml_text::set(unsigned long rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_integer(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, false) : false; + } + + PUGI__FN bool xml_text::set(float rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, default_float_precision) : false; + } + + PUGI__FN bool xml_text::set(float rhs, int precision) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, precision) : false; + } + + PUGI__FN bool xml_text::set(double rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, default_double_precision) : false; + } + + PUGI__FN bool xml_text::set(double rhs, int precision) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_convert(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, precision) : false; + } + + PUGI__FN bool xml_text::set(bool rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_bool(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs) : false; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN bool xml_text::set(long long rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_integer(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, rhs < 0) : false; + } + + PUGI__FN bool xml_text::set(unsigned long long rhs) + { + xml_node_struct* dn = _data_new(); + + return dn ? impl::set_value_integer(dn->value, dn->header, impl::xml_memory_page_value_allocated_mask, rhs, false) : false; + } +#endif + + PUGI__FN xml_text& xml_text::operator=(const char_t* rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(int rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(unsigned int rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(long rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(unsigned long rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(double rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(float rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(bool rhs) + { + set(rhs); + return *this; + } + +#ifdef PUGIXML_HAS_LONG_LONG + PUGI__FN xml_text& xml_text::operator=(long long rhs) + { + set(rhs); + return *this; + } + + PUGI__FN xml_text& xml_text::operator=(unsigned long long rhs) + { + set(rhs); + return *this; + } +#endif + + PUGI__FN xml_node xml_text::data() const + { + return xml_node(_data()); + } + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xml_text& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xml_text& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN xml_node_iterator::xml_node_iterator() + { + } + + PUGI__FN xml_node_iterator::xml_node_iterator(const xml_node& node): _wrap(node), _parent(node.parent()) + { + } + + PUGI__FN xml_node_iterator::xml_node_iterator(xml_node_struct* ref, xml_node_struct* parent): _wrap(ref), _parent(parent) + { + } + + PUGI__FN bool xml_node_iterator::operator==(const xml_node_iterator& rhs) const + { + return _wrap._root == rhs._wrap._root && _parent._root == rhs._parent._root; + } + + PUGI__FN bool xml_node_iterator::operator!=(const xml_node_iterator& rhs) const + { + return _wrap._root != rhs._wrap._root || _parent._root != rhs._parent._root; + } + + PUGI__FN xml_node& xml_node_iterator::operator*() const + { + assert(_wrap._root); + return _wrap; + } + + PUGI__FN xml_node* xml_node_iterator::operator->() const + { + assert(_wrap._root); + return const_cast(&_wrap); // BCC5 workaround + } + + PUGI__FN xml_node_iterator& xml_node_iterator::operator++() + { + assert(_wrap._root); + _wrap._root = _wrap._root->next_sibling; + return *this; + } + + PUGI__FN xml_node_iterator xml_node_iterator::operator++(int) + { + xml_node_iterator temp = *this; + ++*this; + return temp; + } + + PUGI__FN xml_node_iterator& xml_node_iterator::operator--() + { + _wrap = _wrap._root ? _wrap.previous_sibling() : _parent.last_child(); + return *this; + } + + PUGI__FN xml_node_iterator xml_node_iterator::operator--(int) + { + xml_node_iterator temp = *this; + --*this; + return temp; + } + + PUGI__FN xml_attribute_iterator::xml_attribute_iterator() + { + } + + PUGI__FN xml_attribute_iterator::xml_attribute_iterator(const xml_attribute& attr, const xml_node& parent): _wrap(attr), _parent(parent) + { + } + + PUGI__FN xml_attribute_iterator::xml_attribute_iterator(xml_attribute_struct* ref, xml_node_struct* parent): _wrap(ref), _parent(parent) + { + } + + PUGI__FN bool xml_attribute_iterator::operator==(const xml_attribute_iterator& rhs) const + { + return _wrap._attr == rhs._wrap._attr && _parent._root == rhs._parent._root; + } + + PUGI__FN bool xml_attribute_iterator::operator!=(const xml_attribute_iterator& rhs) const + { + return _wrap._attr != rhs._wrap._attr || _parent._root != rhs._parent._root; + } + + PUGI__FN xml_attribute& xml_attribute_iterator::operator*() const + { + assert(_wrap._attr); + return _wrap; + } + + PUGI__FN xml_attribute* xml_attribute_iterator::operator->() const + { + assert(_wrap._attr); + return const_cast(&_wrap); // BCC5 workaround + } + + PUGI__FN xml_attribute_iterator& xml_attribute_iterator::operator++() + { + assert(_wrap._attr); + _wrap._attr = _wrap._attr->next_attribute; + return *this; + } + + PUGI__FN xml_attribute_iterator xml_attribute_iterator::operator++(int) + { + xml_attribute_iterator temp = *this; + ++*this; + return temp; + } + + PUGI__FN xml_attribute_iterator& xml_attribute_iterator::operator--() + { + _wrap = _wrap._attr ? _wrap.previous_attribute() : _parent.last_attribute(); + return *this; + } + + PUGI__FN xml_attribute_iterator xml_attribute_iterator::operator--(int) + { + xml_attribute_iterator temp = *this; + --*this; + return temp; + } + + PUGI__FN xml_named_node_iterator::xml_named_node_iterator(): _name(0) + { + } + + PUGI__FN xml_named_node_iterator::xml_named_node_iterator(const xml_node& node, const char_t* name): _wrap(node), _parent(node.parent()), _name(name) + { + } + + PUGI__FN xml_named_node_iterator::xml_named_node_iterator(xml_node_struct* ref, xml_node_struct* parent, const char_t* name): _wrap(ref), _parent(parent), _name(name) + { + } + + PUGI__FN bool xml_named_node_iterator::operator==(const xml_named_node_iterator& rhs) const + { + return _wrap._root == rhs._wrap._root && _parent._root == rhs._parent._root; + } + + PUGI__FN bool xml_named_node_iterator::operator!=(const xml_named_node_iterator& rhs) const + { + return _wrap._root != rhs._wrap._root || _parent._root != rhs._parent._root; + } + + PUGI__FN xml_node& xml_named_node_iterator::operator*() const + { + assert(_wrap._root); + return _wrap; + } + + PUGI__FN xml_node* xml_named_node_iterator::operator->() const + { + assert(_wrap._root); + return const_cast(&_wrap); // BCC5 workaround + } + + PUGI__FN xml_named_node_iterator& xml_named_node_iterator::operator++() + { + assert(_wrap._root); + _wrap = _wrap.next_sibling(_name); + return *this; + } + + PUGI__FN xml_named_node_iterator xml_named_node_iterator::operator++(int) + { + xml_named_node_iterator temp = *this; + ++*this; + return temp; + } + + PUGI__FN xml_named_node_iterator& xml_named_node_iterator::operator--() + { + if (_wrap._root) + _wrap = _wrap.previous_sibling(_name); + else + { + _wrap = _parent.last_child(); + + if (!impl::strequal(_wrap.name(), _name)) + _wrap = _wrap.previous_sibling(_name); + } + + return *this; + } + + PUGI__FN xml_named_node_iterator xml_named_node_iterator::operator--(int) + { + xml_named_node_iterator temp = *this; + --*this; + return temp; + } + + PUGI__FN xml_parse_result::xml_parse_result(): status(status_internal_error), offset(0), encoding(encoding_auto) + { + } + + PUGI__FN xml_parse_result::operator bool() const + { + return status == status_ok; + } + + PUGI__FN const char* xml_parse_result::description() const + { + switch (status) + { + case status_ok: return "No error"; + + case status_file_not_found: return "File was not found"; + case status_io_error: return "Error reading from file/stream"; + case status_out_of_memory: return "Could not allocate memory"; + case status_internal_error: return "Internal error occurred"; + + case status_unrecognized_tag: return "Could not determine tag type"; + + case status_bad_pi: return "Error parsing document declaration/processing instruction"; + case status_bad_comment: return "Error parsing comment"; + case status_bad_cdata: return "Error parsing CDATA section"; + case status_bad_doctype: return "Error parsing document type declaration"; + case status_bad_pcdata: return "Error parsing PCDATA section"; + case status_bad_start_element: return "Error parsing start element tag"; + case status_bad_attribute: return "Error parsing element attribute"; + case status_bad_end_element: return "Error parsing end element tag"; + case status_end_element_mismatch: return "Start-end tags mismatch"; + + case status_append_invalid_root: return "Unable to append nodes: root is not an element or document"; + + case status_no_document_element: return "No document element found"; + + default: return "Unknown error"; + } + } + + PUGI__FN xml_document::xml_document(): _buffer(0) + { + _create(); + } + + PUGI__FN xml_document::~xml_document() + { + _destroy(); + } + +#ifdef PUGIXML_HAS_MOVE + PUGI__FN xml_document::xml_document(xml_document&& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT: _buffer(0) + { + _create(); + _move(rhs); + } + + PUGI__FN xml_document& xml_document::operator=(xml_document&& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT + { + if (this == &rhs) return *this; + + _destroy(); + _create(); + _move(rhs); + + return *this; + } +#endif + + PUGI__FN void xml_document::reset() + { + _destroy(); + _create(); + } + + PUGI__FN void xml_document::reset(const xml_document& proto) + { + reset(); + + impl::node_copy_tree(_root, proto._root); + } + + PUGI__FN void xml_document::_create() + { + assert(!_root); + + #ifdef PUGIXML_COMPACT + // space for page marker for the first page (uint32_t), rounded up to pointer size; assumes pointers are at least 32-bit + const size_t page_offset = sizeof(void*); + #else + const size_t page_offset = 0; + #endif + + // initialize sentinel page + PUGI__STATIC_ASSERT(sizeof(impl::xml_memory_page) + sizeof(impl::xml_document_struct) + page_offset <= sizeof(_memory)); + + // prepare page structure + impl::xml_memory_page* page = impl::xml_memory_page::construct(_memory); + assert(page); + + page->busy_size = impl::xml_memory_page_size; + + // setup first page marker + #ifdef PUGIXML_COMPACT + // round-trip through void* to avoid 'cast increases required alignment of target type' warning + page->compact_page_marker = reinterpret_cast(static_cast(reinterpret_cast(page) + sizeof(impl::xml_memory_page))); + *page->compact_page_marker = sizeof(impl::xml_memory_page); + #endif + + // allocate new root + _root = new (reinterpret_cast(page) + sizeof(impl::xml_memory_page) + page_offset) impl::xml_document_struct(page); + _root->prev_sibling_c = _root; + + // setup sentinel page + page->allocator = static_cast(_root); + + // setup hash table pointer in allocator + #ifdef PUGIXML_COMPACT + page->allocator->_hash = &static_cast(_root)->hash; + #endif + + // verify the document allocation + assert(reinterpret_cast(_root) + sizeof(impl::xml_document_struct) <= _memory + sizeof(_memory)); + } + + PUGI__FN void xml_document::_destroy() + { + assert(_root); + + // destroy static storage + if (_buffer) + { + impl::xml_memory::deallocate(_buffer); + _buffer = 0; + } + + // destroy extra buffers (note: no need to destroy linked list nodes, they're allocated using document allocator) + for (impl::xml_extra_buffer* extra = static_cast(_root)->extra_buffers; extra; extra = extra->next) + { + if (extra->buffer) impl::xml_memory::deallocate(extra->buffer); + } + + // destroy dynamic storage, leave sentinel page (it's in static memory) + impl::xml_memory_page* root_page = PUGI__GETPAGE(_root); + assert(root_page && !root_page->prev); + assert(reinterpret_cast(root_page) >= _memory && reinterpret_cast(root_page) < _memory + sizeof(_memory)); + + for (impl::xml_memory_page* page = root_page->next; page; ) + { + impl::xml_memory_page* next = page->next; + + impl::xml_allocator::deallocate_page(page); + + page = next; + } + + #ifdef PUGIXML_COMPACT + // destroy hash table + static_cast(_root)->hash.clear(); + #endif + + _root = 0; + } + +#ifdef PUGIXML_HAS_MOVE + PUGI__FN void xml_document::_move(xml_document& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT + { + impl::xml_document_struct* doc = static_cast(_root); + impl::xml_document_struct* other = static_cast(rhs._root); + + // save first child pointer for later; this needs hash access + xml_node_struct* other_first_child = other->first_child; + + #ifdef PUGIXML_COMPACT + // reserve space for the hash table up front; this is the only operation that can fail + // if it does, we have no choice but to throw (if we have exceptions) + if (other_first_child) + { + size_t other_children = 0; + for (xml_node_struct* node = other_first_child; node; node = node->next_sibling) + other_children++; + + // in compact mode, each pointer assignment could result in a hash table request + // during move, we have to relocate document first_child and parents of all children + // normally there's just one child and its parent has a pointerless encoding but + // we assume the worst here + if (!other->_hash->reserve(other_children + 1)) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return; + #else + throw std::bad_alloc(); + #endif + } + } + #endif + + // move allocation state + // note that other->_root may point to the embedded document page, in which case we should keep original (empty) state + if (other->_root != PUGI__GETPAGE(other)) + { + doc->_root = other->_root; + doc->_busy_size = other->_busy_size; + } + + // move buffer state + doc->buffer = other->buffer; + doc->extra_buffers = other->extra_buffers; + _buffer = rhs._buffer; + + #ifdef PUGIXML_COMPACT + // move compact hash; note that the hash table can have pointers to other but they will be "inactive", similarly to nodes removed with remove_child + doc->hash = other->hash; + doc->_hash = &doc->hash; + + // make sure we don't access other hash up until the end when we reinitialize other document + other->_hash = 0; + #endif + + // move page structure + impl::xml_memory_page* doc_page = PUGI__GETPAGE(doc); + assert(doc_page && !doc_page->prev && !doc_page->next); + + impl::xml_memory_page* other_page = PUGI__GETPAGE(other); + assert(other_page && !other_page->prev); + + // relink pages since root page is embedded into xml_document + if (impl::xml_memory_page* page = other_page->next) + { + assert(page->prev == other_page); + + page->prev = doc_page; + + doc_page->next = page; + other_page->next = 0; + } + + // make sure pages point to the correct document state + for (impl::xml_memory_page* page = doc_page->next; page; page = page->next) + { + assert(page->allocator == other); + + page->allocator = doc; + + #ifdef PUGIXML_COMPACT + // this automatically migrates most children between documents and prevents ->parent assignment from allocating + if (page->compact_shared_parent == other) + page->compact_shared_parent = doc; + #endif + } + + // move tree structure + assert(!doc->first_child); + + doc->first_child = other_first_child; + + for (xml_node_struct* node = other_first_child; node; node = node->next_sibling) + { + #ifdef PUGIXML_COMPACT + // most children will have migrated when we reassigned compact_shared_parent + assert(node->parent == other || node->parent == doc); + + node->parent = doc; + #else + assert(node->parent == other); + node->parent = doc; + #endif + } + + // reset other document + new (other) impl::xml_document_struct(PUGI__GETPAGE(other)); + rhs._buffer = 0; + } +#endif + +#ifndef PUGIXML_NO_STL + PUGI__FN xml_parse_result xml_document::load(std::basic_istream >& stream, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_stream_impl(static_cast(_root), stream, options, encoding, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load(std::basic_istream >& stream, unsigned int options) + { + reset(); + + return impl::load_stream_impl(static_cast(_root), stream, options, encoding_wchar, &_buffer); + } +#endif + + PUGI__FN xml_parse_result xml_document::load_string(const char_t* contents, unsigned int options) + { + // Force native encoding (skip autodetection) + #ifdef PUGIXML_WCHAR_MODE + xml_encoding encoding = encoding_wchar; + #else + xml_encoding encoding = encoding_utf8; + #endif + + return load_buffer(contents, impl::strlength(contents) * sizeof(char_t), options, encoding); + } + + PUGI__FN xml_parse_result xml_document::load(const char_t* contents, unsigned int options) + { + return load_string(contents, options); + } + + PUGI__FN xml_parse_result xml_document::load_file(const char* path_, unsigned int options, xml_encoding encoding) + { + reset(); + + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(impl::open_file(path_, "rb"), impl::close_file); + + return impl::load_file_impl(static_cast(_root), file.data, options, encoding, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_file(const wchar_t* path_, unsigned int options, xml_encoding encoding) + { + reset(); + + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(impl::open_file_wide(path_, L"rb"), impl::close_file); + + return impl::load_file_impl(static_cast(_root), file.data, options, encoding, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_buffer(const void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_buffer_impl(static_cast(_root), _root, const_cast(contents), size, options, encoding, false, false, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_buffer_inplace(void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_buffer_impl(static_cast(_root), _root, contents, size, options, encoding, true, false, &_buffer); + } + + PUGI__FN xml_parse_result xml_document::load_buffer_inplace_own(void* contents, size_t size, unsigned int options, xml_encoding encoding) + { + reset(); + + return impl::load_buffer_impl(static_cast(_root), _root, contents, size, options, encoding, true, true, &_buffer); + } + + PUGI__FN void xml_document::save(xml_writer& writer, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + impl::xml_buffered_writer buffered_writer(writer, encoding); + + if ((flags & format_write_bom) && encoding != encoding_latin1) + { + // BOM always represents the codepoint U+FEFF, so just write it in native encoding + #ifdef PUGIXML_WCHAR_MODE + unsigned int bom = 0xfeff; + buffered_writer.write(static_cast(bom)); + #else + buffered_writer.write('\xef', '\xbb', '\xbf'); + #endif + } + + if (!(flags & format_no_declaration) && !impl::has_declaration(_root)) + { + buffered_writer.write_string(PUGIXML_TEXT("'); + if (!(flags & format_raw)) buffered_writer.write('\n'); + } + + impl::node_output(buffered_writer, _root, indent, flags, 0); + + buffered_writer.flush(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN void xml_document::save(std::basic_ostream >& stream, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + xml_writer_stream writer(stream); + + save(writer, indent, flags, encoding); + } + + PUGI__FN void xml_document::save(std::basic_ostream >& stream, const char_t* indent, unsigned int flags) const + { + xml_writer_stream writer(stream); + + save(writer, indent, flags, encoding_wchar); + } +#endif + + PUGI__FN bool xml_document::save_file(const char* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(impl::open_file(path_, (flags & format_save_file_text) ? "w" : "wb"), impl::close_file); + + return impl::save_file_impl(*this, file.data, indent, flags, encoding) && fclose(file.release()) == 0; + } + + PUGI__FN bool xml_document::save_file(const wchar_t* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const + { + using impl::auto_deleter; // MSVC7 workaround + auto_deleter file(impl::open_file_wide(path_, (flags & format_save_file_text) ? L"w" : L"wb"), impl::close_file); + + return impl::save_file_impl(*this, file.data, indent, flags, encoding) && fclose(file.release()) == 0; + } + + PUGI__FN xml_node xml_document::document_element() const + { + assert(_root); + + for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) + if (PUGI__NODETYPE(i) == node_element) + return xml_node(i); + + return xml_node(); + } + +#ifndef PUGIXML_NO_STL + PUGI__FN std::string PUGIXML_FUNCTION as_utf8(const wchar_t* str) + { + assert(str); + + return impl::as_utf8_impl(str, impl::strlength_wide(str)); + } + + PUGI__FN std::string PUGIXML_FUNCTION as_utf8(const std::basic_string& str) + { + return impl::as_utf8_impl(str.c_str(), str.size()); + } + + PUGI__FN std::basic_string PUGIXML_FUNCTION as_wide(const char* str) + { + assert(str); + + return impl::as_wide_impl(str, strlen(str)); + } + + PUGI__FN std::basic_string PUGIXML_FUNCTION as_wide(const std::string& str) + { + return impl::as_wide_impl(str.c_str(), str.size()); + } +#endif + + PUGI__FN void PUGIXML_FUNCTION set_memory_management_functions(allocation_function allocate, deallocation_function deallocate) + { + impl::xml_memory::allocate = allocate; + impl::xml_memory::deallocate = deallocate; + } + + PUGI__FN allocation_function PUGIXML_FUNCTION get_memory_allocation_function() + { + return impl::xml_memory::allocate; + } + + PUGI__FN deallocation_function PUGIXML_FUNCTION get_memory_deallocation_function() + { + return impl::xml_memory::deallocate; + } +} + +#if !defined(PUGIXML_NO_STL) && (defined(_MSC_VER) || defined(__ICC)) +namespace std +{ + // Workarounds for (non-standard) iterator category detection for older versions (MSVC7/IC8 and earlier) + PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_attribute_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag _Iter_cat(const pugi::xml_named_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } +} +#endif + +#if !defined(PUGIXML_NO_STL) && defined(__SUNPRO_CC) +namespace std +{ + // Workarounds for (non-standard) iterator category detection + PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pugi::xml_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pugi::xml_attribute_iterator&) + { + return std::bidirectional_iterator_tag(); + } + + PUGI__FN std::bidirectional_iterator_tag __iterator_category(const pugi::xml_named_node_iterator&) + { + return std::bidirectional_iterator_tag(); + } +} +#endif + +#ifndef PUGIXML_NO_XPATH +// STL replacements +PUGI__NS_BEGIN + struct equal_to + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs == rhs; + } + }; + + struct not_equal_to + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs != rhs; + } + }; + + struct less + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs < rhs; + } + }; + + struct less_equal + { + template bool operator()(const T& lhs, const T& rhs) const + { + return lhs <= rhs; + } + }; + + template inline void swap(T& lhs, T& rhs) + { + T temp = lhs; + lhs = rhs; + rhs = temp; + } + + template PUGI__FN I min_element(I begin, I end, const Pred& pred) + { + I result = begin; + + for (I it = begin + 1; it != end; ++it) + if (pred(*it, *result)) + result = it; + + return result; + } + + template PUGI__FN void reverse(I begin, I end) + { + while (end - begin > 1) + swap(*begin++, *--end); + } + + template PUGI__FN I unique(I begin, I end) + { + // fast skip head + while (end - begin > 1 && *begin != *(begin + 1)) + begin++; + + if (begin == end) + return begin; + + // last written element + I write = begin++; + + // merge unique elements + while (begin != end) + { + if (*begin != *write) + *++write = *begin++; + else + begin++; + } + + // past-the-end (write points to live element) + return write + 1; + } + + template PUGI__FN void insertion_sort(T* begin, T* end, const Pred& pred) + { + if (begin == end) + return; + + for (T* it = begin + 1; it != end; ++it) + { + T val = *it; + T* hole = it; + + // move hole backwards + while (hole > begin && pred(val, *(hole - 1))) + { + *hole = *(hole - 1); + hole--; + } + + // fill hole with element + *hole = val; + } + } + + template inline I median3(I first, I middle, I last, const Pred& pred) + { + if (pred(*middle, *first)) + swap(middle, first); + if (pred(*last, *middle)) + swap(last, middle); + if (pred(*middle, *first)) + swap(middle, first); + + return middle; + } + + template PUGI__FN void partition3(T* begin, T* end, T pivot, const Pred& pred, T** out_eqbeg, T** out_eqend) + { + // invariant: array is split into 4 groups: = < ? > (each variable denotes the boundary between the groups) + T* eq = begin; + T* lt = begin; + T* gt = end; + + while (lt < gt) + { + if (pred(*lt, pivot)) + lt++; + else if (*lt == pivot) + swap(*eq++, *lt++); + else + swap(*lt, *--gt); + } + + // we now have just 4 groups: = < >; move equal elements to the middle + T* eqbeg = gt; + + for (T* it = begin; it != eq; ++it) + swap(*it, *--eqbeg); + + *out_eqbeg = eqbeg; + *out_eqend = gt; + } + + template PUGI__FN void sort(I begin, I end, const Pred& pred) + { + // sort large chunks + while (end - begin > 16) + { + // find median element + I middle = begin + (end - begin) / 2; + I median = median3(begin, middle, end - 1, pred); + + // partition in three chunks (< = >) + I eqbeg, eqend; + partition3(begin, end, *median, pred, &eqbeg, &eqend); + + // loop on larger half + if (eqbeg - begin > end - eqend) + { + sort(eqend, end, pred); + end = eqbeg; + } + else + { + sort(begin, eqbeg, pred); + begin = eqend; + } + } + + // insertion sort small chunk + insertion_sort(begin, end, pred); + } + + PUGI__FN bool hash_insert(const void** table, size_t size, const void* key) + { + assert(key); + + unsigned int h = static_cast(reinterpret_cast(key)); + + // MurmurHash3 32-bit finalizer + h ^= h >> 16; + h *= 0x85ebca6bu; + h ^= h >> 13; + h *= 0xc2b2ae35u; + h ^= h >> 16; + + size_t hashmod = size - 1; + size_t bucket = h & hashmod; + + for (size_t probe = 0; probe <= hashmod; ++probe) + { + if (table[bucket] == 0) + { + table[bucket] = key; + return true; + } + + if (table[bucket] == key) + return false; + + // hash collision, quadratic probing + bucket = (bucket + probe + 1) & hashmod; + } + + assert(false && "Hash table is full"); // unreachable + return false; + } +PUGI__NS_END + +// Allocator used for AST and evaluation stacks +PUGI__NS_BEGIN + static const size_t xpath_memory_page_size = + #ifdef PUGIXML_MEMORY_XPATH_PAGE_SIZE + PUGIXML_MEMORY_XPATH_PAGE_SIZE + #else + 4096 + #endif + ; + + static const uintptr_t xpath_memory_block_alignment = sizeof(double) > sizeof(void*) ? sizeof(double) : sizeof(void*); + + struct xpath_memory_block + { + xpath_memory_block* next; + size_t capacity; + + union + { + char data[xpath_memory_page_size]; + double alignment; + }; + }; + + struct xpath_allocator + { + xpath_memory_block* _root; + size_t _root_size; + bool* _error; + + xpath_allocator(xpath_memory_block* root, bool* error = 0): _root(root), _root_size(0), _error(error) + { + } + + void* allocate(size_t size) + { + // round size up to block alignment boundary + size = (size + xpath_memory_block_alignment - 1) & ~(xpath_memory_block_alignment - 1); + + if (_root_size + size <= _root->capacity) + { + void* buf = &_root->data[0] + _root_size; + _root_size += size; + return buf; + } + else + { + // make sure we have at least 1/4th of the page free after allocation to satisfy subsequent allocation requests + size_t block_capacity_base = sizeof(_root->data); + size_t block_capacity_req = size + block_capacity_base / 4; + size_t block_capacity = (block_capacity_base > block_capacity_req) ? block_capacity_base : block_capacity_req; + + size_t block_size = block_capacity + offsetof(xpath_memory_block, data); + + xpath_memory_block* block = static_cast(xml_memory::allocate(block_size)); + if (!block) + { + if (_error) *_error = true; + return 0; + } + + block->next = _root; + block->capacity = block_capacity; + + _root = block; + _root_size = size; + + return block->data; + } + } + + void* reallocate(void* ptr, size_t old_size, size_t new_size) + { + // round size up to block alignment boundary + old_size = (old_size + xpath_memory_block_alignment - 1) & ~(xpath_memory_block_alignment - 1); + new_size = (new_size + xpath_memory_block_alignment - 1) & ~(xpath_memory_block_alignment - 1); + + // we can only reallocate the last object + assert(ptr == 0 || static_cast(ptr) + old_size == &_root->data[0] + _root_size); + + // try to reallocate the object inplace + if (ptr && _root_size - old_size + new_size <= _root->capacity) + { + _root_size = _root_size - old_size + new_size; + return ptr; + } + + // allocate a new block + void* result = allocate(new_size); + if (!result) return 0; + + // we have a new block + if (ptr) + { + // copy old data (we only support growing) + assert(new_size >= old_size); + memcpy(result, ptr, old_size); + + // free the previous page if it had no other objects + assert(_root->data == result); + assert(_root->next); + + if (_root->next->data == ptr) + { + // deallocate the whole page, unless it was the first one + xpath_memory_block* next = _root->next->next; + + if (next) + { + xml_memory::deallocate(_root->next); + _root->next = next; + } + } + } + + return result; + } + + void revert(const xpath_allocator& state) + { + // free all new pages + xpath_memory_block* cur = _root; + + while (cur != state._root) + { + xpath_memory_block* next = cur->next; + + xml_memory::deallocate(cur); + + cur = next; + } + + // restore state + _root = state._root; + _root_size = state._root_size; + } + + void release() + { + xpath_memory_block* cur = _root; + assert(cur); + + while (cur->next) + { + xpath_memory_block* next = cur->next; + + xml_memory::deallocate(cur); + + cur = next; + } + } + }; + + struct xpath_allocator_capture + { + xpath_allocator_capture(xpath_allocator* alloc): _target(alloc), _state(*alloc) + { + } + + ~xpath_allocator_capture() + { + _target->revert(_state); + } + + xpath_allocator* _target; + xpath_allocator _state; + }; + + struct xpath_stack + { + xpath_allocator* result; + xpath_allocator* temp; + }; + + struct xpath_stack_data + { + xpath_memory_block blocks[2]; + xpath_allocator result; + xpath_allocator temp; + xpath_stack stack; + bool oom; + + xpath_stack_data(): result(blocks + 0, &oom), temp(blocks + 1, &oom), oom(false) + { + blocks[0].next = blocks[1].next = 0; + blocks[0].capacity = blocks[1].capacity = sizeof(blocks[0].data); + + stack.result = &result; + stack.temp = &temp; + } + + ~xpath_stack_data() + { + result.release(); + temp.release(); + } + }; +PUGI__NS_END + +// String class +PUGI__NS_BEGIN + class xpath_string + { + const char_t* _buffer; + bool _uses_heap; + size_t _length_heap; + + static char_t* duplicate_string(const char_t* string, size_t length, xpath_allocator* alloc) + { + char_t* result = static_cast(alloc->allocate((length + 1) * sizeof(char_t))); + if (!result) return 0; + + memcpy(result, string, length * sizeof(char_t)); + result[length] = 0; + + return result; + } + + xpath_string(const char_t* buffer, bool uses_heap_, size_t length_heap): _buffer(buffer), _uses_heap(uses_heap_), _length_heap(length_heap) + { + } + + public: + static xpath_string from_const(const char_t* str) + { + return xpath_string(str, false, 0); + } + + static xpath_string from_heap_preallocated(const char_t* begin, const char_t* end) + { + assert(begin <= end && *end == 0); + + return xpath_string(begin, true, static_cast(end - begin)); + } + + static xpath_string from_heap(const char_t* begin, const char_t* end, xpath_allocator* alloc) + { + assert(begin <= end); + + if (begin == end) + return xpath_string(); + + size_t length = static_cast(end - begin); + const char_t* data = duplicate_string(begin, length, alloc); + + return data ? xpath_string(data, true, length) : xpath_string(); + } + + xpath_string(): _buffer(PUGIXML_TEXT("")), _uses_heap(false), _length_heap(0) + { + } + + void append(const xpath_string& o, xpath_allocator* alloc) + { + // skip empty sources + if (!*o._buffer) return; + + // fast append for constant empty target and constant source + if (!*_buffer && !_uses_heap && !o._uses_heap) + { + _buffer = o._buffer; + } + else + { + // need to make heap copy + size_t target_length = length(); + size_t source_length = o.length(); + size_t result_length = target_length + source_length; + + // allocate new buffer + char_t* result = static_cast(alloc->reallocate(_uses_heap ? const_cast(_buffer) : 0, (target_length + 1) * sizeof(char_t), (result_length + 1) * sizeof(char_t))); + if (!result) return; + + // append first string to the new buffer in case there was no reallocation + if (!_uses_heap) memcpy(result, _buffer, target_length * sizeof(char_t)); + + // append second string to the new buffer + memcpy(result + target_length, o._buffer, source_length * sizeof(char_t)); + result[result_length] = 0; + + // finalize + _buffer = result; + _uses_heap = true; + _length_heap = result_length; + } + } + + const char_t* c_str() const + { + return _buffer; + } + + size_t length() const + { + return _uses_heap ? _length_heap : strlength(_buffer); + } + + char_t* data(xpath_allocator* alloc) + { + // make private heap copy + if (!_uses_heap) + { + size_t length_ = strlength(_buffer); + const char_t* data_ = duplicate_string(_buffer, length_, alloc); + + if (!data_) return 0; + + _buffer = data_; + _uses_heap = true; + _length_heap = length_; + } + + return const_cast(_buffer); + } + + bool empty() const + { + return *_buffer == 0; + } + + bool operator==(const xpath_string& o) const + { + return strequal(_buffer, o._buffer); + } + + bool operator!=(const xpath_string& o) const + { + return !strequal(_buffer, o._buffer); + } + + bool uses_heap() const + { + return _uses_heap; + } + }; +PUGI__NS_END + +PUGI__NS_BEGIN + PUGI__FN bool starts_with(const char_t* string, const char_t* pattern) + { + while (*pattern && *string == *pattern) + { + string++; + pattern++; + } + + return *pattern == 0; + } + + PUGI__FN const char_t* find_char(const char_t* s, char_t c) + { + #ifdef PUGIXML_WCHAR_MODE + return wcschr(s, c); + #else + return strchr(s, c); + #endif + } + + PUGI__FN const char_t* find_substring(const char_t* s, const char_t* p) + { + #ifdef PUGIXML_WCHAR_MODE + // MSVC6 wcsstr bug workaround (if s is empty it always returns 0) + return (*p == 0) ? s : wcsstr(s, p); + #else + return strstr(s, p); + #endif + } + + // Converts symbol to lower case, if it is an ASCII one + PUGI__FN char_t tolower_ascii(char_t ch) + { + return static_cast(ch - 'A') < 26 ? static_cast(ch | ' ') : ch; + } + + PUGI__FN xpath_string string_value(const xpath_node& na, xpath_allocator* alloc) + { + if (na.attribute()) + return xpath_string::from_const(na.attribute().value()); + else + { + xml_node n = na.node(); + + switch (n.type()) + { + case node_pcdata: + case node_cdata: + case node_comment: + case node_pi: + return xpath_string::from_const(n.value()); + + case node_document: + case node_element: + { + xpath_string result; + + // element nodes can have value if parse_embed_pcdata was used + if (n.value()[0]) + result.append(xpath_string::from_const(n.value()), alloc); + + xml_node cur = n.first_child(); + + while (cur && cur != n) + { + if (cur.type() == node_pcdata || cur.type() == node_cdata) + result.append(xpath_string::from_const(cur.value()), alloc); + + if (cur.first_child()) + cur = cur.first_child(); + else if (cur.next_sibling()) + cur = cur.next_sibling(); + else + { + while (!cur.next_sibling() && cur != n) + cur = cur.parent(); + + if (cur != n) cur = cur.next_sibling(); + } + } + + return result; + } + + default: + return xpath_string(); + } + } + } + + PUGI__FN bool node_is_before_sibling(xml_node_struct* ln, xml_node_struct* rn) + { + assert(ln->parent == rn->parent); + + // there is no common ancestor (the shared parent is null), nodes are from different documents + if (!ln->parent) return ln < rn; + + // determine sibling order + xml_node_struct* ls = ln; + xml_node_struct* rs = rn; + + while (ls && rs) + { + if (ls == rn) return true; + if (rs == ln) return false; + + ls = ls->next_sibling; + rs = rs->next_sibling; + } + + // if rn sibling chain ended ln must be before rn + return !rs; + } + + PUGI__FN bool node_is_before(xml_node_struct* ln, xml_node_struct* rn) + { + // find common ancestor at the same depth, if any + xml_node_struct* lp = ln; + xml_node_struct* rp = rn; + + while (lp && rp && lp->parent != rp->parent) + { + lp = lp->parent; + rp = rp->parent; + } + + // parents are the same! + if (lp && rp) return node_is_before_sibling(lp, rp); + + // nodes are at different depths, need to normalize heights + bool left_higher = !lp; + + while (lp) + { + lp = lp->parent; + ln = ln->parent; + } + + while (rp) + { + rp = rp->parent; + rn = rn->parent; + } + + // one node is the ancestor of the other + if (ln == rn) return left_higher; + + // find common ancestor... again + while (ln->parent != rn->parent) + { + ln = ln->parent; + rn = rn->parent; + } + + return node_is_before_sibling(ln, rn); + } + + PUGI__FN bool node_is_ancestor(xml_node_struct* parent, xml_node_struct* node) + { + while (node && node != parent) node = node->parent; + + return parent && node == parent; + } + + PUGI__FN const void* document_buffer_order(const xpath_node& xnode) + { + xml_node_struct* node = xnode.node().internal_object(); + + if (node) + { + if ((get_document(node).header & xml_memory_page_contents_shared_mask) == 0) + { + if (node->name && (node->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0) return node->name; + if (node->value && (node->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0) return node->value; + } + + return 0; + } + + xml_attribute_struct* attr = xnode.attribute().internal_object(); + + if (attr) + { + if ((get_document(attr).header & xml_memory_page_contents_shared_mask) == 0) + { + if ((attr->header & impl::xml_memory_page_name_allocated_or_shared_mask) == 0) return attr->name; + if ((attr->header & impl::xml_memory_page_value_allocated_or_shared_mask) == 0) return attr->value; + } + + return 0; + } + + return 0; + } + + struct document_order_comparator + { + bool operator()(const xpath_node& lhs, const xpath_node& rhs) const + { + // optimized document order based check + const void* lo = document_buffer_order(lhs); + const void* ro = document_buffer_order(rhs); + + if (lo && ro) return lo < ro; + + // slow comparison + xml_node ln = lhs.node(), rn = rhs.node(); + + // compare attributes + if (lhs.attribute() && rhs.attribute()) + { + // shared parent + if (lhs.parent() == rhs.parent()) + { + // determine sibling order + for (xml_attribute a = lhs.attribute(); a; a = a.next_attribute()) + if (a == rhs.attribute()) + return true; + + return false; + } + + // compare attribute parents + ln = lhs.parent(); + rn = rhs.parent(); + } + else if (lhs.attribute()) + { + // attributes go after the parent element + if (lhs.parent() == rhs.node()) return false; + + ln = lhs.parent(); + } + else if (rhs.attribute()) + { + // attributes go after the parent element + if (rhs.parent() == lhs.node()) return true; + + rn = rhs.parent(); + } + + if (ln == rn) return false; + + if (!ln || !rn) return ln < rn; + + return node_is_before(ln.internal_object(), rn.internal_object()); + } + }; + + PUGI__FN double gen_nan() + { + #if defined(__STDC_IEC_559__) || ((FLT_RADIX - 0 == 2) && (FLT_MAX_EXP - 0 == 128) && (FLT_MANT_DIG - 0 == 24)) + PUGI__STATIC_ASSERT(sizeof(float) == sizeof(uint32_t)); + typedef uint32_t UI; // BCC5 workaround + union { float f; UI i; } u; + u.i = 0x7fc00000; + return double(u.f); + #else + // fallback + const volatile double zero = 0.0; + return zero / zero; + #endif + } + + PUGI__FN bool is_nan(double value) + { + #if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) + return !!_isnan(value); + #elif defined(fpclassify) && defined(FP_NAN) + return fpclassify(value) == FP_NAN; + #else + // fallback + const volatile double v = value; + return v != v; + #endif + } + + PUGI__FN const char_t* convert_number_to_string_special(double value) + { + #if defined(PUGI__MSVC_CRT_VERSION) || defined(__BORLANDC__) + if (_finite(value)) return (value == 0) ? PUGIXML_TEXT("0") : 0; + if (_isnan(value)) return PUGIXML_TEXT("NaN"); + return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity"); + #elif defined(fpclassify) && defined(FP_NAN) && defined(FP_INFINITE) && defined(FP_ZERO) + switch (fpclassify(value)) + { + case FP_NAN: + return PUGIXML_TEXT("NaN"); + + case FP_INFINITE: + return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity"); + + case FP_ZERO: + return PUGIXML_TEXT("0"); + + default: + return 0; + } + #else + // fallback + const volatile double v = value; + + if (v == 0) return PUGIXML_TEXT("0"); + if (v != v) return PUGIXML_TEXT("NaN"); + if (v * 2 == v) return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity"); + return 0; + #endif + } + + PUGI__FN bool convert_number_to_boolean(double value) + { + return (value != 0 && !is_nan(value)); + } + + PUGI__FN void truncate_zeros(char* begin, char* end) + { + while (begin != end && end[-1] == '0') end--; + + *end = 0; + } + + // gets mantissa digits in the form of 0.xxxxx with 0. implied and the exponent +#if defined(PUGI__MSVC_CRT_VERSION) && PUGI__MSVC_CRT_VERSION >= 1400 + PUGI__FN void convert_number_to_mantissa_exponent(double value, char (&buffer)[32], char** out_mantissa, int* out_exponent) + { + // get base values + int sign, exponent; + _ecvt_s(buffer, sizeof(buffer), value, DBL_DIG + 1, &exponent, &sign); + + // truncate redundant zeros + truncate_zeros(buffer, buffer + strlen(buffer)); + + // fill results + *out_mantissa = buffer; + *out_exponent = exponent; + } +#else + PUGI__FN void convert_number_to_mantissa_exponent(double value, char (&buffer)[32], char** out_mantissa, int* out_exponent) + { + // get a scientific notation value with IEEE DBL_DIG decimals + PUGI__SNPRINTF(buffer, "%.*e", DBL_DIG, value); + + // get the exponent (possibly negative) + char* exponent_string = strchr(buffer, 'e'); + assert(exponent_string); + + int exponent = atoi(exponent_string + 1); + + // extract mantissa string: skip sign + char* mantissa = buffer[0] == '-' ? buffer + 1 : buffer; + assert(mantissa[0] != '0' && mantissa[1] == '.'); + + // divide mantissa by 10 to eliminate integer part + mantissa[1] = mantissa[0]; + mantissa++; + exponent++; + + // remove extra mantissa digits and zero-terminate mantissa + truncate_zeros(mantissa, exponent_string); + + // fill results + *out_mantissa = mantissa; + *out_exponent = exponent; + } +#endif + + PUGI__FN xpath_string convert_number_to_string(double value, xpath_allocator* alloc) + { + // try special number conversion + const char_t* special = convert_number_to_string_special(value); + if (special) return xpath_string::from_const(special); + + // get mantissa + exponent form + char mantissa_buffer[32]; + + char* mantissa; + int exponent; + convert_number_to_mantissa_exponent(value, mantissa_buffer, &mantissa, &exponent); + + // allocate a buffer of suitable length for the number + size_t result_size = strlen(mantissa_buffer) + (exponent > 0 ? exponent : -exponent) + 4; + char_t* result = static_cast(alloc->allocate(sizeof(char_t) * result_size)); + if (!result) return xpath_string(); + + // make the number! + char_t* s = result; + + // sign + if (value < 0) *s++ = '-'; + + // integer part + if (exponent <= 0) + { + *s++ = '0'; + } + else + { + while (exponent > 0) + { + assert(*mantissa == 0 || static_cast(*mantissa - '0') <= 9); + *s++ = *mantissa ? *mantissa++ : '0'; + exponent--; + } + } + + // fractional part + if (*mantissa) + { + // decimal point + *s++ = '.'; + + // extra zeroes from negative exponent + while (exponent < 0) + { + *s++ = '0'; + exponent++; + } + + // extra mantissa digits + while (*mantissa) + { + assert(static_cast(*mantissa - '0') <= 9); + *s++ = *mantissa++; + } + } + + // zero-terminate + assert(s < result + result_size); + *s = 0; + + return xpath_string::from_heap_preallocated(result, s); + } + + PUGI__FN bool check_string_to_number_format(const char_t* string) + { + // parse leading whitespace + while (PUGI__IS_CHARTYPE(*string, ct_space)) ++string; + + // parse sign + if (*string == '-') ++string; + + if (!*string) return false; + + // if there is no integer part, there should be a decimal part with at least one digit + if (!PUGI__IS_CHARTYPEX(string[0], ctx_digit) && (string[0] != '.' || !PUGI__IS_CHARTYPEX(string[1], ctx_digit))) return false; + + // parse integer part + while (PUGI__IS_CHARTYPEX(*string, ctx_digit)) ++string; + + // parse decimal part + if (*string == '.') + { + ++string; + + while (PUGI__IS_CHARTYPEX(*string, ctx_digit)) ++string; + } + + // parse trailing whitespace + while (PUGI__IS_CHARTYPE(*string, ct_space)) ++string; + + return *string == 0; + } + + PUGI__FN double convert_string_to_number(const char_t* string) + { + // check string format + if (!check_string_to_number_format(string)) return gen_nan(); + + // parse string + #ifdef PUGIXML_WCHAR_MODE + return wcstod(string, 0); + #else + return strtod(string, 0); + #endif + } + + PUGI__FN bool convert_string_to_number_scratch(char_t (&buffer)[32], const char_t* begin, const char_t* end, double* out_result) + { + size_t length = static_cast(end - begin); + char_t* scratch = buffer; + + if (length >= sizeof(buffer) / sizeof(buffer[0])) + { + // need to make dummy on-heap copy + scratch = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!scratch) return false; + } + + // copy string to zero-terminated buffer and perform conversion + memcpy(scratch, begin, length * sizeof(char_t)); + scratch[length] = 0; + + *out_result = convert_string_to_number(scratch); + + // free dummy buffer + if (scratch != buffer) xml_memory::deallocate(scratch); + + return true; + } + + PUGI__FN double round_nearest(double value) + { + return floor(value + 0.5); + } + + PUGI__FN double round_nearest_nzero(double value) + { + // same as round_nearest, but returns -0 for [-0.5, -0] + // ceil is used to differentiate between +0 and -0 (we return -0 for [-0.5, -0] and +0 for +0) + return (value >= -0.5 && value <= 0) ? ceil(value) : floor(value + 0.5); + } + + PUGI__FN const char_t* qualified_name(const xpath_node& node) + { + return node.attribute() ? node.attribute().name() : node.node().name(); + } + + PUGI__FN const char_t* local_name(const xpath_node& node) + { + const char_t* name = qualified_name(node); + const char_t* p = find_char(name, ':'); + + return p ? p + 1 : name; + } + + struct namespace_uri_predicate + { + const char_t* prefix; + size_t prefix_length; + + namespace_uri_predicate(const char_t* name) + { + const char_t* pos = find_char(name, ':'); + + prefix = pos ? name : 0; + prefix_length = pos ? static_cast(pos - name) : 0; + } + + bool operator()(xml_attribute a) const + { + const char_t* name = a.name(); + + if (!starts_with(name, PUGIXML_TEXT("xmlns"))) return false; + + return prefix ? name[5] == ':' && strequalrange(name + 6, prefix, prefix_length) : name[5] == 0; + } + }; + + PUGI__FN const char_t* namespace_uri(xml_node node) + { + namespace_uri_predicate pred = node.name(); + + xml_node p = node; + + while (p) + { + xml_attribute a = p.find_attribute(pred); + + if (a) return a.value(); + + p = p.parent(); + } + + return PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* namespace_uri(xml_attribute attr, xml_node parent) + { + namespace_uri_predicate pred = attr.name(); + + // Default namespace does not apply to attributes + if (!pred.prefix) return PUGIXML_TEXT(""); + + xml_node p = parent; + + while (p) + { + xml_attribute a = p.find_attribute(pred); + + if (a) return a.value(); + + p = p.parent(); + } + + return PUGIXML_TEXT(""); + } + + PUGI__FN const char_t* namespace_uri(const xpath_node& node) + { + return node.attribute() ? namespace_uri(node.attribute(), node.parent()) : namespace_uri(node.node()); + } + + PUGI__FN char_t* normalize_space(char_t* buffer) + { + char_t* write = buffer; + + for (char_t* it = buffer; *it; ) + { + char_t ch = *it++; + + if (PUGI__IS_CHARTYPE(ch, ct_space)) + { + // replace whitespace sequence with single space + while (PUGI__IS_CHARTYPE(*it, ct_space)) it++; + + // avoid leading spaces + if (write != buffer) *write++ = ' '; + } + else *write++ = ch; + } + + // remove trailing space + if (write != buffer && PUGI__IS_CHARTYPE(write[-1], ct_space)) write--; + + // zero-terminate + *write = 0; + + return write; + } + + PUGI__FN char_t* translate(char_t* buffer, const char_t* from, const char_t* to, size_t to_length) + { + char_t* write = buffer; + + while (*buffer) + { + PUGI__DMC_VOLATILE char_t ch = *buffer++; + + const char_t* pos = find_char(from, ch); + + if (!pos) + *write++ = ch; // do not process + else if (static_cast(pos - from) < to_length) + *write++ = to[pos - from]; // replace + } + + // zero-terminate + *write = 0; + + return write; + } + + PUGI__FN unsigned char* translate_table_generate(xpath_allocator* alloc, const char_t* from, const char_t* to) + { + unsigned char table[128] = {0}; + + while (*from) + { + unsigned int fc = static_cast(*from); + unsigned int tc = static_cast(*to); + + if (fc >= 128 || tc >= 128) + return 0; + + // code=128 means "skip character" + if (!table[fc]) + table[fc] = static_cast(tc ? tc : 128); + + from++; + if (tc) to++; + } + + for (int i = 0; i < 128; ++i) + if (!table[i]) + table[i] = static_cast(i); + + void* result = alloc->allocate(sizeof(table)); + if (!result) return 0; + + memcpy(result, table, sizeof(table)); + + return static_cast(result); + } + + PUGI__FN char_t* translate_table(char_t* buffer, const unsigned char* table) + { + char_t* write = buffer; + + while (*buffer) + { + char_t ch = *buffer++; + unsigned int index = static_cast(ch); + + if (index < 128) + { + unsigned char code = table[index]; + + // code=128 means "skip character" (table size is 128 so 128 can be a special value) + // this code skips these characters without extra branches + *write = static_cast(code); + write += 1 - (code >> 7); + } + else + { + *write++ = ch; + } + } + + // zero-terminate + *write = 0; + + return write; + } + + inline bool is_xpath_attribute(const char_t* name) + { + return !(starts_with(name, PUGIXML_TEXT("xmlns")) && (name[5] == 0 || name[5] == ':')); + } + + struct xpath_variable_boolean: xpath_variable + { + xpath_variable_boolean(): xpath_variable(xpath_type_boolean), value(false) + { + } + + bool value; + char_t name[1]; + }; + + struct xpath_variable_number: xpath_variable + { + xpath_variable_number(): xpath_variable(xpath_type_number), value(0) + { + } + + double value; + char_t name[1]; + }; + + struct xpath_variable_string: xpath_variable + { + xpath_variable_string(): xpath_variable(xpath_type_string), value(0) + { + } + + ~xpath_variable_string() + { + if (value) xml_memory::deallocate(value); + } + + char_t* value; + char_t name[1]; + }; + + struct xpath_variable_node_set: xpath_variable + { + xpath_variable_node_set(): xpath_variable(xpath_type_node_set) + { + } + + xpath_node_set value; + char_t name[1]; + }; + + static const xpath_node_set dummy_node_set; + + PUGI__FN PUGI__UNSIGNED_OVERFLOW unsigned int hash_string(const char_t* str) + { + // Jenkins one-at-a-time hash (http://en.wikipedia.org/wiki/Jenkins_hash_function#one-at-a-time) + unsigned int result = 0; + + while (*str) + { + result += static_cast(*str++); + result += result << 10; + result ^= result >> 6; + } + + result += result << 3; + result ^= result >> 11; + result += result << 15; + + return result; + } + + template PUGI__FN T* new_xpath_variable(const char_t* name) + { + size_t length = strlength(name); + if (length == 0) return 0; // empty variable names are invalid + + // $$ we can't use offsetof(T, name) because T is non-POD, so we just allocate additional length characters + void* memory = xml_memory::allocate(sizeof(T) + length * sizeof(char_t)); + if (!memory) return 0; + + T* result = new (memory) T(); + + memcpy(result->name, name, (length + 1) * sizeof(char_t)); + + return result; + } + + PUGI__FN xpath_variable* new_xpath_variable(xpath_value_type type, const char_t* name) + { + switch (type) + { + case xpath_type_node_set: + return new_xpath_variable(name); + + case xpath_type_number: + return new_xpath_variable(name); + + case xpath_type_string: + return new_xpath_variable(name); + + case xpath_type_boolean: + return new_xpath_variable(name); + + default: + return 0; + } + } + + template PUGI__FN void delete_xpath_variable(T* var) + { + var->~T(); + xml_memory::deallocate(var); + } + + PUGI__FN void delete_xpath_variable(xpath_value_type type, xpath_variable* var) + { + switch (type) + { + case xpath_type_node_set: + delete_xpath_variable(static_cast(var)); + break; + + case xpath_type_number: + delete_xpath_variable(static_cast(var)); + break; + + case xpath_type_string: + delete_xpath_variable(static_cast(var)); + break; + + case xpath_type_boolean: + delete_xpath_variable(static_cast(var)); + break; + + default: + assert(false && "Invalid variable type"); // unreachable + } + } + + PUGI__FN bool copy_xpath_variable(xpath_variable* lhs, const xpath_variable* rhs) + { + switch (rhs->type()) + { + case xpath_type_node_set: + return lhs->set(static_cast(rhs)->value); + + case xpath_type_number: + return lhs->set(static_cast(rhs)->value); + + case xpath_type_string: + return lhs->set(static_cast(rhs)->value); + + case xpath_type_boolean: + return lhs->set(static_cast(rhs)->value); + + default: + assert(false && "Invalid variable type"); // unreachable + return false; + } + } + + PUGI__FN bool get_variable_scratch(char_t (&buffer)[32], xpath_variable_set* set, const char_t* begin, const char_t* end, xpath_variable** out_result) + { + size_t length = static_cast(end - begin); + char_t* scratch = buffer; + + if (length >= sizeof(buffer) / sizeof(buffer[0])) + { + // need to make dummy on-heap copy + scratch = static_cast(xml_memory::allocate((length + 1) * sizeof(char_t))); + if (!scratch) return false; + } + + // copy string to zero-terminated buffer and perform lookup + memcpy(scratch, begin, length * sizeof(char_t)); + scratch[length] = 0; + + *out_result = set->get(scratch); + + // free dummy buffer + if (scratch != buffer) xml_memory::deallocate(scratch); + + return true; + } +PUGI__NS_END + +// Internal node set class +PUGI__NS_BEGIN + PUGI__FN xpath_node_set::type_t xpath_get_order(const xpath_node* begin, const xpath_node* end) + { + if (end - begin < 2) + return xpath_node_set::type_sorted; + + document_order_comparator cmp; + + bool first = cmp(begin[0], begin[1]); + + for (const xpath_node* it = begin + 1; it + 1 < end; ++it) + if (cmp(it[0], it[1]) != first) + return xpath_node_set::type_unsorted; + + return first ? xpath_node_set::type_sorted : xpath_node_set::type_sorted_reverse; + } + + PUGI__FN xpath_node_set::type_t xpath_sort(xpath_node* begin, xpath_node* end, xpath_node_set::type_t type, bool rev) + { + xpath_node_set::type_t order = rev ? xpath_node_set::type_sorted_reverse : xpath_node_set::type_sorted; + + if (type == xpath_node_set::type_unsorted) + { + xpath_node_set::type_t sorted = xpath_get_order(begin, end); + + if (sorted == xpath_node_set::type_unsorted) + { + sort(begin, end, document_order_comparator()); + + type = xpath_node_set::type_sorted; + } + else + type = sorted; + } + + if (type != order) reverse(begin, end); + + return order; + } + + PUGI__FN xpath_node xpath_first(const xpath_node* begin, const xpath_node* end, xpath_node_set::type_t type) + { + if (begin == end) return xpath_node(); + + switch (type) + { + case xpath_node_set::type_sorted: + return *begin; + + case xpath_node_set::type_sorted_reverse: + return *(end - 1); + + case xpath_node_set::type_unsorted: + return *min_element(begin, end, document_order_comparator()); + + default: + assert(false && "Invalid node set type"); // unreachable + return xpath_node(); + } + } + + class xpath_node_set_raw + { + xpath_node_set::type_t _type; + + xpath_node* _begin; + xpath_node* _end; + xpath_node* _eos; + + public: + xpath_node_set_raw(): _type(xpath_node_set::type_unsorted), _begin(0), _end(0), _eos(0) + { + } + + xpath_node* begin() const + { + return _begin; + } + + xpath_node* end() const + { + return _end; + } + + bool empty() const + { + return _begin == _end; + } + + size_t size() const + { + return static_cast(_end - _begin); + } + + xpath_node first() const + { + return xpath_first(_begin, _end, _type); + } + + void push_back_grow(const xpath_node& node, xpath_allocator* alloc); + + void push_back(const xpath_node& node, xpath_allocator* alloc) + { + if (_end != _eos) + *_end++ = node; + else + push_back_grow(node, alloc); + } + + void append(const xpath_node* begin_, const xpath_node* end_, xpath_allocator* alloc) + { + if (begin_ == end_) return; + + size_t size_ = static_cast(_end - _begin); + size_t capacity = static_cast(_eos - _begin); + size_t count = static_cast(end_ - begin_); + + if (size_ + count > capacity) + { + // reallocate the old array or allocate a new one + xpath_node* data = static_cast(alloc->reallocate(_begin, capacity * sizeof(xpath_node), (size_ + count) * sizeof(xpath_node))); + if (!data) return; + + // finalize + _begin = data; + _end = data + size_; + _eos = data + size_ + count; + } + + memcpy(_end, begin_, count * sizeof(xpath_node)); + _end += count; + } + + void sort_do() + { + _type = xpath_sort(_begin, _end, _type, false); + } + + void truncate(xpath_node* pos) + { + assert(_begin <= pos && pos <= _end); + + _end = pos; + } + + void remove_duplicates(xpath_allocator* alloc) + { + if (_type == xpath_node_set::type_unsorted && _end - _begin > 2) + { + xpath_allocator_capture cr(alloc); + + size_t size_ = static_cast(_end - _begin); + + size_t hash_size = 1; + while (hash_size < size_ + size_ / 2) hash_size *= 2; + + const void** hash_data = static_cast(alloc->allocate(hash_size * sizeof(void**))); + if (!hash_data) return; + + memset(hash_data, 0, hash_size * sizeof(const void**)); + + xpath_node* write = _begin; + + for (xpath_node* it = _begin; it != _end; ++it) + { + const void* attr = it->attribute().internal_object(); + const void* node = it->node().internal_object(); + const void* key = attr ? attr : node; + + if (key && hash_insert(hash_data, hash_size, key)) + { + *write++ = *it; + } + } + + _end = write; + } + else + { + _end = unique(_begin, _end); + } + } + + xpath_node_set::type_t type() const + { + return _type; + } + + void set_type(xpath_node_set::type_t value) + { + _type = value; + } + }; + + PUGI__FN_NO_INLINE void xpath_node_set_raw::push_back_grow(const xpath_node& node, xpath_allocator* alloc) + { + size_t capacity = static_cast(_eos - _begin); + + // get new capacity (1.5x rule) + size_t new_capacity = capacity + capacity / 2 + 1; + + // reallocate the old array or allocate a new one + xpath_node* data = static_cast(alloc->reallocate(_begin, capacity * sizeof(xpath_node), new_capacity * sizeof(xpath_node))); + if (!data) return; + + // finalize + _begin = data; + _end = data + capacity; + _eos = data + new_capacity; + + // push + *_end++ = node; + } +PUGI__NS_END + +PUGI__NS_BEGIN + struct xpath_context + { + xpath_node n; + size_t position, size; + + xpath_context(const xpath_node& n_, size_t position_, size_t size_): n(n_), position(position_), size(size_) + { + } + }; + + enum lexeme_t + { + lex_none = 0, + lex_equal, + lex_not_equal, + lex_less, + lex_greater, + lex_less_or_equal, + lex_greater_or_equal, + lex_plus, + lex_minus, + lex_multiply, + lex_union, + lex_var_ref, + lex_open_brace, + lex_close_brace, + lex_quoted_string, + lex_number, + lex_slash, + lex_double_slash, + lex_open_square_brace, + lex_close_square_brace, + lex_string, + lex_comma, + lex_axis_attribute, + lex_dot, + lex_double_dot, + lex_double_colon, + lex_eof + }; + + struct xpath_lexer_string + { + const char_t* begin; + const char_t* end; + + xpath_lexer_string(): begin(0), end(0) + { + } + + bool operator==(const char_t* other) const + { + size_t length = static_cast(end - begin); + + return strequalrange(other, begin, length); + } + }; + + class xpath_lexer + { + const char_t* _cur; + const char_t* _cur_lexeme_pos; + xpath_lexer_string _cur_lexeme_contents; + + lexeme_t _cur_lexeme; + + public: + explicit xpath_lexer(const char_t* query): _cur(query) + { + next(); + } + + const char_t* state() const + { + return _cur; + } + + void next() + { + const char_t* cur = _cur; + + while (PUGI__IS_CHARTYPE(*cur, ct_space)) ++cur; + + // save lexeme position for error reporting + _cur_lexeme_pos = cur; + + switch (*cur) + { + case 0: + _cur_lexeme = lex_eof; + break; + + case '>': + if (*(cur+1) == '=') + { + cur += 2; + _cur_lexeme = lex_greater_or_equal; + } + else + { + cur += 1; + _cur_lexeme = lex_greater; + } + break; + + case '<': + if (*(cur+1) == '=') + { + cur += 2; + _cur_lexeme = lex_less_or_equal; + } + else + { + cur += 1; + _cur_lexeme = lex_less; + } + break; + + case '!': + if (*(cur+1) == '=') + { + cur += 2; + _cur_lexeme = lex_not_equal; + } + else + { + _cur_lexeme = lex_none; + } + break; + + case '=': + cur += 1; + _cur_lexeme = lex_equal; + + break; + + case '+': + cur += 1; + _cur_lexeme = lex_plus; + + break; + + case '-': + cur += 1; + _cur_lexeme = lex_minus; + + break; + + case '*': + cur += 1; + _cur_lexeme = lex_multiply; + + break; + + case '|': + cur += 1; + _cur_lexeme = lex_union; + + break; + + case '$': + cur += 1; + + if (PUGI__IS_CHARTYPEX(*cur, ctx_start_symbol)) + { + _cur_lexeme_contents.begin = cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + + if (cur[0] == ':' && PUGI__IS_CHARTYPEX(cur[1], ctx_symbol)) // qname + { + cur++; // : + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + } + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_var_ref; + } + else + { + _cur_lexeme = lex_none; + } + + break; + + case '(': + cur += 1; + _cur_lexeme = lex_open_brace; + + break; + + case ')': + cur += 1; + _cur_lexeme = lex_close_brace; + + break; + + case '[': + cur += 1; + _cur_lexeme = lex_open_square_brace; + + break; + + case ']': + cur += 1; + _cur_lexeme = lex_close_square_brace; + + break; + + case ',': + cur += 1; + _cur_lexeme = lex_comma; + + break; + + case '/': + if (*(cur+1) == '/') + { + cur += 2; + _cur_lexeme = lex_double_slash; + } + else + { + cur += 1; + _cur_lexeme = lex_slash; + } + break; + + case '.': + if (*(cur+1) == '.') + { + cur += 2; + _cur_lexeme = lex_double_dot; + } + else if (PUGI__IS_CHARTYPEX(*(cur+1), ctx_digit)) + { + _cur_lexeme_contents.begin = cur; // . + + ++cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) cur++; + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_number; + } + else + { + cur += 1; + _cur_lexeme = lex_dot; + } + break; + + case '@': + cur += 1; + _cur_lexeme = lex_axis_attribute; + + break; + + case '"': + case '\'': + { + char_t terminator = *cur; + + ++cur; + + _cur_lexeme_contents.begin = cur; + while (*cur && *cur != terminator) cur++; + _cur_lexeme_contents.end = cur; + + if (!*cur) + _cur_lexeme = lex_none; + else + { + cur += 1; + _cur_lexeme = lex_quoted_string; + } + + break; + } + + case ':': + if (*(cur+1) == ':') + { + cur += 2; + _cur_lexeme = lex_double_colon; + } + else + { + _cur_lexeme = lex_none; + } + break; + + default: + if (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) + { + _cur_lexeme_contents.begin = cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) cur++; + + if (*cur == '.') + { + cur++; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_digit)) cur++; + } + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_number; + } + else if (PUGI__IS_CHARTYPEX(*cur, ctx_start_symbol)) + { + _cur_lexeme_contents.begin = cur; + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + + if (cur[0] == ':') + { + if (cur[1] == '*') // namespace test ncname:* + { + cur += 2; // :* + } + else if (PUGI__IS_CHARTYPEX(cur[1], ctx_symbol)) // namespace test qname + { + cur++; // : + + while (PUGI__IS_CHARTYPEX(*cur, ctx_symbol)) cur++; + } + } + + _cur_lexeme_contents.end = cur; + + _cur_lexeme = lex_string; + } + else + { + _cur_lexeme = lex_none; + } + } + + _cur = cur; + } + + lexeme_t current() const + { + return _cur_lexeme; + } + + const char_t* current_pos() const + { + return _cur_lexeme_pos; + } + + const xpath_lexer_string& contents() const + { + assert(_cur_lexeme == lex_var_ref || _cur_lexeme == lex_number || _cur_lexeme == lex_string || _cur_lexeme == lex_quoted_string); + + return _cur_lexeme_contents; + } + }; + + enum ast_type_t + { + ast_unknown, + ast_op_or, // left or right + ast_op_and, // left and right + ast_op_equal, // left = right + ast_op_not_equal, // left != right + ast_op_less, // left < right + ast_op_greater, // left > right + ast_op_less_or_equal, // left <= right + ast_op_greater_or_equal, // left >= right + ast_op_add, // left + right + ast_op_subtract, // left - right + ast_op_multiply, // left * right + ast_op_divide, // left / right + ast_op_mod, // left % right + ast_op_negate, // left - right + ast_op_union, // left | right + ast_predicate, // apply predicate to set; next points to next predicate + ast_filter, // select * from left where right + ast_string_constant, // string constant + ast_number_constant, // number constant + ast_variable, // variable + ast_func_last, // last() + ast_func_position, // position() + ast_func_count, // count(left) + ast_func_id, // id(left) + ast_func_local_name_0, // local-name() + ast_func_local_name_1, // local-name(left) + ast_func_namespace_uri_0, // namespace-uri() + ast_func_namespace_uri_1, // namespace-uri(left) + ast_func_name_0, // name() + ast_func_name_1, // name(left) + ast_func_string_0, // string() + ast_func_string_1, // string(left) + ast_func_concat, // concat(left, right, siblings) + ast_func_starts_with, // starts_with(left, right) + ast_func_contains, // contains(left, right) + ast_func_substring_before, // substring-before(left, right) + ast_func_substring_after, // substring-after(left, right) + ast_func_substring_2, // substring(left, right) + ast_func_substring_3, // substring(left, right, third) + ast_func_string_length_0, // string-length() + ast_func_string_length_1, // string-length(left) + ast_func_normalize_space_0, // normalize-space() + ast_func_normalize_space_1, // normalize-space(left) + ast_func_translate, // translate(left, right, third) + ast_func_boolean, // boolean(left) + ast_func_not, // not(left) + ast_func_true, // true() + ast_func_false, // false() + ast_func_lang, // lang(left) + ast_func_number_0, // number() + ast_func_number_1, // number(left) + ast_func_sum, // sum(left) + ast_func_floor, // floor(left) + ast_func_ceiling, // ceiling(left) + ast_func_round, // round(left) + ast_step, // process set left with step + ast_step_root, // select root node + + ast_opt_translate_table, // translate(left, right, third) where right/third are constants + ast_opt_compare_attribute // @name = 'string' + }; + + enum axis_t + { + axis_ancestor, + axis_ancestor_or_self, + axis_attribute, + axis_child, + axis_descendant, + axis_descendant_or_self, + axis_following, + axis_following_sibling, + axis_namespace, + axis_parent, + axis_preceding, + axis_preceding_sibling, + axis_self + }; + + enum nodetest_t + { + nodetest_none, + nodetest_name, + nodetest_type_node, + nodetest_type_comment, + nodetest_type_pi, + nodetest_type_text, + nodetest_pi, + nodetest_all, + nodetest_all_in_namespace + }; + + enum predicate_t + { + predicate_default, + predicate_posinv, + predicate_constant, + predicate_constant_one + }; + + enum nodeset_eval_t + { + nodeset_eval_all, + nodeset_eval_any, + nodeset_eval_first + }; + + template struct axis_to_type + { + static const axis_t axis; + }; + + template const axis_t axis_to_type::axis = N; + + class xpath_ast_node + { + private: + // node type + char _type; + char _rettype; + + // for ast_step + char _axis; + + // for ast_step/ast_predicate/ast_filter + char _test; + + // tree node structure + xpath_ast_node* _left; + xpath_ast_node* _right; + xpath_ast_node* _next; + + union + { + // value for ast_string_constant + const char_t* string; + // value for ast_number_constant + double number; + // variable for ast_variable + xpath_variable* variable; + // node test for ast_step (node name/namespace/node type/pi target) + const char_t* nodetest; + // table for ast_opt_translate_table + const unsigned char* table; + } _data; + + xpath_ast_node(const xpath_ast_node&); + xpath_ast_node& operator=(const xpath_ast_node&); + + template static bool compare_eq(xpath_ast_node* lhs, xpath_ast_node* rhs, const xpath_context& c, const xpath_stack& stack, const Comp& comp) + { + xpath_value_type lt = lhs->rettype(), rt = rhs->rettype(); + + if (lt != xpath_type_node_set && rt != xpath_type_node_set) + { + if (lt == xpath_type_boolean || rt == xpath_type_boolean) + return comp(lhs->eval_boolean(c, stack), rhs->eval_boolean(c, stack)); + else if (lt == xpath_type_number || rt == xpath_type_number) + return comp(lhs->eval_number(c, stack), rhs->eval_number(c, stack)); + else if (lt == xpath_type_string || rt == xpath_type_string) + { + xpath_allocator_capture cr(stack.result); + + xpath_string ls = lhs->eval_string(c, stack); + xpath_string rs = rhs->eval_string(c, stack); + + return comp(ls, rs); + } + } + else if (lt == xpath_type_node_set && rt == xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ls = lhs->eval_node_set(c, stack, nodeset_eval_all); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* li = ls.begin(); li != ls.end(); ++li) + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(string_value(*li, stack.result), string_value(*ri, stack.result))) + return true; + } + + return false; + } + else + { + if (lt == xpath_type_node_set) + { + swap(lhs, rhs); + swap(lt, rt); + } + + if (lt == xpath_type_boolean) + return comp(lhs->eval_boolean(c, stack), rhs->eval_boolean(c, stack)); + else if (lt == xpath_type_number) + { + xpath_allocator_capture cr(stack.result); + + double l = lhs->eval_number(c, stack); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(l, convert_string_to_number(string_value(*ri, stack.result).c_str()))) + return true; + } + + return false; + } + else if (lt == xpath_type_string) + { + xpath_allocator_capture cr(stack.result); + + xpath_string l = lhs->eval_string(c, stack); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(l, string_value(*ri, stack.result))) + return true; + } + + return false; + } + } + + assert(false && "Wrong types"); // unreachable + return false; + } + + static bool eval_once(xpath_node_set::type_t type, nodeset_eval_t eval) + { + return type == xpath_node_set::type_sorted ? eval != nodeset_eval_all : eval == nodeset_eval_any; + } + + template static bool compare_rel(xpath_ast_node* lhs, xpath_ast_node* rhs, const xpath_context& c, const xpath_stack& stack, const Comp& comp) + { + xpath_value_type lt = lhs->rettype(), rt = rhs->rettype(); + + if (lt != xpath_type_node_set && rt != xpath_type_node_set) + return comp(lhs->eval_number(c, stack), rhs->eval_number(c, stack)); + else if (lt == xpath_type_node_set && rt == xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ls = lhs->eval_node_set(c, stack, nodeset_eval_all); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* li = ls.begin(); li != ls.end(); ++li) + { + xpath_allocator_capture cri(stack.result); + + double l = convert_string_to_number(string_value(*li, stack.result).c_str()); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture crii(stack.result); + + if (comp(l, convert_string_to_number(string_value(*ri, stack.result).c_str()))) + return true; + } + } + + return false; + } + else if (lt != xpath_type_node_set && rt == xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + double l = lhs->eval_number(c, stack); + xpath_node_set_raw rs = rhs->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* ri = rs.begin(); ri != rs.end(); ++ri) + { + xpath_allocator_capture cri(stack.result); + + if (comp(l, convert_string_to_number(string_value(*ri, stack.result).c_str()))) + return true; + } + + return false; + } + else if (lt == xpath_type_node_set && rt != xpath_type_node_set) + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ls = lhs->eval_node_set(c, stack, nodeset_eval_all); + double r = rhs->eval_number(c, stack); + + for (const xpath_node* li = ls.begin(); li != ls.end(); ++li) + { + xpath_allocator_capture cri(stack.result); + + if (comp(convert_string_to_number(string_value(*li, stack.result).c_str()), r)) + return true; + } + + return false; + } + else + { + assert(false && "Wrong types"); // unreachable + return false; + } + } + + static void apply_predicate_boolean(xpath_node_set_raw& ns, size_t first, xpath_ast_node* expr, const xpath_stack& stack, bool once) + { + assert(ns.size() >= first); + assert(expr->rettype() != xpath_type_number); + + size_t i = 1; + size_t size = ns.size() - first; + + xpath_node* last = ns.begin() + first; + + // remove_if... or well, sort of + for (xpath_node* it = last; it != ns.end(); ++it, ++i) + { + xpath_context c(*it, i, size); + + if (expr->eval_boolean(c, stack)) + { + *last++ = *it; + + if (once) break; + } + } + + ns.truncate(last); + } + + static void apply_predicate_number(xpath_node_set_raw& ns, size_t first, xpath_ast_node* expr, const xpath_stack& stack, bool once) + { + assert(ns.size() >= first); + assert(expr->rettype() == xpath_type_number); + + size_t i = 1; + size_t size = ns.size() - first; + + xpath_node* last = ns.begin() + first; + + // remove_if... or well, sort of + for (xpath_node* it = last; it != ns.end(); ++it, ++i) + { + xpath_context c(*it, i, size); + + if (expr->eval_number(c, stack) == static_cast(i)) + { + *last++ = *it; + + if (once) break; + } + } + + ns.truncate(last); + } + + static void apply_predicate_number_const(xpath_node_set_raw& ns, size_t first, xpath_ast_node* expr, const xpath_stack& stack) + { + assert(ns.size() >= first); + assert(expr->rettype() == xpath_type_number); + + size_t size = ns.size() - first; + + xpath_node* last = ns.begin() + first; + + xpath_context c(xpath_node(), 1, size); + + double er = expr->eval_number(c, stack); + + if (er >= 1.0 && er <= static_cast(size)) + { + size_t eri = static_cast(er); + + if (er == static_cast(eri)) + { + xpath_node r = last[eri - 1]; + + *last++ = r; + } + } + + ns.truncate(last); + } + + void apply_predicate(xpath_node_set_raw& ns, size_t first, const xpath_stack& stack, bool once) + { + if (ns.size() == first) return; + + assert(_type == ast_filter || _type == ast_predicate); + + if (_test == predicate_constant || _test == predicate_constant_one) + apply_predicate_number_const(ns, first, _right, stack); + else if (_right->rettype() == xpath_type_number) + apply_predicate_number(ns, first, _right, stack, once); + else + apply_predicate_boolean(ns, first, _right, stack, once); + } + + void apply_predicates(xpath_node_set_raw& ns, size_t first, const xpath_stack& stack, nodeset_eval_t eval) + { + if (ns.size() == first) return; + + bool last_once = eval_once(ns.type(), eval); + + for (xpath_ast_node* pred = _right; pred; pred = pred->_next) + pred->apply_predicate(ns, first, stack, !pred->_next && last_once); + } + + bool step_push(xpath_node_set_raw& ns, xml_attribute_struct* a, xml_node_struct* parent, xpath_allocator* alloc) + { + assert(a); + + const char_t* name = a->name ? a->name + 0 : PUGIXML_TEXT(""); + + switch (_test) + { + case nodetest_name: + if (strequal(name, _data.nodetest) && is_xpath_attribute(name)) + { + ns.push_back(xpath_node(xml_attribute(a), xml_node(parent)), alloc); + return true; + } + break; + + case nodetest_type_node: + case nodetest_all: + if (is_xpath_attribute(name)) + { + ns.push_back(xpath_node(xml_attribute(a), xml_node(parent)), alloc); + return true; + } + break; + + case nodetest_all_in_namespace: + if (starts_with(name, _data.nodetest) && is_xpath_attribute(name)) + { + ns.push_back(xpath_node(xml_attribute(a), xml_node(parent)), alloc); + return true; + } + break; + + default: + ; + } + + return false; + } + + bool step_push(xpath_node_set_raw& ns, xml_node_struct* n, xpath_allocator* alloc) + { + assert(n); + + xml_node_type type = PUGI__NODETYPE(n); + + switch (_test) + { + case nodetest_name: + if (type == node_element && n->name && strequal(n->name, _data.nodetest)) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_type_node: + ns.push_back(xml_node(n), alloc); + return true; + + case nodetest_type_comment: + if (type == node_comment) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_type_text: + if (type == node_pcdata || type == node_cdata) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_type_pi: + if (type == node_pi) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_pi: + if (type == node_pi && n->name && strequal(n->name, _data.nodetest)) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_all: + if (type == node_element) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + case nodetest_all_in_namespace: + if (type == node_element && n->name && starts_with(n->name, _data.nodetest)) + { + ns.push_back(xml_node(n), alloc); + return true; + } + break; + + default: + assert(false && "Unknown axis"); // unreachable + } + + return false; + } + + template void step_fill(xpath_node_set_raw& ns, xml_node_struct* n, xpath_allocator* alloc, bool once, T) + { + const axis_t axis = T::axis; + + switch (axis) + { + case axis_attribute: + { + for (xml_attribute_struct* a = n->first_attribute; a; a = a->next_attribute) + if (step_push(ns, a, n, alloc) & once) + return; + + break; + } + + case axis_child: + { + for (xml_node_struct* c = n->first_child; c; c = c->next_sibling) + if (step_push(ns, c, alloc) & once) + return; + + break; + } + + case axis_descendant: + case axis_descendant_or_self: + { + if (axis == axis_descendant_or_self) + if (step_push(ns, n, alloc) & once) + return; + + xml_node_struct* cur = n->first_child; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + if (cur->first_child) + cur = cur->first_child; + else + { + while (!cur->next_sibling) + { + cur = cur->parent; + + if (cur == n) return; + } + + cur = cur->next_sibling; + } + } + + break; + } + + case axis_following_sibling: + { + for (xml_node_struct* c = n->next_sibling; c; c = c->next_sibling) + if (step_push(ns, c, alloc) & once) + return; + + break; + } + + case axis_preceding_sibling: + { + for (xml_node_struct* c = n->prev_sibling_c; c->next_sibling; c = c->prev_sibling_c) + if (step_push(ns, c, alloc) & once) + return; + + break; + } + + case axis_following: + { + xml_node_struct* cur = n; + + // exit from this node so that we don't include descendants + while (!cur->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->next_sibling; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + if (cur->first_child) + cur = cur->first_child; + else + { + while (!cur->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->next_sibling; + } + } + + break; + } + + case axis_preceding: + { + xml_node_struct* cur = n; + + // exit from this node so that we don't include descendants + while (!cur->prev_sibling_c->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->prev_sibling_c; + + while (cur) + { + if (cur->first_child) + cur = cur->first_child->prev_sibling_c; + else + { + // leaf node, can't be ancestor + if (step_push(ns, cur, alloc) & once) + return; + + while (!cur->prev_sibling_c->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + + if (!node_is_ancestor(cur, n)) + if (step_push(ns, cur, alloc) & once) + return; + } + + cur = cur->prev_sibling_c; + } + } + + break; + } + + case axis_ancestor: + case axis_ancestor_or_self: + { + if (axis == axis_ancestor_or_self) + if (step_push(ns, n, alloc) & once) + return; + + xml_node_struct* cur = n->parent; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + cur = cur->parent; + } + + break; + } + + case axis_self: + { + step_push(ns, n, alloc); + + break; + } + + case axis_parent: + { + if (n->parent) + step_push(ns, n->parent, alloc); + + break; + } + + default: + assert(false && "Unimplemented axis"); // unreachable + } + } + + template void step_fill(xpath_node_set_raw& ns, xml_attribute_struct* a, xml_node_struct* p, xpath_allocator* alloc, bool once, T v) + { + const axis_t axis = T::axis; + + switch (axis) + { + case axis_ancestor: + case axis_ancestor_or_self: + { + if (axis == axis_ancestor_or_self && _test == nodetest_type_node) // reject attributes based on principal node type test + if (step_push(ns, a, p, alloc) & once) + return; + + xml_node_struct* cur = p; + + while (cur) + { + if (step_push(ns, cur, alloc) & once) + return; + + cur = cur->parent; + } + + break; + } + + case axis_descendant_or_self: + case axis_self: + { + if (_test == nodetest_type_node) // reject attributes based on principal node type test + step_push(ns, a, p, alloc); + + break; + } + + case axis_following: + { + xml_node_struct* cur = p; + + while (cur) + { + if (cur->first_child) + cur = cur->first_child; + else + { + while (!cur->next_sibling) + { + cur = cur->parent; + + if (!cur) return; + } + + cur = cur->next_sibling; + } + + if (step_push(ns, cur, alloc) & once) + return; + } + + break; + } + + case axis_parent: + { + step_push(ns, p, alloc); + + break; + } + + case axis_preceding: + { + // preceding:: axis does not include attribute nodes and attribute ancestors (they are the same as parent's ancestors), so we can reuse node preceding + step_fill(ns, p, alloc, once, v); + break; + } + + default: + assert(false && "Unimplemented axis"); // unreachable + } + } + + template void step_fill(xpath_node_set_raw& ns, const xpath_node& xn, xpath_allocator* alloc, bool once, T v) + { + const axis_t axis = T::axis; + const bool axis_has_attributes = (axis == axis_ancestor || axis == axis_ancestor_or_self || axis == axis_descendant_or_self || axis == axis_following || axis == axis_parent || axis == axis_preceding || axis == axis_self); + + if (xn.node()) + step_fill(ns, xn.node().internal_object(), alloc, once, v); + else if (axis_has_attributes && xn.attribute() && xn.parent()) + step_fill(ns, xn.attribute().internal_object(), xn.parent().internal_object(), alloc, once, v); + } + + template xpath_node_set_raw step_do(const xpath_context& c, const xpath_stack& stack, nodeset_eval_t eval, T v) + { + const axis_t axis = T::axis; + const bool axis_reverse = (axis == axis_ancestor || axis == axis_ancestor_or_self || axis == axis_preceding || axis == axis_preceding_sibling); + const xpath_node_set::type_t axis_type = axis_reverse ? xpath_node_set::type_sorted_reverse : xpath_node_set::type_sorted; + + bool once = + (axis == axis_attribute && _test == nodetest_name) || + (!_right && eval_once(axis_type, eval)) || + // coverity[mixed_enums] + (_right && !_right->_next && _right->_test == predicate_constant_one); + + xpath_node_set_raw ns; + ns.set_type(axis_type); + + if (_left) + { + xpath_node_set_raw s = _left->eval_node_set(c, stack, nodeset_eval_all); + + // self axis preserves the original order + if (axis == axis_self) ns.set_type(s.type()); + + for (const xpath_node* it = s.begin(); it != s.end(); ++it) + { + size_t size = ns.size(); + + // in general, all axes generate elements in a particular order, but there is no order guarantee if axis is applied to two nodes + if (axis != axis_self && size != 0) ns.set_type(xpath_node_set::type_unsorted); + + step_fill(ns, *it, stack.result, once, v); + if (_right) apply_predicates(ns, size, stack, eval); + } + } + else + { + step_fill(ns, c.n, stack.result, once, v); + if (_right) apply_predicates(ns, 0, stack, eval); + } + + // child, attribute and self axes always generate unique set of nodes + // for other axis, if the set stayed sorted, it stayed unique because the traversal algorithms do not visit the same node twice + if (axis != axis_child && axis != axis_attribute && axis != axis_self && ns.type() == xpath_node_set::type_unsorted) + ns.remove_duplicates(stack.temp); + + return ns; + } + + public: + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, const char_t* value): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(0), _right(0), _next(0) + { + assert(type == ast_string_constant); + _data.string = value; + } + + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, double value): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(0), _right(0), _next(0) + { + assert(type == ast_number_constant); + _data.number = value; + } + + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, xpath_variable* value): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(0), _right(0), _next(0) + { + assert(type == ast_variable); + _data.variable = value; + } + + xpath_ast_node(ast_type_t type, xpath_value_type rettype_, xpath_ast_node* left = 0, xpath_ast_node* right = 0): + _type(static_cast(type)), _rettype(static_cast(rettype_)), _axis(0), _test(0), _left(left), _right(right), _next(0) + { + } + + xpath_ast_node(ast_type_t type, xpath_ast_node* left, axis_t axis, nodetest_t test, const char_t* contents): + _type(static_cast(type)), _rettype(xpath_type_node_set), _axis(static_cast(axis)), _test(static_cast(test)), _left(left), _right(0), _next(0) + { + assert(type == ast_step); + _data.nodetest = contents; + } + + xpath_ast_node(ast_type_t type, xpath_ast_node* left, xpath_ast_node* right, predicate_t test): + _type(static_cast(type)), _rettype(xpath_type_node_set), _axis(0), _test(static_cast(test)), _left(left), _right(right), _next(0) + { + assert(type == ast_filter || type == ast_predicate); + } + + void set_next(xpath_ast_node* value) + { + _next = value; + } + + void set_right(xpath_ast_node* value) + { + _right = value; + } + + bool eval_boolean(const xpath_context& c, const xpath_stack& stack) + { + switch (_type) + { + case ast_op_or: + return _left->eval_boolean(c, stack) || _right->eval_boolean(c, stack); + + case ast_op_and: + return _left->eval_boolean(c, stack) && _right->eval_boolean(c, stack); + + case ast_op_equal: + return compare_eq(_left, _right, c, stack, equal_to()); + + case ast_op_not_equal: + return compare_eq(_left, _right, c, stack, not_equal_to()); + + case ast_op_less: + return compare_rel(_left, _right, c, stack, less()); + + case ast_op_greater: + return compare_rel(_right, _left, c, stack, less()); + + case ast_op_less_or_equal: + return compare_rel(_left, _right, c, stack, less_equal()); + + case ast_op_greater_or_equal: + return compare_rel(_right, _left, c, stack, less_equal()); + + case ast_func_starts_with: + { + xpath_allocator_capture cr(stack.result); + + xpath_string lr = _left->eval_string(c, stack); + xpath_string rr = _right->eval_string(c, stack); + + return starts_with(lr.c_str(), rr.c_str()); + } + + case ast_func_contains: + { + xpath_allocator_capture cr(stack.result); + + xpath_string lr = _left->eval_string(c, stack); + xpath_string rr = _right->eval_string(c, stack); + + return find_substring(lr.c_str(), rr.c_str()) != 0; + } + + case ast_func_boolean: + return _left->eval_boolean(c, stack); + + case ast_func_not: + return !_left->eval_boolean(c, stack); + + case ast_func_true: + return true; + + case ast_func_false: + return false; + + case ast_func_lang: + { + if (c.n.attribute()) return false; + + xpath_allocator_capture cr(stack.result); + + xpath_string lang = _left->eval_string(c, stack); + + for (xml_node n = c.n.node(); n; n = n.parent()) + { + xml_attribute a = n.attribute(PUGIXML_TEXT("xml:lang")); + + if (a) + { + const char_t* value = a.value(); + + // strnicmp / strncasecmp is not portable + for (const char_t* lit = lang.c_str(); *lit; ++lit) + { + if (tolower_ascii(*lit) != tolower_ascii(*value)) return false; + ++value; + } + + return *value == 0 || *value == '-'; + } + } + + return false; + } + + case ast_opt_compare_attribute: + { + const char_t* value = (_right->_type == ast_string_constant) ? _right->_data.string : _right->_data.variable->get_string(); + + xml_attribute attr = c.n.node().attribute(_left->_data.nodetest); + + return attr && strequal(attr.value(), value) && is_xpath_attribute(attr.name()); + } + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_boolean) + return _data.variable->get_boolean(); + + // variable needs to be converted to the correct type, this is handled by the fallthrough block below + break; + } + + default: + ; + } + + // none of the ast types that return the value directly matched, we need to perform type conversion + switch (_rettype) + { + case xpath_type_number: + return convert_number_to_boolean(eval_number(c, stack)); + + case xpath_type_string: + { + xpath_allocator_capture cr(stack.result); + + return !eval_string(c, stack).empty(); + } + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.result); + + return !eval_node_set(c, stack, nodeset_eval_any).empty(); + } + + default: + assert(false && "Wrong expression for return type boolean"); // unreachable + return false; + } + } + + double eval_number(const xpath_context& c, const xpath_stack& stack) + { + switch (_type) + { + case ast_op_add: + return _left->eval_number(c, stack) + _right->eval_number(c, stack); + + case ast_op_subtract: + return _left->eval_number(c, stack) - _right->eval_number(c, stack); + + case ast_op_multiply: + return _left->eval_number(c, stack) * _right->eval_number(c, stack); + + case ast_op_divide: + return _left->eval_number(c, stack) / _right->eval_number(c, stack); + + case ast_op_mod: + return fmod(_left->eval_number(c, stack), _right->eval_number(c, stack)); + + case ast_op_negate: + return -_left->eval_number(c, stack); + + case ast_number_constant: + return _data.number; + + case ast_func_last: + return static_cast(c.size); + + case ast_func_position: + return static_cast(c.position); + + case ast_func_count: + { + xpath_allocator_capture cr(stack.result); + + return static_cast(_left->eval_node_set(c, stack, nodeset_eval_all).size()); + } + + case ast_func_string_length_0: + { + xpath_allocator_capture cr(stack.result); + + return static_cast(string_value(c.n, stack.result).length()); + } + + case ast_func_string_length_1: + { + xpath_allocator_capture cr(stack.result); + + return static_cast(_left->eval_string(c, stack).length()); + } + + case ast_func_number_0: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(string_value(c.n, stack.result).c_str()); + } + + case ast_func_number_1: + return _left->eval_number(c, stack); + + case ast_func_sum: + { + xpath_allocator_capture cr(stack.result); + + double r = 0; + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_all); + + for (const xpath_node* it = ns.begin(); it != ns.end(); ++it) + { + xpath_allocator_capture cri(stack.result); + + r += convert_string_to_number(string_value(*it, stack.result).c_str()); + } + + return r; + } + + case ast_func_floor: + { + double r = _left->eval_number(c, stack); + + return r == r ? floor(r) : r; + } + + case ast_func_ceiling: + { + double r = _left->eval_number(c, stack); + + return r == r ? ceil(r) : r; + } + + case ast_func_round: + return round_nearest_nzero(_left->eval_number(c, stack)); + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_number) + return _data.variable->get_number(); + + // variable needs to be converted to the correct type, this is handled by the fallthrough block below + break; + } + + default: + ; + } + + // none of the ast types that return the value directly matched, we need to perform type conversion + switch (_rettype) + { + case xpath_type_boolean: + return eval_boolean(c, stack) ? 1 : 0; + + case xpath_type_string: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(eval_string(c, stack).c_str()); + } + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.result); + + return convert_string_to_number(eval_string(c, stack).c_str()); + } + + default: + assert(false && "Wrong expression for return type number"); // unreachable + return 0; + } + } + + xpath_string eval_string_concat(const xpath_context& c, const xpath_stack& stack) + { + assert(_type == ast_func_concat); + + xpath_allocator_capture ct(stack.temp); + + // count the string number + size_t count = 1; + for (xpath_ast_node* nc = _right; nc; nc = nc->_next) count++; + + // allocate a buffer for temporary string objects + xpath_string* buffer = static_cast(stack.temp->allocate(count * sizeof(xpath_string))); + if (!buffer) return xpath_string(); + + // evaluate all strings to temporary stack + xpath_stack swapped_stack = {stack.temp, stack.result}; + + buffer[0] = _left->eval_string(c, swapped_stack); + + size_t pos = 1; + for (xpath_ast_node* n = _right; n; n = n->_next, ++pos) buffer[pos] = n->eval_string(c, swapped_stack); + assert(pos == count); + + // get total length + size_t length = 0; + for (size_t i = 0; i < count; ++i) length += buffer[i].length(); + + // create final string + char_t* result = static_cast(stack.result->allocate((length + 1) * sizeof(char_t))); + if (!result) return xpath_string(); + + char_t* ri = result; + + for (size_t j = 0; j < count; ++j) + for (const char_t* bi = buffer[j].c_str(); *bi; ++bi) + *ri++ = *bi; + + *ri = 0; + + return xpath_string::from_heap_preallocated(result, ri); + } + + xpath_string eval_string(const xpath_context& c, const xpath_stack& stack) + { + switch (_type) + { + case ast_string_constant: + return xpath_string::from_const(_data.string); + + case ast_func_local_name_0: + { + xpath_node na = c.n; + + return xpath_string::from_const(local_name(na)); + } + + case ast_func_local_name_1: + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_first); + xpath_node na = ns.first(); + + return xpath_string::from_const(local_name(na)); + } + + case ast_func_name_0: + { + xpath_node na = c.n; + + return xpath_string::from_const(qualified_name(na)); + } + + case ast_func_name_1: + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_first); + xpath_node na = ns.first(); + + return xpath_string::from_const(qualified_name(na)); + } + + case ast_func_namespace_uri_0: + { + xpath_node na = c.n; + + return xpath_string::from_const(namespace_uri(na)); + } + + case ast_func_namespace_uri_1: + { + xpath_allocator_capture cr(stack.result); + + xpath_node_set_raw ns = _left->eval_node_set(c, stack, nodeset_eval_first); + xpath_node na = ns.first(); + + return xpath_string::from_const(namespace_uri(na)); + } + + case ast_func_string_0: + return string_value(c.n, stack.result); + + case ast_func_string_1: + return _left->eval_string(c, stack); + + case ast_func_concat: + return eval_string_concat(c, stack); + + case ast_func_substring_before: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + xpath_string p = _right->eval_string(c, swapped_stack); + + const char_t* pos = find_substring(s.c_str(), p.c_str()); + + return pos ? xpath_string::from_heap(s.c_str(), pos, stack.result) : xpath_string(); + } + + case ast_func_substring_after: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + xpath_string p = _right->eval_string(c, swapped_stack); + + const char_t* pos = find_substring(s.c_str(), p.c_str()); + if (!pos) return xpath_string(); + + const char_t* rbegin = pos + p.length(); + const char_t* rend = s.c_str() + s.length(); + + return s.uses_heap() ? xpath_string::from_heap(rbegin, rend, stack.result) : xpath_string::from_const(rbegin); + } + + case ast_func_substring_2: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + size_t s_length = s.length(); + + double first = round_nearest(_right->eval_number(c, stack)); + + if (is_nan(first)) return xpath_string(); // NaN + else if (first >= static_cast(s_length + 1)) return xpath_string(); + + size_t pos = first < 1 ? 1 : static_cast(first); + assert(1 <= pos && pos <= s_length + 1); + + const char_t* rbegin = s.c_str() + (pos - 1); + const char_t* rend = s.c_str() + s.length(); + + return s.uses_heap() ? xpath_string::from_heap(rbegin, rend, stack.result) : xpath_string::from_const(rbegin); + } + + case ast_func_substring_3: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, swapped_stack); + size_t s_length = s.length(); + + double first = round_nearest(_right->eval_number(c, stack)); + double last = first + round_nearest(_right->_next->eval_number(c, stack)); + + if (is_nan(first) || is_nan(last)) return xpath_string(); + else if (first >= static_cast(s_length + 1)) return xpath_string(); + else if (first >= last) return xpath_string(); + else if (last < 1) return xpath_string(); + + size_t pos = first < 1 ? 1 : static_cast(first); + size_t end = last >= static_cast(s_length + 1) ? s_length + 1 : static_cast(last); + + assert(1 <= pos && pos <= end && end <= s_length + 1); + const char_t* rbegin = s.c_str() + (pos - 1); + const char_t* rend = s.c_str() + (end - 1); + + return (end == s_length + 1 && !s.uses_heap()) ? xpath_string::from_const(rbegin) : xpath_string::from_heap(rbegin, rend, stack.result); + } + + case ast_func_normalize_space_0: + { + xpath_string s = string_value(c.n, stack.result); + + char_t* begin = s.data(stack.result); + if (!begin) return xpath_string(); + + char_t* end = normalize_space(begin); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_func_normalize_space_1: + { + xpath_string s = _left->eval_string(c, stack); + + char_t* begin = s.data(stack.result); + if (!begin) return xpath_string(); + + char_t* end = normalize_space(begin); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_func_translate: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_string s = _left->eval_string(c, stack); + xpath_string from = _right->eval_string(c, swapped_stack); + xpath_string to = _right->_next->eval_string(c, swapped_stack); + + char_t* begin = s.data(stack.result); + if (!begin) return xpath_string(); + + char_t* end = translate(begin, from.c_str(), to.c_str(), to.length()); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_opt_translate_table: + { + xpath_string s = _left->eval_string(c, stack); + + char_t* begin = s.data(stack.result); + if (!begin) return xpath_string(); + + char_t* end = translate_table(begin, _data.table); + + return xpath_string::from_heap_preallocated(begin, end); + } + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_string) + return xpath_string::from_const(_data.variable->get_string()); + + // variable needs to be converted to the correct type, this is handled by the fallthrough block below + break; + } + + default: + ; + } + + // none of the ast types that return the value directly matched, we need to perform type conversion + switch (_rettype) + { + case xpath_type_boolean: + return xpath_string::from_const(eval_boolean(c, stack) ? PUGIXML_TEXT("true") : PUGIXML_TEXT("false")); + + case xpath_type_number: + return convert_number_to_string(eval_number(c, stack), stack.result); + + case xpath_type_node_set: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_node_set_raw ns = eval_node_set(c, swapped_stack, nodeset_eval_first); + return ns.empty() ? xpath_string() : string_value(ns.first(), stack.result); + } + + default: + assert(false && "Wrong expression for return type string"); // unreachable + return xpath_string(); + } + } + + xpath_node_set_raw eval_node_set(const xpath_context& c, const xpath_stack& stack, nodeset_eval_t eval) + { + switch (_type) + { + case ast_op_union: + { + xpath_allocator_capture cr(stack.temp); + + xpath_stack swapped_stack = {stack.temp, stack.result}; + + xpath_node_set_raw ls = _left->eval_node_set(c, stack, eval); + xpath_node_set_raw rs = _right->eval_node_set(c, swapped_stack, eval); + + // we can optimize merging two sorted sets, but this is a very rare operation, so don't bother + ls.set_type(xpath_node_set::type_unsorted); + + ls.append(rs.begin(), rs.end(), stack.result); + ls.remove_duplicates(stack.temp); + + return ls; + } + + case ast_filter: + { + xpath_node_set_raw set = _left->eval_node_set(c, stack, _test == predicate_constant_one ? nodeset_eval_first : nodeset_eval_all); + + // either expression is a number or it contains position() call; sort by document order + if (_test != predicate_posinv) set.sort_do(); + + bool once = eval_once(set.type(), eval); + + apply_predicate(set, 0, stack, once); + + return set; + } + + case ast_func_id: + return xpath_node_set_raw(); + + case ast_step: + { + switch (_axis) + { + case axis_ancestor: + return step_do(c, stack, eval, axis_to_type()); + + case axis_ancestor_or_self: + return step_do(c, stack, eval, axis_to_type()); + + case axis_attribute: + return step_do(c, stack, eval, axis_to_type()); + + case axis_child: + return step_do(c, stack, eval, axis_to_type()); + + case axis_descendant: + return step_do(c, stack, eval, axis_to_type()); + + case axis_descendant_or_self: + return step_do(c, stack, eval, axis_to_type()); + + case axis_following: + return step_do(c, stack, eval, axis_to_type()); + + case axis_following_sibling: + return step_do(c, stack, eval, axis_to_type()); + + case axis_namespace: + // namespaced axis is not supported + return xpath_node_set_raw(); + + case axis_parent: + return step_do(c, stack, eval, axis_to_type()); + + case axis_preceding: + return step_do(c, stack, eval, axis_to_type()); + + case axis_preceding_sibling: + return step_do(c, stack, eval, axis_to_type()); + + case axis_self: + return step_do(c, stack, eval, axis_to_type()); + + default: + assert(false && "Unknown axis"); // unreachable + return xpath_node_set_raw(); + } + } + + case ast_step_root: + { + assert(!_right); // root step can't have any predicates + + xpath_node_set_raw ns; + + ns.set_type(xpath_node_set::type_sorted); + + if (c.n.node()) ns.push_back(c.n.node().root(), stack.result); + else if (c.n.attribute()) ns.push_back(c.n.parent().root(), stack.result); + + return ns; + } + + case ast_variable: + { + assert(_rettype == _data.variable->type()); + + if (_rettype == xpath_type_node_set) + { + const xpath_node_set& s = _data.variable->get_node_set(); + + xpath_node_set_raw ns; + + ns.set_type(s.type()); + ns.append(s.begin(), s.end(), stack.result); + + return ns; + } + + // variable needs to be converted to the correct type, this is handled by the fallthrough block below + break; + } + + default: + ; + } + + // none of the ast types that return the value directly matched, but conversions to node set are invalid + assert(false && "Wrong expression for return type node set"); // unreachable + return xpath_node_set_raw(); + } + + void optimize(xpath_allocator* alloc) + { + if (_left) + _left->optimize(alloc); + + if (_right) + _right->optimize(alloc); + + if (_next) + _next->optimize(alloc); + + // coverity[var_deref_model] + optimize_self(alloc); + } + + void optimize_self(xpath_allocator* alloc) + { + // Rewrite [position()=expr] with [expr] + // Note that this step has to go before classification to recognize [position()=1] + if ((_type == ast_filter || _type == ast_predicate) && + _right && // workaround for clang static analyzer (_right is never null for ast_filter/ast_predicate) + _right->_type == ast_op_equal && _right->_left->_type == ast_func_position && _right->_right->_rettype == xpath_type_number) + { + _right = _right->_right; + } + + // Classify filter/predicate ops to perform various optimizations during evaluation + if ((_type == ast_filter || _type == ast_predicate) && _right) // workaround for clang static analyzer (_right is never null for ast_filter/ast_predicate) + { + assert(_test == predicate_default); + + if (_right->_type == ast_number_constant && _right->_data.number == 1.0) + _test = predicate_constant_one; + else if (_right->_rettype == xpath_type_number && (_right->_type == ast_number_constant || _right->_type == ast_variable || _right->_type == ast_func_last)) + _test = predicate_constant; + else if (_right->_rettype != xpath_type_number && _right->is_posinv_expr()) + _test = predicate_posinv; + } + + // Rewrite descendant-or-self::node()/child::foo with descendant::foo + // The former is a full form of //foo, the latter is much faster since it executes the node test immediately + // Do a similar kind of rewrite for self/descendant/descendant-or-self axes + // Note that we only rewrite positionally invariant steps (//foo[1] != /descendant::foo[1]) + if (_type == ast_step && (_axis == axis_child || _axis == axis_self || _axis == axis_descendant || _axis == axis_descendant_or_self) && + _left && _left->_type == ast_step && _left->_axis == axis_descendant_or_self && _left->_test == nodetest_type_node && !_left->_right && + is_posinv_step()) + { + if (_axis == axis_child || _axis == axis_descendant) + _axis = axis_descendant; + else + _axis = axis_descendant_or_self; + + _left = _left->_left; + } + + // Use optimized lookup table implementation for translate() with constant arguments + if (_type == ast_func_translate && + _right && // workaround for clang static analyzer (_right is never null for ast_func_translate) + _right->_type == ast_string_constant && _right->_next->_type == ast_string_constant) + { + unsigned char* table = translate_table_generate(alloc, _right->_data.string, _right->_next->_data.string); + + if (table) + { + _type = ast_opt_translate_table; + _data.table = table; + } + } + + // Use optimized path for @attr = 'value' or @attr = $value + if (_type == ast_op_equal && + _left && _right && // workaround for clang static analyzer and Coverity (_left and _right are never null for ast_op_equal) + // coverity[mixed_enums] + _left->_type == ast_step && _left->_axis == axis_attribute && _left->_test == nodetest_name && !_left->_left && !_left->_right && + (_right->_type == ast_string_constant || (_right->_type == ast_variable && _right->_rettype == xpath_type_string))) + { + _type = ast_opt_compare_attribute; + } + } + + bool is_posinv_expr() const + { + switch (_type) + { + case ast_func_position: + case ast_func_last: + return false; + + case ast_string_constant: + case ast_number_constant: + case ast_variable: + return true; + + case ast_step: + case ast_step_root: + return true; + + case ast_predicate: + case ast_filter: + return true; + + default: + if (_left && !_left->is_posinv_expr()) return false; + + for (xpath_ast_node* n = _right; n; n = n->_next) + if (!n->is_posinv_expr()) return false; + + return true; + } + } + + bool is_posinv_step() const + { + assert(_type == ast_step); + + for (xpath_ast_node* n = _right; n; n = n->_next) + { + assert(n->_type == ast_predicate); + + if (n->_test != predicate_posinv) + return false; + } + + return true; + } + + xpath_value_type rettype() const + { + return static_cast(_rettype); + } + }; + + static const size_t xpath_ast_depth_limit = + #ifdef PUGIXML_XPATH_DEPTH_LIMIT + PUGIXML_XPATH_DEPTH_LIMIT + #else + 1024 + #endif + ; + + struct xpath_parser + { + xpath_allocator* _alloc; + xpath_lexer _lexer; + + const char_t* _query; + xpath_variable_set* _variables; + + xpath_parse_result* _result; + + char_t _scratch[32]; + + size_t _depth; + + xpath_ast_node* error(const char* message) + { + _result->error = message; + _result->offset = _lexer.current_pos() - _query; + + return 0; + } + + xpath_ast_node* error_oom() + { + assert(_alloc->_error); + *_alloc->_error = true; + + return 0; + } + + xpath_ast_node* error_rec() + { + return error("Exceeded maximum allowed query depth"); + } + + void* alloc_node() + { + return _alloc->allocate(sizeof(xpath_ast_node)); + } + + xpath_ast_node* alloc_node(ast_type_t type, xpath_value_type rettype, const char_t* value) + { + void* memory = alloc_node(); + return memory ? new (memory) xpath_ast_node(type, rettype, value) : 0; + } + + xpath_ast_node* alloc_node(ast_type_t type, xpath_value_type rettype, double value) + { + void* memory = alloc_node(); + return memory ? new (memory) xpath_ast_node(type, rettype, value) : 0; + } + + xpath_ast_node* alloc_node(ast_type_t type, xpath_value_type rettype, xpath_variable* value) + { + void* memory = alloc_node(); + return memory ? new (memory) xpath_ast_node(type, rettype, value) : 0; + } + + xpath_ast_node* alloc_node(ast_type_t type, xpath_value_type rettype, xpath_ast_node* left = 0, xpath_ast_node* right = 0) + { + void* memory = alloc_node(); + return memory ? new (memory) xpath_ast_node(type, rettype, left, right) : 0; + } + + xpath_ast_node* alloc_node(ast_type_t type, xpath_ast_node* left, axis_t axis, nodetest_t test, const char_t* contents) + { + void* memory = alloc_node(); + return memory ? new (memory) xpath_ast_node(type, left, axis, test, contents) : 0; + } + + xpath_ast_node* alloc_node(ast_type_t type, xpath_ast_node* left, xpath_ast_node* right, predicate_t test) + { + void* memory = alloc_node(); + return memory ? new (memory) xpath_ast_node(type, left, right, test) : 0; + } + + const char_t* alloc_string(const xpath_lexer_string& value) + { + if (!value.begin) + return PUGIXML_TEXT(""); + + size_t length = static_cast(value.end - value.begin); + + char_t* c = static_cast(_alloc->allocate((length + 1) * sizeof(char_t))); + if (!c) return 0; + + memcpy(c, value.begin, length * sizeof(char_t)); + c[length] = 0; + + return c; + } + + xpath_ast_node* parse_function(const xpath_lexer_string& name, size_t argc, xpath_ast_node* args[2]) + { + switch (name.begin[0]) + { + case 'b': + if (name == PUGIXML_TEXT("boolean") && argc == 1) + return alloc_node(ast_func_boolean, xpath_type_boolean, args[0]); + + break; + + case 'c': + if (name == PUGIXML_TEXT("count") && argc == 1) + { + if (args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set"); + return alloc_node(ast_func_count, xpath_type_number, args[0]); + } + else if (name == PUGIXML_TEXT("contains") && argc == 2) + return alloc_node(ast_func_contains, xpath_type_boolean, args[0], args[1]); + else if (name == PUGIXML_TEXT("concat") && argc >= 2) + return alloc_node(ast_func_concat, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("ceiling") && argc == 1) + return alloc_node(ast_func_ceiling, xpath_type_number, args[0]); + + break; + + case 'f': + if (name == PUGIXML_TEXT("false") && argc == 0) + return alloc_node(ast_func_false, xpath_type_boolean); + else if (name == PUGIXML_TEXT("floor") && argc == 1) + return alloc_node(ast_func_floor, xpath_type_number, args[0]); + + break; + + case 'i': + if (name == PUGIXML_TEXT("id") && argc == 1) + return alloc_node(ast_func_id, xpath_type_node_set, args[0]); + + break; + + case 'l': + if (name == PUGIXML_TEXT("last") && argc == 0) + return alloc_node(ast_func_last, xpath_type_number); + else if (name == PUGIXML_TEXT("lang") && argc == 1) + return alloc_node(ast_func_lang, xpath_type_boolean, args[0]); + else if (name == PUGIXML_TEXT("local-name") && argc <= 1) + { + if (argc == 1 && args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set"); + return alloc_node(argc == 0 ? ast_func_local_name_0 : ast_func_local_name_1, xpath_type_string, args[0]); + } + + break; + + case 'n': + if (name == PUGIXML_TEXT("name") && argc <= 1) + { + if (argc == 1 && args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set"); + return alloc_node(argc == 0 ? ast_func_name_0 : ast_func_name_1, xpath_type_string, args[0]); + } + else if (name == PUGIXML_TEXT("namespace-uri") && argc <= 1) + { + if (argc == 1 && args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set"); + return alloc_node(argc == 0 ? ast_func_namespace_uri_0 : ast_func_namespace_uri_1, xpath_type_string, args[0]); + } + else if (name == PUGIXML_TEXT("normalize-space") && argc <= 1) + return alloc_node(argc == 0 ? ast_func_normalize_space_0 : ast_func_normalize_space_1, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("not") && argc == 1) + return alloc_node(ast_func_not, xpath_type_boolean, args[0]); + else if (name == PUGIXML_TEXT("number") && argc <= 1) + return alloc_node(argc == 0 ? ast_func_number_0 : ast_func_number_1, xpath_type_number, args[0]); + + break; + + case 'p': + if (name == PUGIXML_TEXT("position") && argc == 0) + return alloc_node(ast_func_position, xpath_type_number); + + break; + + case 'r': + if (name == PUGIXML_TEXT("round") && argc == 1) + return alloc_node(ast_func_round, xpath_type_number, args[0]); + + break; + + case 's': + if (name == PUGIXML_TEXT("string") && argc <= 1) + return alloc_node(argc == 0 ? ast_func_string_0 : ast_func_string_1, xpath_type_string, args[0]); + else if (name == PUGIXML_TEXT("string-length") && argc <= 1) + return alloc_node(argc == 0 ? ast_func_string_length_0 : ast_func_string_length_1, xpath_type_number, args[0]); + else if (name == PUGIXML_TEXT("starts-with") && argc == 2) + return alloc_node(ast_func_starts_with, xpath_type_boolean, args[0], args[1]); + else if (name == PUGIXML_TEXT("substring-before") && argc == 2) + return alloc_node(ast_func_substring_before, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("substring-after") && argc == 2) + return alloc_node(ast_func_substring_after, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("substring") && (argc == 2 || argc == 3)) + return alloc_node(argc == 2 ? ast_func_substring_2 : ast_func_substring_3, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("sum") && argc == 1) + { + if (args[0]->rettype() != xpath_type_node_set) return error("Function has to be applied to node set"); + return alloc_node(ast_func_sum, xpath_type_number, args[0]); + } + + break; + + case 't': + if (name == PUGIXML_TEXT("translate") && argc == 3) + return alloc_node(ast_func_translate, xpath_type_string, args[0], args[1]); + else if (name == PUGIXML_TEXT("true") && argc == 0) + return alloc_node(ast_func_true, xpath_type_boolean); + + break; + + default: + break; + } + + return error("Unrecognized function or wrong parameter count"); + } + + axis_t parse_axis_name(const xpath_lexer_string& name, bool& specified) + { + specified = true; + + switch (name.begin[0]) + { + case 'a': + if (name == PUGIXML_TEXT("ancestor")) + return axis_ancestor; + else if (name == PUGIXML_TEXT("ancestor-or-self")) + return axis_ancestor_or_self; + else if (name == PUGIXML_TEXT("attribute")) + return axis_attribute; + + break; + + case 'c': + if (name == PUGIXML_TEXT("child")) + return axis_child; + + break; + + case 'd': + if (name == PUGIXML_TEXT("descendant")) + return axis_descendant; + else if (name == PUGIXML_TEXT("descendant-or-self")) + return axis_descendant_or_self; + + break; + + case 'f': + if (name == PUGIXML_TEXT("following")) + return axis_following; + else if (name == PUGIXML_TEXT("following-sibling")) + return axis_following_sibling; + + break; + + case 'n': + if (name == PUGIXML_TEXT("namespace")) + return axis_namespace; + + break; + + case 'p': + if (name == PUGIXML_TEXT("parent")) + return axis_parent; + else if (name == PUGIXML_TEXT("preceding")) + return axis_preceding; + else if (name == PUGIXML_TEXT("preceding-sibling")) + return axis_preceding_sibling; + + break; + + case 's': + if (name == PUGIXML_TEXT("self")) + return axis_self; + + break; + + default: + break; + } + + specified = false; + return axis_child; + } + + nodetest_t parse_node_test_type(const xpath_lexer_string& name) + { + switch (name.begin[0]) + { + case 'c': + if (name == PUGIXML_TEXT("comment")) + return nodetest_type_comment; + + break; + + case 'n': + if (name == PUGIXML_TEXT("node")) + return nodetest_type_node; + + break; + + case 'p': + if (name == PUGIXML_TEXT("processing-instruction")) + return nodetest_type_pi; + + break; + + case 't': + if (name == PUGIXML_TEXT("text")) + return nodetest_type_text; + + break; + + default: + break; + } + + return nodetest_none; + } + + // PrimaryExpr ::= VariableReference | '(' Expr ')' | Literal | Number | FunctionCall + xpath_ast_node* parse_primary_expression() + { + switch (_lexer.current()) + { + case lex_var_ref: + { + xpath_lexer_string name = _lexer.contents(); + + if (!_variables) + return error("Unknown variable: variable set is not provided"); + + xpath_variable* var = 0; + if (!get_variable_scratch(_scratch, _variables, name.begin, name.end, &var)) + return error_oom(); + + if (!var) + return error("Unknown variable: variable set does not contain the given name"); + + _lexer.next(); + + return alloc_node(ast_variable, var->type(), var); + } + + case lex_open_brace: + { + _lexer.next(); + + xpath_ast_node* n = parse_expression(); + if (!n) return 0; + + if (_lexer.current() != lex_close_brace) + return error("Expected ')' to match an opening '('"); + + _lexer.next(); + + return n; + } + + case lex_quoted_string: + { + const char_t* value = alloc_string(_lexer.contents()); + if (!value) return 0; + + _lexer.next(); + + return alloc_node(ast_string_constant, xpath_type_string, value); + } + + case lex_number: + { + double value = 0; + + if (!convert_string_to_number_scratch(_scratch, _lexer.contents().begin, _lexer.contents().end, &value)) + return error_oom(); + + _lexer.next(); + + return alloc_node(ast_number_constant, xpath_type_number, value); + } + + case lex_string: + { + xpath_ast_node* args[2] = {0}; + size_t argc = 0; + + xpath_lexer_string function = _lexer.contents(); + _lexer.next(); + + xpath_ast_node* last_arg = 0; + + if (_lexer.current() != lex_open_brace) + return error("Unrecognized function call"); + _lexer.next(); + + size_t old_depth = _depth; + + while (_lexer.current() != lex_close_brace) + { + if (argc > 0) + { + if (_lexer.current() != lex_comma) + return error("No comma between function arguments"); + _lexer.next(); + } + + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + + xpath_ast_node* n = parse_expression(); + if (!n) return 0; + + if (argc < 2) args[argc] = n; + else last_arg->set_next(n); + + argc++; + last_arg = n; + } + + _lexer.next(); + + _depth = old_depth; + + return parse_function(function, argc, args); + } + + default: + return error("Unrecognizable primary expression"); + } + } + + // FilterExpr ::= PrimaryExpr | FilterExpr Predicate + // Predicate ::= '[' PredicateExpr ']' + // PredicateExpr ::= Expr + xpath_ast_node* parse_filter_expression() + { + xpath_ast_node* n = parse_primary_expression(); + if (!n) return 0; + + size_t old_depth = _depth; + + while (_lexer.current() == lex_open_square_brace) + { + _lexer.next(); + + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + + if (n->rettype() != xpath_type_node_set) + return error("Predicate has to be applied to node set"); + + xpath_ast_node* expr = parse_expression(); + if (!expr) return 0; + + n = alloc_node(ast_filter, n, expr, predicate_default); + if (!n) return 0; + + if (_lexer.current() != lex_close_square_brace) + return error("Expected ']' to match an opening '['"); + + _lexer.next(); + } + + _depth = old_depth; + + return n; + } + + // Step ::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep + // AxisSpecifier ::= AxisName '::' | '@'? + // NodeTest ::= NameTest | NodeType '(' ')' | 'processing-instruction' '(' Literal ')' + // NameTest ::= '*' | NCName ':' '*' | QName + // AbbreviatedStep ::= '.' | '..' + xpath_ast_node* parse_step(xpath_ast_node* set) + { + if (set && set->rettype() != xpath_type_node_set) + return error("Step has to be applied to node set"); + + bool axis_specified = false; + axis_t axis = axis_child; // implied child axis + + if (_lexer.current() == lex_axis_attribute) + { + axis = axis_attribute; + axis_specified = true; + + _lexer.next(); + } + else if (_lexer.current() == lex_dot) + { + _lexer.next(); + + if (_lexer.current() == lex_open_square_brace) + return error("Predicates are not allowed after an abbreviated step"); + + return alloc_node(ast_step, set, axis_self, nodetest_type_node, 0); + } + else if (_lexer.current() == lex_double_dot) + { + _lexer.next(); + + if (_lexer.current() == lex_open_square_brace) + return error("Predicates are not allowed after an abbreviated step"); + + return alloc_node(ast_step, set, axis_parent, nodetest_type_node, 0); + } + + nodetest_t nt_type = nodetest_none; + xpath_lexer_string nt_name; + + if (_lexer.current() == lex_string) + { + // node name test + nt_name = _lexer.contents(); + _lexer.next(); + + // was it an axis name? + if (_lexer.current() == lex_double_colon) + { + // parse axis name + if (axis_specified) + return error("Two axis specifiers in one step"); + + axis = parse_axis_name(nt_name, axis_specified); + + if (!axis_specified) + return error("Unknown axis"); + + // read actual node test + _lexer.next(); + + if (_lexer.current() == lex_multiply) + { + nt_type = nodetest_all; + nt_name = xpath_lexer_string(); + _lexer.next(); + } + else if (_lexer.current() == lex_string) + { + nt_name = _lexer.contents(); + _lexer.next(); + } + else + { + return error("Unrecognized node test"); + } + } + + if (nt_type == nodetest_none) + { + // node type test or processing-instruction + if (_lexer.current() == lex_open_brace) + { + _lexer.next(); + + if (_lexer.current() == lex_close_brace) + { + _lexer.next(); + + nt_type = parse_node_test_type(nt_name); + + if (nt_type == nodetest_none) + return error("Unrecognized node type"); + + nt_name = xpath_lexer_string(); + } + else if (nt_name == PUGIXML_TEXT("processing-instruction")) + { + if (_lexer.current() != lex_quoted_string) + return error("Only literals are allowed as arguments to processing-instruction()"); + + nt_type = nodetest_pi; + nt_name = _lexer.contents(); + _lexer.next(); + + if (_lexer.current() != lex_close_brace) + return error("Unmatched brace near processing-instruction()"); + _lexer.next(); + } + else + { + return error("Unmatched brace near node type test"); + } + } + // QName or NCName:* + else + { + if (nt_name.end - nt_name.begin > 2 && nt_name.end[-2] == ':' && nt_name.end[-1] == '*') // NCName:* + { + nt_name.end--; // erase * + + nt_type = nodetest_all_in_namespace; + } + else + { + nt_type = nodetest_name; + } + } + } + } + else if (_lexer.current() == lex_multiply) + { + nt_type = nodetest_all; + _lexer.next(); + } + else + { + return error("Unrecognized node test"); + } + + const char_t* nt_name_copy = alloc_string(nt_name); + if (!nt_name_copy) return 0; + + xpath_ast_node* n = alloc_node(ast_step, set, axis, nt_type, nt_name_copy); + if (!n) return 0; + + size_t old_depth = _depth; + + xpath_ast_node* last = 0; + + while (_lexer.current() == lex_open_square_brace) + { + _lexer.next(); + + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + + xpath_ast_node* expr = parse_expression(); + if (!expr) return 0; + + xpath_ast_node* pred = alloc_node(ast_predicate, 0, expr, predicate_default); + if (!pred) return 0; + + if (_lexer.current() != lex_close_square_brace) + return error("Expected ']' to match an opening '['"); + _lexer.next(); + + if (last) last->set_next(pred); + else n->set_right(pred); + + last = pred; + } + + _depth = old_depth; + + return n; + } + + // RelativeLocationPath ::= Step | RelativeLocationPath '/' Step | RelativeLocationPath '//' Step + xpath_ast_node* parse_relative_location_path(xpath_ast_node* set) + { + xpath_ast_node* n = parse_step(set); + if (!n) return 0; + + size_t old_depth = _depth; + + while (_lexer.current() == lex_slash || _lexer.current() == lex_double_slash) + { + lexeme_t l = _lexer.current(); + _lexer.next(); + + if (l == lex_double_slash) + { + n = alloc_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); + if (!n) return 0; + + ++_depth; + } + + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + + n = parse_step(n); + if (!n) return 0; + } + + _depth = old_depth; + + return n; + } + + // LocationPath ::= RelativeLocationPath | AbsoluteLocationPath + // AbsoluteLocationPath ::= '/' RelativeLocationPath? | '//' RelativeLocationPath + xpath_ast_node* parse_location_path() + { + if (_lexer.current() == lex_slash) + { + _lexer.next(); + + xpath_ast_node* n = alloc_node(ast_step_root, xpath_type_node_set); + if (!n) return 0; + + // relative location path can start from axis_attribute, dot, double_dot, multiply and string lexemes; any other lexeme means standalone root path + lexeme_t l = _lexer.current(); + + if (l == lex_string || l == lex_axis_attribute || l == lex_dot || l == lex_double_dot || l == lex_multiply) + return parse_relative_location_path(n); + else + return n; + } + else if (_lexer.current() == lex_double_slash) + { + _lexer.next(); + + xpath_ast_node* n = alloc_node(ast_step_root, xpath_type_node_set); + if (!n) return 0; + + n = alloc_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); + if (!n) return 0; + + return parse_relative_location_path(n); + } + + // else clause moved outside of if because of bogus warning 'control may reach end of non-void function being inlined' in gcc 4.0.1 + return parse_relative_location_path(0); + } + + // PathExpr ::= LocationPath + // | FilterExpr + // | FilterExpr '/' RelativeLocationPath + // | FilterExpr '//' RelativeLocationPath + // UnionExpr ::= PathExpr | UnionExpr '|' PathExpr + // UnaryExpr ::= UnionExpr | '-' UnaryExpr + xpath_ast_node* parse_path_or_unary_expression() + { + // Clarification. + // PathExpr begins with either LocationPath or FilterExpr. + // FilterExpr begins with PrimaryExpr + // PrimaryExpr begins with '$' in case of it being a variable reference, + // '(' in case of it being an expression, string literal, number constant or + // function call. + if (_lexer.current() == lex_var_ref || _lexer.current() == lex_open_brace || + _lexer.current() == lex_quoted_string || _lexer.current() == lex_number || + _lexer.current() == lex_string) + { + if (_lexer.current() == lex_string) + { + // This is either a function call, or not - if not, we shall proceed with location path + const char_t* state = _lexer.state(); + + while (PUGI__IS_CHARTYPE(*state, ct_space)) ++state; + + if (*state != '(') + return parse_location_path(); + + // This looks like a function call; however this still can be a node-test. Check it. + if (parse_node_test_type(_lexer.contents()) != nodetest_none) + return parse_location_path(); + } + + xpath_ast_node* n = parse_filter_expression(); + if (!n) return 0; + + if (_lexer.current() == lex_slash || _lexer.current() == lex_double_slash) + { + lexeme_t l = _lexer.current(); + _lexer.next(); + + if (l == lex_double_slash) + { + if (n->rettype() != xpath_type_node_set) + return error("Step has to be applied to node set"); + + n = alloc_node(ast_step, n, axis_descendant_or_self, nodetest_type_node, 0); + if (!n) return 0; + } + + // select from location path + return parse_relative_location_path(n); + } + + return n; + } + else if (_lexer.current() == lex_minus) + { + _lexer.next(); + + // precedence 7+ - only parses union expressions + xpath_ast_node* n = parse_expression(7); + if (!n) return 0; + + return alloc_node(ast_op_negate, xpath_type_number, n); + } + else + { + return parse_location_path(); + } + } + + struct binary_op_t + { + ast_type_t asttype; + xpath_value_type rettype; + int precedence; + + binary_op_t(): asttype(ast_unknown), rettype(xpath_type_none), precedence(0) + { + } + + binary_op_t(ast_type_t asttype_, xpath_value_type rettype_, int precedence_): asttype(asttype_), rettype(rettype_), precedence(precedence_) + { + } + + static binary_op_t parse(xpath_lexer& lexer) + { + switch (lexer.current()) + { + case lex_string: + if (lexer.contents() == PUGIXML_TEXT("or")) + return binary_op_t(ast_op_or, xpath_type_boolean, 1); + else if (lexer.contents() == PUGIXML_TEXT("and")) + return binary_op_t(ast_op_and, xpath_type_boolean, 2); + else if (lexer.contents() == PUGIXML_TEXT("div")) + return binary_op_t(ast_op_divide, xpath_type_number, 6); + else if (lexer.contents() == PUGIXML_TEXT("mod")) + return binary_op_t(ast_op_mod, xpath_type_number, 6); + else + return binary_op_t(); + + case lex_equal: + return binary_op_t(ast_op_equal, xpath_type_boolean, 3); + + case lex_not_equal: + return binary_op_t(ast_op_not_equal, xpath_type_boolean, 3); + + case lex_less: + return binary_op_t(ast_op_less, xpath_type_boolean, 4); + + case lex_greater: + return binary_op_t(ast_op_greater, xpath_type_boolean, 4); + + case lex_less_or_equal: + return binary_op_t(ast_op_less_or_equal, xpath_type_boolean, 4); + + case lex_greater_or_equal: + return binary_op_t(ast_op_greater_or_equal, xpath_type_boolean, 4); + + case lex_plus: + return binary_op_t(ast_op_add, xpath_type_number, 5); + + case lex_minus: + return binary_op_t(ast_op_subtract, xpath_type_number, 5); + + case lex_multiply: + return binary_op_t(ast_op_multiply, xpath_type_number, 6); + + case lex_union: + return binary_op_t(ast_op_union, xpath_type_node_set, 7); + + default: + return binary_op_t(); + } + } + }; + + xpath_ast_node* parse_expression_rec(xpath_ast_node* lhs, int limit) + { + binary_op_t op = binary_op_t::parse(_lexer); + + while (op.asttype != ast_unknown && op.precedence >= limit) + { + _lexer.next(); + + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + + xpath_ast_node* rhs = parse_path_or_unary_expression(); + if (!rhs) return 0; + + binary_op_t nextop = binary_op_t::parse(_lexer); + + while (nextop.asttype != ast_unknown && nextop.precedence > op.precedence) + { + rhs = parse_expression_rec(rhs, nextop.precedence); + if (!rhs) return 0; + + nextop = binary_op_t::parse(_lexer); + } + + if (op.asttype == ast_op_union && (lhs->rettype() != xpath_type_node_set || rhs->rettype() != xpath_type_node_set)) + return error("Union operator has to be applied to node sets"); + + lhs = alloc_node(op.asttype, op.rettype, lhs, rhs); + if (!lhs) return 0; + + op = binary_op_t::parse(_lexer); + } + + return lhs; + } + + // Expr ::= OrExpr + // OrExpr ::= AndExpr | OrExpr 'or' AndExpr + // AndExpr ::= EqualityExpr | AndExpr 'and' EqualityExpr + // EqualityExpr ::= RelationalExpr + // | EqualityExpr '=' RelationalExpr + // | EqualityExpr '!=' RelationalExpr + // RelationalExpr ::= AdditiveExpr + // | RelationalExpr '<' AdditiveExpr + // | RelationalExpr '>' AdditiveExpr + // | RelationalExpr '<=' AdditiveExpr + // | RelationalExpr '>=' AdditiveExpr + // AdditiveExpr ::= MultiplicativeExpr + // | AdditiveExpr '+' MultiplicativeExpr + // | AdditiveExpr '-' MultiplicativeExpr + // MultiplicativeExpr ::= UnaryExpr + // | MultiplicativeExpr '*' UnaryExpr + // | MultiplicativeExpr 'div' UnaryExpr + // | MultiplicativeExpr 'mod' UnaryExpr + xpath_ast_node* parse_expression(int limit = 0) + { + size_t old_depth = _depth; + + if (++_depth > xpath_ast_depth_limit) + return error_rec(); + + xpath_ast_node* n = parse_path_or_unary_expression(); + if (!n) return 0; + + n = parse_expression_rec(n, limit); + + _depth = old_depth; + + return n; + } + + xpath_parser(const char_t* query, xpath_variable_set* variables, xpath_allocator* alloc, xpath_parse_result* result): _alloc(alloc), _lexer(query), _query(query), _variables(variables), _result(result), _depth(0) + { + } + + xpath_ast_node* parse() + { + xpath_ast_node* n = parse_expression(); + if (!n) return 0; + + assert(_depth == 0); + + // check if there are unparsed tokens left + if (_lexer.current() != lex_eof) + return error("Incorrect query"); + + return n; + } + + static xpath_ast_node* parse(const char_t* query, xpath_variable_set* variables, xpath_allocator* alloc, xpath_parse_result* result) + { + xpath_parser parser(query, variables, alloc, result); + + return parser.parse(); + } + }; + + struct xpath_query_impl + { + static xpath_query_impl* create() + { + void* memory = xml_memory::allocate(sizeof(xpath_query_impl)); + if (!memory) return 0; + + return new (memory) xpath_query_impl(); + } + + static void destroy(xpath_query_impl* impl) + { + // free all allocated pages + impl->alloc.release(); + + // free allocator memory (with the first page) + xml_memory::deallocate(impl); + } + + xpath_query_impl(): root(0), alloc(&block, &oom), oom(false) + { + block.next = 0; + block.capacity = sizeof(block.data); + } + + xpath_ast_node* root; + xpath_allocator alloc; + xpath_memory_block block; + bool oom; + }; + + PUGI__FN impl::xpath_ast_node* evaluate_node_set_prepare(xpath_query_impl* impl) + { + if (!impl) return 0; + + if (impl->root->rettype() != xpath_type_node_set) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return 0; + #else + xpath_parse_result res; + res.error = "Expression does not evaluate to node set"; + + throw xpath_exception(res); + #endif + } + + return impl->root; + } +PUGI__NS_END + +namespace pugi +{ +#ifndef PUGIXML_NO_EXCEPTIONS + PUGI__FN xpath_exception::xpath_exception(const xpath_parse_result& result_): _result(result_) + { + assert(_result.error); + } + + PUGI__FN const char* xpath_exception::what() const throw() + { + return _result.error; + } + + PUGI__FN const xpath_parse_result& xpath_exception::result() const + { + return _result; + } +#endif + + PUGI__FN xpath_node::xpath_node() + { + } + + PUGI__FN xpath_node::xpath_node(const xml_node& node_): _node(node_) + { + } + + PUGI__FN xpath_node::xpath_node(const xml_attribute& attribute_, const xml_node& parent_): _node(attribute_ ? parent_ : xml_node()), _attribute(attribute_) + { + } + + PUGI__FN xml_node xpath_node::node() const + { + return _attribute ? xml_node() : _node; + } + + PUGI__FN xml_attribute xpath_node::attribute() const + { + return _attribute; + } + + PUGI__FN xml_node xpath_node::parent() const + { + return _attribute ? _node : _node.parent(); + } + + PUGI__FN static void unspecified_bool_xpath_node(xpath_node***) + { + } + + PUGI__FN xpath_node::operator xpath_node::unspecified_bool_type() const + { + return (_node || _attribute) ? unspecified_bool_xpath_node : 0; + } + + PUGI__FN bool xpath_node::operator!() const + { + return !(_node || _attribute); + } + + PUGI__FN bool xpath_node::operator==(const xpath_node& n) const + { + return _node == n._node && _attribute == n._attribute; + } + + PUGI__FN bool xpath_node::operator!=(const xpath_node& n) const + { + return _node != n._node || _attribute != n._attribute; + } + +#ifdef __BORLANDC__ + PUGI__FN bool operator&&(const xpath_node& lhs, bool rhs) + { + return (bool)lhs && rhs; + } + + PUGI__FN bool operator||(const xpath_node& lhs, bool rhs) + { + return (bool)lhs || rhs; + } +#endif + + PUGI__FN void xpath_node_set::_assign(const_iterator begin_, const_iterator end_, type_t type_) + { + assert(begin_ <= end_); + + size_t size_ = static_cast(end_ - begin_); + + // use internal buffer for 0 or 1 elements, heap buffer otherwise + xpath_node* storage = (size_ <= 1) ? _storage : static_cast(impl::xml_memory::allocate(size_ * sizeof(xpath_node))); + + if (!storage) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return; + #else + throw std::bad_alloc(); + #endif + } + + // deallocate old buffer + if (_begin != _storage) + impl::xml_memory::deallocate(_begin); + + // size check is necessary because for begin_ = end_ = nullptr, memcpy is UB + if (size_) + memcpy(storage, begin_, size_ * sizeof(xpath_node)); + + _begin = storage; + _end = storage + size_; + _type = type_; + } + +#ifdef PUGIXML_HAS_MOVE + PUGI__FN void xpath_node_set::_move(xpath_node_set& rhs) PUGIXML_NOEXCEPT + { + _type = rhs._type; + _storage[0] = rhs._storage[0]; + _begin = (rhs._begin == rhs._storage) ? _storage : rhs._begin; + _end = _begin + (rhs._end - rhs._begin); + + rhs._type = type_unsorted; + rhs._begin = rhs._storage; + rhs._end = rhs._storage; + } +#endif + + PUGI__FN xpath_node_set::xpath_node_set(): _type(type_unsorted), _begin(_storage), _end(_storage) + { + } + + PUGI__FN xpath_node_set::xpath_node_set(const_iterator begin_, const_iterator end_, type_t type_): _type(type_unsorted), _begin(_storage), _end(_storage) + { + _assign(begin_, end_, type_); + } + + PUGI__FN xpath_node_set::~xpath_node_set() + { + if (_begin != _storage) + impl::xml_memory::deallocate(_begin); + } + + PUGI__FN xpath_node_set::xpath_node_set(const xpath_node_set& ns): _type(type_unsorted), _begin(_storage), _end(_storage) + { + _assign(ns._begin, ns._end, ns._type); + } + + PUGI__FN xpath_node_set& xpath_node_set::operator=(const xpath_node_set& ns) + { + if (this == &ns) return *this; + + _assign(ns._begin, ns._end, ns._type); + + return *this; + } + +#ifdef PUGIXML_HAS_MOVE + PUGI__FN xpath_node_set::xpath_node_set(xpath_node_set&& rhs) PUGIXML_NOEXCEPT: _type(type_unsorted), _begin(_storage), _end(_storage) + { + _move(rhs); + } + + PUGI__FN xpath_node_set& xpath_node_set::operator=(xpath_node_set&& rhs) PUGIXML_NOEXCEPT + { + if (this == &rhs) return *this; + + if (_begin != _storage) + impl::xml_memory::deallocate(_begin); + + _move(rhs); + + return *this; + } +#endif + + PUGI__FN xpath_node_set::type_t xpath_node_set::type() const + { + return _type; + } + + PUGI__FN size_t xpath_node_set::size() const + { + return _end - _begin; + } + + PUGI__FN bool xpath_node_set::empty() const + { + return _begin == _end; + } + + PUGI__FN const xpath_node& xpath_node_set::operator[](size_t index) const + { + assert(index < size()); + return _begin[index]; + } + + PUGI__FN xpath_node_set::const_iterator xpath_node_set::begin() const + { + return _begin; + } + + PUGI__FN xpath_node_set::const_iterator xpath_node_set::end() const + { + return _end; + } + + PUGI__FN void xpath_node_set::sort(bool reverse) + { + _type = impl::xpath_sort(_begin, _end, _type, reverse); + } + + PUGI__FN xpath_node xpath_node_set::first() const + { + return impl::xpath_first(_begin, _end, _type); + } + + PUGI__FN xpath_parse_result::xpath_parse_result(): error("Internal error"), offset(0) + { + } + + PUGI__FN xpath_parse_result::operator bool() const + { + return error == 0; + } + + PUGI__FN const char* xpath_parse_result::description() const + { + return error ? error : "No error"; + } + + PUGI__FN xpath_variable::xpath_variable(xpath_value_type type_): _type(type_), _next(0) + { + } + + PUGI__FN const char_t* xpath_variable::name() const + { + switch (_type) + { + case xpath_type_node_set: + return static_cast(this)->name; + + case xpath_type_number: + return static_cast(this)->name; + + case xpath_type_string: + return static_cast(this)->name; + + case xpath_type_boolean: + return static_cast(this)->name; + + default: + assert(false && "Invalid variable type"); // unreachable + return 0; + } + } + + PUGI__FN xpath_value_type xpath_variable::type() const + { + return _type; + } + + PUGI__FN bool xpath_variable::get_boolean() const + { + return (_type == xpath_type_boolean) ? static_cast(this)->value : false; + } + + PUGI__FN double xpath_variable::get_number() const + { + return (_type == xpath_type_number) ? static_cast(this)->value : impl::gen_nan(); + } + + PUGI__FN const char_t* xpath_variable::get_string() const + { + const char_t* value = (_type == xpath_type_string) ? static_cast(this)->value : 0; + return value ? value : PUGIXML_TEXT(""); + } + + PUGI__FN const xpath_node_set& xpath_variable::get_node_set() const + { + return (_type == xpath_type_node_set) ? static_cast(this)->value : impl::dummy_node_set; + } + + PUGI__FN bool xpath_variable::set(bool value) + { + if (_type != xpath_type_boolean) return false; + + static_cast(this)->value = value; + return true; + } + + PUGI__FN bool xpath_variable::set(double value) + { + if (_type != xpath_type_number) return false; + + static_cast(this)->value = value; + return true; + } + + PUGI__FN bool xpath_variable::set(const char_t* value) + { + if (_type != xpath_type_string) return false; + + impl::xpath_variable_string* var = static_cast(this); + + // duplicate string + size_t size = (impl::strlength(value) + 1) * sizeof(char_t); + + char_t* copy = static_cast(impl::xml_memory::allocate(size)); + if (!copy) return false; + + memcpy(copy, value, size); + + // replace old string + if (var->value) impl::xml_memory::deallocate(var->value); + var->value = copy; + + return true; + } + + PUGI__FN bool xpath_variable::set(const xpath_node_set& value) + { + if (_type != xpath_type_node_set) return false; + + static_cast(this)->value = value; + return true; + } + + PUGI__FN xpath_variable_set::xpath_variable_set() + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + _data[i] = 0; + } + + PUGI__FN xpath_variable_set::~xpath_variable_set() + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + _destroy(_data[i]); + } + + PUGI__FN xpath_variable_set::xpath_variable_set(const xpath_variable_set& rhs) + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + _data[i] = 0; + + _assign(rhs); + } + + PUGI__FN xpath_variable_set& xpath_variable_set::operator=(const xpath_variable_set& rhs) + { + if (this == &rhs) return *this; + + _assign(rhs); + + return *this; + } + +#ifdef PUGIXML_HAS_MOVE + PUGI__FN xpath_variable_set::xpath_variable_set(xpath_variable_set&& rhs) PUGIXML_NOEXCEPT + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + { + _data[i] = rhs._data[i]; + rhs._data[i] = 0; + } + } + + PUGI__FN xpath_variable_set& xpath_variable_set::operator=(xpath_variable_set&& rhs) PUGIXML_NOEXCEPT + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + { + _destroy(_data[i]); + + _data[i] = rhs._data[i]; + rhs._data[i] = 0; + } + + return *this; + } +#endif + + PUGI__FN void xpath_variable_set::_assign(const xpath_variable_set& rhs) + { + xpath_variable_set temp; + + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + if (rhs._data[i] && !_clone(rhs._data[i], &temp._data[i])) + return; + + _swap(temp); + } + + PUGI__FN void xpath_variable_set::_swap(xpath_variable_set& rhs) + { + for (size_t i = 0; i < sizeof(_data) / sizeof(_data[0]); ++i) + { + xpath_variable* chain = _data[i]; + + _data[i] = rhs._data[i]; + rhs._data[i] = chain; + } + } + + PUGI__FN xpath_variable* xpath_variable_set::_find(const char_t* name) const + { + const size_t hash_size = sizeof(_data) / sizeof(_data[0]); + size_t hash = impl::hash_string(name) % hash_size; + + // look for existing variable + for (xpath_variable* var = _data[hash]; var; var = var->_next) + if (impl::strequal(var->name(), name)) + return var; + + return 0; + } + + PUGI__FN bool xpath_variable_set::_clone(xpath_variable* var, xpath_variable** out_result) + { + xpath_variable* last = 0; + + while (var) + { + // allocate storage for new variable + xpath_variable* nvar = impl::new_xpath_variable(var->_type, var->name()); + if (!nvar) return false; + + // link the variable to the result immediately to handle failures gracefully + if (last) + last->_next = nvar; + else + *out_result = nvar; + + last = nvar; + + // copy the value; this can fail due to out-of-memory conditions + if (!impl::copy_xpath_variable(nvar, var)) return false; + + var = var->_next; + } + + return true; + } + + PUGI__FN void xpath_variable_set::_destroy(xpath_variable* var) + { + while (var) + { + xpath_variable* next = var->_next; + + impl::delete_xpath_variable(var->_type, var); + + var = next; + } + } + + PUGI__FN xpath_variable* xpath_variable_set::add(const char_t* name, xpath_value_type type) + { + const size_t hash_size = sizeof(_data) / sizeof(_data[0]); + size_t hash = impl::hash_string(name) % hash_size; + + // look for existing variable + for (xpath_variable* var = _data[hash]; var; var = var->_next) + if (impl::strequal(var->name(), name)) + return var->type() == type ? var : 0; + + // add new variable + xpath_variable* result = impl::new_xpath_variable(type, name); + + if (result) + { + result->_next = _data[hash]; + + _data[hash] = result; + } + + return result; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, bool value) + { + xpath_variable* var = add(name, xpath_type_boolean); + return var ? var->set(value) : false; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, double value) + { + xpath_variable* var = add(name, xpath_type_number); + return var ? var->set(value) : false; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, const char_t* value) + { + xpath_variable* var = add(name, xpath_type_string); + return var ? var->set(value) : false; + } + + PUGI__FN bool xpath_variable_set::set(const char_t* name, const xpath_node_set& value) + { + xpath_variable* var = add(name, xpath_type_node_set); + return var ? var->set(value) : false; + } + + PUGI__FN xpath_variable* xpath_variable_set::get(const char_t* name) + { + return _find(name); + } + + PUGI__FN const xpath_variable* xpath_variable_set::get(const char_t* name) const + { + return _find(name); + } + + PUGI__FN xpath_query::xpath_query(const char_t* query, xpath_variable_set* variables): _impl(0) + { + impl::xpath_query_impl* qimpl = impl::xpath_query_impl::create(); + + if (!qimpl) + { + #ifdef PUGIXML_NO_EXCEPTIONS + _result.error = "Out of memory"; + #else + throw std::bad_alloc(); + #endif + } + else + { + using impl::auto_deleter; // MSVC7 workaround + auto_deleter impl(qimpl, impl::xpath_query_impl::destroy); + + qimpl->root = impl::xpath_parser::parse(query, variables, &qimpl->alloc, &_result); + + if (qimpl->root) + { + qimpl->root->optimize(&qimpl->alloc); + + _impl = impl.release(); + _result.error = 0; + } + else + { + #ifdef PUGIXML_NO_EXCEPTIONS + if (qimpl->oom) _result.error = "Out of memory"; + #else + if (qimpl->oom) throw std::bad_alloc(); + throw xpath_exception(_result); + #endif + } + } + } + + PUGI__FN xpath_query::xpath_query(): _impl(0) + { + } + + PUGI__FN xpath_query::~xpath_query() + { + if (_impl) + impl::xpath_query_impl::destroy(static_cast(_impl)); + } + +#ifdef PUGIXML_HAS_MOVE + PUGI__FN xpath_query::xpath_query(xpath_query&& rhs) PUGIXML_NOEXCEPT + { + _impl = rhs._impl; + _result = rhs._result; + rhs._impl = 0; + rhs._result = xpath_parse_result(); + } + + PUGI__FN xpath_query& xpath_query::operator=(xpath_query&& rhs) PUGIXML_NOEXCEPT + { + if (this == &rhs) return *this; + + if (_impl) + impl::xpath_query_impl::destroy(static_cast(_impl)); + + _impl = rhs._impl; + _result = rhs._result; + rhs._impl = 0; + rhs._result = xpath_parse_result(); + + return *this; + } +#endif + + PUGI__FN xpath_value_type xpath_query::return_type() const + { + if (!_impl) return xpath_type_none; + + return static_cast(_impl)->root->rettype(); + } + + PUGI__FN bool xpath_query::evaluate_boolean(const xpath_node& n) const + { + if (!_impl) return false; + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + bool r = static_cast(_impl)->root->eval_boolean(c, sd.stack); + + if (sd.oom) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return false; + #else + throw std::bad_alloc(); + #endif + } + + return r; + } + + PUGI__FN double xpath_query::evaluate_number(const xpath_node& n) const + { + if (!_impl) return impl::gen_nan(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + double r = static_cast(_impl)->root->eval_number(c, sd.stack); + + if (sd.oom) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return impl::gen_nan(); + #else + throw std::bad_alloc(); + #endif + } + + return r; + } + +#ifndef PUGIXML_NO_STL + PUGI__FN string_t xpath_query::evaluate_string(const xpath_node& n) const + { + if (!_impl) return string_t(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + impl::xpath_string r = static_cast(_impl)->root->eval_string(c, sd.stack); + + if (sd.oom) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return string_t(); + #else + throw std::bad_alloc(); + #endif + } + + return string_t(r.c_str(), r.length()); + } +#endif + + PUGI__FN size_t xpath_query::evaluate_string(char_t* buffer, size_t capacity, const xpath_node& n) const + { + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + impl::xpath_string r = _impl ? static_cast(_impl)->root->eval_string(c, sd.stack) : impl::xpath_string(); + + if (sd.oom) + { + #ifdef PUGIXML_NO_EXCEPTIONS + r = impl::xpath_string(); + #else + throw std::bad_alloc(); + #endif + } + + size_t full_size = r.length() + 1; + + if (capacity > 0) + { + size_t size = (full_size < capacity) ? full_size : capacity; + assert(size > 0); + + memcpy(buffer, r.c_str(), (size - 1) * sizeof(char_t)); + buffer[size - 1] = 0; + } + + return full_size; + } + + PUGI__FN xpath_node_set xpath_query::evaluate_node_set(const xpath_node& n) const + { + impl::xpath_ast_node* root = impl::evaluate_node_set_prepare(static_cast(_impl)); + if (!root) return xpath_node_set(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + impl::xpath_node_set_raw r = root->eval_node_set(c, sd.stack, impl::nodeset_eval_all); + + if (sd.oom) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return xpath_node_set(); + #else + throw std::bad_alloc(); + #endif + } + + return xpath_node_set(r.begin(), r.end(), r.type()); + } + + PUGI__FN xpath_node xpath_query::evaluate_node(const xpath_node& n) const + { + impl::xpath_ast_node* root = impl::evaluate_node_set_prepare(static_cast(_impl)); + if (!root) return xpath_node(); + + impl::xpath_context c(n, 1, 1); + impl::xpath_stack_data sd; + + impl::xpath_node_set_raw r = root->eval_node_set(c, sd.stack, impl::nodeset_eval_first); + + if (sd.oom) + { + #ifdef PUGIXML_NO_EXCEPTIONS + return xpath_node(); + #else + throw std::bad_alloc(); + #endif + } + + return r.first(); + } + + PUGI__FN const xpath_parse_result& xpath_query::result() const + { + return _result; + } + + PUGI__FN static void unspecified_bool_xpath_query(xpath_query***) + { + } + + PUGI__FN xpath_query::operator xpath_query::unspecified_bool_type() const + { + return _impl ? unspecified_bool_xpath_query : 0; + } + + PUGI__FN bool xpath_query::operator!() const + { + return !_impl; + } + + PUGI__FN xpath_node xml_node::select_node(const char_t* query, xpath_variable_set* variables) const + { + xpath_query q(query, variables); + return q.evaluate_node(*this); + } + + PUGI__FN xpath_node xml_node::select_node(const xpath_query& query) const + { + return query.evaluate_node(*this); + } + + PUGI__FN xpath_node_set xml_node::select_nodes(const char_t* query, xpath_variable_set* variables) const + { + xpath_query q(query, variables); + return q.evaluate_node_set(*this); + } + + PUGI__FN xpath_node_set xml_node::select_nodes(const xpath_query& query) const + { + return query.evaluate_node_set(*this); + } + + PUGI__FN xpath_node xml_node::select_single_node(const char_t* query, xpath_variable_set* variables) const + { + xpath_query q(query, variables); + return q.evaluate_node(*this); + } + + PUGI__FN xpath_node xml_node::select_single_node(const xpath_query& query) const + { + return query.evaluate_node(*this); + } +} + +#endif + +#ifdef __BORLANDC__ +# pragma option pop +#endif + +// Intel C++ does not properly keep warning state for function templates, +// so popping warning state at the end of translation unit leads to warnings in the middle. +#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) +# pragma warning(pop) +#endif + +#if defined(_MSC_VER) && defined(__c2__) +# pragma clang diagnostic pop +#endif + +// Undefine all local macros (makes sure we're not leaking macros in header-only mode) +#undef PUGI__NO_INLINE +#undef PUGI__UNLIKELY +#undef PUGI__STATIC_ASSERT +#undef PUGI__DMC_VOLATILE +#undef PUGI__UNSIGNED_OVERFLOW +#undef PUGI__MSVC_CRT_VERSION +#undef PUGI__SNPRINTF +#undef PUGI__NS_BEGIN +#undef PUGI__NS_END +#undef PUGI__FN +#undef PUGI__FN_NO_INLINE +#undef PUGI__GETHEADER_IMPL +#undef PUGI__GETPAGE_IMPL +#undef PUGI__GETPAGE +#undef PUGI__NODETYPE +#undef PUGI__IS_CHARTYPE_IMPL +#undef PUGI__IS_CHARTYPE +#undef PUGI__IS_CHARTYPEX +#undef PUGI__ENDSWITH +#undef PUGI__SKIPWS +#undef PUGI__OPTSET +#undef PUGI__PUSHNODE +#undef PUGI__POPNODE +#undef PUGI__SCANFOR +#undef PUGI__SCANWHILE +#undef PUGI__SCANWHILE_UNROLL +#undef PUGI__ENDSEG +#undef PUGI__THROW_ERROR +#undef PUGI__CHECK_ERROR + +#endif + +/** + * Copyright (c) 2006-2022 Arseny Kapoulkine + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ diff --git a/src/ProtonVPN.InstallActions/pugixml/pugixml.hpp b/src/ProtonVPN.InstallActions/pugixml/pugixml.hpp new file mode 100644 index 000000000..050df154c --- /dev/null +++ b/src/ProtonVPN.InstallActions/pugixml/pugixml.hpp @@ -0,0 +1,1506 @@ +/** + * pugixml parser - version 1.13 + * -------------------------------------------------------- + * Copyright (C) 2006-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at https://pugixml.org/ + * + * This library is distributed under the MIT License. See notice at the end + * of this file. + * + * This work is based on the pugxml parser, which is: + * Copyright (C) 2003, by Kristen Wegner (kristen@tima.net) + */ + +// Define version macro; evaluates to major * 1000 + minor * 10 + patch so that it's safe to use in less-than comparisons +// Note: pugixml used major * 100 + minor * 10 + patch format up until 1.9 (which had version identifier 190); starting from pugixml 1.10, the minor version number is two digits +#ifndef PUGIXML_VERSION +# define PUGIXML_VERSION 1130 // 1.13 +#endif + +// Include user configuration file (this can define various configuration macros) +#include "pugiconfig.hpp" + +#ifndef HEADER_PUGIXML_HPP +#define HEADER_PUGIXML_HPP + +// Include stddef.h for size_t and ptrdiff_t +#include + +// Include exception header for XPath +#if !defined(PUGIXML_NO_XPATH) && !defined(PUGIXML_NO_EXCEPTIONS) +# include +#endif + +// Include STL headers +#ifndef PUGIXML_NO_STL +# include +# include +# include +#endif + +// Macro for deprecated features +#ifndef PUGIXML_DEPRECATED +# if defined(__GNUC__) +# define PUGIXML_DEPRECATED __attribute__((deprecated)) +# elif defined(_MSC_VER) && _MSC_VER >= 1300 +# define PUGIXML_DEPRECATED __declspec(deprecated) +# else +# define PUGIXML_DEPRECATED +# endif +#endif + +// If no API is defined, assume default +#ifndef PUGIXML_API +# define PUGIXML_API +#endif + +// If no API for classes is defined, assume default +#ifndef PUGIXML_CLASS +# define PUGIXML_CLASS PUGIXML_API +#endif + +// If no API for functions is defined, assume default +#ifndef PUGIXML_FUNCTION +# define PUGIXML_FUNCTION PUGIXML_API +#endif + +// If the platform is known to have long long support, enable long long functions +#ifndef PUGIXML_HAS_LONG_LONG +# if __cplusplus >= 201103 +# define PUGIXML_HAS_LONG_LONG +# elif defined(_MSC_VER) && _MSC_VER >= 1400 +# define PUGIXML_HAS_LONG_LONG +# endif +#endif + +// If the platform is known to have move semantics support, compile move ctor/operator implementation +#ifndef PUGIXML_HAS_MOVE +# if __cplusplus >= 201103 +# define PUGIXML_HAS_MOVE +# elif defined(_MSC_VER) && _MSC_VER >= 1600 +# define PUGIXML_HAS_MOVE +# endif +#endif + +// If C++ is 2011 or higher, add 'noexcept' specifiers +#ifndef PUGIXML_NOEXCEPT +# if __cplusplus >= 201103 +# define PUGIXML_NOEXCEPT noexcept +# elif defined(_MSC_VER) && _MSC_VER >= 1900 +# define PUGIXML_NOEXCEPT noexcept +# else +# define PUGIXML_NOEXCEPT +# endif +#endif + +// Some functions can not be noexcept in compact mode +#ifdef PUGIXML_COMPACT +# define PUGIXML_NOEXCEPT_IF_NOT_COMPACT +#else +# define PUGIXML_NOEXCEPT_IF_NOT_COMPACT PUGIXML_NOEXCEPT +#endif + +// If C++ is 2011 or higher, add 'override' qualifiers +#ifndef PUGIXML_OVERRIDE +# if __cplusplus >= 201103 +# define PUGIXML_OVERRIDE override +# elif defined(_MSC_VER) && _MSC_VER >= 1700 +# define PUGIXML_OVERRIDE override +# else +# define PUGIXML_OVERRIDE +# endif +#endif + +// If C++ is 2011 or higher, use 'nullptr' +#ifndef PUGIXML_NULL +# if __cplusplus >= 201103 +# define PUGIXML_NULL nullptr +# elif defined(_MSC_VER) && _MSC_VER >= 1600 +# define PUGIXML_NULL nullptr +# else +# define PUGIXML_NULL 0 +# endif +#endif + +// Character interface macros +#ifdef PUGIXML_WCHAR_MODE +# define PUGIXML_TEXT(t) L ## t +# define PUGIXML_CHAR wchar_t +#else +# define PUGIXML_TEXT(t) t +# define PUGIXML_CHAR char +#endif + +namespace pugi +{ + // Character type used for all internal storage and operations; depends on PUGIXML_WCHAR_MODE + typedef PUGIXML_CHAR char_t; + +#ifndef PUGIXML_NO_STL + // String type used for operations that work with STL string; depends on PUGIXML_WCHAR_MODE + typedef std::basic_string, std::allocator > string_t; +#endif +} + +// The PugiXML namespace +namespace pugi +{ + // Tree node types + enum xml_node_type + { + node_null, // Empty (null) node handle + node_document, // A document tree's absolute root + node_element, // Element tag, i.e. '' + node_pcdata, // Plain character data, i.e. 'text' + node_cdata, // Character data, i.e. '' + node_comment, // Comment tag, i.e. '' + node_pi, // Processing instruction, i.e. '' + node_declaration, // Document declaration, i.e. '' + node_doctype // Document type declaration, i.e. '' + }; + + // Parsing options + + // Minimal parsing mode (equivalent to turning all other flags off). + // Only elements and PCDATA sections are added to the DOM tree, no text conversions are performed. + const unsigned int parse_minimal = 0x0000; + + // This flag determines if processing instructions (node_pi) are added to the DOM tree. This flag is off by default. + const unsigned int parse_pi = 0x0001; + + // This flag determines if comments (node_comment) are added to the DOM tree. This flag is off by default. + const unsigned int parse_comments = 0x0002; + + // This flag determines if CDATA sections (node_cdata) are added to the DOM tree. This flag is on by default. + const unsigned int parse_cdata = 0x0004; + + // This flag determines if plain character data (node_pcdata) that consist only of whitespace are added to the DOM tree. + // This flag is off by default; turning it on usually results in slower parsing and more memory consumption. + const unsigned int parse_ws_pcdata = 0x0008; + + // This flag determines if character and entity references are expanded during parsing. This flag is on by default. + const unsigned int parse_escapes = 0x0010; + + // This flag determines if EOL characters are normalized (converted to #xA) during parsing. This flag is on by default. + const unsigned int parse_eol = 0x0020; + + // This flag determines if attribute values are normalized using CDATA normalization rules during parsing. This flag is on by default. + const unsigned int parse_wconv_attribute = 0x0040; + + // This flag determines if attribute values are normalized using NMTOKENS normalization rules during parsing. This flag is off by default. + const unsigned int parse_wnorm_attribute = 0x0080; + + // This flag determines if document declaration (node_declaration) is added to the DOM tree. This flag is off by default. + const unsigned int parse_declaration = 0x0100; + + // This flag determines if document type declaration (node_doctype) is added to the DOM tree. This flag is off by default. + const unsigned int parse_doctype = 0x0200; + + // This flag determines if plain character data (node_pcdata) that is the only child of the parent node and that consists only + // of whitespace is added to the DOM tree. + // This flag is off by default; turning it on may result in slower parsing and more memory consumption. + const unsigned int parse_ws_pcdata_single = 0x0400; + + // This flag determines if leading and trailing whitespace is to be removed from plain character data. This flag is off by default. + const unsigned int parse_trim_pcdata = 0x0800; + + // This flag determines if plain character data that does not have a parent node is added to the DOM tree, and if an empty document + // is a valid document. This flag is off by default. + const unsigned int parse_fragment = 0x1000; + + // This flag determines if plain character data is be stored in the parent element's value. This significantly changes the structure of + // the document; this flag is only recommended for parsing documents with many PCDATA nodes in memory-constrained environments. + // This flag is off by default. + const unsigned int parse_embed_pcdata = 0x2000; + + // The default parsing mode. + // Elements, PCDATA and CDATA sections are added to the DOM tree, character/reference entities are expanded, + // End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules. + const unsigned int parse_default = parse_cdata | parse_escapes | parse_wconv_attribute | parse_eol; + + // The full parsing mode. + // Nodes of all types are added to the DOM tree, character/reference entities are expanded, + // End-of-Line characters are normalized, attribute values are normalized using CDATA normalization rules. + const unsigned int parse_full = parse_default | parse_pi | parse_comments | parse_declaration | parse_doctype; + + // These flags determine the encoding of input data for XML document + enum xml_encoding + { + encoding_auto, // Auto-detect input encoding using BOM or < / class xml_object_range + { + public: + typedef It const_iterator; + typedef It iterator; + + xml_object_range(It b, It e): _begin(b), _end(e) + { + } + + It begin() const { return _begin; } + It end() const { return _end; } + + bool empty() const { return _begin == _end; } + + private: + It _begin, _end; + }; + + // Writer interface for node printing (see xml_node::print) + class PUGIXML_CLASS xml_writer + { + public: + virtual ~xml_writer() {} + + // Write memory chunk into stream/file/whatever + virtual void write(const void* data, size_t size) = 0; + }; + + // xml_writer implementation for FILE* + class PUGIXML_CLASS xml_writer_file: public xml_writer + { + public: + // Construct writer from a FILE* object; void* is used to avoid header dependencies on stdio + xml_writer_file(void* file); + + virtual void write(const void* data, size_t size) PUGIXML_OVERRIDE; + + private: + void* file; + }; + + #ifndef PUGIXML_NO_STL + // xml_writer implementation for streams + class PUGIXML_CLASS xml_writer_stream: public xml_writer + { + public: + // Construct writer from an output stream object + xml_writer_stream(std::basic_ostream >& stream); + xml_writer_stream(std::basic_ostream >& stream); + + virtual void write(const void* data, size_t size) PUGIXML_OVERRIDE; + + private: + std::basic_ostream >* narrow_stream; + std::basic_ostream >* wide_stream; + }; + #endif + + // A light-weight handle for manipulating attributes in DOM tree + class PUGIXML_CLASS xml_attribute + { + friend class xml_attribute_iterator; + friend class xml_node; + + private: + xml_attribute_struct* _attr; + + typedef void (*unspecified_bool_type)(xml_attribute***); + + public: + // Default constructor. Constructs an empty attribute. + xml_attribute(); + + // Constructs attribute from internal pointer + explicit xml_attribute(xml_attribute_struct* attr); + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Comparison operators (compares wrapped attribute pointers) + bool operator==(const xml_attribute& r) const; + bool operator!=(const xml_attribute& r) const; + bool operator<(const xml_attribute& r) const; + bool operator>(const xml_attribute& r) const; + bool operator<=(const xml_attribute& r) const; + bool operator>=(const xml_attribute& r) const; + + // Check if attribute is empty + bool empty() const; + + // Get attribute name/value, or "" if attribute is empty + const char_t* name() const; + const char_t* value() const; + + // Get attribute value, or the default value if attribute is empty + const char_t* as_string(const char_t* def = PUGIXML_TEXT("")) const; + + // Get attribute value as a number, or the default value if conversion did not succeed or attribute is empty + int as_int(int def = 0) const; + unsigned int as_uint(unsigned int def = 0) const; + double as_double(double def = 0) const; + float as_float(float def = 0) const; + + #ifdef PUGIXML_HAS_LONG_LONG + long long as_llong(long long def = 0) const; + unsigned long long as_ullong(unsigned long long def = 0) const; + #endif + + // Get attribute value as bool (returns true if first character is in '1tTyY' set), or the default value if attribute is empty + bool as_bool(bool def = false) const; + + // Set attribute name/value (returns false if attribute is empty or there is not enough memory) + bool set_name(const char_t* rhs); + bool set_value(const char_t* rhs, size_t sz); + bool set_value(const char_t* rhs); + + // Set attribute value with type conversion (numbers are converted to strings, boolean is converted to "true"/"false") + bool set_value(int rhs); + bool set_value(unsigned int rhs); + bool set_value(long rhs); + bool set_value(unsigned long rhs); + bool set_value(double rhs); + bool set_value(double rhs, int precision); + bool set_value(float rhs); + bool set_value(float rhs, int precision); + bool set_value(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + bool set_value(long long rhs); + bool set_value(unsigned long long rhs); + #endif + + // Set attribute value (equivalent to set_value without error checking) + xml_attribute& operator=(const char_t* rhs); + xml_attribute& operator=(int rhs); + xml_attribute& operator=(unsigned int rhs); + xml_attribute& operator=(long rhs); + xml_attribute& operator=(unsigned long rhs); + xml_attribute& operator=(double rhs); + xml_attribute& operator=(float rhs); + xml_attribute& operator=(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + xml_attribute& operator=(long long rhs); + xml_attribute& operator=(unsigned long long rhs); + #endif + + // Get next/previous attribute in the attribute list of the parent node + xml_attribute next_attribute() const; + xml_attribute previous_attribute() const; + + // Get hash value (unique for handles to the same object) + size_t hash_value() const; + + // Get internal pointer + xml_attribute_struct* internal_object() const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xml_attribute& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xml_attribute& lhs, bool rhs); +#endif + + // A light-weight handle for manipulating nodes in DOM tree + class PUGIXML_CLASS xml_node + { + friend class xml_attribute_iterator; + friend class xml_node_iterator; + friend class xml_named_node_iterator; + + protected: + xml_node_struct* _root; + + typedef void (*unspecified_bool_type)(xml_node***); + + public: + // Default constructor. Constructs an empty node. + xml_node(); + + // Constructs node from internal pointer + explicit xml_node(xml_node_struct* p); + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Comparison operators (compares wrapped node pointers) + bool operator==(const xml_node& r) const; + bool operator!=(const xml_node& r) const; + bool operator<(const xml_node& r) const; + bool operator>(const xml_node& r) const; + bool operator<=(const xml_node& r) const; + bool operator>=(const xml_node& r) const; + + // Check if node is empty. + bool empty() const; + + // Get node type + xml_node_type type() const; + + // Get node name, or "" if node is empty or it has no name + const char_t* name() const; + + // Get node value, or "" if node is empty or it has no value + // Note: For text node.value() does not return "text"! Use child_value() or text() methods to access text inside nodes. + const char_t* value() const; + + // Get attribute list + xml_attribute first_attribute() const; + xml_attribute last_attribute() const; + + // Get children list + xml_node first_child() const; + xml_node last_child() const; + + // Get next/previous sibling in the children list of the parent node + xml_node next_sibling() const; + xml_node previous_sibling() const; + + // Get parent node + xml_node parent() const; + + // Get root of DOM tree this node belongs to + xml_node root() const; + + // Get text object for the current node + xml_text text() const; + + // Get child, attribute or next/previous sibling with the specified name + xml_node child(const char_t* name) const; + xml_attribute attribute(const char_t* name) const; + xml_node next_sibling(const char_t* name) const; + xml_node previous_sibling(const char_t* name) const; + + // Get attribute, starting the search from a hint (and updating hint so that searching for a sequence of attributes is fast) + xml_attribute attribute(const char_t* name, xml_attribute& hint) const; + + // Get child value of current node; that is, value of the first child node of type PCDATA/CDATA + const char_t* child_value() const; + + // Get child value of child with specified name. Equivalent to child(name).child_value(). + const char_t* child_value(const char_t* name) const; + + // Set node name/value (returns false if node is empty, there is not enough memory, or node can not have name/value) + bool set_name(const char_t* rhs); + bool set_value(const char_t* rhs, size_t sz); + bool set_value(const char_t* rhs); + + // Add attribute with specified name. Returns added attribute, or empty attribute on errors. + xml_attribute append_attribute(const char_t* name); + xml_attribute prepend_attribute(const char_t* name); + xml_attribute insert_attribute_after(const char_t* name, const xml_attribute& attr); + xml_attribute insert_attribute_before(const char_t* name, const xml_attribute& attr); + + // Add a copy of the specified attribute. Returns added attribute, or empty attribute on errors. + xml_attribute append_copy(const xml_attribute& proto); + xml_attribute prepend_copy(const xml_attribute& proto); + xml_attribute insert_copy_after(const xml_attribute& proto, const xml_attribute& attr); + xml_attribute insert_copy_before(const xml_attribute& proto, const xml_attribute& attr); + + // Add child node with specified type. Returns added node, or empty node on errors. + xml_node append_child(xml_node_type type = node_element); + xml_node prepend_child(xml_node_type type = node_element); + xml_node insert_child_after(xml_node_type type, const xml_node& node); + xml_node insert_child_before(xml_node_type type, const xml_node& node); + + // Add child element with specified name. Returns added node, or empty node on errors. + xml_node append_child(const char_t* name); + xml_node prepend_child(const char_t* name); + xml_node insert_child_after(const char_t* name, const xml_node& node); + xml_node insert_child_before(const char_t* name, const xml_node& node); + + // Add a copy of the specified node as a child. Returns added node, or empty node on errors. + xml_node append_copy(const xml_node& proto); + xml_node prepend_copy(const xml_node& proto); + xml_node insert_copy_after(const xml_node& proto, const xml_node& node); + xml_node insert_copy_before(const xml_node& proto, const xml_node& node); + + // Move the specified node to become a child of this node. Returns moved node, or empty node on errors. + xml_node append_move(const xml_node& moved); + xml_node prepend_move(const xml_node& moved); + xml_node insert_move_after(const xml_node& moved, const xml_node& node); + xml_node insert_move_before(const xml_node& moved, const xml_node& node); + + // Remove specified attribute + bool remove_attribute(const xml_attribute& a); + bool remove_attribute(const char_t* name); + + // Remove all attributes + bool remove_attributes(); + + // Remove specified child + bool remove_child(const xml_node& n); + bool remove_child(const char_t* name); + + // Remove all children + bool remove_children(); + + // Parses buffer as an XML document fragment and appends all nodes as children of the current node. + // Copies/converts the buffer, so it may be deleted or changed after the function returns. + // Note: append_buffer allocates memory that has the lifetime of the owning document; removing the appended nodes does not immediately reclaim that memory. + xml_parse_result append_buffer(const void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Find attribute using predicate. Returns first attribute for which predicate returned true. + template xml_attribute find_attribute(Predicate pred) const + { + if (!_root) return xml_attribute(); + + for (xml_attribute attrib = first_attribute(); attrib; attrib = attrib.next_attribute()) + if (pred(attrib)) + return attrib; + + return xml_attribute(); + } + + // Find child node using predicate. Returns first child for which predicate returned true. + template xml_node find_child(Predicate pred) const + { + if (!_root) return xml_node(); + + for (xml_node node = first_child(); node; node = node.next_sibling()) + if (pred(node)) + return node; + + return xml_node(); + } + + // Find node from subtree using predicate. Returns first node from subtree (depth-first), for which predicate returned true. + template xml_node find_node(Predicate pred) const + { + if (!_root) return xml_node(); + + xml_node cur = first_child(); + + while (cur._root && cur._root != _root) + { + if (pred(cur)) return cur; + + if (cur.first_child()) cur = cur.first_child(); + else if (cur.next_sibling()) cur = cur.next_sibling(); + else + { + while (!cur.next_sibling() && cur._root != _root) cur = cur.parent(); + + if (cur._root != _root) cur = cur.next_sibling(); + } + } + + return xml_node(); + } + + // Find child node by attribute name/value + xml_node find_child_by_attribute(const char_t* name, const char_t* attr_name, const char_t* attr_value) const; + xml_node find_child_by_attribute(const char_t* attr_name, const char_t* attr_value) const; + + #ifndef PUGIXML_NO_STL + // Get the absolute node path from root as a text string. + string_t path(char_t delimiter = '/') const; + #endif + + // Search for a node by path consisting of node names and . or .. elements. + xml_node first_element_by_path(const char_t* path, char_t delimiter = '/') const; + + // Recursively traverse subtree with xml_tree_walker + bool traverse(xml_tree_walker& walker); + + #ifndef PUGIXML_NO_XPATH + // Select single node by evaluating XPath query. Returns first node from the resulting node set. + xpath_node select_node(const char_t* query, xpath_variable_set* variables = PUGIXML_NULL) const; + xpath_node select_node(const xpath_query& query) const; + + // Select node set by evaluating XPath query + xpath_node_set select_nodes(const char_t* query, xpath_variable_set* variables = PUGIXML_NULL) const; + xpath_node_set select_nodes(const xpath_query& query) const; + + // (deprecated: use select_node instead) Select single node by evaluating XPath query. + PUGIXML_DEPRECATED xpath_node select_single_node(const char_t* query, xpath_variable_set* variables = PUGIXML_NULL) const; + PUGIXML_DEPRECATED xpath_node select_single_node(const xpath_query& query) const; + + #endif + + // Print subtree using a writer object + void print(xml_writer& writer, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto, unsigned int depth = 0) const; + + #ifndef PUGIXML_NO_STL + // Print subtree to stream + void print(std::basic_ostream >& os, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto, unsigned int depth = 0) const; + void print(std::basic_ostream >& os, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, unsigned int depth = 0) const; + #endif + + // Child nodes iterators + typedef xml_node_iterator iterator; + + iterator begin() const; + iterator end() const; + + // Attribute iterators + typedef xml_attribute_iterator attribute_iterator; + + attribute_iterator attributes_begin() const; + attribute_iterator attributes_end() const; + + // Range-based for support + xml_object_range children() const; + xml_object_range children(const char_t* name) const; + xml_object_range attributes() const; + + // Get node offset in parsed file/string (in char_t units) for debugging purposes + ptrdiff_t offset_debug() const; + + // Get hash value (unique for handles to the same object) + size_t hash_value() const; + + // Get internal pointer + xml_node_struct* internal_object() const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xml_node& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xml_node& lhs, bool rhs); +#endif + + // A helper for working with text inside PCDATA nodes + class PUGIXML_CLASS xml_text + { + friend class xml_node; + + xml_node_struct* _root; + + typedef void (*unspecified_bool_type)(xml_text***); + + explicit xml_text(xml_node_struct* root); + + xml_node_struct* _data_new(); + xml_node_struct* _data() const; + + public: + // Default constructor. Constructs an empty object. + xml_text(); + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Check if text object is empty + bool empty() const; + + // Get text, or "" if object is empty + const char_t* get() const; + + // Get text, or the default value if object is empty + const char_t* as_string(const char_t* def = PUGIXML_TEXT("")) const; + + // Get text as a number, or the default value if conversion did not succeed or object is empty + int as_int(int def = 0) const; + unsigned int as_uint(unsigned int def = 0) const; + double as_double(double def = 0) const; + float as_float(float def = 0) const; + + #ifdef PUGIXML_HAS_LONG_LONG + long long as_llong(long long def = 0) const; + unsigned long long as_ullong(unsigned long long def = 0) const; + #endif + + // Get text as bool (returns true if first character is in '1tTyY' set), or the default value if object is empty + bool as_bool(bool def = false) const; + + // Set text (returns false if object is empty or there is not enough memory) + bool set(const char_t* rhs, size_t sz); + bool set(const char_t* rhs); + + // Set text with type conversion (numbers are converted to strings, boolean is converted to "true"/"false") + bool set(int rhs); + bool set(unsigned int rhs); + bool set(long rhs); + bool set(unsigned long rhs); + bool set(double rhs); + bool set(double rhs, int precision); + bool set(float rhs); + bool set(float rhs, int precision); + bool set(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + bool set(long long rhs); + bool set(unsigned long long rhs); + #endif + + // Set text (equivalent to set without error checking) + xml_text& operator=(const char_t* rhs); + xml_text& operator=(int rhs); + xml_text& operator=(unsigned int rhs); + xml_text& operator=(long rhs); + xml_text& operator=(unsigned long rhs); + xml_text& operator=(double rhs); + xml_text& operator=(float rhs); + xml_text& operator=(bool rhs); + + #ifdef PUGIXML_HAS_LONG_LONG + xml_text& operator=(long long rhs); + xml_text& operator=(unsigned long long rhs); + #endif + + // Get the data node (node_pcdata or node_cdata) for this object + xml_node data() const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xml_text& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xml_text& lhs, bool rhs); +#endif + + // Child node iterator (a bidirectional iterator over a collection of xml_node) + class PUGIXML_CLASS xml_node_iterator + { + friend class xml_node; + + private: + mutable xml_node _wrap; + xml_node _parent; + + xml_node_iterator(xml_node_struct* ref, xml_node_struct* parent); + + public: + // Iterator traits + typedef ptrdiff_t difference_type; + typedef xml_node value_type; + typedef xml_node* pointer; + typedef xml_node& reference; + + #ifndef PUGIXML_NO_STL + typedef std::bidirectional_iterator_tag iterator_category; + #endif + + // Default constructor + xml_node_iterator(); + + // Construct an iterator which points to the specified node + xml_node_iterator(const xml_node& node); + + // Iterator operators + bool operator==(const xml_node_iterator& rhs) const; + bool operator!=(const xml_node_iterator& rhs) const; + + xml_node& operator*() const; + xml_node* operator->() const; + + xml_node_iterator& operator++(); + xml_node_iterator operator++(int); + + xml_node_iterator& operator--(); + xml_node_iterator operator--(int); + }; + + // Attribute iterator (a bidirectional iterator over a collection of xml_attribute) + class PUGIXML_CLASS xml_attribute_iterator + { + friend class xml_node; + + private: + mutable xml_attribute _wrap; + xml_node _parent; + + xml_attribute_iterator(xml_attribute_struct* ref, xml_node_struct* parent); + + public: + // Iterator traits + typedef ptrdiff_t difference_type; + typedef xml_attribute value_type; + typedef xml_attribute* pointer; + typedef xml_attribute& reference; + + #ifndef PUGIXML_NO_STL + typedef std::bidirectional_iterator_tag iterator_category; + #endif + + // Default constructor + xml_attribute_iterator(); + + // Construct an iterator which points to the specified attribute + xml_attribute_iterator(const xml_attribute& attr, const xml_node& parent); + + // Iterator operators + bool operator==(const xml_attribute_iterator& rhs) const; + bool operator!=(const xml_attribute_iterator& rhs) const; + + xml_attribute& operator*() const; + xml_attribute* operator->() const; + + xml_attribute_iterator& operator++(); + xml_attribute_iterator operator++(int); + + xml_attribute_iterator& operator--(); + xml_attribute_iterator operator--(int); + }; + + // Named node range helper + class PUGIXML_CLASS xml_named_node_iterator + { + friend class xml_node; + + public: + // Iterator traits + typedef ptrdiff_t difference_type; + typedef xml_node value_type; + typedef xml_node* pointer; + typedef xml_node& reference; + + #ifndef PUGIXML_NO_STL + typedef std::bidirectional_iterator_tag iterator_category; + #endif + + // Default constructor + xml_named_node_iterator(); + + // Construct an iterator which points to the specified node + xml_named_node_iterator(const xml_node& node, const char_t* name); + + // Iterator operators + bool operator==(const xml_named_node_iterator& rhs) const; + bool operator!=(const xml_named_node_iterator& rhs) const; + + xml_node& operator*() const; + xml_node* operator->() const; + + xml_named_node_iterator& operator++(); + xml_named_node_iterator operator++(int); + + xml_named_node_iterator& operator--(); + xml_named_node_iterator operator--(int); + + private: + mutable xml_node _wrap; + xml_node _parent; + const char_t* _name; + + xml_named_node_iterator(xml_node_struct* ref, xml_node_struct* parent, const char_t* name); + }; + + // Abstract tree walker class (see xml_node::traverse) + class PUGIXML_CLASS xml_tree_walker + { + friend class xml_node; + + private: + int _depth; + + protected: + // Get current traversal depth + int depth() const; + + public: + xml_tree_walker(); + virtual ~xml_tree_walker(); + + // Callback that is called when traversal begins + virtual bool begin(xml_node& node); + + // Callback that is called for each node traversed + virtual bool for_each(xml_node& node) = 0; + + // Callback that is called when traversal ends + virtual bool end(xml_node& node); + }; + + // Parsing status, returned as part of xml_parse_result object + enum xml_parse_status + { + status_ok = 0, // No error + + status_file_not_found, // File was not found during load_file() + status_io_error, // Error reading from file/stream + status_out_of_memory, // Could not allocate memory + status_internal_error, // Internal error occurred + + status_unrecognized_tag, // Parser could not determine tag type + + status_bad_pi, // Parsing error occurred while parsing document declaration/processing instruction + status_bad_comment, // Parsing error occurred while parsing comment + status_bad_cdata, // Parsing error occurred while parsing CDATA section + status_bad_doctype, // Parsing error occurred while parsing document type declaration + status_bad_pcdata, // Parsing error occurred while parsing PCDATA section + status_bad_start_element, // Parsing error occurred while parsing start element tag + status_bad_attribute, // Parsing error occurred while parsing element attribute + status_bad_end_element, // Parsing error occurred while parsing end element tag + status_end_element_mismatch,// There was a mismatch of start-end tags (closing tag had incorrect name, some tag was not closed or there was an excessive closing tag) + + status_append_invalid_root, // Unable to append nodes since root type is not node_element or node_document (exclusive to xml_node::append_buffer) + + status_no_document_element // Parsing resulted in a document without element nodes + }; + + // Parsing result + struct PUGIXML_CLASS xml_parse_result + { + // Parsing status (see xml_parse_status) + xml_parse_status status; + + // Last parsed offset (in char_t units from start of input data) + ptrdiff_t offset; + + // Source document encoding + xml_encoding encoding; + + // Default constructor, initializes object to failed state + xml_parse_result(); + + // Cast to bool operator + operator bool() const; + + // Get error description + const char* description() const; + }; + + // Document class (DOM tree root) + class PUGIXML_CLASS xml_document: public xml_node + { + private: + char_t* _buffer; + + char _memory[192]; + + // Non-copyable semantics + xml_document(const xml_document&); + xml_document& operator=(const xml_document&); + + void _create(); + void _destroy(); + void _move(xml_document& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT; + + public: + // Default constructor, makes empty document + xml_document(); + + // Destructor, invalidates all node/attribute handles to this document + ~xml_document(); + + #ifdef PUGIXML_HAS_MOVE + // Move semantics support + xml_document(xml_document&& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT; + xml_document& operator=(xml_document&& rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT; + #endif + + // Removes all nodes, leaving the empty document + void reset(); + + // Removes all nodes, then copies the entire contents of the specified document + void reset(const xml_document& proto); + + #ifndef PUGIXML_NO_STL + // Load document from stream. + xml_parse_result load(std::basic_istream >& stream, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + xml_parse_result load(std::basic_istream >& stream, unsigned int options = parse_default); + #endif + + // (deprecated: use load_string instead) Load document from zero-terminated string. No encoding conversions are applied. + PUGIXML_DEPRECATED xml_parse_result load(const char_t* contents, unsigned int options = parse_default); + + // Load document from zero-terminated string. No encoding conversions are applied. + xml_parse_result load_string(const char_t* contents, unsigned int options = parse_default); + + // Load document from file + xml_parse_result load_file(const char* path, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + xml_parse_result load_file(const wchar_t* path, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Load document from buffer. Copies/converts the buffer, so it may be deleted or changed after the function returns. + xml_parse_result load_buffer(const void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Load document from buffer, using the buffer for in-place parsing (the buffer is modified and used for storage of document data). + // You should ensure that buffer data will persist throughout the document's lifetime, and free the buffer memory manually once document is destroyed. + xml_parse_result load_buffer_inplace(void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Load document from buffer, using the buffer for in-place parsing (the buffer is modified and used for storage of document data). + // You should allocate the buffer with pugixml allocation function; document will free the buffer when it is no longer needed (you can't use it anymore). + xml_parse_result load_buffer_inplace_own(void* contents, size_t size, unsigned int options = parse_default, xml_encoding encoding = encoding_auto); + + // Save XML document to writer (semantics is slightly different from xml_node::print, see documentation for details). + void save(xml_writer& writer, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + + #ifndef PUGIXML_NO_STL + // Save XML document to stream (semantics is slightly different from xml_node::print, see documentation for details). + void save(std::basic_ostream >& stream, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + void save(std::basic_ostream >& stream, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default) const; + #endif + + // Save XML to file + bool save_file(const char* path, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + bool save_file(const wchar_t* path, const char_t* indent = PUGIXML_TEXT("\t"), unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; + + // Get document element + xml_node document_element() const; + }; + +#ifndef PUGIXML_NO_XPATH + // XPath query return type + enum xpath_value_type + { + xpath_type_none, // Unknown type (query failed to compile) + xpath_type_node_set, // Node set (xpath_node_set) + xpath_type_number, // Number + xpath_type_string, // String + xpath_type_boolean // Boolean + }; + + // XPath parsing result + struct PUGIXML_CLASS xpath_parse_result + { + // Error message (0 if no error) + const char* error; + + // Last parsed offset (in char_t units from string start) + ptrdiff_t offset; + + // Default constructor, initializes object to failed state + xpath_parse_result(); + + // Cast to bool operator + operator bool() const; + + // Get error description + const char* description() const; + }; + + // A single XPath variable + class PUGIXML_CLASS xpath_variable + { + friend class xpath_variable_set; + + protected: + xpath_value_type _type; + xpath_variable* _next; + + xpath_variable(xpath_value_type type); + + // Non-copyable semantics + xpath_variable(const xpath_variable&); + xpath_variable& operator=(const xpath_variable&); + + public: + // Get variable name + const char_t* name() const; + + // Get variable type + xpath_value_type type() const; + + // Get variable value; no type conversion is performed, default value (false, NaN, empty string, empty node set) is returned on type mismatch error + bool get_boolean() const; + double get_number() const; + const char_t* get_string() const; + const xpath_node_set& get_node_set() const; + + // Set variable value; no type conversion is performed, false is returned on type mismatch error + bool set(bool value); + bool set(double value); + bool set(const char_t* value); + bool set(const xpath_node_set& value); + }; + + // A set of XPath variables + class PUGIXML_CLASS xpath_variable_set + { + private: + xpath_variable* _data[64]; + + void _assign(const xpath_variable_set& rhs); + void _swap(xpath_variable_set& rhs); + + xpath_variable* _find(const char_t* name) const; + + static bool _clone(xpath_variable* var, xpath_variable** out_result); + static void _destroy(xpath_variable* var); + + public: + // Default constructor/destructor + xpath_variable_set(); + ~xpath_variable_set(); + + // Copy constructor/assignment operator + xpath_variable_set(const xpath_variable_set& rhs); + xpath_variable_set& operator=(const xpath_variable_set& rhs); + + #ifdef PUGIXML_HAS_MOVE + // Move semantics support + xpath_variable_set(xpath_variable_set&& rhs) PUGIXML_NOEXCEPT; + xpath_variable_set& operator=(xpath_variable_set&& rhs) PUGIXML_NOEXCEPT; + #endif + + // Add a new variable or get the existing one, if the types match + xpath_variable* add(const char_t* name, xpath_value_type type); + + // Set value of an existing variable; no type conversion is performed, false is returned if there is no such variable or if types mismatch + bool set(const char_t* name, bool value); + bool set(const char_t* name, double value); + bool set(const char_t* name, const char_t* value); + bool set(const char_t* name, const xpath_node_set& value); + + // Get existing variable by name + xpath_variable* get(const char_t* name); + const xpath_variable* get(const char_t* name) const; + }; + + // A compiled XPath query object + class PUGIXML_CLASS xpath_query + { + private: + void* _impl; + xpath_parse_result _result; + + typedef void (*unspecified_bool_type)(xpath_query***); + + // Non-copyable semantics + xpath_query(const xpath_query&); + xpath_query& operator=(const xpath_query&); + + public: + // Construct a compiled object from XPath expression. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on compilation errors. + explicit xpath_query(const char_t* query, xpath_variable_set* variables = PUGIXML_NULL); + + // Constructor + xpath_query(); + + // Destructor + ~xpath_query(); + + #ifdef PUGIXML_HAS_MOVE + // Move semantics support + xpath_query(xpath_query&& rhs) PUGIXML_NOEXCEPT; + xpath_query& operator=(xpath_query&& rhs) PUGIXML_NOEXCEPT; + #endif + + // Get query expression return type + xpath_value_type return_type() const; + + // Evaluate expression as boolean value in the specified context; performs type conversion if necessary. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + bool evaluate_boolean(const xpath_node& n) const; + + // Evaluate expression as double value in the specified context; performs type conversion if necessary. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + double evaluate_number(const xpath_node& n) const; + + #ifndef PUGIXML_NO_STL + // Evaluate expression as string value in the specified context; performs type conversion if necessary. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + string_t evaluate_string(const xpath_node& n) const; + #endif + + // Evaluate expression as string value in the specified context; performs type conversion if necessary. + // At most capacity characters are written to the destination buffer, full result size is returned (includes terminating zero). + // If PUGIXML_NO_EXCEPTIONS is not defined, throws std::bad_alloc on out of memory errors. + // If PUGIXML_NO_EXCEPTIONS is defined, returns empty set instead. + size_t evaluate_string(char_t* buffer, size_t capacity, const xpath_node& n) const; + + // Evaluate expression as node set in the specified context. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on type mismatch and std::bad_alloc on out of memory errors. + // If PUGIXML_NO_EXCEPTIONS is defined, returns empty node set instead. + xpath_node_set evaluate_node_set(const xpath_node& n) const; + + // Evaluate expression as node set in the specified context. + // Return first node in document order, or empty node if node set is empty. + // If PUGIXML_NO_EXCEPTIONS is not defined, throws xpath_exception on type mismatch and std::bad_alloc on out of memory errors. + // If PUGIXML_NO_EXCEPTIONS is defined, returns empty node instead. + xpath_node evaluate_node(const xpath_node& n) const; + + // Get parsing result (used to get compilation errors in PUGIXML_NO_EXCEPTIONS mode) + const xpath_parse_result& result() const; + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + }; + + #ifndef PUGIXML_NO_EXCEPTIONS + #if defined(_MSC_VER) + // C4275 can be ignored in Visual C++ if you are deriving + // from a type in the Standard C++ Library + #pragma warning(push) + #pragma warning(disable: 4275) + #endif + // XPath exception class + class PUGIXML_CLASS xpath_exception: public std::exception + { + private: + xpath_parse_result _result; + + public: + // Construct exception from parse result + explicit xpath_exception(const xpath_parse_result& result); + + // Get error message + virtual const char* what() const throw() PUGIXML_OVERRIDE; + + // Get parse result + const xpath_parse_result& result() const; + }; + #if defined(_MSC_VER) + #pragma warning(pop) + #endif + #endif + + // XPath node class (either xml_node or xml_attribute) + class PUGIXML_CLASS xpath_node + { + private: + xml_node _node; + xml_attribute _attribute; + + typedef void (*unspecified_bool_type)(xpath_node***); + + public: + // Default constructor; constructs empty XPath node + xpath_node(); + + // Construct XPath node from XML node/attribute + xpath_node(const xml_node& node); + xpath_node(const xml_attribute& attribute, const xml_node& parent); + + // Get node/attribute, if any + xml_node node() const; + xml_attribute attribute() const; + + // Get parent of contained node/attribute + xml_node parent() const; + + // Safe bool conversion operator + operator unspecified_bool_type() const; + + // Borland C++ workaround + bool operator!() const; + + // Comparison operators + bool operator==(const xpath_node& n) const; + bool operator!=(const xpath_node& n) const; + }; + +#ifdef __BORLANDC__ + // Borland C++ workaround + bool PUGIXML_FUNCTION operator&&(const xpath_node& lhs, bool rhs); + bool PUGIXML_FUNCTION operator||(const xpath_node& lhs, bool rhs); +#endif + + // A fixed-size collection of XPath nodes + class PUGIXML_CLASS xpath_node_set + { + public: + // Collection type + enum type_t + { + type_unsorted, // Not ordered + type_sorted, // Sorted by document order (ascending) + type_sorted_reverse // Sorted by document order (descending) + }; + + // Constant iterator type + typedef const xpath_node* const_iterator; + + // We define non-constant iterator to be the same as constant iterator so that various generic algorithms (i.e. boost foreach) work + typedef const xpath_node* iterator; + + // Default constructor. Constructs empty set. + xpath_node_set(); + + // Constructs a set from iterator range; data is not checked for duplicates and is not sorted according to provided type, so be careful + xpath_node_set(const_iterator begin, const_iterator end, type_t type = type_unsorted); + + // Destructor + ~xpath_node_set(); + + // Copy constructor/assignment operator + xpath_node_set(const xpath_node_set& ns); + xpath_node_set& operator=(const xpath_node_set& ns); + + #ifdef PUGIXML_HAS_MOVE + // Move semantics support + xpath_node_set(xpath_node_set&& rhs) PUGIXML_NOEXCEPT; + xpath_node_set& operator=(xpath_node_set&& rhs) PUGIXML_NOEXCEPT; + #endif + + // Get collection type + type_t type() const; + + // Get collection size + size_t size() const; + + // Indexing operator + const xpath_node& operator[](size_t index) const; + + // Collection iterators + const_iterator begin() const; + const_iterator end() const; + + // Sort the collection in ascending/descending order by document order + void sort(bool reverse = false); + + // Get first node in the collection by document order + xpath_node first() const; + + // Check if collection is empty + bool empty() const; + + private: + type_t _type; + + xpath_node _storage[1]; + + xpath_node* _begin; + xpath_node* _end; + + void _assign(const_iterator begin, const_iterator end, type_t type); + void _move(xpath_node_set& rhs) PUGIXML_NOEXCEPT; + }; +#endif + +#ifndef PUGIXML_NO_STL + // Convert wide string to UTF8 + std::basic_string, std::allocator > PUGIXML_FUNCTION as_utf8(const wchar_t* str); + std::basic_string, std::allocator > PUGIXML_FUNCTION as_utf8(const std::basic_string, std::allocator >& str); + + // Convert UTF8 to wide string + std::basic_string, std::allocator > PUGIXML_FUNCTION as_wide(const char* str); + std::basic_string, std::allocator > PUGIXML_FUNCTION as_wide(const std::basic_string, std::allocator >& str); +#endif + + // Memory allocation function interface; returns pointer to allocated memory or NULL on failure + typedef void* (*allocation_function)(size_t size); + + // Memory deallocation function interface + typedef void (*deallocation_function)(void* ptr); + + // Override default memory management functions. All subsequent allocations/deallocations will be performed via supplied functions. + void PUGIXML_FUNCTION set_memory_management_functions(allocation_function allocate, deallocation_function deallocate); + + // Get current memory management functions + allocation_function PUGIXML_FUNCTION get_memory_allocation_function(); + deallocation_function PUGIXML_FUNCTION get_memory_deallocation_function(); +} + +#if !defined(PUGIXML_NO_STL) && (defined(_MSC_VER) || defined(__ICC)) +namespace std +{ + // Workarounds for (non-standard) iterator category detection for older versions (MSVC7/IC8 and earlier) + std::bidirectional_iterator_tag PUGIXML_FUNCTION _Iter_cat(const pugi::xml_node_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION _Iter_cat(const pugi::xml_attribute_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION _Iter_cat(const pugi::xml_named_node_iterator&); +} +#endif + +#if !defined(PUGIXML_NO_STL) && defined(__SUNPRO_CC) +namespace std +{ + // Workarounds for (non-standard) iterator category detection + std::bidirectional_iterator_tag PUGIXML_FUNCTION __iterator_category(const pugi::xml_node_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION __iterator_category(const pugi::xml_attribute_iterator&); + std::bidirectional_iterator_tag PUGIXML_FUNCTION __iterator_category(const pugi::xml_named_node_iterator&); +} +#endif + +#endif + +// Make sure implementation is included in header-only mode +// Use macro expansion in #include to work around QMake (QTBUG-11923) +#if defined(PUGIXML_HEADER_ONLY) && !defined(PUGIXML_SOURCE) +# define PUGIXML_SOURCE "pugixml.cpp" +# include PUGIXML_SOURCE +#endif + +/** + * Copyright (c) 2006-2022 Arseny Kapoulkine + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ diff --git a/src/ProtonVPN.InstallActions/sha1.hpp b/src/ProtonVPN.InstallActions/sha1.hpp new file mode 100644 index 000000000..d1af3ff14 --- /dev/null +++ b/src/ProtonVPN.InstallActions/sha1.hpp @@ -0,0 +1,334 @@ +/* + sha1.hpp - source code of + + ============ + SHA-1 in C++ + ============ + + 100% Public Domain. + + Original C Code + -- Steve Reid + Small changes to fit into bglibs + -- Bruce Guenter + Translation to simpler C++ Code + -- Volker Diels-Grabsch + Safety fixes + -- Eugene Hopkinson + Header-only library + -- Zlatko Michailov +*/ + +#ifndef SHA1_HPP +#define SHA1_HPP + + +#include +#include +#include +#include +#include +#include + + +class SHA1 +{ +public: + SHA1(); + void update(const std::string& s); + void update(std::istream& is); + std::string final(); + static std::string from_file(const std::string& filename); + +private: + uint32_t digest[5]; + std::string buffer; + uint64_t transforms; +}; + + +static const size_t BLOCK_INTS = 16; /* number of 32bit integers per SHA1 block */ +static const size_t BLOCK_BYTES = BLOCK_INTS * 4; + + +inline static void reset(uint32_t digest[], std::string& buffer, uint64_t& transforms) +{ + /* SHA1 initialization constants */ + digest[0] = 0x67452301; + digest[1] = 0xefcdab89; + digest[2] = 0x98badcfe; + digest[3] = 0x10325476; + digest[4] = 0xc3d2e1f0; + + /* Reset counters */ + buffer = ""; + transforms = 0; +} + + +inline static uint32_t rol(const uint32_t value, const size_t bits) +{ + return (value << bits) | (value >> (32 - bits)); +} + + +inline static uint32_t blk(const uint32_t block[BLOCK_INTS], const size_t i) +{ + return rol(block[(i + 13) & 15] ^ block[(i + 8) & 15] ^ block[(i + 2) & 15] ^ block[i], 1); +} + + +/* + * (R0+R1), R2, R3, R4 are the different operations used in SHA1 + */ + +inline static void R0(const uint32_t block[BLOCK_INTS], const uint32_t v, uint32_t& w, const uint32_t x, const uint32_t y, uint32_t& z, const size_t i) +{ + z += ((w & (x ^ y)) ^ y) + block[i] + 0x5a827999 + rol(v, 5); + w = rol(w, 30); +} + + +inline static void R1(uint32_t block[BLOCK_INTS], const uint32_t v, uint32_t& w, const uint32_t x, const uint32_t y, uint32_t& z, const size_t i) +{ + block[i] = blk(block, i); + z += ((w & (x ^ y)) ^ y) + block[i] + 0x5a827999 + rol(v, 5); + w = rol(w, 30); +} + + +inline static void R2(uint32_t block[BLOCK_INTS], const uint32_t v, uint32_t& w, const uint32_t x, const uint32_t y, uint32_t& z, const size_t i) +{ + block[i] = blk(block, i); + z += (w ^ x ^ y) + block[i] + 0x6ed9eba1 + rol(v, 5); + w = rol(w, 30); +} + + +inline static void R3(uint32_t block[BLOCK_INTS], const uint32_t v, uint32_t& w, const uint32_t x, const uint32_t y, uint32_t& z, const size_t i) +{ + block[i] = blk(block, i); + z += (((w | x) & y) | (w & x)) + block[i] + 0x8f1bbcdc + rol(v, 5); + w = rol(w, 30); +} + + +inline static void R4(uint32_t block[BLOCK_INTS], const uint32_t v, uint32_t& w, const uint32_t x, const uint32_t y, uint32_t& z, const size_t i) +{ + block[i] = blk(block, i); + z += (w ^ x ^ y) + block[i] + 0xca62c1d6 + rol(v, 5); + w = rol(w, 30); +} + + +/* + * Hash a single 512-bit block. This is the core of the algorithm. + */ + +inline static void transform(uint32_t digest[], uint32_t block[BLOCK_INTS], uint64_t& transforms) +{ + /* Copy digest[] to working vars */ + uint32_t a = digest[0]; + uint32_t b = digest[1]; + uint32_t c = digest[2]; + uint32_t d = digest[3]; + uint32_t e = digest[4]; + + /* 4 rounds of 20 operations each. Loop unrolled. */ + R0(block, a, b, c, d, e, 0); + R0(block, e, a, b, c, d, 1); + R0(block, d, e, a, b, c, 2); + R0(block, c, d, e, a, b, 3); + R0(block, b, c, d, e, a, 4); + R0(block, a, b, c, d, e, 5); + R0(block, e, a, b, c, d, 6); + R0(block, d, e, a, b, c, 7); + R0(block, c, d, e, a, b, 8); + R0(block, b, c, d, e, a, 9); + R0(block, a, b, c, d, e, 10); + R0(block, e, a, b, c, d, 11); + R0(block, d, e, a, b, c, 12); + R0(block, c, d, e, a, b, 13); + R0(block, b, c, d, e, a, 14); + R0(block, a, b, c, d, e, 15); + R1(block, e, a, b, c, d, 0); + R1(block, d, e, a, b, c, 1); + R1(block, c, d, e, a, b, 2); + R1(block, b, c, d, e, a, 3); + R2(block, a, b, c, d, e, 4); + R2(block, e, a, b, c, d, 5); + R2(block, d, e, a, b, c, 6); + R2(block, c, d, e, a, b, 7); + R2(block, b, c, d, e, a, 8); + R2(block, a, b, c, d, e, 9); + R2(block, e, a, b, c, d, 10); + R2(block, d, e, a, b, c, 11); + R2(block, c, d, e, a, b, 12); + R2(block, b, c, d, e, a, 13); + R2(block, a, b, c, d, e, 14); + R2(block, e, a, b, c, d, 15); + R2(block, d, e, a, b, c, 0); + R2(block, c, d, e, a, b, 1); + R2(block, b, c, d, e, a, 2); + R2(block, a, b, c, d, e, 3); + R2(block, e, a, b, c, d, 4); + R2(block, d, e, a, b, c, 5); + R2(block, c, d, e, a, b, 6); + R2(block, b, c, d, e, a, 7); + R3(block, a, b, c, d, e, 8); + R3(block, e, a, b, c, d, 9); + R3(block, d, e, a, b, c, 10); + R3(block, c, d, e, a, b, 11); + R3(block, b, c, d, e, a, 12); + R3(block, a, b, c, d, e, 13); + R3(block, e, a, b, c, d, 14); + R3(block, d, e, a, b, c, 15); + R3(block, c, d, e, a, b, 0); + R3(block, b, c, d, e, a, 1); + R3(block, a, b, c, d, e, 2); + R3(block, e, a, b, c, d, 3); + R3(block, d, e, a, b, c, 4); + R3(block, c, d, e, a, b, 5); + R3(block, b, c, d, e, a, 6); + R3(block, a, b, c, d, e, 7); + R3(block, e, a, b, c, d, 8); + R3(block, d, e, a, b, c, 9); + R3(block, c, d, e, a, b, 10); + R3(block, b, c, d, e, a, 11); + R4(block, a, b, c, d, e, 12); + R4(block, e, a, b, c, d, 13); + R4(block, d, e, a, b, c, 14); + R4(block, c, d, e, a, b, 15); + R4(block, b, c, d, e, a, 0); + R4(block, a, b, c, d, e, 1); + R4(block, e, a, b, c, d, 2); + R4(block, d, e, a, b, c, 3); + R4(block, c, d, e, a, b, 4); + R4(block, b, c, d, e, a, 5); + R4(block, a, b, c, d, e, 6); + R4(block, e, a, b, c, d, 7); + R4(block, d, e, a, b, c, 8); + R4(block, c, d, e, a, b, 9); + R4(block, b, c, d, e, a, 10); + R4(block, a, b, c, d, e, 11); + R4(block, e, a, b, c, d, 12); + R4(block, d, e, a, b, c, 13); + R4(block, c, d, e, a, b, 14); + R4(block, b, c, d, e, a, 15); + + /* Add the working vars back into digest[] */ + digest[0] += a; + digest[1] += b; + digest[2] += c; + digest[3] += d; + digest[4] += e; + + /* Count the number of transformations */ + transforms++; +} + + +inline static void buffer_to_block(const std::string& buffer, uint32_t block[BLOCK_INTS]) +{ + /* Convert the std::string (byte buffer) to a uint32_t array (MSB) */ + for (size_t i = 0; i < BLOCK_INTS; i++) + { + block[i] = (buffer[4 * i + 3] & 0xff) + | (buffer[4 * i + 2] & 0xff) << 8 + | (buffer[4 * i + 1] & 0xff) << 16 + | (buffer[4 * i + 0] & 0xff) << 24; + } +} + + +inline SHA1::SHA1() +{ + reset(digest, buffer, transforms); +} + + +inline void SHA1::update(const std::string& s) +{ + std::istringstream is(s); + update(is); +} + + +inline void SHA1::update(std::istream& is) +{ + while (true) + { + char sbuf[BLOCK_BYTES]; + is.read(sbuf, BLOCK_BYTES - buffer.size()); + buffer.append(sbuf, (std::size_t)is.gcount()); + if (buffer.size() != BLOCK_BYTES) + { + return; + } + uint32_t block[BLOCK_INTS]; + buffer_to_block(buffer, block); + transform(digest, block, transforms); + buffer.clear(); + } +} + + +/* + * Add padding and return the message digest. + */ + +inline std::string SHA1::final() +{ + /* Total number of hashed bits */ + uint64_t total_bits = (transforms * BLOCK_BYTES + buffer.size()) * 8; + + /* Padding */ + buffer += (char)0x80; + size_t orig_size = buffer.size(); + while (buffer.size() < BLOCK_BYTES) + { + buffer += (char)0x00; + } + + uint32_t block[BLOCK_INTS]; + buffer_to_block(buffer, block); + + if (orig_size > BLOCK_BYTES - 8) + { + transform(digest, block, transforms); + for (size_t i = 0; i < BLOCK_INTS - 2; i++) + { + block[i] = 0; + } + } + + /* Append total_bits, split this uint64_t into two uint32_t */ + block[BLOCK_INTS - 1] = (uint32_t)total_bits; + block[BLOCK_INTS - 2] = (uint32_t)(total_bits >> 32); + transform(digest, block, transforms); + + /* Hex std::string */ + std::ostringstream result; + for (size_t i = 0; i < sizeof(digest) / sizeof(digest[0]); i++) + { + result << std::hex << std::setfill('0') << std::setw(8); + result << digest[i]; + } + + /* Reset for next run */ + reset(digest, buffer, transforms); + + return result.str(); +} + + +inline std::string SHA1::from_file(const std::string& filename) +{ + std::ifstream stream(filename.c_str(), std::ios::binary); + SHA1 checksum; + checksum.update(stream); + return checksum.final(); +} + + +#endif /* SHA1_HPP */ \ No newline at end of file diff --git a/src/ProtonVPN.IpFilter/ProtonVPN.IpFilter.vcxproj b/src/ProtonVPN.IpFilter/ProtonVPN.IpFilter.vcxproj index 2456ad69a..c52374272 100644 --- a/src/ProtonVPN.IpFilter/ProtonVPN.IpFilter.vcxproj +++ b/src/ProtonVPN.IpFilter/ProtonVPN.IpFilter.vcxproj @@ -107,7 +107,7 @@ Source.def - msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=$(Configuration) /property:Platform=x86 -target:Clean;Build + msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=$(Configuration) /property:OutDir=$(OutDir) /property:Platform=x86 -target:Clean;Build @@ -133,7 +133,7 @@ Ws2_32.lib;rpcrt4.lib;fwpuclnt.lib;iphlpapi.lib;%(AdditionalDependencies) - msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=$(Configuration) /property:Platform=x86 -target:Clean;Build + msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=$(Configuration) /property:OutDir=$(OutDir) /property:Platform=x86 -target:Clean;Build @@ -155,7 +155,7 @@ Ws2_32.lib;rpcrt4.lib;fwpuclnt.lib;iphlpapi.lib;%(AdditionalDependencies) - msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=$(Configuration) /property:Platform=x64 -target:Clean;Build + msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=$(Configuration) /property:OutDir=$(OutDir) /property:Platform=x64 -target:Clean;Build @@ -181,7 +181,7 @@ Ws2_32.lib;rpcrt4.lib;fwpuclnt.lib;iphlpapi.lib;%(AdditionalDependencies) - msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=$(Configuration) /property:Platform=x64 -target:Clean;Build + msbuild ..\ProtonVPN.IpFilterLib\ProtonVPN.IpFilterLib.vcxproj /property:Configuration=$(Configuration) /property:OutDir=$(OutDir) /property:Platform=x64 -target:Clean;Build diff --git a/src/ProtonVPN.Launcher/Program.cs b/src/ProtonVPN.Launcher/Program.cs new file mode 100644 index 000000000..ac2c92a02 --- /dev/null +++ b/src/ProtonVPN.Launcher/Program.cs @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2023 Proton Technologies AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; +using System.Diagnostics; +using System.IO; + +namespace ProtonVPN.Launcher +{ + internal class Program + { + static void Main(string[] args) + { + string[] folders = Directory.GetDirectories(AppDomain.CurrentDomain.BaseDirectory, "v*", SearchOption.TopDirectoryOnly); + Version latestVersion = new(0, 0, 0); + foreach (string path in folders) + { + string versionString = new DirectoryInfo(path).Name.Replace("v", string.Empty); + if (Version.TryParse(versionString, out Version version)) + { + if (version > latestVersion) + { + latestVersion = version; + } + } + } + + if (latestVersion > new Version(0, 0, 0)) + { + Process.Start($"v{latestVersion}\\ProtonVPN.exe", args); + } + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Launcher/ProtonVPN.Launcher.csproj b/src/ProtonVPN.Launcher/ProtonVPN.Launcher.csproj new file mode 100644 index 000000000..f3005543f --- /dev/null +++ b/src/ProtonVPN.Launcher/ProtonVPN.Launcher.csproj @@ -0,0 +1,26 @@ + + + net6.0 + WinExe + false + ..\bin\ + false + protonvpn.ico + ProtonVPN.Launcher.Program + ..\bin + + + + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + \ No newline at end of file diff --git a/src/ProtonVPN.Launcher/protonvpn.ico b/src/ProtonVPN.Launcher/protonvpn.ico new file mode 100644 index 0000000000000000000000000000000000000000..ac5665e5e72387276e8e02ca919bd67da71fb374 GIT binary patch literal 312656 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 - - + - Debug - AnyCPU - {BA03F069-6A26-45D1-8B05-6E61E3D9D1E1} + net6.0-windows Exe - ProtonVPN.MarkupValidator - ProtonVPN.MarkupValidator - v4.7.2 - 512 - true - true - - - AnyCPU - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - AnyCPU - pdbonly - true + false + true + true + true ..\bin\ - TRACE - prompt - 4 - latest - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - + + + + all + + - \ No newline at end of file diff --git a/src/ProtonVPN.Native/ProtonVPN.Native.csproj b/src/ProtonVPN.Native/ProtonVPN.Native.csproj index 6d67d8def..feadc20b4 100644 --- a/src/ProtonVPN.Native/ProtonVPN.Native.csproj +++ b/src/ProtonVPN.Native/ProtonVPN.Native.csproj @@ -1,54 +1,21 @@ - - - + - Debug - AnyCPU - {CB301B4C-D518-41F5-873B-9B1F145DB4AF} + net6.0-windows Library - Properties - ProtonVPN.Native - ProtonVPN.Native - v4.7.2 - 512 - true - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\bin\ - TRACE - prompt - 4 - latest + false - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - + + + + + all + + \ No newline at end of file diff --git a/src/ProtonVPN.NativeHost/NativeHost.rc b/src/ProtonVPN.NativeHost/NativeHost.rc new file mode 100644 index 0000000000000000000000000000000000000000..afeaf7007b267169ab4abb830ceaed17067cee82 GIT binary patch literal 3274 zcmdUxZ;ui&5XR@ViQl2Z8!sC0&nGzGL?VagfQu$1&*hIVBaP#cUp*0y(0y8JJ#2Bpn7o-ZAW*P?c@ch}Ua%;?v=k|iA3OUs!fBIxs zos)+|SDU7NztY@6$sT)L5yL~II>?{-Q`=BGQ2X>vAE%KL_?qn9B3ED9WA^UCSA!B{ zb~%QuhO7<|AX^Scfb!!SOI~qmCO4f$kRp)O}?~wzQ7R*!!sCH-(H_kr!+F|2gt0f#a zzB*9Fpx1o0(t*T(sIR;2Z=*DBfmtokPIZJb>R5|>$9S@9CG61)E^8A!v*cgd+LNtyq;X!P z{TuAh-g>ddF~VXm)R=f*9D3RJGp$$_WwnW!75l%f@q~QGYrN>ktQN%@OT)v+n)qD# HeT4l1AYq1L literal 0 HcmV?d00001 diff --git a/src/ProtonVPN.NativeHost/NativeHost.vcxproj b/src/ProtonVPN.NativeHost/NativeHost.vcxproj new file mode 100644 index 000000000..90c51d5e8 --- /dev/null +++ b/src/ProtonVPN.NativeHost/NativeHost.vcxproj @@ -0,0 +1,165 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {0fbe190b-b9ae-432e-b6f3-3916e713f1e7} + NativeHost + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + ProtonVPN + $(SolutionDir)bin\ + + + ProtonVPN + $(SolutionDir)bin\ + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp20 + + + Windows + true + C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Host.win-x64\7.0.2\runtimes\win-x64\native\nethost.lib;%(AdditionalDependencies) + + + copy /Y "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Host.win-x64\7.0.2\runtimes\win-x64\native\nethost.dll" "$(OutputPath)nethost.dll" + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp20 + + + Windows + true + true + true + C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Host.win-x64\7.0.2\runtimes\win-x64\native\nethost.lib;%(AdditionalDependencies) + + + copy /Y "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Host.win-x64\7.0.2\runtimes\win-x64\native\nethost.dll" "$(OutputPath)nethost.dll" + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ProtonVPN.NativeHost/NativeHost.vcxproj.filters b/src/ProtonVPN.NativeHost/NativeHost.vcxproj.filters new file mode 100644 index 000000000..2bdb4b77a --- /dev/null +++ b/src/ProtonVPN.NativeHost/NativeHost.vcxproj.filters @@ -0,0 +1,52 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {450f90de-296c-41e0-b9da-f33fbd8866fa} + + + + + Source Files + + + + + Header Files + + + inc + + + inc + + + inc + + + + + Resource Files + + + + + Source Files + + + Resource Files + + + \ No newline at end of file diff --git a/src/ProtonVPN.NativeHost/inc/coreclr_delegates.h b/src/ProtonVPN.NativeHost/inc/coreclr_delegates.h new file mode 100644 index 000000000..63895823f --- /dev/null +++ b/src/ProtonVPN.NativeHost/inc/coreclr_delegates.h @@ -0,0 +1,47 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __CORECLR_DELEGATES_H__ +#define __CORECLR_DELEGATES_H__ + +#include + +#if defined(_WIN32) +#define CORECLR_DELEGATE_CALLTYPE __stdcall +#ifdef _WCHAR_T_DEFINED +typedef wchar_t char_t; +#else +typedef unsigned short char_t; +#endif +#else +#define CORECLR_DELEGATE_CALLTYPE +typedef char char_t; +#endif + +#define UNMANAGEDCALLERSONLY_METHOD ((const char_t*)-1) + +// Signature of delegate returned by coreclr_delegate_type::load_assembly_and_get_function_pointer +typedef int (CORECLR_DELEGATE_CALLTYPE* load_assembly_and_get_function_pointer_fn)( + const char_t* assembly_path /* Fully qualified path to assembly */, + const char_t* type_name /* Assembly qualified type name */, + const char_t* method_name /* Public static method name compatible with delegateType */, + const char_t* delegate_type_name /* Assembly qualified delegate type name or null + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void* reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void** delegate /* Pointer where to store the function pointer result */); + +// Signature of delegate returned by load_assembly_and_get_function_pointer_fn when delegate_type_name == null (default) +typedef int (CORECLR_DELEGATE_CALLTYPE* component_entry_point_fn)(void* arg, int32_t arg_size_in_bytes); + +typedef int (CORECLR_DELEGATE_CALLTYPE* get_function_pointer_fn)( + const char_t* type_name /* Assembly qualified type name */, + const char_t* method_name /* Public static method name compatible with delegateType */, + const char_t* delegate_type_name /* Assembly qualified delegate type name or null, + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void* load_context /* Extensibility parameter (currently unused and must be 0) */, + void* reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void** delegate /* Pointer where to store the function pointer result */); + +#endif // __CORECLR_DELEGATES_H__ diff --git a/src/ProtonVPN.NativeHost/inc/hostfxr.h b/src/ProtonVPN.NativeHost/inc/hostfxr.h new file mode 100644 index 000000000..277205344 --- /dev/null +++ b/src/ProtonVPN.NativeHost/inc/hostfxr.h @@ -0,0 +1,288 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __HOSTFXR_H__ +#define __HOSTFXR_H__ + +#include +#include + +#if defined(_WIN32) +#define HOSTFXR_CALLTYPE __cdecl +#ifdef _WCHAR_T_DEFINED +typedef wchar_t char_t; +#else +typedef unsigned short char_t; +#endif +#else +#define HOSTFXR_CALLTYPE +typedef char char_t; +#endif + +enum hostfxr_delegate_type +{ + hdt_com_activation, + hdt_load_in_memory_assembly, + hdt_winrt_activation, + hdt_com_register, + hdt_com_unregister, + hdt_load_assembly_and_get_function_pointer, + hdt_get_function_pointer, +}; + +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_main_fn)(const int argc, const char_t** argv); +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_main_startupinfo_fn)( + const int argc, + const char_t** argv, + const char_t* host_path, + const char_t* dotnet_root, + const char_t* app_path); +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_main_bundle_startupinfo_fn)( + const int argc, + const char_t** argv, + const char_t* host_path, + const char_t* dotnet_root, + const char_t* app_path, + int64_t bundle_header_offset); + +typedef void(HOSTFXR_CALLTYPE* hostfxr_error_writer_fn)(const char_t* message); + +// +// Sets a callback which is to be used to write errors to. +// +// Parameters: +// error_writer +// A callback function which will be invoked every time an error is to be reported. +// Or nullptr to unregister previously registered callback and return to the default behavior. +// Return value: +// The previously registered callback (which is now unregistered), or nullptr if no previous callback +// was registered +// +// The error writer is registered per-thread, so the registration is thread-local. On each thread +// only one callback can be registered. Subsequent registrations overwrite the previous ones. +// +// By default no callback is registered in which case the errors are written to stderr. +// +// Each call to the error writer is sort of like writing a single line (the EOL character is omitted). +// Multiple calls to the error writer may occure for one failure. +// +// If the hostfxr invokes functions in hostpolicy as part of its operation, the error writer +// will be propagated to hostpolicy for the duration of the call. This means that errors from +// both hostfxr and hostpolicy will be reporter through the same error writer. +// +typedef hostfxr_error_writer_fn(HOSTFXR_CALLTYPE* hostfxr_set_error_writer_fn)(hostfxr_error_writer_fn error_writer); + +typedef void* hostfxr_handle; +struct hostfxr_initialize_parameters +{ + size_t size; + const char_t* host_path; + const char_t* dotnet_root; +}; + +// +// Initializes the hosting components for a dotnet command line running an application +// +// Parameters: +// argc +// Number of argv arguments +// argv +// Command-line arguments for running an application (as if through the dotnet executable). +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// HostInvalidState - Hosting components are already initialized +// +// This function parses the specified command-line arguments to determine the application to run. It will +// then find the corresponding .runtimeconfig.json and .deps.json with which to resolve frameworks and +// dependencies and prepare everything needed to load the runtime. +// +// This function only supports arguments for running an application. It does not support SDK commands. +// +// This function does not load the runtime. +// +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_initialize_for_dotnet_command_line_fn)( + int argc, + const char_t** argv, + const struct hostfxr_initialize_parameters* parameters, + /*out*/ hostfxr_handle* host_context_handle); + +// +// Initializes the hosting components using a .runtimeconfig.json file +// +// Parameters: +// runtime_config_path +// Path to the .runtimeconfig.json file +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// Success_HostAlreadyInitialized - Config is compatible with already initialized hosting components +// Success_DifferentRuntimeProperties - Config has runtime properties that differ from already initialized hosting components +// CoreHostIncompatibleConfig - Config is incompatible with already initialized hosting components +// +// This function will process the .runtimeconfig.json to resolve frameworks and prepare everything needed +// to load the runtime. It will only process the .deps.json from frameworks (not any app/component that +// may be next to the .runtimeconfig.json). +// +// This function does not load the runtime. +// +// If called when the runtime has already been loaded, this function will check if the specified runtime +// config is compatible with the existing runtime. +// +// Both Success_HostAlreadyInitialized and Success_DifferentRuntimeProperties codes are considered successful +// initializations. In the case of Success_DifferentRuntimeProperties, it is left to the consumer to verify that +// the difference in properties is acceptable. +// +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_initialize_for_runtime_config_fn)( + const char_t* runtime_config_path, + const struct hostfxr_initialize_parameters* parameters, + /*out*/ hostfxr_handle* host_context_handle); + +// +// Gets the runtime property value for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Out parameter. Pointer to a buffer with the property value. +// +// Return value: +// The error code result. +// +// The buffer pointed to by value is owned by the host context. The lifetime of the buffer is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// property value for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_get_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t* name, + /*out*/ const char_t** value); + +// +// Sets the value of a runtime property for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Value to set +// +// Return value: +// The error code result. +// +// Setting properties is only supported for the first host context, before the runtime has been loaded. +// +// If the property already exists in the host context, it will be overwritten. If value is nullptr, the +// property will be removed. +// +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_set_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t* name, + const char_t* value); + +// +// Gets all the runtime properties for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// count +// [in] Size of the keys and values buffers +// [out] Number of properties returned (size of keys/values buffers used). If the input value is too +// small or keys/values is nullptr, this is populated with the number of available properties +// keys +// Array of pointers to buffers with runtime property keys +// values +// Array of pointers to buffers with runtime property values +// +// Return value: +// The error code result. +// +// The buffers pointed to by keys and values are owned by the host context. The lifetime of the buffers is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// properties for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_get_runtime_properties_fn)( + const hostfxr_handle host_context_handle, + /*inout*/ size_t* count, + /*out*/ const char_t** keys, + /*out*/ const char_t** values); + +// +// Load CoreCLR and run the application for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// If the app was successfully run, the exit code of the application. Otherwise, the error code result. +// +// The host_context_handle must have been initialized using hostfxr_initialize_for_dotnet_command_line. +// +// This function will not return until the managed application exits. +// +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_run_app_fn)(const hostfxr_handle host_context_handle); + +// +// Gets a typed delegate from the currently loaded CoreCLR or from a newly created one. +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// type +// Type of runtime delegate requested +// delegate +// An out parameter that will be assigned the delegate. +// +// Return value: +// The error code result. +// +// If the host_context_handle was initialized using hostfxr_initialize_for_runtime_config, +// then all delegate types are supported. +// If the host_context_handle was initialized using hostfxr_initialize_for_dotnet_command_line, +// then only the following delegate types are currently supported: +// hdt_load_assembly_and_get_function_pointer +// hdt_get_function_pointer +// +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_get_runtime_delegate_fn)( + const hostfxr_handle host_context_handle, + enum hostfxr_delegate_type type, + /*out*/ void** delegate); + +// +// Closes an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// The error code result. +// +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_close_fn)(const hostfxr_handle host_context_handle); + +#endif //__HOSTFXR_H__ diff --git a/src/ProtonVPN.NativeHost/inc/nethost.h b/src/ProtonVPN.NativeHost/inc/nethost.h new file mode 100644 index 000000000..f352f59ae --- /dev/null +++ b/src/ProtonVPN.NativeHost/inc/nethost.h @@ -0,0 +1,99 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __NETHOST_H__ +#define __NETHOST_H__ + +#include + +#ifdef _WIN32 +#ifdef NETHOST_EXPORT +#define NETHOST_API __declspec(dllexport) +#else + // Consuming the nethost as a static library + // Shouldn't export attempt to dllimport. +#ifdef NETHOST_USE_AS_STATIC +#define NETHOST_API +#else +#define NETHOST_API __declspec(dllimport) +#endif +#endif + +#define NETHOST_CALLTYPE __stdcall +#ifdef _WCHAR_T_DEFINED +typedef wchar_t char_t; +#else +typedef unsigned short char_t; +#endif +#else +#ifdef NETHOST_EXPORT +#define NETHOST_API __attribute__((__visibility__("default"))) +#else +#define NETHOST_API +#endif + +#define NETHOST_CALLTYPE +typedef char char_t; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + // Parameters for get_hostfxr_path + // + // Fields: + // size + // Size of the struct. This is used for versioning. + // + // assembly_path + // Path to the compenent's assembly. + // If specified, hostfxr is located as if the assembly_path is the apphost + // + // dotnet_root + // Path to directory containing the dotnet executable. + // If specified, hostfxr is located as if an application is started using + // 'dotnet app.dll', which means it will be searched for under the dotnet_root + // path and the assembly_path is ignored. + // + struct get_hostfxr_parameters { + size_t size; + const char_t* assembly_path; + const char_t* dotnet_root; + }; + + // + // Get the path to the hostfxr library + // + // Parameters: + // buffer + // Buffer that will be populated with the hostfxr path, including a null terminator. + // + // buffer_size + // [in] Size of buffer in char_t units. + // [out] Size of buffer used in char_t units. If the input value is too small + // or buffer is nullptr, this is populated with the minimum required size + // in char_t units for a buffer to hold the hostfxr path + // + // get_hostfxr_parameters + // Optional. Parameters that modify the behaviour for locating the hostfxr library. + // If nullptr, hostfxr is located using the enviroment variable or global registration + // + // Return value: + // 0 on success, otherwise failure + // 0x80008098 - buffer is too small (HostApiBufferTooSmall) + // + // Remarks: + // The full search for the hostfxr library is done on every call. To minimize the need + // to call this function multiple times, pass a large buffer (e.g. PATH_MAX). + // + NETHOST_API int NETHOST_CALLTYPE get_hostfxr_path( + char_t* buffer, + size_t* buffer_size, + const struct get_hostfxr_parameters* parameters); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // __NETHOST_H__ diff --git a/src/ProtonVPN.NativeHost/nativehost.cpp b/src/ProtonVPN.NativeHost/nativehost.cpp new file mode 100644 index 000000000..72431a7b4 --- /dev/null +++ b/src/ProtonVPN.NativeHost/nativehost.cpp @@ -0,0 +1,109 @@ +#include +#include +#include +#include +#include "inc/coreclr_delegates.h" +#include +#include "inc/hostfxr.h" +#include "inc/nethost.h" +#include +#include +#include + +hostfxr_close_fn close_fptr; +hostfxr_initialize_for_dotnet_command_line_fn command_line_fptr; +hostfxr_run_app_fn run_app_fptr; +hostfxr_set_runtime_property_value_fn hostfxr_set_runtime_property_value; +bool load_hostfxr(); + +std::wstring GetVersionFolderPath() +{ + WCHAR buffer[MAX_PATH]; + GetModuleFileNameW(nullptr, buffer, MAX_PATH); + const std::wstring::size_type pos = std::wstring(buffer).find_last_of(L"\\/"); + return std::wstring(buffer).substr(0, pos); +} + +int WinMain(HINSTANCE hInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int cmdShow) +{ + if (!load_hostfxr()) + { + assert(false && "Failure: load_hostfxr()"); + return EXIT_FAILURE; + } + + std::filesystem::path version_folder_path(GetVersionFolderPath()); + + WCHAR base_directory[MAX_PATH]; + lstrcpyW(base_directory, version_folder_path.parent_path().c_str()); + + SetCurrentDirectoryW(base_directory); + + int total_arguments = 0; + std::wstring dll_path = version_folder_path.wstring() + L"\\ProtonVPN.dll"; + LPWSTR* szArglist = CommandLineToArgvW(GetCommandLineW(), &total_arguments); + const char_t** argv = static_cast(calloc(total_arguments, sizeof(const char_t*))); + argv[0] = dll_path.c_str(); + + for (int i = 1; i < total_arguments; i++) + { + argv[i] = szArglist[i]; + } + + hostfxr_handle host_context_handle; + command_line_fptr( + total_arguments, + argv, + nullptr, + &host_context_handle); + + hostfxr_set_runtime_property_value(host_context_handle, L"APP_CONTEXT_BASE_DIRECTORY", base_directory); + + run_app_fptr(host_context_handle); + close_fptr(host_context_handle); + free(argv); + + return 0; +} + +void* load_library(const char_t* path) +{ + HMODULE h = ::LoadLibraryW(path); + assert(h != nullptr); + return h; +} + +void* get_export(void* h, const char* name) +{ + const auto address = GetProcAddress(static_cast(h), name); + assert(address != nullptr); + return address; +} + +bool load_hostfxr() +{ + char_t buffer[MAX_PATH]; + size_t buffer_size = sizeof buffer / sizeof(char_t); + + int rc = get_hostfxr_path(buffer, &buffer_size, nullptr); + if (rc != 0) + { + return false; + } + + void* lib = load_library(buffer); + command_line_fptr = (hostfxr_initialize_for_dotnet_command_line_fn)get_export( + lib, "hostfxr_initialize_for_dotnet_command_line"); + run_app_fptr = (hostfxr_run_app_fn)get_export(lib, "hostfxr_run_app"); + hostfxr_set_runtime_property_value = (hostfxr_set_runtime_property_value_fn)get_export( + lib, "hostfxr_set_runtime_property_value"); + close_fptr = (hostfxr_close_fn)get_export(lib, "hostfxr_close"); + + return command_line_fptr && + run_app_fptr && + hostfxr_set_runtime_property_value && + close_fptr; +} diff --git a/src/ProtonVPN.NativeHost/protonvpn.ico b/src/ProtonVPN.NativeHost/protonvpn.ico new file mode 100644 index 0000000000000000000000000000000000000000..f3c17c8ffd0374f52529d1b156df4d7122015829 GIT binary patch literal 312656 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 F{|7ZJQKtX^ literal 0 HcmV?d00001 diff --git a/src/ProtonVPN.NativeHost/resource.h b/src/ProtonVPN.NativeHost/resource.h new file mode 100644 index 000000000..8260c12c5 --- /dev/null +++ b/src/ProtonVPN.NativeHost/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by IconTest.rc +// +#define IDI_ICON1 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/src/ProtonVPN.NetworkFilter/PInvoke.cs b/src/ProtonVPN.NetworkFilter/PInvoke.cs index 6ee05e00c..e4d41d199 100644 --- a/src/ProtonVPN.NetworkFilter/PInvoke.cs +++ b/src/ProtonVPN.NetworkFilter/PInvoke.cs @@ -19,14 +19,15 @@ using System; using System.Runtime.InteropServices; +using ProtonVPN.Common.Helpers; namespace ProtonVPN.NetworkFilter { internal class PInvoke { - private const string BinaryName = "ProtonVPN.IpFilter.dll"; + private const string BINARY_NAME = "ProtonVPN.IpFilter.dll"; - private static string BinaryPath => $"{(Environment.Is64BitOperatingSystem ? "x64" : "x86")}\\{BinaryName}"; + private static string BinaryPath => PathProvider.GetResourcesPath(BINARY_NAME); static PInvoke() { @@ -41,43 +42,43 @@ static PInvoke() private static extern IntPtr LoadLibrary(string path); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateDynamicSession", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateDynamicSession(ref IntPtr handle); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateSession", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateSession(ref IntPtr handle); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDestroySession", CallingConvention = CallingConvention.Cdecl)] public static extern uint DestroySession(IntPtr handle); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterStartTransaction", CallingConvention = CallingConvention.Cdecl)] public static extern uint StartTransaction(IntPtr sessionHandle); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterAbortTransaction", CallingConvention = CallingConvention.Cdecl)] public static extern uint AbortTransaction(IntPtr sessionHandle); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCommitTransaction", CallingConvention = CallingConvention.Cdecl)] public static extern uint CommitTransaction(IntPtr sessionHandle); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateProvider", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateProvider( @@ -87,7 +88,7 @@ public static extern uint CreateProvider( [In, Out] ref Guid key); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterIsProviderRegistered", CallingConvention = CallingConvention.Cdecl)] public static extern uint IsProviderRegistered( @@ -96,7 +97,7 @@ public static extern uint IsProviderRegistered( [In, Out] ref uint result); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDestroyProvider", CallingConvention = CallingConvention.Cdecl)] public static extern uint DestroyProvider( @@ -104,7 +105,7 @@ public static extern uint DestroyProvider( [In, Out] ref Guid key); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateProviderContext", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateProviderContext( @@ -117,7 +118,7 @@ public static extern uint CreateProviderContext( [In, Out] ref Guid key); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDestroyProviderContext", CallingConvention = CallingConvention.Cdecl)] public static extern uint DestroyProviderContext( @@ -125,7 +126,7 @@ public static extern uint DestroyProviderContext( [In] ref Guid key); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateCallout", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateCallout( @@ -137,7 +138,7 @@ public static extern uint CreateCallout( [In, Out] ref Guid key); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDestroyCallout", CallingConvention = CallingConvention.Cdecl)] public static extern uint DestroyCallout( @@ -145,7 +146,7 @@ public static extern uint DestroyCallout( [In] ref Guid key); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateSublayer", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateSublayer( @@ -157,7 +158,7 @@ public static extern uint CreateSublayer( [In, Out] ref Guid key); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDestroySublayer", CallingConvention = CallingConvention.Cdecl)] public static extern uint DestroySublayer( @@ -165,7 +166,7 @@ public static extern uint DestroySublayer( [In] ref Guid key); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDoesSublayerExist", CallingConvention = CallingConvention.Cdecl)] public static extern uint DoesSublayerExist( @@ -174,7 +175,7 @@ public static extern uint DoesSublayerExist( [In, Out] ref uint result); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDoesFilterExist", CallingConvention = CallingConvention.Cdecl)] public static extern uint DoesFilterExist( @@ -183,7 +184,7 @@ public static extern uint DoesFilterExist( [In, Out] ref uint result); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDoesProviderContextExist", CallingConvention = CallingConvention.Cdecl)] public static extern uint DoesProviderContextExist( @@ -192,7 +193,7 @@ public static extern uint DoesProviderContextExist( [In, Out] ref uint result); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDoesCalloutExist", CallingConvention = CallingConvention.Cdecl)] public static extern uint DoesCalloutExist( @@ -201,7 +202,7 @@ public static extern uint DoesCalloutExist( [In, Out] ref uint result); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDestroySublayerFilters", CallingConvention = CallingConvention.Cdecl)] public static extern uint DestroySublayerFilters( @@ -210,7 +211,7 @@ public static extern uint DestroySublayerFilters( [In] ref Guid sublayerId); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterGetSublayerFilterCount", CallingConvention = CallingConvention.Cdecl)] public static extern uint GetSublayerFilterCount( @@ -220,13 +221,13 @@ public static extern uint GetSublayerFilterCount( [In, Out] ref uint result); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDestroyCallouts", CallingConvention = CallingConvention.Cdecl)] public static extern uint DestroyCallouts(IntPtr sessionHandle, [In] ref Guid providerId); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterDestroyFilter", CallingConvention = CallingConvention.Cdecl)] public static extern uint DestroyFilter( @@ -234,7 +235,7 @@ public static extern uint DestroyFilter( [In] ref Guid key); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateLayerFilter", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateLayerFilter( @@ -251,7 +252,7 @@ public static extern uint CreateLayerFilter( [In, Out] ref Guid filterKey); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateRemoteIPv4Filter", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateRemoteIPv4Filter( @@ -269,7 +270,7 @@ public static extern uint CreateRemoteIPv4Filter( [In, Out] ref Guid filterKey); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateAppFilter", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateAppFilter( @@ -287,7 +288,7 @@ public static extern uint CreateAppFilter( [In, Out] ref Guid filterKey); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateRemoteTCPPortFilter", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateRemoteTCPPortFilter( @@ -303,7 +304,7 @@ public static extern uint CreateRemoteTCPPortFilter( [In, Out] ref Guid filterKey); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateRemoteUDPPortFilter", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateRemoteUDPPortFilter( @@ -319,7 +320,7 @@ public static extern uint CreateRemoteUDPPortFilter( [In, Out] ref Guid filterKey); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateRemoteNetworkIPv4Filter", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateRemoteNetworkIPv4Filter( @@ -337,7 +338,7 @@ public static extern uint CreateRemoteNetworkIPv4Filter( [In, Out] ref Guid filterKey); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateNetInterfaceFilter", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateNetInterfaceFilter( @@ -353,7 +354,7 @@ public static extern uint CreateNetInterfaceFilter( [In, Out] ref Guid filterKey); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "IPFilterCreateLoopbackFilter", CallingConvention = CallingConvention.Cdecl)] public static extern uint CreateLoopbackFilter( @@ -368,7 +369,7 @@ public static extern uint CreateLoopbackFilter( [In, Out] ref Guid filterKey); [DllImport( - BinaryName, + BINARY_NAME, EntryPoint = "BlockOutsideDns", CallingConvention = CallingConvention.Cdecl)] public static extern uint BlockOutsideDns( diff --git a/src/ProtonVPN.NetworkFilter/ProtonVPN.NetworkFilter.csproj b/src/ProtonVPN.NetworkFilter/ProtonVPN.NetworkFilter.csproj index 15373b65f..37ccead56 100644 --- a/src/ProtonVPN.NetworkFilter/ProtonVPN.NetworkFilter.csproj +++ b/src/ProtonVPN.NetworkFilter/ProtonVPN.NetworkFilter.csproj @@ -1,69 +1,25 @@ - + - Debug - AnyCPU - {1CF1B8BF-57EB-4E49-B644-0A8F2DFEEB58} + net6.0-windows Library false - ProtonVPN.NetworkFilter - v4.7.2 - 512 - - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - false - latest - - - pdbonly - true + false ..\bin\ - TRACE - prompt - 4 - false - latest + false - - ProtonVPN.NetworkFilter - - - - - - - - - - - - - - - - - - - - - - - - - + 7.2.0 + + + all + + + + - diff --git a/src/ProtonVPN.Resources/ProtonVPN.Resource.csproj b/src/ProtonVPN.Resources/ProtonVPN.Resource.csproj index 9376d5ebd..7dae5bd96 100644 --- a/src/ProtonVPN.Resources/ProtonVPN.Resource.csproj +++ b/src/ProtonVPN.Resources/ProtonVPN.Resource.csproj @@ -1,783 +1,33 @@ - - - + - Debug - AnyCPU - {45A0EA81-D37E-4D7F-8CE1-CE6B6A95A9ED} + net6.0-windows Library - Properties - ProtonVPN.Resource - ProtonVPN.Resource - v4.7.2 - 512 - true - - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false + true + true ..\bin\ - TRACE - prompt - 4 - AnyCPU - latest + false - - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - ProgressBar.xaml - - - ProtonAnimation.xaml - - - BrandLoader.xaml - - - Bell.xaml - - - Gift.xaml - - - Newspaper.xaml - - - Loader.xaml - - - ArrowAngleLeftUpLineVertical.xaml - - - ArrowDown.xaml - - - ArrowLeft.xaml - - - ArrowRight.xaml - - - ArrowsRotate.xaml - - - ArrowsSwapRight.xaml - - - ArrowsSwitch.xaml - - - ArrowUp.xaml - - - CircleSlash.xaml - - - Bolt.xaml - - - BrandTor.xaml - - - Bug.xaml - - - CheckmarkCircle.xaml - - - CheckmarkCircleFilled.xaml - - - ChevronDown.xaml - - - ChevronDownFilled.xaml - - - ChevronLeft.xaml - - - ChevronLeftFilled.xaml - - - ChevronRight.xaml - - - ChevronRightFilled.xaml - - - ChevronsLeft.xaml - - - ChevronsRight.xaml - - - ChevronUp.xaml - - - ChevronUpFilled.xaml - - - Cross.xaml - - - CrossBig.xaml - - - CrossCircle.xaml - - - CrossCircleFilled.xaml - - - CrossSmall.xaml - - - Earth.xaml - - - ExclamationCircle.xaml - - - ExclamationCircleFilled.xaml - - - Eye.xaml - - - EyeSlash.xaml - - - Globe.xaml - - - House.xaml - - - HouseFilled.xaml - - - InfoCircle.xaml - - - InfoCircleFilled.xaml - - - Key.xaml - - - Lightbulb.xaml - - - Lock.xaml - - - Locks.xaml - - - Magnifier.xaml - - - Minus.xaml - - - Pencil.xaml - - - Play.xaml - - - Plus.xaml - - - PowerOff.xaml - - - Shield.xaml - - - ShieldFilled.xaml - - - ShieldHalfFilled.xaml - - - SwitchOff.xaml - - - SwitchOn.xaml - - - SwitchOnLock.xaml - - - Trash.xaml - - - User.xaml - - - Wrench.xaml - - - ZoomMinus.xaml - - - ZoomPlus.xaml - - - ProtonMailSquareLogo.xaml - - - ProtonCalendarSquareLogo.xaml - - - ProtonDriveSquareLogo.xaml - - - ProtonVpnSquareLogo.xaml - - - ProtonVpnIcon.xaml - - - ProtonVpnLogo.xaml - - - ProtonVpnUpdateIcon.xaml - - - Welcome.xaml - - - ModerateNat.xaml - - - NonStandardPorts.xaml - - - PlusCountries.xaml - - - DiscourageSecureCore.xaml - - - SecureCore.xaml - - - Netshield.xaml - - - DeviceLimit.xaml - - - DeviceLimitExclamation.xaml - - - Servers.xaml - - - Alias.xaml - - - Rocket.xaml - - - Error.xaml - - - Thanks.xaml - - - AssignVpnConnections.xaml - - - WindowsClose.xaml - - - WindowsMaximize.xaml - - - WindowsMinimize.xaml - - - WindowsRestore.xaml - - - PortForward.xaml - - - - True - True - Strings.resx - - - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - - - Designer - - - - - ResXFileCodeGenerator - Strings.Designer.cs - + + + + all + + - - \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Crypto/AsymmetricKeyPairContract.cs b/src/ProtonVPN.Service.Contract/Crypto/AsymmetricKeyPairContract.cs deleted file mode 100644 index e2b8956ac..000000000 --- a/src/ProtonVPN.Service.Contract/Crypto/AsymmetricKeyPairContract.cs +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Runtime.Serialization; -using ProtonVPN.Crypto; - -namespace ProtonVPN.Service.Contract.Crypto -{ - [DataContract] - public class AsymmetricKeyPairContract : IValidatableObject - { - [DataMember] - public SecretKeyContract SecretKey { get; set; } - - [DataMember] - public PublicKeyContract PublicKey { get; set; } - - public AsymmetricKeyPairContract() - { - } - - public AsymmetricKeyPairContract(AsymmetricKeyPair asymmetricKeyPair) - { - SecretKey = new SecretKeyContract(asymmetricKeyPair.SecretKey); - PublicKey = new PublicKeyContract(asymmetricKeyPair.PublicKey); - } - - public AsymmetricKeyPair ConvertBack() - { - return new(SecretKey.ConvertBack(), PublicKey.ConvertBack()); - } - - public IEnumerable Validate(ValidationContext validationContext) - { - return PublicKey.Validate(validationContext).Concat(SecretKey.Validate(validationContext)); - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Properties/AssemblyInfo.cs b/src/ProtonVPN.Service.Contract/Properties/AssemblyInfo.cs deleted file mode 100644 index c7cf8009f..000000000 --- a/src/ProtonVPN.Service.Contract/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Runtime.InteropServices; - -[assembly: Guid("7af3fc3d-607f-47f7-b9b7-e05921d487e1")] diff --git a/src/ProtonVPN.Service.Contract/ProtonVPN.Service.Contract.csproj b/src/ProtonVPN.Service.Contract/ProtonVPN.Service.Contract.csproj deleted file mode 100644 index 4cdca724a..000000000 --- a/src/ProtonVPN.Service.Contract/ProtonVPN.Service.Contract.csproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - Debug - AnyCPU - {96C5D688-C0F1-4A63-9E26-E485FD0E1365} - Library - Properties - ProtonVPN.Service.Contract - ProtonVPN.Service.Contract - v4.7.2 - 512 - - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true - ..\bin\ - TRACE - prompt - 4 - latest - - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {03b8e43c-5680-4803-a745-0a104fe6620c} - ProtonVPN.Common - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - - - - - - - - 13.0.1 - - - - \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Settings/ServiceSettingsStateContract.cs b/src/ProtonVPN.Service.Contract/Settings/ServiceSettingsStateContract.cs deleted file mode 100644 index 59700f829..000000000 --- a/src/ProtonVPN.Service.Contract/Settings/ServiceSettingsStateContract.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Runtime.Serialization; -using ProtonVPN.Service.Contract.Vpn; - -namespace ProtonVPN.Service.Contract.Settings -{ - [DataContract] - public class ServiceSettingsStateContract - { - public ServiceSettingsStateContract( - VpnStateContract currentState) - { - CurrentState = currentState; - IsNetworkBlocked = currentState.NetworkBlocked; - } - - [DataMember] - public bool IsNetworkBlocked { get; private set; } - - [DataMember] - public VpnStateContract CurrentState { get; private set; } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/IVpnConnectionContract.cs b/src/ProtonVPN.Service.Contract/Vpn/IVpnConnectionContract.cs deleted file mode 100644 index 0e5fc3759..000000000 --- a/src/ProtonVPN.Service.Contract/Vpn/IVpnConnectionContract.cs +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.ServiceModel; -using System.Threading.Tasks; -using ProtonVPN.Service.Contract.Settings; - -namespace ProtonVPN.Service.Contract.Vpn -{ - [ServiceContract(CallbackContract = typeof(IVpnEventsContract))] - public interface IVpnConnectionContract - { - [OperationContract(IsOneWay = true)] - Task Connect(VpnConnectionRequestContract connectionRequest); - - [OperationContract(IsOneWay = true)] - Task UpdateAuthCertificate(string certificate); - - [OperationContract(IsOneWay = true)] - Task Disconnect(SettingsContract settings, VpnErrorTypeContract vpnError); - - [OperationContract(IsOneWay = true)] - Task RegisterCallback(); - - [OperationContract(IsOneWay = true)] - Task UnRegisterCallback(); - - [OperationContract(IsOneWay = false)] - Task RepeatState(); - - [OperationContract(IsOneWay = false)] - Task Total(); - - [OperationContract(IsOneWay = true)] - Task RepeatPortForwardingState(); - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/VpnConfigContract.cs b/src/ProtonVPN.Service.Contract/Vpn/VpnConfigContract.cs deleted file mode 100644 index 5760be9bd..000000000 --- a/src/ProtonVPN.Service.Contract/Vpn/VpnConfigContract.cs +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Net; -using System.Runtime.Serialization; -using ProtonVPN.Common; - -namespace ProtonVPN.Service.Contract.Vpn -{ - [DataContract] - public class VpnConfigContract : IValidatableObject - { - [DataMember(IsRequired = true)] - public IDictionary Ports { get; set; } - - [DataMember(IsRequired = true)] - public List CustomDns { get; set; } - - [DataMember(IsRequired = true)] - public SplitTunnelMode SplitTunnelMode { get; set; } - - [DataMember(IsRequired = true)] - public List SplitTunnelIPs { get; set; } - - [DataMember(IsRequired = true)] - public int NetShieldMode { get; set; } - - [DataMember(IsRequired = true)] - public VpnProtocolContract VpnProtocol { get; set; } - - [DataMember(IsRequired = true)] - public IList PreferredProtocols { get; set; } - - [DataMember(IsRequired = true)] - public bool ModerateNat { get; set; } - - [DataMember(IsRequired = true)] - public bool SplitTcp { get; set; } - - [DataMember(IsRequired = true)] - public bool? AllowNonStandardPorts { get; set; } - - [DataMember(IsRequired = true)] - public bool PortForwarding { get; set; } - - public IEnumerable Validate(ValidationContext validationContext) - { - foreach (string address in CustomDns) - { - if (!IPAddress.TryParse(address, out _)) - { - yield return new ValidationResult("Incorrect IP address format: " + address); - } - } - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/VpnConnectionRequestContract.cs b/src/ProtonVPN.Service.Contract/Vpn/VpnConnectionRequestContract.cs deleted file mode 100644 index 60a809ca9..000000000 --- a/src/ProtonVPN.Service.Contract/Vpn/VpnConnectionRequestContract.cs +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Runtime.Serialization; -using ProtonVPN.Service.Contract.Settings; - -namespace ProtonVPN.Service.Contract.Vpn -{ - [DataContract] - public class VpnConnectionRequestContract : IValidatableObject - { - [DataMember(IsRequired = true)] - public VpnHostContract[] Servers { get; set; } - - [DataMember(IsRequired = true)] - public VpnProtocolContract Protocol { get; set; } - - [DataMember(IsRequired = true)] - public VpnConfigContract VpnConfig { get; set; } - - [DataMember(IsRequired = true)] - public VpnCredentialsContract Credentials { get; set; } - - [DataMember(IsRequired = true)] - public SettingsContract Settings { get; set; } - - public IEnumerable Validate(ValidationContext validationContext) - { - return Credentials.Validate(validationContext) - .Concat(VpnConfig.Validate(validationContext)) - .Concat(GetServerValidationResult(validationContext)); - } - - private IEnumerable GetServerValidationResult(ValidationContext validationContext) - { - IEnumerable result = new List(); - - foreach (VpnHostContract server in Servers) - { - result = result.Concat(server.Validate(validationContext)); - } - - return result; - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/VpnCredentialsContract.cs b/src/ProtonVPN.Service.Contract/Vpn/VpnCredentialsContract.cs deleted file mode 100644 index fa3b87d10..000000000 --- a/src/ProtonVPN.Service.Contract/Vpn/VpnCredentialsContract.cs +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Runtime.Serialization; -using ProtonVPN.Service.Contract.Crypto; - -namespace ProtonVPN.Service.Contract.Vpn -{ - [DataContract] - public class VpnCredentialsContract : IValidatableObject - { - [DataMember] - public string Username { get; set; } - - [DataMember] - public string Password { get; set; } - - [DataMember] - public string ClientCertPem { get; set; } - - [DataMember] - public AsymmetricKeyPairContract ClientKeyPair { get; set; } - - public IEnumerable Validate(ValidationContext validationContext) - { - IEnumerable result = new List(); - - if (ClientKeyPair != null) - { - result = ClientKeyPair.Validate(validationContext); - } - - return result; - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/VpnHostContract.cs b/src/ProtonVPN.Service.Contract/Vpn/VpnHostContract.cs deleted file mode 100644 index 1531478b2..000000000 --- a/src/ProtonVPN.Service.Contract/Vpn/VpnHostContract.cs +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using System.Runtime.Serialization; -using Newtonsoft.Json; -using ProtonVPN.Common.Extensions; -using ProtonVPN.Common.Service.Validation; -using ProtonVPN.Crypto; -using ProtonVPN.Service.Contract.Crypto; - -namespace ProtonVPN.Service.Contract.Vpn -{ - [DataContract] - public class VpnHostContract : IValidatableObject - { - [DataMember] public string Name { get; set; } - - [DataMember] public string Ip { get; set; } - - [DataMember] public string Label { get; set; } - - [DataMember] public ServerPublicKeyContract X25519PublicKey { get; set; } - - [DataMember] public string Signature { get; set; } - - public IEnumerable Validate(ValidationContext validationContext) - { - if (!Ip.IsValidIpAddress()) - { - yield return new ValidationResult($"Invalid server IP address: {Ip} for server {Name}"); - } - - ValidationResult signatureValidationResult = ValidateSignature(validationContext); - if (signatureValidationResult != null) - { - yield return signatureValidationResult; - } - - ValidationResult publicKeyValidationResult = X25519PublicKey?.Validate(validationContext).FirstOrDefault(); - if (publicKeyValidationResult != null) - { - yield return publicKeyValidationResult; - } - } - - private ValidationResult ValidateSignature(ValidationContext validationContext) - { - if (Signature.IsNullOrEmpty()) - { - return new ValidationResult( - $"Missing signature for server with name {Name} and IP {Ip}."); - } - - string publicKey = GetPublicKey(validationContext); - if (publicKey != null) - { - Ed25519SignatureValidator validator = new(); - if (!validator.IsValid(GetServerValidationData(), Signature, publicKey)) - { - return new ValidationResult( - $"Incorrect signature {Signature} for server with name {Name} and IP {Ip}."); - } - } - else - { - return new ValidationResult("Missing public key for validating server object."); - } - - return null; - } - - private string GetPublicKey(ValidationContext validationContext) - { - bool result = validationContext.Items.TryGetValue(ValidatableObjectValidator.ServerValidationPublicKeyValue, - out object publicKeyValue); - return result ? (string)publicKeyValue : null; - } - - private string GetServerValidationData() - { - try - { - ServerValidationObject server = new() { Server = new PhysicalServer { EntryIP = Ip, Label = Label } }; - return JsonConvert.SerializeObject(server); - } - catch (JsonException) - { - return string.Empty; - } - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/Vpn/VpnStateContract.cs b/src/ProtonVPN.Service.Contract/Vpn/VpnStateContract.cs deleted file mode 100644 index d6e8278f0..000000000 --- a/src/ProtonVPN.Service.Contract/Vpn/VpnStateContract.cs +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Runtime.Serialization; -using ProtonVPN.Common.Networking; - -namespace ProtonVPN.Service.Contract.Vpn -{ - [DataContract] - public class VpnStateContract - { - public VpnStateContract( - VpnStatusContract status, - VpnErrorTypeContract error, - string endpointIp, - bool networkBlocked, - OpenVpnAdapter? openVpnAdapterType, - VpnProtocolContract vpnProtocol, - string label) - { - Status = status; - Error = error; - EndpointIp = endpointIp; - NetworkBlocked = networkBlocked; - OpenVpnAdapterType = openVpnAdapterType; - VpnProtocol = vpnProtocol; - Label = label; - } - - [DataMember] public VpnStatusContract Status { get; private set; } - - [DataMember] public VpnErrorTypeContract Error { get; private set; } - - [DataMember] public bool NetworkBlocked { get; private set; } - - [DataMember] public string EndpointIp { get; private set; } - - [DataMember] public OpenVpnAdapter? OpenVpnAdapterType { get; private set; } - - [DataMember] public VpnProtocolContract VpnProtocol { get; private set; } - - [DataMember] public string Label { get; private set; } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service.Contract/app.config b/src/ProtonVPN.Service.Contract/app.config deleted file mode 100644 index 8efcdf213..000000000 --- a/src/ProtonVPN.Service.Contract/app.config +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/ProtonVPN.Service/KillSwitch/KillSwitch.cs b/src/ProtonVPN.Service/KillSwitch/KillSwitch.cs index 113cd7936..e64d4325a 100644 --- a/src/ProtonVPN.Service/KillSwitch/KillSwitch.cs +++ b/src/ProtonVPN.Service/KillSwitch/KillSwitch.cs @@ -18,13 +18,13 @@ */ using Autofac; -using ProtonVPN.Common; using ProtonVPN.Common.KillSwitch; using ProtonVPN.Common.Networking; using ProtonVPN.Common.OS.Net; using ProtonVPN.Common.OS.Net.NetworkInterface; using ProtonVPN.Common.Vpn; -using ProtonVPN.Service.Contract.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; using ProtonVPN.Service.Firewall; using ProtonVPN.Service.Settings; using ProtonVPN.Service.Vpn; @@ -95,21 +95,22 @@ private void UpdateLeakProtectionStatus(VpnState state) } } - public void OnServiceSettingsChanged(SettingsContract settings) + public void OnServiceSettingsChanged(MainSettingsIpcEntity settings) { - if (_killSwitchMode != settings.KillSwitchMode) + KillSwitchMode killSwitchMode = (KillSwitchMode)settings.KillSwitchMode; + if (_killSwitchMode != killSwitchMode) { - HandleKillSwitchModeChange(settings.KillSwitchMode); + HandleKillSwitchModeChange(killSwitchMode); } else { - if (settings.KillSwitchMode == KillSwitchMode.Hard && !_firewall.LeakProtectionEnabled) + if (killSwitchMode == KillSwitchMode.Hard && !_firewall.LeakProtectionEnabled) { EnableLeakProtection(); } } - _killSwitchMode = settings.KillSwitchMode; + _killSwitchMode = killSwitchMode; } private void HandleKillSwitchModeChange(KillSwitchMode killSwitchMode) @@ -136,7 +137,7 @@ private void HandleKillSwitchModeChange(KillSwitchMode killSwitchMode) private void EnableLeakProtection() { - bool dnsLeakOnly = _serviceSettings.SplitTunnelSettings.Mode == SplitTunnelMode.Permit; + bool dnsLeakOnly = _serviceSettings.SplitTunnelSettings.Mode == SplitTunnelModeIpcEntity.Permit; bool persistent = _serviceSettings.KillSwitchMode == KillSwitchMode.Hard; INetworkInterface networkInterface = _networkInterfaceLoader.GetByVpnProtocol(_lastVpnState.VpnProtocol, _lastVpnState.OpenVpnAdapter); uint interfaceIndex = networkInterface?.Index ?? 0; diff --git a/src/ProtonVPN.Service/ProcessCommunication/AppControllerCaller.cs b/src/ProtonVPN.Service/ProcessCommunication/AppControllerCaller.cs new file mode 100644 index 000000000..1034a500f --- /dev/null +++ b/src/ProtonVPN.Service/ProcessCommunication/AppControllerCaller.cs @@ -0,0 +1,235 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; +using System.Text; +using System.Threading.Tasks; +using ProtonVPN.Common; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs; +using ProtonVPN.Common.Networking; +using ProtonVPN.Common.PortForwarding; +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.Service.Settings; +using ProtonVPN.Vpn.Common; +using ProtonVPN.Vpn.PortMapping; + +namespace ProtonVPN.Service.ProcessCommunication +{ + public class AppControllerCaller : IAppControllerCaller, IServiceSettingsAware + { + private readonly KillSwitch.KillSwitch _killSwitch; + private readonly ILogger _logger; + private readonly IServiceGrpcClient _grpcClient; + private readonly IEntityMapper _entityMapper; + private readonly IVpnConnection _vpnConnection; + private readonly IPortMappingProtocolClient _portMappingProtocolClient; + + private VpnState _vpnState; + private PortForwardingState _portForwardingState; + private ConnectionDetails _connectionDetails; + + public AppControllerCaller( + KillSwitch.KillSwitch killSwitch, + ILogger logger, + IServiceGrpcClient grpcClient, + IEntityMapper entityMapper, + IVpnConnection vpnConnection, + IPortMappingProtocolClient portMappingProtocolClient) + { + _killSwitch = killSwitch; + _logger = logger; + _grpcClient = grpcClient; + _entityMapper = entityMapper; + _vpnConnection = vpnConnection; + _vpnConnection.StateChanged += OnVpnStateChanged; + _vpnConnection.ConnectionDetailsChanged += OnConnectionDetailsChanged; + _portMappingProtocolClient = portMappingProtocolClient; + _portMappingProtocolClient.StateChanged += OnPortForwardingStateChanged; + } + + private async Task SendAsync(Func action) + { + IAppController controller = _grpcClient.AppController; + if (controller is null) + { + await _grpcClient.RecreateAsync(); + controller = _grpcClient.AppController; + if (controller is null) + { + return; + } + } + try + { + await action(controller); + } + catch (Exception e) + { + _logger.Error("Failed to send message to App. " + + "Recreating gRPC client and making a second and last try to send message.", e); + await OnSendAsyncFail(action); + } + } + + private async Task OnSendAsyncFail(Func action) + { + await _grpcClient.RecreateAsync(); + IAppController controller = _grpcClient.AppController; + if (controller is not null) + { + _logger.Info("Resending message after recreating gRPC client."); + try + { + await action(controller); + } + catch (Exception e) + { + _logger.Error("Failed to send message to App. " + + "No more retries left.", e); + } + } + else + { + _logger.Error("Cannot resend message " + + "after recreating gRPC client because the controller is null."); + } + } + + public async Task SendCurrentVpnStateAsync() + { + VpnState vpnState = _vpnState; + if (vpnState is not null) + { + await SendStateChangeAsync(vpnState); + } + } + + private async void OnVpnStateChanged(object sender, EventArgs e) + { + VpnState state = e.Data; + _vpnState = state; + await SendStateChangeAsync(state); + } + + private async Task SendStateChangeAsync(VpnState state) + { + _logger.Info($"Sending VPN Status '{state.Status}', Error: '{state.Error}', " + + $"LocalIp: '{state.LocalIp}', RemoteIp: '{state.RemoteIp}', Label: '{state.Label}', " + + $"VpnProtocol: '{state.VpnProtocol}', OpenVpnAdapter: '{state.OpenVpnAdapter}'"); + await SendAsync(appController => appController.VpnStateChange(CreateVpnStateIpcEntity(state))); + } + + private VpnStateIpcEntity CreateVpnStateIpcEntity(VpnState state) + { + bool killSwitchEnabled = _killSwitch.ExpectedLeakProtectionStatus(state); + if (!killSwitchEnabled) + { + _vpnState = new VpnState(state.Status, state.Error, state.VpnProtocol); + } + + return new VpnStateIpcEntity() + { + Status = _entityMapper.Map(state.Status), + Error = _entityMapper.Map(state.Error), + EndpointIp = state.RemoteIp, + NetworkBlocked = killSwitchEnabled, + OpenVpnAdapterType = _entityMapper.MapNullableStruct(state.OpenVpnAdapter), + VpnProtocol = _entityMapper.Map(state.VpnProtocol), + Label = state.Label, + }; + } + + private async void OnConnectionDetailsChanged(object sender, ConnectionDetails connectionDetails) + { + _connectionDetails = connectionDetails; + await SendConnectionDetailsChangeAsync(connectionDetails); + } + + private async Task SendConnectionDetailsChangeAsync(ConnectionDetails connectionDetails) + { + _logger.Info("Sending ConnectionDetails change while connected " + + $"to server with IP '{connectionDetails.ServerIpAddress}'"); + ConnectionDetailsIpcEntity connectionDetailsIpcEntity = + _entityMapper.Map(connectionDetails); + await SendAsync(appController => appController.ConnectionDetailsChange(connectionDetailsIpcEntity)); + } + + public async Task SendCurrentPortForwardingStateAsync() + { + await SendPortForwardingStateChangeAsync(_portForwardingState); + } + + private async void OnPortForwardingStateChanged(object sender, EventArgs e) + { + PortForwardingState state = e.Data; + _portForwardingState = state; + await SendPortForwardingStateChangeAsync(state); + } + + private async Task SendPortForwardingStateChangeAsync(PortForwardingState state) + { + StringBuilder logMessage = new StringBuilder().Append("Sending PortForwarding " + + $"Status '{state.Status}' triggered at '{state.TimestampUtc}'"); + if (state.MappedPort?.MappedPort is not null) + { + TemporaryMappedPort mappedPort = state.MappedPort; + logMessage.Append($", Port pair {mappedPort.MappedPort}, expiring in " + + $"{mappedPort.Lifetime} at {mappedPort.ExpirationDateUtc}"); + } + _logger.Info(logMessage.ToString()); + PortForwardingStateIpcEntity stateIpcEntity = + _entityMapper.Map(state); + await SendAsync(appController => appController.PortForwardingStateChange(stateIpcEntity)); + } + + public async void OnServiceSettingsChanged(MainSettingsIpcEntity settings) + { + VpnState vpnState = _vpnState ?? new VpnState(VpnStatus.Disconnected, VpnProtocol.Smart); + if (vpnState.Status == VpnStatus.Disconnected) + { + _logger.Info($"Sending VPN Service Settings Change. " + + $"Status: '{vpnState.Status}' (Error: '{vpnState.Error}')"); + await SendStateChangeAsync(vpnState); + } + else if (vpnState.Status == VpnStatus.Connected) + { + _vpnConnection.SetFeatures(CreateVpnFeatures(settings)); + } + } + + private VpnFeatures CreateVpnFeatures(MainSettingsIpcEntity settings) + { + return new() + { + SplitTcp = settings.SplitTcp, + NetShieldMode = settings.NetShieldMode, + AllowNonStandardPorts = settings.AllowNonStandardPorts, + PortForwarding = settings.PortForwarding, + ModerateNat = settings.ModerateNat, + }; + } + } +} diff --git a/src/ProtonVPN.TapInstaller/DriverInstallation/DriverState.cs b/src/ProtonVPN.Service/ProcessCommunication/IAppControllerCaller.cs similarity index 77% rename from src/ProtonVPN.TapInstaller/DriverInstallation/DriverState.cs rename to src/ProtonVPN.Service/ProcessCommunication/IAppControllerCaller.cs index 41662891c..dade5c781 100644 --- a/src/ProtonVPN.TapInstaller/DriverInstallation/DriverState.cs +++ b/src/ProtonVPN.Service/ProcessCommunication/IAppControllerCaller.cs @@ -17,15 +17,13 @@ * along with ProtonVPN. If not, see . */ -namespace TapInstaller.DriverInstallation +using System.Threading.Tasks; + +namespace ProtonVPN.Service.ProcessCommunication { - public enum DriverState + public interface IAppControllerCaller { - Unknown, - NoDeviceFound, - DeviceExists, - DeviceHasAProblem, - DeviceIsDisabled, - DeviceIsStopped + Task SendCurrentVpnStateAsync(); + Task SendCurrentPortForwardingStateAsync(); } } diff --git a/src/ProtonVPN.Service/Program.cs b/src/ProtonVPN.Service/Program.cs index 6a70be781..b906ce90c 100644 --- a/src/ProtonVPN.Service/Program.cs +++ b/src/ProtonVPN.Service/Program.cs @@ -17,7 +17,6 @@ * along with ProtonVPN. If not, see . */ -using System; using ProtonVPN.Service.Start; namespace ProtonVPN.Service @@ -26,14 +25,8 @@ public static class Program { public static void Main(string[] args) { - if (!Environment.UserInteractive) - { - Bootstrapper bootstrapper = new(); - bootstrapper.Initialize(); - return; - } - - new CommandLineStartStrategy().Start(args); + Bootstrapper bootstrapper = new(); + bootstrapper.Initialize(); } } } \ No newline at end of file diff --git a/src/ProtonVPN.Service/ProjectInstaller.Designer.cs b/src/ProtonVPN.Service/ProjectInstaller.Designer.cs deleted file mode 100644 index a789ca10b..000000000 --- a/src/ProtonVPN.Service/ProjectInstaller.Designer.cs +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -namespace ProtonVPN.Service -{ - partial class ProjectInstaller - { - ///

- /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.protonServiceProcessInstaller = new System.ServiceProcess.ServiceProcessInstaller(); - this.protonServiceInstaller = new System.ServiceProcess.ServiceInstaller(); - // - // protonServiceProcessInstaller - // - this.protonServiceProcessInstaller.Account = System.ServiceProcess.ServiceAccount.LocalSystem; - this.protonServiceProcessInstaller.Password = null; - this.protonServiceProcessInstaller.Username = null; - // - // protonServiceInstaller - // - this.protonServiceInstaller.DisplayName = "ProtonVpn Service"; - this.protonServiceInstaller.ServiceName = "ProtonVpn Service"; - this.protonServiceInstaller.StartType = System.ServiceProcess.ServiceStartMode.Automatic; - // - // ProjectInstaller - // - this.Installers.AddRange(new System.Configuration.Install.Installer[] { - this.protonServiceProcessInstaller, - this.protonServiceInstaller}); - - } - - #endregion - - private System.ServiceProcess.ServiceProcessInstaller protonServiceProcessInstaller; - private System.ServiceProcess.ServiceInstaller protonServiceInstaller; - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service/ProjectInstaller.resx b/src/ProtonVPN.Service/ProjectInstaller.resx deleted file mode 100644 index 2e93cf1e5..000000000 --- a/src/ProtonVPN.Service/ProjectInstaller.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 56 - - - 196, 17 - - - False - - \ No newline at end of file diff --git a/src/ProtonVPN.Service/Properties/Settings.Designer.cs b/src/ProtonVPN.Service/Properties/Settings.Designer.cs index 31b443092..bb14ea6be 100644 --- a/src/ProtonVPN.Service/Properties/Settings.Designer.cs +++ b/src/ProtonVPN.Service/Properties/Settings.Designer.cs @@ -1,23 +1,4 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 @@ -31,7 +12,7 @@ namespace ProtonVPN.Service.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/src/ProtonVPN.Service/ProtonVPN.Service.csproj b/src/ProtonVPN.Service/ProtonVPN.Service.csproj index 3e859852d..0f02c20b0 100644 --- a/src/ProtonVPN.Service/ProtonVPN.Service.csproj +++ b/src/ProtonVPN.Service/ProtonVPN.Service.csproj @@ -1,209 +1,93 @@ - - - + - Debug - AnyCPU - {25781B52-5858-4387-80A5-C9C38C32B3CC} WinExe - Properties - ProtonVPN.Service ProtonVPNService - v4.7.2 - 512 - true - - - - - AnyCPU - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - false - latest - - - AnyCPU - pdbonly - true - ..\bin\ - TRACE - prompt - 4 - false - latest - - protonvpn.ico app.manifest - - - - - - - - - - - - - - - - - + + net6.0-windows + false + ..\bin\ + false + Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Component - - - ProjectInstaller.cs - - + True True Settings.settings - - - + Component - + VpnService.cs - - - - - - - - - - - PreserveNewest - - - + SettingsSingleFileGenerator Settings.Designer.cs - - ProjectInstaller.cs - - - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - - - {CB301B4C-D518-41F5-873B-9B1F145DB4AF} - ProtonVPN.Native - - - {1cf1b8bf-57eb-4e49-b644-0a8f2dfeeb58} - ProtonVPN.NetworkFilter - - - {96c5d688-c0f1-4a63-9e26-e485fd0e1365} - ProtonVPN.Service.Contract - - - {4aa7ce6f-7154-49c1-b598-46055d590cad} - ProtonVPN.Vpn - + + + + + + + + + + 4.9.4 + + + 0.6.6 7.2.0 + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + 5.0.0 + 4.3.1 - - 5.0.0 - - - 4.3.0 - 4.3.0 + + all + + + + + - - \ No newline at end of file diff --git a/src/ProtonVPN.Service/ServiceController.cs b/src/ProtonVPN.Service/ServiceController.cs new file mode 100644 index 000000000..53d707309 --- /dev/null +++ b/src/ProtonVPN.Service/ServiceController.cs @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System.Collections.Generic; +using System.Threading.Tasks; +using ProtonVPN.Common.Helpers; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.ConnectLogs; +using ProtonVPN.Common.Logging.Categorization.Events.DisconnectLogs; +using ProtonVPN.Common.Threading; +using ProtonVPN.Common.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Auth; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Communication; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.Service.ProcessCommunication; +using ProtonVPN.Service.Settings; +using ProtonVPN.Vpn.Common; +using ProtonVPN.Vpn.PortMapping; + +namespace ProtonVPN.Service +{ + public class ServiceController : IServiceController + { + private readonly IVpnConnection _vpnConnection; + private readonly ILogger _logger; + private readonly IServiceSettings _serviceSettings; + private readonly ITaskQueue _taskQueue; + private readonly IPortMappingProtocolClient _portMappingProtocolClient; + private readonly IServiceGrpcClient _grpcClient; + private readonly IAppControllerCaller _appControllerCaller; + private readonly IEntityMapper _entityMapper; + + public ServiceController( + IVpnConnection vpnConnection, + ILogger logger, + IServiceSettings serviceSettings, + ITaskQueue taskQueue, + IPortMappingProtocolClient portMappingProtocolClient, + IServiceGrpcClient grpcClient, + IAppControllerCaller appControllerCaller, + IEntityMapper entityMapper) + { + _vpnConnection = vpnConnection; + _logger = logger; + _serviceSettings = serviceSettings; + _taskQueue = taskQueue; + _portMappingProtocolClient = portMappingProtocolClient; + _grpcClient = grpcClient; + _appControllerCaller = appControllerCaller; + _entityMapper = entityMapper; + } + + public async Task RegisterStateConsumer(StateConsumerIpcEntity stateConsumer) + { + if (stateConsumer?.ServerPort is null || stateConsumer.ServerPort < 1 || stateConsumer.ServerPort > ushort.MaxValue) + { + _logger.Error($"Received a new but invalid VPN Client gRPC port '{stateConsumer?.ServerPort}' to be registered."); + return; + } + + _logger.Info($"Received new VPN Client gRPC port {stateConsumer.ServerPort} to be registered."); + await _grpcClient.CreateAsync(stateConsumer.ServerPort); + } + + public async Task Connect(ConnectionRequestIpcEntity connectionRequest) + { + Ensure.NotNull(connectionRequest, nameof(connectionRequest)); + + _logger.Info("Connect requested"); + + _serviceSettings.Apply(connectionRequest.Settings); + + VpnConfig config = _entityMapper.Map(connectionRequest.Config); + config.OpenVpnAdapter = _serviceSettings.OpenVpnAdapter; + IReadOnlyList endpoints = _entityMapper.Map(connectionRequest.Servers); + VpnCredentials credentials = _entityMapper.Map(connectionRequest.Credentials); + _vpnConnection.Connect(endpoints, config, credentials); + } + + public async Task Disconnect(DisconnectionRequestIpcEntity disconnectionRequest) + { + _logger.Info($"Disconnect requested (Error: {disconnectionRequest.ErrorType})"); + _serviceSettings.Apply(disconnectionRequest.Settings); + _vpnConnection.Disconnect((VpnError)disconnectionRequest.ErrorType); + } + + public async Task UpdateAuthCertificate(AuthCertificateIpcEntity certificate) + { + _vpnConnection.UpdateAuthCertificate(certificate.Certificate); + } + + public async Task GetTrafficBytes() + { + return _entityMapper.Map(_vpnConnection.Total); + } + + public async Task ApplySettings(MainSettingsIpcEntity settings) + { + Ensure.NotNull(settings, nameof(settings)); + _serviceSettings.Apply(settings); + } + + public async Task RepeatState() + { + _taskQueue.Enqueue(async () => + { + await _appControllerCaller.SendCurrentVpnStateAsync(); + }); + } + + public async Task RepeatPortForwardingState() + { + _portMappingProtocolClient.RepeatState(); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Service/ServiceHosts/ServiceSettingsHostFactory.cs b/src/ProtonVPN.Service/ServiceHosts/ServiceSettingsHostFactory.cs deleted file mode 100644 index 94e9aa585..000000000 --- a/src/ProtonVPN.Service/ServiceHosts/ServiceSettingsHostFactory.cs +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using ProtonVPN.Common.Logging; -using ProtonVPN.Common.Service; -using ProtonVPN.Common.ServiceModel.Server; -using ProtonVPN.Service.Contract.Settings; -using ProtonVPN.Service.Settings; -using System; - -namespace ProtonVPN.Service.ServiceHosts -{ - public class ServiceSettingsHostFactory : ServiceHostFactory - { - private readonly ILogger _logger; - private readonly SettingsHandler _proxy; - - public ServiceSettingsHostFactory(ILogger logger, SettingsHandler proxy) - { - _logger = logger; - _proxy = proxy; - } - - public override SafeServiceHost Create() - { - var serviceHost = new SafeServiceHost(_proxy, new Uri("net.pipe://localhost/protonvpn-service")); - serviceHost.AddServiceEndpoint( - typeof(ISettingsContract), - BuildNamedPipe(), - "settings"); - - serviceHost.Description.Behaviors.Add(new ErrorLoggingBehavior(_logger)); - - return serviceHost; - } - } -} diff --git a/src/ProtonVPN.Service/ServiceHosts/VpnConnectionHostFactory.cs b/src/ProtonVPN.Service/ServiceHosts/VpnConnectionHostFactory.cs deleted file mode 100644 index 72c0ad23d..000000000 --- a/src/ProtonVPN.Service/ServiceHosts/VpnConnectionHostFactory.cs +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Collections.Generic; -using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Logging; -using ProtonVPN.Common.Service; -using ProtonVPN.Common.Service.Validation; -using ProtonVPN.Common.ServiceModel.Server; -using ProtonVPN.Service.Contract.Vpn; - -namespace ProtonVPN.Service.ServiceHosts -{ - internal class VpnConnectionHostFactory : ServiceHostFactory - { - private readonly ILogger _logger; - private readonly VpnConnectionHandler _proxy; - private readonly IConfiguration _config; - - public VpnConnectionHostFactory(ILogger logger, VpnConnectionHandler proxy, IConfiguration config) - { - _logger = logger; - _proxy = proxy; - _config = config; - } - - public override SafeServiceHost Create() - { - SafeServiceHost serviceHost = - new SafeServiceHost(_proxy, new Uri("net.pipe://localhost/protonvpn-service")); - - serviceHost.AddServiceEndpoint( - typeof(IVpnConnectionContract), - BuildNamedPipe(), - "connection"); - - serviceHost.Description.Behaviors.Add(new ErrorLoggingBehavior(_logger)); - serviceHost.Description.Behaviors.Add( - new ParameterValidatingBehavior( - new ValidatingParameterInspector(new List - { - new ValidatableObjectValidator(_config) - }))); - - return serviceHost; - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service/Settings/IServiceSettings.cs b/src/ProtonVPN.Service/Settings/IServiceSettings.cs index 9e25fd219..b227f864c 100644 --- a/src/ProtonVPN.Service/Settings/IServiceSettings.cs +++ b/src/ProtonVPN.Service/Settings/IServiceSettings.cs @@ -17,27 +17,23 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Service.Contract.Settings; using System; using ProtonVPN.Common.KillSwitch; using ProtonVPN.Common.Networking; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; namespace ProtonVPN.Service.Settings { public interface IServiceSettings { - event EventHandler SettingsChanged; - KillSwitchMode KillSwitchMode { get; } - - SplitTunnelSettingsContract SplitTunnelSettings { get; } - + SplitTunnelSettingsIpcEntity SplitTunnelSettings { get; } bool Ipv6LeakProtection { get; } - VpnProtocol VpnProtocol { get; } - OpenVpnAdapter OpenVpnAdapter { get; } - void Apply(SettingsContract settings); + event EventHandler SettingsChanged; + + void Apply(MainSettingsIpcEntity settings); } } \ No newline at end of file diff --git a/src/ProtonVPN.Service/Settings/IServiceSettingsAware.cs b/src/ProtonVPN.Service/Settings/IServiceSettingsAware.cs index 32ddd426a..4d545ee2a 100644 --- a/src/ProtonVPN.Service/Settings/IServiceSettingsAware.cs +++ b/src/ProtonVPN.Service/Settings/IServiceSettingsAware.cs @@ -17,12 +17,12 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Service.Contract.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; namespace ProtonVPN.Service.Settings { public interface IServiceSettingsAware { - void OnServiceSettingsChanged(SettingsContract settings); + void OnServiceSettingsChanged(MainSettingsIpcEntity settings); } } diff --git a/src/ProtonVPN.Service/Settings/ISettingsFileStorage.cs b/src/ProtonVPN.Service/Settings/ISettingsFileStorage.cs index 8604c80a2..5d4b98bf2 100644 --- a/src/ProtonVPN.Service/Settings/ISettingsFileStorage.cs +++ b/src/ProtonVPN.Service/Settings/ISettingsFileStorage.cs @@ -18,11 +18,11 @@ */ using ProtonVPN.Common.FileStoraging; -using ProtonVPN.Service.Contract.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; namespace ProtonVPN.Service.Settings { - public interface ISettingsFileStorage : IFileStorageBase + public interface ISettingsFileStorage : IFileStorageBase { } } \ No newline at end of file diff --git a/src/ProtonVPN.Service/Settings/ServiceSettings.cs b/src/ProtonVPN.Service/Settings/ServiceSettings.cs index 5baf81556..d9ab5ab84 100644 --- a/src/ProtonVPN.Service/Settings/ServiceSettings.cs +++ b/src/ProtonVPN.Service/Settings/ServiceSettings.cs @@ -21,7 +21,7 @@ using ProtonVPN.Common.Helpers; using ProtonVPN.Common.KillSwitch; using ProtonVPN.Common.Networking; -using ProtonVPN.Service.Contract.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; namespace ProtonVPN.Service.Settings { @@ -29,9 +29,9 @@ public class ServiceSettings : IServiceSettings { private readonly ISettingsFileStorage _storage; - private SettingsContract _settings; + private MainSettingsIpcEntity _settings; - public event EventHandler SettingsChanged; + public event EventHandler SettingsChanged; public ServiceSettings(ISettingsFileStorage storage) { @@ -43,16 +43,16 @@ public KillSwitchMode KillSwitchMode get { Load(); - return _settings.KillSwitchMode; + return (KillSwitchMode)_settings.KillSwitchMode; } } - public SplitTunnelSettingsContract SplitTunnelSettings + public SplitTunnelSettingsIpcEntity SplitTunnelSettings { get { Load(); - return _settings.SplitTunnel ??= new SplitTunnelSettingsContract(); + return _settings.SplitTunnel ??= new SplitTunnelSettingsIpcEntity(); } } @@ -70,7 +70,7 @@ public VpnProtocol VpnProtocol get { Load(); - return _settings.VpnProtocol; + return (VpnProtocol)_settings.VpnProtocol; } } @@ -79,11 +79,11 @@ public OpenVpnAdapter OpenVpnAdapter get { Load(); - return _settings.OpenVpnAdapter; + return (OpenVpnAdapter)_settings.OpenVpnAdapter; } } - public void Apply(SettingsContract settings) + public void Apply(MainSettingsIpcEntity settings) { Ensure.NotNull(settings, nameof(settings)); @@ -97,7 +97,7 @@ private void Load() { if (_settings == null) { - _settings = _storage.Get() ?? new SettingsContract(); + _settings = _storage.Get() ?? new MainSettingsIpcEntity(); } } diff --git a/src/ProtonVPN.Service/Settings/SettingsFileStorage.cs b/src/ProtonVPN.Service/Settings/SettingsFileStorage.cs index af970b5a5..2213210e8 100644 --- a/src/ProtonVPN.Service/Settings/SettingsFileStorage.cs +++ b/src/ProtonVPN.Service/Settings/SettingsFileStorage.cs @@ -21,11 +21,11 @@ using ProtonVPN.Common.FileStoraging; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Text.Serialization; -using ProtonVPN.Service.Contract.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; namespace ProtonVPN.Service.Settings { - public class SettingsFileStorage : FileStorageBase, ISettingsFileStorage + public class SettingsFileStorage : FileStorageBase, ISettingsFileStorage { public SettingsFileStorage(ILogger logger, ITextSerializerFactory serializerFactory, IConfiguration config) diff --git a/src/ProtonVPN.Service/Settings/SettingsHandler.cs b/src/ProtonVPN.Service/Settings/SettingsHandler.cs deleted file mode 100644 index d88625651..000000000 --- a/src/ProtonVPN.Service/Settings/SettingsHandler.cs +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.ServiceModel; -using ProtonVPN.Common.Helpers; -using ProtonVPN.Service.Contract.Settings; - -namespace ProtonVPN.Service.Settings -{ - [ServiceBehavior( - InstanceContextMode = InstanceContextMode.Single, - ConcurrencyMode = ConcurrencyMode.Single)] - public class SettingsHandler : ISettingsContract - { - private readonly IServiceSettings _settings; - - public SettingsHandler(IServiceSettings settings) - { - _settings = settings; - } - - public void Apply(SettingsContract settings) - { - Ensure.NotNull(settings, nameof(settings)); - - _settings.Apply(settings); - } - } -} diff --git a/src/ProtonVPN.Service/SplitTunneling/SplitTunnel.cs b/src/ProtonVPN.Service/SplitTunneling/SplitTunnel.cs index b12530788..1aa1722ef 100644 --- a/src/ProtonVPN.Service/SplitTunneling/SplitTunnel.cs +++ b/src/ProtonVPN.Service/SplitTunneling/SplitTunnel.cs @@ -17,9 +17,9 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Common; using ProtonVPN.Common.Vpn; using ProtonVPN.NetworkFilter; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; using ProtonVPN.Service.Firewall; using ProtonVPN.Service.Settings; using ProtonVPN.Service.Vpn; @@ -77,7 +77,7 @@ public void OnVpnConnecting(VpnState state) _appFilter.RemoveAll(); _permittedRemoteAddress.RemoveAll(); - if (_serviceSettings.SplitTunnelSettings.Mode == SplitTunnelMode.Permit) + if (_serviceSettings.SplitTunnelSettings.Mode == SplitTunnelModeIpcEntity.Permit) { _appFilter.Add(_serviceSettings.SplitTunnelSettings.AppPaths, Action.SoftBlock); } @@ -85,18 +85,18 @@ public void OnVpnConnecting(VpnState state) public void OnVpnConnected(VpnState state) { - if (_serviceSettings.SplitTunnelSettings.Mode == SplitTunnelMode.Disabled) + if (_serviceSettings.SplitTunnelSettings.Mode == SplitTunnelModeIpcEntity.Disabled) { return; } switch (_serviceSettings.SplitTunnelSettings.Mode) { - case SplitTunnelMode.Block: + case SplitTunnelModeIpcEntity.Block: DisableReversed(); Enable(); break; - case SplitTunnelMode.Permit: + case SplitTunnelModeIpcEntity.Permit: Disable(); EnableReversed(state); _appFilter.RemoveAll(); diff --git a/src/ProtonVPN.Service/SplitTunneling/SplitTunnelNetworkFilters.cs b/src/ProtonVPN.Service/SplitTunneling/SplitTunnelNetworkFilters.cs index 5d6bdcb7f..d99e8b933 100644 --- a/src/ProtonVPN.Service/SplitTunneling/SplitTunnelNetworkFilters.cs +++ b/src/ProtonVPN.Service/SplitTunneling/SplitTunnelNetworkFilters.cs @@ -98,7 +98,7 @@ private void Create() { _ipFilter = IpFilter.Create( Session.Dynamic(), - new DisplayData { Name = "Proton Technologies AG", Description = "ProtonVPN Split Tunnel provider" }); + new DisplayData { Name = "Proton AG", Description = "ProtonVPN Split Tunnel provider" }); _subLayer = _ipFilter.CreateSublayer( new DisplayData { Name = "ProtonVPN Split Tunnel filters" }, diff --git a/src/ProtonVPN.Service/Start/Bootstrapper.cs b/src/ProtonVPN.Service/Start/Bootstrapper.cs index 89d1891a2..3690e6849 100644 --- a/src/ProtonVPN.Service/Start/Bootstrapper.cs +++ b/src/ProtonVPN.Service/Start/Bootstrapper.cs @@ -20,6 +20,7 @@ using System; using System.Collections.Generic; using System.ServiceProcess; +using System.Threading; using Autofac; using ProtonVPN.Common.Configuration; using ProtonVPN.Common.Events; @@ -74,7 +75,10 @@ private void Start() Resolve().Clean(config.ServiceLogFolder, 10); FixNetworkAdapters(); - ServiceBase.Run(Resolve()); + + VpnService vpnService = Resolve(); + ServiceBase.Run(vpnService); + vpnService.CancellationToken.WaitHandle.WaitOne(); logger.Info("= ProtonVPN Service has exited ="); } diff --git a/src/ProtonVPN.Service/Start/CommandLineStartStrategy.cs b/src/ProtonVPN.Service/Start/CommandLineStartStrategy.cs deleted file mode 100644 index 2fa330847..000000000 --- a/src/ProtonVPN.Service/Start/CommandLineStartStrategy.cs +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Collections.Generic; -using System.Configuration.Install; -using System.Linq; -using System.Reflection; - -namespace ProtonVPN.Service.Start -{ - public class CommandLineStartStrategy - { - public void Start(IEnumerable commandLineArgs) - { - var arg = commandLineArgs.FirstOrDefault(); - if (arg == null) - return; - - if (arg.Equals("install", StringComparison.OrdinalIgnoreCase)) - { - ManagedInstallerClass.InstallHelper(new[] { Assembly.GetExecutingAssembly().Location }); - return; - } - - if (arg.Equals("uninstall", StringComparison.OrdinalIgnoreCase)) - { - ManagedInstallerClass.InstallHelper(new[] { "/u", Assembly.GetExecutingAssembly().Location }); - } - } - } -} diff --git a/src/ProtonVPN.Service/Start/ServiceModule.cs b/src/ProtonVPN.Service/Start/ServiceModule.cs index 5f5d041c7..d15430486 100644 --- a/src/ProtonVPN.Service/Start/ServiceModule.cs +++ b/src/ProtonVPN.Service/Start/ServiceModule.cs @@ -28,12 +28,14 @@ using ProtonVPN.Common.OS.Net.NetworkInterface; using ProtonVPN.Common.OS.Processes; using ProtonVPN.Common.OS.Services; -using ProtonVPN.Common.Service; using ProtonVPN.Common.Text.Serialization; using ProtonVPN.Common.Threading; +using ProtonVPN.EntityMapping.Installers; +using ProtonVPN.ProcessCommunication.Installers; +using ProtonVPN.ProcessCommunication.Service.Installers; using ProtonVPN.Service.Driver; using ProtonVPN.Service.Firewall; -using ProtonVPN.Service.ServiceHosts; +using ProtonVPN.Service.ProcessCommunication; using ProtonVPN.Service.Settings; using ProtonVPN.Service.SplitTunneling; using ProtonVPN.Service.Vpn; @@ -61,8 +63,8 @@ protected override void Load(ContainerBuilder builder) builder.RegisterType().As().SingleInstance(); - builder.RegisterType().SingleInstance(); - builder.RegisterType().AsImplementedInterfaces().AsSelf().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.Register(_ => new ServiceRetryPolicy(2, TimeSpan.FromSeconds(1))).SingleInstance(); builder.Register(c => new CalloutDriver( @@ -85,8 +87,6 @@ protected override void Load(ContainerBuilder builder) vpnModule.Load(builder); builder.Register(c => GetVpnConnection(c, vpnModule.GetVpnConnection(c))).As().SingleInstance(); - builder.RegisterType().As().SingleInstance(); - builder.RegisterType().As().SingleInstance(); builder.Register(_ => new SerialTaskQueue()).As().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().AsSelf().SingleInstance(); builder.RegisterType().SingleInstance(); @@ -128,6 +128,10 @@ protected override void Load(ContainerBuilder builder) builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().As().SingleInstance(); builder.RegisterType().As().SingleInstance(); + + builder.RegisterAssemblyModules(typeof(EntityMappingModule).Assembly); + builder.RegisterAssemblyModules(typeof(ProcessCommunicationModule).Assembly); + builder.RegisterAssemblyModules(typeof(ServiceProcessCommunicationModule).Assembly); } private IVpnConnection GetVpnConnection(IComponentContext c, IVpnConnection connection) diff --git a/src/ProtonVPN.Service/Vpn/Ipv6HandlingWrapper.cs b/src/ProtonVPN.Service/Vpn/Ipv6HandlingWrapper.cs index 31f398229..ff304c65c 100644 --- a/src/ProtonVPN.Service/Vpn/Ipv6HandlingWrapper.cs +++ b/src/ProtonVPN.Service/Vpn/Ipv6HandlingWrapper.cs @@ -24,6 +24,7 @@ using ProtonVPN.Common; using ProtonVPN.Common.Threading; using ProtonVPN.Common.Vpn; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; using ProtonVPN.Service.Firewall; using ProtonVPN.Service.Settings; using ProtonVPN.Vpn.Common; @@ -248,7 +249,7 @@ private void Queued(Action action) _taskQueue.Enqueue(action); } - private void OnServiceSettingsChanged(object sender, Contract.Settings.SettingsContract e) + private void OnServiceSettingsChanged(object sender, MainSettingsIpcEntity e) { Queued(ApplyIpv6Settings); } diff --git a/src/ProtonVPN.Service/VpnConnectionHandler.cs b/src/ProtonVPN.Service/VpnConnectionHandler.cs deleted file mode 100644 index 732535423..000000000 --- a/src/ProtonVPN.Service/VpnConnectionHandler.cs +++ /dev/null @@ -1,387 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.ServiceModel; -using System.Text; -using System.Threading.Tasks; -using ProtonVPN.Common; -using ProtonVPN.Common.Extensions; -using ProtonVPN.Common.Helpers; -using ProtonVPN.Common.Logging; -using ProtonVPN.Common.Logging.Categorization.Events.ConnectionLogs; -using ProtonVPN.Common.Logging.Categorization.Events.ConnectLogs; -using ProtonVPN.Common.Logging.Categorization.Events.DisconnectLogs; -using ProtonVPN.Common.Networking; -using ProtonVPN.Common.PortForwarding; -using ProtonVPN.Common.Threading; -using ProtonVPN.Common.Vpn; -using ProtonVPN.Service.Contract.PortForwarding; -using ProtonVPN.Service.Contract.Settings; -using ProtonVPN.Service.Contract.Vpn; -using ProtonVPN.Service.Settings; -using ProtonVPN.Vpn.Common; -using ProtonVPN.Vpn.PortMapping; - -namespace ProtonVPN.Service -{ - [ServiceBehavior( - InstanceContextMode = InstanceContextMode.Single, - ConcurrencyMode = ConcurrencyMode.Single)] - public class VpnConnectionHandler : IVpnConnectionContract, IServiceSettingsAware - { - private readonly object _callbackLock = new(); - private readonly List _callbacks = new(); - - private readonly KillSwitch.KillSwitch _killSwitch; - private readonly IVpnConnection _vpnConnection; - private readonly ILogger _logger; - private readonly IServiceSettings _serviceSettings; - private readonly ITaskQueue _taskQueue; - private readonly IPortMappingProtocolClient _portMappingProtocolClient; - - private VpnState _state = new(VpnStatus.Disconnected, default); - - public VpnConnectionHandler( - KillSwitch.KillSwitch killSwitch, - IVpnConnection vpnConnection, - ILogger logger, - IServiceSettings serviceSettings, - ITaskQueue taskQueue, - IPortMappingProtocolClient portMappingProtocolClient) - { - _killSwitch = killSwitch; - _vpnConnection = vpnConnection; - _logger = logger; - _serviceSettings = serviceSettings; - _taskQueue = taskQueue; - _portMappingProtocolClient = portMappingProtocolClient; - - _vpnConnection.StateChanged += VpnConnection_StateChanged; - _vpnConnection.ConnectionDetailsChanged += OnConnectionDetailsChanged; - _portMappingProtocolClient.StateChanged += PortForwarding_StateChanged; - } - - private void OnConnectionDetailsChanged(object sender, ConnectionDetails e) - { - Callback(callback => callback.OnConnectionDetailsChanged(Map(e))); - } - - public async Task Connect(VpnConnectionRequestContract connectionRequest) - { - Ensure.NotNull(connectionRequest, nameof(connectionRequest)); - - _logger.Info("Connect requested"); - - _serviceSettings.Apply(connectionRequest.Settings); - - VpnConfig config = Map(connectionRequest.VpnConfig); - IReadOnlyList endpoints = Map(connectionRequest.Servers); - VpnCredentials credentials = Map(connectionRequest.Credentials); - _vpnConnection.Connect(endpoints, config, credentials); - } - - public Task UpdateAuthCertificate(string certificate) - { - _vpnConnection.UpdateAuthCertificate(certificate); - return Task.CompletedTask; - } - - public Task Disconnect(SettingsContract settings, VpnErrorTypeContract vpnError) - { - _logger.Info($"Disconnect requested (Error: {vpnError})"); - - _serviceSettings.Apply(settings); - - _vpnConnection.Disconnect(Map(vpnError)); - - return Task.CompletedTask; - } - - public Task RepeatState() - { - _taskQueue.Enqueue(() => - { - CallbackStateChanged(_state); - }); - - return Task.CompletedTask; - } - - private void CallbackStateChanged(VpnState state) - { - _logger.Info($"Callbacking VPN state '{state.Status}' [Error: '{state.Error}', " + - $"LocalIp: '{state.LocalIp}', RemoteIp: '{state.RemoteIp}', Label: '{state.Label}', " + - $"VpnProtocol: '{state.VpnProtocol}', OpenVpnAdapter: '{state.OpenVpnAdapter}']"); - Callback(callback => callback.OnStateChanged(Map(state))); - } - - private void Callback(Action action) - { - lock (_callbackLock) - { - foreach (IVpnEventsContract callback in _callbacks.ToList()) - { - try - { - action(callback); - } - catch (Exception ex) when (ex.IsServiceCommunicationException()) - { - _logger.Warn($"Callback failed: {ex.Message}"); - _callbacks.Remove(callback); - } - catch (TimeoutException) - { - _logger.Warn("Callback timed out"); - } - } - } - } - - public Task Total() - { - return Map(_vpnConnection.Total).AsTask(); - } - - public Task RepeatPortForwardingState() - { - _portMappingProtocolClient.RepeatState(); - return Task.CompletedTask; - } - - public Task RegisterCallback() - { - lock (_callbackLock) - { - _callbacks.Add(OperationContext.Current.GetCallbackChannel()); - } - - return Task.CompletedTask; - } - - public Task UnRegisterCallback() - { - _logger.Info("Unregister callback requested"); - - lock (_callbackLock) - { - _callbacks.Remove(OperationContext.Current.GetCallbackChannel()); - } - - return Task.CompletedTask; - } - - public void OnServiceSettingsChanged(SettingsContract settings) - { - if (_state.Status == VpnStatus.Disconnected) - { - _logger.Info($"Callbacking VPN service settings change. Current state: {_state.Status} (Error: {_state.Error})"); - Callback(callback => callback.OnServiceSettingsStateChanged(CreateServiceSettingsState())); - } - else if (_state.Status == VpnStatus.Connected) - { - _vpnConnection.SetFeatures(CreateVpnFeatures(settings)); - } - } - - private VpnFeatures CreateVpnFeatures(SettingsContract settings) - { - return new() - { - SplitTcp = settings.SplitTcp, - NetShieldMode = settings.NetShieldMode, - AllowNonStandardPorts = settings.AllowNonStandardPorts, - PortForwarding = settings.PortForwarding, - ModerateNat = settings.ModerateNat, - }; - } - - private ServiceSettingsStateContract CreateServiceSettingsState() - { - return new(Map(_state)); - } - - private void VpnConnection_StateChanged(object sender, EventArgs e) - { - _state = e.Data; - CallbackStateChanged(_state); - } - - private void PortForwarding_StateChanged(object sender, EventArgs e) - { - PortForwardingState state = e.Data; - - StringBuilder logMessage = new StringBuilder().Append("Callbacking PortForwarding " + - $"state '{state.Status}' triggered at '{state.TimestampUtc}'"); - if (state.MappedPort?.MappedPort is not null) - { - TemporaryMappedPort mappedPort = state.MappedPort; - logMessage.Append($", Port pair {mappedPort.MappedPort}, expiring in " + - $"{mappedPort.Lifetime} around {mappedPort.ExpirationDateUtc}"); - } - _logger.Info(logMessage.ToString()); - - Callback(callback => callback.OnPortForwardingStateChanged(Map(state))); - } - - private PortForwardingStateContract Map(PortForwardingState state) - { - return new() - { - MappedPort = CreateTemporaryMappedPortContract(state.MappedPort), - Status = (PortMappingStatusContract)state.Status, - TimestampUtc = state.TimestampUtc - }; - } - - private TemporaryMappedPortContract CreateTemporaryMappedPortContract(TemporaryMappedPort mappedPort) - { - if (mappedPort?.MappedPort is null) - { - return null; - } - - return new() - { - InternalPort = mappedPort.MappedPort.InternalPort, - ExternalPort = mappedPort.MappedPort.ExternalPort, - Lifetime = mappedPort.Lifetime, - ExpirationDateUtc = mappedPort.ExpirationDateUtc - }; - } - - private VpnStateContract Map(VpnState state) - { - bool killSwitchEnabled = _killSwitch.ExpectedLeakProtectionStatus(state); - if (!killSwitchEnabled) - { - _state = new VpnState(state.Status, state.Error, state.VpnProtocol); - } - - return new VpnStateContract( - Map(state.Status), - Map(state.Error), - state.RemoteIp, - killSwitchEnabled, - state.OpenVpnAdapter, - Map(state.VpnProtocol), - state.Label); - } - - private ConnectionDetailsContract Map(ConnectionDetails connectionDetails) - { - return new ConnectionDetailsContract - { - ClientIpAddress = connectionDetails.ClientIpAddress, - ClientCountryIsoCode = connectionDetails.ClientCountryIsoCode, - ServerIpAddress = connectionDetails.ServerIpAddress, - }; - } - - private static VpnStatusContract Map(VpnStatus vpnStatus) - { - return (VpnStatusContract)vpnStatus; - } - - private static VpnCredentials Map(VpnCredentialsContract credentials) - { - return credentials.ClientCertPem.IsNullOrEmpty() || credentials.ClientKeyPair == null - ? new(credentials.Username, credentials.Password) - : new(credentials.ClientCertPem, credentials.ClientKeyPair.ConvertBack()); - } - - private static IReadOnlyList Map(IEnumerable servers) - { - return servers.Select(Map).ToList(); - } - - private static VpnHost Map(VpnHostContract server) - { - return new(server.Name, server.Ip, server.Label, server.X25519PublicKey?.ConvertBack(), server.Signature); - } - - private VpnConfig Map(VpnConfigContract config) - { - Dictionary> portConfig = - config.Ports.ToDictionary(p => Map(p.Key), p => (IReadOnlyCollection)p.Value.ToList()); - return new VpnConfig( - new VpnConfigParameters - { - Ports = portConfig, - CustomDns = config.CustomDns, - SplitTunnelMode = config.SplitTunnelMode, - SplitTunnelIPs = config.SplitTunnelIPs, - OpenVpnAdapter = _serviceSettings.OpenVpnAdapter, - VpnProtocol = Map(config.VpnProtocol), - PreferredProtocols = Map(config.PreferredProtocols), - ModerateNat = config.ModerateNat, - NetShieldMode = config.NetShieldMode, - SplitTcp = config.SplitTcp, - AllowNonStandardPorts = config.AllowNonStandardPorts, - PortForwarding = config.PortForwarding, - }); - } - - private IList Map(IList protocols) - { - return protocols.Select(Map).ToList(); - } - - private VpnProtocol Map(VpnProtocolContract contract) - { - return contract switch - { - VpnProtocolContract.OpenVpnTcp => VpnProtocol.OpenVpnTcp, - VpnProtocolContract.OpenVpnUdp => VpnProtocol.OpenVpnUdp, - VpnProtocolContract.WireGuard => VpnProtocol.WireGuard, - _ => VpnProtocol.Smart, - }; - } - - private VpnProtocolContract Map(VpnProtocol protocol) - { - return protocol switch - { - VpnProtocol.OpenVpnTcp => VpnProtocolContract.OpenVpnTcp, - VpnProtocol.OpenVpnUdp => VpnProtocolContract.OpenVpnUdp, - VpnProtocol.WireGuard => VpnProtocolContract.WireGuard, - VpnProtocol.Smart => VpnProtocolContract.Smart, - _ => throw new NotImplementedException("VpnProtocol has an unknown value."), - }; - } - - private static InOutBytesContract Map(InOutBytes bytes) - { - return new(bytes.BytesIn, bytes.BytesOut); - } - - private static VpnError Map(VpnErrorTypeContract errorType) - { - return (VpnError)errorType; - } - - private static VpnErrorTypeContract Map(VpnError errorType) - { - return (VpnErrorTypeContract)errorType; - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Service/VpnService.cs b/src/ProtonVPN.Service/VpnService.cs index db0b08d7d..cc82b64cb 100644 --- a/src/ProtonVPN.Service/VpnService.cs +++ b/src/ProtonVPN.Service/VpnService.cs @@ -18,9 +18,7 @@ */ using System; -using System.Collections.Generic; using System.ComponentModel; -using System.Linq; using System.ServiceProcess; using System.Threading; using ProtonVPN.Common.Configuration; @@ -31,9 +29,8 @@ using ProtonVPN.Common.Logging.Categorization.Events.OperatingSystemLogs; using ProtonVPN.Common.OS.Processes; using ProtonVPN.Common.OS.Services; -using ProtonVPN.Common.Service; -using ProtonVPN.Common.ServiceModel.Server; using ProtonVPN.Common.Vpn; +using ProtonVPN.ProcessCommunication.Contracts; using ProtonVPN.Service.Firewall; using ProtonVPN.Vpn.Common; @@ -41,35 +38,39 @@ namespace ProtonVPN.Service { internal partial class VpnService : ServiceBase { + public CancellationToken CancellationToken { get; private set; } + + private readonly CancellationTokenSource _cancellationTokenSource; private readonly ILogger _logger; private readonly IEventPublisher _eventPublisher; private readonly IConfiguration _config; private readonly IOsProcesses _osProcesses; private readonly IVpnConnection _vpnConnection; - private readonly List _serviceHostsFactories; - private readonly List _hosts; private readonly Ipv6 _ipv6; private bool _isConnected; + private IGrpcServer _grpcServer; public VpnService( ILogger logger, IEventPublisher eventPublisher, IConfiguration config, IOsProcesses osProcesses, - IEnumerable serviceHostsFactories, IVpnConnection vpnConnection, - Ipv6 ipv6) + Ipv6 ipv6, + IGrpcServer grpcServer) { _logger = logger; _eventPublisher = eventPublisher; _config = config; _osProcesses = osProcesses; - _serviceHostsFactories = new(serviceHostsFactories); _vpnConnection = vpnConnection; _ipv6 = ipv6; + _grpcServer = grpcServer; _vpnConnection.StateChanged += OnVpnStateChanged; - _hosts = new(); + _cancellationTokenSource = new CancellationTokenSource(); + CancellationToken = _cancellationTokenSource.Token; + InitializeComponent(); } @@ -77,12 +78,7 @@ protected override void OnStart(string[] args) { try { - foreach (ServiceHostFactory factory in _serviceHostsFactories) - { - SafeServiceHost host = factory.Create(); - host.Open(); - _hosts.Add(host); - } + _grpcServer.CreateAndStart(); } catch (Exception ex) { @@ -92,7 +88,7 @@ protected override void OnStart(string[] args) } } - protected override void OnStop() + protected override async void OnStop() { try { @@ -107,11 +103,7 @@ protected override void OnStop() _ipv6.Enable(); } - foreach (SafeServiceHost host in _hosts.ToList()) - { - _hosts.Remove(host); - host.Dispose(); - } + await _grpcServer?.KillAsync(); } catch (Exception ex) { @@ -119,6 +111,10 @@ protected override void OnStop() LogEvent($"OnStop: {ex}"); _eventPublisher.CaptureError(ex); } + finally + { + _cancellationTokenSource.Cancel(); + } } protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus) diff --git a/src/ProtonVPN.SourceGenerators/ProtonVPN.SourceGenerators.csproj b/src/ProtonVPN.SourceGenerators/ProtonVPN.SourceGenerators.csproj index af30f7b92..0092074eb 100644 --- a/src/ProtonVPN.SourceGenerators/ProtonVPN.SourceGenerators.csproj +++ b/src/ProtonVPN.SourceGenerators/ProtonVPN.SourceGenerators.csproj @@ -2,6 +2,7 @@ netstandard2.0 ..\bin + false diff --git a/src/ProtonVPN.TapInstaller/CustomAction.config b/src/ProtonVPN.TapInstaller/CustomAction.config deleted file mode 100644 index c837a2cee..000000000 --- a/src/ProtonVPN.TapInstaller/CustomAction.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/ProtonVPN.TapInstaller/CustomActions.cs b/src/ProtonVPN.TapInstaller/CustomActions.cs deleted file mode 100644 index d39b9ff80..000000000 --- a/src/ProtonVPN.TapInstaller/CustomActions.cs +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.IO; -using Microsoft.Deployment.WindowsInstaller; -using Microsoft.Win32; -using TapInstaller.DriverInstallation; -using TapInstaller.Logging; -using TapInstaller.Win32Processes; - -namespace TapInstaller -{ - public static class CustomActions - { - [CustomAction] - public static ActionResult InstallTapAdapter(Session session) - { - var logger = BuildLogger(session); - Logger.EnableLogging(logger); - - try - { - logger.Log("TapInstaller: Starting installation of tap adapter"); - var installer = BuildInstaller(session, logger); - - return Install(installer, session, logger); - } - catch (Exception ex) - { - logger.Log(ex.ToString()); - return ActionResult.Failure; - } - } - - [CustomAction] - public static ActionResult UninstallTapAdapter(Session session) - { - var logger = BuildLogger(session); - Logger.EnableLogging(logger); - - try - { - var installer = BuildInstaller(session, logger); - installer.Uninstall(); - - return ActionResult.Success; - } - catch (Exception ex) - { - logger.Log(ex.ToString()); - return ActionResult.Failure; - } - } - - private static ActionResult Install(TapAdapterInstaller installer, Session session, ILogger logger) - { - var result = installer.Install(); - if (result == SetupResult.Success) - { - return ActionResult.Success; - } - - if (result == SetupResult.RestartRequired) - { - logger.Log("Install: Restart required afted driver installation."); - session["REBOOT"] = "Force"; - return ActionResult.Success; - } - - logger.Log("TapInstaller: Installation failed."); - return ActionResult.Failure; - } - - private static TapAdapterInstaller BuildInstaller(Session session, ILogger logger) - { - string tapPath; - using (var key = Registry.LocalMachine.OpenSubKey("Software\\ProtonVPN\\TAP-ProtonVPN")) - { - tapPath = key?.GetValue("Path").ToString(); - logger.Log($"Install: Drivers path from registry: {tapPath}"); - } - - if (string.IsNullOrWhiteSpace(tapPath)) - tapPath = Path.Combine(session["ProgramFilesFolder"], "Proton Technologies", "ProtonVPNTap"); - - var pathResolver = new PathResolver(tapPath); - - var tapInstallRunner = new TapInstallRunner( - "tapprotonvpn", - new ProcessRunner(pathResolver.GetTapinstallPath(), pathResolver.GetDriversDir())); - - return new TapAdapterInstaller(tapInstallRunner, new TapInstallerStandardOutputParser()); - } - - private static ILogger BuildLogger(Session session) - { - return new InstallerSessionLogger(session); - } - } -} diff --git a/src/ProtonVPN.TapInstaller/DriverInstallation/TapAdapterInstaller.cs b/src/ProtonVPN.TapInstaller/DriverInstallation/TapAdapterInstaller.cs deleted file mode 100644 index 5f9ef06ac..000000000 --- a/src/ProtonVPN.TapInstaller/DriverInstallation/TapAdapterInstaller.cs +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Linq; -using TapInstaller.Logging; -using TapInstaller.Win32Processes; - -namespace TapInstaller.DriverInstallation -{ - public class TapAdapterInstaller - { - private readonly TapInstallRunner _tapInstallRunner; - private readonly TapInstallerStandardOutputParser _outputParser; - private readonly ILogger _logger; - - public TapAdapterInstaller(TapInstallRunner tapInstallRunner, TapInstallerStandardOutputParser outputParser) - { - _tapInstallRunner = tapInstallRunner; - _outputParser = outputParser; - _logger = Logger.GetLogger(); - } - - public SetupResult Install() - { - _logger.Log($"TapAdapterInstaller: Starting installing driver."); - - var result = InstalOrUpdateTapAdapter(); - var status = _tapInstallRunner.Status(); - - if (result == SetupResult.Failure) - return ProcessDeviceErrorCode(status); - - if (IsDisabled(status)) - _tapInstallRunner.Enable(); - - return result; - } - - public SetupResult Uninstall() - { - if (!_tapInstallRunner.IsInstalled()) - return SetupResult.Success; - - _tapInstallRunner.Remove(); - - return SetupResult.Success; - } - - private SetupResult InstalOrUpdateTapAdapter() - { - if (_tapInstallRunner.IsInstalled()) - { - return _tapInstallRunner.Remove().Success ? InstallInner() : SetupResult.Failure; - } - - return InstallInner(); - } - - private SetupResult InstallInner() - { - var result = _tapInstallRunner.Install(); - if (result.Success) - { - return SetupResult.Success; - } - - if (result.RestartRequired) - { - return SetupResult.RestartRequired; - } - - return SetupResult.Failure; - } - - private SetupResult ProcessDeviceErrorCode(ProcessExecutionResult status) - { - if (IsHealthyAndRunning(status)) - return SetupResult.Success; - - if (IsDriverUpdateRequired(status)) - { - _tapInstallRunner.Update(); - return SetupResult.Success; - } - - if (IsDriverReinstallationRequired(status) && IsPcRestartRequired(status)) - { - _logger.Log("TapAdapterInstaller: Driver is reinstalling and requesting restart."); - _tapInstallRunner.Reinstall(); - - return SetupResult.RestartRequired; - } - - if (IsDriverReinstallationRequired(status)) - { - _logger.Log("TapAdapterInstaller: Driver is reinstalling."); - _tapInstallRunner.Reinstall(); - - return SetupResult.Success; - } - - _logger.Log($"TapAdapterInstaller: Installation failed. Status: {status}"); - return SetupResult.Failure; - } - - private bool IsPcRestartRequired(ProcessExecutionResult result) - { - var code = ProblemCode(result); - return code.HasValue && new[] { 3, 14, 21, 28, 33, 38, 42, 44, 47, 54 }.Any(i => i == code.Value); - } - - private bool IsDriverUpdateRequired(ProcessExecutionResult result) - { - var code = ProblemCode(result); - return code.HasValue && new[] { 1, 10, 18, 24, 31, 41, 48, 52 }.Any(i => i == code.Value); - } - - private bool IsDriverReinstallationRequired(ProcessExecutionResult result) - { - var code = ProblemCode(result); - return code.HasValue && new[] {3, 18, 19, 28, 32, 37, 39, 40}.Any(i => i == code.Value); - } - - private bool IsHealthyAndRunning(ProcessExecutionResult result) - { - var status = _outputParser.ParseInstallerStatus(result.Output); - - return status == DriverState.DeviceExists && - status != DriverState.DeviceIsDisabled && - status != DriverState.DeviceIsStopped && - status != DriverState.DeviceHasAProblem; - } - - private bool IsDisabled(ProcessExecutionResult result) - { - return _outputParser.ParseInstallerStatus(result.Output) == DriverState.DeviceIsDisabled; - } - - private int? ProblemCode(ProcessExecutionResult result) - { - return _outputParser.ParseDeviceCode(result.Output); - } - } -} diff --git a/src/ProtonVPN.TapInstaller/DriverInstallation/TapInstallRunner.cs b/src/ProtonVPN.TapInstaller/DriverInstallation/TapInstallRunner.cs deleted file mode 100644 index 449b2b688..000000000 --- a/src/ProtonVPN.TapInstaller/DriverInstallation/TapInstallRunner.cs +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using TapInstaller.Extensions; -using TapInstaller.Logging; -using TapInstaller.Win32Processes; - -namespace TapInstaller.DriverInstallation -{ - public class TapInstallRunner - { - private readonly ProcessRunner _processRunner; - private readonly ILogger _logger; - private readonly string _hwid; - - public TapInstallRunner(string hwid, ProcessRunner processRunner) - { - _hwid = hwid; - _processRunner = processRunner; - _logger = Logger.GetLogger(); - } - - public ProcessExecutionResult Status() - { - _logger.Log("TapInstallRunner: Retrieving driver status."); - var result = _processRunner.Run($"status {_hwid}"); - _logger.Log($"TapInstallerRunner: Result: {result}"); - - return result; - } - - public bool IsInstalled() - { - _logger.Log("TapInstallRunner: Checking if driver is installed."); - var result = _processRunner.Run($"hwids {_hwid}"); - _logger.Log($"TapInstallerRunner: Result: {result}"); - - return result.Output.ContainsIgnoringCase(_hwid); - } - - public InstallationResult Install() - { - _logger.Log("TapInstallRunner: Running installation."); - var result = _processRunner.Run($"install OemVista.inf {_hwid}"); - _logger.Log($"TapInstallerRunner: Result: {result}"); - - return new InstallationResult(result); - } - - public InstallationResult Reinstall() - { - _logger.Log("TapInstallRunner: Reinstalling driver."); - Remove(); - var result = Install(); - _logger.Log("TapInstallRunner: Reinstalling completed."); - - return result; - } - - public InstallationResult Update() - { - _logger.Log("TapInstallRunner: Running update."); - var result = _processRunner.Run($"update OemVista.inf {_hwid}"); - _logger.Log($"TapInstallerRunner: Result: {result}"); - - return new InstallationResult(result); - } - - public InstallationResult Remove() - { - _logger.Log("TapInstallRunner: Running remove."); - var result = _processRunner.Run($"remove {_hwid}"); - _logger.Log($"TapInstallerRunner: Result: {result}"); - - return new InstallationResult(result); - } - - public ProcessExecutionResult Enable() - { - _logger.Log("TapInstallRunner: Running enable."); - var result = _processRunner.Run($"enable {_hwid}"); - _logger.Log($"TapInstallerRunner: Result: {result}"); - - return result; - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.TapInstaller/DriverInstallation/TapInstallerStandardOutputParser.cs b/src/ProtonVPN.TapInstaller/DriverInstallation/TapInstallerStandardOutputParser.cs deleted file mode 100644 index c6283a4c5..000000000 --- a/src/ProtonVPN.TapInstaller/DriverInstallation/TapInstallerStandardOutputParser.cs +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Text.RegularExpressions; -using TapInstaller.Extensions; - -namespace TapInstaller.DriverInstallation -{ - public class TapInstallerStandardOutputParser - { - private const string NoDeviceFound = "No matching devices found"; - private const string DeviceWasFound = " matching device(s) found"; - private const string DeviceHasAProblem = "The device has the following problem"; - private const string DeviceIsStopped = "Device is currently stopped"; - private const string DeviceIsDisabled = "Device is disabled"; - - public DriverState ParseInstallerStatus(string standardOutput) - { - if (standardOutput.ContainsIgnoringCase(DeviceHasAProblem)) - return DriverState.DeviceHasAProblem; - - if (standardOutput.ContainsIgnoringCase(DeviceIsDisabled)) - return DriverState.DeviceIsDisabled; - - if (standardOutput.ContainsIgnoringCase(DeviceIsStopped)) - return DriverState.DeviceIsStopped; - - if (standardOutput.Contains(NoDeviceFound)) - return DriverState.NoDeviceFound; - - if (standardOutput.Contains(DeviceWasFound)) - return DriverState.DeviceExists; - - return DriverState.Unknown; - } - - public int? ParseDeviceCode(string standardOutput) - { - var match = Regex.Match(standardOutput, ": ?(\\d+)"); - - if (!match.Success) - return null; - - if (int.TryParse(match.Groups[1].Value, out int code)) - return code; - - return null; - } - } -} diff --git a/src/ProtonVPN.TapInstaller/PathResolver.cs b/src/ProtonVPN.TapInstaller/PathResolver.cs deleted file mode 100644 index f9effeb60..000000000 --- a/src/ProtonVPN.TapInstaller/PathResolver.cs +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.IO; - -namespace TapInstaller -{ - public class PathResolver - { - private readonly string _baseDir; - - public PathResolver(string baseDir) - { - _baseDir = baseDir; - } - - public string GetTapinstallPath() - { - return Path.Combine(_baseDir, "installer", Bitness() ,"tapinstall.exe"); - } - - public string GetDriversDir() - { - return Path.Combine(_baseDir, WindowsVersion(), Bitness()); - } - - private static string Bitness() - { - return Environment.Is64BitOperatingSystem ? "x64" : "x86"; - } - - private static string WindowsVersion() - { - if (Environment.OSVersion.Version.Major == 10) - return "windows10"; - - return "windows7"; - } - } -} diff --git a/src/ProtonVPN.TapInstaller/Properties/AssemblyInfo.cs b/src/ProtonVPN.TapInstaller/Properties/AssemblyInfo.cs deleted file mode 100644 index a987806a6..000000000 --- a/src/ProtonVPN.TapInstaller/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -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: AssemblyTitle("InstallTap")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("InstallTap")] -[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("5f6696bc-a37d-4726-82ae-95ef42c307fc")] - -#if DEBUG -[assembly: InternalsVisibleTo("TapInstaller.Test")] -#endif diff --git a/src/ProtonVPN.TapInstaller/ProtonVPN.TapInstaller.csproj b/src/ProtonVPN.TapInstaller/ProtonVPN.TapInstaller.csproj deleted file mode 100644 index 0415d9437..000000000 --- a/src/ProtonVPN.TapInstaller/ProtonVPN.TapInstaller.csproj +++ /dev/null @@ -1,112 +0,0 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {5F6696BC-A37D-4726-82AE-95EF42C307FC} - Library - Properties - TapInstaller - TapInstaller - v4.7.2 - 512 - - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true - ..\bin\ - TRACE - prompt - 4 - latest - - - - - - - True - - - - - - - - - - - - - - - - - - - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - Always - - - - - - - - - \ No newline at end of file diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/installer/x86/tapinstall.exe b/src/ProtonVPN.TapInstaller/Resources/tap/installer/x86/tapinstall.exe deleted file mode 100644 index c55116fe42daf22b3368935ab430156a9d07204b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78336 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 bmZCLiE!v1mQO{Amt5< file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm - -; INSTALL/REMOVE DRIVER -; tapinstall install OemVista.inf tapoas -; tapinstall update OemVista.inf tapoas -; tapinstall remove tapoas - -;********************************************************* -; Note to Developers: -; -; If you are bundling the TAP-Windows driver with your app, -; you should try to rename it in such a way that it will -; not collide with other instances of TAP-Windows defined -; by other apps. Multiple versions of the TAP-Windows -; driver, each installed by different apps, can coexist -; on the same machine if you follow these guidelines. -; NOTE: these instructions assume you are editing the -; generated OemWin2k.inf file, not the source -; OemWin2k.inf.in file which is preprocessed by winconfig -; and uses macro definitions from settings.in. -; -; (1) Rename all tapXXXX instances in this file to -; something different (use at least 5 characters -; for this name!) -; (2) Change the "!define TAP" definition in openvpn.nsi -; to match what you changed tapXXXX to. -; (3) Change TARGETNAME in SOURCES to match what you -; changed tapXXXX to. -; (4) Change TAP_COMPONENT_ID in common.h to match what -; you changed tapXXXX to. -; (5) Change SZDEPENDENCIES in service.h to match what -; you changed tapXXXX to. -; (6) Change DeviceDescription and Provider strings. -; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you -; set DeviceDescription to. -; -;********************************************************* - -[Version] - Signature = "$Windows NT$" - CatalogFile = tapprotonvpn.cat - ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} - Provider = %Provider% - Class = Net - -; This version number should match the version -; number given in ..\version.m4. - DriverVer = 10/08/2020,9.24.6.601 - -[Strings] - DeviceDescription = "TAP-ProtonVPN Windows Adapter V9" - Provider = "TAP-ProtonVPN Windows Provider V9" - -;---------------------------------------------------------------- -; Manufacturer + Product Section (Done) -;---------------------------------------------------------------- -[Manufacturer] - %Provider% = tapprotonvpn, NTx86, NTamd64, NTARM64 - -[tapprotonvpn.NTx86] - %DeviceDescription% = tapprotonvpn.ndi, root\tapprotonvpn ; Root enumerated - %DeviceDescription% = tapprotonvpn.ndi, tapprotonvpn ; Legacy - -[tapprotonvpn.NTamd64] - %DeviceDescription% = tapprotonvpn.ndi, root\tapprotonvpn ; Root enumerated - %DeviceDescription% = tapprotonvpn.ndi, tapprotonvpn ; Legacy - -[tapprotonvpn.NTARM64] - %DeviceDescription% = tapprotonvpn.ndi, root\tapprotonvpn ; Root enumerated - %DeviceDescription% = tapprotonvpn.ndi, tapprotonvpn ; Legacy - -;--------------------------------------------------------------- -; Driver Section (Done) -;--------------------------------------------------------------- - -;----------------- Characteristics ------------ -; NCF_PHYSICAL = 0x04 -; NCF_VIRTUAL = 0x01 -; NCF_SOFTWARE_ENUMERATED = 0x02 -; NCF_HIDDEN = 0x08 -; NCF_NO_SERVICE = 0x10 -; NCF_HAS_UI = 0x80 -;----------------- Characteristics ------------ - -[tapprotonvpn.ndi] - CopyFiles = tapprotonvpn.driver, tapprotonvpn.files - AddReg = tapprotonvpn.reg - AddReg = tapprotonvpn.params.reg - DelReg = tapprotonvpn.params.delreg - Characteristics = 0x1 - *IfType = 53 ; IF_TYPE_PROP_VIRTUAL - *MediaType = 0x0 ; NdisMedium802_3 - *PhysicalMediaType = 0 ; NdisPhysicalMediumUnspecified - -[tapprotonvpn.ndi.Services] - AddService = tapprotonvpn, 2, tapprotonvpn.service - -[tapprotonvpn.reg] - HKR, Ndi, Service, 0, "tapprotonvpn" - HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" - HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" - HKR, , Manufacturer, 0, "%Provider%" - HKR, , ProductName, 0, "%DeviceDescription%" - -[tapprotonvpn.params.reg] - HKR, Ndi\params\MTU, ParamDesc, 0, "MTU" - HKR, Ndi\params\MTU, Type, 0, "int" - HKR, Ndi\params\MTU, Default, 0, "1500" - HKR, Ndi\params\MTU, Optional, 0, "0" - HKR, Ndi\params\MTU, Min, 0, "100" - HKR, Ndi\params\MTU, Max, 0, "1500" - HKR, Ndi\params\MTU, Step, 0, "1" - HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status" - HKR, Ndi\params\MediaStatus, Type, 0, "enum" - HKR, Ndi\params\MediaStatus, Default, 0, "0" - HKR, Ndi\params\MediaStatus, Optional, 0, "0" - HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled" - HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected" - HKR, Ndi\params\NetworkAddress, ParamDesc, 0, "MAC Address" - HKR, Ndi\params\NetworkAddress, Type, 0, "edit" - HKR, Ndi\params\NetworkAddress, Optional, 0, "1" - HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access" - HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum" - HKR, Ndi\params\AllowNonAdmin, Default, 0, "1" - HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0" - HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed" - HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed" - -[tapprotonvpn.params.delreg] - HKR, Ndi\params\MAC - -;---------------------------------------------------------------- -; Service Section -;---------------------------------------------------------------- - -;---------- Service Type ------------- -; SERVICE_KERNEL_DRIVER = 0x01 -; SERVICE_WIN32_OWN_PROCESS = 0x10 -;---------- Service Type ------------- - -;---------- Start Mode --------------- -; SERVICE_BOOT_START = 0x0 -; SERVICE_SYSTEM_START = 0x1 -; SERVICE_AUTO_START = 0x2 -; SERVICE_DEMAND_START = 0x3 -; SERVICE_DISABLED = 0x4 -;---------- Start Mode --------------- - -[tapprotonvpn.service] - DisplayName = %DeviceDescription% - ServiceType = 1 - StartType = 3 - ErrorControl = 1 - LoadOrderGroup = NDIS - ServiceBinary = %12%\tapprotonvpn.sys - -;----------------------------------------------------------------- -; File Installation -;----------------------------------------------------------------- - -;----------------- Copy Flags ------------ -; COPYFLG_NOSKIP = 0x02 -; COPYFLG_NOVERSIONCHECK = 0x04 -;----------------- Copy Flags ------------ - -; SourceDisksNames -; diskid = description[, [tagfile] [, , subdir]] -; 1 = "Intel Driver Disk 1",e100bex.sys,, - -[SourceDisksNames] - 1 = %DeviceDescription%, tapprotonvpn.sys - -; SourceDisksFiles -; filename_on_source = diskID[, [subdir][, size]] -; e100bex.sys = 1,, ; on distribution disk 1 - -[SourceDisksFiles] -tapprotonvpn.sys = 1 - -[DestinationDirs] - tapprotonvpn.files = 11 - tapprotonvpn.driver = 12 - -[tapprotonvpn.files] -; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK -; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK - -[tapprotonvpn.driver] - tapprotonvpn.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK - -;--------------------------------------------------------------- -; End -;--------------------------------------------------------------- diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/windows10/x86/tapprotonvpn.Sys b/src/ProtonVPN.TapInstaller/Resources/tap/windows10/x86/tapprotonvpn.Sys deleted file mode 100644 index a07b3d50cfc7d244c97d65275743d3c47821dc6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44416 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 Yah-0&$>e37;m^ZK>Ua-<+XdtN7g*j9(*OVf diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/windows10/x86/tapprotonvpn.cat b/src/ProtonVPN.TapInstaller/Resources/tap/windows10/x86/tapprotonvpn.cat deleted file mode 100644 index cc829f8da439b447c8d3c217a3205c2ab126618a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20117 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 file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm - -; INSTALL/REMOVE DRIVER -; tapinstall install OemVista.inf tapoas -; tapinstall update OemVista.inf tapoas -; tapinstall remove tapoas - -;********************************************************* -; Note to Developers: -; -; If you are bundling the TAP-Windows driver with your app, -; you should try to rename it in such a way that it will -; not collide with other instances of TAP-Windows defined -; by other apps. Multiple versions of the TAP-Windows -; driver, each installed by different apps, can coexist -; on the same machine if you follow these guidelines. -; NOTE: these instructions assume you are editing the -; generated OemWin2k.inf file, not the source -; OemWin2k.inf.in file which is preprocessed by winconfig -; and uses macro definitions from settings.in. -; -; (1) Rename all tapXXXX instances in this file to -; something different (use at least 5 characters -; for this name!) -; (2) Change the "!define TAP" definition in openvpn.nsi -; to match what you changed tapXXXX to. -; (3) Change TARGETNAME in SOURCES to match what you -; changed tapXXXX to. -; (4) Change TAP_COMPONENT_ID in common.h to match what -; you changed tapXXXX to. -; (5) Change SZDEPENDENCIES in service.h to match what -; you changed tapXXXX to. -; (6) Change DeviceDescription and Provider strings. -; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you -; set DeviceDescription to. -; -;********************************************************* - -[Version] - Signature = "$Windows NT$" - CatalogFile = tapprotonvpn.cat - ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} - Provider = %Provider% - Class = Net - -; This version number should match the version -; number given in ..\version.m4. - DriverVer = 10/08/2020,9.24.6.601 - -[Strings] - DeviceDescription = "TAP-ProtonVPN Windows Adapter V9" - Provider = "TAP-ProtonVPN Windows Provider V9" - -;---------------------------------------------------------------- -; Manufacturer + Product Section (Done) -;---------------------------------------------------------------- -[Manufacturer] - %Provider% = tapprotonvpn, NTamd64 - -[tapprotonvpn.NTamd64] - %DeviceDescription% = tapprotonvpn.ndi, root\tapprotonvpn ; Root enumerated - %DeviceDescription% = tapprotonvpn.ndi, tapprotonvpn ; Legacy - -;--------------------------------------------------------------- -; Driver Section (Done) -;--------------------------------------------------------------- - -;----------------- Characteristics ------------ -; NCF_PHYSICAL = 0x04 -; NCF_VIRTUAL = 0x01 -; NCF_SOFTWARE_ENUMERATED = 0x02 -; NCF_HIDDEN = 0x08 -; NCF_NO_SERVICE = 0x10 -; NCF_HAS_UI = 0x80 -;----------------- Characteristics ------------ - -[tapprotonvpn.ndi] - CopyFiles = tapprotonvpn.driver, tapprotonvpn.files - AddReg = tapprotonvpn.reg - AddReg = tapprotonvpn.params.reg - DelReg = tapprotonvpn.params.delreg - Characteristics = 0x1 - *IfType = 53 ; IF_TYPE_PROP_VIRTUAL - *MediaType = 0x0 ; NdisMedium802_3 - *PhysicalMediaType = 0 ; NdisPhysicalMediumUnspecified - -[tapprotonvpn.ndi.Services] - AddService = tapprotonvpn, 2, tapprotonvpn.service - -[tapprotonvpn.reg] - HKR, Ndi, Service, 0, "tapprotonvpn" - HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" - HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" - HKR, , Manufacturer, 0, "%Provider%" - HKR, , ProductName, 0, "%DeviceDescription%" - -[tapprotonvpn.params.reg] - HKR, Ndi\params\MTU, ParamDesc, 0, "MTU" - HKR, Ndi\params\MTU, Type, 0, "int" - HKR, Ndi\params\MTU, Default, 0, "1500" - HKR, Ndi\params\MTU, Optional, 0, "0" - HKR, Ndi\params\MTU, Min, 0, "100" - HKR, Ndi\params\MTU, Max, 0, "1500" - HKR, Ndi\params\MTU, Step, 0, "1" - HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status" - HKR, Ndi\params\MediaStatus, Type, 0, "enum" - HKR, Ndi\params\MediaStatus, Default, 0, "0" - HKR, Ndi\params\MediaStatus, Optional, 0, "0" - HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled" - HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected" - HKR, Ndi\params\NetworkAddress, ParamDesc, 0, "MAC Address" - HKR, Ndi\params\NetworkAddress, Type, 0, "edit" - HKR, Ndi\params\NetworkAddress, Optional, 0, "1" - HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access" - HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum" - HKR, Ndi\params\AllowNonAdmin, Default, 0, "1" - HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0" - HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed" - HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed" - -[tapprotonvpn.params.delreg] - HKR, Ndi\params\MAC - -;---------------------------------------------------------------- -; Service Section -;---------------------------------------------------------------- - -;---------- Service Type ------------- -; SERVICE_KERNEL_DRIVER = 0x01 -; SERVICE_WIN32_OWN_PROCESS = 0x10 -;---------- Service Type ------------- - -;---------- Start Mode --------------- -; SERVICE_BOOT_START = 0x0 -; SERVICE_SYSTEM_START = 0x1 -; SERVICE_AUTO_START = 0x2 -; SERVICE_DEMAND_START = 0x3 -; SERVICE_DISABLED = 0x4 -;---------- Start Mode --------------- - -[tapprotonvpn.service] - DisplayName = %DeviceDescription% - ServiceType = 1 - StartType = 3 - ErrorControl = 1 - LoadOrderGroup = NDIS - ServiceBinary = %12%\tapprotonvpn.sys - -;----------------------------------------------------------------- -; File Installation -;----------------------------------------------------------------- - -;----------------- Copy Flags ------------ -; COPYFLG_NOSKIP = 0x02 -; COPYFLG_NOVERSIONCHECK = 0x04 -;----------------- Copy Flags ------------ - -; SourceDisksNames -; diskid = description[, [tagfile] [, , subdir]] -; 1 = "Intel Driver Disk 1",e100bex.sys,, - -[SourceDisksNames] - 1 = %DeviceDescription%, tapprotonvpn.sys - -; SourceDisksFiles -; filename_on_source = diskID[, [subdir][, size]] -; e100bex.sys = 1,, ; on distribution disk 1 - -[SourceDisksFiles] -tapprotonvpn.sys = 1 - -[DestinationDirs] - tapprotonvpn.files = 11 - tapprotonvpn.driver = 12 - -[tapprotonvpn.files] -; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK -; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK - -[tapprotonvpn.driver] - tapprotonvpn.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK - -;--------------------------------------------------------------- -; End -;--------------------------------------------------------------- diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/windows7/x64/tapprotonvpn.cat b/src/ProtonVPN.TapInstaller/Resources/tap/windows7/x64/tapprotonvpn.cat deleted file mode 100644 index 61d12fae5cca9fc1dfd1da094c33b45ec05f7ea0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9933 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 nc&GNA@jdtb diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/windows7/x86/OemVista.inf b/src/ProtonVPN.TapInstaller/Resources/tap/windows7/x86/OemVista.inf deleted file mode 100644 index d12f48582..000000000 --- a/src/ProtonVPN.TapInstaller/Resources/tap/windows7/x86/OemVista.inf +++ /dev/null @@ -1,195 +0,0 @@ -; **************************************************************************** -; * Copyright (C) 2002-2014 OpenVPN Technologies, Inc. * -; * This program is free software; you can redistribute it and/or modify * -; * it under the terms of the GNU General Public License version 2 * -; * as published by the Free Software Foundation. * -; **************************************************************************** - -; SYNTAX CHECKER -; cd \WINDDK\3790\tools\chkinf -; chkinf c:\src\openvpn\tap-win32\i386\oemvista.inf -; OUTPUT -> file:///c:/WINDDK/3790/tools/chkinf/htm/c%23+src+openvpn+tap-win32+i386+__OemWin2k.htm - -; INSTALL/REMOVE DRIVER -; tapinstall install OemVista.inf tapoas -; tapinstall update OemVista.inf tapoas -; tapinstall remove tapoas - -;********************************************************* -; Note to Developers: -; -; If you are bundling the TAP-Windows driver with your app, -; you should try to rename it in such a way that it will -; not collide with other instances of TAP-Windows defined -; by other apps. Multiple versions of the TAP-Windows -; driver, each installed by different apps, can coexist -; on the same machine if you follow these guidelines. -; NOTE: these instructions assume you are editing the -; generated OemWin2k.inf file, not the source -; OemWin2k.inf.in file which is preprocessed by winconfig -; and uses macro definitions from settings.in. -; -; (1) Rename all tapXXXX instances in this file to -; something different (use at least 5 characters -; for this name!) -; (2) Change the "!define TAP" definition in openvpn.nsi -; to match what you changed tapXXXX to. -; (3) Change TARGETNAME in SOURCES to match what you -; changed tapXXXX to. -; (4) Change TAP_COMPONENT_ID in common.h to match what -; you changed tapXXXX to. -; (5) Change SZDEPENDENCIES in service.h to match what -; you changed tapXXXX to. -; (6) Change DeviceDescription and Provider strings. -; (7) Change PRODUCT_TAP_WIN_DEVICE_DESCRIPTION in constants.h to what you -; set DeviceDescription to. -; -;********************************************************* - -[Version] - Signature = "$Windows NT$" - CatalogFile = tapprotonvpn.cat - ClassGUID = {4d36e972-e325-11ce-bfc1-08002be10318} - Provider = %Provider% - Class = Net - -; This version number should match the version -; number given in ..\version.m4. - DriverVer = 10/08/2020,9.24.6.601 - -[Strings] - DeviceDescription = "TAP-ProtonVPN Windows Adapter V9" - Provider = "TAP-ProtonVPN Windows Provider V9" - -;---------------------------------------------------------------- -; Manufacturer + Product Section (Done) -;---------------------------------------------------------------- -[Manufacturer] - %Provider% = tapprotonvpn, NTx86 - -[tapprotonvpn.NTx86] - %DeviceDescription% = tapprotonvpn.ndi, root\tapprotonvpn ; Root enumerated - %DeviceDescription% = tapprotonvpn.ndi, tapprotonvpn ; Legacy - -;--------------------------------------------------------------- -; Driver Section (Done) -;--------------------------------------------------------------- - -;----------------- Characteristics ------------ -; NCF_PHYSICAL = 0x04 -; NCF_VIRTUAL = 0x01 -; NCF_SOFTWARE_ENUMERATED = 0x02 -; NCF_HIDDEN = 0x08 -; NCF_NO_SERVICE = 0x10 -; NCF_HAS_UI = 0x80 -;----------------- Characteristics ------------ - -[tapprotonvpn.ndi] - CopyFiles = tapprotonvpn.driver, tapprotonvpn.files - AddReg = tapprotonvpn.reg - AddReg = tapprotonvpn.params.reg - DelReg = tapprotonvpn.params.delreg - Characteristics = 0x1 - *IfType = 53 ; IF_TYPE_PROP_VIRTUAL - *MediaType = 0x0 ; NdisMedium802_3 - *PhysicalMediaType = 0 ; NdisPhysicalMediumUnspecified - -[tapprotonvpn.ndi.Services] - AddService = tapprotonvpn, 2, tapprotonvpn.service - -[tapprotonvpn.reg] - HKR, Ndi, Service, 0, "tapprotonvpn" - HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" - HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" - HKR, , Manufacturer, 0, "%Provider%" - HKR, , ProductName, 0, "%DeviceDescription%" - -[tapprotonvpn.params.reg] - HKR, Ndi\params\MTU, ParamDesc, 0, "MTU" - HKR, Ndi\params\MTU, Type, 0, "int" - HKR, Ndi\params\MTU, Default, 0, "1500" - HKR, Ndi\params\MTU, Optional, 0, "0" - HKR, Ndi\params\MTU, Min, 0, "100" - HKR, Ndi\params\MTU, Max, 0, "1500" - HKR, Ndi\params\MTU, Step, 0, "1" - HKR, Ndi\params\MediaStatus, ParamDesc, 0, "Media Status" - HKR, Ndi\params\MediaStatus, Type, 0, "enum" - HKR, Ndi\params\MediaStatus, Default, 0, "0" - HKR, Ndi\params\MediaStatus, Optional, 0, "0" - HKR, Ndi\params\MediaStatus\enum, "0", 0, "Application Controlled" - HKR, Ndi\params\MediaStatus\enum, "1", 0, "Always Connected" - HKR, Ndi\params\NetworkAddress, ParamDesc, 0, "MAC Address" - HKR, Ndi\params\NetworkAddress, Type, 0, "edit" - HKR, Ndi\params\NetworkAddress, Optional, 0, "1" - HKR, Ndi\params\AllowNonAdmin, ParamDesc, 0, "Non-Admin Access" - HKR, Ndi\params\AllowNonAdmin, Type, 0, "enum" - HKR, Ndi\params\AllowNonAdmin, Default, 0, "1" - HKR, Ndi\params\AllowNonAdmin, Optional, 0, "0" - HKR, Ndi\params\AllowNonAdmin\enum, "0", 0, "Not Allowed" - HKR, Ndi\params\AllowNonAdmin\enum, "1", 0, "Allowed" - -[tapprotonvpn.params.delreg] - HKR, Ndi\params\MAC - -;---------------------------------------------------------------- -; Service Section -;---------------------------------------------------------------- - -;---------- Service Type ------------- -; SERVICE_KERNEL_DRIVER = 0x01 -; SERVICE_WIN32_OWN_PROCESS = 0x10 -;---------- Service Type ------------- - -;---------- Start Mode --------------- -; SERVICE_BOOT_START = 0x0 -; SERVICE_SYSTEM_START = 0x1 -; SERVICE_AUTO_START = 0x2 -; SERVICE_DEMAND_START = 0x3 -; SERVICE_DISABLED = 0x4 -;---------- Start Mode --------------- - -[tapprotonvpn.service] - DisplayName = %DeviceDescription% - ServiceType = 1 - StartType = 3 - ErrorControl = 1 - LoadOrderGroup = NDIS - ServiceBinary = %12%\tapprotonvpn.sys - -;----------------------------------------------------------------- -; File Installation -;----------------------------------------------------------------- - -;----------------- Copy Flags ------------ -; COPYFLG_NOSKIP = 0x02 -; COPYFLG_NOVERSIONCHECK = 0x04 -;----------------- Copy Flags ------------ - -; SourceDisksNames -; diskid = description[, [tagfile] [, , subdir]] -; 1 = "Intel Driver Disk 1",e100bex.sys,, - -[SourceDisksNames] - 1 = %DeviceDescription%, tapprotonvpn.sys - -; SourceDisksFiles -; filename_on_source = diskID[, [subdir][, size]] -; e100bex.sys = 1,, ; on distribution disk 1 - -[SourceDisksFiles] -tapprotonvpn.sys = 1 - -[DestinationDirs] - tapprotonvpn.files = 11 - tapprotonvpn.driver = 12 - -[tapprotonvpn.files] -; TapPanel.cpl,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK -; cipsrvr.exe,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK - -[tapprotonvpn.driver] - tapprotonvpn.sys,,,6 ; COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK - -;--------------------------------------------------------------- -; End -;--------------------------------------------------------------- diff --git a/src/ProtonVPN.TapInstaller/Resources/tap/windows7/x86/tapprotonvpn.cat b/src/ProtonVPN.TapInstaller/Resources/tap/windows7/x86/tapprotonvpn.cat deleted file mode 100644 index 1e0558cfb5b00b4ec4906721357ea7e3ae2c433c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9933 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 diff --git a/src/ProtonVPN.TapInstaller/Win32Processes/ProcessExecutionResult.cs b/src/ProtonVPN.TapInstaller/Win32Processes/ProcessExecutionResult.cs deleted file mode 100644 index 18fcac182..000000000 --- a/src/ProtonVPN.TapInstaller/Win32Processes/ProcessExecutionResult.cs +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -namespace TapInstaller.Win32Processes -{ - public class ProcessExecutionResult - { - public ProcessExecutionResult(string output, int exitCode) - { - Output = output; - ExitCode = exitCode; - } - - public int ExitCode { get; } - - public string Output { get; } - - public override string ToString() => $"ProcessExecutionResult:\n ExitCode: {ExitCode},\n Output: {Output}\n"; - } -} diff --git a/src/ProtonVPN.TapInstaller/Win32Processes/ProcessRunner.cs b/src/ProtonVPN.TapInstaller/Win32Processes/ProcessRunner.cs deleted file mode 100644 index 9742b89e5..000000000 --- a/src/ProtonVPN.TapInstaller/Win32Processes/ProcessRunner.cs +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.ComponentModel; -using System.Diagnostics; -using TapInstaller.Logging; - -namespace TapInstaller.Win32Processes -{ - public class ProcessRunner - { - private readonly ILogger _logger; - private readonly string _processPath; - private readonly string _workingDir; - - public ProcessRunner(string processPath, string workingDir = "") - { - _logger = Logger.GetLogger(); - _processPath = processPath; - _workingDir = workingDir; - } - - public virtual ProcessExecutionResult Run(string args) - { - var process = CreateProcess(args); - string output = ""; - process.Start(); - _logger.Log($"ProcessRunner: Executing process: {ProcessName(process)}, id: {process.Id}"); - - while (!process.StandardOutput.EndOfStream) - output += process.StandardOutput.ReadLine() + "\n"; - - if (!process.WaitForExit(60000)) - throw new Win32Exception("Waiting for process exit timed out."); - - return new ProcessExecutionResult(output, process.ExitCode); - } - - private Process CreateProcess(string args) - { - _logger.Log($"ProcessRunner: Creating process {_processPath} with args: {args}"); - - var process = new Process(); - process.StartInfo.UseShellExecute = false; - process.StartInfo.CreateNoWindow = true; - process.StartInfo.RedirectStandardOutput = true; - process.StartInfo.RedirectStandardInput = true; - process.StartInfo.RedirectStandardError = true; - process.StartInfo.FileName = _processPath; - process.StartInfo.Arguments = args; - if (!string.IsNullOrEmpty(_workingDir)) - process.StartInfo.WorkingDirectory = _workingDir; - - return process; - } - - private string ProcessName(Process process) - { - try - { - // Accessing Process.ProcessName throws InvalidOperationException if process has already exited. - return process.ProcessName; - } - catch (InvalidOperationException) - { - return string.Empty; - } - } - } -} diff --git a/src/ProtonVPN.TlsVerify/ProtonVPN.TlsVerify.csproj b/src/ProtonVPN.TlsVerify/ProtonVPN.TlsVerify.csproj index 2e02b0cc6..91ff535a8 100644 --- a/src/ProtonVPN.TlsVerify/ProtonVPN.TlsVerify.csproj +++ b/src/ProtonVPN.TlsVerify/ProtonVPN.TlsVerify.csproj @@ -1,61 +1,21 @@ - - - + - Debug - AnyCPU - {643CA26B-B80E-4E6A-AAE4-BCEC021D2AA0} - Exe - ProtonVPN.TlsVerify - ProtonVPN.TlsVerify - v4.7.2 - 512 - true - true - - - AnyCPU - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - false - latest - - - AnyCPU - pdbonly - true + net6.0-windows + WinExe + false ..\bin\ - TRACE - prompt - 4 - false - latest + false - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - + + + + all + - \ No newline at end of file diff --git a/src/ProtonVPN.Translations/Properties/Resources.Designer.cs b/src/ProtonVPN.Translations/Properties/Resources.Designer.cs index 3d0b36319..6f7523af8 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.Designer.cs +++ b/src/ProtonVPN.Translations/Properties/Resources.Designer.cs @@ -3882,42 +3882,6 @@ public static string Dialogs_Proxy_msg_ProxyDetected { } } - /// - /// Looks up a localized string similar to Restart. - /// - public static string Dialogs_Reboot_btn_Reboot { - get { - return ResourceManager.GetString("Dialogs_Reboot_btn_Reboot", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Continue without. - /// - public static string Dialogs_Reboot_btn_SkipReboot { - get { - return ResourceManager.GetString("Dialogs_Reboot_btn_SkipReboot", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to To avoid any Proton VPN errors, we strongly recommend restarting your computer to update other applications first. Proton VPN will automatically resume installation afterward. Restart now?. - /// - public static string Dialogs_Reboot_msg { - get { - return ResourceManager.GetString("Dialogs_Reboot_msg", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Your computer needs to restart. - /// - public static string Dialogs_Reboot_ttl { - get { - return ResourceManager.GetString("Dialogs_Reboot_ttl", resourceCulture); - } - } - /// /// Looks up a localized string similar to Got it. /// diff --git a/src/ProtonVPN.Translations/Properties/Resources.resx b/src/ProtonVPN.Translations/Properties/Resources.resx index aae0ed075..129782510 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.resx @@ -2501,18 +2501,6 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Close - - Restart - - - Continue without - - - To avoid any Proton VPN errors, we strongly recommend restarting your computer to update other applications first. Proton VPN will automatically resume installation afterward. Restart now? - - - Your computer needs to restart - Enable @@ -2660,6 +2648,9 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Proton VPN could not connect because the TUN network adapter is already in use. Please disconnect any active VPNs and retry. Alternatively, switch to the TAP adapter (you can change back to TUN in the Advanced Settings). + + + Proton VPN could not connect because a WireGuard network adapter is already in use. Please disconnect any active VPNs and retry. Alternatively, you can switch protocols in the Advanced Settings. Check invoices diff --git a/src/ProtonVPN.Translations/ProtonVPN.Translations.csproj b/src/ProtonVPN.Translations/ProtonVPN.Translations.csproj index 136787300..168cd7b6f 100644 --- a/src/ProtonVPN.Translations/ProtonVPN.Translations.csproj +++ b/src/ProtonVPN.Translations/ProtonVPN.Translations.csproj @@ -1,76 +1,25 @@ - - - + - Debug - AnyCPU - {2A00C747-8BC0-4EF1-A53E-37A7E156D910} + net6.0-windows Library - Properties - ProtonVPN.Translations - ProtonVPN.Translations - v4.7.2 - 512 - true - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false + true + true ..\bin\ - TRACE - prompt - 4 - latest + false - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - True - True - Resources.resx - - - - - - - PublicResXFileCodeGenerator - Designer - Resources.Designer.cs - - - - - - 1.0.5 + + + + + all + - \ No newline at end of file diff --git a/src/ProtonVPN.Update/Config/IFeedUrlProvider.cs b/src/ProtonVPN.Update/Config/IFeedUrlProvider.cs index 0ed54c702..01154c3bc 100644 --- a/src/ProtonVPN.Update/Config/IFeedUrlProvider.cs +++ b/src/ProtonVPN.Update/Config/IFeedUrlProvider.cs @@ -18,7 +18,6 @@ */ using System; -using System.Collections.Generic; using ProtonVPN.Update.Feed; namespace ProtonVPN.Update.Config @@ -26,6 +25,6 @@ namespace ProtonVPN.Update.Config public interface IFeedUrlProvider { event EventHandler FeedUrlChanged; - IEnumerable GetFeedUrls(); + Uri GetFeedUrl(); } } \ No newline at end of file diff --git a/src/ProtonVPN.Update/IRelease.cs b/src/ProtonVPN.Update/IRelease.cs index 84a66df2c..b06612260 100644 --- a/src/ProtonVPN.Update/IRelease.cs +++ b/src/ProtonVPN.Update/IRelease.cs @@ -31,7 +31,5 @@ public interface IRelease bool New { get; } IReadOnlyList ChangeLog { get; } - - bool DisableAutoUpdate { get; } } } diff --git a/src/ProtonVPN.Update/ProtonVPN.Update.csproj b/src/ProtonVPN.Update/ProtonVPN.Update.csproj index 8825b808d..0834d3c67 100644 --- a/src/ProtonVPN.Update/ProtonVPN.Update.csproj +++ b/src/ProtonVPN.Update/ProtonVPN.Update.csproj @@ -1,121 +1,29 @@ - - - + - Debug - AnyCPU - {90FDF2B3-25C9-428D-B264-5A5FAEB2D988} + net6.0-windows Library - Properties - ProtonVPN.Update - ProtonVPN.Update - v4.7.2 - 512 - - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\bin\ - TRACE - prompt - 4 - latest + false - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {03b8e43c-5680-4803-a745-0a104fe6620c} - ProtonVPN.Common - - + 4.9.4 + 13.0.1 + + all + - \ No newline at end of file diff --git a/src/ProtonVPN.Update/Releases/Release.cs b/src/ProtonVPN.Update/Releases/Release.cs index e009d0222..cc5f9e405 100644 --- a/src/ProtonVPN.Update/Releases/Release.cs +++ b/src/ProtonVPN.Update/Releases/Release.cs @@ -36,7 +36,6 @@ public Release(ReleaseResponse release, bool earlyAccess, Version currentVersion Version = Version.Parse(_release.Version); EarlyAccess = earlyAccess; New = Version > currentVersion; - DisableAutoUpdate = release.DisableAutoUpdate; } public Version Version { get; } @@ -47,8 +46,6 @@ public Release(ReleaseResponse release, bool earlyAccess, Version currentVersion public bool New { get; } - public bool DisableAutoUpdate { get; } - public FileResponse File => _release.File; public bool Empty() diff --git a/src/ProtonVPN.Update/Responses/ReleaseResponse.cs b/src/ProtonVPN.Update/Responses/ReleaseResponse.cs index 001e6b309..20e74f6ce 100644 --- a/src/ProtonVPN.Update/Responses/ReleaseResponse.cs +++ b/src/ProtonVPN.Update/Responses/ReleaseResponse.cs @@ -29,10 +29,7 @@ public class ReleaseResponse public FileResponse File; public IReadOnlyList ChangeLog; - - [Obsolete("To be deleted on 3.0.0")] - public bool DisableAutoUpdate; - + public DateTimeOffset? ReleaseDate; public string MinimumOsVersion; diff --git a/src/ProtonVPN.Update/Storage/WebReleaseStorage.cs b/src/ProtonVPN.Update/Storage/WebReleaseStorage.cs index bf587a99c..98b88706b 100644 --- a/src/ProtonVPN.Update/Storage/WebReleaseStorage.cs +++ b/src/ProtonVPN.Update/Storage/WebReleaseStorage.cs @@ -57,23 +57,9 @@ public async Task> Releases() private async Task Categories() { - int numOfFeeds = 0; - - foreach (Uri feedUrl in _config.FeedUriProvider.GetFeedUrls()) - { - numOfFeeds++; - CategoriesResponse response = await GetFilteredAsync(feedUrl); - if (DoesResponseContainReleases(response)) - { - return response; - } - - _logger.Warn($"The feed '{feedUrl}' has no releases."); - } - - string errorMessage = $"All feeds failed to return any release version. Called {numOfFeeds} feed(s)."; - _logger.Error(errorMessage); - throw new Exception(errorMessage); + Uri feedUrl = _config.FeedUriProvider.GetFeedUrl(); + CategoriesResponse response = await GetFilteredAsync(feedUrl); + return response; } private async Task GetFilteredAsync(Uri feedUrl) @@ -127,12 +113,5 @@ private static T ResponseStreamResult(Stream stream) return result; } - - private bool DoesResponseContainReleases(CategoriesResponse response) - { - return response is not null && - response.Categories.Any() && - response.Categories.SelectMany(c => c.Releases).Any(); - } } } \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/AppUpdate.cs b/src/ProtonVPN.Update/Updates/AppUpdate.cs index f45239cdb..476e5115d 100644 --- a/src/ProtonVPN.Update/Updates/AppUpdate.cs +++ b/src/ProtonVPN.Update/Updates/AppUpdate.cs @@ -96,7 +96,9 @@ public IAppUpdate CachedLatest(bool earlyAccess) public async Task Downloaded() { if (Available && !Ready) + { await _state.AppUpdates.Download(_state.NewRelease); + } return this; } @@ -109,13 +111,7 @@ public async Task Validated() public async Task Started(bool auto) { - if (auto && _state.NewRelease.DisableAutoUpdate) - { - throw new AppUpdateException("Automatic update to this release is disabled"); - } - await _state.AppUpdates.StartUpdate(_state.NewRelease); - return this; } @@ -129,7 +125,9 @@ private AppUpdate WithReleases(IReadOnlyList releases, bool earlyAccess state.Releases = releases; state.NewRelease = newRelease; if (releaseChanged) + { state.Ready = false; + } return new AppUpdate(state); } diff --git a/src/ProtonVPN.Vpn/Config/Module.cs b/src/ProtonVPN.Vpn/Config/Module.cs index d9a286437..027a093b9 100644 --- a/src/ProtonVPN.Vpn/Config/Module.cs +++ b/src/ProtonVPN.Vpn/Config/Module.cs @@ -31,6 +31,7 @@ using ProtonVPN.Vpn.Gateways; using ProtonVPN.Vpn.LocalAgent; using ProtonVPN.Vpn.Management; +using ProtonVPN.Vpn.NetworkAdapters; using ProtonVPN.Vpn.Networks; using ProtonVPN.Vpn.OpenVpn; using ProtonVPN.Vpn.PortMapping; @@ -52,6 +53,8 @@ public void Load(ContainerBuilder builder) builder.RegisterType().As().SingleInstance(); builder.RegisterType().SingleInstance(); builder.RegisterType().SingleInstance(); + builder.RegisterType().SingleInstance(); + builder.RegisterType().SingleInstance(); builder.Register(c => { ILogger logger = c.Resolve(); @@ -114,6 +117,8 @@ public IVpnConnection GetVpnConnection(IComponentContext c) eventPublisher, networkAdapterManager, networkInterfaceLoader, + c.Resolve(), + c.Resolve(), new QueueingEventsWrapper( taskQueue, new PortForwardingWrapper( diff --git a/src/ProtonVPN.Vpn/Connection/NetworkAdapterStatusWrapper.cs b/src/ProtonVPN.Vpn/Connection/NetworkAdapterStatusWrapper.cs index fb22a4ef4..66f50b3dd 100644 --- a/src/ProtonVPN.Vpn/Connection/NetworkAdapterStatusWrapper.cs +++ b/src/ProtonVPN.Vpn/Connection/NetworkAdapterStatusWrapper.cs @@ -29,6 +29,7 @@ using ProtonVPN.Common.OS.Net.NetworkInterface; using ProtonVPN.Common.Vpn; using ProtonVPN.Vpn.Common; +using ProtonVPN.Vpn.NetworkAdapters; using ProtonVPN.Vpn.Networks; namespace ProtonVPN.Vpn.Connection @@ -39,6 +40,8 @@ internal class NetworkAdapterStatusWrapper : ISingleVpnConnection private readonly IEventPublisher _eventPublisher; private readonly INetworkAdapterManager _networkAdapterManager; private readonly INetworkInterfaceLoader _networkInterfaceLoader; + private readonly WintunAdapter _wintunAdapter; + private readonly TapAdapter _tapAdapter; private readonly ISingleVpnConnection _origin; private VpnEndpoint _endpoint; @@ -51,11 +54,15 @@ public NetworkAdapterStatusWrapper( IEventPublisher eventPublisher, INetworkAdapterManager networkAdapterManager, INetworkInterfaceLoader networkInterfaceLoader, + WintunAdapter wintunAdapter, + TapAdapter tapAdapter, ISingleVpnConnection origin) { _logger = logger; _eventPublisher = eventPublisher; _networkAdapterManager = networkAdapterManager; + _wintunAdapter = wintunAdapter; + _tapAdapter = tapAdapter; _networkInterfaceLoader = networkInterfaceLoader; _origin = origin; @@ -82,15 +89,27 @@ public void Connect(VpnEndpoint endpoint, VpnCredentials credentials, VpnConfig _logger.Info("WireGuard protocol selected. No network adapters to check."); Connect(); } - else if (IsOpenVpnNetworkAdapterAvailable(config.OpenVpnAdapter)) - { - _logger.Info("Preferred network adapter found. " + - $"(Protocol: {_config.VpnProtocol}, OpenVpnAdapter: {_config.OpenVpnAdapter})"); - Connect(); - } else { - HandleOpenVpnAdapterUnavailable(); + if (config.OpenVpnAdapter == OpenVpnAdapter.Tun) + { + _wintunAdapter.Create(); + } + else + { + _tapAdapter.Create(); + } + + if (IsOpenVpnNetworkAdapterAvailable(config.OpenVpnAdapter)) + { + _logger.Info("Preferred network adapter found. " + + $"(Protocol: {_config.VpnProtocol}, OpenVpnAdapter: {_config.OpenVpnAdapter})"); + Connect(); + } + else + { + HandleOpenVpnAdapterUnavailable(); + } } } @@ -202,6 +221,10 @@ private void Origin_StateChanged(object sender, EventArgs e) { HandleConnectedWithWireGuard(); } + else if (e.Data.Status == VpnStatus.Disconnected && e.Data.VpnProtocol is VpnProtocol.OpenVpnTcp or VpnProtocol.OpenVpnUdp) + { + _wintunAdapter.Close(); + } else if (e.Data.Error != VpnError.None && e.Data.Error != VpnError.NoneKeepEnabledKillSwitch && e.Data.Status == VpnStatus.Disconnecting) diff --git a/src/ProtonVPN.Vpn/LocalAgent/PInvoke.cs b/src/ProtonVPN.Vpn/LocalAgent/PInvoke.cs index 6bba2fa7b..32ececbc4 100644 --- a/src/ProtonVPN.Vpn/LocalAgent/PInvoke.cs +++ b/src/ProtonVPN.Vpn/LocalAgent/PInvoke.cs @@ -25,11 +25,9 @@ namespace ProtonVPN.Vpn.LocalAgent { internal class PInvoke { - private static int Bits => Environment.Is64BitOperatingSystem ? 64 : 32; - private const string DllName = "LocalAgent"; - private static string BinaryPath => $"Resources\\{Bits}-bit\\{DllName}.dll"; + private static string BinaryPath => $"Resources\\{DllName}.dll"; static PInvoke() { diff --git a/src/ProtonVPN.Vpn/NetworkAdapters/TapAdapter.cs b/src/ProtonVPN.Vpn/NetworkAdapters/TapAdapter.cs new file mode 100644 index 000000000..b5c07a213 --- /dev/null +++ b/src/ProtonVPN.Vpn/NetworkAdapters/TapAdapter.cs @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2022 Proton Technologies AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System.Runtime.InteropServices; +using System; +using ProtonVPN.Common.Configuration; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.OperatingSystemLogs; + +namespace ProtonVPN.Vpn.NetworkAdapters +{ + public class TapAdapter + { + private const string INSTALL_ACTIONS_DLL = "ProtonVPN.InstallActions.dll"; + private IntPtr _libraryHandle; + private readonly IConfiguration _config; + private readonly ILogger _logger; + private readonly Logger _nativeLogger; + + public TapAdapter(IConfiguration config, ILogger logger) + { + _config = config; + _logger = logger; + _nativeLogger = LogMessage; + } + + public void Create() + { + if (InitializeLibrary()) + { + ulong result = InstallTapAdapter(_config.OpenVpn.TapInstallerDir); + if (result != 0) + { + _logger.Error($"Failed to install TAP adapter. Error code: {result}"); + } + } + } + + private bool InitializeLibrary() + { + if (_libraryHandle == IntPtr.Zero) + { + _libraryHandle = LoadLibrary(_config.InstallActionsPath); + if (_libraryHandle == IntPtr.Zero) + { + _logger.Error($"Failed to initialize {_config.InstallActionsPath}. Error code: {GetLastError()}"); + return false; + } + + InitLogger(_nativeLogger); + } + + return true; + } + + private void LogMessage(IntPtr ptr) + { + string message = Marshal.PtrToStringAuto(ptr); + _logger.Info(message); + } + + private delegate void Logger(IntPtr messagePtr); + + [DllImport("kernel32.dll", CharSet = CharSet.Unicode)] + private static extern IntPtr LoadLibrary(string path); + + [DllImport("kernel32.dll")] + public static extern uint GetLastError(); + + [DllImport(INSTALL_ACTIONS_DLL, EntryPoint = "InstallTapAdapter", SetLastError = true)] + private static extern ulong InstallTapAdapter([MarshalAs(UnmanagedType.LPWStr)] string tapInstallerDir); + + [DllImport(INSTALL_ACTIONS_DLL, EntryPoint = "InitLogger", SetLastError = true)] + private static extern ulong InitLogger(Logger logger); + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Vpn/NetworkAdapters/WintunAdapter.cs b/src/ProtonVPN.Vpn/NetworkAdapters/WintunAdapter.cs new file mode 100644 index 000000000..8d4ed6c60 --- /dev/null +++ b/src/ProtonVPN.Vpn/NetworkAdapters/WintunAdapter.cs @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2022 Proton Technologies AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; +using System.Runtime.InteropServices; +using ProtonVPN.Common.Configuration; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.NetworkLogs; +using ProtonVPN.Common.Logging.Categorization.Events.OperatingSystemLogs; + +namespace ProtonVPN.Vpn.NetworkAdapters +{ + public class WintunAdapter + { + private const string WINTUN_DLL = "wintun.dll"; + private const string WINTUN_GUID = "344dba6b-6834-489e-a556-22e36b502107"; + + private readonly ILogger _logger; + private readonly IConfiguration _config; + private readonly WintunLogger _wintunLogger; + + private IntPtr _adapterHandle; + private IntPtr _libraryHandle; + + public WintunAdapter(ILogger logger, IConfiguration config) + { + _logger = logger; + _config = config; + _wintunLogger = LogWintunMessage; + } + + public bool Create() + { + InitializeLibrary(); + if (_libraryHandle == IntPtr.Zero) + { + _logger.Error($"Failed to initialize wintun library. Error code: {GetLastError()}"); + return false; + } + + WintunSetLogger(_wintunLogger); + + _adapterHandle = WintunOpenAdapter(_config.WintunAdapterName); + if (_adapterHandle == IntPtr.Zero) + { + Guid guid = Guid.Parse(WINTUN_GUID); + _adapterHandle = WintunCreateAdapter("ProtonVPN TUN", "ProtonVPN TUN", ref guid); + if (_adapterHandle == IntPtr.Zero) + { + _logger.Error($"Failed to create wintun adapter. Error code: {GetLastError()}"); + } + } + + return _adapterHandle != IntPtr.Zero; + } + + public void Close() + { + if (_adapterHandle != IntPtr.Zero) + { + WintunCloseAdapter(_adapterHandle); + _adapterHandle = IntPtr.Zero; + } + } + + private void InitializeLibrary() + { + if (_libraryHandle == IntPtr.Zero) + { + _libraryHandle = LoadLibrary(_config.WintunDriverPath); + } + } + + private delegate void WintunLogger(int level, ulong timestamp, + [MarshalAs(UnmanagedType.LPWStr)] string message); + + private void LogWintunMessage(int level, ulong timestamp, string message) + { + string fullMessage = $"Wintun: {message}"; + switch (level) + { + case 0: + _logger.Info(fullMessage); + break; + case 1: + _logger.Warn(fullMessage); + break; + case 2: + _logger.Error(fullMessage); + break; + default: + _logger.Debug(fullMessage); + break; + } + } + + [DllImport(WINTUN_DLL, EntryPoint = "WintunCreateAdapter", SetLastError = true)] + private static extern IntPtr WintunCreateAdapter([MarshalAs(UnmanagedType.LPWStr)] string name, [MarshalAs(UnmanagedType.LPWStr)] string type, ref Guid guid); + + [DllImport(WINTUN_DLL, EntryPoint = "WintunOpenAdapter", SetLastError = true)] + private static extern IntPtr WintunOpenAdapter(string name); + + [DllImport(WINTUN_DLL, EntryPoint = "WintunCloseAdapter", SetLastError = true)] + private static extern void WintunCloseAdapter(IntPtr adapterHandle); + + [DllImport(WINTUN_DLL, EntryPoint = "WintunSetLogger", SetLastError = true)] + private static extern void WintunSetLogger(WintunLogger logger); + + [DllImport("kernel32.dll", CharSet = CharSet.Unicode)] + private static extern IntPtr LoadLibrary(string path); + + [DllImport("kernel32.dll")] + public static extern uint GetLastError(); + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj b/src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj index 44fd6c603..add1f1e1c 100644 --- a/src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj +++ b/src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj @@ -1,235 +1,76 @@ - - - + - Debug - AnyCPU - {4AA7CE6F-7154-49C1-B598-46055D590CAD} Library - Properties - ProtonVPN.Vpn - ProtonVPN.Vpn - v4.7.2 - 512 - - true - full - false ..\bin\ - DEBUG;TRACE - prompt - 4 + false latest - false - pdbonly - true ..\bin\ - TRACE - prompt - 4 + false latest true - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {03b8e43c-5680-4803-a745-0a104fe6620c} - ProtonVPN.Common - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - - - {7882140D-32E1-4AB5-853D-F8DED5256DC2} - ProtonVPN.WireGuardDriver - + + + - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - + PreserveNewest - - + PreserveNewest - + PreserveNewest - + PreserveNewest - + + PreserveNewest - - - PreserveNewest - - - - - + 4.9.4 + 13.0.1 5.0.0 + + - 5.0.0 + 6.0.0 + + + all - - copy $(ProjectDir)Resources\64-bit\tunnel.dll $(ProjectDir)$(OutDir) -copy $(ProjectDir)Resources\64-bit\wireguard.dll $(ProjectDir)$(OutDir) + copy $(MSBuildProjectDirectory)\Resources\tunnel.dll $(MSBuildProjectDirectory)\$(OutputPath)tunnel.dll +copy $(MSBuildProjectDirectory)\Resources\wireguard.dll $(MSBuildProjectDirectory)\$(OutputPath)wireguard.dll + + + net6.0-windows + false + + + \ No newline at end of file diff --git a/src/ProtonVPN.Vpn/Resources/32-bit/libcrypto-1_1.dll b/src/ProtonVPN.Vpn/Resources/32-bit/libcrypto-1_1.dll deleted file mode 100644 index 042cb0bd56cb8ce33a13b88ad168006849088c45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2583552 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%0AIbqE*4 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

}kW__YPj<=m$ftP- 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%0A&Pqvt%=*dNsSdY?c8H@* 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≧9@^v^7Myj2vLsxjh~ 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

QHGSLW%sAdm-CVIQ@%=d$`pP!SCA4l zs}m(ER?g&b$fQ3B702hf#92_o^hy8ZYf>luO-!f`pLqUUW>Tq&UEHE7;ur;L4YpZM z!RVtE!IN-e05H%aG|48H!#txcLyy}0v{Q|Y(B5c$nWz2vgt(1ci9*NwD|8zDI|})m zsbmpKMrv`6i!`Yp_uik>@m&SE%;Q@M+Z65CSn5mBJ}{$09Z=qn zdUZ(u2K!8sUi=V}Rr+w=#S;k)=kXm4XB*Ly)Ptb|1MT@L+E4a~GvrNP8FB*A{}->+xk(RdL_Fyw7z9aGi*uO(IO z1SjfLwe9Lus=5}e2vt(*y@=t8ndpCDP$j><0gC4F3}PDW%6OiH9)X-Y9nX)jgO)U& z|3ES^o|~8#zSnqG18I_tjy#@3TRfh$IeCQfJWkKTV=FIas*YIMMP@-1zoHEN?HF-V9?`lN~!;wD}G4*&aTzprpW$t z{i{>zzwRjOXMF_gjbO-vGwtw8a4g-vpjV{A(K3csIEav!s)#}U(4>I)KAM4KL_$I6 zzyu-Pvwh+?*gGkDRntj}FxP~e9As^?i@Ra*CWXNY6}+cUyw9zN3f`$72kWOaXjEcu zx((}`FPP24wZ@=oz`Bwq;BGMRC2{vY7~ql&Sb?BNd;(Om?%AmY>&g;Wosn3wHO3=_9BFwkojkoKUc|iK&afDg9lL-rvc4G`)icOYQP3 z>T)0SF{#Uj)GqreyGQJqb);Tj>+Y=A1fio|zs^gT@7?Q^{vI;E(|2p*o1HwqC*6_K z*?veSk8id|WFN7o5!Q`58sF?r#`kZtkJ0$@u@*Dv`4?VsI?FF&F{ghiP%M?-VH{cn zGxkU4@OY30*AhS5E2cwH#exypPl1aEc7grNwL;SVN+C&5?oV8f@2YBv&$o%atf?6z z^JP?_t`jKag&Egf(;c~|aIDYsNOYed*JAy_)250*_lpusIlfvhO@<_sK8?5R|H!k0 z*H)5SiXCV4yaBaeL8Fov%PQK%(qar+9X}gc93C;8b5P|*#f}{BAcsv1l>I7>U3O`3 zsDD8!E?$wixNl4Xhmo_7(zTN56J~Q0V8NwH%Av8umt;bC;WMUBvY+>+H9*j$fhV4< zy)}hQXCsNRQx^f1=#~|>^l4Y}Teyku3(-2%D#mj@QWRYssgoGpmq)8TB1r=}%0;*u z#lR+Zt2D7+sxSQ? z^m-wZiC&XBOTm3;!nc$25PW^wrR!15f+SY<9x;J=!bA%)Mu|xbXCOFe(kV)wDOOQJ zAs*4%<03F4=P*iuaqa`8mx`4iuoRK=VbXfJFfko=ME2_bHzpIdC{h3+F7{M;i;o`&yo$WQO8>x>vO!a7DvC0Xw(29qK z0XwuAKg1(8@E#}0+1#{+R_w2oi-~IB1JrKA z)^hmgP%iP(rRla#aqnf+yN=`FX;l#z?N6*Mqyi)(ZR8_C|HC(%C>zCS>Zo6mKIdV& zPs7r+za@f~{E(Rh5wZUh|$i<0MKK7oKw#4nl%65;bsQz@oK4Y8#kNF#Um zIpmRNFCrpZK(BCAWniVKTeK_g^ZBYO#eA-bc;HlIv7-1Q*s*SY2mDH2YIIH%BFO<9 zzANV;9EqX}CgcG*I#aWThttziDb}#g3>L!i8SzJ2i=eYk@g(yuh^}@9VHV(=6s{Ko z@J)yZ4h7hZQ54VLa0pi~UQY?K&3 z54yqUGpEt``Moq|U@^Q67RC9R0lHpBzc(Zj$`Fp})MBD&iiD`1bF37nOr_VrwWa<8 z)Dycx%!7200ph8WabX`D#AAlF7T1j!F z!>6B0yCh z_-3#R4-euxIfzeOst+Q9Uhd{WoP|OB*O>$$F^J{p{;-MkZek0DfRudI2P!d$4mfjX z$r_X$2>r#_!WWpm zIFhV1a6D#nkZ{6p9dj1iNA;XCmPcwDjTGJQL~M6G+o30RH0^W^`CZ7>=%n#kgDHXs zq@09fxw4_>dW-_QulOwWS+GFRko7EeO~uuk*lxyo!*UE;DO8K@;dqwi#t-P_t4d3_ zIUe2`ANuOhmYy4NH!GXOX&L)c(Kb4pF!rV5x8_>s8;if0 z+r$4f!59x1Kq-03Po<0hur^h8C~GYb?Z|2VD2F%>2V9{%S(eiEBTEntIlkC(6J4l+ zewBw?v#Pw*$jtCo97`ivBL0SqtuN$n8 zeD9Uj(9(Bz@uyt88N~$^pNZl)$2TJ*l(-5Z44+ZdZ)G<(!$E%m2;WD3*}wypphht{wG?bCPi|S{5a5( zsTmd@9F_aR6>jdu^K(WE#_%&y~xRni6uH%k<1O$zn^sq!g@ z*a`k_=pQ3O2I8ccqmTpdVPXWI`E#_dzAEu&vV>#e46kFyJVK^)nIuf{Ryu<~>HB19 zIjd8?F0j@AvsoH%16ajU(# zxqA`u0dYZTb5pOPwcyVY{B2_Mrr!8wjT-w>FJv)3>J&9wsoX1g?THRIHE-xu1jl@e z6YFZ;*t=*g06U|`Q)G!eq{^cC(wwDQ5shr<1OHrQW{4g zq7TToh?2i(U1de*lAKsUOC(|hONOL0%XGD;1L|thVI5;gYX_0Hreh3guF^q}8 zLQD=;ZeZ{DU#)uvQkv@yqSg92S7hp=w~>Ud|7ZR@;5o*h`{nE$g_-BBc#cl%;t)5T z>Z!)jL0$7G0Qs_wFCE6qUcPKIUJhzq_D5nSChbL%xdWm@tuZe-)_GQKw%<1%N^S{e zrS^6&o+$lO0mDUR5yQCGH`y=r;V>1I6bdv($x?JuDyLFyXsFXN=Kl6y<72496xx-A z@&A}(;h*e|M?7p9`bV?f@t}v(2B_3}l!0nLAjd`Rj{7~#Xdm&2=co7u6&~l$gX)aw z1Coe3P)V}6cy!xGJg8*9-SY@xAD5$rIETs(0e}L)eqTMh>?0l!6^$fzC4BYaagBPc z!K3K!5%r#B=#a~x&sV5VRMm!luEZmo4$?bNFA6OzA$34S1(DXjPSLSW>d`HteW#1| z1srskHMV6q)Lsd6SP?W)4OO4g+W78@+KQCg=I9a>)jG_(J8Bt9t+o;HJj4zKT&(hV z@HRV@r#xC|jm3v~k3&g7wc8~RAfR3^Q1F$}GM7>>zGy)y)eC03Xih=2#H;GXbGozz z6h#Y)VqJOOmo#d~qLfy4EcrvT+uR9tUC|tvOqYY1i%<5 z=6R+^otG<|)awt3EJSUWCbh5w$O?c=WCx>tN(;|1sx=*5MCorzT(oi|srvy`zXz(H z(iyc~2wInNUYJzM^;F6ZU|pxGSYluG29z=t=(32C%qSm~KqvJkn+Y9>*G_iP-{IBn zP*QClaldB+-tn!A-~MQPWBEwiz_dT(S$}R0^ecu3C|5ABQQJWb(idMhY0uh!-sqW! zrN~cXCiC{#>$$kmcYdhLg!cJEJF~#`M*E0t=6H_yM^r;X9E*)5LovNwYQOIQo}tpCs&i7^k7sr67afKganbkX@znJPf#?5sx_%)2|Cgqz z_3f@AO!jfW2ih2%DbYGlXhZN$HF;FcxmZO zbj$*Lmm@y*wRzEdEfKSQ?M)xYUbE(JisakZHl2vQ?#SOB8EIcTDG}T2%I^$yn<8f9 zb6`yw>aq}R1*UBaJFsp&yzogG4lrp#bt=6bVzI&Jnk6?aA@Fw()Dk1m`jk_JT*!Wnx#FVxwA zM!AvVf?{e!cgNG3DG2bA7^{CChZwYNK*k=0$q?6x$bg^huY+D&7XE>4U<-`D#s>ZMqcV#tQp9j$ECsHb&{1S`i|+GBVM zEyaSqoeu6R5vmAw5uEDVh__%JSHp4=EQqD>0~g9d8pmp8b|ElNHf?v#)?i|>RXYDz9wCg8>MLWTQ- zCr@qWcBx|^*bgW%4uYYQ;-)Vo72jo^8UkgmJ%f6t`1d68D*kcU4K1Aw{{1JO$Uh7C zR~YnQ7M$jvI)Ia_Z$Ez^7EUJ%8$X9myGgNdMDXHNcCxVNGXwLiFawS}OBU0jiV<#W zx#F6p`DQB*OR|ec_tWf3<|dC zFZ#qQezED~SDPcW)KBMU>3c)@y>1TFZhHd7AokUG;p3R`T+OszI$nBZp`38d;HvbK zT>bdyG*`vTf^oL81Bva>jxati3LVR~w|`IYV&wv(AXiNa4I9U zUy?!YAiGJLGcC7+8gtG|v!#!|{L_qdXLASHb5&l^m&{wF@}5#(rn3ownC-n$Ql#>D z>Z>pPX?;myNE29UyH;iWt5UaL|MMIDkK)ebo~P`8(O#7dYIsExho3<`Q~cw}57qyE zil@-hBJl6u`Lx_&ZFRR?o90~bepSp5TmvyLz*x+t99rsdv|iXUJA)@YH3RG;6?UHM#WW9Rj9aE>RKWmx zSG1N>s&KkRRKNC@s`fji{Urm*XGZ(4&nTQ>pV&F9uE;gcTDL)#=9a75}9PI<3GXTUK!i77dU6L2}! z#Tg%X?obtmvmAr=4^$StAijfokHanDZ~)SSzTlmz0SvluFY!8(?4jyF|}N6 zI6C;nTHcf<&?d3X@S(WZ0r!>dx3W?eb<}Mp)&^ZO1rNG-x&cNx`56ru%&~=3+xp25 z+Qa!frh}j+HtJ8Q@2=0N$-k%;uRJSF%E9z^PK6yf*oA-fZ&jj?9^{1Th+G|{`afAV zZmHYe{!2V$R;_ikbT#P9dq)H!%N_ckKP437GKyZ0bP6qK$!)Q;Aed9(EPjLMlKrb+ zX4|-2xfy6%Z-hp%w2th@y`E-0z*Rd#e>Z8vn*!Q(Zq6Su+q-vClkSB+0e8GWeNRTQ z{g~4;qGbRoO&cLp3g}fCc~eaJ3m!82%d2RoVvzI~UNZ!d-0P5{jsCK1fc}z^7Tll0 zA^pX`@u0#nh!Mr;FUDO9h>T!wrzQ+7bwQt#5$HSF=sTBZ^qmJ(MXy$c^y)j8s=o6Z zf3okiUC=U4vSLDE`!7+vO4My+}X!7e}LKB%s(9FmD7q99Be0vI>Qj&zfKLeghC;2xeu}hp#LnltO zT@buKm6y6Qnb)uK@*sY&bwG&A6~td<&LHwA_oQ*!uM{k&{o2wX?V23BATo~ib-zB} z!F{{cj%!A=o!9shP)rfa5{;Gy4<9g1bQztHwaZ%0qg=#J1PP`%BMT##lS{e4|d z5povmO8b6M1*^zuE}A($--H;IG`A#a2kdOKZc}A!_ zs+SI;Lu7W&0iLnV;#6Tq8DBj0r~k2;RqG!+MD&}?1+EM&#et10v`K7v39gw|D|pc6 zLgj`-DT4#^gR0)Qkz*_%0t9_kJMV#$w;J{lc_cwK8vf!OGZc*Typ?#buAAgoX;lx3l@?b z$Rh%iEVe2osn=jAr1_#!el7YT*v5i)Br6A(OOa9DnE8oSg;pxq@Zs|fMo4PnLbs58)#J1p5NpkY4lSYy20Z(42jwQt5X?49GWg>mm< z71)YltWdOH8-X8O-%$;s!rs@rfIiK7$SK!)x0MCm=Z|#g4@%#%JZz+15G+md1oMkd z)pNg>mn0S&>(})YZ==J}2$&bV65u`0C$40E-K6GrV*fs6B{J%S(Z(t?ss@RyS~VzS z)2bbjDu-6>j8r+bYFDJnrBxS1stUAfH_2G-0Ts3CqDWPdR$UUQD$%M-BUPnZby=jU zOsg)BRF!Mhm657St=bo<@@dsIk*XT4x-L>xr&ZTSs_M0Bf27Kqlg)p-_L@e~gpgoD!3WN5o zMTj+M!QI;b`e_mtgj{+KuGkh5epMEC)|DHGrYqRNXe*^$PQeqwzf z!`Su0r4^7IZbGs#cnS8a9J2L>Z_I>mK0W;OO!(O+gGcdfphbne=nd7Ie)D>NH0qb8 z@B9J3r`ubfSs#BtVB%vv5GMX)^zKcMf=qnw0rB44_}rEUw(S{noRh*f#Ag_Uo8-53)E|-VkpO+AY>Xd z`bUwZ=51BME<9sCy3&*!9ms0n2d6Pbj#OE+*nm9-M9TP&LyDm`CMtE<`v!249~mE& z8cx5faW4I?G#B_~jJI>}38P7{cO}x_8`byblYO7AzR&LSo$}23gjb;by}z+p>H5r* zkLmaM>OEDzdWGNL8%G*mX|HsB>Eev`xK9SZtPg&A2m?Mnl@qF`@h|NI?@{nYeekF1 zTdBVLPWHV-eJ?%PcX~gfKIJF-UZcL(_5N-Qfe;g!-tkx8ajA%0Z$Lw)lKOji@W+lU zjA}PrEMsg6R*lcy7M|C9P(0)qo1beGURW^#2U_wGbak3Bo@x~V_)GFD7AM6x1T8>F%NN5MAV$yyM4i$ZL6Yffy6VSgd1!Jsjd$VPU>NB4SeixX~ zXKs`k6ix}xoRusIBfJwnb8@&Z*@kA!6P%bQERiYishFGQ871oR4and(~pC+Td9f{>Ep57;Edje z!>WiX{>Mg?Ck6yryQS0xol5Zw254*)yZvgAjrMf z!W}1`M@ao;EdCNpZ2C_5wdfiVrVR{rkP)=Ya>A-%Ez}dS6#b zHmrpbPoK}@;fWe39-kZuLpW?qULB!(z*xA}+S@t5pQ67%l&c{Novmnu`YIA}3cC)q zOSEO-0=H}N1o?#9RXr@q_ODI=KqxWvp4=#$MSDC!Mr4XwXkX0=J}48=mta8PaXcIE zg5-f7IB2@OM*_g7FGe?uSbhnFwG~H~y`8wSnG23hIJO2LH|oJWjO)cc2U$9w@7JHY z0<-X&IESm)bkDFU*kZUsdaD)TFFO3uNeLYFbBg&MhY4F3d5^40ET5}Q#L3>)(SH3N zj)Vv2^0}dphu$+3 zp%~oA;^--oaC=b;FKkPS-?XuYiX#LF>!sAAKqp1etN%Hd68MBj;NfNO7<{O`5}6>- z5ESo`9;cC7id0EK$+yzXNL4!5&ih)l$|r!kGITF&XIE)vh{$<<{Vdc}i5h|jd-Vv4 zLOGPu#1ad_)-=$pQUco+*Y_^$$T?~&4ljFLWak)U=eDE-H0i^RlliupGl1tQtj9?< zppKi_(phvc{xrlew4t)gdxZ8*qsHe$4j`&7(rqY;SIOwc|A0;jn?nCO&n)Rx=bbsH ztTXHT04u(axBUGbMGSYE!epXfnG056JhOOzj}gs0Yntp}vC zfY}20L0-ju)~riLI%v7diu)XUi$>zQMB7397=*miD_L>h25=6dowB|bg>?b0&_KCh zn1ixlXsmlw*(Y5~%dH?bo=g6G4w?izss$61oSFGu)4I5KG*Pby2P545vokhK@jFT5 zO|d%UNZkv?F$aoc?O{;A$Rw@|-4R?oixU`;Nid^9OMm6xMea4w^ zCHU-PID@(-Kh&8MN^Kr?gujb^3Zg^xK-}6!%$fnPGIZMcV%9B3=z+*R9B22^p&er- z#=YgYgpPAqh4*rgJNP<^i(0;mf0KGGL^Y_UZmpN2K!-7;7G|dv+WV;?wGG2I$6cWA zIm=+-=VT~nQDe|qE>nA?hTP1D+$_hG0|O4Gv(r)){;imE%b{hE?Iz9g1O#wGXsI=; zb-Ws3F+Pt*BTx=TSlkVZLH?g)DQVR!s+;A;KeeFUQ3IUmhl-osf$1JW;3O-(klE4aK5 z_IKV(Gh{GID5H@rjnc71Nyh#xB<+PE@U#mvuelh^XdZx&9lRL2?<)Nb_~far6VwKT3~kw7Lxj3NBdm_+FqQdEwn4$jC$OcLi|q~LIU*GqbDZYLzFig?Wn7d3x38 z)GzyH;Iw)M$iB6G)(6+Xb1?J!d4KA?Uf9-W{qPYcqnYq?;g*{D{tnbj=6h|Q@}7LF zcmDZ(@ITlazy1*X{UPyY_-iCSUH{9^I5Lpqah(sslff@et*!bM9Ff%6hp?!%>@xX@ ztNi*amrIbFfWG)mGQiSb>fo+vHMi!foqXtJM?CBM*;!eA#UfP+DXv2z0?1~URsW^& zqOX(%gGfOiBS|VZ_V=hDY@vHyS#6i-M?iZ9pJ}}SXvMw}&|kz*!8K4v+wg$?+doRR z)ip3nTv97+4QJr%`^ffiN81w6=DXU?3Fxr`kOl(`S|2efmC@CJA}a#=fASNw4nB=D zFT4~s3nUQEjD^v!z&AXr4ZW^!4Z*NvlkC%Gc1>ga@V+Gv{4P~tn;qJGXE1@==9=_- zu_W~)*rvV!LvoPr?M?a}n56`>#*B0{=?}fjl8unGrz=O{2l-suQm4*A-LGFH;|hde z=@={rohq&$L}E1TDYhwo#&f(u^bwbR!-2sT$xS+*3#kWgilox^jT~0(dS^&CwayCZ zIjyC9N{UdmHL=i=7=t@I5~aMTc7ap>kr*+!WpkO5D>nN z{t>C{|8_v+*|@gnbnNU$`9RBsLHB!@qPq0;4A+BBPDg=JEpC-u)p9p<ky<(&IpKsr6aoF9Onz-b8t^bO-x>FL0Ia(Epz5adO%ImXNquuACHY#I z=vw?z4DMQ{Gn2A zAEcT=4Ab}|X|?V_Gr0F&z~&6s_C)g0mc$~b{#p;|$&Gf8akmXx<&RE)e2!C-4}2Oj zYnq`?n)H_-wMl}EB|$DjGkX)H68rTjg3QGf9~YMDSIB{mA}mY?tx@`kNUsER7`RP2 z#W$rW)PV~3*hQ(K!Y+T17rTg5H%OmU8tqj6xd684Pw9wLioU=eFRj>FB*# zftsjzS977l()NowRBFzu4)n(9Vo_^;YAMEh842bfguXaNaSZ@~Wx+}cI}csE^-UEi z0kF5<2{jqee~3N+txSuXSjcex9aC~_&aA6IKKsNtZV=C!It6yRFOUrWd|#Hs?+pJ6d%uLIQgiD0pfsdvhxA4=BV z&SPvO4X5Rjj>2Z;3@V zAYYV9h~f%G7W27eioJaa&)Ax0MRJvH7?cqtgN`!4#`NSmmi%>0kSPXH`L*b)+$sejGgVErxViEeV@Vkt{7Z`=# zj$iarV+}^}u<73h_eDH#qy}6^%2yRu9lYcz{v!WV70Jbxhft@e@ei}@tL`Kiz(?V?33$|%MDMD_!+6@g?O(ed z-zvKA;Znlc1dXA0ibt7@D3{|~U@8;eOtMTN1A}A?a{KvlzL-HJ$496(C%HWrt~??5 zzp|eV1H2peD~`HfRw@W|;!vMkN3A1NaW{p-ZSJNK^g~U6>_x-Y#ND`A9dSo&1-OPg zhA<&E`Ux|kB$@DQBcU>x@SKrQpG^1z5^%To$`4lHVcBCVKVXUXoG1Roz+84!SfQ;_ zUzY8Mh0Qq?q_FBwq+9&~GBxSH#7fm4RdIdLbgRBaEbFv+8K3+E@k zhip^HfYdS8iZ8_`46z z1N6@`P2zYID$i;Y`v>$CbrtNOdfY7PynnUDdeC_h6AfUS5mNg99L_ZiOXd%H$LS6ni`Mxp@LNGugR}Pe^FIfjYlU( zq2jY#^#+y?h~8&k>$l*ZqUd~6>~)uYZB}fr6%taDg&?FJC<^=9;h2|HBDCn*S`##X z8NSC}b42erCP~@yuO+tEk-v>wgn-HcME zd!q9;B4(ElMVyNeE+zzbAs$fQhnnPXi@k>GOv)B)crfR0!@oI*=jUW;n}Dzg3Ay}^ z%1z44-xP{l5zMb1Qe8v?f2rProgoY!C6Irt|BDz@#1+n!*dk%H2Cvp|ZMN3QWVpBE z*AcGG;jcA3*&MFT4F~c<-MqZk!TN`KO!ifiG1&@ze9Yc1v-X>;-rt+IcoU(Gd7+Q< zmeeOaKdY-62{PQ3xX!+|DsdgFcg%Qlq@G-Sx+Mc-PYOhy7|v!7DSPu?mvM70dubZRe!;vdF(9NMASyRIm_{GqU={dlMp0^tF+3{VCSE3qV?7UpoOZv?wJ* ze*%$XZ@G{xG6aH8Fq7;PAfS%?gCHg3XM)JjK|JK;9}IQzTGb-p$JvU@Vb{u_vUdx& zXtWsQua4p}F-wRNo@j{CL_>@w8e%lj5ThH-+VkP5dD^b<#N5zEE21M-nm`3tQl{*y z=w7ZJ?xBmD13j+*qQ%X&REruc_O&_^&5WSVve)ar5YeLLPA5IQ8h z>w;JzCsG(ah>?Jtzv0C#s3ha2d9&xZxjBy@b|cHq~oXfdjx+E;qN>6 z`xpFa_zUCjOvjP`gC86P*4ZH5`r1Fp_~Ve9;4uJcL0l@Lb#ry$p;)}*&_1g@Z~yrw zxcrRJV)iFqL~8LK3Zw&_<)z|RDFDTL%nK~$+pQuk2=Gk>qe1U1u-TtLAS@dCM`+#l zCr&W)F)hx_IogNCciHf^QM=vY?E;{7I0N(uK@TEavy^kF_^@`n6Yp_Ef%TYy3TSmW z>y1Fnx+mTttgdZTX!jQbQa2ygHUie+?a^*=c~2k)pa+2VpTA7ONBul-)H@eZFQ4d1 zX9f;@>=~i~g{v4a=Bfho0%}-?{fW4Cm&g9|V^n)sEsW6O_9tFtR)ZEfpv5g7?XDsu zbbC=LRFDUX1u#Lt%yt*yt&7z&15F1C@Mu*f_MhVy&$O2pLSs9T%l^a>Qo$fBd+H?w z#viKLSzJ|8j7Re^ViL5rN3lz*2s$RtszwxCkli$<22@8T2z1nL3@ zpt;}im?>3*7t2W53PGqbjS9Z{S{Cky`t zus{FB2+~V$4UYfJcM|^psDm{-+`D&YYETRKaajA&2BJ745v-=+mdd)5pE zm@y`Ar|R1#bHJYL;vE=~-NoBtZ(#`7nBN`y6ZTQV0UP@sbsOA-;s2oi zS5aV{6{4iCeL?1bZaU<-0$M38nlHklge6c311fkLV1ampLdWGMJkE<5v$+iGJ(x&W zQN!5R4vpT5B_G1VHkh$KDw5E!V#SzXf{ntk3``Ik#RP_B#rpCFS^dGdz-3detdX4g z&(K^@pjQ-Pebk6prC1+fF(!-MaJE|KnfYT4S7(Q>=aR#zK33zz6}mvUI>-2&i`tfj zug_a;DH>}z2dl)1VaqwSObor1hsB=<7KBQ*!YQ3KEmAsj1`4Cgft!tEQ>kM9W-Yu0 z9$J5e7JAr1tB+M(jaJ&u8M}#1tVJ8clFXKPLhqolWBN7r?=H(q{;t~gw%iv;uMNj0H(4vYt$eK;M}Zj88aG`PG z3fAmKIHybl7d^0dxczz?yxFKf$N*$!0cTcZ0xf2Blf|yCDJ!X^LV$RW%?n$`O`-z8 zDX=eNX*v$iMXC&wYE+f{TEkV@s!2GN$u(=ZDn}X=o?;GH<%Vw&pKN3I8TVaT z89lr<2Pqgi(3J^eLrNZD@Guz$ZX`j*Ylkoi50i&V62_0(d?w*xvQ3g8{k6lGgonve zf$JghwRR>IM62DjPkOao+8rNhTVk&biS5tJ-yVBwi2aFYB3A8gi}rkMUta#!*q@NH zIZ|iQ8m!tgO!^@9I+C7`;2ifNo3@on&v2D0U^cD6Az;9i|DHf@jo<|SBBucy z=bkIIhGUZe`_>Sk2z9vyJoZkW{fVvlI}rhc6{#x-b?}f5GUVFtzY!Xnv$espV~|`s zIhgEcB>m?arZyomyD3X{tGw@Ue?W_W`{)TQtB%V9tS2MvKaXkKwJq8S?R~6RHubzb zYsRY0(Ur_M&3;|%)2o^T$h5g z=^bR%e-5YF}PPV5wE>g zFL&y5^h5M~fX4|QtLO(0X9YY~Vhbx6Lw;#wK%dafR@k&FSz}mYKCRAA zg5hlkeCHlwyD%_CEgpY7hc6Jvgno(87cNjJR^I_H6MY+;cJ-&Q;i>=gD|mVshg9^k z-{PNP*z(k)OuH1m0{W#$i{}U(QIo-Qp*K&?`@ zwJog>n)NY~8$vUyD_A-cp6%N}2)#pg`VG(aJxFPN1s&h2#gmxqt8Rky$-9-9Tl0dB z&%?}}6ZGLH_y;1nI}^!XBKdZ3?`(YiBfrkb{Hi0x@F9wa_L_+BQ^A9u1MJ&`9g_+B zXMw$eb2`9gD_CC&Hm5)Ag$Arc!Okb_G2(qu+@y?Vek6F`hpRI2BGeA+kToL-`?LPA zaRb(^VAl|D7NkmFnF(t_ioN|i1}uUk5N|2*3hdPWuwN2bkUCpPJ52v3+$QM=5Ktdh zP@Dx#2aB|_$l;l2oKj?wQKXNsHz7(3yMlh{?`6&73LYf4nfGA_5p1E8m4F=G6VG81 zO3501r0_~&(;LOF5FK)+{j1OOA}xpl6@pY_K3n4=*jIoB!?8LN;YNzR{UHMyD=r1S zW)`45gjT`94Co?(USvRXSQp#}30*?y;!ND70zJ`ywj`lv6S|DhAB*dffxBFw&o!WZ zN$3tjR}%X9OlY4#@B2u#(w&4ZC3Fp;AIgNT6X>T5=o1P$NB6!4|Aaqffk>g}vsyjD zgI_@IdglH@I(K1CBT|m;nKioO=$7_>(!59D~}$P;#1~SemV`So?ND=&y!IeLmjfIn)Up z+WL)~`fWHQl?mU3_jnHb`oQqN#h?LyO;cAqhXW6RGO|CXe@}hSeVCml11O%ugnl^H z_g{OINpI{Xq<453|3c%!~Z`wQ$tr93wp(`t@6XE#TgcTe|cj zo=CBH9wrl{T57anv4b0}RDI_5s*gLPKDLbdT;kXN3x}Ng*5{e0q(1Q+jyEV6CF^V6 zO4lo0B?U70%7Md)D@DmI!-gNcW#T!uK14OXPw)HvVJg3V+<)#ly$1R)gMs3A9nYaI z=*KGxn7#&nQkn28@E*^hUK$wwSMZg~g#Qn`$8)G72Zn#*)!z7jfcJO~HQB)MSHrb3 z6aU3{kLOUU4hU~_%ge-T(gK%%o;PZ(!qlt2rCQA=Y`PsoFHZxoqh4v`_`y*_DBB8K zYK$q~Y>_-Uk74w2eT4#JbWrJ!r~Ai{|EER%;}#F)#UJDht0hNGp6fUU`A#OiD*xKk z=6{$olL3(E*7c+pXN?2WOV`(Bet(#gmduuAkY1YFSJm|Y-dnZk&j^2$V%!(}IsM1I zzQ=PY#~C&4n<1XV8m0mIf9C`){XOWIgD`?!@ZUmr>USFAx#!gPhcmxFObkgH80)R1 zKHrT=iJ{LwgD!9A^NS!)nfknlGxdS>dB8Xjdh~>VKnK>#Iz+!4vvcEwO56CfsLsI{ zoD|hh8KU};oO^}-#L=OosQwCUMv>yJ4YQjTGiIl`@mvyv?=l0;i`QD15PHoL+Kkz7 zyw=KBA>$xLx|hiJq0bX9ktnis%H@$pHQt#p=gXuIW%4BSiRbtY0qDzFRc!iuT&5&x zPOI;#zkHc0dhqMP1bhM0gZOvl%mGnI+8H}W~>LF>tM5z>%qr=%D3ctunYa@B5 z`(WAC{{^F}?s*LVe2j5LzlUk(VIb7cLt1)0$Pu^~^Zy1fE#9Ex5TZX9V5Y3!hOs1R zMsT&1$rl_@pVv~R|M-_|6PAPA53oe)oCAxC#5)VL_#`V%c#5;VRrhn&Rwao%QMTBj zUyGE)S{F)<*1G)q#P<&+S|$iUK)(f3tk8zC0lNoF$4ROAGzvR%K0W|{$72@zR|+AQ z@C@5@8$6`olEpOvHSkUJ6y*S#j*%3z|U5DdtYU z{^=R%)48Un2?bPgkad<3LwoL;f1is;CHVUkD0V0Q*5mnaAYT1Y(muMr2$aN~i{cOO zx@J`R{OK*}_}ZE0PeJ8Xog^ph+)tJ=b8JxORzb}#K3R7r@J2NHo~zb1BOC0agFWB+ zsdZSGB2s}rn1?xPkX(^a!3Fw{C3=%<8a$_`b*&Fd(^31uw7QLf)Ez-{5+mN6`f&*r z;Q+2jesVs@I9Oc6r@@G5wE)+?1HXGav3}ke)g&YLAD{}>%PHc{xogg>^c7 zu=dIFPiOf{rS@l9elE*@ZwF?$D}=p>?>_VzE97r8&Ocvox~7iu*D2?hH)ouG#>lVQ zFZuuQ3mn|~FK}CWaLaA@zf52KU!otSfBpAar~7rUzc@kkYmiq6Nb5v}i^7g#z7%{S znQrLyrAW-s;`hFDC?O+B3y!A#M>DlhnW279Rxx!xwiYZ+o>!`YgKmw-&)8nmx&J;L zkqewn+H#A;n%R)70d6Rp3%Z~6God^71kk;pA9(V!0ZV3{&D1745T*1ob@?Qw@Ki)j-(2}Yg^lX-GOI&9i&Pz+D;m*bzde@}R!TBoXpGEl*kCcTVys0{_lQ(-AQ zyEm$`u>*Hell}ua(}w^G(TOH*TNs7?!T@TRN@R+bP5MR983UngH=wmIQKq9VKZym-SyT&JwWdDj6+-Cr~ zV*Ki3egp&z#@NnNdVvNIp&d}5L1~k2!4epqgcF<>kSGz(#!ZJe!hKKSH9XxjGIZRu zxKu5#cyxcqZ&Dc^0>o6%wG^bBu!YHTQcuo>r^>)}k{2hxwJvNi0sdUTk4&Y_Y$0!m z<7clMI9jjASuZv&YPr04YlUj4b{JqK_DSyr{2*ij?lATs=11d@EE9aLCqPKtC?6MY zyX;?{$axfCKoK`Hu?sw-A3_Y0C>EOdg3~yNvnU;PI=DQflLgP_AaQ+pe4L6~{D)&Ht`dB&LO3Ba0bqkH~G_cW~q98K#G)szL*8JQueX1-N zad@ol+~680PW|iO!~00|K1sPqUlZK;0VaZuEV6z#%&ijrK_(gFoM z;|Ii%Tuj8PFe*E;;#K0x5wCJ#LjZ3D_!mEJh$enS?Bi8Mfb_+yO8D*Mi;z=L5Ja#9 z5Y&pbNv}^Hg>|51swCpbFTz)Sj|l-u2bog*^z&AqJPhdEJUCvfwyWtGAt+bfoWm&ENt)#iz3&%2KfFdeD@gN z-Mzjqu`MKqMLBA{5UDOPz!0G%xq2A8Xr$wM{QU#|zK*|N;cqAYPC@oTf1>tAbV-Cr zlevZn&0LJzWqQ$n7(!#*B)7hfEbJca1wCgs1+9=XQe8i=nW${Is%5?Z6C>IA!xR#k zhN7N19|p`Z$W#6%mKbMJpZp|} zE^GrENE)BRT)+E_>tjozTAD(&ZZ?{>dU$HeKG~SEcMmjW2gipcQCyiq5&Rvxrcy?? ziCk^_cabZ#GX5X8$wqyq)j31svf4%mUr9CX&XzBt%N%~l=rUc}6f1&DjSjw%g7}g^ z>_|h@cx;GJ#pA^bN)ii-5(_+u1@6Rxg2VzBf>tFKI1&qNHzTfbVvPQ(jM04}w-4OK z)p_2zQ23~+$KKQdC%)CLx%QD5jAUGb`fF-Ou;w>WGkD~=cnW33@lyN!`;oBX_&EF5 zUc-a79|xr#>CA=;(cWzHrjh&YPw%ilvc(kIU&`r7mU(l8hpRfxoa_{ge3_nk2myWH zf8g5^YelF1zV8rA?5QoN=FvBzcO(E;#FKwV-_(u)JLc3!-_Tyd>y0?u(?lR0c3VduE zo5Cio<{`o|G;&p;ntzmwTV2Gjd~oDMASNAHz=Srq2N+WartIKSQ4bvYBXOxQBi3EUio1F5G)x+XwzBjvXWu8$BcKj~pf&%}2mN7dY5W&Ikuf$Uz=A zRUG8Og(t~Btvh;a;^^yub88=J-ACV$^O<|Jjq>&A>tN?W)Yg?`<57HfgAfJap!pSK zbD@%DsJc7!LKfJ$AKzSH>CTaR>_2_Uj1%Bsrn7BQ#fxndfTs?SMLx8)1X=6YzSUW1 z^GLLK)me(6K4p-s$w^HBmZJHX06e}7oBNC^tu)R&tXj+Tng1r;GRg9iE{XR$vSm(k z0^-*%JVFph%k3(kN#C-Y2?$JwA^t+x6OGx_9YAMS=+yia^OP>!qt02PvB@w4QiUQ6 z%Vx3+ST>)Mz`Pk{+-{U1px;T}#xCPOro_a8<@69t`|V%$vE4hc%h4%wk{yLHoS9yA zDN<)eW;&wPrpRPxD$f$T{XRQBG3R}`3P!~)j7%=*1+@>JDFU?@55VMBlaI-sUQk_0 zs3#RvkpWd=K!LEz4#O(LhBx)@k&bovJAuEkU`R9mmg8@5J?Q^!C>XF2$Vb_=lQFCB zLb!&RU0hH)Xh3nO0J~=;<;&~WJKh)ZT6JXkIW4z|EHRFqN5A!DNynY7DZy*psRWN< z@Y_cBmb|Zjhu<)dpMfBdGa_E$10K(SWVkZiaTNOxyl_|l6ILzhCBr511^W+oLdY*o z7B#5-2W(vcsm$*YvdW@wgJC4G)`l{owUGSXFJZUgDuD^;J>O*`P8Jpl{hy&TIlZ@C zhE)n|LmlW^O*9TQ@*it*R%~o3Tn$A5JALaF+*4QsQ0*HmH*KfC7j}A^*y-1Q?}owKYb!`_ z+33;#c{_1&Z8I8TNyefG7IIFq5X718N(C6hq`rjA?^N^gL0Z}|Su`ali`&GKVFS|j zWrAt2M(#``Yae8-1<8EQe>;u&@8Ii`ove>9RiAY})Mv0JYt$x%q9|3HmZge>w+RV% zd{g+O)aCyRlVA3?)O>a&1X$0nR_XN079PeP=0NOEhK3;=L*||HT}m2!AE|ZA$c!?uH@mt7|c-(0}(d zl;lBu3x1I9&^PdX4{!VZCO%_4piefh+T|4}yso#!+MpLeu|q+W;jaig?+kmXPm_5A z=cXQ7`ECIyF3xOf$!gGR{#8iCEK#_{j?)Vnr6P3NO{NWRIy30pak2lVzeMwMD`2Nw#8kC~th({(10K05_75mo-@ z?=uG*ziK+BFFj+@&;k9*6zF-p^0bVl6zC6qR&;wDb6HS?W(SX+h0Xqeei*hpDdTNC zH0W>PUu5&q6#3cT!O(oaP!*~hl`Enx5_ZUyKVt>voXNm?68ZdFCoB8pVrXVra|HCa zHnHlK(6NQ~RsRZ7U?oCJq*MAsk+uiH-Y{^%duBW1*_W8RNI%ZBJ^B%l-LL-`4zwW} z@$Kym$lnyCKaKR~fd0gDkbQNR0qzRUNq)eb;Y&~#NB)^b(}f-L6S;M^KyIBaHPiUU zwJuI%-SYwqnV2jDhNq!PG}uA-rg(=qk|=OH2>Kc4^Pv+y`+d|b(b`1x#)LU;-ddqA zu~a<2XoH5xNZ$%#%;2X zsCyJ2I_!@6q7EYgFTQO6c+_~uvu`inli&ANytMEaz*z!C;i!0J(dekH7)N;y6eFp4 z$7;(Z(d$g5Rf*7kQ`@1SJ)=n*_K_;en^O@6BF3X3poeFmKZI93E-X-+U1xAub^WpOOn(;Kk7>m!3GW714q{1?VC!?Yu|O$Z?Boi;FcgZ;yBs)1aYq*T6_x zg_*>$DS_bqAHbhOkHA?6w=g*>7TFf=Y!Y`Jh%09lgQ`8ID42nJkBnPlTRfIiZl{)) zEH0ntt9qB$pwl@>%7dl#chfK*J9ROtKYa#6R)hXk%z^#-cd&hBT=k(&9AeW5Y%5^% z8+5wDK`M&SB5wl2%tRXp3ADXjo0_HRYcyP?fj1h9g$_8HgrlW3-PrB2jI-CoL!B0o z^&L~&E_6}{FuDAJ;P*kP27T7!hz=d>kmm+Gvr{5&Jhq%}v}y69NABpH<9*@i5$_9r zzNw%0RN{Nan?JZsvO6Wat3hvkQM3cq+-Wu@PEDrNSJavj`s+0LNd1%d*>O+WDoHpoA8 zE94(LQ-=I2S0@gP4%G!b@H?XsDzVrTtjC10Nq^)Q5_>i{U*5hUZ;s#t@)nl2qTo7t z`$xQmHuw^YOM-upgxlqFX)x;;5lxe~vY6*&htb zYaFk@+@$A;{lfBBy@6duG3n!pC5oB>J%9pn#8jvm(Cg$)Q4>=kc~jI3=q2)|NEy&C zkT*rjfbPH>39>{{GoUB1DXdL0sEOe8@@h~spudLK#1ci#fWAZC6e$DxMtM`D#Gr^b zL9D2WdmWIVO){t%(7!3K1~mhESY8ck2K2imcj;*rQ>w?E`hoOg;5sXZbw?mxI~`+Y zmi~3@@oC$zKGKH5rj(bctrt()DocX|_zZpo&PKAeQB(B#uTm6nVA__bt*g@}+ah@R zz+wOL_kagc6rgh68&~VL-}g1VYm=Sk$u2Dy3=4l0uL*y|!jOnE#%r~%ppD}oal;Df z$2Q+NFmBM`KtGWoiQ4H1AP)0IqPA@NosR8yx{xI@JX)9NFtk zk7ikiYB&<58tzHjfk8~`hR5qc0NwQ(Z(cZl9J7@sPdfeT%#a9G0vuel%ik|Z= zEzQC*zg~4e1=}X&{%KOh-L{20X0}Y1kGS2g5MNtn$XkPcj)1yOf9IO2Pul8k#D9a( zaTI|P^}f&q@q?fpU2HR?cU*0O{VQ_T|4yd{ahvJD9Lxn5A6T%R2*Ti~h%Iakz6Q~Y zR*sem85dhpB?~jxj3n9Pf~x1o!X096*~r2G8Ma89U9_` zR*yM~quqAxMTqboK)W%4QPBx-OTfoi0?VD7T0Z+s%NM2kEx5iSrmBsr1#sdQiy&0P z9T^uvIUVsTF*@P4h+1Ew*2B>amG06^k#ULIn&j&sg!>bK1mM8T4&5?a|ItgRqH)Tk ztffLF`}BWCGHFQ5`9&?0B-yVYjzC)KnAFxUxGjs0##j=@YYT83Q+;;xIDy(at9?>*@To$}vb*+mc@_Rsciwg3D`=rw!s z_8ogy+W`wJ*p5we?aQCZ@APt`$JV~N?bq6-nX!G2Y2MhZTR;Q+a|UuC^l3`!{r+nI znt{~*g$Os2RQtK;gY?E2oX*dQlml2P{9&RWGxhzcNj+ezNPqCZIjMgqQy~^m{}%Mp zzn2>NR~*)%gtaVOsO%R#+=H@p^`ln^C4H_DsYa`cpw5cfJc{Gw5u^_Z^n(*pKOhw_<7_j;3ovh z7JwfiCSVv~Z(nV0?`ZwP)TZCCciNxs@at#a`*uS5uQNK$q#aY;_hZV@^D8$Jiai)n zP7|sJzm?H{H{~B(ZT23eZKJ)T?J>ATB8tomZ}&_r<7Q$bd(b>kwQP#s?a~%CcU!Jq zQ5!l@zW5@!)~&ePAGKV|q41WHAz3Y^rUvg3J?}oz)pCz!8lW5ih?#{5yyf^A5uP*- zKWBv}U4x&I;Yp0Y>=$Z7ZPjBIx9RhtU@FqqE>cnpNp}!Zjca4h`c2sw(uc0e7!}!N9+`5W}NAfdp8&T@~ptr2E7BYvA1$DF(3%To;D$4~S6nITk?u!&Bhs6v z!k&b{?F`S|>fLQ$TW2cVg*ZRj(fk+fYl8?NREL;Cj{Fx9Hygd6&dg9@FCsqde7xkC zcK|ehpSjUfkJnrR?nA*oyyV%}HY2Q%D}P_C6H$lih7=wGtQTl81z_f(=EG*h%lCdL z=rPN!Ln7i71rcTlMZ~&+p>9~=2?W@kkDTV?Cq)?a`S#%Bj7@0qm69bdCayQ52Klf59f<}$ZjtQRJhZ-8zd?*@3OC* zUx0W-oow0#%<~=|E@U1)Tm-(9YwvpxGtVLK`yh|oeAK>nsT;wOy4ko-G0z8hC}bW! zd>VXoXdik%W}Xw?k3phx^KsC`0}?*ZW_*Tuz{|RenTHRTuszrf(q8huLQc|yzoOW0w;kqF7F}p$Kd%f zG&IhJepq-EnZ55rwqQ+1!g2gU+$gppfFGmH9_09lb=(IAks`nf^57vMkN}yl?T2i< z>)j98@R)lbWUt0H<`=%KZSlT}#?Lpur0s-Me&a?A(74FF29{rk8UY(hdwPwd+W^H%jb}+6o|GkxQ zepF?yj0qr|llqrjWPTULR=*n-26c-o>O=<{}2SA%=`+9oD=IBva?A^LD#+*oW5c3f2 zd2P3MOGdIVHQ&2KdnO~%W!@LtX!q_UmX)1?09P595B0`aFfc|TVqc6N^FHla;9S{7 zY^cG`6yCbNc#C@BMb%5p&qlw?e6d)*mvS@2&&iQ6)7C*YdJQ1i^gTiKbD~xkI ze}jqWe1O`Tu#&;<0Un)jI0#}QkH>3;pd+ z=bvtU@@+sQ*C#$yXrT4U-GZg}`osy?ldVrCs#5l5jZ-Ae}SkN5ZMj~ce!`}W5_ zuI|?#b3>{AxE!0-$^JO&u>tzye;C;Z*B{q;s6Wo>RbMysM=ABk_j}j3)UQ7-)`GPD za62I~B<-6VUAd+|y<`419^R_%#Ks!Yn$UXI@=pD9Dmos+2%)2pp`@tkE1hD

&n-BlG5t1Dd<2}E{bCJzGHEh;zg1kW*OZ`*z6>YF?@RV#Nee25o`g`_w;S_S2 zf~bT2V`dVfkq~u${dqtr`7MPEv70!&+i?pWk8Koq_po5zMWbz@k4V_W81e`Zjb{l7 zovof+;VN@@irgHA&vJ7Z;zj2oUi5xk<6;d@$wLv8Q71EZ8Cm6;Izop>@mj7a7NqkY zu3OC7iwrS6B@bq5`>LP8gMa1>_`E#=+Tzyl=k#xUnb$XdAFsUyad7J4FNS)k1Cj1v zjU6)nx`r%AYj$EUdl2RyrY?kh{WU(KW(dQ(?w6l&KoRz<<3pR0`C|ntKh%sRarUnP zKaf%Mp$$oR{R_Ry`)sl%qf|}K0v<=|k6Y(-U!~#r`T;8jrf`$GR2wEW+T1#7dZ$9p7)a!U3S1{ts>NptRasRtV) z*V_hYWQP(9q^fZW`=f!sttv^L^AveT0-G!Krw~$pQHALP(MJxw;%i%VMn!-7<6adV zr7B9w3u;wS?y#k+$~P)UM@4**v-nulmfJK%U!w4E!r8@;0&+&%uMc?yR=_=IE6nke zngR{_va>~J!umKAd#_c!OCPODCy6A#DjhBbK$@T2@U)`G2k6tfE^@^Bo+Z;a55 z#hrNaiS){24HBoyQ=Np9l1E+{8;~cC>W#%+q>9!pDG1`9jn}d%_|oiGgyOl@9SDNq zLu`0m%;EU8rFc*A&Zwu%x14U7yv1mP^cO9V)2ZWJm*iW~DP35MxUxB~n-0C_DMfX^f1!?cY zH0Znpi?L{(srX>@?rfL|-QE|T1{ALS!i(o==nFh*8_^eVo&`xN8+OuTkP+B_@?Jg*-bv}Bc zbmrL@FkE8~hNotQ7mqOfUodqVzB=!Q(wZ@jNmcLzUHC5QFmO&%q)%v?)QQRtn8D=PqidGAcFueLn&Er;gD-Z(}j8DPtHyp+z8) z8wd-gHZ{@z)dr=4H%Y|?34~?QIqRf zZ{~ek5-H8UI#-)1LW{=1N8|{8d=N_~hENKytIak=C<6|IGWNCj{#06q_dtfRJsmo3 zUj*^0p?$=10p<6CtO=Cg zm&e|)gf_TL7@^HQFbRDTU^tMMn=hj_J*Rqxg2_0Fff+qr%z1dQG$q_vS$zglRHDVA z0bKN3ya)2bgHcKO$rt&7j@BV1uINnOwOcS1qt|YVPd?w6NCOq;ECWc;Z}UF8n1pOzBHl)CRx1bp1t*fKFbbl^WUTUcHn;DC48D_ii z4kn9NpBw#>Lz`3-UER}s*WZWHPd zw69tWJxSVQd~ru7xilT&{MsA2jsQJz*l!t@SX)+SLlu^qAl0y_wY`T#SJPBZ?ursS z$wAtdx$qIxh5Ek;6b?qe|i zd*M4o1aRc?MVGj!P1w<0>7imAhl*Wh>F65gw^TB9!ulfeFxlVhRDZ9h=pY%gV~iM$ z;XLK$55ZfzK*{UhslWes7pvlV&Yh8|U+O@eMj4C5FfbjG!&USD$KAKUH&tcpCrxN0 z1WwS15u-%SIKfmcq++3ECeWu)Fr_rb;Zg1kGO;=i(gbis9;U@6$2i=1I5YR&xmQQ$ zj@PR*&K+fN#?d~20xB;ZMe%_zJhck-1r>q(zi;o8G%W@3bsv9!mYlQqKKrruT5GSp z*4k@dk6(K{J2B6t2K5z5kt>qor-)SqcHkj#0->A{JC~(hINCsNV=|J{6vG7$%hPcp zR!K_4lIv4{`3emR5eo+AftD#olr=8mq*b;j%2Q0n6s-o6xw)6g6!v2>{A}wF42-Haw`KfB}$6Qacud_L}`-gAdU)bmRgnQ zYsdsaAjBY!HlxHDdI?j9`U3M?ng0SN!tZ^VUxG{JsvQY9GJ+={334Bj5LzJ*wd5jw z78wOHzz^`oJK62tmqB@Uo|VQ%6d47SPZeAFj>JmA8!ArD8_H9>K|eBWD^KwTNADSF z2&#)8K+{EP8#yANK;gz+SmJgxe3MkH9!0tXyZ;^;pF@Cv{NZf!hw+7f2Y-MoofHjR z7);4PQoy50Tz0m>N;$GpmjY&{xI(4m3IQnv%+b~kB6$aA$uP8Pz>$rSoOve9h0rBknY%y z=E=f68}8h~J=-E;PQW=En!7;9WG?guxM(+z)E+x3rX8DsQ{HEyIdf212V0v7T}kAZ zayyLv*uo-cQ!v_UtHKIn*XGN*KTE4jQ4Ka6A*U{cv`z#z!b{ks_4T@9Rf$c=GcA#i2Kr|GO!Qw{Q=7@(srZ@W z+eH~9#Lb2XbP^Uk;d*G3mP0cO(>v(UHXe#%Wev^T!1Drc2iXFi#)~JevJ<==)rmUl zI9-xH6JbWzH3*=UIrSuE&N+du+8`}!zXH-3taIpcE%ABjJcwFeo4pKY!> zf;3lr=HMfIf2O(WD7UT;BGK+%g?V(xw*q7ypgw?>I~g6w+odV%tX}0$?*m%YUKI>( zZ8m!W5fsda)U!yr^&KdSs0!er8>~4&sP>{8W)3u0Uk5qM{pOmQ%=zbjlkxII40rA{ zsmiqw9mL)&sw%mQz&K`WxQJnAB_rJ&R<6<5x# zL2Czq$G6dZ5t`2TzWg_8B234;^mBH!zL!9wCi&;u8Yc zj?apqjB?nbT{hAFMq9K)oOHuMDdYocP9uAa`?L3iC-s3Ag&mxZvU)oc=3%A}!NZ(t zH?X@1GOP8{xP5$LiE(UOv#~jtBw}`=PtLw@`#K2lE3Q-0^SY|O^o*ecT9sUE{JnIX zC{6+hIK~1}j`plnZliDtg04yt^sYoP+3l~QujeG3S*@R%Kx4BE;c?I*-|-12eOm%b zNbh#<^WFm~{%RhN!=z)&fqE10cbNd?JDpFWw6BHVwc;sCtZBqUBAA50_D$0>iRDn) zKUsK~T|pF{Z4K8ZYLX)HnRMdQ4KowdlPJ}R63;c1C$37pJP(`HldE3?GOfC4(3R0G z-ILU3ygS8yQL$N}fH!9=!z;}mY&Tn#;bsr)8S3W3w&kxEK6y(%I^gks!hxvUyj#8R zfY;fvZg@=H{uh3fu z07ZJjy4_OJaq%k>H)K6*>A;G~<>}%#5=#*e!T1T!EGQ3yRo_SXyjgeScFA}*0ApHer`_t6(i~is+0Wu;B;}`%0qd`fV`qGr_8c$IZ(0v89IcW>aZ#^lc?V7Mc%^tK2HAof~~gaBXZ+K;y7^!Q}dh z#r}mHqhW+7yX4|y|A$B^5eS73CSrYNKq3g6z>9j&>k8`ND#BPn~O5n+?bdFbcww|pT8se zU)w?zb8fw{s!ADd%xn-PqisfXK46WU7SIl&QMgl~+PvPm5&R@$eugBY`uyal=I0B! zT%CAw2FT&uScKJE0A;PRu5zq|$5Yf8 z%Jg!>Ba)1+K|8Vq(;|FQOE6hW?eObwp{btMu;4s$rhJ6IeMRts=o^YsvU`0uRH@!} zQ+N2BddfidsvwlrjN(MC2-aefKY9!&8 zJ*6-Fa1seaW0L}YCE!ptfXqrcobotlwM4GlNBhBVgx-eN1VHv?#l{4Ktb%K3b!^4Nz^KMEhyZ+IG;)C zcJEdU6K)3L*B-AlyT)2QaeGd)HM`mF@ke`Xi{Alsggn@ltJtO)9WPozC);azSs_ym~F$LY#fM;gU!LZ)K|EMaL3{R zM_|lJkC8$_RA+SC%?b{S)_mCKeGUCA~f1z@h9}+ z65JgC_xZpiFj9W73?Gn@n)c%}ZbNZP0YX^L07z#A68V?WSHns6G@lV>XVwV7&(S7! zrrGIyvH0XiH)SQJ(qXDX<>AXp^+Po8KeWqB{gF6tDb!=wo`kUHV&W_gG;ysFN!K!* ze$xBC_jynW#7Z~G2z)v0EY~ zdRSR^)#2u8pAw4z)x74J<`Q`H#b+uYwl{=D#^gO1uGd*c^jdB|tCo2@2)VaMWb)Vcs@;g`IKOngvKPV|86_J2H4o`=ew zoQdBq3?Lr^DF9B1cy76AeqV&S6Z;uphZVC*e&3MBYo3l80aYI6zP%P)UOg57ZiB_w zR0{?IL4G_q{dqd4_Xs@9)gIXgY7WaA1_hIMk)I}}ch}oYPvblRwPG9G=un;{3AFMM z6>ezdbHgu_zc)z!j(N2T9xplkF~QtrzuAv!?PF*&Kv;0-&H-DdM&0xZhH^UC`^(aw zh|HaydcDkD=jOsg3K)y;z~?O8r^M4U2POAM3qj!QqD^gDK&|4>=i^@rVrpr@kkX>? zVBwnp2S1Cr!@-FNvYSk$d1p+^UrjxUOSz2}_{Aau^}Tqij!nx~6W6nn(mb*#%5pAv z=3j!n%941_^t_VMe)z||rXbT9c_&diKaiN~$1HNuLNjRFiRejl{kThI+WhEV>apzM zGXk}6g{E`^#U6HxULXr9JYU@w&w*AZ&xANZ+_SuoD2XxAJmhY68guLHpGNbF$jk)C zmwuM=&4_PHcozA#5Fzr_HH#!bJ?fgUd~&O62x^SWrEWBp6`V1>DEf(_+%^-D(-xl= z?b)l`b|r(TJx(a%l7>dLhe6wI=X^N$Egp$bIU{BeuLD(>DeQJ_9hghjw)&_6`!40y zJMp~!KkvW){zGrIzB2?h=ZBbqYbWM&`|9Rr6p7@g?iLhBa;~&ZgJYnz+){NT6nE$y zyk2a+oR|q=w|r%GnAp{Fiw|Kji!Exo72MQU=1jY-xQ&r@Tt88H#p?IiCUi&nMkG}z zP0PrIHv-d?#;E{Gpig(u6&SRI1LGKEsvD)ErDEY)_NVUEN6<8!->Mgq^3e`i|!@S2>2_FKcXitW?9<{Uc{W&#py6vaO+rdVv7fYu2UKN`?3^LL$63btKrlITk`is4TUg~e+vtht zO&PbiWa8Yj(Kf(Z*il>O!K1hrXLd|rD}4}&cz^)9bKSs@QZ~a?M?~mEL(YWVfhA2` zv6Qb53Dje1H9d{m*@`o6Jqv2=W($0Z;$_LPt<96^iCjU5S5TAwD#%St1$wcDG?VIu zPVQe&Z2!`H;eVmLVwb^5PY4ZxIIj9Si9Wel7QNS`fEf3tq06~ z+NhQF8{v3{`as5T7)4_)!QcQRlV-%=ygbx(4e1CzY=AP?6rK!%a<81!LyoxJ+ljEh zfJ$PS&Gc!)Zo#vEbvq$$YRBf0gp#Z7j$1FrTG>1mQn4{!PG@C7N?bhO1V7>4(O)+= z7S$<8Or3hORZbnMaAUIY<5F9d?PN&g1Nw9*jn|PWQFZcD(Ja-WE{b}(esv{ff$8yS zhSDTzXjbAS4jYFo7?i&`iww#!nRsQBypDZ#L^g6VWCsF?>iLPO{uyG0L1{=qw3b0E zVM!!NK7}so_{pxaf1NLpKh2#N6Bw*tXeazEqF?#VcK=fp-?v>Uf3F!Q<&gqO|9NS7 z1X76330!G;#L-6{nba$fj61nJBKD%Vrv=3P+46|HS03pAYJ;Q%GZ3=LsmUeS{PvMZ zs3xKtnIE`B8NuC0B7vAMMGI(8D3RFNB37o9P{MNweT0%csgEZfqqw^T`NUt;;t}gT z6;_^JF@(!}j?Z|?g2Z=%#ymy$?IGWrKqmy}1GB%p!}dE}HkS^{~58~+(_6lm+yML-dYIyGgU zlwd}-Q{v^G8n+RGuVsNJpm%~UMsX0&74#NDcFNJ!;*CM|%d0hx`VA;h&q;MDMZLH+$i zks>&|fccUG2!UjCngfW_OUNrC2WU5KgS2B44k~#xI)VdaQ?gHS0CDIA5Sy2lLgWPM zA_yj(GbhCmIW3$Bu{*-dDvcouA()qhDmVaUha3Pn626WC$7C4RuWHUNZ8nwx$VHQA zXmCj;P!xG_MoP{orko*X5XCAnix_}iFafd4$m|2!PvIky^Ey8OBLLdP1kwsw!`WU( zpHAZ8|2;|`xX1E7f{QK%eaizmF7=0bYI(l8v_QS8Nc}gVPWlD+1IoRcNxAoZ6Ew#T z_1{Ryt@})^Z_zW79`iJc*m-!f9jKmYP@?;~;nC0@NZclb$abD__+XdtXH{Q`9?OfI z9h6ytL^+g4<$mh%$fbRIFzwu|(i@sv@Ww*cK#^JhKzUl(5__O~mvoO>P8GzMY_;6Y^ZezWG36C%dG45UMiF#llfgS6Jy78;9Sa+V_LJ{3 zIER&rS^Ts|pAh>LY|*)5r@9C;hoy5qQcz5yLcjQ514H?Xr&9f7sSVwSfiW1wLpz}g zCEctDU=XeVj!fPmR8v9>1j8veM>jZB1z^hokgh^7r#b5MS$Hj*1qlU7)8`x<^wED_ zWXq}zghy#F+Zn^m(joLti%uJ4>kwKk|KLG3gaOfR7z7@)!E$I&H@?8UW`)m^MGeQy zwmQ9R(u{!4dh(~~^*p)&viFpxY5k%0jsQwa}%^m7BG-v^;<`hW)< z+@{S~PW|)1zBlVBC~IXG>+83;bHrV%-pMW}Zt!=MEgR#?$$|18sX0f*a1RIE?G`Ulp=X)|wVe7fmNMOM5StEi!xci600opC(8kKaC(2xX$FGk)xsH3cfZWW<6WrzaZiUW+>|YvL`r*#0 zyvp@pgy*YU4_Yw&Cs+?&f9k(^JrGK(fmVd^ux2S`_y>DKC?K`TqG!&2i$QpG--Y1& zSO`u9sGpa}MoM9yn^mvOIJ38~FM)&{cp&-oVZS$^-8kmEpIpLUQZgQNCS6dUn!}Z-MU> z#P;Q(-0N|m>I2j@6Dk>4cEx9{`$pmVdVGgq+8cLvDG&4*qi-2^9vHHjpAI>MNW5XR z%JW*YR=>p-eOnOFw~OuKEEo2~zFo4SH*i|QPl@(zqw+wv@zAR~_Yc`IOVix*_Do zN@uD+aG)X#76n?7^@0`OQq{G>GP$w31yvE9MBiv<@U#eq4S7Y3tqVh}#we)D8(`f`k+64%y@f&VC`#}-?&79R*0pg;$Q z8(b!byIl_Lj-R0bYFU8%O#n*;ez&TVoWA|B|KQ-i{vFS^8m_?u<1(B#VRlvpm=JSkrpuKIxn0 zS4&HL9kE1$s@Z@_Eb^BR*hfH_Hnx5rTiQDbl#_~Lc zjPjmX(@UxHxh%g|rsu_)-emeVe38%cnoKWJvO&_JoSJv@^9=y(r zH66hZMaRJZ1l#@`9OmmSD)p7mo!{SIAlJ8xo<_N#8@jE+L+rW=b!sIReAC9@89Pa^ z(TzNo?x>CKq=C|2xK+80Tx78oN5*g4gD2|m)K*+N`ZUyMuNjAIi=4hzd7uqDz^ywq zBt*9u!Uy0C7CId>z8MQMqyJ2!EYdK`H%7gAj_)ROtYKE{<~g|WXH4;Yb&_>VF}*Qt z$p(u$b-r4?K(QIHyJc^H{W$LlEE)sX|1sFZ`!!TI4%wPd+k z?1J~hnBrM#G3uM67JJyy;#_nT&AQZv`RdIJ=z(Bo=R5)Jmm47j7tg{7HkIV&ts28! zbnzVg@LYc080?@i0C+>{-GzO^kJaD0f&EU5Xe z=627~Un0lYt&d)W62w;F_F)aGAJ(czKm08sfS6*XLMD`t*67WCL%2pQc7&eB7idH@ z7SLAB!14_Qw8p0S5vXBQXdALc9&V1lsb0|@a}buiIU2jocD2~<7d>q7S81Eug-nDD z0sh&albcBYh2VLa^hf{9Jl__MC{J$kE7a=(uwen29qJ+EmY6=qGwzt0dB$ccQi!O~ zv|NqO*NmTP3kTFqJGHO{`j<&NwaBMc)tXrmTOr<>&3$qr+KeFvk`4Yu@v?wg9Kd$I z!HP?HgwG7nH6O%+BURB2u1?;v4a(q&dhBH3aDN*QXf9?Th}$m56E4cYoo+_lX0a_Y zd?5O69+qxfFy%aTnc3H{%y;whSi`c|&CAt*MXj*A};&XMm)vDdrUk_GDi>D zgA}EEKq$GSaZoyZzmVkt33)&|#b)$AOvgXp6TvX% zr?>N8buIsmie;6yHGIZh2kNClnjU~|z!`E3SO?A`N84O%mRc~^((?hG zHLv5X>nxy#bQ7feY{zB9Bu_hTF@qf+EJRsz8=3_hNlaaam?GdJlg#8I(N!WjcZ}#L zSr}LbxB}Fym>wq*@`Y_PPa8cL;S!OShqMa1Vv*BSYL~TI3}7*ptI! z1^FxxmpVP5zKY4VnO*=uX5z`Nmd!jv!@M(`fg1vG9#2j3I{2pdl%_2Fj=#aCG>VgJ z?Y=Fbxa_r(-h$fC5Rr&08t9D%y2KhuZ%h1%GSFKY>1_#ucnf;V#pLDEdhcRa;HjqL zM42lwoj6e@aH7mJW{tp!vfMFih`dArR1#3LB~CD4R!J?D)E@0j3luLpPRvT-#2oFM zCx{b8b99`@A0xVj;TDWpqvJ%;7$JEg%|B)hX`wDQFCcN^hMCfTH6J*U%q1Qdv`1Tc zA)r%|fU9t$a$5nGM=*ycmD?`mLb=n2>*9<@G4F8ucS8ukcv#q|zIey>23hn^xMIUW3krtC_*SkH6%>u%rR|}^S zB^(f)Q(`oC4d5QzaCi?v?ezn0_1rC1)^l9ek2Y?RP<4`74p$77mFBR)voD`<+K z4@S|LCPK#74)CKHhUvrsTHFVWXh+K^Utng`vgP4y`e$+#pdiF5=(qveHNQnl=QbMM;3AP;-Rr$_QvTOa-t3=V2f`#7g}L zci;^1s_4}6{v#~!FWZ=n<$W$a7p=q^&QW!+wklR?PDETt$&Hl~om|0Sti}+VW{H(r zle-Y)@0Pq;oc6Cb9^4aL^~P=5OR(AJ)hTMkA0HLeGisU9&Ww4ATI!EG5{qo9ya4ll z*PA!XmRRHh_TtkZD;4>-W#qdOi}Io^u0HwSm-$f~n?Uum@)C>u(Uv?EIk*Saqn?0P zk}3ivmpC9QNE%M|178FEhSs^&Uf~inf$&$#1^Wgs5z6|9)|T~v}c%d8_f@( zt2sPBd>bR`L_akux88twlTq$!a>x={sNn^K3~_%4wc;v+u)7$JOC|2v(S6@elrK|X2}Iw> zY29zaKq^d|sskGL?D3iT^Z#hM_(?0KDsR``3w8)x+x3p+7Zi0ULW9Z*u!#HxYP0Bu zA`)E%tTW6(>b-huYD)iGe}%t#FTeQ#*6u$1M&76T??6Lz+BWu}KrP#!Ef+&#OiUUU ztWDfv1vc2s7^$}t=WpvwiIqH?;7s@t`U3~3pKA^biibVs_;WaPy?s{~^AP+aV2;-f zVgaPlqU&TqQ+#Q<+~8++?T13#W<)^b$bE#>K=%iH7O=!2CvD$wp|6Ak7bD0~lHq2< zDXb0Rq;6jHFhW9Y#UK)slZhWDVLyJSum{24x|Ha{G8NI_n1E<-_aH%SOZ?EKKF4TJ z&tTbdVim(>!8Y}Iyn>Y?I31K@;v@;3SfRp8#W%J2MSxKReZ$fEF$e=EkJ;O)hT99&a3z##O>I0hy>@v{imOeAZyU}iMfV;twbkDko8%A@gV^^+4BER;831D-PUHZ2AiK85U{%_LYyjB? zZ&GNUz2ZjmYJk+#ar~nHU!SHBfW|HocI5BC7AL-R&5kXzx4vyQ-2#VKz4}ufV83!g zzoKrcg%rNmIHV(TCZKFn9@qvU{JEW-(btX9tx&?Tm4Ou(l3%PFD(#WIu@mySkmjo6 zpt@lc9tOcd{Dfgw!Oa8VZxBBL5nUKRp-9BPQGshLrN_TP_yZCD241()vHt`S6zl`W zzhR*Ebo`r5BK}Qp&~cLtIxbr76Z{5Y6#fJf5+M}O*-L?o+|~~m_$K2}zKnN6V@pQ7 zn|?6sFZIOo{Z<}YXMajjUo!;+88L0XfNm5>(SFrc}UXV z?9L&X{ihMvMIOz*i?hW=*gRW^ig`qvf`jcj2x<_)t3^qCda` zZFJMEYzuT*Z-&o&PG}ZD)n&vv-Ra_E+)ESr9_qKNPb%xWqp$U}?z1TCHVo-z_{b4> zkxyrdr^KXg#D~vMOzJ7@UV4dlf5Li2O=vwXHL21J>DtcZ?H_`{IRMmW&LyCo?bWr~ z4@$%|a8T)8+rxVHDZ~8p6qNe?gQsQA51~irQJ(*%+Dt4dxttzB)kRnU90yx5MIRDu zle#A&SOTVq%Khr9XouymkQWRyYEjIsz4m*kvuC@Q(KTp~9xfq`ov}DeY2OaRE^Xc=N z`8A1ab2x48sEuJ`3erbVF`C7q(jMA(Uhl{GMOl zf%ily`IwGo&j28aa*1R$wQ3Lg;;hwf(pv{kAR$*G7K9YM*nm^-g@2g1g;p6S@hXK> zWR@O@RDK{;E|98l0HnG!g;bZMkcz6MJR((oU!;QMg&c8uB86190@HW|f|Hh8H!qe2 zV9mvqFsac$ceXxyZh3_L03d1A6F(28d_85Q{o%PmnfT|%kctQa9LpE*h0Y4UmYCg5 z;WLk%!cRu-KZxtlo5;EolT%!R8$gh>iVNRN)iWr2C!BsY8{d0OdlF@qK&|%R{Q{Hd zt}3p4Kp}e~(1ZJdX96!iz>4*Q#4^Dk7OusVdHXYgi&OJ8IyGOO)Qsn1#@%wpi!kGy zEm+WaNHA}zoXY(=f8aE7;X{+rPUg6dv#3LSgH?1N@{< z1{9*q^R++wm_)?i|vM>gZrj(Zx>% zQPcr-wg8sW7{wR9_u!1?Mg4Y;(Ay&)}zREvsMWNN}U$79Ta$CCv7nCB~|a!T_OV@m*ye(v9iCz$$$kIbE0)0G^IB;?!fLHHZD_h=%51>SFnTfYUbauJ2Pxh&Z{ zMaJvH1|3L%X4WRhu`)(U@<4fZpp^{}7cq9ss~-*EK1xBhFvxpi)3|LYLK4)kW{k&= z)I6zuMaIlDLtSK-5cztTLQKOf7c zQF#YyMsg0!TTPRZs(zT5ZWQueJiDy1CGv^)eWmd%WUM}RM97Xq@Eqb%`}9qjF?<|3 z{cd(Oxub)JCk&l;rAkpSh}-&` zKovE=CE<51RBqgBiMG0w;gj!T)^4VYM5H{#l)afLElkleQ+5KIe8}}NE=9#3>d(mnW(D_15cxe zQ`8hW&$kQoRWSlib@ewW{Dn{Dp;aFS^aM!?`~@sUuo$>?&ealC#<+13`9{6LyS1ZqFRa&?*Tf`aptjy3s6AHt zro?34w7K%T>ba!#wU&X3# z8N!3gFv5?~Hp1QU-$WUDP{6VNun;;;6w(PZS@&{OG8Ce=p(^+6x#P=|IG zay05)ahbAiFwXuVhN`kIwj2}G3{@ATwAYkP{;Ub9vD$+zCY}e2f8kMsbP5XX>xYVe;a7%dc(xhZvFT~|qLEASmyf>*`19kh41bmQn}NSs z_?w5n1^BDS-y-}i!QXQH-HN|v{27c{Ci9@|9Ls4o`QP9n)}g}`{bhh3ncsgJzwo=X zPm~?(N(y6~Jrm`%U<)~_U4>& zY-sQ?Na+cXh6`k2_8vv7+S&8ejiQmz?^B(q(e45Ah5nFwuU}ZtPBk20rx093MoF@? zhklnX@qJOE3ME4Kr4nnjIRb|>zWBnR9q>bv1;%0q+c=N3Z}s-zIu6A6UYF;6Ka%aI zdGG*~xpm;Z1JM9k1a>0kpzk0rk+!ZHZwTjk8A{6Xg<4Q z(&Ta^EIok2rcFjeVv2EgJZrL$nRh146Y5NxPRgUu7W->K-LNad@$wT^?huuaymGR? z3<;=w3o6etBm%~`#oxFE@^~BS9mqEo^@+OFHheR5;o2)#6@b6d3-)7g+W-Rwe((k~ zX(2x|AeK<;q21@S_y;Hqh?Cn}z|(9H6jwbW7F-yeTa?oG>DqDpl<4@6<$}foD)cST zTm;IO0-T2iTUl;RE>n**Q^ayms?l;2-N>e*Le1KGbR2`RFKo*m~Hme$cvq zl<9+OH$4K*l>WxMdHvZFH;*)RVwY^wTQNP|`kMJr=lbt2T)43Hutj~R^}SK1cdmW< z$6#IT!60hFMw!}1gK*Y&{zkp@(0hsU$95jRu4RF`wY77UX)D4lZJKxw8eV!W0A+uI z9xSn9d%}EW>)tG{hS|0uq*m$rjeq*hKgO=J9olbtuJ!N`y;=m`S|4j}ZkDNo^eWZX zUmZ$9r;8BQt+8q|>*-FEZ>)>?grVEg4)v@!A^o)nn3kK%CGU6PS~(bhIiCR`tzj;; zI?SDz#_&Rsfq%@Y+&pbkI=4c#QYB#Vg3!FErfJIx$QU=-uN<_h%4lfXa?{|ZmKE8P zF5w#p!wzE35_%#BkUA@76w6K&ZezX{{(C&uoj8RXVYqfMZotI?A+P!Xlg+oChjk<| zy^^plX?-or`$_ab*0tMtt47_S&V=ed1Bf-MsjDhoG7}#XW`8eUbtj@NI0SKR3(;-$ zrbli~CUNH9o-S|#;vJyd$#0O#dNYK7ihX@f>7{Ll-V2(bD6*+9wsws&@obXq+IE7> z1d~FoI>iD+_D-UAW$ERo6|a7e4_!l=-n(hY)YTjL z!VlCR*#u;8lLCMQ&LY944`037Zu(#VSP@ifM;;F)dD)xlwJx$}O+Xj&%00 zaR7GI4KeaW>_|@8we174qxTcmb$ywT&h)nTXF|9n8=#2gNk()ajhGN9$s>9QplC-{ ztRPXk{kqKy@am{DZJTF$a&FA>)c~wI7z#|Z+d?~FG4<`yR*CZ{7A_!7gPuj2(s%^0 z3cbdE?&bc$roHZhn1ekN#8;*96=a}WTyt$WwyU;&!>|e@^ICFcGFh9vd^4(uA$R~M zdRVN?sx8QRHyKP`z5(f4dr?|g4$r^)DI{SL_99yIIY?Ka5h-k4;jBtt&K%8+-E4BH zHF*Uz)^O*es@xu;tGDP@t+t_)l8jZ@LS?(!)fZAqH>=>Tv)lDH|85j%Xz1@DD6Qnz zL2ZrvTK~|M`5`UzUmb4V&5?7R{3#k2o2lAB?DE|lVcXz$lh`&3*r+{P%}WrxRuw{A zm(Z&05%Ocx!JDS&DL;f2IW%9C5Fk>pTh>RA4G@C0b_`;3Xvxqqh(+WRCxuVggar zBHy(NJ<=M`mrx#_>M27x@#jvS`7ro3nWQ3DZ^h7P5XB2_Qx>gQPc z5H6j3bQ09g#O4EC&sBTALCWOn0O;6pT6mR!8H72B2!9+;kOG|HD}?@de8?QW7@OIP z%A&^xue?z8)2=02U2oEUdBwX) z?NM;N`mB2dk==%bR3ULd@(F-hy=2FCF0w&3fdpH151+OD)L=ssU@n}<_gk)&`chO` ziW=${Np5P@etJ3U#uo2VB!j1MZn+1$I~RCZZ|X2TTyB88Y1W1zzglO8XTH$IkGi!_ z5ZDgDg+g^&xol|puWR%|A7JOkMH?^@VwVLk6u?Ze3NzE?BWQlMKK{{yoG@i`+v``# z{!OZ{ueWH^ULz|)r$l14HtS8|x6AilS6h8UWq(IG@$dV(lC>E# zoz(se?T?Ne`b_hRU*aKFA2LAgMJPZ)67<)gL#JC323QGLhBZYFFSC$b>%x^8OO%b8 z{b8Klj3sLIek@T-tjTd)qL%1O6qWe`L_zKRHw0UF0x4kgq7&|A{~f2o_Y!+CtjFUgL)detzKz~51(L*oZYx9e0sdfI3Zw+ z42`yCMO(5OcSYXBp8K4Z=w{=-<+Im9&l~xy!mif zW(C!msxsoRvUyE zGkq{tX}ql$QF1?#J2sfyQ@nchKEcYl;EY3V3Qfy1(DYg=%=@G1i&(5rhNeH-E6`NO zP`mIJGS^`-`;x3%K$-k+EC*`tl})tYL2$W;^nhjO{E+QikVjYHAMF9Gqv9a?-OP*) zrKr-Ct%_gp=Q9G@c^IImiv<8JLw%O^))&xixAt?F>>hBS-p_BLb1~~fn@9*V(`+J7o-wv^+kyk_p%V&=7#FW>k+vyi6Vq(i| zQ?tD}k&+a00zAkq4Qk0Ze`?lEZJgCB4L#L){k%?x0! zd2o0gii?F{03wCAM26!?!-QJxVz-_Uz9jTlcsNMvTv)#V1KKB$Ab|Y9L8kxNjCZkXS?>bGwS_?QySd)epWH)h z8b&t;&aqbL%GhNd8sXKC<|>>J5E?v62}2+w&c&_~x`1}t{Gb5w?RnxiAc}-}RB9Qr zKJw5%pKnW;#Sa9We05{OdZlW8+I{xgbd+)E80WGC`smq6yPpy9|_&o^IE`Q8ds?)6ikGDA& z^BY-=Hy&Q1PF)S!)c4g@d7StC=EcL+!G)HHE!qaZA~O;i4n&U~3FpTLPq0M389jD1 zJUTwbI008Vjf@^U7Iwy`WKF2Zf)?pmGOWa>m?l)1!a3(`iEc51w{GEnO7DW&3d^xs zeYNW}bu;Y8Lnt42DYs97QyVt>=gI!Vlx$bCFuGoXmxB~Xc{tp!k(qM776BmIxLv*L zWr_QG%7e?vI+sJS&MV)ADk7*p>~2PB%#H){A>_Cf=1rwM|D`lOOos_2sXdV=p*FsG%3Nhx!xbueS;~fFn44Ni^&P1PusjhBXj4eFq)kv3c4B z4r`A){5)<1r~o3ah^29l()<^cR@T9td?m0AVX?J4v3D2zOKD^<8@e=b@6?qwq`Ps? zP4jR|`6a^l(zv7yrjjArz0?l(U<=TITbQ#1cOYF}gRa=wmHM38T5SvznNp0HCMrZ1 zSZQZH@Etw(wC>C4oQG$4cshY6EAbtNf*(WlSYUAx_Y($m@X~tp@O!XOh#p2Ruho)b z7h#4A9z_pSN?^V6I-6V69^D`4I&=NgK;=XG=y@>cy7t{BhJ3IC>|9Z8(H`Rp+p6}w z=DCK_3UWpwZ4y==G`6f(8!vWCW@J!e|3|eubAC_<_lr2SWL$9?zPq$^YICW$)WK1s z-6y1HYvG40vQ1sSJzZwgelMfE+VF)V)C0&A3v9-w&na$Lb!+{45(lHp4W7-uT~GUZ8P5N)+U0sY;^}_!B&FrFJV_GBkSD(- z&Rdf}`pJ{<^&L>2^u&Zb$sb^0TAm~``d=?k2H^}3{I+Rhz@yZjTJ2FVv07O2zJv2V zKxYvsKV#0Nv;HQM!E$%5@EFKdn(hY#gW3dfYE`Hkg4z>8orf2>W~U|56G(DZDM=1` zeVnk?CDD{9=L1|F5J-i;AGnT%oLh*bcJ0T)wSdz_6|wj{)L)u&ZscGf&57*l+WKUW zPG;Jlkj{0@1|{enzeSz(*?@<38Caz5s;xA0X{ibEatgr=po*a8RClYrAaqMA16sxF zvF818gWeP_xDl20b8aC_rujeA~1)anv>xOI2Ef znfOr$Yb@ez+_J{H+4?{-=H=^p1S2+6$!t{ztF7K_rHO}e-~gsBF-Jc!DYyL+uSs`e zbI@+%g0|Bev?3}O{OHwyOD5HG#NisY!KG`&(%oM&{Y`ah?Eyq4_)NQ~=Cx;he>cA0rCS$&-tT+A#am{X*WLx)`g9C(75-ZA_f^4L z%G*me0}BXdyE+WL6p&pbA^Q~c`HX(L2f~8-e(OFScI6>jIyqidQ|o*0Q3nbt>xxY3 z#$Od5`UFb{A}^cNtviBrEYGQE19RgEMyq7+TC?}a*g_+ z;I=a9*9B)`x*W6G9N#0|RFX2bW#}1S1rPIW z5hfBLsVF~hRa=j%q4OGSg)*w`jDtUBzTW}Aip=+BRGazU-7kOGpZnxvylH#4+(J-L zMtF?W`IIkZ{qAc||2pbV$<$z70d4F$_+{8;(YK141Z_07C850D_p|x#?|nZF?|M<6 z@I`QU4C05F*%KKSi624Lh9B7Stty0mKm3^YnY?SnHgO*K!z^`%O+2nHBpGl%Wul<$nIB4!{KXDkaUIO@xr|85tN#H>o zVB7HzuvE`}g4LVvVJf;eH9ApaKC-)+U8H9-5!t!*^`Xi|fR$By7xpLJ#RP{5uan7> z>aU~zOLUpi9zDA)v21b+xLL6c>HO<}Yp^!|zt}Vc$A}$XW2`o)4SSqvB7P`7V5{2r zRI%{yWfj`h&`#=^)A5+X#(|cf&w$49*`XE;yWUDWW9m=45N;fhUI)PTr=AMAzI&Yg z@Izt!AGo~q2g+{A)EDuw1QU&jJiq0FYQzE^`(-f5zy!}M?P3Tk^eTbw zA~II*Z+#wQSbJzQ@Hn6~pnVpwqrh-shqq#T`W~1)K5B;=Vi4ASobNx#2Tl)90&o*1 zEb1Hea>v8wR8pjU^dg{5%6?QLb`9p3a0RB9Da9O))Ot7Pmjnu?6u z;et#*v-RPA@6LYj;c(ybyBGI;5A=JVb7S9pN5A(6z?U+naQ)`K`JugN4^wH;oDU1c z%_z%ZtY>~knkcWmaEN8i8R@AZhuFTT@2NixRG-M#es$vS2_NzO?E`<$eC_HJe_s&M zzpotd`}NGv=y!HKNB8&*G8YXKGL7)k8{BKLd@4XAuOB#9?Mhs_R>QG z!DBu1GyB7L?N=wRkMt_~bNhhxg_y5hed6!QZ^ZYN1Aota?d%hOuk!=eA^tSaqa0Ui z3@Q5V&A0T;*Xg%6Ut8bjd!0Ue^Eda+*XgY{|GvKYIz9E~H}}og>7_S6)Hh$p|K9wH zzWF+S_vU;0=Ii*|n{Vlxuj6NLzV_!nx;9^Y81Muj5B=eskY^eg1p% zLw)o0`K5$t)xHP4HpJCT{M7lk%r8DZU!Px@f8p`@`uxg#)A9NG{L1_{o;t35eST$r z`|eCgi z6czn4T@efibUJS0K(rsjv<%iP`Ws1q@}sWw0wS>H%(Cv5D{{$7#`Zc)`#B z0kKU*Ps5{v$wd~e?Vi*;DzWUK_87!g6cT&d0RtoG9Tob9TAK1B7A*_Awpf`>T><+> zcmg&$JeYMc!utW*R;>Y$htfc_7|>><+6xa4Y8OHXMr(Dts=V&Rny*^z@D2=t#^rO# zk`m?crV9(m5(kGOpled^d0jg@XYI(LlOi>_cgmdD3bSnIR3hNewSi&Tt2I?3j;d+P z*aPa$*^7~htIRc3+WUaAB!dfTwM%3}RGU2iAEGxMWnynctp-kd_jbvY?vl3gc>z3t zhr!yNsCo)o{rd;0de5rAQPRl`^*4Y{9=)F#_O5>d6kNQxiL*$h=-V(C1+;yFlL+tB z2o&rGVc<0?O+Nu7s)ItiB|57#&Z4y)SNR|=h*tQj=qt$b2Wa_EVx6+UE+r@T8?t}u z4L001)#$=^aLgU6mU41!+MPH?fGcQdej9`=+`Mt)-FnZJ#t-2RSgn1lT~yE3%B!_) zuZXw8p5;FUOvHqo%r5mcL~ zFe+ERubr)Ty89L{hG9p%XgD~;v0x_isTFfAUq*f`LlL$p|vzFy^a%ck1;i z^oRByOfh{qtm>5(5oW>C0nA5C2e59$X6iADT%Pt5xz^0wlb?^0?e$7Pd`~wHB$fHS zUWj~;w)7tN7Wu+Pcp$-efBAKx%2*i>7$?N9D!pA8L;l8 z+9C5j0ex8J`#x}m%=ho~tB-1jjQr#`C};I1gbeeuzo}g#ke*n5R><-rY{-6#T0(32 z^v`$#J)8&$qJX!(b3GOdStr*_;u(LVEx4B9(DVFWgiJcL`}p|~^Cd{nuKlqu>4^$a zkI>HXSNtuqYd;a1g47PMcPxC$tnY)ZqU(JcWxrDWOQNnJM@0A1W%}n2Z9RE@pr1r7 z+DE-va;;0(o9ZRuW$tXosx4D8+k?AjKkq8*v*2aZ zzAGGm(o1U!{u%JHX*c(r3?4S^mcN}mzeUVRe|Xun#e4YO@$lj?KW#k3E+K4RNr4`F zipzvmadbd4rWj-RtbkVfzNiBd$Y8jHzJDj*EYVHo$WBIJU4&&#i|rTPQ@cZFRU2%z z+DmfC{k_go*nRvj`jgb2fI3WUsV*RS1+}~XRWyZ$hvTTwVm9Q`8|n#ae-I!+jDvyB z4NLx92LCeImL9JO9%CWi`-gMtn&l8$yBKv_`XRCYWJ@z* z4DQjE0Nw)r%TvPoIhqLok7Z*DzF(iLg#l6GA>LDx!Z}*_F7B`>))ptP2xzzeXKL2+ zA@T!=;gQ-~*lxjAiy|&mvPG_~csm{bdm%U#l#uJF|)gVjX`SMYdwynB<}c{3|0z+b7&6=Nex$iGIV(3 zzag7ocY-i(8Gl|F<_Qo}tP}%P8doDTiV(32v@xBi4?9-r9~oj02JH-irL>JA=BCzy zp{cte{9gqh>~Ymvmo(NP?_0P}p|-=o+jH;~n`QRxNk+`t9Y0M$@LZDFFKPfJp25^E z5Mm*Zb0eshFF6mvXHi$JHsWW9BdXnm?Yfxx4c0o|8VFbDms9ZhvcJ;ad?)svXu(Np zeVjY*rj~lMa#c6>PVM)K`9s&JrLj=eK;9V2M!!R=R?>QEluH(SkFkf~P-zb0g(l}b z?yz?NSy4MKBew@pKnY+{aHSqL4Cx&o4-S=J-=#`Z_i zCa18JUUaq)edF~m9K_@k%fK_(yDtuv&ZF2PW_;fH;y?C%f4N`&*0#R+_xCN2j#@Zq zhK95V$B@$@D}m2qq&0BS#X-S~>$5`n|8=g7>W|q%(`SwLWJRt3TtwPy5EkSI08Pkt zk1RQ+x8%@{?9(u5LZqFCvur2h2N^>XkNW;0{7trgCuH&Z*&)L!m^iRmxf|qMKS#Xc zLTo|X&i-{{eArL+LLBebN4tM>p0L|vkV@(1Dh?#{5>SP0bP7fTL|G}6WqrEdzjJsO z(WZq9v_m@+ix>4sfzZF`mHmsT3@|^G*r7D721csc6Zxs~`L`s1{X(#706soNsjA1yn+G0T=WJ{OvTfHkb%`P?!R36>& z5h$V%S8y~khJN&0MqJ$!IlD@0LiAFI2mJJHl<3IjQrFc?O>KNQylK7hHuV#pe=Qmc zx9sil9Yup9$|Pp1pTvj9+i(E(t;StSQ#JO59obwR`*isy*hPpgN0V8~?K^mSRn#nM zSamor5{VmeJU2$)>}WDux&1*DQPyeEw^oL~6Fq8PT7y8~9c6Z88*pjEOmUdx0`*1p zD1)9_Vr6!Qxvn-2;XNq!*mS%4B5wtIy>Pl?>Bxk6bXQ?Lrp2axBqo|@)-)9@;2I4; z9*ZzT@D;AGD7RmZ)H<0Ay1?SBtZTu6Q8dtzO*JRI%;hXR0hb%FjzTnjdlDx*IhTV~!gG#iavR07{&s(c@MC?^SS}P`YkUbkZ z$MG{j%BpR>M`t3DaY9IusSl@9T{@HqBboQhR36Uj6NJ%25Xcy} zRbyf0$$@YGGbUPGnBKC3o+MH~U76k^s;G^vuxNh4!RUL3m1>9xAv1{D zSA^KHX{%rEvnbq-Z9;lcSc#YD2Iooa5B-M(iDEm1H=JbAnYtgFQ$W(u%hWrBVhT)s z_!Pc?2IZ@nS6mf5I{t za$?HFIyggn14|jW4LSI`AXIwu$(0aNb&2*M#j)MEf}&PCAA8YW&^#bM189^x7?Tz& zkgZyqEoC1j-i1U78SPFeQ-TN+SWNgbFb9;^VTW%|G?|Q4)LUw__5YUQ2+wp~0UWiZ z7o>+FdsY)|Jw)4Pz>bG)pyftjDFG#fIT$3P(g8pIVNW0YxE>;F8b9jr0{rl`V9hKQ zfeo$}ICV+iZwfNM@yc%`7e6JM$e8Z0{88f165u&7ck;sk1q2KgyVS1Vb7+F@3jrz- z6$@{((%i{a7eo zD5jk&QT9IYPx7pm6;_F^v(xP6bm)IGWYBYel7UV(ya;rf4b=d7(_0Y6GYWS@_D$ieBr5?q4nfj*JrVvh;W(*+OuI;PU_2`x?L|tE>N} z4KzR?L4yPg5+O>3s?}C4w0u-+K}89cCMXEZAwEV_kc1D#0;YA85OkY5x4EfvbGo^A zZgZ?Co75u6=C@9nY)&`lduxWnsfbR^|MxrhdGgT~D1L13`~UyvN}lJr-{+ol?m6e4 zdv46J4gpFSZ-kj}4TQwE66U@H_bH50whbJH>^bDbE7`W0Ur|1qU%uFQ71NjcO*rw1 zK0jr)cdL~j?PcSe;L4E>WY=qnZtiPIvpGPxKGGLx>_H5aU}$oBkmnZ?*@D+TCU)YU z1bwVm1KnIbyG@`PbvJ4oxzv_^MqwAB-m8xQ{)y94UWTpRSB#hxOxGiyTCbC z9vNp;5<<&ykYJR$Eg_%_sT*(Mg9K2M^UPD=4gHJ=+Ed$u$_;S=2x>?nH>vVtY4%-H@6^lBbRjK^aXjLsM-b|Dcm4>JuZF2cQ0!| zz@`|?I1Y6c)?%3MKwwRCAzbH_^#;{CtE{W(bfjVV9F(jpfh}s+4_Jz-LDO+a01uv- z3AI#cj^^{3vbN*D^#T|$>`Qy2gF|W|L^YaBe99@a z055`+t3gc>9&P7TmhWm%=WOGU?C_|V0kI=9ufcYjip~?^pB$yrylw$9#bJ3-zY zpVxf?Th41GmgMZbj(TOk^U8CvesPRB*u1_ahy*UrdF2t?{CWMxoosPG^ZIkEtU0f{ zFt6v8)K6DM8I`Z=ypA?UlQ$z@?2BjtoK%GIO`oQA$P{rFDv8>-2RW$Dl3C=pK(Y=X zm<+T%CG*VDIiKZuo;?V)b7y~p&o1J}(~z)GBC zB_8-xaCtY@aDgD3z_k1Hm4kZsUxzeP*SrK&)TgaoO+NrTj*M$i%_rlAU`Q$OpKvub z;v-^oJv0NAB%WMn8&`+`PB0O#tFetcodKK>F8I+xEPk(-Z^;C3iuHMTHu9J6NY!qd z$AXWU=Ye|`|H;+tK&uZMC@Drm3@gy$SlwtlQQvpGy0H*XuVQTRZAFn2L+bgH&|`?n zygSTi+-(iopeak;`Xa{2J4|hH0_mU9x&oP!Q^KjkGGA)&Wz!S*XSx&)My|#Za7#0G z$$5XbS>c_iP{+U%1SnTG;)9-dR6E6Z(aM@GS5fBOi4QtmY5+l8Bz>yYh-12QWwH5x z-jlZf;W`z>O^zH6=Pl#@>qlVY>(NaDTPj(MuY={ZFO;<4q@b}?(zR6=Cx~1d1|dD( zi1?|2$ROi&No~rOejgx$;V`Tg-oP3i$Wst!3-hvhI0dlwVdrM2ET2%z8_(1Dk8LT3 zngTgEu?J?FQ^V?a*kr&{6t@vCwHrRE>NwfJEaBS6fI?KS&tSQAy0)sFD_i9T13xT7 zMzs{#E9wj*v|NCwDCc0^Z3wF|&%=Zfb7Ds^Xf5N7Wg&b~+aQ2o&+v^n)-Aqo)bI4S z#cQ4NOa4IBo|U+q(ehT)DqX%j^Lb-{*4MTH>-5bz<-5o+F`w7jjTsne2zy36kYAwI zq02&-t_^p=z{w4x-lBTi6VJ3R65a!Ob*ww;u8D7P#6ReL^*gP1Vm5JU!6f_nL1PhX zQ$v5qT11hbg<2qgOfl}1l+oGxYgqqjA+;MQV>Wq$d{QY{1MS*}Xo%4&CHFvjK(-9v zE@*F153IwKLkqVv-v8UM=7QwbLf;|=?vzqD-NRCXfzKk{*e74Vuj?XSG5}EG40~J^ zL_NIUY(y}<#1T?=JjZg*)ZxbPqU&L_l#fm!TesnE;vi3vs0&llB02kIb550WsdDVWWZ#$-YGMb7@VD;qTC4z8r9OFYeWnbQ#r4CiBGh}u1%~0E=cO^jF7nD zJ4odmm0X+Y%Q`kCr*fwR)tfS%#En)HH&zpkvdueknWtgv>+2aI zW&`83f!eU`eNCp}f%q1`4&j_f8xKnU2ebL#L!%(EkXn_^{~EqUY{vZM!!TK17=AFH zgz^r22P5-G9N5Hm8&61G&L1`j+6dzEsnr=2}w z52u%SjK52Lo3&#tILAflCH~|Y-e5@m6MBdAq4BKr68Oq0x2^zutPDj1>ISHp$al{w z?yuv0seZp31~JKqnSjat~0xoa=aof=6&AUELeT@HN z(t^H!#T|8Ner1sZB6;SxiAa76gKGtU&HNVrc9Y-YhI#ode%K|yvwTMgo`W9nT^=-b zjxEz&s`~BK?+ORSv2O$d>V6#%e_m7cydL-*HvHhZ_3Gzfod!SPdaJNeDc`<}Z)l`~ zd+%Sn-Au=|9+J2QiP%SmP+YGzi+#IR%7=}GlKv$#-HY_wk!~igmBd;kQZBDoZ-DZI zuH0pTZEJG% zPknZrB27u6H#aJlP&{!p(Y+N~nRvn1!MK72{d?OuMzX7>l}Lq1q2>vF!_eu8E#&*k zD6`lZepFlq5{|0AvGW<)5dj_<-O)6nKw$R3a&YU-%*% z5iL>2Vceo~4~uw^*NNo*Utuy>X3Q5-?<^9y(8y#C{oA5&dl>}ICs@<6441Z(m&vGB zn#qSW6xk0~Cqh;P=HoubI(Q)cK$a|aqi{|;EcE!FG}j%8Q5r%7iU2Y@)j&vTEqsn1 z#@Z08`0p|Z>W;EIA5xpd4s!Y|Nrv6W0$#OZuQ8oP$NTLxSD=}Zm9KmC(v}v z@8o$7Is=rb=e3oC+14W)07MV@fyp{&aJt%PB}SJ(%(g+qL>aFcH3H!X(A^6Yjrzi{ zVoEc8AC5aDg9e4JtZ9pDBRfg})#ch%7hk&9Hx65xJE1 zujQOS*h!XZgeUIJYFDF{U<5l`=0fm_{*^YZfEtwP;B&wiA9hrtUsvZrqsO&N=-jVi zed-@$WsZ(0Oizb2zX!{#<=Z!|qsix65FQizus(7po1*72=pJzs6pbf8==mIx(y-Xa z2H-`{B?fkZ+~Q52iGY}Mm|MLBY-VJ+fMoMx{}1^N+MfWYIfVXX?U8;m@iN*XtBG#a z4B3dFrlM3;5*O|P4d7JGG9efu!7cKk0w02EBWM$#A3?6K=Ok1v|IrxHkl`xa{ z+G1DZ2w6~QRPtYj)COoP-xCoBbJ2J%!h#NM<_x0B#AKqqTMdPT)WT<1(`hJyvp4Tu zk!h3iSiO1_(q}`RxAI#4XNjT8nGFN-3r-s$5)6rdRN!lzBqlnhj zh-%BXypIkQAW|1FJ~j}OzRan9pE1GD!K`{=Z3?HC`PtP;jRfy2Vh;3b&q0b&AU?MI zmh3YG+Ko2Utm)#)l*?djQ+boX6p>{hl&b`{8PT+iG$OGrA23TF3|;>1>F6cHoD|`3 z2t*$T23@h^HHph;PCdUOSH$ue@LbmoFtPg~CP;NCQ9#gn7&{HfCscm*vkW_{10#c$P^HG- z1dNv5`*MTFQB(v(0aqZP7mmLmIvYLli#h+O!=pU1o&t{m4D9lU)FcQcf{NWO8F_Qo zQFm{?e6ks$Mox~7Uw4vkz7@$&|4yg$y-=WY%SSrppPgU7UccV}uO^cTXe(uD`EF_n zK-B`ME5771dkAFHk2)hm@zJVLoV*VA-=#+HMJPvj>8yZ48A>k;C?9f(rIHMaylE~{ zWN%wt0M1XFJgBu_a!O4yctXcsw164IL9oKufctolL9{sjI1j#7-fNFd3#o5x6+og$ z|JLh~IXUH*9ea@tY_K#KN-y=(BC9q+b;ETB-@zQgrLPqN%Xa)HSFxu-jFiP~dnESbBHkNf>$wSSUi-4!?|@ z0aJ>)>+4ifve?1P{*-cVs$u7*7pF!gQfQ2_y03xAQ4K4FD4Qr2J7yE0Q}9qd{yAT| zHys!Aj8a!FX1yMqi|d$zu0^1{o`W(WbveyJxQaCWxHJr~!0%+$DIxXZw;+sPq(^uO z>%cNof?7iALm+d|c;>rDaicCJ{H>(ppFm--wo3Z6Mf=KZbi9IRfg)msVXl1Y*FP{p zy~=Mqi5}|OFGG;eQR)dH5$T~`Yi>ej@q$2q{Kkiw>{lTm)hP9yZ1z5ACW6K3Zy=WP z9mF57M})Ck%$U!fs!tk6Qv&m;$B>>VAjBA|s6xdaG+`aPrmpJ!l`jiW_u<4hSg+9B z%_x8eFGgM@J%_uP&9#AttRptbakb7tN9ud}V6YlBTx+?YMCXN6WQz>=UV9W~iei}q z`@R0?Xbm4)klARu4F8tk$k+t2=s9rb54_`+K@Lfk8E0X18cvtuqQ+6``&gzhlkn&8 zO5bp_aXL&OXdSB*ou6Y75{y6gWq{rt635CZ5PY{|y@&7egJ?6TZi4Cn37^Ah3c@-d zA(3|-3 zKtZ%WaKBH3di0wD33~hTuF%~5_8eC7|Ky`-{{-uTB|EHcxsrH~c^qh5l$raQj<1lI za5gq^E`x-5jEk)_V>PC&!(g)Zhd&RG@k+a^`AmKT$A#)ny58Gf7&{`EUhGtTfeYqd zPwZGsmRpEIy#vWJvjs$gd%s=yWl{WhC~S{`D?}jIp$Axaf(^KNa=MxgDJrP`aGM|{ z{J#boE3A%zF+PV%_O^o`GP3C2b~3~*xZUqeH!hh4Z-rigAn6c^h2>$u&6%?OI#>i& zFm*Tf*bq%!l|Y0KtA~MXK!3DU7gi_V3e3APQ|6LLRM^xSEWaUDkAE|4sus|VZ!O_j z<5xxXGB5GDpgk{#;(+gANzH zfJs6)jvbuv2zmeTa)OV{(7dy;3!{4&QUw7lGTDI|(e!fz76i%{PMqs+0LoZP$M7yo z$Hls092uGmgJc7az0|AwAe}%C3M3Ze0+?$-vCz;Bpwe<}ElDV7)gG#yLv*(G%wI))GdoG4^0Ff)GIX~~ppC9qWp{5uPuTEa$r zv1W)Rdp_*|b1?(hv-_}#OWbY0;J+;<1vw!mLQsyKV9=pcFBHpQl^Uh&3k2WLY0@1= zP>a6TuHwfj?TBk}7vQspaNN6m*VrYvDwwk3*d<<9^DaCzsA5Q(FoJ`bOovqYv>0}% z4gFW5-i@!G#3%88FaW#_cQ3o+ZDPXx2Lr&TKZ>40PYoRcC7%8`daQQWz!?|R98Z4| z9ki~daNOyIu_*0dj&(If<4!M%T`EVnyc7X&fyayo(7$@dDCGp|yMWk~$85^H3rO3V z#W6(g16pi)hRA(D^UY@DKA^B}COQoefy4zisc$Y zcv*v*2I*87K;z+vII>b_g+lbQa9Pwg!$gnQAkz@UnQ8uyJ%Fw~g(6o;2m&0n;%Vty zMFIg2j5^V4==j=DK|YQ@k6PL#oy#NGqWa%w7k={+N>-fmCd#)YrHBAqk-DDjwMi2_5dpLCS2)ZeW)HvBtr8CmOlc>AIWdsrduoMK|@0%G5VBQ{UmR(ule& zLqweZ{Z-lVm;CwXjtfrIMTf~k2Ol~dayw0xJK>FmTcDjbSEBcvxe_LNZmyXv0|aV0 zr~)<=1pPe?;d=V1)o4KsW}|>hUhZQzq{~BUp4fP4^m5t8AbVlUY1|EfaDo>*E*k9< zQYVH9D!cI%(8Z|51mn_>1>nOg=kdF>?q?eB!9&L%LwWe#4Lo1MlA!0uCtf+4gdIQA z5GDHF!J7}dho~m}Y)3lYg&`vQ`h?Jvc~hK;xbp;Yzht%Q+CVn|YJ-*o2t6+P$;u;S zwhqZ@><6XQ*IG~(rY8#zi0_wZ)OV;~P)H+%1`a0k3a02)y__9eUn)82Zg6X&cmFB>w<0CBH zIq%dXC9=0^wmI%ny~H9i8+X^jA=S228@USa(Y;MW4#l2dJEaVG^TH2QjlMuS-ZG*4 z7zR1bJ%Q#(rI|nDBY?)(aCiaYc#B@p$+(f5m(PZOE%FziiTodm=zOsJ70mzPCCLBV z?(%mTKk$GeMt1zKUSf`4tXTAy>@xnFL@Ba=`tg6fnB(uRe_h7EmGHWM1jm0rp?Mnn0czrOxGrYbEQI|&1=kDGwzWnvRPmeE(mP7F$KRv;E1Ca-BalDRUH;DSdaw(;z69BY@cN!Ob9akhzis&R z@RIQhea&9q6MV_iS80#(XX)#sL^t(!8UL3%z3(Ov$|@M;2d^7+w85aWq2SKql`c*TWPe>!+&>8rH6 z{&j&@mcBk}>1O`BOA6FthGrLWt&%P*(Fv4bJYmk+J^jG5&47luHQ6Mw`W1#%b9 zZt@$<|JXF-cXiFr8u#~SI9amy5S0AAaJ0OZ^s3iQdjheyPe!Rbx|ZrDzfffJ805dI zNBM;!2TVZziCy#WZ!7}2T8?LL2}<_rTJpf->3 zc3Ua(U)7`h0^b+rApgX!`42e$7f8#`ABB>=x|ZDU_=RE?k3*@af7lazlm5*djQn@> zD8Eq5xmO_nRXxhTlA~Bae4f~&{5NOvyLyyAOJDzh=5Z+W^+?zJ2b_;AeKmJ2x!?H^ z_zHbZ>sqQCe9Y3<@E+yQ($_yk?#;vZ1CA$4U%%{H^1$N}`dZbsR5#@xoc9DkO+e%ZC;e#f7suT@=3bu)hHpU~H|9_7!{*YF22dRk9vChhMElT~sg)vb=wD z>pK?HNl9T!xApD1=uqqX)lIs-ePZ9~+`j>^?jF2?s072z1tSZme+b1`DllcSm|I3vWtQPZsTPMLfph6JHv-a<5*d(W7k6;RX zCwzDg!cq{xvv)i8ACR5*Qp1T(e&M_Ze>-i&nE^X^8DMa{TAsvc6nuFQI~#tQr|RL< zV6U`~+H;-^C-HIl-j2gyFGs#wShNNFL0^i5w!aUF^l{dU(FDiC#UMDgfog_8ymclx3zIQkmw*F`7qio><^UR61AF zI@AD{#xu|4KxqGUDKBT918*+lIcIDogw$83V=7?{|EBgRgUw}xd0!>$;eBEI3#u!b zrA{rA9BvrF|5mj!P!a8eJLZyMpcY(=irPCAoIZ$7q6@~);=J~G>>3!pha zPynn*jsubp7|&YOht&_zsy+&9Vs;5~Rv;Y*2bn~-UW+s;kyI&3S0M>C&A=FH$#fY5voZ$d%r zFdo;4Ipd9vf>`f(BmAI_6*3R2@inYT09}j{<$FWwRsom2VB)r*Bjor*QfS|6JN9(+nP1JPR z3=irJCpJq#IKs`YS6{}u8&qfC!WDpcus1p)d7f=uZw8e4pnlBT>NnVZh;KOz>^y0& z8&B8urNfNAAZ<-Wiz6|tsNWS4!_&cFDiE+3iq4&wELgP@xSNkUcp0Q~@XGagSmBNa9F`ZYR5Miwv#tDw5>hPTs+ z^?_2nAV=acbAPyPZYsTIE2sA064DooVjUY74D|Suv#wdH$yzN+V>fwiC<dO$~K>uGA{3XW# zM%RYaY6iHrKclC z$3B!3`(kN&2BZ4Y$36h3v7?P(rc{3^RjW&(-+_)Qlr$K~83C+iE`#dvm8?|w8kYBA z#>`Cd8Y$k(Y_tGH(MClQe_YdZ+Qq(7|^4*5- z(}gueaG>I`h`5vduKZ@LsB6Mk5AXWPjYVSd54%0yW!{pUt z-cE5dy)3z2+JNf-i%(BK1IdTNJsk2b$pGgn0gjTj-_!9|d{1tcI#b2Kr3X=vGpimY zApvAlgX*NK1<-)Yh6j;doOEUeBeoEdXTURP_B2qN98pkjf$-x9_6Hq_XYozoRPDoc zW$aQ=Mb^BH3=Z^^P+NPu9?f(MzP1{!J!5`r7AzvzZbm^v0gi_EYa`ra+HlCP9^y_& z4M!JI(Y>e$$OZqejKGNz_)y910*<0T0BEhXBjV*WKD15!zEeao9AC8#JY*inxd?o>oA8F4 z9ukTuYvMOG2%)=AMHOCYcbi7Mf?xH0B=e}aQ7 zxGBRws^I(OnudQu=c7iq+M|S(VR>s;cWLs5gd^Mxyo^{Ge19iT<9g^vY=;=MS41yj z`my=!tPvsud&zS#cSyBK(HuY*PPdvEN`|e%D5OafSuFi49g= zAj1N7<*|Ud7xnx$0^HX;75z{Pz~Hm%{}g;mGzDhx=jOm{{;Uto!wlZi!7q3s= zkQq;1t9}NJ&sw<(xN_A7W}3?u82A7IA?LXyf1YoxvX-sdz(THBKbIQ)spFGT=(Jq0 za@H%)bXi6aA0FKerk?|lxl*k-+4#A|c_Ic*8TC;UP_Ia9aJI^h^*SuC=2#I6I7uH> zE=W@YM)FKMhV%FoEMIi^o*iXzS&_&iHxPp$Q5o|QOavPnHkL`GMYu> zWHezlxek1{Hedokoqvrm<^Y*=9iGvJ#I{sn`4$YBlW(dHH$dJthy5wYvSM;wkXL$UbwzQ%)C<-_UU7vTh)WA(&} z*q;!y6mdVQOJmPlX^}of`;3KF{ahlOpF;KV?R|_^T^eO6#L#eVY{{u`UGe1VzUWO6 zda8xCMbewwDorfqL|xDx>0>Ons;ASS-*9FMTqXrB%`d>FGaWa!vc<&v=|L43(>h;q z(Y_F3#Hq(X-~eoy&IwRfwAj`TPyZgCiWMBLFY!JUYQHf&)7I6}*1t~6>s-D18<0;# z{KnB7P-*mBBVd)$=ZXm7t@*`bC95Zt#zq>WGC8luY)b>*%FkJ^n$Q3kEUvy`GkY7I zINH*n?);1Jn56I2^1aQw8q042ubqJN^I~Fy!m+$G@l^AU6-Dtj+p`}eJ;x=UdjHwF z_-nSd*9xC|)lpdW&dR3%UfIk5jE(VDM-YMG67<)T-wWg848}yHm+zjM2Zk@48b1F9 zcXb!#Femy&r(S&sRU@${45i$w-V(LLk>JT*FICS+fuZDt3~1JX z)xb{~zEb@ShFs7zgE*22{feoKY-?^xAbWu zA`ec;`LSB&;b~0uHYA$F9(2bKpVXs``!hqRF&MZD)AwXKa=-@GQH}f|wTo71*bcGQ zQM;IeBb>qM5coEi3XoCpT1K5l;{my03hB^Tc+U4PG3MY9)-v8a5VRH*d2mg20QI|N zbGHbP4Tf4A>N?g#-mI_sAyaO2;~gahENg)ln_ zbLVTo$>V2G1yX7g1>5W;ROLk*N(09>G6gYwffURjmwHxUZg(Xwx1}xuYnrZJ8;llE z1TQ%L{5;-}IW^JvWd=a=Edbrml^y^}9mQd!jx@fN$&&%%TI9jhl<&p>{AxX<5imjo zTqr4s4mSP-XlT5_!L}EH|ClC3(EGFXxn9i|5<;A|8W=gks!B{9rUemv{?o|HpFcM` z^curzCj_jZ`WuvmEdSuiI+Khdi-CYsPtvf<-*TRfooWEHH1{v8K7uWc_P8O}vP{WA zxQD)P{SB-G6ig5y^RF=cCicNzE{6bOj^r6N9VwuFSlvhZ1%tx0iR`)>lVi!RK)8}I zZ%6tWkAs^wsMkgH!HL0suI3+-X3#~P7kW~EuG;2mehFVAy^Woc{g+nu-nj1t2|&!U z#0SYR^|9i~V*mKCIo((qp5CBZ%sOy85KrHmhe8_EVyg~ZGhK!RgOL>lhDL!ORDM64 zA9&K%sg3Qi0bmuLWKB)t4;{4M4QCZ{#p)qYy(-XKroYDb^@&X| z0X^T$xGh$i0dmmF);l&B)8#D!kBE&)o>`o7u?;rgT8vJX?>4?>fsSEp`>3b%IK%3t zS|~I(TZsbKdUdlbEgo&l2Z6Vj?`EYB9Xc)iJ4$GId@mTfR+P8NX&2ns)Kfo&KSDUz zR1Ls$yBPMy9+qqV7C^fx$a33yTBd0c+gf;NWvWreV40ArT1folKFrV{q)n9;#gD>w z-}v%*1+Hc{^3u`gg7!@-WkjI2o{c9~W3WU>y>z+N#zv}*jCpojrkT6tBy{<%u`{b( zx3sHQ;>?Td3UN08nxtQBkAV@Z*hIg;9y>d@n#!>RX@`=Y0vv5<&y^km!PWFMXkiom zuM*o1(SM?16WzQHVL0>IlyvV9hI44XF-;68amXM$#5QgRvo*(Y2=s%g*?eg5s$e_o z4~2FPy^Uu`(}y-EWt%Dxo2SR~9$nPRajzRN&VeBBI}qgkJlnV_4D!CM5cjUZRQP&M zkat(}3Ghj1Wee+EC^1q>Op_9Wq3~NJcHjb`9dlhblk$(mOMHhd^KM3)Jb0wKe+Rez zzpo8_Kj_lqWqtS7H+=-YU{rvWEfz2WIfD0%$cW|JHA=)3@OcLJakqz!G!iH&l&YanUMY6UC5#{8Go%iN z-}0_WbMr4YaP@CK#&2I}g>H1AAm-o`9_XiVL^v`oq-@WL38Q(7SRq_z?u1}+6LjoQ zdJxT4tQ)uLz`z~AC8vTP23VwI8JN&AV$?EqXb_d9P1I}8<+!q8D7k@lc3w%BC9tHWTY zXQGXcIzDBzrI0$cgxz*#I`qGWkhFXj8m;5ScoOX(36g`OD>>YcP1vsFu$79fNe)LF zuK|CwB2{A$LqHA%0gD`9F>6R1Pb3Ye`kCuDL}7mhNBru;@u-bj1Ko4DBghW@D+ty4 z%LwWPeW!_-p4gZEeViwAV_R`M=gLPgmvcTW`m@YtJ(EBJu^+50ivPnc;{2}YVOiP^ ztG_PBK-^in4y!cmf6^>yz}Et`J~q_Y*L5hTj6}hc!pXXR*a4pQl+dAg+@y{+81_z& ze4#b+-pG#jxdjR@!(A}JX4GyIk7tXkDlP}%CJyY0IT-c25Q5W6`cEMg&tE&u^Vd{a z5)(~ZYQ38Aq_(A&(w4fr@if`racwL{__xWNa+*_5o}6b-9n#sJ`rgW?0CG=DrSJ<{ zuDcplA354YAW1$%KTAkFTpQ;yG!vq1HTN?GZVkG(9EvK18yzC z<9r&05TX%}3rQNK<$LiM#Z}YvZ{ZSxO-P175f>L~vs zz)r`9_|~#ic@_y8)SrPt+4qooI`2KK9>IHjD;-mpLm3c1ak-;N%yi;vQlZL0wn8kf zrlnwA$Xi0|L4*3zKN(E~d^W(E&tm(;?+`#Q#gzv0D$4HPUuK@ehrYao0<840Eo zn7*!vn&=nD0Q z%fQ?XmyVMFpUyih19Nv+I$X$+-BLkK``c2v8ulpZBv5N+82?mbLuC+$g$bz6ZmJB- z-Bjs#0PfcH>JG>?LTHUg>RpubPP-@_Yw4E#3FdeRw@y5rwoW=OlWJyCJOU55gSOrD zseuhLsG>Xa_DU*E`sRMgV`reiGc54j@@o^@aItz(e2eYbeTk>)-hbBIF8PaNhP@UW zCQoAC%E&s1p?IzopB^~vd|9}J*pC0H{iiFj@K(1}0t3BbAT0$Y6}FVf;!CT~lguV4 z6Rqxe4KMi{Fdg6Fr<^^Pj&=NyVX6)4MnB=@%zi?Dd}@XMik1Hi?3|WnagG=lR=*Mg zg0MmUgB~)5(dtuK(UcsHjR1VQ8svh;ZRVS4=2J5vARJ@5N5>9F#U;k~p)4V2=tiMo z#=)793GZ~YS?my*-T%-2gc;A>ysi=UBFmo(@|*`gCvz(wJT5Kiw!ty^;mz*G3M#qFgS+*_q`CUY|$h0aE$Rf z+$y+;DCKSkzjYF2@$2BuPRGl`@;qGg8`Jd-&Wbmv%c*QIz5>tNvoel+_F`j*pYyB8 zdjst`B_fUU-ohw7mEoYcyx;2T)BLM?#ow~6c&~23cKd04aWRDrm$8-amG~?OK{pP& zsq^4p;rfkzg6YNe7uj;a`VyVI&OQNq){}5qdvzUH!ppOAD?!O)b%x={a3pX1gbTv= zGo|g@>=XQ5i{*8@$1klsz@-*o5duVbR)Y!_%yP0Yav>GpC$K*xA<}W*frJ=V^q8H1 zOV|U{dFU|eMg|ELS^_6hza;?=iX3hHopjwFJHmaGeF%$tA|vFZ%z@JBbIi@lXE9Y8FU>;!bv??Tt^e=hE!gw=H+Pp`w%p*r znRC8hT39v^J(?>Hsd?uw^)=g0^){4DD$a~2;WIX2z6{6L<%r;Qfb;Ex1;sdttJ3#x=a*5Tx&ul+6uV?Ld11}nz zjl<6XyiOD{&x2Pt`LpnKfs@4Z<0k+rT$JngfS1IXjpHSUkWrIz*|=? zQh+X2L-K7v3~2HG!m@8qzlc5a6HILuTyMo#V|5123|unXN1ZYVYO>mdT^Z1sI7W#@ zA7TMSf-A6Vvt}#1*G>`2gYzGMfEO&{o2##&1U~tBLCFkyR(av8`$&UYaVd73fsBKJ zTtw}?(I4TEuoD5qE`dS{@v7xCxM1Cu3-8bR+)5~^1w(V;$36poPW;g0&x>Dz(T`sq z*C7}QzAI%znY@qc^~nZLc3MQZ0?--kVV`-ZLEPk6E5H(hY`JDDTW!al2&78-azfVR zXgLX<>?G{MBs`BvxDWfRoF{klt`#G?Ou_?))APCl5-2BOZ|WR<<1V7N!w)zFXb(XW zDh}XYjK+Ek+AlUpNH9YCK5Rzm_S;Nozki_#ZD1`HV&cGh0RyIh`?)f|Nq8HW1Np3z zaDejqywx^u?)=DktMziO3e&`C;WSm^m(vu$FZWo{bM_|bWIvMWml=ej z%JWYiH5$H3rqCbrMb6SQxg^qvnLPI}b0#~+Lm7fd03kgVqP;L3n>Myd+KCQ<19<=l z3{dhu`FdbSVta>!luX4*VFpQGBxuwjk;ZV~2Txj5c+YH9Q3E zZO{v_EME`EDiGlEa?2#NvW@7oUM7gD1Bl@)*xCMPoV&76&|2TV3huT4^|jhfmdv)ffJvw!F27?^us`!+>5-c45Z_ShPPG)*4S6RoeZ^ z3kzL&zLbCG_X?|Hz*8-*&+M-#=jg{Ws+eLJa-C zANGIt|5`A|p7dYum(+okht+>Udc~O{x*P+Npo!QBeSSV5l9#aolm>1wJkuGlZ1K0l z%|bj3yf;`SHu999mn)u0+=ZY*(@dlfEH@ z#!3uhrBjAs$;W00jrFiHU_2$(AMV42fJ1CKH^lrs38A6!D0G4>pG4X=UL2@zM%TAA~s^`Rx-PGYj&Mbv`qifp7=*lCxc9ax;H2`eU z@e!HaRKJw(HRx)iv8}(c z9?w9yetk7qzilP4V&w)k8Mo(r@~e*pGXd7QpD$dk32LSEs+NM^TlW7Zk?gQ8mm(#R zm8VMZ+CYhkQdIeF1ROW$b_AIFVAwAs@Oh409?CE;0gR&{h=&S3s1pZT6XMnKFU4re zzazNhvlrxFUU4s?E0pZ|_S_w(4geGjD%@+;D`#i0+SN2ec0^Br%uH6PpxZbRr#%qV zQ#A%xAeP8u$0%exM31OuGLqbuCmey6A(}h65%4k+0TuEOXndw7g;>Ptmq2;1n{qxi zDSu>=#t$QMEs*1_VyaPBL;i#W-@)j;RG3PkFx@+q3e!FnLK;3*LScG%vKHaf(JK)v z2oeQgSE5I%gVl~hLqy6G5EE#WJf=DgwPfX@SeL23oq#$-t zeEED_6^CdDKn$NTi6TfasD4+PS$QahmLO~bJwF@j!=a$@)2m=487ds6B6V8iYTfje z#@BVz3(Tg|sbMI}rQM6->^+OC9~{Ri_fcONPh_4NSV+9Hf&yK46q9FveoKL1MC%MR zueO1GX5k$qznDkI$$8+^fXLbL<&z4cwHg*qV}=QfN5=4?0PDX{7=Wq>qC|SpB;}EH zu0n394FbfEh$(0W-C}1F_V{$a`RR}_Q{%@GdHvP+F(a@%2R|@^MI6B*!I3&A;({w(u54sFM`Vq~&8L-hHpn2lz)cbV{*NF4dNw$aRd z{`Ab;BgWKy;3UB0CiZTt&(z)$X4XRj&_Ob5_`T@Jo$r~Tt!O9MVMTW*nxsQ`bYfNo znm~s0y9eCQfxWlkpY}dxLq#begv}`QMwD@sv&IvQ&xflYC;8+uQM|rWPk@r z*8V3ig1d&oFq6;MA~vsFUvMTngD?dbS7{bPhpWMnfaF13`$b?L-?uT3Cv_@D%46;N z9xb2x`CxvhA2*dr2gNC$8UVWw207Acd;LTZ_v`JJTgLv+LwZOe)JoocEUrM}l3R;-hqyA^}5AWLl z)-v)}a{erTrT<4IEXO#2RlW<HJ6%da9dpIlRn`uq^r0$;ASeFe@hJYFT6Gf+S)mkYcpEvqrwF(aHa@nh z4=Do*G$nX=3u5t1TM3aGtKIK^BJE}tPqzFw!TqxKP`H8SFIBDkUbQVc)Ud-C->K_g zLKP`N6m|>KN@ED$5yfFHFBgTh=P~+P1;HB+hjIuyno3E@iovkRZ1f=1{@Igr=-lYp*3oDo-{ zit@ejEyZ*Tf_G4xDiW_CxIQp|3=h09qncSE_p(;1uZ)+6(y_Axm98eb%W*}d{2>gB zbD)Moz5xQDAh=odDm3cFxfmEVJ@i~EQ6FN>*XhKgX>p_xZA&QcN}!LRItyI}ZX?hQ zWe2ua?P^+$R*+AQ`|YlEw481mH<)|2G?m5;V@wd!brDC?mG7^#)zyUO?Cw~Xg8)w%y< zJ5VZIO@A`e)d%mrNs_3fe25uW*#FsUXboUm)q(=S-xA_)nRvEU z@_Z-*HF=U#h`^<79Yx8REh8A(kA-codi(83o?aB9vz=G{ z`r{0c*RU{vPxeG?@jxkDI*jBAbaplI>QC%UOv3S+k1#Z35Dz#HjQYWBE*>OBl9-;D zbV@eqXq_a66($YMCiT`yf}~7J!-Q!zo6>ESNRN>8dN%19om6Udc1Jdehfsk?!fwN= zTsER)6u0XH25I!;k(u(I!|E=W<^*k{OOUCAnefZmKU8I4aJ9x@H*Ri(rHjthfp%Ow&8wWNjU@nw$qe)n z{XS|Wh^|33LKR};DyAPQ)I$AGt-h=uYSo4MVXB(0A7-d2`eC-3h=;KHF3=^U7Ea_a zt1TvxC#!sR?Em6x0GiuDL7*NWC2rd~0zbIoyf|5NMABZ0UPGFrxVj^=VTJs_#)O;>qRVwTnI9#gdBn~>MKyI zP((00z$_K227&+{{Avw^Bd+@Xz3s)Z#rWheWBi?HDmDk7oNAW-RMo!fJPgKP z5FLTfZdIH4d>TLz*i>6ze^QGB4snno+L6PfMB>M$$Q$(c+>VMfkrG_FU3Savpp zzoG(MImT+b0Od1$(C6_({{lR95a%+01qZ_+rXku2)-CkeudWpRz!Tr+cingts35E^ z0OE%eJ5?NuQF4h33qso`u)YBl6=ZdlQTKMlZmc;8OMwjD*DmiTqjotVk1EdBwFi`& zwQniL(7qY}OL5VoZTpI<9&_DDW`XRc#W$?3g^}HwGjXDo(1gv=TL|yENAZCss^jbj}RM^$dRajyZ$W zrQ`p;^W%_L%b~U>_K3;{^Y{5M0uBM=MRb5&*xwR%9vzP%$*ox-^@#}Xl$2=E6Hbj= z@iHF|7XcFoF&kkCmBO*Ya`3I6%0`h`hYkrpTgyPd>P29arH?dOhH2WNVT0g4Ka`UK z2$=UvoF%Nk-0Y`~k(>QKJO}X{=6Cp{W0k{SK-~=WDzOLBp4Zjnz=QyGIIGYw3XnSp z4-|X)_b}8}Vf_Z;LR;Rw;#lLCnW;03ujr|p2!SW0hKQ=+?MMUtf#80F_qN8jIAlQx zs$WA6wN#Y>25(h1SBg|C6)TFElO&dcL_Q6w`P^LBfg@yrpMi1MM<=F^wzm`~Pj?hO z)-ugbNq|ko_c@jvYdn^z^E#_%KX{uxTP3oBx1$a{i*MPNyoxR=Y!FUYAY+OzY6+$X zGd@gXA?1dC$ju2xKFWo@AVkRXKM*8k^4~S_c_g4j(PJokcn1?@wSHPBB7)uVgD4T$ z$Ai>Qb~Swm-^YXF;qhyP9bsOI_B}!P(Jz4XI6hLa!1ZEnVC>r2fiu)AuuP)jwIWbb ze7~l1huSQeHaZto<#gr-Wp*Z7hXi!w`(XA~N1|ToM0B9>#|+Fa>DUg4L%@~5(Etp) z7F0jsB*O5qGo&iPNl*i}dWIvdgfjWWGQ{CiRvlp#)ZhccRRe`G%HI+glGbb`A|Dd! ze+I7o#TAu>Sv$ZcPK%DhtJ||=g>j_?gvfOU6*R0#CI1j)p`^m)-0fXbY%D>x)Jv|7 zbv8z9*my*8aZ%f=j(*R$HrCiE>heKE-ABhC_4Y3xz=@#cnTn%U#ZSMLtr%7HNroUS z_jPT&TIzbd?G3LMnBDyz$3rhR@V0B?*>-vD&1U$$m=bkc@@xkUiN1#9W%iaLcEh!C zpw*>9*T%C@C%V=48VN1X@3$?EH6Ik*WGh%!nkX7y04a0XNbt;Ku^~UgXvuVSh1J!7 z?&?Lej&LKS?H^l?SttVs6`Vz!(Ah#nBYK?AS2 zAmX^#su9MoF?pIZU1K!qiJZIJf;T9k9e(0IoEwv91_}B}V0jFHaI!bZzwn7SW&M8$NEE#D$nrZ7=tF3qbZniaNE*k^hILIWt=ZAvP z0qTx_kSRKKnwl=>bIiBT0<+w*t)=LcS^$<~tv8@`fU*L@e;H3VIm`D(+~^XW#1I=p zeXQ3xgx`%GuLH`9IpA7@mV1!F(U}pUh7#DHE)n^z)UtfpQJ0g`AWWg>`#}dvz$$&JKo7pEJvvOg1LTkW7_-O- z01)x{IFZ4zD2o_OFYHd!{~);sqky-gQ{P3w;$hVXRD-V8;xqQW(QiQQM6=JibM^0d zCI-66A{^nw;a87ZSBS7u$8*acHy6i-MdoQ*S!UdzXS@7Ofi}o}R=W^;s`!CU3R_bNPMrZKhq-cMxlqbc8ZMOjv3pnPBBaP;m zQ#E=S9Vw1Z`eW4U@Mzs(9J8Kt5&CSEw}DS`edq**k7T*V@Feq`mNA-9qTm-j$E~y! zsHMO-PBM&d&~oHxBS^hejTO7KJ-#pMYAyl<>eUIv%{|+J$tWl42cE@VK=h_VPk;&5 z3%N-_kk*AtKB*HSYa^ejo`lrju}FfNDpV=#g}@SnBpsk)xk#vd5I$!VOZtKORH6O^ z#qwOpA|vt5uik<=1KIFxY%3@1p@I<-jnv(-1-(X=fcl-zA}Z>t!kZHeuX^`Q>V$wW_L`^{VjKfniEsGi?rrNZ|``-la<+~m#_&z3b1{{pxPjWqncMg}_H6L<h8M5eZ5$j3m6dI{$C0<(y;dB5Fai422yq(Zu zgE|sU1?JK6*s(^tm4F36Wc5BOtUCn-6;ur!wS=;Or)2<;n|D3HQ#pB-9V4BDKpx2z zPJ8dQH6JA&U9i0dJ2q{~v9`vRc(hHq*VYs!9^F=x#y9WUnxeG><>VPskfWEGqj#cR z-uool*G{*$z3E+hfdfU`Qrw9 ziBzYME`>tXH=w{;m{S3rV+K}jnY5cJ(r+oIT_9Oe*!D?Lh^yZubvLZw5l_)4e4DLq z!CNT4-NU!}>MLR)pHlP*7LVG3Xn!dZP>b+6H83KX{OV%7{e~7OS4pq3!AH5V*trJU zCs6&F;O^MTF>T-``_6hb5o#QHl3x{p9+Qh)=&286qcK|0x?Tma+ZnO512a``)QyMg z_;&d)PrV0IbkWMd6l^a@pJLadl#oRkyoye@WywTnrve}M0ie?Hp!yX`hxAZqs2^ot zW~=YuCBAi1(I@5*li9>lwHhzzMQIWzV)0w1u9DmV^Z@=Uy&)4++e+YY@fZyrC0{tF z|Dsot{~h&fe}Wr;M~sEVtuP+&bC6K@j`;KYOu4do*Yfg^1k6H$SKS3s&v@P93i#xM zAMD)M$)~*F2UYL5YTFs3fxO`WJ_4<@+Nj=W-;%GJ^hG&MT4&aF8=l*s3a!1Q0#K-D z$Qy{j2f5pWF8kSKH6FbM<={Jn z9?eWQZ}`xe+_v7;f$4)~h~4L4OoZ%~+fxjiaqZaK#qX0r|e>Rbka= zxq}D)=?YIqD*JCffQyjY-kaL&_B!^UK)tS4VvK>yVnOn}J|{m131eenvc|?GFIu?K zwsxrlj1d~fS|0pxul3l99!KnP+OZHf{FW{6zYKPoT-<-?bKtLNc3X|TVD(?zYp3@D zHw}=BI*`zt3626VN|UelB* zD+@%yj{H-5fgDhV023s5GUrjS3Sq+=XHZgokr5YC^cG(aY{{-V%QzzgG{XX#^Une_ zgc=d?*Dm4G2cu@cG1tl+RJOk`my@97&0U(^iSk9q$J4=G#6lKrH3wvi4WbC`vo`XFVDUGNPFv+6VrL^c=aTM+Y!ZYk-xV51c zJQ4=dph!V*#CA2Et@E0erfsNb=t#@X>Fp>*ss@<`*B$Q(b|MC*NW*%V#T;hKnJ^Cl zQ+fJm?wnZ{0b9?7TxVkI{|;8tqh4x$bHraYzo9iTm*0r_m=qFJf5kxz@udLYnVQ3Q zj)PU-SZE;y^Mb_wTkywQ_0F7FFKizmGRz_?M`WqN6HcJaAO6vz%mXo`PNR_N)BX?7 zekik-zcA(cM|77?y9iW8*t@Vnl0H>k1HVGhv7cPT1~X9+Y(KUMqTY0C1u{)*gQ3@P zFBp0r>|u_!*WCTK^=rdh5lm4uTiIJ&-Ih1^zh1-Qjh^@cZ)cczfQ|lo|*(O9h z@;XUf$9;j`ka(Di6OwpM^p0<>E!r+ZKuhoFVRG!ur|Ow=tJ5|ibr|Rnx&3OA{)F<0 z-lmW=*ENuYJ;@#K?S()5=djh4nJ=@GUbO?RI<^VuOSkaFTsjhMQVKjaam3owZHYEY zwSCu~UYI=H-qzt=dv;Mv@BLZ$w0}%*EE?1|OQ~(Dxm=BLF!Pu{LAqN`>8_$JEz+G> z>;jO+>foaepihn1O+b&NLs4%yZxFI@UuCCHKztm)wYng-3U!#rNN|Z97z^tp8kqmo zt0BM;JuTJhB`oc>3HoiS+L7}%TRkjqknwbKsrpe)a<#f$-gGafsttIHZw=T^(3@DF zhieB$=LExa@Hf54uI>?^m#kA$NS#Yv6W%Yl7T0UsMz^yX+)+1D-MdrBA2x+{O2r;^ zD%91M-pM*U(TjT;UI;tPgJlYF*x}YtkaDZb;A+a%I~Hg?8ef9BRW_i?kh(>dNF1dE zg0PmBWp?$lIFVs*hAxu%9HSG1>GX=R*%Ol-xHAj)=k3DMgc{wdUi#&Hf9H`~-rt#5 zT}ZtR+oU<(a;tM!W4x^|WyTvBq|P!sREP7r&%TMfKt0Lxu!R!q+ggKBC8xZfI(oVq zi;?IC{~|^OY~I91wa!O|P2=&;bg7;(cSouVQ9GhC0Yf405vFi|$m>|Aaapg3kDcxB zMOJ^8phicwzv0NxkXnFU5|KP&{acqyAK&cwE`GsFonciMKv&fQSPqZ}FtS#T5^M`O zg6e*NF4Y^^;B?DvHa8{^mkib}ujOf_(>UpmplaBXWM9|ug))Tusk~GP^Hfa z(sUvMNmn0;Gg5cHDhB%}<^K+{1h_hvXS&+7-}0@&PW|Edq`up`uaD{Kvi;U)ybF#g z{qg*Cb39sv zYnMI9>}v7E6IS~={qC;mX8Srl-ZkB9U#EY$OS;L=GY|t9GV2$;0c>!bHSU746*MQs z(+!i)P>Y=R?pmJSa6xsPOu`|SFJ$|=e20!lacJ!qWXs?8DauFe2Au$cYTIdHNbWo#(qPz_HBePMk#B3^k^Y#@0{S$dH} z9f`Gqgjc>LGfP(KC!Sb`HX^pQ5SAe=IfId+h}cQgXxX*vDsVnpP>?N*Cs{q!u~-Q# z`v%T|0Vxa!jw|Wufm1%41FHc8jDm->SHhmbpgo6U&*&m#ng>B7Zk^1viWiy16Lt1_tX92}Gi|AUK{Zx(BJGKt zi2(qRJ5eKkAc)}#)m}uyu==r^EZiQf&n$&yIQ2txX;8&lxI=|yk<)Y!E|(rmL=O-c zf&wW;gIU>*TqD~$^C=~{(Lw;LY5!N)UADlB^tjk&Tlj$>bU<1duUm*n3xC4!Luzz4 zEqKiqLduC$^z~-+6-|lSQVo5dqF;rY1Rj&vgYQ!rI&19!xyh@RJFF}53_YAfjPq(6 z_8v2^MO6Oz-5^NbY=7}Dt;Bfs;`7iDxO95OQ`HSSLmJfJ;jfy5Nu$hzZ4_72dOdy| z^ik(q0#)=d0Kp01Zx9z2`feG3g&TQ3kO_xOBYE7&bAs&lGfyqsgLlJuiQbr!!&Ey| z*%mxT$4J0ITz$3+&I8}tYLZ#(SRAc&L*=!L@M_-<>k~Zzi$!9`8V@@M$&M1TJbW&| zLp(bS&VyhG*Sw86w!pv>j36!;1#ts(Sj`rBg~PlKU;W|uzI60xl=I8+9_!eR42yjh0>=sJ!%dq+Gp+@F z4Y)2VKV=(IDQ3)RN{M_)-C+3AA$m%ynj4^K+=PdK1?Eg4P0%wd>4B@u3Wr z-j7ePF3Po?UaSX`fMJ#JOmxRC2TeC`L~>-DF`G=^z}>(j)e}1i1P|0~fEtTN6fCPh z3^ehr%iA@c>JuzL{qM`Ud!qicNs}*5!By*AR>JBwv9R*w%!BY@2ZAGu2Sh!YM@TRU zyd}|(R8NGCc+<32N;_zOi~?yTNE;kPAzmi+uH|#*YI+Mj2KSKTQaGykPw_xRyyM1l zd=232@B%1*EawlZUD$o1!iHLZg<_$}s$FNV+PCuetb`6$K!j3e$8QDxs!3|tn}-Rd z3~*rC(_sZSk~k+AQiI6}kQx0)txLS)Zy%C2iuX|G$5!DP(W?K5j)`@ zLon(qA2CTOHYB9}1ihGuyf>^~mzB-lL3f`>TEs)t?^jWXwz4IgoGc*~n|CZ9#oK&* zYWCw=Hu9-&2n`DOChAFH?qJ+R zv^-Ny{|2>QL?V0n?iB7}99{tDrd}wA{$u~sQND}J|D5_@eZ9zSmD<`$8DVSZhix{bBNv_3#AoaEH`F+J)rz z+QV!Pj4?I@OC1H5bATm4JT170$EJDtNH^_Rv(|A03Ry4s?f4E@XYTttNE5m55j30o z{vt3d_x++y<mUqG|k@K$Q$6K*ph_|&^m7N4?i6}z=MXC8$qHYtz zCis2q$jBUHIhUIluEZUwE)uB**bjKM3xvswDR_CY1X75Hrc|IN{Fd-@gS_Pyz5e)) z)q7}>gpPxXGYIGArB+_FJ5m+vS|dy3V@MsgP3E8SA=}9r#34ND{ib`s;6h$z0wdAAK5hnGCcM-&OD zk3_x(=UkFoH6R>-X9=gksakCUVMDG0A%OAKt=gp^JtzIGEt>Ig@o$v)8o>oA1 zPHTDOXbY^%0M;=W2>4}K6$)=fh%ytbJWGzPmPK?F(qZMw)cZ0r$Wy50I9+??ws|&FQ zAX7dha)faknM6(G3QSg|2sd0J+i~grX==QHlY-|7fU-mVifZaK2N*1n*Dakvlu};-JE#HD$t?dEKm4wi+IBAz( z2$#>wE=YW9pn31AUQk|e0rg2zBVa=@*{%L4)(_m=c1Yx^{na-Dv3NcY9FGnzIC76C z+0T`rX|UNrFg*ttnb-;41b6tjn)cFJ1z~e=VG;@>h>tjQ-?IRX54ku;mL%;ivl6UQs!3M@F<&3@-{EQ+%Ra$v z=Op|Bm%Ih~dU6V?yq-J+aL$;net&5(rF$Pj4s3PO>%4IU%x_abrii#%_s#cL2BxmF zk6vr5LBRF5@YRo0TwQ{zHUoH@WZl2BEqRvhn{~)tyUspzZB4rB{go-^7Ds{k^=hN2 zP$CA?tP3Sd9Q;b^)eG2S6%OEP`U+CeD{fkO>ea*9ge#E%-`09HO@v0N=0bd4R6V_N4?$4A8zQ^UwSjRi znKLR~xPeb#Ual{Mp_ewajfI$z*CZdNtyC@H zryu2fs#Wv&>Bl*rs@1vpRIl1zV2u@I<#cW=ZI}5>edqJ%$N$r7H2r_DHek*U#&6e) zhq30jHP#G8F++b82?1+MkNNGFcB4fwvK)Rp#hOdaZx@Q`^N{(i9n-Dq!2jvL;c3uO zDaEq}MzO+{a-f?ZN@-C`j3mWH%Lh^91+E>JMV4YLZfh(+jSJdoxx@9oQQzu`xOX~| zhVkVm;uA;7p*B+2F@%g4{{_`8bi9GwC&(P_4Z859jzwI->z5C6ht)Exl>enxHZt z6U40JRmI?YCCqr;oJdxud9jSJYj#j>nCO@9g?PeZ%EyJzclYrkI~-1WfYQVv*B?UP$c)L zM%0UsruP@8UtNw*R{sO)BFW%J0B=E3un{%L{8V)77JdrVl;rCm}bjW z?Zw_u{_*3P{0L+8J3mI_X79Y})ju)SscjqwaN+%*&T{hlr}@vV z;P8y)f=MXf9hN=95bhQ~`R5!lC%!0Q=$%QNfzJ6j(+>X?z_k~!n2?L_>$U9obf9_j zfjd_F0h*g6!3vW0llsRlVWNu zuBLlrUe=(NP)o5IF3X4m1yVo5)yAL5?2V^WOzejt_40!#XqwU%W7-c(m#3FF!sfwS z@Q>*EnE0_!Z`=(*^(Sa*GS=mzsMSKsUI)52{));3i|{Rg&5z_pHo|S6K_vB3_0W$@ z7~vXo03ob?bDwlW+nz6I2i9ZB!wv1QWA+sS2RvOHcz-1rB(G8nK(|`j#tA@$q6Y`n zC33tSCb#IX!gcC7F(ulo_N;s%2VOT_cnP44za98nZT@`;kk6aofAfpBr__OmlmENv zzX!weKs^8s{72-e^{N?aUG_YRiE+EtmY))MV8hX3>_?L$%YJxB{ZJAtR1B%#0iANN z&h?c^s3WLq<)owo9>#K#%F4`(L3QT6m~zfG z|3WH)`OTmo&$xwDA!-Pryt+eM#96H4H-eeSAV&O z^B9{eQn_?%hWM2=?*&eg6Ny zZP2M3gvz}kmfs_uRH1Eb?WoXfUtdiqrHNv&(o4UaVXdA@p94_ zdp@sA7TLluNiqCm8c1iSgzDETb`WE6wECg=^m%~iTneWGU%Kvbu{5N&V|3eUb zX8DJ~8ZzH6?Nt8EJG0V7(-ZGE;5hZGevK_w%z&;24{-{BqX*E>jWG&IUPNlX92OKR zznprsB2~l5)D0^VteAM8g!g&yI*sQr<~FBMUOOhIOi!*G={HW+^c$pE=WU-(cp3dg zi?HL2o#@7)6+*A$_vT?jr}t-Rj-E?)8UaJ}&`D-7yR|Tc{iGgh0}yKMNY=ZROY}6i zbB-pKgiIzq=kqbDS{OzNnZ zaE62vlNzAS08k6M*Q(Lbabf!udC$Y8y-?+AmpDM$Q!b?F_!O+ptXtsX{;v3iOZ>x? z$c$-xh6vs?zxL4~83bP!bo>p4BtIGjS(d5W&=QN_V;LJNQ|~@Vh;>m?kVf@I9rvIp zu(%*K*@4ar#2!7XD+y;%%YXk-b~8exuG^$9De4*lgr=#>OX{jtlOXe_sB3T+>KZMw zl25jdIK~{m<3-)epql5!WF=%{6Ad&#n{2)ZX48pmdI;GhZXl^(_GZz|Q<`qd|Cpj1 zX?iBx-99T#H(r}=-hg@pk|f=59Mxw~DFSN9=Te*_TA*G8dlCV~A)P`H;@5A3edB>^ znGUj1yMC6*52j*X&Emk!iZ!@h(IZ7f(xkN*R~ijh&&l!+a{wb+Oa*QAk^PtHZJNfX z7v!TIdgk!=AiatW6z0KQFRC+<;mmp*}Q6tnn4RxS^S8>@vy#+u+#kT18S&K(4 zx|Mj5?K61lZ&Ev%Wj2t>{YV6;s8r3Z%rX66q;Ks%_!j6a%^w$lVpjTr6gm+ufd>ms zX}rLVztL}paFdfK6kc#T+}}3fi~YlR-F(GuwBr5bpAYUm+VH~m%6^9z7=7{re4T6b z!6|`dZ|?;7S~n$H>4*5R>`g3W5cGvWHon|rf7$QxZh00UsD2s!X)M}?PuMi)xoxYl z==RJ*@MqTG(yCLSBoqB zG2ywIRxSyj4_diZL^^Iu%$tMC*f#p{`r|xoN7&k|Q{2`>w-xY6oE&kBoF#Ufp0J_h zgLGVpg9GXdp)gA9m_ERtKVVHJEA{~)AP`3Ff|ZtLn$uur$CvTy12DXRYW|4-QuC*P z20KLbnDBWTz6GA7yDpM7a$a>%=uib!c!V%E$BZo}*J%4&l z_yc~7CIe8Lz8eqoswZw1vV~&O^ciwDn>-P=A`o6cxsm2*%5$Zl6siY!9HVZ4Rv6oY z?Mb7N;S>ySV^IrBq8LdA)_xF8W6^e|;Vq!Xy(xsFuDt_Y#3pOxR9q%jhx}ETdKb#B zD&+=-J1m9FVO9EM=Q*fe*~XSAZwx}qR1C)i)lwh|AH_=wFiiOr6^)_O=F5NI2_Mkw zMI=NZat!4TfN&N@mGl3x)NqEEYvi6U$h{pvVZBd0#AuM?#oS$p-6;&1H2JF{x9<0N zTvCc)pzu94nvMg<3tygS*>4*E-;`0-GgzGp!z0a7PylFcHSmOqaKr6_3Ode(h0z7o zWMTFg0c1Z)XTR9VeqK5|Q03)cP`$<-7unP-3?HWpEOiQuNf(f1fBz&zecmyNBUD#H z`U$8e@L9)l# z+3-}#MYKpA4ho9#=BCIL8c}F(=9OQ<7DT`wrRsj6<6~;ifg+f12C~M>we2)M&#k*M z2d)s_w)t}~YJ50wO4H{-ufLn-7YNpVL_LSS;#)HCP#TPl^tr>`eZQmJyc5?H-X`-; z&|x&KBk2(AG6HubI2)OmTyC?0Nn{H+t%2b+0UQ`>l{$taJ(q!>h>)XL?_$^kuJxbjP9Fex&Fx|s24ZlQ8C$$(H55=Kr8I24#SZBRf{$4FMP|MWAV*it2 z`T%^&7+T4#!XqIpY5lz!Y!AbM($lHK!#nm=ts+@F5{sb48%?*Nm<%8cjg3I144*zx zWvy^?+IgWX1XS-IY0zM>HX08D6qt9%pmq!aYA;h?67=49EDp+nfiiUy=7dcOAEFUj z!Fr{^ zFLc9hQ6tNrkk~|!7_yf_`kLOiHriW-ajpWICX{No+=x?z7aDQV5;ktwyt);J7#pTP zp@RgpKrR0+KSBjC8bwLs4o9uJcq?kdt|?Nc=;40mCFXNiC}TrkDp1%%x2AZkB|g>s zJ>)$VzKh}p5m}6CeRV44)Ek)t)XXA&<^}*sox0{7*2HC(SICy38aMB6dIOz9(FOQs z60|B+A{q-6xClv?d&)5A9dsR9tAcMA{t|t$qWb_w5@77S770^4@g;DDV#sUnS+ZMG ztL}vOB}SW|`o8ms`is;CykY9xhk7A_qtY_HU@zFj1)Fp28}PIPn$Z8lnLBo2)@8uZ zap{)q_qiB>%=ELM%w@iB>QsJQr}6_aCYky3v+J|{|FEhyyM-@{iNL4k{+bk$FXw#R z7%DkWtLiYRHO;BJ_Ej?4-zkJ&3R4BD_!gYOJsEQW{|kn5)C(A6O@xDS z$1Jjl?GV3Z`132j$h`%LfokdNLY4vol8OQlziwwmbTWcKG*0L8 zDBt`1N|C5EJVAe)=oAg2Xh7qhWg#kroqFpkKAojZEZjW(jP`Zwx5r+>q{^sgQzf~uG9pWr1vW`2B$`#`!C zRK@T$wFmBE)8xSME~4S8z=3C8n|La!yTGL4hz7wcAv`d(?D4F0Q0;)4AoUeWP<^M$ zi&5p1H`rZ7m6YF9?fz7mg>>@$5Qzp-FtqS zFL3=|i(w0>yD;m}LTT(NsIq)8ru>6HnSY?*F?XZOpx|OqFoj_CTacRIV0afCv|?!p zsVPE>a!sU-im6zvfZKQjf>iiIfO%te$|@=Sfv@x-GP&Io=yU2E z;NBCVIQjo7{KgiuG3gLM05<5Xs%2c9{14dqc|qpB>L>5y=>oT7o($63>J?uh^5E(ffXThpJ(k`XR_oUf!X8Iv|32z?-2Jdn ziT+(c{=op0`RKAML_w;z^-lytU!PYkQ|2GIODPHJpKSY|LR5$KerriPhWHr7(+9WL z1AHEO=w0(^GU;_KuSHOD81M!?mAgCk##e~9o%>3~S1Y%Kqp>!7>QN6>W4TMr=_dh2 zUox6_SQ_!NNY)5ww}x-S)skxj`HnuF-8JV5d^H*^cBkDpG@;bGZx_;_8i{3YuN z(gGUNGr3=S5*KGr;!;fFaWaXGMtWt&$4JN*oV5HSosU=HlY@XK<M8W+1kGHDZZ*dbM_U6(y4sh^ghp)(fp~^z5|_C<7kFb*f_fOyjier(+rLslN#) zU|g*EvIOlC+{>>VZz> zP1n^uhO5y~O&|!18P^%wNO}Z_&%P_#}kAcF}J0`N_9;QgX%=7FrRD{^)$A57sg_D?s87{0xpek-1(E$*PA?n=Ydr2dTA1V8HXZ#*9qz@7(W1l z>^4RZ)4PXTaYV*y#|ppjuabx*akFuA>wK#f*wXb&bn`~do=kK{Z)72|j zZh`bYm1qB@{IhZ9apWv#NKK}z8~0wG_>%G)_FSIn>WsaY=lJRV@3}nF)quU1=lJUW z@3}nF)hiGI_R@dSgYN&jJ@%jJ>c+j7C%x(Z@3}nF)fsy)Px{jR-*b7Us{wm0kD_jq zG^hR!@qZ8F$26(`-7EK+t{xII;-2UOMZHo#9=NX{f9je$S=XLS-%eh(DSzsQtC`o? zOK|8toxUPF-KOVs`t0m3Z=u;tFlT%J!}hv`-kc2=2a`OXOSjkhe3Aw4XT-| zAue)XdYm%_f@;`Z(oblNxGB~hF6Ts2#kxLx>|rmkxb18uGm5>UQ^odc_&AjHsO9%E zA7GDA60)ICD7A#sd8Nhp8P+EJ&x9 zHZ}PQ2qlyy1n@s&&n_7Dns)aMEi%XSwBLVeZ)jnlBh z)IS^TE<(hFjVT0SQ98I1hE6~e&l`(#UJWOx^RQ>7eX~wf_k)e{L`g&jF{HMN?#Pii z3?>o@^XP7OQ32+;KwJQ))MZi|=xk&-klB1anh&WrV5$kK?_qxy8#!VHb>uAvX9x1z zaVc8MD4^}}d5{fiX<}eZGf@Tc>j8`|tHuMN?^hVnfI1zU!2vZHo6PpEYcy}ZcqPL? zexHrOiRL6o?&c^xTP)N7JpNQ{#>S&r^N7d%6H)!YHXzAkDKefHGB+MQW^euD*)r(6ycBY>PulcA7QS*ex?9r zUIqBD3o%T62djZ_QEj0pYa3hR!<|HzJ2}IbO1ASmXG<>ksv)w0?T*j)#8f|{@t3GG zrg9?Z@}EBD&r($^>39Q4R*lb^>bA@RcsvnG?6+G}$wI5(C@=x|&*7d_wg%@>*?*S?_87!F9!g(9#Uy;8md8}%ZnubeFle23QyW73#ni3}i zF7D-)_s3$foH(1Vrl35AGq$^56!&-Hf3Wimk-ZgoB}6ZUjiCxQhI;cVryi4Lc|p{q zRT`hk^7qV>!DR*AbvRUrbk5ExLu2kGKC7iN)gtjJP(TC5Nr=7k%d z+j=e0GgzxG5M9s%RllqzsCwuodF}zKbFmA@7=Z+JHsphVx>~FgZU8}->51lVQ}Fu* zng6_8BXd{BePBc8ld0qjIXr%SkbT%GyX!L&tVDOs^pUHt@b4euk&VqTSAlvsk%`I9WM9G!V^ zS(pV81jWm6+-JmN0GFVn&QU=wEQro`tyBlU#1+HTL{tZNpdaW8fa}MzDnAr%qiBfV zI?nwPz=1eX3GWpaBPXgZQujjy#F0q_#>WY`u?)pP4`Vcf3e@c>43y!!pGiC&4og}jX&I3dHH6sXJZX95swZ2T=gf<5^FqZgJ= zObhq}@#c7Mf>cxlxT%f!)T>Kb2FKzeqX}ezICm`a#An zl*cvYJoyVutG=zepCRdJu^KHaJm}BZcnSb9OPqQzY0p4C=26ZEG+8CVl1f!265tI0 zs?Vd#O5#w0Q>&H=fA=KZ#4yk`9b|P5ET&Z!t~zKK9!Os7QO9EGM7%s82i-?U88L`l zWkScZ@ZV7il2AY`2X-XW81y%t$!NR>d4fR+Xbm4+Xb)%w?qObp#Q&$P$+$Y(VHW$l z#Qgt!|3wUFfA)S@B^-Y`9S?W09P^DVQ?z8i)8~#Wq)ioUv&Cc?HQ2s*e-l zcG!3LVPRYBa-S>O+q~W>6}~j_3|u;4vbA=Cj1W37dbD{{Ds`e$;RdHd81S{L`wQ3T z8gaR0)T>5eo5kAQK1D=wkYsaBf;&uC_I6{@ENZ&tP8`BKi@`L!%$+BjGH^cc7wxZ? z&pP!NZRNl;YkC0^CXYtGi{D+7^SwsXqm(&wP#5mlzL+hMGa%68Vt)7YACc$J@AxsE zttpTryjqATux5KuRTGa1s}(GYKzmpSf0piIN4;GJQpaphVik)+WYFcNfpw|MbUC?) zTI&uSCpzUkDA(afPTewu1uVX}chCSVJES@Y5MJfQq9Q^=-{`>D<@v4%BAdK$0YI8U z?=XbUBmmSw$ZHzk#`2+~3Y4n9{e&gK_>GMex9K@osAfUE6-2~V6=K!oiB_!(-Sb_& z8ZbsNmX%%yb6F8@$seHCC=1udTdxpU*w9*jgcj0}Ze$IxWi8JSC&QzHYAfa6p!x|m z#ObXc5M_|D{|kO*z_0!TRrrQq@uvTA({SFWJ?V&%aqF5Qi+ zzdb zRs33?`kJTn9?h>g4n@MB9}~yy=DdgVoC#GSlAB*n9LJIajHcJIwj?Hi7U)RQ4i(oX z9l5yRch|~r(PuS9I@g__NjjiGI33Eh4Q1*sWJiDHg4|+6UhwovkpSHz(jz1o>n?&T zh9c6C8X$oqUrm5kqQ$whJ0=4_DTx`I8&bDG1U6|VU2CYeF|ku9Aq3FVKd_OtsdM6*b$%=^p2@eI)4t_l%G}Kl7)O>+oG$_ zxV5i${B1a6jK3%F+;GSLp0maO#bx5Z)>O+%44YaDGET2YD=Z!UxBMx_h|s5|5GDfC zvkWRIqx_C4Pf|X^AH(xf+2r-lKIACE5>sZ98)PV&=V8q{LWDPQXpxAaD=_R~i-fVV zZEUqKdX&C=S(xvo2n{n#eFDBLs~iOy&^Pw>kUaS>CIS{JXmq^DjR3O=Hg)%$uktWX!IeGud z^?_BR6)K;8wG+!DPyjyUW-P#bNYujC8%iLPHe$)A=w295rd-<%mK~XoU=MGKjhn$9 zUZJFmS;2!6{g@Xg>&8o7$jK2#(t)03G~S3ArVhJ_a^h*aEE=T(HPGx&_9Q6uchH)| zA|12w05gzxrY-IVR2z1UYt{3=z`rOuO05HIwV3BEn5a1aNaX~vnjzpKZpW^Met?7* z%>4-~g)OpoN0qQ3iEAs5F%+ryW!(@lS^+*3nW~Mk*WI2f^#T&YIY=7M&IPDJa?L1G zzepGU3G$%LQYd5S5$<%^0wtBtM&s2;(sgPp7?p>0m*FFLp}+i9#Knd@EC@F?o(e>W ze@tyq^=yDJO-;89i^3=_)o(xt5WWYeca%qrp=m&;ZQ(T<563sK_Vj}JB!(S;7Kg&Q zCL94=VQA~u3g<(ISNX#iYFa1r)xNRA)VPb-gs)@0F3M$7eDw>_>!7+^%;PjGUJ#B- zVN_qJ?twDRH6Q0{q65P#^hnz7w!_rh7fO{0+U+yygC>7;s=6Uaql{6Cv$px_0OKFz-sfGZT4rgdunDa5$1FzBs+|6 zo%+YwqNf)sg$Mgo4Dg_BHsDxm?HUj(>fC$!dez;1y@%oVBmB<5?|+Ta|3BIgT~4U> z3^gwU&(iZ$jGyOYh50UIELmaZwZ$5sITf0#olLNMGRLxXj@mjLi}$J{prC`mpxi`! zd>`Pv7Z^=6E^slpQak})WVRe zg`g$V1mJ%^RjQYidL?YbE~RkOv3l@_+^+e=F(q!zX>8gPp3sk5hkNTtQmx!-gdq z{esMIb3*1z_vP@xTYbkb;PzG2bPIlv3%KtY8{d@|PbNEHRRQy>%obga^) z5a8ON(goD(f`67=F4LBo`$LKws`KiQU9vF*QrM4+KeFM;SLdhT2|DmlbrX1g^Mg!y z$_1W)4Nty$TV|&N&s93_0mIWW7pPbDz+74%m<^;aCZHybR7*JIi$jq8{UTKrscwK7 z1c;dg(@RT=X-w>R7!Fx0jy7tkhk->T}3Wm?k(c30FkQ4p`prhHx3%GFKv` zbE(08vPe{v*q^p8zZF~Uyazd7(a49Hwo?|hITuUBUr;b9e z0(I(;+co!lP#6ffpV7#0u~xv1i?168^AQ@@*q%nyKZv~3J3|>E}+qmj( zMiWnl@XC+;^^+wan%kC22=}(9%NAnT*3hT$a;1V)M_+72Z>Sr8B9}a zJauZCV`*6BH@`}u_+UY?u~1MPdm-8JU6do!FRWE}#Z$Gd!dJ69R5M3X_N!fsBsEcL zew3>19I34ptzy7fTMf(c2tdb?c(Pu@`1nzI5!j!44Wllj5&2yJPN($<&Gz=W`~)fn zjD4KeAncJ0&QI6+4;Yc;>V%HBX-;}B)qYjS)A-PtVf|nBPX0?3>M#yyinI3tXOBE6 zoP7y?;PN9Z5cZsN@Cus2e|tuRoC5I5ff=9NBsE2y4?R;UOPoCv6Iua?2Ccrwx_ zc|x^Xp!1SlCgQa!2bGah_*bVsA>Y|S(s(s;b1mz-Ot=C_J&IF2zqO1HXFQR6l}Th%);yg8~Ga~7z#`41VRc+6JU-F36}!4 zqQ`Wxe}cN3fnAY<850KERp4tcT*6ON+rXXjwJ8E|x?}vtUiZ$lj3!!uCWiX=p`|J@ z^Ds{jv8g7m3#n49Ca886<{P5}$%*GrcBsX669tA(RII+JOCrsIMA z+B$9Bh&`8736KaW2%8mAPp>DrnU9M@5PR@^G0xJwv5^L6NFqg)Pu*gA4Z}!NdLKcd znc-+Tm8mrtu{1P+GB9}C=bHDceDIG_4Zlp=yqf_A9vCr z`3db7r3=HILh5s;KkZ@M|5Kktom1-loJn#a@a$herYTd?oA?$~ zxhc_LQ}$21D@V6?U|4G^0LZA@op+L)@q>Gp18 zirLkbWmN|g(=);#SzBKuA*BDZeAW97ww;gDWEbTG)d|o(GA&EB;F{o>dKAbO$(R4_ zXz#cSR^W_UI|{?u?`u1ye*rlvGykGa>3`~!{sMSGX8z|eR+;Z3JC*-2m}F-9`qQ)D zD}k2G^u^ijVHUx=EOHRnSvoc4bV8ZvTVN5GNbj0NFqgna&M?t!)gd(DGK$A)8A*}G zcuH3DG39%J769+hkx9JpLV1;3i z7;Dh4Hg4n?JOF(JV~7?IQV+^9_$=j&&5>%WaxQ*OBI0vG$?fvB!Q;5zVh|$3&01hq zaBA{?Pkmrjm`g@+rREH~*aabG6gU^-uHj)Slm>c=7U}U<09H&O?49InWKVK~rkZt%6lKoO0iQ|Cb52;Au&cYNxS2xB<(k`&>ZABJ-JRRvWnS+2dac=RxZ`l!7sjf-D28y9&^ZgliUTriI09Gv zQ~}yrwfaw2E0y7_Lh4=%tk{d^bl6{O^9 zcd)kI)g6dd6Q;3`WD~ey!7VB*4F7HowXJ~CeW*wsDmghH&eOIkTuksX>{k-0*VU$sF2;fpfH$P6Z~n?BUc-t7Sf_2w6Ko2nH5&;YSU_VLQGOLLZXf z1DC__!R|Nz>9MkqSs^0 z=0Lut4HENffMoD!ej(oxTJ-WgjQsZktcf?&v+%!ZAX5A;NBSz8zJ)*#c$wY}BWr^T z)HASC02N=eyYTF@K%Vz}8#gP_L3H}mD_E4IeLmKUe6APQU5HO9Yt%{DV3_(eHW;*L z|D)hDcqGSI;uG5p1S3iFD6R%hnsX0LTlj1}L6+bazF}&~X>1M)MpXEfUNEjMLjCVP z)z`~k{(0=*14UyBUoV0!LXhPiOspd(au)v?5FV=`xe)hU4^wZ6kO1<-b|ri(hXIv9 z0$m|vD}1g9Lf}I3n5Ru|@)R!D#Z4)GcXsh9a^5Q5z#yKZ$kY&s7KXi(0S94#FWL}m zhR-_Lm%P}g@}>Z~8N?wzv`>_nj^rzC;Sq@+9B7|2^Gp9>)H|9Run|NT^{RHw-q}S2 z>h~cqzgISs?svWyMATmQq(CAbHJ7sqiWG-@BBv+T4?Xf-$Xwc&=^wDG#{zvM7wEy} zq1?l>dH-VIf04)-GW|LGtrb29ApE79ItcR;VGm&5QNKCJDJyrH;xf}=>hO%>@#Xsw zn>76XVkH**fLh3XOj4-_HO-6XXd|@QgjL%aN7nTtU6-Wp(TKN?&JccB zTR*!A;A~B>17CGFuAGS$l10DX_5wx#1Q@UO%BEDD6Vzxt1*wpS%G9_s*a>hhy;+mQ zK16|@Ztc}Fr9}3#E4a6c>wr|y6BXFdI@PbgI+gk^Bm=4bRgvRaed7*(>#J%3W@_4| z5aQJFJ|tkfg?pHvcN%;zT?Z9L)L~@Q;ptMxS(n*$L`*3ka>_?$qwLE+NVkvcHahiT zB5IcQBaBU2rUvP;Or$Rclr64k2|)58iKw=4S7VR4-wUIXzWDw;v`M$+rdfWGd+o7N%rXE zq3Qu9Z`a@A0Z-x}r?d}-47zrCnx}bU)AGIZ;&zZ063x{Yp|J<>cP;)R_}kykcD!>^ zwms^Po!+YyH(dYL6I8RA)anExN27?565tw@;pw`cn-s%0p=AT13m6C=xjA=0} zBKkb$QqXv}8i&Rq&w;ESK8NpEj-d&g9Zr5&P?-65)#=Ql*opHH*7KukL+UphnFwwG z=OIQ*mWJSq!h$zB1?hi{xS=k%NyZ`P&@k+U^WjjFI-D-CTuOwqO6-FDKF4T$1RO%$ z3`UMS6)r_->>s$%u@UAMsnQdrbSX;XDEfFpM8_j(HK-=htYB-FC1wtnOkx93&j{ov zkU8M6h(aM{Nl_j@XHlTqU#osXdmEa>sr-f!A@#V{Jtp)-HMm+G>@0k7NbL|Y)JvW+ zd?!>zsfX8ZvmUdz)1>LbE~P47rQtz9Z#dH$PNEIZxqt^_nz&Fh1H*?v+Lt{O08j$u z)(;=QAp8s00vC{NE4JcDBkM(0+FIl)v7C3FcV~o z23)DD_3_UjreUWthV3M6YdseF_F~r+k83& z%ZiSR;2ryoG0*r9)Y!f1+#58B@Q%#E;Tn4;$c_p+`wo@`jVgFn(a(gCsgE{rw-^7z zb!G2Ee$^~%;`f-h2uM2u0Udh#Q>SkS4P#r&3a3gZOcr*mn@QhF2s86#0h3PZY zZa}Ze)*V$uSi>5f?BH$8`{_ix!*g&C-BHNNz59n8`dBs8 zY<3Emyl+{`Jee+2r;4x?SPE{+gU#kc8;}K*9K0cqf2%3*jmNnH?1n znc-qhDK~N?S^4LX3Xm33E?IY=baPVgYU>sqhnZc#nf+63CC88r$B>PHa*IiQgSaSg z17!mGzl^a zaX#4YEdV;CMu^>y3~dN@Wo5NnWzy{pozByp=J0|l2oNo%wKxo33$VCQ@|^w9@MXH( zN~hfOCknD~9Fzrt?4oOG3tX-o*na z)AV;vU3}-|JX!gp`a7@i3994L`OnhdkCN~2z~R-de~SKoH-3WZrSx|mV?h14%lC)V z-}}na ztOn<@hky~e&6lfPuoN_jRObPzR|D0J&mslG?Nd`Y*I-AkQ!j{cfPrb4jMxP=SOzJZ zc`E*bxIQ?|`ExBhAi1BM3dPk=P@pOA zsIc%*^gqrZZe_6>s*k$KVZ(EzDU8S%1}lx6;8b!BDv=7JyhO%teweDDUMjdcyMj8kSvaE`9=&3G$fG`_ zP7<*cqiZzs;2Q;v@%SsNQ!bF1h_<%pP>*>U5_J$dW$i#v8pKI38aJU7*39w#kkRxM zKwvzQcPvN`IDz3!nmvEDz?hoNh3UgNeyuulv@Veg5Ng%c zm~j}cTEey)u&JM8BBQ~=8Z}Cw_V85kJe~?is0?nl_CuvXHCF3u6L^~4XzGS<*kAL~ zQ8_oLPC1*E3aAQoavk(3|2mC727`cGzR@IyCyzr(o7>7Ly(6osk9ipOXMU}!15V7a zlMPiBtJjHf9S~wHT8$oz$#_su-6(7tS9ec2M*2{oE*3yM)|2*FnFl-dgnLPIm+9sb z*Q#FM=HAv$^>c{v=HOJesAQXkYzS+Fe*@-r;62<;^_NAgv?B=AnA}@S+)bdt#MWX+ zL|?O8D0-s*e zxVV!9)d$}a+#<>csKVsRpr@oLcBcs|WH=$nAkiKscLWo6iE<_)zN$elWl?DugK6%? zr1NX~gK4@~0NU{bfD0M4K3AvuJNZ|=hP(_>f(T0y#`GBNqFsseoSa;bH7dR%Q`z{#NDahufM$>4x}fSN+s^29122^W_15e95F}=cuIm@{V*ZwcFZer? zAzgMnyWs2i4iZUk9UGYIGqkOV@-oR)r*mNkNqEnHg8%-%UMB|4qt1XF7f_eLYAM@kmMmD2MQUu+Fm&@uS};Au?N?p|~+$Zwi2IJuBiyo%$HW zjCuEs6`qc@X0|=@3oPXsMAh*nSVQLfJ9Dz%t2>oH9=3qY{Ev1j->*~t^+#ssUzy#$ z>00d>rtYj_FM&_Q&?esh^Y9*Lm>SnYQRmgOF*UlQzJ4D6lha)0u`M(-0?Zu=7wD!qe%! zwguxGDSfMjM}0s#YhU|1-uNHJ!rR`XvR`*^`DU(g-#?YqpkbWiv1i4hfOkjA=K zX#MDQRBWx~poz5gYGn4KUcBg`C`shDReZVh2rMuKb+x#Y?oWBpU3FU6i-DSj=wLY2 z9@|ow`{$A`6Mm7E0_v?-WlWph6>;f}%pF!@eGq%oDETs$^e)9kS0S8a*p8vj{R@so z_o>tMqM5sO@%ize5xRfX(9lBC$-o-u!HogQ#SnLEeI4QU@sMLb^pxL>%s{CSZN?`G zo*re`mRCp#5xD4s$3=Q2j}NHFE|Rn9K@}V+6RPWY$yxS{`lPzeTDT>-d(gz{27a z={a)wYRv@V2D}dScp=Zj%i+RUNB79VeDcWXAY^WAcOLEmL4*$EVuTTQVhF@&H~ZpM zO<2rOK|n2nDGiz6=0%8(iGAvi9?4jzi$tTLxpq)cJqk)dXkftFL*#b7@4jELd9z1a zzsc-{Y)Xq1?}5&L_=fNhuhm*>-%ql>VBEmyz{Xc2hpeBSGw#fsXz$qOZn)~E@zvBGsavzn4)_Ar*jnj}0FqP01-d^%e|x;j%PLm^=K!CQ8+d zLfpms>Lkv8XLV`TDyK_>vb%I+iQOf!nL(`#gq&`L(G0s4QnMjvq2*%rG)Rh(keRZn)ecKH|jqU87%j$~tf#KLzZ}Vl| zhsHZ|{G&S$XvIyTS{^jMdkIYNc^%GnI9rB+Rm|iIgpPut2HS|YFGk^$h_qPoCbu#p>7AB;gZ=r88fg+#5fG*?$ZtRvc1yNQ^DN_D$GN-bs83JdrxC z_nwEzKjkLxMNr-v@j_9jaop|rotC?8-G*^@;HkBPegbcw&O2rtVB{C!*aV0|8wecC z-@^d0(TxA}d9=HZrV35sZHvjqibK|ySo)`94ox8)JVpa-V43?atj%v11u8$2!Q` zS@KcqTZr8Ea6U3ibBnGvHce+=TGzS9;p!v|)ccqbg$S<%3y1N{%=isIN8aYyi|g3- z+tN0yXpxe!py23;-1m<_&)IvUi3Sn};r39E?_kJo^bHdV)AZ{{H)EjxO^;euPu4GP zZdk19j>8PBU!qQx--w!mUvmRG7*ewqi7p^m*{kpZn54cm0*SxlH2#jW@t4hIG`;Qu z(-4P-@~1d+Xm<6Gt`HP*<4^I+TK%zPrEvxCLujr^HiweATXSEo*s_tGzi` z7JGfO^%X6NC7*-))MmYprZPy|THo(&{k0)2?1*e6Y>vGxg_4+H82I_t=bhD%_}tA%M&`H!xGphNOYwj5|9I zM}_ZzNEh2OYX7KJ!_zMt9uDVtYsPGxG`mOy{*qRRY*TYvd6IeX3wbWXTRjzv5`07f zELI@C^T8K6$ayS!n2-w0M%5EGxYctZ4&DpX6+qQoa~=RM1JEDH*2gG{aHE8X*^@uo z9}i$I>Hbt7k%eDbe=3Qwa2dOB=JU|p%9@wYW$dq0@e*6*^FEYlI z2zgNeZqFYgAS0k#pyh&R)r9>5PQ$Ya8c4=?b1ID&#d9k31?{&3vJGH5HIiRhlV^h( z$B6D(qM&mgRTtYlHMb4tYHoZk&(%D6D#ANFAZU~=0eS|OeAzyEHhx{X|D-~Bdh_{n zWdvfEVT`={!cMP~U^W2eKGWK2QqPjEdni8Zgln9^9Z8kGWsQpgd- zx!ZD|=beNF>uRR**SoIfWPL|r&9rr=owBIC2Ho3QGsCsM#^*-jX`%L-*&bA&+(MnQ z>r8iBdqIVlK|%;j61b;=1V(khR{u-sgaJqh=a@Ur9Emf952wH9;JbAi+0q#)wp3%Y zrL|9!E!7BH0&Ym}#eC<(7_ue(IJLzO@Qf-26cyJIM+0$3rBJ+%vLA*JARB%-FLf{2 zqAjbeMJXOk*gQAv&BbMx7_C4pvRtRt7R;A(AzFI9(FI{I*O!6-#9fA_SeD9Atuvg& zp^FR)dl@nZ*=kk>kZpP@+fbdYAahbp#r%0r)a>cxkh4>hs>S}eA2a2DCQD0%)UXM9 zPMZFgpbINxs#!X)so`BiNgJ_8?kl1g9&EmNF-R~U$v5B?lvp5gE<>IcU{3frCpfTv z$S+mLoj_T3`f+2lF#DdYO5W-*%ut5QMK1LxO0opo&IPb!jd`4Ni6tsS7#6vSzL29l z7tv_c{a8+*=x`eCLN?y=V>G>sCwPn_&#XZ6JVcxSsy&Z~(ZCYXze2-X<%Wt=J!aQL zUruzk^+?gxC;%?SS&qnuQ3|V6_6|?}N_rW)$JdI;M@Pa>{7?1*fU2w{a_Wuuc9 zFKCuEw7aC|Cx)XC>qU_dG1u`%M4|;AA$(nCe?gj}k5_*XBa~=Z>CZTw{&?zp7TqlY z-PMUw7HLB)#nq@gMS2tL@BcG&<+Pfz-&W@zwGLa_kx@J=G6??|O*LQ_%`5zBFm^uT z)hpD(;5*60$j1xN3-z>Le>-S0z8&&72}R zluo5<;I3+4PP6+$#?`0_{L32UBeqQs7 z8%KK8vU501#X#KD-TnQMUZYWVNIz!ctLLW7Kt|Jc)E@}D)sI0DD8ZrQr;s&aC-R1p zqg^PS9PODi(i_fE_Y44zU>%c9@+*)J&a(@~HY|+fx2(b2L&t;e634|(bVaA(a47KI zCpN|v&2M4WhbAzwuZm0q)#SkmuOLmX0J>cRjaA31HhsGb@jglPq;UBl z-k>0?Bli$Qc~W@1i5YD?{u0`(B*P5v;IY=4mxaeRjmI6tVVz`vyx8c993}WTD4=dH z)1c(lmcJTnSeRp6*9L+^LSm*)XhV?KJ=<0Zi@qOy*Fc(?Av?o69P&p#@QtM&%X9Rw zu?_h~<0N=!ChNxs0s-|#Z&vG#Gu3G9i-g)bnxhcY)IA$$TFebXkF||vItC+r7qo57 zE2>Cf(e@eDf2Q=0IF1l`2yJuq_{ia*5IjmQ7=*&r3sH4!cQ>PPD2lNGE(?$jyvSHF zugJJ^4Zc@+j4RK=ulm#AcamePVMD+HIB_Vqs;kiXUSq2(g}WM)cgGrLxmKRADlgU$ zaMd4!m7{OtuSa^V8IYsh6~XB%`>#R(sil2NS_cKER|IFR%wN^LqB^j&yHpoznC*%f zn&)|NqJM1lT!=KuNQvHpz$`1qeQzKRKuuud02b);5jZ!i!20Mk8H2+1-w(VDm5oz^?F6oIf}pOtkJ$Hsvc%cJTf$b9yS7 z@p6mQ@u}pMOqROlz-Rhz~CH@ga5ti3uiMc6H;6r1*|h z+AuSiN{dR`BdIivIK4N`&eYogbo__(`0tn|UpI~ZZRxUJWBEBxk0Ga) zRhciN=VsTgfanYfdSneQPpmcr!LXt3(VJHcFcTSQ9tuJgG@1W6e0^mZp3+;7`xmME^6H@<#o7s9#O$v1}?)#2bZohPkmKfrAsX09>$(|>u= zVhZ^?Pu$*+YI-(3g(&if_?|d^CKpL~W{(;mSO+48c9}768a5&X^75x}sgBI#+L_!W zD8f8;rg3!S-lo*8S#@Bt3ulrF4`iJGU3t^%vnrD9Es<`9i#SP(&2Gw{bFhhNZ$lbQ+wht4=aJK;1bO2___P=Kvlu&Jw)`1c@C{_o-EaZj zm+UzNOIA?z>Ooj=lw+^5=MSK6fIkIwhmO~YI!$@^E$jtAiw zsz*Z0Gb6Dc(G;Pz=fd(=wOr%4(o_9{{9S5Q`>hL$A&dAcf@A9Ym?aKJ4o5o9#`D-8 zQT&Md%wwGdb2UD6Q1P~c3t>j}n`7`C`>b2bxkz|uDgF_bP9tT9A4&GgI(A-J{gAOg zqM#q`mwRCu1XL^NhpfLncg83JU_D`7{{>2;&VF!|tD|iOHjd;=;8tTmw$|>7FO4gn zKn|z{S3ZnitGWyv^CW8{D}{VNI$1v|fF6nL>lA;Hr+9o7^U9WXub4LqT?`?!Uezz^ zSdCi1$BI+pNwJ(tvRvZXE3AzoU~h9?s?g%Zj4=Cz5BRC%kCvz)PQ|fj0)Z(WoE{l1 zGE=m-@O4;pb{egogdY-Ayn1e;z&tHg--U=&QKT;KNkXCX4Gr^$SR1*wk1lyaz`%s9}Mo zhOt@Ha02tgJo+B0FcF|o04)8!)RPuOF37{P*Y`+`k4zfR@4P;yo2Tze-RO&xQ% zs)?nIXKn-3562mwhS+P6n zF&?b;RqTii(PI#Vd! zd=1$KX(7IbJP}X6_!=?{>2X@7$*AsG)@QY9)9MJCR{dgMHE&M!X+`)FOu#?NYDbSW zHhM38-w?3t9w(Q+hKU(}k;-^G2UMDlAIuTnGXR;u;90L{k3px@324m?AF~N)C};UX zK-T1+%Crxr(P&{rLL1d@YSnC;|ZU3Z4=onQi)F@@|>IcoD{SsBE7|NTdH*8=k3M;duwfkxuaZA@zyyv;uV*@Ql##Y{+FX8=h7ArCrnmke#bd zKcZx&lXV6>ogZyO?gSX4Y^=bm@zqL=y}xUG@? zUDWCaLfGf%+eN4DAu5YkW49$BKu}!)5Wy4>d(-Xjf@%mLrey%}tQdPV5M6cqqX2}^ zRTnr`iKq{)zcYUR)pzl?>}1d1f#GrF|AjF+bVt7hA<19p%>e&)G9CzlSF&W5q(NRf`>NS9&>GrpH!i?j-g&{f*PLt*?mt8$(TQZRq@0pe@L3$CH=`S*$?2nqp<|r-Rbdz9*I?_0<^6 z0H3)TplYCLZ&F)M*J>nhk{WEbIf?MIz5v~KJ8)90Oh#~W;QX)HL2mN&kaiIf22uX7 z6$eR+_I+4d;|*N)kGPeqh;=X*jd*p{tz22!*K*x`a+(WITz6j%xV(u&Z{_M@9n2Mo z8M)#>O7g{L%#xq#K)Z;jTWfJry?rg$@N-AHyy|TcAIM^-0JOQhtb=ClUt&@MK&oy= zMUB7Vc)hjpKuG0FNg@w3hga4!*(An7i|B0k7w z9oVp%3L>jsh>Z;R-tFdA2LEl!2f!eK{u&~#cy-i7u%vgq4^;5_#}1-I$Ou+C?k+g} zM~?;}8doW{C8c2R-C ztQ-ONfI?^*YSt8X!Zs(C;!Bhgc`!NJ$JEPwm|LR@@JRN)D>^2mK7mD)k#=yQocb8P zA-4Gz+i4T>kuT9Zq$(gXA^&5Pf}uU&>wLSu4dNby$Y%S$wh`bAc<-p{1h3Jw=J0nq zbrQNy`K#(mST_i%HY2MW!N{Q=AETbYny0_t3W^D-ANGSEcP*UWhGGDCe&&{LY@-12 z*Pw%%t}-kMet6z-zN!8nc1V}8lOH)Js75<9fV(J8(|1u+7h=PBGdHoZ37^`0mm%hc z`wone`VH8v9^`sAjugRK<+XP+j47`m3XPcm-4;Ad4pgRfyS_4L$4lsj(^R5U;qKT;9)U{^i_eTcRQn7+? z+Q8YN9D=4}lE9(ID^3-{g?SM1%SL-axatz@dxg}uuotO6#7C3LRU0H-tT!^jAqJ&U zyeZ3&ByVT`k$Qo8j&I}#c&ky5^Ubf{hN(i#6>z{)lB4-a)gCDrZ12uD z!e{rS!uif>^mjq;aOXSU_#J?>cQ3{Zx%uAsX9lQyd{l$7;6FGE{^W>E_~+&b{Ixdx z*B-HF_%Cz5cY^QT3B-si626tAtp^VKIT*O@ zP|3IW-$|;sz*%jQeW93-1hl=o1D1MNK5|sryE}bQcj6;hPkOX8>IM2e0`1++Hv&s~yC z@F76G4^)b7lU-l=z6y!Hhuba1@GF8uwUF?8z?%vbNirNe}sv z)+}s>n;dU8~H-Jv88HL#C zf!}P&ixo5cxYT4&vZQtRXR-Dkbn)6bN7}|?Hcq~*)5~*b> zdMiU}dn>jr>rv8*ctDeO!*Qmkn3zFBQMkci6ULVqi6#9owpi^(1M|&;Qw;iY1UoEJ zy+x$)VQ&Be3J1?<`Zge?L))47rQ?Fp#85b~hJ5&4Su+X{&ke68L!AnwaQ2y4{Z6uj zE)3M0dz*)(+Ner=A5cYl(6~g(zQMZCoqKfT8a7t`DlWHEpI|>W?8XLHVE{cGg@mF| z9TP@^@|!l}z08>M7k+r-GxWV09&7Ub8Ff5JPo4Y>%v@U|M6KhwvS!#xAZlQZnSU0-ly#j$dzp&=BcHYW z`qsxC@aMze6qWD7VOBmYG7bfW2jO+CFeb45Gj4Al9eO-%A=Pgz`;7UfU6?crCd%mM zj**5JXpUI~mZfHwV)f(g2wvQ@QqmgR?O8U^{H=q&a5#J}#&q%fdQ78oMdv{Cl~j6_ zq))fg>&Bi|P~RuF722H#_W<@V-$us7@4}vt`Unh56JQw{vU*T#fCBA_`*Pxu90{}; zt8sfQ!&>fc2eE=P)W~j1+!I>`i`j9pRUrNz)@cQiL$e5f>SWki`ecpxts;4Q(<2^I zPYPAS?xivG9~(>U{{w4)4-;NblHK)#yC8JXdxB6Ahv+#7TTo}5?tWLYXzNHaa?;ot z1@%U5YXt_+LF{%+>>ptIX}msQ<>gkpNhLTd{l@q5TsaNAI)|f==ph;%yA%VcY5pyYR4S4z${ESD49wgvlL|&Vc*H-vnJ~sGkEH$j#etxMV#5*#xbL z1=hvxlC3bI6n5c3kAO!*6RsN3gW@&rcnxCz$OZTN5D+@eEE%tfzLJS z+KCTW`$U=GS(QouD+^QKz#`n%q(UtGOM6?>+`;l)71O-NBxt$Wa<$W}l%HB?Rr;|i z=a#f~&L;B{^1&%`-`sJsqE=%e$z&=x;`$L>ZZeq)K1~;OB7>;})e@m;C}~dXU4O~q zU~{A|w$EA)#aFm&#dc%uAAkXCzRya$_#PRYJ|tkZVO8C3T)72_avreapUv*$jmd2| zjE;omJIMtjhnSZ;;~rGk9|lmp+TBgBZVSePY~g3ZFy=$eHBMI8m@mhG--7i*=7!j& zBw{fRcV3ILL_JVMxGZ?=aC5Cw4#LIXC&&^SADWI=!$8IBGO`?1na+ZmWtJgJ#K{t_ zlGYE)YP~DI{?#vW$}Hi6j-eg3J)mzCec1$`bp6e<)`r{{^ zMx{QYAhH9tqD5jxpe}YyFx;&cS9wFoxhjwD=T#pyyZ?zXM3}OW`s@SPl+;l1X7$b^ zj|!;_X!^VViI{cLvAf$XMB_T98#`H4;! zugkp50Jd{_o%ODE*;|HnL8Iu&_>?bT_Om9KzZmKLjrTDaLSgc+ZJ)9m#OF%>LE=N7 z5D5IH7)kLdyKC)FMffxdpPY9e-UI1(qmf>G;BM+U7z(T{!9Z<%%E!q+RBSb3ytvXj z>tnr{j(?Nf)$hRhv}E5x0HIBc3}maWVOhx-3UGwHgq9Vn!Evrw24)_Qjtmm6& z=ID43>vJYHZjOFh@^tL--LA;-%@cDfrsNwjURP_K<*}YAd44@laIdR6Hi>*6S#8bd zD3}hdQ@<#GPW>3WE!LZ7wKY%7L#bs8_f(?!vgG=joaR+ID86gatvhcU;%%-?E{gZC z+nonlYpPyN{rk*xxs|M7m=v zD#6>GS=Csy1fLL{Fq)4IOT?Q9S(kfos-g-Uv@a33K{8+hor6sjBGKFi)P&R*a4T@` z1Q{3pw)uA&-Y*GX1djLC8<_B>3%Ch)Q}@e4;)hi;tG51jZJ0m^T9EAf?ytnaj=8k* zmwbXObIHW;dAiz*rP`}9tDTK%QLIIZ6?LxtA?m+?wQ1KShkR01G{d#p<$8?9Yo2lE zS$WK0DakuYyzl`64qAAjj4@+tqI(NpYXi-VMJR?7nE*;5cdfNM+4m7CMw8*7WZzQ0 zjB!UXb^30R1fFua4}k)bk#Ri7C0Zfv;Obed0(OOB^$rEp1%K{H<{-KQ7!;sbU-Aj) z|EeWWvVoHoCSeGu@A`M9yP2;_Ajp7$4$+sw3(D&SH_KkfR%oPXc1IIc?hQpNQ5s7? zC2)?R`!RMxh>rg*$?dbXmQldA+Vo~7C6?h+(E3%;c>Dqf2#yCIS%(@{OvOO>9g3R(RAYgq#U7Yor9i>myE~F=wy@DQR6WY%UozwpbC1r2YUKRCO1eO+Ga~VGh2EY;OmwUNIlim_;gd|YS0{du^PR= zj6j>DccG}?f?lxGqDdHEXW1a#K4d2ca4z!3wiHnh2J{`+gs`FCCsx0CVv8RgRU`in zLIHY=O@SOp!_7-_TL0=XHo1CjH#Sux{G(SM5D>DU*LE0!s$8Ks!fP0fRJoAj|FHKa z@KIJ*L^XNh0l+(8Gua#m+j84|fdjsL7N!Pe)CbJbfKC z+18;&%^-Oao+D3R$7EMWO>T63o-|y*kM^K?$DM}K$ z(|MNqgYH#OM_#@GTp<(Zar*Y!U>(*CRk3kdq)l}>rBw>vVwdkBqhC${|4Dk^WJ_JU zx8Zc$7xQ;Z9F$a+_P;g`dZ=)(nyd5xrp5_92+GDOEyxR`mY2U1q!jX@bg+{brGsuF zz!|PRsG!VT@dpSUcVw0b3ZV`U*eiCrpr*QxO8_UYV?w6w`3Xu9d=GNgbu_xVdVO85 z`Gh1c$#yn%H0C;6J0|2rAI^(j8?4Nv)jnx;l04k)V?~8Zqwsi6dl)r-=;XIF8PIH# z8W=Yh10{5Tvs;1>)3VLUmMKXWcD>}uf0Fi04UXqmX4;ugz%BxB9yJw8drC2ymKMe8 z@}g^Vvo}TeNkj$sp>ZXtDocxn_+qB^b+iMrC+s;lHK zXeCV|UgytUZ{|S_?AJet>y)_jc2}RL>rJ0@DDQ82I=qESN(k`sEq?UtoZWy~*Kr(w z{TnBS-P9XXf$SI#5`tiF4fB{@+Ld&FX^j>+b-C|*&e;Mp@iInx9J*fdE2(cumznqZkx6&i5 z8Os@n58K|7ev)2Pd~J3%?0#z0~{Ycka?)<%iY-cOU zo*9^EizNDU*GpMlZw}4>v$Mt7M4Bf?Z628F8A;XK^-^}%8%O2$I?p(dlWNnbtpihG zguW4O{L-K~J0W!+qZq`G3|fIoEyP<1_QSW^|7I@9q`bAFG~2Ze?;nHmG4P80uct zq|+PXON~wf@}kq5ya?fmh^14-W}PZ(a&#_m&6M2)nGiP01S5TyS0BkW_hVboH^_W$ zE8Pxjm6@R+D6?8#$B>S(c79_%>lmBWagnfGj&w-e*o4e;kxX_SV{?`>DLj>mnespxHXU)sAqCxdyEi&R_vVjt;jDtgm- zcbV&Syt8#w$HhV0+k_)hEIc<}@${mToJ}hcK#0xmaj#mtY{>#ymb=a!>t3~|;^~Ed zqG4WSv95jDyPqw3A^K9TdzGs+R#|#~97vvichu%(UyvN`RU0~T*$n-d`=lx+=kaI9 zV~gXZUA8!lgzj2iiTzHv+5L<8GrPZk*n)Foi~lBWr{e0nKKfc#=cTTjUi}AI7Fv4w z;x-+>0XBZthD%jBMZhKMi%O*$@pgb&XSqj zV3H?lQxQpJ3*65$ID6%PTl?mpc8K=b)^!Z|aP139`|_#;&}Fo-VEDNkq=7ZGutS4& zE1#Lh-L6;d3~1^AF8;swvAPiAF*#e(>vdWqozm%&hpy^)N+V?-#VHYe{v=3nya=r_ zr;s1&(^Z`klzY`Im|1NWOFS4FD@&!Y+VsLsQf*@<_RFF!e?y1J=j-5c5Lo`R9pi&% z+6CMA;8|9Z9UnYfs zV>|>|Bn0ZsQY@roJPB2kSt^inKYW#OS}YJJt6es}thh#|T{`{T+z!|1TH#8#d;21r zwjbxc(AH6%ScX<-*|t;@a`^BCSydp?ijI%-+}jl<_;C6D7fYRB+6A)MJ!djT&e zHaB$CUTDTsY`ChqXWVqk%`lBep-stW(LiUWcvE8HW7d=L%fxpv^B!tk>Eq4YXxveWxS^WQ?OdFwZtO4{aS{2Bo<*eH*Y3FJ zn1A4I&%t~__fNxaSuIrRLpgLbWhdX6PshMVU6|X(Rm85f|z;Bbe%(g zS4D9|7ros?iXV}JOIF7D@pxMgKw>8 z>y;efmn7(Ehc%P2^Oot9*=TD`?}{Fb)(;)B`f4G+Et~uE%c~f%bC7j@SB^oCdxGdA zT*4;j)SEx3tvYrR=qj6UQ~=nQ|8$o}C#PWXQSUZEVH)K@Qm;M~~B$wr>pJ3@+=gGJMc;gS!I zQ><631eEoybz+l-<%!UUsOfy%bGZ;zYLpv5_$)M|)G|zt$_%kXfU>&7(?WZ?MoRhu zv+*%$FWV4D;_S%6Kl=$)gNyS`1s_k?$es0Ah(2Sj-9WI|+F;$!{RNtexOcmesuH`# zC$Z-s5QSYKIm91!8Q&uUme{CBMuD`+T;LZ}h?U;S!p1RjDTtR$G4s&ElW1TQo6I+{ zt_KZA*04nP>3HTqj?bL4Rw{A*Fteo&+VRBa`^?8uK^&;@#pigOTKQ`p#iNme+2Yf1 zuZDZguae<j7t)ao-`8wET$kSU!k1dC6Jqyq}>ri7S(rbts_E;j8L`Z3hNL2l?j zXm{T|X`23U1MYxSwte>iE_EM*e$Um>!@koY==TP!`jYfJ(jH_?kg#lzLc)#f6J64e zgl{=sNw|p;-R50;Dk{-@`puW9n$0uC*|tz6SJ zW+f_+mP+jQz6_q|62G&D%PQo>`~o_YGcw(JUc)C&Hr-T@Aw*c<$kAb8pZd3dd)v+4aNXOA&Dys^}ExBZ*s3420< z9rF_ogOO3X%x7jEq7s&HUI9+pX_jH>qwNdO4%@!i5Y`pQ?D2C<2iw_VwCG>DSBdR7 z?U(>mX71FPmTT;U89BMOYjE1|9!OVi8(IneLf_^OqkH~3=@=#`n?AZX$K58bML=Ky z6;Cl&t9JyZC3jml;q+hu$XLy5g7IrL1Ige&iM2h~ax|?Cn)mch8&{$Z5P!A?|5~l+ z6Tt_Nk^o6iu!rX%>VoRZm?|%iaXZ%({&?k25G%I()j~?f(@CN1WRt_=#W9-GrEL{^ zTmc#o{N{DWAvnbkk84(E=4vuzSj18FEG}WYix3@`l4F*=eoJ0g)-|#x!0(0T;hxJG zD;s&2=M8-ShTnhz_y4gE;dfs6U6#(vmfvAaD4JhOVc!6aA#rE~){j;B!k&Q>lyiv> z53kvMg3KYF=pz^<+%I@{Uy7FYP|JsduxIa^TlFyGjiL(7=HJtaA`$1M$9$9N7$oBj znX&bJ2#HI%Gb0P+&bhfwrUJH*7{!qhkhDJ|Qr=`v)cH!}XwI^|t^-5lt}D9hlS9~8 z%QG3mh2|Tt3psh3l97+5BRO7fBUgix3`($sb*Q=JpvD~{!0PYTKSX;)BgH%Ph{szO2-tMc}NWhUf5Bz0M7 z`ovOqnvWCfY;Zc`U=`f{Z0=HF&xM)J+!Ax1*x*e^Wn_dItCt(Dhi=Z%Sx;EugCIt@ z)BX3Z2zb`4M&?h?f)h4Q2~Fx2Ymlel(l85|b(WI>LMzUQ2r+u(08pevG1vY^Yj$ix zR(*4*UNe15GXa%*MKhUJFCg^yZT#swxjA%)Cb>CXZkZ(cwIo@~A6Y_UMTd_o=A)&w z7uGJ|4keX_dl5=Ln-1Sak0?}_%<-y8e4)p*lCkMzPbA~~p&c4`YC7&$$+$r1b&VU6 zj{90NE*RRQac|n$MnJkH8CMv}dq|O$j+>Q?D-QWIZdE#N9C7iM6664uQOv52PNZ@O zW`+1@(mg~yWaTNv_-Rgw*=b1v-6AKU?Eay4D3pmO(r9{mQ+Ed4QIiq5NZe70W2%-J zjiK=hL2hz&=3dc7HT0p^S&-K^rZH5e@vqt?ih%K*RJ^NiL}RE><9pKaOOx^CGB~&y zF!Tk4JRDxz=?QZD)VSz-+3w|yR(0)}AVfP3YDK~=G5>CdPsKL(^5K#|cI)YOp~e&q zwj9$CZz&6BHkoSV6_^x-9+gr}$owS}{tPw`575NC?=bs66A3Q#R8$SzsEO6rmF#@f zn>`HQdef^iW`WwXek?SRfnletd+3$WH~GVq^{F*Fat?dUUM?Pk@0kw#)+3 zWX`e)oo-wXD@6GHGIOvgq;U*C^DGy!oJvRa}Le z*Hfj6D@u`lENl{-LT0!(=s{N~GqI*9+^3ZzUtGmNW}P1zOiU<)3d1?grdc_Qh#%EN z`-vVT(R+w)Hm_sS3*bbGp9*hdXh{F8);*cMo(A+>ic5p1?8KUG;QyJy2%xLQUy8|j zfbpUilojH6vx%)8uenB+G}{KoSkg6^ zA1SrT^tR&XLO#UGk`9Kd3(GOMJb->gR12D&FH333C7tj+A6{-;?)G`)lv+h@%uja# zQj+yyA*G*Z)5tn3Bo`EF7dDvF)Ah@$jZ%V=qM&~%4U{5w&OWhJ6Sp~L&1OcWI@L%l zY5fe()0)iHx`c-ZR7H+AFOsbj*Guj;@j1%{ZMT6Yh9qs_-WFHAIgwMW%(q@P`;U|I-SKo99T85Z8N`)KnH9yaE zSrLRLai8lY%v?xzzfr}Cs3%XSI1fUva3`}xh3o{HJITl1djM2F2uh&y6L(vkl=+qp zxIE`!JMH)qm%m6y{PR(=mA9Li1!Se;QQj{8knq+2taP6uM!31~^WDlpl3Is;E0AWB zqk~pSw1eD`s9FmrwGRKT93r6*xI_hvB#F|wdO!BmX0w=zlWUa;tnW92Qlz_6&=REkn97Oe)KQO;4R;2avpU|LgOR%)| zqpo;XsJ@@N0&mMC$rE+OPBgHu7;VKPzfi7#@S+IXn-dvDUr4P}%x`sp zA_R&z4usmg9C1J^>2yZb97otp%s%n9~S>1iFA=~i52 znSyK}q}c|HO%;Di6LRn}0e&bKwh_jo%G0T6y^RC%%Zu)hw}?}R0<(`3MoJ2@^y_1j zbbn+}bpO7VN{xMy*xxa)#+!?FnlUJ$ve(PqW?pkIB9E-tgL3w-GP7mSWXX>LtK$Ko zN)~~bb76XFzRIlRY=c*|iE2K&-y1o>jQise0?5@8`W&?RV#Mo zTgRHyXnkikk(aUEv|Tv^b9!u?%RONqA)leWHuJe;9^Gs{pUzxlUSm4#)YX`mwBNG1 zneTL!SkT>IRw`HGs$MzJZ&gW2Rn8Ii>yc&?s?Rg8a2sJ#&dZwBjb6i)fpvIgCp$@^ zNk~zh$N%d4eXK&3LKayhZ zq!?lGT!R4Vk^?TAaIQPDl|NKJH) z+!Q(1O4DDV-$QrvC+sqxQNQUj0Reis)r~+Lv~*4>bALtSwSOexhZsas zwa{^sGskC7g{M}kkzqu7P_&9Isg~ItZ7s`aNe08t629c7m@S}{jkz*&x}sf{Cv-<5 zKm7AU`#TbNw13;AM3VzS9J+r`-Y6J!Spt&&m0FNwt;#LczeoL0iupagto_T{PBe%+ zp4ZGr(7#H*dWr8JsZL!-3^q3*Av$~d&S$~643$Q`DcmD}k7vjV7b;-2dARlLmuMh_ zAeibbm+`+`imeei2b+`A<({kMs(@j-5Sc%y-1AfAdZpY*xlFddmHMDiceono)MfV;d+f3BU;%3B_Aj~RR z!YW&W#j+C6A&2ybpwh!9vGPvM&n!RnTOmM|NDZ>=S4EVpVE`+`oP+LAx&zt#Dj-(v zGIMMoQb7;-L*8|w?0VUX!>s@OvD!>sF6VWJDm89>GH!8^azkheKe2S~RT}*R8(sPc zHQd>S!ABR%88XXGVUy`hW_GW5S*BajZ8yd~#|6H93NTBnl~w~H0E$L7v_y-oPiOog zq3Zc{NW28jzo9qYmmj)aQ=O4c^##dmEA^&BuhkO40~MW?uBcIhf2c*gYSjxOB3&pI z)uO72Tp~4nPdEQ%1+(H5N&kSRzb~EMO{nlwzurOWLbwq%ib8n}dHaqIJw%qiL7~l> zb5S~{+@YBO_8LNysAyM4Ey9@E8-cAr#v0Mat=>rqa-T@(Z(3AdlH<5nETbq#)>$~l z#WM?2J=pQ8db1!|VQVN+*}G^|l9lE$Uz+!;m<7K!dXzB38{7)ET`JMF*scU254s?ds8#&o@!(0>V z+9d?byi{+VK`K?uA&2gYjA}ALl_6AaI@a9DQb5+vk;{;n8g!j5ThE>h7SD2s*F*5O zU80wgZak9`*l>OMIVn<07;a`r3AI99Zqj;e5pt;lZkO`5YC`2WM}|y0fA4~OO3VGt z(I-+D0Mf6jc|v-*yIbqA8#||l?oP2k-CdJEFwpz%mPFosK$FRsU5b-9Kc(9~i5(wA zHre+1u2L|h-cl0!NvbHF{u4!AYl~_yr)|-Sot}i04P_O|5Lr%@tY)MKD708qE5+s~ zDl$@TWF{-WoP>6as1lRQ%mQqX_c+bv3uWmlM(h31V~@Ots}0GvX1QhFL(! zHDl2oStu21DPYTW=oxW^cTXp<&C|A6=XE zp>ImCKr;4RSt`;|s@RsD1&^aZEARDdNaFQ?^aWm)m$-iELp#>1nPHwOzEer4Uz~uvTH^bKX?oMEO2>n(mGH+qCt2R} z-#%n{65qc(`8Hoae0kD7A@bzU{O|`-ZnBJ!v?m!SPt!3lKGD8Z8WS2ApMW>f}X7Y`HSDT z@>`%;?-@;U+UPC*40qc_qEWpCYp1p{kp1yf`E7muBHnxrAt!eZvu9hjXPdpT* zXi_1A+n`ooe6Ghdp?Iw~AAc1S+sRqNZ#J|B!>5EI8`wGdfiRl8_ygYNBVexYpJSrUv2;L=his10 zU8AAo){A8Gvq?H5m*p$OU9NSPm{YVMpRIa|E$GJs3cAG>R8#TJ!rxJf?8MN40pM;l zrL6oJKr}Uv*}1n5ZAPNPQ)jQ#>h6Hr$PtK_G&UNSCTG@(JXuo#SPP$r5*p2|>H$!M zjI&DPqme)&LqV-l!o7gfH#mHaeuWn&iQ-jwE$A>^UxSDgl3~A<5M58)$gE|4U}FN* zU1t7@9x@TByT!CXOfE{~s?0)jy-F%H!rk@>vZi8+%>{P+O3VmiR4Wr4jXd2tm-Aj! zTw+%LSZLdnYjx*QUeJ6|Yg2LgRdE$UZOjyYDc4tDZ{kWvTHOYT#_}W?wdtM&I^Avm zVWaf4Pf#2kE(D*HEAOlmCz`isx?HJUpaT`E+#+dfTPqlqK?TB01G zYeI|AThau4`!_U4^p;?TyKNLgbM%%%-j3Hd88EV}F!f(eBK)p3l3o#>DYZ9JFTg=p z=5_1QQ2-O|Uwp1WU1IL)lN{2`BdnpY^l*4#8iZjM1k?8wtt8NBD$28W-7#9rDQ+~o;2lXw<=SIgNNc)~ zYiuEDf^e^Ri*!m6_aKQw5vOV+&TBODS8IiWjctDe8&E+%T&;aQ6??zL;;CJ56-hx5 z2tAR6AoL@7yNf?z7d+wRuWME*5by5u3L4EUr95rRby`?nqdB8rN!wB-{cu1@ci563 z#WcOSm!AbVeJ6%XZR@KO6*JCF$fj>JYk#k!yTsgQU;O5$_NCB#KN%HpXXoW0*<=I!?ldAUTaovvK& zV2MxHxAA#XjSHc`si}fpMR)A(shJ9SWE{1GKb(^XOK#V;_uW#uJ=9J+6g44P;3u&&Gm+woFjuZ4 z%8Y_^{9E~9#X9qwLDD#W(eh=@22Hb68fF|4m zbB!AygC^5W?=}g=nKg+wzxkQ%@dROAX}-efuNR5WYyR|eL8VaDIMYh72**Nmg^lKs zR8%3-28oG7O1S88$st5FOoM|B=502Xl%kqUp{~WSt4bIP&R}>(Fj$C!)?KZbSCh~F^l&8uoPnYLRETaH1b}z_kkvnMgo(L(v-rkUe zt7WOV_aw?bOu5P6)%Bz?=OHmCJwd_*sPrnfe5R`{!BwT(*>$G85`yPoLnmx7*aIDt zGlPxjGJby9mA-oEz6|tmi-v|Lhpv7O{=A^Kn^RTzVsS73DKCwtPggOn(c^I_aoaZt zG7nR;vrWvm#a7|71T~nkkavT*9nx)}syeeQ@m6S-SaKF%gl(Ts^3tcAhj)X5(x*xv zakkla0QKT_vD@M6g+dX@OyRdtm?9TMyF3*e-ODE;7gVsbyXZK$ zjkn_Q81BR_fdH1*Rab0U_*Utz=weSs3#L8KCKTcBwtb>OSj?>>9_xIH5WoGDx&1MzNMRd`+MoY>|OBe}9hrTr;!!yOa z2s0%w2Y~W^3ms;3)|RX^Z=*LQOSu%DLl$A7L34LoZ+sl-Dy9d$3%3(g7N74mSq~?8 z635?AsFc1jd!^7fv|cQ<4m%qe-G|YQGb_+{Vr;^GTh^7jA{4mF9UsmMXZgdf2D635 ztuy}KdMY7CCU`MtHgh5WNzt11tFIChA`i_p(B&yi0 zOF1;IWZwUL3dqkQ?$q?HGqY}`E>>jq>>2zAYyHHM_c+QndzbZcSxA$q0Um(x(N0-} z7n`l$^bH82 zj1t8;QE_j9)V(jW^#l@>3vT8Vm^JHCee@;CikKj1Gv7&v-%NO8I9scmqZ7BPDLyU9 zBf;@~SQ#f`FH6TxNE9}q;#xT9@>!w_&@M9OxkQaO70AT{wSmrBf9ItEGrnCU)%kw- zDNFtYYWLHX<_uy0tb|zR+OG6(<{A58{vyg;wSGHBOCeW-DVB1C zIKg=#-GPeAys}+#D?iymdnBriD2A$eRHGF7hlxtJ_e|T~PoqsEIj0w0^$o(G{#`RD zcf6epwna}jn5qO&GgCmd5{)b_z4A3OQHq~R8EVC*8iI|gywmV|#V{kFwJcUE82+=& zl{?9JUW1us^938wsl?~ynZcS5VvU?wi}dYX_*jGK5f%i413h|Pt8Ze1`4wS&6U=Q) z;KokW*`cKhk||Z`##_3pZ$x;i#)ZC5Od^^S0!P~f4dz*yl+Cx`m`Dm&!{x-?gu0&@ z{~f8K{%{gaQu6rM^IsTv?6KZ=;rjg$(R%^}+W-6Ag#*7||MGxun64}ONPMTeE05Q_ ziJb@BGzxLL?uX7ZNHL6$ys;{|cMeOCr^HLf-J4IYt~vzCs=i0qk!TF4C{|M`bxq`2 ztJ@wV$eKwV#r-7=y&SI8WpFVh%~+UCtfsuaDLmM0y^}FMZ@Q^w0n7s2oGsf8^StIX zefrF+!b#@&&5QaBn63H@nkV#GXnOQnY<{oLGIQA~79%3^#OIZm*K``M5|z{qFqrtf z%gtwbS_Q!E2)Xfj^=3W-LMSE!Swfo3HGISN`su0qq5LDg;!jDuv&w~UgPiJMXBGhk z_M=cgJoclwGwTr8ee5ymKm0wU;_P=?Z)Lv=4~S1Mmu!4`6)Rl~2rk6JLEJ;bEkB$p zw;zGd%v3R{Hro8fsfdB?@$_$xw|{$lhiOlvEQAW;^GnQw_rV$s1XKYCRLzxjGBZC&M6=dY!p7(HU9=;p=^sqsmc;V@zn=14-R<>-{+xoXpzX8jk|^l=ypb%BZ4KiyF*Yo#kmm%W>g4Ti~e*z%3LQYc1%j z=1=EIeO}WobN@E|l7;m?z-chgsU*oAhp1ibo!{Zh`j_%?+YC-2!s8}n)RF2oJy)Q% zpa(FyPnelo(>(4ktWbo<&0q~CJnmxj=fdO0>CNqS!S;PML!;wqk^RJxEP94;c@Le2lBWte_7tZmt6bUADce)#@`5-NfnVdj6uV#s#Hre-G1Qce20H2kGV1?xZxCiv=!T-Q+2KZUAl&o z+cKKX2o`{97r_;Ct-|7Fc8i0SzuqMo^A3F%u&R_iQVX{p)C83iz7g?9TMK2C&>hPo9WGWG^U|*W}&$< z5fhh~Vsop;G2A9T#;hYKs1WQ2? zo#gIQrV92Guw9XNmgk~1$l{$NHhXj>n9}RKPJv9?eiqr781g<59glm$UNwo4lcx4q ze$gL_-b7!gn>6+m=66XPtt`z*7y!%VL1H8ltvrjjyLjW2$HEn`56q4u`ph%e@^lJH zJKatW7v?#xv%;<^Sg0Bw+6q~rxy;bSTb^<8CR*t_Gy6tz;f_A~P;pgsy^FcqgY`qP zd-?UkL;#UUSvmU~I>(imi7na%^wsH|x0HmI&OvYkGp0nX6B#E~6ED|*{-jlt_B|(^ zr6OLl8JtSiGfs73mU0UnKsm+ydH6)F$RYAO((=2;4-FL1{Afxxk>yn@< zz`f@&5%xnu@BOS!`+xuYoPpoV5smxBH-*m#{akd}mFE5g_mkVx8%53xpRG}DPo{fV zj@wi1aS!A6I8SweXW%dH*6Nbk?kzPXPIY-_O*uy=-`b!IOYVn@;4=koS*isznXR{I zO!z!oSG69?N3OVgfrP7E(GRBgdrhoYA|DHn(y}lOy_v$p!9-2hX-&SvqTS;A0C{`h z{g#K2*VFQt&3~Z${z3BGf%1HLinMKc2g-;2bu!?pWhZ$9THYV_x;zrkJ^1!9)-3# z>k4&zqySBHdNZ5e0229Oz0-tk_+q* ze7_Toia&+NI;=eqo^*WRknpDCgC7uYFM2(E`DGuF-}?dayN?T%)IG^05U{i8*SGMvbe;G{$|t6=$F|F z2K0GnroS}qTpvK#D=}Y1SQg1n9Jex26_^*-$kK)PND-vwX>6!BeQ;7$0!Mt#%z|3y zEQl(AuF<#f0jZP8TxNDpz3D)9=gk+DBP`Z44IZV;4F?CmA16C>oZxE>+c+6xG_~?tBO<@wROq{Gp`%mMcj+&kS!m%Sci0wo=`+u)(Px4A1FJp<;)-s!9v`y~r?WWM}$>1P=tNQZF|h{b(KgLxOF1w(|Cvj5QWEPA>ZQleR}Yi zu01}y&I5ke9uF_WoNhI*4Rr0vYvTK3X6IL>EV|#_wvuwuhiqw?f@EA|L0Ehp zi`VEqUrD5oTn)Iv>>i+C)1%_y#iRK4W%rO~Axm~GGg5_2TR5&_pL_Xrw4m>F3MnDM zv{ZtVir$iAM2+=i_LJEhjaw7)(r7(NIfK~3a8Yi6vKWI_plbpwRwSw6}_!zqFu_^E@Lh9?^FWmf9`r| z34)_AU{HN62)(Dz+`kM_SMv3;IOl@G3bK#zL9w$%Zqs-;7{m&Ao{=wt9lX@zbaXehKu4sKWt-MUIT))05o@p|P zY-%udy0#R0UvU!KThLW;xUp!z!qRLm|AEv{0D_pVT1JGqDp6Whoov-tuG3ca{)xGU zqDz_@n(NIxUDC@wUB_dDGkW6g6`KGYhw|<(h&>kV_r)6H*;`}P@$8-oGe585Nq1Cw z&*?ek!i-J2_S(^ypqiQn=ey-o1v6yw#@m;qg5x=A2*@eHPWWU(H zRJ_RLHS8tE3W@;Youa3gxz6Dln-VU$c}*_4A(^z7QB>93$SKAzC>piRVlG|!6kKJ6 zY^RGxHoBj7-^EAl5~|4HgC}_>Mb}j&!uVDMWFLTlNrlOP%@t45VgM8bS8Q2y zyjJ@{tl*5Ix0kt&Pqg<<+AAYN#0h~}xW?Ch@>V;C=9gVUxVmqwA{R8A*1)3(0c%Q@1&hF?TH-;-^$l zOa;P*0~OCK8cste745+#^rY;KW0$!`mtxf7|0tOa)>o`^N5w`G2q72<$P-=biCt7uG*$VQ zy*~yt444mks$vuEd@%9A`5@WcIvOhT!9?ex0ChN1epQR=SaHUgsWz5PK%)?CEf1^RlC;xMiU_}kh&S#i3l1juw5w!7N zf6rS)7C8H2bt#G*wPE+OqvR&n!qV*(Z!WqLAPNN$?p0;EPPemV_vYx^nHP1vcGB+W zMy<<#4np+p-ppSQPzxXSaIqi5yf(j!z>-*vT2(>mySL?ck1`ee7yeQtAnoGiI>4Rv zMI>~#)D=AgvB4=yH$Q%oJV+?9+Ja;_V)v7?|wZl4NZZB@4L zSD{>HS<4G=3MClXIak9AyWvUorbrhKJ{kUi;+KIav+>}&--?IwlR4Fz%Dnhna>0>8 z1<7y}`x^#iM7mQ$?v#E4l>Bju7 z()FaQJETfN$~#63WR96?+gBvfXMn=JM|hRXW5g&GN_ZQ?P!AI3PQXE z@HdF}aNf*p{#R!A#<>C#HE#a`B&1-}2Fe*p8AA?PhRuHu`GIU;_77FRw1-M%k4BZ? z3ICUrr~ZutrQ6w{LlX0dL?+w3b3ZTR%{3;YDkG!yr0^x7GFftcHXK4OI_0Y5SWLL0 zVgFF_tk-QS6iC8d{LQN{O%-1Xx$h zdEK*D&b)uP=T?4q@cTT!e|8?U+E0s26O)Q4#u1M70&2eyzl?&!w<^r}hC(%7HnlU% z=`t0n6QjQ&Jn2cNAJ8GqX76I5)@J7W67z<<%MIq+=ofR!wcym!X7;*JoKiSQrUxBgkt?nLkTY=b-8(&wIVEz6`QY5ys<;R zMB7o=b}=OYcEH{KGoTXl6?fbB^^MCxFf|EeM21IOgItdxW+#y$Vs7GYkCMXNe~wg(488ZK!8QguLup#hC#Zf$;g?7^#g$Pii^dt3q$R7{~_E;4p<7_ z7@^VwRSjZO6l|odqfD`8arNFs7IP9GB51>g`;L)JO^r^KSCh-oUra+;+eMCPuBRAm z_3OT$XlmqYP+2voC4dz;J^9N8iQbJ&;)cU5Y9&vnjLlroO7Rb*Ek_X}xGxn$2r%Lij)Z8a(22$z+r$W<^2s(l4|(%0R-b=tKT) z^w#kQhI?i}z^6TEpU3e0XXh3F2>9%N+$*rwgn#tX?ZRh--;};VFPUsr6eQ-`k)e1J znM}FYKvBQETyc*0o7g!^Ot}s0I7H>RPb7eiMGG5i_L(|T|okNE~7jLz#a>mDbw zZl?{ASvNP7PZ@ppH=7B}*v=kSR(i?RO+eFZ)+6b=b(r12I$aCr5P`USOymw zo`fUj&+2+FyTRP?Z&Ifpt5@{88Sb`wDNg3}yLm#yfr{?d5uuZlxx&{f^lKUBP+6~- zC_+s>A@X7~f1ZRYr}~pb==A9~lQdYERUmXmvLIzvT2>@c)-T9%Fys2FW>&@}tKig( zDuYyJRIZ(azwoP)kt!4FwXAzeqVYj3XDCoZR0Hn9oz@O_WkKXv+Jx)0d2D%pLb(s% zMn2vkgT2iBggp)#fJP^>DEd}bxEUIy_GyUe~0p7llW&X@?Osn~AqG$fhLI zH8h$p{8WdROvJJnqSWq&`bKdDUvAnYPWrE~?{qylT%unAvoce6VETrql3tJIk4Q#7 z=x&eSni(*-YBTrF-kJ@jLtVRdgQ2^-C;mjbyEzYL+EslMI{@8#y> z-vXUzssLNKK%YmpIXU0fXhx7GF=@Ytb*-JWRdK14_GUnhw!Yt_{ZmqyL3c`bDfqwb z2i3PIF*$dO-lyN(Er_pckh%MNHwgs3-i0LAxjP350E8&_IHkYXbGdHF!#!GtHkxZS zo2z#M*#__tRhHNZKWOE0Cj7_~rov|EJ5lF%5#E{N8#RS8q`z^L59DAF8#zwrc{XmZ z0&fZIydcq#2t;hAe39l(3f2LoUC`Vn%q$o)J;ObT!9LzBX92}97ix5N_KlZqfkfOS zGhBq!hm=x@D@^5C593Ma@hCf~#7oeGeS<`v3-u+D7`{CLa|sNgk#m_7k1od8o0EtoW*-tC0t8ufyEZD3d$QfP-OS6b+A5d3EuU^Q z9p8WmcFKmKST@WcQcpHEnFrZ4fxzcakJZ-In-f$C0PDa@8Iz2p2{f6nr_)TTH@lP@ zXqvqgt&XdFqp81j8i!O%%%5jSRdW6j1`{yTC9|-bSPci2SuL;9{4#__fH7Ycp!={z z2`ua)mB*~sIoj2Cv3~uSuil^Juw!NJv=PecTF%5F@X`goiZe1iEhht{xeQs3qneC^ zI^K}MK(t;NTd^~u?}Bu?r4XcKMNVvt&-cV?$16amq}kheYN7(sN)*yIQcVJkVgcV= z%*31+=Oai4?0$*I4cpXjr(&{+A&|%bk@Qd@@!NG&A*s0A{>Z)+5p_~(gV{shCyLyd zh~UiapmcG+CY03V@N*KDxRvRm?$9_{b_IxdHOcqz;Fd1x{xom;Y$BB7t0e#0C#7cD zi)yR45dqHd-lg5IobG%rU6vz(COoS%-C01}Ut^l=^%IMu>Ij`9ZVt`qsC4K@El(WF z)BB*T-psm7Iv+gnB@S#x@Ew(dye&fs@|s5>?cT>&@0(Ze&=ROS@?S!BWFARk!DVe; zvIt~9k*6wkiAEtOXdz#u5Peys10}Dwl>!OCT?_$=JHZjvf14=?-Y1Er<==+OnL5pc z8Bz)WciR{W5FmnFi$NB8zyhJ0eFB8e2%>&cTs28K8MYiHPxp#fpf+=iEz)a-^efvi zu1F-#B46MYGF96f{K9~Ixw1u+fX-HE@!|9h| zOie18CKE%Thfwq4SCtNQu&g40v*q>1M*|Z5SS+`GY*Dfns?u~@IDBQ6Fg%;gd0H!i zRkGI7bgkFeS_9O&UY7{kc_P9~8zBGOblM6+6J5Diy0XrKrDP)}F_!CTuVh|fA(k=E zHcJ}^@t@Guqb5EU+91ZmJ#l$TyXK;F-Fui-wL{AU0&@<{A}wr1x=sho>)#ag2y1V9 zl*A3D@zx|-bt5lc!eG9%Rl*dr_mC)2T>&wF(Ah!Txm>c-4I|TuZ?cK|ck>yxo4w{7 zWlb*UQm>HUi7-Q_nM0!PHess$m~Ux({&@Dr${R160$$HnU4*ai0^s-bu{re`M9sU; zyrirpulHrJ*<|LkK9!8MdE~96YlRfW=Y^_MbZ%KgLUIbzTcS&1ZQu6@Z7@r#6G(8k zFC{?oH$W!8XOc@WHSyQeU<#GEga(Ic5_8I;1g0W08cap9l$Hxk2%$<`5kw})xW^5_ z_bJOln1D_?ugZ@52I-DZ;`Q6)Ypd|vAzJ|qWl@bGgt;2cRj>mF8V07u66m z)>}v7-xWbD#F|x{rY*HeYRr>1Ma9mAFD9-MKO7;hE}wR4`ZUL5k9{XH@Eg}v15hUL zf3IH}`R>18r)Iqz$UTlhB+AGF*^l;_hi1ue!~k25V>g?N8IeTznSWjK zx~d*nZ3+gGi>M-#kshHmkKU#wCzI>mCCkL==E|!i!WC_uic2F&-ehj6kRYxJn(DMp zMZr+hYy!%5VH`BX6B*v42Zbg3!ljyBFDB?=tTWnMFHe^l|PT2Ba{5UN+xQq*-WbIf>wQtV2n$#M3AqW79& zb26iEWv|c4tZCK_kEZp^YQDDyWe8tGHqTt|x*#JPo8bL#$}-X(Bl$o(>m*2O-z`fY zUu@hv6$W?~CE>Xac%tJH@ZjxDNulV4=4fAb!|a}%jI8MTtR}NXr6=a?)@nJK*m}~E z3o=@~a-Z%4shHCUi@aW2Q}N!ymt;i|Sf7(o(_}7DfbF>tVY7*g4wGG<1o3^J>_^LK zzyjp2ck>tNiClrxTd}3()FtH^u{!HbTTmR5>qx?LXw`p=)mDiTxO*}ftk~>sUq$4y z%<9Tacl%Fxoh&w=tw*g~mRT8Z368C<*s}1ilvxq}q(#pSTF}+~3Tj*1l3m@mJ$$)M zFk2Ih>z5$OjPcAX~M$LNA86yByOAdpSp zH&kb!r`#^KX~UZK$$n|y7js7zY4`hP*8S0}^4-hjiu9(Ccym;M8_fpTTJpsI$k4Bo5#j3a4fIlOx+ODap-<_iuge;;w>mFm zzvJ|d1-qWwvaEHhjOQUU8)7cdzofSLHW$UpqlYYucE7_2Dck*w*gJuiGVH4em*$l%n_8YQsv21r$DFAyE?9hy z^kS=AMSFtI`fQZ6`P5bhWQCa3Inr)&d-`&v3L+RhkF?HGe4(l(XBj1wBu%Y?PERcu z7-(U|y2-Xz?BU9m6`Y|aRfQv6=ML$jpkRmV+_4p)bK$xqFrjyo1cTDgbmJ%6> zn)b-X&_8o7aPoi9o@fhvlwLdnd!EGokL3S*?1`F=xPG8^F=A5oMEE`V_461Am6;!_ zAjH}UXVWSL-H(PU1JMQJ3GUn$p4RLPRfe#1^h$I)vAP2Hgsq+R-kz#}sLgw-g0d#; ztnniBbWRTR)C48dp{%sh6xq+?$dHMk%djUyEoS_y5_k^bp1weFd zL1&FHGH(J1hwZ=xUMIIR$6jj27T<9yQsO*CR(+Q`wK!<;I<>ye8XsO8J8S&W#l;zs zbHXzeKjL;Gi$RI^5J4A0GfD~bIcyk3@m^C*5%}pV>6~1GH{@=SEW~9*x|v7(CjG_T zj9$(#pC{)VyOB!6^Aa#|jl>u}=choNC7%oQv&me>NA#h>55PaXG!HKi&bT~hE;#b( z4ht46AiLh2h9(tm$_AsW!bDCDeUTo}(nGRG5fVddc;2Sb%B>Ko;8WAM$kS&^SnfKL z#Zz5$&#acSInv*`#eb?NfA-$eZ$#p^B7f{38d7`YLkp`9weq!WgV{5V-qq-Rd4Q9iM&uPI0W2t4ggn*xKj1MT=ISPc`3j9*-@50N08E%1t%3O#OPTyqnhij$#uE+4p zxfFWLbFV5GTCpJ#2tAeR_^Z_=8U#7!6M{i|b)`6%yh;_2E)@KuLgFsC9|?;@Lyml# zLw)gsP}atg8(A7d7rvKO@a_Aw++be;uz(67%ZgCcih+9hBinIPOa&lH$C*DVYte0% z1&|_qte|hyEET8gZ3$!&T2Q-0^9y?nPTXYPG)S+T70xxQ)1DB2|MC0xcA8p|itn2| z>9fn}Gpi_-K3nX~Y&lIJcM`Y2Ed@Jw@wBquh*~652ly z&2pI?XukX7wqs^0qkuk?E^=h-&-6MM`jLIr&i3;!Xl3ESn2uk{V6OW%dE&()XxP!80i; z5EX(V2a`2R1D~K`rGXtYR@A=0!HIu+DKZ>*@}YZvH5bX)s@Kq<-bCBZ*J>BBJC_y5t*$ zInBp5tzXe2DO%Af8-TBnfF&ZfchB<%qw_n>h0!-%Hy$_Jo`1@$$ZGLKyIj$AE`sO2 z72W^0$d{I7o}cAz|1mkZ13eO5R-JkNSQffp*MR-*HZe|FR-JYJSW>lVAUEG$p@G@w zkIim8Gcg|YiKKMc#7pw>nA6u58w9&)aG)slN($G|t(e!D!7H?fLsHj}W(Q4z)6 z_JHuzR#^VoB1;TqA3#)=IXp>Fv6IW+=;zS8q_XqVztQWx3;678wMw=`ulk+IbZnwu z>F4aFNMSVYYB_HAI8O#eM^1>g;#@w@tVFCsK<;d{&RGPYkQfEp3dIPow}a1E$Nsk% z`g`-;x5_8BEDwMaPzmUG2S|Y)ZT03vyrEU8622rQ)bKeb7eu!lZL%A)c8Ehj{8@pxLip{{|2$(~#^&h5_9?#nH69$gb$?8Q%;>d>VP?ePUW zEA}jUJtQ}v+qT?IJ{5AAwcb2S>DkKkfaDva*CGrHJ(*0-%?Q%?S)EodFQbnGR%nRN zX*NG*5@JR`q6jvdH?+6;K*5bP{|<_G;yPQcGa1F_v#CNq(|3Ukf>`x_3^nE#u%@y; zX$0#pCsT#KPsM%5f=XB9G;7kMy|3P3MM|duXC@o48eR+k7?Tfn1-C6j2h!3kI#;nG zEfD6FgJtzzS7ca7)_)c=-<0~kKPFE)=y+$c9~TGNlp@6ef0ErOp`RrlB2PhNV|)jo z^%HniT92F<@}>%uLu0)wflP{E;gy=Iv`s@oVqemG8i0oa$vm0~ zp;qx+*f-phk(rg1Jt%vS{B>c|bku9ZJze|^zaJC-9_b`Z-Y@4@OkR0Lc%IF(9~=4C zYXSqR)MtNZq_v1uQq`;2Wc)y?UntVCCJtawLR7Hr_!~3gSbI=1DDym+qW<-*3`XwGP8xsCm%9n%Mc~|-f5EkPg3Q2 zE8l$h{7_d$uWWy>S@?qyN0478`QGjPS@ZfwuRl_<=C7LT!@`@Z6Mf(HYyS2TvthH7 z(f5hfdye4}cJ#T+hMu2C$8c%KvdNj}*Gb2$&!TVI9vRRvEgxGg+9ZxMr*EP5o25)A zvQC@X9h#jS+9)>?q%i+t1v9hi?zfIk9QLt>%97 zN3~1xNKwdpo}?ti!bb=xqJ__1`C;Kb))p@}$1F=1yk_M`g7N64aHf<{*RO;hexwpc z^+TId6_;_tXgCR}o27n5+(Wi)ABkW3nnHu=hLDJd4dw@G#-zAg{hyS!%$?#2mnOJE z&!MPRQp>06ce_=+5x6k~f7v9{J;+!nvl41Ts-?Ue+Y4 zWxpAZo~jYqJPdZ6J^1c2XPu(Zv(+8Ut;|HO_P8fJF>7W;SL>;vk2BouGC+0lvi3k| zdmQXDk0<>eca95^%iB3l76k>Js|)@Bk1=&v0xupM8GYt=NZB{&%!zzQilQbna;p3} zIrPO;72?q-S;d!9Rj2^keFA0e-NV`=BlF1reL&trL=$v~&?AT7@67o@w;cXmL+E`o z3w?>9M$&)8f!|g?wj~JN2~qPq5`Pk3{X6qF9dUkv+Nt+C83~?I8NC_JPC@i$E(Ek( z?~H+5FMgxX#81#+#{G(T=VrP6ROgg3_gB_-TatZWeCmFX9LsJQOVtJ8uyPMfoXvSw zFH&#LZB~BMSyKpC^@l&FDR2__1BMBMaL$OtAe?FId;f`D`m6u`_JQ9`rVECrQ%Dv| zOjsa%yi!jL!k5t49IFa?d@zX6`tq?-x5wGjWTIEgt4l?U_h~Wrvcj9|&Br-@Arg&? zx$5}v@Q^_&3g?C+H0Vx$szG`ys)wC}aFh9|%G4fnvcShw)-tS#`_|`Lg%QpSOib?t>lAt!2ZK`I$*7&^sncoNKeo-{rI*$~cZ0cv8)IAd4!F)S$ z|FcZL7%z)H#(A=#Q4dM$X$3BI!vLnB**#(N6fBSm&3_8ZUWnTyBglEf-SKbmOVQBH zboQ}P!tSWY{OpY0cwKZyuDxA%vrKjzP@u(*czW{7Exj#y9UrTiC||J&Srr==O%2KJ zV#xCc(0sl6Ap+AMKT$E=dzMzQza{tgx=6bN1>&MFTe};{p!Xmr^JFISh#uDIDtZ`V z^2X}+lcnWCXD@!=W`rJ2*3@j~p}><%bhx#m<*d+#WCYYJS}j2MB}0d)vG*qwSFyMC z_n|Jrd#56xBB%_xSR!SMXN4oxQB@uFRhkkc7+%yI{{~{Tmn-Ydv$|of_U%_na9+p- z{7S03E|jt~>O!Jq`@38tUPwpCB@PhH@MhW6^O^2+jCfX|`bvC-t``-(&rBYZD(@{o zre`Y&4>rbJ=hRPWGMg22FQB(?w$YfAWp7$?!~RV4l@rA%Pn3_PPvN!m#+zfsgZiY_)HXA|>E-{5tjc+nLz2^fK#a4Z4S z${Wl?$e944qPA5?mhHQoZaBqyxh6PhevFBP@Hv;9hKHa!zC;q|o7PL{d-0ZO&WoM) zi%Phr(_`kJs;XvhY)(A-O0Jk1nlH;tx!KvIUCmf~dIyy3ZOe?D9tqR0;OeY+bIEw&rp|}xX z#Hv!A%8Ii{9OX$Io)Zl&6elEHD2h-#(1oJxvN>;`4yM(eYyii)u<=0bMur|Pbi1lz z^X#yle4xw3+@wpygv-Rq)@7on=3p1P0J8As6k7@Mt9g}kI*y6+l+bnb~^$vFW>V)q!RP;wz;2!E{ha%PJUu0rpM#RhILh8MWak{z}qm z>J>1ffI9_KPWo4Tc{ei`ac53mRPR*4kF zo0liIxMlGrTxL9n-DO8YICoX{xq|W{csBkM{t2;0jJ*|S)Sng3qe0Y&!%6Jwb0-J| zvBrt2%hg^}fA&O)uTuXFZBA>ISK*DS|D2JlSaR(eVdk1?W<&jX5C(Zcytsp^1=d-8 zCTL!QUjU-#|4666&OFS;^>hz{xGjih)?aAURHK>=U#6b4$~!is8vc+{h;CWQJ|>ml!Lso_nwpM>!cQR9ai!8;ZjBS+4Y$;oeQRg z)B>=Nx!&fU;lQj|H6%zptG-e4V!h0_F#tmxs&ds{X8?B?ynWJOaF>T}zd%0PF$n6) z)AJg4?1&l1C24r)DmnS7NunwGT!_%G;$?Ygg4zvXk4%MRYS4|MhKGV@sYSJD5S)s% z%IF%z*-03*pHZJ@U~6ueD>#6#r-qp{i7wB>+Q6?B^OMUS9Q9+2q>=6o%nyY{X_h?@ z`792Jm-AW+o@YW!vItN56S>74*ChBz#jKz@Zy+E6pJX*ZH}Bg3DPOny1f+tvaq|yr z?$@|a@M*~7EfAd|UkWK+#CRppM2iKqIu|27usnvT6gH#fj2@$@cZIo>2Uz(@wuu$8 zf~$R6C>%$GB&t%mrO0mx4J>EYtq3e7_5%SbGim2sSCi0&UTK-bh^rLzge-1SIZZBf!~5;hS6ux&+>ec ztHY031sMw7Y{TmgX#-0OZ?#fTCgR#d_#MLCRv3b+L+W9Kk%(9dY4iXWw^jM|XP@>W z;Y|<1P8l%wl(hAO>0ow08vdD8Tz$A}K1R*a4{M#xT*1^74r%D<7X|)!TViL3D?mkyB+`S>Kj?6MCh~M)seQ} zb&D*O1pC}Gwcmc%XHqejr0sW24zl52veeFp^vjOYtc+;K5bS^by)0!HudQqqz@Lx1 z#C92FgxW;$j;@nIacDRcI5V?SmCUPASgrTxaC z3YNSZRUb64QjDXh?CQ&d1uIyM0k3CtxsM{F$hOJ${b@Pjt`GYmC#Ru{q)M(Oov=l~s>dI@+)o5vMAl zkUcN#+2rWFLhry5RotoL9!-~~dwlnTpFs2&$IUmu<5;{K$7UzEZ*%l!9Mr$s0f?|Y z6LrWUSZ-R(6{>+z5dB~Ix66K9ZB^0>;@Rc~0znzG2a1Uv}VsQNO=nfQC6n*_R9Kc_V zK>?T5wdt$0j@-4{+VqX3MY6FpAJrF8Az@?b+NWtMAs_acj^E^bfbv^Fahn@UQTEHZ zuN=Iu^a}1PE#tn@BJL~2iTZmsg1SYs%<>^V=Zevd= z59aree`mp0L2h0x;KiO&6c0#cPw7nv;?c}J&#wrz6>?AMD}Wlee=G#daFUcBYHMj) zi>vk~E6S^-d_1=1=68M<))Q*(0z<2x2?&)o^rav~Hcn=6MjAMw8_{h)azeGL|uOJe8K? zm^!R6{<;Z+J>$GrueJ>r9zf!IxI3vFETFysM~88&`&fL!@c}PbNS%Ea{z8uX)oJFN zSB)^=3e{k|K^Ri$(HEP6jM#yONjwkuC5XEmB_5lDCHi$JtFbtaAQBjRd(PbPstyh! zEL3OC4n)aFhpbR;{;Kh$JFEm3C!WKKd`$XXqm)XP;zcQENGWn+*TVEtn47;@_*L>3 zRL{tg94TcQOSwJAxL5%NITzOA~T0Rq9GiVgTuck#mFU5o$EKBw`^xaRBn2n0i)DIPEYx#!dtb;p)}i zayAT2kIZB>xNkySY#&ZB%Zik#jgrKVB;yT8j3h6nlK61P0ycnnQTlH&bA{QEQuqX2 zPXZxuUpTK=1%>VjsZCgD7E<4VqkWos2!A1~Fr>;hrutmC&i#KR!F=(=XUR>qR@^c1 z_@|lKSif@80O?O5b&?Iu#CkgC;=chGHR@ZSd5!9#-*j^g?28=rGT#ligmdwqnTSNj zWaySMp%bY|GShxilMsgWUTPwq`lKAJ`Qn*y6bww(#AFzz;uKM^5`H){*!VwH-6G3_ zh0I2D$cpQk<5iPVu>lTgd{$igvr4@?m=G0!4^FL7L(uVR)EZ-qlp69}-Cm=1pflB| z-y1R9@q691$G%U@qM_;kgk&}3RStEJ-?_8~89`xF22)iDb%;$&GsL^pB>(jL!%af_RGtax~As#BJL zSVODh&*K<4j)8wN1`L12pq=XQ{)$mD@;*v;h5i3mcSY8b+!fiMA$NskMI6B(qUWV| zZ~z(pZ|Q;3Yc1Q(G>CFOWrOHgMwgaFeFQ4_J|k4H#yKVx@;+rM9Lu=I8eJZN3I(4c z6^@0WtTDeyg`&?86)aCnUn-dHijvQiyTbB+nN+C!x1hq&xhsNw#sr6SV^@EQec@QT z_4L#jjVu+K@ozzeqjOix`e-WD{qIxZsN5CdzEo)V3{j!+@Kmte6_NjaDjd=->*ubh zotL6Q%3ra7lsN9MIPS0bCyzCc7k3;3$BF^-{G(UJUlGD`Ib5=Hu5)Q|rgP~Rv5H`7 zR^qKJhe~Y0h_rZs@%{$iZSsznfsUQ{I|wP{Ww7-!#Ia6)1u@owjADm#>HKWN_3<`K z80OfE2{KeyJiMu`?7q(H6K`kPHahkqz=>DKUU6dPzKTT|P2G$aH|Iw!&5#uV#_|kt ztHy_NQOD8P0;b%KSJ?Fxko5Xm6qS>B-P6?8lKr)ItuwJ5xbSG(^rl`m>2HPs_uno^saxfbMPX?aJX| zlcc^ccQbtaIkxAU+P7?Zd7dEhlfx*>L5M-q3IPcS3ui3*DnARtj(7$3$RGo-2gtT% zCAN69_w+7oyuk{nrtX3ZONO_6lYem;)W=zGaxngIAJkFe?-dKWWV|AWq}5jejlduv zd?PEd!=vrTYMz{yZ{A!N%gKG!w!W#GZ=V#tc!gK^?`Yw(pj#2I@abz)xHEYUka5*~ z4)2C)>R!|78r$+P|Jv4nQuvI{QQ<#Y_T^x&?iC?`@Cvq2R9p_!5>cGMh||usl5m?ujO0Izmom6W5!?k$Au5{tpt6$Jc2KDTXtIL zBJD%{6?lx@>>sgHPC2XPoBVss@C83Ee4uW%sXA0vQ=3z}u*8spZ+UFiLPKpM`COHTliO>L*&R2L&3 z>g>m4Ooa}vJ!{*T%QcRWf=%sjKJwkW0JnaC)tNr(#M>TgXu4gdoDW{caxlEJJ~q5{ zT*ePbRhG7w*j$VC>TaEoxu{WEzBTTdPFGVm|JpD?3MkWH{FvAb3v^bi#1l{CA70ym z;teg|n)B_iohew|1$<)8213!Lze*9glj!V%&CrHU4vV3iNk2J!jYo?;ICR`ruWpZ5 zMD*v`tKaZw>k@CmsCg@Y^u)xDEZZjS)f8k5`vj21E9Ujrb+sk}XQt!sx)c|;Uu!}Z zuULS+yhq-0a;zrq@%+az@K3`4cIkRDBEztK)iXAb;p#f~O~t*ep5J{DAAz;1{~qix zQ*nj=;eP6pSGXDIaA!!MJ{LE{@X&AhMTV&2cbFr)UHx`67wBiFcOR=hxkU+i`aIPO zk~1eQ16I|CAfnyQ$J_MI#8#IqiEnznC!+_a^(9`jI}&F*@ejhp(~{SW4F?$xh0gw( ztLaT_)WL}zi7u?6Z+ac+dnloqVJH6SdlNeb$QTaloJYqJ(v5RFQMbqn24$2&WeYb1QW*JSdpM`(=I@`+iTbte*fqxifb~J6_ z+u4k2dgJH#XKQufWKG8=eb4&sjy+9V80OgJc(2yc!E1_H(m(4TaEEm|XHUaFqi(%( zeHVe(@Q(-q@Pa`cEv)2hW~f&?aF{gmyiM5j&Zf7Bn?vW+Hz&I7j?FFh6C7<#Z!(?W zq9xlPM`w%uasyY6q`pg{5?kz!T}@jAt41pQfTI)A-blw7kaxY~K;jL%{;p#^_6{_? z!PH0sRnO=i7+D-1VPl2kUB?=jt4M)x=i@6K&pUQuo5w!~m&-aqbF~Q_ho{={v<7TP z(xZV+;QJkv29QWaPX21Bag`sw4({i@_ zn0XO{erz|JI|NTVcrmM;JIbby+eP0&t`pN^tDlX=Y}0jtam!z->_9{)z>DYMGy=YkpTB&wFWBQk>eKYh4)!KwSZGv5!us~Zxg6Q8_jKA72Glob^(Ff3h&H)Rlg+EAEJe;!LdI^Y5GVCxFE$FD>RKTiZ+-{xpr-vMIgXzRvs z(27>$906{wEYVl2Z`HQRj;6pEl!DSaV0IRaLA<_U3=DehIoR<$&cLhffe|_bXAhLD zhdfNI9Ev~>W>E%fFQKS%d=+VBcDz>VW%;Ne0I+ybbsn<#5}iZg_FL)D%jyv2LKF{W z$VZf$QJWKqq5A!T_#UkTvD`90Bhl)BQxDa1<-4|9Z)!#35mBhMA!CldA(0sD*qCS? zj0}a2ovh2jI!k<*hFkH$E-bZmuh`2+rLR(}78s}F^dfzA+_h&tFf!foEE4BwYxb-g zjiUz~z_hj<@D;=>vTz4C7Cx>;e4$+Mov*D%Odc9Lf&2Iik+>28`SA)D__z{u`wEHXc)j`0_;S zP&BAqTPbwO*GsEWPLW>2CgdbqdAwzzV>4Ro(eD#ZpBzMjl0@6k^@+rqp^45R+HPR1 z0O@8S)eK+;=NN#HM0^9FY7$O;f{culD~L~m-{70Rz7vFfb^sF2a-a#)ysP~Bns{-Z zV4`yLY9uX0(`F&AAbwRo;|lauz-H31cF#KGsuVoU(qE2GD%4jIG4Y8-+FJcxq#%Bg zB0f0)xOmrge!R2qC6D#b9ouxe?(j|p4hlL{Gl-Nrohs3W65+fY4qn!q}_H63K z*L0lqgVZ<^qj-kCcJwNJg|-@3w9oKO2c)y&lV({Mt4qV!iumMkFTNTMfiG{ov@t$8 zf<9m7LqR!O$P1oIv|+EJH0vd;%&+ZEbPhN0g-~qsL`*;{o38yg#ag0upkuQj?|zYI zlrHG$+7xs`c;XX@fk^Jw?iYb%@|BPyln1Wl(Hnm435ra8HOMLqmFTo5Rt!$88cv=g zeuN;;k;4R?z>3LX^N6zr2F@J9VK{@u;<1*6EY(6=6B!;zTB|3u)s7V@%;{`|z6y1h z$D`5$q|o0*9r@ad_(IzTcUTL=#!e0VsWDEKBP$tX9d1Zw4m9<4V<;wrUg^Sz8N%sGhHe~h$#Bh) zGzO(_atxO?96QZ{!7T@`60Pq`ylr>vYkE6gE555U<@*} z4W4cKXED6)>2b6<)||~T7{}e3ZF6;_Eu-iPcLm1 ze)Mo$<1zR#2X`GTehwT*9(7lR%=4qPRy0~Jy>3R_O%F2F&&ZdwKi$v?3HwL5I{tNT z4(+8QIXc!SwhnNt*Vi_^!Pc9ejy8BYl;PiSwCT^EO-@_C)sb*Kudgxu4Msx48Dd-M z=y0reY^1f|c#)%^=!aR(Mf9ss8Ai7mH~OxJg7?K7dZ+W3t8fKGY@$6@l}W{kZx_C+ z2ACfn_K>XDq=9&1U(v+DU@>>1%N2-C8l5aqx?3z%^ z-8uT486Eb^7M4a26yAB}vH+Tq+kxZHFXI{4kK8a2C!mI^wB73N_qPE$&$7Zk3FaYz zbLqs>Vr7`&oOo)iY%Ct9#LC9u;fa-v$K&K!85TZFJSkRoDIO=*XU57d!;3pq6)U@3 z`A}?qAe5Xq1LbC@_jaRYj_7h4Dl(Jfi4CB4%oUrE$!AtA4Av)QnX&Rj><}|{Xsp7aPs%o9<%!r~X6*1-g;SqoRyzUDSj9-GdW4>+Mcp%F z6Hbs5P5!yAK_Qde*Hd3vpV3l^!@bYEUJkZO4$2&T#m&i5d;Aw`c1X?1(yRl2ee&DM z((F5{FLWhKT{~ZYuKiFq^T^TQ;s{oWeWY9;@9#6uq`7~{lDIS3x%l^>fIiXPlD&6) z=NwxPt`V!6p(hjS^vsE#_#}7Bq@3pGBG=<$kvXGV?Bk+)19MIbVIl9dpt^Nd?+KTg zch3<2(9;1Fhv?jQYLMbeq^QqqnV5q^p7H@ueE{z!)xl}D?YICfS4#2m>hVF%yCWym zOsm4VN!xl7TLuAsCc(MhBSOd+zk3GCe6Ln&MQz7Um1PmK-0vwz|Ld#!>hLUjY|8$plZ$;EXD|E=19v*8`!Et@hYqB`o{J?^&9lqvh0ZTSlpi;UDq8%kDIp) zsW<4+{Og;a0-pV|u@Vc9A`HCq~~-$>(;+XN~-~Zw7l+ zO-Or5op#~&Uiq9#uo(%QOUphND}{V6J115O`CN8(tQ7LO%oi(#d@dUuD}{V6J1bTS z`CN7;EEAMY)vp{ctcZwc7-Ri#)j5G(&cUj?%uR{kNMS+Vj1v0#rrr6JKZ zVEnGxe@R_Hj_V;4Q~;FlhZO%)jwt@898vsFIimQVk|zEw*)MA61SkW2irZ8j@`UO* z(NrBL#VStLr+Ca*c_Q`{GxpS2#cBGK95Ys)h&?@}RnCyU6ss5ouloOkO;6D^O}>2A zUi-?!rmIbPNa+H3NYP@+LlG~f*&5eUVY?KSzK6mEvjX?|SvcV&7&2L4_+koS|0Sit`%Y zpvpBb}mkTo?@`-<4NSm~9NIr@KW5?ZroQIR*qY2?jz( zH7zGvKDkwJ_+Hv|1t3U^hOD{z}Q7Mmw>-fOGRiL>B)^4r_2IY4T?g~qH{1S|{AT!fHvJm&!(tibwA>Zc|ARy}jiW{k zUKipsH)Z?$wJK#C9r(Io95wby@Dvij(%}UPvC@0>DFMB##QDoaR&4S;sSj6d@|RN| zp4j9CzxC>60X!C{ZWhrY8%a-rkav<&@v28cwQ<`6MbtS zMBe@6_-O0jqI-SL`!^s2S0?Yg>tt7tulcWd=pn2`(MRd4XM!hP#%l$n??A|BF;67IIp*e+}Py2-XcD4(&hq_W6wWM zn@>WUSj}jX_g_Gp*yQtLr5EU-0+Ki1ByYY+-Z3V5FEq#-tI-HWK`(hPF*xL+Sn0($ z;E_cXnne_vMT|9z7}v`o<71PHdW*Q+jV5wh@9;D z_1u$P>mcMa>~?!5e(C=Pq<`SumS(>lfBk<81BN|LOEVd;%P2LFMf)-t$QJ7|;1c69 z;1=65;1Sa@kRzkkfL9F5fKTkofM3kYK%Q8YfqXG40|jDJ1`5Tb3>dz$k717oV4)n7 zJ)Sl`J~Mup@p1Mvj@mu+Z@XLW2+}@!9QEoQPiEn<=M7s~U}UIde5m9u=j?&w%K~$< zqGjco(NJYZ946lVG%n+z5*%wD{L@0b=c;IH(3Twk-kj5T{nlMqrj3~&XJQ#PPearU zMCHDhloAl0VS5?X*Jt96nYl4BM4JvQMDXmB^^SxZ9IOhd>kw{x1x8$S%e}d;!1+C* zrfQmU8&$-u(gkDxoXH1+KYnyo^(o+w&Py)+3dU=j{_@v2_~WKWUZ0Z;xE6h{=fY&b z{p-i~pPmeOp8b!{PfrGN+#4UgIT`T&^s2wyoecPH$-T{)4EQI+m)nzpyg7Hgc~>%! z-+A%r^~pfNPn#dTJQ*nb;nz2PEg2~K)s_=Re4O!G4$yN<{9&{&Z%^(AXx~F;jyVhM zYpbj5MEibRJMBNvzNx>hx&!UIb=fyYqkVtc8n_zmJLRszhta+_dmi{H+V{p~eth}A zKK8yUwD0UQW2DFy5{I*Tz`r?2R(RTkik11F}BFVQX?Gd?#6>N zv7WIQJ4S|rjYYS3+x0Skd35g}=l#4%0HcSJMJHp&RM};ZU|s(ZI7sk*Dc-Zp_o7G4 zm+_cf%)#P|HtfFhI5rPKEm%^3Fk~3Va2E>b7e1EZT*S~Xyzmht0RCXYm}3+K@_J-F zB3HY5ur9Tk^Z7*#c0RyPo*6-NUmUqL(LK`n*gL~CIH86)_B&qDKGeAAcV{LRIE(-i zwC9|Ub-EJUU0B%lx{J#Z=@B9&PJD$*z%D){KHqOmsOMZHX->I@W3{ zuz1U*@5wYKwmqoZKQfuv?sPu(>Im(*#G50q0RCNV9ZS<*av)U{cUfhkFs>Ezpe=r9 z^E9rY2l0p;QUU9D-P*P>0P(5qXhrm1+>$u(sUE!QWd(rTi^XENa07+-%|eQt4?KZr z6jub)pkSlrBY<yAQ%8NY<-cf9dAV=cMzwqjsPYs9Bjm*Q8Z55MkuwN4h2m3Go8&> zvGwqi>Fa@mLTv-E;L$dL2re9NKLZ)C+&U&>!>m}Dj8I)M+$@R2AbE{F*HhaV|I8@?3%&AVU}?@3t6aX_sa${qwi!0+rxc=J2D>NEkg$8 zh=-AFDZW9I+!pWbCHBBM!e{! zly5eQokzdB=VaG+@LPmmJ$~2YHx0il@%w+vdivM525UaDu&2sc{Gc5q+n=A0NZ} zrY|1W?>oESwZ`yVJ>^th>6I@NZ z=iC^Xk5eg{_S{f+V+e#N#sOWBa*&6GY8<1e*Y1 zsW{r4kL{(g0$ZUN#)Ta4(m%ZDFyZ456F%-R;bQ?+j>N5!+Vh={?IS$Sr5TSn7=#tk z*c}7pVebu+qA`Vf1uk|bJ`uoOFmC4q&w>>C1`)#E%m&y5FOFO#`eQ5X4k9`67HyB0 zwSA&}*Fn#Cz^gv!kFC(aJ6%{@j!!K0+~T74(bhONY1<&SJ^C(4e3z|lWLIK4dfECD zk4qhOMUi5Ocnlo^V+Z8- zAq#H7yWFru3iTJ+>M;wTKe!YU;sM2xgzoN=xc+KpIdYCa`Ch= zEqDf&WS(=eECQIoyHa_9vMbs)2ysQE_Jhu)6EeB(mxMN$07yqn(BOk$iVuQJA~Xr~ z93k$&5#l~PLfi*OhmfYqi2McBeo!3 z%tWp@4y#88h|l-cQb6>TM$7DGv~Va)$Vw4j>w#25}(I2_rriJ{7lniz_wiv zS6P=|`$b%tW(h;AKH$D*=-Za}K>T)I|6U6naK=N!*G*?P|YRiZ|>;juGtsVsIOxsBb!pA{;)XJD35Bp zSh`(ua4IKi6bSk@=b$gMYIn55RinJWMZ+lkm)ql+c*#b`9u}Nhqw?R7_RVbnNO~Lh zArAT)_HzR@+3Nc5n3QD8aQ$?2-!P}_8+9&?hri0X%a-YQ80B8gHPY^uQddwtEJ)0n zd38G+6?2CZDwM#}e(c?6U?GPP)1|I_$UuS`jyY{Y4DJB4jEU}Z&CQz%ES>i)fgE9{ z^K!!)^<{%|f>KN1PmFb;77**|c3~bo;d@U$aI)(S{GP?{Dgc)$go`PXI}a1a`g zI)I)_SM%<x0Mz2=`a+b-U)f^izt%wLVLR7R zW34w~{iyIPAgn&9D*h_f02iKmuMt>W|K)n8`f7|3Zmm_!*DUx6Io42h=s9EoY2%b{ zN*be&^_G6{n<0p(8c)_l3=K3&*jQ74OIAYrbB;(*L~w;2+jvU9}=Nuq6@n_wqkWN@C{mB-7bjw7}ueq z4R+NH1rt=~04_EO{hE)U`tVtn>pmjWh821Tl4q#~5p?~}R$9jRG`vW9buN6%KxJCE z)f24pM9`pImnsDAAT!OhJU>P~wvJq+9_3@NdKeElSvNy-T?ouw(EL*5ylGV-Qqrf~ z{~>Jv(N4m?AWHAn!KnF>=o^Du@&+V6v_aWmQA|jkhrdia`q%ceeiqWw}(bQ7nO;p6yp;a#H!n9{@|)>eKU;rJoPyCEusBLn}>nt z?&g=Ai)+wP=op=hCp2ofCqGO#G%_`)MHdXrun^dY-q48NaOD!C6R><2ZgM|0d^)&4 z9C!~xxUT-D`is;kFk06KHWY^i+Nf!4X5`fHS*b)}NwgpOyz6-;D$CZd-&)K`BZFLa9p)FONs ztt~``5#h0^;%r@0kS~0x6;P$JH=$XI;D#?lsI3(PszPZM$GOwh-#4OjUv8xbc6j(m zq1uSx=yDFN^SQHd8+_diiVCs>;Ut>%@0zZ|7?wbB~{ zQwV81J&pFB{Hb`$Q@1T(xpI}aZj`{gzo)B?|>WO(@o`B ziFY3+F?Yj96ngQ#aBP#u^2ywI` zLx~ys8j>;avixX=k#)qC>#!L%XYNl>ho5bM3$ zl8lTcb|*G4URc}{D>=6(x;1m|c4kw5{wb)BAp*#L1IfP9=wj1hf8I^BLH#-xH?!dw zN>e0xYSdzbeIXj}s6t4%M$JxzT*ow(HELEWWD;^h3PFGU?s1cxkxP&$4?pZI`p2JT z@*IT?4>tk=qr=|RUBM1V3j(5}2;muVPxm$9TT>|pb^F6tr@l(MPYq8^eYv``!xK_p z#nP|Of<{JhSf@z)9MVLrp9Xcwc`_gg-)*IzrcQte2rsa{0j3`dOA++tw4k8+JAx2b zt{%pjPA$^j0_;I$kK%Fi& zk_)ly$20JoJ{ImK=i=*4{d6^+A@%4Uc$?@5Kqst}?z9BecX9S0q#lHJ51|CFx({#Y zRCv!(-vF%o=CSaJIu{Q@I=tmL7gIk`{rv;aDwXjljf*e97O6s>JXLPK1=MBcTahX- z-_R7iLEbW@=#}pS1fxIMx}K(9`4IwI>=&ohN45GDOttWjt#n{xs*gPNuvl;`$p^5Y zHbMjoqJZiNEIrTcKMT~JbFkwL+3?F(+wUR(5atjkzmoPNd6g-T+2Q>m_4hdfBn$fo zggPZiq51QL)J$Cp9XL4z4RIY|QU8Z-c^4SdsO`T{j{J zN(!5;tPa&oQ&I4gs2rs2Or;&vH5O^L9(ji#ZnCYQ;zTQ*Ub3W#$y6y?r#VhEUEJG2O_7pWS^Y7Ro|5R{1W@QP$K!o zqCnn35^whaeJfi}REN}+bJ=du8KPhp_$ozbAcaR=CEN+$lXLMFG>m3;qePH_fn7$d zK?HM@pgd1Vo!T42y}`l+AoDG7|CkxRM-;)x0cvP_ke=1*?b%|DO;@kr1s20}gwBAA zs190Y7D^|-`KPMKo6TY(B{kC!RHuHD3b{}OIZVrWJa%t-P-S9dCw0yr9NvmbyKh0k z^HRzwv%4YuCWF5aegzMs*A;h93UevE@inOX(lBTFyFVYMX<-DqpvL|)^;HZt_Vu){ z>@ZotNLf;UGi=yv=MfAypq-(%-Y$}BhI$<@;eS{ur>Ut>-QoAFZ=}svmoaE}T2Q6R zMG)eO)c3wlA@f}rQuwS?9T;QbrCR+7FYN2l{H*e8c)VWgzqx($4y`1TUsj!;m&FWkBpLo2tcUkN}lfPfPgfSzpx7uVkb zKz}9jfF3UJkv(311ebu}zt-<^V_bWF&&6tHD@L=L6h`;eJ>dKL0{N^_UzARelPq(C zp|R@mP;A)?->ObFgg)mGxJeU}mdYLzBeI=(akuev*ZZIY7n_K$$A#mi!(gf6txS zXk1YJa+EO{Rhk{gsI$}+FT**a_IR0H$jF+G#5zY6M*@WOK$boaaOXqr-&@5 z?|U39GCs&~FVucC{DcqS^)zzm=Q4j@JiY2?4@#kZ%YgL7R0O8$8a;ZkTMv+j2dW@D z4V=}?Pj z>Pg|P>_gXh&lf+sM&bi~0(=OPTsi>LCC;yMaOPaB<8O5DuzL$5XGc|LWJFXAayHXk zF+7}@41*&gUTX1O=(2Tqd4j97_3c4vmTo^csP+o$XUh_mc#dDd zxbE8cJ=wL%QWr*thuuxx%SZpJH*jIrlMCi}jVYQy#?j8E+$_Bu&g3?sD`_C>D|VXeYMT1;&q#qR zj6LslWz0Q4d;*;m!tRarvq7QrU>kx$FyOGJ8YnHn&g@%7>zB7T@1B2t_~cZEn(={P!bZgaZaQocGOiT%nWOwcXmb=9lJ=2!D&b`B&N`H+8Mx`**E? zD%AmN0sz6&g=2;|X5bj?Av{qUl?2C_{CR8CcOEjEWJp>BVqnu4W+0S$q#6@pY7s1E z%9qy26^Iwr7gD#S0^wUiqV~tEMBe(0sv32hPKq(xwz&o2-&(-c(|7fY)Yl;Rt{zQ& z6~lFXk-DitKnnlC3a?SOqvM6t8-iKa(a$;@0&k+ zd@E45m~Ta@)_f~b)9{9|G;-%b1P!h)>iUu~;x4IDFWkg9+FHZwiw)Wj>be2ZPz;q# zJw2na$7MLoGvSImy2=sLV*ikhz(Is4v4G2x(EzaS$ofn$uVHG?6dGPX)hciV3q;~R zDeo1d#7J3VrF%@ur!Sy$H&0=~Eti9?Vj}kS2&l%%v zLI@M8&wSMiTFeOybE0c?Z$h`3@W;IgGZ92cg~z4f0`ct1vId{}Z(%@j*E|obN|Amw zueZpAgjT6wZ;`*Y66UEXy$Qcp2N#DY6aNF}^RZM+q%t|tE{ZT*S#@Ij0l@)wK7dY3aDrq_LTgGEMo zHHv59YV%2J*rzVvZ+J&N7~DC@pDsn~lX`1!jZ!T_Rh}evcpV|-%D;s*YuxvsAkwX(8`0@BxFU>oKKBCvm?lG_W1Ee}Spso;?qy7x#2_*x;_bOP2O6GYyYg8c=XpLHeS;87!sYQHJ{HS@U zx7+asK0&BVB0jMZ;B@hzTD9Z1D08n;cpw&2o6g0Ytf0GW4xZ+E987dI-oPTn`&P+X z>5*jr5yz{F%w()g#(9lcL|NV1r`}p5^|Ms=`5O9V8H=?Si)0#4IyoJ8A?1^zXc5Mz zQF`U69Wuv;ZsS}`-a|*Q9 z$n`ZICQcH+C1%*5KiJ@p! zcU4trni}(E$=H3{GVn*n6Lv&s+qy568z7$G5jObxyz#Ze_&U@0dfWIK`NZpZ=^pq5 z=MA-O%Zl+Zltr+<9#Y})I_l;Vz!(Dh5aAG^Le-OkNY8$%k@Ld1zBM+9* z*P=GvlClTX8rY67Gu$>bd5^xp*NE zPg`Lgo;B)3D8L$ZGlY5#xV=_{I~N3C;uf(oJ=oXO?VS;MJ-q`gROCc-gt3L^EiUP}FC&^PUU&Bo3 zmXYb`un6)QooAY;IZ`c^Rxt1W>ji^V>d)vpHL4kdc62yD3N?Jd?tc?zg&D5( zL|6AnyQS^J76MclLpX;9i$8vxYL~747PRXuqg~xsP(Aq6Flr6#<`Re!Y(}9|;t8PztZ7NB)z5zt~a;=~`{E`)p9B#Gf2FlYm%*{vv zj~kjwq$k+&U&N27%C1hmo$zp^WAAze3OY?3Bc5JH`KfoH_Gy=@Avg0SeI1vTMao-+ zbR>#PEp6(TaM@mrT+`aJECxEMo1jW?Zrnq7=fU;c&IRp^6IyAd1nt=IFi#J1|Iz|I z=#D=mhqvlM58h<*FqjR$fh!fB6aS-xBY;IZM+NX>LKOQ4-w*J(GX51G<&|^k1UAUbQ?>2@`9>^WMJg$2dJ_a#*JzfUO-yw(t zfVi)+hSxeu*ib8pLq3NYNpMvl*6;$#iJ;&UkkHNe7mym?BONc` z?}-KwGkgvBILXR>vSdF6IqQ(igEUqRr&>u)1L)P*&$_fG$0+Y~DG8;VVI>(QrJRXm z*sWOOO)KRrE6Hd{ayF6#ki?gk=OoFwNHQHs{Ao$fvy$XWlJk+I1WEGJl3ZXV z`Me|MbbhfElNvznN`~5j`diVgcN@LA>TqU5OxSH&|GnYtMvRtN4D)iA~{%p zR_+SPw|zxe)wU|p;Y1GdpzQ_iAvwty4>G^aU{c%jFf81-E_DWYe82unNrK~BpLHe@ zL$rN~_95E-#F}9`?^>zGeiv`EbaG@tqRp9DIYi@y0}}|KL!VbTAwinRWYP23Z@{r3%!&uv3fC+(N!~I2EJC_cl&K=v+ zwf*=z4;isc6F384g0?z9)s$TAzhSM3JeJDqd8Pxld4P@I7JLGoD-F6?wl#pxwu;LI zkhYo-;g^HmfDzmC048GVvTY!x01%elq#*men2fDSAN1_5LZ_yJAe zHPAT>z=Y$3oP>(E=QNnuB2=IMacrywmDhsGV6{S&Jp*txkk#;BKkusYiYgWkS$65?JU6I;9(tu75)GfPLzvET~y!bOVt@yi2T zb*M}zNZ9&y))Ii^0cXJgH9;Z;HwY67syskbk!>Tg0UlsGje=_k6UYIo;odW_6+p{x zO8)UHXKle-k?jB&u^c6pvybAUxN>mrbbx5SmTRj(E#_fr{Mc1f+{U~VD9G;`0w4>3 zp&0_GSIF-(NGdQk0!FWmCp-XYyh16}Jq5r93qW>I-ZI7QwUsEi(gds$fRz}4@wKuk zIUhn2;6ZF4hwT9K;K#1oNaEthO^KDlZ79eyL?mAxSx#UKK%i_uD&E=F%W{Du;<3&G zlX&zuCEtap!&^Y`Sb$mzOmMj~c!mKkUkfZe`k5L(_FD3xfQo#LLjY?*N;(@nIQ?KA z6#ko@hDY`dB0;)_pt9V8k*J*Blzbb)4sWvr#v;^JWWrbk!14?j`C4SbI31}Y%mElJ zo@@koMJBD?q%|0lvKL7Ne_+lMia6UY(7D9MKI1uv89^#h71f|h8b6jaCD%f@p~kSl z7yyg`6UG1l%Qs-;Yruk$0;z#H06;oF1_&d-YZUPO0Bc5HRz%t0RR{x!Jd7z15_tk6 z*puDRgpqih(UkligdX1J35-FM6EtBA0AHEouGN50Om@JQKH$sDNM;zx=HCZedAXRsrr8~0iZJB|TTahwcM zOAS{Dwj@jDp*Hsr6Q7WlDSX0!k-ihOU?oZmo03}~DDhS&u$CZqi3w{7>JA&Q^0mZ* zmGBfW2Oyz_7I*0gv{|N~4cc_X&`V z7LYjSr73y;mzF$=g3D1!J~HN;0Oq5@c?N)d&DU1Rp)f^OQiK)iyGT4S3)hbZ3poJu zXuyoSr7+tw#FR!20NIe3vn+{;M7SUn2zA?@2hcNs;#riN&V#zV;FY?X1f)TTCEx(R zDd~LAJ>JrZhFJ)R+%OGk1qAS`gjPfbz*Gp>3Q=Vq;1YPT7C22~*8x6iY{Nv{h+;h2 zdL;L08)+9l55!PGhNZ(}_dTe-T5Q)B0D6h`BEen@Q;j4i>1Y)8+Fpi5h(cW^Y(cJk;RTH?W^*8YiS3%4H{rhmBwrPqXV2B4&EjSPU&4+#CJ zio9pi*q=t@0$|QE6gL_Y5{UsFJ2k)#OE+&wv&(w>Os`!QB=-S_4N%;{DZlMQ=SmB{ zJQF?+PJ)0B1}5P1qB_Fp?S;>q244~2GbChPS|0)40G|i&S$5-*`$!{TGwenKe{cWr z`!`tlE3n|h0a?;V@&R8X;6nz$mj~F`cfG)#V}1G{iZ(X&V7V9*G|4tf?@r+lB8Moi zMv7jM(<>T96Toa!PNN8LT_Y* zU!e8?YVv*_uu2QflsG|v>;=e`0NETCAd!Jhmr%O$@LDltNwPne;K!p%3Q>Ha2_jFT zz!30J2u=e~1{7Lau|%{Yr4`4KjB@D|j(%ZM@I62^wWHtAj*WoU(BK82y_~s~!Y$;Z zf!l(^<2Geen)-1(L?fy%5ZqE@<(Yuz0hpixGGFs7+)_VMaLoh2jBpEXT>zSW-;bVd z4EkpPP!G_GQ7V~~tO*{=v{|I4uQwQ1U?E0cJ*f1ZK)9N>oY#(bS-z?Hwcy=(N#!%V|I)5_>)sDU{{m5nE`1 z>J!yRdiEdcm?k<$J>^Zwze74wPof$QB^vOPOa^>_&1*^mL)yzo8^hW(uZkrFf(J=)xQf^%-3Rk-CmK&{Rf%bp>KT4y=N8O->-o zQk>302kRB50V;Hn4ql3S;e^J+qc>&4SEI(prsQuSQ}GrNzU^-xn>Kt9K&9+siaQx= z09rQ_6p7c?HfWDGq7);btzutwnX*oC@ja>|QWd&iKV z=uJ?8_|*Ytazm%S3s|IY!?C{Q=@pRFw)gw7C{jm68&p#p07TblS|QaSIvjb}E+{fK z0EYoBjl>Xrt5_i*2L{nwQ8GX@EM)<4I?(wMrYCT@1OgYhtQ7ewS=aG~@IaX*Lm;#M+Buo6szWF-c6CJ~hh~ ziFTLcR|riy3jn$GT}TGpnM^1QX)t2T({707bY#-<#5fr6rH_j|qdD-PV<$%t3dq9v z!LJ5%Rs)xSuEW`D*X4;_7w!XH%IdVVJ^fYm6CoKu6B!B6=#K=>46E~8h+;AA%pOBe zmdS^v7Oe*V!AT{QCSw9BIwLu_6c1azSak5|raWxagS0p;tGx;$(y~ZWcBf_0(K4ph zZrGjF>y+nIm=GoOnWoFiLO@5W9gHZl(qKcP3Dg#6DXe6})T9Rxe3=@o2}R2fvNrz< z;?jbRE-bN$Evvl3fN;bTc z#)xMM1f&HY-30=lHR2(=a8zMfn!JL*9bcj+G8O5l!)oIc9__E8^eGo{3Ptzmdz zVBf#8ZMZoBnITBp-IOI#~T3D za>R(oC|_iE9`ez^VAR1X+mzofLl<&fWJt)$gDfHrcEJmf8HcxsN-T?r)+T(u7+9Zy zH^bWO?2l_XAK0%f6!|_Ykmyfm_&`2DC>QC8ca*T12oX zG1ew08eYx*mb^Ji>SM`sgk)Krj5vsIg)dEz^U1&fxuA~}fIWo1)+n4%aCpSdunr%OqZ&mpSO#+1D9Q983f~%jPE)2<1Gkl8exyc8 zL1A6W`}7F{DD`TQ3n@<`@dW!AV|dOp8Wv}N``ENN53-LrB&4I15eEAX> zYK3iqS}`_hA0cfeBm|`~5|;PcoRv12dV!#Agx#@X2qc;5T!ON16l2b`>J0}I`Jn+f zy~7Ym(s2S_272Yig*L9oA>Bn3u6Ry|g|oodFq-0)&Kf^lHS-|3gDp?NFYvZ#)I&&J zu{0}fU86S`wq~V>v2vJo^exg#dJ&*`dI1$6&9M@X=ca{Bs}nW~d^c%U=Nf?G(%#Yb zV2}%^U&~W)0<6Vb9RQ}r0+_&+Pk#?w3cI}lPR9n!Jc$A`#z^2;I_7~vTNj$1qtTb; z2c#=$m6VIGjz^9f259AB>|)^uLRr$sHm0`|;1Wtt3d%ssQ{o_nrw>q4`n%XYfYA2< zU_(FP+yI!SCRW=6$Q%K(2*V5$K-hC&oFX8R=4Lqv4%cCd;L9y$9ljNHsHi+BWtt?Oj3D~`H0DC z!6eLh1CvGidje`Tz@(`{n;2Gm3RIAsm3Uj85?3WXz^Ko!uR)F8(QClRASK&jI1YLz zAm^d)!q|sJ7y*xhnXDQyb^vPfQ5P-BB3QXn-x_hW5<)iyVKiMWw}dskYx$G7Bng69 z8|_v)tc)Q_zG?G&V7o#Iai+mE`RRp(s6eY=P>UCmghw9&Qd0&BEgi>tOcp|rrF+Hb z3!%Jkp!o^PVOC&+$RZ*hll4Tn>FsPlJ^2UMBjiT$)zU18O1c!0*=;)j0N{1$Z4q5? zrgzZP*>t*K^#VnUrB^Vi41X|f@pRb-%!ypESi&fptwR0&A(-8REJ$xy9_pffP$JyH z0iO8jjaG>O!0a5zTuqa@&msv-&XG>3CbTbZ5>a-oeT9Z3cz>^lx33xnU&dKHiI&L_Xqm6cviBdXz$q0r=a$Y*k& z(TAmNR$YaM)xpw>Q6K6k0`joXhYl*#?gf9KXQ#8gMJ`BFppfpGd~w$l^{P$^ivs8^Q^q6fNDx-*9E$!yHbK%c@KH%t}Gmq4J-Xlgh8Okvxr5dZCiEj=aj3d+^c0&ML& zXm5~h#%~6G7&`-OLp0C_?uL}py8(qu+hN-T5Q}Vd6ai3_MT-0N4@KaJhY8~!B&GI5 z!d_7-fFhSUDMwR3eWO_?=%I{>ClAHlQ&!fBe&+k}Q8SBdRaK`0Onh-TTk5$3|d&(NWQ%^W~ZRFSuW zn0R0dFgQV~1t`)O;KLAto3;UfzGyB^L%j>)<#wdX0i4?UF&-@K;*J#L@n8icU*qN3 z`Wh^hT*&uemcEfKTEzuXUolpxVKpsQs&PRWI;IhZ6AmELpbnu1ttFVox-igmp37Xx ziAwy)z!jMB@*D(m!6lM&{a8Hc!9vgG+c)*}aJ_ZYat5X?3$>P$9)BLkz;O&5$G~w6 z9LK?S6aSR;Cz`qm&Rd5bu*MwT`_Um)P9rnu>mPQX0;>!B~?9<$iAP!W-87ivl zFZPW3%utoKTm60tcQ|>L74}Kci3HB26F(O#!&Z`s=fuj!;&FDYY#biGSlM_yM#svq z6=&jEv9e3?I1~5HmtBSzZ>TC(cDb5?V(SB;+qAa2sbHa)#Dt_mQpWHL)?H% zyq0Gt2i73q)pcl<0_>i&7*n3IyF zo~yREyqPS`nLPac-yC7DKcP&!U-y=)`t6ltJozze8U~UsIXNze+v0gfq(0HxlD&6) z=NwzlM4w(2){_Z!dger5e3G|ilE3-6$o0{lz?{)7_Hog@fjOszTI?gRmpu15X^%7^ z^X@Q*UhPi@P#mIj->E^0AxKf5*)q|OQ$jXZk_Yi_av?b1wmtWN>R!)MeEOcm_CYx5 z;DnlKRqB^Wo7gf4$YK&44l*KyjPbj}DD!_LJ&(zeijRqwf)BZa(z&$NxpcMeZZ6!9 z3p?8N>=wR&FA`S1jIlqib}JpKPg#I?$7Z}c zte0Vqb#U(ETG`U!NbgvO7pJ^vtFX1rg$rMiSvuv%$AWVy%LFXF=z0-%ueT0OtRAjy z#v4e%N9zEMFlDkWrLxnq6I@Q1Z0Le6X^i%QK4l&jmA$B~(N=##cmyF9;Z_-ttQ?N} zI|ULx07)nJJYz{(LZ1@hUVPNq`7f>!wf$fAz6HL?>ioZ#Py$2}Bw&yt5h7NpQVmK= zE3{DBiU_Hp3ChiR!Pm%5Nw_E!FsTw=ip)9h+q_Jt&Uu-a6=hf`Qc%3#aOlL%>FFvP zOo!kt|L^mh_f6iUX(qS0JJ@==7D=P1H#!cl}-Rr@gO z9LA==to$g#tn?_ttmFt_rXvdxCg?Pd|Aj{xW^~kaE~x!z&}P9=gjs$^FzXye#bK6r z6k(?NUAV;b=)uf+6k(Rz5zIPAQE`|#jw;OTM-^styJovG;IME5few=_?pLw4W0R8l z2h~EL6F}oJL;Lul^&R(1%o?HZ(5W9kn!aOozk*dY`;VjYyvvc5PSQ~vtF&9~%lOy4 zsw`_&b+-DBx_MP~S4u83Q8wGEvM%aonAo{wQJ3Y&qBwk6rgfuVeD6;72g+FJ*EVxi z*)eL<45Un7b)j`tb&pkLJ#hx!4|QM*8HNA*?|%^ZFNJ`#UvJGldiJYTw_5*Cny;oG z*?i?YcYZYU)$*g6uePJ8y4a7R>O$r#om73aROH-_RF}h4(VRySX0G;O);WbL#T3gs ziZIJRiZClUiZC1AKFm5dlPNGOJc=+YIf^hVJp!1uXTFvnWtdeRMVL)EiZJtZ1hdXj zRNNGsd=z1(`llRKQ*7E%gxSR%!K`x>6^GenM-^tuQH9y;j$n3JxIyOY{2$qT#W5E@ zqWQX*>HEiW*Dw8_{rX>Ocl@tg|AWBMfPi-X_c6x%X>4>g2)sgckPyxp?f%EA?+0PQ zYz&T#<)zp$a`_Tpvh^=rR_@#S+>`fX5f&N8oAl3ey%rheVl5uJt=#8vKjK41EPamG z7k9_-!Le8b8q-5Bdd$jwxBYb470Bp7MvMNLkB_B{R(yF5H+W?9*tT-t2ZQGSerPK# z0pqgg`fD>+evBjFahvnG;qBj+sm&+JH{9*~EjDYevAHKiZ0cs?SNh_%4As1yPb95` ze`?m3cK1>`-WoRU-g@2U+VXag06|;+^%CA5n+`?$)_yAjL-fe>jvI-JmN6P4)Iw)@QQ-`OHnb%{?~Z zAxnSA=7)Ax^{vlp6};8RIedb>pkc8hJ@RXIFI8M)O=QK_;^o+9z^pvF z6oYPb;=~&9*BpJK_)7XPQv5YES-D=}>!Z)qJbw)#EnR-$6dQZ$pQq@@-IpT4B~Cnt z5(sBTTO1dR=a;9D%MbnvNdzj4fz)uF_M-qQo^000 zeewx6SknbVl04Vq3CM%1oUM`T@$405vz-6n#bPDmwFp&$HC~!9qBmSio$)B&}SH9DV5S+W5tijnU+@t6;`wd*!tZv06gwp{) zcjNR9+07y0*P@y-G7PyIoEVuHl4F$DxfCQu_jZ6+03QK^;T$|yNSJ>I2!SZ%r}PWR zM2Rr&!Bo?@tdVQ+D(^YU%@}O+3X>HhYU~Q+p?j&aH*Y$S?GYCj(J<-O4&bCU(i>%P zldTt+g?l#p4BU*XpY?S7(+*8bb$%zEll}<)0MK@IEpGGLk=iw&He@AW0bc>enlne_5-^2^ZG&Y?{w_}`qB*OBO$6+8N3D)jNvRljdJ4R zjKx3kiaeq>dEu5E81guLVhy)K)OJq5uC=gOZ#j5Myj6?dYOs&|7O;E7yaC)5;?MG8 zIszlrEA9s`_le{B0n+6z7s#1dECgXL#QP>@-OeVw=F<(FEb|}LJ{o5G$A7E=iv~Ga zf<7X&phs*mVE`nv#`#6bxp*cbauE#?U&5uc13@E_S@rabkN-{7VZ!~W`zvb1z+$3_ z-Gg}!n6ES)iXyzJ?Uz&gB>B<)hAO>%Vxn66zdFy*{!a|;d&RFtQu`Mt+Mi18cc=i! z_*0)B4UPpNIWX{Icg($CzfZv%dv?v#AvWRQ;8nVjrFTv2*>&`(i~cEyn>Q?#;qND3 z^M(|sP4%YbZ~(4CE}H9(I0Cni3r@Q>Q0}QsbRCL&zq*#*)TU0~e;KsuUD!fQXe#w! z=8SsThmJZxx*tg`i%0YVX@UBZdn@_RgTU>?eU{9B@`>-{Q#f&<--ktShgc8k3~~cs zvZJPqJAfBpDe{iH;(r8t`f9|0;~6#T8kZbf{O90c+}+kg|FXD`gq=n)H`yttvnepB zK7X`AL{=lV4+lEPn_+@Jz6vf^ynQ<5gOprcju_w(i0a)O|8gc6#V>&p9wuLx2OP$G zEM=!_dJHsu7id;vcY#y6E!_VGwvVn9;yXaZ(+D~~$n4&k45I&tXgMAm0;foEoSI?7 z#k`Mz>%cOO2FDhd zg&W*9w!nmoq)uVJYo>-O=xQdqz`QySbKHkfB)_Ss)@+T80l155E!Id8KR^?qy9CAlV+l?K zq!aOqTaM|n@3FS%dAJlbI3O|L8li%P(SWl_Uee`M5IDGP-6Ot|ngc$seHEX@cTUOc ztPuh^F!z%Yz+At0@C2@aia&@1)n`^;s=qoeabK;zz%QPYLW%N_BE*tayHCy_U;W}{ zJzsDJlSCfsAJSi|KRDhmF2vZ~F?7-Hr#@ca7yMM+i}yl$U4Yl{mfYw9b95}tK|kOv zQLWlUa*km4zKwF^H~EDXHF?FSUFqFSgcKKh&uDr6BeMC?3b&lsJ6Rvw-3^m^mc|-#I5)yw!S?{} z1{L~!f!QAM6JP@iS?k)Di8KQ_;L&*-fovJ#*lb`5E}%6N*CiG2A>;^OXXX~5J!S-t z1^PU}^J-FQC%>&V%e_AqGT~w>oWLiZl1&rpWus|7Qp8Clc5&yES+%atEIHR&N4M)L z_n|>a{T6ZFFa!0UfhLs)^iLLq`rezkMOMKQkx)2Q|a$}2ZVr);O z6I2KyWk@ixF2LSNkP$aPIA|io8Y#peu(bu>@gwJ`f^y-FHS1=Wc=W>4rj9eK=bJRv zR%ub^5tA~Ix<}koZh!z?>IPnLLV~~5h~-)a;&0XnUFWJ+n$+cHy8kO5U38#78OjzQ zk4Nu;?2p(FBm{6#Y*h}5VWSF)6nMnP%&Wj~8Mv(|?x(tB9ilN&Y9o^3rGBfIV#wdm zNxqm{{8DEH*2q2hNZS-3`yAu~sRZIUWAja75iAJ^_TmH9`ew=l6l{6^yI4%wjebc{ zb+)*DKN#)D`Ujs_g?C6@RA`@$`2r^fBzUU7X!(pDoMIr@9F9;R%E3TMcOgk$mFY z9vBqvkTch951H%dXSJM1zPd6~bgV@!1K+c`_qP<{(?&v+mecX{qp_m@6Ak&4Ui!QT z?BX~$<>KU~0%GD-a1oaNb3_w8vM~P%(99esL5(1p1VLk^$^gAak0^m(i?|FSd}s*N zrO$w~ga{wuSD}j%83$pde#vG#ZnSTLaBq^=qmyRf6JLKpNft^ve2_M508xosflCSg z-+)gzk%Y(%D7=M!BCgl*13l|e*V}k-@4~(#IwX;J_HdAT9$*o_Ruk`h%_cl#F8p)) zaEaS)lp;~G6ThIn!n!xDk%uunx<2k+`h|(lrarhGoBH4=D^MpfhH{<$tvc6OOWe~- zX;mKaD4E58A$TJ3Aup2X7F&m*MGL!RP#W5`zpRC(tiE{sQ#7!At-on;RQc}>^^=KBvlqM?E5$hZ?nV3t?W9`e$Ox$7%&dvjL_Rr#wcy{^s<3@RL+ioxh}7R@B?Aar`x76&<m*h1xKK&9T5(YKh{F-F&vTsdY?&0V1$`v z(M)>Q!Dab1R7;*p_^-|YTRK-gPJLx{*2qjuX(Og|Oy=!G*YV4$I(|t-vS{|Hq(PjjL4y}={4fzM2CY#xn@0=+SLN5u@NAyAsoTL#6|a5`(h)+9s59F z2#;ZRj#`tk`uLIkGb!5Q(uQrQns2SESDi`Z znY3z-$0Xt|54p3_TecE_u~w0-Jm-P=dj`d zkCI6Yhh;_7@+Eu%NgVT?zov4`Ci-IVA3cS4__|s7XqtIs-UP$MwDTzAlZJfy8RBV( z?>YUjwI!$3{K>0xN}NG+Nw=V>qy3LcFZHJ4O(Lt_R9Xxr-+JSR#GZCQ#?!K|HS#K6!{21Xt&E2n@hW6VAge~)Ewu%J zFW0N=xOadJ+{!^Khj}&P{+$F0Oxof_e)1MllF#F>5v$_~Gl(76!x4~;Zo{6iWj9xQ zYQ&SIy@;=j&?cNmRg5)?*{k_jpP^q+dW|R`yB^hOViVKb zL_nbt)`;G16Tt_<+hRvC$f=#VqR$N^{=~vhK7;AKnA|0M(KRUq!QGLTF$*8S-Rt&; zy3D|^n-GZN6Q{w>3S|4l*<|3rMbzM{si~oGOyu}#5ADkxSem`LzNB>Mci~ueuph|^ zJ4umTkJl%PKh)qKJb~rVOi(=m)|WEI4u34j+%5+I6Te4sFJy48%I?d#mK6{Bx^mC>#cNu~*H+Twkxd z12}ay$sh12m%+0HXW~oXRGKmy>KCY%pUVQv16E;?L&T_>Sb?+JvaP+kVl^@f&e8*} z+#XY-lT2!JbdqIeQv(U);%$M8t&=uID=nLLXK_^?p%h3aQweDl>JzwxKl{Z?9}#rf z%4p(ni4nDVfQ`dCupD~8Sd(gc0$j=FiM@l}=74R~^d#Ob6~!Z#eoV`X%`=rca%jEKNHL#rE@I z`blE^ydvUK~^Ri>uPl@j>1A(|H0-WO&+}j}r+;#hF`>0;h*6ixY;se2+W#P@H z;#ZgcON&6Lh!t-O9yfGfz2%v2L7LU|<4x5UhT-x8f@0?y7xjiE6r{4iBcTT0Bz6qoehUBbzDK zZD{~DczrEcmvE|mp-ml+1!f>+zq&VTt?EQmQBkl*X?T;Vc=OUP!P?MRxYnEza)!Uo zthIXrrVAk3Vtt-|1~DW!;y=8_1~m`}1+Q`N^*~l^Au(?|A|B61K93miE`g4MBAyyr zVVb$=Kvw5F|0DD_Gqt~S-uVyv3$UJ)m|W5WJ_Ys|r}tgPCP!O1NZVt7aKXw^!0FM! zs{#mc^ND|V(X{*EMQUG~K6~-k%g(NgEj|+#^U(J;{Uz&ydQ*cZ+z4?0GHgP~05}Cl zmPAeK)tpjIO`jRf0Xj`2nzGG|ntqx{p@h!p7?Petn)a=hrXJIvya6=ODQXeBj-~xZ zihQ)HP3UJ*{z^lB&E8AJa$iz`zT{QcB6iBrH7H?Z){!frD3A#`^GDsz37wKWAvJ$W zo{({P2aXa5Xg#N0hNg|*1gdCK(|8RiJ{|PbOYL5_J=jCVIg;h8zCAbEy^W!wwLo)e z2H8|moZ5)m{>1<6sZ5+$ed|=i0Kmm>dEYnyzlh)+1DJ6L4sPs!tN_9sfmu21z)UfO zwf<@OGbywX419?;@qx^0gmGeVA6S+IEXwZ#rJn??3+!d_fZ~E>{ZtQ~p>K;?e%~w& zcD0nGR62|!Gyx3FYMCusZ7bd!?Alz$>W$WlP9H;6Qq@mVeWv;<#E^^xw0mv(I7<@( zcdd{@peG4|4)Ho(A2Ya8j(LF2UtGK#v`IeLvCY_d-d(XJHKj zphB0c)Ep3Cy}b@}f}o6A*9Fz}WuRKI+(5OKXl5)&&C#e9C<&a7ntCOD>kPH-*dgaH z*jrBD;vSH{T^ahT(qp9F{{al&<4EuXGKhnnjs9T-GG?KD2v9p*NAau6PPPurSb31x z*fQtJgO5D&$f?VEsGIH>y7`R*+1pyXtfv&n^AFTb?avY6f|n|^_`&Jap7kZ`)PeP7 zvEtVu`d_NI)JxGn$yDtZ57g?j4x79k(XWrs#bWOSDfV(9_IeXrL^DNaB#Ayv^5v4` zBYa3mz63tVy(Mpgm`Ls+md+LzeS=;ziju>Ue3AfZ{0#&sX&9^4p___dU+%3R-b<>P zd#w}phA}mvamv#`sCv^ggjdXf5d$W}m!qU`TI&eo6iSxtxlCD!XJ|IV-lRU-*~G+9 z>>03?L+;{zwHGDk?=KzB-#$=ZW2>onU+`pw;`X=!tt+Irh@QM^2n{262Raj7WYN4! zNvxw?p4(AE1KB!a)_X?(8HM7&Ayr5}5my2I+~O+153iR`z=KacgVvmoN`6G>qj^|A zcaoFMgLf?O)>VOEVGTNqp5}V2b+=+%WDw;;s$5UY7;;s@8u=cI52(!LQ?5rCx)+69 z_?L%&xy>1*6p1y`4M%gpwZOPplK2!xmKw#9IoPITpm8)&0+Ws!8<3OmX&s(oa*@xcr6Ib1?#J%(#%e+0=0l z9%{sR{8hI3GHgC^!&khJmoFZJNr)`N#gZ2xZS6Kh(9**AETo6GxDZDTe25l!#Y@0H z3>?(s%&b5<#jS4{>Di7?YQ#ktP0M0L*R(7~q)YyBqHG{jF0$m| z5!j>quh<`gcU~7D>ZYRT@Hy)}H)97X+1IOWBYVO3`zF>^Jeeb_X=baNzf((jr3OU;>~e8MXnsdtL?tGbs zOuf;X>zmY^_zGMf3o=iIi!-NBwXVGq{M9f1#c|-|iR5|li@|>e8NpaIfik=K#hWsn zVgyk4kB+z^c~l`w%6f#)Ffj>y$;)Yr?S z@vI!CZ0v+!iz(6mp`LiFhZ8$-(MOv`eYB52Sqkd&i37aaZ&lHmcy~Dpb1++cZu~|2qUd)Z$p-KfH#GE z*?}WH#Isnv;q97Nc*QTk0D(JvG{EYP(yHB`eDa65LTI&$|2L!+N1K=|R zh>6BGls|nBzJ(7eZMAL306Nr!{)g${Ehg;D-cvt4lR`-!1x%l-`YGK502V~@))5a) znUXp3B2C^RG-X$kyu}jxu2$u_;aswlWrFU8Ekqo>M%pxqUY$A8LoFcqr7{7^v1z1+gQZ-EP$H%JC_DnalJ&X?K(HLdS)iQw8txAE{@7E=oCcCoe*v z^6@V>_MX&Mt`20?FX*C7K$>LvHm_)61L319|?-D2*Xn7jGR4XyWCI<$1gp(OQ)--Be z)cn?n%Zny5lx+}u9&s|7;F%BRNcpO6ZN1PhF8>4d+XVQ8M`eZjD#z#}Mo`L@CQ7rk z4v;R$zG|t3<(R1%F?Kv2`ceAmMSS9BS%Q^uq8d#Ze+FKGm0O6+{#$jL!(woU$Q+*S zf_h43jztAVg+)g2jIhYW#;9j?NCmn|PglMe_X5G#4s(^n6q~H!bItH=m%B{ii_PD+ zXT%!%Kv_}P9IeVvn;QgS7MFs9V4lMVGDChgfMGmTV#w-go@V&5+6{|X=v%upL!b%++*cr5@XA$`v!)I&X`3pD^VBL*HWhU#dI5MkY z0?1Ho1*#_E+p6$Mjku=Z$Gx3>a?|igrab-n;hiaf3g*Hpspv|6vQb&}Gi=tnr@>p+ zskJWm9tsa4O=-pG)2$H&WmeQWGU_KHe*6J|RISLzKzfD`n1bEH2fA46DA+e(hFaK% zWC{xjYu)KoY`OV#YaRKTR!`~{ZtjMXD-K>0I<^w!Wl^&FS6f^8g*Pl)H*N~RTmLST zKl`=*h9<2WyVBQ2{cF%}-B_7fN#7pTzlALXnfI&#umOkt1p~VmO0+u<3S5 zCj71Xe%jYom-mX5Obc~oHMX^@dwa<+>n)q=wm(mPx`w@ARrTXDt>rscXN}=NoHx{$ zQA7N^i`Ufe>gQ!*f4>%|^WB*2gUTOZp=W>10?04^#1T0J4Y=#pp-X;DeU11BLXrKj zKR=~k;A2UR*oDXN78m-C9QCypzu1MKEsd44V2iW!P&Z_C@n z@CeVEYQ&|Vful>MIP{!S&_%1EMqCD}P|ncb1NnhPsBt*g=xlwoXs#{v8^s<^&f?@g zNS1O-mqQh%geaO%qG$q)N=+19260R>hD6bmkX-;!iwED-9_~iq^KdxHM+2ZFFA8fs z*z*TD;Aaq!PZI>^L@uCisGpkc2m5Cl)VM#W9Qy=lPZcs)>%IYyBxqd#tu+a>!F~yf zy_N+f!L@EHiqy|AtF3B?zup; zfZIudNz1rI{wK>-p-3 zEq_J7sjDd9#A625D<{B9#En>2y@)ShRZitj9mlF^6DAr^Gx0Z1oV5W{k2L|%2b#^J z=JN2bQ2WihfF69}LtqS6aH|rNcXbiK3T_|ETz+Y2x+q}dGBib*8^^7=j9cp)&;Z(# zJug&d)1Z|3_#4O;*RY_nwVsG-YS$~X;$^Smvdd7G%EfB4V-=?T*_nt}gvOx}i}bR; z!KR?CwXZT)PeGR*Vj82oC0!w>xI1m3Tyb)uP;R0n)W_!@iObU#bBevsQ9lvQ87k34 zOd52>K^gd;1gN$*Mm&>G3si&9-S3B&Y*2CvWprfAxrBZL~wy~^asE7)i1KMv&N)t z%&%njI3uBR`^5>eSo=X1;2EaX-6PwBV0J#^IT|xoPv{j}ad4U*I^%9!aS#%nl_W!_ zNq<6Y7%i!QJ0K1Ke{G0*#}9(v&24l}oCt;JDqd~q7dTs&mJ1=t|%C}ft^ocD{R`fNA9)VJ=y4Fc(own)QtKbeJ?ndMbk- z_D`rspj_t5YdzT~o?^}g)%SaxT67>58WfnQr*;dBmydG-)W3$OWdC9TAAk0WP0!LA z!*}1%cN_eWQ#;f&4M6MQk-&#@1+X@PVbbcI4Y<=x;*%r>_LbCoGFO{RBinJhSh|}f z8%QLIob?nR?cU|y!^`kha6_=}Hfx>IL+7r6T!D1Cc}8bWmFwkbF(>ZDCy6rwfk5;V|3^v!=7$#PYXd-)DxjMK6078Te8a(( zy-qwmd`oQ?fpGi?s_RP$1QD$vEw!vb%o>yFmzsM@ZZgJ|AA z8jI8kYBpx05KkVlLZW=j6_{VK15O8d@D7xdCdI0k3zP+x0{x1fH1?`Sl%uRye8lb% z7cCml`IU~&m{1*H-+!LefNtYh5uyx=P64XW2iQ2owaO65gLyMCHRsmP;61I?-h@s` zz6~5N8tRSwUR|Y(7UNtcCa()AH0r_*$H@G1#d4TelN>li449lT6LGEi6yw#MOsp<2 zu|l=v{fCJKKV00z3SGIP)_i*C($y2Yg|~J?5i+fMR-hagId65(R(c4I(M+l^YtqE0 z3alG*$aK0o{srb#MP>zko34KgeeP~7%$WfWI+G4zYo8-`JO{vHlNUr?WnZ01yX(|9 z>aWSvZK`)ymv?6)>^T}YjIcM!2-{rurojlSW+O~LpHO|vSR7D+y_C5+r-DtiugbFj zC2g>M%<+7}hc$E%6qGb0-!nuN1IfMe>otIdXuZ!%h3UjY3b%&nXpk$J>t$lJ|lixm=XmIiwT zvb}yE)cfOO)Pke+82S2Z?jLy~*RDdHYTx8@t;qVAMjRN{$5kw}2=(ZskSg#J3Z0#R zU*gdgX?+0N8h>`N0U{Pa@Is2V&q$Rk@5 zSe}JU82p+kGNI*8kVLxxYIz0GPlnW%A-j{`A3=kG22$lu(h1n zv>r=OkNpZyW_l`P@-r##>7{&P6qm8gXtJRF1^71<|0ZkyX5d%BKg0AM_9OU;DO_j@ znIO8;Mc~TxE{90Z>`c13{ra;GQ9irfbj?09g?M&`!kR!>E>IaqAn|c+G)sZY0+(a@ z-}{X={T-?CT76w)eb-@uBwpVi^l3qDvrylSovBa4FEdo=!}6bwH8@x7QmoeNt6~mi zvYrG?y#iI|%c_Y*DO2KUS8$q5Z?+9>q?>%b{R%kI*ORLjijr~#slO&$;)Lj$SPe2QoiZ-w1n^U7Yy)S8LwIiC;-CA zdcB>PuWVW0F~<6S7O!ts;7XeR2RbqT1TW)03S}?&00Syu5hDd8O2{tBIoDZiHm z0;qk7UOTVlG-r@n9IY}P3MNVQzjq)}|42jqSE2rXDfPnzci8nW((8wRA8NXc5I`rj zT@X#YsHqQX4jTRSuQiahJB+0MAE(z3_~aV;KNnS97_Uk;O$)P!3!gu5h>L{(5JUa* zQ2)XE^{&eL$wS?V`YAK4P^{1Oj91uIxdDYy=L3m4A?(w+J5sQF#|~u(1|~u15M7DL zVIy1W-h{q$YCNS(iO2@Z6Ahprh|6WH8E=E5CgnWSSJlnY@%D}=L3Tws5Fds^+(?v7 z8~j+``Zk_Y#wVg8BZxwNEt>~iuA7F_yPnELK|JmzP5bc;aW~hY%7q{FUHEqu;QJ;1%7ch zMO`Zwzr~^A@@yr9E_jvMVEd#U(`id)d{OAENjWV`^cI`%C5)ly2x!#vwE`Yx4W4l7 z_j|M+Z-Yw$DupM|Ma;txq0NIo;EEO3@aPQtR5}Y7`@6QzY|bHUqmw4Kv4=VT&~S?b z@DLA*h|iis{NYREe10BJDN{&W0T92uCr$+5W8|hgl>V%Y&;i3n)T@k;hAmXg53#n|_)EPT0ERi<@*z-PJ=v6ErcZQEX)8bRnW~c<6q-jd(rON3 z6y(h^uB3Tm`OePMgiC^?LT@!cR zqHE%RU@}h9#GmFe5)uXwM81P>kHcEYx7W1p*6SR$@9^&#{QI-^PvG}o_}3YDA8wuo z2c|&m2lLeZ6A?I80m+EVNk3~`G--4S4S5f+LnPv&1JK;NSk~hk1>xpZdk}Z+s-H`1 zuz7F8s1+07yFp4pV5CR92OlSS?&uI3TK;sc8mLev52DC8fPp*}gAx5!naR;__^w62 zku5e@P?2c)qq*b6=Xc_Gy;$*g*6>d;rLo|KTyfhYQZT@^8$1r^X;&wbYn*Iur!V$K z7@qf?bOOpt0k6brr+9)K#pn+$J`x z75QQkkU*`J0LE=RGjPZQ&rk(>=MdGVZpGpHGjNoX3T$awC8US z5KZ~5-WL)gAKy*L!k0s}3o`T!_HnFT`_qt~*1q*6DaiXjj{^o9=b?DWtuWYugp~{g zeTTYYHw@cZ0llLhQ3wwbkX@bu>{RCJDXNJI^*}lWOWl+ngn?zs?NF!~W3Fc6Oy~;K6v2;N4|=owZXhmR zWq{7uFEErVf~|Em2HhhupujMhkSA`Z)k3X%{Q?E@a~bE~bz2+&XhC*3dPXOp!TsU* zI_bxbcU0?eB3-(Y+fUDJ0M{^#OjeL6?>t1h?GWkqL!`?{z4rT;-o=NBBX(?#o#i1P z+fT9R1zb$q6c0%JwVrk_U?H=`3UR7WYy7u?wgia^P@Y&XbHZDbhihQqJ0GsBi@>8* zg@&-vlD1vy@jtwe2=DnQOpaGtea{es|3aP79DWl}Dl|y>4hj0i2Z1Pm0Y@hd40J*J zZt|L9XO+`H^0C|oxn%KZ11rb7&azHYXkVSI<;nonayM%6D~&*81W8}cY{RKlRL&tq zCcXOjK#%Z2w89DK-hMxI5-QNoH>D7kcsV6KdJK&`KCLa+VO_(}cFRXFWQ^~wl=N#G zlGAIk=xNNq7%HameRp!Y2EO5_MFOO`3n2>6&l@njFh9**XfX68-pfRV5+BZnNFYk5 z%NtCXUwxw_FJI%`Nu}}2cpz4&gkr(76X+rwyHinNpu&OH#C*UgFT*6h_cMtKv@b5N z$*;}dV5pHsM99GSbmihC3S_GzuHemds z?={^2VE@nFv$;7b-5AiIa?5_`xaff-IWpvPRw`2*l}9JTBKe zrIVd$ZX$2=*J&;UAkBqlKr~0IN==0)1b?PHK$Y-R1Ok*}0&>Jg=y0?{f&q>)zcwvv zeg}<~Fo_fl^0&>8f;BYakNA}7&wM|n0u4^WA+Fm$(_j=jRzt{hP+k`8!dq&zYHxj& zKhuV!sZGjb@oojVThIKIQnijB*0ddQW)1%#o*4fVkOn2t>bf2Y=|WfI6oBsq^e#@6 z`(F*SF|Z8>+`Ud4R1(_fV`0IF_T_j_pnV(uhdSbDe>uxi9qr3skr4gQ&^``7lFlmM z(5hmCX{p=~-OsQe`WWMW=q5fnI1O7d)@MS5&4bcu)HWx{U!2$yK4@BG#ua9tV6iaC zNkHk?%G~GkCx+Mv%wO$Hu7mVxcVjU$gtoC$)QQ+h+fXvzogF?zeNTH5=TuF=n(l$v z8L>W}ARXFhtk1>x%tmA)H_G?fjda%9Ux(KJbtlB+!f0Ig z@yXk1>!&oX|MO_O>0-TPO6}E8V-}J0^-~(xzb1YCT=v3_>vvgEzbk$Hl*aYvr>(z% z(hdDqxUQBRG}eTbl$bz<*D4y%(+C8>{2R(rE``##y$!3BOW^~3gM*Y9s8!k93rEJ#!iI7S{se}JS&RV?r~0NHpD;_mEl7WmLe4{3h?ZOQ zLT4ljsTFp0zMUHTgq`oEb6!KnU{{5X;%&W2ooEjinNSh0+;Ho4hKdBkms?lQH8Gjc zjYd!|N$$nYpdGb4ST=UNgD3&(bWaR_qG2(d4S_cBr!sLv^*2zup9C(@PVbPZn<=~YSTG!^tunLIqhrrc1JVH0a$!6pW%Bd+$FCjX{Cc95U( zQ->Y>ifwC*+2i%~bfWzp9<*=iRQrkiWgWJ!;kRM@>D#|!B-+m(MdN4Jo<70tjX#lp z(+1;!Qt~Srz9-t>25UM2Ua3xKxW({!C@DP-pTE=m?3jlBea?!&q57A|e`1II)9{=9 z(qb(9-r=MZ9d-Pc>4V#*YxphGv)iU?_$|}_Di?K(^rzvsOm9k)F7aEY-`_S}!*7`$ zZj&B|-z$9py1#Es9ba<#$L!`bdQ5fvmGuv9zy2?Ay{=f@e*K)jvTgkuern_A^+jX* z@&3J>i~3J(zkW_Xv2Fbt{>l0;ZBxIFe=>b+oAh}5mVC7T2$Ndc{&D)fY^oa5S%2}X zIj{+@{3QY3#5=nprBErLmE@5@GFYi6J%Tj~T0vF#Orv4q)|FI%-2+Xsp9ufEd^xPB zS`%H#IZDn3sYF%ns6<{_g?5l8>pZfZm4dtyn%Oct&F^N?rdy1;mayg|XDMu7FVUx-8%V zFhS>zA^4f~(-f84<8Zv*FusX~GAZoo2Y)4d3d5=PDXwFou6|%+>2DKLpuOq-Uw0s& zm?@P)Q+NzeX79i}%Q8;AAT~x`$V!Tf7G2VJ-RD;d|2BZREe@Od3ap&GEOf%|u|6Np z5VCQQ3&N7I#?c=ernp^-=1}gyAGCWS+6B`2ML(&7kfXVswx|a(KK|1P?GH+{olEB= ziY3%KR_x5!phDLUOce#7A3D%0=<)k;xT0?fbM zM53PNz}YV3FT+;2@etSyg!S7{T1EU!rw^UWRVzUqa{E1|d{U-ElyDTHS)vFV+&H(AF z!o9ynOvTa(SQD7UaNL^q7W@lFCgB$^Tutd3lfboZLpi_BB%I6#YQ)2cUGa+IE%JDW z;UbGm*=I}#!Hl560KYR@PfN#8x?GEiB5ndx{t~X{%O+~l$w#C5#YB7~u%Ht&kA%5& zVnQYS7lKI}_9H0*m=2Ir5Q|+5U|J=wYL}?V)oM{q*mb`6cVjAx)S+}Oz}@IYwtPhNH8-m|{^aOm9{ zc?%ioj)l@wdkqwUihlz;j7Doumu(opQ(J#C8^C zE}xhxStPASPQ{Tq9?=U-jV2gjcc?6l&}mqhTG>*)vYy7uXm_7eT*W%7InHAb`h<|= zEt@<7P;e11Eq_|vyBZkzUR&46)AK@_&N&s41Y*u}a;OwicDcmB=1v|_sbio|T>5AN z10hqT^9C4b_wjn7cnvBRNu{P4IBqT-Ix66kejOdpSjv3KCvG6(I?LKr zP$nyAUE&vKJ?RJ_JnU%f~U9jKSi0CK$?9BjYCBe2huzETC72{$^|a zeKrNSN8wfZ@;8G>HIe?6OITeZ#*o(LePBKyNd12kBB2C;O?2p-NCS#=_z;Za!{$bPh-vYm z3-yt5$A`Ebl8Esk@(hno3-rQQrT5(9}9AG2W4V%KFOyhP}ttFxHW)l=4pc0Xz{gP5dimq_F9h08fbUAwR~H(;^C@y1M>n< z!{E`p4?GE89gN1wml`QkILAih@QPHlMa02ip-pu(^tTNC*O)Nw(*WKo}wukFtvUcs%-u-6uZrGOQfscK()w zZ+_uqg#)gj&@swG{QVy)HZ66us^W6kS8`Hy$*d1JX2SLKpUWgox2W7BB)GjhvEl-Xh;q^p{zf^81fRA~hUA)gU zWNy~BEv3+sj2A5`vmuU?l8p7A3A_ORO)6pRFZJO(R=LuThtkgnk1$ejYWa036wd9V z+!!XGwh>4uPjQcl)9R2n3kEZoVp2bK0;2lV(uD0Q-xKx9_eB5Ydt%J=4*vBD46<;# zfH%O8<1xQ_zyJ1?A5+{JF7cG%ka`!Aeo>!>e-$Pp0?q{iBoJ`0j)04RfR96Cfk>cm zbiOnFjHkFS(OP-HP{$}}XwPD7@80{3?akKPTa5NbC$(o0_b_dmu)DkyC~s)bY-}$J z0w6Iyzuw*wwD%fIH+_6&Q9v96>pZnmg*xQ;Bs~;}yJ3x`qU(;9KdnyE_u}$m!(ftZ zJ*Zod7s_6GRr`ytp}fW1;zM@0+7Y(8=(yPMx{T?#oIuLL_gTBMwDwfKt)A8=u^X3z=_}2)R)MADzxui~_!*HJ+%Qrx$3fx))1R4iYf~yKUxrg=@&}uwBz?u}!zq22(82%=09|8I z&=*ZnnT|(RUeqV(!R!-VpouBvObVq)WVNJ#RTzoDL-CPSn3>wF=<3*g5aY@eF4&c8 z1tokq1sa~7VI^fyIK!uqVd_kKcuN6Hk**C?bL+Jnde9B?N=AQc4^0hvp2eM6S;qx` zM+L`1pC<~TyzkF3FsAn=><2`-vW=s}NpiI%Q z7IU?yBB!Re4Wt$-v2>kh08n>)WB`pqbA-0>@uOB{71#0UN-F4t3^Eja10P%SVK-o{ z^L^3?VX9dW#L<&iWqslmm>l2^n&)w{WC8Ko2c!1bBKXN{m`PO3yn(h<|6quAgcY~s zKr=LyZCM&fe!mukV@TKHxhOUO2UhZ=e{z*!((hzNLPwA_c*7aC2?S{{=AEnMl?ZY% z=QSY68e`ruT3$jBoCYo5Iw7wOUFSz_yWf85{o-?Z4Tt>Tx!^NHrZI*PpQ#9cuS*oK zXy#R4I&Xs|idQ_#A8_V|Io!+=W%|@M`-oE8)!!jhaGzVLM=ek}&dVYQy*cJ9*gKF( z>Yqp42@8&8YbaN_42HbYfKfwTUkYtv-P?o`7JUkmOsUt~uErPM$r$SQa$jZA!i z6;6)Efd=ouQ8RYYLvPU##rCnGD{Y5g;3c-uA$~#Rx-eH9Bv!f5De8&;E_8`H{>>B1@T>57Ff4ILCwUyNcYBj z9a8udrD5W>8VzJ{^pMvP6#cLB;K_-O5>H8OM>4<;g=%6v>Caox;As*~ck|TRJUAjm zoMo&(X#f=EiEH5Yh+j-aeh$~FMb|MC4(N6VFX6cWYR`rio(py1T=5j?dk8lTUWgld zs^iz6yi^TG+qppo0rHnXOfpYC26`D^*d9E^=MkS{z*2hl$4GFjfe1a4fyw->h zAN``fC%J?%LTh9kKB$!wa5vE;94bZ|+w6#za4K~FyCn8m@|eG2;=>DM#m6Fv*c=Y0 zE`^%K6N$y{nGRfGwJUTM`D;lAhNbhkSS*`eL+=MKCXAs~0;e!@Ij|LL`JcxDpI-C& z#ZKHohq|Jblc`_717N6M`_(D-S?j#wEUmV^)_U5W=ktn(Q6CgpwX&RVl(XXu_RxE+ ziz3w9Mk-oE{r_}X>fwvXuCI6C0wqwAhg8{VcK|C*(aA0|(a_}ZH#ycDpF@7Eb=Y|Q!y`68Y;fcS9Rc@C zLY*=kDSt*O9a48Sj;gcJ(NSt1yU+EG~QBy44l$rWhnsYA7m;nz=4>1z+M+`LB zA8icB+E0HLqEM(qBm82dL;xk%q~quUc}nOov7GafKaI{-FULa7W`$6picW%^Ko=X} z)8pEwBLH!SMVS97PDV+ec$)Nq3Sh1!K_Oj1e+deKHorq>Dj`Q33VCWG^_aQ4Sir+R-%?#ooC_9sIcihhCR-s3)8i6-&^=t*&V)k2mC39&ZG#Pn z70VEPAw1}qGu&Z{1Lp>B2A$EZ9A{$%p83VKxRi95*nd8nGchR8T%LFkPQ^e^JQj%O zXVAFv=-f0jO^Y2txO{e%qZ##UM-5O~+D;fg%JbN60B=v=yPa?yacgeeor(pikt`!E zVmyd~0A-Cdq6Hw81?uJZ@bP=RVkT><#6~0cBQaoSl7L3>C)gGm$EPg{MN3`z!TCkC zCKxXxJT#HuLBR!L+%+1qD&FRupqA(aUT`xQjf|e!YYRPMCI&cJrXY4fw=oGr^1dVzxWNz7N1xI^-ghN--kZY zR|E1(C!mH2t`e+Pl08HSzfmh^fZfq}#Q8WPAJ!35>ay_Y3{Y->WB^(Jb6C#Wg`e-! z0p$j#dY}c37^{ze0wxMd3)Y-h&?gMG)(wH=fCUi9^oW664zm&*Oyy!@^m2A@g_t9Y zAjxlsbOhlrF`uWO?ZU%f&erzt3;~T{q;hFKS6mMcql^d4ao-H# zyH`9GArO#+iorv69+Fz86NX{429C6%*qn)ydkHJzH<(-taSeq~;7wul3Z9}&)+f;~ z-UH?M0ygC%U=m8_i)oiozFbV@g-s3B$mr3hdp?F(Kb|n54^j8jL?t()60l=NfX)Y` zryzxl2OI)aH;ljLT(tBeT1t!`JS;K(tw>58|A{CAN)U7knPL1_CdU6pqU-Mge`)+U zCrKOsPYmOK1sV16D?cN09VS+zdY?F!I1XQ-O4H&OH=&;Y3r;|B6 zatbcC_XkQLRdLcE=9{i~vX`O+RP&R*%!U?b5d&@_&_Iq25=D37B6op(Uhm(k0ikD& zPt^0mv$^PmP&uOY!7#jH2aFBBSb|Acp3|WcC{ym1WBp|njf&0K>BJVQK;9oQfF|I^ zdg5Hs5hTuY-TOV{ymHov<(y2EbT{ycq;@X!A(QxqtpK?2gOQ?XF2x!N({QJQWN=O= zal-(X>BSXu(A}N16J;u1Ynro}!(D+oJtFgJ>Wn!$7Q}0f6eAseFE6-U^=M9@uP4c` z?p?&`s(L6c;i|QB}ucHrk84X-ZN* zTL^(5Pp)&o9$hrSCzi8QE8!~uL1BSAe3Hd@w7qk+vG+PaBV8;(= z`AZf*^btE(V~cXdUhc1{SXk@nPJ5W8x#AMohA>M-a0!p42$?mb^cD0P>!hU16yT!j z*_4j1bir9MyS1*Y4x%eCsPAKj1ci6H-WM!|c@Y#QcGYsRqMYFAicPaXC!-Wwh6erm zH$Y&iUr&Gq+NHG!HL)Xzho(HLHP|mr(b@5$WV|8}>xD14lHNu-@fgtLnd{jX zr3*-w<$J`5D=~;|)M=Qe_aQBI28>e}rZ7&^Tc-2LGQ9(q9xT(vVX{oo5IGU(nqC(U zuG6j45b~t4PU*hwH1?_Zl`g&qqGyv~-L5EQXyPsxYaMN37I)2LWKCzD?&iF#^=<(U zD*m{>dL7OW9)``t8<7K8&5n-A)2Sj_jypF~4*DhufJhx+5p1ZV!vEYzeeW!3jo|f=4e>}m41Vm^YTjLdX0e7|RUqjOG zuPn$S)72}Mvo6RDd`v1p3o$i|d4Qin{{UNJ9TW8G8u(lQr+en7hYZ>gG0V>2vcb?gN7Jk3u@ z*O8?4Q=Y}j342nSFsJ0FByEIe4}Qw)95rxM#;kR8FMv<#JFx|J@fM6>FnIVYPpP5z zbD@Rn{>mv_o@T53`*Bc$UW1wgk4#fKXXCR_1vF=)S6m4_L>-&#Y}^3(m2joN*|?Hh zhB}*uUn{5$LQZS%Xw3(k0oW}10@xicaaG4nfSc7TUS|@;*6L-)!=9~zK1~kRapg6* zkAciY#6*SOmkMsjE{+B}v6Ba3`O?hM`34+&11ao=Z3&$de;wi`C`EEsoXU-HezI8J ztTIf@fzE?QTVCjbx>kZJac}BuS01+DI+Zo??Ap~Y!^9{p`#NL~^sNzh1N0ijF2g5v zoIQ{Yr631V(uF8#&Vi08>eFZ3p;;afEp(iW85OJz$VT@VK9}4 zkP)vH;#Zt*hvvIGw!n-rQZ>2M)xF?i5MmCjdJa z|9aFO$O)Y36N8|iVeCMOp2~0Hr5Cj}?jKu#+ey{yY^_=DSok_ihBdMP>FNRtpAzvm zaJAyS*2qlymW^X1AgzRF88aKyW{r?{oVLZ`mgM*Lfn5o*48S$N049)_sR4-2KQj)Z z5Ad0GS3V0pPy*sy^6$faaw<$$X&)4bdaWiq)%38TrtCybH&adUf5?gevFD{Tkv ztvM=#1goPW=%)VCAqP<;`vWG5;C%~Y_tl`XUI0JOCG1j4t`Yx2ecFydYu&#A7-b7p z%TCBRKF{Ux*;_UusUe;7;Cy88iFbhZM(4o=Oa?AxgI=Se5)4-14;&8tPzGa!i_PA0 zDRKakcJVnVrABPJ02QUN)jlocBISS*v@;^?jFvnURo$Wm!b+E7bdONDFeB7koVW-D zaHnfDlV;#;d=F$GR=kyN*JL@l37aBVzn6^U!3foGdxDw0=i z``@WN3rxD=O)r0MqI`hLSBM_6I52FJzA0rD!H7Ix3}O$uJY4)9ye@%bPV5(CpLY}X?*J7L!&50MYh>=ITK7|rg-SEDEFm5~z7G*4K8xL^{E2?~)l z@*n~5c39N01-Ko$3^dPR0aM$iPg!88K3`Xkpk#XsH4CHsL&iA(G1OJrf!wXHqY_9f zk0?eDLCVqVCcF34FUxG9^)tVC@ian_Gg*e1TSIMqaNSV9Py7_!HTvLs;vI^o^80v) zf_jH`p3NO5 z7=X^AR)?4dQ;Q#NLiIIb0Z#(m?F^j|!01@?94!&~zk2=y2+%5qcojI$KGXBWC^)8= zfd)rQ=2>t9O*(~^h!Lj~A+l#lGR`{*X)*t~sN)^*5==SNxE#953%fqVzEcThXE2Il zt6hh2Q~D6VY!I)MSeKFSDfmjenuDXz0oZbbNG?ILn;_K(D8w$5*9nWu z0t>)f{|G67zH*lk<|6lxr=Rj7~eC7_CjdyLl)-R_|6uiwdOjrrH0|13}4Jg3jCAj zC*6LZ>#-UX?_Z#w27Gyg=rD0ka{s&wB{(|Mzj(Y%R}yw$T)2{#B4*yF2H`9Khla-9 zzJrU$m)!qD?PrSbe;7^OOrR#?2CzTA|0vw(@`%r1FM_=vdVi5i+$;SaNnDc0XV_ol z5=&S|LcEs?vz(DSGC7_Er=@rF3Hz5^;!PHN$sIQKm-4i-nVQ(2lbXKgd>&4`kE!Ve z+`B}1ZXfmj<`Iw}6Vc7_zGZ!Fs{R^-`2wKn(%9i9eDh zl(yPxt3S0`Z?&yft3go{!qvOjDoSnfh7(g2t8!6f|KIPK=h;gVF159vzVG|z^CA1p zedf%WGv}N+bLJqf1ZA}6%N*|`SEt+aYmb#?lVobqCXUIa2McWgWALgmSteXF#diF_?6js|LjE7 zdzj2sTW@grbdSFl5>f-%LT-3dyf(pj_i@qoCS9+2NYI6!^B8g zySwf_#PCqW3CPg^F_IG!iR)b1n4oyaZIgMr`bb+`G6U9db5STKrY>X_F^?Mlpc<7? z^F>x>ulfx(YD^3A!t79aF%1Z2_O3)si3h{&# zzB(?N$-1OXzV<{b-gjp3_|h(thYLPt7L}<56_9nBQng>g+VT9~`eVtC-ip6L)Il%WXl_n?@>s&C7rI)ec~1fJdS~I1{Sb`R>#=z%RS+Z%4d$yyF@CrcC_%r_D%$XA z75yNzuw)Gpb|1*BN#=j`U-CyTV0Ov)6lO;Ug|$bE?Eo9!d3 zxfk@;GKO)fw@5qnK~OB`{8l)JqP?vnfRAJmX4=6!Sr14ft^*mq==#f9ziDjZQr90$ z{WY@24_v?KZ?}P%il(@L@Ck$y6a2+VC`UYr!%1lHRfPXu{LjaK-;UO@C`Efm?Uw6u z>gi5vR2ZE_Q>-8ItB3`5B zHO9@D04(IHqXj$LW=Ii7^u%NgwYtWC%N7dkaM#^~xr9js(B_b!`dss2uwHQ2k#)xXRwVQZDmEk=cemI)npSNFxyNGn zA+B_L>|#cJ26WJek&eVG@lPDr9?6n8V?*P6_eT3SjL8`}HYavyd~Y)9Y#5U}a%^s_hh^T-YTTGY{mbye;)yDD zq^uLM0Q@&?DS(#~&uwGT4C=Hj^Q`8?6P;6CFPk>$$)HZF@~tDxt{vdY5!-_i0#=Mu z`K*I$)Yp+dH5_Dpn%;-7_IREK6PGJ-C#84?`8(*5lktT%N9^zlRfDF2$(TdsirSbb ziq6JzJJ#v>tzn_W;Kp#6y_Uxt5aT@1y5Rt{j5^vaVfCtQ}XO>7i~b>p}1e7)t9Az&^2cv}FB8rpzMfe2}2p_*m3!c(084XfX4 zMowQ$IM4={f%{#3Hj%AW<)H2`AR)SjWuFbH73FCx0()LW@xPPV#_kp#$OjxV}T>;xB3*25a%51ewN0qLtInMM)fQB#7WjEoD zgp^&-AB{e1=G#~Ll)mB#YQ06I z^&(x(<#!R+|o5*iSR6 zfg5QG>!IoWaopzj!g%8dd{o5ucAMWj;rpW>{zZUc-gfStURMDfj)Gn`oGTE=T-vf|a;2(3Tv>TV?k@E`DdWUp z)(b|yMJL1R%Mc5r1SC5gy2gr)0ahZE(U)UViU!N1;0`x#NPumpOHml5UXA%#vWC!U zMVAs^s<%P!fgUhn9}6d2m1d_l$*w?2%m+6pj&*q_mgCr4^_RRsJn&csbHQB5FcV=J zBQ<#F@C2ynS(j&vFLK)4wF@zJ@w5HZD8MN>cMo;qw@9~0Ttn#g;6`wQ=g?khqP=mE z9WTo6n0?okaCkDizB|shKTh;Z{KGwDJf5q~8H>c-%s%Y(b7rqV{)vd#m3XeDE$8!J zC!UMHll%ESY(C!VT=I1_8mw+yjNG=^VV}Eey3zT=T`TZsw)=H*t`LxnB!HmN_=<=D zi0$PzHzQDh=^q|6e3;F;E#fu8J)t#d3`ZCkKFXMck4T=n7rTbh%>sIb+9Hc!R9gZD zIRH1YOw9LSXZM2IH9Q6N?*iNZ{dG3EAkL|6{>=5`L=@H!q(U19$e)`66#FVbTobp+ zCx|ijl5k>`gz8TUignyH$Opx0;RL`J#&WvOw?6pC)9VdW6^$t+oG)IVC zV@$F@i<{*10*48jIZ#kKq}l*Z5PdKBop}>64F>YA2f?)X)M9lu&Lk7U!GXfqf#7FGiB|`5%dQ@ypVbcBLaX0_1fGh{_n?)gQ>BJPj0Jwu_i3~3z>?n zO95Gz0uW6cuhCfKJ>;W>{uca#H^C)>v4_g=0SqsRuosLm_QTjoj1^VM!^ldrilJxA zP)TNKRSvU?pMxLJZ%6ctkMzbCB+hlRnrAS-wnWcTXKXgv)n?7HCg$Q4FIvsZQlPea zhm1`CSVyRHta{?5j@ZevubqVUgRt*W4`7>=35yMogwm^+07Kt#qIt(uL<=e>svC8k zrMukAF2*bX-{=aHTr|i*o9Kspyg^owx-Rf1GxA`-`%mZ5_dyQDsz}erBoXarP3X99!V<8`sS9FSJlzc4O+fU(gExm+)3(pa7w0BeeV6xZRb4Qlv#?DX7rz}(hu4oFT zF-MODJXh>=nb-N?2V^Mm(;czGN;LyLl=~!q!nUU;6?S8nUt!MZHP%!|3rTJ8V$8!( zu>e!}V$8c(Zs}R&U6y__-pQQR^HTP!d*ys$^1n%pIp}$psrASSHcWQO+kYvFAB(rY zYN+t`cjtHF?PoQXC*vEFRdrit!sFvU_0w{navcb=X~6A68!+AZk!}U#Y&clT?r4Q9 zPA!<~6pQmbSe!E})f~i?m4|aTtLajv1B+9k4uOPB1_uimH226(49+=Trc()F8nTCR zXJEVPo$A3@+$pcaF3ld~pfz0?HuV%gliypWGlQS;jSH*iCo$Gjx*7Zo8lMG*Mid>{ zC!PmA6#=H>{Mx)LPBhuAnZDbheFUuh>F7MH-$t^P@$p6%6I^n zfnn8zl_w;qSybJW`W!r3n5EtCcG-arktEGtIta%;y`djh31qfoI_c849KvSdec>Fy z6$^n3{`6MRK}(sQA6EU#1$>}`1{LYIVAn?%vGM?aD$>WP6QNb_LXlpB%0nuMzbQrf zm;o$SK+JkuBxSQj<%mf8^|>OI;EkZn)DB}im>_p0ZSdhu>;z-#ja+S<2S(4h4S&>w zz+;jJ*!S@bKl1q1E{uT+ax%5YLxxDscd6q+aQJ@SJKw{>#|2UW9Un9UQ+d;5w3EMn zm3KLR1ERlohnwST3f+CXyZcTgb2`z#KJRLh#|h4g#wzY6GlHrb1Q*a2=A(kW_y9S= z>K0~C@(Dp)rCSGU8bSrG^A45 z%3bC6J)}w?saHMoR4zv6V)vS({e$YIpxGQ0oH1wHV3dj<{WozvHB%gC_U&bX8b`{j zO8~oK)rwV49q#2=>sPmdu}sbjsA50_kd6f0ee>&>7km|>1sv}{0FUHupmvGDGR#!#NV>_U0`totAyP)}@ zR{So|5<;jFi_OACKxjCY7a{aWH~#w7^|SdKP<<~J2njCc5jp~#j%FeI9J$q>E7+e4 zGyBum>`z~_KWl+q8U48j*vS4IVfN>vOLc#iT(s{QnUWRLoU$qM_<}!0- z0ODJI5_EWN(_MQEfI{^~C^|fGYWx%Xf_%|W$S@vOQE3+Ph5fpZjR3M5&A>Bm5v%$L zsu@S8BVFn~M2a6lkV1DYkCrQfYI2!|sUzNQr~1;ply}7|D`Xb1A8L4ahn+!T95ZzU zCS&{xt~!|Wrc$;-K%nBe48AA zQDUV@a}#Czg*C%o!D^T8k=I@S0}$z%?9d&0XPRz|vI;_rtTR{b*MZfyoCm8IuteKO zmG-Ib1)pUaovUyK)R}NB1;+J2Bow+ZY@?JGRCBZv9S0@S7;rP;csL8)4?|)_a`?l_soTMP*4>SU65Y$8x?77XK1CH{u&YZI#a&b} zgj+tV7zaJM^}Q0`BKAi6bCRBwY5ASaT32CnRn+aMISECkNaaJjsN8K;c(*WO*g6)y ztU2e_`uX1aiMWYvE+fQ>Uwd=ir6BUJeQ19tKLff^UVye#rUAeCHmqIsk8?5PT|7(X z8vBMC6vl_uZCKMnLfo|EU1WIeIfKHWh(L<62Zb1HO_H1p69AB(Apra@=-qq zM=Dg4Zb{%Ch!qt!j`}SzLFx;m?ovQvP)mVT$n7fvjAB#6af3cjF z9r14*?jKT1j~@6F-)pSg6JNV0_tV^0Xm(S&mi?OVD1BpYq;wsAU!QwXX)AtTn|lGN zX6ashubVri^lSXK&Mi-@jc?tv0w-&Uw$csNJLAo{x5nSi&3&b~x#g>zmUkV{cz%>a zrRQ%F&w(ff@cUvZT39%g?YM`KA45;_);nlYf;&Lw$C%O=tJ}E7*~$1?_-{e){5S?& zx0s4h`avAR9i|%rAFKeo=U2aVq@bUJJm5L-IP7An7Udk>d0{Aj*!m!9$z9J26T{V3 zKVV%!CoqdgjkGnoM!IVcLs3W*-4>4=8ojmg8avOM8qD`SUdr9QxO!x=XKZogtfk{e z!aL820&~1@TgJA9Fy6>=0HSE|S3P3ga29jc zq~a}0J&V7Z;l8Q0Yz)(5?-Nk#Y&L8=MX^g4pJt0)SXMv&k1`+}@jKLvZ?`Tp|3ihknVTebFYHw9m&1C7^u1F3m7G2I(0NG4dTpN)xx!3p zMG^|oV!#jTLoKBWnz;%p)CBnyv4(dW@>|hW$X6$%n*oKp_hHd&%^{(oBg@UPK|Z&O;|HyqIu9Dv**ms8O&Fx;trHU$%q zqAi~T{vv!A5~f=rO(YIaY$$Gqo;pAg3;Yf4X)njb(?r9e#)Dr50m7r2n{c~$OU=>x zzG!0d&9=IY(SCx?<8eNb#^T34Rz2|i)i_7E2tT;`+O+}_v4 zj=~D$iuRP{e!{*3(+V+a5Avtc5ll{Uj~LbBfnuQ>RzD!D54%V zf!JZjRtf-LqLi`XSbVkP3-c_yUKh(nSZ5HifsxCNQODx|XdJBn3e@v5xn8Jt;mk8~ zl}-w%Fk~E40C(5&@B$XTKnM8A@FQSbUry~APAqW!6alf&j4yK7Vn0yZAYhBvt=Ppo z%Ki4}#K@^qDN*q{p~kNG_i|%Jk&$M!S6zhYNU0gjR}~D7GJ`%fUJ3;w}v#qAT&1Qh7zBH?w;g+rWq9a^aps% z&m-x47z1xZxxE||`DLmJ^LcKaO$OHJTr;a?NjKu)CT+-brS9kDLMram zd5{6w@Ro9lSR4mRW+GekX|SmUpwfl)S3A&@*CZJAQ=IGbDB{$YyW$H$D6UaYgT&NN zASt`F)A9@oR(B#4ry)9HdXHl;J-vgZP3m&kw&q; zA=UG6Fv4pbKnEG$%qsDZ@SQB?gQ#>L>wVB33t48h5~c7=eQZ$nJnj10%7SMNGH7}n zl5UD7G-56=Re%NQI((J;5n+>QA}?KE6M;!{yu%-u>beg6I1SdO9(@zkcF->s> z)6*1{Lg{I`#HT*ayCB5XM31PZqvZ6dxSEK-$W{mu(;h`@)y&1bI8*%SDLJn4}5@)A%x8 z3Z*A$xLHY8_yV*kz`F^;0GzpffB5o=ERs%Lc>~cIUD?23x+^QCP`WD*=t{VO{KxS{ z>m%}j-|6#kFA&AYS%!^*9n`k~$ERhqx^`7mPK5)M?QPpJS9eVV`$tyW{Y1C(@Hrdb z`FCD`uchMy1MixlQ+-Ii&`k9=jYK)-^Wb25M&iXxU&4*o{fQlKT#q!pyNrokhh1>&PN7;_;=?%Tay1SXm=YxoKl5Q%(u^%5 z3~QA4j+J;cdl-}aNO}cPVVw1E&`FHu%TOy3L}f*gHMA)oYCYbpHFNd+`@ciR`B)fw zgas-O2TRr#InlVlN`WloQQwDh2mPyu)+TybV|f79r+whTMdI4?a z_<$>}?9t=+XRt9Ul{F$+ugc6??ul=;qe#e;SPdPJa^l%Km>?{9j<$-JoHl6>92B!Lz^tL4uLdT@xl?gfZR1 z)u4K8JSGyhBsfY1D>u_h0K_i^XcmH_(5xJG=lJu<&hplDodX^wvuN#y5EfH=Gd*Rb z_hmG(Z+Xk5=ACTP+bEt05#!G;grV=XgBJ3Xqi)Nhs|d3*^QlV90kQ^Bs+Rg~(T9@YRyqvoe~F0r zn(?5EJb}PsYmL8%D+aOdBJs8N05LeSlUR2aS_Ovc=Ra7cAvaU9yY!d)mh3#bs3qA6 z`HT(8mh1lhX@}~OYq$-$vLw589do5+yD8j2IT5rWe+i_Bv&|h9z9sNE9P%7~e2^ai z2`xWR%!@C8jCY-SlVpv@p***UUDk>47_$00A^KEAXCV4m2GfXMEQQjDK2%qd24SLw z{6qbel&lBm$D_6ZQT5UAqMo6%)nFXoP?1=bSgYsiTM?!IqC%JjbH6&p_%mj}M0y9* zITq6Uj5n+V;QVF4`4>MH^uRItKDMiebOs@hR2}%RZaavZ^;Q-b>Sv0ZUR?D_VGbR! z2qK8MNv%K%UF73xEpFmK8OLQN`NW7I15y+OPoE_U{^0%nlFvhAVRXW(uYu(mSjDB0 zfmLtI8c1W+ixS2W{&%#WbwnNEXA*gdN%_#qSH>6kY|(RgO&X7Yyebx-q7}L;MQ`{< zbb)gHT_#XyPAjEHijFv3NePefDV`jh4b(W{H^BI1s`MNw{Sw#$y*(a~9TI;U7C-cv zg+@Vj4;95Jeu!ri7EO(ydsn3z*cXDGrE}~L!3wM_9T4o%z`-FHI6zx{3c<=j(7Hr0 z;8~$1JN9{ZzXw6*8?M^|&D1f!Sx`iz8l=82e$|7NW<(fsFx#QrXYeE1 zd=^@ze$(l`1ElA7na=qMv>gLOz4ZL(_FP@&Pq*hdK)U|`>7E0mJG)K?{IGNML_c72 ziPh4|8AyTS1;QWceRX<1e(>}IjAlAyOBK-L-wS1%IsUBrVVBmSpjp4!KCIjJn+~PK ze$(-k__D}*pR1g)2+8({M1tO>wKu&_dW~#RI+`FZa9`|_%z)2WZNEF^l)i=D>zQw zwny4##m}Oh66wIGR0p0b-hwNu=mdr1qf(EC-j}P$F%=V zOyikFsBw;6+nY2v%W5~qb`M(@JQrLoZ(DfP#5ipHu=w1sWxTy&6 z1eMRWew{ES?btc)XSyTGr&KCxuz6c|Q%XJUha&lX(ZdE{vgu1q0YA}To4M2uD|~>0 z$!k-|`CTR7YbJxmg0ebbT=?2xPoy^-=XWRDm7f(i1#wukrB&XA=Nk1GhsK3V<7a#9 zkp;j9$5tpKHUk|{tRQG8{Z$q;wi89VsV8OG7NYyu6|4>h%pR0h<=6BvR-~%Er2Re( zvw_AfsmRNvo!kB<^t1i(3ixq(yn!Hdq4=WiD6r0vi*q1R4$$$1Jbusu{D`kfdnx?4 zpx(EtMEKu$4b&2S)mU(k&|mD_Ts5e9=jKV+Pdm#$lE0I};)!=So=%+qoruoh{C~_~ zn)Cmm6iRdc*Xl|-x0yLGVma@{ceWSE|EtUaCUWL}>;?Yuwv}tv%+`hpwou~Bw820h z;81)Y1_LW~!3?#M*B0|-tCem}RbGYKxhf0eU)!TS<6q~1!Tvfo7SMX84i*Gey4ZBF zGQfSGlm&spPGj!a(RZ*d(S708I1i1)Q)jp5!N;s-NWic4wEIbZT5X*puC`#X>vWcmN9fIZj_Z$pIue zfMjmW5484WYaqv`ip_%Yc81ZyOEmh^yc`~F1f3Mj@YR10)q05-RSrQ1rzPPJR+qr$ zU!Oo@hELgJVFVCjIxzx5K6Oe^V3G-j0#hFs589N*j6a3cH(yIRu?_lG?|XGb7rmc_ zK&JurB3#%(;{`ZTb$;UWiGKdwM-$A@Bj4N(}pguyz#e~>)o{a+sK39FxC>q(q)|6@mckU5xq z9V4=mDxfpgkvb;Xzge=m=#cRq@I9=4t39ZFQpRus17;5fcwzNDR2np*=$9_39&}0=9@eZ@Yply;djtUb6BOB9b+N0D$ySjX zuUFM!L&kW&dwWALXioLcQRZyo!4Aw}tibFdR5j`qIY`|{-}hyOnnoa?zax~K12>pZ z-y6d}80;}#007r_Q$P?PjxE{$VZbDD$_sk-? z_~`4u{b9*-gi*r!Hlx0~S)Hy5ICl3|s}fuCbqSy*>FfSC<8-%EU%1`epIuAzW}T>} zbVIb~)MWoA>8=C4G?UryPRSfS2k+MQyaxu?3r)-55hi16y6ds*Fl)R!BQ8FgBez8d z-bEM%BRlT?3w~3O`T~&JZ>v`M!BRfH_3MAKics>DhtXi-l;HqK+bscit%_gl-&fRR* z3iZ01O zZFUzizV+Syj)s8fw)(-_GrIDx4k0m`ivh5cfvoSwy1AZCyDcyrJ%}A~+F)WvbU>$x zeFH0qc#$~%70j6~N#*&{8G(Q<npZ=k7&t*#kjhc_txh}^ZbKyAcu zQ4~0nWUaeoUAk)D3&sfiO;~hu#ls=8-9V2&q z8OF18h9l5EBzX$S0P53TnS#kbgYlvd0(UK)f9m99|2s8x;N`lSjObNXbnFUL5s35* zsw);+EP8LuTnT0_TC_C3y)ZGF4b5I5hEEZPZV3C&$tdV!!IM)3|H8U>--1`z{mQ?Q zduPgh^BHg6MFfPW4EQ=CW?)j>>dp9Y%6Vs1U_%9_ z%3nCNzIZ)Sw#V1t^|1vfLzwj2qJE@%bT&A*LjdkX49qvP!8iDVUSahT$T9ZX#CG`i z&`P)B=DHoT+*9z3d&b_m&rW9~G&!-t)xD4xE&Wq%z=5a)$UJ^3;4X~6+$|c{oc_1O;8w^%wEe0n1ohd?o?HudIcJ@t8=n9@k4Wa1i7CrP)mSD~?( zpa}AhAE4wO4KvankZSKH5U`Ru_8@ysyDq;GLLiDt73&48WF@+S#cG=^tHO@0H94{M zsu1eSSWk$Og@j*OKMboYWhN;?Mtw7-n(3hW4y1u5&B1{OFc^VWyvQi?TdB4S)Eq%I z4HI3F*rob_3|2yh`x$VO4i=iY@8eOybGBoR6oi6_?o`wJXH@}-`i!6eX_EkNe+^Yc!d7ML-rsOX+};)2$r8XpQgfr7Xz{?S|) zy0f74jrl`M+pZnbxJ+uy-O%9ev$Su6Yrx6REuHLGP!``+R{dW4QK@9N$JNK}aSU+x z?J?W^X^Xq>c*lZxGnkXI>Mc$FQz1i+4_rtt5GYe;*<%1KJO%KPwt1H#&x>yL8B}# zdAB-?X|R`H{2b1VyzYBioGplYxp*D0#b*UyMBn@j6hkk}bg+eHut*0B&0vWR4!26a zS^Ns1^MxR*S3p+m6Cf2&3yeblhy;`BZ~9^vKvaL*7kltiPMnGFb-I_W!y|`oPi=sS zPx3GjxaG&U4R2+`6;rKXEaH5;56g^BtQ5v?FvIy~c(WPil4ZI=xN)o<(4QkyG=9x> zo$#yxcYXxTfI{QfT;D0ZsBtXuRO8|JH8*t1P|`ToMAT8Np}GThjTH<91emz616qwG zYBHfF8>av*Jm5{dWa1*L$}FTRFp;XzM4RCni!7uXrGq7AYMF@${~}VM7L8Z?M=A>~ zh)`wOC^O0ong}Hrltwp=UvC1tfUJHZ)p*x};w+3h=_VHu<)qtO#G-hMGY*SMJFt2V z(FOD5ch_|X77^pzo|^=#;?2x;q22AdO^^qmL)ty!e%I}JD4-DrWYXRDw!l(iQQvz4 zx5)29f&2Memk(Vv`gBQStx(p+si&82nD4?awxIMCcbsoTLlHl@^u_tT8Yi?cifowM zV@EfFZqL~*prRYx9vgn115I^%&VUyB(+&9lyu0ri9=B(VAGzK!<6b}?@No#4CyHL3ds2ZgD%wJ)L92o_-rnFP5y~ z{?^KlqM~UK+!rKX9k%+5uK9&0lhPfO~1ePhB$~ zm?GB`e%24^z>uXgVHbHlI_cehMXn7fv;i3ql^+VK6IMa$S{AqyG4VC|iC0@b%8kF% zJ=(izF=AfZZ-qfChBL0p=F40AbH(^27AyND1T6PoN7;J**CBs% z<6k+i-ICSH-ys{LWk}bjxIK{d(Y8|$yKi@_d+w+3*vO9}d|*wJAoiVDq#jBB9R-~j z{KIIG!Xwtu&dppy1adZC`dwj=)@K~OmJB_32JOkJAn|hI(Z%S)&NuB()v|Nzun}Qe zKwA8uub$H+c5dKFEPh*KVk!Qb{(jNdu_Rt==o zbnAQ#YIxd-^26HbfMf+Vc{>r8_@w3I+|m|zZ9fDW&$gpgUc2L>W7`2@NeuZ6; zhMS|b%`N!vh_h1CkBw8-utsdPZn(Livj!nUoi6BJ7W`mot zx51@;eiM)ShC%1_+O8vW#&WELs@YI~tD(tkXqw#31eY#dCXjz3a|V7rR+#v-<>MZ> zaXPf}+zK@~oxSCQ9+-sOKQH-^0Abzj;lxW%6Lc+Yxx+q*x0K~RU;53pfnnbuU*)+| zRWBpgW{24jpo*8cE7U8`iCl}Jc@yhfRBjM?KD&Vc2@oeb^gXFi=HK3HvWuj)bux$(|E?7rDGh8=Q?opbLp5|`I{qu?eS0T zvA;&_XyQ~f0qn!$J+4{PfpNudPo5C1kh?ErW`|aEtK?vqE?6rC1XUhcup5mRN_C-w)WGyMerC;{tob>V_jo zm`swi28va$bE$pabb#CoDwHJT6)BO|q(nol)%w3w$YKR)vd|A}gqegQHJtx!GKDGUwuw0zj3<ONWz0icUqzTCL8uFm>+%NHx2dXq_!pCl* z34lNerhNGEfWBwRdj19EO2F$D*x`?FxMudNW&(}-v~0}{;&qbG^rcL#XU84Ej<*E< zX*B)L3Sbn@9E{KrO3ZP^G=l8Pjg3`tm?Q+%A08pFXm-_2y#`AFP}Pt!plmXYbz=P^ z(~L={K{tFEZsPV*7eB%L;#HO>Qr?g%m17*&!7kTOWR|YarJkfZeLJQF_~46Nq@%|e zw_*a&((cElCEE0<892P+y?Q*rdKpsNk6d5wz^_d$$2kV9$&hj?Zi@eKgAAsLZmWYG zs(TRCMPd>eQcWwFQH;R>8fX0+mq~K|`DqZ)8vZK=cmQA8FFy#gKJ;Y=P@3NHZpW=B zgTA`WrbkQDzI`4{HQ70`*k)LZ^)n=%m0MjVr_kGD{|6^FVVd*2xp9oITFjhcy+wFFE;q2z^>|YwewI8 z-HT15*IT@82=*QTMk8e^+_H@iew9H->{MQy^$@9=7xa~IFEqnO<~Z7ModGNgSS}Ry zBo0_Rx&j4*)&sSTwi1{paX{H#x_nrtnkUnc9<02<#2`F~s z7(qUE0$_0}#A8A2{6LntQyud$D&XC2vd*FqWfc=_^)Uw?lya)49~4-E5?+Kk_L#Ut zJm=XMAvyT8IgW+7^>Z9dXTles>I8`Z@hyZ`!#Z(WRE@#Fu%9TRwtgtN_)5uE=<3?| zcCIz5KcEJ~0M5!1s#IV75#h_Nuv~%drJnl(E8siBKB7_kHCE{;OJCR__id7!_IWz@ zI5MyaJHyCntIxp`YxQFtN`WM{AFZGJ77&eTcNx^dYw9uwRI!&jM=JAHsGK!`-ZEK; z00lbWn+a2XtiKgKTl!)?<&!>CfnXg`ya@|wn9!9tO2g4V+tDbXxPsiZ{)_j ziI*zCIJhd|pRzRSL{iAgL8ZUR_ z9M3ZBOu%bNqhYtm41MByOIu^`d~j~Ee+k|a(<{`2O3Kxlx(?jFTZOPHO$8T-S1pff z{saqiBDPO=?P9cSkh{~U;Zj?0>~3yv?%L;(0E7q_bFfpu9$J0=DA00^l^xG$mpj#4 zuqwsoDjsAmj@N+7&6KWByidB0Rd*C%M0;Nk+uQVKFJyq*o2 ztA&5^?{hns`?Cofj-|#2oC#a0bDlmDZXML&T+o669P5(MU>k9%zEXL%u-bMuZthx{ z@!NJUtY9<4$DxOr;hw+F4(|bLk(vGh_Mgn~1!y!g{1(n&Gs92blO2AjLwz@QsBc+z zI{8r;5mPiGg^q(4Ju{?wz&aqPjuJd~L|}&tcJu{^kmNBvYOB_>!6snG&cA}a>5oep zH<2gh1I4}6%MZ!2;r%>5Sd%Y>1c3LY3gUi~Ur*lb;GK~x?V%T@HjtNuj834K)|<~Jx^=)UL3gC*#`M|Yo=Ijt22 z*)SgZht;k3qMpQNQ`Yc;>pH@CF;%>WRs7Z8$mr$Okk(4R?s$`s5#Fpj5B6mhs^^n> zQ+FmNK!1vtPSEFkvJsU?!16@g+2skkaLh>C`#US`r1FZ1s!Z33%Xh!S1RO4JoXR*1 z&ZO0s3A!)F6@zW?ta2x~7*wBFN1E_mX&d!>wCf&*elf$JJEc)I1S~(^1;bS*x|MP8 zaks7LEM~cI zB*FN~d|YerRLz=_^Ef4^aY}j-aORZsF?bkf&C2l9tUM>^&-GL&vvRb-n~c`PxD0Z= z*4)g&+#GtpIXC&}ZH03F<2#-kPFLGJ9HM2+TiaJJXNUg+@|BUURcAs?-+&zrsAl#` z*8E%fZ}ohGSMwPgK$^qqGw{6FOAA8E22mL0f>>Mg55rwXE)(Mm$@Bs;0Xy6K=}6B= zmV81YDRp{y&_a)a5o~fsk)*bwf6}Rfu)1M~ImuVO!>Va38+44R_I>dHb!5E2x?mdBfSe&UsaZO8EcQF&eQD)diGK}(C^{R0 zPQvWj1=6z;-Lug+8zX=WM=1gSF5p!;PEC_W^YQH5Pq>5ee^`0Gl<^8rrUs}j)upqhXQbvz3AI4X=p!fF-3Wf^CF z1xb(ajDNzMelQaUcQ>c)Xf&KL>Nbj&8DZ|_Xpww}M|~m--ZG_?T>5-0??J8~>@eW5 z6K^kh564}$&=SZv4%;&>Pz?$}e)oj!bssnJssWxm2hl0K-yRzt>2H+CpVKOF1e81FP2bN||dTCxF&-frClRN;((td#In z_b{vm%uHEWjfIK@^UglX4Fj6aW8nw~&W&YxAE_ZKf(!MfC+e0QqquS$>6W%pW>vRf zf5+I`hj6fM6QTM>vmPwP3vOeAKyVdu5`qudaL5unOV?K@^*x3i%ACxfAs3#u{=3wN zj?~?U2%Wb~@-9v1jihSChr5o>xhm8r;1#ITaZsnzJ5_jr6h13m_;@6d=2Sv}U~Y{0 zRR9_UXCnr!TMV)gR*6@N@t9)y4&(``8}AcBvj=p@>^B`igwzGFudHicc?-%lk?y<4 zZ zLqOh|>7Zw|f0hC9t<)1S5ynkLHoTOQ1Mvb}&`wMM4;S2Zf5!NM7X{pNipV1u2GwY+ zOLVJ*|HI0)okjTKVBP(My(mmMj zZk(y@h62SOhp1l_^;7W{e9`99rkY5w!94hs|3ggMcDTNM1~JO}g;dR^hp=hcLuEG9 zQfQq_m`5-?KyV&Z9VV|*Ga6m@s0Qd)FsG=vfK{}x-eB_%}}vl0E{n`rE!;RiY{#G?z(?qP*d=d)4Rrbk~YK=9^A{{KvLs`FXFp; z&Ogch_+sY`&@jLn0zcHeBxAN@%o$eGbY-OzFb}_`B7@7Xy_<2K#uV({WQKulOOZIP z6rPb64ywS&yz0)oB`r}vyU+0fubh^H@5txED{retehfyoEg4b6^#eS=#ebWf|1dgx zw!L!(>HhyezXJ$_)lzJNL3J~@AZx!K5E*1GqwBGZl0qUoZq{y)SaUN4=XVb_E)t?Y zZR7L@4tl!=|BHq*#?|%}mQQB*FIe&!;igM~BWm`q(&sU-O6E>Ihnk`}+?cB?p@j6Q zfDkCs&00R#4!Zf-2N>h#O4!fg`4jULLN!jzk=09a^nX#e=7+<^_U))LL}SNT5x65o5$DqN;fR5qB^v8OU!FTu|z`ZF?1KH6zJM>PTmr+fqNW)ID|>a z3L?Rvy8kzFJW>Qkx(-Q6M2FSYnblVR76(X+(V8s0kgC!(w7bKG!G5WsLfAdJ=h#PR zxrmWGYPY&yE7|sd@>HgJ-Yc_-h35(V$msfR?E2YVuT)jS38cIJF*+jjIHaCK61!fh z9)-w~f=Kmm%|1V^}=6gl*Ko=nPE#KjTwuP1K=xWUePX(TN3Bg!kXMoQ4})N0X;|7+ax9^-DphE7ft}^b*@) zT=LW{;72|owmydaf!k%Fx(civ)e8AE8|K>TjxsXsA(cRW)CAwYK~w<-5b<)MGJrFi zhnXg?2-Dqa@ebGn56=%8&3BRiE0jJ6)4|IQc1Mhtfni})nGyl2WA*=eyhDA zP6=03k1Um{0oxikVh8j`*H@@bP^$+kr16m2Ei9A+YjV(!*#%sCnFl^g`Vu`G{m|#3 zS>3r^8X#X&C|!Bie3&Fz@pqk$1k?%c$ zfj?WY{|}*4mVERyxJ4|G%#LXJXdAW!9MR=Vh(LMYET?k7d<$!)ELytjWDWpDqQbt3zr3zJ5K25P`N2|kK*9Y?vIn>xHJvlGk z;s~~=u5HI)$*{*4+8m26QvY)kh^k6JuGB1Cp=tzLl0i*W;)(WTbnKF^_$uN`5}>Cy z0CC;pU);G_N4h7Fk)4VQ)qAA13#3!T_vITP4z}_7GOCfXxdwge^W4PowNk_MrWNYX_iRr@~cl4u8_myiNu)`hgV zC#W5*p4hpShF>}#k#;5TX6(wK`aIo-LZeNXO0GW-)-bRRAX)lHWJyuvXE&yrxgGI4 zTK(?26#y4rU@nom|2LhXng#QXpv2#pj=u!)VRh{7Sok6J@(WglwUe2DfH6n%htm0n zOaANIB>x@h{Ja60>e$ig{JhG#qqU6VrK}xN*Ed;hELXsZ^mzXc0!b=^i*Xd)z*l2BNU2J?jeLJZ8;RZ`N1?INlSsnfRNT)vlx z)FIWqQO2{g)rMv7u3LgWgT@w;{V9aR9b3j^7xw7_Tl8dI*9w9Alyvu2ab8{MU|~pY zPes?#xB>+WZP62S!H1+^|5T3UajRfaNIhXiN9Uk37zKQ6J1fF!x%2>PwhdDH2H8}+ z$b!j>9mNaXMOx@or(y>{Cx+wysF1qt9rhe+wZ@Okpbaq`4TVFhtVKoyHpU6^M^_HE znX`;H@gqbY``jBK86Xhg3SCtq_WXya`Tu*(gjEyu5Na*Nh_pQ8*Avkl?zwxZ6IXD$ zI?6MrV-0aZSpUQ7*}rI+#`YHTAEZnJ{in1)Vc+fl{zqN4|11b&TAmtbwp}aQl!I)W zv#rm2%5N5Y!}~;`1S~HTlbqO$^SOEAVKet~G53LTQyAD`+>P;kZ!PfEW@|ca`FkZh zKf#m2iPbG?Nbc%JS94-r?#5v)G1#n{{LLvCoDlq)iz+L_>Z3QTU zxvNWCHRnBHgZuHEsX@bu%`B`g5q23QzUGMX($A|KQZ;W8vCK7zN5SBn%5Wlv9~`EB z+mkVU9x?*!kMf}>Y!nLn-y1uC$;{q`Q4=u9Q$y;7v}S|07|B!Ba}O~i$X;{;EW(^q z@y9bYsCH}V0MRD^VaUo32mVNnQD35L8WQ?rHhUm35Eh4|UTxz6xcHEGNTf$Fqz)A@ zz{MpBwwi=@E?6rBv86Y|71^vrizL$PHZ%Rp3%V^2iq(u-+Ny!B8DaE~G~V7yySKN5 zusJeY6?MHz-~hv9q+>($shR>@;UbU6&sby63yH-VgL84ffR7x@e-`(tQ?a7BIPs`= ztVc+>HS5hAF_}$e^eX+S@q6}9FrP$c4@{Qx5~t!^won}}+&w;z(1twHqcH|qfAr`y zt4Fh{&eu=;RZ=WD7StL>CCi{JfCe0lH$3{~$vnaf9!%qEoyY*7_=~qBHb9oi$9<7^ zxUrGDjh>65_k#_kda{5bEDs-tLtN!1EaDH$1pEdSTZVL}w^r`;QV%9L&E7ViT;j=U zw!kIYKAihvGJ1Sat$R*afrIksEL6?s9}7@*x8JZNHu2~gQVQD&Cah0|`d~Q|9Bn^B zm1^7HP+H-V2VF)MBx5u2_DvN?a0wqQwsDF!?_t*``)OV^6G$lKZeA2LMg{!SF^9zWd{%c(yVMW7w} zw#zw<2;cIHRKOMHG2n$56Oj-;EAejHdjOgSz*T20FoKE+y?`Y9QBH98aNID zj&iWpf5C1w8x)Z0uL(lF^7$s(0Wnz*0CV9814OLH#WnZ$pQpMN9n0Q&>83J2zPDSn zUsz4hQb+0bSRUSe#+jH=mYTWijf6(^DfI+A7vC%x)9nA;jP1*MPv{G1sWAHEWPfI$ zKN*xqufJ`C-S~i$&lAD4qxfS~(G7%JuPk5U`HVGkX0k}t@;Cwo3WzB1D`ivjvEWES z;D{zRw5tVDztkKAG%%<)akZoU1mJKW89k;#JqYEaCCJyHN{!MX)rNNT+AtFBSbDIt zcv%*jBc;bVzg0bl%~jmvjFSpugY??q$*Ldh;qFu=L)&|Yu)hsmBDG>4#aas!C=(V5 zP%!HIx>`Cf{twVWjU-obSdfzx9W_HoAlXx#e8jWR9Jv_P2w%Y9L4z->HzWD6bcrAlRL z(I-Cu>Q&#vCTAL$L^nWN)T73NT`ycR&_ufZPLn#2HcUUrr6Vwbw-O$xe1!#QZAkvE zHl&fd-<{TP2)KCvYs3e=9rX#R#iCGzZ8{dQuKl&g^zy!56f^SV;lcKi70^#u>Oa~m z$!ISJC*Zn~tIbCGTa9#i;w}E(Jwm|lz%sW8*a=+`u=2VL0_K+ePYBp_QZP=A{6}5t z-c20fW>p8RDA(kcSe{&25W?JWaukXaEhzJG%uUD1y22N(HO;atR2)0$1`J-QK{Fiac7*|{uE>YrQ#f9Oy(5oq+@t--8?`N#ZcznCo`Q^ae34{Xge-2F z!>+TkEVwc;#gk|mHqjHi4EL}vPJ~>E`L1}I<61A@bI2*pi+R}bbq>VM{WQLNPxO?A zoRN94W8%BNi5}N5);_Y_9vc|ny*E0zVQkLG@|;-j`0ixX(=ax7WO;7X2}w|fA}ht;8H~rRIV@;D$Nib!*Fg~<$0mTK4_y!(;Ld{;zDr#ubCnP0 zRxvlGh%f1$b}QkO--=U#K(71o$$=dBG3nL9FT45W3do09z-bof+_8PcH1R%}ng>dr z?yrYL(T9~b;C>P%*{Kf!)gduJr|!9ho$|KQOwx}5MR1^hrHEKiSEazM+0sSwGRjAYT4%OwVlD<^2I-&h1G0~ z5FNq6nuBaGuiNx9JG74>?l)S?@AGO=DVVQ%M*sp7R$m^Sb30q*pbC%xg8IR(41^az z^&1RODD^YojBSX`E8f!XF5Z!xU#J!e(mHTw4tGuIRRFTp!V2||n>a?t=vz=Cc2$L1 z0Q7*@v)?h6^2-H5^-GWyW_g}E!v3HF1vaP)W5>>_YMd}iKXo|z4i-N`r`c_>-XM5Q zqtFO6eoj-3VSb5v-imHI&B_DSq)=~cJ~>fWQwidWceK$KTJSIeN$f8;UD4Cg9Z8h7 zD^>9yq;I9$7tUG{R+~VKLcAdDS9gN*-etwv(URhFwiJz`d0{VT~6RzE-!00xB7v#p%b6XLr{;mvy2sMtX4n)WIDqHBbL zCr6{jQlO@L!fJ$lpbx@hx^5W?=q2WgHv7qGmSH}Ruqm5=IU@2GvB)=LX;qi6zKqGI}U{Z1ij#6J5y%SlSPVTh5K{ zJDOXY<^tv`Pi9=trWn8Z!s=ARaXQXtjm3z7e0$6dtR7-wdiU9H*Cdgo$EjI@(!aTD z>5&3@E+FPT3q*ejx#t)70#V!pYX93? z%0IljZV_sT-!R@5n;&0O3WX{jj3;!yV8jC zt~4xjS2{d%SL$o-Nb}^`)KDQ@#N4tKK*wJ|8kOapA8b6!F;zVZjt1-r zwy}OdtAgZQpZXZ`ye4%8!0Y!!3(80CTC9u9>;fqH8Q_AKtYH^h(G%$q2pehqiRqO6 zj_*K;TEB23WJICuo=~_FS7@f{9`Q_zHjv!@%=7qgrFs(78l9&WJ29uABP(;bU?UH* zmQuqVzd_iT8#EhJp_22>kuSJBQSM1>7EIH;lMxUu^2JmA0c9*CwVqR%Zr})8P#x6~%C(EbTubtNfv& z_fKcWWOiM?AXOh(D;M`?S7W&&*f?a-b0r`Udc=@BeqJ7FZ zH{g6R;e1ifW=*BkYNcN#n?slBsF=EF{;0>W)nVpR(=GVGgx#Vu>#{uBFHpVrQNJnQ zx@&(W^LC!}Uvp-fV+*ObfDCvgOL$dsXEy}ZH==hnxw8||IVu36-AB_(AvOZg_9X0J z9CK{ZUPmR9dz1BePpqm{n6s)@&A0I~mz3%=n*J7|-J43$13WVbe5*>>j-q8MPo?5p z*TkDgwF(D^D#*JXSjyV>gta9bv*pj(|C=2Sfyd7%-u40jn-P}v1%_*w>IOlXM-VRc zx$q4H&1CG&_7I$isKt zi;TsG+?nZPMefQ@&uou$VERTOc`1l>OrI&FDSgSTWBQ$%{H4lE`>2;%x_I_hBV$2% zk2ziszuAXFLf_mTLy4oczM-b`amkxSGJOdmscI~bD6rV z^z89^)i50FVT(xR>6m_e z392WwJbz$#m8ffkhG*kX8eS#pU6F>e)3f1GqP`ZzLwdX&)4ve{zwh)inUi$7hF6LD z#{&louM+hKY#8x<>*E}Ft7E&nMO*@$QQu+ZV()N>*F)s!i-2>itnB)}CI&DaPosih z^-h!p@RNsQTt{;2z9>{yeq3+*r}C379;kk-7npm1&Fq&rgKyru;tTMgUmmz)NAjJ{ zy-M{brk|FUCsfTgx}ss`{u~V?=;n!o=1-n}b2W0TanISb3j6Q}vI@G`7&(7HgST^`o-;=?vCyDB_hiBVM)pSuj@H$-mKm)nPh%jPXnC&^-Ug9wXAOZ0SzE zc_@$N9&SAsi&usRo82$a-6xL#U3IFjX{wa|lKulN>L+QRRUI>DkB7?e1B?g!GSBml zkhfQ(?l_(Y>(2v-TAYWr^Q~U>_V)$#jW;0Dn;o8i_5R?EMtj6d>@fho(<9pKzfRBD zXS#VbEQ3zpo+M>bFT&C@YiSwxSiOok)n#&=1l|}P3gns`u_H1@{BL1O?v0pJ(n=Lq z*B($iv^P_?2kuT3@S3q$sYSewpqKt?d2+-Y9$?{RMM@4{$dnaoVLc@W?9>n*maazY z@Wue{DB7R8HxJx2T&!!=;#h@x34B>xu55YW6{&FrO2pSX;LjoPr7A&IDDDFkI-H4K zP=@Ekt{t`^IxOC1kM_l%*x=*{I<2Y!)oSmlzh7G7Ch}PVHTrYVY}~j_pB9 zdvNW^`m|$}MGxa2(;H0k8i)Fu0Nl~a@8W$(Gn#+MTpvx_(Xv_x&N{8X`8%SZzoCmZ zC^a4m&=fU6PhdV=RN@5*S13$T^>D-|=T1`F0pr9t2TqiVu$lPr>zgW<5Mf;!AS6-j zLbVEN57Rf;g6p^#pJh^G%&vxtlnedM!b`<}npgcC{6OLrB4Ji_)&ELUqp3Z{DKSMXp9>mn%A>#s(2su&Cb27r^| z<-(Qmp2cLWIDe>8go+~dV_3;0`ha2p<KBf&1CzjKUQO zsGas;m|T?*oL7Q#T(X8BZ_TbOl&b9aohv&7l@ZQMF{_E`4k)$xJVhaXVP6Fp%hgZ7 z_)2viPz#ZjMz-CjDumDVv_&%V-HLoxj(l|za-%B+ z$Z`3qz$$!leXA2OX|g3IHfw%_Z*%w+E!{0v#oyJ|n7Eh|=WY80%W6G5dZK|7fst~P zir#E_cl;6j(w@&B$-xm1YLsQ=uDuoU9cgnp4!-o_y5oFibYw2B(`Hk}HAyW1wj?Hy z?u-K684l7|h~G)1LqdOwur~M_piPyLLSggFhcyLhPd=%Mt#Q6x-S=~;p0r2X0|>Sp zb`A1p&>w&7(oV}GK-x1C@RH>rq2I~L6Sqe(pP5juCRx>2-z(m;3+j^B4FsM-j+~?h z+(A4&N-)#e_5yl@qtTCRN|-KYTPwf@$hyci&t{sVL9r@PQGp8A#o+RZrC(xAV0Bpa zw&<-t(b~SyiuxU*a48W0GaeZsOTw?ppbKjcSvi&=hn4120nwAW+DCSrnBSrbJu!Lb zb()wvFJUXwmdVr#?RyM^GHKt_*OT@U9lKeiWjxesnqCdO{tf{p1TvJI>ta)z-{S4t1KjZ5J^L`&HWmSQ+5j6XRgH zh_h8bkVR#21ik_0fkH0@Td!lzOF%(h-(9V@IG$Md`tE$_j(aSgG$VVG76)Rf)?cdZ z)ViTtPpoen)&(sXnJW6z&P9*cMM+;y2WttkfGvhQ$8?|@c1YfX);tJyOW-;^Wluvq z?r+8%ssPwbx}a^d>Ht*6{`9BP!_r*~=dB1c!U^_>^XH6z&mOCyO!L>Q#qB_EAvHC}lr{v0UA{S6UB&dw}(izZ{ zZuPnGmxSN7D&u@i0D;V8Bz*&2)UXdbh(iSH*0@?s{pZmFfK8aUV+_X{v=or z-YT&;b%7lKeC^JFhguxb+$_ci;NW>f5gQiV);dvy%&6!oj?j9Ffug7IHckt8&Q0Q2 zvND)_H74Qv$emSHZwFI7vwn;gN-XOOoV%eb-x&!FWfCwIf&ryPxQ28^xPA&I3!tXvfm^#t zq4>rB>Rd6vB=cO-ksw@xiPIa&(^F;WnLB*Aicx$l{eTLM4k#r^Kw-e8zAtD%X?~C~ z7wBUuSR&OB<+og5_Pez!rBOzmA_wUD`exKuol)OH)R#Ee`s9=t@)L}+7sAe|;70&3 zPKRacYlgxMy<#0j?@*^mXu^tZJBXytFylQXcB{%H64GQ##ieU%e< z1jHJZ(j1+f(j0vv{I$#ImL89BJC+uP)TAq*xd5ym>#z3UtkS8z4oc@xU3b$i(h#3O zrl!O!TaB_%xB)YeaUVLjxw>hy{tS@+OP^GjIJq0NViZu6Hct5e*gF^asH$t>Ct-j9 z12ag(0i#5W7&X>tP=i5D2uz|P4h@;0JiV9NF+PfAhDU)AokSguQTw*N*4EbBT5EfI zZ>_~XEEpx=yV?iUR;|@`r>PeE2>6`uzt%qUOd@F8``!EfzWjdYWcJzbwbx#I?X}ik zd#=bz&%w^*CS`b?WyP)Hs~cF8nf97cL_%!e&7i>;i{?=)fX%gK@CPqZJhGdybe zzI;umffq-Yt+rSkUEa04*_^|+E>d3u!^JA{Bs^{Ryt+_Jo5w6-$AgO2JVkQWEORga zBfq1`ili+jtOZuCShDQzoasR%*u2vHohV+oU31V>Z> zDKsr2r*&N-5fRraOoHzytEBX;xizwP=M=x$pi|w06J{vO=xuT!s=w7rjLhCo;RaIg z6BxZsEWP{BGUH+G5<#ItqqluWKApfdDWNbpaC<_gl8q7X5d9O)JMaaGU=xWKZu=3R zoOgbJ!5ThZ-09`E>IhmT7M`C%86n)ri(poAX03UK|B+o}(Da;4*C|}d6kCEYYe{c# zF4Mf=KqBH4svOjRg}3VWyyjf1Finq@6rkg)@@9);nXtvNOxWUBCTwvm6Sg>(30oYK zFw`FXqSsVnbqV3jq39O>&SJH--N{aWxsGJ+TAC@};%FvpaWoUQIGPDt9F=gYJ%MIz z&mefD;&-hWIvxf9`MkyPO!*eawS4gV*H~r5htR)Cyj~v@->!tO9>deu3&qCH_P_65 zSYG>6-+gCd2$dZ^9&S53JodcY@Y=lmZ^P$grw_A1$PPbzZf^L87w3lmor#*AesW&< zV_S3M2bdz+=|8qHH+)fEee?6`J3p_zXXNFdnwwwX8OG^5%qX(RDx{I4VpYfjju-je zp&|^N&I}Y$zy|>&*vD}@8@?Usl7@wg$!c-#Pbr^uSOlE)YEZJp<9>-5I!@iHtYh0R!2kN#0%^Din-mKA4ehEHx~_kE($7&v8& z(UiBuCtj0T&W6Q_d0NA4h0Dzxa4BV9cD<;soY5j7m@Jy3iJWjdPPuK)7WI9KNUlGJ zj;aHh+F$#+Kg%c5j3kY2ft^tp9r~;t>j^th8G%HHNNbOft4dgm&V^U)ALj;cy^U;Q z0gT-**KLc+2rF()_w46LCpO;coDVK@M>{&Mq4w9C%h(DB`s1Pj1HOmQuOA3HI#ARKLTOiV;L#^^~AR0BiqqNa$fQb+sL*P^h4MjZ^J_q8KEyuT`qrw4m?ee zYZ{Y`C*0@4S zeu-;R@s=j*iiUA?!;Cx4yn%>-;aivMv3QaH~7v zeRaXCx<)RmE?4Tkkw{3oP~0_CjoV3IXA3DD_dskqziXu5{GaLmuaf`$WvNvB*McO4 zv9X>IXMomHHa+v=GzXLi{~J+s@_j)*@nLh61&aRueb>@hDK(>1K&QWIuG5T;q#awFWr*WaI#?@{uo#?yw>Fzl%#P=^>H}d); zgZ<^s1DEuUTDpFR@x))`s8`3Yz?bWTMZSBlvA;%ej1SoPr6c#KjszrS-3aU)RWJ`E z!HbHyL$@uSTI0LnIqr_4Gp!(Ba*#QQe#tAFHu=kjmc zwY(N;+E7~*615qIjUHB*D&1jlWlsM@sgw~c>v|%`NHgxOcuqSuv^m1jNkCDB6~BggKFV#q_6?n+R0S zE97Pr+$+XfVe_Nel2Xp^vrEtF`uqCX_w$eCz)#j2*>A?T2SVlts;ej-&X!Utl!-~6 zV);)V`6o}vj8kbvNq*j8)8Dg3dUf#WFK6F1M0#rvHG>J*>nUf<3e1!2b;RA7M<7~a zs$2!o_ANm0!k)02SkZ%$Hb3o;+)b8{S-_?=A`-!Udm=TU5IM`_G9dG+B2gIwG28|# zZxn2MK0{+u?WxOc&zG3U(6X)}+9S2=Hse4$^z$kHuw|#)lvnmRaxki=ZMnjyE!yA2 z#WDh_wl)1{wwewr^s*;T$F*Hzqx}8TTg``TRD6Facg5oN~rjEuX>Z3MSwoEDWC7 zCs}UmJsegCfPco`G>`TRI|f&409K8*N|G0MqAoR>T@A91%6Fs-`4X87&=_?Ij@lP*KyLB1#1NXCbd z7u_!4NTU<#J!u>jDpmM$epZWI+uu-o%t-BBz_NjublCj zp~nB2%?BX2{Vz5DrLwl1C>;=q=a$Sg1Z;Y*S*m-{!Rd8B<^;=u$e55ho*n>IGImiEdT;!NA*SD>QWkA0W}?cV)l0xHkOKn~ z^_h8}$jms@9_6HExw%tW z4o{-JoMT+c6$r=%_h6{<%4~UG%Pp_WEKZe&ykNNUr2k6qIozb3Uw>An^Yk(+UM}hK z^nDASD&706ct#4Q3(rB(@en&X?d$1Vhb()z^(DT&LemuI*5~#wI!pa!#STOMbMq&a z=vZSQEe_#_+-^P2{F%&p{iog~=;<2+pYpEaXYG%xFIX*#(tLe^<#)bXk71WC4JD9j zZ>W3SO8y6I6GGi9ntJVp+P%SIF~aE$dYSJ9?5=Aqo`lSL-DD{t`7}{7@P?w zaMoD9pPzKhx*PC1r`PU{9v(7f@Q1PliVE4wcJnDK7*CuoXA_4;>a2=g{+G2tFu^N) zulhF<4%oG}2n`MV)6MG?(gI(1=+{}``z`SC@@=MFk^=sfPTgu?`C-<9 zfOQBez+Y^EpMian&VUA+llbx3E71gLPnkh=u()@oJd^`h(=Zvp_TC zPeH8su7Ei2b9pAe5#bcbGniOWf~J4r_c`e!?~-0efuo+#<9|6#dJPYRH=qGl5l?KA zb8QECcNp)!C*z=>I5gUZ?5AKb-AXlH{e_9q0-gh$A3aD~v38POi*tc6l?@9qNh-QR z2NGL_nR=n`dbp~Pc^)k=^>YtINwn?E8>uHYQhb*$N4Om{k1L}ns**>Y(G1f-o2$ylSh6OHVVoe$i$Xt=~a5UFIj zx~sG?^%0RDz@&XraR4C%ox;4hr?=4~tWN)lT>~3D)ye*2;_no1_I7*LcF%sO4tBb~ zq&v7jlsr{hW&TsQ6UEN{fksbJbM(-Ns9&^#rF1_c+M+xVt+v^v_G2Pq z0g>+ERW)pb?@4`WH5U`66iVbCXesXRMUHaUM$sI4B?g@%}M+&rP_E4faU=9DU zLA}#J8tM{(Ey2j6-x#@@Jnnbp3ywVez}WJ{jLXdhN09C`J!Y zc+0!J<)HI&+2YHI)V5-RhX)+EF1XIfrRhFlb#UkN4`#3MYDSKGu6h)KwRba>QeAQ1Zfr3+oi}5J2bVb*5U+7#I0ooh$68r zvg9SoV9sXU70S|9F}SeQS5zd@*;JELWA}dk_g#BQ4u9MC*4eq?m(jpw72J0b(>*&J z%*+4qg}L!}Rpf?m%`IQ?OYowYJJ5?x7__C6QIqqh)yNUj0 znSwIj$acm_u_3hAt z@7DKE^<5B>*m8Z>>3fyFJM?|4zQ3(+qwlhXl0KyG4t?LO@4NN=lDH8LaZ`Zfcx2IWBmg#%8zN7lSQ{OM>+q+28ROx%AzOUE!c75;FcSVb&iR$}qeg9G4 zp0Io`)pwn~JM?{rz8}=Lr&ZEa>U)vCZ_xKPeecotOZxUNmXvk+Ua9XJ^!-D9|54wb z3nfjNzH9WoRNo!?zC+(X)pzkllCnzQ>-BxBzJI9iU+Md=`kuLjlz)Y+zrj<`H^o1S z$IEjFPk`r0o^qb!d8&9$i z_kH54j$MC1uEJ%D24yN0zn8_`L0s!SpuCdo$tF_!apI1;JaM{uu-PRdKd>O5d}?>b%iS%ZF`;E6li5hmRQ4;k75Yi#76G>%(U$z5U55RgRXJk6eIoBIovk z=2$I_xbh)okka9lKYH>b$x!}pSMvMr7#7o)2T~_Fa(ED_kJ_vQEFIl?M)xJ%R(M@y zTecUB)OwfYKfMEyDp>0`My+KO>c`>Ja1@=fUx%-CvM?yQ;q{2 zw(i?ppXsCF5(UkpwPCYrxiY6^)@1ClEu*ouZ+gt>qfG(x1fmCbCPj~JLAN?f`6CcF zc3Pw(YlcXL^QaK+uGt)~b$SG=xx8V-B0HSwbgn1M^ZKw}nbX5H=tl~E`1igWb{_D< zCT08gZbf_nBR!ly>a6^i51Id0I&{P4mvekx^X3Ms#&VK7m185j=e@HmO-N#6*r@8s z3i0H{T{swwG^_vWw~@#yB=KK;ILAcRP?5N;76wfeEZpX#ZmY?!S5_R{$${bhWp`)Q zm*X${4LCfhczn9z_uwyE{c(bGSXnd)MYA0g|J+ANeFBr(zimDds_OdZ<}wf6Ko-k+ ztM+kB`f&=LB{JXt7Ub;fuVn8nzB306_7ES^^HqhdUtf~Le3HJe^`kkT`mP0Ev&!k) zz$D8KzYRId4$H}n?C_(opIKom&kM5@h^)dJj&EMconya2paLUX5^tB#(}d!imlpUs z@04Hd^6NH!h0PjBCJ^E>luO-T=EYjYSBC$n$kUt)joisX6}g(3)pjXU>d(hWv}~BT zl%nmTaEtlaJe7tq0gsIANo8oeQd2*eojOv)-iHk5q%#~9`Bf@|&RxxOb9SC2r|8x$ zH3i6HbT_)?sK{^9S;V?UvnHxYPG&nIK|vb{@Pt$70P6w$0iMUuO-U!ls(R!%FG*x6C}sM6BZ7IpZ`Wq) zchOjdO)9*CsnDG*XmplvC&5;;W3i?|82BA1UKtC{VN8T_Qusm( zo6Vu%yuu?|vI5gr0jCo0=ca46$T7t(USWD8Nc9CE-E6*`UKlh-B+fz=<|^iTgYyNQdV?kQ zUz7c(IMy3nX+w+czoquyD*G>D|6OkXt+xN7_Mc*GZ*aYauI-S2{PkWdWMBSzSx(de z^dU~;>_l*`(-bzDpDR|Ml=>{BkI$9zxzcSGRaV%~Rr0y2?1)tA zO8a@He4bf1DfPL^ey)+vHG3;lpJ&?7v*q*b8HZ@Qxo4#YoF2LD;&Thox7C?}W96hD zjgF1oRx^f+bj600ejkG9KV-hEtGiI}vVKpz$bc zv#a*nka-1p3n}nOg~P^B?#gPrmC0|{*i6{2Iq+S@X6GaYv@U{HGrihxZfA|5+`KMH ze#w(0MWv2UZi-C#b`8sf?HXp+uOm;+UcXZ1&7U^7M(bZe-+pt(2P8oXG}=M(sKNfw8v&E8=JS`bWgi9`EaVh!CC_8s)0-s*t(OBDk>f-yp{E1yQ)cG(Sg* zj!nhMi+o+K{e&zlJ~R?_9#qP5bh4y>GTb?L?;P66;S^dOV5W$4K{^{+h;8FOYtyB4i#xm;x9na>gw7LYoff?cH=}IQ~e|+`;xzN)lsPfuq{&hD~?g zXTA3z8_qfy@8gy7Pr*%`<6F!@5Tf$;%w(1*oTG8V^Dfm zRUTc`YCe|EIiWdd>TM=K`9yqYa(yYe?$KPIB^PSt53)r9GVxanH@rm6W4R^aZ2g3f z{gjPCG{jk{Kg4A|`@QY>qAyqvIHRy@I9vB>7bDZrq@%dSI>#k0-zNe;5&Gqk;j(Ox~MAT3y+>OBi~X>m^E zgD_s1HmCDkI5++IJ;7V)f2(+Ty1#?z0LeZkA|@b~hq{!V?l^O0iIxp#jU+{nB_j`S z4;4fwL?)z@&gp+TWHu^61hXhb?q#>7%+*pV(xnjLmSVPiP}s_x1 z2p9;K^uy%r?CK_|gNC*jhs~W_Dj&}+xPgSeHc6z zM#U1z>-@NbqIUdgeEj#^CV`BpuKFp8DC4R5k!;QQQ3{a=$O%e*SH|CDy%aWY*7Etj zu6y{wdR9{X?5tohXRMJSjdSWt?&SKuJH4^fXN8OLTov?lw&CjqR1}-=b-hYytQvQ- z+&)qyWpnnhR4{_Wmoq8hB5_t*P8TeA&tpBT5r!v#n#(N27pKL%<0AKs%b-mgQ|j=E zlBdK)8w=O?gOxqBu!a@6Os=lMagX#3no=G@CDHY3DmHcKq|lKd{L(7jOS8+0=v>f$ z_4+cbSI=%A-CL(Wv_EBaq^=UNV(CadJgJ+Tfu15?r<_+6u>T7r&oNF<`~{EH=se_` zM;3lobT`?7*$G3!@+`5lE-$b0-Ef}N*dDTGoOUA=<}5^+T81RrWkz4Wz(X3w$#>%s zq(*}_v%uH6gHuTw~soS+nMWmhS+l<9wz z(-5c)&fhd8xyIky5D@EM^T&}opuG(WDJeZz&zEU4G_@G0Ew!1FJyU`ZR**` zid9dgIaT{E9M=(qYm#I%Umz3cGZVb1-L>hlzCUsnl*lsEIZI26JO~caLWrC0-07TTQK3vWuB$bV7BqJ2+paUf&f0O`VZ^v6E82xA0xk z(4tutzOE*MG(rxn%{E`xeVJA<*8OfeJlZ$_Trtp77+au77!}X|mFF-KD#hsvs3|ccd@4dCdAdq5On>S?TXHX={reYy>vN7m9n@aS@Y5ZWBYwf#RTm@$lP2kle(BW9j zC6n{B%bKs*-=vQIBSA%r{LqAV(Aqsx!~m2Q_~z~r#1LX48xi^4ch{TAWMqmrMc?MO z34If!p;zVROGVOESs$sO;71HqL7&(&3z$rt$jIsGto53;K=CcLqH2!*OCu{t)qgg{ z1j*blv%qiWO7?H&W#6IPLn?d!jL035b7bU(bUNF@&ymh;6@*x;k?v4%nfV~9Ng2a) z(GbYAR}UayV@2&FzMF)viN8I<*ENnG3=T}Huk%$}HBeXL@pZn$FCgvQ*1?Y^onA}J zn`Azis}Ti5efT}s{0TELi&Qh^Hh15RUnDu_=hdI|ViJm~w77$dXs2~-EG&#o>Db8i zmy?of#FyV}bDZuSz^*Oh=ha?bK6CTG($2d69omI;esf%*B2HCrqYk4LV#)|48Uu+H zUg_Kwv_LjI#kKA8+Ygg3)1YJ_^J>BGk{8&|Tl&(xfV((V=t@gnRkaJ|$K*cgapf{Q zib2L#3ZqZ*@^y;y8Yyp_)Sw#C{`Si5c_R7?C4x)M2DpJl7Lx`tDwC#Hv1vv2On#$~ z>Ycie5>j0=&`>ghTXQ#-7HrBc?)bdo>hp_ZHq4gxY_vs*!FzW8KLE?@<{XlrpQh97 z5XBrL#e6?6{iOW#&VtawSy#^AJl))smsHSSR>*Wu%@uhmO7c@gK9go0EaJXUoQ=2) zkb2b2Na){%8TCj{L6BC8q9B^1veo4&8HiJRUEqEphlE=WSot_zYS=dS#6 zeV>wN*{+`m?c}nY(&AY03O$g)DX`SG?XXk<)`EyV)xpYIwSBV6hRroBsFrbwO-LPV z8L!6(-{nY|wQpEUEA4&-2Te@*dc<|E_JMB1H!i*2WRT>y z=%%n3Wqz{#BhBWct*PA3rR6vUSt=}j{OytV!H*Y&d>8bYN8foFE>Ac&&o?`bE7@|UM;uImYYqi8Ysfu;QBg0Ljb7yn{fTSj`3j?SB}<+NVOlL%573* zTY>Ka!+4Z(WLYk)zCop1B5V=Y34!X}Ij#7Bwjwq`TX4UM#pszGs>JeDtf6x=ZHP|R z%Tjzd{1xUSy?9(GM{V@N&A$`-4xD{kDUC7rvbPmXCOf-I44V$g|wt{A;3BktNED=RiEU={0uHY zJk<#g*|(E21o%=G|D{dxUx>T>*Cv?{Bb39y+gT7*%ZPGnESLRM<~7p_Si|P4CrNV= z+Qx!Tuujgi>B8#h`dPqKMQH`I*d9fvBzT{> zr2{H6ou-%fZIErzv$QNtGT1t%TBs#H$d0wy+^_rA;@){uQ~{SpFI&Q~g^arSzzFqE zPGRwN)aVqwscfa=mS=PEMeufqn2r0%vz>YtSLTCaEOX2^^!PTdHH;x5h@SDw2yqN&pg%xDrtDNG2ddPaEdxx}8 z_OjG$Uz%u_2|t}0(nRNRQm{EFFGy!$_6*8Wk)7q=$kJ*isHLF?=KAeqvGTwFV);@ghR5mc_v-MRGhXIwMy{C#y=-xr4qWl>yYYImvx}~(T|R$PId^N- zHU+qqjkEBjt>!tbaAYOKk>DzMogkUiYhxKE!l8w&Cj8dRHU&amNpU76DBx%2H|B@B zJnNH(+p)zP&qg5lo<=S2C6?u3xB|GD_1iGGWKSVNFNR`D# z)`P@;7ZU}o8l1*WQsM_73nlHPdF9Q>lovgNlyx{#BVGR?fVw0V7^!!sG_Y|lt3@Z| zyW#b>vX&|#4k@1ce-N4YCsUzJ@s{i1`j)jJXZcdogp|W+k1!*eSZo%uv#H&)c_QPoUYHb(~CLw!yk! zVq$)x{SY$!t_&-ya9Kax#>bA@B&tbI8_Nb)W?L0JfJVG)~_ zYO1U!ZfVgfN>iR_Ne>hPpF+5v|58c-#xfmTX=_N;KHAQu9+G_!RgWEoAEaA>Ox_lq z;`85!MSKQ#|8M*fF4K#Ua2lorO-R?2b*B3;`!aZO8pv3hg*A&C$6(_9|%Vc%PR8|UPkp{=ci5B7>3i5kHoMJ6Y+*+>neOV^&UKyQ%_S2j-AvqPaG;GcVfu&Qs z5I47S%iI|nZZ+Eo^ZA!5S(OeA1XoC#LS`!*9O%PwmQ*wT&Ox!aND7qk(}@U@g>i&T zy#@Z%?7K8G`yK^8)vs{bz@PNaa_y(Bo-NQ)-@M&AMncszaSqb^`%gZ#Y(G;8Ellau&vL zDIt3#QBjU|GiN5--wDM`c0q|^^8)Hm*QW=b1$HIHjo&imGF)b7df5CH91NLHie}qo zcE+Tc9XXkEaK=xrJ+X2=z;PZ-#mMN{GMt!^oQ^k$kZDUv%A?1InI_M$`G;BI&~aKW z&_1C%m`pUz*D6&Q0Q34TPAM|oeblvocvI%n(sI9?7HXL9e4~T>2xr%b?xWNg5xvJm zFk4~5iaILom)(8)EcMX5lN35ZI?fV_Y`aQi+f^dFRwS}z=Cep#6)Coq=oWZWuZ*6w zQ}4S;#{A|}{V$6&KhQhRGWc;>qy7uaqrREO%MYYsl+_6GX={+2DbLl~A za!sZAMg>+am(7Ih;3`>N8>dG4S?g6lA2Lr3C{NpK_kLVWmu#QG{hVan&sZU7ufnp4 zv8yz5AkZ*=FbETaT+sL|crL;V`1&Qn47v;6LBTV{KRL_&&XpdR%o3-eQe*>PV4Oo{ z|FMj(Y%rXLnM{YA_D*-(+n`E7knffD>yBET(jFL@w_$lfXL|V6~3H2Itg(f z)H`4%je(NG^av@he#J~=TiXPUk~q{po5%jBiE>mtN2*fu8tVc-O1imV_GNz4z1p2o zH;I7FJqRZa!WsMgBq;UN*|(V-rbH8a9uoSHzK8p5!wR)YD0`90EcsMOwll zS`I_k%usAxnpm?cahV+rp*Es-=ORN=2t2PjS~7XMBgxu7`EJ}xzo34Mf^PbYosK*B zA|R5S5Ahq`?ib2aLbrWgB2^X*`8W9QG+-f9btfYs^z6>U*k!G)Z7pHOu+qFf-43dp za|m%km>FlQWf46Vv!l4JEnXwneFx2}q^3<69R0SxSj1Mc5Vo30u$Zhv0l^K?ICJqD zozOcO#nuh*7227{lsh86e`56FM8nE#D5PlGIg;;u`g@ZfJBSpXC2qz3Ax%NR_nwIO zPjfB0BI4Q&?e*qY1Qkkp8`P+axJu@fG0a{Ukdm|EZ0vpId9-o@`1rlTNQ1D!|m z_s8EV(nC{@jjUp$mjZ;i3;+<(KfWwVay4yx&|daosYY^jMR#y9C4{{ zrQPDkN#Rep>~k_UI&vk2_un3e&00m2-s)`n%Pb1?wl}GA;o>*6G5b0?q>05MMNFht zER+y5PoaFUsa-4qumgdcc$gKgWzWd8KNCYxjySc(2NCL>CM!%gkoBn@~X3gb}0z$8ji9>s8Kjx$g`3 zsL!i1CusNEr%}J1?-(fG-y!3U=?}}g*$3Op2#EEnV?eCRfkp%ZGZ6ew=gOobIW_6;k-#2yH=daRzie8dua4krOoC|Wx=>JmpqG@nqnE)`4{rY z?&vX>kVDCRopC<)olFv6*Lo?_(s-hxmscls9s1>8EQ3~IzE=)|<^<*DQQ5VXz;-pZ za3Al<%DjtF(o#t5`LfO4y6%7a_ zrKdeW1kRhwtjsKBeJMHS>3_WXSvOCM%|nu1w3jZgrpv|JWpA@wL3N%v{aFBl78k%~ zE9}S9HfqRK*o!_owTyO&Uu+?t? zDiM4Xzb$3_h!=|j)}ILIm(oN)zQ>C_n&zK2gqD5{{633*1Q*?j+NBI!0s#X9x?uaG zo;yALMRykay5z<_2Bf_D6(_hjQJDOW?Ay#uR&~n~cH_Sh#+ba5f3oqh@qhc%%UFo) zH@^|d_XWi)VOZdkJO!%HW{?wOY(!*949s(@{wsS%8C34;xl%~;0<8PF!FyIg>}(5q>R*PP63(49 zYcNEqeq2bMZqC9sk!lHl%W3pVuNjS_3axQ(=WW|ox)R0T&^%KkK&61ww zcH?s3#@hMu^Os&u`tF@u?sYG55ypPDF!s|TGr8qkcX8JJ?PY9fzV)1p2wR#9d%ETL zoJg4F=_1c*tKYNX?jN82zLJ$&F>L)rr=*>syq4}G}I1lgp<>9-z^h@sGdTZ8-fN%Z|i2dxY#**kH zIRti@8nb!$hJ|(L9~K%q`s~ON`WyemGP=FpH_Jc<8?Ye91)C_au_ll{dGiud?hS{H{iQ|qO^g- zxWbsr<>=1ntu0(D_V5tx>pyzy`9)iQ(zzSO)M($myWOV4F_-zSQK1jwFWm+PInifSS)ZnH#<-Bvx452LzGTLpw33AiFQ@;sfydrLd@#hbiq;S(l_a%kS%O= zDr(O!j$Pp3y1viz(TPq`?WkBu`~kU&g%4}~6o36K%d2fII%8Dq*!b&jN7rwiQ+P%Y zZ{_jV--%wfbxzS4!J^ps`0L5&@~v}5oDm!m)jcwpG?O}N>iSM$->|KVD({n7(LYwN zKf6z`c%ju1C>GxY=fw2TvwO>ykaIPcu0EkNHrgX@x6h|UE@OHJ=5pQW`vGP_|LE$0 zS?dCutDR2O(MBFh4Qg_oUrg*jg8yqK2N`QZc(6AAqQ&{4U;~lIQ)!#cNs{J<@*8B} zS%G%S+DhdgbSppDN%g-doyw!cf5CN63e?e5z|qKV+-v`-y(*4TSQybt4(?c5zj9j# z8Ju17O z_`x0pQTS7TvlQ@^_Kon`X$kpCq!VuD=&8M~e#Kg8jkg^0mtk6%eTlTl>dK5f_7gOA zprMT0V^N#KQqptg%N7+X6}qJ%P*j|n;PJQn%b))m{!mrRIN+;( z7Ha5kWwGF@1ekh-t?x$hfCm3mCc?8)7?Bb5N>qjAt>G5w2pe2q=XYdWRG$DdpNxe} zt1W=39zD&u0-aTm56T6gKzz1+D*oiY|MJUn=KopcuTf@2KO}w&e<#&Ias5ur?>qtZ zD{+Eq9u(hM+&@OmgJM@!55OQDt`r|qesYR2-*5t-yCCc|J!Gb)KDUcGcF8jJoM88e zS_eB#5#cmQk4wx~Rh{ao-Q&CAFySV%a*&e~z@TK0dQFudg8}+?ezE$U;IH7Og>$N4 zeX$dob^u$ErP=8y>mq;VDmZ5u7V8bp%EZJ@xfGC9=nr}6uQK!yce4n`hn0rOwallb zEuRCDQ(tOAT}t*V$nHwRCcYzBEz&S@A<&{>*5Vm|Mk$MDKC<;mh*7m1-Sj3bYYoXz z9ku-bd*Owo5&nlIM|YwDp@(Iy&J`RbKtAGk7AzXrQ4~8`SY&i9B7Fv&+>5beW&f0c z9d(?Hd}!a3UBSh%@s_*2uxD2L%Gh7HhD*EW5pJQFTyr3}s4V($ z|Ck?_(E_P!Ur^6&#KvCzgm5fc{Sv>^V6nC*jkSxapG7PaP#rl%ZglD6_Gr_VVA%XS zl1)p^DoOQO8w#10R4Tw2h)&-yX`pU3_I2?m>ZBg76XkO%AP#E+@C|-B=2{kJ67B_& zRhHrB3JzcAL=c;yEthL_upT$Rcugp%Og-6@mOGE_`$^X>U*{iK?h)WW(m@CLE+bjt z^ekf^^>+^1d&s^`pleQp#y3}Quih=hXEp?i4$`7Z8SN$p+o@Z{-R7VWq>z+2x6oniGZQ zFLa5-b4grEVw$+v-o+#mWsbX>7*LEqSjOJy>bJK84R(89*bXTx`)3a&ZT2|zI`J4u zU+1$l#HnAUcNRGv9fZa;HhoVX%`*3w`MF(qS(+Qw!saIC0em3?b9&0cW>fl8xocswNOe0* z@h$jX!{%nGnUnr<6cWfTJK(ZFe8esg0l0`>T3Ar9LL`qR&PKn}XlH$Ide%203=Ny< zBiu!)%La0~J!4FQAv^wjAIF>k#Wxb6d>Ai3P-o&~Pn!fZ5r-j9Wg2MQP%#Hh)ROFF# za)~6LL@sLSUCJQCV(u_!%34}6NNi~nx5)wX3!o`x4}PQ=BUXshWP}JWTM#2eI9*L7 zU+Fx|z6|vvnmd~-oztjbwd%p8u!&n}EjQ;A130=Z~lr>+Y~>>?H%*AmLv;_3HE!tBT2t3Iyv#Muv#2+3ZUxo1^#8tyk<)LARc^OIc5nTlJnbKT9nr?MBb1 z#5|^nlGunlhC1%mXy!!wNn$U8yv1WGh=)~M{u8MXI_B#Pf$78q&2{Noeg-KnX`l|X z#{ITu)9r4}LqY2OeY5hJ)1FSrFYWokLTbeNLQeIYjk?`L6qeGJk8z%_PWF9H*wwW4 zyv%uz^L+oMS?Y<=&hve1NY(Yqmb%`dHXui7$(apEZ*V2bz_g^lQ++l(-**yaoS(RI zskY`7glody%Ki1%i{hmA`Piv$rFBB&3i;+9z$il?aZ?8+`a1i0qZN9dI}JxX#G(-B zKdgGYjm-K;StADu{n2w_zt4V4v4OO*(9}R@1BnGoK|ej`qTXLFRzaU@Qw3MHGRGj- z*D1n-R#R@(#1P37n5-OElS0Nhz4R7senEe|95XkE+Okp~D?#PI{lZ1%Emia$wAF)^ z3WeXZUIPPCE^25rB{msOp?}#w2~NZpHvg(K-y;?iNAFdgR3;`Z$c|r{8!t;@ zF;;`k=0_w{n?beYJql`$hkfzicRV>-LgqY`<_a2m#fbNJE@@BCy`fR8?~4d`v+I8z z)-*dD1WmKUkHJo5hiBxq{~4@Uv*SMxf14ft*!{WTsz-9eOMjLd-uY&3cy?}l@)+^g zn5jVc7igsQ)Z%mCEE-!)RPS?EOBY_g-orP zUs^BI$a4==5LU+naXv0=4t*#SoEkQt*`5iG3!C1jR3hf=w-UIJ&d*{wo$)QHD_G&4 z7p5>@r>OH-pt@1L!=q`AR`YlKQ7r?c_wXw%?;P^L%OnT|dQW&cjJ$dt)7FL%Ffvor#)8Fb{a920*WV4$K!s!N zX->OZj^|td>1yxw`==B+SpW3nbVz(v{=v_lbeb__9JEHBPYWKfMgeT#X#vQ_p5)A~ zXV;%X&8KFYm#w!&tB5T zNV&*zJ9iWAlDpI5+uuw<>D4C`8ksgrdiN?MEl0z3`TqLL(;3|HiH;AM(g7Wt`1X<3 zxGJ3{yFs?Rj2Od)Gq_{JRq4DooB=qBGmkT;*!iIAlGw^$cY+p{QXor2gd=p)%h@B0 zM#cq2coVqOFQ>{>G%H3Ee?l&bHsj?&PNkp|l_jHCQpHBa+sl#?BemF=@?^Bk#*`;Htg1Cb(Y=V$rFGQaKgn63zZcRh}RY^KSlXTb%F3JG%u>oJVIM}@icUPVFKwZ23Xq^t(>q^eAj>TkMVW&R?F z1I||$cSw_;jrrnRs?y-C5+GJ3f;f4Uh{}TKJPY^A*zEL7JA|&dcLhM1oyJPmzo{A< zsbVsQ%m`(Xk%>!8GesR1-%`U?Pnc5+q#9qBm~c85)Ho|${U^Z9G+Gtr#cW^e1D@p`ZPAQ$OE5LYAk*qFuL~`BSPLA9zTOc9* zAv1#=l??G_l0`?^s}uw^4p?PdSW9SYGHvQFmi>9`@V3SFV}0a{)W~k^?jK0;Sitn) zbdyg7)%-X>JT>;!!>_C$UNMyU>* z`a*)sdI$NNir^WCNy4VfLV=-0pK_EXJ<{2cbT;bAj~_(&aVS5cyx%F47~l9O83xVbXDIQU=6PesJ$QBfQPNYt0@!5B!mrR3nfuy>p{HR5`IV7H%54@B zQ>_wx&T2ZZcefU99o?v8=8X(Cw=Oib>;~LjGR7YenP;ojO`1Ooe@`=?XNN#Hb;&() zxvsZ02Wy`AsM0<`QVjn^#V`;(8VNvM{GGz?VA2=diG@w8x$@#7s1Bss*YyP5LQ0s# zhHhW?g2J0q^zk)vdOJ3qo<#Y*K+L9C@k%zh_LKqlf@EG4-)cI8GC6>Fxx3gdkfi~&t`riI?3ib3`U$`$f{0#Fr zotpb4zyFQg@ZGQ)+3`O_=8_#A1rle6yYuS%9qdJRd|O_9=jPS7E}5JD7*s9U`9J@? z-0-z|<&VuP{||TNrvDWTXI6P_r75!NHCt4@l{I-u*LGAU{$l0ibK`Zq#IG77Ci<$a z{xc@J;}t4AW1)=K_9BMtV8`npULLrlF7EgGc8J&Q;yH@8iHR=KXv^y|p0I22V|40E6pdYIpH8wm;BuIdj8`w znR6uJc912WX{IkZFK602W4QGi@2PoO?FPdDD zh0Yc0>~??c{^${$b7vEr5(!Tb6VU75(m_eI`_i-$u76&XYc;`=|h}k>1Vn!LFb1OrxA?*)*8f z_sIIi&k-z3Ep}05vD--pVgBY)XsdboDRBTH{2ttudnLq=NC3>l0Ebhwv0_%pF02s6 zM_?(QMJo3_Bt|S^Ytt&i3E)=I(#mOWq>1PC%eVyW_BnQbf2=FH!LMw^B{!!Ti&kXp z9%IO>D|s{|UL22#zx@t!8<++vA_M~v*UdVXZfQ?%Q^c1 zJpW-(9p^lEth*aWXemyEC$V05c$X7;@7#Qvo?xW12}9Co88{!JE@l>Yvmw0AMtj-j z48o@W{D!oc$vN~0DEyFPL9gKYTAkWfvq*M6a%O86NLTw>yT^I0eH#E;;^8tjnF)#$V5C@niRnKDZa36lR{Pqf!{Iw8NvPFaZAI_S;^Kz> ziPg{ckB2?IBK^&p2tD!!m9x_n52VM3TUry#xK5Ahtw4`eM1D)@7BB1Dt^z5af_WOe`OYlXb<|Ex$^7cYNLjEe|?M z_LB@w!0d6i%yc9+Z4k*k+%{XL55f*p0+n|5Gx7W_<|=C|;6`!iZ6zOCOrfse#fj0Z zopY41VFwLi^8oo%kW6sWrM+%nk79TYE>Cv3M6H<}d?Q3{t(}T4QCrb!KFaFTVn%3f z#cpljeV&*myig2`3RN@Dh9%k?e^bcZn=YASpHPbK#kn9u<{CYT#hw;(7oPz{l{^BG za`R;4Df;oCe6!F!&4um9b8~KNok4N zXQcOc&=UZACk0u0vRnXrgaGys=t-~4!F-?s#Y%YuoMoojrLlK0W0(Q19m(MN|22(n zHP>jm_aRbvPa}|$f69t-C8S5@vItO48fry3l(wZ;l;?EW(-lRgMBz{D7|N7bZugg& zDRDj@TFk4kF0#5FgC>S36b6l9i}^U88NjTGk-#)TCdLcJhd4^V^ zqY(vzHN124#We=$>~ z#92~&9@#(1=kD_giK%TW-aMuDZ<`MldljyhBtq$LQ!%#Mud=9=z}j#I^!;!*Y5sss z&cDHF(v2KWBenlHnuT*C@lZ~`bahAjL_AiHU&!Y_{Fk;L3GEPTr0B2Uf06i!;0X3D zHnO|n9XL@4g*OahkKu$Id>jLYT|39>C)-NO_)L1J&~D#3uVIk0xlHFjbNge|*GzM} zAw(jV;cS8!?7U14*TU*O%s3fOzimt_OJ*&NXfdCF(%SmFo^|&7&iRYhPs)JEC*Oe4 zllsS}>mRT6L#@PpYR|hi!rFI+zs^JfGJf;gUj;P;GNRDjm0WgVk2Wa`M~3^65g`z$ z#1zsX-9M=9(vh-DC@~+U9WAt@3yUKQ2fwuAMHdcBC<<(R4IF&{QYVA9v%Mrta26Rs zD*!i=n>*!HG#p+TtLIqfWFdo+Q)&3Xma)|X(jED-VAjdL1)N^Lsu)v|^Hl)1({olq zD#Lq#d3I8rPpmog_7vv?7(tqv>FG3q_ttOggfFA3pI1UAL#`lyF$Hq^`Bysj%+GWB zxsZ&5`dLapM>|#$O()C5Gakjr+{y0YZ|3Lp@O{&hzR|Db?hj|d3S7u(mw~Mw_=I^{PF?PgHpwA9m&;R^Tf9lb~&^_DzW<= zfaV8yUO4;|L4U1nMt86<@}#QcrU}8rddmy2k7zqqzal8TnhwBoF8`90E&E;k#>yElYn5;us6>ukmj94cr`S}i1&3<7 z_p)G>;*7xdY`5rqaqTq;7q5s z@+KiuzD`j;l3v8z6I;#Qd$nM(Q+SyO+)jU2Kb(0ph93OK>WcoO?mw9X{ZsFk+qL>9op}qBA-eF)6UZAId4GtHt>${hg{IRe;k4U1 z5$5IM>5zE~jzN(t+D3EmEYYxKZuCMae`I|Bq*%+sX=FP7r(xnDfi^?&ok zrzt+Z|B7{A@!i`|w+WM@@~)ZuyI-^^{WsFk=povY*hI=e6{=Nhq1Wf16Y)(fbmpv2)Vn&mRHYwWXr5zz3YpiL!9%rfFo?}JB?ASh z*4&(@yk15;E&4aPzg}az>u2`XtLSlIsJp(BhkfTJs9(seQ&o31;M}U*{KX41nKOCo zG;gVj7c(OAoJOX)=C+~4INy`{0>gE1Q2Ot3RFoTFemo37q}&ufgp#Yv7b+40=lbVx7Sj^eDe%QbCS7or$!NchkD41$H!k&92E-uk(qd4b?l6A$OlT9EjL%&|Wh1bN%S zEPP63&g7k)i<9iVz z){yz^u=&r>__uXB4>kVZ2+_ae>ty_2K8W^4GU*Ess(!>xT>H!` zN{+raZ2reI{)l1oFJ+dpP7j-Zw#NT@IQT_IO#w82(5aXOzDHB@%f|oa&b;nr;$J(3 z{C5qXU*m5dKL0=k`P+uiukjZTpMU&0j$z#9iVZT{~7FE9bBa<3v(r1}{A{;zgrBqm8zN`B5QCnX7@Z~N4 znl0~XUAYffUaI}JF=Le!WHmoCe%jbV3eO>*nfP@R>CD4A6^6{O@jJdcZ2q4vC;!&r z^K1Oo!{`5xkC6Y|;qz;J{jmAX>Dy%dp8vPJ2BzR+4%7Ib=JUtt_-Azfd~w+P-`Dt0 z4VOQ%_%P|eRX=8yrwn{G{%VkLX!x6#$;uVi!`AX+m$0Y+jeVi{o9tV$Z1a&|BQPSHgOS2U{1YH8aTwh!1^~2eiDh0NTFvU zKbfbV?&Qw6kZJh1c8s0CQOWOi!pWOBBs3Wdm^&a9?x&yZmPB3za&tu@79!f`ALW~f zw%G*lW>k^9<7UBky(oVr?|-EQC4Ss`bU(`Hl>bT2KL<4*+YUAHPknxkWRE1E8U1A?)`y`jP6eVzl$RQrQVRNs{vN}#_R3MLz zjc+mER3a{Nn%UMMX}WC>7Qo!>iVe~&iskD0VG^Dn7@9is#_iG+!N=Q3g8i@VP}Tmo zfqNMJo5x81`(|T~Z^gM%UkVHUdH-dvs z%N@DB*YeW8-qhU(OC{JFTq*yS_jCs%vWcG~BqwZ6W3f~uiH*K`K~o1Qnp+T+f{LXf zbvqL_MG$vcpYZ}663O6~NrbB^5M*~@V!@(Wjh^;#@!i(2ns9teaY6g&y7+F+WDzK_ z0lx(H7p@%@-(95N{RQp(F4N!GcFcNFGg&-Q=M{q)OJzWR3jsi&IIR^aKg~Z zDAb!uCa0)}P8PWVNQBLc7KFI0Amtcaps$|;Zc7W&Ky|Jxt$wzJ^L7FAXO#wt#r!4s z2WtB)z-3=Q=O$Spc0(5w)K@1j6yc~eUyK@B%miKh$Q3>G>SPgd(ed%*MbYA`lhTM- z3FN1wp~ZaK7S7SJuk>qXFb?n4Bjun6HdITU`WOs>Aj$6agE zC%Ahk*dVz3<)2m}Yt~%M-els27QyH&HKwK0mTC zXGgDieHrSw!Jq+B{c^lLP!RJg$uv{7ogPkra>$;ZOp}Ey?p+4KTjF#)Zio*x9?fD=>2+3Yif@Dj9Z$*< z^Z0E#IwIu@n3tZ(1h`VORgS3pIXeNXG?Z<>@DENsb4OGd6IJ-9tjj{pH&`np<6!-Y zSwz_;?ajg&+qe66Y9q3~r(huY@2g;aU~!qZD=}V{itJ=szL?Bj-!bHfrrWC`Q;cgp z$rsYfASxk0vVHqDi*);t17d~0@Kna5d!w94@<$|2;qSd>DEMo<`Q<~y_0M|w@kF2G0LT7d8#^J3$)C$Fe~*o4@T8b{GF#ews~p0nVf)Mlt!XCZ#KUGGR|IX2Lr_6 zSpls!cb7e;s}F5xKLsZ{^Jt>F%nYz{M@B&XTg_vL>|_Ukbyw_g79HSRfAx7y9TWl! zrSl7}&D-NNtfEXggX=dFVAT>0tArK#tyC5=eH#QG)Z^>aJ2v1z@nFpA&pi{Nh*-(A zntyd`;t&mY%t}qM&j|k*Ha&2@;Y4Gpnf5U)rhjyAqk7zRwv@KW1S&Pn}nS z5rKI)pwsnNUFtt+{VrvCpW-G5k3kM2H62f(Q}$mB5?vgI_pz1O85=c!rO-{Q` zIBj%H#Jer_oCxp9Wg_04klX_6;6=ncUf>+3CEpYAZcBlFSMhF3sXjwn$0oOo=Q&mD z6YtoG5%F%q>6{WMNF*0 z#SV`zTgQ9ITmJW_7v;X!{wnwVx2?JFhjmH6zDs&D%*0>+(Xb)^`^zkT|N9e2vi|pz zy7Xt_A9K@ZLaO}vOLE(9Ge{3UhR_x{E9V_F4LFj=)NIye=gTYAY8sh>X6n-2rkew- zGS{W7zkC*-%ayr%eR8Bf-dd5rCYYNpedD{u*TSymn}@veHvM^3JpJpzz5f@W!^6T{ z&mPVj4IL4;wu+QcIVo5XI)#%G@<0#^F_lz!l*=hT`;aiZZ#8A5QB!rlK%f*#x%wG| z7Il?~q((vrM|Um?nnL7vXT^L}w-M&1AK~F~sq+e@32|&Dui$m5zQ)WLUXmNjHcP0v zy!ytO`Wfl%Rx#*Ur<+jI02(l7{RU!+D12pC8d{?Jal-0@XZpq%LTuXj4=IWv&E6E*t~$;mfBj?S!Yhu zB)I9aW9F@aJv~55w8aTBtluqkOU0`>$603=3rYH5#JuAuJ9zYw|;;gFTF8l z4(LlqT;ne6JDzZ+0+yJ0-!h)`mz)(h-YbQpGfEM?f+et@aeDG4~STWYG{m}xyjv2FYzGfj<+cNF5v&L&ANF&a}l(Th= zalU8kxJv6Nu^#l&if>u{w|R8qp96PbQY7BSk%r`@fxJ-DbWo&f2Z$S%kOt<^bs!5W zyr4oMNu50CdoN0Zqzn6XA{0jLTA-v6SfV35#MXH9AQuuT!fsH z;rQanDN`6TS5i`>KR}@sL`{&=PB9?yaOgoQ0f(+qd@RYhp-Oprg@{p_8U@~l8^o41 z!dzLVu7&yI1RZB-Gyiqy5zEqxB}n5U{uR-;A?8>_EIn9QYL05>v6hL7O8|MIS}L7r zsdP22T^7&k#R4K(n)@@n`X6Q%Pt2^=HNpA3J>|EeP6b(p6JlAy_;O2@Fs5$EA&f(* zKSLM~(#BlExSMSr22{*6@J9%@+=?VTV;XC`>M^Bf>o9lZg-&@OwV~Vf+x9{(|7-hI z?mN{59QkI3uUB;MQj4aMDQLzfcAIW`v-m)|E@cHv+GHj8zH56z56wn(!RbnMlvZkc z55>D{PxWujBqt7@M;aG|Sijt!zdWt1h%0=8soJ0{sR9n>hI#KL?|Cf+E> zM1Jb84J*bCOB@rrr#8Q_fE#3W@d_pnUR7H#_PF?<&^_xVVQnU%=Za;8$HjZB7?+ng zGxgDs_Zx(@mzV-8CRT4woI(2|YQ|*aTrx?spl2C8H zr7OaAP5h~`nC7Rpcg%&bI{SOs8hbS+u&G4B11I8rtT!{Xta`Xo(1Xio^;Z_O&UvaI z-cP;tCM*ulwl_rW%t#~&VYaM6LQHcWPUeqQz4{`>o|bV6?%lfUNIVeHvULlo$Hj`p zv0GzD$lL+Ah>0WQNbT$6M`m=)b~#|!dO;9@M6}y_b2&<;Zd$Yq=2S@Lo{?07&{bTO zwYFztFlydZA}%%cJh`@c+j2wNpw?xbh3|*f_L2;b`7)d;8T6I}a?M)Rv$Z}yw04W! zLiEmt70gOvOk;4mxgk?x@TN&z7tVS6(AwJkT56kYl3rpWo!*;1VBBAzr@!aqzQ3|O_dS-|zmC5k$@t5U=u-dP-_A|{PM7+HJow8m&27)_ANFLW z*_Ah{>QzTBB~n5}ls!&sqd*|lsZj;>q{6(15Z*bWWp8@dGGV=Ln7GS8C4C3Xu;(tL2_6>|=G% zj{D)RB4~)2xOjAJFkWFc|CCQgHZvraT_JT4{`31^mhP~kLrsrT8ZHC&6kBfk4jO@; zAYupv`wKO_M-J*fQg?F$Ern7_w5rsiK?@RP1zZxeUxRr|&CA-x^W^UM zJEQTD9(pv~6bKF6N>7yhgqqe$wMu)&tZ|9YBD8W##&$z|>U|k0uI9Fp0FY*9Q{LHdwU{@UC1-IcFZgP~?iX)P~K7 zTclQrTrnKUd7aK2AXcTFDZ)^MyN0p>dv za#M+Osyv;`Q%h|T^kp~>rDt(H7kvfS%Sa@|q#mb}00v>jp*nN_S7=}KxCS%vTED-JL9vOtehGcQDVrcZ3{*MU47IJG z;a#86+n7l84!>L`2MsR~H0LM>5)E$}3S%ax)$qzFpjS0vT$x50Ps1xW=O|eq6uN47 z_G~YBiaxiNd{&bOAXJNY_fx;r z9;)!rp4{0ZF;dd77D3U1t;>R@jSSZMV{She^Lc~Wp~`E~oY@jfppg9+bKBRui*B-O zx1A|pRQp)a+yUcZ`E*$Z?)fK(y>!C8E|l3=l3X0fi!Y3&77!*PeoV~VnABcF1xlTt zGRe+$RNPqO{D5cJMPs8R%a$Bx3pepgY+?v$W9d1xsEC%S=Q-!bY|+MxDR&IzKp?dT zMYObBL%QoYcK5~h|D_A)Kf737|L>2VkX%Cl$EGI03KAoy(;3cM{0x&C9Z8NY%Zneh zOIL0N)<|8&W|Y^PJ?Mzo!%>@x31QSTRe;tc0gdDWvHqzOBoGJh{IwgXVzUa96d+ix zy*O;wfwswf`9ACXnWt`3;QPLN@No5M*?gaaj%2gnMt0Bj>npO2#Kt6Zda`w48O<$O zY*Gqf`Zk_q=W$tjq{WnxrU^#UGP15^cF_Fva%tA8IkUNtr|}eunK|iS&ev(sj;Lg-lf`;IKA1z;X6@ z76sW63^i?J(I=M$GMD{@nr`AtYFQ9KoZDa~11m^2U_Yum(h>q8UCc7dXfVO*SxEQe z<9q~T}TG_wxN}Tr1=APApI7mE}EefHPT>~+-kf3 zm)kXmI+%VuVBFL$?cao5$8G;)U;B4~PFQGP)M?7L|N32C`|l#h3ixLIYwatv%*hG_ z!Pw6DW$af%TF*1fZM@&>o;1|SVMozYCfU`l3=Xv-h;wNn9Z3UIgx8)1r zR4-0A-wZTyTf7ko30?qI>C<)r`CF$Hrg3b;Ll94g_`zHx=+0E{HcXFs-0&?|Fc!_p z*umSD@_F6m{F<)qMjf}=WipLs9~~+(%kGV3-GCnFh(JE=h*M~yzxn?6HO!89Le17d zyzMF$?w&!lm7bF;AILj%5Ht_XRwU>$|Bj@aZv#W{wM&|GkD>u*jpR8;$J13l)HJPs zez*0vNm*aLwyq;~+n!fnmfnm~tAJOB_Lugu>5<%YX^(V^Fa0mmIrg{j!o#M&$vOiE zeCZuWp=SH$#hnWIlQj9ErWU3KKD;Y4PgiH2R(Mafi$w|CT)R~NTq)g@ zf19tAUdq4CS4z+1-{vcC(7*B|{gQv1uaq9izs*-lhveVpD`njBZ}XKhK>25W_caBu zcRh&*r+RFXE}TwP;3%B_cA9)uIK6=vf(xgTJLOT~6rUrHH%P@p*!gqev zIvT9*F84zkzdGLWJtR$AzvjS-_V#7KaAj&@5`sm(3Z#E0(F2jtNC&mBKqrK2uPJ@{Dq zRb}^?eDJpL*#SYZ_FylJcBtuH0nmY%PMcrn$wH#RypH8qOgn^GUv?nC7=X*^uVv)s z0L4MEl&*Y__ri9bR&ST0Psp#LFN;_42y7=>95Z6Lh1wHk&Q>oO8=zcdEBc?}q7}RZ zDB3z;F2-zkf%L%c^DV2S2Niq|N8L_b1LC;bQACs^f&Ncw7rRxuPvM8@g4Bo2oy!L} z&w5QF)(@N|@G7#CVmB7fAX2$DiA<8`Ywl2*J1FKhb%f$5<6R;l=ljfQIZ)@X@V@`l zJX&o2CeoVR_Pmy zWNVXj-#5)~4q%g|d-`C{W7fc@1q}lBe5X~4n5CN3ozi{uj{|H)k78j~%SMZv5I+db zp2b^aPP5+`Zb|=J+=O^V3coDkIp2frLIdzgoX>u!pWivfor!qwIo@p+F?0PI z1rWj{H(~g|{fUoyf4~*moAs!KdYtG0NR*hM2q_Nz*F+NdzpH!sL&&4SyjWrc3bZJd zho_XwGyFleuKl8BnG8-pGeAN}F(ICFzBn%@12|jFXddWgtA+B?F4x(Ui;uBOsU9h0Abh!@xkjG@jZu^>UY^mwbyqn z2pE|KZ&Ha17LZBp4)b!$547bg%?q+%U7QGRmcreZw(&};){nkiW=#ALx+1jJ58@r< z_0d~WFR9Tl(Bk4_qJY)AOX(~<5}Kqx#waiHXpl#*Ed706H#KwgfkCK=zD{-YVPyXI zmru%hxBhjD5DwJ-#hy#*KSXw|dX)~8!X=B@Ha}*iu4a%MRWr0<x+I2f3baPy-3= zm?(8aGcly`Fy}4kC5%*0wj68@sYBKcoP|yhFB@f+sSsAuA*XYyIyF9`(91H@fCkD# zg}BSz%yOSlH)_7c(F&_T~DO#NV5#1_D{-N{ol`H619&{!B^~R$*US@03HvymVqrDGrE%QL@ z5y8F)(-cG|2}A{OJHQZqcne)5xiLJOpKj1D(<={u4@WXtgCuK#K}Gj2;iZjn>FA07 zhVql#80m_`R-QYI{K6KJgE9%;$UX{Kt1cI!A@=aX(vL>7t>+d(e@B6=}80u zKdu|svN0{EsaG!~lXoOF4bI0*DpS#3Zbd`MlirWAr=g870Z`8_R5ALHaz=e8b=m5^s-| z*@1N5R4)W6XIsbfKg0SO%Z_IrMo&e=Ox|#lHN_P7=zr6)1Q2-yTyI0Cj>6*x#77$VSYElD5J>MH(te> z%=?b<#RX^peDz<);?J+<;EpSo=fd}c({tV}f4UO1_B2n~e{D$pR2T>5mtvWFGl5D3 zbMZCV!FvOjoes@>S}j6JU4yxinz_Q8sO~+^mFz_-orId!lgw`Dc1P=QKgzj{&XM&d zB$NiUM>$DMvOMI>R9^BqEC?fG=5`jlyC~R#nUog;rpbOi!OG4=zzmxpH3G&&znFPb z&2fSBm}I|v`XHxnLSB0OP!EY2+eG%QmT6aropE&yG}E&(Ikz3Bf?26~QPwJ~huU2h z2v^E-ODRCP&h#HLc=lO6beuUpXMQ?1A;|kG?>LFB`QIxLE&T5Ta?8gEIy)TF)mUUs zygmcWLmjn%GIe`{xD-5hs>7f5aq>Y&YhBbbvOUECbtQ~J$q~Bv^n@YMxNJ?_+B($xt zb7GKZ2@mT7)MxZ4unM9ja5)N!!2u{2x=xlI@A=cpttl((fjpvJaP$R%#J;HzGEPb7 zg#nX7F4KW>@M2-0);w*EvUt>P0qw+F;1eBdg^q9!T$Te{9(=T|dDj73$R`v=-R&2- zV5Emd=4&TP_x#$FJrCZH8YRuXGrlMf){ywZj$VcFX*iu+Tm%UAvtz*fYzUx<$XBxx z*|;uhuJ=SXLK0nERBO_zP)G=vr)JM!zS?J7gUK8b0>eT`8nr}FwjaiS+^tF3$?Uk6 zO0%yIbrjLI|9vm2^uND6HuwF{=j6Vh1Q7iBM|7$Gwl3wbN5k{wZ!2MOn8UzyKvsrG zD#xITS^{OQfwCyWEHmfOpgdKWvnZO}Sh4G*`RfygZJuEMsE=sy@v?Gs967sKX4Q15 zJ}Lx?d>I06jj85md$H$*gn>YP9s)cTc$0jtAo*fI9C-5zu-S}AoEllRjjBe^2`no|HCi`@^za0cpaSM*(nXTG0op#Xbx{~W zyLwJwDe<;Nkz{-PN-{VXB8oewL7LzVhqH#Ai@XmFW`AANrL0h&i*`P#ZdDsG`Z_ z6r-U0T7$883QE%j42-o>S!bTQSjy^nD>~$ZR-pQuL=Eh0$NgV#oC0^msYT4nF^AQ~46xC7?Q2l$%@!tSS znDfIN+nEdz<8Jr(T-jlw8Y`G0zJjS~aOM+(EmJTRi8-t@5fGQDiFW5B zWm2``+yy~F;==0~@v9V~z5uve>USPp{VQ@jL$BT$y4nF=zn94tDYYOWrk!GQ53?tr z>5Nb0bBP>nEo-R^HEl)fiJ4)e1P0&HI)ZwiUGw_81@4>#6WYH)!Jj;(xFG$bs?PL} zL6BvFAdX<7;x!2JPsA1a26z>mL-^x?;YR9qyh;@R1$)!FYdXrbo1*=4`Dfmt8*8(KA<{=~y}~ zhd*?@v@rL*k%9Qopkr#6{1>mvO+R#Y?)$aipTGQ|F7o4|F73THFE{_w$L792G&T2q zM3?e+K$l1K zC)_hZnh088k5n%%K;f6tChiI_m!SQ73d2z5O6;s?GwR?TQRP8YT63%RLx>WZ!#dqc z3g`~SC;E?C`(kXO>Pym(GOjpkol}(RRd_$v;YcdJMQ)84pW;AEB4m>AO?$RQ&fp^3 zE}H2=V9EYsmYqM`H||iA?1Ku;Wn(mrq@14`ESy|OVQ96S=f^}Vm+HYqg!DG?rE_68 z*&asj`W||LvW{i5rQ&^01`r~0ikLurw#2cjTtS4l!xLN7ST~b>w3k$EVn&v5=8vNS z+p2sWijV26sx>vXX2i4~>v*vtP7p(4^{Ii-)#pKDnUnJBj>Isr;;|g^I1(LhhoO~M zrxRj0E(E3NnrAo`!B%siU{ORiv8?e=K6aVz&-~Te_pe1WMBkP9!#(ed;HiQxv|6^- znShe29Sx~z0YFxGzsq`y%~&tnvLo1s{?&=XaR#0#MLn*&p3)7qroYVyz@Fs9h6#A( zLaV<{2Ffm$vS4NMMf46FqtnV;B^|s7tYpB|+e25M&-}@}36AMe_T;o; zdoY-<`hmYXVci%rK7-k5i_oy?iP8$9mM|xrOUO@^OX#2y=~L@vVL8PXT3sRX-F+gd zmco-CMIlUW=hPbVubzN{6}7OSYeudGf4(%=-BL?SP>m0C+lB2I!iUvnc1 z%X$IvUzkjug|P-&91A>ub^h@Tizd zYE49I6_w^TG2`<+oSK9@7vGny9Bd?&*(&6y6;f=OXi0L4DA1XkemsNNaA-?HQs*q%~u=v!}WgLsTPRe6W2_#?3Up!jkTQ!(Ij7$hY za7TV2TgX!a&NnEhqIb0O#GtvY8tZX`Ij~7bOu;1&w9b-ff(Sr)sY_pJow2>a9Ph9A zShD|0#oSl9f? z!*7*Pj=-g~b$WiN<~Xm- ziEapW8rA&j;^7h?W|V11Zf(pCZsx9_aO}R8@RSempFv zeeM?C5~{hE%*9-1JCLpZ(j62mO`TZOdP!$!(tF%!*Q5H8(A0OOD=Vqs{s5vSVevqa z9UJl!`*PQ5YJ-lDC)|ql(fKj;>T+m|n6egHhHnfD@3o#5QTGq$o>Dy?8E zle<<0UUaj}k%M&OG3DBoWu9JXhbDd^$2xayym$77-CBETtppD6)mok! z)|ltWE-zLx)1=T+djBI0}=5M+}CHii$nSoyuM9<4Zf?G26$rrhhEwK+eW6#kbO`_Z;rAq}u&9AmDU^=#QXp3f`qlZXnQ+p{ZL1uW;F=BcnnsCt1P6h6cjXM4Ya}IvJng z>ihRsW$p7XfimhZ$$^}z9i54{02w>RR<2?iR}W+T+4~hqG!bj~PHlf@(gy<4Q1j22 z=G3?yz3_m(NgkIMHGtqH#<5j!s5{j32nk}@KP_9WYuVo-?0IJccln);w6AP2F_p#9 zBh@ptIKVFzRfrjE-b1H%(K6H|T$ovryRl1SsbGW1Ey+-z<#1wyJEPmicgKYkG4tFJR>*y4W3eMSJY^7>1V zM!P>n?6L;+J)~i@{RRjxb>oK-nLsSyLLC&5Mj~ok0&#M;1mY=XGD9GwS{9$&jHLuZ{$^=J z;1sD!;6Jl|qPgd63$m?Cug<`yU1`MjE;M3Mwu$%F(EHmecPF6#YM9noo~`jgu~{IXi$s4Io7=qXBA_p$R8~M=-+J=S>S?ZkKIfgS zvj?u9m0Vx2``z?CCUcpLZI7Ot<8N%~!4pR-Jy87}hbpL5vH9*?MG&C|O;#EyllUd* zKS(cva+n$8GsSH;9!pIT6W*!GQ3Xp+3aurS&>0$09!~(|i}->3N(^_du)(4#oCRMI z*N;+5 zJv%s%bp>Upu(NVHp(l!l(W2G4MZa;j{6I?GBlVGGLBNqNk?)0}l23J!Z%Dp#n7o*| zmV5v)eGI$+UKcaJ(`-Uh7Rack6fv;B_1f@U;gAj7^r280rDUf_wD3usUB== z9uARC_j88psK?rxq26I~mQJ)dcz~N5)jgT3g9bA?Xt4dp*9L^|;^#ho{>;yd{JhOi zkADsb@5|4j{N&{q6bAqE{{lUF{^tu*vR7sS{x5%Mi-IlY%A;QF{J~paIxJkZ5$$5C z_&&^yInTX6Kx_&XrgjMECRP>XNb%1a>RiDgb7u;efco}*YCtKRa=2iMI8e-j=}fJ9 z$fOXPlN+P$bx76q(5OoD?hM5ySs4fQ6p0=A%QOnVGF6?7jDn}?Wixx{xLDWiT zKHufr+4>DzZM@EjyWdXnz9j~?E-f1_LcIzr$UUX6Ksxzbh6a$AK9)#Zwwi%nkx=s) z*pf2EAeypaT)NXOCOgQ)Y=LSn#`O{vdU~{T-{LzDBO1@w4;I6Ed1`yh$j*H$?>a2Z zh$|R;p{UxC%RiDu8McxQkC~p&O&#kCk{b$| z9!tDXwLaZr;CiB1Q=(ZEp9W~a5l1mDW|NsDK&GB3*(()HzMG$jYEYCqXOq{e^CQZ5 z6a3{vMP3X#S6etb*XiFp=LY^Z_B01p&~fh0Np7qZ*4(j?4$2FKmyZn?nYxH-wtyBAVoD5N(O7m3-}}_@&9$*dAYRd7}h%ixi?BHTH?d?6gvr zz`I4&4~LpgBh!k}F!qxrH@%Z+FXP2zT?WFwmQYL=n5yya1rJ==#ZXnuj!cCw(mg%N3(lpx)D+n}g?uO+vJ(^2R~G|gMpFW;Bv{wA%C(BXva}el__a&NK)$gOwk9f|t+Bt%fuN>c z^mg*PhBf*zuQDm8)*1#VaY+lYZO^$oh)buuKZ6V+h z)s;q1Bj!%f8TK`bm$71h9&2VaNCCZ4s+sYy3dIUs*>O67xtw2klkCVk^43J%!5_OO z`W!(U^UG>j6CJ-4k>Oddmd3bOMfl^Z*j%odlv!5dxZ?C-D3<)jA#CqvD@`BnyvbX7 zKj&5XbBz-qXU80PvGZpym$mn~RQu}(ee3{E?9%!_W$c2`U5Nk5R0EC+zRPrU$hvmE zoyoV*8|)z;-`vyi5D#8gP(|vsdKB08dYKnd=IhpAgBhbTco1=mc=?HA^!BO&xX0oe z+g~KwexbFX>PafmZs7#s{nNz)@I&|ws|LDLQD18o*eX$8f2wS*-lQ*jv6DN7P#WsZ zBAyiu6USDqcLsXEj+*6%V7ine?e*qftLRn9i8hbniFHO89?N!S>OM(;3pTqS|Cb9A z|9^N2fwn*4(d9E*vi)f(4eB%C9cq49JFnu!Ps(2g#2x{KSCdM<2xxUp1j%%n1dFy^0)W z4pEgv%~hN85eo_UR+N0MSG;%~yEb`4wzP@J_xR2okCxVq?Vs8-WV5iMNa1E|VP*y; z$lf|u*ic^DNu3*TTRGNk<)~d+Ip|Zj^7bZQzc%~>#tbE8_f<64_>rR0N294pfmmlH zJ*yC)g)CJBcd`sUpV9`gyLcZj50x}{q25p zxA-(Xi%&=R@u|d*Pazkdda1w)-ChsVA28&7>jEso8N_sy+HT9+*}LM)a4can_yPqJgwAo89o z^leKQ{l*G?zkykCI;<9m#JJ{SCCdC1WqYC3GhoLO)mBS;_hpLtJ7WF;-xd31sm9E$ zFi)y37e>F~n|P=7r&`Pu*eHgnjiONACkLk2DK^cGnx=g{$?bT)TdM@-iF7Gu2iPy@ zM5Z~JOat5;nlc^-cP}N;N9LUy7U`^nR{IWrQ#}QRhv_<9#d{RR!8QyU_w`D$HBQ7l zS%z}ghi!O~i^ngqH(=#TuVGDzM$JQBir4TF(%_q5_Gw`DaKY@o6{q*{(MV)ws3bBo zvAjhhK3XUxGV>B-<`b;U47EgNUVv|2fybOZ1)^#>Nw)gL~Q@ljKe z&GS_%09(#s2II+e;G%uSKR1WoriFjM|3Q4JOK;!*Fg_teZ{Pn&n7PZp-|rM=uKauO z!21zmxyW>O^Zm0z-&;Qe!WxID{$Z$$elZvQk=`Zk7hanBmAD12cR!}CE|Y1~Z9AHEWn71FM(*RWSAAv$DMyHF>k*R#Bx0F3 z+|{R;iSHb!6Uq)E_c+J<1J?qZ4Y)q{NnX}%r!fk%V_(1g7ggP5u56yiR*t_^(U=2cMpOXJSsxvWAWjs0>C}gM$tZ8=J8<6h@rKoSnCV2 zV!RK(5=E_NgwuPgaGLHzH2%jzO$q8uoy1|_P*bBk=IajIQ9P=k7n5%n2IMx-h}kgF z>q^r&zQ;Jr^HV+{*#i5}>I0D3-0@>F96I4f${9B^Z-9yA-2?m?B}E-v_$Dd z^0K`A#6S^m^{#+XQS%R+#+3txTEy|qN}u0lw@r2uWKqZ|vNuF7osW=flB9@SnlECn zCzo!7&Zt}}+sZz<6y$E}<*oqkF|mo6RX``e@o!}_{7f=|DeFYdZLc`>_j~`v0$= z69n8-C%6`enzjk@6#`Ycy4H<%x)ab0M8^Ljqio3Cd-2*$ZK`;nMYgbm+_ zC!1XltFIyz9=zZFcv#oN1J%a(o*qy-yf zT7;X*26IZL>O)kBO6-L*%4C-fCqgmtb{%G$AwcwQrB~};aM)gcd1fkbJe|1-xX5r0 zyY}k2vJm19>1z54e+5BK;cwNBs#l|`bpMvU8JFRoBwS!-+5CBHRERT&BQFVMBZ@|- zsX!8ajP?y6kY%)|N6l6;SZmPkOh#n7Gm|NY(L#N{?WK5(RzgrUm_fFCc*?Y1%LmL1 zU&DTo>D3i{^Y`kaoL)_dniITgcgz0CG$@lPr&ow{atD_steUIdT1H@ijQSwwKkGd<- z{g_t4&~DfHtrd^E-#`88{P&ko|5jPl;RZQ{y7(LcNcHCBGtm)75%?`wXEyzmjRI~V zw;LFT=my5!VmBSKf!8(l5Kh0!}qrgY!~5sl45BQxtgEut)2@erzhoXg+e z5>z&u+egnXK}sQ+BNzQP*MJrL6KOyUz+gxv&k@th+Df1~#i?6vp$Fu?tlq3X&7)^S z(GVNyQMjdcCVz@sYR^g4mc$zKAfQK(zw=S`pj1MIy6^IzUsJx`{G`Nk7Q*f(s-53L z6TQuGIaq^d)X)NHM(&sGMRj}gQLdSO6@MAXncd!yp~!X(J+4qMY4b2H?jp%SPJTxT zzrDWFjKrv+*Uy!7-X+5^8|x%D0#QOna)UP#{}5WvKPP7tp(cr;o@!Qbz-Y%oFC<7p zy=~a)v=SfT0c)VJ`fRBAS=u9B!BDqQT8TY zIaWs~3fyZD4tM{Eto5Bg*FjBp8=ex7Q#RwHb!L<`a)8&z2&KPE=uP*NhM%K1X~Icb zZO-CJZq*BH+g#ASy3TwN^G420NZn^->jrWeWboB%k%371Uy2n`^MfzooXhx% zv<>DYv|2*x+412Re@QEu9C0bNU((ZktLNshvT{4isZ zuH6H9%N=&dOo8&00Qzo8ax__gNLCJJ1GiAq)$%NEzeBB)gr}zOiNK>irnFTi(oW@0 zu^I@HaUFE1Y2+^5_&6x_C3jjvV3*3_fH8%NuXU5mOM3D^E$Pn*Ab&O%PRvADD{*D8>E`rz1&_o!T7%-5(JeV7M=sePSrnLVsxp}d zyEztN>K&B%+I!CIjCB1egli98HeT+X*qy;>pJeXA%cg&0*K`+NHhtl)=`Or%dfhJR zYRW4n@*$@c)0NV?TCikkiyFTM=eaX6XM2A1WvQL6qxcUXeHlmb8M+B8x(>7fM{y>; zJZ7HbUEvyPTFIm9EBMCw4lpQBKQPtGY zt+#j|rN~7bP#I)LBii>!s1b`dGe4i1_9OR)(KWhxk0=p5MQ$>UVOm!Q-cLWNAleZJ=kg?R5Ek%6(iUjURlSse~xkGWzO~ zOP@|n7H5yBbDE~?M@m-wA-WD;n#h>f_m|Jb66!-X_=+3DIBU+|;o^EoZ>dyUHHinV zSe#EBxD})F5`A$?0UF7%UMg#=I6fF|v#&;8i${KbUxD0VsK2LpgITx{< zo9}NRux3?feX_m4?1MYKF6?E?S>~&H>MX#`OH#qn2P9_Uj)i^{NvR{2HJ26pybJIx zu*cAJ7k3!j-?%}53hqwsf#_p4$Y5qS7kzB0yPF%YpKQKiB}<}SU2ff_E*T98Ks^pX zrf14Ub%|o@M|Ktoe74sLoS1zJE&&B`!7G({jf;uz&^f}bBf(Py69Uv zAiLp3ac*4PDSxwFWVgo7R@Vi<7n5D)0M6FxTvj|iSWcI8x+UqPF7NApkL3n%MpUMeeM>y8z zLTF^3nQm3CmWjfYn#Ky2|XJ~NV2@2!X1CN{L&51WC@%x}u5ln3!axZXB_pt9A|D_ZC=B-(=l(5)|9;Y<# z(Dq~XBFH{waet*v#21fjDG}TQHh#qN-2Xd%4d-*n2qjpo{QtH*jtt z>%aQBoM%{lw{)7lv(oJ76 zwi1@UViduzr--xDKdT>Dx?mYM8_#l&D9mVIRdU3t;iFeQe#{f0wf9a*?p${9shofe zmk$hgmNjobd|+7iU-HuBZFsEbr4MRjvo|k2z*?dE%YmT0bdknzN%v4(YkDKm@8GA$ zJe`nOy{&;QYHt?XS3B$FChEJLpI`E`j-U1XZ06@-eqQ7!uUCGrUcCzVk$;8uPv&>cws2I8x>)~UHVherN0fBq5bs_g1!0Q7nS9{zx+~e`!~Fq`~LWZ z-2AU#y7Sj}$A`K3_v=#s)w$^q$zUTY3xA7X1=Ai=4wa<}njX%iAJsLzt>U~~fBHMR zya&$DO`p=`UBaW9YXP$7AKp}U4WH^#*Oy5gn)=ioWnz31PurjKw}IW)JUlN-;%BQ) zR_9!^K+X#9qryHqY-sh>EJ-)*=bE-dgpPByNA^B~8OS1jFmai!d?KPk-7VZ31SsTzY zv*5-kBGQqBRuyDGh1mfe&PQ>jHwh#d>!jg!Wv31ZpKkMOHP-52jwXBZvZB0rt(&X# zLIM6aHHWqm(pHLM=2q63=sL9gJ}k%6YBi^ReNjY{X&gz64{DuQ5RFau`g|+o*6s5K z@+2<{U^EjnaoeoXHV?|SDQ5$i6h?Lg$C<34{}s>wL}u%{_g=6Xe4R5_3M0Xko9EOK zP3+sN&y)(V)eyCv)#CPg5+B`O-=$f#*RsD)m6Odqs%W#bzx4X#Wt<3X+K}zxeC^?K zEu~O-mo%VEd^p(`Puil=ax)2a0{^$)eE}n6gBly6X21Q2ZI$1U+KOsA)>%QOsJVz4 zx?5CbzST5uTesC57!K7uFg@BN00FJLv!ns;|@va(e$74ReSlBjg z$>F+U^N}je8rAJmF;-r$2!jku;JBc9j#T(9cU-IQ!c$^eWYGyQ@3To9Ez_h|acfYv zhnwk5G%I=s%J*PYl*>2DtjXDc^xu6X>i_hkBlHkl3!1B8G@x3R)GAz{w@BaFkNWPr z7v8>SOKE-P2x~FV7R$g`6p|nTO;2JkoU&nNt)-{W9aPgDA>tCIW+%*tT!i}zqJsId z<<{q{st7MvBJM(_v0DwS*Pv&9-jvP?0B;lTW!yL8y^oaEdzxN`aIp5$W-};K+jR#Q=|Fh|Bx#_y}?C!bdG1uj$yYrVVzc@GDr6;caTX#0Iv%&d1 zcm28c?_JZ~_HBCAuIX<3HogBY>1|Drc=N=|e)(+$pG00;!{3I~Z_9)W$OhHf@J_i# zH>_cj`iS8x)HIEcBJABjrh1pd2ViJ~_(ZaGTp-F#;PIsng(;L++TP_@0 z;!jC`|zxh8q88_-i7&oNk$t#-K`_8bXb~R!8-&oyH_8OqTinyn5ntjN z(q*@y3PS;TzLm}6!|MOK$Bt|9^YS&;~m;Cc{^FvLFtWC3+SjOyS#20oR-FacqJSnUX8?IawbYNqpW01CpH}Mld zkBh;Be-k1=@D;Jv2o^?T&NJM+XpX0PG48BS?9W|WQiy=xkhyioQm`W_rAN7+Z?x18 zL92+ZV_H5SDj~%mL{hXh^k|)OTv~+LNa|E<;Grf7-eh|>+Sj{aYwd*AQzoU4cKh+x z%?F3guT`Irew^HRqTArn(vOpM7=@ncuog}TgBeaFTV^0#ms3=(p874 zLpJ>yr@2+V^t@7T>AOI{H^HCrqm9=bL$*-Ue?`^$Si>>fHnBmHCr+r5D!EOml(C4} zvP1-be#%T94r(wcS>WZ+7Ip>VSkZMp*U3DkVgaOS&U3Abj5&a4F4*E$ot{7DjBGTQ zZ8_0g5?|oDS!q=*vcIRfb%Bcx3C~-zN6}yq%n9{p@5_`*3OX*QhPL9R2ZmSm855-a z`)U8A{4rCc{d)@tD8u2s+-Nd_c=X}Ue39;}>o(%tTer6SMcpQ7!>w^FrxY z{J5yO-TD^DOr$FtFHu}+T-f^r5R@Vk!TQBrR% z`IF7bT9*jr^mUtlQ=9DXX<)G_hqBA4nU@;V0TUJ7DkY#UBYh-6;oj6rP%-02PZpQq^}7_udnF+z zQ0Z;QBafpT3lp)UU!t}2wY3QSvSa#;m+gPs>N;LRMey~mqY*{c|2`E_$N#<-x!eDK z98UfI_W^*{_wG!AET}ww^;5bsy3ocpN%wuz{N_aUfb345_Ug;Zho}Et>hi zjo}CTHvSSvcId#!6qd7#!O&F)i&3bob-{#zV!Q|w*>2$>VP`(S%rMPd)FCz^U)o|x z>+hyLo14}oY3~>vNk=Re{iP(=N%^OY&4VS;GqDl)gcd zk8+deQQDCW6RO9lgPp1=*1bY#;8OW6qv2O&)VWCtp5^vR;z!V{ltY}4U*1WD z?9opukYD-oi_k~1T~Fch+C$B81jQM`lQIy=N)F}X7wYL*a!Fop_dBea$Pm(-!> z2FY7C-T669H})VJ4i&JGJ)GHZJ+C13hVrk16Png1-X*A7#gHdXg&$4MpUj7ysRuT6 z6ukMP)C0-C6~1{>^8H@%h~zny^w#D1c`Y1p~o=SIsH=?=lS|Y{AMx95c$S^G;jxWQYR>;#_ z3BR55BZ6guVGVey!>GlJe?IOJYJv({$uJJ#f%;?XM)l0!QMo#E>+(T(UEri7^Nz%xcxTE!4V)@({%eqv=yKwY__| z)J8RlIkvXb*F8#Yir;${Z7*>c=G1y~U~d&}spuGI?Rj}9nJKnws2br_2gZIh2Zv1$ zbr=yu-WqK%4S&!)V1DVuYHX;XtNX%SXQ-#}9vx!-7qH02mtC|C`IZ$JsgKo}8Z;K7 z;WK|Cf6M7sxgU+I(Gy2HFEJzD{7E2l=5PF;nR^q`^&waF3O^4bPa%&K;U^ecT`k0l z#iaYGIQ2G)?7rO*=~Je1>0$0vhMJ$2`94KejYoKFlPO)b_n5F7?r?hkn5YP-8&p8; z8t(ABQkW&(jGQJkm1EJNCZTX_MhiU^n>7+77qRtwMrk`AS6<1-s9afjqP3PvM)8#+ zb_pgm!P|hi6W_?E1~UXzgoxtxW)9#Ih^&v#$Hi>hvi&%LbPa5gV@Ih6U$9D33AImjce{_n$m4Jc6IU@m#~-_xO7pf6wP%|eR~2yNsuA;bPk%}rDdK3$B^a)~5ndQXjixO@}?p0F-7l1Wsz1Q4&pmckht+(F1 zj6y4}ab?E&P?{>D(`CdY4NAve@_OfdlZrazM5L1+7J=TZQI%FA)|LVJU$>l3)F$c4 z!PEi}%IS-MfoqC^X*CAeOE{QhdlqpLz2uBNq8p1k zw#Jdub2^?O&!XL~=_DOu9mWs6T&C;!$FzV`>t$f%Q%N0@jg-rEoE@EY3^xj+w~8LUIB?L-6&wlLm$>Kuh^q$j`GU+Q0I?hUXf7 zKJ{YxZ&(1h=`ql%SMhy@+5QRO$YB?I4}*lMPxR-KcS%}DQq;V|c5u4qbW?&<3Aj>Q z;o+5a=FcoRF{csKc=3e@E#JoJPWHEdjvNv-Gf|?!2ILkD8F}%&$#9#Xx;amGrHf9X z@mJ%gntND%shuEAjjWlHmJ0~$zPT6EmuK#6mnuZGF@dc>&@o1%>po#+m>6Nm>z*)h7nW!t6L5G^8|50;>E4?EH#m{dr zM*v+B$W;nDgEgj75SK=El}v^p)-;&+)Gycy^+bvEM5S|C+K4`L@AZpH4{Khzl){Cq zUz$<*<;e%6J+*m@>v31{rp+c(!KXML@`=F4Hea<3&yPOPe>J$(fG85SsKmS_!W~2> z2s=7yHw5+&Iz{Gk$EC3y%2rBa=1Se^3Mkr{{GEzxDUPc$FrlWXQ6~sJhdPR*<|E=` z-*Taw{V^-g*zBJ;g4_)5UW1U|^>N6r-C>9?HDlPfKmrY`FK~Rmy3K+iGExaFVU@0?=BR#?hQf2z?W){-=p6 z)D~t*nN85rtUalSPpIS(`O~D=D7FO3>IpC-LgeG%F*4-%I<*Z2e72zu@%zG5;C&OD zP>1-2`M!xQsAC1+aE8T56Y$%BzPw3hEu5a8o2CY!lijpvZkk$uhPi3Ot?8$RXyct1 z2Fx^e9CbN`n&vYS?F7GyUDMAz<<3eNWlK}&=qv^;V`m#KjDhX)jRKo?TFlsm#$w6Y ztzD?hHJjX`{{3Qn35ex{2F2KtZdJ?B^^6^y!8lZckTGvfSMyMD);u(qdN2>6?0Dv( z8V)gJ>_a7cU>_>kt$pY!mPVHzb{MoH{gyQmb^M8MKvTxy4)5xx)heVmuTs}4bO1Ul z(l>Oj`A*q(xLPlrtXu#4)5tjf_uoPU{O^Zt&wZEEt^V|$UFuuarM|}B=9cddMevuOn%f?D zF83cV4$5{=XJU}EuP4zpE^SP}Qa5bOaD{d?=)}yC*zc5eC;BKa>5y}6j;y_y>6c0C zW&N!eIkI45=55`v6B|%3>uf#Cc}_K?XM72GJLaWpoEJ2q-Ivfy5{5WN6K?Y*1SDY} z=Pgb6S|;HDgw&|eR{3Gm^%qcI5R%9mPI+d42_4{b2qH0W-|ALna=LHznTZTO=yTpq zI&9|MFZ-S1D?>P;;c%y{J#Up*_bgk2?|%!5qw-DTgvLe8Mirf{GX+XftTBiaCn9Wx zR-Z!Fd23*7jfmk)j}R&5lo&8Qr4li#$IJzU(AeG7)n(GUOx+k?0>H~ldsBCiFCk~@ zg1&^Dsr#qyM_Me%nYt%33Bw!n>SgN6<%g-0*lkKn;%8voO09dLb21~SURoBuY&HNa z?dT0f+GSSzApB%z_3F;h&sF>Eev;46q;;9(dS61$B#-qa%x6RGW6t=C)r=JB94Y-Y`xDkvBrjqF zIdi?Fi{&QN67&85FU?*-KL^w7oZa`!-uFK5K9;dlu}JUJDPl?GnZq#9%eoJ+Z4$tw zaIn))2vrHq;g<44vatMz|6b7*0i5o%D*-9z0z+|JFEOvYDT%t7cNBi^ZhVB8Ia371 zoz4pBI2Sj}_uQKCxZaT-=rp1H2Ypo0NQx^pFMx4}rd*lTnC4WjkhioTC z;cNMc@vRF3?B={FE@MYHCc$pe1oRsjqPT(`WLjABseabt&_C64v%o=O`i#oMtxN_# z#DjpnH^&9SuzSR$=H8ogF)jykZ_Y^X+MItVzpCW=BLQ!ndGR+^$TsIfN4T3^sYzIn zM-1uVcITGI2Zih1t8uWy2RXr9c%J}N4igVjfvv%O31g4aO>EzEs;aZ&5A@Z4_YA46 zCFK-eF*b4(7uk?2b(CC6Gf{K37Dc9a{<(0g)Nb31cK#W+pTc%Jv4WF#H*&TTAI` zJC93H&14?A;4joPhy-WNTugrFOPhTq0U5ba4m5`JiZ^>`&ACZXV4P@m=rQVi@^^rU z)X}SD9LB8lIA<<7HVeCAOWSS2s@1piiQ_Fl5{#)0w3PEpG^lUdcVOSby|INc`F8G| z(l_upzC?zF1+SRG8W;_BQ8CFbmfs_0(FwVS?I}FqxhwpatQqMRBlAg2yBX3m9K(G};*>`ry2h8qEtSHqUO zKdy!qUJYxchQVG9jSD;K`S6*O<^MAkw#gFkv5z)cH2!y?qyBfHa=v$#d;oc2l*kRK zN(obw*mrc#ggB@Q@xNH@BY6Ai5!9neIZBpNrG~vQXV_HAjI|5Q#8`IK{Ix(E*9Tdq!LRsdZYBPHoK%ry1mbSKUjiBPAMn! z6&_QpA)*P%o$HuOLQNxB$Krk*YO0VGy%YM@3C4;=?$@tq&64&CpY*a{F}#sh^(tJT z+RzY+2zE$Du$7T785oDz`TS9yd&V9J8n%F<-7jmsAL6CNSdJY3${ z!a_C=qOtYFbUWXC;Z%N zrs=nQ!5>@BH@|0PWXUJHDT-%C1i1*&8deCgSiFGP~rU5Z45$LdvF$J8#sKsbJs3~Qy-ch zws^YT`3cGC8=V_7x#H>naF%4>oFCW*AODp$DB_XU>jedpHe|W|um7j=4Nwl6JAR>a z)@9gMe*ZCy-Sy{?c$zqJ5C%2W^cDaWi7C`1*LEnK*~){65~r$XncX7bQv=_iQ|z^x zV@VOjqS$IVohV7>$HHDUrWv;+E)1}w%FNgKCZuJHke1`gX_u0v7aF&iRp8Q#F!W-M z(2KD6mG2{&^MwxC%mwm}h&C!qT$Ti+GeoDWe?W&#Z(1atETBM$9-sO6)lK$e1b2<> z$6xS~o!*ccpwgWXw0rqvL;k;eyH{hAde`R@E=hfiMc2?sEGRO6G0$<*LB!o4J4X`c zC z+!zigF*6o5*-9Rz;c)FxK6+h;qAH}ZYR5Z5)cY|$Q9F8y+7W-)uW~#{5!cly zewQrU67=i7v=?a^4CnCl4!bY;J-7bJEXerr(C(wztru1e*0kii97_-L3C9YyoKBMs zqIbOhV}&23de6vQNg>i(gE{Lbnxsx@UEup^(M90}xK5%!MHz671zbKg`|0gj7#(B| z7Dt6$)a-t^k`dYPn)TQ#KE{sXwRaF_P}gYeErCl&_}=B-D~1HBP*d_AA$qV|sQBAo@ty=X$h3c<_xf?|XYlJ>VWQRV#Lr@<^>jt89`qnS zO(fd;<2{J%7@wf$gY?;Sh-pKN9)Yn&*{JjR=fx|g!8;w zh?l4}aLJm)OQf`LJEU$51)FhFJkRq#SW;M!JOfJTRudrAz)1DB-`CJZX=ir zro(gK6N_ zXAGNbia?>&f8zr@Im`+ij)*_N^0r931U3&fZ5EYCQ{ugnf9R~*mM*P&l|Z6LA=#+U zP%3$cZH>aACb=e#Yqo4eRP&Cv@~I&b-v=W3qW6XSV}-8rBSOG*X(cyk?#!0iUff*4 zl%w5#D18`Yg%pV;m)IKtMKpBMon@ zolA|S=EOF4i~=`_k)9cA8Gt%|G_5B3@VhwFB*znEAS)%8H;|zMnDe^~#34t=HDm`G zPim|`SyKJ!beV96jozokky76%e|-`Vd6)VknSQmNGFNEjIF@ZVFFsO=ze_uAck;XK z&C_Jyp0USJFT*XTao8wG;HMIFrm!8WUKezRC@H5kKbEN0vk^yQxUqC>h_vxds)!L| zv}AMb+-}=YN1T1V`dC~tUFw%y;(nZpMG5f5VsSu{oYNb2W2~6Ovg((CB<*I zK4lzL((9r0x>$RCDe<;kvQZ~$nWC*MckK^u5HjT!CmvM4WYyqa!Ez=Vq|GiEehZVJ zP&rb7eW*Y{yw*Mj%0y`O8e^uvBE{yxndb_gig)+Z0n4NbBW$*-bPv6U?Z_P~?`qI-&$^RB8iXsV8x{Fro_>2IovnN!{!pG|*!mvpz%+a2f<|z zM-@X%$5qqhg_`y!DMMhp2{#W@wiFeSAfV6cJIp)$#W&*hI&>Z^&=!K zR3SkWQ<2Lmr<)tZMs8I}dl|0{OhAt!&M3CKxDbUM;l?vmv8y-lBDq_Mj-8Zqq%8Xr z<3)rMkb zjWoor_Cy)Paj2c(p`465+%Hn-zB5amc!wG-h%;wSK&yOBH$KDA11o&|SL{r8G`yDU zKeCE3_zd?*nMol`1b>c7u4sK0b%7k#DPkqXUq&yxiV!ha%hK;!Yw6w2X( zF%R|s=ReSi#hIyHL^Q6DlPLcesQVZ!KeYM=W*kGx^FN~sHgtn`OE*#r1F47cchVTN z1De)z9^768uE%ZeEx-xde;z#18(Hipcu}QCwMm~>^~)S1KgB&pzNwpIanmY%NoTkK7j z_6>HIbld(@2Srb}amKFSqJMCnN~NFiyMaDQBZ<3V=16+C^q=qlxm`UCOl@#dgd858 zWo)@cFy<;?Obzf2q@Z{UrbKWC$H0Ize^XOs7gmtw1t1O2!(rNg1Z#o#y#h!5u*&(& znZ#+od2@{uhv>}TYI=zH1}ApLH@L`(ZvcEsjc*VsHMh%tMGudAK}%oYjcs$o zUHt2b!N4Ie!?9GV$6gfxLEb3@UH4H%k-#XkaPz=*k|yHSM4%XYPf{f+65>iE!Q%$Z zWTiR`A`WrJ-idd$hJ!lOjbQ@qY-H+w12Y2v$BdS#W~pUDXDvx{^Y3`n`up+;0)--a zk9gZBhE$_QR>0{5&>kPQ=t=T3MKo{&uFM{NeF)^>9>Q4B)vD&`$WC|fPj;ynVkWZ3pxPd823#354jb+LN26P_sLreu4!eny$FQOu<3vCQxzD z?EOggGG8J80;+YZpbVfo1`KyJKGFv#U)}L_oEp1}G0m{haYN^F@d5E7K5nc-(Ch3% z%9EB~UI$GNcIw*bK@NK0L=U8wsFoMe=BSy{0XhODcfhYaX&v}TAjA$Fi$`nt2hl$J zuHk<_kVnIRa+mObs)b-U8vLzt0{@N3-8p0p|F<#25^n`pcB9?GDpierOW{_sX8^r8 z0ldJqI-6DwjEQ&T@m^l#D{B$~`$3|>=X7n=9 zh@vWUxOyCIhT8*`(8u!CwqGDSq%3UDR!@awl>^gFB{~|c#2)HqER&F$2pdSa9rW-% zD{pRn+sZwZ!i4f*|4X*(Xx}Kpg!qsbcZtbH8+YJNA=&W)hv?`=_7ud@lvUch2`?-rPf z18SX|tM*~JxOv?|E~{lWt1Ewn1quvIl8+Mts01M=p&khSL`NB$fEUJIFh^r8pVs3a zQ2UGTWe%`NHZQ!GzX3%@wxh0L^wb*+sH@=u0X=K zn2pGN)H!OYoDy;d@I^22PiT+=X5xCO=!Eci-PKxlm0{2*|J@_Am2cD`)D4OiYTsd} zx?X60J{EnKl(B2TS^fWhc4z-j>*)U|RG-}c@BP`Duh%6@@<2NJUm_4gQrGPPO`vY( zz#xO&Y3%mnq@7q*vOz1H?R$;2P`LD%c~ZmJsK@*in2MgB^jbUX!?7~f=N2Q1T^;Sn zN!8I&93Z^D+v;|M?(sT^q12nrndl?ea-WL!WjXCHVN#D674lPec5R>GyXmqq-i8@z zCJ;NFTSHi04Kt`z`x<7DY#_G;nQzGGtk%wt`Y!9HzSRB^&yLc+$|@3ApZfW?utcFP zm`Z5cwx8kkAXjC3_301>RS=SAs1m&EDTvuYH3cM4GJeO(2($XiJ&Tv%U{?AJq`qr@ zmW|e|lSsvFa5+RDFT^Ibul=O}5H5$E^nGN84?Bnzr2qw#xW< z@*QQ0)C)lVpqghA9blY>8gU^GW#`D%aCz-7$(dDikL0gZrwPIJfhrL(zJp(CW^T5g zhe9%;>V%Ex1&#@O>UhT|z%L6kw_yQqr_bFE;~hGH5jz5O zgc^8i<@3NV?x(;~aGM8Nho|oQ>>$IrRjL}8BT!5H>+CL^^f{Z?*quN4btd|%j8E}7 zq^kBxGXa}={RDbDl69Sb?yU24T_@CC9xFD>af4cEua~8feY&Z!`&Gf)c$fHq>ArgPh4iJ z)uK1V@j9*d@C_Q!WE}R;M(CkgeGEtS$gj4O4}XpF#Fc-AJnL|9>Js{o zzUlQ_&SeHL(R&peV*K$#tsyqSI%X_!cM~{z51>0k*ldXqiJqdqEO1%C(x0%*RuKHUWPw8 zZ%I>irra2jwLk3gJe?g-=F|2VhGP7lrx&pQ6)IwXj=pPdZzu*mI<9k@`V#Tp}5EN|!a1&X5K-Sez%^331uinHGgbI<%IcbaBq57=H zJI;znPc%O5XnKY;Jq=Bxs>B_ltTe1}fvJJgR0SJ)tLZ|w7z;2bem!`C4ak4duil^i z0VYAnnD}t{)K|8$gJQ_x9m|}$BH5swz+4m5Z?P<`(6QgH!TNxbGYZ_deNs>jgSE#B zQ$Lwv{2F+b&59S;PmA@isqQZDr%FJigh%tXTHPnL{o3H%+NN+Ry;90Pvf}F0@ zaIIkQAQlJE2pycOe!Ydyu!pW{;ySb7u!#}| z6eu>%-9ZtJrzMXwSDL<3l*XLIXmJ6tp-^Q!Do`l5QeCVWs-_ntGjCQ%rf;s*F0B4D zxLtV(d{LpC0yIT)G3&W%jNLKMhArTZFraB-7{kurzX+$l$ZEBHVI5d_l_-#ECV+ux zSD-Lnb&e+ga?>vLtK9HaGBx4R2E{DUuS${Upa(9#6j;|<8NzuNwc=Gl2jCy%$modh zwYty@yU<8oD9-gz{3cjt4k|+&QP0MIXhc{B^F z%bwc9cw~Lq3<^6EYig&LMbF|HeoSJanhri7)?2RM24uij-sW2fm&P0WL;9(Lkbe_Q z8o)$Ky?s$h;&dM9zr87`B+Vzr6W~Ou|8oQ&sY_cV+Ay6^%~5r=0unINsi2`=hBfnh zHVg#)v*PL9%+(7ri$O2JHCY6vR=BwoM8Hp6CG{ip-a0IkZ?Qe5LHxJoVmk=}RJ z+K?IxqGO0cn40Aw$&!!#(Owh z70KExlHOy4KJ_!;jp4jpYP>yz?NbzPq6s-gSx?7x&>)pdEn z;j_Ch&+$t6(yq%hUG?d{JmI6qAM0}bOjkQ0B6mH0tPz)%A+e5pI5;ExENGBTSE^Mo zT;ZfkrMelqo)rV^>(Gj0+cG!L11D(f?QJf_uV;2kz$(by-%2$L1)+Dxo&jTvc!H3; z9v?ufltk0EaxOx_N;M2Qu{tR)_5=^@`R17APvvir3arwGHJ_d7uGDmEzB<#DDDyTB z8rFPtrte5ix8U8G{%}fqc&bdsGw??@cf@wJ7tDs6D!B4aTyWFX0JVQ6SfDpNHMkvS zE$l|zhQcfZubiEDFW4442wM6y9vcw2&KVsYFkJURCP>mUBB$!I%{Yzgkkd_lqyB(# z|94WeMVBuT0h`C4vRKb!X&H{Jrw{9SA}w2V+>+*zXo>aoj=CUOAw!~H>|p;W!+WIV zj%4f3Es@@JXPN8C>>ruO#s{&Ps^a^J3n~5^7Cz|oK}V)r_@L82fby4C-ogi+{_2tG z7Cz|o$B#(Y_X{syFWe}XKB9tQlqFU1Gx!S2fE+y_yYxeLmZQGv9bx&-2A*FVXfVXP zW=^x?PUewC{h@5KI8haB+nzc`8O9neM8IP>b&Ig|yGCS^2X7dUC|b*PQ5uK~0e z&ozRAiECm9`x14CqlrHeACXbxqm{8ta4b<4JJ^RAiGgfxL~`LacE*FQ4fKc zHR|clk<8+D!MK2$3Zc?`37`PE^EL$Fk>shP+b!hltn#b_(1TZISn`h*kL|^Z;KIb3 z%}&B*dykKQ^8y3PBjynJJPj6Fq|SrvAZ^2+dV0eUGqZT-6j&=fceOORn}(nO4txRf zx(~MgUV!%7&s1+{e8TkBdx!%!bRfbE33(2Qag<0xKAUbKY}9H_IwHbq&C}P~ya9t~ z^mI5-oNqZ$;ELxi;_#b9BakB#j+W73dI*isQ7jS6Q?~*_R>LItNvNx703`krcX@gs zq>LwQjH{#mY~Fw~_93;<{#r8?cEeqe^RQ_K!M1uEDuB}BrP6XY^5cNskCsdK!8UFV zm8%?GvSk0NZ6X?l)O|Dp;annyDCz|;eimcn=csodm$vCpFNLLUnmQ?#XY4>eG58-kk6X4fN?(YAHhCt zUod=)zs;b)Tmaa`h?GFT`TNZ*z}<$N%5rsyE)Lw?g(=W`s;wdQmL}~zLa^DZSRvFw z&f({pK;bwdgFXurI~N;*Yk2COBRha1Rs6T0dO~yy;SzN~wyL1YheFA5xt_d$^lt@R zw|dAIqQe7lT2areu>j$zV_2SsthkS8Y@oKFO6;~0qid$ja^kYST`;jCES!)qHIm)b z>Yk@A58Vv%T-#mCIx6(yo5Z|S&q_rSO#@lcfV$y16xIPYJ#~M@7juOsthSMpWL?F? zyy8yWYFvj7@g(;myGx$>>sSg=EGCzE>PO=l=MSlHUi}l@E!dv5REDqmqHHznAa-K# zng^@aJrB!-ks!uUICd-CTwE&NECZC2jk~_mF_LmNh05myRS~Mk)G!>wDy;fg31}3( z`HgqE=tY_2)>fd zzL#C&&Xq^2ajjJ&Pc$1ZcT_-q->zW&Q7b6Z6(lY*{?bue2%I&bbBjEJu zT8$6vN}#@5HMmd%){ZFomFf?gt^5-!>3=6>wCEMl$SmOAgpUSFo?J~aPzJ?78B#xn ziM1UD$}NvtmvP!wO3#8_6$^u6oeZgZovXOba^|LWa;27!f-LQV#f1EK4@@%JJ{eNC z>TezP$&k86e@PV3KG`4k4a+_mxeP|z`AAH*O-6yhm@U*^u1-ehxES`Y`WmQlj_92s zbs|b&m^`K`5!WNbI_;7{gLcV~+AStg9xC{J)bhwV*835gK!+;{T|Z6H;1FufkEM?g zEjB)fHOafg^Qg<^Vr+4+Uol9ZC%Xj4G)NCYuW67TaJQvo2h~_e1GYh$#xvU}ouGj> z$tcauwo&>QD8pIXO-;Kiqx59UD7{fBAQOY^(E5sl@RNE#}4APDI zTgQY4Rki-24bpyE^T2MB4bmZGNS^fCYK~GHq{m5{}NH4y0352C&4f05w_;-GZ4?+Ku z8jLqyoBF=$tEumAg99b!4`VGSzt2z0eTEL*~w!Q5JK`4-;PQEEv z5T1>@u_i@cBlj*+Av6LMidEyHKJ?K}Y5*Y5> zpnB>D8uJf&Hqc)gk}cIuQnLIib@DY#^d@c&(21c?J-!2jgh(h}4BtZ~Dvm{^9apHi z0S@~O0Ww>mmLh-z)XsxiX33qA8v&%9$Y#7$3m_MZ!sccatw>b^&J$;`;|+}6cBJf<#`{Hm$7x81HO`H37JTWjh2MR|63o0D5(l5g92q z+bZK>NxAAS;0eUdpgK?T&?7ZxR!D_)7fSZ5GC@Zzjpz6vhq-sj$uK9kZHL5EW;BP_ zRc_L2PwH&lK0};B^h;{}q#D>?29gN7mNVY{La;yYLlK}a9nWigGMbQa5QtH!?zvM? zotLC`q~u_nm1?z};_XbCEGbv$6tkS}dEQXKm@l877D(cLSYKy>D<$Pjt183-Jd=G` zQ^@w#jEU8F9cyx9HEu`rL>60P_icj|`$Rl@U>*Nlz)S^=ylMZMw{He6&=wgXvHLNW z08s*VoM^6bCuo*oEt&7=CG)H6Wy!?%k(}WQoZ`R1*Xn@|bfd`#e#-CP%7spHk#Ej& z;lPik)wc*tgecBOM$h{1;NQ(&fF65}J-y#C>S>zGgFW|s@6YY=!|2s!zf^EMG{ZD>(KaMobXwE}n%ih?-gH2}wtlp-%a0$Lh zmK=zAB*eLxQ>i{cr4(VHJVrq)wZ#X==QuBVCc}m`lOKS4cW;CGv1r*vf)&segaufJ z#AEsKcY$jEmQT%#fWb+Yk!G^*PQs2<%fO}E< zbdV!{_iIA1eXh{t^tfC{-;#!zl$;=-Des^g<9w-f)sLfIzKT=vn_LbA)V(4fLsp_vaP?6e6$v5}xcL zYelYPOYB5>NCk8s0L?lr%Cw3!hx&VVKW_AK)Q|e$rS=Ybhz20iLBzY?5{25Y65xID z<_&v&aE|0pHQ&Id>@_6q+iCn&_ok*>>!Y)Lb!xgb|DEZJQqsxK>E8&$M(tT;WCIx> zqiGUg(Ot;{r(`Ox# zuJ;?WuhaTdu0E3ub7FKHWTL{Lu>+h3(^ROw*GL!Jo1J)>tSA~|_dcgeHq2Ai^|~Hm=7s(7}~T%%^M?xTv1YWJ%F6fBKE8x z>D35WBPf$>shLYzHb-y(XW=bL)cF&hrGK+QRDczbXW%(~A*R~07QIUer(Eq3npTK) zw`0krJrSZXZm-DHZi#a#jdAb*Q;r3IhX4S?v_i`OS!|jg48Rd7mp%rc=3D#nPpi~= zy&^$PN5PRD$NCetrK|#71G4d$WVwFifk+63+ZSKD`3Y2B|7P=*^ckGff-#+}vj{Ag z9KTfy^bvCiJAVki$?G}!2rrApl)I3i;3{kJ!~=XQn`C z+z&J{X!6CfdgKa@!oKa#iB)LSUdNrVLnafvu^o&ObTK^Uoty7MVawmS$6KlIp&9id za0*7JHzP%MC;te~aM_xGta>s|%u2tgfZF{UsQZPs(F6Oon@V*7L>rnC^5K24V4>GIh1Ug}>+$;eXEW;a z+}p5_xTWEPm!F%RSGV2>8Y+4}D;Y($Z z|13yT%E#&2p7bTYYklhbqhNo@>9;(R`ktLuzA>$QIFy?IlC=7Gs42PrbJEJ6o>tzU zR(@St`Mzo8--WK2R6mf&rTz|+3l6lw2IVx*nGjov0EO61tp)5IB^i+uVl8fdi++HB zN6t8RYQkq4dFw!{5OwY%D5v1n-K~k{XOJ%`(K`PH;)|1KkQ)4u|L#QVyf0Xddl*l! zN#n|^=xCf+%DIh(q43opXTMvF66z5l>O7NwDUMSGaiiGZY9>Qi9Ew2+)j`C1gapV! zJjAf0LjBK|1+Rf#xE26C^3USb&*UPSRB$@q_8of72@8DL>|1$$D&@uJnZ|S8r%_BdH#HNXA2GPs;DUu&eUTOiwB&`Bg)=^8aJzZ?D9&vo`H66zB1@KuQBMR zpm`ulUdk-le9%|ry0Fop1v2UXvAj_M4~7nO#tykw4EAhV>u%vF>RtFjo$iL2&W66N zI0yGh55~eFQW|$L-tTE(6*Sw7!W}yk)ysEV_#E{C8`=H;(Q>~=Cj8qSd^miW&riXA zj+{>oo}Gf3UBS<$C#*yM)E;o9B>HLLOJ{m>YPv;FI@9k>O}F~jnO>cePI$POM?*8WIg23)-R^tyjTulrY$*8Ru-l|q%f0UkcvC(BoOxA0bE z$SbD@IZI;IXaz}I?h2{t2$IOSa_();-VPdpvBtW^8yg}7Jj(J!W*hpm9ze`1uKq|fhwpz_NLLnR~kHvD6E z;i$jOj;0iT)LfMIekI_chCp`cly4Y;(va{jks!sJ97K$)%d163b59lBpZQJwN@P9R z&E0||OCE(6-{~YA`*}M8) z8I7*8x}CVyd8=9FY+9Dl*mtJ9z7Co58T7yDB4^f~O4Vm08zO+(B3HCWd8uSxz}Sln z@Xua$E5ya1WJi*!0<~_y!96HkrBy0}I?5$^Xf3Y<+qZL}&FG-UOCi~QS*?UoQ1Wm9l+vWh+W}!;7U#AW|a+gGqd=Qii9Cp8!>RfapP$>Wo!P0KcP3YSq-ou4#VW zO}rlV(u+|&mGsy%SN3c^k2={sNYwVNF_2xfWuq{tKBQ{82X;L;=J?e);CQxcfE&^4 zMunHzBc=x(M*NS3GGd;w6H^yX7{euU;|`?C{eh=n4qFD%4yJ-TpzT;1gQso=9<(vKMt=QIXS$lA)vd0|6Y)^K<4?^KIn9>I?fN^@^Hb76`fwaqI`C_4b&=af zJ6f{Gr}*;SV+)Dl$3K&?I*cf35@8zv>^rP}hR9v6h}+9CdXk#CQ|f{u>FQ4~AdnSsC==YEY{cOFw-NbA0qXJgah|E~A5 zZTJn*@Vi77w++9@2!yKIIokpfygRl{M$zbVmL%Rh0t6$`t9cZD0``~)=V|A$2;h9| z?ir6^+S}MXeiKVV6aE=Dt2(F$9|N)TZmc)J8UxQZ!Q4t)tr?AsY=S~vf%~ignScf1cJN_v zD`sPK&(bacoYo=P&!gE`oOE(Sv9~?37u#cpGa}c7s&EUT`Je_hq~7WYvBOSJ9bLPz zEP6Nda8+V_>~OE>^bm4BZL3V4`j?ObVFcR3#jUZ!S&?4MG^}|kKDR-p@gDfFT18lI-Eg2E|Ae>;z6nj26Y$hQUT9stpDP^(#tj*WqA>%`Cl>T8e{ z5aFs=ZI)%1b70T#EwR0s$UN_21SgO7Q-6bfl)`gl01j3>Kf|7~ktM~EK0!5E3&mAx z9xB566NLvG0SusG9~nu5;6L}8PLo7T#tqoKLpeGW$btAqp1M;3iR}&u676wb6$HUC z7m{HwGpj6-S-b^i(JfV;v-hi8YNXR8`#ntw0E_V}5DM`fFeKPp)zvC5o&o^NB+a1_vL0n8i!~Bd#D!5GvSqB%! zMf!!*0@-MSavxG5Y3dJGThNVE2UG=A0^9BInvnX*EKWmE9mWiB&E~2dKyRhz=2xw$)&mw?yr|~A>LWzIv1`e8YnlwGoOD?k@ zDRP^}i=L#nl{qsaUdY8{WdZfEAb2v9PeQTyU;s7wz46@C_r5TTC8xhLJ@x(f5K@!V zd*7M*K5<#<`>)dMt3#lMB$sbYtG_I*Ki8$Ur~UWa=8L`%GB(_PGMq%!W-dzGy>}!r z9GV^u&Z>t&$gvEu1~$qW3JIeGZEOf?HTPo+wd@XvXUm=K2&DuXiQ7fWowe0{959l7 z7TeMnfh=6c{LU;;eLeN`Ly&B6KCYuo+_c&m+tP=O1A2ln4_(5uU*!pyD_G290`LYSm1Edr}$)BkAgF?EL`tX=zN?`>jDNLGfJW$wT$E7;FoV z-w&AMMA?v)*lmF(dUpVmNRh923vBK4b^uA{?Qh0Jt|{17vcq%xRAMn~8(HtQ!(6Zz z?p@dl1zzQ;--xT1ND7{LEzsos#jmi6T~A8smrJ&KZfC@)EYw-!ZFV@kj&B|~%sSu3 z*O2m~Wou1f1J?nZWLP#Yyrytby+oGn-H#vy74_7kxFg&iE(#%w+%l(3k(SW$*x~lb zS=e1#a1Hsw)q=`yt^%CP9TL5X^&*1pFKze6=uJUXqvj_SkG5#AU zeF7p)P+wn*ncf5V6(I@01Yq)M+6ecr#K#Fk@DacHIPt*wEmWsN!y+;B#y$g&91c8y zGj1GYJD@U`<6o4|Eyhd9?Z^k?0>kdC7orDyP>s8GRdKr`+G|05+nNt?ZA+!f{TpXf zNY@^;0c2_OY@~|?`Fo>tQ0e8%vP*ASJ|p2Pow3YWdQl>~v}l>DbjtGarAs0O^{>=i z-?X5;<9G)~*`VJ~nbbKA+1_MUI&zudn(E%)ZmW&*x+4 zlhIQ@{0s5|7;cgJDI5xor;$-84`YJ{M0G&_BO{i;gvi;-Z8do5kj|pUO9tLz>Z<~{ zlm|pg5YE7^?7jHXrdb0oZY90NRaZ49SoYJ&mrQEc$n+7ADWqP-uAd-N zWQ5TH@Q_+3#Ih6Mt;DjL8{iM=9$I_o@@2hh58aYDq4v-WK3$Y>)gCJ1)0E|B)*f0C z84Dzv*;L+M^3v*(+CyU_BWe$gi=NRqduYbgmdI(ftA+y2Mgz@8iVqjj>|qFOl$!hv zs~t-kip2JpggGJg5#&Pj^9y&N)cWOe;3Yj(0Z_l1eKWua&Ws5J@E~v3kWb}{cUjQ7 zBPQz#c8B*1_~~pv5JfB!JPcUdRGx{IFZaJ;sow(OMhdfbbHAZI<66FqRcPd5MQ#ebaqCyW1N@}CU+lNB)T zVsW(;RfA(Du8$qgjaC%5c{cT9mX^0%{dQCskKN2XGbN9^>Eg`T;ob;gvj2gR_!`u0 zmM3<{4tro}UIaI{kSepj#twT|J)Rh9tctJ(2Wm+44un+fEa|A_*f$87G0?m@>eH`a zgg7vSX`}1=`+9W?AOB)v;ij&PuHUS9pg2oYGt>;ZFt6TovR?9R>Ra+cr2o8g>bI=< zz`7O@t|MnJ$!bY6VQByD98keCF%~b%`wITh=qql_p88T`SkpPbu01qtMON+B+@^W* znCZ-&`cl+g9{Wc|bdPqn9=>HsZ13U4WnKD>>HS8!K}9?avi4$$023B~VchwNtwF+2 zF4RqS!b6>bN9wytL6Z zRJ;F5`liPO{ioVx1{sZdf|*^?vT96?r=TV4rP{N`MY3yeX&)CIT(K~uz6G=ZhG@ln zJT}FaH0zd+aj~P-1-*VZl>yaeBkt=3h?Z4l<_FE2;4B<6Z-LBHGZgGDYllVuYNwP% z-1E-HynlpiIp0k5YFgZ$wZ}Zc+=`surt^_ADT}A>RX`zYJ6Cg4bvt$3t@t2n^51H1 zshvJ98ZCLvv+)6ZMEf}fuT^CQTnmHhSw!~0s3>u*LmGM3g{>ujh|Fd#(|`kA!Do;Q zw@0sqI*Vgk@Q0V|(WRk4m73o18VVsyVN$T#Qk3^L-JF4e=9uTW3U*}m#iJjZ=C-Vv zu9BAMaNdLAL--)wfex^;ee^hT>T>ak2nDo>V(Gl*}((PR+}?2yWHgm~9nzx0kueB4Qa?L16~%k-A?jg~Mjji;Vg z4}C!Ozxi}HGctN%eVdT8D$nfw>QDSiAv@Zu>88v?uh_xy(G~5JW?B1hQ0!Jc06QAo zWSYvy(QpAr0tm{lU&jScL3y6oXXxxQFSP?F$t8tT*?4rqLfnO6w-oWSkrPm)Ty50# zK!$$GVv+<7MN|!@Gvw(gGu5*ss3%xqK{I1sD0VR0a~mUoz~ADoKa0PG&-{uL7nlmw z8b+$+m}HT&m3`SAk=GDw+@^MKO|+@qTe#1ssXIzv43cm;utLeWn96>Q#$IO}A;( zRzzJ;2M(puC`=yffcqoPDXW$GhDVG~e@4{|N6YFjbeZ|U_$mbAQrEm?t#Qjv_5v2~ z^RYu&t8T5W&KMt!)>dbZkKWi+omFrk3$hum#GPc9hl=uTDMK8N_ zpm4!V=Gs5$-y89M8s2+`h5xx+0FzVBK-gU7Vi#h-VtO0@*fG8Iz&Gvb^=zO?iBs&U zua_rG^P1#o4%j8FX)d$hJEl3%G0mem&Hj@8HO2N6UwpvgG|^naz>;mzp_p1VOMg#d z07=xcbK3t|NTO$Ud`jFdRqYZ9wo>(9(BBl*C%%9XN9n>ab@GZ z2oQ|B9IZIPE@627_%~5$nW(qWkak^(7O_9+q5ugZ?%=V<|G`Hve%uQ_21d6kbP5}I zxfS@w&wui;m3KZ`t9p~lr>Cw64dHUT+pXH5Xbl4cAT>v4 z>pnzdxP3@Azns&)h591Br+pJY(c$nY!bKQ9gW)y|1Jh)D7n$QP;~(|PZ3Gea#|9d# zUy{Q!;-aN4V30;1JV)grM_*jyZOF!a$R=+5dDNiy>ZDc)TE+0quvz=YLpkggcDuiX zRxin$kE3acON=bLVM82otQuY!ceENBQ3FelG#GA7kBXPGOZaHCe-}!}5YProL>xw)5 z@#^y2_+-}Q`SG*)5+DLJs7Ld1@fI|nkl&E`R9+F@X$(fV6mzS+277$|)>F@Em@>x^ zDT9}U-~}gC4uWD{J}o@jtUiI>VpfZ{#G}AmURCH)nP>1DPT4~E@zgKk_p3CT-e6by z!=qNZq@&VY6yD5BOwFywF&=iG3jyIOF{bPEn7)%Vru?HezgLipWBML26%^({?6YxM zV>FHUg55uX5;v#p0li*uG$?KCsF6`^n(Hu;y#J(U=a)V8gHed{JEeCtphjQ?NNn3_ z;Z+){Gwe=O9JLdDIy$in9VeQgT8BA;fo;Q1V*@&c*=v7QF4YnBcpNf-$a(`!GvJ}K z6+RQBcpz`lG2K&&2W0mB@f)&GId{dq2E75wvNEN&f%auC^-e^VFSydhrib@xd9d2O zmF5grRz^Vm^fi?9prqfpA0?$&MuyqD5**BQY;$Hf)K|x{f*jHC%nh)j9dr$y|` zy!dJ&dM{&k#>w7_WGK!h6le4@CjVswc8misKhv!4g3rJ};|F#R!?|$@&geh~0Pn6469w>E1|0G;*s)?; zdo`Vt(U>_CS0NuNco{f#0nl!@-6uj|t3co@SjhqbjDBJV;$bT}wxyR1f-_-PVjkY_ z<|W>Bf?)$JHwHI$Wb7R3q0?okZ`$9w#i5^{dbFWlFU+qrQEI$p*Ccla+ADj-QA>}P z(nVTo@WM*6Z-k(R4jm3U_6Ck8|65tv|8MMbKp?&p$I_C@#oswE^?f(^Vp4kZGgu2r zl8)i}x@_IUq4Q+UfBJ50Gt<-at2mSxkddVCb`u8c2Vr)p-;eI9K1o-PbYI@;59^RW z)eOP_@?*7S*Wa0bZ)&<#o=&Q6b*J8CO6sRwUZ>xDM0&IL&Xn5X$*YD%vdzI|+)SUB; z6nHhyOM7<%=T&eF?GJR{sZyuV)vV(<%dLXYbd!NJiwmRX8+%a!mg?6~4w}tqK{G5> zs*G+PSr73r%XA1DvVP!?c@a3PSO*x%&m)UWLj8H_Hn9%q?}PKGkm4vhn#onY@rD6n zNn?Z15xE3g=Zg#uLw)sf0Tbkov9Qy71AuEzgR5bYQ++rDZCsaEBxm38b=7SkKpl7A zg}+1wJeTi!Ly32TOu*b6yDczrm?+Z9_F_widNGo^ZQOmsoeFNoe69TqoK+RPM z1PxL({xyCy&AMo*WUdVUKjggzf3Sy%59OEw`#f7+-b46g*5y5cpGx!F@{0=*fe{F{ zabTe}B{da6+MhsB!%z(6E@-2DB9EpeK%c=Iz%=st`g^?Mxsax(34x}%y!EIzpq8Rk z~sz1H~>^1rQBCzh{_qQuj-@|iK-_P--zL%!fr_Yyd11Yz5@(K|;r^9k{ z%}|0isG0|BFJiy?>bcrIZ#2jxnV=WOLHJ7JZXFDIGXLmB!|S(8RarKTd=i}+w67IG z60wqoTYkqm^gF%;jF(H*3%5F7VhGO*_>x?YG3P$HBGMVoNPO3v1#jud#89PNB#g8i zP>9~eZSixk_;s`wMW3W&PEF74U) zJt7s2i@;Y9mtpC(WlKN3i4*GEYwYU}-#<%g!tqQ~7_!Tphco8U0nmYis$GA=RlH@? zE8P`A^{(~F8>lcG06ZjuGEs85SN<0Kan&P%ahg~{MCz(PG?bWr>* zoNMnl&&375FN6DZ7D~eB|Lu<<@C{0~FM~E%Cg^A;4h`d@_P)h$NM%&&RT34s!*`V9 zzq0qm8!A2lsC7&&`qUtd65RRvE;s@M{T2qk0?rGsM<^RI9UU0>XW`baP$f|CIY|`( zmexYykEpl<|8lLm)(IC+#lL0p4fUvgy2fPuTcbZEppA$=(Q}-&s(dEhV{=vGGApq59AE4b|D*FEO|mEm}E`UAK|f7rCuK> z)qgB2*dNZY*7ic_GGwNjT*xKwfz>C!k4ek_?bLKkoA(spu49_Rk?B}*VWbq3_a(e!IHHweJlR|b`ec*ToaQpT zF_IkM=~a(T{d2pF8Z3qpIKm`KT&JCfBS(S-VF|UO$}C4DTXOSwBXfA|Kb19+xojmk zssG1%6#dm)R}0j5*cs{5wvN&VTwS!Rc@l1i=}#t!MGC*2gT10>w5_A%)fvr)Ce`|I zCW|m+*!svn9)@d=DXA^0cWiIQV(rD9=3tlBp)T7WnAHBYsqIg&+b@vzU2LBnDnt93 zk%7814>#kBW3lHOTaMX_tYA-bHM*&$Whql$$0@9g?5L8Pncv)eT8s=TdjvSe;ufNoHhpw+Rc@8oo zgUpSr>Ojj`pbF9HZ7o|OQ-GRZiakx#EQ=Q6I73ZPO*xSm4}wz7YrJoPLJ?5A<*You zMS9CR=|RK|y`DN@p4`9va&p0$G9KflLH_jf%O40Q>H7R~Gq)I3HpCEUXt`vdg~3qM z%J$e_4#(PE%L~6(t3&e7=Qj%~-e4iNLG1s8HZ#;Dm zluo}2fjG&TIc(kL8IN?N%rNA<(r9%js4=LAs86wH{H@!|U6i2`IQ6#@-e`$}SbLw< zCp0-f!$(KK_NEE--Y<{wCVWkE58zBG`=)*jO%5F~_qUb1GAkpe8b7m}XP(0&` zrU89#M!#ocJ2D%}T|l-X2^%y)hYc!iD5oubUPE~f!BSzvvDmmN*Y8yk>4ft^3%Vl= zZck~bb--qYS74Kvi9=e?^p-(_t@SouK-R>o7hBE?mlABo<|B(w*2UTSBm=uk)?fjX zDT6T9*E_%X)T#U;_d0R(K{XWbv1jto1`Gvkpc4WA!%xN?0G~DUzlMl_ncv=vP{eS$ zQZs?oko#Bi7(?t(pVb4KoZLQf6tpxs1(jNxW^`cE<&Zp3-%$sPIfbKMCnMAEooh?4 zr%jk%uBWCMxIxFY{8Vf9Bf}fqc};G*Qv7|aHKEnLakh^j#!=oLKw9K8_b<5$;5a&s zBggSt9HD5M+b3}XA`e3C(4WB+P&3>)zKr7+&f=Ykk+H*lRy)n-5`&w{4?y==2Ai6l z)n)E5&-R(m-qF)In%U*CR)1ohK2}3dE;&qn{K#Rii|l5E{dcqmRB$E%!>)HZ4+8I` ziPrG%w8UxnPXzvwYQt?yCSbHZ0pmcuBqS-O;96KPgo0J)a0(70o)l`!Yp~)Fb26}p z&jq35oiw3?u%PXAvlxR5^kBMnYkz$o9c}1shmAFO?Slb~GR-^iF3w3fL@)9@Ss!Di zk3<4oHzgE%E&@fqrOjvo6&G2{&UTW{w#EsWx-bOS-QhC?bdX_3z=P*bVL-0fWM{;O z@Qa5GL|CftWhgZ#83zpYL=y(ojOY zoxLIT4#ZT74VY@Q{o*;&^MJZQI>8a*RKW-ga53UZt=H9QX`+@X)-9@XO=jQm>bz}(br0sTY)NO>+(6c8(7V=AcR&1&zp-bv+?o3PS%?qK6%Pg;F12K$GZ(YfjvWHwrF-!`FV)Y!okT|n!*B$@cbNy zc10tI_D6sK{gqaEP z_DtafcpGB$eu607kIEFz`DTKh1nj*Y^%`=42$M76OnVc(T$V1y<~7$PZgg&coTb&5 zAYq9861Uxgjh=z6-kN?;2|Sxz4d=TPi1>^U{TVd_d; z(PsW2tHfcrI5s&W8pJ*pxOkQH5>rz%7XEVlsCJydjteWt;Tl)DIz#6HGyh|vx41e- z`&6pCMSg`TY?4|JHzHwjk$m0Z_SrD!d^|aMXd8;etR;&@j$q+jM0d-s1HS+41D%H5 zxG)9FurM~2Fq@eIv#A+1Zuz8P)-|{m6I>Ts@Hz#95>)Pl*S(@uCc!I1=ShZ_-hjPA zWCQ_Ol{gf+5NJ{$@;Nu(<99sr3t0gZMNRyK$I0k=H`%Bu#<>>Y<@Fo^{A;Aw_2~ z%t)Ihm6Zk6HtUPfg<9M#Vzd7N&_jN#u^S6=IKVc0*q8L9}&qvQlGU$=Z z6n;g@wDv8L?P{^qXf%Yh?P(K3P;GRuh<2^oF4VF&>%dE~y}2NJN3ysiXm!N@0+0nV zv8Q*VYKN!(gO27-Z0FK!ti zQ=~hTkr)Uv3QKQCzd0`HqH#|qe74o)6FPf&xt4Ri2&dm3hPi%_*fn4gTR9LPf^hV( zKU62xr>`CisNTAti7d#np@#BR>Xj_%iS8_?y8F(A5tZk+kTMt(#S26zk4qJ%xZ`6Z{odHd_4tyJxJW-_CMxuUGciv;xDsdS2XA7ceke$V5Wwi8GVCy5S<=gj`t=QscCo*DX{6VO%4+5XA-4Bd5Yw zy#^bzn1Vit6SlKq;|4UMVeAU1{z4bJhjAc`qmWKrTZ72*SSH;fWB4M>zt}9j4Hot3 zB6Cnxz%vDtfF(J#R6nU-OGluTMoZc^QE$;*%*7R^5O0OeMn?g6`|4fcfcoo4Lb^H^ zvm>`-Q4s6TxBGEFDmz-Ijr(K;on+^KsJr|@l_lrvAU1Rokd8Ku(U?eFt5PJ8Z&>$m zch%Sn_hiZcu$}+W?(zpa@b?$c;FIuIhkuz3c`2xBKrV1|n)*`)@%S1sOL(VUNIbLF zI7l7N=Kdc|9YK92hSbj`bE&prKuV@bU~01F;IlM`A*XUs+)*D+^u$%zDLvV6E6|fT zT#GSa2Ml1~2BY+t8Aofn`gbLHmC z2EsH?`PsmAN8YIeqbJtAf>Y&zjHwkF(E+h7nX#74x>urqF5Z&p1wD3026rmH%If~` z-adVN?zC{e;lG#ufZ>~9${c)<1A%)5tbJI#0r+f%M0CDDtFM)6t6mJ)-~eHP_Ez(E zmcY(Ta+#B@GN{7cFn}guyS6@7in^q;2XpKm+>9RFc|dwVbDCY|H3*=wXD(>9O{Tb} zGV)_{E@XtLTiZmJnPr90u*&E;y=7tLPTBMO-(bPpdy--&ub~hJ0>n z)3qvJnIgi#0V*;T?~GTJ3yS~WB2J(sPd#tA4qt9{HPI)0o_<^wX0QLJO?n+vH~tNP zMbLDDghK!ThgjYJ4`IKh{{m-&>aYK>rv1d!X&x3(SI#?btGpjQ%3H{YB3F8dc=gql-R!Bqog9e!u|#=LKe-&vuW2&&)C zXejDzC@ZmNa-j=f77U3zREY%DjCnE-wok$Y{{_MkJnU@$g~`U1x|UM49};!A+^EHS zP?ZDI+gC7vUqH2wmFj1ygji2Y5eVZEY+z_TIH~JBnnBC{^YOlRZRz*pYHhgmF=*rl zsh*1bOz1UE^cm3^5K9TY{s~-BvfUc3qKT86qEkvQQi&C55VG5?_!A_NslC5Z5G_<+-2zmjoyzcezX2> zp1L6T=M;?HQ^$*&fiqa3p1LwTlgj!L&o4Rvj;0GT8nesg(9(Oc!(}z2H@_zFtO8i8M|Okrv_I^G!K%?*Hl2aMMCha7Eev8UVM zLN{vh4@SCFP=n4Atr8l}t7gIu$Y7tpn#*pukK!k3HyBa_fbw(-juf)#kU9mjhOC?j z%rE%lRqtYQS?kqFwHhzlUBX#{wYopAgTI8-49Nw^_sC+V*YGu>&~!yl?D^?*9jg{@ zW%Cr9UUjA~N=@e~;=uT)D#0B9mn4+1%j@*wBhurqpPYiO@%f*n+Q&AfrJw$GYPvr) zzgVH=e%jS2NTRZ(W^o87k3Iy8rdCu8Q#HC+yi=c#DsetvcEuQPWblmGq0D9P31@)G zN4=cb*Pa+8uk90_pN%Z|_$SnXvgL@usVfKGJ+y>`7oke*89(~3j(41mHHa%@3du{Y z3p-B=Utuh|PmYd!Ur+a6A?ygv!8W41RS16`xLuWcP!2L-WS)%*S>f(El!N1eUvo8L zOyK^*)esqlf45Kgh@B6$4=%(JY>js}lp}i8vcH7;>e03j_CG!bm#Lr?4yAUoBkCYAZIURu5>fc=S5BsJ%5JuDrgb{VvkuVMmsV_=gZ%+7#AXdGw zoMa)Cfjyrj0z9eCnc!7k7}qNPY^@9N2+fB_=r2df4ALVs2jU^FS;T@PEM$SEL2I*! zPd;NPu2lmr`qaR|EX`|CF1=Vv9erZHpw#Af!Elmr!Qeak1Ns-2@g=3PNl8~bAtC`+ z)6$q8KQGOG{Da)o^>R8amdt4V7w@|-b$xuAW^Z1aR{r;?=~})BhA3ZmQ|9aJdQ(<$0_bfjZ@3cPt$@+No_F$WJ ziN}4!7j_zfpN$a0slIO&#^LgL_P4KfRiTteuzR$eT>dI6uYe#KO|W7q6kk!#|WoA&l=KfGwjKHT#XJLF&_)9k4JC8 zwl|a_L9X zwV88nZtJnZU_Q&-g`Sz)c;2SR<$NsnZ7J8|GJByKY`*{a$~?+44;_F1A}r?|#Buew ze^gyIbA22~8D3<%`QhX5-&U5pq%HS&+SrfCanpFI3LEyVtl});c279N$7d`ZD~F zrONt8Top)fKf=y1ccXYi^eNqkS}B(`@26%1Sh^Q?9f#Wc7G7h5BCIP}4OT>j$X6!gJ4ji4-0;`+k@CcQvid5c$vI zZ;wk3+jC2&M*X2*ftEP7WjoY=u_8+qUy2-wg3`k1sUarC zBnjWx%$t$(StD$J3`oBtS88l5&w!c1Q-2m@wb*Bw(OI}kptEDqyr%Q6eezZeE-`EK z^=R+O>-aqB$qV>X@Z@6t`w8iHk$3UuT!1^Pc=Fa&5j2r56g6E5g?UpP&8{ zw0RRLHsp)cHlVnK?E*uapt42g#|af`hCl#BGcVpL10X>9p!>#cNyQ7*Z77b(FN7pw z7qKV&Km054{oLG(h6qORn|s2D@i1Pis!(tct4^>D4ov}sTQxRa?+_NA*%vP7cNOub z^8Jyrx|)Hx$Q6}0SAEo%*NDU;N?B zq#j-I`FaE_(ef8Z(TY*_MxAo9GQbDr*41_kW__Ny4ftlCC&#)%rG5^SV(=7NE3rFU zAofWrOs86{$O&;Cc6nHwMROLzcIJge+zHHp-q?y)p9U^I{zGp)blVRb%En`r@b{;_ z@^WutNxHp8=qVIr{Ev;*HrbZ<3fkQ&n*cz&HwGl3ohh||VRpk!v^}>Cx?g3e_|3{n zgX9kF`(f10QFo($Yac)ATmpM6F2ZV44@#@l?9aXf%E*b_6xajfPz_80z`bcakP`JX zF6HEG+}C^)kJiKI@p30ofe;)3)nc)(1ggbTwD*QoiIjGlt&7=^4Uc2}HoG1eldSKd z>mu>bOO6jgZDf^9X$DXhc*9@*i+{}Cm7~sqo+VtiFu_1@E09@E-eLB|InBJTRV5(qB|8hl1 zEP}Ezz6#S(4R-}m26-%4PWkZe8KK2hssx%XXAt+r=^IrGp3U0B`3MEJWjRz8JQ%D< zWs$3zaE$?yd|A&1R4EdS5q3QxbC3GqkAl_=Ivkl=l88=JD_*x?QPAWrs9;Gfh6_c_ zriFO0J}iNO=VH)*|A@u&T8+YvO4a?S61O0~$`mj1iO?ev-nLk|djg`P<`MsOH3S^0 zbAJ6aQXxh?e8w3$c=Bx)UV7@j1TG}=YKsm5!*L$YmpPCRpC*9DwBvU&=ER|jelGyQ zNPVa(m*)PHpg#JsAMgUwWs3rX@?-Gt$*x6iE9kgC*6u~H>)CmEv4dG_eiy~n1~t=? z^FC|k<*`2A6C$6 zC2*Hh9k>wAqHwolEuO$BE7XP96w&MUE0{j_l|9^XbS%bs%c8b7@Ss%8dvvKAIiox zPBy5SFbvXo;RJ7oFS7Xp%oLVDSQRSRrQi!zS4a}DR_+ZYHQ7i7?x6USzBvv^kUSNs}3S>7(GKDevWl-NsiUi z@xBrs1GqI9+lRS-X`}+1+8Z0T9#IPne zL<4hs!L~p}V4<2voE4YC6YJZ;4$tfZ!Ag!hR~?qaD~MCp;}t6Uu>gxxnJW;=M(xML zJe!{P%zdNr1?VJxd~f`NXVc4`O;E3D6EkW*8RnV$^3)43dQTZ|efnufl>5&^RJ1+m zZA$r20!7dkRWOe_I6NaVmS@+lc8o(j7z{5jq`u98?V%j;CR84V4GUHw1##ke-xi>1 z+b<}40phJ^XSFn)n^EvbuD7gKoNe@$?7x|Jq<{co!E(=|u#$}LXSzIukU#MoLDe*& zK(t!(vx0+Js}P+mq&9TqdI~)lhFo4!9WMmKAGe`9uE;1fhqKTi-_B)&v8V9_7;RPi z;CZqgNjW_RTTFRI$-!u^+Uci9CZQy5*TR*BPFz`-r>`(v?#HEuPF!l}!>w`fCim2x z3rVi+pvRG6v8&HU!CXEe_ozOgEmoSC9wBp|`ac z1_i^x$%5fGUJ+KA7=S$6xAB>Z@=Zj#Dqiz>6&toj)^I9-PR><~kWNEn!;YkXiWT3k zQRG*g2FkFNZ(l(D`9oqO>zs*rN^fNezW{}Qk;~A&EYj7QEP-aCOCo^=)g0}%2<{== zuoGLY^iw3=WvAN|`(KF&-Cz$EfD1t$F>4TBVJ8VF13v4Vc>ZQIn3{p1zNx9N16^ zj^xw~2~ToUhA&`DxK_5ii`1;4oZ_6=L1*+_&>q*?L)?*AaTerK_u7x;xfnR)UHgeV zpSpHco>QK9&3Mjw7s@!-FUnjW$XGv5`*g{j3qqxm4KCfxgZ)|Cm+l5CVZ8#^{2{a4 z8#@RcnU)HoH`J)H<^mtjfP31@8GEE@ZU(6)E^OOjUH4J0qrmI0v36(8xY$AWnic3{ zPHpKFNA&uNtZf0cS7;$|{L)yt*D2&k7ojs#);2702>Ok498K3}tcUb>KIm$$`lh&V zVF6X2+Op5-d3sB~J?PRKsM~9{wkX&74EAUJg&C+bQ@W+mzvnh88x~#tYWu|Ums9K$ zn1OtR&Cq6w5CZgBHV7Wtr2I)aG1V6F&~t*f82VfQS!@ww#1?_OD?2rJN`AKHzF6En zI!zKHu+k)vEhdQqj9(1)^zl8@%1bG?FU$_$F3~?Gpfp6@0JnGz%ENuO0pg8lvH_x) z3vf3+r5GSQbvKcKZ7uj+hZ({)LfnVEAiDAMk)bPa{nOv{{XB5vi5+&XnS&9W4jl9~ z_HJ53l*m~Cl*m!*;OHgtZuQ9>DA5-E9j3)=KDVSL?pnNlQO0_GW6?1rBY+Y2F}@dq zGo{`S(*Bfa)Lj6dO85owY6i_``Zv0#!;>Q$o*VGY=-OaQoDf+p$KBnU8A8a9jx_cIH^oK}zDkC3%?@ig6h2X7@3n}o0R%>v zXnc_Be+XWx4<*Rxu9R|TNICI?_*W>D@gIDe>fhssD3XMg@pbT2O@8l>qm#++OVi4~ z16)f^-}Q9r`%|x_zK=;O|D&|>8`APe)BN?`*_B#fIIa9SY3-krnofR)n?=ETOnu)q z4`vKYI+)Qv`Cvw?oXa>G10_ED7=}x4a+z~*EyICUYRr+-gkO|wTb|Q65Dg4#YxPEY z)qaed0q4yq*|y>x+_cuK!GjxU7Q@4=yEcHM3`+ofv9|*T5&yc|4%ltY9UgDX(9}ah|+iBRHX-VFDbKm=a-~0c*HDUIgnK?6ao|)g2XXeb1XB>Aedd>ci#nBo5=D5!ClbQFB zN29@N-zJJOGw+l)FaHgo+*#U)y(08N*ScRz}#QwFA;Va>_a+8NfPa>q41Q#a@6 zDx}j>=od`g~UkZ+u8h`h#UB~~?};U7KNI)WP*RYTL^BWNk?U#O+68nm`ib+m@ZSzTyR zezW#gUlZYZDTdr?D~566Febf^rht#_?hre~DU6RWKG`MOC_%kEHGC zl0CGyUnj_xObbq&+|oy`@Nv*iZi#9sz4QH15(^4i$(s;$hPY`hZ_u4_V@&eaMpge7 zDW~T^vWZS}`t1pw5}2!`I-UNyY_<)Bbn)m5)Pp-|YSpD&?cs`dmO1|?X(0z3!0S7ZO64+ES`KU9r!Q`afQ#$FLtM$`~jBX;Z}FI#~VilZ@lf zLP~#rlJ$9Gy(wb4w62fEAvB?nPO{p}ngh+sYvM-VK&7;_Vdk5L{sis3%8BH3fEbS7*aH$|%9PY^s zTp1%>v~QQp)nAi-8UemXsVmoC$x6ElsW(@Dk5iahOnxUWt&3nC#U@!VG+lmsMT_l%X66mu?u3Vx8 zL+0uttzl{<*%(XTaz?3VoCu>tddO2n$bPeh?IcLn&>X5evPparw?&Tgcv|00H>|tx zvl}g+=BHJ9HZMG2DJEI7xxAQ&%8)5V<)Wsn+1x!*dkJ+OHH?<s17bvI zOcImACF%20!vBmHE&T5gV)}f$v)R4tW=N626ReYnVhfWLnWAW$DT<%y#{NYVnM9%W zZ)y-9tN)(wlFAP^breTJ3uS|dfE=bZh{{a|B4(3-!6jN8A*!q9h#~43Q3t5YP!dY@ zAX=i4B8|b}86MG>2v^Sq;=hjdA+aj^HeF@XC{}euB&L_3P--l#DywJp9W^wn51qt4 zcg^Z`>RVl))d2;v48%)J9RE8s3YvbjG)>M5rC({+5ZNU{+i0kgp1^ICLM?$}p9HP0 z9T?R&SbecuybvE;NlkQUxafFzTD~22GQCEMc4qezat#gZj6RA<8dQ?vlso_Q(8JO~ z_e~3ZqzHYXHFUb`JSA3ldOFskPZnl;oyXILWaa!tRC;)A9SO^<@YWkN+Gv~p#LRmxBiIu0C%o|4a zRlCX)!d;WI^Y#GdZEEHjeO&MCV>W*@Gs~2X{Ybd}Ag=9{_PRw{1fJ@A8G&=C+9+!T zq{KT|w@rG?p$@Y8E0WcpF2b4+#O0^v*WQq~^9j~n(4uirD_S4FE>}3n)md65=){82 zWPhQ^kr6)E9&u9NY6oA3s;jd;LOkA}WjWM0Tph;7pYX%fs>}53goe}7 z;uuyuNLhuk0BHpHQ2&H-EU(mFXUHv55E|ReTdn>F7ep#Il*~4|U}$VRFSS5cAG#4% zG4L@(U-bm34^E42YRw-lwRhs-K-up+9Ow;13J0E2(D?CG;_dkH((ZhNzx4dmCOkbcT!oq*XN*dUcp&@%Wl1*ud*lXdt@4WZ?Z3%VC-&eP9jV{NsDiw7nZA}s(|J2YE@<)^ZS~KGQ<3bhwap^0xPDi}g10vB{ZFdR zn2<63+ATwKJ|pew4^_JdrlLvp&oBma1 zK!)D*pAM#$--gNz{r0)sQ-5p2GfK*TIXwGA>ULJ+3H1nI0mK}RAN}wp=yHuo)e=!HG|h)&hB%7RV?ONP#~F5^4!V z=BU6`=P-qy*eD0HyCR`8G)_<5*tCG(rv=UyPf>Gc`iSp)U zcK6nT_R{4}3ui>s2=&$PqBrKM_7K5brTSCn2}REp)g*pW#Ug-h*ovuq@wuJL_9otC z6q4ObsBvUe6Q8;uz=eMR9XZaS2gZTo8-Mzr>{W z;c2%hUl!#4mMm^56%0OoDHRmQx^n6WZ2B-mFR=Lo-2V?)glW}}5R96#QLBN(L~b=c z$TPdUAt`|q?28tbHO?H}LhBpNjjoQhonoh@AEfy4Dl0QWb5-MMo5&K`X8rSB9&P+S zY6~f8;_W2YTX~o|d5g-_Bb-H(`Uat_-J#mFE~zNN3B9{T=S^YGT-P>zARQvp_HlH$i$DFFkprd9p{1DJuOiwVd#zoue0~d3u@XpwCD3Dgs1}8TeXw zb!GLWOSG6k5zEFr)vl<8tb^(Tx~?cR*gIQGN%B;Dnb{7ixu5t|cqcElF4q)vaZM}W zq3COnWmR>0`QXjdw3-G%fwyk1v^g$q#P?BkbxG1@7dFNuUtJliBysanvr{y5z8S2l zsn0eDj~=>6t8J)yOIkTI7o^X{8wEWRKAaHM3UML#f%$jnH2ynST0Wg)ZNHEu@8+r= zJ|&acgDpM8o;PnRAURm^4257B1F9m z(zkoM6hqa-^%+GNqHg6L`H9nx|Hcbxe1uW96&TG|L^mRRW| za@p)YMqtZsH!jhaDJ`aoLggj(Vj*fTRW1Po1Nq@-?r`%((Ml}AUnXUkhdTF;RxyZ? z(In|VEXwLV2Jd|1SdoX)lwo3Yeqo(>J#lnxrM2|G7hhl zZ$yhA78*(Ex#@B!IY3>0DCx_f1<~R5H!|zr;8l#bSW>E}ePAoYc#FZ7Q~2Sa*En$! zlU4|}axF`P81RUT>2HK94|I0pxtFH@lD;QWkJoI_Fd4AU5_1%=1z|5f#2qf9*rExUSRP$zd2~Vgqoa6K=mYU19+fo{4ag{Vx{pw}T<14JckcGrvY z9rQY5xbrRHis4myY?Cau|AsvIuY#aG6&-#`sk7SqjlhP9E~#92$}$5ZtE&H?Tv$ty z%&c5kBy2J%7iI{XOv(klu*slY=*vCI1#-Ze09SRm)?fOYO>m~ylj|G)c7Ncq)*btk zW?$Q43pJsrc_;IstYz*`U)Vg#L-aZ5Yt+EeQ>{uVLtduWI*0U*#w0CZ!ReoaxRU`W zANa4e!jdFfdfAPTeF#5M|NH5VTkDr7adNPiTr0eeWwL3L$g!fZP4H&PY_PH3EHOEw zZ??;Ki`YFQ(&QQ$kk9Z*B-_@wN1B4OMFzCbW^ggaI~Wrjur&OfVFOY_zWqBlml8vi zS|VX`f$(E}N8>~#+l02pi4KasdAJ(G=p~HhPgD5i)dMLr;krlkCqmVIcc`g;v8I-3 ztnbM6Th@CH0OFoEYEJjn6yzB<(jh^0W*>K{p{Ys?oziQ^M5L(Ij`yuW zu@y!CVAWxzC`4|VR2cLmgbpJ=!$PWl-!vu0#x=sPXG&Y*uN&8x2@*2Sy%sz&zt}51 zvaqzsQqm$bh{zUxBO_C<{>oOPig;LRab8$`g{X7C6+ZZ0NGyh@6>+1pzFlg4J;e93 z-loLZ@xt{mV^3Bx;=0J${x<%xY*R<%ysu_nlPi%g_)E5)^ctl6{@BUm=HBGSZyi0SXpzU7rFJ68mS72Y$R$8m*V56eu3u7sz-}1!XR1}0aEKLG<4a?wqXnt zEa_~Lp3Yw6oR-cQYj{!PMLNG(PW$_SzLU;ub>M?}S?s)$Uy+Yf>Sx!NO%KQ;EucA8 z|18WVpa=p=*==g-P*3q@SQ|YB=X%O2acPj3CApklgG+WcuGb_aq>8>&u&z037ha*7 zkW1iUSUQFWO^lNzy+KVoJ+tycHyOlX%`-9 z8!kjCHJuTQn#5NTv#CaEQ^B}IM{|YP*m2h-dJNZMXOLn13R1n>hp5?Zi0vc9O^CXI zK?7H{;+nb!^Gq#f3QLK)&{sUXKqRuG{MgXTc)->EQj}WUdAJekH z%$9aBjqJF|7t=ET%$C_=8VMKIn3nlwwzQ9FWY3LDOiS09EgfPSIdGFVrlrfwmX0xv z9J$F8(=zYOmf2$(W#`5@re&U)Epx;);)tL|xno*7&ur-wBMvQTlq;rX?wKuf#x%+q z(=wO3V4s9lr16RNvSRN_Ph-5Bct~L*1C}z5#da zytNT!h&o)(i#n^>enH5xLo0R|35n8&tCvw1Wh_n+k_8XbVKG}{Dd3akWJ-m^_Ucr6 zEh1objCSFr4%IF^)krSrvnGpm4#B!k8On+qS)zM`=w(^aO#$ktk?IdO&7w|h9jxn$ z-;~;-q;&{sSViA9b4j~IxVoj*r=!O4s6Oq{);!9LdXH6^Ut&Jx+n7`<`7TkBTn?{c zOd&>s4q_`fF=MUXRAo_gRWESCd%7ZHvFxc2L%tp?cnS_xcP`;&M~UjiJ6QG5 z%WHKAQ-?2;#YcwB?7_b@G}HQv*?}#+eRcyExhF&gu@Ko;ZXr-DME4$0gJm^V=Bnt* zi^H|V$XV{b!kENMYpq9Vy(d%Z)Q@7%K9}gXu$nHXW?xz5G%8IeJs?UKti~)xZ)sf; zBO9o%<7LBLH?83gkadDzrvA`(=#@|-BxP)zi`xZ4D<%N@Ua`vA=HT>q6La0e@P`Hd_J-Q(Lngm2Rf> zxiD6LtDQ*z>&Auhfwt&0m6f?>u+D3zRQGtPQI{E4qIAYx4vfSLldkTTApgUd*7%GR zCB2>)SSn#Iapw@M$PCMWxzs2Lg2zhXfp?C1mf3^7+5!)0{*|blE1mJF`U}B}ie3#w zSIekF9l*GWbEU=lG<7$P3Ij?Z!=rk-aNp4HKJfy`v#I0HxBurI`^#PYeqQm-Xf z*4NN>563oCs1n-NGq@1ahb~Xp2^gnK$(v6K}dRtUuJ2=P@H0Az@(KeV6FfJQt=` zAt2HzR_Upw=zv)IFeVY-+(FhS)e~1O@#*zp>O(|ieP;1R%QN~eVd}B-=?GYL`|;a^;4rfbYg_dhh5f@roN!;$TANr2F}D!H6ccJni}F? zs-^#PpwxK0gnXs`H8gDhEC%X~@14bqni`8O|AWx^Y{NE0{dkVmY$57{+&Iy7b7N(k zqf{`87KTi370PG9Wgk)@rHUf;(oi5cR17XGdaXm!ub61}3{mggmyHesdNKRLnm3Cl zqL$vm{mtRnNrkW2kgAIOej{9Wg_ID2xB3fRU=daYPD+$vc{JnO^t1;I7w9u)4fMY) zc%i>Ut)ZwZsm#;$m!=?RmW()sg~xWgfih?$t3j@qM>-!4x+TP@TTW#iayaM_*NVF9 zEb?jWY^l$`#)@&WIXE2cpU`ZwW4A%&eT&CA)KIf+q9S`wTSb_f&QkiJhnZmzo%Ds3 zjy=|fgGO**u`fx;kzm&CsFP6! z33aUpg3Zte97ye=RXgX?k|qVaey&Vf@^LbcvvYzTabU(vR{F#RsfThXF7p#ZSYDe= zrbc^VeG7`mjWDx84cDd0ByBw{y8%-;pwEdVK>pvp^Z86v(B$?iS_7GL0uchy->qPd2vQvkb zntGD{yI$sI2yHIeMOi2&y3Jv-a~-Ol!Uq*0jf#4p( zhhv$$)wWcSkBTkZGCZm88LoO4;Muf(qS(LAU*f_9l}of(_Dsd-8X|j%p)C3W26Psz zWQ!rWT-H)o&>7aPvSu{r7sw***EG3~ASX*dSgZy=FFiP0M*-qX|Ma5QkYb{dlBLf( zjh;rB8VP^Ul^mPtA?LJ*vUJ|t$bODnO1CU!y-j+AXLwsJ!Ysp%d?G^Yu%njHi}`Mo z!w!xnvMlyb`dpTFI?cWrd(0KkMN$X;XAR3O3$D;fvxVes*;S+eXQ-4ei9_UzCJB!; z?F63~v;J?EcpvR}5m6d~)jG&Vw9Mk$BzwLrVi|G;(O6USiDMo7)7D6Y|KlYRNwY=h z&fS^1_&XBQ#;1|wo`8zIsjMr?UWUk7i;q7G0CtH^2z`n`W-~lu{kUp^*-U5~gN|^7 zW+ZP4Zes8%Kr%5P3k&9X>rCnq_MJg<_;5m9 zaE%yIiHfhzrG`%zEmwQyKPK5t=^3id`$@bjTPV297B#-uk!rHlYEor(e|kmp83H5s z&@ZtzqPrZ|%F~j*6#kp3!J2nABsm+R-k3s+3~C9Id=)r)aMYm}zv<}*c+x+;4J;z3 z3Ysca>mi9{T#F&x)XZ0Of2xI;&xDy&(v%`qiekhxyFBh%e<@7uEZcVG{R2K|Yex}h ztyqub7bJ}#gk6Zb`cs*gLX_PF{Uk`vXt}8yej|RZ#AKb(@=|*;(Ln*rJfpQF68u5gwKTv@q=(-|L?CHq{Xi*2N3lOSM z=GIc}9w3X>-mS?C?M>|16Se`B3zbG%Jwh#K`CL?7{b#gk|D9B5-#cxm;z(}~oy8<7 z8=Z*FOsbun5q`A_O!Z9k&>F&TLhb9TNW=c}c4N2uFc8&8Uf zQQ_D;T=W^#Cb9<%R}q)sYLMjWQ9?RbkqKITAy&KxrYF=VEunJXQp<|>VSMI4&6-f5 zvn5l+x2NAp%^>?0F{@i|IaE)st*^*N5&BPzuLJci#@8bZHFr8q;oCH!IoRnSt`>+Z zdvPT+csrfN)l{xbN2VsPAPD^kalAuhur7u)3(y3f`PO8?bK(rEK>MT#bW#-Q+&@*8 z&1%8ASsI>3#FvJrHQ|rtyogug&b&m=ZW?*`VNrlvdr|)fXIyVTC|x!=)8ZVM7H3}( zXG`Lw#>s+;On4_ooVuqLOwB{{O^WZ8;8ZEb#rk3~PF?$L_Th_n>+ z7b!R*`yp;>t|Sheo*1qcmK|QvdlVvc4Gt0SrLD|oF`Z>)elgv+v`|Jw4O6?ti)N7h z1riCQ7W3Q;5#>o7uMUXr&8Xt0cQcz5GRI9e&vf>Waqw>%<6KDiG95Up2BeM<`)GT{ ziq;58SeAKLFdek0_{XEQBOCstl>bMf`=^Pb)H^W6%kdfkO}w2Z^rU}I?<>N(o5Foa zvyNCQq!*iWAg*OvmfaKz(95IPbe9__39*H#%`b})=({7rfx{;MG!^NVq8f0b8VFIB z$sxVicrYl0UFc`0-BuR6t)T_YMuQ&81kvwkpMt~H0q6{fn$)|8G*x?O-r4?N>?6W* zAJHq6y~MxV%10)GQ#R8R!xei7j1wXdo&F!_)U&=?+y6ke$WE6157^dGbE^QLYBok8 z^q|vrKoEz`#4*7KPY}N&ANaHiQNxgZAi0Hu(Ira&>8p$TRi`e z8pg8wK~<^tm$ny#t+x9?tHWu2g|rRCN z-JM-34hR;i$+S6jPmZ9$%91|0w9w6TaB=wqrYm7*-}%23{d|w<*C%MJdoFUDGuDFdfe|INkv8S>$;E)OV5CZ{Mn-7p3nYTx4$5wnk;y9_>}vT5#3 ztnOp7xZ7*)-d6VsS==2ocL%Hclq~L!n)^M;w3FEOL!r zyOZV~ZFQfU#XYCy-q-3rKZ|=V&Ao}$eNh(o+?u<$)qQCecW2Gr!Ro#|i+di;{oYZF z{8wdh&#Sp7S>0D>ad*+&S6SWHXK{Dc+@r1To3gm))7<-7-M3|N&#$>RvAXZf;$A>= z_qMw4&EoE+xjR_hei!wluPn-i^K%|@zr00vqYj%DF&KXu?HC-a(UNlUB9SX*VJY5YuXrtM)aEn1LKOmB z^jBf6&KQ>Uv6UiqDUK_|Pe857P9}$)LW^}JE!+$>)&I<;99qaRi##b^w5@6mdORj4 z_H;BJwQFy7-zGMwIZAuOjJr$ogv|X5S!8spDGTa4gG65JY4aXM1%g))e42N&&xI{y zw9jg3u9D_*X)cxKB5BT-=3Hscl4guFr$}>xG{;Euj5MRAxn7!^q`6I+JEgf-n(@+1 zlI9Uk63JB_7UH1ntjB_)n*?tscQBSYxB)MVzIW_N2p@V zK8iHOK*{VQMr39mF&k(05voU;9%+gN1!kWK(iD1WngnTz6@q4;dx*&Fb3>Z9FxxYP zbtr#?KFyg@M@&gR3ZH5Q92t?zln^oBq{KRSCstJWq;a~ElAK;Z0`feEayBJP_8cgC zC#)JEPu-nFuzauR?!bjEr-KroDQmi=<&E5zV(KGr#*$Hmm~Y2BeObq-Y!N5RuDtRU z1wYRPVY;6YX0a2(tbRn8^^!0nXSt`!pFH>EPqBFU*zpEej1ZK=j;iG< z%AwQ1c;)bvN8F=-P_%oK6iaMt$Jg8^+)_+=QW2B5*TqApI+5|h(F`(37wA8KB_!>n z{uY1NETzfq)JL9K#As^c^gk`edx-Jx36Dg^#t8Xovgvi`UzClMfY<-N1aAF92^c3j zE2DB5C$jaRgR!5p!hPORIapcKJT}OgpTL!(cv*^)RXWCg@0Aohy$@v97JdSPoJYFz z%Wfy8P*;=l%vk5?sXUf)Lz83Sga4u&|Dp)8-!@9&-0=o+_?TE|>*{~*)f3YduAKQj zpVH8D1eJoDRO(=NHu>!Jvk%W+$$ixD{M9p4>Z`sSzj6fMZm;g!pB<4m0OikUrx7{O zhB%M1YwLfGUV4`Uu9-X4e~}hp9U_9VBuC7kvL!CbK(&H-!2euIuuP8FX4YBQW=YNw zlH>LnhN~ql&ZH%;(9Dc-D$lzW?Z`3S-0|!D>e{O-#%s#oNgU}j)=OGZ+BN%x9KD}R zavBrQSG1Gj&)ynQv>vs@S0f#txm1Wx6xUymbV<0C!)3QxT;5I|@heVw&QMLfD4In@ zl1UoY@Czp08S4?>`^iKiIrwH$eA3;q1rOL+qx09I%ORrkKPO}OX{3+o2=RF&Bzq9^ zl;r(mo&3+ae0$*htwhrq)H33c$s>GUtJCHzwWXjQNBSj@djO7Hk>*CFwywN zd1N6?z?N6Zsl5v2DZ|VBGi4W-UAf^apul zDn5TLkD^B{QPmZ1vG{L`BV7`=8js9}Mt8rui!lUM#5v{FwZyyGM+?2~zgh~@C1icS zd!&Ued2Y$yPFZ@->G4>v{vy8nB0d>##%R-m)uJcDe;EFhH-RJFr@ZkRnLWL#nR2`M z`8$dJqGqxtBkebXe_0Ggr7rxdf8k&BU!BSyG2V8uPbhjccS1z+!@+mWX|_46wimEX zizLH^Xe4OaTyr16bT;JV-r?148l;d{w`D8mB$^C+(cU?|x@~{{56yuZ$6S1{TGUNZ zpZjA&lh{)o$thHi1~J?zhLk$qsQul>`2OZvj5HqHSpo#|pXa|lQ zj5brNqTAhMmsx+RmeU^2p_b+%#Y3I*wRrntBrk$6?W@Koss*{(WS1ds79jot`KOh9XXfG&|5vlWFbNLH@r0p~yMY)853Qbm>*p`xS+UxMq1Xs|d-IO^?Hcg-)dCdb>Z;d?&{85)(J73+ZfLA-=`QCSIGdw* zm|A?4OsF36oyC%LCsPg6DNA*5$?OR8p0nJy+w3wU4PP`{%sLo;L{^z!bgf(`mW8}qhldwbxhnxM7V5Eef4wEm!)3C8tz#oR1!a?Ls?(VH1VF< za7%TRZ*DT&Q+M~gYfj{a!vN)Py<(KJE>OJN%P2BnqS$}SrFK2>R+HI0GWja8%fex{ z)8{gpv*{h#WHhA;MhH8^IH{tN5FdZs6LY;Q@vK>U%K1Bs^{h1ORU}UOHk$1WWvCKM zg@}q?oh9hLZY|QYsZ1g`>=K9dJjxf(jz+V+p}7`x0+o*?Mtyb7Y6iYcsVUy3Hjhjw z8~t?Cw(~idK*m`FVy5)Vbw>SE|Ci~K{i9I-mfZf-GhBz6sy`ClxR(aWvTV;zX(_Rm z;O?1u<)LoL57`~v(j?IeI;z*1i%)-ra71EEa?bc1PZ@p0xKuGd@;2siiv-uGTvolC zwrQfVUn;xVa~vtBNlv^G;_{8@S(mx7IbugU#I|$tKN=g3isFW8;w`oun)<3)zaa)b z>Zm?oNWT_RFLAH>5PiQv?DYd{mS^L--H5eEQ;|F9b?(ElBOPK}ImL!J8yXXgPih0R zOTBpZjMkT`*ORTY^`7;Hi68fR!P)H zHlhMsDQsRP(0C~>(Vt^sJmR3airOg6RdLdf6}}W#{c!)IE_P@5#wIp2RWxXAQlqkW zFLj8sjlwO#^Ie??9u1Wi02{{X1B^$!G;7hM%5Z5;?a!3D5^%-v3E}L%g*}0lIuLNc zkVnh1z}V^{AR0se_->@WisXJ>sdLbrDUyib+DRM(HYI3CtGRj`=ORvAEa&2|j8|xPO@Z&Df@7!8m9DErN}jM& z5l@hq!$GUv6(#U+kk~*}i4EGuH;`zhnKkcZesw)AXfU zXkt{ZPMJ$aa`{di;TA78NV80Y>HX724`nls9z4@V4~BfkvHHBDavOK4h(h!p7)zw} zjIHU_J?y2pYC;fh#6d!t;+yDXsyVfOpOJ%a8GMYBTi{r2SEvhoPq_|4Zd;f#MvHeuGHlsSSw3Q+|gHrp7W+=VapE(kFm$5Mw z9}fQ7t-U4+@wW8d%{A0O)&ZLhZn4?5Iyg-CuByVGeW?D`!{}I;$D-?hG;Fd)cvQ~{ZUo$_Ul zl|K-0B*V){nf%3bh5qndmUom7r@d&FSj&=>KLp@reYf1S^z!x1XEOA_tvRH+}Q86_>A<#CNcB$+CS(yHHO*! z2)7hQvwM;7aw*q< zXCn)To9fde%Vj!k>CId=9&!kHHX<32tPhF=@YsnfJa*#h-+GM6Ob(PY`_v`bW}iT5 zHj!p?X||STurxbLvy(KtO0%al`$|(M%|X%}CQY$u!0aO?@|jAN<`ij0OS6_Vt4Y&O zniZt!D@|`{dP-B|E^9KRDe~X!BMODt=ZrKjNb`y`Z%Ff&H1A1MmF6R9rb_drlct|GDJ@N3X?jc3OPZe2^pIwt zH0w&!O_~>&qi4!`t1!g@s7x|TQylSU_Sq&)anKCY@6z;?=1yrYm*!q+#!K^zG#^P* zmF7KZ-jZeoY2MJTwYX%wd!@NknysaM6KS@VKE)~mv(GANc9N!t^cg7qc*^Ug(!RC4 zt}E@g$?Nsfev>qVr8z~qR+FZmG?S$L5ou14Pfd|#HEDB2nvbN7ue|n_rk6CkO4Co8 zwWL{Bnt{@6BF&D{>?zIWnCQSV{;##S?KSnS-Gs=g6P>nYQ{weGx%iO_Lr0g5-Nb~U zF}1b$|Qz_mqf;Ek~O*o1Hr~ z_1&Wl8yfb%aAE6*Z@%gA@P{9QeppiLcSO=;$D~d_%9Fa*kSPe@Zt8x&p)ph zRl0QR&NXTbYS^H`q-?KVy=Zshgt2S2YP#p&e%rp#r%hlk&aFTSYh;^>&`$0bWD=gg5KZ;kxO z+UYr+@;I*{ZUaDnjSwMcXj{%{;g`)9`SR_mh&&PZoNqD z)M-=8)2F8oJacAGx!-?3`0LuW?Fzno_xNDr#xpLrX|p8M-#>Ex^y&Fd2L;V^ee)(c zd$w#2QzuXUm>L|syh+`j<2_x4HHzJ0Xe+O;40lqk{2&(+ndh}ryW-e=D~3_f@6r`9J=PIYs3 z_NZQC`4*0kxY zvcLUy`25bD1M9lE`Hubh=kM=y@4mNK?%V}OUBA8|;MT3{VO6X4ZCj^~{*zp}+^)B1 zF)vs4?9PL{y_?_b+I45Q0|&kya{m0j-`B5i{9W(fNvl8mtoEt}3#!z-ckjGu?AWJO zA3V6&_{b4cM9rE*b_^bTZB|^IUEhlrH=k?UcImA(Yg%j@H0a9Pu(0(xoHhbK-=gAv4HuG?Da=o~F_t2OzV^W9u__Q2RsZv*OPtRIUzWXlx@V0Fu+aEf# zu#~DEpK$Z$ilutJTB3OI`Zrs(`r^jEeZ6LwOnIiyoar)m*sxoT>eru;^y81i*G5L3 zxYE4&Tt|ER>~=3-zRI6Bujk5My$jQ?OtK@c$P4qrrbM_{V{N z9`N4>{+q$SBlrh{zdiV`0so2MUl{y*ga3W-UjqI?;J*y~1Hu1O@OKCQ6!1R^{<*>b z5%~89{}15*5d41v|5xDu1^9OX{{!If3H}?wKMMRigMUNt&j$YOz`rZ_KL`J6;O_+f zpM(EM@DBn12H@`u{vE)-ANY3%e_!xl0sb!F|0DS41pgY~|0Vd>1OL+CKLGqsg8$dx zUljbm0)IXDR|5Zv;J*d@e*^z_;Qtc*+kk&B@IM9q?_#XlP$Kbyo{F{RRRq$^G{y&5N1@KqFza{t&1pjj2|10MFV|6|}^7W~hHe_ik&3;uV&zZm$B0{;N;4+H)!e_!xF2mZIf ze;fF}1^*o2?*slnfd6dpPX>Pv@V^NDG2lNG{6~PlH~2pR|HI(l9{fvz{{-+~3jQU) z|0ej~0RI`_KOOw%f`23MPXhn7;C}`D9l_rY{PTnVO7QOi{%^ql4ETQr{++8Svi%{s!>R3I0a#uK@l< zz`rQ?4*~zq;J+OFJAi)x_+JA5t>9l4{O^K)W$=#%{}Av$EBQ~T@EH8P!2dn?ZwCJ^ z;2#D4$H9L;_}2#imf+tS{5ygFY4AS-{=b9&TJV1d{*A%E4fy+m|8(#V0{=JQpAGyc zgMTpi*9HHt!GAUQw+H`~;2#M7bHINd_%8$hTHyZz{P%+YcJRLj{w2WQ75vTM{|x-k zf&WSHcLx6g;Qt8xdw~B!@NWYCg}^@v{J#hPN#I`({QH7`H}EeE{v*M^C-_eV|90Si z1N=*Ze>w1<3;r?S-xU0R1OJ`i?*{%qgMWAM&kg?9!T%QcR|Wq%;GYZpTY!Id@b?D) zuHb(F{Lh2`dhqWJ{-1&W0`R{F{$s)a0r(#Q|C-=G82sbF|04Le1^+eRKM4H8!2db; zKLr1N;6D!hH-f(t`0ob)G2rh5{*}Pr6a2pe|83xZ2>ey>zX|?&@GlPjt-yaD_?y6g zCio8n|N7wnBlt&xe{=A+2mhDgpBMalfq!-I4+sBU;6DTW6TrV1_Uk&`f1^-{c{|WdH2mdSJUj_W#!QTP=4}*Ux z@J|GP5Agp2{2jr63Hav#|NP)T1^n-Te+u}Q0sk%FZvg+C;BN%~3gBM^{ELGB5b*B| z{>#C?1NaAk|0VF>3jSrm|1S7f2LEXA4*`G4Klncee=qQV5B{6MzYF+Bf&X#v-w*z^ z!M`Q=w+8=C;C~wY&w&5$;J+69-+_N)@NWbD{@_0y{DZ*%4ftmR|H8klHgws{O5vy z4EQ$%|KGrWC-}R8|Igsx9sF~H|8?-c1^!jRzYh540{<4^pB?4*n0pzaRLI1OJWS z?*#t4!G8?+`+$EX@b?7&@4$Z>_#Xm)75s04zaIRHgMTaV-v|CC@Sh3(!@$2j`2Pt0 zk>KAP{O!U2CHUtB|6br<9sI+=e;4@A0RIH=F9!Z!f&Xpre+~YNz&{`O4*>tG;6EGu z=Y#*3;QtBue+vG|;C~AIL&4t{{C@%eS>V3{{A0mC5BUEC{`bMZ5%}xCzajW92LFoS z?*jgtz`rB-?*adU!QVe`AJVVkq{LN)ihR+%Or7Hc*9ANYT2_2rr?=}rx4+ve^sS%Q z%fX{Id^YMtj8E%qFWz7NwcX|86rg4YfoFDk0#~k|wOXs<#j2ryZwTKQ2DjN4+IA22FsqBDTEt(uTIy)-% zfMLwo+0O^o@3i>l@LgrLx4XT+(1w`Q$n{=Fx79f{(WB)reWq0@@@r53_6vh1hxEQR zy6@)bjRW_1E}!~wetD-iopjBI75)%3=hHzy&)@NSe1}r!N3Oe*t<{L|ImPdmTNfIc z!#8D%{ed4VFByMu#vwU#WA@^`tDT+s@w=pDA(g5v4}JDc)!Q>24Jj{I)qZ5mz4rH>f!V(v-o3r+ zkbQ4vmZ)DZ`^_&lI@Z70bl?3pKgM2gZ*6 z>T3Uejnqvsrq~>{x)gqJ{kJ1yo8_9YBH5+UgrlECzZQK6pR^s( zdC)s^-Vb55rn`J{abvwQwJX->d(|aZiSN4V&UWnbWt~bjyf^pH0@ z&%P|$?qK|sZ@g~w8qjKV=YmD@d*<5x`JG?OEst+}t7P3`g^K3SohN7B4Tnuncdg!D z@yMD_+@=?P65cw8;fFmp7ytI5=j4@Nm$rMg_r-{=2LmFTRGaj!%c!!AO*ameI<9;F zczd5G_jVq;QRTAh^gfLOOD-(nmG4mWMDLcBl^T>p}X+qU>L;cTs| zAHO*^t48h%i%w5{@tyC_OPWbZdT}(*cXuANhWwhwG3&OV#mv0Z7jYft>*@Ws8mKc4-nXiQY=oy998Om5$=sl&tW%eqycWj9j)>Dx*TbHD3c ztpC;y=dRE54|7c}(CpISS-mbV8RxvB=4`ju5wUd(r2JN9&8g}~d+m7qtLN>yo12Y` z_~qQv1|y$_jy>h(@l(yiBOji871CwxhaPT2>-{q0dXq6zpZ##Gev)oig=*fldIYXK zFe0&7L1&*kdrd9s`ZipU$2{C_b?u+GIy)`Bx9!T@gs{H7qK}Usw!P{_eb+(F8-?#Y z1OCC_9|Hb~;Qs~q9|!*@;J*(1KL`I%@P7&ZpMk#*_`e7L%iuo+{O5pw3-Ip`{)@o> zHuz@)|NP*;68sN={{!$}0RAc9e+~RAg8zB&FAM%nz&{H7$AJGp@V^QE+rhsO_(y{O zHt_cV|7qag6a0g~{}%X1gTE*E&jwZVTa_-63=dga1PCKLP%u!G9n4$AEt=@V^fJ&A>ky{ErI$ z!QTk}&B1>?__qcBci!Xi|5xyD4F1KyKR5Vq0RLU!e+2xegMVxA-vj<1!2fIT-wXZ+!M_^#j{^T2;I9M! zKHz^0{9VC65d6KseNARx!{-?p;7yL_u|0?jm2mX1$|4Z=i4gLqfUj_f};Qs>r_k;fg@LvP| zTfsj7{J#hPA>cnA{Bwf;bMUtV|JC5%5Bw*AzZ3Z12mhgMSC`_Xqz1;6Dre$ASNB@Q(%m-@v~*_&)~!y5JuH{tdu?EcpKf{tv;w3;4T% z{|xY-3jX!MzXJI80RIu-?+pGX@NWqI!@>V&@Lvl4bHTqC_zwerJ@_{Q|L?)SANa2V z|L)*F5d4F{zZ3Y|ga2Fb9}NDZz`r&4Uk3l<;NJxNSAu_M@GlDfdBHy({0-or3jPbh z{|)%}0RN@nKMwpOz~2b|CBT0G_#XlPSnwYU{`J9sIQX{%{|(^39{lToe@pPM0{;Hs zKN@E->L zBf#Gb{eD-1OHp# zUkLp3fd66eUk(0iz`ro~=K%kk;NKJcON0Ll@DBk0N#I`={11Wud+>h({x`sXI{23a z|9s%@4gU4Ozbg2z0RPJ1?+5-J!2d4z7X<%Z;NKkl`-1;0@NWSA6~KQk__qcBv*7;? z_~!=yso?)J_|FFapTK_^_|F6X6X4$z{0o5pPVj#P{y%{K6!8BX{40Wge(+xm{u9B! z5BTo^|1se20scF{e+l>x0ss5pe;WK%@c$D0Yk+@F@SgzwTfn~*_|FIbNbuha{>Q-o z4ESFG|3%<`4g7<_|0Vce0{>0m-v<00!2d_^j{*PU;NKqnAA)~%@YjQXL+~#K{^!6y z4E&pce=qQN27fp3uM7TV!2c-t{|f$_!T%TV9|``az`rK=p9KH4;6D`nuY>pAGzf1^;s3Umg5=ga2mm-wpl`!T%%pR|fyq;NKMd&x8LQ@Sg|% zgTcQ8`0odQJ^0@O|D)i40Q_fze<$$Y1^&0eKL-50!2cBZ{{sF+z`s5Chk$=y@E-{N zQ^DT}{F{S+5cvNL{^P-aB>1-i|Ki{u3jQhJ|0DPx1pk`g?+gAvfxkWY7X<&);6E1p zbAbN<@V^HBj^JMn{J#VLO5pzt{AYsyOYk>>e^2lq4*o;HzXbT-1poTre;@oif`1bD zX9xda@LvS}`@laC{I7z)3jVR+Ul{z4fd2&WZv_6)f`9Oz0{-Q}KOgva2LHU^KOOux zf`3KucLD#d;NJ!OYk+?)@DB(7-@yM%@Q(-o8{j`0{PTnV=it8_{7Zs=QSi?R{wDC> z4*s8j{}b>xfd69fpA7zX;6DQVBf{O^H(74Yu^{tLnX5cszQ|2^RU z2K>u{|5xC@1^j1#e**Y#1^;2-KOg*)!T&w@r-J`P@b?G*7T{kC{EvbE1@M0X{^P)Z z2l#IQ|2p752K;+~|0M8_1OF@FUmN@r!M_{$p8@}i;O_(e>%rdx{Fj1%0Qi>%{|NA3 z0{-p5e*yTL!GACKyMzA&@E;2PUxWW9@LvV~4Z#0f@c#z<+k*cz@Sh9*--Evc_&);w zli>du__qQ7-@$(^_!p9BA=;O_?hhr$09_}M)`GUr$W zmuv|??6bEkFmqs?&+;{F*Z;=Dg-=hPO5JvU#@J+`>^`04xJn8wd8vI$1x{6KQDfBwSP>G!&Nrtca11Bt__O`9Nx&unn*?kUuu0%QQUZNOj2)&Q+O=1|k>an% zfd2g|^|2ed~A)7~)mBwAWCBUi=K~H&*-%7}YQB2}Swi zGrkRjLV5(XZQLOuxT9CSdS3m8^eO8#VS<;mZxWQr-Ws#^`zK)y>NljnUgzcGB?4{K zx?ST|JwjS^4k{}G_RIJ*FXKC`7pdtq^71S8#ZiEE?l^veDlpW$`3#Mpe$XwR9UrZl`>+) z2qiu~UfHo@hw|aW2j%n6KUYeZF0It4QA26apn>x0)hmT>os??Tswv-o`>pcpufHl! zo;*>84KivWy==DU@#~-bLLcxMx#=pLItHrks?abqD7S< zLxw1wJ9k!=FJG>7=+Hq42nbLvUAm-f-MUpNTehrn_wHS#a^=cObab>55)z`E)uusN z2lZI-^72yNzkjc6-n?1q(xr(;H6PMta_r%#_& z&YU@;{Qmpz%G$MSm3QynDUBO9R@$^_qxk##E7PY>SAv3qls9kQDA}@QQzlQItON%K zD|PGERlffEYi0H7)k^#J?Uj`)S1N&lfy$gYbCh}W<|)gTEmLaMs-?Vm@j}_VcdxR2 z`*!8pwQEX=5+xK@S69VsHY?AbJyXt|JExpHc~Wt9c2)`$D4;xg^hoK^qldC^;XRW<+O=z^ z+_-T=DOs|lQm$M%W$xU$N=!_Q(zIz)<+tB{Q+Dp$skphhDL?=Gv(mkLcO`f3+zPXx z%B@?sl&V#$Ds}4AQF7(VrL<_#Ldl*zyW;Kbt#s|$RXK3rfO7u)d1d|j^-AyFy_L^C z`%GD|V1aV)-aTdP*s;ok2M?4ZM~)~pYt~c-4<4+<#lCd#-FM$9 z+qP{}4jnqAsH&>mym?d6>-9?U;>DF#ty(Gj_U%(lCX+IA=1gVSuwhF5`t_9`fBaF2 zjEq#8H*c=k+uJKIU%piG=FO}0>eWlBUcI^!9v-gj+OZ`Am z+qZ8kuV24b7A;z&&88Bdga`oy}W%lgZ%KZ8Bl`p^iQu*YQPn1tT{ZvU#PF7Bx zI;Dh$hAO_kzREAZ{G!a7HA`8sVucbL8>{5WlSldKr=OJj_wOr>8Z}aMI-Sz6VMAr{ z;>AkEiWL&o;ciiDG}2tn3c*Zz&diDdxu!+ct{NLW=u-s*Cazzr9o~qY-T- z#9~iYo~P&(rizF_3<-##7}=ejWHzMQ8OW=JQf;J?~EE ztW6WtpXTQy&CV#QxMft8jj5Wx2cg?kqi3k@UQpz9G+|Gv#*5N)R0GdpGzE_ThrRaz zYjO$KMI%87B^c|nfxiXCf&!u|L=edtuoND)xqo zy(>1BU36Kn-}n1V2+_6gzUSQM?0ufSMu&Iio8G?pX8xH8Sma6!*U4ZFSHL!gVi-;U z`&^6Z%?ZQ&IM`@U4DIe1YIYd@t1(41!Vvy|q1y^<@*<`LHCR#u44G<}?#6&kMu4T_ z%%P|V(?|-Yw-sRHuQ81@!_=}BY@{|=^fIu@0hmgYF#TkJy;)+~O9pH8!LVKg)|3D? znFUs8g{h)HSbj@Pp(8N$^ux3h3>N)2*oPd$dpV}Vj~Kc+n1-%mdhCQLJ00vU5mU}f zu+=JHqlK6z{{V~b02W*iQ`I)G6`YS0{SKCU7t`ioOm8(Y1#bb%+Y5HJ18jRVk_pD} zu)y$+N7YQ{sP97dO`kD_$IP<@5r?2n;02i0VSZtVqj^BG<22-sEthMxqir8%l-IaojphMWVs z`3*Ex12n@{bd^+8ZGSY+3UuYJsIo+`t|?$$7tjsu(HzOBrV=#u2e2>&y2S)^p*Reg z`Dp5D=!TauTvuUOhl3sFqd5nlTPrb)cA^W9L$@zLmurS@Ylk5=9jxIrx<@Clxe6F|CSb9L(BxY% zwD*Jkios6GVdz%IP?!vMI|%I29c*p}*g-|GU{4J3Kn$~34DH)sz0bhP=V3U#1xq{+ zmUj-Uxfm>dJGy-l*sd1rb}m@vMzAIwx?Mf6<-fo>H(}Vc0t+6G>E!`f<|nYPHW>O( zFf3|gxTJuE-@}kngFSWuYk7mNSrc7!Fs1`ru;IoS^2gA1f5*^C0*l*)X($RT(grMi zJ*I-{m|hNGh}XiD^%d-{7g$S24Bze;%EvKWFJg!f1zTglLKcGk-U5rt1MBz>Rz3u5 z`z(f7Kd}6FU}bf{e(r!3ti|wa2{t|nEYlpU`UKdqGg$1OVAYi{UC1zH^#xmKgrS@P zw)p}qAOdVP60D;qrjSu!UF$Hl)xgl&f$6gwrcEiP7e}zU$Cx69fgLOZ`=15&dJ0q8 zVz7(XV7J*Ax`kkq?J%wOz!bL`Q%4i9viBJ7Ihb}%Vw!r6scs*p-u9SU#$wtC!SuKQ ztU(Tz`5UI$reM{kV3i{=wD)4VO#_>_3ijU+tnogkQ59H36-=Gcm|nv$z0}2YflWYg z8xrtIP#__JgkKUgNKheRkpv?WI7x6NVU2_p65L5>CSi;OQ4)SgI3%HtgccIgNpL3N zodi=721(c<;g$qZ5~LZ-I3!q-utvfo31uX#k`P0}G6}G>ARz&a1Sb-TNr)qXlok^n zn7K$;CqX$6vkxs|NYEp}oE8)$5R#xu!Z!)%BwUj~OhOh3yCe*fU_}Bu3DqRD(qe`d zC?xEWFiHX{3F)-(AwiaeQd(e;Fh_zGEs978BmsQECB!QL|dnDwNph^oY65wgEN5U)#?529l~O1sg5I zXmLS{BwA3?VuuzOv^b-MBnj5E02USxwCJM66fKZwAw&ynTI|unm=p~W373~50^3uao7lE6<3;|xd=w6Lbd7%hxw;X(@$T7b}Ehy;IHsM4aC z7Cf|&rUfT0E@)9nixXOm(}F4zQsKYq-x~P02L88dK-hoOs-45-5m73gR+lX7K$dk= zxTqpxH2>g+eM_zGAKX%eKxN}oxhVcIK9yRCtZbOXD1+>Y>=P8CM3q{r8m8<(m5?YO zqBoZfmlPGRj25C41%!d8K(+50(96@mt4~Lm%lg-+j# zk!Qgl7Jd3W2=ToDjpDP0CM5bxo+h*((O&U1D+7OCrXmr@tQO+)HlPXd`G7`>@+e}s zG+4s_p+7x5L%LJnRVT6hj!jiFNJVT!l%k7qOHwBcC9^^qBTq@tk@4rTpjIh_!BCz& zXxF0P7ryf#EL?c8c|@h zP85)oD)LcM>i^%AXGnl^L}=F@z6b`6qX3)vNmKoh`js2e1oyIYiB6Sh@J)~D(j%0O zL(AB^C>RRnuK#1-ya~t(do7y``^WxQ{tWzh$rTKxz@*9(QfNR!l}$fYnXHN#D)fai zZiz}=TttE@N^tZrlQI*~CnC+Hu7nyhsUM-pN*YcmGnXc?bSr5(YqyflC(JODt|H7f zlkO(WGn1YqEHINkBFr(9z9Y=Al3Gs$7Me+G6K2^+n-Lb9N!t@TnM?f$^Q@(P2n(&G zafG-fJ%o@!dW0ey=|EF!VGh1Gr}x$ zsSlyZLK;pOX)e{Uc5CS*LYcKRo26Szw-Y*9OHUH!Nu{?5HP+I1gh7b^cVM=;v^HUm zxzv>~QY!T$EU=b_6KYUztX(P{M<|j=XA?SENwZnBk>(Ia+DP*Wv#q302xSuKS3(aP zY4yoKMj~}0^pHsX34PHx4BMl`iu#zSaGS<>@th=>zK5Iw)69%EZ3G*b21PD z3u!T7G3qB1m~A0t2y-l?u7rgWsSjbExzwMqz+BpgrAws>7R{wPLMN$o5@E4KnoTIP zlx`;svXY);-7Tfp2|X;OFIc*z^ebVcrBpT*Sd4Zd%#cW%5f)lX+Y?4wNrMPAmeNQT zZKOj8v#q7GS-VuaiZDki%_Gb}|048|N}mu0Nu^&2vn5jNX~1Hsv^HUunbe6eMp_sv*p_lx7m1gHi|vTS9T$EDSQ z$AQg&8ek|8bG}po+z3nuCIjaK!LFpaK+Hta>%cT%F%WZ!R5rs_hRI6m3LFOX0S*U- z1GfM*z#L!}FdeuGhz$j4E^sTb0JsfU2;2_*3VZ;R&9s$aj*>P5jsW@rcLMtWcL6oP zk-%}l^}uZ49pFjeDBx}2Zs0rMU7+uC44M z&;fV}=m)$EQ~A-`)`M?>#?Z8>UeBf;06W|=6WS*@o59k1#3-kwG0fqxl1BU=1 zS4d|A=L6RQ7XovEhk##!_kh*s+sYOJ8vqM|PQb;$_P`^+KEP!_4e%Op955TW5x5+f z2V4Ps0$d3cEwGiH0M-T`26_Nj0fT^#fJ1<5fLXw!!0o{Mz>~m}z(U|!;8&pNU-e&7 z19I#Xu<}`;S2thpP&N;8>_)J(t^uLGU3`OysHcU526qkU!uiu^lxjtUa)^et;(V0a z8QUC55h}Gx2ND~HSJ%)8E=+`0siR#GE-d+tjxsREDWeBP=x_+ifR>byfV~AGuyNBi ziE>DUCRvrJ(&20t>yuB1+d?S~OZH@?TtOKs2-5|p*t&^T zs+GxdoiZY|B~jTpV^K-iqG|0~#-A>N+h$>jdVeXU9@+S4+lMc%-X6m>4rkXX6C+A1 z%7Dfel8skIew2w(N(K2WP0xU?R;ID^((q^$q)o)qIARjyu{dx2V2}6Ihf5awl5SC~W(K<|uq)Nl5sD&6xX`IZi_s1>+RqEIXb##)3UHWn1 zx$zJol$9+P4hL#dbP)=|F_r?0rcTRm!F20abe{5d(Vz6Pb@#dl%s-gZY z*eORwUEwD;gXZVcV8RazztWvR3jeBRJKGzrva z(dI%25#rOk3AJV%Mx6v^p%2E^gTcVy?0tiLg_1`kMeCHbYl_;S0zsAa^AGM}q2313 za$!oFT@=;Ym17N5*@)8%_OxVlPL}Jj$%wqV22#-@0{A^SZugesSW)T-RGC3baY01j z1svZj<$0`&o^HTT^)v&%OEgtf3Petibo$#od*}xo4ryRofAFWOvg|dLHaB*vOQ3=Kcq(0ZuMW`X{iE(!Qfad!o zUxS=GhL7I8Pb;Uk5#GW6#A=+7pVXv5N`dFFZe0U9vm*;x7(#y4@yU`#2`VjL+cZb%6GWT} zCDpLLh_GvL)?7IxTB%eB4WwX2BSx-Pu;<^2{j+gvQ#6{SWS!tm#I;swTxsO5bi{16R=L7Y^1C~ItK;mf$` zTb&I9zNOOfEx{zJP_4S?I3ZGmWX*}|a`(TFLSXoPMmLM10CD5RDf<1wmaEowO> zk!_{~d2%dQK(2FeL^M8|gbEUCtUQ6?<_pSuOj0s(Af&H%=lVpMFwt=+KQfZcSApQy zFb07Zr{shk!LGur%$6JFGEU2|>IDC4AmZneNTsSXf>rvQp z2S?MDavFSxrn&%E65O~cp>#m1@g1M~DNRj=W#;MBwG>KxYayk^K)@JhjClg3XWT!Drc@`T z#Ktkg(gfjut|HJ_UPxRiIxa~SZP2U84d1&|s6HJNm82NT-it~}=2+fu zK@2yl;h&mB4PK$2gUU{gBEC=lsyLz~g;4oSQVd%I978PAE=Igqs~nty4zBzszOQ$u z6p>TZe;J;ycgLv4ti-4>FKWqSj7rZ>wQ-mQF{P{dN})mvEIlO@{h_E>6jH7QV7dMF6T*ig%DYDGfK+kY`;SNQwF>jDm~UZ&$ypVYmr= zjQo+A&j^_XK}0VA{Gz_}Zu<2uo1`d3&CSf{=fbc8tt>D2wX_6TQmrqKe#R7NiAt?j z9;;*o8HHqIl`f83L?CIwA752^ZYj_;?7BcN*RYut+|Z6{xek4uVMTAlX!Y?5qc}ya zZ%dkRFkrFigTh7)EyIcsuGAkV-3awlO8-@!$d_SQp&%SD5oRfYDiU$@U&my~f5JjL zyHVVi7u(8Af#slY!)(r*HK`oEJnThZ$s7qY#Ybtx!EC{sbud#rwV@}$ zOn%9n1vB}r20feiPiDzN&W|&O1BEMXepOZGF!t;@sPPTZ>|M%GnlDdWOjv_;;#hl!TTX|5X?9h!k*g* zhneD+K}YiDiZCm9vk6)?j`vSy9Z$#Ee$fz~PUdkiQ(EO=&f?8xFfZoK<}k12&89GK zhnebD0&_0RlxH&kS1GT+Kz~Y`(AP77%?5TmM20&az5!u9$bk@hu%W&_tT$0$S09nE zUBYh@u?{ecjJ9i8I%xdK1(7Ha`{U5Qp$2>4*y@1|d0~;;84nBS+RGOk5B>)Jh(-~1 z^=w62??U4;#9)KVt4ELsTJPSgYe-k@+!@>1yaiz=p552eyQ04cH24T@?Mzzl8tUus z8|vFfZ|}lxKPTvuM_J*9vnW($UA@^fc(XoCh;Pp@TzK{+N0^~QMZSH4Nc(s7?ixz; zt|$Yv-i|u!9qbuIP87z#TuMj%>FJ#VgW0wt^hAth&Q;KN1MHg%$11>=*&}A2A>KI9 zE)x0q_Mx`$?;65pMdXb&6?x$1SJtb@r)%)faT*-epnTdpI=hk7aeW!SRf6vkAG{6o z3uxk%#OJ=kTqWC9#z2c;cL2IV`#=XlhZADF&{(B0O?*QHj02tc67fgkh3T*pugL`J zfQx~|hbSNaqP4VgF*w*w5;;&6Y3ir;K`1mU|$Z~ z)2}p_cMdn^zeS8BAI~QnO(CB_$z4ck-$CuvD#pTkL z!jp*M&R}l~-*$LRW%}bV4l@8$Zm)y4lT{?wXc7$VTwL}Fip$H>hY9xe4hs(H8W@1$ z2Zj2vQx=8urOhBnZFE&1%O`a#?_%F7LE#Q}MF)FFoE?fw=ztTj4F0+TC?J%vn@SzS zFszG6#I0{gE{kQiNJ%2Yt_32|CoOWPj0wyK;aIx?6LYsu5%ot0W_-eW1P!3vu;-!r z5IRERMh+LofYGsW7%@5b{vy!;_;=t1oW?L4jiCsVSA{Wz>jsXFUcOzr1~B$o*23kP zHTnkll%--U#mU(X#zaLcGCR7oYK;_Fx?@W>SG~EFvkPmEO~UAF>FVt4*p_uHwY%W> zt3J5Mh%N*dWH2sXHshK$iLg;0P(@=KBT3z2h$HQawxMcbm7$xVixfqpty0HcSe+uE zJLBBki9ZzPP5WtTont6AzT8WfJ1s~)R4UpDQHvN&a*{3yyYU_B*<)463y<~m9=Rj9odfl5!Ig_7Kk|L7|rEhuBOlp=wW7kCZ*vh9HggwT9r z=_zINZ;&-UXAJGNcBrT2tB^9nmPsEjS+3S%H`39U9~_i?n>(*2Cr)ToSr_W(!5iZaAc)ARhf{aQ7Rnu%UBUt8;;4!Xr)S{ zxOCL#i&+PXS1J79A)4d32Eqh*o z{o;-EaJHDGU=N3_%VylJ5i5MKd&@AfL*o~Dqwm#1-l}2IRkFrbwyudt=Jd#1_Pv@& zmR)2n%YzpEWiDf&bDo;ZG|ymu4w`|YO(wD$mWMvQ5nYJi*p0r2{mPBL9cuJ9SIWl8 zx}^xAkf1>>j;^(pRg5mB&>G?-X!GieWVCu9uNv5CZApsOIr*@&7K1<7h!f#UFZcZ$ zOJMpeOwNY+SEg#plh#y zBL*9meR!8Ff~~F)*p2!U_vz3~+ua zE`|wHv)|Hmv=@(q2BllNdQS|4-3&Co8vEefrVZl2wHCnx!-NQnk+R890#KHCUjd3W zm-#~tAuuU&pq4P!j1i6B|D*P#pcDnQJ==&LFl3-i01xO4Xx2M9>OB$h*Q!h#Kwyc$ z;RT@;nlYgyhO+@X(|39p1({?Ox#5h75RR*|vVSRY8pneADZD0G zzdzO9(<=m9h#jeo+=Y!7CKQLa`r9i82p^X8Z9Cjjgnm4N z>|tswK%?0O4*SsoyCi})@`J7&*cq`i2*N6s#`jAuJJ<*55fn-@G~C+TYuW6HXe?0A zc4xS~RYvd(T4(HL`T|3P!wAs#1>b0A2ihx1QKw+V#U6a%#}eHIrY!taKiX)0{ZL%g zcZ^l|PL3ZKc1yvJj(5`+T5tf4-4BK4rcAIyj z?+eDNn0KpX>;SvzF0Op^J;Yem=H2L>u1Ha)x*NsegipIl;}4?hm^l8`0g?@Ev96GjccV z%L*g^nMVG}o$~PCS#f7i>4OM=!k^D9OE=h~WbHi|X@(zI1e)>Yvp_fa2*ifv{RwCG*@OhY#vfw@`ma9t2yTWSa|9ayNCKOl z!G17n_Y7bcPORBr>A~9d^?-<=e7c4N`Fr-ou6rnN$F4WF`TH7F6C2K8kD0ZHmJ(Qd zXCpiNAwjscA)J5~&Xe=Yp$I;sNSTcTAA$tZPy9YbCv2gx`4s-t-ovfogmFpZ$pJJP zN9@>yJe_|oa60LqDG0Pw)W0L}T3qPoNpsH!k7mE8ISwldbw^!q+o$9Z~lA+(x7@@N>bi>^PIZ@8mw7^bUHB1e&r#BiZBT%8o~ zG=aZqU^lFj+rP*=j&OM?amY)F_+j>p;rEGHK7?0xC|P}f7^;pAmuvC2w9l~F@-S;T z?f~jL$gJgT!br208woXLEprJo%vu%@W|_5oM3`;XvV@RVNV{eAgY13imQFww?EXNk z$XkX31%JOnHam1Zi$AOH8PYevo4ryIp^Kv{3w$8XUwl$j8Gjl%))f(;vc5P!xXF;L zix4)6xcE4l;E$vA_Jo8%7q4)nFCtB@LKr?V?$vi3B4khdX>b~w%Y*?vO|GE>fTi~* z=!`x8Ts-SpIQvJT@!5{upCN~z+k#D7-yqn}NsCcw;~X@)WI>dj6yK@ACCSS1%_rBW z?4#9)>$zF1DsW!bc>d?+lHU^oUKG`J@J*{+;C4PH^gx33Q`cRMH|E_5Ni3I&7zGLlf8V{O#wScvjppA$0ky zr^)FRtGwFQBsVE~z_E2rKR8#{RqGgj&TiJkMJ@MU-4cGjLBi+|mtkoW<~Ypvo8E5A zp6-KcJvn%ER$Ygfe2eSy8SCnPiQJg(=aTUPuLO>J{b$PfrzZ6q-kwxT`FwQ8-|HXS zIQP=uNr@HOdc7Mv#>c9;DKlgjJ)ob;mcEc(M6}Q_vzsZ-8w#qllQ_F2>+p+KIm`OI?V`@xzmAQRc zlJAi}#*H{Ia7w%DDM^J|=Fs?MJ~cg7#~R__StHHH`Hhz^X z3obpYaBETCo35vlL(GTQT99#l=wOJO80O_ZKG2+iR9*x-)Ryp`($@ zJPt1n9~j*rzQ&fMFL66U5;{KL+O~4ii{N&3dVWo8Hpgj^kMHPwi~R$)m=-)d@U2_R zyXFoRVzzZ}UZeNgGkFzsCw<#SSY5pJ<t{nL>(&4yE>_%-^U}jFE{;HFGPVXDA^2hz`ip9I#Q9cBzF2QL`#k&ij>9k2^1Rx0q}^sm8+*~fZG)M8qPTin3U~Kj)LPNNZjVK= z?TqNK^{emo{oVV}kWnH1Zmj4(f;qP5u}P}9;n;QO=S0QTI9buNn>OIIW0!5+)>RoE zEb3XSYU7ZFoqAWe`snzg+|*T(O+~t*(L0j%O6okV)qBv3xo@l9kT$8SjNZBP)1JSY zmv{Z4=r#V>0LPq=<x({{hD*1OG3_Z+EpP_b#9 z+QmP%iA-v~x8A%}x1)WZVPoz0*R{C)sq%~qA6l$S*LHE4U9QXfdZQmdcE5e|a2wau z9Vge^`Fmk!xz9QqaY2QSCr-Zbv`bmF;H=w&7BQaN_4pkm*r-T=>F9G#jqEjZO7k=@wSM*ctmluOZD2XB{!(i?v&Aes@_byepuWG09eK_IIq^Hj;2ii>7)}&*<+JDta`)t-BV9#x3 z;|jKaEx7u7#|-CR@DMrt0w_&mPPUY5(<)caD~JYXUyL?a2UKa)El|J9miQIQ+MH!N0<`+MsayD5s(#rtdQQPs~5 z+SgC%(l5?q+x8~yuRLAq{Bd{Pyc$-aixy-@OdPr3C%)Tw#MBflHd z9h`F$U%!3c=h=_ruJV@--?i=2U)`wEZNS4_iYHYD$h-$S}py~>>2;}jSbh@zM2wHsolrVr)+ywPweg-v$EmVc@LlI zKC9hby!+qz_?Ktg7iP%mfcKVP=570aePb^V-$rx%_PV==giV|}mf5v#(D&|h<`(3} zt_|z6uGbP%7^@JPpEL>)u~VB73!FJt{U3K<2UuB0nd9zxLn9vbY=RX+_#EW6+K;t z47ZP5+$3`4lahP25~AxI-d@ROsmpzn3xP3Ps*b*Jx^PbYLHB2NY#C+Mpk2K^2VU8% z*gAfJbZ=3nb@E+@k1HH~hg2%~Hhb5cD9H##@%#M0l2&#N{p>elVxw7B>8Nn`W_z?Jg@DnLa7FeL~v! z&B`C5{FxQn?y!1ULG@+X@R-FTZk@9_KO=kPz^XSUwWz$W!KVH_4-TC@{Q1>(soR>j zZ8NlQ#r$~>8fG{;H-EQglUH23rt!z~{ZlH{e$#wN8?Q?7fAyTXt7zYHv!LiN-K)z6 z)%^VObj9oY?K_-0a{oc!YF<7QDp#^pzp%d1eIf$v8iDSBt* zE}4+`vAAUTkjNg9;>gZpzg@_wM9++zh=HQ^2YP3x zHQ4-Q{{pYhVe;mE4o-j9Ct$_5J8#`y>)svS|NF!vpJGCE)3%)qdz-R-&yBC0fI`?3C@TjwaVC57J5$TlxF51d1Qy#TDilp---(- zyw6+TCsGtO;pNEC704WTt8Z2Q;&hKgX~I* zfoJ#*S;o7h58q(_@`ZQakm z|9q)U+Tjhg9FO%|8k-aD)n;X&N24*94lK%Duw+`rD^;}>4vwttcy;(u(TPE|GI#lA zEw6jvPxaRA>elfsHu&`(s-B&DF?HqflZU%1UzJn{8F6=NXIo3{mE%1M{BP}R+c>E6 z-gQqJ&e>@CaNvRBE1#Dy?CBW)AoF!}y;l1l?ugYR%3bYv{(^(!i1hRJ%jzuJ z{dQCG_N)E;-%si{cw^(jqCaXBe%qMSWzpwZFQ*>8^d!G`JBP+GS4te3R~|Z}T*Q#D z$ds2pHgi8_4!rd6a$@2e@2ZREq9Ydd#nd_)y;*Ds@}vO*@=yrRL@ z#5>;{$E#xMnp;?QUbyW}p0DEk-Gn}yPcpUdd_2(KV``sTqsm>(-}i9)ppo$_?)d)b z>+WOOs^gWj+jG~RdzQR!oZ|E5N-B>x>HaRc9}f&wBj%`Qn}D`YP5QzOZ(0rGe&$c3Q`m zf2a()DDzq+K4YVPQP}R*{AvfX=ld(34smgrQ)k(|nU@Nix@KRpdpr1dPn~70OxKm& znZXB+U3W=6GId$2d(B%cSkxuSs>t@u!wR7{{U6V`e$(#!(5Q1sBRigr`LlYp^0v*s z9lJPv+=6;vKJ@;({`>l=E~}ket(|3ZHosTY=;Dn#o~QJi*SeZIUwd)V%&56{3%c$Z zT`Mcdze=y;gZG~}USwHin2TA#ecy${-yZoEvi_8)!rG_@2krNLxVXPnc~zys^-N5+ zrk_8vv+3g0vw0mWhFp5+Q7v-+2Djo(UF;V#ZhKSDb^ds4`IfZE$P^~v`D0_VmpUms6aEKMW`F;B`cg9)tPQspX&Ur79$v#SCLC{$x5}DHv*hLn2Gtr{VJ~Q`rO4;~h=&2(8 zDQ2A0LHzBnaPj9MJe{F-5?jbJp!1*$p=IVkXb(x*`01v%kOr04upBWF32@SH>56C* ze-)pO2Juijkrs&C(n9709Rytf?O}y-KvR5z!Z~qA_KY807w;N~w=eMK0q!X9+x)Dz zvT3W)FG|y{h_sojd>IiprOjAd$TZMd&^gdTT29hZGtsD98m5JJuln0-2G9{8QRif( z5}jIqOpUhc9qbj&aBQwIOJ`zmC5rnVMREP)&L7ZW-`4sM0{-mI1;krxS_dvAmVg&# zv^Z+SC(ika)+Hwx(>)O8iBz@pM)r!*++c{ z*U9NPF^)tj_)}0+Gf*C8O!Zs%PU2y~I1olk7&pQoGscfFOTzRa%&=hM2t^i5I-!#V zlgXllnNOH4VR8twESNk(jTv*9FvE-~WZlh}7le^!jOaEn2kEjXVH^lGNSCl!!uSzp znKOL|8Kg^?XT}U6lvyz22n)=Z#e{|C%tpc-b0&{4&z#9;-OZWXgxTiI3&IQu^OdmB zjHz-5SZu~Hgjr@xGr|mWrafVvgb5-nlrWKm1rkO_C^Bcp5z5S&*@PN%CYz423au0gdP&c^e)*YOm)IY3#J*N2ht^EP;Nq*gb5|opxlH(=1e+a zwgoeZFvo(KO&E#v33&x}&uoN!Dliu~8dwO#_c2Cvk9}vCsRG1zF{S|!7eg3V;5cA7 za6C{4oB*5;90A-2oCwSV4hLQaVp3pk11ABCfzyDdh3q@I3%S|?qcu8Q@!%e_LndiTrxO-<2vDx!?fexG z_S6Tx2Plt@#;aLeiAwEw2oWT*dwP50t||ZVQlR`=AS)f?cRX_0XWzrM8o;vgHSxg!-P0tj-YurLPe$E(jgj-wBn1af`2utlui$O z3I6D<9sc=MHjRX&q(R*4r<{Mz&XpIuFCtMsNExA#tLV}K<%50lo`0W>?7We6qx2QA zIAeo%>vUY!^mMw8C**7tDP0ES=0;332WoWn}G;zLd!raeP=3afCPYC@#((L6dSBKkShmgD~tT zZ{99so5HhZK2b`OvzI2y$snb@1Rtg8wNtjwux5jPTw2Ha>K7T%grXYKgsk9AN4X|B z0*{`0C{=7qQi_(LHfC^on%Wsp8?hxo8$uL_!JSeygV(ZnVpK97 zB~&vS75m~U2=iKo59<&3EVJ5XTUQ*+J$prq` zam-6E$O+Dn#6i?#bAmSq>3KO&e_emnZgdKQ7?Qq%5E5@b@y*3HPHDX}T0GiE&yulh zj!gr8DRQ=+{v(g@N9;&=Q%4A^O^J?Uuj~?meN)QtupVeB`kNEPT^YlwGH~NwC^d8~ z4L1nSZsGYh{zd6hI$xUxF_yZi(Vr6VODUWxr6()VI8-UD1L&!8RRVjpL#4s#kwlfy zEXbSiYU41rwgdr^<{`t^gbd#U`ZE5bgU6>Z$kLshdr$~h0aFi%BEQVJ>=4lY|o|d(GKZ( zbLnMtu#jcDWBmsW?`0G!0}tb|)0=VH7!~>=imXw_Y#|MQE{#H9Mh`AdCIIWc5R@4@ zJG5*%d>Q!>#wBl5PIA*HRuySkKjO-h)sIUnt3S#!fQvV1AkvLSokEu>3@mhEo~B^K zF<_JyJ5>mY@q7$VGjcKE5EW%tZ#P9==JR>UQ*n7=;!#FuW{`!fm~YwvM^9cqz z?x5jXKmWR*3EJujA774!i%&KfaX@R5(MHg+A*f4ehBBg!A_dwW>hXpPAHbB z5e{87YSu`^&I=BW*r?=9F_*xU41`Q9qR|@#O+}B1Nl3wIE%vAu{qEb*$6Wn;4CC^c zJsf#T$69*?^ho4418e@#Tpr2)<^LD|GWZqzBe|ax=Fz0&p^Sbj0$0%Ku`**a8_uZQ z@S`ub$P9U*w`SzwuUAz%mkPx zqK`ux$6>%eMUqpwf5#SC#J5{>dffQUvHO~q%>JJIx4QkC*0vGu?*sq1Fs5kJs9>9( zbrL!@&5SF*XwZJoFB@)*tuwUl$jUX&7WNmFGZCAXH#3)5SXx<2Z7SGUno2AxNX^Pw zi%hJ{%Zsff)}rzz6{MCnVl(q{7N+JF;&M`JD;pED@|LEe3K9!Zd2 zVyTI>nWe}|A~uzpmj}_px_r3`Hd0edk-3@J!bD;vwKBJ{E+@7qFREZFF*C6=t6*bc zB^F7nO{C`KOfAb>nn+B|&B~RpU}a$=wwB_a+kc!t~g*my-0q!FQ^{%@uXy4!a&b9yKN7cI^v| zO#&p7WAk+;RtHwMtGuXQ&u)^T(_BsOyq;5I+gW$-T24(Z6W>NuX%l$ARbpb#!@iHk z??{arIP&;Af3K&j-CHws$H7qj{~CXrmxHW+gztQ3w(I39w?SX}{l4sv&C428Oz&Q& zsH;Ov&lg1@qYcw0^Z(KGANB8WSd_kddGx{Z^KbgKt{rx1p{iP^wci??j~J^QQ2+MI zO>=8U{oRWhAG~krmB!|pxpNa^ty=|j%bjofMwcKtU0>Vi|LXi#ubb|YHL!E@*5}$i zT$SEr(>49socPC8FE*?`|8sd+ z)#PdYCU0CH_dmM)>yJ8aYWbVgG-z1MwPAHP+^fA;@#4#P(>}LeTTXs9xc2}v>k-@L zRT#he{-YBc-fzylWzq7QUFPhKB#eXIZ1!f&!^-N#&D*12Ci{crvM z7uJ7WNx7QI?JKRBSafaD;DxgNd;2$BaHLW7_;(N5*PI>ay0fa)P5ZG=PdB;j|K!%b z!?#TDPW#k++Se*|4xC=?klwdTz@WSV3%1S;%+5NpqJF#O6MFXl>t!8zW6ik-*S74g zbtkp1#;O~%b^ zedP1@i|Lw%hc4gV8riV(-BT%csU7yV*>^*mRU#(lCs&pyJx9{GP>DjaCwJlyryWf>-lX>xA z-?6959q&H#MX}4Xsuz-N#qY*kJEzut|8QlXrbXxZ)?;?8^>EIzs=c)DU#CVLIPv7~ z`s;>`Y@I*pKm}XhT|fHtJJ$WO`PQbMq3iRfCyqSmcmH~o{DBuMWV9(Su@{I>hR*Kw0?)T`Irbd@;Wyz=wjYirgoKH;kUsz`X|G^qQTlM`Bu9e?NZlJ28c zcl3MOFH?KINo!%Db#IdGn#fKT2{UO@L<=&p zlVt!&lVWM6cCtK}Nt0q}=5{g>ZF-P~BHBje&w#|zLh5(!y5!6*#fX5tlN;SzJ9^^! z>hA}8cWa)zwaz`snjVR3zGW6EYlgSJ*XE$_{_Q8F5nFmL&&%)sKCtG>&u(25k3V1i z5s<81SazxkT|N3%xUIkWNL*hQDyhtF$JzoOZ?&D&p8&I>MTZui=4e)SG3QYJjm zM#|e=3_iUie&O+zW?yoboeF*tI$-m_yEE_F7G`A6oo@B#R1eu_^()GK4RM5sg7kkJ` z$}iaS+G~|Ewvy|&BUjE`SQS_#v;KbXsAcWlg9F?iFF8NB&dMJTqW>PbCuQ28L)tG7 z8(XgJe!jzwQ_=JOs%B&Lrv9Slrj;Kh*FCmptHY_qMUe-dOnkg&`Gm6>t2~d-zn?O| zdE!_XpM3XEXA}J_Z!a7%zp5_#N}Wm{W!l@Xo$sE|j%nmHYk+5!zf7v#8vlE)liXo+ z>q#>-&XW&rlgvB1C%aG-f1pwBlx9|YkAJx3`m*BGPp8c59okv2>&me1ZFhyeo^E%e zq{q$IFHg0}s&qJhQ}F0ciL0}9mHO>2vbCwc*lBWHhv!xAEg$aDe&Lo|z50E!t@61j z#nN`?ysF)ITv*mF?y*9;qRz3tbJl#0yjrlX{tUa3vQ3|x)~RtRYxlTqN==hdlHAcl z%f0w;zxvS{{y)wSu3e$u@cpae7ky9u{!(SKZT9!v`=e)+OPIR-OMI`hm6v!t%x}A6 z^xrKaM%k^1fBk#;v`5hoZrq7paN*_H`?BZLtg5ydZMkb>$w`OH4{Mh1|7T6>q_t`L zUOTO<_R!u*-OIJ)s_(+!8W-kItLXYX2$m<&nBYR{Jf>UB27PVeaoAdhgC_7#TEp zXs6TLK1|qNH1^Et+V+a_RUZ4?kG)}EebtWG+)Z*Zv8^52kp% z{jp`5V89MZ`--Rw$OKgg>#+gUAIMR8mZHM6Q)pw3Oe%7JN?Yh|MWJF}yH?w(TAb}&RbB96fxO(ki~BC_+B3<%yj^#{lU2T7s;q6-6MPr0K3zY{%wK^BOa>Na6PK>X?hE zM2YL4KMS?jU#b z8Z_zi>#c_xcKiGI*0I$_jD0ihSb64f^W3jH+G#f>`PXXq{m9tSZ(q4o3Y_+1?D(gP zzbDU-w{UehYwDW!;=#wW_rIDf)g)TJI=RN&s>Z(L=)Yd}+Wf9Z+q)~h0&U~oU5ngx zGk(vPhbOmoUnjXB|I%RFm_IFZhYfZ23p~BisnuVbS}*VO#y0uM>%VXQzWPDhl%hh7 zb>RF~r+SYXSh@F(ziYni5T=YCU!XRNsPn#M1G)0sl`D4lE)A0(-E6XT^oQ#y*3r=q zTa5VBaZ!VFOJ?PNX{o5<+4}yvIjtSfjXk#K`kVG08Zo_YZ&}!F--M{d3BF%kh-_7cdTjRlcgV) zEZ#6?bNG+$?+4pGc&oV75EdF%&oojA?aSdg={;lrbK40g5bp6LiC~1Zb*6mKGs~LlCe;VAbziHD($7R)*yb!-TclwIs`OM#D^gq=qc-f=LEkk!Z zo*WR=d2Lix=Vpzg29EkGUMFsPEi=Tib1jQgpAMw2?$YPh6U#BxnQb#ho62NI$-&*V)<4x zi*2&6dqm%A?h>|Jrdqe|qYs13HG+Sv2^?`LDgrHl1~^t?_S} zIc=N&x4b_UcZSb6*&ub1OX&7?t2@3w?d7w#zI&4pw`L<^1BNAteRnFpS()6B{@efm z2hTtLUdNB^nv!`nvt;_%*-h-q1<2p6GkaW5(!po#$F8;)=1E7zIz9fjZ}s;H-w&18 z=~|3jJ9t3t1D`)TO@91k!pIPWDvr_OcS z`c1L9=MCq6UUqILMIZb{n_91re|P@h@&E7q_diYkr2US6)xS0HZw>tStAR3mwhC3M zuxHEWwAfs{y(0E4vnAqOLJu=>KA}h=enJ>zCYDqJMw*Em5NgcCZiE?T;vm8-GjTX! zp+p=<=wU8SC(JezXA;UJ;>CnHX5x*6j6}ShwVR8N5@wi-^9hS3;zxve67f620*P2w z8R#StHzV|rh}#neNyI^fkrJ_jP$Lm%5N1fk*@Rh$pHOBYK1mp9F1}1yU?zS-m}f5j zN*H7=u3d%b=3+O(LUXY{i)La4VU9#RgivEHo==!%F3uqgvJmGHiV!cM%v@YZ=wu;& zLdcklO9->g#imt(krv`Agp7sQfly>2b|v(%5c?21nTtbNI@fO$I4&0nyAr4Y;=HYR z91vG@#Pfl;{UhE8#4QDJJ`guj#J7QXcT!vo#BCgLm1=gfcwjRi?p26AfH=D=4g%sP zjyMvC`*&gu5cjLZu`a4?& zX{Bgza-7Wpn};a13x1G+%MZ->m2#MIYLb3-4L`;akrv?DnN1dH(%YLjM$YAew+l&7 zy6oGWbkBf%z>ZNXAg*3TqjfksepH%G1Bj}@MJl?GCFd{AAsk-q_VyAk62XpN2vy=| z>y;4-tvmwvtM&JR4Bc?8K2fQ!K{nkkom~TQ=QkGm`;O+^P()1()e=Lpq zj25?!^gr-s6ec1qDVZyHnKa6@1D|e$R+XsXF71{2WxJKOw4ab)o`xofh(bT+FP4>t z;mU;iQbl8=meRF@xh_Fv=n)veJ>n{K9Ll#w0B@mtdUub|;2HoIUy3#*3MSkcNRD-35_Al( zCE4k|89J_texXC?pSYohpD@Eko6?_I$K68QF*p3Nb%dq+pty*Yh9}7xWh!@NEd^H( zC|*(+9P~Tm!<5O~JwyDw3HuYKhWE0#0fNgs3|$ITMdSB4*u?cemWX&%YK&951%{j| zQlj-YwS>E7`X5zd{ifn#6w1UiA;FJOR}_n!(W1k%&lA)8#JHb_--Sdd?p70fSFB9m zz&$Svg%tgdI$<2r?}2eY&Q6tt%H+F|NF&_)V+SkM0{46MiS*;^^n+RK&meJCMAgaC zb;?9sB$MOLM5;VlMR%|Cby!A5KxLJY5fHbqzbqi7XB30Hd=o&yevJ&MYw`d zhR(6DGRgCwQ`tOFx|9b(fi9Q}ezW`OTPwMhiQnLcRv9`*rI4r*UH`;LS-M6g_@^|4 zdigFGcogj4jOc=$ej~(C31y;hUZe#3KgA=slV8Jl$SlM`ZbEp$k6}1NH}d-*g%iRP zl3zhld_*&h%P!_A4M(1NoK=1$Zo8J_$UmS4a;Zjm+a&&l-szxzw%FI7V5#c{J-)~bs*FWnLq!^ zlL1XAKjmM@*Z;%bn?O_f{SDve;7q1tp67Wy$2`wNk%UZ1LgvhKk~tv>Nk}p!Bq1cp zlq5;!6bT`O5K>9reTh>4|NY$ebHD3d?|Pp5x7WIS&i?N2{_efMd$`VU*&AxdZhWsl zA=&?Kd-oLe-+KuvV93Bmfdpkk7Zjj+{#~!_g#VpCdk5Not7e3-r=VWYvnYF?N0DP> zqkx_<+54Oc0}~qsDUd-I6rlP$GqX`p0zwxQAXz%F_qQGl*dqsN&;@fgB7Ze~_6OeHNLKhSu+5faa0RH<30eXl8Mh1LM4Woy#!q{QFFhQ6w3=flr zDZ-Rtny~#aU6=vP7-j+f*U@?nLrQdlLd8rBGF zhPA@lV12Mr*aU0}HVa#XEyFfoa5xH12FJo_;f!!*I4@ihE(@23E5r5RMsQ2G72Fo? z1owpd!-L^r@Mw4fJQgm=OF;G^(q_#Au%z7F4nV+cqH zSP8fZLIqs2x(EgdMhGSdrU@1a)(E~5zzGqA)P$^rf`r0^(uA^viiFC9`w2}6EeI_MtqI); zy$O8@0}0~^6A9A@a|w$HO9?9pYYE#3I|zFS2MI?BrwEq`*9bQVHwjTh7$PhYBM~zZ zFA+bHD3L0WCXqIgE|CF|DUlVC9gz!B7*PaKJW&c!7EwM?F;N9kJyA1J8&M}w7tsLG zIME!@CeaoVAp(OSK~N%S5%dUV1V2I$fkzl2%n?=y2Sgwu0+EPFL8Kxw5ZQ=AL(| zKUxqiiB?6cqm9tUXbZFz+8XVG_C`mcGtt@T0(2?59^Hs;L3f~s(Ie<_^elQ2y@vjZ zMqp4FRtz_W7bA?pW27;f7+s7$#sFiAvA|ekTru95Kuk0y4wHz<#N=a&F{PL`%xla9 zW)8E6S;MSjHZj!1?8KbJ;>7aA%EY?F=ESzdcEnD^p2Ysd!Ng(25ya8N@x&>_X~Y@C z*~G=fCB)Ul^~BA@UBs`6r--MC7l@aMSBMEoC`o8Zm`S)v1W80mR7v)e7?GHhSdlo8 zc#;H@#E~SBq>yBgWRld7)RMH2bdYqBjF60z%#y5;Y>=QxNk}P4c}el4;-u=NmZa9C zwxsT)zNCSqQKWIC$)u^IS)`Su)ugqgb);>i6Qon5bEM0p>!cf`a56$NEEzQ!I~gaL zFqtTsGMOrw0huY83t13Z1X(m$3|Tx`0$Dy;30VzUJy{!BJ6R`LAK3ueFxeE@G}#K- zCfODlhMb<9m7J5DpBzsvO|D3;M{Z7TL2gCvO72bWPaZ-ZL!L;UN}fqxL0&^%OWs1> zLq0%0Ouj(ANdA=^g(bm~Vd=5FSV62fRuj7)tB*Cn8e=W6mRKjOD>e+9ip|C5V+*mR z*h*|Qwhr5a?Zdvt&SDp_8`w=OAqAF#or05smqM6AoVmP(y! zKb0|+HI+A&FI5m#2vs6g8dVupB~>+5Emb2`GgT*557j8uCKZaBjGB>}pIVe!mRgfq zn_8FJfZCkeirR_Vh1#7um^y+whB}@)nL33!i#nUSjJl4xg?fPcHT5X<9Q6YA3iVg& zEox>OP8vLoB#k1CHjO@w1&u3>Cyh6aKTQHn22D0iE=>hZ4NW~w2h9M@1kE%Jf|i7q zl9ry9otBqYkXD#hmR6ZoomP`pm)4rrf!2xEl{SPnj5dlkkv5q&jW(0EnzoL%nYNX- zlXj4Hofbuhp~KQq)6vo~(lOKV(n-?E(<#$w(;3j2(z(#N(|OYQ)1}a*(Ph&W)0NRx z)78_p&~?%E(Y>Y{rW>c5qMM^zpj)T=N{6Ax(sR@E(@WB;(_7Ko(Ff88(Er>GBPuYGfFaQGwL!L zFT&m?)X(nK+ranM9fJOwvrM zO!`blOfF2WOuaPhW(Q_hW?$wo<|yW5<}Bty=0@gL<{suj=GV-N%hU*)?wCh z)-~3ztZ+6I8wndV8$BB@n=l)mO_@!XO`pwx&7IAgEsiabEtM^ot(2{ft(mQrt&OdN zZG>%tZINxAZIcboPR5R9XJ(gY*JamZH)3~U_h%1gk7iG1Ph-zu&tflNFJrG}uVe3H zA7`ItpJQKP-(siaVCG=u;OBt0&6DKV&!Nv@#9_^0$Kk-?!V$<3!V$-j%TdBn!BNZ6 z!qLhx!7z*4|Uz*fLXz+WIjAWa}!piZD(pjlu*;I+W8z^K52z`6jT zAVQE*kW-LbP*rfhpp~G5po^fVpub?0V2og*V5VTMV4+}%V54A*;DF$u;Dq3;;DX?a zAY6!Ah*gMJ2rpzHWGZAW@Msn94wq5oF<$hoG)A;Tr6BK+$lUQJSV&&{8e~U z7$brep%>v6!HYA*mSw-1J6-6~gbw%|>ZABeKy+z|hvqW=6i$yC%t3_Ky+eG_BM@8W{LL3T5hGWFB z<9KnRI7yr=P9CR3Tr;i(*NN-HP2=Wp2s{Q) zf~Umu;|1~Rcx}8MULS9SH^+P8{qZ6A2z(U20AGTy#JAwP@IClp{0M#;zkpxEf5pSa z$i%qC1jS^<6va%%EW|9uoW#7vg2Y0^qQ#QMQpNJcip6Th8pYbgI>dU!2E|6jroJH}+2Y0G72+-8ZQ=vs z!{Q6#>*8DD7ztVldI?quK?!LI3kfR;I|)|_PYHjCK#5?91c?lZY>7gNQi)258i{s^ z4v8*_9*J3r1&I}juM#LpUP)m|yri_Gy5xRIOG#@<;vA{`-}Ae|_kA)P6mD_tX9 zFWo5JB0V5IB0Vj=D2jDza@KMVa-MSDav^ewav5@kay4?Ta_w?maszUM zawBr%auae}a&UQ8d2V@Lc|m!+yt2HyyuQ4pysLbWe29FMe7t6T=g1Ca7f{}uyf}Mhsg1bVHLX1LzLa{=P zLZ`xj!nnee!kog2!lnYDBBdg;BBvs^qNt+0qPC*3qJ^ThqPJqOVuWIxVy0rYVu50z zVyR+{Vy$9}Vuxan;-KQV;)LRw;+7&@iA;%7iC&3aNl-~zNmI!{$ymu!$wA3g$y+H} zDNZR(sZgm}sZps-sYhunM|2cnOT`#nNwL*SyEY6Syfq6*;Cn9*FV$P^z%1aH|Na;8i45)K$z?>{J|7 z0#zbZVpMWfYE|l08dX|UT2# zlGXCniq$IAYSil0hSf&Z=G4~JzN%r=Nz^ITY1KK^CDo(v|8JJhGu7u8qPzp5iNP#TOH>>At}f*N=YO$}oWQw>WETMb{05RE8}XpK0H zWQ{b9ERAZ7R*epgK8+EL35{h9lqOb_U6WUnUsF<3R#RTnK+{~)MKfMAK{G|OK(ko0 zOtV_EUb9WJOLJUvT60cwL33I2t0qQ^M2lXFTT4(&QA<@zTT4&NNXuBuLd!wRQ!7d< zQ7c!gK&wQnRI6UAQL9~RP-|H0tJa1VLYq>XT3c9KTw7gRSKCb3a{kQ(FA51_+ zc)`teO}J_x0U3(oWA z9^!NxkAHMsGX#Jxr|) zto5HW>e&{5YzRMiJ7bl#V7M;$2K_mq<%-k%^0j43i&?%~2d=YI7GghLeEHpH!XeY& z#QLy1_gm@7)7h^GpH^SKw=q2XMf#3+WJ`C^O1hcQD|AaR3(@myg2pcheGkQyy+1ug zl*Dgid#Vz@HoPH1_-($|pZ|2>@sNRXo@#Dw6P>^>vF|0aESdJv$DnF^mm}=mG*5HX z2hfFYa4S@$JyQ&%an)iIU@cT>8Bp)G@b%kT9VYf8EBbIeZ9XOFtLgm|68x272EmzI z-v%}iOpcWbbXVz9ZMw>xY8G7N(KCjdL_@_oVVz{+gnA`Z+ylzFPJ#YoDG>`9IaM8k zzWIhW)ykJIiGN3ZjA3-R=TnA15=VXft>bd$)dLdh!>+e?f8u!7t5D3*6RCHRVsq@f z<*=rB$&_D?0oayj-|GiWv6w(NE8ElN^y77;9KrMq!t96bPd-)gB?x$Bk3Rnz`3=A9 z`mvXZuXo}_mM!mrvC9|O1|>1W7w)W;v`voRjK-!_hL9qy%)LLHCte&rLKM9*Z~uU0 zw1m^NNbb+xIB(4jxH)k~tu09Dpej=bcdQ$t5k-NL}xPdH<^(S{? zVKHV+h0aRG)Ws1Zsf$7A14dk#)QUG7NC^C%JDo=#A`t9hc@rLg;>lyFN6wsiL)i9R zzwa_b94XZRg>$X{T62gZa!;Zr}=&n_x0jiqTxq%!!rl_g`Uku@eYyD z-ji~^%%t>g^&|s-O9r3igL;aq-m!!4V+yI1e3;;9&VTy<|HuC4QG4#r_Vx1nmwtXE zmZFVRA8mA09TQc+#xP1AgEL`r5?4Oq=G)DNjtx-fS3GB&TWVxKuYAjJEno=zTg5;w zQeYzU(?{C0!ZF!!Z13^sG_S^W8bjR^pWiZ37ru+?*K0j`WUEG-726Q|Tqg8%G55+$ zTSHj;w8eE6k|c4pqUuP}^nG}*;{%_6_<6h-j9evT_35GgAh9%mN$&~#S(HU%?*&=- z>U~d*vO!@ZBMwPD-skW4(}WE(*Y&@6;PygmfhMzSZdhfAA@1n8a{e@W@mKsw3&tnQ z@4&^>@p8jce%-ElfUN#GOXDD|4)@-2J{>dY$`#lK0-y~yf7nb`tfP-C)9du*S ziPyxaUCNG`Tiur=?VQ)e*5bPI%~yXqw4P$1A~$rwiczQJD{J&VbSuk>JvfUuCu1f} zTjpem-x#_0sOT3h)i2aS?l({6Rjw%sBNaw07YHStgJxoy^1}48zKujj;m!;Z%&9hWKDF?C32r?Ul#VO;+Aq=n>>2W zu0+9+=Z0&_=K$V?{ol_w7P9-n`mz%4Njz12AYSX+{kY-Pg;9y(duIaWCZ~Q-d0xu* zv!HDFXa4_l|N9^J{)ZZT{(+v+f<6cR6aMkQ|B)V0L!#_8z~}lTB+3t>Arf@~;(rh{ zO!ryqYwKG(`FKKGr^EKft?k?#Y@r9W_sDmjx!(OQ102}q;B)Nf_U60abo8rjh>>jN zWaB&MT~A-&RmH1vvi0f1uBlBC+UT}tck!3?H&)lz#U`l{zVpA*oj#Uh=h181Ld)tn z{pjLWKbNPXvw%f+Sku!W?yYx*)`5L$Et+QM@S{vO&cuq=_vXDEYtLoWag&O1ud&5r zO}NG-8iZWwOl~P$G~?=4@5_6tHtdL(KU;|3(uck6trfkkdO7V?bJ~F#t$@RYva8jL z4@B-;^cW2;EUkO8pT->Rb`Fljt<5KyG?jBnTU>k?hIiM?v#&Fx&~@w;jhJdk;*zY% zrd6D!oV-|NCAFoe_DFkEHBGz}*ZujiL&SH}(q|O|cSLXJy4UpQ8Ioo;e^TR$l{4@l z9c-Mu;ge@+fM-2u#%O%4)nr1q_J_;9^7AG4Dn^b_w`sRV+gYVxDF@CQo2L-TpB$4_ zeqZ_7M94biltOh*z=_fCHyKZIXq+DC|0#k9c^c^ zM+b%YX%57=ru5{Mo$D1!?lrq*qZv0y=6_6s?|NlQ`&n-W(Mp&bP2D?RrH2hUL9!=I zO0H|$N5)I2Ms_g--h7c~frEV{dVlIioFS$}_0eZ*352R##M4$gmzPI70^0pD`n$*& zo()8z$B^rTWqS}V{W0*t>;>OLQCpLgG)Eg^dVA_%*m7U>hC35s`{O|2%i(%w7ZAO zy>P2=Z9KK%b+Y|6A=z8`(f%PjiZT0Dnf`i@?CzQ3{sTj#&QY?Lnje8b>mSA6wD zV)pR^KUy0p=7|f5&E;?7wTM)WD`IVNr{%|jI{3{K)#t7yyu8hF9kVR6 z<6GT!3#46l?aqvAlXxu~ei-l(D2^_yXD{>8;qG4{i75=yR}@WGAJdp#=q9~Swx91{ zM8ucDlluFQ9Vb0w!N}c{?!zoMyxO~Fd@ibln+@-A{hD{wzOm$b4{funq#W{Zyj#IR z#zVqawywM%N0+Eq)W$tK6E*F^q^a|qAgFacFJ$$)#x=TN4c(>oqcCjZNTWl+5yHC(!VX3qa>!BBRM+Y9r5WQU#dz^6@ zMQR-~{Dxs=@nvo>zB&gXGh=bNoc1H;_15e;nARH$t;>s*&!Zk}bheB|s1Nm22w@bP zm(#umcfBtdCewghE>2IXZ{_kLzl4v6Q#@ur{V|ii_{r(M8)8R(gvGy2KcqSn=yK^& zP;mA)9?PfH<5953w|S)v2d!;Ctec3_oUqd~CF7)Ywz6n(eCpd}r`#m+)yC*klyV=O%C1<87{WD!i25_mEkXFycDt8l1oC^x2G{(TSW3D{c=i zi=Cx7UM$P|!_#w>U2!Y-Pt>$wnNuQ|T8kCm#cNme!e*H>EWA_Tb=6k!Z~@bADr^TqWLX{^EpJ>P$F+CJ;UVQ05c(^3+ zq^RBkzcgJhdnC@|7-r+srQr_2569Oo9ia&`IFcOf5@qtd$cazKhB5lXZM_TqHgZv4 z$GFMPhswF>_P!@3wK;p2)mQq}{wEc0KA0W6T^UiYQeHyN9rIAm{#!-$Qf1!pM2&q6 z-%q;|64%F-8^jf4*&kQe&gYIIJXWh{rQ(x1sClN_J(O*96uJ1=%}u_*#@nl*(H9XA z6SX|gt*!QGF(KRP8*ig>(j2OtVrDDMX20HKwv5&j_6teRUfgN?TG8;~*~Ujh#;%z= zs8J(iEcqoJMCnpgg3|Z^h1aF*5DLoL5PMYrPk#E1n^Eu_53q3Us}kKeaAH<>LX7g|j(spXkd5kxT^+6o(cFugDGFgcC+#m04C z$=HbO3p0nl-z=z(Y_DN$Dzbl+Z7yzrak5se|J1y`rS?6chP}Dh^j?C3QHWh7=|s~ymH}=kcgG;)!B>p zV}}fLR{75+ncrs9t?~?_eRDW6Go*eo#KPz1E489hBJDM8LO-i-h!&L@CjVrEM=oZU z)MppDam$3opUC)a?o9>|_&ID|z8f8Msbe@GG9V(5AR)Qz%k_1gL!<7tiR5Rq-bIDr z&pw?Zm5RJqcSWb7Dy2k8Y*C=hAU(4zJCMxm%_R;teXiJBvS+Wn5e#|LXU6~WOj5jB zFMIXGnWpL7D#xkgwzDl+9AA_sdM?|j=U?k2-xqL9G5rH9;?&E25%c|E67{{;W( z)nk!4@%6Sn8f-nQM5Qk-<%d$$Bxq3h6#GOLJ@&dpG8IDgG}ltVVD*Gj!G|Vk@m|Et zhG3jVVciCt}}927mF9Gt2yyRbN$us!Uk*tOXA4-cO|LdZO@_+b6of`&TfG4UI%DiTpL`xZyx zt&+Jc#(lFo6LD&ii==YB0@q4z3nbF_OMb1KEP6*Dz65 z+F%+UCQAK}PDanL2a~qEe^@h$TH7O-e*B;&eTHU6bHeEnFt~B}kK-ycUskW)hVxH{ zS%19WYpXGeJfC^Jj`u@~&*;|K7w}l`H6p#2%8GoRd9btnq3`EHO>z#pYpuOpaT_hs zQYIx-)zFqBuy0)M9wi~Up-wEn~~<*+A?Pj41Kx3v1;IX{%_c_|yuwJ$qlU$Xo~_r?N)$C{J` zQK_19hd8_MM{y94GTc*TOZmd^{s^6biiZxL*ZINt=E*?6Gh@hVUSiP|f_O|&MBRr; zZbd2qxze{TbkF=~PcX-f)~K;?e!b3A5G+drdwQOYh)|6Z(>rNVKVa4~F%U3gpq8JE ze>)RwS~&RuHvedf^k!X^{#L!&^lcZ(5$SUJd46tlWckywjO3Q5W-Jj7u8g)c$Nf8^ zJqVgm4S}W-kLFiZ<3!sVEqN8^yK9)jYj_mh6Bg~-IKCG+wuB4FT|-E`AUeyeRT zcV6Nf6VcHVbgUvta3_<~{+a86{o>-~e96O}&t>+-leFoaeE&M==#<&q!IK1Ap_+%Q z0uu2B;a|xnI{nVg5e+R6H5Aj2t}=*Zh56M~tqYZK=(jAMamC_2bM8%j)==i; zJHsM^U3+Bvb?C6e7x72EE?8>byfC^~Pd_mb-MqpCE8(Lh<2)vAH}6AyeDlWx-PhL^6+Q)){0K?hAO1MsaNlA%ofI(D%!HenOjPGHc2ontuAc1@_L!jLc5^Djd#aHR>TTt zRBv@BHyt}aEpolT*kqFQTqp5MMn-EmVKOT4vqH|><7P#tM$IPPHXK{xjG6F{H$t{n zF18fh@4ff&RbT`6l%O{4qtQhd{Ko0`Wp^KYty<2Ftpub$e@VJ;QeG~4h#eml!|3D- zd-g>ux%j%Et6=IQylzQ@<0Wu@WcAQUUnU+AI?Ce3JN(h;IP-fRH~@ur4d&>={3^X2m(`AGH8ox&;lE#~(kdq)qE3QnDNHLg|q!NC?CYATstzBEtm zQ@PdG+#0Rg8@fnLMA{x&>*pad>PVhR86J z_gimo9fT9>Sl_x!Mf9B}o%h{hw|YXA+M$hm7kPfLJV+qOELJBXHf8E?NPIB8YUIO9 zUywRDk8CDRFG#ypE8lwZN07eV`pPG@@G@t!>!b_usa2G*N9V@N-(zCTyvGI$e+V8D zopQ8;HT4i6F5Z6Zy%v}vB#R*ZBpq!|&|u5eo}=+HJdb*`*RtBLDTC8_eu}eyMrp&i za-sBTdsvY`L`JGI>?`}Rj6S&^BwL3_KcIM!6$bcQ0WP%$h}5WFD2e`q=~YKnX-c-5CJ**~s~o+Y_W!uj%-xbRsx*{bRO!|h7< z2=8h=CB3z@@^Dt>b_}1N!j$l=f)jD@?QIc8Y%-nzv11e$+d`P@SAtz{@w&2XTyLm!<&|A2h3eBe|iG3kcU zYqO!jx07`|>SiR*F87$4V?CzE#~P~7+Gg_*A8FECzkD&4f5O%@I6Iu+O$%+HGh)!y z&Aw7UNh^P;%JIDYa#PtrsLN;ktgeCVb+MDu_e6Z7!=u%{BFmt6(Rnjf`!2+cR%yc0XNu}5Fg!h&8 zT1;kJX!mJT4}E$aWAbG9(AUWoPaSvq57cKcZ3V1$k-pYit5Ih3X(yj_#u7Am`E+$w zuJl@Y1lgo;6ohAL55Kc%fQvsWJ||Q zsa>SzMx1(>f6U`0_DvMmC4YKX{Zk$lb4Q{LFj_IJI;z2UetZwust#-<;J#qyzj{lk ze4jO303*DbPSwBjg*5hAr{@F;WX0NdxF$!XJEhg|aJUw) zrSf*ZY-HPV7SS^GZ$M@*Uv(J!%BoxYkpTsly8le9j`j!FOccgER`&$CziH@+p`xvT zJ};nXTkXZXWo3-h;)O(kqF*^LYD za!0ewm!fLVE!f?^d5=lH;rLsL^~4pqinusi-DSyoS;nTJC&)GMh{I&Y2XwyD1oxrm zgB?Lmnz=fRS7`DF^xA(Mpr^@oWXSm-I(#O@Xz&5rhy$mLpY~cvE6UZ31AzgW@ zw0H_9!8p)OGmq`+MLk>h;V9}3WmMlRzllg0nsA-z>}&8-DiD>`(F!}L)?Yo;LjJ(L zkWn7}`s0J_@~&ZBV^XI>@N3G))NAYQPuh`-biNLG5bNvt;Y1tB^zhYB(g`C6k6lRU zUwUU8ao;gL7yb0ZJEpj@g96-v5t(N9Yrcff=hrls{h+P!>>XX+|uhZ zF&-NSn_k=qxg|>LR&<51!|DfFYYA%bJN_{zrfz98?o`7&Ye|Ddt#;~t{t4X(;pl-{ z9repZZ!!}xPtQ#+g!oEcZ9%})HH_#nCvQGoA%E!ui;E245NKF0F3xh2X!N(V?1ya{ zS00%t?;z&FM$z0&WJh=T^idyBdhRIx`9ebs3oD}#XB{7<-=6ern)j^`s8PG89>Qp34tPe)z&_E)X{vqAe`Ip{nz@13!>`lo zLkfLIADzuvH9?q$RWzKDws=ZgzfjVe7FOMM^g-F%&-WCr?N{I(A}~G~s_dYfz-RIy z@P?7)0KH+XRqtSc8@1NcA|fKr+^PHLFEQPBIkI4L#j-VxIb;3Yb#VhU4|ihu%fBI9J3? zPj0>{4?3o~8P5hc)YVtlY>;F9sFbXFt?*KVV;Xw3^y7oBhI3Sm9Utz&9@+3s);sv0 zX6LalexnoVSX$X~&W2i`X!I4yCl+_I$((Q^B~?bw6q*^mm_i`JM`G*&|<%j52nat+zCY zJ@9DaVdg{$#y-*x6F=Tg*?RHe?7oL`U<>{y2ae1<*!S>IX}n?LK5I?EQ;G~c%h?ZD zBUiDX%iIr%e6YVXK^K3({ zESoCIOif#T%B_s9dkg+q;D@c`2|qf4gM>pbYPc%{EdV~$|Fys#yn5CCfuaAJDRh8?3*NP z$f~^Y;wOrh+O_aUA979y)S}CKU+2?n^aUk&GZCDWd~(%hlahbJFkG_;oq>G35T?8+ z>>e3#cJ2^wSAve?K)a0kp=p6<#I}#RiglGoYbPGOPq4mcUv}rx`++tE45H|I2weD+ zmn!{@7CN?(uY+T>G50GB2Mn@>BOe?+aUuwQ@)~m!uK2tTt=cr*pvX~#8rRj{l&g)R z6Sdkg2(~xIQXYaCFFm*1bkFH#v!E8OZn^Iq&*Gv#!IAKcdnj5RY*!#_|C;mzQvKb50*Q-E{8F(NB}n zy(%v0`;z=d$b}D@1^64Bl9abH;Fid>Vv$h3JigWfPvO(U6J)oAhGr-cr5YTs-}t6V zUb-Hzn&K$v`GQ@!L7VM~R7rJT%~#>|CMhCjr)r-=%K4W};VE3zVMV=NPBnLIT;*sO zlv^H(g*4^JeL~W0W*XVGB=uz-dH*HIWdF zw=eWdxC2d4#LBAaQ1Xgco|<%GdQUII#Jz`x-&8r5)RgbkH?AOrnujU&Yy| z7Yo>-p@f*WpuA5r%ww1JJiU|h&+Dap7RglA<9*88H!{uqaybePl$o;_cP9A}yrEf?kXbYM7j} zSOuQCF4>-{rJzGqn+w;8ta52doW;p>j=rsn*I3AM6rY)In@&wsWo8`pA(IUEH_|{| z{?-|C%+9@`#GX^_7I8nk@>$O`!5vm}HGI>cylFD$@O2o z{G!xl|NRrMEU%b$uS7bfZ8#nxxlfz3-;&jHZ1dp##}^-Y_{^ApKXuw(%j#T4%0Rpg zAvuTJXX`ie`7jczPi1y@Bwogcl3t+j(lzX>BN|N?6j~)sPhNG;G#&}Pt`nV%M1^)7 z!7chJR&3!9KS%HH?c@(-vE-b)@ve7SN$zwNBSV0JhP+L*^z>W$toPD${K22g+V8JD zkm+=KjH#fAYYuK?9sk1Ai9|o~@-~q?E_zh=Z9lU6iM_~^riYbe-O5sliC!Aa1A*8R z27HaZ_j#_@G}GGi7VJATHTcCQLRO`qGxbyf?X~FGH0}4+ZNV+14^YD;`2k3_Os=qC z+*$F#Y+fFp)rK$kzgtIrYF>3utysJAeTjJUAoY)OWp~4OAE+`7ct6p8^7Q4-6L?&e z9i-dM`-QqqDkj4Aak|Ip58pj{&bY!mT5k|ZQw7PHB-NFASdJLy3+dx^OxM= zP9t-XbhM)%HHxZi9&GvtCoN+MCpfM@dc~vYBtL#%_2#09Sd6z~*Qa|L_7d68Z_suS zX)~24giJ0^F&{YlW_0?2*HDKB@tu&))0Q*lpO2~zT+r|05a_@0;)YmH(8k<3sW+W{ zlE#YBfz{s^WlzN*Ti;iPPp#f}J``H{v^DQ~IN6!GMET1GLe%7`HJU6TAMy3nGF*Aj zkR!q=qq1?4Jda!ER&LjPrZpcqCAH{j>-1@|L#O$8#Nnh8tom^Wp7T{V!iI2@YQZyS zb1u$~&&D13p47K!*@qgrY^F1OcWO`$4)-yC_?Fz4THM~!AT;^%1H6)9B$cQAfnIL^ z)GL8wiKm;ta&lUpzH&dNM_++YaFo>OLH3!|hy^>!QU{CR4<0@+rb}XKl!5L;FxwH* z1BCn7OUp+sZR}eXt{1(Z<2v6v{US$ZI;Zxgy(vZ_nnE^luI(9OS`=$;6ek>s8FgcF zssA)dbqmX)9dkPG^BAMfkb*(L@jt2S#n#I z;se32Y@$fxi`hlwbSVpX17>S_Xpnk5yyW|%0!Skht{>^K;2>kGbG#8rJoH5@d6}r` zkjDdiBfbnW?rFC0(z}Lm=Z_zv^6n;FUyJ|n^NE3f{{G{Ee?0Jy2mbNEKOXr1#si^X z(>dsZ!gCikihgkYjQ#t+6cHr<%kcE+k zY!tiC=t6tgiGcLIb`FBLh0afXNDleb2FNr`e%lan{nLiq9vhJU1rQH1g;B&p20(yh z*MMwP;inAxmq|!=e~%2R6C``OM+OZ~NcIZI!Y`2gs<#&?A9~gp3Q!v+LHc$C{DJgg zAz)u@ra#MP0kSl1*e@GPf3-mlr0?2*XaeGpACh-A`h)D+1KGZluGb*A3`E zzS%7cDmxs=a)8~v{<;ig7x{nsaJStzfb7oU-(vyt*KHu<68hb@O`uM@`%yx^dkE5Z z?LuY#Z5OK3uHD^oOg#SdO*gOs<=qW4AP)I=HxAkO0%TCT;&y~kyBNa$9Czu!?#|K; z;{fR*ApN(M-~QS$0fX!w1Ui3@FGC>P>qBUKxd9n8Pj=g|1j>T)LxBZcXP~n7gli!F z_ZTSxvc2oYG0#8!Q1zFMZV=xs6EY2zHxFb{VBA3UfCA))RUj*{`CYdhV0YIKP~E@p zvAbPoFn<4K9S8?|=L5UDW9iFZbrS&TP*@4O$ z12U+7J8IkO+U{7~ZWBm=5+{LP-yS_kp97Tn-x({b@rwf%xC^vkJ)e&d=|_#_qU)%5D0~#26()`2HMkYJgC^&>;Ok^CJhOv&ROM zPYTHL-G1kU`b7uGD1hGX{Sk7SJ&-~7R%qRa;;(kf2QRnpsiz>@d%XMa?&G`nY$y*D zpz?R`OWOkQXS@7|Kkv`GWgYSRJqDp7lKu;2{oMwrtiRjv7}(uA?r#9QyJgDxvr%An zD#Zgh{~wgOcbxuL{reEug2rA>r~axEag#t5UJ|4VKH2B2|zu8`mb;#;OF~1Ex=#GJuk}tn%hv)ulFXP^Ps&AAlXA;I|u0Q z`b;YD=eofH2)P7GhthUKH;C`PSA}ex0(!e?5GO%8)EB#ZWdE&S^q2m3pdY(q0rEY= zS+K`8n6DSWYiNu?G7%ut;`@D{d$m(XkhDD)l|VZ5dN&w?_}+UFWWx=}3=>Iyz3+kA zc4o)!?pS6y^?STPZMXo^chizU8e|6wP+^Zj+TI@dck9M4e{bjdS=Ybo29h2M?$UKRxl&rZG4=$HC|C z6d24w6CAn()J=lC9H8=dKaZ>N1?AiN`TIEhsRr}+fKq;ILVn+=>#t(Ay>r+h04jKI zAMBMwW&Y|jpbJhcg3jdmI}6lrK5jd@f2#d-HDm`0f3<155e|?q{&K>eQLwE8tZ#F> zRX$MhKimJSUG`eGezrf$*siaSi<1lRjOVuQPdPZ-YHydocH*Ebe1g27R{iBeP%kLq zR|i2>Alo|`e#!TCoDb+X@P*}nZWD~BU3=iA3E1+@_b_xOlnWR%dkg|wP-pAf1Ld99 zP`2NF0y0AiE+@dTYTGGb?EHr#7Wf|wI7n@GW>GlXV}sEmHx|FASYx51TX&+ZZ38|S8z5grymkaiECuB*l}Rm)kyp*3^HK$sXql1_$IzSKA#r zxI!;Lu*Z1?{*(c0JN5oICieLAcT0SB{RxS7{OIu4eEF>n1M3ku?aU9XqraD=Z9i&* za|Yc!y&U#T-)*_p_S*Mb47KrB*ZrRAFz^-sAG6lh-_Ln>bp&ak+`W>YeWMO^pp_iD z_v|efI-JnQ!Poa+d*)|8&7JhUne1_3MuBw)+$Xlz+uf>x`_{j-4CwyVDk$GCukB_9 zGN{h~T0^kL{!0xYzx=gyZu?K&#N@E9hN+3R@pf1Llfz>Q;Iq%g$Jftf=dK6V0|z??7cakqF22y+9m)^J3?%X0=i|A3lltk2-CF&5 z)7;7ZOLsSJvUBU(WACtow?DZ5{jC4*ISt*#w(oeq#y_O7C*O7kXwL4=V91kxL8iar zzW!cbV5RvLhw>UbgTv|Ue~EU_NwahJ1wSMCTHE@1i2wR2NdlDM4KB$YN&!N*9%*nv zpC3kd;ws?71tjm^i39u!zka9MvG2FLNhi?wE6pDC`*yy+naTF+?vU?iIvvByJUA5)wz00GNZs z@jxs`;&dQ3A#ukbb|Z18AdVq%XCW>jahD;&P`DcqDNwj7h&IHyZipNx+!91F6pr*F zpc)D%2GJ0OGl6J>!udg@AjVyQ=mqRR6eGb^K@3OX`XMHva9<$ipl}R{faNHh9KahJyFob+$I!Sh5SP$6jub#IVw@pF7zXDD zF`O8886pJ+_Yh(ZF>Y)-odmbKEhoVdT?TRv42}V!7zQT?Q4NDT2+GeBmSb>g5SuVKLx|lNoIOM}5}Y5zod8BR zE*8Xd0j~j;0hR;i0QLiddn#@f5Zvr=G*`CI{l&=vI)S(|pfg}N;4Q!lfZ$$+yA4yP6CDkl3rz_2m@pQECu|M%1RLq zC;;LSfNFq|fQEo~0FMAh0lER61w0FQ6EFv`5bz=3UBGU@XuvVRbAYRWMSw(^Y!oqo zEP%0qB7nt!#{lC1PXV3>yZ{Kkhs2cwUI2Uym;m?+@FL(mU?L#twe9Z^aV&t~dl;M? z;3Ys4z!X3)z{`M1fT@5t0IvW(222C&2TTY24wwPRlEp?*38(~^3Fr)X6)*|#8emlh zD@7JyIfz#QHUVA-><7#STmsx3pa1Z;2ke|3>|CK!f}u}R{||d_0an%4?vK6$VJ$=n zyLA~DSg^z{5KvG`K}9!8BPb;$nAqLjY`ewo-o`dDz%3SbE4u9%?|sLdYc3Y(x9|6z zbNui5E>B%bH$cW4QTNpV!QlQE}$#R3Z?Q-cH{I}B!yQFqrO`m5FSY%Mh;1&>P)^w zS`^kPoEZ5!a&I{xG*-ByeC}9|kJK9upbw4b_c?_<>e$4FhAAaL_EUse*He}lLeHhp zc!RzqEhiRf{7bn(jtMvQZiwD@0DZGujQC|Qr7#wh8-_qm=YsNrIU&1mFuo~Rq;z34 zlow1zIW2T@sifq`P$!c*rj$3*+=~dd@KZ@=p+g^5m!D1D)LB4?;mnt;FYD+ZX(?P1 zFHHBG2PEodvE+1>Wyx;Ny!rwMZFW< z^-p?YToWM88pz83q#GYLfVv?6sHbx-AS9YPG0OFe_=q`xLa8F>ZJ~HedIeKQE;GN< zlOq1lagp4Mq}s$Ve7}e@%~?n-N&&@R#6##6d}t}s|3a^DG?emXP)@{LiTub={{2&0 z>-FU3#xMte<-eF`p|YD_wfw?wsyl4+Yw@4cM3NV($$ym>vR;0TE{7)}v|v>s(nzYU zB7>xO>S?m5WTBo%Pv@^DxkVVs4a$JTAnF%TH(d^oNE2}{*%wwr3sqh^na)`nrYkL` z)Ori6(k0wC&{3R~($0YYQ~MzlsZ9~?$}**MLar8aQ<3LaemWiDMnJq=`G~+saiu(z zx<5hsi4-A{Wr@^VkY+z*I*Hmac{WK>k#r0LN^^w)Nil=sgW~e@oT@&J9Cl4ue0;3b ziP3wN&jN$FaZOMZ`5T(55ffK(k4*N@P$wcNK@$_JG00iUoBY)jjT|lm56B6553WWu zNVNVFnIO$q7F1Dm;)3FXXoqoF{6A|;KueB`A{8VvLNx|;ixA4iO-WPn zlt@-2KGhX^`yx$)!~#ro{?jh(3VxzkM2d@*#$k$^@(jQ1zL@tUDFrM%HeQn$5t$%c z(|7KqaA@R5Uw3aq8uYBk_8v2DKv_s^i0#3ra*BPGWiKJV9TBvx+VEwSk-~hDO`sp zMAP6_lSqr@`Hm&f>L-2Em8$T3-v3=4sF&-CU_Px|x-h5;^|JiRKwoeTWV!)NzC~J- z367$`#%iQkL=Fz48kr^(Qgj2aq?iFQv4djr3nHbX!c(fX0*m4Xa;5J=>)-m)u2lEp zDW-lM^^uj;bm6X{o;0hW5n-1KlH_i_oSwsfv@Z&~L48-)s{(%M^Ip`h1$-VE7m!rwGNu7$X`1sB#VsIiKstR*q#{t=q(nq zN6oulRM?)VqV&Q-_7eWZ+J{u!6-yFf&~@w~O(@7QY(;rkm%0gI;q~M!wN=$~UoPgL zRrLY|daLTi2@F)#OA{EUsy9cV?xMNrdaH=0en!26gj6u1$8xS6q zl%Q)7^*r56&GocsvdN;Jri4%y@twRpyaSwk{Q`7$gqx!F6&pqj^G@PZ8Tut()J^*0 zD~C`?U+SFti{~Q1AZPTlm~fKCga-u0=`+T~vxl@VPKl?Cw6q}I=##6UxDZ8JMh=iB zxJF>)KtLDWDL+O#6AS+&4M|aG=~Wdg{|3tYUrCWU&~Cr~{HF^6E$o@f;V}6BpT}R? za45%GA1fsih2t)0y3BMQ{+Ht~*{Ar6-H!kHk8D%iC8G<-|7lRpF6ufPl6O7bJez3g z?x!+JN=iKtPeX`Ckuf1rNug5x9TiFaFS0|+<}u+CN&t=N{x|D{J{s$Uw$=%9^8O|m zeRN5krn0!Uis}FdmBmAWaVm>E3Dp*`n&>pOMQMRE)D{|n87d1~f$3@s2Z6R~3vYqm zYKuUDfoh9HfiqMVV+5wFEEWg^wZ%GtM^zR_1!k%&{t{@VwsTP=fRK8f7QTcu5Vbg(Tg8gzr7c2Iy>aEdOC z$psx1E7iC9dqWwGP7=bXHq>o6pkk${(|An2SEi0>Bu3S8N+M0PMu~zJ9UGby6((jb zSqEIyWUg%~!=p6OytUx`ZITd|HWJ0iJ=sazjMBcxc~b0!>8gA2Ucuhzcki=Y+&~ zn$(Gt#;EeRQurzL`gJKld&eoUH6cMUqL~T~)5Ii2iIopZPuh+tG()0d6KDW6Fp0Ki zXoBN|LIy~~ivl{-R}YGky66&HZ&&K|hSMyJL3+qx)X!23{?(iY_4j3Og@3yA6+F2H zk;XLQUJPnzb|8{Qo?;-TNv6J!=+w%Ap#NgrV3-+1)4*BYuN5QZ9`%1?HBmwF{Ul4& z&r6C=h)fQnQ4!r!&pnj_nxDqPVM=E)brDTphgBTcghj_CDiZ;}l8dx896SgeUBG^_ ztMCik$?vbrOJW)-3W_62gq8leE{$VoMo1DV38M*1iKEe}=z>e}rV+bh74$l~i7I_U zk;YH;y+MCPBYbHKK;M)}iX)_LWHF*FDw*|@T?(AiR>D28b= z8{&fGISnsw7f(7%uU~voXd1mlDt){LG~`T-kS!{5@kk5zb>V6hA~!!^ogjX{h#Li7 z37;-6BnJ)SB;2F+$MWC?syB00mgfcLsVpA~bWmA-7ig=tEWeQu)RuJx&QM!A2uxR7 z`U?zHStbh1R9Q|DXr;DXB2c5Y+$7LjZFy8+oZ9j)fq`nvrve?+mavI1m)sYar?zY$ z5KJvy1!j=@0*|UK;{;}^Ehh-HGPO(>sJp0SSY{AS?T+PnLMjQC4-Mps-oJz5{RW2p zWT$SuynVf>=8p>qOVO{cQvEOU!)fNEfI!C=l_cp?!KPde4U?BTb+YKNXmXAMqoak= zuiTCe3AWR=kZQgB)l!`uolM^(C~k@A^8#*lbo2HRm1&rmStmb5!036WwkSlJ1X9Wt z4Fgh?#ZHAsUq{l?`x2T>9u@pU7M@#Cmp28QQlUFI^21wz%yDFoQd^ZvX z(6oP8oW711E-Cs#CM6j0#L{v=1ntDsKRr5LTx?XTT@%};h4~5e@`s>=2m>~ddt!Dw zK3P}2hDXLFXha%GQzHcjIFV6NVg0B@pg4;8B_)XR$X-Wq1Ya`lN)V{-Xk{JRO5>$_y+6FVR1QHYzl;SLzmezO|dS((@Ro*6tM;r`BE*n6B2o6qupb7SABmm}=_^ zv^CW_3p}dU`U&(l)kX=-RBI;)%us1pNph7oL*lEnM+N4pw0{ZAQ)wRx1hw|P#3%Q+ z3EGstRz&Ea(%K5lQ)}A@^j2wo1!~mV2!Xb0ZJIy_wRVocK$Uirz&MrmjKDNfef*D*x%GI!J{M9!_nQa=9cu6?Z{WLATCEK ze`89dHa5VA4wZ^acOT&H<|8o_y71g^tTs|_M|ZEcqtJ!zkRJsCrO@&^j^sTEo)Smh z{ZBa{_*8@2>Y^iA)bZ@7#;4s=qAw&@L3+L%^@6&E0;toKoTZLue5%3T3`M555)h+I zhe}}eD8PLrMRr

mKSuT1q+QnGYsuXd01d> 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Ð9@?OiDzB0#gYw9RJ*?eu7L+{D+Fk_@O?+0S<(%ky3@0u7IKjd?nzKDAH ze9&EAxpuC)J*A(fs$*q2>npD-)FZXII>^u8a$d#wEnV}bzL+51Epq&5MfvG#Ok3hp$>jTb_F&H!<;*?X#Z=5a#pGs}ulu{GxBI>| zc2PO$t`A-3(Ebji|A0@vz zj8(|@-&(^2V;pnufBF3#iazKnpEuJP+x@xqLP@##%o>lH``m+`ui|>g{7<%YPUwpt zdfWEa(^XD-d%aB-{Zmxj)=^xZKe3i9>i?dc&T(x9x%p8oYWTWWEaTL$mw4W_uIuK> zBZi-xL6z09m$B-|VJ1CQR!n!)vANfhd98a{y;RfZ8{ZeVmKUt=N?)}z_CKy)ZOkiT zdPjbjiz}JBk8;nN+IpjuTG#`hi)WVJ8*d%Gtb2wyb6Dr6RqR3YEN|yJYq@S8ERdtr zm7N8x{XJ(TJuk+3V$ab^F66GN8sGQ+Ty_4fjL#<4-Nt*RDma^s_n|zdG3R`9U$yQT z?jPGheCC+(pwBsKmd4!o)N6)*sNubV)>E>H+_`>DNx4zakM-3vVxHRGGtB&}X)kv> zjd!zwI`WbEhV=5x_4>QkUHDOZR=*5?-22w?jn~UPVn4j#xoiI1u1{_3cRK5%T+TCd zb~X2_RDVX_$U$rIJ#4Orp3qkX?ZHlZ-Wnfn=s9GpK63cJn3q{Y2e12YkOr6ioTs$& z#k_~hIwKm3O@8Lqb52=LH}h30WDlx)bGeyj?rU-}-q ziZLHd?{j1gwUVor`X{qGzAmm#>iUK_&Z*%Q_w=mmxntbw*0JBcxz%}Cea}K)Q~5fj zy8686`JgAOwshY4I@-KD$8z+zVYU&;K>W4hd^qG9M?QYyY{*0AQjm$SjjcV%O zP4-MJ>n>#6qVjgrm|fiakv<)k&mI%YX=^N{)+5XL`xNu_@O|FrjBP#X#W_bVKR3=& z>+LCb2Ws2H?wN1hH;sK#-fL#DKh$}%+*f=`4eN*@lm2tf6yG0Er#|`2qizFy-7o*; zjzZQu+&yh7dA7;%ShX*& zhFiS$je90r+spEOKfBL=#=X$ZvrK-b$oEFEAG78q^3z0Z&g+k-Uz8*7R}@QLYx&rH zFI#uqPd}*RYhr)awd0@F8{Rwdw6ouPuZ!zwdVfzT&yhK+HjqE-`^P!*s(4peXK8u* zs;nNA`;)ny|9U+Z=NG-43;O7{LOvIGf2W`8^>seUS3Wh&Z?1{PcTUUO(OQE^+7)CYG#k^mDgor>XTEA^h+{xPnMS&-s`4b$HZBuj6Ge% z^T2!q)ncLg7BOB^*Zpe#?P`C>*T?Lglhp$cS?^odI(aSARQ=_AjMtu3<4Yx-pVsn^ z`XDy{%DxF6XhQ#8*!YTdX0EajS@Zhl0iwSGH$vAi0~Q!lYkdO;23 zFF#M{fwE$Lyr+Gswuh_AeRF%r>+_74#66wFI9go_sObp#E9mu7HGPJ0Z65cO>!zR0 zF+e`5cT{UVx=tJg_27JK9#G5Yz)s@RCy%=Jv^6fZ-m9+9sK*vp@>N}b(<_Y%npX{P zxxcSC3U^jx>!{=By-j?EC~gnCFE;Oq?0QxX?us$1_xi|nUh%DSO@1}sVyuyRp{)0B z8vj-E;dgvc5A}oX7gAO>XcvCQ*cQ)Bk9w|}zc zUdHSywmV{5Y3?lEYouq!n7gX+p43k(A9Mzab(ox=6!%l+J7f(x&5=o*4~r$aJ{WAi z)5hObLoISRljVKBwQN?e#toetb$o77k7@FH#2mZT`8)fnwR`iaVRm^Pt8RVNX}ERF zcl|S6?EkLzkQld_@2_;$WBjLCXspt{&MqRK*0KI^`%{b`$akzh&zSR)8oZ(ZR$6ai zxp>wXlPj3t`zhqRuX?@kto_nfKFpKDYrDoI4Lwf7WL33LAJJUrgf=hW){Oy!8H~>vzcM9Wkvp=34jt`hw4L*05C` z4y*C6;=U*sx1JGmGtXn%$@P&A?osz@&Zcb5^_Oci%KszcDr?L>^4`GQjni98PUmhf zwfA+sHTJQ#^>Y1+JhimvuIv9#z5jyRJf|nltJfy?w=muoIbU!7uf5+pzq7Qd`}O-= z{oh0$OUPXhxl7Ymj~MS^@3+*y2gP$m&c2X?W!dxyo9wYq)bg8$J@?JAvygfeRTsH< z+#F4emC1c$i}`$H%!jNiM=7;-U324~%H?yaISMjJeXq&iFUB2eO@F%nS??FI<_Ent zyPW#TQ!?wBAXhWxs*zrZ`s*q4HS1@u>A`LCJ=)rysN>Hf>V3AVcys&AYyBJ5dRzg| z1nX$y{T6C_DXSc`_dGJ!lfK_$p2n^@AUD~qt!y9t;MzfYqn6hOxo3#@Yl~~q6UNOa zeskZq{zud{Sugw6^;^xEN`4+OXEN7+P}><{Z$9hiW@7(Ztew>_w=rs&w}JRhl(**^ zIJ>R!Yzx#iliup&z8P|N&DhBsxmI11r1KfdJ)NF%=82`Ud(WAtM_1#Sqj7bg8^!u^ z8E1VDHL;c(a$oWPW4Ugz7;C1txBA(uuFoK+73|Yb^v4*zT|s@OkhO%pEuL77@-?tt zbJdmajm8=Bu(PVQGeM3Y&f>GTn7(yg7IPN0zIuB8OJi);kImIETRoo(n>g$Acs_al zP91u87l(XrZ>COqXO{0981E^2rhqf)(~j1xm+Ce{oP~_p zGM}}&@6q~l=j>dpPx|TWW1a1JHF(=Px6A7z=G`POOIrGjpe9YtQC~l06k9dxc)@xz znzq%n*1Y%FZB6ry>+~}=e&IVVK26~<{s95RP5#Lg$CW6VaB|s2PVqd z5ZBIAxAEp2BG#AHC;QW4lBcKi++^1_v!)%!eMEl$c3mcOm&>Vd^h7>x7xSK2=37%v zwYaV)FE;Z`vgUH)U1a_x`k=DDIM_n%{Jg`@WyG{to(7BkakYQS*N^03oi%lmm#N-g z;%n~4uGb?E~yr}ub*`|w_TvtzDu9e#qUcW7-zw$eW zt2htz(?)T>Y@V^|n7^&(fVsbyi)GbaD<7Hdf!cEQjrDI6>$rxl(Kj!a_P)MZ>D~v` zcjWW_JS!(R#JVMqXWk>8-Ns06{-4FXR}D6+K^igb)@vu_{4L|Wqqp*k@1sKEww_Yf zIM2AnUH7i<>sa3`uRm#B7p$SZoL!Z>)OzSE_n%UWw0be69PDvT135^qc5^Furiwqb z*E)$UzjY;XO$z;xLR|IKs7hZkh^vWQ<;<$T++V4e=M)#MZ~y=ERaxxjeMz2j%W+BT zx}cVS=!_tf?geceNz zf5~DmnR~i9UbW^{Pl&C6&!%F3wUiuGu{L>cr#3Ck`@8Ye)t5s#+hk3JUvQ?$`$n;k zlheJv@623lXeg%xG9t$J#5C3T$6R+z&VNwTH~svseEubtd+L}(9+H`Fxb@tXt8ev0 zMdRPjZckRWPBAT3yFuP7Dc<2v``I3TP@G4_lS+JTvN?nL%EM#sFKAskt;M=G8s`tW z>m#;L&Gni%w#&_%>HWE{fwlZUm+E>;-6m!7j1_-pG0qdqXRfPeoEO!+yzf79&3Y(cmSW`{w&m-pa@;h9-kGnpUw`$g&Q$5zIb$0i6ZlVv>_7{D%)H>d7y#MhBx%;mn*#(Y6eJGkddb=qpqv*sUQjz7)&qZ~Y%&v|P7 z7xlvkd*kIc&H%mo&;PFzPj~mvv`3Q5Pb)ogN&habuUGWOSFRbU4!_H3Ci5-o>hpu% zYAoLVt;B8JX|kxFd|lJ$AD4Eft68_Ko-=jb=ejI@o+KX?#oW?(Klyo|>k8___n9I8 ztNfg%q56ocn)Ur>orBzSReY_ieWu!8D(4v^7Y*d?l0B5t&uhiGGKbGr{hZ0hz28io zE4$x&ud7)~*R>J*0{e1=`b;%PeX->d$5gMM7vqL(_KW%l*7csT2V2XbT=udash}qJ ziaWclEpJ~vBHj)K#V(#vuDdF~L&U#T9<~~PWj(#;o<(whLTwt#^+ng;wVr0;YVwr5 zruIw3^|74)RLJwkm@kXHkbJf<=T2kf)<@@EUqY;}$y-vr`jlSnYMw#Hy6XE58SD`; zw^y?_j5V=~96o1Va{jmeoF!MknLl+6Ym(Q;p3swGtDsNT>#g_HJ(czTBW8%7|-={wk;bU)1#6x3&Vl?#<`fp>CbTlg!xNGU;*S))4nR*AFxH zQ8A?u(*gNU$wThlsh;KKJ!K#LRbPIJdG>j|x?DV^-WlYpx_tCB#z*o#T0XM7K2nEk zjh$1jd)#{|)GfK!^T@+{)?30FZdvc2>TyXdCDkTHdp+0N+TC+d4j!~W7W#RN`qnr9 zWb5q98sB%XsvqsQ>0+29*6)p#xr4neXUo0+t6B`U=BJ+ZIp5k^R8v>4_mhJw4c(_E zt9n|Onl#JoTG!1K=P36KGv|cX=CYpO)$oA$>hpy7Zsd0Ei}iR-`{HrA6wjT;pi^Vf3bnrpvWU6;FL;w&xab$U6YpHnyY?vaawa=XJiM(Lf5)_c$1 z?NZNYM|X;g%xqn~(|IoX zK4X4)x3(iIYfGNNIcuB?)}GnAX7$yJ-ftlOo^NFhMl+R_Z09_Q zx3dOWDNIE=F`D^o;v8wlW(}U91nn5dOqQ{oL!9FZ|B-53*5EPnQ<}PTpdZ7Sz)Y60 zi&I=D={s42%;cgNwP?p6#<7r19O760<)QIegWQy*9&H)GTg+uGd-;)Dq<%MR@FXQ@ zNKZyHgAIJgRZ>jI8azdDYSM~63}+JaSi?Tfah=4(tU)I7QkkZ7<`v%HJ!Z3-uQ<#( z?(?93Y#|pFXhIK0FpRV3-snqX0w6s_=Q`foNUeHqcY9t!AK^u zh%Fr8N3N6l{j9;Wl%^&v>B*~%XC7a0nBTd}15>gFPg9B-w4fjFvYZ`!&qeN&*8eHx z8H!Mm26SN%WB7o1tYjxgILB==e3&&TKzZuWitfC{Tvo7$qx?erQP$uIO3;9AjARb0 z*vXGv;Xl%SZ2c6aHtiX}Tg+x12l$!WB%P}E7!s!Ub-V!vDcF zGdU?uEn3lo!Hi=%%h}3)PH~BUNjp7jkcA>tqZu7}iQ!CSDxa{HFFD9be&re|XXq13 z(Tv`VU^>g#!EyfJU((LBM<_rg+AxqwEMy}GIL{r@&N4m)C`}C-)0w^u2SUVh;gDd##H$ww)w z(1flGYna1N}rw|osOj~*|j5nFYOct?%jqKzQr}&*aM4#vZGV?TfDMeM9(v#s# zU^<_&iQRn9MedS%an|5ba#4aRv|#|RGm+UWXA@uXEkE%aH%YO?exnpMX~#>v%_26i zhYQ>%-BRZX`6*2m>eGQfyv8`DvzT@4<}l~^i{Mk^kd>lTrx`tYm5D6kOAhfXw|L+) zJwSfSQ;)X1!Wcee5ufutm$^@3nfZ8>tmLN*Rj5ZBx-yXAjAt5iS;H1~ae(9e!XI4c zAJQy$W|D_;G^88D`H*Gopo7u@>&hiI;6Rpe|q$fMiQG>>` zrxybm$pogdly&Up7*|QU%04D1C8$DUy73xsF_SfX&OVNEf$Q8Sv06UKOb$v=ji$WF zAVx5rnJi`%+t|lX{7JON*~G(SryymhK?^$5pOH*tI`deBd-=u$POZ+$3kzq6cG`$r|=>hC5{3?A)Rr zy%^6N)^mibq}^h@zHRQJD@5K_naV15@Et#Mo%kE) zB+pQQ3e=}FuQG{GSj(4u!wG)pHYvUp7kMZ_b(+$J{=CU_ma~H+{K|FyCFyr^$7AH- zIqK1o{*2&5X0e=IoZ$+0NOH*iJVsv1Qk56z!YjPPG#0alFF3$CZt}ok`-~FQpaa90 zz%*8}gA-gM$@lt?g4Cupo#@YSCNYD>e9l2ma*=$zd*$^qA*0Pm`ZgRHYf+7{EBDv4r*P$2rGeL?_gk$0fASB>e-c0Ws6umkGKy)eo|NrID2g$?pw4fjFvyhD(<1)$4 zI%_FG4PImzAF_XGLk5V+D z2Sb^~dJb}eze#ghUs93UbYU>#nax`Ea)#Taz2eUwRG<}unZibX;4f1ArDv!}E4nj? zF-&0rYuL>xZj$_}UZxne=*SSJu!6%}CDk=OLTT#ImBEZ*Hrx4`l-K>4kz&-M0|Ob) zTsHCz7m07k0nbyPjtpcB)A*FnIl?*qCe2N?qXf0-z+m2GF6-IPS#Fc=Z#AJLb?Cq= zyvsZ`aDcPiCgUyRQ;}x$W)vT?lpP%Bcf#AoCoAP>KzH8aBNnrj?>NmZlHbwq6rlo* z=)w@jGlOMp<9jX<-u2m+!qlWKFEf^pSl-I+K{oD!$}9&T^e(VYVPMxhYFEn$n%uc!!yM#&*8v7yjmf zC|mF}#i&6m`tUjvn8|X!;Cs$@F`z$oXaGVW(yvr0QKm>NG3CjrEFvu$GOPAq)8_C z8xQlC%8%? zrLieMHJa0px0uB?PH~-7spOMNv|=dJ*u)Q9C49jAWT60MX-qGM@ji>$#zD?;kJPEN z1Pe&h;CGi3`NrwBD@%OEB&n^o-QIG0KN zP_`f&C8$G7dh;q{naUDA=NLDLGG`0Y@&x&)Kt0;fo41(H8g}vn7r8?UzxehDxhO?V z+R}&DnZRsT^A+E7o*N_{vB$|qX=>7m;Y?%>YuL#Ve&Hrb9#vbiQ-)f!q8G0-nFXw4 zH$QNZyQF%|Iw?dY8q=9q7{f;_W;5ULGuMb87c1E)NI9z0hz|7QO{TMkuQ|;PQuxQM zo}?(X>A*nVVGirq&w1{W_DQ`?DXP(w&b-8MK431(*~-@(fncaND2`=$3nVz0rObFR=(y4=ef@R|3d|-$;8tXq%75GOb3QAkwvWJa}IHinc$2Ao%IEyRRT8;fPkt)Um|hHL3iDaX=j`W4 z{v?sdI(Ul0JWm7K(vw#i%>?GMgl!z*9GAI6lDz7|ixJ;6K z`kIP#Vg!>}$U1g&lwbLWH2L)qg{eS2y7DTMna@_f;}4P*5EB)tPdoZElF59=mz>}a zk{0yYgc3Aj027$S3U+Xc%Oo%4^AC9_MO>K$(2SQE&nIl<2-iqi)ZU~zJsHakRJypd~#S!6fFg zj$It#A~#7^+`7q6IU3T95q!id_HmXQBrlOIc$gfNqc-h%iFaAZ=N#b*VaaU4LlmGg zt?A8hCb5iNoZxr&Oh={h4zf#1D3FZ@43i59w?(; zvJe2s7)INFp9}6WF33>kv|B^IbX?6F>279o(yF& z^I5}ge&9E5ll(ckCNE{FLmOUVJPY}PUx~`wvlOQu-I%~qcJdRqNL#@gs6;D9GLy9& z<|@f5+Q&RcGX^k;Pua~`?vv$tIj1eJFqxGc;1Ve+d2UmTDzv3HuQQ1`tYkZdrm~iU{LF3A*0YDGNE5p7 zGH)=I&)CkloaYu9>#Ga3>B3lMvYzj_M3M&1VoK70Zj5FcpYa99xIo;{wUnh6?diuz zCNiHDe9kwV<~pewIRki_QZ%4DuQ8GNtmjL<;{ta{*H|sdPdVz+g`rGl0V~+Xcbwxc zDVjLrC`5T0)0v^X&my*Pke|3h^g_1aL9$Vn2E52n#xtAGImIm=Y^o2aL{oY)g2~Kd z4g0vjJu)15VJUmLK*|ozS_)8-O4Ow_{h7!t7PFCk9OGyH zCRIm!gB+Bg22JQpKSnWu$;@IYYuU;7{Kg$pb@KcpALVFBX9hElS*+wMj`0^^XYunG zc_>9qTF{AJ4C6hPvx9@2;&*P6q>J7oD}`u4Zw51(kC?|MzUDZ0Nb#ck$VwUN(uE<6 zXBMm3!*Bdc#;*1p&rzRF^y4k2v6|hS;17asYELn0(VkZr#|&1okv;stbsp?4ht#GU zZ!&{b?B+a4d+0YR)0zQ{V+M;@!yZm?g{Y_4$w?`y(t*Le&4(;xBVY0(zjBlR|09~I z$VoYx(w(7Fx6;A4+b!d3Cv-exMx`H~adBK2T(q6F1x z$6(%OE*m(_U7i@?@A+s$_wIlUReJIrSz-|;*Dk>ORJm8eDs zhVm|p*v=9D;2!B;Gd^XgM|a*}0iSb>KS(}I|4@PkbmcWBv6zi~!*3*Bmp6(~hfWM; zJPX*$5iapB>4*FC2Bm38PewDH&)CiZe&!1QkbH!7@;EstL0x(=g7;a>Rt|EGTO=Q8 zFYye;sX-h1Gm4Lx%{umTlB*;crH9BzS?bZ6{=CIZHgSNn1f%7PqST}QvTG;jM%M-gh!hQ5quDvQ~~0Zws= ze@Hpjy2wpQs?n5g4C8%Pa*#{>ONMctLwYcp8LZ`NPI8@8?>gHkPh+|=oDW&f*PP}W|B`xwwUdi7 z)S(NnGmSOu;|!MxCdxBUlAnsSVJPo1mu(#7FQQ348&HTEbfiDSnZgPVaGskaeNX>W zgc`J=4{tDwjhrN&Y>&`@9=y#Wws4fc$nd_L(TTU1%NP8_Wl~P@{G}W%8O(U*vYDe? zvKxIRlu$5;pJ+XSht_L!SxAPHCFZm$A%eHM=;>&s-<|NS(<`X=>4)p-f~c zn>oqfJn*scDNkKm@e-qXp9O4TA1Ap)G*w*Wq%;la#&D*xlAWC5PyEGrke+8LPJOyF zn(1udFu!q|B-5RfA`3|U^#m@!#y(25DS%PO@D?lj;VagHjZ+gv@^v*IU3TA z{)}QWpYbIpxWs)Pou#j7K_AAkh&`O+9uLg+jHDbb>BZ}eXBvxH%afYlu4I+^GByhB5JFqQ@E;T++7XBrh~&nRZFiG%!1u)zNo zNMUNzn|D~wZY~fl^jVRjG@>_Sn9C*(^Cu}6+1nJN8cpfL8_ZxGhqz3dPkcV7ERE>J z+stPZhxwEHJh0eVPH7s^hjA?BOHOlxR7>QQ5;UL}Z!wECe9bv-l5D9xLoP~DmyQf# zJabve9*%OBE2REZk5ZLR4COtRagZyd`pom5N_1otGugm*TqW5uxuOhB>Bj_?vX4JV zzTDYOWjZmE8EoV@mxx#BQ*uy(YP>*CM)Ls+S;J0_aE_ZKTPX$#@jSI?Paj@q9Pcxq z9sIyq?(^^}=PcD}Ngsyu5i8llDQ=Q-wfa$riqxkw!hR`La^38AP3LWjJ}Lv7HiqXasK2!53F-Nm1st9-eMxNS-~DoafREYTx7ha-r5f!S#VppdpP#u)>aEs5 z4O-Hj;e5bKcJVDIILBq~kanAxC_-f#)0vkT%|vFgiZ3|CY5pSqTM=cr3(1~QJB ztYRN$xk=J5@jA0h*ILPlL+2ivEStw2wn$eT7Ok*Ky*})-x;TB2u+GFJ7c^c7`SDDB> zR1of*tH=CF?4 z9OWYaknB5uF5p>;Q;lZyVgwVI!zy-gm|wX^`a{kOD$szA3}hU$S8@Bf}|kQ=DovryKnk#w6ylf&Ki* z75ob)e*ZTP5P9;66T2C0Gvg498pAZ?H?NFQVf9t<)DnSzIc%)!IKBf+D7 zTln$diQq~9*lU*H>EM~**}!j@2ib!hK~Db|YwjRVkT=NZpXe_T6buUaz2YK4(V$pR zJSY*A3`zy1gEB$cpj_}=P(G*-RP;N?m4eDam7r=+EvO#U2xlY{qzDZvN9hrvg|$HCNKS};AB5zGu`1+#-W!Q5b8 zFh5ujEDRO}p9G78CBf3*)8MmUS+G1<5v=rk)2o9u!P;P5us+xjYz#I9n}aRE)?i!k zdGJNB-S1TI2)+t-2D^gY!Jc4m@O7{+*dH7S4hG)@-}-IqL&4$T``}1$G&mOg5F8Iq z1Sf-2!H>aD!Rg>k@U!2=J{O!1ehGdJE(E^?7lYq}OTiz(pTXteO7K^3HMr(CwQmGB zgTI4Y!R_Eqa5wlTxEI_H{tf<9{xFQfI81~|!lYrcFnO3FOc|yM9|%*2X~MK&x-fm1 zA$%~*7-k9|3NwcfhmVAhhL44hhfjo0hEIiA!l%P$!e_&*VYV=Pm?O*?<_dF%dBVJ5 zzA%4SAS@Ub3JZrt!lGfZuy|M^EE$#xONV8`vSGRKxv+d#A*>iaA65!0hgHI=VYRS& zSRm3LA$_!WY7(VY9G#*dlBhwhCK^ZNj!;yRd!OA?z4- z3Ok2g!WYA?VYje**dy#2_6mE4eZszBzp#J!QaB)dIeaA?7!C>theN`l;j7_m;jr-a zaCkT(92t%ZM~82OZ-!&Sx5Br>vEjJzop5~kZa5*F7)}b`3nz!~hf~52!Vklb!jHqL z;k0miI3t`H&I)ITbHcgdyl{TFAY2$O3O@-KhfBhx;iute;j(afxFTE`t_oL&Yr?hR zx^R8CA>0^l3O9#a!mZ)9@bmDCaC`V=xFh^3+!^i)cZYkzz2Vp4zHondAUqg;6Mh?h z7aj@^hu?=s!lU7_@Q3htcp^L*o(g{qe+o~BXTqPuv*Ee$eE3WFYj`32ExZ{19$pIn z2>%Q(hgZVC!mHu6@OpS7yczx--U@Grcfz~jKjFRbe)wL^W=HcA(zk1|9LMj4|_(L+(@=;7#*=+Wr0=<(=@=*j4*C`aDi#%wN<<~2Qc>xsOjI^17d;o1 zk19kJqvxYaQRS#gR5hv=RgY>!HKSTl?Wj&vH>wxaj~YY`qefBVs7drf)HG@qHIG_E zEu&UZ>!?lCHfk5Ok2*vhqfSxhs7v%>)HUiBb&q;PJ)>Sx@2F4IH|iJlk6wxfL@!6L zL<6Hi(coxEG&FiOdMz3jy&esZMnof{QPJq=jp)s2O!QXtb~H8`7rhgWkKT2F)^g;At^ilM2G&PzQO^;?oGoxA2>}XCjH<}mCj}}A=qeamt(c)-Hv^4rO z`Yc)&Ess`2E2CA>>S#^0Hd+_0k2XXbqfOD~XiKy;+7^8teGzSszKnK6Uqw5kUD57n zPqa7sI@%ZQj}Al!qi>>bqwk_a(c$R(=ty)lIu`v99gj{#C!F7-Kb96R3 z7oCrOiGGbPM88EBqu--T(I3&D(dFn$^jCB>x)xoJZbUbuzoT2x?dVQ)H~J^K7u}Ek zjsA1=hjA3gaUxCS7p$~aa0K%6>G6Q_;S#p&Y=@q=;3I8*#koH>3tek6W0 zek^`Gej z#p4oj$+%QpIxZ8JjmyQ)#pUA)amD!gxKdm>t`b*`tHssh8gb3IR$M!-6W5LF#r5L` zal^P#+&FF$zYsT#o5juJ7IDkCRopsm6Ss}q#qHw`amTn*+&S(NzZiFoyT#q(9&yjO zSKK@96Zeh##r@-#;sNo?@hkDbcu+hz9ug0YUyWajhsCeQ!{ZV0$aqvdI({R5GaeJa z6~7&ijmO3B#N*?4;|cM^cvAdcJUMS~596*>!Dh3-PR&{LRQm{X_}b}Y;-^cMOG z{e^+TU}0XNTBsF<3d4o@g$0F$g++y(3Og5eDePLLS~#q5c;Se`k%glQM;DGM99uZ9aD3r}!ij~G3MUs%DV$n3t#Eqb zjKZ0PvkGSy&MBN*IInPi;ex`2g^LOo7cMDWTDYumdEtt}m4&McR~N1+TwA!VaDCy1 z!i|NS3O5&SDcoAPt#Etcj>4UVy9##~?kU_`xUX=3;eo<~g@+0c7al1*T6nDRc;Sh{ zlZB@WPZypkJX?6K@OVPN{MGoI@pofO;~z$YG0|u=CK*k}WMhi4mC+Kmol zhB4FF&e-0VW$a-5)A*P1Z{t5k(fF@XGCGYequVGOJ;rQfj!`joH0Bz;MxW7d3>bsP zJfmvVj3Hy#m~SjF78;9;os6B0U5s6g-HhFhJ&Zk#y^Ot$eT;pL{fzyM1B?TWgN%cX zLySX>!;Hg?Ba9=Bql}}CV~k^sj6%Z$s7D~v0RtBk9SYm94+>x}D-8;l!`n~a-{TZ~(c+l)cMf1OA z$?P<{%x<%6_L#HHIcCM&(VT1cntf)!IbaT&^USJQGl$G!bH2I2Txc#bcQSW2cQJQ0 zcQbc4_b~S~_cHf3_c8Z1_cQl54=@ij4>Aun4>1ol4>J!pk1&rkk1~%ok1>xmk28-q zPcTn3Pclz7Pcct5Pcu(9&oIw4&oa+8&oR$6&oj?AFEB4OFETGSFEKAQFEcMUuQ0DP zuQIPTuQ9JRuQRVVZ!m8(Z!&K-Z!vE*Z!>Q>^pE92|pD~{`pEI8~Uoc-ZUou}dUol@bUo&4f-!R`a-!k7e-!b1c z-!tDgKQKQuKQccyKQTWwKQli!zc9ZvzcRlzzcIfxzcar#e=vVEe=>hIe=&bGe=~nK zM_G$mi(5-r1_<=?X2ysS=J8LKdpaR|F-^P6|MhTC9BiwvbwFZ)nm=J=2#VLM{BOtYxP0*6 zI>b8EI?OuUI>I{AI?6iQI>tKII?g)YI>9>8I>|cOI>kEGI?X!WI>S2CI?FoS zI>$QKI?p=ay1=^7y2!fNy2QHFy3D%Vy285By2`rRy2iTJy3V@Zy1}~9y2-lPy2ZNH zy3M-Xy2HBDy34xTy2rZLy3e}bdcbdc%6tddqs-ddGU#de3^_`oQ|o`pEj&`o#Lw`po*=`oj9s z`pWv+`o{X!`p){^`oa3q`pNp)`o;Ry`px>?8f7nLFK#bk7i_~eZOgW8$98Sc_U*t9 z?Z}SpI(tcbDSK&q8GBiKIeU3~1$#w%C3|Ii6?;{CHG6e?4SP*{EqiTy9eZ7SJ$rq7 z1A9YzBYR_e6MIwpPxfegj9qV!wKucJ*_+$r?Fsf4_Mh#)*nhSEX8+yZ(*B3tU{ACg z?MZf%J=vaOZ)G>zTie^%Q|)PXi`{BZx3{(1>~_1uo?*|lx3jmmXW2X0|Fr*Q|J(kL zU9|sem+Vfv%kH+zc8@*Vo?}<+9qqYxuia<&+XMEXJ`waU``z-rx`yBgR`#k%6`vUty`y%^d`x5(7`!f4- z`wII?`zrft`x^UN`#Sr2`v&_)`zHHl`xg6F`!@S_`wsg~`!4%#`yTsV`#$@A`vLnw z`yu;b`w{z5`!V}*`w9C=`ziZr`x*OL`#Jl0`vv<&`z8Bj`xX0D`!)M@`wja|`z`xz z`yKmT`#t-8`vdz!`y=~f`xE<9`!oA<`wRO^`z!lv`y2aP`#bx4`v?0+`zQNn`xpCH z`#1Y{dz7=7v$(T_Q*aE&bS%eq9LIG$$9DoJbRs8q>YOE=rJSXmWt?T5<(%c66`U2F zm7JBGRh(6w)tuFxHJmk_wVbt`b)0pb^_=yc4V(>~jhv00O`J`gKRKhFF;2ZR*4fM% z=WOnbcP2PnIDdBj;{4V5oAY;POXnX>gEP@-bS61X&SYnbvz62AZ0&60Om(I?El#U5 z-PzV@bK0E_XNEJ=+0NPCndR)@{L}fD^Ka)rPSN?VQ*t_;E~ncmJ3Y>9XO2^Gc68=C zy-uIg?+iGD&OE2;)SMw_*qQGva27g?oSmGVon4$=o!y+>ojsgAoxPmBoqe2ro&B8s zodcW$or9c%okN^Mox_~Nog zowJ;?opYRXo%5XYoeP``or|1{olBfcoy(ldohzIxovWOyook$Ho$H+Iog17RotvDS zom-q+o!gw-ojaU6ox7a7oqL>no%@{ood=u;orj!jSE!}^( z4ems@(VgTrxs%-~?pAKIyS2NGJJp@$wz#eCbaz{~&24u(+!^jncRP1`cb2<@`%m{@ z?!VptxJCEBZprO*yWDQK?Dn{`-8pW>-O-)v_PTv;zdPU#y7SzsTXTopVRyc}z+LDr za(8lfc6V`ib$4@jclU7jboX-icK31jb@y}kcMot6bPsY5b`Nn6bq{k7caLz7bdPe6 zc8_t7b&qq8cTaFnbWd_mc299nbx(6och7LobkB0ncF%FobHRc5iWSb#HTTckgiTbnkNScJFcTb?DN}cRz4HbU$)Gc0X}Hbw6`IcfWAIbiZ=HcE54Ib-#1JcYknybboSx zc7Jhyb$@ezcSm`Pd5e2Xcm>b!OwaOc&+%N(^L#JxLND@Sug+W2TgqG7TgF?~Th3eF zTftk=TghA5Tg6+|Tg_YDTf+-t2ve)Cy_U3pM zZ%1#g*X#9p{oa5#=*{!0UdO+&jWM(mTpK+B?QO);rES-aElN(L2dI**nEM)jQ2Q z-8;iO(>u#M+dIcQ*E`QU-@CxO(7VXH*t^8L)Vs{P+`GcN(!0vL+PlWP*1OKT-n+rO z(YwjJ*}KKN)w|8R-MhoP)4R*N+q=iR*SpWV-+RD&(0j;x*n7l#)O*Z(+u zeaClw&-eYn5Bs17e+7RHz~e+_?4e=UD) ze;t2ae?5PFe*=F*ezDjazsv9T%YKhP+n?iC{2l$dey`u>_xl6>pg+&A`Za&ZANJ?_ z3;c!tB7Y};XMY!eSAREucYhCmPk%3eZ+{r~BVE+*RQ2#LhaQ_JZ zNdGARX#W`hSpPWxc>e_dME@lJWd9WZRR1*pbpH(hO#dwZZ2uhpT>m`(eE$OfLjNNF zV*e8VQvWjla{mhdO8+YVYX2JlTK_u#djAIhM*k-NX8#udR{u8tcK;6lPX8|dZvP(t zUjIJ-e*XdgLH{BDVgC{TQU5XjasLVbN&hMTY5y7jS^qizdH)6fMgJxLW&aibRsS{r zb^i_jP5&+bZT}trUH?7*eg6ahL;oZHWB(KXQ~xvnbN>tfOaCkXYyTVnTmL)%d;bUj zNB<}PXa5)fSN}KvcYjo{Sg?4oL{JEfzznRw4xGRZyuc5FAPk})4(fs>gQbF{gJptc zgXMzdgB5}mgO!4ngH?i6gVlo7gEfLRgSCRSgLQ&+gY|;-gAIZWgN=fXgH3`>gFgkM zgE2vUFgDmM7#D0Fj1MLRTLga&{u2B(_*?MzV9VeiK|?SxXbdI=O~K?~O0ZSX9BdtI z6HE=J1ua2qFg@5dXbakdj$lSGGuSTJKA08k5d1UvSMcxPKS440Z%_(4gRY=EC|jn%33d$T2E9RF&>sv0gTcI@8q|WJU^ti`EC?0`i-Mhkor7J1U4z|%-Ge=XJ%hc1 zy@P#%eS`gi{euI71A~KtgM&kYLxaPD!-FG&BZH%Yql06DV}s*@)& zQ-jlj(}OdDGlR2&vx9SjbA$7O^Meb53xkV-i-SvoOM}aT%Y!R|D}$?otAlHTYlG{8 z>w_DD8-tsIn}b_|TZ7wz+k-oTJA=D|yMudzdxQIe`-2C92ZM)#hl59gM}xt%m3^xil4mSxm4gVC54#$M`;n;Aqa9p@~I6j;ZZV~=D{7d-P z@NePY!!5&qgbm@uurZtzHieVJDdARObGUW5O*l227Pf?~;q-9Zuq|v4JHi>^%y7GK z`*2pcL-^0|U*W&Q|AfWxzhNot47YFG=0 z!r^d!xFB2@E(&)FcMf+6cMW$7cMtan_YC(6_YU_7_YL<8_YV&U4-5|q4-O9r4-F3s z4-bzBj|`6rj}DIsj}4Ctj}K1>PYh2APYzEBPYq8CPY=%s&kWBB&koNC&kfHD&krvM zFAOgVFAgsWFAXmXFAuK>uMDpWuMV#XuMMvYuMcksZwzk=Zw_w>Zw+q?Zx8PX?+ot> z?+)(??+xz@?++gc9}FJ~9}XW09}OQ19}k}hpA4T0pAMf1pADZ2pATOMUkqOgUk+ah zUkzUiUk~31-wfXh-wxji-wodj-w!_sKMX$#KMp?$KMg+%KM%hMzYM<$zYf0%zYV_& zzYl*1e++*Le-3{Me+_>Ne-B4Ri$#k^OGJgph|I`}?8u4S$cy|ah{7m};;1fKGFmEH zI$9=LHd-!PK3XAKFQJJ6b1NH(D=RKiVMLFxn{EINBuI zH2PCCIvNwzM`NSSqH)pY(fDXWv_WF4UGo$UI?W0-I4$(iOe?|X}{u33W|3;;#GwO=E zqjJ;}&5q_om1xIkZqys~Mg7r0G#Jf`s!=T(iiV^4(Sm4Uv?$ss+Bw=K+BMoO+CADM z+B4cK+B@1O+Be!S+CMrVIxspYIygEcIy5>gIy^ceIx;#cIyyQgIyO2kIzBofIx#va zIypKeIyE{iIz2igIx{*eIy*WiIyX8mIzPG~x-hyZx;VNdx-_~hx;(lfx-z;dx;nZh zx;DBlx<0xgx-q&bx;eTfx;45jx;?rhx-+^fx;wfjx;MHnx<7g#dN6t@dN_I{dNg`0 zdOUg}dNO({dOCV0dNz74dOms~dNFz_dO3O}dNq12dOdn0dNX<}dOLb2dN+D6dO!Lg z`Y`$^`Z)R|`ZW41`aJp~`ZD?|`a1e1`ZoG5`ab$0`Z4+``Z@X~`ZfA3`aK#IFBUHz zFA*1FBQ|3zwqqxDV=wmOAP(awj^ny`$#|)F>3ErV*?75l`FMqR#dxK7<#?5N)p)gd z^>~eV&3LVN?RcGd-FUrt{dj|T!+4{3<9L&J)A&#E=y*(AACHYUi^s*A$K&G(@fPu) zD|@N8Aukj2q)gaZ@}wo)T{rH^*DY+r(4jX>m*38c&b6joae(xFens z&y2T=w~uGVJH-Et{}ul`{!d(t{~MR$&bTY?j>~aRJUgBfSK=Mxxp8mY7x%{l@nAeJ zuEw=^C?1aI#|z?x@uGOAc;|SRc-MHhc=vdZc+YsRc<*?hc;9%xc>nl-_`vv}_~7`E z_|W*U`0)6M_{jLE_~`hU_}KWk`1tsQ_{8|6_~iJM_|*8c`1JUU_{{jM`0V(c_}uus z`26^S_`>+2_~Q7I_|o{Y`11IQ_{#XI`0DtY_}cio`1<&U_{R9A_~!VQ_}2Kg`1bgY z_|EvQ`0n_g_}=)w`2P5T_`&$0_~H1G_|f>W`0@CO_{sRG`04nW_}Tcm`1$yS_{I38 z_~rPO_|^Ee`1SaW_|5pO`0ecYCH zF0QMqTe5Dcx~1!usav*gxw_@+R;XLCZl$`F>sF~-wQjY#)$7)%TeEJhy0z=psav;h zy}I@5HmKXMZlk)5>v}7lUDZW{Lj#+PDUR8+ySH~#Lt|r8dwX$GQ+s1u^Yo79)|O&V zwOr1_D?@o`e|f>EhDp-JCB@%XP1XY7faoJm0GPb(BCjTG-se%8Cs-9A(sA9 zU!{Nc$n?SLKu?)uH23!m)YSN>SCU{#pV}X%Pb~i=Hb4Rhgqpi7RO0jEBxoa*ctD`(aItWe*g^W4V@f--MNx3*! zt@LNPr9z4l{lk65Qmrc^8OkUR8;MuZZrXI7KP4v;lL|{DQL43dYEwgtv{X~ejA>16 z4INFBgtZ~>3J5k~8tPaPat=Q;N|sV6B4GuRDJz)FwvLS;bZDSBv4tfyd16ZaDNQY) z{nX|inkIELPiuk}c1OmUCMa%@CM6b3Q$%*sxXe?Upm;=@B=ej@DAtC+m1b+2XNs4{ z<9JFnj!MOv8^&b>B$$YtAW6iQj;1M1ZN;v>L8eYK2fBw-Kw>t*B7H>x)G}4!Va0(2 zF4f{mW|WdP6fpqEO90`#1Qbtd?r54;OccgY@4&!Zk;#@BQ>Q8wf`URl3P{~rCvM%; z*ir1NmPTgt9-b*R|WTbd2sjYi1B`ulQO2P)mUIMjy>F4ZIru!wUtKtfsr z#Bwx1I8Ot_(;7fu($O$+YE!0GO;1sTiPLzZzKEdsmt>YDpCCCAhZYTTS8LY`hk{r* zrNO~scWJ1^ibleUVI)==D)*(>02%C+?o6Cg3ksoyQb{yzJEN(ku}SNO+XX0$(hh#E z_S4*&WLaptySW~$=VoYEZ@JVjs-?y+YcEHU6WoSI?dXsK7A=_w4-CR!NMTUy#1fWO zipR)^gp^0C=4H{)?%m~{(s1ukv9DC)gAOjEx7+6qGC()qzpV_ZZM8YOa?4GRcL8vbWEP0NmRU+Hb-`Z?HI2fiWDnJp%{&21`|5vk2*~^z^Vi zP*70}2OCl+3?%AMXrS6x>aFag3R4P_q{)&IA#E6t0*l*^8@+|13K)2HxxZYcM7l96 zI&p~C>5f^`o086)LP{=>D60_>(TSmJE)H}Jm50<}iKOOJlI)|*!BW>;aO`=*Fxe1_ zA)aKJhsJQNdGLQEjV_m;^l*Ppax+?*XEwF9H%!g=RGK16F^$U{r3qkq)i5(U8mX-0 z&{F`4&q*ldb^=d|L?BWtEgseTFo^mirR6;V{na%CZdHtV` z3kfXn5 z13+dfOKr8a6c(WR!akYNX0VQbN3GO~U8O;69e6BCOpyXj2h2kfsl)x6QZqWXYHe%om{n|UncQ0B ztGvv9xg;!*TmsocQnqQD)ht#_QlKV*@nPJFuwK?!Y=pJpjgae$ZA|Vf9%Ddtk}B7o#YQWMK{IFE309gQeu5fv$mGJ!TC&ibjeeHme1ashCQR zHF%PF&OmL57Uy^uEeT{nt|EBs&>Yb-N{(u2K{|g$!1_va%Sq}03=UM2oPfou^Kq?H zNw3t^RUTw4>=Vc8m`thGKL*EJ(3O>YDk-cs+@oPw6lp%h6u!<1bbKhd3u=BRj=8#q zs?46e>7eO3ar6$<%4l1dZBTfizaM)o_C2@=I)#Np#cFw|%1Sa31QJPStk1vzV>;+6 zDVm@xfSrtTarSVjT7q?ZW-N?f9E6S;*R>=!I1l6?U(y1VySv;uJX>aq1a!}?mimhQ z1O4CuL#5tgxmq2lG77fbmoSpGz=o+6A*ddf_bo?=&JaE=W0R{9|y3bl_FS5L7Y#v#QaVMz!N!yXh9S1tEe zsJ)|LcW#b*V8}FQV7M0xM3fkeg}RHf=Ew?&AJ{RFbm}C?JBx}hQ1i?^NU}+nDpgql zs$9aM5u@od>WTpzk>Ij}2xE0DR+v4Jjt#sdLX`xdn^z7b%c_L|${H-?x5@|%0r#m5 zutGt$+MMB`?tujoz$7~tVH+UgvG!^X=%!Rs#T{_IBmKR%QiHuGipm!RF)!>>WV^2n z&4;uwg-{b|GAS$}fzq%%h@uiq)K!UegF{pYSOt_INM;$32nMDEEerX^28qJu8`#Q_j#B{LrgkiLi@N3xcg9e*% z(#bV zGvWc3KO`opV<@lZq)3^bL^T|Z7>X5Gd0{;Wqf!4w31J_mWO{fIa>g8GzHA`pD_YOj z@{l+peUZ^yiW8?cw@jkF+kt+VJVA$%#WJkmZ!ib}A4dOC_?Z?8fGssIB?YZyQ({m$ zA)Ju#sSKavsHx$6NJ}2-vKGct{U7m>oK^ zt_Pw}NrtOz;g!dsITUij9%JJ~swqiG2xK(09@Q7Y%mp(lsGmf{ybSb`VpAs9!v;94 z?_(PDU9Hv+4&bbT1F-a?enT42m?pGhcLiD`J)GewFND@g;el|52MSf=fpCVWZy0=C zkptljPi>%gez`br82ep?HG#7+=IJ@A&8z0|Fax5Ez$8UrLVG7M(P;G?nAY0D*9mZ$ z1Jsa!C^HH0Qj%d_P-+<3R+t@7cG{X6r;}d^ITGMFf`KZj!5s$vBv7rZz7s}gEzpVdi!b=VK{{acHOR^Y z0x%usFbw|qS8o}Z6PCWg3L{WM1``-cnPyLjvuPBr>&Sqx32w(Ch)a&Nl~7wy;s`4Z zNS$lQofrN<>)1t1_$~5@OO7CkyRVSnQyoAb=pULr&{xJ;Sxa$t7ilLA+FdJQvkpt_ zNTlrmYy+_XvIs8{sKBF({V>So1vO@idd926_4S+O!s9m2gU3$Ddcr>lOm(OU?8M$42_l<}KSP@;?-SHHQ4GH$HU3Zp2L`q7(>5NGV@@gm=; zIH1Z1(l#HnnaE};&VF#oJ4_r)YRkQ+{FP?}RJFQSXeBf_-`>{FA)5TX7W z79x3iNp6s+<|qm3+A|&<<9z{&z-~aVj{*g~DzKUbBTSJvwA;!j*%X;;!>~BP%mJTz zN}{BoMdIZl(uQ;ek+;88e^DU!I~nHHHVL!(D#N^@$}q2?GTbxVPfccjKS)Pa@#LB) zeeo@|kqd_{=%cu}!aryUg}$N1<83N%umB>nsh9?9<>Bsugd+(iJR&;&RZz|1Rq43w ziyT)U=1>R@+{(=0=!CcH_$dcn7*OjchLiRRL!vBr8S^s5@{|VzCxNTB=> z6Nhxqf^h|zf0*|&!#tJwrQYGPXeJg^a2bLv@wHI(rg}ePa&a0QXJY*b56rF(z&KP1 zu!VXFkza8#dV#=^K_jhoL)$b%kOhJJyT`w|O2?AjQ}DSVB5R zb&c!OUTk7UEq70Xg*Ukafa&QJu>+8$fZ4||yHlk3<=%loE{-2-!#Hi_u5x8?sEw@v z^8;_ADPt)Tw_zpT0N~1C1y*onuC^&JVn@KRj&KcgSSZy>x6VOj zAf1)vj>RR4YAcyAQApY#IH|P1PM=$g+hvR*j!eRM<1Fs_#UP2dk z%FP1`AO_r!g$1r$Q&0}_Gr%%es@15`&RXDqWu8_JF-rR!I4{&q8iUIWbhCQijvBG* zNJ}upNm>#o9a|J;A>JzCdUn%mM@@{UP$BzcV7Hu1 ziwdV>BPosXjqX%-8H%GkywgE(pmQ5tYy_!rS)dD+F&gQ*04rvqwUy_?XbSH#pk)|2 zi7E9V-Y(ej!XznB6|ID9&rugH7xN&j3R(xG7a(e5g{o;5ZuXwqovR(NTPePKUv~-(dl95Sdu{#S-NkCm~5& z&l^AnYL?L{q6V>ZGFlRJK&7aZyxMfamK1f4?X0G1O(837^7+K=6j1dS;wtm*vjY#m zVwRNJuf&se6Ue!ROE|iaj09y}?PVdDCUuvGN^pXRbr@u>Ov*~-fYm@L3gA?1QAyA- z&}*;*CEdwWXf8FTSQ>(pBAB5xD2`>0M1ynWBgPwo-F77&tRa_SX&{{xnGjtIlS+vL zS{^@PIhqOf{~-z5fMMPOz&=+Q7HUyLm~p6%KHQ%+1LsP^st(ymsv7xJVIfIP+ei{} zt)x;DJ7v&ZE%R)ZjhR?Wsb0J_mA=$EOX5?V*uK3?<@rf*X|(uLX{v;2u1lvP(j+pH2ZbE<`4XjO&H$tTfd09vI8e zE)VfhLbPqg;$ax(Z`d6u0J}0n5h^fQh4X|cmd}SWFymm+Rd${s&`CvyYgOLjqP8l9 zhOfF9toCdcrlpFoE~j?@RwjuDzY-%+NEnG{1-d52s$@-<#tGSE7y-AWQV2}Q!8!?wcNWuOm8WB?wx)(j@@yI`bYr)~;tLu(`%S}0 zjetHSHf(T=nIYy$!(kt;r)QGEHFiGt(*zN&lnA>$J4T+26PyfBuITD`TD9cPiQppy3a%GSD-#>4 zs`r8gtA@hxzB;x(iBZe5{E&)@#+hfE(b5WPs2&6M9bln{H*`!0Yoe3yJUU|R*bdLf z>`cjXBvtY{s^^!}QrhciZVb`NF`an?)g3sbR4$IdK`S^(BZQyuAyN#ct~f+IisLpfx<*q_75EAr!etKnjS%|XPj5}3JolF z;}$DbtV% z5W>cZ3CG}YXD{@XG&3eN5r&nNHgEYUQMesUOV_iCO*0#&Cj06+I3>lFH?on42=9js z!_M7EanU%np#fa&$rV7C-tuTn{fwee>|!M(E02gHD}*jnqXja^vn4wap6&iVX|_q?-?cV~)@_;5`}2 zOV?c31&|@p#t~K9MB#|c4Tb4C6G+2-D10-9KzzQ2zPRRNDF9lJ)gr6eztEf z37AoY@%AJyl1N^C?}lJznK4WY7N}PPOuruX)CtDG&FOM!t~3*7utp0nNbOgjRzV<} zBp_N=#cm{W52mBzNu6R+3b>mH$16k;sl~;=*)1|?C{diipeM(|P*B*rSBnLjIymr- zTYU8(yT&3*OeD8Z({8KcHj^g9QJLaqV6d%z|JJ4EaF4kg@9mULs;5IL@_WC8iu7J5hDrWjH(;6z7=bk;jcV%!ntLb)PNPI zDwsfFOJJTjwP|oQ8V<@cMrhz?%P%Pv_aP)YI4|L#O=XQO$t=m9$DT`(USjXtd)3d zKtac_r6L8%%MI46l*3V)h^KNxkZ@ATB$ZZkgRGK}$_>&)Zg@tpzlH$?FFg#QcsTw5 z%F{4R9vdJ4GRzYLS>Tt<8&Pi7We`gOVlbYe+9t^E!sh5D$APP$Hk)fK~r%!E|)zP$l2e1ALKyeZ} z=f@EPEdLZ+8sL6Bs|0dQh=DAg#+Qnlj;6;*F{2T?2U#_0Z%A5F_-=2W!d2h_tcRl} z@c_x;-ynn$SnCTYAH_50gD@Of!Nq8b4c~lq7G*(+6en#(1g1D((i6#RRDep3HUCkqJ)DDVUPBQX-@(xb9G1?^!@^}DNOh82QUs(4 zh?Hvh1QWrs$ONa>SSYNrRnRb5GBP@=;wlrE2ugzTC%Is;6D-W^B|$2c467_~$%hCI z46qWa2`TPCyu!CAfX=0~mm(g(qQO+4Tq6K$#t4MzMnFh60wQT6AeJ!#f>|RVsvAKd zX(J%67(wJ8{>l~(GRfO0@kPxO1X2wyAz(7$;2@hfxr~zMrYW$HvP3)FKE&VgFV=8 zq4Rebf=v;Sk3|iA1k5Ukg_ens+FcvyTm+-BD#0Ria2XL-8jyhv2b8F@dj~pU?Sfxv zLl#=!#}7DN49D^CixpKXl>X2hMLro&)q@+MsS!FQK6c%_eiQ}O-W&ihlWcjDAho@E zuvo?ToSoW)ngXC=2^pP$2SroNh&+U?rUZB?u`rc(@|iFyr7y_P1G7&lVR}Ow^kg0I ztOzqSoRUuv=$N!HQ+fI}3JaAEFsT@erXn&TUS*-)f!7s^nF7(D08gPg5MyMQFZj6x zUJIHU0Ue~1t)hN%2$umkQaHq(>GpS`vgS8?`PtiVkN0VAD6DB`f9$1_!v3 z0G`K_A*@p}zzxV#Aus6~=z(Q9xCktn2`?$CR?(ZytFYK z>&ed+wzTv}fbM(8O;k|@B3Dk9 z5zyi(Dh*V!FdwaC3A`Cki;)erN`L}NrAW3IQ6Hq{=!0;sK4b?RMCfWFtm`AzbvR#F z2}X}fJhrrh;~c@Dtjh?9H;rgMSoVYShA?8lYeF!Hh1F=-b7o@=A%Zua$gY+PFL1WT z!$ni8$!8cU1P8}i3yeaD38xWw)lyNF;mL}4B7nv*vN7N?(t|dI9acv9SWN}_9;E`Y zA&&wiof#$qy4B`98QWx1X~PvMjD>C5S=YsNWeoekV_VT`+d|zC5W=y zCb@7cH3{(g!vu79_9i4=RTxE778XKnwub9H_{tYva8z=DBd0_LGUn$p5tOCN2K*10 zl!WkVSt{@BvT~ve3{*`Yji_{0s@JmJ*3Sk4C*W2GcssThSS z2aW*}Iw^=ZnPd!(uzJbjF$iyGrnq>eU|i@)|F052#;k=C+4=NT35>|3lmPNz7mnw1 zp%GSGLQgE8Cnv!X8B>YE&O)Y8;W31q0tA#57as&wy6bU3kNOFuHUtn=DRkY=;Y#mN zg*yjS&PmNMcj=gwtlnt|PFz$Da)*{F%`Nx{H^`KqV4VIQTxGx)|2WL{Z+V~#j<$na zmKVak^dWlrMiB5N5#<~15=g-~6~?f5(uK3}MPm`7VKUPMa|lawoI;`Y1~u5!sD|1a zS|({>otfPUQW^LyA<=~W&x{{d?r- znr%sPZgL2YloHZ(F>vWmO%c|oU1dG>_|B!=KL1pbkA9IF^rXEDlP)?#C8 z_D#hgnjPjpQWaT5a;%}mQBGfQ%Mp7@Rgnv&X-cdQZbyxWV5*j9L+c24VUlW=KuPtG zSW>|xq}Hwk%!vz!ZSs;Kcm(#GPhiaC@~`jlTyHtYJ3Xo%&BZ42XGmL-(P%}VVHuIi z4pitS$nTs;CUs7-bP-DRI0%i<;}D5z5(=8Ql>(|>rNX%qQa+{dr(8;*jF8_nhn8(I z!E9^8u_=2ri!Xa>(0saO*8~`wO0p*=lQ0e=V60u8I|?zP%JF9kD8jr4AnYu&jMz0M zvSp}rE#d`aPjCk(QT@OD53r2A*-*mQX)%Zm4GvM4(*oW(n`ym&Svofd8IWkGm(E)Bw@ zD2wq~g@y_MG^wa1M;0h0TbW4o^H}L3pHaOnp8+J_}=I z%|T%oE+ZMrhAp%v} zq_(B7l$3-yEouOMFk&F7{A^{9#ImZP0&u{R>5h-0uzCpBv0x^T`N7A<>FHVw!9jC) z%QRb6*|-D@MgwYM#DNNb8(YD#oo9`KY`YMWjTF1bl~^8r;}D<7D8lR2GwbOD5&rC< z0jT!hG1j!^sOLk_@oGXaGXvIq$%*T1^w{GH94~$ ziS>PHQR-2nlq`D7K8?`|i7uEQF2;A4Q`{_nIyZJ3^88+kA8AZYUZwP?xD=j7#EG^n zVFWYac!{5aOT`g(R}4*yReF-}CQ(`oeAxmoo)@zU(j!8UWI77HOPvO>9*txgr2P-m zAepaK=;|V241qVIt9YkH zk(|jC`42v8t{WR)KENwKu*HSvC=w&U8&KKe&bJ5-;aHoIL?7n?W3fZ z&{9=J5+JYHx+tkKe`04Xr3=#8l12^z3y#WSgvcour$jLhwgP$iAX;8NkT7ySkeVqt znb;rY5Mz&6oKi}z4Jc|}fy-#fF@l9sm7Pq8T`;n%B`ihg9>{i%uu$0Rz2p=0IhkIi zNQLPrkmPQLc^*rHVqj2b;4eI(kV&)=JCQEZCgCIzMwb#

+vyIkX585UD~e#8fFF zoMKTW^QBr;l0KC*lJNGelPRkTixf#*Nun~SGqlq-woC68#l$;l`>ll`g-*^p9V zKw1<-r7(E0wsleyd)kY(_dpK?lWm29iE5`pyc=nvSA3GfWZ^^w7ETf;b|oi3mt{v* zRRLi&j;T`8g~?eI$Qq>gev~s|!9U{iWF8B%*S05$EX zU81oeOPs>0p$MQBlizue{TqmqM790aaHW(IW~E#t*dyC0HGWoCt@}|~;f-6EXplv6 zRfLkl-zm(cF~f=iAf1%5r!Y0TBbfk+c_tt{Z2|(*CO|N20z%mWol-oARz!O(Ou)dA zO@Q=~On@}q1mvu;LxD6@vq>Be_#`a_hGY$&J`q|d*_DuG5rQ}1*k&nYM+x&&4;)l2 ziA-P@R#Pzmngo3rjzhs1s$^1a>-jpDP2?s6~Oz*S|soyI<}s#1NxXYw~(@sg3AYLCK1bK5{fCM zEX)!3b5b(8gz(f8{>EoM1>b(kr{FV52?a;`AaZmT0%xw2U@1iCO`|$FXQk{Bl(;YY zoP>0zV=(RBYx2;UQb~}1>4i+Ov6R^hO1er~;SncUoE>1+5+huzA(CBpa|vUbxU0<0 z#$|*NnP0ilmBOU(r|wdDLpYhkB{r0}ICz~&3bml6qb!BaY2_uv4sh|K+?ja##f+@_ zq|?ZGC-R7Shl7w%gsM`2upt2D8gJ5THH_|NNhMM`)0r=k0SGV~vWr$p9O#I03ElkF zJjuy{q>~|)1d6|Kps*&-tSKOvg-wEaOblnl5lCi࿎=2y<8I1Z%Z3sh4_cT=n> ziChfPW~VR|18|>4LttfG?MB!cQ21fh6dTro6eJFWXyWGdmAX=V_>%@>#*QABf@{!U zmf-y=Rh=I1E_>DRJl%=W|5tXx+f~NLAtm{iGC%ZyEt0gz2ah%?k6QsA<1nF%y zgS5t(AatN4O$nuXV1cKbt^`*WKN3aJZaJDU7+)2X7EA0KA^KwCWu3HgBOi7Yl5S(=%g!A2p zQF7de2>-)<5_*oA6JoAOk(}>7NXc;@gmc{o2_w6Yq-NcRNVx+CDkUV3kgt6A!3ZPf zl@Ug8pCqR4KJY#bzQ{qjOAP@uuYv&l_!~SD4+cu=2%^wqWx)~KXpAvZ8=Y%n0yWDD zBvpiLhmnZNIGdy3dfIr8!>Peueoe2@RV(HCn5a}EjQPOSdPmFvwTC4n-4PS0b;N|E z#|Z?E+&crA%{7#1GEOBBmveEd$^y~n7P>!TC}n3kxhEmINO6)xSSanQ+(q@eHL}0(jvfhXmnJ*=jRbS-Nfs8@2rpcJ5H4H&enL0HQg zgte?;Sj`%Q^{jC~%NmrBmK7eBC72XXnxd91(G&wvST%qE6a#Q5F#rLI0Who@0K=*Q zFsvGY!ioVftQkN683V|&t-`}%_^75VTnUKGNkHaKMMU-#jOR}xB7*{uITV1*q5x!} z5&(s$YlncQ9Rj*`9MQC6n5rEjnsxx_+5wT3FML0988zH0=bUYR54}J3>_L z5YV(kK+_HZpQ_q+vSOa+!>=IA7sh*;P zB7+%}XEKemjOr-QtOg2QHBe}sfLM||w>p^B3t0ip=*94~UWjJ&0x+u=fEm58Kr(s} zn9)n1X}vg}(u>fvUI=FNLNL**HZ)FAh(gjcy5J<|I7I-4WXw76{(q^S&1K<>0&pE# zS*3tqG?t?2TV#<3xc~7G%MS*G#`F!p7J~f}{~oIaH0k0UKGs?be#OsKNJ$Kz`b(ua zR_0R1k&P%v(n)92Nek6v3M+!Ng;EsEQrJ(NV}@zYPMab8XSxN*1|}(R5Z6NBVgj4t zSGvpeI3yX11!S30P~?{aLYKa7)*keAvqdKOn~ZE=r;~m`7`5o@?qZEXwX43k*=VUh z1~=bK3kp|9QqtmJNT`6{LW61-(*XX0T+$vtX^bVbqQ|}=yX*`kC=NaBqJl4RE5TjYGfoJzHK za9{wAJZ<061i$hf(yo2R$q{l;?gg_Ds{@RPVrZE)-n zFHrIqV{`~a>Htbp5&H2Y4ZsaI4WK1n4Z&r&;=s_HaA3BElhK zJRzL?-~>-Oi=%)nibAHgf&?H>o3t7JD>ARZFLDa}=%|+ZYxJ%ShPYEqn=}si$4UNi zf`6RGKQ7^KtcM7V^)d#0@+9DkOQk#4@OvEaPGbZ8fCgLD%!iAOEu%6ND!2>^8O&gq zdjQdb4Kv_XvbN?9{#-}~rKY7c43DSbJH*Z1*?2lfM;SJc|3J!&wy9Ybrl+n_uAbD; z{7;Q^j(m-D9@2<@3}w6K7WhR5IA8{sQ~0Kh2#H_0;Y19=0e==^wx?M5$+qqp3EL?+ z;oAxKOv{`bAy{amU$;q^_#l7*ctwYE(`_C6d7XrkBupl1>S%9lm=5Pn@R)yl)3!6< zm>X|)Tk>gW?R<(RuzmVA(Dt&-33i650vM8x*j&V>4jMD;CS_v4%Lve*WeJ&-nrZ0B zZe^#0q%>%z9!yV%bzwS&Eo`nlS|rqY*=pUWme!7DFm2OhZV4Gg6=VSOj~9KYw!xxX z5)j9EB$c00ONGTLH3@^8Btj~9-bs=mF<3n8hVDv2e0v1Lxa2p`iI0~M8H12J*e*n3 zXRTbScFiej0k|?rVcbVYCjKL!$tRarBPtF_kkmsLs!=koK{A?x!SNFbQ!7CSS}-C% z4^E%`^dJR(Vy5s2Fnz<@6}|oP6LKTJYYYZR#>8(twSqAzr>vwXn8*hX83VsbDBi-F z*wEhG*wzGJU@CZ5ej#k7)Po)w8j{j5{|&Jm3VCx%2-txo&|P0iOTuO$M+}F>X`ZY= zQW%U4*&RV7y?+D^IQ;Zt??^1{&C zF@q13DIH|upc;=uN!+%nkhGE%g=Gv1N#<4 z1SBm1J9Vf!IAh|uBRL$V$*RO*h|R}FI;18_JX#`zXazj8bsKmMDP4~eG?ABJQY2iD zoC#x!sjYl;MXD&Eh^#3FIS)QP!?=hgUZG_BI-ll6L^!=qGvg__t^+DRI=)YVlUq|@bt zaPJcqeG>|dwCDl3;h}*ZxELy`AHJtbKfA|&YKKgufc^ASe`yr&1`oq93+>66Y0#Pq z<0U+mhmT^33x8+`PE{s~5WwWpo_WHB&yMl3qp2v|YQ>))WDNBCG_cxJ>Bgt#7>1`S zRi0|ET2tZocA=f2tIv4YoTBjG3K!qZU-0m@K-e!0(V7@R@S9lBRO;tu!0NTl4SMXHwJ zZICjY?N*XUGv;O|lOzG@bf7t;Q_n(Tsn%6L+z+!uo((wUwGewB9)w43>*3N0HKH7% z1qS$8OTi)+90Z-*M3TEJ3G3`W`V}@2lLevigy}Yq%%Sc|PmjbPeb^$c*5m7+f{*D$ zPu&WLtyyq67=Q{5_m!Z17Z^OHS)E_OZbds$h^`;ANizr>$LpuL`aF8bAo z_7P}!A0sE#F|-OZ0wrJ3F|S+6aoWW18t4pxftKng}`iBc5w# zB#fXJk@D06FCWcTYyVf4@h~Wk9`Gd&MgOU-4U^z47}m2T9>iht6n@Ax8;Pj+yN9q> zo27!jIVe@h-T`dnGpP{`kFMvF%J7p3BT(p3q7i5d2WkB{H#OEU=8|aRB3~rjz=WEd z#AyWokHg~G~TaAz@WJ34*jFfYKnOGqMolW8aJo zo`lmyCIB%fLE?u;-sr(TniSxZZ!$y!M~N(e#o+QNJt#Ta<)Lw8zz}UXivZtq#vs1l zR;2DtCa6PFW&%^v5~pecLlro;gsYG!REKb{69#HTfj!kCY(n&Qmb&J00ES37=f`;9 zu6(f+Lr@>!_mkzjTc{*)!4$QNRR!ddYLf==03q>EK>Qq{g0weGXZI$yfwe*r9d8sC zr_Y#(y@ZPKix(2oe~u|(1w2P6+=WQXl-rBg>&czkL=axsAFl@|q=LoiZOt?3@RGC# z+XP@S(lKg<`xo7y9Q3LFe6Fp#u^*pBrK$Ph=3L$!O?w| zHOIw}f6`W2HzRxmSL3v-RX8Eza)^)UcAS`3QjCwZAKnm}fKP8i)1 zU#%F41oPzlNP{R)p3P11(A*-0(R>YGd`JtFgjy~oH(L~kRLG4}EA_x!G*1D#t(qn9 zeXd+W)&w}z?kvq_by7DelJHbkN>aAel;Ve?FT&nP3!FxW_kOxWT!e8ON)7kGa(aJv z?;@Nrr+GCRE{Ss;P>xQ+5#M= z6aOI0xhU6A(jo$628SKQ3L45a&$HDb4#o7>rJKG8{+@GI3$8`lHm{Ngl%qC)s z)22)wLmG@@54rKyj)lNrNn?i)PV$R*oj^vBNU?pZ1|bRZ25-5;YCL9bTu}t^sofO9 zpMI059t%V8tK+@1;pcD#%iQiBRrdUP(mSOopiHvfUXL#}bacS0-f*Zy^e7yf2@icw zo|S-;ny27FFzG3 zgcCS$Zdy^csfA-oT#h6W`LpHtl)iZ9oZkB&Q;#oZ$w~rQqD(1EN|J1Af=990I*lSs zL8;BbJ#{SZ@o-X1@=N&&mMd8J-FPbJCVs$@$-|NdM9SjfL=FLM84XofsK{Cco(hkm z3+7SVre}`YzK=Jsf2HvPI^2Jiv+dSSLrKvl?J)q31t{p_NW{Y!!EPZ17~-2l=tFHB0R8D z8N^@gQsPOBFR)30m>G6pBS{1?I`x6s)zc>uYe&ZO9|Xf+pk=TsTjVw|A+6W4M6f-d z#BKv5z+`&#Gzqg+N>UX0XR`N!Ii0`K#zX9d9r`U?Rz{$-@GLx(%-Hz7DIS6)Y#ip3 ze5D$ZW3ucB3D_M=u{;K1d^@6qza+-i@tHKFjbK7as;agkR4;$&kcs^U>E|TyKo?7f znswTeqU(MMnkXxB0IcE}5E&N_jG#X%@ifoHIO$xd@)S2lHX#N+$*q|Q6_lJzD@6Wl z@+r?3GjJ*xICus>Jp#wTsWIWwSoceT3Hl5%X}!|~ZqGC28Dj(@Hw#diyK^@p zVH}b1c^IS6FCdB-Vku!#CLzPL311X0D;(rmeelo(Y^Df7YGwxI94=N>L04;$?59iTnvt?CXwhZuQHuJRKX#Q1v&}79al@?{Q6@W&MF7R zN+*?I_%K2orW$mAU>G;lc;@1vF+^cl(_O{`Y4Drbcv^v|xDO2n4B)qnDG1Mk@El;7s$Mc! zD-XjKrlJSTrOHA~QaWTX)PWxnA+Zv~XY>YmmhiwJocJaNwyw$afP2I0W%M=-Ygfw= z5q%kctJl&g%&)QIw|*%d5!3}b#!+pJo8dpO1-qk;-;&l0%cYa>MT$1@#VO9Oz`vKLltbw zpr(pcsm<$xYXy8OgGq%Jk7b6)-F<^&xO61+%~L``4eHm5)+k` zas!w zn1rT{DL~Db2B2Au0l1jw-j9@qy?isSKJtODn z&j^_uFgVErco<$M!}pb7%md8{I1+EI=nEgB;4qGElOYFVB}`1BiI4hgosB^%m;MMX z#siOor@8b_hA_1$Cjc}ijVPeDJWBTjw7ljUVYT_jaMERB2wMsqnlX)Fm!Xq)$PB_I z5u)LO2%SP`ZR}`*gI*nNFtg<(_;EbsQGVbEgZ!0Q{8VZd`y4?OCo<0x^&t&1hiYdF z?CMZPhoEiO0j$&QjUC0Q&0;ZMhL{V;Al(AQc?lxaLE#5=LeRmL`*D6E@G>u0+x)l8!6F&;VN7o5kZ_oz?d0E2?F8jff95B2nN%V z!jFMsSY#KQFj`W?pPzsy{g9UA7hC`aDSD;|Q!+(isVfNpi0-?pwjfN8HilZ+#1_Dk zXA6X-d}#|p6I)>BP z!2p#N<{S9ZrWPI5!>UVrVfY`POVB4xBj_ucK~RuS9^e}vuVa6bh=8$omN-G-hS%i~ zgvTS<3N#Ohgpi;mg+LM=AG?DX@F$6m0TCU)6K;G054iEYJDC^;1UG(bi6J1OPivmm z1Pxy=oSMZuP3;t>qm$Uas9`+Yq>!;$7|#K?KnC@jqOwV(5|;rpSh}g)uN_q5`o_Zf-x`K%CvehWNzGHvL%xT;W=zu;N4}7S-a5 z9Uy~ZqvG(qA|6eE$yNLIaOw&!Kx+Y1n&YH0e$#jeZbHMOUrke*+8BcX@$dx25WsNn z09-_2P$HU^rZX~7M*tHU98hHlji?3enA%>P+@!oMpaQ5ctjjkvHqK~kXq-hea5YTY zr~szcSLvz_)UJoh&vKIZ_#%k&3V?73z#IG;7!C_#kLaPj{he zL$wmdptrdMP76SEa3zC~vJ{z^un7}9m^Qo&FkCHl=^(p_t+L@QVYsM=8+O=0<91>N zE~{!RbaN7Xj;>3p6g*N7Yf_a|D#APYq*{wXduO_QSO{l(dw3~-P6?hJRb!}BzGI}4 z2dcQ%0gkDHq*Dd<0HEe*_N8)TcusQI{XvYhv9aiAss_@hwNEKFPlL1a za5?~|&?!hbtICF@k0&P5yyUPo%A3m09aDwakQmP7rA3e{&sE_Jw8Ic|sUsifkUlwidUsxDW-!cZss7d`%-o zVyhY{5DzNp5IKj?5G;W|J4`bSg^fMTpa9I-aTKY5Vr;`9UOFf`V^y?z+8Vqh(&;0t zrH?=+eFRhKvrSBXI0k+(o~a7Y1>mp8VT zd_L~)_5FQ6ukZJqd98W&de;AEt@W(udDhx%r_{iuot*(~o}ZDqMbQA4nFX=OWoUtD zLDm%rO3!hEQ5;De5^A7jv|bjYNgER6H-Ri|&f@W$bfGri2?jAkeJU+kRlG2|0Uzu| z8iDP6_}XC09M~6OH(t1Hvl$sHIMB_sE3K`9U=3IoSIvZ#&KWpqJKf*mNwWn*AgKv% zR;=d9;|J5AeA+y^9Tcp(jdv9nHy1k~;ndQ;>W%FK+U@nDoM!uRXcM&+2j^2t1bZt5 zgh&Zu@^MmtO%s3I0BQUI9))PLoRbTF?(O1&EZjp|eBAZ>nYoK}+U_D~XZj~*Ai(DB z$v7W_PZwl!`E)^kR-Y2?^81t!o9QRx8Rrimlh}VC%;muWtY7R11OzyAAjFeD0%$q| z1AS-Blj0PdkIlOo*h9tj2gZqurGq4GXVHM;wVj5gww+?rww(r~Z#xZ1({_qZX*)yK z2HQ??zP7sy8{VElh`R{5czcm^)-fO6xts(u#fNpqwhzU0ykIPw(!NNvbb3;Zc2pAD zGTo)(eIiCu3S28u!-j$NUPj)9qs9cK2Rbc%y*r_>D0h(kLIM~sy^gie!dcC+p6O76 zR22xfuL-eZQ+?h^$@Fi6+pX<8zUh;7$@kdd?%pIG#}*FH1DjZ+a0gp%SUrr@|jwF8k$;ticPIP#imrBB7d{`G(t-CDblMxWu~AvfNyTG z@1g*U%y9^&mPVkdQb!)e`kFw!-Y}y+Z`gZ2q#$E)WZt?p+fr40ei);CK32cNq3qmc z2^mYDFtSU?_+i7x z!FFmKW1Srrq{2mlUNtD`Ao^F97T3_j5AKGP7oBc})Ww~QX?%t#no2(xlN^mdT5k{Q%N{$SxLeUb zp6uMM32A3YXDzF71-qTjkHv9xpEuCSHve~9S(HPiD0ZlqCb7KiLQlV!Zf*Gd;F*4J zQf6!!^@oFP_!3jL;q#&ye3GAjHpYs9cbbL|8e51R7Ip|H8OcPFl&F@VV%y2mCZXaU zRius^Nbjmo3iR6SR?63I7l#hT0V*o+CZ%TqxY3?o+LJDbt;k6MF5%qlJ>t125D-V% z(v-*o{3Wsjytog<8%EZdUW#&xa^tuq4Th@kPeHwIZ0hl1fv9Y=s(pD09IUPFxfwIO$8nMpRN&CEZ$)Gc zWGO0i(yD13A5D`d?h=IvN8;xqv3@F|;L8K(|O<;c-X908C zW52%>tjuxR&g2>2$anHR4n>kSZvL)2R-Sfea; z6mpdt+rrqZCyT>oYPwdkfOPFaK(fr|=1;@y*Pz&LOCW&CfJro?@lyyuM~_!!>SNbd zdwJ2DC0!r%v6{GVl32=_74E();4LyP%F!zQ%sO45%dEXXmmhm5Z}xdOIyi%)G8pDD z&LG~;H@y&N40sr~>pc{u=kbbU{pRxOU>bjsNosI`F(uz0j~#ChAn0bgA3-T@>w6w??d)inWyJBPU}vjK%Pl#q z$d1aaOa54FYJ4)!w$Hmd9Nw>P$P-jI1 zf`T*)1O*93FQN4Ea3nl>fYFb(E(q|&bL2W!vUT3kC&Vyp62U=g$o?=$dAU&PCpVDd zn6Wvvfq|f418ET52TPyG2??fg6+`P9UB+jtDr~`-wII;b!9K=0X&j!lc{_{jlWaUc zH5qyBb)+4~IA9g*4ir>x2+lTobh8m?9M3LWva(9XQXwfh#5#P+O17hym(Hcc39tw| z$ZeVJcW#M4UVJy)C+OKp(H0@KsxCIAs+MTvS76!8!yXBk*R7!aqT|R>xkG$52m8V* zAK|R)Bq=Ml2;=!}ZQ6&hPtY-1*=VQVZLe26yT6N?6a(49k2fUgHC_&SO#Ubw5yY$u zBK&qNRN9I~dp8)3^|vRS`Xd(Arp42qvaM47d|3ykPvD!ZzWmc>g1rt$rE{XX6reW5 zBx%e=IaG8JE*)*lqjmp;)%F02*4yQ6DIpkY$4TRIHaktS#f%+8V!Y6`q`4+Q7G~+d zn5OLLKRqeIh6T;e=8WtOdJpO2i!74E7O4m9$T~9}EW;byG!pA;`-_flwhWo1q1ut5 z$eum#4Mk1f-94h#0`YhfIPlg455ISu)N_nmULPTRS)Lf~;pLc@}q zPI2kmM?(S{C##dIaXLOvxA#>^L7pV~}3y^(}Kyq+uW$92wO_Rp9Tc8u>8{R2l zLABH&jgxU;3Ix--b{Z#*HyW*oz7c65XdnL;1=#4oVWi>;KLKz9ki~6LCyQb(1_?Zj z*B>;T_JtP)pS?`cFsGvQ*{x(j;V68bjh@B}ELa}em%kg8mg2MJd6BIEb|#ngVsc1b zO$|MVkGBNuN+xA#hg(`u+9@e4%o+%_?k==BUvkKC=zuge73q^4x8ZDc_gf_bWwE|E4pr?puhWy<4rImJ@=H?2 z?DJ{%+0E20wbOf}J58S*Z(yNUig4uI>NM9b94y|t>pxAo)=7|3e9NvZU6IaqZ@QFo z=`J@u@N@h|v6`hFqDxGe2PF-+PZ*@B6N1tVNSY??Kz0Lu zBc1(@ewylA=VsCb*gci5e(V5Unj}84KhQz;*`jn=r5#UH-uCu*tgIL=IGZTSnhXA% zlUEwXwk<O3W8(0TKB3%0`iSizeXX^SXqUfgw3z`e zJ}$?as z)RZ2N3?%Xhn}YVyH#Mv}9@iX5aM5n0s*tCa3|7lkSP7Qz~B-78F|Hnj(6co&Ug*6CBtq@z^ZotZXV&LFsWavD%Up1PijeXe9;t%VR;wHdBVI ztV-leqxUhg_Bg0P@oDr`4-e-zF0x1#g5AZ28(+PMfx&9ea+V;~+Ge3)cC_yF@bYl1 zmMM+%eHz<~?Vkqz0_)20s=N~|zy(pTP*hb?YqK|aQw`h{=?G^`h=ifX9?K~~?%9cS zA=rPM<5nY>rFWPkB_Rz;pVArdfkFd9Aj#QFQV^C0pkqwA(3 zwJ#d;TdF}Equd)1_H^_cKWW*nQ638dUOaZo^YG5$Y$jZLXz%mYqkxC^CW3_vL~{imI%81~+fK2FVF|+4@)W=@@sU-D zeG)xQ82cu=Z%o@+F*I!o9W$`(22%P0eG+&|%Gq^TYNz3X6nnJU5vUQ^w?g=_tU#a0 zn-azluGEwgY+bEF>y$Q*MGb#r-P80*+f~+96}XABTV)|!pEaHQE1=EqnF3)Ei*|g{ zz;;mnfelY2cCh{RENtD` z2)doXob z@X6cbK(T2<4_DEweOUm{wxOLWIR2y>_|a)n`_7Ea5ox<<53npPFQhu){2HDgkIQPN zm0Nw`N8=LZ>6TpOU`vYe0yBMkkP^^AvZ_t9UM}+EQj^=|Tdc;3T8_JFShjeVHIOd` z8islRg_mN=K||=ASWMH0;8ittbsF8bc4O4itCJ`JO7X5Wy&T%tE;r0)wx@NY_>}fi zWJ)U-GF>ZZKvF9xDt#*gA?aF?B-^8ol=8lQw!Qw5<3;ihyC60oLivI$9(;-W_A-64 z-d?^WZ`4S(TY8E2ZZmtdf^kT)7)MKsa`DMJOP!%|PBFe@W!=mlo+6qc|;`cx&SQ9voPx4@(9Lt?*t|S1 zBk(Ys?(_NmmutFd*qu)~gYtYea8bzx77Q6Z7GIVcQj{}tqL*(0E@cZK3KbzaWw42b z6Z3t=(E-jzqFbl2BZtE_Qjn9EoXyz6!NHv9Yp%(W#tknRj`jr5z7EEx9!HHCUO3S@ z*kBDEt1)f}J|}{MuB85VoSi#)mXF46o^ppKQ5`-xQ=!TYc( z^9{$xs;~_@(bs4s&(F)5Sctb8Se9OPNnUG~vupxiWlh1b37U$9H0U6msq7$}FMHbI z&bdjamEL#6setK3!qE`tneEJ4^KHmr8rum=`s6E33Y7O@QyUTNIsaFP-L?dfb}hV5 zkz4sB*V_$usy!qZEOAWXM0yUF)t#~<>jNFuIP&?6#)aG{_9x7&ucEnFG;$;^z-1Yv zMY>r`z~|g@hvc&Fn~yEXxzH*+z`bb;{0M6-p}M7|SOIH&JkG@p#YbE!=CP7poS#R! zNN-lrhR`Y}4KmP!V(I5q*_>l}9_RDAw4!cMLH-DQ`!5+a+`^1191hwJ8OnU4@Zn5r zPSSgxJQSOd7V%jW>bEW-^2HgGXU}sMWfT@Yh{v>4=7)zKH4Pxfg0J`y1^I(8#Vn%Q zi3;-RXJCVo{Ke3EVokF8%1*-$X$1?zpcsdC=8dxGz#`I-!S0*%axVaZ^H6W6?S;c| zUw|_V@gdm|+bCl3;q!aw7ZrVe`ZWh@WU?!gLm=vfR=aG!^Wj=6FBZMX{*bI6j^RX%m75r?HgG>MQAYZ6;WZptppPy!QwobCUq_ezE6@z@*TX4M=xiMUN2i6)0 z3tlQ#b^zn%6U5rZQ)EhR4kD1$MS3ayUrTWc_I(J&LwU47dC4n^4`pW^xL=&*La(8w z_lsK|dKa$uWb+r?-sD_3%fjIIUAUPB<+d&u(;+gj4o9>e{qYeJh-Y&k77;wz>1xMs zw+mk1U2sm7oNK?5{r+5>I8LG7-6t#+)tB7|>*9nYuf@%nt&x77m0e}vi!#>I2v|5< zyYV8v7fj!~_xbP!3?0^1WC&|6?{+ax`(1=h0OogJHT80FQNC)rjGQH+KJX*F$>yc9 z58=CYak`5opgk0<7{vrC=IcZ|30sQ10>BzQ4-O)DoUC~2Pb=dP!UD5R=YldEctr_|d zu4d@sf|{X=#?YW+HjdY+ESx3RvS&wf4QPwO5KCL6xK!1UVwohGq#81Ol4|JSl2k(n z?F?Y5JtozdUbWy!-UX}`uC_?id)gxNC25Nm&eIlczpZ>)xw*Qir7f~3fi*V;!}v@p z7L39{I&;%OING8e?q4I5P+lfXBeX+pZISvsZPD`OkMJpnHp+Ocqg^LyC*A^MVr!6M=sjBCog4&{krLwE5Ev7@dS)^)v{CJ|CBJakjQdvvP5cwirNqvnq|YNMojGiwrrWuwZZwzBG#BtQZPADEv_%)`(-u9Pt1bFauC~Zhp0;TFEbY+pc-kWKTiT-cXlaW+ zzpE|!aE`XiZq+3}M2N$tytzB+o` zBs9!lN>CSd371ZPbqJ6g7Rb&|8_g>zS$}1DdHSp8b@f+aR2xSAS(5roXyRHphc<=<2UD41T}B;7mVo;8CbAo zMo;U}AKzAe>`dMDfJLG#9FVvE)n-WA^|i zd9B6R3U>8ZCn=1q6TJ9ru?%9U{^~}iH#qn`mYNvAI9@#x|l%4e4S`Vu=H0qL#n^J9;&~(odk4} zdve|0>B+5y)86gLZHJq%8_x&Nw7Xg%J5pLoz!VR54xZC>>?yPLWeLECs2O~d&aP2h0om)n@GtMR4tjUDihPkC;x9e=ey#dG-AwRUIIs7lpCS3k$glj~7o<+V} z5%-swgzH;QxF3)U!h$?Q3rV>>WKO@fDW}0)Cst6M-VQ7G=D|B z$55wNK{pxoX{8cw49Ytbba@i=yks=tK0$tZm~fLz2$zR8yn}qgplek=;npdHdkFb8 z{{!I+#P5mxyNn~;w1I@XE)E)ZA>4`Qqc0Gzu$XWqaPM^^TtC#cIp~(iA>8U28tIHN1!7QhWd*$LG7G_>{Go`m}deK-!Zu0WY}=$mTfe*>Q1 z1}$GfySpOKPe8vc)O#M{wnhJTMjkCd!xK=iQK-kesOwsk+ZOo`L7S4t)Bhj-BWus# zsB89L6xMV@8;&f2!>KfxJp60yc#Z!>Jb&KwnbQ5cQ+pRQyw#ICl-rTZzpx`m zhIiz6xO_O$(o3{*NV%^j7+z15tMdcb!97X$tS zumNx{;7Y*v0UH6|09*_B4&Zvg_W(Bm?g4B9{3qacz(0W?I|2U&|8BrP!@m#kRrn78 z?f^XA@B7(VY%C`dSzH6$dN>w$TtBWQTpPF!a0}<2!R0T=;&#LRiXV-0WbrAY?Cvjf5Pea6S5q!X`q< zt$;gG1cmzu$=i?o4iREfh}o4z@!)Peg;~u=HidjMGK|9PW+b1&{AOeVg;Sc5DHK*W zBV`oUHzU;)+CMt<=EC0sa4{gAnhk&_0ImjX1-J&VHQ;(c%4@a&wgub{*bZM_+p@S`0385(19k)K2iPC5KcEIU5HK6?T);d)18@Rh46qt78*mX| z4&YM2L4b{bg8_E}<^moB90Evg&*FvxWCPNA=K&4_ECU2!zk2+~H2fd?`w1OF>z4)B z0j|0OPa4iRiQ~>ZiL38=lG_dhk)|X+#VxnfI}zI;r|OYNH_A$zMLXF3<&O^LN72=L zdUJ=szsZL^xu%*duKrLKcL*}%5#Zd7_yD~qfCA&WaOAMlTG-@-lKn``>6H+Ka7 z`YX}*M|wNOJ4F%7n`pa+7ZC0MWQVOi2#Z6j^DqWqJ>b4?PT{H#ox&Z0%lhsV7QU}} zSB!zK?0J1N>zQxamAiosT$-WXn_MUQj4{h_*0b|pn$(Z$f%<1Z)stH`06MAx8?B@e`cJg+hd3$e;AJ&a)9MO&22}he&kN707TOjTV;P{b2+#2Ax z(Lvlg;MOPMHUigF5RA8-<~KHoJ4k6TxgVDgR|;ps^@r;Mw+r!Uo%bOPe+lXf*95n7 zQa7#|t_hBm2J>^;cs#hHT_0}e*IC>yz`bw>;b`0`z4~w!a1C&);nu=6!8!RH>eq)m z2FIP%aFo_Z0J+Pp^7;ZwaJ0N! zzzJ})yfVN994)UNumO&)&y9fV;nJ0j;Q!XIasKJtdN?O?J)RqUeh1IswSBn73wpEm ztXSBGTZw1dp0#-11V`JmojwCk>9-HhJMm20a|qA-@J!p&;cCoTJkvIC$dg;xo5>kj zz-w?+*2o8(0{7o-TN(P2zo8FT2G>^@xeRp1?{Pv4u+SJ$AwuYtW~CGuPf`j=tu)ByswA8sz<^|-b-w+_#R zfQ^W={+2%6QarD3=)>(o9-CJ5;U)v_L%sy#Yc0+HuRXcBaO>e3|AaUd-ke0U|H~g8 zOO)pH$G7akO}Gv9gQI?mcjoVUge8DqWQS3_6ULv=gKGeOtsO@DiaPq+iLgz;@36yY z-#KAis~+5L;1Ahhv@ae0l8-O~8p8<0>f+3EnkV172iF7mfp!?}cPCvo!g%1b?Jz2D z(s24~M4tJ;m)T(!_V@j#^&fbL#ox05-PC+5(sCXA*{w(q3iDf${uEAWMKlVtT9ZNw zt6PyW3i;M#E`{~2$YKf`T9HNy8(Wc06s~VYwo%yBitM9sXDf1q!hNksherSpwIY2f z1P3%JoYI=)QJCMFOr|iqHKDp4!7NX(cvekI0T#g@2W$kK2Dk-qI^Yh#GQj!`*XP?Kh56kgx9Tfo-9ad;mjS1 z@jnM+W_VD_1&GX0$PJR|Z!Pw-T-iZa3V1xWjPdg?^+RTo1S?+(@{o zaC6{pfm;u^18yJOVd}Q_Bj*Et1h^A!8{DICcfs8RXEyaCg>V&c^WkoQTM73N+|zJx z!hHmH7_K?u_kcSWPJz1!ZZcdATs_?Xj^6>$vn9%Y?RV03KF>u4+qHq%2 zxo}xshQk_D5B;jX3mjySdgxyD|4E&kG>6cp&`bSDF5K_=mHp26?<4*} zxJ@tqzH;Ux&1*>W((g=n+RMMM925DEK^hINAKY#5Hvs;C^49@wgL@P109=RdXbZwu zBJ42y=K>}Ge}Vf?eB^ zCb(AV{GQ+ezvuV; zQ(pWnn0Ip@!#sb|!yTr)e|dQ10Fh{m2yL;rw{u_CEpMxyi$| z0WF)5w!xQn7jRurZnrI7ylxm{t2ZLv(;iL(uFK>7$XZ{#OMn}QGLHFh^MR`ej`!7N zHE}In)1qNRpeGOttK9Kz2puWT3I|R&O*l* zgo?z_`K1*w!hA(?<2CW=<+X`;&5$|q%0xj`T}?@xJlcFrDt0^}O~6-I)g)M4_@5_( zYvxraa!O{`mDj`vS5+qBa}&VtweVx&74hO)2T!(J*xYz+qNZxzi1F(&|tIdC|h;#!G0Guy11d2iL@l z6LFe7dD)4<%4aC@iG?dDpI%83sQc>{W=Lh-ELwr`(s)hnc#@MlE+>DuL$`@!aJ(il zsybd-kf^GOlarW#a79&Z+(M9n3_~-aG0Ufwm!KB4!|nJo3msZsS?UXQ0?An{G`Ft0 zf~E3Bu_;Wlt@P;SG=XF&3k3mF1JR;t)Mp+UJZ55kq1~Ky%`9S<#A|EEqfS+q6(oui z4#-Yv`WDpw`7se~c z6eGJ?WGd?uYs{@7XvG{hvrxjXJ}GN)fIIOB?I%8RE~#K)7-G=yb5 zuR2b;wi;hkPOFDRSJ04)t4ixCFdk_(sNV*PL$8$NVD^HZIJ?y1;<}1N`Jj1;cwyCe z48Or;#Wm!5!bX=}{G-i=qVMy{r`8nL%p)(h$g3(YwS76*?eP0i#^uT74nc>Jxy{)4 zqhpp_&7Oyr*VM9_BlKp58Hwpkt3IAIZ{<{_u*$6;8P#%hUA$&qe!PYajLH(s^*S(t z8ge=LSdy(R z^5VsF;wkv4ErwSjYH>yR<;j6Lm8AvM<&~^{j2x2Z z%=@8aR(w`THF)tb`cxYS7al>tY->u&YRETX>4IVRgWa03OhX@jHajF~0w9Dw^#U3rKU81V4g4{%(DobWnc`ooi`qN?>vtLE~9#Opam5Kej^4ts=RW#KSFXDw10mqye?5*QJ$FRkCIf28mw4J znIy%a^RAZ35dLhEYf=_3uKulXUvK)OC6xv7s>~l8RA@533I+(JU-#*qS2g#Sax z7(5LpqsU13hvWZHJk#GZEx-ANp1z=eoqUjQgfK8s@M(hehCP@YAx zQfLa4V*ec)7lHy+C}k$fqxwjQwKJGca%+>@+6c+A8G0;^TGJZSo~}l_tai{oBWZA1 zpqGw6jhu&4dAJaI_;_O>2W?8A|7p+Gg4S7(n=9~_S?>ik(uF0f8GA?Q z`6!-w>-jOEMx^h6bpWclP$kh*JM_6*82=iq=T~T2z9o|#PLO1&M7mib*_OXfu2WB; z;W(vD(>2L7uJ!yu1kc&l^JDxK0?D_YcTjwT^=!}=xCqX;;=e(c&iq!ec0hyI7HVDf zNye+j{n3#$|0%7&T?wfaZW4cyDwVD3Y>l3o?b3{p(?k73IiUrit)W%o{o-R{llZ>) ziTIuPvv`KoR}!UcX_7QmnkmhdHcKx_Z%TWmqf&FZliW?#F9H{@^RALMpQ7ll{C%0jEL4^%o0ON750tN!)6{-yOdX?MsV-ITQ#Yxf ztN&KpYCSZ=$Th|ola0%b1;)+BoyIf9Hsc-Ru+cnxYPe^(fB4dHSvV117``X`VED=K z*6{xDH{qk<_GUNpO!GWbH^-Wj%^7CGyxIJd`GEO^`L_9i`K8%9a%yB?M2tit<&pZx z^2mdccOqX!nn$}t2Svw6E20adk49gN{v&#b_G?osvKF9^aDku-QQ;zCwD1QZF3c6K z6K)o66Ydor5;h6X32zAdgag7i!ZD#msB@@WXh6sa4GIkpjSF2GDhpMG&Xf#kq;!e& zM`?xhp!AINH|cw6f?O+KCoh+`$REl7mOCijl;O%F%9F~Q%BRX!cl5wgLGF0Q$C>J{=Cd8E3MX^yadcL^<_53jOZK#(xTD(G9DBUEj zmL8X$Mj!2xzLXA2zepYAb7WpN<&pB&@{e*Gd{H-roEuOqkXOYqIK5?>bZKMUZ!86-=^QC zKdHZ>f21GL={f5P)aMfZZGJC*fIrN47P<+2g^(~@$QLFHGeEzaggb~9=WCRuyUf7t39o4 z(!bCb7@Lq&Mfg^Xw>{>($m0aN9 zUYn!cpfzgGqh<%S6ZF&dzv$oS=NP6j%$Q_cW87}6Gn$OIjK1OgaA9~tcyf43xD=zj zB3zA;{z>cyTFlBZx^D|?h9 z%0=oV^#S!UZ2)>{h5m`&$;iPh>JZ*+#%O*#&e8+);D_>!{Hy%0{I$Z}!bid(p(n=h z#Lx)jc$TC{W5KCrOAXRVnC0biM7dO1p@h{()i2da+HKm0T3@5TG0@-*$@ttDfm+{- znJAcZ%$Lkgm~HbT4bfH6wy_bh*JGc@ex&7Qw~^^Z<)4P`@8lz=y#GnT3@9&<)2hs-Cge9v-~ePrrwG<&|Pbzw=y~#ON@`hhr+GQ+2#%A z@aQs*m16^+CHwfE>W+5#!BGi}7 z(W&C~;(GBP;sNoXcu4$SJR%-LZCXk@6^{b7Cj1P_Pjc(x{;jD09aPWa)9{sf3+-x2)M@0S@86BG(BMo>51Lc?ThH$ZP zZ|I>=Oq_vvv`PF$>@DR<`BI@Y0qqtr`~NL>R?b&T)CKBf%&d2{*7{lccs-$yGRlpY zjQ5QT!}G&;ga=?0HkgsF}Q&XR$Veiv4NQDnFI>)HYBd#!^mfbW*-n~kqggVONr z;q~Dy;A?$N!`x$jVRnq1h0(4>sv>hDH%C@Q)<<5Byczip>s-g^IZ-`&QB;W4#TLaH zVyj~h#GZ`37yB2jb5m=w6reqSI^UZY`7ob@+E3lZ9z-#`=9}KM(+ekyCF;bC~ zkQPXfNFPZ*fhTO1f0l1lYSek^-B`VKZH#u4c9-_3_PV}L|F_-_{Owlb@5V<)YpmU8 zheu##t~6Jf8_l9fJUSKN;UY)^--i2{Q_V-sm(9PM@0;gGo5gZtC9&&b zD`LB1hht=4YiM1BT*NQn|H|`1sc?m`Qn*KWTxb%037siU6@L=%kXkBjlnx39sim9J zLz$#bRp)B+wR&xlwpd%LHE1iejVSkH{a^Ys#_LA0xe{x@Kcc;2{n(oP1h^bIgm;Qi z&Q$(#{shPgFA8%)%R{ob9ld@Ycw7tROyzG%Cyd(5^tbfS^;+Ygu^_z9ydiRbqzN)f zyXeQ!ma&3Z1??BSg|!&}`|!E^a(*3uR_M*p*C8UFCW>O7I8eF*az&;5rd+HnP?jkh zlsA+QF^+nvIcl-GL48C0P;I95(sHz7Z8qrE1!HG8Mo**uEqdl|V=HE5vvB9I5FQ;a z4sQt+q2rRHMK2&4u6th2suK5P$9f2oDk|75<}BM zSBF-Fc89(Q{SayaIbxN#PHL2Q%GW4&YrD0!`uX}qeU@Ht>@hnpa`EXB-S5nGAb+ZbCDBl&HZOb`-up+_hy)E6@Rzz`pjLjABx9F=-P z>f0>8CXZFhl*`R+k$tGmfylwgp~&}L&G&vY-?6mj;6756GX(&6EksWMzs{igFGs6V%CA zflAdfwF11XlXkWC9ahe3^glqFZwD@*gl`V-34at`YTjz@G!K{uu?l=|9x;!ZB=Tis zAI3sqFgrRMy&x-%HfGzi=3kx8PZ52MmD%=Y)M7H>&c%$@={3RsP&Y0mc=GIm%$0&x5bhq&t zMz;_tiPS{yjckg19Qh@pfva8+yFT_J*3~v_J(|NW<{#%@knm9!Mi~O-XUYQM^^0RWHnydZ^>(OR#k_DK{8?-mHZ*6K7gI>$@ z4K~FDP>j}Qo6$Wy4(rmE@ZZqOpM{TwhnlxzZTgpaR>VLZuZY}$Rq2JuE0Mhzhi#(+ zqR&Uahz@`@GcC3-c5m!wN}I+uOs{E)xqk^i8#TY3Z$iy`3bU||z9hT{y{kp275aK4 zT5zAZMcfVg2vQj9(`C{kXb$&4b7&@amoJcu<*Vhj@_X_jaHj6id~_vSS+3ja*&< z)RVM}5Whx$7_tE|P7E&!--U7A)#S}r&6#NF%E-fL>lavmyF`WPtMFVqW*gvG*Ap+Q(7ti@V( zE^Gl`N;k;2V7%;+DLwxNoxYjc7P8ZQ>RH-7+MdX%(JP|$(Iw#U4@AknHe@A8`GgP^ z3&cCb&0+`XB&i>C)$b%zz7#U-k4gu1k6MJ;DCpJDSboq48y6dYg!K57@f@_HqsADl zQ`5t9!&irI#0YyBE7pnTDdt48+^mAU|FHQ4=uYMRJ`okG*jJJMQ6*|d^P~4iKZu?d z3u6Y3i7kmOi`^63jyd>Q>>H_R#Im z3KfK=LZ_b}dNi~#v>npWM)7IrUC%(qU4qq3H>Mi(#&T$J|1$c+&cH_`NMU9qJCYk2 z7Rig`M+zeoA`-)J~c%)k|BX-SS@WtNro;`5;E^ z_i`6?fO;WT^f~Hxn1#jKTgDeges}|9_?eMABYPqrfuo-o<)fEIuf+IzAi6F3PW1ig zr_ryYKSY0thQUiKV%6ZKb7S*S_M+J0n6rxD<~W?-AmlK5{VSnBJXKQB4>!q;a#zR> zA+)Q;r~t>i4;GeF%v|$oPXpUoRh#yD2Te z``=LCfd>4o+EFvL5s*Iy=%e(>dI_|(P2t_)kHhm|iFqG&m!lU(3E!64T)Oc+_$R)IPAa8N+0a_DK#wYIiFQca2~Bmm**?-U@+2hn3!@{W+29W=V)w`X zO~+<_Te1eAEmnvE{i*atcc39kxo51(w7nU9-W z%;(KSm|6TK!evZu*od`e3*_r<&?a{XJB3}C zPkX_;_rq#-5SE7Tg(I+?kxepD|+lh`3vPcrI$DL%Pql%S zkSW^YbT*aI@8deG*cI zQVpGNt}b;D(ag#9v^3luD*P`3Nt#&{T-xb>( z+Z)>#+aEg+J7~$s^=+AqTnX;HMfgG(9V&*tez90AE)Xw3-NAd&(jC z8OVZ~5>s|4JC$9^Zp?#ymwRy$@}{ty<0H_X$cpGC*S%0X4aw_~#CXZ$_F@=!N%j<`{N75uBYa-DJ-tTzv6 zub`#v^mFx#^ci}VQ35^sC*#!cC*f)4mF5qy7Hx;z^kYPfz7_2s8v=Q`9d^M8*#jN$ zdW@kmu|Yh^=wU2` zw`2Cjmi$+IYshxxSWmCQI{GZMm-*uD7*%wh4h0|T2)owVu&n0jLt)J*(mRLe$8L%} zLUq?BE050593F%Ww~zmkuZ11@FT!V-M_a@f#A?Vr7ctwesIG=wFahaT=?C@U;pNd& zp_`%}J1u%e#PP7}Pg2HfPnZ`|I__)7)`0m^U#-73P~%~7(7>OvVRx8k_*bvVktvbV z$ZX7~Wsqt&L|=uTdOGyocJ>-@FW*)864ui&#^5orC#12#QUTV3%~-?QE4ORAK>ap4 zr)Pn~yb4XASNQDc&}dQgs_1pm+oL~IUP9V4+t~<6D7W)}5`GdMfRx%4dL#56G`+)^ zk?qAE;u41lgC8Q)!XjNIT`vuX zUegkC%}jNyajp3y)~fbw49%3TP#PkuBR!-0F<#rV@%jQkLg*b@7+o6O0n6G~(b2J+ z!Of9jetTwLyOMv7f1fXbOm#1~V;r{TH$t6ZyI%&``&VsSc(J(@R;v}}N^`Z@Xs$8W zn(NH>N^mj%dfd%o+=$`18(Ic=zc8{GC<6|RZ<73mY+AoDw z@xIt&u~%YmVeG=XIHf(AjD4Oqd}nAJ=R=no1^ZM5zlgsPy66M^^RNN$fgDJLwnBHI zA9g)16fS`tGGDk_xD|Gir-c`Uw}cPCvwsmz44oO8E>??Ii#I^}epGxGlF-Mn3?38P zO1&T%Mx7!FI40 z^3IP~B~Me%Rs`siaq!5ilsm9D@wn0iZuOz^E&8&ndZu~-EW?wuD~t!ikA|Osrtxz4 z98)&)%yH%vP_4<_VbUHxV77@wBO@YXA`>Ag)xZ{gQ{=A5+Q{>fHzKqOWw2O34=c>)(2swOo)sGq(;&A^#JYS{>{{sZx5XZhJp~#5 z<=7jb?7`SiSWnuMEud{@{#4L*059`{`HT3`{Pq0J{H>U=k7LIE4E^O4;dEgT_CiJp z`nX}YKfU}mN*0&`E;=ocI%tPTgBDlz2Z9PLN8$@{RK9R4$=VZGn$x%7fGXGJH1W% zGoepGv%}7Ve%;K-CZizK*P8myHXFzPhs!wpXiCh=nDcXSU>FFsY*n- z5G&YJ%!4J$qp*WKt-ParrnFJJsC^-sPFH8C3H5UIE=d0CuyeH;a{NcIUmj9_P}^&r zwKKKz!BYlldD=LwRGX>QfLpEuzuc+)1Ga&a_3nB|*TAu+!Df@tFW2vY1oD9XsJ=;m z8}{Q*^{@1!dPk#+(bMQ_oNL6er;}$C7!zUlPhgkuQDdXA8J3=Z7%ju?V9)9X3wJJd z38#l^pex)IUIF>#KG+AJ4IhBL_IvEzv@)~Iv!TIj)KFjFp2`0O!e+?&H;WwB>PqDn ztXa>)(%4fk4pW_f8MOWl*lTrcS5y2+EMJ;)at)tby@-& z-NoT0;qx)F=VA}D0D8@;$ZOCjPl>*U9Tnu$h$B6Yp0U~l+GZIphM{*uuZ8oO+MW*&mw;Nj>;(ZR4X?TvjGBkS9< zwW|&CZV4&(cI>k)4!s*1DXxV6(*dJui8KZKBcd`&xlgIlZqfRH;_rsvgd{cr)~~Ly z^RafdXL7;muqCg>8kmO>zXft&nC)vkhE=dRcZB*m(0icXJEA)DAWi`g!_e8gttRSLcF*|dRux^K8&5X3S+nN zrE#ixEo@#F!s>NqbVl^K=;0{r-;h-3`tv1!Qt0K-72vO%unT_$C?sp+u@)?jfZyOY zOFDF)<_CnPgl-KjMy&l}b7`nlEUlFtK5z!XoiDSUX;ZC8rB`7Tw8y82aQVQb?Ww`@#ri zhEk>6sJyLwte&pz()$|c84qJO_IcxH?1KyqKNtRIcor=GpP8pehC?fU1KNL2=){B2 z|F?s(XmEZ9Cg*gAl)p@PQ~XqvUq_kE$tCy(Ps~sX|Bd58r zsJ#|>6SIL#=|EN^oA!Kn{u=(z{3HD7!a2g9ga;t;ghFFsnLil%DKt=wh(p1NpAcUc z|0zzA%Ap$^liJDG$alj|^0gd>mGmU_RP}82Yqg7}zz zvCe`mc@a3)yWyVLU)q3{eG4s-i<}-gDS8&P#FA)TbP-y1U-Trl{&c|mpEy2(b*Bin zo+^G9KV9gLm7_Ftd1z_qp3oDa7eXhB{ly5hf+<*+Z@^mc80^i5vCnxT_Bn^kbL1PK z_dh0|hjRgA!RdD@pD6!ULa_hM!2au6NKgM#TR=J-q!nu4z(SL!*TJT{ME?>JZvpg` zImSxtydA?Hwi=FvCx&N$?>+~9*~`4Zj6j~b9}>*l=BJRkPKdOR{2UzwUFuRU6cY)TlO6n*`4Dg!Tb;++M>P)Em3ZIYt%Qcop=rb=Yg( zh_SZ?)}A-Q&0!b0#oT4Kh_s1xigb@`jef_h>W~P*<2x`rW*68oC-Xn>&w=lKC7c48 zZ*}MuaK4S=^BD0Ti|0ziq$+7CM*A<)g&31dQR|k<>B=C;KPzGH9e`cIxVjp!n4EK7(rcOkKT!y@JsZ}SQNG| z(rC@QvHTqD>pchy*Ly;9?0w6iVheeooR8i2wOIYnR1~!{_Bft_E$$3hY(}8Hufpo| zX86nSRpt`&Hb_~2HJ?L&9){h%Rip#<9QDX)*u|Y1yA12w1F^rs!ubi^&4d2af$eFZ z%P$f3z@B|j_?OTTdpHAePG%J3nv&3UkZs08PP`Y^qutW`*oo~V_kff*3!39LSQTH# ztltCa?=$5q<$IiKI0oBIOSKJ7H)QF}jHTF5e8_yt+-?qzPJrb08Eow%ApO2Xt?W%5 zm`-pZ?CUGA*U~{43W@eLp)0hB0$7G-%k{7{Yy*EeihYVGMt0Qrlkv3iig7CJ=$&9a z91H0hZP?j?*?c~Re0;KSXJ|*L1NPrWLzB8xED_7aDo9}S#d_EX7K=-vr(TQoqfnk8 zPlk+JDwoL>@^JMw?0@aWuIPUK0Q9m$`u8|5a|~AFmPQ++gTX<%c@?YMaO_idz?oCr zCn!wBX`v$+)kJP7w~;&G^h+0$bz_PLnynnB_4=Wix zWw26tQTa$|u69$;!ij==V4r(Y{aBr##UT~kuS>=tBOemrO~xwY9!P-ujT>MQzAyYZ zWVF|@7JP|4#sTJ+RKLY7>4gA&gk@qb=9zbrV2W)Ysm6}>TxmXRua)2ltJKG_7a+q1 z^0Yq9SZusu3Y& z_A&dLBeB=L1Sim5fKBQI?9a@Otif);R@iHQjr5D=VNMd>%I7)$bN*ZG^mN8vPk!hl zoKMJs4d)`-VQn(gWkid`*HRv8lD6h>mEn~6`0*$Mwin$mfex9=_~l#g#Dqn z#9s0h$~8E-HB7rwo2`EcoAh_#)67!rNIZ-k$$v*8(Z{0iMf+m^up=95-$SE|LS|fz zQx~P!b@($*6}7~9qOeqe(fa|;@tvg@n1T1G55bDtP4596zOUXNwhCUCAi0}*HaO8R ztO;-HCmQEt1-lw2_Kq0>c9yRV-yi+}mU_j63^Ao6vsaxY%oFYsH1SUH0gQr<(y7=@ z{G)UocC(L4U1b4dc{)m@J2jJ)5}Ykr2rck#W zGY6;d4nTT37pEEaXsxi$EyKRxR-FE5#`Xp2F4v%NUifrVr{k->Bi`JFT%bIo`~xdy zqqc;5b zVY4TV9r1<$A#aDqNOjT-oDJLxJNhRoPH}~s!u!H+nIbI3dmyFnfPCJO*%Suhgvknf zPiF|MOLsw2KP;>vr*yEptPS#J0;EcvQpxh{|-*@8d-uHS0r!DJ^ zmyJ)2EzptL;w0q-=1q_~UNw71=3y6WOQdzQDcU@CV(e5%^aa?Py)3pImMPNI5jRs1 z(hDa>=*fVmVNLxB_KzLVWWUBv{YjzT*pXI3L&4{753PkQXFE>yEW-GDM0`ukm#)P= z-FiqNFTr9x4BWC(zEl1yc5B~}qmYySh<&>Cuv7jUyO7J(d({EjC~)XYwOQI~oNjs? ztJ6WO&nN3=VB8hxm+H4detK4aQD0>|hP8PIEY~fQd~HiuZEV056he~S9_QW z(EB=)4gi}mVhCVONz;|M4j`Db}?_}92 zVZmt=8w##M_iC;9t+3y5Ese9@ia&{-BW|+7u8>Ax$NXXFL7mt*d6*v|{UHBA`B>?q z-UMxF2_&!~n0ITzwYGt8wa1!B_H|c|K>#2C%5n-#^L{B@67|MEZcqm zrIMne0-}PTf}-M-Yk1Z?0EtP71%`=3iHb_E6HbLmiG@ju1xiLqiH3$rils)1g@#H> zg^GqshDk|IYdSb2@wP(zTxT+}HKJzQc7_;M?vXpH00w z0M%%wDV3An%3`%_vn+sF47IyC9)|IJ+3_jJLJ_}VYzJBUi!|Aw{Xgo-=k?KsbmNOS zqRL=FYK@&h&0(+}b4&+J?$+VfS8VCx&q?SY=cyT}Q-|<61{*IL6%_XMs51Ld+0RLx z{Z1;+J3?W{fgq~s6>BR_s{Rr+F+g(?9;>~!7kwp4`xwf} z1?qfnT;v5{+yHd>W%>;`GivEA!qK3CTYZKzzRUO_NG#O!uxSxhYQ3qq*>0Z3Jb9QZ z)dRn5G${OOO9q`~5{yo{)tyT9DV2XIowdTQVlqkxL&b~do6|vZ`qQ;l+SZCMEZ8#T zxZ+D~*<sEq%4_R7Td*D`j z!{&{Sy97OSaP9i&gKmHH)~dZgx4O$ZuRhO!>l&>1Ga9`vzD97%fqoDU4sjVq1o zj3ele=Pj;$>Un6X>%axOU?LmrZJAPk#+Nim{JG`MKX;IN1T(`BIKmG!9l@IeVEe{{ zlU`HKE4}oy_5OwjO$$s(uwAG!KCKyW=o@jakG7=k#*$Zg8dZ zeT!DVjNadi3H}|8i*^`Op$?wtFZiBZVC!@F#)5;WSa&z=? zWCZ6itKrb7?;ts+7uAQ={WQZ-$R9_GZR9+RQBswksgVQd-op$7Q4uei@38pe(|yO9 zU`yp0?qvpS!L$&;H-Eq}9p8O6y`_dXsY7sISXBU#PsjpR~VZ-)TQf-Ex=j(g&Ix?faZtMOOkpYo{`NqHlppz0P=nzC9Jz^bCw$ zbBi~~cMZ9RX0{F_9`1#Kd=e(*Hx})CiDeoX`i!-wZ4ux5uyh&MCDm2+>r|PS(cf1q8>uMY=(`#RF_R646S!#6@QJc)Z{X`u#k$LL*r08Xk~)cs zJ3(2g>{Kkc+-F!9!>jJJe(iV;+~zKER1b8YTFnF6J~|B!+{M4 z<|&pWP{LHZs@Pq6U;hGf@nbUoQhN(dYYsYKwQia+i+Z(#xwHtBatZHE3qxzeM7XF0 zc*!<_tKI`KZY8I2)fff0J|MLKEsc*7=2(fHQ+LHbAK?paFVyu zb<*9*?Bs>c60dmc`@rBGfxqft2m&>|i&M55FU@%B>3L(LaWIqo!}txB<5_$c4Yq?h z4i5WXoU$L`Qf&P@w@M3#4?f|ssB&43FCA@yd!Z+-3@!>jAsh+S?$V>t3U`M2citic zUWieeX}H$5Fk#nezDFl&sdeXV8--VMt@bVLyW0KQkKk?^wXNw)M%@}b{}+@l`r+h; z{0)yAQsFF*lPhRuaz!)nGnq}JnD!R)cHUv`V(w?Qa*Fm-LBBFzH@78ou-Y=ndY{$P z=4aD0r_XTg#MgN?_$P5L>)jzHskOneS`Gv89SlrAtyvp^1jUG zEv=TheLen>BT5FH>2-9F{b=}Yg|>^HaULz>CVsB~)Y1Dupd0AY2jGW(G<8C^Sb|6M zCG%@|;RcaX3V@G{#V>Q0Z3LdA9n60pq6J^Kb+Y%f2ir%ZJbh0dp&idzi|X`@W3^)} zKIIuyuk_$oP?pZ2)}i^bm*o~;r7iD5AWwUQdL$mM75KL1XdcChm5KVhnwdJjv-mroqS9@{k7Z%*J%X;*GMLLgg9nmhvZM8n zggKf9?p(z8mi|9(0;=Y_w@`b+Mf8Uwo{MYkX}*1ydIQXBAs%FJjlbqj%~O&Y+yWPU zm^9WY%>`T~H<&!ykYO1M`#D`ZkMpt|ukbo;E=p@VT@T&;x~JrC{h96xU121A=vyQJ zw&T|5!4!Bu(`GuV@ehX9@U(ZKYn8!$UZ)3Y(XNW{ZGUaLVG1(ehuiTfOD5m=hQ-%9 z2t4v6Dv`k48rx8M({dQk?`?z7A0zqZi}1Q{a2#|jaC*-CJ>)qbhw6&AUTs5PeO(iy zTdLFJTP%Vzz6?U|3e$5B7)f|G>>$`zU@J3>UGc!&VSa=eveNvSImYr34*Tu6<9@c> zf%-KZjQAkD>jCRw>vwP<;kKo=uWgr6V;+Lh+KXzWaXi4;UP{F|;y8*^ESTqiFWP1X zs^;f#cG9z;_K@di0KRAgT=z!x8zj1}s)IP;@4^}eX$O&ISxK#2g68;%?gYsYUzFcI zWEx*kURDk$=ad#;JiXqcU!-4xpXUlH(G4(FD8ACQ@EL*lD^^qAze2q!F*TZW__ddr zt(G9zjdZa6R%W$h@HowFec*BIwvo1(=wI9L+MYz${n6H)vlMC{MMqx7)4j+%T#b5i zM{svE@N=lLIQv38R5iRqF6s{IPU`Mds|57|w1($Uq241|a9!OMeP#uI#toXCoTF2k z0XV1cf|DErCpjHfG7~;z11O|O`x({YelWxWd^O8pEjH-N^>e5PDw8Kl)jdq5@i<49 znS^sA1}^_;s=;R@t}dB>GFndAt-t_H0 zu&8$47xArD*t7jhmlv{O-qkLf-jt@)YK$!Imc47at+G!zF;9B%r- zmK4i3WT@I&-O)TBB@s}}jCB_LVuQB+e?mDVJVJ@*)7&X&M)goi+%-H6@eP~ zw;W`O;Z-L1XgHD1_HOoHbhvy+0h44Qz6n{c6FlS$)<<2U)@XX+AaJs#38*uPRH|fs z6mIzGme#ht!6l-;Cp+KI`oD3kcES5TQ(L2r(oNS5fX~@%+HEc&{Zt9#dc*8uX%9PP zf;)_0j#$Vfu@d$$-?9rP|Aggpi`hEFI>I`dH}GZ9^j4;=>(&;wc6|G(wgkR^3am&L z9>{I*%~z=CE$r<`l?K?y;)|JuR`irT&AtYmOXIL|${un|Bjfc0d~|2BVf}*@Cj3uu zZ(VlQfOHSZy)`Falc(N^D`cR?fS3JVs(K0UW2L4qX(g+6DDUB`a3^nRf6}_r_j~AC z89b;{R&eqCXkrWTAEg`i7<=LRap60aSU$A8Z}qbI*hbl3lnlo}X0&>^e-An5xRD=p z)95rCHS=*$x7S&8Vc`GiIu~m^Hq`-KjS;tjj{C+ zFk=pAViz5-22Ior9#G6Ubxs)#U7IXi^O3&TQiH3RIEFN zm-tTnbc>bI`iJ!e#vL%dMaE*3j#4UbIb3XW@bg&n>r^v6Z{bp#fm4!<`jv{uCLJG4 zmSZxS!zOw^NfqWN4^=Jy7^xYDBXce(pJdG{FjNjq&K~;2F;s|Z*s+_;r=D70QWIL9 za)@>$p6gicT+*A#q#f4ty!YTdI;K6Nt;TtD6BOyG^98qPNvwwGMv@kc)y>r{g7sfT z`XmPxbPwO=nC=X?@tW=?={OH6q81J{gdQ`FE;AQZGg(jw<7KAipJr`w;m~(bXB#78<| zKB_)Pzi6iM!11Ob&k%*~vXEavLzZ;Aa?Y@w^wCkg4Wn=|Z6*W859aPEbD2V&T@O;* zM?XJD{?W;bYsf%E;clFR_gDNn+sS%_8lu4BbC?aQah`jD9?Olt)>FK33;N?2S!?%& ztyKAY%K2iW`YAGBBJ0qWUVGf|s_-HU|&dBD&mr#yHbHde=GIRh#gL z+-r{_8^YO&^praOI55j7?N!}Ga#Kr;8O(YP(<|_s@#ZQ#t`|8~w_PS%P*IQCLhV-_ zs#s51e>;MZ9@IXnU8s8!?!u&Rjst&)DIB!_5jpL?Om*Qf*de$rH}br@P}_F$C(cBX z{lGSxdDcbX`UK~*x8vPirv8vw(Fn%O=U1q~r!iJLLE8Xozr`7F(YflP@DRD^Tk99# z7m73ZkfZU2*Ir>dN}~Br%VDZIDt#q%hj%!YhDcMubw*w@S5Zv4Y=(mgL9QnFE z%m8&tYlA0VqX5G&JVNVCE6uCS6_!)r`#L6-hiy}A%c#5+O%C5ws%*MF6JA=C?kQ{N z2=ylQRLy0rmHxaAu79siI0$m!mCwWQf5~im18-z6>g6OngGca^U4U`Zll)lETeA}_ zz7@XczNEa5fN%TYHVTCg-$-)tvSqRLr1dJU$LZoX&heBrbiF2kck!HdI;xdcX@+AU z00t}67=;&V4%2|p3%0`}o(NTWDeRJSfSigp8ZWE^DpD!n59|3`9CEmpD^7}D$`~(^yX-c z$H?@KWM9KEd?Z1r6|UgR3zlov65FTtkC*{HCGYHmt8EENLm}GH9_=FK8)dlRErUqH z>>y`+4L+IgUGMzfE7U5uyLsqz4}d9tMoW8$-noVhas$qnCmd>~pVz40q{3wlcp6W3 zA9$r_H2&Hr$#wbT!z?3pJeVxr68!;vcY2O4ZcS7lP#@Kt#y$HTU3LWQ*OMd&YG5e6l)-rCzvrEv zYFfhg-c6Qxfpry3@JaFtDtu!LQ5C1qb7lpvf(_%(^zSG!*dkc9uH<;$AVYs$3NC(wB;jy2KU~6%-~$62f!p9)IaONlRYY=z-ZmBU4*H_6X_&EE4Lkqqe>$xKXt6Z^Rx6(CD2O9X`MDOj+|R%SjHd=M5K`+Y9)neq_e(J)T7Bg?_x&yUj380wWcpV*hp~1Dkii;^rUNK`b8oynpA!X z=jRH&cN=~G8tzv=r5_s;Y-r3W%4%hsvR`fzs3GCh3{QhEUV!7&q9CTZhrz|QhMNYH zarj?xPNi`u%;Q_kmm#D|4|DFq(Vt7npyv_dHp z%4O}HFu1O`KHYhXz44Q*;IwqoPrw6nMX%r_IfQ;&VjOHW!$Hllrds!NQg+Z!oW9~x z+j}tR7kOe2IA-FMD|5`lLCoKk?0mod)JFRIM)ehR)y34Kx!}@5?EqaW%4{w8^N7hx zD!Lgu&DZG7CQi(I2S)7#K$-rZg3^clh8hc>;@82qrlJe_}!kz zxwVxkwG3@;8uN}Sy`$8S9wq&}UabWUWNNoi13zK%Yy}c+W#IGWbd}|_s0`Bm`g1!b__ zq4z^)UkGoy7Zuu{9_dWMXQ9F7m~xo`@;Tc(Nahq#xk}(B%1n>Kn|pz~?uHrq$vV)s z3Vz#5)yQYn!3IWX$8&OC*Y1X=`j%hO7mX?e=4}@#2EinJ1v2{qFQdEC6<2^3*K)S< zk@6M306$zWTK!$jgO_3E?f@}Z4Kv~G&(X~rrK@g$(FkKR9zSv-ELJAf^)TG*IpdEc zwvBl0CYa{2JD?d!o8HX84^es6nBOo@g>NVT6&ki)#fxlum2&oix=`*qd zjl8X$s4jouJxzpjSV_(@4_*8K?`owzfO+pBRKgri=V*G_96XK%!ZR4+CG-2u)V$SB7j-S!<`F6nyeb*aQzYY1~Qm``kLnrjVu|N9z0vsnaj**GSd6!{E+hf?MghA+U9%m-H?c zqtCBkI=;j_b03V&Ad+&6c)Ax9D@sdgQ!Xg9Y3`~di}@5g4_-ir(}Kv(nXgfso8wpV zM1kmK(ZFmhL?7`1bzHOF#WU*z*YyO<#V%ZmzUY%$Fvu_%?nju^HlwnC0)L@FXQ{KvzvWa#X+~=%k)(T^gv&lSyK_9TW;zeKqa_sAl}I;bkoG&u zo8mzhD+<@^611ItuujeN0qAZ~Any!P1xI1*#jG64oUnvCwGTz_s#F`JK-w8{N5WN{ zZknb|1H8T>IP9+)f7y3 z_s~b5;M8q~!SJ>8h4+34kKgN-1C|OjpgUm4N_a!Rg^k#QuV|KIoX8fZdr3{>Zgn4+ zthG#gXSHH>HR4X&Og^9mj+?%4!ef-4oTpfQ3OZABTs2+rL0ahL&(SANla;v#z2Fl( z`huUkj~P4xUw#?xH5bs_0hpohNZ<7)dzXM8a03pUT__62@kxDaYlBy{H&y&5+KiXP z%s;D#YrCKTuQ2w9KYs?4bHntld4lCJ_{%G7p2)?$?PVXt2}`tB!C0sYyd}4wQeKZm`;*?ZZ!BA6+Y?1)TGn6#ruPp=8zlshD}-bT1Mg1%&@LO#X89J@Vzwy zzv4dj5nY9k6)f96`$7Eq-*amFIHFLo1*0Z5ctiz1$ZRWjEfsr7{yBh5V-$YWCDi=@ zGBHtLtR>!$QX zTaCeWlu81lkg23r>4=wa2)?~}FkElqyFJhB-jNw-2>Rp`aL{jqu+Gz2JK}&F!ld$q z@hRB5LX?PFIdO>@Z=Na9v51ZiK_3*y4U>Dz}3mSQ%@7OQ1sp@S| za8LMl>Or}e)L5s3REN_~gYa5g_1*B_KSuJQr}19nHa4xyHf@6o_}pA?^+8oWZL^{& zHX|w3ml?oW*B*p#oI^i(fti1=`ndW6TcrHJ!1s|um`K7Y8@=U*=4lZ88aUH8WXEgE z?086Di#}z;aXZ|kG7l!}@I1R*GVxu0Wx0Ukc_eCPA)kGKeH@tJebNs7>DAAX%DLv~ z6Finw+IAg&t3|r)lN4-Hx=*4CEcCumAaeSFj4=QK9gr$566Ee zdi(^oK)h`@Zm7gl^eX*pKRZKedCON&UuGI-9str^0E)WG{67Qk)fe~PCw46W$j-brG?0n)LgW&-Gf+iI>z!14Yy^6uRU%jBY8fy4broV`b=e+Jn1PnbMH zaGD%s;{D##3pd{baMw%B&oH^}l1RKGRo-ezw0vr*x9HGniOfmwisz#4B=O29c7A24)g$ zKR}N&@OP)e!XBY^knn&@=_Kd0D#Q?tZlm3wuS?uA0F>I`b{T^^;)BOELI;= zpVTbFTRnn(QvoPvqsI}hCF>R+>{=!uW?kkEok0ThD7DjrXA&j#qwQ$KJePFm`}nWzHJJ#X_pbJR-3B~CU*XUnLzk{# z|JF=XbKIq~*{susU66B7+P<)CprRkM-iHhKEdE)ecu#VizrhN2=v-90qE5X7PtuEL z)C%{ijwJjTxRM+upgdep1$tjxMmfeBJRU<#=S`!jIB$Yq?6xFZGTgpMUjA$kgkgP; zIwLc)1)U_vb`QK*GQV;T{(>xKo~hvX-Z(4Y!%Z~M@StHV-8#Xz2PS-kc^`W~2IIQk zVm)GgAKd7{Z1bdeF2$WB_kB$L9e>t#+(L7-d*L+FmAml>i9IA?MlIE_*4&r5F9LUS zv?Yf5cRQy~gZg#G=FcQ!`|C!DH_1vrU{n);;$muObsUHaf=x84Rr}H{~oS*D-9Zx&r;hQ^2Ty#@ep&y5r z=#t6La>=^hF-UG3>MSwoUFZ>Gn6A=E{Jz4(?WZyGHx!~@oz#p3y$Ic*Gd*=JPGKz` zwtK*PtMqq)=#tr6`M%+dp{2>6w8m!AgpHdALCLwZ8ycR>PhUek=FRa_@qTntDw=h|N>I$zpES ze$6j-o;kl2eOxG=Ib>V&l_@YJU$XO}BOAl|;S5QI*~ynKjAQuM+mkApZ(N4j`GxV8 zaT?g?V|=Tj=18*saiIErsD!Z~menYO=a`+ph20Q2Mo(*hy37K4?=&>0!?qu6eVNbO zkZ4*(Zl(x6yR)i@k7|N>pUPI36tbr8s1K<>;&<}UbY?@+C+u2y5=5fI4G;=K`95a1m8cp}CgS}~F%j5vG=p$gnYt|&3ZX?jg&Twi& z92IE)Ds^W$7x}aMWEivbS@jR(UL5?o3zlK%72 z`(Cwt%yYhI`NZ}x^I2zEWBvZY#u2eW$BxdHW>{-J;`q!V_3_BgvX>;O^EELznvW=9 zxS!hL4~RF-FeR|nAyICPOEOOf8$U(o_=rUEX?zgh;hr34e~kUJ+j!?jz_hGH301{* zmb3m~e!Fofe;(RWV;}p^aJMh94~-u=p|i}WX5)PLl=^WeS^V6j`LT3_O~^5S=T)Ao~n z3ASQOYSWBmwvom-ijC7FrU#s#Vj(NWbPO?-t@8Y+0r}9zCMvWvk!bhq&|g? ze#G>d$IG^bBtn@^Cfp2RNNSCx}sjZjX( zt8ix#h5<~Adzm$A$#~SW)Agn)(ZbGwa_9SVlyh~5lA`y*O{-&mnupSU(D)d$^F9!S zw{^9>Gw6H2V;B?06n1^8syj=}b{G3nM&nWYMz@qRSVd3j1LONCn-hJ=a=pfX+ZR1L z4%d2n+(f_L32>XUD`SJ&ZC#{>TGoN?JcXod4e5@tcsfd{!OnNJ8y@}H?3_CXOKoM3 z)(TB4vgPBLT7D*NGEbMO`$BiWQi4*IjdE1MMiPsH=KOeqj-kI>|B8B?l3*zqV9XD zs6`1?M&PQRPkma(o|Ucqiu=fwd`D`_6-9S2J9zHmL_DHTfVFy-EeD5SfImZxYG!Ch zzE6R{8io^9BwU`u;jy|v7p)K$kgZ3Yf8-(Y-%PKh7-aUWHkow z)@(}}-A6c74x)IS!eQ@a^<__=26x>k5aMjO;^#R@Z&+38E~-?XcN=uyZtA{p<-<9J zQ%H6%m3u-x*&NZEo!Jp|%n7_>&uCVXklm#D3>{JUvbt!y^TbVXjWIm&Ibf-E@VPrt z*-wF-ui$d-h`(VVnYzF5#FOy{>}T%KTChUiss^t!)pKx%QPItViWmhs!b6(#(Bd< zdRYrRyBedNU0ZSB#K+izy@q`T+vTRWTl5uA^3(>Y(>y|rPon1)kWKi2({hoj`XfHy zKsH<%LHCRB);z~9n4RV#p7==|HsABaJ6H@ByX79zvI(#r!o~gu=x#4lZ!@c_)r;Nc zR_k3n^YL{3B%b*Tc*%~C06u5^37*FTXNC!9MucswO%>8b<<9T$JzFJOYq~IT8$o6x zG^=sLZGzYRSaSmH{2Pst&Tuc!dbV~UlkxM~<9Hn}pyjs5M-o82ou_*oT#zYqwENiM z(GkwIkD{=%d=#A8Ot=c?9`Vb((arR2*=#gcKNU~Tb8PKc4{Px)Z*og^rQT`KGk*;y zuk$k9cn8~TPr%Avq83_shof;&E(#?u;Y%uS)15vnpc4Mim=2Yh*ni>QE(jkvdu!yP6|N;6?My z#%qgEAYyPP#*&HI-?X!#i_{wYsN3H%Z#>FOa1cMq{WwRGB^MdWbMrtwO~kEt%n)GI z8t=nX+0QbZlQs>HMfQX3OnN`6J*BhJ250anH7kHg zbu8>jK5W57oe@4`9_aHd3g7$st$6dN;La>!L-7$f3nPr|0P9S)5KhA_*U8?C+3gpV~DZ2^o=DBY(ke*FNc-}1b8&*q_7 ztYUsB;~ZWi_j!z6E{#e%xmzt&{~~#b3%m)fVOB;Orh&dGHNg2#5h1#JkLf9 z4{+RIp5{YrP*?QH}2TPNcx&tMPvHo1ZF8@9jt;*t+$3&Awh z+ZDLl-^MBbsqH*I!VV}z8vFe?JLcIJOI)4qL61x#=-L{b^oy3ZqtSd;ZBm2 z50X8291VK|XXPO8Ngdu>ccVYMyCZp9W*L{utoLrC*q(O-?ZO}LX&5fUxty3ac#p;A zlrPxC--aaS0IGa6s3DQfU7NsVhp9K$U}!tTUpbf}C$S|Z)$%eQNi2kYx7jvukh!-F@;$S#PdQ9U-}BmLHX z2kzw{hsxbs_U$8@FEuBbG;V3z>K5?{^r#cx;yoIO?iNqCziEFI^e{GfUhq;p+TbRC zZ|Oxa!>zu??0!()U(=Q?7aq9nJ5j;A8wSGzyaj90mwineaKg0ZogBjN*^8YUYwfey zVYo-|+-h%$!+WyFC>htva<(mZAaQ7?!)%jotd{&Hh4`zyaI8It`h3mg!VdTOyagxW zn#S2@+UGOro@Cx{PD)u7;{06W)t`Wq4&q_&D?MQWWMtMTn+(H9;U8r0W)YL7lW|^b z$+nz?y`BcT|B*y)ihVdZPZjAcxuF2I`rKlpNQJJw;$UmlC3f+3HfWimB4C3~(RbS8 z${b~!%ZAl6xJi@H(5_Jh@23ZMVEQ|Q_oXL$DB_qP4)#)D*mNhA#l? zT!(k7S8w}pMH&P zqwQ{7r~6T}ek3_`jOTI7@rcawZvrv1g_jw`Th7F;>aOUaL(oD~)oH)Vofd1{shq+$ z`w?pN_u5YEhbl(l>aI*xp2UgsExM+I`QcU6Xao71U9e#T@XU;($G!uqsWo0BE0e=U z)91}c$S^MA9U$p@0lxt{KV{u|dBBW<+eE zaxru=^oF%-X%zLVpR8Z=VBnuc84>yL!_4vtpsp?S|Kp(co8)Kw;2m6XmPT{pro&g| zTi!;Ysb_0xA8S5O`9hP6YeSO@tP^!7%DzDIY9}PGrkA|h5_Wp*V`K1DX0X`c&BD3E zjO8u$h~9Ej@KUt!eWdJ~NpIaKTpt-sF9+!O&Dc{KDqV6JIOLAPop_+GMv(w~lJCA1 z#q2tpq58oHM}eN6L~q=x9EDZ&(Rasbe&1giRi|n;25)HwJjN*|NgtybchekPNAJp; z5FBh|e2FRH0%?*VcyB&O8Ej9F_O=WG-Mmi*G@1&0obwtdeZzUUoZZNL9VA6`9e(J2 zcB74FOTz}Ik0r-jRmj&gs2@X3ScTqwi|v}Pz><}tQD4HTDt4H>F5MOlINkQM`#c06 z;c<}PW#-cUAnp6~yWuEm@mEYk!^ndfIzb-W$Sfvy2kbQ(Ne@pUO?njerMbBk+)EN{ z|BG1{>I#Zb|R)KPN!)BDSHLbr=%ch)C!#!~DkJ1xY$Y)x` zQ*BM1x8i?`=T3tq?9eykiGLWMe-aAM`y`6$Na^+lLyok>QpbM)rS}6bj-cPoVk7QL zeBuK<@vBVA?a0Ig*!rUb-HQ)u7Fk2V>F#F3;sqR6o(_LlhgTh)*-XcGD0bGW*7CN3 z930hc$yMkzHeCK|*itf#t)fU?+(`U8#^UJ;EjNOLJ&>~zD&Ea~7l8bB!Vq6S9=)>=_L-OtuV2iF=2g7qc zNGAR+N59~w#eZMztjT>~il)GGZB;+Zrpp1^=iuXt*p=X=JFUN$ePpAJ%T42Oy$-iF zTH|3$$Km{14({p5?%R*W{TB7!a&Dc<2JxM0gKj1~dS9~8E1B4O%IUtH>6m2^KCc?G zQPW_+f3gka9))DGr7ux`-=#VpK>^$2FtYFRUFr>%mXyyfw2v(J zGef+|+wcRd&J_6V73|v2XM@%{`yQNRy-?;u=_fCu&+NtNbJmg1RDFrQ>?6;ijWpvV zl)b0n6VI}<>z2Ab-rXZGvenGa4eWgyr8QDlQrH8Q$M((s=!Zp22wh?4M$>ODNi^t7 z^>~9m_mv@z_k6kBBW~mE&ZK{yWEbR3y1Fmf{blUWK8m_M!V-tqOJr)clU}(58tG4_ zaX0CyO0>Wga5x@h^&`+nR>;kh{e#VHdJ(QcmD)$*=VqM4b?WDFdFSF^5zgvc_oJ}$JJYzxG!bv?^DswmlCr+QT>O)z6TS+8BNwwxkC^I#)!w0biAcM%)@wz2!5nA?MbG&+r${eBbJCp#Urz!$Gr zUvgQKwU3ZQS}5JiYw+`LWRJ8^jNj89WGeIGMu#9Uh8ZSBcpEmNlI>k(iS?~=LnSNK(z1HIz+NSJcyK4zs{f;T8_|6x}I4k;L%xYo^o=(zhAt-d2 zoY}I;HgAE?eV0w*$C--1qFR2-lW_-?*g@^*m{>xX*hYibm*c$u28~c<>R{>&*AQqL zK#tvN8p?ScL-n6YioXz~chlmHv+G{?^tos#YuLskd;n!|Jr9Ey*K@1I7T&pYRGv%J zeHX`Y#~LL)wqEQ`iTv6!v8k zTO$tXKE|hciJIiXtQtV)^4D)+Zr~k=^^yDZ6^)rBOHl`6HGI(69Y4+9v?U2>mIn|chCxMunDTGZa7(xSa#~Cv5Ds#pVu3eU=R+q*LbgbqYOOEd-R_E zw7wGvb`m_wDmbg%Y<+LZq#q1I`rH_gg0&6ga~|x|8lPcX&hI#Ug=vnJq%?SN={_od z{&6>b=8$FsTI^WeecUYfnSK$9_bmJ(K5{4{%Y=OGVb3zMFJ5HLHt zQVM)zZ#l!1JWIC?EVGAa+nQ{yaHDpi!t}xYeiS^t-0~IPg;@Hx8$7^TP!;YhdY_Nf zv%O)m+&Q@udEd^#06&I1Z!O!UEX-7umL&3wVfd@&+n%*uvd?xr$&=;3E%%YL&pJ;3 z6}7Ksv39=_1;6(NXUY{ldZ5gh$Iv(T8;-&n52XvFnECIjeN<`GkL|ean#tSGCh5d} zgu}30U!sYJDG!3keo*dU4hrSm9wq%Z2UUBIp$$ynA~vzTVS1m<;otG?nt@~5nZ^Fh z9yrLEP;QV#4mHG*+@FZ|;dv0wUVIqMak;5U z!z8k=TEXWQ%G}YOH}E@96n}uKtK^S*YLa0zRXD63rSn9?Vh=SWna1NgJxT53Uvuv& zeWLHEHz+~+8wQnsSCtq4>o4^$7^+QOPllIv>F!DmHwm6+yUZpnBOXX-IBG21zhhuD(zgW+*lW5HnV;5MnBxsNN#)D!PY z2cG*Bp4c@uZuek9&#)hd?|2?;JCT!t+7#PWzSlu)pE!bw9H3bb^4`fr=f_)mk<7VC z(cu)j$C8EfFw}Ozet^ASe6ED9(%*W4ldxLrZ#LlUejLA8J4+83&%aQw(kwUFSm2!G z`1g~$%KIP|YM!LpZzX?umb=c{lgoC{D`&}#F&|R>%{m7g)@JEmVnfA;RR7x(%oyci z9Fxx}W~RzVU|Phq@{*iZuFGj9AGOs?r&`FI@~-I=ISC&U%csl-V2XyqYA*qWZD&7D zGniGat)C;Fxof9*zUf`1e@FP2Zr^$#TncZatJQ1AQ_D}_I~1EFPS9;f$(d;)cwMM# z=Qxp9VRJjdokvmooPUFw-Z;zl1p3WV_>&L0OW+3SZ?Pw@NTi)}x=QTQj_hMgHcBpp zQ(VI&C+?gOv)mH)dv53N*1!WUWqR``D>ojk_NwA^G@dgI1ifyi8q71d1iK7F&3gxL z_ZYhGtM-q`SR7@$(G=&t_=2tyV=jTMFGktEsrJ_lfH!zsqvg-eqQCy2bLUSU%&y8F zh7s^o)8VNy&{(&zEocsVD7x@Hw=+Y1Cso8yD$EkO8!LggLBrc1@_Fm!Z8Q^M(pr#m zT7q)antSnvQFYluLe1?e&s-G9=^fs#P+WB{Ycy>AnalI^$BVd~nm2};mtyFF%Wo80 zNgp78{)VY5c+kwQ#m%-;Y(P?#ca>UVH#xB^gY&4;G^6L*P=}u&w~zy}@rG#`P6hU2 z`|ubx@FbCyDTR%{$;>xO+?iV4RpR$H;I$VuKAitJD!@u*D;s4@%zXoJ6N|e;>c9uR z@H`L2Czwp0_(hxzAA_NXaDU?iOyuIu%P!nQCpI#_!bH&wUU0N=0$@a6z9v7f!@roo-13S2gncl6;xO_&B7vw<`%3>vDBjFnuyp~_ zV|Pw75#FOSJ6Ip3TAhQd4nU)G`h$-s9rT^psxky^NVpr)@dUkvE3Td$MBauE**x(R zyPD?VOUaxo;;9rn(RA!En8W^t z51l$eh_5Q2j~GT)-~)9j=j^UOxD_Om9K%KYq9$-^H0hwdVmB~5w>!dnen>|CCYeSf zzx_RM^Kao}uf@mS^{>16!(j>{;e=yAhMl-oLELv%2s&(s^Zr50XLv{gtkdx!{cUed zvCm-R&gUeUQpIzO^p%`hEXlt!Xd0gANqwja7ELg2*SXx+TB7k{5BX%K?N3pUF2N~< zkQolgQxeIRi5RvL#p+JN!?Zzvv$0cm7O3SN93ye)YX_LOet_HVhcAC6ZlfKb+ecwy z-#|C3qKdRfr5tCT0cU;HY=hT$1J6!1ivJ|*A~=oZZ0_C<>nrrH?kLd)?)J^V$LmVp zy3c-#TWAEtLtC^XKiPR^3~+Wg(Y#M^W5NoO!yn_s?+gRk zmd&TxI8^uJZkkUIFEDzrb@3%;{p02oRFBU=Q|`FX2XIR7madIrTma44K-*nvK9k`U zH^KH?#E0qXXzvIOe$<(pPxn<-@z*~D$0i)RAK}4h#~n`^X4X(rP7jl7{B_cHJt^CB zpws|*&qO9uu^*+9tp5%28Ewfo>(OH8pnGqZEaGGOCt-Itau4Z2^q_C_txyJin|$}@ zsA4)c2|vmX+YjJ;?qZ6Zj!Wiw-rjB?)MrtrtIg9%@YRF0x-x+~wa}@|;mbICQQX7x zxqT4R|9g%p!3$xoUJQN}9!}ij^tH3M<@m}BS8MV*{b8twaqCq)d_Wo-LtX=66!9K^ zg1@K}J09Y2$EH%J9B>$qP=8;MPVIv*E-mQ+V^H&#z@M*Ej^RX{!Me0nJF=TiK77Usxv^!)(3egMJgInBlMwlqoTj)7ITE(z zP1L1YW_ULk>tt$18{;t32%G?8K<9he1*jpx9l__@Vinza3Ela2k~u>FDg?D_Fa3D zbbEyT5X-^ad+_m9$?r1+H~mDA=Q6zQ#g0<)F;}_!W-4BnG@ib=W8$RK=Th%{w_Ujb zYcj~~C`@x3Dzy(h?G)bZa&oLcQb)RSGp3dII~0C@4)5@K>fAZ`EJ8`63sm$L6KXrM zy*ptYj>C`NAYYJy$Kfh^th=e7X&9N!U#g;py@0iB__+%wYApKo<5b5iX1zm}an=CP z-pg!9|A7p-H(9#-*o&46K043NIc}Af`qV<+n3u`gevHx_h!6e<`N=!9ZSmY#*-bu! z-E6D0tHGV?NxpBVem29aHUft5aq7Yb5PNfT2ex~ThXH?%Ng~uT4Ahp!J;pzf%Do?) zo56dM2)At&_1@i2@&+y-=Lb274w$9_xnrb=XIsM4En{z61)d}RU4K8BEqQ~T|3|qs z!O9*X7d&XY(H73}4tugMFb32xN4ZPph^Zn)7{qgG4|3BmpH8GUZecUSw2H`P?lE9CTsvY$5<=I4Gm!q;KB134KEJRD{4xjoE- z;2@U3sqQm>Lbd#i_vbPUbx-c?P+KgdL+^v*O@=ji8Her%@B+`{bzcA7g)uuY|Fh##LF&98vRB6Po#TY!8#+zwoHL#ehf}*8OUcX z`tCJ6L|!0v19vOUgx6b&u6+=+a2Dk52ZB?i){|mg&3Ap5yiz$zVKmzBeBK^$2i;G0 z2b+MNB?Z0}h453ya$G4#`K=q^B>m(bUKe&8CDTpv!NUW{EkDd{bdPdV?;bJ~^HFjl z(LNi{bb9zEA@3Y5P!gijjzFR z&8UTaQK|;<9l~&)P2^_kC)i4Og6~jAilhT*PHzqdOTA#$f$O*6*#DF*tv^$7dvTM| z84&%q{DyhlEnJT3PzxK^i4Aju*nhhgMgI)^s?6Rd`>Fil$Xc?E+@B3p6L9yXz;Enl zx5jDSV{c7QeCP|&As#|+&VWtd&pZ7YvqvMkvlbS81e*rqbm1-y+O08Wd6Chzg!9 zYDl^tmyn6waDCK+z&VL1HR)8^Gj!)m_&Pmts~f1W_rV`bLw`JuqwzYNv^z*{I!|Q- zZ*~b!r3zHxFCBIFqlTw3gXAhdvUyD0pZkK~4?Jnna2%qGx1^otuP;$68*OACs7 zpZyc3*_`p)cVQco(?Q%RuIA3%WH*MS>LSZh%RE>+r-N`GyGK-f<3T9-PM1kK$-x3T z<$LhNpO9p{L`v@#+|)_X(iJ>6U74PrPK13 zVsZ0QBXz{Z&_?Pqe%v4!glkB_Hxy#H8{U1SA%^_{acrSXz{i+`lQC7^YWy;{TZ)~O zVmE`>OL-WF#Yr~Vb-{sUz-bXqMVd#Jdoj+&6?FY9_?%7L3b_MM)_$3kKFyxdD@^M* z&>z~P`P@leA4bA^H#q7b_5Bz*xzEx3zhUq8O}ewVH`2!(fNM`M&!Oydc$jy8E3U`= z@GKwWH9bvgxE93xJ-o7ur7aEtUmRRww}TlKVZdm zst+9#eyqSx-Y=8ZMZWFj0r6tbz2$-~xGp+C)BdBAGP44ENeA-x0&SALg&n(aI z&c29-`WfDhE4Y{2;XoP6R{!x$`)E4b2jgt=S3@llmN65rmJ`pfpW=tyY_qU*LDXk zP!D|A?&m?q?DAjSZm(-Oo)l&OQ+7J(ScsJB%(>FXQ~xS?Ev-B8l}$aoH9MzV2h zdIV08@pwaLu#Y7P?mP{RFq=$fKKpixn77OD2vo7}t&R?T3*D`oO3gdr!W|o4+;JPo zZK(=VRT%f$M#Hto;bEK4c7_xt)=YS#T)OxU@M#J8m^i-sCFP#(nghx;6|eH zAdwlk=#$u+l13san?9sUcmA&KZ1D;rLlS~Q8-qh2ftrzuM<55MLm{4>ax|t|v?Udq zk~jRf8dg!<3mc1Ol!#W8j&nT^ZKxPcs1hxx9u3IV=7rO7AWUPJEz%akZyC<78OiT? z+wU9CubRN`n)o+&CTIU{x1B1do2*a8zuH(=$!;R2yEutiF&)Q44qkC_r*5HigqP!L zuEo!D3um)CH^2CUjZ36jCUmk}aCdG}`AWcxl*~5}>Xp!~+~udX;Q@~XEySTnCd$-e zAk(FZY@oPjI#wdaMAYj{ZgY#^_Ul;Q@%i{z#lE~O$&{%Ix=GGY?24_&bsxm1D%_|NhO2ixF0~o*d8Xj>$;1bi%ci6qyh9~0y%pRiRKr`;z5yx|0X7J2a)!pQLkOJ$K#@)u5BrkI04nVQb%?(`WrSoP#L?CZMJSRDUvz#bT zv-3WqU*F7A&pB??{q5a3DZDASH)T7Yb~)(!_cs!W=lshv7H^R=o$C%)=uMaQHw1!q z27+=T$;AluJho|1yK}qDE#5B|v#P$E)LSEYK8ZY;9G*!jPeZ(K-aLU2zI(jjaaG-= z*5vkItK4u4-K9q7@-Nix?0-_Z{hDfbg)tvjK@9JEGRk0{t%!NAM&#+#-BqA_RV~%p zojNTx=EPE)Q>n_TknU1HHj!Bh*YYpLc2~LazKeT!B6$*xO%-Jz^+cqH8&KSZ*6wW$ z!trgBdmP2qb)ljQ{ah&LLNga?c@wX58tf{v>F^n)>K`bl+6E zXf|o@0(xi(I~ywLpmije#7*VyYz!Sp=M*^+!59dxK%A;Zne&xNeHMxLBK*wdOcpg%Gf~IfsAA%TshK3i z`4TrEh?@_xP#X%!B9!9RtHwLf2+QQg-L3<1gN2dbi2*OqAjO`KUCxBT96K681t>QtRque{iABc~j>Uvnsi}Dw^M{hFaUe z=W~I@_M!>|QUMfp&4p11qNxFKe9rkyIw@qfGWo2zOgTG9Zk6zPE0}O zQ(Vp$E$FWD=O4~KBHr^%-t%JKnNr>u{tw07C5IBmE{xks>UiGV-)Fc}P!ZB4#;K6+ zus}Jr@=b0a1>)>SuJmqq`Bsa}tk~~S4~BE4?)q`thd`uZ)ZX!6(%XnG8^@CHDwX3> z68@w{YOfo$w*l_Mh5Hn}*aqUPt2QcYggu(d8fTvY7nlUHOZ&~FQ}!RsIeh=}?s6xa zs5>h52D&SeRGb+0fTl1{r=x{bDpfFpfAl=kB&N;!gB@_9^Mru)A|=*yzOlJ5y@kB5 zWnlGc-qzb)$=|BbmBO2z%nYz@5?$%nJxO@C>UlOQu;30lWC^~~3c61X{pTM&sXu;B zCG;Y`cXfB^e{^Mza)(Fo$9bw|eu~%pIWy5en}}4^J!F>SA9>$|?`?*BSAOky%VLrd zZa3j`E0!*|iY9kk7^xUB6Nr92UQPxAM<>YnAgO7$NqSR$T%hV5Ha9lJ`7;YE4il4b zG!sHR6GAfcLAF#)gj!OCkH4PT*M%w~`mjPD7E@9jeK?UWoC)8NM;|Ukg{@@Lt#j(I z^*!X>Kq~H&bceki$c!6-Zgsm8i_}myJbVGuZHer}RdnKdda;|vPj+I3UK~!AX*|El zFTFUQX;!87m;EB_Pn}wwNH^_Inp^Wh!A1D7%jnZpbm}^8@w~<4;l^fNKf3im`n8RY z9f3b^JPz#{%pOVf>@>P|Hi_kY$-z-iZDecvznGQy z&wkziGrz49v)x8Lssw+Py17c#0K@1F1LV(a5d@MId*91JtkodadNwVK8Bk!z+jH}5iXF`S0#%mqc2@F!R!eLtCS@@r3w(KdjuTUyT4K0xInCvP*#yQc{LMbB3fuuz z5_8sq;chkE?CXZk>c!r>Ac^C`V6G$oib4~>p@~K{Gqy?M&A;EjMd$wGPE`b7Auwqf ztcAd()%5dJ=E!tr>@2429OmpiChY>|O2OC^GjEqNaaaBB{$5u(bqB(4sF}J=^u36t zy-ho0$14V-mHx&HEqE#yrZIsElwa-E|E<$muvVFJG81*a;_vvF1&0;bl#RSy|KlWs z^4rRv#*WHdS@i{*;+)^A>7lOnaF9hh^H~M=UFs>As06Ch&M*O zEeg}9$jC>_{SEQjKf9*=Iar^XmhLZe`oeAK4lCm=c^NUGs7-E?ar2g}qChJO97#MZ zNrL32lEI{@;Ot+1zw#y@yO=XoIsTH@cZCPAu}e3B*;34uV%wHL6CqT-`Sh$j*w-qu zQtmuC@w^gYR`Zz-tKm_-U|PaqO_T6`7BB;f+0PqBGy?o3u$SOaYUvu{p65t|H5lDr>-NDZZ%_%g%2?YI#lXdsP!=b%$kA zGl7M%9VE^i4|gEm{CxSAS4$SbOFo-$`E-(C?6SG_Tp+j_`38GS>=q%N`NI&II`9T%11w^@_W;Lz<@Q`SJ#uG&xTf$b4`$v#O|bLN5+yI?aO- zEQArPg7dAz?JC|le|SJqnWFIv<+9;IR2esB1Th=T=V^=TBC3gCf5X`KmdG@e&l48- zSmYuEDo%o>DFE%&Fdul6=oAPqnT*vATcJ%bD)n$GUU+W;N#cjY^u}<8lfZCkZ0ix& ztr}jW9%ckZz1UxsBzwF_j0b_q!og%Qs1C6x4#^<0bl4Gr$ciNt- zoDQR$!*ecykFDTY2eQ*S4p!Oultr%*yhQ=%r@X1Vh`!?NDhhci@x&t}Z;=QekZkZ{ zYl7$vl{|fM)lDyvXdq-K_+nw1u2-Y%$>Qf-pLYTxd;hL)Vm)Q?d-_`Jksq$pxz!(;zztyS}xl2gYo(j%E z=HF4tZc%OA{y-zkg6XcOay04_d2h>k0+j}pdw?pBb17H@6Ypv`EN(OvIUd$Ok#u5; z)KRi|cLfqDmesjZVvu^t^}05xM?rAjrlz?&2G&1bcC%#J$+A$&a(QNA0xy-RtZJFZ zYLs={U2+sb5{-n&suLpm!-Zs;~n6kIjD(2c2>PukV^v7YZ3}qI!v#g{h49a zOlf@*Pf^$DhZWk*+yDgSGH7j`^MEz_O+O24Vz$j~VwuZPZmT8J+(<`rk$i)n8U$vO8;YF0E*Zr(9W^JL3S0pDTrBatK=U=A`9>65 zSE=s!gX#y;|3awCk@gaj@L;^xQ*c%fL> z=mZqOBw54raL88DDQnrh)xge3p{sd=SOWEG?jW+^juY4=wn;Bc2F0W|X@&*N5XCrN z%9tO-^iVIEX;)d}{iXI}f}IY7pN^qo#8Wfob6!$GJX!c#a+x8-1W_taP&HMg4z^ll zbYWufhWQO5eXqb;hr|5F7-M066POl~;H}ePu5(CF=1bQ{3GOA)GiqfzMJ017B2NLL}xHd~T)s-N=T8Us(4p&qmZ^=ffVWVtdnMfF^Sf-H~l9Ni|RA<3U_&7V!Et*@mU|$lI|Ma9QtJ5eQo&Cq<&wtf&cT^cAh$o32A886Rg>AO z6WB-{fGLAsCHX3ESdbuUzryJbml!D)1t|dqDT&i9P*M(fKcDk0kW#rs{^4^_F>C>o}`7~EKD~e3rKx%+M zl98bI@%Ygbz?8|7O~{hBo)pOYPD)`9DyRarum_D&mv%?j@}mlV3Fm5n|W#Iun>ES>~m)Br+J~~p)GVyfv`OGt^O}>>} z&VL~aajEq2SK}V8lNy&xus6Oep>Zjk{%|Ft@E{yfQ47o!-LOSZaJ z&PJU3kN}m7JpTgqdDGnkCHAv%{v&Z_#nRnpaQ>6gkki>*pUwF%kdsm=&a6tgWxHO^ zO0M*Gp(O|5%`(ZkHL{7tPGEXXma1|V{XG|5xezwHR3gc0?vbctrgF}*-Y|1Pba_Q8 z{1Kf0STyDYIn}1hNh?R*+*l~@Y%Fh5n(Ogqsic#`Te>*ZO_OdU-mF+Thb6)`q;UST z@Mh&n-l3R&U&i^bhJmP;>a);*yg2_sa%KxbfsUl_kLUa+FdHYM3Z-%WbC})=ltQJ5 z^Iy&kS1s9!MlgU2Q?s|crAH0N9Rdc3;QYtRU7U$<+^N!6lOrd*LdhYPOAfJC;$oG- z75>n>NuM^s9EMAcI<{%rOJ;URmr8Y>YUm^KK$vLF|3e6WwJYOjhef{5HdXwBx|7%pA z{NI4<%O$d}mDpZ|KIKLY_%Go5$N*K{zlHA${v?E7F1;nS66LF4THStw^TQ?5kCmyE zMDC?c`46#vymWLWOT3@;H;BLb4=}$P4@$`2Apg`R{zjnxLJ&X+72rRa0>lhZ`iB!h z5UN24=wD#}1dx9!xIYKfUkK(em#jhE|8}%rER}-F{|3At^#3FNKNayO;Mn~qXdlm9 zfU1(SuKEXfKM}N_4%Qb)zZjff3BUiZV06-Zs+^jLg*0;8wnu^0Hf7`@Yp&YjrY6)nj7 zPetf4@azd_#;K^qf?+R&UoS^1uEmY1LgV+w`=>@F4M)j~Wrta!bhl+nF1;94zY@o_ zztrzdFz0^{aTnPBK70P>BJD)@bHSeH!JQZXiaGxi&^7x`0#r7nM}HR7a*s@yDop^9@Nc+O0C&OB6(B2{LY9M>+ zg}x!!P2u;6{9V2#o8P3UDPL2~Z*mJ4(Cu>)2A3(6j2S2yNlZQetG%-YYBLL?@Fx%v zh=_`a2!=2n1cI4OcQVuLP6PrG5mA9aL_{DE5fu>;hzJBC0)dE#Ktv!SA`l2fLY?LM5J%#>1X-m*Q1j~Tnw$V zkL}>Pvf9oTMSK~{(FNygVLin>K8@a5Q!;6L)dPwHe2h zzR`12Mz`Fu3AZebJ|*I)fI?lKdHbfFY>)4BocN_;KT^gNt0q$7?so7YHLOO*eyJfd z=uhygQlK9H9DJ9n^LKfI<~xFZ^b}n|oZYc`X9CZ+h#N3VmAZyEw}>)ahVa2^=CietIwkBtB)x0tA=ug#F0Gw$|v)HmMIgm3?hKVgWuPV;*W9I->ei&BdB% zFE72blGJSnRBm0oJmMVAO>Rd}tZ%5>R>>zt6pjk{q((kzz%?A8Yj)8%@=yz#a7){8 zOZ6GIZPPxxQ?kniGYz?DC#a2S{Dw>DjU{L!k&`tj*A|Sy5&nf9l+g%+Qd=g@;qE4A z^l7L&QIB$Je}K7@Hs4G(Du}}#aMv$U`8@2H-09e?7AE#ug& zCzMJR0&M`3GKNICrz%_dBV`I?S~u-b%__%E>n72?*Ji&Wb6+dOB~OlRLud81bwEfa0JzK0@Wl3`xQi!-oQmzh9$B|5eIw4JYwAnrYO+k z;%5gtXR+8Y_18BKkiuW3A*(( zJ|g{7I2^KYYwOIx#G7xytL)CWuTMBN1-nw}re}LhskGzo0d6E?7fQwZ_4m#2*U9H? zD32iu?~QJ&dCiPj%>q=%0~uhA6QN(lYjRsBe@E`Tr}wl1cOea?g$i>BZxyw3QP=lU zwOfzA_>8_-ckph;O|LB^pT4N)A8!%8CiQctjx~Tf@+J1+U=YP$a zT`QXZi2=XiUGCYvbHiPDU_Zq0Mc4FyUnAXp)4^Js#6r5%PC%?b1Oo!lsU=UkZikS$P|6!`D2o=5@E$;p_@_(rlQv6K}HvZBzHo2Hmh$!eAeoyyTVN z(et4_I^X@LjV>Y{}BkZ7>(AP)lujr$pV`TH5Y~Wd1KzSTLtT?*Mw(AF69>5J>yvyxKcLEvy&AfMnpP~(MP=L@ubT8Ln)DItS2gR` zFzeU0HmI4Ta^PrYpN?{2>d7k@zy0d4HsSqVYu7{T2RA*Ge_>b8gIWAVI{?e(c6Sm# zSp#}^&+qPm8Qvq@3(^YC?F+n0JPh~V-XP5&?=3B*FMNR?P4Bhg@RjYluKShq22cLL zk@vS;qA1*%%a4gZZB$yNZ=2>pc_A9!t<*BnE22+5!Lg~neo?NXTZmo}eKFOWvTN&& zxjxbQ>JpxBBRDYI+o4}j{Sb3~SI!gbDEs2`t4X$aNn42Lw3^Uvd6Qa9>^33trQ#nZ z)b3eAmNMPs(WM1fmyzuU1~!!``~xCWd~pB( diff --git a/src/ProtonVPN.Vpn/Resources/32-bit/libpkcs11-helper-1.dll b/src/ProtonVPN.Vpn/Resources/32-bit/libpkcs11-helper-1.dll deleted file mode 100644 index 073efe4d25ffa85a95bc4d79899cc148cca8a3af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84480 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 diff --git a/src/ProtonVPN.Vpn/Resources/32-bit/libssl-1_1.dll b/src/ProtonVPN.Vpn/Resources/32-bit/libssl-1_1.dll deleted file mode 100644 index a6475dfa432d82abb52a1f456c4092c981cc6b30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538112 zcmeEv34Bvk_Ww(hwt)s-fB;ph6pUCYV5O*(0Jcy{L6$%z0f813F-F`<0;pJ8(zFea zAa1CmgF0^LIIdXghAjmOhzf3l;yya_YDF0lC~N-T?|n&{LUEbp_y2u)a!1Tebs;t9ok#NsGr~6+w}9Y zaYd28qd$L9)Qs@TpT`&O$M2W_(0*6`Jf<)t;`0lSiQkDL{hs~f3lAXt^Rn?p-Gk$b z?%AJTxD(-f_Kz#vCw^Zl(tan1@Z@W*bg`_Hwah+BlE�rKPU>u86>VDaG|l(sfLg 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 diff --git a/src/ProtonVPN.Vpn/Resources/32-bit/openvpn.exe b/src/ProtonVPN.Vpn/Resources/32-bit/openvpn.exe deleted file mode 100644 index 730c402db8a73f9e853eaa9b2a45f21f3b94f5b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 748032 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�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 DMHA+D diff --git a/src/ProtonVPN.Vpn/Resources/32-bit/tunnel.dll b/src/ProtonVPN.Vpn/Resources/32-bit/tunnel.dll deleted file mode 100644 index cf20a719a59983b4f33267e542990141d6dad1b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2766336 zcmeFa33L=y+Be=Ex}nhy)eH?Z*hoiPO)y}hQPUEzfuIpH8Z{^?A}WKZC=7H5RF*&| zA!Sic9KmIDW^i7eahp*`2XPy-K*Hj}GAhd;;CkBz1szFPH2>f4R`rtZIPbjYd(Z!z z@0>5^q^s)Iz0Y=^``qU~cd4IWH{W8lSS&XDr~U;~AAaI~KGORPeZ7z6mEP~>tg)8A zn^QUCwz8sU9&>In}6Y(6TZuL+g-lW%dhg?IcwT4M))n3it!dp zxz%p@di(O5;^6mMvT{ze_OV!I_On=82gu}xzPPyJIdI4OEQ_V5q&j)E6bw%=(Zdo1 zOUNk8#jnO=!J*SE4+BISt|bYu-Q2u*rlo!nCDZ+%Z~ti)PdBfE-vRDV7qg5A{bGIy z<(h8?kED;hrU~C?u}mE?XWC66NalBU|IA{kMxJ|cosDbCU(jL+jxe%WW;|}ko6{|p zjS$XPr={dVCX1zUL}=z*COY`D>P#s^%PYBjO8f_ajC^Ag zh5p~o|J4$hF?&Oue#=Ht<>-NJ9RkHVGYf#ZB%M6$I}xtkrNO1 zufiMcTt{_3SJ~Ul^@3)He~yEr@5w&P=?mvmBlhc^srbuw;8X)hqO^n zl+$`eI&9G^sh^DadWh|(^nJ0EiWTC|p_CDby zjoBXjwvCr|rs4|mrOe~dj8fhw+%k^~zj(RPc!}I-eU_SCAsZO!^#mHOOS9BAhMb)t zzxVbm{&sHev{PW}!6`Rhe?zm=l9ZJ)G-$b6JJ-ijrGA%I?ssUFerH=xz_e5dT0&IP zlrCjhUy=O|ZMY4k3U{d!je6?6S*dvhm7{*BzArj@_p|61b%NV@r;~)MuMz!!?CeBc z)`XD9O!}l(Kai@_yi7DdTElknqN88@E%&>` zOUNVnv|J-r;y$4;3UdyT3Zs_z-@;Rh&YT%KNgE|~Mj2Wf*O!l^zMR=bUzA$bo}n`j zWy=an=uD5;d`a6=$dN$%2p)b)PY0Ts)R3w>qr2b>&opoi>x!#z7c?{orCB>&(qKql zEAgYcY>^*(gnHH9N0yWL94+s3`O|FvE-9Kb?b)67>`i;lPkSy(doJnv-08b`mha~9Z8N9& zE-Aghcgh{(uDavmbBiu3nm9c??(D$XH(q|xt!Ld@KJn*s#$9>Mt+Q{bn0M9r_uO7q zdG1*^PWt&3SI#>7((ttMpU=AH?6WJ*x%;BCX5CYI_V`;To;z>;b%9yukDqkzjN7g{ zR-bCP&pBk^RoLQa=+dxXM15t)<4I+WaCL?GH~jw7C(`*N)E6 z8PH7!GejC~%n>ux*2dO_S8f$BB5R#3=`fil?*Fab61^K0^^^1{bzgvx$bPn151Y^5 z@rZl3LC-=H8|dk6(DP~RZ1L(6yJZdQA4IrSrysbb3jkUi;-0y7i?X`Z@2qJI=Zfc% zHTFWF-0ulrPO#ttg}mSd#M?wRGDp_BTKGyYv%y?=0Z*;Ot8eGnNr=b90oXS2G1A1f z0Le1CebrlT7a-~OsWpRLGQ$o1dstG^C&kmpBfUW^hLaIJ3e%Ag$2-xHaAJ~=??m5# z|Cai^EA9DGrR#ew?fKrc=k)g@)8M7!*V5jfl=i$U4gN`K^xx4ne}?|~U~R==I9rgd z6T-vA5FPw8**?X!kDk9?Yo+e4b9o9d;3N@Yztmq z61Zh{ctrTQ!mZIE1orXk)G{^X52`c$`L$b><)fgGfo5gdH&D39QJb=KCvNoXj;nhl zsK}=_b+SKK&mW{;XANvumi`s5)dhY($`|Er)@O9$#F5zY zVfvDVmRWa&JhAIQOn9PvoF4wUK6y}9^~mYr(#X+X;nTr)(ex!FZ<-k%3ifmLnR!{& z3oSFleYGL~+yg&iLv%GLXD%pYuGXK4&}ScB%z>E1t^#W4z83~ibJ=j{M2n{aJy;)zwDnT8x22;fpM4E12_i-ZUK;|4q zKK=$E$es@alpC9?te)(@x@K3{LG1M>#%|6)+Fv5Q;M)YK!34GE{7j^qkfz%gev!yY zi!c6$R1r);s!y;6)+@i-ff|Z##!pb)gm$C<86B?y$C0kIWB$5nY9}vFdkd z1^O=edOzBP`Z3y2^~h1-&!g`mQNPRz+KV)_oWK@Ee;PQo;j9zwT-HzEkP?xiey?et zO`Du;(`IH{0>{GZ(bT+=dsJr^L?dolwk^ zDY3|TQnp?6eiqVnd%E6Vi&XI$fF!_9BG{XsL*H=&e$@5qAyLVj80ag0xV|(y`(gc3 ztGX?)W8sb3aM@ya!oi}TqH}Lo--VD`OHXuKX(f8S0cl%eaKL1~J!ZZi<_4fOC-za1 zAYZ@=8LuF}Vo;JB*gfa|*oo?QvL&`2MN1Uw4)M;jphKufL?CJ@ix<*>(ZX1 z6K$-My{Wk5_p)=awFPakWEMT!zYxmn(6U{@GhMYC!YAt4HQGZkHf9LLmrV34*EO9uvfqNHo|kt|o|8cuu8arUXIDL=e0Z z1XIQNCWu#%2<-$F8(lIs<_Jp@fi{gSrkcG?8S2`6?aGw z0;!~eSAt-wI8%aXt^OK`mNwbD!UM$JUYIA|CEz$zJ55&XM12&m;?PreOPkFv%fXKG zD*g=P1>5VuSXx>7EA|_()<&l4xEC+#%}lC&`KU8pcuR|ycze6?*8L0;ZOY083_~v~PI&O2pK(Y?C`K#sjL&#dR#*B@%Gp@o zpBCpC24DcYKARTd8AAqmVnc@rO%c$55*h!+_FutvUuD>CV39*T7;?i! z@)*PB*MQQZSU1a_y3(IMyw0%qRks*pJ+~%DTOMt&mK&I03lBn%59l^PcZf4i1Wa=X zMhfE0W>>pCL?%WEmg-90O-Es%@> zIKBU^@?t!eGGY}Gb0qs98zd{dv_NPE`Op6^Y2z7*=6TK?WN_}BmY_wa^n?dzyUA-mWE$5#@Ms3BB< z?a+NtY5Tc_To?+EtR5S#=6R*3w(v};Xbo64EP4zBPh#3p}XasBs>F0`g1z`=&m$; z(7$I)@vXx6OPOU+7E|lznebBHSIhT&x!9u2V~DaTE&68Y*L@)Qpu?0m%FAb8QvUY= zL|u<0e6o13cQU_x&M}_T^h4l-<4#?<}Ejlo!5@eTA`$3lIxX zn?;3N3%5eRUJN~R5DDN&<+j6wpsaQevwn+b%HON*BpHD%i+Tq>n)gw(mYASvGT9qw z3Eu>5EDkg&%ck)SEF=O`(n8wd9K|gpL#2#T1!2ER0M9FlATb~$b}~#(8Hj}0%5Px` zau%zHWIp5xyszB<5#B0w9r&efzipR6XHlN@JJ1=-JA^!STbO5cNggRzUidNZ7*vyk zFSkCAagN%hcn_Gxf$x;1kK$62jJY7(Jqf%UmHYpQ_eve3x>C714dt4gZLuB$kdnM3fsIPtL(H_g zGTWlO@L}FIfN|?{pjP2$sVDli*1&i3?#$b$ZfW1ybQIw_>sNvIp*I_1=S#hr?Dwf| z#tVwkc#QV(IbA(^5Fo`D*B9bbo2WAgX$E1~t%m5+8T`L44QQ*kFoT3wMgSLA>zwq1F1SK-$CoF`x49I8Crth*T)t)`o4d$fs7_dxI?N zY0;erK#HY(M=1DEb;t3C=GnCKVm-Cch~wM7-uA`ANO~Aa7b0oFS;x11v+YaeJ>~tv z_R!Cix8C3Ob>s_x3Y(xHi46#_KHj3NXwoNN+o_uN9P>A*DRz-mFSicIEBYn+HM12$ zz2onlc<;h{ceE|}K5`85dVqpE7MwFJF0||8^1}6M7k+N!&vYMtX7Q)006&WhAk8NH zZ^QrR_-~)C>}tmU7x-TbDQ}Ln1|x03NG!Mn&NBLe$6Ddp0b^Bvt&bL$Wy}`X68eg7 zwDOaWYn4Nfqt&foK1=8<-MQNkp!#j~(c^LPoec4*M~wt2yrB?YUOU8xa$U^NJCc7` z%D|5yhOwOB-xciznZiSLS<$~!KE`{ecAX8colybt;I$L4jrZ`m(Wko9_T%6FCDa?O z+RaL7$!m{%V}+H0n~?aE@QnPB4`6|CXnOiKZVDUmgqzf3eC-#fcN9lbaLbje+Xj=-!u97qbN}LJZ)<$F>h){vsne3IB)1{|$Vl zE-LHC3ur#gQM(~DOS{CTUE!+T8v3QO`U>T6vkz0lPCuuE*^`y}{ZbY1;1KVj86(A+ zP^sL=T5pTdFfwzm>OMChBCjk7JmNQlW!1<&(})yV^#1RDiFh2GM4Ao{2u1-XB%iDdmovBvlSQyV};@1(+m7{Ixv`o%a4ksL=Lgf016F@%ibbJZAo^^szF!VwH6JaQ~W(p%VwL4)vb(q4~vk=1QIzOE$4?FzB$o>*=7F1T3IS)5E zl-e6mlXy@f`-WB@aVd3w12fe}-1DYZAL$!Dv2X)==CbJ9u*pbNYJbmq59Zc3hJAoi zifY28OjgRmq{5a*)|N1U(&hcnlMP0`uRh`lomqWkkWxE=K+AHqpucv*A_cmTTeuY+ zVp;S_z5x8F8CL89?*{~m@RAM0gx6=@Wz|QrLwVIl`Y5%Wqe>@X*s(;L?Uux0@CCYp zR5JNo_ul}qV-779h=#RRw$LS!4o4=eN7HzK>X$;vaVevb0c#HNJ)%^A$DXiTqWh=8 zP_fb@XW;)t*ZvE048YK(;Vqsb#h2Fb0{_Zldo}35v~XmdQ*FlJtWvi7e7NH+L54$Z+Tg%g8;A;Qf?J-m z9$`e#wuXgU4W={7kCf$QaMy;wE{Xw$M_JL5vk8;v1GF+{V1kpWS2_X}4uH;C&p5aN zc?uyvpCZmo`h4VvjuG+T>VWeAaLQwih@KYujvu(er9lKn53WfzWkhovkTL=SYbH_6Ia>^}mJ;fV8S)Ac9_hh;>ZU%6}Mmb_m1ktz51NaxZ zg3qjv1bkCvJQ!sJPB7scT`h1p#4WOmfc_-l|MGto{;4q4UFq-ppTJk@UPr;me%Zfc zmDzZ$g09ZR%IctUxX~A4^UOut^kYc@7Yo2#(WA*?k}8dCF3nBnX5x0l-=odvTbU6O z7CZWOV@G#)CLI_rD1bpU9GL5G%(SEDU)!A>J@hsE>@%xigicR*r0M#l)V=wfa?<;*!0}U__@}>euQZ^){Q49BFc3wi@pP z^-tnA>{Q);bb>ZfQBV51P7nb;c;pfX@JL(l1ZPlAPSe@MB2W=e;{YEVixULHp>ZgY z{VXI`Ueakxrxhh!T0H~0ktVCwunIS-@wgQOO+I#3KZ#$h{(1bip^ZaIVxrUr%2;^U zWzo{QTB{ifwt_Mbn+;>%=w8H-8kv>;my=YtE@3uHr%Ip=`UBem5$v<7m@aPk5-Vw* zHsI5l@kQ3UQD38fgVto!C?sYP=Y5B!AuU&Ae^D2nP$pk1^906}hYG~|y}5qpac9?+ zK9Bwk>v#Mo^x)*R3?oc}UVw-EF1n{(;%VqyQU?0ECST!cP&cXfHG&N7Qje-V!kaP% z6$)ys`b&?a02ZFPL>shBD=S8Nu2xY3VK~L+N+}G|XUYM0HP$6fQVPjsuHu?6WVIH9 zWzbaup4bruadn70h|gfs0Ad9Y$h#o0B`kfY`&uM7G-^&%1q+LZRCD=R&{Jd4*GM7} zHx{RW$jI6vNH}s@VjqpPUv88v^I8rT$a9Di`n; z>Dg1z0cMjR_acpZgLu80bDcZ#@3T|(R_ z?pK#ca_lpn0m&TKV9JJk_gKSaHkiCX?lpjEfof^80bsGyP;@D$X!hVXtl~5j92u~F z54*eAZ~P0T?l(Yg##G=Y*EA|MHAv~wsG$%I zonz)x(fexGd21|M4|S|pTS6m(MWFd$+mU8jmdG}hBGDdHGURLM3i*op`gNV^weurK ztziX2++Sc(Xs@=Q<715S*jI?>?gAs6MlcwGJw{zS;Yo}`eTm(lTBYPLUh|0sJ7PvroDdcJId*eY6&frWSk8eb z%)|>7Qj;;BlPlj%<8j*;^h5sZPI!wCykkK368a&G<*7B`U8z|`uxL(vu|4HQZ3Hj6 ziX7J28nOq*M|?&6Q9{4u^n}gzv&_`}6!f#8I?Bl# zvww2|5m(b7RCgV2rRb~BuuRd1#voCO{ic*eNY2>w0KBpgh{n}tii^F1Q@jYI%oqPB z!pMFP^Bedsz^z{emZIouKq4F{(DWOF=!_fIv)$!LyTR0Of)D}28$EAg5YYRho+8#JM_aCt$^05SbNoLl!~GDXO0%yWorg$tLxZ}d>8k;nt)VHJy<}e} zIvH&_94(ur#)|%a%t#g0wG}Hnsu%ceS)qyXa%4)~)}Vf16oye7tbW~ez_#S`&dwed z>$;||vm#&gu=642z>A|Qd}qFT88UXT+1Z@bXe%mf+{+gb7!!rLe|YT%s}NsIehBJ>PBXhRfE`(?hSxm zUtp&aSp_L6t8c(W|F#$wR*Y?LVYeE(0G&LYCBx||#r_ee^c~7z%j1eV6T}t+tg*nH z`QIZ$kt03k+A$Fwa|A>vyJ0*wL1F+Hy%Wt)&6kzOXHYIZSy9&v3B#`kZEg@{G#P-A zs_ToMhhpSLx2HGpg(B{_nkt=ckE+gy+agToxwI>7Dh3DCN}@)XOKbwCY_MYKtuV-q zk^K~ZzS`6z>}qq(jH;Bx&euZDZRRD~q@Ic|=SdYj$TVVIx8{5|n z1u#rKtv-8fENjcxwHvDJk*4FZz3r`1p4+9<6hi+%cOKrm=FC-5SsfiodBzu~aPpSx z5s1-&Ds;wv6Itu)MgsSK*+l|r{5zF89k|W-vtfni0CX8z`gGaS%e%Jpvm>7ltv-ez zG;o&|9*7EXRDBHb;#S;flhC&PwYwIb16lY%St+%00k;h|Y#f)5~ zjy;7o+ZPy6RSZDv*1cf105rPPA|w2RU?-BDq5&L&F2mU3J?JU`Vh@UI=UKlCd|PEx z+hh1wKg?^-`!;Z79_p~9ML4cNk8~9ZLub?K3*&*m$olf4efYFXe42F>hJh9(QjO&5 zyR#k2vZ=U(82s&@DAnBhAL(dQmYriJa?jNnxCeo5ZV%+DU+r33?XK`ek;Y;*>AdALSSV73RW7Ac~107{Pb% zlI3k|3!s?h0T(%kXCNpc0y*ABI@~<0BSHICCpcn#c%$FrP}hrg1m@Juv642MzZfXu z9)SVj=r7VpoR3+yuw9++!0wDDwL`qd((8#<>pNYoaBBVK4u-ABQ|6BK(dWAnE?+Nx zEs-FbUo9iOa>5LQCQfm2PvRr-m7E*?nMDU=Z$d}pwxfQZG4+|WVcid((#81b7F6ij zvO<&IBE(8B3Oi9CXgqLlmQzsQ=s(4K;LQ3TjU`->{Xvu{Wd+^^=ZL$j$}z?pE+bLc z(^g@t-5So;DtxH!mCccFtucGRg#c>J)=+QYs|1Q*i`M_M(bxd8Re88Y8@`vf2bS%| z!?N8-ThW~JLGRrwYZ_OEd!i@W6?2Q1!Wa_5y+O~4Enmh|5)BpB_UdH?P$++c3Tt&w zxvY;;tqhw>lv>OmTJ$m>-!x*!ILOAh6Ui8(kp;~WD6=WcusAls#lVIJypev;h|6&B zMx5R*UM(v~{0dGVC~6COAT>){kbyr7=<@*a%4Re-Z!Pu(Dl5TK?+?gJs1Nd@0e2!V zF9}r`0A(wKZnOpSB@CDdH8(a~pO2{&5K|^X2n*`>{uZ*1+6`MKv-eIGg3nK^0xO!JhlUzV?3 zjZK%K3$!7U#9iSN(U8@#Hua+X*iHH*2UfXl7Wbj3K3{sTVi7UFFXj;%AjL`&0#h(% zBTDt6T$Vmn2OyGI&eDr=Nu>xHr2}SZef*uO&5!D|Sw-y!*wbd8&5^rwnEj|v+jKN+ zhcW=aPB>f^vDYD^C_dC^ZeR)JqSW@ln*P@6%*2E+^1&8=f*LZd29 zOYqveZHysQ=0pdMoWEzz_4Sqhff(vSXV4I4c+mgO&%EX zprc2d9kfn%J~DjdkaTXpN=ATu%IXDx6yH^YN-0WERwOAqOHu}o#Rt$_x<~^#mOG4W z)N(6ZWrJ4cR$i@eDlb%cdO)Z~2m~VFR9Ar@2sN|)j4z<`cR|C}h`Vk|`rK#!52kaU-0 z{GGHUu*-yt>{1P7J=$D&H0sgQizBv$k0lJ|iG=yd$5LvgS`Zsc!vl2tK2?6WMRm z#@cEuk;Z}sR@Jir6~S2~V#y6~0N;-r=AZBXfk(gF2^Bs5ORA_Q9SYbepEkI28?q)kWY`P_x;$!G zY0Rz9FE!RI=K6(2h!$c=+01K-PV zVI;m`{}!K8=R=z}NA2u?JJ2+Y?$0f|zkA0^t}vpP-QUZ2-4^88By1kiWFj6FJk8R8 z+H|N_OlqJmK`uU6q!F+u^=BIkuP{c)x0kIT@X zH&MsXA8FoJHfa@JsR+F{!lrq|9>kc4OOp!VG86z|T}O>IVPhTYn9}H_sCE7BQgIic zMMvYo-~bG%V^TSg!<8Mq;~a#lQmvt(+wixX()gb8)0D~Rk{Hv4I_FPQH_N1MGed_r z<3ZX1w~EGl0JRYt*cP0`c7+6*C~47NK|~0wJ1_=U8XEAsODp5Z*%8|sK@=nj;WF4pPkc=~flZxEkf3sM>p#mUgui_D0o9BYM#MjCTTr~Mr{RA8;IY>XVV zBHrtYAWq45*CyY|8B_T}M1Udo1mZ_7ut8pNVKmP0Cj|{LTWvairB0RpV=1ziQOEk> zk^W-^08jOkXTAbvP|MhI;5DUPxnc4VzgQbXVj0Voz}$}Eu$mKk+abn zb7gBhFvg%xw#LvXF2D<)FDqAy{k?JWb$4{OV0;4-E3FAS^)jj6M|;NATdC!SUXo9^ zRr4B@SIf|Emw9_&;QPG?RVF1^qL;SNikozx1tV zn7*}sU1{y%unUfK8Qkl(v85<%iTTtY)o&<3vHo@x+yk6%;|3{ywO!`LMvUR59X@m1+fMq-K9)XJdfY(jVcA7KQYxHASvxMIK_8p+nXlN`)o0FSYnQ%O zpMh<0U+eiFq*ukhEkEuvGc=H}=jlFkvGhz=-UeEw&#YC@S4i`OzriT#_ZUUxeBAqc zIgZK&u^t&;^$u#oV1!{a&|vt(>&ucf&;^$cc3cQ9(+!V%$AhKcPH(&~Xuv}eZhMlP z^(sut^UzYM?$TR^S)53f2P)~w;u>V->)DnYrAJ#rYlBu6gqfmvKxR3v^k^BWOnS8R z(z-SyJ|)`=(N)07?b9{6J5RSq($gJroSj0tr`xfuJBRfXq&A2*uR=$0jdVq&i<54z zGyT!Q7n=U)p)3C*f3y^}PoE6Fpb_Xf4Fh8z=XE2Hfi}kMJ7g>ZD(?`F9>&(M+hNSc zz?hBk_83EBhDZX886>D(n=odOt9bKCX||9gy6tZ+p8Lf+BGjj&wY9nFZ(Rh@12@2$a^)<|Q#^^@>dyJkd;b{;VLY8M)ZPZBzV;8q(XX6O^> zqsPE*-UJ~%28-C*Zot9HpK^aTfO+f7{X^(Oh=D&%pHe4xQ5pIbvq?4R3jY%of3Dw)sVp(z7pN|p(QMr4*J1J&VGk?rWBCcaP>j_u zZDWj*{bZbDH>yy-)`r~MaHp&u>xb)c9)q!3R*l8J7dXHu%!Dk2tFbZWkIg2p9DZ{{ zBUDRnAf^0}OZK`_mfi|fI`{vWHJ%~Qdoh>Zpxf7cDHjxo1p%;acOjYv!hL&CI+<_23W+10n$r#srDcsip9nw=R{-y zvFLJ8cUzLW%<-(T50yI9f6ZPT7c}He{IY&FQZ#7pQdVd{95i7Kqcs@VzR;@|HEW}_ zDqG;t!f!Zs(u)Gsqeq25ML2&5#N$I*4rlzlQcM?7erWrSz@bGKRo#J2xudJ5;QX9( zEydeHpXj&0y|TJv(8_r|BF#Sij>JQYuXty;ClSZ~9tXgu=zP`)Y)#(!GPSvVdsD~I zF*!}TEdaiKpw~~7>OnCTVO3nN#YMMo_$VPdtmVM@LhsSM-f$TN#QjPl>oiaMMUH7593bMT6dyr@2g|4TLa z1zx|nfO$+P#!fLOlYpuoV0Fo=N*HlYhkmIlP+x$=J_hoM0!!v zvrpU(E^)RNgg=RFf{;=?PsWuI*r`}az{6$A{nLt z$H4$D?0Jno;E(GQ?G2F*WHN4vOC1s6dc7SBOpQ=aa=inih~(G{+V1XBpm@CSsHn+tWw!O#?Jf6a=DIV zIeC6nkCbuCN5M9fUO*HG?|)NKMum4J6oN&CJA= zbE~Mkr(a3d9ir%%ZZ?E+g-g4{i7X3%w;Jj33WSOv)rN|5bg97MXD2JLTZ-cV>{8QE ze*_^l4H0aJ&z)8jutdn=$p&ul!^r@j$TdVmA2e63F~qVwRV<=)0-EJ7 zxzfK&d*peVL$ef}6@U(~O(RV4TR2i{2@0 z05iu1UIe2PgbG!f@Z)f?p`2?$u7{OY>h8qp7&ud6Fg8e^_K;HZJCuYOs?;a)guKat zZF8qQ1n1?{hjjZ?V>u#7CljsaXb}? zT!u0g(4-^{pm?If;zf}>IkEt{*a#fZ#azUgQK*Q6!ZkRfkZMzkqe%aRs;@qFw^Dl< zxqn=$8%`RF=aUkWfwsDQl2X$0x%RZWrEv$Fe;0i#h4u#Amir&1u|ZHy_9kO z+mvr?2K6nv6t+0t_nA_I88azxh}HsWW}TqH1?r}OD^N89mnCayvRdj_cnMvZ% z|JPeS&x@^j^wCELsUNg|3hrk^C^OYoBhNnMQ8!1LE!Ge9lIksA<{iz9|1XUL>N-I#YI(!^yAmHLhQ+jqqe!rh}kZsZC1 zCk5V{(;ID#8WFn`N-zz^n9DO#Rgo`Ig~rkr_}u{L644_GRpj!P3RE@Afy!x!lTq6y zt8Yqu&}{=%o3RE3hED9AD#y2F-RoJ38cP*ej39*C@tPYfiJp_-S#LM)k6vT9)UU8L zBE76@t4C<=kkLNlwJqzJ^Qe)|6Hw8p;N5U%v6kQ~&Y~(cj{*qlH#b>#y7$*xKF!-< z)bFxWUp_GQQ;l!DHU#%0omoSiPKDY>buB1*|cxE)1$%%CX@xJ^{+6w3FiL8T34~QOx&C7%3rRk6>S{5ETPa2#>h^R_O~!ZG<$3kai>Us2j(Qo*oXGl)$GTCHI?9Kna>a zx%kJ2S&8{?U`|Nhm>V>j7E*n3+uuc8KnD6(zl^6 zMM_9cDtmaC07gfmABrQD!z9{$ISsU!aBnBv4^YN{Tf4$24hB}OHe|6h6`ia2?K?GPsfZIklzZf2emjq@?<6ILMm;~PtMyZ$&NRsE$gb0LxJ0QJ} z7tsp{NorH=5onVEZLg^?So|n?MePQ$I~Cw2;g)x>+F~fm%X+Vna+SAuk6aGXVgjhS$C`ehDHIT?t6;*d+Da$?uCDr(J&pbZW-hy!u zXq{}T&|_On$tL5`;#Mdlb`vDezXv3oe~(lYEb1bF5(rSYk59{bI<@&FK#nfJXpz|B zJw|>v=sF<8Omv?hHPN?BL=|PCd7ILoKs5bwq@rX& z7uIe<&yk7qQsVp&kfTqSf>flA7KkglK{upZbiKMm_btqFCc1x8L2o6xvw^O58?521^B#5oo?t2=sy?@X|nE51fh8INXslk+b&@w%+0bT*$v zYD#0zCB_06#Y_p`LyUG}+-x`k)Kx&v7uDThEAJNDd0nwd{+hd0StqeQ48YNwfvvj3 z8E>a2D9iTBitTMwtYNkC#j$rYS#Fb}OK15dq^7Vei5S%_5zCNM{ES5GHhOzQjq=6) z-5|TJTV$o(AlocWUAiq8Ok__1aCEk`OecmzvPL=WVyco~^zR1oKJ?F-W?>UjQJ&#P z`bm<@Yq~}J1agXeB5pVOaf3^rc>0}8k%qcOHU+6EBK1*=zJk5U)S@CHdmDhG_W@aT zN1wRa%?|&P>?YhPugL2L{r6He(`$4OQl;bNO*&rBq1rOh{|z}skmye|d4)3t-wLi& zP^{UM$!|@!2=79w^umJDArqs!MOH>++W<8BJK4o3O3elG#--H!Q|hoMbPJhA9aV@6 zkTJ6wZGeF+U0U)%sjPP<`x3BX5j&BJoE0i$e;Mw@wZ!ZPLZXlssobzgMdCet?Jync zZzR+^(xBEDP|E=o1&X94nJsfRrRBViI6nvADEAK%XHvAdD>IzgVsT|RxKBpe6nV=r z>@(lBA{pPO`in7jh@s~4-=Y5WGS2P#a4721`}jC1E3k9%=)?rWZRK)WM@}#l8seP^ z*hYZZcalVAOfHxNDJ$hL9aggTC zYld5ttB?H=Fnwy1oXX7EZWVZ>uSS+gcAohD&q=ZypjvuamLz-2f+Vfyj!)8RZscSr z%%C+iIFr`umq6<>#){w{FFT7G%Zb4J9{dtg-iYv1!0*==_(O6D(5j0$N!9dZa-xZo zIuP%AvCWw21Z)f9S&TcHGhlena4X(Ff(zdRL@t9U$JKY+ zcQhRtihzti=a6*=az4&-&-+*5qG#9tT|$2n4=DXKE;11OxQt%{I-7x>-RnM?>lGu{ z8eABih*xYmn1XO&I~@#F;Odkii{S$yCUXK)HG(E058#pJ(EH21KIZD$PoIVcPZ@8= zcojd;R9br7K7TFH!t@g|$$~P%%tegKvh z0ACl$1S|D00d_?w^<@Mb;GJG=XtBTJvhzS@3k8n4G^cYwOwog zzgWUfta9g)hay$M*$hA;eBx zhOK*;7AS0l%1#wWAU;4V0EyyaoG-yd9dp*=A~-;KFQ zXc83^T1y3m_E8BDt;DAtmit%Xe#u%2tOYvA8D0M2mPPny>a}^xqWo*EktO3r#mB=@ zH@BrMKj>ONobS9ylc(co**yM+1F6D|_%dR^fWBzhnjzZH3#k;gT7le%SsgHbd}~IY;a?Nj286*jlua zg&o?xw!)7J4;Fp{?mF5(i8OUIG(=h)kt2?Idm~3|b6n~ky?oGdZD`?kt#{#;m|xBJ zBWdy=EK)veOH^6yRGRiVdgJD#rcYhHcNA{X^8J7p<;FfptF`b0NbL&%E5A*L)zvgTRfG;^JH*r4L zf>q9d8XC~_mE7yB?jb)ro4#@Bce!}#GuC{4k4E6eWZ}atsl`D>lCV7w;|zBK;W5u{ z^;pxFp58~BVh;T-N35s%J*ogSD7EYvfSGJY=+Edwd=pQ1Vew8see$s5>c>r=+Lj!{ z(9beQS(6Vg{?2(^W0NOLx4vN5F@XNY9_h3W;^FB&y>i$tD5E!W)Hmn=0@R-NoxD99 zIp!PGiIg4NL=MjR22Dlk(QRMmwD)d9+w`<=K~LcAeMtRq+flha&KEh{iFu(P5nbPg zoqI79?7&{@j-gG$Ydsj*YH1R-rcb=Ro0~qdVdH-(zF5{%&M`55kLAVq^oaG~C=x#R zBHh*u14|aZ^f?ZZbhd7fqk&eK$C;6>0b;k$U(IuEy4!-M#Vx_s&r!*3wB zfaFHxj_%58V`qbmWDCBeWYP5ZJq5t2MU36bm@fr(^{J`eeD>Q7CtgvnPV zMt&Y9SH0X8JBg3t^ii2POBVC7fq`pL5|RTqSgYY{Q6Yn;3|I_xbG<3YelESgZvlEOEGjw!u`A4<~8A8|m|V#gy!JHY0W98`oi z;J|4F^zkcf;WuC;aT|LX6)l$uLLvMh08I%icrPcN*LAV^ne=ik8`^7^4HG;PJUD}m zi_0dB#>690Tt!vAt`Z(C2EK^QMiwsFWana3E@<-Vyh26)<&lov7|S1 zQ38mD8M)x>MAd-~i@5nIj*ImQWWzzX z)^$sc$^LX%AC4=HzI9m#ObC$k>{~9^bfG8C#R)5&g@>VFSo4Ap%lwk(=>@?QzsF&G zHHIfe6rflcG_fe~p`yFNqjrT~yDc~HwG#Oafrik>VqP9yphqwL7RQ3BW|b&w6Jvo2 zuEpZn1`L$*jFq5@EkSJf!Sfr67ka`%tc&{Jyuz$cuDrz6uWnQ9;ev zH`u~rNJbKiaJK_j3-D8wJai(L97Q>4g$#aVEYM1=Y>AYktdpBt6R_QIze($)XcRiY z8-2ljSUYU)8t2s3YV>3vqDD{Ul`#Nx@g98Yp8MwuWe^ylZ4L$>VLHS<*5@mAg?( z$Sde^h%g)vPCoD(9Nrq(or??+=SN>QZYE(P$iZY>IsTkVS!2^wRE#?h7X2V@ zF2D_za9J(lMJDYu?w`bcgBYEIcCN<9jv3=edH&$jtik=h6o=vwtg=8v%{+T;!h=#q zkV%)b*T4!57>+TDS;q!8FB*zEa%$2BJzm0<8jYnjJ%q^}gl0J_Y@0#0M?7{;oNR|2Xls0yWV^*;+>>l9z*_*Cg+l5lq)?yP-}8HbZqV*QVAQaJ ztxy81sPsu)W#8vw-I*_`-cSsO2+fx7sWLvYj;rjy#bYO{LQT{ZSY-y#HqZB6&BM~MicS52&~i{ zL1d3727|cCz=!?2E|hfx8^#y-c5WQmX_|eifeaHXDafufk%4P>3aXYNK$SUOSL&9d zG;u(=&B58PrS+^mYz`K4X!OlMQ*`#M`h#AGPYrGhMMUntf6xe)vDckI?}T zc&MfF*dLZ7MzxoW3c1Azg-|*i*CZ?Cw_Zp|OR10y{5P8Qk%GSzZjgbW?KRH7Rcs!T zz@J$3i!q6MP4ZjFHjrT#%L*h3K1sr0l29KfAp?I!clvG-(};^kq}0%Nt*?si2D{^6 z@8t46F*YDYovHE9oCJgqn+P-TO-!B`2osAVjZ~wHG@97~xR5DmIZPw}sBs^1J4E)K z@;x{EaS+L7hI5WQEux4>f8C9~!{75DCr>EMz=!X}r{U9jlTCQw?2#qL>x(6unHZY~ z17n82S7p{G^eGf%lYw_nDt)AZRI^TK50l2lB9?fmrA^#lR#A}e%YZ1Tu zCc&s|AIXkv+NrW)-8F{S5kKPURCSD_ZH)93%x#s)-it2F4-a4vaJNIO91dbW6eB>> zzu!+*H8n}!m^AvV;>WKI`u>ju^9)w`#g_e){*PqeXbf}cU2KS1#{?Ys3c=)h2lg6% z2c5G)|FHcJ{&nYONRqCCEw(el!(}fc=;z~Ynb!>Y50?JHtp$m}(&<<2IwW*kY9zzanf=rB1shp&E@e+CzvlmDG!um=#O^7 zDgJVw;Rd>~tMTvjh{W=NAmP5B#vealm90CM_@2WDUvUrjj30?WSBuc5@$rZ-my)wh z@zexgO;&@75yk>DJ4m5#n~OA)8V9Z(X}uT?foT)26zUp)!-rJtzVWv}-}Bk-crSJi zfKDaOSIv-@72m%=j@TClPZ{q|GWXMh7l38gY7y69E+@h<<06(!3IliP<(0ap&`(G9 z`=@pJ#20oQUooFS-q{>-fOLJVRmF+N5L%5T1r<;lvm;N|CwH*%XbT^XR8irHm0W{4 z&QbXYwOJSST0`>q^$kFDLp6I*0QlSq>Xh{_>*HPk!o7`a>nsR|<5lc*-Oh)QZ?%N7Prxz#C`>L2OX_NY&p$H zk)LKEC4kETmk-AQsVz8ET3sr4e2k$Z&5CB_#?imBEXglzucZBLBqnGNzld8;bO_u* z+;}BF7&S7jH_}*HxNuhiFXEOfv#|Lf`Zb0xy4`*-5p@_uQa@b5=Jg_2h>k>tlp0O1 z&#Hc$Yk+`M@VvMe^#DgRRiR|;A1s!hU#VLQ1n9%M)W4KBh?aFNM4iDFKB6Ax=Oh_% zB>Ai%TxCE~{1-CG5gD4|+Su6?A1Ya^mm*|4lHIUF+?$f`aR76Z&<`u+AOQ#YcsehU z=W1Uvzjnid{@ombjgLUu|9&hXo|7n^S0AK!9_R=0cp=La@nrB@HQn?_4A!zu)+ED* z+f9zhnb=aBcis42m8!`wvN%E;6If9^>Zl7>CLCs*6%ahdf05!2C8TggDegK{> zZ}5$e<<#y&aZ&;`7d?_9fnM`eS8q)ggh;_78@GZu#E29U3rHdWwJu?x&8lTrATF-; zMyO&Q%TUSUy4HRm=xDttLpY>uHIj2dL_Y z9GRFn7% z#-$n@HkcmkdZ1=CFt(E4cPIJ;_CxvDfnN%*3v%RnZza}Xd+*~7gdnCW?_rtzUr@4{WLF%M1= zFv4?m^2C`S78Ky1riFLJD?+*#DgD722xD{+0luezp{v1}8=G@@a3A?{sk;ZYVCri{ zBM5n%glqr}4{K)r8(UeXvVRd#>=+2 z$(W5y@v3Si2xyqEg;u7bH6jIstX&j$^v~nWF8C=5bh~<4LiSwaD<1t71G$^HlEsh- z7qW;5Qh$nxZuI#x4DCq`igFQ!)cqIB6V$vDd)cr$>Grj19`@^Yv8}SLhc98>4Xuy> ze4q=Y&K&0#n8h?_~$TbZOWG?_Hsiv}(R43ldgShXN9-z1a-+kTSJu_=TO71IvdGq0O6J+-#*@twJy(t@HU!5R3L!L8Ce+N1~W|TnuI^@@~m+LTf{p;}?SU)$2 zIZgSI0~iT9Vwlf%z`jje1avTwlqjpwNPTx%G8Mh0OciIqcr}PIq=a#uQ~_qtliJ_@ z9w);@*x&X<(eC@(F8%W?Y%Y@dKXm?7ex(ju3sFD0(<7s5f~UJ&O05G4qV#sU3$cON z@1+l^#tY@u{BioZ<+Cu;nEy~P(owpw*PKtHTOlAs8{mF1R`wS>jp9NeW!XS^3zbrq zR>K796`i%sN^L*fV(@_MX2L31L6itus!nK==@5~bgR?zT@mj}sQ}U#XHG3(7sQ0SK zfY_hi2PkMMEC7+)EWT4+V)PSu2`xwEo!y||%0`yUb9p;>+Q7YT=v2Lze4?Cs2f)3WTm ziD2ekA7fSR6_6o1a{NY)_y#q~`J-*0kfP6KA3(pJ_iYasKZ+nIq zs9dQSZtoVuE66J@lwjs>NPv;%>WGS0uW-86o{nKrw-_7}!%cY!gN~ZCh%1pdP6zc4 zx-CXy`c=38GHu0ZE@^pLB21^{PSTRwEiK<-!CNM`3*;=}%F`0GP`^Yg@}|;)CMW(X zsZOWmaW11fqgz_`)sy%EX`aL;q`p>4Bufx?#LBYO3290z`W)Ujh*}41*Ngb*XS%&o z>ZaLgPs*Xh75GwvUVj|0ppj6-$|X&mofle`?2`?HiiyYo*pQm9_kVE;Yzx*>iAflf zpg2s5JglSwj)OaDuGrw3|1y-rfxb;*0NzyKfP1+N?O8Ojpo&odv{8JI!{h;?fFZ0h zydVs0cE=r;p;f3K=#_mt@fC;wHkG{uBZEQ(+Jm2gR2vvQIPSYm+;~$&WbnyILTOFbC=0-0(h^0rqNTcfDL%VYTSY)1U5^L? zG4y{uj4;s>J(?cZcW}f%8Z*_VWQKuAGnXVXk;@^9Q^?FBE)ww^Cr$&;x$vvhayo z29wn7+GEUs^Zm2bj|1O?2CBxl1Dd|b!nCbJymhMd94i2wUsC{?%&t915c`$qpX6hX5(!2MJy6hrQk@$}dYt zgYY&~eA;oMt!8UD3r8n{(w(sr)SZR9!l!!z z$V_|O8`Xw*05r@Rq!B@dc%dxNDj$UH*Yo>WXkIhG9z9Igoq*IfLQ6Dfl_g3j_gw$k&d9Ezl~gABUii5qvw0H zIbN(rse2ZQ`ecu_z2!pOgrq}ETO6FOjxE;42JsfhNpA0P9Vy6+62D@BT)s)lC9YAK@;NH?iECRBv*xl% zzp}bzR6Q8Ru^f1ZTEP;(rR>}}c_J>DC@WNYqS_T$aS^^6W(DJkONy0Oci{6zwI>;+ zI4{X2#l?jFdTPwC7R#bsG3e7um$1TRIPc3!6QmI%p-Q`BS!zpQj9009l{Ir)PTSj2r>nOC)%V)n-az}D{s58-+VX)}9_NhFqPJx_s^$b#hf8P=vE>hYCebnU z0X#AB_sN#e+3piC&ka(=?#Gz>Zx1JOpUB*2q~w-Wft)WRr??E$7~)ZhVcxz(8R<@6 zwV04zPCG?!6jG;y+7rZgEBStETB*0N#|9ckH^Guh*Z6Mf`c+EqI9(@^uGJ6Y$13SM zo)*V=V-dPU)~@&^B90A0`_X2Jej(QyQb#iN;{^tV_m@XTIpI@eDK+(YhO$&3+Fx_L zC&*kqWbzn%-W6+Y+W=M@G6PSTI^vG8N(_05+M7904))^M^?}!(T%D64e2)oCTJi0&rLJ)3Uolmrv7%aCD&2pRs6n zR0f9EWfmLnn3V%3H>;6^nbadwS-)P~r=F4(9@1MJc6 zEQgPkrS8^#`x#K>ZPWfHa8>0~tkY%O<}^!{za@UaEMDfY3LVz!KzK+Ts-%P>^mOIHfz`3Feb9^N8Q#p z(&3tSiFU68G>x?$QO7wu$GN~1NU@}S*z#)mVaqA;4_j9J0_UaoYBN4;i3TLAUmM4e zl8hPKjO9#RHN~kwFP2I1(_WlrX+?Xoiym+wkieHXkrjr9$_k18f6ToLd{ou7_&<}( zkO@va0}dE4NTQ=A8a2^aGa593ASp%*8Y@_=w51jm6=4Es5fe`WIrn(lv=ykm-qzl> zxAt+Xtu{VuGen+N4N?)b2*MT5FanCz@Xr6c_Bk_oVteoJ{{EjIpAVVy*k?c1UVH8J z+G|y+wMNCxol>GfTV=8eqc;Z^X2BoAjSMx`7!w1=%|YnW8ik#SQvpol;e%lF!hGXn zYhG4-UuNU+M(WY@5!7mpsJv3S|6i0mhxdPY00mckUsmJsL#oJbKD5T=UnfP%E|rNg z4rpx$^yAf<{*rpg{sxRQ6)1({0CQ}Sm)uH+nPa2jspA^lUYpx9{)V@_lg3@W~UrIM}uG{Xtx zE*i?yxDQCN?B%w9F}SN{ik)w5Rj$-`>)I;9{h0RzTg|Dm{i!LE$mUAT0URo+wnVzT zl1fIeq_=s}!BJq2MB=}hHCPuNQHCo^z5j(mY6SHo!kq&yF2$2HXrJ^oT845dSHwtk z!-A3KG>N*KZM<2u!3vHh3D%n^fc)aW@g_AEdda%E!APpQ*hB5-vw@Fah$XlvJ9j0e zlsSuLxGkYMkpaY|BWS;P5<~L;oJ_(bg1uaAoehGx$+TZHn0 z0+FJ(NvhXs%Ur5w`rD-amRqIrroySN1Z=v>Q^w?oc#qg?yAw)|&JP4l#6^7QnD!W8^v zLzZMSE0sHxade`5C`3j?VWX6=|u3(fs zcDP#FbPbuA0z^}uU&ZKxvrIW4;xWI^A3%GZ5aUzvV6~luQ}*V+D^Fcv+yX`MMn>!N zEcn%P@{{~`T|5CJ(j!SMl43;N-~Rl@g0r3eh5PwC&f>H)(=R)}<65}sQ|gWn9N&HJ z_+%-GCP_THI=Xhw{i1%bdtr6+JBt;{JfB zXH!{9{C5f1ucS|j+xrZ1!1x}(-=^<+kh2iNDEZAw*}s({oZBnS93cz(AuO&CoRN$? zV8DM*mWdFGB}TXalC{G`^CPZrK6~< zDhpo!u$=lT(BylvaKn(FBuaR#>0VyaO1RHwk`MfQt|pFKd&=i@#))rLl48f{ROl>hX&!?@@23itPy@E* z1KPAWS5Wl>+Ki3r8J|zzz}1L3OGeYH={%jbiu;_}2jqT6T)T1ot=a|g1)187?NlB< zpq;x;%Kufpmv5(2XK}kwn@auV@(y}Z$yk`(@(yF&a|K-5FJ?h&-0PWuvDJS50P}lR zO7iP7QF4BDn#2PJPoyG_^-8q(Om-~7S+}c<55gdcd@pNR&I*VMK;)~iC3_A-Ucre4Z)0qFqJ9$?yK7^<66d6q2i2^24%e_RA4#i-QKxkmf^%SC?Z((`e}g@%PEM ziuVNgDpvIp!O%Oo<=ZmO#^zd6yPG#^&DA`DCgppuN+k-oQGxeBZprg0k*Q>ueMlTy zfY$B_i_Gg(0vu8`khWb|?4eDWjUBZJA;~kuzy8@PA^u>)TW>20Q6hb2>&vsoyeMyG zAm!fSv*r|`J`uy)75v%lG>pb%i{3#m2V z@S0xK=S7JUS%6BlRIXNgMX!Q9sL)?7?vM{mGEUXX-V{=~9ty27>dxV|C>XHM_(qR4 zUAe31?U{U;Td+aOsz*t)Pv5d(8V5S(Cbr@rx{95yw`= z{pMOH1N~KswVnH-59%;Q>SnaMV)*nx(4u6 zZQ8IpKKtt)+3%Dn=!;Mgeza(vkS345MQD;k2!#TcQxbF#zD~iz@~a-iV4LNM+~y4;yku8DG%f5heKryO)3o}GHSq@P32G^x}6{@bj> zYtn+XyDpSBq?!uw=FeYKKoC_5a)s%E>Yo~o&-=`RfciYqjq^WblM1m20v&R}!Vjbq znVw+()Ru}GH|;|WIPqtKyLmK`^-~npLt5{GyCK3 z4=X)pbd{3%JFE0l<2a|gIr;vA+Gi$z+<^A&4cXH?n|2j!vaav8@-A(DyFQ!TQbVe4 zHEM=*^jz6X_R_O|kpDr>KFFzd$exo2u&J5KIe!U#Sc248qCHc8k+H>EeDTqyi5`=f z%CW0j)9Hc&YegC2L5h&nns=eSB#G11+@_55X|U|I;}y~qjGAPUg?2um@HBsPNXANlrQq&QIzlz^2Fs$2vp$suvl(Wb1Pgt0P+EK+R! zSW0t(O~)W_mnK1`7yA)_0r>uPMG%UDQ;{mVUUpv{V6^lx8VDnTH{#~Rq0Hx-(hjIXe3*IYmR@`4QV z$is^<kti!C+r9PbA?RLNk- z6v}L(0x+fqlf&hL^hZVqlXU19le7g|do7ja_F(xvpY+4>5EbHYF36N?ObsMON1o>( z`yZ);WZe|VwSOh`brRlp9rdAo#;g1bWYtJ~Pk69_@NQS|4vTIi&mC*SA)of(n=%41 z5!_Lz$B(Kr+?#fLHxsMG=+d6}wDGv7fdf(t8;>iE(?!-*S#dja9NRxkjHEXpmb0sH z@@3%8qv_*$NS*`b>k}TIoM|mp8Ynw!oTGperHXvysG!`BbhCkC``-a;t_npD#7KFqHT_r>3S2PIU842v?t z(FteA5`(2GVW46_ec~hYPE?bzlMU3pF}9IImqQ2IXgH@v>>&pf z`URL)wbQ^mlt?4mGheyri`o;fc;nXMQLIqyiMLw`=iG+`WZMUiupBb*{}w!QHz@ne z2`N8`=|_E@=L8P+Epk;YR}sl`yZ*#R*Giz;dk4vdl?L57x3Gz&kQ>{g|#-Sob74MI>s zoINH__89Gn*UbAunUjMkQ;W2=+kMMFYY!~1&)A5~NPFTF_BpMs_)>lKagqgPE}xfy zy98gx?c9cg{`r}DyB{r?mXt%i__~&L#Y6NjHqx9@Y-Z4S#OR4g(cQ@@7fzx9Fm<{~ zd*c>Qo-{${N$Z)o|J*bp*J?n}N4X++t1a|zR8)t(eE zZ!YWV01lp521mIkVw>Zb3DX!coTJ>`Shj%#s;N`tLc*hpLv2Wgk^G7D8*rkSno`O~ zA*nR@3h$9rh6c>aGQ4)2s+~C&8)EV3H2+q>OZ#`<6i%(>eJ1l_M`9W{pD+GX^ZCI4 zEAuI58~!`<31e9dTb2tOG{~ev@>3I^E~sX9W1pGb`hR(5H(9|ACz@I5msbWbaC%?= zhD`6Tb}_vXXL<*r$M>oERhx>e*YAKA&U%H>l_kpYj`R{O?7u`YZk}L?!YlM$qUQ`) zqVHP8V*%q>z2kVpkxUk70?f|uzd%oCk5guFeoN>Qla)7cvT|90BL*v}W{ZW?YaMR+ zyxEe~+-ofso_HkT6AX&ZNacUYmt)5&QCLJl_dT-X(zLDt2;Y` z*&qMl6M8y@52wle{0p~fD*7#Mn4-E~Q#7N`6hX0seO*39#|5Cz!l&&Y}h8$)pFI}H_P>?njDJL$~G5KYOAhuQW2Ov3h*HWs+ylfJQ{RlG^SaKd4 zE-B94{bl1`D|V;Hn)63b^qBTw5ds>Wuc7r?YO2lofYsqLd5#RhnsdofI2sJ7TM}QP0m)Dl7B3z3)qdKl;3}*i z56ti6aS0NX*0%T(kN4AM+sn5s+aCM+N+MscM3K9`zEW$Oz*h1RRe*e7DU}bkC*HM) zfkvJY?((hJ>0~O+m6LXLMuJFR_~l4vPLZN;^ayL>yG6brI*+(eo|r?QfKi#&b_Z4O z<5`6@XI#Mic3GE7ml(?weryh+-voEN!W3!1mB_xG-mcDY8c9tbjRD9qX-+jF=?|G- z@Q+KtqR%a66XMNr#W}7fXt-^tQ6uA zpH?vDfc=G!)m#Rfysb`kQ;>ZER%~OSPfvklxs1MNxKkKdrHnNogM{IS+M+ezyj{Vo zG8LDK4$Ers5sEO26|xddV4sSCce(K@rJSnO##}|!CFX=kzpB6OR9$|8sw=44T@!qq zZ}=4G8Pp6l(EBg!fks)2xMxr6RuH7^a_AL=;3nT^9lqFTeb@(6tLNI`>tG4&*QH!h|RK1gN{v zH}N@g_MgYNN>jR0G4v^wLwYk(j)lGXMOdK}l^eJ%!8hI{{tRL<7hfJZKq+=zAzKR9 z9&~&w1XYEy3qM_~J#z%x08PYXG2=s zw^^;nty)c((Yzk?^_fxZ^{@9@tkN?GORvRxnqaE%mf}LEM$JOa2V+A?gD1u2O(`z5 zfYqA^UZ&#qq;xq&=xBbvADJTGyeS_|DZ^5K}McPpGm;`kDxkV)T9#pK5P z$gsrEG_=N7f}2_vvGJa{=^|sbH6!z=c^Vi2eLfAXUrurumi!@JSoMIhn%U1!&fxPB zB2G>1Hk2J|Vjt}NADDfD=gFCcRS6&T7Sb-0`lU71m*7$RS$!b7E%sewOY+QX-8Uy& z5dMZMy|FhFF(JzzIr(xnpgq){nRk%{tUR3&M7Py{gj|2@B~h#;$z$pi`x(Us;?kd{ z%i3JIm9;q!GtglC#<@&^oEfUaVI3EzQ@J%qi$6_{T%qr1%1kHV4KjN{bB6`Tz&L-PS1NQ@|KolgOqk-H0 zp(^9mxS*0YJ7vtckhNHZy9_MMe&!4wo(k%1*uzdNS`~gC_<{wo>e^M3wNmcZ5 zeD|=@kB#G{ug4QvrLP+w$M=P(?~hW%Dn2>>{#dWAwN3WBEY39rtBpJ07AE^eFT9rk znydBqvzE6^h%A@gWC8&sAwxSdk(gs)i%giW z<@Gn1cL$BPk+uC=+nugrzCGq5`yvC+cLc-6l2gNP;?6I8o%#(~LH66U9+4Mu4idwlAIitc-5c zj+!%_wsWKL*l0z|)BQ+Q^<&|Dq4G}egl~2lQlo}Nmhs~WM=SKE_ySZ(8OviQD~(bt zOD(G8WCc$L63&xL{uxL(kgZVASS?);Cow$F>hERIv5m{A(i!?dzb&gfMe8OCH^a+JKa@w)L?H~OG(hm5!E1E}ywLMk4RZ>iBI zuTG<-Oqj&g&QVr?GJB1bU8fiwHUWh<>9T&~7GE+X(O0(^M~GAQBPqL`3i6CE6-F0^ zVeXYq8ou0bEDTH0FoEQx=-sL)p)y(~Nt^_NIAKYzga!J^1!+Ci*|cX5xn8!d9dAHt z{UfDZhkLrF{Hg8DK)G!?@Jq-0Dg*FJ4rE8 ze@EwMtiuTKRaJHUb;X&fnmsi#=u<~ z8(lNPWTq>(;7!O}z%CQu@EJN)bnT~_HA-`8AQ#FPB3sIlOz{)44f5oiFg}pBbTTVj z|8OP^&JuBe1v3ZMRRxxwoq1PCwyUrD#dURoZv_hI74_b$Tgjri)#!3n9qd9LSH*Q3 z9w(JX2UPwcW{5R1%dm0jXH!XvW&>FhuI^@`x-}5m68K}eu62aAKs}WC3a9us=iI{- z3*L*9V<=ZBoRq>d*bnlP=S0Vc>q9bJczvD(>>r4j_3}&vk?H8JbC1HHQxF8m2O{OI zs=3(#YsMDwxo{O105Bq6tRkdjkV>qokVsj4a-sH2)kOwM_O-2<<3oCTfVs6M92C&n zm*XxV17l&#mKLBqa|j^$y7CLNzRGTS55)G~Qm@eYGE$_H zLQFC&;o)Xgv6+iK)hJV9v#}~|Ynbh9Y~EP4Otg6iJEWrM;y8OL1Iz6tLlql{H4tc5 z;h}#dVP0p;cd(8W#fgpU(l>At9MMZ|6yM+BM03X)Cy@UL-~8n`qss<4oc+#$SFwVJ zSZB-W@F`Zk7zD!0UTX>FE_)64;r8YFu?$UL%An)#`xt4S6)Uc0)D`*_f%@rYb#bN4 zI=!RQ0ec+QDe4m2cb-ultXx|itOgdGU&q@wD91QwiA-iy%d`h;rCH2X(iLHWshzIM z7B$D5QCtb*Pg{zom=if=d5iDj<>vI1aCk9ao6n0ml$WgGY~Frq zFSft^o+29MMigFX*z=&V6e&?1e_CSu(VH|XN$t{)+n5=(2NBUZuQuHn zt(PIq38Q|qCwYZ52OT`Qr?K(?ZDI4aa5Ndi_BRhY z@@Z@4Jt3{_3;LSlFoKyY=534G^;f5fbG942EjiS>Hv}2lyPesXnhS{>lir_jz!22; zQ06`#W!6(hYpX&m=xV7VSi^LJ1}CanpQ70r*#9#@O_yeiK1U5l+5g0OHm%Ru?c8A3 zu0PqV6ge_v#1sF*Q^p=j>9fhXk!v_>HN8?1*H2(_;0#t@lfxCb>iRxg6-e0x(T!qo z2#?iQ9d9_CId7~HPo9=G@Zj4TggQ>Vi1U8RbA?XF0^N(<&$Oi8@>TB{t5Q8kAiF(J#~<>DagL^4@Vs1STLxJ_f}t=xc*<-PE+vJXBo$)YesHb`k6d+aOa1MMq6Uf+wY zO4(N`9Q#Tg!lYvVrvDArtdstznpx-N$NGMA*=pcYs1{ zC&heSVovl_YHjtn#sroW!CB;`#a`Iz3fSrwq8-|UQy>lWPlA$*z8}-g#39fkZN&n= z%J`x0*3#eI8r`DlWBDLCUwQ>N9o8enU4&t8K?qe^y80c;FRc=~D-4UgmxCf9x-x%j zQznvPrjmabo&u}ugZo-5F`(*SPe}MB<6Ucp9zaz_nDm&>_$2wP@rkh}d3~yvd~&)` z?5KhTNLgFe2!y#WhcZ=^${rf-wUsw{jpOhkMf)f?@Cl?3NyVmzMtORtf1pMzDLK6b1wGl|@jnHy`ZY)(gAupx8vPJCAiPR%JoF zkbW$M-RJei?)@%yU+QA_ZyfBdaIjl_j)0WBUHS(YM2ArhmY-qt!t#R6E|#ajMVZp> zzF2<5#q!sz#g7Ei9)EPdLM^i_f*b!D1z;NSI~>F>>4*50`pYGQApV8;91YY_k5W$u zBK}V=7sP*usQihMX~Z9h?+psy)BX(Nb>!HS2(;9L`LrRJpLTA5(Ve1aO$u?sf+v$-U3<;Xk8SiZnul?qHXqUeb(|pK0 z$$(#m8@0cIC6HB|zW;<>is30`#v0!#Uj1-Z{TO1O4B(u{l!giR$A8-@`HAEG7f-&`ZKNK(~Xa{XBM(9lvl@`NR5TzEf$%guP%fJ)}cdz8Ya&j zpvhRz9-+TH4PO0j{3!~L!j&+XS;lLuq|?FX63#Qs4shaluJGUv#T8y5KlzOwRmP+q zRmP-?j5v$4mnx&mQDw|UMFff~)sIkSn3);ImV{7hIN^n*`fBl1DE7X_Us3Ldr5l3O z`0;Ai%@ou0SK;0nM==aau0z7nVdVOfFLC2vp*^^g_oB)_Wd&nKlbF(4_)7OCFE=L@ zo0vr7i04TQ_91gmY0CbS~Eqqc9Mu zjPz!r*tF(^D`>1tzuyz6ztOA?%Puz4fP9IrNXS=KCp&|qHONIRP>$B1La2wMHK^3v z0c^0E5~79{ui#u6HN9k~c6(vghRab3&IniNyRufa_(rWTzm#u^qrIH5RtjMbMxRfy zN{T7fC?GC0zkqX+&nQif6$LS_{k7-_r6FT`5+z2sl7be2f0846Cd44yin~hb8!w6eIUxdJT5^J=ERh3GCuZSz=?DmYwlCL_wyeL% zT+mO%`@{<4Mw@qO+DC6=F9t#IHc9A^8?ez0J8BMPWHN%nR%>dY^qpQpv+CspeN}*! zG5>WYx-vS?SHI7yIH^3V{sZ$e=Aw`$`T&`4pFPI$+L7&Bj1}Tfj8R)jV<*%Hs8}N?%M>jm=$ue=@#quF4i*YJ zuQcVN>l)OTI9X3Y5x;9(^?;mhU|XyBXH)}MiXLU7JOezIl|wM9)|eO;a7jnLombMI`#nmh8LEN_tyF{Jj951$s=@;UP165jt0<-^>Re5j1MDamZs;PT;6+Ce@_@LC!eC>^1IWM}7Z0>YIYa0>fOfKY5Qgr5;H;HEM41uS(q6js6D_eC{eI-TIVe4FT zbni0X!0Jj2su5CCd+c1gFDVgy5iW#*mvM_KGO(6;p-~mn!(LJ)OCgM>X4nm!fcA-6 zRDar$anMnsH7Rr4I#jM2{h)8&1$1AKHCH+yN(Z6%7df5G<0ueKCIx_bbdI9 z7cvUk5p$TxefgYry^#WW=6M9g)Y`_$XheXEokj6bk)1igXM}rvAnrwK=JQbM^WN`r z=%!T7hb6j%Vs(FkVu?Ueo;iZO`?nALBym%SKoH2i5@RlGI4(}|A%F@?z7$9ILYH*t(K(|9YsGgmzoy!43&oRJsdX9!|!R@WP?#?<`y z-dtRav-idK2eP}E4PW+Qvp5oeKajmg)f3;5o4uv0)2NE*;vQW58&<}**#6yd_V1sz zv>wWnj!&CwPRWaIh+U*TI7tX2t^i;|uy5SjXr4j`p{>gO4pbmVBxO|;SU?qGhB+Iq z!2F>jNc0PR``Kv&s~`++{RnG9rM{y*8ejMVmR!ik1Uo#Mh920ZDgx7O_U zc$BXnBjW(?^OkMvdS}@-xqZhRA0gtcM7J$Cj2rRlO*;yd}Gh1y@JC9+p=wb z3k|%lonqI^>5S=AZdUtI|@)t@P2#fkMaHM+d?=p=SHr9(~)a->C2#eqYw{`>FP zns!T3{&#If!jrWAin+OiDth7I!1*bKgC=H@Js!ojJ&r$?KhZA}N!Ay8qPEh9h(XMZ z`I9KVgyKAqgW%1(7>IrBN}lG9=g&8sSA{sVp5NbNeoez86wa{xMKjWVpjXJ}#|!!L zIqI=Pv!%(&LnA&no!dTaRu zYtprelc&8#fHjqdsE5{S$ z*thpBnJXnXPn2HV+^=M1uab(f#@$RxufteoKSehZ6(EZpRULXak#1&`G?OVq_>L4R z2MTuCFTt%R(q_6ehOs}kn*Ntb+R-HBFxS`+PmDBuE$l)VgyVa18h3UxOJ)p$ z?ksJWE#rCG5af5EyE@l}E|5i=ATC2}S4r6-a2`@dspzJ8{^<1Tg}30c%}(d9bYeE< zGdV)sfVAwJGJ~>j2JH+wE1v_^2#pExDdbumJ=UENK7&3d0PbyN;*r($eyfVpyvOSV z!{mF27mHDa|8c$rF?-i3^qv4M0uEfT#3mEACU{j^h52`xwLg-b<#akC5zF#br|6v3 zNZdF92C)bN9lXhtH>nc*s;2lYl;{6!87ED^ozKJ0q$i6D=OmEiG6;F!=5Ns0W^9h{ z$?$H{cW1&cJj(@yQ3QG45!u%KFDZ>HSUt$Tj5cX zJR_4C#^2-(;FJ#+EIXrEiGUdyh-yd39H{5ai=5djnG9o7QDO_pECKH`vA!7L%l0tvyF zN(xl-fiS7H;E;5EiY{SqF8eu{U!U6X^bhNJJA<#M8LP6_@%7B?Ex$s<@@UPk^OI)A zw5B}pKD{=KS9`4sB0J?YzVEDy$K7?YPu4|!v6ar7K76Fw3&cM+3#(D3574%kuBXq_ zO5aI50~M#sWpp#&T|iva;{uB(%H zO==NmGT&up-fv)O^F*8CBSc`P$GgSoitoz+MH)NQEDtr-mhL67!8>R-P&_DA&kRhm zr_$m~`c$s89)*CaJaMt?{6JVelFhI(IZ7uDz53rFoJoXmv!5DbcALVTNQ2_wAR=od zx=ma9mO!_yko|P8d(P!ntN3!zcQG+@fAW}|^Sskz4mZv-uJ@TMp<3J0;r&v>Jk)1=_w}bX)_=EC5m^4x9h&fHnYBQu#e44jO0|^fwD;TWyQJI`f zE;Kf)Q^nGWnJyFxqk9(Mk{%Ln!ihc|yThs*Cy}tHm`|v|4>xY`texlsN}j=oe~}Db zL6%|m2f^)s>;VD&s&T*{0+ubtQ0`~2M#f@j~#Xgj;~L8;4)}| zU}0hyL!J=bvgC5J_z|;ycJ#o!kE1utS@5CR{C7HU;5g)*6!-BvlQ|0%9RR(Yg^M}{ z;#Y?QMKuwRY25w@eH&07e1#;vJq^uu8j49nNB?0%>%rF)ep>!zWof=d=&yZsKCD&` zMb$s7qzj_US0L`7+O5c^txu81h9?3tISWjCZ1UVYC{t+3MNend|-1KxFc%68d*YqmJs-J9Q>K2&e0XBe7^=pK}W!seL!3Vg7%+?@yn;; zFeNTuxl|>dKcY9RQA8#`0UyS)kyAzer{>Ai`%I0Rqyd>mRdia~3oCx5Q23RM_#VIh zo^$GL(=M7W_DZ742#w2ehdg3=W$AJ8&xw%WXX!@(3bPyMtjBxDW7Esl&z!zup1Ywy~~6fU#FRD@h!A}%u~DQVtIAw zoOC6^@7cRfLn%eOCk@grGhfVp2aUBC588vP2I;{?st2Y0Qi0_06xPzgK@dxteEd@B z5NWqlY7049Wgob#PswsAxrCDTs51V{QvK*Zh|?K__*$G3%9w8P_9>wjNwOqn4{-{oSv7NSV}+wLg?v_Aw2qI27?p6R zY$VO?3zz9HS3`~7{~!%7IZ$n%F#@+JQ_|$tGD9E~i^K+jO zbwM6Dciv;F8abk+s^QGLFTOi3d!PE$EgIkFQ{{rgK5cwo;~x+fb|=)hTiwA{2IBAM zW)tVsyWi=x4^@;`j#>ML9g_((%Ob*khT`vsD7Mdg%qWiVHpmfsj+@c=uzifeyHDIv zc0b_#B)UO+@UL+B%qa&ph|jv{hd}!Wj$Wh>zFF0g_RFgR+R|?gCG_8i?SfKD%puvm z`Do;2?oq5IN1EXuA6U?g&}@3%@D7Wd%O^X$c+0HQ_N%mlWOB*^XW*Z)VUyR zJRMO7XP%C%;{oIR_qFLX^f11g2V4IRY%8MW|2Dp{o1gG#eWwQe*; z9+OXNBXd=JC6Qznfyi?c;)tYoWW|%2q*Z7|93=5x(H`@+>N9J`m~Qv7bT1Q9uKt#} zj}k-qmYR|8k@EYr^H8LPhpA9b#zT?crf$pB!&=I#&zypZIZz>UlFz)938s@G8K@i< z3?u|J!W5UGa+}NLI_EOad`LCQ2F*A5_HXD8lCff4`tNfAn}W(;5(x}V^U{=-m)^Zwk!1yGL864A*phA!2xT0_gNotoxN5D%WPIZubSRj zu!*KSHhsW&W|EbAyMl|`gx2&5pY+m4&2dywXPOT?tNG3N9v>PhS;4Cm-P7OC^efI< z12<&BLu&UbIr~wCVJs$~%n{AzbHOB*u}n1l2%zIs9y!5VGFDji#G!%B)mLXEFClN7 ze>~2fa=>PaY(+6}D-+t&qOw5j=vJr@- z>gLE_w6p#+`34PO3MBR-`Nk=8l?zNxELTK|*2wtmY%%WrOw>S+Dtd^jBVTJfuXRFn zGjyzh!Kut%0HB-!$$fH2bTeQp!_DDFAJj2R@DxxUvL`g^aefj%6MFTcx?bLrwY-)6 zla|Z%)ki0x9iuDrpf6gp#O{%rGUM-O82j~CEA_+P1%bxb+ocFkAkI=9j?juyT(UP?y^%+wl8vuJ;ft-WEgY9A?v1xbq zM-!;6#C@B*UtfJNxrjNLA{Lj=IBh_oT?OxEe*_}dT4kfeIcB80`N&ax6eGK`w+I$# zR&3Nk_YE2)*?y%#rBW$LMx@a^#A2jVX_envtGKjR+qBH2*XcX795s}C0?`B7vP`gd z65$6KEg=|c0nBQ2q?;Fde0oxbb?1#hYk z-erxb?FxlzMs)MSoMqdfx!YQ;yL^?&%k@<}lWavHedk}Y-*nyqYEdf8j&>%_ag<4^ z+gxtffIO>xt(DO?7yRAW2eo;@@^9=H3-;eN1c-`=z2RI}aA|VZsUy2gv&Ww;{OLvg z67~fzM0RmX8cKYb21v+PjEUSX5o^u2)o14TG)sRzqqZ-hG5bk2TPVw80`o^5(BpZ; zC}uHrH7-gfmSR>{wl()40oX2IXl<7YHWYjW#Oku+twIP<74moj zxVAa`4~wKSx^3Qnh|W60Dju#M8?|sK43YSK)scdkzj6m>#ySS^>zGx!#KgC8)BA+3 z#1l7rwH1~CnRBFGCUwEP^t~KA|3t0rja&Kr+~>tK!VNiUpQ()y!RXemkF_=t3d*%7 zHps5VD>r&Y!K%qjzbvE;QeU#cZcTXM{r6a+PevY5`iVaLsFHtvD|{hZC5R~XPQy4p zQ|O0;N3hV(bJFMZpQ{<2fi2~Yu8)-l0|3_vtD0fFRzZI3Z#*tf<_*=46wce8=-`?wP5)iG*aT}X5!*iZ<1F=Y z@*aNX&vYuc=EE5j&c6z1hSyZ*jY>hO*4S@8&K|^>r4Y1-69_Odd8%INx_>KrP zA3aw{hwPTeaFf~MTrci*J-65OtX|jC+v-ETv^>hW=H|C!WGt@bDrgf4SUg9GvTC2E#<{D{!P{ot?_02 zly?#LdkTnPpm0{|vajb4Z7OFLuh@!04bh+0iz2R=ayW-b9Gl&T(^w{XdhEM~LNhzb zkLvS?fwI!RhO1Wl(tlxuXNb5yh`fHBtyF)xfebDWMVh41hn3jF*8dQ9(B=T1Z5xfZ z35fEv5_eR}9{MpyYl|X+m$d31JU~JS6(XyotD}Lh>d$TNt`Ewx$HCqMU-V*pen~mUzm~sOJEL+Q?$Q$U;l-WqE|Sk7?!|;fi>49d%G@kpO|H;`-rH3u~z& z==MiH?yWz)74^Vk&R8u}nq?}F7>fK?BnUF)>GRexkEyq{3Gv@ATGdmN)-3(E?#rUX z`pzsi;aFsG(Q%^-0eXUrmVxJ5_Z?ie9jA)zdbdzarbKHS36u_P+Cw*r@vVq&+R0TU z`>j?wo$KwyD2qXFJg__<&nYWryR8VU3`FGE#r)3Vw=NN8wAOu@WO~xL`FU3I0Q{x!6 z0{sK6@pa)@R<=y=u9Sj$M@I5FP_dPV@P_r0_2^-RkwqJ=ATbfUwjld@I}=f+x6iv4 z=Upc6GI)mq3ee91>LDyw&~-YynC(SaqeHsezlcQ zA=k3h1+a!vL@kPT&U?o!i$psYj4tYwuI;5?`wI5CrKE9#=id4eGMB+;g^73xYT`|v zg5F58!pzX9g;~Zbm4ekk8j~YaY{DQ@klzx1tCOQ;Ohs`TQWc_uWZIm5M7JzFR~7^> zN|c|H;-ucqK49eqV4f5X9K&Np!iOa9ZGLCLBql7znKZ*DlQ(lG>rk?N7aLnsTb9gFnY() zNyY($!TJBC0yxOiJ>clUNpgVf<3xdQV;mP$klRhO7z?xad4;4(=Vidab-~{tB2fiC za+Z>h19w3Iw@{E0BkuBD0)&D+lM6QY`Z)1RwlO=j1AV{pZDTUkOa=zd=oey`i;T078N6?>}H{1&jA&zh!;dD{XeIZlJ66A|mwqC@~j{==iJX zA%QT}LIPy`hNFk)OXBRgTHEPh%dYHgqH$C+B`Hk->D-<*|7V&kPOo}E&%3PUG+NAB zNk3nXh_<}dc^W`QGmcO)kbDrAT&A30xFb1%31Q8Cv(>xhDpLb+==OK;QqMaTUg-8 zN48^JQOHnxMxNe2Hg5ad-nJF zVku-Fd~v@<*8)u$>IQb{d?(+nEO0zD&;#>ry`_35#4mLkld3YzP?CQbeEtJY|J4VJVNa+;U3T`&QBZ9)$FHF@Nm=Z0p&rkW{|iyJj1R?d?#(2TiV z^gXo@d`*a&(BIC4_R@O&5E+mrI-fX;}bJ^EI)4pmh@ajU{*+8U87h16nIIHTaQB;A(6Cyc^@COie#$F6Gy$MRep%a>oG zQ&NGM6P9Xt$M^Ybe31gdMOH{R7^nRExDNsbS;ryywGZREAmcG}REGQYF=Bh|xQa>` z(#fbQ)jQD~3JI=j35$^#iKbe}{fq+rYig_p_}Daizgoi**a|*LM_TW$YWPr z=w!@WsbGTqEd(>4u_^ezwyVzyrw)M;yh?Rs9L9)%;7>(MZ6w=nI;J4OVF6qs1s^4? z6J>LG%MsNS4jlWAgL=FvZt_?)W#AV0ldoC}edJ({-Y&*pnHV(zhlpd`Q^Pyo72qk1 zQDqb|(6M~!n0+Tz;1Z*-fP`g&1rdNNvsoy={jfkrS=bK?gfmKS1AOOT!QWSd1tSy& zyb0c2!igu4AOQ?(D^R z=N*GEr*j}?Y$6O#7`%}EsT0>x+N+e=JC)f}N8KGPTG1+a+8-m^p+*Cr{+g$)cGI`P zxbF(a_5C*x|K4K~-F&krT*qzu)XbNxtyJsSfg7EdJXzlHjfY!+r)CYKCQWbRuQ{VN z?2^!AY&#>(hddE-Q?QfxN>@u(j)*lvVO=<4FMB9O@W3^p)Dh#AqK$Ae`O7=)<;%5~ zBuXaqZwyuQWu8_2cm)$w^tPfx_wMbDe_yd2Du#N2igKfqOJbMdt%vcWXsda9rLnH- zed`j1o@JzLD0=q=K|B2&^0saBN`1lt`0UlxDW41C_M`VgLq|HhSU!2>*d{1gVz7(Q z`LMCd88;u6BzD3^uB}unU~Q%1I(mrw56sk<9THvAi$wpDQw~zW01~}K0OeO$-rgI_ z&n7C8PNrOfS1P)8>vz!dbUL_m6W6VF>|XGp`=7xF@wSwl<9^xqWJu=sgpt5PbD1^m zIOj+&HQ1w`rYgFqG z1u8b`^bu0>sz6$=r;Y~9?prcoK+rP{{7h za1C4!5i}Z-FC0e?>{Xpf?WGQte$dNvD<}WLv$3N3yh4b3G^X~%cZJNP=$hZ2*a=7! z1Q~V78gwkdMQzb|^(-^wy_oK1?Koy8E6 z8Ve$9O%%Ko7ZmZqdPtaZO!lcGDg=hPR(1|1#;PX1SvCAK!1>_8bk$$vT`qfRi9COO zz4V$5m1!1Ql+Q`DAMsN57y9h;+G9GY-z|O522@e&8AfhGlgAp3-t~wzP?D|&}I*PW>2Zu%EsvhW; z3Bi>`?P>6O64x{PQS0;29+F_de)+vR+9-CK81$;b`0lkMl58lFs7Uj(;x%j9wJ;){1={wuwdomRz z(>AD4P(D|G?@FPOj!6O5)tbITFyo7XQNm0m?ED`w6zXz;5G; z(sW9g8aw~*LURt!2Tbp?6AUVEX-oGj_~g?|PUa0aHg)dNURtFn4(lyVae|^O&r790 z^^K<+xz-3J**VZ?!Ha|rWqa*MK2hjNIMUbyj4m(!UXD4XjDTnBx^{A(i=`^_>Y#CT zb()8{9v-GM&BKf~R;T^`*A2?Tv@=&i`TMXj;(~C&7I#-*o7d5>131Oj$+d$ze_1A| zvwI#e`B-2w5MOq>@EGx-2(fZPW6Vc#1p|R}?GiyEQ7Mi-FS_OaZ<*&SUJNghvIj{k z3yY%ZqUr)hIHCX1)5M!Uwg-IVeTi{AB{_qBhm-WE{$Kn#z1^K6 z-TB4Gf_e|oM)E(?b<0Kn`n9EhfG9hsdO1w0XjyU7y4d`b6HTk2kUG@`0)}v>!6efl z0BQ2X_ly!>8m|YtAD{*y>|?Mzd=Ns>>gMba;^=FN$Ff1rGJuyW(XGNpFal}y+4r+B z?LWygLkqmh@cbTS5XT4(Iu>5f8G7* zQg9JcDlN-`Cf)V|O7%Y;kUlgyFO&uaqM*lKzhCC|XLo}?7Yx83XC`HotUbkfx{X2a z9uVfStU(=~;H~txPggu8j#w=(>@&%x!KZ2cnu|pP@ux!JPsH?>Q!{g0NZUf5`B*G% zN>uYyQez_+!9%3adO2*a9BL(SW~8HNgLj<)#a=Ly52Z!UFC<5@lF(4h--*u~Wi}=n z-}8_-MaZE02HRHh5_5#KD_a61;$=^J!_w_(54Y1XIe`;a$vN_I-+vs!3lpq>^YV*5bX?%gqDAGPsvdNuT6bR<^l!#7E0QOhwx{js=XpFJ(C6UP4`}z z$*p%XlRtN7av*#+EBF>VGsiHBso8~Z2|ahl3!s?Mkea#Mo>6cvHsVp{kAN`3zpWBT z7j_hNc*!Ty+`eE0pNftpVss?K;}oEGCBGp>Hri(?I0F>txr8pPGDj%HarT-)n?2wh zr3%9pDR7GwqXaUYr<{m#mrE*~pCuo*e~mn1Dxl|McelAnsxoLlTi70sL81H)_ zsp3~P*7`umPw!h&aNmAE0MHu%y8Vi(y}#(({Grz~?g^y0Sc4rMwEfJ!wW|62F0~G9 zf9pwodaBz0rnK*o_ODj8PZ*w_d9{Z9w2%Jx4rYF6pEb<-#gYt9qFl`*;I$Z{J^I_8 zv}{_mSk|$-+Jq1aHUKI|&JxUWpA! z7oF})x3htL?*6sl+d}aaRg)#|LW7zV8K#dx53Td-tc`1k&%#TPlswa-)l=@ zAJqQr4_m#8Pk81>N@Y1!a* zgj|@;-|>NQ(hE)hGk?Kc8E?oMFQPh7aP)>%e^YFI$nrHXbzy69BVS8CL2E`Mi8>nd ztyp82{ttzaAUh0n#XhzL;O(sq^>^Cku!w z!;WLWwwMo{yd@oS*~Qa5`&lm6_-pCCw>Mlj0#{i%&&f#aGilShL|{Rpl+%~XvF-*L zp(PP1jQF#!GI?DI?}qqcf}+F^jYV%B{=U&624VmF)6sQ#L~&4@;kw#9jRTK-Z@)m} z&q0Vh_V2l}{Fa@jgGw5E=L4Y>fBY7Rwga6@fBca6QiPjMBSYR)IY{rnn!zBq68%$+ zi_4K~)I)cmLO?i0naohmBtC|nqtFS>&fC{1obWMYLA3~@w0**SN(-)4x}uM0k9~a{ zj2l<(EHfxsc>$0Hf1It3X(A|naT!|6ANw^#LYBhQ58>U#L(Dl((Tz-826}qgX9{ znF~06k}iMkRz`;cTy??mUXWvWa&)u~*JEkA?x{R+f)Y_eTCf0fQd=uv_pGf_#0+m5 z`bX1w9MjPB_r^9H3Tw@eQ-HQ>Io4kLl!*7|3tb@tsm~Zn$n;~zTcl-+qYRX`$t+Zh zd#Wlz@i4{wl4LJz-R|SvI{SxiLFpJBt~GBfBqeS=J*+S=kKn1RPY0+NM+WN-G{eT{#z zAf{RUlq10^DOY&yDfA&g?}Vw7puHjf6OmTk=i1HR5S*4zWyoce%kM*P!$NPNwPV&+ zH?md8x@`=*zxnc;_%p-@-_wT{LN>Q^q07a7F7D$Z@l)Pf{)Ma3v`a~$V|R&x;*uTd zr>9broy}8pN{Xt!%EzttTVJP&;YyR#pT22Jv&6sd!?~t^whH*6HBScb7(`6eZ=0Z; z!~k<99yoqW6!SItqGP&>OJGt%(M3j&s+M)DHeq}G3u-kY=A$j7jFs~cOE$VLc9NCz z*v)5$5`O~0^q1#K_Vq=^HjckXxT-Pd=d&7`a5nImOMH@xo*{VjD?;fJDu_|cx(Ps-G#V$n8>PX@uO36Ie9OL^0FzuU^lm9c6X3)9#X zDR+M%eQeSx!=%Spgy4k`nt)wJ6h{UQ0Ekr~MWyG|N$)F@H&D_ZdrT=kQFPWj;(Rif z4{Cs>?MuHRW;rnhUcSOEx-t_B&p)cSk|-7xSn;! zwd4$ryFWnDt=cnR&G&BCp6T|kY3%mEw`j|Ds-bs84{FOgxhz_1wR#Xyy58=38-L{Z z;jsms-jC#nWU`Lgok9`WcIxEU@;7{0c`i&rXBT7Gb^K0|0bGBJcrMKCP%~WC%A{0~ zTyjAU(K)-9p=4e5Zh>U5tH?Y(dU)}>kkT^SgO?00*la!aPZr2t9dhcP=GHxf-^H{s z6Cjo8?V0+HqukBnuA1N3{0gC%L#b)fgN3shJ@{ro?^L}?e=D{ zp4R>^_w>V>fjxcpT?h*O*m3B@5PR8u_rC-&%YRsoM^{H=Pb*aCqca>B%F(Nm6bw(7 zo-vnK4c7X9$gya5zKWdLP=wp^H~vo5t>#InvHj&qYGlG=x)HH-uWm8;moq0y>E3tx{`Encue z7J}uUJ~dsREKqxfYGvKyX%eoy@vq{kpzvJ>9fX*bB!W~y(pK+~{pjSv=f`7`V zV#!ql$F=8gGOj)2()~~;1^&v@R{M7|*eJHL3{S`(E~pcEaJkpq(?BNN=ml;f9}`tS5(8l_zGO<4`{Xj{->GN=V0ok3qm&gDI&dA3qsM}%O;ps=D0&lk}oS`(gsAtn!@0hNmCu>&#nkOljV*$#PUZt{$((Aui76yXR{ zO~{<$!;^9}#lqxVCbx#OE2xmrf@5Jbr{+ z|7PS=h>(nJUI;1!?(!t@WE&Wi9H_~dqhkOYr z&75iCVzmkd6J*{TGehoP9mT03?a_{9?`jY8r@4LEc5Ow+vh4-Ovp*r*k0|d8X*VK9 zdC_#kj!{k!yqbr)Q`9}I znMZPco&#ElUF(20j2(&R%I}6>rC7Q*^*--__El9XloNSibm)LKJ!cV}zg4>+uB~jx zo`B6M(qR(}#FJny6=Vj^zeL7m{*jCYn8LS+1{ozZkt``Zw;9){PIJW5-m^oT zk$e8fbXliX?Fj~8sr=Jb|ISj{>Mb^!2vk6h>nGl;4MSkCjW1I?-aCorW90)J3;=iZ#o$#96 z*6ylB*r}WP+AYWhfUn^qP8>WCF{j6f?>nZ|x~bckE|2P?P_=JD)k<-Sc^ALvWMM0X zd){mA`z-gp{_>QLZvSt0Vpm9ut}}$V0pDq|#Xt*ZLJNcT2nHa8TohHx3D^F?Z$&z?h)7ka@=0a+F?c*M-gZ%}^i@IDo@#g&hpMkL0YED?^l@f)o(}X6-2%exH5A7vBh~@velsQpf zXHy3Bb)D$uh!dUc)iRiJ`K23pS(-T&{AHm@?56THzDO4DeFz)k&{4*7WjRm;6u8N+ z{lt&ij@8F{yVw2Rx!vf27D}c5$9F&pFfH{#la$&9J zi22Bt`GA0nYwO_iG4|hxtmuE#(LmWhy-s9~zq-T!0eALG=XgBbiY~C7xjwIZW(x** zAdF^?PiVV8PxUaLzcMaS64N^N(%&gm6G{g>r85c%ZWrh)Wpgh?9+Es(X!^5{G5>t8FPqwxdC5O{H>< zq?CQM?qNSHRan*X`$Q;i%5~*EEaG z9!dOLEcg`4!wdM}SjzciOm|`WMa}a4bkU(wbQ(ov`UD<)BBloWzc4LY{!#s+%wEv9 zWWJPqo|5(r9No4bQynRJC0%=1YQJft@NZ>6GqJrl=Y1l6L(a@f{33N`fi@|k z(4e6uHq-^8jhfcbMw?oy*kX%HTPg{lf)Y1DZZEgSzgSCK+xl2-wOX|l|FwhwK`hFj zqJRbbhu*LX>Z1Z$$@l%4xw}age4gj`%j=cB|IVD5IdkUBnKNh3D7`oA-Rt;V8Xvk2 zVrnuS_ABBt@Dm`Y>jEmr2{UL62akV$NA$3Nz%yDV1UvNj@vpZA?#?mqQ(6icTs_L;);Bf3X4B4}$ublnU? zx4iubLlk_}JC4vLa{Rw7`~N#+^;MjmNWK{;3;Bir@vrI6;OM+mJ&fK`<}x2=3T{WpWC97I~L9GUG z=bl>!_Ir2@cS^*ox?FL;qS`t62vlNv@p)BZ%3)ot@y)!}AGiOuce;HgxW%qL6TV+) zz-Y-bZuO1Z7`IB{*^lJrpMIXyji&?o5$B1#ObHVu);B4gIjyg_S4`Ey+3%HGg3n%tXS?8zbi>n z@V1`QBc2`ZMw;QSJU;X#w)NWKZrm`f(Ui%}5i0_}7@NX++px{ERkR1e0EnObWin&DZPs$^?RW^@-T-5%Xin%`56~hpEc0 zDY$d2S3|5e9Gd#V{m{Z;X1CwTaEv?=DnMWfMga>d^;B#$1M_9@ddI$tXz+KfMvi5J zR#2VXVP;~m*aW_DHtl_#MpDfvbHW`vM(kmuZn>iqdU)J~uOfQl(Esm;Pu>?N`}DZz!>j0)%Xkd!<3_ZPKKv;)4cb98;0Vjmj=`MF`yw0jMV-+5 z+}vY8KMcJeG!6Vdnb(F;yD7xuX5TSHY%;MP=L~+{8Lis61yg;dpFyn%2{GaYXsEg| zK5KZeQORhG*SLLz_mss{bmVj;wDGY*D_KOVc84|TRY2*H)9iQA81q$_BB*I(#@`b$ z@*o}%6APLIgNm~^O<;o~33^$VF^=#Wo$nFMB)UWDN_9YkIjkpA4UpUgmWd(2_35b$ zx2EHHkrlza{aG#A`o?$SN2y z-k-n(^+%xb%a&-+zBhQkmG@p`b@230Jq5uWDPI8%k9pLr^j<%MT1OhJrO#9s;cUs{ zJsp38sxk%)!Orf_!o+Mlzgt{!meKozE>y|WP_s?UF#~9Nyva?BkLLK79!7gwjizX+ z)}~X}ea3__vct@kjp-(93gCBdKWH*($FP3$$!yzJ%L?f-oiK#B56hCZ3D*GMHpj;r}DPn*}Cjb0!{BLiZ0wFaIG=1lxVz;5Nxk%2g!@cn+|Swh5JfJ8)o8BjFWFIHz^@hfLIds=Xp9JYxpzCkkf=KwL+bs# zTREU(t6BT?S`94pFrhU4s#DFPQa)9^A9yt|^qTEY+@dM*S^ZtH{m;GDXY$-?s-%u` zFDrLm ze(Ml&vJ-+58b-D)8pgB%s*nHI@k%!Ot{mz zS3-cP-h=;CB{{Q`{A=AGg(->xLARa{D+R1hZ6tyHACk+#{{5qr$FrrjvOl7+{1$zBnt{j&o?l#K#)1S~rZ;efMm?Tp>nS4T0t>2!>(=-j zQD&0eRZ;iJCfJ(!FVj$}cWP`=A(Bf#<7hDX$db@6|y2;aB zJh4CK2Cvn&o|VsiTMsH~T{hoeU1V@*GN-mH66QW_xBuirx7}bo(GS7=Tj?qO<@#0= zpPsIE`bTP8$YMWRxSCIkwB$n{aBu*JAmz{XD zO)S}*m00pUlladj@o(m3iY(CBf$M(Wwm9H%r>l4*MFIn>gRjY>h7TQlkl%iot;@; zeo%Uo#+>A3a^b&SJZHLkE}f$XL2YK(e(^}E*JVCaT-FG3(21EH^IK)sOm286DR0~F zst9hMB4p0LYBKKb9q zx+;@fu_5%!HO4JrjI0}S5($iI=2%cr^v?5TM(JR*JC@|mY9t6wTI2Kkw{9cLkP~LN zyQ~e2FU(NGA4Fq%k^8NRi8L@%SL3%^BHt6E1p2>Y;O~#kE@}#!Ni(j{W%kQvUH2Oe z?l80I9>>~x#%cHN*)nnQ#4soK_Ud*&`CT&}7<;KaD6FMOC;wDCNiBdou9n9=W9qd{ zW}E8Fhs+{KF6;6%W>rVD^&xYh*MT3sRJ9AmpoP)51&%Imk9BGh_Ju&{6Y z*N#CW{t!nQ7Y#)V&zjhWfhrlgUa+?C$xlK}QwhpUEZ$EBM%#Wa)WsTb97X~eFT`VK zJ$RreHIv&IuZY)Rro(-{AIEoSRP8M=>-{EFh)GS3N)q-z{Sz1}y<#)H?vrvS@4d)m zM~!aWO&=Y9c**U5bEk#WK-SMqPEbVwV$)Yb6Kh=Z9jj8_K`t19JnaH zi4l|%SGu(it^4iSY*lxzmp1tBLG1pl)tPoc)q_oeln271 z)C?rQ%!2$uf5-|!zAq{0t>b62DabjmWu&-qyS?>q_-x@Lp_2P&8<2-KWI&3^)Q|Q@ zD_21Om!S0`*#+3i_}r(crT{-x0rFLVZyD@&{wIUo1lJr)0lY|CPKG|E%JY*Y(C5Ys z5g%MDpipmp)miqQfYx_hHm5*y_dIDSG3OBG)>}R@Em`U=P-%&++cch7+)XE-qDI?J1WQDQZ)hgM zAmelV8_r;LAjMtZFTkKL>5C2$@Qk&bEaO3zW*Tq~pIy40U4x9a-UcMkh9j{Qh9@V32E+osC8tV30@a1*1a){1{G+V}{ zqc-ExQGrWGX_{yKbAJtxVwTiv38)rUs=$BaV#-qPmbPPNtZ_%09N)SAa1B5YaMW+A zuyvr9)Co-vY`Ewg({pMvZS{N8R?#*YiQNTec}QzTO>Xx)dK0M?0SfB)bs{kh5(RO7 zZAon@DPd?l#W;f^xZkP3dGbB9b^*-@bH2^!Ql&C4utYfKv1@{ntf|%g@tascChV9S zDHDQ%a;1$3nNuJVP=v$!x)IUkugo(>lh#hc8~_*k5MEs1Y4kvK~)6l=T}>E<_BX8uW_I0?Ou}1*loh zTtFi{x&}%4Oggh*kuKW0R+SiM!i@T-nGF3bMSDLYoeYVv*~b&%4Me>ElQcH7!bfks z%pP)E;qPRVju&|^3)91g!gRMVod_oX5fb^&ar~Y?#1!PaU(E>g(^Q>xkMPMgm|L=r zy1h`t&MSOMJ>g$rAeyrv&Je`k`D6kvdXd9>kK&RJ>(2nW?fx`Z+%^4)28p@FQ^khb zjWleU?iAr>fq`M|IkiWl5RW5xX(^>}Y(=-gklYfs4x?>z#qRb4BHOUMl z2Cp3dRv_W3^yn|a>VN*9!g+cYv=T;4>Dqq#y6x52*h-P2rzvXm-yt#t|2zaPn9?xtae5 z)#jy(GVMRcwEv$qQ2g;!B<~$~4;smvHJ;~3=ihC{^Zee0!K-hyJL0ruNaSi zVPq+{7TwdCyJf*$-_l$)lpz{F4XpRHW10c{H-2kIDVzxhG>_~H|7A)a{nj!};gS16 z*Y^`qfqGKk(wloMHvdQgFNxgGBg5PAtIQp2esBNW7~j~BH%iA7^hvzFMD8*9cwlO2 z!5@Dk;}{N=&3pWBF(M%3a{Nnv6R6j?Snl=z>DCM5p01a3k8SC4@PGB+MP-;d5O zG5m`MQ$0TCxao)80X^$f|5B|>(bcOs=huzIcw+zSYNYP*#O=#?rQ`)M`ciLrvzZF{ zFQ3H>e{+UeaV}R%m0Zr{x(8?pKz*}#5fYOlqRQmhRiqt1sgSIDb1P>2*efpMi(7hQ zswy-0&+7`qAYk3Cyh98#mi;1UFg3#D8{!dDS6IDRypTj#_r1DQj>g%gBvJW zBJ|wgPebn}H|c1g+dJFd2?{veF7zC}6r4HTUz2vm2@oi3^B)E?#jjtLQ-RXoh&Ofg z##?wtDW)JargAGo#5AcC3{f&P@!D8AxZ35e=_w4m;InbH6sN6_vJfH(opV*{NRD7W z;B4Xq58u4el!6fb+7GZJAY=05!=tw?AO3OPCKJsgx9Z*K!WGIG#m8=d*Xog1ee3$S zAd?oHoR=V!sEHZFKtQRIy>DubX&uW|d`gg6O=y!>`W>%m-ul;Aeki)c>9p8h6C4pY zo!y~LOU(+@P6}OOSD-p`peE(7G38B!Qry=L{seSmLc5b2W!JB+>Yh239P1Ypo$6hv zgJsLBK905>P0y=ZKl7`rYDV|){($LTEahZtYSy|+x6bY24K0$R7b0HqDa4$I-MT8IasKp z^1)J_7;K+cy+qXX=4hSnI%j1%omr<#g*GKwiQ}+AX}N4Ew%o;wT24sCnPTvc&^pMZ z7T@K3%H~n+?l7y0$&aU`d%+HlF=Kr(+QwdT?Z|H6v>48j>F};mO!&CiE_FC(BWyI` z7wRc}DFleMz2m$WAcH?Zye;65U3o8>^~&6;PofJqia*$tZd)If$*xU80ZWL0E#|~y zd*8Cno$xAeUH|5Yy_O7b83sW8R4qgAs*$~-UwYLyz$=@)hPgQbNi226YI{PP9REqf zF0avsrD=8{X#&15>{4OQz#KDJyVPq#JLrhqlvQn+`2))?pZC5gc8QB!B&cDRvscxe z0lR$jfC*eC#A25%Gf!GjBui!^(MSVU*=pipO&PHT{V~HT&SrnznTA=O)n&84oJ+g^ z?-LPdU&@##4l#e!s*%|fB|Q{kGWJLh)m`sV*gF@Qv4`C!{SJ$_v!r#`pWv3>;$AiF zl&hw;d%x0gcO9vts)h;S+*cfPO>OQ)c2|F7^*VW8$4+Yms9G*$E$&rKr(89?FEW)$ z$aK|sW0WSNKsg1us7p9vNog_xKG%d_z+_J8!7!n02P4t_sVwpAE%} zOuyL}aEZ`q%&ZDUY4$n&1?yXqK!V6hE&1mA_dMBeMqq~G{AJRN@9$m2X0&5}XlFl2 zO-y*}0W{+iVRe@-A z{n6?T(IppO$!4b`#yPptc=X@yjjv@O^1pP4;m%UGww{Wyu~27majs_Ll|(H(0zs|C zT=v%>JH5#G-nwZN^sikW%r-!@yF(D=S@WSr3t?8o5LSjxHHJ>d{47&@HHLpGkTi&B zrqR^U>B+wf=a$}Cwy`*dfz;Ib2u+=5Jq6KD*Uwy2#G*fE&|+Z8@xSytQLbe;lw%iI zMmNy}8xm$4Sp5P%%+(zE_x^?rCb(eVh@pOQbQKgJVsOtBR;o%shrsA>j~a zejOOX{$2>!{el71=c;wl8`TS{On-^a|GT~vEM|LKjQ^FE;X?q~_b{|#w-Kcuo5ml>oAUh1C#eY#I& z^`pPR^I-lSElzqn)_-Y@CAITp-(oFI4%BSPuA^pf4$Cz!r%q_i3HYJl7UD(E!JKSu zvl>`!$i6}(MFHYPW)byZ33sm65qdAH|4^e4FK8WBR77+5C;ZWN;9ROfK>UVy9&^-d zAR%(+sw<8DItwdX6wmr2DOf4Q0fqJzg#Ev9t}PEms}fggQYf>#WWka0!q<%wMf?`b z5qc_MYF!GL7t^ki2fvsmLy^*-wit5dyzYqWVnm0a{P~eB>|Ec28mhv>PzBm z`p&#Wduy!u@0FvdY-!cspdz zX^+%$)am8Q)yLCf?1Rz2e?EmsIhjVz&ObW;EecHgGO5cCrib?*rU_}Go~U-0xdX_| zDAO>ltWT41E(*#?5U1aesQ08)wRBaCk=#_JD8&=#I&+dLaji=9DDYv9Krgu{v? z3GO^Dxj%QtQbu?k&D^@KX%BeHywde8pX7ign#52j|3Ptkxx4T#!yMQ-TSMN&FRSC6 znMOR1;h+u6Jxp#Q-;$Aby~Q|*ieI-@6VXzRr#!;Dcwp6*Xxqc&sBX-9d%H?_3+vk! zvMx2Oox4g0xqBT=qFytEHi>r=;Ht;Xqe*tmyXLS^^9RwtO$@t@33sZ(A!rwFiL*`z z>qZ~$^y(t2ILTyW5BuYXLsoe(P0Xd(>5k_WPtev`Z7;Ly;=OGC>T#x5$CN1bGk?HL zB)Zl@tNtPd;QqEumo(k(SACFS(BTo4}%}$XOcm7*`pa`68!#< zyF)p&(J}s7tjw&Y-kJHVX^OuHtwI&x-rDPRAKWI zYF9srS@em7uw9`$@tFS;?);1SA^!hRIQguD#P=ce6Pyd-=jpUp6FwUKR>`XdHw|^q zE5Wa|ZNm+N+;f{~IKpO3?}YdAbXBn5V-}bbMW$-`ggTrLJAuoHVOUsg+Gw1e`DM3% z0)04u9Nr(Y0myn&iUn^_tx+3Btf5)U+yy>Q=G2Cv&#B)SWc3DFEze=`@Hv|Y%JmZT z1PLH>zEYI-m#kx(S^0}DHoNp&KE`5`6TP)_ID7TUEuYY^`RaX+oF&RqW7F+oJPK%u z6i5tekQTDllnij*7Wz>_FUDij;;3a$2rm_uKSWFgS6RK06{>7`-2d0l(h6F1Q94|J zrqI#f@H2c%-deac*NjpHluBG5>#n9Rf;?WeF@TetuUf@49vjz=s*Tc=Udr3EsCC(* z=F=!illw|YSQ-bT%;5toLZ`itDp^ajdgeFa>c2mfDDp@NY)MSyoqsUmI>2)=k zX)@N_8l^^4on2#`e~-WdYC`+u`SmM}fTfK@$hK$ao*wL39?B4y-jsX&aa5GpS1PsypSl?Zb!32t6UU7BFm2~SJ@s!0q+v6TB@V}e@b>ykj#IF(sVEA zHFq2&e`dzCwm&}CJuhFXVjq_w1zAe69N`ZIN2)8(P_o8j)_$b$+@>HcOjp=$a>%)nC^<(N}*8Wzg>5^(Et6McYa7 zmQF<|{wY$h?KmU~`rp4Pkb4=ouHPW0g_yP$op~~x7Ut@Y#+OCk&|pLTs>Hri_gpH{ z(qWuS%=jl6s%~bYQ}|a}Pi*Nniru3LPmIpr5EMq})tt)Cf8IFrqy_FH=_0BUOh-wH zytGmi(L9C%sc(e2no;iE4Tk+2GBTkuBNHl2IwV7{v_0NJtDu$68aBc`m+VN(g9hj4 zB5p|GTr2v^gMJQj>W%(T+b|iwujq~c;&tl>vU~WNJj6}Y>5#3~Gfv=6I1UFYtM7!XfJ&VP_6=8cgO;)>4Wk%2|H!i+0EjOaA zTD$B&@hwnMAZd|Xtm2^v6t<^bu!iXydhQ@+r8A*1bwoR7beKvw+uEIx`shWBzCb5(~9!oj^HH*H||~XU2N3kCSC83q1Y;VG#n=j zT_(V-1%Oz_QTB+FX=wHr)4#64Z%+wACP5!ej|7;^2mh!jqMiMpeP^$SvVWZo(&XDU zw$YdlUf-($9+wPcrWHsD=vHk63%>}YI5m^mKmy6w6)z9xK^3?<66WZH9EguVz9L9M#(Jwb={aA5CS2q zmyjqI{>FU;43fmSj;J}XV71=Ica)Juoo&wsOC>Cvpy_QNzAbOJS$k+G4DWMw`T^Tz*3G@*-wltfp$U+vw=t9vjPO zu|j_pRSs|yFCYOf{c&5%8rRit`!O71+l@+j3oRr}2ZTZFcTUSdxV1%;Vhp9| zHpZ%bhcypsS)r!y?9-yZn?rkBly+UB)~-v`FdNZE!U{k3TaB$hy(cqFnU#TEj9|S* z@xQ~P7y0J=3=n*lMzEr>0f`(K$=nSmq1d9^q^iLj`+fT43f)PRPYN- z5q4#n3%eY!+Zv)D26YWy(1BZDqzD`*h%ot*H%`N(GEffxGZ!qwV=YaQ0QCZM!?+@`5CnV zTC8SnLJ2zBImh$jT*7t|KC|teIXWZdObj2V!Qj>8Pzk&}l+P(wsF1M#daIeNDT%Vu z{JffzQ7kChVS@d%%5&i9h=)_%1i8!|uy?al85a+M;*cG8B_rOR%Jdj{ z2>H*>$D~fwy|&ZP63HtqqSw##WF=nr@c>H2l( zS6DD*2U%8!UIS#G4n0OVFH&EA@7MfPn<8uymxRnL{|p3Hs^g&a(fO$HMt_tmI$Chk5%aEz50tS7 z`!`D+9O;wCn+QJril>P%uZu4E(`w#Z{b&bwtsA0kI_6X^@LI;CiPT4}C^>d#W`9K? zMJxhC2__r4yo`~-4I@=KhY{4!(<@1pVAT(>TF&Ag(dpPYy^=RDOFh++L!ljGzsD9( z04u>KpC{oeZ`*MF=>XOevK|$rSZ+WfC9bibS9&Ms|xdCow0 zb}aNsRb$bt(bQh&KUPyR$!4`l$7|t`?7q4FfD4T9s)e9qprcNzs1^;!SG{<{!>I@S zTL+*GuI;Z49%}w^k~FrrCvjG%iDifk`jnxupPk$N2J4i@gV4Q-4FyFQ1E%cl(&*oG zmE*Upyax&7yobxx-Y$)*P4Yab_9Bh;FcU2*Ri{qg+a)TSZ#A3%*ZZvoS34?bPF@kL zrZkntE2$C}yyscWk^^34s(7iiq9^!KxOIZYn`dajZp3;f7FEL<_~j(8X+|qA1w_nQ z(%pasjMkf+G6jcL4bEDQ2wi2I!zK#^*0SIvjV}4d8&=MKK z>zWx>F=o_Y3kfNOn-Ug5{SuMJp2|aS+n|nBM*pb0C_=#&vtfhb)O^^|AY>3}~L&U_vP*AT0i?4Q;19K&^7j zv3LeLb&}202q2;u5`-HmlnG?w-^W3CIsk{alf|MjABjO#D?y{ z`V?#9gkVK?-q!Y!vz5TkJX^=k;h*HCuvcB&vPwLyLR-(tMxB*1swXuXZmEE=WEIj1 zM%+C+$Jy1hP9|h1r~`~AlPYeiEYL0rUal30XzLC1MXYZDF}kPo=xj9nvdUSD>xMW- ztSc^>!0xo@Z#vv>qO=A+g~Xt?liT6D^Pblnx#>c$KpS)%qps*E>9GGR$V!fuemFv# zrurXRMXN$Z1Q;%jwWrGzp0BLyB*(z2OujAo#ImF8J6dZ!k zzWVf(3#MoH6m{0VJw<*1G1&HHtw}VZzhHl%6FXK#7e4=FTczCEU>llFsGV%<9QGf2 znJVCH2-j;0nJ?dP(-ypwN&hT_g<%R+LWCvr?mMMR1+|eh=v$)hjTqzEIlUvJW0}pO zm(SHOeiny(bU&HiYGEv7{ie8IzKn_W^=3Sd^^vC+^5!6UDkizAkQ3L%r~ja$IYaj# zWNF1x$|FNT8S+YZdV@2jkydf!;d(2fqHRR^$$?vn;OG)K1<&dkMS~AieF!gO3E4qR z?OT`gWJ8z_e?JdV6KzFRK^z$wBv&G0c4-UTM`EwW@Nrn$3Zcbtf)j`~ z4(XF<e7(HnaWMyxf2RQtB?ePyJ+A_37(`}K=#?Lc^l?MFY?!{ zxxh2mick0MgipU`hW;%6#C|(~Hq!oH23crRK{3j4IU3-k@ZBwOwsmL?uM}7J=0VzfMM4ejkuC^XpX?}Zq8GkyBF|DH=!M- zx#s{-HeyHB$Fr`6^a;u%GjR=tke!Wk%Pg(2GS`1g=g(Q)KWO|W!SJdvXvvB`Eve-^ z+mbg+aT8APi%*q1QmEE>o;~I>BHm9!soW~Rsi6JrQ6Gr~x<5zDIv5z}fdNa%=$-G+ z)TwaO;5>D*NpxIUq(SIxF*SQbeJ~*28n-szsn1Ok;hm#LY70aA(KZNoV5nInYSLT- zzm-2?jcu#w{9luri58K9aZ>GRS#H`yL6m-y82FQXyv{ClPhr;Z1-CiB<$&ZQ2cgk` zSV)G;s#3z*(T7)tHbXH$1gKXgWy|lGR|jY1 zP@=Rx&s9?^;wyaZpni7N6nB`^I`@}?aKBUHey5>z;2{!IrF<`G7S*+KCP6A$kYrKJ z|EkJ$H6%II{BfC)kK&j31N2uIVG(bLGF04vBQ@<&;a*h^QO7vXcXSUVn^I?Q^36fc zdrJ-ZUulOA*gEUgj5c-%nJnC5vwwcW^+i?JmCTB|-=x`!PH$!9;6&1Je=7HF3xRB> zCJQv))=Xu*jTjNlvJu%;xD)f+osAv4kkjq010=Bvldqo@UGn&`+Vbe#ZY~|~6eM>J zBAiaQQC>H`erIdvoy~<#QG9`>JG*~qM)8X1lKL}0S{`be2;xe2Vy>G=uvX75@rk*~ zbve#Bq->0dJZ`P(v_OIXi1j|7$Ou`GI?_M#S&%h?`MY<2m z7}iXjrm?s7GseXspZ`F+AlGI&{2$#PQu5lr!9Zrm8tZ1EJk5%5fyQY6LIat7PW(TB z^v^Q|JNTUVG7S|by(D%MjeDqb;?)IB@Bp~6$NxG|{nwY%v6u&Vkw0X)tpE0>s^_0h z$WY`2Qu{7%+x^SmgTrG;#O(eSo&PFKoqW5pJ^< z)^-i)NN`yv3jOym=~ACD(1SG9rm>zebgA!+@})lD|ADuCD3}lhk7h*oKfl1Bz{bxa z2B5e?frj2tf2M{9JVW8G7~Y`>pnQKG8G4ZivI35s*B^PlkT3bUAfL(#M-b}|X_|bY zfo#g!#{Ln7>r-IEMmH`L&Z?}v@&D`(8B^|!269DK?!QxoM_QT{dbMAsq7@G7kWXF~ zEC)uHtagj<^2!RU3KsKw{b(<|#+CYqy*~`aOZ^)(XSW>4MHZc~f49ea5aKAhcte{@4`szMJlq^%x+NzrDTv?QQ4VX9%fs~{BoE8 zy#oPzb+LEFvZ`G(2YFW{s&-vH$WFdD!xkml7U0h?I9swp*Nqj<)qFzkNDE4M`2*ZM z@svN_Bp5O$GcZY*`}rgQt{)Tc^HkhyG4L91`|w1GLreeoXM$YOyMrk#oJ;#d8a|7| z6aHx`nAP`6s#Z70{6DuU{q0%lXOrF^2(15ezWWbABL4&KNU9d7QQbzp-2E&ADWr(` zQw^4EQk*U<&+tj)^{2dp0O;xCh!+gOc-I6YnQVElQG9Zd5}SX@_z&cA5WzAu=-vO(F8#^BJC2ONN6x|3+ zb5#Y3@H=jEE_&aauxcsdOLp`UbiOq2aJAaZUuujtQ%I94d>kg|Tu7S@MmNf*N#c== z>H@fbA(0DtE89hkw58q63>V22<(>X@Z2Ip0qS0kkq3rt140ZaAfTZ5E43Paj9dD@+ z>`dq>X(GKIh@VF!Y@#y{PAF8Ac-4GA_gy8*XV=d>lT@rXqU+_oc z_o3-*t{Tx9U*nvYpwhtFoj3(JHzpOR@bO(#NUp|PwU=CHI=A7^_Ep%>qep1cgI6+C^tIlWF)K-B2Xzs;M*)x2Q{cB@THE>I3`yUC4ir+hx4EPeCQX?ru(Kml~JqbEpU5+^tGI3~T> zn|DZz4`gAaw1i~prOzd+gTgIP;Z)WF9jn&%?DfO&?o@1dlT*k3aVL!#}VppLe<7O>l_65HYpvE3KKso`t!&2L`}T~ z3jh)|=1wvSa@yZX+DXEVm|#^@^?J||Aw6}G9~hBw$E~LWM95Q~?-OIJreo zyLz{?VA{*^E3KlT@IJkvV-Xmc(65grm26*DvQO=J&oLMMlEpH~=9pyJ;bvFaWQq{f zH@A{Zva?OHld{yTn{Bc}@i=rh9%I*;!7O|5y&OnWX(*&hkDkZi)_wy&FJrk*;!Eq_ z_$Cr#TlNTduzXvAa*=$yiTq}3J$Y{A3A4OchXZeY1+vI@E;emG+pE>OW0*#jVMgmW zM)$cg^SL(o91A{|(c*Iajf-<$$8M@TyjlrpVbNSsSc>#HZn4OGlW>{lz*yD5X_cb} zxb*BQ=3rqSbD!yw>CpIg8c~~EHU;^D1W8NR-`;DaNHyrnF=yPm96VYzO;n|jR((yp zFXnwnUNXw$VqwWQW{zP%7FO*>mXW>)FE;#}7k3Qbny0_Gc1Nxd~-jF?0>qLzBWR5phguU+4{H;s_aKK`x@qFnp=8 za%G0c{^Pw@6W?bJQ~Fg{&X5vn(Iu_scncPf+OFa)?js9%O$PpZ1(HH+2MC)|)CZrm z@vpwpPQ_~6sWmWog2I@=;@9bli@dGzd0?XKnkuM2*9hx%7Q}wc5ZONZU(taKOdsvx zB;C-HtorcilqAg{UUg1l` zDhA(Pf#%fNJ23qPnFZ{m_;h~f#HaGhBB4oL>y8t>WA4Nns?H&-+EF#ey+Zyg)$UKV z$Ew1;rjia(nI?^I>ld-A158Rm8!16=SH9>Th-W#&H9I`nJ0Z6P8I{GdWpHpl`IP%_ z&(bh5@v+RTsu1e9zo4{d07*-g+NkoqPSBVpeC`v<3-xDpnhQS zRR{PqTl3$aBgj8zK~|^n(GJ3wZ}8ob1vSLt(+)V5uR{2KXYf6i1^G5(j42;9627Oe zQLcAqL9GG`Ja*m2E)e*Sn)<$+1-UqlPi+XkX$IdbSx_@ARK)U&;A#xqy;*QyxB2!H zMrWFQUvM%llB*VpTa0O@70UN!t13UrGN*ik(qSqLTMFtq1NCCBDFMf%9Dh?9N=yjU ze*xv^=;wUw>n43IUpTY?=#~|dJo3d2x=x}n`Uy|{DuCaL7jXC}u=iws>qvfm;#mVTyO@^>9fz;7;x zyGOy=Y~@T9YYLM7ht+ev2_ffwbJW3YwP}UdNk*M?LTC zAH|~Cpiu{$7dpBNN4@7&MxA$^7de{cDZx6fV5{Kf@pfYA4%4Z8RcmIP<`&(Syf)0H z>}!|@IcO%wou)(9;92aWc?_-jW`>k5C~>JSd7rHi{_JhgveTN`57vJUGx`rR6cgbb z!`pVN^_Hs>%)LLew<_BD1Rp#C?-_pu|96=C;c>ed!563y{ zjJ6h|1Qkh+G0za%0D{c_3rz^N3V|OQ;^r)fzR-Q|y-4LZGX{?@D);8^$SQon%P`8; zej3EV{PIG?>dPFd&HBXpbehRm?V2(o9KNa(-Ur`SWK^)Hjti)=KOchNo$U7HghlkC(w?qqp3&0#rr4|&xO zPKBQ5MQEK=s=-TI z{IGsjnEN&S7r$ZW_v_4CPOUFopBiFfb~3gKv}5K#m|X9XdlL&q#<@{>_w_uZpY93j zPC7UM-4F=E`Z1{60o^DhU%K0B+?fFzJ+uFS{o!4Pn>e9eN@7e40s=i2r-_KXbAuiyZkP zfrAWK`yQ($23cKPQG~;SP~ju_<}Z~VO>@W>Fvt~^dIv6nCPx!HpsAowB~w?E zuVK3P@9ZZoHRGStH1D1Nn!0GmuQeIR5}h#067L!~sy} z{6uB^G^>pD7T=Tr-(=zYH_LtgtRM5U9GkWmxiQN@V$OvU{1J9tE)e z5pivqi#ZIPGtaf02XDo#*e_zHhIFx#z0gGF2rK`Ecl6^L4YK{rJJZtNgF)5~{;MS* zmr++ZCdpc_|JQ#}z{$wQgUh!yD4&X=gQnyXQP%eI+=!9juurM8wd3_6&bIZbr5cP- zwTPV=aW>k)s6;MIhj;WG*YVbnyuHqW^?M9ddiW{2>f;qQ_I z(0Ax^s4SP0lB5DsJxLsa)Lm(dMt1$9^S@~H*Gb53e1p+P*g{#5tK0Ok4$-zx5Y%2I zN4~?bKK27|^acJXqurOh+09!}%qY)wCGrI_NlIRCOIH z96&BgL)P`3L|=A`8Ixt=D|})t6|%=RDr9L83s;stO{0s9GV@~kd%_Ffy8ab*mu&ur zi3}?))YNxOXcc0w(rb7qXZ>r`h(LQ@(RaLXJwxE?bUf4wj#ib$62gaUjDzAvY48l< zW@AMxxm*$BN=Iz~ByM8tl=vqxSpXq6MG3tGJ|BG4I^!6Y(XdPoR%2E0TuFFYGy?MG zp&V@rW*ICkD$a9RXpK@f;8ec6C%LXiA$$mn11oLG87>U+vbuFSx&gyuDgC8n_=j#~ zylQuPK-wV}-sX}KyN9ke4O=x@MUO68K72X52ue8flu<;C+!c8|xJ$~Ld!*hw1$w9F z&w}$WT?aS+@qf{GZ&ZQb&S&5IE3euO5lf#is)NrX9c3b#y8S>;QRicSR1F*!c{>1q z-~$eJj|kdK1_a?o-rzBa1JF)W=6d`)Fxj*X$m2eF)jcKa9#Kyodx5fE(x>Oy9&vDg z(8ea>k@dlmOL^P<*WQpj(QtnF(4pBG7$!jJ{o%2 z2m{ApH1fx*eB?yQjGb3D;_{(lSq-H%NkW_Xe`dpfcV1s299;h{BM-*dKp_3rjM;xp z*jZ6tVP|#qpLvZ5avxG{`y0U#Oj~i1?JLjPBg@J*t2q^?oWjYkdoV|ClbV_-ME$s; z)aSghrnOi5(?ICWMgr=Se+f?)i z|9~C$BMX^Oq%^(2D#w^8fI{(+nMGjw(}wACz2Iu*hg>W5jMRIJ&Dwlr%dF&61y|Fq zT+1DX^7H>`q>^#D8A7HULq;DXVCPLgHB3s7N6aq5+4$XyW5GB`SsCb%PmRvsbFy0}03TP?2WMqTf6ab6>Sjmr&1zX zLj!(^6ADEd$ix4>5SZ>=nCad{rhA*#y!~hC)*_`^)OJguhR@Ck%Ha=N13~sdw$IQ9 z*pITs(4!1A<*giSE0-f&kH;df;-Es*g%Ml1Bc4Zyu@jrfV+*wZ@pdFPN#sux!@hu` zMg>cSgt1BDQm*tBRnO1-Zq>#agW8>!Mr=)motMo1vwOkopP)4=TWM)AVGMSF5myMX z=SDrtMpXsTHCUV-Z2ShZv$6XJ$g<#Jy|WdM;h=;vt0Q3jxfW}T9y}(==~;gMUm*bD zDboZvm>-^{f8w9we{Zt*%BWftZ^c-n^ho(A69-Tu40B5_v5MGz_G|bFDSCTfrCpVy ze3zvmmH0zGGWtNtRm-Lr0Bm{}TyxIisz1jwvMr{`Mzql^o{@NzDes%1cXyN+bw8U z6wcbFq$UlGk5Y#TmS+zxzt#X0KOJ_lMJjRYrv>Hqf3?QT+M zN1Z#BMprq@s0))OBB&#m+Tpzt(444(0$>N;wH6mR?G zdh^+foIM~T`%58)@1HH%e>}xV&CAX|I{!VR-)O2(+d2^8RF7b)tNKu7*fZioXtQV3 zI~?@TdJb}6?-ZM%;&fHpWj4&V>;uz#T`bT(5|qfdA2E=V2-&4~P+1UVNV9Lw6> z^UIuF?p5)QJwvMYN9Ru_xmWjTj(bJe&D*;Yuz5{`(ByIcJ+foxksaMf<#o5bs{KFI zPV4URs^_COwFBp#U(p%@WkttZgF^cq6TYrYpl9Xa>nGj=S~_LE|7fmhYDr*}k>(*V zL>=VSe)(Fes7-7Ysk3M$EjrdZIEmTK2ohxyYx#bm6_(P{N{NNc`$^o^ah=TfDM>b; zx1$)1pKwhGzz#z~B~lc|eEL~+W~AlXH& z+9yu^bVL`e@#&}@92{DE$fKR%Rhz{s+zE5qVFmvu4;!IeN7GbL(lKI>X+$hzp4GD+ zq^efA3XzY*U@s8foyRYzi+_$!gbV-&`r9cF85{=ea~29E?Pp{sGPze)w4R;Q9)ukJ zId3~&85Hu#h)RWfXmN1G$wp(A7KHQtlkpegWzY`M`A2Dpk}S_qz1;9{n(B93B%*rk zGpG)_I%j2ujM|A!{7bcmjZ@o2uu*59zl@6)`Nf1xZx~5={jKBG8;br+r`(eX3zr`L z4`HwRh(y{maC=`x;t>c{`Fj8qM@--&N2W0mdQuSf<#(PLW%p~{fc-7iy z@?oC5%H8ZzyD02_aqn^-VRk~=8)kp)$d27d<-OSQrkK5I`_+G?A~afgq?p5~$Mtr}A1uNiNHF+J>VoT4@iNQnQ4|OUbJ^a=R>) zWJ?OPi&GNC$0$Q;aG=yWOS*+bUFGDNHZJXc&oYR#t9P(~N?G!Q{g5MQujJcie(qje zfe3-e0{$4tC-}pw8JKWPc`H=jfHQLa#Lb2?Dmq?~cXv7CE9Yk*IjhDs%^c{AYl<#$ zS}7x3F2+S)i7TREiA7aODq-`VWN%tVFClYwE_L`v^T`;3EeA;;hy4Tu#grt&3Z3P9 ztTO>F^Lk8*9mOglYGXKVVgb{@r9)E^tR`vO8Kx~_$z_^VlPqmzHYo?lCt5n$J~9osBK8UC5ua zsb#sYFd~-6mN#|ZveNv%sNcN3EidSL(~i9xZ`zT!vE?~E?cLaYtC|h`Z69+3!xTAN zTV9{VpR=u{Q&*WKodYdz>Aq#9`F%;h!l-L6Mm>QsAw+5)c#Eqj6VrH|+{Zzpw(z+W zKFI0@{*;xj>8y0$veNv%q+eyFYj0M1BCAb?6ot{Yv3&~Pb3>28sB0Rd?ps!x-)Dsw!24k#Qq3;bTkWv;K*9RUncpdn|(Xyq73X2E(YAz51Ty$FZUBAO`Zi+8vnPB-b~s@>V~=SZFLKn~86{fYtNxSFwB5g*ldiij?K@NaEc?)zVkG1vI=**tPutdL z+h)+Tu^|^FFemwOV%8jJTDnwjqb44Gk$1LsY-`w!wJn=-e(S*GzT6pKgI$Wey3T|< z!aXJeYpSR8iBrR3!L>yg%+<&fV)*buITT+OkwO@Bg)#Y2)}y2;Va6Ab=2 z{=@4B=J*~=)0ZCj_CU$SLhqP z>3VLU=oB`chn;n)XuCJ*XtrPO-8y_DC&z7tdi8vs)WP<*X(%8^BP=SsOQgFi?n)!5 z>ydOEdOPQ0M)%|=xzXftp!DjtCA@}hIqvC4j3RjQ5fj5^pk~pNvBn?&$!9djZ^2v9 zw#;C+Im=75F}hG%V;cWsj9LFP{?}MO0!N|Kv3H&1AO50?WZ2Djb`uGWkmbqOLMAwF z-lz>v#l&2PF%0{}QDaYpS(KE|POywTR?*XmurfRqtbz_er-&Rgso`;@-kSH4StcfRuCuFSXGxylu}eO#aqrSxsH?QQXqvXwsE%XF zk^nQ0aSI#Q(c@~p;@E{J6|(hL=FS>#&MB;w?&VOtWKV4922O0d^cAvBBtNkdpnC7i z>Dw{R{*7-Ae~~y7+oE?+tvlF;b<71c1OQjn75`QrB*5Pexg=+juOaax%UJ?r<=Ux2>_a)adz0l z7n?w$rRfr9N5|_Wd0RX7FsakEr3ZYs9HeDDeW%5%xEdnJ6tkS1Ty}I2AuV}Y>>=8rz^j%|C%k}5m z?LC|ZOTX%10i+$w`N>y9#vA(xj?3I&TQ8UKW{tDiv|r40BAQS~UAAqY5!Jy=BM|n- zgo}mtbgPZFTbTxo*#_K51I8#?4AxtuZY4G_9Rv&te1r!^pRUCMYf0W_+qJ-;uBG(& z8Z=*EQqA}ZrsF%76RPZvPH(hrzUm52C746xqCMVE5|Rwj)_)*ZMYDin`<(60`fhZ! z9!u@tU=DR&wD%LRTNAd&j2p9fZ{N=C12J3>n=QnJdLP`M%e`OowL^_EM_$x#l$q=> z%G~`8MugE9@H5Y($sT3S{34$|tUDCCe=wN9l88>DX&H3q3*DPv=Vz2bmp#g)Mr)K= zDKp;37Ux?h5xX@Vym=Kbkk zyr4~U-DYCOHH~YzK3@x?&5iD38u@vZ-^F^J{Yw@4e>t8~S8Af5=~HgkIr;iT+&1Tu zLZ>+=74vVl5W$zOa|#WB=B-*AEOO7uAFCW@9N{#~FX}lbU*?V{^u}NLtfqR?_GeU? z&ym#MQ>nT?`#5!1)L3aS2am7s0*SpFx|S$AuBEz?VZ3#KceiRS$>ZH^sw?df-32F3 zonAX&?ltbT))GsAJ?{02F*e?P(p0~P7#*6SF`+~B=Q`DKf5!=?-9&5oPKgW(sgdhE zsub=_kpZ&Z=U$ZWjqh>N)jh|pxl_}(vMT(ZmLd7EE3sAnMw895rXk|0R*O2`HBWE# zM@7nXMJFmpfW-nz{gR=n-Ty12Qun)bgoEi3f}WNi3f;TK9B388{SRUkurwY71Vi!^ zI(JFWbM6udafYtSZ+qwZN$#V|c%-`(Ir~QJ^_qK<2QH5$f6F_s>7g84xQZSd*zj1G zpeNTRKfS#9bZD9D-xbTko$EAe{zDc9xt4Z|5CNJ~tarbepZxgp8K-$yhMcSNy`o#) z2bARq->JDxi-#rd)UY${wvu+9OM6;g;hWe5k$O3|{$lK(US#f=j4C!lZ&#g80KRuE z#I-=6|H{Uwu%%Y*&HNrruat6N|0a_?Z8Lw2N5r*e@LVd50?UN-xX|kL`_zU;cUl5B zlAzES{j@m~rwZs~oPQha49Y8YAWqDic2^NBgtu8JxqnLYAR?*|Pl)}l;D@bbEgwTZ zEOFKv%##Alyfb)Vvlwhv0-IqA`gP1{__cbVHnC{QUm?+Jk{E{JmTF3_;YO461XnG; zns3f(OPR^5M44-4&ipVW5Ngm`JCoG7@7|F`duiWbkV(=6*x9| z7l2+k;nl3nQMFfNL7=|j)Cj;6+2Aw2-v{(p0jM}<3QY$c@-v6GgG1du>@R}aJjmKp zn#6}C13{}vu=V)OK=4pXL16cy&L>c{bNqj-U>q}df7P98<^Pg9`v1c;;v*!=ZolaK zM}*?-lGI_rIqi2d+}Ly4?U7_~PA=l_0u>d?aAD1^l=I2F@_}B_H~3uWP1~edn}5U8 zh7d(wf%#q&s)Xo;Uf8Une9wN&Pw+0+Sz~BEckql6hPLPJ-J1M(z}3G@9qB*0o%)Tg zSG|mx%G76PXSzPmao6telsT^gN*r9DQw@LMQKJR-ek&(-{a$C+YyDnV|I_7QW5F_g z;Qg?>v^J~r?n8%KcmMTy{ny=1GN!CQpe=Iqd)M9PqX(p#`yyUJoB9tk$qL+MM+Ld` zT><_qY-5D&3w^Q8{KbKuRB=z_K?(|n^jSTZK8R+r6@r=edqoq&%(n@ATNRFn{9Rb@ z)#K#!zoWZR+_dN+sQD<|aj5a~Uc(>iZ>93ztDw6TI+!becbw_$C2nrA<3JTeXr6|Z zxt6%C&7b!oP4b|zR$|(N{oFANy($q7xe}Pd;ng0HytI<+YVf5cfucaj;uc#~V`lnA zoe($%9*u6A@gL%azn&U)S5u#i@IK`D|B&I23Ua8l#f`S!$tw!RK+&hzAnNhA*-GYO zlU2OLW4y?8TQUFlpSQA(o_q(9_M@$6V>tvpN$>sr3XeE_$Y+d>;}*zmmCD9PtX91U zGNdoEij0(NDt{6oEgm&Ny@*AwSGe| z#vNmy?08iwM}EhyqP+ELs$*)EZ2Nr~ZRtoQyUZrjGCQRb0`5wNuFl$Y+q+kH-B*R? zf^661eV(lc(hS6~_pBD`OkZZLw3M0D69P-XB_c@DAZ zlps;kQ#%_*8>6OA66K=Tk)at?8W?Qz(bmNfkEA7vxdPtvz-#&w=N&eEP9${CmHJv% zwWjIs=4ivFzjf~-4K7+`jxi?7WE%Ew!M+7f;$>(V70O}w_6ShVEwecYnJ@c2p@}wA zL**cQzqs&NFS1O<&lsk|{$Fk7IQcAfa)w8#ikUia&4n9t{Af_re9n|t9T(Kak21Mw z?US+d1xlohj$$xA5k3o!ww=m`dn8F8FExX$WtbsoKsRcl9*Y6IvJ;i{Xz@B@L(D&x z5z&i0`cZ~!j#W|KfF;xAQ^4l z^dB3?&w;aq-O1`dOUpEExRqLV|0>%8nmxYEtR})qhQj`@j?FMtARht=;wLj-tPaoQ zg|mW2l1b`MeFRiC{^)$`k6hZ1pW$V;E-@R9x)Y~z$*p1+*WJ)D!^lOjN{LuZ{SPLT zvwPS-6`Pu#&H+v zWyb+{|JOw0b8HcMs z&-vf$|KAE}-Ws0=ZkJAUd%Tr9{5=or;%d~w@>WLipr^-mJgK%m!{>`if-WnonmMNQ z*TMzIdJ|C848{%>M?;N%Xz~&(dv!)S`sCR5e{L$ z(~^dD)mk0wP~_GpKvw29)=BDnQ|l1CD2Y!p}PrtKu^PNp! zoj3QeflWuYD_8eI)oXIaN7T-=4SqrtJ$#ZrZ+78Kw?HHYu3boOlg{E$%)Y5a)&NVMrPRwv|$Krk2H` z-bK}*MDp4?i!8$?%kPAJ*zT~nxobMjZB#6{DRAc05Tu<(7KBTYS#UbUc?rvLYtH#1=>y;dhT$%Q45Ho)~9<> z^ook*LBUQ#8=h&1eYOu2Th4Uo^M&+*Hoy00pEHxmBL@#6yq2=FZZ})=z|% zr@iIdkIAOpXK(Ql(BdQ3ox#d!2QPIOAq=zMiT|2Iqgc^sC|C5Ffkk~{XhRh}@d!mv zCv#pi5DH8`epZJL*%n&@c)sMb^E>--6>tO9PB{TENEJ2!!F%dbjtpjfjK8@(vbNQllj({@}Qq4Fuq-oSySu`FZWoJ zyRWF~e=EvuCM0!dKS4j+8~D@BP`!U(q@ef_V-sfX>!}sD!wy;jGy|_QAw2f^Ub~8&wT%Ju*4Z z2rd6w$^G|ifje)xzx5_w&x_B9+;%#NTl5`Qk^b*3m!)P9bv8Sk0|*~6V&t8c8b+ZJ zSyv@tCJ)4=YyzqIeu?7-0j^4Y#K@a>Sl_*q{Q@gkc4_WgaCpIettSJUD}Azo?w#6! zn{gknw94fMUN_Gvyl|ya=0gm=o2})(%sKq%B0}rFXMVFax!NCJH~T>LXT7o%HAI`sH8{`j#_a=G5m4EnMQzB$6zG79y) zyn}8{HxUM|&%V@=8V0?2a$L+DK1Xj|`F-gp#Oe^pqEV!GQ}!X};v=BrB6ot_j@5kd z1iOgokt5Q=3HBoMVDJPxtsplIn+f(4le2h&WueAgz2r0#>^9A=xKfJcYaF-F{O0X}%l{$l|1U#`oNsX!eb}s;8&i0* z;_#Q65|IdZZsxUJdS-RLiI|%B2v7rUqXi{rm?3uQTSZ>PqX+iO$nYOCjqK8Ei*l-b z0S4sXQJ53p?bYz2^fMZ>!G6x z`!Z>CjqzsYm)tY81V9lD;V5BFbcdb!Si%c{F`EB#8jc=5P__c1X^c;d%=PYd8AY{B zBD@EP4BfVgJ-H=QV&`vzuv9!X_I4HQI30*s#L z6ixIZ)$t0SoU8Sxg;8++LP}Mr+y{hMXoo}B2%)*9#_5Z9!XTHIBbq=fT06to%rL?< znqo2dieW46C}u}=ZwHDPqg8Fb*Xg@hO05~u%tx?!m@IXf^GMpIGfVPhX(<21SW*6l z2ci7Y?#gxWdXlX|=pB=bYe{m?;-p)L-Ems~!Y1JS6}MnMW&KG`3FMDgJ1>{J3q1NG zO3)fIY@cSVTCAgf>wR^tTjp3st8jX=9Jfi)Ud5FRThh06F^ZX5N^p~KlC@x!6-tcb2II|xBu z?5x?t3brxU*Yd&s4!s*R9SX-89Q=tiN#e){ww23XL`PqeDS>kroL}$9QK|DNI1+lC zuM!<0^BrT5D#rKRy5w7aXSvoRW*r`|e9k<`fL}Nz2b_lrzDxw!e(ocuw(R4cO`y2G zP`fr}bNh1&e0{~jJA&^rrmYuo*`0Nsb&WrDZE)c+^J+YdKY++{{^+h_Dpn^VKBro3 z)=KlMu&VhRFmbbScgb?9nV6$y-$a)@C`YQAlbjd3p|$6n$JpRYxmY3hLFwtq3xfDP z_^=_AZvT|)R{6*iG83>bD*&AHvB7pYmplM|BoBwOC;yvEk6^x@AUWrWuPfevYuF+* z9nQ#tqBd2n@5FRyVY>^*ZB~|N3H3GIHS4SwdpB~`8R52~-M&|?gVt8nfyn%p*$u+c zO^$COqRgw{E_Bb|`D_2kPu0D07K-$4PVX9)J~l3T$ewExc#M?_9HUo9HmTtnw&3@>`8gE@B=UJU>ty0})m2Dl!-;2=lOlBPIaAU>+ zC;SLHwRe?4fOLnm@;(NEt6>M2!-tTEOAUQhn2tbSCYZZ(4%`H=!l{V2)r%u1gm#{F zhINzQ?ESXN(LI=>XYAwBcmtHt8phcPPoyXM9kwFbAiU75hLh~@v7@WqZZCZMoM5Wy zyE1=9^v$KBH;GN!;rP^n$%cyh4Q7Mq#~}lMn3mXz;F#1k1hU6Oc8bMv^g4mT2S}V> z%e-I0br+@h*6c6HT{j^2?84j$ekgm;xS^z`1x%1Ad1iTc8&}(<&5F~>u!&7-otYkK zSWU!4y=8ws5p?U&$#UGWysL5s)?x0aqK=#&^6?S5Ixxi;A)*&>!i-tjflWmYm!F z9T?>^{j{J|F+B{duhpxss(+~@1UjovRej6;59$lG|JmbLrElrtCv%5gxuYbbm@a$H zv&o-pm+B?s?>zraS7y>3W6RgOtH1+ztfc(n{XhV{E99}!4+wV!<%n{%#aHK2k@MX< zsHIe2G_RWXcA12;JYLd(+7;?SaY{8CS6CN!rFx)vpuoYSe z0(*t!GjnepH|=B}8WQ%l^5Lq6fiOSl?gV z9V1hpZY0aqxBfP-zE=d-Kdvv1E`jv+X!T4W0Ydh*I9VhL0P3r~eJPD;2) z|GN;{A?Dw$_=7mhRfXXcVfd>ey^r&4>ONZ2L%(DJ*k7O65U&Mg^kKp8lXV zMDt>H5vl~BnH9+{Mo)+&w-FP#;u&@08G?bL|9*=Bp5t#}363kA47+c4k?&2<=0K{1EC<}V3trDj zl_xYq*^1C?_I@FFOl_8VnT@1Ml_}*;W_O~OHt?p)^P|^qQWq8;V_qdp!`=SkdL+Ct~Cp@;#DPxA!IYscxik2s`!SHj3 z7w{MDk0rQV@iPCC$+3_dSTurKI~lej=e-Ks1;B_^zjIQw(0r>o%}$v+(|?S$K_q8S z@#Pe}i1nP7q@m=|#GPYwGAXot8kaa~pTcnM&8-h=x664p1>~PAgxu}IVEBopB>2&e zs#1?EqcibGw4)rlR~OCMP1uNX?qe5}BuYx|E`34|%@f#?8GoKe4d7{%DsB*F-rA*A zUoyhN?|iJ%Oc(KUNvyWNQ@`7uT0*teb(BFo4I-&O=uPTR-{bG%ckZe&mnIUndHyhK zZ~R!x`z%lO-8GEd0cS7Ummr86D9QLeQ}kgKO+C6yf8_>vK>9R?KczpLZ`Kp0QImt^ zOB8mVetnpbo`*Q#Ts+P|Tv&03s$}a0AME#AOH5lGYAgQYoRfh8!_oJJd2567#E)@% zIm92kGXTw2v)A+6K2`iYy7si`| zw|yLZ!bjX~|0~};?r!@xvw?V{uR4m>(mr~*CMbmlV1H9{bPQj#? zFFK}c(G9$F8=K*!@R@i@Zzrs9PBOsh13!*qH0)Y5E1&#Ce z&8NPXPd((N@-473H*8?hGQJ2lJ>7Rsg@Ntoyb$6Z<|+LuUlibe%{v#kN4-?G%6>|3 zfv5Wi0!|OehJ2~Nd%I(PPXZmJT$CPGUOtk>s;xd?PSli(QT1@*tqP{h$|oh&gan?#FpGW zx_MNI|I1>SxWH*TOeF!KbusPp3^$EBtPI5<+WKoMdd zNGG@Z$_NY7dUdfsM+eSXq2=Y;8^`eqzE+QPEpsMs!LLHrYr;0AzFkRo06ms^Frt(K zk^hp-Hi@umBK>{NoRHBVBdh$sph6aT_SC2;Jk>rg%ROZ^#DwH+ynN)?E=^{ z<$t!<0F3%OSJxz0#nYVkNz)xUa5W;Sj9oI|j3A#h0(mLxnu97DsH<7cJp{5g9nhz7 zncI;5yiZuh?a?Sm@Lzuk_;UW}HWVx^K?+I0mkH$f%DH!%vMeIcpw(KGC2v1)>DSQ7 zv|pp1x$o3LDaarsU^+Sr8IJy9n7kTULC?smSf1*MpGX(-3D5V#?|kc><9!pJH+H1V zbFNNZ0PX?%V91IUF?Ae>;d zrp@EzSZgS>eBxI?-^i|sfvv{1sEPGY5}JF^wOqfKzI52o+x2whhPGj;GmSeBXW9_0 zQ>4_)02T8XhFNGIEgT1YK6@5fo9#x9>kTKBsM+o1x`D%fRKf;a`x4Q>{8)2(Us?P_ zs69m!sqaWjqJ_pkE$k~{^%qLc(ChG1yd$f74Xu1z())%d`#6Pp0iPkn1mjU>e`$rW zEyl1dVp!Z}KlJgEfWO54^T%~NReFygiN$x{HjMbP1Y)3?sT9?PPq#9Jl_<=UAsgqj zYvr$%3o1Loki!l7uvp}vD5hktdCv1e>cG{vKg++~Y_iA9Zw z7;dUj&SqgW|JFtZKh!?konG2kYP9`2LqA=O%{%0&HX75*^NQOu`w5)pU+2513$|_%iVreoqzdc_zbh zY)(ugaW1?ciBrDp!>r6e7TpsHrJ-uWFf0t#E|D$9-P4i3X;7HD^DY#8-eHZJ%!F;k z2Wa`!*!kH0t3cIRT;Z9zR7Ng0%!1!Jj_5G#BwI>WLT6HT^~6R~2MyIRob^f0BEebe zfKwKgdL$1KSrxJYB zn0Cy;AB8;hQ(=JW%ZQ)q)k=d^S~1(D!>`G&Od2)l7oEVS=G-|GlgbZrgUfSJ|G%EI zk1jF%$=3mm>&WHqa!m_!uXgZ3=9EtSgmq~(@p2wwjqESEBo&UuPt2|H9d+;9#3=rT z_AydkP3bqwefx;elL|fw(fYHilQK!A)cLvjaVdr;)Xw=r=&c$|OFY!U!a_AK+mla& z%azyc#YJ%wOV0KV`Uq6DsYeXh7fa+;EtzWkg2P&JO}0zgd<)ah!X80g%!2q<>~p2D z!RiZclpi8|np5Ca*535aa^K66Mx)D)aS*p8!LIAmdQe`slSGzGkB!cLgwhH%0JZQF z;UL6RWv-@2G>>~S`z|K3_<-;6RRn^S{B}VRols-IDF-BtHiEzPKk0G|;&LMWaB`+; z_DQr>8DBH^VUDbk$}Y1@@A+JQus^K9{`|Wd?7I1&_7RxEdyhBqxU^>ljj0Q5!-jAf zWDR|4>X8Noh_4!Z^bvWzjT7mDG2YmmQZ27Etq?(^B`E7gkcQ zL7mC;q`o=dkjyNgX8Q)Pl**?-5s zORt?us_by?zmcAg0>8!dO@I9()ZZxs^}_@g#7vdx;&m#am1)T%6``bb&D4|zw)&Q` zf6~a=;-#I*74=ch{4A{>;UOW^b{^G;dJLrK2ymBE`EHQ-FS2_}Q&lJm zSE)7c|DrJwQ*e8yo=RO2mLrxqs;>P`btB+(vfA?M19USG`EOrkmEz4x?j2yxt)A2< z*{!`&;FWp=w~?TpE)^xTxQ9;3Z|vIpmrVNj{r9hN?$?=Se32(5x+ZCn!CnJsqetD@ zkKZ49X2t!<6S%E@94>B`FGvu=;qlYQ4ARV+-F_+Y`0$n40?jy@Cbu1BuSqw+vgX zbnQOK7r)Q>1@E%syC%7Iz)6*YJvB+r>BA=lxdyYtp7aUIEAudCo?Af#n{JsT|Ma%! zv!9>ve2o@5+GmehCKy_kA)h}H9@ox=eVibHPV|3NF{omLn7B3*l}xgY^sj;VR%P=4ZixIX=b9#}YM!%CGcmuzv8PO1#tTFSOuuvcJ&Zy= zjMER$-KkRSt;q}H6d{b06r27wO;6GpgSRG|J1l~+2@3c`&L>Uv8%4XKWvN5NCnT!~ zYPxKBpMuv%X`(5)V#t2XBy;v=H-i+5E|8*1dE<7pSs5-{aClhDxeE>tZ%w#atA@&Y zrm~K6GZc0pU)Q_N@d7X1XWY(LvJovhVcY~h-O$t)wt~)|2=!pPLNC6WyMvo)uDNkp zkobqLy|WEcC-_Ek$AxxVg_bHn=iZ)c)VUrxCi$JS7&1VCrEO%BHu61|p$#I4sOB>slNRv;dW zxes{SyGRvRNQF|;nS5=dculKw+1_@mTFcZgGcg8 zPC5`>1H-_vYY@TQoh6ftA!@32&gS4ieqI$|Q8@EE_q|y-%#Sa2X}qn(jXyRh`>tJu z*&l8<*%JtZRENM)zYqmrM4_4k&g0@eKn4*sm|kh9)>_|HUSGyasb4O}QYpP7UzM-h zo?M>8-piT$)aP7p>Qd#8X_B*ua6W;B-7fv{NAjavt`^qN?{r2F zngB>=)?{2m75J(LUo_{gYMc-JSD$w2ntj5Kv*K1J)Sn6#k3+35E=JePjZ}`#c*@qv zXk9e*oL5HBB-@^`@1;qMj6*Wv1c99Q36p4>6g>h}10 z?;69|r~ch=_WJA@$f?lc)75?sP{FugY@oTqUFTQI2++XR(nlw(kfip)J`a-AuX>#) z#<3~`I=5sCCsw^1J#r+b;dXv}ccElYFEB9pHBJo+j`(i77W>WzJQ-hE)9s35AXrnV zj+lzpy?(qeBf2TfE!jL|?uW^py>7vgVJ&qFxZ4EjW|RZdMAds0nxjHBg;^!9hpfMu zto;hhNefN4>cpM#X~cMux=FScaVGRT{0Yy48o`(9WAb92>H?2Lu7_IAPIYJzvG6Fk zD!KEtISEmKb#I53YkdpM`l3d4)uon9y||=g{E|lgS|*)Z(o9+)SSMK>N+*c}LYx#; z<+Lo4ke*r;C*?RQqT+Yzr97FTYxlAZC^%flnzM~*F^~O~1 zNR#u^cjQkQKT3fVD4Pcp3_BfmK_NrB0U#D29u!Ivet#I=87A;5)D|)5+5g5!p+?5J|^n{ z!{bB5eIudEuUb7ik}Gn$e~B}H`*GLR=nojWGGAvs^3V7ie(&(NFt|d^3_vfD_zSI{ zj1R-m8?a8w5|PG_SLoRIB!6pwv~`(38%W`{<+m>P57j9#Z%CyAZo(s|jFN@Jad#ks zQ~!wv6Rh`T#CvXRfgq?cxO${=e!l3`z|Y7j7?tA-MhBTvlw+ZrBcL1~F*#l=I*IWm zH;0ikqfL&6qB<^ca~Nto0M$6NAOq)dVkX(8um3(zKNX_zN2uI z!>^wu%k zWp?TND)W>X6*Nhp&Ee-`f_ydz=Y{F)xq9(s_l3dnX?iimePIyh*NeM(;k;m~?=I?W zTSlF|4)bMZY#~t%qW3R~-cK_EYnX{Tm%51X18HYWD!iy|n1XmecaGHfv_n|X#GI(z zHf({r97(=DvT!Z(oh>dUyEgN`Vy5hHw$4Ce-&;u0gWA9Lf7kxmL$&Y8%&GwpTwx%X zE(rd;AA;icL+#g?`6R=H;V8$pxaK(-w}?BSbx3ePq15G(j=o9rQkTl492W6z_=_o0 z1z7~gPt?wbtb?4Axn=|=&y($$&Bzi0VAaN)YcDrS6|rP7-%pL53~#EyStpaKS-hv^ zdYvYZZ*3jfaMg&G^7z)}ty6&_*rmBRg^*e>B-+cv4{Vk6vmu3fa-Qa7B!B;i@foqaAhFb*aAf7$mubVIs z(VPr0F+2pzO)e~~JEj;k#8xLp`0RNBH~tbGl)p6BJM9}q; zcP3O5S+zgafaK%RXf=oNDne$w$|(@yia1wL%)Uc%snPkAs@OobTFYC)x3SFeteT;= zm*{lPp)u6MoI9UBQKV@RX@gTp@=kE?v5KUwp4v7X#X20blWm;R zr{C_H-FLG~7GAxo*e<3Eg3k!XU5oDGon57(FdidWUgyAkB6p#PhuW9dr z^%T9L1g6GcfmvS21zj`ZRLI=Tf2k;bh ze?BeRrAs_o+)5x3U=uA0t~@P%o+fzDv4s)Cz)1x1;}Omg%NJl;9DqZRhEter#8K)wV9x78*k`^B!ZsA} zm_g%tx4T})FSTVXH0He6V-}(^R)u}fU2wRM!<3peMzKxeqr^Ch3mJ^P;${w*Y`2+U zf;DT*k2wlnRbe;zWCdkQE7)0B$CIkoS=K6@;a4&l~W=Lr9DU=qLtGvQ5>88_MRb+BYc>e6B#GgfO zZ&NHqCxJaxZW=apBJ-W!c>;X8^|yYBr^Ga!b-z87{}yUfKp<)eyX}!Bg4USthpFmm z5LgJ_`49nB%C=)JO66IRDvbfWSKKPskHR8HiGfEEak*R(!xM5n-sFDw#8H)w514#* z>9OT`g_$E2B~D_SNal<$F&?csk|`dKx$pDVOLW?Si>YZ%_ll%8tG8Z<_SLU^kt#0l z`ub2u!I(5OYfS3s7et89y?TiBxy*7qURuj<%Y64n&b-MZ62dY<#JL5+D8$Tm##&%; z_lHsEdo7kqrXIKE?9ZL^0ocUc%K<$Y-k*XRtq%+^0C+aN4NB!VaDoQ6eKhk0NI}pM zl={|Ban}Gvmp_JO7jfiy{P~^OUNdUq;^zx}g(a%pYg8+8i%|eDgv2z`OfUASwzg>4 z{_R?N^2yvZ%5`T5{MVTIgpi*y^4yB#kyCHGTQil&Os5%t;@4VbzKd837tm-nWE*pY z-Z)>zq-b*|JewR~+&T4HBgV~?Y)1ivEh1}Gmo>58yUFhCJ$cOi5801$n+?t)3Co1b>Q}~wftRWpQ*VUh7XT=R zUd_|Q#ENg4b3JfHQZwt=ahaGh)M79@Of1juG-dPj{S_4~2x|2FD~5j?cz`!zV410V zjW~k_1ffMUAmi-&0ZCQSWL?@RCmFbrF~lh3e2g(o>NXnh(wr}RL&maJC(q6#tejgn zX#hWc4FmY8`~VJ~-?z|Y@~sx2n8)Qgzm6@SEUqmyJKvsF+6RUi7i%>uWI&i|?c>%V zyi?j7vhi(-btJU>&#^Xs$tRQhf9}xX?|C-rrSoGI~F zLyKz3XJ6^VCvedjBx|;P&b`why<<4HU`N;6;SX9b*KE8rwEUsiV!-6E%t%6Xz0L@0 z`}|IxmX3f77nwSLZZSMeUYxp!Y+mMCz5{mZ${3eSwqIs`)nQ@}uS}gsV0#fKXsA?o zp0kh%C%fH|{!odt&{7@g7fDvpr=^`y4)wR5BV2PEnW}A}vj;-$StgM^|82i@x;^Xd z66@j;1wLrebrbW+((nY$mOQEXpFOo%FXeXhKCUI;n{|XsOy;os{f0fym+bS0lHXBf z7bIYBsrmQ#?K8#bQqz|V(8@apXxOJ#! zZ}h~c7(o-fp5Dx((Df!vh3@ORK6|bKkV@!aBY@}zH*?X3wTV;%R(<7bl4&GJvIGzGSc3XYWZE53nq3_ZgO-BIdy|r;$jlhdUi&)#P^04Jwo60 znGocQ?k8Qd)!I*3pUvDPvoZa~@brmsQ60O##dpZ6jMcnMQAuSPq=HU0+gyO6%hTqi zrY`iS{0qsNJ0_oqubcBp^4Hpp`{Q52M}*i5@egt>fH?`B#g%7_J$=958cms6Yn(9w znQ-pX*x#2q%GAQitlL?MLDSlRE9KZ(Br?`PXFqSA6iadbQ{N7|>F+DO-}xC2=STcW zeHL;`?;Od-C#%+%>I|%fvw@IlbH{>^+)S9xOpqaEUIzP5A5C^UpQj$XaZ}ewd^-d7 z{7rsRRV5`C#b3O0+3Z~$NjgW3u5rGl$5H32dZ^r4Byc>MWzSmghv;nodMjX0^3m87 zgDjT6jIQp_kxO$d?%Z~dnabvVtvMe6!_E15eCj~Rn<*5FZ<@V~Z~z;fKVpS+uc3N` z6!D+0f-BvEWqL3_`Z%;sJRH%E+0SZX&xg7a_T-b%ZeT_7F|=Mm7A)Lp?%mr{&gj+Y z3NtR@+gl#r*m5VkS)3JuwB$-`*bszJpMGN`ud3|HXNcX4L~L7|_2!NvcW3$nm*q=Y z)P`sky|3q*aijcdgTYK|o&o33g=U~?6J(RqN+U2vGW$fP%?xMO)31*NK$;B{HcK_JNeqiZ!3UgY|K&YUk%Lk#tDDX@UGFyy zPlfL}b3L3(S(jt_?BISRDC<9&7_JIfOkZjOT8?Qgd4H|m zfQMb{zkXsOJ|sWFj`9u&d&J$}v5q_~F$LQ;_siJl8{so+v2=w- zYP&&SVE?K4e+Z=N|6uM6n&HdFw}lohrc&7ZJuRx7oO!WiJ!JF?NvF*<`#kBs(@6Jy zcI_uqx7Gvv4EH@f(6A!Bwnlpyup8prT2E$xX4tp)MSJmxB{@N1?k9tWW#mK*PJsdw z)`@<1qZ0ShUEHWjq2wZ7K+Y~pxHtBgDu63MqydubzkSFhV-aWa za9_*qv@}f&jL>a56E((ai!C4{J{InnSi#su={LsIyaY!>Wl58+_KIB%l(YiPG1a(ri*6s_R6&-b^mbyd9MUYoWIllpAB&nENc5r3ta@~8n zl57h?Z4dD7Px8+WwS9vmJN!6bX|lm8Lv4!I^pttUsS;=FF3Oi4eLSydnsxKTaJ}3# zMF&O+Bfh%XsomJWr3vCnoV&1>GMDYie`p zfXY5eWzI(S0i2k@RJ6z_we=OqXSW~!_da;SFQqzg2bj5Vw%fgM*1e6^+MVHid!O~< z!Z(!D9jeS1dF6Z&10~MP3{r{nCDNBLPC6knOT;d+MJKjjWYj{**hoNc;hNj)v=Ewa z+>=uuCGR}$@iMn3ZH*p6zX?p(Ou<>%$DsVF-mD8Ilic~YC-s=2NY(8-MkUwxyn%vN zE9JXU88+u;`xcfAOxipNuLHmHe+jAFIn+`4FbMVk$F<5{qPhYSJ< zEZDw|5^kxHhU&5rt1G?zl=Plc%T`I;)Az&XF!wxsklLG3AQr#VI?|MYgTrEy$ECu) zU}d~BKG9<=)vhxcyk=TX@qlN}a0hBA?f8j~h#us1X%BEsweRxvycykB)5Y5vu)_q? zbs4Z3+y7)>=(SeU!^tL~k?lXLC>#7}stFb~%Ve6yzyaszToWs(ajI7G#z)xXF%@V8 z-F7sPaHUylnoRT2!+z}|>3FF9Q_L`J*Nx-Jr{>-+gXgg@fbWqq{bF)e!$tI)U=Cce z;*poh%Ji;QgIGMkdL@U`&**82w+Cb$iEmAmZkUkb+IIa zGaoz2lRJiD5=o|pkYP77JjBWp+qBrNx;dlV#f;)AH+O=a*?vZmFj-gJm7j{tffDCD zvKCD0YKwWeoGCb%QIrhK8B@-Chs?Q-t@DC9%|_(ElG8c<27j9ApwsiZn&>KGg+HXA zdYOZ}CCB8nUbahni#GhfUf51Q8|gL7xffD_%ir{wB3%(Iqyov#Y2-vbcCC+#7X zsApgo2s^a~%#UR9IE(1*J76;3KR2h4@g)P~H;a4@o+mSXx?w=Oj|m(5goux;T@7rx zSw#jHB90`2?bFN(G`t8pzQy_ZcJ=?I5qTSvu}gh@ARH4wZSN0~bee#kSeThG zr^@*EAk zZS}<6D#l=ewaq$YooE^9N{$GIr=6#yv!|A2y-Zyu({ZRvVe55Ed${GKr&W{Leoyc5 zy8oH~ZD+Lw2r@DPBmdB#0L>CN<3urBvE2=k>)8%|6+xux{~ZN10dCd9{)7 z7*qUnF!|t`#L~@~yG3L5lcG4y3C6l$tPEHBwHbjM|06%Y%Rq}WW?)XE68%)OqNQ@k4FDq4)ClXDOTBF~+wBb>G*Woh0r-8Rw*f zd99t(TCL}S`D*UHY%R}k7{oA0gX3E25w7d>Omgtk13~N2m}-+Tcsk|`8MU9?Yibn~ z=6n3IdTipC86Q``t|fDw>KLkC=k(1YuQ!XXBz_$!LUzBJ2S~#-zP4RCi^bOC19KXY zdl5OEt?U^%HPlY|n4}O$bbg5)nt-RT<;lfx^Em_Ss6+>2B(ZZtV7-Q6UfCaX&nz=0 z7L`!W-@HzPGt}xIOe@9H`)i$iY9O#{hx5}9KxO~zJ{9O~kD0&q^q>*MH^e7t$6%6n z3=){0-YB=H5ATa#GY@QEGcS3Zd(kcMWeijDBGXk5V?;}ICR5&TlIR81?pfGP-YRGWbpu}8nuQD6xx+GK0E3P#u;IvX8^J5L%HFa&n zU30y1c3S%lVmnZyozdnH{4#O@KphQLrT3L5-@Fj5tx}8kJxHsFecN`iQrEVcJRwmx zi!+x}t8IU$b->lDv)t^Q$!$ojFFV%Tb2coFRipQgGLh(RPNG+UN6lUCby?}RBK&Fq zcpin1_07o@OgMKd@9#v=RzolA{9BCTLX5dQ%sMIL2~wM z*=l2T(hB`Knkk@Ww;ks*tlo@!hr56}ixxVZC2S#N4!I_yBL0JIW~reE>C1KO7qs80 zf#4LO2|wBkd9lJ7^|Zu}5mbLMqAY6d^;Rp~0enh&@2O>nT&b1Ul(qOVrsV9IP*&t3 zwCg(Sh_zl-6Y*n%l_f+1O|t3mElIjid!IXQVeLHN(sruX_8DfKWZE_<rWG^D= zx?3>5?vfK=Xef~0cPdAg-9^}Z?&Zp>?~Ijom>e=sx*lrU3dO)DLfC8_;J)__@l~zE zd~1D2*@S^G;%kXeVxnuscavJ1qY3Q+RK|N+NBWLt-Y4__rc9W}!ehcuYuSX&AgW|R zHtM3ug~i&CegpZQc203u6X`eoWnBTv8<&KG!aKI=k;4gZgRXPCkA zgYiqb^I7JuY|PX2DiyV z1{Wf5Zhu5ts56WWJ5vc`1T*vnwq|}61uJ+DQ+G1o>J>&wsE7c zknZoG`e*gZ^i#qe-g}wd+H$O*#yJ<;wO4dCJ#1LM)$(w_>bAoVLpF8pX1HD7i~DcD zs(jd-z&A9ylHG(aV9~VJWd4-_)of)OQZ+a$cum-;^YS|WIeNRB$>Dxq#`g~AsS6mk zt8&9Oc)nc@pwge9pWaUK(a_>&sRv@K>Rsjjmf20S=854XvSrOorYa`P+boLjP4dd! z=xQU?Hr&N(D%dWyUADan`y*yyQr`|yTL&>&5__)0-I3xd^*;pc%0GOjM^=CeY?$31 z-ZWa#10BAXdpAZi@lX5jJT3m}?6UwOAXaBh{-Hn93Oe*7Gt1xwRqm*>=klBu`7=_^ zk9s5ui*+o?uL4$Ow6(t)arTiS9qW?=b5=n{&acSnd}S?v9yPUp@RB_KKL7@toBk{v ztEmyJ|3?n%Iqh|jzQugG*WkYnM#R|=H?FYm*(N6G;uSfo(cA7Z=FgCo9ydq~F0SH- zCV+$+M}<~JSHZ`eXUbA9JZ7!$-8JEznpe>COG?IWjc%R!j$Zo?&fIhB4||9EcBglr zVV{5f`MR2Z>S;Q-7)u^?b44NKNm|eOqKcJi0*ao^f1KC8jF$ohTopKUF$8$ zDji%8yXv5RYK*mSQtQq0oOvi4JrrGEw#~hdiNUOn9#g-qYXUkJ!$gVB4n~hzq}j|u zw7*e4{0uQ8Rb{R0aR^`onf7EwfYC!%re_D}sNkA=vA=M1L)l91X-)4a2bx5Zs{<{x zxLGickAes0xGcHiB#lg5^BpQ^6pnZ%^i&zg`Zz;3)f>9O^W`BXf%eO^1$B*7)JW>4 z0Ig^XCt=^($FgRdku)?Eww&zy0aj{bxaO7a*8x}3SpbBsV=BQUk0?ylnHo;^jQAan z_lA-W0gh%04b-7CNMCr()fH-8;Q;pfl?Ltd#@N!`Lns;+XJ%8kYVjU+RYgmRsx$mP z+OD(qDT{T$+SKy~aK)mB%CbOF+ar-uEks7wFYeQ6L%f)WM>n-`5lN%wnIHx3KM744 zh`%Jc>q5by8D3|9emfYi6%FZkb+69-8;tgsXm8oEXiu(LgCzEz)tjw!%e_xN+H1m6jWj@IFM{GBb!-1$MC-k8 zPUx%IhL~moWTV-co6Q8+G;^z&0Gl)c&U7b0SRsTetsZqRc`PwI3^6pR9M5JwwWDW@ zv;8dn?d0k{2B$um-p)wY8CKW3Q4h~+Xm@lau-AF#7ovyD)+AT;CD-(6PvtfH)7wpb z40oONs@V;#bzdB@dV6-cNWd*%dvr~7UzviL)p4gmuXrixdc7C093xB3u85uhkN}e( zI`7_--Zidl@4{VI@s9yzMXr>{%J(*O5$I+yZ@!_FEPT_X7!lvWQQNHD={>`&W9c`~ zD%-d4%@6Z$;ST+^qxzZIXUD02FWNuXX;rZp{aLZlMD|3R(W(h=@FK!|mIxlMO$)DC? zW{#CR?t18!OQk<;!t9^Hn6xx;iy8X01~mHdaO{%k;G+x(LJbgh_qT&ju1>i$@ISgMpY%1H6v2lsM`Kx86c1J z-e%9qIP$zjqQm+8nb6=u(O?n%p+A1p&|eHHsD__OA;d1?;%q9P=t>p1s!JZjbTS1R zuxFjzCw?{}zN%%ep^T`qN!vr2*3t2+w_DrX#hUcEun|p$dD;Gz#)E;awB0Z#^nyO) zc(CzLCMmTnj7HH@mOXizzbt2psJ3Teinz8!Ll((21A?UBp2B6|KI?e0OS(eXm8kd$ zv;H-bF{q^UkBXcy)w!Qw&MdO6tV@!0eV?a~tf0RY_GgWN-E6UXU}Q}d`Vi0%(+SSQ zp{`nM>BlCNlQ&hNmF?MMydx^23Q-t{ZYeunw)W&1urjjj;8jI*Q$e3(Ucs+D)(OUF zqf%Jg;$h8zYOf`n@;9F4hnmlr|{}wya{GlgF&{wGo_;~H7rZc{VY~TteOVz*!(_=pawNA1 zUmNWz+lNL27OAb;4sSU5o3fvW%g(c#Hu$XuL6D=&FE+8lGUlSoN#XzVK}hq)9D5u@ zpXR<~u&p3vVY_l=*KpH`>2$)R5=`zp%i4zVn7v(2m;rB&ym66gKaLUcpWK(+{@(O| zeKGxix`_U7H}rr0VESh@AtLP)!rt)=7X{RR(8`fK!zC>>oSO{C%eJ^Y=Ij~%0&`ro zO^>bd?i6VH-%J5P(C3oA6V>*3ejap|9TVyI^ufr2Mda^MzHwyl(~4{b^i*YsH$nRJ z&Dw%rfiB|+7~j(a2*4oIfT<%=$Su&$h6>26ti3(aGYnP2WsGIf(8T`}>G!^N_7KER zL+?rcFk`rvA%7+R5&7?BMJ!!v0QECX4P)739dYNt4x!VX1^c4Mqif0>0&pC}n#ZC+ z(bTK$+6`x4r69lIXe+V#nG0q%=H|lZCg$eC#iTl%&&jZPO@1y6p??Mj&j+<8>X6?y zoqDhN(34OLd&d9M`LMUt)o%%)oIC>0cc5;m2u3(GX+Osm4!Sehp2dRAl?Coyzh*w% z#}~MziGvCb>ymF=XeNU_N2Y4C{FLdsVEMU6M$$>z*NSl^<;ET-dbnqI^r%^`vyO*? z+-XwVvsZE|x~^=ib+CJ{JhaA@?LS8gk%c?-mqo%#Yin+q;x1%-t5|KUN$(zJ9ZK&y zt8Cpuvj#aw3lVFjZ@>IgbE}h`W_5CK)E4Otek+^aSy{HqTI1WTB@Aa7M`0E=tCJmO zbwZ^9?J-1Hd#=RF4<-UELiVb3g<7j9TTSVMYNEooe^l1D394vFBzN4+#7IcB&YUN6 zKq2SdYk8}~TJR?2$KVcWQ0?L`mRmMgxyyG+-rTE*EB=hg#ZA_5pPZySBsP;{?+B$-uS!q2-j+k|#XP-HRTNUl%2yRAhdu8jR z`x%tl=z8mD_da(>4*&mYNEi*2%gILT?5A^237RuGhas4i@VVKuT3LJh%~kID2CBuK z-0DFqI9jIVdo5-Pw3*}^K8DfM?+U(YSXAx$&eUCgMm30s*MaW6={Luf^}0*yg|8b* zro8V6tRvX%Eyx*Yoj(Y=RL!p#ziNFa_#1-(SC7(4p7YM>%rMdUD=wY8i*f6SPwRi| zrEJga8|J;#`iU3rFQ0DSs2$~+2`~v*2hw}}={GCOdJPyA{G$F^G6hVVrs${>-a=h) zy>2E2?FZ7kB4w`>w8@r5z|fB z2NKEG@AkbAcS4KOEX)|N2BuPdzvl8zP8;d9PPn>YEt(4~yIP~R!YFbvC0}D?s=dsj z>D>J2L3C})YcUDi@0>kP)`Qx!E37r$yJdwKSGL|AB17Ix`NP(hJg+gP65mmmcMKEn zI7>co;wYXe#N#75X5*Sd9G5xy#V%wD@i>wnqYB0rVe}k>R#=M1Yp~z@Ho3fJ1H1+% z#6C6 z2`iqI_C=u4J=qWg({PE^jU9g#cPJj#BFol--RNSWWGTgr5P-?qjVlRhefr|pJbPm5 zZc%<@abM05x6c^jM%z~=>@%yb;%o~hD+0{Dko`Ub9Yz+f#dza*hB;nM$Ln{4bc>p8 z+LtOJ85z4xOO&PNKH1O%D?2)(+gx)sAE*1WGxr$_UN+5j8J_97a=eb^gpzOi%GMhI zPUGrI;QC7yRRW+WJd!bn?86;-yAh7nbmJzLIz zy2*=SFukLqY&`-1c3+!ZRgu-{qDuXs3ay!H<>>cH?BRG>_>mmAMbgt5Nn*-(as71(*yTBcBMbq(W0E)8Ust4H zIZVZ@W6~k)^IS@jx#>POt3XquUB4TaX{^hsk78wWZPU@U+S_Ou`BVacvKLDMiyjn- zSZkg(hTNS}<=E3gCp#WJK68&D1DUI*53!pOmb=GPz^!BatB7uy+t-+GU$dRpQ_RxS zgzBHHD;{Rz-*!JnM zPN*)%Kz> zeVfmdk$+p*v611vqHL|TJGsioDL8DdvfCt0lhpctUl|E}zvZn+y-qOy+Z|8>A zn66HN;{f2>0*)%{Acg7J7kUFr_i?a84~SND3vFp(nDP37VqPZ?_1kzDOV zK&&r;J8UzguxaL&!8Uy@R;J=K%wYqM2sYa{X}4-}ZhI=xFaFCm9T;7}ell*-=ply`L3JNUb%qU$KTm(cQp48vP3DVH=d~HJ7L-Le!hEG^9O} zwpRD<)b51K`p7&M0-V`rdUJHIpLG<%hW%8TzD$p1t+fNkF-O*-S6^3j ztB5<)X0yJ@OyUpqO1jtA9O-@&*TJ=BaE}6Iz5F&#gRH@KMf`X&)`I?P1cju(( zgx3Yxmdr85{=PsPtW4kLE{PV3u_=O{`Zf(tv5wIp5oRw$iMmwwwuPaC`3e2z2(rgI zC@R@1f;=RGTw6$xZA}nl<{Rt}#x=jP*-x=9ZP?D_lWFu$s>u|1L0IJ4sbdJO zuUQ!|7j^z5!b4iG?tLSf_A#~6J9TU)9DQ}>tA-}KXRb3e*`3aufkTJcHV&TT%VbN9 zI-ya`0qabbrSeV2-rMpXjGqaJgXCMyAY>{Cf&Qj2UnX;lG>Xad*^!g<%Q{3yLdlV= ztvIG_&tJ=!q{ab$wfKfNnywa7>ux496`JysH|pvme(HM^dX%hZUESCEdFrmV_Nmuf zEVtjiZ=m`x4bT?oxrA~0jS=M6@xrE@2IAZ8X&;3f=ZKp5u}0rf6a%ulI*GZ1t(qpo zpx)i2q@TK*8k`?P9q{%lFP*TtrZd`Ubv+>j_r8IMJ8ndr@dm0b6m&B;55e8M)_Sa? zz8B+LL+z^|UHj{bt*%X#CUbH*BgZ<%vDPr54895_$(vKQrDBQ?wn*}2FiGHK&SrBOts9vU1EJ>(_Y#F=zwh1E~8}ysJRqWlWQd**YFr37%Q5nJBqs6IMJ` zMW?d?v-ag$bKF&=qLBwZjcJPNw@s?wHg;LJ83poGf~RT)Tv3)r;Y+Sm?6gkP2^I84 zl%lj}tqFa1B@0FIe2RIx{YESZ_LKm+*Gdba7Fw*(%5DL7-z}%m)sD5Np0}b`_5|)7 z1Xq=rVdAMw_Vo4$Y6&9Y`dA9c(MbUBC5hX?P?{rWy8;11`1BJh>p za{kEUE4jyD{vszO-5CS9=V07cmZSJI>xzRA-0qzQCfNUy&z~m5U z{Paiove}cY-5eo3LdPPCL$pQH{fG~07v)+T0IowbLu-<<39tRhof-6nRT^U{!JyTh z$$X-p&>0V{WsaG0V>CNBKUY!Ko!&#N1FWlGs>qH&@>ASYv4<(xUzo9U3k!D?4&Y?4 zGg6je5#$yQa6VK;cf%kTA1Ih98%g6kuxo^UzLt}$e`@U7Px$uQ)5meoR^|c`waeEl z@{7{N&wDL<+<)ZL32>0T)LVUaDH2KrB=vj7&CQ&kzGzWl1$%ynxo-LUVMw zEn=-t?-+shc!7u5xRvo8_wBZ)hjfD(CJ4ArMP@VVkv$_}3S`Zj=cO=7eP`b_iKBab z)m-^L)@edP(&nA{o=ba^c{~PE6e{o6%lhS|M=8B7_v;V*>Tt@rI4M(2Q|~pu=Qerq z!-&Y|mrth~?Z#cy2b?XO^c1-6v2jw0Y$Y8_C;0=;Gi-?`2?6B%B8(mVXEajGKjy}g zZz+Gk)bE^60sV68b3WjxyuZ`=ipqBmRervFDGe7NChR4-`mQv&VjA~1UULEi$88rU zS15XXh1KsaZI_qmVn!Xdzcy+-T#XXwD}VL^FAkRpUsp*;L`qgAO;o0uqj~@S_c6rI zq3_D=@a56qPvLCd6Mx)yu5Hj@a$Z2nX>-_aT4KT+B-whiOP4*LuU4+E&O@f!xm5ce z_nm*-tB(+LNuu7BCW)v$xY~P*s=e4$J5JU9CI_l{7LP}$y+v!;w`x=8SNBv`5d7y7 zyo2YzdlDPy25StjbIH%ZTB*WGK@j*v;6huj+?-RnKu_yAC;Tt?Wq4JD+RC&ig6v`i z!KHPmiKnIJFD^;=Ud5>S=1IOIGQy6Sa3sF^?l)7WhPIK0+tynL?fM!ltGiC}y&?na zhzYOQ_3tQk@`P8c^b@yV_}3Pzr+1g{U^h&Al;zCaJ?<}rC^}fPci{=8Ldk{VZSWB$ zODt9UIGnI9J3RF@ZgXn+X8g`T>;J^B3byWxUtH0;yCc;aW`Q2MXQIkzRe5m)x}l^@ zxf;d>2qMUoRL2ugP}un*SrsWI!u=m-kwYg`ciU5pKSsQVo1(Q$!NrDB z?)AOM$$RwoC~ix=%&Xiz5hv#hI1#DQ+rT^ zv;X2uZiln5g1IDxrI0|2>2vNB(LWLy6j#K%31)^V6EthT`=r%Pu^8SkfzCvHc$%5;qn-gW9_a{zSC58A1f!$g_0iYH7)Z z<16q0uvR|t$gh6&D+us)nGgI|q_>Z)>Eu3G%j8&H>L(v(XZnku&n41^p)C#3=y!(T zhZhWN@7=??-@sG^fdw5MqH^o?71q1itze28;U>YX1&3C`O0@5h{Wn%#gQ2 z&OwVqnsKx~$Otbv(>oB24YhYi_ij39ZK~-^zv1slHI1$C5jAXV*hk32rm+MH3k>{R{ACqP;#v2!9UjX;2#^IT@0CHEA^y)6Ju`;aRBd0DvC(*6h{BE1)S9F!vOg0 zrr1j+p2!tUx`l7aO&+fwbWP_Mj3j)Dr7ou!%<|ay6IJmW;tcBPq#xwcR5qaLXC=5h z%?v3gv>(*vtGq*358bmzCHyh!*J;~7^8iJDZpG9p)0`)yzKSZ|Lq=hr^Jh02jW~KN zRW7=q`YKV1_6LMU6Xd7LzMPef!Ka7GnzTJ}7zST^^6-j2pWQS(!tqKC0u%L)Lj-Oe1eTWq zxrJIdT!8e5zUZos6t99|#f+UgBP)d7a1QD_3WpZswpcbdwyD@Q_B2pZ3Fr2jxeo{# zq=QS50ev8DdFtEn&yv)GOZjU(sI*oMqb6WCpMcl!$O)U+UE5PJVXgH`Wr2V-PY9GU z-eL&ZiKJ4_$F5;|K+`~@L#5pK$Feq#sPmR7ynARxbZyxxGQnE`Ww-URwUJv&&OuZf zYVfKe1M$z8CbSer@^fC7KS>>M`r%0oh7K&}sANE2nBR|?`MrQr3*UN)QUkto1pQe7 zj>&~N|GO&0o%@Cu;;Abp6TJW0cz4Uy%wLAPPyO_s@}H6t5M**}R}$c8tcj=G&m&d5 z<7rqEPyN*In4Zp)Uo(iQ&W_KO_Q$-!gPF|q`%GpJ;sHL*Z49R4^@Q#@dVlv#*Ys#Vfg%*oh@mq@`j`XkLL6ktQ@BDS_uX^=Z z>~DJYwnt4li~rU#T$ajLB6`Pt+X1`AG^2RXQh^tNvi-(gFtbWmzw_g zUf|9(Yl?oV6Qf?RrUbK>DerF1s8h}l2&Lh>�hEft#=E1@F6Cm%u5gOMsfX3VH1J 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 z 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

jNJ}O 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

{~1F$ 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

>4{U2Nf17A-fw|t0?j*vX+al9_D`N!d`O!Q& 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 z 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

    7hk0$tA~5?>Co$y^TEL-_*{gy1Y2ZW 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 z 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

    {?PFBz`q5?*Z_U%|6l&!wZZ>L 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

    3pSWXWM2kB{4D1J{56w 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%0D8N5lXP$1E3a=U#*mxX0NLAEyV7DqhQM> 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%0APblb6aXc_y#Sg2 zmv{g5ykiVK{5bT(#ijYv2Q0|TFQIOIaBk7`+4-f&+y1kQ%kte;vdKfR0W`{zTMf5; zAVz3pb=!s%_jeDEpeKv!MU&4MdC=vtkH?TLciQayF&OBT4p=ard@}QCVAa1AW4pZE z*`t+F2HfYC%!W(3CoKbt%JWNa49Es7C@ja=A`hb$=o?s?pFf~zUSVl*(Hx|Dba^QT z7G-p)LHXtVi;K#NXXg(`>rU5(OY1?&=eFFk@&To##gr*zN2Iy4mDI>7hZ|j1889iK zl!WvxaQ805bIa~jd@x>`n?K!?Rin#u%jcF2Sm4$^x_o+5rqk6%FDxt1pOc9;ik{R$ z%IzjsbX~=6yE}t%SLOK&bDOTOdRmt=*#Z6CwT#+I9N*Sle zB-^R7Le9>fGc7xBZfW+MTq<%bJ9kdm4D@7$a(c3-<y zVRK};c$(~nyQE^BJ-0}aa;Lc~er|bjA%#FyR&t`CWNtZSNr5{nSiyWsB!xkM+}Zhg z#YOYTHm4~DW>a}33uU+bIc52B`p^t13gO_6hyZ2frFk>u`UwdscGp$Nv-686KBS_& zIrKc|6_lVIC@&z_`FUls|F8k0Mhv*Eb0>McFsE!@UTJyL(1F7J?=#%rsCG$%ilu3D z3ujL+EGocz$0ruYiR@uOF^L=u+t1SZbYIf-JqALt7|W?VLvd5>D#z=Le zS0pH~i_GgbxNtgzF=xBA?TBZEEeeyvZJv)EPMFOJGIx4y^^)x`b(Hn~mV7ap>}JU# z5g#B75Qwi8b_x>scDPjVn3YIzvVXi3FLUN^OYA*#ocy$1E_b%6d=cU~fS!OIxF5&` z?gk`)?0tbrfEtd~tY`>@omoO+yYwA2`VNv|oVzP`JJ(n2cCK{WAK<-o*SPP6J{&$Q z*33}elEGRv(!;qeED)U5k{*!r9;0l?CV=}(37^Tafdlcs4serA=&(?ZWrf}gDw~=3 z_SY>QvE|hLpatx#0DyxHj9w|H9?nx-1bVIV|9S4zs8Sa9|5YJ={PnL zXtE<-FQCb;=U6PD+UpVb4{iK}qy&5+CSfWl83&%;P(Tge*YS)4tAdX8pt7k-#Ex)s z7421%sj(rofEwP3w64{pH_M-6^8nSqzCFh-1FAj4`wnmXqqg@{P%;@s9D5c}{hdA> zTMwxA9OTYyK(*I;T}64k?&WfqO6D{oJfQk#;a=|6+z-RO$7=3B2Voa!!ZS0+1_NsR z9HeUzpxSHkoGt^Z-BC3fIgwqJt>i~#yR%5$xptR9W#gTQ*beVL%KbSv@7s)jWZwKa zC>ba6=37nvWZ_vZ(mcPN>**y0lD_#0)b}KZ{NT+ zaxF)_4xWS4*CoN_pz`&r->c@>m(|~blHq()(OzZv-XXVI%W3{1jQHJSAjctL-K`W+)?s1P%?Gb&tK3{7a zt_P_4WF-nw-74F}h&%G8R_xw0V#v0&`EPdm?9-4WHiG5ID-fTfNa2COsNtPnG4k!) z%$^a@+@G16+v{7{C8@c8juKzJrX$7B?0Tv{^)=L%sqL=TPBKAK0EUvlP!ilAKP*Kz z`S*oP?Qt$Z?KB6V%WHxavL8TaNhmJqqBAPA7K1G(*-#uZYWh@rrNMoFJG@H(Z~I>rpG}s~Vv>r+Sf6dz+%;KObhJ z#uo*afR+Z9DYf6@??{}H$g$$Y63|77i$I$j2YO$Q^<@J=b6J6$@7fS=vPXqFzA)e} zLiY> zNxBHil8-8_g~y*HN;84VN5&9$87Ftus2zMx+ZeIZ>M27l{i#0YL^t>EfciU$J;Ii; zH!+I)gavUiEwczqRBl7ME0j8|>L#xG*W&tWo!9y|rQat;ti4708R~P6Qpa11PxYn5 zX;z!arXX7VY?DtjeZ`LOp1OSMs*YQkAXg}UkMs; zE%2H~fr(>X0dnaHp03EM{<>Kl`xPMn2JlOYtol2kF%KaBVsL^+J3c&%@0$YT)(w1+ zBCGLPb+>AaBdUjkW>rrFom`y_+GKpPaQkC@@<0oG7J=4pb}3^bISg8iq%Lm#4)7j| z+!Wt}aU4Jz9pF6`S@q9Ai!v4<|MB42imdwQAU{f#JXrv~s73x{z&=)Sn*g5O!rzJ3 zcMm}NX?#M^+#LqS9GkusfMY)R3_$CDx)`=)I0uDE3kQC5d2@ef;MZug>jQrRZ3w(V zaw@GC9+CFFQdfa0fv6SV28HFE3>KyE*S|DnjL ze)c1W{~U7r9{@k5$W8tj|7I%V^epg+imduOy*c(AK>9a7~ZfY!4{y~f9Q;YHP z1!Z360w;K4W8Q-NKA_}z9r))h^52R4TBqdMdT@d^e(fow86Y=QiP6Jv$~@Ku zPSE;?8GNPRg8ifpQYh;vB}r&Sq(V^D_@Gthn8Y4t`OH`HgHN2g@*oHK8uwGL-XE@A z^9#qeQlqXh)W48M>K|y#O?`Y_xTl{}{VUKn$zyVap>I#9DpY@(A2j(t?dgM5e|h}g z1!EZWQS=RymhoxqKz@~x;N_MZ{29g{O=-k;{MGpCxe?iq`cUcz<2-$&>Q8+ixlIm)ynh~5CjQ{Hn9x1m1OLR+7qjrUSE!hm;NcDKWr=-)MB^yiSbtx%i zDrTiQA@_nV3RwzT5waSzGUOFd#)fcZh7S7qehdA0_F~`$w6C+IV#JS+><~%*BL#d| z)HlcfjleO6?Sc7Hjra7FN>|#y8(f!N~nbINYHdwy6pch z3znwZ!lhIxoC!&KeBIcXWJwZOc#=Jd@WB|0Dm;>Ac(E1~uRMYs7 z#&_8Ya=~f-`*;3$`gr!7#7lytlk}27@{+tIACv?t2h7oO-4ZHqFqD1_8|C(i=0J3h zl*biAO!#j!Pdjx(M8$!g50x*my_17>UO1kqqd85P+_Av03|p8pf%$V;O~q! z{c`@}zNvgl;Ewg4cD7YLKXGgrK))p)8STD%Z|;)jEGRAdKux+1GV zTjdyU3|Gb+qri(5c@a2)^xn#3a2#6!P`FBP_9xRmEh|Y`Ihm6 zIE=`2L53inc?J1G7K4I8rJx0%&Y)`0TbYbmSoH@eR1SEdA{T)dEAp-4S7H>f3847Z z;Kvo2R-#TT@~z@K%^ceXQ2bi(-xT>OxJ!|586We(CzLtiYVfs+Tm}A`BHt=LJHg@q zpWWAA1HN97p9gi8b~rWu1KsxVq+E19_|BeyjL5uJ4JiV2oVst{Bk1u7UC> z=H?m_v2NpJkLe9Tc(GjampB%fbj@*^&ug@}s#(4(|8L@F_+}!NwZ3~nw+Fw8C-zS8 z_UdaDJF4HV7TCMhJF9P9ejFD#HUywhS>T0=TmrsSk#C-Q#15cNfs@iC(K zh*_*%eDgl+*12=@YifO{?;<_a@2Yc%9E{Cskp{_#aT5L$LmR%Otft>d@u|IY=vwduqYy`tlf&#sk&2?nBk< z%h#r7fc&TaR~<)5{(iSiKiwK$<6+XHdVC9<6UFy=(P?ob=9ba#K#E-tZW7 zi!pzCRF{l(J!jYw^f(>E7laRI^@*-T%(XVI$1EzTFJ=xCSNo(W%STWRCiD%*O{&9>J-ciKL- ziR>@iUyyHNEM~0u`C3F!t0fb3pk*-VP|HZrF_t{g0?Q)Mn;5@AerQ4bW`o}4_fOE( zemg;T`F#xfZ@(j;pZk3Q+PXQ{t^q41Irazb9DCTl1k}r6cZ9GAM?7+*ha(mA%*ONb zT(mU}28S0y*fpV9m)*m0wGn@<2fZ@qD(13RKL>5yXxBGrE>Yi>$+O7+Oe;iXm-JJa zqxzeHawoS%s0Zp?Qas#z&0U)ssz37lqm8@X(K<+uGKQDH={tt>O+{@St=tqJ*QYut zrvddqu779)*dG?r@q=f*LmQW5HT~+mjqXF%qqav#PhEcN@e^1&>&phS+u0a4j!ncW zQ6XE3{lvrU1Utn}vtQT+7Q%Jqx^ca3_6X#y6H14CUCd9_c7x^-G{>zERMJC%S~2SV z)7W3G_jK=Q$K+=~?caGH(ecU6+c5S1<>#lgT}^pG>4Dzb=$o}+&UCa~eHlC04>Q(G zmJv3PWxYR$MU@Y6J`*%d+PUktxI2qRT;bbhwUTt%iMEd9@}oR|%6qx}qKaE0u1)E5;(DYbqc`#m$Z3!JKt9s?Mr-la>({I6E{Lz@zr3cPltcPI*Bj!a z#r0Ok`9|<=irfQyfFfss&sO9c;!9|;uu>%#&M55k0wkA!mn*UpynnP3riFq^ai544 zT=9@-V0GeE$bX40(2B5kaK(Rx?FMCu(TUh)NlZ+nlG?(Y#J8jXx~2oXw<2eN4^iY1 z;3E~eMQm1IjF=@Hlii!BaZ;OMoUBU$8v!D`eJRF&MeXM`~!aLPc6MKv(n954qWXifFF_CeCr-2bheaJ) zXxksT&Ql#iS|~2*rnZ3E!du0sdyv~bv}4o;%5@oOU`RWqgYK(kd^P>#r^cu2Q=O-H zmCAUK?x*6R8^_Xg2BjB3>vweE_MgCZ;0SOL@W;b(03(1o^q@563HuBCzYxt4K_XML~r2hF@T5OmPBk=or^wwK$_@$3Ni0qBR^$DkLui=a;1 zqZsp4*!~GxY1;()y6t_8g)Z7ILe?0pap;wG4sUQHKxNqk-c@n$4&FnN)4F+C^E&r z@qC9KBO<)7tc-|yQO0ZPSj!QS)5@_&0J{DX@W%kU|7GBhEAA`7*D3OP@G3>7>$5x2 z&H@xa3w)v?-vOSh$a&!N75P5!m5NN!cljLm31)pv<4wVAm+3g@d*-9&0CvpW$1;@y0Q(Hpyi`o~eOC{%M{k;d@GbK#uo!X&OOt`D?Wn zY4OowQe;BgE>fVWTS%N=L>rqi*f+q(;_YSl@5X2EcSf_2Phu(eGKw)-xon& z^4$cN&A$JF>|R~i?|Tp~ANU@EOP%lMpkMiZ3wmplh_#I=`d#>Fc0XSO{!Yv2?Ju>( z^9f7}!TLaIQm-VAWh8|;zTzB?N=FGxY3zijG@&uC(Znn+i}I9ievMbKbUa$m$)}*g z3||}eV6XO+_h+1MkV(4kWtM2ivV**@nIlbyTp;gGxf-vyuClAHYk#Ysu1ssvbf1-I zf8{nF?JA8=B<0!WP}@#zE1oGmS8B&=FlMG_Uoz>&{)Tim8SZZl&(Tld1%eL8y}S&1 zouK#PeZ2JEg3*h%FK%fl{ZyyrwjB3B>2qr4D01JV^bHxxJ1F-fZlP zG9S*de1P(22KY=xo&~-_kt@KTP~@k;S1EEOc$Fek@>(+)Xe;_F?Zs0V>!@q0H146Z z33T1>z`J97H0CbGdVs5AC|cK7*Y;b}O>PfZ9xHp5!fEf ze#jr971Fah%Mr-OEGH~H``q#^j8iM z-)^}Ey#8k;JbKBY0q$>L+(bDxCowVxNRRd`h<06>&M@o-C=8uz&j#f5;Q87CS-!~y z;-FhS*RMTaqFt-5h3;<^{W;LRNYNhw-TnVYzxG_U_Iy<(`uG=>e!dL(eYcY5bdHV5QzAnN`F9R#3ecsPYyCsZ9H~)2g z@7TgdoofxNcb!Bp_Py&&t9@A}+sh`fP1sk@!MV#`Y#~PIPqFT}VrOm-aGa&%yl6*u z9`bKkvH1(8(Wt#7rsf4|A6r!Bhqht9CW4e3DBpEn?b9MHK5y!uY+zkz74w5xDWJz z@dMD0jE6w$jP)p#Cyn1hK4ZK9dd27hZD#yk{#XHaBx3}clCmNNzMa~4LJQyNexg

    9@v7g1wtj_(Kk==e3zO4lwt&G%dfKtFUH2L04^9P|swO6E@(4FJux%jafvIyybGSV!+-a58;BM{i^ZGJQyg_cBNZg&eO><7J9(79*CE z{>hyv!h<3VD8hic&4Z?ga7PcD9s^xrssMe`^fc&d)3cy!P0yL|-(RK|O**#0v>CL@ zR1No6O>cwlGQ9`7-*gc4L(?J9I?Uj_*csDR$Zqo{-nt9sKjAYB#llsuv8FqOfxi2F zo%nys{y{z2rjTx7E4h2Z^p3{@QXE}TN7gx>1O3a<2->#Nyzx){;i@xLfvlwZ>*_h| zV)gIUSkHHrcxnO0I0k^O=L2pAsIRer2Pp1s!P_Zv5O`Nb?hf8Vk?CX{{htQu$pW9K z$ed9?jn*5DpngUXG{6`K+QH}m?PTl>+SS+%w1=@LXqvH)5ntOh_JcggI2d%8aX9Gh z#)(F6Hpw^{@>F91Xuo;R+;PEyIH z%bS+4E1M>7$rGk*$=>45Gh|R}MkvNg=)<~4FpeB%7>m;?C5GF5PV%FC#-OLF38D8G z>%u+_5j4hLa)aLxfkdcbZSKG0l`+pm&?(wyEus1A7Hgs0c1HI4UF}G?I@B@oO8>&Mz=D$S*8B+}Pe| zGfSr#V)*ptm z{{B{L08AU0wlM8r0%3w+f?+~nLKPFHm~h3kSB$NNky@Ch2hq9^j~>1Yz5>=R~I$~>v+`K z-^zH?${@p0P?o{6FbXcgd6NoO$!b_Ft7G-70hLSQGPoSh$yIW-Ts=DH4BpAt;>$@+ zf$5w&rbl;az&5Ej^KlxP*=crKpfrHBWkJqhX9x?0dVJD{#W_3RGF@2@Txzg$C@wda z$XNvYgXvhCWStk>n1q>n2D ze--eZ>pK_jp@oS>1ROA7jr!eklH*s2?ZdzX1I!J_5BQDk%=Nq+gP^V?Sqfh^QrP93i0Lj`ZshhXNbB zHnwNo8~dYv3~HQ+x^hS36v*DLUarpU4p+8Ihn4SX%~Bb01n=(vl=5-l;}!Wa@MVg; z3w*aC{|0_hkz$eIE641-|}04n*IoT z6=h=^dygH&i3C08#U){0+fSa&&f?0rx!ioY-dAzkxHq^R__XLwZa4QHc9jlt$G9)J zZ@AOkPuw}~5_gs3cyHdHZ_5Yqp}d11%#Y`hLLU7S7Gu4QW?vtZ#m`sgV=;RBp${_Y z&AgXjGVA@k8E-KPUOv7CPUj_9Og^01m)Gn33`XYdqvwsxOXufnG6ZiGZ+oNCg$fOc;gh05ufDH8@;_a zBuNi9i^y2m)(ovG|crP&l?-42zH(34;+qaUpXG3I<`mCV`6OYW({htJX$ zA7iIYW9YW&D|&Q3n~5(S`H^^K>4+d&V9dB%yhs~?&ixzif1EC|r}(!=BEcVpSYPB=qA_UF3ns80Jp`Kv&m;n-$p)TvX%$@Hj>80PaxaPT-vtxhr^2MNR|H zROCV6gB5ug_;5we0;hFTIy*sgxID$Z0DQJ0mw=ZmGJ>^gwz1cd_P5zil+k~&U66nG zxq^{lsXS9`F#U#^&;s-QSX-K4nTmDd63YV64t|~eFlP+77uwx#C4LcHB0Xa$mljHx zs7Xsfv+UUzy)L!qL>=dIqt>9UJR9W#ofrEQTFmPSPo_Mrdn)DW6tqsA;<1)6xYJ0` z+dE~0Iy)@|-P&n4sAF^2&F*L0+6{!r9al2?@NSsH_rp87gV_*9UDqf!8GU;$n=XF^ zvK(K=ya%oRBGjn|*h6eNdz?Lko!(V!HG39cwWwqp&=*wUH0xHh!`smV>}MackJ!iT z-{@sOWk=aD_BHz!{p}g{1N)KvjDFXP^Wlt~iL-FNoRtgYLb-6x#zk}STmqNKC37iU zPcDs1M{UjJreRI0we*(=Wf-5&73PE9E!+pX2rWGRLrYj9@NB8@7+jVMDJ{MR+b~fjpDg9nNfhInLG=?SGIh98|Im03B=_4w_{f4?5A7ZNvZO z*zSYuw7mhk!?qW6zwI;7W413rzn1%v-)z4_{zL9fV(j@_(jU9=4*Fu(96P0W*9B_@ z@?57DImMx^`UCVbqj`^e#>2v+k!>Zn9M0mbMt@hcSg-D7OT2_*h=m>!N?`j>CS0)jyKw&W%1d;oPKilg~{(mvb)f z+@0sj&Mi21-?>HS9y_<;T=luyhPsA@S3bV-)HOT>>tHK(z^ubTv#jGlCs-%pCH_0C zQy}M9-DeW$BtnIi-o@T#-46Pebr)!@^*w}q-?|U-LF+M4{OJQ)RBJ$6(4c@xpi|^F z))}xGvNQ3SM9c~kH-c_Xd=<1NaR=yIiMv2+6ZeB2O#C-!UE(p&6N%q|a$5|j3qD(X zLH)P11C_SKfW~b}0&PUCpl|L_!D_@P&;__<0kV7Vs}bWa7vOfse>CC*f?GB~#umOD z*9)?jB6~yjR%9Q@K8kFFY*b_uWLlY}>zX0E`}#(g1v0JFk~_{_0dCn3vimy-jrazF z_S;aI}AENmki%jb|*$+19Zb=-(0x3W4UP`ZX(>{ z^`lWHcX6v(1Utz+4VNq2b8>jM&NH(77-*=jA2hhb@6>gd^?P&pXEVXTNebh9f#_4MxTjkRL$={_-BzRytcd&4ksT0o#MBVZ<#`q(->R{Ds_CeK@>VL4Q@)s-` zsxMS??B^|`8fT0e*Ek+?JI>{cl52D2y81QUr2GAv977@Qtif;vwASkb+*yH7F-BQu ze9nUw7>ltQdB%7iw7^tsf^0eu>fS$h@9z~@iY;)LckHu#C;Fm}%V$_5zj%zqGQ=Sw zS{QLPsQX(H?zgZ8%5O>61%Hm!V5jEo=d93)$d8)Pw?Q-HZx3aKO+?;E8{={Jb?&c{ zRrypwmcLxoP;~{e`}-a4uMoN462hLhyr#JyE97cF{|kQ(yQdOm8xMJSM%# zWVCAfwr2WyO#iFIyH;woIuxTp2|Cg43nx1Iax3I*FwHgyvxhyyxH5&8*7@hHZWB_RnnLBWBpks8-TTgLCWeu2m5U}1u%k*#5%(5 zSV>sKjlt^NI5u8hp_?SHB;1D;=k~isBly-x8W78bMxD1kA{r8(@Z_H3fWo#X(6ya|M+K_bm*TZhi}@!q#}j^%ZkJduL;MP{0RQ|H#{setO{- z%O@gBt|EA!Lz$3hPcTk!0W^l!}T z4%tr~OE(7EmcA4Ed3xo8J^uW8(3k1r*-rJNXMCMrXZUF5!*_q1zA^O})97U-6K1g`$RQe2i<<-}>e3!mV)^|F+%eqxD4=(;b{o^HrRIA$C6 zLwZ@suA@G2Kc*kzS-Ugrr}Q_(tm~g2{VDxO8|NkOO=r`;=rnfaKgxejA6t3yg|&Tt zNq@#WW=^{P*Yw$!(zmQW_-lIEtZA?BUve&etl{vo`T^(h?j0F*{l;z6(pT6r;c?*w z!J)6ve{D$j&i3ApuVgOvsq)$C^No+r7;j85b}@E0_BKv2E;g<(K548nZZ*DP+;994 z&9KfCZ%Q$BF-@85kU|OtE$Pca^Iuc1!Y>?$>%>OTX6d+JI}L8)r1mZT!Kd z%@eI$-!4>?0z<`_Z{h4VPku@+cs1j05`(_&ql)a#4Xj;w2k6DZtPfO1k-it z+*yDd|5VfvYF+r!umjw)t5wgbz&Umx*pAGDVod#S7 z%LE1k;^My>kLaM2nkAerTY)~KSitqL=Ozfy!Lundc%)OlMTBW?Ds|ZZ1?UE~-;XT7 z6I8!tqy4TPed976pzw9zpDVKV+lpCju*wd|VZhaI;%UEssQuO+eQT#DK;i3yIQA1j zvi2Moy#q=!blDy2D{b3kcT1PZd3B`y|&nc1?XBIfFD=nzU?^H4Pga zL1*DeXFsd~^#>@-8t}D>+!uM-Psz_evGbsQi(dQPnM=sa?#RP_h}#1^6QFmcRu#G5 zf%6)Hch0`RdvXBjZ{6rIBF4Kw82QFwWSfizX$VG=Q!!?piIHk4#-sPL#rOv9a<&5J zI##oF*omsbC~60GRr!lGqG{nd9cSRYvHRr9iCh5Jjtk)= zE`sZbohJu&h>}^t_Tp{CPq`D=K|aMba96m$I2U#)bi9E#@_yJy4!}NgdtTxr z_$a;upU5ZkDSUT6mG8$7;cw$d^0)J2_{n?@KZBpem++4^ zk)yz40ou8Z2k)e~cLDFN$UVV(0dn~O9|TZ?I0SsS;ywa=BtX}?9ek7`j{zSKkp79_ zxd7>z20mSpXMoQFDDG_VQbjHYpRdRZ!S7Y%`@x+6>3INrsp7s2e2pSM5B{PezXV>T z$XmeQRpi#*m#||dWx`A<6(zS9=1V$uzwoHwgZ0+;^>8zU8vI!EbyuSoO1al%uV1kG z>hSK)QsnGH`eUWlMVuk+%j2@yE`(2tAI;YVlcI4|9kf}g?W^`Jm} znlRMh`GRa~J6)J7OKx3$?E<-c!7mW-%NHnJ$vD%KXiN-D41&#+9GqqvODPf( z%!wvvmFC;m%S6Fg*TKn$8ON{O#$`&nA4)}#4eRjGk-C-o35Rs^NOHq;0 z)akcke6c-RYS z1iy-3!#|I9?|@^}&z@`lJ?m(9ptnfDZxJ^d@1pO+Z$Ex}xdS*qbP#W)e*o!2e52mQVJr9>v(DJlk z#hzFjT^C(@T_2rY*BAA&pRR*$C|sRkU33qG_0c^T)>rpXSU=t3u%Ws~!lvo+@Ow1O z8D@oV8~C<|uN}S*;}?Mt9pF1nw%K_^rV&r~Py7zr{a?3_yyigbwy$$hCcJ z=*D6AEeS(IguLc-4bQz)!Rs2HSX(3TpI2fe%70mdUP?ImN(D0r^_w>0kW|AHTPwUl zAK2&vx_F0CI9pZ0OhWxj8<|-+zq5i_;J&@WSE%2zk@*SrRU4V8Yk20B3V-43rV3^i z&TeqB0O92NO3WwfU*E{u3MZ?btQ}|t3l!?#tzbdI$*oQnES!Al5f-9rShs#fDA846 zM0bP}eYri+7i>cP_Ki%!6<1f-g_D&PECSc6s*DuQzE;Dcgp&_AS+sES!3q|GtJmNy z$A%}KsEFggb)sj*RVr8qq5hSPtfQ`>;>pSc;p~eQED>QItw;i0R+B8$zqye)AU{-- zBAk4+278zdPpolv7Ea<`x(M~JZDd`A`mGyTH=+LR3f5hy-&x6eAk0%0J%zKYDp@Mz z7m=5@Hu3>uw7fn>liA|yC;D3h+O%yK7!({58W!GO-kynxiHwSgjflhMOiV&lWK492 z#H6U?#280PTufX{bV@|0&RrZ4v9YmT6XWAzyTwIxiL}Qg#zb^a>e?Y9xkpTly=Tw3 z9zA;|rzT7G9=+ny66_ti#`cJbic3h0bR;Im#HL1cNlT3D7SSa&CduA2rAJgkbVO8i zLTW-xR5yEa@07IUm~P#oVtS`U#dM8M?9`(Jv~}$q8Izo5k4#MI)-4T}OHGbW?vj$+ zsaImhM0=MG3DNensQ8XiUF>o3y;7o+9Pu$xsrIxudz9U7vwKXkJt?wta#XM6o;^|$ zQxlRBBNLP3l4Cn}iHYhIfxAvj=^dZayJtKu9p5dvbFw|c?uhFh8Do!&iAm`dZ;$t= ziu8!G6cv>m*(o_T*?!9>pu^0ICSMF204)Q$9h4B5X2}87P;jO_136ApR9NAx5Vtz` zd6Sd6V&#sZ29d+Ug0E2W?x@;Cs9`C76DWW;X>*@xz|@!1VLwuKAPUnI50YD^6P(RF z$aWJWUrZ)y0Qc2o8wQ*3qI;JWsv-Vsd@!fS9{ePh0=Rey=K;J~IX?;iRx%0oO=5}M z57_IE!2WwL_A)LQsh`B2<8LbD4Vmq5KG(jMK9i=vH;U#gA`h|4Nv|UPYQn7o|5vn9Bl? zR+AvHe!To%7y1HEntp{JU1te)2#6DQK_)%-BWM#pOhA}mr0D_dGT_}Zwp`IeI$y`ND6N#2q;DY7pfyujoluHi z>QjNfH`E}6vJ2>+1a?ViC)vX~NnIrDuuHj;olTRbL%vVCAM|l)1!$f073fLndr8O6 zNIy$@_KS2LF1+2#u4hJj09L`<+Jo&n7Ge*F9A%G#9B)s+T6m&8+0HYEJq7Na?L9!# z?CGEb>_b4Gwyy?VYhMrgy!{2x4fdBnH`%KYtJ?kwi+SL3i2@f!5hS0sYK= z6k(3pzl8j?{j}YSeQ)=UjO2VGO;}%lBXT>fvPafM2D4LS0F@_lANld>OoI;GrgFGju2y|cUeyq)( z!TS{)PL8j_s{9GOUx9b&;;)0|;)@zQo7tG=I>P$6`ZTS(uf+-2=h*^2j9biiLYZHK z%C#22`5WRqox|zDl6g8AbPxNGZv(y<)8{GJdwP^*^K>3(6vCT0z3x?%sVK;!6&?HB zGT#w#Y9K>5{}RHGKinuB`SD+}2#ims@DD-PVs@_%;P?G6_TB?9ilY4=pWVH?~=ipkM+h zAktAOA-VtOnVn581;z6He&6^1d*||$ot>TCY?+;X=9$mK%cY`Bs+^DfuGnS~XfZ~y z&O(CZrMR>Eu;=9u(SJS422vjCsUt6DJwac{dK~*U0qc>bf2a?GbN&R1JI!O6N^sV95gyV^q$-AiuOVA~Po&`+>VLgs7LH7wLA9ND* zBj^msPfE~*fucaoL5Wrlkc98XcP7;~9?$Vp}MZ6A*my!>P!Fi(iMHC-qFLZai z>}A+ze-$>`)@InJL3B;r@u(}>ZZ*vIziYcCn=S2&?6zdHeG3a@x9tw1{DF{Kd>*pn z?gml*KV`>V345*<_mXV7?S)NuEF{@=XX6GV+b-cDK8;uRSV#>Q@%L=Ktzhe=<0PB! zYojIBM=5XjodcWiyx+C^Vq;3^m;PmZn6H3~1ES+-2H9Qck3dcr`clX@LG&Cghg=21 zp|W(yETLyZz6+vy-iO>E^nA#lgs#K$q6bkK4@i^Hy&!7{-48NE=y8y(gdPu>D0By8 z2cdU@>cpF%P`Z!PfLVS>~had--4%)-O7rAG&z;$YQ*7bd;&!XUM{ zW1a9`Ne0om+X8Fohal3MVw|HHi1cxgd7$plKZX2UgT;n|{?uH>~#F>}Z^n~p;5Fy_<&ME6`r$k#xJtBYc-WQ-eLVk$aPn`66}DXDFnc}pF&f}o9)7dp zo1i=No?;Hx3((W-_0je@>UITBsjK?Ij0=awJbV%OYvJk)*4|O@l2N1bM(fZgF+_V} zex^~(W^IX_gy5DwyT>PVk7ei{i^4swMT&RX z*jg>zrS(M{)(f()(04;>amFdW%Lowd>qIp?>mbrwqfLnik$w($wHB{!Ansuew>U2p zqd_1l>z3yAVd6Rt5$!=gO*z81x~r2f`fG;-AEN&?wXCK=~i!w#W%;nepU zi+n;)`VB<&5E{>)>4SZQbGlWWSNHyy1Ls#8OCJyYDG=39j#2Pq_EZD0bo}phr=D2i_g-W9;qm-k^F?Ahnq5?&IwgXP(B~af%R^ ztqh0eB=jV_HwIx_2V^G@)$<0VHV*$Lboc(7hIvhKai|YR<=w~UDgGe!<;LQrcej1H zc<~;p*q77d%by&hj^}Ud#u)YMw0JCof5P((qGPyY`d_?%D7Fjr<1=wE{UF_aF|_{t zfA1yrdeOJQf5N?_7~_p`EYaw|!*h?Z8+Z?6Pw*KWmu|a}-VGY&+~?2_8x>OoOEl5D zVWw%jDW2t;@}TcCeFog7&rPzq1yjt4=6L2XcLtVK7xTSlg>?fGm>GCixoDYoltaDx z965*0lBF?|Es8~AZ8@&z49iUD+bwxO8Qj4!2=@pK!q1SeVi3w+iWmBgUJh_A=0-Q@ z_j}Fo3THEcIob`FqX&_5grkjK^}0soeUfnJPV))3zRM!4F;+c`v&LH$mSF8?4Py6O zhgr?+A?t9oh9j*{fX}qf0-s}@5B`$%4Xj;aT?&1p|8{>*mg~P8@0~sVd%?p3>!ZDC zBqBw|KyMmI=vagzgXbpb{veqR4SEQCc+e9;Mm9R=N#yH-n+M0R_~16dGD{3@i}_IP zgFArF2woW+%F=@~pl1i432wvA1)qn0G5Bh*j$I3`8xq6ng@ofSYZlTR`~-SzegY>i zEVFJVdSjW+%mHkA=K9R0Y(wV9$myNcCky{k*7~d%wjt}oEIs=uYkQW$aO7_p$quIsmOUU^(`&7 za3)~YeQF{CCSZP`2l<48H}i=@&UPQ_0qhacP!2#>d$e!zxbtazUg{Hmj=)3m_dG7~ z(BQ{#mc|E924{B3j;~R>0o>DW1g~NDv&+oiUK>{BPY>jnvnYFOJN#4ZUF|-s zn_ca>&a=m}7wn7dCidzbt=VM9UR{Ol`Wo_CmduP4t^-vGDPN&u%3A^;d2D#v@p{pTyc$09nG2xxSyN6fo zN&gseE&^YLQN5yIJ**VNUhQG)qJ5*iS#|WSy;zHA>RTuBzI9s6%Q5H`x%H=2%*DpB zonujFY)Y(^4UL@!eO~Mu@VwZvzIEC=pS**)y_w;--&$n01aFl&F*{LyI{O*iMa9KG zxXwstT^BHe_oC}I=GGS9v1hEl@v3_|(DP;NZ4YLnoDOls`S6*8WHsTxUWbYGo{Zc4JP zt7THD|9T!@kDiA_3VL~(|GGh}AYWKY@-YedUPPR{w)FV}ee zTCQ3P^7+x0jajnN6%4HxC3Ila#QzbSw!|$)r8}X2P$YG$vdvV@p{>?RmSsp{3r{Y^ z0v(vDs^?GJOxvS2Utyh(qYjm;?m2k|$suu$c6@p74n@sx2df%CH|S+@X;7tu?-#mB zU6y5%cS_~)k2aw#+l)D-H>9<459}vdxgUIxG7Nk?yov}TV;2ANo~bKgvvhNG=mqIt z*2l3|^efS0e_Ou|JXgO%FSDKcUEuc`dgHk6H}nTDFcgBTvr*3(&O?vpak0}q)_7nh zFQ1Y=e z>_2r5?ygz~VBz_d;{Xsolm-5-^gcLw;mYg-X&u&XkTyXl zWG5Z>(Zc%}zF8Pyg;y5vzohT5_Iv3fIC*E`yIlGW`gM4$;Y}~aqTy^U$Kxq%BPW8l zg^wDdk;t8(caeKQ@2I3I;p|Cef}#WZ%xuMj%`JyJ^D?YluL$&+96W;ulq2vU{Z_e% z{9lyo8125P+(Le_(ge?Aip~i~jCr~|@EyAS;Q6{JJc%*-et0(B;|;B-{wwa=a*>8= zFRU%YGpz*NGt>v)dMb)d!_X$s<3f|bRV*77#paRFG02%)DQ?{6(5=Ydi|BFaeR4#b zv!Umq-{6tt>f0OJb@1YfMK5F~9AsfziHO3zni4TALS_#|42M24;tA-ZBT}J18Szwv z!lp(zq0fjoiTs};^do-neOBq- zD?*Oy+hMkQ*?|vc_XRKS;nCPG_6}>Rgs}Kz~8hnu(MQ5 zC>L5$3HVqtEUzuWTT5NQ?*)>b%qB@w!KX=1313Q>r69Ap(tNaguSknnN3 zO6YG(tFSgxdJo<_Yk+;HV;iL{$lnJ1J3L45Vnqu8|5ey8;kk-fj?yvYAD1qHlLsr_ zXqeTYV?|OZ+Q2ZmDR_dMBrD7zw}ajpUc53(#w-RPv;r#+Jq`Ht%IrZo1)bQT@(Ab; z!?RZgcJ?T&9V3s0PV*cTMt;5un}L}Q_;$rS2aN3_HjkOTDR)#d71bD9(B*>f)O`Vd z01-U#eXF01Hdc+}R?OqL-KbuSHdc-7`An@Thy#SECbh>grS>AUu}f;NtZiU#1A7bI z)ld)IpH_|?W(#cqJvy`{xPv2z^#XPn{B=S{A}5t&hph=+3w?WNeyA@y7+M(W!%l?$ z7^-7E?6d4GSaif-w3b67Mnve?!x5v^;c<3mBv#^e+%+%##Qgex8cu>v69cj zUmas59|_I3!F`;xqMw5{W?IqDK^s4<=;xq~rB?KF(8g6O`Z>{iJ zAj<#mJRbEtxX&TEbA0QU0|X$uiITl*x$CPp}{9jbL|(#5w&RC2ritx}o~Z}@PtN2)(oV^oXOnoqWQ+HX>OXVToJ z^E;(=T-f&YE}3tpTM>-d#pY475o*M%_-?MfL@DB;7z0MX`$JQt) zA~>p7bV##WE&9YowRx~Z*KU3LW*-sIwb~Stiw(5->C5 zLj9D6Ln2b5osQ{UGLq-?pOG^8k>^t9J^j3M*4+7NFTcKEY23<}GGAQt%I0Nxi}xMA-RcgZoz`^Q(06nH^$%_t{=uk? zshh@sGC6nF7xVKM?qB-xJD;@T=k9j4Bxa_2h47?U~#3g{KzerComI?81|8 zo__brnjbcw$@_WlPx%**yii#G$Mff}{UR45&XtFUS3-byt*rX>8?KGm9(Ar+t2Wg; z26Xqluf`z#P}2zCC%mRqo0d4;XJ*akhQ2s_@t~EXGyT_^*Nxh2-r={;da%|}%ZVOm zL$1{QHSA^`sh+V>wTQqlTf;`-F%4RVwu)>M(>D5^ojn5Ydwlq_|xg~y^<7m4d2VWR`>Hgn_7278NGWA#IZ!@mXx-t9a+*|XC=BF+wPAhrE zwUE6gEpET0!?KRcJFV>ec9&K6WOU8CH>cZs-B26D@P3S(abCQl*~W1A#RAfVa*ki|P5y zwHiLp`HW@xZV{flT6^Nlx(N94Bjn$o(RRfDTYPIXKBLVez{JPDXymJQP$<5#R|KVl zX9m3oJ}@{1U)i^VUEuK{WwYDzLiXUh`%s9Vt-a!Jv)PQyZc}ll<7_A?(5Bl%?`-P@ z-p6*IO=kT#^7PG!+jzH@M7Y3H0h5x3Pf|mao_R!hMggrN${UgCe4_lI2Sf#e2S?RL zPH0qP%$^GeAQjG7R4ed=s3h>VQSE`r+=0)k!{~qXYDwk@)@?AhzrEZHyK(7L)6MKE zu+d&-|63H6@Wj;XWo6EU4Soi4KvMJQm=Ql z5BA}N^pgUxqBnHN5Da86AWb@I+Y(pe-HETFrlC|dQm#`A-ynhXgeSrzUFP{WIcE};jOILna|dRmnWT;quOG)^!kk^&?`Xbu4ChlhPvd14a{dnH z>6*~@rP?-g{uSo?nj}I6G)YH!&Kb^caPBRiz*@ozG)a*%m24+dNkR=YNrV|_l16Yo zUY@5jN%Q#H1@cYgzs>VE@T~|{&?If={9~STf$LYeev9iac`E*E!W{%gu0neWR_JI$ z6*>kR&nGlO?3eS$l+Lj1J%)G{CTSASnZx<>oWG#Z(WY^oFbho*Ar|7Cb55v*CTW+F z2>um@rSQM=oFDmCKk@w%qM=D5JVTQd#(5*oV>plJJW)r-){*OkcxaLc@6aTT1gfD) zBFsaRM2LqbX=WVhPM$M^^MyQr8Q0&{HA1iw!bCJlgoubcK}W}bmFEyPqDcziyb0%} zulvdhS|phWYi2;M0YyPy3;6+v`cRu7Hw!%iJ^&p-6mz2!!G zfm{osIyXapB=qf&(eP<_68SNZu^=iF51AnJM96nRqmlnUl1hR(P-6 zhy42?`-7;=YmiOwMtL0ziI7J;2VPd!t*W! zF*sJTy67q7pj}q`3gm;Q%~u~N`U>;VW7v)!1HSkE4|)u(ed;4pNE=w^pYzH0xtAUM z-QEMMG1_mmyu@!Q?vU>54T;5ls`Lz`Ucy5q zkCf=yW86Pb61@ZydI=Vn4|tF(7(7&X47P!u>JvbStij^TYZhGz5YCh7V}X}Vszw{&)vsPCYENe>JT!`j-t3^BT4 zpbLi9?1tg6Wb~-lBGF@|eVs=?w#8#fqun0;*=diC2%9jF)%1LkP4%>Te(ZV5`;sw6 zX<^zew=w0i?WQ_S8> zU@5gm4?xB*@d~S%ro`4b@qrYFkwSaj6Ep*QWO0~uZtqGqObVC{#d`p@gT(jozT1z70Y-?M#u^qP! zw3(Gtw(;^s+e7kITcmu`)=&1a|7>q=pCYH&s~Z>F?a~+ap*2t2b^2fI%XLNeN9D*m zcBv(3Se?d3zp(nTkA*dFI3sLC(STx!^|VU0$;l-Z3kA}=?3+!z%8 zqH;TYk&+a#I^lN2cBOjcYx>TSU8F7`SL7AhGwSoepr}QW_NZ6nzEM-yh^QHLRzxj{ zx)gOd>R&Otl!u!xXxg~hG38>j{D8g9mqeUy?yKwHqLVzK#V<;6i;lXymUhW6?kXny zb_oxUTN2SEE{ny+HH;kkNGvo!B_ujM`PXN9go$wc6z_d z`<+&FO6=URvws(*x!*mZO2$25cqP%hQNg=OMWG=~Mir5QA!pzB7 z%(LsK3x&=UZSs#45++v+OJR4BLa_ z`;A@2d%m-L4t3mOH__{Ctu&J?QVB~^Y*JnHv%P`&5GS2v5z-~*Kum^IxeJhSdPsex zT-FUp5dBcgBhq+`r3?*qq0+hSK}&U-Ij)Lcb}^ z#h4zA+r27pl+xJyQZ{%4f>w%2fGtpiZoTHF`FX zCI%ux{89NbFm@IIW#X)y3)G3Xmv=E>4{&DX$lIE+!mqsq6+cW6nEE8i;xN+DufoK#LJKPW#cru^2g$qaUcnF!aLEGvHbblIze- zc5l0m`CwkOjy18jvgkomXZ#C%Va6h?RYxUOXKctYuuYZ5 zCT?X!=d@5_c(js~oJTN1k;=y@)MzEui~Nh+$1Lgs3)cf*aEWNgRbLquW%VtzqT~ro zGgjV({~tUCfQ*B_KKy5NV&2N#MH2f>8Ot=!!IyA<7&uz1+29SkTV*do_vp^Ij73I7 z|1_nVr?G21X6iIcPp^FTj8~HPC;y0F;dlO{B}d@*fp6mb$AvE+ckjZx@jS?I@7*_TuR6PgXQD`gU&;FDCgX-Lz zzwbrJD#eb|{0eE#&P47}s6~@&RJ6V42RxeGZ61YkSjlkM>_%|>Ts6+OJBqIAg`;BW z7P`&Tx%~&;h?U!aEytI8@mVQhP>H_8)#R(L&=$QZX$zXHQA5-2BrX42=}rf5hkU$P z$hGoMC8~;V$Lp*{6Aa6eSX7j<5{OGosjLh<`%Laj0!yWQ)}5Bz>#bPE$A@xcFE9Fk zDz3z`h80uADmW@ujxAC}xvDF!qF@zSW~B1ju+x$aq{`&sQSn~@T4{w;<$qbB3@suK z-W?P0@6kgxNRs_`lO%b1>U10|pRu4I6*V6Rr2YrBYkPW9AlB-H$3u>(rKtJ=@XxJN zhhKlbj<5FfD|KvD3u>$W$7ShpRjtr}$p0t)MCf!D3(9f*?irn@(9jw+)Uzc?I7v2} zx;uY=Ny16;^P@_|715bY{J*wRG(l`j2SBSyXctZ0nwG@LQPn zz&8mN5sSUNcsaVhRH@la1%1^zLPFHqc@=6gaP0z6amw`M8*-f(--TyjAXTjBN`p4= zOO7qz3+?Oc=_w-YQXLv$FLbE1%j(rA>Gc5tHEU8X<(DRY6R8Y&+R>=@omz;hz+qs) z!fRJ6^+0ssTD4GK)I_D|{Lv!Ha)lZIo?n4UQq}pq7(JqQll1zkOCg*EU*W!9%d2{e zvRwCV%5wieyTft(!B+ogt1JAE6&C;6VNnQ?zq%#1`)eEXt+3m_w)I~-+_J6y@_$@b z#qVkS!L9JvsEc>sF8;UVUpWI7OS!EoES6jMk1VL2r{AsWZyW>unZL2M`%&G+ak>}( zAJ)tDZp%Fym|i&K0sS|ZFU7w?W#|wI%c*4CN&Ln{y!ZATR8XP+?#VB&Z}|m%XxLqYj9qZb3e}gIS=4Gkn>Q^?VN{kUYGNFoHyjW5$BCL z59d6B^GMF4IgjBymh+~ZH{-lH=PfvI$$2Zz+ataerQ!Sx4CiNHGE2sJo6PfTNbPY} zYe+PivW66o^A^Ux5`fyr^$u9upMR?M=WF{*9g&m5b5bNa=TAuV&G7_sjGUX;WWIK? z)COxOOLWy{(6p|HE{UiNj)%5R4moUwl2O_C)b3o zlasKmPVR)7Ex1__2VSQ7ePpWNN2Wc(F%2n7?hL&N&uJplamH~yPNw^71TQ~=ms}>- zLC!MSff|;{U9i(yVq6Y`R`& zYDNo{##tWV+OH67{LedMC+h%;w-ya&js0kwdCSjpK_t)qMDcP{K0TN@bdsj~t|b zu0B1J|Izv+=l@&B=kX8!zpAg*KXrWrb;}TZ%RH=K2%X30DRG&k8VhKL_jnSBTGeMD zpBMUk$OS@AgIp@~6_EL$Xp}z)d0XU9^u)Idi0avELY?qeoQMbPYmBQN15y47$SXom zcpPOwl;06@=~m35r$;m&zJegi#|~J15b2E|hYS5N$WcO{2{}vX^C7c@{yyYcp)+(B z+JgALsOxZu@b~a+L-qsleI3F4p`)ta@>^gRf++t9$nip-06A0W&q2->de0LWBRvls z0hsTjE?}$6@HLfDKV&$F>WPN@m(W*0zAyB(khwzN0eL{^2O)nIy4Mwny$7OtPD9F9 zRox01FLVcF7ojIZ_7Zvu;H&xF1ovd=9w zKLzp$p{GKQ7y8qXlZ5VsoGtV;$V{QHf!rwcJjk6w&xia*=$NX>UIEcDEQI`2=vcgC z`rmkd{#~D$9p3;O4itp5Qv_M_u&OtQ>?!mykk1P}3-V*3vm<}+d2^kFuLmv^J$GwB z^zNo-k788qME(^>dJf@A`)~Oi{`c8KQ-2rFo(+*0R$?ymB+S~MrS#Je(9hGqsNbW{ z*Pqj0!fY-BB8=5GczIZXw9?&Utw)~6EstW4NY7}`2RsLRKIXZ?bC2gC&-uoejA_Py z89y*?G;RUX$}S^eo_%Kg!gv_JW5!d))5a2`WHOn2Ojc8MQ!7(~shz2_sf+1eQ+HD@ z{05i?n;tezFikgY0XoZmQ$Bu$rc=Z?*l5@ zgXV|K51S{NXPD=i7nm2B7n_%x-!{Kv&NOG6-#2eDZwFf1C%|>d$L}zHr{U+qEUheU zEZr^lSq55CEDu=-iGHGG3vgfdTL>HNd&?=yY0FiF!0zeQ*Xtp#hrM3)dc$j*SDx1= zUZ3K30C;GGPk+_x7ca@XwRe*D1K!iUw|VDz@AuC4KI(nUy8v#QqkP8te2W0ud#wBM z%eQv-P4*q+o8tSTZ<_B0-_5?eefRp-tR7H(VD&-OCs%g@iHqM`f&>5H$xF&F4V1D4Y@WTlXstrt;X+h5ir3EbxT7emEYl89+&imfrWFUSy zgRceO4sIC|A97Df_mH_EgzT{m^W5@7fMi>%W+-8K*f5)%5ImAGhujHouWv#xg-(%0*^cb)*~!@hvL6J>%y-$p zWlK4R9Al1mPPH7r92;k`qFjS^{wj|P;3dK ztN4zwZ|SAiQCXvZTwYrV_h>hsL77<%L6|Xlui<|10fr&qsfKS153|FDW6)0+egHpX zI17HkP|c$*@Q{)`fbq=nko-LT(O(Sq3$1rN8jumUMZU@9g; z?`ItVKG>Q9KFkeSajbPba%Pl6lUjxxU;paz6*-_{f=lp5&{8%-V2T}P3kg-Cixqme8kMf<6H2;ru zn*T@h{z#`ee+Pt4bN`xwD8D6SBFF=J0pwYc&#L490#O;7=Xa;MeceQv-<#W~&F5n_dr}$6~bbm@PLw~Oh*VP1Pi2mE8YoZI`XTz<%?~7sZ41- zC?oXhX41X2`pe4TczKx`Zu{jrCd|;bs$TwhM4f(OU;g}<)qQatCzZBU^WFXzyt61j zz^%N&BQQw(zrk+*d$3xDADhVM#~(svYN_Xk=L0H}j?=viKUePOFw`vm7rx)J{cdR z>??xrS3QUPoQU%#&L>^3;ELxqQk0?c08c2r?oCAf(G~vp7`Oe#nkDsG^D<@IHg&6~ znYnq3mT|3G$9p8;{w&kmkX|h@sWiWuTbXLD9Hsef-O9w3>K4@5j+bH0x!&HR1I{zA zUr+f>dHo$bwWs|yr+s;ckY0=DtGb%sQLmPfEG?^b?96r6TxwZOS1F(BmldiL_dKst zEfeFW$8x<3-*40AW#`0n50koz`@f;v`MI}D@7BG7^R0N~Vc*p7``vvt-0eQ@_EEBp zYBtdmm~*4Wbs!A*Q=&~dC*A(~?-A|$rvy*>1=FmLp*)DZEBmI6s&5lcZ7qAi#K z^$_$`nA7@`vY2nzNFODwg+5q%n(f58W$X;%BsOQ)*gfpBE*ue36M@vyymYr$MExtI zLBM#y$1&1&Nv(@l2u5{jsj2ihX5Ka6iw)QqF0JwuR>DW@8C!yF-^46bI-VBN9QF>D zmqDlF>MQ3!_5nuW87?WWSYE=mO0S_~`4(^t!!bv6wYDqvwe$+t+evRS+SXfM#LH1; zb7>dXKT^)Ju5voNCH{X}*9*}hsXV2*IESf9n6z0gtCz0;TaI#>pqJ!1Yz2<>T||qd z^b5|@uORI_v{aU|>xd?qg{YERIxG81H*{uBI_x_bWLDJmwUy?~8_P9xXW_Ge<3zft z^Mp6bO2k(CPOAd`7qeJnoDW6!D!YjCOAxJm5#(Z}xztEk6XipsV$2Pmf_q^fj%_)P zW4YMJd&(MK&nJjwUaVVMTIYYd@|l8bEYg#TMY8E|Zy>pVDRUX;rX#L=E9u$N`5^Rf|`NF&MT2vJ@nk z5)ri{shr)bJMt^ry|yCO2kIDD_g?iy%J#gNc3{IhjmBJ{azLA zVPqfIBXYxQfDZY}!+aY#lW4#{7!lMUji z>%OqDleMfFxVyD%y+C6(2ShOoZ0%KB&dBQEZaGUShuB_bKO@|B*f=pWaEOQ#dJ1aRUOC>(Qfw6I%_tG{-v>y~H z;NPSDkkJyfHYT8jXlv{Oy}PlOQOA0hYelvi~jwat+6lqZcdrT2eJ}=AvCWu)oUNuED6>|BEIPCb4m{tQWxR5$u+@TyM3zr19_(|BhM|2D z)^GsrF|`e7%iDnNc2UQ1>#UDK78}Qt3^4|vjiT^%- zg?;)5&wU*{@eKkSg2x873iM!Vqz3<>0N4YAgZc%<1JR3Y=qW+N5UFTH&?xBR%C!m< z$3e5LD|q^w1-C%#qL#s}p(g~l3pSLt6Vs9NR`4qDOm1_};Wqcv!Dmtar{D{SV|0nz z-y=erqUBH{L1?W=A#zT-wIw%rJc#mbiF@?=JGCp3Xi*kNtL@78bUl0Oj_pdl%pg`j zGa}Q#c3~W@>b9g8Z%bx?ugltq$Vr>Bwm{#SwGCWrSE8~JEjc?Dyt$j*e{%Mk>}KqP za<+c8T{)i}&Msh7&&YnvIh&)f3purmVtTTw+LF>nrA#S?J)sbGgj2}+vtt2qcp_Va z=mR4O@<&iQbc!=e;{=H?yw-!PYP`Tb<}AZ~?LKzU3CmRHG)NjhAf0dnwYanu#}2d@ zweDjF6t9-X5AfWx>5%T@2zgkhI`=_pacnD&DbQE~m7(zj8cSFSoiGHo__pq23h@{> zpm?{uJmj6m7bqSsm8m$s@G$ZfWn zgBCxx;F0 z;|_&bruqs0uc~o}rf3za8h7Z7d>VTor`6t&?qd)X)0gV3I0iu|wUqyN#~>&+Fx5lj z4>b1B9{LNA8U|s-F$jtyOy%9jAnp`X_-@7~etX+x$DUUlQ6T8uM(4<7oxy-hNHTG9BwW$c;jGkFi~` zEejWIQzWF;u2pQyHey|K)VT?AyD0D8meJT~6SP$+C=(4C1EOP~aZ-xaP2*t|$4XBj zpT^jJfOK!;B+&-Bw{Z^SQJYmCyC0me-)QF%yhY;`O2Z6K=OJzltbd)E~0TWitAwSlBq;#8;mnCpAU zTLYr@cP*qg{z`2lwTllUzcys3Xdml9))RUINUhy$f_Af|7^8KMP3}G}OKm2#k@P=) z1?k>Cen;&h@_9QMgfT|w?&Gr5KE{EljQhB3#rCnEC^G=ky{&vzx8}m^3RU%y0@*=j^2YhX*_oki0(sbOQ{`w z5Ig$?lG@SR_o5wytSUx3wWl<$>%g{YklOezwV~8*ZV~O~$b*PZgm&{0NUhzxn|SU2 ze`qUlYN}4QirIWhf_r9!`+};|UCdJ@JR(@*v~`uG%{{B!g8Pc{dgVR*&JOsdrRz(T z@-<>fT{FMAeA=I)sT zsja8vRuf-Ngk`c)!and<2AEKBBT)^?ARrUt&z*Z6QSJ+OrQ1Y}J=D_ZnD(jaxbCVh zaj=z-x%}2xf4|5nzeN@2qkK8-Bx-xG(dyBn3<+%oRI04<6?=+GX{oey>0u14cnInm zaIUCJlS!zmsHt>;E7L_TP0g&FO3Tt+M+1yl#`8;`H7sF$`68uT-bwkR z;{35Fzp=G+@sBnxE%=|KAQ~j%9_m?i47@~QjZK^3Qwy#T76vB_1YU$!gZjUa4+%3> z|C9e%d;;@olbGaa+pc|wq>i0Bvo7~^y|)|d-lJ!7uikz7-q#OLa{mDXAK=wKSibT> z7^XzzR^E>tI_#n0-Xk6!`3Pf=qLh!dns4RVmfyVM(vu=% z92?I{pW+EY!66fADD)Z33wpNVCVyjj@|3Bx^)$FKPMW>Bv3H=Xf-C$?mYKy^cFwz4e((L&uokTy4}4}CJ){x64S?g{yyZh^43{41qpigM zY}&TH@)o(3v;HV2uX2GMJ3q#d@Lx*1v6VQkPwr5`9=7)mYuvK;x#|C;TCaYChK(AB zM?~Ibr7+qfk<|{46nM%>aZA2#`oEQW7_Xt$ycY;#sz`vomUJLm%v0#qflik+5H95d znHMCbk;w0W<^EV_5M@{4U#I-RC^MDWc)dr(GUZVU#WK~k5>l-jwimIz_DUR!Z7KQc z6Xj4vFL%U#XnP{szg8F3L%NCSB+|9x?Ui7@_tM~lpuAzT^vV8;DT%A zX&vn|ke63=TBn_-M*0LSsrd&{?kmvOAWF1du-MO5po37Vh5eDFW4B=)A_QPMsajsk zXTac~MCW*(Y(wW!-KL(Xt1o;Kh}3(8!7sm^LTL83BrFLnm?QtD7vr9{U^Go`#=H%M_Pw%DNkEZ<+W?^7S=5k z>$G#h3;s!_)!zpHYpl+O_$;#YBkI=br1hk?73YGg_ro#L|J7dP(KV%VjgU|OGbQaf z6U8xhblaZRQ+cA!$iD~wYd6S=*q*kV0NDe}GaxA?N_AN(RgMWAAk3j|BHOn6y3a6*+f%5WY5W)`7l`N-}+Tz}*Rf-uBi zn(SP!3tnHY58enAE{F5nCWttqqHHz8atlx#r~@L8bSU>zmob(n(+|%-s5_{qOwmbt zgZd&;w)VsGkDNiEA)uk4hd?Su*CU8v@(7kjfkuN;L6pYJOwW;Fu!@en`&8kCu+ehw&rrICuf*1Yi0A{502o z0{~cBmdD_6VTvH7`LVO9C0uFNLTkuJPG9~dGntS##ep#GQA-wnb3Py-%eCeP4B+~X@x+6D5wf(5a>6Trks-DT3tR{cw)0w11vivz#bNNcXUi+V^ zq#u6%_|f@l>kPn{A!+I_5WRa!wBDa}aBBH?Bh{n0o04i7Do;O3ot^4`5yaGAS1ebZ zx;caS3UyoU>W2W|j_#A5&a$m~JE=@9z7O~FukBMUS)0|yECZTnP?qTU=-#4a!;iMG z^RYwqC@H_MlQ^Y*;)rOgI{2w6jD>N+hrjbT!<|)MNGdb}G}3LMx$3 zb?rbW$+G{A);{2@&j#^)S~u89_X;IiXJA8}qz`kdOB$ymSMRB^x~N>m1n*7!MmR@` z{}@vb#qUvPL(~p`h0+{t4N2`7>Dp@hRQJ>fUtncFT1Tld?}>7iJ?W0xiMKhu_*qxW5wqt&CXZGm2SOGIdE!Rw#m z)V4w2*h#tSFoywg+A61P_90rrkEA>RI_{7@mJsz*&eta>2Z7H5uK@j3aGN0szVU4h zUBO2i#(VfES9!=mg-`!&s_*#!oJp$Qh9_OGl z&zkU%cX$$}aSE_qBt&Ol555r?FBp|JwlYerjWO9+o%J^kh5n?`3I3dMJ~-jO0D;Sx z37&0S15Q{lI<^UTFz{3W5==FA%y=Anf$;?RW#bj_+eW>~h`mDvM8*TLEIoeMq>C_9K-=DP;`1EB4|&&GE8XjI}+RL`wjRJ zUn@L$e5=<4CoCSE`RXr$OEpHp17?ihH1O$uZ-B4xI|qIRxI8#=e+ztHy#1?z+x%m| z9sa$*Q~XDPkM>UmclxgbKjv=>=)mj&?cf{J0a!iA510i$Cm<7?aC;1FEwFn~XJBpk zz$62=2PiK=sj2)59mIq`JLI9wwd?4JJ8g?*U44LNy08Isv|*~g$4W}gGU3dA8FCg&J( zfF%#yAUZqKqm1xH_PwAezrj7?&#q(L8SQU39_}w-mGjln*Kd(VT9W1z8v<5=0pM$sodMae_Vu z?FD@eB9r1W&L4}}SK}DcoBmCn)^nOedL~q7Tpsk<-pf5p$Cqq~=%|V*)IQfke zUQ#lsKPUyX9FzwlKk}bJzk!&U-b>gA=sr+?(37C2K`(r8aSKHL=o;=nVgA1dqV{_&Z>zB$ZF4ke0B8;9Gf*MuHxQYtx`TRy2>YLW)OUdL zL1#giK{r9<*V!4A44MFPf_?#!sf&EdouDibwb0~msl@{zzj6!62ShD%brAWJcLsF< z-3uZ=@?=5eOHMQhL~-cJFOz)8HUDv#)!0yw6SN1E4?0TA@SP-IO2ViiTpEO`WgS4t zpaGy15WNAMpv|B>&^{0hbSwy@`HV+HCoEQm7Caub0z~l$Tp$D5ZKEIyB;hQPKV&D6 z7OP+d^bAloi2NZ5qlSFMF`1K*Z(}m(EfCEmy8$AzU`J3gh~gWhf?fiVzase{vRb&W zL4++se%o5?gB0kmgI0jDK!q?Z-TxDM{R$#OA>q#^gC>HefL;PQMx*xuA_HPq5cw}s zta|ccTn;J(k?*30PlJ%Y?D`y(pNr>yKIDsdMnMEpS$i$&2lWOG2aN=!f{H%C`mGXs z43r9*403|zg3>^XL4=FD9HikyXqdQ-4&wO&k#FQ#5MkVQ1Zmh0?2wB4kOE1V4}|xy z9Q2l;RgmeRERgAId|iM#fx3cLeS>!_h_DkVM#Kx>O5C@c{K?6eoUnEXXNT}~*a?Y6 zfXGk04M>Y4(E~c+;^v*i^9CZkP9ic-?gH%reFI`Y;h6y?g9d;GgNA@gF&ZwQUJ#iw z>w+49;z8{Mb%yK%YTGmf?tbqAe(4 z3!ZdB>V?$4g$V3slO`tm?Ej#DD49x|3M*X zq><8KRlw^_O({YS6>^x64+%M3$Pq$5EaXTb9}$wqEGa#v3V{%UQ4F#Cgpi|!93y0^ zkYj~>Qpj;aju-MNAtwl_j)P(}L@YleB#n$xdR7%8{tIJM#4?STQktd;<`iS7A9U)f+#%#nAwL#! zmyo-K{6xq-LhcoEpOBvl`I(TP3%Os&FN8cGWWJCGh5S;;LqdKfeVBk@KZv?gh z<7ywWJXo4{uy2rag#8A7gYA$pe_cKZUMT+neqO$aA?H+OJid@8C=1|2a*Vzo_yB#1-h&O*&xKBi;AIx)%C_bo z4OVs<7H7{tVR8P&<5zrh-}0b1w-UEL2YJ@@G_i)B4$lDA_O30_WB+T3{(r&}-N_r) z*uP|n{sgG(e(d-^Y>!@H^<^uqyRG=%0>--mR*+lJZ(IL2EYyS+k7plv@&BB)`mp~o ze?22id3-7VZ98>FkUn@YGyDl_^^_3o7s&JY?gI8a#u7qu!K<=gvs!2|YURR`!D`op z&4RG$B}VA&WP5zS+CA)gX0lheV>H$tXxFhIdoAd7 z?Tzg+3%5r?Z(?r+o?uS`?`XdVyoY_Jy*Zm@XAzT4Qbbe)zLg^egQrCN0RD5tMewT; z*T7k1y-0kC10mlatn*_cosrep^uJ`IZxW@C{zfuH$3%y-*y!fb`0j?)9^-}FYQHRc zIrNp>YJVGe`>=lAmDOIg*B8Hoqg`czUEbYZ??@kwoN4LHz*lgqy?;h%2FBbo=7PTf zKJ>brE{OFv4So>hk zqu{A`VbiDh04YroN}RTnF^ChW(UVoSS>Sc%qN%(im4!!O49$rcLd>+4R`tbEj@i${p!KDrnsI z<-9?sUaR3@JAPq#(mwl*q=n5V4{;4yFuDM%@0)z6ICsOd1=Fs7TJqi7nXb^0Q+~em zh0C?vwdqpHf$v<`_7^pAxjwphecN}gA=itq7P|&FiT`k_%T;pSb=*~4P*k#P{UO&S zSHbmZn~J|)HPPW(x}$A`r@bvpb}(mA*Q?9dw`==qa1GCE;b;8&>8E&yw0!p3rPo}8 z;)Z)N>(=L1;~>U0Pn@%-z$Hy*YxGX)c_|L&c*UN)c2M!L?So;{8SWL>w&0mMSTlI| zvARDVJyqf={%m;-$ugTAWS94h9MW&`;0>czlfM>Yc`d)~m-eU>@#>?tB3BYJB#WOy zFzHINfqbBtwVIK!6f4$%IuO@+VkCn(8|oNyd>zS#H?Q0Km#?-B+ov!mbD$j7R&OO8 zzyEc6z;x8-n8EYFBnMUCJeSpq?;6`9**NDJOlhd6C7n%|jyvi%{agyHX zsYg+M_ADf)vy?Mk*mPT--ihxx*{>d^0Fxdgs@QZ~;6SPBcPr$~dD=n9Yv-{9CJC&-)T;mSnRXUqMHTC8o3H zFI!Yy=VVg8uY+0FSci4{QkJ^1PCDiZE1#1&4XVxU@{ut$Wn5MMFIv$+V&luRP94v^ zc{6_6wC{>03$6ZAi zzswo(b-^^(&#oW3-^6W?dp`H#cVjNOrny|#ha8G8K3eeeR!@Chmq%*J>A~3j%r?P> z(@&-xOqkX|j$S^=Z`-u{uexGfS8JzTzjCvq6aOT0^j$vh=*_5VvwP)TE9&f!^aqn4 z#1UF`SZ8AXUv4SB{b9+aJ=^xb-a!tH;DYy7~LBSI2b=sKgML!p8b>%+( zY?14W3EQq;FF1Dnx~t$?$tC;;8>dbC{`!`mC%TGq3yMpMTqQq;PH9rSal#j|QFO}^7^^21W&g5=#^()@*DsmMZKIi&z$P+#py$rjmCl6Yk z?pj>*P^~_$OPiY8YOwoy%^2}(+mo)_1+sp(p4DOFAN~K>`wqCKvTg4ZN`L?%1PFE! z6|q4`=)EXS2N8Qi#g2+?#I6Jo6;u!v1St^_1f>WFh=7WUb?jx-QPHvDSjS$!|4MQk z?%aF7dtdv$_kQml_-C!N&f0sgz4zMt>?G^#z=ypU4j1-gqf|3ZyotfrduI4bCV9^n zzX0xL?y#qy`nQ`NqY>uG7}Qd58D=zkT^s_2uEaFP|?z^?SWsz~RKs{PynV zhf$hwPv0!4b4706bG#W(IDk)UbP1Z}KX&Y@dpPWw(HNaWo}E6La-xtw^Ww~>159V) z;Adi!?c`#H8Y21#TDF}NjG%i%Pl#UJT;i@)C>XOPgo!f4IgC74NT)IkSwruX&ohjTs|W)96Bzm**ulykc@-%sAX& z#pvsT6TvUTuj(5Z|L{`O=e)PJCsiBG#QgH<6o0tCR~Iu4>4+t|JrWIrOwBtJ!YZ^KW&zC7eF3I6njhY6n}2o1z3}U6^my7sq|& zsIBICiZ~pTo~|fIkQCshrpCE*-~c98!KLlzJu~{;ev>%4e2CelLqCh%qEN2JCBvh! zR>6#Ua75ikEyhd`Th>>=g{?w0LwqmtWrZdqltB*%MZBY}#A=qYOs9jLyWr&1J!kLL z#xF6M2{DF(wLX9QX24-Q1&$m}JE7;DNRhTWbrEdAVb+DmL@BsGUhw;fxJuV4e$PV1 zTY@^Pcvnz274HE`@d~8R#w-vY1qsD1D0s9m#Uv2V#w8F>F$o<3;wdh{Q^k9O2B>(7 zQ<$&fDOMp<#mhk{Zh_KL?7~?UAB@S0;ujS8?S5U~g%2);B*?0xw*_Z`| zjO*do{fJXz8P|TKB72^xhgruQ^WvRRxz=lWh(h0&?74TI_NKeV!#OzaRgAFMxZ@aJjGzd zsd#17oKimlGK!xg{Y21A6`u{dQ^ix<#w``EiBBLXW`p$ExD7>FkXfqaJwU}OUIHpr z@phn2D&7s0;yR3w55;qgSIH@c!xo@C{Xhd%{8&(m?I1bDca*63BcMlBJjHxatOtGm zE(0wFNdITh8!Da=;r%*5a*6?o0_X-V11(g^DF%dMKl~xbBU*|W5YopYgXswn&>Z zPjMd<^Fe*54{8LE+yqpl;#+}Qt9TDkFM#@sjR_%riVHcX(zyfrt4fFBLv#ty(F2tL zr0)z$F(X(7Frz`&sN|WT6hqP(@qLncwlZ9yGWyb~zJh>)*RoCw8;(3{Kv&>vLtAkYB-l{FAFM8&hQB$WRM z$i@SdPZ%i0mk>`eCgA|3odG&m#s3JpK*cWtU8>@jgGK?ARtCC8B~JjQSQW}=8|Zcw zzXP;D#qR>8I2O{O^&G`+D0o%;2JvhR2k~qi2k~qyheBT!&!ONk>M5o}$^Xw@pD-=f zCv0pb)r*alQ^{|NmOIurZ$07i^rTqF?^Co>9yR|60%d`_?mZtZQ!nYi+~) zPhZ=3VqN3&57s%J5%|UiP|O>DTJvngxew-+O`sH;OF9&vdq>67@2=6hs6FKWE!IVs z{&)QL+QBQzzGwiwuHt_I{ixzUgBl~gnEFcuYOCVyL4#C$FldB|pAEWN#m9s0RPlwN z4J!T!DEpglY-}>+?|}6u#U~U0Ppw5C!>0h!r}$)wKi;bW{{j8i8Wmrvq8JAY}>h$k(HD%vWf~uR$aXT>)Q{$@@+l+N=g}d6++$6fAVB}>})A)r%$?f^(`+i?^{_(X|!=pdI^2gwr=l>zJWc8yg(J{=|gw)?crXlSMTqYkZ`Kk zT2;O&sr&n8WE}3BnMrw4dtdCeX%pF?c%oY#x9Uc(`1mJC^XvCCsi~Y+@JD%EoR-Jx z)s%lH8EvPivR{7S07bh0-V6PhMtv9;_o>&aRqDN0ubyHZAOE~}LV~hR$~2njla}S_ z_KuHl3mv20tc|IuH>YbcnrY~dw8TV4o|b0dk)A%wIwRv_@6623y|WZ;*I8D*PZNDi zb?+iuoj~?GThyoc>_Apf zK)aJzBVYLce!4D|rKX}CwospI%H(p4ky)N%9eEW6-*W4Wi)V;dhmRdn+pgYZUsGfr;BG9V08o_{3ZTKVxW)mBD5i#y#4Cfxj|} ze#UsFK9gZSmtn3~^m_@~qyqj*Wz)DJS_+%UXX4^CQNEHV|CK9jwUX^p%x{{Qt4LoR z^B_@8g+D0#rSy-vwyGNQ6Ko|PlgTt?7%K{0nxFC2@O{|RDBH^1M|(78Rx$T6h8p)N z+JI?{+Q{6;+|#(Zgt=c@$~5j_iS z`?RVJa)~9&SGM}=F%|3f8 zxA|087y0blf7GY8_LNV3Jw+p&_lc6-^ofam?i07hs84)+qEAA?0-v>O5BRKG_t;0- zKa4DQ2czl_Mz%GRiOy2>H|#~5GPr*-(PbFp+ zw(_1w;~#B|yriZ-`AI5EOq60R!ol34shB^g-*@b=l3`3JbaV5Sly=3XG;yn> zveofc@JXp`?ONoasF%|B4jlMuihjlXKEOLYosnH-%g86ZR_pV*ad6A3!G4G}2 z=O^?oF5cW5>mm7`GEG^zYTk>AQdiu!$)ES`Rfqr4CyDAZ8i#a$V(&Fn&ZgWkr&O2(b4J{6Bs91KTL=3rokuWn7h+zYU+CL-(TLlw(eMOx=&JBq>J?v z>d2&#P1XC(_pYhA0X=2AkPS3{k}ln|m1`zVjCrMO-#&H4y$k)PC};29`@O5HHD$Ej zFQuitY0N46KsnFTIjygV!Y>r{i;l* zDb^L8eC2X$-)-C6d~%bZ^691O)A@tHC&!z zew1RaCOs=zl42c!_2U|4Ka%g#yz{T)|91;e!~{kV_7~6~FUK=tV=<%Sp#k^^-@fS<}MC z_!j(Mvsi@Uz|@Nai#f$_k`bSXP^S${GTwD_C{V}?nO#gL1a@_1b~8mx7p5zsI*OTYik(lpW5=nUian&P@QkKdq5t3Or3Bv( zV)=so*Rd<1V*hpQOvqphcBWeKEi`tgWUv%wYJocJU4DQ$$Q)uC7}^5;UuXZBEpZer z{NLrU!8hqr{BDjNo)C7xQ^ELY3GC79int_qJnQSpcp>`E2cf)uu}3d{B!X$gFVh5m ze@d6F#W59g9P|V${5R2)3hh&WmF9E{$xjOYk0$}o;ru+j7n>k37ZukoF_-cDnew=b zr_in`*z3#<<`-}`fm_Op%xx8IV(x&ui{IJ2$J|%Rh>*VWc<{&13$ddAGWv*l{7>cG z{7-59N0pxZQyKimJZ0$V#OHsZ{X((3@bAoP<_(?&e1~TNKQR3f$@Yo)%zQzl+kf=< zs>4X$QWz{x3eT>ph;0SNzHg zo`D~!*jM{Mvq=2l`}gc<<)b|KAO?y%IxG3xRQR{WeXePz;s{+FcU}xwgTILoxpAYZ*0`}0X4u0;12K<_#M#Z z$klZL6TlQ`2bcktKqvq+H4p%#kp?h`-nZs>f<|dX0HB)KcUn^d;B#nA3BWK-njrve z*YX1pm7^8L2?kBlvgRa#HfcEm3}c25Eg9ZnS|DO)COaSvfF5rUkOn|UcOii5y0`{9 z8L?bhVue6m~Y1kM&~8*w*nae z+SMQwfNcg`P7^32SOVZ*Fad}LP**`NfaoTH6<`kp0poxypbV%2V2|M?0Oc8u1JGu| z5CG|cQlT-Y6!e_X2Y`++7eIMNQGmH3EN`6A7-pQ&DgZVjIxoqn4bT;^0D1#ffHhzX z*aOah8{iH20{%b%5C{YT!9WNw8W;nN1I7arfQi6NU@kBZ_z{>7ECH4RD}X3K2E+jI zz*=A(kOHIvTLAQzQ96(f$bnoSA1DBdfIUD3uopN090VGHW57w^6mS|i1Dpdc0GEL) zz%}3|a2sd>9sm!4N5B){H{b=J#Yr;K0eFBepaPM`{?0rms+zyaVea2$YbCZ~amz$M^5&wC$zT&pwnS9fb$Ml0L(ib1_9`Yj?e|7I%Wc}qa(&`N7SXG5htmmBLH2X z6kyEoPS6Z#fZ1jt0MY?+Gi#05>beye{})98}OX4S-(PLSPpF9mvLk$}Q3W z*ll6WDFr=e5dy$Qi*W$bbVGW}B>;3ScK|r=Zp{&NM|s_=0NB~Xh9m9)n|s)CUVsMo z>;d!x`U5`zsDIBA06IOl0vQ16->Xvb10H6*`Y~p`P*$&80O>)4L1*`>22ft_TmWVE zM%}GYcPrRwbsE4m>jMDV!umXbJgm_cpf9W&0Gx~AH)7OJd=x;LHsEb=-vNDL;|`ny z^f@nZ&PYxHC|?o+AaCgr0QHvQLr_qGEw0&K0AQQ#bwI$G4Zg{CBBu$Iu^R{AU4R{Q z?a=0SHvs6`ivfGU6Bq?t14NwJ_H6;QjXj=80+rie2jI6jKM48)2zEeU0djzGG(|Ws z@&l3_F$aP&PP2eq0J=`N2ZKgAEd#imDDdZ;nBa3xj{s)eMW-|XwmGBETpk0s?t;i_ z&?c8I0P=H12fBIzLBL2L4oCp1fJWdv@C-mml&ggzq{`D3@7-Ld0rvp3xmyqb8{Kf< z13lzvrP|toCd;J~(xCYY?_Ui&LOhZ2hPD4LNezc#%wxc+20)M|>1;CU(>sJAw z{QhX;{_Y$xXi|Tyu|N;@x8@uKZ315O4+798LB^b5xT@Iz)N6nZrxY|P7;C9u$Odu% z^!Gp);0l0r1DVp_2Mz+5gTD`42jF^04S;kZOzFmuLBKko5zybWF@!mYbD$BhI)roP zMaX#03(!9fHGJO6VdU~e@0~kin8Ly(-X$ennX>XZ-W3(MIeYi+^scV%%r$xeuqJvV^IsDrc&zdHB3{ zrT3OC@!o0aMc!MtM&dh~H1EtzBaU32#%$Y`&*W?m=j38aFhE}T-r`>|CI5;k`5zfm zqRw=)C@=r(xDs{Tc*@KFh%HfPD7M53F(Y<}^`P&$`0DiC=6^iSMAugtXCm_bua7ek zs^hzJ%p%PH(s&a!e9Yj(?B0EzDJtsA6c-2J_gf!e{u{uQ*NkOqYo9Z9b>o@(`bi9Z zw@LGDRJ^;!h7D!jsj2Om+}y}kJ9dP%&CA0Ra3!hm4_(WOiY$xDN)yYfs@bh-YoomD z>uH|0Z@p@jwDs!M^IEN0v$Z>7sTh3siuraUvu96tredEd=IC&Z{rg=|rXf>TpNaC+ zFqd{>qSlx)@$umr2?;LD+O>wvy7hR!os__A*pSU6C+}f4Zq(px+O&b$yg8LgN!!Mx zr|09hZL?b=W&-8@dtzs_7%mgniDF(5e}MY}^H0RgEXE$H{~%^2m%h`dxS1UmyNh;P zl$3P0r0>@MehdwL?>LN!N<@7NI^q6Ce!8>!+O?C_)R^S96&2#v_;p>#lyNp{_(rX^ zb|(6ZWXhNuH6~i4q=fx09x)T>L+m-EpPfxqA}TM}V04*ulc?x2lbD#3Cb288o5Zbo zW)i`t*5ahjDHm6h?@)iqq` ziPZP(X`^0N7J_)54(b&Z!x7VCu3lATpo;v=Qu2M6 zosj7w_8>|Y!$fcOVKOrOn5^spOis=a{FwL{reOCJrg(1*Q@L*)vw!~vrcRMZDiam6 zjaixKgLx3^e8{vJe6A7W!^Ex(U{=KsVb*P$!lY!xFj-YTm>&X|{kZ37GJ}|?*s)Ap z+!Q80DTYbjh5MW$zv)cW$`~dt8*c{p#V|FHsUtQaYNHRcsVIgiR_Nq2QLB8I)!Sm2 zoc%sbtwN_C6SX;pNh$GRO0gw{0pcs8qQW#}vU*N*dZ@% zTG}&CdioO%-eYhwb|-L(iV8Tz6=52C_ttYN73qHAM6D0iNK8D*NlLoN*|6anCpq~G zXXD0axDP(zY~CEnNy$s#D~#+o%JIq~rqISC2ZIBVB_ z;jCNtjI)0I6Ha1cBqvFp0DB8KIXlBN3JU5uh45#Jb^N!*FVUI;pPQ~3+&VsfRqKR= zoYrgC?rgnoU1Qtz>nmC(CN6JXSSV|~YgcS*io3+#FRhc3EOEb>Wr>({OPS2gGCF#o zWlZcS%aw6{maA4xvRu7-u5MCNv-XA!G=E{;fO`Ob3G>^QC(^)oM@NlKsqqS2a?qee zcFO2zsL_+nKKY|RX#}o6D_GDj=28CPLk@|L?u}Viu=1PFg0r0_jQ@}wK7@P9`@+>n zp68ESM94oH+IAe6A21|1&pcqk(>bGiH;--19-TSWhZE?utIk8$HhJ0z>Bre>;dy6* zJ_(BB&(|gt)Mmfi9ktzR&*^umZF~NHa?{lfoRVI@cCnR&d-OEsbWA?&-8ePs_W{{) z=G)AiO1c?t-?Jknv!U)ouGXlyuCnf~sXfB)ge-n{Lz)|&bt2v+qSL0BrD>xE9xaHv zG40){-=DuatghGT+cTScd-L85>Yiph=s5rJdBJUoaky2$p7SHp!tT`#T;v$(*gtK` zgyOA3#$PhwFOXk&d?e*S-S1}C!{fpRlpaXE;VZhH)M@c%Nh{Y?bAtONU2p9i?BZ^@ z^4O~#tACX)cyzAyZrx+`b6>Q5KYLnNCT{0|x5n}3-}Rq&sbb-Wh}`x0-E4-vv|gC^ zWb0*K+b)dtsK*^g1RTBY)Vu%cS06WzA7lHxw615y&<=Ok20M*Q(A|H*Zt(0#ljrY# ze))!%6x!b5(u!rRdM9;Q^rR_q=@Ro5TlPQUgz*Pdf_KA@jzx{0Y)6auV z3M*P|xh20Yo%m(>?>`J}D$^`_yx~oE_xCq+pG+}*l@>B6d2W~LC;dZ5ruKbM)AO*) zXp@D_zePOSJ#0{D_aN>4MFY~qlM+r$=<_yQJNV1zE3LomUa4M`?R@^uj!O^rXQ*$j zl4k3Cwi~Gz+r@n0wXRT#`gf+K`YieFnohG}aR1ZC z4rdL#{HxIsgET+gyQ9vWUEZYSQE%S5s`}i89pjHJJ>IdoL*JWMUcS2(8hl*yaXV)H z)re0uQ(yP7=bgTKu6rM=8#WEb7u_}`rT^6K?)ip9%Qw^fC+|%Z1&y0^^yb@-drEiR z8|c+-U;dd#eks4*8ehMxm3MxmD}P~t=eh+^M)zhk`1YBTtULQ*>w}~GCYjFsd0hL2 z+We+DZ!SMJFvuPjv08c{EW+gu?gQ2e>V?tbAH$}?~S8>|DG|?3BkACTTeZfEqJ5nadh;{qIMT8 zhEMm@(VTneV@jj@UZ7v9)J?viMj@Li3u1SJU>s(Aqlu zV|4)UR;w2VF(>8(nOfgmIVC5mYIa3^*q+YgtMbguV~+mRrSAEL&KBhs!BtB>ozv); zUeeC(T&KsywK^YO?9g4`F7xTqLf;RSVT-f!fBtOj@u*hw>=EZ94svbzqN9D!2^WQ| zUp>gvbV;^lnLP3R^*S}PF(sb{#`>KU?o_`QADo*lamZP&ul=f0?SO{IDd|(Ec=w4Z z$68Mubv5g1@|WF@hL;`hG_{k>W8Wp;oZTLW_pJK7c4evk6vJ;1vt2`rcQmwf+I;wR zkI2X;v$Vb(c`)zcQ=3nFp9dFzzA-}DWyQ=J27Fu3ha2Z4-)zjC*AY7v6}0;p(QnWu zFa4`#edmTBOx6^(t`q$v{^d$9z2VdQu6y1+HeA0pY;>s8uu}ts7vf?&Q zy^K>{-x>U)_s6bp`JU~Kvd#!5r*PA*pFVWec0^xuv*hblPTpP*h7RfWc0*EjMP0n* zM7QZ1qUE!=$F`jd$=>#2?WY-&drXWeno!z)OXk|Z<(0$7=iHufyWzJd_FrAke499E zN6#nsD$koP(9bfxFzbe&xqVg6oP91w1(&;?y?()mIfOWo~+Q|+}u2JWX14# zo_mVKF@pXJBmF8?a0hEWdHu+&?X`o)Dm}+``=y(~lDwPmd(T^WJoZS5gGHsy+k}{a zxD(@tujnRz){%RAi1F^;n&uZbKQ3N)FHYm);=bq41a>r^BB`Ei*Gp4ti{C!^^8DaI zYCA7xh(0$gZ{yA6cOO{l+-=w^pX@oG-rcM5KT!Q>*w3Tdjre`ev{sugUpJoZolz7& z(4$rK`qR~iefn43PM$TirsI~~2kizQE!?e@SbNG*u)1{YyqfwML-zW-x|IFUMVxIs zVSbl69er*UzU|j=s&d$l3;pNbns#XZwAxO#vPiwxYu}yBHW3Df-E@8FuJ6=VQMvfejM;%N3uk*e-`afQl%L($p^qM4t5yrM-F>5dtLA`suQP)z z_toYPa-Ox#x2sWMPMGD1eiJ4ix-v(;vGz>(x8#A%GYX<4o{PJToGeRpX*F`x#^KRR~es-sk9jDJ?L$u+_R_a7~3oF=f*#t z_@mdtpl0`*YSs%DhIl_(k?I-NzGw2KHZMMPZw^Z6k+J!tn&TkBwxuVhU0c#+*n|N4 z>5{Vi(G#_nu2?eVSKbbf#_FH_oM!*{rAof2Y3(oaJsmqQh&WN@Ev*!Fi+XTXr@-l_ zo4=iGJ!)z<;~%OvtiLcLBV(|$K7Y}tLmLb$+g8_IoU+{T?%Or`pHnWHKM5%Pw0n8q z%Rfwdvo-Zj`;(SqhUd@l8MEkGD@okls~7u4k2aB}p-n^3Ab>T*93$9$b@{xBBPR?RIXRAj==UAY)yL$41M{fgbutnvX2I zee7qOubdlKmN}|N%~Vh2nNNM!iMv*-oA%<GAG^J3dtT1Ir;9$lJ^IVy^FuEm+ip4igHE@1;b+!)znIp0h^Qesy}n|9#+Y`m zPrfa77_g<_>Q4egpNl8kpDw@OeyQuVU7=z5hA|qwI_%V|Xm>C4^MUsFr;c*;`IhtH z((I1m7e}8e?Y8f9^T~UHrU_ofH$9pZ+wHB4wjk=-HH2qAspI?r;W~p{y>xA+_RT$d2_#NF&o7i6I=DB>ZCVmW_DY;yG`0W{B_c4!}ISgcWu)jqJG1+ZO_rCy%#dE zyEoZyt_c09}c~}w=hPx_P6QU>yLe&bue|{{H*sHuWX-bPU+I$LUcKLe)2I_Bj5SC zOYW54ttcGb*3e^nXjdO&(R#O>4B5Fp<(4n~e=ytS^vV4Ej6(aw&IbhDN7rl}+a%as zoOH6sJ%iH9!I`IiGFa?5G4YX(y&q?+*~lZkk5^Z&e>(Np?#^F)^pm^3nz%?7KeDK< z>#mWUea|y$m%Ght&P{yS!8O->(fso(`M-AhDr-9GCLBLGXv!kNp}1c@?Q65oBem6< z9&2Zw9P;cEvv;pa$V@-xa*vtKcgv>+e_na2^G!j)7_(6evh58+x29fgp0w=8xyO4x z%skYiFs3Hu@^tw{!K$t~4}CU@u6?Rin-?~{OWIG*R;#JI_HHZg*ZIJ2HacT;#=CCm zb8pby=1+$Nt1mc3TzO-kTJr`IB!-=euLRt{nCB1as1Ov-pAS!MewG z%>{c#@92NFmGSN|!(%?Sf4I2v!GXptCb65N!f!pjs69UK$0)zGM>rM%mY-e+RPTN` zDZN9-8DqC^Z!&vzxX*HZ(eBi4-bYM&6&a4aTwkzmcgU??^>y9#J~@icMfm3o56(%v z+41p`;Ipkd1)ku}ydO~cdEcwn^=c2F-#jPSK6CcehbvlNsmPr0B=*wG$2+%)M!b*y z;ue+T+kfKKKD;*0VTB=k6Iyj`V_0X_*lL&i$Fyd_&7c7nq%%(2PwMJ4)A7-^o}aSj zFCRB&+>E7e`#U6CPm4>`o?er(=)%|L<{oury9K*`ztx~u)$>MWX{@ka&*X1)qi!6z zbhSelxjacW%A@$~xaED{E^51>L#s_|ZAQy4|0*q=lNV(>B){fU=;lT9ua-8RdwXI* zH=kaU-!^nI=ux{hu5WEcTtmQxh~s-E-*r3ct@CKTUy5ei;s;g<<1fxy&^*T7Sxeia zWKKl;bAAi?Ukg7SDUo&j$@9cQt;RX^T{@+NYuv7EXn%Hw!RC!Yo6c!@ZttKm<=EZE z$Vp}=KC}%P7&_-_&&AW@yzCdPb)BEO_}-+zg{^mA4|(!#-cnt|i&|CPkJNf}o1VuT zJb&cz-eS?Mdqa7%FM1yTHtO7G^+BtytnT{j4(`+XUC!YX-djwHpYLe);L-KP^&H;o zBcqPhSDZL}D4Ta?+Tvd(7T(~wuJrg&dD&_Gq-y{Am8Z0RUwv8{qH)i6%Fwm1Wyywy z?$$jYKDaFPSu&>R*ND(x`yAlCf8x^1A*K6Aw*is?-7m&oW_0q7n>Jn4N-aO@@MQTeI?eX(Xe2)E??j)II=-GefpmV83tB$4*3OPJt&8zvM zHXXafWQ~8baOT>gch4u>Kl`#r`+g_x3(Ye{FcSWZyU-{QFrs2N6{m67v4THi{~>3=SN%kqZ{eke80 zp1IBMX@W+PTR$5~`;GVRXZ7c~{qD2l$?F=6YxCyGOPm);(#szhlS z8ymC4sMp|IqdSO~7<@M9@j8ACPwb}|z3AXF?FOgDi$o8(bIXUkO%Yd<}DC|bS$#pTxx zKO6W5SFW6?8#!QJVc%uO+7||`^bQ+w%}K5>X?`|P6+ z4*J{7U*z+%%kx(k7NpO*!&$YiI%4wFI7{0z59bciy0T&Lp6GQ?2G>7nlRv3pfmW9L zteZFe0^)`&8a?6by0EPuJT5u8Pcb)tv-a3b?d20DXDrX2{Hwz=$44c(e*3Q`*HzuU zaeG%*$Mc8wz6w7%K+?VKsF09t_eSu4oWG8De#6qAH=kVLJZS0Z8++pBz56s-Sa`?PbtE{m5@JY9JS~(^hTc>gB&ehwCPp6C=^rOp*(0N<8 z4O`yW^`MP2PmWk37GLt}AEMv@6ycrYqr)!&WZUfzxaxO=ypMlTcEIFEr zwBuXk$L32kq(y#d_-vPCl-E`~2f*t602$>u3(rZhvMZ`|WHl@MGbP(5p?q_d4K1%v z$7hguHkCuNfza~+rYL0eJd-A#ZqvlGVtmFL*X=kbzLyc9Dwom)sCZ?4mGxxHNMp>u zry&{TPZUqXa!CIX@+bRlK+g)4ZHEwimd)m&wEvH5teofoRepcS{%9M-V|~v<7j+MV zKIyUfQJtu~G(6Qpc95-(NJEs)dvYiQ4v){O>Ol0NsytTap~{o;Wv{V)($XfGx&#paZde2*E3){QEHooiux(*!`duWsGB>dwW5AoRrO@^W$95o%|!K{j%OMv&j392h&Vh2C7uNj`G(^9 zW0lSkJddf3=TWH4C6G-3*gRQEw$Sz57T3~Lc8pWW*zv%op|RIeb_sf{-?C}{(Cx)g zKGbICRQb`^XxW~m`xBnFV$+Z>IY8G(V%^lRXS-^DsN+#(ZVfrzv@T?k}j)%Ik zJbqJNA*a5fI)~&43NE+7-bj0Qy^x7=))b={l81`e~R|SwAH^NY)b|N_|4K1d%aB z2}ZDzDAhR{VAHVI^Ozt!xvkV?Wh_lYssz=wU9g1eOSaJU`6_wE-$~2nLB2^mr4@ow zpR#?Vthc73eMpCFB!ByJS~_p7^8Y`s{dN1Z{XuO=ZS>c3K`(~dpKU+Ns~y%cE%S7Q zY!&V*Bvd*~Aoc>ce2XKB~B_sQ2oKl}0Y@yer;>qT% zcxs#SYEY~jmGdTBUK(a}mZy6S%M-O|;afCkAAxt%LDy(LBGCQ0Wtx^ewHw(+eQk%k zW_RRw>QDNlLv>*DZP~}G@=hw8!39b|{HoL-8&i6>vmz#bZG`P82*PxNMsa@n$| zpUKBAsIFaap+jj}_Aix9ZBFBmoflb3x@;cAvwcJ9TjoJ^pzF6)lz5uUh!SWVP+Jhs z+QOc*vd)~LiuTas9QmFu7JG28@4sl?CtdcO_?9qjan82&AXS-XK*^7&Eu+A*_c6A; zD4$s>-IjT#F)~#dnz%pEx;7f;n#@t;LVCT>@8t8=7~4d}zzbDAR0iD_$QJe8PzKpHj@WEp13+go-ipSd|C$A!`q<1Lv#GAK`g&@&mfhv1O->l%iz1MmCWz4FJd< z@<$p|{ecv$3~4@O=OAk18s=9;{>m|?i5)@C{>?r&MA=jq_MTy&I%oTYZ1#qX+Jg?F z)K01J3Q9*jJD%BlINLrZxX$u4AG175yCJOu?oVkLbt330+r|7Ze10Z$*fBtU)Uq$x zwvL6I?4t9r@H4s}D1A=ZrfeGO=dJKksvEthZaMB*oBmAMIiBRSUKoU(BPbn#*2N^J zxt_+F1wiMnE#_M~r@FIgh_dVSmhVSNkH$|o(5`?4Jn6P9pJepDf^^w7=?3?`lt=ZaaY1V>cc3jm*X<#r zzNaxl^95a}_lm5q&~+N)q|5dLwXroo{mIT7e=h&e=j{7ElJ8XAqgsAu!s=6g?0XuL zvGZ0>POI{Mu!rrB4D6;vx}lt73Q9cnBT)j?nc9{; z4{5=Z?9b;ULv;0beKs9Y^2L_ttlc#41pdjt>Apj24mzkU=>A9Z&kq>UgHR*Nhu#;_ zdnn?m@8}@E{BL*2@s>)iuu94O{Z~ez`IpyQR_8CT{Po#CO5ZZC|L1(1b%J%aZ<2Mf zZ@Dicuk-z2{nfg`S14X7ju$72ulO=dTN`&9ADbrM`@XMn#>h|FoVB@RW8v3dLdGUb zQYB))42g$dA3sJO?Eu@swsZU<{Z`V`kMbtl`?k%t zRen?O{BD%pX6tQ|TwgoCa_a+%dMoVUIyxng}+(q#RcqKsp{!~L|y#!`K8 zYiUohgS4I4QrbrxEDaKmlnxS)m5vcllZJ^S@EkGrkQeWerilxsS>h7uA@NVr?P8MR zXW+zFrMJZ|pz~P#QTn@B!}gi@n<52W71?yNwYKrJ?P_DM{HT>__FdxVZ!^L+#Abp* zGTTOGyT&HncCk%@t-fED-$t8U+Z>y6TcO`}zx_7nZFk!=DD>L-75R1YEAzW%^W64V zn-8{+Y`)rZCGG6GOFZlbN@mzilKd#yWVc+BWfvpaZm04gXZvr{D~2%x%v&j&VL>cg60U-Ces}>rzR9^^lrro$3<--gTkK=4{Iiwy z!am3BUk_OinN^zduSZ&sKdz8Wc?G&0_V4?39j--+e?5T^4MzmgmINArG=&Zg1jWZ13TJ(0W32EF20QdO4ITG~68;D6QPn z(bqB9;gZ8phwBP?n8O2y2!~e=iygiyuJ?Bgam;nFbc}M)a9ryka7=a(Ic{-iN6+*# zSq|n3`WJ=#Ur($Q9-#CBWe;1!A6oV`>m5Y@(6g3FaK@Es$+TrUGM-FVrYF;v@nr`1 z6UYo@LU;kTmihA`hd^#BYb9$fYa?qbYbR?j>!27J>NN zZ&~smHn1Fn-A(_fH>;~`6=hA7nyeP9LDCk5%cZ>;xeMR}^aBQAR|*{RQA*lE_215_ z%do^^5BUV-J{`d36R@GBJ%60r%X;EUj}~pNti`|o)fOHhL7p_L*eOc2k`-ImNUE)m zNb0OlNE)oqNPcyk>wLrdq2#{xOUY|%M%rxsR`T5XlZ5NE*;(Hy!&xkLmD-8Dq-~uF zot?$L(g5)g=@juiX{0z>Izzlrxb?WDG*eS#% z-=^AjkIgaLqc%5e587O@xkZj#}4-jXqP<0MP$7D>|VR!er;t&~z4n zuhS)Gcc-76nJUiv`uFpn6tFB{X28mT z`2p(!uKC^eyX^ne|EB*N|NH)5{KxoD@V9pNb9Znb;O^l*%>BOK6F+M=KQ{-r0d5{{ z!`!C%&+;GZKFfWI`vUC$!7wlV-uaDno8>meZGj^HCH^x1RQD41Z1*bneD?#;`GQs4 z3S3(SB)V<%PxId#P!y0Eus2{wKwW^kzmC6VK>GmwfUW^10lfnZ{Ox>p+PnBT`Fr`) z*!%hXZ2yDL3;RJntNcg!PnE@0uJ2qQdTM&T^fd7LiE_LQ%;d+t_Y z{|?s&`Wv{nve)(LVsGdpw$F1Za;b1RZQp2b>i($@*?Pggo4dcgx4pf+DQw^G(%^E! zMa|)}{R(&WzW3~#?X?{e-51)=wV!O?*=L-6ncX*U<@9#Uo$qiKEtl>8(0#Cdd!JZ) zYo8?hncgTJM|bl2O)kTo)?N*ST&|(5JODpn05A*~3rqoK0Si2kM!o{vDj<>0*h8M`kqueCM+si5 zJPzRXn8#VXUiG-$QjgXDyVUf%wniE@1f;dP{NZ<*Dw+Iya``)y@eR=O#O8W{DbNw< z23P|QfCu0Q4Dduc`7m%}fhlyx9`ae93m{wJxeBj|o~d}v_RPm?iD#83tMq@Naz^>b zJXhFy!1I{rSB1{Q zo>2$mNPRVaG2ho9Oc-b!X(H6B)Q;D`z)ul2npE-@^W%hVj4br(4etugb%pwE_#F&- z7>8&zYYo+2uNSR2)nqfRn!vAz{Qj4v{DH!L&`(JnN6tMy7NUC_fYR9I#lZq!3BQh%h;NA6@^ zimt?<%pg+RT@a?VSob>jnSP$0(D0;orOsD_$wGId8vTz(5A>b&ItWMV6&qM-6>2@x z8mj+Q@YXQUDAYJqTd329C(&)tTh8|uq#G|cxnR<4;;j8vFHirO(O2Ge-M6}NdJ+5@ zez?JUfy6My@Rm`8kZT-mEYx<_w$Lf$zeO1xbl2;K=#}YT7g!j$Yenl!=AGoF>v|i6 z8blbbH=Jzz!1%4P#AK*ev>?RzjB%N68?D7!;k?VxEM5*C<@KM%PzgVo-0~Mq5oMop(jgTt7_z zt$v_Ey}?Msk3z1|NaO3qaoRzAuFgq*gh9Np!MNDuiixv+4}POzji6D`ENEkp!=G$q zuVp3dpv~9j>ssl(6%6HZ`LFbvjhcnU#ui3BbmO%`b;z&E@OoE|xQ|-q1`iAZ1(OBg zg5`p*#?J(E4e|b8$S^~V=sM5X-k2!%P&FB9GSZ~p#LD=j@kp)ZTFF{L+9S2owS#oR zb>`|6>(uC^@UnP$x@UB+=swd;*E^}#tT$4>1K*h+&ada+;)fVW1VMtKf)K$-L8u^1 z5GhzJ$P$zZ&Y%aJ4ZRJA8ZI|HW2h!n6NU?gMm>x|jlzubj0%m^jCsbljLl7)O|o=5 znLdDZu$}urD^Dv(YrR&DR-pD|*x;-as54ooOs7GI%M zM;O<@`me@96LS+Q)M34em8e=&F1jz`aV1=P?iABarh2W~hqUjJFgSMFObS1V8y zs5Me6RBN(Ugw|a2Sfo~^W~eAxD@7|^t5R!#s75nKt3hjo=z`XDEoZH}S`V~rTd8UD zv>PAJPTeAUI(6pcT)3=rZdkQe{rHvUKnpOFM^jK zisUWkh3H1}E@-ZY-xc!mc$-CKymV1LuZGvayTH4`yQ2Ak_l)<7_m+2EGh1{^Q>ZJ_ zZKG?hJGqs!Zh@#kbloseH&FMk=4nxu=}6r$-3OYHx^cSky2-jZy3aJ5HS=_fMTNTc zx()E42Hgwrp$EFRbnogm!;@a=e$`deYolkbC(-lOs}p(a+3N-A4b=8Wv>^}cF;)NIr`sm0ZQrdMn@nM=OdM&C-` zLcdAG<$CMe>xbx%)NdAr>Idpi*5`4<^&|A>>Mz%SE{fCVbCdO7i&FH3+#LO4cyGP_ z2T_vftLT=#x@oiiEB(9rU-kL?4tybB#5d<#@U=~Oe0RP#U&I~C58>;Z+Vkh~g{G#a zk^Fdgd^EoecRfFgpU%(Y4;EGO+nF}-EljWQ@ABXBdz$hL_y%HAJJTKp&ITR0?gr*u zbM8=skr*A54dxnHaN`Y}P4f&qOv?;%MGXdhOan}VOnY#xxE~FMn+`G^V;W|vCg9?a zFRAh;q3 z;wGBD5`=Ko3_l8ZhH0kehC{hlhW3WOh9kM#O?R4xa*Iqu4a-c!4I?ogt4wQ6lMN4< zrW>9Yg>lOaD-FZBHHP-QM$=QKS420^-?t3k8bx4&;0pOdZ*8GaBy1xz7oIciAhZxV z3*Ci1gx1_e>+Xi@A?YpP4S_=HT8} zC@dD%2rGpR!g|aFjlz?{3&Lpbb>S^x9QT>xE! z!W+bu%~irxL|sB%!KKYxL4A_<4DVUq0j?VA8LlO+6)tLSW^Qh7E8hQ#bI?98lizm- z1SvB-3!)Ry;OgosOu_gFM5xawm?6iQ1(E9l;0AAUU zgN;Es0zq4gNCdd21POkekhK{w6trEGW!wT7ikHGL$^+i9R`+MxU4Rd4$Y}z$-;i?v z3KhJw~k4v0v=P-iI&V-#R0Xs^iuaThQYv{&SShz1<9miyCgEMTbnlo}Z0 z07F6hJ->LsP|&)_0g(V0%8kM>CIW_n_In>r0-Uy%`_pbZU?^z4mvt58Q}5_bya|?H{@yo zL;b!W3*%G3P|)C^4xcuF2PkkDtWsV=G=e8kV0T|TN5I#f0fvJ1d)g+zQ1EriONi&- z3Do*&n*l?upSA@s)cR>#0Yj~y_66W~Ke!x(LU}E?Rj01qDHq?Cs38)| zC}^NV;x$tQyk|q55@0B3hLrj31q=mEf-{lFdhdCMWEzh)CLU2Pszck0~kt{vK%m; z01PEh$-$@x_$1I)N)E2ZG7;63e&H{!yM5%+( z3^3Fd%KTtF2N+6%QU~LCz)&Pg4#o?Bq2wsj!gvud)Fw&}MoYj@>!-B>4D~~jyv#6O z0t~f}(guuI0Yj~y-*v!HzbMnfXbl)jn$j+ewt%6eC^;B!1BUucnHEM@z))h8IvCvm zL#a`g1x9zkQ0wcw0Ygbq>R|K%47I+_7cf*Mr41PU0Q&=pQ*tl{0EQ~3y_xPX}Vvw@|T7OL20k+?ey9xLbIT+gk zLqP*Q2(Q^oz)*FRIv8I8hI&TH!Po^D>J=piV>e)^W=amm9>7owlpKt208as}e=ny2 zLuFIyVEhIcs(_M%aRx9H4S8|b;w)gO07@N?aujHgGJhD40X7C& zzrH4b?*OgeR(^nMH{>1zhJprqa9*<~fZI0IwF8FwMrjwumw@G{;3R*x!4|-JYdP?H zfIK_IS-@UEFDcW)n8XUczW_lqA&}!Uz);YB=UxDYTAzcXsw@FLW+3O`<1fIg8*)kD z8r;;{bvV%WU2^R-;O~^&?|pXx@GqeC`t%`I6TG#t^_2K+sg?$jev_xOPL% zkq`W41H$-`Yhk<%80r(~x)mCXL4culQtH+sKlr@>wEq3Q2N@?OH202m6|z9I6m zz)>t#*K&XM4KQpWf(GdKc88G`Fbfd0-`k%RFxQ4UUch`C>I4CcZ>W<1EVrRUIKF-cY9kSbam?0l-H#)Ex&5wSGNx07I?M=>mpYpF0T{YJKh$V5s%m;51;U^*KYp zQ0sHXfT7msOaNN|t#9K3;Hw+zt^vLdq)DE9Em{M%1=6GBV6+2l4`fcs!RP?k5y+L2 zgV71_O`vO(9E`UB-v)A~r#B)}OP>M{X8 z*icshxNt+=L%>jUJ@Mqd8zGXjn?!Ilxd|UE~@V&jW^fL&?Et z0r(Qo`g8kbz);YJDYaJsLqS7R+PDfB3fc!s9UM6a3fd4QXARh9E%#^LYysPC$Tt0nqyI@(2tPAr1shf>I{|_$bgD%6S9E0>G~~)V%?`yrIsO5s4@Q zf~KOI2W`(fZnSk%b@kE2 zs572Zv_)jR-b(A;}3o@U!aaev;+h` z&zc!HFN&{bM;)km{A+4jvGe31lOLN)4k0h!h+c`bOY_)dv~zp){e*o!p?jSbJKNIA zZN1!b4^wN8ZErKw^i^#Sr;B*?bxO^q=tGiITcq!u1%}0jPhUA%1#kzks>@%K=e6wZ z2gPum=_dCQ*_X~Y7ZY_OqYDImU+#3Ati67Vp!faC6Bw6;xv;rw%9N|GHq! zRaU(DA|eRnm^qIrcV}`%TuSSqCR{_!)2i zT8VmM-0H+q$r1PEi|EmJRW&~g?N@V0PXwF|EwnGB1Ah|Oo}I`eVmVd*J-&-C0By_U z9{G$fk7OlbLv={>Dyie;N2f*kaeB2yi;r6N4VLbvZR7WpGhT%M*cV6avQrmXMt-Sd zVSD0WtF30`*Qqz*h)S8w%672w<)C-(Ch2Vp*ry(?)1}vF72PV#*lo3MDpao~({H@g ztEN^axTTTJN@08=t9w?Sv**XnUCM;7sFa5hI;{oDZ(G0j(j5Jm=I%FGeql8(m__B` ztLMZs!6JG3Uy=pt%IRoXg=->X-YQ($5$cyAFTqIPnX_qmHJG&D^UZ-~X5sQSLn&YJr%Onlz{|im`+e`**v?;$_XOmxmnVv?Cq=xQPGT7&?_=~ z6Pkkgl1{QWxS&NGvOT)jTcL$2TS4>L={m!oj^P~l{H*FG9qF??Py-8)&#;`4hA--zc z`A@fkTnIic7nWRIwVr-`vMNBZP87CGMD0ozG<|fwXjS~amUk{`znb^+%nDOP;_A0U z#H=1JEa&KQROvzSG6V5<{!AyrRn%y0i=HWG1S%<#Drkg>#PXc1NE?{i?}u zrRf3vZF2s)PYyjYE8T8;ODu}}Dsp)uyD%YTkEnYXzM%45^ApD`E+dT=|4CtcV%*qs ze(bpKizNnQ9$P!V$mFn_=LIarT^HLF4B0s+mJXKUR6e_ke<*eHnBzW`=|~u1^$95` z8!vj*p`X8lu60W==r#S_rwjovnyDC12IZBa*v=2(gP|D~&n*!aZEe->2SqNQk*RDN ztX4Ha>`U(U=e^=%^J8>L|FVvQO6bAX`~+XiW45Wg9vrw374rSGOD{S~Rr@)$$K_2( zBPYk0U>|qI*XcKDN17b&e1Fs9@-W++-X|nhlYhDUgM9l7W0NiyYTekR$(b`^FIf`s%-)KHe7wZ-I)*GSt&A;H}&mcaNm-@7&-Ly&#b|>3P3?13` zxLs*BXFL>OcVgm>$Ri$}mK3^Qx7!WnBC;-|Tu$kKce~~AEkm{Kii@vN40H@!Ck$5} zT*hf48*V=RkUk<7cw#95PnR6GuOxPRENkMmg3+=@(?ieE9cIY-$DNG<1QCk`zIH=Z zvw=a!1=7!+P&<`-!>Zree{!9QR?u5Mq7cDa7av~4bMy4oy-%f`KB$#P%&5k-Ps+ql zWf+_uztlV%cUQ;VUCLp#@z@q?aoXz59@P@&BHQ(97gDRWwrGy;85xhMQTPyPkM~x1 zWt7jM!4jc-#pBdX-607N&-s{W9***M-x0aqG2GS>u^W$_`%iurvYRq&>X=qO8hv2r z)v>6MEFCLbCz=Tsvl;_xhP0~U2#H4aQwP7iUcUV8*^#!dAI`k3%<0*5-Mo5uK5p7% zYv9B7?5HD-fz{*j+n&noaxF-5*ZrB)Gd*t6uqqfVy}0L0@CO&OWrlsb z+K3Id5`-u;@GQzbfDnNz>G z&fcxP`=Z?|=|vH>EBg!L+3DL4em!>2Y`SAiD|ph?%JGsRUa2s(W2r!q>W0GRk1b}n zEsc}u^>J~2)NG`meKkK#s_nBw=ITkC4shu%hfOM$=W=xwf1A@J9NEOxkGE}@_1{Fr z#uH;`mgHd2Y1&aTJ?Ws)b*6UPttRg4zRO<2xl%mQ^xLMAjwt1S+HTm%oa@A#=;azo zm)v^F#QlaZ`$=qvM&@9}q36oicBa0P?#WH`((i~KZSNP?xKC|%le$&-guVM}sA^Xs z&*3IT9Br+Pq^`M3Nw{VLpK(RAVDqHCjir*naNMMu_03}E6MMf)`Ivfz2dQNXAB{bm zFdA62U2554XHjRw_z+@=%6yAJ{oLZ6#sN(K>p+z%_W|eG#hrWD_V}xJ9w2udSTD@;{+6?YP%)K3#R8(&4c;DIN5u&e+xXyZEj;`JQ84vw( zTJhw0l|W9n>#cRVG_s%WLV+PDgd1Z2lmYsd#JShav z;b}J7x9N(He^GaQi)%JZ=ex|U862Xyx!OlVmh@}ITOOkobShSMuN~KToMyr=NoCIu z-={irH7Wf{;)&0P&5-ctXG^e#C-xvDV6=Ue&X1*6@pIg%r#8C)zT-=jWHm&_mNtGfA^_whz0i}SdZo6ISZkQQ{hQAec^+1 z4`p=f_ddCJVRMuG&FU*co;hk&;WIk(;M(z6q)x|L1W@EiI0P=MrG5?SDM^( zZe6KpepX=9c;Bh*m(oqM3wZjA)r(rRXVMvyYp6Hv6*``NmOIXrezyJS!7B&K0xyoR zEaB^yTBqvo_xT!#eXAb`Ul^Jt4B8rKNJcG`+U>SF(|0*qSfAtD-G`O)=Q!!Swrcy< z$jItX+)lE*;d08~;&Hn45Ic?OCbeDcSmBRP%;xx)lmnZCcCI5WKniq5H3rC@Y)7fj+~R^AB(3 zCJk4a-_m&5ZL)iCpX4UMgwMIjVy(M%D`gY>D-mjG@?$HKrbH#1z2aHvN=^}N z#@fmTx3^Q%dY4K1oNp!E`61R`@UD)gIa6$#liu_tF}YOWK)&7qmW}U-5;*YdDR&W?+R?cw|vL^@nHk4N^u)I zL!WE)ZcZt;r>`!sb}i6Y?$#Bn2o3Pmit<;`rT^iJ@f~|0Q8FbqR4MB*)_NmXU3#Ri z=zdN??^rzegY)P942oBuAJwqRZwe#r;8Cf((ni-(`H_dZ*Qu0?ijUQjUbVG4`(31pvx}#8xfRQ?7l&Jd%0|i(tKX+*WN2`tA_Sd_!~`;E^6tKDl3)xtkLV1N zbFgU=X*F_Nl4p@~Mfh4P>V+(Aa+yylU+vfp21YpAY_-jCk-xYlv)21y6YKm?mDin~ zQnBQf=RI?qZa2SWQkX0FBwr?ySjlAVNKiT!s2N%_-6qf}_yU9-cfwh^~)__P~m zEmYt>?5%m=_54=bfkz+uF5bIvHl{7_^p|Bk>K?IIn^ad{uB;kkJ+zckw=XBeqH6}% zY4JSK`^CF7ES*(_NyA;i=T9oVM-eAjOj@W$%Sx&*C>CXp3L_;scJAFTY#}lsbnXGY zbxG19!$&VhyT=L<7x$hHWFDqnXuFpg9Da>dj$tm^%+AM9QdbvdQx*{Ux$eMKBk7sO z!t!#(1GDzkA+tCJg_8W8{1Ta(xaqF(;(`x>^=7?|qVn4Pf|nR1hM4nq8aN+_J87)r z7a>e@D)9K5#_4zi_f0##nBPuy-SPwPyc1$X4^3P?dv~1;j!+hF4)H~Z_A+Kk&xGs@>|7i4BMZ}nPWviEn z>BId!(Zb4Uqr1|?$6PY=b|+z(T*iZ#&3%FjhZ8$;MKGH$wCiAf_i`;xPTqI#*+jKR zwLa5WI>?|jdn_RJh$D3i`&`(Lk}X@#>53M-c*!tar>|V{QNe{ z)7@8?OQqrqlWes~1_o~GGye1)=C+uDCU%Ri>FJ^FN!dW^nlMkUWh)cUsO}>gx=OrH zOK#ds#Ces8?K%A6ZuVh*+f;*>5>GSFZ$6axR;la#xv(SGF z98!+i`m)*@qa8gEWgP3_&=*{*Lb@F6d46xytsjrm^g3*&GBr~jIS`-w^J1gL?aVSG zwGEl{c^{kTo_gY3sB??GGQF7f3jcIj_JivK@fYwtqhGEyV>qH7HZ#%Wm&2K~Ug7xJ{-u}I zhs4uoH1DKM@D5m1MC?+}<1cLQX}jhf(LUxn_fzeV%)_=jfv6){j_#t#TYhpH{V-Nd z*{qhtp+9_uZm(kO_U}JBnt$r}@Lq{;_GfBFxX(QD{&jnsZo7Gkk^KSZ!O+rIHxlCS zNTF9W6(W1%_3cEd*&8v$@9x$8?z@jSOuo+dj{2dx-O)PAGVH0gqAlqKXH9Il8xPAK zs#05VzpzL|?Bypr&HCB>8%1;qWqwq+BA$Ok8#RCB{yG18@@DUiV@Z5>J-%0^6DsF? z#&B$5=CmVKBl4GCejME*opv^|;x`V~3 z3i8?ZWe>A_9WT_#9zOly$kUpL$WN^F^M{Z-;#uD27VQ3Ui!UT1U^d~2hldW!n=^FV z--#5LUoD`XNjoRO!CZVul|%N!Yjs&tskicCi_fvEbgfkZ2YPmKrCkjEv63y)!m#@F z0se@O0W-7kub1Y`L3Otgz4cny=EW3I%DVx?exr&U&!fx8@wi zU&Ppj$SYN;I*oKi)ONEJKB+qxtDFu#*dI_;@9@&$v)=m7wVg%SV?Ta>ZbL?9s+J1J z+4|Sg=deTiJf*Kj#kSDq5)8~0-yaRUdxhQo{xv1~o^=nc8|<$Ox#TCV8#rkLH*Mgh zzq3l*-}zYm-&thtZ|oWs{Wlh@s`(pBSWW(o7g3SxS*291Vm-5_b$(gTQlC9S*RkuI z;3xPe_`fY_OP2A+-vA<}_BlRi9XH5Ur4;^Q74VIYVc-vc@x=%~qx=O1%$nvle09kC z>vdNro>H-%H-B+R?iG0lFYmv&_$0kD_l2y#IC-MA4PW>AHz#>;s+>K3%HuaTrC~$L z)2^od=G`oUbK=1*Z4_4Vpo>^=*rj}j!pBA!$`yKOf|DtnI-q5NdGUPaIfaiz5$~w0 z+`9Uc%!1SLkFH5)<~78VS>h7a$HNNj*c}aImVefWAFS7V?*ab}0oi^N((Wh* zj@UJ3O+56Fi{|;ww!4qlxYLVYuE87H z`=+mdJ#Tj3Q{=6MaY;x>%<)TF=_-2|GcLF9`|+`OZuK0^Q2Vh%?JrY>e4UuTEz~BG zCho8Y-*IEIl*Vdr`tjgdceZQ%)HLx~(LlyIZ{NWV|E@s~>AbHC za$kKC=X6`m>^&K`Djp8Mw=8P)?7CI$p04!v)q?^Kbxu?2yR{QW}eT?pdbv$>C2 zK2H1F-qqXP+kXAc#9f~IHH3*tZKd(1muf*;qt*R~Ce1RlGY*R{KkeL-Vm4tpbz^T< z^OxWS!m^05x={p4nmtJ8*U&?S;a!s@-L~c2B~jNitNKhxhD}-KhhKkwv1LVLRM)pk zb2r~u4a;!IzMAT2vz#2OexKCTd=9=xuQp9M?}>_P z*Gx*C16vMBsu`z=DrV+21?)UGP*9UF%TdZab&&n-(gUv*uKpcr4wvLFZoiWA?B^!V z+D(3#6HzoS^>qiM7H{r)D_fpRJ$m!G(T%O|mVfkm2RnW4xqp2^sZt{8;;-H>#WA_l zUW{!Qn8xI3pH{I66Cd~FW`-c^LsFILze{)LNEI->=~x}|9VbL=~pgA1a4=Dzb3 zZ)h3v+DUC?z2w5?vQ)3DMvuf$hbP3^bLfnIeR@$$b$W~bouell&N4I_7!|k*Ju6ho zKWlcedsmSCH`{kfqdWOuV0Txc4>w)!x*X2&T=>~Jm81hX7~|b-ng<>9m+j(|CCr(= zn%*3K+_vcuPke;?QTghZX^OFY*Hst!44*ohe{>!v1vewkF@@WoyYan+U#p$NKgLR0@v1SHNjXBmTRYy3EBR zVVB(P84Kk6ugZQ%X}7N*EZJ`!$r87GnZYT>zg~APdN|jp+IL^I$o_HV9kGw1-v^y6 zkr@vipV0rz(t!Bre79)g;|_}w3rV>TI`fb387aNLG3kcr7<8<@G#8^UblS_GE&IMJ z^{F@G-q#=JkAAbrkBn#)JaCoy%V^*=ocScOxBs0BXCM{bmLh$xkdaj03pxkAAxoKfRM>t5MCzgZ5Lg zG50U0G|14ruKk{OhM=2+bY-M#ng7xBOwQ)5jhPfTD(Ps;ucg@jcfUScNI3T%K|WDyj@7;R2P03GUQ-!My11uhUSluqZ=|DF#sG$&5QL3^aZ`O9~$XE5d(QoP% zvqp}UtS%$d1kdwS*R&P;aR`juUv*M#%TzWT-+?StxU}_Z3 z+wYh>e4^N?dv>M!vgBNZ(TO+D`7A#$p4T@{ACBSWtK24@pgj~2>>~T4-SDx|@F=oS z{WGq>Mqp`9&Gwp|p}8s_PqNUvOdW!w=0R%93g?5?`It!GunT59@qONyivxYkz3NLj zC8~Q2Jvy?~(cNKT$9fjJi?Y-!!i4=8>Kg8y4)Z$g#n0Ju!9Mp=kbJ4zjKYPP46(P2 zYLPuO@~h^;4@jt~S7kI`4px66xd;f@O<11Y?w(F(8h1&M+xT<(>&%97R4Pk=Q@wX) zpF(m7Eys=v=oh|sWqMB>JXmLLFk(d%BD!9xE@jQW*EjR4V1U{xODgGE?np$0Ti8`4 z!>FbPo$XDFJOUNFgzZ}b<|=oWW~weNU(w;j*h#JSI6U&O&bk;^p?Lx8$?<)Ksb@&E zox`L4qG6r!dHo{iR{^J|>Uhu1oppMsjCk*(wCl!M+X}<7 zY^2_c9Zo!71NOfvXCK}Dkp7A8plR+Tds!>7I46|OjHpsa7 z>PO?GnCe80ffM>n2g+{_h)ybET)TzG{VelYV>57i4@Nbq1Y2b?@-V#-uE&$5@u~6D z601L0->T9YPIr)&L%fI>$JN+uZyn7Wxis9nw@XN?pRC;%nf2vN=w07?KB{04q)l>R zORw2_D^|9jjl5V&Cwt5A-Yt*Fkc-alzh_^C^d?r3q1!0s~BmhDzR?XRk#)I;T-JmZAHK`VnK+DM!Yi z#MP5uXMDO;MZRUwy=n38w_W89m;36cb9sV|v8`tGgih_d(xtS^nN1hCgYU?SNJ&h+ z9;xysUA&FFvd9{*hjX+|4bIJqtbcds`3_yuxJge~;6onHn{zrtm7bQm;=2NWTpJ7; zZ*{nFIWpWdvP`WkRwJND9C7zmlhe-1iu4ob_vt@K*z))%)y)`c%Zo2ZYmdwJp#>JI zKaLBKhV~I>cxHe4)Qj2W5x$6b8FXY%_RHm&E)_7(pKM2~Mtb2#(*UYlU+b?s!^>lh2?wy3R5 zswl}-uh$-)G$ULRff9B@*zEv;wT88>rw;kIV zWfwzB7*y;`(tTQP6{;pbtGc&6mHB1(Lc8TkpJBM~Vosgf5%#BL^X^nD+S?bt{?MD% zyyow;)ycYkKu752tO0lQnZvTD9`hc((VaPZs^A;G#^$}_)#(9KHbxHfYlO*^iA?ES zb-k8;zt8@A8((#LMuaKw^hocGy!=77Z3nexM)?j*e``tLQd3ODlLl`B+m{p~y-HYg z9A6S=OkZaqedwVa#+M~EXwjxqF6^2{M;`HYvv`>2lVo>q7P$NFQPNPyh;PTr_}Cc{ zXPben>#2eJjb*&|W{Td(Gi24{3}Pz8+W(NyVwZcxYa3w|^X*vw)$G`}*Q~1DOm)`R@)(UA`U%bOBg3JBzS3jv z%AP!WM>6>qObkmdSd|Q?2Az-3F<}=~D4+YNN-7BLqRl+2!y*PW$>Jq&JJlm1OBFNN06G4yF);SGz64_Nb4^jrMKdmeq4oXQ+bzTBL9 zj;FSJHa#?ER_e7rJ>4%J<^C(J1+4S61>b3=4j=m29~9xY`YvL2DrnK1i}gXZ=G(Xu z0eYo{$ZtDpaGkiz@hqg&jKhcRDkmB)3;CXH^5D=7d}aJzXRP?%aPjv&zvN|f7l!Ux z-3Uvr<0Ebjs8Y7KEa`Le0$0?xrj02-$YJ54N(~eK(lyMik}>0bq(yR*d%7ZbAyqIt z>+z{k!M!&YghQH7^F1r#J|Su)l653>US?Z$(Xhk&pc6mpN_=19aB(UnQ$acYg_4hK zL~=cn1?ykl&#{im=f9B>vZ-g}`Ip(J0eUQZdc%CqIo(Q^bH2{I%oF8%&Zl&2B^n=6 z*&jHt7{C10Is07NUKipGDcvo44xUTt{9VT4-ocSRySoOqTZNyI*y_3C+lAQ*DPKQ5 zv__fDj7z%bCbfc#w$htqJWi&wP6@oU`6XB3 zhMDLTn^+-*tZM`j4*Tn>c5=!stjKKl*8##4J)KOib(X;}gDRTxn4Jo9)M;PLI1QgC zbiI7Hm#R^%@Ic$pty9G}8|kScg1ky2`g`x--(5|{Er_`ju*EaCnkBY`j*g_V-kZK} zCU91c@XPx4cQb*u&L`smdn|S-npL&Go7t0r)STgX<2i_?s_8;D^LWwjyKfiAM!@3-#%*@GC#4&)ntCLuy=G{ z)VoEGVw;P*k``e4ECp3M~?GqgU+ulO{Io)Z-c=&nz}|VrJ1+(R)~I=e>ryKjPJ~f-ToYpdxT~BOJu$ykTXILB9QW2*+jjm!u2Z zzwKw?)gOsYHXB)d^YMV)SjHF~%gNwXl961TMNlut$nkTn9Wpk`-P;x2kwvfcjnbW6 zXcmsPA41a)-x+ZGu_XTB0cJV$EQ_j_EStaCqs4EreGQKDyTUufox1X>hz|L8w0H2{ zpxybb@Qvo%M_dd{q2a{f161yWtIyiJiG4?o+3x&W6x(?Jqo!kB*4N`_Q^Tm!jrWxW z#KrS$?cDmhDjomyS)asg&z-u-L=Ob*r4Ztya`xG&BSf3AXK4s}?`>AZ3q4a-AI4Zl zcD1XV??kwBC4aL0*g7LA=W*wy3*D2C1_w=a2(DM>c8?@KeSfGhuJH8E3&JM;g}z43 zk9rdN(FxWXsxmt#`DEsQzS3~FtV^M}l!gCT9M*?T@Z=Stvhk;T7CwYGwbxE+$l$-+ zcyzL*Y-eA}ZY~Sj9}-(J@4nq|u|YpiBVATG7dxX&r6a3te2k>n9_bUZ@^~t^@pHMD zy*U@XT4naOz2ClL-)-LJ&}?+%6Wyb+!Nw?SK@O#T+_y^xjSriO#yC_3e>oZO>NH{a zjs5$IE45KyPkk%-VOky<^f|j_TiTAj;RSiAk1E9#tdk>G?gTY3l@Z=D-OnzpZ=+Lm zCeA3ZeJafOl16`Yx6r5IAl;L7&B5`nOpm@8^2riNn30;Wu6{`6rFh>J|1~^A{ef*} zd+uQUR;u%xzgbuL_y-<*j=U65?CRxmD=+w~<>d4|MU?l04}upG`=V{qsiY>{n(Hp~ z1#l*-`6|=;sO|0yt#K6cEjZ;HVRe+=vh%<}1=%+ja|i`Fjv5~WJm~KA)$h_Gb+c(P zFfuZ~nHf>Jh#M{#^NbW?W(j5sx+)Ng7UDBJm$97ns$(Yd`XLKj(na&)y|2Laum3xi zgn$l>{Oq4U{-cVu2`LZ%d`j{w|6kLupV$BK=l?JCKW>7Z!2aX@$BXd032>9I?|s*<@|84p?SfAT|U`!u?nEKdz2FfbGKmtN(FI59I$1`X8@S zB_HN%ooADuBCe~3k^XP=KMtBtqAbE+@#F#90|N^43V{c}|41QUBOf4z)g;w^A-^Ii zmH&b87CDK8{j2yRfA{W^^|!hFtN-)$8`A>(SM)~v(>wO>Xa6(%KlkIq3hD|T6Wq9d z|2zD9&Hr)V-~W^QKfee@Wxa}UM|?*tAhD|DHt3Amx+(dH?T^NL8eI(m(J2-JcXjy0doT`p5mhUst^k_TmBj z5Pm1k@4P9Y~2*<+Nodx58pIdWCY1lS=KFHgG z=at}_4U8udqpIp_J)il5G4hUp%xQ2A=SAUB{3s!Cwgx?z;J<=%^)2Lm1y3kw8o$N)XeDHN$moQ z{JAhf6d?{qYLx~Z0my-oF1I2)d3|{Od4qUEc_Vo5^2YMU^Ct0T@m|4M__5if?9!pq|2@e26e_`P^lyarwq zuZ7pf>){RXMtC*QLm%8L;68a2?BO~HT|^!AC+Zn$6b(HMHw{0H7>zuQ7fk|9K1~fx z8_fXC3Jr>unszs>DXlfF6Rk6?A8k5qHfcgK>$Go{66+h$$BI_g%tN$JET!#?-;o&D6^j#@x&NiFu59l6i)C ziFt*Yokf;KfyIu+iN%e@izSF9jHQI7f~A|Kmt}xuh-IDy$I8!2WYu8xV)bLqX02eY zV;y3pX47QTW;@Sj&E~}B#^%N5$CkpD&Q{0P%+|ry%{Ig~#x}_|!?wh>!j`~Z#QuqW z4D<`k&mqPk%b~zw&0z<60(Rr@;wa)M;i%#0;OOR<;aK8W;UIFVa_Vs!aGG)kafWfG za5i#wa1L=UaiX}Wx#+o=xo}+kTw+|RTpC=OT&7&-xvp@zad~n1afNY3as6$NOZtoc zn~%RRtGcKP$6u%r`)i5elcc}sf5`X??P8W_S+qP_0qu<5joyn^MQfln(OPJ2v>w_3 zZG`ST*n4pB;HQJ*2WJj099%hw(WKX81)a4MG>MuLnzEYPG^U+1<5;QZ0 z9aDj>LD!+1(QW7sbT_&eJ%AoUf1>n3QAf>B(?;z~*Fil--Ax_ELQgY5-AIk152KT( z`D=^+C!ZJynh2g3yd-EX=pg7U=ppDQ7$O)Y7$=w_m?^kbe2=)gxR&@yaTD>2;@09f z#RJ8o#1q9c#S6tf#LK0Zq(J{0f{lU|g3Lm#f@6Zkg2RH31?L6Dgh)brh2(`?g*b%- zg?0+b2kNz4pp9qPsrFK-QfW|WQfX0XQ|VC|P#IB~Qk|!=q_U=RqH?41qVl5( zq6(vmqKc(Tph}@ir$UHhr5{O3N(V|T%ifhpmQa?flgyELBvC6dDmgFNF8NOKu`F7O zRjNh$iP(VjH|br{d{P)09vLaA=Mt|a+GKY~9h7F2>zDW}L6Z6=u`JOo)-OgS$s#Ew zb6o0_w33XGl&~aLQb*28>X^(X$&1oEBt50}Nrp-B$vH?lN+(JUi^<9zlGK&Vl`@vR zC}|_r6k&zH#7E$h z=G)D8kS|&&Tc}E?NvKn3P-t9eK?p-+B_1Z~6U~X&h_{G1LMwI`b_{<6cLvviMG>e8 zW>{u%f;f#hm-vL#G2Bkvd4eEr5qk-H6MG0dkJsnZ!71V_33db-913TEB@#;TDfkY& z6G0Bwj-|p4WB22n3G%o`EG>6+9nKmM}>~3CCf@2o?BrycR)Nyh7X< zr-^eTY{%*0_TsJ(gmFKy-q=&PeK>1^7;Y8ohm|MP;C1-+U>{@avCG6*{Bx`p_A~Z4 zb{cyXYmH^VvEevz3IraUByKN3lMsb9GLkuED5MznC#3CX$;a}s= z{A>J~e~mx$|L*uReb@o)2P`vzop26!?sq418$W~*H~B8{UFUPaSNjMar_{cyEvq3(9Hd}1d$n4%Q8iD#I8+=ejpCUovgf17o`NEK z4vOrFD6)5;$liq_dohaag($L@qR3u>B6~fm9`zV_Bk*eAt-zlHe?##B6xoMSWdDF7 z`)AZ=)ELD*NuH!>6xkP_vKY{BCqR=SxENT|D z3Y->A_7GGEsz9_rR8UM%Y)W)WltGL^3;3(iM;4Tm-5GHU}AWk4%AV=VlK!rf9z*B+e0&N1X1>Oks3yceZUK|Cf1nC7? z1UUuy1%(AA1a}B(2p$sLK~f^wkeW%aNN-5*NuNj)q*l?_U_Cyptw{pkeXt&RYish7 zuM4cl`?WP$;QIyEg=TGS;8Ky7==ZXam!beH!H~db(Dt{r)@?|e1m!`id)C^8TdM)I z^X0FtRrJ@k8V2+JvyIkop~Amyqkp@F;MV!GU4CzqGzh{CkU4$ zldlM@A#9xyydSpw(fslJaGm17I?M~~5Zot-R~J^7R{z2Olb=<9OF%?GQoxDdg+GNq zgMSzQUVc%2DSmDKll+hQ8~8u+f8qDw_vH@)a|!3S;xFNU%m1I9?)Q9b!Sc*d_7`#v z?j-^wf&Z=Jf=5^e_*UWF!bgSmgbjsVf!`O76D||Z7A_R-1pY#}4>*+wm57kYsPL%p zknj)SE5Id06o4xMCy5*q(H1!c+(hJx$So0D5qIFxB8eg|MFvEAL@I%g03Qd=Ey^b< zBDy3(D=IB2FA5J;q^Or@ps1OsrKlEgT~QZN2hkMZtiqzg{K5x>_X%4Gn+pdCTMK&& z*9tR=Obg42JQtZ2xhEPSnkA|tnl5r(G#a#IAyO=|Uv!sfok*TY9eCy_94X8q>L)@c zoClUpNTgBt%vyW@;nTyvGXYK{RHRkBUVKsfvv`;Iv^YwFL&R5xPI^H6-*ldC?o1HjTlq>x|b>AbN{|CM;>$d_an^O@oHdHF)j!f&~G;fq7+eysKC@< z@-ao2C`>FS2or`$z@%W(G1+U^LG2MY5w5Cahts$qVEgbxX9r?CXdjKxz^tDS4T1^5 zh2TNp5xWpd2t`om2zrNQK{=+YA4ie>1nLCpBya=ZhQLiI zZiXWJc@)_%qR4&;MfR&GvRk9bZi^zj1B&c7QDk>Uk^K&e>>enxd!xwiha!6*DiC}Y zgrLGH&Lhhs3r@{F{SkqPU_>amVjKzXJH~)(!|~v%but)n zCk>IYcIPn<@c>bXc!+oe-p6wAPF5qFFwS7_fbXCeCLjEsY{qn8dND(oG0YVzJ1S=? zB2^L9|6jjgv#EkLBf)hSZZr<9t;vtp*EG^3qQ$_q0CP=C&1;%=nzuCFH2?kUJLGM! z{wfd5tiRF&dHvNM$mA_GhV(@GApMa+$WUYi@-8wK z8IMc?_Z!kdE(@6p{-&b{`3PAC?iHg^)F>lNGq@M~7Ti0Y1b^j0hhjv*nF%5O?bYr7 z>Kr`A4uK;E^fU{O6)kWqgoFM24%nx?!Es{^_WkoOOb4e2V`8i=u@-pzN7KWxSjf|pM^S;Jm;5m}J=w_9gQEgu$nC??S#AP?W4Vw= zrh%id!0F*gX#ci-^74beod34`e{Y|>{Ge}VFo)mk?+1?7-|G+C|NHd+cKs;}48p(N ze*cl_Z}B?vy71oTea8Ehmj%m<<;RL(rPl6qky{AEMd4y`3AhwoIxZWRk1N8J;3{x6 zxH?=Tt{K;c>%ev6dT|4|A>1e27;X|bgPX@mi|+?}wKBF8%;z87b2tg^sGUX_B88B!LOp_nqt^YHNi;#9AeRE`vap zE*5R8-Ti*&zIR{(Y4h*%e9!ZLp6~P3-#K?V=iGD8UEj%&MBa4Mjo06}@8%iTF264F zHeWm6{{78w|NiE;e}D7azrXo^>+f#{ID#GbIey@{-|<7o1C9{KgN|vAha3+(9&t=} z{KzrG@u)-TP&w2NjYI3uIrI*L!{{(M%#Kip#bI^W9Ck;T!{J~K$r0{|a6~#DbIf!^ zIUaY+a?Ezjam;nhbIf-<;aK2U=vd@f>{#Mh>R9G@(y`p}l;df~Gmd8+&pDzUF^=aQ zD;z5ws~oExYaDAG>l`mQ);l&hHaa#rHaoUBUUa_`SXlF5!_u_M{+NFFIKeW=B)l(NuOc zjU7#AM>E*bOm;Mz9W7)>53r*htUrVGXR`i1tUrtOXS4ns*1wna=d%7h*1wPS=d=C- z)?di__p|;3tlz`>i&%d#>n~ybrL4b<^_SycpR@i-*5Anbn^=D{>u+KGt*rkL>u+QI z?W`Y7bh7>~*5A$gdsu%j>p#psbg~b3vJYd~hc5PE9Q!byeduN%Ca@0^*@yVm*9Gju zLUy8ueU!{TN@XY0*~tucGLxO$!%k+gllkmq0Xtd9P99_@E7-{@Hc-R{%Gp2#8>nOh z$X2s~8a7bN2I|;AJsW6X1C4B;i48QfffhE<$_5Uxfi^bK&IUTzKqnjA$p&NDpo)Bu<8|+|%5bk1wy=?F>JLP1jTp4Q)TQ_B|BBiPSvwhjqFr2JJrcfb+J>u?DS4{I-Z?& zv(pLebRs*Q#7?KM)2ZxqIy;>ydAn1jGp+*ZOq>(g3B&>}AP$HJ+&}`52qXc?0CeI~ zfiz$jup3ARGJs4V3&;lc0c5)n*bjJsBH$oU43qyQDLR;-$}=v49Im2lfD2(r2-i(r0eu(e`I(`!hGn z6CszF0H7=pWm(AQc%;wvrbwTa!A_Z5`mD7`I_umC!~%&x5|9j}0I5J4unX7?qyrg1 zCXfYW13AE6>1-_Q#2y5SffAq;Caoo%?00F@XZC^T=2~WpIq?Al?&tp`+)<12Y_!b_~wFdF8JnxZ!Y-e zf^RPP=7Mi7_~wFdt{MRTx!|9x0f3LLCIEiA;G3&kI-3dGnea6e`8{YO3+?9D0jS## zpFPkmLVHEX7bgH{x1<2*l+IQ_t`coj!;c#DrzTH2TZ@?26-s9t;Cmzb(}K1RA+DW} z>ui_KcB4OsyQOm&pL5P!phG&h(=DBg&5_QbPvwrVjxvD1V zTurldu6~zvu9;8^v`gn&(SExVKzr>jAPGnY&{lgIfOgwqr@aDzPCM+h!(Kad+tFrw z4{%sI*8%+w$acW5PV}QQ9zg#(Q-Lf1ed;U$;7@0#bgm0+cA>5dW!=#2&XCUaK&BVv zz0m7L`@N9u?E(%<=P|d>JFBJhJ3FQGv3b&Y%$M`7eL%T%KCTLY4A%Df_;?@<$O1}$ zQUEgX6+k5b8}YS3n{?g{c{l93A&>QT-klBP0DA$n;fB5&^6na-6@X4c5|9cM0Q&(C zfVxE3N^}7U0Q3_J0koG0e-pc;^GR+1?Ibk;u#*fs$@xGr&wEQ#t_HNk!jMVJ8)SrlO5h^gp#7fc;eTKW!%v2S6?jcG5Bc#32oGY4A4<{-iYk zXfF+R(|Q2t?LrK89g@!PhX1=0fn)%E+?m&SyhDdk=tqWW#D{2eB`Ly&}Y;2!0)eor4(LgJ`Qb7l3Xt+AgjGV51oF#Tcs+v|oa@OAwb5_*?>g z>;>mb;8O|aRte%-iawO0&!zCM6frMFT`BCA!)`g+sDPgpkgY^{Wtnuo3h~F@alQsV z)bvW{YY~@P_+N{u+awn zHu%#9{WgqW8~nsRa2{*^d_uF9F$TS; z>#dc}A4Y!;qko4{ei(5*+#wC&d>e8WNJBeYrJ>lJK$bM*N&s?!B54TskD>TDfOsmf z3-ACHK&Le1MjmJJ5cYr}cRkP~4Pm_x;cOpDI3x{Wy$>ZqHxV+4`9K}e0-!D_1=s@= zN<+!nK%+E-bv=}_8$fvqd`amBdZnRM_>|fs4W+?O8f4SZep;6_w95s+pIw#G&~Es- zJ05^9>F87XL1`!h{mVdIMjHS-nfm~=w+FIW@HY#-V4V$R=KwW8yEKF~Hk7j$$OB+2 zrvX5$_QLjFw1qV`w6_>2m4jM+iR z9E2{`=}<|QG*lWZ4VA&aa>!I5T>+a_sH+CAMte2rdkuW9LA$k(uSI`qAzzCzt8D|& z*E+OOhq0qKmEHV$=RoVp;}g?M+tb~pU#hCf&zL*3|459ALc{)el9UTN5w59|jzq~V>( zKsC?+v;jTRFwVC{!-*9@ z6#!d_t-v9m3pgwdCnW%oOMsGglhkgFfy--JUXO zI14&iD9gfcFv=ZJM1;4Wpr)>C}jrOuppM$n@GNob6`QcpjCAScO zjl5U@ZRVlBd5GOU#AhG+oR2nf)(qzt1LXk9G53cHb^`Dn=gx2;`dbJ&oIS()A#(uo z2Vfs_e7FelEkZ00rUDt#a53bHkuHXBB~<`oQ-WBPz)zeb!=>nJDf}wU0pMFH+9-wZ zrSPQ;ZI-10uvxYnfG=h30CdY?7iZ3JIohf~j4I(%CCVxxR|$VB(M}cgs}R#__*o6z zYK$G$&2SxL>LFi`nAW5H2H3-SGTaFN8{uaY;?;z*X7FbC)r?p)qn}s@!?;Thw?MZA zKDVIHEg1h+#IhAJXocJ%*f|8?g(nu%8Gytc#Jv1JX!R9RT~d%Z((p z10B*xGHfSj0EIv!02|3Y(nv}vP$rF}qC6Gtq#lw+(%@^_9sv1WXm1zfcEdm1yGC&D z8rfX{lmlo3_pOn1)MubRW3M!_2W{^`*&f*610S<;q>=0rX=HC2fSBNpG?EMZxv-my ze&?Y)FCBo*JlMqC9?7egMzEic>_a;Lpfpmj3qb!1QC^6??1zp0uyvqF8u1_o*q29e zZyG6rZ$*f05&SNW1$G1QsdzsC*cRKxdb*s6wZ4eZpwr&`1x_o9(H#HgW78fk>hM)aXE8-Q#R z;@botn$V{v^rIPi&G4}~0f1aH;@tv{y?Ue-ezjt5U~e8dgg72T9I-c#v?1PYDDQ+m z?kpo+S<*;%82}%<(METdG=e+HNH1*kqR+jM?QI1PNu$nUpj{fp{yVy}5@-UtrP0{k zKn9Q{jp99b6z{a7cpn{g^+==md}A~&UmC?eJc@Ug(fBH96z?6Q?iOh@!40GW&`*FI z?iQnou%Cpsl3+JwFOVyZrp8I5X=rnIhcud=EsbWkNuxPVAO)xekk2gu>ZH*;lwm%M z=CuN_l?OZf(9S;iz7KZyL3SU?_rX@a3pfa%F24dmeLm_7kS{>r3KIeNg)@B=XZmO% zWDC*n184*L-sk}jfcCNXjUK>P!7z_TJ@EkQJ@DHDSx=WVihKAd&iBz`=-~c6S`0hI z^#FV;K{@W$qnJ0NWr#~zIZz{wmd65!VR^4KT8Wt94lr5`o7K>-$plIP*r+uF?V3!b=xAXx=ONIP|nf5lxHAU%}o-4%YJBniSL zDRm&bszGw$WJy6QhzD+zG#mnHLeEQji-@4{(w%Uv)YU|!86+-`2&IyeK++3Aa?!2Q zefvQ2@uj`eQZ!y#1&2!O&_-#K6QnsEq}LsOp)3J%Wr+w=SyBQ>3hb4o_JZu8iY)k7 zmP57sVW4b3Tq~=Ay)tsGtQnmyYlYFWZiKz87hx)Q!QJxRh*fzWG|CU6Z{?+MsJsbQ z%DWJ?^6vWZ3l)1ISFslXt0;g-MLoh)(b^V%p)wvmS0*6Dm5K16G99KWGjl+4&}3yz zL->U%7eZGR2f3<5N+lzvRl8uXD%Z*GyN}&xXESCn<#eW;!Bo?k3RKBdDyC91m4>Ob zOr>KgJyRK&%E(kErk>8!GniV*)GDS{Gqr}PwM?yJYCTgMnA*tHCZ?IrG&7h+$uuga zQ8SH(X|znEV;Viv7?{S$G$y8<&a^X_R>`y~rd2bohH14-t7BR{(;Ar8$h0P=o6dAI zm`=&`)0ut-GfZcO8O%7H8D}ulbY_~ttX5{fkJ;_av6!(J@$DWK{x}O?&ca_~k1_Vx z4mNW>o4JI|T*GF*#-gHF)Z;8_F^gKlqL#5)jLn+GX3b%&%Y-bzQY@>#4bg+#}*v6%7^9$O48;TQlw*<^w`YTq{rsRNKsKy((Fay((HHJq&X;?gR(jOmD2qAbATn%{6!Jc zqKMhjBGfH`>@pzc(G|c}DduRe^nA=q(uzkn1KXq(F&m^68`XeDS_!@qeAP>9q}8j} z0UM+>s9y{F>(;H4*2CU=G-%?+E^NE_hC#&sK{jVRxU@{OA}NH4{#lwN_( zcHrFx35b-Ac5jmUyB$Czumo5NtN}Iv8-cCi(^SfbKvYE3L^MRSM07;-L<~fXL`)!R zXeftcJHl0;Vb4|JtskTyF2D66HcmaL{zDtd6pJ%IYbr zr>udp2Fe;JYox4^vPR09C~KmuiL!`$RCvscjWfd6BgElbD1~^e3;(3_)7bD&T0SWy zQca|m$f590dO=R6pDYL;C?9MIAE+3pAyP}Ejz}YsCXm5+B5ooHM3RUkhYwVdMipsP zkwz71RFOs%X;hI$6=_tFMipsPlSVbkRg+vb$yJkFHOWk zS}LohvRW#uqp~^@uA_=Ns;HxiW~ykWie_@HnVM`Sk!EVBndF*Du7%`UNUnwCT1c*i z)=6cZC>z{~GLTv#bs(q(Ng{&USgMGnvREpMr83t*IT5J2 zsMbYluE97WkaLloi{#=+E{^2lNG^`#;z%S8F#v&F9LdF#Ts+CelUzK>#gkk-iNuqL zn`+%u>!w;a0s+zlLUL}5Gzg5kNyAMV38axgwFy*~KxK)Tj)TcmkxZtN$y73#N+wgu zB%Dm9lF3vusU?$IGSp5d47Nl}!w*p(A{xu7i_>^c-JB+Hn#5@er>UIo;&eBs>6~V8 znhA;@_Hatp@WURW9fd?YNf$q=A=*_;w0kF~q>CS$a9T?=xrJyN)#AqsMAOrVW^@zH z&nH@NfM{(QC>A);f<#WKMSLho)Kf*Yfvn*pE22pqMDwY2d=Nsklzba5rFQXp&S^8z zrXr%v6al;*JrtqD9;S&D%#yZd78Gi z2o-H>5h~i(KzW)rwFnh$Xb~#f(Li~cwzCKoZDkQE+RH$B8vdvwXlI32pju9Koa#9> zaBAe#6rtvxtGUl=?z5VEtLEOSxu0t8r<(hz=6ntQ0`zNxuaYVMDk`#@9| zq2aA)xP1-xiYUrKjS*U&)`99Hh#DgdoH{;B%-$HWgwu_nTO+AQDrF>oBAvZ{O(ZW< zN7AM{m`n^?SL6V8)xmg~CCQ8zV*8^UHb7$7?qtSAWIbA&D5TXXvpUWONraYXByFpd zBStw{5{wthB4~!{&NgeyEoa4=6 zdmVshU{r{Wl}v+?WGihqoSn`j#znBPQXw&jV233=Y^9_JCUR7Vy_9m;O??b{ltUf1 zQz|5eLSo60w3VWeHdD&Q4#uHb+D2iT7}XI&9rjGh5kn5UC3;JY3W@PT>LzmJE@!-u zw-6`W1S3g=idrC6#~JA%C)ZJQNn9?ZP9uktjx)KCLQW15!=6jVz^INGS|`TqxE1Wk zav?Y7h8~H?>eze9G#II4*CjpdyPSzaSu%MrYoHu;U{D~2W{IH>#2RJR#2Gg>m^J8@ za|tp_lo?uwg4{yZX<6j7EOJ^FIi1c$PG?7YJJP)EO_AQtYHw$r%!(qtU1{D<6!tj1 zy{%xe-rhE_RGDSSEJtSfob{%2$=*ykS0J+@nU%?`n%HN~Cj1Z9ivJ@&ORUEKV0HLE z^6bv8vpZ8F&&DR6jZFrt#kVEEn(;qpuEa=uPXk|<087TVGr;oY+yQ*Y0=X)D-2$uz z-^_@_Pw>xYrbgliq4-%#K?z9<5q!- zA|>MRU&73RM%=3s2jh@9ol2!MX-(4_oCy+#VNaMT&+UQwnS+TC#*&DVV-AWGg&qG# z$&m*|ih_^-qYwuiy@&))b*75c`IJIms?Jx7pCgL0q3pfBR6&hM;iU1U^5xptgZOp} zz62A6FYsW<@bw#{%J9t{WRSwZVU#=M6y!WeRddlQq#8+=*Fv!xV~?_~i&o@RVidl{ zb2c^)U-m%?6DW_j=GujC`5=$7-P~RrQkfTPk=lpZg|ci+9qx-OmzVXRESI-N8klCX z_aa3a`?)>z2q|h~x1568^+=(YLIb@-=Sibp_GR|P@jzns#eqO#HWx(?v+)BHf6+wh$*B#m6v@Zh1-wIiU{OkIGZ96ZyblL4RC2sgBs=J$p2VUj z)hMEUm#fS1pd!SCOwg(&*P3JGTSu^O4-58fRKdReX^OWz!CTfF$a(o*@Y)1#4duaW za|EaIx=e39@p`wnj_SeXe1e>BI_z!EMtQUQ5-0sux3`7l!COhcH9^j|<$2o<1Wq~Q zEIs3_1FwlcQ`1U3LGUEOQv^>FJVWqK!Mg?T75uQwYh#IDdm$sP5h&-WCSNKo;X+1g zFO^X$Z7-!VJAj6Zsm_b39!ll31NA%wIXP9*dLg5vA@Dlh=U8-m(sf?y)^2ZGa!`2q z@?)vT!^2-Ax{@eeoXQ9H2%aT)c1NUq^aX;`$w!ChuiXP)47 z#OdfGP6r-wI`4?naYvj^JK}WM1!7ketKpW}T(yoHYzg#jUVPiT1vyMAED~B;$cgQh zw)tD;$xWScxA8ty24clxUSrF_qNDkL3ktCK_=j=B}Gg${2v?WmV+L6mE~Cb)mK@G*oZieIgf+vB;q0xMBs`CV=aHxL$jN!fQiwof9(g*CJe^M>^U2f#N-dC65LrMX z3rJ)Ed9{FyE~I`eB$0*3$|#G9MU-7cMi-GAi>P9eTmfGek=kPNWigpwOa>N{LyO6w z#mAC~z^lb%U@wNKS4f zqnpT=O;omt+}K1Fn@DYwTnpVzq`Qf9HuaePMNn|^fZKtvwB)o%!caZQ7va*B5atDd*kVW9o4$|F0y04M& zYb5*{iO_)z!Ydj(Ccj&8%-K(LC(+}v{gdBwLxE@W(Kn40{48*EKJ znn|=j1C9|zEhr>G-9(Sa|7vo7Hm}X*wR?Gbubk$!dAuZ#m*jEXJg%FE?o94Kz-tfi z+M;7wC@JM7rM#q+%a?NbQZ8S~Yb$weCAZ(mWg59mBQI&?GOb*ujhA%rk`7+d!R0%+ ze8=%vw0M};9;Vt4cOKirDLnZwp2|U~Jf5^b(d!T6N$bNTvixBtugxUiPPjQuCz%uJ zJiUi%Pw@DFQh7En&*AADp5Du8F12+cms$ZO$y{E(k6YN!)5W~DnAaAIk`zdm^K><* zwVXC^nFgM2<`#HNPPFp!R$hLHrw{RT8>j8uhj!jdJFji$<(=F@FQq?nQ7tGu1eHtR z!$%1`ox*7vr@VI`wP3MK{-~Ac$Gk@$^Kt*Uf@D6fB+9RkL=kh)?2gI!Kmuv{$m#gx z(>poM zr<_Y9#!VCB3f$d!vb*z+qltUkgq1hO@o5UbO4BaFKkr;V6 zi19kNT*rqa<{0l^jND$#F+LnIavz8xo-5?xSS7bW3|5Gt1!8Dnl^io-ypD%pl{_5l zA;W564y%VmP+Rt#3m^Xm%S~z;FNAIXc_A1T9`2<={0lt1P=IC1EQ_-QxiCR4Oppr`UA!(aQD!MJ zE0$TQ%(^*Ck|mSk<(#aLlqTnjWL6?GSud$c&Na*Ikj&a-)+w_tnTZy9crH0sW^#MU zZaJ4AvkaNZeMmki=PG1YDYI&s$*m{LttYq0g{@#yaK!C79{+3NS)6Ad+k+rZ!EuLe zo%1Y_&*J&LLVmB1&lB>*Ngfzw`2itMoXQUfIpUNr6?x(!&-E%ryOpBd zMr`BccO$lKnallX^ws0|qViVJ9&xhQD(n-de4DV-ChW9{cG`rUHesiOPuMB_#7PgF z`_&=r6PL^7{&$FWh|A@2{|^g!;#7WE$Pq^#hc7J*nTtHNgK|DDoXh3B9prhOIhV_M zJ0B*={Q~Fl0q5}n=i`inoyW&pQsFJ>zHy4Tq(SgznK!zsnZ*l&p)C(8X%MSnJcJ9e}q>Ye%l-DXz=cldo3j(%OB=z1tEf1w#eIMI??$JP|jM1R{whl1(D_sDHzRx#Q#bP z9!z-#BsB&kZ57C_bs)Ppf~3C)lCcdWbBE+0qx2FP9!xWY=)POR`D;`-X2;Is;Wz_` z(rZpQ_H&~23KQN>uPsCqLFpwWobSTn*jp)0J83xfN22t)5stlyDD6b}X4j`}I->0+ zqTLbUCo=>+JSY5QCQt9-G>g;hPdlvPC$o7vhtph6^FD2PDEwp|Pw(S2Ur@4Bz|;FV z^>A9mX)&iIf|6tzPnUCA!D*#TPwspo{AA_H*u~)|t9VHhd5)`l$}>dw94DH^X?92W zK*M0eo8beEL??PVQVF^VlVk@SJQACnLnkN~E_Wo6ZdI9KrVrULbgp;0Fb- z7Q9~OWkudH(l0wGc)iRka=aB(Ua?p30>P^VZxXy+<~2p$8j`O$DD&PXZ?6+SmhWxm zT>eStEi*3^#_t768!46ROSwBPraE~l$_xFTMyMV{vRNc&`*gtTn*4M1V{#2+a*bnh zO_Y<{^I5r=<5t|(Tz!+vflom|+(Z(HBoav`QrzLfn_ZAo0; z6-MQ_6N2If$SKma;y6VK(o{nCH=?ixO67E>fWn$vKE3;8zEkE{@|35IK<08eZ3S-X zJ1-|rvM7b=F2yl7gBu^0`dBjAN%kmT>D(5G&;3UsaWzJ=Jej>|xE|2(d zJH$yIT$Ic5h@2?r_9+4+&pG6YlRP+==Ugr)d4||&7(xfK=eP#H4W=kC0Q4ZI#hjLK zTFPk|r{$bhaEd>Q3Hd5ct2wRVw3gF4PU|^s;Ixs`CQh3>6!OgYY zT+7Y1++54ewcOAO=UcD_zjP(v=Os^ZUp=PZ1#14^eUyfxDledvRi`jI|O z5e$R@(SQ@^1H3>$2I_z?=!Ahs15UsL^bsfhOvnIXgagP|K@Mpr-~sx8Xtd`A57>h; z*bN2`1DrrKY&!uD(tUu3`~wfjf*cSAL<3I11N5Q358Mj`XQLj72AqHg=mWe!Ko07G zFd!Q60AA7s4=6(&5C%j8UMky*G9V0y2An8&f_s2IzzYQDq8^9_oPY=LQY?rA0ePqg zq5&u1p)~ac{y518*bIPNFv|M?FUjmf84wJF0nvaH=mWe!Z~=hXK)44)g(DAOLoQfiNH%Z~}dR z7YM*O2h&)Wg9BkeG~fh0Kp)^GzKpzl{d^F%eos&4whqRaKk@f-s=xZ<#26)K^=3X!mfcBzM<^()c2Lv2M9S{aY z15UsL^Z{NVfZ_y%5hs0c56}mAfq)W}17WBO1CJ&da3|nF+5_GPgwgz`a&QmOM;z;< z5AYI)tQQDIIt+*goB;i9&w{i&6^jBw6vXF)|GxfCMF7^_;gwSrt5LtQ33(y+w2)f{ zelF!sMVR#wuD4Q@ZxDQ~;4cfl1w0z|N&e3bcPh3c-}q6Gg8r!2Urq)og1~n+1u3YZ z$wz|}^h-xSoi$aV0uO%mcCNSjH$jT2$m6$IE9ei8FPb-1p#j&vb*Ewq_~&olslcy^ z4M;>gxpC7J#47}E0RLd!R0aL+TPpV;AN;%96dw3P`E=wxKfXVtc3Qxt$lgAdr`{?>?oRe<+>Hcc@Z?GosT{%MF}B{+eeupeKRhYphUygpSu4PPnrT8t@ z{!b|XZQ++n{zZQ`*Y9~K@S!pJdH9QY{tx{n2LJqvfiI4cj}D0TuMSv^|NNhuC*3?o z-yPuguMW5=@TM{L!Y74~k^eXTCb0i=PvAXcsys zSAfeu8xS2BJw|?G;Knie&4HW824so_=e+uPx%cC+!}S&z_V$Cja+Ie;<>l-%;6_UGdO{s z;CDh4E^q=p!7qd;=K3{kAcj3dyKzH6-gu;+2sqMSfa z^qLSw6*z&OzQ$?%Jft&`9%s`u1^poj0zD&vA&MKo3G_rakF8&edKv)VAb9b9;orYE zE<1ndOy-6J*>aiwh0F9SE~`(xET4W^KKHVGKv0N+PB7mo7L54$`{%h#KKL^EfEz;i zc~56PJ;9gd!!DB#yR2S$S$o?rYcJrkdc|dV=jHMZ(-gEr`F5$WmT8LbB2S>l6C9#= z7@WYLL(>#$Bnb2bUpD`|KMWaT&+~W)zxUAHhn{Hkj|R*)XwIiY6miHC=!u>cqIeFR zKu_>TAqu?61`z0pzWYJNFOVkir*oRZiUfh4;5$MT*MSr0>4Sgt$1{C@Krwlm!xn*_zO^BWW#9z=CkyvJnrpuV_kN1|7S=@r&}#@=Es z6GnE~IBkxRsvO&XyWhI|E9MaO&(}xN3)6=vZUQHGLocln-#YeRr(TSa|DMD3{nqic zN#oeJh4A|}-MO7B#_nOH@4-6pUx!rY|M<7x2U+sV=Nrix(dOl4{`w#I^?&9#{+;lv z_t*2K{oD7B)Bdsv+V|=%#n)%kpZnX74!JTGUhD&x$NWF(2Y>HM*?|fAw{{}`C(!Sk z{-9zFCKSOL`Jmz~oFn-5$?X%^_wRq=IOF4AA8_N9W9?rbJYGG@{@eTtxc17J{ipcm zj^m&A^$^7ZC=fiqxs>+xKlp#J?-^(O{rl&6IE3#Zw2$~6Pj!gmHDn0hmqQdk04GqN z>G1~R-U060M|q(i@wZx1V0g?me}9V*J@|6MWw#pTow{zr!y+5o_M-#_O#^T)qFdYty1DEn{wyT86?9DV=#zH#b3 zKN@>4zPt~?QJ2=Af1PiSj-FtAJn12d4NxS6Z4XiW5S&0~K0VG`uiR7Q8kze0AAIMP zXPJL}-#GK{g5Ua@hOwk|;aeNjg1^3Tf_m>b@$=W8If4GNaq2x2%%8Q;@$J8IM8;D8 z_5*IdQr0;fqG*8%A^1XwVih>S_xS5aPY~Z=3>o^j4s&;Jm= z=yCiXV}Bg~oY46{-e1PCU-3W8&%SZ={rwAm@Je6)>bHJufKNkf8XEl7^nW)3FeQ#{pfN0 z_pcBB{*~*08ruA?`}fum1w%gx0lgs#2N;3YBt6Cn^k+^`zifhffB)A)_P?Ev+b5`Z zP7t5yapL1qUi#cMaRU3f6V!VqXuo1S{rMq^2M}k1_qhW&-{)OO^2etieE0bE zzWrm_1o53V!T3k}&F^5xm1{*gk^X=1&)1K&e*Ss!S<&U6g@hG{C|-gvAviWf@hCXK z_j4J~FG3WV$P=!>-V=RsKi=Tgu&%V>ozJI+h?Z3Wr$7w%$-lcc;fS3>k{b^=`FMb}s z_C3<2&su!-eJev0I>-~8uY@S>2PgPq7(DIL=Z}5kjDLk+{M*OzFJQ){&o4&CsrUG; zA2fUM@x{kD!TJfA2vb%W=>H5*9q)PP`Gs_r_&!1@ZHIjre(Rdqxod{CQSR z5dR$g?7krWbNF{ec^`g$8it;5eCN_!ayH^#h9LXCzrs5^9$6itC__0RcdA=M-ljHnik{tgu!5akk=~;xlFTYsKqpt<`mHYUJn3ul%|J(dGZrR^A3xoLg zH+pjA`CV2P#6LGVw_Bb^e@vG9Hzef07WqGj`VWNOiw*Mkb$x#RLCE8`wDEZuFVB1D4ZT_dFJ&SOQLKE7e5@t?_U<7|F)33zBh<}UnooDHDcd6ohOgaNwFX86Y=|(;3A|3%^ zT||g=mM-$zSowQ7Cc$ljuNCqAgUBBf@%y>p1A^y^^_MH!IUx9K5&vIh%lrB#Vm>NG zyUPU65^}SIU(X2MCE6_z?Hm;R^GbQ$`1<+(_5OWTF84Ru@rWWy%+VhrZAg{Zdoa=? zzB3BxHX$<|>7E1fo})ziMe#j z%9Qu3nMf=1<+U;!=~AIPAL+1Od2KC1dax#le~)t+(kWuBS0e2jKOeuTHHg254T$~h zPrsJ`-9gI{`QIgM6MY%zmTkZJ8@c|xuo)-jhpk<<6E61GXAcJP``bJ9^1iuF*f9$| zi-^V7!q0lqk3(YqZ4vWra8UmD5`PrDRkZVwuOylCZO$s{iGj);q|_?j#1$#QpzarDVexhQwh@)d28>iG81 zk8$NL_wV|Pa#MV+jN2~V4dlm9?vm5KO8)%|-#e{bIKF?EIR{Z$?)?el#|I;@TdWsf z!@l=0U;aPwD?2B*d(VFyk1H*ajoG*t6DPcmH1&tluZVjE<#+g{FTg&GK>0cJf zdjXZdR4Sh-^!*;EUs_)!@BdWZSSPPpO1oR+^-c3*uV0#V$oo5$5BJJ{M{mHVZ?9u4B36Hs}}g&_WK z4e0yUBYtV!*FpT>1W@_$e+Kc-t?9FYQNMJ|q^bP-XjC41?Nr4*;FNygCi(r1epVXp zm%is#`8|!w-@ZeBC%YMGk6-$cd*pXADnEz!virg50KMi1m(qbDQ~7sisNDU~RQ@w7 zO5gt@`TdVR-;DB0wNAJ5x->kiqUaOy~cnD=w{u9$w{(XA-9@ig5 z8p(h^d@9E|rcEBtcSK&Rko$X7oU6|XyKmht_xIe@a-539y=3LP@>r|HzcajB++#lb zi#!%$;{!M066+eQX2JBb#dFLl$KBkFyImNtqSIB=K`zfvKG*SLbv7X)(pZmNe z{K_7c=SN|n{O^AciE`gMF8^F^ucuf(3nE0EVOoB!Jg|K=-|}xG@NERXjlj1N_%;IH zM&SRa5t#nP1B!3NSx2x__nN)Vw zGpcQ>J*p$Bk5x~rUr=vXyVXVNM)k+)GwR=~|E|78bGJs)lxqH^o1(v6e~&)ZSY&K7 zo-uyM6lQwClxfN}U29gG-!zw-r-!OT6GL}}R)*Gx4u)Q3S!j96^18)k$+GOX%(AYu zZm_;$bzApYi>T)RX3@ERL`msReM!ss#evH(dW-pU#J4qx2T^` zC#nn8)#?uQPt`xwp3uH-X`p``uf%tp!CuwWY2vh9+6(#z4Mxjm%U#w5)>P|W>p}FT z#ri4w@ek`H+jTa#&24{=zN{4{e~)8CX;(e1a;kb%8uc1=f_jGbYi)t<-@0k~r}aIC z1ICj^gUN1ogvML)tv|JXWwqH>*)nYVY?ZddwvG1f_JH{T0nsqGMfqdpUz9UcYg9$5 zKd3^~3)SzbS8Gmb{-L==d#Cmx?HuhA?HAhVI+Y>W@R4Dfaj(&1tT(nB|82U#TpRj_ z&|u4IOTOh3%YD}6h`Z7DW7{d)KgdrQp9wZy`Kjtwb-Vg~_0QG+R^Op{N)w|oX|uHV z>KwYKbkX`;{b~JQ^ivHUUbe-kTHgZt@4$OIFkb1e=qyC-x zDNT*$Z<@!no!YB)vvhlPBRaMIZT(O6*BF)>zGKuIUo#dOhm5zF7Mq-=k4*nGMVhym z+s&VuLqg|=R)>BPdWVHsGAvz|e_N(m-?WxnKeygyTV{*34cI1;-%j~=Ep1lbh3J;5 zu2MgweiQ9}t$tq9ra7qz(EeHbckLA2BHeP`YF(G^r@D`IZy9bi%`!b{iZ`{Ij+*W@ zZ#2Jc-fylq-xd0!(AlBSgdPYjvrM+mu!bQdo)VT z)0znFd~K7qM{ChNraKJVf6&?WkLkDTm8O}d6{ZKx3FbocMA&V2>!5 zD|0Z8k*adlhpKzk_iId=)tcM1Khp;3zOOUu=Ij2cyIp^;UZ-EFe?#xqXX&f-XZ54{ zFZ5sQ|E-^FxWSNbC^A$U>J5hseTD(U8N=s>KO3$!-f2`CBaJb}H;kFa3gdgmUmO2y zyxycW&BOY1nsQ8irqiY`Ot+X{H)n@-g?=4+gXLYzfaP<`P1a{@t8K})Jy>g>*>1EO zu(q;`+y#pWh+r@7C3#2g*EKeQ$EXs9>zS<7PUv({#;{(oBkU~?fl z&D36>JeChDpHaQ4s#E<_b-g-HovtoZpHNTHC^XYFM$KH!N=>%rPHmE|TGy|$>Stjt z<>)^~R30!qXDBz!Gk$5j-=s2qZVEKtZ#J5*35~LBL=V4bW7t2?#tHn+D=@9Q&u2-Ddr@hUtd;jgK4Sj9X0yOlM75<}6E{7+{4*R=g;{w(g z*n7%ARg8MCt{imgzcki+PIWJEZ@>KE0`Slc&ft94oWUbG!#2s6B3*l%bt>@zkPpErlt0)hki_n`08%-1Anda+`^ zum81SuCbl$C<6m3z!oaEVGaji9}Q7yF|ryKTSVRzgVBF|EK=DhUX0l zh8n|h!}lM%xBDZgg%JV&k`zyJ|4O}bZ=-;=!cKa> zJMGi#GjK|q?F;N{?M{29J=cD~UTN>KpSGW|hG!>)OV@x!(Ogco7JylKd)CGRi9M({HsGv{QA@>elM6*59Sq=p(RCJfUBze@4GTU$5`b|5$G` zY{CBdh2gtK{A*F;bfem6G}?^eSi$pgtN96H_L*_Sc(v(f)9t3aO!u1}GC53cQ;DhG z)Q%N*%yiOp!St2s-=@jt>&@TAZgG$KQS&VGGV><$PV+AFQM1=PWd6PRZ{}~zH-vsK zG$d3RI@xl)<%bptvtWhgdaJ^Er}Y8rqgI18!aB?Ply#Fe4tI!7>j&2J)-SAov)*O9 z&-Re*QQU*xvR$D0yhWZ54&^3gzVbumZ*h;gUZqg|Q1!6NrV3X*qF$}8P}iy7Reyk0 z_bF~{U#fquxkjtehT%@IT)Rg5vUaC-mo{Hpi|9P4Td6D3eW?4L?(e$!`d9S^5N^o99$shYFbo>*Ha=q9VSE>{m}Gj!^rorJblmhi)79p?%|+&8=C8~Tht3Io z6=(E2p+li}SwgIjTc5N(XI+Qc@}AXfi^iGKWjks+Z98xKo$c?oTkYSoKY%%5w=c3k zYu{@hvj5)xrTwq=f7=6`fdTYe+9oUSR!&pSP#Tnx%GtP~E>k|MT&a8kJKw9yOl7X} zOXc0F6{=d*?^V}eW<;r<Fl~l-3r|{oGic7{X=)1{#Km9 zFW`Jh((ln%V&42t{}1d7cN$Cv$uQ6GtYIT|sZ2wg;pc{bSgy9-Y@KagWPRG2XDzZ; zTI;Q?)-LNi)}L8Fw*DIT+ploaO|jiz`>yQ{jO>FpmCbAmvptTR?$frFwoSHt>;doD zrr4GCS@v}MXSj0&($xkrnSnUOW5iD?f1|t^yV$*|g}D8_s7hDu$9<#$H>U5Tzi7owku9rYP~zP?Cbj#>Yz;RnVijb)hK|1wsZJ~s84zX-MC zW;J4Y2)ob%+_jr+;r6q1i^g3=ZvO|$TIKJRL8`}98*x|und(|~kox=T5H(Z3p-#rz zL6`bC-Vc7OzM#HW^N_}@S%4d3oaSemPc)(0h1xppi1tfusBWHanJz(h7Ev`D;tVh0 zR{DvZrrju z5VMoU`%FJFh2pgR$`pV#aKCw#Ioo`|Txo7LPYRtD`W#N(<8-UC=F|Ja2|0duEA2Ra zN|gOrum4s)jkk>xs;^YR>PYn#b&k4EJ%n5KO}N*@;G~VzR%t)Sef23_tgcMgs(S}B z?nc97hBu8##!};rrupXQuxn2a{Xyu4&^koz-Ovw0AFw=XvGLe-TZSw*;LbYLUT*)1 zJ-{0nPy;vaQido)mFtw7m3#0G6t4P4b(8uIjNf#%ULA%pOi^d^cbyN^BkJjzFx=H! zu$w-jW!lHJOL5QJfQTew-^jy?X~Bv)uKiT|l~#pyQh*uuW8JTHk@`h=hj|^VBtySX z->H9BKcIgEJIQ>*YQtNGJ-AnVZcv)$ntE_cF`HMK)6Bmy--kPPMd&Xq^Q_BlnClk; z>Gdk$1J#$R+3HFBzG2X>*KaXSfyPYpPeSKfVl9Q1k1WTnU(vYY6PHxbK~=W8O?|g! zhUPKN8qM!CleE`sr)nS2PS@(R5!$)hE!q_A9&LfPSKF`s1aC!ab@%EW`WXFY{SLmS z3$ZGiaTfeT&kP%|lE1_q`cdOgjpvQiG0t>{J%RoGF>?$~NnPmr&@V&vmc^Dlytlq= zTZ$d*9QlH8PP`08b1X^OtURJrs0^wcRl90PrBH{fUsmr||4jWiwMyf~UE_OrPk2#R zinu+fkJ4||7wTgSE<>~76Wnxqu_|viJ&0SzQqvk!mFcgh>1K^NEHo-~tK|*LQ#e~^ z+ZWr*?1(_{BtEvG*e9P-W-E)7^~xUQ$I4;lEx41;!yfr7)jfDiIikKs^H0t7+S|1c zYqeS%M)YazdhIstn_3rk!A$Kwtw&p?t-%{ixAp_f(&WGNLceOWg@BNo0 z-8#qq4#h_~iQl(Nm7lA3Xjkhs=7r`5Lsx|6hjxS>vRtt2u#Q@{;7z~KcFcB{-DaO@ zUuxfJuclt&4kyR1$J0==uMLuD6Vm>RR``3-6|B+_iCsRkf;?uPWT#-QC^Y-Q9x+OXIG= zA-H?6;1UQD?ETHzNzOTUjQ4)njIr<8&|S6WGynQ5r+{n0&)d7R+~;nS;LhOj;F;hh z81LiYt6(WU&H6B%)}ij9{-GVAqoF(E->ec_&fT;Unf%NryHz=;99Lp{lQDZUd9#E2 zb#Gbj+cv&lzU7?XcYMk@RUfmj9*9JI-YNZ={W&SxeXeA{WYTv}J{ zcg}TRNa)-EU+)LcBY2kPm`8U^vZiK#ye=9n+kwZLD2 zy!;dkwcB8(g7EN(##QsR`3-d?hc&~#YQI3?YRY{05-b?15b7108afvGP5k}mVtbDB zhpjYI+VE6eSKcebyp4V9e4Bg%vrL8^)%6Dh-9cr41#F2}2Qa0kXe*hg-@qNo^``uL zZ}qQwUZb|r(&%VRU}l^)E*US4jAlO5ho;fb90P;>$y{sh0;49gLRLkqCThxKKCiFn z8x`&PoV{VN@I&zMY)%yzNh@ctv%%Tp9A>_nZfmzED$5f0r5h)h4*XdXcG5MtJ@|p& zN9TL=+>7lw%wEPF zx@wq4JrtF;oa~7(z@6qxvptH&cCbrZy`YRiir%F7gWpz&0R`oh~xwOBgf2MyK{OTnNozMqb2HFS4 zFllacUXyB3u!v=vt`~(dXEI6~UHKL^8-Eyy&0_p?3(>ENqbJR_ve=K@LcwFfKA}N; z`*GyI_lMHkI~L4#!aECPb+<1}&5ZI>9^~;uP314+zwW=l(=|-Hq506)?&}sh&Qqh9 zInVslENd;b{HDGQwG8ptCKIM@xG48+pXYMr#@ z+9fTHeq4{@X`2rMYGwY+T#c|&F<2oe!Rn?7j6j}8V)GR4;kX32dM^I0cXqLdn( zwLajU^B~y5-U+B}k5G7nzL&msYF1RNp8mzClF0*)135tWY4!a2NHm8}=$aYfgrk_J z@lD07XI?hDS;MS3)=KNBb;XKA^}X$c(0h{zJ*h|>IXB8Et>C9GeXGK5gD?d^_c z)~-Xj;qR{!N8a@-6vsQj8^zPoOMQk4V8P&K1hxbUqF59K=Qq;UfxXUaS5XNQ>nUL= zS#`g}U_JB!Xu&hk2e#^`V0HIU3E~=wjgDS z0aN?vjX+V)28%C&>N1|Eemi{O0eC1kh;5Y`4NthK#`8yj*v9$i_!@Ue%lESag1}AN7J+-u-1%vHa)LiSl4t1Mpl;JwwAs?U#VZ!OY>~C zW${c59&b;z=i1Ts zO`bKIn{xoz^Cu@0O2``56O13s9@P2Gs|VKwCx%Xieu!tTOB~M({s@Pqy@g@a_xAG6 z@gCw?pUNqJ?W?4g;RgFT@QOREf_6eHt&itP_@vJ_e&Z*r4KgkO&Mm^J>c&qo%zA_( zlMfB4jNOunCN!i~_AapgJ^PJa(6OCa=z|Y={@**v-Hhlo3aGz0r{6$78V>e9D}JUS zairhVURi|eagE!?@3p*@V2-`KGq~3ddw;|8xP@ky(^uM8)7Qw?!q?H)52fjcFH+5* zWt$X4by^QdWoAU9j}`Tfq>-|PUoNGDXWNKQd}cL670 zVQ_75Yw&3BH~8Eg5L+T{)J{BSGtrXP=83pMxq?N}KmsUX%R~22Jv>X|2ulHO7Emg~&Gv!@UMr=&>A5{SfGUT;tY^R* zR)Y=pNL2KW@5Dk!eWCW^XFuwX3Y3N8mxJAp&^Ewe&cb2Rpnvbug`aZ4C}bWq^YKL0 zvN~96nVVm%)OJ=lc3G#gqq=3?%I;J=tA%cYP-G}Y$P*niGxMM$?S>C0Rx^UY+N(3v z9cpgWqo-(%xzHLDF>C6hh;-5VY16bLT3)>(7_=GOX@verKVk%M0%w^U%+F{yPzFqaNzP7h|b;#Vp53iEAfDTPtM`vY(TE4`4=VI=roXSve%w^blP47nUO>aD3l&=o@xWn%s7xiog z?5F|`!6^9dxm%^4rfCV&sOa zeJ}@G>#Vvc6D?t{-QirD?ZbA2lMlo<&e`Xjbj~?HoMdhqH{cd`Yr0K1cVpej?o6p% z9dj?cx7{~Vxr!}S-+aM9uy(Lvuz9d!uxD_HRDCxDw*+^Au1*K92XlttK)ah%#)+8;QQaZxbyF>`9`4fU3KXT3LG z(0Tn9pG^WI5=}e<&rKUx(lX;`;{>ktYa=~OyNfv=jz7ZMfZtfaw(Qb&O?$9?*ZyRO zI~mYwt1^*>IQN~uoiH~A`s@w&iTlGX5G)^TjNTm`Oodj*7wU=YxyFCSQqn28ao6iA zt@(X3dW(8Xdo5oTev3HhV*S-)>Up&vir71}=}dBl7DW%J9+-$L`V*?-EtearN0o)Vk?XPxj z(C=Va_-{<2@#vAaaHT!LglP9dRrUvq2g`DQ)#ZEa6dVzpg+}`c-A}OL@yyoS=o)Wh za59aL7W`htl`6O>N5O9wyj6U)e2bZ>n|(L&B=V|-)j{ZeSRL4ezxt6Wlt#;s=F|-qb`5-L@qPE#r}BO8)h{xwf9R<=4}0y4 zOoShHD!iAXPHiybaJ-FQoFmRnuxbJ~6PkNV@M=Rc29vpAu5rUW488_MXF;Xr2U6ln z?s!Ids5J7%RVN1K1U!0j>%INMEzSSt0X(xEo?eVj5m)+jMNrs|C^jjIpS_AY2}Wl! ztv~q7^8H3?+n5?>v=3Sa+<@Us!@uk>C#N&ispnpGzrhuX@%QoXR*5TYVox&Vh7#Xf zz+2VZ4W)OL_ZZ&QcW({u=n-(_HfmSY!lwTIu=Y*(fp5?i3J3b)KDU4~KGCwG(aDA{HNzbloJ2n41B_#2$kQdRr-A(ZS}6UL zDauVHh*mz88S^{I3ti3YzwZy@^py&9;;GshxXgKL2$J;SdHkj)1NXNw1{!m~iyBDS zV|C@u(w(}_L}y~qGbFCmhLR~Q@fh;qtek?YXZc6TJH}I=K`*Jd)*FI7&*L9`f)$2f zh0{TJ*UWdgyIJIoyv{mfeX_EVHRxrpu@8X%yOPN`;=Fd!F^4;HGap2+N<|W;DVkL( z9FwNtx)orZxbnRUS#d}Tc^9K%pW?SF<7)*kDkLldG@$3lug`F42 z@|cs<9fX^FE%+WC@)yw8pWueLo*Mkmi*R=PqGsn;i-J*BswdP!aG(90;aB{PVS(%* z!dLL0_Qp(R?_DE>dBZGC~m~ zY3`B?{``D9!*Jv#!2kI#qvDBZkmmqrFC{L*cyx?=YFhtA(ilchkUU1_T%2(UlZGqY}^K=Z_jpv2bqVkUCZ^5je=F=+ma_ zUGX6LSw1_GbWCG+FyGr7cXH5EB%XW@OdP3(zHYvGzE!^3oc{wLs6uGY1N_|sTeY$1 z+_&`vhSz9ebl~274$mB6FSql7`>*nCe0SpGgw}QYpywTSJyqgKPE{KI{*$r__v@pQ z&07KfGT(ayR$0hb7sRyPmk6}96dt(^$L}j>wJMIq0+523hxGy@0z1&LlcHvH<%u2% zM?S>_j?!%q{!A3(q=t>QG1o}tW`}o=c6HENBmB5-d>%_-cw3}m+&i>LD6`DInC~GS zxV@>elcy~ToxQ!UwlUf8bcrYL%HzI!zKm*1Rbj$Z2)rRHmq_b~#y?hHV;sPX?~m&~ z+qz&sv0vFAoL24u_l$cDg!%&ABuu*N^*QyeL0H}4|DS?ML)oO4eoXxPL*jXs^G89Y zjJFoZ=_<}&X-@uWUs^teIpD>#sBDY<2?C!3akYXdRYSG4+GWksi|J+bN_ri=3BPw& zZp-2NBou)~aOI8omk0F|`XyM}L;VG;G{Q(`q%pD@c@4i|;fPm&OSd(;k;51X`vj0(=KW^u$$Rq z?TTn4YnhDv154sb+%S`S@&_88542T@Po+6$^jD@vxGxEMq>Un36He8S`)Q?b3m)-B z-+eM^e}l-9!*a{3HNa#y)q*@XFJL)J;1;tp3f(IepGYbu_;Ir<8psaokadBH^}^Ea ztGEhn+~w{`T-|)6AT03xufbEnpT+b-bB-tPp8|@i6j!Q(1bf23ccA2dM2YJ}UMLYi z#T9;vw?2=W1O>35>hN>aBVW}A6>=7e_ZG1K1<=DAbiu^_O!!$g-c41%=RiD(N%Hzn z`m4ddmj(_6?vo)*z!RQL3z9smg1gm9d!bDVdd|fY(L?fr^Og7Bg1(=9(Y``{17EKh zIe@ADXmDsJe%l}N25zR^*Q)N&es8|6?v0;th#+~lDsvYie1IogMM!tqyd&ukB!4_y_1UsQalp(a$Gqp>7n z&IkCu`+Mhkm!RselN{oZ_oVl-_b!^oI~b)-TI7-Ml=@ITkMA-zu$bguO>Mrg>+Co7uo%VOBCL z7I~1_&MK5d{=FjcMKsNG3?(214pV(^cl5psFw$~N{oy21xBFh97?<`pAptZLwQMfx z;v=}kXU=;Pa#YbMFmX`=D``jdp~hi!rLHogw9s6EWA`3qI<^%?RwccalWbclQb5(L z1}LkYtub(jS$HZd;Xylj&Tq){${X&pICe&v3{v1m#q5W6L#c*MAj!K66g}7->27oP zxMPAF;DFbH--Bt%Uv&hlEFiBMU)~9oP+=Rv`ciwdd5hq@k3$uVO|nPlWVZK}Q#<;f z;&xQg>S$%r5^9hIZDZ!QR*;-&W*@bG2H`bfMka{K?lp;d4ihSed};hy{l^1`P(HTn zEtyUk%sl2Gy9G$~4B#J|;FJtXT3+(519XyqePIqTCOryjh^fcuY)5(R#k$JC#d({OTJs8Dd z2FPWDF9M$a8_4Xw`hlPL2P$+*obf_|@!SmM$qVd+<(>gom(7zg&9&-Zc^{QHD7-rr=)BFwa=W>%LfbSJZ~Ii5W7 zKJz$=#7*;e60C_hsX~b_f&)_3Y6JtC$@E=qMO(YAgK&r!Ry@?Nw04x8-}a(HHn4l5 zgN?DLp!EDiLgX}#{42B!j}ze}b22*)>4ioh-!7!_hdPs-b#RU|B!KU6T0Y^~TCk6b zQU~e?w)@51!E`@~3UnX+AV;tuI59+Gsdlg}Nud~Yv>)B)4q2Ntp{$%6f2e4vI;VdE zPxm6ye%nIF$#?Of9AGm8C7D=CgpxwZOasBik?o}nAsI8BXJ`|;&~sAl-;^+KDsOIY zZO%YDc<(@_#R60ZG1LD*A^PD><}2ze=d0msfWF&Js&5b+fu#JqrJPguj;Ap9e?Y#%HU?^qlTr=wHDtxECGx2d61H-*HZKwi1CJ zfr0o8lhIdK!4IDX{v?eZS4*O0)C%FUv<6A`MRlEu3wROjNjR3D(c{vBu&V0y_2zmf z@YO`Lh@<*Bve^&xmpl=9$rn0csmkccf(0$&Nr*Of%T!S;GohK%%t-RX%X8il^go2T zG#xMT7qUk8%@@q>A8^MER!LlnI#v^_z15Q(&_+_#hsohxMc;jAWs(^~gWPFF^uDq7 zGJG6xOq>0m! zun2e?d)x5+_w$bQPNwH@igfWE@-%O~U%Zjr97T8rs`(o74D=;qypE?}A5XzWZu=x^ zTAYh~q}7Xo>_(^)(I6J9YfvFh&_RgpPee8&3wSC>9Pqdv*p89W0kjg2_?=kVUb%@m|ebKy)C zBVF7ReP%R`n#JZu=D;&~cPFq?TDedU8e46xu1tcl)_hp!CF>5}{#$&jq_#*3Rmb0N zh0;5c$-WQA=o~KA6Z>yCmg=}n$tq4m+{?wdjhnc^k2n|bky4_C++@S6pJAQQk?o z)GN`1pU7`K4$eRZ5{?bY>vh2&7!HzLib8*r@B1ZMSUfciX^|=*=w>7i`jI)SW5>ldfHlCw748f00D_pJp~I zzZI}t(r-1b*6^Yw)*5;gdr21Gf)%B*v&fuz2%TZ5Jhck%NK9&1DnmPZJ%=s61b_%k`qJhzd)85}5L$>=QZpCd*`x~^#B>!}<>T!Q| zLm}RRW_yg&ek1rt@N+P4$QN=r?Uh05otX2hLK`{lhr#KfE&2^HXFY|Ik>p_^)bLW| zSH~z*;UUYE4cxlFG3VoxTu#eL7rBIPp!kvAi8!V!Kt6wvB>5YJ80kw-PN0FWrLQwi z-Z0-}yyNq}8z?6)==Q`_Q#0o)t94O4I*8yBnqHx)DB$$sIQ+Hz%~7IO zkVD>WFhwv5R@)5Z)D!J@OmJp!6?6Vx@EHw@Z^4A2jLi9(p~fiq z-O%u-GUrc*E`@H1@7|NZ(}(|@!&JY6Ztn9M-sf~GQfaw06Lwlt>!A&yLAD$R>%7(% zk9DTL0^D>S)xMh1ggbGY(F{*!6X&26>9q)+?iP55bGXU2;9Omj4tQKAC3%UxPHZ;^ z8Hvy0-(?f7!yggKc$oHSr2{N`2Ciat-vl_54;88fsz`Fq`F(Ec!cI$=%U1UtPcr|b zs01?Kmf5?|o1c4Zu+Wf|1QPqtC#PH5R}n>Ph;Kg6-zlEJ`tZpFc;SUf_SHh$5_$3g z+~|)u&xy@6w5_78Z+25BH$GV}KD~`#=L5LEDVdQW9NxPTQ%!3_yaqs4ZRjL!GKeh|oYEgQa< zOY)&53Ft{opuOlguk=sG7F5=+=3O+&>|n#%c3;|8tL!W!8k#c`W;;7!Nq;z6r~`S+ z-Sj7)#$dH731n|3gOZg7Wo>1?cME#TV>0)Dd9!i%Rv~pijBd|V?%a!<#V=&;bD&|= zQ#;een62(Y^*aG_uH)}Y+I|_S;Z6R#{(an`w*nbRYSsWlwPBi0;F~|DKSQ1TOe(!G z7bW1hoiP0LEBFt zb?5NFaCCzD@Jb7X>YF~*$U)jH6({i{8MEK*v1r0=1z(?%Kx!iW@is3jHBcO?kpD5s zN;L7;#F_u1-P7A}Q%?Z1FQ=!JSUjLhV*dSkOv2OruhM$s;%U*O)q9$r=$L>1iTakt zRavbeO)`fb*$aAfJ7`!OCf)toO-2SnLm%PqI*>qmP9K$Hw5|q`t)1r|Og1LBmYh7y zES#UeXl#{bwrnt;nCW5ri_z7p;E`W-YS3#OPgk{lFf%vyg^=f50;yfL=RWp=x+jwk zdFd^V=J1vF)*bb|8ip@7pJdJv5@MoFAh^#oc+Uc3DH>o#Zn3Inq?Lk>-&rzRCGBP8 z)V`8blf2RuEg{dn1X2&0sk{X1x!m=o>1#|-r>VP`%rAJBkMNmar{(w>JpDtfZ}u<; zNQNFWANP?LIc;7b8TQajExzYB2|UZe6)Essvw$b&DvN1Hr1IvZ8moV(7=o zor&`IEBNpZ?s_6rzuaUSYSL2Zf)cezU9Rp_PtvP;2|7$66T9U()qVYgL53^*hj1fr z<6=Yvl97PWWeTY?XK*1nVMpKu$*~t?<&wj}17L*uIMRdgO_pm1Ns`>sUTO*Tr1TOs zy}Di(UND$+(o*!+mGF0LTIdIai)9YIZeZx77FoA;{_T~5;KPxAfZ$TMlcBW z`xEHk7{B{7xIj|cek#bIF8Qnh=*dg1{nimwo99*-d@#H1XKvP}BQVgO2g~0IDtLew z`rS^#z2GCEUDfG8W^b0Wz}blIahJ@^-}Jrmpy?N8{41&77Ge zXayP~t%H5I59Z^1AC!LSXYPaCOtxb1zAhmD@hCq#Q8g}s{`ijA$b6dbD7F$tv!@WK zzbb9E-XyE%f&LDVPJEzzQo_k67C^nN=IxB1npM=2lVny zC(W|~#&-+#^dnkWPMpRfu)R*?XUEbp+)i`hg8G2_KR$WW0;C2iGx>Xxbe}`(X`jrM zeLyYCL8>f7%eEsJe+-y!TVM~$^nJ9@cql6QrH0m=yK1U78^>TTdCYqx4C3qANt*>p zrgqS~F&pMc#($3X?RWBY=};|78x=_jb*Ha53+-YLIlsHO_3_aA@|Z3Si1sLQqwqAh zFwf3{^1hKCN=w2~XmL%s?I$xU*1+wrao4{i*^(8E=fLOM*Nvq*33gw5TRCo2ti zpin)Upm0?{PRPLVSE40liI%Smgf45zXaxvZ(2%I!GDH#n6Z zHVb6uRFqll9q_~_b1JvO)UI(VzvI(pXL>^>LHrIhwj-es`h5nb+ z%8IU9f>YTJc0Q3)xtUzX6;9<>D;;><&s=O~x8YPyqARhHQ+d^X4>wEVM8VC9J9X%W zj&de|);2k3Y3M%#siy_2scs1p<*iB9P9%XC?H*xrzoQ|TIG82qka(|6s%d0!d~gX^ zL$n*7lE+LF$^=R;9%=$B>yIAuGmQK&c{$Oy<5)(8d5&`~Bhg}P*mx~miV?~Sl(PRwQ!@AFb$UkT)$j20db&DKYZxGN5_7WTb zQHn-jdmww_wAIhCpC_ZpnaMre;iIhCtGrYAX-Z%7KH;8dD4JR5K-hrzQ~ za4JusvAp6`rgXiuJu9HG^uytt>8_+Dd4f~<+7+$9+(85Hu|B7AXmC+*Ij8a@Z0jYb zG6kJLjZ@hm)E9I*1Ks!#y4r2wTPtCrk`C@o#+lSn+Us#9htPCe#+f{UAO3~o`G?J`P`KI=<44N zXsBl=P)@7r!}Li&yz1*a&! z*XCy2hv%F`&5G_-j`=ws|L_W*O&T%OC=@nm~;!=|4Hj%zLS)1+v>;-wZq&Cf)OK0v1~(#nXoJ;(Cc;po>{ z;ju$tcQ5HkN5JY-80mJ@r(x`*2oEJkTed=FNvE|CKhu&hiB%J@+odVf>XVX_Bwp5XzLKT> zA+cLJGpl(5CFeQ_{<--R4!^uZ?}f=sb_%?411!`;=>}t+$7g#)xuh&%j`v^ss=9yv*Bmc6o?9! z&&(v+XeoW&{Rgz7+*fVL39mIzYm!AI~Z)#sce;fZD zcFhbYn;zfTNET=ts*M`^kVtSs*3 zF5Jdz-Hl{ZKf0nzCAtQ`bMuNMsF;HtP`UbW8;v6wy8%aQ54Z1W_|08`q?Uxsz6)6a zB@w@2W}eJq>?`QcyxhX3sh4cl%7w$&*gG0^^MLm}I5+{hl!Dy34o_c0Uvs&^pg&I5 zIp1GoQVNqC>a6x=uf=?I8UEETu+xL&dS1c7!||^~f}@B(jjsH&tDzFQ&qgvk_1N_B z06sBZri&JGpZ+3u?i>ZRT!BppxbrC&*WKhj_8ANANq z7^!cS^ioaKrPd?_26NLNG)~fXxryok}1n$qDK=rrrTw>A@k>L8WoSFvcl$}x7#{Vzh^{tYq!|_^zel z+|A`Z8#8D3g7811U?u_;W$+z(!!&U$6M0>$A84Equ4VJ=tt0QywgV_kS z3HR+Vdi-@Vd#TummIs7rle`zr>2Y#~3Qhi3{1?*62f{sx_^!Z;c(0k1!lcuiDIGXz zgXyc!=jJ)Xy?#&nuL(f>79EfZOwShdgjRZg@$LjIirM*uoNoruVnI1OYxoAqts8UY z>=fC(g zfsKLKsOuYPv50S`B-s2ccqIeAWlc87b*3MelD<i zXDzWmH94s^l63|Jo7eCO#4l1ppRkiSqHN}Y+a*UF$lG*1zO5(b^|Qt z+gtBe}WY*Fzk zmQoUq-iq(Kn=$}?H(6N?zuP9a;GH33bjy1j)Hv5)SSvwhsE+nci`J_e?b!IT48Hpo zw3gKr$hZTHC_VV1HUIK?(yX8D%wUMBOx0EFw>pbUH_7E~5NbbXa%{%$EXYW?SP!)i{P7&oHTA7RD#@`ifSkWhjD6`z!iDx1aqJW z=U;RJZ-bl-ytnMW`m~Rxfq<^#szs^=a8Fmtl+GuA_P|h{$P-NF*rZ9Dvx{ybv$YT{ zqh4e|f1zg~IrqCzm@A`jHp3elCEJl3 zQN|AAemx?8^_Fixj+5BQ&1RGU9%xB00H1M@gc7@%Y?2TRc_n=2jakjf6y{aMR#ir95_CCEgxC*&ssm!rWvv6ipWCajL{DL zVhH;q%aZB{1FiSrxsOX`rx8y5A(>*nhKKhO%=HI6GNI&=4k?^pnElOAcf{XZSZxAF za%Fb^CEfSF{LEKLZXY2veVxql-wy9dC=myt*hC!@8yTK&H_!-_L^yJ}>i`w7XVP@zx8gRm2{$PbU?`b17LQ$M5epcR~ZSbGX zNaXxYd%hz(gO;kRQ5f#3B6~OsPveWe+4yLDwMvjEYr=CJN6yv=`I-4hWlTi0zQ6MB`x`&s*dJ zQ>x7ZIY?XfX3xf9=}KLbz4^b;^OITW$m#gmT2K!CP^8+2b3UHH%+sKAs365wsQJTC zfVbNFY3u!s=8+f$xGZU8km53Xf4kXb z9w`(p7}>GDZBS_pcgg{wdH9Th*Gfz>~WoJ23rxUM2Ph=p3D*-l;HID zrZqENB7$?=#}W8vS-pAL=U7W-GDP<3q|9Eu@uu@-2m6J%E4uLnOhPA&;mcw#XGR?0 z!X)o%v$3Tmu4+$pAYSlK@+RG??&p+TU^~-05?DWAG09MY19V-Ag959QXl;epHrhY& zzeL^%nQ^_%+pdX79TTs_gk;{?a6AcNG z>KIEqVZHQt4zf4lBB${qnVxut*sz$%$V02HEP1|v*~NI$J#&r4v`aVA>i^UD%I=8N zw7<&2E}G*o&!UeTE%l(6@U&c(VmWvPmC1I*Y)3tcS8$D6?kg&0LRv)WX}T4p*IWrb zrylI01Dp1ykc3!-wzC18aZq-Pp8S*VOzLE!OQ<^~&~@sf>b1lZig}W@umj}?8uWV* zNtl~lZXL`I$FIj8=6@N-R2pXoNC1gv>oGGb9Xk&GO?$>XUsHI(mdPjVF8;#XU>G@R zEmRt(sBdTtI=@su^86(9XZPnP)AcWl=*Vr= zpCq5y^tH&p9prL^Q+}CtLmtwc4ydUXKHn&wmKky@-a4G-M>O@4z#c1;Kv@pkxTxPC zgO`ZRK`mV8*>%*iDS`s@>VE zHQxUW^qyYZfXlmrjCE<4^=Uf;t@{e_x@zcL>BQYMBtmAsZB)M-^dnxw1M1_spX3(4 zOOoJ=Z;I@JtmW*aVb^pS(rLmM=^Z!~5cz(w#j-bdve?&H5f0p%a;B zVKM2-2z01Xftfe~zp$-qF&iSbu&d+>TjI`xvL2I`3nLSG7;Y{c(|1N=l&OTw(JYot z%29aQnQ*mr*mY7THP3l|__R=Q&N$=ArhbQUq`;pZk7Dx$KRRis0G#iWcpjHT$UO^@ zFyF!`t@+Vlj^ZQSBr)-Y4s9pq)Nt~lU(^=tq!ph3eENz5P+Ow>@%6;a zD<9u`8Md9&*L&zgNF7eo7t-@PgwlSAZEc_Ac9+yNxGWroDs+FFvk`g>`GR?5+3_$H6x{+!qY5uQ(c_HmS?@Z)MYWi8;Mz2U{P z*i7)R2J(rWsur$i1zG`(X{!vv_1wl&a~yU59trepY;5qO-IXST-inzec63C841{i< zkZeiJP3X`+9fbBV1@&VYi1QH2$KPlliST4{uoJEo>Ek}6qsF6fu3;#u@#P-PDAGb&*X4Z2_Rj@eE zMKhj=c}%u-OrgX26|~~SMq2jViatU)wnGe~voeFbY8_9*E0U-lGmQLk6dS~v(Fqp0 zo6)pJREqaLLaFKG#$zbOTLA`%xvZxP(FW52_HqHY}2&{EF-r^<_$j|VXvFS|E=GT*z&y_X1r*SSY{2+R zKRpO%ufpkXPVRCTX$FzB6Wfg+vOOf%f9;bx%(Z!(_;n=j_M<7^u@c*<>7C>O(H7yn z5Bq;I$lvWSCn*~=^3c+6=X9fSFoL^gfox_yW-G-f{P3hGdDSEi=|JLW1X}Y^*@e9a zJNQIe&m!AU0T$L+YI+;wTOf|J-|rqd)NJ$w{iKjf(>ZJ<+a{}d3&d`G@f+fPy~o=# z!MO>Qq4(^h7aNkwkUg)jw!x2Hqi#YyIgHbI3l%Xl zyUrE#`r>SrZ6>#EE@#)~b~Yef@y8D&CeIng-h3laF3^t~X9D3fewnTlPX%NQt z;V86%W;6?Xz*R?+Lte?9c?aL}4Q@^t8@|fXG-yDEr8678Ch7bBYn;46{r3IS-K|aA zx))C22GW%WXdqr=<5YSQNd-u%hEQu7vGq$})75w?2blS>xp`CK&gO>0lpmH^J!8APz^6%=^o5x5g30tDe>}xr%8b9kjDLaV9g7r%=o(bUd1*${Y!J?3G;{tC zo%5?C&{NPf$w}A5K*Oye-NY&25AiOL{p`zm3%iXIOw5+#e0=u}IQ5-SIESMq>?ebM z9?kn9da8%-|KAjPUC#YXP|7MYF1z6CSI|NuJaPH{h31_coi!(FXbEuI0G@zJBn6kz zS-Xpu{T4S{ya^oawrh}7Kuzh$3yyhzHxFlLSEh{s?q& zeVD!33Gxehii6C6>p0gL*m7Ku9zqfJNH!*)Cj5_|nE?msXUAbTL@JP39<;~Ou#>^G zj;7K>_?b@Ob8@EN?0C$8OsH^;oz~=G`Z5EivXk*5>gXfqB{Lu%n}eHE6_lhkvYP8`xg7EWvZrkXFk}UfYq$fbqORVj+rZ zG@9yJ;k5Gq63P2M0oj;z%m6Q$weC1`Bf+k7aE!O}{lDh>kHri~=gklPZcb*cCo^Co zn>EhTt^Xaj_&piK6fl(X(yeO)PZ60?sP-2=8XE+;6nb9>G;}v&-0orHb8U z!uefhtT(nY1AYTzCqcE%3i9)#ELG?IEy7t{$PCzuLi#H&HlV3XLOa%=hlWbI!tcwc4aa+H&@V&he{q3LW(} z`L@4k9qF_`%d%gmflQ99CBd6NO9%8k8-X99V#HyymDvAU5l^NiJa3hJW5Gc1_EXm@VvZxTweZPn!skMeU8_ITp`z0h+{awwb&mzZlOj=%8iQcg8!@+1R~;$uGRlALz5m+;pT#ykv~K(>WT6;yni?a61n3YtoFd z&;!%qzt@*8r`Rqw5f@K141Y&)cu&VL1xjFfT&0Gn4n0Go;iUURCukkrqPc+o6_rTh zy!`B4aB;q>(5L83qHz^FUU!nwIZxI&1wM67vLS}IBo60ja_)0cxYpruo}yV8ht5$d zw!aCLOLUHgl5Cto>ti!c)N|bVZ%q1Bq{oHI72|G>#ic(*w(&Oo(l>ZiNtp4anelZ= z9d~8N_GY;I5jLh@qo@CocP@x+Rz+!X)J4OZPl9|s>eT_XtGfZAS!Kl=@Usi4Ix}AE zonMI4wUwmON7C@&dNMsD`5Cddq&qWyB$?HP^w00|&X2cppJy^7J2Sq%+zTu=bKOzgDZXzd}*f0GVQ3TAvx zcI>%$E`!ky#CFW(_>aFb)VnBT8jg+mu~4f5dMo`>i^vBGNF24`)P2x z<=pdo*favRS7Oe3d^lZNyhVldMK?635#*9*vvYqN*!~qhm&Y4{{+$nO-waOI!#kK= zu#3R<;%y^O&|5sd74wZQh1;B-s4-*@0+{LP*S@otGMQ;d64@+z>SY0~My&bPWek3jcvCAJr=t}f`l4|y>0hPOlP(Y_(JXQIs~lK5U=`Ikg*k16uyrBCs659)2w-9u{M`C-y>ym-)6^ZQyuNw)vUoNq|;B}ut z_h}`z|KGjR|JyMX+f>T2FS;45PGEb%>rQ~~pRnO9ijIMgUCQNPbpqQ9Ubhi+e@Qt(ESdH?FFxk1l<>q*k16up`iOEvP~{{-Cv;llyWbR;B{?5_hTfs z7rgE^=>98jFYrrVR~2;MMPhrw>yCi#AF>xdBU(-&`h}(Fl8enBg4eAF-Jh1&UhulC zp!*^c+Y4Sd6Lh~tV*3v`WZ@`qdC+f~NM1LPEf;fnU(hM?>LO3|rz75*COnHWY*cAT z|3JJAWi860NDAJNu1{*(Bze(sO5$PlCha^HC1(+;>J7T&FPQW{$b4oX%~Fv(OJmfW z9&GH4CMR}?p5f(~-dvTKbDx1TUy#gI5v82cKw|qjY!g^Z_W302E;h(6C2vb9!25AJ zk!Be}>uWmOVm86<#5;z*%BD~**j>#2&Hl97=E3eR!0sN>O8CkiRIyE<3Om)B(-s;A zyW0h_J596rA!+tp|D>_X)6{E6l4U7Rz!vo9(`1|y(<6_fNv@J;uLipt#}lvszhVmx z^9P!HVkcDw-gsrf?z(~OM$k`KfYx`1eFAT2nZ_ZNnhkdMZ^v{5jjp5m8IavQnnR!T zgs{6}AiEl5n>w)DZv)NA1IBT(2>0+FvY}-AO~)*4)?m}_EZLxoMhiYpBT&4pC?mV- z3*$djg58bc37Eq>+M-Dk{K;00xOO6(svNckyXyq98-nUOhb?tC$eX;NukeGn#$|RY zksWTrCW-E7$kSkUCqZ_%@T}g`E!Ny1-+mSLE4Cq9Cvu{D*ynYY6vitzb1)ak&Y(+P z1-EY+N$=(OeA~$=T;bg}i9vQz><~40yJJ5xcN54mEyl^*M~38sIQLBwc^aVQ#AKPG zV0Fz%+X-GbnoP+`647_Sc5l#C#fH)U;dBE?EAK=3J;z?C2jtXZOFmbEhFER9hh8*M zHh}F8kpH|!l1ZdL3$RHd#7?b7WP)aa?N*b0KY)uR-Y}99|0*}zR9s z|$E4dovCA-mL|Z=I{nZR?*8`P$0uK5a@`3m8Cp}#f$(=4$ zK}zF&)p+KofLD7mnKqz0XMt%{Ww+{DvjmF#7O=q~-ZdvS1wA6Wo{%nPM!HHxPylP8 z3$&FR2!64*<5Hc#SHD9y;(t^?feuHKg_})3LgX=z{;xYD3;3`;ZyoE%TL^}*Q%r1u z7W>hJCM2+eH)!(gl*cV@B6qYcCttOV?q(vH>r&D9cY^W%8#y%*GL+}qF8zu2vnn(s0jx3?cey z({>XK>nx`*9lGYkINJJCwDm9C$^(K|@jMbq-@P%u%n_dU{v_K@pgtF3N}chy0D~Oh z4W60FC-gxpyue*jly?|xWeY`=*@h<~znu+BaWC8K}I zl+Q&Ux&wFn5%E?DG7*VncU(t>>40;8nMBx2)R)3^K8mBd{7fV46~D(IFxDUbQk<2f zxU+}(?2>RA29Ur0)v)0-M`?(L(=BMo-L@7-wFcbuAuf9X_-KD{=?Q#>CU|jQ+=4to z{JZB8$(^2=nIXqy3Z^>B{%m?2PuN#hQNC?*7i>N+%1u(XyqI{wVvAuEs_F{7-bmgL zmx+#T73uMZ*iAYK?Ylo&;|pxn$x3(Y0(;^T)9+~rk4eoozvk#w-Qlb&z%#r})o)S%|SygA^X zQEX((&+`y&o}s-PB9m~B9rKkrk=ePk%g{e!%RhblNcoJ33}YCG=d3^G?W)b`Wo_2h zz)C*rt!O|#HcXtPJ3P5I(?;wpQu&wvKp$ugZqRX@&$2&+zb`6Me)l&)ZR62iB0y$? zeTiru?NTSu_4||eqV&PR75jgAgBT~q;XR*i=vgjek5X&WKyj>aHYBwsZ;{JUBmMrS?OZ&IB}ruok2JOT+?zzoeUkg|o}Z$6m@waIXqq3@s(h!S#pOeZipvJe{H;Ef$X(@U2V-t!ydC#S^2dTyo1l^lsS z83*2)!U0tbiIlmbO?3F{c{8Kg?euSlfps%#*hBIAj|Tgbpy9Kc67#tyW=G>hSYIA; z_}_IO`42x1${}`ktpYuzBTGM!cSoGFbCSd8=R|S-d!ulja8uD9>j0vm?Lamy(i6oW zN!W>_phtEFeca*=PkGh)+G!ECijI^$j;tV*1Y|O&t8>woj;Ig0o5}_ZG=kE+&9Xnq zzwvm}E66gDX#f|dW5>`=W1Vc_-^71zh5G*4x$BldKNp>b-$dHv zElKLll6T~8(98)EHdo{x@Tb~4yo&hnnV2_{-yWW=s|5!G7 zFVL59uA*@*_c7T|;%47M-+0B0|H3^LZX_Xjlf}r5w_zGZ@U|<0f9tU~q#f!0f$U2d zkJ>c{UvmYsXDj>fj-!BFfe(xKf4uq6=S+|CnVW<}08QlI{W~p5Id?-38$v%@WOWv? zF)x}kvlqsEinmfdH5fXZRRE791dpo7JI(5$n2Gt*n@Km07RDT~ z)e1QECb>KGBnsLs(mhXM)*r2JXy=h==TTs$LiB=d+A3v8`qZ(T(8K7)tv;As>qL7x zN{i6gw$Tg}9npRPqR$n}33HM-so3+A9o4Nct<$1#@#?%As0nI&C-(mILvNn| z%36d9w-%>;r%VE!#e=zz3-gA1@EdF`=1rv8@MHY65Q>7_E2GNRr;pH)4C!DxAQMn* z=J7_Tm2{7HpxvCLop2RL{t=k$U$-Wed?##Pu)RhnxfFT6x*#;M#kL2U&d~o<+_iKU zcHrb3B^7^xhLhO1{(-GBaY6}0$=D*7i56I4Jp7`(2d)xYUjtH&ZSeE^v6W>48voqT z5`3QZ?D5+RZaBw$y~DQp=d#xf`V zx|yiUKk=@E&Ga~r$R0JVQoQ9C(p?J2T}ngVGzYs5ym(ASX{FV`Z)}F+*!iD#;7;I8 z9g9(=*27YE(H9c?3$K#Te8&AE8ual<9whgt1?lGFwsB_XW*M&kL>f6V7Q+4%@=l634>`nTg#mNY{x@=Pt@!Q!nV!${lAknby9jq1G>bbN%{ z_8Q#iF^KOSp0`Jj4>wMW3Z4&TOlOveT_pc*-s{P&GmKd>1->la1SH;Ldq5_KFOePo z{Xexd0<@ZzSrYT+-!0j5}P!)!mti8O)l^*p-1Sc?@&}d zW&$&k)I=sTCyYx+Zz;ijE%tRZqFvX8?E5g83YvwlvW#i68UB3~9DfNU|2wIQS4@-d z^p=ys$+Cb~#k(F&rb$_FOat;-?bv_R8-6~5X)=S|tgG0~x)ls{NKW_5(uw&KC&pvP zXO^TSFBru(93Lue3EqTOm01$=){matM`LJq%>sEXgU3fRO=5OM-N38)gIOZl60z72 znF5@iQ*H<`|4&1-3k~6c%#!iAcmM8^+70JFj;?o50q_3-^N(b&Sb8_Bo11B( z)15BoRwc>Ph*{EsH?j1QTcT&e>6YR5M5Fxg{m1PKgZX>zMauUcd{OFnJENi0#0l-l zQ#B0LOzb;)2{!sl21b$ZeiHAyYC-npf+oKE#x$zClg=6eqghD*e;Zr(PSHAkAh!Vg zzyVFePKP}3D;FoUG`y-GZ&{jw^0l8X%`m2EVe&`|@g~1Gg;A?gGo=nNqdo@3Ov;Z2 z)dx?R*}~NvMKWkTos1ve*}QZ3t1l1SU@BX8{Iu0t;nL6HHa>|@^Hs~l`@~c>Z?_WYM4jK-G$JTsk);Y<9NlHB(_*#)u^CH9$f9OnEJ2`GMOPh!avnxKy)kZ#v# zT+VLHoo~Jds9L}JeW(;4>8PjGGLttc#AlqDJWe&fy=Ek_JV_JFe#(1PHIFxDciRnI zkpZ|L8T>vb#|FCpH~odc2ea9wk`_F$LyIJbw4H4lO?f|FEcOGlSA8caTb8Qb}AIhH3G`Me7e2KMUPItEt3bELUaD)_HcJY6!#QZ*G zm2N1zVgt0uPUe6yh-9ePoHc;`61V&dP+kr)h5qEteO0v1`f+2onZyNw6^Z$M*hfsF zM{IrFN48sFzd*o7uWbg#nLwWZC%iYY>-A3*x#H|p?#lgN6n{+I^HWLg#>4dA-YCW&PqKN+p+9yA(egB$meKoE#@4W7h# zrhXd#?|$*q|9|YgaeVCgc=rFrw8F;j?C$Jtx}v7LgJ@&T$(eJ`oO9-!9X1FX3=N`! zU=XBhN^J9x)|9X*!K_XzC3I*?*zg-V2x1Llr9@2$Qc|5=(@J-Pd31J#=Hd6gukR<5 zIXUOBo?rWW>8tzClMZ3egKt9ikB4qm><*7IlB*f&kaPLl7wF_y;OFSqRW zXQ9Zw9X;-5I_SS2$i*%|A-$1TLcVaQi!&MH@3@0|b$51NE$!n=M+W1YM<0dPa`qVi z9och*nT=yLWNN8QQIPU8=__xm&E(Ma}yu)90b+smJLfj|G#y zfDZB==9M2Ey9DOb_{(0rujguy`O~n&cR%*q{=2q?b2U3&3I}2 zk=yc79@+ERgZCqa@HHs^U&ZNRZ;YQf^oT?D(%2VKcz%n2?<9Eld|sX(Cm-@3k49l* z-+27G#1$Z{t4=1!Qu2!DYG?dKv2*at-WGoztk3Ik+K>%b2BK!z}yf_*UN6(+~Ug#@J1Vo`ajf^7r0GV&wG~`7V(kUd ze`cb69ryIv^oe6|`}aesJx1o|y2{ze1_9~p7yVP8xO&sN3TIIybt-q&nB7ZZs4e(c0#{%=;QE$FJ^K% zg3IE;=;>cR_F%FX&WG`OQ{pM8+kc3<^&l{-A=Y(27b|$4IG>lINgtOMJ&f<{U1(FE z@A-ZFgI_p!Px!*A!>>Q`w74aMKK9sAD&;%TJvry$^TbzOg|>Y@D)#%?%6T$d6*IA; zBt$gmk$1;C=IcwpbJ+NRhp`9ohQkTo1G)`o@JVpZjied1gGxTf8*!gR=^K!L?8S_#Q9V9fvbHPj&6K=o8tXHK){%d0pT+WVugL z+5U!(7-fs>Jw$2~^7>PPp!;!oO2hjuB-h0&Xcat&^KovM2CiiR9kDChb+xZeBWhHSU}qttAB z&1o54$dWAejzj7^)f3Cqxe1rhb-YJ*3+&o82eY_(i}*Z_!TC>+9$JQzdN9@FdD=yv zKk`#}mp7roUCY0_4)6X`-0bHvFSNP;(wXn_-(OA;SqbH^2I-U?0smf zKRLlS%J}E@T59j-d9~(wq_iYZDPM@+>=IOn-$Qr!=HZ7Pd1X9xG=20a^J{{>^JY5F z5=n8d;T|j`PEt?)m6vvYz=rwd?5iq^B72^A_Fu^FWO?nkLZ4_?cHSiQ~hbQ_F?xkHhvEck#=H4; zH^W%H0uTB;v-i(9&i^i7jCL`Xy&gsHZE)PzF)?kD$?+C$ z!sE&9`)2Ib%pjYGeupXGHWD^I!F!Fb;A z_r68n`94_V-t?-3RGz1@sqr%97km(0xD1x4k_mVLUXBRwmL6qtF~{C@_;}2({Snl? zP0sR9*fKf~|Nfq9@8#gZk8p2S;OW1`4Dus(ARjE}p1F6Q4QG*uvv@aINH@YndChko z9?C}To`dVH@DY{<(V8Q>n;C68X$$m}8&UZGfz1WOle>PNN22#yPD~z7^*!vle^$;8 z^YmQ6KK>P;#9>h4OL#Z>I`rN>cgGK@&{x0+Bv1CSo&R+7-oHHgPB}boMD713I)6Jn zk@a&wVv+ln`27EYzH>WHAY&&V!|qFr>G%(ri!E9DgNL5WWcv@iKk;>5060i>nnRJ@ z;%nJ1MHwY-6LkC(IG_xC&;8IVp1?2tbuvosMh?#bUhN#hEqgt)(-Lp(Y@sRGTYis1 zIjxh?asp<=t8jk#@4OE=4?TEchS+fU6E;kXWG&j;i$7)y%X}~id~a_dn{N?SbXh)_ z5J@;Ws>>?xLBANqvvlw>X8Q?TO7Dfoy9ZkI2S`%=I4S0xOj7G~k0b0#-H%yy0zL34 zAf=Ds0kaq8FFWxFws13ew?4`HxS#g@8rAcpGn^Cs3jYNM4y5o^C+QfkBmc9EL-yBV zPo|0=K~Mhk#D^0HPp0t%{LRU)GIRNLG60kFi0BmgNZ-bd^T>m5z)kn**jt(Let6_k zwiQ0iCi%-r5&P(|5IyYv^st}cGQJER>n+TgpQ0*05RcL0;Gs$y9jPJ0H!S-`9D6^pzyh z{NVUwQ82&3J$O9R>>q%bZv;0SCdcSQSN_=k`N5#(u0J4s^yO@Vd=CBU1e3|fVjfD% zAMs}8pE08*;VmD9%J<=8FJUX|TX^3eLr=QlWDQSSP;Z+(h&uiO&i6xbDZh}}^VS1% za6{xao``kGvvLx4J(Z6leaxqaR{6 z`X&tiBoq4ro&)0+_`lBtwfEcTIY@q_y`B09?%y@sy2hbSFz1_?%wI!=eFYAwSCd6> zIhF99I2(S0ETBI0$!%Ef1p4zZH%8Vi?6y zUV{J0fo@RqJLv1@^Jc;C!`S`wU>j`R{bP><{bbpp%Y$6MA=l`I@NWm$4tfonL9-}) zALn(7bMcWFn|2kL=q)htA7Jucg>%0cm+0fz5VN;XC*VXXsFvmx{57(wp2{1C8TNqQ z2(xete3oqhh42Sj*2lHfr93aN+q)BYP@6)>u99EiT9TLZctLMr*Xs^grw}hqJeyhM zS{x#IynyBox#PG;!q`=E{a=eSBv1V^cIXaVfFXRJ&xQxO7R@|QkGO@idI!lEA@qFP z`@R;(XC9BQd4TTVj)ri1J{!g4+AFhkgwLuQpw^(B1oa-e$ByY$O0uzcMDk#fTSz0i zgIOd*wy^p9%<+>av(k1s?!e<0f`5HBs-C^CoM%t*7BQ?I+uT>drjEj;X5mpki#K2k zcaMk9<0>%IC^sg{H~6f!wC>>MhIogu@Nna14AUq$Z#T)QgT*@z0gqOP~nMyA^ z{xSBqy<$+A()Xcyy_WfCiJg(}qMc8nbrhJp{uEdCdteoRNaA(Z(cd6z&OdvfVfyXt z36pI5s)Ji3JUotB?ajD<@6D9@()ep}U)0#PdnoCXABD@i3f5B5ULZ{ImRKm7utlcN};I3F3Fd&+tK1#yWNV!A!cJqx&5`(M836ll{I`{~q0w zH`QKw;ITb7!EjxH8|D~EyN^7WC7un z)7QcN8T(uU_uUl#F0+ysJzukzr7m_T7pGg_B}L-Wk;5lY-7YwC0Eh4En5%C-`ducU z+mAj4TxYLCG}yij;@OO`J4^mOh`I+~!mTH~~DDzI>{ID0DS{(&^9D) z=UsB#GxE#bpZuq*Ni2IY@2>m_?B~0|3%7#0e?ns6eGXoTEB^jym{V2_8*wgGa4vmEn=B8;xpbUL_c#)W zUZ~C0ches}M!owQPMCY5efCZ(g?2>QMSI)f4Xdd_5VWup9&XO|@xA@oaDC*lyba-coujujsszns7b*%DeGA--1HjpjX|Ky!6Z2y?+uo;rWMN z0+M_q`%Gn+yswZ0`(2z0my@%7h%@^N__(V;mgg|T{?^gA9laau*54j~B|Bqp1L=Ml zPAkD|@GKlN?}Yz6-`n8oJt+D#RJNZSxLBDKpXj-{XMmITn`~QrJ9hP<c zppL6S3HM{m=td-!1^Y^wb4GubA89@PNt_U^Z4b<3AljLwS z|7DK^hrWR9s7_Lj4ss&Sr>?)4+4#tzSK@Ph2s+3I4&QY6N4O&l+lINJHTFgCi%zk? zuE-j%V|*HC&Sy^8JMu4w)dJ}<*PriA^FM#gmj3UtkNFlhaBnIi!+o%qgG8qKeVEZ?! z{ew~2(=ew!>?XYgHS7I}e@y%}UY+l-W&E2YqQ3%e`}4L{0LJkD_DguZ=6T??uYkQn zaJ(u0>en+h-JAJur{^*h*=Muu_jX?AdlmV|U&A$c^w7gO>wnHkXNU91lc?_>gx!A$ z%*N-L+V6Gr5Z&z{TH0db!65ak*=D_xS-~s%-~K`}x1Wr<{1*Ige}gA=v*&Kq(`T|- z`fC3AuTw>1up5I)B>O5k%Mo_R%%wQbOL~{HC-z6om-b3c7s}|1V3rp+C2!z-R5-mC zvhg`UXLvk$G&kV&{xGh=cB z`N_dw=iik-bRnDPpM{;h`;q&?V9XvlMm4tAu5XP$gZ;rjKbi*_-=N{KFh!Jb~Xp^NfNDXjav%e3-S5=5e|gE z)GMuDJNZxKq1leX6(pD>@frLs8$~b1S@2Hk?cZ_+c6W%+S5`y7C3`-Yy`o1@Z!IzB zPvspbQg01&Hh6#bUThXU;=p6!W1q={HU{@#)3v=vdb}r3{rm(QLg%5pKTkS)0DtiR zf+PDE+*K#Uk)_cn7WqZnP_=uGJnYD$K}I*DUfTBN1?+Fy%jkzmrSHS>GK}MU9Jfmj z_wPLDpv;?6>+EvY(FWVV@nODnoC=lVUBMBy`LnP?GjI(>dg9md;{8xQ(oUSf$9Z?) z>Bp|Yv65r2^FyGbHT=AHfM7e0KNviBHEBh^PrBioctzraRFbcv58ck&>-P4*QRO)N zULps2rn1uER5lzR7aIQ754>HSGq`fu|4-@)&1uf0C> z%9Hr~hp0RDw&Vflq+|Bql)6Ckt+8J(ivBil8&9C>6ycyN zFq7ZMcm5(Ac{gf*p#8|Z`Pw(}R>;L9m>xbBCFM59i*ENs9rA`RkoNFR-e=l|jR_uz z9C$0Q=zYKE;)7wfoSp?oaAWLzwi1nRKZu9oH{xG`5B$;z7?aEe(&(R$u4mcH-y{De zOxnwr4)!q@ox{%B{NWR@B$@aG+|bOi)bSxUeYX=M>~N2fZ8yogfp5`!qVHwP>k}yK zw&hjR%Tn8TfbMmry}x>2*o)tR5j@G=e4-pcFXU~JSHKNkhx^n#K!43m{Rp{oH;J$R zXZHVo0DB9wp1nYt+;KL)?twe!-wzyS|Kd6v%9Gr$hq4oWB>plGi=7nW93x3=h)l(LVVWxeL4<{^v0y z?!PYjWw^Dr0|#N%?5$x-yWQ5Fz(wqb9OlkHoVVu&V$W3K$7|6u{(_vM_mY8xq?mo}kAi`h7er4<~8+Q;9zy zCFWL=ioEg#-YEartGOTZWPAKEj>(mSzs*MG+u6puFTd#Mq3<$@T>|I+0vPwVqaWM$ zCae9qjq2Vuy}B@7R6Wd3-y5>+*3!{C}1BW4Odmq3(~MihGp{G>3gP zdOuR}EG6yV!2<=dTfc(l@RLKofiw1cHoB_nZVzLZ<7v!#*ByBW+(v6C-=NB6+!*uq5BARpUZ@P>{{YXN!<_h=uq_Ye zUR)h}C^E4?qfcV~XxVIf)%P z#&7y8lCMVDlF5RHr%7vj8yd=cU1Hl!q#;=b^ttg1*^)fWyPFTEdp=H%(dXkh{tLS2 zyTn_5KYlL#@+AH8X|Rt^fE^gcb@fqtp{0&qf_z6gf7aIeMRdCd((AnNh00|72-EeE10U!a zUxS zoqJe`OV=KsU|;W@oZI)Km4BKI-5-Pg+elEp0#^J4`EZW`HI0FkzJsIxdiJjF1`6_0 z7wRrv%>LvT;m}eCp2(|t&!iK)nECF_Oz1&sQ$JhEalH3ev5ERl=JFqq+GU=lkH#+m zS-un&{+)PAUTJ^F@P+CV7asXxe4B)cd*hQc*KHS*`jvR(o&~1+yqs|7FrA-Nvd|!Z z+h3A0@_y!|PpA{#j8bRGLdUgn{`ljTBGkjiX%cn%W$bdin(WjMlB@X@I?OnmWFNvS z^A%npub%u@{4yaX>O;I4@j{mX{rB?X|BL?~ZRSE{JGQZBa0z+k55SG{Z*2Vi2tSk; z`!#$6kBYsF-JRFLv(CVFPmV>m%i26H_d z)OC$g!F)IIo0|!^MReveB%zS`VSi>#wn6DAv`&iKVio29(e~it7M}p9v2rKrC zW0owI(R*L7VzcFqaI@#70xq0+ zn5rVxagpq!GF$O0_+Beu@pbZ;t000+@N6AKyNw6dI}kX~#tvl=Mzw>enxu}o1ThnXVtVB!k(w+gEkqAH{k1F)4jIPXHD zLM5ywf^gnp_8T!Jt=VbY2Q@XO?wvkM@UH4sV=bQ0#hv;n=5 zn+K6p@by;l3x>!jO5w*ChRw}Wt1IvmRk}myNSK*!0H!lXUAEojH4sRUz2z_-N1I`C zaCrqL(=~X!pr)1-Rb&_)EYHSrh5J$EMXeC{^;hUiMDO|zzY;ehdDnONmG};+kk|Dq zUY8oEDKU7+F}U0kTuB41Ge%PV7`#Y{#Ipu$NQ_Q9hI&`Rh0#FUjIqf)hOSux{Ws7w zV_=Rk^vn`SyMdM&Bi~>Q9kWDgZUYT7hQnoyd9j3Ryn%KZgI5|uw=6NEHmrURhrBj^ zCodYKPmQ4}mFPzedQgnMGe)N@(G44PycoWSG4#n2+vp9F1!JggW9X74d=d>b$rxK_ zW9X43-b`&UbH|u($6)13Fpdq9C1SjIIEKDg;$8X%9@iMV=0TmlgH5)%Dj!_4j4;7Z%;$7~pI7^0g=V z+RJ?H0AIV8uRY1vwimVoeC=Mo_9S0>nXet-YxnZCC;8gTeC+^VyO*y$$=6=yYX|t+ zFfcg9O86BUFj_HQav0OA=*xWV0AIV8uRY1vUbb(Y4e4#1HTrDLb=rvQwQ1LF=Ul(7 zxsDrgJvZ&T?wsqpHP?9~uJ@+#5#{N=bFTl^TnCQ09-MYvc+U0Vn(M?7*NfAx8_&6Z zTyq^c;(Bu0b>%tNmus#wM?kg%^yakd&U3Cm*Ib8=xE`H$cxlcdCR3?HV5W#eO~$_G z!A)}xIn^9?ia7L?cKB(|A*hIV4qcSSsSsRNCRGIftlfCqp2rh{IHA zhpOfru0nOlg}m8j{fanbl?E>xR;~zJ)f~EtIDD0M2y4z^teQhv5r?zV;H)`PVb}Qj zn>``+wz|MsX|}cUyfr)z&Z?0L8X_~O3!IhajhQ^zG4tT88ca|KPQMGBmBu%g=R41X zvubb(A+|EQz*%Whg7UCC^Wd!7;myM#e1u)#tn`r)aMs+Bd2m(@mr@AExC@+>W|t&S zM#MZgtA^_=1iRkFw@fpmb3(keL#yb&SZv=Hx{5by5y836I7g?Q(Lc%=sw zLf!!1CIsS*2=VTImo-f)Ae3({OR^Z&NwzQF<9HYMUp$Cpp zW2WHRtu!!5|ZqU$xVk zpX_EYXoj-ey~X_w>xOr0mahCNXH#)s1DTp zo3iVR8R6Fo98OhrBk7oiy6~(02E(cwWruY#LVflNR8=>U4%5_y^itvyio$sIw}(|V zvJS6U)kr#wQWug>>0DdYC_5}-RU_;0hgFTF!yHyMJcl!^YAiRgMMhYDvWY3IawNfc zId{V9!t{YAiYN-#3+vTG-dYQO$Ozj{I^1AfT2u(Xw}~0*LivFvRwxSTFE?>wMrePs zi4UVf{Jr90=3>QIDYoR0f8bD%6VwSWGXN`-R{foDlfbg@;RXy%2!1BQ9-Qe!{$wyI zj5rHdvj$UBQ?=P~lR~e~+7PTw9?oV?9dL=sp|05>&_sz=xhI&XikhgFg%&rOJWfQF zJWDsUI#Z#_SaMN-7f)i$S-q++IagiE^uoG2VYme)W`)Mf^ua1vBPf0?!U^tG&Ck*Y z3yHZVM)XbuPDJU2NpQN=kesU^W$=1k^I1UXBjsvG7VKWsthNm6R>S8%pdMNF@w<1C z*8s)`#kECL4Jv%m)-P#a@zie^6r&bVm(0>3Dh^%P_sjA1>eT-fU#dulw0oYRJ68At zcB89!i~sY^b=jS3|5R60L;Vx&pJ)Fx+uuCw{%ZSUFVf5s)Zgr%V*8t`?yt_l;1+}o zJa=;abL;=r8J$`GFSfro>82R_n>{zV*xy~&Umn)qo^=ySR1;iI=dG?&mQqLaPnO@k zqF{rB-s$Yu)IO;xWLCL`yFIK<72M&JwSl)<&)Fy_!p_*u)SxI z5!-Lmi?RF0?bpRK1ca82yHCN^8&jW!oi}d2DDGid*x9)Epg7|Qh{*EsQeq<}g`*e1 zgB9_|HJFKj!$nDu(J=GPC}%&4AZ*$%2WdIUU7Vi4^>*Hmd5( zJYlAuBzY43oR*BH|Hm9cIp`dD5FFbQv$SJ2Os4SmtMK#Pj5};c|@YqIO$IRk@ znr7lP?qiu-Rs%QHn-gzR37RRP&@9Nlz?8H=MYB1{I~oAj2RV01u>CN&X_T6lS3N5$ zL$#u=8_?9$&528ao6__hdm}cdF1(ClVDF;Tn=^1yFJz>IW9_^Zn1dHMaTSM~yhH%B zA0)rZx^=H`(*ge;+?#mDrXsCckm&2XbkA~`q7 zl|kl)%j?1x0Znw>2cvGPv$|`zyePJ889l??7BvY&1c+EDZ%@E!$Lq)x+eM3z4hT+FZ`poM@7O8+s z@SZD7pljqb7-|Y|DnldMkaWOmmqvRW;JsN&CIa>7%#!( zb%Kl3&Lyhn3eJ)>)ZYgDYk*T6y0R1Q$0mUoo9ou?(wc@R;AN+jEIQ+GoYmD0bhb_H z8_N5dyvS>##`@etlnR@WzSz(C9&{Kl$An;-swt}eq)AobU@&aR$rZb4kyU0T!l1iY|KsQI25hZ-wNE4Izo zEpEiN<2a&Bs|k2xn^yl=fflfuEQ_4P`QTN|NrJL*^H*m|Hicb3u_j9KP zK}L3~a#VOjsq?ssN_ZnH!mBB1igtslM|`AE(X^Y=98l3jo6-zh(b-R_zxx$7rBho` z*G{QsR&?I%Tn)P_n9@nH6CvF-b&*#9-=|d9Dndkl|MV+XN?*smLbWHQDpb+$nv#NA z(TtPQFH(_SI-vfwTQg?(`|Pi(fxZL0!x}S#NCdgpo63`{}ov4F5?0=Cow|0_So5LeI>*jbc(C|fGtOX01-(f&VDC;_q z`5yf5R^wJ$;)uP3+IboZn!%s2CJf}^IiHVbZk-Usj|CO(;T;Z zs(hx%x{hHUJ5zS&YV?`CGv(jEJ9n;5KUGy&qW$OU7oDmBd{?b!D(cWoad&FZT;vUK zW~{0wNkBA=;vYb=AD?F<=O*(Osbfb%@cEY{2HpT<*{ zA+gHxJEz0}ENepTZO;4AeaLv69c<&ii{fFH!74Sdie+Ee_C?!i6WKWaMdQLtn#!sU zCvPi%zKyBO$0x(oqfyZEIG#3R#*G)Ry2)&tZ8l@aqx-P(xLzZeVm9-!h@GG<5c76o z2PLmfJV9|EKHk!`l1|0SdPaz&v^`zlF&g|g!bdU4OB;d?V| z0ZcT%NtL-}3od;d7wi7-v;Vt9TbP(pCgkE-zC;kTXkVjO`cLb($blA%XZ#{TkfME+ zz4>MLo8-WVXZtQeyi(DY3A)7GT%}*w{IdIff?z=(3GV+!Ij~?69OzHb#$EO{rTcruYY5Ax2 z^m>y6$@ypb^qLcd$mz$IOHrp@(9KBJdrXtLvf6A>dRgY#g|JZpA z>s*$P`$(m(Sve;*CaTj@(X^Wpx8fBp@;aORZBh3&C4QtXG@jGkY4tqm7`=?xYx|YL z?zc#(L)Ya;u>a@{E=eU6OZoP9Aq+zq<8}s_kkd@a zb|NOgK~rFBtBmCqc5%0Z1zTohe?HE(U~E&&>|`uaGgsh!>c;w%FY=NOZ-*V{6K6K= zmG^dlycu)fj-JLruH!DQ$#=Uq9iP2g&N3a(;}fpzL*yC9MHX9X-04Vr4ljj$U(-o; zC)GN$YCtSwH`Oi9tKhwd`t+@b;Ce>b3>hQKEiY$H*|9zAyt-S%d0}6E2Ta}u3mGCG zGsc@e!;XdAMO1b&T4&WYVXM}uE`m$L&Pjrk(g!OvKng$xUMM6TH|e;@!T69I8+M9J zUzt)0=*$^=ym=3T_+~p%c)M_+$8e#i&VbuZ>9v!%1edgeD`D;E`abS5u9xWhG$jt9 z&Y1Q)c5J*wp;-mluajS0Q*zX)TvAkMtuCIZDAZ-AHhaRawsr9_eubgeRxa|Y)Y~yS zY5|UVfsVRJ?O2vKdrcnnUDd2tEVXq~s}Y90!}!0usT4)Wew?W@cESmE>GhVldgL#v z6PqxE4feG>rZ=Da*pI|>uphIqh4XsdXHls9&YUKzAbz*Zh|#bbapo>JOV5}`-7m2@ zSEk>sQcLP+ApxC@Zu(uE?Ui0UC@JRtA<*9l=x+@4w>!m^aHO>2zcZbUBusWcCnO`E zN&#hVfpf9Qxmf00R5%x{9HZyhgJ=sH|f^OcY1)RFw}oDzEy)s*E`FY-pH4?*cj zbtw=2Ew*oVW-PP+i}j?O6%R53KvUwr#p`$OmyCU{UU zdX4DjPv}LrX%K^D5X|xYi+ukjr?iG~cifpTKg0ZPJW#EvS#(elB2F?|dQj%O@1N6xdighetV_xEajCWa)P+G3sdLnWj64N<%Ecl~@iI(t1*Uj|+02|D z4L1Hfr(|@%7)9WWQ;sjrwy;KXdKI{oSb{TNLDyJItiu_fKCLBPkMk=@#b@T~7kSH^ zv!W1N&he>d!xnAuIU)F*-TDzHiM_X{PwdWaPbuINTcENm;@?=-%YXL9^B%M6wJ<)r zI3%@CcbGXiD~F%;rzKGMie3O-KPwjZk$6y8GDvR;AO7V}%QC4k71+=XP;wAoNJM%< zKb7Kay`Z{A_T7HklrS+QW!Q^|D$q$Tm|N&ydxO2{^_n%%Q&+YvtiF3wqP6$nM{%DBS!>4fq4YU128Ai@nh%XW&mA`%k0Qz{0_b z*h4!X5!Ii5SiwQwU@;e&^_B_v@+nlPyk29OgD)?_moI@*SHv%GfJQc9dKxf2UJKJ~ zm?R}WJ?HP@Xp#y#$8OT8mG-1d~f2d3FO#F2hVNqf9R2EmQq03i&+lt`ctq+I+u? zM!AlnQ$x|I`&wm?-x~Pg_oa-~$2C~H-CG@1@3+cdK4d5jzJ>WR=7Y(m+Pwc3`v1v~UPQ{K-VRIoPG+>l<>i=cuTD--;GLThs?LqD z?U>deb-9z7VOQ5mI)B0-`S59Gh72>q1n6N`;VR(PUI6heD*1M$>A>1_T30KpAHmBV zb)GC!y)sVoDllFCGPl>xYU@NXypOxhfiBL3F4yT7HGHIX(8dn>KpXl%2wmyUqK*=K zG=KKdXi>a}aa@ejSH>NioTIPIwrJmF=lEH7lZ#*3iei7c zpvjB9AoVvRJ@@R4TB~MScHWjdgGPJt0jD^7tvYJ9MG-pFocf=62J6hNcIK>WbaUF` zH~_7xmE$=n{Z>V+Q|(p{FLkkULUU(8Q+@?A&9yEb!>>&IhQk+oVVmdVCMuw5FTiy! zvfI0is$DsQdeZKcwFvsQ)r|x`qdt5_13iO1!#MW$bD+Np^`lGgL&lr_k^O9vxxDk_ zulv7J%J;7&O5j>AbFp#+qvD3`#_yjW_zeq}D1Wc28)*)u2JgGttqka126Zz#n||*o z>}Q;LFsX^qklui>-msVhQw3}?H1=Rp{DJj$n-UE7&CB6b;7gUH>MU7>!siIqRMO=QoUTr<3;2i9R4?A~x2CQf^M%HaZC}22bp51#+UZXDPju3nDm2bZsV-(RY|wXoFW@Ar=~}mieQsXr+5*&OTD^D zL%K&}>cZ17*t42#N}6m|d_O6kbOv-kk3Y`PeHkxOrMX?uV8YxX)1ntP+7nD@?kJp#(6cT z1n+FVE!6H85p(mJ!|CfeXO%AhCzravQe!N0~~VEZ&F49QWPVNMvw%P_^9FeAUx z0?y7VZiX<->o7cPfjU|RbA`dG!yu{xNE8Q2jx$4j^x)2uaHCmRuQF~p50*R$zmAN%w z#HdWYZu4q@Q;_8plsN?+b;mY{P0O+ED%-6}av!qXhcfrU<31$8)miRCnfu^zAClaM zEccW!&3M5zrK zzN@A5*QpIrzEOtnQKUB1`K_b;t{HyABDJB;?-Z5(wf9Q|sKz0xvCTRWDsqZSVfUk; zT2a*<39DWVt6~&XGpec@VbzUceyJSOX_4AdRrLs~ehjOE6jVd1sv=?4kzrMmf@(=s z)g-KXGOUVHP)(_-s)W@ChWRCPAoC)mj+#Z063f z>#_SA2VrqiROH>?xk3#NQiFGY>l}5sLLJ`yy;IcU9JRRln^!LN=JcBfsmLkr)$Z?J zp(+QtC%eCWj>=r2GS}VjpW-}MIIs5mTSZDzlZI853ObQinLK)8m~-j>{#jM1GSzzT z3nW#uvsCRu^PC1j=uyt9ozWm{v7OVDa#QSgFH^m%&GVXq`_FJ@a}Le@e?xM%Pnu_s z#&)6B=!Oj(G9fg`7%bTU{MZ;BFOT+UUJUc@HQ0R*!R^FgbWJ_~K=;#inwYBDI4%tesokDSab`x?xJTO_Sym z8$-ddCpl#i*EzNjY<8#afiaS*)UW zY{)^@kbkTlPP$XmV~p9cSMFS69Y@7EPKt4y6=P8n+qjCCbwi%Ah8$(>csn|^kr9KX z=#}a@B!*&4-m+=26LV6&mZW>FiI>X$j6OdXw+HaaUdyCg1q zRZMmb9=pN(5@2=-NeeM;G$HkCKz#P7*z8Gh*|XBYOdVa8Ho76_T0_3IcBvr|X(0)* z*#pcO#yO0MaWEcxRxEZ&9QG>i#|?SeOd$=(Yu^cv-3`)Bh)o?3lRb)xVve?H=I~i@ z*d^&Gt5Q*F(ooFZ)-KPzv5qluj{T@8L&{qnlgn+I+dIqsUEl^UX*Xnzx8O`cX~^x? z&Ta1GK6lGe&ULx#b)3Ts7o~Yv;Ciip!0O$?X@9o0j{2 zLL9E~kaJ=om&8G?iGlo2ssr^)^?tyAWgYN>_f^(c8O`7HzKRsT4QYPH+Zl(lE%iSj z{XZxNK&LpBF0m>x@hUde8;_Tge|<>)fDyOhJuZHJQVhLuz%z0R%*oeYl(T(Fj*=C5 zO27rV%e--B%Ow9qquqZb|1usICso$KU9zIcXtDE{5 zWx`J~-J9}gegxzAOgYL)H=37fRF-D6F2$&RY#W5uCLeqFco*0r4qEGzb~G&IXk5Bc zPO8y7cw8Te?c32WF1ltqIivxavBZFXOzKZWQsu!w|@awSy68ytWbB> zsX68~+GcWTW81NV8q)=03h&|vvbfB1|IK;A zX&Ctp)U<9G_X!yGRi)Vk;P*muME7e?Z&H~T%ku38VD386$_7!&CY5oqEDtmHt$vv@ zNCI*P^pZa_#P-w-xfaXP`vc0e=#`#7sdqM(wOwgWyD-im)8c(!-5gHbB2L^5c(O)M zCn{!4xy0kBQMN;A?#3-PClktjnLt}#kh;DMuVougZQ7hmq90|nHDi8hSxGVwNSE#!!UfXCgx0?CXirPh}quR8=9>nCfN`uYA>aZiqZy~YkutvYUdP6@-o{d=J;uY ztqsZLW2(rolCui>R*e&FWR%3%q?}Z?=%#W-yU;U-U{f=wm~(Kbi)==ki^KCSS5}aD zILx)thX*XH^pQMYX%&yly7I3=d?)i@48eq&=fXS|CB1^;Crg;0!uL<~%Rw;-&pCs4 z%e)filrU$6Iiyplh-sxs&yXg)z}vbTO1U!iKZ=ii7=>^Q50?2$7tsYb*?ZcNKO&~B z$8lWC(=d>xd91-ZwmY^l;&uu~@dB7SVcLYhHL!!WU`}KEj{eqC4&`ozJvGzos?9{T zF1MRz-_)Fjrpj5~zV9Y%Lyt>nvm}LMa8kP@OQ--9whqka7sBNmZhHAfP}yd+BeL!^ zwfeD$WA+pJ%BG-A$sK0iF#FEt2kUSdHAC?BIjP(8aP%9>fCx+5j*~F!^YN1?+l#R9 z{_V88*{2=a0i{gk-6n_cs^5ZRk7yskT=ceqV6OQRr(lJB15|5_O_wWA*wf29b_xdM z+_6(oP)gK>&OsgLUxbrjUYt?+JSJT}z=}4Zjr|VEM`Jg4x|w~p<{UG=Q@#s#%&^mv z$K3|B-QR7e90$>heNWyHY_+cw&$~T1yUh{#+T(1(W}F&4<+k1`oQmCDSJSji%`(-h zAjQgdN$PBpL{ORHsJf%_)J$r3(N2W1|EX(z2=fE7^DbB$pdXM=wSCuN$=G4@%+=8a*jH2btDnGAECWv_g{q2k-w|xw~ zW{P~GvQtIZ6Ky#BI^`Z2K$A(c`!lO;pLw*HlD1g3snNEzlB7b9p|?!2IlY9+Qo-90 zKwGi;oRX7am^?gRM_F*Y5e?H%!k2rU=yqKs;U(ngu`SmrZN{%CgQ(59J;O>LN|OdQ zgSXS1RyC)6>>P;76KyW4arvg~`}>ZmU58WeoPNC2|s@He$-*qkrIR$;BrVpqpfm&ynB16!@POJ%8DyE=kKBth|G5v zBM~ks$9z_qRC#*DD*BgS9qep$(j|6##H`DEt2$T7_Q7uF*X?ylL(^1;GN)q=1*_fZ zR*^&gj>{;uVa};kOHK{9&6RHH+vWlpS4}Yey5SV)c64Xo=`l!l(6qKsD#|Z#xB69Ts&4>N*AHCywK? z7?nqF(z%A0xxU7sJ=j9#~PAIyq)H?2> z0FFVc5Y{0Elu~aUqM%b?I_6f)HlLy-5{)>wki9Uo=(eJF&?tjAA*?F~+J1wbgSd7W#+{cZ=eAMT*+mFC=T4V43r2Aj7VznmI1!uV zO4)8eOb&tG=I)Pw7OWn4q>tH2=;cL)lrVx-gM2g3vfZ)z5jn-va*EG6O@9d`-}lb6 zxeSgJ6=6yhA+L^M6`}eIYl5dF)et?y_7)8_T2+|YUlj-z^s!@vH|*lng^b%8IK69h z=$*Ym(4+0=%u*NTT{2mnO@Jk&|Jle;u!woq`TLVqxcenZgq`3sR^k z)o@dtBCH)#>lCvt=V0#?bT#Y2$Qdg_I|&!IWs=f4$gxRceyw?zRA4hfm)i(Q$gOLe z9}CVMvaH?^P`aT_1}SYB*hw(Y)x6tRuY(-AoWm-qodKH?Y)fE;opeu`h9O)X{n{EH z2057j-_K*I$`iTGTdCdnqwEE!ahJGKc5bNklkLuv5pk(IqaepQ=fGG}ZxD7IzPy>W zW7wgO`Y@pGkXOcNh5lgGp%aH{7arA^URoT-wOu@Ah6t!X^idg3?GCMVp_{qS=7$VB z9urJ`rDk@{4i45fJggz=g6}mP)?Sl29TxC6)Leo>HO;)sTuk6SDmll|Dn6rtoP8Zivl!Ig z(TvW;0!Xsv+(bJ^ZBr>NWI$AawibmGkG(wVTHVJD(Uw#BAPFzA*C zD4`QE?lR>TbuJogjM((pF1%o#y8Vb@qoqDXmB!&jrmh1%Lsj9P`p6FIZhWj4Zh!HuRdgT8uGYX zR-LD%cF5|(*-k@Uog#p9&1Q*yD#aw{AxF2ERSJq#3PTN%mO3%RE}J2Ts@^l|&}Nz; zN!vd&iIsyK^k=2FWiNZex z6XFl-46K40tTLQ>2CPfWf*P$uY`7lLDQ|krB^FO;8=!=DYZFGnaAOpQwBg1H=gw;R z`n)4{xwox-nUG#_9dL*t4`!HWpR7tn*kYF4jv8Kw>I4|CFp0lv5njR2f=6mjh%F7P z2tzp7b8Lgn!2+$rC~VOkj8BNMVKKsn^@MgStQu^>Cs-{oHo>OI38siCO_3|kV_c1e zoWrRbNAa*`NJEN?%#d5~K^}XjHbWRfm|%v;F+nWD2(9A}ZkNkFq6DN7=11!aHa*nv zA#O807&1sQKaPPArxYzQI3gZlo*A+PUbLI<&j?+(Y=<=^%;NT2NE8z#T(z6p6zf(#SCUD= zHo_)w^%;j?UcOZvd;ynN-3N~_1Xj$8;VWoU-*|+o`au|P{DAtw2u#8(jy!wyYF%4F z=Ks9hYw+DWm8$OF`r($1pLL}q1(hz{&yBZPA+1SrZr?1~t<8~M?cf+nTw;=}fD+rB zGd&Cv7!*bv1q&3IBiCKZj&Vs{`u-!%ZJv!4W0sk=A}*c~Vo`I#mi9Ug8`_QEWsvNJ z$3;0oSG9c-#Bpsi!XPJLTKtjC2&>`?18y%c=BUW#XpP>#&AzC0 z{)G0otoLV|ywNtyQ9Ha*uWq`zC3l&l6{bU*3)-D0G9um}&5b{OHZ%kn6@NH_zj2m% zpz;gmLZ36JJJukoJ3p$9KhC``Hr>rO9qzy)22|&5LOe5*7*e*ib^mTniMGu=C%z6baG+HJDs{#|+0k+A&I=@x>HXOnsy|p$#=byrXKMPB+CKqt+ zxN(OO+`sb{C=0gms3W^95>%?{U+>T<7AiH zh_SapeLwEB()H{daPNzkdqK`Xo7;P_w8cS}r{_@>|`n;gjtUOJJ|z4ZmXTO$7d{LutKqR&ZM)i!N_?_aqoo;P?FLmaf0XyYlU@N1fon z0e0JsFUU8OsyEd4JE;Q^mvS{iB^aag+euhdKWN}5Z-YxT{MRo|+4jI^U=u5DM`QC? z=kc%*V7JS*9V2IWLC)|c`ar|w3&+J9*jd<{3o2|&S?{;)im{boeJzc>^MKQ&nWkcRXmkbv~G}OGVEtEoMbM{X)?6au)%C-lcAjjs||J*M%gT! zbI#`_=|VeV6%)?qJmB(BW?>cAG!K}sdG|yNNMo4RuHl@^&)kAfww@4GZLqG81qCjO zOOvn};t*#cr&rJBU1ovb5h9uo{f@B96j(pl7H{Muz+QACLx5Q!z%x|@ zLj`%aA+X?*rWe2j7OZ; zKJO;U0d<`Un+M|R7~}hxX6qMrDmq)3L}LpUm==vKXrMCKc}QpjcMK+R5`4HM9&trI zqfKwAgp{9?Qp(uzjFYHNOR5mYF}LbYDXK&o)L=Ej zW&}fv4H$%Ow@cFNQpl&_l9rWtw+@34bQ@Y{?ir0UOo~%2Q^GIik#-!n+~;;EeICj9 zgN;3Ixq7*F$h(@{vav{$um_89%d034HXjC?uO1AkPS|`nFZ@u0TQ>Z#ix%xPOrkw5 zf)`i8i#8vI$cgAvg~+N#ERt`x3U?GZjW5X2Ev!ClxP1s;X^J;>rdA%&u%hi4b}%KR zwCS|}9M~!7R%I~EV5gu}X|QR*QyNNA)xj|1H1(kjlek8GF!spi!+!W9UvZp)Cs^gn zSK$dlN)_oxYqI1J`|fkiFTd9vqTt05vC3o0o-@3-`O{ktTp%YJ%!-RBQ&M=t16cz3J949w9Sli~)G;-;8_i1g<;2yz7F(Qre_?cc1bA_Sy7 z_Bmd8Xy3e8)x;Q426LQ!))6-|mRvT-DidSCy&}^Ouk2$7!;y3H5!A#h8)L8&i;7XS zozy;;p_OBXunA%f2FYG6>=3IMQNI{=X}g9ZN+jEDf+7q}Mx7>Yr^4{VvfF6eIAXOS z3~MkzZ5Ux+wBWWx7hOWWaY$AddUZCeDwyMBRyDykKsS$ex;?a*s)F^6c}~ZYvH+|u zbg|W$P$Gcg2Ad&^sF1cv);J!~D@k@9GT;U~4GS*W(keoP{jfMVa#UOFdm6NLiFOGtP@A(mOSz4AmW1&>^Idk_X{TJaV6yQ>c(K-+iYsA!y^aStFrHIIKiqw9-Od?656%-9+8@mh9xq@ zIL}vKrw(j^62gZf`r@N71?F&?l$v1QdztWa!nggeTBh-qFlhS26kn-=#Jr7(U2Lj@yz>se4iu|;W) zf(#RRGD2HQj!fdP)QH*WKw@c?#nSKtBc<{A%RGobMRc5{sfSYsD;6CS`&f0U}8=H`y0 z4H?&G72RgPHpc*+t)AQTKSVvx!1mefZ?m6G{=0L3ADYkvo1i&xo^^5S;qB-_VdlO8 zrv4GspjqWjoXYs@@;y^@?-J}@9em%3Tf{gXyQKxTpjVmj!f<(Ge63|LycdpmY3^hQ zT_?pXH$g3~FuR5M24nEE%iOmRzjYdB#ynX8932C&aC3Cl#=%aQw^8nq`FDb_?ZbNI zWgTX%i+eIoC0vC&?c`V7W6#c{Vj!KeU<2e!qlM zQYM|ky2{LCzh8(HEc^Y2K*{#|%~AF2_uFbw)<>y$wkbQASWGO*d*L&sp;Hu;JQ~V8 ziS`??r1ndOl_?PyOF98ZIxk0DmF`#P7mdJ?#^tyfb6J&!i&uQtO*G;>HvuWDhKu{f zlTU+;ZE7}Lyo-rjb(00KPnmDf0QY46`{Ju5c4J1B^j1VKslk|RlY`I=H=d-^jk?s{ zl2cLZM8zGHD$(bGa>I)LHq7D7vn~|;VjWHw7!<8;^0=AU!5?~Ut6VR(OU?;#TUtZojt9{n{j59F| zJmeIT86n_xO++0od#Bs+XBl~KtOG7;E^4^F;C66uQs=;WVBWE&hIoSDV5^uzcq`7X znI%;<`^BA4oyA>Yryz62%4w&dUuk_)birB9LxmY=7w!0`VGr-v6l8ek%sQ&gK?Q1n zRRG^zlruqI0pItk<1HAw|}d8;Ru%o5f) z@^RIudhoomSQhn8uDLXfdx^WO$$s+V3|mbr1;T$dZk=h{>WuXio3*3(`bHctZ``ca znzB+JJ@=kK5=L%-R0l&^GxB#D*4m^?cY?K|Oj}lG#_7@vV68G;x&Z^zhPN{b(y|1U zK{@-ZOIxL>qRd#8i7;hF!y4<4elie;gp;zqe z6b_yxG7>62H#;0TD>pm4kE1s&E(u3(Rb~n;*1F89wAgm$tB!r1>;kN8iCNoD%MP=4 z6g{q&Ix_*rHZCr&bF$Xt;#!%wF_;%SCHqfEoGN3zX3`}M%qrK!PRFL0Svwsu@v>ud znyh$wI~#_~+Jw#eTvpGpd!4|}MYZYO>4Ke4fVjt~GFhF7GWcw@W#+ciFzB*&GE!(3 z#LX^AquG&@+i*sooSsukgrDU!*jcFRG#KvgmR4iP+b~oM*`}Y%P{)SlI%fRy zV70^)n{FlajVhsU9&L6B?A;Jg--hSYwD}ado^~4Y`;_^xd(-5Xow!0SeRG$UZ9NNh z)r;<*>(Xdv<_gns1|9!qD1A<@??q}wUASXM{(VCphSgJ43+p*~DYk1aIcDpK&Dq^z zVN9*D6EUfLSvwIG<;Vtcb6M{h;7r)`H6tXlj*F)z)$VLKWaX^RU+X-+YP$vc+-4FB zsPFXZ#jHsxgeA4is_Se>yEUfXa#>>PIAhXpY#v)izuBu0)^7&T?+nw=2-UBFMeR(4 zU7ndge@~#-8wxE8hr-ckBl7Qf%5n62OrKnS#>3_0@~gOf#@cBB3$3u0pok8H!) z`-tRJJYuNS^xJi(;&j5#cBx{FC?VZyM(G!_F@+XBW{-{e`CLqxj&f&RpEl3UsGF?2 zG_U%Rh!CoEk_=U2LVaXOQ{4)u#89enb*G<^HFW(=&WN!wQFPrj4DC2vOc4*ql2pBI zbUmBXllc8?PT$q^R@n)tf=q%iw1!NqZ`gEar@|Ed4LV01uV2{h1f)3^);A1?Sf$uf zhGT#!J+7^Q@fJSD&P03D*EIk-9dSB-kyBAa!P&NrfSk|Cbff1QG9AP5J9S3Cug&C! zOO1^&T)Ls$!N!3I`du7cI;!-?N%e^p<`QFM+nb#1E*_o3<+<*5LBgPk7`eP7%#ahx z$n>>)LlNz`e0yCc&5+!DmH{^}wPw>PHP#=}bcohTWZNmY?Q{sg9{jxNeb{+?=V0U) z@o;P@V>19gh&w*s@IeuTU|h^L%56LTja_tL9buM!P@yB#=m&-kx=uj{#=|UWhTlf1 zYiEY=X-M~LF~w^K3h*g2a;cIS|v z&qzeb;If-P+I0Ib>MfU5{2T$7v(jg;9hHWg z(0pp_oZl7lWcIFVGh~A)H3T~sMz=GhkcOeZv(>;(La=2gWE#|1fJIuP8f@a^vRcrs zYA}j+JATHEkWkA`$gpa{40|DV3eJuijn6BK(evD!G9l9E`oRf<@_f&L6XwL#7Uk`# zOSg-H6bw7|qS%b@W2dYKbU3|c7=9`*erisRz7064IvkZ@g*Y75D4azW#=<&*@fG{~ zfX%1*mK~728P!fj9M;00QM3DW{lL$0^;PlvT8-$!?>h+hXQyKhw#xPZmQ*2jbUG5? z#$J%4oerBL@;V(hN%+~%)QWOM-o6f;ebyh+u(ug?hzY%kXUy%k%ZCqYnixROorbZW z5ms1t8Sr)Wh^V?mM$S&-E|y^ItxxQp466_W;w|zn&wW9x#g@3M$SKb6dFF||nR9RA z>}Q@BVB)ly;?%Rzfl|}$bX=P^4Mpx^NSi43t29<4tUk1%;C8}YrQqz-a28e@=2ac4 z%#;mKLBy%Iqv*GLbzv3OBH*$DJH^}&g9~O((eE1j6q?DFO+l*+p%%?9?=t-snwY>Q zht@tZ1?y{=U~hIfwNDh}@7tRsyYTtg8OSh6?&}d1zaAJ)+~pz6GUu_-zPgS@{#)RpdkXF5dZDc%m7B7D}t*vn`1j7Y~%!(e8l z*OkBxh8nix-v5PKw?JhmpM|@!$}lVbdJX<+69zjBMzoaGIFqEIL}M3O*pOnQ49pYfq>utEfuL*`67MUpR zOnCUdVmQD0&=4ljZ*z2sAbs3N|Get1##?czw_Rf^&QsX4nyGuv1{Dp})B&RzBmF zpjCxgxJ#=F>nGZ^+us4F5YYrV^xuZnbOgZT7w(4aT8o`tM1q_GP#@_nz#`CpTs8S&JL^(^YjO-m@P~Cfhgin>Kqg@$Oaoq#7Gm8b*y0%+ z!YMZ5l>d3{qVKOJHf{E!giUG_eNX@Qd5KmBz=+Vs7;|S2HYp?>+BCCs z#VbVjAU;kjSi*vw1m>trz*H z&FW4-1UK?Gf0_Jtt9FTZx89PMu(PYT^H&Ap5$q{PdFoZh*cGvR;(vYp?(-nt-y8Hm||^O=|=TPyNv4z zF&axvPQ%mtRlVZ52XQ9kTw?sZI?|?g63j^ylb2{rx<^(VRvB(%RnGLbX0An8Z%!IQ zF?=$A3PQ1Sk#t)r)|tvMo2$*vmQ~I}m863XaI4>whJ{?ms1fsL@fl4v z{m2#O*$up>n+H44%B&9!<3=8#N*HFfsb$IOWUVvHE@I6)%xV*D4HaZ}W*LU%GQ4Uh z!e*8&&Vx;}hEfcnWOW*h^PXw)8r9}b+8$1s)8w+B=jx-sOi(9sOtQZ#q8kTs0 zH~j(fsCT;;i&}ZkvU4A;!F#nk_fadqVP|4q4%AJl@C|toW6ZKiZLwtKLY+p1_Y)5M z9o8UBM+DY;ka>2L9acjrMOg3s2qhtmVrOHD*ZFLgS;31@(LPHX6HO=k?RGjWb!$`; z?E-1s)fQ)R0%T%mBYOt#lAVnKyi3EvuXC^*>r66RBpca88~r8ROBED&(?K?mb}0X* zOZ&{jV!CanwK=AGnittB#T45sr&fthd`u~r?%fJ8=W2xCJsR3#G6vMn#)QkG&uf2W zO~3d5tzEr_&rhh@Z}QOiZzk41eXngxs6 zJYx*Udeft9C&JEyFyKF&0O8$)S9{a#T?dC{bB>w zQyFl8{w3a1S&(=epZ}q$Ry|`cI4920MlY!inrVeCD}e{s>~V}wRT(ga34dXWc@;lS z9PZu-H>ABnonnozzm&O%w1+cq-#bjI1|#dCPv$jJrt84Y^p4riOQwuz=9@@zVFes1 zzH8l@sB&S?*&uFXXovdT_(94@GH0~HWvmgt8&!n}MO4|awY1^bBOgv(8s2} zWs~U<>`-L4Ra0ssY^u6LRGX1i{^&-4i6wT_oYbH?v{ zGzE4S#B=P}?J88+x8L;+Tsa3-N-z89TYiA+TEKEBAH;x*(D=jqXf^LCe10LV#7v>u zpt<6})uH3vwux_DOs$vZ;4g$Fi`jR7n)scS6Xz&pBQT|U#Ud!D8=%T9~(_=AV<*0^%^Mkg1teB~=HVM4DzVJxJVOFQe^*)B)Lg?AWKH{R!o zvgF9ViW6@{-{9xFM_n!0<0)@N*Ja|5p zMRM?^NK^IX8r|g9{bdP2l{3(q!5U|HEynD?&HdHK6|1Y;+{`&dUG3r8*R*j5cb-Q% zDZ+$m($Ji7ic?b=@W2eZ0B4p^&NOH2Gie;5m}mx_;?Y#x3#h4zd!0E$F&9^L#-wp? zZ1Kpf@oZmB6+N{Dw&(=k)x=)B8{(b|dg_jySG#5@P96Jm^Aw8y0_TOIALGjuwm8Ol zp?YzH^CI`g|6R|#H8=1Q>Lr>tN=6sbOb*;hM#O&N3K4N3MLW`KOSh9wg7bgoi;LQl zUi?c4qw1}v12Bd<$|SpuX^aQG^FoCmrVjo}yZLNyyrUvR%Wf11PqAuJ~74qQ*>o4ZdCiCaO znJ~2LO1ZH3DJ^9K=Z&(VO+IwVhbyun;l|T^sE6+`?l0Zfd-4?pVGL!&Hd`LQoD+Rq z7uVr_hH|24E?l$cK5UgTVhqZdlMfMYUCo|buvLe4X7<>My-Igqg#AQ?O$4%Uh7$ zCHC?mV=gO9o_oP%b%FEllHTw{2CTqpS79yH6*@S*PjKE{gD5myz!x#QcSg?J+jYg z;=Q*QD`kp!AxsvE`Ytz;dY&-PKHN~-@ZOIqz#;R6s=x&GbZSR#9_4IpNjqx>ypUYX zQYA>y!sgO0$mNprUwt5N1yy}Ob4G88m(r}UZsn{*E!gn9(Z+8#^t7RB@a#QURfE{h zikd4z9iFlWH>Iq&MM+ghVE&vW{h$a_S+?({1yiYOn@8S?Q%4X3kzd+}Q#CmGkKK1Q za}Ran%sx!inK$Gg%tfgdy!@=V7Ht0ZiqbkALRhomYpg9}&7r>xcloDpDXB;7`J#^M z!9}>HlzMY3zMzphEQWB`nllQxE6UD^{V%TQY|<54!DlmK-V}y>LHAnCZm8@o?SkFE z(YrR7Fj{Z;$qAJ}J)!cBf4YK!x`TgOwf}A%{j>x&Y=o)vz}||{hpTCuWP-ZFQP_{1 zGI7q}CW-$|!b269H%nxIrpC<Zhzi1UZz70{nE*ZrkL7*1+GVy|4>&ZpW==O!b0I=RrDQDhqC$ z2YHnAB3YmbL0QmR(kte{Pa!6<3j4HW51zQl6Y79+Ky@JG!R))gqbk-RsRfD8DyasC zRyQv_dA?8&a%QNv;3MlFZfrjII&*Smv*N26ui9oOsOb|h!ZUfXg1)(|WQmbF1t*Aq zP-R$KQZEjI+eTeu{(*f+xrcP#e6g05po6V|4~{d%{FJHl))!S~85dD98=>_csNT=c&DAUSHQt@6af0>bEy%W`F)?wE833W#?E- zSpkPw*;gN{VN0#%9h$j5D5xjOe=v|xU9$J}qQy3%t4PSz{CjAXJ!~Na#H&o9! zLf;%_H(147UuPa0;mR%M2yxb`6o+>19%uf%%b;q#{@QWa3~U7*TztckIV<6bk$H!- zn!NtvkuUb;?cv<8hc6C}oaNtBm7xn?IkZD_?5m7d;l{!om!24^1a;=jH13{(p(oLCc9q93AnOwmctOZ<)pO+fzx4WUgV*I@iHBBPyWz(2X}FCs z%v=qMq~i7?8u7>b-+SuXeCG{2Rp`7g;HpkbIS|HAQCt#_+Fz(z)4x=y_@CYR5ykv5 zz~^zn#B`0KKl_t)E@q;N_Dj(=f4^;<^!s1vI_sbJnaZ1Gf2R~R{Ou<(`T20gJn5^# zSgLK+Yy-PyFHzmdYwz7%iX-p9^gNlL2A|Q;y;#_65;S8?Zg=Kw9)cV8*?#EA%3(gJ z$?N8d#pzUnY7qN2V$B|U^>N|)roXar;Jav@;FIea?Vs99eeSE7(isvC;5u{A-P^D5 z7}V)SxRH~y4x#G0Zf&ZRRoP8%kZ)(zcGq`Q60D%Ad-#TF?0cu@*ON)pI{AUGJtq~XYpmKgE)kRUM=xUTX?J11 zbA^jfdLeJ$N8$+FhV$6*)xh20&UjzDy7Y}czAh=T>KVF_AZ8@FIsf!#&v`ZY2#a@7<*EAgtN+d3!rKhr1=3YoHMzOnOKAt#9=1N zc@7?{#LTjf>$6LZ8d@itB{OTU6ph?l@?g~%m8`+M+U0#rm{w=t(;`_Olg}-@cLTVp z8Ce;Te`VjTXwca^OehoBYu#yz$c!@mrbY&|=raRiJb|~E!%yX@Yh`*%jTp7)DP7_* zAp&#u%k#{lW%Q03(`bwCF~GAqVH%l(J&SaR7zb4gM?@F2IRU%O=+P0*?jlGthOcPQ zoxAM*O>oQ1=*UIpkC?lC4fu&JI@b_ZddBooWb%xeJ6gD7x}eG-TjEoAs5$rg^7v!Q zOr8yRh%S@I5GG=Z2V&0TnTLglamF-Yp*o>x_G39 za1b-kokjGC7{u8CTMl5JrmmwA7_o@P8B;48;J*%-Z$R`WL~ce;$rH0OD4_vL=wwlw zB{3V6qVb2Ar4gGGvwVnJEyS%$-=XW;rL{0OmKuXUo-v=*IQ3(<~l zvVSunUQ&mMoOI?2nSr0qHpeHIXhpAumqK$9PIG!A@}!g1cox?Z1I%PPA-s3^^+O8d*^aHzc;H?9!t4spg&FjT=zGFT&RE4X%fT zofH$D3;u@^2qq3U{p+sGs>?!@;w**aPhFF>`IGPy)4*3h;FeKUexWwxs15~~s!DL- zinVCi+uf#89EZJ-b2C?y;GvlLx=k*8VXWjGk=V0qol4R~_h?g1j&Wu7sVL`Q|8dwE zxudo`T050*S3E}%-n+sq8>5Nrc*m^CRI8cx7@lK?>T+F;VYYkZ=PF*R5}pa=XB}m0 zpV{;nm3%-o8N+Mdz-vFkYDZL*HI(uS%=R|>!^+(@uDc!#=Q#|wYRes3hjs&Ua2u*G z+78%(=We2Sbf_|Y7>QjlNgh?e$*pDRJ z7vy^m79??FCF+Pg-@nWLYmo8Xr*EJVyq(EAXwrY$)UxBioSuV{$8@4=xDzoakKSC2 zCZ%YXr;_-8*L>sP^^MfOd?gd!Nustq@>+`a#%_4ySJi%x=;%NC|9}1$zreo%pu5Uj diff --git a/src/ProtonVPN.Vpn/Resources/32-bit/vcruntime140.dll b/src/ProtonVPN.Vpn/Resources/32-bit/vcruntime140.dll deleted file mode 100644 index 855ca3a9922d6c332641289989676d1c55a440f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76152 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 diff --git a/src/ProtonVPN.Vpn/Resources/32-bit/wireguard.dll b/src/ProtonVPN.Vpn/Resources/32-bit/wireguard.dll deleted file mode 100644 index ecca024ff6665fabff5e48d96edcf764deda6521..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1885600 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

    ^ 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

    a2kg|8);eiGb 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%0A%$ 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

    0V2=>+*&e^cyz#61s}J+T7j`imEmh@!$enB#lD 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 o)nUgg&t>iPzCNWtPdv=F>F}CJs#zZRQ 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

    L>S~zUsGz(9*aJGe`7QV&8i!2-n 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 B6o>!- diff --git a/src/ProtonVPN.Vpn/Resources/64-bit/libcrypto-1_1-x64.dll b/src/ProtonVPN.Vpn/Resources/libcrypto-1_1-x64.dll similarity index 100% rename from src/ProtonVPN.Vpn/Resources/64-bit/libcrypto-1_1-x64.dll rename to src/ProtonVPN.Vpn/Resources/libcrypto-1_1-x64.dll diff --git a/src/ProtonVPN.Vpn/Resources/64-bit/libpkcs11-helper-1.dll b/src/ProtonVPN.Vpn/Resources/libpkcs11-helper-1.dll similarity index 100% rename from src/ProtonVPN.Vpn/Resources/64-bit/libpkcs11-helper-1.dll rename to src/ProtonVPN.Vpn/Resources/libpkcs11-helper-1.dll diff --git a/src/ProtonVPN.Vpn/Resources/64-bit/libssl-1_1-x64.dll b/src/ProtonVPN.Vpn/Resources/libssl-1_1-x64.dll similarity index 100% rename from src/ProtonVPN.Vpn/Resources/64-bit/libssl-1_1-x64.dll rename to src/ProtonVPN.Vpn/Resources/libssl-1_1-x64.dll diff --git a/src/ProtonVPN.Vpn/Resources/64-bit/openvpn.exe b/src/ProtonVPN.Vpn/Resources/openvpn.exe similarity index 100% rename from src/ProtonVPN.Vpn/Resources/64-bit/openvpn.exe rename to src/ProtonVPN.Vpn/Resources/openvpn.exe diff --git a/src/ProtonVPN.Vpn/Resources/64-bit/tunnel.dll b/src/ProtonVPN.Vpn/Resources/tunnel.dll similarity index 100% rename from src/ProtonVPN.Vpn/Resources/64-bit/tunnel.dll rename to src/ProtonVPN.Vpn/Resources/tunnel.dll diff --git a/src/ProtonVPN.Vpn/Resources/64-bit/vcruntime140.dll b/src/ProtonVPN.Vpn/Resources/vcruntime140.dll similarity index 100% rename from src/ProtonVPN.Vpn/Resources/64-bit/vcruntime140.dll rename to src/ProtonVPN.Vpn/Resources/vcruntime140.dll diff --git a/src/ProtonVPN.Vpn/Resources/64-bit/wireguard.dll b/src/ProtonVPN.Vpn/Resources/wireguard.dll similarity index 100% rename from src/ProtonVPN.Vpn/Resources/64-bit/wireguard.dll rename to src/ProtonVPN.Vpn/Resources/wireguard.dll diff --git a/src/ProtonVPN.Vpn/SynchronizationEvent/SystemSynchronizationEvents.cs b/src/ProtonVPN.Vpn/SynchronizationEvent/SystemSynchronizationEvents.cs index a56868e02..08f575fe9 100644 --- a/src/ProtonVPN.Vpn/SynchronizationEvent/SystemSynchronizationEvents.cs +++ b/src/ProtonVPN.Vpn/SynchronizationEvent/SystemSynchronizationEvents.cs @@ -42,8 +42,10 @@ public ISynchronizationEvent SynchronizationEvent(string eventName) { try { - if (EventWaitHandle.TryOpenExisting(eventName, EventWaitHandleRights.Modify, out EventWaitHandle eventWaitHandle)) + if (EventWaitHandle.TryOpenExisting(eventName, out EventWaitHandle eventWaitHandle)) + { return new SystemSynchronizationEvent(eventWaitHandle); + } } catch (UnauthorizedAccessException ex) { diff --git a/src/ProtonVPN.Vpn/Wireguard/StatusManager.cs b/src/ProtonVPN.Vpn/Wireguard/StatusManager.cs index 66c125d76..6e4de99a4 100644 --- a/src/ProtonVPN.Vpn/Wireguard/StatusManager.cs +++ b/src/ProtonVPN.Vpn/Wireguard/StatusManager.cs @@ -95,6 +95,10 @@ private async Task ReceiveLogsAction(CancellationToken cancellationToken) { _lastError = VpnError.NoTapAdaptersError; } + else if (line.Contains("Unable to configure adapter network settings: unable to set ips: The object already exists")) + { + _lastError = VpnError.WireGuardAdapterInUseError; + } } try diff --git a/src/ProtonVPN.Vpn/Wireguard/WireguardConnection.cs b/src/ProtonVPN.Vpn/Wireguard/WireguardConnection.cs index c341bc941..837ea9051 100644 --- a/src/ProtonVPN.Vpn/Wireguard/WireguardConnection.cs +++ b/src/ProtonVPN.Vpn/Wireguard/WireguardConnection.cs @@ -61,6 +61,8 @@ public class WireGuardConnection : ISingleVpnConnection private VpnConfig _vpnConfig; private bool _isConnected; private bool _isServiceStopPending; + private VpnStatus _vpnStatus; + private CancellationTokenSource _disconnectCancellationTokenSource; public WireGuardConnection( ILogger logger, @@ -117,7 +119,9 @@ private async Task ConnectAction(CancellationToken cancellationToken) await EnsureServiceIsStopped(cancellationToken); _statusManager.Start(); await StartWireGuardService(cancellationToken); - await Task.Delay(CONNECT_TIMEOUT, cancellationToken); + + CancellationToken linkedCancellationToken = CreateLinkedCancellationToken(cancellationToken); + await Task.Delay(CONNECT_TIMEOUT, linkedCancellationToken); if (!_isConnected) { _logger.Warn("Timeout reached, disconnecting."); @@ -125,6 +129,20 @@ private async Task ConnectAction(CancellationToken cancellationToken) } } + private CancellationToken CreateLinkedCancellationToken(CancellationToken cancellationToken) + { + CancelDisconnectCancellationToken(); + _disconnectCancellationTokenSource = new CancellationTokenSource(); + CancellationTokenSource childCancellationTokenSource = + CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _disconnectCancellationTokenSource.Token); + return childCancellationTokenSource.Token; + } + + private void CancelDisconnectCancellationToken() + { + _disconnectCancellationTokenSource?.Cancel(); + } + private void UpdateGatewayCache() { _gatewayCache.Save(IPAddress.Parse("10.2.0.1")); @@ -152,7 +170,10 @@ private async Task StartWireGuardService(CancellationToken cancellationToken) private async Task DisconnectAction(CancellationToken cancellationToken) { _logger.Info("Disconnect action started."); - InvokeStateChange(VpnStatus.Disconnecting, _lastVpnError); + if (_vpnStatus is not VpnStatus.Disconnected) + { + InvokeStateChange(VpnStatus.Disconnecting, _lastVpnError); + } Task connectTask = _connectAction.Task; if (!connectTask.IsCompleted) @@ -164,6 +185,7 @@ private async Task DisconnectAction(CancellationToken cancellationToken) StopServiceDependencies(); await EnsureServiceIsStopped(cancellationToken); _isConnected = false; + CancelDisconnectCancellationToken(); } private void OnConnectActionCompleted(object sender, TaskCompletedEventArgs e) @@ -174,7 +196,10 @@ private void OnConnectActionCompleted(object sender, TaskCompletedEventArgs e) private void OnDisconnectActionCompleted(object sender, TaskCompletedEventArgs e) { _logger.Info("Disconnect action completed."); - InvokeStateChange(VpnStatus.Disconnected, _lastVpnError); + if (_vpnStatus is not VpnStatus.Disconnected) + { + InvokeStateChange(VpnStatus.Disconnected, _lastVpnError); + } _lastVpnError = VpnError.None; } @@ -243,6 +268,7 @@ private void OnVpnDisconnected(EventArgs state) _serviceHealthCheckTimer.Stop(); StopServiceDependencies(); InvokeStateChange(VpnStatus.Disconnected, state.Data.Error); + CancelDisconnectCancellationToken(); } private void StopServiceDependencies() @@ -288,6 +314,7 @@ private SecretKey GetX25519SecretKey() private void InvokeStateChange(VpnStatus status, VpnError error = VpnError.None) { + _vpnStatus = status; VpnState vpnState = CreateVpnState(status, error); StateChanged?.Invoke(this, new EventArgs(vpnState)); } diff --git a/src/ProtonVPN.WireGuardDriver/ProtonVPN.WireGuardDriver.csproj b/src/ProtonVPN.WireGuardDriver/ProtonVPN.WireGuardDriver.csproj index d7f175af1..ca6091849 100644 --- a/src/ProtonVPN.WireGuardDriver/ProtonVPN.WireGuardDriver.csproj +++ b/src/ProtonVPN.WireGuardDriver/ProtonVPN.WireGuardDriver.csproj @@ -1,72 +1,23 @@ - - - + - Debug - AnyCPU - {7882140D-32E1-4AB5-853D-F8DED5256DC2} + net6.0-windows Library - Properties - ProtonVPN.WireGuardDriver - ProtonVPN.WireGuardDriver - v4.7.2 - 512 - true - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - true - latest - - - pdbonly - true + false ..\bin\ - TRACE - prompt - 4 - true - latest + false + 10.0 + true - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - + + + + + all + + \ No newline at end of file diff --git a/src/ProtonVPN.WireguardService/ProtonVPN.WireguardService.csproj b/src/ProtonVPN.WireguardService/ProtonVPN.WireguardService.csproj index e5b3330ed..c029f7187 100644 --- a/src/ProtonVPN.WireguardService/ProtonVPN.WireguardService.csproj +++ b/src/ProtonVPN.WireguardService/ProtonVPN.WireguardService.csproj @@ -1,66 +1,27 @@ - - - + - Debug - AnyCPU - {A0A9C7B9-4A33-492E-BA54-8E8E600D3D66} + net6.0-windows Exe - ProtonVPN.WireGuardService - ProtonVPN.WireGuardService - v4.7.2 - 512 - true - true - - - AnyCPU - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - false - latest - - - AnyCPU - pdbonly - true + false ..\bin\ - TRACE - prompt - 4 - false - latest + false protonvpn.ico - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - + - + + + + all + - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.App.Tests/Core/MVVM/Converters/BytesToSizeConverterTest.cs b/src/Tests/ProtonVPN.App.Tests/Core/MVVM/Converters/BytesToSizeConverterTest.cs index eb8efe420..5071675fe 100644 --- a/src/Tests/ProtonVPN.App.Tests/Core/MVVM/Converters/BytesToSizeConverterTest.cs +++ b/src/Tests/ProtonVPN.App.Tests/Core/MVVM/Converters/BytesToSizeConverterTest.cs @@ -17,6 +17,7 @@ * along with ProtonVPN. If not, see . */ +using System.Globalization; using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; using ProtonVPN.Core.MVVM.Converters; @@ -57,15 +58,53 @@ public void Convert_ShouldBe_0_WhenValue_IsNull() [DataRow("999", 999.0 * 1024.0 * 1024.0)] [DataRow("1023", 1023.0 * 1024.0 * 1024.0)] [DataRow("1.00", 1024.0 * 1024.0 * 1024.0)] - public void Convert_ShouldBe_Expected_WhenValue_Is(object expected, object value) + public void Convert_ShouldBe_Expected_WhenValue_Is_CurrentUICulture(object expected, object value) { // Arrange BytesToSizeConverter converter = new BytesToSizeConverter(); // Act - object result = converter.Convert(value, typeof(string), null, null); + object result = converter.Convert(value, typeof(string), null, CultureInfo.CurrentUICulture); // Assert result.Should().Be(expected); } + [DataTestMethod] + [DataRow("0", 0.0)] + [DataRow("7", 7.329)] + [DataRow("16", 15.68)] + [DataRow("100", 100.0)] + [DataRow("999", 999.0)] + [DataRow("1023", 1023.0)] + [DataRow("1,00", 1024.0)] + [DataRow("9,99", 9.99 * 1024.0)] + [DataRow("10,0", 10.0 * 1024.0)] + [DataRow("99,9", 99.9 * 1024.0)] + [DataRow("100", 100.0 * 1024.0)] + [DataRow("999", 999.0 * 1024.0)] + [DataRow("1023", 1023.0 * 1024.0)] + [DataRow("1,00", 1024.0 * 1024.0)] + [DataRow("10,0", 10.0 * 1024.0 * 1024.0)] + [DataRow("100", 100.0 * 1024.0 * 1024.0)] + [DataRow("999", 999.0 * 1024.0 * 1024.0)] + [DataRow("1023", 1023.0 * 1024.0 * 1024.0)] + [DataRow("1,00", 1024.0 * 1024.0 * 1024.0)] + public void Convert_ShouldBe_Expected_WhenValue_Is_CommaAsDecimalSeparator(object expected, object value) + { + // Arrange + BytesToSizeConverter converter = new BytesToSizeConverter(); + CultureInfo culture = CreateCultureWithCommaAsDecimalSeparator(); + // Act + object result = converter.Convert(value, typeof(string), null, culture); + // Assert + result.Should().Be(expected); + } + + private CultureInfo CreateCultureWithCommaAsDecimalSeparator() + { + CultureInfo cultureClone = CultureInfo.CurrentUICulture.Clone() as CultureInfo; + cultureClone.NumberFormat.NumberDecimalSeparator = ","; + cultureClone.NumberFormat.NumberGroupSeparator = "."; + return CultureInfo.ReadOnly(cultureClone); + } } } diff --git a/src/Tests/ProtonVPN.App.Tests/Core/Service/SafeServiceActionTest.cs b/src/Tests/ProtonVPN.App.Tests/Core/Service/SafeServiceActionTest.cs index 4ea3b3488..8bddae892 100644 --- a/src/Tests/ProtonVPN.App.Tests/Core/Service/SafeServiceActionTest.cs +++ b/src/Tests/ProtonVPN.App.Tests/Core/Service/SafeServiceActionTest.cs @@ -57,7 +57,7 @@ public void Cleanup() public async Task ItShouldNotExecuteActionIfServiceIsDisabled() { // Arrange - _serviceEnabler.GetServiceEnabledResult(Arg.Any()).Returns(Result.Fail()); + _serviceEnabler.GetServiceEnabledResultAsync(Arg.Any()).Returns(Result.Fail()); SafeServiceAction sut = new SafeServiceAction(_service, _logger, _serviceEnabler); int timesCalled = 0; Func> action = () => @@ -79,7 +79,7 @@ public async Task ItShouldStartServiceWhenItIsNotRunning() // Arrange _service.StartAsync(Arg.Any()).Returns(Result.Ok); _service.Exists().Returns(true); - _serviceEnabler.GetServiceEnabledResult(Arg.Any()).Returns(Result.Ok); + _serviceEnabler.GetServiceEnabledResultAsync(Arg.Any()).Returns(Result.Ok); SafeServiceAction sut = new SafeServiceAction(_service, _logger, _serviceEnabler); int timesCalled = 0; @@ -89,7 +89,7 @@ await sut.InvokeServiceAction(() => if (timesCalled == 0) { timesCalled++; - throw new EndpointNotFoundException(); + throw new EndpointNotFoundException("Test"); } timesCalled++; @@ -110,7 +110,7 @@ public async Task ItShouldHandleExceptions(Type e) // Arrange Exception ex = (Exception)Activator.CreateInstance(e); SafeServiceAction sut = new(_service, _logger, _serviceEnabler); - _serviceEnabler.GetServiceEnabledResult(Arg.Any()).Returns(Result.Ok); + _serviceEnabler.GetServiceEnabledResultAsync(Arg.Any()).Returns(Result.Ok); // Act Result result = await sut.InvokeServiceAction(() => throw ex); diff --git a/src/Tests/ProtonVPN.App.Tests/Core/Service/ServiceEnablerTest.cs b/src/Tests/ProtonVPN.App.Tests/Core/Service/ServiceEnablerTest.cs index 3bcee93ce..0467267d6 100644 --- a/src/Tests/ProtonVPN.App.Tests/Core/Service/ServiceEnablerTest.cs +++ b/src/Tests/ProtonVPN.App.Tests/Core/Service/ServiceEnablerTest.cs @@ -17,6 +17,7 @@ * along with ProtonVPN. If not, see . */ +using System.Threading.Tasks; using Microsoft.VisualStudio.TestTools.UnitTesting; using NSubstitute; using ProtonVPN.Common.Logging; @@ -50,23 +51,23 @@ public void TestCleanup() } [TestMethod] - public void ItShouldTryToEnableServiceWhenItIsDisabled() + public async Task ItShouldTryToEnableServiceWhenItIsDisabled() { // Arrange IService service = Substitute.For(); service.Enabled().Returns(false); - _modals.Show().Returns(true); + _modals.ShowAsync().Returns(true); // Act ServiceEnabler sut = new(_logger, _modals, _appExitInvoker); - sut.GetServiceEnabledResult(service); + await sut.GetServiceEnabledResultAsync(service); // Assert service.Received().Enable(); } [TestMethod] - public void ItShouldNotTryToEnableServiceWhenItIsEnabled() + public async Task ItShouldNotTryToEnableServiceWhenItIsEnabled() { // Arrange IService service = Substitute.For(); @@ -74,23 +75,23 @@ public void ItShouldNotTryToEnableServiceWhenItIsEnabled() // Act ServiceEnabler sut = new(_logger, _modals, _appExitInvoker); - sut.GetServiceEnabledResult(service); + await sut.GetServiceEnabledResultAsync(service); // Assert - _modals.Received(0).Show(); + await _modals.Received(0).ShowAsync(); } [TestMethod] - public void ItShouldNotTryToEnableServiceWhenUserClosedTheModal() + public async Task ItShouldNotTryToEnableServiceWhenUserClosedTheModal() { // Arrange IService service = Substitute.For(); service.Enabled().Returns(false); - _modals.Show().Returns(false); + _modals.ShowAsync().Returns(false); // Act ServiceEnabler sut = new(_logger, _modals, _appExitInvoker); - sut.GetServiceEnabledResult(service); + await sut.GetServiceEnabledResultAsync(service); // Assert service.Received(0).Enable(); diff --git a/src/Tests/ProtonVPN.App.Tests/Core/Service/Vpn/ServiceStartDecoratorTest.cs b/src/Tests/ProtonVPN.App.Tests/Core/Service/Vpn/ServiceStartDecoratorTest.cs index 48c785ae9..ce33176ff 100644 --- a/src/Tests/ProtonVPN.App.Tests/Core/Service/Vpn/ServiceStartDecoratorTest.cs +++ b/src/Tests/ProtonVPN.App.Tests/Core/Service/Vpn/ServiceStartDecoratorTest.cs @@ -97,7 +97,7 @@ public async Task RepeatState_ShouldNotBeExecuted_WhenBfeIsNotRunning() public async Task Connect_ShouldNotBeExecuted_WhenServiceIsDisabled() { // Arrange - _vpnService.Enabled().Returns(false); + _vpnService.IsEnabled().Returns(false); _baseFilteringEngineService.Running().Returns(true); VpnServiceActionDecorator sut = new(_service, _decorated, _modals, _baseFilteringEngineService); diff --git a/src/Tests/ProtonVPN.App.Tests/Core/SystemTimeValidatorTest.cs b/src/Tests/ProtonVPN.App.Tests/Core/SystemTimeValidatorTest.cs index 5549f33e3..22aa3328a 100644 --- a/src/Tests/ProtonVPN.App.Tests/Core/SystemTimeValidatorTest.cs +++ b/src/Tests/ProtonVPN.App.Tests/Core/SystemTimeValidatorTest.cs @@ -63,7 +63,7 @@ public async Task ValidateShouldShowModal(DateTime dateTime) await sut.Validate(); // Assert - _modals.Received(1).Show(); + await _modals.Received(1).ShowAsync(); } [TestMethod] @@ -77,7 +77,7 @@ public async Task ValidateShouldNotShowModal() await sut.Validate(); // Assert - _modals.Received(0).Show(); + await _modals.Received(0).ShowAsync(); } } } \ No newline at end of file diff --git a/src/Tests/ProtonVPN.App.Tests/Modals/Dialogs/DialogsTest.cs b/src/Tests/ProtonVPN.App.Tests/Modals/Dialogs/DialogsTest.cs index 0340dd4ee..e2cc4ccd7 100644 --- a/src/Tests/ProtonVPN.App.Tests/Modals/Dialogs/DialogsTest.cs +++ b/src/Tests/ProtonVPN.App.Tests/Modals/Dialogs/DialogsTest.cs @@ -17,6 +17,7 @@ * along with ProtonVPN. If not, see . */ +using System.Threading.Tasks; using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; using NSubstitute; @@ -41,92 +42,92 @@ public void TestInitialize() } [TestMethod] - public void ShowWarning_ShouldCall_Modals_Show() + public async Task ShowWarning_ShouldCall_Modals_Show() { ProtonVPN.Modals.Dialogs.Dialogs dialogs = new ProtonVPN.Modals.Dialogs.Dialogs(_modals, _warningViewModel, _questionViewModel); - dialogs.ShowWarning(""); + await dialogs.ShowWarningAsync(""); - _modals.Received(1).Show(); + await _modals.Received(1).ShowAsync(); } [TestMethod] - public void ShowWarning_ShouldSet_WarningModalViewModel_Message() + public async Task ShowWarning_ShouldSet_WarningModalViewModel_Message() { const string message = "Message test text"; ProtonVPN.Modals.Dialogs.Dialogs dialogs = new ProtonVPN.Modals.Dialogs.Dialogs(_modals, _warningViewModel, _questionViewModel); - dialogs.ShowWarning(message); + await dialogs.ShowWarningAsync(message); _warningViewModel.Message.Should().Be(message); } [TestMethod] - public void ShowQuestion_ShouldCall_Modals_Show() + public async Task ShowQuestion_ShouldCall_Modals_Show() { ProtonVPN.Modals.Dialogs.Dialogs dialogs = new ProtonVPN.Modals.Dialogs.Dialogs(_modals, _warningViewModel, _questionViewModel); - dialogs.ShowQuestion(""); + await dialogs.ShowQuestionAsync(""); - _modals.Received(1).Show(); + await _modals.Received(1).ShowAsync(); } [TestMethod] - public void ShowQuestion_ShouldSet_QuestionModalViewModel_Message() + public async Task ShowQuestion_ShouldSet_QuestionModalViewModel_Message() { const string message = "Message test text"; ProtonVPN.Modals.Dialogs.Dialogs dialogs = new ProtonVPN.Modals.Dialogs.Dialogs(_modals, _warningViewModel, _questionViewModel); - dialogs.ShowQuestion(message); + await dialogs.ShowQuestionAsync(message); _questionViewModel.Message.Should().Be(message); } [TestMethod] - public void ShowQuestion_Override_ShouldCall_Modals_Show() + public async Task ShowQuestion_Override_ShouldCall_Modals_Show() { ProtonVPN.Modals.Dialogs.Dialogs dialogs = new ProtonVPN.Modals.Dialogs.Dialogs(_modals, _warningViewModel, _questionViewModel); - dialogs.ShowQuestion(_settings); + await dialogs.ShowQuestionAsync(_settings); - _modals.Received(1).Show(); + await _modals.Received(1).ShowAsync(); } [TestMethod] - public void ShowQuestion_Override_ShouldSet_QuestionModalViewModel_Message() + public async Task ShowQuestion_Override_ShouldSet_QuestionModalViewModel_Message() { const string message = "Message text"; _settings.Message.Returns(message); ProtonVPN.Modals.Dialogs.Dialogs dialogs = new ProtonVPN.Modals.Dialogs.Dialogs(_modals, _warningViewModel, _questionViewModel); - dialogs.ShowQuestion(_settings); + await dialogs.ShowQuestionAsync(_settings); _questionViewModel.Message.Should().Be(message); } [TestMethod] - public void ShowQuestion_Override_ShouldSet_QuestionModalViewModel_PrimaryButtonText() + public async Task ShowQuestion_Override_ShouldSet_QuestionModalViewModel_PrimaryButtonText() { const string primaryText = "Primary button text"; _settings.PrimaryButtonText.Returns(primaryText); ProtonVPN.Modals.Dialogs.Dialogs dialogs = new ProtonVPN.Modals.Dialogs.Dialogs(_modals, _warningViewModel, _questionViewModel); - dialogs.ShowQuestion(_settings); + await dialogs.ShowQuestionAsync(_settings); _questionViewModel.PrimaryButtonText.Should().Be(primaryText); } [TestMethod] - public void ShowQuestion_Override_ShouldSet_QuestionModalViewModel_SecondaryButtonText() + public async Task ShowQuestion_Override_ShouldSet_QuestionModalViewModel_SecondaryButtonText() { const string secondaryText = "Secondary button text"; _settings.SecondaryButtonText.Returns(secondaryText); ProtonVPN.Modals.Dialogs.Dialogs dialogs = new ProtonVPN.Modals.Dialogs.Dialogs(_modals, _warningViewModel, _questionViewModel); - dialogs.ShowQuestion(_settings); + await dialogs.ShowQuestionAsync(_settings); _questionViewModel.SecondaryButtonText.Should().Be(secondaryText); } diff --git a/src/Tests/ProtonVPN.App.Tests/Modals/ModalsTest.cs b/src/Tests/ProtonVPN.App.Tests/Modals/ModalsTest.cs index 827472d37..3ac64c82c 100644 --- a/src/Tests/ProtonVPN.App.Tests/Modals/ModalsTest.cs +++ b/src/Tests/ProtonVPN.App.Tests/Modals/ModalsTest.cs @@ -20,6 +20,7 @@ using System; using System.Collections.Generic; using System.Dynamic; +using System.Threading.Tasks; using System.Windows; using Autofac; using Caliburn.Micro; @@ -30,6 +31,7 @@ using ProtonVPN.Core.Modals; using ProtonVPN.Modals; using ProtonVPN.Resource; +using Action = System.Action; namespace ProtonVPN.App.Tests.Modals { @@ -46,7 +48,7 @@ public class ModalsTest public void TestInitialize() { _scheduler = Substitute.For(); - _scheduler.Schedule(Arg.Any>()).Returns(c => c.Arg>()()); + _scheduler.Schedule(Arg.Any>>()).Returns(async c => await c.Arg>>()()); _windowManager = Substitute.For(); _modalWindows = Substitute.For(); @@ -58,38 +60,38 @@ public void TestInitialize() } [TestMethod] - public void Show_ShouldCall_Modal_BeforeOpenModal() + public async Task Show_ShouldCall_Modal_BeforeOpenModal() { ProtonVPN.Modals.Modals modals = new ProtonVPN.Modals.Modals(_scheduler, _container, _windowManager, _modalWindows); dynamic options = new ExpandoObject(); - modals.Show(options); + await modals.ShowAsync(options); _modal.Received(1).BeforeOpenModal(options); } [TestMethod] - public void Show_ShouldCall_WindowManager_ShowDialog() + public async Task Show_ShouldCall_WindowManager_ShowDialog() { WrappedModal wrappedModal = _container.Resolve(); ProtonVPN.Modals.Modals modals = new ProtonVPN.Modals.Modals(_scheduler, _container, _windowManager, _modalWindows); - modals.Show(); + await modals.ShowAsync(); - _windowManager.Received(1).ShowDialog( + await _windowManager.Received(1).ShowDialogAsync( wrappedModal, Arg.Is(o => o == null), Arg.Any>()); } [TestMethod] - public void Show_ShouldCall_WindowManager_ShowDialog_WithDefaultSettings() + public async Task Show_ShouldCall_WindowManager_ShowDialog_WithDefaultSettings() { ProtonVPN.Modals.Modals modals = new ProtonVPN.Modals.Modals(_scheduler, _container, _windowManager, _modalWindows); - modals.Show(); + await modals.ShowAsync(); - _windowManager.Received(1).ShowDialog( + await _windowManager.Received(1).ShowDialogAsync( Arg.Any(), Arg.Any(), Arg.Is>(d => @@ -159,16 +161,22 @@ public void CloseAll_ShouldCall_OnlyDialogsWithNoStayOnTop_TryClose() [TestMethod] public void Show_ShouldReturnFalse_IfAlreadyOpened() { - // Arrange - WrappedModal modalViewModel = new WrappedModal(_modal); - _modalWindows.List().Returns(new[] + System.Windows.Threading.Dispatcher.CurrentDispatcher.Invoke((Action)async delegate { - new BaseModalWindow {DataContext = modalViewModel} + // Arrange + WrappedModal modalViewModel = new WrappedModal(_modal); + _modalWindows.List().Returns(new[] + { + new BaseModalWindow { DataContext = modalViewModel } + }); + ProtonVPN.Modals.Modals modals = new ProtonVPN.Modals.Modals(_scheduler, _container, _windowManager, _modalWindows); + + // Act + bool? result = await modals.ShowAsync(); + + // Assert + result.Should().Be(false, "Modal already opened"); }); - ProtonVPN.Modals.Modals modals = new ProtonVPN.Modals.Modals(_scheduler, _container, _windowManager, _modalWindows); - - // Assert - modals.Show().Should().BeFalse("Modal already opened"); } public class WrappedModal : IModal diff --git a/src/Tests/ProtonVPN.App.Tests/P2PDetection/P2PDetectorTest.cs b/src/Tests/ProtonVPN.App.Tests/P2PDetection/P2PDetectorTest.cs index a353b948d..8a34f41d6 100644 --- a/src/Tests/ProtonVPN.App.Tests/P2PDetection/P2PDetectorTest.cs +++ b/src/Tests/ProtonVPN.App.Tests/P2PDetection/P2PDetectorTest.cs @@ -140,7 +140,7 @@ public async Task OnTimerTick_ShouldShow_BlockedTrafficModal_WhenFreeServer() // Act _timer.Tick += Raise.Event(); // Assert - _dialogs.ReceivedWithAnyArgs(1).ShowWarning(""); + await _dialogs.ReceivedWithAnyArgs(1).ShowWarningAsync(""); } [TestMethod] @@ -178,7 +178,7 @@ public async Task OnTimerTick_ShouldShow_BlockedTrafficModal_WhenPaidServer() // Act _timer.Tick += Raise.Event(); // Assert - _dialogs.ReceivedWithAnyArgs(1).ShowWarning(""); + await _dialogs.ReceivedWithAnyArgs(1).ShowWarningAsync(""); } [TestMethod] diff --git a/src/Tests/ProtonVPN.App.Tests/Properties/AssemblyInfo.cs b/src/Tests/ProtonVPN.App.Tests/Properties/AssemblyInfo.cs index 006b3cc98..dedb375ec 100644 --- a/src/Tests/ProtonVPN.App.Tests/Properties/AssemblyInfo.cs +++ b/src/Tests/ProtonVPN.App.Tests/Properties/AssemblyInfo.cs @@ -19,6 +19,7 @@ using System.Reflection; using System.Runtime.InteropServices; +using System.Runtime.Versioning; [assembly: AssemblyTitle("ProtonVPN.App.Tests")] [assembly: AssemblyDescription("")] @@ -36,3 +37,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: SupportedOSPlatform("windows")] \ No newline at end of file diff --git a/src/Tests/ProtonVPN.App.Tests/ProtonVPN.App.Tests.csproj b/src/Tests/ProtonVPN.App.Tests/ProtonVPN.App.Tests.csproj index a56cb1fcc..6a5e484f7 100644 --- a/src/Tests/ProtonVPN.App.Tests/ProtonVPN.App.Tests.csproj +++ b/src/Tests/ProtonVPN.App.Tests/ProtonVPN.App.Tests.csproj @@ -1,144 +1,24 @@ - - + - Debug - AnyCPU - {7F48FD5C-A4C6-496A-B68E-265237C22330} + net6.0-windows10.0.17763.0 Library - Properties - ProtonVPN.App.Tests - ProtonVPN.App.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false + true + true ..\..\bin\ - TRACE - prompt - 4 - latest + false + false - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {3E905528-D87C-4552-A32D-66BF90D14DB0} - ProtonVPN.Api - - - {0CDCA012-BB2D-49B3-944E-CE80D75D651A} - ProtonVPN.App - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {ca44b51d-7645-413a-818f-2c5b57db67dd} - ProtonVPN.Core - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - - - {45A0EA81-D37E-4D7F-8CE1-CE6B6A95A9ED} - ProtonVPN.Resource - - - {5F2931B6-9A77-4F94-80CD-BC9B9A0C64BF} - ProtonVPN.Common.Tests - - - {A0DA4200-6643-4F2C-8450-65B8CE8A5576} - ProtonVPN.Tests.Common - + + + + + + + + + @@ -157,35 +37,38 @@ - - - 4.9.4 - - 3.2.0 - 6.7.0 + + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 4.3.0 + - 5.0.0 + 6.0.0 4.5.4 + + + + + + all + + - - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.App.Tests/Vpn/Connectors/GuestHoleConnectorTest.cs b/src/Tests/ProtonVPN.App.Tests/Vpn/Connectors/GuestHoleConnectorTest.cs index c633f72c9..9290f7a4e 100644 --- a/src/Tests/ProtonVPN.App.Tests/Vpn/Connectors/GuestHoleConnectorTest.cs +++ b/src/Tests/ProtonVPN.App.Tests/Vpn/Connectors/GuestHoleConnectorTest.cs @@ -27,7 +27,6 @@ using ProtonVPN.Common.Networking; using ProtonVPN.Common.Vpn; using ProtonVPN.Core.Servers.Contracts; -using ProtonVPN.Core.Service.Vpn; using ProtonVPN.Core.Settings; using ProtonVPN.Core.Vpn; using ProtonVPN.GuestHoles.FileStoraging; @@ -43,7 +42,6 @@ public class GuestHoleConnectorTest private GuestHoleConnector _connector; private readonly IVpnServiceManager _serviceManager = Substitute.For(); private readonly IAppSettings _appSettings = Substitute.For(); - private readonly INetworkAdapterValidator _networkAdapterValidator = Substitute.For(); private readonly ILogger _logger = Substitute.For(); private readonly IConfiguration _config = new Common.Configuration.Config() { @@ -59,10 +57,9 @@ public void Initialize() { GuestHoleState guestHoleState = new(); guestHoleState.SetState(true); - _networkAdapterValidator.IsOpenVpnAdapterAvailable().Returns(true); _guestHoleServers.Get().Returns(new List()); _connector = new GuestHoleConnector(_serviceManager, _appSettings, guestHoleState, - _config, _guestHoleServers, _networkAdapterValidator, _logger); + _config, _guestHoleServers, _logger); } [TestMethod] diff --git a/src/Tests/ProtonVPN.Common.Tests/ProtonVPN.Common.Tests.csproj b/src/Tests/ProtonVPN.Common.Tests/ProtonVPN.Common.Tests.csproj index e769ae95c..bd206c8fe 100644 --- a/src/Tests/ProtonVPN.Common.Tests/ProtonVPN.Common.Tests.csproj +++ b/src/Tests/ProtonVPN.Common.Tests/ProtonVPN.Common.Tests.csproj @@ -1,121 +1,36 @@ - - - + - Debug - AnyCPU - {5F2931B6-9A77-4F94-80CD-BC9B9A0C64BF} + net6.0-windows Library - Properties - ProtonVPN.Common.Tests - ProtonVPN.Common.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest + false + false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + PreserveNewest - + PreserveNewest - - {03b8e43c-5680-4803-a745-0a104fe6620c} - ProtonVPN.Common - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - - - {A0DA4200-6643-4F2C-8450-65B8CE8A5576} - ProtonVPN.Tests.Common - + + + 6.7.0 + + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 13.0.1 @@ -126,20 +41,22 @@ 7.2.0 - - 4.3.4 - + 4.3.1 - 5.0.0 + 6.0.0 4.5.4 + + + + + + all + - - - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Core.Tests/OS/Net/Dns/DnsClientExtensionsTest.cs b/src/Tests/ProtonVPN.Core.Tests/OS/Net/Dns/DnsClientExtensionsTest.cs index 7d88e391f..6358174fd 100644 --- a/src/Tests/ProtonVPN.Core.Tests/OS/Net/Dns/DnsClientExtensionsTest.cs +++ b/src/Tests/ProtonVPN.Core.Tests/OS/Net/Dns/DnsClientExtensionsTest.cs @@ -48,7 +48,7 @@ public async Task Resolve_ShouldCall_DnsClientResolve_WithHostParameter() const string ip = "125.247.41.7"; _ = _dnsClient.Resolve(host, Arg.Any()).Returns(ip); // Act - var result = await DnsClientExtensions.Resolve(_dnsClient, host, TimeSpan.Zero); + string result = await DnsClientExtensions.Resolve(_dnsClient, host, TimeSpan.Zero); // Assert result.Should().Be(ip); } @@ -57,14 +57,14 @@ public async Task Resolve_ShouldCall_DnsClientResolve_WithHostParameter() public async Task Resolve_ShouldBe_NullOrEmpty_WhenTimedOut() { // Arrange - var timeout = TimeSpan.FromMilliseconds(100); + TimeSpan timeout = TimeSpan.FromMilliseconds(100); _ = _dnsClient.Resolve(Arg.Any(), Arg.Any()).Returns(async _ => { await Task.Delay(timeout + TimeSpan.FromMilliseconds(200)); return "success"; }); // Act - var result = await DnsClientExtensions.Resolve(_dnsClient, "", timeout); + string result = await DnsClientExtensions.Resolve(_dnsClient, "", timeout); // Assert result.Should().BeNullOrEmpty(); } @@ -73,8 +73,8 @@ public async Task Resolve_ShouldBe_NullOrEmpty_WhenTimedOut() public async Task Resolve_ShouldCancel_CancellationToken_AfterTimeout() { // Arrange - var timeout = TimeSpan.FromMilliseconds(100); - CancellationToken token; + TimeSpan timeout = TimeSpan.FromMilliseconds(100); + CancellationToken token = new CancellationTokenSource().Token; _ = _dnsClient.Resolve(Arg.Any(), Arg.Do(x => token = x)).Returns(async _ => { await Task.Delay(timeout + TimeSpan.FromMilliseconds(200)); diff --git a/src/Tests/ProtonVPN.Core.Tests/Properties/AssemblyInfo.cs b/src/Tests/ProtonVPN.Core.Tests/Properties/AssemblyInfo.cs index 305d8698a..f8393e1ca 100644 --- a/src/Tests/ProtonVPN.Core.Tests/Properties/AssemblyInfo.cs +++ b/src/Tests/ProtonVPN.Core.Tests/Properties/AssemblyInfo.cs @@ -20,6 +20,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Runtime.Versioning; [assembly: AssemblyTitle("ProtonVPN.Core.Tests")] [assembly: AssemblyDescription("")] @@ -39,3 +40,4 @@ [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] +[assembly: SupportedOSPlatform("windows")] diff --git a/src/Tests/ProtonVPN.Core.Tests/ProtonVPN.Core.Tests.csproj b/src/Tests/ProtonVPN.Core.Tests/ProtonVPN.Core.Tests.csproj index 928d79d75..8fcd0d85d 100644 --- a/src/Tests/ProtonVPN.Core.Tests/ProtonVPN.Core.Tests.csproj +++ b/src/Tests/ProtonVPN.Core.Tests/ProtonVPN.Core.Tests.csproj @@ -1,94 +1,26 @@ - - + - Debug - AnyCPU - {FA0D86B4-2B86-4DFE-B7E6-7C809DB74A13} + net6.0-windows10.0.19041 Library - Properties - ProtonVPN.Core.Tests - ProtonVPN.Core.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest + false + false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3.2.0 - 1.5.0 6.7.0 + + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 13.0.1 @@ -99,17 +31,12 @@ 7.2.0 - - 4.3.4 - + 4.3.1 - 5.0.0 - - - 4.3.0 + 6.0.0 4.5.4 @@ -117,37 +44,19 @@ 4.5.0 + + + all + + - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {3E905528-D87C-4552-A32D-66BF90D14DB0} - ProtonVPN.Api - - - {0cdca012-bb2d-49b3-944e-ce80d75d651a} - ProtonVPN.App - - - {03b8e43c-5680-4803-a745-0a104fe6620c} - ProtonVPN.Common - - - {ca44b51d-7645-413a-818f-2c5b57db67dd} - ProtonVPN.Core - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - - - {A0DA4200-6643-4F2C-8450-65B8CE8A5576} - ProtonVPN.Tests.Common - + + + + + + + - - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Core.Tests/Servers/ServerLoadUpdaterTest.cs b/src/Tests/ProtonVPN.Core.Tests/Servers/ServerLoadUpdaterTest.cs index 0a7e064b6..f74c598c2 100644 --- a/src/Tests/ProtonVPN.Core.Tests/Servers/ServerLoadUpdaterTest.cs +++ b/src/Tests/ProtonVPN.Core.Tests/Servers/ServerLoadUpdaterTest.cs @@ -18,6 +18,7 @@ */ using System; +using System.Threading; using System.Threading.Tasks; using Caliburn.Micro; using FluentAssertions; @@ -71,26 +72,26 @@ public void Cleanup() } [TestMethod] - public void ItShouldStartUpdatingServerLoads() + public async Task ItShouldStartUpdatingServerLoads() { // Arrange ServerLoadUpdater sut = GetServerLoadUpdater(DateTime.Now.Subtract(TimeSpan.FromHours(1))); // Act - sut.Handle(new WindowStateMessage(true)); + await sut.HandleAsync(new WindowStateMessage(true), new CancellationTokenSource().Token); // Assert _task.Started.Should().BeTrue(); } [TestMethod] - public void ItShouldNotStartUpdatingServerLoads() + public async Task ItShouldNotStartUpdatingServerLoads() { // Arrange ServerLoadUpdater sut = GetServerLoadUpdater(DateTime.Now); // Act - sut.Handle(new WindowStateMessage(true)); + await sut.HandleAsync(new WindowStateMessage(true), new CancellationTokenSource().Token); // Assert _task.Started.Should().BeFalse(); diff --git a/src/Tests/ProtonVPN.Core.Tests/Servers/ServerNameComparerTest.cs b/src/Tests/ProtonVPN.Core.Tests/Servers/ServerNameComparerTest.cs index afa672a68..2646871a2 100644 --- a/src/Tests/ProtonVPN.Core.Tests/Servers/ServerNameComparerTest.cs +++ b/src/Tests/ProtonVPN.Core.Tests/Servers/ServerNameComparerTest.cs @@ -20,6 +20,7 @@ using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; using ProtonVPN.Core.Servers; +using ProtonVPN.Tests.Common.Extensions; namespace ProtonVPN.Core.Tests.Servers { @@ -29,7 +30,7 @@ public class ServerNameComparerTest [TestMethod] [DataRow("NL-FREE#1", "NL-FREE#2", -1)] [DataRow("JP-FREE#194120", "NL-FREE#351157", -1)] - [DataRow("NL-FREE#10", "NL-FREE#1", 1)] + [DataRow("NL-FREE#10", "NL-FREE#2", 1)] [DataRow("NL#10", "NL-FREE#NEWS", -1)] [DataRow("ServerA", "Server B", 1)] [DataRow("FR#13-TOR", "FR#1", 1)] @@ -38,7 +39,6 @@ public class ServerNameComparerTest [DataRow("NL#-TOR", "NL#1-TOR", 1)] [DataRow("SE-LT#1", "SE-LT#10", -1)] [DataRow("#", "#B", -1)] - [DataRow("#", ".", -1)] [DataRow("Server#Test 1", "Server# B2", 1)] [DataRow("123", "987", -1)] [DataRow(null, "Server#5", -1)] @@ -49,10 +49,18 @@ public class ServerNameComparerTest [DataRow("", "", 0)] [DataRow(null, "", 0)] [DataRow("", null, 0)] - public void ItShouldCompareNames(string name1, string name2, int expectedResult) + public void TestCompare(string name1, string name2, int expectedResult) { ServerNameComparer serverNameComparer = new(); serverNameComparer.Compare(name1, name2).Should().Be(expectedResult); } + + [TestMethod] + [DataRow("#", ".")] + public void TestCompare_ExpectAnyResult_DoesNotThrow(string name1, string name2) + { + ServerNameComparer serverNameComparer = new(); + serverNameComparer.Compare(name1, name2).ShouldNotThrow(); + } } } \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Crypto.Tests/ProtonVPN.Crypto.Tests.csproj b/src/Tests/ProtonVPN.Crypto.Tests/ProtonVPN.Crypto.Tests.csproj index bf8aaf87c..48eb56061 100644 --- a/src/Tests/ProtonVPN.Crypto.Tests/ProtonVPN.Crypto.Tests.csproj +++ b/src/Tests/ProtonVPN.Crypto.Tests/ProtonVPN.Crypto.Tests.csproj @@ -1,66 +1,27 @@ - - - + - Debug - AnyCPU - {7D608265-3330-4747-B5B4-9673A119FE6C} + net6.0-windows Library - Properties - ProtonVPN.Crypto.Tests - ProtonVPN.Crypto.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 + false + true + false - - - - - - - - - - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - + + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 + + + + all - - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj b/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj index 32d2eb4ab..ccff7aa12 100644 --- a/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj +++ b/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj @@ -1,111 +1,27 @@ - - - + - Debug - AnyCPU - {A2B4BEC3-7430-489E-BE6B-F1E8205A7C62} + net6.0-windows10.0.17763.0 Library - Properties - ProtonVPN.IntegrationTests - ProtonVPN.IntegrationTests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest - - - true + false + false - - - - - - - - - - - - - - - - - - {153BD6AB-6B34-4E97-A96D-4ED5826DC037} - ProtonVPN.Announcements.Contracts - - - {2088B3AF-F9AF-45B8-B824-16749D5DAF9E} - ProtonVPN.Announcements.Installers - - - {89E58A49-12C4-4C22-B646-348B6BFCCB4D} - ProtonVPN.Announcements.Tests - - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {686E902E-0C23-4396-8887-6D9219EF8D27} - ProtonVPN.Api.Installers - - - {3E905528-D87C-4552-A32D-66BF90D14DB0} - ProtonVPN.Api - - - {0CDCA012-BB2D-49B3-944E-CE80D75D651A} - ProtonVPN.App - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {CA44B51D-7645-413A-818F-2C5B57DB67DD} - ProtonVPN.Core - - - {80A71107-9C8E-47B2-B743-58D5976B38FB} - ProtonVPN.HumanVerification.Installers - - - {90fdf2b3-25c9-428d-b264-5a5faeb2d988} - ProtonVPN.Update - + + + + + + + + + + + @@ -114,11 +30,12 @@ 6.7.0 + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 4.3.0 @@ -129,40 +46,43 @@ 4.5.4 + + all + - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - + PreserveNewest - - - + + + \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Service.Contract.Tests/Properties/AssemblyInfo.cs b/src/Tests/ProtonVPN.Service.Contract.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index 6251955d7..000000000 --- a/src/Tests/ProtonVPN.Service.Contract.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Reflection; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("ProtonVPN.Service.Contract.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ProtonVPN.Service.Contract.Tests")] -[assembly: AssemblyCopyright("Copyright © 2023 Proton AG")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -[assembly: ComVisible(false)] - -[assembly: Guid("c4e97b08-345a-423b-bd4c-76593d1401b6")] - -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Tests/ProtonVPN.Service.Contract.Tests/ProtonVPN.Service.Contract.Tests.csproj b/src/Tests/ProtonVPN.Service.Contract.Tests/ProtonVPN.Service.Contract.Tests.csproj deleted file mode 100644 index 8661c7bd0..000000000 --- a/src/Tests/ProtonVPN.Service.Contract.Tests/ProtonVPN.Service.Contract.Tests.csproj +++ /dev/null @@ -1,101 +0,0 @@ - - - - - Debug - AnyCPU - {C4E97B08-345A-423B-BD4C-76593D1401B6} - Library - Properties - ProtonVPN.Service.Contract.Tests - ProtonVPN.Service.Contract.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true - ..\..\bin\ - TRACE - prompt - 4 - latest - - - - - - - - - - - - - - - - - - - - - - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - - - {96c5d688-c0f1-4a63-9e26-e485fd0e1365} - ProtonVPN.Service.Contract - - - - - 6.7.0 - - - 2.2.7 - - - 2.2.7 - - - 4.3.4 - - - 4.3.1 - - - 5.0.0 - - - 4.5.4 - - - - - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnConnectionRequestContractTest.cs b/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnConnectionRequestContractTest.cs deleted file mode 100644 index 17b7d2513..000000000 --- a/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnConnectionRequestContractTest.cs +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations; -using System.Linq; -using FluentAssertions; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using ProtonVPN.Service.Contract.Crypto; -using ProtonVPN.Service.Contract.Vpn; - -namespace ProtonVPN.Service.Contract.Tests.Vpn -{ - [TestClass] - public class VpnConnectionRequestContractTest - { - private const string PublicKey = "public key"; - private const string PrivateKey = "private key"; - private const string ServerPublicKey = "server public key"; - - [TestMethod] - public void ItShouldThrowWhenKeysAreIncorrect() - { - // Arrange - VpnConnectionRequestContract contract = GetConnectionRequestContract(); - - // Act - IList result = contract.Validate(new ValidationContext(this)).ToList(); - - // Assert - result.Should().Contain(c => c.ErrorMessage.Contains("Invalid server IP address")); - result.Should().Contain(c => c.ErrorMessage.Contains($"Incorrect key length {PublicKey.Length}")); - result.Should().Contain(c => c.ErrorMessage.Contains($"Incorrect key length {PrivateKey.Length}")); - result.Should().Contain(c => c.ErrorMessage.Contains($"Incorrect key length {ServerPublicKey.Length}")); - } - - private VpnConnectionRequestContract GetConnectionRequestContract() - { - return new() - { - Credentials = new VpnCredentialsContract - { - ClientCertPem = "cert", - ClientKeyPair = new AsymmetricKeyPairContract - { - PublicKey = new PublicKeyContract - { - Algorithm = KeyAlgorithmContract.Ed25519, - Base64 = PublicKey, - Bytes = new byte[0], - Pem = string.Empty - }, - SecretKey = new SecretKeyContract - { - Algorithm = KeyAlgorithmContract.Ed25519, - Base64 = PrivateKey, - Bytes = new byte[0], - Pem = string.Empty - } - } - }, - Servers = new VpnHostContract[] - { - new() - { - Ip = "127.0.0.999", - Label = string.Empty, - X25519PublicKey = new ServerPublicKeyContract - { - Algorithm = KeyAlgorithmContract.X25519, - Base64 = ServerPublicKey, - Bytes = new byte[0], - Pem = string.Empty - } - }, - }, - VpnConfig = new VpnConfigContract {CustomDns = new List()} - }; - } - } -} \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnErrorTypeContractTest.cs b/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnErrorTypeContractTest.cs deleted file mode 100644 index f1e7408f6..000000000 --- a/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnErrorTypeContractTest.cs +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Linq; -using FluentAssertions; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using ProtonVPN.Common.Vpn; -using ProtonVPN.Service.Contract.Vpn; - -namespace ProtonVPN.Service.Contract.Tests.Vpn -{ - [TestClass] - public class VpnErrorTypeContractTest - { - [TestMethod] - public void Enum_ShouldHaveSame_UnderlyingType_As_VpnError() - { - // Arrange - Type type = Enum.GetUnderlyingType(typeof(VpnErrorTypeContract)); - Type expected = Enum.GetUnderlyingType(typeof(VpnError)); - // Assert - type.Should().BeSameAs(expected); - } - - [TestMethod] - public void Enum_ShouldHaveSame_Values_As_VpnError() - { - // Arrange - int[] values = Enum.GetValues(typeof(VpnErrorTypeContract)).Cast().ToArray(); - int[] expected = Enum.GetValues(typeof(VpnError)).Cast().ToArray(); - // Assert - values.Should().BeEquivalentTo(expected); - } - - [TestMethod] - public void Enum_ShouldHaveSame_Names_As_VpnError() - { - // Arrange - string[] values = Enum.GetNames(typeof(VpnErrorTypeContract)); - string[] expected = Enum.GetNames(typeof(VpnError)); - // Assert - values.Should().BeEquivalentTo(expected); - } - } -} \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnProtocolContractTest.cs b/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnProtocolContractTest.cs deleted file mode 100644 index 339e22a44..000000000 --- a/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnProtocolContractTest.cs +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Linq; -using FluentAssertions; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using ProtonVPN.Common.Networking; -using ProtonVPN.Service.Contract.Vpn; - -namespace ProtonVPN.Service.Contract.Tests.Vpn -{ - [TestClass] - public class VpnProtocolContractTest - { - [TestMethod] - public void Enum_ShouldHaveSame_UnderlyingType_As_VpnError() - { - // Arrange - Type type = Enum.GetUnderlyingType(typeof(VpnProtocolContract)); - Type expected = Enum.GetUnderlyingType(typeof(VpnProtocol)); - // Assert - type.Should().BeSameAs(expected); - } - - [TestMethod] - public void Enum_ShouldHaveSame_Values_As_VpnError() - { - // Arrange - int[] values = Enum.GetValues(typeof(VpnProtocolContract)).Cast().ToArray(); - int[] expected = Enum.GetValues(typeof(VpnProtocol)).Cast().ToArray(); - // Assert - values.Should().BeEquivalentTo(expected); - } - } -} \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnStatusContractTest.cs b/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnStatusContractTest.cs deleted file mode 100644 index 8647cc5aa..000000000 --- a/src/Tests/ProtonVPN.Service.Contract.Tests/Vpn/VpnStatusContractTest.cs +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Linq; -using FluentAssertions; -using Microsoft.VisualStudio.TestTools.UnitTesting; -using ProtonVPN.Common.Vpn; -using ProtonVPN.Service.Contract.Vpn; - -namespace ProtonVPN.Service.Contract.Tests.Vpn -{ - [TestClass] - public class VpnStatusContractTest - { - [TestMethod] - public void Enum_ShouldHaveSame_UnderlyingType_As_VpnStatus() - { - // Arrange - Type type = Enum.GetUnderlyingType(typeof(VpnStatusContract)); - Type expected = Enum.GetUnderlyingType(typeof(VpnStatus)); - // Assert - type.Should().BeSameAs(expected); - } - - [TestMethod] - public void Enum_ShouldHaveSame_Values_As_VpnStatus() - { - // Arrange - int[] values = Enum.GetValues(typeof(VpnStatusContract)).Cast().ToArray(); - int[] expected = Enum.GetValues(typeof(VpnStatus)).Cast().ToArray(); - // Assert - values.Should().BeEquivalentTo(expected); - } - - [TestMethod] - public void Enum_ShouldHaveSame_Names_As_VpnStatus() - { - // Arrange - string[] values = Enum.GetNames(typeof(VpnStatusContract)); - string[] expected = Enum.GetNames(typeof(VpnStatus)); - // Assert - values.Should().BeEquivalentTo(expected); - } - } -} \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Service.Contract.Tests/app.config b/src/Tests/ProtonVPN.Service.Contract.Tests/app.config deleted file mode 100644 index f10b4ac05..000000000 --- a/src/Tests/ProtonVPN.Service.Contract.Tests/app.config +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Service.Tests/KillSwitch/KillSwitchTest.cs b/src/Tests/ProtonVPN.Service.Tests/KillSwitch/KillSwitchTest.cs index 6507e1a28..5ae7fe69e 100644 --- a/src/Tests/ProtonVPN.Service.Tests/KillSwitch/KillSwitchTest.cs +++ b/src/Tests/ProtonVPN.Service.Tests/KillSwitch/KillSwitchTest.cs @@ -20,11 +20,11 @@ using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; using NSubstitute; -using ProtonVPN.Common; using ProtonVPN.Common.KillSwitch; using ProtonVPN.Common.OS.Net; using ProtonVPN.Common.Vpn; -using ProtonVPN.Service.Contract.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; using ProtonVPN.Service.Firewall; using ProtonVPN.Service.Settings; using ProtonVPN.Vpn.Common; @@ -48,10 +48,10 @@ public void Setup() } [TestMethod] - [DataRow(SplitTunnelMode.Block, false)] - [DataRow(SplitTunnelMode.Permit, true)] - [DataRow(SplitTunnelMode.Disabled, false)] - public void OnVpnConnecting_SplitTunnelBlockMode_BlockInternet(SplitTunnelMode mode, bool dnsLeakOnly) + [DataRow(SplitTunnelModeIpcEntity.Block, false)] + [DataRow(SplitTunnelModeIpcEntity.Permit, true)] + [DataRow(SplitTunnelModeIpcEntity.Disabled, false)] + public void OnVpnConnecting_SplitTunnelBlockMode_BlockInternet(SplitTunnelModeIpcEntity mode, bool dnsLeakOnly) { // Arrange Service.KillSwitch.KillSwitch killSwitch = GetKillSwitch(mode); @@ -68,7 +68,7 @@ public void OnVpnConnecting_SplitTunnelBlockMode_BlockInternet(SplitTunnelMode m public void OnVpnConnected_WhenSplitTunnelPermitMode_DoNotBlockInternet() { // Arrange - Service.KillSwitch.KillSwitch killSwitch = GetKillSwitch(SplitTunnelMode.Permit); + Service.KillSwitch.KillSwitch killSwitch = GetKillSwitch(SplitTunnelModeIpcEntity.Permit); // Act killSwitch.OnVpnConnected(GetConnectedVpnState()); @@ -114,9 +114,9 @@ public void ExpectedLeakProtectionStatus_ShouldBe_Enabled_WhenConnecting(VpnStat { // Arrange var state = new VpnState(status, default); - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Block + Mode = SplitTunnelModeIpcEntity.Block }); Service.KillSwitch.KillSwitch killSwitch = new Service.KillSwitch.KillSwitch(_firewall, _serviceSettings, _networkInterfaceLoader); @@ -189,9 +189,9 @@ public void ExpectedLeakProtectionStatus_ShouldBe_Firewall_LeakProtectionEnabled result.Should().Be(leakProtectionEnabled); } - private Service.KillSwitch.KillSwitch GetKillSwitch(SplitTunnelMode mode) + private Service.KillSwitch.KillSwitch GetKillSwitch(SplitTunnelModeIpcEntity mode) { - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { Mode = mode, AppPaths = new string[0], Ips = new string[0] }); diff --git a/src/Tests/ProtonVPN.Service.Tests/ProtonVPN.Service.Tests.csproj b/src/Tests/ProtonVPN.Service.Tests/ProtonVPN.Service.Tests.csproj index 3a62494f5..a04eb602e 100644 --- a/src/Tests/ProtonVPN.Service.Tests/ProtonVPN.Service.Tests.csproj +++ b/src/Tests/ProtonVPN.Service.Tests/ProtonVPN.Service.Tests.csproj @@ -1,117 +1,47 @@ - - - + - Debug - AnyCPU - {4290C007-2142-4AD1-8EB6-F80EF2F45AA4} + net6.0-windows Library - Properties - ProtonVPN.Service.Tests - ProtonVPN.Service.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest + false + false - - - - - - - - - - - - - - - - - - - - - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {1cf1b8bf-57eb-4e49-b644-0a8f2dfeeb58} - ProtonVPN.NetworkFilter - - - {96C5D688-C0F1-4A63-9E26-E485FD0E1365} - ProtonVPN.Service.Contract - - - {25781B52-5858-4387-80A5-C9C38C32B3CC} - ProtonVPN.Service - - - {4aa7ce6f-7154-49c1-b598-46055d590cad} - ProtonVPN.Vpn - - - {A0DA4200-6643-4F2C-8450-65B8CE8A5576} - ProtonVPN.Tests.Common - + + + + + 6.7.0 + + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 4.3.0 - - 4.3.4 - + 4.3.1 - 5.0.0 + 6.0.0 4.5.4 + + + all + - - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Service.Tests/SplitTunneling/ReverseSplitTunnelAppsTest.cs b/src/Tests/ProtonVPN.Service.Tests/SplitTunneling/ReverseSplitTunnelAppsTest.cs index 9852ad594..3fd6779d2 100644 --- a/src/Tests/ProtonVPN.Service.Tests/SplitTunneling/ReverseSplitTunnelAppsTest.cs +++ b/src/Tests/ProtonVPN.Service.Tests/SplitTunneling/ReverseSplitTunnelAppsTest.cs @@ -20,7 +20,7 @@ using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; using NSubstitute; -using ProtonVPN.Service.Contract.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; using ProtonVPN.Service.Settings; using ProtonVPN.Service.SplitTunneling; @@ -33,17 +33,17 @@ public class ReverseSplitTunnelAppsTest public void Value_ShouldContainApps() { // Arrange - var paths = new[] + string[] paths = new[] { "path1", "path2", "path3" }; - var settings = new SplitTunnelSettingsContract + SplitTunnelSettingsIpcEntity settings = new() { AppPaths = paths }; - var serviceSettings = Substitute.For(); + IServiceSettings serviceSettings = Substitute.For(); serviceSettings.SplitTunnelSettings.Returns(settings); - var sut = new IncludeModeApps(serviceSettings); + IncludeModeApps sut = new IncludeModeApps(serviceSettings); // Assert sut.Value().Should().Contain(paths); diff --git a/src/Tests/ProtonVPN.Service.Tests/SplitTunneling/SplitTunnelTest.cs b/src/Tests/ProtonVPN.Service.Tests/SplitTunneling/SplitTunnelTest.cs index 43cc2d9bb..dc1c3155a 100644 --- a/src/Tests/ProtonVPN.Service.Tests/SplitTunneling/SplitTunnelTest.cs +++ b/src/Tests/ProtonVPN.Service.Tests/SplitTunneling/SplitTunnelTest.cs @@ -19,10 +19,10 @@ using Microsoft.VisualStudio.TestTools.UnitTesting; using NSubstitute; -using ProtonVPN.Common; using ProtonVPN.Common.Networking; using ProtonVPN.Common.Vpn; -using ProtonVPN.Service.Contract.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; using ProtonVPN.Service.Firewall; using ProtonVPN.Service.Settings; using ProtonVPN.Service.SplitTunneling; @@ -53,9 +53,9 @@ public void TestInitialize() public void OnVpnConnecting_WhenBlockMode_DisableReversed() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Block + Mode = SplitTunnelModeIpcEntity.Block }); SplitTunnel splitTunnel = GetSplitTunnel(false, true); @@ -70,9 +70,9 @@ public void OnVpnConnecting_WhenBlockMode_DisableReversed() public void OnVpnConnecting_WhenBlockMode_Disable() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Permit + Mode = SplitTunnelModeIpcEntity.Permit }); SplitTunnel splitTunnel = GetSplitTunnel(true); @@ -88,9 +88,9 @@ public void OnVpnConnected_PermitRemoteAddressesOnBlockMode() { // Arrange string[] addresses = new[] { "127.0.0.1", "192.168.0.1", "8.8.8.8" }; - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Block, + Mode = SplitTunnelModeIpcEntity.Block, Ips = addresses, AppPaths = new string[] {}, }); @@ -107,9 +107,9 @@ public void OnVpnConnected_PermitRemoteAddressesOnBlockMode() public void OnVpnConnected_WhenBlockMode_CallEnable() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Block, + Mode = SplitTunnelModeIpcEntity.Block, AppPaths = new string[] {}, Ips = new string[] {}, }); @@ -126,9 +126,9 @@ public void OnVpnConnected_WhenBlockMode_CallEnable() public void OnVpnConnected_WhenBlockMode_CalloutDriverStart() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Block, + Mode = SplitTunnelModeIpcEntity.Block, AppPaths = new string[] {}, Ips = new string[] { }, }); @@ -142,9 +142,9 @@ public void OnVpnConnected_WhenBlockMode_CalloutDriverStart() public void OnVpnConnected_WhenPermitMode_CalloutDriverStart() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Permit + Mode = SplitTunnelModeIpcEntity.Permit }); SplitTunnel splitTunnel = GetSplitTunnel(); @@ -156,9 +156,9 @@ public void OnVpnConnected_WhenPermitMode_CalloutDriverStart() public void OnVpnConnected_WhenDisabled_CalloutDriverDoNotStart() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Disabled + Mode = SplitTunnelModeIpcEntity.Disabled }); SplitTunnel splitTunnel = GetSplitTunnel(); @@ -170,9 +170,9 @@ public void OnVpnConnected_WhenDisabled_CalloutDriverDoNotStart() public void OnVpnConnected_WhenDisabled_DoNotEnable() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Disabled + Mode = SplitTunnelModeIpcEntity.Disabled }); SplitTunnel splitTunnel = GetSplitTunnel(); @@ -187,9 +187,9 @@ public void OnVpnConnected_WhenDisabled_DoNotEnable() public void OnVpnConnected_WhenPermitMode_EnableReversed() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Permit + Mode = SplitTunnelModeIpcEntity.Permit }); SplitTunnel splitTunnel = GetSplitTunnel(); @@ -207,9 +207,9 @@ public void OnVpnConnected_PermitAppsOnBlockMode() { // Arrange string[] apps = new[] { "app1", "app2", "app3" }; - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Block, + Mode = SplitTunnelModeIpcEntity.Block, AppPaths = apps, Ips = new string[] {}, }); @@ -227,9 +227,9 @@ public void OnVpnConnecting_ShouldBlockApps_WhenModeIsPermit() { // Arrange string[] apps = new [] {"app1", "app2", "app3"}; - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Permit, + Mode = SplitTunnelModeIpcEntity.Permit, AppPaths = apps }); SplitTunnel splitTunnel = GetSplitTunnel(true); @@ -245,9 +245,9 @@ public void OnVpnConnecting_ShouldBlockApps_WhenModeIsPermit() public void OnVpnDisconnected_ManualDisconnect_ShouldDisable() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Block + Mode = SplitTunnelModeIpcEntity.Block }); SplitTunnel splitTunnel = GetSplitTunnel(true); @@ -262,9 +262,9 @@ public void OnVpnDisconnected_ManualDisconnect_ShouldDisable() public void OnVpnDisconnected_ManualDisconnect_ShouldDisableReversed() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Permit + Mode = SplitTunnelModeIpcEntity.Permit }); SplitTunnel splitTunnel = GetSplitTunnel(false, true); @@ -279,9 +279,9 @@ public void OnVpnDisconnected_ManualDisconnect_ShouldDisableReversed() public void OnVpnDisconnected_ManualDisconnect_ShouldStopCalloutDriver() { // Arrange - _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsContract + _serviceSettings.SplitTunnelSettings.Returns(new SplitTunnelSettingsIpcEntity { - Mode = SplitTunnelMode.Permit + Mode = SplitTunnelModeIpcEntity.Permit }); SplitTunnel splitTunnel = GetSplitTunnel(); diff --git a/src/ProtonVPN.Service.Contract/Vpn/PhysicalServer.cs b/src/Tests/ProtonVPN.Tests.Common/Extensions/AssertionExtensions.cs similarity index 81% rename from src/ProtonVPN.Service.Contract/Vpn/PhysicalServer.cs rename to src/Tests/ProtonVPN.Tests.Common/Extensions/AssertionExtensions.cs index b67943754..06c02b6ba 100644 --- a/src/ProtonVPN.Service.Contract/Vpn/PhysicalServer.cs +++ b/src/Tests/ProtonVPN.Tests.Common/Extensions/AssertionExtensions.cs @@ -17,11 +17,12 @@ * along with ProtonVPN. If not, see . */ -namespace ProtonVPN.Service.Contract.Vpn +namespace ProtonVPN.Tests.Common.Extensions { - public class PhysicalServer + public static class AssertionExtensions { - public string EntryIP { get; set; } - public string Label { get; set; } + public static void ShouldNotThrow(this object _) + { + } } } \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Tests.Common/ProtonVPN.Tests.Common.csproj b/src/Tests/ProtonVPN.Tests.Common/ProtonVPN.Tests.Common.csproj index ed9410c1f..d5c34ca59 100644 --- a/src/Tests/ProtonVPN.Tests.Common/ProtonVPN.Tests.Common.csproj +++ b/src/Tests/ProtonVPN.Tests.Common/ProtonVPN.Tests.Common.csproj @@ -1,52 +1,18 @@ - - - + - Debug - AnyCPU - {A0DA4200-6643-4F2C-8450-65B8CE8A5576} + netstandard2.0 Library - Properties - ProtonVPN.Tests.Common - ProtonVPN.Tests.Common - v4.7.2 - 512 - true - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 + false + false - - - - - - - - - - - - - - + + + + + all + - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.UI.Tests/Properties/AssemblyInfo.cs b/src/Tests/ProtonVPN.UI.Tests/Properties/AssemblyInfo.cs index bf0f5d2fc..e547b6f24 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Properties/AssemblyInfo.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Properties/AssemblyInfo.cs @@ -20,6 +20,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Runtime.Versioning; [assembly: AssemblyTitle("ProtonVPN.UI.Tests")] [assembly: AssemblyDescription("")] @@ -37,3 +38,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: SupportedOSPlatform("windows")] diff --git a/src/Tests/ProtonVPN.UI.Tests/ProtonVPN.UI.Tests.csproj b/src/Tests/ProtonVPN.UI.Tests/ProtonVPN.UI.Tests.csproj index 1685528f0..4b0bf0898 100644 --- a/src/Tests/ProtonVPN.UI.Tests/ProtonVPN.UI.Tests.csproj +++ b/src/Tests/ProtonVPN.UI.Tests/ProtonVPN.UI.Tests.csproj @@ -1,128 +1,38 @@ - - - + - Debug - AnyCPU - {24E940FF-C9F3-4D5C-8FCF-CA527F055318} + net6.0-windows10.0.17763.0 Library - Properties - ProtonVPN.UI.Tests - ProtonVPN.UI.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - + false + true + true + true + false + false - true - full - false ..\..\bin\ - DEBUG;TRACE - prompt - 4 x64 latest - pdbonly - true ..\..\bin\ - TRACE - prompt - 4 latest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {0CDCA012-BB2D-49B3-944E-CE80D75D651A} - ProtonVPN.App - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {CA44B51D-7645-413A-818F-2C5B57DB67DD} - ProtonVPN.Core - - - {96C5D688-C0F1-4A63-9E26-E485FD0E1365} - ProtonVPN.Service.Contract - - - {F059E362-20A2-472B-82CA-E727D31AC0C7} - TestTools.ApiClient - + + + + @@ -135,13 +45,15 @@ 3.11.0 - 3.2.0 + 4.0.0 + + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 13.0.1 @@ -152,21 +64,27 @@ 3.12.0 - - 3.16.1 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - 1.2.2 + - 5.0.0 + 6.0.0 4.5.4 + + + + + + + + all + + + + - - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.UI.Tests/Results/HomeResult.cs b/src/Tests/ProtonVPN.UI.Tests/Results/HomeResult.cs index 6df4168ad..98908f8b1 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Results/HomeResult.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Results/HomeResult.cs @@ -75,7 +75,7 @@ private static bool TryToResolveDns(string url) bool isConnected = true; try { - Dns.GetHostEntry(url); + System.Net.Dns.GetHostEntry(url); } catch (SocketException) { @@ -105,7 +105,7 @@ public HomeResult VerifyLoggedInAsTextIs(string objectName) public HomeResult CheckIfConnectButtonIsNotDisplayed() { - CheckIfDoesNotExistsByName("Connect"); + CheckIfDoesNotExistByName("Connect"); return this; } @@ -123,15 +123,9 @@ public HomeResult CheckIfUpgradeRequiredModalIsShownSecureCore() return this; } - public HomeResult CheckIfSidebarModeIsEnabled() - { - CheckIfNotDisplayedByAutomationId("Logo"); - return this; - } - public HomeResult CheckIfPortForwardingQuickSettingIsNotVisible() { - CheckIfNotDisplayedByAutomationId("PortForwardingButton"); + CheckIfDoesNotExistByAutomationId("PortForwardingButton"); return this; } diff --git a/src/Tests/ProtonVPN.UI.Tests/Results/LoginResult.cs b/src/Tests/ProtonVPN.UI.Tests/Results/LoginResult.cs index 212cd90da..87bd94f51 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Results/LoginResult.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Results/LoginResult.cs @@ -23,11 +23,20 @@ namespace ProtonVPN.UI.Tests.Results { public class LoginResult : UIActions { - public LoginResult CheckIfKillSwitchIsNotActive() => CheckIfNotDisplayedByName("Disable"); + public LoginResult CheckIfKillSwitchIsNotActive() + { + return CheckIfDoesNotExistByAutomationId("Disable"); + } - public LoginResult CheckIfLoginErrorIsDisplayed() => WaitUntilElementExistsByClassName("LoginErrorView", TestConstants.MediumTimeout); + public LoginResult CheckIfLoginErrorIsDisplayed() + { + return WaitUntilElementExistsByClassName("LoginErrorView", TestConstants.MediumTimeout); + } - public LoginResult CheckIfLoginWindowIsDisplayed() => WaitUntilElementExistsByAutomationId("LoginInput", TestConstants.VeryShortTimeout); + public LoginResult CheckIfLoginWindowIsDisplayed() + { + return WaitUntilElementExistsByAutomationId("LoginInput", TestConstants.VeryShortTimeout); + } public LoginResult CheckIfZeroAssignedConnectionsModalIsShown() { diff --git a/src/Tests/ProtonVPN.UI.Tests/Results/ProfilesResult.cs b/src/Tests/ProtonVPN.UI.Tests/Results/ProfilesResult.cs index 18e9ad562..67ef053ae 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Results/ProfilesResult.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Results/ProfilesResult.cs @@ -23,7 +23,15 @@ namespace ProtonVPN.UI.Tests.Results { public class ProfilesResult : UIActions { - public ProfilesResult CheckIfProfileIsDisplayed(string profileName) => WaitUntilElementExistsByName(profileName, TestConstants.VeryShortTimeout); + public ProfilesResult CheckIfProfileIsDisplayed(string profileName) + { + return WaitUntilElementExistsByName(profileName, TestConstants.VeryShortTimeout); + } + + public ProfilesResult CheckIfProfileCreationErrorIsNotShown() + { + return CheckIfDoesNotExistByClassName("FormErrorsPanel"); + } public ProfilesResult CheckIfDefaultProfilesAreDisplayed() { @@ -46,7 +54,7 @@ public ProfilesResult CheckIfCountryErrorDisplayed() public ProfilesResult CheckIfProfileIsNotDisplayed(string profile) { - CheckIfDoesNotExistsByAutomationId(profile); + CheckIfDoesNotExistByAutomationId(profile); return this; } } diff --git a/src/Tests/ProtonVPN.UI.Tests/Results/SettingsResult.cs b/src/Tests/ProtonVPN.UI.Tests/Results/SettingsResult.cs index 2dd034feb..9ccd1d877 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Results/SettingsResult.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Results/SettingsResult.cs @@ -42,7 +42,7 @@ public SettingsResult CheckIfSettingsAreDisplayed() public SettingsResult CheckIfCustomDnsAddressWasNotAdded() { - CheckIfDoesNotExistsByAutomationId("DeleteButton"); + CheckIfDoesNotExistByAutomationId("DeleteButton"); return this; } diff --git a/src/Tests/ProtonVPN.UI.Tests/Results/SysTrayResult.cs b/src/Tests/ProtonVPN.UI.Tests/Results/SysTrayResult.cs index 7a07276c2..209582906 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Results/SysTrayResult.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Results/SysTrayResult.cs @@ -29,9 +29,7 @@ internal class SysTrayResult : DesktopActions { public SysTrayResult CheckIfClientIsClosed() { - //Delay to let app properly close itself - Thread.Sleep(1000); - Process[] pname = Process.GetProcessesByName("ProtonVpn"); + Process[] pname = Process.GetProcessesByName("Proton VPN"); Assert.IsTrue(pname.Length == 0); ServiceController service = new ServiceController("ProtonVPN Service"); Assert.AreNotEqual(service.Status, ServiceControllerStatus.Running); diff --git a/src/Tests/ProtonVPN.UI.Tests/TestSession.cs b/src/Tests/ProtonVPN.UI.Tests/TestSession.cs index a00376ce8..a1df025e5 100644 --- a/src/Tests/ProtonVPN.UI.Tests/TestSession.cs +++ b/src/Tests/ProtonVPN.UI.Tests/TestSession.cs @@ -110,7 +110,8 @@ protected static void RefreshWindow() protected static void LaunchApp() { - App = Application.Launch(TestConstants.AppFolderPath + @"\ProtonVPN.exe"); + string[] path = Directory.GetDirectories(TestConstants.AppFolderPath, "v*"); + App = Application.Launch(path[0] + @"\ProtonVPN.exe"); } protected static void KillProtonVpnProcess() diff --git a/src/Tests/ProtonVPN.UI.Tests/Tests/AccountTests.cs b/src/Tests/ProtonVPN.UI.Tests/Tests/AccountTests.cs index 091548cea..cd6138a01 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Tests/AccountTests.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Tests/AccountTests.cs @@ -53,11 +53,11 @@ public void RestrictedAccountConnections() _homeResult.CheckIfUpgradeRequiredModalIsShownSecureCore(); _homeWindow.ClickWindowsCloseButton(); - _homeWindow.ConnectViaProfile("PaidCountry"); + _homeWindow.ConnectViaProfile("Paid"); _homeResult.CheckIfUpgradeRequiredModalIsShown(); _homeWindow.ClickWindowsCloseButton(); - _homeWindow.PerformConnectionViaMap("MX"); + _homeWindow.PerformConnectionViaMap(TestConstants.MapCountry); _homeResult.CheckIfUpgradeRequiredModalIsShown(); } diff --git a/src/Tests/ProtonVPN.UI.Tests/Tests/ConnectionTests.cs b/src/Tests/ProtonVPN.UI.Tests/Tests/ConnectionTests.cs index 0565bf0c8..9b6fd5fa3 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Tests/ConnectionTests.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Tests/ConnectionTests.cs @@ -194,6 +194,10 @@ public void CustomDnsManipulation() [Category("Smoke")] public void CancelConnectionWhileConnecting() { + _homeWindow.NavigateToSettings() + .NavigateToConnectionTab() + .SelectProtocolOpenVpnUdp() + .CloseSettings(); _homeWindow.PressQuickConnectButton() .CancelConnection() .WaitUntilDisconnected(); diff --git a/src/Tests/ProtonVPN.UI.Tests/Tests/ProfileTests.cs b/src/Tests/ProtonVPN.UI.Tests/Tests/ProfileTests.cs index 40f30e0a1..f6520850a 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Tests/ProfileTests.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Tests/ProfileTests.cs @@ -38,7 +38,8 @@ public void TryToCreateStandardProfile() { _profileWindow.PressCreateNewProfile() .CreateProfile(TestConstants.ProfileName); - _profileResult.CheckIfProfileIsDisplayed(TestConstants.ProfileName); + _profileResult.CheckIfProfileCreationErrorIsNotShown() + .CheckIfProfileIsDisplayed(TestConstants.ProfileName); } [Test] @@ -68,8 +69,9 @@ public void TryToCreateSecureCoreProfile() { _profileWindow.PressCreateNewProfile() .SelectSecureCoreOption() - .CreateProfile(TestConstants.ProfileName); - _profileResult.CheckIfProfileIsDisplayed(TestConstants.ProfileName); + .CreateProfile(TestConstants.ProfileName); + _profileResult.CheckIfProfileCreationErrorIsNotShown() + .CheckIfProfileIsDisplayed(TestConstants.ProfileName); } [Test] @@ -79,7 +81,8 @@ public void TryToCreateP2PProfile() _profileWindow.PressCreateNewProfile() .SelectP2POption() .CreateProfileWithoutCountry(TestConstants.ProfileName); - _profileResult.CheckIfProfileIsDisplayed(TestConstants.ProfileName); + _profileResult.CheckIfProfileCreationErrorIsNotShown() + .CheckIfProfileIsDisplayed(TestConstants.ProfileName); } [Test] @@ -88,7 +91,8 @@ public void TryToCreateTorProfile() _profileWindow.PressCreateNewProfile() .SelectTorOption() .CreateProfileWithoutCountry(TestConstants.ProfileName); - _profileResult.CheckIfProfileIsDisplayed(TestConstants.ProfileName); + _profileResult.CheckIfProfileCreationErrorIsNotShown() + .CheckIfProfileIsDisplayed(TestConstants.ProfileName); } [Test] @@ -110,7 +114,8 @@ public void EditProfile() _profileWindow.PressCreateNewProfile() .CreateProfile(TestConstants.ProfileName); - _profileResult.CheckIfProfileIsDisplayed(TestConstants.ProfileName); + _profileResult.CheckIfProfileCreationErrorIsNotShown() + .CheckIfProfileIsDisplayed(TestConstants.ProfileName); _profileWindow.EditProfileName(TestConstants.ProfileName, newProfileName); diff --git a/src/Tests/ProtonVPN.UI.Tests/Tests/WindowElementsTests.cs b/src/Tests/ProtonVPN.UI.Tests/Tests/WindowElementsTests.cs deleted file mode 100644 index e67959160..000000000 --- a/src/Tests/ProtonVPN.UI.Tests/Tests/WindowElementsTests.cs +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using NUnit.Framework; -using ProtonVPN.UI.Tests.Results; -using ProtonVPN.UI.Tests.TestsHelper; -using ProtonVPN.UI.Tests.Windows; - -namespace ProtonVPN.UI.Tests.Tests -{ - [TestFixture] - [Category("UI")] - public class WindowElementsTests : TestSession - { - private readonly LoginWindow _loginWindow = new LoginWindow(); - private readonly HomeWindow _homeWindow = new HomeWindow(); - private readonly HomeResult _mainWindowResults = new HomeResult(); - - [Test] - public void EnableSidebarMode() - { - _loginWindow.SignIn(TestUserData.GetPlusUser()); - _homeWindow.ClickOnSidebarModeButton(); - _mainWindowResults.CheckIfSidebarModeIsEnabled(); - } - - [SetUp] - public void TestInitialize() - { - DeleteUserConfig(); - LaunchApp(); - } - - [TearDown] - public void TestCleanup() - { - Cleanup(); - } - } -} diff --git a/src/Tests/ProtonVPN.UI.Tests/TestsHelper/TestConstants.cs b/src/Tests/ProtonVPN.UI.Tests/TestsHelper/TestConstants.cs index bf5d8cd35..8928bb90b 100644 --- a/src/Tests/ProtonVPN.UI.Tests/TestsHelper/TestConstants.cs +++ b/src/Tests/ProtonVPN.UI.Tests/TestsHelper/TestConstants.cs @@ -29,9 +29,9 @@ public static class TestConstants public static TimeSpan MediumTimeout => TimeSpan.FromSeconds(30); public static TimeSpan LongTimeout => TimeSpan.FromSeconds(60); public static string ProfileName => "@AutomationProfile"; - public static string AppFolderPath => @"C:\Program Files (x86)\Proton Technologies\ProtonVPN"; + public static string AppFolderPath => @"C:\Program Files\Proton\VPN"; public static TimeSpan RetryInterval => TimeSpan.FromMilliseconds(500); - public static string MapCountry => "US"; + public static string MapCountry => "CA"; public static string PathToRecorder => @"C:\TestRecorder\ffmpeg.exe"; public static string AppLogsPath => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"ProtonVPN\Logs\app-logs.txt"); public static string ServiceLogsPath => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), @"ProtonVPN\Logs\service-logs.txt"); diff --git a/src/Tests/ProtonVPN.UI.Tests/TestsHelper/VPNServiceHelper.cs b/src/Tests/ProtonVPN.UI.Tests/TestsHelper/VPNServiceHelper.cs index 4309091b8..2da52dfd6 100644 --- a/src/Tests/ProtonVPN.UI.Tests/TestsHelper/VPNServiceHelper.cs +++ b/src/Tests/ProtonVPN.UI.Tests/TestsHelper/VPNServiceHelper.cs @@ -17,73 +17,79 @@ * along with ProtonVPN. If not, see . */ -using System; -using System.ServiceModel; +using System.Threading; using System.Threading.Tasks; -using ProtonVPN.Common; -using ProtonVPN.Common.Networking; -using ProtonVPN.Core.Service; -using ProtonVPN.Core.Service.Vpn; -using ProtonVPN.Service.Contract.Settings; -using ProtonVPN.Service.Contract.Vpn; +using NSubstitute; +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common; +using ProtonVPN.ProcessCommunication.Common.Channels; +using ProtonVPN.ProcessCommunication.Common.Registration; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; +using ProtonVPN.ProcessCommunication.Contracts.Registration; namespace ProtonVPN.UI.Tests.TestsHelper { - public class VPNServiceHelper + public class VPNServiceHelper : GrpcClientBase { - private ServiceChannelFactory _channelFactory = new ServiceChannelFactory(); - private VpnEvents _vpnEvents = new VpnEvents(); + private readonly IServiceServerPortRegister _serviceServerPortRegister; + private static readonly ILogger _logger = Substitute.For(); + private static readonly GrpcChannelWrapperFactory _grpcChannelWrapperFactory = new(_logger); - private SettingsContract settings = new SettingsContract() + public IServiceController ServiceController { get; private set; } + + public VPNServiceHelper() + : base(_logger, _grpcChannelWrapperFactory) { - KillSwitchMode = Common.KillSwitch.KillSwitchMode.Off, - SplitTunnel = new SplitTunnelSettingsContract - { - Mode = SplitTunnelMode.Disabled, - AppPaths = new string[] { }, - Ips = new string[] { }, - }, - NetShieldMode = 0, - SplitTcp = true, - Ipv6LeakProtection = true, - VpnProtocol = VpnProtocol.Smart, - OpenVpnAdapter = OpenVpnAdapter.Tun, - }; + _serviceServerPortRegister = new ServiceServerPortRegister(_logger); + } + + protected override void RegisterServices(IGrpcChannelWrapper channel) + { + ServiceController = channel.CreateService(); + } public async Task Disconnect() { try { - await NewChannel().Proxy.Disconnect(settings, VpnErrorTypeContract.None); + CancellationTokenSource cts = new CancellationTokenSource(); + int serviceServerPort = await _serviceServerPortRegister.ReadAsync(cts.Token); + await CreateWithPortAsync(serviceServerPort); + if (ServiceController is not null) + { + DisconnectionRequestIpcEntity disconnectionRequestIpcEntity = CreateDisconnectionRequestIpcEntity(); + await ServiceController.Disconnect(disconnectionRequestIpcEntity); + } } - catch (EndpointNotFoundException) + catch { //Ignore, because user might be disconnect by UI before } } - private ServiceChannel NewChannel() - { - ServiceChannel channel = _channelFactory.Create( - "protonvpn-service/connection", - _vpnEvents - ); - RegisterCallback(channel); - - return channel; - } - - private void RegisterCallback(ServiceChannel channel) + private DisconnectionRequestIpcEntity CreateDisconnectionRequestIpcEntity() { - try + return new DisconnectionRequestIpcEntity() { - channel.Proxy.RegisterCallback(); - } - catch (Exception) - { - channel.Dispose(); - throw; - } + Settings = new MainSettingsIpcEntity() + { + KillSwitchMode = KillSwitchModeIpcEntity.Off, + SplitTunnel = new SplitTunnelSettingsIpcEntity + { + Mode = SplitTunnelModeIpcEntity.Disabled, + AppPaths = new string[] { }, + Ips = new string[] { }, + }, + NetShieldMode = 0, + SplitTcp = true, + Ipv6LeakProtection = true, + VpnProtocol = VpnProtocolIpcEntity.Smart, + OpenVpnAdapter = OpenVpnAdapterIpcEntity.Tun, + }, + ErrorType = VpnErrorTypeIpcEntity.None + }; } } -} +} \ No newline at end of file diff --git a/src/Tests/ProtonVPN.UI.Tests/UIActions.cs b/src/Tests/ProtonVPN.UI.Tests/UIActions.cs index dd4666887..168ab8cf9 100644 --- a/src/Tests/ProtonVPN.UI.Tests/UIActions.cs +++ b/src/Tests/ProtonVPN.UI.Tests/UIActions.cs @@ -168,18 +168,24 @@ protected dynamic CheckIfNotDisplayedByAutomationId(string automationId) return this; } - protected dynamic CheckIfDoesNotExistsByAutomationId(string automationId) + protected dynamic CheckIfDoesNotExistByAutomationId(string automationId) { Assert.IsNull(Window.FindFirstDescendant(cf => cf.ByAutomationId(automationId))); return this; } - protected dynamic CheckIfDoesNotExistsByName(string name) + protected dynamic CheckIfDoesNotExistByName(string name) { Assert.IsNull(Window.FindFirstDescendant(cf => cf.ByName(name))); return this; } + protected dynamic CheckIfDoesNotExistByClassName(string className) + { + Assert.IsNull(Window.FindFirstDescendant(cf => cf.ByClassName(className))); + return this; + } + protected dynamic MoveMouseToElement(AutomationElement element, int offsetX = 0, int offsetY = 0) { Mouse.MovePixelsPerMillisecond = 100; diff --git a/src/Tests/ProtonVPN.UI.Tests/Windows/HomeWindow.cs b/src/Tests/ProtonVPN.UI.Tests/Windows/HomeWindow.cs index 619df7a45..ae0d23aa1 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Windows/HomeWindow.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Windows/HomeWindow.cs @@ -146,13 +146,15 @@ public HomeWindow EnableKillSwitch() public HomeWindow PerformConnectionViaMap(string countryCode) { + MoveMouseToElement(CountryPin(countryCode), 0, 20); CountryPin(countryCode).FindFirstChild().AsButton().Invoke(); return this; } public HomeWindow PerformConnectionViaMapSecureCore(string countryCode) { - CountryPin(countryCode).FindFirstChild().FindFirstChild().AsButton().Invoke(); + MoveMouseToElement(CountryPin(countryCode), 0, 20); + CountryPin(countryCode).FindFirstChild().FindFirstChild().Click(); return this; } @@ -182,12 +184,6 @@ public HomeWindow ClickWindowsCloseButton() return this; } - public HomeWindow ClickOnSidebarModeButton() - { - SidebarModeButton.Click(); - return this; - } - public HomeWindow CancelConnection() { CancelButton.Invoke(); diff --git a/src/Tests/ProtonVPN.UI.Tests/Windows/ProfilesWindow.cs b/src/Tests/ProtonVPN.UI.Tests/Windows/ProfilesWindow.cs index ea419e838..d2731d1d9 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Windows/ProfilesWindow.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Windows/ProfilesWindow.cs @@ -26,8 +26,10 @@ public class ProfilesWindow : UIActions { private Button CreateProfileButton => ElementByAutomationId("NewProfileButton").AsButton(); private TextBox ProfileNameInput => ElementByAutomationId("textSource").AsTextBox(); - private ListBoxItem CountryFirstOption => ElementByAutomationId("CountryBox").AsComboBox().FindChildAt(1).AsListBoxItem(); - private ListBoxItem ServerFirstOption => ElementByAutomationId("ServerBox").AsComboBox().FindChildAt(2).AsListBoxItem(); + private ComboBox CountryBox => ElementByAutomationId("CountryBox").AsComboBox(); + private ComboBox ServerBox => ElementByAutomationId("ServerBox").AsComboBox(); + private ListBoxItem CountryFirstOption => CountryBox.FindChildAt(1).AsListBoxItem(); + private ListBoxItem ServerFirstOption => ServerBox.FindChildAt(2).AsListBoxItem(); private Button SaveButton => ElementByName("Save").AsButton(); private AutomationElement SecureCoreButton => ElementByName("Secure Core"); private AutomationElement P2PButton => ElementByName("P2P"); @@ -38,8 +40,12 @@ public class ProfilesWindow : UIActions public ProfilesWindow CreateProfile(string profileName) { ProfileNameInput.Enter(profileName); + CountryBox.Click(); CountryFirstOption.Select(); + CountryBox.Click(); + ServerBox.Click(); ServerFirstOption.Select(); + ServerBox.Click(); SaveButton.Invoke(); return this; } @@ -53,6 +59,7 @@ public ProfilesWindow EnterProfileName(string profileName) public ProfilesWindow CreateProfileWithoutCountry(string profileName) { ProfileNameInput.Enter(profileName); + ServerBox.Click(); ServerFirstOption.Select(); SaveButton.Invoke(); return this; diff --git a/src/Tests/ProtonVPN.UI.Tests/Windows/SettingsWindow.cs b/src/Tests/ProtonVPN.UI.Tests/Windows/SettingsWindow.cs index 0f652e629..342616250 100644 --- a/src/Tests/ProtonVPN.UI.Tests/Windows/SettingsWindow.cs +++ b/src/Tests/ProtonVPN.UI.Tests/Windows/SettingsWindow.cs @@ -27,7 +27,7 @@ public class SettingsWindow : UIActions private ListBoxItem OpenVpnUdpOption => StartMinimizedComboBox.FindChildAt(2).AsListBoxItem(); private ListBoxItem OpenVpnTcpOption => StartMinimizedComboBox.FindChildAt(3).AsListBoxItem(); private ListBoxItem OptionDisabled => StartMinimizedComboBox.FindFirstChild().AsListBoxItem(); - private AutomationElement SettingsCloseButton => ElementByAutomationId("ModalCloseButton"); + private Button SettingsCloseButton => ElementByAutomationId("ModalCloseButton").AsButton(); private CheckBox ConnectOnBootCheckBox => ElementByAutomationId("ConnectOnBootCheckbox").AsCheckBox(); private AutomationElement ConnectionTab => ElementByName("Connection").FindFirstChild(); private AutomationElement AdvancedTab => ElementByName("Advanced").FindFirstChild(); @@ -44,6 +44,7 @@ public class SettingsWindow : UIActions public SettingsWindow DisableStartToTray() { + StartMinimizedComboBox.Click(); OptionDisabled.Select(); return this; } @@ -56,7 +57,7 @@ public SettingsWindow ClickOnConnectOnBoot() public HomeWindow CloseSettings() { - SettingsCloseButton.Click(); + SettingsCloseButton.Invoke(); return new HomeWindow(); } @@ -124,12 +125,14 @@ public SettingsWindow TogglePortForwarding() public SettingsWindow SelectProtocolOpenVpnUdp() { + StartMinimizedComboBox.Click(); OpenVpnUdpOption.Select(); return this; } public SettingsWindow SelectProtocolOpenVpnTcp() { + StartMinimizedComboBox.Click(); OpenVpnTcpOption.Select(); return this; } diff --git a/src/Tests/ProtonVPN.Update.Tests/Files/Validatable/CachedFileValidatorTest.cs b/src/Tests/ProtonVPN.Update.Tests/Files/Validatable/CachedFileValidatorTest.cs index 796ebd321..2b43a1e5d 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Files/Validatable/CachedFileValidatorTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Files/Validatable/CachedFileValidatorTest.cs @@ -160,7 +160,7 @@ public async Task Valid_ShouldCall_Origin_WenFileLength_HasChanged() _origin.ClearReceivedCalls(); DateTime lastWriteTime = File.GetLastWriteTimeUtc(filename); - CopyFile("win-update.json", updatesPath, "ProtonVPN_win_v1.5.1.exe"); + CopyFile("windows-releases.json", updatesPath, "ProtonVPN_win_v1.5.1.exe"); File.SetLastWriteTimeUtc(filename, lastWriteTime); await _cachedFileValidator.Valid(filename, checkSum); diff --git a/src/Tests/ProtonVPN.Update.Tests/ProtonVPN.Update.Tests.csproj b/src/Tests/ProtonVPN.Update.Tests/ProtonVPN.Update.Tests.csproj index 807480ede..2b1305aab 100644 --- a/src/Tests/ProtonVPN.Update.Tests/ProtonVPN.Update.Tests.csproj +++ b/src/Tests/ProtonVPN.Update.Tests/ProtonVPN.Update.Tests.csproj @@ -1,100 +1,21 @@ - - + - Debug - AnyCPU - {7D658974-C38C-421F-8186-B735F06CFC58} + net6.0-windows Library - Properties - ProtonVPN.Update.Tests - ProtonVPN.Update.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest + false + false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PreserveNewest - - + PreserveNewest - - {03b8e43c-5680-4803-a745-0a104fe6620c} - ProtonVPN.Common - - - {90fdf2b3-25c9-428d-b264-5a5faeb2d988} - ProtonVPN.Update - - - {A0DA4200-6643-4F2C-8450-65B8CE8A5576} - ProtonVPN.Tests.Common - + + + @@ -120,11 +41,13 @@ 6.7.0 + + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 13.0.1 @@ -132,11 +55,12 @@ 4.3.0 + 4.3.1 - 5.0.0 + 6.0.0 4.5.4 @@ -144,7 +68,9 @@ 4.5.0 + + + all + - - \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Update.Tests/Releases/ReleasesTest.cs b/src/Tests/ProtonVPN.Update.Tests/Releases/ReleasesTest.cs index ab825b529..8cec4d409 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Releases/ReleasesTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Releases/ReleasesTest.cs @@ -62,7 +62,7 @@ public void Releases_ShouldBeEmpty_WhenCategories_HaveNoReleases() [TestMethod] public void Releases_ShouldContain_AllReleases_FromCategories() { - string json = File.ReadAllText(@"TestData\win-update.json"); + string json = File.ReadAllText(@"TestData\windows-releases.json"); CategoriesResponse categories = JsonConvert.DeserializeObject(json); Update.Releases.Releases releases = new(categories.Categories, new Version(), ""); @@ -72,7 +72,7 @@ public void Releases_ShouldContain_AllReleases_FromCategories() [TestMethod] public void Releases_Version_ShouldBe_FromReleases() { - string json = File.ReadAllText(@"TestData\win-update.json"); + string json = File.ReadAllText(@"TestData\windows-releases.json"); CategoriesResponse categories = JsonConvert.DeserializeObject(json); List expected = categories.Categories.SelectMany(c => c.Releases).Select(r => Version.Parse(r.Version)).ToList(); @@ -88,7 +88,7 @@ public void Releases_Version_ShouldBe_FromReleases() [TestMethod] public void Releases_EarlyAccess_ShouldBeTrue_ForEarlyAccess() { - string json = File.ReadAllText(@"TestData\win-update.json"); + string json = File.ReadAllText(@"TestData\windows-releases.json"); CategoriesResponse categories = JsonConvert.DeserializeObject(json); Update.Releases.Releases releases = new(categories.Categories, new Version(), "EarlyAccess"); @@ -98,7 +98,7 @@ public void Releases_EarlyAccess_ShouldBeTrue_ForEarlyAccess() [TestMethod] public void Releases_New_ShouldBeTrue_ForNewReleases() { - string json = File.ReadAllText(@"TestData\win-update.json"); + string json = File.ReadAllText(@"TestData\windows-releases.json"); CategoriesResponse categories = JsonConvert.DeserializeObject(json); Update.Releases.Releases releases = new(categories.Categories, Version.Parse("1.5.0"), ""); diff --git a/src/Tests/ProtonVPN.Update.Tests/Storage/WebReleaseStorageTest.cs b/src/Tests/ProtonVPN.Update.Tests/Storage/WebReleaseStorageTest.cs index 445c7081b..cb41414b7 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Storage/WebReleaseStorageTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Storage/WebReleaseStorageTest.cs @@ -44,11 +44,7 @@ public class WebReleaseStorageTest private IHttpClient _httpClient; private IFeedUrlProvider _feedUrlProvider; private DefaultAppUpdateConfig _config; - private IEnumerable _feedUrls = new List() - { - new Uri("http://127.0.0.1/windows-releases.json"), - new Uri("http://127.0.0.1/win-update.json") - }; + private Uri _feedUrl = new Uri("http://127.0.0.1/windows-releases.json"); #region Initialization @@ -58,7 +54,7 @@ public void TestInitialize() _logger = Substitute.For(); _httpClient = Substitute.For(); _feedUrlProvider = Substitute.For(); - _feedUrlProvider.GetFeedUrls().Returns(_feedUrls); + _feedUrlProvider.GetFeedUrl().Returns(_feedUrl); _config = new DefaultAppUpdateConfig { HttpClient = _httpClient, @@ -71,13 +67,13 @@ public void TestInitialize() private IReleaseStorage WebReleaseStorage(Task httpResponse) { - _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrls().First()).Returns(httpResponse); + _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrl()).Returns(httpResponse); return WebReleaseStorage(); } private IReleaseStorage WebReleaseStorage(IHttpResponseMessage httpResponse) { - _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrls().First()).Returns(httpResponse); + _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrl()).Returns(httpResponse); return WebReleaseStorage(); } @@ -92,8 +88,8 @@ private IReleaseStorage WebReleaseStorage() public async Task Releases_ShouldGet_FromFeedUri() { Uri feedUri = new Uri("http://127.0.0.1/windows-releases.json"); - _feedUrlProvider.GetFeedUrls().Returns(_feedUrls); - IReleaseStorage storage = WebReleaseStorage(HttpResponseFromFile("win-update.json")); + _feedUrlProvider.GetFeedUrl().Returns(_feedUrl); + IReleaseStorage storage = WebReleaseStorage(HttpResponseFromFile("windows-releases.json")); await storage.Releases(); @@ -103,7 +99,7 @@ public async Task Releases_ShouldGet_FromFeedUri() [TestMethod] public async Task Releases_ShouldBe_AllFromSource() { - IReleaseStorage storage = WebReleaseStorage(HttpResponseFromFile("win-update.json")); + IReleaseStorage storage = WebReleaseStorage(HttpResponseFromFile("windows-releases.json")); IEnumerable result = await storage.Releases(); diff --git a/src/Tests/ProtonVPN.Update.Tests/TestData/win-update.json b/src/Tests/ProtonVPN.Update.Tests/TestData/win-update.json deleted file mode 100644 index aab26b564..000000000 --- a/src/Tests/ProtonVPN.Update.Tests/TestData/win-update.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "Categories": [ - { - "Name": "EarlyAccess", - "Releases": [ - { - "Version": "1.5.2", - "File": { - "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.5.2.exe", - "Sha512CheckSum": "6771cf15b98782e59716cefee4af6f5fc4d43e1a2a4fc14eb7cb80176de3210ee8342ce6fe28eb76f5a5765ac4d7efec312c1712581eaf2a1e5e8daae5c94e2a", - "Args": "/qb" - }, - "ChangeLog": [ - "added beta feature", - "fixed previous bug" - ] - }, - { - "Version": "2.0.0", - "File": { - "Url": "https://protonvpn.com/download/ProtonVPN_win_v2.0.0.exe", - "Sha512CheckSum": "961103aaf283cd90bfacb73e6cb97e2069bfa5bd9015b8f91ffd0bc1e8c791eb089e07a7df63a7da12dbb461b0777f5106819009f7a16bfaeff45f8ca941dab5", - "Args": "/qb" - }, - "ChangeLog": [ - "added beta feature", - "fixed previous bug" - ] - } - ] - }, - { - "Name": "Stable", - "Releases": [ - { - "Version": "1.0.0", - "File": { - "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.0.0.exe", - "Sha512CheckSum": "0fc1e744a3ecb5a5f4a904ecb1140f19bf9587e20fd7d27e1c95615c2c7bd2280769060de1b0851732323f7ea0683b721963734a6ab469e8619d6f5977aedaa2", - "Args": "/qb" - }, - "ChangeLog": [ - "didn\u0027t added feature", - "fixed bug" - ] - }, - { - "Version": "1.5.0", - "File": { - "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.5.0.exe", - "Sha512CheckSum": "8743cc8601d94ff4e23e3378296aa3efdb207a9b6e5a55c334c51c23f23f9a154010da5a0e8ab58c5c97e516ecd2bd6b580770dc94024916c56ee11b7f71f9f1", - "Args": "/qb" - }, - "ChangeLog": [ - "added feature", - "fixed bug" - ] - }, - { - "Version": "1.5.1", - "File": { - "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.5.1.exe", - "Sha512CheckSum": "c011146ae24f5a49ef86ff6199ec0bd42223b408e1dce3ffef9a2ef4b9c1806b1c823ce427d7473378b7d8c427ba6cb3701320740523ad79fc9ec8cfeb907875", - "Args": "/qb" - }, - "ChangeLog": [ - "added feature", - "fixed bug" - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Update.Tests/TestData/windows-releases.json b/src/Tests/ProtonVPN.Update.Tests/TestData/windows-releases.json index aa95cc40f..fad2b93dd 100644 --- a/src/Tests/ProtonVPN.Update.Tests/TestData/windows-releases.json +++ b/src/Tests/ProtonVPN.Update.Tests/TestData/windows-releases.json @@ -2,25 +2,71 @@ "Categories": [ { "Name": "EarlyAccess", - "Releases": [] + "Releases": [ + { + "Version": "1.5.2", + "File": { + "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.5.2.exe", + "Sha512CheckSum": "6771cf15b98782e59716cefee4af6f5fc4d43e1a2a4fc14eb7cb80176de3210ee8342ce6fe28eb76f5a5765ac4d7efec312c1712581eaf2a1e5e8daae5c94e2a", + "Args": "/qb" + }, + "ChangeLog": [ + "added beta feature", + "fixed previous bug" + ] + }, + { + "Version": "2.0.0", + "File": { + "Url": "https://protonvpn.com/download/ProtonVPN_win_v2.0.0.exe", + "Sha512CheckSum": "961103aaf283cd90bfacb73e6cb97e2069bfa5bd9015b8f91ffd0bc1e8c791eb089e07a7df63a7da12dbb461b0777f5106819009f7a16bfaeff45f8ca941dab5", + "Args": "/qb" + }, + "ChangeLog": [ + "added beta feature", + "fixed previous bug" + ] + } + ] }, { "Name": "Stable", "Releases": [ { - "Version": "2.3.2", + "Version": "1.0.0", + "File": { + "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.0.0.exe", + "Sha512CheckSum": "0fc1e744a3ecb5a5f4a904ecb1140f19bf9587e20fd7d27e1c95615c2c7bd2280769060de1b0851732323f7ea0683b721963734a6ab469e8619d6f5977aedaa2", + "Args": "/qb" + }, + "ChangeLog": [ + "didn\u0027t added feature", + "fixed bug" + ] + }, + { + "Version": "1.5.0", + "File": { + "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.5.0.exe", + "Sha512CheckSum": "8743cc8601d94ff4e23e3378296aa3efdb207a9b6e5a55c334c51c23f23f9a154010da5a0e8ab58c5c97e516ecd2bd6b580770dc94024916c56ee11b7f71f9f1", + "Args": "/qb" + }, + "ChangeLog": [ + "added feature", + "fixed bug" + ] + }, + { + "Version": "1.5.1", "File": { - "Url": "https://download.protonvpn.net/download/ProtonVPN_win_v2.3.2.exe", - "SHA1CheckSum": "63b679452fffd92aa778caafaa0fb99c45ab9a2b", - "SHA256CheckSum": "3fd2a8f09887fef57cd6c99e31ad71804281142c4f731f0685dfea8c362411b6", - "SHA512CheckSum": "41a867409f020a2c72a4284e21b99db43ad8860f385e3411f902d403c28eda0e11a5118dbd977be81dde9711428e65307b8dd5128a872838e410ce328f28a496", - "Arguments": "/qb" + "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.5.1.exe", + "Sha512CheckSum": "c011146ae24f5a49ef86ff6199ec0bd42223b408e1dce3ffef9a2ef4b9c1806b1c823ce427d7473378b7d8c427ba6cb3701320740523ad79fc9ec8cfeb907875", + "Args": "/qb" }, "ChangeLog": [ - "Added feature." - ], - "ReleaseDate": "2023-01-03T11:42:24Z", - "MinimumOsVersion": "6.1.7600" + "added feature", + "fixed bug" + ] } ] } diff --git a/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdateTest.cs b/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdateTest.cs index 079e1f8e7..e7150d3fe 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdateTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdateTest.cs @@ -49,13 +49,7 @@ public class AppUpdateTest private IHttpClient _httpClient; private IFeedUrlProvider _feedUrlProvider; private DefaultAppUpdateConfig _config; - private IEnumerable _feedUrls = new List() - { - new Uri("http://127.0.0.1/windows-releases.json"), - new Uri("http://127.0.0.1/win-update.json") - }; - - #region Initialization + private Uri _feedUrl = new Uri("http://127.0.0.1/windows-releases.json"); [TestInitialize] public void TestInitialize() @@ -64,7 +58,7 @@ public void TestInitialize() _launchableFile = Substitute.For(); _httpClient = Substitute.For(); _feedUrlProvider = Substitute.For(); - _feedUrlProvider.GetFeedUrls().Returns(_feedUrls); + _feedUrlProvider.GetFeedUrl().Returns(_feedUrl); _config = new DefaultAppUpdateConfig { HttpClient = _httpClient, @@ -84,14 +78,14 @@ private IAppUpdate AppUpdate(Version version, IHttpResponseMessage httpResponse private IAppUpdate AppUpdate(Task httpResponse, [CallerMemberName] string updatesPath = null) { _config.UpdatesPath = TestConfig.GetFolderPath(updatesPath); - _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrls().First()).Returns(httpResponse); + _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrl()).Returns(httpResponse); return AppUpdate(); } private IAppUpdate AppUpdate(IHttpResponseMessage httpResponse, [CallerMemberName] string updatesPath = null) { _config.UpdatesPath = TestConfig.GetFolderPath(updatesPath); - _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrls().First()).Returns(httpResponse); + _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrl()).Returns(httpResponse); return AppUpdate(); } @@ -100,10 +94,6 @@ private IAppUpdate AppUpdate() return new AppUpdate(new AppUpdates(_config, _launchableFile, _logger)); } - #endregion - - #region Test: ReleaseHistory - [TestMethod] public void ReleaseHistory_ShouldBe_Empty_Initially() { @@ -115,7 +105,7 @@ public void ReleaseHistory_ShouldBe_Empty_Initially() [TestMethod] public async Task ReleaseHistory_ShouldReturn_Stable_Releases() { - IAppUpdate update = AppUpdate(HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); IReadOnlyList result = update.ReleaseHistory(); @@ -128,7 +118,7 @@ public async Task ReleaseHistory_ShouldReturn_Stable_Releases() [TestMethod] public async Task ReleaseHistory_ShouldReturn_StableAndEarlyAccess_Releases() { - IAppUpdate update = AppUpdate(HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(HttpResponseFromFile("windows-releases.json")); update = await update.Latest(true); IReadOnlyList result = update.ReleaseHistory(); @@ -141,7 +131,7 @@ public async Task ReleaseHistory_ShouldReturn_StableAndEarlyAccess_Releases() [TestMethod] public async Task ReleaseHistory_ShouldReturn_StableAndEarlyAccess_Releases_UpToCurrentVersion() { - IAppUpdate update = AppUpdate(new Version(1, 5, 2), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 2), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); IReadOnlyList result = update.ReleaseHistory(); @@ -155,7 +145,7 @@ public async Task ReleaseHistory_ShouldReturn_StableAndEarlyAccess_Releases_UpTo [TestMethod] public async Task ReleaseHistory_ShouldReturn_Releases_WithChangeLog() { - IAppUpdate update = AppUpdate(HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); IReadOnlyList result = update.ReleaseHistory(); @@ -168,7 +158,7 @@ public async Task ReleaseHistory_ShouldReturn_Releases_WithChangeLog() [TestMethod] public async Task ReleaseHistory_ShouldReturn_Releases_OrderedByVersion() { - IAppUpdate update = AppUpdate(HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(HttpResponseFromFile("windows-releases.json")); update = await update.Latest(true); IReadOnlyList result = update.ReleaseHistory(); @@ -177,10 +167,6 @@ public async Task ReleaseHistory_ShouldReturn_Releases_OrderedByVersion() result.Should().ContainInOrder(expected); } - #endregion - - #region Test: Available - [TestMethod] public void Available_ShouldBeFalse_Initially() { @@ -198,7 +184,7 @@ public void Available_ShouldBeFalse_Initially() [DataRow(2, 0, 1, true, false)] public async Task Available_ShouldReflect_LatestRelease_AfterLatest(int major, int minor, int build, bool earlyAccess, bool result) { - IAppUpdate update = AppUpdate(new Version(major, minor, build), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(major, minor, build), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(earlyAccess); @@ -215,7 +201,7 @@ public async Task Available_ShouldReflect_LatestRelease_AfterLatest(int major, i [DataRow(2, 0, 1, true, false)] public async Task Available_ShouldReflect_LatestRelease_AfterCachedLatest(int major, int minor, int build, bool earlyAccess, bool result) { - IAppUpdate update = AppUpdate(new Version(major, minor, build), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(major, minor, build), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); update = update.CachedLatest(earlyAccess); @@ -259,7 +245,7 @@ public async Task Available_ShouldBe_False_WhenLatestRelease_FileHasNoChecksum() [TestMethod] public async Task Available_ShouldNotChange_AfterDownload_WhenItWasFalse() { - IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); update.Available.Should().BeFalse(); @@ -275,7 +261,7 @@ public async Task Available_ShouldNotChange_AfterDownload_WhenItWasTrue() IHttpResponseMessage httpResponse = HttpResponseFromFile("ProtonVPN_win_v2.0.0.exe"); _httpClient.GetAsync(fileUri).Returns(httpResponse); - IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(true); update.Available.Should().BeTrue(); @@ -284,10 +270,6 @@ public async Task Available_ShouldNotChange_AfterDownload_WhenItWasTrue() update.Available.Should().BeTrue(); } - #endregion - - #region Test: Ready - [TestMethod] public void Ready_ShouldBeFalse_Initially() { @@ -299,12 +281,12 @@ public void Ready_ShouldBeFalse_Initially() [TestMethod] public async Task Ready_ShouldBeFalse_AfterLatest_WhenUpdateNotAvailable() { - IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(true); update.Available.Should().BeTrue(); - IHttpResponseMessage response = HttpResponseFromFile("win-update.json"); - _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrls().First()).Returns(response); + IHttpResponseMessage response = HttpResponseFromFile("windows-releases.json"); + _httpClient.GetAsync(_config.FeedUriProvider.GetFeedUrl()).Returns(response); update = await update.Latest(false); update.Available.Should().BeFalse(); @@ -315,7 +297,7 @@ public async Task Ready_ShouldBeFalse_AfterLatest_WhenUpdateNotAvailable() [TestMethod] public async Task Ready_ShouldBeFalse_AfterCachedLatest_WhenUpdateNotAvailable() { - IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(true); update.Available.Should().BeTrue(); @@ -328,7 +310,7 @@ public async Task Ready_ShouldBeFalse_AfterCachedLatest_WhenUpdateNotAvailable() [TestMethod] public async Task Ready_ShouldNotChange_AfterDownloaded_WhenNotAvailable() { - IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); update.Available.Should().BeFalse(); @@ -343,7 +325,7 @@ public async Task Ready_ShouldNotChange_AfterDownloaded_WhenFalse() IHttpResponseMessage httpResponse = HttpResponseFromFile("ProtonVPN_win_v2.0.0.exe"); _httpClient.GetAsync("https://protonvpn.com/download/ProtonVPN_win_v2.0.0.exe").Returns(httpResponse); - IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(true); update.Ready.Should().BeFalse(); @@ -358,7 +340,7 @@ public async Task Ready_ShouldNotChange_AfterDownloaded_WhenTrue() IHttpResponseMessage httpResponse = HttpResponseFromFile("ProtonVPN_win_v2.0.0.exe"); _httpClient.GetAsync("https://protonvpn.com/download/ProtonVPN_win_v2.0.0.exe").Returns(httpResponse); - IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(true); update = await update.Downloaded(); update = await update.Validated(); @@ -373,7 +355,7 @@ public async Task Ready_ShouldNotChange_AfterDownloaded_WhenTrue() public async Task Ready_ShouldBeTrue_AfterValidated_WhenFileAlreadyExists() { const string downloadsPath = nameof(Downloaded_ShouldDownloadFile_ToDownloadsDirectory); - IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("win-update.json"), downloadsPath); + IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("windows-releases.json"), downloadsPath); update = await update.Latest(false); update.Available.Should().BeTrue(); @@ -390,7 +372,7 @@ public async Task Ready_ShouldBeFalse_AfterValidated_WhenFileCheckSum_IsNotValid IHttpResponseMessage httpResponse = HttpResponseFromFile("ProtonVPN_win_v1.0.0.exe"); _httpClient.GetAsync("https://protonvpn.com/download/ProtonVPN_win_v1.5.1.exe").Returns(httpResponse); - IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); update.Available.Should().BeTrue(); @@ -406,7 +388,7 @@ public async Task Ready_ShouldBeTrue_AfterValidated_WhenFileCheckSum_IsValid() IHttpResponseMessage httpResponse = HttpResponseFromFile("ProtonVPN_win_v2.0.0.exe"); _httpClient.GetAsync("https://protonvpn.com/download/ProtonVPN_win_v2.0.0.exe").Returns(httpResponse); - IAppUpdate update = AppUpdate(new Version(1, 5, 1), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 1), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(true); update.Available.Should().BeTrue(); @@ -416,19 +398,15 @@ public async Task Ready_ShouldBeTrue_AfterValidated_WhenFileCheckSum_IsValid() update.Ready.Should().BeTrue(); } - #endregion - - #region Test: Latest - [TestMethod] public async Task Latest_ShouldGet_JsonFile_UsingFeedUri() { - _feedUrlProvider.GetFeedUrls().Returns(_feedUrls); - IAppUpdate update = AppUpdate(HttpResponseFromFile("win-update.json")); + _feedUrlProvider.GetFeedUrl().Returns(_feedUrl); + IAppUpdate update = AppUpdate(HttpResponseFromFile("windows-releases.json")); await update.Latest(false); - await _httpClient.Received().GetAsync(_config.FeedUriProvider.GetFeedUrls().First()); + await _httpClient.Received().GetAsync(_config.FeedUriProvider.GetFeedUrl()); } [TestMethod] @@ -499,14 +477,10 @@ public void Latest_ShouldThrow_WhenHttpResponse_IsNotJson() action.Should().ThrowAsync(); } - #endregion - - #region Test: CachedLatest - [TestMethod] public async Task CachedLatest_ShouldNotGet_JsonFile() { - IAppUpdate update = AppUpdate(HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(HttpResponseFromFile("windows-releases.json")); update.CachedLatest(false); @@ -516,7 +490,7 @@ public async Task CachedLatest_ShouldNotGet_JsonFile() [TestMethod] public async Task CachedLatest_ShouldNotChange_Releases_WhenEarlyAccess_IsFalse() { - IAppUpdate update = AppUpdate(new Version(1, 5, 2), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 2), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); List expected = update.ReleaseHistory().ToList(); @@ -529,7 +503,7 @@ public async Task CachedLatest_ShouldNotChange_Releases_WhenEarlyAccess_IsFalse( [TestMethod] public async Task CachedLatest_ShouldNotChange_Releases_WhenEarlyAccess_IsTrue() { - IAppUpdate update = AppUpdate(new Version(1, 5, 2), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 2), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(true); List expected = update.ReleaseHistory().ToList(); @@ -539,10 +513,6 @@ public async Task CachedLatest_ShouldNotChange_Releases_WhenEarlyAccess_IsTrue() .ContainInOrder(expected); } - #endregion - - #region Test: Downloaded - [TestMethod] public async Task Downloaded_ShouldDownload_FromFileUri() { @@ -550,7 +520,7 @@ public async Task Downloaded_ShouldDownload_FromFileUri() IHttpResponseMessage httpResponse = HttpResponseFromFile("ProtonVPN_win_v1.5.1.exe"); _httpClient.GetAsync(fileUri).Returns(httpResponse); - IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); update.Available.Should().BeTrue(); @@ -563,7 +533,7 @@ public async Task Downloaded_ShouldDownload_FromFileUri() public async Task Downloaded_ShouldDownloadFile_ToDownloadsDirectory() { const string downloadsPath = nameof(Downloaded_ShouldDownloadFile_ToDownloadsDirectory); - IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("win-update.json"), downloadsPath); + IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("windows-releases.json"), downloadsPath); update = await update.Latest(true); update.Available.Should().BeTrue(); @@ -583,7 +553,7 @@ public async Task Downloaded_ShouldDownloadFile_ToDownloadsDirectory() [TestMethod] public async Task Downloaded_ShouldNotDownload_WhenUpdateAvailable_IsFalse_Initially() { - IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 5, 5), HttpResponseFromFile("windows-releases.json")); update.Available.Should().BeFalse(); await update.Downloaded(); @@ -594,7 +564,7 @@ public async Task Downloaded_ShouldNotDownload_WhenUpdateAvailable_IsFalse_Initi [TestMethod] public async Task Downloaded_ShouldNotDownload_WhenUpdateAvailable_IsFalse_AfterLatest() { - IAppUpdate update = AppUpdate(new Version(2, 2, 0), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(2, 2, 0), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); update.Available.Should().BeFalse(); @@ -606,7 +576,7 @@ public async Task Downloaded_ShouldNotDownload_WhenUpdateAvailable_IsFalse_After [TestMethod] public async Task Downloaded_ShouldThrow_WhenHttpResponse_IsNotSuccess() { - IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); update.Available.Should().BeTrue(); @@ -637,7 +607,7 @@ public async Task Downloaded_ShouldThrow_WhenHttpRequest_Throws() private async Task Downloaded_ShouldThrow_WhenHttpRequest_Throws(Exception exception) { - IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); update.Available.Should().BeTrue(); @@ -651,7 +621,7 @@ private async Task Downloaded_ShouldThrow_WhenHttpRequest_Throws(Exception excep [TestMethod] public async Task Downloaded_ShouldThrow_WhenHttpRequest_Cancelled() { - IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("win-update.json")); + IAppUpdate update = AppUpdate(new Version(1, 2, 0), HttpResponseFromFile("windows-releases.json")); update = await update.Latest(false); update.Available.Should().BeTrue(); @@ -662,10 +632,6 @@ public async Task Downloaded_ShouldThrow_WhenHttpRequest_Cancelled() await f.Should().ThrowAsync(); } - #endregion - - #region Helpers - private static void CopyFile(string sourcePath, string destPath, string newFilename = null) { if (!string.IsNullOrEmpty(destPath)) @@ -722,7 +688,5 @@ private static IHttpResponseMessage HttpResponseFromStream(Stream stream) return httpResponse; } - - #endregion } } \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdatesTest.cs b/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdatesTest.cs index 8109a9e13..2452bfe0d 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdatesTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdatesTest.cs @@ -44,11 +44,7 @@ public class AppUpdatesTest private IHttpClient _httpClient; private IFeedUrlProvider _feedUrlProvider; private DefaultAppUpdateConfig _config; - private IEnumerable _feedUrls = new List() - { - new Uri("http://127.0.0.1/windows-releases.json"), - new Uri("http://127.0.0.1/win-update.json") - }; + private Uri _feedUrl = new Uri("http://127.0.0.1/windows-releases.json"); #region Initialization @@ -59,7 +55,7 @@ public void TestInitialize() _launchableFile = Substitute.For(); _httpClient = Substitute.For(); _feedUrlProvider = Substitute.For(); - _feedUrlProvider.GetFeedUrls().Returns(_feedUrls); + _feedUrlProvider.GetFeedUrl().Returns(_feedUrl); _config = new DefaultAppUpdateConfig { HttpClient = _httpClient, diff --git a/src/Tests/ProtonVPN.Vpn.Tests/ProtonVPN.Vpn.Tests.csproj b/src/Tests/ProtonVPN.Vpn.Tests/ProtonVPN.Vpn.Tests.csproj index dfed6d054..9e1afdfa2 100644 --- a/src/Tests/ProtonVPN.Vpn.Tests/ProtonVPN.Vpn.Tests.csproj +++ b/src/Tests/ProtonVPN.Vpn.Tests/ProtonVPN.Vpn.Tests.csproj @@ -1,112 +1,45 @@ - - - + - Debug - AnyCPU - {A16637C2-2D91-4953-AE04-D91EC188DD7B} + net6.0-windows Library - Properties - ProtonVPN.Vpn.Tests - ProtonVPN.Vpn.Tests - v4.7.2 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 15.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages - False - UnitTest - - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest + false + false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {BA2D505E-CED3-4FCB-A463-DAF6B77C18DE} - ProtonVPN.Crypto - - - {4aa7ce6f-7154-49c1-b598-46055d590cad} - ProtonVPN.Vpn - + + + 6.7.0 + + - 2.2.7 + 2.2.10 - 2.2.7 + 2.2.10 4.3.0 - - 4.3.4 - + 4.3.1 - 5.0.0 + 6.0.0 4.5.4 + + + all + - - \ No newline at end of file diff --git a/src/Tests/TestTools.ApiClient/Properties/AssemblyInfo.cs b/src/Tests/TestTools.ApiClient/Properties/AssemblyInfo.cs index 491cec55c..7c8675b4d 100644 --- a/src/Tests/TestTools.ApiClient/Properties/AssemblyInfo.cs +++ b/src/Tests/TestTools.ApiClient/Properties/AssemblyInfo.cs @@ -1,5 +1,6 @@ using System.Reflection; using System.Runtime.InteropServices; +using System.Runtime.Versioning; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -33,3 +34,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: SupportedOSPlatform("windows")] diff --git a/src/Tests/TestTools.ApiClient/TestTools.ApiClient.csproj b/src/Tests/TestTools.ApiClient/TestTools.ApiClient.csproj index ec32584b5..e0b8b1123 100644 --- a/src/Tests/TestTools.ApiClient/TestTools.ApiClient.csproj +++ b/src/Tests/TestTools.ApiClient/TestTools.ApiClient.csproj @@ -1,86 +1,34 @@ - - - + - Debug - AnyCPU - {F059E362-20A2-472B-82CA-E727D31AC0C7} + net6.0-windows Library - Properties - TestTools.ApiClient - TestTools.ApiClient - v4.7.2 - 512 - true - - - - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - latest + false + false - - - - - - - - - - - - - - - - - - - - - - {9E4D6072-C8DE-475A-B9A7-4B6BF6EEEAEB} - ProtonVPN.Api.Contracts - - - {3E905528-D87C-4552-A32D-66BF90D14DB0} - ProtonVPN.Api - - - {03B8E43C-5680-4803-A745-0A104FE6620C} - ProtonVPN.Common - - - {CA44B51D-7645-413A-818F-2C5B57DB67DD} - ProtonVPN.Core - + + + + + + 4.3.0 + - 5.0.0 + 6.0.0 4.5.4 + + + all + - \ No newline at end of file diff --git a/src/Tests/TestTools.ProfileCleaner/Program.cs b/src/Tests/TestTools.ProfileCleaner/Program.cs index 8d8d98074..bc57ddb06 100644 --- a/src/Tests/TestTools.ProfileCleaner/Program.cs +++ b/src/Tests/TestTools.ProfileCleaner/Program.cs @@ -36,4 +36,4 @@ static async Task Main(string[] args) await api.DeleteProfiles(); } } -} +} \ No newline at end of file diff --git a/src/Tests/TestTools.ProfileCleaner/Properties/AssemblyInfo.cs b/src/Tests/TestTools.ProfileCleaner/Properties/AssemblyInfo.cs index 0205d9537..a22d8f0fa 100644 --- a/src/Tests/TestTools.ProfileCleaner/Properties/AssemblyInfo.cs +++ b/src/Tests/TestTools.ProfileCleaner/Properties/AssemblyInfo.cs @@ -1,5 +1,6 @@ using System.Reflection; using System.Runtime.InteropServices; +using System.Runtime.Versioning; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information @@ -33,3 +34,4 @@ // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: SupportedOSPlatform("windows")] diff --git a/src/Tests/TestTools.ProfileCleaner/TestTools.ProfileCleaner.csproj b/src/Tests/TestTools.ProfileCleaner/TestTools.ProfileCleaner.csproj index 648292ee4..41a18e74d 100644 --- a/src/Tests/TestTools.ProfileCleaner/TestTools.ProfileCleaner.csproj +++ b/src/Tests/TestTools.ProfileCleaner/TestTools.ProfileCleaner.csproj @@ -1,67 +1,22 @@ - - - + - Debug - AnyCPU - {4237AD33-596A-4B35-826A-B4E71461820F} + net6.0-windows Exe - TestTools.ProfileCleaner - TestTools.ProfileCleaner - v4.7.2 - 512 - true - true - - - AnyCPU - true - full - false - ..\..\bin\ - DEBUG;TRACE - prompt - 4 - 8.0 - false - - - AnyCPU - pdbonly - true + false ..\..\bin\ - TRACE - prompt - 4 - 8.0 - false - - - true + false + false - - - - - - - - - - - - - - - - - - {f059e362-20a2-472b-82ca-e727d31ac0c7} - TestTools.ApiClient - + + - + + + + + + all + - \ No newline at end of file From dd97db30d9a5d525e4cdaf8dbacc7c5666ff110b Mon Sep 17 00:00:00 2001 From: Lukas Date: Tue, 28 Feb 2023 17:59:05 +0200 Subject: [PATCH 02/39] Reintroduce second runner for UI tests --- .gitlab-ci.yml | 72 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f48d523b8..ff9a0fad5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -148,20 +148,15 @@ build-installer-for-debug: testmo-setup: allow_failure: true stage: test-setup - rules: - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - when: never - - if: $CI_COMMIT_REF_NAME == "release/9.9.9" || $CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME =~ "/debug/" - when: never - - if: $CI_COMMIT_REF_NAME =~ "/release/" - variables: - SOURCE: "Release" - - when: always + except: + - /^debug.*$/ + - release/9.9.9 + - master variables: SOURCE: "Windows" NAME: "$CI_JOB_STARTED_AT UTC" TAGS: "$CI_COMMIT_REF_SLUG" - + ui-test: stage: ui-test tags: @@ -171,7 +166,58 @@ ui-test: - ci\install-the-app.ps1 - dotnet build src/Tests/ProtonVPN.UI.Tests/ProtonVPN.UI.Tests.csproj --arch x64 -o src/bin - dotnet publish src\Tests\TestTools.ProfileCleaner\TestTools.ProfileCleaner.csproj --arch x64 -c Release --self-contained --verbosity q -o src\bin - - VSTest.Console.exe src\bin\ProtonVPN.UI.Tests.dll /Settings:ci/TestRun/test-run-settings.xml + - VSTest.Console.exe src\bin\ProtonVPN.UI.Tests.dll /Settings:ci/TestRun/test-run-settings.xml /TestCaseFilter:"Category=UI" + - ci\uninstall-app.ps1 + after_script: + - powershell.exe ./ci/TestRun/converter-nunit-junit.ps1 + except: + - /^debug.*$/ + - release/9.9.9 + - master + artifacts: + when: always + name: "result-ui" + paths: + - $SCREENSHOT_PATH + - "results/*" + expire_in: 1 weeks + +connection-test: + stage: ui-test + tags: + - connection_tests + script: + - ci\uninstall-app.ps1 + - ci\install-the-app.ps1 + - dotnet build src/Tests/ProtonVPN.UI.Tests/ProtonVPN.UI.Tests.csproj --arch x64 -o src/bin + - dotnet publish src\Tests\TestTools.ProfileCleaner\TestTools.ProfileCleaner.csproj --arch x64 -c Release --self-contained --verbosity q -o src\bin + - VSTest.Console.exe src\bin\ProtonVPN.UI.Tests.dll /Settings:ci/TestRun/test-run-settings.xml /TestCaseFilter:"Category=Connection" + - ci\uninstall-app.ps1 + after_script: + - powershell.exe ./ci/TestRun/converter-nunit-junit.ps1 + except: + - /^debug.*$/ + - release/9.9.9 + - master + artifacts: + when: always + name: "result-ui" + paths: + - $SCREENSHOT_PATH + - "results/*" + expire_in: 1 weeks + +win-11-test: + stage: ui-test + when: manual + tags: + - win11 + script: + - ci\uninstall-app.ps1 + - ci\install-the-app.ps1 + - dotnet build src/Tests/ProtonVPN.UI.Tests/ProtonVPN.UI.Tests.csproj --arch x64 -o src/bin + - dotnet publish src\Tests\TestTools.ProfileCleaner\TestTools.ProfileCleaner.csproj --arch x64 -c Release --self-contained --verbosity q -o src\bin + - VSTest.Console.exe src\bin\ProtonVPN.UI.Tests.dll /Settings:ci/TestRun/test-run-settings.xml /TestCaseFilter:"Category=Smoke" - ci\uninstall-app.ps1 after_script: - powershell.exe ./ci/TestRun/converter-nunit-junit.ps1 @@ -190,6 +236,10 @@ ui-test: testmo-upload: allow_failure: true stage: test-upload + except: + - /^debug.*$/ + - release/9.9.9 + - master variables: RESULT_FOLDER: "results/*.xml" From 69882a1c66153e532b838d88291da09f0f5bc491 Mon Sep 17 00:00:00 2001 From: Eduardo Abreu Date: Thu, 9 Mar 2023 15:23:03 +0100 Subject: [PATCH 03/39] Switch to ConcurrentDictionary in ISettingsStorage implementations --- src/ProtonVPN.App/Settings/PerUserSettings.cs | 23 ++++++++++++++----- src/ProtonVPN.Core/Storage/CachedSettings.cs | 6 +++-- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/ProtonVPN.App/Settings/PerUserSettings.cs b/src/ProtonVPN.App/Settings/PerUserSettings.cs index 1f405015b..5628a2bc5 100644 --- a/src/ProtonVPN.App/Settings/PerUserSettings.cs +++ b/src/ProtonVPN.App/Settings/PerUserSettings.cs @@ -18,6 +18,7 @@ */ using System; +using System.Collections.Concurrent; using System.Collections.Generic; using System.Configuration; using System.Linq; @@ -32,8 +33,10 @@ internal class PerUserSettings : ISettingsStorage, ILoggedInAware, ILogoutAware private const string KeyPrefix = "User"; private const string DefaultKeySuffix = "Default"; private const string UserKey = "Username"; + private readonly ISettingsStorage _storage; - private readonly Dictionary _cache = new Dictionary(); + private readonly ConcurrentDictionary _cache = new(); + private string _user = string.Empty; public PerUserSettings(ISettingsStorage storage) @@ -44,10 +47,12 @@ public PerUserSettings(ISettingsStorage storage) public T Get(string key) { if (_cache.TryGetValue(key, out object cachedValue)) + { return cachedValue is T result ? result : default; + } - var perUser = _storage.Get[]>(PerUserKey(key))?.SingleOrDefault(i => i.User == User); - var value = perUser != null + PerUser perUser = _storage.Get[]>(PerUserKey(key))?.SingleOrDefault(i => i.User == User); + T value = perUser != null ? perUser.Value : GetDefault(key); @@ -59,8 +64,8 @@ public void Set(string key, T value) { _cache[key] = value; - var all = _storage.Get[]>(PerUserKey(key))?.ToList() ?? new List>(); - var perUser = all.FirstOrDefault(i => i.User == User); + List> all = _storage.Get[]>(PerUserKey(key))?.ToList() ?? new List>(); + PerUser perUser = all.FirstOrDefault(i => i.User == User); if (perUser == null) { perUser = new PerUser { User = User }; @@ -103,7 +108,9 @@ private string User get { if (!string.IsNullOrEmpty(_user)) + { return _user; + } _cache.Clear(); return GetUser(); @@ -112,9 +119,11 @@ private string User private string GetUser() { - var user = _storage.Get(UserKey); + string user = _storage.Get(UserKey); if (string.IsNullOrEmpty(user)) + { throw new InvalidOperationException("Access to user settings is not allowed: user is not logged in"); + } return TrimDomain(user.Decrypt()).ToUpperInvariant(); } @@ -122,7 +131,9 @@ private string GetUser() private static string TrimDomain(string username) { if (username.IndexOf('@') is var i && i >= 0) + { return username.Substring(0, i); + } return username; } diff --git a/src/ProtonVPN.Core/Storage/CachedSettings.cs b/src/ProtonVPN.Core/Storage/CachedSettings.cs index 22f188900..94093a385 100644 --- a/src/ProtonVPN.Core/Storage/CachedSettings.cs +++ b/src/ProtonVPN.Core/Storage/CachedSettings.cs @@ -17,14 +17,14 @@ * along with ProtonVPN. If not, see . */ -using System.Collections.Generic; +using System.Collections.Concurrent; namespace ProtonVPN.Core.Storage { public class CachedSettings : ISettingsStorage { private readonly ISettingsStorage _storage; - private readonly Dictionary _cache = new Dictionary(); + private readonly ConcurrentDictionary _cache = new(); public CachedSettings(ISettingsStorage storage) { @@ -34,7 +34,9 @@ public CachedSettings(ISettingsStorage storage) public T Get(string key) { if (_cache.TryGetValue(key, out object cachedValue)) + { return cachedValue is T result ? result : default; + } T value = _storage.Get(key); _cache[key] = value; From f6c865c77718a092b7684b999257e2acd15463c3 Mon Sep 17 00:00:00 2001 From: Mindaugas Veblauskas Date: Tue, 14 Mar 2023 10:12:38 +0200 Subject: [PATCH 04/39] Add code cleanup to app settings migration on installer actions --- src/ProtonVPN.InstallActions/AppSettingsMigration.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp b/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp index b1de3a529..b88eeb499 100644 --- a/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp +++ b/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp @@ -95,7 +95,7 @@ void AppSettingsMigration::FixUserConfigFile(fs::path user_config_folder_path) fs::path AppSettingsMigration::GetOldUserConfigPath() { const string local_app_data_path = GetLocalAppDataPath(); - fs::file_time_type latest_version; + fs::file_time_type latest_version_time; fs::path latest_version_folder_path; fs::path app_data_folder_path = local_app_data_path / fs::path("ProtonVPN"); if (!fs::exists(app_data_folder_path)) @@ -112,13 +112,12 @@ fs::path AppSettingsMigration::GetOldUserConfigPath() { for (auto& version_folder : fs::directory_iterator(p)) { - if (version_folder.last_write_time() > latest_version) + if (version_folder.last_write_time() > latest_version_time) { - latest_version = version_folder.last_write_time(); + latest_version_time = version_folder.last_write_time(); latest_version_folder_path = version_folder.path(); } } - break; } } } From 6ff0c30c382571182f87af1fdc788b30f9de5bd5 Mon Sep 17 00:00:00 2001 From: Mindaugas Veblauskas Date: Wed, 15 Mar 2023 11:28:19 +0200 Subject: [PATCH 05/39] Fix disabled menu items on app start with auto connect --- src/ProtonVPN.App/Core/Bootstraper.cs | 2 -- src/ProtonVPN.App/ViewModels/MainViewModel.cs | 35 +++---------------- src/ProtonVPN.App/Windows/AppWindow.xaml | 9 +++-- 3 files changed, 12 insertions(+), 34 deletions(-) diff --git a/src/ProtonVPN.App/Core/Bootstraper.cs b/src/ProtonVPN.App/Core/Bootstraper.cs index 98806df2d..608f6b52b 100644 --- a/src/ProtonVPN.App/Core/Bootstraper.cs +++ b/src/ProtonVPN.App/Core/Bootstraper.cs @@ -54,7 +54,6 @@ using ProtonVPN.Core.Modals; using ProtonVPN.Core.Models; using ProtonVPN.Core.Network; -using ProtonVPN.Core.OS.Net; using ProtonVPN.Core.PortForwarding; using ProtonVPN.Core.Profiles; using ProtonVPN.Core.ReportAnIssue; @@ -569,7 +568,6 @@ private async Task SwitchToAppWindow(bool autoLogin) private void LoadViewModels() { - Resolve().Load(); Resolve().Load(); Resolve().Load(); Resolve().Load(); diff --git a/src/ProtonVPN.App/ViewModels/MainViewModel.cs b/src/ProtonVPN.App/ViewModels/MainViewModel.cs index 347adf0a1..7489af409 100644 --- a/src/ProtonVPN.App/ViewModels/MainViewModel.cs +++ b/src/ProtonVPN.App/ViewModels/MainViewModel.cs @@ -90,12 +90,12 @@ public MainViewModel( eventAggregator.Subscribe(this); - AboutCommand = new RelayCommand(AboutAction, CanClick); - AccountCommand = new RelayCommand(AccountAction, CanClick); - ProfilesCommand = new RelayCommand(ProfilesAction, CanClick); - SettingsCommand = new RelayCommand(SettingsAction, CanClick); + AboutCommand = new RelayCommand(AboutAction); + AccountCommand = new RelayCommand(AccountAction); + ProfilesCommand = new RelayCommand(ProfilesAction); + SettingsCommand = new RelayCommand(SettingsAction); HelpCommand = new RelayCommand(HelpAction); - ReportBugCommand = new RelayCommand(ReportBugAction, CanClick); + ReportBugCommand = new RelayCommand(ReportBugAction); DeveloperToolsCommand = new RelayCommand(DeveloperToolsAction); LogoutCommand = new RelayCommand(LogoutAction); ExitCommand = new RelayCommand(ExitAction); @@ -137,18 +137,9 @@ public bool Connecting _eventAggregator.PublishOnUIThreadAsync(new ToggleOverlay(value)); } Set(ref _connecting, value); - CommandManager.InvalidateRequerySuggested(); - SetupMenuItems(); } } - private bool _blockMenu; - public bool BlockMenu - { - get => _blockMenu; - set => Set(ref _blockMenu, value); - } - private bool _showOnboarding; public bool ShowOnboarding { @@ -163,11 +154,6 @@ public VpnStatus VpnStatus set => Set(ref _vpnStatus, value); } - public void Load() - { - SetupMenuItems(); - } - public Task OnVpnStateChanged(VpnStateChangedEventArgs e) { VpnStatus = e.State.Status; @@ -189,7 +175,6 @@ public Task OnVpnStateChanged(VpnStateChangedEventArgs e) case VpnStatus.Disconnecting: case VpnStatus.Disconnected: Connecting = false; - SetupMenuItems(); break; } @@ -201,16 +186,6 @@ public void OnStepChanged(int step) ShowOnboarding = step > 0; } - private void SetupMenuItems() - { - BlockMenu = Connecting; - } - - private bool CanClick() - { - return !Connecting; - } - private async void AboutAction() { await _modals.ShowAsync(); diff --git a/src/ProtonVPN.App/Windows/AppWindow.xaml b/src/ProtonVPN.App/Windows/AppWindow.xaml index 70b55c1d8..1d2f742da 100644 --- a/src/ProtonVPN.App/Windows/AppWindow.xaml +++ b/src/ProtonVPN.App/Windows/AppWindow.xaml @@ -84,9 +84,9 @@ along with ProtonVPN. If not, see . + + + + + + + + + + + + + + + + + + + @@ -69,16 +74,22 @@ along with ProtonVPN. If not, see . - + + Visibility="{Binding KillSwitchEnabled, Converter={StaticResource BoolToVis}}" /> - + \ No newline at end of file diff --git a/src/ProtonVPN.App/Modals/OutdatedAppModalViewModel.cs b/src/ProtonVPN.App/Modals/OutdatedAppModalViewModel.cs index 7a47923c4..d441bce18 100644 --- a/src/ProtonVPN.App/Modals/OutdatedAppModalViewModel.cs +++ b/src/ProtonVPN.App/Modals/OutdatedAppModalViewModel.cs @@ -24,8 +24,8 @@ using GalaSoft.MvvmLight.Command; using ProtonVPN.About; using ProtonVPN.Config.Url; -using ProtonVPN.Core.Update; using ProtonVPN.Core.Vpn; +using ProtonVPN.Update; namespace ProtonVPN.Modals { diff --git a/src/ProtonVPN.App/NetShield/NetShieldStatsManager.cs b/src/ProtonVPN.App/NetShield/NetShieldStatsManager.cs index 01d889c04..490098178 100644 --- a/src/ProtonVPN.App/NetShield/NetShieldStatsManager.cs +++ b/src/ProtonVPN.App/NetShield/NetShieldStatsManager.cs @@ -41,7 +41,7 @@ public class NetShieldStatsManager : IVpnStateAware, ISettingsAware, IHandle("NetShield Stats - Request made"); - _vpnService.RequestNetShieldStats(); + _vpnServiceCaller.RequestNetShieldStats(); } } diff --git a/src/ProtonVPN.App/Notifications/UpdateNotification.cs b/src/ProtonVPN.App/Notifications/UpdateNotification.cs index 848bfabab..22c988070 100644 --- a/src/ProtonVPN.App/Notifications/UpdateNotification.cs +++ b/src/ProtonVPN.App/Notifications/UpdateNotification.cs @@ -19,28 +19,26 @@ using System; using Caliburn.Micro; -using ProtonVPN.Core.Auth; -using ProtonVPN.Core.Update; +using ProtonVPN.Common.Configuration; using ProtonVPN.FlashNotifications; +using ProtonVPN.Update; +using ProtonVPN.Update.Contracts; namespace ProtonVPN.Notifications { public class UpdateNotification : IUpdateStateAware { private readonly TimeSpan _remindInterval; - private readonly IUserAuthenticator _userAuthenticator; private readonly IEventAggregator _eventAggregator; private readonly UpdateFlashNotificationViewModel _notificationViewModel; private DateTime _lastNotified = DateTime.MinValue; public UpdateNotification( - TimeSpan remindInterval, - IUserAuthenticator userAuthenticator, + IConfiguration config, IEventAggregator eventAggregator, UpdateFlashNotificationViewModel notificationViewModel) { - _remindInterval = remindInterval; - _userAuthenticator = userAuthenticator; + _remindInterval = config.UpdateRemindInterval; _eventAggregator = eventAggregator; _notificationViewModel = notificationViewModel; } @@ -49,7 +47,7 @@ public void OnUpdateStateChanged(UpdateStateChangedEventArgs e) { if (e.Ready) { - if (RemindRequired(e) && _userAuthenticator.IsLoggedIn) + if (RemindRequired(e)) { Show(); } @@ -62,13 +60,14 @@ public void OnUpdateStateChanged(UpdateStateChangedEventArgs e) private bool RemindRequired(UpdateStateChangedEventArgs e) { - return e.Status == UpdateStatus.Ready && (e.ManualCheck || - DateTime.Now - _lastNotified >= _remindInterval); + return (e.Status is AppUpdateStatus.Ready + or AppUpdateStatus.AutoUpdated + or AppUpdateStatus.AutoUpdateFailed) && (e.ManualCheck || DateTime.UtcNow - _lastNotified >= _remindInterval); } private void Show() { - _lastNotified = DateTime.Now; + _lastNotified = DateTime.UtcNow; _eventAggregator.PublishOnUIThreadAsync(new ShowFlashMessage(_notificationViewModel)); } @@ -77,4 +76,4 @@ private void Hide() _eventAggregator.PublishOnUIThreadAsync(new HideFlashMessage(_notificationViewModel)); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.App/Properties/Settings.Designer.cs b/src/ProtonVPN.App/Properties/Settings.Designer.cs index 1cd27a766..2a095a0f7 100644 --- a/src/ProtonVPN.App/Properties/Settings.Designer.cs +++ b/src/ProtonVPN.App/Properties/Settings.Designer.cs @@ -918,18 +918,6 @@ public string SettingsVersion { } } - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("01/01/1970 00:00:00")] - public global::System.DateTime LastPrimaryApiFailDateUtc { - get { - return ((global::System.DateTime)(this["LastPrimaryApiFailDateUtc"])); - } - set { - this["LastPrimaryApiFailDateUtc"] = value; - } - } - [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("")] @@ -1578,6 +1566,30 @@ public string DnsCache { } } + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("1970-01-01")] + public global::System.DateTime LastPrimaryApiFailDateUtc { + get { + return ((global::System.DateTime)(this["LastPrimaryApiFailDateUtc"])); + } + set { + this["LastPrimaryApiFailDateUtc"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool IsToAutoUpdate { + get { + return ((bool)(this["IsToAutoUpdate"])); + } + set { + this["IsToAutoUpdate"] = value; + } + } + [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("False")] diff --git a/src/ProtonVPN.App/Properties/Settings.settings b/src/ProtonVPN.App/Properties/Settings.settings index 2a1dd2647..e1b9c8efd 100644 --- a/src/ProtonVPN.App/Properties/Settings.settings +++ b/src/ProtonVPN.App/Properties/Settings.settings @@ -392,6 +392,9 @@ + + True + False diff --git a/src/ProtonVPN.App/ProtonVPN.App.csproj b/src/ProtonVPN.App/ProtonVPN.App.csproj index ab0e7dce0..b3faa5440 100644 --- a/src/ProtonVPN.App/ProtonVPN.App.csproj +++ b/src/ProtonVPN.App/ProtonVPN.App.csproj @@ -327,7 +327,6 @@ - @@ -341,7 +340,6 @@ - diff --git a/src/ProtonVPN.App/Settings/SettingsModalView.xaml b/src/ProtonVPN.App/Settings/SettingsModalView.xaml index 5146a82b5..d45c6d526 100644 --- a/src/ProtonVPN.App/Settings/SettingsModalView.xaml +++ b/src/ProtonVPN.App/Settings/SettingsModalView.xaml @@ -18,25 +18,25 @@ along with ProtonVPN. If not, see . --> + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:c="clr-namespace:CalcBinding;assembly=CalcBinding" + xmlns:wpf="clr-namespace:ProtonVPN.Core.Wpf" + xmlns:profiles="clr-namespace:ProtonVPN.Profiles" + xmlns:settings="clr-namespace:ProtonVPN.Settings" + xmlns:splittunneling="clr-namespace:ProtonVPN.Settings.SplitTunneling" + xmlns:translations="clr-namespace:ProtonVPN.Translations;assembly=ProtonVPN.Translations" + xmlns:resource="clr-namespace:ProtonVPN.Resource;assembly=ProtonVPN.Resource" + xmlns:behavior="clr-namespace:ProtonVPN.Core.Wpf.Behavior" + xmlns:activePorts="clr-namespace:ProtonVPN.PortForwarding.ActivePorts" + xmlns:icons="clr-namespace:ProtonVPN.Resource.Graphics.Icons;assembly=ProtonVPN.Resource" + mc:Ignorable="d" + Style="{StaticResource BaseWindowStyle}" + Title="{translations:Loc Settings_ttl}" + SizeToContent="WidthAndHeight" + d:DataContext="{d:DesignInstance settings:SettingsModalViewModel}"> @@ -221,6 +221,22 @@ along with ProtonVPN. If not, see . AutomationProperties.AutomationId="{StaticResource EarlyAccessCheckbox}"/> + + + + + + + + + diff --git a/src/ProtonVPN.App/Settings/SettingsModalViewModel.cs b/src/ProtonVPN.App/Settings/SettingsModalViewModel.cs index 038d46162..3d15afa4d 100644 --- a/src/ProtonVPN.App/Settings/SettingsModalViewModel.cs +++ b/src/ProtonVPN.App/Settings/SettingsModalViewModel.cs @@ -387,6 +387,12 @@ public bool EarlyAccess set => _appSettings.EarlyAccess = value; } + public bool AutoUpdate + { + get => _appSettings.IsToAutoUpdate; + set => _appSettings.IsToAutoUpdate = value; + } + public bool ConnectOnAppStart { get => _appSettings.ConnectOnAppStart; diff --git a/src/ProtonVPN.Core/Update/IUpdateStateAware.cs b/src/ProtonVPN.App/Update/IUpdateStateAware.cs similarity index 96% rename from src/ProtonVPN.Core/Update/IUpdateStateAware.cs rename to src/ProtonVPN.App/Update/IUpdateStateAware.cs index ef51414ca..6fc479fa6 100644 --- a/src/ProtonVPN.Core/Update/IUpdateStateAware.cs +++ b/src/ProtonVPN.App/Update/IUpdateStateAware.cs @@ -17,7 +17,7 @@ * along with ProtonVPN. If not, see . */ -namespace ProtonVPN.Core.Update +namespace ProtonVPN.Update { public interface IUpdateStateAware { diff --git a/src/ProtonVPN.App/Update/UpdateService.cs b/src/ProtonVPN.App/Update/UpdateService.cs new file mode 100644 index 000000000..356a9dcbe --- /dev/null +++ b/src/ProtonVPN.App/Update/UpdateService.cs @@ -0,0 +1,188 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; +using System.ComponentModel; +using System.Threading.Tasks; +using System.Windows.Threading; +using ProtonVPN.Common.Configuration; +using ProtonVPN.Common.Threading; +using ProtonVPN.Common.Vpn; +using ProtonVPN.Core.Auth; +using ProtonVPN.Core.Servers; +using ProtonVPN.Core.Service.Update; +using ProtonVPN.Core.Settings; +using ProtonVPN.Core.Vpn; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Update; +using ProtonVPN.Update.Contracts; + +namespace ProtonVPN.Update +{ + public class UpdateService : ISettingsAware, IVpnStateAware, ILogoutAware + { + private readonly IScheduler _scheduler; + private readonly IConfiguration _appConfig; + private readonly IAppSettings _appSettings; + private readonly IEntityMapper _entityMapper; + private readonly UpdateServiceCaller _updateServiceCaller; + private readonly DispatcherTimer _timer; + + private bool _manualCheck; + private bool _requestedManualCheck; + private bool _isAutoUpdated; + private DateTime _lastCheckTime; + private FeedType _feedType; + private AppUpdateStatus _status = AppUpdateStatus.None; + + public UpdateService( + IScheduler scheduler, + IConfiguration appConfig, + IAppSettings appSettings, + IEntityMapper entityMapper, + UpdateServiceCaller updateServiceCaller, + IAppController appController) + { + _scheduler = scheduler; + _appConfig = appConfig; + _appSettings = appSettings; + _entityMapper = entityMapper; + _updateServiceCaller = updateServiceCaller; + + _timer = new DispatcherTimer(); + _timer.Tick += TimerTick; + _timer.Interval = appConfig.UpdateCheckInterval; + + appController.OnUpdateStateChanged += OnUpdateStateChanged; + } + + public event EventHandler UpdateStateChanged; + + public void StartCheckingForUpdate() + { + StartCheckingForUpdate(true); + } + + public void OnAppSettingsChanged(PropertyChangedEventArgs e) + { + if (e.PropertyName is nameof(IAppSettings.EarlyAccess)) + { + StartCheckingForUpdate(true); + } + } + + public void Initialize() + { + StartCheckingForUpdate(true); + _timer.Start(); + } + + public async Task OnVpnStateChanged(VpnStateChangedEventArgs e) + { + FeedType feedType = e.State.Status == VpnStatus.Connected && e.State.Server.Tier == ServerTiers.Internal + ? FeedType.Internal + : FeedType.Public; + + if (_feedType != feedType) + { + _feedType = feedType; + StartCheckingForUpdate(true); + } + } + + public void OnUserLoggedOut() + { + _status = AppUpdateStatus.None; + StartCheckingForUpdate(true); + } + + private UpdateSettingsIpcEntity CreateSettingsIpcEntity() + { + return new UpdateSettingsIpcEntity + { + FeedType = (FeedTypeIpcEntity)_feedType, + IsEarlyAccess = _appSettings.EarlyAccess, + }; + } + + private void StartCheckingForUpdate(bool manualCheck) + { + _requestedManualCheck |= manualCheck; + if (!manualCheck) + { + if (DateTime.UtcNow - _lastCheckTime <= _appConfig.UpdateCheckInterval) + { + return; + } + } + + _updateServiceCaller.CheckForUpdates(CreateSettingsIpcEntity()); + + _lastCheckTime = DateTime.UtcNow; + } + + private void OnUpdateStateChanged(object sender, UpdateStateIpcEntity e) + { + AppUpdateStateContract state = _entityMapper.Map(e); + if (state.IsReady && _appSettings.IsToAutoUpdate && state.Status == AppUpdateStatus.Ready) + { + _updateServiceCaller.StartAutoUpdate(); + } + else + { + if (state.Status == AppUpdateStatus.AutoUpdated) + { + _isAutoUpdated = true; + } + + if (_isAutoUpdated && state.IsReady) + { + state.Status = AppUpdateStatus.AutoUpdated; + } + + OnUpdateStateChanged(state); + } + } + + private void OnUpdateStateChanged(AppUpdateStateContract state) + { + if (state.Status != _status) + { + if (state.Status == AppUpdateStatus.Checking) + { + _manualCheck = _requestedManualCheck; + _requestedManualCheck = false; + } + + _scheduler.Schedule(() => + { + UpdateStateChanged?.Invoke(this, new UpdateStateChangedEventArgs(state, _manualCheck)); + }); + } + + _status = state.Status; + } + + private void TimerTick(object sender, EventArgs e) + { + StartCheckingForUpdate(false); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Core/Update/UpdateStateChangedEventArgs.cs b/src/ProtonVPN.App/Update/UpdateStateChangedEventArgs.cs similarity index 70% rename from src/ProtonVPN.Core/Update/UpdateStateChangedEventArgs.cs rename to src/ProtonVPN.App/Update/UpdateStateChangedEventArgs.cs index b7386a590..5fb404dd9 100644 --- a/src/ProtonVPN.Core/Update/UpdateStateChangedEventArgs.cs +++ b/src/ProtonVPN.App/Update/UpdateStateChangedEventArgs.cs @@ -19,25 +19,26 @@ using System; using System.Collections.Generic; +using ProtonVPN.Update.Contracts; -namespace ProtonVPN.Core.Update +namespace ProtonVPN.Update { public class UpdateStateChangedEventArgs : EventArgs { - private readonly UpdateState _update; + private readonly AppUpdateStateContract _update; - public UpdateStateChangedEventArgs(UpdateState update, bool manualCheck) + public UpdateStateChangedEventArgs(AppUpdateStateContract update, bool manualCheck) { _update = update; ManualCheck = manualCheck; } - public IReadOnlyList ReleaseHistory => _update.ReleaseHistory; - public bool Available => _update.Available; - public bool Ready => _update.Ready; - public UpdateStatus Status => _update.Status; + public IReadOnlyList ReleaseHistory => _update.ReleaseHistory; + public bool Available => _update.IsAvailable; + public bool Ready => _update.IsReady; + public AppUpdateStatus Status => _update.Status; public bool ManualCheck { get; } public string FilePath => _update.FilePath; public string FileArguments => _update.FileArguments; } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs b/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs index b37fb6533..e29d82ad6 100644 --- a/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs +++ b/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs @@ -91,7 +91,7 @@ public IConfiguration Value() UpdateFilePath = Path.Combine(localAppDataFolder, "Updates", "update.txt"), - UpdatesPath = Path.Combine(localAppDataFolder, "Updates"), + UpdatesPath = Path.Combine(commonAppDataFolder, "Updates"), CalloutServiceName = "ProtonVPNCallout", diff --git a/src/ProtonVPN.Common/Helpers/PathProvider.cs b/src/ProtonVPN.Common/Helpers/PathProvider.cs index 4845a2c73..f7a8f0e47 100644 --- a/src/ProtonVPN.Common/Helpers/PathProvider.cs +++ b/src/ProtonVPN.Common/Helpers/PathProvider.cs @@ -17,6 +17,9 @@ * along with ProtonVPN. If not, see . */ +using System.IO; +using System.Reflection; + namespace ProtonVPN.Common.Helpers { public class PathProvider diff --git a/src/ProtonVPN.Core/ProtonVPN.Core.csproj b/src/ProtonVPN.Core/ProtonVPN.Core.csproj index 3e1c7e9fb..f9428a372 100644 --- a/src/ProtonVPN.Core/ProtonVPN.Core.csproj +++ b/src/ProtonVPN.Core/ProtonVPN.Core.csproj @@ -53,10 +53,12 @@ + + - + diff --git a/src/ProtonVPN.Core/Settings/IAppSettings.cs b/src/ProtonVPN.Core/Settings/IAppSettings.cs index 665962a1e..24705d372 100644 --- a/src/ProtonVPN.Core/Settings/IAppSettings.cs +++ b/src/ProtonVPN.Core/Settings/IAppSettings.cs @@ -52,6 +52,7 @@ public interface IAppSettings bool StartOnBoot { get; set; } StartMinimizedMode StartMinimized { get; set; } bool EarlyAccess { get; set; } + bool IsToAutoUpdate { get; set; } bool SecureCore { get; set; } string LastUpdate { get; set; } KillSwitchMode KillSwitchMode { get; set; } diff --git a/src/ProtonVPN.Core/Update/UpdateService.cs b/src/ProtonVPN.Core/Update/UpdateService.cs deleted file mode 100644 index a921361fd..000000000 --- a/src/ProtonVPN.Core/Update/UpdateService.cs +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Windows; -using System.Windows.Threading; -using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Threading; -using ProtonVPN.Core.Auth; -using ProtonVPN.Core.Settings; -using ProtonVPN.Update; -using ProtonVPN.Update.Config; -using ProtonVPN.Update.Feed; - -namespace ProtonVPN.Core.Update -{ - public class UpdateService : ISettingsAware, ILoggedInAware, ILogoutAware - { - private readonly IScheduler _scheduler; - private readonly IConfiguration _appConfig; - private readonly IAppSettings _appSettings; - private readonly INotifyingAppUpdate _notifyingAppUpdate; - private DateTime _lastCheckTime; - - private readonly DispatcherTimer _timer; - - private bool _manualCheck; - private bool _requestedManualCheck; - private UpdateStatus _status = UpdateStatus.None; - - public UpdateService( - IScheduler scheduler, - IConfiguration appConfig, - IAppSettings appSettings, - INotifyingAppUpdate notifyingAppUpdate, - IFeedUrlProvider feedUrlProvider) - { - _scheduler = scheduler; - _appConfig = appConfig; - _appSettings = appSettings; - _notifyingAppUpdate = notifyingAppUpdate; - - _timer = new DispatcherTimer(); - _timer.Tick += TimerTick; - _timer.Interval = appConfig.UpdateCheckInterval; - - _notifyingAppUpdate.StateChanged += OnUpdateStateChanged; - feedUrlProvider.FeedUrlChanged += OnFeedUrlChanged; - } - - public event EventHandler UpdateStateChanged; - - public void StartCheckingForUpdate() - { - StartCheckingForUpdate(true); - } - - public void OnAppSettingsChanged(PropertyChangedEventArgs e) - { - if (e.PropertyName.Equals(nameof(IAppSettings.EarlyAccess))) - { - StartCheckingForUpdate(true); - } - } - - public void OnUserLoggedIn() - { - StartCheckingForUpdate(true); - _timer.Start(); - } - - public void OnUserLoggedOut() - { - _timer.Stop(); - } - - private void StartCheckingForUpdate(bool manualCheck) - { - _requestedManualCheck |= manualCheck; - if (!manualCheck) - { - if (DateTime.UtcNow - _lastCheckTime <= _appConfig.UpdateCheckInterval) - { - return; - } - } - - _notifyingAppUpdate.StartCheckingForUpdate(_appSettings.EarlyAccess); - _lastCheckTime = DateTime.UtcNow; - } - - private void OnUpdateStateChanged(object sender, IAppUpdateState e) - { - UpdateState state = Map(e); - OnUpdateStateChanged(state, _manualCheck); - HandleManualCheck(state.Status); - HandleUpdating(state.Status); - } - - private UpdateState Map(IAppUpdateState e) - { - List releaseHistory = e.ReleaseHistory - .Select(release => new Release( - release.Version, - release.EarlyAccess, - release.New, - release.ChangeLog.ToList())) - .ToList(); - - return new(releaseHistory, e.Available, e.Ready, (UpdateStatus)e.Status, e.FilePath, e.FileArguments); - } - - private void HandleManualCheck(UpdateStatus status) - { - if (status != _status && status == UpdateStatus.Checking) - { - _manualCheck = _requestedManualCheck; - _requestedManualCheck = false; - } - - _status = status; - } - - private void HandleUpdating(UpdateStatus status) - { - if (status == UpdateStatus.Updating) - { - Application.Current.Shutdown(); - } - } - - private void OnUpdateStateChanged(UpdateState state, bool manualCheck) - { - _scheduler.Schedule(() => - { - UpdateStateChanged?.Invoke(this, new UpdateStateChangedEventArgs(state, manualCheck)); - }); - } - - private void TimerTick(object sender, EventArgs e) - { - StartCheckingForUpdate(false); - } - - private void OnFeedUrlChanged(object sender, FeedUrlChangeEventArgs e) - { - if (e.FeedType == FeedType.Internal) - { - StartCheckingForUpdate(true); - } - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Core/Update/UpdateState.cs b/src/ProtonVPN.Core/Update/UpdateState.cs deleted file mode 100644 index cd9adb1e6..000000000 --- a/src/ProtonVPN.Core/Update/UpdateState.cs +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; - -namespace ProtonVPN.Core.Update -{ - public class UpdateState - { - public UpdateState( - IReadOnlyList releaseHistory, - bool available, - bool ready, - UpdateStatus status, - string filePath, - string fileArguments) - { - ReleaseHistory = releaseHistory; - Available = available; - Ready = ready; - Status = status; - FilePath = filePath; - FileArguments = fileArguments; - } - - public IReadOnlyList ReleaseHistory { get; } - - public bool Available { get; } - - public bool Ready { get; } - - public UpdateStatus Status { get; } - - public string FilePath { get; } - - public string FileArguments { get; } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/Os.cpp b/src/ProtonVPN.InstallActions/Os.cpp index 7e5539937..10af62b61 100644 --- a/src/ProtonVPN.InstallActions/Os.cpp +++ b/src/ProtonVPN.InstallActions/Os.cpp @@ -87,29 +87,29 @@ ProcessExecutionResult Os::RunProcess(const wchar_t* application_path, wstring c if (stdout_rd) { stdout_thread = thread([&] + { + DWORD n; + const size_t buffer_size = 1000; + char buffer[buffer_size]; + for (;;) { - DWORD n; - const size_t buffer_size = 1000; - char buffer[buffer_size]; - for (;;) + n = 0; + const int success = ReadFile( + stdout_rd, + buffer, + buffer_size, + &n, + nullptr + ); + + if (!success || n == 0) { - n = 0; - const int success = ReadFile( - stdout_rd, - buffer, - buffer_size, - &n, - nullptr - ); - - if (!success || n == 0) - { - break; - } - string s(buffer, n); - std_out += s; + break; } - }); + string s(buffer, n); + std_out += s; + } + }); } uint32_t return_code; @@ -130,7 +130,7 @@ ProcessExecutionResult Os::RunProcess(const wchar_t* application_path, wstring c CloseHandle(stdout_rd); CloseHandle(stderr_rd); - return {std_out, return_code}; + return { std_out, return_code }; } bool Os::IsProcessRunning(const wchar_t* process_name) diff --git a/src/ProtonVPN.NativeHost/.gitignore b/src/ProtonVPN.NativeHost/.gitignore new file mode 100644 index 000000000..265de07ae --- /dev/null +++ b/src/ProtonVPN.NativeHost/.gitignore @@ -0,0 +1 @@ +x64 \ No newline at end of file diff --git a/src/ProtonVPN.Resources/Automation/Config.xaml b/src/ProtonVPN.Resources/Automation/Config.xaml index 15863d9c9..921875bb0 100644 --- a/src/ProtonVPN.Resources/Automation/Config.xaml +++ b/src/ProtonVPN.Resources/Automation/Config.xaml @@ -44,6 +44,7 @@ along with ProtonVPN. If not, see . NetworkDriverCheckbox ShowNotificationsCheckbox EarlyAccessCheckbox + AutoUpdateCheckbox CancelButton SaveButton CloseButton diff --git a/src/ProtonVPN.Core/Update/Release.cs b/src/ProtonVPN.Service/Config/ReportClientUriProvider.cs similarity index 60% rename from src/ProtonVPN.Core/Update/Release.cs rename to src/ProtonVPN.Service/Config/ReportClientUriProvider.cs index b3e45de09..4820717ae 100644 --- a/src/ProtonVPN.Core/Update/Release.cs +++ b/src/ProtonVPN.Service/Config/ReportClientUriProvider.cs @@ -18,26 +18,23 @@ */ using System; -using System.Collections.Generic; +using ProtonVPN.Api.Contracts; +using ProtonVPN.Common.Configuration; -namespace ProtonVPN.Core.Update +namespace ProtonVPN.Service.Config { - public class Release + public class ReportClientUriProvider : IReportClientUriProvider { - public Release(Version version, bool earlyAccess, bool isNew, IReadOnlyList changeLog) + private readonly IConfiguration _configuration; + + public ReportClientUriProvider(IConfiguration configuration) { - Version = version; - EarlyAccess = earlyAccess; - New = isNew; - ChangeLog = changeLog; + _configuration = configuration; } - public Version Version { get; } - - public bool EarlyAccess { get; } - - public bool New { get; } - - public IReadOnlyList ChangeLog { get; } + public Uri GetReportClientUri() + { + return new Uri(_configuration.Urls.TlsReportUrl); + } } } \ No newline at end of file diff --git a/src/ProtonVPN.Service/ProcessCommunication/AppControllerCaller.cs b/src/ProtonVPN.Service/ProcessCommunication/AppControllerCaller.cs index 20223ed40..d596eb3ac 100644 --- a/src/ProtonVPN.Service/ProcessCommunication/AppControllerCaller.cs +++ b/src/ProtonVPN.Service/ProcessCommunication/AppControllerCaller.cs @@ -33,6 +33,7 @@ using ProtonVPN.ProcessCommunication.Contracts.Entities.NetShield; using ProtonVPN.ProcessCommunication.Contracts.Entities.PortForwarding; using ProtonVPN.ProcessCommunication.Contracts.Entities.Settings; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Update; using ProtonVPN.ProcessCommunication.Contracts.Entities.Vpn; using ProtonVPN.Service.Settings; using ProtonVPN.Vpn.Common; @@ -158,7 +159,7 @@ private VpnStateIpcEntity CreateVpnStateIpcEntity(VpnState state) _vpnState = new VpnState(state.Status, state.Error, state.VpnProtocol); } - return new VpnStateIpcEntity() + return new VpnStateIpcEntity { Status = _entityMapper.Map(state.Status), Error = _entityMapper.Map(state.Error), @@ -190,6 +191,11 @@ public async Task SendCurrentPortForwardingStateAsync() await SendPortForwardingStateChangeAsync(_portForwardingState); } + public async Task SendUpdateStateAsync(UpdateStateIpcEntity updateState) + { + await SendAsync(appController => appController.UpdateStateChange(updateState)); + } + private async void OnPortForwardingStateChanged(object sender, EventArgs e) { PortForwardingState state = e.Data; diff --git a/src/ProtonVPN.Service/ProcessCommunication/IAppControllerCaller.cs b/src/ProtonVPN.Service/ProcessCommunication/IAppControllerCaller.cs index dade5c781..007306122 100644 --- a/src/ProtonVPN.Service/ProcessCommunication/IAppControllerCaller.cs +++ b/src/ProtonVPN.Service/ProcessCommunication/IAppControllerCaller.cs @@ -18,6 +18,7 @@ */ using System.Threading.Tasks; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Update; namespace ProtonVPN.Service.ProcessCommunication { @@ -25,5 +26,6 @@ public interface IAppControllerCaller { Task SendCurrentVpnStateAsync(); Task SendCurrentPortForwardingStateAsync(); + Task SendUpdateStateAsync(UpdateStateIpcEntity updateState); } } diff --git a/src/ProtonVPN.Service/ProtonVPN.Service.csproj b/src/ProtonVPN.Service/ProtonVPN.Service.csproj index 0f02c20b0..563f77f6e 100644 --- a/src/ProtonVPN.Service/ProtonVPN.Service.csproj +++ b/src/ProtonVPN.Service/ProtonVPN.Service.csproj @@ -24,9 +24,7 @@ True Settings.settings - - Component - + VpnService.cs @@ -42,16 +40,17 @@ + - + diff --git a/src/ProtonVPN.Service/Start/Bootstrapper.cs b/src/ProtonVPN.Service/Start/Bootstrapper.cs index 3690e6849..48bb4f20e 100644 --- a/src/ProtonVPN.Service/Start/Bootstrapper.cs +++ b/src/ProtonVPN.Service/Start/Bootstrapper.cs @@ -20,8 +20,8 @@ using System; using System.Collections.Generic; using System.ServiceProcess; -using System.Threading; using Autofac; +using ProtonVPN.Api.Installers; using ProtonVPN.Common.Configuration; using ProtonVPN.Common.Events; using ProtonVPN.Common.Logging; @@ -32,6 +32,7 @@ using ProtonVPN.Service.Config; using ProtonVPN.Service.Settings; using ProtonVPN.Service.Vpn; +using ProtonVPN.Update.Installers; using ProtonVPN.Vpn.Common; using ProtonVPN.Vpn.Networks; using ProtonVPN.Vpn.OpenVpn; @@ -57,7 +58,9 @@ private void Configure() new ConfigDirectories(config).Prepare(); ContainerBuilder builder = new ContainerBuilder(); - builder.RegisterModule(); + builder.RegisterModule() + .RegisterModule() + .RegisterAssemblyModules(typeof(UpdateModule).Assembly); _container = builder.Build(); } @@ -66,7 +69,8 @@ private void Start() IConfiguration config = Resolve(); ILogger logger = Resolve(); - logger.Info($"= Booting ProtonVPN Service version: {config.AppVersion} os: {Environment.OSVersion.VersionString} {config.OsBits} bit ="); + logger.Info( + $"= Booting ProtonVPN Service version: {config.AppVersion} os: {Environment.OSVersion.VersionString} {config.OsBits} bit ="); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; diff --git a/src/ProtonVPN.Service/Start/ServiceModule.cs b/src/ProtonVPN.Service/Start/ServiceModule.cs index d15430486..e9d8b12bb 100644 --- a/src/ProtonVPN.Service/Start/ServiceModule.cs +++ b/src/ProtonVPN.Service/Start/ServiceModule.cs @@ -19,12 +19,14 @@ using System; using Autofac; +using ProtonVPN.Api; using ProtonVPN.Common.Configuration; using ProtonVPN.Common.Events; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Log4Net; using ProtonVPN.Common.OS; using ProtonVPN.Common.OS.Net; +using ProtonVPN.Common.OS.Net.Http; using ProtonVPN.Common.OS.Net.NetworkInterface; using ProtonVPN.Common.OS.Processes; using ProtonVPN.Common.OS.Services; @@ -33,11 +35,13 @@ using ProtonVPN.EntityMapping.Installers; using ProtonVPN.ProcessCommunication.Installers; using ProtonVPN.ProcessCommunication.Service.Installers; +using ProtonVPN.Service.Config; using ProtonVPN.Service.Driver; using ProtonVPN.Service.Firewall; using ProtonVPN.Service.ProcessCommunication; using ProtonVPN.Service.Settings; using ProtonVPN.Service.SplitTunneling; +using ProtonVPN.Service.Update; using ProtonVPN.Service.Vpn; using ProtonVPN.Vpn.Common; using ProtonVPN.Vpn.Connection; @@ -63,7 +67,8 @@ protected override void Load(ContainerBuilder builder) builder.RegisterType().As().SingleInstance(); - builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.Register(_ => new ServiceRetryPolicy(2, TimeSpan.FromSeconds(1))).SingleInstance(); @@ -128,6 +133,11 @@ protected override void Load(ContainerBuilder builder) builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().As().SingleInstance(); builder.RegisterType().As().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterAssemblyModules(typeof(EntityMappingModule).Assembly); builder.RegisterAssemblyModules(typeof(ProcessCommunicationModule).Assembly); diff --git a/src/ProtonVPN.Service/Update/CurrentAppVersionProvider.cs b/src/ProtonVPN.Service/Update/CurrentAppVersionProvider.cs new file mode 100644 index 000000000..e3420e657 --- /dev/null +++ b/src/ProtonVPN.Service/Update/CurrentAppVersionProvider.cs @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; +using Microsoft.Win32; + +namespace ProtonVPN.Service.Update +{ + public class CurrentAppVersionProvider : ICurrentAppVersionProvider + { + public Version GetVersion() + { + string path = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Proton VPN_is1"; + RegistryKey subkey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(path); + object value = subkey?.GetValue("DisplayVersion"); + string versionString = value?.ToString() ?? string.Empty; + return new Version(versionString); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Core/Update/FeedUrlProvider.cs b/src/ProtonVPN.Service/Update/FeedUrlProvider.cs similarity index 57% rename from src/ProtonVPN.Core/Update/FeedUrlProvider.cs rename to src/ProtonVPN.Service/Update/FeedUrlProvider.cs index cfc709d5c..e804b0162 100644 --- a/src/ProtonVPN.Core/Update/FeedUrlProvider.cs +++ b/src/ProtonVPN.Service/Update/FeedUrlProvider.cs @@ -18,24 +18,17 @@ */ using System; -using System.Collections.Generic; -using System.Threading.Tasks; using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Vpn; -using ProtonVPN.Core.Servers; -using ProtonVPN.Core.Vpn; -using ProtonVPN.Update.Config; -using ProtonVPN.Update.Feed; +using ProtonVPN.Update.Contracts; +using ProtonVPN.Update.Contracts.Config; -namespace ProtonVPN.Core.Update +namespace ProtonVPN.Service.Update { - public class FeedUrlProvider : IFeedUrlProvider, IVpnStateAware + public class FeedUrlProvider : IFeedUrlProvider { private readonly IConfiguration _config; private FeedType _feedType = FeedType.Public; - public event EventHandler FeedUrlChanged; - public FeedUrlProvider(IConfiguration config) { _config = config; @@ -47,23 +40,13 @@ public Uri GetFeedUrl() { return new Uri(GlobalConfig.InternalReleaseUpdateUrl); } - else - { - return new Uri(_config.Urls.UpdateUrl); - } + + return new Uri(_config.Urls.UpdateUrl); } - public async Task OnVpnStateChanged(VpnStateChangedEventArgs e) + public void SetFeedType(FeedType feedType) { - FeedType type = e.State.Status == VpnStatus.Connected && e.State.Server.Tier == ServerTiers.Internal - ? FeedType.Internal - : FeedType.Public; - - if (_feedType != type) - { - _feedType = type; - FeedUrlChanged?.Invoke(this, new FeedUrlChangeEventArgs(type)); - } + _feedType = feedType; } } } \ No newline at end of file diff --git a/src/ProtonVPN.Service/Update/ICurrentAppVersionProvider.cs b/src/ProtonVPN.Service/Update/ICurrentAppVersionProvider.cs new file mode 100644 index 000000000..537888133 --- /dev/null +++ b/src/ProtonVPN.Service/Update/ICurrentAppVersionProvider.cs @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; + +namespace ProtonVPN.Service.Update +{ + public interface ICurrentAppVersionProvider + { + Version GetVersion(); + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Service/UpdateController.cs b/src/ProtonVPN.Service/UpdateController.cs new file mode 100644 index 000000000..590036a5f --- /dev/null +++ b/src/ProtonVPN.Service/UpdateController.cs @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; +using System.Diagnostics; +using System.Threading; +using System.Threading.Tasks; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.AppUpdateLogs; +using ProtonVPN.EntityMapping.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Entities.Update; +using ProtonVPN.Service.ProcessCommunication; +using ProtonVPN.Service.Update; +using ProtonVPN.Update.Contracts; +using ProtonVPN.Update.Contracts.Config; + +namespace ProtonVPN.Service +{ + public class UpdateController : IUpdateController + { + private readonly INotifyingAppUpdate _notifyingAppUpdate; + private readonly IFeedUrlProvider _feedUrlProvider; + private readonly IAppControllerCaller _appControllerCaller; + private readonly IEntityMapper _entityMapper; + private readonly ICurrentAppVersionProvider _currentAppVersionProvider; + private readonly ILogger _logger; + private readonly SemaphoreSlim _semaphore = new(1, 1); + + private AppUpdateStateContract _lastUpdateState; + + public UpdateController( + INotifyingAppUpdate notifyingAppUpdate, + IFeedUrlProvider feedUrlProvider, + IAppControllerCaller appControllerCaller, + IEntityMapper entityMapper, + ICurrentAppVersionProvider currentAppVersionProvider, + ILogger logger) + { + _notifyingAppUpdate = notifyingAppUpdate; + _feedUrlProvider = feedUrlProvider; + _appControllerCaller = appControllerCaller; + _entityMapper = entityMapper; + _currentAppVersionProvider = currentAppVersionProvider; + _logger = logger; + + _notifyingAppUpdate.StateChanged += OnUpdateStateChanged; + } + + public async Task CheckForUpdate(UpdateSettingsIpcEntity updateSettingsIpcEntity) + { + CacheUpdateSettings(updateSettingsIpcEntity); + _notifyingAppUpdate.StartCheckingForUpdate(updateSettingsIpcEntity.IsEarlyAccess); + } + + public async Task StartAutoUpdate() + { + if (_lastUpdateState.IsReady) + { + if (_lastUpdateState.Version > _currentAppVersionProvider.GetVersion()) + { + await HandleAutoUpdate(_lastUpdateState); + } + else if (_lastUpdateState.Version == _currentAppVersionProvider.GetVersion()) + { + _lastUpdateState.Status = AppUpdateStatus.AutoUpdated; + await SendUpdateStateAsync(_lastUpdateState); + } + } + } + + private void UpdateFeedType(FeedType feedType) + { + _feedUrlProvider.SetFeedType(feedType); + } + + private async void OnUpdateStateChanged(object sender, AppUpdateStateContract e) + { + await SendUpdateStateAsync(e); + } + + private async Task HandleAutoUpdate(AppUpdateStateContract appUpdateStateContract) + { + await _semaphore.WaitAsync(); + try + { + int exitCode = RunInstaller(appUpdateStateContract); + if (exitCode == 0) + { + _logger.Info($"The app was updated to version {appUpdateStateContract.Version}."); + appUpdateStateContract.Status = AppUpdateStatus.AutoUpdated; + } + else + { + _logger.Error( + $"Failed to install the update using file {appUpdateStateContract.FilePath}. " + + $"Process exited with code {exitCode}. Informing the user to update manually."); + appUpdateStateContract.Status = AppUpdateStatus.AutoUpdateFailed; + } + + await SendUpdateStateAsync(appUpdateStateContract); + } + finally + { + _semaphore.Release(); + } + } + + private int RunInstaller(AppUpdateStateContract appUpdateStateContract) + { + try + { + Process process = new(); + process.StartInfo.FileName = appUpdateStateContract.FilePath; + process.StartInfo.Arguments = "/VERYSILENT /SUPPRESSMSGBOXES"; + process.Start(); + process.WaitForExit(); + + return process.ExitCode; + } + catch (Exception e) + { + _logger.Error($"Failed to start installer on path {appUpdateStateContract.FilePath}.", e); + return -1; + } + } + + private async Task SendUpdateStateAsync(AppUpdateStateContract e) + { + _lastUpdateState = e; + await _appControllerCaller.SendUpdateStateAsync(_entityMapper.Map(e)); + } + + private void CacheUpdateSettings(UpdateSettingsIpcEntity updateSettingsIpcEntity) + { + UpdateFeedType((FeedType)updateSettingsIpcEntity.FeedType); + } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Service/ServiceController.cs b/src/ProtonVPN.Service/VpnController.cs similarity index 98% rename from src/ProtonVPN.Service/ServiceController.cs rename to src/ProtonVPN.Service/VpnController.cs index 957dda193..ee3a3ef94 100644 --- a/src/ProtonVPN.Service/ServiceController.cs +++ b/src/ProtonVPN.Service/VpnController.cs @@ -39,7 +39,7 @@ namespace ProtonVPN.Service { - public class ServiceController : IServiceController + public class VpnController : IVpnController { private readonly IVpnConnection _vpnConnection; private readonly ILogger _logger; @@ -50,7 +50,7 @@ public class ServiceController : IServiceController private readonly IAppControllerCaller _appControllerCaller; private readonly IEntityMapper _entityMapper; - public ServiceController( + public VpnController( IVpnConnection vpnConnection, ILogger logger, IServiceSettings serviceSettings, diff --git a/src/ProtonVPN.Translations/Properties/Resources.resx b/src/ProtonVPN.Translations/Properties/Resources.resx index 2b5297ff9..aff184ba8 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.resx @@ -3271,4 +3271,15 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Free servers - + + Automatic updates + The label for Automatic updates toggle switch in General tab of Settings window + + + Restart + + + Automatically check for and install updates to Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + + \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/SynchronizedAppUpdate.cs b/src/ProtonVPN.Update/Updates/SynchronizedAppUpdate.cs deleted file mode 100644 index dedfa813a..000000000 --- a/src/ProtonVPN.Update/Updates/SynchronizedAppUpdate.cs +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Threading; -using System.Threading.Tasks; - -namespace ProtonVPN.Update.Updates -{ - /// - /// Marshals app update state changed notifications of - /// to synchronization context captured during creation of the object. - /// - public class SynchronizedAppUpdate : INotifyingAppUpdate - { - private readonly INotifyingAppUpdate _origin; - private readonly SynchronizationContext _syncContext; - - public SynchronizedAppUpdate(INotifyingAppUpdate origin) - { - _origin = origin; - - _syncContext = SynchronizationContext.Current; - _origin.StateChanged += AppUpdate_StateChanged; - } - - public event EventHandler StateChanged; - - public void StartCheckingForUpdate(bool earlyAccess) => _origin.StartCheckingForUpdate(earlyAccess); - - public Task StartUpdating(bool auto) => _origin.StartUpdating(auto); - - private void AppUpdate_StateChanged(object sender, IAppUpdateState state) - { - _syncContext.Post(_ => StateChanged?.Invoke(sender, state), null); - } - } -} diff --git a/src/ProtonVPN.Update/app.config b/src/ProtonVPN.Update/app.config deleted file mode 100644 index 8efcdf213..000000000 --- a/src/ProtonVPN.Update/app.config +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/src/ProtonVPN.UpdateServiceContract/IUpdateContract.cs b/src/ProtonVPN.UpdateServiceContract/IUpdateContract.cs deleted file mode 100644 index f2277452e..000000000 --- a/src/ProtonVPN.UpdateServiceContract/IUpdateContract.cs +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.ServiceModel; -using System.Threading.Tasks; - -namespace ProtonVPN.UpdateServiceContract -{ - [ServiceContract(CallbackContract = typeof(IUpdateEventsContract))] - public interface IUpdateContract - { - [OperationContract(IsOneWay = true)] - Task CheckForUpdate(bool earlyAccess); - - [OperationContract(IsOneWay = true)] - Task RegisterCallback(); - - [OperationContract(IsOneWay = true)] - Task UnRegisterCallback(); - - [OperationContract(IsOneWay = true)] - Task Update(bool auto); - } -} diff --git a/src/ProtonVPN.UpdateServiceContract/ProtonVPN.UpdateServiceContract.csproj b/src/ProtonVPN.UpdateServiceContract/ProtonVPN.UpdateServiceContract.csproj deleted file mode 100644 index f34ad2898..000000000 --- a/src/ProtonVPN.UpdateServiceContract/ProtonVPN.UpdateServiceContract.csproj +++ /dev/null @@ -1,58 +0,0 @@ - - - - - Debug - AnyCPU - {BB748EA2-EA18-4E6C-AB22-CCC1D91E8844} - Library - Properties - ProtonVPN.UpdateServiceContract - ProtonVPN.UpdateServiceContract - v4.7.2 - 512 - true - - - true - full - false - ..\bin\ - DEBUG;TRACE - prompt - 4 - latest - - - pdbonly - true - ..\bin\ - TRACE - prompt - 4 - latest - - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - \ No newline at end of file diff --git a/src/ProtonVPN.UpdateServiceContract/UpdateStateContract.cs b/src/ProtonVPN.UpdateServiceContract/UpdateStateContract.cs deleted file mode 100644 index c8aae62f3..000000000 --- a/src/ProtonVPN.UpdateServiceContract/UpdateStateContract.cs +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using System.Runtime.Serialization; - -namespace ProtonVPN.UpdateServiceContract -{ - [DataContract] - public class UpdateStateContract - { - public UpdateStateContract( - ICollection releaseHistory, - bool available, - bool ready, - AppUpdateStatusContract status, - string filePath, - string fileArguments) - { - ReleaseHistory = releaseHistory; - Available = available; - Ready = ready; - Status = status; - FilePath = filePath; - FileArguments = fileArguments; - } - - [DataMember] - public ICollection ReleaseHistory { get; private set; } - - [DataMember] - public bool Available { get; private set; } - - [DataMember] - public bool Ready { get; private set; } - - [DataMember] - public AppUpdateStatusContract Status { get; private set; } - - [DataMember] - public string FilePath { get; private set; } - - [DataMember] - public string FileArguments { get; private set; } - } -} diff --git a/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj b/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj index ccff7aa12..f6d3f7f6e 100644 --- a/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj +++ b/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj @@ -21,7 +21,7 @@ - + diff --git a/src/Tests/ProtonVPN.IntegrationTests/TestBase.cs b/src/Tests/ProtonVPN.IntegrationTests/TestBase.cs index c6e320337..563490c0d 100644 --- a/src/Tests/ProtonVPN.IntegrationTests/TestBase.cs +++ b/src/Tests/ProtonVPN.IntegrationTests/TestBase.cs @@ -83,7 +83,6 @@ protected void InitializeContainer() .RegisterModule() .RegisterModule() .RegisterModule() - .RegisterModule() .RegisterAssemblyModules(typeof(HumanVerificationModule).Assembly); builder.Register(_ => diff --git a/src/Tests/ProtonVPN.UI.Tests/TestsHelper/VPNServiceHelper.cs b/src/Tests/ProtonVPN.UI.Tests/TestsHelper/VPNServiceHelper.cs index 2da52dfd6..f54f3ab88 100644 --- a/src/Tests/ProtonVPN.UI.Tests/TestsHelper/VPNServiceHelper.cs +++ b/src/Tests/ProtonVPN.UI.Tests/TestsHelper/VPNServiceHelper.cs @@ -37,7 +37,7 @@ public class VPNServiceHelper : GrpcClientBase private static readonly ILogger _logger = Substitute.For(); private static readonly GrpcChannelWrapperFactory _grpcChannelWrapperFactory = new(_logger); - public IServiceController ServiceController { get; private set; } + public IVpnController VpnController { get; private set; } public VPNServiceHelper() : base(_logger, _grpcChannelWrapperFactory) @@ -47,7 +47,7 @@ public VPNServiceHelper() protected override void RegisterServices(IGrpcChannelWrapper channel) { - ServiceController = channel.CreateService(); + VpnController = channel.CreateService(); } public async Task Disconnect() @@ -57,10 +57,10 @@ public async Task Disconnect() CancellationTokenSource cts = new CancellationTokenSource(); int serviceServerPort = await _serviceServerPortRegister.ReadAsync(cts.Token); await CreateWithPortAsync(serviceServerPort); - if (ServiceController is not null) + if (VpnController is not null) { DisconnectionRequestIpcEntity disconnectionRequestIpcEntity = CreateDisconnectionRequestIpcEntity(); - await ServiceController.Disconnect(disconnectionRequestIpcEntity); + await VpnController.Disconnect(disconnectionRequestIpcEntity); } } catch diff --git a/src/Tests/ProtonVPN.Update.Tests/ProtonVPN.Update.Tests.csproj b/src/Tests/ProtonVPN.Update.Tests/ProtonVPN.Update.Tests.csproj index 2b1305aab..5f7a5348c 100644 --- a/src/Tests/ProtonVPN.Update.Tests/ProtonVPN.Update.Tests.csproj +++ b/src/Tests/ProtonVPN.Update.Tests/ProtonVPN.Update.Tests.csproj @@ -8,13 +8,16 @@ false + + PreserveNewest + PreserveNewest - + diff --git a/src/Tests/ProtonVPN.Update.Tests/Releases/ReleaseTest.cs b/src/Tests/ProtonVPN.Update.Tests/Releases/ReleaseTest.cs index 29953c228..93a4aa545 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Releases/ReleaseTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Releases/ReleaseTest.cs @@ -29,91 +29,29 @@ namespace ProtonVPN.Update.Tests.Releases [TestClass] public class ReleaseTest { - [TestMethod] - public void Version_ShouldBe_Release_Version() - { - ReleaseResponse contract = new() { Version = "3.2.1" }; - Release release = new(contract, false, new Version()); - - Version result = release.Version; - - result.Major.Should().Be(3); - result.Minor.Should().Be(2); - result.Build.Should().Be(1); - result.Revision.Should().Be(-1); - } - - [TestMethod] - public void ChangeLog_ShouldBe_Release_ChangeLog() - { - string[] changeLog = new[] { "Super new changes.", "Super new feature.", "Fixed bugs!" }; - ReleaseResponse contract = new() { Version = "3.2.1", ChangeLog = changeLog }; - Release release = new(contract, false, new Version()); - - IReadOnlyList result = release.ChangeLog; - - result.Should().ContainInOrder(changeLog); - } - - [DataTestMethod] - [DataRow(false)] - [DataRow(true)] - public void EarlyAccess_ShouldBe_EarlyAccess(bool expected) - { - ReleaseResponse contract = new() { Version = "1.1.1" }; - Release release = new(contract, expected, new Version()); - - bool result = release.EarlyAccess; - - result.Should().Be(expected); - } - - [DataTestMethod] - [DataRow(false, "1.2.3", "0.0.0")] - [DataRow(false, "1.2.3", "1.2.3")] - [DataRow(true, "1.2.3", "1.2.4")] - [DataRow(true, "1.2.3", "10.10.10")] - public void New_ShouldBe_WhenReleaseVersion_AndCurrentVersion(bool expected, string releaseVersion, string currentVersion) - { - ReleaseResponse contract = new() - { Version = releaseVersion }; - Release release = new(contract, expected, Version.Parse(currentVersion)); - - bool result = release.EarlyAccess; - - result.Should().Be(expected); - } - - [TestMethod] - public void File_ShouldBe_Release_File() - { - FileResponse file = new(); - ReleaseResponse contract = new() { Version = "9.9.9", File = file }; - Release release = new(contract, false, new Version()); - - FileResponse result = release.File; - - result.Should().BeSameAs(file); - } - [TestMethod] public void Empty_ShouldBeTrue_WhenReleaseVersion_IsZero() { - FileResponse file = new() { Url = "https://protonvpn.com/download.exe", Sha512CheckSum = "012345", Arguments = "-install" }; - ReleaseResponse contract = new() { Version = "0.0.0", ChangeLog = new[] { "Fixed" }, File = file }; - Release release = new(contract, false, new Version()); - + Release release = new() { ChangeLog = new List(), Version = new(0, 0, 0) }; bool result = release.Empty(); - result.Should().BeTrue(); } [TestMethod] public void Empty_ShouldBeFalse_WhenReleaseVersion_IsNotZero() { - FileResponse file = new() { Url = "https://protonvpn.com/download.exe", Sha512CheckSum = "012345", Arguments = "-install" }; - ReleaseResponse contract = new() { Version = "0.0.1", ChangeLog = new[] { "Fixed" }, File = file }; - Release release = new(contract, false, new Version()); + FileResponse file = new() + { + Url = "https://protonvpn.com/download.exe", Sha512CheckSum = "012345", Arguments = "-install" + }; + Release release = new() + { + ChangeLog = new[] { "Fixed" }, + EarlyAccess = false, + File = file, + New = true, + Version = new(0, 0, 1), + }; bool result = release.Empty(); @@ -142,7 +80,7 @@ public void EmptyRelease_ShouldHave_ZeroVersion() [TestMethod] public void Release_ShouldImplement_IComparable() { - Release release = new(new ReleaseResponse { Version = "1.2.3" }, false, new Version()); + Release release = new() { Version = new(1, 2, 3), EarlyAccess = false, New = true, }; release.Should().BeAssignableTo>(); } @@ -155,12 +93,12 @@ public void Release_ShouldImplement_IComparable() [DataRow(1, "10.20.30", "1.2.3")] public void CompareTo_ShouldCompare_ReleaseVersions(int expected, string version, string otherVersion) { - Release release = new(new ReleaseResponse { Version = version }, false, new Version()); - Release other = new(new ReleaseResponse { Version = otherVersion }, true, new Version()); + Release release = new() { Version = Version.Parse(version) }; + Release other = new() { Version = Version.Parse(otherVersion) }; int result = release.CompareTo(other); result.Should().Be(expected); } } -} +} \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Update.Tests/Releases/ReleasesTest.cs b/src/Tests/ProtonVPN.Update.Tests/Releases/ReleasesTest.cs index 8cec4d409..d41ab2d56 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Releases/ReleasesTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Releases/ReleasesTest.cs @@ -24,6 +24,8 @@ using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; using Newtonsoft.Json; +using NSubstitute; +using ProtonVPN.Common.Logging; using ProtonVPN.Update.Releases; using ProtonVPN.Update.Responses; @@ -32,11 +34,25 @@ namespace ProtonVPN.Update.Tests.Releases [TestClass] public class ReleasesTest { + private ILogger _logger; + + [TestInitialize] + public void TestInitialize() + { + _logger = Substitute.For(); + } + + [TestCleanup] + public void TestCleanup() + { + _logger = null; + } + [TestMethod] public void Releases_ShouldImplement_IEnumerable() { CategoryResponse[] categories = new CategoryResponse[0]; - Update.Releases.Releases releases = new(categories, new Version(), ""); + Update.Releases.Releases releases = new(_logger, categories, new Version(), ""); releases.Should().BeAssignableTo>(); } @@ -45,7 +61,7 @@ public void Releases_ShouldImplement_IEnumerable() public void Releases_ShouldBeEmpty_WhenCategories_AreEmpty() { CategoryResponse[] categories = new CategoryResponse[0]; - Update.Releases.Releases releases = new(categories, new Version(), ""); + Update.Releases.Releases releases = new(_logger, categories, new Version(), ""); releases.Should().HaveCount(0); } @@ -54,7 +70,7 @@ public void Releases_ShouldBeEmpty_WhenCategories_AreEmpty() public void Releases_ShouldBeEmpty_WhenCategories_HaveNoReleases() { CategoryResponse[] categories = { new() { Name = "Stable" } }; - Update.Releases.Releases releases = new(categories, new Version(), ""); + Update.Releases.Releases releases = new(_logger, categories, new Version(), ""); releases.Should().HaveCount(0); } @@ -64,7 +80,7 @@ public void Releases_ShouldContain_AllReleases_FromCategories() { string json = File.ReadAllText(@"TestData\windows-releases.json"); CategoriesResponse categories = JsonConvert.DeserializeObject(json); - Update.Releases.Releases releases = new(categories.Categories, new Version(), ""); + Update.Releases.Releases releases = new(_logger, categories.Categories, new Version(), ""); releases.Should().HaveCount(5); } @@ -76,7 +92,7 @@ public void Releases_Version_ShouldBe_FromReleases() CategoriesResponse categories = JsonConvert.DeserializeObject(json); List expected = categories.Categories.SelectMany(c => c.Releases).Select(r => Version.Parse(r.Version)).ToList(); - Update.Releases.Releases releases = new(categories.Categories, new Version(), ""); + Update.Releases.Releases releases = new(_logger, categories.Categories, new Version(), ""); IEnumerable result = releases.Select(r => r.Version); @@ -90,7 +106,7 @@ public void Releases_EarlyAccess_ShouldBeTrue_ForEarlyAccess() { string json = File.ReadAllText(@"TestData\windows-releases.json"); CategoriesResponse categories = JsonConvert.DeserializeObject(json); - Update.Releases.Releases releases = new(categories.Categories, new Version(), "EarlyAccess"); + Update.Releases.Releases releases = new(_logger, categories.Categories, new Version(), "EarlyAccess"); releases.Where(r => r.EarlyAccess).Should().HaveCount(2); } @@ -100,9 +116,21 @@ public void Releases_New_ShouldBeTrue_ForNewReleases() { string json = File.ReadAllText(@"TestData\windows-releases.json"); CategoriesResponse categories = JsonConvert.DeserializeObject(json); - Update.Releases.Releases releases = new(categories.Categories, Version.Parse("1.5.0"), ""); + Update.Releases.Releases releases = new(_logger, categories.Categories, Version.Parse("1.5.0"), ""); releases.Where(r => r.New).Should().HaveCount(3); } + + [TestMethod] + public void Releases_ShouldContainOnlyValidVersions() + { + string json = File.ReadAllText(@"TestData\windows-releases-invalid-versions.json"); + CategoriesResponse categories = JsonConvert.DeserializeObject(json); + Update.Releases.Releases releases = new(_logger, categories.Categories, Version.Parse("1.5.0"), ""); + + releases.Should().HaveCount(2); + releases.Should().Contain(r => r.Version == new Version("1.5.0")); + releases.Should().Contain(r => r.Version == new Version("1.5.1")); + } } } \ No newline at end of file diff --git a/src/Tests/ProtonVPN.Update.Tests/Storage/OrderedReleaseStorageTest.cs b/src/Tests/ProtonVPN.Update.Tests/Storage/OrderedReleaseStorageTest.cs index 8a54a0ced..e151c2f6a 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Storage/OrderedReleaseStorageTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Storage/OrderedReleaseStorageTest.cs @@ -17,14 +17,12 @@ * along with ProtonVPN. If not, see . */ -using System; using System.Collections.Generic; using System.Threading.Tasks; using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; using NSubstitute; using ProtonVPN.Update.Releases; -using ProtonVPN.Update.Responses; using ProtonVPN.Update.Storage; namespace ProtonVPN.Update.Tests.Storage @@ -53,14 +51,14 @@ public async Task Releases_ShouldCall_Origin_Releases() [TestMethod] public async Task Releases_ShouldBe_InDescendingOrder() { - Release[] releases = new[] - { - new Release(new ReleaseResponse {Version = "0.1.2"}, false, new Version()), - new Release(new ReleaseResponse {Version = "5.5.5"}, false, new Version()), - new Release(new ReleaseResponse {Version = "4.4.4"}, false, new Version()), - new Release(new ReleaseResponse {Version = "3.3.3"}, false, new Version()), - new Release(new ReleaseResponse {Version = "2.1.0"}, false, new Version()), + Release[] releases = { + new() {Version = new(0, 1, 2)}, + new() {Version = new(5, 5, 5)}, + new() {Version = new(4, 4, 4)}, + new() {Version = new(3, 3, 3)}, + new() {Version = new(2, 1, 0)} }; + _origin.Releases().Returns(releases); OrderedReleaseStorage storage = new OrderedReleaseStorage(_origin); diff --git a/src/Tests/ProtonVPN.Update.Tests/Storage/WebReleaseStorageTest.cs b/src/Tests/ProtonVPN.Update.Tests/Storage/WebReleaseStorageTest.cs index cb41414b7..e2eeaecfb 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Storage/WebReleaseStorageTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Storage/WebReleaseStorageTest.cs @@ -32,6 +32,7 @@ using ProtonVPN.Common.OS.Net.Http; using ProtonVPN.Tests.Common; using ProtonVPN.Update.Config; +using ProtonVPN.Update.Contracts.Config; using ProtonVPN.Update.Releases; using ProtonVPN.Update.Storage; diff --git a/src/Tests/ProtonVPN.Update.Tests/TestData/windows-releases-invalid-versions.json b/src/Tests/ProtonVPN.Update.Tests/TestData/windows-releases-invalid-versions.json new file mode 100644 index 000000000..4450fc8f2 --- /dev/null +++ b/src/Tests/ProtonVPN.Update.Tests/TestData/windows-releases-invalid-versions.json @@ -0,0 +1,49 @@ +{ + "Categories": [ + { + "Name": "EarlyAccess", + "Releases": [] + }, + { + "Name": "Stable", + "Releases": [ + { + "Version": "this is a broken version", + "File": { + "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.0.0.exe", + "Sha512CheckSum": "0fc1e744a3ecb5a5f4a904ecb1140f19bf9587e20fd7d27e1c95615c2c7bd2280769060de1b0851732323f7ea0683b721963734a6ab469e8619d6f5977aedaa2", + "Args": "/qb" + }, + "ChangeLog": [ + "didn\u0027t added feature", + "fixed bug" + ] + }, + { + "Version": "1.5.0", + "File": { + "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.5.0.exe", + "Sha512CheckSum": "8743cc8601d94ff4e23e3378296aa3efdb207a9b6e5a55c334c51c23f23f9a154010da5a0e8ab58c5c97e516ecd2bd6b580770dc94024916c56ee11b7f71f9f1", + "Args": "/qb" + }, + "ChangeLog": [ + "added feature", + "fixed bug" + ] + }, + { + "Version": "1.5.1", + "File": { + "Url": "https://protonvpn.com/download/ProtonVPN_win_v1.5.1.exe", + "Sha512CheckSum": "c011146ae24f5a49ef86ff6199ec0bd42223b408e1dce3ffef9a2ef4b9c1806b1c823ce427d7473378b7d8c427ba6cb3701320740523ad79fc9ec8cfeb907875", + "Args": "/qb" + }, + "ChangeLog": [ + "added feature", + "fixed bug" + ] + } + ] + } + ] +} diff --git a/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdateTest.cs b/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdateTest.cs index e7150d3fe..1df8067be 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdateTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdateTest.cs @@ -33,6 +33,7 @@ using ProtonVPN.Common.OS.Net.Http; using ProtonVPN.Tests.Common; using ProtonVPN.Update.Config; +using ProtonVPN.Update.Contracts.Config; using ProtonVPN.Update.Files.Launchable; using ProtonVPN.Update.Files.Validatable; using ProtonVPN.Update.Updates; diff --git a/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdatesTest.cs b/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdatesTest.cs index 2452bfe0d..ccce90bbd 100644 --- a/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdatesTest.cs +++ b/src/Tests/ProtonVPN.Update.Tests/Updates/AppUpdatesTest.cs @@ -29,6 +29,7 @@ using ProtonVPN.Common.OS.Net.Http; using ProtonVPN.Tests.Common; using ProtonVPN.Update.Config; +using ProtonVPN.Update.Contracts.Config; using ProtonVPN.Update.Files.Launchable; using ProtonVPN.Update.Updates; diff --git a/src/Update/ProtonVPN.Update.Contracts/AppUpdateStateContract.cs b/src/Update/ProtonVPN.Update.Contracts/AppUpdateStateContract.cs new file mode 100644 index 000000000..dcd32cd50 --- /dev/null +++ b/src/Update/ProtonVPN.Update.Contracts/AppUpdateStateContract.cs @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.Update.Contracts +{ + public class AppUpdateStateContract + { + public IReadOnlyList ReleaseHistory { get; set; } + public bool IsAvailable { get; set; } + public bool IsReady { get; set; } + public AppUpdateStatus Status { get; set; } + public string FilePath { get; set; } + public string FileArguments { get; set; } + public Version Version { get; set; } + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/AppUpdateStatus.cs b/src/Update/ProtonVPN.Update.Contracts/AppUpdateStatus.cs similarity index 84% rename from src/ProtonVPN.Update/AppUpdateStatus.cs rename to src/Update/ProtonVPN.Update.Contracts/AppUpdateStatus.cs index d6778f045..039fa87d6 100644 --- a/src/ProtonVPN.Update/AppUpdateStatus.cs +++ b/src/Update/ProtonVPN.Update.Contracts/AppUpdateStatus.cs @@ -17,7 +17,7 @@ * along with ProtonVPN. If not, see . */ -namespace ProtonVPN.Update +namespace ProtonVPN.Update.Contracts { public enum AppUpdateStatus { @@ -27,15 +27,16 @@ public enum AppUpdateStatus Downloading, DownloadFailed, Ready, - Updating + Updating, + AutoUpdated, + AutoUpdateFailed, } public static class UpdateStatusExtensions { public static bool InProgress(this AppUpdateStatus status) { - return status == AppUpdateStatus.Checking || - status == AppUpdateStatus.Downloading; + return status is AppUpdateStatus.Checking or AppUpdateStatus.Downloading; } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Config/IFeedUrlProvider.cs b/src/Update/ProtonVPN.Update.Contracts/Config/IFeedUrlProvider.cs similarity index 84% rename from src/ProtonVPN.Update/Config/IFeedUrlProvider.cs rename to src/Update/ProtonVPN.Update.Contracts/Config/IFeedUrlProvider.cs index 01154c3bc..7ea592e35 100644 --- a/src/ProtonVPN.Update/Config/IFeedUrlProvider.cs +++ b/src/Update/ProtonVPN.Update.Contracts/Config/IFeedUrlProvider.cs @@ -17,14 +17,12 @@ * along with ProtonVPN. If not, see . */ -using System; -using ProtonVPN.Update.Feed; - -namespace ProtonVPN.Update.Config +namespace ProtonVPN.Update.Contracts.Config { public interface IFeedUrlProvider { - event EventHandler FeedUrlChanged; Uri GetFeedUrl(); + + void SetFeedType(FeedType feedType); } } \ No newline at end of file diff --git a/src/ProtonVPN.Update/Feed/FeedType.cs b/src/Update/ProtonVPN.Update.Contracts/FeedType.cs similarity index 95% rename from src/ProtonVPN.Update/Feed/FeedType.cs rename to src/Update/ProtonVPN.Update.Contracts/FeedType.cs index e263c96a3..8bf4e65a7 100644 --- a/src/ProtonVPN.Update/Feed/FeedType.cs +++ b/src/Update/ProtonVPN.Update.Contracts/FeedType.cs @@ -17,7 +17,7 @@ * along with ProtonVPN. If not, see . */ -namespace ProtonVPN.Update.Feed +namespace ProtonVPN.Update.Contracts { public enum FeedType { diff --git a/src/ProtonVPN.Update/INotifyingAppUpdate.cs b/src/Update/ProtonVPN.Update.Contracts/INotifyingAppUpdate.cs similarity index 86% rename from src/ProtonVPN.Update/INotifyingAppUpdate.cs rename to src/Update/ProtonVPN.Update.Contracts/INotifyingAppUpdate.cs index fb0780ddd..21a42ee14 100644 --- a/src/ProtonVPN.Update/INotifyingAppUpdate.cs +++ b/src/Update/ProtonVPN.Update.Contracts/INotifyingAppUpdate.cs @@ -17,17 +17,14 @@ * along with ProtonVPN. If not, see . */ -using System; -using System.Threading.Tasks; - -namespace ProtonVPN.Update +namespace ProtonVPN.Update.Contracts { public interface INotifyingAppUpdate { - event EventHandler StateChanged; + event EventHandler StateChanged; void StartCheckingForUpdate(bool earlyAccess); Task StartUpdating(bool auto); } -} +} \ No newline at end of file diff --git a/src/Update/ProtonVPN.Update.Contracts/ProtonVPN.Update.Contracts.csproj b/src/Update/ProtonVPN.Update.Contracts/ProtonVPN.Update.Contracts.csproj new file mode 100644 index 000000000..a4db3cc21 --- /dev/null +++ b/src/Update/ProtonVPN.Update.Contracts/ProtonVPN.Update.Contracts.csproj @@ -0,0 +1,23 @@ + + + + net6.0-windows + enable + enable + Library + ..\..\bin\ + false + false + + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + \ No newline at end of file diff --git a/src/Update/ProtonVPN.Update.Contracts/ReleaseContract.cs b/src/Update/ProtonVPN.Update.Contracts/ReleaseContract.cs new file mode 100644 index 000000000..7cc4a4503 --- /dev/null +++ b/src/Update/ProtonVPN.Update.Contracts/ReleaseContract.cs @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.Update.Contracts +{ + public class ReleaseContract + { + public Version Version { get; set; } = new(); + + public bool EarlyAccess { get; set; } + + public bool New { get; set; } + + public IReadOnlyList ChangeLog { get; set; } = new List(); + } +} \ No newline at end of file diff --git a/src/Update/ProtonVPN.Update.Installers/ProtonVPN.Update.Installers.csproj b/src/Update/ProtonVPN.Update.Installers/ProtonVPN.Update.Installers.csproj new file mode 100644 index 000000000..3778775ef --- /dev/null +++ b/src/Update/ProtonVPN.Update.Installers/ProtonVPN.Update.Installers.csproj @@ -0,0 +1,24 @@ + + + net6.0-windows + Library + false + ..\..\bin\ + false + + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ProtonVPN.App/Core/Ioc/UpdateModule.cs b/src/Update/ProtonVPN.Update.Installers/UpdateModule.cs similarity index 59% rename from src/ProtonVPN.App/Core/Ioc/UpdateModule.cs rename to src/Update/ProtonVPN.Update.Installers/UpdateModule.cs index da58949f5..fcc77e15b 100644 --- a/src/ProtonVPN.App/Core/Ioc/UpdateModule.cs +++ b/src/Update/ProtonVPN.Update.Installers/UpdateModule.cs @@ -18,29 +18,40 @@ */ using System; -using System.Net.Http; using Autofac; -using ProtonVPN.Api; using ProtonVPN.Api.Contracts; -using ProtonVPN.Api.Handlers; -using ProtonVPN.Api.Handlers.Retries; -using ProtonVPN.Api.Handlers.StackBuilders; -using ProtonVPN.Api.Handlers.TlsPinning; using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.OS.Net.Http; -using ProtonVPN.Core.Update; +using ProtonVPN.Common.Logging; using ProtonVPN.Update.Config; +using ProtonVPN.Update.Contracts; +using ProtonVPN.Update.Contracts.Config; +using ProtonVPN.Update.Files.Launchable; +using ProtonVPN.Update.Updates; using Module = Autofac.Module; -namespace ProtonVPN.Core.Ioc +namespace ProtonVPN.Update.Installers { public class UpdateModule : Module { protected override void Load(ContainerBuilder builder) { - base.Load(builder); + builder.RegisterType().SingleInstance(); + builder.RegisterType().As().SingleInstance(); + + builder.Register(c => + new CleanableOnceAppUpdates( + new AsyncAppUpdates( + new SafeAppUpdates(c.Resolve(), + c.Resolve()) + ))).As().SingleInstance(); + + builder.Register(c => + new SafeAppUpdate(c.Resolve(), + new ExtendedProgressAppUpdate(c.Resolve().MinProgressDuration, + new NotifyingAppUpdate( + new AppUpdate(c.Resolve()), c.Resolve() + )))).As().SingleInstance(); - builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.Register(CreateDefaultAppUpdateConfig).As().SingleInstance(); } @@ -49,7 +60,7 @@ private DefaultAppUpdateConfig CreateDefaultAppUpdateConfig(IComponentContext c) { return new DefaultAppUpdateConfig { - HttpClient = c.Resolve().GetFileDownloadHttpClient(), + HttpClient = c.Resolve().GetHttpClient(), FeedUriProvider = c.Resolve(), UpdatesPath = c.Resolve().UpdatesPath, CurrentVersion = Version.Parse(c.Resolve().AppVersion), diff --git a/src/ProtonVPN.Update/AppUpdateException.cs b/src/Update/ProtonVPN.Update/AppUpdateException.cs similarity index 100% rename from src/ProtonVPN.Update/AppUpdateException.cs rename to src/Update/ProtonVPN.Update/AppUpdateException.cs diff --git a/src/ProtonVPN.Update/Config/AppUpdateConfigExtensions.cs b/src/Update/ProtonVPN.Update/Config/AppUpdateConfigExtensions.cs similarity index 100% rename from src/ProtonVPN.Update/Config/AppUpdateConfigExtensions.cs rename to src/Update/ProtonVPN.Update/Config/AppUpdateConfigExtensions.cs diff --git a/src/ProtonVPN.Update/Config/DefaultAppUpdateConfig.cs b/src/Update/ProtonVPN.Update/Config/DefaultAppUpdateConfig.cs similarity index 97% rename from src/ProtonVPN.Update/Config/DefaultAppUpdateConfig.cs rename to src/Update/ProtonVPN.Update/Config/DefaultAppUpdateConfig.cs index b9f753581..40654f875 100644 --- a/src/ProtonVPN.Update/Config/DefaultAppUpdateConfig.cs +++ b/src/Update/ProtonVPN.Update/Config/DefaultAppUpdateConfig.cs @@ -17,8 +17,9 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Common.OS.Net.Http; using System; +using ProtonVPN.Common.OS.Net.Http; +using ProtonVPN.Update.Contracts.Config; namespace ProtonVPN.Update.Config { diff --git a/src/ProtonVPN.Update/Config/IAppUpdateConfig.cs b/src/Update/ProtonVPN.Update/Config/IAppUpdateConfig.cs similarity index 96% rename from src/ProtonVPN.Update/Config/IAppUpdateConfig.cs rename to src/Update/ProtonVPN.Update/Config/IAppUpdateConfig.cs index e3ed4c006..8aaed440c 100644 --- a/src/ProtonVPN.Update/Config/IAppUpdateConfig.cs +++ b/src/Update/ProtonVPN.Update/Config/IAppUpdateConfig.cs @@ -17,8 +17,9 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Common.OS.Net.Http; using System; +using ProtonVPN.Common.OS.Net.Http; +using ProtonVPN.Update.Contracts.Config; namespace ProtonVPN.Update.Config { diff --git a/src/ProtonVPN.Update/Config/Module.cs b/src/Update/ProtonVPN.Update/Config/Module.cs similarity index 98% rename from src/ProtonVPN.Update/Config/Module.cs rename to src/Update/ProtonVPN.Update/Config/Module.cs index b09799a63..f2d8b1dd7 100644 --- a/src/ProtonVPN.Update/Config/Module.cs +++ b/src/Update/ProtonVPN.Update/Config/Module.cs @@ -19,6 +19,7 @@ using Autofac; using ProtonVPN.Common.Logging; +using ProtonVPN.Update.Contracts; using ProtonVPN.Update.Files.Launchable; using ProtonVPN.Update.Updates; diff --git a/src/Update/ProtonVPN.Update/Files/Config.cs b/src/Update/ProtonVPN.Update/Files/Config.cs new file mode 100644 index 000000000..2e1d8be7d --- /dev/null +++ b/src/Update/ProtonVPN.Update/Files/Config.cs @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.Update.Files +{ + public class Config + { + public const int FILE_BUFFER_SIZE = 131072; + } +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Files/Downloadable/DownloadableFile.cs b/src/Update/ProtonVPN.Update/Files/Downloadable/DownloadableFile.cs similarity index 93% rename from src/ProtonVPN.Update/Files/Downloadable/DownloadableFile.cs rename to src/Update/ProtonVPN.Update/Files/Downloadable/DownloadableFile.cs index 1d6c33505..0fc5dccd9 100644 --- a/src/ProtonVPN.Update/Files/Downloadable/DownloadableFile.cs +++ b/src/Update/ProtonVPN.Update/Files/Downloadable/DownloadableFile.cs @@ -28,8 +28,6 @@ namespace ProtonVPN.Update.Files.Downloadable /// public class DownloadableFile : IDownloadableFile { - private const int FileBufferSize = 16768; - private readonly IHttpClient _client; public DownloadableFile(IHttpClient client) @@ -47,11 +45,11 @@ public async Task Download(string url, string filename) } using (Stream contentStream = await response.Content.ReadAsStreamAsync()) - using (FileStream fileStream = new(filename, FileMode.Create, FileAccess.Write, FileShare.None, FileBufferSize, true)) + using (FileStream fileStream = new(filename, FileMode.Create, FileAccess.Write, FileShare.None, Config.FILE_BUFFER_SIZE, true)) { await contentStream.CopyToAsync(fileStream); } } } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Files/Downloadable/IDownloadableFile.cs b/src/Update/ProtonVPN.Update/Files/Downloadable/IDownloadableFile.cs similarity index 100% rename from src/ProtonVPN.Update/Files/Downloadable/IDownloadableFile.cs rename to src/Update/ProtonVPN.Update/Files/Downloadable/IDownloadableFile.cs diff --git a/src/ProtonVPN.Update/Files/Downloadable/SafeDownloadableFile.cs b/src/Update/ProtonVPN.Update/Files/Downloadable/SafeDownloadableFile.cs similarity index 100% rename from src/ProtonVPN.Update/Files/Downloadable/SafeDownloadableFile.cs rename to src/Update/ProtonVPN.Update/Files/Downloadable/SafeDownloadableFile.cs diff --git a/src/ProtonVPN.Update/Files/FileLocation.cs b/src/Update/ProtonVPN.Update/Files/FileLocation.cs similarity index 94% rename from src/ProtonVPN.Update/Files/FileLocation.cs rename to src/Update/ProtonVPN.Update/Files/FileLocation.cs index 3b2f534eb..7d642f373 100644 --- a/src/ProtonVPN.Update/Files/FileLocation.cs +++ b/src/Update/ProtonVPN.Update/Files/FileLocation.cs @@ -33,8 +33,8 @@ public FileLocation(string folder) public string Path(string url) { - var filename = System.IO.Path.GetFileName(url) ?? ""; + string filename = System.IO.Path.GetFileName(url) ?? ""; return System.IO.Path.Combine(_folder, filename); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Files/Launchable/ILaunchableFile.cs b/src/Update/ProtonVPN.Update/Files/Launchable/ILaunchableFile.cs similarity index 100% rename from src/ProtonVPN.Update/Files/Launchable/ILaunchableFile.cs rename to src/Update/ProtonVPN.Update/Files/Launchable/ILaunchableFile.cs diff --git a/src/ProtonVPN.Update/Files/Launchable/LaunchableFile.cs b/src/Update/ProtonVPN.Update/Files/Launchable/LaunchableFile.cs similarity index 100% rename from src/ProtonVPN.Update/Files/Launchable/LaunchableFile.cs rename to src/Update/ProtonVPN.Update/Files/Launchable/LaunchableFile.cs diff --git a/src/ProtonVPN.Update/Files/Launchable/SafeLaunchableFile.cs b/src/Update/ProtonVPN.Update/Files/Launchable/SafeLaunchableFile.cs similarity index 100% rename from src/ProtonVPN.Update/Files/Launchable/SafeLaunchableFile.cs rename to src/Update/ProtonVPN.Update/Files/Launchable/SafeLaunchableFile.cs diff --git a/src/ProtonVPN.Update/Files/UpdatesDirectory/IUpdatesDirectory.cs b/src/Update/ProtonVPN.Update/Files/UpdatesDirectory/IUpdatesDirectory.cs similarity index 100% rename from src/ProtonVPN.Update/Files/UpdatesDirectory/IUpdatesDirectory.cs rename to src/Update/ProtonVPN.Update/Files/UpdatesDirectory/IUpdatesDirectory.cs diff --git a/src/ProtonVPN.Update/Files/UpdatesDirectory/SafeUpdatesDirectory.cs b/src/Update/ProtonVPN.Update/Files/UpdatesDirectory/SafeUpdatesDirectory.cs similarity index 100% rename from src/ProtonVPN.Update/Files/UpdatesDirectory/SafeUpdatesDirectory.cs rename to src/Update/ProtonVPN.Update/Files/UpdatesDirectory/SafeUpdatesDirectory.cs diff --git a/src/ProtonVPN.Update/Files/UpdatesDirectory/UpdatesDirectory.cs b/src/Update/ProtonVPN.Update/Files/UpdatesDirectory/UpdatesDirectory.cs similarity index 98% rename from src/ProtonVPN.Update/Files/UpdatesDirectory/UpdatesDirectory.cs rename to src/Update/ProtonVPN.Update/Files/UpdatesDirectory/UpdatesDirectory.cs index 2b627d4ba..24bcd22eb 100644 --- a/src/ProtonVPN.Update/Files/UpdatesDirectory/UpdatesDirectory.cs +++ b/src/Update/ProtonVPN.Update/Files/UpdatesDirectory/UpdatesDirectory.cs @@ -66,7 +66,9 @@ private static void DeleteOldFiles(string dir, Version currentVersion) foreach (string file in files) { if (!IsExeFile(file) || FileVersion(file) < currentVersion) + { File.Delete(file); + } } } @@ -82,4 +84,4 @@ private static Version FileVersion(string path) : new Version(0, 0, 0); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Files/Validatable/CachedFileValidator.cs b/src/Update/ProtonVPN.Update/Files/Validatable/CachedFileValidator.cs similarity index 100% rename from src/ProtonVPN.Update/Files/Validatable/CachedFileValidator.cs rename to src/Update/ProtonVPN.Update/Files/Validatable/CachedFileValidator.cs diff --git a/src/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs b/src/Update/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs similarity index 89% rename from src/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs rename to src/Update/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs index 2fada40db..eb1bf0f30 100644 --- a/src/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs +++ b/src/Update/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs @@ -29,7 +29,6 @@ namespace ProtonVPN.Update.Files.Validatable /// public class FileCheckSum { - private const int FileBufferSize = 16768; private readonly string _filename; public FileCheckSum(string filename) @@ -39,13 +38,13 @@ public FileCheckSum(string filename) public async Task Value() { - using var stream = new FileStream(_filename, FileMode.Open, FileAccess.Read, FileShare.Read, FileBufferSize, true); + using var stream = new FileStream(_filename, FileMode.Open, FileAccess.Read, FileShare.Read, Config.FILE_BUFFER_SIZE, true); using var sha512 = new SHA512CryptoServiceProvider(); - var buffer = new byte[FileBufferSize]; + byte[] buffer = new byte[Config.FILE_BUFFER_SIZE]; int bytesRead; - while ((bytesRead = await stream.ReadAsync(buffer, 0, FileBufferSize)) > 0) + while ((bytesRead = await stream.ReadAsync(buffer, 0, Config.FILE_BUFFER_SIZE)) > 0) { sha512.TransformBlock(buffer, 0, bytesRead, null, 0); } @@ -54,4 +53,4 @@ public async Task Value() return BitConverter.ToString(sha512.Hash).Replace("-", "").ToLowerInvariant(); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Files/Validatable/FileValidator.cs b/src/Update/ProtonVPN.Update/Files/Validatable/FileValidator.cs similarity index 100% rename from src/ProtonVPN.Update/Files/Validatable/FileValidator.cs rename to src/Update/ProtonVPN.Update/Files/Validatable/FileValidator.cs diff --git a/src/ProtonVPN.Update/Files/Validatable/IFileValidator.cs b/src/Update/ProtonVPN.Update/Files/Validatable/IFileValidator.cs similarity index 100% rename from src/ProtonVPN.Update/Files/Validatable/IFileValidator.cs rename to src/Update/ProtonVPN.Update/Files/Validatable/IFileValidator.cs diff --git a/src/ProtonVPN.Update/Files/Validatable/SafeFileValidator.cs b/src/Update/ProtonVPN.Update/Files/Validatable/SafeFileValidator.cs similarity index 100% rename from src/ProtonVPN.Update/Files/Validatable/SafeFileValidator.cs rename to src/Update/ProtonVPN.Update/Files/Validatable/SafeFileValidator.cs diff --git a/src/ProtonVPN.Update/Helpers/ExceptionExtensions.cs b/src/Update/ProtonVPN.Update/Helpers/ExceptionExtensions.cs similarity index 100% rename from src/ProtonVPN.Update/Helpers/ExceptionExtensions.cs rename to src/Update/ProtonVPN.Update/Helpers/ExceptionExtensions.cs diff --git a/src/ProtonVPN.Update/IAppUpdateState.cs b/src/Update/ProtonVPN.Update/IAppUpdateState.cs similarity index 96% rename from src/ProtonVPN.Update/IAppUpdateState.cs rename to src/Update/ProtonVPN.Update/IAppUpdateState.cs index dc261cf79..2e1f9139f 100644 --- a/src/ProtonVPN.Update/IAppUpdateState.cs +++ b/src/Update/ProtonVPN.Update/IAppUpdateState.cs @@ -18,6 +18,7 @@ */ using System.Collections.Generic; +using ProtonVPN.Update.Contracts; namespace ProtonVPN.Update { @@ -30,4 +31,4 @@ public interface IAppUpdateState string FilePath { get; } string FileArguments { get; } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/IAppUpdates.cs b/src/Update/ProtonVPN.Update/IAppUpdates.cs similarity index 100% rename from src/ProtonVPN.Update/IAppUpdates.cs rename to src/Update/ProtonVPN.Update/IAppUpdates.cs diff --git a/src/ProtonVPN.Update/IRelease.cs b/src/Update/ProtonVPN.Update/IRelease.cs similarity index 99% rename from src/ProtonVPN.Update/IRelease.cs rename to src/Update/ProtonVPN.Update/IRelease.cs index b06612260..a682a20a3 100644 --- a/src/ProtonVPN.Update/IRelease.cs +++ b/src/Update/ProtonVPN.Update/IRelease.cs @@ -32,4 +32,4 @@ public interface IRelease IReadOnlyList ChangeLog { get; } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Properties/AssemblyInfo.cs b/src/Update/ProtonVPN.Update/Properties/AssemblyInfo.cs similarity index 100% rename from src/ProtonVPN.Update/Properties/AssemblyInfo.cs rename to src/Update/ProtonVPN.Update/Properties/AssemblyInfo.cs diff --git a/src/ProtonVPN.Update/ProtonVPN.Update.csproj b/src/Update/ProtonVPN.Update/ProtonVPN.Update.csproj similarity index 76% rename from src/ProtonVPN.Update/ProtonVPN.Update.csproj rename to src/Update/ProtonVPN.Update/ProtonVPN.Update.csproj index 0834d3c67..4a5314d29 100644 --- a/src/ProtonVPN.Update/ProtonVPN.Update.csproj +++ b/src/Update/ProtonVPN.Update/ProtonVPN.Update.csproj @@ -3,16 +3,17 @@ net6.0-windows Library false - ..\bin\ + ..\..\bin\ false - + Properties\GlobalAssemblyInfo.cs - + + diff --git a/src/ProtonVPN.Update/Releases/Release.cs b/src/Update/ProtonVPN.Update/Releases/Release.cs similarity index 60% rename from src/ProtonVPN.Update/Releases/Release.cs rename to src/Update/ProtonVPN.Update/Releases/Release.cs index cc5f9e405..bfbc29e95 100644 --- a/src/ProtonVPN.Update/Releases/Release.cs +++ b/src/Update/ProtonVPN.Update/Releases/Release.cs @@ -19,6 +19,7 @@ using System; using System.Collections.Generic; +using ProtonVPN.Common.Extensions; using ProtonVPN.Update.Responses; namespace ProtonVPN.Update.Releases @@ -28,37 +29,34 @@ namespace ProtonVPN.Update.Releases /// public class Release : IRelease, IComparable, IComparable { - private readonly ReleaseResponse _release; + public Version Version { get; set; } = new(0, 0, 0); - public Release(ReleaseResponse release, bool earlyAccess, Version currentVersion) - { - _release = release; - Version = Version.Parse(_release.Version); - EarlyAccess = earlyAccess; - New = Version > currentVersion; - } - - public Version Version { get; } - - public IReadOnlyList ChangeLog => _release.ChangeLog; + public IReadOnlyList ChangeLog { get; set; } = new List(); - public bool EarlyAccess { get; } + public bool EarlyAccess { get; set; } - public bool New { get; } + public bool New { get; set; } - public FileResponse File => _release.File; + public FileResponse File { get; set; } public bool Empty() { - return _release.Version == "0.0.0" || - _release.File == null || - string.IsNullOrEmpty(_release.File.Url) || - string.IsNullOrEmpty(_release.File.Sha512CheckSum); + return Version.ToString() == "0.0.0" || + File == null || + File.Url.IsNullOrEmpty() || + File.Sha512CheckSum.IsNullOrEmpty(); } public static Release EmptyRelease() { - return new Release(new ReleaseResponse { Version = "0.0.0" }, false, new Version(0, 0, 0)); + return new() + { + ChangeLog = new List(), + EarlyAccess = false, + File = null, + New = false, + Version = new Version(0, 0, 0), + }; } public int CompareTo(IRelease other) @@ -71,4 +69,4 @@ public int CompareTo(object obj) return CompareTo((IRelease)obj); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Releases/Releases.cs b/src/Update/ProtonVPN.Update/Releases/Releases.cs similarity index 61% rename from src/ProtonVPN.Update/Releases/Releases.cs rename to src/Update/ProtonVPN.Update/Releases/Releases.cs index 4206f880c..2f7eeebbd 100644 --- a/src/ProtonVPN.Update/Releases/Releases.cs +++ b/src/Update/ProtonVPN.Update/Releases/Releases.cs @@ -20,21 +20,25 @@ using System; using System.Collections; using System.Collections.Generic; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.AppUpdateLogs; using ProtonVPN.Update.Responses; namespace ProtonVPN.Update.Releases { /// - /// Transforms deserialized release data (stream of ) into stream of . + /// Transforms deserialized release data (stream of ) into stream of . /// public class Releases : IEnumerable { + private readonly ILogger _logger; private readonly IEnumerable _categories; private readonly Version _currentVersion; private readonly string _earlyAccessCategoryName; - public Releases(IEnumerable categories, Version currentVersion, string earlyAccessCategoryName) + public Releases(ILogger logger, IEnumerable categories, Version currentVersion, string earlyAccessCategoryName) { + _logger = logger; _categories = categories; _currentVersion = currentVersion; _earlyAccessCategoryName = earlyAccessCategoryName; @@ -49,11 +53,25 @@ public IEnumerator GetEnumerator() continue; } - bool earlyAccess = string.Equals(_earlyAccessCategoryName, category.Name, StringComparison.OrdinalIgnoreCase); + bool isEarlyAccess = string.Equals(_earlyAccessCategoryName, category.Name, StringComparison.OrdinalIgnoreCase); foreach (ReleaseResponse release in category.Releases) { - yield return new Release(release, earlyAccess, _currentVersion); + if (Version.TryParse(release.Version, out Version version)) + { + yield return new Release + { + ChangeLog = release.ChangeLog, + EarlyAccess = isEarlyAccess, + File = release.File, + New = version > _currentVersion, + Version = version, + }; + } + else + { + _logger.Error($"Failed to parse release version {release.Version}."); + } } } } @@ -63,4 +81,4 @@ IEnumerator IEnumerable.GetEnumerator() return GetEnumerator(); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Responses/CategoriesResponse.cs b/src/Update/ProtonVPN.Update/Responses/CategoriesResponse.cs similarity index 99% rename from src/ProtonVPN.Update/Responses/CategoriesResponse.cs rename to src/Update/ProtonVPN.Update/Responses/CategoriesResponse.cs index b432b192e..58553c59c 100644 --- a/src/ProtonVPN.Update/Responses/CategoriesResponse.cs +++ b/src/Update/ProtonVPN.Update/Responses/CategoriesResponse.cs @@ -25,4 +25,4 @@ public class CategoriesResponse { public IReadOnlyList Categories; } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Responses/CategoryResponse.cs b/src/Update/ProtonVPN.Update/Responses/CategoryResponse.cs similarity index 100% rename from src/ProtonVPN.Update/Responses/CategoryResponse.cs rename to src/Update/ProtonVPN.Update/Responses/CategoryResponse.cs diff --git a/src/ProtonVPN.Update/Responses/FileResponse.cs b/src/Update/ProtonVPN.Update/Responses/FileResponse.cs similarity index 100% rename from src/ProtonVPN.Update/Responses/FileResponse.cs rename to src/Update/ProtonVPN.Update/Responses/FileResponse.cs diff --git a/src/ProtonVPN.Update/Responses/ReleaseResponse.cs b/src/Update/ProtonVPN.Update/Responses/ReleaseResponse.cs similarity index 100% rename from src/ProtonVPN.Update/Responses/ReleaseResponse.cs rename to src/Update/ProtonVPN.Update/Responses/ReleaseResponse.cs diff --git a/src/ProtonVPN.Update/Storage/IReleaseStorage.cs b/src/Update/ProtonVPN.Update/Storage/IReleaseStorage.cs similarity index 100% rename from src/ProtonVPN.Update/Storage/IReleaseStorage.cs rename to src/Update/ProtonVPN.Update/Storage/IReleaseStorage.cs diff --git a/src/ProtonVPN.Update/Storage/OrderedReleaseStorage.cs b/src/Update/ProtonVPN.Update/Storage/OrderedReleaseStorage.cs similarity index 100% rename from src/ProtonVPN.Update/Storage/OrderedReleaseStorage.cs rename to src/Update/ProtonVPN.Update/Storage/OrderedReleaseStorage.cs diff --git a/src/ProtonVPN.Update/Storage/SafeReleaseStorage.cs b/src/Update/ProtonVPN.Update/Storage/SafeReleaseStorage.cs similarity index 100% rename from src/ProtonVPN.Update/Storage/SafeReleaseStorage.cs rename to src/Update/ProtonVPN.Update/Storage/SafeReleaseStorage.cs diff --git a/src/ProtonVPN.Update/Storage/WebReleaseStorage.cs b/src/Update/ProtonVPN.Update/Storage/WebReleaseStorage.cs similarity index 96% rename from src/ProtonVPN.Update/Storage/WebReleaseStorage.cs rename to src/Update/ProtonVPN.Update/Storage/WebReleaseStorage.cs index 98b88706b..6f03e5bff 100644 --- a/src/ProtonVPN.Update/Storage/WebReleaseStorage.cs +++ b/src/Update/ProtonVPN.Update/Storage/WebReleaseStorage.cs @@ -51,7 +51,7 @@ public WebReleaseStorage(IAppUpdateConfig config, ILogger logger) public async Task> Releases() { CategoriesResponse categories = await Categories(); - Releases.Releases releases = new(categories.Categories, _config.CurrentVersion, _config.EarlyAccessCategoryName); + Releases.Releases releases = new(_logger, categories.Categories, _config.CurrentVersion, _config.EarlyAccessCategoryName); return releases; } diff --git a/src/ProtonVPN.Update/Updates/AppUpdate.cs b/src/Update/ProtonVPN.Update/Updates/AppUpdate.cs similarity index 97% rename from src/ProtonVPN.Update/Updates/AppUpdate.cs rename to src/Update/ProtonVPN.Update/Updates/AppUpdate.cs index 476e5115d..4f027d8b2 100644 --- a/src/ProtonVPN.Update/Updates/AppUpdate.cs +++ b/src/Update/ProtonVPN.Update/Updates/AppUpdate.cs @@ -17,6 +17,7 @@ * along with ProtonVPN. If not, see . */ +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -77,6 +78,8 @@ public string FileArguments } } + public Version Version => _state.NewRelease.New ? _state.NewRelease.Version : new Version(); + public IReadOnlyList ReleaseHistory() { return _state.EarlyAccess ? GetAllReleases() : GetStableReleases(); @@ -165,4 +168,4 @@ private static bool Equals(Release one, Release other) one.File != null && other.File != null && one.File.Equals(other.File)); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/AppUpdateState.cs b/src/Update/ProtonVPN.Update/Updates/AppUpdateState.cs similarity index 83% rename from src/ProtonVPN.Update/Updates/AppUpdateState.cs rename to src/Update/ProtonVPN.Update/Updates/AppUpdateState.cs index ab8a9bc0e..66d30f8a7 100644 --- a/src/ProtonVPN.Update/Updates/AppUpdateState.cs +++ b/src/Update/ProtonVPN.Update/Updates/AppUpdateState.cs @@ -18,22 +18,23 @@ */ using System.Collections.Generic; +using ProtonVPN.Update.Contracts; namespace ProtonVPN.Update.Updates { /// /// Public app update state. /// - internal class AppUpdateState : IAppUpdateState + public class AppUpdateState : IAppUpdateState { - internal AppUpdateState(IBaseAppUpdateState update, AppUpdateStatus status) + public AppUpdateState(IBaseAppUpdateState update, AppUpdateStatus status) { ReleaseHistory = update.ReleaseHistory(); Available = update.Available; Ready = update.Ready; Status = status; - FilePath = update.FilePath ?? string.Empty; - FileArguments = update.FileArguments ?? string.Empty; + FilePath = update.FilePath; + FileArguments = update.FileArguments; } public IReadOnlyList ReleaseHistory { get; } @@ -43,4 +44,4 @@ internal AppUpdateState(IBaseAppUpdateState update, AppUpdateStatus status) public string FilePath { get; } public string FileArguments { get; } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/AppUpdates.cs b/src/Update/ProtonVPN.Update/Updates/AppUpdates.cs similarity index 100% rename from src/ProtonVPN.Update/Updates/AppUpdates.cs rename to src/Update/ProtonVPN.Update/Updates/AppUpdates.cs diff --git a/src/ProtonVPN.Update/Updates/AsyncAppUpdates.cs b/src/Update/ProtonVPN.Update/Updates/AsyncAppUpdates.cs similarity index 95% rename from src/ProtonVPN.Update/Updates/AsyncAppUpdates.cs rename to src/Update/ProtonVPN.Update/Updates/AsyncAppUpdates.cs index 35e9a86d1..992d1fd0c 100644 --- a/src/ProtonVPN.Update/Updates/AsyncAppUpdates.cs +++ b/src/Update/ProtonVPN.Update/Updates/AsyncAppUpdates.cs @@ -24,7 +24,7 @@ namespace ProtonVPN.Update.Updates /// /// Performs asynchronous app updates download directory cleanup. /// - internal class AsyncAppUpdates : IAppUpdates + public class AsyncAppUpdates : IAppUpdates { private readonly IAppUpdates _origin; @@ -38,4 +38,4 @@ public void Cleanup() Task.Run(() => _origin.Cleanup()); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/CleanableOnceAppUpdates.cs b/src/Update/ProtonVPN.Update/Updates/CleanableOnceAppUpdates.cs similarity index 93% rename from src/ProtonVPN.Update/Updates/CleanableOnceAppUpdates.cs rename to src/Update/ProtonVPN.Update/Updates/CleanableOnceAppUpdates.cs index 4ef0ba97f..fa9977fb4 100644 --- a/src/ProtonVPN.Update/Updates/CleanableOnceAppUpdates.cs +++ b/src/Update/ProtonVPN.Update/Updates/CleanableOnceAppUpdates.cs @@ -24,7 +24,7 @@ namespace ProtonVPN.Update.Updates /// /// Performs app updates download directory cleanup only once. /// - internal class CleanableOnceAppUpdates : IAppUpdates + public class CleanableOnceAppUpdates : IAppUpdates { private readonly IAppUpdates _origin; private int _cleaned; @@ -37,9 +37,11 @@ public CleanableOnceAppUpdates(IAppUpdates origin) public void Cleanup() { if (Interlocked.Exchange(ref _cleaned, 1) != 0) + { return; + } _origin.Cleanup(); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/ExtendedProgressAppUpdate.cs b/src/Update/ProtonVPN.Update/Updates/ExtendedProgressAppUpdate.cs similarity index 86% rename from src/ProtonVPN.Update/Updates/ExtendedProgressAppUpdate.cs rename to src/Update/ProtonVPN.Update/Updates/ExtendedProgressAppUpdate.cs index 213fa67ec..281b26d81 100644 --- a/src/ProtonVPN.Update/Updates/ExtendedProgressAppUpdate.cs +++ b/src/Update/ProtonVPN.Update/Updates/ExtendedProgressAppUpdate.cs @@ -20,6 +20,7 @@ using System; using System.Threading.Tasks; using ProtonVPN.Common.Threading; +using ProtonVPN.Update.Contracts; namespace ProtonVPN.Update.Updates { @@ -27,16 +28,16 @@ namespace ProtonVPN.Update.Updates /// Extends duration of the update state representing progress (checking and downloading) up to /// specified minimum progress duration. Required for short state change to be noticed in the UI. /// - internal class ExtendedProgressAppUpdate : INotifyingAppUpdate + public class ExtendedProgressAppUpdate : INotifyingAppUpdate { private readonly TimeSpan _minProgressDuration; private readonly INotifyingAppUpdate _origin; private readonly SerialTaskQueue _notifyQueue; - private readonly CancellationHandle _cancellationHandle = new CancellationHandle(); + private readonly CancellationHandle _cancellationHandle = new(); private DateTime _progressStartedAt; - private IAppUpdateState _prevState; + private AppUpdateStateContract _prevState; public ExtendedProgressAppUpdate(TimeSpan minProgressDuration, INotifyingAppUpdate origin) { @@ -47,13 +48,13 @@ public ExtendedProgressAppUpdate(TimeSpan minProgressDuration, INotifyingAppUpda _notifyQueue = new SerialTaskQueue(); } - public event EventHandler StateChanged; + public event EventHandler StateChanged; public void StartCheckingForUpdate(bool earlyAccess) => _origin.StartCheckingForUpdate(earlyAccess); public Task StartUpdating(bool auto) => _origin.StartUpdating(auto); - private void AppUpdate_StateChanged(object sender, IAppUpdateState state) + private void AppUpdate_StateChanged(object sender, AppUpdateStateContract state) { if (ProgressStarted(state)) { @@ -68,12 +69,12 @@ private void AppUpdate_StateChanged(object sender, IAppUpdateState state) _notifyQueue.Enqueue(() => OnStateChanged(state)); } - private bool ProgressStarted(IAppUpdateState state) + private bool ProgressStarted(AppUpdateStateContract state) { return _prevState?.Status.InProgress() != true && state.Status.InProgress(); } - private bool ProgressEnded(IAppUpdateState state) + private bool ProgressEnded(AppUpdateStateContract state) { return _prevState?.Status.InProgress() == true && !state.Status.InProgress(); } @@ -106,9 +107,9 @@ private async Task Delay(TimeSpan delay) } } - private void OnStateChanged(IAppUpdateState state) + private void OnStateChanged(AppUpdateStateContract state) { StateChanged?.Invoke(this, state); } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/IAppUpdate.cs b/src/Update/ProtonVPN.Update/Updates/IAppUpdate.cs similarity index 99% rename from src/ProtonVPN.Update/Updates/IAppUpdate.cs rename to src/Update/ProtonVPN.Update/Updates/IAppUpdate.cs index 03266b67e..bd4debc51 100644 --- a/src/ProtonVPN.Update/Updates/IAppUpdate.cs +++ b/src/Update/ProtonVPN.Update/Updates/IAppUpdate.cs @@ -36,4 +36,4 @@ public interface IAppUpdate : IBaseAppUpdateState Task Started(bool auto); } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/IBaseAppUpdateState.cs b/src/Update/ProtonVPN.Update/Updates/IBaseAppUpdateState.cs similarity index 95% rename from src/ProtonVPN.Update/Updates/IBaseAppUpdateState.cs rename to src/Update/ProtonVPN.Update/Updates/IBaseAppUpdateState.cs index 5f8297456..7a8d09185 100644 --- a/src/ProtonVPN.Update/Updates/IBaseAppUpdateState.cs +++ b/src/Update/ProtonVPN.Update/Updates/IBaseAppUpdateState.cs @@ -17,6 +17,7 @@ * along with ProtonVPN. If not, see . */ +using System; using System.Collections.Generic; namespace ProtonVPN.Update.Updates @@ -28,5 +29,6 @@ public interface IBaseAppUpdateState bool Ready { get; } string FilePath { get; } string FileArguments { get; } + Version Version { get; } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/InternalState.cs b/src/Update/ProtonVPN.Update/Updates/InternalState.cs similarity index 100% rename from src/ProtonVPN.Update/Updates/InternalState.cs rename to src/Update/ProtonVPN.Update/Updates/InternalState.cs diff --git a/src/ProtonVPN.Update/Updates/NotifyingAppUpdate.cs b/src/Update/ProtonVPN.Update/Updates/NotifyingAppUpdate.cs similarity index 82% rename from src/ProtonVPN.Update/Updates/NotifyingAppUpdate.cs rename to src/Update/ProtonVPN.Update/Updates/NotifyingAppUpdate.cs index 1d1e67333..d930aac37 100644 --- a/src/ProtonVPN.Update/Updates/NotifyingAppUpdate.cs +++ b/src/Update/ProtonVPN.Update/Updates/NotifyingAppUpdate.cs @@ -18,12 +18,15 @@ */ using System; +using System.Collections.Generic; using System.IO; +using System.Linq; using System.Threading; using System.Threading.Tasks; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.AppUpdateLogs; using ProtonVPN.Common.Threading; +using ProtonVPN.Update.Contracts; namespace ProtonVPN.Update.Updates { @@ -31,12 +34,12 @@ namespace ProtonVPN.Update.Updates /// Performs series of asynchronous update checking, downloading and verifying operations /// and notifies about the state change. /// - internal class NotifyingAppUpdate : INotifyingAppUpdate + public class NotifyingAppUpdate : INotifyingAppUpdate { private readonly CoalescingAction _checkForUpdate; private IAppUpdate _update; - private ILogger _logger; + private readonly ILogger _logger; private AppUpdateStatus _status = AppUpdateStatus.None; private bool _earlyAccess; private volatile bool _requestedEarlyAccess; @@ -49,7 +52,7 @@ public NotifyingAppUpdate(IAppUpdate update, ILogger logger) _checkForUpdate = new CoalescingAction(SafeCheckForUpdate); } - public event EventHandler StateChanged; + public event EventHandler StateChanged; public void StartCheckingForUpdate(bool earlyAccess) { @@ -90,6 +93,10 @@ private async Task SafeCheckForUpdate(CancellationToken cancellationToken) { HandleFailure(); } + catch (Exception e) + { + HandleFailure(e); + } } private async Task UnsafeCheckForUpdate(CancellationToken cancellationToken) @@ -151,7 +158,7 @@ private void HandleCancellation() OnStateChanged(); } - private void HandleFailure() + private void HandleFailure(Exception e = null) { switch (_status) { @@ -165,7 +172,7 @@ private void HandleFailure() _status = AppUpdateStatus.None; break; } - _logger.Error($"An update failed with status '{_status}' (File path: {_update.FilePath})."); + _logger.Error($"An update failed with status '{_status}' (File path: {_update.FilePath}).", e); OnStateChanged(); } @@ -176,8 +183,28 @@ private void OnStateChanged() private void OnStateChanged(AppUpdateStatus status) { - var eventArgs = new AppUpdateState(_update, status); + AppUpdateStateContract eventArgs = new() + { + IsAvailable = _update.Available, + FileArguments = _update.FileArguments, + FilePath = _update.FilePath, + Version = _update.Version, + IsReady = _update.Ready, + Status = status, + ReleaseHistory = Map(_update.ReleaseHistory()), + }; StateChanged?.Invoke(this, eventArgs); } + + private IReadOnlyList Map(IReadOnlyList releases) + { + return releases.Select(release => new ReleaseContract + { + ChangeLog = release.ChangeLog, + EarlyAccess = release.EarlyAccess, + New = release.New, + Version = release.Version + }).ToList(); + } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/SafeAppUpdate.cs b/src/Update/ProtonVPN.Update/Updates/SafeAppUpdate.cs similarity index 94% rename from src/ProtonVPN.Update/Updates/SafeAppUpdate.cs rename to src/Update/ProtonVPN.Update/Updates/SafeAppUpdate.cs index 2734d64ac..5fec40a81 100644 --- a/src/ProtonVPN.Update/Updates/SafeAppUpdate.cs +++ b/src/Update/ProtonVPN.Update/Updates/SafeAppUpdate.cs @@ -21,6 +21,7 @@ using System.Threading.Tasks; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.AppUpdateLogs; +using ProtonVPN.Update.Contracts; namespace ProtonVPN.Update.Updates { @@ -38,7 +39,7 @@ public SafeAppUpdate(ILogger logger, INotifyingAppUpdate origin) _origin = origin; } - public event EventHandler StateChanged + public event EventHandler StateChanged { add => _origin.StateChanged += value; remove => _origin.StateChanged -= value; @@ -58,4 +59,4 @@ public async Task StartUpdating(bool auto) } } } -} +} \ No newline at end of file diff --git a/src/ProtonVPN.Update/Updates/SafeAppUpdates.cs b/src/Update/ProtonVPN.Update/Updates/SafeAppUpdates.cs similarity index 100% rename from src/ProtonVPN.Update/Updates/SafeAppUpdates.cs rename to src/Update/ProtonVPN.Update/Updates/SafeAppUpdates.cs From c65234b169a2fdc3166a4700f9cdcaf5f40d0f39 Mon Sep 17 00:00:00 2001 From: Mindaugas Veblauskas Date: Fri, 24 Mar 2023 14:44:19 +0200 Subject: [PATCH 18/39] Disable logging to console output [VPNWIN-1418] --- src/ProtonVPN.Common/Logging/Log4Net/Log4NetLoggerFactory.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/ProtonVPN.Common/Logging/Log4Net/Log4NetLoggerFactory.cs b/src/ProtonVPN.Common/Logging/Log4Net/Log4NetLoggerFactory.cs index db313835d..40e0e9bbb 100644 --- a/src/ProtonVPN.Common/Logging/Log4Net/Log4NetLoggerFactory.cs +++ b/src/ProtonVPN.Common/Logging/Log4Net/Log4NetLoggerFactory.cs @@ -49,12 +49,11 @@ private void Configure(string defaultLogFilePath) hierarchy.Root.RemoveAllAppenders(); RollingFileAppender roller = CreateRollingFileAppender(defaultLogFilePath); - hierarchy.Root.AddAppender(roller); SetLoggerLevel(hierarchy); hierarchy.Configured = true; - BasicConfigurator.Configure(hierarchy); + BasicConfigurator.Configure(hierarchy, roller); } private RollingFileAppender CreateRollingFileAppender(string defaultLogFilePath) From 26119b7d048733a59fd4f17cac141dc8515931f0 Mon Sep 17 00:00:00 2001 From: Eduardo Abreu Date: Mon, 27 Mar 2023 16:02:40 +0000 Subject: [PATCH 19/39] EventPublisher initialization first at startup [VPNWIN-1434] --- ProtonVpn.sln | 64 +++++++ Setup/setup.iss | 8 + .../Extensions/ModuleRegistrarExtensions.cs | 40 +++++ .../ProtonVPN.Common.Installers.csproj | 17 ++ .../IIssueReporter.cs} | 5 +- .../ProtonVPN.IssueReporting.Contracts.csproj | 14 ++ .../IssueReportingInitializer.cs | 29 ++++ .../IssueReportingModule.cs | 31 ++++ ...ProtonVPN.IssueReporting.Installers.csproj | 21 +++ .../ISentryDiagnosticLogger.cs | 29 ++++ .../SentryDiagnosticLogger.cs | 19 +-- .../HttpHandlers}/SentryHttpClientHandler.cs | 2 +- .../ProtonVPN.IssueReporting/IssueReporter.cs | 62 +++++++ .../ProtonVPN.IssueReporting.csproj | 21 +++ .../SentryInitializer.cs | 123 ++++++++++++++ .../BugReporting/ReportFieldProvider.cs | 10 +- src/ProtonVPN.App/Core/Bootstraper.cs | 20 ++- src/ProtonVPN.App/Core/Ioc/AppModule.cs | 6 +- .../Core/Service/Vpn/VpnManager.cs | 10 +- src/ProtonVPN.App/ProtonVPN.App.csproj | 2 + src/ProtonVPN.Common/Events/EventPublisher.cs | 156 ------------------ .../OS/DeviceIds/DeviceIdCache.cs | 39 +++++ .../DeviceIdStaticBuilder.cs} | 39 ++++- .../IDeviceIdCache.cs} | 6 +- src/ProtonVPN.Common/ProtonVPN.Common.csproj | 3 - .../ProtonVPN.Service.csproj | 2 + src/ProtonVPN.Service/Start/Bootstrapper.cs | 21 ++- src/ProtonVPN.Service/Start/ServiceModule.cs | 18 +- .../Vpn/WintunRegistryFixer.cs | 10 +- src/ProtonVPN.Service/VpnService.cs | 12 +- src/ProtonVPN.Vpn/Config/Module.cs | 6 +- .../Connection/NetworkAdapterStatusWrapper.cs | 10 +- src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj | 1 + .../Properties/AssemblyInfo.cs | 20 --- .../ProtonVPN.IntegrationTests.csproj | 5 + .../ProtonVPN.IntegrationTests/TestBase.cs | 7 +- 36 files changed, 621 insertions(+), 267 deletions(-) create mode 100644 src/Common/ProtonVPN.Common.Installers/Extensions/ModuleRegistrarExtensions.cs create mode 100644 src/Common/ProtonVPN.Common.Installers/ProtonVPN.Common.Installers.csproj rename src/{ProtonVPN.Common/Events/IEventPublisher.cs => IssueReporting/ProtonVPN.IssueReporting.Contracts/IIssueReporter.cs} (92%) create mode 100644 src/IssueReporting/ProtonVPN.IssueReporting.Contracts/ProtonVPN.IssueReporting.Contracts.csproj create mode 100644 src/IssueReporting/ProtonVPN.IssueReporting.Installers/IssueReportingInitializer.cs create mode 100644 src/IssueReporting/ProtonVPN.IssueReporting.Installers/IssueReportingModule.cs create mode 100644 src/IssueReporting/ProtonVPN.IssueReporting.Installers/ProtonVPN.IssueReporting.Installers.csproj create mode 100644 src/IssueReporting/ProtonVPN.IssueReporting/DiagnosticLogging/ISentryDiagnosticLogger.cs rename src/{ProtonVPN.Common/Service => IssueReporting/ProtonVPN.IssueReporting/DiagnosticLogging}/SentryDiagnosticLogger.cs (76%) rename src/{ProtonVPN.Common/Events => IssueReporting/ProtonVPN.IssueReporting/HttpHandlers}/SentryHttpClientHandler.cs (96%) create mode 100644 src/IssueReporting/ProtonVPN.IssueReporting/IssueReporter.cs create mode 100644 src/IssueReporting/ProtonVPN.IssueReporting/ProtonVPN.IssueReporting.csproj create mode 100644 src/IssueReporting/ProtonVPN.IssueReporting/SentryInitializer.cs delete mode 100644 src/ProtonVPN.Common/Events/EventPublisher.cs create mode 100644 src/ProtonVPN.Common/OS/DeviceIds/DeviceIdCache.cs rename src/ProtonVPN.Common/OS/{DeviceInfoProvider.cs => DeviceIds/DeviceIdStaticBuilder.cs} (61%) rename src/ProtonVPN.Common/OS/{IDeviceInfoProvider.cs => DeviceIds/IDeviceIdCache.cs} (90%) delete mode 100644 src/Tests/ProtonVPN.IntegrationTests/Properties/AssemblyInfo.cs diff --git a/ProtonVpn.sln b/ProtonVpn.sln index 3e3fc7e00..8863f7b27 100644 --- a/ProtonVpn.sln +++ b/ProtonVpn.sln @@ -165,6 +165,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Update.Contracts" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.Update.Installers", "src\Update\ProtonVPN.Update.Installers\ProtonVPN.Update.Installers.csproj", "{C5CF6D06-C762-4DBE-8771-CE64B9CC81E0}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IssueReporting", "IssueReporting", "{D2A5F6DB-29AA-47C2-9AF9-96E294328139}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.IssueReporting", "src\IssueReporting\ProtonVPN.IssueReporting\ProtonVPN.IssueReporting.csproj", "{6DF66A16-6F21-4A72-A366-C5E70E4C34EF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.IssueReporting.Contracts", "src\IssueReporting\ProtonVPN.IssueReporting.Contracts\ProtonVPN.IssueReporting.Contracts.csproj", "{77BE3256-5CA0-490C-BB30-B187285E0EE6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtonVPN.IssueReporting.Installers", "src\IssueReporting\ProtonVPN.IssueReporting.Installers\ProtonVPN.IssueReporting.Installers.csproj", "{753A3B06-C763-4869-8ECF-74274049624D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{56FAE5B5-F1F8-41AF-85E8-54B2CEC2B89E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtonVPN.Common.Installers", "src\Common\ProtonVPN.Common.Installers\ProtonVPN.Common.Installers.csproj", "{C8931979-88CB-4C80-93CF-740680A5206E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -943,6 +955,54 @@ Global {C5CF6D06-C762-4DBE-8771-CE64B9CC81E0}.Release|x64.Build.0 = Release|Any CPU {C5CF6D06-C762-4DBE-8771-CE64B9CC81E0}.Release|x86.ActiveCfg = Release|Any CPU {C5CF6D06-C762-4DBE-8771-CE64B9CC81E0}.Release|x86.Build.0 = Release|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Debug|x64.ActiveCfg = Debug|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Debug|x64.Build.0 = Debug|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Debug|x86.ActiveCfg = Debug|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Debug|x86.Build.0 = Debug|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Release|Any CPU.Build.0 = Release|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Release|x64.ActiveCfg = Release|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Release|x64.Build.0 = Release|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Release|x86.ActiveCfg = Release|Any CPU + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF}.Release|x86.Build.0 = Release|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Debug|x64.ActiveCfg = Debug|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Debug|x64.Build.0 = Debug|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Debug|x86.ActiveCfg = Debug|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Debug|x86.Build.0 = Debug|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Release|Any CPU.Build.0 = Release|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Release|x64.ActiveCfg = Release|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Release|x64.Build.0 = Release|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Release|x86.ActiveCfg = Release|Any CPU + {77BE3256-5CA0-490C-BB30-B187285E0EE6}.Release|x86.Build.0 = Release|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Debug|x64.ActiveCfg = Debug|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Debug|x64.Build.0 = Debug|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Debug|x86.ActiveCfg = Debug|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Debug|x86.Build.0 = Debug|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Release|Any CPU.Build.0 = Release|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Release|x64.ActiveCfg = Release|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Release|x64.Build.0 = Release|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Release|x86.ActiveCfg = Release|Any CPU + {753A3B06-C763-4869-8ECF-74274049624D}.Release|x86.Build.0 = Release|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Debug|x64.ActiveCfg = Debug|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Debug|x64.Build.0 = Debug|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Debug|x86.ActiveCfg = Debug|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Debug|x86.Build.0 = Debug|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Release|Any CPU.Build.0 = Release|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Release|x64.ActiveCfg = Release|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Release|x64.Build.0 = Release|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Release|x86.ActiveCfg = Release|Any CPU + {C8931979-88CB-4C80-93CF-740680A5206E}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -997,6 +1057,10 @@ Global {99B7AEAE-EFC1-4343-ACAA-AA621E3E1026} = {7DB123DC-28AF-4C6E-B8F9-8A88399A5D3F} {688CEDDE-8105-49ED-937C-567B0F28B7AF} = {7B4E6671-D28C-4159-BB16-40CEAC76EE73} {C5CF6D06-C762-4DBE-8771-CE64B9CC81E0} = {7B4E6671-D28C-4159-BB16-40CEAC76EE73} + {6DF66A16-6F21-4A72-A366-C5E70E4C34EF} = {D2A5F6DB-29AA-47C2-9AF9-96E294328139} + {77BE3256-5CA0-490C-BB30-B187285E0EE6} = {D2A5F6DB-29AA-47C2-9AF9-96E294328139} + {753A3B06-C763-4869-8ECF-74274049624D} = {D2A5F6DB-29AA-47C2-9AF9-96E294328139} + {C8931979-88CB-4C80-93CF-740680A5206E} = {56FAE5B5-F1F8-41AF-85E8-54B2CEC2B89E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {5CFD3EA5-ADCA-48F0-9E3F-BBC76CCBF1C2} diff --git a/Setup/setup.iss b/Setup/setup.iss index 1d8d12365..50e951613 100644 --- a/Setup/setup.iss +++ b/Setup/setup.iss @@ -126,6 +126,8 @@ Source: "..\src\bin\ProtonVPN.Api.Installers.deps.json"; DestDir: "{app}\{#Versi Source: "..\src\bin\ProtonVPN.Common.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\ProtonVPN.Common.dll.config"; DestDir: "{app}\{#VersionFolder}"; Source: "..\src\bin\ProtonVPN.Common.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.Common.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.Common.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; Source: "..\src\bin\ProtonVPN.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\ProtonVPN.Core.dll.config"; DestDir: "{app}\{#VersionFolder}"; Source: "..\src\bin\ProtonVPN.Core.deps.json"; DestDir: "{app}\{#VersionFolder}"; @@ -155,6 +157,12 @@ Source: "..\src\bin\ProtonVPN.HumanVerification.dll"; DestDir: "{app}\{#VersionF Source: "..\src\bin\ProtonVPN.HumanVerification.deps.json"; DestDir: "{app}\{#VersionFolder}"; Source: "..\src\bin\ProtonVPN.HumanVerification.Gui.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\ProtonVPN.HumanVerification.Gui.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.IssueReporting.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.IssueReporting.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.IssueReporting.Contracts.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.IssueReporting.Contracts.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ProtonVPN.IssueReporting.Installers.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\ProtonVPN.IssueReporting.Installers.deps.json"; DestDir: "{app}\{#VersionFolder}"; Source: "..\src\bin\ProtonVPN.Native.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\ProtonVPN.Native.deps.json"; DestDir: "{app}\{#VersionFolder}"; Source: "..\src\bin\ProtonVPN.NetworkFilter.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; diff --git a/src/Common/ProtonVPN.Common.Installers/Extensions/ModuleRegistrarExtensions.cs b/src/Common/ProtonVPN.Common.Installers/Extensions/ModuleRegistrarExtensions.cs new file mode 100644 index 000000000..6d3a3d6f3 --- /dev/null +++ b/src/Common/ProtonVPN.Common.Installers/Extensions/ModuleRegistrarExtensions.cs @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Autofac; +using Autofac.Core; +using Autofac.Core.Registration; + +namespace ProtonVPN.Common.Installers.Extensions +{ + public static class ModuleRegistrarExtensions + { + public static IModuleRegistrar RegisterAssemblyModule(this IModuleRegistrar registrar) + where TModule : IModule + { + return registrar.RegisterAssemblyModules(typeof(TModule).Assembly); + } + + public static IModuleRegistrar RegisterAssemblyModule(this ContainerBuilder builder) + where TModule : IModule + { + return builder.RegisterAssemblyModules(typeof(TModule).Assembly); + } + } +} diff --git a/src/Common/ProtonVPN.Common.Installers/ProtonVPN.Common.Installers.csproj b/src/Common/ProtonVPN.Common.Installers/ProtonVPN.Common.Installers.csproj new file mode 100644 index 000000000..ed174e63c --- /dev/null +++ b/src/Common/ProtonVPN.Common.Installers/ProtonVPN.Common.Installers.csproj @@ -0,0 +1,17 @@ + + + net6.0-windows + Library + false + ..\..\bin\ + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + diff --git a/src/ProtonVPN.Common/Events/IEventPublisher.cs b/src/IssueReporting/ProtonVPN.IssueReporting.Contracts/IIssueReporter.cs similarity index 92% rename from src/ProtonVPN.Common/Events/IEventPublisher.cs rename to src/IssueReporting/ProtonVPN.IssueReporting.Contracts/IIssueReporter.cs index 68a47261f..9e8adf94b 100644 --- a/src/ProtonVPN.Common/Events/IEventPublisher.cs +++ b/src/IssueReporting/ProtonVPN.IssueReporting.Contracts/IIssueReporter.cs @@ -20,11 +20,10 @@ using System; using System.Runtime.CompilerServices; -namespace ProtonVPN.Common.Events +namespace ProtonVPN.IssueReporting.Contracts { - public interface IEventPublisher + public interface IIssueReporter { - void Init(); void CaptureError(Exception e, [CallerFilePath] string sourceFilePath = "", [CallerMemberName] string sourceMemberName = "", [CallerLineNumber] int sourceLineNumber = 0); void CaptureError(string message); diff --git a/src/IssueReporting/ProtonVPN.IssueReporting.Contracts/ProtonVPN.IssueReporting.Contracts.csproj b/src/IssueReporting/ProtonVPN.IssueReporting.Contracts/ProtonVPN.IssueReporting.Contracts.csproj new file mode 100644 index 000000000..59d04f699 --- /dev/null +++ b/src/IssueReporting/ProtonVPN.IssueReporting.Contracts/ProtonVPN.IssueReporting.Contracts.csproj @@ -0,0 +1,14 @@ + + + net6.0-windows + Library + false + ..\..\bin\ + false + + + + Properties\GlobalAssemblyInfo.cs + + + diff --git a/src/IssueReporting/ProtonVPN.IssueReporting.Installers/IssueReportingInitializer.cs b/src/IssueReporting/ProtonVPN.IssueReporting.Installers/IssueReportingInitializer.cs new file mode 100644 index 000000000..bf1a904a2 --- /dev/null +++ b/src/IssueReporting/ProtonVPN.IssueReporting.Installers/IssueReportingInitializer.cs @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.IssueReporting.Installers +{ + public static class IssueReportingInitializer + { + public static void Run() + { + SentryInitializer.Run(); + } + } +} diff --git a/src/IssueReporting/ProtonVPN.IssueReporting.Installers/IssueReportingModule.cs b/src/IssueReporting/ProtonVPN.IssueReporting.Installers/IssueReportingModule.cs new file mode 100644 index 000000000..0f414001e --- /dev/null +++ b/src/IssueReporting/ProtonVPN.IssueReporting.Installers/IssueReportingModule.cs @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Autofac; + +namespace ProtonVPN.IssueReporting.Installers +{ + public class IssueReportingModule : Module + { + protected override void Load(ContainerBuilder builder) + { + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + } + } +} \ No newline at end of file diff --git a/src/IssueReporting/ProtonVPN.IssueReporting.Installers/ProtonVPN.IssueReporting.Installers.csproj b/src/IssueReporting/ProtonVPN.IssueReporting.Installers/ProtonVPN.IssueReporting.Installers.csproj new file mode 100644 index 000000000..0a929e509 --- /dev/null +++ b/src/IssueReporting/ProtonVPN.IssueReporting.Installers/ProtonVPN.IssueReporting.Installers.csproj @@ -0,0 +1,21 @@ + + + net6.0-windows + Library + false + ..\..\bin\ + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + diff --git a/src/IssueReporting/ProtonVPN.IssueReporting/DiagnosticLogging/ISentryDiagnosticLogger.cs b/src/IssueReporting/ProtonVPN.IssueReporting/DiagnosticLogging/ISentryDiagnosticLogger.cs new file mode 100644 index 000000000..b78870932 --- /dev/null +++ b/src/IssueReporting/ProtonVPN.IssueReporting/DiagnosticLogging/ISentryDiagnosticLogger.cs @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Logging; +using Sentry.Extensibility; + +namespace ProtonVPN.IssueReporting.DiagnosticLogging +{ + public interface ISentryDiagnosticLogger : IDiagnosticLogger + { + void SetLogger(ILogger logger); + } +} diff --git a/src/ProtonVPN.Common/Service/SentryDiagnosticLogger.cs b/src/IssueReporting/ProtonVPN.IssueReporting/DiagnosticLogging/SentryDiagnosticLogger.cs similarity index 76% rename from src/ProtonVPN.Common/Service/SentryDiagnosticLogger.cs rename to src/IssueReporting/ProtonVPN.IssueReporting/DiagnosticLogging/SentryDiagnosticLogger.cs index c3a9110e7..d18ff32e7 100644 --- a/src/ProtonVPN.Common/Service/SentryDiagnosticLogger.cs +++ b/src/IssueReporting/ProtonVPN.IssueReporting/DiagnosticLogging/SentryDiagnosticLogger.cs @@ -20,16 +20,15 @@ using System; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.AppLogs; -using Sentry.Extensibility; using Sentry; -namespace ProtonVPN.Common.Service +namespace ProtonVPN.IssueReporting.DiagnosticLogging { - public class SentryDiagnosticLogger : IDiagnosticLogger + public class SentryDiagnosticLogger : ISentryDiagnosticLogger { - private readonly ILogger _logger; + private ILogger _logger; - public SentryDiagnosticLogger(ILogger logger) + public void SetLogger(ILogger logger) { _logger = logger; } @@ -45,19 +44,19 @@ public void Log(SentryLevel logLevel, string message, Exception exception = null switch (logLevel) { case SentryLevel.Debug: - _logger.Debug(logMessage, exception); + _logger?.Debug(logMessage, exception); break; case SentryLevel.Info: - _logger.Info(logMessage); + _logger?.Info(logMessage); break; case SentryLevel.Warning: - _logger.Warn(logMessage); + _logger?.Warn(logMessage); break; case SentryLevel.Error: - _logger.Error(logMessage); + _logger?.Error(logMessage); break; case SentryLevel.Fatal: - _logger.Fatal(logMessage); + _logger?.Fatal(logMessage); break; } } diff --git a/src/ProtonVPN.Common/Events/SentryHttpClientHandler.cs b/src/IssueReporting/ProtonVPN.IssueReporting/HttpHandlers/SentryHttpClientHandler.cs similarity index 96% rename from src/ProtonVPN.Common/Events/SentryHttpClientHandler.cs rename to src/IssueReporting/ProtonVPN.IssueReporting/HttpHandlers/SentryHttpClientHandler.cs index 64efd04be..77486a265 100644 --- a/src/ProtonVPN.Common/Events/SentryHttpClientHandler.cs +++ b/src/IssueReporting/ProtonVPN.IssueReporting/HttpHandlers/SentryHttpClientHandler.cs @@ -22,7 +22,7 @@ using System.Threading; using System.Threading.Tasks; -namespace ProtonVPN.Common.Events +namespace ProtonVPN.IssueReporting.HttpHandlers { public class SentryHttpClientHandler : HttpClientHandler { diff --git a/src/IssueReporting/ProtonVPN.IssueReporting/IssueReporter.cs b/src/IssueReporting/ProtonVPN.IssueReporting/IssueReporter.cs new file mode 100644 index 000000000..f74b7b79c --- /dev/null +++ b/src/IssueReporting/ProtonVPN.IssueReporting/IssueReporter.cs @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; +using System.Runtime.CompilerServices; +using ProtonVPN.Common.Helpers; +using ProtonVPN.Common.Logging; +using ProtonVPN.IssueReporting.Contracts; +using Sentry; + +namespace ProtonVPN.IssueReporting +{ + public class IssueReporter : IIssueReporter + { + public IssueReporter(ILogger logger) + { + SentryInitializer.SetLogger(logger); + } + + public void CaptureError( + Exception e, + [CallerFilePath] string sourceFilePath = "", + [CallerMemberName] string sourceMemberName = "", + [CallerLineNumber] int sourceLineNumber = 0) + { + CallerProfile callerProfile = new(sourceFilePath, sourceMemberName, sourceLineNumber); + SentrySdk.WithScope(scope => + { + scope.Level = SentryLevel.Error; + scope.SetTag("captured_in", + $"{callerProfile.SourceClassName}.{callerProfile.SourceMemberName}:{callerProfile.SourceLineNumber}"); + SentrySdk.CaptureException(e); + }); + } + + public void CaptureError(string message) + { + SentrySdk.CaptureEvent(new SentryEvent { Message = message, Level = SentryLevel.Error }); + } + + public void CaptureMessage(string message) + { + SentrySdk.CaptureMessage(message); + } + } +} \ No newline at end of file diff --git a/src/IssueReporting/ProtonVPN.IssueReporting/ProtonVPN.IssueReporting.csproj b/src/IssueReporting/ProtonVPN.IssueReporting/ProtonVPN.IssueReporting.csproj new file mode 100644 index 000000000..7b44f8988 --- /dev/null +++ b/src/IssueReporting/ProtonVPN.IssueReporting/ProtonVPN.IssueReporting.csproj @@ -0,0 +1,21 @@ + + + net6.0-windows + Library + false + ..\..\bin\ + false + + + + Properties\GlobalAssemblyInfo.cs + + + + + + + + + + diff --git a/src/IssueReporting/ProtonVPN.IssueReporting/SentryInitializer.cs b/src/IssueReporting/ProtonVPN.IssueReporting/SentryInitializer.cs new file mode 100644 index 000000000..2752ca72d --- /dev/null +++ b/src/IssueReporting/ProtonVPN.IssueReporting/SentryInitializer.cs @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System.Collections.Generic; +using System.Diagnostics; +using System.Reflection; +using System.Text; +using ProtonVPN.Common.Configuration; +using ProtonVPN.Common.Extensions; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.AppLogs; +using ProtonVPN.Common.OS.DeviceIds; +using ProtonVPN.IssueReporting.DiagnosticLogging; +using ProtonVPN.IssueReporting.HttpHandlers; +using Sentry; + +namespace ProtonVPN.IssueReporting +{ + public static class SentryInitializer + { + private static readonly ISentryDiagnosticLogger _sentryDiagnosticLogger = new SentryDiagnosticLogger(); + private static ILogger _logger; + + public static void SetLogger(ILogger logger) + { + _logger = logger; + _sentryDiagnosticLogger?.SetLogger(logger); + DeviceIdStaticBuilder.SetLogger(logger); + } + + public static void Run() + { + SentryOptions options = GetSentryOptions(); + SentrySdk.Init(options); + } + + private static SentryOptions GetSentryOptions() + { + SentryOptions options = new() + { + Release = $"vpn.windows-{GetAppVersion()}", + AttachStacktrace = true, + Dsn = GlobalConfig.SentryDsn, + ReportAssembliesMode = ReportAssembliesMode.None, + CreateHttpClientHandler = () => new SentryHttpClientHandler(), + AutoSessionTracking = false, + Debug = true, + DiagnosticLogger = _sentryDiagnosticLogger, + BeforeSend = e => + { + LogSentryEvent(e); + e.SetTag("ProcessName", Process.GetCurrentProcess().ProcessName); + e.User.Id = DeviceIdStaticBuilder.GetDeviceId(); + e.SetExtra("logs", GetLogs()); + + return e; + } + }; + + return options; + } + + private static string GetAppVersion() + { + return Assembly.GetExecutingAssembly().GetName().Version.ToString(3); + } + + private static void LogSentryEvent(SentryEvent e) + { + switch (e.Level) + { + case SentryLevel.Debug: + _logger?.Debug(e.Message?.Message); + break; + case SentryLevel.Info: + _logger?.Info(e.Message?.Message); + break; + case SentryLevel.Warning: + _logger?.Warn(e.Message?.Message); + break; + case SentryLevel.Error: + string message = e.Message?.Message; + if (message.IsNullOrEmpty()) + { + message = "Exception handled by Sentry"; + } + _logger?.Error(message, e.Exception); + break; + case SentryLevel.Fatal: + _logger?.Fatal(e.Message?.Message); + break; + } + } + + private static string GetLogs() + { + IList logs = _logger?.GetRecentLogs() ?? new List(); + StringBuilder sb = new(); + foreach (string log in logs) + { + sb.AppendLine(log); + } + + return sb.ToString(); + } + } +} diff --git a/src/ProtonVPN.App/BugReporting/ReportFieldProvider.cs b/src/ProtonVPN.App/BugReporting/ReportFieldProvider.cs index 2969c4894..5db451e35 100644 --- a/src/ProtonVPN.App/BugReporting/ReportFieldProvider.cs +++ b/src/ProtonVPN.App/BugReporting/ReportFieldProvider.cs @@ -24,7 +24,7 @@ using ProtonVPN.BugReporting.FormElements; using ProtonVPN.Common.Configuration; using ProtonVPN.Common.Extensions; -using ProtonVPN.Common.OS; +using ProtonVPN.Common.OS.DeviceIds; using ProtonVPN.Core.Auth; using ProtonVPN.Core.Models; using ProtonVPN.Core.OS; @@ -41,17 +41,17 @@ public class ReportFieldProvider : IReportFieldProvider, ILoggedInAware, ILogout private readonly IUserStorage _userStorage; private readonly IConfiguration _config; private readonly ISystemState _systemState; - private readonly IDeviceInfoProvider _deviceInfoProvider; + private readonly IDeviceIdCache _deviceIdCache; private bool _isLoggedIn; public ReportFieldProvider(IUserStorage userStorage, IConfiguration config, - ISystemState systemState, IDeviceInfoProvider deviceInfoProvider) + ISystemState systemState, IDeviceIdCache deviceIdCache) { _config = config; _userStorage = userStorage; _systemState = systemState; - _deviceInfoProvider = deviceInfoProvider; + _deviceIdCache = deviceIdCache; } public KeyValuePair[] GetFields(SendReportAction message) @@ -108,7 +108,7 @@ private void AppendAdditionalInformationToDescription(StringBuilder stringBuilde { stringBuilder.AppendLine("Additional info") .AppendLine($"Pending reboot: {_systemState.PendingReboot().ToYesNoString()}") - .AppendLine($"DeviceID: {_deviceInfoProvider.GetDeviceId()}"); + .AppendLine($"DeviceID: {_deviceIdCache.GetDeviceId()}"); } private string GetUsername(User user, IList formElements) diff --git a/src/ProtonVPN.App/Core/Bootstraper.cs b/src/ProtonVPN.App/Core/Bootstraper.cs index 4ae10a2b7..92858afbf 100644 --- a/src/ProtonVPN.App/Core/Bootstraper.cs +++ b/src/ProtonVPN.App/Core/Bootstraper.cs @@ -38,8 +38,8 @@ using ProtonVPN.BugReporting; using ProtonVPN.Common.Abstract; using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Events; using ProtonVPN.Common.Extensions; +using ProtonVPN.Common.Installers.Extensions; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.AppLogs; using ProtonVPN.Common.Logging.Categorization.Events.AppServiceLogs; @@ -70,6 +70,7 @@ using ProtonVPN.Dns.Installers; using ProtonVPN.EntityMapping.Installers; using ProtonVPN.ErrorHandling; +using ProtonVPN.IssueReporting.Installers; using ProtonVPN.HumanVerification.Installers; using ProtonVPN.Login; using ProtonVPN.Login.ViewModels; @@ -108,6 +109,7 @@ public class Bootstrapper : BootstrapperBase public Bootstrapper() { + IssueReportingInitializer.Run(); Initialize(); } @@ -121,13 +123,14 @@ protected override void Configure() .RegisterModule() .RegisterModule() .RegisterModule() - .RegisterAssemblyModules(typeof(HumanVerificationModule).Assembly) - .RegisterAssemblyModules(typeof(ApiModule).Assembly) - .RegisterAssemblyModules(typeof(AnnouncementsModule).Assembly) - .RegisterAssemblyModules(typeof(DnsModule).Assembly) - .RegisterAssemblyModules(typeof(EntityMappingModule).Assembly) - .RegisterAssemblyModules(typeof(ProcessCommunicationModule).Assembly) - .RegisterAssemblyModules(typeof(AppProcessCommunicationModule).Assembly); + .RegisterAssemblyModule() + .RegisterAssemblyModule() + .RegisterAssemblyModule() + .RegisterAssemblyModule() + .RegisterAssemblyModule() + .RegisterAssemblyModule() + .RegisterAssemblyModule() + .RegisterAssemblyModule(); _container = builder.Build(); } @@ -137,7 +140,6 @@ protected override async void OnStartup(object sender, StartupEventArgs e) base.OnStartup(sender, e); IConfiguration appConfig = Resolve(); - Resolve().Init(); Resolve().Info($"= Booting ProtonVPN version: {appConfig.AppVersion} os: {Environment.OSVersion.VersionString} {appConfig.OsBits} bit ="); diff --git a/src/ProtonVPN.App/Core/Ioc/AppModule.cs b/src/ProtonVPN.App/Core/Ioc/AppModule.cs index 77a79edec..ef8fc2001 100644 --- a/src/ProtonVPN.App/Core/Ioc/AppModule.cs +++ b/src/ProtonVPN.App/Core/Ioc/AppModule.cs @@ -24,9 +24,8 @@ using ProtonVPN.Account; using ProtonVPN.Api; using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Events; using ProtonVPN.Common.Logging; -using ProtonVPN.Common.OS; +using ProtonVPN.Common.OS.DeviceIds; using ProtonVPN.Common.OS.Processes; using ProtonVPN.Common.OS.Registry; using ProtonVPN.Common.OS.Services; @@ -290,13 +289,12 @@ protected override void Load(ContainerBuilder builder) builder.RegisterType().As().SingleInstance(); builder.RegisterType().SingleInstance(); builder.RegisterType().AsSelf().AsImplementedInterfaces().SingleInstance(); - builder.RegisterType().As().SingleInstance(); builder.RegisterType().As().SingleInstance(); builder.RegisterType().As().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().As().SingleInstance(); - builder.RegisterType().As().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().As().SingleInstance(); diff --git a/src/ProtonVPN.App/Core/Service/Vpn/VpnManager.cs b/src/ProtonVPN.App/Core/Service/Vpn/VpnManager.cs index 46bf43500..287a594e9 100644 --- a/src/ProtonVPN.App/Core/Service/Vpn/VpnManager.cs +++ b/src/ProtonVPN.App/Core/Service/Vpn/VpnManager.cs @@ -20,7 +20,6 @@ using System; using System.Runtime.CompilerServices; using System.Threading.Tasks; -using ProtonVPN.Common.Events; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.ConnectionLogs; using ProtonVPN.Common.Logging.Categorization.Events.ConnectLogs; @@ -29,6 +28,7 @@ using ProtonVPN.Common.Vpn; using ProtonVPN.Core.Profiles; using ProtonVPN.Core.Vpn; +using ProtonVPN.IssueReporting.Contracts; namespace ProtonVPN.Core.Service.Vpn { @@ -39,20 +39,20 @@ public class VpnManager : IVpnManager private readonly IVpnReconnector _vpnReconnector; private readonly IVpnConnector _vpnConnector; private readonly ILogger _logger; - private readonly IEventPublisher _eventPublisher; + private readonly IIssueReporter _issueReporter; public VpnManager( IVpnServiceManager vpnServiceManager, IVpnReconnector vpnReconnector, IVpnConnector vpnConnector, ILogger logger, - IEventPublisher eventPublisher) + IIssueReporter issueReporter) { _vpnServiceManager = vpnServiceManager; _vpnReconnector = vpnReconnector; _vpnConnector = vpnConnector; _logger = logger; - _eventPublisher = eventPublisher; + _issueReporter = issueReporter; _vpnConnector.VpnStateChanged += OnConnectorVpnStateChanged; } @@ -130,7 +130,7 @@ private async Task EnqueueAsync(Func function, } catch (Exception exception) { - _eventPublisher.CaptureError(exception, + _issueReporter.CaptureError(exception, sourceFilePath: sourceFilePath, sourceMemberName: sourceMemberName, sourceLineNumber: sourceLineNumber); diff --git a/src/ProtonVPN.App/ProtonVPN.App.csproj b/src/ProtonVPN.App/ProtonVPN.App.csproj index b3faa5440..542811358 100644 --- a/src/ProtonVPN.App/ProtonVPN.App.csproj +++ b/src/ProtonVPN.App/ProtonVPN.App.csproj @@ -323,12 +323,14 @@ + + diff --git a/src/ProtonVPN.Common/Events/EventPublisher.cs b/src/ProtonVPN.Common/Events/EventPublisher.cs deleted file mode 100644 index 4af5b36be..000000000 --- a/src/ProtonVPN.Common/Events/EventPublisher.cs +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Runtime.CompilerServices; -using System.Text; -using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Extensions; -using ProtonVPN.Common.Helpers; -using ProtonVPN.Common.Logging; -using ProtonVPN.Common.Logging.Categorization.Events.AppLogs; -using ProtonVPN.Common.OS; -using ProtonVPN.Common.Service; -using Sentry; - -namespace ProtonVPN.Common.Events -{ - public class EventPublisher : IEventPublisher - { - private readonly ILogger _logger; - private readonly IConfiguration _config; - private readonly IDeviceInfoProvider _deviceInfoProvider; - - public EventPublisher(ILogger logger, IConfiguration config, IDeviceInfoProvider deviceInfoProvider) - { - _logger = logger; - _config = config; - _deviceInfoProvider = deviceInfoProvider; - } - - public void Init() - { - SentryOptions options = GetSentryOptions(); - SentrySdk.Init(options); - } - - private SentryOptions GetSentryOptions() - { - SentryOptions options = new() - { - Release = $"vpn.windows-{_config.AppVersion}", - AttachStacktrace = true, - Dsn = GlobalConfig.SentryDsn, - ReportAssembliesMode = ReportAssembliesMode.None, - CreateHttpClientHandler = () => new SentryHttpClientHandler(), - AutoSessionTracking = false, - }; - - if (_logger != null) - { - options.Debug = true; - options.DiagnosticLogger = new SentryDiagnosticLogger(_logger); - } - - options.BeforeSend = e => - { - LogSentryEvent(e); - e.SetTag("ProcessName", Process.GetCurrentProcess().ProcessName); - e.User.Id = _deviceInfoProvider.GetDeviceId(); - e.SetExtra("logs", GetLogs()); - - return e; - }; - - return options; - } - - public void CaptureError( - Exception e, - [CallerFilePath] string sourceFilePath = "", - [CallerMemberName] string sourceMemberName = "", - [CallerLineNumber] int sourceLineNumber = 0) - { - CallerProfile callerProfile = new(sourceFilePath, sourceMemberName, sourceLineNumber); - SentrySdk.WithScope(scope => - { - scope.Level = SentryLevel.Error; - scope.SetTag("captured_in", - $"{callerProfile.SourceClassName}.{callerProfile.SourceMemberName}:{callerProfile.SourceLineNumber}"); - SentrySdk.CaptureException(e); - }); - } - - public void CaptureError(string message) - { - SentrySdk.CaptureEvent(new SentryEvent { Message = message, Level = SentryLevel.Error }); - } - - public void CaptureMessage(string message) - { - SentrySdk.CaptureMessage(message); - } - - private void LogSentryEvent(SentryEvent e) - { - if (_logger == null) - { - return; - } - - switch (e.Level) - { - case SentryLevel.Debug: - _logger.Debug(e.Message?.Message); - break; - case SentryLevel.Info: - _logger.Info(e.Message?.Message); - break; - case SentryLevel.Warning: - _logger.Warn(e.Message?.Message); - break; - case SentryLevel.Error: - string message = e.Message?.Message; - if (message.IsNullOrEmpty()) - { - message = "Exception handled by Sentry"; - } - _logger.Error(message, e.Exception); - break; - case SentryLevel.Fatal: - _logger.Fatal(e.Message?.Message); - break; - } - } - - private string GetLogs() - { - IList logs = _logger.GetRecentLogs(); - StringBuilder sb = new(); - foreach (string log in logs) - { - sb.AppendLine(log); - } - - return sb.ToString(); - } - } -} \ No newline at end of file diff --git a/src/ProtonVPN.Common/OS/DeviceIds/DeviceIdCache.cs b/src/ProtonVPN.Common/OS/DeviceIds/DeviceIdCache.cs new file mode 100644 index 000000000..bed1b6403 --- /dev/null +++ b/src/ProtonVPN.Common/OS/DeviceIds/DeviceIdCache.cs @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System; +using ProtonVPN.Common.Logging; + +namespace ProtonVPN.Common.OS.DeviceIds +{ + public class DeviceIdCache : IDeviceIdCache + { + private readonly Lazy _deviceId = new(() => DeviceIdStaticBuilder.GetDeviceId()); + + public DeviceIdCache(ILogger logger) + { + DeviceIdStaticBuilder.SetLogger(logger); + } + + public string GetDeviceId() + { + return _deviceId.Value; + } + } +} diff --git a/src/ProtonVPN.Common/OS/DeviceInfoProvider.cs b/src/ProtonVPN.Common/OS/DeviceIds/DeviceIdStaticBuilder.cs similarity index 61% rename from src/ProtonVPN.Common/OS/DeviceInfoProvider.cs rename to src/ProtonVPN.Common/OS/DeviceIds/DeviceIdStaticBuilder.cs index 80f2690de..f16a980e6 100644 --- a/src/ProtonVPN.Common/OS/DeviceInfoProvider.cs +++ b/src/ProtonVPN.Common/OS/DeviceIds/DeviceIdStaticBuilder.cs @@ -23,19 +23,25 @@ using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.OperatingSystemLogs; -namespace ProtonVPN.Common.OS +namespace ProtonVPN.Common.OS.DeviceIds { - public class DeviceInfoProvider : IDeviceInfoProvider + public static class DeviceIdStaticBuilder { - private readonly ILogger _logger; - private string _deviceId; + private static ILogger _logger; + private static Exception _cachedException; + private static string _deviceId; - public DeviceInfoProvider(ILogger logger) + public static void SetLogger(ILogger logger) { _logger = logger; + if (_cachedException is not null) + { + LogError(_cachedException, "[Cached exception] "); + _cachedException = null; + } } - public string GetDeviceId() + public static string GetDeviceId() { if (!_deviceId.IsNullOrEmpty()) { @@ -53,11 +59,28 @@ public string GetDeviceId() } catch (Exception e) { - _logger.Error("Failed to generate device id.", e); + LogOrCacheError(e); _deviceId = "Undefined"; } return _deviceId; } + + private static void LogOrCacheError(Exception e) + { + if (_logger is null) + { + _cachedException = e; + } + else + { + LogError(e); + } + } + + private static void LogError(Exception e, string prefix = null) + { + _logger.Error($"{prefix}Failed to generate device id.", e); + } } -} \ No newline at end of file +} diff --git a/src/ProtonVPN.Common/OS/IDeviceInfoProvider.cs b/src/ProtonVPN.Common/OS/DeviceIds/IDeviceIdCache.cs similarity index 90% rename from src/ProtonVPN.Common/OS/IDeviceInfoProvider.cs rename to src/ProtonVPN.Common/OS/DeviceIds/IDeviceIdCache.cs index 7ac1ab13e..db851258b 100644 --- a/src/ProtonVPN.Common/OS/IDeviceInfoProvider.cs +++ b/src/ProtonVPN.Common/OS/DeviceIds/IDeviceIdCache.cs @@ -17,10 +17,10 @@ * along with ProtonVPN. If not, see . */ -namespace ProtonVPN.Common.OS +namespace ProtonVPN.Common.OS.DeviceIds { - public interface IDeviceInfoProvider + public interface IDeviceIdCache { string GetDeviceId(); } -} \ No newline at end of file +} diff --git a/src/ProtonVPN.Common/ProtonVPN.Common.csproj b/src/ProtonVPN.Common/ProtonVPN.Common.csproj index bc270c175..8f1440f76 100644 --- a/src/ProtonVPN.Common/ProtonVPN.Common.csproj +++ b/src/ProtonVPN.Common/ProtonVPN.Common.csproj @@ -38,9 +38,6 @@ 7.2.0 - - 3.12.3 - diff --git a/src/ProtonVPN.Service/ProtonVPN.Service.csproj b/src/ProtonVPN.Service/ProtonVPN.Service.csproj index 563f77f6e..36e4fa74b 100644 --- a/src/ProtonVPN.Service/ProtonVPN.Service.csproj +++ b/src/ProtonVPN.Service/ProtonVPN.Service.csproj @@ -41,8 +41,10 @@ + + diff --git a/src/ProtonVPN.Service/Start/Bootstrapper.cs b/src/ProtonVPN.Service/Start/Bootstrapper.cs index 48bb4f20e..3e1865fcf 100644 --- a/src/ProtonVPN.Service/Start/Bootstrapper.cs +++ b/src/ProtonVPN.Service/Start/Bootstrapper.cs @@ -23,11 +23,12 @@ using Autofac; using ProtonVPN.Api.Installers; using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Events; +using ProtonVPN.Common.Installers.Extensions; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.AppServiceLogs; using ProtonVPN.Common.OS.Processes; using ProtonVPN.Common.Vpn; +using ProtonVPN.IssueReporting.Installers; using ProtonVPN.Native.PInvoke; using ProtonVPN.Service.Config; using ProtonVPN.Service.Settings; @@ -42,9 +43,13 @@ namespace ProtonVPN.Service.Start internal class Bootstrapper { private IContainer _container; - private T Resolve() => _container.Resolve(); + public Bootstrapper() + { + IssueReportingInitializer.Run(); + } + public void Initialize() { SetDllDirectories(); @@ -57,10 +62,10 @@ private void Configure() IConfiguration config = new ConfigFactory().Config(); new ConfigDirectories(config).Prepare(); - ContainerBuilder builder = new ContainerBuilder(); + ContainerBuilder builder = new(); builder.RegisterModule() - .RegisterModule() - .RegisterAssemblyModules(typeof(UpdateModule).Assembly); + .RegisterModule() + .RegisterAssemblyModule(); _container = builder.Build(); } @@ -74,7 +79,6 @@ private void Start() AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; - InitCrashReporting(); RegisterEvents(); Resolve().Clean(config.ServiceLogFolder, 10); @@ -94,11 +98,6 @@ private void FixNetworkAdapters() networkAdapterManager.EnableOpenVpnAdapters(); } - private void InitCrashReporting() - { - Resolve().Init(); - } - private void RegisterEvents() { Resolve().StateChanged += (_, e) => diff --git a/src/ProtonVPN.Service/Start/ServiceModule.cs b/src/ProtonVPN.Service/Start/ServiceModule.cs index e9d8b12bb..420046c64 100644 --- a/src/ProtonVPN.Service/Start/ServiceModule.cs +++ b/src/ProtonVPN.Service/Start/ServiceModule.cs @@ -21,10 +21,9 @@ using Autofac; using ProtonVPN.Api; using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Events; +using ProtonVPN.Common.Installers.Extensions; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Log4Net; -using ProtonVPN.Common.OS; using ProtonVPN.Common.OS.Net; using ProtonVPN.Common.OS.Net.Http; using ProtonVPN.Common.OS.Net.NetworkInterface; @@ -33,6 +32,7 @@ using ProtonVPN.Common.Text.Serialization; using ProtonVPN.Common.Threading; using ProtonVPN.EntityMapping.Installers; +using ProtonVPN.IssueReporting.Installers; using ProtonVPN.ProcessCommunication.Installers; using ProtonVPN.ProcessCommunication.Service.Installers; using ProtonVPN.Service.Config; @@ -131,17 +131,21 @@ protected override void Load(ContainerBuilder builder) builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); - builder.RegisterType().As().SingleInstance(); - builder.RegisterType().As().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); - builder.RegisterAssemblyModules(typeof(EntityMappingModule).Assembly); - builder.RegisterAssemblyModules(typeof(ProcessCommunicationModule).Assembly); - builder.RegisterAssemblyModules(typeof(ServiceProcessCommunicationModule).Assembly); + RegisterModules(builder); + } + + private void RegisterModules(ContainerBuilder builder) + { + builder.RegisterAssemblyModule() + .RegisterAssemblyModule() + .RegisterAssemblyModule() + .RegisterAssemblyModule(); } private IVpnConnection GetVpnConnection(IComponentContext c, IVpnConnection connection) diff --git a/src/ProtonVPN.Service/Vpn/WintunRegistryFixer.cs b/src/ProtonVPN.Service/Vpn/WintunRegistryFixer.cs index 3c239686e..8719afac3 100644 --- a/src/ProtonVPN.Service/Vpn/WintunRegistryFixer.cs +++ b/src/ProtonVPN.Service/Vpn/WintunRegistryFixer.cs @@ -19,10 +19,10 @@ using System.Security; using Microsoft.Win32; -using ProtonVPN.Common.Events; using ProtonVPN.Common.Extensions; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.OperatingSystemLogs; +using ProtonVPN.IssueReporting.Contracts; namespace ProtonVPN.Service.Vpn { @@ -35,12 +35,12 @@ public class WintunRegistryFixer // https://docs.microsoft.com/en-us/windows-hardware/drivers/install/system-defined-device-setup-classes-available-to-vendors private readonly string _regPath = "SYSTEM\\ControlSet001\\Control\\Class\\{4d36e972-e325-11ce-bfc1-08002be10318}"; private readonly ILogger _logger; - private readonly IEventPublisher _eventPublisher; + private readonly IIssueReporter _issueReporter; - public WintunRegistryFixer(ILogger logger, IEventPublisher eventPublisher) + public WintunRegistryFixer(ILogger logger, IIssueReporter issueReporter) { _logger = logger; - _eventPublisher = eventPublisher; + _issueReporter = issueReporter; } public void EnsureTunAdapterRegistryIsCorrect() @@ -77,7 +77,7 @@ public void EnsureTunAdapterRegistryIsCorrect() if (componentId.IsNullOrEmpty()) { Registry.SetValue($"HKEY_LOCAL_MACHINE\\{_regPath}\\{folder}", "ComponentId", matchingDeviceId); - _eventPublisher.CaptureMessage("Fixed missing ComponentId on wintun adapter."); + _issueReporter.CaptureMessage("Fixed missing ComponentId on wintun adapter."); } else if (matchingDeviceId != componentId) { diff --git a/src/ProtonVPN.Service/VpnService.cs b/src/ProtonVPN.Service/VpnService.cs index cc82b64cb..13df5b2e5 100644 --- a/src/ProtonVPN.Service/VpnService.cs +++ b/src/ProtonVPN.Service/VpnService.cs @@ -22,7 +22,6 @@ using System.ServiceProcess; using System.Threading; using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Events; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.AppServiceLogs; using ProtonVPN.Common.Logging.Categorization.Events.ConnectionLogs; @@ -30,6 +29,7 @@ using ProtonVPN.Common.OS.Processes; using ProtonVPN.Common.OS.Services; using ProtonVPN.Common.Vpn; +using ProtonVPN.IssueReporting.Contracts; using ProtonVPN.ProcessCommunication.Contracts; using ProtonVPN.Service.Firewall; using ProtonVPN.Vpn.Common; @@ -42,7 +42,7 @@ internal partial class VpnService : ServiceBase private readonly CancellationTokenSource _cancellationTokenSource; private readonly ILogger _logger; - private readonly IEventPublisher _eventPublisher; + private readonly IIssueReporter _issueReporter; private readonly IConfiguration _config; private readonly IOsProcesses _osProcesses; private readonly IVpnConnection _vpnConnection; @@ -52,7 +52,7 @@ internal partial class VpnService : ServiceBase public VpnService( ILogger logger, - IEventPublisher eventPublisher, + IIssueReporter issueReporter, IConfiguration config, IOsProcesses osProcesses, IVpnConnection vpnConnection, @@ -60,7 +60,7 @@ public VpnService( IGrpcServer grpcServer) { _logger = logger; - _eventPublisher = eventPublisher; + _issueReporter = issueReporter; _config = config; _osProcesses = osProcesses; _vpnConnection = vpnConnection; @@ -84,7 +84,7 @@ protected override void OnStart(string[] args) { _logger.Error("An error occurred when starting VPN Service.", ex); LogEvent($"OnStart: {ex}"); - _eventPublisher.CaptureError(ex); + _issueReporter.CaptureError(ex); } } @@ -109,7 +109,7 @@ protected override async void OnStop() { _logger.Error("An error occurred when stopping VPN Service.", ex); LogEvent($"OnStop: {ex}"); - _eventPublisher.CaptureError(ex); + _issueReporter.CaptureError(ex); } finally { diff --git a/src/ProtonVPN.Vpn/Config/Module.cs b/src/ProtonVPN.Vpn/Config/Module.cs index 41ba3ba69..3cf28a02f 100644 --- a/src/ProtonVPN.Vpn/Config/Module.cs +++ b/src/ProtonVPN.Vpn/Config/Module.cs @@ -19,13 +19,13 @@ using Autofac; using ProtonVPN.Common.Configuration; -using ProtonVPN.Common.Events; using ProtonVPN.Common.Logging; using ProtonVPN.Common.OS.Net; using ProtonVPN.Common.OS.Processes; using ProtonVPN.Common.OS.Services; using ProtonVPN.Common.Threading; using ProtonVPN.Crypto; +using ProtonVPN.IssueReporting.Contracts; using ProtonVPN.Vpn.Common; using ProtonVPN.Vpn.Connection; using ProtonVPN.Vpn.Gateways; @@ -98,7 +98,7 @@ public IVpnConnection GetVpnConnection(IComponentContext c) tcpPortScanner.Config(config.OpenVpnStaticKey); IEndpointScanner endpointScanner = c.Resolve(); VpnEndpointCandidates candidates = new(); - IEventPublisher eventPublisher = c.Resolve(); + IIssueReporter issueReporter = c.Resolve(); IPortMappingProtocolClient portMappingProtocolClient = c.Resolve(); return new LoggingWrapper( @@ -116,7 +116,7 @@ public IVpnConnection GetVpnConnection(IComponentContext c) endpointScanner, new NetworkAdapterStatusWrapper( logger, - eventPublisher, + issueReporter, networkAdapterManager, networkInterfaceLoader, c.Resolve(), diff --git a/src/ProtonVPN.Vpn/Connection/NetworkAdapterStatusWrapper.cs b/src/ProtonVPN.Vpn/Connection/NetworkAdapterStatusWrapper.cs index 4d8ecb329..b8d37aab1 100644 --- a/src/ProtonVPN.Vpn/Connection/NetworkAdapterStatusWrapper.cs +++ b/src/ProtonVPN.Vpn/Connection/NetworkAdapterStatusWrapper.cs @@ -19,7 +19,6 @@ using System; using ProtonVPN.Common; -using ProtonVPN.Common.Events; using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization.Events.ConnectLogs; using ProtonVPN.Common.Logging.Categorization.Events.DisconnectLogs; @@ -28,6 +27,7 @@ using ProtonVPN.Common.OS.Net; using ProtonVPN.Common.OS.Net.NetworkInterface; using ProtonVPN.Common.Vpn; +using ProtonVPN.IssueReporting.Contracts; using ProtonVPN.Vpn.Common; using ProtonVPN.Vpn.NetworkAdapters; using ProtonVPN.Vpn.Networks; @@ -37,7 +37,7 @@ namespace ProtonVPN.Vpn.Connection internal class NetworkAdapterStatusWrapper : ISingleVpnConnection { private readonly ILogger _logger; - private readonly IEventPublisher _eventPublisher; + private readonly IIssueReporter _issueReporter; private readonly INetworkAdapterManager _networkAdapterManager; private readonly INetworkInterfaceLoader _networkInterfaceLoader; private readonly WintunAdapter _wintunAdapter; @@ -51,7 +51,7 @@ internal class NetworkAdapterStatusWrapper : ISingleVpnConnection public NetworkAdapterStatusWrapper( ILogger logger, - IEventPublisher eventPublisher, + IIssueReporter issueReporter, INetworkAdapterManager networkAdapterManager, INetworkInterfaceLoader networkInterfaceLoader, WintunAdapter wintunAdapter, @@ -59,7 +59,7 @@ public NetworkAdapterStatusWrapper( ISingleVpnConnection origin) { _logger = logger; - _eventPublisher = eventPublisher; + _issueReporter = issueReporter; _networkAdapterManager = networkAdapterManager; _wintunAdapter = wintunAdapter; _tapAdapter = tapAdapter; @@ -189,7 +189,7 @@ private void SendTunFallbackEvent() { if (!_hasSentTunFallbackEventToSentry) { - _eventPublisher.CaptureMessage("TUN adapter not found. Adapter changed to TAP."); + _issueReporter.CaptureMessage("TUN adapter not found. Adapter changed to TAP."); _hasSentTunFallbackEventToSentry = true; } } diff --git a/src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj b/src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj index add1f1e1c..421e60e9e 100644 --- a/src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj +++ b/src/ProtonVPN.Vpn/ProtonVPN.Vpn.csproj @@ -19,6 +19,7 @@ + diff --git a/src/Tests/ProtonVPN.IntegrationTests/Properties/AssemblyInfo.cs b/src/Tests/ProtonVPN.IntegrationTests/Properties/AssemblyInfo.cs deleted file mode 100644 index 374ad634c..000000000 --- a/src/Tests/ProtonVPN.IntegrationTests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("ProtonVPN.IntegrationTests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ProtonVPN.IntegrationTests")] -[assembly: AssemblyCopyright("Copyright © 2023 Proton AG")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -[assembly: ComVisible(false)] - -[assembly: Guid("a2b4bec3-7430-489e-be6b-f1e8205a7c62")] - -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj b/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj index f6d3f7f6e..4bb783f21 100644 --- a/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj +++ b/src/Tests/ProtonVPN.IntegrationTests/ProtonVPN.IntegrationTests.csproj @@ -7,6 +7,11 @@ false false + + + Properties\GlobalAssemblyInfo.cs + + diff --git a/src/Tests/ProtonVPN.IntegrationTests/TestBase.cs b/src/Tests/ProtonVPN.IntegrationTests/TestBase.cs index 563490c0d..bca9d5775 100644 --- a/src/Tests/ProtonVPN.IntegrationTests/TestBase.cs +++ b/src/Tests/ProtonVPN.IntegrationTests/TestBase.cs @@ -34,6 +34,7 @@ you can redistribute it and/or modify using ProtonVPN.Common.Threading; using ProtonVPN.Core.Ioc; using ProtonVPN.HumanVerification.Installers; +using ProtonVPN.Common.Installers.Extensions; using ProtonVPN.P2PDetection; using RichardSzalay.MockHttp; using File = System.IO.File; @@ -67,7 +68,7 @@ protected void InitializeContainer() httpClient.BaseAddress = new Uri("http://localhost"); ContainerBuilder builder = new(); - builder.RegisterAssemblyModules(typeof(ApiModule).Assembly); + builder.RegisterAssemblyModule(); builder.Register(_ => { IApiHttpClientFactory httpClientFactory = Substitute.For(); @@ -83,7 +84,7 @@ protected void InitializeContainer() .RegisterModule() .RegisterModule() .RegisterModule() - .RegisterAssemblyModules(typeof(HumanVerificationModule).Assembly); + .RegisterAssemblyModule(); builder.Register(_ => { @@ -91,7 +92,7 @@ protected void InitializeContainer() httpClients.GetFileDownloadHttpClient().Returns(new WrappedHttpClient(httpClient)); return httpClients; }).As().SingleInstance(); - builder.RegisterAssemblyModules(typeof(AnnouncementsModule).Assembly); + builder.RegisterAssemblyModule(); builder.Register(_ => Substitute.For()).As().SingleInstance(); builder.Register(_ => new AnnouncementCacheMock()).As().SingleInstance(); From efd5fba88a15b21e2ac2eac00ecd3f05f249f68d Mon Sep 17 00:00:00 2001 From: Eduardo Abreu Date: Mon, 27 Mar 2023 16:58:24 +0000 Subject: [PATCH 20/39] Fix NetShield Stats text --- src/ProtonVPN.Translations/Properties/Resources.be-BY.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.de-DE.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.en-US.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.es-419.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.es-ES.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.id-ID.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.it-IT.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.ru-RU.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx | 2 +- src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx b/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx index 2f064834a..12a5b3964 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx @@ -2514,7 +2514,7 @@ - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx b/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx index b023e089b..473136be2 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx @@ -2514,7 +2514,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx b/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx index abe7a2ab8..893d6ff00 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx @@ -2484,7 +2484,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.en-US.resx b/src/ProtonVPN.Translations/Properties/Resources.en-US.resx index db870d95c..bc41a9f97 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.en-US.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.en-US.resx @@ -2484,7 +2484,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.es-419.resx b/src/ProtonVPN.Translations/Properties/Resources.es-419.resx index 3e789f36c..f83647d3f 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.es-419.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.es-419.resx @@ -2484,7 +2484,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx b/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx index eb7b18431..a4e94241d 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx @@ -2484,7 +2484,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx b/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx index 30b2063af..c4f4ed985 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx @@ -2483,7 +2483,7 @@ - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx b/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx index b502b79f0..a1224ca88 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx @@ -2499,7 +2499,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx b/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx index d2255777f..6b1a00485 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx @@ -2469,7 +2469,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx b/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx index 76852f1b7..663ff59ce 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx @@ -2484,7 +2484,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx b/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx index 3a74506ad..b4df5dbe5 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx @@ -2484,7 +2484,7 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx b/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx index 8a61ec446..2d9030b6d 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx @@ -2514,7 +2514,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx b/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx index 0ae0b27a6..2187726fa 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx @@ -2484,7 +2484,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx b/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx index bc4d3edb2..23a6d1755 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx @@ -2484,7 +2484,7 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.resx b/src/ProtonVPN.Translations/Properties/Resources.resx index aff184ba8..c7f88d155 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.resx @@ -2599,7 +2599,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx b/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx index 259d594bd..070035448 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx @@ -2499,7 +2499,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.ru-RU.resx b/src/ProtonVPN.Translations/Properties/Resources.ru-RU.resx index beb5af1c3..0869cd9ad 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.ru-RU.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.ru-RU.resx @@ -2514,7 +2514,7 @@ - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx b/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx index 605f8c46f..a2be327d9 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx @@ -2483,7 +2483,7 @@ - Bandwidth saved + Data saved diff --git a/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx b/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx index 300a76db0..929197ce8 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx @@ -2515,7 +2515,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну - Bandwidth saved + Data saved From 92a9c42c167b0dbee5b5ad884062c9a00f842805 Mon Sep 17 00:00:00 2001 From: Mindaugas Veblauskas Date: Tue, 28 Mar 2023 13:11:04 +0300 Subject: [PATCH 21/39] Fix app launch conditions after install --- Setup/setup.iss | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/Setup/setup.iss b/Setup/setup.iss index 50e951613..afadaf8fe 100644 --- a/Setup/setup.iss +++ b/Setup/setup.iss @@ -346,7 +346,7 @@ function lstrcpyW(lpStringDest: String; lpStringSrc: Cardinal): Integer; external 'lstrcpyW@kernel32.dll stdcall'; var - IsToReboot: Boolean; + IsToReboot, IsVerySilent: Boolean; function NeedRestart(): Boolean; begin @@ -403,12 +403,26 @@ begin ((Version.Major = Major) and (Version.Minor = Minor) and (Version.Build >= Build)); end; +procedure SetIsVerySilent(); +var + i: Integer; +begin + isVerySilent := False; + for i := 1 to ParamCount do + if CompareText(ParamStr(i), '/verysilent') = 0 then + begin + IsVerySilent := True; + break; + end; +end; + function InitializeSetup(): Boolean; var Version: String; - ErrCode: integer; + ErrCode: Integer; WindowsVersion: TWindowsVersion; begin + SetIsVerySilent(); if IsWindowsVersionEqualOrHigher(10, 0, 17763) = False then begin if WizardSilent() = false then begin MsgBox('This application does not support your Windows version. You will be redirected to a download page with an application suitable for your Windows version. ', mbInformation, MB_OK); @@ -485,10 +499,13 @@ begin end; RestoreOldUserConfigFolder(ExpandConstant('{app}')); if not IsToReboot or WizardForm.NoRadio.Checked = True then begin + launcherArgs := ''; if WizardSilent() = false then begin langCode := ActiveLanguage(); StringChangeEx(langCode, '_', '-', True); launcherArgs := '/lang ' + langCode; + end; + if IsVerySilent = false then begin ExecAsOriginalUser(ExpandConstant('{app}\{#LauncherExeName}'), launcherArgs, '', SW_SHOW, ewNoWait, res); end; end; From 9102cb99af53da9d6a5570ae6cc9e24104e4fd57 Mon Sep 17 00:00:00 2001 From: Eduardo Abreu Date: Tue, 28 Mar 2023 10:58:50 +0000 Subject: [PATCH 22/39] Open main window on second process [VPNWIN-1414] --- .../FirstAppInstanceCallerInitializer.cs | 29 ++++ .../FirstAppInstanceCaller.cs | 42 +++++ .../Channels/GrpcChannelWrapperFactory.cs | 7 +- .../Registration/AppServerPortRegister.cs | 39 +++++ .../Registration/ServerPortRegisterBase.cs | 146 ++++++++++++++++++ .../Registration/ServiceServerPortRegister.cs | 116 +------------- .../Controllers/IAppController.cs | 3 + .../Registration/IAppServerPortRegister.cs | 25 +++ .../Registration/IServerPortRegister.cs | 28 ++++ .../IServiceServerPortRegister.cs | 5 +- .../ProcessCommunicationModule.cs | 3 + .../GrpcServerTest.cs | 5 +- .../ServiceGrpcClientTest.cs | 18 ++- .../GrpcServer.cs | 11 +- .../ServiceGrpcClient.cs | 9 +- src/ProtonVPN.App/App.xaml.cs | 2 +- src/ProtonVPN.App/Core/Bootstraper.cs | 44 ++++-- .../Core/Service/Vpn/AppController.cs | 8 +- .../Core/SingleInstanceApplication.cs | 4 +- .../ErrorHandling/ErrorWindowViewModel.cs | 1 + .../Login/Views/LoginWindow.xaml.cs | 18 ++- .../QuickLaunch/QuickLaunchViewModel.cs | 15 +- src/ProtonVPN.App/Windows/AppWindow.xaml.cs | 49 +++++- .../Windows/IOpenMainWindowAware.cs | 28 ++++ .../Logging}/NullLogger.cs | 37 +++-- 25 files changed, 520 insertions(+), 172 deletions(-) create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/FirstAppInstanceCallerInitializer.cs create mode 100644 src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/FirstAppInstanceCaller.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/AppServerPortRegister.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServerPortRegisterBase.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IAppServerPortRegister.cs create mode 100644 src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServerPortRegister.cs create mode 100644 src/ProtonVPN.App/Windows/IOpenMainWindowAware.cs rename src/{ProtonVPN.App/ErrorHandling => ProtonVPN.Common/Logging}/NullLogger.cs (68%) diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/FirstAppInstanceCallerInitializer.cs b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/FirstAppInstanceCallerInitializer.cs new file mode 100644 index 000000000..e11ef1f20 --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App.Installers/FirstAppInstanceCallerInitializer.cs @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2022 Proton Technologies AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.ProcessCommunication.App.Installers +{ + public static class FirstAppInstanceCallerInitializer + { + public static async Task OpenMainWindowAsync() + { + await FirstAppInstanceCaller.OpenMainWindowAsync(); + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/FirstAppInstanceCaller.cs b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/FirstAppInstanceCaller.cs new file mode 100644 index 000000000..1bdabd9f4 --- /dev/null +++ b/src/ProcessCommunication/App/ProtonVPN.ProcessCommunication.App/FirstAppInstanceCaller.cs @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2022 Proton Technologies AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Common.Channels; +using ProtonVPN.ProcessCommunication.Common.Registration; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; + +namespace ProtonVPN.ProcessCommunication.App +{ + public static class FirstAppInstanceCaller + { + public static async Task OpenMainWindowAsync() + { + AppServerPortRegister appServerPortRegister = new(new NullLogger()); + int? appServerPort = appServerPortRegister.ReadOnce(); + if (appServerPort.HasValue && GrpcChannelWrapperFactory.IsPortValid(appServerPort.Value)) + { + GrpcChannelWrapper grpcChannelWrapper = new(appServerPort.Value); + IAppController appController = grpcChannelWrapper.CreateService(); + await appController.OpenWindow(); + await grpcChannelWrapper.ShutdownAsync(); + } + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapperFactory.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapperFactory.cs index 8a550a046..9f94e0e51 100644 --- a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapperFactory.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Channels/GrpcChannelWrapperFactory.cs @@ -37,9 +37,14 @@ public IGrpcChannelWrapper Create(int serverPort) return new GrpcChannelWrapper(serverPort); } + public static bool IsPortValid(int serverPort) + { + return serverPort > 0 && serverPort <= ushort.MaxValue; + } + private void ValidatePort(int serverPort) { - if (serverPort < 1 || serverPort > ushort.MaxValue) + if (!IsPortValid(serverPort)) { string errorMessage = $"Cannot create a gRPC Client to Server Port {serverPort}. " + $"It needs to be between [1-{ushort.MaxValue}]."; diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/AppServerPortRegister.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/AppServerPortRegister.cs new file mode 100644 index 000000000..6a0f42d82 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/AppServerPortRegister.cs @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using ProtonVPN.Common.Logging; +using ProtonVPN.ProcessCommunication.Contracts.Registration; + +namespace ProtonVPN.ProcessCommunication.Common.Registration +{ + public class AppServerPortRegister : ServerPortRegisterBase, IAppServerPortRegister + { + private const string KEY = "AppServerPort"; + + public AppServerPortRegister(ILogger logger) + : base(logger) + { + } + + protected override string GetKey() + { + return KEY; + } + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServerPortRegisterBase.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServerPortRegisterBase.cs new file mode 100644 index 000000000..9edbc2f6d --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServerPortRegisterBase.cs @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using Microsoft.Win32; +using ProtonVPN.Common.Logging; +using ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs; + +namespace ProtonVPN.ProcessCommunication.Common.Registration +{ + public abstract class ServerPortRegisterBase + { + private const string PATH = "SOFTWARE\\Proton AG\\Proton VPN\\gRPC"; + + protected ILogger Logger { get; private set; } + + protected ServerPortRegisterBase(ILogger logger) + { + Logger = logger; + } + + public void Write(int serverBoundPort) + { + RegistryKey key = OpenBaseKey().CreateSubKey(PATH); + if (key == null) + { + string errorMessage = "Failed to open registry path before writing the gRPC server port."; + Logger.Error(errorMessage); + throw new Exception(errorMessage); + } + try + { + key.SetValue(GetKey(), serverBoundPort, RegistryValueKind.DWord); + } + catch (Exception ex) + { + Logger.Error("Failed when writing the gRPC server port.", ex); + } + finally + { + key?.Close(); + } + } + + private RegistryKey OpenBaseKey() + { + return RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); + } + + protected abstract string GetKey(); + + public void Delete() + { + RegistryKey key = OpenBaseKey().OpenSubKey(PATH, RegistryKeyPermissionCheck.ReadWriteSubTree); + if (key != null) + { + try + { + key.DeleteValue(GetKey()); + } + catch (Exception ex) + { + Logger.Error("Failed when deleting the gRPC server port.", ex); + } + finally + { + key?.Close(); + } + } + } + + public int? ReadOnce() + { + object rawRegistryValue = ReadRawRegistryValue(); + return ParseRawRegistryValue(rawRegistryValue); + } + + private object ReadRawRegistryValue() + { + RegistryKey key = null; + try + { + key = OpenBaseKey().OpenSubKey(PATH); + if (key == null) + { + Logger.Error("Failed to open registry path before reading the gRPC server port."); + return null; + } + object? serverBoundPortObject = key.GetValue(GetKey()); + return serverBoundPortObject; + } + catch (Exception ex) + { + Logger.Error("Failed to read gRPC server port from registry.", ex); + return null; + } + finally + { + key?.Close(); + } + } + + private int? ParseRawRegistryValue(object registryValue) + { + if (registryValue is not null) + { + int serverBoundPort; + try + { + serverBoundPort = (int)registryValue; + return serverBoundPort; + } + catch + { + } + try + { + if (int.TryParse(registryValue.ToString(), out serverBoundPort)) + { + return serverBoundPort; + } + } + catch (Exception ex) + { + Logger.Error("Failed when parsing the gRPC server port.", ex); + } + } + return null; + } + } +} diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServiceServerPortRegister.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServiceServerPortRegister.cs index f7f324789..6087978dc 100644 --- a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServiceServerPortRegister.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Common/Registration/ServiceServerPortRegister.cs @@ -17,129 +17,25 @@ * along with ProtonVPN. If not, see . */ -using Microsoft.Win32; using ProtonVPN.Common.Logging; -using ProtonVPN.Common.Logging.Categorization.Events.ProcessCommunicationLogs; using ProtonVPN.ProcessCommunication.Contracts.Registration; namespace ProtonVPN.ProcessCommunication.Common.Registration { - public class ServiceServerPortRegister : IServiceServerPortRegister + public class ServiceServerPortRegister : ServerPortRegisterBase, IServiceServerPortRegister { - private const string PATH = "SOFTWARE\\Proton AG\\Proton VPN\\gRPC"; private const string KEY = "ServiceServerPort"; - private static readonly TimeSpan DELAY = TimeSpan.FromMilliseconds(100); - - private readonly ILogger _logger; - - public ServiceServerPortRegister(ILogger logger) - { - _logger = logger; - } - - public void Write(int serverBoundPort) - { - RegistryKey key = OpenBaseKey().CreateSubKey(PATH); - if (key == null) - { - string errorMessage = "Failed to write gRPC server port to registry."; - _logger.Error(errorMessage); - throw new Exception(errorMessage); - } - try - { - key.SetValue(KEY, serverBoundPort, RegistryValueKind.DWord); - } - finally - { - key.Close(); - } - } - private RegistryKey OpenBaseKey() - { - return RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); - } - - public void Delete() - { - RegistryKey key = OpenBaseKey().OpenSubKey(PATH, RegistryKeyPermissionCheck.ReadWriteSubTree); - if (key != null) - { - try - { - key.DeleteValue(KEY); - } - catch - { - } - finally - { - key.Close(); - } - } - } - - public int? ReadOnce() - { - object rawRegistryValue = ReadRawRegistryValue(); - return ParseRawRegistryValue(rawRegistryValue); - } + private static readonly TimeSpan DELAY = TimeSpan.FromMilliseconds(100); - private object ReadRawRegistryValue() + public ServiceServerPortRegister(ILogger logger) + : base(logger) { - RegistryKey key = null; - try - { - key = OpenBaseKey().OpenSubKey(PATH); - if (key == null) - { - _logger.Error("Failed to open gRPC server port key from registry."); - return null; - } - object? serverBoundPortObject = key.GetValue(KEY); - return serverBoundPortObject; - } - catch (Exception e) - { - _logger.Error("Failed to read gRPC server port from registry.", e); - return null; - } - finally - { - try - { - key?.Close(); - } - catch - { - } - } } - private int? ParseRawRegistryValue(object registryValue) + protected override string GetKey() { - if (registryValue is not null) - { - int serverBoundPort; - try - { - serverBoundPort = (int)registryValue; - return serverBoundPort; - } - catch - { - } - try - { - int.TryParse(registryValue.ToString(), out serverBoundPort); - return serverBoundPort; - } - catch - { - } - } - return null; + return KEY; } public async Task ReadAsync(CancellationToken cancellationToken) diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IAppController.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IAppController.cs index d850a52d8..48b3250d9 100644 --- a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IAppController.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Controllers/IAppController.cs @@ -33,11 +33,14 @@ public interface IAppController event EventHandler OnConnectionDetailsChanged; event EventHandler OnNetShieldStatisticChanged; event EventHandler OnUpdateStateChanged; + event EventHandler OnOpenWindowInvoked; Task VpnStateChange(VpnStateIpcEntity vpnState); Task PortForwardingStateChange(PortForwardingStateIpcEntity portForwardingState); Task ConnectionDetailsChange(ConnectionDetailsIpcEntity connectionDetails); Task NetShieldStatisticChange(NetShieldStatisticIpcEntity netShieldStatistic); Task UpdateStateChange(UpdateStateIpcEntity updateState); + + Task OpenWindow(); } } \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IAppServerPortRegister.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IAppServerPortRegister.cs new file mode 100644 index 000000000..1cb86ef7e --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IAppServerPortRegister.cs @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.ProcessCommunication.Contracts.Registration +{ + public interface IAppServerPortRegister : IServerPortRegister + { + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServerPortRegister.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServerPortRegister.cs new file mode 100644 index 000000000..e73b46401 --- /dev/null +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServerPortRegister.cs @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Proton AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +namespace ProtonVPN.ProcessCommunication.Contracts.Registration +{ + public interface IServerPortRegister + { + void Write(int serverBoundPort); + void Delete(); + int? ReadOnce(); + } +} \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServiceServerPortRegister.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServiceServerPortRegister.cs index c70231276..f98aafa16 100644 --- a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServiceServerPortRegister.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Contracts/Registration/IServiceServerPortRegister.cs @@ -19,11 +19,8 @@ namespace ProtonVPN.ProcessCommunication.Contracts.Registration { - public interface IServiceServerPortRegister + public interface IServiceServerPortRegister : IServerPortRegister { - void Write(int serverBoundPort); - void Delete(); - int? ReadOnce(); Task ReadAsync(CancellationToken cancellationToken); } } \ No newline at end of file diff --git a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProcessCommunicationModule.cs b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProcessCommunicationModule.cs index 8f48919ed..1b70b6fcb 100644 --- a/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProcessCommunicationModule.cs +++ b/src/ProcessCommunication/ProtonVPN.ProcessCommunication.Installers/ProcessCommunicationModule.cs @@ -30,7 +30,10 @@ public class ProcessCommunicationModule : Module protected override void Load(ContainerBuilder builder) { builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterType().AsImplementedInterfaces().SingleInstance(); + builder.RegisterAssemblyTypes(typeof(AsymmetricKeyPairMapper).Assembly) .Where(t => typeof(IMapper).IsAssignableFrom(t)) .AsImplementedInterfaces() diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/GrpcServerTest.cs b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/GrpcServerTest.cs index 963ac1c1d..2c49087d3 100644 --- a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/GrpcServerTest.cs +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/GrpcServerTest.cs @@ -34,6 +34,7 @@ public class GrpcServerTest : GrpcServerTestBase private IVpnController _vpnController; private IUpdateController _updateController; private IServiceServerPortRegister _serviceServerPortRegister; + private IAppServerPortRegister _appServerPortRegister; [TestInitialize] public override void Initialize() @@ -42,12 +43,13 @@ public override void Initialize() _vpnController = Substitute.For(); _updateController = Substitute.For(); _serviceServerPortRegister = Substitute.For(); + _appServerPortRegister = Substitute.For(); base.Initialize(); } protected override IGrpcServer CreateGrpcServer() { - return new GrpcServer(_logger, _vpnController, _updateController, _serviceServerPortRegister); + return new GrpcServer(_logger, _vpnController, _updateController, _serviceServerPortRegister, _appServerPortRegister); } [TestCleanup] @@ -57,6 +59,7 @@ public override void Cleanup() _vpnController = null; _updateController = null; _serviceServerPortRegister = null; + _appServerPortRegister = null; base.Initialize(); } diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ServiceGrpcClientTest.cs b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ServiceGrpcClientTest.cs index 012c88c91..3b563048a 100644 --- a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ServiceGrpcClientTest.cs +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service.Tests/ServiceGrpcClientTest.cs @@ -21,9 +21,11 @@ using NSubstitute; using ProtonVPN.Common.Logging; using ProtonVPN.ProcessCommunication.Common.Channels; +using ProtonVPN.ProcessCommunication.Common.Registration; using ProtonVPN.ProcessCommunication.Common.Tests; using ProtonVPN.ProcessCommunication.Contracts; using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Registration; namespace ProtonVPN.ProcessCommunication.Service.Tests { @@ -35,6 +37,7 @@ public class ServiceGrpcClientTest private ILogger _logger; private IGrpcChannelWrapper _grpcChannelWrapper; private IGrpcChannelWrapperFactory _grpcChannelWrapperFactory; + private IAppServerPortRegister _appServerPortRegister; private IServiceGrpcClient _serviceGrpcClient; [TestInitialize] @@ -45,7 +48,8 @@ public void Initialize() _grpcChannelWrapper.CreateService().Returns(c => Substitute.For()); _grpcChannelWrapperFactory = Substitute.For(); _grpcChannelWrapperFactory.Create(Arg.Any()).Returns(_grpcChannelWrapper); - _serviceGrpcClient = new ServiceGrpcClient(_logger, _grpcChannelWrapperFactory); + _appServerPortRegister = Substitute.For(); + _serviceGrpcClient = new ServiceGrpcClient(_logger, _grpcChannelWrapperFactory, _appServerPortRegister); } [TestCleanup] @@ -54,6 +58,7 @@ public void Cleanup() _logger = null; _grpcChannelWrapper = null; _grpcChannelWrapperFactory = null; + _appServerPortRegister = null; _serviceGrpcClient = null; } @@ -62,6 +67,8 @@ public async Task TestCreateAsync() { await _serviceGrpcClient.CreateAsync(APP_SERVER_PORT); + _appServerPortRegister.Received(1).Write(Arg.Any()); + _appServerPortRegister.Received(1).Write(APP_SERVER_PORT); Assert.IsNotNull(_serviceGrpcClient.AppController); } @@ -73,6 +80,7 @@ public void TestCreateAsync_NoRaceConditionOccurs() ParallelTestRunner.ExecuteInParallel(numOfCalls, (int i) => _serviceGrpcClient.CreateAsync(APP_SERVER_PORT + i)); + _appServerPortRegister.Received(numOfCalls).Write(Arg.Any()); Assert.IsNotNull(_serviceGrpcClient.AppController); _grpcChannelWrapperFactory.Received(numOfCalls).Create(Arg.Any()); } @@ -82,8 +90,13 @@ public async Task TestRecreateAsync() { await _serviceGrpcClient.CreateAsync(APP_SERVER_PORT); + _appServerPortRegister.Received(1).Write(Arg.Any()); + _appServerPortRegister.Received(1).Write(APP_SERVER_PORT); + await _serviceGrpcClient.RecreateAsync(); + _appServerPortRegister.Received(2).Write(Arg.Any()); + _appServerPortRegister.Received(2).Write(APP_SERVER_PORT); Assert.IsNotNull(_serviceGrpcClient.AppController); } @@ -92,6 +105,7 @@ public async Task TestRecreateAsync_WhenPortIsNull() { await _serviceGrpcClient.RecreateAsync(); + _appServerPortRegister.Received(0).Write(Arg.Any()); Assert.IsNull(_serviceGrpcClient.AppController); } @@ -104,6 +118,8 @@ public async Task TestRecreateAsync_NoRaceConditionOccurs() ParallelTestRunner.ExecuteInParallel(numOfCalls, (int _) => _serviceGrpcClient.RecreateAsync()); + _appServerPortRegister.Received(numOfCalls + 1).Write(Arg.Any()); + _appServerPortRegister.Received(numOfCalls + 1).Write(APP_SERVER_PORT); Assert.IsNotNull(_serviceGrpcClient.AppController); _grpcChannelWrapperFactory.Received(numOfCalls + 1).Create(Arg.Any()); await _grpcChannelWrapper.Received(numOfCalls).ShutdownAsync(); diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/GrpcServer.cs b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/GrpcServer.cs index a002d8db6..96c6a491a 100644 --- a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/GrpcServer.cs +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/GrpcServer.cs @@ -31,14 +31,19 @@ public class GrpcServer : GrpcServerBase private readonly IVpnController _vpnController; private readonly IUpdateController _updateController; private readonly IServiceServerPortRegister _serviceServerPortRegister; + private readonly IAppServerPortRegister _appServerPortRegister; - public GrpcServer(ILogger logger, IVpnController vpnController, IUpdateController updateController, - IServiceServerPortRegister serviceServerPortRegister) + public GrpcServer(ILogger logger, + IVpnController vpnController, + IUpdateController updateController, + IServiceServerPortRegister serviceServerPortRegister, + IAppServerPortRegister appServerPortRegister) : base(logger) { _vpnController = vpnController; _updateController = updateController; _serviceServerPortRegister = serviceServerPortRegister; + _appServerPortRegister = appServerPortRegister; } protected override void RegisterServices(ServiceDefinitionCollection services) @@ -60,12 +65,14 @@ public override void CreateAndStart() public override async Task ShutdownAsync() { _serviceServerPortRegister.Delete(); + _appServerPortRegister.Delete(); await base.ShutdownAsync(); } public override async Task KillAsync() { _serviceServerPortRegister.Delete(); + _appServerPortRegister.Delete(); await base.KillAsync(); } } diff --git a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ServiceGrpcClient.cs b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ServiceGrpcClient.cs index 45d00f21a..6f77fa927 100644 --- a/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ServiceGrpcClient.cs +++ b/src/ProcessCommunication/Service/ProtonVPN.ProcessCommunication.Service/ServiceGrpcClient.cs @@ -23,20 +23,27 @@ using ProtonVPN.ProcessCommunication.Common.Channels; using ProtonVPN.ProcessCommunication.Contracts; using ProtonVPN.ProcessCommunication.Contracts.Controllers; +using ProtonVPN.ProcessCommunication.Contracts.Registration; namespace ProtonVPN.ProcessCommunication.Service { public class ServiceGrpcClient : GrpcClientBase, IServiceGrpcClient { + private readonly IAppServerPortRegister _appServerPortRegister; + public IAppController AppController { get; private set; } - public ServiceGrpcClient(ILogger logger, IGrpcChannelWrapperFactory grpcChannelWrapperFactory) + public ServiceGrpcClient(ILogger logger, + IGrpcChannelWrapperFactory grpcChannelWrapperFactory, + IAppServerPortRegister appServerPortRegister) : base(logger, grpcChannelWrapperFactory) { + _appServerPortRegister = appServerPortRegister; } public async Task CreateAsync(int serverPort) { + _appServerPortRegister.Write(serverPort); await CreateWithPortAsync(serverPort); } diff --git a/src/ProtonVPN.App/App.xaml.cs b/src/ProtonVPN.App/App.xaml.cs index 075098c37..4a53484b0 100644 --- a/src/ProtonVPN.App/App.xaml.cs +++ b/src/ProtonVPN.App/App.xaml.cs @@ -47,7 +47,7 @@ protected override async void OnStartup(StartupEventArgs e) return; } - if (await SingleInstanceApplication.InitializeAsFirstInstance("{588dc704-8eac-4a43-9345-ec7186b23f05}", e.Args)) + if (await SingleInstanceApplication.InitializeAsFirstInstance("{588dc704-8eac-4a43-9345-ec7186b23f05}")) { SetDllDirectories(); diff --git a/src/ProtonVPN.App/Core/Bootstraper.cs b/src/ProtonVPN.App/Core/Bootstraper.cs index 92858afbf..6e1c6f2cc 100644 --- a/src/ProtonVPN.App/Core/Bootstraper.cs +++ b/src/ProtonVPN.App/Core/Bootstraper.cs @@ -70,8 +70,8 @@ using ProtonVPN.Dns.Installers; using ProtonVPN.EntityMapping.Installers; using ProtonVPN.ErrorHandling; -using ProtonVPN.IssueReporting.Installers; using ProtonVPN.HumanVerification.Installers; +using ProtonVPN.IssueReporting.Installers; using ProtonVPN.Login; using ProtonVPN.Login.ViewModels; using ProtonVPN.Login.Views; @@ -86,6 +86,7 @@ using ProtonVPN.PlanDowngrading; using ProtonVPN.ProcessCommunication.App.Installers; using ProtonVPN.ProcessCommunication.Contracts; +using ProtonVPN.ProcessCommunication.Contracts.Controllers; using ProtonVPN.ProcessCommunication.Installers; using ProtonVPN.QuickLaunch; using ProtonVPN.Settings; @@ -295,7 +296,7 @@ private void RegisterEvents() } }; - Resolve().UserLocationChanged += (sender, location) => + Resolve().UserLocationChanged += (_, location) => { IEnumerable instances = Resolve>(); foreach (IUserLocationAware instance in instances) @@ -304,7 +305,7 @@ private void RegisterEvents() } }; - Resolve().AnnouncementsChanged += (sender, e) => + Resolve().AnnouncementsChanged += (_, _) => { IEnumerable instances = Resolve>(); foreach (IAnnouncementsAware instance in instances) @@ -313,9 +314,9 @@ private void RegisterEvents() } }; - userAuthenticator.UserLoggingIn += (sender, e) => OnUserLoggingIn(); + userAuthenticator.UserLoggingIn += (_, _) => OnUserLoggingIn(); - userAuthenticator.UserLoggedIn += async (sender, e) => + userAuthenticator.UserLoggedIn += async (_, e) => { await Resolve().Update(); await Resolve().Update(); @@ -339,7 +340,7 @@ private void RegisterEvents() await SwitchToAppWindow(e.IsAutoLogin); }; - userAuthenticator.UserLoggedOut += (sender, e) => + userAuthenticator.UserLoggedOut += (_, _) => { Resolve().CloseAll(); @@ -353,7 +354,7 @@ private void RegisterEvents() Resolve().Hide(); }; - Resolve().UserDataChanged += (sender, e) => + Resolve().UserDataChanged += (_, _) => { IEnumerable instances = Resolve>(); foreach (IUserDataAware instance in instances) @@ -362,7 +363,7 @@ private void RegisterEvents() } }; - Resolve().VpnPlanChanged += async (sender, e) => + Resolve().VpnPlanChanged += async (_, e) => { IEnumerable instances = Resolve>(); foreach (IVpnPlanAware instance in instances) @@ -371,7 +372,7 @@ private void RegisterEvents() } }; - Resolve().SyncStatusChanged += (sender, e) => + Resolve().SyncStatusChanged += (_, e) => { IEnumerable instances = Resolve>(); foreach (IProfileSyncStatusAware instance in instances) @@ -380,7 +381,7 @@ private void RegisterEvents() } }; - Resolve().PinsChanged += (sender, e) => + Resolve().PinsChanged += (_, _) => { IEnumerable instances = Resolve>(); foreach (IPinChangeAware instance in instances) @@ -425,7 +426,16 @@ private void RegisterEvents() } }); - Resolve().VpnStateChanged += (sender, e) => + Resolve().OnOpenWindowInvoked += (_, _) => + { + IEnumerable instances = Resolve>(); + foreach (IOpenMainWindowAware instance in instances) + { + instance.OnOpenMainWindow(); + } + }; + + Resolve().VpnStateChanged += (_, e) => { IEnumerable instances = Resolve>(); foreach (IVpnStateAware instance in instances) @@ -436,7 +446,7 @@ private void RegisterEvents() Resolve().PublishOnCurrentThreadAsync(e); }; - Resolve().UpdateStateChanged += (sender, e) => + Resolve().UpdateStateChanged += (_, e) => { IEnumerable instances = Resolve>(); foreach (IUpdateStateAware instance in instances) @@ -447,7 +457,7 @@ private void RegisterEvents() Resolve().ManualSidebarModeChangeRequested += appWindow.OnManualSidebarModeChangeRequested; - appSettings.PropertyChanged += (sender, e) => + appSettings.PropertyChanged += (_, e) => { if (e.PropertyName == nameof(IAppSettings.Language)) { @@ -461,7 +471,7 @@ private void RegisterEvents() } }; - Resolve().StepChanged += (sender, e) => + Resolve().StepChanged += (_, e) => { IEnumerable instances = Resolve>(); foreach (IOnboardingStepAware instance in instances) @@ -470,7 +480,7 @@ private void RegisterEvents() } }; - Resolve().GuestHoleStateChanged += (sender, active) => + Resolve().GuestHoleStateChanged += (_, active) => { IEnumerable instances = Resolve>(); foreach (IGuestHoleStateAware instance in instances) @@ -479,7 +489,7 @@ private void RegisterEvents() } }; - Resolve().ApiDataChanged += async (sender, e) => + Resolve().ApiDataChanged += async (_, e) => { IEnumerable instances = Resolve>(); foreach (IApiDataChangeAware instance in instances) @@ -488,7 +498,7 @@ private void RegisterEvents() } }; - Resolve().SessionExpired += (sender, e) => + Resolve().SessionExpired += (_, _) => { Resolve().Execute(); }; diff --git a/src/ProtonVPN.App/Core/Service/Vpn/AppController.cs b/src/ProtonVPN.App/Core/Service/Vpn/AppController.cs index f444ed875..30e7a049c 100644 --- a/src/ProtonVPN.App/Core/Service/Vpn/AppController.cs +++ b/src/ProtonVPN.App/Core/Service/Vpn/AppController.cs @@ -40,6 +40,7 @@ public class AppController : IAppController public event EventHandler OnConnectionDetailsChanged; public event EventHandler OnNetShieldStatisticChanged; public event EventHandler OnUpdateStateChanged; + public event EventHandler OnOpenWindowInvoked; public AppController(ILogger logger) { @@ -84,7 +85,6 @@ public async Task UpdateStateChange(UpdateStateIpcEntity updateStateDetails) { _logger.Info( $"Received update state change with status {updateStateDetails.Status}."); - InvokeOnUiThread(() => OnUpdateStateChanged?.Invoke(this, updateStateDetails)); } @@ -97,5 +97,11 @@ public async Task NetShieldStatisticChange(NetShieldStatisticIpcEntity netShield $"[Trackers: '{netShieldStatistic.NumOfTrackingUrlsBlocked}']"); InvokeOnUiThread(() => OnNetShieldStatisticChanged?.Invoke(this, netShieldStatistic)); } + + public async Task OpenWindow() + { + _logger.Debug("Another process requested to open the main window."); + InvokeOnUiThread(() => OnOpenWindowInvoked?.Invoke(this, null)); + } } } \ No newline at end of file diff --git a/src/ProtonVPN.App/Core/SingleInstanceApplication.cs b/src/ProtonVPN.App/Core/SingleInstanceApplication.cs index aa765d0bf..2451b83ab 100644 --- a/src/ProtonVPN.App/Core/SingleInstanceApplication.cs +++ b/src/ProtonVPN.App/Core/SingleInstanceApplication.cs @@ -19,6 +19,7 @@ using System.Threading; using System.Threading.Tasks; +using ProtonVPN.ProcessCommunication.App.Installers; namespace ProtonVPN.Core { @@ -27,12 +28,13 @@ public static class SingleInstanceApplication private static Mutex _singleInstanceMutex; private static IAppExitInvoker _appExitInvoker = new AppExitInvoker(); - public static async Task InitializeAsFirstInstance(string uniqueName, string[] args) + public static async Task InitializeAsFirstInstance(string uniqueName) { _singleInstanceMutex = new Mutex(true, uniqueName, out bool firstInstance); if (!firstInstance) { + await FirstAppInstanceCallerInitializer.OpenMainWindowAsync(); _appExitInvoker.Exit(); } diff --git a/src/ProtonVPN.App/ErrorHandling/ErrorWindowViewModel.cs b/src/ProtonVPN.App/ErrorHandling/ErrorWindowViewModel.cs index dbb00b3da..c7c5c0f2f 100644 --- a/src/ProtonVPN.App/ErrorHandling/ErrorWindowViewModel.cs +++ b/src/ProtonVPN.App/ErrorHandling/ErrorWindowViewModel.cs @@ -21,6 +21,7 @@ using System.Windows.Input; using GalaSoft.MvvmLight.Command; using ProtonVPN.Common.Configuration; +using ProtonVPN.Common.Logging; using ProtonVPN.Common.OS.Processes; using ProtonVPN.Core; using ProtonVPN.Core.MVVM; diff --git a/src/ProtonVPN.App/Login/Views/LoginWindow.xaml.cs b/src/ProtonVPN.App/Login/Views/LoginWindow.xaml.cs index eae5fa292..9bb72e0db 100644 --- a/src/ProtonVPN.App/Login/Views/LoginWindow.xaml.cs +++ b/src/ProtonVPN.App/Login/Views/LoginWindow.xaml.cs @@ -18,12 +18,14 @@ */ using System.ComponentModel; +using System.Threading.Tasks; using System.Windows; using ProtonVPN.Core; +using ProtonVPN.Windows; namespace ProtonVPN.Login.Views { - public partial class LoginWindow + public partial class LoginWindow : IOpenMainWindowAware { private readonly AppExitHandler _appExitHandler; @@ -51,5 +53,19 @@ private void Minimize_Click(object sender, RoutedEventArgs e) { WindowState = WindowState.Minimized; } + + public async Task OnOpenMainWindow() + { + OpenWindow(); + } + + public void OpenWindow() + { + if (WindowState.Equals(WindowState.Minimized)) + { + WindowState = WindowState.Normal; + } + Activate(); + } } } \ No newline at end of file diff --git a/src/ProtonVPN.App/QuickLaunch/QuickLaunchViewModel.cs b/src/ProtonVPN.App/QuickLaunch/QuickLaunchViewModel.cs index de9b07de2..727fc0490 100644 --- a/src/ProtonVPN.App/QuickLaunch/QuickLaunchViewModel.cs +++ b/src/ProtonVPN.App/QuickLaunch/QuickLaunchViewModel.cs @@ -20,14 +20,11 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; -using System.Threading; using System.Threading.Tasks; -using System.Windows; using System.Windows.Input; using GalaSoft.MvvmLight.Command; using ProtonVPN.Common.Extensions; using ProtonVPN.Common.Vpn; -using ProtonVPN.Core.Events; using ProtonVPN.Core.MVVM; using ProtonVPN.Core.Profiles; using ProtonVPN.Core.Servers.Models; @@ -275,17 +272,7 @@ private async void ProfileConnectAction(ProfileViewModel viewModel) private async void ShowAppAction() { - _appWindow.Show(); - if (_appWindow.WindowState.Equals(WindowState.Minimized)) - { - _appWindow.WindowState = WindowState.Normal; - } - - _appWindow.Activate(); - if (Connecting) - { - await _appWindow.HandleAsync(new ToggleOverlay(true), new CancellationTokenSource().Token); - } + await _appWindow.OpenWindowAsync(); } } } \ No newline at end of file diff --git a/src/ProtonVPN.App/Windows/AppWindow.xaml.cs b/src/ProtonVPN.App/Windows/AppWindow.xaml.cs index 7b4f78c76..9ba95bd92 100644 --- a/src/ProtonVPN.App/Windows/AppWindow.xaml.cs +++ b/src/ProtonVPN.App/Windows/AppWindow.xaml.cs @@ -35,6 +35,7 @@ using ProtonVPN.Common.Logging.Categorization.Events.AppLogs; using ProtonVPN.Common.Vpn; using ProtonVPN.Core; +using ProtonVPN.Core.Auth; using ProtonVPN.Core.Events; using ProtonVPN.Core.Models; using ProtonVPN.Core.Native; @@ -51,7 +52,10 @@ namespace ProtonVPN.Windows public partial class AppWindow : IHandle, IOnboardingStepAware, - IVpnStateAware + IVpnStateAware, + ILoggedInAware, + ILogoutAware, + IOpenMainWindowAware { private const int BLUR_AMOUNT = 20; private const int SIDEBAR_WIDTH = 336; @@ -75,6 +79,7 @@ public partial class AppWindow : private bool _blurOutInProgress; private bool _isConnected; private bool _isConnecting; + private bool _isUserLoggedIn; public bool AllowWindowHiding; @@ -300,12 +305,7 @@ private async void TrayIconClick(object sender, MouseEventArgs e) } else { - Show(); - Activate(); - if (_isConnecting) - { - await HandleAsync(new ToggleOverlay(true), new CancellationTokenSource().Token); - } + await OpenWindowAsync(); } } else if (e.Button == MouseButtons.Right) @@ -315,6 +315,31 @@ private async void TrayIconClick(object sender, MouseEventArgs e) } } + public async Task OpenWindowAsync() + { + if (!_isUserLoggedIn) + { + return; + } + + Show(); + if (WindowState.Equals(WindowState.Minimized)) + { + WindowState = WindowState.Normal; + } + + Activate(); + if (_isConnecting) + { + await HandleAsync(new ToggleOverlay(true), new CancellationTokenSource().Token); + } + } + + public async Task OnOpenMainWindow() + { + await OpenWindowAsync(); + } + private void SetToggleButton() { _appSettings.SidebarMode = ActualWidth <= SIDEBAR_WIDTH; @@ -444,5 +469,15 @@ private void PublishWindowState(object sender, EventArgs e) { _eventAggregator.PublishOnUIThreadAsync(new WindowStateMessage(IsActive, WindowState)); } + + public void OnUserLoggedIn() + { + _isUserLoggedIn = true; + } + + public void OnUserLoggedOut() + { + _isUserLoggedIn = false; + } } } \ No newline at end of file diff --git a/src/ProtonVPN.App/Windows/IOpenMainWindowAware.cs b/src/ProtonVPN.App/Windows/IOpenMainWindowAware.cs new file mode 100644 index 000000000..444d63b1a --- /dev/null +++ b/src/ProtonVPN.App/Windows/IOpenMainWindowAware.cs @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2022 Proton Technologies AG + * + * This file is part of ProtonVPN. + * + * ProtonVPN is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * ProtonVPN is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with ProtonVPN. If not, see . + */ + +using System.Threading.Tasks; + +namespace ProtonVPN.Windows +{ + public interface IOpenMainWindowAware + { + Task OnOpenMainWindow(); + } +} \ No newline at end of file diff --git a/src/ProtonVPN.App/ErrorHandling/NullLogger.cs b/src/ProtonVPN.Common/Logging/NullLogger.cs similarity index 68% rename from src/ProtonVPN.App/ErrorHandling/NullLogger.cs rename to src/ProtonVPN.Common/Logging/NullLogger.cs index 86bfefa43..ff7dc2852 100644 --- a/src/ProtonVPN.App/ErrorHandling/NullLogger.cs +++ b/src/ProtonVPN.Common/Logging/NullLogger.cs @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Proton AG + * Copyright (c) 2022 Proton Technologies AG * * This file is part of ProtonVPN. * @@ -20,38 +20,55 @@ using System; using System.Collections.Generic; using System.Runtime.CompilerServices; -using ProtonVPN.Common.Logging; using ProtonVPN.Common.Logging.Categorization; -namespace ProtonVPN.ErrorHandling +namespace ProtonVPN.Common.Logging { - internal class NullLogger : ILogger + public class NullLogger : ILogger { - public IList GetRecentLogs() => new List(); + public IList GetRecentLogs() + { + return new List(); + } public void Debug(string message, Exception exception = null, [CallerFilePath] string sourceFilePath = "", [CallerMemberName] string sourceMemberName = "", - [CallerLineNumber] int sourceLineNumber = 0) where TEvent : ILogEvent, new() { } + [CallerLineNumber] int sourceLineNumber = 0) + where TEvent : ILogEvent, new() + { + } public void Info(string message, Exception exception = null, [CallerFilePath] string sourceFilePath = "", [CallerMemberName] string sourceMemberName = "", - [CallerLineNumber] int sourceLineNumber = 0) where TEvent : ILogEvent, new() { } + [CallerLineNumber] int sourceLineNumber = 0) + where TEvent : ILogEvent, new() + { + } public void Warn(string message, Exception exception = null, [CallerFilePath] string sourceFilePath = "", [CallerMemberName] string sourceMemberName = "", - [CallerLineNumber] int sourceLineNumber = 0) where TEvent : ILogEvent, new() { } + [CallerLineNumber] int sourceLineNumber = 0) + where TEvent : ILogEvent, new() + { + } public void Error(string message, Exception exception = null, [CallerFilePath] string sourceFilePath = "", [CallerMemberName] string sourceMemberName = "", - [CallerLineNumber] int sourceLineNumber = 0) where TEvent : ILogEvent, new() { } + [CallerLineNumber] int sourceLineNumber = 0) + where TEvent : ILogEvent, new() + { + } public void Fatal(string message, Exception exception = null, [CallerFilePath] string sourceFilePath = "", [CallerMemberName] string sourceMemberName = "", - [CallerLineNumber] int sourceLineNumber = 0) where TEvent : ILogEvent, new() { } + [CallerLineNumber] int sourceLineNumber = 0) + where TEvent : ILogEvent, new() + { + } } } \ No newline at end of file From 37c1e70ce0dfd8446e2fa334214c201c0f43e83b Mon Sep 17 00:00:00 2001 From: Thomas Felices Date: Wed, 29 Mar 2023 11:05:29 +0200 Subject: [PATCH 23/39] L10N-1786 - Add some explanatory comments to some localization resources --- src/ProtonVPN.Translations/Properties/Resources.resx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ProtonVPN.Translations/Properties/Resources.resx b/src/ProtonVPN.Translations/Properties/Resources.resx index c7f88d155..c8ba2042d 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.resx @@ -2539,9 +2539,11 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Kill switch Off + The text for the clickable option to disable the kill switch feature. Kill switch On + The text for the clickable option to enable the kill switch feature. Learn more @@ -2611,6 +2613,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. NetShield @@ -2635,6 +2638,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Permanent kill switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). OK @@ -3277,6 +3281,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Restart + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. Automatically check for and install updates to Proton VPN. From 343de2909249ed0933c01e86e19f854e91ed161b Mon Sep 17 00:00:00 2001 From: Mindaugas Veblauskas Date: Wed, 29 Mar 2023 12:59:50 +0300 Subject: [PATCH 24/39] Use separate tag for jobs which do not require signing --- .gitlab-ci.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f40e88356..00972786f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,6 +17,10 @@ variables: TEST_REPORT_PATH: results/ PROJECT_ID: "13" MILESTONE: "Windows" + FF_USE_FASTZIP: "true" + TRANSFER_METER_FREQUENCY: "2s" + ARTIFACT_COMPRESSION_LEVEL: "fastest" + CACHE_COMPRESSION_LEVEL: "fastest" stages: - release @@ -36,7 +40,7 @@ stages: build-release: stage: build tags: - - windows + - windows-dot-net script: - echo "Building native dependencies..." - 'c:\nuget\nuget.exe restore ProtonVPN.InstallActions.sln' @@ -63,7 +67,7 @@ build-release: build-debug: stage: build tags: - - windows + - windows-dot-net script: - echo "Building native dependencies..." - 'c:\nuget\nuget.exe restore ProtonVPN.InstallActions.sln' @@ -90,7 +94,7 @@ build-debug: tests: stage: test tags: - - windows + - windows-dot-net script: - dotnet restore ProtonVpn.sln - dotnet build ProtonVpn.sln @@ -122,7 +126,7 @@ build-installer-for-release: prepare-internal-beta-release: stage: internal-beta tags: - - windows + - windows-dot-net when: manual script: - python -m pip install -r ci\python-libs.txt From e04ae4505505f82afed64d0ae794fb272c528cf7 Mon Sep 17 00:00:00 2001 From: Mindaugas Veblauskas Date: Fri, 31 Mar 2023 06:36:54 +0000 Subject: [PATCH 25/39] Fix build time errors [VPNWIN-1391] --- Setup/setup.iss | 3 +- .../Retries/RetryCountProviderTest.cs | 4 +- src/ProtonVPN.App/Config/Url/ActiveUrl.cs | 11 +++--- src/ProtonVPN.App/ProtonVPN.App.csproj | 2 +- .../Resources/Assets/Styles/OxyPlot.xaml | 37 +------------------ .../Net/Http/HttpRequestMessageExtensions.cs | 26 ++++--------- src/ProtonVPN.Common/ProtonVPN.Common.csproj | 6 --- src/ProtonVPN.Common/Vpn/VpnHost.cs | 8 +++- src/ProtonVPN.Crypto/X25519KeyGenerator.cs | 2 +- .../ProtonVPN.Translations.csproj | 3 +- .../TranslationSource.cs | 9 +++-- .../Files/Validatable/FileCheckSum.cs | 11 ++++-- 12 files changed, 43 insertions(+), 79 deletions(-) diff --git a/Setup/setup.iss b/Setup/setup.iss index afadaf8fe..042ca859f 100644 --- a/Setup/setup.iss +++ b/Setup/setup.iss @@ -104,10 +104,10 @@ Source: "..\src\bin\Microsoft.Windows.SDK.NET.dll"; DestDir: "{app}\{#VersionFol Source: "..\src\bin\Newtonsoft.Json.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\OxyPlot.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\OxyPlot.Wpf.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; +Source: "..\src\bin\OxyPlot.Wpf.Shared.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\PInvoke.Kernel32.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\PInvoke.Windows.Core.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\PInvoke.Windows.ShellScalingApi.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; -Source: "..\src\bin\PluralNet.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\Polly.Contrib.WaitAndRetry.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\Polly.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\ProtonVPN.Announcements.Contracts.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; @@ -198,6 +198,7 @@ Source: "..\src\bin\ProtonVPN.Vpn.dll"; DestDir: "{app}\{#VersionFolder}"; Flags Source: "..\src\bin\ProtonVPN.Vpn.deps.json"; DestDir: "{app}\{#VersionFolder}"; Source: "..\src\bin\ProtonVPN.WireGuardDriver.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\ProtonVPN.WireGuardDriver.deps.json"; DestDir: "{app}\{#VersionFolder}"; +Source: "..\src\bin\ReswPlusLib.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\Sentry.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\System.Configuration.ConfigurationManager.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; Source: "..\src\bin\System.Diagnostics.EventLog.dll"; DestDir: "{app}\{#VersionFolder}"; Flags: signonce; diff --git a/src/Api/ProtonVPN.Api.Tests/Handlers/Retries/RetryCountProviderTest.cs b/src/Api/ProtonVPN.Api.Tests/Handlers/Retries/RetryCountProviderTest.cs index 115950133..c58537bc0 100644 --- a/src/Api/ProtonVPN.Api.Tests/Handlers/Retries/RetryCountProviderTest.cs +++ b/src/Api/ProtonVPN.Api.Tests/Handlers/Retries/RetryCountProviderTest.cs @@ -34,7 +34,7 @@ public void ItShouldUseDefaultRetryCount() { // Arrange int retryCount = 3; - IConfiguration config = new Config() { ApiRetries = retryCount }; + IConfiguration config = new Config { ApiRetries = retryCount }; RetryCountProvider sut = new(config); // Assert @@ -45,7 +45,7 @@ public void ItShouldUseDefaultRetryCount() public void ItShouldUseCustomRetryCount() { // Arrange - IConfiguration config = new Config() { ApiRetries = 3 }; + IConfiguration config = new Config { ApiRetries = 3 }; RetryCountProvider sut = new(config); HttpRequestMessage request = new(); int retryCount = 10; diff --git a/src/ProtonVPN.App/Config/Url/ActiveUrl.cs b/src/ProtonVPN.App/Config/Url/ActiveUrl.cs index 85e3004b8..fa24be817 100644 --- a/src/ProtonVPN.App/Config/Url/ActiveUrl.cs +++ b/src/ProtonVPN.App/Config/Url/ActiveUrl.cs @@ -17,11 +17,12 @@ * along with ProtonVPN. If not, see . */ -using ProtonVPN.Common.OS.Processes; using System; using System.Collections.Generic; -using System.Collections.Specialized; -using System.Web; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.WebUtilities; +using Microsoft.Extensions.Primitives; +using ProtonVPN.Common.OS.Processes; namespace ProtonVPN.Config.Url { @@ -41,13 +42,13 @@ public ActiveUrl WithQueryParams(Dictionary parameters) try { UriBuilder uriBuilder = new UriBuilder(_url); - NameValueCollection query = HttpUtility.ParseQueryString(uriBuilder.Query); + Dictionary query = QueryHelpers.ParseQuery(uriBuilder.Query); foreach (KeyValuePair item in parameters) { query[item.Key] = item.Value; } - uriBuilder.Query = query.ToString(); + uriBuilder.Query = QueryString.Create(query).ToString(); _url = uriBuilder.ToString(); } catch (UriFormatException) diff --git a/src/ProtonVPN.App/ProtonVPN.App.csproj b/src/ProtonVPN.App/ProtonVPN.App.csproj index 542811358..803c8c9a2 100644 --- a/src/ProtonVPN.App/ProtonVPN.App.csproj +++ b/src/ProtonVPN.App/ProtonVPN.App.csproj @@ -591,7 +591,7 @@ all - + diff --git a/src/ProtonVPN.App/Resources/Assets/Styles/OxyPlot.xaml b/src/ProtonVPN.App/Resources/Assets/Styles/OxyPlot.xaml index 9b8f43242..41ef461b6 100644 --- a/src/ProtonVPN.App/Resources/Assets/Styles/OxyPlot.xaml +++ b/src/ProtonVPN.App/Resources/Assets/Styles/OxyPlot.xaml @@ -93,39 +93,4 @@ along with ProtonVPN. If not, see . - - - + \ No newline at end of file diff --git a/src/ProtonVPN.Common/OS/Net/Http/HttpRequestMessageExtensions.cs b/src/ProtonVPN.Common/OS/Net/Http/HttpRequestMessageExtensions.cs index ad4a78a8a..bfe2d1a2b 100644 --- a/src/ProtonVPN.Common/OS/Net/Http/HttpRequestMessageExtensions.cs +++ b/src/ProtonVPN.Common/OS/Net/Http/HttpRequestMessageExtensions.cs @@ -26,8 +26,8 @@ namespace ProtonVPN.Common.OS.Net.Http { public static class HttpRequestMessageExtensions { - private const string CUSTOM_TIMEOUT_PROPERTY_NAME = "CustomTimeout"; - private const string RETRY_COUNT_PROPERTY_NAME = "RetryCount"; + private static readonly HttpRequestOptionsKey CustomTimeoutOptionsKey = new("CustomTimeout"); + private static readonly HttpRequestOptionsKey RetryCountOptionsKey = new("RetryCount"); public static bool AuthHeadersInvalid(this HttpRequestMessage request) { @@ -36,38 +36,28 @@ public static bool AuthHeadersInvalid(this HttpRequestMessage request) public static TimeSpan? GetCustomTimeout(this HttpRequestMessage request) { - if (request.Properties.TryGetValue(CUSTOM_TIMEOUT_PROPERTY_NAME, out object timeout)) - { - return (TimeSpan)timeout; - } - - return null; + return request.Options.TryGetValue(CustomTimeoutOptionsKey, out TimeSpan timeout) ? timeout : null; } public static void SetCustomTimeout(this HttpRequestMessage request, TimeSpan timeout) { - if (!request.Properties.ContainsKey(CUSTOM_TIMEOUT_PROPERTY_NAME)) + if (!request.Options.TryGetValue(CustomTimeoutOptionsKey, out _)) { - request.Properties.Add(CUSTOM_TIMEOUT_PROPERTY_NAME, timeout); + request.Options.Set(CustomTimeoutOptionsKey, timeout); } } public static void SetRetryCount(this HttpRequestMessage request, int retryCount) { - if (!request.Properties.ContainsKey(RETRY_COUNT_PROPERTY_NAME)) + if (!request.Options.TryGetValue(RetryCountOptionsKey, out _)) { - request.Properties.Add(RETRY_COUNT_PROPERTY_NAME, retryCount); + request.Options.Set(RetryCountOptionsKey, retryCount); } } public static int? GetRetryCount(this HttpRequestMessage request) { - if (request.Properties.TryGetValue(RETRY_COUNT_PROPERTY_NAME, out object timeout)) - { - return (int)timeout; - } - - return null; + return request.Options.TryGetValue(RetryCountOptionsKey, out int timeout) ? timeout : null; } private static bool AuthHeaderSet(this HttpRequestMessage request) diff --git a/src/ProtonVPN.Common/ProtonVPN.Common.csproj b/src/ProtonVPN.Common/ProtonVPN.Common.csproj index 8f1440f76..c3cc4c34e 100644 --- a/src/ProtonVPN.Common/ProtonVPN.Common.csproj +++ b/src/ProtonVPN.Common/ProtonVPN.Common.csproj @@ -7,12 +7,6 @@ false true - - - - - - Properties\GlobalAssemblyInfo.cs diff --git a/src/ProtonVPN.Common/Vpn/VpnHost.cs b/src/ProtonVPN.Common/Vpn/VpnHost.cs index 41ca4aafa..18fe208c4 100644 --- a/src/ProtonVPN.Common/Vpn/VpnHost.cs +++ b/src/ProtonVPN.Common/Vpn/VpnHost.cs @@ -78,9 +78,15 @@ private static void AssertIpAddressIsValid(string ip) public override bool Equals(object o) { + if (o == null) + { + return false; + } + VpnHost vpnHost = (VpnHost)o; - return vpnHost != null && Ip == vpnHost.Ip && + return Ip == vpnHost.Ip && (Label == vpnHost.Label || (string.IsNullOrEmpty(Label) && string.IsNullOrEmpty(vpnHost.Label))); + } public override int GetHashCode() diff --git a/src/ProtonVPN.Crypto/X25519KeyGenerator.cs b/src/ProtonVPN.Crypto/X25519KeyGenerator.cs index 4b834230c..41eb851cf 100644 --- a/src/ProtonVPN.Crypto/X25519KeyGenerator.cs +++ b/src/ProtonVPN.Crypto/X25519KeyGenerator.cs @@ -31,7 +31,7 @@ public SecretKey FromEd25519SecretKey(SecretKey secretKey) byte[] secretKeyLast32Bytes = secretKey.Bytes.Skip(secretKey.Bytes.Length - 32).Take(32).ToArray(); byte[] x25519SecretKey; - using (SHA512 shaM = new SHA512Managed()) + using (SHA512 shaM = SHA512.Create()) { x25519SecretKey = shaM.ComputeHash(secretKeyLast32Bytes); } diff --git a/src/ProtonVPN.Translations/ProtonVPN.Translations.csproj b/src/ProtonVPN.Translations/ProtonVPN.Translations.csproj index 168cd7b6f..6582d4816 100644 --- a/src/ProtonVPN.Translations/ProtonVPN.Translations.csproj +++ b/src/ProtonVPN.Translations/ProtonVPN.Translations.csproj @@ -15,7 +15,8 @@ - + + all diff --git a/src/ProtonVPN.Translations/TranslationSource.cs b/src/ProtonVPN.Translations/TranslationSource.cs index 27758512d..3cce669d9 100644 --- a/src/ProtonVPN.Translations/TranslationSource.cs +++ b/src/ProtonVPN.Translations/TranslationSource.cs @@ -25,15 +25,16 @@ using System.Windows; using System.Windows.Data; using System.Windows.Markup; -using Huyn.PluralNet; +using ProtonVPN.Translations.Properties; +using ReswPlusLib; namespace ProtonVPN.Translations { public class TranslationSource : INotifyPropertyChanged { - public static TranslationSource Instance { get; } = new TranslationSource(); + public static TranslationSource Instance { get; } = new(); - public string this[string key] => Properties.Resources.ResourceManager.GetString(GetStringName(key), _currentCulture); + public string this[string key] => Resources.ResourceManager.GetString(GetStringName(key), _currentCulture); private CultureInfo _currentCulture = CultureInfo.CurrentUICulture; @@ -66,7 +67,7 @@ public string GetPlural(string key, decimal number) ResetPluralProvider(); } - return Properties.Resources.ResourceManager.GetPlural(GetStringName(key), number); + return Resources.ResourceManager.GetPlural(GetStringName(key), Convert.ToDouble(number)); } private void ResetPluralProvider() diff --git a/src/Update/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs b/src/Update/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs index eb1bf0f30..5a82a6a6c 100644 --- a/src/Update/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs +++ b/src/Update/ProtonVPN.Update/Files/Validatable/FileCheckSum.cs @@ -38,8 +38,8 @@ public FileCheckSum(string filename) public async Task Value() { - using var stream = new FileStream(_filename, FileMode.Open, FileAccess.Read, FileShare.Read, Config.FILE_BUFFER_SIZE, true); - using var sha512 = new SHA512CryptoServiceProvider(); + using FileStream stream = new(_filename, FileMode.Open, FileAccess.Read, FileShare.Read, Config.FILE_BUFFER_SIZE, true); + using SHA512 sha512 = SHA512.Create(); byte[] buffer = new byte[Config.FILE_BUFFER_SIZE]; int bytesRead; @@ -50,7 +50,12 @@ public async Task Value() } sha512.TransformFinalBlock(buffer, 0, 0); - return BitConverter.ToString(sha512.Hash).Replace("-", "").ToLowerInvariant(); + if (sha512.Hash != null) + { + return BitConverter.ToString(sha512.Hash).Replace("-", "").ToLowerInvariant(); + } + + return string.Empty; } } } \ No newline at end of file From e1e1da8cbfebe14591b2e18a6d3df3f04636c85f Mon Sep 17 00:00:00 2001 From: proton-ci Date: Mon, 3 Apr 2023 06:03:49 +0000 Subject: [PATCH 26/39] i18n: Upgrade translations from crowdin (e04ae450). --- .../Properties/Strings.resx | 2 +- .../Properties/.locale-state.metadata | 2 +- .../Properties/Resources.be-BY.resx | 58 ++++++---- .../Properties/Resources.cs-CZ.resx | 58 ++++++---- .../Properties/Resources.de-DE.resx | 58 ++++++---- .../Properties/Resources.en-US.resx | 16 +++ .../Properties/Resources.es-419.resx | 58 ++++++---- .../Properties/Resources.es-ES.resx | 62 ++++++---- .../Properties/Resources.fa-IR.resx | 16 +++ .../Properties/Resources.fr-FR.resx | 20 +++- .../Properties/Resources.hr-HR.resx | 16 +++ .../Properties/Resources.id-ID.resx | 56 +++++---- .../Properties/Resources.it-IT.resx | 92 +++++++++------ .../Properties/Resources.nl-NL.resx | 46 +++++--- .../Properties/Resources.pl-PL.resx | 62 ++++++---- .../Properties/Resources.pt-BR.resx | 66 +++++++---- .../Properties/Resources.pt-PT.resx | 16 +++ .../Properties/Resources.ro-RO.resx | 58 ++++++---- .../Properties/Resources.ru-RU.resx | 96 +++++++++------- .../Properties/Resources.tr-TR.resx | 74 +++++++----- .../Properties/Resources.uk-UA.resx | 108 ++++++++++-------- 21 files changed, 672 insertions(+), 368 deletions(-) diff --git a/src/ProtonVPN.Resources/Properties/Strings.resx b/src/ProtonVPN.Resources/Properties/Strings.resx index 80e918df5..7fe64a556 100644 --- a/src/ProtonVPN.Resources/Properties/Strings.resx +++ b/src/ProtonVPN.Resources/Properties/Strings.resx @@ -133,7 +133,7 @@ English - Latinoamérica + Español (Latinoamérica) Español (España) diff --git a/src/ProtonVPN.Translations/Properties/.locale-state.metadata b/src/ProtonVPN.Translations/Properties/.locale-state.metadata index bf7850305..f2770e5dd 100644 --- a/src/ProtonVPN.Translations/Properties/.locale-state.metadata +++ b/src/ProtonVPN.Translations/Properties/.locale-state.metadata @@ -1,4 +1,4 @@ { "project": "windows-vpn", - "locale": "0ea2cf125f4ad5998bcff415bec0ccb648532265" + "locale": "2be72f1f0bf4b56b283f77f5cc783bde790b0045" } \ No newline at end of file diff --git a/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx b/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx index 12a5b3964..32d077057 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx @@ -352,7 +352,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Для поўнага завяршэння працэсу абнаўлення, праграма часова адлучыцца ад сервера і адключыць пастаянны Kill Switch, калі што-небудзь працуе з гэтага. Вы сапраўды хочаце працягнуць? The question displayed when trying to update the app while connected to VPN @@ -1570,7 +1570,7 @@ Гэты крок зойме ўсяго некалькі хвілін. Пасля гэтага ў вас будзе магчымасць увайсці і абараніць усе вашы прылады. - Thanks for upgrading + Дзякуй, што палепшылі The title to thank the user for upgrading to Professional/Visionary plan. @@ -1622,7 +1622,7 @@ Некаторыя кампаненты Proton VPN могуць быць заблакіраваны або адключаны, што перашкаджае вам падлучыцца. Націсніце на кнопку "Уключыць", каб выправіць гэта.<LineBreak/>Звярніце ўвагу, што для гэтай аперацыі патрабуюцца правы адміністратара. - Disable kill switch + Адключыць Kill Switch The text on Disable button in Disconnect modal window @@ -1638,7 +1638,7 @@ The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Kill Switch абараняе ваш IP, блакіруючы ўсе злучэнні. У выпадку ўзнікнення праблем вы можаце адключыць Kill Switch. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1694,10 +1694,10 @@ Выхад з праграмы прывядзе да адлучэння ад VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Kill Switch блакіруе ўсе злучэнні, каб пазбегнуць уцечкі вашых даных. Выхад з праграмы прывядзе да адключэння Kill Switch. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + Пастаянны Kill Switch уключаны. Выхад з праграмы заблакіруе ўсе выходныя злучэнні пакуль Proton VPN не падлучыцца зноў. Антыспамавая праверка @@ -1706,10 +1706,10 @@ Відавочна, што ваш сістэмны гадзіннік не сінхранізуецца, што можа перашкаджаць паспяховаму злучэнню з VPN. Паглядзіце <Hyperlink Command="{Binding OpenKbArticleCommand}">тут</Hyperlink> для атрымання дадатковай інфармацыі. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Калі па якой-небудзь прычыне VPN не будзе працаваць, то пастаянны Kill Switch будзе блакіраваць любыя спробы злучэння з інтэрнэтам. - Enable Permanent kill switch? + Уключыць пастаянны Kill Switch? Зразумела @@ -1756,7 +1756,7 @@ The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Звярніце ўвагу, што Kill Switch зараз уключаны. Абнаўленне або выхад з праграмы адключыць яго. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1783,7 +1783,7 @@ Зразумела - For Split Tunneling to function properly, you must disable kill switch. + Для правільнага функцыянавання Split Tunneling, адключыце Kill Switch. Сотні сервераў у 55 краінах @@ -1938,7 +1938,8 @@ Выпраўце ваша ўсталяванне. - Kill switch + Kill Switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Ліцэнзія @@ -1964,7 +1965,7 @@ The text on Login button in Login window (logs in the user) - Kill switch is currently active + Kill Switch зараз актыўны The text displayed on the login window when user was force logged out while kill switch is active @@ -2157,6 +2158,10 @@ Ваша падпіска на тарыфны план VPN пратэрмінавана The title of the Subscription Expired notification + + Перазапусціць + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Што новага The text of What's new hyperlink in Update flash notification (opens About window) @@ -2464,10 +2469,12 @@ The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Kill Switch выключаны + The text for the clickable option to disable the kill switch feature. - Kill switch On + Kill Switch уключаны + The text for the clickable option to enable the kill switch feature. Даведацца больш @@ -2482,7 +2489,8 @@ Блакіраваць шкодныя праграмы, праграмы сачэння і рэкламу - Permanent kill switch + Пастаянны Kill Switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Перанакіраванне партоў выключана @@ -2510,7 +2518,7 @@ - Advertisement websites use cookies and trackers to target you. + Рэкламныя вэб-сайты выкарыстоўваюць файлы cookie і праграмы сачэння, каб прааналізаваць вашы перавагі. @@ -2518,7 +2526,7 @@ - Estimated size of ads, trackers, and malware that NetShield has blocked. + Прыблізны аб'ём рэкламы, праграм сачэння і шкодных праграм, якія NetShield заблакіраваў. @@ -2526,7 +2534,7 @@ - Trackers are third-party websites that collect, store, and sell information about your web activity. + Праграмы сачэння (трэкеры) - гэта праграмнае забеспячэнне старонніх вэб-сайтаў, якія збіраюць, захоўваюць і прадаюць інфармацыю вашай актыўнасці ў інтэрнэце. @@ -2748,7 +2756,7 @@ The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Выключэнне праграм або IP-адрасоў з трафіка VPN або выключэнне толькі вызначаных праграм. Не можа быць уключана разам з Kill Switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2840,6 +2848,14 @@ Падлучэнне The title of Connection tab of Settings window + + Аўтаматычныя абнаўленні + The label for Automatic updates toggle switch in General tab of Settings window + + + Аўтаматычна правяраць і ўсталёўваць абнаўленні для Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Падлучацца пры запуску праграмы The label for Connect on boot combo box in General tab of Settings window @@ -2922,11 +2938,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Kill Switch актываваны! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Kill Switch блакіруе ўсе злучэнні, каб пазбегнуць уцечкі вашых даных. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon diff --git a/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx b/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx index 473136be2..0be62f9eb 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx @@ -352,7 +352,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Pro dokončení aktualizace se Proton VPN dočasně odpojí a Trvalý Kill Switch se vypne, pokud je aktivní. Chcete pokračovat? The question displayed when trying to update the app while connected to VPN @@ -1570,7 +1570,7 @@ Tento krok zabere jen několik minut. Poté se budete moci přihlásit a chránit všechna svá zařízení. - Thanks for upgrading + Děkujeme za navýšení The title to thank the user for upgrading to Professional/Visionary plan. @@ -1622,7 +1622,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Některé součásti Proton VPN mohou být blokovány nebo zakázány, což vám znemožní připojení. Kliknutím na Povolit to opravíte.<LineBreak/>Všimněte si, že tato operace vyžaduje oprávnění správce. - Disable kill switch + Vypnout Kill Switch The text on Disable button in Disconnect modal window @@ -1638,7 +1638,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Kill Switch chrání vaši IP adresu blokováním všech připojení. V případě potíží můžete Kill Switch vypnout. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1694,10 +1694,10 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Ukončením aplikace se odpojíte od sítě VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Funkce Kill Switch blokuje všechna připojení, aby nedošlo k úniku dat. Ukončením aplikace se Kill Switch vypne. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + Funkce Trvalý Kill Switch je zapnuta. Ukončení aplikace zablokuje všechna odchozí spojení, dokud se Proton VPN znovu nepřipojí. CAPTCHA @@ -1706,10 +1706,10 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Zdá se, že vaše systémové hodiny nejsou synchronizovány, což může bránit úspěšnému připojení k síti VPN. Podívejte se prosím <Hyperlink Command="{Binding OpenKbArticleCommand}">zde</Hyperlink> pro více informací. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + S funkcí Trvalý Kill Switch nebudete mít přístup k internetu, pokud se VPN z jakéhokoli důvodu odpojí. - Enable Permanent kill switch? + Zapnout Trvalý Kill Switch? Rozumím @@ -1756,7 +1756,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Pamatujte, že je Kill Switch zapnut. Aktualizací nebo ukončením aplikace jej vypnete. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1783,7 +1783,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Rozumím - For Split Tunneling to function properly, you must disable kill switch. + Aby fungoval Split Tunneling správně, je nutné vypnout funkci Kill Switch. Stovky serverů v 55 zemích @@ -1938,7 +1938,8 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Opravte svou instalaci. - Kill switch + Kill Switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licence @@ -1964,7 +1965,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te The text on Login button in Login window (logs in the user) - Kill switch is currently active + Kill Switch je momentálně zapnutý The text displayed on the login window when user was force logged out while kill switch is active @@ -2157,6 +2158,10 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Vaše VPN předplatné vypršelo The title of the Subscription Expired notification + + Restartovat + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Co je nového The text of What's new hyperlink in Update flash notification (opens About window) @@ -2464,10 +2469,12 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Kill Switch vyp. + The text for the clickable option to disable the kill switch feature. - Kill switch On + Kill Switch zap. + The text for the clickable option to enable the kill switch feature. Více informací @@ -2482,7 +2489,8 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Blokovat malware, reklamy & sledovače - Permanent kill switch + Trvalý Kill Switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Přesměrování portů vypnuto @@ -2510,7 +2518,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te - Advertisement websites use cookies and trackers to target you. + Reklamní webové stránky používají soubory cookie a sledovací prvky, aby na vás mohly cílit. @@ -2518,7 +2526,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te - Estimated size of ads, trackers, and malware that NetShield has blocked. + Přibližný počet reklam, trackerů a malwaru, který NetShield zablokoval. @@ -2526,7 +2534,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te - Trackers are third-party websites that collect, store, and sell information about your web activity. + Trackery jsou stránky třetích stran, které sbírají, ukládají a prodávají informace o vaší webové aktivitě. @@ -2748,7 +2756,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Vyloučit aplikaci nebo IP adresu z provozu VPN nebo zahrnout pouze konkrétní aplikace. Nelze zapnout společně s funkcí Kill Switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2840,6 +2848,14 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Připojení The title of Connection tab of Settings window + + Automatické aktualizace + The label for Automatic updates toggle switch in General tab of Settings window + + + Automaticky kontrolovat a instalovat aktualizace Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Připojení při spuštění aplikace The label for Connect on boot combo box in General tab of Settings window @@ -2922,11 +2938,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Kill Switch zapnut! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Kill Switch blokuje všechna připojení, aby nedošlo k úniku dat. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon diff --git a/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx b/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx index 893d6ff00..5906f3a66 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx @@ -328,7 +328,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Um den Aktualisierungsprozess abzuschließen, wird Proton VPN die Verbindung vorübergehend unterbrechen und den permanenten Kill Switch deaktivieren, falls einer dieser Schalter aktiv ist. Möchtest du fortfahren? The question displayed when trying to update the app while connected to VPN @@ -1546,7 +1546,7 @@ Dieser Schritt dauert nur wenige Minuten. Danach kannst du dich anmelden und alle deine Geräte schützen. - Thanks for upgrading + Vielen Dank für das Upgrade The title to thank the user for upgrading to Professional/Visionary plan. @@ -1598,7 +1598,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Einige Komponenten von Proton VPN sind möglicherweise gesperrt oder deaktiviert, sodass du keine Verbindung herstellen kannst. Klicke auf „Aktivieren“, um dies zu beheben.<LineBreak/>Beachte, dass für diesen Vorgang Admin-Rechte erforderlich sind. - Disable kill switch + Kill Switch deaktivieren The text on Disable button in Disconnect modal window @@ -1614,7 +1614,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Kill Switch schützt deine IP, indem es alle Verbindungen unterbindet. Im Falle von Problemen kannst du Kill Switch deaktivieren. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1670,10 +1670,10 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Wenn du die Anwendung beendest, wird die Verbindung zum VPN getrennt. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Kill Switch sperrt alle Verbindungen, um zu verhindern, dass deine Daten nach außen gelangen. Das Beenden der Anwendung beendet Kill Switch. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + „Permanent Kill Switch“ ist aktiviert. Beim Beenden der Anwendung werden alle ausgehenden Verbindungen unterbunden, bis Proton VPN erneut eine Verbindung hergestellt hat. Menschliche Verifizierung @@ -1682,10 +1682,10 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Deine Systemuhr (Datum/Uhrzeit) scheint nicht mehr synchron zu sein, was eine erfolgreiche Verbindung mit dem VPN verhindern könnte. Bitte lies <Hyperlink Command="{Binding OpenKbArticleCommand}">hier</Hyperlink> für weitere Informationen. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Mit „Permanent Kill Switch“ kannst du nicht auf das Internet zugreifen, wenn zum VPN aus irgendeinem Grund keine Verbindung besteht. - Enable Permanent kill switch? + Permanent Kill Switch aktivieren? Verstanden @@ -1732,7 +1732,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Beachte, dass Kill Switch aktiviert ist. Durch das Aktualisieren oder Beenden der Anwendung wird dieser deaktiviert. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1759,7 +1759,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Verstanden - For Split Tunneling to function properly, you must disable kill switch. + Damit „Split-Tunneling“ richtig funktioniert, musst du „Kill Switch“ deaktivieren. Hunderte von Servern in 55 Ländern @@ -1914,7 +1914,8 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Bitte repariere deine Installation. - Kill switch + Kill Switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Lizenz @@ -1940,7 +1941,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The text on Login button in Login window (logs in the user) - Kill switch is currently active + Kill Switch ist derzeit aktiv The text displayed on the login window when user was force logged out while kill switch is active @@ -2133,6 +2134,10 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Dein VPN-Abonnement ist abgelaufen The title of the Subscription Expired notification + + Neu starten + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Neue Funktionen The text of What's new hyperlink in Update flash notification (opens About window) @@ -2434,10 +2439,12 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Kill Switch - Aus + The text for the clickable option to disable the kill switch feature. - Kill switch On + Kill Switch - Ein + The text for the clickable option to enable the kill switch feature. Mehr erfahren @@ -2452,7 +2459,8 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Schadsoftware, Werbung & Tracker blockieren - Permanent kill switch + Permanent Kill Switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Port-Weiterleitung (Aus) @@ -2480,7 +2488,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Advertisement websites use cookies and trackers to target you. + Werbe-Websites verwenden Cookies und Tracker, um dich anzusprechen. @@ -2488,7 +2496,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Estimated size of ads, trackers, and malware that NetShield has blocked. + Geschätzte Größe der Werbung, Tracker und Malware, die NetShield blockiert hat. @@ -2496,7 +2504,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Trackers are third-party websites that collect, store, and sell information about your web activity. + Tracker sind Websites von Drittanbietern, die Informationen über deine Webaktivitäten sammeln, speichern und verkaufen. @@ -2718,7 +2726,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Schließe eine Anwendung oder eine IP‐Adresse vom VPN‐Verkehr aus oder lasse nur bestimmte Anwendungen zu. Kann nicht in Kombination mit Kill Switch verwendet werden. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2810,6 +2818,14 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Verbindung The title of Connection tab of Settings window + + Automatische Updates + The label for Automatic updates toggle switch in General tab of Settings window + + + Automatisch auf Updates für Proton VPN prüfen und diese installieren. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Beim Starten der App verbinden The label for Connect on boot combo box in General tab of Settings window @@ -2892,11 +2908,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Kill Switch aktiviert! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Kill Switch sperrt alle deine Verbindungen, um die Weitergabe deiner Daten zu verhindern. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon diff --git a/src/ProtonVPN.Translations/Properties/Resources.en-US.resx b/src/ProtonVPN.Translations/Properties/Resources.en-US.resx index bc41a9f97..67e325b74 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.en-US.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.en-US.resx @@ -1915,6 +1915,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. License @@ -2133,6 +2134,10 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Your VPN subscription plan has expired The title of the Subscription Expired notification + + Restart + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + What's new The text of What's new hyperlink in Update flash notification (opens About window) @@ -2435,9 +2440,11 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Kill switch Off + The text for the clickable option to disable the kill switch feature. Kill switch On + The text for the clickable option to enable the kill switch feature. Learn more @@ -2453,6 +2460,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Permanent kill switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Port Forwarding Off @@ -2810,6 +2818,14 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Connection The title of Connection tab of Settings window + + Automatic updates + The label for Automatic updates toggle switch in General tab of Settings window + + + Automatically check for and install updates to Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Connect on app start The label for Connect on boot combo box in General tab of Settings window diff --git a/src/ProtonVPN.Translations/Properties/Resources.es-419.resx b/src/ProtonVPN.Translations/Properties/Resources.es-419.resx index f83647d3f..cdaaa6b7f 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.es-419.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.es-419.resx @@ -328,7 +328,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Para completar el proceso de actualización, Proton VPN se desconectará temporalmente y desactivará el interruptor de apagado permanente si alguno de estos está activo. ¿Desea continuar? The question displayed when trying to update the app while connected to VPN @@ -1546,7 +1546,7 @@ Este paso le llevará sólo unos minutos. Después de eso podrá iniciar sesión y proteger todos sus dispositivos. - Thanks for upgrading + Gracias por actualizar The title to thank the user for upgrading to Professional/Visionary plan. @@ -1598,7 +1598,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas Algunos componentes de Proton VPN pueden estar bloqueados o deshabilitados, lo que le impide conectarse. Haga clic en Habilitar para solucionarlo.<LineBreak/>Tome en cuenta que esta operación requiere privilegios de administrador. - Disable kill switch + Deshabilitar el interruptor de apagado The text on Disable button in Disconnect modal window @@ -1614,7 +1614,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + El interruptor de apagado está protegiendo su IP bloqueando todas las conexiones. En caso de problemas, puede deshabilitarlo. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1670,10 +1670,10 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas Salir de la aplicación le desconectará de la VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + El interruptor de apagado está bloqueando todas las conexiones para evitar fugas de datos. Salir de la aplicación deshabilitará el interruptor. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + El interruptor de apagado permanente está habilitado. Al salir de la aplicación bloqueará todas las conexiones salientes hasta que Proton VPN se conecte de nuevo. Verificación humana @@ -1682,10 +1682,10 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas El reloj de su sistema parece no estar sincronizado lo que podría evitar que la VPN se conecte correctamente. Consulte <Hyperlink Command="{Binding OpenKbArticleCommand}">aquí</Hyperlink> para más información. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Con el interruptor de apagado permanente, si la VPN no está conectada por alguna razón, no podrá acceder a Internet. - Enable Permanent kill switch? + ¿Habilitar el interruptor de apagado permanente? Entendido @@ -1732,7 +1732,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Tenga en cuenta que el interruptor de apagado está activado. Actualizar o salir de la aplicación lo desactivará. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1759,7 +1759,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas Entendido - For Split Tunneling to function properly, you must disable kill switch. + Para que la tunelización dividida funcione correctamente, debe deshabilitar el interruptor de apagado. Cientos de servidores en 55 países @@ -1914,7 +1914,8 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas Por favor, repare su instalación. - Kill switch + Interruptor de apagado + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licencia @@ -1940,7 +1941,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas The text on Login button in Login window (logs in the user) - Kill switch is currently active + El interruptor de apagado está activado The text displayed on the login window when user was force logged out while kill switch is active @@ -2133,6 +2134,10 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas Su suscripción de VPN ha expirado The title of the Subscription Expired notification + + Reiniciar + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Novedades The text of What's new hyperlink in Update flash notification (opens About window) @@ -2434,10 +2439,12 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Interruptor de apagado desactivado + The text for the clickable option to disable the kill switch feature. - Kill switch On + Interruptor de apagado activado + The text for the clickable option to enable the kill switch feature. Más información @@ -2452,7 +2459,8 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas Bloquear malware, anuncios y rastreadores - Permanent kill switch + Interruptor de apagado permanente + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Reenvío de puertos activado @@ -2480,7 +2488,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas - Advertisement websites use cookies and trackers to target you. + Los sitios web de publicidad usan cookies y rastreadores para dirigirse a usted. @@ -2488,7 +2496,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas - Estimated size of ads, trackers, and malware that NetShield has blocked. + Tamaño estimado de anuncios, rastreadores y malware que NetShield ha bloqueado. @@ -2496,7 +2504,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas - Trackers are third-party websites that collect, store, and sell information about your web activity. + Los rastreadores son sitios web de terceros que recolectan, almacenan y venden información acerca de su actividad en línea. @@ -2718,7 +2726,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Excluye una aplicación o una dirección IP del tráfico VPN o incluye solo aplicaciones específicas. No se puede activar junto con el interruptor de apagado. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2810,6 +2818,14 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas Conexión The title of Connection tab of Settings window + + Actualizaciones automáticas + The label for Automatic updates toggle switch in General tab of Settings window + + + Verifica automáticamente para instalar actualizaciones de Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Conectar al iniciar la app The label for Connect on boot combo box in General tab of Settings window @@ -2892,11 +2908,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + ¡Interruptor de apagado habilitado! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + El interruptor de apagado está bloqueando todas las conexiones para evitar que se filtren sus datos. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon diff --git a/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx b/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx index a4e94241d..1d09438d1 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx @@ -328,7 +328,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Para completar el proceso de actualización, Proton VPN desconectará temporalmente y desactivará Kill Switch (interruptor de bloqueo) permanente si alguno de ellos está activo. ¿Deseas continuar? The question displayed when trying to update the app while connected to VPN @@ -1546,7 +1546,7 @@ Este paso te llevará sólo unos minutos. Después de eso podrás iniciar sesión y proteger todos tus dispositivos. - Thanks for upgrading + Gracias por actualizar The title to thank the user for upgrading to Professional/Visionary plan. @@ -1598,7 +1598,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run Algunos componentes de Proton VPN pueden estar bloqueados o deshabilitados, impidiéndole conectarse. Haga clic en Habilitar para solucionarlo.<LineBreak/>Tenga en cuenta que esta operación requiere privilegios de administrador. - Disable kill switch + Deshabilitar Kill Switch The text on Disable button in Disconnect modal window @@ -1614,7 +1614,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Kill Switch está protegiendo tu IP bloqueando todas las conexiones. En caso de problemas puedes desactivar Kill Switch. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1670,10 +1670,10 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run Salir de la aplicación te desconectará de la VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Kill Switch está bloqueando todas las conexiones para evitar fugas de datos. Salir de la aplicación deshabilitará Kill Switch. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + La funcionalidad Kill Switch permanente está activado. Al salir de la aplicación se bloquearán todas las conexiones salientes hasta que Proton VPN se conecte de nuevo. Verificación humana @@ -1682,10 +1682,10 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run El reloj de su sistema parece estar desincronizado, lo que podría impedir que la VPN se conecte con éxito. Por favor, consulte <Hyperlink Command="{Binding OpenKbArticleCommand}">aquí</Hyperlink> para más información. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Con Kill Switch permanente, si la VPN no está conectada por algún motivo, no podrás acceder a internet. - Enable Permanent kill switch? + ¿Habilitar Kill Switch permanente? Entendido @@ -1732,7 +1732,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Ten en cuenta que Kill Switch está activado. Actualizar o salir de la aplicación lo desactivará. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1759,7 +1759,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run Entendido - For Split Tunneling to function properly, you must disable kill switch. + Para que la tunelización dividida funcione correctamente, debes deshabilitar Kill Switch. Cientos de servidores en 55 paises @@ -1852,7 +1852,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run Proton VPN no pudo conectarse porque el adaptador de red TUN ya está en uso. Por favor, desconecte cualquier VPN activa y vuelva a intentarlo. Alternativamente, cambie al adaptador TAP (puede volver a cambiar a TUN en la configuración avanzada). - Proton VPN could not connect because a WireGuard network adapter is already in use. Please disconnect any active VPNs and retry. Alternatively, you can switch protocols in the Advanced Settings. + Proton VPN no ha podido conectarse porque un adaptador de red de WireGuard ya está en uso. Desconecta cualquier VPN activa y vuelve a intentarlo. Alternativamente, cambia entre los protocolos en los ajustes avanzados. Cancelar @@ -1914,7 +1914,8 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run Por favor, repare su instalación. - Kill switch + Kill Switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licencia @@ -1940,7 +1941,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run The text on Login button in Login window (logs in the user) - Kill switch is currently active + Kill Switch está actualmente activo. The text displayed on the login window when user was force logged out while kill switch is active @@ -2133,6 +2134,10 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run Tu plan de suscripción VPN ha expirado The title of the Subscription Expired notification + + Reiniciar + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Novedades The text of What's new hyperlink in Update flash notification (opens About window) @@ -2434,10 +2439,12 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Kill Switch desactivado + The text for the clickable option to disable the kill switch feature. - Kill switch On + Kill Switch activado + The text for the clickable option to enable the kill switch feature. Más información @@ -2452,7 +2459,8 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run Bloquear malware, anuncios & rastreadores - Permanent kill switch + Kill Switch permanente + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Redirección de puertos desactivada @@ -2480,7 +2488,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run - Advertisement websites use cookies and trackers to target you. + Los sitios web de publicidad usan cookies y rastreadores para dirigirse a ti. @@ -2488,7 +2496,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run - Estimated size of ads, trackers, and malware that NetShield has blocked. + Tamaño estimado de anuncios, rastreadores y malware bloqueado por NetShield. @@ -2496,7 +2504,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run - Trackers are third-party websites that collect, store, and sell information about your web activity. + Los rastreadores son sitios web de terceros que recolectan, almacenan y venden información acerca de tu actividad en línea. @@ -2718,7 +2726,7 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Excluir una aplicación o una dirección IP del tráfico VPN o incluir solo aplicaciones específicas. No se puede activar junto con Kill Switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2810,6 +2818,14 @@ Por favor, sigue <Hyperlink Command="{Binding OpenArticleCommand}"><Run Conexión The title of Connection tab of Settings window + + Actualizaciones automáticas + The label for Automatic updates toggle switch in General tab of Settings window + + + Verifica automáticamente para instalar actualizaciones de Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Conectar al iniciar la aplicación The label for Connect on boot combo box in General tab of Settings window @@ -2892,11 +2908,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Kill Switch activado The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Kill Switch bloquea todas las conexiones para evitar que se filtren tus datos. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon @@ -2915,7 +2931,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Servidores gratuitos - Free servers have no data limit nor network throttling. The speed might be limited only due to the high number of users connected. + Los servidores gratuitos no tienen límite de datos ni de red. La velocidad puede verse limitada solo por la cantidad de usuarios conectados. Información diff --git a/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx b/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx index c4f4ed985..cef521fab 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx @@ -1914,6 +1914,7 @@ Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. گواهینامه @@ -2132,6 +2133,10 @@ اشتراک VPN شما به پایان رسیده است The title of the Subscription Expired notification + + Restart + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + تازه ها چیست The text of What's new hyperlink in Update flash notification (opens About window) @@ -2434,9 +2439,11 @@ Kill switch Off + The text for the clickable option to disable the kill switch feature. Kill switch On + The text for the clickable option to enable the kill switch feature. بیشتر بدانید @@ -2452,6 +2459,7 @@ Permanent kill switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). روشن کردن هدایت درگاه (Port Forwarding) @@ -2809,6 +2817,14 @@ اتصال The title of Connection tab of Settings window + + Automatic updates + The label for Automatic updates toggle switch in General tab of Settings window + + + Automatically check for and install updates to Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + اتصال در باز شدن برنامه The label for Connect on boot combo box in General tab of Settings window diff --git a/src/ProtonVPN.Translations/Properties/Resources.fr-FR.resx b/src/ProtonVPN.Translations/Properties/Resources.fr-FR.resx index b412d74c3..04b51e1e1 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.fr-FR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.fr-FR.resx @@ -1759,7 +1759,7 @@ Nous vous invitons à suivre <Hyperlink Command="{Binding OpenArticleCommand} J'ai compris - Pour que le split tunneling fonctionne correctement, vous devez désactiver la fonctionnalité Arrêt d'urgence (kill switch). + Pour que Split tunneling fonctionne correctement, vous devez désactiver la fonctionnalité Arrêt d'urgence (kill switch). Des centaines de serveurs dans 55 pays @@ -1915,6 +1915,7 @@ Nous vous invitons à suivre <Hyperlink Command="{Binding OpenArticleCommand} Arrêt d'urgence (kill switch) + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licence @@ -2133,6 +2134,10 @@ Nous vous invitons à suivre <Hyperlink Command="{Binding OpenArticleCommand} Votre abonnement VPN a expiré. The title of the Subscription Expired notification + + Redémarrer + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Nouveautés The text of What's new hyperlink in Update flash notification (opens About window) @@ -2435,9 +2440,11 @@ Nous vous invitons à suivre <Hyperlink Command="{Binding OpenArticleCommand} Arrêt d'urgence (kill switch) désactivé + The text for the clickable option to disable the kill switch feature. Arrêt d'urgence (kill switch) activé + The text for the clickable option to enable the kill switch feature. En savoir plus @@ -2453,6 +2460,7 @@ Nous vous invitons à suivre <Hyperlink Command="{Binding OpenArticleCommand} Arrêt d'urgence (kill switch) permanent + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Redirection de port désactivée @@ -2484,7 +2492,7 @@ Nous vous invitons à suivre <Hyperlink Command="{Binding OpenArticleCommand} - Bande passante économisée + Données enregistrées @@ -2810,6 +2818,14 @@ Nous vous invitons à suivre <Hyperlink Command="{Binding OpenArticleCommand} Connexion The title of Connection tab of Settings window + + Mises à jour automatiques + The label for Automatic updates toggle switch in General tab of Settings window + + + Vérifier et installer automatiquement les mises à jour pour Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Se connecter au démarrage de l'application The label for Connect on boot combo box in General tab of Settings window diff --git a/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx b/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx index a1224ca88..d30b5f22d 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx @@ -1927,6 +1927,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licenca @@ -2145,6 +2146,10 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Vaš VPN pretplatnički plan je istekao The title of the Subscription Expired notification + + Restart + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Što je novo The text of What's new hyperlink in Update flash notification (opens About window) @@ -2450,9 +2455,11 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Kill switch Off + The text for the clickable option to disable the kill switch feature. Kill switch On + The text for the clickable option to enable the kill switch feature. Saznajte više @@ -2468,6 +2475,7 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Permanent kill switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Port Forwarding je isključen @@ -2825,6 +2833,14 @@ Please follow <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te Veza The title of Connection tab of Settings window + + Automatic updates + The label for Automatic updates toggle switch in General tab of Settings window + + + Automatically check for and install updates to Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Connect on app start The label for Connect on boot combo box in General tab of Settings window diff --git a/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx b/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx index 6b1a00485..96e13254a 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx @@ -316,7 +316,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Untuk merampungkan proses pembaruan, sambungan Proton VPN akan terputus untuk sementara dan seluruh kill switch permanen yang aktif akan dinonaktifkan. Apakah Anda ingin melanjutkan? The question displayed when trying to update the app while connected to VPN @@ -1534,7 +1534,7 @@ Langkah ini akan memakan waktu beberapa menit. Setelahnya, Anda akan dapat masuk dan melindungi seluruh perangkat Anda. - Thanks for upgrading + Terima kasih karena telah meningkatkan paket Anda The title to thank the user for upgrading to Professional/Visionary plan. @@ -1586,7 +1586,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Sebagian komponen Proton VPN tampaknya sedang diblokir atau dinonaktifkan, yang mencegah Anda untuk dapat terhubung ke dalam jaringan kami. Klik tombol Aktifkan untuk mengatasi masalah ini.<LineBreak/>Tindakan ini memerlukan hak akses Admin. - Disable kill switch + Nonaktifkan kill switch The text on Disable button in Disconnect modal window @@ -1602,7 +1602,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Kill switch melindungi IP Anda dengan memblokir seluruh koneksi yang ada. Apabila Anda menemui suatu masalah, Anda dapat menonaktifkan Kill Switch. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1658,10 +1658,10 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Dengan keluar dari aplikasi, Anda akan terputus dari jaringan VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Kill switch memblokir seluruh koneksi yang ada untuk mencegah kebocoran data Anda. Dengan keluar dari aplikasi, kill switch akan dinonaktifkan. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + Kill switch permanen diaktifkan. Apabila Anda keluar dari aplikasi, seluruh sambungan internet yang ada akan dinonaktifkan hingga Anda kembali terhubung dengan Proton VPN. Verifikasi manusia @@ -1670,10 +1670,10 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Tanggal dan waktu sistem Anda tidak sesuai dengan tanggal dan waktu saat ini, yang dapat mencegah Anda untuk terhubung ke jaringan kami. Silakan lihat <Hyperlink Command="{Binding OpenKbArticleCommand}">artikel ini</Hyperlink> untuk informasi lebih lanjut. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Dengan kill switch permanen, apabila VPN Anda tidak terhubung dengan alasan apapun, Anda tidak akan dapat mengakses Internet. - Enable Permanent kill switch? + Aktifkan kill switch permanen? Mengerti @@ -1720,7 +1720,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Kill switch sedang aktif. Memperbarui atau menutup aplikasi akan menonaktifkan kill switch. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1747,7 +1747,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Mengerti - For Split Tunneling to function properly, you must disable kill switch. + Agar Split Tunneling dapat berfungsi sebagaimana mestinya, Anda harus menonaktifkan kill switch. Ratusan server di 55 negara @@ -1903,6 +1903,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Lisensi @@ -1928,7 +1929,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The text on Login button in Login window (logs in the user) - Kill switch is currently active + Kill switch sedang aktif The text displayed on the login window when user was force logged out while kill switch is active @@ -2121,6 +2122,10 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Paket langganan VPN Anda telah berakhir The title of the Subscription Expired notification + + Nyalakan ulang + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Apa yang baru The text of What's new hyperlink in Update flash notification (opens About window) @@ -2419,10 +2424,12 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Nonaktifkan kill switch + The text for the clickable option to disable the kill switch feature. - Kill switch On + Aktifkan kill switch + The text for the clickable option to enable the kill switch feature. Pelajari lebih lanjut @@ -2437,7 +2444,8 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Blokir malware, iklan, & pelacak - Permanent kill switch + Kill switch permanen + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Port Forwarding Nonaktif @@ -2465,7 +2473,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Advertisement websites use cookies and trackers to target you. + Situs iklan menggunakan cookie dan pelacak untuk mengincar Anda. @@ -2473,7 +2481,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Estimated size of ads, trackers, and malware that NetShield has blocked. + Perkiraan ukuran iklan, pelacak, dan malware yang telah diblokir oleh NetShield. @@ -2481,7 +2489,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Trackers are third-party websites that collect, store, and sell information about your web activity. + Pelacak (tracker) merupakan situs web pihak ketiga yang memperoleh, menyimpan, dan menjual informasi penjelajahan internet Anda. @@ -2703,7 +2711,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Kecualikan aplikasi atau alamat IP tertentu dari lalu lintas VPN atau sertakan hanya aplikasi tertentu. Fitur ini tidak dapat diaktifkan bersamaan dengan kill switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2795,6 +2803,14 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Koneksi The title of Connection tab of Settings window + + Pembaruan otomatis + The label for Automatic updates toggle switch in General tab of Settings window + + + Memeriksa dan memasang pembaruan Proton VPN secara otomatis. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Hubungkan pada saat aplikasi dijalankan The label for Connect on boot combo box in General tab of Settings window @@ -2877,11 +2893,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Kill switch diaktifkan! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Kill switch sedang memblokir seluruh koneksi yang ada untuk menghindari kebocoran data. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon diff --git a/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx b/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx index 663ff59ce..dfa4cb752 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx @@ -308,7 +308,7 @@ The header of Help menu item in the main app window (opens help web page) - Sign out + Esci The header of Logout menu item in the main app window (logs out current user) @@ -324,11 +324,11 @@ The header of Settings menu item in the main app window (opens Settings window) - Signing out of the application will disconnect the active VPN connection. Do you want to continue? + Uscendo dall'applicazione, tutte le connessioni VPN attive verranno chiuse. Continuare? The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Per completare il processo di aggiornamento, Proton VPN si disconnetterà temporaneamente e disattiverà Kill Switch Permanente se attivo. Vuoi continuare? The question displayed when trying to update the app while connected to VPN @@ -1537,16 +1537,16 @@ Assegna connessioni VPN - Sign in again + Accedi di nuovo Per iniziare il tuo viaggio in Proton VPN, assegna le connessioni VPN al tuo account o a qualsiasi altro account secondario. - This step will take just a few minutes. After that you will be able to sign in and protect all your devices. + Questo passaggio richiederà solo pochi minuti. Dopodiché sarai in grado di accedere e proteggere tutti i tuoi dispositivi. - Thanks for upgrading + Grazie per l'aggiornamento The title to thank the user for upgrading to Professional/Visionary plan. @@ -1598,7 +1598,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t Alcuni componenti di Proton VPN potrebbero essere bloccati o disabilitati, impedendoti di connetterti. Fare clic su Abilita per risolvere.<LineBreak/>Questa operazione richiede i privilegi di Amministratore. - Disable kill switch + Disabilita kill switch The text on Disable button in Disconnect modal window @@ -1614,7 +1614,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Kill Switch protegge il tuo IP bloccando tutte le connessioni. In caso di problemi puoi disabilitare kill switch. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1670,10 +1670,10 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t Uscire dall'applicazione ti disconnetterà dalla VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Kill Switch sta bloccando tutte le connessioni per evitare perdite di dati. Uscire dall'applicazione disattiverà kill switch. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + Kill Switch permanente è abilitato. L'uscita dell'applicazione bloccherà tutte le connessioni in uscita fino a quando Proton VPN non sarà nuovamente connesso. Verifica umana @@ -1682,10 +1682,10 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t L'orologio del tuo sistema sembra non essere sincronizzato, il che potrebbe impedire alla VPN di connettersi correttamente. Consulta <Hyperlink Command="{Binding OpenKbArticleCommand}">qui</Hyperlink> per maggiori informazioni. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Con Kill Switch permanente, se la VPN non è connessa, non sarà possibile accedere a Internet. - Enable Permanent kill switch? + Abilitare kill switch permanente? Ho capito @@ -1732,7 +1732,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Kill switch è abilitato. Aggiornare o uscire dall'applicazione lo disattiverà. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1759,7 +1759,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t OK - For Split Tunneling to function properly, you must disable kill switch. + Per far funzionare correttamente Split Tunneling, è necessario disabilitare kill switch. Centinaia di server in 55 paesi @@ -1915,17 +1915,18 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licenza The title of License window - Your session has expired. Please sign in again. + La tua sessione è scaduta. Per favore riprova l'accesso. The message displayed in Login window when expired session is detected - Invalid refresh token, please sign in again. + Token di aggiornamento non valido, accedi di nuovo. The text displayed after failed login attempt @@ -1936,11 +1937,11 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t Autentica - Sign in + Accedi The text on Login button in Login window (logs in the user) - Kill switch is currently active + Kill Switch è attualmente attivo The text displayed on the login window when user was force logged out while kill switch is active @@ -1948,7 +1949,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t The label for Password text box in Login window - Secure internet anywhere + Internet sicuro ovunque The text displayed on the bottom of Login window while logging in @@ -2070,7 +2071,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t Non mostrare nuovamente - Learn more + Scopri di più Secure Core offre il livello più elevato di sicurezza e privacy, ma potrebbe ridurre la velocità del tuo Internet. Se necessiti di maggiori prestazioni, puoi disabilitare Secure Core. @@ -2133,6 +2134,10 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t Il tuo piano di abbonamento VPN è scaduto The title of the Subscription Expired notification + + Riavvia + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Cosa c'è di nuovo The text of What's new hyperlink in Update flash notification (opens About window) @@ -2434,10 +2439,12 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Kill switch Spento + The text for the clickable option to disable the kill switch feature. - Kill switch On + Kill switch Attivo + The text for the clickable option to enable the kill switch feature. Per saperne di più @@ -2452,7 +2459,8 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t Blocca malware, annunci & tracker - Permanent kill switch + Kill switch permanente + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Port Forwarding Disattivato @@ -2470,10 +2478,10 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t EFFETTUA L'UPGRADE - Disables internet if the VPN connection drops to prevent accidental IP leak. + Disabilita internet se la connessione della VPN si interrompe per prevenire eventuali fughe d'indirizzi IP. - Browse the internet without ads and malware. + Naviga su internet evitando malware e pubblicità. Ads blocked @@ -2496,14 +2504,14 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t - Trackers are third-party websites that collect, store, and sell information about your web activity. + I Trackers sono siti di terze parti che collezionano, memorizzano e vendono informazioni riguardanti la tua attività sul web. Se i siti web non si caricano, prova a disabilitare NetShield - Speed up your torrenting and online gaming by allowing supported local apps to be reachable from the internet. + Velocizza i tuoi torrent e giochi online consentendo alle app locali supportate di essere raggiungibili da internet. Instrada i tuoi dati più sensibili attraverso i nostri server più sicuri in paesi rispettosi della privacy. @@ -2535,7 +2543,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t The name of P2P server feature - Plus server + Server Plus The name of Plus server feature @@ -2612,7 +2620,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t Proton VPN non può connettersi perché il server RPC non è disponibile sul tuo sistema. <Hyperlink Command="{Binding OpenRpcServerUrlCommand}">VIsualizza possibili soluzioni</Hyperlink> - Unfortunately, this server does not support WireGuard. + Sfortunatamente questo server non supporta WireGuard. Aggiungi app @@ -2718,7 +2726,7 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Escludi un'applicazione o un indirizzo IP dal traffico VPN o includi solo applicazioni specifiche. Non può essere attivato insieme al Kill Switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2810,6 +2818,14 @@ Segui le <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="t Connessione The title of Connection tab of Settings window + + Aggiornamenti automatici + The label for Automatic updates toggle switch in General tab of Settings window + + + Automatically check for and install updates to Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Connetti all'avvio dell'app The label for Connect on boot combo box in General tab of Settings window @@ -2892,11 +2908,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Kill Switch attivato! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Kill Switch sta bloccando tutte le connessioni per evitare l'esposizione dei dati. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon @@ -2912,16 +2928,16 @@ This setting instructs the Proton VPN to start automatically when the user logs Posizioni GRATUITE ({0}) - Free servers + Server gratuiti - Free servers have no data limit nor network throttling. The speed might be limited only due to the high number of users connected. + I server gratuiti non hanno limiti di dati e di banda. La loro velocità potrebbe essere limitata a causa dell'alto numero di utenti connessi. - Information + Informazione - Our partners + I nostri partner Posizioni PLUS ({0}) @@ -2933,7 +2949,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Server BASIC ({0}) - Plus servers ({0}) + Server Plus ({0}) Server INTERNI @@ -3003,7 +3019,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Tor - Route your internet traffic through the Tor network. Slower, but more private. + Convoglia tutto il traffico internet attraverso la rete Tor. Più lento, ma più privato. Crea profilo diff --git a/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx b/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx index b4df5dbe5..89ab9a7ff 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx @@ -308,7 +308,7 @@ The header of Help menu item in the main app window (opens help web page) - Sign out + Uitloggen The header of Logout menu item in the main app window (logs out current user) @@ -1537,13 +1537,13 @@ VPN-verbindingen toewijzen - Sign in again + Opnieuw inloggen Om uw reis met Proton VPN te beginnen wijst u VPN-verbindingen toe aan uw account of een ander sub-account. - This step will take just a few minutes. After that you will be able to sign in and protect all your devices. + Deze stap duurt slechts een paar minuten. Daarna kunt u zich inloggen en al uw apparaten beveiligen. Thanks for upgrading @@ -1915,13 +1915,14 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licentie The title of License window - Your session has expired. Please sign in again. + Uw sessie is verlopen. Log opnieuw in. The message displayed in Login window when expired session is detected @@ -1936,7 +1937,7 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these Authenticeren - Sign in + Inloggen The text on Login button in Login window (logs in the user) @@ -1948,7 +1949,7 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these The label for Password text box in Login window - Secure internet anywhere + Overal veilig internet The text displayed on the bottom of Login window while logging in @@ -2070,7 +2071,7 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these Niet meer weergeven - Learn more + Meer informatie Secure Core biedt het hoogste niveau van beveiliging en privacy, maar het kan uw internetsnelheid verlagen. Als u hogere prestaties wilt, kan u Secure Core uitschakelen. @@ -2133,6 +2134,10 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these Uw VPN-abonnement is verlopen The title of the Subscription Expired notification + + Restart + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Wat is er nieuw The text of What's new hyperlink in Update flash notification (opens About window) @@ -2435,9 +2440,11 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these Kill switch Off + The text for the clickable option to disable the kill switch feature. Kill switch On + The text for the clickable option to enable the kill switch feature. Meer informatie @@ -2453,6 +2460,7 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these Permanent kill switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Port Forwarding Uitgeschakeld @@ -2470,7 +2478,7 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these UPGRADEN - Disables internet if the VPN connection drops to prevent accidental IP leak. + Schakelt internet uit als de VPN-verbinding wegvalt om onbedoeld IP-lekken te voorkomen. Browse the internet without ads and malware. @@ -2503,7 +2511,7 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these Als websites niet laden, probeer NetShield dan uit te schakelen - Speed up your torrenting and online gaming by allowing supported local apps to be reachable from the internet. + Versnel uw torrents en online gaming door ondersteunde lokale apps toe te staan bereikbaar te zijn vanaf het internet. Stuur uw meest gevoelige gegevens door onze veiligste servers in privacy-vriendelijke landen. @@ -2535,7 +2543,7 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these The name of P2P server feature - Plus server + Plus-servers The name of Plus server feature @@ -2612,7 +2620,7 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these Proton VPN kan geen verbinding maken omdat de RPC-server niet beschikbaar is op uw systeem. <Hyperlink Command="{Binding OpenRpcServerUrlCommand}">Bekijk mogelijke oplossingen</Hyperlink> - Unfortunately, this server does not support WireGuard. + Helaas ondersteunt deze server WireGuard niet. App toevoegen @@ -2810,6 +2818,14 @@ Volg <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="these Verbinding The title of Connection tab of Settings window + + Automatic updates + The label for Automatic updates toggle switch in General tab of Settings window + + + Automatically check for and install updates to Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Verbinden wanneer app start The label for Connect on boot combo box in General tab of Settings window @@ -2918,10 +2934,10 @@ This setting instructs the Proton VPN to start automatically when the user logs Free servers have no data limit nor network throttling. The speed might be limited only due to the high number of users connected. - Information + Informatie - Our partners + Onze partners PLUS locaties ({0}) @@ -2933,7 +2949,7 @@ This setting instructs the Proton VPN to start automatically when the user logs BASIC-servers ({0}) - Plus servers ({0}) + Plus-servers ({0}) INTERNE servers @@ -3003,7 +3019,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Tor - Route your internet traffic through the Tor network. Slower, but more private. + Leidt uw internetverkeer om via het Tor-netwerk. Trager, maar meer privé. Profiel aanmaken diff --git a/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx b/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx index 2d9030b6d..da4a4ca01 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx @@ -352,7 +352,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Aby zaktualizować aplikację, Proton VPN w razie potrzeby, tymczasowo rozłączy połączenie i wyłączy stały Kill Switch. Czy chcesz kontynuować? The question displayed when trying to update the app while connected to VPN @@ -1570,7 +1570,7 @@ Ten krok zajmie tylko kilka minut. Po tym kroku będziesz mógł zalogować się i chronić wszystkie swoje urządzenia. - Thanks for upgrading + Dziękujemy za ulepszenie planu The title to thank the user for upgrading to Professional/Visionary plan. @@ -1622,7 +1622,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< Niektóre komponenty aplikacji Proton VPN mogą być zablokowane lub wyłączone, uniemożliwiając połączenie. Kliknij przycisk Włącz, aby to naprawić.<LineBreak/>Ta operacja wymaga uprawnień administratora. - Disable kill switch + Wyłącz Kill Switch The text on Disable button in Disconnect modal window @@ -1638,7 +1638,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Funkcja Kill Switch chroni Twój adres IP poprzez blokowanie wszystkich połączeń. W razie problemów możesz wyłączyć funkcję Kill Switch. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1694,10 +1694,10 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< Wyjście z aplikacji spowoduje rozłączenie połączenia VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Funkcja Kill Switch blokuje wszystkie połączenia, aby zapobiec wyciekowi Twoich danych. Wyjście z aplikacji spowoduje wyłączenie tej funkcji. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + Stały Kill Switch jest włączony. Wyjście z aplikacji spowoduje zablokowanie połączeń wychodzących do czasu, gdy aplikacja Proton VPN połączy się ponownie. Weryfikacja antyspamowa @@ -1706,10 +1706,10 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< Ustawienia czasu na Twoim urządzaniu nie są zsynchronizowane, uniemożliwiając połączenie. Aby uzyskać więcej informacji, kliknij <Hyperlink Command="{Binding OpenKbArticleCommand}">tutaj</Hyperlink>. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Stały Kill Switch blokuje dostęp do Internetu, jeśli nie jesteś połączony z siecią VPN. - Enable Permanent kill switch? + Włączyć stały Kill Switch? Ok @@ -1756,7 +1756,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Funkcja Kill Switch jest obecnie włączona. Aktualizacja lub wyjście z aplikacji spowoduje jej wyłączenie. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1783,7 +1783,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< Ok - For Split Tunneling to function properly, you must disable kill switch. + Wyłącz funkcję Kill Switch, aby funkcja Split Tunneling działała poprawnie. Setki serwerów w 55 krajach @@ -1876,7 +1876,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< Aplikacja Proton VPN nie może się połączyć, ponieważ adapter TUN jest już w użyciu. Rozłącz się z siecią VPN i spróbuj ponownie. Opcjonalnie, przełącz się na adapter TAP. Możesz to zrobić w ustawieniach zaawansowanych. - Proton VPN could not connect because a WireGuard network adapter is already in use. Please disconnect any active VPNs and retry. Alternatively, you can switch protocols in the Advanced Settings. + Aplikacja Proton VPN nie może się połączyć, ponieważ adapter WireGuard jest już w użyciu. Rozłącz się z siecią VPN i spróbuj ponownie. Opcjonalnie, zmień protokół. Możesz to zrobić w ustawieniach zaawansowanych. Anuluj @@ -1938,7 +1938,8 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< Napraw swoją instalację. - Kill switch + Kill Switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licencja @@ -1964,7 +1965,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< The text on Login button in Login window (logs in the user) - Kill switch is currently active + Funkcja Kill Switch jest aktywna The text displayed on the login window when user was force logged out while kill switch is active @@ -2157,6 +2158,10 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< Twoja subskrypcja planu VPN wygasła The title of the Subscription Expired notification + + Uruchom ponownie + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Co nowego The text of What's new hyperlink in Update flash notification (opens About window) @@ -2464,10 +2469,12 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Wyłącz Kill Switch + The text for the clickable option to disable the kill switch feature. - Kill switch On + Włącz Kill Switch + The text for the clickable option to enable the kill switch feature. Dowiedz się więcej @@ -2482,7 +2489,8 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< Zablokuj złośliwe oprogramowanie, reklamy i skrypty śledzące - Permanent kill switch + Stały Kill Switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Wyłącz przekierowanie portów @@ -2510,7 +2518,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< - Advertisement websites use cookies and trackers to target you. + Strony reklamowe wykorzystują pliki cookies i śledzą Cię. @@ -2518,7 +2526,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< - Estimated size of ads, trackers, and malware that NetShield has blocked. + Szacowany rozmiar reklam, skryptów śledzących i złośliwego oprogramowania zablokowanego przez funkcję NetShield. @@ -2526,7 +2534,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< - Trackers are third-party websites that collect, store, and sell information about your web activity. + Skrypty śledzące to strony trzecie, które zbierają, przechowują i sprzedają informacje o Twojej aktywności w sieci. @@ -2748,7 +2756,7 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Wyklucz aplikację lub adres IP z ruchu przez tunel VPN lub uwzględnij w nim tylko wybrane aplikacje. Opcja nie może być włączona z funkcją Kill Switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2840,6 +2848,14 @@ Postępuj zgodnie z <Hyperlink Command="{Binding OpenArticleCommand}">< Połączenie The title of Connection tab of Settings window + + Automatyczne aktualizacje + The label for Automatic updates toggle switch in General tab of Settings window + + + Automatycznie sprawdzaj i instaluj aktualizacje Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Połącz przy starcie aplikacji The label for Connect on boot combo box in General tab of Settings window @@ -2922,11 +2938,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Funkcja Kill Switch została aktywowana! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Funkcja Kill Switch blokuje wszystkie połączenia, aby zapobiec wyciekowi Twoich danych. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon @@ -2945,7 +2961,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Serwery planu Free - Free servers have no data limit nor network throttling. The speed might be limited only due to the high number of users connected. + Serwery planu Free nie posiadają limitów danych. Prędkość może zostać ograniczona tylko liczbą połączonych użytkowników. Informacje diff --git a/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx b/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx index 2187726fa..b6afec23f 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx @@ -328,7 +328,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Para concluir o processo de atualização, o Proton VPN desconectará temporariamente e desativará o Kill Switch permanente se qualquer um destes estiver ativo. Deseja continuar? The question displayed when trying to update the app while connected to VPN @@ -1546,7 +1546,7 @@ Informações sobre a tabela de roteamento Esta etapa levará apenas alguns minutos. Depois disso, você poderá iniciar sessão e proteger todos os seus dispositivos. - Thanks for upgrading + Obrigado por fazer o upgrade The title to thank the user for upgrading to Professional/Visionary plan. @@ -1598,7 +1598,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R Alguns componentes Proton VPN podem estar bloqueados ou desabilitados, impedindo que você se conecte. Clique em habilitar para corrigir.<LineBreak/>Note que esta operação requer privilégios administrativos. - Disable kill switch + Desativar kill switch The text on Disable button in Disconnect modal window @@ -1614,7 +1614,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + O kill switch está protegendo seu IP bloqueando todas as conexões. Em caso de problemas, você pode desativar o kill switch. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1670,10 +1670,10 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R Sair do aplicativo desconectará você da VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + O kill switch está bloqueando todas as conexões para evitar o vazamento dos seus dados. Sair do aplicativo desativará o kill switch. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + O Kill Switch permanente está ativado. A saída do aplicativo bloqueará todas as conexões de saída até que o Proton VPN seja conectado novamente. Verificação humana @@ -1682,10 +1682,10 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R O relógio do seu sistema não parece estar sincronizado, o que pode impedir a VPN de se conectar com sucesso. Por favor <Hyperlink Command="{Binding OpenKbArticleCommand}"> verifique aqui</Hyperlink> para mais informações. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Com o kill switch, se a VPN não estiver conectada por qualquer motivo, você não será capaz de acessar a internet. - Enable Permanent kill switch? + Ativar o Kill switch permanente? Entendi @@ -1732,7 +1732,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Note que o kill switch está ativado. Ao atualizar ou sair do programa, ele será desativado. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1759,7 +1759,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R Entendi - For Split Tunneling to function properly, you must disable kill switch. + Para que o tunelamento dividido funcione corretamente, você deve desabilitar a chave de segurança. Centenas de servidores em 55 países @@ -1852,7 +1852,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R O Proton VPN não pôde se conectar porque o adaptador de rede TUN já está em uso. Por favor, desconecte qualquer VPN ativa e tente novamente. Como alternativa, você pode mudar para o adaptador TAP (você pode alterar de volta para TUN nas Configurações Avançadas). - Proton VPN could not connect because a WireGuard network adapter is already in use. Please disconnect any active VPNs and retry. Alternatively, you can switch protocols in the Advanced Settings. + Proton VPN não pôde se conectar porque um adaptador de rede WireGuard já está em uso. Desconecte todas as VPNs ativas e tente novamente. Como alternativa, você pode alternar os protocolos nas Configurações avançadas. Cancelar @@ -1915,13 +1915,14 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licença The title of License window - Sua sessão expirou. Por favor, entre novamente. + Sua sessão expirou. Entre novamente. The message displayed in Login window when expired session is detected @@ -1940,7 +1941,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R The text on Login button in Login window (logs in the user) - Kill switch is currently active + O Kill switch está atuamente ativo The text displayed on the login window when user was force logged out while kill switch is active @@ -2133,6 +2134,10 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R A assinatura do seu plano de VPN expirou The title of the Subscription Expired notification + + Reiniciar + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Novidades The text of What's new hyperlink in Update flash notification (opens About window) @@ -2202,7 +2207,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R Defina este número em seu aplicativo BitTorrent para maior velocidade. - Para usar o encaminhamento de porta, por favor <Hyperlink Command="{Binding ConnectToBestP2PServerCommand}">conecte</Hyperlink> no servidor que suporte P2P. + Para usar essa funcionalidade, <Hyperlink Command="{Binding ConnectToBestP2PServerCommand}">conecte</Hyperlink> no servidor que suporte P2P. O Proton VPN falhou ao buscar o certificado de autenticação devido a um problema de rede. @@ -2434,10 +2439,12 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Kill switch está desativado + The text for the clickable option to disable the kill switch feature. - Kill switch On + Kill switch ativado + The text for the clickable option to enable the kill switch feature. Saiba mais @@ -2452,7 +2459,8 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R Bloqueio de malware, anúncios e rastreadores - Permanent kill switch + Kill Switch permanente + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Encaminhamento de Porta Desligado @@ -2480,7 +2488,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R - Advertisement websites use cookies and trackers to target you. + Os sites de publicidade usam cookies e rastreadores para atingir você. @@ -2488,7 +2496,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R - Estimated size of ads, trackers, and malware that NetShield has blocked. + Tamanho estimado de anúncios, rastreadores e malware que o NetShield bloqueou. @@ -2496,14 +2504,14 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R - Trackers are third-party websites that collect, store, and sell information about your web activity. + Rastreadores são sites de terceiros que coletam, armazenam e vendem informações sobre sua atividade na web. Se os sites não carregarem, tente desativar o NetShield - Permita que aplicativos locais suportadas sejam alcançáveis a partir da Internet, acelerando torrents e jogos online. + Acelere seus torrents e jogos online permitindo que aplicativos locais suportados sejam acessíveis a partir da internet. Encaminhe os seus dados mais sensíveis através dos nossos servidores mais seguros em países amigos da privacidade. @@ -2714,11 +2722,11 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R Do not translate whatever is between < and >. Do not forget to translate the "Learn more". - Split tunneling + Tunelamento dividido The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Exclua um programa, um endereço IP do tráfego VPN ou incluir apenas aplicativos específicos. Não pode ser ativado juntamente com o Kill Switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2810,6 +2818,14 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R Conexão The title of Connection tab of Settings window + + Atualizações automáticas + The label for Automatic updates toggle switch in General tab of Settings window + + + Verificar e instalar automaticamente atualizações para o Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Conectar ao iniciar o aplicativo The label for Connect on boot combo box in General tab of Settings window @@ -2892,11 +2908,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + O Kill switch está ativado! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + O Kill Switch está bloqueando todas as conexões para evitar o vazamento dos seus dados. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon diff --git a/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx b/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx index 23a6d1755..9e598f24d 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx @@ -1915,6 +1915,7 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licença @@ -2133,6 +2134,10 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< O seu plano de subscrição VPN expirou. The title of the Subscription Expired notification + + Restart + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + O que há de novo The text of What's new hyperlink in Update flash notification (opens About window) @@ -2435,9 +2440,11 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< Kill switch Off + The text for the clickable option to disable the kill switch feature. Kill switch On + The text for the clickable option to enable the kill switch feature. Saiba mais @@ -2453,6 +2460,7 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< Permanent kill switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Port Forwarding inactivo @@ -2810,6 +2818,14 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< Ligação The title of Connection tab of Settings window + + Automatic updates + The label for Automatic updates toggle switch in General tab of Settings window + + + Automatically check for and install updates to Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Ligar no arranque da aplicação The label for Connect on boot combo box in General tab of Settings window diff --git a/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx b/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx index 070035448..9f61a06c8 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx @@ -340,7 +340,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Pentru a finaliza procesul de actualizare, Proton VPN va întrerupe temporar conexiunea și dezactiva blocarea permanentă a conexiunii dacă una din acestea este activă. Continuați? The question displayed when trying to update the app while connected to VPN @@ -1558,7 +1558,7 @@ Acest pas va dura doar câteva minute. După aceasta veți putea să vă conectați și să vă protejați toate dispozitivele. - Thanks for upgrading + Vă mulțumim pentru modernizare The title to thank the user for upgrading to Professional/Visionary plan. @@ -1610,7 +1610,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th Unele componente ale Proton VPN ar putea fi blocate sau dezactivate, împiedicându-vă să vă conectați. Faceți clic pe «Activare» pentru a remedia problema.<LineBreak/>Rețineți că această operațiune necesită privilegii de administrator. - Disable kill switch + Dezactivare blocare conexiune The text on Disable button in Disconnect modal window @@ -1626,7 +1626,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Blocarea conexiunii vă protejează adresa IP blocând toate conexiunile. În caz de probleme puteți dezactiva blocarea conexiunilor. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1682,10 +1682,10 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th Închizând aplicația se va deconecta de la VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Blocarea conexiunii blochează toate conexiunile pentru a evita divulgarea datelor. Ieșirea din aplicație va dezactiva blocarea conexiunii. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + Blocarea conexiunii este activată. Închizând aplicația veți bloca toate conexiunile până când vă veți reconecta în Proton VPN. Verificare persoană @@ -1694,10 +1694,10 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th Ceasul sistemului pare să nu fie sincronizat, ceea ce ar putea împiedica conectarea cu succes a VPN-ului. Vedeți <Hyperlink Command="{Binding OpenKbArticleCommand}">aici</Hyperlink> pentru mai multe informații. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Cu blocarea permanentă a conexiunii, dacă nu există conexiune la VPN din orice motiv, nu veți putea accesa internetul. - Enable Permanent kill switch? + Activare blocare permanentă conexiune? Am înțeles @@ -1744,7 +1744,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Blocarea conexiunii este activată. Actualizarea sau închiderea aplicației o va dezactiva. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1771,7 +1771,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th Am înțeles - For Split Tunneling to function properly, you must disable kill switch. + Pentru ca divizarea traficului să funcționeze, trebuie să dezactivați blocarea conexiunii. Sute de servere în 55 de țări @@ -1926,7 +1926,8 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th Reparați instalarea. - Kill switch + Blocare conexiune + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Licența @@ -1952,7 +1953,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th The text on Login button in Login window (logs in the user) - Kill switch is currently active + Blocarea conexiunii este activă The text displayed on the login window when user was force logged out while kill switch is active @@ -2145,6 +2146,10 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th Abonamentul planului VPN a expirat The title of the Subscription Expired notification + + Repornire + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Ce este nou The text of What's new hyperlink in Update flash notification (opens About window) @@ -2449,10 +2454,12 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Blocare conexiune oprită + The text for the clickable option to disable the kill switch feature. - Kill switch On + Blocare conexiune pornită + The text for the clickable option to enable the kill switch feature. Aflați mai multe @@ -2467,7 +2474,8 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th Blocare malware, reclame și urmăritori - Permanent kill switch + Blocare permanentă conexiune + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Redirecționare port oprită @@ -2495,7 +2503,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th - Advertisement websites use cookies and trackers to target you. + Reclamele de pe paginile web folosesc fișiere cookie și scripturi de urmărire pentru a vă identifica. @@ -2503,7 +2511,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th - Estimated size of ads, trackers, and malware that NetShield has blocked. + Mărimea estimată de reclame, urmăritori și malware pe care NetShield le-a blocat. @@ -2511,7 +2519,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th - Trackers are third-party websites that collect, store, and sell information about your web activity. + Urmăritorii sunt site-uri terțe care colectează, stochează și vă vând informațiile despre activitatea pe internet. @@ -2733,7 +2741,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Excludeți o aplicație sau o adresă IP din traficul VPN sau includeți numai anumite aplicații. Nu poate fi pornit împreună cu blocarea conexiunii. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2825,6 +2833,14 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th Conexiune The title of Connection tab of Settings window + + Actualizări automate + The label for Automatic updates toggle switch in General tab of Settings window + + + Verificare automată și instalare actualizări pentru Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Conectare la pornirea aplicației The label for Connect on boot combo box in General tab of Settings window @@ -2907,11 +2923,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Blocare conexiune activată! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Blocarea conexiunii blochează toate conexiunile pentru e preveni divulgarea datelor. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon diff --git a/src/ProtonVPN.Translations/Properties/Resources.ru-RU.resx b/src/ProtonVPN.Translations/Properties/Resources.ru-RU.resx index 0869cd9ad..a28337ff0 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.ru-RU.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.ru-RU.resx @@ -332,7 +332,7 @@ The header of Help menu item in the main app window (opens help web page) - Выйти + Выход из аккаунта The header of Logout menu item in the main app window (logs out current user) @@ -352,7 +352,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Чтобы завершить процесс обновления, Proton VPN временно прервёт подключение и отключит Постоянный Kill Switch, если что-либо из этого сейчас активно. Хотите продолжить? The question displayed when trying to update the app while connected to VPN @@ -542,7 +542,7 @@ The beginning of text for VPN server failed to connect to in Connecting overlay of main app window. It shall be translated as a text before imaginary placeholder {0} in the text string "Connection to {0} has failed". If translated text suppose to not include any text before the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. - Не удалось подключиться к + The beginning of text for Secure Core VPN server failed to connect to in Connecting overlay of main app window. It shall be translated as a text before imaginary placeholder {0} in the text string "The {0} connection has failed". If translated text suppose to not include any text before the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. @@ -550,7 +550,7 @@ The end of text for VPN server failed to connect to in Connecting overlay of main app window. It shall be translated as a text after imaginary placeholder {0} in the text string "Connection to {0} has failed". If translated text suppose to not include any text after the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. - сбой подключения + — сбой подключения The end of text for Secure Core VPN server failed to connect to in Connecting overlay of main app window. It shall be translated as a text after imaginary placeholder {0} in the text string "The {0} connection has failed". If translated text suppose to not include any text after the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. @@ -1570,7 +1570,7 @@ Этот шаг займет всего несколько минут. После него вы сможете авторизоваться и защитить все свои устройства. - Thanks for upgrading + Спасибо за улучшение тарифа The title to thank the user for upgrading to Professional/Visionary plan. @@ -1603,7 +1603,7 @@ The message displayed in the Delinquency window. The codes between < and > should be kept as is (Do not forget to translate the inner "Read more about delinquency."). - Аккаунт с задоженностью + Аккаунт с задолженностью The title of the Delinquency window @@ -1622,7 +1622,7 @@ Некоторые компоненты Proton VPN могут быть заблокированы или отключены, что мешает вам подключиться. Нажмите на Включить, чтобы исправить это.<LineBreak/>Обратите внимание, что эта операция требует полномочий администратора. - Disable kill switch + Отключить kill switch The text on Disable button in Disconnect modal window @@ -1638,7 +1638,7 @@ The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Kill switch защищает ваш IP, блокируя все подключения. Если возникнут проблемы, вы можете выключить kill switch. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1694,10 +1694,10 @@ Выход из приложения отключит Вас от VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Kill switch блокирует все подключения, чтобы избежать утечки данных. Выход из приложения отключит kill switch. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + Включён Постоянный kill switch. Выход из приложения заблокирует все исходящие подключения, пока Proton VPN не подключится снова. Проверка "Я не робот" @@ -1706,10 +1706,10 @@ Похоже, что ваши системные часы не синхронизированы, что может препятствовать успешному подключению VPN. Дополнительную информацию смотрите тут: <Hyperlink Command="{Binding OpenKbArticleCommand}">здесь</Hyperlink>. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + При Постоянном kill switch, если VPN по какой-либо причине не подключён, у вас не будет доступа в Интернет. - Enable Permanent kill switch? + Включить Постоянный kill switch? Я понял @@ -1756,7 +1756,7 @@ The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Обратите внимание, что включён kill switch. Обновление или выход из приложения его отключит. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1783,7 +1783,7 @@ Понятно - For Split Tunneling to function properly, you must disable kill switch. + Для правильной работы раздельного туннелирования, вам нужно выключить kill switch. Сотни серверов в 55 странах @@ -1939,17 +1939,18 @@ Kill switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Лицензия The title of License window - Ваш сеанс истек. Пожалуйста, войдите снова. + Ваш сеанс истёк. Пожалуйста, войдите снова. The message displayed in Login window when expired session is detected - Недействительный refresh-токен: пожалуйста, войдите снова. + Недействительный токен обновления: пожалуйста, войдите снова. The text displayed after failed login attempt @@ -1964,7 +1965,7 @@ The text on Login button in Login window (logs in the user) - Kill switch is currently active + Kill switch сейчас активен The text displayed on the login window when user was force logged out while kill switch is active @@ -1972,7 +1973,7 @@ The label for Password text box in Login window - Безопасный Интернет где угодно + Безопасный интернет где угодно The text displayed on the bottom of Login window while logging in @@ -2157,6 +2158,10 @@ Срок вашей подписки на VPN истек The title of the Subscription Expired notification + + Перезапустить + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Что нового The text of What's new hyperlink in Update flash notification (opens About window) @@ -2464,10 +2469,12 @@ The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Выключить Kill switch + The text for the clickable option to disable the kill switch feature. - Kill switch On + Включить Kill switch + The text for the clickable option to enable the kill switch feature. Подробнее @@ -2482,7 +2489,8 @@ Блокировать вредоносные программы, рекламу и трекеры - Permanent kill switch + Постоянный kill switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Проброс портов выкл @@ -2500,17 +2508,17 @@ УЛУЧШИТЬ - Отключает Интернет при обрыве подключения к VPN для предотвращения случайной утечки IP-адресов. + Отключает интернет при обрыве подключения к VPN для предотвращения случайной утечки IP-адресов. - Просматривайте Интернет без рекламы и вредоносных программ. + Просматривайте интернет без рекламы и вредоносных программ. Ads blocked - Advertisement websites use cookies and trackers to target you. + Рекламные сайты используют файлы cookie и трекеры, чтобы показывать вам персонализированную рекламу. @@ -2518,7 +2526,7 @@ - Estimated size of ads, trackers, and malware that NetShield has blocked. + Примерный объём рекламы, трекеров и вредоносных программ, которые заблокировал NetShield. @@ -2526,14 +2534,14 @@ - Trackers are third-party websites that collect, store, and sell information about your web activity. + Трекеры – это сторонние сайты, которые собирают, хранят и продают информацию о ваших действиях в интернете. Если веб-сайты не загружаются, попробуйте отключить NetShield - Ускорьте ваши торренты и онлайн-игры, разрешив Интернет-доступ к поддерживаемым локальным приложениям. + Ускорьте ваши торренты и онлайн-игры, разрешив интернет-доступ к поддерживаемым локальным приложениям. Направляйте свои самые чувствительные данные через наши самые безопасные серверы в странах, уважающих конфиденциальность. @@ -2661,7 +2669,7 @@ The label of Split Tunnel mode in Split Tunneling section of Advanced tab of Settings window - IP-адрес: + IP: The label for IP address list in Settings window Advanced tab Split Tunneling section @@ -2740,7 +2748,7 @@ Получать уведомления об изменении номера Переадресации портов - Ускоряет загрузку торрентов и онлайн игр, разрешая доступ к поддерживаемым локальным приложениям из Интернета. <Hyperlink Command="{Binding LearnMoreAboutPortForwardingCommand}">Подробнее</Hyperlink> + Ускоряет загрузку торрентов и онлайн игр, разрешая доступ к поддерживаемым локальным приложениям из интернета. <Hyperlink Command="{Binding LearnMoreAboutPortForwardingCommand}">Подробнее</Hyperlink> Do not translate whatever is between < and >. Do not forget to translate the "Learn more". @@ -2748,7 +2756,7 @@ The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Исключение программ или IP-адресов из VPN трафика, или включение только определенных программ. Невозможно включить одновременно с kill switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2799,10 +2807,10 @@ The description of Default Protocol settings displayed in the tooltip of ( i ) image next to the label for Default Protocol combo box in Connection tab of Settings window - NAT Type 2 + Умеренный NAT - NAT Type 2 выключает рандомизацию переназначений локальных адресов, что может слегка уменьшить безопасность, но позволит работать таким функциям, как прямое подключение для приложений, например, для сетевых игр. + Умеренный NAT выключает рандомизацию переназначений локальных адресов, что может слегка уменьшить безопасность, но позволит работать таким функциям, как прямое подключение для приложений, например, для сетевых игр. Быстрое подключение @@ -2840,6 +2848,14 @@ Подключение The title of Connection tab of Settings window + + Автоматические обновления + The label for Automatic updates toggle switch in General tab of Settings window + + + Автоматически проверять на наличие и устанавливать обновления Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Подключение при запуске приложения The label for Connect on boot combo box in General tab of Settings window @@ -2922,11 +2938,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Kill switch активирован! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Kill switch блокирует все соединения, чтобы избежать утечки ваших данных. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon @@ -2951,7 +2967,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Информация - Наши партнеры + Наши партнёры Местоположения PLUS ({0}) @@ -3024,7 +3040,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Трансляция - Серверы PLUS поддерживают стриминг (Netflix, Disney+ и др.) из любой точки мира. + Серверы PLUS поддерживают просмотр Netflix, Disney+ и подобных служб из любой точки мира. Функции @@ -3158,16 +3174,16 @@ This setting instructs the Proton VPN to start automatically when the user logs The message displayed in plus upgrade modal window. {0} is a placeholder for the numbers of servers available (rounded down) and {1} is a placeholder for the number of countries available. - Что такое NAT Type 2? + Что такое Умеренный NAT? - Nat Type 2 может повысить удобство работы в Интернете с различными приложениями и сетевыми видеоиграми. + Умеренный NAT, также известный как NAT Type 2, может повысить удобство работы в Интернете с различными приложениями и сетевыми видеоиграми. - Включить NAT Type 2 + Включить Умеренный NAT - Улучшите до платного тарифна, чтобы разблокировать эту и многие другие функции. + Улучшите тариф до платного, чтобы разблокировать эту и многие другие функции. Блокируйте рекламу и трекеры diff --git a/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx b/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx index a2be327d9..cf2ac4993 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx @@ -328,7 +328,7 @@ The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Bunlardan biri etkinse, Proton VPN güncelleme işlemini tamamlamak için geçici olarak bağlantıyı kesecek ve bağlantı kesiciyi devre dışı bırakacak. İlerlemek istiyor musunuz? The question displayed when trying to update the app while connected to VPN @@ -1546,7 +1546,7 @@ Bu adım birkaç dakika sürecek. Bundan sonra oturum açabilir ve tüm aygıtlarınızı koruyabilirsiniz. - Thanks for upgrading + Tarifenizi yükselttiğiniz için teşekkürler The title to thank the user for upgrading to Professional/Visionary plan. @@ -1597,7 +1597,7 @@ Bazı Proton VPN bileşenleri, bağlantı kurmanızı önleyecek şekilde engellenmiş ya da devre dışı bırakılmış olabilir. Bu durumu düzeltmek için etkinleştir düğmesine tıklayın.<LineBreak/>Bu işlem için yönetici izinlerinin gerektiğini unutmayın. - Disable kill switch + Bağlantı kesiciyi devre dışı bırak The text on Disable button in Disconnect modal window @@ -1613,7 +1613,7 @@ The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Bağlantı kesici, tüm bağlantıları engelleyerek IP adresinizi koruyor. Bir sorun olması durumunda Bağlantı kesiciyi devre dışı bırakabilirsiniz. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1669,10 +1669,10 @@ Uygulamadan çıkarsanız VPN ile bağlantınız kesilecek. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Bağlantı kesici, verilerinizin sızmasını önlemek için tüm bağlantıları engelliyor. Uygulamadan çıkmak, bağlantı kesiciyi devre dışı bırakacak. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + Kalıcı bağlantı kesici şu anda etkin. Uygulamadan çıkarsanız yeniden bağlantı kurulana kadar Proton VPN tüm giden bağlantıları engelleyecek. İnsan olduğunuzu doğrulayın @@ -1681,10 +1681,10 @@ Sistem saatiniz doğru değil gibi görünüyor. Bu durum VPN bağlantısının kurulmasını engelleyebilir. Ayrıntılı bilgi almak için <Hyperlink Command="{Binding OpenKbArticleCommand}">buraya</Hyperlink> bakabilirsiniz. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + Kalıcı bağlantı kesici ile VPN bağlantısı herhangi bir nedenle kesildiğinde, internete erişemezsiniz. - Enable Permanent kill switch? + Kalıcı bağlantı kesici etkinleştirilsin mi? Anladım @@ -1731,7 +1731,7 @@ The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Bağlantı kesicinin etkin olduğunu unutmayın. Uygulamayı güncellemek ya da uygulamadan çıkmak bağlantı kesiciyi devre dışı bırakır. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1758,7 +1758,7 @@ Anladım - For Split Tunneling to function properly, you must disable kill switch. + Ayrılmış tünellemenin düzgün çalışması için bağlantı kesiciyi devre dışı bırakmalısınız. 55 ülkede yüzlerce sunucu @@ -1773,7 +1773,7 @@ An option of the subscriber benefits list in the Subscription Expired window - Tüm özelliklerin tadını çıkarmak için yeniden yükseltin: + Tüm özelliklerin tadını çıkarmak için tarifenizi yeniden yükseltin: The text right before the subscriber benefits list in the Subscription Expired window @@ -1781,11 +1781,11 @@ The subtitle of the Subscription Expired window when the user is reconnected - Aboneliğiniz düşürüldü. + Abonelik tarifeniz düşürüldü. The subtitle of the Subscription Expired window - VPN abonelik tarifenizin süresi dolmuş + VPN abonelik tarifenizin geçerlilik süresi dolmuş The title of the Subscription Expired window @@ -1913,14 +1913,15 @@ Lütfen kurulumunuzu onarın. - Kill switch + Bağlantı kesici + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Lisans The title of License window - Oturumunuzun süresi dolmuş. Lütfen yeniden oturum açın. + Oturumunuzun geçerlilik süresi dolmuş. Lütfen yeniden oturum açın. The message displayed in Login window when expired session is detected @@ -1939,7 +1940,7 @@ The text on Login button in Login window (logs in the user) - Kill switch is currently active + Bağlantı kesici etkin The text displayed on the login window when user was force logged out while kill switch is active @@ -2121,7 +2122,7 @@ The description of the Maximum Device Limit notification when the user can upgrade the subscription plan - Abonelik tarifeniz düşürüldü. Tüm özelliklerin tadını çıkarmak için yeniden yükseltin. + Abonelik tarifeniz düşürüldü. Tüm özelliklerin tadını çıkarmak için tarifenizi yeniden yükseltin. The description of the Subscription Expired notification @@ -2129,9 +2130,13 @@ The description of the Subscription Expired notification when the user is reconnected - VPN abonelik tarifenizin süresi dolmuş + VPN abonelik tarifenizin geçerlilik süresi dolmuş The title of the Subscription Expired notification + + Yeniden başlat + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Yenilikler The text of What's new hyperlink in Update flash notification (opens About window) @@ -2433,10 +2438,12 @@ The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Bağlantı kesiciyi kapat + The text for the clickable option to disable the kill switch feature. - Kill switch On + Bağlantı kesiciyi aç + The text for the clickable option to enable the kill switch feature. Ayrıntılı bilgi alın @@ -2451,7 +2458,8 @@ Kötü amaçlı yazılımlar, reklamlar, ve etkinlik izleyiciler engellensin - Permanent kill switch + Kalıcı bağlantı kesici + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Bağlantı noktası yönlendirme kapalı @@ -2479,7 +2487,7 @@ - Advertisement websites use cookies and trackers to target you. + Reklam web siteleri sizi hedeflemek için çerezler ve izleyiciler kullanır. @@ -2487,7 +2495,7 @@ - Estimated size of ads, trackers, and malware that NetShield has blocked. + NetShield tarafından engellenen reklamların, izleyicilerin ve kötü amaçlı yazılımların öngörülen boyutu. @@ -2495,11 +2503,11 @@ - Trackers are third-party websites that collect, store, and sell information about your web activity. + İzleyiciler, sitelerdeki etkinliğiniz ile ilgili bilgi toplayan, depolayan ve satan üçüncü taraf siteleridir. - Web siteleri yüklenmiyorsa, NetShield özelliğini devre dışı bırakmayı deneyin + Siteler yüklenmiyorsa, NetShield özelliğini devre dışı bırakmayı deneyin Desteklenen yerel uygulamalara internet üzerinden erişilebilmesine izin vererek torrent ve çevrimiçi oyun kullanımınızı hızlandırın. @@ -2717,7 +2725,7 @@ The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Bir uygulama veya IP adresinin VPN trafiğine katılmamasını ya da yalnızca belirli uygulamaların katılmasını sağlar. Bağlantı kesici ile aynı anda kullanılamaz. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2744,7 +2752,7 @@ The WireGuard protocol name displayed in the Protocol combo box in Connection tab of Settings window. Do not translate. - Özel DNS sunucularının kullanılması NetShield özelliğini devre dışı bırakır. DNS sunucuları sizi doğru web sitelerine yönlendirmekten sorumludur. <LineBreak/><LineBreak/>Yalnızca güvendiğiniz DNS sunucularını kullanın. Özel DNS sunucularını etkinleştirmek istiyor musunuz? + Özel DNS sunucularının kullanılması NetShield özelliğini devre dışı bırakır. DNS sunucuları sizi doğru sitelere yönlendirmekten sorumludur. <LineBreak/><LineBreak/>Yalnızca güvendiğiniz DNS sunucularını kullanın. Özel DNS sunucularını etkinleştirmek istiyor musunuz? The text displayed in Custom DNS Servers warning modal window when use is trying to turn the feature ON when NetShield feature is turned on as well @@ -2809,6 +2817,14 @@ Bağlantı The title of Connection tab of Settings window + + Otomatik güncellemeler + The label for Automatic updates toggle switch in General tab of Settings window + + + Proton VPN güncellemelerini otomatik olarak denetler ve kurar. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Uygulama başlatıldığında bağlansın The label for Connect on boot combo box in General tab of Settings window @@ -2891,11 +2907,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Bağlantı kesici etkinleştirildi! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Bağlantı kesici, verilerinizin sızmasını önlemek için tüm bağlantıları engelliyor. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon diff --git a/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx b/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx index 929197ce8..bc09e206b 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx @@ -332,7 +332,7 @@ The header of Help menu item in the main app window (opens help web page) - Sign out + Вийти The header of Logout menu item in the main app window (logs out current user) @@ -348,11 +348,11 @@ The header of Settings menu item in the main app window (opens Settings window) - Signing out of the application will disconnect the active VPN connection. Do you want to continue? + Вихід із програми від'єднає активне VPN-з'єднання. Хочете продовжити? The question displayed when trying to logout while connected to VPN - To complete the update process, Proton VPN will temporarily disconnect and deactivate Permanent kill switch if any of these are active. Do you want to continue? + Щоб завершити процес оновлення, Proton VPN тимчасово від'єднається і деактивує Постійний Kill Switch, якщо вони активні. Ви хочете продовжити? The question displayed when trying to update the app while connected to VPN @@ -449,7 +449,7 @@ The label for the username in Issue Report window - Ваше ім’я користувача Proton, якщо ви вже маєте обліковий запис. + Ваше ім'я користувача Proton, якщо ви вже маєте обліковий запис. The watermark text displayed in empty username text box in Issue Report window @@ -534,7 +534,7 @@ The end of text for VPN server being connected to in Connecting overlay of main app window. It shall be translated as the text after imaginary placeholder {0} in the text string "Connecting to {0}". If translated text suppose to not include any text after the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. - з’єднання + з'єднання The end of text for Secure Core VPN server being connected to in Connecting overlay of main app window. It shall be translated as a text after imaginary placeholder {0} in the text string "Creating {0} connection". If translated text suppose to not include any text after the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. @@ -1561,16 +1561,16 @@ Призначити VPN-з'єднання - Sign in again + Увійти знову Щоб почати свою подорож у Proton VPN, призначте з'єднання VPN для свого облікового запису або будь-якого іншого підлеглого облікового запису. - This step will take just a few minutes. After that you will be able to sign in and protect all your devices. + Цей крок займе всього кілька хвилин. Після цього ви зможете ввійти в систему і захистити всі свої пристрої. - Thanks for upgrading + Дякуємо за передплату The title to thank the user for upgrading to Professional/Visionary plan. @@ -1623,7 +1623,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Деякі компоненти Proton VPN можуть бути заблоковані або вимкнені, що заважає встановити з'єднання. Натисніть Увімкнути, щоб це виправити.<LineBreak/>Зверніть увагу, що ця операція вимагає повноважень адміністратора. - Disable kill switch + Вимкнути Kill Switch The text on Disable button in Disconnect modal window @@ -1639,7 +1639,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну The message displayed in Disconnect modal window while trying to identify connection problem - Kill switch is protecting your IP by blocking all connections. In case of trouble you can disable kill switch. + Kill Switch захищає вашу IP-адресу, блокуючи всі з'єднання. У разі виникнення проблем ви можете вимкнути Kill Switch. The text displayed in Disconnect modal window if the disconnect occurred with kill switch turned on. @@ -1695,10 +1695,10 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Вихід з програми приведе до від'єднання від VPN. - Kill switch is blocking all connections to avoid leaking your data. Exiting the application will disable the kill switch. + Kill Switch блокує всі з'єднання, щоб уникнути витоку ваших даних. Вихід з програми вимкне Kill Switch. - Permanent kill switch is enabled. Exiting the application will block all the outgoing connections until Proton VPN is connected again. + Увімкнено Постійний Kill Switch. Вихід з програми заблокує всі вихідні з'єднання, доки Proton VPN знову не встановить з'єднання. Перевірка "Я не робот" @@ -1707,17 +1707,17 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Схоже, що ваш системний годинник не синхронізований, що може перешкоджати успішному з'єднанню з VPN. Для отримання докладнішої інформації <Hyperlink Command="{Binding OpenKbArticleCommand}">дивіться тут</Hyperlink>. - With Permanent kill switch, if the VPN is not connected for any reason, you won't be able to access the internet. + З увімкненою функцією "Постійний Kill Switch", за відсутності з'єднання з VPN з будь-якої причини, ви не зможете отримати доступ до інтернету. - Enable Permanent kill switch? + Увімкнути Постійний Kill Switch? Зрозуміло The ok button text in the Maximum Device Limit window when the user already has the highest subscription plan - Від’єднайте інший пристрій, щоб під'єднати цей. + Від'єднайте інший пристрій, щоб під'єднати цей. The subtitle of the Maximum Device Limit window when the user already has the highest subscription plan @@ -1757,7 +1757,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну The error message displayed on the outdated app window when the app version is outdated - Note that the kill switch is enabled. Updating or quitting the application will disable it. + Зверніть увагу, що Kill Switch увімкнено. Оновлення або вихід з програми вимкне його. The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled @@ -1784,7 +1784,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Зрозуміло - For Split Tunneling to function properly, you must disable kill switch. + Для правильної роботи роздільного тунелювання необхідно вимкнути Kill Switch. Сотні серверів у 55 країнах @@ -1877,7 +1877,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Proton VPN не може під'єднатися, оскільки мережевий адаптер TUN вже використовується. Від'єднайте будь-які активні VPN і повторіть спробу. Або ж перемкніться на адаптер TAP (ви можете змінити адаптер назад на TUN у розширених налаштуваннях). - Proton VPN could not connect because a WireGuard network adapter is already in use. Please disconnect any active VPNs and retry. Alternatively, you can switch protocols in the Advanced Settings. + Proton VPN не може під'єднатися, оскільки мережевий адаптер WireGuard зараз використовується. Від'єднайте будь-які активні VPN і повторіть спробу. Або ж ви можете змінити протокол у розширених налаштуваннях. Скасувати @@ -1899,7 +1899,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну The text on NoThanks button in dialog windows - OK + Гаразд Із сервера: @@ -1939,18 +1939,19 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Будь ласка, відновіть установлення. - Kill switch + Kill Switch + Title for the kill switch feature. This feature is available from the side bar as a quick settings. Ліцензія The title of License window - Your session has expired. Please sign in again. + Термін дії вашого сеансу завершився. Увійдіть знову. The message displayed in Login window when expired session is detected - Invalid refresh token, please sign in again. + Недійсний токен відновлення. Будь ласка, увійдіть знову. The text displayed after failed login attempt @@ -1961,11 +1962,11 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Автентифікація - Sign in + Увійти The text on Login button in Login window (logs in the user) - Kill switch is currently active + Kill Switch зараз активний The text displayed on the login window when user was force logged out while kill switch is active @@ -1973,7 +1974,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну The label for Password text box in Login window - Secure internet anywhere + Безпечний інтернет всюди The text displayed on the bottom of Login window while logging in @@ -2095,7 +2096,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Не показувати знову - Learn more + Докладніше Secure Core пропонує найвищий рівень безпеки та приватності, але це може знизити швидкість роботи інтернету. Якщо вам потрібна додаткова швидкодія, ви можете вимкнути Secure Core. @@ -2158,6 +2159,10 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Ваша передплата тарифного плану VPN завершилась The title of the Subscription Expired notification + + Перезапустити + The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. + Що нового The text of What's new hyperlink in Update flash notification (opens About window) @@ -2465,10 +2470,12 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну The label for Profiles list in combo box in Quick Launch window - Kill switch Off + Kill Switch вимкнено + The text for the clickable option to disable the kill switch feature. - Kill switch On + Kill Switch увімкнено + The text for the clickable option to enable the kill switch feature. Докладніше @@ -2483,7 +2490,8 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Блокувати зловмисні програми, рекламу і стеження - Permanent kill switch + Постійний Kill Switch + The text for the clickable option to enable the kill switch feature permanently (even when the VPN app is not running). Переспрямування портів вимкнено @@ -2501,17 +2509,17 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну ОНОВИТИ - Disables internet if the VPN connection drops to prevent accidental IP leak. + Вимикає інтернет, якщо втрачається VPN-з'єднання, щоб запобігти випадковому розкриттю IP-адреси. - Browse the internet without ads and malware. + Користуйтеся інтернетом без реклами та зловмисних програм. Ads blocked - Advertisement websites use cookies and trackers to target you. + Рекламні вебсайти використовують куки та елементи стеження, щоб персоналізувати вас. @@ -2519,7 +2527,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну - Estimated size of ads, trackers, and malware that NetShield has blocked. + Орієнтовний розмір рекламних оголошень, елементів стеження та зловмисних програм, заблокованих NetShield. @@ -2527,14 +2535,14 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну - Trackers are third-party websites that collect, store, and sell information about your web activity. + Елементи стеження – це сторонні вебсайти, які збирають, зберігають і продають дані про вашу діяльність в інтернеті. Якщо вебсайти не завантажуються, спробуйте вимкнути NetShield - Speed up your torrenting and online gaming by allowing supported local apps to be reachable from the internet. + Пришвидшіть роботу з торентами та онлайн-іграми, дозволивши підтримуваним локальним застосункам бути доступними з інтернету. Спрямовуйте свої найвразливіші дані через наші найзахищеніші сервери в країнах, що цінують приватність. @@ -2566,7 +2574,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну The name of P2P server feature - Plus server + Сервер Plus The name of Plus server feature @@ -2643,7 +2651,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну Proton VPN не може з'єднатися, оскільки сервер RPC недоступний у вашій системі. <Hyperlink Command="{Binding OpenRpcServerUrlCommand}">Переглянути можливі рішення</Hyperlink> - Unfortunately, this server does not support WireGuard. + На жаль, цей сервер не підтримує WireGuard. Додати програму @@ -2749,7 +2757,7 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну The label for Split Tunneling toggle switch in Advanced tab of Settings window - Exclude an application or an IP address from VPN traffic or include only specific apps. Cannot be switched on together with kill switch. + Виключення програми чи IP-адреси з трафіку VPN або включення тільки певних програм. Не можна використовувати разом із Kill Switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2841,6 +2849,14 @@ Text="these"/></Hyperlink> інструкції, щоб увімкну З'єднання The title of Connection tab of Settings window + + Автоматичні оновлення + The label for Automatic updates toggle switch in General tab of Settings window + + + Автоматично перевіряти наявність і встановлювати оновлення Proton VPN. + The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window + Під'єднуватися до застосунку під час запуску The label for Connect on boot combo box in General tab of Settings window @@ -2923,11 +2939,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed in a tooltip of Connection section of Sidebar section of main app window - Kill switch activated! + Kill Switch активовано! The text displayed in the sidebar when connection dropped and kill switch is turned on - Kill switch is blocking all connections to avoid leaking your data. + Kill Switch блокує всі з'єднання, щоб запобігти витоку ваших даних. Tooltip message shown in sidebar connection status box when hovered on exclamation mark icon @@ -2943,16 +2959,16 @@ This setting instructs the Proton VPN to start automatically when the user logs Розташування FREE ({0}) - Free servers + Безплатні сервери - Free servers have no data limit nor network throttling. The speed might be limited only due to the high number of users connected. + Безплатні сервери не мають обмеження даних і швидкості мережі. Швидкість може обмежуватися лише через велику кількість під'єднаних користувачів. - Information + Інформація - Our partners + Наші партнери Розташування PLUS ({0}) @@ -2964,7 +2980,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Сервери BASIC ({0}) - Plus servers ({0}) + Сервери Plus ({0}) ВНУТРІШНІ сервери @@ -3034,7 +3050,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Tor - Route your internet traffic through the Tor network. Slower, but more private. + Спрямовуйте свій інтернет-трафік через мережу Tor. Повільніше, але приватніше. Створити профіль From ff5c785b1692ef62a4b5b50c83dbecce0e798ab1 Mon Sep 17 00:00:00 2001 From: Eduardo Abreu Date: Wed, 5 Apr 2023 14:13:45 +0000 Subject: [PATCH 27/39] Add await to LoggingService Start and Stop --- src/ProtonVPN.Common/OS/Services/LoggingService.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ProtonVPN.Common/OS/Services/LoggingService.cs b/src/ProtonVPN.Common/OS/Services/LoggingService.cs index 7b084b561..99fe0910a 100644 --- a/src/ProtonVPN.Common/OS/Services/LoggingService.cs +++ b/src/ProtonVPN.Common/OS/Services/LoggingService.cs @@ -60,16 +60,16 @@ public void Enable() }).Wait(); } - public Task StartAsync(CancellationToken cancellationToken) + public async Task StartAsync(CancellationToken cancellationToken) { - return Logged("Starting", - () => _origin.StartAsync(cancellationToken)); + return await Logged("Starting", + async () => await _origin.StartAsync(cancellationToken)); } - public Task StopAsync(CancellationToken cancellationToken) + public async Task StopAsync(CancellationToken cancellationToken) { - return Logged("Stopping", - () => _origin.StopAsync(cancellationToken)); + return await Logged("Stopping", + async () => await _origin.StopAsync(cancellationToken)); } private async Task Logged(string actionName, Func> action) From a728e21f2f3fe6b2ac86a27ef937714f3d1625d9 Mon Sep 17 00:00:00 2001 From: Mindaugas Veblauskas Date: Mon, 3 Apr 2023 15:16:01 +0300 Subject: [PATCH 28/39] Update pinned taskbar icon target when upgrading from v2 [VPNWIN-1413] --- Setup/setup.iss | 5 ++ .../AppSettingsMigration.cpp | 34 +------ .../AppSettingsMigration.h | 3 - src/ProtonVPN.InstallActions/Installer.cpp | 6 ++ src/ProtonVPN.InstallActions/Installer.h | 3 +- src/ProtonVPN.InstallActions/Os.cpp | 89 ++++++++++++++++++- src/ProtonVPN.InstallActions/Os.h | 6 +- src/ProtonVPN.InstallActions/dllmain.cpp | 23 ++++- 8 files changed, 130 insertions(+), 39 deletions(-) diff --git a/Setup/setup.iss b/Setup/setup.iss index 042ca859f..87dabb192 100644 --- a/Setup/setup.iss +++ b/Setup/setup.iss @@ -316,6 +316,9 @@ external 'InitLogger@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; function InitLoggerUninstall(logger: Longword): Integer; external 'InitLogger@{%TEMP}\ProtonVPN.InstallActions.x86.dll cdecl delayload uninstallonly'; +function UpdateTaskbarIconTarget(launcherPath: String): Integer; +external 'UpdateTaskbarIconTarget@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; + function UninstallProduct(upgradeCode: String): Integer; external 'UninstallProduct@files:ProtonVPN.InstallActions.x86.dll cdecl delayload'; @@ -477,6 +480,8 @@ function PrepareToInstall(var NeedsRestart: Boolean): String; begin Log('Trying to save user settings for the old ProtonVPN app if it is installed'); SaveOldUserConfigFolder(); + Log('Trying to update taskbar icon path if exists'); + UpdateTaskbarIconTarget(ExpandConstant('{app}\{#VersionFolder}\{#MyAppExeName}')); Log('Trying to uninstall an old version of ProtonVPN app'); UninstallProduct('{2B10124D-2F81-4BB1-9165-4F9B1B1BA0F9}'); Log('Trying to uninstall an old version of ProtonVPN TUN adapter'); diff --git a/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp b/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp index b88eeb499..733b32291 100644 --- a/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp +++ b/src/ProtonVPN.InstallActions/AppSettingsMigration.cpp @@ -3,6 +3,7 @@ #include "WinApiErrorException.h" #include "pugixml/pugixml.hpp" #include "AppSettingsMigration.h" +#include "Os.h" using namespace std; namespace fs = std::filesystem; @@ -94,7 +95,7 @@ void AppSettingsMigration::FixUserConfigFile(fs::path user_config_folder_path) fs::path AppSettingsMigration::GetOldUserConfigPath() { - const string local_app_data_path = GetLocalAppDataPath(); + const string local_app_data_path = Os::GetLocalAppDataPath(); fs::file_time_type latest_version_time; fs::path latest_version_folder_path; fs::path app_data_folder_path = local_app_data_path / fs::path("ProtonVPN"); @@ -127,12 +128,12 @@ fs::path AppSettingsMigration::GetOldUserConfigPath() fs::path AppSettingsMigration::GetApplicationSettingsFolderPath(std::string application_path) { - return {GetLocalAppDataPath() + "\\ProtonVPN\\" + GetApplicationSettingsFolderName(application_path)}; + return {Os::GetLocalAppDataPath() + "\\ProtonVPN\\" + GetApplicationSettingsFolderName(application_path)}; } fs::path AppSettingsMigration::GetTmpFolderPathForStorage() { - return GetTmpFolderPath() / fs::path("ProtonVPN"); + return Os::GetTmpFolderPath() / fs::path("ProtonVPN"); } string AppSettingsMigration::GetApplicationSettingsFolderName(std::string application_path) @@ -140,33 +141,6 @@ string AppSettingsMigration::GetApplicationSettingsFolderName(std::string applic return "ProtonVPN_Url_" + GetHashForUserSettingsFolder(application_path); } -string AppSettingsMigration::GetLocalAppDataPath() -{ - return GetEnvVariable("LOCALAPPDATA"); -} - -string AppSettingsMigration::GetTmpFolderPath() -{ - return GetEnvVariable("TMP"); -} - -string AppSettingsMigration::GetEnvVariable(string name) -{ - char* value; - size_t len; - const errno_t err = _dupenv_s(&value, &len, name.c_str()); - if (err != 0) - { - throw WinApiErrorException(L"Failed to get environment variable " + wstring(name.begin(), name.end()) + L".", - err); - } - - string result = string(value); - free(value); - - return result; -} - string AppSettingsMigration::GetHashForUserSettingsFolder(std::string application_path) { ranges::replace(application_path, '\\', '/'); diff --git a/src/ProtonVPN.InstallActions/AppSettingsMigration.h b/src/ProtonVPN.InstallActions/AppSettingsMigration.h index bad2047e7..c458b62f8 100644 --- a/src/ProtonVPN.InstallActions/AppSettingsMigration.h +++ b/src/ProtonVPN.InstallActions/AppSettingsMigration.h @@ -30,9 +30,6 @@ class AppSettingsMigration std::string GetSha1(std::string str); std::string GetPathWithSize(std::string path_url); std::string GetHashForUserSettingsFolder(std::string application_path); - std::string GetLocalAppDataPath(); - std::string GetTmpFolderPath(); - std::string GetEnvVariable(std::string name); std::filesystem::path GetApplicationSettingsFolderPath(std::string application_path); std::filesystem::path GetTmpFolderPathForStorage(); std::string GetApplicationSettingsFolderName(std::string application_path); diff --git a/src/ProtonVPN.InstallActions/Installer.cpp b/src/ProtonVPN.InstallActions/Installer.cpp index 25a4e8122..33f2d312d 100644 --- a/src/ProtonVPN.InstallActions/Installer.cpp +++ b/src/ProtonVPN.InstallActions/Installer.cpp @@ -36,3 +36,9 @@ long Uninstall(LPCWSTR upgrade_code) return 0; } + +bool IsProductInstalled(LPCWSTR upgrade_code) +{ + TCHAR product_code[MSI_GUID_LEN + 1]; + return MsiEnumRelatedProducts(upgrade_code, 0, 0, product_code) == ERROR_SUCCESS; +} \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/Installer.h b/src/ProtonVPN.InstallActions/Installer.h index a73ca7d80..f897b596e 100644 --- a/src/ProtonVPN.InstallActions/Installer.h +++ b/src/ProtonVPN.InstallActions/Installer.h @@ -1,2 +1,3 @@ #pragma once -long Uninstall(LPCWSTR upgrade_code); \ No newline at end of file +long Uninstall(LPCWSTR upgrade_code); +bool IsProductInstalled(LPCWSTR upgrade_code); \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/Os.cpp b/src/ProtonVPN.InstallActions/Os.cpp index 10af62b61..2637ff324 100644 --- a/src/ProtonVPN.InstallActions/Os.cpp +++ b/src/ProtonVPN.InstallActions/Os.cpp @@ -1,17 +1,20 @@ #include -#include -#include #include #include #include #include #include +#include +#include "shlguid.h" +#include #include "ProcessExecutionResult.h" #include "Os.h" +#include "WinApiErrorException.h" using namespace std; using namespace Os; +namespace fs = std::filesystem; ProcessExecutionResult Os::RunProcess(const wchar_t* application_path, wstring command_line_args) { @@ -155,3 +158,85 @@ bool Os::IsProcessRunning(const wchar_t* process_name) CloseHandle(snapshot); return running; } + +string Os::GetEnvVariable(string name) +{ + char* value; + size_t len; + const errno_t err = _dupenv_s(&value, &len, name.c_str()); + if (err != 0) + { + throw WinApiErrorException(L"Failed to get environment variable " + wstring(name.begin(), name.end()) + L".", + err); + } + + string result = string(value); + free(value); + + return result; +} + +string Os::GetLocalAppDataPath() +{ + return GetEnvVariable("LOCALAPPDATA"); +} + +string Os::GetTmpFolderPath() +{ + return GetEnvVariable("TMP"); +} + +long Os::ChangeShortcutTarget(const wchar_t* shortcut_path, const wchar_t* target_path) +{ + HRESULT hr; + IShellLink* psl; + IPersistFile* ppf; + + hr = CoInitialize(nullptr); + if (FAILED(hr)) { + return hr; + } + + hr = CoCreateInstance(CLSID_ShellLink, nullptr, CLSCTX_INPROC_SERVER, IID_IShellLink, reinterpret_cast(&psl)); + if (FAILED(hr)) { + CoUninitialize(); + return hr; + } + + hr = psl->QueryInterface(IID_IPersistFile, reinterpret_cast(&ppf)); + if (FAILED(hr)) { + psl->Release(); + CoUninitialize(); + return hr; + } + + hr = ppf->Load(shortcut_path, STGM_READWRITE); + if (FAILED(hr)) { + ppf->Release(); + psl->Release(); + CoUninitialize(); + return hr; + } + + hr = psl->SetPath(target_path); + if (FAILED(hr)) { + ppf->Release(); + psl->Release(); + CoUninitialize(); + return hr; + } + + hr = ppf->Save(shortcut_path, TRUE); + if (FAILED(hr)) { + ppf->Release(); + psl->Release(); + CoUninitialize(); + return hr; + } + + ppf->Release(); + psl->Release(); + CoUninitialize(); + + return 0; +} \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/Os.h b/src/ProtonVPN.InstallActions/Os.h index 1fd322fb6..897e52f0f 100644 --- a/src/ProtonVPN.InstallActions/Os.h +++ b/src/ProtonVPN.InstallActions/Os.h @@ -5,6 +5,10 @@ namespace Os { ProcessExecutionResult RunProcess(const wchar_t* application_path, std::wstring command_line_args); bool IsProcessRunning(const wchar_t* process_name); + std::string GetLocalAppDataPath(); + std::string GetTmpFolderPath(); + std::string GetEnvVariable(std::string name); + long ChangeShortcutTarget(const wchar_t* shortcut_path, const wchar_t* target_path); enum DriverState { @@ -15,4 +19,4 @@ namespace Os DeviceExists, Unknown }; -} +} \ No newline at end of file diff --git a/src/ProtonVPN.InstallActions/dllmain.cpp b/src/ProtonVPN.InstallActions/dllmain.cpp index 28cd936fa..36a98d5c1 100644 --- a/src/ProtonVPN.InstallActions/dllmain.cpp +++ b/src/ProtonVPN.InstallActions/dllmain.cpp @@ -9,13 +9,13 @@ #include "Logger.h" #include "Os.h" #include "Utils.h" -#include - #include "AppSettingsMigration.h" +#include #define EXPORT __declspec(dllexport) using namespace std; +namespace fs = std::filesystem; GUID providerGUID = {0x20865f68, 0x0b04, 0x44da, {0xbb, 0x83, 0x22, 0x38, 0x62, 0x25, 0x40, 0xfa}}; GUID sublayerGUID = {0xaa867e71, 0x5765, 0x4be3, {0x93, 0x99, 0x58, 0x15, 0x85, 0xc2, 0x26, 0xce}}; @@ -140,3 +140,22 @@ extern "C" EXPORT DWORD RestoreOldUserConfigFolder(const wchar_t* application_pa return 0; }); } + +extern "C" EXPORT DWORD UpdateTaskbarIconTarget(const wchar_t* launcher_path) +{ + fs::path taskbar_path = fs::path(Os::GetEnvVariable("APPDATA")) / fs::path(L"Microsoft\\Internet Explorer\\Quick Launch\\User Pinned\\TaskBar"); + fs::path v2_shorcut_path = fs::path(taskbar_path) / fs::path(L"Proton VPN.lnk"); + fs::path v3_shortcut_path = fs::path(taskbar_path) / fs::path(L"ProtonVPN.lnk"); + fs::path shortcut_path; + + if (fs::exists(v2_shorcut_path)) + { + shortcut_path = v2_shorcut_path; + } + else if (fs::exists(v3_shortcut_path)) + { + shortcut_path = v3_shortcut_path; + } + + return shortcut_path.empty() ? 0 : Os::ChangeShortcutTarget(shortcut_path.c_str(), launcher_path); +} \ No newline at end of file From 6a432e5940d52b259e1bfe6cd7e0d0a2def0fa72 Mon Sep 17 00:00:00 2001 From: proton-ci Date: Mon, 10 Apr 2023 06:03:33 +0000 Subject: [PATCH 29/39] i18n: Upgrade translations from crowdin (a728e21f). --- .../Properties/.locale-state.metadata | 2 +- .../Properties/Resources.be-BY.resx | 128 +++++++++--------- .../Properties/Resources.cs-CZ.resx | 2 +- .../Properties/Resources.de-DE.resx | 8 +- .../Properties/Resources.es-419.resx | 8 +- .../Properties/Resources.es-ES.resx | 2 +- .../Properties/Resources.fa-IR.resx | 24 ++-- .../Properties/Resources.fr-FR.resx | 2 +- .../Properties/Resources.hr-HR.resx | 2 +- .../Properties/Resources.id-ID.resx | 32 ++--- .../Properties/Resources.it-IT.resx | 2 +- .../Properties/Resources.nl-NL.resx | 4 +- .../Properties/Resources.pl-PL.resx | 6 +- .../Properties/Resources.pt-BR.resx | 8 +- .../Properties/Resources.pt-PT.resx | 48 +++---- .../Properties/Resources.ro-RO.resx | 14 +- .../Properties/Resources.tr-TR.resx | 10 +- .../Properties/Resources.uk-UA.resx | 2 +- 18 files changed, 152 insertions(+), 152 deletions(-) diff --git a/src/ProtonVPN.Translations/Properties/.locale-state.metadata b/src/ProtonVPN.Translations/Properties/.locale-state.metadata index f2770e5dd..9d9d64fab 100644 --- a/src/ProtonVPN.Translations/Properties/.locale-state.metadata +++ b/src/ProtonVPN.Translations/Properties/.locale-state.metadata @@ -1,4 +1,4 @@ { "project": "windows-vpn", - "locale": "2be72f1f0bf4b56b283f77f5cc783bde790b0045" + "locale": "f475e7f8ac2ca6ad4ef557737a3f51701bb51e8c" } \ No newline at end of file diff --git a/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx b/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx index 32d077057..3f251c56f 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.be-BY.resx @@ -316,11 +316,11 @@ The header of Account menu item in the main app window (opens Account window) - Падлучыцца + Падключыцца The header of Connect menu item in the Taskbar Notification Icon (Systray) context menu (connects to VPN using Quick Connect profile) - Адлучыцца + Адключыцца The header of Disconnect menu item in the Taskbar Notification Icon (Systray) context menu (disconnects from VPN profile) @@ -348,11 +348,11 @@ The header of Settings menu item in the main app window (opens Settings window) - Выхад з праграмы прывядзе да адлучэння ад VPN. Вы сапраўды хочаце працягнуць? + Выхад з праграмы прывядзе да адключэння ад VPN. Вы сапраўды хочаце працягнуць? The question displayed when trying to logout while connected to VPN - Для поўнага завяршэння працэсу абнаўлення, праграма часова адлучыцца ад сервера і адключыць пастаянны Kill Switch, калі што-небудзь працуе з гэтага. Вы сапраўды хочаце працягнуць? + Для поўнага завяршэння працэсу абнаўлення, Proton VPN часова адключыцца ад сервера і адключыць пастаянны Kill Switch, калі што-небудзь з гэтага зараз актыўна. Вы сапраўды хочаце працягнуць? The question displayed when trying to update the app while connected to VPN @@ -498,7 +498,7 @@ The VPN status displayed in Connecting overlay of main app window - Ініцыялізацыя падлучэння + Ініцыялізацыя падключэння The VPN status displayed in Connecting overlay of main app window @@ -510,7 +510,7 @@ The VPN status displayed in Connecting overlay of main app window - Ініцыялізацыя падлучэння + Ініцыялізацыя падключэння The VPN status displayed in Connecting overlay of main app window @@ -522,7 +522,7 @@ The text on retry button in Connecting overlay of main app window (retries connection to VPN) - Падлучэнне да + Падключэнне да The beginning of text for VPN server being connected to in Connecting overlay of main app window. It shall be translated as a text before imaginary placeholder {0} in the text string "Connecting to {0}". If translated text suppose to not include any text before the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. @@ -534,11 +534,11 @@ The end of text for VPN server being connected to in Connecting overlay of main app window. It shall be translated as the text after imaginary placeholder {0} in the text string "Connecting to {0}". If translated text suppose to not include any text after the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. - падлучэнне + падключэнне The end of text for Secure Core VPN server being connected to in Connecting overlay of main app window. It shall be translated as a text after imaginary placeholder {0} in the text string "Creating {0} connection". If translated text suppose to not include any text after the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. - Падлучэнне да + Падключэнне да The beginning of text for VPN server failed to connect to in Connecting overlay of main app window. It shall be translated as a text before imaginary placeholder {0} in the text string "Connection to {0} has failed". If translated text suppose to not include any text before the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. @@ -550,7 +550,7 @@ The end of text for VPN server failed to connect to in Connecting overlay of main app window. It shall be translated as a text after imaginary placeholder {0} in the text string "Connection to {0} has failed". If translated text suppose to not include any text after the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. - збой падлучэння + збой падключэння The end of text for Secure Core VPN server failed to connect to in Connecting overlay of main app window. It shall be translated as a text after imaginary placeholder {0} in the text string "The {0} connection has failed". If translated text suppose to not include any text after the placeholder {0} then please leave it empty. Do not include placeholder {0} into translated text. @@ -1583,7 +1583,7 @@ The "go to billing website" button text in the Delinquency window - Пасля аплаты вы зможаце зноў атрымаць доступ да прэміяльных функцый. Пакуль, мы вымушаны перападлучыць вас да самага хуткага сервера на тарыфным плане Free. + Вы зноў зможаце атрымаць доступ да прэміяльных функцый пасля аплаты рахункаў. Пакуль мы перападключаем вас да самага хуткага сервера, які даступны на тарыфным плане Free. The subtitle of the Delinquency window when the user is reconnected @@ -1619,7 +1619,7 @@ Некаторыя праграмы, такія як антывірус або аптымізатары камп'ютара, могуць умешвацца ў працу сістэмных служб, якія патрабуе Proton VPN для ўсталявання бяспечнага злучэння. Націснуўшы кнопку "Уключыць", вы дазваляеце Windows паўторна актываваць злучэнне служб Proton VPN.<LineBreak/>Калі праблема застанецца, то паспрабуйце перазапусціць камп'ютар або паўторна ўсталяваць ProtonVPN. - Некаторыя кампаненты Proton VPN могуць быць заблакіраваны або адключаны, што перашкаджае вам падлучыцца. Націсніце на кнопку "Уключыць", каб выправіць гэта.<LineBreak/>Звярніце ўвагу, што для гэтай аперацыі патрабуюцца правы адміністратара. + Некаторыя кампаненты Proton VPN могуць быць заблакіраваны або адключаны, што перашкаджае вам падключыцца. Націсніце на кнопку "Уключыць", каб выправіць гэта.<LineBreak/>Звярніце ўвагу, што для гэтай аперацыі патрабуюцца правы адміністратара. Адключыць Kill Switch @@ -1658,7 +1658,7 @@ The text displayed in Disconnect modal window if TAP error is detected - Выяўлена праблема з праверкай сертыфіката сервера VPN, якая можа ўказваць на тое, што сеткавае злучэнне перахоплена або сервер да якога вы спрабуеце падлучыцца мае праблемы з канфігурацыяй. Звярніцеся ў нашу службу падтрымкі, адправіўшы <Hyperlink Command="{Binding ReportBugCommand}"><Run Text="Issue Report"/></Hyperlink>. + Выяўлена праблема з праверкай сертыфіката сервера VPN, якая можа ўказваць на тое, што сеткавае злучэнне перахоплена або сервер да якога вы спрабуеце падключыцца мае праблемы з канфігурацыяй. Звярніцеся ў нашу службу падтрымкі, адправіўшы <Hyperlink Command="{Binding ReportBugCommand}"><Run Text="Issue Report"/></Hyperlink>. The error description displayed in Disconnect modal window if VPN server certificate validation error has occurred @@ -1691,13 +1691,13 @@ The text displayed in the login window modal when the user tries to close the app while kill switch is active or VPN is on. - Выхад з праграмы прывядзе да адлучэння ад VPN. + Выхад з праграмы прывядзе да адключэння ад VPN. Kill Switch блакіруе ўсе злучэнні, каб пазбегнуць уцечкі вашых даных. Выхад з праграмы прывядзе да адключэння Kill Switch. - Пастаянны Kill Switch уключаны. Выхад з праграмы заблакіруе ўсе выходныя злучэнні пакуль Proton VPN не падлучыцца зноў. + Пастаянны Kill Switch уключаны. Выхад з праграмы заблакіруе ўсе выходныя падключэнні пакуль Proton VPN не падключыцца зноў. Антыспамавая праверка @@ -1716,7 +1716,7 @@ The ok button text in the Maximum Device Limit window when the user already has the highest subscription plan - Адлучыце якую-небудзь прыладу для падлучэння гэтай. + Адключыце іншую прыладу для падключэння гэтай. The subtitle of the Maximum Device Limit window when the user already has the highest subscription plan @@ -1728,7 +1728,7 @@ The upgrade button text in the Maximum Device Limit window when the user can upgrade the subscription plan - Адлучыце якую-небудзь прыладу для падлучэння гэтай або палепшыце свой тарыфны план да PLUS, які падтрымлівае злучэнне да 10 прылад адначасова. + Адключыце іншую прыладу для падключэння гэтай або палепшыце свой тарыфны план да PLUS, які падтрымлівае падключэнне да 10 прылад адначасова. The subtitle of the Maximum Device Limit window when the user can upgrade the subscription plan @@ -1760,7 +1760,7 @@ The error message displayed on the outdated app window when the app version is outdated and kill switch is enabled - Злучэнне было разарвана па прычыне таго, што сервер да якога вы былі падлучаны не падтрымлівае трафік аднарангавых сетак (P2P). Таксама ўлічвайце, што P2P не падтрымліваецца на бясплатных серверах. Скарыстайцеся іншым серверам для P2P. + Злучэнне было разарвана па прычыне таго, што сервер да якога вы былі падключаны не падтрымлівае трафік аднарангавых сетак (P2P). P2P не падтрымліваецца на бясплатных серверах. Скарыстайцеся іншым серверам для P2P. The warning message displayed when P2P traffic is detected on servers not allowing it. @@ -1790,7 +1790,7 @@ An option of the subscriber benefits list in the Subscription Expired window - Падлучайце да 10 прылад адначасова + Падключайце да 10 прылад адначасова An option of the subscriber benefits list in the Subscription Expired window @@ -1802,7 +1802,7 @@ The text right before the subscriber benefits list in the Subscription Expired window - Ваша падпіска была паніжаная і таму, мы перападлучым вас на самы хуткі з даступных у гэты час сервераў. + Ваша падпіска была паніжана, таму мы перападключаем вас на самы хуткі з даступных у гэты час сервер. The subtitle of the Subscription Expired window when the user is reconnected @@ -1850,7 +1850,7 @@ The text displayed in troubleshooting modal window - <Bold>Праблема з пастаўшчыком паслуг інтэрнэту (ISP)</Bold> - Паспрабуйце падлучыцца да Proton з іншай сеткі (або скарыстайцеся <Hyperlink Command="{Binding TorCommand}">Tor</Hyperlink>). + <Bold>Праблема з пастаўшчыком паслуг інтэрнэту (ISP)</Bold> - Паспрабуйце падключыцца да Proton з іншай сеткі (або скарыстайцеся <Hyperlink Command="{Binding TorCommand}">Tor</Hyperlink>). The text displayed in troubleshooting modal window @@ -1873,7 +1873,7 @@ Пераключыцца на TAP - Proton VPN не змог падлучыцца таму, што зараз выкарыстоўваецца адаптар TUN. Адключыце ўсе актыўныя злучэнні з VPN і паспрабуйце яшчэ раз. Вы таксама можаце паспрабаваць пераключыцца на адаптар TAP (заўсёды можна вярнуцца на TUN у пашыраных наладах праграмы). + Proton VPN не змог падключыцца таму, што сеткавы адаптар TUN ужо выкарыстоўваецца. Адключыце ўсе актыўныя злучэнні з VPN і паспрабуйце яшчэ раз. Таксама можна пераключыцца на адаптар TAP. Вы заўсёды можаце вярнуцца на TUN у пашыраных наладах праграмы. Proton VPN не можа злучыцца па прычыне таго, што сеткавы адаптар WireGuard ужо выкарыстоўваецца. Адключыце ўсе актыўныя злучэнні з VPN і паспрабуйце яшчэ раз. Вы таксама можаце паспрабаваць выбраць іншы пратакол у пашыраных наладах праграмы. @@ -1977,14 +1977,14 @@ The text displayed on the bottom of Login window while logging in - Запускаць і падлучацца пры загрузцы + Запускаць і падключацца пры загрузцы Запускаць разам з Windows The label for Start with Windows toggle switch in Login window - Выконваецца падлучэнне да Proton VPN... + Выконваецца падключэнне да Proton VPN... The text displayed in login window when login takes longer than expected @@ -2069,19 +2069,19 @@ The label for uploaded data amount in Speed Graph on Map in main app window - ПАДЛУЧАНА + ПАДКЛЮЧАНА The connection status displayed in the Home section of the Map in main app window when not connected to VPN - АДЛУЧАНА + АДКЛЮЧАНА The connection status displayed in the Home section of the Map in main app window when connected to VPN - Падлучыцца + Падключыцца The text of Connect command in a balloon above Pin in Map (connects to the VPN) - Адлучыцца + Адключыцца The text of Disconnect command in a balloon above Pin in Map (disconnects from the VPN) @@ -2111,7 +2111,7 @@ The description of the Delinquency notification - Пасля аплаты вы зможаце зноў атрымаць доступ да прэміяльных функцый. Пакуль, мы вымушаны перападлучыць вас да самага хуткага сервера на тарыфным плане FREE. + Пасля аплаты вы зможаце зноў атрымаць доступ да прэміяльных функцый. Пакуль, мы перападключаем вас да самага хуткага даступнага сервера на тарыфным плане FREE. The description of the Delinquency notification when the user is reconnected @@ -2131,11 +2131,11 @@ Button displayed in the Insecure Wi-Fi notification when connected to insecure Wi-Fi network. - Выяўлена неабароненае падлучэнне па Wi-Fi: {0} + Выяўлена неабароненае падключэнне па Wi-Fi: {0} The message displayed in the Insecure Wi-Fi notification when connected to insecure Wi-Fi network. The {0} is a placeholder for Wi-Fi network name. - Адлучыце якую-небудзь прыладу для падлучэння гэтай. + Адключыце іншую прыладу для падключэння гэтай. The description of the Maximum Device Limit notification when the user already has the highest subscription plan @@ -2143,7 +2143,7 @@ The title of the Maximum Device Limit notification - Адлучыце якую-небудзь прыладу для падлучэння гэтай або палепшыце свой тарыфны план да PLUS, які падтрымлівае злучэнне да 10 прылад адначасова. + Адключыце іншую прыладу для падключэння гэтай або палепшыце свой тарыфны план да PLUS, які падтрымлівае падключэнне да 10 прылад адначасова. The description of the Maximum Device Limit notification when the user can upgrade the subscription plan @@ -2151,7 +2151,7 @@ The description of the Subscription Expired notification - Ваша падпіска была паніжаная і таму, мы перападлучым вас на самы хуткі з даступных у гэты час сервераў. Палепшыце яе, каб мець магчымасць карыстацца ўсімі функцыямі. + Ваша падпіска была паніжана і таму, мы перападключым вас на самы хуткі з даступных у гэты час сервер. Палепшыце падпіску, каб мець магчымасць карыстацца ўсімі функцыямі. The description of the Subscription Expired notification when the user is reconnected @@ -2171,11 +2171,11 @@ The message displayed in the Update notification when new app version is ready to install - ПАДЛУЧАНА да {0} + ПАДКЛЮЧАНА да {0} The message displayed in VPN state system notification when app connects to VPN. The {0} is a placeholder for server name. - АДЛУЧАНА + АДКЛЮЧАНА The message displayed in VPN state system notification when app disconnects from VPN @@ -2231,7 +2231,7 @@ Задаць гэты нумар у вашай праграме BitTorrent для павелічэння хуткасці. - Для таго, каб выкарыстоўваць перанакіраванне партоў, <Hyperlink Command="{Binding ConnectToBestP2PServerCommand}">падлучыцеся</Hyperlink> да сервера, які падтрымлівае аднарангавую сетку (P2P). + Для таго, каб выкарыстоўваць перанакіраванне партоў, <Hyperlink Command="{Binding ConnectToBestP2PServerCommand}">падключыцеся</Hyperlink> да сервера, які падтрымлівае аднарангавую сетку (P2P). Не ўдалося атрымаць сертыфікат аўтэнтыфікацыі Proton VPN па прычыне праблем з сеткай. @@ -2401,7 +2401,7 @@ The title of actions column in Profiles window - Падлучэнне + Падключэнне The title of VPN connection description column in Profiles window @@ -2453,7 +2453,7 @@ The text on Connect button in Quick Launch window (connects to the VPN using Quick Connect profile) - Адлучыцца + Адключыцца The text on Disconnect button in Quick Launch window (disconnects from VPN) @@ -2461,7 +2461,7 @@ The text on button in Quick Launch window (opens app) - Падлучэнне да + Падключэнне да The label for VPN server name in Quick Launch window. Part of the sentence "Connecting to {server name}". @@ -2508,7 +2508,7 @@ ПАЛЕПШЫЦЬ - Адключае інтэрнэт у выпадку разрыву падлучэння з VPN для прадухілення выпадковай уцечкі IP-адраса. + Адключае інтэрнэт у выпадку разрыву злучэння з VPN для прадухілення выпадковай уцечкі IP-адраса. Праглядайце старонкі ў інтэрнэце без рэкламы і шкодных праграм. @@ -2522,11 +2522,11 @@ - Data saved + Даныя захаваны - Прыблізны аб'ём рэкламы, праграм сачэння і шкодных праграм, якія NetShield заблакіраваў. + Прыблізны аб'ём рэкламы, праграм сачэння і шкодных праграм, якія заблакіраваў NetShield. @@ -2534,7 +2534,7 @@ - Праграмы сачэння (трэкеры) - гэта праграмнае забеспячэнне старонніх вэб-сайтаў, якія збіраюць, захоўваюць і прадаюць інфармацыю вашай актыўнасці ў інтэрнэце. + Праграмы сачэння (трэкеры) - гэта праграмнае забеспячэнне старонніх вэб-сайтаў, якія збіраюць, захоўваюць і прадаюць інфармацыю пра вашу дзейнасць у інтэрнэце. @@ -2616,11 +2616,11 @@ The heading of Secure Core server info displayed in Server Load popup. The {0} is a placeholder for entry country, {1} - exit country. Popup opens by pressing mouse button on server load image in Countries tab of Sidebar section of main app window. - Падлучыцца + Падключыцца The text on Connect button in Server list in Countries tab of Sidebar in main app window (connects to the VPN server) - Адлучыцца + Адключыцца The text on Disconnect button in Server list in Countries tab of Sidebar in main app window (disconnects from the VPN server) @@ -2639,11 +2639,11 @@ Proton VPN не змог абнавіць сертыфікат аўтэнтыфікацыі кліента. - Сервер, да якога вы спрабуеце падлучыцца, у дадзены момант па-за сеткай для тэхнічнага абслугоўвання. Выберыце іншы сервер або профіль. + Сервер, да якога вы спрабуеце падключыцца, у дадзены момант па-за сеткай для тэхнічнага абслугоўвання. Выберыце іншы сервер або профіль. The message displayed when connecting to server which is on maintenance - Сервер, да якога вы спрабуеце падлучыцца, быў выдалены. Выберыце іншы сервер або профіль. + Сервер, да якога вы спрабуеце падключыцца, быў выдалены. Выберыце іншы сервер або профіль. The message displayed when connecting to server which was removed and doesn't exist anymore @@ -2756,7 +2756,7 @@ The label for Split Tunneling toggle switch in Advanced tab of Settings window - Выключэнне праграм або IP-адрасоў з трафіка VPN або выключэнне толькі вызначаных праграм. Не можа быць уключана разам з Kill Switch. + Выключэнне праграм або IP-адрасоў з трафіка VPN або ўключэнне толькі вызначаных праграм. Не можа быць уключана разам з Kill Switch. The description of Split Tunneling setting displayed in the tooltip of ( i ) image next to the label for Split Tunneling toggle switch in Advanced tab of Settings window @@ -2810,7 +2810,7 @@ Умераны NAT - Умераны NAT адключае рандамізацыю пераназначаных лакальных адрасоў, якія могуць крыху паменшыць вашу бяспеку, але дазволіць такія метады, як прамое падлучэнне для праграм (напрыклад, сеткавыя гульні). + Умераны NAT адключае рандамізацыю пераназначэнняў лакальных адрасоў, што можа крыху паменшыць вашу бяспеку, але дазволіць такія метады, як прамое падключэнне для праграм (напрыклад, сеткавых гульняў). Хуткае злучэнне @@ -2821,15 +2821,15 @@ The description of Quick Connect settings displayed in the tooltip of ( i ) image next to the label for Quick Connect combo box in General tab of Settings window - Аўтаматычнае перападлучэнне + Аўтаматычнае перападключэнне The label for Auto Reconnect toggle switch in Settings window - Апавяшчэнне перападлучэння + Апавяшчэнні пра перападключэнне The label for Smart Reconnect notifications toggle switch in the General tab of Settings window - Уключыце, каб атрымліваць апавяшчэнні, калі VPN Accelerator падлучае вас да больш хуткага сервера. + Уключыце, каб атрымліваць апавяшчэнні, калі VPN Accelerator падключае вас да больш хуткага сервера. The description of the Smart Reconnect notifications setting displayed in the tooltip of the ( i ) image next to the label @@ -2845,7 +2845,7 @@ The description of VPN Accelerator setting displayed in the tooltip of the ( i ) image next to the label in Settings window - Падлучэнне + Падключэнне The title of Connection tab of Settings window @@ -2857,11 +2857,11 @@ The description of Automatic updates setting displayed in the tooltip of ( i ) image next to the label for Automatic updates toggle switch in General tab of Settings window - Падлучацца пры запуску праграмы + Падключыцца пры запуску праграмы The label for Connect on boot combo box in General tab of Settings window - Аўтаматычна падлучацца да профілю "Хуткае злучэнне" пры запуску Proton VPN. + Аўтаматычна падключацца да профілю "Хуткае злучэнне" пры запуску Proton VPN. The description of Connect on boot setting displayed in the tooltip of ( i ) image next to the label for Connect on boot combo box in General tab of Settings window @@ -2894,11 +2894,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of General tab in Settings window - Перападлучыцца + Перападключыцца The text of Reconnect hyperlink next to Reconnect Required message in Settings window (reconnects to same VPN server) - Некаторыя змены стануць актыўнымі толькі пасля перападлучэння. + Некаторыя змены стануць актыўнымі толькі пасля перападключэння. The message displayed on the bottom of Settings window if any of settings changes requires VPN to be reconnected to take effect @@ -2918,7 +2918,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The text on Quick Connect button in Connection section of Sidebar section of main app window (connects to VPN using Quick Connect profile) - Адлучыцца + Адключыцца The text on Disconnect button in Connection section of Sidebar section of main app window (disconnect from VPN) @@ -2926,7 +2926,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed on Connection section of Sidebar section of main app window - Каб у вас было бяспечнае злучэнне, падлучыцеся да сервера VPN. + Каб у вас было бяспечнае злучэнне, падключыцеся да сервера VPN. The text displayed in a tooltip of Connection section of Sidebar section of main app window @@ -3004,11 +3004,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The description of Secure Core feature displayed in a tooltip of ( i ) image next to Secure Core toggle switch label on Countries tab in Sidebar section of main app window - Адключэнне Secure Core прывядзе да адлучэння ад VPN. Вы сапраўды хочаце працягнуць? + Адключэнне Secure Core прывядзе да адключэння актыўнага злучэння з VPN. Вы сапраўды хочаце працягнуць? The confirmation message displayed when switching off Secure Core toggle switch in Countries tab of Sidebar section of main app window while connected to VPN - Пераключэнне на рэжым Secure Core прывядзе да адлучэння ад VPN. Вы сапраўды хочаце працягнуць? + Пераключэнне на рэжым Secure Core прывядзе да адключэння актыўнага злучэння з VPN. Вы сапраўды хочаце працягнуць? The confirmation message displayed when switching on Secure Core toggle switch in Countries tab of Sidebar section of main app window while connected to VPN @@ -3016,7 +3016,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of Countries tab in Sidebar section of main app window - BASIC і PLUS + BASIC & PLUS Даведацца больш @@ -3078,7 +3078,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Функцыі - Каб пачаць трансляцыю, падлучыцеся да сервера Plus у гэтай краіне. + Каб пачаць трансляцыю, падключыцеся да сервера Plus у гэтай краіне. Нататка: скарыстайцеся новай укладкай браўзера і/або ачысціце кэш, каб пераканацца, што з'явілася новае змесціва. @@ -3163,7 +3163,7 @@ This setting instructs the Proton VPN to start automatically when the user logs І шмат іншых прэміяльных функцый - Падлучайце да 10 прылад адначасова + Падключайце да 10 прылад адначасова Калі вы паляпшаеце да Plus diff --git a/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx b/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx index 0be62f9eb..2b6b7bdd6 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.cs-CZ.resx @@ -2522,7 +2522,7 @@ Podle pokynů <Hyperlink Command="{Binding OpenArticleCommand}"><Run Te - Data saved + Data byla uložena diff --git a/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx b/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx index 5906f3a66..235fbf7bb 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.de-DE.resx @@ -255,7 +255,7 @@ The name of VPN subscription plan - „Secure Core“-VPN + Secure Core VPN The text displayed in Account window @@ -2395,7 +2395,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The message displayed when trying to connect to country with no servers available - Dieses Profil wird gelöscht. Möchten Sie fortfahren? + Dieses Profil wird gelöscht. Möchtest du fortfahren? The confirmation message displayed when deleting profile in Profiles window @@ -2492,7 +2492,7 @@ Bitte folge <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Data saved + Daten gespart @@ -3095,7 +3095,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The description of the Auto Reconnection tooltip - VPN-Beschleuniger + VPN Accelerator The title of the Auto Reconnection tooltip diff --git a/src/ProtonVPN.Translations/Properties/Resources.es-419.resx b/src/ProtonVPN.Translations/Properties/Resources.es-419.resx index cdaaa6b7f..cdf159ad0 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.es-419.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.es-419.resx @@ -255,7 +255,7 @@ The name of VPN subscription plan - VPN Secure Core + Secure Core VPN The text displayed in Account window @@ -2492,7 +2492,7 @@ Siga <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="estas - Data saved + Datos guardados @@ -2986,7 +2986,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of Countries tab in Sidebar section of main app window - BASIC y PLUS + BASIC & PLUS Más información @@ -3221,7 +3221,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Protocol name displayed all over the app (do not translate) - Inteligente + Smart The name of the VPN protocol. Means that the protocol will be automatically selected when connecting. diff --git a/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx b/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx index 1d09438d1..e6fb943e0 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.es-ES.resx @@ -2986,7 +2986,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of Countries tab in Sidebar section of main app window - BASIC y PLUS + BASIC & PLUS Más información diff --git a/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx b/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx index cef521fab..be40f56d8 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.fa-IR.resx @@ -219,7 +219,7 @@ دستگاه‌ - Proton VPN رایگان + Proton VPN Free The name of VPN subscription plan @@ -2519,7 +2519,7 @@ Secure Core سرعت VPN را ممکن است کاهش دهد - هسته امن [Secure Core] + Secure Core استاندارد @@ -2806,7 +2806,7 @@ The description of Auto Reconnect setting displayed in the tooltip of the ( i ) image next to the label in Settings window - شتاب دهنده VPN + VPN Accelerator The label for VPN Accelerator toggle switch in Settings window @@ -2954,7 +2954,7 @@ This setting instructs the Proton VPN to start automatically when the user logs سرورهای داخلی - مسیریابی هوشمند + Smart Routing تحت تعمیرات @@ -2985,7 +2985,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of Countries tab in Sidebar section of main app window - پایه & پلاس + BASIC & PLUS بیشتر بدانید @@ -3000,7 +3000,7 @@ This setting instructs the Proton VPN to start automatically when the user logs PLUS - مسیریابی هوشمند + Smart Routing این فناوری به ProtonVPN اجازه می‌دهد تا در کشورهایی که ارائهٔ خدمات در آن‌ها دشوار است، سرعت و امنیت بالاتری را ارائه کند. @@ -3094,7 +3094,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The description of the Auto Reconnection tooltip - شتاب دهنده VPN + VPN Accelerator The title of the Auto Reconnection tooltip @@ -3196,15 +3196,15 @@ This setting instructs the Proton VPN to start automatically when the user logs The text on Upgrade button in Upgrade Required Upsell window (opens web page for subscription plan upgrade) - Proton VPN رایگان + Proton VPN Free The name of VPN subscription plan - طرح Proton رویایی + Proton Visionary The name of VPN subscription plan - Proton VPN پایه + Proton VPN Basic The name of VPN subscription plan @@ -3212,7 +3212,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The name of VPN subscription plan - OpenVPN - TCP + OpenVPN (TCP) Protocol name displayed all over the app (do not translate) @@ -3220,7 +3220,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Protocol name displayed all over the app (do not translate) - هوشمند + Smart The name of the VPN protocol. Means that the protocol will be automatically selected when connecting. diff --git a/src/ProtonVPN.Translations/Properties/Resources.fr-FR.resx b/src/ProtonVPN.Translations/Properties/Resources.fr-FR.resx index 04b51e1e1..657dd7fed 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.fr-FR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.fr-FR.resx @@ -255,7 +255,7 @@ The name of VPN subscription plan - VPN Secure Core + Secure Core VPN The text displayed in Account window diff --git a/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx b/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx index d30b5f22d..f3d6f7bdd 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.hr-HR.resx @@ -3001,7 +3001,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of Countries tab in Sidebar section of main app window - BASIC i PLUS + BASIC & PLUS Learn more diff --git a/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx b/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx index 96e13254a..6d26be9a4 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.id-ID.resx @@ -246,7 +246,7 @@ The name of VPN subscription plan - VPN Secure Core + Secure Core VPN The text displayed in Account window @@ -1590,7 +1590,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The text on Disable button in Disconnect modal window - Tingkatkan Akun + Tingkatkan The text on Upgrade button in Disconnect modal window @@ -1688,7 +1688,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The title of the Maximum Device Limit window - Tingkatkan Akun + Tingkatkan The upgrade button text in the Maximum Device Limit window when the user can upgrade the subscription plan @@ -1922,7 +1922,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The description of error displayed in Login window - Otentikasi + Autentikasi Masuk @@ -1952,7 +1952,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The text displayed in login window when login takes longer than expected - Kode otentikasi dua faktor + Kode autentikasi dua faktor Nama pengguna @@ -1991,7 +1991,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The text of hyperlink in Need Help popup of Login window (opens web page for resetting user password) - Kode otentikasi dua faktor tidak tepat + Kode autentikasi dua faktor tidak tepat Kredensial masuk salah. Silakan coba lagi. @@ -2198,7 +2198,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Untuk dapat menggunakan Port Forwarding, mohon <Hyperlink Command="{Binding ConnectToBestP2PServerCommand}">hubungkan</Hyperlink> diri Anda ke server yang mendukung P2P. - Proton VPN tidak dapat mengambil sertifikat otentikasi karena masalah jaringan. + Proton VPN tidak dapat mengambil sertifikat autentikasi karena masalah jaringan. Gagal @@ -2460,7 +2460,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text Secure Core Aktif - TINGKATKAN AKUN + TINGKATKAN Menonaktifkan internet pada saat koneksi VPN terputus untuk mencegah kebocoran IP. @@ -2477,7 +2477,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text - Data saved + Data disimpan @@ -2579,11 +2579,11 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The text on Disconnect button in Server list in Countries tab of Sidebar in main app window (disconnects from the VPN server) - Tingkatkan Akun + Tingkatkan The text on Upgrade button in Server list in Countries tab of Sidebar in main app window (opens Upgrade Required Upsell window) - Tingkatkan Akun + Tingkatkan The label displayed next to server name in Server list in Countries tab of Sidebar in main app window @@ -2591,7 +2591,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The label displayed before entry country name in Server list of Countries tab of Sidebar section of main app window when Secure Core mode is enabled - Proton VPN tidak dapat memuat ulang sertifikat otentikasi klien. + Proton VPN tidak dapat memuat ulang sertifikat autentikasi klien. Server yang coba anda sambung saat ini sedang luring untuk pemeliharaaan. Silahkan pilih server atau profil yang lain. @@ -2742,7 +2742,7 @@ Mohon ikuti <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text The text displayed in Custom DNS Servers warning modal window when use is trying to turn the feature ON when NetShield feature is turned on as well - Tingkatkan Akun + Tingkatkan The text on Upgrade button in Connection tab of Settings window @@ -2881,7 +2881,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The text displayed on Connection section of Sidebar section of main app window - Hubungkan diri Anda ke server VPN untuk mendapatkan koneksi yang aman. + Hubungkan diri Anda ke server VPN untuk memperoleh koneksi yang aman. The text displayed in a tooltip of Connection section of Sidebar section of main app window @@ -3133,7 +3133,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The button label in "allow non-standard ports" modal - Tingkatkan Akun + Tingkatkan The button label in "allow non-standard ports" modal @@ -3169,7 +3169,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Enkripsi berganda dengan Secure Core - Tingkatkan Akun + Tingkatkan The text on Upgrade button in Upgrade Required Upsell window (opens web page for subscription plan upgrade) diff --git a/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx b/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx index dfa4cb752..efa29af23 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.it-IT.resx @@ -255,7 +255,7 @@ The name of VPN subscription plan - VPN Secure Core + Secure Core VPN The text displayed in Account window diff --git a/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx b/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx index 89ab9a7ff..685ee4ebc 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.nl-NL.resx @@ -2955,7 +2955,7 @@ This setting instructs the Proton VPN to start automatically when the user logs INTERNE servers - Slimme routering + Smart Routing In onderhoud @@ -3001,7 +3001,7 @@ This setting instructs the Proton VPN to start automatically when the user logs PLUS - Slimme routering + Smart Routing Met deze technologie kan Proton VPN hogere snelheid en beveiliging bieden in landen waar de toegang tot VPNs beperkt is. diff --git a/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx b/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx index da4a4ca01..cbc51f6bb 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.pl-PL.resx @@ -3016,19 +3016,19 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of Countries tab in Sidebar section of main app window - BASIC i PLUS + BASIC & PLUS Dowiedz się więcej - P2P / BitTorrent + P2P/BitTorrent Te serwery zapewniają najlepszą wydajność dla protokołu BitTorrent i udostępniania plików. - PLAN PLUS + PLUS Smart Routing diff --git a/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx b/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx index b6afec23f..f66da9a5e 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.pt-BR.resx @@ -227,7 +227,7 @@ The text displayed in Account window - <Bold>Máxima</Bold> velocidade ( até 10Gbps) + <Bold>Máxima</Bold> velocidade (até 10Gbps) The text displayed in Account window @@ -255,7 +255,7 @@ The name of VPN subscription plan - VPN Secure Core + Secure Core VPN The text displayed in Account window @@ -324,7 +324,7 @@ The header of Settings menu item in the main app window (opens Settings window) - Encerrar a sessão do programa irá desconectar a conexão VPN ativa. Você tem certeza que deseja continuar? + Sair do aplicativo desconectará a conexão VPN ativa. Você quer continuar? The question displayed when trying to logout while connected to VPN @@ -2492,7 +2492,7 @@ Por favor, siga as <Hyperlink Command="{Binding OpenArticleCommand}"><R - Data saved + Dados economizados diff --git a/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx b/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx index 9e598f24d..1a3024821 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.pt-PT.resx @@ -219,7 +219,7 @@ Dispositivos - Proton VPN Gratuito + Proton VPN Free The name of VPN subscription plan @@ -255,7 +255,7 @@ The name of VPN subscription plan - VPN Secure Core + Secure Core VPN The text displayed in Account window @@ -375,7 +375,7 @@ Não funcionou? - E-mail + Correio electrónico The label for user e-mail address in Issue Report window @@ -443,7 +443,7 @@ The text displayed in report an issue form. For example: Step 1 of 3. - Email inválido + Correio electrónico no válido A enviar relatório... @@ -618,7 +618,7 @@ The name of BG country - Bahrain + Barém The name of BH country @@ -626,7 +626,7 @@ The name of BI country - Benin + Benim The name of BJ country @@ -654,7 +654,7 @@ The name of BR country - Bahamas + Baamas The name of BS country @@ -666,7 +666,7 @@ The name of BV country - Botswana + Botsuana The name of BW country @@ -750,7 +750,7 @@ The name of CY country - Czechia + Tchéquia The name of CZ country @@ -758,7 +758,7 @@ The name of DE country - Djibouti + Djibuti The name of DJ country @@ -998,11 +998,11 @@ The name of KH country - Kiribati + Quiribati The name of KI country - Comoros + Comores The name of KM country @@ -1054,7 +1054,7 @@ The name of LR country - Lesotho + Lesoto The name of LS country @@ -1110,7 +1110,7 @@ The name of ML country - Myanmar + Mianmar The name of MM country @@ -1150,7 +1150,7 @@ The name of MV country - Malawi + Malauí The name of MW country @@ -1378,7 +1378,7 @@ The name of SY country - Eswatini + Suazilândia The name of SZ country @@ -1406,7 +1406,7 @@ The name of TJ country - Tokelau + Toquelau The name of TK country @@ -1510,11 +1510,11 @@ The name of WS country - Yemen + Iémen The name of YE country - Mayotte + Maiote The name of YT country @@ -1842,7 +1842,7 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< The text displayed in troubleshooting modal window - <Bold>Ainda não foi possível encontrar uma solução</Bold> - contacte-nos directamente através do nosso <Hyperlink Command="{Binding SupportFormCommand}">formulário de suporte</Hyperlink>, email (support@protonvpn.com) ou <Hyperlink Command="{Binding ProtonTwitterCommand}">Twitter</Hyperlink>. + <Bold>Ainda não foi possível encontrar uma solução</Bold> - contacte-nos directamente através do nosso <Hyperlink Command="{Binding SupportFormCommand}">formulário de suporte</Hyperlink>, correio electrónico (support@protonvpn.com) ou <Hyperlink Command="{Binding ProtonTwitterCommand}">Twitter</Hyperlink>. The text displayed in troubleshooting modal window @@ -1937,7 +1937,7 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< Autenticar - Sign in + Iniciar sessão The text on Login button in Login window (logs in the user) @@ -1945,7 +1945,7 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< The text displayed on the login window when user was force logged out while kill switch is active - Senha + Palavra-passe The label for Password text box in Login window @@ -1999,7 +1999,7 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< The text of hyperlink in Need Help popup of Login window (opens a modal to report a potential bug) - Repor senha + Reinicializar a palavra-passe The text of hyperlink in Need Help popup of Login window (opens web page for resetting user password) @@ -2135,7 +2135,7 @@ Siga as instruções <Hyperlink Command="{Binding OpenArticleCommand}">< The title of the Subscription Expired notification - Restart + Reiniciar The content of the button to automatically restart the application in order to install the latest version available. Appears in the about dialog. diff --git a/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx b/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx index 9f61a06c8..a6a7d67fc 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.ro-RO.resx @@ -264,7 +264,7 @@ The name of VPN subscription plan - VPN Secure Core + Secure Core VPN The text displayed in Account window @@ -2073,7 +2073,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th The text of Disconnect command in a balloon above Pin in Map (disconnects from the VPN) - Nucleu securizat + Secure Core The part of text displayed in a balloon above Secure Core Pin in Map. The full text is "(Secure Core) country name". @@ -2507,7 +2507,7 @@ Urmați <Hyperlink Command="{Binding OpenArticleCommand}"><Run Text="th - Data saved + Date salvate @@ -3001,7 +3001,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of Countries tab in Sidebar section of main app window - PLUS + BASIC & PLUS Detalii @@ -3013,7 +3013,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Aceste servere oferă cea mai bună performanță pentru BitTorrent și partajarea de fișiere. - Plus + PLUS Smart Routing @@ -3237,11 +3237,11 @@ This setting instructs the Proton VPN to start automatically when the user logs The name of VPN subscription plan - OpenVPN - (TCP) + OpenVPN (TCP) Protocol name displayed all over the app (do not translate) - OpenVPN - (UDP) + OpenVPN (UDP) Protocol name displayed all over the app (do not translate) diff --git a/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx b/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx index cf2ac4993..c7db397f2 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.tr-TR.resx @@ -2491,7 +2491,7 @@ - Data saved + Kazanılan veri @@ -2954,7 +2954,7 @@ This setting instructs the Proton VPN to start automatically when the user logs Internal sunucuları - Akıllı yöneltme + Smart Routing Bakım yapılıyor @@ -2985,7 +2985,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of Countries tab in Sidebar section of main app window - Basic ve Plus + BASIC & PLUS Ayrıntılı bilgi alın @@ -2997,10 +2997,10 @@ This setting instructs the Proton VPN to start automatically when the user logs Bu sunucular, BitTorrent ve dosya paylaşımı için en iyi başarımı sağlar. - Plus + PLUS - Akıllı yöneltme + Smart Routing Bu teknoloji, hizmet verilmesi zor ülkelerde Proton VPN için daha yüksek hız ve güvenlik sağlar. diff --git a/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx b/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx index bc09e206b..73b18372f 100644 --- a/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx +++ b/src/ProtonVPN.Translations/Properties/Resources.uk-UA.resx @@ -3017,7 +3017,7 @@ This setting instructs the Proton VPN to start automatically when the user logs The title of Countries tab in Sidebar section of main app window - BASIC та PLUS + BASIC & PLUS Докладніше From 0b917fd8f9c7bd7c4f4b33052bdf92f786feb070 Mon Sep 17 00:00:00 2001 From: Mindaugas Veblauskas Date: Fri, 31 Mar 2023 14:22:36 +0300 Subject: [PATCH 30/39] Change app version header [VPNWIN-1146] --- src/Api/ProtonVPN.Api/ApiAppVersion.cs | 2 +- src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Api/ProtonVPN.Api/ApiAppVersion.cs b/src/Api/ProtonVPN.Api/ApiAppVersion.cs index 44c980a2e..e213295b3 100644 --- a/src/Api/ProtonVPN.Api/ApiAppVersion.cs +++ b/src/Api/ProtonVPN.Api/ApiAppVersion.cs @@ -33,7 +33,7 @@ public ApiAppVersion(IConfiguration appConfig) public string Value() { - return $"{_appConfig.ApiClientId}_{GetVersion()}"; + return $"{_appConfig.ApiClientId}@{GetVersion()}"; } public string UserAgent() diff --git a/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs b/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs index e29d82ad6..5225a244c 100644 --- a/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs +++ b/src/ProtonVPN.Common/Configuration/Source/DefaultConfig.cs @@ -105,7 +105,7 @@ public IConfiguration Value() MaxServiceLogsAttached = 3, - ApiClientId = "WindowsVPN", + ApiClientId = "windows-vpn", ApiVersion = "3", From fd7e6e2fbc36cdc44b09999ab348ad58db722d78 Mon Sep 17 00:00:00 2001 From: Mindaugas Veblauskas Date: Fri, 7 Apr 2023 16:33:35 +0300 Subject: [PATCH 31/39] Fix stuck connect action [VPNWIN-1452] --- src/ProtonVPN.App/Modals/DisconnectErrorModalViewModel.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/ProtonVPN.App/Modals/DisconnectErrorModalViewModel.cs b/src/ProtonVPN.App/Modals/DisconnectErrorModalViewModel.cs index fd3d83104..45bf2183b 100644 --- a/src/ProtonVPN.App/Modals/DisconnectErrorModalViewModel.cs +++ b/src/ProtonVPN.App/Modals/DisconnectErrorModalViewModel.cs @@ -17,7 +17,6 @@ * along with ProtonVPN. If not, see . */ -using System; using System.Threading.Tasks; using System.Windows.Input; using GalaSoft.MvvmLight.Command; @@ -151,10 +150,7 @@ await _vpnManager.ReconnectAsync(new VpnReconnectionSettings private async Task CloseModalAsync() { - // If TryClose() is called before any await (that actually awaits), Caliburn will throw a - // NullReferenceException after OnViewReady() ends. - await Task.Delay(TimeSpan.FromMilliseconds(1)); - TryClose(true); + await TryCloseAsync(true); } private async Task ReconnectWithoutLastServerAsync() From 6709223a53b05ecc9fe58002874de98903735b07 Mon Sep 17 00:00:00 2001 From: Eduardo Abreu Date: Wed, 12 Apr 2023 09:08:57 +0000 Subject: [PATCH 32/39] Remove profile synchronization [VPNWIN-1417] --- .../Events/EventResponse.cs | 4 - .../Events/VpnProfilesResponse.cs | 35 -- src/Api/ProtonVPN.Api.Contracts/IApiClient.cs | 5 - .../Profiles/BaseProfileResponse.cs | 41 -- .../Profiles/ProfileResponse.cs | 29 -- .../Profiles/ProfileWrapperResponse.cs | 28 -- .../Profiles/ProfilesResponse.cs | 29 -- src/Api/ProtonVPN.Api/ApiClient.cs | 28 -- src/ProtonVPN.App/Core/Bootstraper.cs | 10 - src/ProtonVPN.App/Core/Ioc/AppModule.cs | 2 - src/ProtonVPN.App/Core/Ioc/CoreModule.cs | 2 - .../Profiles/ProfileListModalView.xaml | 79 +--- .../Profiles/ProfileListModalViewModel.cs | 59 +-- .../Profiles/ProfileSyncViewModel.cs | 114 ------ .../Profiles/ProfileViewModel.cs | 19 - src/ProtonVPN.App/Profiles/Style.xaml | 56 --- .../Migrations/v1_7_2/MigratedProfile.cs | 2 - .../Windows/BaseWindowViewModel.cs | 1 - src/ProtonVPN.Common/Configuration/Config.cs | 3 - .../Configuration/IConfiguration.cs | 3 - .../Configuration/Source/DefaultConfig.cs | 2 - .../Threading/CoalescingAction.cs | 18 +- .../Events/VpnProfileHandler.cs | 45 --- src/ProtonVPN.Core/Profiles/ApiProfiles.cs | 219 ----------- .../Profiles/IProfileSyncStatusAware.cs | 28 -- .../Profiles/ISyncProfileStorage.cs | 26 -- src/ProtonVPN.Core/Profiles/Profile.cs | 2 - .../Profiles/ProfileExtensions.cs | 23 +- src/ProtonVPN.Core/Profiles/ProfileManager.cs | 29 +- .../Profiles/ProfileSyncStatus.cs | 29 -- .../ProfileSyncStatusChangedEventArgs.cs | 39 -- src/ProtonVPN.Core/Profiles/Profiles.cs | 16 +- src/ProtonVPN.Core/Profiles/SyncProfile.cs | 357 ------------------ src/ProtonVPN.Core/Profiles/SyncProfiles.cs | 282 ++------------ .../Properties/Resources.Designer.cs | 90 ----- .../Properties/Resources.resx | 40 -- .../Profiles/ProfileExtensionsTest.cs | 12 - src/Tests/TestTools.ApiClient/Api.cs | 10 - src/Tests/TestTools.ApiClient/Client.cs | 33 -- src/Tests/TestTools.ProfileCleaner/Program.cs | 3 +- 40 files changed, 104 insertions(+), 1748 deletions(-) delete mode 100644 src/Api/ProtonVPN.Api.Contracts/Events/VpnProfilesResponse.cs delete mode 100644 src/Api/ProtonVPN.Api.Contracts/Profiles/BaseProfileResponse.cs delete mode 100644 src/Api/ProtonVPN.Api.Contracts/Profiles/ProfileResponse.cs delete mode 100644 src/Api/ProtonVPN.Api.Contracts/Profiles/ProfileWrapperResponse.cs delete mode 100644 src/Api/ProtonVPN.Api.Contracts/Profiles/ProfilesResponse.cs delete mode 100644 src/ProtonVPN.App/Profiles/ProfileSyncViewModel.cs delete mode 100644 src/ProtonVPN.Core/Events/VpnProfileHandler.cs delete mode 100644 src/ProtonVPN.Core/Profiles/ApiProfiles.cs delete mode 100644 src/ProtonVPN.Core/Profiles/IProfileSyncStatusAware.cs delete mode 100644 src/ProtonVPN.Core/Profiles/ISyncProfileStorage.cs delete mode 100644 src/ProtonVPN.Core/Profiles/ProfileSyncStatus.cs delete mode 100644 src/ProtonVPN.Core/Profiles/ProfileSyncStatusChangedEventArgs.cs delete mode 100644 src/ProtonVPN.Core/Profiles/SyncProfile.cs diff --git a/src/Api/ProtonVPN.Api.Contracts/Events/EventResponse.cs b/src/Api/ProtonVPN.Api.Contracts/Events/EventResponse.cs index 8ba7aa694..fdd29fafe 100644 --- a/src/Api/ProtonVPN.Api.Contracts/Events/EventResponse.cs +++ b/src/Api/ProtonVPN.Api.Contracts/Events/EventResponse.cs @@ -17,7 +17,6 @@ * along with ProtonVPN. If not, see . */ -using System.Collections.Generic; using Newtonsoft.Json; using ProtonVPN.Api.Contracts.Auth; using ProtonVPN.Api.Contracts.Common; @@ -31,8 +30,5 @@ public class EventResponse : BaseResponse [JsonProperty("VPNSettings")] public VpnInfoWrapperResponse VpnSettings { get; set; } - - [JsonProperty("VPNProfiles")] - public List VpnProfiles { get; set; } } } \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Contracts/Events/VpnProfilesResponse.cs b/src/Api/ProtonVPN.Api.Contracts/Events/VpnProfilesResponse.cs deleted file mode 100644 index 4c38af399..000000000 --- a/src/Api/ProtonVPN.Api.Contracts/Events/VpnProfilesResponse.cs +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using Newtonsoft.Json; -using ProtonVPN.Api.Contracts.Profiles; - -namespace ProtonVPN.Api.Contracts.Events -{ - public class VpnProfilesResponse - { - [JsonProperty("ID")] - public string Id { get; set; } - - public byte Action { get; set; } - - [JsonProperty("VPNProfile")] - public ProfileResponse VpnProfile { get; set; } - } -} \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Contracts/IApiClient.cs b/src/Api/ProtonVPN.Api.Contracts/IApiClient.cs index c22044bf3..c3ac1416f 100644 --- a/src/Api/ProtonVPN.Api.Contracts/IApiClient.cs +++ b/src/Api/ProtonVPN.Api.Contracts/IApiClient.cs @@ -26,7 +26,6 @@ using ProtonVPN.Api.Contracts.Events; using ProtonVPN.Api.Contracts.Geographical; using ProtonVPN.Api.Contracts.Partners; -using ProtonVPN.Api.Contracts.Profiles; using ProtonVPN.Api.Contracts.ReportAnIssue; using ProtonVPN.Api.Contracts.Servers; using ProtonVPN.Api.Contracts.Streaming; @@ -49,10 +48,6 @@ public interface IApiClient : IClientBase Task> GetLocationDataAsync(); Task> ReportBugAsync(IEnumerable> fields, IEnumerable files); Task> GetSessions(); - Task> GetProfiles(); - Task> CreateProfile(BaseProfileResponse profile); - Task> UpdateProfile(string id, BaseProfileResponse profile); - Task> DeleteProfile(string id); Task> GetVpnConfig(); Task> GetAnnouncementsAsync(AnnouncementsRequest request); Task> GetStreamingServicesAsync(); diff --git a/src/Api/ProtonVPN.Api.Contracts/Profiles/BaseProfileResponse.cs b/src/Api/ProtonVPN.Api.Contracts/Profiles/BaseProfileResponse.cs deleted file mode 100644 index c24d0400f..000000000 --- a/src/Api/ProtonVPN.Api.Contracts/Profiles/BaseProfileResponse.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using Newtonsoft.Json; - -namespace ProtonVPN.Api.Contracts.Profiles -{ - public class BaseProfileResponse - { - public string Name { get; set; } - - public int Protocol { get; set; } - - public string Color { get; set; } - - public int Features { get; set; } - - public int Type { get; set; } - - public string Country { get; set; } - - [JsonProperty("LogicalID")] - public string LogicalId { get; set; } - } -} \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Contracts/Profiles/ProfileResponse.cs b/src/Api/ProtonVPN.Api.Contracts/Profiles/ProfileResponse.cs deleted file mode 100644 index 714645027..000000000 --- a/src/Api/ProtonVPN.Api.Contracts/Profiles/ProfileResponse.cs +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using Newtonsoft.Json; - -namespace ProtonVPN.Api.Contracts.Profiles -{ - public class ProfileResponse : BaseProfileResponse - { - [JsonProperty("ID")] - public string Id { get; set; } - } -} \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Contracts/Profiles/ProfileWrapperResponse.cs b/src/Api/ProtonVPN.Api.Contracts/Profiles/ProfileWrapperResponse.cs deleted file mode 100644 index 0a8fbf75e..000000000 --- a/src/Api/ProtonVPN.Api.Contracts/Profiles/ProfileWrapperResponse.cs +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using ProtonVPN.Api.Contracts.Common; - -namespace ProtonVPN.Api.Contracts.Profiles -{ - public class ProfileWrapperResponse : BaseResponse - { - public ProfileResponse Profile { get; set; } - } -} \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api.Contracts/Profiles/ProfilesResponse.cs b/src/Api/ProtonVPN.Api.Contracts/Profiles/ProfilesResponse.cs deleted file mode 100644 index f943a777e..000000000 --- a/src/Api/ProtonVPN.Api.Contracts/Profiles/ProfilesResponse.cs +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2023 Proton AG - * - * This file is part of ProtonVPN. - * - * ProtonVPN is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ProtonVPN is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with ProtonVPN. If not, see . - */ - -using System.Collections.Generic; -using ProtonVPN.Api.Contracts.Common; - -namespace ProtonVPN.Api.Contracts.Profiles -{ - public class ProfilesResponse : BaseResponse - { - public IReadOnlyList Profiles { get; set; } - } -} \ No newline at end of file diff --git a/src/Api/ProtonVPN.Api/ApiClient.cs b/src/Api/ProtonVPN.Api/ApiClient.cs index 7f497dbb7..d35ce2c87 100644 --- a/src/Api/ProtonVPN.Api/ApiClient.cs +++ b/src/Api/ProtonVPN.Api/ApiClient.cs @@ -29,7 +29,6 @@ using ProtonVPN.Api.Contracts.Events; using ProtonVPN.Api.Contracts.Geographical; using ProtonVPN.Api.Contracts.Partners; -using ProtonVPN.Api.Contracts.Profiles; using ProtonVPN.Api.Contracts.ReportAnIssue; using ProtonVPN.Api.Contracts.Servers; using ProtonVPN.Api.Contracts.Streaming; @@ -160,33 +159,6 @@ public async Task> GetSessions() return await SendRequest(request, "Get sessions"); } - public async Task> GetProfiles() - { - HttpRequestMessage request = GetAuthorizedRequest(HttpMethod.Get, "vpn/profiles"); - return await SendRequest(request, "Get profiles"); - } - - public async Task> CreateProfile(BaseProfileResponse profile) - { - HttpRequestMessage request = GetAuthorizedRequest(HttpMethod.Post, "vpn/profiles"); - request.Content = GetJsonContent(profile); - return await SendRequest(request, "Create profile"); - } - - public async Task> UpdateProfile(string id, - BaseProfileResponse profile) - { - HttpRequestMessage request = GetAuthorizedRequest(HttpMethod.Put, $"vpn/profiles/{id}"); - request.Content = GetJsonContent(profile); - return await SendRequest(request, "Update profile"); - } - - public async Task> DeleteProfile(string id) - { - HttpRequestMessage request = GetAuthorizedRequest(HttpMethod.Delete, $"vpn/profiles/{id}"); - return await SendRequest(request, "Delete profile"); - } - public async Task> GetVpnConfig() { HttpRequestMessage request = GetAuthorizedRequest(HttpMethod.Get, "vpn/v2/clientconfig"); diff --git a/src/ProtonVPN.App/Core/Bootstraper.cs b/src/ProtonVPN.App/Core/Bootstraper.cs index 6e1c6f2cc..358d1050a 100644 --- a/src/ProtonVPN.App/Core/Bootstraper.cs +++ b/src/ProtonVPN.App/Core/Bootstraper.cs @@ -372,15 +372,6 @@ private void RegisterEvents() } }; - Resolve().SyncStatusChanged += (_, e) => - { - IEnumerable instances = Resolve>(); - foreach (IProfileSyncStatusAware instance in instances) - { - instance.OnProfileSyncStatusChanged(e.Status, e.ErrorMessage, e.ChangesSyncedAt); - } - }; - Resolve().PinsChanged += (_, _) => { IEnumerable instances = Resolve>(); @@ -580,7 +571,6 @@ private async Task SwitchToAppWindow(bool autoLogin) Resolve().Load(); await Resolve().Validate(); await Resolve().LoadAsync(autoLogin); - Resolve().Sync(); Resolve().CheckForInsecureWiFi(); await Resolve().StoreLatestEvent(); Resolve().Start(); diff --git a/src/ProtonVPN.App/Core/Ioc/AppModule.cs b/src/ProtonVPN.App/Core/Ioc/AppModule.cs index ef8fc2001..105ae93b8 100644 --- a/src/ProtonVPN.App/Core/Ioc/AppModule.cs +++ b/src/ProtonVPN.App/Core/Ioc/AppModule.cs @@ -156,10 +156,8 @@ protected override void Load(ContainerBuilder builder) builder.RegisterType().SingleInstance(); builder.RegisterType().SingleInstance(); - builder.RegisterType().SingleInstance(); builder.RegisterType().SingleInstance(); builder.RegisterType().AsSelf().AsImplementedInterfaces().SingleInstance(); - builder.RegisterType().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().AsSelf().SingleInstance(); diff --git a/src/ProtonVPN.App/Core/Ioc/CoreModule.cs b/src/ProtonVPN.App/Core/Ioc/CoreModule.cs index eb5eefbd9..f8bfff9ac 100644 --- a/src/ProtonVPN.App/Core/Ioc/CoreModule.cs +++ b/src/ProtonVPN.App/Core/Ioc/CoreModule.cs @@ -19,7 +19,6 @@ using Autofac; using ProtonVPN.Api; -using ProtonVPN.Api.Handlers.TlsPinning; using ProtonVPN.Common.Configuration; using ProtonVPN.Common.Extensions; using ProtonVPN.Common.Logging; @@ -100,7 +99,6 @@ protected override void Load(ContainerBuilder builder) builder.RegisterType().SingleInstance(); builder.RegisterType().AsImplementedInterfaces().SingleInstance(); - builder.RegisterType().AsImplementedInterfaces().SingleInstance(); builder.RegisterType().As().SingleInstance(); builder.Register(c => new EventTimer( c.Resolve(), diff --git a/src/ProtonVPN.App/Profiles/ProfileListModalView.xaml b/src/ProtonVPN.App/Profiles/ProfileListModalView.xaml index bdbb4f2b3..404eb9b77 100644 --- a/src/ProtonVPN.App/Profiles/ProfileListModalView.xaml +++ b/src/ProtonVPN.App/Profiles/ProfileListModalView.xaml @@ -74,18 +74,6 @@ along with ProtonVPN. If not, see . - - - - - - - - - - - - - - - - - - - - - - - - -

    9dt>{+Vuamx6pYr`Fv)%Z_xq#PFMS~Wg| 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%0DUaHwwos1a<1|pZHQLs< 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