From cd94b7cda13529d581b8dd6cde9dc5444be6f0eb Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Thu, 24 Apr 2025 10:43:53 +0200 Subject: [PATCH 01/37] IEP-1334: EIM Integration (#1116) * Initial integration Initial integration for the eim starting from the start to handle the empty workspace. Tools activation is still to be done along with code cleanup. Just the basic display is working which will also be enhanced. * Initial first flow with successful installation and loading of env in IDE with EIM * constants moved to single place and added refresh function * minor cleanup and logging for user * IEP-1334: code cleanup (Active Review) (#1125) * cleanup of unused classes and code * String internalization * update to ci file * ci error fixed * ci error fix * ci fix * fixing ci error * ci error fix * ci error fix * ci syntax fix * ci syntax indentation fix * ci syntax fix * ci syntax fix * ci fixed * ci fixed2 * ci trigger * workflow trigger fix * cleanup * ci deps isntalled * eim fix * using eim action to install * using Petr's fork * switched back to official action repo * Revert "switched back to official action repo" This reverts commit f8cd7a7a9c733d90e9960da0667aa1b37fe15773. * trying to fix action for eim * trying with petrs fork again * ci fix * back to espressif * name fixed * updated url for eim * old config export handling * fixing tests env setup * logging to verify skip tests * fixing POSIX path resolution * activation script properly sourced * added test run variable in test pom directly * adding cache option for the maven * file name updated * increasing timeout for tests * test fixes and removing redundant and outdated tests * cleanup and update for user messages * updated to handle activation of single esp-idf from eim * removing unwanted test for fixing failures * increased timeout for tests * ci updated for the release branch trigger as well * ci error fix * fix for sdkconfig server * cleaning up the idf_tools_path configuration in the IDE * added the option to include homebrew paths on macos * changes for guide link * Guidance link added to NLS * fix: Launch ESP-IDF Manager view even there is no eim_idf.json file found * fix: Don't launch multiple ESP-IDF Manager editors * fix: Update the msg and convert it to MessageDialog * fix: notify IDF not found while opening Manager view * fix: java.lang.UnsupportedOperationException * fix: File Not found issue and others * updated code for eim watcher added Next commits will do some refactoring and then implement the logic to handle these changes * refactored startup classes * initial base level logic for file watcher So this is very basic first level of file watcher service that watches the file and then also takes care that the file is wasnt changes since last startup. Initial changes only take that the file last modified is verified and just any change in file simply will give you a message box telling that something changed. More advanced and robust checks in upcoming commits * missing copyright added --------- Co-authored-by: Kondal Kolipaka --- .github/workflows/ci.yml | 37 +- .github/workflows/ci_windows.yml | 8 +- .../META-INF/MANIFEST.MF | 1 + .../idf/core/IDFCorePreferenceConstants.java | 3 - .../idf/core/IDFEnvironmentVariables.java | 9 +- .../idf/core/build/IDFBuildConfiguration.java | 7 +- .../espressif/idf/core/build/Messages.java | 15 + .../idf/core/build/messages.properties | 16 +- .../core/toolchain/ESPToolChainManager.java | 4 +- .../idf/core/tools/EimConstants.java | 22 + .../core/tools/EimIdfConfiguratinParser.java | 47 ++ .../IToolsInstallationWizardConstants.java | 24 - .../idf/core/tools/IToolsJsonKeys.java | 48 -- .../com/espressif/idf/core/tools/JsonKey.java | 23 - .../espressif/idf/core/tools/Messages.java | 27 + .../idf/core/tools/SetupToolsInIde.java | 564 ++++++++++++++ .../idf/core/tools/ToolInitializer.java | 93 +++ .../tools/ToolSetConfigurationManager.java | 279 ------- .../idf/core/tools/ToolsJsonParser.java | 238 ------ .../idf/core/tools/ToolsPlatformMapping.java | 72 -- .../idf/core/tools/ToolsSystemWrapper.java | 36 - .../idf/core/tools/messages.properties | 7 + .../idf/core/tools/util/ToolsUtility.java | 329 ++------ .../espressif/idf/core/tools/vo/EimJson.java | 47 ++ .../idf/core/tools/vo/IDFToolSet.java | 156 ---- .../idf/core/tools/vo/IdfInstalled.java | 80 ++ .../espressif/idf/core/tools/vo/ToolsVO.java | 259 ------- .../idf/core/tools/vo/VersionDetailsVO.java | 94 --- .../idf/core/tools/vo/VersionsVO.java | 98 --- .../tools/watcher/EimJsonChangeListener.java | 17 + .../tools/watcher/EimJsonStateChecker.java | 67 ++ .../tools/watcher/EimJsonWatchService.java | 152 ++++ .../idf/core/util/EspToolCommands.java | 6 +- .../com/espressif/idf/core/util/IDFUtil.java | 28 +- .../config/core/server/JsonConfigServer.java | 103 +-- .../idf/serial/monitor/core/IDFMonitor.java | 23 +- .../OSGI-INF/l10n/bundle.properties | 1 - .../icons/tools/delete.png | Bin 305 -> 0 bytes bundles/com.espressif.idf.ui/plugin.xml | 8 +- .../idf/ui/EspressifGeneralStartup.java | 141 ++++ .../idf/ui/InitializeToolsStartup.java | 358 --------- .../idf/ui/dialogs/SbomCommandDialog.java | 6 +- .../ui/handlers/NewProjectHandlerUtil.java | 4 +- .../idf/ui/handlers/UpdateEspIdfHandler.java | 171 ----- .../ui/help/ProductInformationHandler.java | 2 +- .../idf/ui/install/GitRepositoryBuilder.java | 100 --- .../idf/ui/install/IDFDownloadPage.java | 703 ------------------ .../idf/ui/install/IDFNewToolsWizard.java | 350 --------- .../espressif/idf/ui/install/Messages.java | 54 -- .../idf/ui/install/messages.properties | 35 - .../idf/ui/install/messages_zh.properties | 32 - .../EspresssifPreferencesPage.java | 45 -- .../idf/ui/size/IDFSizeDataManager.java | 2 +- .../idf/ui/tools/EspressifToolStartup.java | 135 ++++ .../ui/tools/GitWizardRepProgressMonitor.java | 138 ---- .../idf/ui/tools/LogMessagesThread.java | 78 -- .../ui/tools/ManageEspIdfVersionsHandler.java | 62 +- .../com/espressif/idf/ui/tools/Messages.java | 115 +-- ...stener.java => SetupToolsJobListener.java} | 43 +- .../idf/ui/tools/ToolsActivationJob.java | 213 ------ .../idf/ui/tools/ToolsInstallationJob.java | 163 ---- .../com/espressif/idf/ui/tools/ToolsJob.java | 565 -------------- .../ui/tools/manager/ESPIDFManagerEditor.java | 7 +- .../idf/ui/tools/manager/EimEditorInput.java | 93 +++ .../manager/pages/ESPIDFMainTablePage.java | 274 ++++--- .../idf/ui/tools/messages.properties | 134 +--- .../tools/watcher/EimJsonUiChangeHandler.java | 44 ++ .../idf/ui/tracing/AppLvlTracingDialog.java | 2 +- .../idf/ui/update/AbstractToolsHandler.java | 2 +- .../idf/ui/update/ExportIDFTools.java | 292 -------- .../idf/ui/update/InstallToolsHandler.java | 382 ---------- .../configs/default-test-linux.properties | 2 +- .../project/NewEspressifIDFProjectTest.java | 49 -- .../test/operations/EnvSetupOperations.java | 36 +- .../operations/ProjectTestOperations.java | 2 +- tests/pom.xml | 2 +- 76 files changed, 1975 insertions(+), 5909 deletions(-) create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimConstants.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/IToolsInstallationWizardConstants.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/IToolsJsonKeys.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/JsonKey.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/Messages.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolSetConfigurationManager.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsJsonParser.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsPlatformMapping.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsSystemWrapper.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/messages.properties create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/EimJson.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/IDFToolSet.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/IdfInstalled.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/ToolsVO.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/VersionDetailsVO.java delete mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/VersionsVO.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonChangeListener.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonStateChecker.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java delete mode 100644 bundles/com.espressif.idf.ui/icons/tools/delete.png create mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/EspressifGeneralStartup.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/InitializeToolsStartup.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/handlers/UpdateEspIdfHandler.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/GitRepositoryBuilder.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/IDFDownloadPage.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/IDFNewToolsWizard.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/Messages.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/messages.properties delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/messages_zh.properties create mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/GitWizardRepProgressMonitor.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/LogMessagesThread.java rename bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/{ToolsActivationJobListener.java => SetupToolsJobListener.java} (70%) delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsActivationJob.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsInstallationJob.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsJob.java create mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/EimEditorInput.java create mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/ExportIDFTools.java delete mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/InstallToolsHandler.java diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9eb43b58d..da8cd7caf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,33 +5,31 @@ name: Java CI with Maven on: push: - branches: [ master ] + branches: + - master + - release/** pull_request: - branches: [ master ] + branches: + - master + - release/** jobs: - build: + build_linux: - runs-on: - - self-hosted - - eclipse - - BrnoUBU0004 + runs-on: [self-hosted, eclipse, BrnoUBU0004] steps: - - uses: actions/checkout@v2 - - - name: Clone IDF Release From Github - uses: actions/checkout@v2 - with: - repository: espressif/esp-idf - path: dependencies/idf-tools - submodules: 'true' - ref: release/v5.4 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v2 with: - python-version: '3.10' + python-version: '3.10' + + - name: Install ESP-IDF via eim + uses: espressif/install-esp-idf-action@v1 + with: + version: 'v5.3' - name: Set up Maven uses: stCarolas/setup-maven@v5 @@ -42,8 +40,9 @@ jobs: uses: actions/setup-java@v4 with: java-version: '21' - distribution: 'temurin' - + distribution: 'temurin' + cache: 'maven' + - name: Build with Maven run: export NO_AT_BRIDGE=1 && mvn clean verify -Djarsigner.skip=true -DskipTests=false -DtestWorkspace=/opt/actions-runner/_work/workspace diff --git a/.github/workflows/ci_windows.yml b/.github/workflows/ci_windows.yml index f17702167..1d2e10c18 100644 --- a/.github/workflows/ci_windows.yml +++ b/.github/workflows/ci_windows.yml @@ -5,9 +5,13 @@ name: Java CI with Maven on Windows on: push: - branches: [ master ] + branches: + - master + - release/** pull_request: - branches: [ master ] + branches: + - master + - release/** jobs: build_windows: diff --git a/bundles/com.espressif.idf.core/META-INF/MANIFEST.MF b/bundles/com.espressif.idf.core/META-INF/MANIFEST.MF index b714fd244..abaaf8be1 100644 --- a/bundles/com.espressif.idf.core/META-INF/MANIFEST.MF +++ b/bundles/com.espressif.idf.core/META-INF/MANIFEST.MF @@ -47,6 +47,7 @@ Export-Package: com.espressif.idf.core, com.espressif.idf.core.tools, com.espressif.idf.core.tools.util, com.espressif.idf.core.tools.vo, + com.espressif.idf.core.tools.watcher, com.espressif.idf.core.util, com.espressif.idf.core.variable, org.json.simple, diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFCorePreferenceConstants.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFCorePreferenceConstants.java index 1338b5152..4630eb59a 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFCorePreferenceConstants.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFCorePreferenceConstants.java @@ -7,14 +7,11 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ProjectScope; -import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.preferences.ConfigurationScope; import org.eclipse.core.runtime.preferences.DefaultScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.InstanceScope; -import com.espressif.idf.core.util.IDFUtil; - /** * @author Kondal Kolipaka * diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFEnvironmentVariables.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFEnvironmentVariables.java index e60d02acd..12867f621 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFEnvironmentVariables.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFEnvironmentVariables.java @@ -18,7 +18,6 @@ import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.util.IDFUtil; import com.espressif.idf.core.util.StringUtil; /** @@ -52,6 +51,8 @@ public class IDFEnvironmentVariables public static final String IDF_CCACHE_ENABLE = "IDF_CCACHE_ENABLE"; //$NON-NLS-1$ + public static final String ESP_IDF_EIM_ID = "ESP_IDF_EIM_ID"; //$NON-NLS-1$ + /** * @param variableName Environment variable Name * @return IEnvironmentVariable @@ -129,16 +130,12 @@ public Map getSystemEnvMap() IEnvironmentVariableManager buildEnvironmentManager = CCorePlugin.getDefault().getBuildEnvironmentManager(); IEnvironmentVariable[] variables = buildEnvironmentManager.getVariables((ICConfigurationDescription) null, true); - Map envMap = IDFUtil.getSystemEnv(); + Map envMap = new HashMap(System.getenv()); if (variables != null) { for (IEnvironmentVariable iEnvironmentVariable : variables) { String key = iEnvironmentVariable.getName(); - if (key.equals(IDFCorePreferenceConstants.IDF_TOOLS_PATH)) - { - continue; - } String value = iEnvironmentVariable.getValue(); envMap.put(key, value); } diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/IDFBuildConfiguration.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/IDFBuildConfiguration.java index 45220ff0c..c9694185c 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/IDFBuildConfiguration.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/IDFBuildConfiguration.java @@ -359,9 +359,6 @@ private void runCmakeBuildCommand(IConsole console, IProgressMonitor monitor, IP } } - envVars.add(new EnvironmentVariable(IDFCorePreferenceConstants.IDF_TOOLS_PATH, - IDFUtil.getIDFToolsPathFromPreferences())); - String buildCommand = getProperty(BUILD_COMMAND); if (buildCommand.isBlank()) { @@ -481,10 +478,8 @@ private void runCmakeCommand(IConsole console, IProgressMonitor monitor, IProjec // Set PYTHONUNBUFFERED to 1/TRUE to dump the messages back immediately without // buffering IEnvironmentVariable bufferEnvVar = new EnvironmentVariable("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ - IEnvironmentVariable idfToolsPathEnvVar = new EnvironmentVariable(IDFCorePreferenceConstants.IDF_TOOLS_PATH, - IDFUtil.getIDFToolsPathFromPreferences()); - Process p = startBuildProcess(command, new IEnvironmentVariable[] { bufferEnvVar, idfToolsPathEnvVar }, + Process p = startBuildProcess(command, new IEnvironmentVariable[] { bufferEnvVar }, workingDir, errConsole, monitor); if (p == null) { diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/Messages.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/Messages.java index 52b468c4e..aa552a03d 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/Messages.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/Messages.java @@ -33,8 +33,23 @@ public class Messages extends NLS public static String ToolsInitializationDifferentPathMessageBoxOptionYes; public static String ToolsInitializationDifferentPathMessageBoxOptionNo; public static String IDFToolChainsMissingErrorMsg; + + public static String ToolsInitializationEimMissingMsgBoxTitle; + public static String ToolsInitializationEimMissingMsgBoxMessage; public static String RefreshingProjects_JobName; + + public static String NoActiveEspIdfInWorkspaceMsgTitle; + public static String NoActiveEspIdfInWorkspaceMsg; + + public static String OldConfigFoundMsgBoxTitle; + public static String OldConfigFoundMsgBoxMsg; + public static String OldConfigExportDirectorSelectionDialogTitle; + public static String OldConfigExportDirectorSelectionDialogInfo; + public static String OldConfigExportCompleteSuccessMsgTitle; + public static String OldConfigExportCompleteSuccessMsg; + public static String OldConfigExportCompleteFailMsgTitle; + public static String OldConfigExportCompleteFailMsg; static { diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties index db0836990..6efb0de45 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties @@ -19,9 +19,23 @@ IDFBuildConfiguration_ParseCommand=Parse Compile Commands File IncreasePartitionSizeTitle=Low Application Partition Size IncreasePartitionSizeMessage=Less than 30% of application partition size is free({0} of {1} bytes), would you like to increase it? Please click here to check more details. ToolsInitializationDifferentPathMessageBoxTitle=Different IDF path found in the config file +ToolsInitializationEimMissingMsgBoxTitle=ESP-IDF Not Found +ToolsInitializationEimMissingMsgBoxMessage=ESP-IDF is not found on your system. To use the IDE, install ESP-IDF using EIM - GUI Installer. \n\nOnce installed, the IDE will automatically detect ESP-IDF. You can verify and activate it from the ESP-IDF Manager, accessible via the menu: Espressif > ESP-IDF Manager.\n\n ToolsInitializationDifferentPathMessageBoxMessage=A different ESP-IDF path was found in the esp_idf.json.json configuration file. Do you want to install the tools in the new path or the old path? Please click on the appropriate button.\nNew Path: {0}\nOld Path: {1} ToolsInitializationDifferentPathMessageBoxOptionYes=Use New Path ToolsInitializationDifferentPathMessageBoxOptionNo=Use Old Path RefreshingProjects_JobName=Refreshing Projects... IDFBuildConfiguration_PreCheck_DifferentIdfPath=The project was built using the ESP-IDF located at the {0} path.\nThe currently active ESP-IDF path in the IDE is {1}.\nPlease clean the project using "ESP-IDF:Project Full Clean" menu option to use the active ESP-IDF configuration. -IDFToolChainsMissingErrorMsg=Toolchains are missing. Please use ESP-IDF Manager for configuring \ No newline at end of file +IDFToolChainsMissingErrorMsg=Toolchains are missing. Please use ESP-IDF Manager for configuring + +NoActiveEspIdfInWorkspaceMsgTitle=ESP-IDF Setup +NoActiveEspIdfInWorkspaceMsg=ESP-IDF is required to use Espressif IDE. Would you like to configure it now? + +OldConfigFoundMsgBoxTitle=Old Configuration Found +OldConfigFoundMsgBoxMsg=An old ESP-IDF configuration has been detected.\nIf you want to use these you need to export these configuration and pass them on to EIM for updated configurations.\nWould you like to export these settings?\n\nPress 'Yes' to choose a location to save. +OldConfigExportDirectorSelectionDialogTitle=Select Destination +OldConfigExportDirectorSelectionDialogInfo=Choose a directory to save the exported settings. +OldConfigExportCompleteSuccessMsgTitle=Export Successful +OldConfigExportCompleteSuccessMsg=The configuration has been successfully copied to:\n{0} +OldConfigExportCompleteFailMsgTitle=Export Failed +OldConfigExportCompleteFailMsg=An error occurred while copying the configuration.\n{0} \ No newline at end of file diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/toolchain/ESPToolChainManager.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/toolchain/ESPToolChainManager.java index 659677982..74a09296d 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/toolchain/ESPToolChainManager.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/toolchain/ESPToolChainManager.java @@ -177,7 +177,7 @@ public File findToolChain(List paths, String filePattern) private Path[] getDirectories(String path) { - return Arrays.stream(path.split(File.pathSeparator)).map(String::trim).map(Paths::get).filter(Files::exists) + return Arrays.stream(path.split(File.pathSeparator)).map(String::trim).map(Paths::get).filter(Files::exists).filter(Files::isDirectory) .toArray(Path[]::new); } @@ -316,7 +316,7 @@ protected String getIdfToolsExportPath() Logger.log(commands.toString()); IStatus idfToolsExportStatus = new ProcessBuilderFactory().runInBackground(commands, - org.eclipse.core.runtime.Path.ROOT, IDFUtil.getSystemEnv()); + org.eclipse.core.runtime.Path.ROOT, System.getenv()); if (idfToolsExportStatus != null && idfToolsExportStatus.isOK()) { String message = idfToolsExportStatus.getMessage(); diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimConstants.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimConstants.java new file mode 100644 index 000000000..1a43560ef --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimConstants.java @@ -0,0 +1,22 @@ +package com.espressif.idf.core.tools; + +public interface EimConstants +{ + String EIM_JSON = "eim_idf.json"; //$NON-NLS-1$ + + String EIM_POSIX_DIR = System.getProperty("user.home").concat("/.espressif/tools/"); //$NON-NLS-1$//$NON-NLS-2$ + + String EIM_WIN_DIR = "C:\\Espressif\\tools\\"; //$NON-NLS-1$ + + String EIM_WIN_PATH = EIM_WIN_DIR + EIM_JSON; + + String EIM_URL = "https://dl.espressif.com/dl/eim/"; //$NON-NLS-1$ + + String EIM_POSIX_PATH = EIM_POSIX_DIR + EIM_JSON; + + String INSTALL_TOOLS_FLAG = "INSTALL_TOOLS_FLAG"; //$NON-NLS-1$ + + String TOOL_SET_CONFIG_LEGACY_CONFIG_FILE = "tool_set_config.json"; //$NON-NLS-1$ + + String OLD_CONFIG_EXPORTED_FLAG = "OLD_CONFIG_EXPORTED_FLAG"; //$NON-NLS-1$ +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java new file mode 100644 index 000000000..6073b914d --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java @@ -0,0 +1,47 @@ +package com.espressif.idf.core.tools; + +import java.io.FileReader; +import java.io.IOException; + +import org.eclipse.core.runtime.Platform; + +import com.espressif.idf.core.tools.vo.EimJson; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +public class EimIdfConfiguratinParser +{ + private EimJson eimJson; + private Gson gson; + + public EimIdfConfiguratinParser() + { + gson = new GsonBuilder().setPrettyPrinting().enableComplexMapKeySerialization() + .excludeFieldsWithoutExposeAnnotation().create(); + } + + private void load() throws IOException + { + try (FileReader fileReader = new FileReader( + Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_PATH : EimConstants.EIM_POSIX_PATH)) + { + eimJson = gson.fromJson(fileReader, EimJson.class); + } + } + + + public EimJson getEimJson(boolean reload) throws IOException + { + if (reload) + { + load(); + } + + if (eimJson == null) + { + load(); + } + + return eimJson; + } +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/IToolsInstallationWizardConstants.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/IToolsInstallationWizardConstants.java deleted file mode 100644 index e64cb5bc8..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/IToolsInstallationWizardConstants.java +++ /dev/null @@ -1,24 +0,0 @@ -/******************************************************************************* - * Copyright 2022 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.core.tools; - -/** - * Interface to store the constants related to tools management wizard - * - * @author Ali Azam Rana - * - */ -public interface IToolsInstallationWizardConstants -{ - String PYTHON_PATH_NODE_KEY = "PYTHON_EXECUTABLE"; //$NON-NLS-1$ - - String GIT_PATH_NODE_KEY = "GIT_EXECUTABLE"; //$NON-NLS-1$ - - String ESPRESSIF_LOGO = "icons/tools/espressif-logo.png"; //$NON-NLS-1$ - - String INSTALL_TOOLS_FLAG = "INSTALL_TOOLS_FLAG"; //$NON-NLS-1$ - - String TOOL_SET_CONFIG_FILE = "tool_set_config.json"; //$NON-NLS-1$ -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/IToolsJsonKeys.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/IToolsJsonKeys.java deleted file mode 100644 index bf8bc42ea..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/IToolsJsonKeys.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.espressif.idf.core.tools; - -/** - * Keys in the tools.json file mentioned here for the better usage - * - * @author Ali Azam Rana - * - */ -public interface IToolsJsonKeys -{ - String URL_KEY = "url"; //$NON-NLS-1$ - - String SIZE_KEY = "size"; //$NON-NLS-1$ - - String SHA256_KEY = "sha256"; //$NON-NLS-1$ - - String STATUS_KEY = "status"; //$NON-NLS-1$ - - String VERSION_KEY = "version"; //$NON-NLS-1$ - - String VERSIONS_VO_KEY = "versions"; //$NON-NLS-1$ - - String VERSION_CMD_KEY = "version_cmd"; //$NON-NLS-1$ - - String VERSION_REGEX = "version_regex"; //$NON-NLS-1$ - - String SUPPORTED_TARGETS_KEY = "supported_targets"; //$NON-NLS-1$ - - String NAME_KEY = "name"; //$NON-NLS-1$ - - String LICENSE_KEY = "license"; //$NON-NLS-1$ - - String INSTALL_KEY = "install"; //$NON-NLS-1$ - - String INFO_URL_KEY = "info_url"; //$NON-NLS-1$ - - String EXPORT_VARS_KEY = "export_vars"; //$NON-NLS-1$ - - String EXPORT_PATHS_KEY = "export_paths"; //$NON-NLS-1$ - - String DESCRIPTION_KEY = "description"; //$NON-NLS-1$ - - String TOOLS_KEY = "tools"; //$NON-NLS-1$ - - String PLATFORM_OVERRIDES_KEY = "platform_overrides"; //$NON-NLS-1$ - - String PLATFORMS_KEY = "platforms"; //$NON-NLS-1$ -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/JsonKey.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/JsonKey.java deleted file mode 100644 index 0eca4e6ff..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/JsonKey.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.espressif.idf.core.tools; - -import static java.lang.annotation.ElementType.FIELD; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(FIELD) -@Retention(RetentionPolicy.RUNTIME) -/** - * Annotation to apply a json key to the vos - * @author Ali Azam Rana - * - */ -public @interface JsonKey -{ - /** - * the json key name associated with the field - * @return JSON Key name associated with the field - */ - String key_name(); -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/Messages.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/Messages.java new file mode 100644 index 000000000..7b133213f --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/Messages.java @@ -0,0 +1,27 @@ +package com.espressif.idf.core.tools; + +import org.eclipse.osgi.util.NLS; + + +public class Messages extends NLS +{ + private static final String BUNDLE_NAME = "com.espressif.idf.core.tools.messages"; //$NON-NLS-1$ + + public static String InstallToolsHandler_CopyingOpenOCDRules; + public static String InstallToolsHandler_OpenOCDRulesCopyWarning; + public static String InstallToolsHandler_OpenOCDRulesCopyWarningMessage; + public static String InstallToolsHandler_OpenOCDRulesNotCopied; + public static String InstallToolsHandler_OpenOCDRulesCopyPaths; + public static String InstallToolsHandler_OpenOCDRulesCopyError; + public static String InstallToolsHandler_OpenOCDRulesCopied; + + static + { + // initialize resource bundle + NLS.initializeMessages(BUNDLE_NAME, Messages.class); + } + + private Messages() + { + } +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java new file mode 100644 index 000000000..90e5f1c11 --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java @@ -0,0 +1,564 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.core.tools; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.ui.console.MessageConsoleStream; + +import com.espressif.idf.core.IDFConstants; +import com.espressif.idf.core.IDFCorePlugin; +import com.espressif.idf.core.IDFEnvironmentVariables; +import com.espressif.idf.core.ProcessBuilderFactory; +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.toolchain.ESPToolChainManager; +import com.espressif.idf.core.tools.util.ToolsUtility; +import com.espressif.idf.core.tools.vo.EimJson; +import com.espressif.idf.core.tools.vo.IdfInstalled; +import com.espressif.idf.core.util.IDFUtil; +import com.espressif.idf.core.util.StringUtil; + +/** + * This job is responsible for setting up the esp-idf in the IDE + * @author Ali Azam Rana + * + */ +public class SetupToolsInIde extends Job +{ + private EimJson eimJson; + private IdfInstalled idfInstalled; + private MessageConsoleStream errorConsoleStream; + private MessageConsoleStream standardConsoleStream; + private Map envVarsFromActivationScriptMap; + private Map existingEnvVarsInIdeForRollback; + + public SetupToolsInIde(IdfInstalled idfInstalled, EimJson eimJson, MessageConsoleStream errorConsoleStream, MessageConsoleStream standardConsoleStream) + { + super("Tools Setup"); //$NON-NLS-1$ + this.idfInstalled = idfInstalled; + this.eimJson = eimJson; + this.errorConsoleStream = errorConsoleStream; + this.standardConsoleStream = standardConsoleStream; + } + + @Override + protected IStatus run(IProgressMonitor monitor) + { + return setupTools(monitor); + } + + public void rollback() + { + IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); + + for (Entry entry : existingEnvVarsInIdeForRollback.entrySet()) + { + idfEnvironmentVariables.addEnvVariable(entry.getKey(), entry.getValue()); + } + IDFUtil.updateEspressifPrefPageOpenocdPath(); + try + { + setUpToolChainsAndTargets(true); + } + catch (Exception e) + { + Logger.log(e); + } + } + + private IStatus setupTools(IProgressMonitor monitor) + { + monitor.beginTask("Setting up tools in IDE", 7); //$NON-NLS-1$ + monitor.worked(1); + List arguemnts = new ArrayList<>(); + Map env = new HashMap<>(System.getenv()); + addGitToEnvironment(env, eimJson.getGitPath()); + arguemnts = ToolsUtility.getExportScriptCommand(idfInstalled.getActivationScript()); + final ProcessBuilderFactory processBuilderFactory = new ProcessBuilderFactory(); + try + { + monitor.setTaskName("Running Activation Script"); //$NON-NLS-1$ + IStatus status = processBuilderFactory.runInBackground(arguemnts, Path.ROOT, System.getenv()); + if (status == null) + { + Logger.log(IDFCorePlugin.getPlugin(), IDFCorePlugin.errorStatus("Status returned null from activation script process", null)); //$NON-NLS-1$ + return IDFCorePlugin.errorStatus("Status returned null from activation script process", null); //$NON-NLS-1$ + } + + if (status.getSeverity() == IStatus.ERROR) + { + log(status.getException() != null ? status.getException().getMessage() : status.getMessage(), IStatus.ERROR); + return status; + } + + // now setup in IDE + + String activationScriptOutput = status.getMessage(); + if (StringUtil.isEmpty(activationScriptOutput)) + { + log("Activation Script Output must not be empty", IStatus.ERROR); //$NON-NLS-1$ + return IDFCorePlugin.errorStatus("Activation Script Output must not be empty", null); //$NON-NLS-1$ + } + + monitor.worked(1); + + log(activationScriptOutput, IStatus.OK); + monitor.setTaskName("Processing output from activation script"); //$NON-NLS-1$ + log("Processing output from activation script", IStatus.INFO); //$NON-NLS-1$ + envVarsFromActivationScriptMap = parseEnvKeys(activationScriptOutput); + monitor.worked(1); + + monitor.setTaskName("Setting up IDE environment"); //$NON-NLS-1$ + log("Setting up IDE environment variables", IStatus.INFO); //$NON-NLS-1$ + setupEnvVarsInEclipse(); + monitor.worked(1); + + monitor.setTaskName("Setting up toolchains"); //$NON-NLS-1$ + log("Setting up toolchains", IStatus.INFO); //$NON-NLS-1$ + setUpToolChainsAndTargets(false); + monitor.worked(1); + + monitor.setTaskName("Installing pyhton dependency web-socket"); //$NON-NLS-1$ + log("Installing pyhton dependency web-socket", IStatus.INFO); //$NON-NLS-1$ + handleWebSocketClientInstall(); + monitor.worked(1); + + monitor.setTaskName("Copying OpenOCD Rules"); //$NON-NLS-1$ + log("Copying OpenOCD Rules", IStatus.INFO); //$NON-NLS-1$ + copyOpenOcdRules(); + monitor.worked(1); + + log("Tools Setup complete", IStatus.INFO); //$NON-NLS-1$ + + return Status.OK_STATUS; + } + catch (IOException e) + { + Logger.log(e); + return IDFCorePlugin.errorStatus(e.getMessage(), e); + } + } + + private void copyOpenOcdRules() + { + if (Platform.getOS().equals(Platform.OS_LINUX) + && !IDFUtil.getOpenOCDLocation().equalsIgnoreCase(StringUtil.EMPTY)) + { + log(Messages.InstallToolsHandler_CopyingOpenOCDRules, IStatus.OK); + // Copy the rules to the idf + StringBuilder pathToRules = new StringBuilder(); + pathToRules.append(IDFUtil.getOpenOCDLocation()); + pathToRules.append("/../share/openocd/contrib/60-openocd.rules"); //$NON-NLS-1$ + File rulesFile = new File(pathToRules.toString()); + if (rulesFile.exists()) + { + java.nio.file.Path source = Paths.get(pathToRules.toString()); + java.nio.file.Path target = Paths.get("/etc/udev/rules.d/60-openocd.rules"); //$NON-NLS-1$ + log(String.format(Messages.InstallToolsHandler_OpenOCDRulesCopyPaths, source.toString(), + target.toString()), IStatus.OK); + + Display.getDefault().syncExec(new Runnable() + { + @Override + public void run() + { + try + { + if (target.toFile().exists()) + { + MessageBox messageBox = new MessageBox(Display.getDefault().getActiveShell(), + SWT.ICON_WARNING | SWT.YES | SWT.NO); + messageBox.setText(Messages.InstallToolsHandler_OpenOCDRulesCopyWarning); + messageBox.setMessage(Messages.InstallToolsHandler_OpenOCDRulesCopyWarningMessage); + int response = messageBox.open(); + if (response == SWT.YES) + { + Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING); + } + else + { + log(Messages.InstallToolsHandler_OpenOCDRulesNotCopied, IStatus.ERROR); + return; + } + } + else + { + Files.copy(source, target); + } + + log(Messages.InstallToolsHandler_OpenOCDRulesCopied, IStatus.OK); + } + catch (IOException e) + { + Logger.log(e); + log(Messages.InstallToolsHandler_OpenOCDRulesCopyError, IStatus.ERROR); + } + } + }); + } + } + } + + private IStatus handleWebSocketClientInstall() + { + String websocketClient = "websocket-client"; //$NON-NLS-1$ + // pip install websocket-client + List arguments = new ArrayList(); + final String pythonEnvPath = IDFUtil.getIDFPythonEnvPath(envVarsFromActivationScriptMap.get(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH)); + if (pythonEnvPath == null || !new File(pythonEnvPath).exists()) + { + log(String.format("%s executable not found. Unable to run `%s -m pip install websocket-client`", //$NON-NLS-1$ + IDFConstants.PYTHON_CMD, IDFConstants.PYTHON_CMD), IStatus.ERROR); + return IDFCorePlugin.errorStatus( + String.format("%s executable not found. Unable to run `%s -m pip install websocket-client`", //$NON-NLS-1$ + IDFConstants.PYTHON_CMD, IDFConstants.PYTHON_CMD), + null); + } + arguments.add(pythonEnvPath); + arguments.add("-m"); //$NON-NLS-1$ + arguments.add("pip"); //$NON-NLS-1$ + arguments.add("list"); //$NON-NLS-1$ + + ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); + + try + { + log("Executing " + arguments.toString(), IStatus.OK); //$NON-NLS-1$) + + Map environment = new HashMap<>(System.getenv()); + prepEnvMap(environment); + Logger.log(environment.toString()); + + IStatus status = processRunner.runInBackground(arguments, org.eclipse.core.runtime.Path.ROOT, environment); + if (status == null) + { + Logger.log(IDFCorePlugin.getPlugin(), + IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ + log("Unable to get the process status", IStatus.ERROR); //$NON-NLS-1$ + return IDFCorePlugin.errorStatus("Unable to get the process status.", null); //$NON-NLS-1$ + } + + String cmdOutput = status.getMessage(); + if (cmdOutput.contains(websocketClient)) + { + return IDFCorePlugin.okStatus("websocket-client already installed", null); //$NON-NLS-1$ + } + + // websocket client not installed so installing it now. + arguments.remove(arguments.size() - 1); + arguments.add("install"); //$NON-NLS-1$ + arguments.add(websocketClient); + + status = processRunner.runInBackground(arguments, org.eclipse.core.runtime.Path.ROOT, environment); + if (status == null) + { + Logger.log(IDFCorePlugin.getPlugin(), + IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ + log("Unable to get the process status", IStatus.ERROR); //$NON-NLS-1$ + return IDFCorePlugin.errorStatus("Unable to get the process status.", null); //$NON-NLS-1$ + } + + log(status.getMessage(), IStatus.OK); + + return status; + } + catch (Exception e1) + { + Logger.log(IDFCorePlugin.getPlugin(), e1); + if (errorConsoleStream != null) + { + errorConsoleStream.println(e1.getLocalizedMessage()); + } + return IDFCorePlugin.errorStatus(e1.getLocalizedMessage(), e1); // $NON-NLS-1$; + } + } + + private String replacePathVariable(String value) + { + // Get system PATH + Map systemEnv = new HashMap<>(System.getenv()); + String pathEntry = systemEnv.get("PATH"); //$NON-NLS-1$ + if (pathEntry == null) + { + pathEntry = systemEnv.get("Path"); // for Windows //$NON-NLS-1$ + if (pathEntry == null) // no idea + { + Logger.log(new Exception("No PATH found in the system environment variables")); //$NON-NLS-1$ + } + } + + if (!StringUtil.isEmpty(pathEntry)) + { + value = value.concat(File.pathSeparator).concat(pathEntry); + } + + if (Platform.getOS().equals(Platform.OS_MACOSX)) + { + value = value.concat(File.pathSeparator).concat("/opt/homebrew/bin").concat(File.pathSeparator).concat("/usr/local/bin"); //$NON-NLS-1$ //$NON-NLS-2$ + } + + return value; + } + + private IStatus loadTargetsAvailableFromIdfInCurrentToolSet(boolean rollback) + { + List arguments = new ArrayList(); + arguments.add(rollback + ? IDFUtil.getIDFPythonEnvPath( + existingEnvVarsInIdeForRollback.get(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH)) + : IDFUtil.getIDFPythonEnvPath( + envVarsFromActivationScriptMap.get(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH))); + arguments + .add(IDFUtil + .getIDFPythonScriptFile( + rollback ? existingEnvVarsInIdeForRollback.get(IDFEnvironmentVariables.IDF_PATH) + : envVarsFromActivationScriptMap.get(IDFEnvironmentVariables.IDF_PATH)) + .getAbsolutePath()); + arguments.add(IDFConstants.IDF_LIST_TARGETS_CMD); + log("Executing:" + arguments.toString(), IStatus.OK); //$NON-NLS-1$ + + Map env = new HashMap(System.getenv()); + prepEnvMap(env); + ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); + StringBuilder output = new StringBuilder(); + int waitCount = 10; + try + { + Process process = processRunner.run(arguments, org.eclipse.core.runtime.Path.ROOT, env); + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) + { + output.append(line).append(System.lineSeparator()); + } + + while (process.isAlive() && waitCount > 0) + { + try + { + Thread.sleep(300); + } + catch (InterruptedException e) + { + Logger.log(e); + } + waitCount--; + } + + if (waitCount == 0) + { + log("Process possibly stuck", IStatus.ERROR); //$NON-NLS-1$ + return Status.CANCEL_STATUS; + } + + IStatus status = new Status(process.exitValue() == 0 ? IStatus.OK : IStatus.ERROR, IDFCorePlugin.PLUGIN_ID, + process.exitValue(), output.toString(), null); + if (status.getSeverity() == IStatus.ERROR) + { + log(status.getException() != null ? status.getException().getMessage() : status.getMessage(), IStatus.ERROR); + } + + log(status.getMessage(), IStatus.OK); + + return status; + } + catch (IOException e) + { + log(e.getMessage(), e); + return IDFCorePlugin.errorStatus(e.getMessage(), e); + } + } + + private void prepEnvMap(Map env) + { + env.put("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ + loadIdfPathWithSystemPath(env); + addGitToEnvironment(env, eimJson.getGitPath()); + } + + private void loadIdfPathWithSystemPath(Map systemEnv) + { + String idfExportPath = envVarsFromActivationScriptMap.get(IDFEnvironmentVariables.PATH); + String pathVar = "PATH"; // for Windows //$NON-NLS-1$ + String pathEntry = systemEnv.get(pathVar); // $NON-NLS-1$ + if (pathEntry == null) + { + pathVar = "Path"; //$NON-NLS-1$ + pathEntry = systemEnv.get(pathVar); + if (pathEntry == null) // no idea + { + Logger.log(new Exception("No PATH found in the system environment variables")); //$NON-NLS-1$ + } + } + + if (!StringUtil.isEmpty(pathEntry)) + { + idfExportPath = idfExportPath.replace("$PATH", pathEntry); // macOS //$NON-NLS-1$ + idfExportPath = idfExportPath.replace("%PATH%", pathEntry); // Windows //$NON-NLS-1$ + } + systemEnv.put(pathVar, idfExportPath); + for (Entry entry : envVarsFromActivationScriptMap.entrySet()) + { + if (entry.getKey().equals(IDFEnvironmentVariables.PATH)) + continue; + + systemEnv.put(entry.getKey(), entry.getValue()); + } + } + + private void setUpToolChainsAndTargets(boolean rollback) + { + IStatus status = loadTargetsAvailableFromIdfInCurrentToolSet(rollback); + if (status.getSeverity() == IStatus.ERROR) + { + Logger.log("Unable to get IDF targets from current toolset"); //$NON-NLS-1$ + return; + } + + List targets = extractTargets(status.getMessage()); + ESPToolChainManager espToolChainManager = new ESPToolChainManager(); + espToolChainManager.removeLaunchTargetsNotPresent(targets); + espToolChainManager.removeCmakeToolChains(); + espToolChainManager.removeStdToolChains(); + espToolChainManager.configureToolChain(targets); + } + + private List extractTargets(String input) + { + List targets = new ArrayList(); + Pattern pattern = Pattern.compile("^esp32.*", Pattern.MULTILINE); //$NON-NLS-1$ + Matcher matcher = pattern.matcher(input); + while (matcher.find()) + { + targets.add(matcher.group()); + } + return targets; + } + + private void setupEnvVarsInEclipse() + { + createExistingBackup(); + IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); + for (Entry entry : envVarsFromActivationScriptMap.entrySet()) + { + idfEnvironmentVariables.addEnvVariable(entry.getKey(), entry.getValue()); + } + + String path = replacePathVariable(envVarsFromActivationScriptMap.get(IDFEnvironmentVariables.PATH)); + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.PATH, path); + + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.IDF_COMPONENT_MANAGER, "1"); //$NON-NLS-1$ + // IDF_MAINTAINER=1 to be able to build with the clang toolchain + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.IDF_MAINTAINER, "1"); //$NON-NLS-1$ + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.ESP_IDF_EIM_ID, idfInstalled.getId()); + + IDFUtil.updateEspressifPrefPageOpenocdPath(); + } + + private void createExistingBackup() + { + if (existingEnvVarsInIdeForRollback == null) + { + existingEnvVarsInIdeForRollback = new HashMap<>(); + } + + IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); + existingEnvVarsInIdeForRollback.putAll(idfEnvironmentVariables.getEnvMap()); + } + + private Map parseEnvKeys(String activationScriptOutput) + { + return Arrays.stream(activationScriptOutput.split(System.lineSeparator())).map(String::trim) + .filter(line -> line.contains("=")) //$NON-NLS-1$ + .map(line -> line.split("=", 2)) //$NON-NLS-1$ + .filter(parts -> parts.length == 2 && !parts[0].isEmpty() && !parts[1].isEmpty()) + .collect(Collectors.toMap(parts -> parts[0].trim(), parts -> parts[1].trim())); + } + + private void log(final String message, final int severity) + { + Logger.log(message); + if (severity == IStatus.ERROR) + { + printToErrorConsole(message); + } + else + { + printToStandardConsole(message); + } + + } + + private void log(final String message, Exception e) + { + Logger.log(message); + Logger.log(e); + printToErrorConsole(message); + + } + + private void printToErrorConsole(String message) + { + if (errorConsoleStream != null) + { + errorConsoleStream.println(message); + } + } + + private void printToStandardConsole(String message) + { + if (standardConsoleStream != null) + { + standardConsoleStream.println(message); + } + } + + private void addGitToEnvironment(Map envMap, String executablePath) + { + IPath gitPath = new Path(executablePath); + if (gitPath.toFile().exists()) + { + String gitDir = gitPath.removeLastSegments(1).toOSString(); + String path1 = envMap.get("PATH"); //$NON-NLS-1$ + String path2 = envMap.get("Path"); //$NON-NLS-1$ + if (!StringUtil.isEmpty(path1) && !path1.contains(gitDir)) // Git not found on the PATH environment + { + path1 = gitDir.concat(";").concat(path1); //$NON-NLS-1$ + envMap.put("PATH", path1); //$NON-NLS-1$ + } + else if (!StringUtil.isEmpty(path2) && !path2.contains(gitDir)) // Git not found on the Path environment + { + path2 = gitDir.concat(";").concat(path2); //$NON-NLS-1$ + envMap.put("Path", path2); //$NON-NLS-1$ + } + } + } + +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java new file mode 100644 index 000000000..3c3d51f81 --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java @@ -0,0 +1,93 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.core.tools; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; + +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Platform; +import org.osgi.service.prefs.Preferences; + +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.vo.EimJson; + +/** + * Initializer class to be used on startup of eclipse and also + * to help with tools initialization + * @author Ali Azam Rana + * + */ +public class ToolInitializer +{ + private final Preferences preferences; + private final EimIdfConfiguratinParser parser; + + public ToolInitializer(Preferences preferences) + { + this.preferences = preferences; + this.parser = new EimIdfConfiguratinParser(); + } + + public boolean isEimInstalled() + { + return isEimIdfJsonPresent(); + } + + public EimJson loadEimJson() + { + try + { + return parser.getEimJson(true); + } + catch (IOException e) + { + Logger.log(e); + return null; + } + } + + public boolean isOldEspIdfConfigPresent() + { + return getOldConfigFile().exists(); + } + + public void exportOldConfigIfNeeded(String exportPath) throws IOException + { + File oldConfig = getOldConfigFile(); + if (oldConfig.exists()) + { + File destinationFile = new File(exportPath, oldConfig.getName()); + Files.copy(oldConfig.toPath(), destinationFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + preferences.putBoolean(EimConstants.OLD_CONFIG_EXPORTED_FLAG, true); + } + } + + public boolean isOldConfigExported() + { + return preferences.getBoolean(EimConstants.OLD_CONFIG_EXPORTED_FLAG, false); + } + + private File getOldConfigFile() + { + IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation(); + return new File(path.toOSString(), EimConstants.TOOL_SET_CONFIG_LEGACY_CONFIG_FILE); + } + + private boolean isEimIdfJsonPresent() + { + String path = Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_PATH + : EimConstants.EIM_POSIX_PATH; + return new File(path).exists(); + } + + public boolean isEspIdfSet() + { + return preferences.getBoolean(EimConstants.INSTALL_TOOLS_FLAG, false); + } +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolSetConfigurationManager.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolSetConfigurationManager.java deleted file mode 100644 index e24d81ee1..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolSetConfigurationManager.java +++ /dev/null @@ -1,279 +0,0 @@ -/******************************************************************************* - * Copyright 2024 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.core.tools; - -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.eclipse.cdt.cmake.core.ICMakeToolChainFile; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; - -import com.espressif.idf.core.IDFEnvironmentVariables; -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.toolchain.ESPToolChainManager; -import com.espressif.idf.core.toolchain.ESPToolchain; -import com.espressif.idf.core.tools.vo.IDFToolSet; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; - -/** - * The class is responsible for managing the idf tool sets - * export and import configuration params from json in workspace - * - * @author Ali Azam Rana - * - */ -public class ToolSetConfigurationManager -{ - private List idfToolSets; - private Gson gson; - private boolean reload; - - public ToolSetConfigurationManager() - { - gson = new GsonBuilder().setPrettyPrinting().enableComplexMapKeySerialization() - .excludeFieldsWithoutExposeAnnotation().create(); - } - - public void delete(IDFToolSet idfToolSet) - { - reload = true; - getIdfToolSets(false); - // cleanup the env and toolchains - IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); - idfEnvironmentVariables.removeAllEnvVariables(); - try - { - ESPToolChainManager espToolChainManager = new ESPToolChainManager(); - espToolChainManager.removeCmakeToolChains(); - espToolChainManager.removeStdToolChains(); - } - catch (Exception e) - { - Logger.log(e); - } - - // update the json now to remove the idf from it. - List idfToolSetsToExport = new ArrayList(); - for (IDFToolSet idfTool : idfToolSets) - { - if (idfTool.getIdfLocation().equals(idfToolSet.getIdfLocation())) - { - continue; - } - - idfToolSetsToExport.add(idfTool); - } - - try (FileWriter fileWriter = new FileWriter(toolSetConfigFilePath())) - { - gson.toJson(idfToolSetsToExport, fileWriter); - } - catch (IOException e) - { - Logger.log(e); - } - getIdfToolSets(false); - reload = false; - } - - public boolean isToolSetAlreadyPresent(String idfPath) - { - List idfToolSets = getIdfToolSets(false); - if (idfToolSets == null) - { - return false; - } - return idfToolSets.stream().filter(toolSet -> toolSet.getIdfLocation().equals(idfPath)).findAny().isPresent(); - } - - public List getIdfToolSets(boolean loadToolchains) - { - if (reload || idfToolSets == null || idfToolSets.isEmpty()) - { - idfToolSets = importToolSets(); - } - - if (loadToolchains && idfToolSets != null) - { - try - { - loadToolChainsInImportedToolSets(); - } - catch (CoreException e) - { - Logger.log(e); - } - } - return idfToolSets; - } - - private List importToolSets() - { - Type listType = new TypeToken>() - { - }.getType(); - List idfToolSets = new ArrayList<>(); - File toolSetFile = new File(toolSetConfigFilePath()); - if (!toolSetFile.exists()) - { - try - { - toolSetFile.createNewFile(); - } - catch (IOException e) - { - Logger.log(e); - } - } - - try (FileReader fileReader = new FileReader(toolSetConfigFilePath())) - { - idfToolSets = gson.fromJson(fileReader, listType); - } - catch (IOException e) - { - Logger.log(e); - } - - return idfToolSets; - } - - private void loadToolChainsInImportedToolSets() throws CoreException - { - ESPToolChainManager espToolChainManager = new ESPToolChainManager(); - for (IDFToolSet idfToolSet : idfToolSets) - { - String pathToLookForToolChains = idfToolSet.getEnvVars().get(IDFEnvironmentVariables.PATH); - String idfPath = idfToolSet.getEnvVars().get(IDFEnvironmentVariables.IDF_PATH); - Logger.log("Using: " + idfPath + " to find toolchains"); //$NON-NLS-1$//$NON-NLS-2$ - Logger.log("Env used: " + idfToolSet.getEnvVars()); //$NON-NLS-1$ - List espToolChains = espToolChainManager - .getStdToolChains(Arrays.asList(pathToLookForToolChains.split(File.pathSeparator)), idfPath); - idfToolSet.setEspStdToolChains(espToolChains); - List cMakeToolChainFiles = espToolChainManager.getCmakeToolChains(idfPath); - idfToolSet.setEspCmakeToolChainFiles(cMakeToolChainFiles); - } - } - - /** - * Looks for the existing idf tools from the given location if they are found it replaces the previous one - * - * @param idfToolSet IDFToolSet to add {@link IDFToolSet}@ - */ - public void export(IDFToolSet idfToolSet) - { - File toolSetConfigFile = new File(toolSetConfigFilePath()); - List idfToolSets = null; - Type listType = new TypeToken>() - { - }.getType(); - - if (toolSetConfigFile.exists()) - { - try (FileReader fileReader = new FileReader(toolSetConfigFile)) - { - idfToolSets = gson.fromJson(fileReader, listType); - } - catch (IOException e) - { - Logger.log(e); - return; - } - } - if (idfToolSets == null) - { - idfToolSets = new ArrayList<>(); - } - - // If the toolSet to be exported is active, set all others to inactive - if (idfToolSet.isActive()) - { - for (IDFToolSet toolSet : idfToolSets) - { - toolSet.setActive(false); // Set all to inactive - } - } - - boolean found = false; - for (int i = 0; i < idfToolSets.size(); i++) - { - IDFToolSet existingToolSet = idfToolSets.get(i); - if (existingToolSet.getId() == idfToolSet.getId()) - { - idfToolSets.set(i, idfToolSet); - found = true; - break; - } - } - - // If the toolSet was not found, add it to the list - if (!found) - { - idfToolSets.add(idfToolSet); - } - - try (FileWriter fileWriter = new FileWriter(toolSetConfigFile)) - { - gson.toJson(idfToolSets, fileWriter); - } - catch (IOException e) - { - Logger.log(e); - } - - } - - public void updateToolSetConfiguration(IDFToolSet idfToolSet) - { - reload = true; - getIdfToolSets(false); - List idfToolSetsToExport = new ArrayList(); - for (IDFToolSet existingIdfToolSet : idfToolSets) - { - if (idfToolSet.getId() == existingIdfToolSet.getId()) - { - idfToolSetsToExport.add(idfToolSet); - } - else - { - idfToolSetsToExport.add(existingIdfToolSet); - } - } - - try (FileWriter fileWriter = new FileWriter(toolSetConfigFilePath())) - { - gson.toJson(idfToolSets, fileWriter); - } - catch (IOException e) - { - Logger.log(e); - } - } - - private String toolSetConfigFilePath() - { - IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation(); - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(path.toOSString()); - stringBuilder.append(File.separatorChar); - stringBuilder.append(IToolsInstallationWizardConstants.TOOL_SET_CONFIG_FILE); - return stringBuilder.toString(); - } - - public void setReload(boolean reload) - { - this.reload = reload; - } -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsJsonParser.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsJsonParser.java deleted file mode 100644 index bb35f5d14..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsJsonParser.java +++ /dev/null @@ -1,238 +0,0 @@ -/******************************************************************************* - * Copyright 2021 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.core.tools; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.InputStreamReader; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.eclipse.core.runtime.Platform; - -import com.espressif.idf.core.tools.vo.ToolsVO; -import com.espressif.idf.core.tools.vo.VersionDetailsVO; -import com.espressif.idf.core.tools.vo.VersionsVO; -import com.espressif.idf.core.util.IDFUtil; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.stream.JsonReader; - -/** - * Tools json parser. - * - * @author Ali Azam Rana - * - */ -public class ToolsJsonParser -{ - private Gson gson; - private List toolsList; - private List requiredToolsList; - private static final String[] REQUIRED_TOOLS = new String[] {"cmake", "dfu-util", "ninja"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - - public ToolsJsonParser() - { - gson = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create(); - toolsList = new ArrayList<>(); - requiredToolsList = new ArrayList<>(); - } - - public void loadJson() throws Exception - { - toolsList.clear(); - JsonReader jsonReader = new JsonReader(new FileReader(IDFUtil.getIDFToolsJsonFileForInstallation())); - JsonObject jsonObject = gson.fromJson(jsonReader, JsonObject.class); - JsonArray jsonArray = jsonObject.get(IToolsJsonKeys.TOOLS_KEY).getAsJsonArray(); - List reqToolsNamesList = Arrays.asList(REQUIRED_TOOLS); - for (int i = 0; i < jsonArray.size(); i++) - { - JsonObject toolsJsonObject = jsonArray.get(i).getAsJsonObject(); - ToolsVO toolsVO = new ToolsVO(); - toolsVO.setDescription(toolsJsonObject.get(IToolsJsonKeys.DESCRIPTION_KEY).getAsString()); - if (toolsJsonObject.get(IToolsJsonKeys.EXPORT_PATHS_KEY).getAsJsonArray().size() > 0) - { - toolsVO.setExportPaths(getStringsListFromJsonArray( - toolsJsonObject.get(IToolsJsonKeys.EXPORT_PATHS_KEY).getAsJsonArray().get(0).getAsJsonArray())); - } - toolsVO.setExportVars( - getExportVarsMapFromJsonObject(toolsJsonObject.get(IToolsJsonKeys.EXPORT_VARS_KEY).getAsJsonObject())); - toolsVO.setInfoUrl(toolsJsonObject.get(IToolsJsonKeys.INFO_URL_KEY).getAsString()); - toolsVO.setInstallType(toolsJsonObject.get(IToolsJsonKeys.INSTALL_KEY).getAsString()); - toolsVO.setLicesnse(toolsJsonObject.get(IToolsJsonKeys.LICENSE_KEY).getAsString()); - toolsVO.setName(toolsJsonObject.get(IToolsJsonKeys.NAME_KEY).getAsString()); - if (toolsJsonObject.get(IToolsJsonKeys.SUPPORTED_TARGETS_KEY) != null) - { - toolsVO.setSupportedTargets( - getStringsListFromJsonArray(toolsJsonObject.get(IToolsJsonKeys.SUPPORTED_TARGETS_KEY).getAsJsonArray())); - } - toolsVO.setVersionCmd(getStringsListFromJsonArray(toolsJsonObject.get(IToolsJsonKeys.VERSION_CMD_KEY).getAsJsonArray())); - toolsVO.setVersionRegex(toolsJsonObject.get(IToolsJsonKeys.VERSION_REGEX).getAsString()); - toolsVO.setVersionVO(getVersions(toolsJsonObject.get(IToolsJsonKeys.VERSIONS_VO_KEY).getAsJsonArray())); - toolsVO.setVersion(jsonObject.get(IToolsJsonKeys.VERSION_KEY).getAsString()); - JsonElement jsonElement = toolsJsonObject.get(IToolsJsonKeys.PLATFORM_OVERRIDES_KEY); - if (jsonElement != null) - { - adjustPlatformOverrides(jsonElement.getAsJsonArray(), toolsVO); - } - - toolsList.add(toolsVO); - if (reqToolsNamesList.contains(toolsVO.getName())) - { - requiredToolsList.add(toolsVO); - } - } - } - - private void adjustPlatformOverrides(JsonArray jsonArray, ToolsVO toolsVO) throws Exception - { - String currentOS = Platform.getOS(); - if (currentOS.equals(Platform.OS_WIN32)) - { - currentOS = "win"; //$NON-NLS-1$ - } - - if (currentOS.contains(Platform.OS_MACOSX)) - { - Process p = Runtime.getRuntime().exec("uname -m"); //$NON-NLS-1$ - InputStreamReader inputStreamReader = new InputStreamReader(p.getInputStream()); - BufferedReader bufferedReader = new BufferedReader(inputStreamReader); - String output = bufferedReader.readLine(); - if (!output.contains("arm64")) //$NON-NLS-1$ - { - currentOS = "macos"; //$NON-NLS-1$ - } - else - { - currentOS = "macos-".concat(output); //$NON-NLS-1$ - inputStreamReader.close(); - bufferedReader.close(); - } - } - - for (int i = 0; i < jsonArray.size(); i++) - { - JsonObject jsonObject = jsonArray.get(i).getAsJsonObject(); - JsonArray platformArray = jsonObject.get(IToolsJsonKeys.PLATFORMS_KEY).getAsJsonArray(); - for (int j = 0; j < platformArray.size(); j++) - { - String platform = platformArray.get(j).getAsString(); - if (platform.contains(currentOS)) - { - Set keys = jsonObject.keySet(); - keys.remove(IToolsJsonKeys.PLATFORMS_KEY); - for(String key : keys) - { - JsonElement element = jsonObject.get(key); - if (element.isJsonArray()) - { - List list = getStringsListFromJsonArray(element.getAsJsonArray().get(0).getAsJsonArray()); - injectOverride(toolsVO, key, list); - } - else - { - injectOverride(toolsVO, key, element.getAsString()); - } - } - } - } - } - } - - private void injectOverride(ToolsVO toolsVO, String key, Object val) throws Exception - { - Field[] allFields = ToolsVO.class.getDeclaredFields(); - for (Field field : allFields) - { - if (field.isAnnotationPresent(JsonKey.class)) - { - JsonKey ann = field.getAnnotation(JsonKey.class); - if (ann.key_name().equals(key)) - { - field.trySetAccessible(); - field.set(toolsVO, val); - return; - } - } - } - } - - private List getVersions(JsonArray jsonArray) - { - List versionsVOs = new ArrayList(); - for (int i = 0; i < jsonArray.size(); i++) - { - JsonObject jsonObject = jsonArray.get(i).getAsJsonObject(); - VersionsVO versionsVO = new VersionsVO(); - Map versionDetailMap = new HashMap<>(); - for (String key : jsonObject.keySet()) - { - if (key.equalsIgnoreCase(IToolsJsonKeys.NAME_KEY) || key.equalsIgnoreCase(IToolsJsonKeys.STATUS_KEY)) - { - continue; - } - - VersionDetailsVO versionDetailsVO = new VersionDetailsVO(); - JsonObject osVersionDetailsObject = jsonObject.get(key).getAsJsonObject(); - versionDetailsVO.setSha256(osVersionDetailsObject.get(IToolsJsonKeys.SHA256_KEY).getAsString()); - versionDetailsVO.setSize(osVersionDetailsObject.get(IToolsJsonKeys.SIZE_KEY).getAsDouble()); - versionDetailsVO.setUrl(osVersionDetailsObject.get(IToolsJsonKeys.URL_KEY).getAsString()); - versionDetailMap.put(key, versionDetailsVO); - } - - versionsVO.setName(jsonObject.get(IToolsJsonKeys.NAME_KEY).getAsString()); - versionsVO.setStatus(jsonObject.get(IToolsJsonKeys.STATUS_KEY).getAsString()); - versionsVO.setVersionOsMap(versionDetailMap); - versionsVOs.add(versionsVO); - - } - - return versionsVOs; - } - - private List getStringsListFromJsonArray(JsonArray jsonArray) - { - List stringList = new ArrayList(); - if (jsonArray == null) - { - return stringList; - } - - for (int i = 0; i < jsonArray.size(); i++) - { - stringList.add(jsonArray.get(i).getAsString()); - } - return stringList; - } - - private Map getExportVarsMapFromJsonObject(JsonObject exportVars) - { - Map exportVarMap = new HashMap<>(); - for (String key : exportVars.keySet()) - { - exportVarMap.put(key, exportVars.get(key).getAsString()); - } - return exportVarMap; - } - - public List getToolsList() - { - return toolsList; - } - - public List getRequiredToolsList() - { - return requiredToolsList; - - } -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsPlatformMapping.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsPlatformMapping.java deleted file mode 100644 index 853e4363f..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsPlatformMapping.java +++ /dev/null @@ -1,72 +0,0 @@ -/******************************************************************************* - * Copyright 2022 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.core.tools; - -import java.util.Arrays; - -import org.eclipse.core.runtime.Platform; - -import com.espressif.idf.core.logging.Logger; - -/** - * Mapping /tools/tools.json os to Eclipse platform os & arch - * - * @author kondal kolipaka - * - */ -public enum ToolsPlatformMapping -{ - // @formatter:off - - WIN32("win32", Platform.OS_WIN32,Platform.ARCH_X86), //$NON-NLS-1$ - WIN64("win64", Platform.OS_WIN32, Platform.ARCH_X86_64), //$NON-NLS-1$ - MACOS("macos", Platform.OS_MACOSX, Platform.ARCH_X86_64), //$NON-NLS-1$ - MACOSARM64("macos-arm64", Platform.OS_MACOSX, Platform.ARCH_AARCH64), //$NON-NLS-1$ - LINUXAMD64("linux-amd64", Platform.OS_LINUX, Platform.ARCH_X86_64), //$NON-NLS-1$ - LINUXARM64("linux-arm64", Platform.OS_LINUX, "arm64"), //$NON-NLS-1$ //$NON-NLS-2$ - LINUXARMEL("linux-armel", Platform.OS_LINUX, "armel"), //$NON-NLS-1$ //$NON-NLS-2$ - LINUXARMHF("linux-armhf", Platform.OS_LINUX, "armhf"), //$NON-NLS-1$ //$NON-NLS-2$ - LINUXI686("linux-i686", Platform.OS_LINUX, "i686"); //$NON-NLS-1$ //$NON-NLS-2$ - - // @formatter:on - - private final String toolsOS; - private final String os; - private final String arch; - - ToolsPlatformMapping(String toolsOS, String os, String arch) - { - this.toolsOS = toolsOS; - this.os = os; - this.arch = arch; - } - - public String getToolsOS() - { - return toolsOS; - } - - public String getOS() - { - return os; - } - - public String getArch() - { - return arch; - } - - public static boolean isSupported(String toolsOS) - { - final String os = Platform.getOS(); - final String arch = Platform.getOSArch(); - Logger.log("toolsOS:" + toolsOS + " os:" + os + " arch:" + arch, true); - - return Arrays.stream(ToolsPlatformMapping.values()).filter( - entry -> entry.getToolsOS().equals(toolsOS) && entry.getArch().equals(arch) && entry.getOS().equals(os)) - .count() > 0; - } - -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsSystemWrapper.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsSystemWrapper.java deleted file mode 100644 index 5ac2d9356..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolsSystemWrapper.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright 2023 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.core.tools; - -import com.espressif.idf.core.SystemWrapper; - -/** - * Tools System wrapper to make sure to avoid the - * system path when verifying for validation after tools installation - * @author Ali Azam Rana - * - */ -public class ToolsSystemWrapper implements SystemWrapper -{ - private String path; - - public ToolsSystemWrapper(String path) - { - this.path = path; - } - - @Override - public String getPathEnv() - { - return path; - } - - @Override - public String getEnvExecutables() - { - return System.getenv(PATHEXT); - } - -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/messages.properties b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/messages.properties new file mode 100644 index 000000000..405d211cc --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/messages.properties @@ -0,0 +1,7 @@ +InstallToolsHandler_CopyingOpenOCDRules=Copying OpenOCD Rules +InstallToolsHandler_OpenOCDRulesCopyPaths=Copying File: %s to destination: %s +InstallToolsHandler_OpenOCDRulesCopyWarning=Warning +InstallToolsHandler_OpenOCDRulesCopyWarningMessage=The rules file is already present in the /etc/udev/rules.d/ directory, Do you want to replace the file with the file from OpenOCD directory +InstallToolsHandler_OpenOCDRulesNotCopied=Rules Not Copied to system +InstallToolsHandler_OpenOCDRulesCopyError=Unable to copy rules for OpenOCD to system directory, try running the eclipse with sudo command +InstallToolsHandler_OpenOCDRulesCopied=Rules Copied to system diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/util/ToolsUtility.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/util/ToolsUtility.java index 843d430f0..637b85369 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/util/ToolsUtility.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/util/ToolsUtility.java @@ -4,41 +4,17 @@ *******************************************************************************/ package com.espressif.idf.core.tools.util; -import java.io.BufferedInputStream; +import java.io.BufferedReader; import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardCopyOption; -import java.security.MessageDigest; -import java.text.DecimalFormat; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; -import org.apache.commons.compress.archivers.ArchiveEntry; -import org.apache.commons.compress.archivers.ArchiveInputStream; -import org.apache.commons.compress.archivers.ArchiveStreamFactory; -import org.apache.commons.compress.archivers.tar.TarArchiveEntry; -import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; -import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream; -import org.apache.commons.compress.utils.IOUtils; -import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Platform; -import org.tukaani.xz.XZInputStream; import com.espressif.idf.core.IDFEnvironmentVariables; -import com.espressif.idf.core.SystemExecutableFinder; import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.tools.ToolsSystemWrapper; -import com.espressif.idf.core.tools.vo.ToolsVO; -import com.espressif.idf.core.util.FileUtil; -import com.espressif.idf.core.util.IDFUtil; -import com.espressif.idf.core.util.StringUtil; +import com.espressif.idf.core.tools.vo.IdfInstalled; /** * Utility class for Tools Management operations @@ -48,285 +24,78 @@ */ public class ToolsUtility { - private static final String SLASH = "\\"; //$NON-NLS-1$ - - private static final String FORWARD_SLASH = "/"; //$NON-NLS-1$ - - public static final String ESPRESSIF_HOME_DIR = System.getProperty("user.home").concat("/.espressif"); //$NON-NLS-1$ //$NON-NLS-2$ - - public static final String ESPRESSIF_HOME_TOOLS_DIR = ESPRESSIF_HOME_DIR.concat("/tools"); //$NON-NLS-1$ - - public static boolean isToolInstalled(String toolName, String versionsName) + public static String getIdfVersion(IdfInstalled idfInstalled, String gitPath) { - File homeDir = new File(ESPRESSIF_HOME_DIR); - if (!homeDir.exists()) - { - return false; - } + String activationScript = idfInstalled.getActivationScript(); + String espIdfVersion = null; - File toolDirectory = new File(ESPRESSIF_HOME_TOOLS_DIR.concat(FORWARD_SLASH).concat(toolName) - .concat(FORWARD_SLASH).concat(versionsName)); - if (toolDirectory.exists()) - { - IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); - String pathValue = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.PATH); - String[] splittedPaths = pathValue.split(File.pathSeparator); - String directorySplittor = Platform.getOS().equals(Platform.OS_WIN32) ? SLASH : FORWARD_SLASH; - for (String splittedPath : splittedPaths) - { - if (splittedPath.contains(toolName.concat(directorySplittor).concat(versionsName))) - { - return true; - } - } - } - - return false; - } - - public static void removeToolDirectory(String toolName) throws IOException - { - File toolDirectory = new File(ESPRESSIF_HOME_TOOLS_DIR.concat(FORWARD_SLASH).concat(toolName)); - if (!toolDirectory.exists()) + try { - return; - } - FileUtil.deleteDirectory(toolDirectory); - } + // Determine the command to execute based on the OS + List args = getExportScriptCommand(activationScript); + String[] command = args.toArray(new String[args.size()]); + // Execute the script + ProcessBuilder processBuilder = new ProcessBuilder(command); + processBuilder.directory(new File(activationScript).getParentFile()); + processBuilder.redirectErrorStream(true); - public static String getFileExtension(String filename) - { - return Optional.ofNullable(filename).filter(f -> f.contains(".")) //$NON-NLS-1$ - .map(f -> f.substring(filename.lastIndexOf(".") + 1)).get(); //$NON-NLS-1$ - } + Process process = processBuilder.start(); - public static void extractZip(String zipFilePath, String extractDirectory) - { - InputStream inputStream = null; - try - { - Path filePath = Paths.get(zipFilePath); - inputStream = Files.newInputStream(filePath); - ArchiveStreamFactory archiveStreamFactory = new ArchiveStreamFactory(); - ArchiveInputStream archiveInputStream = archiveStreamFactory - .createArchiveInputStream(ArchiveStreamFactory.ZIP, inputStream); - ArchiveEntry archiveEntry = null; - while ((archiveEntry = archiveInputStream.getNextEntry()) != null) + // Read the script output + try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) { - Path path = Paths.get(extractDirectory, archiveEntry.getName()); - File file = path.toFile(); - if (archiveEntry.isDirectory()) - { - if (!file.isDirectory()) - { - file.mkdirs(); - } - } - else + String line; + while ((line = reader.readLine()) != null) { - File parent = file.getParentFile(); - if (!parent.isDirectory()) - { - parent.mkdirs(); - } - try (OutputStream outputStream = Files.newOutputStream(path)) + if (line.startsWith("ESP_IDF_VERSION=")) //$NON-NLS-1$ { - IOUtils.copy(archiveInputStream, outputStream); + espIdfVersion = line.split("=")[1]; //$NON-NLS-1$ + break; } } } - } - catch (Exception e) - { - Logger.log(e); - } - } - public static void extractTarGz(String tarFile, String outputDir) - { - Path pathInput = Paths.get(tarFile); - Path pathOutput = Paths.get(outputDir); - try - { - TarArchiveInputStream tararchiveinputstream = new TarArchiveInputStream( - new GzipCompressorInputStream(new BufferedInputStream(Files.newInputStream(pathInput)))); - - ArchiveEntry archiveentry = null; - while ((archiveentry = tararchiveinputstream.getNextEntry()) != null) - { - Path pathEntryOutput = pathOutput.resolve(archiveentry.getName()); - if (archiveentry.isDirectory()) - { - if (!Files.exists(pathEntryOutput)) - Files.createDirectories(pathEntryOutput); - } - else - { - Files.createDirectories(pathEntryOutput.getParent()); - Files.copy(tararchiveinputstream, pathEntryOutput, StandardCopyOption.REPLACE_EXISTING); - Runtime.getRuntime().exec("/bin/chmod 755 ".concat(pathEntryOutput.toString())); //$NON-NLS-1$ - } - - } - - tararchiveinputstream.close(); + process.waitFor(); } catch (Exception e) { Logger.log(e); } - } - - public static void extractTarXz(String tarFile, String outputDir) - { - Path pathOutput = Paths.get(outputDir); - Map symLinks = new HashMap<>(); - Map hardLinks = new HashMap<>(); - try - { - FileInputStream fileInputStream = new FileInputStream(tarFile); - BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); - XZInputStream xzInputStream = new XZInputStream(bufferedInputStream); - TarArchiveInputStream tararchiveinputstream = new TarArchiveInputStream(xzInputStream); - TarArchiveEntry archiveentry = null; - while ((archiveentry = tararchiveinputstream.getNextTarEntry()) != null) - { - Path pathEntryOutput = pathOutput.resolve(archiveentry.getName()); - if (archiveentry.isSymbolicLink()) - { - symLinks.put(pathEntryOutput, - pathOutput.resolve(archiveentry.getName()).getParent().resolve(archiveentry.getLinkName())); - continue; - } - else if (archiveentry.isLink()) - { - hardLinks.put(pathEntryOutput, - pathOutput.resolve(archiveentry.getLinkName())); - continue; - } - else if (archiveentry.isDirectory()) - { - if (!Files.exists(pathEntryOutput)) - Files.createDirectories(pathEntryOutput); - } - else - { - System.out.println(pathEntryOutput.toString() + " " + archiveentry.getSize()); //$NON-NLS-1$ - Files.copy(tararchiveinputstream, pathEntryOutput, StandardCopyOption.REPLACE_EXISTING); - Runtime.getRuntime().exec("/bin/chmod 755 ".concat(pathEntryOutput.toString())); //$NON-NLS-1$ - } - } - tararchiveinputstream.close(); - xzInputStream.close(); - fileInputStream.close(); - hardLinks.forEach(ToolsUtility::createHardLinks); - symLinks.forEach(ToolsUtility::createSymLinks); - } - catch (Exception e) - { - Logger.log(e); - } - } - - private static void createHardLinks(Path link, Path target) - { - try - { - Files.deleteIfExists(link); - Files.createLink(link, target); - } - catch (Exception e) - { - Logger.log(e); - } - } - - private static void createSymLinks(Path link, Path target) - { - try - { - Files.deleteIfExists(link); - Files.createSymbolicLink(link, target.toRealPath()); - } - catch (Exception e) - { - Logger.log(e); - } - } - public static String getReadableSizeMB(double size) - { - size /= 1024; // KB - size /= 1024; // MB - DecimalFormat df = new DecimalFormat("0.00"); //$NON-NLS-1$ - return String.valueOf(df.format(size)).concat(" MB"); //$NON-NLS-1$ + return espIdfVersion; } - - public static Map getAvailableToolVersions(ToolsVO toolsVo) + + public static List getExportScriptCommand(String activationScriptPath) { - Map availableVersions = new HashMap(); - File toolDirectory = new File( - ESPRESSIF_HOME_TOOLS_DIR.concat(FORWARD_SLASH).concat(toolsVo.getName()).concat(FORWARD_SLASH)); - if (toolDirectory.exists()) + List command = new ArrayList<>(); + if (Platform.getOS().equals(Platform.OS_WIN32)) { - for (File file : toolDirectory.listFiles()) - { - if (file.isDirectory()) - { - availableVersions.put(file.getName(), file.getAbsolutePath()); - } - } + command.add("powershell.exe"); //$NON-NLS-1$ + command.add("-ExecutionPolicy"); //$NON-NLS-1$ + command.add("Bypass"); //$NON-NLS-1$ + command.add("-File"); //$NON-NLS-1$ + command.add(activationScriptPath); + command.add("-e"); //$NON-NLS-1$ } - - return availableVersions; - } - - /** - * Gets the file checksum based on the provided message digest - * - * @param digest - * @param file - * @return - * @throws IOException - */ - public static String getFileChecksum(MessageDigest digest, File file) throws IOException - { - FileInputStream fis = new FileInputStream(file); - byte[] byteArray = new byte[1024]; - int bytesCount = 0; - while ((bytesCount = fis.read(byteArray)) != -1) + else if (Platform.getOS().equals(Platform.OS_LINUX)) { - digest.update(byteArray, 0, bytesCount); + command.add("/bin/bash"); //$NON-NLS-1$ + command.add(activationScriptPath); + command.add("-e"); //$NON-NLS-1$ } - ; - fis.close(); - byte[] bytes = digest.digest(); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < bytes.length; i++) + else { - sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1)); + command.add("/bin/zsh"); //$NON-NLS-1$ + command.add(activationScriptPath); + command.add("-e"); //$NON-NLS-1$ } - return sb.toString(); + return command; } - /** - * Gets the absolute path for the tool from the given path - * @param toolName tool to find absolute path - * @param path the path to variable to look into, if null System.getenv() will be used - * @return absolute path to the tool - */ - public static IPath findAbsoluteToolPath(String toolName, String path) + public static boolean isIdfInstalledActive(IdfInstalled idfInstalled) { - if (StringUtil.isEmpty(path)) - { - Map env = IDFUtil.getSystemEnv(); - if (env.containsKey(IDFEnvironmentVariables.PATH)) - path = env.get(IDFEnvironmentVariables.PATH); - else - path = env.get("Path"); //$NON-NLS-1$ - } - - SystemExecutableFinder systemExecutableFinder = new SystemExecutableFinder(new ToolsSystemWrapper(path)); - return systemExecutableFinder.find(toolName); + IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); + String espIdfIdEim = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.ESP_IDF_EIM_ID); + return idfInstalled.getId().equals(espIdfIdEim); } } diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/EimJson.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/EimJson.java new file mode 100644 index 000000000..b6076d013 --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/EimJson.java @@ -0,0 +1,47 @@ +package com.espressif.idf.core.tools.vo; + +import java.util.Collections; +import java.util.List; + +import com.google.gson.annotations.Expose; + +public class EimJson +{ + @Expose + private String gitPath; + @Expose + private String idfSelectedId; + @Expose + private List idfInstalled = Collections.emptyList(); + + public String getGitPath() + { + return gitPath; + } + + public void setGitPath(String gitPath) + { + this.gitPath = gitPath; + } + + public String getIdfSelectedId() + { + return idfSelectedId; + } + + public void setIdfSelectedId(String idfSelectedId) + { + this.idfSelectedId = idfSelectedId; + } + + public List getIdfInstalled() + { + return idfInstalled; + } + + public void setIdfInstalled(List idfInstalled) + { + this.idfInstalled = idfInstalled; + } + +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/IDFToolSet.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/IDFToolSet.java deleted file mode 100644 index 50a750b54..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/IDFToolSet.java +++ /dev/null @@ -1,156 +0,0 @@ -/******************************************************************************* - * Copyright 2024 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.core.tools.vo; - -import java.io.Serializable; -import java.util.List; -import java.util.Map; - -import org.eclipse.cdt.cmake.core.ICMakeToolChainFile; - -import com.espressif.idf.core.toolchain.ESPToolchain; -import com.google.gson.annotations.Expose; - -/** - * VO to hold the idf tools information that is read or exported to the configuration json - * - * @author Ali Azam Rana - * - */ -public class IDFToolSet implements Serializable -{ - private static final long serialVersionUID = -4899224940094139736L; - - @Expose - private int id; - - @Expose - private String idfLocation; - - @Expose - private String idfVersion; - - @Expose - private boolean active; - - @Expose - private String systemGitExecutablePath; - - @Expose - private String systemPythonExecutablePath; - - @Expose - private Map envVars; - - private List espStdToolChains; - private List espCmakeToolChainFiles; - private List launchTargets; - - public String getIdfLocation() - { - return idfLocation; - } - - public void setIdfLocation(String idfLocation) - { - this.idfLocation = idfLocation; - } - - public String getIdfVersion() - { - return idfVersion; - } - - public void setIdfVersion(String idfVersion) - { - this.idfVersion = idfVersion; - } - - public boolean isActive() - { - return active; - } - - public void setActive(boolean active) - { - this.active = active; - } - - public Map getEnvVars() - { - return envVars; - } - - public void setEnvVars(Map envVars) - { - this.envVars = envVars; - } - - public List getEspStdToolChains() - { - return espStdToolChains; - } - - public void setEspStdToolChains(List espStdToolChains) - { - this.espStdToolChains = espStdToolChains; - } - - public List getEspCmakeToolChainFiles() - { - return espCmakeToolChainFiles; - } - - public void setEspCmakeToolChainFiles(List espCmakeToolChainFiles) - { - this.espCmakeToolChainFiles = espCmakeToolChainFiles; - } - - public List getLaunchTargets() - { - return launchTargets; - } - - public void setLaunchTargets(List launchTargets) - { - this.launchTargets = launchTargets; - } - - public int getId() - { - return id; - } - - public void setId(int id) - { - this.id = id; - } - - @Override - public int hashCode() - { - return idfLocation.hashCode(); - } - - public String getSystemGitExecutablePath() - { - return systemGitExecutablePath; - } - - public void setSystemGitExecutablePath(String systemGitExecutablePath) - { - this.systemGitExecutablePath = systemGitExecutablePath; - } - - public String getSystemPythonExecutablePath() - { - return systemPythonExecutablePath; - } - - public void setSystemPythonExecutablePath(String systemPythonExecutablePath) - { - this.systemPythonExecutablePath = systemPythonExecutablePath; - } -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/IdfInstalled.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/IdfInstalled.java new file mode 100644 index 000000000..2e0d4ae9a --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/IdfInstalled.java @@ -0,0 +1,80 @@ +package com.espressif.idf.core.tools.vo; + +import com.google.gson.annotations.Expose; + +public class IdfInstalled +{ + @Expose + private String activationScript; + @Expose + private String id; + @Expose + private String idfToolsPath; + @Expose + private String name; + @Expose + private String path; + @Expose + private String python; + + public String getActivationScript() + { + return activationScript; + } + + public void setActivationScript(String activationScript) + { + this.activationScript = activationScript; + } + + public String getId() + { + return id; + } + + public void setId(String id) + { + this.id = id; + } + + public String getIdfToolsPath() + { + return idfToolsPath; + } + + public void setIdfToolsPath(String idfToolsPath) + { + this.idfToolsPath = idfToolsPath; + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getPath() + { + return path; + } + + public void setPath(String path) + { + this.path = path; + } + + public String getPython() + { + return python; + } + + public void setPython(String python) + { + this.python = python; + } + +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/ToolsVO.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/ToolsVO.java deleted file mode 100644 index 92ab5bf9e..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/ToolsVO.java +++ /dev/null @@ -1,259 +0,0 @@ -/******************************************************************************* - * Copyright 2021 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.core.tools.vo; - -import java.text.DecimalFormat; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -import org.eclipse.core.runtime.Platform; - -import com.espressif.idf.core.tools.IToolsJsonKeys; -import com.espressif.idf.core.tools.JsonKey; - -/** - * Bean class for tools information from json - * - * @author Ali Azam Rana - * - */ -public class ToolsVO -{ - @JsonKey(key_name = IToolsJsonKeys.DESCRIPTION_KEY) - private String description; - - @JsonKey(key_name = IToolsJsonKeys.EXPORT_PATHS_KEY) - private List exportPaths; - - @JsonKey(key_name = IToolsJsonKeys.EXPORT_VARS_KEY) - private Map exportVars; - - @JsonKey(key_name = IToolsJsonKeys.INFO_URL_KEY) - private String infoUrl; - - @JsonKey(key_name = IToolsJsonKeys.INSTALL_KEY) - private String installType; - - @JsonKey(key_name = IToolsJsonKeys.LICENSE_KEY) - private String licesnse; - - @JsonKey(key_name = IToolsJsonKeys.NAME_KEY) - private String name; - - @JsonKey(key_name = IToolsJsonKeys.SUPPORTED_TARGETS_KEY) - private List supportedTargets; - - @JsonKey(key_name = IToolsJsonKeys.VERSION_CMD_KEY) - private List versionCmd; - - @JsonKey(key_name = IToolsJsonKeys.VERSION_REGEX) - private String versionRegex; - - @JsonKey(key_name = IToolsJsonKeys.VERSIONS_VO_KEY) - private List versionVOs; - - @JsonKey(key_name = IToolsJsonKeys.VERSION_KEY) - private String version; - - private boolean installed; - - private static final String MAC_OS = "mac"; //$NON-NLS-1$ - private static final String LINUX_OS = "linux"; //$NON-NLS-1$ - private static final String WIN_OS = "win"; //$NON-NLS-1$ - - public String getDescription() - { - return description; - } - - public void setDescription(String description) - { - this.description = description; - } - - public List getExportPaths() - { - return exportPaths; - } - - public void setExportPaths(List exportPaths) - { - this.exportPaths = exportPaths; - } - - public String getInfoUrl() - { - return infoUrl; - } - - public void setInfoUrl(String infoUrl) - { - this.infoUrl = infoUrl; - } - - public Map getExportVars() - { - return exportVars; - } - - public void setExportVars(Map exportVars) - { - this.exportVars = exportVars; - } - - public String getInstallType() - { - return installType; - } - - public void setInstallType(String installType) - { - this.installType = installType; - } - - public String getLicesnse() - { - return licesnse; - } - - public void setLicesnse(String licesnse) - { - this.licesnse = licesnse; - } - - public String getName() - { - return name; - } - - public void setName(String name) - { - this.name = name; - } - - public List getSupportedTargets() - { - return supportedTargets; - } - - public void setSupportedTargets(List supportedTargets) - { - this.supportedTargets = supportedTargets; - } - - public List getVersionCmd() - { - return versionCmd; - } - - public void setVersionCmd(List versionCmd) - { - this.versionCmd = versionCmd; - } - - public String getVersion() - { - return version; - } - - public void setVersion(String version) - { - this.version = version; - } - - public List getVersionVO() - { - return versionVOs; - } - - public void setVersionVO(List versionVO) - { - this.versionVOs = versionVO; - } - - public double getSize() - { - double totalSize = 0; - String key = null; - if (Platform.getOS().equals(Platform.OS_WIN32)) - { - key = WIN_OS; - } - else if (Platform.getOS().equals(Platform.OS_LINUX)) - { - key = LINUX_OS; - } - else if (Platform.getOS().equals(Platform.OS_MACOSX)) - { - key = MAC_OS; - } - - for (VersionsVO versionVO : versionVOs) - { - totalSize += versionVO.getVersionOsMap().get(key).getSize(); - } - - return totalSize; - } - - public String getReadableSize() - { - double totalSize = getSize(); - totalSize /= 1024; // KB - totalSize /= 1024; // MB - DecimalFormat df = new DecimalFormat("0"); //$NON-NLS-1$ - return String.valueOf(df.format(totalSize)).concat(" MB"); //$NON-NLS-1$ - } - - public boolean isInstalled() - { - return installed; - } - - public void setInstalled(boolean installed) - { - this.installed = installed; - } - - public String getVersionRegex() - { - return versionRegex; - } - - public void setVersionRegex(String versionRegex) - { - this.versionRegex = versionRegex; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null || getClass() != obj.getClass()) - return false; - ToolsVO other = (ToolsVO) obj; - return Objects.equals(description, other.description) - && Objects.equals(exportPaths, other.exportPaths) - && Objects.equals(exportVars, other.exportVars) - && Objects.equals(infoUrl, other.infoUrl) - && Objects.equals(installType, other.installType) - && Objects.equals(licesnse, other.licesnse) - && Objects.equals(name, other.name) - && Objects.equals(supportedTargets, other.supportedTargets) - && Objects.equals(versionCmd, other.versionCmd) - && Objects.equals(versionRegex, other.versionRegex) - && Objects.equals(versionVOs, other.versionVOs) - && Objects.equals(version, other.version) - && installed == other.installed; - } - - @Override - public int hashCode() - { - return Objects.hash(description, exportPaths, exportVars, infoUrl, installType, licesnse, name, supportedTargets, versionCmd, versionRegex, versionVOs, version, installed); - } -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/VersionDetailsVO.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/VersionDetailsVO.java deleted file mode 100644 index a9a2122b0..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/VersionDetailsVO.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright 2021 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.core.tools.vo; - -import java.text.DecimalFormat; -import java.util.Objects; - -/** - * Version details vo for the versions class - * - * @author Ali Azam Rana - * - */ -public class VersionDetailsVO -{ - private String sha256; - - private double size; - - private String url; - - private boolean selected; - - public String getSha256() - { - return sha256; - } - - public void setSha256(String sha256) - { - this.sha256 = sha256; - } - - public double getSize() - { - return size; - } - - public void setSize(double size) - { - this.size = size; - } - - public String getUrl() - { - return url; - } - - public void setUrl(String url) - { - this.url = url; - } - - public String getReadableSize() - { - double totalSize = getSize(); - totalSize /= 1024; // KB - totalSize /= 1024; // MB - DecimalFormat df = new DecimalFormat("0"); - return String.valueOf(df.format(totalSize)).concat(" MB"); - } - - public boolean isSelected() - { - return selected; - } - - public void setSelected(boolean selected) - { - this.selected = selected; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null || getClass() != obj.getClass()) - return false; - VersionDetailsVO other = (VersionDetailsVO) obj; - return Double.compare(size, other.size) == 0 - && selected == other.selected - && Objects.equals(sha256, other.sha256) - && Objects.equals(url, other.url); - } - - @Override - public int hashCode() - { - return Objects.hash(sha256, size, url, selected); - } -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/VersionsVO.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/VersionsVO.java deleted file mode 100644 index ac871a78a..000000000 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/VersionsVO.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright 2021 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.core.tools.vo; - -import java.util.Map; -import java.util.Objects; - -/** - * Versions class for versions information in tools json - * - * @author Ali Azam Rana - * - */ -public class VersionsVO -{ - private String name; - - private String status; - - private Map versionOsMap; - - private boolean isAvailable; - - private String availablePath; - - public String getName() - { - return name; - } - - public void setName(String name) - { - this.name = name; - } - - public String getStatus() - { - return status; - } - - public void setStatus(String status) - { - this.status = status; - } - - public Map getVersionOsMap() - { - return versionOsMap; - } - - public void setVersionOsMap(Map versionOsMap) - { - this.versionOsMap = versionOsMap; - } - - public boolean isAvailable() - { - return isAvailable; - } - - public void setAvailable(boolean isAvailable) - { - this.isAvailable = isAvailable; - } - - public String getAvailablePath() - { - return availablePath; - } - - public void setAvailablePath(String availablePath) - { - this.availablePath = availablePath; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - return true; - if (obj == null || getClass() != obj.getClass()) - return false; - VersionsVO other = (VersionsVO) obj; - return isAvailable == other.isAvailable - && Objects.equals(name, other.name) - && Objects.equals(status, other.status) - && Objects.equals(versionOsMap, other.versionOsMap) - && Objects.equals(availablePath, other.availablePath); - } - - @Override - public int hashCode() - { - return Objects.hash(name, status, versionOsMap, isAvailable, availablePath); - } -} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonChangeListener.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonChangeListener.java new file mode 100644 index 000000000..37d12f78d --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonChangeListener.java @@ -0,0 +1,17 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.core.tools.watcher; + +import java.nio.file.Path; + +/** + * Classes that want to handle the eim_idf.json Changes must implement this listener + * @author Ali Azam Rana + * + */ +public interface EimJsonChangeListener +{ + void onJsonFileChanged(Path file); +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonStateChecker.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonStateChecker.java new file mode 100644 index 000000000..44232e9eb --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonStateChecker.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.core.tools.watcher; + +import java.io.File; + +import org.eclipse.core.runtime.Platform; +import org.osgi.service.prefs.Preferences; + +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.EimConstants; + +/** + * Checks if eim_idf.json was changed while Eclipse was not running. Stores and compares last seen timestamp to file + * system's last modified. + * + * @author Ali Azam Rana + * + */ +public class EimJsonStateChecker +{ + private static final String LAST_MODIFIED_PREF_KEY = "lastEimJsonModified"; //$NON-NLS-1$ + + private final Preferences preferences; + + public EimJsonStateChecker(Preferences preferences) + { + this.preferences = preferences; + } + + public boolean wasModifiedSinceLastRun() + { + File jsonFile = new File(getEimJsonPath()); + if (!jsonFile.exists()) + { + return false; + } + + long lastModified = jsonFile.lastModified(); + long lastSeen = preferences.getLong(LAST_MODIFIED_PREF_KEY, 0L); + + if (lastSeen == 0L) + { + // First run ever, don't treat as changed + Logger.log("eim_idf.json detected, but no last seen timestamp — assuming first run."); //$NON-NLS-1$ + return false; + } + + return lastModified > lastSeen; + } + + public void updateLastSeenTimestamp() + { + File jsonFile = new File(getEimJsonPath()); + if (jsonFile.exists()) + { + preferences.putLong(LAST_MODIFIED_PREF_KEY, jsonFile.lastModified()); + } + } + + private String getEimJsonPath() + { + return Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_PATH : EimConstants.EIM_POSIX_PATH; + } +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java new file mode 100644 index 000000000..b590e2500 --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java @@ -0,0 +1,152 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.core.tools.watcher; + +import java.io.IOException; +import java.nio.file.*; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +import org.eclipse.core.runtime.Platform; + +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.EimConstants; + +/** + * eim_idf.json watch service. The service will only watch for changes. Any handling must be done by the listeners to + * this service. + * + * @author Ali Azam Rana + */ +public class EimJsonWatchService extends Thread +{ + private final WatchService watchService; + private final Path watchDirectoryPath; + private final List eimJsonChangeListeners = new CopyOnWriteArrayList<>(); + private volatile boolean running = true; + + private EimJsonWatchService() throws IOException + { + String directoryPathString = Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_DIR + : EimConstants.EIM_POSIX_DIR; + + watchDirectoryPath = Paths.get(directoryPathString); + watchService = FileSystems.getDefault().newWatchService(); + watchDirectoryPath.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, + StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY); + + Logger.log("Watcher added to the directory: " + directoryPathString); //$NON-NLS-1$ + setName("EimJsonWatchService"); //$NON-NLS-1$ + setDaemon(true); + start(); + } + + private static class Holder + { + private static EimJsonWatchService INSTANCE; + + static + { + try + { + INSTANCE = new EimJsonWatchService(); + } + catch (IOException e) + { + Logger.log("Failed to initialize EimJsonWatchService"); //$NON-NLS-1$ + Logger.log(e); + } + } + } + + public static EimJsonWatchService getInstance() + { + return Holder.INSTANCE; + } + + public void addEimJsonChangeListener(EimJsonChangeListener listener) + { + if (listener != null) + { + eimJsonChangeListeners.add(listener); + } + } + + public void removeAllListeners() + { + eimJsonChangeListeners.clear(); + } + + @Override + public void run() + { + while (running) + { + WatchKey key; + try + { + key = watchService.take(); + } + catch (InterruptedException e) + { + Logger.log("Watch Service Interrupted"); //$NON-NLS-1$ + Thread.currentThread().interrupt(); + break; + } + catch (ClosedWatchServiceException cwse) + { + break; + } + + for (WatchEvent event : key.pollEvents()) + { + if (event.kind() == StandardWatchEventKinds.OVERFLOW) + { + continue; + } + + Object context = event.context(); + if (context instanceof Path path && path.toString().equals(EimConstants.EIM_JSON)) + { + Path fullPath = watchDirectoryPath.resolve(path); + for (EimJsonChangeListener listener : eimJsonChangeListeners) + { + listener.onJsonFileChanged(fullPath); + } + } + } + + boolean valid = key.reset(); + if (!valid) + { + break; + } + } + + // clean up + try + { + watchService.close(); + } + catch (IOException e) + { + Logger.log("Failed to close WatchService"); //$NON-NLS-1$ + Logger.log(e); + } + } + + @Override + public void interrupt() + { + running = false; + super.interrupt(); + } + + public void shutdown() + { + running = false; + interrupt(); + } +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/EspToolCommands.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/EspToolCommands.java index 1de306634..f37405169 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/EspToolCommands.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/EspToolCommands.java @@ -26,7 +26,7 @@ public Process chipInformation(String port) throws Exception { destroyAnyChipInfoProcess(); ProcessBuilder processBuilder = new ProcessBuilder(getChipInfoCommand(port)); - processBuilder.environment().putAll(IDFUtil.getSystemEnv()); + processBuilder.environment().putAll(System.getenv()); chipInfoProcess = processBuilder.start(); return chipInfoProcess; } @@ -35,7 +35,7 @@ public Process eraseFlash(String port) throws Exception { destroyAnyChipInfoProcess(); ProcessBuilder processBuilder = new ProcessBuilder(getFlashEraseCommand(port)); - processBuilder.environment().putAll(IDFUtil.getSystemEnv()); + processBuilder.environment().putAll(System.getenv()); flashEraseProcess = processBuilder.start(); return flashEraseProcess; } @@ -44,7 +44,7 @@ public Process writeFlash(String port, String path, String offset) throws IOExce { destroyAnyChipInfoProcess(); ProcessBuilder processBuilder = new ProcessBuilder(getWriteFlashCommand(port, path, offset)); - processBuilder.environment().putAll(IDFUtil.getSystemEnv()); + processBuilder.environment().putAll(System.getenv()); writeFlashProcess = processBuilder.start(); return writeFlashProcess; } diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java index d81611f15..9051f6ad4 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java @@ -43,7 +43,6 @@ import com.espressif.idf.core.IDFConstants; import com.espressif.idf.core.IDFCorePlugin; -import com.espressif.idf.core.IDFCorePreferenceConstants; import com.espressif.idf.core.IDFEnvironmentVariables; import com.espressif.idf.core.LaunchBarTargetConstants; import com.espressif.idf.core.ProcessBuilderFactory; @@ -212,6 +211,30 @@ public static String getIDFPythonEnvPath() return findCommandFromBuildEnvPath(IDFConstants.PYTHON_CMD); } + + public static String getIDFPythonEnvPath(String idfPyEnvPath) + { + idfPyEnvPath = idfPyEnvPath.strip(); + if (!StringUtil.isEmpty(idfPyEnvPath)) + { + + if (Platform.getOS().equals(Platform.OS_WIN32)) + { + idfPyEnvPath = idfPyEnvPath + "/" + "Scripts"; //$NON-NLS-1$ //$NON-NLS-2$ + } + else + { + idfPyEnvPath = idfPyEnvPath + "/" + "bin"; //$NON-NLS-1$ //$NON-NLS-2$ + } + java.nio.file.Path commandPath = findCommand(IDFConstants.PYTHON_CMD, idfPyEnvPath); + if (commandPath != null) + { + return commandPath.toFile().getAbsolutePath(); + } + } + return findCommandFromBuildEnvPath(IDFConstants.PYTHON_CMD); + + } public static boolean checkIfIdfSupportsSpaces() { @@ -779,7 +802,7 @@ public static String getGitExecutablePathFromSystem() arguments.add("whereis"); //$NON-NLS-1$ arguments.add("git"); //$NON-NLS-1$ - Map environment = new HashMap<>(getSystemEnv()); + Map environment = new HashMap<>(System.getenv()); IStatus status = processRunner.runInBackground(arguments, org.eclipse.core.runtime.Path.ROOT, environment); @@ -884,6 +907,7 @@ public static String getIDFToolsPathFromPreferences() return idfToolsPath; } + public static void closeWelcomePage(IWorkbenchWindow activeww) { Display.getDefault().syncExec(() -> { diff --git a/bundles/com.espressif.idf.sdk.config.core/src/com/espressif/idf/sdk/config/core/server/JsonConfigServer.java b/bundles/com.espressif.idf.sdk.config.core/src/com/espressif/idf/sdk/config/core/server/JsonConfigServer.java index 4033fa16e..fa7f20468 100644 --- a/bundles/com.espressif.idf.sdk.config.core/src/com/espressif/idf/sdk/config/core/server/JsonConfigServer.java +++ b/bundles/com.espressif.idf.sdk.config.core/src/com/espressif/idf/sdk/config/core/server/JsonConfigServer.java @@ -10,10 +10,10 @@ import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; @@ -24,6 +24,7 @@ import com.espressif.idf.core.IDFConstants; import com.espressif.idf.core.IDFEnvironmentVariables; +import com.espressif.idf.core.ProcessBuilderFactory; import com.espressif.idf.core.logging.Logger; import com.espressif.idf.core.util.IDFUtil; import com.espressif.idf.core.util.StringUtil; @@ -92,69 +93,81 @@ public void removeListener(IMessageHandlerListener listener) public void start() throws IOException { IPath workingDir = project.getLocation(); - Map idfEnvMap = new IDFEnvironmentVariables().getSystemEnvMap(); - - // Disable buffering of output - idfEnvMap.put("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ - + Map env = new HashMap(System.getenv()); + + prepEnvMap(env); + List arguments = new ArrayList<>(); File idfPythonScriptFile = IDFUtil.getIDFPythonScriptFile(); if (!idfPythonScriptFile.exists()) { throw new FileNotFoundException("File Not found:" + idfPythonScriptFile); //$NON-NLS-1$ } - String pythonPath = IDFUtil.getIDFPythonEnvPath(); - - List arguments = Collections.emptyList(); try { - arguments = new ArrayList(Arrays.asList(pythonPath, idfPythonScriptFile.getAbsolutePath(), "-B", //$NON-NLS-1$ - IDFUtil.getBuildDir(project), "-DSDKCONFIG=".concat(file.getName()), IDFConstants.CONF_SERVER_CMD)); //$NON-NLS-1$ + String pythonPath = IDFUtil.getIDFPythonEnvPath(); + arguments.add(pythonPath); + arguments.add(idfPythonScriptFile.getAbsolutePath()); + arguments.add("-B"); //$NON-NLS-1$ + arguments.add(IDFUtil.getBuildDir(project)); + arguments.add("-DSDKCONFIG=".concat(file.getName())); //$NON-NLS-1$ + arguments.add(IDFConstants.CONF_SERVER_CMD); + Logger.log(arguments.toString()); + + ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); + + String oldSdkconfigValue = StringUtil.EMPTY; + oldSdkconfigValue = getCmakeCacheSdkconfigValue(); + + + process = processRunner.run(arguments, workingDir, env); + runnable = new JsonConfigServerRunnable(process, this, project, oldSdkconfigValue); + Thread t = new Thread(runnable); + t.start(); } - catch (CoreException e) + catch (Exception e) { Logger.log(e); } - Logger.log(arguments.toString()); - - ProcessBuilder processBuilder = new ProcessBuilder(arguments); - if (workingDir != null) - { - processBuilder.directory(workingDir.toFile()); - } - Map environment = processBuilder.environment(); - environment.putAll(idfEnvMap); - environment.put("IDF_CCACHE_ENABLE", "false"); - - Logger.log(environment.toString()); + } - String idfPath = environment.get("PATH"); //$NON-NLS-1$ - String processPath = environment.get("Path"); //$NON-NLS-1$ - if (!StringUtil.isEmpty(idfPath) && !StringUtil.isEmpty(processPath)) // if both exist! + private void prepEnvMap(Map env) + { + env.put("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ + env.put("IDF_CCACHE_ENABLE", "false"); //$NON-NLS-1$ //$NON-NLS-2$ + loadIdfPathWithSystemPath(env); + } + + private void loadIdfPathWithSystemPath(Map systemEnv) + { + IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); + String idfExportPath = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.PATH); + String pathVar = "PATH"; // for Windows //$NON-NLS-1$ + String pathEntry = systemEnv.get(pathVar); // $NON-NLS-1$ + if (pathEntry == null) { - idfPath = idfPath.concat(";").concat(processPath); //$NON-NLS-1$ - environment.put("PATH", idfPath); //$NON-NLS-1$ - environment.remove("Path");//$NON-NLS-1$ + pathVar = "Path"; //$NON-NLS-1$ + pathEntry = systemEnv.get(pathVar); + if (pathEntry == null) // no idea + { + Logger.log(new Exception("No PATH found in the system environment variables")); //$NON-NLS-1$ + } } - Logger.log(environment.toString()); - - // redirect error stream to input stream - processBuilder.redirectErrorStream(true); - String oldSdkconfigValue = StringUtil.EMPTY; - try + if (!StringUtil.isEmpty(pathEntry)) { - oldSdkconfigValue = getCmakeCacheSdkconfigValue(); + idfExportPath = idfExportPath.replace("$PATH", pathEntry); // macOS //$NON-NLS-1$ + idfExportPath = idfExportPath.replace("%PATH%", pathEntry); // Windows //$NON-NLS-1$ } - catch (CoreException e) + + systemEnv.put(pathVar, idfExportPath); + for (Entry entry : idfEnvironmentVariables.getEnvMap().entrySet()) { - Logger.log(e); - } - process = processBuilder.start(); - runnable = new JsonConfigServerRunnable(process, this, project, oldSdkconfigValue); - Thread t = new Thread(runnable); - t.start(); + if (entry.getKey().equals(IDFEnvironmentVariables.PATH)) + continue; + systemEnv.put(entry.getKey(), entry.getValue()); + } } private String getCmakeCacheSdkconfigValue() throws CoreException diff --git a/bundles/com.espressif.idf.serial.monitor/src/com/espressif/idf/serial/monitor/core/IDFMonitor.java b/bundles/com.espressif.idf.serial.monitor/src/com/espressif/idf/serial/monitor/core/IDFMonitor.java index 0e0c31c5b..6c63fd3b6 100644 --- a/bundles/com.espressif.idf.serial.monitor/src/com/espressif/idf/serial/monitor/core/IDFMonitor.java +++ b/bundles/com.espressif.idf.serial.monitor/src/com/espressif/idf/serial/monitor/core/IDFMonitor.java @@ -12,7 +12,6 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.ILaunchConfiguration; @@ -20,14 +19,12 @@ import org.eclipse.embedcdt.debug.gdbjtag.core.DebugUtils; import com.espressif.idf.core.IDFConstants; -import com.espressif.idf.core.IDFCorePlugin; import com.espressif.idf.core.IDFEnvironmentVariables; import com.espressif.idf.core.logging.Logger; import com.espressif.idf.core.util.GenericJsonReader; import com.espressif.idf.core.util.IDFUtil; import com.espressif.idf.core.util.SDKConfigJsonReader; import com.espressif.idf.core.util.StringUtil; -import com.espressif.idf.ui.update.InstallToolsHandler; /** * @author Kondal Kolipaka @@ -153,10 +150,6 @@ private String getMonitorBaudRate() public Process start() throws Exception { - if (!dependenciesAreInstalled()) - { - throw new Exception("The WebSocket dependency is missing and cannot be installed automatically"); //$NON-NLS-1$ - } List arguments = commandArgsWithSocketServer(); // command to execute @@ -169,7 +162,7 @@ public Process start() throws Exception idfEnvMap.put("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ // Update with the CDT build environment variables - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); + Map environment = new HashMap<>(System.getenv()); environment.putAll(idfEnvMap); Logger.log(environment.toString()); @@ -196,18 +189,4 @@ public Process start() throws Exception LocalTerminal localTerminal = new LocalTerminal(arguments, workingDir.toFile(), environment); return localTerminal.connect(); } - - public boolean dependenciesAreInstalled() - { - InstallToolsHandler installToolsHandler = new InstallToolsHandler(); - IStatus status = installToolsHandler.handleWebSocketClientInstall(); - if (status == null || status.getSeverity() == IStatus.ERROR) - { - Logger.log(IDFCorePlugin.getPlugin(), IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ - return false; - } - - Logger.log(status.getMessage()); - return true; - } } diff --git a/bundles/com.espressif.idf.ui/OSGI-INF/l10n/bundle.properties b/bundles/com.espressif.idf.ui/OSGI-INF/l10n/bundle.properties index 7be5c883b..00178f0e3 100644 --- a/bundles/com.espressif.idf.ui/OSGI-INF/l10n/bundle.properties +++ b/bundles/com.espressif.idf.ui/OSGI-INF/l10n/bundle.properties @@ -62,7 +62,6 @@ command.name.delete = Delete command.name.13 = DFU command.label.11 = DFU command.tooltip.2 = DFU -command.name.updateEspIdfMaster = Update ESP-IDF master command.name.15 = Tools Installation Wizard (Preview) command.label.PartitionTableEditor = Partition Table Editor diff --git a/bundles/com.espressif.idf.ui/icons/tools/delete.png b/bundles/com.espressif.idf.ui/icons/tools/delete.png deleted file mode 100644 index 14de8ec9eb6d0ccd4fdc5a9bd6c8b534abf6114c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?- zG7x6;t5)LxG9*h}BT9nv(@M${i&7cN%ggmL^RkPR6AM!H@{7`Ezq647Dq831;uvDl zyL7@q&O-@2t@gQvTn7bhG+!K4Wx0Dqb?Kn79 z-al3Spw8x&&+oHjAM@^g3l}PW@GRWGwoR_-kf6oWgWFgQ{yEk#Y@cyBNGfc~tc1S{ zn6f&x%%&WdI^dOio8f#&<8&6S`h!*nSx+DIV46Ca<=lZO?>>vKKM;MjIP`qT-3+H6 u&8r`-C|4^9@Q7oIypY{eQ=s#4G3&-mm0uOV4q5|U&fw|l=d#Wzp$Py(rg5+U diff --git a/bundles/com.espressif.idf.ui/plugin.xml b/bundles/com.espressif.idf.ui/plugin.xml index e194e00c2..5365f564c 100644 --- a/bundles/com.espressif.idf.ui/plugin.xml +++ b/bundles/com.espressif.idf.ui/plugin.xml @@ -641,11 +641,9 @@ - - - + class="com.espressif.idf.ui.EspressifGeneralStartup"/> + + * + */ +@SuppressWarnings("restriction") +public class EspressifGeneralStartup implements IStartup +{ + private static final String BUILDHINTS_ID = "com.espressif.idf.ui.views.buildhints"; + + private LaunchBarListener launchBarListener; + + @Override + public void earlyStartup() + { + hookDialogListeners(); + hookLaunchBarListeners(); + } + + private void hookDialogListeners() + { + OpenDialogListenerSupport.getSupport().addPropertyChangeListener(evt -> { + PopupDialog popupDialog = PopupDialog.valueOf(evt.getPropertyName()); + switch (popupDialog) + { + case LOW_PARTITION_SIZE: + openLowPartitionSizeDialog(evt); + break; + case AVAILABLE_HINTS: + openAvailableHintsDialog(evt); + break; + case DISABLE_LAUNCHABAR_EVENTS: + disableLaunchBarEvents(); + break; + case ENABLE_LAUNCHBAR_EVENTS: + enableLaunchBarEvents(); + break; + default: + break; + } + }); + } + + private void hookLaunchBarListeners() + { + launchBarListener = new LaunchBarListener(); + ResourcesPlugin.getWorkspace().addResourceChangeListener(new ResourceChangeListener(launchBarListener)); + + ILaunchBarManager launchBarManager = Activator.getService(ILaunchBarManager.class); + launchBarManager.addListener(launchBarListener); + } + + @SuppressWarnings("static-access") + private void disableLaunchBarEvents() + { + launchBarListener.setIgnoreTargetChange(true); + } + + @SuppressWarnings("static-access") + private void enableLaunchBarEvents() + { + launchBarListener.setIgnoreTargetChange(false); + } + + @SuppressWarnings("unchecked") + private void openAvailableHintsDialog(PropertyChangeEvent evt) + { + Display.getDefault().asyncExec(() -> { + List errorHintPairs = (List) evt.getNewValue(); + + if (errorHintPairs.isEmpty()) + { + updateBuildView(errorHintPairs); + return; + } + + try + { + PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(BUILDHINTS_ID); + } + catch (PartInitException e) + { + Logger.log(e); + } + + updateBuildView(errorHintPairs); + }); + } + + private void updateBuildView(List errorHintPairs) + { + BuildView view = (BuildView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() + .findView(BUILDHINTS_ID); + if (view != null) + { + view.updateReHintsPairs(errorHintPairs); + } + } + + private void openLowPartitionSizeDialog(PropertyChangeEvent evt) + { + Display.getDefault().asyncExec(() -> { + Shell shell = Display.getDefault().getActiveShell(); + MessageLinkDialog.openWarning(shell, + Messages.IncreasePartitionSizeTitle, + MessageFormat.format(Messages.IncreasePartitionSizeMessage, + evt.getNewValue(), + evt.getOldValue(), + "https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/partition-tables.html?highlight=partitions%20csv#creating-custom-tables")); + }); + } +} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/InitializeToolsStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/InitializeToolsStartup.java deleted file mode 100644 index a95f4793b..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/InitializeToolsStartup.java +++ /dev/null @@ -1,358 +0,0 @@ -/******************************************************************************* - * Copyright 2020 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui; - -import java.beans.PropertyChangeEvent; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.net.URL; -import java.text.MessageFormat; -import java.util.List; -import java.util.Map; - -import org.eclipse.cdt.cmake.core.internal.Activator; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.preferences.InstanceScope; -import org.eclipse.launchbar.core.ILaunchBarManager; -import org.eclipse.osgi.service.datalocation.Location; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.MessageBox; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IStartup; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; -import org.json.simple.parser.ParseException; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -import com.espressif.idf.core.IDFCorePlugin; -import com.espressif.idf.core.IDFCorePreferenceConstants; -import com.espressif.idf.core.IDFEnvironmentVariables; -import com.espressif.idf.core.build.Messages; -import com.espressif.idf.core.build.ReHintPair; -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.resources.OpenDialogListenerSupport; -import com.espressif.idf.core.resources.PopupDialog; -import com.espressif.idf.core.resources.ResourceChangeListener; -import com.espressif.idf.core.tools.vo.IDFToolSet; -import com.espressif.idf.core.util.IDFUtil; -import com.espressif.idf.ui.dialogs.BuildView; -import com.espressif.idf.ui.dialogs.MessageLinkDialog; -import com.espressif.idf.ui.tools.ToolsActivationJob; -import com.espressif.idf.ui.tools.ToolsActivationJobListener; -import com.espressif.idf.ui.tools.manager.pages.ESPIDFMainTablePage; - -@SuppressWarnings("restriction") -public class InitializeToolsStartup implements IStartup -{ - - private static final String BUILDHINTS_ID = "com.espressif.idf.ui.views.buildhints"; //$NON-NLS-1$ - - /** - * esp-idf.json is file created by the installer - */ - public static final String ESP_IDF_JSON_FILE = "esp_idf.json"; //$NON-NLS-1$ - - // Variables defined in the esp-idf.json file - private static final String GIT_PATH = "gitPath"; //$NON-NLS-1$ - private static final String IDF_TOOLS_PATH_KEY = "idfToolsPath"; //$NON-NLS-1$ - private static final String IDF_VERSIONS_ID = "idfSelectedId"; //$NON-NLS-1$ - private static final String IDF_INSTALLED_LIST_KEY = "idfInstalled"; //$NON-NLS-1$ - private static final String PYTHON_PATH = "python"; //$NON-NLS-1$ - private static final String IDF_PATH = "path"; //$NON-NLS-1$ - private static final String IS_INSTALLER_CONFIG_SET = "isInstallerConfigSet"; //$NON-NLS-1$ - private static final String DOC_URL = "\"https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/partition-tables.html?highlight=partitions%20csv#creating-custom-tables\""; //$NON-NLS-1$ - - private String newIdfPath; - private LaunchBarListener launchBarListener; - @Override - public void earlyStartup() - { - OpenDialogListenerSupport.getSupport().addPropertyChangeListener(evt -> { - PopupDialog popupDialog = PopupDialog.valueOf(evt.getPropertyName()); - switch (popupDialog) - { - case LOW_PARTITION_SIZE: - openLowPartitionSizeDialog(evt); - break; - case AVAILABLE_HINTS: - openAvailableHintsDialog(evt); - break; - case DISABLE_LAUNCHABAR_EVENTS: - disableLaunchBarEvents(evt); - break; - case ENABLE_LAUNCHBAR_EVENTS: - enableLaunchBarEvents(evt); - break; - default: - break; - } - }); - launchBarListener = new LaunchBarListener(); - ResourcesPlugin.getWorkspace().addResourceChangeListener(new ResourceChangeListener(launchBarListener)); - ILaunchBarManager launchBarManager = Activator.getService(ILaunchBarManager.class); - launchBarManager.addListener(launchBarListener); - - // Get the location of the eclipse root directory - Location installLocation = Platform.getInstallLocation(); - URL url = installLocation.getURL(); - Logger.log("Eclipse Install location::" + url); - File idf_json_file = new File(url.getPath() + File.separator + ESP_IDF_JSON_FILE); - if (!idf_json_file.exists()) - { - Logger.log(MessageFormat.format("esp-idf.json file doesn't exist at this location: '{0}'", url.getPath())); - return; - } - else if (isInstallerConfigSet()) - { - checkForUpdatedVersion(idf_json_file); - if (isInstallerConfigSet()) - { - Logger.log("Ignoring esp_idf.json settings as it was configured earilier and idf_path is similar."); - return; - } - - IDFEnvironmentVariables idfEnvMgr = new IDFEnvironmentVariables(); - Display.getDefault().syncExec(() -> { - Shell shell = new Shell(Display.getDefault()); - MessageBox messageBox = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO); - messageBox.setButtonLabels(Map.of(SWT.YES, Messages.ToolsInitializationDifferentPathMessageBoxOptionYes, - SWT.NO, Messages.ToolsInitializationDifferentPathMessageBoxOptionNo)); - messageBox.setText(Messages.ToolsInitializationDifferentPathMessageBoxTitle); - messageBox.setMessage(MessageFormat.format(Messages.ToolsInitializationDifferentPathMessageBoxMessage, - newIdfPath, idfEnvMgr.getEnvValue(IDFEnvironmentVariables.IDF_PATH))); - int response = messageBox.open(); - if (response == SWT.NO) - { - IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); - updateEspIdfJsonFile(idf_json_file, - idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.IDF_PATH)); - Preferences prefs = getPreferences(); - prefs.putBoolean(IS_INSTALLER_CONFIG_SET, true); - try - { - prefs.flush(); - } - catch (BackingStoreException e) - { - Logger.log(e); - } - - return; - } - }); - } - - // read esp-idf.json file - JSONParser parser = new JSONParser(); - try - { - JSONObject jsonObj = (JSONObject) parser.parse(new FileReader(idf_json_file)); - String gitExecutablePath = (String) jsonObj.get(GIT_PATH); - String idfToolsPath = (String) jsonObj.get(IDF_TOOLS_PATH_KEY); - String idfVersionId = (String) jsonObj.get(IDF_VERSIONS_ID); - JSONObject list = (JSONObject) jsonObj.get(IDF_INSTALLED_LIST_KEY); - if (list != null) - { - // selected esp-idf version information - JSONObject selectedIDFInfo = (JSONObject) list.get(idfVersionId); - String idfPath = (String) selectedIDFInfo.get(IDF_PATH); - String pythonExecutablePath = (String) selectedIDFInfo.get(PYTHON_PATH); - IDFToolSet newToolSet = new IDFToolSet(); - newToolSet.setIdfLocation(idfPath); - newToolSet.setSystemGitExecutablePath(gitExecutablePath); - newToolSet.setSystemPythonExecutablePath(pythonExecutablePath); - newToolSet.setActive(true); - Preferences prefs = InstanceScope.INSTANCE.getNode(IDFCorePlugin.PLUGIN_ID); - prefs.put(IDFCorePreferenceConstants.IDF_TOOLS_PATH, idfToolsPath); - try - { - prefs.flush(); - } - catch (BackingStoreException e) - { - Logger.log(e); - } - ToolsActivationJob toolsActivationJob = new ToolsActivationJob(newToolSet, pythonExecutablePath, gitExecutablePath); - ToolsActivationJobListener toolsActivationJobListener = new ToolsActivationJobListener(ESPIDFMainTablePage.getInstance()); - toolsActivationJob.addJobChangeListener(toolsActivationJobListener); - toolsActivationJob.schedule(); - } - - // save state - Preferences prefs = getPreferences(); - prefs.putBoolean(IS_INSTALLER_CONFIG_SET, true); - try - { - prefs.flush(); - } - catch (BackingStoreException e) - { - Logger.log(e); - } - IDFUtil.updateEspressifPrefPageOpenocdPath(); - - } - catch ( - IOException - | ParseException e) - { - Logger.log(e); - } - } - - @SuppressWarnings("static-access") - private void disableLaunchBarEvents(PropertyChangeEvent evt) - { - launchBarListener.setIgnoreTargetChange(true); - } - - @SuppressWarnings("static-access") - private void enableLaunchBarEvents(PropertyChangeEvent evt) - { - launchBarListener.setIgnoreTargetChange(false); - } - - @SuppressWarnings("unchecked") - private void openAvailableHintsDialog(PropertyChangeEvent evt) - { - Display.getDefault().asyncExec(() -> { - List erroHintPairs = (List) evt.getNewValue(); - // if list is empty we don't want to change focus from the console output - if (erroHintPairs.isEmpty()) - { - updateValuesInBuildView(erroHintPairs); - return; - } - try - { - PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(BUILDHINTS_ID); - } - catch (PartInitException e) - { - Logger.log(e); - } - updateValuesInBuildView(erroHintPairs); - }); - - } - - private void updateValuesInBuildView(List erroHintPairs) - { - BuildView view = ((BuildView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() - .findView(BUILDHINTS_ID)); - if (view != null) - { - view.updateReHintsPairs(erroHintPairs); - } - } - - private void openLowPartitionSizeDialog(PropertyChangeEvent evt) - { - Display.getDefault() - .asyncExec(() -> MessageLinkDialog.openWarning(Display.getDefault().getActiveShell(), - Messages.IncreasePartitionSizeTitle, MessageFormat.format(Messages.IncreasePartitionSizeMessage, - evt.getNewValue(), evt.getOldValue(), DOC_URL))); - } - - @SuppressWarnings("unchecked") - private void updateEspIdfJsonFile(File idf_json_file, String newIdfPathToUpdate) - { - JSONParser parser = new JSONParser(); - JSONObject jsonObj = null; - try (FileReader reader = new FileReader(idf_json_file)) - { - jsonObj = (JSONObject) parser.parse(reader); - String idfVersionId = (String) jsonObj.get(IDF_VERSIONS_ID); - JSONObject list = (JSONObject) jsonObj.get(IDF_INSTALLED_LIST_KEY); - if (list == null) - { - return; - } - // selected esp-idf version information - JSONObject selectedIDFInfo = (JSONObject) list.get(idfVersionId); - selectedIDFInfo.put(IDF_PATH, newIdfPathToUpdate); - list.put(idfVersionId, selectedIDFInfo); - jsonObj.put(IDF_INSTALLED_LIST_KEY, list); - } - catch ( - IOException - | ParseException e) - { - Logger.log(e); - } - - if (jsonObj != null) - { - try (FileWriter fileWriter = new FileWriter(idf_json_file)) - { - fileWriter.write(jsonObj.toJSONString()); - fileWriter.flush(); - - } - catch (IOException e) - { - Logger.log(e); - } - } - - } - - private void checkForUpdatedVersion(File idf_json_file) - { - // read esp-idf.json file - JSONParser parser = new JSONParser(); - try (FileReader reader = new FileReader(idf_json_file)) - { - JSONObject jsonObj = (JSONObject) parser.parse(reader); - String idfVersionId = (String) jsonObj.get(IDF_VERSIONS_ID); - JSONObject list = (JSONObject) jsonObj.get(IDF_INSTALLED_LIST_KEY); - if (list == null) - { - return; - } - // selected esp-idf version information - JSONObject selectedIDFInfo = (JSONObject) list.get(idfVersionId); - String idfPath = (String) selectedIDFInfo.get(IDF_PATH); - IDFEnvironmentVariables idfEnvMgr = new IDFEnvironmentVariables(); - if (idfEnvMgr.getEnvValue(IDFEnvironmentVariables.IDF_PATH).equals(idfPath)) - return; - newIdfPath = idfPath; - Preferences prefs = getPreferences(); - prefs.putBoolean(IS_INSTALLER_CONFIG_SET, false); - try - { - prefs.flush(); - } - catch (BackingStoreException e) - { - Logger.log(e); - } - } - catch ( - IOException - | ParseException e) - { - Logger.log(e); - } - - } - - private Preferences getPreferences() - { - return InstanceScope.INSTANCE.getNode(UIPlugin.PLUGIN_ID); - } - - private boolean isInstallerConfigSet() - { - return getPreferences().getBoolean(IS_INSTALLER_CONFIG_SET, false); - } -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/dialogs/SbomCommandDialog.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/dialogs/SbomCommandDialog.java index d7445e758..0a27a578f 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/dialogs/SbomCommandDialog.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/dialogs/SbomCommandDialog.java @@ -283,7 +283,7 @@ private String buildProjectDescriptionPath() private void runEspIdfSbomCommand() { - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); + Map environment = new HashMap<>(System.getenv()); List arguments = new ArrayList<>(); final String pythonEnvPath = IDFUtil.getIDFPythonEnvPath(); arguments.add(pythonEnvPath); @@ -435,7 +435,7 @@ private boolean checkIfFileIsNotWritable(java.nio.file.Path pathToFile) private void installEspIdfSbom() { - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); + Map environment = new HashMap<>(System.getenv()); List arguments = new ArrayList<>(); final String pythonEnvPath = IDFUtil.getIDFPythonEnvPath(); arguments.add(pythonEnvPath); @@ -450,7 +450,7 @@ private void installEspIdfSbom() private boolean getEspIdfSbomInstalledStatus() { - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); + Map environment = new HashMap<>(System.getenv()); List arguments = new ArrayList<>(); final String pythonEnvPath = IDFUtil.getIDFPythonEnvPath(); arguments.add(pythonEnvPath); diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/handlers/NewProjectHandlerUtil.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/handlers/NewProjectHandlerUtil.java index 40a958223..2d7e76f25 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/handlers/NewProjectHandlerUtil.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/handlers/NewProjectHandlerUtil.java @@ -16,11 +16,11 @@ import com.espressif.idf.core.IDFEnvironmentVariables; import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.EimConstants; import com.espressif.idf.core.util.IDFUtil; import com.espressif.idf.core.util.StringUtil; import com.espressif.idf.ui.UIPlugin; import com.espressif.idf.ui.tools.ManageEspIdfVersionsHandler; -import com.espressif.idf.ui.update.InstallToolsHandler; public class NewProjectHandlerUtil { @@ -35,7 +35,7 @@ public static boolean installToolsCheck() String path = Optional.ofNullable(pathEnv).map(o -> o.getValue()).orElse(null); Preferences scopedPreferenceStore = InstanceScope.INSTANCE.getNode(UIPlugin.PLUGIN_ID); - boolean isToolsInstalled = scopedPreferenceStore.getBoolean(InstallToolsHandler.INSTALL_TOOLS_FLAG, false); + boolean isToolsInstalled = scopedPreferenceStore.getBoolean(EimConstants.INSTALL_TOOLS_FLAG, false); if (StringUtil.isEmpty(idfPath)) { diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/handlers/UpdateEspIdfHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/handlers/UpdateEspIdfHandler.java deleted file mode 100644 index ddb74e7de..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/handlers/UpdateEspIdfHandler.java +++ /dev/null @@ -1,171 +0,0 @@ -/******************************************************************************* - * Copyright 2022 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.handlers; - -import java.io.File; -import java.io.IOException; - -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jgit.api.Git; -import org.eclipse.jgit.api.SubmoduleInitCommand; -import org.eclipse.jgit.api.SubmoduleUpdateCommand; -import org.eclipse.jgit.api.errors.GitAPIException; -import org.eclipse.jgit.lib.Repository; -import org.eclipse.jgit.submodule.SubmoduleWalk; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; - -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.util.IDFUtil; -import com.espressif.idf.ui.install.GitProgressMonitor; -import com.espressif.idf.ui.update.InstallToolsHandler; - -public class UpdateEspIdfHandler extends AbstractHandler -{ - @Override - public Object execute(ExecutionEvent event) throws ExecutionException - { - - Job job = new Job(Messages.UpdateEspIdfCommand_JobMsg) - { - @Override - protected IStatus run(IProgressMonitor monitor) - { - GitProgressMonitor gitProgressMonitor = new GitProgressMonitor(monitor); - - try (Git git = Git.open(new File(IDFUtil.getIDFPath()))) - { - git.pull().setProgressMonitor(gitProgressMonitor).call(); - SubmoduleInitCommand initCommand = git.submoduleInit(); - SubmoduleUpdateCommand updateCommand = git.submoduleUpdate(); - addRecursivePaths(git.getRepository(), initCommand, updateCommand); - initCommand.call(); - updateCommand.setFetch(true); - updateCommand.setProgressMonitor(gitProgressMonitor).call(); - return Status.OK_STATUS; - } - catch ( - IOException - | GitAPIException e) - { - Logger.log(e); - return Status.error(e.getLocalizedMessage()); - } - } - - private void addRecursivePaths(Repository repo, SubmoduleInitCommand initCommand, - SubmoduleUpdateCommand updateCommand) throws IOException - { - if (repo == null) - return; - try (SubmoduleWalk generator = SubmoduleWalk.forIndex(repo)) - { - while (generator.next()) - { - // Add current submodule path - initCommand.addPath(generator.getPath()); - updateCommand.addPath(generator.getPath()); - - // Recursively add paths for each submodule repository - addRecursivePaths(generator.getRepository(), initCommand, updateCommand); - } - } - finally - { - repo.close(); - } - } - }; - - - MutexRule rule = new MutexRule(); - job.setUser(true); - - openProgressView(); - Job installToolsJob = new Job(Messages.UpdateEspIdfCommand_InstallToolsJobMsg) - { - - @Override - protected IStatus run(IProgressMonitor monitor) - { - suggestInstallTools(); - return Status.OK_STATUS; - } - - private void suggestInstallTools() - { - Display.getDefault().asyncExec(new Runnable() - { - @Override - public void run() - { - boolean isYes = MessageDialog.openQuestion(Display.getDefault().getActiveShell(), - Messages.UpdateEspIdfCommand_InstallToolsJobMsg, - Messages.UpdateEspIdfCommand_SuggestToOpenInstallToolsWizard); - if (isYes) - { - InstallToolsHandler installToolsHandler = new InstallToolsHandler(); - try - { - installToolsHandler.setCommandId("com.espressif.idf.ui.command.install"); //$NON-NLS-1$ - installToolsHandler.execute(null); - } - catch (ExecutionException e) - { - Logger.log(e); - } - } - } - }); - - } - - }; - job.setRule(rule); - installToolsJob.setRule(rule); - job.schedule(); - installToolsJob.schedule(); - return null; - } - - private void openProgressView() - { - try - { - PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() - .showView("org.eclipse.ui.views.ProgressView"); //$NON-NLS-1$ - } - catch (PartInitException e) - { - Logger.log(e); - } - - } - - public class MutexRule implements ISchedulingRule - { - @Override - public boolean isConflicting(ISchedulingRule rule) - { - return rule == this; - } - - @Override - public boolean contains(ISchedulingRule rule) - { - return rule == this; - } - } - -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/help/ProductInformationHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/help/ProductInformationHandler.java index e7e988e15..afed00087 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/help/ProductInformationHandler.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/help/ProductInformationHandler.java @@ -131,7 +131,7 @@ private String getPythonExeVersion(String pythonExePath) List commands = new ArrayList<>(); commands.add(pythonExePath); commands.add("--version"); //$NON-NLS-1$ - return pythonExePath != null ? runCommand(commands, IDFUtil.getSystemEnv()) : null; + return pythonExePath != null ? runCommand(commands, System.getenv()) : null; } private String runCommand(List arguments, Map env) diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/GitRepositoryBuilder.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/GitRepositoryBuilder.java deleted file mode 100644 index 074f2ed09..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/GitRepositoryBuilder.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright 2020 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.install; - -import java.io.File; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Collection; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.jgit.api.Git; - -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.ui.tools.GitWizardRepProgressMonitor; - -/** - * @author Kondal Kolipaka - * - */ -public class GitRepositoryBuilder -{ - - private File repositoryDirectory; - private String activeBranch; - private String uri; - private IProgressMonitor monitor; - private boolean fromWizard; - private GitWizardRepProgressMonitor gitWizardRepProgressMonitor; - - public GitRepositoryBuilder(boolean fromWizard, GitWizardRepProgressMonitor gitWizardRepProgressMonitor) - { - this.fromWizard = fromWizard; - this.gitWizardRepProgressMonitor = gitWizardRepProgressMonitor; - } - - /** - * Location of the repository, or where the repository should be cloned. - * - * @param directory the directory - */ - public void repositoryDirectory(final File directory) - { - this.repositoryDirectory = directory; - } - - /** - * Active branch to checkout and use. - * - * @param value the value - */ - public void activeBranch(final String value) - { - this.activeBranch = value; - } - - public void repositoryClone() throws Exception - { - - Collection branchesToClone = new ArrayList<>(); - branchesToClone.add(getBranchPath(this.activeBranch)); - - GitProgressMonitor gitProgressMonitor = new GitProgressMonitor(monitor); - - // @formatter:off - Git git = Git.cloneRepository() - .setProgressMonitor(fromWizard ? gitWizardRepProgressMonitor : gitProgressMonitor) - .setCloneSubmodules(true) - .setURI(this.uri) - .setDirectory(this.repositoryDirectory) - .setBranchesToClone(branchesToClone) - .setBranch(getBranchPath(this.activeBranch)) - .setTimeout(300) - .call(); - - // @formatter:on - Logger.log(String.format(Messages.GitRepositoryBuilder_gitClone, git.toString())); - - // To release the lock on the file system resource - git.getRepository().close(); - - Logger.log(MessageFormat.format("ESP-IDF {0} cloning completed!", this.activeBranch)); //$NON-NLS-1$ - } - - private String getBranchPath(final String branchName) - { - return "refs/heads/" + branchName; //$NON-NLS-1$ - } - - public void repositoryURI(String uri) - { - this.uri = uri; - } - - public void setProgressMonitor(IProgressMonitor monitor) - { - this.monitor = monitor; - } -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/IDFDownloadPage.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/IDFDownloadPage.java deleted file mode 100644 index 085580162..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/IDFDownloadPage.java +++ /dev/null @@ -1,703 +0,0 @@ -/******************************************************************************* - * Copyright 2020 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.install; - -import java.io.File; -import java.net.MalformedURLException; -import java.net.URL; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.wizard.WizardPage; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.DirectoryDialog; -import org.eclipse.swt.widgets.FileDialog; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Link; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; - -import com.espressif.idf.core.IDFConstants; -import com.espressif.idf.core.IDFCorePlugin; -import com.espressif.idf.core.IDFVersion; -import com.espressif.idf.core.IDFVersionsReader; -import com.espressif.idf.core.ProcessBuilderFactory; -import com.espressif.idf.core.SystemExecutableFinder; -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.util.IDFUtil; -import com.espressif.idf.core.util.StringUtil; -import com.espressif.idf.ui.UIPlugin; - -/** - * @author Kondal Kolipaka - * - */ -public class IDFDownloadPage extends WizardPage -{ - private static final int GIT_TOOL = 0; - private static final int PYTHON_TOOL = 1; - - private Combo versionCombo; - private Map versionsMap; - private Text directoryTxt; - private Button fileSystemBtn; - private Text existingIdfDirTxt; - private Button browseBtn; - - private Text gitText; - private Text pythonText; - - private String pythonExecutablePath; - private String gitExecutablePath; - private SystemExecutableFinder systemExecutableFinder; - - protected IDFDownloadPage(String pageName) - { - super(pageName); - setImageDescriptor(UIPlugin.getImageDescriptor(Messages.IDFDownloadPage_0)); - getPythonExecutablePath(); - } - - @Override - public void createControl(Composite parent) - { - Composite composite = new Composite(parent, SWT.NULL); - - initializeDialogUnits(parent); - - composite.setLayout(new GridLayout()); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - - createExistingComposite(composite); - - createGitPythonComposite(composite); - - // esp-idf version selection group - Group versionGrp = new Group(composite, SWT.NONE); - GridLayout layout = new GridLayout(); - layout.numColumns = 3; - versionGrp.setLayout(layout); - versionGrp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - versionGrp.setText(Messages.IDFDownloadPage_DownloadIDF); - versionGrp.setFont(parent.getFont()); - - Label versionLbl = new Label(versionGrp, SWT.NONE); - versionLbl.setText(Messages.IDFDownloadPage_ChooseIDFVersion); - - versionCombo = new Combo(versionGrp, SWT.DROP_DOWN | SWT.READ_ONLY); - GridData gridData = new GridData(SWT.NONE, SWT.NONE, false, false, 2, 1); - gridData.widthHint = 250; - versionCombo.setLayoutData(gridData); - versionCombo.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(SelectionEvent e) - { - validate(); - } - }); - - versionsMap = new IDFVersionsReader().getVersionsMap(); - Set keySet = versionsMap.keySet(); - versionCombo.setItems(keySet.toArray(new String[keySet.size()])); - if (keySet.size() > 0) - { - versionCombo.select(0); - } - - createDownloadComposite(versionGrp); - createLinkArea(versionGrp); - - Label noteLbl = new Label(composite, SWT.NONE); - noteLbl.setText(Messages.IDFDownloadPage_Note); - - gridData = new GridData(SWT.LEFT, SWT.NONE, true, false, 1, 1); - gridData.verticalIndent = 10; - noteLbl.setLayoutData(gridData); - - setControl(composite); - setPageComplete(false); - } - - private void createGitPythonComposite(Composite parent) - { - Group gitPyGroup = new Group(parent, SWT.SHADOW_ETCHED_IN); - gitPyGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); - final int numColumns = 3; - GridLayout gridLayout = new GridLayout(numColumns, false); - gitPyGroup.setLayout(gridLayout); - - Label gitLabel = new Label(gitPyGroup, SWT.NONE); - gitLabel.setText(Messages.GitLabel); - - gitText = new Text(gitPyGroup, SWT.SINGLE | SWT.BORDER); - gitText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); - gitExecutablePath = IDFUtil.getGitExecutablePathFromSystem(); - - gitText.setText(gitExecutablePath); - gitText.addModifyListener(new ModifyTextValidationListener(GIT_TOOL)); - - Button gitBrowseButton = new Button(gitPyGroup, SWT.PUSH); - gitBrowseButton.setText(Messages.BrowseButton); - gitBrowseButton.addSelectionListener(new BrowseButtonSelectionAdapter(gitText, GIT_TOOL)); - - if (StringUtil.isEmpty(pythonExecutablePath)) - { - pythonExecutablePath = getPythonExecutablePath(); - } - - Label pythonLabel = new Label(gitPyGroup, SWT.NONE); - pythonLabel.setText(Messages.PythonLabel); - pythonText = new Text(gitPyGroup, SWT.SINGLE | SWT.BORDER); - pythonText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); - pythonText.setText(pythonExecutablePath); - pythonText.addModifyListener(new ModifyTextValidationListener(PYTHON_TOOL)); - Button pythonBrowseButton = new Button(gitPyGroup, SWT.PUSH); - pythonBrowseButton.setText(Messages.BrowseButton); - pythonBrowseButton.addSelectionListener(new BrowseButtonSelectionAdapter(pythonText, PYTHON_TOOL)); - } - - private void createExistingComposite(Composite parent) - { - // File system selection - fileSystemBtn = new Button(parent, SWT.CHECK); - fileSystemBtn.setText(Messages.IDFDownloadPage_ChooseAnExistingIDF); - GridData gridData2 = new GridData(SWT.NONE, SWT.NONE, false, false, 1, 1); - gridData2.verticalIndent = 10; - fileSystemBtn.setLayoutData(gridData2); - - Group composite = new Group(parent, SWT.NONE); - GridLayout layout = new GridLayout(); - layout.numColumns = 3; - composite.setLayout(layout); - composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - composite.setFont(parent.getFont()); - - Label label = new Label(composite, SWT.NONE); - label.setText(Messages.IDFDownloadPage_ChooseDirIDF); - - existingIdfDirTxt = new Text(composite, SWT.BORDER); - existingIdfDirTxt.setEnabled(false); - GridData data = new GridData(); - data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH); - existingIdfDirTxt.setLayoutData(data); - existingIdfDirTxt.addModifyListener(new ModifyListener() - { - @Override - public void modifyText(ModifyEvent e) - { - validate(); - } - }); - - Button existingBrowseBtn = new Button(composite, SWT.PUSH); - existingBrowseBtn.setText(Messages.IDFDownloadPage_BrowseBtn); - existingBrowseBtn.setEnabled(false); - existingBrowseBtn.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(SelectionEvent event) - { - DirectoryDialog dlg = new DirectoryDialog(getShell()); - dlg.setFilterPath(existingIdfDirTxt.getText()); - dlg.setText(Messages.IDFDownloadPage_DirectoryDialogTxt); - dlg.setMessage(Messages.IDFDownloadPage_DirectoryDialogMsg); - - String dir = dlg.open(); - if (dir != null) - { - existingIdfDirTxt.setText(dir); - } - } - }); - - fileSystemBtn.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(SelectionEvent e) - { - if (fileSystemBtn.getSelection()) - { - existingIdfDirTxt.setEnabled(true); - existingBrowseBtn.setEnabled(true); - - versionCombo.setEnabled(false); - directoryTxt.setEnabled(false); - browseBtn.setEnabled(false); - - } - else - { - existingIdfDirTxt.setEnabled(false); - existingBrowseBtn.setEnabled(false); - - versionCombo.setEnabled(true); - directoryTxt.setEnabled(true); - browseBtn.setEnabled(true); - - } - validate(); - } - }); - - } - - private void createDownloadComposite(Composite composite) - { - Label descLbl = new Label(composite, SWT.NONE); - descLbl.setText(Messages.IDFDownloadPage_ChooseIDFDir); - - directoryTxt = new Text(composite, SWT.BORDER); - GridData data = new GridData(); - data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.ENTRY_FIELD_WIDTH); - directoryTxt.setLayoutData(data); - directoryTxt.setFocus(); - directoryTxt.addModifyListener(new ModifyListener() - { - @Override - public void modifyText(ModifyEvent e) - { - validate(); - } - }); - - browseBtn = new Button(composite, SWT.PUSH); - browseBtn.setText(Messages.IDFDownloadPage_BrowseBtnTxt); - browseBtn.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(SelectionEvent event) - { - DirectoryDialog dlg = new DirectoryDialog(getShell()); - dlg.setFilterPath(directoryTxt.getText()); - dlg.setText(Messages.IDFDownloadPage_DirectoryDialogText); - dlg.setMessage(Messages.IDFDownloadPage_DirectoryDialogMessage); - - String dir = dlg.open(); - if (dir != null) - { - directoryTxt.setText(dir); - } - } - }); - - } - - private String getPythonExecutablePath() - { - return IDFUtil.getPythonExecutable(); - } - - private void createLinkArea(Composite parent) - { - Link link = new Link(parent, SWT.NONE); - String message = Messages.IDFDownloadPage_VersionLinkMsg; - link.setText(message); - link.setSize(400, 100); - - GridData gridData = new GridData(SWT.NONE, SWT.NONE, false, false, 3, 1); - gridData.verticalIndent = 10; - link.setLayoutData(gridData); - - link.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(SelectionEvent e) - { - try - { - // Open default external browser - PlatformUI.getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(e.text)); - } - catch (PartInitException ex) - { - ex.printStackTrace(); - } - catch (MalformedURLException ex) - { - ex.printStackTrace(); - } - } - }); - } - - private boolean validateGitAndPython() - { - if (systemExecutableFinder == null) - { - systemExecutableFinder = new SystemExecutableFinder(); - } - - if (StringUtil.isEmpty(pythonExecutablePath) || StringUtil.isEmpty(gitExecutablePath)) - { - setErrorMessage("Python & Git are Required"); - return false; - } - - - IPath pathGit = systemExecutableFinder.find(gitExecutablePath); - if (pathGit != null) - gitExecutablePath = pathGit.toOSString(); - - File file = new File(gitExecutablePath); - if (!file.exists() && !IDFUtil.isReparseTag(file)) - { - setErrorMessage("Git executable not found"); - return false; - } - - IPath pythonPath = systemExecutableFinder.find(pythonExecutablePath); - if (pythonPath != null) - { - pythonExecutablePath = pythonPath.toOSString(); - } - file = new File(pythonExecutablePath); - if (!file.exists() && !IDFUtil.isReparseTag(file)) - { - setErrorMessage("Python executable not found"); - return false; - } - - return true; - } - - private void validate() - { - if (fileSystemBtn.getSelection()) - { - String idfPath = existingIdfDirTxt.getText(); - if (StringUtil.isEmpty(idfPath)) - { - setPageComplete(false); - setErrorMessage("IDF Directory is Required"); - return; - } - - if (!new File(idfPath).exists()) - { - setErrorMessage(Messages.IDFDownloadPage_DirDoesnotExist+ idfPath); - setPageComplete(false); - return; - } - - String version = getIdfVersionUsingGit(idfPath); - - if (idfPath.contains(" ") && !StringUtil.isEmpty(version)) //$NON-NLS-1$ - { - boolean validVersion = isVersionGreaterOrEqual(version, "5.0.0"); //$NON-NLS-1$ - if (!validVersion) - { - setErrorMessage(Messages.IDFDownloadPage_VersionSpaceError); - setPageComplete(false); - return; - } - if (getErrorMessage() == null || getErrorMessage().equals(Messages.IDFDownloadPage_VersionSpaceError)) - { - setErrorMessage(null); - setPageComplete(true); - } - } - - String idfPyPath = idfPath + File.separator + IDFConstants.TOOLS_FOLDER + File.separator + IDFConstants.IDF_PYTHON_SCRIPT; - String idfToolsPyPth = idfPath + File.separator + IDFConstants.TOOLS_FOLDER + File.separator + IDFConstants.IDF_TOOLS_SCRIPT; - if (!new File (idfPyPath).exists() || !new File (idfToolsPyPth).exists()) - { - setErrorMessage(MessageFormat.format(Messages.IDFDownloadPage_CantfindProperEspIDFDirectory, idfPath)); - setPageComplete(false); - return; - } - if (validateGitAndPython()) - { - setPageComplete(true); - setErrorMessage(null); - setMessage(Messages.IDFDownloadPage_ClickOnFinish + idfPath); - } - else - { - setPageComplete(false); - } - } - else - { - setMessage(StringUtil.EMPTY); - setErrorMessage(null); - boolean supportSpaces = false; - if (versionCombo.getText().contentEquals("master")) //$NON-NLS-1$ - { - supportSpaces = true; - } - else - { - Pattern p = Pattern.compile("([0-9][.][0-9])"); //$NON-NLS-1$ - Matcher m = p.matcher(versionCombo.getText()); - supportSpaces = m.find() && Double.parseDouble(m.group(0)) >= 5.0; - } - if (StringUtil.isEmpty(directoryTxt.getText())) - { - setPageComplete(false); - return; - } - - if (!supportSpaces && directoryTxt.getText().contains(" ")) //$NON-NLS-1$ - { - setErrorMessage(Messages.IDFDownloadPage_VersionSpaceError); - setPageComplete(false); - return; - } - - if (validateGitAndPython()) - { - setPageComplete(true); - setErrorMessage(null); - setMessage(Messages.IDFDownloadPage_ClickFinishToDownload); - } - else - { - setPageComplete(false); - } - } - } - - private String getIdfVersionUsingGit(String idfPath) - { - if (!validateGitAndPython()) - return StringUtil.EMPTY; - - List commands = new ArrayList(); - commands.add(gitExecutablePath); - commands.add("describe"); //$NON-NLS-1$ - - ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); - try - { - Logger.log("Executing commads: " + commands.toString()); - Map environment = new HashMap<>(System.getenv()); - IStatus status = processRunner.runInBackground(commands, Path.fromOSString(idfPath), environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), - IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ - return StringUtil.EMPTY; - } - String cmdOutput = status.getMessage(); - String version = StringUtil.EMPTY; - String patternString = "\\d+\\.\\d+\\.\\d+"; //$NON-NLS-1$ - Pattern pattern = Pattern.compile(patternString); - Matcher matcher = pattern.matcher(cmdOutput); - if (matcher.find()) - { - version = matcher.group(0); - } - - if(StringUtil.isEmpty(version)) - { - return StringUtil.EMPTY; - } - - return version; - } - catch (Exception e) - { - Logger.log(e); - } - - return StringUtil.EMPTY; - } - - private boolean isVersionGreaterOrEqual(String version, String minVersion) - { - // Define the regex pattern to match version numbers - String pattern = "\\d+\\.\\d+\\.\\d+"; //$NON-NLS-1$ - Pattern r = Pattern.compile(pattern); - - // Now create matcher object. - Matcher m = r.matcher(version); - Matcher mMin = r.matcher(minVersion); - - if (m.find() && mMin.find()) - { - String[] currentVersionParts = m.group(0).split("\\."); //$NON-NLS-1$ - String[] minVersionParts = mMin.group(0).split("\\."); //$NON-NLS-1$ - - int currentMajor = Integer.parseInt(currentVersionParts[0]); - int currentMinor = Integer.parseInt(currentVersionParts[1]); - int currentPatch = Integer.parseInt(currentVersionParts[2]); - - int minMajor = Integer.parseInt(minVersionParts[0]); - int minMinor = Integer.parseInt(minVersionParts[1]); - int minPatch = Integer.parseInt(minVersionParts[2]); - - if (currentMajor > minMajor) - { - return true; - } - else if (currentMajor == minMajor) - { - if (currentMinor > minMinor) - { - return true; - } - else if (currentMinor == minMinor) - { - return currentPatch >= minPatch; - } - } - } - - return false; - } - - - protected IDFVersion Version() - { - String versionTxt = versionCombo.getText(); - IDFVersion version = versionsMap.get(versionTxt); - return version; - } - - public String getDestinationLocation() - { - return directoryTxt.getText().trim(); - } - - public String getExistingIDFLocation() - { - return existingIdfDirTxt.getText().trim(); - } - - public boolean isConfigureExistingEnabled() - { - return fileSystemBtn.getSelection(); - } - - public String getPythonExePath() - { - return pythonExecutablePath; - } - - public String getGitExecutablePath() - { - return gitExecutablePath; - } - - private class BrowseButtonSelectionAdapter extends SelectionAdapter - { - private Text linkedText; - private int dialog; - private static final String GIT_FILE = "git"; //$NON-NLS-1$ - private static final String PYTHON_FILE = "python*"; //$NON-NLS-1$ - private static final String PYTHON_FILTERS = "Python Executables"; //$NON-NLS-1$ - private static final String WINDOWS_EXTENSION = ".exe"; //$NON-NLS-1$ - - private BrowseButtonSelectionAdapter(Text text, int dialog) - { - this.linkedText = text; - this.dialog = dialog; - } - - @Override - public void widgetSelected(SelectionEvent selectionEvent) - { - FileDialog dlg = null; - if (dialog == GIT_TOOL) - { - dlg = gitDialog(); - } - else - { - dlg = pythonDialog(); - } - - dlg.setText(Messages.FileSelectionDialogTitle); - String dir = dlg.open(); - if (!StringUtil.isEmpty(dir)) - { - linkedText.setText(dir); - } - } - - private FileDialog pythonDialog() - { - FileDialog dialog = new FileDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell()); - if (Platform.getOS().equals(Platform.OS_WIN32)) - { - dialog.setFilterNames(new String[] { PYTHON_FILTERS }); - dialog.setFilterExtensions(new String[] { PYTHON_FILE.concat(WINDOWS_EXTENSION) }); - } - else - { - dialog.setFilterNames(new String[] { PYTHON_FILTERS }); - dialog.setFilterExtensions(new String[] { PYTHON_FILE }); - } - return dialog; - } - - private FileDialog gitDialog() - { - FileDialog dialog = new FileDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell()); - if (Platform.getOS().equals(Platform.OS_WIN32)) - { - dialog.setFilterNames(new String[] { GIT_FILE.concat(WINDOWS_EXTENSION) }); - dialog.setFilterExtensions(new String[] { GIT_FILE.concat(WINDOWS_EXTENSION) }); - } - else - { - dialog.setFilterNames(new String[] { GIT_FILE }); - dialog.setFilterExtensions(new String[] { GIT_FILE }); - } - - return dialog; - } - } - - private class ModifyTextValidationListener implements ModifyListener - { - private int tool; - - private ModifyTextValidationListener(int tool) - { - this.tool = tool; - } - - @Override - public void modifyText(ModifyEvent e) - { - switch (tool) - { - case GIT_TOOL: - gitExecutablePath = gitText.getText(); - break; - case PYTHON_TOOL: - pythonExecutablePath = pythonText.getText(); - default: - break; - } - - validate(); - } - } -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/IDFNewToolsWizard.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/IDFNewToolsWizard.java deleted file mode 100644 index 6295948f7..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/IDFNewToolsWizard.java +++ /dev/null @@ -1,350 +0,0 @@ -/******************************************************************************* - * Copyright 2020 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.install; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.HttpURLConnection; -import java.net.URL; -import java.text.MessageFormat; -import java.util.List; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.IJobChangeEvent; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.core.runtime.jobs.JobChangeAdapter; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.wizard.Wizard; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; - -import com.espressif.idf.core.IDFVersion; -import com.espressif.idf.core.ZipUtility; -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.tools.ToolSetConfigurationManager; -import com.espressif.idf.core.tools.vo.IDFToolSet; -import com.espressif.idf.core.util.StringUtil; -import com.espressif.idf.ui.tools.ToolsActivationJob; -import com.espressif.idf.ui.tools.ToolsActivationJobListener; -import com.espressif.idf.ui.tools.ToolsInstallationJob; -import com.espressif.idf.ui.tools.manager.pages.ESPIDFMainTablePage; - -/** - * @author Kondal Kolipaka , Ali Azam Rana - * - */ -public class IDFNewToolsWizard extends Wizard -{ - private static final int BUFFER_SIZE = 4096; // $NON-NLS-1$ - private IDFDownloadPage downloadPage; - private ESPIDFMainTablePage espidfMainTablePage; - private ToolSetConfigurationManager toolSetConfigurationManager; - private ToolsInstallationJob toolsInstallationJob; - private String pythonPath; - private String gitPath; - - public IDFNewToolsWizard() - { - } - - public IDFNewToolsWizard(ESPIDFMainTablePage espidfMainTablePage) - { - this.espidfMainTablePage = espidfMainTablePage; - toolSetConfigurationManager = new ToolSetConfigurationManager(); - } - - @Override - public boolean performFinish() - { - IDFVersion version = downloadPage.Version(); - String destinationLocation = downloadPage.getDestinationLocation(); - boolean configureExistingEnabled = downloadPage.isConfigureExistingEnabled(); - pythonPath = downloadPage.getPythonExePath(); - gitPath = downloadPage.getGitExecutablePath(); - - if (configureExistingEnabled) - { - String localIdfLocation = downloadPage.getExistingIDFLocation(); - - toolsInstallationJob = new ToolsInstallationJob(pythonPath, gitPath, localIdfLocation); - toolsInstallationJob.addJobChangeListener(new ToolsInstallationJobChangeListener()); - toolsInstallationJob.schedule(); - - } - else - { - new File(destinationLocation).mkdirs(); - String url = version.getUrl(); - if (version.getName().equals("master") || version.getName().startsWith("release/")) //$NON-NLS-1$ //$NON-NLS-2$ - { - Job job = new Job(MessageFormat.format(Messages.IDFDownloadWizard_CloningJobMsg, version.getName())) - { - @Override - protected IStatus run(IProgressMonitor monitor) - { - String localIdfLocation = repositoryClone(version.getName(), url, destinationLocation, monitor); - toolsInstallationJob = new ToolsInstallationJob(pythonPath, gitPath, localIdfLocation); - toolsInstallationJob.addJobChangeListener(new ToolsInstallationJobChangeListener()); - toolsInstallationJob.schedule(); - return Status.OK_STATUS; - } - }; - - job.setUser(true); - job.schedule(); - } - else - { - Job job = new Job(MessageFormat.format(Messages.IDFDownloadWizard_DownloadingJobMsg, version.getName())) - { - @Override - protected IStatus run(IProgressMonitor monitor) - { - String localIdfLocation = download(monitor, url, destinationLocation); - toolsInstallationJob = new ToolsInstallationJob(pythonPath, gitPath, localIdfLocation); - toolsInstallationJob.addJobChangeListener(new ToolsInstallationJobChangeListener()); - toolsInstallationJob.schedule(); - return Status.OK_STATUS; - } - }; - - job.setUser(true); - job.schedule(); - - } - - // Show the progress in Progress View - openProgressView(); - } - - return true; - } - - private void openProgressView() - { - try - { - PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage() - .showView("org.eclipse.ui.views.ProgressView"); //$NON-NLS-1$ - } - catch (PartInitException e) - { - Logger.log(e); - } - - } - - protected String download(IProgressMonitor monitor, String url, String destinationLocation) - { - try - { - String downloadFile = downloadFile(url, destinationLocation, monitor); - if (downloadFile != null) - { - unZipFile(downloadFile, destinationLocation); - new File(downloadFile).delete(); - - // extracts file name from URL - String folderName = new File(url).getName().replace(".zip", ""); //$NON-NLS-1$ //$NON-NLS-2$ - - return new File(destinationLocation, folderName).getAbsolutePath(); - } - } - catch (IOException e) - { - Logger.log(e); - showErrorMessage(e.getLocalizedMessage()); - } - - return StringUtil.EMPTY; - } - - protected String repositoryClone(String version, String url, String destinationLocation, IProgressMonitor monitor) - { - GitRepositoryBuilder gitBuilder = new GitRepositoryBuilder(false, null); - StringBuilder destinationLocationPath = new StringBuilder(); - destinationLocationPath.append(destinationLocation); - destinationLocationPath.append("/esp-idf-"); //$NON-NLS-1$ - if (version.startsWith("release/")) //$NON-NLS-1$ - { - destinationLocationPath.append(version.substring("release/".length())); //$NON-NLS-1$ - } - else - { - destinationLocationPath.append(version); - } - - gitBuilder.repositoryURI(url); - gitBuilder.repositoryDirectory(new File(destinationLocationPath.toString())); - gitBuilder.activeBranch(version); - gitBuilder.setProgressMonitor(monitor); - - try - { - gitBuilder.repositoryClone(); - return destinationLocationPath.toString(); - - } - catch (Exception e) - { - Logger.log(e); - showErrorMessage(e.getLocalizedMessage()); - } - - return StringUtil.EMPTY; - } - - private void unZipFile(String downloadFile, String destinationLocation) - { - new ZipUtility().decompress(new File(downloadFile), new File(destinationLocation)); - } - - private void showErrorMessage(String errorMessage) - { - Display.getDefault().asyncExec(new Runnable() - { - public void run() - { - MessageDialog.openError(Display.getDefault().getActiveShell(), Messages.IDFDownloadWizard_ErrorTitle, - errorMessage); - } - }); - } - - public void init(IWorkbench aWorkbench, IStructuredSelection currentSelection) - { - setNeedsProgressMonitor(true); - } - - @Override - public void addPages() - { - downloadPage = new IDFDownloadPage("Download page"); //$NON-NLS-1$ - addPage(downloadPage); - } - - protected String downloadFile(String fileURL, String saveDir, IProgressMonitor monitor) throws IOException - { - - String msg = MessageFormat.format(Messages.IDFDownloadWizard_DownloadingMessage, fileURL); - Logger.log(msg); - monitor.beginTask(msg, 100); - - URL url = new URL(fileURL); - HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); - int responseCode = httpConn.getResponseCode(); - - // always check HTTP response code first - if (responseCode == HttpURLConnection.HTTP_OK) - { - String fileName = ""; //$NON-NLS-1$ - String disposition = httpConn.getHeaderField("Content-Disposition"); //$NON-NLS-1$ - String contentType = httpConn.getContentType(); - int contentLength = httpConn.getContentLength(); - - if (disposition != null) - { - // extracts file name from header field - String identifier = "filename="; //$NON-NLS-1$ - int index = disposition.indexOf(identifier); - if (index > 0) - { - fileName = disposition.substring(index + identifier.length(), disposition.length()); - } - } - else - { - // extracts file name from URL - fileName = fileURL.substring(fileURL.lastIndexOf("/") + 1, fileURL.length()); //$NON-NLS-1$ - } - - Logger.log("Content-Type = " + contentType); //$NON-NLS-1$ - Logger.log("Content-Disposition = " + disposition); //$NON-NLS-1$ - Logger.log("Content-Length = " + contentLength); //$NON-NLS-1$ - Logger.log("fileName = " + fileName); //$NON-NLS-1$ - - // opens input stream from the HTTP connection - InputStream inputStream = httpConn.getInputStream(); - String saveFilePath = saveDir + File.separator + fileName; - - // opens an output stream to save into file - FileOutputStream outputStream = new FileOutputStream(saveFilePath); - - float downloaded = 0f; - int bytesRead = -1; - int noOfUnitedUpdated = 0; - byte[] buffer = new byte[BUFFER_SIZE]; - while ((bytesRead = inputStream.read(buffer)) != -1) - { - outputStream.write(buffer, 0, bytesRead); - downloaded = downloaded + BUFFER_SIZE; - int unitsDownloadedSofar = (int) ((downloaded / contentLength) * 100); - if (unitsDownloadedSofar > noOfUnitedUpdated) - { - int needToBeUpdated = unitsDownloadedSofar - noOfUnitedUpdated; - noOfUnitedUpdated = noOfUnitedUpdated + needToBeUpdated; - String taskName = MessageFormat.format(msg + "({0}/{1})", convertToMB(downloaded), //$NON-NLS-1$ - convertToMB(contentLength)); - monitor.setTaskName(taskName); - monitor.worked(needToBeUpdated); - } - if (monitor.isCanceled()) - { - Logger.log("File download cancelled"); //$NON-NLS-1$ - saveFilePath = null; - break; - } - } - - outputStream.close(); - inputStream.close(); - - return saveFilePath; - } - else - { - Logger.log("No file to download. Server replied HTTP code: " + responseCode); //$NON-NLS-1$ - } - httpConn.disconnect(); - return null; - } - - protected String convertToMB(float value) - { - return String.format("%.2f", (value / (1024 * 1024))) + " MB"; //$NON-NLS-1$ //$NON-NLS-2$ - } - - - private class ToolsInstallationJobChangeListener extends JobChangeAdapter - { - @Override - public void done(IJobChangeEvent event) - { - List idfToolSets = toolSetConfigurationManager.getIdfToolSets(false); - Display.getDefault().asyncExec(() -> { - if (espidfMainTablePage != null) - { - espidfMainTablePage.refreshEditorUI(); - } - }); - - if (idfToolSets != null && idfToolSets.size() == 1) - { - ToolsActivationJob toolsActivationJob = new ToolsActivationJob(idfToolSets.get(0), pythonPath, gitPath); - ToolsActivationJobListener toolsActivationJobListener = new ToolsActivationJobListener(espidfMainTablePage); - toolsActivationJob.addJobChangeListener(toolsActivationJobListener); - toolsActivationJob.schedule(); - } - - } - } -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/Messages.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/Messages.java deleted file mode 100644 index cc53e5c79..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/Messages.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.espressif.idf.ui.install; - -import org.eclipse.osgi.util.NLS; - -public class Messages extends NLS -{ - private static final String BUNDLE_NAME = "com.espressif.idf.ui.install.messages"; //$NON-NLS-1$ - public static String GitRepositoryBuilder_gitClone; - public static String IDFDownloadPage_0; - public static String IDFDownloadPage_BrowseBtn; - public static String IDFDownloadPage_BrowseBtnTxt; - public static String IDFDownloadPage_CantfindProperEspIDFDirectory; - public static String IDFDownloadPage_CantFindRequirementsFile; - public static String IDFDownloadPage_ChooseAnExistingIDF; - public static String IDFDownloadPage_ChooseDirIDF; - public static String IDFDownloadPage_ChooseIDFDir; - public static String IDFDownloadPage_ChooseIDFVersion; - public static String IDFDownloadPage_ClickFinishToDownload; - public static String IDFDownloadPage_ClickOnFinish; - public static String IDFDownloadPage_DirDoesnotExist; - public static String IDFDownloadPage_DirectoryDialogMessage; - public static String IDFDownloadPage_DirectoryDialogMsg; - public static String IDFDownloadPage_DirectoryDialogText; - public static String IDFDownloadPage_DirectoryDialogTxt; - public static String IDFDownloadPage_VersionSpaceError; - public static String IDFDownloadPage_DownloadIDF; - public static String IDFDownloadPage_IDFBuildNotSupported; - public static String IDFDownloadPage_Note; - public static String IDFDownloadPage_VersionLinkMsg; - public static String IDFDownloadWizard_CloningCompletedMsg; - public static String IDFDownloadWizard_CloningJobMsg; - public static String IDFDownloadWizard_ConfigMessage; - public static String IDFDownloadWizard_DownloadCompleteMsg; - public static String IDFDownloadWizard_DownloadingJobMsg; - public static String IDFDownloadWizard_DownloadingMessage; - public static String IDFDownloadWizard_ErrorTitle; - public static String IDFDownloadWizard_MessageTitle; - public static String IDFDownloadWizard_AllowSpacesTitle; - public static String IDFDownloadWizard_AllowSpacesMsg; - - public static String BrowseButton; - public static String GitLabel; - public static String PythonLabel; - public static String FileSelectionDialogTitle; - static - { - // initialize resource bundle - NLS.initializeMessages(BUNDLE_NAME, Messages.class); - } - - private Messages() - { - } -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/messages.properties b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/messages.properties deleted file mode 100644 index 071dc26af..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/messages.properties +++ /dev/null @@ -1,35 +0,0 @@ -GitRepositoryBuilder_gitClone=git clone result: %s -IDFDownloadPage_0=icons/espressif_logo.png -IDFDownloadPage_BrowseBtn=Browse... -IDFDownloadPage_BrowseBtnTxt=Browse... -IDFDownloadPage_CantfindProperEspIDFDirectory=Can not find idf python scripts in {0} tools. Make sure to select valid ESP-IDF directory. -IDFDownloadPage_ChooseAnExistingIDF=Use an existing ESP-IDF directory from file system -IDFDownloadPage_ChooseDirIDF=Choose existing ESP-IDF directory: -IDFDownloadPage_ChooseIDFDir=Choose a directory to download ESP-IDF to: -IDFDownloadPage_ChooseIDFVersion=Please choose ESP-IDF version to download: -IDFDownloadPage_ClickFinishToDownload=Click on `Finish` to download -IDFDownloadPage_ClickOnFinish=Click on `Finish` to configure IDF_PATH with -IDFDownloadPage_DirDoesnotExist=Directory doesn''t exist: -IDFDownloadPage_VersionSpaceError=ESP-IDF build system support spaces in paths after v5.0. Please choose a different directory. -IDFDownloadPage_DirectoryDialogMessage=Choose Directory to download ESP-IDF -IDFDownloadPage_DirectoryDialogMsg=Select ESP-IDF Directory: -IDFDownloadPage_DirectoryDialogText=Choose Directory -IDFDownloadPage_DirectoryDialogTxt=ESP-IDF Directory: -IDFDownloadPage_DownloadIDF=Download ESP-IDF -IDFDownloadPage_IDFBuildNotSupported=ESP-IDF build system does not support spaces in paths. Please choose a different directory. -IDFDownloadPage_Note=Note: The newly configured ESP-IDF will set to IDF_PATH in the CDT Build environment (Preferences > C/C++ > Build > Environment) -IDFDownloadPage_VersionLinkMsg=For more information about ESP-IDF versions, see https://docs.espressif.com/projects/esp-idf/en/latest/versions.html -IDFDownloadWizard_CloningCompletedMsg=ESP-IDF {0} cloning completed\! This might require a new set of tools to be installed. Do you want to install them? -IDFDownloadWizard_CloningJobMsg=Cloning ESP-IDF {0}... -IDFDownloadWizard_ConfigMessage=IDF_PATH configured with {0}. This might require a new set of tools to be installed. Do you want to install them? -IDFDownloadWizard_DownloadCompleteMsg={0} download completed\! This might require a new set of tools to be installed. Do you want to install them? -IDFDownloadWizard_DownloadingJobMsg=Downloading ESP-IDF {0}... -IDFDownloadWizard_DownloadingMessage=Downloading {0}... -IDFDownloadWizard_ErrorTitle=Error -IDFDownloadWizard_MessageTitle=Message -IDFDownloadWizard_AllowSpacesTitle=Space detected! -IDFDownloadWizard_AllowSpacesMsg=Detected a whitespace character in path. Spaces in IDF_PATH and project paths are allowed in versions 5.0 and higher. By clicking "Yes", you confirm that your version supports spaces. -PythonLabel=Python: -BrowseButton=Browse -GitLabel=Git: -FileSelectionDialogTitle=Select tool executable file \ No newline at end of file diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/messages_zh.properties b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/messages_zh.properties deleted file mode 100644 index 86fd023cb..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/install/messages_zh.properties +++ /dev/null @@ -1,32 +0,0 @@ -GitRepositoryBuilder_gitClone=git \u514b\u9686\u7ed3\u679c\uff1a%s -IDFDownloadPage_0=icons/espressif_logo.png -IDFDownloadPage_BrowseBtn=\u6d4f\u89c8... -IDFDownloadPage_BrowseBtnTxt=\u6d4f\u89c8... -IDFDownloadPage_CantfindIDFpy={0} \u5de5\u5177\u4e2d\u627e\u4e0d\u5230 idf.py -IDFDownloadPage_CantFindRequirementsFile={0} \u4e2d\u627e\u4e0d\u5230 requirements.txt \u6587\u4ef6 -IDFDownloadPage_ChooseAnExistingIDF=\u4f7f\u7528\u6587\u4ef6\u7cfb\u7edf\u4e2d\u73b0\u6709\u7684 ESP-IDF \u76ee\u5f55 -IDFDownloadPage_ChooseDirIDF=\u9009\u62e9\u73b0\u6709\u7684 ESP-IDF \u76ee\u5f55\uff1a -IDFDownloadPage_ChooseIDFDir=\u9009\u62e9 ESP-IDF \u7684\u4e0b\u8f7d\u76ee\u5f55\uff1a -IDFDownloadPage_ChooseIDFVersion=\u8bf7\u9009\u62e9\u9700\u8981\u4e0b\u8f7d\u7684 ESP-IDF \u7248\u672c\uff1a -IDFDownloadPage_ClickFinishToDownload=\u5355\u51fb `\u5b8c\u6210` \u5f00\u59cb\u4e0b\u8f7d -IDFDownloadPage_ClickOnFinish=\u5355\u51fb `\u5b8c\u6210` \u914d\u7f6e IDF_PATH -IDFDownloadPage_DirDoesnotExist=\u76ee\u5f55\u4e0d\u5b58\u5728\uff1a -IDFDownloadPage_DirectoryDialogMessage=\u9009\u62e9 ESP-IDF \u7684\u4e0b\u8f7d\u76ee\u5f55\uff1a -IDFDownloadPage_DirectoryDialogMsg=\u9009\u62e9 ESP-IDF \u76ee\u5f55\uff1a -IDFDownloadPage_DirectoryDialogText=\u9009\u62e9\u76ee\u5f55\uff1a -IDFDownloadPage_DirectoryDialogTxt=ESP-IDF \u76ee\u5f55\uff1a -IDFDownloadPage_DownloadIDF=\u4e0b\u8f7d ESP-IDF -IDFDownloadPage_IDFBuildNotSupported=ESP-IDF \u6784\u5efa\u7cfb\u7edf\u4e0d\u652f\u6301\u8def\u5f84\u4e2d\u6709\u7a7a\u683c\u3002\u8bf7\u9009\u62e9\u4e00\u4e2a\u5176\u4ed6\u76ee\u5f55\u3002 -IDFDownloadPage_Note=\u6ce8\u610f\uff1a\u65b0\u914d\u7f6e\u7684 ESP-IDF \u5c06\u8bbe\u7f6e\u4e3a CDT \u6784\u5efa\u73af\u5883\u4e2d\u7684 IDF_PATH\uff08\u504f\u597d\u8bbe\u7f6e > C/C++ > \u6784\u5efa > \u73af\u5883\uff09 -IDFDownloadPage_VersionLinkMsg=\u6709\u5173 ESP-IDF \u7248\u672c\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605 https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/versions.html -IDFDownloadWizard_CloningCompletedMsg=ESP-IDF {0} \u514b\u9686\u5b8c\u6210\uff01\u8fd9\u53ef\u80fd\u9700\u8981\u5b89\u88c5\u4e00\u7ec4\u65b0\u7684\u5de5\u5177\u3002\u662f\u5426\u8981\u5b89\u88c5\u8fd9\u4e9b\u5de5\u5177\uff1f -IDFDownloadWizard_CloningJobMsg=\u514b\u9686 ESP-IDF {0}... -IDFDownloadWizard_ConfigMessage=IDF_PATH \u914d\u7f6e\u4e3a {0}\u3002\u8fd9\u53ef\u80fd\u9700\u8981\u5b89\u88c5\u4e00\u7ec4\u65b0\u7684\u5de5\u5177\u3002\u662f\u5426\u8981\u5b89\u88c5\u8fd9\u4e9b\u5de5\u5177\uff1f -IDFDownloadWizard_DownloadCompleteMsg={0} \u4e0b\u8f7d\u5b8c\u6210\uff01\u8fd9\u53ef\u80fd\u9700\u8981\u5b89\u88c5\u4e00\u7ec4\u65b0\u7684\u5de5\u5177\u3002\u662f\u5426\u8981\u5b89\u88c5\u8fd9\u4e9b\u5de5\u5177\uff1f -IDFDownloadWizard_DownloadingJobMsg=\u4e0b\u8f7d ESP-IDF {0}... -IDFDownloadWizard_DownloadingMessage=\u4e0b\u8f7d {0}... -IDFDownloadWizard_ErrorTitle=\u9519\u8bef -IDFDownloadWizard_MessageTitle=\u6d88\u606f -IDFDownloadWizard_AllowSpacesTitle=\u68c0\u6d4b\u5230\u7a7a\u683c\uff01 -IDFDownloadWizard_AllowSpacesMsg=\u68c0\u6d4b\u5230\u8def\u5f84\u4e2d\u5b58\u5728\u7a7a\u683c\u5b57\u7b26\u30025.0 \u53ca\u4ee5\u4e0a\u7248\u672c\u5141\u8bb8 IDF_PATH \u548c\u9879\u76ee\u8def\u5f84\u4e2d\u5b58\u5728\u7a7a\u683c\u3002\u5982\u5df2\u786e\u5b9a\u60a8\u7684\u7248\u672c\u53ef\u652f\u6301\u7a7a\u683c\uff0c\u8bf7\u5355\u51fb\u201c\u662f\u201d\u3002 - diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/preferences/EspresssifPreferencesPage.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/preferences/EspresssifPreferencesPage.java index 5913e4335..1164f573e 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/preferences/EspresssifPreferencesPage.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/preferences/EspresssifPreferencesPage.java @@ -3,15 +3,12 @@ import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; @@ -42,7 +39,6 @@ public class EspresssifPreferencesPage extends PreferencePage implements IWorkbe private Combo gitAssetsCombo; private Combo pythonWheelCombo; - private Text idfToolsPathText; private Button automateClangdFormatCreationBtn; public EspresssifPreferencesPage() @@ -127,37 +123,6 @@ private void addToolsInstallationSettings(Composite mainComposite) gitAssetsCombo.setLayoutData(gitTextGridData); pythonWheelCombo.setLayoutData(pythonTextGridData); - Label idfToolsPathLabel = new Label(toolsInstallationGroup, SWT.NONE); - idfToolsPathLabel.setText(Messages.EspressifPreferencesPage_EspIdfToolsInstallationDirectoryLabel); - idfToolsPathText = new Text(toolsInstallationGroup, SWT.SINGLE | SWT.NONE); - GridData idfToolsPathTextGridData = new GridData(SWT.FILL, SWT.CENTER, true, false); - idfToolsPathTextGridData.widthHint = 200; - idfToolsPathText.setLayoutData(idfToolsPathTextGridData); - // Add browse button - Button browseButtonIdfToolsPath = new Button(toolsInstallationGroup, SWT.PUSH); - browseButtonIdfToolsPath.setText(Messages.EspressifPreferencesPage_DirectorySelectionIDFToolsPathBrowseButton); - browseButtonIdfToolsPath.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(SelectionEvent e) - { - DirectoryDialog dialog = new DirectoryDialog(mainComposite.getShell()); - dialog.setText(Messages.EspressifPreferencesPage_DirectorySelectionIDFToolsPathTitle); - dialog.setMessage(Messages.EspressifPreferencesPage_DirectorySelectionIDFToolsPathMessage); - String dir = dialog.open(); - if (dir != null) - { - idfToolsPathText.setText(dir); - } - } - }); - - String idfToolsPath = getPreferenceStore().getString(IDFCorePreferenceConstants.IDF_TOOLS_PATH); - idfToolsPath = StringUtil.isEmpty(idfToolsPath) - ? getPreferenceStore().getDefaultString(IDFCorePreferenceConstants.IDF_TOOLS_PATH) - : idfToolsPath; - idfToolsPathText.setText(idfToolsPath); - String gitUrl = getPreferenceStore().getString(IDFCorePreferenceConstants.IDF_GITHUB_ASSETS); String pyWheelUrl = getPreferenceStore().getString(IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL); gitUrl = StringUtil.isEmpty(gitUrl) ? gitAssetsCombo.getItem(0) : gitUrl; @@ -271,8 +236,6 @@ public boolean performOk() getPreferenceStore().setValue(IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL, pythonWheelCombo.getText()); - getPreferenceStore().setValue(IDFCorePreferenceConstants.IDF_TOOLS_PATH, idfToolsPathText.getText()); - getPreferenceStore().setValue(IDFCorePreferenceConstants.AUTOMATE_CLANGD_FORMAT_FILE, automateClangdFormatCreationBtn.getSelection()); } @@ -300,7 +263,6 @@ protected void performDefaults() .setSelection(getPreferenceStore().getBoolean(IDFCorePreferenceConstants.AUTOMATE_CLANGD_FORMAT_FILE)); gitAssetsCombo.setText(gitAssetsCombo.getItem(0)); pythonWheelCombo.setText(pythonWheelCombo.getItem(0)); - idfToolsPathText.setText(getPreferenceStore().getDefaultString(IDFCorePreferenceConstants.IDF_TOOLS_PATH)); } private void initializeDefaults() @@ -314,13 +276,6 @@ private void initializeDefaults() IDFCorePreferenceConstants.AUTOMATE_BUILD_HINTS_DEFAULT_STATUS); getPreferenceStore().setDefault(IDFCorePreferenceConstants.HIDE_ERRORS_IDF_COMPONENTS, IDFCorePreferenceConstants.HIDE_ERRORS_IDF_COMPONENTS_DEFAULT_STATUS); - - getPreferenceStore().setDefault(IDFCorePreferenceConstants.IDF_GITHUB_ASSETS, - IDFCorePreferenceConstants.IDF_GITHUB_ASSETS_DEFAULT_GLOBAL); - getPreferenceStore().setDefault(IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL, - IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL_DEFAULT_GLOBAL); - getPreferenceStore().setDefault(IDFCorePreferenceConstants.IDF_TOOLS_PATH, - IDFCorePreferenceConstants.IDF_TOOLS_PATH_DEFAULT); getPreferenceStore().setDefault(IDFCorePreferenceConstants.AUTOMATE_CLANGD_FORMAT_FILE, IDFCorePreferenceConstants.AUTOMATE_CLANGD_FORMAT_FILE_DEFAULT); } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/size/IDFSizeDataManager.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/size/IDFSizeDataManager.java index 7acb68185..a12e6d089 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/size/IDFSizeDataManager.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/size/IDFSizeDataManager.java @@ -205,7 +205,7 @@ protected IStatus runProcess(IFile file, List arguments) throws Exceptio ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); try { - return processRunner.runInBackground(arguments, Path.ROOT, IDFUtil.getSystemEnv()); + return processRunner.runInBackground(arguments, Path.ROOT, System.getenv()); } catch (Exception e1) { diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java new file mode 100644 index 000000000..570521136 --- /dev/null +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -0,0 +1,135 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.ui.tools; + +import java.text.MessageFormat; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IStartup; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.ide.IDE; +import org.osgi.service.prefs.Preferences; + +import com.espressif.idf.core.build.Messages; +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.EimConstants; +import com.espressif.idf.core.tools.ToolInitializer; +import com.espressif.idf.core.tools.vo.EimJson; +import com.espressif.idf.core.tools.watcher.EimJsonStateChecker; +import com.espressif.idf.core.tools.watcher.EimJsonWatchService; +import com.espressif.idf.core.util.IDFUtil; +import com.espressif.idf.core.util.StringUtil; +import com.espressif.idf.ui.UIPlugin; +import com.espressif.idf.ui.dialogs.MessageLinkDialog; +import com.espressif.idf.ui.handlers.EclipseHandler; +import com.espressif.idf.ui.tools.manager.ESPIDFManagerEditor; +import com.espressif.idf.ui.tools.manager.EimEditorInput; +import com.espressif.idf.ui.tools.watcher.EimJsonUiChangeHandler; + +/** + * Startup class to handle the tools + * + * @author Ali Azam Rana + * + */ +public class EspressifToolStartup implements IStartup +{ + @Override + public void earlyStartup() + { + Preferences preferences = org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE + .getNode(UIPlugin.PLUGIN_ID); + ToolInitializer toolInitializer = new ToolInitializer(preferences); + + if (!toolInitializer.isEimInstalled()) + { + notifyMissingTools(); + return; + } + + EimJson eimJson = toolInitializer.loadEimJson(); + if (eimJson == null) + { + return; + } + + if (!toolInitializer.isEspIdfSet()) + { + promptUserToOpenToolManager(eimJson); + } + + EimJsonStateChecker stateChecker = new EimJsonStateChecker(preferences); + if (stateChecker.wasModifiedSinceLastRun()) + { + showEimJsonStateChangeNotification(); + } + + stateChecker.updateLastSeenTimestamp(); + EimJsonWatchService.getInstance().addEimJsonChangeListener(new EimJsonUiChangeHandler(preferences)); + } + + private void showEimJsonStateChangeNotification() + { + Display.getDefault().asyncExec(() -> { + MessageDialog.openInformation(Display.getDefault().getActiveShell(), + com.espressif.idf.ui.tools.Messages.EimJsonChangedMsgTitle, + com.espressif.idf.ui.tools.Messages.EimJsonStateChangedMsgDetail); + }); + } + + private void notifyMissingTools() + { + Display.getDefault().asyncExec(() -> { + MessageLinkDialog.openWarning(Display.getDefault().getActiveShell(), + Messages.ToolsInitializationEimMissingMsgBoxTitle, + MessageFormat.format(Messages.ToolsInitializationEimMissingMsgBoxMessage, EimConstants.EIM_URL)); + }); + } + + private void promptUserToOpenToolManager(EimJson eimJson) + { + Display.getDefault().syncExec(() -> { + String testRunValue = System.getProperty("testRun"); + Logger.log("testRun: " + testRunValue); + + if (!StringUtil.isEmpty(testRunValue) && Boolean.parseBoolean(testRunValue)) + { + openEspIdfManager(eimJson); + return; + } + + Shell shell = Display.getDefault().getActiveShell(); + MessageBox messageBox = new MessageBox(shell, SWT.ICON_WARNING | SWT.YES | SWT.NO); + messageBox.setText(Messages.NoActiveEspIdfInWorkspaceMsgTitle); + messageBox.setMessage(Messages.NoActiveEspIdfInWorkspaceMsg); + + if (messageBox.open() == SWT.YES) + { + openEspIdfManager(eimJson); + } + }); + } + + private void openEspIdfManager(EimJson eimJson) + { + IWorkbenchWindow window = EclipseHandler.getActiveWorkbenchWindow(); + IDFUtil.closeWelcomePage(window); + try + { + EimEditorInput input = new EimEditorInput(eimJson); + input.setFirstStartup(true); + IDE.openEditor(window.getActivePage(), input, ESPIDFManagerEditor.EDITOR_ID); + } + catch (PartInitException e) + { + Logger.log(e); + } + } +} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/GitWizardRepProgressMonitor.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/GitWizardRepProgressMonitor.java deleted file mode 100644 index d245dc821..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/GitWizardRepProgressMonitor.java +++ /dev/null @@ -1,138 +0,0 @@ -/******************************************************************************* - * Copyright 2022 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.tools; - -import java.text.MessageFormat; -import java.time.Duration; -import java.util.Queue; - -import org.eclipse.jgit.lib.BatchingProgressMonitor; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.ProgressBar; - -/** - * Git cloning progress report class to add updated messages to the passed queue of messages which can be then consumed - * by the initiator - * - * @author Ali Azam Rana - * - */ -public class GitWizardRepProgressMonitor extends BatchingProgressMonitor -{ - private Queue logMessages; - private boolean jobCancelled; - private ProgressBar progressBar; - private Display display; - - public GitWizardRepProgressMonitor(Queue logMessages, ProgressBar progressBar) - { - this.logMessages = logMessages; - this.progressBar = progressBar; - display = progressBar.getDisplay(); - } - - protected void onUpdate(String taskName, int workCurr) - { - onUpdate(taskName, workCurr, null); - } - - protected void onEndTask(String taskName, int workCurr) - { - onEndTask(taskName, workCurr, null); - } - - protected void onUpdate(String taskName, int workCurr, int workTotal, int percentDone) - { - onUpdate(taskName, workCurr, null); - } - - protected void onEndTask(String taskName, int workCurr, int workTotal, int percentDone) - { - onEndTask(taskName, workCurr, workTotal, percentDone, null); - } - - protected void onUpdate(String taskName, int workCurr, Duration duration) - { - updateProgressBar(workCurr); - setProgressBarVisibility(false); - logMessages.add(MessageFormat.format("{0} {1}", taskName, workCurr)); //$NON-NLS-1$ - } - - protected void onEndTask(String taskName, int workCurr, Duration duration) - { - updateProgressBar(workCurr); - logMessages.add(MessageFormat.format("Finished {0} {1}", taskName, workCurr)); //$NON-NLS-1$ - } - - protected void onUpdate(String taskName, int workCurr, int workTotal, int percentDone, Duration duration) - { - initializeMaxProgressbar(workTotal); - updateProgressBar(workCurr); - logMessages.add( - MessageFormat.format("{0} {1}, total {2} {3}% Completed", taskName, workCurr, workTotal, percentDone)); //$NON-NLS-1$ - } - - protected void onEndTask(String taskName, int workCurr, int workTotal, int percentDone, Duration duration) - { - initializeMaxProgressbar(workTotal); - updateProgressBar(workCurr); - setProgressBarVisibility(false); - logMessages.add(MessageFormat.format("Finished {0} {1}, total {2} {3}% Completed", taskName, workCurr, //$NON-NLS-1$ - workTotal, percentDone)); - } - - @Override - public boolean isCancelled() - { - if (jobCancelled) - { - logMessages.add("Cancelled by User"); //$NON-NLS-1$ - } - return jobCancelled; - } - - public void setJobCancelled(boolean jobCancelled) - { - this.jobCancelled = jobCancelled; - } - - private void initializeMaxProgressbar(int max) - { - display.asyncExec(new Runnable() - { - @Override - public void run() - { - progressBar.setVisible(true); - progressBar.setMaximum(max); - } - }); - } - - private void updateProgressBar(int updateValue) - { - display.asyncExec(new Runnable() - { - @Override - public void run() - { - progressBar.setSelection(updateValue); - } - }); - } - - private void setProgressBarVisibility(boolean visible) - { - display.asyncExec(new Runnable() - { - @Override - public void run() - { - progressBar.setVisible(visible); - } - }); - } - -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/LogMessagesThread.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/LogMessagesThread.java deleted file mode 100644 index 20e25273f..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/LogMessagesThread.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright 2022 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.tools; - -import java.util.Queue; - -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Text; - -import com.espressif.idf.core.logging.Logger; - -/** - * Thread for logging messages in a queue to the SWT Text - * - * @author Ali Azam Rana - * - */ -public class LogMessagesThread extends Thread -{ - private final Queue logMessages; - private boolean stopLogging; - private final Text logAreaText; - private Display display; - - public LogMessagesThread(Queue logMessages, Text logAreaText, Display display) - { - this.logMessages = logMessages; - this.logAreaText = logAreaText; - this.display = display; - } - - @Override - public void run() - { - while (!stopLogging) - { - try - { - Thread.sleep(50); - } - catch (InterruptedException e) - { - Logger.log(e); - } - if (logMessages.size() != 0) - { - String msg = logMessages.poll(); - showMessage(msg); - } - } - } - - private void showMessage(final String message) - { - if (display == null && logAreaText != null) - { - display = logAreaText.getDisplay(); - } - display.asyncExec(new Runnable() - { - public void run() - { - if (logAreaText.getText().length() != 0) - { - logAreaText.append(System.getProperty("line.separator")); //$NON-NLS-1$ - } - logAreaText.append(message); - } - }); - } - - public void setStopLogging(boolean stopLogging) - { - this.stopLogging = stopLogging; - } -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ManageEspIdfVersionsHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ManageEspIdfVersionsHandler.java index ceb02b514..dc1dff888 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ManageEspIdfVersionsHandler.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ManageEspIdfVersionsHandler.java @@ -1,24 +1,27 @@ package com.espressif.idf.ui.tools; -import java.io.File; +import java.io.IOException; +import java.text.MessageFormat; +import java.util.ArrayList; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.ide.IDE; -import org.eclipse.ui.part.FileEditorInput; +import com.espressif.idf.core.build.Messages; import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.tools.IToolsInstallationWizardConstants; +import com.espressif.idf.core.tools.EimConstants; +import com.espressif.idf.core.tools.EimIdfConfiguratinParser; +import com.espressif.idf.core.tools.vo.EimJson; +import com.espressif.idf.core.tools.vo.IdfInstalled; import com.espressif.idf.core.util.IDFUtil; +import com.espressif.idf.ui.dialogs.MessageLinkDialog; import com.espressif.idf.ui.handlers.EclipseHandler; import com.espressif.idf.ui.tools.manager.ESPIDFManagerEditor; +import com.espressif.idf.ui.tools.manager.EimEditorInput; public class ManageEspIdfVersionsHandler extends AbstractHandler { @@ -39,34 +42,45 @@ public void run() { IWorkbenchWindow activeww = EclipseHandler.getActiveWorkbenchWindow(); IDFUtil.closeWelcomePage(activeww); - + + EimJson eimJson = new EimJson(); + try { - File inputFile = new File(toolSetConfigFilePath()); - if (!inputFile.exists()) - { - inputFile.createNewFile(); - } + EimIdfConfiguratinParser eimIdfConfiguratinParser = new EimIdfConfiguratinParser(); + eimJson = eimIdfConfiguratinParser.getEimJson(true); + } + catch (IOException e) + { + Logger.log(e); + // Proceed with an empty EimJson object + } - IFile iFile = ResourcesPlugin.getWorkspace().getRoot() - .getFile(new Path(inputFile.getAbsolutePath())); - IDE.openEditor(activeww.getActivePage(), new FileEditorInput(iFile), ESPIDFManagerEditor.EDITOR_ID); + try + { + IDE.openEditor(activeww.getActivePage(), new EimEditorInput(eimJson), ESPIDFManagerEditor.EDITOR_ID, + true); } catch (Exception e) { Logger.log(e); } + + if (eimJson.getIdfInstalled().isEmpty()) + { + notifyIDFNotFound(); + } } }); } - - private String toolSetConfigFilePath() + + private void notifyIDFNotFound() { - IPath path = ResourcesPlugin.getWorkspace().getRoot().getLocation(); - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(path.toOSString()); - stringBuilder.append(File.separatorChar); - stringBuilder.append(IToolsInstallationWizardConstants.TOOL_SET_CONFIG_FILE); - return stringBuilder.toString(); + Display.getDefault().asyncExec(() -> { + MessageLinkDialog.openWarning(Display.getDefault().getActiveShell(), + Messages.ToolsInitializationEimMissingMsgBoxTitle, + MessageFormat.format(Messages.ToolsInitializationEimMissingMsgBoxMessage, EimConstants.EIM_URL)); + + }); } } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java index 25f631a0f..5dbcf3f2b 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java @@ -16,118 +16,19 @@ public class Messages extends NLS { private static final String BUNDLE_NAME = "com.espressif.idf.ui.tools.messages"; //$NON-NLS-1$ - public static String UrlDescriptionText; - public static String SizeDescriptionText; - public static String SupportedTargetsDescriptionText; - public static String ToolsManagerShellHeading; - public static String ToolsTreeNameCol; - public static String ToolsTreeSizeCol; - public static String ToolsTreeStatusCol; - public static String DescriptionText; - public static String InstallToolsText; - public static String DeleteToolsText; - public static String Installed; - public static String DownloadFileText; - public static String ExtractionTextMessage; - public static String InstallingToolMessage; - public static String UpdatingPathMessage; - public static String PreviousToolMessage; - public static String UpdateToolPathMessage; - public static String SystemPathMessage; - public static String ExtractionCompletedMessage; - public static String RemovedPathMessage; - public static String ManageToolsInstallationShell_mntmNewItem_text; - public static String ManageToolsInstallationShell_tltmCheckItem_text; - public static String ManageToolsInstallationShell_label_text; - public static String SelectRecommended; - public static String FilterLabel; - public static String ManageToolsInstallation; - public static String ManageToolsInstallationDescription; - public static String ToolsManagerWizard; - public static String InstallPreRquisitePage; - public static String InstallPreRquisitePage_lblLog_text; - public static String InstallToolsPreReqPageDescription; - public static String FileSelectionDialogTitle; - public static String DirectorySelectionDialogMessage; - public static String GitLabel; - public static String PythonLabel; - public static String BrowseButton; - public static String InstallEspIdfPage; - public static String InstallEspIdfPageDescription; - public static String InstallEspIdfPage_Existing; - public static String InstallEspIdfPage_btnNew_text; - public static String InstallEspIdfPage_lblEspidfPath_text; - public static String InstallEspIdfPage_lblEspidfVersion_text; - public static String InstallEspIdfPage_btnDownload_text; - public static String SelectPythonVersion; - public static String InstallEspIdfPage_lblDownloadDirectory_text; - public static String SelectDownloadDir; - public static String GitCloningJobMsg; - public static String CloningCompletedMsg; - public static String IDFDownloadWizard_DownloadingMessage; - public static String IDFDownloadWizard_DownloadCompleteMsg; - public static String IDFDownloadWizard_DecompressingMsg; - public static String IDFDownloadWizard_DecompressingCompleted; - public static String IDFDownloadWizard_UpdatingIDFPathMessage; - public static String BtnCancel; - public static String OperationCancelledByUser; - public static String InstallToolsHandler_CopyingOpenOCDRules; - public static String InstallToolsHandler_OpenOCDRulesCopied; - public static String InstallToolsHandler_OpenOCDRulesCopyError; - public static String InstallToolsHandler_OpenOCDRulesCopyPaths; - public static String InstallToolsHandler_OpenOCDRulesCopyWarning; - public static String InstallToolsHandler_OpenOCDRulesCopyWarningMessage; - public static String InstallToolsHandler_OpenOCDRulesNotCopied; - public static String AbstractToolsHandler_ExecutingMsg; - public static String ToolAreadyPresent; - public static String ForceDownload_ToolTip; - public static String ForceDownload; - public static String InstallToolsProgressShell_lblNewLabel_text; - public static String InstallToolsProgressShell_text_text; - public static String InstallToolsProgressShell_txtTxtinstalledtool_text; - public static String RemovingDirectoryMessage; - public static String RemoveToolMessageBox; - public static String RemoveToolMessageBoxTitle; - public static String SelectAllButton; - public static String DeselectAllButton; - public static String FilterTargets; - public static String Warning; - public static String DirectorySelectionDialog_IDFDirLabel; - public static String DirectorySelectionDialog_SelectIDFDirMessage; - public static String NotInstalled; - public static String Available; - public static String ShowAvailableVersionsOnly; - public static String ForceDownloadToolTip; - public static String RemoveToolMessageBoxFinish; - public static String SelectAllButtonToolTip; - public static String DeselectAllButtonToolTip; - public static String SelectRecommendedToolTip; - public static String FilterTargetBoxToolTip; - public static String ShowAvailableVersionsOnlyToolTip; - public static String DeleteToolsTextToolTip; - public static String MissingToolsValidationMessage_A; - public static String MissingToolsValidationMessage_B; - public static String MissingToolsValidationLink; - - public static String EspIdfEditorTitle; public static String EspIdfManagerVersionCol; public static String EspIdfManagerLocationCol; - public static String EspIdfManagerStateCol; public static String EspIdfManagerActivateCol; - public static String EspIdfManagerAddToolsBtn; - public static String EspIdfManagerRemoveAllBtn; - public static String EspIdfManagerDeleteBtn; - public static String EspIdfManagerMessageBoxDeleteConfirmMessage; - public static String EspIdfManagerMessageBoxDeleteConfirmMessageTitle; - public static String EspIdfManagerMessageBoxDeleteAllConfirmMessage; - public static String EspIdfManagerMessageBoxDeleteAllConfirmMessageTitle; - - public static String IDFDownloadHandler_ESPIDFConfiguration; - public static String IDFDownloadHandler_DownloadPage_Title; - public static String IDFDownloadHandler_DownloadPageMsg; + public static String EspIdfManagerNameCol; public static String EspIdfManagerReloadBtnToolTip; - public static String EspIdfManagerDeleteBtnToolTip; + public static String IDFGuideLinkLabel_Text; + + public static String IDFToolsHandler_ToolsManagerConsole; + + public static String EimJsonChangedMsgTitle; + public static String EimJsonChangedMsgDetail; + public static String EimJsonStateChangedMsgDetail; static { diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsActivationJobListener.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/SetupToolsJobListener.java similarity index 70% rename from bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsActivationJobListener.java rename to bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/SetupToolsJobListener.java index 438e5e510..c292171b3 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsActivationJobListener.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/SetupToolsJobListener.java @@ -4,6 +4,7 @@ *******************************************************************************/ package com.espressif.idf.ui.tools; +import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.jobs.IJobChangeEvent; import org.eclipse.core.runtime.jobs.JobChangeAdapter; import org.eclipse.core.runtime.preferences.InstanceScope; @@ -14,25 +15,28 @@ import com.espressif.idf.core.logging.Logger; import com.espressif.idf.core.resources.OpenDialogListenerSupport; import com.espressif.idf.core.resources.PopupDialog; +import com.espressif.idf.core.tools.EimConstants; +import com.espressif.idf.core.tools.SetupToolsInIde; import com.espressif.idf.ui.UIPlugin; import com.espressif.idf.ui.tools.manager.pages.ESPIDFMainTablePage; -import com.espressif.idf.ui.update.InstallToolsHandler; /** - * Listener for {@link ToolsActivationJob} + * Listener for {@link SetupToolsInIde} * @author Ali Azam Rana * */ -public class ToolsActivationJobListener extends JobChangeAdapter +public class SetupToolsJobListener extends JobChangeAdapter { private ESPIDFMainTablePage espidfMainTablePage; + private SetupToolsInIde setupToolsInIde; - public ToolsActivationJobListener(ESPIDFMainTablePage espidfMainTablePage) + public SetupToolsJobListener(ESPIDFMainTablePage espidfMainTablePage, SetupToolsInIde setupToolsInIde) { this.espidfMainTablePage = espidfMainTablePage; + this.setupToolsInIde = setupToolsInIde; } - public ToolsActivationJobListener() + public SetupToolsJobListener() { } @@ -46,23 +50,21 @@ public void aboutToRun(IJobChangeEvent event) @Override public void done(IJobChangeEvent event) { - Display.getDefault().asyncExec(() -> { - if (espidfMainTablePage != null) - { - espidfMainTablePage.refreshEditorUI(); - } - }); - OpenDialogListenerSupport.getSupport().firePropertyChange(PopupDialog.ENABLE_LAUNCHBAR_EVENTS.name(), null, - null); - Preferences scopedPreferenceStore = InstanceScope.INSTANCE.getNode(UIPlugin.PLUGIN_ID); + + if (event.getResult().getSeverity() != IStatus.OK) + { + // Rollback all the changes + setupToolsInIde.rollback(); + } + if (event.getResult().isOK()) { - scopedPreferenceStore.putBoolean(InstallToolsHandler.INSTALL_TOOLS_FLAG, true); + scopedPreferenceStore.putBoolean(EimConstants.INSTALL_TOOLS_FLAG, true); } else { - scopedPreferenceStore.putBoolean(InstallToolsHandler.INSTALL_TOOLS_FLAG, false); + scopedPreferenceStore.putBoolean(EimConstants.INSTALL_TOOLS_FLAG, false); } try @@ -73,5 +75,14 @@ public void done(IJobChangeEvent event) { Logger.log(e); } + + Display.getDefault().asyncExec(() -> { + if (espidfMainTablePage != null) + { + espidfMainTablePage.refreshEditorUI(); + } + }); + OpenDialogListenerSupport.getSupport().firePropertyChange(PopupDialog.ENABLE_LAUNCHBAR_EVENTS.name(), null, + null); } } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsActivationJob.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsActivationJob.java deleted file mode 100644 index 63c0c994d..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsActivationJob.java +++ /dev/null @@ -1,213 +0,0 @@ -/******************************************************************************* - * Copyright 2024 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.tools; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardCopyOption; -import java.util.List; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.preferences.InstanceScope; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.MessageBox; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -import com.espressif.idf.core.IDFEnvironmentVariables; -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.toolchain.ESPToolChainManager; -import com.espressif.idf.core.tools.vo.IDFToolSet; -import com.espressif.idf.core.util.IDFUtil; -import com.espressif.idf.core.util.LspService; -import com.espressif.idf.core.util.StringUtil; -import com.espressif.idf.ui.UIPlugin; -import com.espressif.idf.ui.update.ExportIDFTools; -import com.espressif.idf.ui.update.Messages; - -/** - * Job to activate the provide {@link IDFToolSet} in the given ide environment - * - * @author Ali Azam Rana - * - */ -public class ToolsActivationJob extends ToolsJob -{ - public static final String INSTALL_TOOLS_FLAG = "INSTALL_TOOLS_FLAG"; //$NON-NLS-1$ - - public ToolsActivationJob(IDFToolSet idfToolSet, String pythonExecutablePath, String gitExecutablePath) - { - super("Tools Activation Job", null, null); - this.idfToolSet = idfToolSet; - } - - @Override - protected IStatus run(IProgressMonitor monitor) - { - if (idfToolSet == null) - { - return Status.error("IDF Tool Set Cannot be null"); - } - - // verify with export script to test if everything is okay with installation - - monitor.beginTask("Verifying if there are any changes to the installed tools", 5); - monitor.worked(1); - - ExportIDFTools exportIDFTools = new ExportIDFTools(); - IStatus status = exportIDFTools.getToolsExportOutputFromGivenIdfPath(idfToolSet.getSystemPythonExecutablePath(), - idfToolSet.getSystemGitExecutablePath(), console, errorConsoleStream, idfToolSet.getIdfLocation()); - if (status.getSeverity() == IStatus.ERROR) - { - return Status.error("INSTALL_AGAIN"); - } - monitor.worked(1); - - monitor.setTaskName("Exporting variables to eclipse"); - processExportCmdOutput(status.getMessage()); - setEnvVarsInEclipse(); - monitor.worked(1); - - monitor.setTaskName("Setting up toolchains and targets"); - setUpToolChainsAndTargets(); - monitor.worked(1); - - // post export operations like copying openocd rules may also need to setup with the python dependencies here as - // well like websocket-client - monitor.setTaskName(Messages.InstallToolsHandler_InstallingWebscoketMsg); - handleWebSocketClientInstall(); - monitor.worked(1); - - monitor.setTaskName("Setting OpenOCD rules"); - copyOpenOcdRules(); - monitor.worked(1); - - idfToolSet.setActive(true); - - toolSetConfigurationManager.export(idfToolSet); - console.println("Tools Activated"); - new LspService().updateClangdPath(); - Preferences scopedPreferenceStore = InstanceScope.INSTANCE.getNode(UIPlugin.PLUGIN_ID); - scopedPreferenceStore.putBoolean(INSTALL_TOOLS_FLAG, true); - try - { - scopedPreferenceStore.flush(); - } - catch (BackingStoreException e) - { - Logger.log(e); - } - - return Status.OK_STATUS; - } - - private void copyOpenOcdRules() - { - if (Platform.getOS().equals(Platform.OS_LINUX) - && !IDFUtil.getOpenOCDLocation().equalsIgnoreCase(StringUtil.EMPTY)) - { - console.println(Messages.InstallToolsHandler_CopyingOpenOCDRules); - // Copy the rules to the idf - StringBuilder pathToRules = new StringBuilder(); - pathToRules.append(IDFUtil.getOpenOCDLocation()); - pathToRules.append("/../share/openocd/contrib/60-openocd.rules"); //$NON-NLS-1$ - File rulesFile = new File(pathToRules.toString()); - if (rulesFile.exists()) - { - Path source = Paths.get(pathToRules.toString()); - Path target = Paths.get("/etc/udev/rules.d/60-openocd.rules"); //$NON-NLS-1$ - console.println(String.format(Messages.InstallToolsHandler_OpenOCDRulesCopyPaths, source.toString(), - target.toString())); - - Display.getDefault().syncExec(new Runnable() - { - @Override - public void run() - { - try - { - if (target.toFile().exists()) - { - MessageBox messageBox = new MessageBox(Display.getDefault().getActiveShell(), - SWT.ICON_WARNING | SWT.YES | SWT.NO); - messageBox.setText(Messages.InstallToolsHandler_OpenOCDRulesCopyWarning); - messageBox.setMessage(Messages.InstallToolsHandler_OpenOCDRulesCopyWarningMessage); - int response = messageBox.open(); - if (response == SWT.YES) - { - Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING); - } - else - { - console.println(Messages.InstallToolsHandler_OpenOCDRulesNotCopied); - return; - } - } - else - { - Files.copy(source, target); - } - - console.println(Messages.InstallToolsHandler_OpenOCDRulesCopied); - } - catch (IOException e) - { - Logger.log(e); - errorConsoleStream.println(Messages.InstallToolsHandler_OpenOCDRulesCopyError); - } - } - }); - } - } - } - - private void setUpToolChainsAndTargets() - { - IStatus status = loadTargetsAvailableFromIdfInCurrentToolSet(); - if (status.getSeverity() == IStatus.ERROR) - { - Logger.log("Unable to get IDF targets from current toolset"); - return; - } - - List targets = extractTargets(status.getMessage()); - ESPToolChainManager espToolChainManager = new ESPToolChainManager(); - espToolChainManager.removeLaunchTargetsNotPresent(targets); - espToolChainManager.removeCmakeToolChains(); - espToolChainManager.removeStdToolChains(); - espToolChainManager.configureToolChain(targets); - } - - private void setEnvVarsInEclipse() - { - if (idfToolSet == null) - throw new RuntimeException("Tools Cannot be null"); - - IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); - idfEnvironmentVariables.removeAllEnvVariables(); - idfToolSet.getEnvVars().forEach((key, value) -> { - if (value != null) - idfEnvironmentVariables.addEnvVariable(key, value); - }); - String path = replacePathVariable(idfToolSet.getEnvVars().get(IDFEnvironmentVariables.PATH)); - - idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.IDF_PATH, idfToolSet.getIdfLocation()); - idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.PATH, path); - idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.PYTHON_EXE_PATH, - idfToolSet.getSystemPythonExecutablePath()); - - idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.IDF_COMPONENT_MANAGER, "1"); - // IDF_MAINTAINER=1 to be able to build with the clang toolchain - idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.IDF_MAINTAINER, "1"); - IDFUtil.updateEspressifPrefPageOpenocdPath(); - } -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsInstallationJob.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsInstallationJob.java deleted file mode 100644 index 988624c55..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsInstallationJob.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright 2024 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.tools; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.eclipse.cdt.cmake.core.ICMakeToolChainFile; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.ui.console.MessageConsoleStream; - -import com.espressif.idf.core.IDFConstants; -import com.espressif.idf.core.IDFCorePlugin; -import com.espressif.idf.core.IDFEnvironmentVariables; -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.toolchain.ESPToolChainManager; -import com.espressif.idf.core.toolchain.ESPToolchain; -import com.espressif.idf.core.tools.vo.IDFToolSet; -import com.espressif.idf.ui.update.ExportIDFTools; -import com.espressif.idf.ui.update.Messages; - -/** - * Class to install the dependencies and any - * given tools for an idf with given {@link IDFToolSet} - * @author Ali Azam Rana - * - */ -public class ToolsInstallationJob extends ToolsJob -{ - public ToolsInstallationJob(String pythonExecutablePath, String gitExecutablePath, String idfPath) - { - super(Messages.InstallToolsHandler_InstallingToolsMsg, pythonExecutablePath, gitExecutablePath); - this.idfPath = idfPath; - this.idfToolSet.setIdfLocation(idfPath); - this.idfToolSet.setSystemGitExecutablePath(gitExecutablePath); - this.idfToolSet.setSystemPythonExecutablePath(pythonExecutablePath); - } - - @Override - protected IStatus run(IProgressMonitor monitor) - { - monitor.beginTask(Messages.InstallToolsHandler_ItWilltakeTimeMsg, 5); - monitor.worked(1); - Logger.log("" - ); - IStatus status = handleToolsInstall(); - if (status.getSeverity() == IStatus.ERROR) - { - return status; - } - - monitor.worked(1); - monitor.setTaskName(Messages.InstallToolsHandler_InstallingPythonMsg); - status = handleToolsInstallPython(console); - if (status.getSeverity() == IStatus.ERROR) - { - return status; - } - - monitor.worked(1); - - monitor.setTaskName(Messages.InstallToolsHandler_ExportingPathsMsg); - ExportIDFTools exportIDFTools = new ExportIDFTools(); - status = exportIDFTools.getToolsExportOutputFromGivenIdfPath(pythonExecutablePath, gitExecutablePath, console, - errorConsoleStream, idfPath); - if (status.getSeverity() == IStatus.ERROR) - { - return status; - } - - Logger.log(status.getMessage()); - processExportCmdOutput(status.getMessage()); - - monitor.worked(1); - - monitor.setTaskName(Messages.InstallToolsHandler_AutoConfigureToolchain); - ESPToolChainManager espToolChainManager = new ESPToolChainManager(); - String pathToLookForToolChains = idfToolSet.getEnvVars().get(IDFEnvironmentVariables.PATH); - String idfPath = idfToolSet.getEnvVars().get(IDFEnvironmentVariables.IDF_PATH); - try - { - List espToolChains = espToolChainManager - .getStdToolChains(Arrays.asList(pathToLookForToolChains.split(File.pathSeparator)), idfPath); - idfToolSet.setEspStdToolChains(espToolChains); - List cMakeToolChainFiles = espToolChainManager.getCmakeToolChains(idfPath); - idfToolSet.setEspCmakeToolChainFiles(cMakeToolChainFiles); - } - catch (CoreException e) - { - Logger.log(e); - logToConsole("Error Getting Toolchains", errorConsoleStream); - return IDFCorePlugin.errorStatus("Error Getting Toolchains", null); //$NON-NLS-1$ - } - - monitor.setTaskName("Loading Available Targets in IDF"); - - status = loadTargetsAvailableFromIdfInCurrentToolSet(); - if (status.getSeverity() == IStatus.ERROR) - { - return status; - } - - idfToolSet.setLaunchTargets(extractTargets(status.getMessage())); - - monitor.worked(1); - - monitor.setTaskName(Messages.InstallToolsHandler_InstallingWebscoketMsg); - handleWebSocketClientInstall(); - monitor.worked(1); - - console.println(Messages.InstallToolsHandler_ToolsCompleted); - - console.println("Writing to the configuration file"); - idfToolSet.setId(idfToolSet.hashCode()); - - toolSetConfigurationManager.export(idfToolSet); - - console.println(Messages.ToolsInstallationJobCompletedMessage); - return Status.OK_STATUS; - } - - private void logToConsole(String message, MessageConsoleStream stream) - { - try - { - stream.write(message); - } - catch (IOException e) - { - Logger.log(e); - } - } - - protected IStatus handleToolsInstall() - { - // idf_tools.py install all - List arguments = new ArrayList(); - arguments.add(IDFConstants.TOOLS_INSTALL_CMD); - arguments.add(IDFConstants.TOOLS_INSTALL_ALL_CMD); - - console.println(Messages.InstallToolsHandler_InstallingToolsMsg); - console.println(Messages.InstallToolsHandler_ItWilltakeTimeMsg); - return runCommand(arguments, console); - } - - protected IStatus handleToolsInstallPython(MessageConsoleStream console) - { - List arguments; - // idf_tools.py install-python-env - arguments = new ArrayList(); - arguments.add(IDFConstants.TOOLS_INSTALL_PYTHON_CMD); - return runCommand(arguments, console); - } - -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsJob.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsJob.java deleted file mode 100644 index 5fec36a23..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ToolsJob.java +++ /dev/null @@ -1,565 +0,0 @@ -/******************************************************************************* - * Copyright 2024 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.tools; - -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.osgi.util.NLS; -import org.eclipse.ui.console.MessageConsoleStream; - -import com.espressif.idf.core.IDFConstants; -import com.espressif.idf.core.IDFCorePlugin; -import com.espressif.idf.core.IDFCorePreferenceConstants; -import com.espressif.idf.core.IDFEnvironmentVariables; -import com.espressif.idf.core.ProcessBuilderFactory; -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.tools.ToolSetConfigurationManager; -import com.espressif.idf.core.tools.vo.IDFToolSet; -import com.espressif.idf.core.util.IDFUtil; -import com.espressif.idf.core.util.StringUtil; -import com.espressif.idf.ui.IDFConsole; -import com.espressif.idf.ui.InputStreamConsoleThread; -import com.espressif.idf.ui.UIPlugin; -import com.espressif.idf.ui.update.Messages; - -/** - * Parent class for all tools related activity - * any common methods must be added here - * The class was created to save - * code and split the operation of installation and activation in two - * @author Ali Azam Rana - * - */ -public abstract class ToolsJob extends Job -{ - - protected IDFConsole idfConsole; - protected MessageConsoleStream console; - protected MessageConsoleStream errorConsoleStream; - protected String pythonExecutablePath; - protected String gitExecutablePath; - protected IDFToolSet idfToolSet; - protected ToolSetConfigurationManager toolSetConfigurationManager; - protected String idfPath; - - public ToolsJob(String name, String pythonExecutablePath, String gitExecutablePath) - { - super(name); - this.pythonExecutablePath = pythonExecutablePath; - this.gitExecutablePath = gitExecutablePath; - idfToolSet = new IDFToolSet(); - toolSetConfigurationManager = new ToolSetConfigurationManager(); - activateIDFConsoleView(); - } - - protected void processExportCmdOutput(final String exportCmdOp) - { - // process export command output - final String[] exportEntries = exportCmdOp.split("\n"); //$NON-NLS-1$ - for (String entry : exportEntries) - { - entry = entry.replaceAll("\\r", ""); //$NON-NLS-1$ //$NON-NLS-2$ - if (entry.startsWith("Error")) - { - try - { - errorConsoleStream.write(entry); - } - catch (IOException e) - { - Logger.log(e); - } - } - String[] keyValue = entry.split("="); //$NON-NLS-1$ - if (keyValue.length == 2) // 0 - key, 1 - value - { - final String msg = MessageFormat.format("Key: {0} Value: {1}", keyValue[0], keyValue[1]); //$NON-NLS-1$ - Logger.log(msg); - String key = keyValue[0]; - String value = keyValue[1]; - if (idfToolSet.getEnvVars() == null) - { - idfToolSet.setEnvVars(new HashMap()); - } - - idfToolSet.getEnvVars().put(key, value); - } - - } - - idfToolSet.getEnvVars().put(IDFEnvironmentVariables.IDF_COMPONENT_MANAGER, "1"); //$NON-NLS-1$ - // IDF_MAINTAINER=1 to be able to build with the clang toolchain - idfToolSet.getEnvVars().put(IDFEnvironmentVariables.IDF_MAINTAINER, "1"); //$NON-NLS-1$ - if (!StringUtil.isEmpty(idfPath)) - { - idfToolSet.getEnvVars().put(IDFEnvironmentVariables.IDF_PATH, idfPath); - idfToolSet.setIdfLocation(idfPath); - } - - IStatus status = getIdfVersionFromIdfPy(); - String cmdOutput = status.getMessage(); - Pattern pattern = Pattern.compile("v(\\d+\\.\\d+\\.\\d+)"); //$NON-NLS-1$ - Matcher matcher = pattern.matcher(cmdOutput.toLowerCase()); - if (matcher.find()) - { - idfToolSet.setIdfVersion(matcher.group(1)); - } - else - { - idfToolSet.setIdfVersion(idfToolSet.getEnvVars().computeIfAbsent(IDFEnvironmentVariables.ESP_IDF_VERSION, k -> StringUtil.EMPTY)); - } - idfToolSet.getEnvVars().put(IDFEnvironmentVariables.ESP_IDF_VERSION, idfToolSet.getIdfVersion()); - - } - - protected String replacePathVariable(String value) - { - // Get system PATH - Map systemEnv = new HashMap<>(IDFUtil.getSystemEnv()); - String pathEntry = systemEnv.get("PATH"); //$NON-NLS-1$ - if (pathEntry == null) - { - pathEntry = systemEnv.get("Path"); // for Windows //$NON-NLS-1$ - if (pathEntry == null) // no idea - { - Logger.log(new Exception("No PATH found in the system environment variables")); //$NON-NLS-1$ - } - } - - if (!StringUtil.isEmpty(pathEntry)) - { - value = value.replace("$PATH", pathEntry); // macOS //$NON-NLS-1$ - value = value.replace("%PATH%", pathEntry); // Windows //$NON-NLS-1$ - } - return value; - } - - protected IStatus loadTargetsAvailableFromIdfInCurrentToolSet() - { - List arguments = new ArrayList(); - arguments.add(IDFConstants.IDF_LIST_TARGETS_CMD); - return runCommandIdfPyInIdfEnv(arguments, console); - } - - protected List extractTargets(String input) - { - List targets = new ArrayList(); - Pattern pattern = Pattern.compile("^esp32.*", Pattern.MULTILINE); - Matcher matcher = pattern.matcher(input); - while (matcher.find()) - { - targets.add(matcher.group()); - } - return targets; - } - - protected IStatus handleWebSocketClientInstall() - { - String websocketClient = "websocket-client"; //$NON-NLS-1$ - // pip install websocket-client - List arguments = new ArrayList(); - final String pythonEnvPath = pythonVirtualExecutablePath(idfToolSet); - if (pythonEnvPath == null || !new File(pythonEnvPath).exists()) - { - console.println(String.format("%s executable not found. Unable to run `%s -m pip install websocket-client`", //$NON-NLS-1$ - IDFConstants.PYTHON_CMD, IDFConstants.PYTHON_CMD)); - return IDFCorePlugin.errorStatus( - String.format("%s executable not found. Unable to run `%s -m pip install websocket-client`", //$NON-NLS-1$ - IDFConstants.PYTHON_CMD, IDFConstants.PYTHON_CMD), - null); - } - arguments.add(pythonEnvPath); - arguments.add("-m"); //$NON-NLS-1$ - arguments.add("pip"); //$NON-NLS-1$ - arguments.add("list"); //$NON-NLS-1$ - - ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); - - try - { - String cmdMsg = "Executing " + getCommandString(arguments); //$NON-NLS-1$ - if (console != null) - { - console.println(cmdMsg); - } - Logger.log(cmdMsg); - - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); - Logger.log(environment.toString()); - - IStatus status = processRunner.runInBackground(arguments, org.eclipse.core.runtime.Path.ROOT, environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), - IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ - if (errorConsoleStream != null) - { - errorConsoleStream.println("Unable to get the process status."); - } - return IDFCorePlugin.errorStatus("Unable to get the process status.", null); //$NON-NLS-1$ - } - - String cmdOutput = status.getMessage(); - if (cmdOutput.contains(websocketClient)) - { - return IDFCorePlugin.okStatus("websocket-client already installed", null); //$NON-NLS-1$ - } - - // websocket client not installed so installing it now. - arguments.remove(arguments.size() - 1); - arguments.add("install"); //$NON-NLS-1$ - arguments.add(websocketClient); - - status = processRunner.runInBackground(arguments, org.eclipse.core.runtime.Path.ROOT, environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), - IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ - if (errorConsoleStream != null) - { - errorConsoleStream.println("Unable to get the process status."); - } - return IDFCorePlugin.errorStatus("Unable to get the process status.", null); //$NON-NLS-1$ - } - - if (console != null) - { - console.println(status.getMessage()); - } - - return status; - } - catch (Exception e1) - { - Logger.log(IDFCorePlugin.getPlugin(), e1); - if (errorConsoleStream != null) - { - errorConsoleStream.println(e1.getLocalizedMessage()); - } - return IDFCorePlugin.errorStatus(e1.getLocalizedMessage(), e1); // $NON-NLS-1$; - } - } - - protected String pythonVirtualExecutablePath(IDFToolSet idfToolSet) - { - String pythonVirtualPath = idfToolSet.getEnvVars().get(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH); - StringBuilder pythonVirtualExePath = new StringBuilder(); - pythonVirtualExePath.append(pythonVirtualPath); - pythonVirtualExePath.append("/"); //$NON-NLS-1$ - if (Platform.getOS().equals(Platform.OS_WIN32)) - { - pythonVirtualExePath.append("Scripts"); //$NON-NLS-1$ - pythonVirtualExePath.append("/"); //$NON-NLS-1$ - pythonVirtualExePath.append("python.exe"); //$NON-NLS-1$ - } - else - { - pythonVirtualExePath.append("bin"); //$NON-NLS-1$ - pythonVirtualExePath.append("/"); //$NON-NLS-1$ - pythonVirtualExePath.append("python"); //$NON-NLS-1$ - } - - - return pythonVirtualExePath.toString(); - } - - - private String getCommandString(List arguments) - { - StringBuilder builder = new StringBuilder(); - arguments.forEach(entry -> builder.append(entry + " ")); //$NON-NLS-1$ - - return builder.toString().trim(); - } - - protected void activateIDFConsoleView() - { - idfConsole = new IDFConsole(); - console = idfConsole.getConsoleStream(Messages.IDFToolsHandler_ToolsManagerConsole, null, false, true); - errorConsoleStream = idfConsole.getConsoleStream(Messages.IDFToolsHandler_ToolsManagerConsole, null, true, - true); - } - - protected IStatus getIdfVersionFromIdfPy() - { - List arguments = new ArrayList(); - arguments.add("--version"); - return runCommandIdfPyInIdfEnv(arguments, console); - } - - /** - * Append the git directory to the existing CDT build environment PATH variable - * - * @param path CDT build environment PATH - * @param gitExecutablePath - * @return PATH value with git appended - */ - protected String appendGitToPath(String path, String gitExecutablePath) - { - IPath gitPath = new Path(gitExecutablePath); - if (!gitPath.toFile().exists()) - { - Logger.log(NLS.bind("{0} doesn't exist", gitExecutablePath)); //$NON-NLS-1$ - return path; - } - - String gitDir = gitPath.removeLastSegments(1).toOSString(); // ../bin/git - if (!StringUtil.isEmpty(path) && !path.contains(gitDir)) // Git not found on the CDT build PATH environment - { - return path.concat(";").concat(gitDir); // append git path //$NON-NLS-1$ - } - return path; - } - - protected IStatus runCommandIdfPyInIdfEnv(List arguments, MessageConsoleStream console) - { - ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); - StringBuilder output = new StringBuilder(); - int waitCount = 10; - try - { - arguments.add(0, pythonVirtualExecutablePath(idfToolSet)); - arguments.add(1, IDFUtil.getIDFPythonScriptFile(idfToolSet.getIdfLocation()).getAbsolutePath()); - - String cmdMsg = Messages.AbstractToolsHandler_ExecutingMsg + " " + getCommandString(arguments); //$NON-NLS-1$ - console.println(cmdMsg); - Logger.log(cmdMsg); - - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); - Logger.log(environment.toString()); - environment.put("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ - loadIdfPathWithSystemPath(environment); - environment.remove(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH); - environment.remove(IDFEnvironmentVariables.ESP_IDF_VERSION); - environment.remove(IDFEnvironmentVariables.IDF_PATH); - environment.remove(IDFEnvironmentVariables.OPENOCD_SCRIPTS); - - if (gitExecutablePath != null) - { - addPathToEnvironmentPath(environment, gitExecutablePath); - } - Process process = processRunner.run(arguments, org.eclipse.core.runtime.Path.ROOT, environment); - BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); - String line; - while ((line = reader.readLine()) != null) - { - output.append(line).append(System.lineSeparator()); - } - - while (process.isAlive() && waitCount > 0) - { - try - { - Thread.sleep(300); - } - catch (InterruptedException e) - { - Logger.log(e); - } - waitCount--; - } - - if (waitCount == 0) - { - console.println("Process possibly stuck"); - Logger.log("Process possibly stuck"); - return Status.CANCEL_STATUS; - } - - IStatus status = new Status(process.exitValue() == 0 ? IStatus.OK : IStatus.ERROR, UIPlugin.PLUGIN_ID, - process.exitValue(), output.toString(), null); - if (status.getSeverity() == IStatus.ERROR) - { - errorConsoleStream.print( - status.getException() != null ? status.getException().getMessage() : status.getMessage()); - } - console.println(status.getMessage()); - console.println(); - - return status; - } - catch (Exception e1) - { - Logger.log(IDFCorePlugin.getPlugin(), e1); - return IDFCorePlugin.errorStatus(e1.getMessage(), e1); - } - } - - private void addPathToEnvironmentPath(Map environment, String gitExecutablePath) - { - IPath gitPath = new org.eclipse.core.runtime.Path(gitExecutablePath); - if (gitPath.toFile().exists()) - { - String gitDir = gitPath.removeLastSegments(1).toOSString(); - String path1 = environment.get("PATH"); //$NON-NLS-1$ - String path2 = environment.get("Path"); //$NON-NLS-1$ - if (!StringUtil.isEmpty(path1) && !path1.contains(gitDir)) // Git not found on the PATH environment - { - path1 = gitDir.concat(";").concat(path1); //$NON-NLS-1$ - environment.put("PATH", path1); //$NON-NLS-1$ - } - else if (!StringUtil.isEmpty(path2) && !path2.contains(gitDir)) // Git not found on the Path environment - { - path2 = gitDir.concat(";").concat(path2); //$NON-NLS-1$ - environment.put("Path", path2); //$NON-NLS-1$ - } - } - } - - private void loadIdfPathWithSystemPath(Map systemEnv) - { - String idfExportPath = idfToolSet.getEnvVars().get(IDFEnvironmentVariables.PATH); - String pathVar = "PATH"; // for Windows //$NON-NLS-1$ - String pathEntry = systemEnv.get(pathVar); // $NON-NLS-1$ - if (pathEntry == null) - { - pathVar = "Path"; //$NON-NLS-1$ - pathEntry = systemEnv.get(pathVar); - if (pathEntry == null) // no idea - { - Logger.log(new Exception("No PATH found in the system environment variables")); //$NON-NLS-1$ - } - } - - if (!StringUtil.isEmpty(pathEntry)) - { - idfExportPath = idfExportPath.replace("$PATH", pathEntry); // macOS //$NON-NLS-1$ - idfExportPath = idfExportPath.replace("%PATH%", pathEntry); // Windows //$NON-NLS-1$ - } - systemEnv.put(pathVar, idfExportPath); - for (Entry entry : idfToolSet.getEnvVars().entrySet()) - { - if (entry.getKey().equals(IDFEnvironmentVariables.PATH)) - continue; - - systemEnv.put(entry.getKey(), entry.getValue()); - } - } - - protected IStatus runCommand(List arguments, MessageConsoleStream console) - { - ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); - - try - { - // insert python.sh/exe path and idf_tools.py - arguments.add(0, pythonExecutablePath); - arguments.add(1, IDFUtil.getIDFToolsScriptFile(idfToolSet.getIdfLocation()).getAbsolutePath()); - - String cmdMsg = Messages.AbstractToolsHandler_ExecutingMsg + " " + getCommandString(arguments); //$NON-NLS-1$ - console.println(cmdMsg); - Logger.log(cmdMsg); - - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); - Logger.log(environment.toString()); - environment.put("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ - environment.put("IDF_GITHUB_ASSETS", //$NON-NLS-1$ - Platform.getPreferencesService().getString(IDFCorePlugin.PLUGIN_ID, - IDFCorePreferenceConstants.IDF_GITHUB_ASSETS, - IDFCorePreferenceConstants.IDF_GITHUB_ASSETS_DEFAULT_GLOBAL, null)); - - environment.put("PIP_EXTRA_INDEX_URL", //$NON-NLS-1$ - Platform.getPreferencesService().getString(IDFCorePlugin.PLUGIN_ID, - IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL, - IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL_DEFAULT_GLOBAL, null)); - - if (gitExecutablePath != null) - { - addPathToEnvironmentPath(environment, gitExecutablePath); - } - Process process = processRunner.run(arguments, org.eclipse.core.runtime.Path.ROOT, environment); - IStatus status = processData(process); - console.println(); - - return IDFCorePlugin.okStatus(status.getMessage(), null); - } - catch (Exception e1) - { - Logger.log(IDFCorePlugin.getPlugin(), e1); - return IDFCorePlugin.errorStatus(e1.getMessage(), e1); - } - } - - private IStatus processData(Process process) - { - - InputStream inputStream = process.getInputStream(); - InputStream errorStream = process.getErrorStream(); - - InputStreamConsoleThread readerThread = null; - InputStreamConsoleThread errorThread = null; - try - { - - readerThread = new InputStreamConsoleThread(inputStream, console); - errorThread = new InputStreamConsoleThread(errorStream, console); - - readerThread.start(); - errorThread.start(); - - // This will wait till the process is done. - int exitValue = process.waitFor(); - - readerThread.interrupt(); - errorThread.interrupt(); - readerThread.join(); - errorThread.join(); - - if (exitValue == 0) - { - return Status.OK_STATUS; - } - - return new Status(IStatus.ERROR, IDFCorePlugin.PLUGIN_ID, "Error"); //$NON-NLS-1$ - - } - catch (InterruptedException e) - { - try - { - if (readerThread != null) - { - readerThread.interrupt(); - } - if (errorThread != null) - { - errorThread.interrupt(); - } - if (readerThread != null) - { - readerThread.join(); - } - if (errorThread != null) - { - errorThread.join(); - } - } - catch (InterruptedException e1) - { - // ignore - } - return new Status(IStatus.ERROR, IDFCorePlugin.PLUGIN_ID, e.getMessage(), e); - } - } - -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/ESPIDFManagerEditor.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/ESPIDFManagerEditor.java index d727d615c..a004708fe 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/ESPIDFManagerEditor.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/ESPIDFManagerEditor.java @@ -53,8 +53,13 @@ public boolean isSaveAsAllowed() @Override public void createPartControl(Composite parent) { - ESPIDFMainTablePage espidfMainTablePage = ESPIDFMainTablePage.getInstance(); + ESPIDFMainTablePage espidfMainTablePage = ESPIDFMainTablePage + .getInstance(((EimEditorInput) getEditorInput()).getEimJson()); espidfMainTablePage.createPage(parent); + if (((EimEditorInput) getEditorInput()).isFirstStartup()) + { + espidfMainTablePage.setupInitialEspIdf(); + } } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/EimEditorInput.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/EimEditorInput.java new file mode 100644 index 000000000..8b65e7539 --- /dev/null +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/EimEditorInput.java @@ -0,0 +1,93 @@ +package com.espressif.idf.ui.tools.manager; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IPersistableElement; + +import com.espressif.idf.core.tools.vo.EimJson; + +public class EimEditorInput implements IEditorInput +{ + private EimJson eimJson; + private boolean firstStartup; + private String FILE_NAME = "idf_eim.json"; //$NON-NLS-1$ + + public EimEditorInput(EimJson eimJson) + { + this.eimJson = eimJson; + } + + public EimJson getEimJson() + { + return eimJson; + } + + @Override + public T getAdapter(Class adapter) + { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean exists() + { + return true; + } + + @Override + public ImageDescriptor getImageDescriptor() + { + return null; + } + + @Override + public String getName() + { + return null; + } + + @Override + public IPersistableElement getPersistable() + { + return null; + } + + @Override + public String getToolTipText() + { + return null; + } + + public boolean isFirstStartup() + { + return firstStartup; + } + + public void setFirstStartup(boolean firstStartup) + { + this.firstStartup = firstStartup; + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + { + return true; + } + if (obj == null || getClass() != obj.getClass()) + { + return false; + } + EimEditorInput that = (EimEditorInput) obj; + return FILE_NAME.equals(that.FILE_NAME); + } + + @Override + public int hashCode() + { + return FILE_NAME.hashCode(); + } + +} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java index 76df9e544..3e27a4c43 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java @@ -4,9 +4,10 @@ *******************************************************************************/ package com.espressif.idf.ui.tools.manager.pages; -import java.text.MessageFormat; +import java.io.IOException; import java.util.List; +import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.jface.layout.TableColumnLayout; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ColumnLabelProvider; @@ -16,7 +17,6 @@ import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerCell; import org.eclipse.jface.viewers.ViewerComparator; -import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.TableEditor; import org.eclipse.swt.events.SelectionAdapter; @@ -30,18 +30,23 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.MessageBox; +import org.eclipse.swt.widgets.Link; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; +import org.eclipse.ui.console.MessageConsoleStream; +import org.osgi.service.prefs.Preferences; -import com.espressif.idf.core.tools.ToolSetConfigurationManager; -import com.espressif.idf.core.tools.vo.IDFToolSet; -import com.espressif.idf.core.util.IDFUtil; +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.EimConstants; +import com.espressif.idf.core.tools.EimIdfConfiguratinParser; +import com.espressif.idf.core.tools.SetupToolsInIde; +import com.espressif.idf.core.tools.util.ToolsUtility; +import com.espressif.idf.core.tools.vo.EimJson; +import com.espressif.idf.core.tools.vo.IdfInstalled; +import com.espressif.idf.ui.IDFConsole; import com.espressif.idf.ui.UIPlugin; -import com.espressif.idf.ui.install.IDFNewToolsWizard; import com.espressif.idf.ui.tools.Messages; -import com.espressif.idf.ui.tools.ToolsActivationJob; -import com.espressif.idf.ui.tools.ToolsActivationJobListener; +import com.espressif.idf.ui.tools.SetupToolsJobListener; /** * Main UI class for all listing and interacting with the tools @@ -52,18 +57,19 @@ public class ESPIDFMainTablePage { private Composite container; private TableViewer tableViewer; - private ToolSetConfigurationManager toolSetConfigurationManager; private ColumnViewerComparator comparator; private TableViewerColumn versionColumn; private TableViewerColumn locationColumn; private TableViewerColumn activateColumn; private TableViewerColumn removeColumn; + private TableViewerColumn nameColumn; + private TableColumnLayout tableColumnLayout; private Composite tableComposite; - private List idfToolSets; - private Button removeAllButton; + private List idfInstalledList; + private static EimJson eimJson; + private EimIdfConfiguratinParser eimIdfConfiguratinParser; - private static final String REMOVE_ICON = "icons/tools/delete.png"; //$NON-NLS-1$ private static final String RELOAD_ICON = "icons/tools/reload.png"; //$NON-NLS-1$ private static final String IDF_TOOL_SET_BTN_KEY = "IDFToolSet"; //$NON-NLS-1$ @@ -71,29 +77,67 @@ public class ESPIDFMainTablePage private ESPIDFMainTablePage() { + eimIdfConfiguratinParser = new EimIdfConfiguratinParser(); } - public static ESPIDFMainTablePage getInstance() + public static ESPIDFMainTablePage getInstance(EimJson eimJson) { if (espidfMainTablePage == null) { espidfMainTablePage = new ESPIDFMainTablePage(); } + ESPIDFMainTablePage.eimJson = eimJson; return espidfMainTablePage; } public Composite createPage(Composite composite) { - toolSetConfigurationManager = new ToolSetConfigurationManager(); - idfToolSets = toolSetConfigurationManager.getIdfToolSets(true); + idfInstalledList = eimJson != null ? eimJson.getIdfInstalled() : null; container = new Composite(composite, SWT.NONE); final int numColumns = 2; GridLayout gridLayout = new GridLayout(numColumns, false); container.setLayout(gridLayout); + createGuideLink(container); createIdfTable(container); return container; } + + private void createGuideLink(Composite composite) + { + Link guideLink = new Link(composite, SWT.WRAP); + guideLink.setText(Messages.IDFGuideLinkLabel_Text); + guideLink.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1)); + guideLink.addListener(SWT.Selection, e -> { + try + { + java.awt.Desktop.getDesktop().browse(new java.net.URI( + "https://dl.espressif.com/dl/esp-idf/support-periods.svg")); + } + catch (Exception ex) + { + Logger.log(ex); + } + }); + } + + public void setupInitialEspIdf() + { + if (idfInstalledList != null && idfInstalledList.size() == 1) + { + // activate the only available esp-idf first check if its not already active + Preferences scopedPreferenceStore = InstanceScope.INSTANCE.getNode(UIPlugin.PLUGIN_ID); + if (!scopedPreferenceStore.getBoolean(EimConstants.INSTALL_TOOLS_FLAG, false)) + { + SetupToolsInIde setupToolsInIde = new SetupToolsInIde(idfInstalledList.get(0), eimJson, + getConsoleStream(true), getConsoleStream(false)); + SetupToolsJobListener toolsActivationJobListener = new SetupToolsJobListener(ESPIDFMainTablePage.this, + setupToolsInIde); + setupToolsInIde.addJobChangeListener(toolsActivationJobListener); + setupToolsInIde.schedule(); + } + } + } public void refreshEditorUI() { @@ -126,23 +170,21 @@ public void refreshEditorUI() item.setData(EDITOR_KEY_LAST, null); } } - toolSetConfigurationManager.setReload(true); - idfToolSets = toolSetConfigurationManager.getIdfToolSets(true); + try + { + eimJson = eimIdfConfiguratinParser.getEimJson(true); + } + catch (IOException e) + { + Logger.log(e); + } + + idfInstalledList = eimJson.getIdfInstalled(); setupColumns(); - tableViewer.setInput(idfToolSets); + tableViewer.setInput(idfInstalledList); tableViewer.getControl().requestLayout(); tableViewer.refresh(); container.redraw(); - toolSetConfigurationManager.setReload(false); - - if (idfToolSets == null || idfToolSets.isEmpty()) - { - removeAllButton.setEnabled(false); - } - else - { - removeAllButton.setEnabled(true); - } } private Composite createIdfTable(Composite parent) @@ -173,7 +215,7 @@ private Composite createIdfTable(Composite parent) e.height = 30; }); - tableViewer.setInput(toolSetConfigurationManager.getIdfToolSets(true)); + tableViewer.setInput(idfInstalledList); table.layout(); // Composite for the "Add" button Composite buttonComposite = new Composite(idfToolsGroup, SWT.NONE); @@ -181,63 +223,6 @@ private Composite createIdfTable(Composite parent) buttonCompositeGridData.verticalAlignment = SWT.TOP; // Aligns the button composite at the top buttonComposite.setLayoutData(buttonCompositeGridData); buttonComposite.setLayout(new GridLayout(1, true)); - - // Creating the "Add" button - Button addButton = new Button(buttonComposite, SWT.PUSH); - addButton.setText(Messages.EspIdfManagerAddToolsBtn); - GridData addButtonGridData = new GridData(SWT.FILL, SWT.CENTER, true, false); - addButton.setLayoutData(addButtonGridData); - addButton.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(SelectionEvent e) - { - IDFNewToolsWizard wizard = new IDFNewToolsWizard(ESPIDFMainTablePage.this); - wizard.setWindowTitle(Messages.IDFDownloadHandler_ESPIDFConfiguration); - WizardDialog wizDialog = new WizardDialog(container.getShell(), wizard); - wizDialog.create(); - - wizDialog.setTitle(Messages.IDFDownloadHandler_DownloadPage_Title); - wizDialog.setMessage(Messages.IDFDownloadHandler_DownloadPageMsg); - wizDialog.getShell().setSize(Math.max(850, wizDialog.getShell().getSize().x), 550); - - wizDialog.open(); - } - }); - - removeAllButton = new Button(buttonComposite, SWT.PUSH); - removeAllButton.setText(Messages.EspIdfManagerRemoveAllBtn); - removeAllButton.addSelectionListener(new SelectionAdapter() - { - @Override - public void widgetSelected(SelectionEvent e) - { - MessageBox messageBox = new MessageBox(Display.getDefault().getActiveShell(), - SWT.ICON_WARNING | SWT.YES | SWT.NO); - messageBox.setMessage(Messages.EspIdfManagerMessageBoxDeleteAllConfirmMessage); - messageBox.setText(Messages.EspIdfManagerMessageBoxDeleteAllConfirmMessageTitle); - int response = messageBox.open(); - if (response == SWT.YES) - { - for(IDFToolSet idfToolSet : idfToolSets) - { - toolSetConfigurationManager.delete(idfToolSet); - } - refreshEditorUI(); - } - } - }); - - GridData removeAllButtonGridData = new GridData(SWT.FILL, SWT.CENTER, true, false); - removeAllButton.setLayoutData(removeAllButtonGridData); - if (idfToolSets == null || idfToolSets.isEmpty()) - { - removeAllButton.setEnabled(false); - } - else - { - removeAllButton.setEnabled(true); - } return idfToolsGroup; } @@ -263,6 +248,11 @@ private void disposeColumns() { removeColumn.getColumn().dispose(); } + + if (nameColumn != null && nameColumn.getColumn() != null) + { + nameColumn.getColumn().dispose(); + } } private void setupColumns() @@ -280,6 +270,12 @@ private void setupColumns() versionColumn.setLabelProvider(new IdfManagerTableColumnLabelProvider()); setComparatorForCols(versionColumn, colIndex++); tableColumnLayout.setColumnData(versionColumn.getColumn(), new ColumnWeightData(3, 50, true)); + + nameColumn = new TableViewerColumn(tableViewer, SWT.NONE); + nameColumn.getColumn().setText(Messages.EspIdfManagerNameCol); + nameColumn.setLabelProvider(new IdfManagerTableColumnLabelProvider()); + setComparatorForCols(nameColumn, colIndex++); + tableColumnLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(3, 50, true)); locationColumn = new TableViewerColumn(tableViewer, SWT.NONE); locationColumn.getColumn().setText(Messages.EspIdfManagerLocationCol); @@ -318,19 +314,6 @@ public void widgetSelected(SelectionEvent e) } - private void performDeleteOperation(IDFToolSet idfToolSet) - { - MessageBox messageBox = new MessageBox(Display.getDefault().getActiveShell(), - SWT.ICON_WARNING | SWT.YES | SWT.NO); - messageBox.setMessage(MessageFormat.format(Messages.EspIdfManagerMessageBoxDeleteConfirmMessage, idfToolSet.getIdfVersion())); - messageBox.setText(Messages.EspIdfManagerMessageBoxDeleteConfirmMessageTitle); - int response = messageBox.open(); - if (response == SWT.YES) - { - toolSetConfigurationManager.delete(idfToolSet); - } - } - private class IdfManagerTableColumnLabelProvider extends ColumnLabelProvider { private Color activeBackgroundColor; @@ -344,10 +327,10 @@ private IdfManagerTableColumnLabelProvider() @Override public Color getBackground(Object element) { - if (element instanceof IDFToolSet) + if (element instanceof IdfInstalled) { - IDFToolSet idfToolSet = (IDFToolSet) element; - if (idfToolSet.isActive()) + IdfInstalled idfInstalled = (IdfInstalled) element; + if (ToolsUtility.isIdfInstalledActive(idfInstalled)) { // Return the green color for active rows return activeBackgroundColor; @@ -384,25 +367,34 @@ else if (isLastCol) private void updateDataIntoCells(ViewerCell cell) { - if ((!(cell.getElement() instanceof IDFToolSet)) && cell.getElement() == null) + if ((!(cell.getElement() instanceof IdfInstalled)) && cell.getElement() == null) return; - IDFToolSet idfToolSet = (IDFToolSet) cell.getElement(); + IdfInstalled idfInstalled = (IdfInstalled) cell.getElement(); switch (cell.getColumnIndex()) { case 0: break; case 1: - cell.setText(idfToolSet.getIdfVersion()); + cell.setText(getIdfVersion(idfInstalled)); break; case 2: - cell.setText(idfToolSet.getIdfLocation()); + cell.setText(idfInstalled.getName()); break; case 3: + cell.setText(idfInstalled.getPath()); + break; + case 4: break; } } + private String getIdfVersion(IdfInstalled idfInstalled) + { + String version = ToolsUtility.getIdfVersion(idfInstalled, eimJson.getGitPath()); + return version; + } + private void createButtonsForFirstCol(ViewerCell cell) { TableItem item = (TableItem) cell.getItem(); @@ -417,18 +409,17 @@ private void createButtonsForFirstCol(ViewerCell cell) Composite buttonComposite = new Composite(tableViewer.getTable(), SWT.NONE); buttonComposite.setLayout(new FillLayout()); item.setData(EDITOR_KEY, editor); - IDFToolSet idfToolSet = (IDFToolSet) cell.getElement(); + IdfInstalled idfInstalled = (IdfInstalled) cell.getElement(); Button setActiveButton = new Button(buttonComposite, SWT.RADIO); - setActiveButton.setSelection(idfToolSet.isActive()); - setActiveButton.setData(IDF_TOOL_SET_BTN_KEY, idfToolSet); + setActiveButton.setSelection(ToolsUtility.isIdfInstalledActive(idfInstalled)); + setActiveButton.setData(IDF_TOOL_SET_BTN_KEY, idfInstalled); setActiveButton.addListener(SWT.Selection, e -> { Button btn = (Button) e.widget; - ToolsActivationJob toolsActivationJob = new ToolsActivationJob((IDFToolSet) btn.getData(IDF_TOOL_SET_BTN_KEY), - null, null); - ToolsActivationJobListener toolsActivationJobListener = new ToolsActivationJobListener( - ESPIDFMainTablePage.this); - toolsActivationJob.addJobChangeListener(toolsActivationJobListener); - toolsActivationJob.schedule(); + SetupToolsInIde setupToolsInIde = new SetupToolsInIde(idfInstalled, eimJson, getConsoleStream(true), getConsoleStream(false)); + SetupToolsJobListener toolsActivationJobListener = new SetupToolsJobListener( + ESPIDFMainTablePage.this, setupToolsInIde); + setupToolsInIde.addJobChangeListener(toolsActivationJobListener); + setupToolsInIde.schedule(); btn.setEnabled(false); }); @@ -452,24 +443,25 @@ private void createButtonsForLastCol(ViewerCell cell) buttonComposite.setLayout(fillLayout); buttonComposite.redraw(); item.setData(EDITOR_KEY, editor); - IDFToolSet idfToolSet = (IDFToolSet) cell.getElement(); + IdfInstalled idfInstalled = (IdfInstalled) cell.getElement(); int buttonHeight = Math.min(cellBounds.height - 6, 30); - if (idfToolSet.isActive()) + if (ToolsUtility.isIdfInstalledActive(idfInstalled)) { Button reloadButton = new Button(buttonComposite, SWT.PUSH | SWT.FLAT); reloadButton.pack(); - reloadButton.setData(IDF_TOOL_SET_BTN_KEY, idfToolSet); + reloadButton.setData(IDF_TOOL_SET_BTN_KEY, idfInstalled); reloadButton.setImage(UIPlugin.getImage(RELOAD_ICON)); reloadButton.setToolTipText(Messages.EspIdfManagerReloadBtnToolTip); reloadButton.addListener(SWT.Selection, e -> { Button btn = (Button) e.widget; - IDFToolSet selectedToolSet = (IDFToolSet) btn.getData(IDF_TOOL_SET_BTN_KEY); - ToolsActivationJob toolsActivationJob = new ToolsActivationJob(selectedToolSet, IDFUtil.getPythonExecutable(), IDFUtil.getGitExecutablePathFromSystem()); - ToolsActivationJobListener toolsActivationJobListener = new ToolsActivationJobListener(ESPIDFMainTablePage.this); - toolsActivationJob.addJobChangeListener(toolsActivationJobListener); - toolsActivationJob.schedule(); + IdfInstalled selectedToolSet = (IdfInstalled) btn.getData(IDF_TOOL_SET_BTN_KEY); + SetupToolsInIde setupToolsInIde = new SetupToolsInIde(selectedToolSet, eimJson, getConsoleStream(true), getConsoleStream(false)); + SetupToolsJobListener toolsActivationJobListener = new SetupToolsJobListener( + ESPIDFMainTablePage.this, setupToolsInIde); + setupToolsInIde.addJobChangeListener(toolsActivationJobListener); + setupToolsInIde.schedule(); }); reloadButton.setSize(cellBounds.width, buttonHeight); @@ -477,26 +469,10 @@ private void createButtonsForLastCol(ViewerCell cell) reloadButton.redraw(); } - Button removeButton = new Button(buttonComposite, SWT.PUSH | SWT.FLAT); - removeButton.pack(); - removeButton.setData(IDF_TOOL_SET_BTN_KEY, idfToolSet); - removeButton.setImage(UIPlugin.getImage(REMOVE_ICON)); - removeButton.setToolTipText(Messages.EspIdfManagerDeleteBtnToolTip); - removeButton.addListener(SWT.Selection, e -> { - Button btn = (Button) e.widget; - IDFToolSet selectedToolSet = (IDFToolSet) btn.getData(IDF_TOOL_SET_BTN_KEY); - performDeleteOperation(selectedToolSet); - refreshEditorUI(); - }); - removeButton.setSize(cellBounds.width, buttonHeight); - removeButton.redraw(); - editor.grabHorizontal = true; editor.grabVertical = true; editor.horizontalAlignment = SWT.CENTER; editor.verticalAlignment = SWT.CENTER; - editor.minimumHeight = removeButton.getSize().y; - editor.minimumWidth = removeButton.getSize().x; editor.setEditor(buttonComposite, item, cell.getColumnIndex()); buttonComposite.layout(true, true); buttonComposite.redraw(); @@ -514,6 +490,12 @@ public void dispose() super.dispose(); } } + + private MessageConsoleStream getConsoleStream(boolean errorStream) + { + IDFConsole idfConsole = new IDFConsole(); + return idfConsole.getConsoleStream(Messages.IDFToolsHandler_ToolsManagerConsole, null, errorStream, true); + } private class ColumnViewerComparator extends ViewerComparator { @@ -545,20 +527,20 @@ public void setColumn(int column) @Override public int compare(Viewer viewer, Object e1, Object e2) { - IDFToolSet p1 = (IDFToolSet) e1; - IDFToolSet p2 = (IDFToolSet) e2; + IdfInstalled p1 = (IdfInstalled) e1; + IdfInstalled p2 = (IdfInstalled) e2; int rc = 0; switch (propertyIndex) { case 0: - rc = p1.getIdfVersion().compareTo(p2.getIdfVersion()); + rc = p1.getName().compareTo(p2.getName()); break; case 1: - rc = p1.getIdfLocation().compareTo(p2.getIdfLocation()); + rc = p1.getPath().compareTo(p2.getPath()); break; case 2: - Boolean p1State = p1.isActive(); - Boolean p2State = p2.isActive(); + Boolean p1State = ToolsUtility.isIdfInstalledActive(p1); + Boolean p2State = ToolsUtility.isIdfInstalledActive(p2); rc = p1State.compareTo(p2State); break; default: diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties index 8d40d45dd..6a42ecb88 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties @@ -1,132 +1,12 @@ -#Eclipse modern messages class -#Wed May 18 13:39:42 CEST 2022 -SizeDescriptionText=Size: -RemoveToolMessageBox=Do you want to delete the selected tools? -RemoveToolMessageBoxFinish=Do you want to continue or finish the changes? -SystemPathMessage=System Path: -ToolsTreeSizeCol=Size (MB) -FilterTargets=Filter Chips -UrlDescriptionText=URL: -ToolsTreeNameCol=Name -Available=Available -InstallPreRquisitePage=Install Prerequisites -ManageToolsInstallationDescription=Here you can install tools available with the selected IDF version -InstallEspIdfPage_lblEspidfPath_text=ESP-IDF Path: -ManageToolsInstallation=Tools Installation -InstallToolsText=Install Tools -InstallEspIdfPage_lblEspidfVersion_text=ESP-IDF Version: -InstallEspIdfPage_btnDownload_text=Download -Warning=Warning -ExtractionTextMessage=Extracting file: -PreviousToolMessage=Previous Tool Path: -DeselectAllButton=Deselect All -DeselectAllButtonToolTip=Deselect all tools -GitLabel=Git: -DirectorySelectionDialog_IDFDirLabel=ESP-IDF Directory: -ToolsManagerShellHeading=Manage Tools Installation -ToolsManagerWizard=Tools Installation Wizard -InstallEspIdfPage_Existing=Existing -InstallEspIdfPageDescription=Download ESP-IDF or select an existing version -ToolsTreeStatusCol=Status -SupportedTargetsDescriptionText=Supported Targets: -DownloadFileText=Downloading File: -SelectRecommended=Select Recommended -SelectRecommendedToolTip=Selects recommended tools only -DeleteToolsText=Delete Tools -DeleteToolsTextToolTip=Delete selected tools. Make sure not to delete the recommended tools for proper working -FileSelectionDialogTitle=Select tool executable file -DirectorySelectionDialog_SelectIDFDirMessage=Select ESP-IDF Directory: -FilterLabel=Type below to filter -Installed=Installed -DescriptionText=Description -ShowAvailableVersionsOnly=Show Available Versions Only -UpdateToolPathMessage=Updated Tool Path: -ManageToolsInstallationShell_mntmNewItem_text=New Item -ExtractionCompletedMessage=Extraction Completed -InstallEspIdfPage_btnNew_text=New -InstallEspIdfPage=Install ESP-IDF -ManageToolsInstallationShell_tltmCheckItem_text=Check Item -InstallEspIdfPage_lblDownloadDirectory_text=Download Directory: -NotInstalled=Not Installed -RemoveToolMessageBoxTitle=Confirmation -UpdatingPathMessage=Updating PATH -PythonLabel=Python: -InstallToolsPreReqPageDescription=Set path for the required tools here -DownloadProgressText=Download Progress: -InstallPreRquisitePage_lblLog_text=Log -BrowseButton=Browse -SelectPythonVersion=Select Python Version -SelectAllButton=Select All -SelectAllButtonToolTip=Select all tools -RemovedPathMessage=Removed Path: -InstallingToolMessage=Installing Tool: -SelectDownloadDir=Select the directory to download ESP-IDF Tools -GitCloningJobMsg=Cloning ESP-IDF {0}... -CloningCompletedMsg=Cloning completed... -IDFDownloadWizard_DownloadingMessage=Downloading {0}... -IDFDownloadWizard_DownloadCompleteMsg={0} download completed! -IDFDownloadWizard_DecompressingMsg=Extracting downloaded archive... -IDFDownloadWizard_DecompressingCompleted=Archive extracted! -IDFDownloadWizard_UpdatingIDFPathMessage=Updating IDF_PATH to: {0} -BtnCancel=Cancel -OperationCancelledByUser=Operation is cancelled by the user! -InstallToolsHandler_CopyingOpenOCDRules=Copying OpenOCD Rules -InstallToolsHandler_OpenOCDRulesCopied=Rules Copied to system -InstallToolsHandler_OpenOCDRulesNotCopied=Rules Not Copied to system -InstallToolsHandler_OpenOCDRulesCopyPaths=Copying File: %s to destination: %s -InstallToolsHandler_OpenOCDRulesCopyError=Unable to copy rules for OpenOCD to system directory, try running the eclipse with sudo command -InstallToolsHandler_OpenOCDRulesCopyWarning=Warning -InstallToolsHandler_OpenOCDRulesCopyWarningMessage=The rules file is already present in the /etc/udev/rules.d/ directory, Do you want to replace the file with the file from OpenOCD directory -AbstractToolsHandler_ExecutingMsg=Executing -ToolAreadyPresent=Tool already present in ESPRESSIF home directory. -ForceDownloadToolTip=Downloads the tools again even if they are already downloaded in ESPRESSIF home directory. -ForceDownload=Force Download -InstallToolsProgressShell_lblNewLabel_text=Tool Being Installed -ToolsTreeHeading=Tools Tree -DownloadFileText=Downloading File: -ExtractionTextMessage=Extracting file: -InstallingToolMessage=Installing Tool: -UpdatingPathMessage=Updating PATH -PreviousToolMessage=Previous Tool Path: -UpdateToolPathMessage=Updated Tool Path: -SystemPathMessage=System Path: -ExtractionCompletedMessage=Extraction Completed -RemovedPathMessage=Removed Path: -RemoveToolMessageBox=Do you want to delete the selected tools? -RemoveToolMessageBoxTitle=Confirmation -SelectAllButton=Select All -RemovedPathMessage=Removed Path: -InstallingToolMessage=Installing Tool: -SelectDownloadDir=Select the directory to download ESP-IDF Tools -GitCloningJobMsg=Cloning ESP-IDF {0}... -CloningCompletedMsg=Cloning completed... -IDFDownloadWizard_DownloadingMessage=Downloading {0}... -IDFDownloadWizard_DownloadCompleteMsg={0} download completed! -IDFDownloadWizard_DecompressingMsg=Extracting downloaded archive... -IDFDownloadWizard_DecompressingCompleted=Archive extracted! -IDFDownloadWizard_UpdatingIDFPathMessage=Updating IDF_PATH to: {0} -FilterTargetBoxToolTip=Filter the tools based on the target selection of ESP chips -ShowAvailableVersionsOnlyToolTip=Shows the versions that are available already and downloaded. The versions should be in the espressif home directory to be visible with this. -MissingToolsValidationMessage_A=Following required tools are missing: -MissingToolsValidationMessage_B=Please visit the Link to see configuration for these tools -MissingToolsValidationLink=https://github.com/espressif/idf-eclipse-plugin/blob/master/docs_readme/MissingToolsManualPathUpdateGuide.md - - EspIdfEditorTitle=ESP-IDF Manager EspIdfManagerVersionCol=ESP-IDF Version EspIdfManagerLocationCol=Location -EspIdfManagerStateCol=State EspIdfManagerActivateCol=Active -EspIdfManagerAddToolsBtn=Add ESP-IDF -EspIdfManagerRemoveAllBtn=Remove All -EspIdfManagerDeleteBtn=Delete -EspIdfManagerMessageBoxDeleteConfirmMessage=Do you want to remove the toolchain with ESP-IDF version: {0} -EspIdfManagerMessageBoxDeleteConfirmMessageTitle=Confirm Remove -EspIdfManagerMessageBoxDeleteAllConfirmMessage=Do you want to remove all ESP-IDF versions from IDE -EspIdfManagerMessageBoxDeleteAllConfirmMessageTitle=Remove All ESP-IDF Versions +EspIdfManagerNameCol=Name EspIdfManagerReloadBtnToolTip=Reload from disk -EspIdfManagerDeleteBtnToolTip=Delete ESP-IDF version from IDE - -IDFDownloadHandler_ESPIDFConfiguration=ESP-IDF Configuration -IDFDownloadHandler_DownloadPage_Title=Download or use ESP-IDF -IDFDownloadHandler_DownloadPageMsg=Please choose ESP-IDF version to download, or use an existing ESP-IDF copy \ No newline at end of file +IDFToolsHandler_ToolsManagerConsole=Espressif IDF Tools Console +IDFGuideLinkLabel_Text=Select the version of ESP-IDF you want to use. Click the radio button in Active column next to the version you want. For help in choosing the correct version, visit ESP-IDF Version Guide. +EimJsonChangedMsgTitle=ESP-IDF Installation Changed +EimJsonChangedMsgDetail=It looks like the ESP-IDF tools are modified. The Espressif IDE cannot guarantee the consistency. Kindly refresh the installation via ESP-IDF Manager. +EimJsonStateChangedMsgDetail=It looks like the ESP-IDF installation was modified since last start. The Espressif IDE cannot guarantee the consistency. Kindly refresh the installation via ESP-IDF Manager. + \ No newline at end of file diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java new file mode 100644 index 000000000..aa0b6495f --- /dev/null +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.ui.tools.watcher; + +import java.nio.file.Path; + +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Display; +import org.osgi.service.prefs.Preferences; + +import com.espressif.idf.core.tools.watcher.EimJsonChangeListener; +import com.espressif.idf.core.tools.watcher.EimJsonStateChecker; +import com.espressif.idf.ui.tools.Messages; + +/** + * eim_idf.json file ui change handler to notify user for changes. + * + * @author Ali Azam Rana + * + */ +public class EimJsonUiChangeHandler implements EimJsonChangeListener +{ + private Preferences preferences; + + public EimJsonUiChangeHandler(Preferences preferences) + { + this.preferences = preferences; + } + + @Override + public void onJsonFileChanged(Path file) + { + Display.getDefault().asyncExec(() -> { + MessageDialog.openWarning(Display.getDefault().getActiveShell(), Messages.EimJsonChangedMsgTitle, + Messages.EimJsonChangedMsgDetail); + }); + + EimJsonStateChecker checker = new EimJsonStateChecker(preferences); + checker.updateLastSeenTimestamp(); + } + +} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tracing/AppLvlTracingDialog.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tracing/AppLvlTracingDialog.java index b9ee9d677..1cd6fc8ad 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tracing/AppLvlTracingDialog.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tracing/AppLvlTracingDialog.java @@ -298,7 +298,7 @@ private void runTraceCommand() try { List arguments = new ArrayList(Arrays.asList(parseCommandTxt.getText().split(" "))); //$NON-NLS-1$ - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); + Map environment = new HashMap<>(System.getenv()); IStatus status = processRunner.runInBackground(arguments, Path.ROOT, environment); if (status == null) { diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/AbstractToolsHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/AbstractToolsHandler.java index 49a6a99c8..292dc2ce1 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/AbstractToolsHandler.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/AbstractToolsHandler.java @@ -143,7 +143,7 @@ protected IStatus runCommand(List arguments, MessageConsoleStream consol console.println(cmdMsg); Logger.log(cmdMsg); - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); + Map environment = new HashMap<>(System.getenv()); Logger.log(environment.toString()); environment.put("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/ExportIDFTools.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/ExportIDFTools.java deleted file mode 100644 index 6a6b6a6eb..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/ExportIDFTools.java +++ /dev/null @@ -1,292 +0,0 @@ -/******************************************************************************* - * Copyright 2020 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.update; - -import java.io.IOException; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.osgi.util.NLS; -import org.eclipse.ui.console.MessageConsoleStream; - -import com.espressif.idf.core.IDFConstants; -import com.espressif.idf.core.IDFCorePlugin; -import com.espressif.idf.core.IDFEnvironmentVariables; -import com.espressif.idf.core.ProcessBuilderFactory; -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.util.IDFUtil; -import com.espressif.idf.core.util.StringUtil; - -/** - * @author Kondal Kolipaka - * - * Run /tools/idf_tools.py export command - * - */ -public class ExportIDFTools -{ - /** - * @param pythonExePath python executable full path - * @param gitExePath git executable full path - * @param console Console stream to write messages - * @param errorConsoleStream - */ - public IStatus runToolsExportAndProcessOutput(final String pythonExePath, final String gitExePath, final MessageConsoleStream console, MessageConsoleStream errorConsoleStream) - { - final List arguments = getExportCommand(pythonExePath); - - final String cmd = Messages.AbstractToolsHandler_ExecutingMsg + " " + getCommandString(arguments); //$NON-NLS-1$ - log(cmd, console); - - final Map environment = new HashMap<>(IDFUtil.getSystemEnv()); - if (gitExePath != null) - { - addGitToEnvironment(environment, gitExePath); - } - final ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); - try - { - final IStatus status = processRunner.runInBackground(arguments, Path.ROOT, environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), IDFCorePlugin.errorStatus("Status can't be null", null)); //$NON-NLS-1$ - return IDFCorePlugin.errorStatus("Status can't be null", null); //$NON-NLS-1$ - } - - if (status.getSeverity() == IStatus.ERROR) - { - log(status.getException() != null ? status.getException().getMessage() : status.getMessage(), errorConsoleStream); - return status; - } - - // process export command output - final String exportCmdOp = status.getMessage(); - log(exportCmdOp, console); - processExportCmdOutput(exportCmdOp, gitExePath); - - return status; - } - catch (IOException e1) - { - Logger.log(IDFCorePlugin.getPlugin(), e1); - return IDFCorePlugin.errorStatus(e1.getMessage(), e1); - } - } - - public IStatus getToolsExportOutput(final String pythonExePath, final String gitExePath, final MessageConsoleStream console, MessageConsoleStream errorConsoleStream) - { - final List arguments = getExportCommand(pythonExePath); - - final String cmd = Messages.AbstractToolsHandler_ExecutingMsg + " " + getCommandString(arguments); //$NON-NLS-1$ - log(cmd, console); - - final Map environment = new HashMap<>(IDFUtil.getSystemEnv()); - if (gitExePath != null) - { - addGitToEnvironment(environment, gitExePath); - } - final ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); - try - { - final IStatus status = processRunner.runInBackground(arguments, Path.ROOT, environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), IDFCorePlugin.errorStatus("Status can't be null", null)); //$NON-NLS-1$ - return IDFCorePlugin.errorStatus("Status can't be null", null); //$NON-NLS-1$ - } - - if (status.getSeverity() == IStatus.ERROR) - { - log(status.getException() != null ? status.getException().getMessage() : status.getMessage(), errorConsoleStream); - return status; - } - - return status; - } - catch (IOException e) - { - Logger.log(IDFCorePlugin.getPlugin(), e); - return IDFCorePlugin.errorStatus(e.getMessage(), e); - } - } - - public IStatus getToolsExportOutputFromGivenIdfPath(final String pythonExePath, final String gitExePath, - final MessageConsoleStream console, MessageConsoleStream errorConsoleStream, final String idfPath) - { - final List arguments = getExportCommandUsingGivenIdfPath(pythonExePath, idfPath); - - final String cmd = Messages.AbstractToolsHandler_ExecutingMsg + " " + getCommandString(arguments); //$NON-NLS-1$ - log(cmd, console); - - final Map environment = new HashMap<>(IDFUtil.getSystemEnv()); - if (gitExePath != null) - { - addGitToEnvironment(environment, gitExePath); - } - - final ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); - try - { - final IStatus status = processRunner.runInBackground(arguments, Path.ROOT, environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), IDFCorePlugin.errorStatus("Status can't be null", null)); //$NON-NLS-1$ - return IDFCorePlugin.errorStatus("Status can't be null", null); //$NON-NLS-1$ - } - - if (status.getSeverity() == IStatus.ERROR) - { - log(status.getException() != null ? status.getException().getMessage() : status.getMessage(), errorConsoleStream); - return status; - } - - return status; - } - catch (IOException e) - { - Logger.log(IDFCorePlugin.getPlugin(), e); - return IDFCorePlugin.errorStatus(e.getMessage(), e); - } - } - - private List getExportCommandUsingGivenIdfPath(String pythonExePath, String idfPath) - { - final List arguments = new ArrayList<>(); - arguments.add(pythonExePath); - arguments.add(IDFUtil.getIDFToolsScriptFile(idfPath).getAbsolutePath()); - arguments.add(IDFConstants.TOOLS_EXPORT_CMD); - arguments.add(IDFConstants.TOOLS_EXPORT_CMD_FORMAT_VAL); - return arguments; - } - - private List getExportCommand(String pythonExePath) - { - final List arguments = new ArrayList<>(); - arguments.add(pythonExePath); - arguments.add(IDFUtil.getIDFToolsScriptFile().getAbsolutePath()); - arguments.add(IDFConstants.TOOLS_EXPORT_CMD); - arguments.add(IDFConstants.TOOLS_EXPORT_CMD_FORMAT_VAL); - return arguments; - } - - private void log(final String cmd, final MessageConsoleStream console) - { - Logger.log(cmd); - if (console != null) - { - console.println(cmd); - } - } - - private String getCommandString(final List arguments) - { - final StringBuilder builder = new StringBuilder(); - arguments.forEach(entry -> builder.append(entry + " ")); //$NON-NLS-1$ - - return builder.toString().trim(); - } - - private void processExportCmdOutput(final String exportCmdOp, final String gitExecutablePath) - { - // process export command output - final String[] exportEntries = exportCmdOp.split("\n"); //$NON-NLS-1$ - for (String entry : exportEntries) - { - entry = entry.replaceAll("\\r", ""); //$NON-NLS-1$ //$NON-NLS-2$ - String[] keyValue = entry.split("="); //$NON-NLS-1$ - if (keyValue.length == 2) // 0 - key, 1 - value - { - final String msg = MessageFormat.format("Key: {0} Value: {1}", keyValue[0], keyValue[1]); //$NON-NLS-1$ - Logger.log(msg); - - final IDFEnvironmentVariables idfEnvMgr = new IDFEnvironmentVariables(); - String key = keyValue[0]; - String value = keyValue[1]; - if (key.equals(IDFEnvironmentVariables.PATH)) - { - value = replacePathVariable(value); - value = appendGitToPath(value, gitExecutablePath); - } - - // add new or replace old entries - idfEnvMgr.addEnvVariable(key, value); - } - - } - } - - private String replacePathVariable(String value) - { - // Get system PATH - Map systemEnv = new HashMap<>(IDFUtil.getSystemEnv()); - String pathEntry = systemEnv.get("PATH"); //$NON-NLS-1$ - if (pathEntry == null) - { - pathEntry = systemEnv.get("Path"); // for Windows //$NON-NLS-1$ - if (pathEntry == null) // no idea - { - Logger.log(new Exception("No PATH found in the system environment variables")); //$NON-NLS-1$ - } - } - - if (!StringUtil.isEmpty(pathEntry)) - { - value = value.replace("$PATH", pathEntry); // macOS //$NON-NLS-1$ - value = value.replace("%PATH%", pathEntry); // Windows //$NON-NLS-1$ - } - return value; - } - - protected void addGitToEnvironment(Map envMap, String executablePath) - { - IPath gitPath = new Path(executablePath); - if (gitPath.toFile().exists()) - { - String gitDir = gitPath.removeLastSegments(1).toOSString(); - String path1 = envMap.get("PATH"); //$NON-NLS-1$ - String path2 = envMap.get("Path"); //$NON-NLS-1$ - if (!StringUtil.isEmpty(path1) && !path1.contains(gitDir)) // Git not found on the PATH environment - { - path1 = gitDir.concat(";").concat(path1); //$NON-NLS-1$ - envMap.put("PATH", path1); //$NON-NLS-1$ - } - else if (!StringUtil.isEmpty(path2) && !path2.contains(gitDir)) // Git not found on the Path environment - { - path2 = gitDir.concat(";").concat(path2); //$NON-NLS-1$ - envMap.put("Path", path2); //$NON-NLS-1$ - } - } - } - - /** - * Append the git directory to the existing CDT build environment PATH variable - * - * @param path CDT build environment PATH - * @param gitExecutablePath - * @return PATH value with git appended - */ - private String appendGitToPath(String path, String gitExecutablePath) - { - IPath gitPath = new Path(gitExecutablePath); - if (!gitPath.toFile().exists()) - { - Logger.log(NLS.bind("{0} doesn't exist", gitExecutablePath)); //$NON-NLS-1$ - return path; - } - - String gitDir = gitPath.removeLastSegments(1).toOSString(); // ../bin/git - if (!StringUtil.isEmpty(path) && !path.contains(gitDir)) // Git not found on the CDT build PATH environment - { - return path.concat(";").concat(gitDir); // append git path //$NON-NLS-1$ - } - return path; - } -} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/InstallToolsHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/InstallToolsHandler.java deleted file mode 100644 index 15ec76edf..000000000 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/InstallToolsHandler.java +++ /dev/null @@ -1,382 +0,0 @@ -/******************************************************************************* - * Copyright 2018-2019 Espressif Systems (Shanghai) PTE LTD. All rights reserved. - * Use is subject to license terms. - *******************************************************************************/ -package com.espressif.idf.ui.update; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardCopyOption; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.IJobChangeEvent; -import org.eclipse.core.runtime.jobs.IJobChangeListener; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.core.runtime.preferences.InstanceScope; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.MessageBox; -import org.eclipse.ui.console.MessageConsoleStream; -import org.osgi.service.prefs.BackingStoreException; -import org.osgi.service.prefs.Preferences; - -import com.espressif.idf.core.IDFConstants; -import com.espressif.idf.core.IDFCorePlugin; -import com.espressif.idf.core.IDFEnvironmentVariables; -import com.espressif.idf.core.ProcessBuilderFactory; -import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.toolchain.ESPToolChainManager; -import com.espressif.idf.core.util.IDFUtil; -import com.espressif.idf.core.util.StringUtil; -import com.espressif.idf.ui.IDFConsole; -import com.espressif.idf.ui.UIPlugin; - -/** - * IDF Tools install command handler - * - * @author Kondal Kolipaka - * - */ -public class InstallToolsHandler extends AbstractToolsHandler -{ - public static final String INSTALL_TOOLS_FLAG = "INSTALL_TOOLS_FLAG"; //$NON-NLS-1$ - - @Override - protected void execute() - { - Job installToolsJob = new Job(Messages.InstallToolsHandler_InstallingToolsMsg) - { - @Override - protected IStatus run(IProgressMonitor monitor) - { - monitor.beginTask(Messages.InstallToolsHandler_ItWilltakeTimeMsg, 5); - monitor.worked(1); - - IStatus status = handleToolsInstall(); - if (status.getSeverity() == IStatus.ERROR) - { - return status; - } - - monitor.worked(1); - monitor.setTaskName(Messages.InstallToolsHandler_InstallingPythonMsg); - status = handleToolsInstallPython(console); - if (status.getSeverity() == IStatus.ERROR) - { - return status; - } - - monitor.worked(1); - - monitor.setTaskName(Messages.InstallToolsHandler_ExportingPathsMsg); - status = new ExportIDFTools().runToolsExportAndProcessOutput(pythonExecutablenPath, gitExecutablePath, console, - errorConsoleStream); - if (status.getSeverity() == IStatus.ERROR) - { - return status; - } - - monitor.worked(1); - console.println(Messages.InstallToolsHandler_ConfiguredBuildEnvVarMsg); - - monitor.setTaskName(Messages.InstallToolsHandler_AutoConfigureToolchain); - new ESPToolChainManager().configureToolChain(); - monitor.worked(1); - - configEnv(); - - monitor.setTaskName(Messages.InstallToolsHandler_InstallingWebscoketMsg); - handleWebSocketClientInstall(); - monitor.worked(1); - - copyOpenOcdRules(); - console.println(Messages.InstallToolsHandler_ConfiguredCMakeMsg); - - console.println(Messages.InstallToolsHandler_ToolsCompleted); - return Status.OK_STATUS; - } - }; - Preferences scopedPreferenceStore = InstanceScope.INSTANCE.getNode(UIPlugin.PLUGIN_ID); - scopedPreferenceStore.putBoolean(INSTALL_TOOLS_FLAG, true); - try - { - scopedPreferenceStore.flush(); - } - catch (BackingStoreException e) - { - Logger.log(e); - } - installToolsJob.addJobChangeListener(new ToolInstallListener()); - installToolsJob.schedule(); - } - - /** - * Configure all the required environment variables here - */ - protected void configEnv() - { - IDFEnvironmentVariables idfEnvMgr = new IDFEnvironmentVariables(); - - // Enable IDF_COMPONENT_MANAGER by default - idfEnvMgr.addEnvVariable(IDFEnvironmentVariables.IDF_COMPONENT_MANAGER, "1"); - // IDF_MAINTAINER=1 to be able to build with the clang toolchain - idfEnvMgr.addEnvVariable(IDFEnvironmentVariables.IDF_MAINTAINER, "1"); - - } - - private void copyOpenOcdRules() - { - if (Platform.getOS().equals(Platform.OS_LINUX) - && !IDFUtil.getOpenOCDLocation().equalsIgnoreCase(StringUtil.EMPTY)) - { - console.println(Messages.InstallToolsHandler_CopyingOpenOCDRules); - // Copy the rules to the idf - StringBuilder pathToRules = new StringBuilder(); - pathToRules.append(IDFUtil.getOpenOCDLocation()); - pathToRules.append("/../share/openocd/contrib/60-openocd.rules"); //$NON-NLS-1$ - File rulesFile = new File(pathToRules.toString()); - if (rulesFile.exists()) - { - Path source = Paths.get(pathToRules.toString()); - Path target = Paths.get("/etc/udev/rules.d/60-openocd.rules"); //$NON-NLS-1$ - console.println(String.format(Messages.InstallToolsHandler_OpenOCDRulesCopyPaths, source.toString(), - target.toString())); - - Display.getDefault().syncExec(new Runnable() - { - @Override - public void run() - { - try - { - if (target.toFile().exists()) - { - MessageBox messageBox = new MessageBox(Display.getDefault().getActiveShell(), - SWT.ICON_WARNING | SWT.YES | SWT.NO); - messageBox.setText(Messages.InstallToolsHandler_OpenOCDRulesCopyWarning); - messageBox.setMessage(Messages.InstallToolsHandler_OpenOCDRulesCopyWarningMessage); - int response = messageBox.open(); - if (response == SWT.YES) - { - Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING); - } - else - { - console.println(Messages.InstallToolsHandler_OpenOCDRulesNotCopied); - return; - } - } - else - { - Files.copy(source, target); - } - - console.println(Messages.InstallToolsHandler_OpenOCDRulesCopied); - } - catch (IOException e) - { - Logger.log(e); - errorConsoleStream.println(Messages.InstallToolsHandler_OpenOCDRulesCopyError); - } - } - }); - } - } - } - - protected IStatus handleToolsInstall() - { - // idf_tools.py install all - List arguments = new ArrayList(); - arguments.add(IDFConstants.TOOLS_INSTALL_CMD); - arguments.add(IDFConstants.TOOLS_INSTALL_ALL_CMD); - - console.println(Messages.InstallToolsHandler_InstallingToolsMsg); - console.println(Messages.InstallToolsHandler_ItWilltakeTimeMsg); - return runCommand(arguments, console); - } - - protected IStatus handleToolsInstallPython(MessageConsoleStream console) - { - List arguments; - // idf_tools.py install-python-env - arguments = new ArrayList(); - arguments.add(IDFConstants.TOOLS_INSTALL_PYTHON_CMD); - return runCommand(arguments, console); - } - - public IStatus handleWebSocketClientInstall() - { - String websocketClient = "websocket-client"; //$NON-NLS-1$ - // pip install websocket-client - List arguments = new ArrayList(); - final String pythonEnvPath = IDFUtil.getIDFPythonEnvPath(); - if (pythonEnvPath == null || !new File(pythonEnvPath).exists()) - { - console.println(String.format("%s executable not found. Unable to run `%s -m pip install websocket-client`", //$NON-NLS-1$ - IDFConstants.PYTHON_CMD, IDFConstants.PYTHON_CMD)); - return IDFCorePlugin.errorStatus( - String.format("%s executable not found. Unable to run `%s -m pip install websocket-client`", //$NON-NLS-1$ - IDFConstants.PYTHON_CMD, IDFConstants.PYTHON_CMD), - null); - } - arguments.add(pythonEnvPath); - arguments.add("-m"); //$NON-NLS-1$ - arguments.add("pip"); //$NON-NLS-1$ - arguments.add("list"); //$NON-NLS-1$ - - ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); - - try - { - String cmdMsg = "Executing " + getCommandString(arguments); //$NON-NLS-1$ - if (console != null) - { - console.println(cmdMsg); - } - Logger.log(cmdMsg); - - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); - Logger.log(environment.toString()); - - IStatus status = processRunner.runInBackground(arguments, org.eclipse.core.runtime.Path.ROOT, environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), - IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ - if (errorConsoleStream != null) - { - errorConsoleStream.println("Unable to get the process status."); - } - return IDFCorePlugin.errorStatus("Unable to get the process status.", null); //$NON-NLS-1$ - } - - String cmdOutput = status.getMessage(); - if (cmdOutput.contains(websocketClient)) - { - return IDFCorePlugin.okStatus("websocket-client already installed", null); //$NON-NLS-1$ - } - - // websocket client not installed so installing it now. - arguments.remove(arguments.size() - 1); - arguments.add("install"); //$NON-NLS-1$ - arguments.add(websocketClient); - - status = processRunner.runInBackground(arguments, org.eclipse.core.runtime.Path.ROOT, environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), - IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ - if (errorConsoleStream != null) - { - errorConsoleStream.println("Unable to get the process status."); - } - return IDFCorePlugin.errorStatus("Unable to get the process status.", null); //$NON-NLS-1$ - } - - if (console != null) - { - console.println(status.getMessage()); - } - - return status; - } - catch (Exception e1) - { - Logger.log(IDFCorePlugin.getPlugin(), e1); - if (errorConsoleStream != null) - { - errorConsoleStream.println(e1.getLocalizedMessage()); - } - return IDFCorePlugin.errorStatus(e1.getLocalizedMessage(), e1); // $NON-NLS-1$; - } - } - - private class ToolInstallListener implements IJobChangeListener - { - Map existingVarMap; - - @Override - public void aboutToRun(IJobChangeEvent event) - { - // clean the ESP_IDF_VERSION variable first, because it's not coming from older versions of the ESP-IDF - new IDFEnvironmentVariables().removeEnvVariable(IDFEnvironmentVariables.ESP_IDF_VERSION); - this.existingVarMap = loadExistingVars(); - } - - private Map loadExistingVars() - { - IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); - Map existingVarMap = new HashMap<>(); - existingVarMap.put(IDFEnvironmentVariables.IDF_COMPONENT_MANAGER, - idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.IDF_COMPONENT_MANAGER)); - existingVarMap.put(IDFEnvironmentVariables.IDF_PATH, - idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.IDF_PATH)); - existingVarMap.put(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH, - idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH)); - existingVarMap.put(IDFEnvironmentVariables.OPENOCD_SCRIPTS, - idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.OPENOCD_SCRIPTS)); - existingVarMap.put(IDFEnvironmentVariables.PATH, - idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.PATH)); - - return existingVarMap; - } - - @Override - public void awake(IJobChangeEvent event) - { - - } - - @Override - public void done(IJobChangeEvent event) - { - if (event.getResult().getSeverity() == IStatus.ERROR) - { - restoreOldVars(); - } - else - { - IDFUtil.updateEspressifPrefPageOpenocdPath(); - } - } - - private void restoreOldVars() - { - IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); - for (Entry varsEntry : existingVarMap.entrySet()) - { - idfEnvironmentVariables.addEnvVariable(varsEntry.getKey(), varsEntry.getValue()); - } - } - - @Override - public void running(IJobChangeEvent event) - { - - } - - @Override - public void scheduled(IJobChangeEvent event) - { - - } - - @Override - public void sleeping(IJobChangeEvent event) - { - - } - } -} diff --git a/tests/com.espressif.idf.ui.test/configs/default-test-linux.properties b/tests/com.espressif.idf.ui.test/configs/default-test-linux.properties index 4cef675fc..05338624f 100644 --- a/tests/com.espressif.idf.ui.test/configs/default-test-linux.properties +++ b/tests/com.espressif.idf.ui.test/configs/default-test-linux.properties @@ -7,7 +7,7 @@ default.project.copy.wait=7000 # Default paths for esp env configs (These may need to be updated as per Automation requirements and the env being used) #Github Actions Path -default.env.esp.idf.path=/opt/actions-runner/_work/idf-eclipse-plugin/idf-eclipse-plugin/dependencies/idf-tools +default.env.esp.idf.path=/opt/actions-runner/_work/idf-eclipse-plugin/idf-eclipse-plugin/dependencies/idf-tools/v5.3/esp-idf default.env.esp.git.path=git default.env.esp.python.version=3.9 default.env.esp.python.path=python3 diff --git a/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/executable/cases/project/NewEspressifIDFProjectTest.java b/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/executable/cases/project/NewEspressifIDFProjectTest.java index 3c08982d6..dfb24db40 100644 --- a/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/executable/cases/project/NewEspressifIDFProjectTest.java +++ b/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/executable/cases/project/NewEspressifIDFProjectTest.java @@ -121,55 +121,6 @@ public void givenNewIDFProjectIsCreatedAndBuiltUsingToolbarButtonThenProjectIsBu // Fixture.thenConsoleShowsBuildSuccessful(); // } -// @Test -// public void givenNewProjectCreatedDfuBuiltThenHasDfuBin() throws Exception -// { -// Fixture.givenNewEspressifIDFProjectIsSelected("EspressIf", "Espressif IDF Project"); -// Fixture.givenProjectNameIs("NewProjectTestDFU"); -// Fixture.whenNewProjectIsSelected(); -// Fixture.thenLaunchTargetIsSelectedFromLaunchTargets("esp32s2"); -// Fixture.turnOnDfu(); -// Fixture.whenProjectIsBuiltUsingContextMenu(); -// Fixture.thenProjectHasTheFile("dfu.bin", "/build"); -// Fixture.turnOffDfu(); -// } - - @Test - public void givenNewProjectCreatedThenInstallNewComponent() throws Exception - { - Fixture.givenNewEspressifIDFProjectIsSelected("EspressIf", "Espressif IDF Project"); - Fixture.givenProjectNameIs("NewProjectForInstallNewComponentTest"); - Fixture.whenNewProjectIsSelected(); - Fixture.whenProjectIsBuiltUsingContextMenu(); - Fixture.whenInstallNewComponentUsingContextMenu(); - Fixture.whenRefreshProject(); - Fixture.checkIfNewComponentIsInstalledUsingContextMenu(); - } - -// @Test -// public void givenNewProjectCreatedBuiltAndThenProjectCleanUsingContextMenu() throws Exception -// { -// Fixture.givenNewEspressifIDFProjectIsSelected("EspressIf", "Espressif IDF Project"); -// Fixture.givenProjectNameIs("NewProjectCleanTest"); -// Fixture.whenNewProjectIsSelected(); -// Fixture.whenProjectIsBuiltUsingContextMenu(); -// Fixture.whenProjectCleanUsingContextMenu(); -// Fixture.whenRefreshProject(); -// Fixture.checkIfProjectCleanedFilesInBuildFolder(); -// } - - @Test - public void givenNewProjectCreatedBuiltAndThenProjectFullCleanUsingContextMenu() throws Exception - { - Fixture.givenNewEspressifIDFProjectIsSelected("EspressIf", "Espressif IDF Project"); - Fixture.givenProjectNameIs("NewProjectFullCleanTest"); - Fixture.whenNewProjectIsSelected(); - Fixture.whenProjectIsBuiltUsingContextMenu(); - Fixture.whenProjectFullCleanUsingContextMenu(); - Fixture.whenRefreshProject(); - Fixture.checkIfProjectFullCleanedFilesInBuildFolder(); - } - @Test public void givenNewProjectCreatedBuiltAndThenProjectPythonCleanUsingContextMenu() throws Exception { diff --git a/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/operations/EnvSetupOperations.java b/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/operations/EnvSetupOperations.java index ce94217ef..229c5be9a 100644 --- a/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/operations/EnvSetupOperations.java +++ b/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/operations/EnvSetupOperations.java @@ -3,6 +3,7 @@ import static org.eclipse.swtbot.eclipse.finder.matchers.WidgetMatcherFactory.withPartName; import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; +import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell; @@ -27,6 +28,17 @@ public static void setupEspressifEnv(SWTWorkbenchBot bot) throws Exception { view.close(); } + + SWTBotEditor espIdfManagerView = bot.editorByTitle("ESP-IDF Manager"); + espIdfManagerView.bot().radio(0).click(); + + SWTBotView consoleView = bot.viewById("org.eclipse.ui.console.ConsoleView"); + consoleView.show(); + consoleView.setFocus(); + TestWidgetWaitUtility.waitUntilViewContains(bot, "Tools Setup complete", consoleView, 99000000); + bot.cTabItem("ESP-IDF Manager").activate(); + bot.cTabItem("ESP-IDF Manager").close(); + bot.menu("Window").menu("Perspective").menu("Open Perspective").menu("Other...").click(); bot.table().select("C/C++"); bot.button("Open").click(); @@ -55,30 +67,6 @@ public static void setupEspressifEnv(SWTWorkbenchBot bot) throws Exception bot.text().setText("progress"); bot.button("Open").click(); bot.viewByTitle("Progress").show(); - - TestWidgetWaitUtility.waitForOperationsInProgressToFinishSync(bot); - bot.activeShell(); - - bot.menu("Espressif").menu("ESP-IDF Manager").click(); - bot.activeShell().activate(); - bot.button("Add ESP-IDF").click(); - SWTBotShell espIdfConfigShell = bot.shell("ESP-IDF Configuration"); - espIdfConfigShell.setFocus(); - espIdfConfigShell.bot().checkBox("Use an existing ESP-IDF directory from file system").click(); - espIdfConfigShell.bot().textWithLabel("Choose existing ESP-IDF directory:") - .setText(DefaultPropertyFetcher.getStringPropertyValue(ESP_IDF_PATH_PROPERTY, "")); - espIdfConfigShell.bot().textWithLabel("Git: ") - .setText(DefaultPropertyFetcher.getStringPropertyValue(GIT_PATH_PROPERTY, "")); - espIdfConfigShell.bot().textWithLabel("Python: ") - .setText(DefaultPropertyFetcher.getStringPropertyValue(PYTHON_PATH_PROPERTY, "")); - espIdfConfigShell.bot().button("Finish").click(); - - SWTBotView consoleView = bot.viewById("org.eclipse.ui.console.ConsoleView"); - consoleView.show(); - consoleView.setFocus(); - TestWidgetWaitUtility.waitUntilViewContains(bot, "Tools Activated", consoleView, 99000000); - bot.cTabItem("ESP-IDF Manager").activate(); - bot.cTabItem("ESP-IDF Manager").close(); SETUP = true; } diff --git a/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/operations/ProjectTestOperations.java b/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/operations/ProjectTestOperations.java index 6ae4172d6..80cb0d8a5 100644 --- a/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/operations/ProjectTestOperations.java +++ b/tests/com.espressif.idf.ui.test/src/com/espressif/idf/ui/test/operations/ProjectTestOperations.java @@ -699,7 +699,7 @@ public static void findInConsole(SWTWorkbenchBot bot, String consoleName, String SWTBotView consoleView = viewConsole(consoleName, bot); consoleView.show(); consoleView.setFocus(); - TestWidgetWaitUtility.waitUntilViewContains(bot, findText, consoleView, 3000); + TestWidgetWaitUtility.waitUntilViewContains(bot, findText, consoleView, 30000); } public static boolean checkShellContent(SWTWorkbenchBot bot, String shellName, String expectedText) diff --git a/tests/pom.xml b/tests/pom.xml index 965e0deaa..550801bd9 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -30,7 +30,7 @@ false org.eclipse.ui.ide.workbench - -Xms4096m -Xmx8192m + -Xms4096m -Xmx8192m -DtestRun=true ${skipTests} true ${testWorkspace} From e378e2159f7d9c7740a7de1cc9273f1aa063dc4c Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 7 May 2025 13:59:13 +0200 Subject: [PATCH 02/37] fixes after merge --- .../idf/core/IDFCorePreferenceConstants.java | 10 ----- .../EspresssifPreferencesPage.java | 43 ------------------- .../idf/ui/update/AbstractToolsHandler.java | 12 ------ 3 files changed, 65 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFCorePreferenceConstants.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFCorePreferenceConstants.java index 4630eb59a..2fde5d21c 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFCorePreferenceConstants.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFCorePreferenceConstants.java @@ -29,16 +29,6 @@ public class IDFCorePreferenceConstants public static final boolean CMAKE_CCACHE_DEFAULT_STATUS = true; public static final boolean AUTOMATE_BUILD_HINTS_DEFAULT_STATUS = true; public static final boolean HIDE_ERRORS_IDF_COMPONENTS_DEFAULT_STATUS = true; - public static final String IDF_GITHUB_ASSETS = "IDF_GITHUB_ASSETS"; //$NON-NLS-1$ - public static final String IDF_GITHUB_ASSETS_DEFAULT_GLOBAL = "dl.espressif.com/github_assets"; //$NON-NLS-1$ - public static final String IDF_GITHUB_ASSETS_DEFAULT_CHINA = "dl.espressif.cn/github_assets"; //$NON-NLS-1$ - public static final String PIP_EXTRA_INDEX_URL = "PIP_EXTRA_INDEX_URL"; //$NON-NLS-1$ - public static final String PIP_EXTRA_INDEX_URL_DEFAULT_GLOBAL = "https://dl.espressif.com/pypi"; //$NON-NLS-1$ - public static final String PIP_EXTRA_INDEX_URL_DEFAULT_CHINA = "https://dl.espressif.cn/pypi"; //$NON-NLS-1$ - public static final String IDF_TOOLS_PATH = "IDF_TOOLS_PATH"; //$NON-NLS-1$ - public static final String IDF_TOOLS_PATH_DEFAULT = Platform.getOS().equals(Platform.OS_WIN32) - ? IDFUtil.resolveEnvVariable("%USERPROFILE%\\.espressif") //$NON-NLS-1$ - : IDFUtil.resolveEnvVariable("$HOME/.espressif"); //$NON-NLS-1$ /** * Returns the node in the preference in the given context. diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/preferences/EspresssifPreferencesPage.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/preferences/EspresssifPreferencesPage.java index 1164f573e..672424e22 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/preferences/EspresssifPreferencesPage.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/preferences/EspresssifPreferencesPage.java @@ -19,7 +19,6 @@ import com.espressif.idf.core.IDFCorePlugin; import com.espressif.idf.core.IDFCorePreferenceConstants; import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.util.StringUtil; public class EspresssifPreferencesPage extends PreferencePage implements IWorkbenchPreferencePage { @@ -76,8 +75,6 @@ protected Control createContents(Composite parent) addBuildSettings(mainComposite); - addToolsInstallationSettings(mainComposite); - addClangdSettings(mainComposite); return mainComposite; } @@ -96,42 +93,6 @@ private void addClangdSettings(Composite mainComposite) .setSelection(getPreferenceStore().getBoolean(IDFCorePreferenceConstants.AUTOMATE_CLANGD_FORMAT_FILE)); } - private void addToolsInstallationSettings(Composite mainComposite) - { - Group toolsInstallationGroup = new Group(mainComposite, SWT.SHADOW_ETCHED_IN); - toolsInstallationGroup.setText(Messages.EspressifPreferencesPage_ToolsInstallationGrpTxt); - toolsInstallationGroup.setLayout(new GridLayout(3, false)); - - Label githubAssetsLabel = new Label(toolsInstallationGroup, SWT.NONE); - githubAssetsLabel.setText(Messages.EspressifPreferencesPage_ToolsInstallationGitAssetUrlLabel); - gitAssetsCombo = new Combo(toolsInstallationGroup, SWT.DROP_DOWN | SWT.BORDER); - gitAssetsCombo.setItems(IDFCorePreferenceConstants.IDF_GITHUB_ASSETS_DEFAULT_GLOBAL, - IDFCorePreferenceConstants.IDF_GITHUB_ASSETS_DEFAULT_CHINA); - gitAssetsCombo.select(0); - - Label pythonWheelsLabel = new Label(toolsInstallationGroup, SWT.NONE); - pythonWheelsLabel.setText(Messages.EspressifPreferencesPage_ToolsInstallationPythonPyWheelUrlLabel); - pythonWheelCombo = new Combo(toolsInstallationGroup, SWT.DROP_DOWN | SWT.BORDER); - pythonWheelCombo.setItems(IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL_DEFAULT_GLOBAL, - IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL_DEFAULT_CHINA); - pythonWheelCombo.select(0); - - GridData gitTextGridData = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1); - gitTextGridData.widthHint = 200; - GridData pythonTextGridData = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1); - pythonTextGridData.widthHint = 200; - gitAssetsCombo.setLayoutData(gitTextGridData); - pythonWheelCombo.setLayoutData(pythonTextGridData); - - String gitUrl = getPreferenceStore().getString(IDFCorePreferenceConstants.IDF_GITHUB_ASSETS); - String pyWheelUrl = getPreferenceStore().getString(IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL); - gitUrl = StringUtil.isEmpty(gitUrl) ? gitAssetsCombo.getItem(0) : gitUrl; - pyWheelUrl = StringUtil.isEmpty(pyWheelUrl) ? pythonWheelCombo.getItem(0) : pyWheelUrl; - - gitAssetsCombo.setText(gitUrl); - pythonWheelCombo.setText(pyWheelUrl); - } - private void addBuildSettings(Composite mainComposite) { Group buildGroup = new Group(mainComposite, SWT.SHADOW_ETCHED_IN); @@ -232,10 +193,6 @@ public boolean performOk() IDFCorePlugin.ERROR_MARKER_LISTENER.initialMarkerCleanup(); } - getPreferenceStore().setValue(IDFCorePreferenceConstants.IDF_GITHUB_ASSETS, gitAssetsCombo.getText()); - - getPreferenceStore().setValue(IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL, pythonWheelCombo.getText()); - getPreferenceStore().setValue(IDFCorePreferenceConstants.AUTOMATE_CLANGD_FORMAT_FILE, automateClangdFormatCreationBtn.getSelection()); } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/AbstractToolsHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/AbstractToolsHandler.java index 292dc2ce1..aa0b7fdb6 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/AbstractToolsHandler.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/update/AbstractToolsHandler.java @@ -16,7 +16,6 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.window.Window; @@ -24,7 +23,6 @@ import org.eclipse.ui.console.MessageConsoleStream; import com.espressif.idf.core.IDFCorePlugin; -import com.espressif.idf.core.IDFCorePreferenceConstants; import com.espressif.idf.core.IDFEnvironmentVariables; import com.espressif.idf.core.ProcessBuilderFactory; import com.espressif.idf.core.SystemExecutableFinder; @@ -147,16 +145,6 @@ protected IStatus runCommand(List arguments, MessageConsoleStream consol Logger.log(environment.toString()); environment.put("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ - environment.put("IDF_GITHUB_ASSETS", //$NON-NLS-1$ - Platform.getPreferencesService().getString(IDFCorePlugin.PLUGIN_ID, - IDFCorePreferenceConstants.IDF_GITHUB_ASSETS, - IDFCorePreferenceConstants.IDF_GITHUB_ASSETS_DEFAULT_GLOBAL, null)); - - environment.put("PIP_EXTRA_INDEX_URL", //$NON-NLS-1$ - Platform.getPreferencesService().getString(IDFCorePlugin.PLUGIN_ID, - IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL, - IDFCorePreferenceConstants.PIP_EXTRA_INDEX_URL_DEFAULT_GLOBAL, null)); - if (gitExecutablePath != null) { addGitToEnvironment(environment, gitExecutablePath); From 49f8cdfb1216f371c2b44c9494415b6133a3bc91 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Tue, 10 Jun 2025 11:33:05 +0200 Subject: [PATCH 03/37] IEP-1516: Automatic update to IDE with filewatcher (#1210) * automatic refresh added * switched to message dialog * improved null checks * file watcher added first --- .../tools/watcher/EimJsonWatchService.java | 1 + .../idf/ui/tools/EspressifToolStartup.java | 18 ++- .../com/espressif/idf/ui/tools/Messages.java | 3 + .../idf/ui/tools/messages.properties | 5 +- .../tools/watcher/EimJsonUiChangeHandler.java | 112 +++++++++++++++++- 5 files changed, 123 insertions(+), 16 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java index b590e2500..9d751b0db 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java @@ -129,6 +129,7 @@ public void run() try { watchService.close(); + Logger.log("File Watch Service close"); //$NON-NLS-1$ } catch (IOException e) { diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index 570521136..c5630141b 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -6,7 +6,6 @@ import java.text.MessageFormat; -import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.MessageBox; @@ -41,13 +40,17 @@ */ public class EspressifToolStartup implements IStartup { + private EimJsonUiChangeHandler eimJsonUiChangeHandler; @Override public void earlyStartup() { Preferences preferences = org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE .getNode(UIPlugin.PLUGIN_ID); ToolInitializer toolInitializer = new ToolInitializer(preferences); - + EimJsonStateChecker stateChecker = new EimJsonStateChecker(preferences); + eimJsonUiChangeHandler = new EimJsonUiChangeHandler(preferences); + stateChecker.updateLastSeenTimestamp(); + EimJsonWatchService.getInstance().addEimJsonChangeListener(eimJsonUiChangeHandler); if (!toolInitializer.isEimInstalled()) { notifyMissingTools(); @@ -65,23 +68,16 @@ public void earlyStartup() promptUserToOpenToolManager(eimJson); } - EimJsonStateChecker stateChecker = new EimJsonStateChecker(preferences); if (stateChecker.wasModifiedSinceLastRun()) { showEimJsonStateChangeNotification(); } - - stateChecker.updateLastSeenTimestamp(); - EimJsonWatchService.getInstance().addEimJsonChangeListener(new EimJsonUiChangeHandler(preferences)); } private void showEimJsonStateChangeNotification() { - Display.getDefault().asyncExec(() -> { - MessageDialog.openInformation(Display.getDefault().getActiveShell(), - com.espressif.idf.ui.tools.Messages.EimJsonChangedMsgTitle, - com.espressif.idf.ui.tools.Messages.EimJsonStateChangedMsgDetail); - }); + int response = eimJsonUiChangeHandler.displayMessageToUser(); + eimJsonUiChangeHandler.handleUserResponse(response); } private void notifyMissingTools() diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java index 5dbcf3f2b..a6659697c 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java @@ -30,6 +30,9 @@ public class Messages extends NLS public static String EimJsonChangedMsgDetail; public static String EimJsonStateChangedMsgDetail; + public static String MsgYes; + public static String MsgNo; + static { // initialize resource bundle diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties index 6a42ecb88..025d33362 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties @@ -7,6 +7,7 @@ EspIdfManagerReloadBtnToolTip=Reload from disk IDFToolsHandler_ToolsManagerConsole=Espressif IDF Tools Console IDFGuideLinkLabel_Text=Select the version of ESP-IDF you want to use. Click the radio button in Active column next to the version you want. For help in choosing the correct version, visit ESP-IDF Version Guide. EimJsonChangedMsgTitle=ESP-IDF Installation Changed -EimJsonChangedMsgDetail=It looks like the ESP-IDF tools are modified. The Espressif IDE cannot guarantee the consistency. Kindly refresh the installation via ESP-IDF Manager. +EimJsonChangedMsgDetail=It seems that the ESP-IDF tools have been modified. If you just installed ESP-IDF we recommend refereshing via ESP-IDF Manager . Would you like to proceed with the update? EimJsonStateChangedMsgDetail=It looks like the ESP-IDF installation was modified since last start. The Espressif IDE cannot guarantee the consistency. Kindly refresh the installation via ESP-IDF Manager. - \ No newline at end of file + MsgYes=Yes + MsgNo=No \ No newline at end of file diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java index aa0b6495f..6bf8c4734 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java @@ -4,15 +4,31 @@ *******************************************************************************/ package com.espressif.idf.ui.tools.watcher; +import java.io.IOException; import java.nio.file.Path; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.console.MessageConsoleStream; +import org.eclipse.ui.ide.IDE; import org.osgi.service.prefs.Preferences; +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.EimIdfConfiguratinParser; +import com.espressif.idf.core.tools.SetupToolsInIde; +import com.espressif.idf.core.tools.vo.EimJson; import com.espressif.idf.core.tools.watcher.EimJsonChangeListener; import com.espressif.idf.core.tools.watcher.EimJsonStateChecker; +import com.espressif.idf.ui.IDFConsole; +import com.espressif.idf.ui.handlers.EclipseHandler; import com.espressif.idf.ui.tools.Messages; +import com.espressif.idf.ui.tools.SetupToolsJobListener; +import com.espressif.idf.ui.tools.manager.ESPIDFManagerEditor; +import com.espressif.idf.ui.tools.manager.EimEditorInput; +import com.espressif.idf.ui.tools.manager.pages.ESPIDFMainTablePage; /** * eim_idf.json file ui change handler to notify user for changes. @@ -23,6 +39,7 @@ public class EimJsonUiChangeHandler implements EimJsonChangeListener { private Preferences preferences; + private EimJson eimJson; public EimJsonUiChangeHandler(Preferences preferences) { @@ -32,13 +49,102 @@ public EimJsonUiChangeHandler(Preferences preferences) @Override public void onJsonFileChanged(Path file) { - Display.getDefault().asyncExec(() -> { - MessageDialog.openWarning(Display.getDefault().getActiveShell(), Messages.EimJsonChangedMsgTitle, - Messages.EimJsonChangedMsgDetail); + int response = displayMessageToUser(); + handleUserResponse(response); + } + + public int displayMessageToUser() + { + final int[] response = new int[] { -1 }; + Display display = Display.getDefault(); + display.syncExec(() -> { + Shell shell = display.getActiveShell(); + if (shell == null) + { + shell = new Shell(display); + } + MessageDialog messageDialog = new MessageDialog(shell, Messages.EimJsonChangedMsgTitle, null, + Messages.EimJsonChangedMsgDetail, MessageDialog.WARNING, 0, + new String[] { Messages.MsgYes, Messages.MsgNo }); + response[0] = messageDialog.open(); }); + return response[0]; + } + + public void handleUserResponse(int response) + { + if (response == 0) + { + try + { + loadEimJson(); + if (eimJson.getIdfInstalled().size() == 1) + { + // only one entry in eimJson so we can simply refresh the IDE environment with that. + setupToolsInIde(); + } + else + { + // multiple entries in json so launch manager for user to handle this + launchEspIdfManager(); + } + } + catch ( + IOException + | PartInitException e) + { + Logger.log(e); + } + } + EimJsonStateChecker checker = new EimJsonStateChecker(preferences); checker.updateLastSeenTimestamp(); } + private void loadEimJson() throws IOException + { + EimIdfConfiguratinParser eimIdfConfiguratinParser = new EimIdfConfiguratinParser(); + eimJson = eimIdfConfiguratinParser.getEimJson(true); + } + + private void setupToolsInIde() + { + SetupToolsInIde setupToolsInIde = new SetupToolsInIde(eimJson.getIdfInstalled().get(0), eimJson, + getConsoleStream(true), getConsoleStream(false)); + SetupToolsJobListener toolsActivationJobListener = new SetupToolsJobListener(ESPIDFMainTablePage.getInstance(eimJson), + setupToolsInIde); + setupToolsInIde.addJobChangeListener(toolsActivationJobListener); + setupToolsInIde.schedule(); + } + + private void launchEspIdfManager() throws PartInitException + { + Display.getDefault().asyncExec(() -> { + IWorkbenchWindow activeww = EclipseHandler.getActiveWorkbenchWindow(); + if (activeww == null || activeww.getActivePage() == null) + { + Logger.log("Cannot open ESP-IDF Manager. No active workbench window or active page."); + return; + } + + try + { + IDE.openEditor(activeww.getActivePage(), new EimEditorInput(eimJson), ESPIDFManagerEditor.EDITOR_ID, + true); + } + catch (PartInitException e) + { + Logger.log("Failed to open ESP-IDF Manager Editor."); + Logger.log(e); + } + }); + + } + + private MessageConsoleStream getConsoleStream(boolean errorStream) + { + IDFConsole idfConsole = new IDFConsole(); + return idfConsole.getConsoleStream(Messages.IDFToolsHandler_ToolsManagerConsole, null, errorStream, true); + } } From 328284fcacb33a18626e1643b27b8d96b2861252 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Tue, 10 Jun 2025 11:37:22 +0200 Subject: [PATCH 04/37] IEP 1517: Handling case for conversion of existing json file to eim_idf.json (#1218) * eim auto import for old config added --- .../idf/core/build/messages.properties | 16 ++--- .../espressif/idf/core/logging/Logger.java | 4 ++ .../idf/core/tools/ToolInitializer.java | 26 ++++++-- .../espressif/idf/core/tools/vo/EimJson.java | 12 ++++ .../idf/ui/tools/EspressifToolStartup.java | 63 +++++++++++++++++++ 5 files changed, 107 insertions(+), 14 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties index 6efb0de45..a101c23f5 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties @@ -22,8 +22,8 @@ ToolsInitializationDifferentPathMessageBoxTitle=Different IDF path found in the ToolsInitializationEimMissingMsgBoxTitle=ESP-IDF Not Found ToolsInitializationEimMissingMsgBoxMessage=ESP-IDF is not found on your system. To use the IDE, install ESP-IDF using EIM - GUI Installer. \n\nOnce installed, the IDE will automatically detect ESP-IDF. You can verify and activate it from the ESP-IDF Manager, accessible via the menu: Espressif > ESP-IDF Manager.\n\n ToolsInitializationDifferentPathMessageBoxMessage=A different ESP-IDF path was found in the esp_idf.json.json configuration file. Do you want to install the tools in the new path or the old path? Please click on the appropriate button.\nNew Path: {0}\nOld Path: {1} -ToolsInitializationDifferentPathMessageBoxOptionYes=Use New Path -ToolsInitializationDifferentPathMessageBoxOptionNo=Use Old Path +ToolsInitializationDifferentPathMessageBoxOptionYes=Yes +ToolsInitializationDifferentPathMessageBoxOptionNo=No RefreshingProjects_JobName=Refreshing Projects... IDFBuildConfiguration_PreCheck_DifferentIdfPath=The project was built using the ESP-IDF located at the {0} path.\nThe currently active ESP-IDF path in the IDE is {1}.\nPlease clean the project using "ESP-IDF:Project Full Clean" menu option to use the active ESP-IDF configuration. IDFToolChainsMissingErrorMsg=Toolchains are missing. Please use ESP-IDF Manager for configuring @@ -31,11 +31,11 @@ IDFToolChainsMissingErrorMsg=Toolchains are missing. Please use ESP-IDF Manager NoActiveEspIdfInWorkspaceMsgTitle=ESP-IDF Setup NoActiveEspIdfInWorkspaceMsg=ESP-IDF is required to use Espressif IDE. Would you like to configure it now? -OldConfigFoundMsgBoxTitle=Old Configuration Found -OldConfigFoundMsgBoxMsg=An old ESP-IDF configuration has been detected.\nIf you want to use these you need to export these configuration and pass them on to EIM for updated configurations.\nWould you like to export these settings?\n\nPress 'Yes' to choose a location to save. +OldConfigFoundMsgBoxTitle=Old Configuration Detected +OldConfigFoundMsgBoxMsg=Espressif IDE now uses the EIM system to manage ESP-IDF installations. A legacy configuration was found in your current workspace. Converting it to the EIM format will allow proper environment setup and ensure the IDE works seamlessly with your existing projects. Would you like to convert the configuration now? OldConfigExportDirectorSelectionDialogTitle=Select Destination OldConfigExportDirectorSelectionDialogInfo=Choose a directory to save the exported settings. -OldConfigExportCompleteSuccessMsgTitle=Export Successful -OldConfigExportCompleteSuccessMsg=The configuration has been successfully copied to:\n{0} -OldConfigExportCompleteFailMsgTitle=Export Failed -OldConfigExportCompleteFailMsg=An error occurred while copying the configuration.\n{0} \ No newline at end of file +OldConfigExportCompleteSuccessMsgTitle=Import Successful +OldConfigExportCompleteSuccessMsg=The configuration has been successfully Imported +OldConfigExportCompleteFailMsgTitle=Conversion Failed +OldConfigExportCompleteFailMsg=An error occurred while converting old configuration. \ No newline at end of file diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/logging/Logger.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/logging/Logger.java index 897bdd92b..3d2ae93a9 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/logging/Logger.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/logging/Logger.java @@ -20,6 +20,10 @@ */ public class Logger { + public static void log(String message, Exception e) + { + log(IDFCorePlugin.getPlugin(), message, e); + } public static void log(String message) { diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java index 3c3d51f81..42fb18a12 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java @@ -6,14 +6,18 @@ import java.io.File; import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.List; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; import org.osgi.service.prefs.Preferences; +import com.espressif.idf.core.IDFCorePlugin; +import com.espressif.idf.core.ProcessBuilderFactory; import com.espressif.idf.core.logging.Logger; import com.espressif.idf.core.tools.vo.EimJson; @@ -57,15 +61,25 @@ public boolean isOldEspIdfConfigPresent() return getOldConfigFile().exists(); } - public void exportOldConfigIfNeeded(String exportPath) throws IOException + public IStatus exportOldConfig() throws IOException { File oldConfig = getOldConfigFile(); if (oldConfig.exists()) { - File destinationFile = new File(exportPath, oldConfig.getName()); - Files.copy(oldConfig.toPath(), destinationFile.toPath(), StandardCopyOption.REPLACE_EXISTING); - preferences.putBoolean(EimConstants.OLD_CONFIG_EXPORTED_FLAG, true); + // eim import pathToOldConfigJson + List commands = new ArrayList<>(); + commands.add(loadEimJson().getEimPath()); + commands.add("import"); //$NON-NLS-1$ + commands.add(oldConfig.getAbsolutePath()); + ProcessBuilderFactory processBuilderFactory = new ProcessBuilderFactory(); + IStatus status = processBuilderFactory.runInBackground(commands, org.eclipse.core.runtime.Path.ROOT, + System.getenv()); + + Logger.log(status.getMessage()); + return status; } + + return new Status(IStatus.ERROR, IDFCorePlugin.getId(), -1, "Error in conversion", null); //$NON-NLS-1$ } public boolean isOldConfigExported() diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/EimJson.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/EimJson.java index b6076d013..9ed2a4773 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/EimJson.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/vo/EimJson.java @@ -7,6 +7,8 @@ public class EimJson { + @Expose + private String eimPath; @Expose private String gitPath; @Expose @@ -44,4 +46,14 @@ public void setIdfInstalled(List idfInstalled) this.idfInstalled = idfInstalled; } + public String getEimPath() + { + return eimPath; + } + + public void setEimPath(String eimPath) + { + this.eimPath = eimPath; + } + } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index c5630141b..830e6922e 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -4,8 +4,11 @@ *******************************************************************************/ package com.espressif.idf.ui.tools; +import java.io.IOException; import java.text.MessageFormat; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.MessageBox; @@ -41,6 +44,9 @@ public class EspressifToolStartup implements IStartup { private EimJsonUiChangeHandler eimJsonUiChangeHandler; + private ToolInitializer toolInitializer; + private Preferences preferences; + @Override public void earlyStartup() { @@ -51,11 +57,20 @@ public void earlyStartup() eimJsonUiChangeHandler = new EimJsonUiChangeHandler(preferences); stateChecker.updateLastSeenTimestamp(); EimJsonWatchService.getInstance().addEimJsonChangeListener(eimJsonUiChangeHandler); + if (!toolInitializer.isEimInstalled()) { + Logger.log("EIM not installed"); notifyMissingTools(); return; } + + if (toolInitializer.isOldEspIdfConfigPresent() + && !toolInitializer.isOldConfigExported()) + { + Logger.log("Old configuration found and not converted"); + handleOldConfigExport(); + } EimJson eimJson = toolInitializer.loadEimJson(); if (eimJson == null) @@ -74,6 +89,54 @@ public void earlyStartup() } } + private void handleOldConfigExport() + { + final int[] response = new int[] { -1 }; + Display display = Display.getDefault(); + display.syncExec(() -> { + MessageDialog messageDialog = new MessageDialog(display.getActiveShell(), + Messages.OldConfigFoundMsgBoxTitle, null, Messages.OldConfigFoundMsgBoxMsg, 0, 0, + new String[] { Messages.ToolsInitializationDifferentPathMessageBoxOptionYes, + Messages.ToolsInitializationDifferentPathMessageBoxOptionNo }); + response[0] = messageDialog.open(); + }); + + if (response[0] == 0) + { + try + { + IStatus status = toolInitializer.exportOldConfig(); + Logger.log("Tools Conversion Process Message: "); + Logger.log(status.getMessage()); + if (status.getSeverity() != IStatus.ERROR) + { + preferences.putBoolean(EimConstants.OLD_CONFIG_EXPORTED_FLAG, true); + displayInformationMessageBox(Messages.OldConfigExportCompleteSuccessMsgTitle, + Messages.OldConfigExportCompleteSuccessMsg); + } + else + { + displayInformationMessageBox(Messages.OldConfigExportCompleteFailMsgTitle, + Messages.OldConfigExportCompleteFailMsg); + } + } + catch (IOException e) + { + Logger.log("Error exporting old configuration", e); + displayInformationMessageBox(Messages.OldConfigExportCompleteFailMsgTitle, + Messages.OldConfigExportCompleteFailMsg); + } + } + } + + private void displayInformationMessageBox(String messageTitle, String message) + { + Display display = Display.getDefault(); + display.syncExec(() -> { + MessageDialog.openInformation(display.getActiveShell(), messageTitle, message); + }); + } + private void showEimJsonStateChangeNotification() { int response = eimJsonUiChangeHandler.displayMessageToUser(); From 5c17c1def356c0c98f7383dbd92453f30f5e947a Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Mon, 16 Jun 2025 14:58:21 +0200 Subject: [PATCH 05/37] IEP-1529: Fix for system python executable (#1239) * IEP-1552: Fix for system python executable --- .../espressif/idf/core/tools/SetupToolsInIde.java | 10 +++++----- .../src/com/espressif/idf/core/util/IDFUtil.java | 13 ++----------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java index 90e5f1c11..a1dc462c1 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java @@ -231,7 +231,7 @@ private IStatus handleWebSocketClientInstall() String websocketClient = "websocket-client"; //$NON-NLS-1$ // pip install websocket-client List arguments = new ArrayList(); - final String pythonEnvPath = IDFUtil.getIDFPythonEnvPath(envVarsFromActivationScriptMap.get(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH)); + final String pythonEnvPath = idfInstalled.getPython(); if (pythonEnvPath == null || !new File(pythonEnvPath).exists()) { log(String.format("%s executable not found. Unable to run `%s -m pip install websocket-client`", //$NON-NLS-1$ @@ -331,10 +331,8 @@ private IStatus loadTargetsAvailableFromIdfInCurrentToolSet(boolean rollback) { List arguments = new ArrayList(); arguments.add(rollback - ? IDFUtil.getIDFPythonEnvPath( - existingEnvVarsInIdeForRollback.get(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH)) - : IDFUtil.getIDFPythonEnvPath( - envVarsFromActivationScriptMap.get(IDFEnvironmentVariables.IDF_PYTHON_ENV_PATH))); + ? existingEnvVarsInIdeForRollback.get(IDFEnvironmentVariables.PYTHON_EXE_PATH) + : idfInstalled.getPython()); arguments .add(IDFUtil .getIDFPythonScriptFile( @@ -479,6 +477,8 @@ private void setupEnvVarsInEclipse() idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.IDF_MAINTAINER, "1"); //$NON-NLS-1$ idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.ESP_IDF_EIM_ID, idfInstalled.getId()); + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.PYTHON_EXE_PATH, idfInstalled.getPython()); + IDFUtil.updateEspressifPrefPageOpenocdPath(); } diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java index 9051f6ad4..d8e2dd961 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java @@ -252,17 +252,8 @@ public static boolean checkIfIdfSupportsSpaces() public static String getPythonExecutable() { - IPath pythonPath = new SystemExecutableFinder().find(IDFConstants.PYTHON3_CMD); // look for python3 - if (pythonPath == null) - { - pythonPath = new SystemExecutableFinder().find(IDFConstants.PYTHON_CMD); // look for python - } - if (pythonPath != null) - { - return pythonPath.toOSString(); - } - - return IDFConstants.PYTHON_CMD; + IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); + return idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.PYTHON_EXE_PATH); } /** From e290a8f0f75a4083781377d653dc104542a3eaf5 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 18 Jun 2025 14:09:54 +0200 Subject: [PATCH 06/37] IEP-1555: Removed python dependencies installation (#1254) --- .../idf/core/tools/SetupToolsInIde.java | 79 ------------------- 1 file changed, 79 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java index a1dc462c1..1adfc9621 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java @@ -145,11 +145,6 @@ private IStatus setupTools(IProgressMonitor monitor) setUpToolChainsAndTargets(false); monitor.worked(1); - monitor.setTaskName("Installing pyhton dependency web-socket"); //$NON-NLS-1$ - log("Installing pyhton dependency web-socket", IStatus.INFO); //$NON-NLS-1$ - handleWebSocketClientInstall(); - monitor.worked(1); - monitor.setTaskName("Copying OpenOCD Rules"); //$NON-NLS-1$ log("Copying OpenOCD Rules", IStatus.INFO); //$NON-NLS-1$ copyOpenOcdRules(); @@ -226,80 +221,6 @@ public void run() } } - private IStatus handleWebSocketClientInstall() - { - String websocketClient = "websocket-client"; //$NON-NLS-1$ - // pip install websocket-client - List arguments = new ArrayList(); - final String pythonEnvPath = idfInstalled.getPython(); - if (pythonEnvPath == null || !new File(pythonEnvPath).exists()) - { - log(String.format("%s executable not found. Unable to run `%s -m pip install websocket-client`", //$NON-NLS-1$ - IDFConstants.PYTHON_CMD, IDFConstants.PYTHON_CMD), IStatus.ERROR); - return IDFCorePlugin.errorStatus( - String.format("%s executable not found. Unable to run `%s -m pip install websocket-client`", //$NON-NLS-1$ - IDFConstants.PYTHON_CMD, IDFConstants.PYTHON_CMD), - null); - } - arguments.add(pythonEnvPath); - arguments.add("-m"); //$NON-NLS-1$ - arguments.add("pip"); //$NON-NLS-1$ - arguments.add("list"); //$NON-NLS-1$ - - ProcessBuilderFactory processRunner = new ProcessBuilderFactory(); - - try - { - log("Executing " + arguments.toString(), IStatus.OK); //$NON-NLS-1$) - - Map environment = new HashMap<>(System.getenv()); - prepEnvMap(environment); - Logger.log(environment.toString()); - - IStatus status = processRunner.runInBackground(arguments, org.eclipse.core.runtime.Path.ROOT, environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), - IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ - log("Unable to get the process status", IStatus.ERROR); //$NON-NLS-1$ - return IDFCorePlugin.errorStatus("Unable to get the process status.", null); //$NON-NLS-1$ - } - - String cmdOutput = status.getMessage(); - if (cmdOutput.contains(websocketClient)) - { - return IDFCorePlugin.okStatus("websocket-client already installed", null); //$NON-NLS-1$ - } - - // websocket client not installed so installing it now. - arguments.remove(arguments.size() - 1); - arguments.add("install"); //$NON-NLS-1$ - arguments.add(websocketClient); - - status = processRunner.runInBackground(arguments, org.eclipse.core.runtime.Path.ROOT, environment); - if (status == null) - { - Logger.log(IDFCorePlugin.getPlugin(), - IDFCorePlugin.errorStatus("Unable to get the process status.", null)); //$NON-NLS-1$ - log("Unable to get the process status", IStatus.ERROR); //$NON-NLS-1$ - return IDFCorePlugin.errorStatus("Unable to get the process status.", null); //$NON-NLS-1$ - } - - log(status.getMessage(), IStatus.OK); - - return status; - } - catch (Exception e1) - { - Logger.log(IDFCorePlugin.getPlugin(), e1); - if (errorConsoleStream != null) - { - errorConsoleStream.println(e1.getLocalizedMessage()); - } - return IDFCorePlugin.errorStatus(e1.getLocalizedMessage(), e1); // $NON-NLS-1$; - } - } - private String replacePathVariable(String value) { // Get system PATH From 91253e3736830575a7c817e382bc029accbb3948 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Tue, 1 Jul 2025 20:14:38 +0200 Subject: [PATCH 07/37] IEP-1554: Launch and Download EIM (#1251) IEP-1554: Launch and Download of EIM added --------- Co-authored-by: Kondal Kolipaka --- .../idf/core/IDFEnvironmentVariables.java | 4 + .../espressif/idf/core/build/Messages.java | 3 + .../idf/core/build/messages.properties | 9 +- .../idf/core/tools/DownloadListener.java | 19 + .../idf/core/tools/EimConstants.java | 12 +- .../espressif/idf/core/tools/EimLoader.java | 552 ++++++++++++++++++ .../idf/core/tools/SetupToolsInIde.java | 35 +- .../idf/core/tools/ToolInitializer.java | 29 +- .../tools/watcher/EimJsonChangeListener.java | 2 +- .../tools/watcher/EimJsonWatchService.java | 45 +- .../com/espressif/idf/core/util/IDFUtil.java | 24 + bundles/com.espressif.idf.ui/plugin.xml | 16 - .../idf/ui/size/IDFSizeAnalysisEditor.java | 5 + .../idf/ui/size/IDFSizeDataManager.java | 5 + .../idf/ui/tools/EimButtonLaunchListener.java | 220 +++++++ .../idf/ui/tools/EspressifToolStartup.java | 246 +++++++- .../ui/tools/ManageEspIdfVersionsHandler.java | 21 - .../com/espressif/idf/ui/tools/Messages.java | 2 + .../manager/pages/ESPIDFMainTablePage.java | 19 +- .../idf/ui/tools/messages.properties | 6 +- .../tools/watcher/EimJsonUiChangeHandler.java | 22 +- 21 files changed, 1181 insertions(+), 115 deletions(-) create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/DownloadListener.java create mode 100644 bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimLoader.java create mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EimButtonLaunchListener.java diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFEnvironmentVariables.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFEnvironmentVariables.java index 12867f621..480eb0b4e 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFEnvironmentVariables.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/IDFEnvironmentVariables.java @@ -52,6 +52,10 @@ public class IDFEnvironmentVariables public static final String IDF_CCACHE_ENABLE = "IDF_CCACHE_ENABLE"; //$NON-NLS-1$ public static final String ESP_IDF_EIM_ID = "ESP_IDF_EIM_ID"; //$NON-NLS-1$ + + public static final String EIM_PATH = "EIM_PATH"; //$NON-NLS-1$ + + public static final String SYSTEM_PATH = "SYSTEM_PATH"; //$NON-NLS-1$ /** * @param variableName Environment variable Name diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/Messages.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/Messages.java index aa552a03d..1bcfde257 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/Messages.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/Messages.java @@ -50,6 +50,9 @@ public class Messages extends NLS public static String OldConfigExportCompleteSuccessMsg; public static String OldConfigExportCompleteFailMsgTitle; public static String OldConfigExportCompleteFailMsg; + + public static String EIMNotInApplicationsTitle; + public static String EIMNotInApplicationsMessage; static { diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties index a101c23f5..7e31a1293 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties @@ -19,8 +19,8 @@ IDFBuildConfiguration_ParseCommand=Parse Compile Commands File IncreasePartitionSizeTitle=Low Application Partition Size IncreasePartitionSizeMessage=Less than 30% of application partition size is free({0} of {1} bytes), would you like to increase it? Please click here to check more details. ToolsInitializationDifferentPathMessageBoxTitle=Different IDF path found in the config file -ToolsInitializationEimMissingMsgBoxTitle=ESP-IDF Not Found -ToolsInitializationEimMissingMsgBoxMessage=ESP-IDF is not found on your system. To use the IDE, install ESP-IDF using EIM - GUI Installer. \n\nOnce installed, the IDE will automatically detect ESP-IDF. You can verify and activate it from the ESP-IDF Manager, accessible via the menu: Espressif > ESP-IDF Manager.\n\n +ToolsInitializationEimMissingMsgBoxTitle=ESP-IDF Installation Required +ToolsInitializationEimMissingMsgBoxMessage=ESP-IDF is not currently installed on your system.\n\nThe IDE can automatically download and launch the EIM - GUI Installer to help you install it.\n\nWould you like to proceed with the installation?\n\nOnce complete, ESP-IDF will be detected automatically. You can also manage installations later from the ESP-IDF Manager (Espressif > ESP-IDF Manager). ToolsInitializationDifferentPathMessageBoxMessage=A different ESP-IDF path was found in the esp_idf.json.json configuration file. Do you want to install the tools in the new path or the old path? Please click on the appropriate button.\nNew Path: {0}\nOld Path: {1} ToolsInitializationDifferentPathMessageBoxOptionYes=Yes ToolsInitializationDifferentPathMessageBoxOptionNo=No @@ -31,6 +31,9 @@ IDFToolChainsMissingErrorMsg=Toolchains are missing. Please use ESP-IDF Manager NoActiveEspIdfInWorkspaceMsgTitle=ESP-IDF Setup NoActiveEspIdfInWorkspaceMsg=ESP-IDF is required to use Espressif IDE. Would you like to configure it now? +EIMNotInApplicationsTitle=EIM Not Located in Applications Folder +EIMNotInApplicationsMessage=Espressif Installation Manager (EIM) is not located in the Applications folder.\nRunning EIM from a temporary location (e.g., a mounted disk image) may cause issues during configuration import or tool setup.\nTo avoid problems, please move EIM to the /Applications directory and launch it from there. + OldConfigFoundMsgBoxTitle=Old Configuration Detected OldConfigFoundMsgBoxMsg=Espressif IDE now uses the EIM system to manage ESP-IDF installations. A legacy configuration was found in your current workspace. Converting it to the EIM format will allow proper environment setup and ensure the IDE works seamlessly with your existing projects. Would you like to convert the configuration now? OldConfigExportDirectorSelectionDialogTitle=Select Destination @@ -38,4 +41,4 @@ OldConfigExportDirectorSelectionDialogInfo=Choose a directory to save the export OldConfigExportCompleteSuccessMsgTitle=Import Successful OldConfigExportCompleteSuccessMsg=The configuration has been successfully Imported OldConfigExportCompleteFailMsgTitle=Conversion Failed -OldConfigExportCompleteFailMsg=An error occurred while converting old configuration. \ No newline at end of file +OldConfigExportCompleteFailMsg=An error occurred while converting old configuration. diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/DownloadListener.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/DownloadListener.java new file mode 100644 index 000000000..959713f13 --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/DownloadListener.java @@ -0,0 +1,19 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.core.tools; + +/** + * Interface to use for the download listening this can be used in your own classes. + * Added specifically for {@link EimLoader} + * @author Ali Azam Rana + * + */ +public interface DownloadListener +{ + public void onProgress(int percent); + public void onCompleted(String filePath); + public void onError(String message, Exception e); + +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimConstants.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimConstants.java index 1a43560ef..984e9ebbe 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimConstants.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimConstants.java @@ -1,12 +1,17 @@ package com.espressif.idf.core.tools; +import java.io.File; +import java.nio.file.Paths; + public interface EimConstants { String EIM_JSON = "eim_idf.json"; //$NON-NLS-1$ - String EIM_POSIX_DIR = System.getProperty("user.home").concat("/.espressif/tools/"); //$NON-NLS-1$//$NON-NLS-2$ + String EIM_POSIX_DIR = System.getProperty("user.home").concat(File.separator + ".espressif" + File.separator + "tools" + File.separator); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ + + String EIM_WIN_ESPRESSIF_DIR = "C:" + File.separator + "Espressif"; //$NON-NLS-1$ //$NON-NLS-2$ - String EIM_WIN_DIR = "C:\\Espressif\\tools\\"; //$NON-NLS-1$ + String EIM_WIN_DIR = EIM_WIN_ESPRESSIF_DIR + File.separator + "tools" + File.separator; //$NON-NLS-1$ String EIM_WIN_PATH = EIM_WIN_DIR + EIM_JSON; @@ -19,4 +24,7 @@ public interface EimConstants String TOOL_SET_CONFIG_LEGACY_CONFIG_FILE = "tool_set_config.json"; //$NON-NLS-1$ String OLD_CONFIG_EXPORTED_FLAG = "OLD_CONFIG_EXPORTED_FLAG"; //$NON-NLS-1$ + + String USER_EIM_DIR = Paths.get(System.getProperty("user.home"), ".espressif", "eim_gui").toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimLoader.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimLoader.java new file mode 100644 index 000000000..4db1005c2 --- /dev/null +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimLoader.java @@ -0,0 +1,552 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.core.tools; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.List; +import java.util.Optional; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.IJobChangeEvent; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.core.runtime.jobs.JobChangeAdapter; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.console.MessageConsoleStream; + +import com.espressif.idf.core.IDFEnvironmentVariables; +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.watcher.EimJsonWatchService; +import com.espressif.idf.core.util.StringUtil; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +/** + * This class is responsible for downloading and launching the EIM. + * The clients using this must take care of UI refreshes and pausing any listeners. + * @author Ali Azam Rana + * + */ +public class EimLoader +{ + private static final String URL_JSON = "https://dl.espressif.com/dl/eim/eim_unified_release.json"; //$NON-NLS-1$ + private static final Path DOWNLOAD_DIR = Paths.get(System.getProperty("java.io.tmpdir"), "eim_gui"); //$NON-NLS-1$ //$NON-NLS-2$ + + private String os; + private String arch; + private DownloadListener listener; + private MessageConsoleStream standardConsoleStream; + private MessageConsoleStream errorConsoleStream; + private Display display; + private long windowsPid; + + public EimLoader(DownloadListener listener, MessageConsoleStream standardConsoleStream, MessageConsoleStream errorConsoleStream, Display display) + { + os = Platform.getOS(); + arch = Platform.getOSArch(); + this.listener = listener; + this.standardConsoleStream = standardConsoleStream; + this.errorConsoleStream = errorConsoleStream; + this.display = display; + } + + private void logMessage(String message) + { + display.asyncExec(()->{ + try + { + standardConsoleStream.write(message); + } + catch (IOException e) + { + Logger.log(e); + logError(e.getMessage()); + } + }); + + Logger.log(message); + } + + private void logError(String message) + { + display.asyncExec(()->{ + try + { + errorConsoleStream.write(message); + } + catch (IOException e) + { + Logger.log(e); + } + }); + + Logger.log(message); + } + + public Process launchEim(String eimPath) throws IOException + { + if (!Files.exists(Paths.get(eimPath))) + throw new FileNotFoundException("EIM path not found: " + eimPath); //$NON-NLS-1$ + + String os = Platform.getOS(); + List command; + + if (os.equals(Platform.OS_WIN32)) + { + String escapedPathForPowershell = eimPath.replace("'", "''"); //$NON-NLS-1$ //$NON-NLS-2$ + String powershellCmd = String.format( + "Start-Process -FilePath '%s' -PassThru | " //$NON-NLS-1$ + + "Select-Object -ExpandProperty Id", //$NON-NLS-1$ + escapedPathForPowershell); + + command = List.of("powershell.exe", //$NON-NLS-1$ + "-Command", powershellCmd); //$NON-NLS-1$ + } + else if (os.equals(Platform.OS_MACOSX)) + { + command = List.of("open", "-W", "-a", eimPath); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ + } + else if (os.equals(Platform.OS_LINUX)) + { + command = List.of("bash", "-c", "\"" + eimPath + "\""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + } + else + { + throw new UnsupportedOperationException("Unsupported OS: " + os); //$NON-NLS-1$ + } + + Process process = new ProcessBuilder(command).redirectErrorStream(true).start(); + if (os.equals(Platform.OS_WIN32)) + { + // store the PID returned by powershell query to a variable + storePid(process); + } + + logMessage("Launched EIM application: " + eimPath + "\n"); //$NON-NLS-1$ //$NON-NLS-2$ + + return process; + } + + private void storePid(Process powershellProcess) + { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(powershellProcess.getInputStream()))) + { + String line; + while ((line = reader.readLine()) != null) + { + line = line.trim(); + if (!line.isEmpty()) + { + try + { + windowsPid = Long.parseLong(line); + + } + catch (NumberFormatException ignored) + { + // skipping invalid lines + } + } + } + } + catch (IOException e) + { + Logger.log(e); + } + } + + public String installAndLaunchDmg(Path dmgPath) throws IOException, InterruptedException + { + logMessage("Mounting DMG…\n"); //$NON-NLS-1$ + Process mountProcess = new ProcessBuilder("hdiutil", "attach", dmgPath.toString()) //$NON-NLS-1$ //$NON-NLS-2$ + .redirectErrorStream(true).start(); + + int mountExit = mountProcess.waitFor(); + if (mountExit != 0) + throw new IOException("hdiutil attach failed (exit " + mountExit + "): " //$NON-NLS-1$ //$NON-NLS-2$ + + readProcessOutput(mountProcess)); + + String volumePath = parseVolumePath(mountProcess.getInputStream()); + if (volumePath == null) + throw new IOException("Failed to mount DMG: volume path not found."); //$NON-NLS-1$ + + File[] apps = new File(volumePath).listFiles((dir, name) -> name.endsWith(".app")); //$NON-NLS-1$ + if (apps == null || apps.length == 0) + throw new FileNotFoundException("No .app found inside DMG."); //$NON-NLS-1$ + + File appBundle = apps[0]; + Path targetAppPath = Paths.get("/Applications", appBundle.getName()); //$NON-NLS-1$ + + logMessage("Copying app to /Applications…\n"); //$NON-NLS-1$ + Process copyProcess = new ProcessBuilder("cp", "-R", appBundle.getAbsolutePath(), //$NON-NLS-1$ //$NON-NLS-2$ + targetAppPath.toString()).redirectErrorStream(true).start(); + + int copyExit = copyProcess.waitFor(); + if (copyExit != 0) + throw new IOException("Copy failed (exit " + copyExit + "): " //$NON-NLS-1$ //$NON-NLS-2$ + + readProcessOutput(copyProcess)); + + logMessage("Unmounting DMG…\n"); //$NON-NLS-1$ + Process detachProcess = new ProcessBuilder("hdiutil", "detach", volumePath) //$NON-NLS-1$ //$NON-NLS-2$ + .redirectErrorStream(true).start(); + + int detachExit = detachProcess.waitFor(); + if (detachExit != 0) + throw new IOException("hdiutil detach failed (exit " + detachExit + "): " //$NON-NLS-1$ //$NON-NLS-2$ + + readProcessOutput(detachProcess)); + + String eimPath = targetAppPath.resolve("Contents/MacOS/eim").toString(); //$NON-NLS-1$ + new IDFEnvironmentVariables().addEnvVariable(IDFEnvironmentVariables.EIM_PATH, eimPath); + return eimPath; + } + + private String readProcessOutput(Process p) throws IOException + { + try (BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()))) + { + StringBuilder sb = new StringBuilder(); + String line; + while ((line = br.readLine()) != null) sb.append(line).append(System.lineSeparator()); + return sb.toString(); + } + } + + private String parseVolumePath(InputStream mountOut) throws IOException + { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(mountOut))) + { + String line; + while ((line = reader.readLine()) != null) + { + if (line.contains("/Volumes/")) //$NON-NLS-1$ + { + for (String part : line.split("\t")) //$NON-NLS-1$ + if (part.startsWith("/Volumes/")) return part.trim(); //$NON-NLS-1$ + } + } + } + return null; + } + + + public void downloadEim(IProgressMonitor monitor) + { + try + { + JsonObject root = fetchJson(); + JsonArray assets = root.getAsJsonArray("assets"); //$NON-NLS-1$ + Optional match = findMatchingAsset(assets); + + if (match.isEmpty()) + { + listener.onError("No suitable EIM GUI asset found.", null); //$NON-NLS-1$ + monitor.done(); + return; + } + + JsonObject asset = match.get(); + String name = asset.get("name").getAsString(); //$NON-NLS-1$ + String downloadUrl = asset.get("browser_download_url").getAsString(); //$NON-NLS-1$ + + Files.createDirectories(DOWNLOAD_DIR); + cleanupDownloadDirectory(); + Path downloadPath = DOWNLOAD_DIR.resolve(name); + + downloadFile(downloadUrl, downloadPath, listener, monitor); + Path eimPath = Paths.get(EimConstants.USER_EIM_DIR); + Files.createDirectories(eimPath); + + if (name.endsWith(".zip")) //$NON-NLS-1$ + { + Path extracted = unzip(downloadPath, eimPath); + listener.onCompleted(extracted.toAbsolutePath().toString()); + } + else if (name.endsWith(".exe")) //$NON-NLS-1$ + { + eimPath = Paths.get(eimPath.toString(), name); + Files.copy(downloadPath, eimPath, StandardCopyOption.REPLACE_EXISTING); + listener.onCompleted(eimPath.toString()); + } + else + { + listener.onCompleted(downloadPath.toAbsolutePath().toString()); + } + } + catch (IOException e) + { + listener.onError("Download failed", e); //$NON-NLS-1$ + } finally + { + monitor.done(); + } + + } + + private IStatus waitForProcessWindows() + { + while (isWindowsProcessAlive(windowsPid)) + { + try + { + Thread.sleep(1000); + } + catch (InterruptedException e) + { + Logger.log(e); + } + } + + return Status.OK_STATUS; + } + + private boolean isWindowsProcessAlive(long pid) + { + try + { + Process check = new ProcessBuilder("cmd.exe", //$NON-NLS-1$ + "/c", //$NON-NLS-1$ + "tasklist", //$NON-NLS-1$ + "/FI", //$NON-NLS-1$ + "\"PID eq " + pid + "\"").redirectErrorStream(true).start(); //$NON-NLS-1$ //$NON-NLS-2$ + try (BufferedReader reader = new BufferedReader(new InputStreamReader(check.getInputStream()))) + { + String line; + while ((line = reader.readLine()) != null) + { + if (line.contains(String.valueOf(windowsPid))) + { + return true; + } + } + } + } + catch (IOException e) + { + Logger.log(e); + } + + return false; + } + + private IStatus waitForProcess(Process process) + { + try + { + process.waitFor(); + return Status.OK_STATUS; + } + catch (InterruptedException e) + { + return Status.CANCEL_STATUS; + } + catch (Exception e) + { + Logger.log(e); + return Status.error(e.getMessage()); + } + } + + public void waitForEimClosure(Process process, Runnable callback) + { + Job waitJob = new Job("Wait for EIM Closure") //$NON-NLS-1$ + { + @Override + protected IStatus run(IProgressMonitor monitor) + { + return os.equals(Platform.OS_WIN32) ? waitForProcessWindows() : waitForProcess(process); + } + }; + waitJob.setSystem(true); + + + waitJob.addJobChangeListener(new JobChangeAdapter() + { + @Override + public void aboutToRun(IJobChangeEvent event) + { + EimJsonWatchService.getInstance().pauseListeners(); + } + + @Override + public void done(IJobChangeEvent event) + { + Display.getDefault().asyncExec(() -> { + try + { + standardConsoleStream.write("EIM has been closed.\n"); //$NON-NLS-1$ + } + catch (IOException e) + { + Logger.log(e); + } + }); + + if (callback != null) + { + callback.run(); + } + + EimJsonWatchService.getInstance().unpauseListeners(); + } + }); + + waitJob.schedule(); + } + + private JsonObject fetchJson() throws IOException + { + URL url = new URL(URL_JSON); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setRequestProperty("accept", "application/json"); //$NON-NLS-1$//$NON-NLS-2$ + connection.setConnectTimeout(10000); + connection.setReadTimeout(10000); + + try (InputStreamReader reader = new InputStreamReader(connection.getInputStream())) + { + return JsonParser.parseReader(reader).getAsJsonObject(); + } + } + + private void cleanupDownloadDirectory() + { + try + { + Files.list(DOWNLOAD_DIR) + .filter(Files::isRegularFile) + .forEach(path -> { + try + { + Files.deleteIfExists(path); + } + catch (IOException e) + { + Logger.log("Failed to delete old download: " + path); //$NON-NLS-1$ + } + }); + } + catch (IOException e) + { + Logger.log("Failed to clean up download directory: " + e.getMessage()); //$NON-NLS-1$ + } + } + + private Optional findMatchingAsset(JsonArray assets) + { + String osToken = switch (os) + { + case Platform.OS_WIN32 -> "windows"; //$NON-NLS-1$ + case Platform.OS_MACOSX -> "macos"; //$NON-NLS-1$ + case Platform.OS_LINUX -> "linux"; //$NON-NLS-1$ + default -> StringUtil.EMPTY; + }; + + String archToken = switch (arch) + { + case Platform.ARCH_X86_64 -> "x64"; //$NON-NLS-1$ + case Platform.ARCH_AARCH64, "arm64" -> "aarch64"; //$NON-NLS-1$ //$NON-NLS-2$ + default -> StringUtil.EMPTY; + }; + + for (int i = 0; i < assets.size(); i++) + { + JsonObject asset = assets.get(i).getAsJsonObject(); + String name = asset.get("name").getAsString().toLowerCase(); //$NON-NLS-1$ + if (name.contains("eim-gui") && //$NON-NLS-1$ + name.contains(osToken) && name.contains(archToken) + && (name.endsWith(".exe") || name.endsWith(".dmg") || name.endsWith(".zip"))) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + { + return Optional.of(asset); + } + } + + return Optional.empty(); + } + + private void downloadFile(String fileURL, Path targetPath, DownloadListener listener, IProgressMonitor monitor) + throws IOException + { + URL url = new URL(fileURL); + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + connection.setConnectTimeout(10000); + connection.setReadTimeout(10000); + + int contentLength = connection.getContentLength(); + monitor.beginTask("Downloading " + targetPath.getFileName(), contentLength); //$NON-NLS-1$ + + try (InputStream in = connection.getInputStream(); OutputStream out = Files.newOutputStream(targetPath)) + { + + byte[] buffer = new byte[8192]; + int bytesRead; + long totalRead = 0; + int lastPercent = 0; + + while ((bytesRead = in.read(buffer)) != -1) + { + out.write(buffer, 0, bytesRead); + totalRead += bytesRead; + if (contentLength > 0) + { + int percent = (int) ((totalRead * 100) / contentLength); + if (percent != lastPercent) + { + listener.onProgress(percent); + lastPercent = percent; + monitor.worked(bytesRead); + } + } + } + } + } + + private Path unzip(Path zipPath, Path destDir) throws IOException + { + Files.createDirectories(destDir); + Path firstExecutable = null; + + try (ZipInputStream zis = new ZipInputStream(new FileInputStream(zipPath.toFile()))) + { + ZipEntry entry; + while ((entry = zis.getNextEntry()) != null) + { + Path newPath = destDir.resolve(entry.getName()); + if (entry.isDirectory()) + { + Files.createDirectories(newPath); + } + else + { + Files.createDirectories(newPath.getParent()); + Files.copy(zis, newPath, StandardCopyOption.REPLACE_EXISTING); + if (firstExecutable == null && Files.isRegularFile(newPath)) + { + newPath.toFile().setExecutable(true); + firstExecutable = newPath; + } + } + } + } + return firstExecutable != null ? firstExecutable : destDir; + } + +} diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java index 1adfc9621..a4b603a7d 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/SetupToolsInIde.java @@ -221,31 +221,18 @@ public void run() } } - private String replacePathVariable(String value) + private String getUpdatedPathWithSystemPath() { - // Get system PATH - Map systemEnv = new HashMap<>(System.getenv()); - String pathEntry = systemEnv.get("PATH"); //$NON-NLS-1$ - if (pathEntry == null) - { - pathEntry = systemEnv.get("Path"); // for Windows //$NON-NLS-1$ - if (pathEntry == null) // no idea - { - Logger.log(new Exception("No PATH found in the system environment variables")); //$NON-NLS-1$ - } - } - - if (!StringUtil.isEmpty(pathEntry)) - { - value = value.concat(File.pathSeparator).concat(pathEntry); - } + // EIM is giving us SYSTEM_PATH variable as well so we can simply add it to the PATH here and remove it from ENV vars + IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); - if (Platform.getOS().equals(Platform.OS_MACOSX)) - { - value = value.concat(File.pathSeparator).concat("/opt/homebrew/bin").concat(File.pathSeparator).concat("/usr/local/bin"); //$NON-NLS-1$ //$NON-NLS-2$ - } + String systemPath = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.SYSTEM_PATH); + String path = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.PATH) + File.pathSeparator + systemPath; + + // we can remove the system_path from build vars as we dont need it here + idfEnvironmentVariables.removeEnvVariable(IDFEnvironmentVariables.SYSTEM_PATH); - return value; + return path; } private IStatus loadTargetsAvailableFromIdfInCurrentToolSet(boolean rollback) @@ -390,7 +377,7 @@ private void setupEnvVarsInEclipse() idfEnvironmentVariables.addEnvVariable(entry.getKey(), entry.getValue()); } - String path = replacePathVariable(envVarsFromActivationScriptMap.get(IDFEnvironmentVariables.PATH)); + String path = getUpdatedPathWithSystemPath(); idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.PATH, path); idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.IDF_COMPONENT_MANAGER, "1"); //$NON-NLS-1$ @@ -400,6 +387,8 @@ private void setupEnvVarsInEclipse() idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.PYTHON_EXE_PATH, idfInstalled.getPython()); + + IDFUtil.updateEspressifPrefPageOpenocdPath(); } diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java index 42fb18a12..7b7e514f8 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java @@ -6,6 +6,8 @@ import java.io.File; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; @@ -17,9 +19,11 @@ import org.osgi.service.prefs.Preferences; import com.espressif.idf.core.IDFCorePlugin; +import com.espressif.idf.core.IDFEnvironmentVariables; import com.espressif.idf.core.ProcessBuilderFactory; import com.espressif.idf.core.logging.Logger; import com.espressif.idf.core.tools.vo.EimJson; +import com.espressif.idf.core.util.StringUtil; /** * Initializer class to be used on startup of eclipse and also @@ -31,16 +35,26 @@ public class ToolInitializer { private final Preferences preferences; private final EimIdfConfiguratinParser parser; + private IDFEnvironmentVariables idfEnvironmentVariables; public ToolInitializer(Preferences preferences) { this.preferences = preferences; this.parser = new EimIdfConfiguratinParser(); + idfEnvironmentVariables = new IDFEnvironmentVariables(); } public boolean isEimInstalled() { - return isEimIdfJsonPresent(); + String eimExePathEnv = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH); + return !StringUtil.isEmpty(eimExePathEnv) && Files.exists(Paths.get(eimExePathEnv)); + } + + public boolean isEimIdfJsonPresent() + { + String path = Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_PATH + : EimConstants.EIM_POSIX_PATH; + return new File(path).exists(); } public EimJson loadEimJson() @@ -61,16 +75,18 @@ public boolean isOldEspIdfConfigPresent() return getOldConfigFile().exists(); } - public IStatus exportOldConfig() throws IOException + public IStatus exportOldConfig(String eimPath) throws IOException { File oldConfig = getOldConfigFile(); if (oldConfig.exists()) { // eim import pathToOldConfigJson List commands = new ArrayList<>(); - commands.add(loadEimJson().getEimPath()); + commands.add(StringUtil.isEmpty(eimPath) ? + idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH) : eimPath); commands.add("import"); //$NON-NLS-1$ commands.add(oldConfig.getAbsolutePath()); + Logger.log("Running: " + commands.toString()); //$NON-NLS-1$ ProcessBuilderFactory processBuilderFactory = new ProcessBuilderFactory(); IStatus status = processBuilderFactory.runInBackground(commands, org.eclipse.core.runtime.Path.ROOT, System.getenv()); @@ -93,13 +109,6 @@ private File getOldConfigFile() return new File(path.toOSString(), EimConstants.TOOL_SET_CONFIG_LEGACY_CONFIG_FILE); } - private boolean isEimIdfJsonPresent() - { - String path = Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_PATH - : EimConstants.EIM_POSIX_PATH; - return new File(path).exists(); - } - public boolean isEspIdfSet() { return preferences.getBoolean(EimConstants.INSTALL_TOOLS_FLAG, false); diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonChangeListener.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonChangeListener.java index 37d12f78d..3a8810fac 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonChangeListener.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonChangeListener.java @@ -13,5 +13,5 @@ */ public interface EimJsonChangeListener { - void onJsonFileChanged(Path file); + void onJsonFileChanged(Path file, boolean paused); } diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java index 9d751b0db..38cdc1029 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.nio.file.*; +import java.nio.file.attribute.FileAttribute; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; @@ -26,13 +27,19 @@ public class EimJsonWatchService extends Thread private final Path watchDirectoryPath; private final List eimJsonChangeListeners = new CopyOnWriteArrayList<>(); private volatile boolean running = true; - + private volatile boolean paused = false; + + private EimJsonWatchService() throws IOException { String directoryPathString = Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_DIR : EimConstants.EIM_POSIX_DIR; watchDirectoryPath = Paths.get(directoryPathString); + if (!Files.exists(watchDirectoryPath)) + { + Files.createDirectories(watchDirectoryPath); + } watchService = FileSystems.getDefault().newWatchService(); watchDirectoryPath.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY); @@ -73,11 +80,43 @@ public void addEimJsonChangeListener(EimJsonChangeListener listener) eimJsonChangeListeners.add(listener); } } - + public void removeAllListeners() { eimJsonChangeListeners.clear(); } + + public static void withPausedListeners(Runnable task) + { + EimJsonWatchService watchService = getInstance(); + boolean wasPaused = watchService.paused; + watchService.pauseListeners(); + + try + { + task.run(); + } + catch (Exception e) + { + Logger.log(e); + } + finally { + if (!wasPaused) + watchService.unpauseListeners(); + } + } + + public void pauseListeners() + { + Logger.log("Listeners are paused"); //$NON-NLS-1$ + paused = true; + } + + public void unpauseListeners() + { + Logger.log("Listeners are resumed"); //$NON-NLS-1$ + paused = false; + } @Override public void run() @@ -113,7 +152,7 @@ public void run() Path fullPath = watchDirectoryPath.resolve(path); for (EimJsonChangeListener listener : eimJsonChangeListeners) { - listener.onJsonFileChanged(fullPath); + listener.onJsonFileChanged(fullPath, paused); } } } diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java index d8e2dd961..e802a4ba4 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java @@ -212,6 +212,30 @@ public static String getIDFPythonEnvPath() } + public static String getIDFPythonEnvPath(String idfPyEnvPath) + { + idfPyEnvPath = idfPyEnvPath.strip(); + if (!StringUtil.isEmpty(idfPyEnvPath)) + { + + if (Platform.getOS().equals(Platform.OS_WIN32)) + { + idfPyEnvPath = idfPyEnvPath + "/" + "Scripts"; //$NON-NLS-1$ //$NON-NLS-2$ + } + else + { + idfPyEnvPath = idfPyEnvPath + "/" + "bin"; //$NON-NLS-1$ //$NON-NLS-2$ + } + java.nio.file.Path commandPath = findCommand(IDFConstants.PYTHON_CMD, idfPyEnvPath); + if (commandPath != null) + { + return commandPath.toFile().getAbsolutePath(); + } + } + return findCommandFromBuildEnvPath(IDFConstants.PYTHON_CMD); + + } + public static String getIDFPythonEnvPath(String idfPyEnvPath) { idfPyEnvPath = idfPyEnvPath.strip(); diff --git a/bundles/com.espressif.idf.ui/plugin.xml b/bundles/com.espressif.idf.ui/plugin.xml index 5365f564c..f0e744069 100644 --- a/bundles/com.espressif.idf.ui/plugin.xml +++ b/bundles/com.espressif.idf.ui/plugin.xml @@ -37,17 +37,6 @@ id="espidftoolsInstall" style="push"> - - - - - - @@ -412,11 +401,6 @@ id="com.espressif.idf.ui.command.eclipeguide" name="%command.name.9"> - - addJsonParseCommand() public boolean isVersionAtLeast(String currentIDFVersion, String minimumIDFVersion) { + if (currentIDFVersion.equalsIgnoreCase("master")) //$NON-NLS-1$ + { + return true; + } + Version currentVersion = Version.parse(currentIDFVersion); Version minVersion = Version.parse(minimumIDFVersion); return currentVersion.compareTo(minVersion) >= 0; diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EimButtonLaunchListener.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EimButtonLaunchListener.java new file mode 100644 index 000000000..22201670b --- /dev/null +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EimButtonLaunchListener.java @@ -0,0 +1,220 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.ui.tools; + +import java.io.IOException; +import java.nio.file.Paths; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.console.MessageConsoleStream; +import org.eclipse.ui.ide.IDE; +import org.osgi.service.prefs.Preferences; + +import com.espressif.idf.core.IDFEnvironmentVariables; +import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.DownloadListener; +import com.espressif.idf.core.tools.EimIdfConfiguratinParser; +import com.espressif.idf.core.tools.EimLoader; +import com.espressif.idf.core.tools.ToolInitializer; +import com.espressif.idf.core.tools.vo.EimJson; +import com.espressif.idf.ui.UIPlugin; +import com.espressif.idf.ui.handlers.EclipseHandler; +import com.espressif.idf.ui.tools.manager.ESPIDFManagerEditor; +import com.espressif.idf.ui.tools.manager.EimEditorInput; +import com.espressif.idf.ui.tools.manager.pages.ESPIDFMainTablePage; + +/** + * This is a class that other UI elements can also use to trigger + * a simulated event on any widget to launch or download the EIM. + * The primary usage is in {@link ESPIDFMainTablePage} + * @author Ali Azam Rana + * + */ +public class EimButtonLaunchListener extends SelectionAdapter +{ + private ESPIDFMainTablePage espidfMainTablePage; + private Display display; + private Preferences preferences; + private ToolInitializer toolInitializer; + private IDFEnvironmentVariables idfEnvironmentVariables = new IDFEnvironmentVariables(); + private MessageConsoleStream standardConsoleStream; + private MessageConsoleStream errorConsoleStream; + private EimLoader eimLoader; + + public EimButtonLaunchListener(ESPIDFMainTablePage espidfMainTablePage, Display display, + MessageConsoleStream standardConsoleStream, MessageConsoleStream errorConsoleStream) + { + this.espidfMainTablePage = espidfMainTablePage; + this.display = display; + this.standardConsoleStream = standardConsoleStream; + this.errorConsoleStream = errorConsoleStream; + preferences = org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE.getNode(UIPlugin.PLUGIN_ID); + toolInitializer = new ToolInitializer(preferences); + eimLoader = new EimLoader(new EimDownlaodListener(), standardConsoleStream, errorConsoleStream, display); + } + + @Override + public void widgetSelected(SelectionEvent selectionEvent) + { + if (!toolInitializer.isEimInstalled()) + { + Job downloadJob = new Job("Download and Launch EIM") + { + + @Override + protected IStatus run(IProgressMonitor monitor) + { + eimLoader.downloadEim(monitor); + return Status.OK_STATUS; + } + }; + downloadJob.setUser(true); + downloadJob.schedule(); + } + else + { + try + { + Process process = eimLoader.launchEim(idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH)); + eimLoader.waitForEimClosure(process, EimButtonLaunchListener.this::refreshAfterEimClose); + } + catch (IOException e) + { + Logger.log(e); + } + } + } + + private void refreshAfterEimClose() + { + display.asyncExec(() -> { + try + { + launchEspIdfManager(); + standardConsoleStream.write("Refreshing UI after EIM closed...\n"); + espidfMainTablePage.refreshEditorUI(); + espidfMainTablePage.setupInitialEspIdf(); + } + catch (IOException | PartInitException e) + { + Logger.log(e); + } + }); + } + + private void launchEspIdfManager() throws PartInitException + { + Display.getDefault().asyncExec(() -> { + IWorkbenchWindow activeww = EclipseHandler.getActiveWorkbenchWindow(); + if (activeww == null || activeww.getActivePage() == null) + { + Logger.log("Cannot open ESP-IDF Manager. No active workbench window or active page."); + return; + } + + try + { + EimIdfConfiguratinParser eimIdfConfiguratinParser = new EimIdfConfiguratinParser(); + EimJson eimJson = eimIdfConfiguratinParser.getEimJson(true); + IDE.openEditor(activeww.getActivePage(), new EimEditorInput(eimJson), ESPIDFManagerEditor.EDITOR_ID, + true); + } + catch (PartInitException | IOException e) + { + Logger.log("Failed to open ESP-IDF Manager Editor."); + Logger.log(e); + } + }); + + } + + private class EimDownlaodListener implements DownloadListener + { + @Override + public void onProgress(int percent) + { + display.asyncExec(() -> { + try + { + int blocks = percent / 10; + String bar = "[" + "#".repeat(blocks) + " ".repeat(10 - blocks) + "] " + percent + "%"; + standardConsoleStream.write("\r" + bar); + } + catch (IOException e) + { + Logger.log(e); + } + }); + } + + @Override + public void onCompleted(String filePath) + { + display.syncExec(() -> { + try + { + standardConsoleStream.write("\nEIM Downloaded to: " + filePath + "\nLaunching...\n"); + } + catch (IOException e) + { + Logger.log(e); + } + }); + + String appToLaunch = filePath; + + if (filePath.endsWith(".dmg")) + { + try + { + appToLaunch = eimLoader.installAndLaunchDmg(Paths.get(filePath)); + } + catch ( + IOException + | InterruptedException e) + { + Logger.log(e); + } + } + + Process process; + try + { + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.EIM_PATH, appToLaunch); + process = eimLoader.launchEim(appToLaunch); + eimLoader.waitForEimClosure(process, EimButtonLaunchListener.this::refreshAfterEimClose); + } + catch (IOException e) + { + Logger.log(e); + } + } + + @Override + public void onError(String message, Exception e) + { + display.asyncExec(() -> { + try + { + errorConsoleStream.write("Download Failed: " + e.getMessage()); + } + catch (IOException e1) + { + Logger.log(e1); + } + }); + } + + } + +} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index 830e6922e..84d1fd6a0 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -5,31 +5,43 @@ package com.espressif.idf.ui.tools; import java.io.IOException; -import java.text.MessageFormat; +import java.nio.file.Files; +import java.nio.file.Paths; +import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IStartup; +import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.console.MessageConsoleStream; import org.eclipse.ui.ide.IDE; +import org.eclipse.ui.intro.IIntroManager; import org.osgi.service.prefs.Preferences; +import com.espressif.idf.core.IDFEnvironmentVariables; import com.espressif.idf.core.build.Messages; import com.espressif.idf.core.logging.Logger; +import com.espressif.idf.core.tools.DownloadListener; import com.espressif.idf.core.tools.EimConstants; +import com.espressif.idf.core.tools.EimLoader; import com.espressif.idf.core.tools.ToolInitializer; import com.espressif.idf.core.tools.vo.EimJson; import com.espressif.idf.core.tools.watcher.EimJsonStateChecker; import com.espressif.idf.core.tools.watcher.EimJsonWatchService; import com.espressif.idf.core.util.IDFUtil; import com.espressif.idf.core.util.StringUtil; +import com.espressif.idf.ui.IDFConsole; import com.espressif.idf.ui.UIPlugin; -import com.espressif.idf.ui.dialogs.MessageLinkDialog; import com.espressif.idf.ui.handlers.EclipseHandler; import com.espressif.idf.ui.tools.manager.ESPIDFManagerEditor; import com.espressif.idf.ui.tools.manager.EimEditorInput; @@ -46,41 +58,57 @@ public class EspressifToolStartup implements IStartup private EimJsonUiChangeHandler eimJsonUiChangeHandler; private ToolInitializer toolInitializer; private Preferences preferences; + private EimJson eimJson; + private EimLoader eimLoader; + private MessageConsoleStream standardConsoleStream; + private MessageConsoleStream errorConsoleStream; + private IDFEnvironmentVariables idfEnvironmentVariables; @Override public void earlyStartup() { - Preferences preferences = org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE + preferences = org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE .getNode(UIPlugin.PLUGIN_ID); - ToolInitializer toolInitializer = new ToolInitializer(preferences); + toolInitializer = new ToolInitializer(preferences); + standardConsoleStream = getConsoleStream(false); + errorConsoleStream = getConsoleStream(true); + idfEnvironmentVariables = new IDFEnvironmentVariables(); + eimLoader = new EimLoader(new StartupClassDownloadEimDownloadListener(), + standardConsoleStream, errorConsoleStream, Display.getDefault()); EimJsonStateChecker stateChecker = new EimJsonStateChecker(preferences); eimJsonUiChangeHandler = new EimJsonUiChangeHandler(preferences); stateChecker.updateLastSeenTimestamp(); EimJsonWatchService.getInstance().addEimJsonChangeListener(eimJsonUiChangeHandler); - if (!toolInitializer.isEimInstalled()) + if (!toolInitializer.isEimInstalled() && !toolInitializer.isEimIdfJsonPresent()) { Logger.log("EIM not installed"); notifyMissingTools(); return; } - if (toolInitializer.isOldEspIdfConfigPresent() - && !toolInitializer.isOldConfigExported()) + eimJson = toolInitializer.loadEimJson(); + + if (toolInitializer.isOldEspIdfConfigPresent() && !toolInitializer.isOldConfigExported()) { Logger.log("Old configuration found and not converted"); - handleOldConfigExport(); + boolean isEimInApplications = checkIfEimPathMacOsIsInApplications(); + if (!isEimInApplications) + { + promptUserToMoveEimToApplications(); + } + + EimJsonWatchService.withPausedListeners(()-> handleOldConfigExport()); } - - EimJson eimJson = toolInitializer.loadEimJson(); - if (eimJson == null) + else if (toolInitializer.isEimIdfJsonPresent() && !toolInitializer.isEspIdfSet()) { - return; + promptUserToOpenToolManager(eimJson); } - if (!toolInitializer.isEspIdfSet()) + // Set EimPath on every startup to ensure proper path in configurations + if (eimJson != null) { - promptUserToOpenToolManager(eimJson); + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.EIM_PATH, eimJson.getEimPath()); } if (stateChecker.wasModifiedSinceLastRun()) @@ -89,6 +117,29 @@ public void earlyStartup() } } + private boolean checkIfEimPathMacOsIsInApplications() + { + if (!Platform.getOS().equals(Platform.OS_MACOSX)) + return true; + + String eimPath = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH); + if (!StringUtil.isEmpty(eimPath)) + { + if (Files.exists(Paths.get(eimPath))) + { + boolean isInApplications = eimPath.startsWith("/Applications/") || + eimPath.startsWith(System.getProperty("user.home") + "/Applications/"); + if (!isInApplications) + { + Logger.log("EIM_PATH not in applications: " + eimPath); + return false; + } + } + } + + return true; + } + private void handleOldConfigExport() { final int[] response = new int[] { -1 }; @@ -105,7 +156,7 @@ private void handleOldConfigExport() { try { - IStatus status = toolInitializer.exportOldConfig(); + IStatus status = toolInitializer.exportOldConfig(eimJson != null ? eimJson.getEimPath() : StringUtil.EMPTY); Logger.log("Tools Conversion Process Message: "); Logger.log(status.getMessage()); if (status.getSeverity() != IStatus.ERROR) @@ -145,13 +196,66 @@ private void showEimJsonStateChangeNotification() private void notifyMissingTools() { - Display.getDefault().asyncExec(() -> { - MessageLinkDialog.openWarning(Display.getDefault().getActiveShell(), + boolean [] userAgreed = new boolean[1]; + Display.getDefault().syncExec(() -> { + userAgreed[0] = MessageDialog.openQuestion(Display.getDefault().getActiveShell(), Messages.ToolsInitializationEimMissingMsgBoxTitle, - MessageFormat.format(Messages.ToolsInitializationEimMissingMsgBoxMessage, EimConstants.EIM_URL)); + Messages.ToolsInitializationEimMissingMsgBoxMessage); + }); + + if (userAgreed[0]) + { + // Download Launch EIM + downloadAndLaunchEim(); + } + else + { + Logger.log("User selected No to download EIM"); + } + } + + private void downloadAndLaunchEim() + { + closeWelcomePage(); + Job downloadJob = new Job("Download and Launch EIM") + { + + @Override + protected IStatus run(IProgressMonitor monitor) + { + eimLoader.downloadEim(monitor); + return Status.OK_STATUS; + } + }; + downloadJob.setUser(true); + downloadJob.schedule(); + } + + private void closeWelcomePage() + { + Display.getDefault().asyncExec(() -> { + IWorkbench workbench = PlatformUI.getWorkbench(); + if (workbench != null) + { + IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); + if (window != null) + { + IIntroManager introManager = workbench.getIntroManager(); + if (introManager.getIntro() != null) + { + introManager.closeIntro(introManager.getIntro()); + } + } + } }); } + private MessageConsoleStream getConsoleStream(boolean errorStream) + { + IDFConsole idfConsole = new IDFConsole(); + return idfConsole.getConsoleStream("EIM Launch Console", null, errorStream); + } + private void promptUserToOpenToolManager(EimJson eimJson) { Display.getDefault().syncExec(() -> { @@ -175,20 +279,110 @@ private void promptUserToOpenToolManager(EimJson eimJson) } }); } + + private void promptUserToMoveEimToApplications() + { + Display.getDefault().asyncExec(() -> { + MessageDialog.openInformation( + Display.getDefault().getActiveShell(), + Messages.EIMNotInApplicationsTitle, Messages.EIMNotInApplicationsMessage); + }); + } private void openEspIdfManager(EimJson eimJson) { - IWorkbenchWindow window = EclipseHandler.getActiveWorkbenchWindow(); - IDFUtil.closeWelcomePage(window); - try + Display.getDefault().asyncExec(() -> { + IWorkbenchWindow window = EclipseHandler.getActiveWorkbenchWindow(); + try + { + EimEditorInput input = new EimEditorInput(eimJson); + input.setFirstStartup(true); + IDE.openEditor(window.getActivePage(), input, ESPIDFManagerEditor.EDITOR_ID); + IDFUtil.closeWelcomePage(window); + } + catch (PartInitException e) + { + Logger.log(e); + } + }); + } + + private class StartupClassDownloadEimDownloadListener implements DownloadListener + { + + @Override + public void onProgress(int percent) + { + Display.getDefault().asyncExec(() -> { + try + { + int blocks = percent / 10; + String bar = "[" + "#".repeat(blocks) + " ".repeat(10 - blocks) + "] " + percent + "%"; + standardConsoleStream.write("\r" + bar); + } + catch (IOException e) + { + Logger.log(e); + } + }); + + } + + @Override + public void onCompleted(String filePath) { - EimEditorInput input = new EimEditorInput(eimJson); - input.setFirstStartup(true); - IDE.openEditor(window.getActivePage(), input, ESPIDFManagerEditor.EDITOR_ID); + Display.getDefault().syncExec(() -> { + try + { + standardConsoleStream.write("\nEIM Downloaded to: " + filePath + "\nLaunching...\n"); + } + catch (IOException e) + { + Logger.log(e); + } + }); + + Process process = null; + String appToLaunch = filePath; + try + { + if (filePath.endsWith(".dmg")) + { + appToLaunch = eimLoader.installAndLaunchDmg(Paths.get(filePath)); + } + + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.EIM_PATH, appToLaunch); + process = eimLoader.launchEim(appToLaunch); + } + catch (IOException | InterruptedException e) + { + Logger.log(e); + } + + eimLoader.waitForEimClosure(process, () -> { + if (toolInitializer.isOldEspIdfConfigPresent() && !toolInitializer.isOldConfigExported()) + { + Logger.log("Old configuration found and not converted"); + handleOldConfigExport(); + } + eimJson = toolInitializer.loadEimJson(); + openEspIdfManager(eimJson); + }); } - catch (PartInitException e) + + @Override + public void onError(String message, Exception e) { - Logger.log(e); + Display.getDefault().asyncExec(() -> { + try + { + errorConsoleStream.write("Download Failed: " + e.getMessage()); + } + catch (IOException e1) + { + Logger.log(e1); + } + }); } } } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ManageEspIdfVersionsHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ManageEspIdfVersionsHandler.java index dc1dff888..abba3d179 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ManageEspIdfVersionsHandler.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/ManageEspIdfVersionsHandler.java @@ -1,8 +1,6 @@ package com.espressif.idf.ui.tools; import java.io.IOException; -import java.text.MessageFormat; -import java.util.ArrayList; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; @@ -11,14 +9,10 @@ import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.ide.IDE; -import com.espressif.idf.core.build.Messages; import com.espressif.idf.core.logging.Logger; -import com.espressif.idf.core.tools.EimConstants; import com.espressif.idf.core.tools.EimIdfConfiguratinParser; import com.espressif.idf.core.tools.vo.EimJson; -import com.espressif.idf.core.tools.vo.IdfInstalled; import com.espressif.idf.core.util.IDFUtil; -import com.espressif.idf.ui.dialogs.MessageLinkDialog; import com.espressif.idf.ui.handlers.EclipseHandler; import com.espressif.idf.ui.tools.manager.ESPIDFManagerEditor; import com.espressif.idf.ui.tools.manager.EimEditorInput; @@ -65,22 +59,7 @@ public void run() { Logger.log(e); } - - if (eimJson.getIdfInstalled().isEmpty()) - { - notifyIDFNotFound(); - } } }); } - - private void notifyIDFNotFound() - { - Display.getDefault().asyncExec(() -> { - MessageLinkDialog.openWarning(Display.getDefault().getActiveShell(), - Messages.ToolsInitializationEimMissingMsgBoxTitle, - MessageFormat.format(Messages.ToolsInitializationEimMissingMsgBoxMessage, EimConstants.EIM_URL)); - - }); - } } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java index a6659697c..15cc07a12 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/Messages.java @@ -23,6 +23,8 @@ public class Messages extends NLS public static String EspIdfManagerNameCol; public static String EspIdfManagerReloadBtnToolTip; public static String IDFGuideLinkLabel_Text; + public static String EIMButtonDownloadText; + public static String EIMButtonLaunchText; public static String IDFToolsHandler_ToolsManagerConsole; diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java index 3e27a4c43..0ae883786 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java @@ -40,11 +40,13 @@ import com.espressif.idf.core.tools.EimConstants; import com.espressif.idf.core.tools.EimIdfConfiguratinParser; import com.espressif.idf.core.tools.SetupToolsInIde; +import com.espressif.idf.core.tools.ToolInitializer; import com.espressif.idf.core.tools.util.ToolsUtility; import com.espressif.idf.core.tools.vo.EimJson; import com.espressif.idf.core.tools.vo.IdfInstalled; import com.espressif.idf.ui.IDFConsole; import com.espressif.idf.ui.UIPlugin; +import com.espressif.idf.ui.tools.EimButtonLaunchListener; import com.espressif.idf.ui.tools.Messages; import com.espressif.idf.ui.tools.SetupToolsJobListener; @@ -63,12 +65,14 @@ public class ESPIDFMainTablePage private TableViewerColumn activateColumn; private TableViewerColumn removeColumn; private TableViewerColumn nameColumn; + private Button eimLaunchBtn; private TableColumnLayout tableColumnLayout; private Composite tableComposite; private List idfInstalledList; private static EimJson eimJson; private EimIdfConfiguratinParser eimIdfConfiguratinParser; + private ToolInitializer toolInitializer; private static final String RELOAD_ICON = "icons/tools/reload.png"; //$NON-NLS-1$ private static final String IDF_TOOL_SET_BTN_KEY = "IDFToolSet"; //$NON-NLS-1$ @@ -78,6 +82,8 @@ public class ESPIDFMainTablePage private ESPIDFMainTablePage() { eimIdfConfiguratinParser = new EimIdfConfiguratinParser(); + toolInitializer = new ToolInitializer(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE + .getNode(UIPlugin.PLUGIN_ID)); } public static ESPIDFMainTablePage getInstance(EimJson eimJson) @@ -98,16 +104,16 @@ public Composite createPage(Composite composite) final int numColumns = 2; GridLayout gridLayout = new GridLayout(numColumns, false); container.setLayout(gridLayout); - createGuideLink(container); + createButtonAndGuideLink(container); createIdfTable(container); return container; } - private void createGuideLink(Composite composite) + private void createButtonAndGuideLink(Composite composite) { Link guideLink = new Link(composite, SWT.WRAP); guideLink.setText(Messages.IDFGuideLinkLabel_Text); - guideLink.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 2, 1)); + guideLink.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1)); guideLink.addListener(SWT.Selection, e -> { try { @@ -119,6 +125,10 @@ private void createGuideLink(Composite composite) Logger.log(ex); } }); + + eimLaunchBtn = new Button(composite, SWT.PUSH); + eimLaunchBtn.setText(!toolInitializer.isEimInstalled() ? Messages.EIMButtonDownloadText : Messages.EIMButtonLaunchText); + eimLaunchBtn.addSelectionListener(new EimButtonLaunchListener(espidfMainTablePage, Display.getDefault(), getConsoleStream(false), getConsoleStream(true))); } public void setupInitialEspIdf() @@ -184,6 +194,7 @@ public void refreshEditorUI() tableViewer.setInput(idfInstalledList); tableViewer.getControl().requestLayout(); tableViewer.refresh(); + eimLaunchBtn.setText(!toolInitializer.isEimInstalled() ? Messages.EIMButtonDownloadText : Messages.EIMButtonLaunchText); container.redraw(); } @@ -192,7 +203,7 @@ private Composite createIdfTable(Composite parent) Group idfToolsGroup = new Group(parent, SWT.SHADOW_ETCHED_IN); idfToolsGroup.setText("IDF Tools"); idfToolsGroup.setLayout(new GridLayout(2, false)); - idfToolsGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + idfToolsGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); // Composite for the TableViewer, with TableColumnLayout tableComposite = new Composite(idfToolsGroup, SWT.NONE); diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties index 025d33362..1a3663fb5 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/messages.properties @@ -6,8 +6,10 @@ EspIdfManagerNameCol=Name EspIdfManagerReloadBtnToolTip=Reload from disk IDFToolsHandler_ToolsManagerConsole=Espressif IDF Tools Console IDFGuideLinkLabel_Text=Select the version of ESP-IDF you want to use. Click the radio button in Active column next to the version you want. For help in choosing the correct version, visit ESP-IDF Version Guide. +EIMButtonDownloadText=Download and Launch EIM +EIMButtonLaunchText=Launch EIM EimJsonChangedMsgTitle=ESP-IDF Installation Changed EimJsonChangedMsgDetail=It seems that the ESP-IDF tools have been modified. If you just installed ESP-IDF we recommend refereshing via ESP-IDF Manager . Would you like to proceed with the update? EimJsonStateChangedMsgDetail=It looks like the ESP-IDF installation was modified since last start. The Espressif IDE cannot guarantee the consistency. Kindly refresh the installation via ESP-IDF Manager. - MsgYes=Yes - MsgNo=No \ No newline at end of file +MsgYes=Yes +MsgNo=No diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java index 6bf8c4734..4517e2a0f 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java @@ -47,8 +47,13 @@ public EimJsonUiChangeHandler(Preferences preferences) } @Override - public void onJsonFileChanged(Path file) + public void onJsonFileChanged(Path file, boolean paused) { + if (paused) + { + Logger.log("Listener is paused"); + return; + } int response = displayMessageToUser(); handleUserResponse(response); } @@ -87,12 +92,21 @@ public void handleUserResponse(int response) else { // multiple entries in json so launch manager for user to handle this - launchEspIdfManager(); + Display.getDefault().asyncExec(() -> { + try + { + launchEspIdfManager(); + } + catch (PartInitException e) + { + Logger.log(e); + } + ESPIDFMainTablePage.getInstance(eimJson).refreshEditorUI(); + }); } } catch ( - IOException - | PartInitException e) + IOException e) { Logger.log(e); } From 5a8b1523dc6f4076241debea189926261ac3fe55 Mon Sep 17 00:00:00 2001 From: Denys Almazov Date: Tue, 1 Jul 2025 21:16:34 +0300 Subject: [PATCH 08/37] feat: made the Esp-idf setup msg more informative (#1258) --- .../src/com/espressif/idf/core/build/messages.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties index 7e31a1293..209514f01 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties @@ -29,7 +29,7 @@ IDFBuildConfiguration_PreCheck_DifferentIdfPath=The project was built using the IDFToolChainsMissingErrorMsg=Toolchains are missing. Please use ESP-IDF Manager for configuring NoActiveEspIdfInWorkspaceMsgTitle=ESP-IDF Setup -NoActiveEspIdfInWorkspaceMsg=ESP-IDF is required to use Espressif IDE. Would you like to configure it now? +NoActiveEspIdfInWorkspaceMsg=ESP-IDF tools installed via EIM have been detected, but this workspace is not configured yet. The IDE needs to complete setup to enable full functionality. Would you like to proceed now? EIMNotInApplicationsTitle=EIM Not Located in Applications Folder EIMNotInApplicationsMessage=Espressif Installation Manager (EIM) is not located in the Applications folder.\nRunning EIM from a temporary location (e.g., a mounted disk image) may cause issues during configuration import or tool setup.\nTo avoid problems, please move EIM to the /Applications directory and launch it from there. From 431ebf3e9c71a33e8390d13c511df322ffc09420 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Tue, 1 Jul 2025 22:52:35 +0200 Subject: [PATCH 09/37] IEP-1577: Eim default directory added based on documentation (#1261) --- .../idf/core/tools/ToolInitializer.java | 49 ++++++++++++++++++- .../idf/ui/tools/EspressifToolStartup.java | 5 ++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java index 7b7e514f8..b323142c4 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java @@ -7,6 +7,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; @@ -47,7 +48,15 @@ public ToolInitializer(Preferences preferences) public boolean isEimInstalled() { String eimExePathEnv = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH); - return !StringUtil.isEmpty(eimExePathEnv) && Files.exists(Paths.get(eimExePathEnv)); + boolean exists = !StringUtil.isEmpty(eimExePathEnv) && Files.exists(Paths.get(eimExePathEnv)); + if (!exists) + { + // Fallback: check in user home .espressif/eim_gui folder + Path defaultEimPath = getDefaultEimPath(); + if (defaultEimPath != null) + exists = Files.exists(defaultEimPath); + } + return exists; } public boolean isEimIdfJsonPresent() @@ -113,4 +122,42 @@ public boolean isEspIdfSet() { return preferences.getBoolean(EimConstants.INSTALL_TOOLS_FLAG, false); } + + private Path getDefaultEimPath() + { + String userHome = System.getProperty("user.home"); //$NON-NLS-1$ + Path defaultEimPath; + String os = Platform.getOS(); + if (os.equals(Platform.OS_WIN32)) + { + defaultEimPath = Paths.get(userHome, ".espressif", "eim_gui", //$NON-NLS-1$//$NON-NLS-2$ + "eim.exe"); //$NON-NLS-1$ + } + else if (os.equals(Platform.OS_MACOSX)) + { + defaultEimPath = Paths.get("/Applications", //$NON-NLS-1$ + "eim.app", "Contents", //$NON-NLS-1$//$NON-NLS-2$ + "MacOS", "eim"); //$NON-NLS-1$ //$NON-NLS-2$ + } + else + { + defaultEimPath = Paths.get(userHome, ".espressif", //$NON-NLS-1$ + "eim_gui", "eim"); //$NON-NLS-1$//$NON-NLS-2$ + } + + return defaultEimPath; + } + + public void findAndSetEimPath() + { + Path defaultEimPath = getDefaultEimPath(); + + if (defaultEimPath != null) + setEimPathInEnvVar(defaultEimPath.toString()); + } + + private void setEimPathInEnvVar(String eimPath) + { + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.EIM_PATH, eimPath); + } } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index 84d1fd6a0..dc50ef9a1 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -110,6 +110,11 @@ else if (toolInitializer.isEimIdfJsonPresent() && !toolInitializer.isEspIdfSet() { idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.EIM_PATH, eimJson.getEimPath()); } + else + { + // Fail-safe call to ensure if the eim is in Applications or user.home it is setup in env vars + toolInitializer.findAndSetEimPath(); + } if (stateChecker.wasModifiedSinceLastRun()) { From 2f29cbfc515227014fd3c92011f2b48e79570581 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:08:34 +0200 Subject: [PATCH 10/37] IEP-1557: Documentation for the ESP-IDF Manager (#1257) * IEP-1557: Documentation for the ESP-IDF Manager * version.js added --- docs/_static/docs_version.js | 9 +++ docs/en/installation.rst | 63 +++++++++++++----- ...P-IDF_Manager_Conversion_old_worskpace.png | Bin 0 -> 167745 bytes ..._Configuration_Download_or_Use_ESP-IDF.png | Bin 148369 -> 0 bytes ...F_Manager_Changed_Installation_Message.png | Bin 0 -> 136563 bytes .../ESP-IDF_Manager_Editor_Screen.png | Bin 42131 -> 527038 bytes .../ESP-IDF_Manager_Multiple_versions.png | Bin 53636 -> 0 bytes 7 files changed, 57 insertions(+), 15 deletions(-) create mode 100644 docs/_static/docs_version.js create mode 100644 docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion_old_worskpace.png delete mode 100644 media/ToolsManager/ESP-IDF_Configuration_Download_or_Use_ESP-IDF.png create mode 100644 media/ToolsManager/ESP-IDF_Manager_Changed_Installation_Message.png delete mode 100644 media/ToolsManager/ESP-IDF_Manager_Multiple_versions.png diff --git a/docs/_static/docs_version.js b/docs/_static/docs_version.js new file mode 100644 index 000000000..23148d1e2 --- /dev/null +++ b/docs/_static/docs_version.js @@ -0,0 +1,9 @@ +var DOCUMENTATION_VERSIONS = { + DEFAULTS: { has_targets: false, + supported_targets: [ "esp32" ] + }, + VERSIONS: [ + { name: "latest" }, + { name: "release-v4.0.0", pre_release: true } + ] +}; \ No newline at end of file diff --git a/docs/en/installation.rst b/docs/en/installation.rst index e4a484cbc..e33f80fe4 100644 --- a/docs/en/installation.rst +++ b/docs/en/installation.rst @@ -5,6 +5,7 @@ Configuring and installing the Espressif-IDE involves two main steps: 1. :ref:`Downloading and Installing the Espressif-IDE ` 2. :ref:`Installing the ESP-IDF and related tools within the Espressif-IDE ` +3. :ref:`Migrating old workspace to new ` .. note:: For Eclipse CDT users who prefer installing the ESP-IDF Eclipse Plugin via the `Update site `_, please refer to the :ref:`Update Site Installation Guide `. @@ -15,6 +16,11 @@ Espressif-IDE Installation To begin, navigate to the section corresponding to your operating system below and follow the provided instructions to install the Espressif-IDE. +Please note that the Espressif-IDE requires that +you install ESP-IDF via Espressif Installation Manager (EIM) to manage the ESP-IDF versions and tools. +For detailed documentation on using the Espressif Installation Manager (EIM), +please refer to the official guide `here `_. + Windows ~~~~~~~~ .. note:: @@ -26,41 +32,68 @@ macOS/Linux ~~~~~~~~~~~~ Download the Espressif-IDE for your respective operating system from the :ref:`download section `. After downloading, launch the IDE and proceed to :ref:`install the necessary ESP-IDF and related tools `. Please ensure that Java, Python, and Git are installed as prerequisites and are available in the system path before launching the IDE. -ESP-IDF and Tools Installation -------------------------------- +ESP-IDF and Tools Installation (New Workspace) +---------------------------------------------- .. _esp-idf-tools-installation: -The Espressif-IDE provides a tool manager to install and manage ESP-IDF and related tools. Please follow the instructions below for installing ESP-IDF in the Espressif-IDE. +The Espressif-IDE provides a Tool Manager view that allows you to activate available ESP-IDF versions and manage related tools. To install the ESP-IDF and its tools, first download the Espressif Installation Manager (EIM) from the following `link `_. + + +After downloading and launching EIM, follow the on-screen instructions to install the required ESP-IDF version and associated tools. Once the installation is complete, you can use the ESP-IDF Manager within the IDE to activate the installed ESP-IDF version in the workspace. +The Espressif-IDE allows you to download and launch the EIM directly from the IDE, making it easier to manage your ESP-IDF versions and tools. If you are coming trying to open the workspace from and older version of Espressif-IDE you will be prompted to convert the older configuration to use with EIM. + +Follow these steps inside the Espressif-IDE to install the ESP-IDF and related tools: 1. Go to ``Espressif > ESP-IDF Manager``. The following editor will open: .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Editor_Screen.png -2. Click on the ``Add ESP-IDF`` button. - - .. image:: ../../media/ToolsManager/ESP-IDF_Configuration_Download_or_Use_ESP-IDF.png +2. Click on the ``Launch EIM`` or ``Download & Launch EIM`` button if you have not already downloaded and installed EIM. - From the screen shown above, you can choose an already downloaded ESP-IDF directory or select and download directly from the given dialog. The ``Git`` and ``Python`` tools must be installed, and if they are configured in the system PATH, they will be preloaded in the view. If not, you can browse to the directory and select the proper executables. + You will see the progress of download and installation in the console. Once the EIM is launched, you can use it to install the ESP-IDF and related tools. -3. Click on ``Finish``, which will be enabled after all paths and executables are properly configured. +3. Once you close the EIM your ESP-IDF Manager editor will be updated with the latest information about the ESP-IDF versions and tools available. .. note:: - Please note that the python executable is not the one from the virtual environment created from the installation of the ESP-IDF via other means like from CLI. If you are selecting an already installed ESP-IDF directory IDE will automatically pick up the python once you have installed the tools + Please note that the EIM will be the only tool going forward to manage the ESP-IDF versions and tools. The previous versions of the Espressif-IDE used to manage tools internally but now the only point of entry into the ESP-IDF will be through the EIM. -After you have clicked ``Finish``, you will see the progress in the console for the tools getting installed. Once the installation is done, and if this is the very first set of ESP-IDF installed in the IDE, it will be activated as well. You will see a similar entry in the editor for ESP-IDF Manager: +After the EIM is closed the ESP-IDF Manager editor will be updated with the latest information about the ESP-IDF versions and tools available.: .. image:: ../../media/ToolsManager/Tool_installed_and_activated.png -You can add as many versions of ESP-IDF as you want, but only one version can be set as active, and that version will be used to compile and index projects in your workspace. This feature helps you switch between versions in the workspace easily. +You can add as many versions of ESP-IDF as you want via EIM, but only one version can be set as active, and that version will be used to compile and index projects in your workspace. This feature helps you switch between versions in the workspace easily. -Let's take a look at how multiple versions will look. Follow the same steps as before to add another ESP-IDF version to the IDE. +To activate any specific version, simply click on the radio button next to it in the ``Active`` column. -.. image:: ../../media/ToolsManager/ESP-IDF_Manager_Multiple_versions.png +The refresh button in the last column for the active ESP-IDF version can be used to reload any changes in the ESP-IDF directory you made. -To activate any specific version, simply click on the radio button next to it in the ``Active`` column. +.. note:: + Any manual changes made to the ESP-IDF directory will not be reflected in the IDE until you refresh the active ESP-IDF version using the refresh button but if you made any changes to the installation of ESP-IDF using the EIM, those changes will be detected and a popup message will be shown to you to update the ESP-IDF version in the IDE. + +.. image:: ../../media/ToolsManager/ESP-IDF_Manager_Changed_Installation_Message.png -The refresh button in the last column for the active ESP-IDF version can be used to reload any changes in the directory you made. +Migrating Old Workspace to New +------------------------------- +.. _esp-idf-tools-migration: + +If you are migrating from an older version of the Espressif-IDE, you will need to convert your existing workspace to be +compatible with the new ESP-IDF Manager. +You will need to download and install the Espressif Installation Manager (EIM) from the following `link `_. +After installation of the EIM please follow the steps below: + +1. Copy the downloaded EIM executable to `.espressif/eim_gui/` in user home directory for Windows and Linux. + For example, on Windows, it would be `C:\Users\\.espressif\eim_gui\eim.exe`. + On Linux , it would be `~/.espressif/eim_gui/eim`. + For macOS, copy the downloaded `eim.app` to your `Applications`, for example, `/Applications/eim.app`. + +2. Open the Espressif-IDE if already running restart it. +3. After the IDE detects the EIM executable and a valid older workspace, it will prompt you to convert the old workspace to the new format. + .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Convert_Old_Workspace.png +4. Click on the ``Yes`` button to convert the old configuration. +5. Now in Espressif-IDE, go to ``Espressif > ESP-IDF Manager``. + The ESP-IDF Manager editor will open, and you can proceed to select activate against the version you want. + References ---------- .. toctree:: diff --git a/docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion_old_worskpace.png b/docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion_old_worskpace.png new file mode 100644 index 0000000000000000000000000000000000000000..61400d55e01480336f842376a71174965ac906f3 GIT binary patch literal 167745 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�LB>p~|B1X(m<2iZ+A!0IDSb{4%w!S7BU!y(d~@ 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%0AE>SKKFc3rvCi}{qd$Rll}$%it0ZMFw}p0O@7jj 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 z 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 9u>2k^L8(FS&ct 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 h`^q#8S?WCYK6mDIO5xW> zI}dg8GDU=)kvPn4;4(iz)7q;1kO?nP&qz0bu8=+rm~wDFc9+;>dGNWc8#w*EujMr# z*@i~tnmh`f=cl!Leh0L+yMAXLIPjyKh=iD+@*i)FxWT+0m5d=QiQZzm2naJE#^VsX z$jK%bAchRV4Vn`BaF|W=_L3)JZ@ztIjsEfbKKvV$5HBDN4T)=Gv|hn@&~zRBW+;Uz z26pN~j_ZgXucNc)r&0w`?fV$y8n){>i@a58xL;uYP-3TwSKGfYDJcTi%(J{$nv6}{PFVsGmMNk zuv|L~T&jM7oLRQ0H*VZ`8LFu_YR!aH+&uVYqwRV)}Zh6@7uG$$(K#P&Lf<%4c}J9IJbFsM2K#}I5+D9dOHT#x${XYVC4Eq^O8QP8+^aS5-SeD6j~xQ3{%Jc|_YV*n5#@A3)Tb$b z7v8iNAx7nC4N;4*y_34`pl!)^ZJaS}xOk`#3)g4OZ#q;YmkVcCV-o?FVX zMwIf~506BKe(q!Wpnpfbc&!HY%N#03l5G3y}X0QG>YyI zvQGXWPn6}2_?8=F<>8BFYRR)%aLO``VD<}?7~K93OP&`CJS6tytk_&R3p2xeA}@& z)QVO?u`bVlS)|>NMj_FI;EuIb`h`b_w|ZS*0DxY$e_c}M8jY)&RVl^eu9Cvn3E}nY zQWh@a>N9Qt0}V#aDENEx_d9dV^5-#Yp(`DRjcV_FuIkuPEY(i`Hv0VDZyzg)`m(hj zUYpcwzA3E-(EO!;>GeV}EiW*4(2VKZVeA|9-FzrXAYou+FM`O84tU11ce96u&YSZ@ z55^4J9Oyk^)a>$LL-o2Be9dw(nXNjFrubm|vs2=v>>$yquu_29ZZcC0o6 z*S2rH9I^6@6bYAP#}sZ}OTLUG?glS=x#viExxCnAL5IFAFw&JY_58W7gI}IW?~fc_ zFv#;~l)USZv~3>Eaq@X`E1dSbxp$$fw}(bCYYo#tMilPy;oMnz!=)CH%~1Ot7V4zP zj3vD?2M$wKyvlyjORg*MKq-n8_#7~28ovvq zVZ?$oPfxka?~4E})Bh`Xa-j4>peKJ9oi4e{IS)*}kA{R`0!#vT%BiW_9Dvb6SUp*w zQ1WZw7lIrx?BuF#LsVHlgLMu{M%`V5H=N=o*EyJjl->vGKL{{O*cl^tKh^DPZ@N-n z)A*OHk0=OKH#MLrBVC2H)Sqm$I)%s5*I#?84?jk~prhbYMKebx`?eWUVU6^!bBa*a zf85Pcdx>#n%6q_NB#DXs7R^c~M8+4U`!UUMC*rO6Ikhr5+joanP%;7S)ZM|>qoXGJ zz3C9Hu~%oFu}J+zkh?^cen_dip~s9e1i2O{ueSf_gtb^q4`5;dVwl`Hk|fEXOrd(M z2U#H&b_IsWj!&er+U=iKjv__k(DWuT=Hnth4R#STK@yOI3%g?XKj=3f;FDcxu8#*Qee2By#(}DU%O*g&m#UYnokamALli z2)>J1yCAY8K0T5yjPI41^g*tySIU|B#Mev~2Z*wtQ(LL^oxRh4?TwCAaBQ;I%Q0sgqla9>^t(QN z{9aeTy|kWt=zGATbh53-+TZsJmNN7P8H2O7mnw=hKrJ=x>Rdod?ljkeb9<=&6Hez{ zlw*E3(3o8e+wy@6*SrGQSk?`D2xhEAGXBqpfZh4Daa5xSsMpoXasVal;}E&)1HgU1 z4HUy{G)z=- zNNu*eDgQBZiI$2g<&JSRHI1k8WXb$(&zd!{=IC1`h+pYV&E5q;k{9SDeB}A`?@dx| z%>psRxb_qxt%@}bH((+H;LZx_%g2}-yJwg6Rz-30{qaQ!yx1(;n7O!$XEq z%59DIi0%{0l=hSL--o8KR;UDAUZ?kiQJSPh<*IUs|3Vq$H%5T_VxD`z^+v@%;W$b; zxsb9mqPlIfI{#p$;2QT+$T607$oZZ!x8x8LDE zr@OYiS5Ci(yLY+Zj|9b)y2}h#_={#t-^>_j9DCnuq7?hFu1pyQ4hG$G=3uesB$s){ zZDg_|eXg$qwWKSf2KN70L9B_Vjhv!>S*{W~i4uEdP2-sVl2(8?4Mjr+4FSXwob~Cc z(FQ5iX?}yP?PVaY<3yz;Uib_=MkVSk-pxrQp;?Zh3;IV;85EU6j5|gKZiQUK5>?LW z$Y?sIA0M=HJihtofAxjJE>I+`9eDfAyqQ%eXneV6kk^0VkZM;6+PqA2h#o6^Z*Fe9 z?9UYGwR;l0k9A&~IQmCdxo*7q9{Yio)LLWrX|G$&_a-NQATtYF=#c=HG__)MQk>T7 zyFNW-))Kl=-oW~1j=nx0v_b~YBo}CrZ(hzyAw!t7jPR&^4`5lr_jd`W9|`1dEVrqM zS9?^Xsy!)I(Z2drEgV!>fxo?;Y3QshSnY~@mi$-^I-|;#IgTnTxqKlO*zjCNOhj~} zcaifz;9IyC#ti~O0e32M9`2$~kA!!p&Bd{+r$eZvCH4P10SF>KHIQvu{~l)j>nEUH zmsIHP2?n>(E+SKJyF@e!!apw^YBGugtOeD7rH zUV!V{f*Sfn$~Et`F0p+M`i$*C*ySSkb5X^g?ssz|+m2#*=zu_J_qm zOEsQbIMFA;mhX#=;Jb~Mp~@hGz`A1xO3 zcJ4n8e1DM@FX9_RG*=60KVc;aMDZ(}fzfhFb3pX;7XbAS^gp;TuiFM}_aPV1o+M}l zi#UzkC=zD>@|MGePnR|gA*tR|xo+q*bR*>sN9Zyb-4A@T{bjcIsJ(Kp?+mr3`mFkds|@_KhwkPC^s z4~23^ZGB?dJYE9x2N#F0t`FHP>4ud1sX*d6-z0OddxR@cVAs_X(XJRpo*&}g&5VA^ z#gkR!44yx|E_UVUXT8k;QFZszC-pvRS^03@tvYlih=x4)MfWm~Jy4KzJ^KaAt7}p4 zwF8)g2{UjD-{hc=PyNZMaRPJ$&AkjW=-2g^(c$DegYXK`Cy~(5JeNb_TT5bJ?GZE& zbW`~(KyC21%~)UsJ{*z2GVm0lL{bE)*tuF&SZ!H3h7|Fz=n zt0APi^+Q-nKqMNKR2qn`dhs<1Yxg3>;n#|Sj;}yzY=~O1iiSb^HFo>}$CExb3l$Jf z{)a=O@s#rRe1-3cs&@kwthkS%9~Om3oMcSYkR7&cQ~f11#J+I_l(z4**>&K4nwvD zf?bBrCjb7ujjS2@Cnbv>4a$TDR-UIXEz9ey#2v~79I4*+)AXzLA9?los(MW~?^v$# z8_zd33EomF!L&O{GH-FUx_{RVDYc3kET;f{4H>~oue^_zBT5RKUTk^m$tLB|7d<1a zBB<^Oom~+8IOEP(`SkNie{^rr$uq@G7QPyS>zPobW}P0$^DH1qde1Z_Wd)VutXJ&t z=ajS2HLCOx_>iJ7b~_2~NkO$(_@qDHgv-0CZ7c!?-n9Ar8iQ1X$+f$^$i+G8x1W$B z=d&CJ=h+}>5b9b-^iqjkb6c<*e9cDk&+K0-elX~zu1#Um@YZFFySf)(DtUC$@r>pm zZu#qby(q-*zNxiC;_8FL5OCu0D?KayOfZ6Ols5MISp>>WWZpz{X>3B{ zViZi2Yvj0UI8-uM6I;Tvn#xIm(`U#w#GIv3C>UDn3ZMZ5n+TP6t z4hMynxXGXVe!MOwK8gsF$iD%B0~B$(e?Rz7O4FTH-$AQ^>dHc)iO8s=1MM{?l7KvH zZDdwBs$AyKi^dXjW!tF_70&5OqRgWTVyip%nNuHqO^0H+BAbClB zWYA2|n!+($Lc$KAtOIz4wv66mk$@WwU2vNedD;{tn8Q{C-+0Kdf_!xrUg9#R|Ag_~ z1keTA!A*>tE|&wJLu|2~L6M`20cKwXY44kwE-vj`uc?@cJO%d0THg;itIf4dh)D$< z?bnFiHX(>+e{8gN$9NVEJr{e+JN7nZ^7tgqJ1?V|{9mS4?OMm)-0L({cFmD)mi0o)31rXLeRU9-m~v+fNVxakuUF&`+kW)wp|`s)vPJPbCc^rWk8Blz)0% zYYT7bG*zFZ2e(tu5OEzU9fWq<(5d|QlNb@Y8b_A`l`p}atNZrqF1FBHwNQha7f#)( zoIxH02n8KmS1<#__4sxG#+_lj>^Cq|8`i}5K6fZh`+K$Edi-hLsl{yzVV*+u(2WwC z#cuj?-{Av~~zh6uyy5W*KmZOxxX zbO6Gmkl+}$4j^j3Qmxs87kHsRg{=Ew@FF6peY<5joud$ZewYJ52)4xb?dKfBxKQ+@ zQlRUZpk*kX@kIryH>TuvwPl39tTokY9b4O8tR0Tj%E5LqT3IWmb)x3hp=i&;$D5Xu z5yyH{7*Z&5v#4t`>Gzb+gwfo2D{&7tNHilgB9AqX^hO%TeZfLp!~O=qi-_o{UO^i> z{c(AiKbCD{(H1LuN5lD`Dage>0o2ZiBwD@tLRNN8c5U2%onSF;4_>0%MW;TE)e8JZN=vdAfY_;g za~FadduL6?k^{x@sJ139m`HYqtQlIzGv5_>{NlN0+s#1G^=|Yc9*alq?MUEZUyTK- zk*w)B6MEPr@_3y%#x99^tOChg$!gonfD0#242qH8OubD}xvcmE3Y7DE0Husj&iij- zCrd+IPWsa1*nCi#UAiiNwpEgW85fv~bEjTD~U5} z6C(%yLh89Ea54V*3j-hp+fR5`r`s{@=Pyfi%H|lZq9zcO`4$<8x^$Q}1s}1}S)|Na z2>pY&YGHk_FW#Wbh9p>&S>EwRVcGErBY00^bEHZ{DUf>;Ch)XCk>DwW%}*+pB+ZZx zZ8?A$k`9X)YE{_9pv(nN!ab#Wdr5EiQo1zlA@}W?jdAb#NHN*2x_)5>cSjT7seijF zknTwv{hsb|!MZOPPR8x~UUaRVSCXH-=p|rK>55%lp2N7-~tbvSGi5 zykDu&ylSv>hL*7CS-&@IY=1HQW?z;wI4>lZ)62#Xh0Jn*2us!!`0Iv{J)hO*+Mtl^ zFx+B36`Opa1*C}i$uC0(1#hVINj+05A@rU)deqsKO5o7Rc*~t2;E{)j(05;t?yGF( z5PR6g`=^r+?u#fNP~*EJBl8XpZP8cqXM;$wmO|3IbTCOV*z-*s_QWyS46wQfv==|X zTG4)g`B(hNkt~|T#v{lx{iq^xtE@8?l)URXj1C*)7R&{>%?Hr;C_46-NLP7Ib*=>I zc88C=f=bCZQRR6g4z~gIdIOi@ z$`%cj3iq#omN@h@nVks&cXl`ESwW$%&q+h%NP=07y z!L+wtPHok2W=XMpj?kjc0n|e*ti!IHPdEs?=f}lDl92Nv)Ss|GOmlgijMtx3oBn^Cy;oQhU)aSfilCwdlp-QVdK2lrM5zi&ktR|iU5cPckvbHS zqDU8!5~PUKNS7iJK~OqU1p#S>-U);xGiT!e`<~}~7w6_Yb4QsBo0&a(zwcVVWd~fh zO*on}hR*v^hD|zm7SjWcq#MoS_=56P;D2tET$;@jzOC(L%~n~{Hdue1zF8PtjOz!tSkPGz2rF}0{;0EN(igm! z`{nVaE>@%~P20Q%c4S_X@DUzDbhY+*j#oU`_4nV(Nmr5^HUF(H8}wiZ`W7FR13CS5 zHLX+pkW((rzReM{V)nCsxX8NkLEwWDGueZ`Ta8m5d~57%+CO_P?FXHGm;6$7&l3rA*w6ML1$fEqaHJx(83jxq;_bKW69I@Ey< zc#lb&*GW(ig!MA3z)jBHlgn?EwbAXb%o^5B`9bV}!q%}X&TRU87&c>V515O>P9ce| zB5-cqH;v}SxA)DzqgNq32Kva=d_ESuMCN=S3-|LG#829B<))!)nrJJkvwmh7J8YxK zWa3SdY{R8@Q5IVb(hg*HIE79+^Mcd@6W1xG*#^2xGXAI6qNYu-R|Zcd%v~HnI&30- zHX3@DG`X5v<``5d`2u>Ro|1;)h;_B~!;I+He~XtQOz;7v%|*qFKSONqcVDP;lQ5Jk zZkgth=Bb@8v`xC91JYfDZHbQW?1p#54x_Zih%{C0YZo-33t{04ZWBm181;&I+R8-4 z@e)zUpls+Y<=AV?7>>I3ZjVnGYJ->G7E`_>xNL*d+A!uB_D!8?rBPCyvpLqM`dfq~ zxDy{;2|hd$X|d|L>S>WNhIWf=5rSDhktYn#GxobQK0cFzHh1g*FI2Wan5(-Eml*yu z$w1x27mNQvH#rdA@Av**sJ2aqv#_1lJhNhP8|1XQDfX&%G|hDJ+>p{;fnu^@)Ty{r1ivyWjw^LP=oP;?eL^E`lbZt$2ju|YcKcbPheLgc>h@kTc4!>5IDgo5j zz4eeU?iMKTKc1Ps1}@(DI}I-*aj84KyU24a|Lk*lkgtv%G*t&4&V%Sx;4hBaVg{5T zJX!1cQ8)jqvoXLr44(p4A&f0#P8oUb6D`#w-yv>>YDt&CrG{4grP&Zm?J=!Ut zfw^M%1)Wu{?3Q}?B@1yoX4*r;#k#K!?TBh@Eom^uJbjca)!@qi8{`L`=#y5sQT}qA z1$g`YS17bm#XK@Pq2fiR7I?agjU_2f6n+${uAO+UJc%U2QE>1&2nAMyJ3vl>|5gRAO!L$%ly=JjZk-w@eOz-Y%=S=aCC#Z!Ml)~3$Cx%VE005wJI+rV%h)IU>`C>e+X3e0BjzoQZFvta za1Ii42}Pr{j6+Rdt2zyX=RVndLxATE!wkK9;$a~T3c5XLMSDWBFyv=*vD&l(F*tmq zZVtnnan$eK#QP~`F=udLtB|7eG;G?cWx6u%jV+yig_LF@E-7Vk+EhvZdJHA`rOHSa z-HjI2U(;f2`-)(?*$8d0Gh9MK((*vsvs~Lq$lfB3naA-dVUy1*-S%G7tv5t-39Ei1 zr9y_4y0n@=vZJ8_ zt@wv~m?>|NWUcej5-M&+w-B5|ey2!b0%?)(V_8k%I3A}@qO@Vd{-U|U?B34iYK9jlnysrkE>-|t!=H=fZhgu1Fm&xCApqLyh=Mr8EQI+?!UDxXMaJB zv?aqFw<}xifjQOqouxJJyJ#xmI`0AMZ0}iSUSlt*Sr%eosfjWiFVAp{k5@u3seSgg z_CPxr+7Ud4K~V>c^M1fx2evlVIgQwN`7Vw48%Xj09m+s13A<%+sVLK7fN^ z>;a_cus*^J-3ufU4`}y+9p>xeOfTTrT8WdOC5F6-ESAI?cFMq7?zqf;2*Q z0UB!fa6Br;pDU(DHAiw0Ob2s!o@#RMWk@8iH6(|Yf#)eh77^mnG);YZ&UK*bTb`)BE%fS z&-*G!j8xYy7ZFF+fy7t_AfuQ9-T{D{i6pOAl*F*ETehaxSOeM7ksS!?e9`kY!);k|0WF_=A6Bl|6;%uE!bzb-w1E%+@|vkQ8pK# z`&z{P<;~r@pJ%xxG|&k$L@&WBjwHJ!LmmQqJ=2AMCl4Q+ZqNA` zO*u|)J<%lczZc;I{@Rw5)QdW6u!hyOQrOn`G&g`sF&MozyO^U3UnZ5`W~nCNv}8D2 z1aezh@uHq7gLR`QpO5+>jeV!uSN6cxcr5q?dAQebT5_6rM=UYs4-hQFY!$*fw2J zDMDA$=kBRkg}?#K?6lQ;aP0F*R3}WsipR5(5wyA@yg-~ri96hx<0BN7`H~^k={<+a zztURmA$MIzs_S@qZFc$Z1!I2~p#tP#sGSk4u?6)%C*Hjhe8*w8gHLbGtnJqeIPL`4D%H|42v)&x%r(J^{1q27qi}4F1!L?{r89Q0G3lsTrHLJ zHxm<)dc$WMSsxQ}{aig#mG^Yk1zwV6U4iH1t&5~YMU$X8sCj4F=l)cCw9!+(rk9_u zW(TDH!{@DG+m-K7{Pn@0?ck;IbC;{1FksKsT=lpI1V+zJb8)+qR;$(O`iV-?el(fA zY-V~*W$O*jE;|=qpbQW;!M7XCCWY9j^hSLth&7qV2L;(Q&s;l$Z7wf~#+pc5BQLF(|7faHK&i5^6 z{>bn2KGVAF;ub!J=H_9_1@ycxauB(hp;n>AS|ee9m!cR7O-`5WjkwA5kI~O8SL5G( zq+J?Gs+PD&{(kWG&|IVE!2gRsmkrW~Um&HP-F<~=f+ShyRc6dH?&v>(3H^lbZ%sfi(* z^pSm}Q2#TqcO}EdAA99g;XIKboF)0zd%)oH$(gaWwp)1)_2x6fGY%U8F;mdk5_Lkp3C;NjPP`lU6Kq|RD61|d*2b}xR=k&5seeid+N>I9)OI}qk$qjt1+aS59y^?$prJFCz0gMtt4KJlKoAamaIdy8r6QuC(D zwk8{?Y5-;){MLjFUw)lk;_|OQMtYJ7T{!l9b!WyNx@p)%B&T6j**zSSKVEP0E<;U? z3m^%&9Wt?=;F3}AbzHin$(GXMj^%r>kHF$~k)h%q7PwJD$ z7p{pP<&xgtHr)R7MQJ%%1%BC=4!QKO9c`f2hhzP`N`9VKrK5jEN^9r)$LT`KWZqOo zH{3LK0L6kiCIc?KvUwQ!#9gqlv!4|wGIf@IKwk?~iz36-J4iC%GppL6xP9%+m+GYp znHS@rfj0_^ma9-sB5~tMH=u$YSSj1A0Ky$x2h>#+IAFX(UZvQjA6c<*;ZHB}$~jAk zE3%_-VyW4uF(h~O%!5yKg8Y%rtmv>w7^tVSGL87W^y$(~7<6wTTGyWV`@b&|j8X3> zaGD;$-dZy&CG&RxSaLY@S9Iaz&ET{!ua^j#`b_h>RH8Dhg{y|+z0ve5_J&KlR;(CI z4)RoLz(v`l!}0w~??mtD(U$+dxLXb$ss*LeoG>gKgdF=biZhnSABko&3hKJR3s_}$ zI_12ExxiHaQ$=*QWMyBKmhX@cNLz9}1O1T`z2eQo&R&DfOsFql=Ye#s3X~Ku@f_YV zAxlC84^c_zV^{UqNw7PQs3W~BQugW1v*&`Kxvlhxlj1sEX)3oCuPM@sp7AFm{s?u8 z2$(Q#(oOQh4pYOkwO^f>yk2`mF2t}8`EXTd8GD;XmBPA{#Uq|f%9T98>#XnSAMH1y zuRX5zUP@ta9e%U+^jmECa>6;vxoG;Q5$lPpl&VEdNLNl$1iKc{0*!7r-(uKH|Na~&mMe)Yi<)s!{Q+Z`cAjOH!9^Y@(_j3>Kmf#i&hF(CVA*dUo z_JF>@u59kkVQ}7hEWav%SDOZ_J*TfOh1PYm?)~S7TE>!oD^^y^2anA zP!x-%<98+)Fzzy1HItqnM7LUz1`pI;25XDIQj)-KeBZ#fL}80}@kf7uJ7i&)PVrpt zCAp9c>p8|Z0=RCic--($F5hfwEShM?5F&6|!vAc_75s4&+0)X~LEU8ICn^5IuF;(M zZs0zzgcOvP09TA#JC>&(i9QPU%*+F*aynrRYQ-$$Xn4h&0#0RXBL1^&m1-~^Y;_fa z&$n{2p4t{S-9=0=k)#hF-JANMamV%WAAOJ0@CQua)6o#P;vR&2W0l{Qw)u~~hx|w1 zi<`{&=+L^)oUB9e?7lx7x(Ivv)X4OpkM@PhB+Z{tx#Pv`Qv3ksJH+p;@@22_tTN*GXxN452v5mU#L=Nx*Hi_FNvx{?_N zDkcS!$BKIv6xNbwGQ0>!GV4DXkemY>XFsYGW5mkr5Vm*V0tzj(|6}^@#b-j>@|Q!O zW6PQca4qwv4d5ouvu^8On4P8l?x*H+8-60z=JW7V^Mq`66WO3UHvm5RF zpm|J3;|R_~^5xI(XL6+38{lw-Et_ZuioFn{3ZJB9kiK4g=&;Yi^&IC8nzqVg{RN{6_UXebi@O{}VYKa^s zoq?+i&e0{2iZ;e#V&^JQ3oRCD&u*+5oO}^ECtiuG4zBjJzC?mxPX}Y4?Qr4u*wHti zNUH}Et)8ktNIm7!Eaz??{mPz+YlYGNQI~Hzp)dOV>~B1@F&k~q8n65~ia!;g&u^SI zeb@8o$E#mhB$JPBWjrM(gd0XEIGS2=yn1uqx4FSJjg{Z;sd%Rc(y8?Yq0x5dS6xr5 ze{P173sRG<_?UqsM}D03Cax3t{rpbb@G&0CCT*;1efXPIn-J-|-T1h0@MKOi^IJ7oAB zbOPkvVx#x)Oa*dYK+F)%=|i79Wbr2t%G-J#F=4rf6VZeVeEcUdJ&+HU`qe!q!ANEa zIsVDtr~t|gT?BO5LjlfblRJ@!qG6_J2-*Q^SjsnzHhH0&S0`;A>$q<{?QXV%Xpdb! zPrb^&)7Tow)i$17_mT6=boL@nLTLeWKwj-`>;t|nMfJW07Rj{)oRMtJhqxE+j z_k)-lv|yrmYqz7Xj6ns{qd_uUs5vnHWiTG)C&^-75#hIGKEGJ_BU5bx`BtF7X(u#W zbd6IcV!T4|6CI$}nUvMBtuy|YdwcXosJY%Ce>A*5zeupWbC%TQyqnKQ36qv7G;y{_ zr*mKF6{+wjOZiyZnfk=2$u6Df`RmbKspUL&A-}EUzCWLNIuurLM7>TI$KwBN5M2Q5 z3WD?vS1!NQjQl;Z>GKiuuFLxcysi;r;J?7n7Qd@RK-{fezwa5O`c?RlUgQ@bM10Wb zb+Yz!>XC1t6X-%CJRnr@)B!HZggLJ0FQrvpnqeU^=)*=RBzr3-#6FD_7M{(qc?(L5dU1-jxni=Z?wwm zH=Q1m;Si2)V;`?W?0v@;(|G=R>}N79IIZ8`^&?VpwEi7hk^QZrHnukOzNOPtlB5!C z?9Ng|h_&Glc%IxD|BSnu?Jk{{RF0`eYg#Y3_xTi7t0PDHVkiS3&u3fmpn4o;Xn=TW zHg{`GpsID-w?y6r;<0RBD^USd*S{l|nTg_oOcZg-)j$`R)oxP@9{zx-b^yK3DGyDKC5Ik^J$m4{GxJU3E^ z(D5{7ImnhIor{FgLY^_BnamJUAs0Hzy@JE80NYQQw_%dv7gnh7el!LBlZjL}^tICV zK0#h=t%=n#u@rS&OOcr&SyD2YnIy_51yw7MUlHlWcDL##KJAg~0tGI`!U<^(W@f2G zo8tu#TnJRTtvaE`J3*Ttr0NVTr+URQ#6(o){>^)9K(yUmz8pMdg3t2#OMi2-;@4k? zil`Vcr)ZSyGR3;=H=ZhG>#X?W_EO=RUs$*`;U)L;TWK!O69|**4%Z&F4K_?rsTN)@V^ey;kZqdw&{J3ofzP?`FP<0o-w3X(NpV_TXQICwMgz+F&nwX;|O;^ z8-p2>=&6GEJNVJE6Mhz(s2t@-u4FnP=FfT{0Y7|IW!fDu>AF2V9+C~rLy7aIQilk} zJhQft7a&v&-li;l__Rx$R}hn_EFjb5!uhBARBTlC7K7gEE~$C zI!hnjYkDZ8`bg}nH5*YGzPMPjg|@aK?VVl3O^$2S(1@rj7q#2!b&&;8*1}({2{CIM z`>LlnqI@QM4y2)S=WIOgT{M~Dh5R_m=FO$SnMb!y?Zxa*!zN=;pF@PCQAari&nx(x zhJ%c24};0XoszY_r>~!yc={49LA!M~w48swD}@{)kx}V&vXNZWZ&yVfi(OAnTl;UfnK+7RBngE%94c&vT=fj3yq4*`gS}E| zupLN=gP`d}xm5(kkkn*kBP;_y=kwO zGR}iF7)V%S;McptN`V2Y`}bsBPnR#3?g?je8ye}91l<$9mR9vaJsw!jz#i zE`3m1#Ky{7Z(RZ3PsQCCTFY>aP5rQ#NYlc{<&_tu3}me!3|Jei_*{^gS0990Z6Ymb zUW7So#lOsJ+KsRLj$w9vlM9@PDNhuh`PttFhU&pZ!qz9ePanmVG9hg(26*SL_{r6c zVU8bvaQgMR;{FAZCuZ{q;h(Zctn(PIII??0T=Mb0{gb=y`*iqG8M={^ri)&w!TIo3 zlqpAB?q5Imq^uY{^k=&GhJ>%DdYFBX2_canzAbp|j5^%@9nHNa0T-*N{AA;Iq6G8H z4islNo5=I@ypVRQRPU+W*;3w!UHFe7k$Q28KoMRx{t5x1a`l0b#^}3Kdd;cUDH@)g zKUNbeaaeL=$MWpU%YB#*pX+&-mPPv@QZDL}V$I7E4>%-%VjJT6=%Q)EpmY1w;M?_^ zLNPqn>z7P_dz=&cI8U)76@yMhY{Z@irg^9a|!1DQbNa__n<@&>VUeOU%xq`XD@6TE_WXmmdZ!frA#~ZvmU%D7u zTADTJ(CYTJdiq3=7#W|z4u`{qrs==@ZSW};H?o7lt8uq_2eqr(wojj!Ct`RcF#>W5 z&NLis`5KjG-dgZYRkZy5i`-rPPqDm!`Hhqdj~m!D!Ixd3(&3Sp*P3E(f6}GzIw`!l zSFz0w*&9B5%6edNdi`AaZ2UJMoAgX3nQ;8;A2r)ePg)+pJkiiK1%I!fXsi%>{H3y| z-MR9gGqT*ro5La2vjucbZr3;EuO55#%vsCa!Er59fb)u=`%>QS+kzpJW;Sn-+% zvq%^RUvgX*ys1HZRq~4Z=9u{N>YW2qw{hbFXNfqqvju-=tQoEz0>ww2zvg3sR!#ie zCWlR5CN$C_)2Ghv-0hTqY7f}Q%m1_a?#~qV4Oex+$(5#?2D%~r_2t)~;06>ctCGQj zso8Pffa2m)%k2wp3`bb6ej$B42xeFEU|^Hj@p%Yc=b~u?AUvwXrUqefRVnwpw{E=! zPfEbWZ}Hy7L-N{Yspa=nTu=9ylAp7$4c;4;ca}{fa0=7hxlad$e+@qfCsX!uP)+H* zY`s-JSkvwxbm)BM>r)E>7<;V_*#o2GooNU}zFt5=L>#0bbFBg=^s;At@ul-pH?&YV zCd>(G`PTN_GEhzj)*paz5X|EP-Hw*=>x}^I+|;1EN|@;)y<%W+n(BAD?iOyL=LFG| zz1g#Oxk12Pe^wGyh^>V-r=dZ$WV!>-HFIi%n7R$#&ji4I$h)^7j&8$PbpG4+VaRse zTp+BDt9e@Zo04?scQgO=(9=@m_0Mszt5bzs7(8W$;Rv<4t+Te=OQ(2Pg4u;OKj@bf(6fFzm!dJr z{_FM<_=d*c=ka}XnyzX5TXIY8;*UqK82&O769%hOnA0CKt*PK)n?5?}@Dh>pq)*m& zjLgkL{+d`YH7kZ9-1u3bYz!^H?UeZzkfG<`cKil5Ps8gm@p|Df^>RC4!v);hAsFN9 z@kFZma6cdJ^GiX)0jyC{1k}F+!}@+cH1OfF$n%GnOSVPF{qE7Fj9mE1a)f$$gi_Qe!r@DF_q|I5+a* z*R+Cl9rmY7Y6~JRpCh~TufFK!hPKu2${Hzd?^0OfdpQB`h>qLzD^Fx&jx{K!`VM!N z?6z)QMQKpV6Gvy{B8(jMr$`A+Q+EWbo=W{mcUK)PO%mvL=E}M9MX0plc=bW?Po*24 zo6YsX%SPIJxlbMzzKH4)W|Kb1S`)nq1MYq{O9%}e+8p7i{^Kce?*?CqcqjU{7D?km zei7UM7^J0^9__t6cnV&>IX=YX!vpX2p|f-XXE_o_|6*z-UyIHQ?(_xsz$ObVR^ z%0|fHct`IJ*7+iFf8@?C`b5sTh7LI8D{U1cA$4tAeB#+q$>02ntC8GH&Awn)7oN=4 zsGl78!>&KoVznpcy*H>L9sp;R!wZAKy0`qQ?cl9k9kaQW=3+p=r!eqOTYdAx_&n+7 zj{JMB^>GrV_ZtK*#1L>=^M4fJRO~dC3RHr_ok<94ZgDG#fYi*Q(AN*3{U|-e7pMo}_b&=^ zD?$>NVHysUHUgnhkb}Oe{$oi2n@2+@#R^hQR#SJ-n5NkNTDD=%V-CI|k)bQ_)P|0NR->vLlGpJk1q!i{X8-@vq5yb;m5_OVrN^4Y=&1{Ra&yhB{8_9uYx2uQtS; zIAS}_E}+hL0ECin<|Gt;M_zDAq;^5?BJF@OW)ub(4{?A+*q;0CvBpoli8@ybmk45ZIHmK#l$p&3_)vh@UZ3HeBC-xRpqqIHPV5T_#ou?bDEeRX=A48yvR^ zQ6Bao`SR8+SJA7eKp{n_qN0;HH_?Z-&?(y)wd?~P0!+B^70T8Z(&D$**^g4a&8+5| zPl!fEFN3fCDLn5=W{vLVZ8tB;kBBb}f6gj+cjPtp=%;h1=Dp#1%|ljJKgZ%@d&8r% zQ7t3duf%7ET7Ma;p7vK|z{j#R+?(}&H8}Dl&B%Gbu!?-8@G6BzqpbAZuxEL)PH?A7 zTF3{~GsCZDj+_$P^(NS^OkI-pai$31dc{I(xK}FfwJa@{e=PZAWINx#n}n21EL>|p zKhX`0-7Tm3w=B=T1_<3`(WDAVKShXO#R*$(My)%c&nrMXFik-9q55$9pX{J2D2XEI za-GyhonQt_&s0GhT&bDBU8Z@N3Y=!b4ki;QqwtfXR#ErFLTVwUHFe`s1NI}&yfm$Fb9pkj8b;o+r9PR+*MmVKGmQu)g#vaI+tH8G{M>slu!x1mmuJVZ zkVJX*o2U$#cfEYya5Tb-()A9;i7UY&;FC;@Gd!@dd$bE0*62>SaiPHCOZrXTb z-!>qSUv_}4!Rt*Zj$DyP3%S0@rE$!t(DdUbcaOBvx)zupZ~s=HqLUL=xLtBza(|<) zk1v^Uz56>HIK#7%jAD2@Us`s39=l8BYQwCC9U{HG@y>W0fqp0MiM?nx+!lcmKD`*0 z*{iDt`ixv?VgM^ilIQ#OFQ*>;qh&~fN^+-34(b{kkuj8eSq`w6st$&~$7a0gkn zr{3;6zPM=iQ}aYf`S2mh(AvD5W4^U=N@UAP@-&`uu#&AU{KmNsmtJmqIPYLsQ41 z9Jj29BIN!Zy!p8E6sE_=CGr3Gd7o48EOh{*I}MvfTBg6(Z2X zK5(&uMdB$(}{BC$}Q3Z8Kw*r-i%x=man2X25E!&vw^>q?IGq&g#iZ4`464$uW~ zCg{+DHwkS4rJ>$Z(kilkLFackAU!D<17(*$8J(iR)--Hx9!?Ja_>4tKg{YL`NFcTk zJ$@_};{6r}Ij6_L9$xmqO%G_==fghyi2XI1Kt@jeO}-?R719x^ls8(^gNqR`^sxRr zU`ka+-XVSR2Q%oD^7V!*xDxWP;Tt>wcZ{~hM=zR4+p#=+a~sc1s7z@=AlXMoo2fuQ zicEhbWAV@)IhAHmTkJl;(tl_zAeJL^O5&OLAM*|tKk3^mYFi&uz_8q0JDJRzuRif_CE^}MoWu~ zQQiXndS52=^?JasF6sd#6Z1X66!X(j zn#Y)1ycDh&4Uq7kI|#Kq(~3~oJBy?iP~N#CWao2+FoWq@aa=siS}O`}--;lpUYZQ? zqC8=~bpI2hn2e!Xv7qr1_uL+-*UR4Htdo@~-#yA8pV`9?PF0%RaUt~I&Wl)2wx3S; z?HO9!#S-9}|L0zPN&cu_@^nEpR;Y$tbY=X#n!k#~*}n!sqqj*%jNi~hNd=bkeX@zN z$P0SSu-nEQZj8X5Axs}iN@jXBcwjdKuz)>;AHTJP|Yp+ zg+syN^-F9DQuVry!b{?~7UsTCpMR{IY&o%B$!4_C>Mj!SQKAigq~R6w1*&~qO;&{-D_C!3VWbI1Vu z&!;~Gs_`mB$A2g`EB3zi+ecwNjPTLAbd{d+Tq)-bSJo$qs563#Jq-6c_om4wtc`3( zTmK}}cW_t*s|F_;T17p1W-@|IwJLn@#-s$v@`54NyXOG^$g^g_%cI!*`nY`f|2Ma9 z=8FtGYd{AmM-A8$5Osj`+{Ufue1q!tUx~gY?o)Qe8(#k}pvX~uS`9`P+4lZ8M6E!T zTvXdPj3u(j57HH%J77|gJImTKT3u{nx9}@Moa-=n1uYAv)k5a+s5LwhN7hBXO?2W1c?KbPOF6Y3XRP4tfFQ@jTImx{f z^`ydJGnn;uo7qKIy06Hzue_&eH7O6 zdA2Z9k`=y#wu4lUo|8>1CH0B}SnmQBr3>yLq#s(EM(H2cu63Jd0_S-yJ+|ILy|GMd zojDi{0SBNRf9hVoP=zTT?AzUB#pA|s##7XnpuRtq)87XJ5)sNd40CTN9jiDVx+rue zMMqehfJ9FMZBJ7?hn*Yv4n=?Mhv*S8du!Dq=5hSa3d_aPsNuWh`(LjgZkhg7np+_6 z`@tKLk>=5}yNTuIeOx7+!3)KcwSd%lQT=3t8ZPzHnLvqGNi)mGlg|&u-f}oS8kx&} zIUs%-^Y!fBF~<{vO(}ix1Dy86WwssRas#89XU6mau992B)F}<(uVA^a7oo~6NFtPxd-4lbFZr^_;M#Zdp^c*cPt$9`C<-71@{NJhgmIt zi4RPAQP-Lu%jqr}4?Vvgb5gzq#a*h;w)I{yMx1u5`hQq`8``9mDUNFEAg$(e zD*~6E-SfFaJG;fTscHN|&6U*vRimpEA*6Chwq$nvbn)0VE2~20pB~oCs3YTrrlt~c zCmXT@(+Tv-32rJ3)14>4$gYxY!4IYD0_xOt7Ov8dYN$YE03R!|Iqd;ePiHXk+9MbB zUNY%9(J$zHqo1Dwq-!z@{F$?Kp+c^9Rla6kfT?MteK2CCP)vtv1b077RiGMEU`PCO z=KaHA3N~;bCmnM0CV2x#I?U^RvYWq(f10L*N9Hv?#Cw4(kRXUG;kN#H#>&>DZ3iWg z{ghQ{7P0cCHe`KbcM5n)fgLC9T}RV@h5tTu&XO@+7(GlSR9GT?K(ZBSH`p)#P?qEJ zOhpmm3iIMD3OU%A{Jf*Io91Ivy@8Kw&(T&sJ4;%hyI1cuqq9pdlwEc;`;XMOUTm1* znQCfYDDEEme@K0Y|A*8!tZ_%|Y0>+^UiLI9ej*ihG6i)!?=TVNV!Df6O?nhfaS7xk zk!GoszCR~L;Q0$c(!*)fU;lg%GHX6<@%_}go?>;|O<}*(Z{XA<`5eT%4VOz!Eu&Yb zVI)>JKxNp%2Sixb3mR&(D7PQMJm(>8pf}0y95SU@vI-CQZZ(G=&z9K6 zQ0my|pUp6IqVQomFL|LS>xwfIySTqPz9or?U`eta|CBFiDW|ix{2z_4T&(U4u3&qS z1K+3C8@W%Pg&ItPvfVJ;Mc0Ks1%ais8eG2~hk0ZMAk8Dx_02y#m-`_R%+z>+S-WWBvtXbD@s6HzJL|LyQ#Wac&VJX#8{&*Ij&&%=KEVuWS+(0u5`zS_-w zw|(s+j8>1{#Ghp{4>rjB_UrdJ1F<3`;`2pT7|xf{H2d+rsuaa4<^6BfJK7a@oH}lo zc#UQhf6GBK<;@g7Hj=q*64qI?!S*)(CzXZC1MnK(u;PfO!V2NNOoaeUZB&AWnt0=W z!0)W-kZ7%zsUKcfC!nwFUokV{AVRM8&&NE3-O&$a<$CKaU>lUsd{=mVhnV)`14*?L zXoow=aL;}qd<;k00jSH<{|>R%Z*owR?HU_o3ueh-(Ze8zwe|cL_q4dE3is5+W9PS0!tEBgj2pQ4YI5?xe|w)ymIkSvOsS(4fS(*J_xkUsId>lBxOf_U2i+!~ zO#$T^l4Z>NNJXgs(scr|Oi&RfE39M?Fb{QBAC3}NVK!Cudj`sm=|*Fpa5ck(lWpN^ zE^`{=iJ^K5nV3q50-|b@2l>{p2l65I!5@B@1)07TVjcNtX3Ep_8f|XMbEZa77U>!; z=~;_95xK!5a?Qlf-dg(IE^=u8bZi`!9Ym<^d3L=tnI}$|!HOpha1NkQ!Bodis+-Tk+!iWf+p_(O z`3UkC^gz5acp26kXu{bQj3;PCu>{U5$gGLVq&=M(8pdCMmghaSE3zl_`@~PBU37^T z-4Q?9no8V<(?hmzFwIuDR{(mR4|fvpzIaH0gCMkZPuN3U2bOBeqywQaTeGD{EyOQ%gmXrpQy}jo{ zb`NsH%f@Tf(t8kq$~%vwpMh)kWM(_xKjU7Di?CMe^*NB}RYh`tLy&RJ~=v;R_oQ;LCYYdur?}OG z;5EUc{?9cxCE;+UiqyLG%R=@Zr!pF=a9>*ve^x&Bo5StnFBp*Yb~X+9)JQBs_q^%RWY`}3$dvZ4u;E^LvD~& zou&+~9SNlB6nBwN9y=^bs`h*t4q<;FFW-A6wgNwn_uxi-M=d`g%^$x<#3SFH!~Kwy zOuc1fpqCDv)|`P6`aRVW>Xpy#!iY?oXX70)l$xuyq3|Rx(R+a0DSarszD#tcw5lZF zVR|7EYaKd<;{M`;*rB>~;cnc(-U0CTICZ+m^a9;c=TCunIJFVAz~i!(f1`KWUG@q1 zV8^hwb^GxuZuT}q&e!kRHT!7pkWnJmp=a8?7>jI_#+^e|aWD_EJI%-Nm^dv0>f>{is# z-Y_gP_SjK*P1&&R+el@mB86x(=C@HpYbN$t>%B!rX@f~sCtT1fR`Fg+xgP^=>BS1i zx86pdvh^CmKA)jEXDxAy^ff2Nk>+&y^Ao>YUce!KZ2aTq&*+ys)$Rlww+f@Ew5uf%eEcsE1Pl z(9NYW6pa)@0lp#Q%@Vr-JUQO*;KN;~JObtfOxr7tU?vit@1PTH{a0Vam-}QRhJ|;D z9)m;+2`H$axWllvPYjk-a&FtLn!wf^qY)hbFE!pR zCrGE2WW?XFV!t4?Tc}3<>K;auXJvX^^!p)hq~aHp;Qt*opyJR3H_oPUldy9V zr4lO}r8wNk;RODYT3(ArFT7+ChxY_Hzh0=8vn$Btnd0DJf%~c6XUVLUo;wHRI=$kg zz8(=>)q{^t$oPD|p%Gn+)y-WFDVF!GuM=~Y5D#$v>G;P_M4bagb~snw7iF_3rUPDc$MkB zcdg!gimpf_F~&2o}gZ)AOHHqJ?D{WYQwWD zYaKVnUrpW*5XK|7nZ-_j_NXj8B2x2w)`p=NMq9nJ;O4z`RgKlL{bW-mNSh(<56(C@ zVk852u77w@8NzWQN>6lrd(15H%uWpr&*1wI_2|LaqZd`v;$cMz87i-c<9LFA` zt1Xn>Qwf8z7N1Md_3IhRYNyX%9?cgWwh*cMIg}uyd1ft4+({P2I*EsV`}|XD-Pb?om|5^zb;gsxa_39K&C~b9 zm#a~I-O+SF{$DoYxu7KTX@_IlpxzV@U}ki=QcWAuQgA&`ETg#Be&~I--uO@HR6p+J2bZ1)(HY$FUx*Dx z^Bd!Sh?^z1xFjR96H4Sfj`BDc(NbO?O~m#@E-YD!=#pKz!8H&; z{7#llt|H!mglRS|n{$_}$}QlJx-?&> z6*c;dKFw_;Q7M<6_;6rGcBW z6ciK`B!@<_2qHO&ElLoOAVEZh63JO4C=wb}K(gdalXI4g*nl88HlbtHt=9M5XYV`q zywxEUIG=-20dr|SeN(w==VS0tkBihVi11Eub%(i;s0;v^#AOG{{Q3Mn8DR(;HAPY z63X#exh&KMFRY)VOL~sab@1AHlXQMGY5Xr5JpaE~gwQV}1Oh&Bvao*!gg`IE@0Ex> znB#N9ps-4~EmSdhJb7e4arJX2Dfn1_Or*t*-m&ov=OG&$*9lL*Q)Ck>Z% zH&M8nPuOws#)Jd#LFdCh-A7osA`;8yl0h&^hptGYCQ~YlMi-If~;y4}k){^x<>;jyKl|pR&7NQ2hI? zT0o9)SPl3H?uSPxt!)}zjN|zA^eRlghCi!dIi~&0^RHv=$*>!5GkaF(+#po=38Fj~ zuGE2aFG;ZrR z2Y*32%27_&%;+e~_NUoc8e~1!HEGVf?AJom=U?tf9mr^Ay{b<=So#IRTC_p+UysvoQqR*1`fXA-C@_u&DSiFf!!_M;LG6oh|^7tkOhEKnRof}JMKd+ z$ky7?$LmOC288-=^5257X;&(EcMt@O3c;>pbgu(ihiMwkADJLW+g?0ssyPDkE`T4l zkA%uS-gc1<-ac6^Iyh2a4W+s77?}d zoqMoocEaf6Ks>rGg*g$1ahAVr0i)V{B601qRwz~_VIkrP*&IHnaaP#cCNrtY9ab_%G6Jir%J1^gpe3-H= zL5>~_m*{&J9Dx=@nWQ46RY8mMlFUIDNV>t+5eH`>6OWQ-F0 zrAOksL*h(oDosuQ^&`S5;|=EU&Df*$vd0n4*UQl@t)MU$Nlx-h z`nwnf+e#{C`|3GER90G24D3lUO`EwL_e>;Sd;+?6}-gCVptV9gDA$CbuO&l_pg$b2f zHlULpyOIMqolSkqtQ)40<%sazh{)_uo>`CKiNU$|FTWw9`vD&wUwPo#*Dnv@a+uH4 zciVgs(-tZ9t%})HP~!^loq$_i@9+M#YbQHbU_`ep_`Yj2ceZ_}FskyU5;BTrqnF-R zVy2V-$uZ_ZJ-LRHmxR)9r}oce1^M+3NYME3%3BU)h#kX@`;MfKdS};*8%Gy(_9;%G zw;M8YSO@#tkolREn{Te+k*t;B((2%qD=>7A=|*OtGW;)ppiCcKQ-LAc#}Tg0$h0T# zyb()*!v{W_M0?VI@$h`M)(^*JxvzX5E5Ynt#>SA2Q)2`YrR&Sd(Yi*zkvk}9DhzTE z8VVf8JPV_3AHxB*+C`9h8p88m*DUhb*2@lYnilZHTUh9JeZv>p6I?_ey;ZS>Iej*u zCwE80Sq5Tx8+6Z8<|w$`aF8y1;U{a@u4!&#%G+0{VG7qePG!?ahZLLYYxvP?!^EW{ zXD-F_jd=59o^LW8zArQL`LVzwZ=@yZ70-BhDMiV<5sk6!g|8Mi?$nLeYw~V(uW=P> zPZriQH;M?>JWlqydTqN;i)10Q;tjL<8Nd@!2DTmY3;jEoOP3?ahc$Lxln$LLP!W;k zqHy+Bqeuog0woHY!!v#E*4JHqHbF15m5+O-e zR@hs5x95#606fCrz^z6wJzP9%HfHqeWPGQ%<6F=}33P%KQ5nXHx zj6IWRuHt3gdC@VI&KFZGQYOp7%Y(}ujQm}=F{|t9Fl^8&4t=C{;LVEt^|E>)kb~`w z@44?J4&1T9mLNr5-=9v;(=rNKP>O!3tmpdr2=S<4~)ttugp&}xM8nD zqEYsUyZ*>as$kwJT^2a0^32%xIczrIa1{)`D=N3Q_zS6%<@0Tk=)QnD#X+2L+42YG z3u&!xJbdOxO*!fX-fAXhi}7S!q{CK4 zM?}a~g8hdJLot}cbb~_PW?xPBUWJ3{dbfQW@}AZlg;z`31H$Bf`^T8YO~Ien;NgKL z*iVOE#Hd2A7X)F59y}V~=D#38?Sm&&r0f+gGWqMlE@@HK*G;ak@AOxWHMlcWbiu7B z{!e)TX9I+;^O}mf(4OcaTt>9j?XQI#H}<@Y`crP~vmbhw?tUrW=yITUX0qU0p2$PT z1e^H-{vQ#K?3XYFT~QPX>&U@27yr0Dy9RH2N+OPJPz|Iy^~AWBv{!p=27+v~9s%ew zjHi(AG(ps*uCR>*pna7aWU%@mQ5(b+`Ud*|JgPV=LcaZ{PA}M=-h>`qYW6lFE|akn zF^n0})IVReI8>#cyxaLmyQwd(unF>A9@!!*-JxAzjLGwG4(6 zmy%BU6e}GDJgYbIj88^&7}5Fwse#Ti7@65@_mcUoF3F8mnFEntTw+^-vNDyZAW$BC!bg79QxqY@hC4R zS}wWc&4_>MN66yciLgvAdw+-si+8XgEyht@_N2u<-c?;IzKEllWzMI4?KG{RQ$A}h zqv)$At}4*WmeV@UUjj9RW8RFT;ZRRl%~;OR?d(D1OZx_u_l8oY|KJz*d)GyWVhH`@ z==cyaXDId6zqUx8j>qMbU4ocNm@Mi2er2#`0;6!#t>?q%)GT?(yZSkvJ%l5%3wVWC zVm|Ey6E$7Bm2XGG(8o9WL%R#Ro99mY?_l>9F%PVhUy$20_S?Oy8To%Am~vn7Kih&r zadwlEg=~bRiPQ?M`#(qG_l&kgwl95bYxAi8>a!x@M^j|-+?YKFaegcp{}VwYbSA7| z>R0ZJJsQefHm0&1f6f%<^ot8(bhjwa$nMq#Ga@%!R=5TywO@IYXW^K+tt4T*MLDB* zPs3&7pi4U@@6J+c;-U=hK7=mtM|)-+)_1+V?-kza6a^&2mnmV#$#!IarFpF8Jzi)V znJ{vWS3k&vL6nb8SUddv@e+_e=!8dH6lf+{Fo0arEy{rfF~810FtD6Thm3*Ac*%T4 zS8lEK>nK1I#-mMogFV1+#I4F3r!R8;D1jWXzCXx<*K}@@qq|wkf5u;t34{Fj6!eP{ zzKmnXQKj>tR+mSr%t%ww|C#0J3BJtYAI}Gju!Rpu;z-+!p2f@=cbEaRgVt;Cz#l}Q zj+z6W|NMMBpznj!xJwuG>*P_9!B)Cou?)d zb_9alxn0U(nxlxj9mGe>>gP4@-TQ1{2BRGF{u9d4`M*Os(rbhs+ZpujVr~Z&jdN1C z^XgM5Bl9rIF%{xI5MIPgfg#4w>Zv`0cOJFtU+85-oy|(NBqsXdxnL{yBa)nDaeGI& zDS0JwuU?>-n|R0%DH5o`tdBV^K2acd{No7XGg{Vhi}w0!6SKkU50YtsAn@YbN0YMN z2uTD=E^8&3ob*hy33K>x_D$1S#;af7KuY?rb%b`La)#f0d9cW=r6uR~K;pt621YHG zYp1}ZMWWOa^MhDf>zo*J*G~HtQmos{=lMD?lwn@3AL5ugX>7HNFyw>y&)!x)Pq@GD z0>d3S;g*NRrBBf3v$r)qQIYa4+!xy1|jT6~by*grvFk zFH~d)_R?609@QtjAnjoT6YwhXkM3Jf#ffu}PN-rYP-bbrcOYg~!v4fcCy1QCTWbx3 ze;K=Rc9rwm=$vi-i*<5EePiuz;m*nsi>-}A8K_j_ z9$RVHcbIJdi{wbY9Q>xc_mbZF<%KtwEtz$y5`&QAOB|Z#xqckWdeAh3+_59j$yusv zxT=91r@{w129>|YaF~U`0|Fk-YV`}}xvF@R-@rYyHt<`=DSdT~&~Y@Y0FC&P2e;pX zz4c{y^wq9h)EjZpdOpatTgw2HgeTIltt4i69I(%7=pY8izq?_2Ox)_Z3Vk#RKLQxY52=Zh1fDhiUxPIx%L!j~Im}FsC)Q>YT zcCrWq^I=|T_Y9@C7?5($vPF^4Y&_p(Solr_Q+_=QA3@#SBt(ar$;Lg;0gkbabui3E zLHoq4)1#d(2WE}W>wW@m`%{Y;MYjFQ>;ddZPWb`;a5UsfV{|s)6BK}3tRRFNp$hXc zL_WgG{F$1p>4#dxVk4Df$jK6(G3B#)*9@_lmlxVFQ zR!`aYs&=b!7Bs$g_1U=5Z|^>I#Ou-6dZ9$Sk-MpUo^P=W;p<_Q4+asvYm9-&Z?HA` zC=_!dcOv1uji|RiY|bAz6j5*7vh4rx7_;%lj11w^LU1FL#7_COm>{wuTr?CGK`FKtE&0P^ z%))yK8vtuR1JE|GOuYRSEkxt@uB!v}Ye0yTBFqT0HgdTjpwO%CL*AZtOc5gCW7!(@ z&3rtxS3PT#%Dc3vo|L_-)Q=!nrTNc?zUIGymDx`3N7}Rns zAwxGT4!niETb1!l_#wN+?w#IzHx1xln8p~)RhN*c2WC58Iy#~=973n5ut_pWg#;^L8(mKPNQ7yc zMtS8QUmM%ES&d!%Kx~;sG0Rmf)fnSx23jRFPi-)<#<)5j;s0vEUp4uGX#Gl;?ATHv z2VOj$N}fuBBCyrd6+J*_^AA)RAhcU8V=TVf-%#Gv=rWpeJX~pL^dC5fS(Qf>N?4K> z+fm^IgY^cSKI`uc!K_OfB{mqe_{@$&?X!jJke@-}VLhOoQBXAYlEGOW>u*!~yC zQTY$YF|mw+%5jV;d@@${8{^a&3@c{z%Q*(1m;agL$nafP5%5jG;A;&aQoP&D%*PV1 zy?1>?*`2slUAnv5^{#p5VejwWH)LUn8#(uy#K8O@9fKpLoBR|GZ@TQAip&sKj};+i zOYvTn1d8LXa2xmr(G`yTj1e4SN0v2VzMTM%saS3A`gR}#;jT8;fOk2$dGw06?2al6 zsU-hEXB>5^SpD8X4;0ypVNK}yi*X!V1<27)`>x!qj=$jd8&+wR^ODq~!3C}04S70&E_jLNj_JrlEs)boGaNTu`u0~dQbaG*8W!xi4J4lN z4uy_$jGmt^KYB`?#m&{ordm`!T0W)~e6srqxF|J2B`vWZ|E<8CSYPlL+QQnzFKzW1Y^MJJY>-ziO0d=2yduMCK4WTo^YT~^= z#Va$nO)6Z-tWIi&tbDub%)i+D2gb2s{uFq$!k$NJsC6rm6yb_Abqqo2nt zWww$N6lL{I;2l0r=Q2+W?kb%Pts&6Bu!Dqt+W3Dr{aQ z5jB5D4N|m#%F#sHby#^*gjnTU`7%HMc@dMN>r}6w`gSlHtnJVa*js?8|@x&8v)+ZWU=>dt(Q)xhIugJEVZ3{yz!QWZA;o9=NALNR0xSF>uWjdC8*`!%<8uIa)J`E3k+(oN0hGUoO3 zR?2i;yr%XYzkov;R>s%U-Cj#Aaht^;U%>BI*CO#6$RsZf#n@YT9}-3|6$Zp)je_ zJ@+4vVIh>Pse=EfgvPX&{~|QLi;OwrH}`mX=(1=~?)9ndFc!-ZUO}SZ8HTN+L;S)- zyTMQ}{`W{7Z_&~8kgVFuCroSB2Jah;Nd2ykKZ6g>U>#hQ7@@_t$FH8RYe~pk3mDS!AdZe=@rX-3>wU=2{djSx;(vm1jGprb z<*&ue#R(iv*zr?wTQc(_lYQ(nTJrim!D&e469156M z7V!Az>rXF)uyvKg{Uz)owHpGo)HRRo!X#3aX&SS5tqTKh+2`i9I~)m~dbbWqPw!5j z{)2J!Jwxy1^{VtRhuGKYfWUz}#?95R2f)f@l9r-Y!klPQLK=)W9t#FW=%K{ZkIa{x z@{BY28=;n8-UOOE^FWKjj>%A|O%AOH(WHr)B7WLJ@gXF|npGEbtLoD8pWt2oRTOo* z>n7#mM6rCV~D!18KUBX)4ZjgaATRq{J!c-dfh5^o1`YS4$ zCcjj6$KYKvoV4bz|#TY`txwI3+d5q z4wBUe@TPij1$k&dDX9UnE?jqLk0VCj*@ed^h)7efjG=B^;jrX|hvO$)}jl zM6_O+9$)T4Zk|e7Uydg+gu~e|#IX}@bTOEr+$BUg@4nscY-w$5@R#8oE>aR@Q8Mja z=o%(ENZWKAuXwFWGt^}k`c1w_M84sI2^X9-QdXTooBRUNYuFEsIfn<^`vAfg0zbxH zWbO`A{Kd-RfAhv(l2;^=2^YcM-Yfrm5XT;7HXuwtvR9BhXK3T_$Zxmvpfx@-S>cdf z!Dukl>0**B5WOOpWwgetEkq7f-NM`f+va#w;nw8g8?T)9BEeGvcF#YZCGlH3cY(v(Bhc;~7M=wlM*%FO1p{RB+j?T{V zEMF1w;uY2?SSr>;nxQfrfdztS@ZydC#c*t=h{6oVM1WzNiwLtYKgPcp|N7FebdJ9P zj)}hhMN%}^@za+%e;!0dQ?&3Qge#RUkpHoTrs3e?Gn@EteF8W13doI2(vJY@g6y-WbH(rf`DJtwQ{VUWdFP}yN3E->kd=laGaMyCW1EhhOM2(L zfu@kHf*OG{Qs?1ZDb9cn^y?5Xov8?k8UyEe=Q!goymv0F+VE%WVM z>fXW2b&UBqKXi3Xy}3e=C>n8xAgG9xbKfHrn!gyB*zxakafCRHm^7TM6APzC*G=FV zYzJ25V7(I`|1t_ow`x7EbxDlNtFLzXQ_m;80)DlHx!(sV-SI?5ZQVq$*}GdKh})y`Z=RJHIim-x{mf!zu+8d|Bo1sj8E8w4#Uam#P3J+Kj}T(?kH#hk93cw42jyntjB$}RF#ir}pNEJdTJ8@$ZUO6_ zKm*jk)p@O zF9aU}0cvZyCsa@9twnEN8X>gp+o>X95exQgp#(pObXA3Dl~bYmLa1|>Z@vgR;wKF1 zHl872zVPn5z`>Et4QnpulitGReBK~4^MdLX?Y0(e^|ivc9mMZ*Tf(D=(t&pD@9jYx zb|Z1}?vs72KuK{<&wtY z&~9m;U%a_HB!l*O_;&heOi4Y*yzl{HW7qp=-6l3}Pi}pnNz;kEScn|CQ=#fJCm*6? zF}GaJw-~%(Ij|e6uRk#zHkIK$`L+C2gXsM(zs4Virv)Q?`=XGC*wuzkn9#z(6|{ zm;)Y(?2s)Svs^oH7}jVha=$!;tL+j?qC`ip0W(>!Hk;K3UXDq7QeeBw3QPtCpjC+t zwV={@B;e-kc>QVOCkxvUT*r17p%7yb zgfmHDh~DhDj^oN~VPO9cs8F?>77r*PDEL7Fe;!!I*BX6p& zbKLDRzZs_gK0|j~;xnVW;1i>V2I+W%y49*ktuYg%M~(AvM34XPCQJi8c=6ZJxBF8DZZHn zvWCpG9x}jT`bRY9se zT&!t$N)+M~YeM3oQZjEHRV4=dxi&pl`{i3A2;WZIP#n+IYEsKP|B}o|ezIbV-!%}s z53ej!fwd`=9qe`#YS=6ZfK{KGh5~#(s;Sf-n)m?k!X(MhD zUEllHo!d{n(MgYHQd6Ov0<>UwedL3bv|O>5XGuBxeG2qpqU3(`g6_*&31`aVJ`IFW zwK&{ZPTAm4*t)~c&M|LZnsWU?c85&;P1P^S9br0J6V)5MiRFhT_XKV)fBs?f(cUF0 zJ8jFDmXg)ed(M9Q5w9ej^A{s6b-JEoE}3k-tcNPB#QxzS`vaX38yAxhahS8UXZ5@9 z{V5!oNa0q4pXNO^D)Nv=Ti~%P)pyhUyHRUf9CRTwn2qA0i$^sL$o+1bevZd|nJ@P9@TYp!Qw%p09}!`2*#5rcaJ=#BgP*)MUX#3ex>qk15#2hW`w`=s zrPL_v-?yj3sv=J7nLlAkD(8B}<#ngbP`>Zea_?vJ)uRrtOBXXIt4;$m3}90O>hmrm zA+}*#z;eEj+xQc}npsz6arDZ*hHMiHsawB%3~_hcyqja6k)(2UW%4v*PGcU7-Z}op z^4mC~r|+N)GfKiEihym5>-AzVKHmZ%5>2TfvkplgJGLo5@=obOkj7*cc<_u5LGKOtd}YcTMj#H*a-_KFOgE!UcSoe(7;L$)Ul$1Mzr7=M)}ea@Wjy}BZA@t|IM-BmNqvP?ImkU zg=D(IHqhnF!(OojM`{${5fw79chblu(!cUOasJh{fXPQCZE|piduy_;5 zCc6T8Y$X8R@mJ?k>8H|QwKu(acD+4fB=^OBT>|M3YEbgg^@?r_N?SGVu_?Poy5_57zTx~m2CY)VJ3;yEK&-;K>Pc&m)k zt9-lg7d1E@H{Jw0d%uA^7n~eIWYg7z_Ydk|$i5^hNlNRU-%{h{n z#lGk&718i_Y!C3f-9xS-H(d7-{gn2fK0CLMm$e&4pR|!6rBVdXAD4@pfUT)XV+M$` zFh0;-xF1o>_%m&kxI(MGgg0^@GJRjnt9i=K>XD1Kh0^G>Mx|Gd5QmAqjJraq?$t)E zKM~e;sYu+yD)|GkgnXF^5Fy?rvv@gA=f17jBMEsu($6W?xR>bQ!k}j++wr^i+Rh;- zc8;%|Qs{@qH~L0(vPo9AWq=>T9!&_{ue%Fv%G4>%xUa#L){dcmNtD zLO9r5p51;~q^*VF{Q1DC)wM7BRFlm~pe8aEok$HFnEPZ7+li#NxK<$zKpUsespZ@WY!6_-9UMEd8YZ_S4!77ZsLSeduqmQ!dQ1}id&WdUWge-=7|Ks(G zgv^^&mTJ2g2L>C;Zz1pDtn>B5YzXD;8RV&^ zDhmk(+F8{2>)Tt%c^bc=vV~@4kITSSN8@LM>VGsmL;mB~gM6g)aY-?oCl7(bQq1^| z`@e2pgE?^rnQMia@Q@UK;346-ZR9FkDJGdiRC!h;BpOfc3jJZly{DjMkIU?vjC*wv z+KVvJ;CcLmyB>AbP~pxRGTs_SSG=X{>6uP_WPtUj*A=5}pqeSZueb?)c{H*@*0_N} zox?BmD^7aH)XwNy*$|~h50(`T4H7FsZIc$e<2L7KeiaZNOrFPk99Fud(Q+=G?)7ZN zsC~%qUAvFU-S&#{u8TDP+*uysj=Hv{b4!!rFc!RHsUGTPxu)3gUVHLd_Z>n*vhT`S z1ku=Ju`1bofWhUG14r+nJGl{sMG{fAhJ-znuV^yj567R&P_CY*(_WMZlcJ(^jZd zCj^$&GdQZGVp8RSvXqA9E*u9>cDERrawIXhpD!@;ZmrqhZZmJd5DAM;yz01-=rjk@z8P7%aG#y;DS8 zQ{u{PMr_Z{*7(lnRWgjWr?DpL54f?&a!rg_{#H>rH)4W^nS&<>v?-jwwMfbLB4yS# zE_H@)7#SSc(`AB%`yOXDb&qD#=et!2s}&O$kAE;y+B@+eB+a;b%DOz4WkE*&l=s;j zrISL@3`g?R1jsk90lxHVcI=(;+y1&1Eu8f{yOXnXX)CRhrjHKLPb=;*JR9PZdK)9YdF#WK zdXCRsxzDzb_>6~{28b+MqR&2dVLRg} z$cz(afIB#E8L2A`ghCfnh;-zBw@)`wAb5|LT)0(FZ zc}|ehRi$+ux$dy!mYDR+VnlaEUw0wg@9c0sH*@|_0qWFcm&s=rW4vg%g)>S`W~95W zk{t_Pvq{ru%m8KN@{koZAk|HZpkOR1?LY_F4qR6#XGo+(FUXn8t(m^0vrmtspx2u>B%Ar0^a_z@DkLd}3;(3WB;9R8$Z6HaX=XP79hS@t2Nlfo$d@MarQ0T~3oKm{_8 z&DhYsMtc4Q61J;Sg+0YjN{_8m;A7fthd!Qw-{N?8!(W)zbiNJ$s!Nu~*_Lu=YC?W; z(;DS(D3UXc2Gbr}em*+>Ic_!W$g%2_zOh9HL*-NTHT4er-{ijPkKs&?o@6+@B+z}` zlhitxvhz;}iXC$VBb!+{;XxOsBoQxw;gE3I#F*HY<$*EnHU+byuOb7su0N-Z+CIEE z10|4I)E_(^pze8X;4X@-(^9M0{y``4k-zXwGloZfm*8Gs30PYO_I$S@qo;PEIpFcn zso+Scu$3P)A&ZJ~oTW`_c~OwN$fS@Z{RT*9;iq1KPE(1C5PS_j-2D#Uu!^A%6pTE) zp&`}C15@7|LvwvH@c`U^fEEeC8a9qi@REFX>S>I(n}=z^T-hRQbqOsDtynIx+sDYr z?I&%z&gA$eYFrk`jO16a_OOK!Qp!3_Y%__~Y za~_2uhrfzdp*fyxpUL3MEF9@r{`k+rJCpdZ%-Dh{a!Lk$YYF#Wjy@w>K`cYO2>yF5 zNH8$#ZTHsxV4vA)=_Mdd4z%2=xa0#z-~@J{uSJk=Vc@Cl?G9Dy{?}qPI^uLW4HKD> z6uSpkhGfL@KqL|Pn_4wB0_DNQ5u9ZW8B@@IGrg$4#}3erKq!s@{XCDsR8}p$U=4Zr z$h&`7-Hl7%T4l@ZoG8gdngPyMlp@6kJRX@=ofSoRJ!E0Q6UWG%JUL_L)&VxA)zL-e zJJpGN&m7l)Sh_^$De>N`v;wyQJ7ExUSdb(v-XIgS!&GF9k5+&+_Vj1X5Pm1*PT2R3O@~_<$+yRbg9*7ggh`! z#=YkXO9;l|3C&Ir zp!d*_Tv-Nd&Sl37S3ku&rdaON_mPO%Fpv;m_;f&UiCL^q@I5hKYP9?Hl}{Qi@Arg^ z`c3(UXDjI@ng@iV2)#%a{iIW)Zo^Nh;CiX4x+V%}d*6R@qY?*CvCZo?hp(to^%mdp|GybbLW z#H*`3i;n}ae(WN++YzL9(2CX}*omyQObdMs$v-xHGT^WH&R-JN-i3-G!7r1;+adN@ zyafhFDpr#nzCFJI#cw*4=09^W%%*II>ylv+0*cPNhnbj#CqO)SEx|8;z5v>;AH;O!g5aP*_DgWpNF|e-zsf ziL?unqB9mqRXl&8#DyfJyvAp#0N-akdKlJ%js={TkKE+V+t-1wKc0g3uC8pb6{U}5 zh~FPYqhQ7x2N3;6v6`PdH9Ja`Go>h!(YcKHz;+IbKzg0nmjX2is2Jb^FO0@#BLTPJvKv@Kk{HY& z>dxhF&E4+~GPpJJ&3Zlz^h^`mod7yPgFg_#{WS7rF6VWe$)@PiXmIPR6Vhzp;>&(O zhAq|I#9@+;AYY+xYfEam<%a&D8*Dhn8ot8-Kl0l!biZD6{xbKu(wFl4LCVvm-=}XX zl*%b@hClW!FWBt#@~3!iZhZ?c?BFW;?OAvrzYY2roe=O&vWU1q=|T#$&hEr zI|TS3_r$SC-7VCPo#sDbf&Wzf)lGh@EyB1IB0m^>#Yg|NrZAqqX9iuRhehS~W!g)u z5Y56kSjZa+S&_0W{vagavbzn21i|;13N-S!A3q5ttxxT|WzD}9?nirrSFYn(NswnM zKhvU*0P^DHjh2v?a7O^Dq@e=z-tVKY3M8Jm60{kHZ97FnI%}+89>*c$f3WQr|ux@ zpd4y&jjU-eqTWqSJ6kXOGHk){ggTTL80C+kG{T_Mz1CsX9BStuP!3xf#c+Ina zu)arUU-h2l;cOSt&P6G=luaPv*_54iXx?bvv!wws`nZ}d>Ok8<%Nf2~!OpODaBuPq z%;y3g?IS@L@&*53&_UEC)=hj*ky0Ql`hqs%ea7zw1TWr~f=v$g+cyoVYYb+7P8!5V zUUDxwK-oyF{9|M_^{z~Cs&rEp+DpCKc1zSo_yM-&e(k7;v~BldzYu?8M(O9d+4p7f zdj_zLX{$mfAcJu5dZy4(-*LQatMLVkyQsf|KEsM0H*=1TN^Q7r|I`9EW(WVmON_nt z2rBA>{;k2U4?W*#>I@19bZZ>T+&iRgnSbi}h%=`zi`lUKx!2RrbzQtZy~zE?p5uD{ z;~x*0I$hs!b4z|Px)~p4+tq~7e1mke;fj4VJf=}A0$fDGJ3Bq23$5=qJjY{#=ON^_VU?PM+!I^ZcN+&!ihsrs)yPNeyQ0Odt60>@aBsBU8h&3+U zeZ~jc%{D236)k))mEXne#01?Fbt=*d&*%-l6*Il6#qDsoEa*7}pMpj%Nh|acMQ@g4 znV>A!5Qq&rSf|*Lj_gEU=euk1EKkEU4sI|E#U<6mVQQQwk(PREzP$uo3Aw`lTgDTR zzVC=WDbh1S=pTVkswS=1D;KnMPghPaBO*yD+#CM*heC*~MC9)Yk-t$Pgr1d3 ztw9>whNe2w-%rF2{XE0CaHN9pGWNCeUCcOR;Lw5o8Bs0)H*K}%CPrxk)NwdzNvs)r z?I_UQLz;K7*6P?hsy1I}Sh7Z+BO@ef`nM6~NNF7JGtskwiv|D47DYa;ZNU0sK=7VQ z7bB!gBPs z;RbeO7XtkRa5O+3h%EGw2WCxh!&cF=UcR7G&@wVr6n=0xN|Vp8FLx7kVftR%1Q4qz zzX!$hHxCMYd2-7|+0qM?+t<)Z^D0)w8ErjrsOo(A+{$Rv6O2HJ6tLb|T5g23{m6c- zQ#Eqq-FSmt-j`2o@B3OW&x`S>X6}R?;vM_s8h1+QWB&HtTgz&nLa^$a<-BwKJWJnC z2rx&+j9b{E)H> z2DYF|a^wd!Fd|^D+d;Ac&KnLsrLz`I%fEkc4={~>2q2w-Zr%h8SP~*m0w$mycshrwMS5>wesmF3xWYOwcMyV0c@~i} zkTRR=iDHOYK(Rw=;E#XTC`KTmz$B3}6O+2lzAJdX8noHK_r3F<%|GVUGZSEDoG>|y zG7{hUI$!rGD?n)@GFP_?Ph=N-3mRb&o+%?&=bRe4u~|KRMS`8*r5t-AP>zv>N9ekc zj`a4OA?LlDyYrW4`P!2-zJE|6hra8r06 zjDdlK^xr>zo)Nvff|;kc_9!FsLLH)r^P%KhxIh)lU@$fqG&o0LI!8NHY|)nG&Y8P} znzeE&d6V+>@a(}iXq*Wu@6lBIjV5~BN@%sO#@xP*|(UoK(a!8p)?8|zm9cKjnyf%%JL z={Ls`i<@M%Mf=dO4^AF-OhNaQJL?b(poZd3Z+_1{3STB;a&_{p>%+J z8jK|Dgpq^}Pq*K<`v>G0-r3HP8Ygi3R{TsHcrt@mH5%bF0Zwb{Iq|M-sK5WtF}Px$ zGBubg)=T9PPF`GTKB4xTN$5tL&E~)vISTS zzd5d610tZiunZq?vO$iT%t5aJ++TRHwxZ< z(mQDBTrTnc!24a|tMW?uJ#Et4yD>Lo@}eqRi3LCx1$D!@lf7W`+^OL&L4Z{TiS?ls zyiHC^I2Uf_*yp}O$KFN@%NK6V_n)DPZ0^zutFHZD?EP0*6JZzr3kxVHNKu-A5Q<0_ z0qH_eiXtk~n-HalQk5!oRC+Jc5rPzz-bE=!5a|$*E@0>#>5znEW)HsayZ;B@cd+;Q zzUBz7IN=&+=2_2L_x-!eUkgtVU&2+a$UDtlj~-VIJ?XuW*SV zgT?)KLS6+e_R4QI*g_&lx_`W^0bj4#)9&Dmr5sZE@Y_3iVYFIXOF?$55~EJI;;#>$J7Rv3hzb{5w;SG+-6t`QDlgIJg0re07`!n$Bu@NSPB|yvjGIR7D z;4F`$KL`7oLFtj{1=0!OoPEGXTdWcpf+C?)VqBLYzNKxX)@UA-xOYq?WQ7Ygtk%sD z%w_}ZxQv1u&cH}L+$4l&qLs7l5LaeD$Ov8yO@tJoanVdnb=N@<9Ycy(oA6M)Jgg*k{M*;!3b zKW$0-r>LHPFjV>trrET=icaW2>v~uHFet-(Ac68?0$7G;N zGp*B{Ir*ZS8Z3csUOvFiZskTtSBSqc`19ex`|hw$@QDswr#Z${o56bq&8XY+1ZJi^ z@4}Zl>&E#7mti|PdLP?WVQ8aie(Unf|9wM>`Te)sn3E6Y;poYeTJB!9&$Kn!ZY&`) zvwIlgrg0FVE*%f67W#p!+a`g`$Dkqsw*q-c;-EB6`yc+o^Q@Is&H&f*tI3JIy)I* zHjDpS7MBgV>=uoU;W|sir9MR~-nv3UE|Gjp)7x#pv(C&zYMy`#7*OF7c{4Zso|#@< z-rnE=6KvHUO&zX(SJyY7YwG;u{u@2nTqaKFj|cg@GV30BvzOwgNtx4<=u|=S*T0%y zy0i6yKgjkn!HUky>KZ0-=+GYs7P-h~%q2?0Se#t>0{h(&S&on&Ls4-6bNJ}7wjE|@SI3wBSzlKHS6mY!`|{PzKF(wB)MifGJouNr zdnmTml}1IuSs?M+=pOCW;igU9XxL80I{i6E;MS-Z369^Lq8BYGGWzSsUe7G6YKOkr zZ}=g|LH0a&syEc<#zF`2w>7X;h7*(fbQeD7k`BH zM$m7bY?-QgURuN6%(q=xD?=WUG}SW*v7}KF1CQfpIL#du?(a!BRJ#^F2JlJk1Qvj} zs6eAr{b)sKScCKuj^UM9#Vmzb$W$D@0Y&20b&-H^o-Q6%i&+goN~Ry}AIehS%Boe> zls+lC`ZPInC_UO+u~>8u|MA&=3Q>Wp}uwr$P@Ky>KygdVzUN~xwqQP z{yMoJ5|GZJr4jnffHFYsc2y-8z~bSy7~-ZkEOcDfvb6Kbu0w7kzc1$t8O7L0As*cTbIq%O}2C;67Sp7G57-s^yf%QnS&xiidZJVh5WpGs6lDX>CSzVpsq%nSG(}rlw!OlXaESXDF?7 z;gR8~JX#erDEzql=q<^JOc`lSnYZX|JJd{EeRNLmNLr_m!h_W#R7(LJ@a_gHm;U~l z@yL5cFDD24Y6Pe6um5Ss9Mz{AhYo6(*#7jopLzwH8ln9o172o;=t|hfl&h@kA|e0X zmeN?DO@%LG?&V&2bjS1qkv#YGf}vO5X2)5(-+%S@WsU_Gd;HFbr$ki(sqw-vcaM!E zfyaJ~P?3dB0Fpz{H2w#KPR2|_wcBx!RIz!;q;p?e3Y_{|4O-sZsa*h4%FY~H6PGbH zkCOab#xPpE2arC@*nv8iFnC-7rUR9^sPkhFMl4MRgIRr*!5ilnmr=*aiIZ1Y1rFN1 z@}k?%?WbQ|>Bi(zwb%6lYma`17oW?LYT$c~g1Edd98YAI@O}s|Yqy-JMEW!5eDuO> z;%Apq2a6=9s^Zqx+;V8O;sg8dmqHWKdgW{#SwVa4q)oC2mHe+yawt2?opNhD*T#D* zBcUn+mgdA2M}H5}&#NTK0jJ6bPqtjo4A9uqMs?surW0b@i5Llu_w7?YMHP;lu$?$q zE<;(#rxFNiH5tMz{PTHz@hicU~Mlvpvxy+(Kcv|4FK78z&mS4j@)jX))W;)_GYEU?hddzygmH3?`>e&KP>=I-r(Q% z>qZ@xX{NGwuN`&Pk-sjIQb(S`l)VMTQSDkc+OTHIqeHPiG-?hR@O*juAg6QrQ+;un zvYurr)#i$qtkh4Vk6nN3DR|fd$7GhHpP3o0i8&>2^6Sxt3|H~D0?QAwKPyBo5nt$< zzOWbmyV~WZ;9>Og`C7Eljp3s8kECb&0&{3%A^#RHyLT)zm?y>wk+>6}&Pi!VUJ(kD z=zs-V7QY~L8bm|3iX0W1F?y1J>FM3B;HaN(JG5cIH0-Y7cx_RI>^}J)bXVpel<*GB)`8b+c)w?Mqi&K}5OtPVo_lifj7MT5C zqj<2q3FG%#a5fhUOW$YzZlW&lm^0~>KON;@qLSH&{If9HFN@y~S`id@8dbf>9MK?0 z^Ot2%+Wr{7_r!bD$D;+t?=5Esc9okeo^EIn=eV*mqA@`dOZD4*@%+N~fB3yETnFow zW`Ixnfx<;X`L9H2Rt=D$mojr1EqLjmz3QrH&HT-;$)lV#XOtlAHh7<|AfQr{c@Y{5 zvB-jb#ZM9}<`FEak06G@vD!J{ba)Hp-LFauydcDu9;3hK+TB^wInQ#1tFjNz1GX>! z$3zvt<$a!0Iij9d}&=|KZ*@^IZL_uUfjOC@z83Cb$R?7bkX^_NCX zcahxC6-GedNqE4nhL~3mW|yXF8fQw+3-@nvDW`%34mQunW!7S%_qn{yDVgXNpduaw06_y)78)1&VtapT2})ra$qu;_8W-3Nf;|`RDFgh~rC0j~d(2V3o`(e=@nQ9cB(NA?Fbs z|AFwm2}d=K5Xu)meCzw(WuJL1{y%~_7{Vu$meH2DS+9JH%CbBZ5r?du+E@AyvUq@1lk}ty^7hNIj!WFyVH{N?ld9*pJT)@v{Z>pQzZj@kIsWc8!<|BOjbR-6gE$`9B1{NH5;yzppO(%|A*JXRfghB#Y+Cl4 zN8F};tMka~n@s{_F#y$~q}>t-?3C~i2|$#eNqBlJfOmf8P@)_7=Ho#iG34fBKHTa}`lf)yqqrRp{Z@17uvK(5MeLX;`}-yzcdZ z#T|X|V8dpP5z1(p#@MYW5**=s!Z~f^hl8Caq!pG@=}?m7rPs-N_&%7IXwULx-$)@L zob1Yya+^Dmne6CO$a`RKYjZ|tj`?VJe*>0a;vxMdJe+`SPo6L}y=D#3#g_p4!7n<3 z@+M(E2yM{Wox~-{yziyuiOlDpCT{8!Fw9#6F@2LeB&n*(;DYyhzcmF-Cd1CZSw`zk zkC@D8@DoRc#S@e+!TkA!0?KvWEDni^`s=U_G)OqfawhPp-g44yW&VfY!=#=ZsfQ7KuufKT3;AT*hybPfiu2{L7Hw_)L-3vT zFaA{J|IEXv_>bh_t3sWbfMonVWjPOjD=X*kA7Xn6JiafoydJGW4sq%)$=)_Fg0JC} z!v7xxAL|eAINZM6+bv1)=pBPs?B)+tBtDFI|3uB*>}Ry`wV1PCCl+%haAiUqzUy&9 z$X!@6h20!=IwN{X%<`~GqzP1&y($n~hObGJ>u9njqa;F+In*#jh-Ai;k*{ua$$ z>M>P(hlI*|F-v3GC;slXs>Fxr$$vH7q3#$0u&L;?J_dsTH$iI%0}{hFwtha?^WMZ= zHJTTIlYInll&J6R6sM%-T>dYC58l!QwqUeI1@^9rS$T&>L$fUEUZDo+A1>yqQ`~%* z`j5cpx0Sh?Y-dj4_D+BpbQZkf%O2^HY_c(XidZpRdE|%pwiqtu@i=@jiqm+WQJli4 zpS4y={7{rj2eo`plXXdLRvZ6B4Mg>Xk0qi*wfVUTT+f+G6H`MXjj(mg2+rDhnjX%& zZeHT(X%=zZ1ZXNF4P|eK^6dcXJHUPaMIZvC=;r$W0q`xM%7v)&m^ybcOcb;~D3qFJ zt*EX1z8D>Ft;L1!kS0#hR>L4FTonv|9ifFueXStvxtyyPa|XTUq#p!YCUYM-c5vp! z;HX8`u&;K15oMMnbE9A(i8Ww*y+3^fokE4KXxnzHQsK*K#mY(=>V+R+Z!Zcss#k@Fyp=UK1r;nlkyYW8a-n5$92vNp}2z;6(O@ zL0a#dpALCH@5T!t>aGXo^UlS=eS?jk5ethM`%AY1PW6qAxSXopN#3Wqz?s}W&7x6> zY!M`mw!A0>&wL$}2oSeU{yW(of_Y6EC@8_e`vpL3DP{$ES@_?AaSPgrZ3Qh4N&7#^ za0+z^aNIV=e1%h1G(#yJeNjw}XlAAm~mag6pm~D>eS}sby3Pq8o z-080ux>Z29iACLCd$#< zK&djkIEFmkO(5I9>L4)k*4(~MI}7X;73bK*G5IQjr)wp>+hk?xjrXL} zJi@CQu`;Msa&P{oRq{F?iahOKOt4Qm-Vy3=6zmT`W0-Rhr5BS253p2T9l&R%CO|{36b0*xqseHP} z;<27Nfyx)yMH3KWaIg0K@!9nvoG*$lSrBk%MGgSn7whN{l6N)W_hvp#>XwSG54h{G zy(PmWE1eACRr^IQ{v-UQgrxAm^uJRD`77NkIH?QN3z#)5(A=T0kB^C4kK6SS&}u|p zHYRATPeaU0*cxXm$sPG>71!j(#$vIx;%UoSy=yTsEB<;%LynX**5z9z(uPQdGL!8l zB()(gi)CHAN%Np8bZ@ZqG?VrHre>58+WvkZdirPsztr*JyXDhAL&~|e>G&OZZ+*^c zTHa)<&Pm`&+G~T7vwHL8mjsF4BHSNyT0w0sp0)c_`O_)un`}`N7a?&m$JgH~30OSM z>kdr9mz!{^n0T?&&HS_FJXRW4jMLa8nV*nZ&$2HIbCau`9=-?q(bh)$0zexd2o;28 zy@8$lFxW{^)7mU?44vr0wAP!7|P{eLKUFmzm^w&Xdo43D9UZZ3K)`rUZNCOi*NV}^-)aUnL^y&Xei zfALTyQbz%Pe_v71GO-2{=*TL@$ssHWCCHrk{dVDKh4?RDv_4jWEaGMWf-5q%?D=!^dE_LKSaLv#p|Xl;fbvmsCpu_b1ycEI z(g)O$&y|9sT&o{1t-PGjW_7cgta>uzScO&u0;4dp0A9B)W!@xMahPi@;GV6@9t9=v zkTy;@KalxJm8JLjYsE+{r02*qo%M5* zKt-t^RM8?}{@@h!I{!qb;k>J1;VJFrK9Qs(uler|w{rn{t`pAbN_nS@_FVf#zF+q2 zFccspFT|N02rV3JnP*BvRGr@0knCrUl9pxUCk^n{rIcueou+jhjM$TdJwkO4G@x68 zDX|(5T;$@e-${P>9H%HK^B-KF59ly<;_0=!$3#DCfI5-VNk8naY+?dNuk2hNY))nD zda>LUetX^3f_}a8vxxn*1NQL1X5tUJ4++Tc!>q8}=_e>|sgU!s6J*mae|Bj^{!z)# zUi1CmFnv16X9d;7*LS0y)12hFQ?eL13`Y%+RA~3-3bq-IlW<01A4ge?YH7V2RRt@e zUYFl(ScN0GG>gwsan|zK<{;kb>bz2)u%vqz9jod#9ovHO5y5;2^;jBciTxE{KC8R; z39~9(2U`G7rDp2o{x;}3Wl%4i;U+^5R16#g=)RnT0d&nU#At`nt3En*I+7&I$@V@W zFXVxMY!wSk{FA)JNlE@da)#&gh)O`9uoC)p|8>GXqnO~cibv5N9y~WjFl{*%9Yh+2`X}k`9x#88 z_HxowJLpua2TXR-uJjN-cNF#TH2ptVA8gx&;d`y%o1ijhE7t!({i;DHLRwmZdc?;A z6TvGN34D{=%ZRRzj=V2C9tgtNzdU%aB7tD8_7L8NaaC8!5)dui(8j(lcgb7a-|9Ep zzD>~ldL0ayzq0}&1}ck+3mvT~}A zq^~Higngi>Qp)pExN1`CN8WD!h(Jv-=LoK~X9cU?hz#dVgJWl^4^^KEe8;ITx8RErb8()Z({@mB)? z{scA=`GxeB#Nmv`zC+L8WT0l`&Y=vk9V=luWMW;w%5h}ZY4yZa^Ig-j?)Ikf2XL(E z46+;41mg&_APuEpassC9y^$QzgdYYU7%PL2)uykM*;+ck4N_dzas2qpi04bcnfx6> zG-Y1h8U3UQ@&h0L+!jw!6_F;|B*LV;*>z3eGc#1pC+5-i_wI$GK^PWSy-yzj|IKI? z5%Sw_@7;7Zj9aBYFK1;~EX0Dblm7+tS^Qz*ZmycwPDnuL44?l8=JR%NNmkzfFL4hD zBT2=n*fFr;@F;JvfuU#Of)s6BaBAh~&k~bPdw5#Y14wP&-d|EA>~yzh;LE?lu3&uUTVxxMHIC*nvt!MI7jfb1*yO$PIp4eY5j^bbskMq9lKF#5oVpC^X ziqc=vKgx8j?nnH<2z$8?_6rGF$D4sF*Y{G^;ds9B zg}N}I;Y`%+F9EECIlAB}lSN-GSz;pL&|eFbv_-ex?&=^1YvM!ZQQWa48An7vaHg3X zHD2b}3rr-!z${{clWY!jm~xdHmFG8t>5^;~Kzu;^gCuca+vg*AD7NsuS=N4YRWNJc zb6!LR&5$!2Fk@QFBKf}Ylc=b0vDAq}gz)#9z|y{Yd7}wih{4Wv;EsLtWy?JS*PG@} zpsk46^$(=8j8?@>0=oG!fes*EE|RJh`D!WZ#=}bDSO*T-#eNCT<@ru7amFiIhK#8 zfg8ut)7mF0^bD3!|bo-5@*)p!@?Os)mFlz5mWozjNzf76R^aKaeAai@P#~!p8=Q1Y8^ z(_#dp#VwU%JVFzwB9&;>>*D9}T zxdqwv$X!g6vkZEhw~gdvrU{55Bd%3}0Wte=1kR>Ew1^`iQ@M*0LqTu(qR29$6SE1E zg|I0FW7r{GdFqG0yAM~>Z(8;vfnd3d^rO@H`CBEkI*+_XiHGCF!yI|;(WH}52fEhH z@nUCIBpC1+bVlye{YGX%*2odfA??o2TUfvd{oB9bI$xnOhj2TdDZbms(;^)+OCp?s z4!hwgBO>U|$E6}X=_L8Vr=ht|2}7gb4o_PqnDakhaJjL$TE6+igyYqTVI?w(x~VY3 zX!Jv^!{CgDh{P8mzp$zAeV_i~t?aCBM!qim(3UXlnT-H+T?a2lUooE`47=>7!)}6E znlT&)(3V1wEUa@5hxbL5tMa*!06})T%HufFyaSn`XY%Z4i1yQ$v%oPcZ_BO5zw<{h zLy~&MulRQ8L~Kim_05G7uKg-i{J;sp$6`*@eD*8Grr9rVSdQM9P}DT>?C2s2MKf$s zR|<&j*pEk$lAWT1PqW<8NxknQ^)O~U)}&;)h(U1x`TFHQ#@zri>i%B2t<5Ek90l`w zkFKa0haRs+>*EtefM;5%8gCqSM1p1>u$hQUfRFO$z^?)WtFtCHpXXS`>WkFx@9FaL zOw;GzGTy`HGLyx6i~ZEC>2IFX^?5OVd93rpmDj~yxj@Uzzd!j~3b?YdJ$1-ov9M*d z1vi~!g&6_-!V4?FB%|7oVN0<@Xf8DyiTnXX$=mpufy2t9e{u|eB~RW~cWa@RS`2-% z=J`@o#8N@DEF3imt1WlLR{Pg>Pr-6a%tg$q+t}Z4YIkZjYm9nFrZl;mE{Xn>v+*+p$;*4C$F}=VO3te1BS#A?o$ID(CY|W`>4hp@7bGWF3yl<5GH1OP25}O)gts`2?KV7++9BX zplMUpxWjF@u^)ql`${2DxL;WL3Ot7htEZ_FO}?GOC)3)Q9zVLXmYaCudHqTQ_lfOP zJy9|*%iq8Fr&QN$A2ghyd!JPj>ItMnEq`k0h*3{Oq|2Wi=82V-F+xSGpbU3gP5*>x z>D^mzposR}9h!F?@R!V&=RfNe7_{9bDWbG+SM zaQX9_*zI;6?gk^sn0v6l@Si>PpXMGJ7ge_iJvkQL?{BKCAu{wm3S=g~RzY5sy~a8C zY;qmd+0NMf_SEf+V7FXga{!Z4)#ltiIXZx8NO|QBCPc3F0fj0wi?80xkFc7C#+S8) zEyFmGz#wGwk?%do2mMW#tXPN}B+P~A%4OufJmgxva~(f-W{SZEJy5L4oi^${e>gfl zSXQ*RL^=7B$U=up+8oI`ybOHmp$09>gJxW`x-vaNmZnNn<-jdQkgedKZ?!$;+QI16 z9^YNXHQiD@7acwINd)Jx zSg-nJy_fz6aMCj=Gt=xm;0$e|u6WbDUki8Km`GpyLd_7aT3L>`i)ww_x36S?uPvhn%F?c5%ksI0s(n! zX_>#lkHyt4O)qV%BWUYaPu^kCG|R`O=PWci!i%kjCUq2H z@*|rRnj0@sgDgyj)E+%8KNwYIe^MyF(Dcyre)8#e2}u-9&FWGW?0cKAqn1Gmz1ZCrT6~sq8@K-_VtfT zm%_o$TdB^o{v)3|o!tg;$CdMUgxGj@Xqp!b$QF|lcZF|)W-YnYb|3e1@|zX9SIc*>sEO>C&j0&-zkYCv zeZOfFskm5U@!qZjy;e=RmS66aLd?beC@JUf583HMF;|7{%uaBjsD{j%Az1=f zf*9e}2U=yi7xUOQc2X{oNY|~tu3LB;9_6;sadjtz1l=A%7N1^YSo0h~kB%VL5?!_d zQ=1BrhqSJ(P$pkH^re>|=@SPVgfv0d0k}U&_ZqG{kVL=_bcOv=h|{eg<}m~dn_0-a zKNs)xA;lG)Sofa1RsR@r?*M%XzW?4{oQK8a*MKYS7LNKC!c;F_QMvIfuyKx5S5yxY zU+FF>#+bc1w;^V}xXKLcnWu3}hd({~!Wlu2#h$-5FZ9OlsQEn1^;n84scf)~Iafx} z)sN3_43E+t{ZMVXQFXhRC*|UM!^$oNJE0Qd-Y@N`hkwRdh1;36KV2+8T~lzf^(1Za zVRDZ5&_IA?e;Tr;jEFT{4YL>F_w&+#Js&x(4%gCnK)xgt=%!OsQY3flKE{ z^2Ts5b1fm2`x_1%Q#*EbRz3I$`hMk6sXqk=MX9?TJMxYX^#11J2s|P=_T<^aGG0&?aEl{m{-op$?A_mXl+t0lJr5rrpieBS96>>_&~hDHSBLx;<$N;evAfn^^;9cHnRI>Lc!MU9MD48t?*635S}+QMk0M;zdi?8uQx=y>;2KD zxr6?x*_K1@@`2=(lK;YBy3L4*XhSYr^!_lf{W2q*-u$;&l5FC>U+*WS#86kbF0<*9 zyhsb`i)yw*T`=oro%by8z|s03MSWl!GEc#TNh_cn{fBkTnKYyfc97=&Iz`=&%e zG2EqRDx^m#34)ke7ZyEQEM4!1HKxKqj1v8!E*DZNLN(s)kW$0w8b<@tf0GBnV(p zf%z4Z<42cUm9vh$EBg-rC(+r8`z7TZu>)K(!2yKvrSkG?f!qPhJA*g>RT8jC)EEa< zoE;qlG854X&`&n<^vUenuy${y@1-gHr|y)<%pDg;Daa{BN&MjgSomvxh-+=|@xuMr z)xPSGwZ^@*(9kbjwzTicxirC2_rv&_uAy@VPeUKpzM$g$2c3($>2uzN2zFh&^z5YcfKq>!!(QcHSa6r+n9rsEL!A3nx{SUT{XHC>90fR%%^VFf8P^_+ zU_vSG{Yu`)JPL;fXL;=sf*<11@*6N#CXMm$vFi?YQ)K5H`#Jr)VcQN(;7Q^yzx!T_ z)sW%UR>&nx2CQS+G7(_Ty}Av<24GpldQZfepz&K~sxPhd=ndZ1Yv6=OvZ6=QnbXiT z%I)#CnrVClV+ZO?HfJ~~x$i$FF__w9YR6Iya)!3NKL?|jp|xt*=8D*O`4cuB{!C>4 z=lOz}b7OB{?i@zv>?~k`xFZ0&c$VU@zF-IFmyKL^nkR^1Q6*A7ATb4t^3C6oT`Iqr zb2Jt$f&%X4?^!Hi*ii*8>F>{RBoI+CqTM@&8AjgKOnUB9jh*oR+7qN1oO65IF!dO& zE!Vcj=?a(mRyO_`P53xpSdmVB7)N_1@O0>nk@2&y|54^zy_HUt>(c+1GRHkrG1-^p z;KmC4_UN&DS7z`(%-rQS=Co~Q*P46`9j9Kcs*5Sf4~MPIpwgEAmY+Kd^1jF-X;0%X zx&8+~_!jIiD)6-r zU@bQ%c0Q-wi&-pqYgFrNox)E#wS&vkF!FkrUm23+ajmf#pX{-!JHIZFe5< zyPPrz%nBHa$4mKK>8X^GC3BW_<9!nr*O|VDy*Zs#&n#S{mt~ClYczfT!9U`h-8~li zc#~8l$CB_|;mD_Z%$nsIrK@F2KWJsIqEIzzc?Q>dR7f%Eug{T?{D8pwl;#e!hBi@f zKN3vNiXe;7@f=w=#*jxEtJYBOK(q|+(=RRU-+X;gz2{7h$qHR{Gt z!E?qV2yC5wmJb$=R?LIy@}c9EE*X;sgVRtWu*vCoR*UP~)g_@FN$4v2+cYM9NZK&U zyyrcj#j%B7R9P=-IqC@e$nZeD=JL`HQ9HBS_4WLcXh9czT!x6bCSs_uGeg@44MGEet5fnR?f2U+kYMtSQdE_vim6%pLxZFb8V9 zu_%$F@ULHN`u0D>-1jykwPH&nbDA@k&zBMm;-pXQ4xDj&S0?xHzLc7Y!JQYLaZhz$ zn1*5=Gx5Nb5J|#$)-0E_SepR&KU<2yp_rzMk--ISSz z<4~)`?5bZj#zO988|Fswyu~RUs z?E%_w(WKY0^b@n4PF#l-94xWm9@z7+!N;ZE;rpkI_WPCS-JIPepMfJ8c->pj#dYa; zAR;lu*~xnK8==}__nW`rixQ)B+=g-u$CWy$@4}op5zd17%sAJ3b52u+bAe;}R{lej zvTHl-%%Un;A9(_HOgsVA5? z9OnH(?s2WbO1gpG6}JL;1-nO`r8=-%awm|`m@!j!*E8oEF~h1zMX~BzcvKi;gHha> zqOZ@(o<<>WiD%_GL=Kd6f0E(;kTtwsR2&YPY`mZE_43^uDa?oZ@{pDvtm`P2T!!~x zPaJRuG#@EhKQFEt0S9!#)4N9)8vyqZcz)hAz6$g)>mveqA-1y-T1Qv#qE-)+^myX< zEL0ihVUms$dH8vy)G^2LSTJD?x%Pn7i}o;=>A`=?9T-_~fbhEqTPb(w$CN&)1la)1 z6Ex=XqafwMuCV=$f!gkS%hB+ICiUnT5K%xczW~Ja_U9noKsxJnA9wKjLCEDb|IcUR zu;_`4M*mMJbh}^lFQ4>PwLHPpb?yZ@HvJcAM2UXj9eCH^sbcTP^MCzc^`n;hf_Qt= z6XS`)WsD0A(dY4_04I;l2jY`wH-C1@8|I$#?(+A{?tVs1oT0yQ&jwEe=y1A4JhJ2i zQh4We0Jetzv{yz(Kc|?kyOv+amLTPtO75CLTViFk7(pvDXbzfOgdeV;1;PLIlVBkU zY#WM$4=niB_{TcN4w5)>{Ss3D`|>K`)4_E1IN(qp_ZP_2$;ON|b%V$jrlTW?4awa| zl^1FqhVCY9a4G{)+Xc~IRK}1N;IeoPRb~ZcBxBK=wicli@K_(yhCU}te#e=$jv(`ag&3FE97boV=5JKEW3wkh*%WANlKgS-A8Yi+(6@U0U$Z(g8 z+F0TJgO1i`HDAc}dRqeeP_CZ*6LRWmj9O_%G3ApO9iLb=^~|pFH^X?U>ctQ>zJW6B zsN%0>%;5BC=~MT&Xrh|)7qD+GD>^zd5!6k;3&UDI=A)w#;*VSdFIgBpgUam1Bh8f? zBTac{feX=gLdUOWN#r#wa>1TB^G#eU8*);nOFf44;&zbL(BqI!@a;PM*2d$WQn`Ik zChLw2Tn9`qSowk#-=AhlL_|P#yz!YhXUM=Z*Fq7x%A`7#=+F*Tes6;k$dOQxYGVax zVeq@J`f}vfADm%X2Mrun6MMp{ySR2hT7fjq95zu7Q=PgnUNe5R<${}E1|?U&yyH{; zQCMXCG@Rko=@*vNJlA~AZZx|VnWQ{B6^=cZ^+45i>8<>VkyUN+iM_{S*5~T;(L{|u z{xDTe_>gP6q4mwC{*-UHO9rts2vMh3fZQ9zBx zaGm9&1pDoxeUUZPSL2wwBY^Es>6^=@otdYEK&-?u@u~tXtT_*{E#RzC>r#E17O9 zp|8A7XWZ0#8d`q?OSkTM`oVP`688?JMlv}QnY%NZ{Pow>+`AjX+FttxFHVHE*3=JB zEO;_TrcmkqW-}W$B=j42a(?RbHaNu~dw2Dl2oD(Y?EU#;2&k>_F?1(I@OW`DPWLWB zme`csx?C_ad=N&2wMOuMa(JfsM%h1;Sbb8NdYpV6G=uu8_kr_vx=#BpR_KfS?EcNQ9VsBn; zdu-Ki);hsdIo~p^LBrw|ax#U3ov@L@@EKv1Z+-6lj&kB0sUp&+4n2O?WE;fH9B>X9 zY*iIiX=T4~NZMLbItl3D{1(b>SqRk+YM&Rk0_0lla1sZ4WNsNf&kuVG5e5Bx>XoWz zjb%S`Z3Fw?uY#D3C$orWVHLMYVFMKfw@Ej0>|7(CDj*L3-yKy>6bshN4Q6%~P;_(VLov@I{X?bnJ5M&2#RmPzQ{ZNCmA zUEFJOC!tmf_gjnj=?DH;J4=dU=h$xdU;MaFS}-PITzMteXrk&iADOkoaATSnrG=`fgAL+=icaT;pgppj9Hc^AKHWRmTlUEkzI|orGVyOqQ(A)j{K7xBS~-=>K|pA{5EijR z62zi*NS(Upc1RI^u>a5;i(Vz1KSFfeIzU!ItwBM)i)mzeq-N)?30>>p5fI1|wGuyj zL82kOf#~CD)R4OR)bANo7yl%U|KRC$$P2?s!&NX^W4Yv8Yo_08Fph>VQUvm>NyFG( zp1-N;yQZj9o79)(hD^=5?T1BuC>%^yOGFM=?*HS?nf~L>spXQI9LR51DL;A%6uZOR zxeyBXcc>}u(Y>=uZ9v;_jV5k*)#b{aYpUcAPMpL~u?|8#$v&TQhUR zL6GSt_mA>4+3nO;{%!kNY%4kf6X2S$gpj75{Aj~YZWY1;ulTVTB`-Jz;X35r_^6;` z7t5++Bl&tReF-i1DFV|JR&mwwh8w@ryf^3qMY;KjQRg9`FpVQN5l|Au)^kB|cT9!C z-=clN@P!KQAA#XsR^MFCRNYsEeu3p1jQO~0DO#W2J0)B=SL$>iXTVzi!v}$^g-Dc8 zZLB$%*4g{gEu-#_sU+2Gy38jfimr>dykwK2BOYYVSv{4UAREFvng=v2jO~|3a?bW$ zUC$ZqApNPIcxHWF-#fU1)}TGSS^>~h8@yrE7m;*_JfMBXS@v#kQm(w%q?$n~@NQzZ zR=G?O=2if4B))_Txxa#rubMu~QIIi=!~O+z_+KbK97E%gPA==NBwa4cQ$BUJ05hQR zuY!Vm;e((M_@6@IxL8OP?AhJqYJmJQq0uRRY(|ObJ6n0N&Rrp7vm{p{S!m{a&?!OQ zM6&z_gSqPoO+c95F4>0*{qq%yAaMFdeggvZH zF^PV{&~xu;3;H+w9Aet#se0}3?#*b0F`mu%~!1lA+)hn|_eo@L%PS-+>32 zvx6Un48Jcsohf-i?@MobJp(EVi&nCf;*wFwv|{=3Yxi|;jQGSdIjqzic| zwXuc!auPVX5wH{XjxWK}v?wV{x|VCH1JQp>sIUg+fX|lEkPikD(S@y&AkBoY4wyQ8 z84M>0&}Ig!VJV0iblRC>UUjGY`Byu2X1XHpgPgqsy=tbvq~!}@bl;cfd` z{*3QctPTKR7=-61O|Z6a?eQRaZ+h!?^>PRf@7nB9k6nAn@{KFotk|+AEg?Pe!2^|zXsLC>=Am`(j>6KTij;!nnSf!u*VapLvNF~IsW7sNv1cD#R4Ni_GcVJ9rj&d z*iIs7m6=V_)n??MzSbuHo%x>1UcO1pO0lt~NxWUOC%5nQ;iM|M<@ztV`Mr}I4ftVd zRp)CNIY&MzGf4JNFBrf?*5Fw6v3T-(Qbe1tHJ@hLf5Ju91J)&l8`psfse_m=LT?yE z6|5YAw$O>DK^*nOg&jqJM1^imMKLwfcx0e>Xl1Z|o4iIgg-)}$ zR?L_b_xaN|x##(}(XYP$3_3OTd;|bY+kXl{uctgL2IoK;KJ_BH&Z;xaH|Xn*DUiN_`60Af-Doj}Qr-+Wh*MtwiirBsSKiy3Xd z-RJ3>U^g<>MO_<2Eok0cwt$np^+l2y6wf_9^@; z#xMnE^g|~q;K$Ay-s;Ukv+&KhWhiin8VSzah9cnK{O>^RK!0Rr{#>wuaYgIUUZ|iK zO!|WxoOw&wD$d%VE_Yd)i-t+KjoibguaH89k+}5j;kb`OV`$_{k%<^zu#}-O3nmHh zqz!7lR=2a4{eT)V9@gD}Wfthpv^c^c<#mdCcE8M0^<7K6n-ZlzUEa@qs<y$`&Tt%g2y%{8?@=sjcPrVDQx$qJS0ZTw$k zy?HoPfBgTgB$Z@|kV46lh_YqLBwGjxk!?aK3W+4k2_f0Dual)@9ZLvlvTq@>i?Q!J zGiE*KK2x9X@Atj$`mIp=*|@7L@3d^~Za?<>kLk&~I~-Bltj0<6n7iG`;_ zypuvhnZw569yt&J>rrTTBTfA7x`jwSPR!oc+XmqO7+{CkhQAAedX#f@2adqBRVa>( z`2&p!4AoCG=bW^ghi3*px6MCQ@K4SWbu$s#9FwPjf!Qy#$E7!T1$4+P)>i;SxzFxj z^>^$ipkgDDI7;XyrVvPR7rMXzjtm$NpX$sOWNYF!xFQo^MZ~ zY7hO@A^)qhgVl*~gI{002zp$e(Z281LRLX9hLLpJnqdI}1BfvMRJGfq!Kf_V9Drj}H*9=6_5S`1KfejBijUckkj~9S3nj+xvr0llVjHGQJk^`6r z5pdD4*^GTT{s))?1^4-DAcE6Aa-`}Q>fz!Q+!=kLb#L&^JeNQj1b+g60TF=+w;3Lf z{^;vO4p{hR2PI`G{}}{*SF@HJ(262^#`dL{Djd;V`0UvyGf|+rz8A_@@YvX%z{EPuMv>4%zsJO0yl{C( z{?&=oeF%%}5mb4_y_ommBiMC7stP>hNHL(e248_yjVWP}^+|a75x94$MVpd9D9q{k zTQ)^UKTfuwlqG~Ayx_JRzZ@s~du6C&SF+<~CVZyglXExd4^Y1V7H%l3G*B6%GH<;7 zeCu~NsD%g4aFO3&bt!R##gBwgs>$Y~2g;p^dvIP59%uv2=AJ|^6i$ss;9~Z-X70Dv z<5Amc?01o8V#nW7e}cQeDfM~Xwb#CVzZ+4`Zc^Vn#wA&h8pZpm!pBJ3isv)S&@>?a zPEo(${)JA$)4kI_(YtDoSofA0PQE+LH0f7=QU5z=%4?<0^d?tDM&JH%E;+(TP_?3< zHvIlT{^{u~#Qu*5zZ|kYH2i5qIop{9LcQ%M0huVja^C=FILyZ}0YiWY(6i&)5ONGUNfZH*0?km{e=o!qRCzJv z!9%ENJZKau&48QUnV9b@#EMP9GfzouyX1Xf`V&2M*Ko7$Ij8TPiGA^<4smg;H`XY6Lq4P5gxyFRbeyF2>ybAikAiJCZ)wx*uj z*$#ZZ>A`Q)7{hC9_1RU1Sor4^Q_vy;n!f}hAaH-a6KUGzR3hs$s01q^fs(a&%Bqt= zf%&{OuE(Cr!us-f_EElj1~vV=zESeVCe?qB@b}1%b@3gi zbrX=S)!N}!mscsubpNjT#nV$r2`ORQp z%0x5&c!fIjV$QEp&MeDW51x@5z@=+%FA4R#oTeCBAP(mCDvYQr80TXa`#}Jv)S9~&!1Un!i0vi4l;nQBd4!!WrrB2mC-=JCR zv<{qY<=9H%PdgtB99QnbUjb2M0EgYJtw}g|YV>B)5irto^KqeIt49Gw$a{pcX?nlB4fLOut)N@b?hAw`-dbd4wC zFJ13-z)oPl{{IA15f~yjWTet*chUJR?;-(F%ErA730>$z%x;yDt{B(Q>+? z{R``>PUwNN@KcU zVxqZ3$-uFA7w!$S#SC|1&C&-&cD(w~_e!Y&=@mF9W>_96j9&~{>s|IU=W?gIE|J>6 zjMJ=S=mZ%>uw&#nQ4b5aZahSqH?RX4i4KAuL#^PqCNRGG@{Jsz5e{Q@Hl>E z<;PVa>6P2CDRCcD18H1e)BMOb{<_xPdw3MMMtwRHec;3)KMvou(ey+IbB4{Hdn&L} zO-(o(ICu`bI#RDpIbOr@$*V0e!_8dH<%D7o@w7LM>u-eS@jH zt+hi__G=aH=A$p}eBqY8s$!WfFIl*oe~3*DiMn*h`p~2loQzra>(Bt#1J=)mBJAH! zfpy}_c7#hadRlcS44RuwhHC0wq#eEe;u*`wYo;X3}QTW*#5rkss{!2 zfbNi;(cLBm5YnV#E`#3G4vY_ED(E*nx#QKsf}`*n#+5Fs4m~>8`-NgoK*Pm-BIYH2 z+S|=G%X7zj4$HghV%OREwaFt>-l`zqNzc;Q<;6XR`}b1hdkQriC6c{&?VUx5EeT92scs)& zJK&*8ZU99-K8Q|^oIBRhC7|dUOq`-FIugh{?4DBSNPK?=jofJe%{$3QOe^FW{=Y4~bir=bDa4!9wN-=DFN5S;}KEM6^G zq|N|`-aHF~Tw`Be(A`GdT)0P#_7EI~LeP*n_1-*UH5xq0uMRRC)MAXSfkqz9fp%fR zs%6P@#PMfZhNWLt#3SN6s7W`ZE;E|5xam;BJ{%X#Xa&t9bv!O8(MLPS=8vG%a*id0 za_7t88Sfv+q%UT?)&kP?zV3g##&Yv_HjE{Bj^~=#h4Xh`t>o;WC!n)OaV9)uM1qbp zvPR5-zh({FwuWFS6d_95Y_kvN6O251a5x=>(bTd_(Rh2bT+{i0?I*dtX)E6FM~@(todA}=qoYqE{Sm|BrdWy{X5~ zfFDW?kAp&NAKcFrL{N@Kv&GXM3Qrf094db{$0FpuzSNs_H$kFtVmEvYMfI*^Jo2ZV zT;$B`}m(o^b5KS_s-w5R-S?bSMYfsc$81w$*4I>&S}B!kvw7eYv_CAd|C`- z3AMxWB@7|}Mfm+JC_6Mfzo_$Y=*<~)zy(@=GB()W%6PigFuNJc&^=Z5dgb;^bnvZ? zyK9>o#+nW3?(ZO;TQjik>n~mo{x!mX*f>~AaPDsTo)w*Cc; zne7)1<_t}hz}(U7vj=58tHwfg57Y)~$iAZf#?G$fB6HECPpB}bK(K)B_h7Q@_k4My z)KpCVr~AR3e4MPe`!0$&d|e&>4o2i_R)=4JL2!YG+Zmu(&Qk7|_wb*ujp;&|%| z$VF0U%o2AB`(+r^%<{DvG`qIO+Yn^;Fqm?r3qF!#U7-SO--MBIrRm0zE~aUP=YdxZmkXG6uriT6AWPt;$`D>oYRM-ulVWLxg5mLQT= z12wG%xJsaE4Zza<6_07gvwXl_;2F<{oMP2V9YA;uGu$rWGbE6*evEmhxuqi7gErJ zEcdl-PJ#z*+)y$E`Gc{T!dstZI-fsXB0WCSa}{H^Au!Fr!qmX(x`t8TeLYhnudGkzypz)Fr)^UU4J!Rs53nXGVR<}TB8p0IoK*#0 zaiYPEr|`MNym=prP+S(Q zDxAqZ0(sge$4BTV2t%%^C_uznSSqrzMd(b|j_9NAFyE=3l<8H#sZ z$Bf(%zm(-a3T&@e2;`41H9ENDi&&k#$B1^^b%^;1^4|RY=vuySSieXghV-W6 zy}#>QAL;u$uADJzm}gM6T(>tUar}!>Z?au9_>Q`$MX7I%9W!6apK#vpRQ4V84J!To zV)%JGdDhBb!YUkzNVdKjSoPIOCH9+7#k9V(V1)?A!r0~owl+%pYv9k|jqSX2=lGyf zrHC#!-Du&l1!QG9S>kpSWQq-FTy6&{6XWw?e)FSKBkGX&xiUmz zuwj-ES3z;@&EehR(1L;ep4!PLTNknwW#=y z_#9n*cDU{u71e;M(jyE$eR3Op>)A5=7NIFQq^QeR?qA}2wg#MHCAvNvxx@Wl8Bn}n zmz~tie>G>k;=F>DJ3Jie`l*?}Qg8;UDAJo@Q7aR2s5x)i0`j#tgHc885l^~q+9#zq zgDxqfq9#@ec7Vh!K|LLL+e@njpd#kM#G?d%7H=U+VOMZ;U)PcI^|P z5D$yHHz#(6JK$#;#@b(EW8h4)*6d&mhX+BgmL$WVJOBI0>Vw(z!Ql?-qvCA${iajd zH`n1fJD?pyYN)t|BpLxbUf#7uHTnz{BgBfC-~mRSFnV?JrJ;yeNAgL z(x7o8m`i-}&Olr7#f+kVfH^VW?_XNL(;30zZ;dGiU7d8Wtre=UKQR3ks+oCK0p>|) z3?clh4unBxJ8n^IF5HU`*cN}n4jc`A)!Y0!LR*hwvhz&&xenzoUrwS89uAy2^8;n`<0#Kt1_9P-LOAi%{$e}k#6AN|q3PGTDsV9|d3 zA&d@CqHkXWK)f3?%sUfG5u`UU-Uy~5S+~Q7$DqnT1H(LK#3ylw%V`VVRmj`h_mojm z*<4)@oWwp{INi2xP?Ki;Yu_%&XGnc93#HgED}xfFOFp0>al3=m{L=RLlaLa|UtEpS zMJFm%2|D0lsP$qNSYjq!d#a8!hgh|VUolrlm_u&NkZPa|0m1P#{F){xF5ZXfJ1O%i z_$K_JKe%};I;|Q*dK^!bnp(Eg_f}2msT#rd6^1G@+*Pbq#5=mZqblH*S4Xj=_|0}| zE_|0l*P_r8&`F~N7%Rqg;%^um#^W3w9c0_EjhjK;H(JB6E$N>9E8E~FvmB)G?Yw+F z0vve17=14y4FE|&RD+;gqfE>R_FRIA2G`~FJ}={I^9^zYrzx+H`>^=`+kupuM< z75^TUlS0heR|$dQ9r;WaGRU&L1qI%w8B;&Y@prJj%)X|-jqGTAIc2$b&jgm1U!U6UBl7fl2`l4((9?zHoR>wKI2(`tXt(DU(Wa+Ury%# z@a5XhaasMxm%9k~*R58I-ICX2FZedl(lT*R(PIpG?<5YVTHD9uNFCW zhk|qy*dgl=2T=y>(AB}NKZ4MWyUCUTqqrW};-di#@4k->w*=0y5;2^_>aW#ml zp}}Ef*^i9KTMP^jsaeNYuwNhx{+)}vMug$gPNl<2B|Wgy$3Flw^h_aY=E|kGmrVYE zSg^zAJjSIPZDIE7r;-NioU*dez*DRHHw5}p3|Q!1PkzhsGP!b@BY|LabfL-P15fh@ z=>&ZiVlS)k>syS((_R@JcP1L*-818UtJJ$vr;$lg1lRkoU=1NC2=IRLtS~o$udFQl zqSKcWCXC%%yhYEw1$h|s{W$bFY$4uYp}V1T>X5m$SQwRO)U2_e&w~-KOp*b%%J}O z{vpsaPGmd;JZfb>sF}qiZy=`UTG0I?ud|>t^qy(`3e{aQ`Mb=dX*l-FY(Uh0m-F$F zfhq;8nq-MIO<^}%b`%Zq{hTOpjizJdca)f`VBas!c6Pp7=hcVrzXua>S8#P$2X-(x z*wFv@)=j2@w(dPr0m0eo2+8KQt24F83h+Gt+-?|1(<;%He6zb0Wh(Bl=F;+QCt6avL3GBYB8Mxo{g${7!s)G)uSU%fn`|^IJ+gR}i2-k!`Y5 zey41O$U#-hNu<2KKl?&28;HEouv57nEh{*THT`DumV%9;ptw|q|MKNn){ryN&B&8l zx188vkxS7drF{(kFJF%OA75_$89L05C9ePsfY=N-0Nxumr^viyiy>kBu(^%YvDgvh zxq}=b^d4g_mL~^?4F}6GAw^fl2v1{XfWzsF6nH!SmX_ZXPL18Z;b`t!qRpH5IFjnu z4-SiP+lP$B8RcIQ~KU^z&=cVukMo1P!H07Uu^ke#(Y|n8NGzOHOB3s5oZMKD02fQX zA9Q@;935y*d&b6S?u!&mmO~UZP)a50FJEqKdPCU3 zUFM8mCC|oVm@n7U+=CYO%mm~9^5tYXVZIzY=;SqFQaH#<@=mwuYb zW{{eLm`wVt3Lk(;r0XzWE}XJ7_9Q;DXF?J5)o6JS2;6MF?0$+UEpBl~)H({j75?$% z!hOFPkJ#cA))D2jTor5qrDCHUBF`hX+um59euFf>Mj5bK4WO=r;s2e8H9C1rNrV7{C;sCcYzL9iEf;5-@e`q%kw0c}d3wW;qV); z^P~UqjY)xu|0=M&+%Rq}-|=QnHXVZNNI@jt#C?uZ6?OW7*n z#Pynt%}E_aufKe`{MBBQ9$Yjf$w{)9=1h&e^<@5YY88NI*+vA1Nu5qk#KL?zn3+i9 z%Mnl#OcK|16ssAW=R~))F2%y+v-j^{<1n_0rOU;G`2N=jFunknpyH>m3uTaJ@LbF7 zxL(}pUJ5BQ4Pl5 zQpd}G_2=Y1&-)NBQ-6ewT)JL&eDLfz&guJp+v{U*vRAhWVlP`4 zF^^wy9Jtx@k$=l{I4{Krt3>cu0xy<7-r`7=r$#-we%sfdIt|fDZlwtlEUMU~fBv|5 zFGO_5^gTPZPN(gnXc_Q6HnjFP-NhOqa$U=e+%Uq$USWy14!jQuu)=sf*BGdozso6t zHNSDPNq=s}#{AoDZs-#C<)zPOV7}ZpRpLT&PZE*Z=0r8UJ6t+?bkEcMbS`CuCZ#1h9H` zuRC^?O?K0`tsqvpb)s9WjHz?n=pdx=qw&b z^2t2yE8U4;=FvMJNtHcThB2KMWm8pA)K6I$!P5TbpuwaHOf8|}%6Bw?CI?foPXYBp z2p2-Ss696M!Z31;tGehuA$83Wj{=&psR)Xrx$e%TCRrL^?zY1OjW2gbCt94wmn)d? zI(EDeaS!1)G(+RdRb_ih+ueY4z@HD8(JpB`b}Gs*^l<;1FV`<<@gHCA?mxa5d0Ze#!kc(FXmc)bx8!1q;b;nd;kgc~Y182wIW{`cPgFU{(lHzl zj1(Uh#70me-6OeazREjMYNnd%w!pa41A{6(g^DuFjXfp`i)6AUNN1`AO9Z&c6&};C zXB5a57uJ7^7Pw)=l{ow!M%W2jgHm6kX7ESyAC+F*)t--O}`vMdm?Jas-;F7T6 z>!BB05c$Z~vpN9Q-;?RSF@Krunk12+OR>4 zClp(|6_ni76q)06zU)w7zFadDk!z+1A6nz`n~(q=kJ_jU`06X7;>PZFBUz_wnhN%xafVLUUJRzH;pf6w~715m*cpl0UaRsA{Hd?`F)$C z@#SPY&fzVs9+Z=%F4rxk!F)O4oM$6arqzG>a&>hFG@ppp0ruZ=SjxmUBU5+IoX&Yc zuCuJ1sAjs9!ltx-`8i_IK=a0G_;h}-4`1*6YSYKxw8j~XC_TOrcNmIg zDjZEbV#NMi9!aQ5fro1#F65N zLaut<=LKWS2zU8qtqy)mP#-Lkqb#PPmXXh?LBQOm<6bn%qIS>JCL!TJzMQ?~U%s5- zCkXC!BRXk(xm8XI%OM>xK_F7C@W~!p{Q^F(_{9vgzB!g64t)AK!lK&^3z}zFG?3YY ziv<~Aj#r!}c)GG3Zki16hPCvI*lPl}%LiO&hwgpG4#+(W?itC@wgb$aY=Nrp=dJ|W zFUMW|2=vPvyW~%Fnzf$#`&aj2W9zixH#MJg?c&WAG)q*zD7|BsZ*E(CwZwYwa(BK{ z9@IXO8;j9gN5>#a?2uRUI$bH)DyU8l=F62GL(}+j4JPQsXjoW~3E57jr1l!^EM{zW zd05e9S^ee9J*V;I;-Q7(kH;O8a5cdt!3*b`xa8>^KX*!o8P*O%J_WWO4it2Y)OjrgD+Id|HQ1bZ2`(VW-~ zQql#&40aN3dlirSb>bwwlXt`M29fwQJK0&_a8<$y|5-0#iG$h}Cuy+e09L9+_UzAg zmf&W7P1U?eoeo`Hc%(sR6-DFA<^CVOT;4yvT+8qP#@uPBm*H=TqViLLgt*lVd))+? z%-$Ar+Dnc(T>!^A`)gF4W=gaR?|+pIU>nGfwVb^Th@A)i9)Efe#sJbSxgWnP=oNP= z){QK_)5dkgr^Isg{@{{s2?p&r2c0K#Xx`P_5Rqs!xB#WP&7lhMC#XrRzO$FcJ&RVc zRdZHkjQ>Ro`X#7d==S(9JYYkw=x%)uU1o%LLLEq7>wJi+qu}QDbF$8%6rObJ{s8u)EQ#raSy#Jnr;Cc{Vkg4OepR3QVc44Cj)h5LS#T&OYh zZZ&-sup3532@Uh_!udJD)vLfv^wA!1RmFr00SisDzbXmX!;3%EWnGgHzb;D!VLrTt zolNExd?KMGEuf4tqi{hOb#!u7cmozjR@E1+^1-!lH1;jX#r`6p3wc5@?!06eLbWM1 z=l9TuhR=89N(%HAgBJ}&%12O<)_dqVVN$3q$EoPv_AcfTlpQq8UHWj7g})bdsHJcp zAdWqsz9)B-w^?_XG+X?1g$FdTSBw<5WItYS~ubsQqo%J5dFRN z&&PUjOY+;PThUj8RuBKFv0CF(GoAHgrVvZpi<~71FNS(Qc9T{+7fIFGNf}r-4_teg z#-~So-1zY?7+9yp1xasfQCye1mWF0M_M9%IKd&3Hq8)re;u-7u-MP)@?X2za`%t2p<7fIOwe=&f?eVVPk0E00di~pR~ zdiL*!O8V3{cmpzKB-%5^)6jiql8VIT$s;cs=q#rlkALoaq<#HcZE+{E45GY+R_7sp z`a_2kj_%59%@dE3Mo+KZL+9L^LHjZO8ig@)B+&pC+Un^Q0*=ffHLex#vNc1K^$@jZVUpa(+zki-W&F`snj4L^aO zVz{Vy%~XMFOfCKisoXPWmFr5Izg-w9&uJnVQfoqXnzwr4=Bo5pT&JAuidOG zvy&_N{myRiwR4&Z<_#Q;lRy8^tPz;s1b^|as_9kk6#jm=T$)%}`+mBTqF8Wpe)1DO z&+k!=h|k)$QGZE}?_rnecBH zGW#l?rTE;ICk1ZAE}aDfFA*@hU<@$FSo06gUs`{r4ATYGPXSWjz^6QdLn6d70^&lu zi?+z|Ckb_$!33Zy$?X;;=*b@k*fk*t!;mpn)Hap{(jp0408`}u`Iv3toIy|o4^`q( zj=IX~7oGF_qj<@xOxo8yI(G9^!(?EO*L2!^)7_wSSkR((9f-5}Y7KDEKi?jrVxxve z3UP1ufj<_B+*VIBq^kDQy1!fl{wixzx|?RD5}ZGvV z2+Es2JY46h*Zo|&Qmk8Jk57H}J#K-4%V=HJy6gzha6vr~=;%tDH<-}b5RRk-Jmg_I z2j@G%B7eUjXyoOCfLUlQbn*!>3zb!c0g3$IuRwJ}8E`um@nWiV4uOYX@JtdQHjE%t zW67J!P#o)DG5b6bMof2|eI(i9BRdMkn8b&szYIvz9GoNa8q&AZ9q|u(b5eFHfm&@b z2@DMGU)N*`nLjxCvKN%Bt-{-|$&Bav%$FLPY^==eHjsOJx4EP*)EnrqL5Y6ugJy%U z#B()tC52$rc7N5^HDs{DfAGv9QJ&tbL&Azrt-s3kEPv1xwmxS5=gAlKedb@j1Gg>r zbY$M7iT+Ss{#B4!_U9)d=2vUB=#cttLoCjq4hnA-tZAfX*wG;yZB-4m2)qm#fl%5U zOT!F3@075&nmP2)@TWQFp2KsIkFgsNQ113Fk+A#JI}XyO2!5=!fzk-GRcIKr zH4G)LBjGG8ei)k&stmx_gfh@YGew#xPeCkr1Vw#kdC@@GdxyR@vZONae^>yo+81!M=IXHuyALx4r#}6ZrUW6_cXoG7?F1}fPZj?V!%34?3Ah)y zuLUl$5Sx`4gz}fAW1?@u)c)U%53q7TnW$cWU7b~%kl|> zgcxR*GoEwAG{Z*%Z=zqJ6srbM>_qTrK zPj`~j_xAhX>uif_aYiKZOewyjppT@QA@+Eech#iWwj0|myv(3_U#7sbwJA}ctmg7T zAn=EWo_F-KowgReMRX#jkU8+Q`oy8m43!rGcOwPN?YT#Fx}>@*J6RiEKPxQ$lvgh1 zP%t>@!N+XgYI>H1%TLsvmE}G){EE2pS7P!F=4r`aho`0>;lKE|Xt;8^AwWBQ31Hg` zu3cwGd!;jwsiJXAGb93PQ{)$>Z76Akobyr5Pz}^UMQ$KEPhSA_Db!AaQZKMW3D*id z`QTzV)pP^%G9->{keRdyl6C(8UA@oHX5%-XZk9vm1flK0T^-e`mm9;(ggTpGN+VQ45X9o%2zLoG@u1KPk(4>a@px>2@>oc}i zlw|bcO?y8(pYCqMnZsr`ZmhNiP z9r~}Io;kJy{C$E)DQPkKNGp5}G!tDK zAv4!RlJViNvaj(_{`u68O+Hn_RIE#uAvA8SXK!MX);sti*13pf1b~(HJM#Sc!#M<_ z#dKb3YwdI8c~lVovZ5jJ$>po3)=hiJ)qTr*di)$y#m~bHBUN#uNc!?n(8{#{_|5V` z{$p)F9kRb7PIL*I1N+@fHV<3zJB&&+Vcr#NY=6BaJlruyVX`zB!RL12U- zzsQux_aEE&uN@0tg1uy|UrY*%y2@Zt0$m?+4gKsb)hhL>^>>etufrh8oHD7JW|=QM zB7@m?%P=rW1D-v?on}s5+D4}h(&lo9gfv)B)Ie~QpOx{anKosp;HAPo>itnBHLN_L z+}1l8Yo^lp3UB%G4-k(F76MYbm76m(zmmLr&y``o)WUrR6BIZM`b*V zRT$Ol&l1)2XYiGC5(0Z3lPW6-GeHZ|TduOC# z3lZ;wr5UjMq~XcRQHzB8-mx(M&19AMYDW4s^An>JdUEZ=tu@`KF(w@e3q_6YndfLznZqG&aIU4Q}L@tvEaX z?4c-2L>p45L$z%%#7nY)Ku5gP_peT{1=^qljCUkdw!h1)PtLt6ba`rF1`Ab&ub`|6-F{fm>ft&aMj-lw zs>hZ1>usN!Wjg!UJro6LLBJ2Mc$)xtxxwPyZB}WX?8)*BNHKzE`9(pQb$O4P{GXfxS5lC zq`{uBk*ekVr(CDA`!UB)zJ7tpze{}NmB#T$p3zD4+kh(ccvni(oFa8-;YV1xdH&KH zre=|*cOkllPxUi2=-_jeWND_%n&{ODgW(SUUohM(AXRkr-8Lp9%k7amJ8%IceI{Jm z)?&1#kr$@jY4nBLloY~Aix`6RwpWZO7aaajP_CTdFgPl%K42;D>f|2< ztRtHCt|`y)d6_NA4>|9SMj7wL?9FZrj(a}kPPrO-Gg?P`<4}{ps#D?*(H}mW95b$C zFc?nabLoQnJb(@>y}vP~e_i1n!cK8f?#1w9iK@=-5&b$Au0U%YVKW#EH}L5CYZ45G zV;M~Q3x-=mUpWQ}Y|9bjer#)hYDZ2KsY6A#$7}u%814r&m9XXviyXrtpaL$ao{!TO z@bT|pA3TV#WgI`y-;DBqAt3NNo9^OmOJ7!?rlgK(8w+O zxO?83IrGr^oqbhLqoH71x|NkJk=b$0cod9s&GM9~}mlSRMic5%#1GQurC(wnf? zIJg_2>pSx7PCPJhAwCy*7rlfWO@VELQ)QU>=W84WkRboVH)GKOMnvgLhLzKWYt^L# zPLYswpulO!HSC5ID|?15z!qh(jrczKeZ_JgmOcY}P~sk~en-!=5dQPa!C#^A8u$a) zO(f(!q3>^iO}dR)KSa;$QY3o$cPS<>veTC;dQlCZ*FqoZ^@N&qmf!L4vd_dq9}#bG zw)hMf3-|8wrLLE2Fcxmn+gduuZrhQy_9FE@=x>)1=6oY$F8PZNxhN8+klK9ocZPo5 zs=^#~`!Yh8`YByb=*R#pZmQ4wX;5kIHk~Sq!IB?^8R#t93v^(bJsw zFBk52w44ykg>$kjx$;L}`o{1bv1fY`+y>tNiwozSMoG9dsd{XlCaQt!slQw}zo_d| zY7qS`7uKh2UyUfpAXqQgaEqb_-*N_xzqU*Enp%Zm(<#81eh95dyBT|^TC|%lmK=S8 zZH;S(Qs{zSJL?wb4T>DUVVCh7x+pGI(nGBd&Puq@i$##BUKRi*-ta0PIf;t0Cw4J4 z!}CtWDs)ts>&FwBX3G8qxX{Gs>;J^M;` zUNUE7p|jk6QzCxm`SfPAh%xncriqjY5d7{^0+Q>9IWo5L*zUe%^2_eL6=QtpL1VqT zR|6W0cQ;0FU#2j>M_X(GD9SlxyY(E){de%n96ujP)!?^=7c4%w=tgYrBEo3IMq%*l z`YKFp#Pz~w2ICH;&}@B+MA-j6M^v+DG*tmu?`I-JBf#2y>>7p;O0xk^SQH%%Snajcm|W;DB@G+6^D)QUwx67vBIbW_w}gf z>0r#l?XRf~(Bizo!C++#@Yk*Icoq8pcEpv?V=@~gqGaxJRCflm>*X~A1&1AI>_3(j z)x-|{DTNJ=HW{}lgK`H1*Z~DTpc2B>i*4)B3Ic4?1yG=Ii9Gvm{v<3B(V=uO>yXEq z;dyoq^mUrd;u`XhilI_N4=Qa&KFS`2e!RA8tAOIE@*AX1|9Q~hTD*C@|7#|Gxw{?s z^*_MJ%<^dYHE0a{e6lRA7Qig}d3>D9DBM~}T8CA=SnOMcOR1G6qpRqm9xqZPPFJa0 z+Wxb?o7s@Icuvz{e~hoSM7l}-(E(GWv@Whc=nVgytT0!QKle`UsS-{JkII$_*~|1! zm3@v2Kd$i&elS3?rRJFrKUtM`Ze~OG$RmhG^)Dhcx9EB=ic$J# zpAQ~@A-XBm$P+7Nx5QK~b?kxC2_>jq*xv(p&Hd-x?|j?Js}!U1u7U#r2&*Yh53IRn zALsUQ3p?%Uku%i?oXnpVRJcJQwQpCwei|=S5Aoc3_~dTdrx%4*3r0t=-vVGHT$G?p z+|lRD$k|s$-^Y_hDXR$jUWZyz+Q*{_lGQgkS-9m@LJX*d*z|C($VovCk%g8Y)2_33Pl2i?lHI0^!l^7(5AC{XIg6IRN<`n*C8Wi-Q^V^I%0SB}xrVXJzjZH5O z8vi=Up3O2S0+yza3<-nn)M$n*Tyw`CqK#3mlD&C+HU4W)qA+Za=W22yik|D(Wt^Ud z8fT9}Mk~Soo<;nywuqM;Zoc#=MZF5`E5)_lzt7A zFN%6C1TG3eP2W#!N1W`Bg>^trAycF_ntWu-A!wBBaCvur1&6-x4H45Q4Q{g^T`nYo z9^P0Q3B|8)w(@bHzrKKrtf^SkH~Ar5Kl7K#r|(DI%#$|pxGsYDV)vPJ%=3E|ilP6b zf0LH|W}LHBp39X@(x+Fi3a-um7=UCmC_HYc3u}Y zt+yeaF(`3_;)9Z+(&d?Jo**lj|D(r_H+98a;F3exW4x1U27tIo0591tAP z{VIxMqdNCBEPW9YV!ERkQ#8V_=3#_KwIo_~!vYj+CZ!Fe=2EM3^eBd+I;rV>+R#b3 z2GgM|Z@DvYeK*jiJRZOC>nvoHD80|GtKqT&!hJxvlf!7+vIJ~kFgw)hq1LB{c*OBH zUghlYrgC2OKotTH%~Kh5-(`x>o$?9n{6kLbOn^nuXtu>s`5(g*$>;;KN&Gv%dCQ2h z(d;PoJ1^5H=fVbQ1DC%W^3M*5@|g*In<1WzE>K^fvi@o3MFAr4 z=}RE2;%Crf>KbGr$aNG7e#yhU78e=4f8NT8T(R;rMa2ywGJr+F3h7!2Va1xg9hB`h zgo6>!!An0($<6Tv!3@>KQ+o zNj!K$aLnm;>q_rUjvo#~mdSK}-T89-%EESPGnvwIf~u4B19Ltl3{m3>-Y(ND#to3; z91G7oN`i|P^aN=O9141P4nKU&?9y6OOjLRGEO6^7(3R2x9nCXD390=9cZ|A^+`Gm9 z1o1?V9dI*^A=r5*{(&OswJBv!G$+)O8r+oMld;M`jKCa-nb}qb%1zq;)d+*p(a+(v zjE7T+L)0ux8IZJGiDk~5-N!&%pzdb!NWTcEOA%4M1vemiyfvYc~F6jZvkaME0kTRVSkRtW*LK(Z?wA#}#pBoP@7uIsGzi@H#1- zzZO(du)*kA#I2Fm;IQMdRV5RSdiJNidQ#1R<$Ik!w?|IgB%R16`ZzZqj?NF0ppV@c zw(AKIn!VbRn!Mxi`%C6YE?s+;ETi7vT?L(|y<4~MOm8|DpBy2QPU+mtD|x(ye!VP2 zycF@{*N4Aox$uV_o|WM}JX?_z4NwY}^IB9Pl9?kKNm9v|Y=N_{JED_(T*F+j*7weBi>hO3nPY*$F48J@}*)Y0RshITJXm zP%9IYxYi2h3>5#q$GNB6%is0Q=31x!h&!DLzv~2)L6tnb7h}9dNvpTR5M87{_KknS z3zhl4y6R${w30)R?(ri0KU}?eJXG%=|DA}kWZz|!eM?eFmJy+3$reJAEhKwN=~%Lb z>`9if?-`PW7_t+xXC3?4_rZ*rbME8&`Tg$4{kR|3gTH3I=A7%g-plLxI^5QNtOQn^ zWxO((lYQBKxH0=?$3s2(Cnk%JQhSq%ro5}gNq?V4hWSaT15^VK>k@dlBrf#Wp2|Nc zBc!V7b=f|WuWJ)B4V54evx`JcQ6tPxoH&cEuSlI~;QC1IbP(z9*qVap?@*;oB9 zGk?L;;HsD8P8goTK5llq%N4n~WaTtm^w4MI008R4}~dd965cYpR@6E4&meq0IMr4D8BoDYgB z8L2UYGSz#Xq8!#TS&ZzlVgULPlv~><+o7xq6X)_Mylx;QZWV{v;D>vI2NYJDvPw)$ zo)9k`clo@=_fMK9vMzNgnZ@i5$!T4W&+D=LjoG;>)oGi zrE{;{ONK^um(<_4#Y;26c&_W$+bNbiF0Zqb4*=;WvF{RU2F|K}%|%ccKV9t1)eC23Jc226SA*12$v$7rq!&_@HdYeYqZnEzg^ry0W z56G^edg@!dH`0dC@!Rr2XDqil&xe0uVS0TJ6!)%CIk?25e3hQ=d3txpIO@qsL9 zN7l33+K@}fi<|KJ6bEM`{-g6DYuI&3j>v*aN3Z9*T zJ#3#3B(4>PuKeN!&(r}RMI8a;((OPu=xakBbOj3wm(6}(*BpzjnJ+u;72z1W5BE4s z@D1>PmMwOaJq6W6QLf{oc1wG5CuJT-&8jCof4T?Xz7m64n*4uP4`1W9U@kO2`(G~` zwd+YMo6qsAd|rNx>7Sbn9vdvLEJud|T5||!KVRGD(Jn4Bz4@H2<@+76f87_iij-%N zr)0mUa2P1C?l_Lm%CPZpzGw-Cj$y;z=M-bk*G>XMw>9&W>XYQv398VQa}Hnye#yfd z8pUZ=x3OZrMK#AS^8k#O(>f{4pU}UetnZ%ecJ(`^8vGH+@bBX#H+}jGTpd{e3f(z$ zi#4E6GT}wUVLGr_LAYQ60~;!1f~RAN(-CTbu;PHRmNHP}R*;wPM3q8FpVU)$x-tzWaP_tIlfxT0eNiyy?#-Au+RNE zA8uJ$!w}vmh;}$TJ zlNfnY51a|xPM%>qKE846GAcdUMZDzjdmyPF+5F^6VkD?s0tm{W3?LT3n8Z%jV)-xc z-j>l0b@I1B-4Y^j-69zWyarQnn2!lQ#n<{U5hXrieM~r9n{Pe&5amMEbJFWim8|=KG72#KDIs6u* zG*tEI_7MHAt+G&Yqp2LV4RaFKOP!rtI!nz6Yo}^BHB*nsgTHjwk^CEhaY$D;1$0iXjRm1n~$MRd#moB!Q z+_rE=Rg2?;DLW z?`lFG0xMHgmfX6}-sk_@N1Q?1E+L0=r_Im~z3=vobLr>!wJxx&YFyvS#_qkW8Aab} zm`>Nm=aeuy>J()^8|qj0>Uk zpEspKFlAAfqh%EW6_~!RM@G}&Z&!bl+!Nn{_N<|iUt7=-qM+Rn^@rcZYAlJ6xQ4cW zJi5IwfGB(6W1bSm*4>ser+pC63O{k<}05dJdl04cg6W35{ zsAKHN7b98zqJRJQqp^}%PmA)LR02-Mk8=e!H>I5It)D9uGS((paSx{F{X?N`0g!|P z_7hj&pUH#Qj=et8}@cm?auI598y*=vj^GQ34Wtgn+ElF0-am9B41CX)M zGdZ(^oWmM$3xa@Eo)Nu@C9sxky-X?~+kL}-U9_`Lw|l-S$B&0WbEt0c?Iip|{XP;0 zzl^N|Ub2sWqpY^(8^0g)^X9iclki=6oM>xI$PL)BNS9Y$o+eaM72Ara9I-{U&9T2c zUp_>UCoTpBV2V=Pru=uW=%+bYHKV3)y{tH9~h^;x6@R;!1Wk4CyGxivGFmr{4_hYf8Uv~Do({*cxwadbAk|pkl z@=~Dr^*DjG?EQuMW6Y|)+jM|v zUT*zymlNgdg)KOtgq#B&1@~aP_nkPbCuT1vF)J(THDIOOkjGtjBoC* zG6ZV-DW>;mXxd#n3?cXe}Re)_P zZ$A@|lG6WmW1Pm-l*0<2)n!UrR#N_0EE9}$sawR4;xoLgRxE14%H0Zc6OQv?<$yh* zkBBq$Y7&IvfQA3LZHNr*NNyl)MZr_J|F-af_wYuJ5X$;!y#mZIL2_a(ARFw_U4gu- zcA)|pqCVCshr;!pxPSg`8~d=R|BLo|FZ}*((5X8%4;5^@1LR}*O{Vw=l1{hmoEziQ z(qB~-iYq*;`?h@3)FJ~q8wPubt`~kFnZHzt0Cx^vb=TTYh7`X(1koWu=pe@@vJbkZ zm3fbzj~MNo0H$WPgljXZl+n=J-p21|0-dZf{AP-OXxLEIOwwD(WXXkgMc(1YL{HnQ zFPIKxjpFEZ#CQOOclfW$FPB5*@O*Fs=VEOsbK`3B&119R8(aCZx0%a|(C-q?LBAa? zF03(nH$jbeo<+5M5BlzX5$U|rMlQ-&v0yObsU5z!D?@dYLrs#Gpm-&2MoAb5h3(T& zSx0Ha_EyC*A4frmMkEe0*ojYar8oWvGTuZPL9$k1rI_1L1q?d91XW8w&-B($npv=4 z%J~PPkVUFC+QEahHsw&}R<_w#3yMbMbXn~4(wDc{`!N)_kvW;%i=#+5VdAD64v7nV zLP~2@D0S}gCJ;&v5HkfBo4Tt2I}|ERLY!hI-IxCqDg-_kdslKaf!t8;DmmBi1{&2b z@s2(;`xU41=th@-`R0M_w=Q?c1~dm-_NH!2L;N&-tbAl#{Oiktuo`)or6g zS06oG>@9MHdZi={z)XsmpIV^ymmfM+jj*Bd=WL+Ordw+rYMc8me^op=v|xi#c@8?^ z5lc+|x(-Du-Xk%SV?b;^Ts=SO%J>gL-?uUMwH5PUlL~qVc&6Q-)a$+kTgG(T{y5!= zQvwtlW7qHcz2!oS7m5%MdB`r}E|Wk0`16yGM_Ak+1G#gqaFsWM!K)GOjnkG=ziT?L zegLB?p#azp^wqr+J5XQpSP?dPZ!<;zQ_BDBKqX+d9jhPTh)T(5`1lp{R>u~~#?jJe zrSHtE4|ws1D#*a!yGz2wI7I!#uJM6>Mw4-SX&_YcD|P8W2(2+cWhYBpcegH0KTP=ESToq z3hI1aywo+639{u;r|K&i7dV(Tmz`E`{3m!s#W?!1`bF@IBNXYSme||%P37KeI>!d* z0oafUD+1Vh#O8Eh15WX%z*5lQX!~GKp#qZ+WacaK_CRk5_VQ-_2-f9=KdcM=Lc$SI z95YtCFzfEkV2kzd-vUxPEC4&3TP>6qX_Kh=;*?d*-yX6f?^ej&O@O{NFiglHvd?LS zx%^h|xbGNbgl)FYgk=iS10B{`%*Vi^FVYtsUDp|D6L5VK(RVNXpkTiF8f^I0UGM?= zSE+DanTR}_R(MiJZv~OF&;xo&t*Wt4QRFx95ib=-KU~+*HTpTN-uLbQhj#}Zw)t_# zdeU@@KeLzIiZYNKXo{WwRa!>lJ7-TMS_bZ3LZL70@~-Ks`cqI-G_!~M^32!qT`TPv zbodc_)Ap&hO07#ZyRc*1c+$&chLEO#^ou%b!_2~-B;~NuD6WzC2fhH zssYs~nch8tS07RZvMcq7PP%rS#aU#${H6h0XP2Va#ypEC{0VUAB_J?+7B$8699OL*CdqHFK&%v z&glN|h%V;0i)Noo`83@E!fD;UT~3UOQVi!ljKB+c(!O!VTig zm0^m#x&8D_G)H>XY_H-n-?S($a@S-~IX#SeyI!7g!@tUO8*d9nDU(t-ZAXu~`1Y=) zbi*7xCqusjuD@QSXJie#u3>pnwDz_eL7o3O|0N)rYS-opztD-TYV*7M+D`#O6u+Jm z^0WA``Qv2BIt_fMS431g5+sYR1n=rZ) z>-J*^LU5<_aoqyr#>`pZK{)I|^U6cXUV@RA){rj(ngi}LjeMOG#C$nw{_@oF?^moe z2!G(m9E))72`O~x0PE)wcso98cffj0ht)Wtj?J4UsZvArW!29$2@NPpYhC}|o$led z{}JxuucBCi>#C>oywVjOc>XxsQFg-NTSo1KgGqP3U$bJVD*Pp^NkFV)KE-=Z`OKjGY!Nj705M;!UIlV_Ye4z8WXBbFV>Ji%QAYy1GE6sbh5sS9Yr@Rl z`%?5DTHzw{N5v08c_xlFxjLH|svr-AzkUHmbNW>Fsw=Q%v$Juw;28HS%SfG8kdMct zP^sl^RRywxcAM{+a-;YG%`56eJzIe33rG4t6si)loKcOT8#F>B0UO}f-9mKNKd8v~ z(Q%iF>~V)Z1ow@+HdF2d&P68w)N4g$dzGP0yE;drtX_YYc~iyBaW2YH(0|$(m+rHv z|D-&n#;jQ`9Ly{lCD~vTW_`yMK5LoQblh8fk>|~)@pB@>y+zmc%SGerFSEws%ROt3 zGut#F(NDK!B2FdEKd@iWe-)K^(zpLyQA;2;S`dKQb6UXpq~hnyn;F(a;Cf$)vg(ZH z2(UJaT(d5lFFq9qY#(Kjc?sNVNvzN%Mar{dg4R#ZeAkdYs##KEpWP&Az^*@lcGpFC z!3ba`AmYNoWKDX0#j2>N%y2P~CYPG&n-+Mgze)n}mDd=np6(ilp{%7WXnUs0X0X7R zOC1X*fVN^o)FUiQcKiL7O_(=-{6n2QLjMWi0EL(%B0KOhNET$A;gK<*=97)9;0Sd)cYqW3KLZR)u2F|ETmd9X?Go()W#<(1S6>Uh8qUV;3NVE0G&A3_?;A4R*QIb#gxxuouB!#YHn?5ni! zJCXWSPY^nC-`sha;fJ+CY}bO@PZ!JWAnD@b^A3+u^-%Ujnyn7&S;bdU-xXO27U85) z(rW<*mSa&N&1sbsaLT2@W!3U8Y79yenDlovH5XjPECw0L9WDNkcz+AG69kU7)jEFV zucG$#878uAFclV64y#zw{$-ac?q5TJ{HCJhOa8<1WF2GHebY0a%i2nJbn8}mE6f4jQRjNCmC!7s9_KaH%SSP#0j-Ud-?Uo$9}~4K7W&R!*Xc*T zzti54=daHofj)-to4F#yfe0j3VO%tcd|}sAjR7}nm8Xn*!^>Lzm1ID;@77aePDm9-f`XWk(}~5Ve{PX!JJ6KjX;+B)B3xnho;@| ziCZ36GHi!^%9Av%1Y903`%8C0ZCRVCRHw9p0|CuM&b=bhd^)l)XE^1?SY86<9nui zqqU&dl&F15Z(prw50N*}5;7868f>A)J@A%PG#rkW(k1$KL36qyyFk5=L{Dqo z4a$E&jl)ZGpr?vw z$okYeo+rG1?viIEwNgi-%=x#TGsjc145pM4yqj#HhS&sb9d4*slc)|Jf{8&i;!FI2 z=NSp6awM5OD=X1TLLbekGUe$yaGNG@21pW#{G~A;ivfl77u+mjZ^P&)&ej)IQP*4Q z4u719!W>&n76l7^?s}G{A_9UlD-TD=m?` ztk5TS`Wuqv={hGssFT<#W@tfv2N2Bh3CTCEjD{pxtMjUDPn)!Zf`VbcO4se4LNpO* zSI9!qui}^4W2}Ay8nQS5xTCXH3DvPB>CVH6o6(oE0Sw%2EDXxg6g+m5`SPLHx%Nvf z-Sy$|?F^?;ra?>p;tdPNfbvN~Z=s}vozGWvxk-KM9dWjij;>hDV7`*=$^oqdFgca* zaGJfVuC6%kyw!F7$=W#s!}?;PETHM%M|2#zhp4b(7u7gIOP1&?x}AcAPs1mG*JMVE zSiC$}buNVTAY-so$pFh^drj@2wp^WBGo`LHwhAOn#6&Uw6h5xhQH8zRVI`6RdF#F& z6*DZG)B-~qr3rBLPml?&(_^!l$Qamax&nZCu`W<6^;7e6_--)L4Rz+;lqTm5ulvd? zEEOkYJ<##qr>nts2Uw;rn$7nX?OsxCwQ#Ld-Z(s>z13tdVqq$k z!S@SyiZWp;o3`?J#7E~hyWM5)804a54&VDJ8_Q4&zia(BpyI{Jw`qLT?yDLey>cXZ z&yf4u*5UMQdRkyfRjv+097ese5#}tMiy&7>MbS#vJa8SZqIL}`1B`dBuOpl8%4~>? zB45rvL<1vkl^x={jI>+jK$z3|G`z~*v7yN4JK@*?k$*JBiPejCZ?9et>DDZjY|tdh z`c;gW@5bW27S}rPG+`Y;WOL~6*agDiMQ+x5AuyJEDucaqB|f1AVc~E?+r)J72xafe z0&snhmhEP*kvKS16*=&=({Qk};E z#RGt_yQk=SU*0>&gcAREdUT{sw$&Ooo4N#SeZuI$dm0hH>*7(cB%s2B4$aMMb{iNj z5I2)RX`0dS;z}FzHnm*Xlj;yZnAn{;!6>piILw&QO6Won6ENL__B}olpIduPM_mXz zMBg_@yt3-+2{PY3+ws0+RSptw355_Gh);YAaBl&vc7B>4E56WOv2#^wYr72 zeK5K#HK~~kr}rLG$HF-?n7VRSi`2&+lZr>Wihl!lDjDvQw(e@qF$z{>(?>blBpltp zIrK(^+D^xL4jmsepJFr@!~D@8-9-WJMZ%SrPqdBy7Le0&S>FQhk6s|P8^7*>W;HD+9=9{o#tCoMhU8UfKysyPTmlAXr5RaKz9>ab(XG!t?G!Cjc` z3Cje6!mWRefat~ihTg_5$JA@FWO%_#CiHdBSAMRI62|(xjOM6)%z%6WbWQCCH6VB= zD@ATGl855TvIxc$jr3y9HrgYiZLGFW&Rg3JdqfG=DoslUk&88-DK*MVIYVsF(SU=}a7==E< ztBbD7`$sGI@v-udcHq&=gU(lTGe{>KQZM$fNAD1wwEJozCWEL?TsSV0Un|BU6N0% zKr33J7M91M1FkKscHh`OeAB>aB~JM9AhG=s!)ET#apo3!rjN1yP?l7nv{!g_YZ5*7 zz@(>cmCEr`RT%Nzis#~LWNIddL3$E<G6$?IB^IH}t z9vz-$KYAN~lw9<9iJw3d|9gS1`WF;+hX^&1mvGA;Yh!{=QmxJO5-`q=Hk7Gs{$VzGT}Bz{d@ zSy`3lmY$SL_0Q626FLTevddc6>C+LtZ~ac4+F!a*U-H2ttFQ&7eFc$E*&{%mUgYi9 z0fb(mxO1yx^yivR=<50W#J#k%gBAZZMyU3E6VN?iv^xstMJKL&O&u=&0IQUwZHLW@ z*7M^fd)3d~-tQB0U(IpPW;(`-NyXg~5+#oA8s1y)>u6*7)Fyg>+na!8aS>2nZv?Ws zCkC1@GrRT_qKiGk)HdH-XfoG(4W6bArr(V}mdR->iiu~XeHMShty_2sME9n7LbBf~ z-siyp8eL)2v@n*SWt73pkk;&-i^S3Y-tC}ZF^^?ke}h}PyjB@Ts0528TFt(FX0VQq zUO&TpaiPoqv4qcGe~shjTlH>rqg$heRU^I|kRMn5Q`dhthm%XN_fL0k-RA%n!96)r zOvzC;2~wB)#B_z$>gQ`iCqE-sY88`*CMw@+S53B(-!$##?KC_h5xwlV)l z4}ss$Bi-Z4D#R0``-*({Wb>i_8>*W}H(f5Gl770eTUjKG*GK+H{^7^oY>LK`ZzOEX zNJZ`125>%lp!_0#)U?%lP3oSd%Ov`EH2xuIE#x+P5yB z%c%q4VMQSKMep|Zo~YX!yd;Q6mPB#=C|GTwZ+zRVDT?8&htdl$i75Ia0{Px=tO&yo z*<1jh^zDpxVYqmRGj7{3?*o0t=GxPY1tGXwA{A#n5IT7KLWAwT{ra<{HA^cNh$osA z+30CMduPW(&UHu=I=PrJ&EOGla1|%)qI?nsa2`VhGU7)w&Ha9CJms_6> zreFiwB&RbS6*0?%Vb%n>R2H)yj_O>i${gtyL5rT>(2BwJ~`xrNngP-f~RVM<_}M`3k%tW ziuM!Q6)5F~sY!DT>I+cl0`zOU2E4z|Xa?u%PNXbfZmJn3ob-=qz$$_&q%0SldBaf-I`M7HtmMg?YsHrOEigxisMg)ejP<@}ezhL6P` z$=B_o``g@t*&w+YB^(@%Yk2>csg9z#HR$K1J6^5>Z#4-A)h}CNSV_0VmP>h?^*Lk)abFLh(nn|_xPlqxT*>l;gIQ~BAT+&tIM`OCRy z-)hbAXd5ebjVqd{_ktT(nEx~y!)8Z@i%pn~G24Wd18rbfLF=KP%j%#szT$q~2{$oC5@5W4?#Iyn}$wgZ~}-Vn9W{2=bc= z@~CLc|B*7zL%=dr30+bTtWt8D>jXAo1q?hezd_Wa;6EOT2Pf`d?+WVuCL9QaYEPa& zKz&m~oBaHb7wtl&UAGMIpU61GZrF|oTerj8?a}kT^0Emzv&$tt?)rnF1zsXA-(4@- z+eaB26UzgNi~fqzC2pJ6t(86cI_-{AH{x;Idtlx^NGjRTa%?MJ84~5UEc~$f=*%8w zXe+K6uv*X>b;#NG-W=J%NlJVoQ8HhB83$7cY{r7rc0BLEw*tr6roVSB7v}SRbCmQs z!B)&2zykDe5#<9R52l|hzgRRIe>^as=>^`5VY%_`ym99;6(Vwl-b7r84gc~j zUsca!c=<8}q(N&yX&wH}DzpnMVu)Mw#4X=LNCHZNx`0K5a^swDtoyEX^(ux4jMH9T9d1#JZQB%HK8$;A&`pI=KGZk zFTHl^LfLw;1E$ajnDz_qTYU0V)K(fX3~^mFd_ZO`D+G(c3uO1@=zCZy_;E#E#elvP zwelI(;{_t;=JMXwp0%_AD9@4vtzy_Cj1+`$Mg*)*5fOUZG7LEEV!nWih*&Po3^$-;#3aBWPV9T$=p9EPyQcv;2jc8Pne2 zv58iB0V%KHe+<3Jq^qbmR7f0&-~=hs-I@Y%5m@SPm|Le2*SIeBYYCL#UOBvPb96SOzYP2ya^D|!-i-xE0Pzi8;Nx+c&rm^CiA(_s4d8?w3?=Eu@nIdEykyE~|I=A#F zrI>t9stOa6)Rpr1aS_Olo~#4yb5`sa==xS;lZ1Y+TIW0byrW{7k_!CE_BcD1sQbC+<&^Hx4FdQxruSX0yUPg&!a_mc|<1m2lpLnkQ94Nti%} z0KJS_O-hqRxBhcaQfs$|1PF?I2>mfsqGEykzz_}-`*sNj{Bad6Dc@z3ScL2&g0=Vv zmc*^k6M8>L)&zMYW6)ISJa-X^E^rlNr5z&k6QwZA{om_b0SwPieP_wvW??WMM$+9o zH8B)YK;5~Er5*idu!tto%>L}?`gRw;^^9S^v&g8df7M!mc;+CCQ>PmUC@CSC5=uY? zyV=vN_lfdCwu5*1umK)i^7n^ba2NvhUWfHG6HdU2;R1PW!MulDyoVbl9!g#Nn7o8B zGXSqsP8%2{I-l!%r6TOkL1}GVw@N%-)+phoCe=%f)B&N3Kw--nkn#4GjDZ|`%u<=S+GLNYIXkj4h$=JF#s-108NEXQ-PkyVf`e5IIdt|#j&W&mHdXBj9fmv#7W{bmICxaMD02e?H{P(#=J)(eUDty@zyr?vvgnX|*sy4Trt^M;1??X@m z5Cxw9napZ2A_Uj``~;lsJF>OHc0WK|iD%4A?Y%>w-N4(wE2+qx#MeCWGLzze z4~OeG4YeaPSjnyPO^hKQeTt&d&g&?M=%u36%2lW#3hL8!dG;6Lncr4@J6M>%R82VA0zgS6n$#pn0vJXP zW8BJ-&^PetpdB@U5KCLdj-$q{(_)E0{~56mB4Q*e^tL>iCY11)MdRB1k#1*&#R}g#^*e_yT`TBKEJdQ(D3^IF9^3H}syW{J zlz?e~@S-^BcnArR2LHHxT)JWTm=Lo|DcEdCHYGbg4v>+OF6cLAQK=~)hXG^^P$`V_ zvYxPX0rMQ@<+iY9v1jlZey7VxeNQtH#e{c^N3w^`eH(|Zo0 z?w56MRlY0ewe(@y=*r?q{y!n-8&nEXrZ=!M`k(0TU~n`lzNSt2MJgs)9R8}8Ml&N$ zEw7&{VQqM<5>O{#@@)2*oi=5G)ihw-& zZw?FB;Cu5`B$?tX4R7HpmT?6;4((L0LX&yquaE(le9T>90hNHJWHb?l$6!|hU+CVz zoNiMYvKCwhOI)>XM0pgmMP3$mky_&uQ!Tpc8S{;3jmLo5U~-=h7w@0dB+ovW0kQ#X z0AvK!tRjf|9_o5=b~(OTWE@;fo&5@l>IQ_Q39%=MXaTtb~rbKO*mP}uvo)?S_7Eb z@a(gG%^37vM+DuNESPU>c&+$zLqybs2UEhLAk`qh==9)tQ1VMTkv@aPcm9ZgsUxLn zC;1$cpli{pEfoF_JiStE)eLcRCgy+k-aW$;a4V}Wb`kZ+U3uA->1w}SWUs5cT*zjzx;H@iv#Wk5%h1vsQK)OB&jVg&PKk@B@Tb7^pe9HPRL*hrAs z*eMtv1u=SqV1#@!l)Z;@JVu%XYuzAA{^W?gg*DSEf*p6Yy@fyij+U%Ym^tv#8z7I@ zGiRQ;?7X3MF1)0Hu}tPG;Z6ogA=;F@ai*BhbI`Fd4|&yJq)ewv`I3FExV_%wcL~S4 zmSwjNl>{6TSlTBaE*oZAuGWP)wMT!4=42XPi$c=+O&*Jwq`fW#Pd<^R-Zk#hT`J>Z zpojN|(T_IYN?A3IG2jZ z8pcei_~A7mKx-7c6ls6{*k(2ko+9MQ6qQ2Kl7VzPAD{>;`_Xou956Yy5Q@0h+FS@l zZ?|la(8s8bazs?d2kPd^iz`04t<^XL9FwaziY$$dL*szcxgGU&%zg-$t#OCg^@3dW zzv8S~mAUb|C`Bk_#JT@s1zF-%VqEI$OqpLFX#6)6-!9*NV(i`D7n6oWVlfkU7(LAq z12NC!Y#mY6ZfPIGZVhH==l^^7WA*lIg)N8ENLQPyn18I;Ts16L2tSfLOWY4Sr$HHH z#94YFEO9wARX_adn3Ls(koFtnv6uPN*IkNpZ&&m95#8f&TxC_`XWw9Ufu2y%D?xMc z!o&K$&Ev(AOyw9yB19F&{dL!|?IhYz-e5c^Bvv2bat>(rf*%!;WzYIL0)1KlYAyulBSBrZi>p`q5a zKP#_tZ@h<#`iih+i|%)Ex@cyTcg2R;_bJ_v`IZuf{E;?uo{M~B{Z#(%{Nq)^qh5rC z^BaaW@)^&-k}|Kv7f>rQ-u8eANQB*wjoV#k*WYkmc5hg7c&1Q&(KKZ&?;Ny*NjcE(nen7 zfz0RkcXt>uzfvLN9!tOXi^$lhZ-pci$QWvH07{kqHdX;Y)VD@3RnW5uBJ$7~hHbcRJ`5cH4?Qjil$iO}+z=-d)__*txVLxrjH+0Q8i+N@AnL)K$g5KumDVlTi z3BU79R9tI5A6)dnTt1q&pnm${?I?2b;$D7ye6A%{mSOKRd18Bcq$k#_O+KJ6Y&Q;GIueX5xpDHbwoDGadzNF})Z# z1rfuxj6Uw00vZGPV+?LTG%cqlX<35gQY=@uA{zU(N`|J&i1LK z@Q-siRo?U3caoCI$gCo5XFH3@XsGgSz^mw}6pc$7aQ3L51&`c3B>0kpFD&n2Ov$F8 z3}gzHz?YV;)(WaxD5^R7A2^^2wKBrJAgnnIuCb!_~+@w!&Zjjybv1toAL z{mmTB@R|3>GW%OV6)BmIDObycRm^(7f-3x;9)P64iFGj642EzF7&nF zI(Kl~SwQZznHYt@;Z=bDSQ!byS1Uww zgb?oR7r!NhL%&zy>m4g~{lnV}3{yX9|Mv4ueF9G1ht|JA(R*9^miETpF6<^Yh)@CE zWkCuU{em}|X=Q_`+Iok+il1G-JQx=jS@J|*cRs4WKO$i>IFosltJJb$=PdV6VDtCa zcB4~Fw#}nwn8wZz2PD+iDE0JODZGn)-<9oJt?~KBGBQUr=Cj&xKlx{-2lUqu{HvOU zIj|VZDL%AHxtaRlpRq20Fqs2;iZ|2hiKiCY6_c$OVB`2j^sl zPb-AMm8*KC$1zvhEP8=Y$(z4Hvlr)g?ooY|t!n{=BJ5UnQ#LjTTZs<}p&axLIdkzn zdzB*_W5&vY=-&USrwOM@VELCjzJJa@u@BwUtSHYOG`(r%B` zjET9%`hP`JE2u;H^23-_n!BNfCgPdazg>h49srN7-#eSMby^vrsUSQ7#CK&Jyn>N- zJ>yrY_}2yo!cs4(0~y}OG9UtnDU9AWBrx)YXe{chX4-0&2(NnM8H+hp_f5$ze8m9c zJ#$Hf`ME1qkO2>kh`b7eecQd7aAW+I)fjwMJvmprjabF3LgUCzwNYyps@cEzWb*C( z>`Oa{I*1*pS<~NnpJFq@@Yuwg%r4%kd|qP|Wd(ddWZzLpD918Kty$)?an$zkY#*B|^)dqw2^EUSj+SBZ-uey0);su@nDFdE2#-_N7>|gPOce zPMnkTrt^NFj5m@dQ%7DS$Kf}h;hQVP$1|-A?1^6Ag`b*u#vMD(aQ`h0$v#XH@Xf5g zJ>zlff+ypjm#4L>lF(!i-_5>ePu>-*+t<2i_!4X7LIy&={T4A@)_8q9+_3yFwfY~z z0x9F(CZdsaGccuu94XfvRDJ-T!N|x?iVuNwXKekM^9;zx@5sCiysCAe*}F@3Mu$Ln zPXxzfO5o6``;AuhLG`iz&x?3u?TIpuh{a>-^PV5RCguMeQi(ZoLm^+)bGc6KaVq+l ztIp4R`H(psdMfUY0#;DNFHp<#?WXR}Z$cCwz=S*gI8yR0>zjdE2kwaK^ziI&iC$^k zb&`vuUnfC=d*%t8y5l+U#RuBpaE{q$!_i@mQ784glGCn`_=vSS0r53khU z?OM(J92XVJA;SooCFIZQ|K+=iKz|gu;==C-(Zq84VUU6T#=wsiv$b(R_T0^xwX<17 zWD~{M7~_lS0`|CVwzl6{8l^5|_vZn{q&(&l;Z-0=*L{gVmh;F-}&QP+BXY6Ei=Ci92?3Z2pp z1xPnv6u4_`R|cPPjmQ?q!B3M6OUc*in{1eh;A>^gkzkESw(XomjdTe{aAM8z2RrJs7LOafN(tI^uT3iuY_NyYJ*^$?< zU;XODl$I+l`l(%qrKd6r%Ufpp$kIxRq=x~AO&43NeP}cErNum=7JooA4DXvg6@804 zlR&3I*<_DeJ*Qfe=Myh)`n+NqGA!@SUYXK*luB)kc+_80q+sa=HQn(Aq78OvA`W*@ zTp#tneS*H36_Lz8>&^3=c?eGkuhnq}_$2AM3wsf{gbY-Ziy$v7Xibheeg`H&D!^Ns zHHzOv)U+ZKlPa@nP((ruNd{NLMLY>5r{S&z@axHda~61xH{_Tjp7w5kYN6K$*Fg)A z=6IY(6<*+H&%VziU=IUSTj77(|%h-8D?s{N#aP__g^j_Pe5*Ab z{9Q_7JOVPwNN$|i-aVJ0{D{Aj%q5$CDy0u7kMYVh&*(pd)>H%YOjkZYT1RdQLrP{K ztK_`~p~p#><&;&_v+Y&vKR({p5^@~FRW;joxS{=zTH@8`NgEtr9_3X5noM_GpdRKc z)H>M~c$q&QG6%3kQa>Fxjk5;PBy0j{6dVRytxL&hc-qnb8yFNGKA9dKA^REJX-xZ& zLF$cXKTZK_pe;-^6@7ZgdJ>?{S!V42lEzqar!v;tN8_;yl&A9kwd`>u=5$8XJxT31 zY5xyZZypX+*vJ2eL?NU|WGc#5QOeFJYn!z~mQe~3vSjCwkSJs+>m>UU30X5~vm3Hz zY3ySk`Es0=V;cXH`-M>>mD_aw@{Ma4Kscz zvzUfnXsNtwOtfNK@aKwT39n1+EF3t6I!juU>nlz1l_#rRsndj#P)<>31cRUL{g~i_LRV-uu5+ny>^kXMIhaM~a+?Af2Fpu%qa@YS5B~n|u3mb<>1L7ht21M^G#0(HJkIQv1zWBf1q=n-UeJgX zBak8Lkm=gp>78r|cT_*k)M^vG0C_XIH+6S%$ml4Wx-LfP>C#6>W#dNy-=24FNKfS; z|7uYkEH4)w>j@a%7$|0od`)nCbsm=igj3MB-%)W?piPS?-xazD$G;EiOS>?1GUJ(~ zm|2l)35_5tD1%+Mof+yV2M?^YLe8dmU-QgaCkA%Y>@(1~A+)V6TzlA?YC2L=lV{jO zc%`ApN4S8wc=QzluGTD`Aao?*nO{Ugd%ZqDWz6nGJ`F@z|HP&Jk90rY;6>AE& zbs>^bYONzJH*VK5v_#AhZU`HLgbQf0GqeDWkk?D;J3)K*rs+;B;KdkaL@c8{!QBhv zLS&RyKZC8N8|%&JphTe^_SjnLU-pCVYP2Fz?I{?fh|6!fzgRGNd}m5x#9Dlq zCn*bUtpqj?YdKg+yDz?yVV&}g?F1Kz_);>-U|+k>yR`gJL2w+xNMOebhKrT%Cg>MUWPbZx5pSb2*KbL<~DY_CE2Hc$kSnPYitr~?m^e%ssp zw<`Y`orO64vvqBgy2Ri*cv*i5CworA;m+|3L1qlB%4ggr`ZV7rPDgx~7DI+M>G~OG zT{Ka;6Ag48$%WZOeig?|whjC%3dXax4h~TX{oGd2$SU=F#PM{131S>?>a-U<;($jR zj?J!Spf~9+Z(%k}2cU1q@9|Q038+8HPS_mYq$dXaZusj4J2A4ZZtEAqOCjX$LkGN1 zFZao)KtUfMNOY#tftXZ5#O5z!kW@xt`XDJbv-autijp73%EDv#HlpNs$#t${n7|H+ zTi1k?8lD&35ZSY7IOWUViID7+CNhNcm@Yo({d2DCmBqzb3)5%ICOJ(G>#5}xdV#HT zZ>UGOk0gTn&m+Rf*B7)0(71JKg!mwX z`^q|b0IjsQfNrr^1RnFnWgwv{j!Z(!*xh>{lLm%pT^R_-F6A@(1U5`A5W$SDlVOie zEOrUwH8pd>w+Efmvf)}xGhu^0L+oXr$i3_e^GUs7aX@i@(}&>j+Y$5EM{t>EC+M$| zf7APwxgw)A9ebuKh90UXuJp07uRmEneA)Yx%h}DI67K1|=#bwK+_NH*Thvf@ArqMa zd%vvFXTo;-CVF!#qoIdd5u0&XfD75Jd7r%iPIUYI;kXS`IMjLPH{`ItWFE8dY+#Xl z_h+X{X!}ql?%s1Mik)>|HjGK*9u14w+?{_+e76s(6&d-hURLq}bZ^E8-kti3Nlizx~O>014je4)gZaU zk6L=CGoMWz#-hGDUh3oi%5&+%Mny}HzI3aH7#HPuc5q%S?Ca>|dFViTN`=n_g(pMk zw;|WRO2Rf}Z#h96G7elQ0od@%Uao%@bs3Y0yL&XD)4}-tt{jfeLin7PcMeE?wBfi@ z3Wc{3wF}!Oj?0-5^G?FWT}y#cibP#SaNcO!_nH;u960X@i@x`g!3FyPRK)XpO#+Kd#o@_fm84mbjI4TaU)K*FG|0 z%6PQ+@My+_hyX);;Kp_mQ^e8SXs=tP433Zq?rZytzVnLxZGs-(lS=y6;?YBrnx`v! zXriwJhJQ9~#H@NLAl*h}k#nJW=pEW^q!8Jhkh04S=|CE-<0_@Ex`|Ab@|acNQy3NSPBy&amHT zkGq@$(hmcQ5(wmOojt$(<_b6zvabBYMgrxO!a8& zLECaEo+ZwdRYLEiVDvX=#gHQN$%;}QQ~>jGPK3>4CT$8na)qkAcO8Iv?tou!`{2EK zhp?d$j>z8B3(99cmc*)>L1wAFz~&aBKlymt3KTOTdCP2cab}k6VvHwan89}L@&H&x zl9l@(y8aUsbZof|V9o7+c(Y45L?Tmi-aJBFFEDk18;fg?jJz1QQ)amLY^T&v-1CLw z%;~@Lz=myxq(;Q04c!3}720=!g&^k7S2vwbAM=7cxNrxDmX2xp+*bT7_5(9;X5;hY z6l~#?V5LfJOWqTUR4*)C{F86{i+xD`b7di;#kY_5dNvTGz#fSF9=Xd?Z-u@ ztv3Oog^*dk^0&>E$X(MdxggZ!Vjk1dy#nRDaUBYzVq%ohv4V7 zg`(obaO_xIN7b~O9b)N!2az414%XQeD$1KeH`r=&ixKCwPJ!nt?zAJANbz-1XHk%T`qNScs9Kl~k-H z6sfkoQjm)OC9mS$`5@g>?zorJYg}*CQBB>si_SzP>?wzlK&h0hhlvX)8mg5l$mkhA zr(RVs?D0lfwPD}iX~9c+GOhQ8+L{yBb{|lt=C8_7r@hoEKc?0XP>q=)C%9WT4GKAg zLshxj#hKIY$dXr%|1~-l-fyZTl;i(kvg=RlzPCZmLGJPD^A3yGTbXPh2)FCHtqErB zi!`3G9s*+z3=hh{t`lgtZWh&S9G{%r-!XHz=wFXR-4$AVdnMwXx~$%yn0O(SWzwi= zx&-;`R@ehhsz+^HWnlSYH0^X^g#+Aa7GSagi*(KK&{Ct?JZ=r5;OHpm;~Ls2TxIRw zZnv}JiLsV0q07rFh*oN#*-pqpQVsn1l0A4`b`GB0Jk6$23uYO##zv}U^d}h%H=EIs zYa2t9QbEq&rN*X?O!3)nZ%DOZIwcb35f0qQ??IP^VY*NzL zYWChEFmdhXt@wNAHGYg&i!1kdm3=~O2+apGS6-@qm}aMV3H$k7jwKis$&{8#^OFcz zb8r)XQ<}%U_oq^tX!a*Ke@Z#CF~1shGSKYONh=kgHljjxS5oM^)&;+`36_SxG2J%V zb)s|?b^ky4j;HQsY4M=O>TR0n`YoCXO;m(^vKQVLp)iEe^lIA4t&yHSlHl|ssZWb> z1x%(fTmxP%qn{v!ckcm|QKl8-$vCOcBXo?nbP2%L3kHJ9kJ5jpS>Vxru&sPP5H-(d zRNd=3aQV28>K|aFsNbbwt>uh6C20AOX)Be*WC2pPg zhH9^s{849S?xE_VR)%SVN&_Z<>6*X+J^?mhlB z;1){&MvX(&A?DtZR2Yy^Kr`~JLQoI*ovNx;>+1MDYwVPJg0g$|*$b(<&B(l?rD=)) zc>K$~)p=f?j0cpwC_pAb-ab3m{Qkkk`oI#|&#*q3Yu?Ylsm);_I-kn+QVc|o*=Wjt z>YoD6&8-0@Z7hy!a(s0(H>12Db1Z1*wfav(pPnxv3?qH7W|I-x>JQQsg;cMwNEhwq zU1xb2raL~v>(2PQhE+-PGKI-Y6zioW_lEX4+**2vsjd8|$7 zfaUWZ@>1k;Af72noV`XF%wtwBZ<3Dh!_N`W0EUcF7`VA+=?xmDKmc=avEG~U5jjabsTdF z#K5u8WLV?k32`i}Do!M{5{*X05ds{!&Oz{($0}`kaHH=G`pa=|F?Mah*NMduaJ4B& zZT~HtPKtD#+UF6g*4wqMd_q4g;Kjl1B7^+)4bJd2MOo8}kW9lj8R0aK)hDFv_{TrQ zsXWr_jro$DIr8p9=(#EV(JR7@pB2Y%n*07GG3*cVy(lje{m`sCgH6gMq?^+eP9u$C z+v#s;Z`pd?W1l4fm&lIj#N>$KFOQ?VdECB#Cax{dlloMIg7_Ku5t1*gI^Rj)1hf1% z)l~qQg5>c~5pXL)i^)f*8{MC7`u5~)y6D7WD6GRAU$;51{Ak;J(O{bNO(qZ)*xd?( zjVLJf!-?h$0p0=_RrH5Z)k6rrxV!DxWb-_?N5{CAFt0soLx1T^jRiFA@_mi)?l!DK z;p*o-&4!lzM7J$b9$bE|NPFk)=-M($ZSxjN0(&Y6Pr*jL?^Kg5`a~dn`5hg19^#S) z?~EAY>Rq6Zwm(N*p8*=y36oy~5_m1`^i$U>9v{oko3cj)2_ul7I!UCj98VA@NM?*H zhZw7QWZl#4KI?aodnqVu$W+%;wj{trFC7nkeGW^-|FcHgEUyvZ6-X(afyCB)k(67z-3bGr#Z&&nVR&O%C9mC zhcG?k@B8UwNISEN9}FCDwwoY!ETt8+rUg&5b1{0UXNcGWzdf}b*I)a}^&p)y)aPK$ zR&b1o^K+{7#YE`4`OXkHOV=L{z@7Ha*|6i%%n_TSbywyYMG4_u; zE0C@-TGaxM>C$={<3A0`w(?;MMvWizT{d>55LP%iBRneN(KW$lv{`D@wWM{@hs$vj zy=!*nPWJ6(dCs`UMRY;rC+qV43R`#-N-z%w>dKK`^>X?u>$ePfk1yXTZvc(n z2J{+f)0pZ&#_RO?@9_R4lrq@7_Qz2Jpo*hBV_z*-!Z(6$9;65^8>m4+pP_e|<-=_~ zH~TwNA6rXezA+ZVuD+taQH@*5W69s<5!ROS`jj+%I5gwzhWD3-*+lYv zqw14*vcX(ucQzZNe>j#u5BijF9c2;3B@=jb$!bljc0KPljoa%d%8s4ifFuCteMH(0 z{;gv19^Dt&(8vY17#@zKx-MMGeY-S&EJ#;FpjGNnuPp_2@UINmME5JnvCZ-8Gj}u% zX!koJ11dO9wfdq#h}YNC@YDCmn+dh}9kIOsfoeZiWAi?39^2zL`jeUmlV;mg$w;^W zE$K|7^#*T>Y`J&;;Rz}LdygaukLvHe6Mew_apL(=ZdDoI6Nv7&yNDj2SWlr3px>PxwM~Dvzf~a%LguZGw=mvhpwRv+g6 zux9N*z1&UkZ9iLwJnidL_%F<8(1dr_DQ0$>$#PqupSV>wCHQ;hT;>JV^ng4lRAp!4 zs^@llAh8nJ0XnC8&1);(+^Y(z@XhU{RDrQ4!5dR8Xxz=f%=9^d}rHdjhaT5uR@&MjE#MA zxA_N=OK5-A$TwV-MPjnI-+;$t#Ep?W3d zs_$iEOwK#u$*-f+$jsGtj2leP23708?PJ5f#7m^aZFo1sIKOwj`TANVNlw!=JBi)W z_fA(GwTV1l#HkTHugE|jM529Dlhpp-x!+$JAE{QLapr}{iGE*Idmw*&?(0p9$=4U3 zWMF~n-^?0M&z_-Vte2df`!J3N7tBarwRZ`G$Nd(<5n~PNLy-6yE)Ba^x91kJ8@~Z@ z(Ux&9gc4;}dci*VsMr2-oM33l%xLT{w^tEc-0W0CWQ%YZnA4OnV4iS&v zfIcaB_$PylwW_~a62z=pUUG_=4r=f`(Jc2pnsN0i>ZQa)Dbw4}$JeCiyB5}2PaS-T z6GlH#dPFum_N1w%$2Fy6RGaThdcTy0gx1Htst;GN*uudr$+*Q>?dAHpnZV*WZB>?INbJ|8XKQ;HZ_mRW^LxHl+}k5xNhBri!gkt*ayql z3GI1%BVDJMDqg?tzd)d(RJB*#rwNOejH(ou@AK%xw%uk*O1pn8yb*d4S`9aar0ntw zVz9aI2)3n7kv}=1+X%FU|K)W2Ji%?y5eiq>zhCKX&KCLUl_gSv^4Qx$s05D4E4W9{ zF~zx8`x0@jSl`(bPJAEW8k-Y;1bO-HpyJS>0WU_ohg?5_?D7#lrVj9(h*Lkq_bkfp zuQ%o(XWIrVV9?izrc^?c+PD+FG;}j3BT_hV<`QOXD2>ba3|b&@cW@62se@awAZ8{X&ceUeQ2g^YLjBx+Nv!z;+G@XQM<;nB#*1C1H-&cM5l}7rwL#P zP|=%6E>(mqQaAX3^pc7g{!t7~pyn=&J1kM2EB$Y%&@r`RYp zY3$9oAzuGCFJ-kDX-Qf&76J>JN72RGb19lhH?F_e+C*N#&WSlq?1hgBRpQ#Xk$0t{ z_=Va!zR)lT=^7~Q(YlN@gl{{QxLy3ucK{DGKgsS^(s->Ux&DQStEV%A%sA&SN68C+ z91T9KD}-R%3=lz10d#6kmt+y11dH1;&yYel1GrRdPcF3Cwv$EJlHG)b1J&HKtU z|4tLoBepU9Cu#J+6~@*&W&W<=iu1lp9T@BVuS~;%04sK$o1AijuL?Pijxe&C09U;$7ZRo;X zGWI=p=&wzY{pRX-oqc~CoukrT^xF?Z8k#eY?Cky^jbBW7DV+lm{XAg%CQda_Wlmj$ zMOV48;C+Tp*G=Iku)3M}cSFffEZ&_B zbMM=`BnILPYkd6160i!LChzM`wX4ips_%gM664*EbYmTM5e7AAv1^KGDVjd0NZ->} zn3Aj-hyqL!|TQh{aB$vfv%lRER;L9s2)rZ?N(e>%OY~HfsRgvy#Ij>64XkR^dO7WbQrpGOK&pQo1 zLy^@!%qST59RR^^d;@k;#qD6)kv=`&O_a|wbhQ2^L`H@4?l($q4!b6-_JAnidtbZ= z%6k0N;DY|9!C(<0XVe$mC$)*IgAc3m_E)pFWj<)K!Pa{u+ypwgI&U4JT@%xrF$2%j znmDa@?`-OSj?bS=Th%M2_mR=(9ek1p+vu*H0yiiSuYW0>#!mlXU>3AZSBRO9kx}N} zLaQC@e6FO|`T8{HTs7+LRuh7BU*}+?M*M9C>Xfa)!#ScA$^%a{LGv*CR6%S*@K`T` z;R|sOh>SKswJ%KQs#OPKb|`#3BR8*nX$!f0$4~j!hlxx}DSHPCX)97BL;u3>q+Yfe z+{-#dv1@SR<3aF%d%f7al&Bsv&Dv`6 z(eiYJL>8ivXBt^X$wI21itdApbZ(vTN!OT-EFzA$ad3E@*l|5+$lzD0BJ{Upq-hdP z{&Qu_*WG_Vs5jPs7<)`UA+q*pU%-&aWo+n1ph>!S|9T|z{y$HgPtNmU(GF`V=+V^k zxSnO@6Dg;~YmBffEr-69FA8d3cyhh`Sz!{dOZfA@YS0lE@b2+@Gx~SlckVR_<}jZ~ zn*@@3qZT?Ju=`9Nz_G`9mX$xnb*>@N?Ldrlo&+_m)JW93|v>{evy&n^9;WKd$ z4)XTF!M)6vHxA%}XDxGNa>VnkHLcoOA%WSmid;Gz@1M6q$0~z&OgjSB)yP*#Y)G)4 zl6q!uzKLh8<LC4BcLPMAPp#4?5D96>I(sX2? zENlKEw^c`X%@&UQPI)O+Bk*5rK_gIPA7TVMk^?)TCjYKvPf3rfK_?VCc&qoShve<+ z?LMexq)@#{*4V{7binMPad5%%_kepha`f}g%r0$AsIi%IXZ(klJnRbM~w?%;BGkkK5dn+FJ<)&sbiM?`=EHcMI%J`8m1E z@kEpOSJPhgEVz4$byt#*o)il>#Wr#py)eFR}AO3nyy-jNriVm_;-S4at zH-u%0YreHf;wmcs)0{$ZV!u{+ks8`|BGw;FJ__ds$`1fKWPUGq?_<%3Qs z(5PL@|897eDd|(_@O#~(R;ixNAL!m1Oh-5t!lgWGT7ym@T^XKtI-lue!Wd5WqM87h zK)=`f=;x{#VjFOCOKuZGF$g~LtQ9luY8GOH)O-+GBzNIu)6G(iSt`E1Ym*?=d?-5P zLHZ%HpXP5ke@^zF~wAFRhKTq@RBGAVfu$f!?Rx`6+AAt!nJe~uhVmt zP<2RTfa{2FeyJ)bWn)aonIM3@t>SEINq%ANOCOM4l* zbhk0`rZn7NH!0$qc~f~)f3Ggx|L&}L(WN|LsI`hU9v9{~_FN=RbfI1Fle5$JEi`+; zSvomYfJ*1y6LbAE!PVy=R6@kz12uE!wmbd5cS1afNd41~pp?NeOO9q)Q7gp-xg#iIHtYqb5}U-GI~t3Gf^uH2%# z9yfAqtUDtC|9a5KyDr=<>V7|6N%OOri{gmxoO6<~1?98NTGdAeN-;f7)a#O@Z`5@7 zPl!hXjDC7%+@@N^nuwnKGF*Z@u6pxrmu*J>%6C|a!ui3ri z03G7Ktx(<`^KM}g(f_dkJVn|-!Ew&_uAL@f;7bVD)4E1zxrE~YM^P5i$i8Th z=woAqcwEU=pbCySnYTqEmqV)6RERlq3w-otGx#dxHKp&m{AW|(kmoH}8jL?H`nd?> zo3_By`_nQh4=9CH`#7`o5ypV_dn6_$mU)hi!iP3UYYrJ*x#tmi&$mmlX(Rr>oWNKd z2Tr*A(f{&M{LC_Ya2s9LdSL*`O&o!^*TjMeH0sLa- zI&7&{#;!ge2jiO)-)|AePHXeGWZ)VvgocOy_4APW@DA^Q38q0nh%z^7+b^h_*UWp9Xg$`1Wc3X5?|$7n6;FrsGCM@#D^H;a;HV zJEJA(du0F?9?FFyG8L6(WVI2U%a>y&jJo<07u_BC&x=pLqmrkR`EsUCS}~k-?zkBH zobb|0e}bYC+Xi&kBW|cahTGm?q3*H`4RN!+t_w>Z&PRpg>9-K2-4>~5t!fo1m<7?c zFV+-IeN}gqx$(MdT48SO;lA9~Jl^^6_JUMi~M-Wwu`9#*`~eVaoMQHpu5F}E8ryrY^% z=Lr{`_9-|{mnrjGUkN8EJm|ye5WhN`7jD`6JYd?LdLQ9Lg zjA?agM&P@iu=So+xxrp=V81W^M{x1g58x17y{Oa&%x28GYiO0E|iv_kH?v5p2 zd$>v37w4uFYaUk!bE)^?LN)tAo5+1HhPO70hRX%cT}KDC8}>`8w9Ny-YL?`%VyeB5 zJrjjNCWv4GRfCR5s5D-`_~H(8oCsRIL&VLb2Be3C;gugAr)lp96>%~#r2A`!zY}Uy zbotb*xp1eUdoFgD31`_xRK%rZ7&E*gH`WW7gUt;7Ucl4AvZ3uKm+%~?bMMwo(L$JW!Zxi6{xXWM}-QKQ%{vqwyx$g%r zBi`IY2UM4>!F-<4*7smjA&+T+XLEOMGwR$o&2lxa4%{~dr}g{LroPkwsseV+s)6tk zc~~*uS8FIxU|~L@DtMfav>l~ET-ZF$?FDNSaUJr~?*lqEB2WI?Mnki&_%}N-6#`a0 zGV07>ZycbeuN#DBTaYmVdoM2*)<+>SynT9_CAGpVkpCF1>(Budm$qMJ--NzigUmeq z0;Xh=Yd(V;B*oV==``C5_j9(}YoC_)D5p}r)V_MlU+fDvWas(OZB)V1$jLUOz zKqVYZ+6nurjs@=-2$MNwMX_k9#W48%gOF!ZLQg)4@3s1mpDpF5&wKXac+#eO>ze;K zH^zUKf;bFUF=FjvBj0oke12)4;&1F4>1A-QBX#ap0L6pYh%MKPal?=q90l#j94RV1 z`S7`eNs$(fit9(?@u@Gb<;;V>8m#KLNYG~J`pX(-du`*+(Vk2)qX6qEFeqc*FuN|m zJPrKEp>o>c3X_vt6dZ-pCa`_)dnrjTe=7CzE7M zAs)70%TWT*^iFDx$(Sgj1BI7n*EOVX-d)Y^?LReqbUP{kQ@}&7f<$tg+TD5M?brjj zhfU$H@NGSNMyCeTNSUUk!~4^zxS>fNYcTq@C}+7sgS(-mCYE&FQsD~G&d`3TtF!mj zow=2cb?-0b@mnZ_v}Y2`UGdKE&h-!Y7q}VLEKI^&U;wg9NY!%t{z{w3fvDALr#(7A$EWdN6GvDTu#{*KCO6uiD*$<_PQtGK>cf?qLm}ZBp+11aF*Lom?@3YpS6tsp zts$=7p#!2bJZeFG<0td4EJ%(jX`cdlSTuSLU7jlFml8?rOjyOF-D~Z9?AVf^=_#r4 zd_jICyT#U#K+pC2bX{8GEb%#fEEJ0U8}?qM)kGyQM16FAka31#U?JFl-S3xAKRR;u zVd-0LIg+2T$k-NA>K*+R^!tk z_if`Gw`$GuhUR)6Wea*QYr{Ej{}{jh9Yt1!s^6`b?f}jvpVj!rFetA}znYIKe>ir# z!4V3+Yv{|Vf2{2s7+nyIh>r%eEZgaCIp?P~yV^1vc6GqT>8O zk@5rirN1q_QVmk+<XbNsMr)2T_+=7rdQ%vQ@m2=8u!(@Ptwlo2wFJp`@tnsG z?}-$Gea^Uj>LV3^aR$-|2G$g;?;C*b+-WM0Qq?vg3J&4Rk=+>NIvVuvPT`S7MB3%~`)swZ+zxCB|eL+chHtSQ9xu8uk$O_1yJ+7|ZTKRD{^mu_csYc1K-c%;# z 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

5Os)GsZ22wA)xoM_Y?kN;9NaTT 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 z zRQy)==^TDZFWy;R5U5JE9V!l&d;0Isas9SkGXap{Bl65knn)|0y9`t=v`EMQE)-Aw z5X?5e_q)G{hStr9`t)Wi@V+vfByNCWyY;(BkBK{xr}&O{AG8l@;{K6dGaLd`d#AYB!!`Ff#AN#+R_bnj8oy>>0B$yqF;KQ@qHu z`g6Z;GGH-$L%%gKS=P)jCvF}j`9|@=XuZn~&EcG`@asYLtY!~+P$d{lDZT@V`35X@ zAMs6rB6|mSLGRYdVSZtxXreELyuzk_A-)LHRtsM}+Q-*}uS78CT5$GkQ(l3q+Q^rd zL}I}y-X(^>szkm#Td33#pEB^#Rpi^W$a|q8$0+gA+@Ck!7_^RFD2@p7)BuZUonRgs zDb6s@S=X#S7_|wYsGeGfA@=_$f+Vjk6|=e_R%Z)8`Gb4{Tn}N^Uzi=0_14g}alc zZmG8imLdHgb2mAV0*zAv0*5w#+y&4UAp#0QBJPzMj5$?KD%@$f= z8$d3Wt7oK(A3jg5hHu1iI%B$AMWOcHW1RzGU=GyB9?GxkDlb8QXgu-Ev}-)6s{2ba zBZGQ@O+HGNo$<$=+HZ5`<}+T;UN)eo7BK&x)Ga=J13vO`{Z0UFvi)8U#V)0W;iJy{ zEDTAmNfYCG?jy!+u!?hFE zUPEQIz>BkOhsiDNq4;~|`%xE8wNDiXQo+xuuPg#Bj8Jt@y6c0I@}RSh1z0Sz0OtWn zQzj6$g{P21#Ohnm#q+5GL%aIEuwb5n zQMnZ3W@Hd&CV--7@IO(x0ug~PdQAE&bl-6i+VVwJ6RhmIQ5y+@14a_m7l;&MW+clQ-?pT?II>PtAlkUADIiFQ_=OOF+i)J zHd(T?&t!buR&m>=N*5E|ZtkJ`GAu8e)IE*XKxyLb*5Cp`XuyNPS&0B|W~`uj7xq1E zA-wJ!{UEuyrOce=c`LV5yHF4mLhXsk2Az{q%ZJa>3s(48AcyDqI5j2MT+k@enB%|C?v}EUuP{?)kyph5i zn8D#)TDPf@gb(R7yEc{J)dOAHVI`aaAtZQi3*gu{fHgRv83sm56ZTGPlYr=cpxZmv8PRtfVl;h=Jf!2A5AE2jv*#O$B;DDq8+wf!sB^icDv?j#I z(ohGbRRBbN2XXI1=vDIEBhq1DgqV+LaDU;s{NUHpQ&MwV=SS0faAtn;T@dP#V1Z9m zP43SoYjwd5VH+2$d~K8s9E)UB(0f*ccghY4O5W8q|?OWX!m1cEG8{;}31h2lS zCrpg7XY)*mq#c*!rTUZZOj#pOMm)GX-ZAh*n#hb~Z>YaG)HI;VT6d|*{~^AfdgBb4 z@eFcFQ)HEZLQI2xf|KFzdsgeZRXf%iSB%8Fz77&GsB2(pVz(G8Cv|YBF(r(Bt&l%720uz0$NX=MekzWOD836Eh*O40V0gU{83QdV~$ z=*}a+{~|y~pC+ovs0VKfA9+8%#At2_YTA)$P)2b^xbQWb7LpU| z0~B;;Z9u56L#>RV%)l`12WSIsuK=nJtNE2UysyOHD8&l)h_P|QDu~``W9Ct`4Sn&+ z8zw#>U+c+!tL=!`zYxz;D1PP~XsZIfhQ^=FJj864>1^q~wDi2lcL%ssodC(x)p6A` z45@^oAOsx%y_{_DUU+(0Qy`(?j}QM7bay+@M}R&gRa)YdqrD&s14fTF{=&p>VZ{PA zrY|=^-0MLqbq;*FoorERJ)i+?+*WdA1SourPogm5 zJvAh?{dej>s=LRGjt@U2ATh)c(=s{H(_EgO@ns8r{LYyN98kY!SpOt+kE%i%eF27C z25#Y4{g`)ydhXL=4DaAs+zP+Go`X&PTC|25`_Sgjp7pcqNU8pvmkKI(saNrP?olod z^F>C6YPq+bagUgEOuaK#=KKDUMti30G;_xiV8g#+}1g z4oq(Wi-@1>I2PR>uTBF&CJ7I zslvgzqT?JN@;#;rwvtxPeab4(HdJvrZ#CfuTVhV%iAiqI<6`TVwar{fLL-}!%prRx zohgn_kT%EopwZZ|n+eDFo8sCJ@PDO=^uPHb&GJJIHJ z4`vulSh5F;1pg+5ZOCqP8>V#QMOP^<@v}UoNcu2q=o14IpDL^Ih0}~-ofqEb_zfZ^tKJ(0MoYg}D{}uKWMJ_}q#ONz!Vm9)?wfZrY92!JjTLEW zZTi?}$wG@jb6S+a(L8k{2)kdZI)xmf}aQ~2+ z)H^J2N&?SKqWe3|&_Wf$YHOsI@EUonE+WBaOwkER| zyqY7ABlkoIshj>Xtj+_Ued4{}w*Uo4r1R>xx6+JCwNYE0U53g`*_)#ksn;SqKRYR~ z+TRftG(XB7WVW3U-p{vjh?Nj5xUD*o|Iq$2ha9O@T!I&;+-%rEci-(m3+xsm4sASF zyUi23%AS?woH6f}C_fJGn9IbRbaS)8Y#!pj&AAG7HzzndTQ z7x*?JCwzh=MJuIhLCdq3%S@)@i+EV027=#Gp1)0sOUD1Bj@vE70cE%HAh%> zmR@Suks$@6f|J~k6g=j$qmQ)8`CCx*M~$lB)tIDyC0TXxQW_z9%3p~G24>2e`oBTS zT>WNFNh2D6JLim@lis}mo6b+PZAy*HoBqc%xe1$!W+vdR2XG`4cDk`T4o02(&wfXl zb0!w(?z6%bRjQo_l<>*ew@B5`IK04a`t3J|*7k1Eo_Wyesm;1WUS8hR54{suLl$MQpzjZ2mYHicCO(XsXZn)C znYAaG4O8u3^SM62tVVpTGVJ`Hv+Jj{R>w$saYt!hYUbet(xR*7T2fqTm_lKNu!}+F z6Pj73#{Kml#O>|1`CFAlVa#TsY{3h$4xt^I#Vr=qUdb4KU~*sH8_zI1hJ%U-i3+9b zO-_64UCBYiCnrLSF&x&ETl&g5@C?Yo5wjY@#X+c=?{AS0_$8lz5sJ6JeKTuW%ul4M z^H!PfuQ8Y!wlslra!&!4auoAR>SdC?Eq<*=KRoRTE)X6LU`M!@Uhht5rI(}6?j-Ju zGDRCPg0``;n2(%Fcnr_|JRUy|)kB^OrZ~11ni05%bwQ*Vg<`1n`KNB>c-g`loqx`; zs{hwHBiBW7@U`)Ti@3tc>GkBYTQ!YY^`HH(uyYePE$M1n50$-)#JzeG5EJVW7GQ`I zf^ET1j+7VSdVUFAw?jsMK727wXK|J6+`#ZpjuxNk&U2SSWK+J;1q0HxinxvIs&(~* z8&m`>LN0_uhSm(le(9#3$`v0&^@|F5O+gUDV9d%Zxyt!3B z1DSl==L|$|w)D*IgKotSM%F@p;Fg|8+9XM9GQAvIpC{7UL;sztGP?4Ze2jO*cS%L> z>McL((cgKy?ChgG%Da6b!tUMAeA#Sigl#THxy*d34cSksLhFbVT>Uw;76a>$N|4hz zha;k+le5K$R0pl1nHVqtWD)4(YpWjr(b$3I5cG=x`m$h(;N!5@-*#6(0atupRiWcm zA`Nbxsbb{?QUPiAfE#by{Y_0MBZ(w(Qa(o=vel=T3e!BnNCw29PZHi zgow3=t=9Gw!=%s$@fKy8(%oKw*fw>0H|NeZ_zjoC=ZDg(zaaj3$P@UZ_v)yFdyGu5 z@AXt9+K-)aBD5l*aFE&0l%_DT4B+lvXgMe-mvV|y=<~+(YLbXr6xtK)6Q) z4@NlE+txf30*JL=o5cc#Vb>`i01EBHlz<&}8!Aqj1#$a)M&kw-y>9?t+u6UwFVGY< z)T02V#@Vts7l$Er21gDSOzmwXZ+Aod>w8NhT(6^Mo8);xPTuj!1aR8$D?dp~fK!NT z`JT?9;5l-PzsFH8K-2TtzrNU=wS_tmwo;Q63IOAF$8w7?<8D-igJFe`?cre5LbZ{Q zDKb00_dN7YGSl|!-LF>UW#>smp|6M#-0aKqfc?b8w<`*yAobiwAD@jGa%5bEng8jD z-9EW%;5ymr6ldi-*M5`R=-sezsfq~peyTXt;PAj<+R~CQuG)Wl@Z8m(Kl}dFHv&$` zKhmaW~8VxW(VMxUwItA%(hPUWnw< zDfi!?R-HHW4V_`wJ0ez-^Y9qiIkk0s2{LS7b*rOT?`On9Y4*Uxq%k{k%m z*ZG1|!ZWv^yI{7dWHi&CO*)P1wUE2Dt>+qPsD0Q5=iQTO@aSIG*3;e-QnbxIHg)SH zhSYri5O-a^n#vFW_wSU(G4G9FSUm6|m=TE4uI&qjeR2A84gUuQqjlG{K<}M`0LnPkn#Ll0T;OaLOkg zq7md$OilO3BZ8i2k~4WW+CigXW|%Bg zzYGhN>Dhmar)27hOx3eJEWHiho~7u0m$*j)+V;3$GGEskNDm7s{i_p1Rer*i{wAzn z;4jl_p6^E^JS&p#$r3=qy)XsnQ2(VBzAD*p-4`@p`g)gjKU^oP9m(NVip(AaiGE>4 zR#pSHbTZ-pnI))Ay4QY|Rgk&lOF^-992m)bdi@G=(bINw>9I5L4g#y;rC^@50lI(HZqn_q5*@YL7wm%fG|xz2w})W z$7W7IJI&dj^L3A$XY2JxFRnG=>Ec3I2YEqBxUJ)q)hM=znFFY1_BOyn=&`9&7=W0m z(8b+|)VtnEl9aO_Vg5;sraOMKUi0s%8F+rVu9V2{v{k1shbU9rwotw84; zkJ->&pzAR+Vqx|-_3E0_5tt>46v4o}X2LikDrh~MM!&pRJFCJtH>}?{dDedNS2hMm z#}1b7XpRG#VwQ;n(s<0nz}Jd^RB&Wertl-@jgI`S*Z5dU2?{7jQtS)rw+?GR8t~i$ z5X>C5S6^(B=2|_cj(JuGqNDeYWh?9C7xEQ(;`lNskY9hZuKCPpSapWn%{WRDC!DL% zy$cq_P)iE^2Z?l;IzH>5V-hYF(mfLDEo)fQ*@DuSnd{%?tUA%VN|mx>?F=N;anLGn z6>^?8I`7`~K_-DXo|^hddYfSk_MbwA=H~OA?`M94+0?LRZmfyybDR9lGYg}Kn!>P21wQHB$i{deowC>D^YTctDv|1HKMJu7s|fmhM8$-dM%4C6z-oO=RBa{1R~Q zlkn@2LKS9KXeEI>Wx0kst)W0OmOVi#3v(13zW6*q5f1 zDQ{><;MeS|8h%?0y732^;{p^y1-rV87IgWxR|7%pFcSk@w8PNgZ30!g){jSY)oo`I zZP`18!~4Dp4KE0==d7X`slaPP-C$esn^~P+EoCOFuibT=RE!@SY;K{AY30DhV8MSF zn7;$F0iq$x+wz%_W|BYJ${fKzD$JF^s145t zMs2~|XUC8yH^ucee|(=R3*E%e$mIVB^-OpfOcj;ycTDA$ny^=rAcbnc{rlKDXqJRII2{M{}^{ZEY}ZEdpW_f9OqB8E^WV5mkB=z|cjDDu8W{w#?_ zGeDEncNmpz4lewHGZR1G=v@x2Dc3t&Eo;O-^b*v#6|Ienjeh4_E*<-vb`8z2+6HZZ z;)D6kXe|sfg(MJTjcr=JI>@g4ahn_(fjp26H*~SL8)HR3)z6E7I00*Y%E=DH1DFN0 zeC8}L+PS7pe;^mHmt^Ji+n%$(^jp+7L8RHY1f|J1n&>9-xVy6aEifygTA3$SDEp$S?6ifx7VscRRD?c0;)^j_4=0Z{uL;=v1HX2uKxA zYY=tTZq$ZN%~_$jG^6fwls6Evlg4EI>Ek~_!I0D*MBGsYFmj#zW3v}BTB%_X(x3UG z@{j8W%bXXN(ZiJmK@}R6=&bAmuQ1Z)@8KVU&7TBcLA5bC6$i}Td&wiyF`K~D8lVJH z2q{P3!FQ5~2fyz5LCPKR(ret$edv>V3OpZ`AY+O%eQs>mu(aUfxKtMjg=DA+_{i z>8#1{vzsVLyBJ@%uJFzatj{8P|DYlGx+7w+WIks@#_JGGbNH31dlP%n_08>HHHbKC!Ehr({#zCj&YP@?DdK$b#ms*(=#>JLxe9aWN` z%11o}o#&gpDqZ+6EKwNVCFJdDz>gTvDK=@gNXhqw)C&)ln+X}NbYYX2QK7*TIjHF= z&%@jM8f#ka9x=%i%){Np%hnAiM=hb2t#aSUek5Si6HT*Gj)qQty5i3^t?KSN)}Cdq zb*YMZD7uDXD49nKiggx6W8_D`()C17(>9^qbI&IzE*OBU1Mhjh-Vl<1=IMEwEMs}u zH!S$I>QFj3D+1U)1|FsXohI6g(PL+SNXA<$epTR{5Q<9LcaqiJs3WO`z-!^1g2*lE z2zwpZE@hJku44=s;CH=!+%B#1kD3yrtC7v~pMP*(+pYQUBo^E&-)_mtBcqIe{CaUO zW;-H$Lw&{mu&c$2VkL!mBE?X3M`!01kmH8SN>g<34}vFBre7U(hQB(gVOm9)eG4_w z;}ungqWn9_n2@{ zZB-fV#GBZ3x%?fTea2?|0M{uZh+CPIC@BpvuU5_d?e0gji~w){1Af;h{vy_+rg09KUV5VR*KFh_Nu6Y3@Zg|A&TlmH3M z?o?v~_+x?BhBE(iKrW_NYE1qcHUGGRZDf|pE>uKB;L^2fuLNW*f(`P%7jSNtq^3MpP@43D3cdh`;D#S9qd-es%F zXSM#d%Gs7f2)C;4_%EkK^kqTcsF9IF7@<%P}7UXr=#xT9r?&3cb- znj3KOAt*UOsq<|Xoi&Soy)Tse5u+lxSNv+*0`OL&z8mNsI;f&Z6^%z8EHo*tASCVE ze3{j=ji(YaS{_3t?vX)fEi3ezO&DFaOi2Av4O$h!f&J%gOJ^Uzj_JeRTl^QZ`kXpz z>tdmZ_nR(IipaiKD?}C9O`XITRs0v(%WOKxj;i~n zh~B5QGDpRj+FlK89~8%&x`K6CkoBwVX3*fxtUh&Uy? zigB0PqO#DYewdGl#XPHr7}$-!`Q%Z~W<9pF6)5;@`zX{X8Zz7uxsd217F~TVJUJap z>m_cB5|@kxE|Tp76~yNq!>=aD0E<9WHq0V$1z1=njM2zHIewAq+PE&U8ay*@Y)rAj zN_=_n{C`t(eYr8c2-NDT0wNc_@VYCjHwuXDmH=6p!Oujl#xc=1*8IzMiq zAIZn|>(Hf0;IwID!0b5jfS(ko!iCh{SoDBIZmNiZJU`bb5|RcJ7P;=sROX zu9tD&0icfNJK2HUq5_YP${PrT)%@w6F;Fiy)5cl7uh7Yrero&P3fqW(O3q@Ing0M& z8SD2P5Ejk%br~fbAYb<$hmt-_i3jM)>7P}#zlhP@<*=gsDHfVA>c)Wk>R;p(ypa6O z#5@1rEZ~sWw;y2s357J^7-%Vw(`{j%D~w9JC{I&^D{BJmm%y|>AX@M|Ka}Ot-mw_q z*Fa|qoKUicuxJI@-=D?dd?$n;9Ga%y%vg zWIPRWTpE_Am(KX4Kh~KjH06`FB)ct1&4&H$RWSj_=XhKulQG$99E%99DdscI3yTU= z<}NAmV_GH%#v(hS?B=n>b7G59&EJFcw><=TZ&UA=@$@?lUlez3 zj=6pq#!7g(6df^jTSO!{N>D}y6{z;JdqMb3{jg7qD3$F*g){ZfL@Tks+Z+2AeimoGPpKC(T3Cp z)ZDe2s|KG1rlg^@raM&;x$*Bwn*r_P*=aR<3Xodv)*J znA8JTTRv~g)9XFmoadT7oE@>b=)NGRjO+ks2l8-7q^h0j(a2GrDopJ{GSXvi^z1cdzp{>t9gpYCFlo|Kf}rBx9%HqhB$HXtCP) zA@F% zRro-V+~$-qU{Qt{?ENSc#5?e{9qvDd`e*uUFVdeBa7B2tC_6DikQaa6*X~bHOnp$V zZFpN@G*Bn27WB*Yzf`$lseYqxLdo`HU&!WNI}3X1QYAkU%VB+os1#>RDHY>Id_-O_ zj)ud6yYC~BGqxhhuLY+mbv$dtlJe*}bmeJv7{+P1-3ZWvasaqYlUQuS%NuUDFIK3R zJ70U*b{DI}3z^o5BTJF539#cxV(2pDye?l{vk1D0ldsZl_) z+~~*?$d`|xcD?&4=Fmp0&>NMQt%|zJDTh7nv7_!dW`S~z^uK{K8e1psc2S}~SC9@!V0LCAs=S}sb)}IQL-&?{*`SI7ha&GV z8HEUYXo!-q6F=SDL8el3nse#JhM)lYfdvKbKo?gbJs+5FMQJ5JR_(gGoDh{R6^Sg2LV*={ zSe@Z$zgrI~99GqkC!BlR9x8#@_;})qfwFAix1BXQFJdnEDa`%P={zipNb)*=>Ot@} zk(f>xzq0DL)1v?k%bIp3R_+MSUeN&_=mBKMb3=T5x39{*nABx6mbHiwPQ9BFk6 zP~AK8Q1JwH`3)BP4D=giZ1Ou}^sZ-th5I|nk^92_>+@v@3 zPp=#vV@89##5&;mkXy8ri>Z=~s{v=tSDHp1C-0OpmN8sU{t;OscCGbG(=-U+dJm8` zq+?V@Dg&_vP8@iAtdPU5Lr624`kL85l#eJR$YJqYZxrQbc4lT|p~6OEE!!>Rm~GGL zI9;F*vmJl=-r-jd<<x>i-Sl=DX!f+}U2*Spt@=$?b0(x0FOwOBnwWic@_P)T zwamV;0Q^BdSd4A}PlJbFyus{PMLPDT+bJy|jUY7knJf=AnQUMxfof~#pWrJZQm)>6fi;D$}9qZg*dtS`+oa;fT4;LFtJOQ2y_!>;X zPD}Rid}=FBpL@yohBHssa$o?W1n{DZPO3MH7VeE64<^H;x`^qT4gfaLC;@^?DYv7j}BbPGLG9yoO!uDu}A^7a4F+IdmyG8 z1`%Y{b}7Y~D8r=hk_h~2qXYP@DwP0k^|C48MGD=^V%Ce@DTtAG7`8$H_A7F9suj+hqbT_}>!`T*{;=%KhXk z2-PnYsb&mZ{2jm2`LWyUZJoAH?o)C zE*_4C8WTg1V6T+5XL^k(&I1~$Com$ls_iYy9rydfi7L5xNVB+g|(Dduf=in z_?aSDQnAqB5A7d7>$*&G{O}G0!tU%>W2A$n2S({fO?!eKLZ3z)J3c(<+h=If}86yS+b+onD?MaW2@-_CQ^8h$txh4x{c+hV-tdR zU6d!0-UVRr5=T+X#Mp#BdvBRCgD8jigMivdqe`>8*pFEHfGOo?5{f3IN}D}lpt;Gt zak$MmU1cKdW6HtI$$E3Pu|% z37EyMt_xFloKf|!?XpGi_09&_g8=9?fw}+6orx`R>}n6_ei)V&^b@Y8?L|0q{N_Cf zK8*8K_mM}vuJLFcGKdk_RuXb{L}RO|11Dt$(L5m4psgQg5v!sm;?yV=pI(G1X-*T^Dg(IJ?$<4 zn|;Wc#}8%aA(LN5tO04d!)3l17~sJnDAYKNfY?chb38dMX*$ms5ONBxz>JQ78U1Qc z;a9o6{76uzrM)WFoi(nB%%dxpXc*g z=}vT@=r!fDlxbl2H0V}P4!$3iHV>5aMdT?#{B<|rZR>GuEP8?=V|`xtfa58=lSc5i z-6G5kh{6*tzJH?$a)IJNuinlVfpQn&BQ0n=0?#>L1jo!E! zem3h@(F(iFaFcOnh`brChs(% z12D&4*&spSz7vY@|DN>4?_BJ#HKpwQRb$*mHSWITHYXD|=znHVWfwmBo%=zd^3XF= z?V)hW0i+<+7Z3QKo5x#7e;y+02L()bwd(_Ixxc1vy?ge7kwO?n84`p{-^|$zVv$7= z25)h5ku;og1lxlW-_l1MHFD->bwq|_7X`a>gTcWYljw=s`YwmH4Yu)nI0V^i0QPGgC1Ljg!C{-IGVEqL^JRrp}))2jZM=Sv#ce+~2r9~w^7khxGm zaLIjY6iJXXkwb&Td-uQiAGJdXN> zM>h!nEhYtOU9yCzNNCV5@3JTrfWNA=zQ&A*_Q0+$WwzV@B8$ykCI@0%KiAp}gm0ym zgBKbc=m`Vh)tVTebOqX%;{(*HSYYJ~?fPn$bqy+mC*bkY8(htnv3X?YB^~hC*{mBt z_0r5$pk@9AzQ&BJfG%41+7DM0IfBsE@6J>}O3%L|Ls1DZ3+BwKY?+D~D%=f%#l`Tu zbN+2^ZF)Lv64GFF`hp2aj#59GoxDH0E0Y>?-t=9rY^l9$*+p$A<=w<(+915ZDG&Go zQjeLH`8-jePHN$7V(#2H-i4DxzDWVy8`*%|xUkWG!R3sGZUWz&M-LEP`Y`%cmNt8L|lfbYu@lH(i1O^;L~{T?u(evdlL z%CEofY<3aPnQA2O#wk?tnq1n_WK7|#!n)p<`yz1DKt0^+a3N)oxGsF~;P1EkvY4OK zpKXo8827Y`T{*pyvp?VSy@s+9M(#HAYj4PEiz@|wd<^gJ3cop}M33?$RdwxUe(X6J z{7gV2ANrxsOzkPtPNnYuQwWFn%3Z|*1SAB0P@kH;ZJNsUJ@-g?16VEQ-y`9hhpJ^j z7Ed__F|UV%4u0G#EnzVZg;i~0(i4;@_~8NWJB2}VKVh!(DAan4=zF5A2i6BIwRxW9 zvqzuWJr_;SSAv%~nFG#nu!JMUj_MJ@2}A8EML%tVlXJ6KCYOBhJo7H%1un3f((m&V zM@ir7GnGwf1*1fQ3E}THOz_-H$Fj;B2d=y4#XSyNGHD|^{n3Ko{+&bEE1f=UUe0p` zk&ie%**BJmIIQWV*~^lrWF#*VAfrGhuw5i#{t6Tn57`i$it6C<@erGT;CHjc9yWpx~0&8REYOsxB2}2@T4NGnlaRT5|J09!lDQ4+5hyyn1+e z=h>}>GFd#Jlu69^Gc*W1=p zqim&>&5W)bLOAk`J3pRdAD(#?ah5m01Nr_=y{=Qofa?mo)|WmKZk1bwz0n)Xcy1`z z;a;T;ZWE)gzNl{LH~@Tlb+wAc5H?>Kl4G($4bJVV;ormbGS-5k2jCBrN(5boz*1hv zRICBWL(iq!z&w2xu{XgOB%c--iNMV+5`3N_4HNEbMQL(l1VArCu`W)Ga9%r1-ZasG zG~cZ}+0jjS65I(8T72Wyy&fiframgKiCTHy;PpfCtJOXn36RT{xA`3@JM) za(g@DTJGf2^Z^(@aom`GEVqIsjoi-DT{=>R^Xh5fxXtP7met~;g$T(px!#Lgj}HS7 zw*U5BJD8g9Q2g;)bY@;S92da`AaE+2C+$LMKOqO>D$)*6x~h)#=$f2?)_@zx&B56{ zr)E0~$TdR(qFeo)SXBX$5^j3R8XePHNTi!cOqoO`y>0q&))gJt zIz&`gW$zQ*jq2s^T$QwaLI&h^5R`Ib&>m+Mk_r=9cB?*$W=R?%5Tq&1|d}P)X?PiiJjdb0dW-0{?{(XHQ z8tznd{GmuLuiSz#p+OcgLn)wvMZRes`!wwbg18&|9P`cV<10jxuAcv;yty1MX(j)$ z=U(zh?1`hEuf`pc>ziN?zfC{`+24Cu=-N27v}+Gp)RV*Qu^tQ6E&vGxY;%8TLN99x zT;#i*km5_~(vH0+j?+6o(#krOupi4-kA*oyd>Iwe7a$OP*VUgNsNeN^>Npekc7p=7 zytp1J4zJg)L&g{UTcH5V6OGJAeh6w?i3A4`^aqOmT4^(#(4DRQ9`51t38dtxhw3XvScNnes#d>>qK8U*Kp6Uyt!{p*Bf6X7rgnZrTa(W#JEM`_v<`Rm}bXW zOg~2F$vc*BEoWtd;z{+gVd12V$rTSh{?i3A#H{m4dz1p>4PK%X>JFc4ONFqouJ{;% z$^U4R(4fxl!lTf!yOKRcM55G$TVtxzhM58RPiVu(D3Wo>-tjyYDz*{cFjP%mZ=o$H z3l4!B3u8S7Vttx|6X#PuGFDWb;o29ghJXOdFT7p z3U%Pkz5UzdTC)|FLLH?;b6MQ0hELpjUYmr1k>vOn!+d2nqJ}mSZa0KaFcsobZsPlw zx+q1P<$+oEJ27uA#rU?VI#I?j6fK{KZk8d+o-i**d7{l zGkEAbtF}M$Cz0YiyZSX#gZHDhC7b8U{WY2+sZR8(Jdf}w_p)Rh-x~p<1i#le)e{n_ zhsQb8QwY3Y6ak>ag=vA0W@OpbHmF7PK=AfFEo&e*1Um^ak2GPgwP7SINDfqHUFTBQz zkEroc>44w&5M@g}RW9_FUgIcNINSWG`nQ6t>tT^ip_0Jv3od<&Zh+o7EnVKb>b6Rp z!@|4g_da^ec<41a?G5z}Fp~#9N}br*7gKhwB?z~rSG#@JJ|Eea4Co@%;dv-ER`x+MHB;k8dC!QkvkJ6{vE%_u>V6Rssn`RIG-Fr zV$a4X+dcO->wYlLc);*rs(?WZLN64a@wuw>!@G`QXy@d-n$Yrhs+{cbFyGzjP8^Adb@7#L(0 zte0rSQ(r9fdRcmoU{o0+8`0>yPJ;$8S|uA?A2zRii@CmEi4qf!LV=T?`Q$l|HN!9%>rD~^Rz$*Hgov^yDG3bqZ1l!T>L%o+&p{HfbOxXL~Up*B{gg8*W6I| zLW=|ax9dp-WwnPoFG(S;YtqR5}4avah8CJl{j?58KkC+R8BD$&Iu^t0Z6xpIsnlh+#vWhMcoKC8PgPqWJ|A>ErgE?Hc;j z)uL*wd#R$XwEtR8+T5nFr- zGo^gSavTyBfAWcSthMCO%6E%#A8g*>Odm5t=|lVX+WBz?-@pHo-klTC1s0qv;*^Vg zvPkVRfYNEYsm&Q$QFbN%XEkAf%5#t9Xj;eOisV>QLC|4 z`JQbxRtYsiuw!WO;03i%w|zkRgJsFRT~~G`yX$TWX0G@tA~a+IKIj6QImrH?zyoSK z;@G{HFmwx_zKLQjDc8GL7(4_D5_Ks^#W=bBe;zOPIKd$FYCj45X7*J-cO><6&h!50e?R^<`Y&GX2Fv~l1DWj zNslYh^6q|fe%PG(!+yhc5^!sM^Sc-!iJyS+>3tV2X!VHGD*{o(Z?(FI0vmGD`%4IH z|ApPh0w94^a$(?yh-F(QzTDM zk;K`ziAdP^*LvmG=oUW(d;0m@%0MD8&q`!BDkOWxADE%0jx#T7MCNu^$KPHOGg}FC zag`|bgh@cYb)+k@v-MMAI&W44rq~qe$XI4pXPai53)7Uc{=Jg>D?oUbx%nfHY*_^} z&%e_xUhs4rX?ZdO_Mo*j-xjf40>l>HeAGFFI4|&*fzImZgHYU*0?e8;q6}8Qnj)xW zsEl5&B!f!AY0dt7r(BO5pkBr&Z(N$uUWG1&_+?;Z8H}>aPFeRTbTQde5uuzHzpeV-(b8yG}JbNPto4V z4%kI)Ch0{O=_)}k?c@l+G)3)-n&wUtW8-IsQ5PDv0F6|e_4?RW0VZ*tn^bZ3+c+0(_IQVTU zNr~ph>f)z{*o3zoi%OhW2&O|r;mCQm1gA?vx!RfM*9J%$t*Dx6uKSwh;}Enr$;{b* zEhG}VRQRgjqB-`@647~CdG(1Pey?s_qFb??{Dx4TrKL%ePAOJP^u5s`5wui22j?kc zn$1)PK80#_N5L=!vG<&`T40>jP^&9jYBzq=OxiQh+jcw5&Kobc6DJQVH-z=NYQy)|mWJ3-=O%?oc-XDM;yF zO_W-a-q8i+=qKYzfjTV-J^BZzR{yVP6FUoU+{Ntx)SD+N5x@Fighl*^7M;T%6)ws4 zIlcp7yh3rG@z5Xat>@fyM5sOchW|iZSRa!WApPY*{!D`T7Op=y^2E{nLa}Ku+bBo^y#R~D#QOM3C<1{|G5xW)B-SzBzJU@?XQq47h`to z0K1gputk9{Ilv^3WdN}*23E`W=(tlx?oGD!o1lLgCCk-#0gwM*(o58PgAh?qRV;a+%m^Pc91;a*jY(4#W)x1v*77fg(9wgF}`h6_4UV-3Q@>hU%x=aOP5+ z4Vc=xEV)i@Z!t}yOOZDt-k$NgWQ2W(XUK~R?Ehu^sMTMeMc8a3qt8KApwvE_(YLDY zBr@nu_0eBv(Ui95B7FeFkwe z{9ff|$0Gn~8Rm`3~9| zM7H`<;_EVYENg3P;m=}~Yv)C3(E#+clP@8UFq)TE;AYv8Za-czEfO&RT4$4*wefyY z12x;&DwRk}YTyB@4uJ;9GKMX&?;1fN{_P>0PVb$x?BrASo_)Jw2}UXKToLauOMGj+ zPciK|6(=(!RwKs2$Iaw?6|5kJ8ea4;8cG^dO3{_lD1A%0f*xak=gxp~33#D+rPj75Aa$T0M79?G^|3xaR zqZ!iBh(Lee?>i?NIt*ur2|3AzofYIFCc|-8REMiwIFX=xt0#{y?F{dEz2`u*AGVgj z!NoHl20jhcx3PS-G*g4w1*($V5HQ3f`-pX-FP)A_s=u z6P7*KSC1HP+&Yt-t2(|jKD3U-%Lf7fNF1b&tLlc(i&nP;e1=bTt;SY6>%>J1ShQzn>eLlM)ngR1B9zQEV=%6J@HYW6d_Lp*s1M~y9Pnatii2sV+_pT-;-bh*Mi-#_- z0f`(Un}ygPX(Hn+vyDP>JdF!seAckA?-ged1>^)_Oyf*cdTR$Y2g(Jf|M87dqMD8$Roi)# z-`M2_5yX^I|D-A4K_b3Ie!S?lV~Z3NOt>-|j};k!FDb~xNuo<}rIfAQxC@yTv;%q2 z0c>UhmiX_k#c$J2=SY9Mr%b5DR&AJGAn^-OOIQ|9- zE`gx4EibLg_a7CaD%n^2-+78a#=%8;I)@Ea@_Ik2Rtl_*G?&t{BTrMqH#~ovjO8d6 zVyj9S!yBb1lsBk*AEj-jmA16; z;oIBR>3j!eU&`^x$z@~Hi3=YljF0-Z=Na$q3lhqTu=R+mNmSYaAG8~u-2)FcG=Uar zHYDqyD$TvAd#j`I9|qe@hRI&O>1k@WU~yCDLK{L`5nhLFk#P!oN*Cex(`y9v7)N(j zEnNoHIeiNsmEIkbLj^lx>L~?b;+l}TZsvixBvISLJb#mRE zdeG#YEgQm)7(rg`tn|{i{c{hq?e6|Te5?!$=PO4qOSep^1+;muN@hQ2FZ~kP@V39} zw-2GCE;{#=^~o0(8rKauzos3%8`0OY&~nct8z#s7vM(6N812oKzZ&HfOUG^6gEezG zFS>?%UdA@8;MH?j zQ>ej!*P<&p^RaW;jf5+8Zy;@&P1CPi@)wXLM~IA)^PLsYhpk|k+k<-_qZkMs3n-ho zh3tmvf5>|8Ic7$I&||d%Ts@EO*JD6TvkDkgPI4Fc5QUtgAwcy}-P39wU28pOlAlj0 zeZNviJ*94TN25k+C3Y-+C@ms@);uIh#ea8Cw6Z=npuy+@J9Ik4HRM{aXeSzVt>*Tj zaz>kk4^7e55+`Nwor{}8R@~QCi0nd%fNAu2ezX3GS*B`tV*DwK0j1N?(!2SNnF6$O1em}+zAST6`hw03zsiN zIdbJ{>|(-?6KSTh~5CbpPi^uA-`F zzz1Yz8vpDD`lvvEkmkGa>g>29?KRvOjIqE@7suHaqv70M4u&jxR`)Kc2L5K=X&S^T|WCckNTIIO5=sr1^U7A7wR9GF9V) z{tSx_2zdX>KLLk58`R}gQ5@)zmS!poSPQf17`B}risd&eQg?t@YDt|!nqXfIoccGR z%6JyKk6gIbKNe%nt5$CInbP7ue5sMz@$2IA(4;T{^+s7<-%rhaW>WiqGrx?Jcp96J zT0vt+{5^&S>~!>BKzMDj@|W|gpDF(!#D)bbKX4Vu4iW3o?uq+N@9eaG?S*4W-=Au( zdA*IQd}Nk4#)E~OWvyz!cixOGG|ri-o9n}lFYP@qC@bao(KR4Uq{O?ly>O~$i1Cpi zdu@`#*}sdjY`+#6ye||lclcB;@90Ip{90d^etyCaW>+eCQ~OliUpiT#b$wW|jraHT-(hv318VL3=TUhP zGX?f93Vy#jg|&OhJ5-cEx|S6QC{X3OHF*V{NbMoHm`ic<4D`ixRCRUT`nZDsQ`;-u zz?oAS!S_AdTgkDL>RN@J7o)N{e>Kw4_|v`gXWKVzrwBOS13Yxf9Sisu3<`fnxDD@s z{IaALp11Ysz06S%wX^*-0*U=_4vSUI_PG-f>jfGy54#kd?G&ra_W0%@TBHKuj@Ru1 z62Zb~I7;uFvIMK98U=JHk6sSOEn!+vmn^0UP>5nu7VJg6(U zq0fpB1#3TSrqs!jk`B;)rwoh6b-{hqY~DpcbaK{i9z1bJXYq!^Ucd+RCdcv8J>9p{ z{B8tr|M($)jazaKiB*|=2?@iu=;TO#)E#8|=S>wvJ?3-qXlB_LwoLB^H-tmOZm|o@ zF)7luyW9KGC+uKSES{eO_U!R-*}fa*mh%G)0tzgsTK}r5!1HR;^iZ(J3q>6aR=B z%<<0ggrS;i@ADO%SSfpnOD%oK6Kngpdh#Gote$T_4#5G;D-|Mb?rkaI$9A4&_Ccm) zisM&n59qM5@vV6KXHhc>BD=#{%MxK(V&2_JW})8}zG!-W9hx)g^x3LP z+?UK9=3b!G!oe*i8v={xTcCecEcdPY_0h`0_Up71JQWqXK*2lp=baE)7mfjv&RHBw zzv9|L!6)YSnEn^@g(J4p4#-z5!>r{YU)QGFTLGu@YaiuvqAkqGiFL==@>uwK;N#ES2d)gXkE;Y54 z@}HA?duz(ZTXa>05a&q(YDO)Zwfj{(K-Ug>23z>Ct>pgsD&;|izcG^=B1>rO9vr>C zw9d|(*VRY*W<5n@0e09p_bq05!0)b7{dwg%CXH;S&X>~JDEdT!4v==4oZoVONW>B{ zI$SOB5F3X(V{iR5xFAY?9LKtGZrSEhOZq|!gk^eU_P!`gF2xt-Ego=bD6`-p`AWT! z&HxEC{;1C}8a0)K==3wLr9gro5AgY$JRQ-b1DfCeu`T(Xl+5ljt`)mX_x(9Zfu+Jk zS#$i-h9vq0M_$Rv#N9mXFxrHKaRJtV(nVcJTDerAg?=V@7~b5t<->eW6@auW;56jJ zai_nJQ2NNwd`RHQ3z`tfY(y72Ul3owX|TY$Bqm0o2yF>{ywsBT*Sd=#`LDoeDrB#+ zs@mdWhN&X^A97=~JC_{Gn%Q#l#~fAorHAm|C*8&ZgwZJc+I?ueKFd5Ka0DaA+YVJc zk&aIY}4gB-ll$XACm5@(^_Xe&X3_r9naR(*M$rHfzTdjrBJ^ zR(M9+;%GKSFDYU*^dC#s0RD$4^Sh~OkTMOPv~}5o76yV>OGXBI-PA-Xo0C1K zACGw2V_`HwA1H@BnpN*9T_qbl2^g4YEtzhnd=qXiNRkFGt?#W|5I~-?ISWO0rLr6cn`M$^=LCszDG-KVaf5!W*@oo5w z&&=$VZpj_*p(dZnl>+rCE4z4*p?93LCv*jvo8ByH?_fGRBz({7lqr3MhiN6GQH=ff z;(U<3IDt>^MIY!1`psa?uWt;P)#zcwG(aIHxiiW;5|U6ZD_*Z;UH*0e@cHFw46{%t zp%7{M^#}L((o*;GzKs>I`ys3lZTEZr4sK$sO`zBy*+4k^V~THzhs_9^&b(d48*SyD zRn)5z&bqFg`FBLlKg)$M?&67mdhKIhf1?q8kb|H%H1ZfHx*$GN=E0Pm6uh!zfqV(%qP6t7mz_cm2iks*dW6l4+Frm6I%q zDf6y=UuR4j-7dt07<-W=>%smoXQnxyx;DQh7?{-N=26*pbpQJzskq6{><_FkuSEgx zRNWY1b1H1O(%fhn!C*5e$d}B-u;5g&q`D$sZx7p_@mh)dc4C{eQ0STUSgDhD0{XW+ z5i)Gb&1Fahr&n7;a1#FYgew`G)$B;E;d`QENdZIXXWoT(+}M&75C&waGQ{}am_&D! zp(bGolTi5GB*{8A%>&tiEfV&47yD_)YA2g@5rdaAO}4)5 zYquNX1{#XidI6Do4kbAbGD%hh5-cMSKiY5y-+nN;f}xj~ZPX8O6H%0UwoG22~Okolp zLHhS?Cc>E}plEYgB2v=I^cn8W3h_@A#m&o=NLta9V*58e9YR0(MGqlv>pcEX-@bq6 z#Q5+Gkx}(DL zNQ*2tQBp9QV(#nbVO!+0uTEum5e9fsYPkDs8ncYr`yJTjUtEWn925ul?tAgvKBBs% z>>teT&-l8N@AYa%T|jrj=k(0KojJD0zUHAI#+LiTlh}mLu*V69RaY2i-9KM;uKYqp zUd235-Vms-tLeUYO{)3)#e~enFA{(|Dr8CXH?`Y-M2?$f(+PqPVD8&dHG{z+Zlac(L;#z# z%}pE}rOZ(9ixbw zLBb!r;l;1`9~=D6N;_EiJ$&_yia0}p-JfuRhtE3ZEc}o_J5_#P_|isi{&bP`Wi?-1 zmYlI>p9!dic7iNhBe-^~Fg6V#v<=JMI`Lket$(r*R9lYm>H%ZyEwxIM_ zWT4thBnVuMZkSmZyD_MlTqU6#{kD880i0FGnW%^70!NVeEzXN?NGY%OA3_h&L~(|= z(^K`aQyi$-{F~}g+^VN!HOrvg`u8ExDGAM0S}Zt7b!?t>-da zYofth$TK+*+%P*);V)yo$tLhVfV7F~jg{&j!swLjB#iN#rTK&m3Vp}cb#VfZJ|ElA z%h31Fa&Af?ongy-8c(_Uhd`1p&qPvJcFDZ5NI#T%$j|cd#9_XqD>F9YSTKS*`t)+K zQIc%9_O@!D<4T7qEuJ>$?BD2eQ*3J#4Y?8}0|A?Jd}88hJ7SX$`C0irHDYWCU`&CL zcZF=PUG0752sEQl^KJ}8N1zh+32|uGy4uYh5gNLvNQY1eTUc({&&Pra%xT3C{Zya2 zK`rK$gf+y|j$S71CV>R{<&za<8EvfI>K37>0wdE8!(6OaMiXc-c6W$CdLnyjmzmNY zJ#jG;M3ZN_FkEHbTM7KYCHLx5>lvq1`pb8`(ooxnlQa63>RHEsC23&wkIE4i=c`7) zL+Q6vW3Q-hm$rNEGhNQtXHol-}d$0mE3z2rhEPd$AyKk=!XYSTg*jm%JgJRlvUV8-tMH9cqNjjZghUuZWF^G5FPVUO z3HCFNg}oS9_2I=%AY0Qvc+c|^|A-(lz)z}ezK!i3xd&3a^WPlMz4Ai)nABoTw;OGjCKIT1z$saf_CMF!H42o_KJ3-cW;}PUPtOLg zyjdN!-iF+1=)$}5N0t1hO`29)gK(;llI zFfL%@MJTTKG07-3v(rhYf7K7Lw&97w4v)gA`)|72|7EC~k;SmS9cSS68072z7G4kQ zBV}M%Eqai;?yJ6Gmw}DpKcSvDPA8ihN_+4AZFtscEB6^$%=}*)1FdvAH*Mv%c|YaS zS|vtg{Z<(N*|rTXriM~l0{dDwG{Fg6vo~E@6!2xK2sw8r=Z)y^;n<>qvfFy;EUA?4 z4^O|HP;`dc443INY9@yAyYrx$7M-)UCYW1x$DG*GSp)W~7w-!RuJe6k^^UlmliZtd zmGV>Xr+i3frv=qUzo-pMS4w|SPdIrFRqLZyBIn+ww`@<-J;kX0q=ZU{2ONZOb!@sRT@02tM!i{24Yd;S&?A>-IDXomvU_Zr%MJzA!;-`u33K$U# zT~OIq6{WS4@Mv6hRfqPMB5@zon?w6R3$0ai3a?Ae7GUM3mk>aAZN5rkUshW7_XNlMUY=kUBM~0)#ky3}CqOd4Nk@u*5o#DoMhU z_=&#HKs#?y?!hcp`z+$&hP zCu6%qNwYqnX&3NC#r>Kw&HskWuCVDLsutegriu<#R=tRnz0>UtJ{=)LyuBF_d%#UQ zQ~J=vXDM|^*FEPXEJ~{#uJKMQYGj3BFOO6gei{s6T@Kh3{RT-~Jm-ppg=h%gW$TY| zwHCVjPb*$6s%(m=;WH6NUM-ZC+A1Z7kjmT=Uc5KFNnv4nW8@X$5(+*c5@4K}Ger3^ zM%|Cij$o@B){?KGYtCu%=+8Wjc*ccSc(DOZH8@UF#24e$gQ2>b_m8F*UE|JE8=pv! zeWbX@Tz&$M1)l!og;HMZRTkvVo;Ac-tNZQ>yng7jvoZ5z0vyJXA`}50T&9eKCD zfwkjT2z3L(GE*!5UT)Na=5S4)nqCY@iLOwkZEJ>49CH}uEoTs1uV$+pt^m^@-=6Z+wb)S>)?KGIJkMBR_=W<9sRPOhAVt9Cq8dX3i%wz1hI^<}0V5QuwS+vL0;`GL1nHG%+z1tf%BxUr@EI_1;bPz+kC%ZGbz4id_n| z=Ga~SIehmvBF8uw!%37>V{ia-96Oh>l`t~FP_TB^sym|zL z=q=}WsVXOH(4G)`_7QPlvY>`}ro#jyG{jF1ZNdvY%=dc4S2?*MfrDR;K}o9Heka9u zzbf{fxy&?SYzFps{$>*8ai3w4;F44tD*0l1a%9ynk9|wz_#jRsBXliEzj&XKD=4sz=S5?K%e&Umy=AV6W zJfxzG`47pyB*wFigq6R_V0E|SKK%D?noO+x&eON#3>%?o;j@)8+ionPX%ciT_nx3* zp5G1qYWR*_hsWa1^(#8)Mv*|in4!i!m~QHtjQMK~vNC4|6C`h|9Q@<@N%TW^{eT~7 z-P_ULi8L=k*s0CYO{wP;Q`+?53(>~+U*9EI>7eR43_czA8=Q-b&Fo3v$KwE?R?Ea$zeY#ft3f#&l+Ev-Fs9|Qf2yjPV5Q)_EiQn>kxu^d!ZDrj^5G}aUX{YMWGEKC`(6>xv{@Gal+yYx>uKrndgT0riuZe;8 z)T=Q8(OEV!ta%&IpSky)KK0s1)18Z6SpLD&+kgbT12uHcDk#*W`M(eOm$7Gx>DgA5 zHX0)*q9u@1=3arm_(SDN?9_Pz7o0*Zpllze(?~aM;`a6nWAEiJb+G?)<+G#d#6Eb0 zHYpXAi9;heU(7e(mHvi&c=H;xub}mP(W-hFscx#$Za^<9m;n59empnPz1~XS|A~}y z2gAhHS30r_=W{Iuwvg@A+-;_FML}C=_9~=G!RwM|lH`v4mnB8{*bNrby+2HGPE{R( z#Z&ulG0dByEMFDp@YDG$UH6`RPddrjduF7>&>hBwwTGQGhAoG{NLeLiqwW`9L6_|z zLuR~K!Yfg4LeVX_EO|S+aQo2ktCr?rVQS?*r*QrRPV?j91;4jP0JSJ|Hu zo$|-Xe$!qCAHUE9X^}xlkNqjN`u$HWu_D12Q62(d*zh&v&Mn{(qhtvT_{0F+dH>z; zGOszLPu3>6`mF@kOyrZWj zcZ^G!5>~TjpHrNoKZUZ(=VKChI6kY40mx5G&I>RiPgNi`M80Irx(|1t0}~kY z-@!vo;6dJ>S@`+ea%-V|grpDo@&rs`_p<@F%krmfwzvTFuZ~MT`xZ_%VO_9XF$T@qxo?vbbZ!pWWra@r)1IGcXj*I?orsMC(c_peL&NyCmM)mC zBa@!*uM1Wi!VQ2Mdgm;uXxf0@oe32m8ogypWwAY4nb!G0=Z^w`2B2;(03|=v<^2p- z&J^_E2@8e}_Y@Tu zkaE^D2J5bTt-db@M$_;cpugeO!X{rW=+-hB#4y}f+X9AWpf_o&(Sb7)@Kp3-IL+j+ z70*<`d|rrN*tAe>d`$p}Fdfrafn!wE*^_tFhF;^bY+*l_&cUr9>)O=@K?V`OSyY*p zFUP(W6V_NznYp2aCBAQK{ku3yHRe7bT?8R_6NrCCtn!HJL;i096EmWPRov%H5dJ3jsFg?MHlyHQ_Yvt#6GsSJ;3)0bXkAFB@Sx?MAW~OQO62vqLY2F z>6OAe{Zg8WCfA%WvpJdjG`(mgErw|917wvvR{CpsM!0^d=5FC*c}K}pg63AwgbH-qsm_6;&8w~^M@?pdDm>uP5B zzO13_HK6_R*`l~mKj354u}NpfYplQX#fT37%g>nTByHK^J}#a4rSq`)6%jT4U6CIl!(&mIiT&`y)Jf8T!RHsBIjK{o z7y>^3xPYA&Rz9#~Coo)mmY;v<9IrJIIvC_?6% zwN@QAxC*88*|CjFb(I%W-ig&3ue3*^DqePY#wYc}?Jt_x z@>hLbIuFu?zWbO_X0${Et7MDdSNUBV5Z8cZ6a229hf7J^+qwox-U-z0$9*j!mcKr5 z4@bV&T+^lAIw?^AXj{Bid`oK7Fe|YDHloo;aBBT~W6W3f3D`6v6H@A4+~8FlIs3k# zX|OI3efS8oC-2C_zL(>bdm^?_jw=sEDruPZLJ3m)Pk?Ye{NZ8!G-Z_f&%8#}n4duz zl{CG%3&xA5Cn$4uFxLe!W+r;a>dzw*Sb^uZFAHQUJ}eCVDdgTWkmU?Ic3s5z`@D+B1}4xuiE*`2>{V_Lyelk%`Kl>+da-P^ywZRxkamT)35g?Mm{l zO?hTLr;UK5`#jwOI3yhfg-Eb)24>2Bm)j^4i~?pcn)!Dy-YaDFQHODOSuKqrV71 zPyPl7;V)OUik)hF_|Ae8eQ(xW*cF4QO?0ZiVhl@BD^dzgjmQ5I42Nw4PoRI2J87_c z7$}*1VObWQW}%ql_*XtRc~`xy>|mDWN8lBC&dftG>8*+H^n&Y!WNeNVl#%?IbSx>q zJDyXA)8e>C^TQ_X-;Cw1trnjtTLo_BB!Mk=XDz?1Y_U@#`aI0uYJ4S5)X9+>q@n(U zvgjvN63ob0L|nfhXhVkx^^O1&Vo+1P<@1B}R=2$YDYluEZ;!$i2u%ePaK-*Oujr>Y zW_T%syQ~;)3$eYKGhd-rI`dby$f=MkYF@~fa=QuJV5+s~s3<^w9no49^d_22N(zaS zIpI;Q(Y=|M3;SUBivSR($Y>tIj5){DfLIv23cN;Tt#zcg9#jwYk31TgaClZi{mBbE z+O$;IuU6<|qzja-c~5t~wvVKa4p<->C*1d08$UAP4HBt7E_ipXO2iiupKCiVD*M{L zfWm3r$@NS^aw8oQ!$aIf9fWE+xrm6Xx8+3lx0c2gdn)7I*~HOXXYuFH9&)ZSplMmQ zI9txGJZDlUG225soQMD64~CYTs&$_qpDM@&vEMWdbqW9KdGV`+g5a1apJ5Ps;1D4N7O8bd|*nk|R8q2(ul*t#OYsU3_W^f0#dV^A4(iA@T3E^0Al*H&W4Y>vq_$|_N zt^77-c$#P&@H#2R$0@6j_mYDG{odp~=GxdLWaC=L|F2z+v)PNw)efSwh z^CPRb|6e5^8hmo6P}NFvcNp^7SanfWX5h^)zHQzT4fupj;$3uw3XBK$c>MAgcg`q5 zipoYQclIjV>NIMKuVLslPe)RvkHsRMNQU=DqwDj%Io0QO zzs@E0Fk3h4(fh>icaea^Om%$KQNz1b=Yzk>zk*TwyAl#YvX7-h3EjyD{Z1{L}iTJ}@Dzk~4K>5#-mSa6%qW&d*I zhKX8=nYIrMz9L9x?&@j>G(wjBfB+fkvc{9F!b?3lwC{gU-m|?->Uw6{@0G&pDmid)rXASq7IKNmdLj7Gx;OI zHvo_Ms*E+wjNf*y z9xS~4FacPLnmro&sdU#7&zbMJr0xDwYuwICS>(-B2qJ{a-imWx>$)U_VPH<(iW@cB zeA%!5tVQi*F??p4Q8l9SDXU_9$^5@c^U~a}@t$ThWOxHzxq|KBb(N%#sqG4lY{4Is zoYyeq_fKu;>AK2)-Q~L_mtK%UCAG6Hc0^TR2q~OiJcu}2nq`vX=nL0POqXaItV26W z?||~YrLh8dtgz8l{|(roj885qwl9Iw6AGuK^u z^RvDema=Yn`-;>J5m0NR2UgI+&@{niG4x2rdFfiypCQsuQYWZV^54o&A5=U>vz~iu zA>^M9VE0T^P1iVjD0pvKumYYJX75|?uhM4lS$eJP zwqL2>#f_s~c+0sH;M9zS%g+nf%iOlDlbPOxrS}d~>eKr7q`V<*atAieDl_=v?BH}<8ZvGrCx{-QAF^1%*WViX1x?#SN>z^4tc%hOc5VOY zm6ut5bJje$_7(Emiv%0<-GQTMgY>63T_wne7gQ%`th=ReoPsUUNtg-uFpM5c96EOS zVvF4-!u~6J0cC&nLTl11TF`b--cqI6z1vAfF>qoz?N&!MEqrDnW@1Pz_hj2wkQ1 zsb7)V|9rl;8dB;v{7d5`!T{{?MO?>>Cmcx<{ML$)4J%{GzlqPI=|)ta7r-7c-f`2} zA?T+m(_%i@OLxg{g||W;5?8poF@FDG6<`sEN1MY90Az`Qz<-1W@)yXJh*FnlhKMSH zUr}miar-ZF(S*N&OdcmpABBx3-rf>6j76TOEW6Rn{d3Ta69nU_proT21lM+7Y&ZJT zhMcs@TX_`2LexMJzPpr*h&|9GN3mYAOG0{&`4TBP_oLi^rhZ+5VM`^2nqqaD^Ly@E zWOorPFb##MJ4{{kIDZsVNNA$tiw)(FEpeC(oAy{`h=XXK_1_=y>JWyb`LHK% z`l4rF*IXHwRH>nOY<-@Z% z@ENFc?HX|*&DAd4i3~`$S-8U@<&}IqfqwbWt8w=U`jAr>_4hL*+7K#bb)tkzPg0im z0YXp-80+lUiQHLgToZ%>^o-aLdx_JmA!f$z?GpOaTTK6Sk@+`cbBw_14@gDz{&%Bi zYw`ALHnBQleR7veZ)W^I?JO0!o4TJ%Ceyg4?0_F;@BF}Gkcj7p?FDj@dR5X!Kj^}5 z33a)wRJ6#(N!Y3PC3WJ)+6=$JQDDm(=s&#GK+VjyRV)IuyJIKo{cPIjVjQ}%vvI^5 zb7If3dZ!bfAI$xQ^2t9a<%6djFx~`>c0H zh%bI`pr=QLWuQ#~r~vWbG+!JyWG+#a;6rp?AC?Q!^vpEsU4C3K+`t^TNK}pgY3_WR zUVJPU55_XoPBXk{5kq4yIB;XbppwA_;A3oc|G+DmqmUn}x%)I6JBotE_X(&XLQCDP zS2QaSs5Bt^){^V?fL>m${XHxKzSH=3?xV_^J1fo)>&Eixh7-rCe5Q1B@P8{xy!;|H& z`FqA+82&=sD`Q}P&esJqWwr>rh`?uTX7ekOoX{$AT8R+7+gd;4)4|A?2Q*FLb@L4q zV(^%gpW08Ip9rrDH%$1|>t?^j9+w7ae0jgD9(AeD1n9B1XQlxoK)Uz&_r7+=k5U$= zRpAceRc_gxvA*%xK7HE>Jj#((GsSc(mxB;v`DfHUcv{vbSv}Qg-N*thc9NJtobvg0 zyrRL5vz9~Q_*p23a3Jch`LI%9mR{JX%CLcHh~Dp1`1jeXaxo(LspLWvW!dZO$y_+!lS zrOXafj7!(x-2k+L&vX9R?5Wd35T-z9!(8qb`=a~(7fubz?`C7n; z&9o5MUK-twhZ6QFyhKkymlkNtONRNA$%h>+7pO|@kNm8EJiMzUS@FuB&l=Phltg$Q zNrQLM+4xRU1eH1u2p^r@&Wg8st&JH4u4B1fq9t#L_*zT;MsJ~o?wU6_D-@=i~x7l&D$UP<=zqJx}tCHv+Afba^*S{aYDbp)45Sh z-|?Z12oaJZW>8HK7rnB3yzrIfSV}BKD<7Oh_D75>-D@l-d3@rqFOIk-rr~k`bTab zTG)Biy5Bucg>FfiB%|dD&m;dQWuP%=tWV)P_h~N9Oq#FBSo^mU)9Rb(a!0q5N-p1u z^^dKC#cPS0c!z3illx%O9E<(^B{ra$`*(>NRqCi4^}}>Eeo>{m$s{(;RzYD4U3gkpF1V4`dSixx-B5$F{AKCmzTpHo1TlsB! zRq^(!ktF^G;;usX?~Sy;5K7;%satA4?MD5Vc6rHTMv30rZh{z-;{iRq*Wr|r+Znk_ zW;Q>PKW>=qsxLD`q>?}6HJ7S8nzlEo_9FtvnD#8CzfZ!cgSpx+81l!vx^1P;+{6mH zSKZ{?Y=vv7w0Y2#+&^@qE1{tR1Cd$PpZRJ$>gwg5vfCjZ2CKy>j zy**#d^v=KI?I*>i+9{W|n$3$mo0A;Lo2=~?9 zv3h8*3)S76ub|K8F|FjtQ#8X=(m42xyC2AU+CBTqs{7PR%YbI}wu^~&;WzMTW)n&w zD|!IM9n|mCrHdg(1|bw_UE>iMNr!MsTg14S+-`676pouUPJI>5sp5A{3|7KRe& z_I9`LpLn-9HQi&;R2BGR@@*rYGm5INbu;s90|(`@R@@MA;%c4q*dN-lzD+_=uS$i^ zr06a&=wG%mlpW=Mc=ECPN$fr|l5#Til(f%NF63EI+RnJTw#DpR%UTg_Ml1II*P?5X zy2zL5k_pd*E^)gNkNeg({!LYT2J3=0BIu1lDFbBYQ%CyGn&axIxrCsNOL*F|xPick zcPBN6l;~M7QO^mO1nxK|v{uGnb<+5${Y_-Gxc(w?0``^Py7G0fr`#@%y|UC!sm zT2c4o7r`)_dS7yzATsS4Jk4iW>a!@cBOimhQa3AZZX(@dkTY$-V7=7!`@b985ZBH| zLNoSxYZcq0^BX&9?n)Y9-B!_N30l_U)3!+E`FMw(BHPSoYUlDLx~UaGaXH&gj2AshbgZ=d9*kY zWB^#3KMVSGoQ|Aoxci_~A1M6-*QdXPu5w@X1muImS{R^=Y19Ug#iF>7V&(r7-a)W3PggUFV*w78UIe|-3jWfBWmnB9~rLedU9d4^fon6d6r+gT!Hw+);9;L4@FnEL@y|xAFM`# zh@n^K40U3G^n`9~2PG3?|4` zZw@sGVD;7qdidn7qJ&)sHwd&X{``fC8@OY)w~O~_sbs%S*=9|}FI|>}BW1RSbes5Z zLsPldMMg0!J8GJI8J0`>>~nQHAcNm$Esv+H8QS=E<87}wh$S|g4}+iQ=2lYRjT*ql zlhW>XZNjeYYbO`r$2-vcnQG5X^Fv07@CCbG9PVM4h$$u z0?!;HhPoltS0+sUIzZ3ei7kn50|nIdJ|{aZsQ)ka+y7gG@6#0HE{qrc$C^I;5BQIQIP0mj8R?m-d4vV2w%x4>s6i?{gno9^OaamVo= zLTMC~=q-n{i(vCk?%E+|F+i%hzbWmnexA)IC=YJc; zfIX1B!lmQj>&F&(g2&Gr7i;zLimGp{j3Ci_JEXtSZKx&CsyN;sJK3Mub+5;veAvFA zoH4KyS2?T!SSt4YZWqc#MF9UsGTE319ZSOLCCb*p=r`vx#^M6EM{%W;flo3V@V66z zNIU*Ty!4-dYgjj|_G@L1kM3M$TdJ+--REZpG29l6Mrzw;66L9;fBwQXNA4s;WRxqJ z8v=+*D$UoeDum8*dPQnOn%gUA-#Dmk(%zRc@x@YDlh2Rx$<7&kqSLjmeUdz*53ld) z{}817kn03RG`#SR0SW%xq{LR311>!fDB*9YL(LhWKxrmKFohscUP$ns)|O{&@NDz3 zU8|;xXA=c>U#;eu(?arrg6BLssftnFX!Vvuei8^(L5dG&sX$8TbkLlYEI~;E%Qnis zz&jTPepKJUm($4Co9f}?50{msjgpXG@jOqK8WCf=_bUMEVjDEmyOmJIh&z=E>yZ+bE5~wxiTe3HzBiHfE|E%h-eajT)~4MPK2|l)xIoz^4)+9 z5O0?Fuq2@Hg#!E`KR!Z!1FM<*8_g` zNX2EKA+;P<-U+njV}1%?`DdV#fz_qQi}uE%cuw+aQatIQnoPRB_v1~r1(h)+TKq=y z=M_U`;EBmDutjT;qRwSmdXPLeZZFUQ(G5>MXBM~z*T<&h$>1SYS3N#E(HPqh<1*`R zs8Kg}<7CthP(EX3N&EhtU&Uv}jgbimIB zsnPNm&c1}v;<|2Pgrc<~gT}>I7f|`Q(`^u7g{soS#b67XN1W(i739#BPnF47Jtt#j z;JP|o7c%j?{Z@$jl2zv`qO?a^UWx6GlurYl))Kl1HcX3~(iu{%9@K_URdR|%`kx0i zYos+EKTLmP_v=%#fmM39K6{Rhf~{)|h04MJxkO-nwOy(cc|I$6^v~CW@0ZSIq$-Tm zayVS)TDddvB~Q&PV7iYa1BzCm<7dKM!VUlp4nBv6tb&&}F`$!GzXUKb`n$w+{4l|n zihGYHoI7fP6f{Bm_%9Sxfz6ii&A$zyak;}rPt^hYz(1t13j@qSxt8GwR4M=S^f*~EvDeP|dA2ie z&}HI1SB-w+WbmVo5I2YcN-w|`=8w2_vQ}GNs-!f0D)r7mk8vAWsORax6j9Dn+F3l( z5U43piwO!2=v@rj<(;q!mxUQ-;byr&BaBi}zkSFqgc1^zN)KBV9-4`l2?#gmPE4ZT zY?(K|$+NO$yPx|sY5@I~a_GQxsEQRs3(Z`+tL|yt^YvGoW3L4J(v-WFbL$s{S3LOu zt<>x}%6)~j`|<`tQm^C30+*ZQKlFx7T+^-3#D$&W*i%%;+%@RL^-< z{_MWbIig+2|7#(NJMC8hj-#kV4a|*LcvDv&MVwKR3@EvT>2_+VfgW%=gp;tcdM!gTrzK=pXk;m~) zA|KgSK4&_4wxdMj=G8$$gNVOhimpm_YN8IPo<>Xv+Emn#ME$$SVoVpx*{I#jmXQ&9 zRjX&iI2my$Myf7$+{F<_I_p6nm(g?ly`z#lQ%bFYk55D%jB(CZ9sC=3l0~IL z`_8Xd-FJyfsb-#$7-8GWY}lX1vGwL+Vhen$94VGRs^1A49)6IC+PvJQ+>(xbVnu56XF!G^ize^CxAui8?-m@ra+@ zUSmV|?XNH~{4bfM9RgY8bqg_<0zb7#&c&wynYUas57;A5vaGTWJ zQ!Ov8!DEST(L?RaZZL)3o<`a`$M`@uC8G+3`pv{UOuY$UADFA4Sz<~lg4eS+vQT)g zE2}b!CC4?;Su%fGH{<+Z)>nIIw>7vO5XtqtGJrlVa6PbxZx44`a z6TBnG-*JZo53D;qrg|{;Fka-^J>GA>l@~Nrpz{E(Il2=L}B%!DfntUcKa|@W{*Tj^3Ajn6*H@T+#15M;f0DPn1 z-Frv01L{8A;O6U3qu_L~bRR)>{hx+6#^8k+YAYZ%Lo80j>dlK%GsQ)ZzX)sLD%wZ0+!yml5ymKM z?0w7){eEKs7rImy4U(>1V}9}95U7c0xx>zT3{%(JgVIy!sU&aes^e4pU{h%GDX<2H zA+e?qntJ9^%wWt~uxFY9{b3@~G&Il^@Bwd>0ma9U!2`a<`GvHm2S57LXG7q<3Gu_hoHc)XH&=_QA~}=_n?9DY`%y&tGppUe{H9?|^BWs=lNi}doY=B8b)0cG z(gyp=Oh~kxh#Tv}xGe`bWkqVI&A)hO^?p5GC@7XI3r*`4Po9vYUzL=ys+diK6Rmhj z>LV36qQQv|k+aE^`1CkH16TduJY%AtFM)rc#HDa+{zKj%$g=3TsSxTT5PR_IKQS%g zhsW7POkp`#`0IFWKH&8-pjgv?kb~ZrV{1~~V=NyZTFCyyDYm)Q#0%)Nng&=W#FHDu ziYaFpb^m76uA^eAopCFg_7;h?N5;dq=lcyRlW=y$t{2x|IJp0u8U9g>DO(K zz2fPjN67=%AWAHgcyUA{i?Pe0zLZ}GKV)>qk>J%hVl1+8{n2sKOX?2SOD<_@Hn4*>D?8ro3UR1 zG7`VVN)Bk}$V$qdttzgSIaW=Iy2NKXCBWlL;Z|Pri0%=ypJxIaE1+*!oDdp$%>Bzu z%%Lv^ghiiPt^x?cG>$T<#)4+y8i#~*9u2UamJc-jgB0N*djS6wKxP(8teIxY|S8L4xM&XN@p*>eXj#D9- zs=r}R_`ME8V*jYxDXD;qG=HsE*awFe3>OIp#?g>J#35woe0L!M=SEUj$p%>b9|PTc z+8IwHIk#4+TDOl-SoiU;|IFZ7emc-COJ=+}cQ$J${@*^TyoZvi&Ev0U%bEdv2c@j+ zN%ht@Jp{yUajeG<{C7cmGmVmhKuMzX^G0M^=+p~f37l+(JCv;V7wVl@T90b`HF_X) zXC*`Y(NH54w@wBRR_I=A=12NgWJl8?v^a)uJIl}c-=kObaX=4p8BfclO`aANPT(An z5!jV}VLK2ytnDOt9Eu>ubD|Tj7b0z}4v@ZpdxGTQw9Q+}o`3I)DG zZ;06Jd_(;kAl%lg+`B8H|8}N}#IV8wJ62|Kvvc2q2|q;Rc+1w92uK%ZN-<{c zfA?QnXttcWbGHiIC+rAd&RIgWpDvho`3))T&sN?&MCL-CjL=ly#{t^d5~!>otJ}b% zJa438<)&f;k`^D|fLn&-+Ng{W`jV!LC+SHd6shDS1in!>{rYRhV!{b6hKdQYmOYiN zzkF1C&j54F-{@9|_(=`T)u|;47+Qtx9S58u2nal()=?^_g?h3Q+|@V%z0J05R}Qzr z)lBxW_%8ibz%}q;Lik~zL~Lmsep+09Kj81%x0Aum+)u?ENYCdgtBQCV8QM2a5y9|JdQQ{m^0Kyz|L$B6aA&w&mg_p%+Sqd>MZpRiU0)nK%Te2Qr|Xb< zNoaXhyZ!{+98IPg^l4fs9&46@PFq#friLpK274q4VR`V1NW|BkVTA{m&$1(9PJ)cO z|D4oI;G-zZ1M%5AIi1jvGe`xxN-XHF8BqZl=m7Mza7Uim)MjbQs9fbDSV{7MS?b|) z3(3vcI<+pt!ftypmP(O8p#q{KK`r}7`NB7UvW0`hS_k+FZU`J3VISKVReTX^eQcQT zYTG1aK%8e&=foo}`Ra$+yAn2UN-8iPM`R2S34Z;HTdoFro&gq7i;NfdAM(B0qRx9? zZDq#Bfqk~ZSemF{N}%5=MAHkBuj20WtQy|KifL^oIO~|d_-uy0`$JDcG!+EpVcjLc z^I6-j@n4qZ0(=p$hUc<3gL0vV3k}_tAxGqhz*FrXCh$OM{QWngD$gaqOeJ}>>;f+9 zU~hc8$ftFs9`h%CRYv>QVN{=1LydHRKey|=&|_!-QAp^DXgU2uf1=X;&CaaIN1HUt zb`a+4peWn5D!!R^uTL5)rPFVm!cz|H*3nQdTyH}~?(W?`h*5~hbSuU6Spguc!5dF1+*|NZdyLy?t__UsrH*Ed5?z7}#bK_z!EgaA z(+%m`uVUrh(1i9t`f|a}yXav>Xl?f;Ir!#vR?3wLfNi1<&EuI>k{$n+M}CF#QE=r_z|MKk>GX5 zqR8?jEgLl@J}#l->M)3LvN#VJf)V7kq!&&#gZw!zf6t&;%Z>E`+}Ow}&^FZNx#t06 zI3)|SRl-Z<1|!cA>OYo!Lt}%H`+Td^u4?{ za10T}E7Cz$&ALFxQ^RlLjQz~(KT^lZW9)lyz(F=iuB~zc{(AY6OXNvPp~$aqcgXlj zHCXTWfl0sKveUECF3@o&GGH#n5!L*_*CzXYfG`@d#Sptt}o2IvpqTRYpO%>&=cBoocF?lM;_lk zKTD^N;w5y>(wjetTi1;hO@cpi@r~|$K)JiWCTcssl}g;YcDkY~eO`YOTMe!JPeQq6 z4Z7YIMd7SwC`BePps*0DT>7bj%gOk_`Xz#-))tPt*k4ER7^}WIBC`t8zlM&aby|!` zUyq3S4y|vY#seD#ejbSZF=Y2WOE@`&WxpDmc6hRKNTaDGde5ojeAbqw1Ac*LP=@*) z)T;Ut=C39H#-cLB$X|tgo-f+!rPbwwUoX2fxUDbLt!wb7oX?t-wEJE**|YpU6U9Lvqb~8Q zE4Fc2XYBqH6>djY+iBA}at#&%Ge)+@oT(G!A?L#p^4Le$xAQ_OmM}|e5ox?h+-WZU z8<|DW8#&BH@D{2uK>(HGJuLRzf|4-(iUnX^_kmq5>NJJ<;nI5b0V`Kq|ID5F2(~pV z-(9ZEWE1#jhATcA+!+dpxWMPKC9wOf2JKx(62n=Zt@tR;69VW%`v?@KZkyeOpD>|+ zdrjn}xwiapz-!?XcSm#+-yI?nxrC$VlfdFx4!gcIYV_CDtlSwTC#m;>`j!W%LEZQV z#Z5SSKf7PWb!>&1A7;Ten#nxbyF2L{==|)A0Fo0j@Pk&$<8@oE{;}K*Wc?=Ec5t#+ zcOW**Isa@2gseH%zgb@u|x>nqZlm3kSN!d6edzfr6obnl|DNyTU2F1aX#`CDs z2-~CifL@=5?Hs>U-_w6BR}+AFFHrASUfC$**8vsY*e?LhH(~XV7aP|B3fNYw{jw^K zt+Qzz;gYDvF#v{$if2C?f_r!DTiULNMqWt&{KxE=tVoF~T)YRsJ-wa2C-_UNm`j=R zGCtZw>?R6Bt{3JwVNYxP^}HfFz^E>_xvb|yH%Z3$xbgqywmxdNyELzt^xTCbASh@p03?!V$yy=SDlLDmpQHwj3SthmC$Mrx%?7 zA<|vxzf}%Nnp{P;Yok~YXq6UJ_uXMaG=w_`_S)(+V|j>WC0Bl@d?0@l8sgG9d!5Y* zdb17lu0mtZ+-8hSQhzfrK!!z**Qf%1Xr;hFr}vl3v6nw=wsfH*Qm#SZR}=lY1+ju~ zE}aZ}bbCKXJT`d8ZOaY4O=Ut%PCv%6wV!yeB*)Ed-v3l^hy=`oFnZV$2PW}f|K&E? zV3J1F4&1hl7HkqQP_}ki!HwGfd%BpYxvD^ZTC-3;bJzMLOWM2ba|wBMd+-@^SFvY>s3GZijc1 z&kAk%nCa&4hW-uI)C=(^lowLLYY8~LFwr&1ooQt>7> zl>>Z_BOKGfqo~}19H1JS!e}&jwVVv`Z|-kGhwDF-Gs>F>ntr-f*yNb#KEIWg)^^ld zZsEB#Ge(7de$?KR3pJJ$BYLFwg2#c6{oTNArj8Ve_QN@MZo#YR)%BMaqp)6 zAr663W?`1!RzL)d%PlClhH!~D@gLRV;AJaC#4^USx+0H!XF|ejv?)YFdJShCsdDwIipB@oj0Rh4?OnesNKCvhvKRTAE+mP z9C>?a>^Xeu##_>p``AvyR7Q;Va3xgW)W-iL$sRDiQh5jjT(0bU?0`aOR7%CiSIZqx z6rRWa;rKw{8j&{6?v);sjG~c@?S$Tli-1llGo*A}u9!;&DxD!rxEwNjN1rWQIL|(f znm%*3WAk`5Z%j)Sx8Q^zV z6!^92!QZFuYapR1MA(*%v|r!fMszY~E8)$CvkV=sPjkdcDbW6iHj2iSc!kOCe1!t0 z?2|TDKh?YD+9ul8a-Nnah7G~MLzj~U^*28iye1rDjBQP%J9>oh%YZ)ngHc>TR`8fH zl*`_4!kWdCuDT#=_9IGVz~Y5lch*mWr~-3k9~W>*i0UoQJGWmIyAdSQDTHlc0c)=x zO#0_tQ0wy-9{$BxnNs~zVL8H#_w$^=gW%M@+sTLB58EI}b_kOcfB(>`d)4q8y?*se z>G!Zoum7RxtK*{TzONOOE(rlC0qI7%MkECU0qGbJkd~HaL>h)JQ97i%B!^BV6huH6 zU_eT`hGAyzJ3imv`?>$moO|v$`>eCq+G_*K)`J?h>iL6QN}`i}ioM_^4C%qBK~d&R!QdwXL&u+{CjT{TTY38#I=_%L&JchW zIsMxErj1Z!mHy&t0ti0psbA9x3cRl0u#!Sa3;FN<;V`158XoDUCJ%}bPwQSr;5p-q z->MQ2KeTeehi^R)Nm4k)wGtnj-gRV1#0#4t)r4sr7ip}5LVHt{IJa+?YmUGYB4Ira zMCSp;JH$|)2inM+lVo5rdYfFTZ>{*L%NpiN@kO0U!8^ZRvYcFksBQFReM}ZCqr@p4a$Ep+kD{bp@fyvOx|I)E4SYqJ@$MC??DEkSN9Zl2|49|pkWM*- zOm^mUUk6cb7qlzj7*{t%l$h+lMJ3@Tnp_81+ zUj-~&wkG_O+1I2E4KtGNv7s+D!kImIlQSCB`>)Ic0^e1 z5X2PGu$mik>me6*>ICjs@JUrXUxJYF2i5P8BnyY(+epyghUp2-!tpH6W>Mq}oR253 z27`nr1of8~ljN~KxPHe?L=NcmPAOn?YOy(MbPTY2tk?3YGF#d=IpQx^DmnFt?QZHx zM*Cq~pDpYamKSKS&!rZ-nXmE?WJh4^7E|%8ki*wNRd>)=nrgc#ugYq z&sf9xY^c(P5ijKg;kPRoa5MsHX+4ly{!&|>8)8ssdhq60_VuSL*q}h$5vxa77c}t3 zh3no(dd_3VELVp<^9857 zl(!1^AvajBlYu(`4wxtT7u7HIfj^*&m=#!*1qS)eEwtvA9k1s zu=H}54Cidg!%=Oh3zD*=3QADgtQvTDToBp58q~EquYneR{pRtHFfm;a!j~yJUxcS* z!CHQqfa0|CRx7j!!nFfB_fO}}zj=`j^}~64nq43I!(5R7DiOl>xb4^X^qJ|f%LZ|< zK;8p1=g=nxJy9KI4m^i6dv6AvPiOt(Ps z?_*j%kp(R!=BW2f_RBauD*~7N{$X!ai2_Wq>H4=~5u2bu6)bW7ArnTnc@6A+qE`HA zAqT8y!c@fMaHb^;-K!~$XAV_vEx^!5ivUf5=PVq1d39RtR|E%r1F1D_1kWU_ z)7KKc-_}dlU&E(U8m>Z@pP=*rkB(jSM4sY6MnwC^#>}PLNBQh>*nH!^ZVqzc)@xo9 z%QBjP(WNw9-a0>U>q9MCtT+h2oM zG5O-#Q?d@bW!b{@p$GfwTQE5y^ymWQwvp3uC=G~o3wAdVgxD2X=fS39tGa1?{I)zY zAtQ-Vwx{5Uf()1}_71ti$_NHCAWaAFXsKl87^7K&~eRxDU~z~r_b z5XC*fHXli1H#4n=3}jRtJQ`pNJwmK^`Mn1M;E;Wt7dl5b<=IuWc*iDAqeGOlVC-q* zM;!<}Ng#QC;k>m~tJs#1bRDvz=_=*G9555^u$YbGgv435!^~rx(+5~C$k&PdrO5mKnUGWZ;65$ z+1@(7sYRAssoz={Wrv7be(8I9eB{E9)(hR6Y3e5sIc-zd&07S6x5YXQ2Dh@U-ZZ@Q zFNQi_IdP516)TdZ7@Fj}taoA)q!bpQb_n>G!!_j*K(tbxvj?1i4o)@U4YdB1sNKfhFx+}q0L}@JlQ=B4v`e&PwN#5s^KjGd@#&$C_Gul>t z+d&y*OFtI!g_~xjCdj3En<;Y2=mcpd6d2jwe8CcAI#KJExth^2X#g%zmu1@+lMF>T z_U&ZR_5{O;93!W7^Rg@Xan<5USa>p8W<9ci5!+i_a-gQ6ElA8FRCjYQsqqMw0&|P9 zccsI?EeVwH>>BX91tSu@dVcz;gx^4rGSyLJArELj@pxKOM|`hTW|shgcp{@^OQ|r~l>=(ep1h?MOZ@EjV`Z`zni{D3f(N4{coU|?^K=(U zD55&;E25Y1cFl76^0V8^5EKWJ%zk;q!}y@Qrwjw~JdF)i740klV+3%OLXm zVU+nW^eHwz1l!SwB0z2vgK|s7+?T3OOB!*1-_skQBse$`i6!33T$&JP1>{}5`{QJi zorZB2K=2gSCzS}j zu=Z!ImOQ@|_L#}Ei!KikSDIQlY}ls`1{ zV(|XgvMke1G_oATSMECB-?scl<$D1!Oi#(yT8==ep*)y+E|v1VJUKp+31)9s%N*F- zj@OV_eo=6sbk?d0IoSQ-aBD77A4g9zJW!wb>i#;2`d0!lZvrmSv2w2RzQ`145ih)e zBdLaJU%SjHdG7_{%>#{w+X;81`=2I;;nB>K}9srW?M2%`F_X2M^n=0vib; zyFv#mB^Gxip;VC`QCXrz{{mgu(aoqRrpdki;@;OfBT+HD)p{Y` zNd=Q=F}mKE1Is%$0(t%{l)p`oil?x$;rr=@0&P5v&?qlEvDy$HStH%du`68b+$pbY z=VkivfD!$*W^uc!ow9yHKzkzg1dnA`7k)H1QPGG6A4*`oIR&K zl78aV$q?pi8jAPrd|=zwaa_WlY1y+5c1XZ!_v4%NW6QQ#>UYzX{*S^`vGKhA*pBVD z>yIz-AU>I{$Z}>3;e!8)Pdm8|15x|$SCgkJN6h7%fBh7EH)H+lrxbdzKS<^+olnPq zf_CQYc12b}DYx^EX@F;tewuLzJFtxGdUze9&?udl!W^BS#od9v^rd;ELA^t#}b zXUk&(4${D0E<||C#J*$CqdXPzjF}pV;qg^nWZZN&ZdBo%V6GIFcn{EgrbHTJjW4rY{)s4o2&Ci3x;(v&vsY7-&lRmPqr52GHY3t3{^hSlTg5oeOs<+Wq$;=f zfZ@Xnsa2a2@3xSjH8)C)2tn9uJ?d)hTM}wYgx00?eQsyhJsAoiGRJq5jfh0PXDhDZ z0TYvwW_0LziJ~)msQT%)s9Q{oM8bF>e$F|V?JI33;|kWgEMD9X`J!!=r<)CW3Ao5! zSv(5i!wNsQBd$uY=%Ensy7vqmsVAwy7C>740(-Fxzs$;H6lZ<$$KJiGuvMO~wtqBW z$UN1k6%~!BUeOVse{(Up*S5$1V`9F!e%2d3Ir(59bscBbyZml{X|1bfLc`V7L9)5p zXyC)u(Nqd}?rD+nke@~*WZaP%IwreGzSRYwShn-pmRiK!mn3*DHUM$P?g|ao)(Upn>-8?MoC`^iOZvB+N}?4e>6hYACy ziIpGS^;}MEx5=-VzTzD=2w7xn3keD9`?;W9I4}N40V(+66l;=}{`~~q9%;-zOIp%1 zP%bp{v%ME1R!;oqQwW;Iz$`N1+yrma`3AtW44rb2B>XQ9SWNfY#1*q{!mc2C@Q~>*`W06tM&!VB7A!Ae^ieApB z(o3w^UYduId%`;i`Hw9;B>@7H%zoO=E=%t>7xO0mcmoA*H!^-L3WOZ99a$CL{*DjI zcTV59fL#E4_vlRS|Ye!`A7P0_btY&2LCr-;1js+*U- zCj4d?=Epc)T>P;}iCv{1M(%PRVUM{DDWfyNaY;xq>^gcr@9n4t9Jb8D1%(M?s+G(W z@XgzcF4;u2D}>k52j}@tNtS9Vj7-et?K-JliI6+D+@u~e=HBf*QDUhK&;vgoG5Kv(K~9 z*|5G1Ph&4X=6d_X{1+? zUY8$|Xuq;YY&HHIs4Rl6LY0njon*MgwW$yDa-OvY9Ai^LOxd+1F?$w?dJ29q-~^oH_~T z2&m+Yr$X{X>eun`Tk~IQ(}M%03hC!j?#jp4r)22svqg%Cr_W!&(0@80Zh*=GkI>Q) z7)L9Po)^3oq3+G{xN#u1j-VV;>xb)G2;GYEhzxX*zB$2hx`I8+x`9!~k`ic23hyTM z0(5~6^mB)vOT{u{BFhKU8xe#Vy^_`t2TBiCa$XPyj8rI}s#Ly%8|mJu?g6BfcMgCk zIloOLfTYAP^(}#EY(=Jb1^`U%Ew+n0!%Vxh(8P%Z>7`%g8x6HKr=@XApBsy66W(}G zqGwq>%OP4N()NuAt!+A@vTvWt{VN2(&P*W-+tiz><*ykr8NS`IjnGW4^8K^$hB0enYY@`^~q1ncDva-0D;r{ zL6h(i1cdW>DU~GCUXQ}I?6d_h`tBw8N#}Vv*=7+QYKF9cw)|ug;&7~L#Y{EOc;D?b zX4IU+C87K$aEXm`KlZvLA>+=`p^%QA(y?RON4>fNhKpg_d$I8Q_b;*iJbq`Z^mkyB z5V~G?mz-o_-0lDhPPr22v;FN8yidS29X9d{Z%gD0$4vX^CHO?~T#uE3^Z1Ad?lVAr zgiEToeB>$~U(5vg^Mz#qB@~Y5+E9WQHU0ho-O40zLhFFvdx%rT@8GWPwrJob3w#xdECfPH17aj`OA};X`%FZ%$Az9lUG^@UsuLZ0XsJV{^ zoN=Wy0VSGL@7AG~#rO1Uls;i|#kC-tK3-ew79to!tCzKK5>6NOI%pD1W|GS@X!-qG z1Z3%Xjg;jz4w|00*U5o^ZeR$e{QNx%CW^(!4xsdcM_>>KV^bL{ zO&E^SqGV+hfTRISNTyT#>zK`F*XgIyqio~xHUu&Qh%5Ljv}3TsZ7T)ik2}^Rr0(mB zoS$f=ecNuI6ObJDy=9FIV=#D?qh-jmbd7#HCMfYaDoU zB+|V6P^uRWMmU=-(Q(jbvj1CuR8< zhmg7P+Qp{dg}CR<-I>`I?8(r}DbjH#ZnrxOB#AFPBmw(9;j}`PkWKOszYzrW^11G7 z+8)+-UCKRYFq%Nv&8Y#4_ec4d?7+OhtOnso54naOH%PnpaLaMRv~$1XN-z zRBz5XtSh*X+c-ha^|8`r_0tDbL_JpuciTn>*dlOSvMVZFS!j;Y#HQ^E?BVipPtsh1X`uCEE<>bQtI@oXIw>n55WM|6aC<6~jiUIWkJx2vD zBYo1n{1^eD2YQLVIk}xzkj$Fng~0Vr@8aOR(1dP-4xI`6$IWx$*>WCy#HV}QaEJKyX*WW?gL+qWKj}g;2Ey@u!F54?>LtfCiLKc<*S5~KGy(e>%z?+AO+sXV07wpT{!zT}mKl3%cx1a?szJvT8q4Q5fPCPp7wX{(* z>0Ce=`q}j-#Pnky^j3)oJCv)JTqT~C=Rg?Nf~*E z`Pcf(R@^Da&Oo{4og|%iWqdoq5P`_4i)gZb;jNVEb?HEfqHOi@?ULgtIaqSn|=fT~#<;OuRQt}y0p#YO=A>(_E&*L_V3H>*7O1iGoM^V`p& z!QkwZWVf9tO5ng0^C;K*v{LDFHpQn^JeC!#&x8B*SAw&msR%g8f)K|>1DQ07H$lhs z6!Sq}1XF--ROgl&M-%-%ced)bMi4NrIeSOQTJMeeWaZkjj=tl2avS?uYI?$=%-bbWI+UI1x$h3mn;(QgO(+w%*S*M~5RxzvV7AQ~>04#E3nQ(#{pj)4Y~~xlYhdyQ zq|Ad}d(lRZrSzMamK`t?kcbCTo4TRhcQz-HSCA7f2vyQ8Ri}j@Fq;KX0vbL&m=I_+ zGT6mQnV7a5?YG3xqx{5YoZivWFZPMA@iDGZkvnDMAlu@n9=9~s>jhTtVt37phLQa@ zZgi(1(Yov$H3`Z~%6>$B@7I%iA(KEnKmePUH`n`}cm$bTNPwh!MZx}}ikR?P?HRTSb`R7d8=n%gpj=UeR9&~0LkFa}St&7G*u*L=l^#TLZ2Ncp@8Ew_!0289AFv!#!_VuDCYD7# zN`ifpp+0*vzU=}Kb;X?1LwVlE+nHShq{FF-XYAdr)N0_oG5f*z!|NtpIdJet^9^rf z;X1vB|jn4pZE;hDTWKR4Ia;>-2Zm+DCsm>*K)3hxcZrIaDDH4 z*puiqTm{_i5ue;F!Wdtj!D|Dor7WqX4|!ta&u_#BPWO z!R)uGZ#^9D(^K0r*VSL3lt)Kcrcl}g$C3ZZrG?FOuT_)ij|2zhBDUGp&*EQ(<^f75G5Az+1S#FUeVw~uZVl*F5*VYFH112^Je zX^-cJC#06AUWV%<8Ps39Ro1^JY4+8cFfy^`n!AHN(e5ATqassMeMRhV<9Dzda{b3? z2L227ery~wI=;2&IKK9XfgIROz%I01_OTu4?-K^%D`{^RiDaxE-Z*3-Yq&Jsp)d+iS2h<3Oe+=NyJCI#}@kQ_C=6+I#RNWomQvS`AS7Y$Og_5iQTIzXC z0CSYb!zzt6ayG}-Mtd;k=e>gPD_&{ajna2z-Gpr4j~Nn&3g3?P6IQa;#!{0vTE%NA ztMu)xlMl~8lH|9(7_E+OD_zOfI(^i>Cy&N#%z_1Zb~ovB;Y~sDZxt4gSA;K?kp2SB zij6160DMx-VyU<fwa=@1R@kAgsQ*aG}P`d-Y8m8g=8=;y@XgQVn&|y51oCmOKO~ES^H5`fXz_q?db-qC(HUA#w#V20M^Lv zt7pYrPJfz%j*yW~N0<*HVY3=ib}7#2(Op3c&E9@UGey2bP?3HgOp5?tH?#=$xNT{G z;%Op6tr~17P_7#6&aIC|$BGCI) zZfEWEvox%d+3$Q->7D?JvbIC6f8U8CF@!~|pfN4tiWJQTY?e3Dc_|+UZ#+O(=ucVj z=(TVf+vFlYrN7E7;~zRkG3LGXjWCXp{4H^fAF@Mst?@(myR$R%;&>?9AlSYAOqKAp zX1?BBTcx(hY=C#mW(U+_4Ad6n1-%}ox2if2p$Va;+FF6!22+KkCHiB``IQKIX^TJo zSwJrd7%1c)%tp81sd%OBe&pBWv)5Bndhub1n!rJmU1=`9g7^E!cRWR+#g zkTrazrV~&SkgB_ctkmT(Yy2JXip&1TkJK~Y>up1V2uHL78i7HXBN#S~7oJKZ__Mmza zC+oN`UvA$NW4m!J_iRIo@7qZddc;q!9`S7r(?|~(mu4iI{Jz0{DrSkKTB}S{2uX!L z7(gAuCY@L?N735*2&stMX$J(LW&F$VHcZ#u9-~Z&w>pda>3s9;-m-ew~R@ zk-t|1_tj`95WJ;P?2)^>TFV)F^fQj**WhZ!__;a5=1b}0t`I!i8DVQx6@w_ia&>qv z)84Y1YjybQLUtw;Ns2W%{mkR0xqPyYL=*~-ubo_!J6H)LQ^PlL@4cgWsWo&nNdusmJYngmE6f#rs{(+b4y)cE&E6Cyh+NMysb; zD_r28Dfdo_yhq*J_e(!+XIpr53B9{L+|n;y`7`-T+uM}XEbob>b{NLJHu^fpI40Lx z#(;7AS52pB;8y13^EBekO)wK=?K;!gQeOcW^*+y56&YnQSw;Vm&Qj!`Hk4j-_9r_r zudHy_CUohRdE$Mcv1E+|pLR4&Oc-)adt?DrI61~OKFI4`dwb3hFI%PpL2uV1^k|oN z)6!2Fdj%~091xw*7hWI;DG^=;6%seUZmc@^>77H?JSO7NrN6|IwhJ9&RtrnnaZ(7; zotL#n2*@n|#_CmwF2(BqvA@n=xBL3})J%#5XhZ;deoeoAcTn!BHpaAk-0E(M&@Fbs z97!2i9kKw<{=on_(3%1#+Pxz>3@=_wub%}61H^1Y#6F3d)HuR{TAkfuomZ0+sdzp8 z{VsH;ew~P{3>|KO)V?OA9+`rCbTZOP0u`qLlW4fijrKU3BVv^ z<#3ZEzWbI8ebBya9gh~2{k)B&-2WCk2?k@(@wkkN#d~-JY8RmE`Pax`PcxBf!!Q-EyoUE1G&c* zb`y49B|I0#DHi<$msvghth!rHFdB_qf@A=5#N~ zUu-1dAMhPE!EZQO7cYMr%Q>;hm!RK73K@acPL5uv&hX^Wuh&=$g4P0H z;|{{jOO{qi>j3VTZ567(8~UlX?P-??{BUcF2@FJYOA9dZ^zB3)IUwRA-aJ6-?YT-; zd&vdW`|tny)^(VMP&wrt-5f5@;Kb>l{xG&taktSX`%NhNuawChC7}^((%6!smWv++s0>W2 z?+_gK6Y_HtR3v!XtR=alEnT;+?E)*9L%+UvHZ6nY&5h#Q6RpYYgrO?pu9;;uw~&hv zY&nDE(4(2Cy*}KR&7QS$sI_1 z(nypBxM%r|LzUCD?(=}74?d1L{MeP}zW$r^y)Qm{D#)wxhmbKztW2T%Ob$Tj@Z)J> z%eB(=g7k%e(e*V)S|y{j=47#_S0jZatyjsjmuE3Jm|S6GSkrKGUJkMfLmmOvIQO&1 z=6Mpz4MtgL{$*sckz&Cw0CAB~*eh-krgHdGKJ3S#M;(E74?gO}$`bsL|vm1YH2Kem#}D+w{uqiVMYpm?{5uW>K-4l)RMZ zLmyUO42-e&oAfx65VBCs7Q9BZF{D9_`!sc3=Nkc&26X|4=;kdbDi5Bk@36-2F4DA_5?* z?R}uXoRvmNt9xRWftMS7d_;2O44o;F1pdM;1fI= zpiu2))_;u2sCTmlwjBNKWP4W*TMQIu7m3&aYtaJgbm}92@P`R9Cxv_5hN|^i(2?Wp zB=TD98nh*mCwHAS)1^i9^z(dL%ho=B^5Dmr_*ZA}pg-Rl`*@F&q)0r?<6^KuoAplZ zQQ(^*ra1MomkVmbZ@#>!_$>M4(KGqS4BNAM9>aQ6*pQ3uWK>h4*rOzID~S*kWKyU- zgUe50^DJw9XZ}I{Lo`nNxPWxvA|w!q;rRs=Onx}#d(L2{^zHKF=bfu!=a#U;Xvvcw zca+`1IMu{CPTB|3NS}#m&2+wdt(H?!w!3nC=LX0Q0esGlaCKj7mqS@St}DloQkX_- zr&F(SgU)O|&?~q5#(r@xw`87>?BS$f*H@>snZ>*F;@$`9!XL1N+vHgmZ+aGGUi%r+ zYa|o`JT%z!VaVFwKcH2E{Hx#FS!LO*E751=C>Spid8Dk{s8%~EGE$k6ch=aHw)`!qW=Ek8@(QigcMM_^IcM`rf~+emHjn4 zlG3#5`EK%5@RzUjdCybt&7C(gHvMJnI-7NaP7=$Uy3$w6WUP zoMy)+A0e$L{}J)9E##oa{y!~{L+iZpkMZ!Y9Rn%U3C}hVv~Bm4My_^=2JWpi8(B$F z3t6y#Uy_|n9OzUM+BmVGU~d&0CMoty!DNkQ}k-xeAICnC2g`BuH~|p}N|{ z)s7W2>UBbcImYJ&&P=zOm5VA4Z@(xpkFQq+k*>o<%40kN_bs-9*L6d0!!?$PR&4}% zun`nY!(5nuNlxeA$D0#yZQ-7lZf%QiDX^m-Bqa zN{sj(JH8?HjB51Y+=8&IN_^Nt(l^QPlqQ}AO`L#Zm1o6nTC^?W!tU>Zo)|m2wNra87ps$cyM#>HV;EKjNC^VwXi_EI<_9#h{nzHRxqm{iYE1rO z<5dRXeZ~#HVLAiul#*3cf8!KWT>rVBA3-3Ek}1^`DkS4je)XEdV=;$wJ6FKzV*E|l zflCNCR$1jco2e%5gGE3w+7s}L1&jKxzc07$PlGW_CarYd!LlSPz1{2N9)e)GKMB^m z$O#tzQ~i||+yo>+$n0dXkFz3(qo@qS-e%+*0?G!ZSo%A~@Hq%Roh(2UsP7OXA`47h z^F$Wn8lHp`v?PEO0b3?exRAV1!-pY@0AB|>aru{SPx?&=EqqP!j(YZ+T2dHISq^S& z`z|jj6`QXdHLG6^&Ya{Dd+*;RB)u1oR2 zmw6gVGP_|foq?laAOdNZ`eX5#T)3m*K|k2$O70SR9>+c2-8)uFvpfj3EhPGg5`}5v+J`rVgDYU0$@oLjycaqz(i9} zdV7$6-;~Kv^L1J!q!c?_4S|v^9zTTp;kQNoVk6l!&|B@N7zmdio9#{bHNc4&PeBLT ze17o#G$Tyb*Y1MYA}IIUi5TIw>YcXZzujk3)~x(`W&GuClAhXjL{ej#0#~Pq!$(Tr zgCHx&)z~0Cs}R@N1tvNf5B#UY#1JwpTPh@G+z)QN0nSLr#djXD*_Dy5Te9h=j!>fA zS3BcbFrV$I%%g|0tt|A^0E7kYPxxmDU?9W2Ifi{7r-iY=asi2>o(enw7w%Eak~YAi z-Twe?^Vem%AS*K--i_?UAF=Xs3ehS8qWM&!RVmZ1>?d9WtZZon8DfIoa;fDd^$}W3 zFN^Ng8l0rvXEZczeQNW570N@T%(}4`bGS!apZ4PEB#l`k{Lb>RD@34^n!YjVJakCa znT2eQUkgdv2YH-Nq#Xw#bL0423R-8!4!%r@7XFt%cz+*>aUFvXyDL2VFQWV-7Ympn z*iHncVay!F8%-{*iDMic`%ejP2*YV`b&={)DYh(ib~hT5xiS%9E!sR#_8OV>4}&fFb0k#|(CaPp?64zppg9J1Pgzx;2$$*7ReuW6_s|Eo2T#dRmYXK;^2 z;6mh)-CjW@WE+jIoANp1Ol1A`A_J=A$Or438}OUT{OPBV*WX}0AdQ|On^!k6ZKvns zQX9!o@y`-qUIl^s;o~r(8sYvFyjP~38yF@2NJn%2lP3Zr9}9c-k><`LsY+6J^%-G9 zuHU+^^*GZ^ZuO;TRb$O)w{uf-EXva~XdpcN(szrS%zYFLGu}Q5DJp-(eNu2vC`pwD z^eO*SgTIPq#!a5uLoKP#*i@9sUV#(Q&L(Ofn*Eu)TR z!qbEInd(3DKat=;AMY%)!9%mc!e@j@^j9~H`Q+`#Y+d3V!h`>v4(!)Q_qcA zC=MnY#0w{q3tL+IY}~n$x>I$lMm^uyhs2q?SlM5}%#{b|IjDip6 zeTj3H)nK|>w{Jr!vFB@jV!xZOV#dRIJ5g+~NWAEPd#;Rr%{lDbh zGgz}LKXH7z3B|hu7j3(h&CmOMWgOUX<%_kqkj$!AQ>PVqAtLxD2oe9K|c6`ng3)|HQRg; zMq6*RvP2(^nDrmrN+nz}+yiS8M$Lilk^L9RUXNXyOo0kA&yKE@L^Zr;NF}uxwCpu) zGn@oo{Fy8iFQ#Kni4Ej>`Bzk(jLb8mF=;OqOe-kNU}kPprgg@?|G<@QRY0MQZ(0kB{9UaY;*`R zy3VnQDJam|F@|O0g7gyDbSv2>KQ0u zG#8@e^QYjSNm`?4WS;b|CqzSwSay7(%T)I3@OjDJ?`cIW77EbWQmm|!Af0(7bv&J+ z&jE&=k9&vJuKN2{cc-H(6=P`zainn1=ag7Ox7r*iiC@iUZY=WQjCbMkBI5%S19#qs zQ}8nHj-K)9v+MF+!qLAlBK-^&z5NOf&nuk#f{5KVV(2uG+RrKPB! zc6F|pr)~%-K(9;<#-J)@opZCS520LwCbp9CRgJ|mHSY3_k!5lp$_(V5V~hp;5-pf? zL_em)iloOgfx4c2V;iB;;?oo4K2Z#oO0*^use-37;&XCJ%1Evg#wVsn+i4Kv+(Dn{ zelHjw459lKP_;%cwP-r|M5EpYPVJ6T4i_o<;Yr4 zvJ8bJni4Ihv=_}G1C$C@lIadgL0#70h@NxYQup( z>T1Q7U#gCbCe>OR`3|xZA7*gb$E!HzG9vl)Oes~DznEFAO#N#06#`Zy3}^toO{cT+#9VwQ^b zsN2#{C0FZJiM~8~GR;#YVlMMQxhBL*s(f_X)1C^d$@Gmqf+WYRc*E>gR$(VRCg3lB zC!WAM>Akf_I7H#dPh|e@-jIGuU-h1-&eUis-Xl-9reB(%I3~=gb$qi6RE! zMwN|rj0E&O-o?|4ZSj_tVbI1&8 z2xLENP&kOy*`ziay*AC%#80&JOeZiKF|()*rSU>>h1cg(_`Rp+s+MwnF69yrrr)jd zHGc0Z`?Hy-We-0eYpFIMeVX{TVe8YAR}U3WD7A>5LDW@F+0wYTlGW5Ezy!2K#TXS` z(H7A<&+0B_2*2>ZNXPjv%yB(5#O*hYDOe4gsqJx#z&3a~73V9o4`m`#D0agFoe0(dIg9Q!a0 zSfjuOg&AN=(R8wR95#`h3OkVhEr!hhPGq`Lr7iTJx#1Md8+%=o3z4>a_6xL0sP=yL zl5&}AfJbo3K94eP_6~u-bAm0Ix0>3fuU79t9|gxj`D8vAg{*X{%Z+PEMH0aG0lQS*ZGDI4lCdc$i)nw75-(@sf_NCnEu}XhuDp6wXtM~BJ4SV9R6yPp`npx8#k0s z>r9U3g!<=w<2+x}q~e(igX)`m7UjMXNz^`HW@Bb7a#b;cbWsl*VKUF=^?QY-c7H1C z+61R?J`R7YU&nvzUJedCWa>WTb()OSXVbA)HvWgq{zvxWLe?IepNno$847;_ZTUwf- zTPa0AVCe2fKw3Z=NfCzbZjkPhE|Km~xt?!p>`Rn1C``P=7y{{Yk z<>*X@3N?Hh=>O_!q&n@10ja_ZtE*IYGaNbQnn;jnf4{bRRrl z%tE~cWehwR4pmhc2mdzFkzO`!n_n$iE%`=1K~<_W{A6;M0jPd%#Chs zo{kT#MWEu+3J+J0PUnbBV_U(!!0LIo=I7|Rg*#~?q3}(iuJ_-md7R*x zXtM9V5!MFx?xDy4a~qd!wZA0Hj5dsC_Pd0b3&R@;9P0^6Y@u_(?pdl1HLpa4yD$*G z0?yN6ZsYOq8$ccje?st2e263n5d{v)@bGKZ;O|f!_Sz`*tvby9GTKdQ0NTZNHCV{g8FglYG=3zLhyd}%O4Nyu*fxf)c~evi`Ra9SO=|fU z>WxY3jaYTs2h)K7f4~(3eBaxjH6F%5|5V_(v?Qj%B?$EW*hTXA z%|+0p2j*#2i(rf%%pYdbuIJP68#gPbW8q{U)<1rpm<78u?7P7wQ!bP1k|xs5xw4jd zu45B%pb)}&bH_)^{9Fyy+_ffKFS!Q3^`UQ~X$EpFF^wzrYsgRVLa&r}o)Y&*NEy~* z4M!iq`iUanWW|_9nuQ?u1sroMX#ZmWHRpvBW6qRnxhZ{Dxt53ehvI#ab&9wDWu9=3 zAI>G~v1P1!j^6$GpOzB$kYbLg-n}$4&N#uP0juypUq)vv1$jlUPaq-UOPjJQJTa-H z%duEOc<*xub?iJpYeq#n0xUcBm2{)yv#Xm1g~xD9ixTJ-@dT=OrRW*HE3*oPKO%W0 ze0648MD2iPv-H!OX;Ilg5#lq|K<*$*h^|h}n$u6B{fsYXnkq4)`;s>caYrqN)~U*Q z1s4l{%+TR$duZ(hFgz{zJYDvd|CZ!1pgQ(KM|SXBhJWyUZWBoej^(Aq4~*zgpnB@> z`xGI(*QXhvPRxyn43M1a4w$znc~BN2+_SqXC>7GBb`zs)7{;?J)P_1J^Gg%wyxm{Fx0O$tU|oB?Q9OWwppx88laZ zdu~|77A))PfTc4uFMqsfikKlH)uSs)cF9PvR$QK@Yae$jgCB92JPCY#&M4|-GZQR~ zUmY4sK#EU~oc+2;?CL<|3E4BnP=b(f&Lj^2MR1L!e=jXLqZCvGjmjCk57{nIQwxa> zeoG96iL9?{CxUf=BZQY$hGriX;Iw|L9+ zMz6=2MS15(-@hrxJN>D0e7H?VXj{%A7@(N zYP0;ncfWf(ro)Vnw;m(ZV*up1C}wQKnbit`E;LdO?ARVSwUne9_erPKDCcxz}m$-ZMA7G z+j1&yI8Fsf63!mwq!j=?Bs})FnOD$mJ8j;GEexhTb^i<5d;Ji~es;uPT`JK)KTH$) zfz>B+D9+VubYPULPyp@Yp9sdXlEC##&wy=#Ijwr~;nIi7_5Hvg9+(}*{GP%8WiM3q zijw)lasD|o;ibHVDB1K2>YE!pIgWlJY^FebGKEFaE}tBDa`fN>0lUilj)rvio_|g# z!JDQLg@VQLb=x>qo5PQl+vGyEKeOJGVS3Yi6Hbehji-7R&%2Hm9mPy5Ev5@k8kYw% zL&R`CCeUDO1o_b5iWh#{>JXJ3&Xy-n5>bcxipt|i=E!@pk*k6%b?Yfgn5%a?t~3N6tK%~*GeA&Y-6=tB)S0$bwqu{dGPdpx@sXlK zcsMVOjX%wGtp?!CBKb51je3FVOr86pV9p~iUC+frps{fqRg2Anvu4*FPU6FI# z=VhJ@`zp2sLOl-f$fL;rHmkSw1W_cVAYF$i!U%7u6Zi$J+u(qG$tU=2Ey(p!2y18c zPj>#ODOZ<>f5)82f;2czuRn1IE6B2s$M}pBv0QQX|4^PPH6-{1{LpISfZ(LjA$}uLq10(On39uFaPD`^WfNi=ngz1y4PS15V7p zeWqbt^!``gRiwvLKMN=9Wd9~bjPXLjWPW~_1;mYLF@;ql1kErxN0=_GA>@BVewi`c zlhh{C(<6AIt8$al4fi4x*$$*fFl%u%8D!6#Ib&^U=afjrg4if*ipf4!HC! z`t6u)?}RE=PVoEG3N(fd zikS9qCxymYyr0P2OO8aYcr}{a>*t4I;pkH#)a5dfTpbG-sMGBIm~D)JQ$Xi)(TSvM zy|@t{cZd9m|K(d(yaPu2SdQ1p--xE7MjgajYe~fva5U|1pvO?vq8OJ$Wk= zE)~-q;(A0P>5bDwW7EJOa{uf7Czb)%nKD2-V2ZfVe`2(FAYy$NfL*;h$;AwT{FQ@?y*&%A8+^6bIt+bRy4knW0MFQ!zr3-u`1g3=|yH=2lAg5yp;i z6ks0rM1r^wVT|+@mir>toc&7T2ia@1*A7=lf|1?KYrV+bh6k%~Z`ArpAcKJkDbPku zYeMF&HsVAh#9KQV3ZCs}`go|POVPxQIRPUMrH8gm3DSTWV=F<}Un@f7 z{Tg!xuE)ys{o*^74^{`2T_T>kPL_onfR)wjeaL3rn!dJH=>ou8pt98W~qYqg$X2TG4h9A&nYG4i70*O{<1kR zZUmRE4XOFL4>bxXazB;%swdf}zIx4In#RDM-GK>b$Usf}tHgi1zs<}vH^53;qiXIUkm zT*M;icPE}*fHk$6 zYTlpA!R9LC<;#^^Z4flWQr7Qps=MT7ilN}jh4nMXrHA)-G=5W7HJ3H*L~--}D{+hJ zbYLWH9D%aRW|r`y_G#K(NoW-7j1?lsq=AO7>>Y8o@fZvK9|D*dr5s3%uuE?U^g=hu z2o7kTH(@t(Tu0R#^T2iMKN8Y#-MX(8a}8-4Wrk_45RH6c%Z)+3xqkk!>NK^k%sjEH=odnW0=gj0(rivOiIRIIzH6f{RW zwP`g9lq6Eh9=uOceJUrH;D{hP9zTy7bZJ6pHOQFX#5Ej;xfX=?zqRXCegbogI9}pk zv~cBGGkpFrKZz|rUw(!Ck4p^yO)*C5_)v+IIkB#*1a<*L^$qsC8mi&>&LKG54SzU3 zMWrB}=py9|i8qJw=71U6H5eM{gV%hD^rq$C+z(t1Ho>5}8XOJ1XinISIg5X)hfm&@ zp6f|$Vkw9MuCJXf!xc;Tr^qzc5pjfM`#EEV_2|0mV!YViN7U5CN7>nhKJ z?=lcl|BcL)a{EvXIosEtLO^;1#}>XVwZfrEoTEEecVyAn{`l7U0_Li;yb78XU{efC ztXTH0$~+fi#;>&9p-OPXilTD%?QehpXGZM*lCJrPUtgLgTS!z_9NIx*Zvo0#)!aGs-*ESt7=Z z0UpB7x(08woD2=_Pi>Fo!}EKFB~XRgRQpp(Vje@!lQzHHhkxKz7<6Y>gcCEka{*Mq z-co%s=p!wt^%l7%D#<0B!C`7TmkcOoLr>0k@HB9onNktIg>dW%E5R|p04#Lq{S&g& zW4?dhP_-)D?9O#rg7|v#<5d1YltCi=#9@5rHo2kJR`9m8P*1AUeD{?Qyt`&!9F87>W8< zGa{NLSF2;O1;RV0VNZlc9x@e)Cof6$MjggS#{f`=p%OmPGl*t3h${=XF0}V1#?h&} zj0l=z9LXGci_hGHEUCnxY^Jvu=HpvM$iXEc5zxrxL|q#I57@$mr*;mSV=v?g_I$TR z$GqTkI{0>1GlNP%_a+gaSO*`QkHu;_h&!aS#?L;cyuh0nb*x3@ZcT3R836wFfrS2P zQpj;&H21T)%Y=(!@(wZiVI#E==JDI+BQ`ZqBZ`j+^#)Jq?Rv`#foC?~}P*Kgl27!(@~kl|wAAybdh z6GfdP=gV8lO5Z_!?PSAnI2ViqnQq>x z_+|7iX)eNejRR$_@R6%sGJ`(zBqLg~<~+O2SO!{In@{=Iqd_ZYfREkzVLmMg5t@ld zckH00P9S3 z3R83~S|jf1yqYOm2NO~zg2Mv$r7`PNF)M{e;*KlRq+oSp^+7?8Gf_}w%KMd=dBG|Q zm&8}RvuLmIzef(*u)1v_U}Ka;UqH!cc?4!zk(4Qrv$&^^T)ByJS|ose6J ze-YsB6b{?S|1-P(&LI6YKPAlnjrqWfglqW14xZKUFK?>MOO-JeTM|6+ESyV+ccFc! z7&p&Zf8F3lKqQ>TgRq(Na9;A8aNt)j$;nHP-&NFyimu-&+!2$sIHuga zeIY72naxUfk6S~~+LZ)~CyyRi83vdkPaupLk3Z)q1Ygg`Z^jHFq7FX|rA+uCb@M{i zVP#L+_;g1k3SJk>A$yPfTCmN3{U+vab@g@D5>TCEAYMPgYVb=*EG4dj`44$kM>JHa zX~+CM7Xjkj6>Lbgt@E;Z*cr_dxp;oE;z^>p&i_%j@lbKm<;5AAL$fV@hXtlHu}5D9 zTG?Hz4o8%Ta^YC4#Ks*Lvafu}m*0NQh0zhE`BXc2Wi9|#aCbaDel@WJhvZE936+YY z!CAOj`4^&;=?-&b*?&6VKZ=-s|Mup&?Q;|N(3Q7)XmDgX!=hN{#IfWg&FDO=OiKHI z#O%Byu@|mA&s^v)Wg<4^Hlr?`RE*C7Vhh*#CVEeTHr>H2Z80mEmUi6v?iY{lcq$$B z?y~O`K`be7q^~L+SkO@;6#pbEjl%EEA#etpaQ!}?qokF*8bp;UgwKDagd&Qq!<0^K z=ca)J2QNxN^fFKN4L$_ci4kbo4UXtzAXTddtzjh-GiNGyJievNL|6)mr2F8q5fgXE zpNseB;|~JIbbkk;_GKPl4s+QlqVyw5>2f2mOK545S;c=H8cfGil^#VFnnnW5i#~C0pVU?JB;Hs7_EOx!1 zU422S+P#`i?a9A)U=ipreZI>m}}XGkg)E<%?GOFdj|dCt7RuntHCG(- zRjIEM4XK95Y>WkQlse65Bc6{Y3sj((5M^Pgaw#czpFy52`&c+Qr$tlnuX3%b{dW@_ zP+&W36!S&^YPCfqP(O7@YAtMhmaxf59tia#KI?+FXH`aZ7=d8{RF74R8`ab@){{N@MQ6wQCKyb>6V4Q-`AW7J_kpp;NJfyh53t^zL|E z0cfC*T|Do=YDWolqVcdkiHTIv^ii2VvEeBx*OWP$fp2umk!WeZe966nf4IAwnnr(Z z<->Pz_|O>lf0gW-E%*15UX-d%%o+e|CZv1)QhAbC3rkwTL0m^$AU`&K4Ax9Qrs6bH2T#xfdO~*DSaSE0S8>BBHonIv zKk@u(smW~FK^M&s6kzJf^(MR4o)P~yrlxKUD=2NFGoDTJF}<^;+)q#JS=GbeHdo@- zJ3yXJ&<2rIe9Y^UpV#|ooxB+oGK+IUq!EVFbAbR49>k#RUYPiPOki;tbVkRM9LVyL zYxe9{Ql=mh5+vQ`p?3ockCaw9+LWa1WFzF@JPW(Il|-=64BrT;?+cN4L`7D}qnFKd7cC$)S`~Z;aoGWXhy7rJV+c8dpK&N(OEWg!0TDzEXZ6#Ze z-S!H-u`#i`mv;WU{iHo>t+%>usRHen-aCMvg8L-FnST2sr4hVbcDeSc^=;M>z{aCO z%k$6k6!P=lsO05vPXWwtr!zo_>jR^pHT*`}ZiXG;ZT@wx2n%sOhUZ;`rCBnk3Yt5TROLCpB!aNaZi^I6+$N8 zVqV6H3>5PuI8(S}4yBfgzGx&O#gd-x)0$;hwA#d&vvPk+1^xKe8J$xr=gaT<%822T zcbM>qHHNSB)2XsxGb;r+u}|2Oy*K-jenE0y0`#w3-npYE!=N^0!711icshVtp-^IT z21wij(I%&R0MzaHaeR`cMr&K?$M;<|%yjIJ4P6q;pX9atA@`EO?<+5A{2m8f zC>dFDhRJ(meyj4w!E@()6z|4dz+PVvU+zKZACD`2YjS>bnl@UJd(mBu2?e#lCLi8P zN9En)n%ji7n4F;f9$=f|icGDT01Zk>%kxhHN5?W<8Puaf-g9y#(%<2FzmMsfHP?)% z%S$JfIc%d((iUhW*Cv405yPlFG5t7GtG)>&?hI08egR0S=z{c#(QTJ2X_`elp(I;4jS_~K!u1y;J}M7eUNTyR5DnM{F0QU zi>t-eN};zTB651d!kybFn?G5%taB3SV~y(hbvJ)+DAHu+2={yMJX^K4GS>6GKl zf^$qP_E=(~ge%K-IjF>=}$^!E1qFxUSf7IsY{ejgJI+?W4 zGJ<&3ags6=J74m8Mc~`%wS*oGPrv&B-@pujoG|U{{tiN=i+_>LD_NN0U3dBQ=_}0a zo4dF8B`V{9S5)`$%fKAMH?ND+xJ>ePfDfw6Dy@6_tU@qf!*Od9K0a*GjevR`qY+yn zwaCkoY;#vPqaT~75H$OeUt%B6@=^!!-SH(LW~nR(EkNwcvP#B)J48Jp{X2 zmMfzE0~D0Ky6wF-2T#ACKcr(=qxf&GiW(l>>>7k`7Qf}+wr|7FF*0~FW;ZSbz=|t$ zCYtu{cAdxQ>b3O-1DRI$fZwW+Y3+N2EX+&Xv*@${VwSJQI|b9eo-sXxlvo}ey5-iEKbFgzI#5y(JkG?x`U|9nDt$F;y^Wy@uXjLs zkZE!4QQ~^-30CmPtj#Y@jg(*(vm(GN8UF)l#`yqK5cPvs_hm=*p35;{1wImL_mya^ ztW&pGNu)&03Zrpt10K+C2YYZ+3X?yya5VjLR&uf-&!~Je?2h$_(Z;EM zXda1HDv(Pa%<&mHeg)H1N5MsUOZa~M-d@C>_=`Ul>Se2#~tuEmpSJv*jf!+dQM zm;A@&sKB-#8h|B1hAGJp11XP6DNd-#+8o@J2@0G*exIZzBMBP>$6W-hDzRA(dzj{9 zwi-_o0}n)6xkNjJWXQGv-q%u|rc_KpbWA%&UtAK0%bu}zskD$Rw+r6)J=^wJ5A~qX zA!x5ox;riG5VKovJ%&P^myj}@7q#HmLCv6!e0%Ft&%wvNH@f7J!-#*n`UQ&n4bLh< zCnxldyQEQ6C}gj?qyP!YO3k8Rf`qY!uw`45nl~DowWr6{6f=a44c<;XQigpGf^fO&1mU-?3*=ym$$4 zM}&}y0TxCKmo)Lzp>!`kgU@Bzz6_p|e36A9ap1Xl`#+@UG}D@CW#QW69x6audKXl<0McxzDOl+JvrX%3Qw=n!b^J|MK{oeAlZ<^)ml?jgPN&rW4M@bT>NUahlKU zaFfD(QuOVA)c(3mp7@mbd%QoYFnC{}Pv9yr&uIX86bD!?0TMEA7!vkBvLQ zOAU>M;i*4wtSdBg2lzT&e#kjNt0j|&CQ*cQm$q3X*xcRX#qn3vo9dbtio}?|j+<*T zK}qC65_E%gl~gP;+3mWXE~>9FXvwT|^MeKQ`e8Ubu$nf_S!}yG6WbmbyS@qrsq&Gc zHUKjtxQEDNUtjA%aXyl8XZWi~suC zU}yYgAYS!~`ot(z8VuxRiDI&-^JWpsPQ8_&4VPih|E9#PF{QsrgF*Bb?rVY z_b}*g)~WXjZ@f(H$1firmQQZmA6L9i+}b~n3h%ahoubv|`JT{c8*IkP8YN3pJokO% zv@eHr1Bpz+56rc$big_n#aj-)f!?E%CMSsT3cowN^F)JKAQH&5UtNN*e%&GM<9VV( z6a;1gb650B=bJK1w03g>E_*aXuVf}@n@^e}uGH*zq88tpGaKI8X^8KEBv!(EUqq;d zmjN2!YeIU*0pa*=1aIF_!p2{f7e@ntMJYCeju)6j>-)5Opq!G==CEopU%PiYMn5O* zo7p3kzv&1y*;@uhp2p}{k6vs_L#NEL-bt55N)8x%4<{t?QN6`vDDTE;JGaC~Oip?! zs`V)De@?>B4tAI4PRq=Kia5>{Kz15_Zdr!*#I)7!tNjA{Ii11g7dq}l`A2)76W+<7 z(Z>aY7^Il6l(ydcJ@nLd$DX&4il9Otiz_#xfE z05PE@XHm{-kpVk^Ssdb$T#hs{lK7g-tzeRZWV&!sCGrI{0xF5Mk+}g33yB9Zf<8x= z-pdeL{z?^6I>KXb%**Z8EO= zU#RA&4HW*|9Ol4&NPY~Kx1v(tpYd4-5#n5b<1GYg=bh#ApwTQzJri~)1g>P;JR(t% zeA{dEN@=jOlnQ*cByX7S#jm}`pd#|8jJzG7of#_Zij;AIQ_czfv7Rk7OwMJztZn|2 zZkbIYeO=440dPl{g$c_Gk&y*C{PbKDfoF6vA7uodjAq}bNSJ#oVtAWcVg8ExsvGBD zW!~*qEvaiLz7d~Xj?8W?z*MfpFPRLncl%Tw6yohyrVPs?qp-p6p_ux%FI)WwQ-2u2 zv}@azJC`i;q=a0HfcXtt@#5W~BGtBUc=~5`mpAY~%qS6|jR?{e)(2t){lYd4Nez^T z2HTe07w@c20vRYC4DNLgj3Bp`BN+_~700VhW4{C2=kH@i__++P#~G7P=$ul=-uBM~17+nNBtB5icc?s1Ok*V!IzLeNcPirKNzZ)_(r8s!gw6_i56LeiYW)zfo9jy}^x2ya!#l&pF^I{f)^R(OdZV+uv}7!CgRVltq*Ye9q-I0IBJOzBEr7L^~f?<07X&qDB;pfvAe zP?+d^3h%HJEd*rz_h(&wD;oC)t-Ec$tWiRX7B>Rc&St5JyN3`7Uv64W5TnV45{cCX z_D?dl=Iw~Y(xI!=qdsTwqeNTN)22j$95)NvF%^Bjl62%|WuKfXgLH!?00zi}#IPhV z>pjJk>~CO}%YE7XTnYR$u6Inn;)Joiq&nYP9BPEEK~rNY{+ts(WIMRZh^CmezYp}? z{G<1EAd#sWpAxtnB@WHuLp=H6|GB0lZh;8!7bm^xgQZ z@@Q)m+I`K+O^6`PH*^Zy9*3p#dk!BV+a3%Er-y=c_Eb`lk(y)p;3wXd$G8hy6l1)s z(k7A4Vr7i?j{4Qv3e6mw15|SH8r;s|mv@@x5z5ZV_e4v?LNJ5$IK2TAFJKVVO?h*u&`7YDk| zm4=?DdycB}Nh4afeQf}gu!Bh;|6b^br1~YUM(OVRj|=IbD5S(F_y_zMf+Z2H^R6<} zz{bn{v`&P8jY{{lo}{$LyP!y!#8Dg7Q<@As{v~S?e8;0QmvhA8%a{I;FJ{0od_h&i z(klB~(CefWr(`W}t8`&Y>(Thyv={cr+sh0qX78I8nd0{)YtR|JFdrE^@I<5{6QN~e zzAHyRCAWn;MYu1->mgjEBzA`=EDg1F1S?rW*wu+z1V2T~KOSO0AJgbM7KQkEdbNV@88R@9tc$E=v{m_&Y7IXtXo&4sh>(@QZb_NhZ5w5nY zg<1NTD4&tn+slMevN~#1ilz;0Rq* zQ~&4)=r4JJbz)eWf;==4Y$0Fz?}MkNfQ+;jBn^S(NjOPE?@8JiX5Omz)1H_`HxA1d z?VjQjeN89kf43H*c?g24t0CZSmkPh1cP3+tSw41vRlYm5<$R1zX-sLqDm;FmsEpw@ z=bRZjzk?lfg1>q#jC@%9bN8-;u%`vR|5RocFtc&*ifl{PaSgI`t;pCuH?#hAMTg^H z9Y?+W5@pE>l=IUul^t!ca{rjo4|4$+?yM@pI{5mM{!2Dg@4M*$8s!GVjGy7Q3x%%d zO;Km5pO8*(EpbxRmu6KlgA#hEWzEwk!U|Gz2aTPck1Q}DNTr^onf9Ig< zDo*noiYp*`7IW4wV93aHMZ0AaA>f%VuE+J2vnp+0Y+b>)e>6HRP`m;9FM>PU}x!I7376Bbnsiz8pm%iUskETToKlEbwj39aFmzKX3 zSVT&eCwMqvQA*_$oee_&QO##S9$UBqnq);)>DP5$uQ<%#>#eeqzJM@r?8P$zm|ZUS z(1lXJ-Ky0LZ8;u^-H?R|8Z83dj&vUrfDl5^hjXMVD`u4}%9bClV8C6c(y_{)YvyBm zK%1}(i5VrX3+ZtXH#GNWPYFrf_f3G0u5ij&#}wt&ss~n7+uc96)W;N)Os4mG$>WYcFMD}D&Nwxzf1aoTLn{6-H(ItQX5*68>yO~(SmWsC z4Q#FL@O>`f6$~f)=W^C1!$X@Vcn}6UZ(y$>6+MSt+$>1(`dF=rdqL$~V#%+HWlYsY z^6v+NSj5)K#)^$$PUaZxxEYKrnEQYs_|~``cf-qGKFsdb*yIVOR=^Cp6y zbv>rN2=?qJu$IP0gSyxCS^hUrTH<$y*z-b=kT_)IE5i?ei#{3kS+N#jgyy+&g_tOW{6?$_@6%gLF39C!$Iam}l>=x%BGSk)S>LeZV=tDZQ}LJA zJ$fLWpdeUhnA3|1Kl=^0%iBExY%4}3_PZME7r}!+nt*x0`{nD%narB0z^_LP4&VJy zLnSEN*)()S4ljzZZ-_kouW>m_P{^6j8EreV1_teFpZ+~PHu}8T3OWCMP|-b=#bvz; zzOQv~9l7J2_`wX@D|fAORM*e-f!?}i^(CKkM!07^?kgN0R;D+OH5Y8+8wmH_ajq;a zrii%y@Lu`MbS#kFIPF#?%KeT67Ly27%qCLrWTySaY8wL?6UPrz<)p#TDvsG1v+lk0L;ldGx{$t`9;MoGXvJR zbl3;%8Coj9#Q#+Lr#)btt%&y=x=(;-6?+~>lBrrgB>p~p<{K|p*dFODGlBIT@|w8W zXGRBP;kC3>XCz( z??G(@?lYQhzfx$g@P1tNlv`@EX<7$+^xu)kVtt^eue%iVH3+-|^h~1Xg>M zwmnejET#y5rzol{-B+ES^|`jQIqv94=#h43f&wrg_ZTkbRfj2*$9~)p6u|)KXcB~T z;}(;s@qE0>gHYuvFp0IG&U-+F5NQa~pG=uLg5qMB%o{}EP8F=t$zE4a0S8ZEx{yV-Twu6o-d0>y}6AB+OPorWEMVC6u5o~~MT zxJ4`7j-<@=Gon2>p#|;5O*VG^X zR2kZHdT1MkjSs*UQ(Sh#4)}A+o&!G5*s*PIzRL#MaYDOG&rn3%si9qm^tr%yTfJ6G zcCfk@WVEmVvVvQ=O)`LkDOxy605uo88V#w#(nL>xE{}z4xcDnGzld3HWz4TE(Ro~e z)VIuU4e#?`LGRw`ei(A%u`4wYykj8}9eY*0(&t7) z+3_83VAEjzhY;fLstKsB`y6{ld*-u`ss7FD663B!4L-$x%qO2sna~5(H@)HrEL={} zFTRIFZh;+qZN=u)UW<;^-Au_Q5qR}kq%_Qdzs)tn{mTBgjjNCqSZ4lF&mca>Ycss_ z&8qwJo1G@GiN4;-%m>&*w)N?k-Je&UmXB$39m>}1&IPTdkiZOHJwY{sq}>(tV)zcF z|B~-y8$JCz@(AYClwFc;Wwcw^47D*be?mNx?ND;#O%`n+0fGXFfbubdG^P;Ng| z1Cu1Hc-^IlG+xEI!=@kedbjkF)DJ=BV`NZ}`75M~$vcy!j=tO40)+JJ%O8-ptv26R zzJ{PyjQXs6PFWhevwPPv133ga{MPqy26I06Z{N&i5e8r401O>qTRN7(!T@Nv&)pL?4en^;*!HLN?ds}9J;uZ*Y1m%HyLF$(!)FnH1_rTthI;8CtpUnztda7+U|#x z@q=(dS48RPU`=u7(~t=pi;n<@lTL z@%knhc8=P`*#LmX0jyW=qE@GG0Q}?6_ari2JDvr<1vl#CN*ac}t;8~jlbN@^i&0~y z=8G|MA8nisqu8E9Z(_0{NNVO{9QZdcUJ0Zhc^?Fx6(<`!&UC~2;pTf59r zbFU6)=va0;lo2)A;|f?A=W8k1eOP+C^;KZP=dQ`}*mA32VdySIanu}~3>t4ds!s$8 z6(6U9l>V6Vbrk8AtLetY1NfiqVt}cw-|t~-Bn%!90@mnS)`SN;_2&#({Rv99MCb*X$>Id??!j*Yh>d*!NdGRnXdycx9=dq-`t>`>yjLIxNcj8OuZ`d4J}-)F;+^a@ zL}?j<_KcvaKQD&amymEN?W=rdaM{d6Bd<*Q?yt^QokxC0>Cjdw>nyJNoJSapc+{_6 zY>+f1CC#`U^`76PG=VL~1Y`PDVjj;fz9^r=lmKZG5Hqo^dB5$FntLAKb#W&t%Z{V+rs2uQE`gxD&sshg`VElXD#gWw=Pw&#mg^?|xb?Iey1$EewcLa$_T$=#Re?t{ z!5xM-AVGz0SZ;$(9_&q<>%en#VTIAapcw38dt9oIg+uAjqcb-fH3s(;pacRME}a!= zDxP@piB&Xj5o+b--gcSNy+A^Cir)dig5VO8L3J^^$iyF!PZHS*q@N=E%R*d`ePPS3 zL1O+okA73#z}MPv^u;`s11iw{SIRrl-@q`jlCcUwzM%uEu=tG^4@NRvBtbdN%I)kKwgL4fZ z?d<~@Z`E(^k~mp#h4?=90=E+H-nrillw`Z~inWbbBG?ubJUP1g}Kq8=dd*VzY{@4L+)N^ZwQ~|S_(4rlvVHS(YpB-cH z&E8!ZwOK9tZ1u4p8|`2AaDK1@-bI!7#Abg%L3OYJ0GAgXz(!=Vm^l|C*||s-9o7wy z9pKUobQ5T3$N7*)oZD~)`gny#g$hA2!{|bSp!g45x%1tR?MkH?`BO6q@~1Zug5S?flo<{NpxVTdA<#+W%PUMRh)qeZLoU=|J_!x4@mW=K4* zGHeOI`r_TzuRNev<+qYWi-H3W^U}y6e!D6Y5N8CZH30;Qno^*Rq7C4sy-h^On(@nkEWB)|{ zOgirOgQa=oWJ&21&@-K!YV_NU3UBq;W9yjB>ZReT1rhjYti64uB8jQr*I4XxFd?&w zF6>WXowB&VXhz?i02<27eStB??#f-=$hS&t=f`XyU&h2r4By(vr6b%o&!zo;n=2pm zkEy%qla?N2Y@qsw?EkD}xSvJQ4Efc@amb(3sjBJgB>EC5iZ7AMZ-(Un$%YM#)+$0I zw7LYuXQ~|N(*E{+(`YKUdh=`-@acH0p>KE0!O-D!=d=D`^I^lmR!fXCo#NU~%4+Rw z`|g}_{px+4=g&)onP(zIB9G?^$B$Qh*(o51{JIhUz4;Z|sNlgD^T#9DHZ(8e%{_3< zz3LZyJQyuz10HGct28B7wx#m3e3SGuGEYFfw9tfHJrjFW-)_DYL3%Z%l;5RlYXypj z)0J+CFS>SObK{AWvoMYN?FqVFT*(28L-hyAQp_4QlwPj|x@(M3k%N~K_G88mWj9zb zDNtti8k$GZ-Iy+V7orFv_mcoK3(mjKdy>GZ*&zy(NdnBp8GT?0Q{)jNndz7F)6brX zlhd7XMe z^V&Ahd~ytZ`Zk66BR8)3agwRsR!iTAUIgTFTX1#8V|E`wcFMvBRkb3)U1kHwB-n&Vp#N`UGJ49ys zsIY0w{@h}6U~hxkVfTKuS~ZfOA>Q)h_KTicKL0)J@41^>Q&}`u&jcE zMvnE{Jr>()?b8sYv*jmhJ4kAOV| zdew9)ngWvtr?EkoYe3W1HLk@GgOi|sK;8;gsdtMqNC}3^?enKq;%>6odg)u^e&j$0 z$lV5bhQoeL%$daZIw!<$3uyx4b-j zA^p?9vh2tOoIP|G^);?4JFeZ+U?~^m=)uwT(?Js11;Y~4+hiL<2+@fKZu`xKIWjMK zE?ZNwVsa&F2x7Zy5{(kllnPZ=CWzlS3Qk^X>cT|(l6FkA39c+uiX0F-y>UtBaA-28 z*~qZa!hi4$KmBGoNV5LA6WQ?Si!~mjfK$2yjM}@Zt(YN6BSugkBUV<8+g{=*@E@-k zkT^6_|BYAF^|D@+6-AE~25|Yy0-BQvux+SDL z1q7r!Bn1Sdq`O19CNS83!}sU=+n+r4$GGovop_z+Iae1t)@kurPt0>%6VExrgFrn# zp37I85zi2*!tlBndO~>u|9Qhyp6{;4Ql-hGJ>{r zt5H-g$Kyxa^-q%-_rF%8D+gpicj}+ytPz(`W%LP3s+Zik=#spML_g$n3n1md`5eTs zrL8G`b2-&QN1_cCA-`8Xdy{4+5_{3TD+J+tBP?YMr>s25{%$&5J>6SxauK%+aW-l0 zc>Knx?*zWWD%1ahzuo=kr{c*n{Er({b|SkO{K!!mC_DjMB|l+9gIlS@u9ADLt}mVZ z4Zez(t@dRsbAWFR!uu1}ff4&3sTSbu6f|KC18U;p#0eWS5WQN3z05z3W^2t2$1TU+ zBgyr(MY}9HU|RG?^KY73q|TdD&e#h5S3Ii4NAm%V@_Y;_FS{3|b9fqUH>U7gnF+fw zLN}^}D=h97rIXRZex!bXmr!2Lf51v~*7C0|1zI!1q>NJ@f{CBpss+!vW1DUWRWf2B zriDeb34|qY8~ozmIa0nt3FPCCn|9FnVK_1e^Sm}MC8#Gos;i}CGBYZiAZx4u_kd- zdA;$vUV}J&eN}bgTnelABIt4>fJ@Js9Pyen%U{B z$w~PbW~WcXE?@1U2DCl5${RWf?Vu6~+>Q$SaSMiX?wvGHbpg5Cz0Dr!)SQnO9 z!Q2SwIEEY2_g$HX%db@OKi=Y>ZYF(%O$p$w;KOWP-MoccZbz2>vg>QX-2_0MsX~fRmoo%r}37sqT|yV;_~=DZzGYz zTyEH}#+!qDan7HuuzT{QF9{uu->Rz`t^ClXT5w_z<%6sM8{d*r#I5V%4){#xZ}S^$ zACKP46-vqGBeG@d5!Zd9ps2D3ucSPYW&+1~AKNZ=*X-cQi8L3ymTnslsT#hyBYP{- z^p7USOZ}J-dc;=`hf!9m4#)!oaro~jAhdCLDD{$lgOd5H1 zb77&+Tk~!@kROBJECs^h4}pFo8hJ%mWsrp=Ngdbnfz#{*0oR(GUXQmlX_el3Fm?ZW2k$WToEUXd|{goD7 zOX~$H8&lras~16kJ~64D&~c%t40=6@b+^DnjsL+vmsW$8JU7@CHCf(}Rk5fv8N6WL1l zNz{iOU`v+Q&Ea}dZX?s?X^>fv3SYx+fT6CQVXHr*wex0k^1K_j%Pc^PIBv46o` zj!?p)T&&cheQm|%s#T}5V=U}qx>)o}c_KfaH~xt^&xqxr#?dZPMSmVIDxoPetAIEE zH4IP_t3v1bYEb0webLf+oO;9nj3MqvK27e|v|=&0o^k_ZD$;qsXwv0E_xeY&ZZwO%`&b7QSS zc3hAMw$NZcUO-4P|qIC3(&O$^BoHDn5cEi=k7kV5gOZQ zGA8eL7~EPna!BrN8ka){q`wpy!0#n2SlgNRK+L%)mOe9VzFMbDr`_u!lZ%@(Z#mV4 zY7)6Z_%t|zY7aNM(I5W^I$*&$VwmafJW?{W;yyor`3*v%yBJcI8w1Wko8+kh?>SNj zno^CIFFuE&JP#c$IR4r!C<4#qS@YKZQ?_sWn~RVV=<;?sHvoH7Cs0mDFYuNANI z&--saRqa9_kwY7TvMK^LM=sG(FSxbewQAZI`A4~D^mXsWe}cT3$oq*5ItVRwB@|*7 zn>1l`dGp>=DIX0U`bf3qRV|>{=`!#Dij_TvBd!czn&W2T3TfVVX(-XK@+hMhcXwXA zkOEHY>d@SOr*A!c-F%Kp!pn^Li4+Jj{H6ut@vg~EpgeF=;ZBWdid1-P z`WqJ;mJK0Hmx{PGI@2tyfW|%pm2k-u6DEF%H&tsJ+n^H1>@qooP`Lm?*fm@~tf5tG zbBMN2X{7PJ_jjKBsBO+7<`B@mVU7b3E9o?TV zmUAjyvw=gYQ6=ZjePjpQN(X0^`P|O=0Y0{%HV+$Ir6QSFs(`x+zk@T!E08!kuCCc< zWc|OyR7QfTo)xn!bq=xw>xOhUN9{Y57mG|TNwB8wA<76d`MyG)^`5Ifhnz82xAO8j zF|Gvl3&a=NU&OoTt82ybs3|X2zeu zRV0+@^Dd|-rN_Oe1w+A9g7^uupke@rfFjW3xgvLCzF_h1<$ms_W)yn^4`cs!Cwpy5 zQ-n2w&mWvcSqLvsx-4E=6ZKnO^;(@hh20LJfY3jELw>uAk`ao$Eql-VZVl!7PW1((?p z8n(wF5TH2oO~}tE#iS_DzWdx+NdBcD@4ess_WbfX(Tj#6d)BgWU_8->4=o7nki*__ zGxNE#trHz;?v?%@Zz+P0Q}ll!-c8YoLA(g49&1>y$Q-8BIA|@iwjd%x9I;zK!C8mr zjY%!l(V1u~8`)cwWxR~EGHT^#jA;IL@$4;fdFqj%w7g3L_H36T+KFC8hx7z9`qwtf zY%r;psSleXyu9y>KkK!NaNLojBj6&Hu3RyD7{}wb(luvbom52ajE{$h&N6sIqT@yi zWDjb;3DuTJ>SX~_sN5B2kNYT7edk%%`Mwg1npQVYbH$p-zEx7)?PUMjj3ui_$~}c^ z+>6I#78ZnAo76g1$&*{tiA4q%z<27nne#mQ*3yImfV9l63c;mcf7?!qOzkXvE`lC+ zOR)?h&1jr(uLkujf1jN*zUbRNsmyO8e$;qX&9%d)Vm=9PJwu2xJwZr=o?7rzv{YsL z6d=rGvfH2sLV$gqeImXOv40|V(9wTyN5OC>ObTZ;CQo5TOZQ)Yv5T$CZV<1Qnk1)} zV+#qlK)PE>D(J}B3tcBG2n5v^i-bDIb(IM>I)O~Us9YA;c99!(qQP1bJ-dcQdEVsj zB4o6dK{OK7EK0$VheDNt;^5qmFKa0oGo9u05-rXCp!vD|jGFi3Pzc=|x~aE}^F{wx zUvYZV_*C9`)y6Spq1y+jH&G1&x`QSNc(`p6!fE~MWNFUu!}2eF@jwVe)bk}vG$cy!M;)P z`|VW2P?F>oj(yEJ--ZZ66(#*(K$hC2sGDJk}&*uJ|B0z=BN%H+!Zi*ndb)4DQ?Je{zvk`BtY;*U2nqG~Z6=lmF-M1Mt&^t4G-yxK4_Kwv~9EE0H6 zzMTO)fR1UT{=^ae!)nKKVLzO=@%uWowTY68SkSI-FN#lKfKz9$6<1kdpDoMnFK9Vm z_KC*ER*$i2shC!$h1LpamUJ!LTH+5Yv2-Kj^zuc%t{5>$!^-d?DctMv+w@tVF?;V= zq;YFDaW)=fKSZJcq1KDei@IsQojp9fmOH$>guTxtmg$CmzWP>_b=e@GiE@!yTkx`| zl=X-E>MLk5?|`OJR+Xu66QqjCxp5+}uPQg?vGlLsu(E+YZw;ZV%Ie>>U1hl1tD#Nq z&&3yLD!puKaf&v%8{{?v2|xkmy0hCtVI!u3*uLgtA$VJbM5bc@(RIg?N=eXbnjP9c zaXRykMd{Z_`R}`Ks+x?DulTHd`c5bYm3ASX>5^UK^HObu&B@CZvhP8 zPk5dSFlYf{Z)Z|-Ieh@0E^}YMVy5*=O1bw3PJtLMQ+6# zA|0AIOAxO|3J6P%eb5-~gVmM9$wHRq*7kL%%Z3H)0 z0dAD8)?RvKh>hQ!7`uQLs_6E+Vb(|~#4u&vBQywEEKZ-~BP;|yCQRD3VA5VE$dcib zhaQhHM`Qbw)vk#%F3ub4K^LQ~^}?Czx9Ts&WDjArG>^4tIUR_f|9R1-XsOy8l1`2N6^++_wp?Ml<_|N%K_+G3L6qk&?Sv=p$EY&y?q6mS zzakuyiZ$ODpVslV4+#(XQtoAB@($Y@PqMQ}S}vsSLUorD_$~`e)ue=+uTtmb4er=* z{Eq;79jK?LN2f&Ee`V+s0QLs-Khns?2yTAEll4-cCq8ADh|;&M8ijn4eDf_iaQe(r zREZTD)vDs7mcOQbydD)8!vmUgAmIo8D?cg)!lm zf1=g5?i$QqKto?}KS-X=6CRCV-s%bhIg)BByZL_S^U{`~t`0k zY^Y_B07!(9fECZVY$Wt`=z$PwZEp5MiemgnKOTY)L2SVk^B~v$uTIkykMT^~vbW3+ zUibv5PrTg|p>A-Mus^42tS-W1cJ2VU^7z$#Ksd)Hq^|%MKycOj7|Zl=;)2S$+*Ky) zC3$rv2Cf(RFX{^VBpM0T$8-YcPcsrO+Zza^f3DdV`91RhdbHBuw?|u(sZeCdlp{`8 zS+TeyzH#p=*lp&fFA>bAKI`?nEpT;6O5T6*I^VEy11X=YP$c7-v5UNqprek*8rigL z4)0z!w=A-Q;S}>5r>$=Lbz8FSBrRfLA~>~FJKDHHQgpx1S8xyT5A{%{Qkh?9>8=RP zr)_2Lz`%%?!G>&%U``ziD|v4ta~F0EK_7E#=c*y)w^(EsUsYHzfwmhV@4o6f4#>tG zHz-AYjH%A0v&TY`JU24l%4^3%LJ3)vE%Qs)T2s|LxxREN*3m_@@nT^E3R}rf{R0MY z|3>A1PP>Hb5G;IM!yu^spa`B{6p{4;$*W*KCj3A?C|>&*uTG*&{QcWQU5<9Im!3{H zQ&V>6b1RsEH3Rm?LPVG!=E(zTB{~?=s-K)WKEzVJvV@|93<|t48ck~;Kzq3^4PSjH zzyZhbj(sFDL`!Gx0b%Yn>@Zx}mV9>FC;Xs|C>1d7HFj&F=!SPS@BF?aR9tb54CU>N z&sLNRk}>ke7UnosGMG00?*(v)%P@im7$A?mv=x@$8J#l&-}HnQnJbqiGMQzB5pL79 zVlV?b6R9U=@gtj3=FK9}@SY9gZFwaw%j4f{9u{6Q%YIU8_{}2q`MYh?5`fG!WZfx_ zZ1rir<_S9pb7cNc2+SfE6&<1P@jfWL1{TUFXy*74+-n}1d;zDyIKJ1eh7>SEQKs}D zB%a#&@4^!6#Vx+0D;XL>m>_hK!&^X_JXpeYss!4ON@;){W~GY2m8Fq^xA%LX+@|x0 zJ?`!|J3%aa=23l9dK}~WLZ>VqKRf)reH6Jkk?MPMH|@Ao`Zh<@GC9^p> zdfASV{>-9!wZR@K{iYfw^VcCHE}95hf`Ek(-ixyr{q#0z!n43(Xez`-kx!@_^J6TA zq)2bs^~7{HO_(wcE}A$}`Xl#(z7_Z_J~1(h@(8R`-~>_kNb_u9^{xlQL&NC>-nZ^s z2~+TiZr=P51IRQ6_oLEgVnp>E#i@xQnywRAqYWWZS*(4zAw1TKGA?de2XXjmrc1ts zVy;Hs&h4hpX6z(3X5a5p^~H(2H1x`i*%;!U`n(S|a=}MhAJu{O$!s+ILoi8JsHfEb zQ;5bE%`w3CuvAqErs%u+>xAiUQ;ZcRoFc?9gd+SEw4Xp`(ZmXTDhKu3BiWO~@x6F1 z>lF?U)uYuZ80$GqG5r_*GYZTu@636>w#og!oY_~EGcr#bqU9}1~ro43zW)m{!g zPa5~HNLe<75HS_9h5N%!a-zRhLM3P?!f(}8Q#bpf4N9Rd!_29@WK~N5;eVc6oV0K! z0nPE}dKP#9=M9_|7zXHMR7K>P#K14$LcKJYT{Su}#u_!UEPmnjS-p5zFt!yq^|6iM z*x7SygZU@PLG7O~3H=-ba+}9751cB*YNJ>sbS35Ykw$ZRrL<-8gs82;ECM?+$n(Qt z>4F49NoG_>lKfQy7#7MJI*EOfHy4BkTrnoA=B6=1Ni`XqBPj%ro@uzWL6(5!QM|5O*10i$ML z7uG1#jsy>fSm%@x!tMwk(WoZV@cEzeUcoqJB+PfMBY&6(#jaxn|k4wW`HeRj1lcnHM{vTlgL^Zfbye zW4*LU{S3<)Mx8ZA3-5F^=08{XM6)0Iy$fgmc4c(|{{t#-YewUryoLkp>l0Bm-K_vW zZg)Rir#8nMfz_^RL39@Lg;!zkbaI?)+v$xp;>u_r=xAQ?O*7~P3V@BZ5Q+F3vSQECC)UV*$pO(Nhnl(>yxguT|x=`WW>4W_U4?K<`cl= zSZ$Xv4_geJ)URpZGHQ1Od#C!SG!lK-7IfVTW8I`C!ob^!`V&V|=0-sC^QSwJ31q3D z`nl_21^C)Kjgpiy+0voRukv2to+;DTNtZ1zfb# zvcZQ5sdTFZk)i$fQGd#Wst7}-Ewm(5<{wKyFGo?_&b7`Tbv}0C4u_ZL>-#HuN^EO= zg@nfq;4sp{5hEJ%Q=kWp2OC%9`~wuLj8}x5cXYc!;@dLihqs97N)e4K;BjAP92H^cK>&y0y98<=y&6AKAom&bq ze{Yx0+uZpeE{CPMLeBT3?a4UtTVIx|bANv+pD4()!YePV`200tnYYAAGxG9riu0LM z(YkQ*!wM3MQBGPM*9*>tO#FMqsgd%kUbHmftz;Uw)t6@#LmmO zM{yx2>bvRg3E3okppKwprcnV^oVySnSe2)*~vSX&!L zb${nR$#Lz85C@IPyt|acQ?xx=Z@G(?hbi8AIVa#{KWE_5o3a&_zQg!NrU1JjnHke6K*+Yr@kR2>d`C% z^7bWC1?T%^FI_u)k+?$s>KIO+aIVF8;Q6qa9y7S^&5pTr=?F>>mqFU4NMrt70t~#SjLDlKn zDq@C1c{RE0vr%)H+2DIVDzXD=vKd<-eMKP2b7L~f_*jx8vyDk0)8_XoyH}J(EsRj^@I>Q1n05N@!yXgfw4lb%v-uMp{K3e z@y*Wb#=;7<___g~VF~_=@n$(;hKzS8bM9cZc zhXH1WfU{H4lYY?mUp8NMN)$r{Hu~6pQo6!R4ng%ZxES9TXnw1F#3}>m9hR#x7^O#> z^tJxFA-txROxfQ38QX|(l_uBxTajDhSXiSm{}<$SUaQ_m?nO;^6Mqaff3l1ZZ9$@i z-~s7HP+fG>aZSB=9qVB8><>%uHpN>Q_}BvE(BXM92ci71d6Dh4)uS8FMpJ7r6sve1 zYdaMUj^}kR{ z_Ft0tZ&IrqV<@fUuKGvv;#JW39Q=DZWjup%v@? zaD5PCyBiYbI6igh(phk2wK6aUrkSNutbSQXMqrIst>X!F^Tss?#4PiAcdmw9-_wg5JZE2Ye zdnTI&*T5;Mr@B&~Jq5-=LuQS4$z4UUW4Q>*;vyV@g%FGQ4WjBp$_}^8>$-iK`PaNH zI(9xQE;)UZxZtDY7KZ_MkSf)t;lUORB%j$={eS-=ceu*jSMOwVxO#I2MJA=L4pdZ` z|1sCp1rVZrtW~b;l2SBA%y$L)2)mpIiSqS+cvh+vZakLc?kG&x9U=YtWvVOk2>xbK zYg4Y$5tsf4TX3}5wTx%PsoZAs(pfnk?Q>10yg2G}MMO7Dn(z_h1+Mf3$WZMPa5rfs zrJx~K{Iv6<2t|c5EpspJw&Jd3baGn!`Lt@ub;39&owgqJmupUoAykd0tPVFsauJL; z^4*edkj1c3iz+ac*nhfUy$lg7gssN z?|gh$a0i1G5?L;Nrswm`LV-#QQ`&iwKl&+Zl0gtTq-)R0fMOI>k4{wM-Va0B)sO}f zSa>wzCixK62LSPBJ6zG2^oK*zx&e+mhpeaLZz3JO({G#Cw8Q+!wDSX<^9z`(M*2X# z@tU)|Uv_FQ*t{QG^s>m-PRsY6@my`O;6IoM@)n^*mH zG~PZ%N|J?4CJ(N^>aiv3kg|ZH%L6hYz+o{WFH=&B^Pv_!^R@Q)%1s8bp@Cw<{?4OsXd}X zAn}<(+RVwH*MT5k)*0gNu8 zSWry{*DL<^JeVx>TxUA{z`y2RJg%C_`fcK+62)oscO^D?R#CdF=y*)jvR_Clg6jv0 zk8U%wfZUQNP`Z5tk=geZ z(V?{ILx66dRqu5U^Al2GT~*=Kpoa~>^3YjZnNi@~?gx)_W5p_7m18*WH;!d^VVgV* zTkN<#I{m~J4HKay0GwLQEabYDNO^_-_n?KU?#6*r8U*!Gqf52 zH7?$KK=D=GFI@3E3pn9Luwsxn8h7zbL+d(;o}%imsh8P#GtFqfUG+ljnSd9xs3dq|Oce52Qes`_V#wEzj1v z^qGrLESieL8&uHQ3C&tQtxH$2VaYS62cuXou570=jL#$+W>znNdTA4Of5u$RY1$e^ zj;d!2>RElB=`kld{d>B+j$`EZRYVB9SltEDZ>j4ndG39ZAWA9~ZEIrp@KS1nyauQ< zO*qj8DEbIU~caDf9c?&+b={6FuC$cUb#FN9@I zcYhEoAk>u_$qb%Bs54<)%_FcrxzjOq2-Avd;PQIgc_@d_ncq6}A8c0Lx`o-@?48=6 z(tbs+Q=oJaF86$_>FPNgz&YM)g73VS1ed({lI=Wa;5|2|1i(eERNiA9&|?-*audf5 zKkV_XGIF)rnF^w0V-?Q+wN$q~v>c!x-Pc^e`4GZs3jk6|<9v0_$|4G0vt_Dwsw+Dv zLJEujFy-~IwJ%LzpJh;rdch@@jiRPH%?4(8=q!7<8#Tl(4IGA# zxzuK^3<2+J*K{L|2wO(mmP`sTa-M|h4Q^W+mi~vC%$QCkP8h+fu*9ca<~?8wd!eLZ z#D#$~_b#`E7GsI5b!_*k9c*&1az5EZ_6Dx2JYYz-Qeyh`PN(%>Ra+1D%z7M!WWTuM z+~&*Mac7`c8p*F>11Di9b-tx+mUM{g$5r zO-%Xj)qMlk%Z6m{3ItZJ^3#M7aR#1f1ccN?`0M{lU_^EY`tM9}?N8uBNJyY^;{<8s~zI{IsFh?0ThLlLN5tvuMX0FjR%`AXrZ;k@cKJjcY9NYCno2yzZB;&j2N|wSmugF{Y)F%hd_1k> z26d;d1FzsGO-na zXXJMR`V{=opDwLe)teHbrCEh=jutD@wd!#IJy=Q^iLc#uT zqTmB36Z5I-Am6lKo`%}3^>E2YhFppE3e}C+UHt(P9I`)T{mMR*T>Xu#!s@d(Nwwo{S4* zTr64iZHCtMk%Ahw&QG$g`N)+*O#0H2cAZF<*4Q5E39f#zYkj;EyejU*Q7iasfPuI5 ze5bR8ar^yd8>H8sa^?Ctv`G=kbj_z5sPar`l&S<`>z36-L>~pk%t4MKt0kHsihHl?1H2Y6A}KU;DPdZ<&9V}4p&?Ttw4jdLG?g}$qr)kR z-shp(>TD-t!a>#zA=CBQ`5hUIKBGM+bKe?3#n^k}98C8~%*LcXU}NY+gUM_K*82Sz zaMxqKK20FI$nD>k^saLWsL%W`ip83Rm<`~#?M8T0porR~R~^VlB!A|i!3S1z$M23< zvbUA4YB`i)q5#JfZFKrE+gLCD>``Z-pufIzkhqCR};Wpv2 zOWo&oeQvvXDs$;N6hvbIJ5yx>;vSpqWc^l@DTM)&%_@3JI&8`l_tS_ya2s#lNg5B` zli6)UQ~-U@Wy#h?pqsyhA<)~2mQm|BXG_fC8lOrGQGC^ z274jlZW!rhW87#ZLpczDM(!PyQ1|k1hO*Yzs(vX3&}<8e{B==0Gy}_`V2)f#TXq)> z=A%OGaK!-yPNE2VZv=rbD>XV-Wj*LOCv653=anWR$$&U?)PpJp-USDMZKfTm62~-+ zneCDLAQWID5c@D`4sa&iH2u3F&lZfFd=i@N2-5BAZvs6EG(D~zyDTmR;%h(4k%#s; zQG%O5{NG#fDfvQPFiNa3vk zzV&1Az{Sf&n77EQvhU~5a$KfJL0HbWnxonW6vlaP1f~5UQLMkl9TXD*bQEngoS)3# z$wCnC&o?IT>=Qbo3k|o;ZF~ z7Xbm=^}iJ_{MF)tyAr%7AHnv}Yr1>Mj+9@J7JMLdco@_ILhY$3$X=chyDiKweLT*u zM`VuOb`1z3|0y+C&jOnxjM%H;Qva#?e$s%9AVYmHVbF0+BX|h1zW`H&dO3peC%Br$ zhWsU~Lw zgOh>VK3Frnuti05Q=m}h0R;=1-k>7zmvcx3iuxypdytQ2>90fF+aO_p?|T%{n3Jb5E)^5#8f0p%eDPH1t-ya+DqXAhIQ$+^Tz3 ztCOg4iNYBK=SSX=c>bK58OOtnn!PN#LERh;(;$G9B8mnn+4Xc4WjA>|Eyw$ytQjO{ zovqlDg{v7MkgRKFk_2b`8 zY_e^p#fmYQbmO}JHC)3jUf*@!a#|Yx%nyIy{0|i<{G9@$!7c!JKGs~6b20DpOoc? z9C1+zGwiSzs>2pYe&AD2-+c+5M_Mc)F&Au{g(kY#4kr~Y(#6I{Hv~lwJ4aN@Jxz-+E(9=?9n{BAG@_N~Hq$Yf?I(1(l70{a z%|SOZT;wg~#t;J`QQG{#vJ+8V;=fF#subALdETkogUd|54IEM|)u6&Xy@p4 zlIQmk{GlXiVbrZaf&1}`^iI#8HNi1@tsI5 z<}VnLo?1Y$$Q>QQdE>BtB}Hg@ePjMT$!?NxN!bHgOa5*Uz}gX9nkx@o0I&QO3-&fv znHRfT=nl()8g@_DiGQT9gMS`k8dAwd{Eb5Vf<65tIqig?EdJtFepv|Sn1A20)E$>E z)VCj$Ac=$X{A~BNBt0;(ONYFZZ^*#e#nIA+3{^Rj+D#}k;(Pnoj~cHfU@7Auxc?4l zsxoH#!)t6@SuAA&$>y`SYQ|O;MCdmzY3MH4LW#TfTKn#qQkH$DDrE}P97`(uk~1Xl z#87~;%8lO)v`EhDa?qv3fwkt2Z>xf@*S=#W<=yZGZgJ}xX`1ZG`o^2ocxx9tVmD6U z(?6r)b`f?0$iE=iZ?AYYTOhp}uhRTy$8%A7$9zdyl~8WS{PeVgO+|I>`q znF8}i;Q#fq>vKJ?9t^G~GAH0~;Au}Cr>8c8b948&ER^npkR!s5`-*en+-;xFu7nWo z0t@QbycloUd;&R}gSg5$4s#}6apFWY8Z6pLJ{p{;aHbU$Il-r$5Kqpn6b%^GxQzlZ zgFnmO9-_jD9Q=Bs5uv<)Tkf0;N45-7GinH^77X05TZf_j7}_3!Aw2$tLxxi%-(kWd fam@bhZznkXN*6XrAigh$g!stIC`(sMnuh#83Dtw4 literal 0 HcmV?d00001 From eff0686cb5f976ea125d4073df47025a26721175 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:56:53 +0200 Subject: [PATCH 18/37] doc update --- docs/en/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/installation.rst b/docs/en/installation.rst index 191440d73..89eafcd3e 100644 --- a/docs/en/installation.rst +++ b/docs/en/installation.rst @@ -92,7 +92,7 @@ After installation of the EIM please follow the steps below: .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Conversion.png -4. Click on the ``Yes`` button to convert the old configuration. +4. Click on the ``Yes`` button to convert the old configuration. 5. Now in Espressif-IDE, go to ``Espressif > ESP-IDF Manager``. The ESP-IDF Manager editor will open, and you can proceed to select activate against the version you want. From 888e059997a5aadc117e86b16cccc82f9796a1c8 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Fri, 4 Jul 2025 07:47:32 +0200 Subject: [PATCH 19/37] IEP-1585: Fixed eim old config import handling (#1263) * IEP-1585: Fixed eim old config import handling --- .../idf/core/tools/ToolInitializer.java | 19 +++++++++++++++---- .../idf/ui/tools/EspressifToolStartup.java | 19 ++++++++++++++++++- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java index b323142c4..8c3fa2f3b 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/ToolInitializer.java @@ -84,15 +84,26 @@ public boolean isOldEspIdfConfigPresent() return getOldConfigFile().exists(); } - public IStatus exportOldConfig(String eimPath) throws IOException + public IStatus exportOldConfig(Path eimPath) throws IOException { File oldConfig = getOldConfigFile(); if (oldConfig.exists()) { // eim import pathToOldConfigJson List commands = new ArrayList<>(); - commands.add(StringUtil.isEmpty(eimPath) ? - idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH) : eimPath); + String eimPathStr = StringUtil.EMPTY; + + if (eimPath != null && Files.exists(eimPath)) + { + eimPathStr = eimPath.toString(); + } + else + { + return new Status(IStatus.ERROR, IDFCorePlugin.getId(), -1, "Cannot Convert EIM is not installed", null); //$NON-NLS-1$ + } + + + commands.add(eimPathStr); commands.add("import"); //$NON-NLS-1$ commands.add(oldConfig.getAbsolutePath()); Logger.log("Running: " + commands.toString()); //$NON-NLS-1$ @@ -123,7 +134,7 @@ public boolean isEspIdfSet() return preferences.getBoolean(EimConstants.INSTALL_TOOLS_FLAG, false); } - private Path getDefaultEimPath() + public Path getDefaultEimPath() { String userHome = System.getProperty("user.home"); //$NON-NLS-1$ Path defaultEimPath; diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index dc50ef9a1..cbc756bac 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; import org.eclipse.core.runtime.IProgressMonitor; @@ -161,7 +162,23 @@ private void handleOldConfigExport() { try { - IStatus status = toolInitializer.exportOldConfig(eimJson != null ? eimJson.getEimPath() : StringUtil.EMPTY); + // if eim json is present it means that it contains the updated path and we use that else we fallback to finding eim in default paths + Path eimPath; + String eimPathEnvVar = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH); + if (eimJson != null) + { + eimPath = Paths.get(eimJson.getEimPath()); + } + else if (!StringUtil.isEmpty(eimPathEnvVar)) + { + eimPath = Paths.get(eimPathEnvVar); + } + else + { + eimPath = toolInitializer.getDefaultEimPath(); + } + + IStatus status = toolInitializer.exportOldConfig(eimPath); Logger.log("Tools Conversion Process Message: "); Logger.log(status.getMessage()); if (status.getSeverity() != IStatus.ERROR) From 17cf0753d2f196074b84fbb5752fefb7ce64bdd1 Mon Sep 17 00:00:00 2001 From: Denys Almazov Date: Mon, 7 Jul 2025 15:00:07 +0300 Subject: [PATCH 20/37] IEP-1584 Avoid Simultaneous Modals on Old Config Detection (#1264) fix: added global modal lock to avoid multiple modals --- .../com/espressif/idf/ui/GlobalModalLock.java | 44 +++++ .../espressif/idf/ui/LaunchBarListener.java | 16 +- .../idf/ui/tools/EspressifToolStartup.java | 183 +++++++++--------- .../tools/watcher/EimJsonUiChangeHandler.java | 38 ++-- 4 files changed, 159 insertions(+), 122 deletions(-) create mode 100644 bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/GlobalModalLock.java diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/GlobalModalLock.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/GlobalModalLock.java new file mode 100644 index 000000000..b8eefd500 --- /dev/null +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/GlobalModalLock.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright 2025 Espressif Systems (Shanghai) PTE LTD. All rights reserved. + * Use is subject to license terms. + *******************************************************************************/ +package com.espressif.idf.ui; + +import java.util.concurrent.Semaphore; +import java.util.function.Consumer; +import java.util.function.Supplier; + +import org.eclipse.swt.widgets.Display; + +public class GlobalModalLock +{ + private static final Semaphore lock = new Semaphore(1); + + private GlobalModalLock() + { + } + + public static void showModal(Supplier dialogSupplier, Consumer callback) + { + new Thread(() -> { + try + { + lock.acquire(); + Display.getDefault().syncExec(() -> { + try + { + T result = dialogSupplier.get(); + callback.accept(result); + } finally + { + lock.release(); + } + }); + } + catch (InterruptedException e) + { + Thread.currentThread().interrupt(); + } + }, "GlobalModalLock-DialogThread").start(); //$NON-NLS-1$ + } +} diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/LaunchBarListener.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/LaunchBarListener.java index 7ce84c6d3..be7f03ca1 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/LaunchBarListener.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/LaunchBarListener.java @@ -140,15 +140,17 @@ private void update(String newTarget) // If both are not same if (currentTarget != null && !newTarget.equals(currentTarget)) { - - boolean isDelete = MessageDialog.openQuestion(EclipseUtil.getShell(), + GlobalModalLock.showModal(() -> MessageDialog.openQuestion(EclipseUtil.getShell(), Messages.LaunchBarListener_TargetChanged_Title, MessageFormat.format(Messages.LaunchBarListener_TargetChanged_Msg, - project.getName(), currentTarget, newTarget)); - if (isDelete) - { - deleteBuildFolder(project, buildLocation); - } + project.getName(), currentTarget, newTarget)), + isDelete -> { + if (isDelete) + { + deleteBuildFolder(project, buildLocation); + + } + }); } } } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index cbc756bac..b7608ee87 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -41,6 +41,7 @@ import com.espressif.idf.core.tools.watcher.EimJsonWatchService; import com.espressif.idf.core.util.IDFUtil; import com.espressif.idf.core.util.StringUtil; +import com.espressif.idf.ui.GlobalModalLock; import com.espressif.idf.ui.IDFConsole; import com.espressif.idf.ui.UIPlugin; import com.espressif.idf.ui.handlers.EclipseHandler; @@ -68,14 +69,13 @@ public class EspressifToolStartup implements IStartup @Override public void earlyStartup() { - preferences = org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE - .getNode(UIPlugin.PLUGIN_ID); + preferences = org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE.getNode(UIPlugin.PLUGIN_ID); toolInitializer = new ToolInitializer(preferences); standardConsoleStream = getConsoleStream(false); errorConsoleStream = getConsoleStream(true); idfEnvironmentVariables = new IDFEnvironmentVariables(); - eimLoader = new EimLoader(new StartupClassDownloadEimDownloadListener(), - standardConsoleStream, errorConsoleStream, Display.getDefault()); + eimLoader = new EimLoader(new StartupClassDownloadEimDownloadListener(), standardConsoleStream, + errorConsoleStream, Display.getDefault()); EimJsonStateChecker stateChecker = new EimJsonStateChecker(preferences); eimJsonUiChangeHandler = new EimJsonUiChangeHandler(preferences); stateChecker.updateLastSeenTimestamp(); @@ -87,7 +87,7 @@ public void earlyStartup() notifyMissingTools(); return; } - + eimJson = toolInitializer.loadEimJson(); if (toolInitializer.isOldEspIdfConfigPresent() && !toolInitializer.isOldConfigExported()) @@ -98,8 +98,8 @@ public void earlyStartup() { promptUserToMoveEimToApplications(); } - - EimJsonWatchService.withPausedListeners(()-> handleOldConfigExport()); + + EimJsonWatchService.withPausedListeners(() -> handleOldConfigExport()); } else if (toolInitializer.isEimIdfJsonPresent() && !toolInitializer.isEspIdfSet()) { @@ -111,7 +111,7 @@ else if (toolInitializer.isEimIdfJsonPresent() && !toolInitializer.isEspIdfSet() { idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.EIM_PATH, eimJson.getEimPath()); } - else + else { // Fail-safe call to ensure if the eim is in Applications or user.home it is setup in env vars toolInitializer.findAndSetEimPath(); @@ -127,14 +127,14 @@ private boolean checkIfEimPathMacOsIsInApplications() { if (!Platform.getOS().equals(Platform.OS_MACOSX)) return true; - - String eimPath = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH); + + String eimPath = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH); if (!StringUtil.isEmpty(eimPath)) { if (Files.exists(Paths.get(eimPath))) { - boolean isInApplications = eimPath.startsWith("/Applications/") || - eimPath.startsWith(System.getProperty("user.home") + "/Applications/"); + boolean isInApplications = eimPath.startsWith("/Applications/") + || eimPath.startsWith(System.getProperty("user.home") + "/Applications/"); if (!isInApplications) { Logger.log("EIM_PATH not in applications: " + eimPath); @@ -142,98 +142,98 @@ private boolean checkIfEimPathMacOsIsInApplications() } } } - + return true; } private void handleOldConfigExport() { - final int[] response = new int[] { -1 }; Display display = Display.getDefault(); - display.syncExec(() -> { - MessageDialog messageDialog = new MessageDialog(display.getActiveShell(), - Messages.OldConfigFoundMsgBoxTitle, null, Messages.OldConfigFoundMsgBoxMsg, 0, 0, - new String[] { Messages.ToolsInitializationDifferentPathMessageBoxOptionYes, - Messages.ToolsInitializationDifferentPathMessageBoxOptionNo }); - response[0] = messageDialog.open(); - }); - if (response[0] == 0) + GlobalModalLock.showModal(() -> MessageDialog.openQuestion(display.getActiveShell(), + Messages.OldConfigFoundMsgBoxTitle, Messages.OldConfigFoundMsgBoxMsg), response -> { + if (response) + { + startExportOldConfig(); + } + }); + + } + + private void startExportOldConfig() + { + try { - try + // if eim json is present it means that it contains the updated path and we use that else we fallback to + // finding eim in default paths + Path eimPath; + String eimPathEnvVar = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH); + if (eimJson != null) { - // if eim json is present it means that it contains the updated path and we use that else we fallback to finding eim in default paths - Path eimPath; - String eimPathEnvVar = idfEnvironmentVariables.getEnvValue(IDFEnvironmentVariables.EIM_PATH); - if (eimJson != null) - { - eimPath = Paths.get(eimJson.getEimPath()); - } - else if (!StringUtil.isEmpty(eimPathEnvVar)) - { - eimPath = Paths.get(eimPathEnvVar); - } - else - { - eimPath = toolInitializer.getDefaultEimPath(); - } - - IStatus status = toolInitializer.exportOldConfig(eimPath); - Logger.log("Tools Conversion Process Message: "); - Logger.log(status.getMessage()); - if (status.getSeverity() != IStatus.ERROR) - { - preferences.putBoolean(EimConstants.OLD_CONFIG_EXPORTED_FLAG, true); - displayInformationMessageBox(Messages.OldConfigExportCompleteSuccessMsgTitle, - Messages.OldConfigExportCompleteSuccessMsg); - } - else - { - displayInformationMessageBox(Messages.OldConfigExportCompleteFailMsgTitle, - Messages.OldConfigExportCompleteFailMsg); - } + eimPath = Paths.get(eimJson.getEimPath()); + } + else if (!StringUtil.isEmpty(eimPathEnvVar)) + { + eimPath = Paths.get(eimPathEnvVar); + } + else + { + eimPath = toolInitializer.getDefaultEimPath(); + } + + IStatus status = toolInitializer.exportOldConfig(eimPath); + Logger.log("Tools Conversion Process Message: "); + Logger.log(status.getMessage()); + if (status.getSeverity() != IStatus.ERROR) + { + preferences.putBoolean(EimConstants.OLD_CONFIG_EXPORTED_FLAG, true); + displayInformationMessageBox(Messages.OldConfigExportCompleteSuccessMsgTitle, + Messages.OldConfigExportCompleteSuccessMsg); } - catch (IOException e) + else { - Logger.log("Error exporting old configuration", e); displayInformationMessageBox(Messages.OldConfigExportCompleteFailMsgTitle, Messages.OldConfigExportCompleteFailMsg); } } + catch (IOException e) + { + Logger.log("Error exporting old configuration", e); + displayInformationMessageBox(Messages.OldConfigExportCompleteFailMsgTitle, + Messages.OldConfigExportCompleteFailMsg); + } } private void displayInformationMessageBox(String messageTitle, String message) { Display display = Display.getDefault(); - display.syncExec(() -> { + GlobalModalLock.showModal(() -> { MessageDialog.openInformation(display.getActiveShell(), messageTitle, message); + return null; + }, ignored -> { }); } private void showEimJsonStateChangeNotification() { - int response = eimJsonUiChangeHandler.displayMessageToUser(); - eimJsonUiChangeHandler.handleUserResponse(response); + eimJsonUiChangeHandler.displayMessageToUser(); } private void notifyMissingTools() { - boolean [] userAgreed = new boolean[1]; - Display.getDefault().syncExec(() -> { - userAgreed[0] = MessageDialog.openQuestion(Display.getDefault().getActiveShell(), - Messages.ToolsInitializationEimMissingMsgBoxTitle, - Messages.ToolsInitializationEimMissingMsgBoxMessage); - }); - - if (userAgreed[0]) - { - // Download Launch EIM - downloadAndLaunchEim(); - } - else - { - Logger.log("User selected No to download EIM"); - } + GlobalModalLock.showModal(() -> MessageDialog.openQuestion(Display.getDefault().getActiveShell(), + Messages.ToolsInitializationEimMissingMsgBoxTitle, Messages.ToolsInitializationEimMissingMsgBoxMessage), + response -> { + if (response) + { + // Download Launch EIM + downloadAndLaunchEim(); + } + else + { + Logger.log("User selected No to download EIM"); + } + }); } private void downloadAndLaunchEim() @@ -295,19 +295,22 @@ private void promptUserToOpenToolManager(EimJson eimJson) messageBox.setText(Messages.NoActiveEspIdfInWorkspaceMsgTitle); messageBox.setMessage(Messages.NoActiveEspIdfInWorkspaceMsg); - if (messageBox.open() == SWT.YES) - { - openEspIdfManager(eimJson); - } + GlobalModalLock.showModal(messageBox::open, response -> { + if (response == SWT.YES) + { + openEspIdfManager(eimJson); + } + }); }); } - + private void promptUserToMoveEimToApplications() { - Display.getDefault().asyncExec(() -> { - MessageDialog.openInformation( - Display.getDefault().getActiveShell(), - Messages.EIMNotInApplicationsTitle, Messages.EIMNotInApplicationsMessage); + GlobalModalLock.showModal(() -> { + MessageDialog.openInformation(Display.getDefault().getActiveShell(), Messages.EIMNotInApplicationsTitle, + Messages.EIMNotInApplicationsMessage); + return null; + }, ignored -> { }); } @@ -328,7 +331,7 @@ private void openEspIdfManager(EimJson eimJson) } }); } - + private class StartupClassDownloadEimDownloadListener implements DownloadListener { @@ -347,7 +350,7 @@ public void onProgress(int percent) Logger.log(e); } }); - + } @Override @@ -363,7 +366,7 @@ public void onCompleted(String filePath) Logger.log(e); } }); - + Process process = null; String appToLaunch = filePath; try @@ -372,15 +375,17 @@ public void onCompleted(String filePath) { appToLaunch = eimLoader.installAndLaunchDmg(Paths.get(filePath)); } - + idfEnvironmentVariables.addEnvVariable(IDFEnvironmentVariables.EIM_PATH, appToLaunch); process = eimLoader.launchEim(appToLaunch); } - catch (IOException | InterruptedException e) + catch ( + IOException + | InterruptedException e) { Logger.log(e); } - + eimLoader.waitForEimClosure(process, () -> { if (toolInitializer.isOldEspIdfConfigPresent() && !toolInitializer.isOldConfigExported()) { diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java index 4517e2a0f..767778fe2 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/watcher/EimJsonUiChangeHandler.java @@ -9,7 +9,6 @@ import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.console.MessageConsoleStream; @@ -22,6 +21,8 @@ import com.espressif.idf.core.tools.vo.EimJson; import com.espressif.idf.core.tools.watcher.EimJsonChangeListener; import com.espressif.idf.core.tools.watcher.EimJsonStateChecker; +import com.espressif.idf.ui.EclipseUtil; +import com.espressif.idf.ui.GlobalModalLock; import com.espressif.idf.ui.IDFConsole; import com.espressif.idf.ui.handlers.EclipseHandler; import com.espressif.idf.ui.tools.Messages; @@ -54,32 +55,18 @@ public void onJsonFileChanged(Path file, boolean paused) Logger.log("Listener is paused"); return; } - int response = displayMessageToUser(); - handleUserResponse(response); + displayMessageToUser(); } - public int displayMessageToUser() + public void displayMessageToUser() { - final int[] response = new int[] { -1 }; - Display display = Display.getDefault(); - display.syncExec(() -> { - Shell shell = display.getActiveShell(); - if (shell == null) - { - shell = new Shell(display); - } - MessageDialog messageDialog = new MessageDialog(shell, Messages.EimJsonChangedMsgTitle, null, - Messages.EimJsonChangedMsgDetail, MessageDialog.WARNING, 0, - new String[] { Messages.MsgYes, Messages.MsgNo }); - response[0] = messageDialog.open(); - }); - - return response[0]; + GlobalModalLock.showModal(() -> MessageDialog.openQuestion(EclipseUtil.getShell(), + Messages.EimJsonChangedMsgTitle, Messages.EimJsonChangedMsgDetail), this::handleUserResponse); } - public void handleUserResponse(int response) + public void handleUserResponse(Boolean response) { - if (response == 0) + if (response) { try { @@ -105,8 +92,7 @@ public void handleUserResponse(int response) }); } } - catch ( - IOException e) + catch (IOException e) { Logger.log(e); } @@ -126,8 +112,8 @@ private void setupToolsInIde() { SetupToolsInIde setupToolsInIde = new SetupToolsInIde(eimJson.getIdfInstalled().get(0), eimJson, getConsoleStream(true), getConsoleStream(false)); - SetupToolsJobListener toolsActivationJobListener = new SetupToolsJobListener(ESPIDFMainTablePage.getInstance(eimJson), - setupToolsInIde); + SetupToolsJobListener toolsActivationJobListener = new SetupToolsJobListener( + ESPIDFMainTablePage.getInstance(eimJson), setupToolsInIde); setupToolsInIde.addJobChangeListener(toolsActivationJobListener); setupToolsInIde.schedule(); } @@ -141,7 +127,7 @@ private void launchEspIdfManager() throws PartInitException Logger.log("Cannot open ESP-IDF Manager. No active workbench window or active page."); return; } - + try { IDE.openEditor(activeww.getActivePage(), new EimEditorInput(eimJson), ESPIDFManagerEditor.EDITOR_ID, From e3c4497ea5a7792dc91492bbdcd9f3b300c0ba04 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 9 Jul 2025 05:10:36 +0200 Subject: [PATCH 21/37] IEP-1583: Closing old editor window when old workspace is found (#1262) * IEP-1583: Closing old editor window when old workspace is found * fix: address NPE while launching --------- Co-authored-by: Kondal Kolipaka --- .../idf/ui/tools/EspressifToolStartup.java | 31 +++++++++++++++++++ .../ui/tools/manager/ESPIDFManagerEditor.java | 30 +++++++++++------- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index b7608ee87..01a9ae5c1 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -19,8 +19,11 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorReference; import org.eclipse.ui.IStartup; import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; @@ -93,6 +96,7 @@ public void earlyStartup() if (toolInitializer.isOldEspIdfConfigPresent() && !toolInitializer.isOldConfigExported()) { Logger.log("Old configuration found and not converted"); + closeEspIdfManager(); boolean isEimInApplications = checkIfEimPathMacOsIsInApplications(); if (!isEimInApplications) { @@ -213,6 +217,33 @@ private void displayInformationMessageBox(String messageTitle, String message) }, ignored -> { }); } + + private void closeEspIdfManager() + { + Display.getDefault().asyncExec(() -> { + IWorkbenchWindow window = EclipseHandler.getActiveWorkbenchWindow(); + if (window != null) + { + IWorkbenchPage page = window.getActivePage(); + if (page != null) + { + IEditorReference[] editors = page.getEditorReferences(); + for (IEditorReference editorRef : editors) + { + if (ESPIDFManagerEditor.EDITOR_ID.equals(editorRef.getId())) + { + IEditorPart editor = editorRef.getEditor(false); + if (editor != null) + { + page.closeEditor(editor, false); + } + } + } + } + } + }); + } + private void showEimJsonStateChangeNotification() { diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/ESPIDFManagerEditor.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/ESPIDFManagerEditor.java index a004708fe..115eab859 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/ESPIDFManagerEditor.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/ESPIDFManagerEditor.java @@ -16,13 +16,14 @@ /** * Editor main class used for tools management + * * @author Ali Azam Rana * */ public class ESPIDFManagerEditor extends EditorPart { public static final String EDITOR_ID = "com.espressif.idf.ui.manageespidf"; - + @Override public void init(IEditorSite site, IEditorInput input) throws PartInitException { @@ -30,8 +31,7 @@ public void init(IEditorSite site, IEditorInput input) throws PartInitException setInput(input); setPartName(Messages.EspIdfEditorTitle); } - - + @Override public void doSave(IProgressMonitor monitor) { @@ -49,30 +49,36 @@ public boolean isSaveAsAllowed() { return false; } - + @Override public void createPartControl(Composite parent) { - ESPIDFMainTablePage espidfMainTablePage = ESPIDFMainTablePage - .getInstance(((EimEditorInput) getEditorInput()).getEimJson()); - espidfMainTablePage.createPage(parent); - if (((EimEditorInput) getEditorInput()).isFirstStartup()) + IEditorInput input = getEditorInput(); + + if (input instanceof EimEditorInput eimInput) { - espidfMainTablePage.setupInitialEspIdf(); + ESPIDFMainTablePage espidfMainTablePage = ESPIDFMainTablePage.getInstance(eimInput.getEimJson()); + espidfMainTablePage.createPage(parent); + if (eimInput.isFirstStartup()) + { + espidfMainTablePage.setupInitialEspIdf(); + } + } + else + { + getSite().getPage().closeEditor(this, false); } } - @Override public boolean isDirty() { return false; } - @Override public void setFocus() { - + } } From 1c95f5e0598d79cfeba745a2e291b39136b4600f Mon Sep 17 00:00:00 2001 From: Denys Almazov Date: Mon, 14 Jul 2025 11:54:33 +0300 Subject: [PATCH 22/37] fix: fixed exception and added loggin when eim.json is missing (#1270) --- .../core/tools/EimIdfConfiguratinParser.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java index 6073b914d..5ccfcc656 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java @@ -1,10 +1,12 @@ package com.espressif.idf.core.tools; +import java.io.File; import java.io.FileReader; import java.io.IOException; import org.eclipse.core.runtime.Platform; +import com.espressif.idf.core.logging.Logger; import com.espressif.idf.core.tools.vo.EimJson; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -13,35 +15,43 @@ public class EimIdfConfiguratinParser { private EimJson eimJson; private Gson gson; - + public EimIdfConfiguratinParser() { gson = new GsonBuilder().setPrettyPrinting().enableComplexMapKeySerialization() .excludeFieldsWithoutExposeAnnotation().create(); } - + private void load() throws IOException { - try (FileReader fileReader = new FileReader( - Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_PATH : EimConstants.EIM_POSIX_PATH)) + String path = Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_PATH + : EimConstants.EIM_POSIX_PATH; + + File file = new File(path); + if (!file.exists()) + { + Logger.log("EIM config file not found: " + path); //$NON-NLS-1$ + return; + } + + try (FileReader fileReader = new FileReader(file)) { eimJson = gson.fromJson(fileReader, EimJson.class); } } - public EimJson getEimJson(boolean reload) throws IOException { if (reload) { load(); } - + if (eimJson == null) { load(); } - + return eimJson; } } From e3d51d3f6184e4fbedf2495c7b3b95bd204bd56b Mon Sep 17 00:00:00 2001 From: Denys Almazov Date: Mon, 14 Jul 2025 11:56:41 +0300 Subject: [PATCH 23/37] IEP-1596 Handle Redundant File Watcher Events for eim_idf.json (#1267) --- .../tools/watcher/EimJsonWatchService.java | 54 ++++++++++++++----- .../idf/ui/tools/EspressifToolStartup.java | 15 +----- 2 files changed, 41 insertions(+), 28 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java index 38cdc1029..8c417a230 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/watcher/EimJsonWatchService.java @@ -5,8 +5,17 @@ package com.espressif.idf.core.tools.watcher; import java.io.IOException; -import java.nio.file.*; -import java.nio.file.attribute.FileAttribute; +import java.nio.file.ClosedWatchServiceException; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardWatchEventKinds; +import java.nio.file.WatchEvent; +import java.nio.file.WatchKey; +import java.nio.file.WatchService; +import java.time.Instant; +import java.time.temporal.ChronoUnit; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; @@ -28,8 +37,8 @@ public class EimJsonWatchService extends Thread private final List eimJsonChangeListeners = new CopyOnWriteArrayList<>(); private volatile boolean running = true; private volatile boolean paused = false; - - + private volatile Instant lastModifiedTime; + private EimJsonWatchService() throws IOException { String directoryPathString = Platform.getOS().equals(Platform.OS_WIN32) ? EimConstants.EIM_WIN_DIR @@ -80,38 +89,38 @@ public void addEimJsonChangeListener(EimJsonChangeListener listener) eimJsonChangeListeners.add(listener); } } - + public void removeAllListeners() { eimJsonChangeListeners.clear(); } - + public static void withPausedListeners(Runnable task) { EimJsonWatchService watchService = getInstance(); boolean wasPaused = watchService.paused; watchService.pauseListeners(); - + try { - task.run(); + task.run(); } catch (Exception e) { Logger.log(e); - } - finally { + } finally + { if (!wasPaused) watchService.unpauseListeners(); } } - + public void pauseListeners() { Logger.log("Listeners are paused"); //$NON-NLS-1$ paused = true; } - + public void unpauseListeners() { Logger.log("Listeners are resumed"); //$NON-NLS-1$ @@ -150,9 +159,26 @@ public void run() if (context instanceof Path path && path.toString().equals(EimConstants.EIM_JSON)) { Path fullPath = watchDirectoryPath.resolve(path); - for (EimJsonChangeListener listener : eimJsonChangeListeners) + try + { + Instant currentModified = Files.getLastModifiedTime(fullPath).toInstant() + .truncatedTo(ChronoUnit.SECONDS); + + if (lastModifiedTime != null && currentModified.compareTo(lastModifiedTime) <= 0) + { + continue; // skip duplicate or same-second event + } + + lastModifiedTime = currentModified; + + for (EimJsonChangeListener listener : eimJsonChangeListeners) + { + listener.onJsonFileChanged(fullPath, paused); + } + } + catch (IOException e) { - listener.onJsonFileChanged(fullPath, paused); + Logger.log(e); } } } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index 01a9ae5c1..ecebb5550 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -40,7 +40,6 @@ import com.espressif.idf.core.tools.EimLoader; import com.espressif.idf.core.tools.ToolInitializer; import com.espressif.idf.core.tools.vo.EimJson; -import com.espressif.idf.core.tools.watcher.EimJsonStateChecker; import com.espressif.idf.core.tools.watcher.EimJsonWatchService; import com.espressif.idf.core.util.IDFUtil; import com.espressif.idf.core.util.StringUtil; @@ -79,9 +78,7 @@ public void earlyStartup() idfEnvironmentVariables = new IDFEnvironmentVariables(); eimLoader = new EimLoader(new StartupClassDownloadEimDownloadListener(), standardConsoleStream, errorConsoleStream, Display.getDefault()); - EimJsonStateChecker stateChecker = new EimJsonStateChecker(preferences); eimJsonUiChangeHandler = new EimJsonUiChangeHandler(preferences); - stateChecker.updateLastSeenTimestamp(); EimJsonWatchService.getInstance().addEimJsonChangeListener(eimJsonUiChangeHandler); if (!toolInitializer.isEimInstalled() && !toolInitializer.isEimIdfJsonPresent()) @@ -121,10 +118,6 @@ else if (toolInitializer.isEimIdfJsonPresent() && !toolInitializer.isEspIdfSet() toolInitializer.findAndSetEimPath(); } - if (stateChecker.wasModifiedSinceLastRun()) - { - showEimJsonStateChangeNotification(); - } } private boolean checkIfEimPathMacOsIsInApplications() @@ -217,7 +210,7 @@ private void displayInformationMessageBox(String messageTitle, String message) }, ignored -> { }); } - + private void closeEspIdfManager() { Display.getDefault().asyncExec(() -> { @@ -244,12 +237,6 @@ private void closeEspIdfManager() }); } - - private void showEimJsonStateChangeNotification() - { - eimJsonUiChangeHandler.displayMessageToUser(); - } - private void notifyMissingTools() { GlobalModalLock.showModal(() -> MessageDialog.openQuestion(Display.getDefault().getActiveShell(), From 3da45397891cad3c53ce02683a253a89e14dc963 Mon Sep 17 00:00:00 2001 From: Denys Almazov Date: Mon, 14 Jul 2025 12:56:48 +0300 Subject: [PATCH 24/37] fix: remove redundant closeWelcomePage (#1268) --- .../idf/ui/tools/EspressifToolStartup.java | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index ecebb5550..20c0c33b8 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -256,7 +256,6 @@ private void notifyMissingTools() private void downloadAndLaunchEim() { - closeWelcomePage(); Job downloadJob = new Job("Download and Launch EIM") { @@ -271,25 +270,6 @@ protected IStatus run(IProgressMonitor monitor) downloadJob.schedule(); } - private void closeWelcomePage() - { - Display.getDefault().asyncExec(() -> { - IWorkbench workbench = PlatformUI.getWorkbench(); - if (workbench != null) - { - IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); - if (window != null) - { - IIntroManager introManager = workbench.getIntroManager(); - if (introManager.getIntro() != null) - { - introManager.closeIntro(introManager.getIntro()); - } - } - } - }); - } - private MessageConsoleStream getConsoleStream(boolean errorStream) { IDFConsole idfConsole = new IDFConsole(); From ccf36aea4adefc90b444611cba2171dce447dfad Mon Sep 17 00:00:00 2001 From: Denys Almazov Date: Tue, 15 Jul 2025 10:37:13 +0300 Subject: [PATCH 25/37] IEP-1602 Prevent Exception When EIM Closes Before eim.json Is Created (#1273) --- .../core/tools/EimIdfConfiguratinParser.java | 7 +- .../manager/pages/ESPIDFMainTablePage.java | 129 ++++++++++-------- 2 files changed, 71 insertions(+), 65 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java index 5ccfcc656..363ed3115 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/tools/EimIdfConfiguratinParser.java @@ -42,12 +42,7 @@ private void load() throws IOException public EimJson getEimJson(boolean reload) throws IOException { - if (reload) - { - load(); - } - - if (eimJson == null) + if (reload || eimJson == null) { load(); } diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java index 0ae883786..9b11301b9 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/manager/pages/ESPIDFMainTablePage.java @@ -52,6 +52,7 @@ /** * Main UI class for all listing and interacting with the tools + * * @author Ali Azam Rana * */ @@ -66,37 +67,37 @@ public class ESPIDFMainTablePage private TableViewerColumn removeColumn; private TableViewerColumn nameColumn; private Button eimLaunchBtn; - + private TableColumnLayout tableColumnLayout; private Composite tableComposite; private List idfInstalledList; private static EimJson eimJson; private EimIdfConfiguratinParser eimIdfConfiguratinParser; private ToolInitializer toolInitializer; - + private static final String RELOAD_ICON = "icons/tools/reload.png"; //$NON-NLS-1$ private static final String IDF_TOOL_SET_BTN_KEY = "IDFToolSet"; //$NON-NLS-1$ - + private static ESPIDFMainTablePage espidfMainTablePage; - + private ESPIDFMainTablePage() { eimIdfConfiguratinParser = new EimIdfConfiguratinParser(); - toolInitializer = new ToolInitializer(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE - .getNode(UIPlugin.PLUGIN_ID)); + toolInitializer = new ToolInitializer( + org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE.getNode(UIPlugin.PLUGIN_ID)); } - + public static ESPIDFMainTablePage getInstance(EimJson eimJson) { if (espidfMainTablePage == null) { espidfMainTablePage = new ESPIDFMainTablePage(); } - + ESPIDFMainTablePage.eimJson = eimJson; return espidfMainTablePage; } - + public Composite createPage(Composite composite) { idfInstalledList = eimJson != null ? eimJson.getIdfInstalled() : null; @@ -108,7 +109,7 @@ public Composite createPage(Composite composite) createIdfTable(container); return container; } - + private void createButtonAndGuideLink(Composite composite) { Link guideLink = new Link(composite, SWT.WRAP); @@ -117,20 +118,22 @@ private void createButtonAndGuideLink(Composite composite) guideLink.addListener(SWT.Selection, e -> { try { - java.awt.Desktop.getDesktop().browse(new java.net.URI( - "https://dl.espressif.com/dl/esp-idf/support-periods.svg")); + java.awt.Desktop.getDesktop() + .browse(new java.net.URI("https://dl.espressif.com/dl/esp-idf/support-periods.svg")); //$NON-NLS-1$ } catch (Exception ex) { Logger.log(ex); } }); - + eimLaunchBtn = new Button(composite, SWT.PUSH); - eimLaunchBtn.setText(!toolInitializer.isEimInstalled() ? Messages.EIMButtonDownloadText : Messages.EIMButtonLaunchText); - eimLaunchBtn.addSelectionListener(new EimButtonLaunchListener(espidfMainTablePage, Display.getDefault(), getConsoleStream(false), getConsoleStream(true))); + eimLaunchBtn.setText( + !toolInitializer.isEimInstalled() ? Messages.EIMButtonDownloadText : Messages.EIMButtonLaunchText); + eimLaunchBtn.addSelectionListener(new EimButtonLaunchListener(espidfMainTablePage, Display.getDefault(), + getConsoleStream(false), getConsoleStream(true))); } - + public void setupInitialEspIdf() { if (idfInstalledList != null && idfInstalledList.size() == 1) @@ -155,8 +158,8 @@ public void refreshEditorUI() return; for (TableItem item : tableViewer.getTable().getItems()) { - String EDITOR_KEY = "action_editor"; - String EDITOR_KEY_LAST = "action_editor_last"; + String EDITOR_KEY = "action_editor"; //$NON-NLS-1$ + String EDITOR_KEY_LAST = "action_editor_last"; //$NON-NLS-1$ TableEditor editorFirst = (TableEditor) item.getData(EDITOR_KEY); TableEditor editorLast = (TableEditor) item.getData(EDITOR_KEY_LAST); if (editorFirst != null) @@ -168,14 +171,14 @@ public void refreshEditorUI() editorFirst.dispose(); // Dispose the editor itself item.setData(EDITOR_KEY, null); // Clear the stored editor reference } - + if (editorLast != null) { if (editorLast.getEditor() != null && !editorLast.getEditor().isDisposed()) { editorLast.getEditor().dispose(); } - + editorLast.dispose(); item.setData(EDITOR_KEY_LAST, null); } @@ -183,25 +186,31 @@ public void refreshEditorUI() try { eimJson = eimIdfConfiguratinParser.getEimJson(true); + // eimJson is null if EIM was closed before tool installation completed + if (eimJson == null) + { + return; + } } catch (IOException e) { Logger.log(e); } - + idfInstalledList = eimJson.getIdfInstalled(); setupColumns(); tableViewer.setInput(idfInstalledList); tableViewer.getControl().requestLayout(); tableViewer.refresh(); - eimLaunchBtn.setText(!toolInitializer.isEimInstalled() ? Messages.EIMButtonDownloadText : Messages.EIMButtonLaunchText); + eimLaunchBtn.setText( + !toolInitializer.isEimInstalled() ? Messages.EIMButtonDownloadText : Messages.EIMButtonLaunchText); container.redraw(); } private Composite createIdfTable(Composite parent) { Group idfToolsGroup = new Group(parent, SWT.SHADOW_ETCHED_IN); - idfToolsGroup.setText("IDF Tools"); + idfToolsGroup.setText("IDF Tools"); //$NON-NLS-1$ idfToolsGroup.setLayout(new GridLayout(2, false)); idfToolsGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); @@ -212,13 +221,13 @@ private Composite createIdfTable(Composite parent) tableComposite.setLayout(tableColumnLayout); tableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.H_SCROLL); tableViewer.setContentProvider(ArrayContentProvider.getInstance()); - + Table table = tableViewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); table.addListener(SWT.MeasureItem, event -> { - event.height = 25; - }); + event.height = 25; + }); comparator = new ColumnViewerComparator(); tableViewer.setComparator(comparator); setupColumns(); @@ -229,37 +238,37 @@ private Composite createIdfTable(Composite parent) tableViewer.setInput(idfInstalledList); table.layout(); // Composite for the "Add" button - Composite buttonComposite = new Composite(idfToolsGroup, SWT.NONE); - GridData buttonCompositeGridData = new GridData(SWT.RIGHT, SWT.CENTER, false, false); - buttonCompositeGridData.verticalAlignment = SWT.TOP; // Aligns the button composite at the top - buttonComposite.setLayoutData(buttonCompositeGridData); - buttonComposite.setLayout(new GridLayout(1, true)); - + Composite buttonComposite = new Composite(idfToolsGroup, SWT.NONE); + GridData buttonCompositeGridData = new GridData(SWT.RIGHT, SWT.CENTER, false, false); + buttonCompositeGridData.verticalAlignment = SWT.TOP; // Aligns the button composite at the top + buttonComposite.setLayoutData(buttonCompositeGridData); + buttonComposite.setLayout(new GridLayout(1, true)); + return idfToolsGroup; } - + private void disposeColumns() { if (activateColumn != null && activateColumn.getColumn() != null) { activateColumn.getColumn().dispose(); } - + if (versionColumn != null && versionColumn.getColumn() != null) { versionColumn.getColumn().dispose(); } - + if (locationColumn != null && locationColumn.getColumn() != null) { locationColumn.getColumn().dispose(); } - + if (removeColumn != null && removeColumn.getColumn() != null) { removeColumn.getColumn().dispose(); } - + if (nameColumn != null && nameColumn.getColumn() != null) { nameColumn.getColumn().dispose(); @@ -270,18 +279,18 @@ private void setupColumns() { disposeColumns(); int colIndex = 0; - + activateColumn = new TableViewerColumn(tableViewer, SWT.NONE); activateColumn.getColumn().setText(Messages.EspIdfManagerActivateCol); activateColumn.setLabelProvider(new IdfManagerTableColumnLabelProvider()); tableColumnLayout.setColumnData(activateColumn.getColumn(), new ColumnWeightData(2, 5, true)); - + versionColumn = new TableViewerColumn(tableViewer, SWT.NONE); versionColumn.getColumn().setText(Messages.EspIdfManagerVersionCol); versionColumn.setLabelProvider(new IdfManagerTableColumnLabelProvider()); setComparatorForCols(versionColumn, colIndex++); tableColumnLayout.setColumnData(versionColumn.getColumn(), new ColumnWeightData(3, 50, true)); - + nameColumn = new TableViewerColumn(tableViewer, SWT.NONE); nameColumn.getColumn().setText(Messages.EspIdfManagerNameCol); nameColumn.setLabelProvider(new IdfManagerTableColumnLabelProvider()); @@ -293,7 +302,7 @@ private void setupColumns() locationColumn.setLabelProvider(new IdfManagerTableColumnLabelProvider()); setComparatorForCols(locationColumn, colIndex++); tableColumnLayout.setColumnData(locationColumn.getColumn(), new ColumnWeightData(10, 100, true)); - + removeColumn = new TableViewerColumn(tableViewer, SWT.NONE); removeColumn.setLabelProvider(new IdfManagerTableColumnLabelProvider()); tableColumnLayout.setColumnData(removeColumn.getColumn(), new ColumnWeightData(3, 100, true)); @@ -328,13 +337,13 @@ public void widgetSelected(SelectionEvent e) private class IdfManagerTableColumnLabelProvider extends ColumnLabelProvider { private Color activeBackgroundColor; - + private IdfManagerTableColumnLabelProvider() { super(); this.activeBackgroundColor = new Color(Display.getCurrent(), 144, 238, 144); } - + @Override public Color getBackground(Object element) { @@ -368,7 +377,7 @@ else if (isLastCol) { updateDataIntoCells(cell); } - + Color color = getBackground(cell.getElement()); if (color != null) { @@ -409,9 +418,9 @@ private String getIdfVersion(IdfInstalled idfInstalled) private void createButtonsForFirstCol(ViewerCell cell) { TableItem item = (TableItem) cell.getItem(); - + // using a unique key to store the editor to avoid creating multiple editors for the same cell - String EDITOR_KEY = "action_editor"; + String EDITOR_KEY = "action_editor"; //$NON-NLS-1$ if (item.getData(EDITOR_KEY) != null) { return; // This cell already has an editor @@ -426,9 +435,10 @@ private void createButtonsForFirstCol(ViewerCell cell) setActiveButton.setData(IDF_TOOL_SET_BTN_KEY, idfInstalled); setActiveButton.addListener(SWT.Selection, e -> { Button btn = (Button) e.widget; - SetupToolsInIde setupToolsInIde = new SetupToolsInIde(idfInstalled, eimJson, getConsoleStream(true), getConsoleStream(false)); - SetupToolsJobListener toolsActivationJobListener = new SetupToolsJobListener( - ESPIDFMainTablePage.this, setupToolsInIde); + SetupToolsInIde setupToolsInIde = new SetupToolsInIde(idfInstalled, eimJson, getConsoleStream(true), + getConsoleStream(false)); + SetupToolsJobListener toolsActivationJobListener = new SetupToolsJobListener(ESPIDFMainTablePage.this, + setupToolsInIde); setupToolsInIde.addJobChangeListener(toolsActivationJobListener); setupToolsInIde.schedule(); btn.setEnabled(false); @@ -437,13 +447,13 @@ private void createButtonsForFirstCol(ViewerCell cell) editor.grabHorizontal = true; editor.setEditor(buttonComposite, item, cell.getColumnIndex()); } - + private void createButtonsForLastCol(ViewerCell cell) { TableItem item = (TableItem) cell.getItem(); Rectangle cellBounds = cell.getBounds(); // using a unique key to store the editor to avoid creating multiple editors for the same cell - String EDITOR_KEY = "action_editor_last"; + String EDITOR_KEY = "action_editor_last"; //$NON-NLS-1$ if (item.getData(EDITOR_KEY) != null) { return; // This cell already has an editor @@ -455,9 +465,9 @@ private void createButtonsForLastCol(ViewerCell cell) buttonComposite.redraw(); item.setData(EDITOR_KEY, editor); IdfInstalled idfInstalled = (IdfInstalled) cell.getElement(); - + int buttonHeight = Math.min(cellBounds.height - 6, 30); - + if (ToolsUtility.isIdfInstalledActive(idfInstalled)) { Button reloadButton = new Button(buttonComposite, SWT.PUSH | SWT.FLAT); @@ -468,15 +478,16 @@ private void createButtonsForLastCol(ViewerCell cell) reloadButton.addListener(SWT.Selection, e -> { Button btn = (Button) e.widget; IdfInstalled selectedToolSet = (IdfInstalled) btn.getData(IDF_TOOL_SET_BTN_KEY); - SetupToolsInIde setupToolsInIde = new SetupToolsInIde(selectedToolSet, eimJson, getConsoleStream(true), getConsoleStream(false)); + SetupToolsInIde setupToolsInIde = new SetupToolsInIde(selectedToolSet, eimJson, + getConsoleStream(true), getConsoleStream(false)); SetupToolsJobListener toolsActivationJobListener = new SetupToolsJobListener( ESPIDFMainTablePage.this, setupToolsInIde); setupToolsInIde.addJobChangeListener(toolsActivationJobListener); setupToolsInIde.schedule(); }); - + reloadButton.setSize(cellBounds.width, buttonHeight); - reloadButton.addListener(SWT.Paint, e-> e.gc.drawRectangle(reloadButton.getBounds())); + reloadButton.addListener(SWT.Paint, e -> e.gc.drawRectangle(reloadButton.getBounds())); reloadButton.redraw(); } @@ -488,9 +499,9 @@ private void createButtonsForLastCol(ViewerCell cell) buttonComposite.layout(true, true); buttonComposite.redraw(); editor.layout(); - tableViewer.getTable().layout(true, true); + tableViewer.getTable().layout(true, true); } - + @Override public void dispose() { @@ -501,7 +512,7 @@ public void dispose() super.dispose(); } } - + private MessageConsoleStream getConsoleStream(boolean errorStream) { IDFConsole idfConsole = new IDFConsole(); From b3c4e580e82c13ceb318e4fc37ff5f9787ba686f Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Thu, 24 Jul 2025 13:31:42 +0200 Subject: [PATCH 26/37] IEP-1590: autoimport of old configuration (#1275) --- .../idf/core/build/messages.properties | 4 +- .../idf/ui/tools/EspressifToolStartup.java | 51 ++++++++++--------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties index 209514f01..4155b4dea 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/build/messages.properties @@ -39,6 +39,6 @@ OldConfigFoundMsgBoxMsg=Espressif IDE now uses the EIM system to manage ESP-IDF OldConfigExportDirectorSelectionDialogTitle=Select Destination OldConfigExportDirectorSelectionDialogInfo=Choose a directory to save the exported settings. OldConfigExportCompleteSuccessMsgTitle=Import Successful -OldConfigExportCompleteSuccessMsg=The configuration has been successfully Imported +OldConfigExportCompleteSuccessMsg=The old configuration has been successfully imported. OldConfigExportCompleteFailMsgTitle=Conversion Failed -OldConfigExportCompleteFailMsg=An error occurred while converting old configuration. +OldConfigExportCompleteFailMsg=An error occurred while importing old configuration. diff --git a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java index 20c0c33b8..0f44933bf 100644 --- a/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java +++ b/bundles/com.espressif.idf.ui/src/com/espressif/idf/ui/tools/EspressifToolStartup.java @@ -146,15 +146,9 @@ private boolean checkIfEimPathMacOsIsInApplications() private void handleOldConfigExport() { Display display = Display.getDefault(); - - GlobalModalLock.showModal(() -> MessageDialog.openQuestion(display.getActiveShell(), - Messages.OldConfigFoundMsgBoxTitle, Messages.OldConfigFoundMsgBoxMsg), response -> { - if (response) - { - startExportOldConfig(); - } - }); - + display.asyncExec(()-> { + startExportOldConfig(); + }); } private void startExportOldConfig() @@ -184,31 +178,42 @@ else if (!StringUtil.isEmpty(eimPathEnvVar)) if (status.getSeverity() != IStatus.ERROR) { preferences.putBoolean(EimConstants.OLD_CONFIG_EXPORTED_FLAG, true); - displayInformationMessageBox(Messages.OldConfigExportCompleteSuccessMsgTitle, - Messages.OldConfigExportCompleteSuccessMsg); + writeToStandardConsoleStream(Messages.OldConfigExportCompleteSuccessMsg); } else { - displayInformationMessageBox(Messages.OldConfigExportCompleteFailMsgTitle, - Messages.OldConfigExportCompleteFailMsg); + writeToErrorConsoleStream(Messages.OldConfigExportCompleteFailMsg); } } catch (IOException e) { Logger.log("Error exporting old configuration", e); - displayInformationMessageBox(Messages.OldConfigExportCompleteFailMsgTitle, - Messages.OldConfigExportCompleteFailMsg); + writeToErrorConsoleStream(Messages.OldConfigExportCompleteFailMsg); } } - - private void displayInformationMessageBox(String messageTitle, String message) + + private void writeToStandardConsoleStream(String msg) { - Display display = Display.getDefault(); - GlobalModalLock.showModal(() -> { - MessageDialog.openInformation(display.getActiveShell(), messageTitle, message); - return null; - }, ignored -> { - }); + try + { + standardConsoleStream.write(msg); + } + catch (IOException e) + { + Logger.log(e); + } + } + + private void writeToErrorConsoleStream(String msg) + { + try + { + errorConsoleStream.write(msg); + } + catch (IOException e) + { + Logger.log(e); + } } private void closeEspIdfManager() From de136baa096b6a540dcd5763167d10d813a49f46 Mon Sep 17 00:00:00 2001 From: Kondal Kolipaka Date: Tue, 29 Jul 2025 16:29:49 +0530 Subject: [PATCH 27/37] fix: bump version to v4.0.0 (#1282) --- bundles/com.espressif.idf.branding/META-INF/MANIFEST.MF | 2 +- features/com.espressif.idf.feature/feature.xml | 2 +- releng/com.espressif.idf.configuration/pom.xml | 2 +- releng/com.espressif.idf.product/idf.product | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bundles/com.espressif.idf.branding/META-INF/MANIFEST.MF b/bundles/com.espressif.idf.branding/META-INF/MANIFEST.MF index 56f6d8d5a..d40fa739b 100644 --- a/bundles/com.espressif.idf.branding/META-INF/MANIFEST.MF +++ b/bundles/com.espressif.idf.branding/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: com.espressif.idf.branding;singleton:=true -Bundle-Version: 3.6.0.qualifier +Bundle-Version: 4.0.0.qualifier Bundle-Vendor: %providerName Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-17 diff --git a/features/com.espressif.idf.feature/feature.xml b/features/com.espressif.idf.feature/feature.xml index fb7696c9c..744d08491 100644 --- a/features/com.espressif.idf.feature/feature.xml +++ b/features/com.espressif.idf.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/releng/com.espressif.idf.configuration/pom.xml b/releng/com.espressif.idf.configuration/pom.xml index aa37b3486..aa3713c1e 100644 --- a/releng/com.espressif.idf.configuration/pom.xml +++ b/releng/com.espressif.idf.configuration/pom.xml @@ -10,7 +10,7 @@ 4.0.12 ${tycho-version} UTF-8 - 3.6.0 + 4.0.0 diff --git a/releng/com.espressif.idf.product/idf.product b/releng/com.espressif.idf.product/idf.product index 6e861e8e0..d17d57ec7 100644 --- a/releng/com.espressif.idf.product/idf.product +++ b/releng/com.espressif.idf.product/idf.product @@ -1,7 +1,7 @@ - + From b4275a3eba93df1c62b5db55daa8c3f0533c9cfa Mon Sep 17 00:00:00 2001 From: Kondal Date: Tue, 29 Jul 2025 16:38:36 +0530 Subject: [PATCH 28/37] fix: update the tags for beta versions --- .github/workflows/ci_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_release.yml b/.github/workflows/ci_release.yml index 1934f94f9..8f9ebb0c6 100644 --- a/.github/workflows/ci_release.yml +++ b/.github/workflows/ci_release.yml @@ -4,7 +4,7 @@ on: push: tags: - "v[0-9]+.[0-9]+.[0-9]+" - - "v[0-9]+\\.[0-9]+\\.[0-9]+-beta" + - "v[0-9]+\\.[0-9]+\\.[0-9]+-beta(\\.[0-9]+)?" env: ARCHIVE_PREFIX: com.espressif.idf.update- From 58535d80b15c8b3a77d9b8f573293288a761d332 Mon Sep 17 00:00:00 2001 From: Kondal Date: Tue, 29 Jul 2025 17:25:59 +0530 Subject: [PATCH 29/37] fix: code cleanup --- .../com/espressif/idf/core/util/IDFUtil.java | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java index e802a4ba4..d8e2dd961 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java @@ -212,30 +212,6 @@ public static String getIDFPythonEnvPath() } - public static String getIDFPythonEnvPath(String idfPyEnvPath) - { - idfPyEnvPath = idfPyEnvPath.strip(); - if (!StringUtil.isEmpty(idfPyEnvPath)) - { - - if (Platform.getOS().equals(Platform.OS_WIN32)) - { - idfPyEnvPath = idfPyEnvPath + "/" + "Scripts"; //$NON-NLS-1$ //$NON-NLS-2$ - } - else - { - idfPyEnvPath = idfPyEnvPath + "/" + "bin"; //$NON-NLS-1$ //$NON-NLS-2$ - } - java.nio.file.Path commandPath = findCommand(IDFConstants.PYTHON_CMD, idfPyEnvPath); - if (commandPath != null) - { - return commandPath.toFile().getAbsolutePath(); - } - } - return findCommandFromBuildEnvPath(IDFConstants.PYTHON_CMD); - - } - public static String getIDFPythonEnvPath(String idfPyEnvPath) { idfPyEnvPath = idfPyEnvPath.strip(); From b85244578c3cce5e4d4261ab85129a62c26e969a Mon Sep 17 00:00:00 2001 From: Kondal Date: Tue, 29 Jul 2025 17:39:54 +0530 Subject: [PATCH 30/37] fix: update CI workflow regex patterns to support v4.0.0-beta.1 tags --- .github/workflows/ci_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_release.yml b/.github/workflows/ci_release.yml index 8f9ebb0c6..bede62521 100644 --- a/.github/workflows/ci_release.yml +++ b/.github/workflows/ci_release.yml @@ -3,7 +3,7 @@ name: Espressif-IDE Cross-platform Release on: push: tags: - - "v[0-9]+.[0-9]+.[0-9]+" + - "v[0-9]+\\.[0-9]+\\.[0-9]+" - "v[0-9]+\\.[0-9]+\\.[0-9]+-beta(\\.[0-9]+)?" env: From b997b134fdda05b2fdee5d48fddfaf6493993109 Mon Sep 17 00:00:00 2001 From: Kondal Date: Tue, 29 Jul 2025 17:45:43 +0530 Subject: [PATCH 31/37] fix: correct keystore file path in CI workflow --- .github/workflows/ci_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_release.yml b/.github/workflows/ci_release.yml index bede62521..c3eb1dcf2 100644 --- a/.github/workflows/ci_release.yml +++ b/.github/workflows/ci_release.yml @@ -34,7 +34,7 @@ jobs: JARSIGNER_STOREPASS: ${{ secrets.JARSIGNER_REL_STOREPASS }} JARSIGNER_ALIAS: ${{ secrets.JARSIGNER_REL_ALIAS }} run: | - KEYSTORE_FILE="${PWD}/{{secrets.JARSIGNER_KEYSTORE}}" + KEYSTORE_FILE="${PWD}/keystore.jks" echo "${KEYSTORE_FILE}" printf "%s" "${JARSIGNER_KEYSTORE_B64}" | base64 -d > "${KEYSTORE_FILE}" mvn -e -X clean install -Djarsigner.keystore="${KEYSTORE_FILE}" -Djarsigner.alias="${JARSIGNER_ALIAS}" -Djarsigner.storepass="${JARSIGNER_STOREPASS}" -DskipTests=true From 56493805b40e27fe1c4d860cae3f2b50f96f3c60 Mon Sep 17 00:00:00 2001 From: Kondal Date: Tue, 29 Jul 2025 17:52:11 +0530 Subject: [PATCH 32/37] Revert "fix: correct keystore file path in CI workflow" This reverts commit 8b6303a36064b8d348dc12a1500ee7e68332fb4e. --- .github/workflows/ci_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_release.yml b/.github/workflows/ci_release.yml index c3eb1dcf2..bede62521 100644 --- a/.github/workflows/ci_release.yml +++ b/.github/workflows/ci_release.yml @@ -34,7 +34,7 @@ jobs: JARSIGNER_STOREPASS: ${{ secrets.JARSIGNER_REL_STOREPASS }} JARSIGNER_ALIAS: ${{ secrets.JARSIGNER_REL_ALIAS }} run: | - KEYSTORE_FILE="${PWD}/keystore.jks" + KEYSTORE_FILE="${PWD}/{{secrets.JARSIGNER_KEYSTORE}}" echo "${KEYSTORE_FILE}" printf "%s" "${JARSIGNER_KEYSTORE_B64}" | base64 -d > "${KEYSTORE_FILE}" mvn -e -X clean install -Djarsigner.keystore="${KEYSTORE_FILE}" -Djarsigner.alias="${JARSIGNER_ALIAS}" -Djarsigner.storepass="${JARSIGNER_STOREPASS}" -DskipTests=true From 2d49c6e543c809df30260e6261c126e665a6cd18 Mon Sep 17 00:00:00 2001 From: Kondal Date: Tue, 29 Jul 2025 18:08:04 +0530 Subject: [PATCH 33/37] fix: regex issue with the tags --- .github/workflows/ci_release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci_release.yml b/.github/workflows/ci_release.yml index bede62521..b4bcb0a06 100644 --- a/.github/workflows/ci_release.yml +++ b/.github/workflows/ci_release.yml @@ -3,8 +3,8 @@ name: Espressif-IDE Cross-platform Release on: push: tags: - - "v[0-9]+\\.[0-9]+\\.[0-9]+" - - "v[0-9]+\\.[0-9]+\\.[0-9]+-beta(\\.[0-9]+)?" + - "v[0-9]+.[0-9]+.[0-9]+" + - "v[0-9]+.[0-9]+.[0-9]+-beta.*" env: ARCHIVE_PREFIX: com.espressif.idf.update- From 25d151d0dbb1a4149c37b669c5c2ec5b3bd70179 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Mon, 15 Sep 2025 11:13:40 +0200 Subject: [PATCH 34/37] merge issues fixed --- .../idf/core/util/DfuCommandsUtil.java | 2 +- .../com/espressif/idf/core/util/IDFUtil.java | 37 ------------------- 2 files changed, 1 insertion(+), 38 deletions(-) diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/DfuCommandsUtil.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/DfuCommandsUtil.java index 033c9234d..63c31b0d9 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/DfuCommandsUtil.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/DfuCommandsUtil.java @@ -139,7 +139,7 @@ public static void flashDfuBins(ILaunchConfiguration configuration, IProject pro idfEnvMap.put("PYTHONUNBUFFERED", "1"); //$NON-NLS-1$ //$NON-NLS-2$ // Update with the CDT build environment variables - Map environment = new HashMap<>(IDFUtil.getSystemEnv()); + Map environment = new HashMap<>(System.getenv()); environment.putAll(idfEnvMap); Logger.log(environment.toString()); diff --git a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java index d8e2dd961..cb39405e9 100644 --- a/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java +++ b/bundles/com.espressif.idf.core/src/com/espressif/idf/core/util/IDFUtil.java @@ -861,43 +861,6 @@ public static String resolveEnvVariable(String path) return resolvedPath.toString(); } - - public static Map getSystemEnv() - { - Map env = new HashMap<>(System.getenv()); - - String idfToolsPath = Platform.getPreferencesService().getString(IDFCorePlugin.PLUGIN_ID, - IDFCorePreferenceConstants.IDF_TOOLS_PATH, IDFCorePreferenceConstants.IDF_TOOLS_PATH_DEFAULT, null); - env.put(IDFCorePreferenceConstants.IDF_TOOLS_PATH, idfToolsPath); - - // Merge Homebrew bin paths into PATH - String existingPath = env.getOrDefault("PATH", ""); //$NON-NLS-1$ //$NON-NLS-2$ - StringBuilder newPath = new StringBuilder(); - - String[] brewPaths = { "/usr/local/bin", "/opt/homebrew/bin" }; //$NON-NLS-1$ //$NON-NLS-2$ - - for (String brewPath : brewPaths) - { - if (Files.exists(Paths.get(brewPath)) && !existingPath.contains(brewPath)) - { - newPath.append(brewPath).append(":"); //$NON-NLS-1$ - } - } - - // Append the original PATH at the end - newPath.append(existingPath); - env.put("PATH", newPath.toString()); //$NON-NLS-1$ - - return env; - } - - public static String getIDFToolsPathFromPreferences() - { - String idfToolsPath = Platform.getPreferencesService().getString(IDFCorePlugin.PLUGIN_ID, - IDFCorePreferenceConstants.IDF_TOOLS_PATH, IDFCorePreferenceConstants.IDF_TOOLS_PATH_DEFAULT, null); - return idfToolsPath; - } - public static void closeWelcomePage(IWorkbenchWindow activeww) { From d29f0e1d63da30c1cace8c234e62164630308020 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Mon, 15 Sep 2025 11:14:32 +0200 Subject: [PATCH 35/37] ci esp-idf version updated --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index da8cd7caf..45e499231 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,7 +29,7 @@ jobs: - name: Install ESP-IDF via eim uses: espressif/install-esp-idf-action@v1 with: - version: 'v5.3' + version: 'v5.4' - name: Set up Maven uses: stCarolas/setup-maven@v5 From 3d42ea0aed493615e1b5fef4d75c467c22309a08 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 17 Sep 2025 15:25:33 +0200 Subject: [PATCH 36/37] testing eim action --- .github/workflows/eim_act_test.yml | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/eim_act_test.yml diff --git a/.github/workflows/eim_act_test.yml b/.github/workflows/eim_act_test.yml new file mode 100644 index 000000000..7285c54fc --- /dev/null +++ b/.github/workflows/eim_act_test.yml @@ -0,0 +1,44 @@ +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: + - master + - release/** + pull_request: + branches: + - master + - release/** + +jobs: + build_linux: + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.10' + + - name: Install ESP-IDF via eim + uses: espressif/install-esp-idf-action@v1 + with: + version: 'v5.4' + + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.9.6 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + cache: 'maven' \ No newline at end of file From 7423971c65448cb76f83a8ada13171bb0c4eb294 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 17 Sep 2025 15:28:23 +0200 Subject: [PATCH 37/37] updated name --- .github/workflows/eim_act_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/eim_act_test.yml b/.github/workflows/eim_act_test.yml index 7285c54fc..3eb0b494b 100644 --- a/.github/workflows/eim_act_test.yml +++ b/.github/workflows/eim_act_test.yml @@ -1,7 +1,7 @@ # This workflow will build a Java project with Maven # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven -name: Java CI with Maven +name: EIM Action Test on: push:

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 x+NH$P@Mvkyr(|aOEzPR0x9D$r_JZAYw diff --git a/media/ToolsManager/ESP-IDF_Manager_Multiple_versions.png b/media/ToolsManager/ESP-IDF_Manager_Multiple_versions.png deleted file mode 100644 index 77fba0f4331cec92f0eddd280bf71c3317ff33bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53636 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 z 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 From 6bf6a6339459bc89ec05574e581ec58158f36f63 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:15:12 +0200 Subject: [PATCH 11/37] doc updated and image fixed --- docs/en/installation.rst | 2 ++ .../ESP-IDF_Manager_Editor_Screen.png | Bin 42131 -> 315688 bytes 2 files changed, 2 insertions(+) diff --git a/docs/en/installation.rst b/docs/en/installation.rst index e33f80fe4..b95969c69 100644 --- a/docs/en/installation.rst +++ b/docs/en/installation.rst @@ -89,7 +89,9 @@ After installation of the EIM please follow the steps below: 2. Open the Espressif-IDE if already running restart it. 3. After the IDE detects the EIM executable and a valid older workspace, it will prompt you to convert the old workspace to the new format. + .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Convert_Old_Workspace.png + 4. Click on the ``Yes`` button to convert the old configuration. 5. Now in Espressif-IDE, go to ``Espressif > ESP-IDF Manager``. The ESP-IDF Manager editor will open, and you can proceed to select activate against the version you want. diff --git a/docs_readme/images/ToolsManager/ESP-IDF_Manager_Editor_Screen.png b/docs_readme/images/ToolsManager/ESP-IDF_Manager_Editor_Screen.png index a94e900ab586506b602a93058e3fb1f4c14d3a8b..d5bb98c134bdc444639221f1876348c905775250 100644 GIT binary patch literal 315688 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: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⁡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�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 j#0?E82e#e#Ln-Gat`P+lJ6-M5br) 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 z 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 x+NH$P@Mvkyr(|aOEzPR0x9D$r_JZAYw From e6a3bafd742de81aeab1255c60b170590b6252c4 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:17:29 +0200 Subject: [PATCH 12/37] image fixed --- docs/en/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/installation.rst b/docs/en/installation.rst index b95969c69..9611b9840 100644 --- a/docs/en/installation.rst +++ b/docs/en/installation.rst @@ -90,7 +90,7 @@ After installation of the EIM please follow the steps below: 2. Open the Espressif-IDE if already running restart it. 3. After the IDE detects the EIM executable and a valid older workspace, it will prompt you to convert the old workspace to the new format. - .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Convert_Old_Workspace.png + .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Conversion_old_worskpace.png 4. Click on the ``Yes`` button to convert the old configuration. 5. Now in Espressif-IDE, go to ``Espressif > ESP-IDF Manager``. From 58df3a523ef1651f23b84e448156487d9b3c03eb Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:20:09 +0200 Subject: [PATCH 13/37] image fixed --- docs/en/installation.rst | 2 +- ...DF_Manager_Conversion_Message_Old_Workspace.png} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename docs_readme/images/ToolsManager/{ESP-IDF_Manager_Conversion_old_worskpace.png => ESP-IDF_Manager_Conversion_Message_Old_Workspace.png} (100%) diff --git a/docs/en/installation.rst b/docs/en/installation.rst index 9611b9840..749ede0cd 100644 --- a/docs/en/installation.rst +++ b/docs/en/installation.rst @@ -90,7 +90,7 @@ After installation of the EIM please follow the steps below: 2. Open the Espressif-IDE if already running restart it. 3. After the IDE detects the EIM executable and a valid older workspace, it will prompt you to convert the old workspace to the new format. - .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Conversion_old_worskpace.png + .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Conversion_Message_Old_Workspace.png 4. Click on the ``Yes`` button to convert the old configuration. 5. Now in Espressif-IDE, go to ``Espressif > ESP-IDF Manager``. diff --git a/docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion_old_worskpace.png b/docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion_Message_Old_Workspace.png similarity index 100% rename from docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion_old_worskpace.png rename to docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion_Message_Old_Workspace.png From 4f3fc6404d32b750bcd534150ae5c9aba1a82603 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:23:51 +0200 Subject: [PATCH 14/37] possible syntax fix --- docs/en/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/installation.rst b/docs/en/installation.rst index 749ede0cd..04d8d4026 100644 --- a/docs/en/installation.rst +++ b/docs/en/installation.rst @@ -90,7 +90,7 @@ After installation of the EIM please follow the steps below: 2. Open the Espressif-IDE if already running restart it. 3. After the IDE detects the EIM executable and a valid older workspace, it will prompt you to convert the old workspace to the new format. - .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Conversion_Message_Old_Workspace.png +.. image:: ../../media/ToolsManager/ESP-IDF_Manager_Conversion_Message_Old_Workspace.png 4. Click on the ``Yes`` button to convert the old configuration. 5. Now in Espressif-IDE, go to ``Espressif > ESP-IDF Manager``. From 93168ead44bb87bceb3b3e01fe56cd4a38b1679a Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:25:54 +0200 Subject: [PATCH 15/37] another fix --- docs/en/installation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/installation.rst b/docs/en/installation.rst index 04d8d4026..2a19bde81 100644 --- a/docs/en/installation.rst +++ b/docs/en/installation.rst @@ -88,7 +88,7 @@ After installation of the EIM please follow the steps below: For macOS, copy the downloaded `eim.app` to your `Applications`, for example, `/Applications/eim.app`. 2. Open the Espressif-IDE if already running restart it. -3. After the IDE detects the EIM executable and a valid older workspace, it will prompt you to convert the old workspace to the new format. +3. After the IDE detects the EIM executable and a valid older workspace, it will prompt you to convert the old workspace to the new format.: .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Conversion_Message_Old_Workspace.png From 0067884daf35ca2b99ab50d86f3d24e13f3bc5b4 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:28:20 +0200 Subject: [PATCH 16/37] fixing imaage name --- docs/en/installation.rst | 2 +- ...Workspace.png => ESP-IDF_Manager_Conversion.png} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename docs_readme/images/ToolsManager/{ESP-IDF_Manager_Conversion_Message_Old_Workspace.png => ESP-IDF_Manager_Conversion.png} (100%) diff --git a/docs/en/installation.rst b/docs/en/installation.rst index 2a19bde81..191440d73 100644 --- a/docs/en/installation.rst +++ b/docs/en/installation.rst @@ -90,7 +90,7 @@ After installation of the EIM please follow the steps below: 2. Open the Espressif-IDE if already running restart it. 3. After the IDE detects the EIM executable and a valid older workspace, it will prompt you to convert the old workspace to the new format.: -.. image:: ../../media/ToolsManager/ESP-IDF_Manager_Conversion_Message_Old_Workspace.png +.. image:: ../../media/ToolsManager/ESP-IDF_Manager_Conversion.png 4. Click on the ``Yes`` button to convert the old configuration. 5. Now in Espressif-IDE, go to ``Espressif > ESP-IDF Manager``. diff --git a/docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion_Message_Old_Workspace.png b/docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion.png similarity index 100% rename from docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion_Message_Old_Workspace.png rename to docs_readme/images/ToolsManager/ESP-IDF_Manager_Conversion.png From fec22ebf78bd13c7b477d35d85031ea26e906833 Mon Sep 17 00:00:00 2001 From: Ali Azam Rana <85216275+alirana01@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:55:36 +0200 Subject: [PATCH 17/37] added file to correct directory --- .../ESP-IDF_Manager_Conversion.png | Bin 0 -> 167745 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 media/ToolsManager/ESP-IDF_Manager_Conversion.png diff --git a/media/ToolsManager/ESP-IDF_Manager_Conversion.png b/media/ToolsManager/ESP-IDF_Manager_Conversion.png new file mode 100644 index 0000000000000000000000000000000000000000..61400d55e01480336f842376a71174965ac906f3 GIT binary patch literal 167745 zcmaI61z23mmNtyLy9D>(L~wVv;1)DMaCdj7ad${?cMER8-QBhEM*1h`oI7*BnLGdP zXFpY4RqrlatCm%`l7b{E5)l#v1O%$Il$Z(x1dI{{1f&82+*?VW@sS+_1d4)%sHl>( zs3^ITgRPl`l_>;-RCtmGyr$|fUbc=31q?zECCv?Om=q#8O%R@kBt}vk396{KJAO~TAzEFs69at4DNC+{8U1l>psifw2MkItz7~9%3<0@O~ zG~-HJqk*3h?RCS*poP>Au1&Qd%x{FV)#!%;c$^5B?UE7tvBF*`?tV|?umrhL^fgYx zjZ14B*L~=m9tLHY4TRC=yvHdhDNM8S7(}MKay&= zPI{n#u3_XHwjsljpHDFl2hrc(BkW0IX2vLjt#(EcNgB4b<5zIqyNAH4zx{}PLQKD1e#8a;xnmYX4il#}lwT8=Q~L!aQzD4e&_ zv9J0rt-}{ks!L-SXJITit|=Y0s9Z2twNfSyYzE$1*wS3#y*!kU zg<)HoLHXU}YNuRU)Y4HJSIwRE*s%P(Q6*Laf4< zikfDI6GKU^;*R(Jdf6PaiQ7YatQbT3o_M!G`EZPgx}==RKrbGQ%{m}$9GnI4Qi`AWHw-5S*3>PrC&a_uCk_h4; z76GSL1UHnC73N_-w|DIugq$C2b?{X)gzF~ivoHn%^b|Q{q2JHRC#&Xh)33Ct$awx( zN^t7_&bdfdkSjvWi_mC(w3A2*{$#(z?Fe<@T{n-9;3kC0+)xF`5ky4H5un+Hr?;JtHjy^jK`I7L#%Zpn- zcwsyGf$;hLE5t>wAhtOSRRHv_$Zje*N)t>oEExpcAd;ZopgKENXKa1!a537ckVD9O zBP8}vuF&Sp=J4heH^8E_m)I#?yc8TYJOG^`y^jtzPDYAYs!f_sN<(U`u*u|8EyGgq zJ2?d!*`fYjBp?gW9*7H61;R(r_D5`shZiF-)G;tJtS~Sq$|l;3z?b69g&d2@=k6=v zD>ME?ovoW~o7J$iwA{DMwyd!v4=XzpA;Q~y-oM1+D$hngLtWb7}|AW<-Y8;$RTv=%X*r&xqP#drvR zlycaSjwAnFzLM6!vD2(!AMZFVFDZbsbB^Y3 zVZ_VC14QE=SFPOUt6ihU2`<%(3 z`zpklz76WZ!qweo=~#x|*@Z7w+BP0NH=M~Vk-a0vYPI9lps}bik>5CGI=^|w1X5R0 z>C*8tEF2>^xPj|)ZaMLsBP;!ejMEp?Oc1SazcCZ z?K9{zUj}7{M@C!YM;*Zx!p2XH3#VZ&R&Ba%@-8W7%ATB0R!^2svS>d7+X5F26GRU* zdo(9%05zYCZFx$09o`|6oRE-lv1d_cMr5UD>POYROX0D(ZFbxd;BDhR;I?(`{GjjY zwfL}o#k>P{s&U0^{?ewKA(Vl^XZR~Nk z-c8e^(9`Osd3fG%usWq~!V`-Rnh)Qt(WCR);r{(4&*p7tQ-N#cJOv%M ztS1KsG72IS>M6oBnhZ)QQY)DiX(p~N*(&}v9tYj72|dL}J}2ix`D}K@?y{ZRVE3Tk z$h_EO;+4_u#HP43;g%6_Q|*ThQ};$zMrM8QqG<*O`qT#n z!imW^InQhQTP1JhT&YRtuJeg{k+()!*zrPyI zoXlkAwsk0QblpeWr8zkJO?OaoKo)N<>p=6ZI72SyQ-|s?IdimUS0l$ffUBA|DxWHDV z^C#;ReSFfY?s13HXwyT}wk>b6yk?`}(t(QMk)r9iDXuA53UV^|X6@nPeHXE2d`rG@ z(bLH9vamAhGMn-{9lbV*@A6aWlHaKoJ}1|W$c}=wIjz@%krpDDPkx@@p0vHEdY{3m zX`|V&Wvu2hcYEx2+(8`unPug{EWvIj>Gx{}aU+2(!wT@#^Xk5-F~rKcyr%N!qQt6t z^V#rS;n{)DSFlo3ubt#lj3O@$Z=24O;)d^z(1U+t;AtRgXgQiS-x!zfa@falo73+jHpi9<7Uz6eE`=5S zZF`r>B?Y`XzqQL^k4SagGd;Y9ul%va=|GAyig(!~JhwlrwO6uc5)=%0u|11-tR9xG z1>wMMpmztW;nxBOI;?JbTtMunlH$m7eBzb0WpwcA-SrmQeawI?X-Yb)r@qZm=A!#^ z#72^;26WY{TeR!h_U(_8EKV%j)z&nZx|8I~`MMSNCWBX%htW`8lI523E4h@||!Ouo-Gp2OJ72@xg5iYM7EeBaLy&s&~Xb~jpc zWOIBEnIH8|?xR_)4Bmly!LfIp(%x&VrmXO)fWd{9&AV5Ifr}k+U$o+i1=Kt&u$zU)*_Ke%@2Q*JW?9SnZ%q@cG_B)U` zHko_0t0ph~a7GRVMl2hT3+yNHgL_aUTR{ff*g#d=@?+`ySjyJ75-Y!do;j3m(nh7!;SL`QJ!eKR8zw!_eGLXdol~;kJ|ECQU1VpF>1k68ewBOP{Pu$!4 zhW;mo282Mszx~5{dxLVJ{?!^rDHr-*c}Rt~ItXD^QEBP7RMptQ)YQh&+}0`nUIO8* z0MSlL%Mk(skLJ${DXl_%2>}7MYVk$WNmE{q$Jo}I#n8mo$dtv+`pr^$d-&XV-m=!F zPKM-e)>bx-JZ}7yf3@Iw%l|26r6m8WiPLv}N=&pk&CSZj!OFqG{MLfm(cQ+$(2d!~ zk?QY{{OdbnrjEuA7Isb+wl?H{zH4Y?>+Hl&N%^Ov|9bu&r>UF8fA?hL_|LT7Cdm4y zhLxR#jrBjloGi@#57?iYzhQsP>+kOP{(Ou_&C%3B)YjVC)W%8RzgL{^ub%#&%Kskc z-#{e`H&ZK3F^e~(whZ#pD4}$h6%8L{K(4w5A5H||0hQ4|G@lv`TxWyI#|3dqv4<73H+;% ze=qx|Js<0z{r@+5_?y`NDt)6i0VF=w|Ds$0q{8INUI+*w2x&3lFK&>hS@3>(Y7MXV zW2V`2A_wGSdsFKN9!bcLF{WDQQqL>vrO|X@gpm8gW6dhf5_@ zRr=ysK~t)FfJRY8PQ+2dMLJPY6(hlA?14+Lt*u7(7o`BzuZ&&Wz0o2{`Y02-4SX-V zU5rOM9{f@{?H-__i;XJ{&oiT!dr-;U`B~MXU)d>)uXPY?lD| za2eElU?2e2&be098NB=YI_l9}w&Rj0NPU8VXkNO-XEaKE*!>>CsmTYg~unwp-r zA`B1>9JBs2)KEx3-0Ld4;S5u7{_hDn7|9~Kwzo^*OY7AO?)k&|=fgAD;Rvn-kG z5b20wXJX-_wS_f%SA@hwwM4#kEmt^vmqgqUenQB)T+V~%hnM7JywUF(qZdcKulit* zsu$0v>(|hlo~Mn<=q`cRhd-+nD=63PY5aQjXPIpKuQ=mzI@G{g1$D({UgsmACdMOC zqr|GN>mA<)u3(uH+xg4AlZ%^}nNJm9)km!pCU$H1s*28S8X$Z@Nvu%PbC}shmk*XD1rT-lg0#|pk(d9dq^ZcVZ zf(F3i7nJv|@7E{{0gBBqX^>HJzc7Oor30lKhImALbC?2Y%fz7ZeQo4;(hMEiE0&F( zbdKBAM#j;>bw?}E6BN_6AZY8m4!+R`U%c2Z3>uL6dOcrV4Gxn1$sASOF6fv(?}>I9 z7Sk}E@GWEb@-uW*02b_CWWgP+H<+bA>R%Oh1o!BD!F_2c_d(xC45-kcIH)oC3u7rN zgZ#A)L+vi19tQEB;m7=ge@kKY;Ln7D<0P}gWozHd)Me!=p^0fCsA-v~eWFyL{uJ<& zwhlNMvl}i~K|qByKyELh`RZm7_Dc#wJWa`MX}d~U3_h*?X<%S-b`~c+BmFFmaV1zg zi5r%k)^e%Vbi_pGaKqP6JPIbVC`Y=PJQ%8=-s{nU>SH}_csapR956{=`#qCT;fQf| zlHn-?W&XyME>t=nHj954v3-KT-tYBH@o*h?5LXrAUOJMs%ri;NZy_} z$B$e>+l!HZ+mJ8DJ?zBgnGh@#qIu3}OUqtx>zgMZBv$r1B*hUnlBy8v@{n{mKM$v+ zgzf)587BMz$JpJfO9?(ubUTQ7b~fT`oQbrtsCm3^rECgIL)Y?hs}SVV{RKX#G|t)C z`v(6Ei_4_;0g%YK-5=eh-k5KP>j!(J=xD{>iK!8MgEwTfM6i7=>dk;oofTP93sm|E!zLBF|u_hcM*;Rm8Gxxu!bn8`Bf zg$jkkW*N4mjq4s6MsScbjh7}@7@^FwNy?ltepH(XTu}cjsotWD8wzd6>J|H{$s-kP zf>`TKhsB{>X)>P4ZMfAFoM+e%WD|p*Mj_#urB;n2_qUbeQOuu&eHO*Zq(2ZO*O=T( zM`;f(sx!F)xP-+~0|MYV;2BjJk79}?81!*-AfH4aUNhonBe>rLK(!ci#d5^Vw9Pc_ zZ6sc(cqD$vtM^l={fad{2%UhOrV^mb9zYW@WWxT~k7)<<4pOrFe z;NOd}#Zk*ILw>Mc{wQ7gF$k0DGjbqxJjd5=p&gdX-gz<@L4f~0`Mb7nn}VC1o7^go zN~{5Tb3Nk7E71+{#>6suxbXzIu#($iVxb)QU;wB87h$JhDxZ3JNnenyj(ME6g_Xj#gb*9{1YozY+H385{q*hl*!bb3#a($sAwU5eZVbyBa^g=|RcBUkut5Dgu z9E)5e;4AcOoG3I)H8>!aTPa;Jxflfh`2qV$5XCa zx++v4#((K}+|M}sL~rzI9yYiXAV!h9tFB$&5IW<6keJwoLEvg^Q130d8cD6O+_Oz{ zYk0o;h!smnIuJ#IpH2-5Ap5_G&Vr&k51T$0l@2mqMMDRnsuLJ-WKP2EP$*r9BNm|) zQuqb$ch!I|eI{bu(C^iyG%8*f1l;n;0Y^JIDo;PId`ZdEFhT|?-6C-vM_@Pke$P7P z=SOmP5jj*;#-7y$eNLL1g25;?0-DX;a14i?|3vtk2v*t%yW9b&9VT%Uj6_5|jm871 zn?tKDj{WvlrqoC}PK(aaz7(i*jddZlML)k9o0A`T*yxN0jp-NaR6MXGNmF>MmqC0Dv8)c&VOdWw{f&0P*Vnp z+Aq@7{XU%HIc_#^+ll5B!Cnm>!o6t`iCO%d{SJqLDHCDEeR16w1_?mzwoeuc#^8Pm z;+juQaMQ+xk|?fFn+=D;5_VKgP*}AkpoFb8 zQe8%f`ZfgkT&RFyh>2ZL!T*W2v1k6>=L_;c6_VsCP0V%Ohc_a>7Taiq9yK+-VG{XyP{nmOdv<2M)L?aYduR+D*@~fpF`v60dnlyVj{H4IT7!aN~c+}=;q9m z8?1ThwJ~{TXvM4ZWwzM|Yo0NftS&4pZBTA+BO7eZ?G6RM#@VhceJu<9Huk^Hkbj0E z1R+w`SgA-r{)rkHpBd$9_iLeQVGp(Aw*}M?J?={~sdNH=tb34H7M)wS!KZwNxy;T$ z!9wLY9^t6qzR84X8zy=0mmW5=F*n&Tx&I&j!}gaqTtml%V&E_vYpyn*qEuDv`Am9x ztLkOHs;(j1P%ectVht1FKB=B%c?Vj&%X}}LT_2(z-e9+kmi-VYwv|YlAT!mOXF8fp z_+53T%x2yYsHk*cc1Xs)oG+4oOOvcm?W;c5x+H~Y!5sp#PA8vLO@DG&;Sh5qxx`M_|B@X4 zB~GlW5pthQKG+i>gnsAE-& zxSePwUfAo7BPIDv9!_b28^f*NY7$N}&_Vnk4*b71YtadF5vTEDcLNP(_;QP?Cjxgg zdItm62#fA8)HG6Ybqw3Nr^j=%i^!Wctdzh%|N93q#3&@%l~*c#@!bfg94Szt{5NXO zBZM6RZ%}t@DvZp{>Ay{Bas`2$1T;j29(qD6k7V2VXl5(fB|UJEY7MBGL*Dz>`EkPo zbxE;oi%mpCRKG-9AlK)Mg9N)HxGA(9^Dao%De)=*7MaVOF1v?HA{b$@ueYH=i%C}4 zrQ$5FSjiajtI_%!V^2;l;<#k8)hr+j1x2$8;1gxPXqbCEwoHD!PMQSmL&=ty_3h`` z%r@rPgd*l$jJJgf@Rn!YXlVSPkxdB-wq-$)O=g-?FE-6rm0F_F*+C;~>YAMK0S*a_WSo?UV?O z>#}>>(bblSNPTh8&*uf?${BHsg{HErj7k0B+c-*9$6fka&6@onNiUtiBg5zfZi)fk ztNrzFmkEKjYt{#Of^z!-`2z$lvn=BsmhbTX8{qS%#!!L&*I-s3b}K7y<&n0(rRyPz zf3zADtYQ2(%9Cxef;R)o;Q}iPF%Q%1ZN&$HLWyHpK&8frH58pgyf!wqtXRsIaIG4* zmW7!!ZOQ`Ji`IS|bGVi3|s>{e(a7qHoQE0lqAzxU*AWEQ6DkDV0+Y zg@}Xe=43-LVNtl)4en4|yB-6xre5k*-}_eWC~T?cH3WsQ_BhOQxWVUYo6Yw8#Blu? z)-a5A;RSTB@fsqvWXq=<9;{-lS`d~5V*5TnR{bVzSIA6a|1g2ucX9|VVE4;?D1$0( z=u(~85f{jVkxM0*>N7Fs-Kt~NWi!LkdTi~-UU$+U*jk2p!1NJWB<==G^ zeAqs(bvY4n1}cCCTFmQkp_Zpg-bkC99rRUS1FnZSbiA`?GgFw)>SNjNpd-8cHP;H= z+_B=y%5kyiG=tNId;LzK3!IHAg}RQS@iLJA5y{W-Hio<-NO6tyjF=>;&AaGelHzERO8GGm|lm$OYvH;4Og z&*oz;(|!1vGrgq=p>1-Dums5Fh~H4JK!+lsVUbLCX1;#pJ0)E z4mv5on(yW59(ATzvCgkB`5J*~f4cnxR7l6gD1 z4T7J1CHm-|CVXF!8)=-*PpU#)$?Sv(Sh2trmUvP<9Exn!b3d{Cf$H5T7PV~`t&HRi zA}{A>9#d-N3*Yos34qN4S6B7_C~K5ZWt6^l#B5)`YEu5R+7Z9G!Y~BXdxyq`hl?5N z=?VEjT^-Fg;$7jeK?qYa(MwIm5448zQK+npP=SKN9?IfXa4BUmb-HbynOgQhN??t6 zx&jGlRb&I6Br5E5rF4&N&U4O@>>+d}2noV+K=bcIW#gW)t`~t>b98XGezKS$B)joI zRQ1c9vD&`&7L3tuILhIm%@BgiCJv1XSF2Q52#>TE+s`z1DZ#%`BGzRWsE0!1L-WVwI<5qU;AKT3i#_D&$4i&w&It4x70Y@WW zv>c8Xs%#g%WBJ9k(Ggh9GY(F*>Jk#d=W^T!j<)a*vgx+nG^c#LH`qFN2PZ2Um*2m0 zpB>Z~nV$!I<=g5@P_K239LHSz!X|p~dtb-O23C)VV~68c??mG9*`QtAMvv_EcjH~!P$X&GhdAyEw9TE<>TOTY>l(%j(Dp4C&VvxOQPa|SUiJc0C8Q$C+lvWWkS`Ca3(_1y;1WkC0^iW=^wM za@!ID3@@o_djZVa81LCVuU2W!uX3M{_^)jSV@ST+-=?hNEQC+*lYRBJm8nVY*-PL=^I<#dh1_o}g?ni+h;t{wh zOP_yb(aIg#gB^lLdQ$G&xq&|ldJIF!3_(8t{40E~H-mydE(!_~92}A?rW+PQSYHQy zsaa_jj%G?i@eSP86AM2y3crsg<`j@i)zs2@RAD&D1_4L=xk98;a9-$DXcC`V4zh8D z^-5x)3&c-P4Ly1R2aneWE6GZU1N-uV46K1eJtzyGC#MRU8axXLQudt+Pn&0AXfA&9 z9fk7o-|i;(KTJV?FdJKh*pE_e*SRU7t~;@5`*{(&Qm4L`{9N$BX}}8HGQdL{O?2Vl zm0ujb8E*%Upd`e6CH4P;>cI(Oeo`Z=2w&9U~$OQ|N|)ghY#(M%@Y{CE~^ z%wEF6Ly=AN>e4t?fR=>EQM{hH*19#ry0PUZ@^tMd<-_=hto!S2RY}hY0B70bq@ouM z5VJ*c)8}{H)BuYrs%JJj;y58dY@YI1;YNQC-nsB4i{ZXoj2O;iJ)DvxRbET|c5AX& zy=6FisBDNHAM=y6(C>SMGt!{5{Pb|B?0tQf#Y{0#n(PxHuT7?ai1oKK_Q$Q(P9TCm zY)zCv`zwG=VnOAbx0pbe&&A&g@0)K3Bc;y{l_{ErEgw5PjhAK%3tKLZ&c&`?db)rd zU&pDbo-?Br8*i0>3Ly+$UkIO8NX-1i=B4^@06pGyfvMxEkxdu$rPRqGdJ&OEMt6h+ ze3m>`&?kNr$EHG>Ox&U)F*X9Qttvz9{fMdUb5GJCkxS0P?>32H9eISktW7SB#h%|j z^o2n%B-T_NPwSOAHrW6-vaIKJZa(LiDBM!+iVh5t40dSln0m=cJ(8eo#H`WXP~2<3 zfv4v)1C(+&)#`vvd_Iwk@3!OggdT*EfTg*&NuvWYc!mBI%Bb0jTXBFj;dl=+VZ)*%s|S(Jo96i@vrbm3K9aSg zTngh^&cmME0MK#>kd2m-n$T5t%Fu{=JlW8tH!be{Jz9isfHUODQSv%r0lCIvl_LX3 z@-bY;*HaX;BYOx=~h7g#{18JB_eB$8mubg}jlK63<3U@0W~?_db5wWbW;^ z$-Y5?uUqK2D~new6v_HYe_IxdhZtWgBSEMN#5PGnh|@U(!RGeXNG1)NoFifZ)UDX@ zJx1CQhK5ji<=w4&mjdK*jIg~`%kIt8V42m_2}Ry;NDdssn;}qj`KcY7J%--(BEgD@LOsS)I?UA`}KZA;e&L)_*UGN*RsdBS?spgGD^!nmfUwy1trt3rOcV5)yA(n2Pos`LbeQcW@O>BV%J+x@#)a&{z>kAk zg3pE}yNE}kmM*w`AYfdxO@v z=CYD6CIKAXjOO<(^OR&jS&_4v*p^xO8i)3?{_^B`X`e$r= z-yno^E@elrIxa91HrLO9j9=_RM9&J2ok7lJ6G;r1PU`N>X9q&64nidu$BD1s7pl zLiwu(KvinZXddU}yjWD*3nkyWhK9~oB4+x?uZ3@0f*3TK^J=m_Z%VpE>Rh?3StP)A z`~7f4cJRl+=+^x|ghDI;HI|pEXeZu)Scv!zK?C&YCWOLkzii4X3@{7-Iiw$HWvvuX zsRb8SYAKx(M!gkg%-bnR`L;BHRbEn>=5u;{!NnP=9~HeRP>vTQ^QhPj$uKBnzfxB3 znv=aS7xkrKu!ECYDfuwWWZQCqx7I2?W~_92kolUz7t?qpM9gOC zJq;j~zvC^aR@3}E_(mn4ePDndSoFUer;qA+dKb>x4Rv!jjz{i#d2LuL)r4{SR3j6wbOdgvQD zq1WQR=?|~YGxCUR@SKk~e9SXVTyQt{SwKExekRWhI>IZyvvU_Zn9%rQ>q>!RPs*8!x?*h*t1$V3=6p z8_ynm$?`mYVbFLI%v>+Jpze*s?Zzt++T$k0=Pr8feVbG#Z@rcFH^&QW8J+LbiJA+K z0#JlFh@ODU?rZIF5+hkH`3f*d&GI4@3XcIUgTD_fo+th6ZVRKBTm+RbGwZ0j z%IuQfb#7Q_`&OA3rDC<@VBebsk$sOv>bCg`ICzFO-X1o1Da{J#dFgyQ!@pbpe$k%7 zX0YPrv0~Swv)+E;eSuE)Jeel}7Z=+UIrMNp;mvYkTCqW;+~X+$_-WAfS`2}M1=A}n zb*Q-&`_x{DD&sg9O{_6SX5h0w=3eozO3cY>!6>D_>@ST4vH;yhtB6YFzjHjb7w-xE zsI2|`U>xh3&KGI1{^>Rg_)cw$ng*e{!B8TaR1eEq`%qMXf;%3i)eFl#fW-X;Xg^5z ztxe!riCR^LN#lBQ#_7$y*+LELG(Zi6fxm&vi-gl-eny>c-20Z}T}(Z8OzM$7DCSk{ zbcd%5N}G6X+Y1HBXYd~HkSUJ)IR72^TO`1oY#x$?q?T(oI@NlHUl{W3%lZIYKint< z43dVSJ58Nd=Q|<;kSGzwF*Pm*k;#{y?&Vi)OZW<$uF0zs?IFVn&-DEJA~axN%_i@@x7#mk43{@ zzjG9NCI3?XjxrD_o$s@{(hq#^r>ZxHfRz=(%_v?7!^WP)F$J)3ka_65nk;EZzBT*ZP-; zbY}55LMcd!+h$!d=C^=WC*X@xdf%6b0$!KHg5ivc#`V&mzF*PepysQU;1cj{RsI4H zq~bJ*T5`7gJ9!yyz$Ks0Vp`Y5;mf+O;`y}+#+6+ZXE9$_@u;MZsk&(xvUKdHN1^$* z-Ivc$2hiYXr4Zvhs;lhloLAKyWbel(^a1zvE(E&wf9$#Vb{v8ZF zSpvh`D{wPVOf-PnJiVfFIOasT8SjPh%bZw`81jkbnhrIks^v$E z@{#PFBaSu6U?y6N=qL*Ie18Jv5u!8*F37c&0Ks@_44A1Aspw-(O{$N5T4AF?QpJM< z2=8dDvACC9vZMm&Eiw7x%l%A7rYBVDOPIj>2JUoE^wy}Kv^qa@@wW)sW7ZTYK1W2= zYoz(00A%NlYB;dQ*~VHx6@Pa083AQZW2JqIesL}h2n+qHQS_aXSi_3 zow222#O82vx;F8|RZDHrp{ah3V(B`#b2V{=0@ELc0{PUTmwjLluGZX|NWg5jNic3+ zUB{+D1#s9QY*h37aFE1z2k0M)e_N-i1o+0u=Ql+%a;3n7VTnb&ZrXFBv=#?@5aR$5 z=O*S&8VxGjxZS%$6|HtOWsf4(Q-~U8m5BxHkIra;q^ik}rqpI;oXq4{X_UGoKpp_3aSM=LEo5pk4NO(w=9XylR9C`s@veJ#DYEp)kN_DF5}3QggeSGGiJ9NtgQ z{hA^vM=iDOeUpC^SqX%9%pbG=P)1?*w?jiJ0#(+X+E2nfoC9hdfOwaF(rMd!#mGMFnf>E2NgNo0^MRpgSVEA&T zU=jJ@pIk}QFz=Z|5SsD`M*iF@NMV{iu*^{6zUqZ?(2J-0swyo4?@3DrrpjX7YyD=| zo7;^WT>O0|QC7o=7Wa#fk&4DKczMjVs9Cu*z44U#{&z#%V6|!G>K950@9#qRc!<8oWM`#Jv#LVs3);m9wb-4RKx`=ar^ zVwF}MMi}d5YQY!@g-MQM>7sX=EF33@Ms8Hp2D)I|6X7F8kHA;x1$@Y!?$bz1=Lj3gapVVkHSb-Y6+y z;tHk)87955g>_V=s0>xHqWZ8l@sT5yvDP#zm%6kF4JI*HU9MD#&}LIx2v_>YuzR&v z6;Mbhr7nZFe<;c8L!GD3S7#K>wPQl0B4L<`?$?g8Lj{JGx0@gSw?WxvSDsj6P{>iLA34_>wfPVF`Th0Y+NKTj!pqgj{-| zk3&B<1p8ykD{wkFPe-JKfUcR-^i8ZOJ~FTK3%CIX&jwi<0KPu8={8mU@useqGZm+& z3M_EP)ti*;cJ7aeIdii5v|X6no|nb>@uP`jp9_`O`*_Mnw#TRJefzP+8k#{HsyvO( zPxdjO*pD^iC1?MouERswk=S7}Z;OD`?;E(KYro@z{nyo2Yea{`t)*+k8<^r**pINa z>N?GY%oBoSbPY!Xf*av1oJ?=}X05wa&2?)6zSKJVQVWHV4WmUdA5%!5Qs~#-z8z1p z&)Sf?3-81r4$Vij``1)IxLw9oi`d7b5k_&Vl(%k?dfp7;%`|z7PT_0Wq&S6ID?{-h z(c~OvQ1}MIS24YI6hE3eto&$ZvINcq-weaL4`_y?)Qtt`B2B_|BnXRoWOt=TfO-Dd z^b&q&9D9@p36&k6`QA)yMpM-A$efp(cUca?8>@zQ8{jMw^s?p^m$62gO0P8uC~8}! z!-rIbkfRtvUKgv))UEcdMH7W%dQK@lUH82l*>Yv6G-|}Rc#Foi%faq24d6Z3y1nF4 zxX7NN45g+b`p!T!tMp^C@9Mi^xil+dPH6s;^*^q6+2=$-6jF}nzT=}3UMJtp?r@Pi z%%Z-9bV0jqnf3N-y$dult_O@6;huohs~TN8iFMy1&mpRjB{fl!5n`MQhg!w;u~hbg zT@&Kfk>0(RsuRzlpbg#2leic~g`O;NrHf$K3DQ22*KSCG$AXv+0^1W&9wAC+ zNNI{gYt_N-hZ%>#^zp9fP(5K49IxAU>D?n#$+vQ#B&ukuq8YV>xwFyG?go!h*PyK} zCli`toqROl2oRm9sXxopS0U6ntEKzQ&mr0n`=CbhlgsDdBBmbDm+_ zTH{7-p>@f^PkMV*&|5Xm+jNKz0Q>qnnLYSkEDD}p-!&cmSQIu~o=xd(SkT2DaVGOR zoJ7a(Jp+%shCDeX+H*{tEN(NhbdAN(iW>}_HNAXD%$e<-`bnHlp~$H#$YAH7%hC0C zTP2>ZYi2CEF3^%AZ{<3FzBGKh@^)Uwr{UX&kL|Jz6#&4K?6dbT^g8Vp6m zrY${}Lru|jP!9hH36guyz$w4Au#X!abyC$f4%nnFKX8WOqE_Y3gN3|pnefd^#ci~I zi#=4*UqN>Y@*lk8H6sQDyEyJ_fb|^;uMe#yLvu2(>x|y%{c0^aYTqFNR~2UEmF%H+ zf%S4LRA>{~1m8ok60Y06>Xk?G#gOo_(AX|4P#4|rkiF2iYm{6F4G9#^M3TnWXZ&;h z#XlM!a{id08FoMu)9H9s7cC6P-FTbo&1@FDt>d-yl9oyGUSpnmT7T)t!} zrd;(yEuuAvpEgg3hLgPLNT`YeSRhLw6T%6k4TV5Xi>W{a93x-@8jqfnm?jVt&zn#Jw%0G?{Ga_aQ z6?uIpM(`J?-l1tcTd<7E@!AAcCnV18i21tGwTqX}4(v^XoNOwa61*bjcDaz|Z$3n( z+8#UPf8TlUO`}5FwC*6gSp`^A_c`n8!t{A_HPS>Lw~xa~*-KT( z@aPS3sxaMexEjb^++LGPI_`mQNJ=yxc zlrU~VsV1*9NfpW}G>%E*t3dDd6g@gWMk$$% zBH?Z9Bi`eC@l{|>#&&>0M7!B%BV(vSfAjx~Nk3E?ttB{_C&U@NUA6FKw+j&pT>lj(IY%+p9`Io`6HGt$20I(Epz60ZHJ!;nG}*0G+7(Odn7BMz0_SBXaR z&{qOO3`D&T34ZuAEe@bVM)vOMhF+Hp(`T2H!?yrTXCfEanURd2b$a|5GrA zMW5;H$sFMN=WNO#g#tT|r8MYmZ?fP=b#C5}Wm`m6u)qT(htjEHc}i!Y&?w= zcpl3d505S1kqLqhFL8s1i9sE#B#u$ct=D%+=SxIa4d7P~n`Ax)h!7+4sE62QAZF=Tn4X>9yxeNr76GkwfazFXL}9 z#wxLFuhZ&Ys9mvjC)|_lLg)dy?3*M%pMtqG@B1}QukD1K_g9T9K!or+HN*DO&(#|~ zPZiT0)HARDT%fDoqKIRT{%(mh9atJ@)8|XT0N6`(H!gG8WwXImLKsB_(7gNq2z$%8 zD8H`nTM?u?rMnvhq=xQBS{g(eq$NhWI|TtL=}wW5?oI*e?q(P!?(u(~*ZH}wJD%s& zeCEx}-uqa`T6?dxe&4;Si;^5NNr;ckH9?@8Y-i$h@=COCIKIE`w(by74kmv|^T{yF zYarZ`amX~Kr6o-+8htkYG2$67d$@QMu~L|n_NeS*9utaL9{}h?JGssu6_b$CcF}Ys z&x<3t3Hmm=bEF< z(B~O_lRzQNJs%U7l5H+ecgmx5TVmhAlh6A{(cK=b15#4?Ns`D#A_1E8gl|`u3 zv+Zp__pQ0*!=DEp$z88D+U9#Y^^^`;(z@?q7qY&1dvZeI4YrNYOvsNWS zyumk=Ge2O6swJNB0+*@u@CbBkCuu$O?BLJnn5pxQ^!m`~auv~cwTgl@i2;2Vb66aJ z(F2qXxZBHofw|ii_!N;$-aSkDX|SMUMD^`AvInsZv4NK9j&;RKhoQd{%M1&2=cb`U>m{i<32JUF!k0qZaDb`;p z+OZ@Xx0o^MQrAFUF@4(*+e6)|)hUa!QMfwMA?ZmFJ14^dTn`uOEE4f7UAK+qb3E3+ zk(Nx+ICt(^h^APa4@@Z8Z=za%fTgq>rCaU1ovf^BZ`d{5PeT@wQSoe1ujMc#G|-$a za1B8Q-{ix{&byv!QY2r9x2(TEx#Vu{>q``w-RESxIBG{2>>{$Y|C=Fnu|Sh$ospnFT@hy{>MmrXrFZkOMh(Fu;!|?gEcGvQBsdzTxJ&Ub)mXq z5_OjjK&PWcYRVGQbXpp@2Ym=x;!ITDwh2#*E0l+Se(0E@r!C0K9!P}|9K-J;c|V>w z%ap|v(tb=MDq^=&Kw^!p0^Jo+n4W6SatJin1})FzV~65C*=RQE@QD)&Hr3pumuTj9 z4Jt`1G+_!ePrS^Jid9lc;@i|GaZEb>fFWS^g}am9y04{3(IBq7G-Edrr9Z2Fbr8}6 zyh@pIo#m!uAQODm^5HpouOxGvQwpCtJH;afse-iCKZmDQWF(J+N$jtbR}r_V(;G#A z5bF>+9i!>n2s*Rdd_f^0UyGV! zC>zZ;evqv{CNXjPp)wL*GuSBvEr19B8?aZsMwytWzg%@*1pLgxE+*lIpIyXGJyHx4 z-a0lrtVITFVZvAVS>5F8*;p>W0ZM;Hh&LKeq{=uFkg{M&i*n5^mIR4zB|sQ$s~icY zBF;0N#nLyXNmhChYQcA}~wyI`Ub# zi<65|H!iAH$$*c4fj+LW+t>t_BKgt>_doO~jm=8o!`M`8a!A4a>d2#F8-Y?YKp%l@ z+}7Piir(#<8qB_I3R#+5ozP;;L8X*aaxSaqv^?amkBrJXaNpcU@m_AG4;V}Ud7$Hq z^$Cr)k;v#NG*J(pNkq&!b98Ttssvuunl~7lIFSt1e%3i`5t?vHR@!xsBEbpuior>j za#f>LNr~Z`j5gpdRD5)_7l3kOo{+wB=l{rc;Od<5XUF?*kld_}c~;7n3*Dh1jm3Su zd*lhAI~BAHk^I=Sf-bMl_D3E^O%j4tTUun#jMgaWJ!D(X~EFdL6w4aFAU*nA@zOh}qc?doiEE^XAI z#hA!!^80SHU(ZZE7E8-4)f<)$ir2&H6_&z@MVY++1B&kHmqi zhbJz;r*=X0$DIL&MH80jyp?w2RhRjSj@QO8{j4%k{|Od{l+JctOi|Ujvwt_1E%G4w zpEb8K%D1rP6^4FbTeT1sU`1DCiTj@&*uha!Da@QoXwQ`u^5*o_K)Bu?FB21W^%~z# zI0)OLys=0UO#Toa9rVlSa!4ad|98E-?NLez^ZL_y=(;sN-uG7Zxv{B8VokuSHle9c zubVpfHqg?tCtA>&ixf~bF1N^RYEJrS&wnbVP^gmdpnui>jHF*Iy1X75B}(`<;njZe z*E>s2AOX;{u!GAaCgnFX!=P5ylKJ)s9gXC_P?ufol(EUo&DMntqXnK zd7m88>ovZL@O}GC8i?~>X`g>KPKJcYDOv;BVZRL_IxSBZKgL=b8gp9}OhW5JSuE|M z@j21bY18R#g9sS6-cr@G(JQF|Bf0OtB3km5Wx_u@AsNlkQnAi`kAyad+v&b^xAyy; zr}?i#<#WYn$kYLw!I!6vQxQgu?<0Q9qU$b|YQ#({ei32+)ONpamoM_%t?i#-{9E2+ zD2pt#*9<@&3G~s#4{k7xo|GJQirJL^T1SBjL=kI}f3jW{{xiGAD9;vNb|ELj8dc#I zrdc_ho=tuvmprV(s4uc@II1jP_22Xd!FP$z+SNfG|5Nue?S;H4vK;loG6iQ!x*9z| z(LY6Mq%85+0iVuSj?FQBI913m3PabEwuXK?EYIOg6MxI<{;R035 zHCfBg@TH8Z<};!&?Fp|eAxhf-#*0HsLR-- z!HmbiaMff{Lgf-hF%i7zY}y)vfw#u;Uxx?L2sHlKXG{{FUGcdS*CcUS=`<(_5eSOs z{8uC3|0$_^EA)ko6rJk#gC5l$t%U?9Sld%*6jyRu&vj94wbX8*KGStKUnmlLfKFW=Qbh8bdT< zLiS)%K6fIN4=&Cb*5cnw+w>IA59R3afH8eYu2s+cy8d6fpI`V&s7K#Q7_aH+)je(M z-Dw(jX?D?zRlH)+@Ncs>XEe5hDJ?G&TkZv4tJYT`>(nW-4?u>g0$EQ{|6hu#zqP%= zm}fTVI;>n1S53JP7Ydx;!Ki$ltcCJ&#UE5P^uBM%k!&l*S#FK*kSpib1u9ZoJ^Q2b zVZgJPc5wUubNN%57DqI&_ixs37+mrV3Zj5a#f;>ykSY|Pq)&r(FCSCFxr@Yr;G z=%=o$xg=V6lt`-2zQ%KMH81}U5C1>S%z{DwSp%|JSgwdSxK1Ql?t2ymmdYSd>dP?U zCw0b#LJ0|l*h6Yr3yqy%^?LuuO8n^FzKVdM+SqK{J#vs)eBi|RF3wS zN7gr`1o$s(e_cCzmty0!9(IjC|HT4OnP=zt*l$R}#}M9Ri%K%suSNTAd5obQMNB>g zpV!r^suS}6va-5l`d>$4my~!+UmITVAi;Zxt*6>aFq-MLcI!J;z#0x1Ev2Yd#U=93 z1?1UVN)$5|X8o*Y*<+%ja;5n=p?_=q|5qbJ4Sj$5Cp^^&OWG_!N98 z?Pw>xmE_R2=(1!7^!zNHWza8g>fA;KO}*2*WQVji8di4gXi=SQKFNjIy#F6#P$F2Z zc_D3etg@m;jv_OFGi~XJD;^EQ*zZXzl$+wZwwaG2Bfdv!ZbIm&kcJl_$8yx;u~PsF za*7=O?uOwTwmQDwL39B_AjYx6oDSjbqq;azeLUZ2OKZ^?36IzWW}+gjS1;1Gxucio zd=Tp3fqi+8ZH~T(mK|)s%0kGAJe?m6{t}pTY^qlatVjmFI(Jtr#)b z)#Ff;#eROoQ0JOR5sf~eYCWVr559@@gF5YOvF0bN>)h+`s_y2vw)~LSs^T zG$+bZ+T-f}0GjyFeT&ufQjLvVC~tUVh=wlht^mK(scx_5<%c)#^+yJ344*(JJFfaZ z0Wi`7x{$u?SOkaxmXRP*qA3Zp>5F|yNCULm*xIR87rm9`VQ(bar#S@X3fQ%HZ#Iz| z$?zw!GN%{%i#2EcC_Ke*`b|f8C{tcjF+)7a#4VIcVoX2XBT=9}%X$lmYD0AT^e0HP zeB?Dzsix{0$lFP8D}%V-#k?SQDVfROlKRqJ*!XV3B6)kb>XcrLXkEouVe-c>Z`FYI zt6Q-;LdpbymqPQD+0~3ol=PR5 zr!fko;Vd6}J@Z+=bq4V9;c=+(KBk0$RAL3E8lLUoYU)*K=xIAi@g-IW;=Kxs(fGZc z&c=$xab=4`qA|%9-vR6(#0HFJ{yC1Wa}FR7q|n^BN=zR-p*drGO}Y|EeSL;5Y~=fo z7=5G4vh2&WP5`7p9W6EhDDCrH1Oft46yT9d!Y>~)rvOJ}+xb%f>(Zke&B18FcUr=? zNi>>njq7uNAsM6W5f$jKZDn(S&2|ndNpis=J#Ni}(Pwp3xxW~=!yXJLTByWoP+Q~? zoor3fwj*Sua(cA-tjs2U7Vj<0qv8ntWqx+aNxdIV^b^Q$XpvHxj>5T7AbNkAB5t>( zgqtd_7Z-G`zQ0_6hIXm=%PZjt{s36=9o|2%ggd-) zTi#C~hzYGts+u{ltaMm3R!56~$%KRuoECTNSc(`e_C5Qj89dsNo?@xNAo$1BC-?&Y3&#-qyRa4z2vz5r z4){IzvJ(H^Xq0bEnP@Cht@r$2mgv#kLOR19BE+)X|pJ! z?&Wg|*|0;Y=()T8s9_^IP7xeDs&;ZNnFvnz2|KlyNe5(I6{3SOYx-nJhTgjgx&d<} zxDPSRgV8>3hDtrJ{yI<;_K3f*kqXpxco~~7yfOxFNRS5j0iRzIw!*u0lPD6~Ae}nG zxPS-;NIeJnlJEp*aZn)ClJ*~zL_OEEaDOtx1WOrh&LEf~72Z)Lo$l48s+CfM$MJ%=0Fzq`05mwv_e6ZLO$$%xnkBVdjp*ii!WOa*8IrW zQ8|J4wp!Gevk8$lw5nFme#`m1i<2A^{&g-a zCjzN95f2Dg&TEVaVd~VLSO0=u7=3kHT@!O8Su_GeR+nfNO~7D|o=t=;ctCNDLZ;CW z{Q%!>A`h1DbE`-{Ta>pj_|H?v8O@}7BrJqxlOnYW4q3-eC`dSjRI2+2AHI!U4Ro8? zw64O2F&3nRsjlp>Xd!W+{b^8Bq&W4B7zw`Ga!^p*KQey1_!cV$@aAy)h((SH_%Hvh zt*QQS2(3*7*vH*n32Tr9{L62zjISJQF!9=)pug1k%jZzN`xRFU*cd%=O&j*Uq%lgL z4!`d~A8=z@s6KNC;?6QTE9EP-7n_<_ReHVCjBPm{&XhTvVy1D&#Erw+!MkY$J&zR= zn`QZ);w2;Gn#z-Qxy-+DTtWiwNFTqP8IpT{dZHOOwLP@nyTzyLDBsRc5?^`&s^s>C z7RmqHPm8EbQ*JXZ59KclgFq)YxcNZ)-oqQs91aj9Cy0+6;TeoR5adegtPYVb8g;?0 z?+#4-pw;KWe?;_NYkv#7x9EsM&srv$OB>N&ilUUxM@Lq{UiFmAb}Qz~qvOZGWB=&5 zMP}Vx(>9L0O!t)?BQan!3p16f1I#`mPq z9hpp=K&yznc+Vn5WKAO0A74_x8Zlas3SanwY00iUA$mL=FeB&7`%_3#2;@259|611o=%2O0;5R8!_`)H|5L6@z?Ez&xMFPE?x20$N zoI)QY#2HMH6rYbF-SpDjyI}wgm{i9r>o~Bc92Z~tXeeX*K>q1fWREH=PfnO@3&8Q+G7w-c0hyj_zmhI zt-Do>^$jEv4bM!1T?6sHcx4<@R#XSJsI)nXzm zVT|Vl)kmJUA6~Se(53y};tA&`#k44xpw?h{tn;JES=k%Pcxi}7h>84DozI==TPcmD zJ7Pau{>Jwy_K)1@>kfGRIsaYFOO?e$wW!1l?f==A0VDQ&GI8KDC zW#c_GD-oEW+eelKMBtEwe<$B9Z!=`E$(i5|fZ3w;(=G582%DPU@aP()I4{ttMl&Ep z)E(?+!+aw|A6F{~y_T2e=x2z{*jDV`JY~h0CkbK@zKn_ya$X(Lr!LSt#SCxq3riQG zP-JcU%|XP5znJCpC%ay2AKhTPC8{maChyT|szHy3J+Ff->vwTDvRh-86~O=q%}F2Q z;7HMp5^l&+Wi?=|Tg77r?|>Smf7`f(u?XQqKfzD_1`{>$e_V*(iwNa>;NTTv3N7Hv zyU3NW+U{+zp2#zlLE5Xk1BIWk2-fn+mfy7DRu^wC2osQDFSv{KkYgWZUkKEGwT|0+ zkxaDuG{+pste3L=`JFv+y-XNuhOJC+aB#iYiF{qu9h%SM_!|94@|u-O%!^dWPHNO` zB+iO&e)!yrFKRpbo{VmB8*`*Y2|)Z8-~QUs)Dz7GaA$dQC-E-&x8az?D#^Hwx6pSm z$dMNW>0^(oL&WQ5ihSTdF1ZWVFoIn4zWwUXPRN$ErZeW`QQZQX_zmqHI#`2NeL4OG zyhmb|Em|VI+x?A$Xc$Mb_~nT5Dp9Wb=p+Ag>E8RiB&s{vetK)esa5}PAFWDR zM95D;@{DW!v|i1ZpLkvOsevNQU!K`NpWc!U!^nG-vq?91Z??U@U;ax3I}Tm~SZ@9u zyKS>wFY9ttDGio*m3OgT7aieUEPt@=3)I4rie8vQi2v?D76 z4FPX5YDh>NAA5Svw_p3mnq9Te>Rk@`c7u z^ts`YCtLqLkl~s}+|7F5!Ims8uOhGJ;}+2VlusdcZmejCsM4RkbyMqPMJEyfd&NRF zkChKxi8?;XZ^OBI^jTCd_KKS776#oZnyBsqw(a}3W%*$*CPV%ApSR?qBB5Y}pNZ6Q zQ;zjf2CHl^PjS&}Yq7@Wm>Rh&S(WHLj}Fu5MZ!~XS$@ADZ-7Nu>zj#|K*nFG-jWi_ zH(-ug=o_^pv)a$K?g&V!Iup^jw$$F#e8{LmL_!n!D6bHeox7=38a<@GF!RBu{Hl$Y zq!++fTJx&Kz+SmF5QuOUgMqyt{iPo>4X~WMf>sj#ExAlXOZZo4>|fHBEiv69I@B1u z2V-ZawrBHi05$AZ{(1RG`l2Et@is9iq=0GS&Ega!RQwn48=N>eWf=G?m{yCR^?Z3a zlA_Qlio2(5^M{I}_F)Q2SfKrk|9gOzhmap$K_QXSFS$Hc&id%^LdDUq}D%u$j&A0lazRn)CV*+_z-j1q;Be>84XTe32|Ay^XBLTqY9y z*`nrysO1bW!~$J{xgVJk{V7Ofv`vqm)BO*z7{Quju>}cs)7flhZ}HqP$xR836&;Sr zFI#i^TQ$z*SI=ce$sk9#q>W2~Uf%^XJjZR$UwIIC(k7wMb6eFbih>VU|4C7l^A#^X zm;VKH1>zH401pA3@aC-$??Qk>L?R$W+7JY)Oca1Le!}M~2m(PE?q5m53x8Uez}|eUgF0+!M#fnnyRS`bF6Sj$Vo~hUM5e4C%su}AU%xAro%|ZmBf#y_S#^~9Uz)tIr(K&e0 z&zo74X4#craOqwme+^F@HhMQrcBS3@MdED28+%0NXpA*Yl%bcrGGqw!IUa?f(UAPg z(kCX9xbBta#y4Wh2%QKIxuL5>w?pB+aQ2M0$%|lNPI7Kw{HD&__|yhZcNU+niE3<$5Z(w7IBna( z;Y*$uYrriPiCK=9$S$Eik|n&rkF;vnePw9M{pI3Rn)DVnhN8&eZS|EZU&W2~T}L)$ zUa6~Zhze?9`w~z~1=KC+$C~?-^Hw~H zYuMRc4YoOiNIskrSimIL0SoSHcL4gRbuozFUiMiIC-qnkZ}$AfNmd4(RKWb;nRh-$ zo&J>%Km=J###+|8tg^b%U1%{;4*}X-c$`}E%l3KaX=&KtX|(JD@vi^lQhd`bcHSl- z4w>$=Je=;atQ({Q(~SDeA@s3E0(OySts9a#+STIlQ+=Orhg=+`jX&uzN00@Vj zI6?koJ$3ut9H2LLM}BF%4Qg2pDyji~+RA{pA~rF54|kET!_0PRDoVt?!M8`o)>!D_ zE5_A1dSh{<(Q+8?(2$rY9pCX5%2=^i>rk7dM_0~A)k(pl1D0vEn5LXl#HHV2iXjdC zmN^YQ&3hB7rWP3qnqVeih(WD9H8nUPbySO0+*=ju+&1 zT>kr)obM}DUZJ8aIsfIrR*BxLAsSVu`@}GRhQMvzqch<>iT5&WLr%2|*AMz&gLmG3 zS)PBqwvH=nah}e9x{_7I5X`vZBB(Luph=%D!e#gX#hTqkXD=NM_?rl)zZmft0MJPq z9B}@l8><;botZfM!Rr{;*Zk8KI?azdTc^eeVa!!00rr5+7Z;d2L-8En^MP;=Vi-^Z zD*b8TrB^^H{@sTeYVXxRpU#V&xuO*M`t@31XE@O3q`TCd7zQc@MB3%S49Fx;BQ0;s zW{l(weafH{z3iq@dRDPdYQr03*f4tQjPM; zoy68|b!*5DbjpMm0Qp?cMvaAuYAf#xqtE2ziHJRLE} zLxoqx<0yZqgMK}2&|oqDMnN zNGGIWtk(-+{6&64LD@ckRhpN}WUCwbf;bY;+d0eSOMzb2LAqdmQ?IR3z>^VKFIR&=9V(zEliBfN#lA z#GzHazcCMup&k%x=QDeFYs-l_qoN>S5FqQwphM!2_}y z$!{#TEfs=ZdCq>GK(wY4Z$%H$B%Xugdx8bNyTXVAqyT)^Uydejty}RuG;dGZA)V>4 zuxLWrg}bG2?QC&uO2Im0_|2r4!9@p~+OoZs2xOSy7D1p?eh#0UHLth&(Mfvg>S&Lx zSGae%Iz5e-7qHFuryS{;x$(g@0dfep%`_!gf1LEOPk9J+l3BQdp~FEtnp&@|@Jw%* zJK;glC*ta*_t29nNI5JSU9;Qn3=X-O!hBfs&=fhfj*Qd{xF-B`F~C-~5NwFKb7Dqw zhWj3TRfVf^$I}U)hr5|Jc$V9y!0f=cueSIWc1(SK$7^s`j-6S8o60RC*50e-;3M!j z36}-9R295bcN^Pd>A?M}FI(A;we<-I9Bg}h1N?EJ7V(ek9<@=$iQ$@*P;_=xWq4!7 zb?wx>&w6bT)%lNyJhwKqI?Vu?#|$HyJJ-M^xH=P5BohHjqxjN129o8P%a7O7D*$!} z{RR=L!Y*ZTBQAh&RLiUFPyXI!|z#ydR(;_3HR-p})tr-!~Lz-3S+gFTE-{Y-rD zH#IeIJDL;Ql;}SAiKea?R}z%uwqjp8i2Ig!A5d8V=g=1nW6ASfBf4Exj;15v!^R%7 zf!mbs@En>B?s9 zd^X`ff>P+~m$nPRCGuhWl6w!&qsj=>wefW|_J2!$tQYk|h23-5-2s*U`H10!r3Zj3RC5=*ZT#A+h9li8J!c^eMWj$mEhv<&ziRb=S;J-9|IAtMm1?gvYDYM!}_4B$n z{JQWv$g6zN<2b3{)ijBs_P<7FFnxbmInimH1vvl)@VyHfxai%aEU+fzTyIC{PrF5g zZ;y0MSxN2mFyL`zL>B^ACEG_hBfmT?G%SMN`|O z$L2AanKZeJ&QGdL*1?|h$%+HwtgdOPs9+jT1e7Kvz$k3V z%)<+`87bK`3Ui%(y~O^lgeU@=qQz{KX2W@0)&~q&zlgJ+>kARS4GNd$H$8$c**)bv zfls#5kLG$23i?y^l#BDUZkC-5FeiXGKv!jB#Z(_Yxv)I1Xsvs!Y<0Ge-Rc-S$m`OE z?OZ*v<-hTi*V4t^TwQAp2MhNi$Vr?7;DxPlQuDOio~b?$1lLVN3>tUY(%LP7^-46& z;@DLz;#uYHuz`-6xAbnCAlwb}k6%J*b5V5V($W9COGvY2QWA)2fn-;oIH3 zD+5ybPwRdu+_sbQUrt%Z@;aQG?-utnX9vZPwIj%^IO!<8K|?V&2@bipS;CG#q1~_* z#}vFT1di7m71xf1$BbrGa~JhvNu{=NGh&Ea>oJQ;Pt zCfCLLlBuBkImfS(99R^RdL)B~Zw0@dtUo3CaxlvRozpky%@aZXV3}W6JokW;c4+Ml zxU?Qej|qYzq&qBCC{@-ksX28?GwZ5j0mQ<5OAfe+X7_W*%yr(>@va_>e zlJy)Z6e>@vcM4bvL&|*$t?9cQ6bzTi*FZczqCEcdjrB}M?ZwnTx0a>pdqULEA1(Pm z`%u)KaVxY8QTsbI^jL6r58M_3AmpoNbb-qyA)`&qM>+JSBw_=%x)H-(lF)?f)>a*h z^pGa24As$%m0rvOoBlfRb!%~eiH)g}`IQHwmmMgPOi0FMcLsK%Q&PJhTV41Wjvxmc zPLF~zzq?+%(|0RCR=Lw?n0zDl zwPwWb6a20IHhtcohc$-Vg(rPlOi~UxRM>p=`C>PT^2GAYpHTqc_gk?_AeVz7in7x{ ztNtUj_7B)R2B-+VC_^9%Hpuk5v{o>U1ED5!U`?PlrX=wSjaP8D#%lhL6Wh_v+BtCP z%KM<(!R(_oM)3N=gX>D;DlLza-Q6C`&k|@N36_bAv(-b``7Z#tj|W6y;*7$azD9$~ zp0yxk8_X~HSX~RR#<=S8iN`coQ>R~Pco2XE2YBpTM8nB8GT>+}(cYV;is}+NGGbv`wne65oN3bJ8 z+d@}1taT1tE69Eas62)*6~lCq7Ywmsj{0zebePIrV($@v_jh8AzU^Im^&1P#lBs6I z;&hS-4jrn%9c$_O^4};mw-oJe0Lg*u3*8B~&wF(+e_nJc9u`##*0Wdy@P|2xTT_S7 z{ZORwf44ire-_IfhRNNg)z0%$zB|T~)Vc4+We6tYmYboktmroEacZ@9C{eVb2tuNY zh7d1Qww#_?c?7?O{cW+f^lyIh06wY)nsze<+~jQV78W*M4K=(qgA)NBBeHsyS;ruu z{?KQ4)cTWMd~JESZ$K6|emyAN=mwDc7+$-{Q@8s!0Ca#jRL~)6qWc$tld_9Xj>lbm za(XEbK+iM_9#6(c|K0o^wv$swt^KH%Ujx>v1Y4}9sj6~kD4;XNCfqMo@O9{0OO@Ve zqVT;S3A?Zd$Ao;q@)%1zcP6kxure};!2ng0y}1V!{6kQDb4>?iM&4zUN7pQ3Lh`&or9MPk+W$!kv0Ae`q#PoU^!`U}A z9g5ZDhfB@N;hGm4i`dN-B5xoDcd(m1^VEm@A(~+w@V8;0=7tm=QKbto0a(T3xB{=5 z0vptM`8j1@(llwW1{ZnJ5R_grpiI0;(!tNvvIcAJs*)sg)`z!hZ1)Jn4(Owl>6C_; zGwPx#CCc5Dz8;ulea-)yj4f1`l9IsJle>P!s18(=VV`S!Tygkez5s7ll-Rh2fYwG$ zv)kxkY2h}fc=wF{3=jmGiR^1CpKH2kt7Ur>g)@&F%>`Pd;|t+6+T=e^OtbK;G$1zC)3NG8Fe()pj`-zgti*(CVZoFO)n0}~NuuxU z8&L4wLT2q*=-yLkB+;BE2ynezw3P^i6y3iEkdkm!EUm9;TMD0TNot#SL>#Fa_rhVQ z)M(xFHqJv-K3Jvs-VsrC`OgAc7OvtM4GwNTVboVcdqWIjax@&2tB9b$sE0lshT8#gdRH;1k) z^#(ni8F0c8r}|eKB3H;5_(9;gd=>bZP4;2*$ERb$%FSrQ%ML9zGq^B29VdIq>6o8R1~gHbc)fwQhoIuKH}AU5AzA+L&K z2Y6jB(VCH|9;9RJE&PfY$|*VO z3N(7^)(`6ixWE*B_00n#v8b#r(re4a9Qdrfr11$uz>1HqpeO9$cKC8p;xR|%=uJyt z-*fgcX;dmk^O8LtAe>4flRnje`Axt2t7}B5xfGg@61DaA{mERKHnT&&_r&X^FjwHo zD)9#VOy{t}>5*TR=e^g&EN~b94jZVyak+M5Inx`Cz}n5!yNXB$_FZnpw5ppgY0el- z9c`5*0>vrI&-@?3nr5}_$10V;!%rf2z(N;#m8<2xm?zC!v8l-LSd#D=21N($_MZz6 z1q8yVaAkrX7~-sgUVAde?iKtHI3;leHFF50aDP5IHziq$a#+3fypw~7|GeR(zpi#= zb_jO1q2?Nz4mbg7fJaAWZ+HP;g9eW*N7L9WuXjhlg_5T2R0`pmzHM43(mq%ED95t$)5tZsVsGk_!jDL+Bs_)rR_A5YBxRoUaL&8)eKTLA*BE zqn-v?;(Oll^0irAF`9v3fvw@b#H8NQrQXK_b3E$VjFf>`J?7@-2h~gzTNSA5G2FOh z>NsWtD!Jx0WqKdQM1D2y? zf!pVw!HOF>mzqZ=P<_x_nBhixOK;HiVNqW=IBUAhxl*$-z+aU{#qVh>DYlkf7-kGr zZDaq)z^}w~0&iog-AtTu9>@5i|Cor#-_>am0GBo{A1*bW6GgNGdl8}zmm`BAUF6-= zy0Cc~y%KRKSvn<=7YlUbMMY&dL|*7(8ZydXaH}c#Sj=mVA^GUr>-~MiM+2Rw>$31} z#>rp&v63a+xs{3mo^fLZzO@H}ck<^;?Ynfl%dESK_@=>v>6t+XDtBT^Ny+QQjtduM z30B;lZ_f;N-iDQMb%18awyY)y%|AWbHa{$3hvs@C2yMHm^kcsZ(^Sp(P+s~g8a)Xc z1R=L{?qLDf0VZ3(hscfazZ(i?x9pB46RO{K`K{qRz(+FmVMn4m6(~J)H$B6=u>E}H zqyeID|5E^3+)~QX=^Au$@*V3gO;>~M3y@XG7hFD%E8*ZlTuf&lc>yr=AO_QkUy0s% zl!7xcU;F$~?_XyD+}Srj#LlnhBjEel0EgHIe1{7fc)xaw&~RpVy_A8?x@*;Aa}TzV~S?ZbW<7N~9z=3-Zh6%_eez4XIly zA}%XdhSruutFzoqtwraL+w5r`3CDck(I(gUzT;on^HSLRH z%ZaH=_lv-*_3Wu~o|Z(El9PP9yuCmb`}*55^;{u|xD^F(hW8gdN$Am(LuIE@aTP4^ zA?*UCg^Z@e?=)GFs)XNr9LRc|o?>ie_FCHnq;5`NdyE8Q)GCMc|9B5Nuwv^2gs24R z2f_2YcJeFV4BWT29Gee1tx^sZYkhb;Lrac=Yi(FTB2V2oF2fTCo?(|aSN|5x6bc-) zFz2!2pxm=|5|Rx$_1zz1kLzxJt|E=AWUZ1p?{<~+`g~Vjhy>>Xi+_3O*E`*}ZP!VU z+Utjq@yg$0rija$DxQdbJRb0!h}?EKjp*diUV0fY;jTJ$#uF8BO?O%J8|0($Xa*X^ z-tTa|2{K#Q_BrqH+lt}f#{CMCzB(3sl+`}ITQcS0S{DvSBibS8j1Fn-3-^<$z^KBuN zy&4z{=KT0u)vvQU`G8$}Ih~U{j?u#cyNt;q;tDk8bZOa8*8wg69b}!&5b2Dj!G+ zmK zGxQ+`sXdy|o4X4b%C5RGTI-Jo)Fu3LB=9{vx>hw2J8yIpAbXby?hJUmMr&W$nB7zD zyE0DWl`e+LkW3hu7Q*Im%z_?E3^R$S)X~x7=bC(<;D|fszNNpOjgUosPQj|4gu@;} zg(<{oVT5^JTNC5#RUOqCYq+?+x>D~WZ@S9PI>2p+PobwJB}Gb{1nZv4;W^0j|MBp# z{&PEv+ti~*7h~!dHRcf;e#?(iR|_`ILXL|~mk^JslZ@blfl51hvx!Z3*+`!@I~+5; zuRe{L{~%9=W{!_5U^#9!O`A3K(=&Lb*!Ap5)ByIahDBy*C^(&;@3rC2 z{go*IMvod5#;Vegogo7}d>+8lF)SrFUhJxJV3!Q3hj>s%|FMEG=GN;N`P-L*`QGRU zY=y(a%sLYm3Oj_N8?Wi%02qjHkS6>Wp{97t+spin?Zeqvo)&t_gGN?Xqpt}|G!0t_ zIVM`X=l8A>BFtJuF(Ca5s}{Ya5nOj6KO;`s<+SU`MS;jENsQF|Q?&P6(v|$#;|wvv z`F!TEB{q|frOCTE!a?=^A_jp`-u;T>nnot2(imxq4s;VClZy#RpZDP}?z$1VNUhco z?6j0~A$1p~R{lo;v%5!yj)1Bv{4?5gHNneaAuz9jhf4DP9t)eYnAD;Z-0py4N_EI~82Sd~-ecthu#Oi0yht?19 z%MijSYJPH8ad3zud8(e_cBEVmCDM>~&5(Ka#S2HY?$)(MxcJgZ1PO6>pYne>pGu-v z6|ql_0$uX%Tf>aQ@iOu4D@RK4SmCH~0eb$^+&O+OjMrX+ZY2 zYnyQ`wkSLW$z2(Y{dljpqVPP;PDS!gvcQL|+8qnx?hupmqdP5%M%4%#7*Nf3H1q{< z=rscpu<9R5(Nhe6<3XQW&kU8q_>eZe7WXk0RFsg`IX%|IWeqD>G9v#(7j4D*8`hzI z-5U7wUgLHz?8^8DJIxf(~^&2*hx?KE)-!El%Q;tK6 z_N^o&;4u>f=s|tUjTTJ_lRLJB`RA$jUIYfX#`jEtusw*L9<_Tv1gBsOt0a%JqXUrQ z_PCkh!!-b+z+v2#NQ*ThfXlnnK4Ik%^eH|C?VVTKHwNZFy+C*%5A4`zW~@>^J63{_ zJAKVk+E_6|s&cHHl|Q~)xJlY;D0g5F$6DC-BgCP`PcgtzAW11Y^R@TpW!`mEk8y_I zrVX3MMjGYQ!2qefKzZysD;ZEl*X`*h7rO5S`LYApH-Ljsp*yXQAmdoz3XO@2Lb8 z-J>bVxk|L)rFpm74pqSni?O|NG%yOpZBJZ6rmW%{DQjQ0yP|AKTlvhq&K4TVX1^+V zO!Nb9M~V_ejT_D|YYDg41SiYCXg)h(Wvl<3KL!8A$OtaJPkfi!Ij6c!bt`TJwFK4q zbe1e4$~$!|e;$9;*CXq^d`?=08) zA3a{PO?J(1Aaits^ZZ?YgbbZt_pha8BtA9lE{1%f!+iIc4~^oWsZY4C)xe0FHQWeZ zK*-!bvMk55Af0u2SPDxvBwpH(@d7b=N=0wnQjM=>F~0Gw8*A>kA#m+V>X;hrb^2P6 zh8Bx#M0zVcjm~TuaEl8Nbq*N%tReA35|5=wtruD?z0dMSJf|qvgL!0<1@vxcthdGt z3f_`FOZj*+uKJ>BtS}s-P4arWPscZarw#u@NFwcu)7(Ta0%Ab%a*U4>BRzrKcb_YZ zbW&tT?JQ5-E08c`H~(@EIp4BtJBFiIm8YxhPh#oZiCgNp|Cg-!3L}np0V4w>o>PE_ zuUvp%2Z+k%0^?;LB`mbOHI1dx-swRL#z>@nV*HJFapxhNNnYr(dqQrTp*6)MfR~Pm!(|rrH zo7!3#{!u^CcpvG*FgM7v$BAS9n9Ep+f`R6ZdC_Si_S|9B#HCAbQQqX)bQ8=hmJyX$ zOdGQ&RrAe2>?5~n3)VvnO#~J-`T5U>u4#F~iXROtTTnUmPpmyL4B8 z3|x(G*?e?GALGrTruYr&wu^7U)wPC={y+iyfHQ{j0MxM?DWMBJUb z4VMKZO*kQ%aEqlH$w0M^82-<>AZuH7xx3}({rm-0_mMbH7eFa8`n?_R6?xRi7dVIZ zFp9zk$E9kj8J#@>c)_!$ZuqL0_(MKv{{>Hk!0VCnRtJf#D^p)kvZ6H@3l1#5;FGS= ztBg1fDtA|O_e;8@d&e9gIbB0#seG&WY!df%zVtTXLR0~GI#Nk13!(tWp9K<{e98)))jh^O#o>*2(wl=R2b*@N(0 zMYp%*??=}axd!Rj#Ubis8HG3Ai_Ru#H(y*HrN5+a>MkRzFDeG|t;CpD-RrdJeoT&r zZrIe{)0~+BN|Z%yYwHzKFV6(ixqiq7wbpuPAV3nR#6Ni{r*+S`UJcP;m~R&CiX82x zE|l&^)R_K^P+Um3oiedyTdcEup*}uzsF2i{{?YyMCc(Q%6S1*CD6g-uN`e zwUV2M&z-3jB#(JYsy8$tv@!1WY2ThCPJH%%(R9{dQGI_G7bOG)q?`HB4H8PqASvBl zN=SF-kkX)ZIv^n3C4vk+lypdUgA6?k!^|_^AD+M9u66G{=e*C_d%w2u4;roqMk^%d z%KL0!Bg)lL3GjAP_W11_=6etzv}Bcr?I{w23Ov{SH$qiK#8){_25YbB75@wP$p3Cj z$5QcUI5(lpg1LQx=P$T#(NH>i7~$-E2i%>%6G2t8ruM0L(V;d%2>Ji%LqO;U$AqN6 z&(T9rPV&0k$2%zwmJtwwEuoMzJ)B5>XmiPy&qAi?k*&flo zcz`UjgW!HF&}OqZ+vA>5mFBTC2GuPm{-EBgZPNdlq?vU#1a;0Evrp5?sc9zX6j1%+5&^j9 z{*3$7Iug7K+z=@>?-8RJSvYDSj$iv$S1g09%~nATVk4q^2-*agy^*w#In>hR`_a>8 zQ8=%|3%4IDDqMXw4TNRVnX=5t%x4f5c=;_J-Y9P$&{X6%_a1&HOt2zVcpamDskC9k zbw+*n-R@!hv!Z~t^YF((kl>MFZ@H^QWYn^|Z}joBGMj%iNb6=}_2>7eG)A~8#M5rR zF(U7N^?A%{pf7R%W;KNesV+1m<@!5owtnRs{-TWGm}?2aCx(@kK(JW9uZFarc(NA- zf02ZJmr!o?7~C_8j>t3f(oc+$*s|b$zMjs`_Yrhl{p+KKQp8(3+9c$=Z*zvBdJpzf z*r}g&ro^taQb5H6Yh)5^_fg0$qe}PJnV#WjC= z)Su<(zjBX-GZ+fjJMNVEjZ7*yM!jymjJ`l&{SHP7{i$RxY4G9b@6Xd}h|d9{xogps zt-!wu(q5w2oR8s}J*xpFM7~$+Ro#_Nt@DO=;%LN4p7P!__*%m23$O&J*ols)38T0< zdQM)wo6Sz0dv0E%@qQom?L5xty=OdyFTl}F^M1~*l!7taK|Zpfknam1=#bg9z$tm^ zysn}6I3DRe!oJzeA*-TW8)T5IoE`g4_b>7Q=OUs&R}aF)xgkcx{ZJiG-aq0bn89f* zvJpkOHPyR}ISLc0+ZwFT(#8b-WVmLY$`kGFl!HS*#V*{#n;Sn{Czeb|4I|PB45Lv) z{f-93FVHhXR^*oFV{Q2myyo*Ay zY-NH3fs|)R^Od@DaUiot+h5uYkM0aI^^60-FP|-s;3diiX{`i~T@6tyAA`^fY(`Jj zfc(R{TJH;o1^4}zOq8uiyW1Ki%HGhV?78L>9Yc*wgcZJUST9@AP1m>- zmcU;4Oz-wGPt5(DlT~wYIF$>(SxZ8m1wNxuAxY$>nDc_Dc|dPWu^(fNXyk-h9i>3` z;r7&3&o@7hk7F?Gi>#`&4 z{N6L-N7#2N-c#hZLJDtSFS=j<{AQ8lk68^j!;YKWWKkGEv-{S-fG zaFDu=Yu8oq?;1Oqhieh;FNTypdSl?a9P0`zA;gIoJfEd&yac$*99F#Dllue}9Sy{x zY6bCa$f~bA2kWwY2)(FiS}?8tjeC1B-C-N{(Ao3SZ;rBIvx?*(9>$$oZ6Qc#u}eXX zppFF`k;vextYtj0+^!g>GnLh~g=#YP-`7qMN}V;O^ZjR=EbLaG@t2#hY>@;w0h^CL z0E4BEag6!3=lm=iDT(EyCBwB|a{*{z2|K8!L&L3=Y+IK5~R$L-;P z5t>TbW)5E?hs8G6pJwTdq~DE$pSIJWROv_lm z#WOrOC2|LM8Q?vv??!GpwRF(4^XHQ5!bc}60wh;Xbrt1&Zk|6a4e7zECVdkEgRj$O zp0QuxHPKm7A5)Pd%U_q%sif18fu22TTT+aI+ik=t+D*X($dp3KXx_Rm9)=1;SFy@f zyKWkWGG~T8hMn1bU>Q8Bvd5HCT^yn=ZGwGd0Ed2zHCq}{LmFPo{1dlYlu;p|S4SI} zdX^C+0e62iS!>O6-wJISwdrmLb5k6eQ5X1kXFeT9FSwekWr=$GUGlacMo~B`8n-o%0m6wLJZACI&~-j=Sjivt?6QFYVo~O8V~r z6BXq*#TF+Eu6^v(7A%}#BKcsXX(ilgnSXE8q~_=P>_1enq~_>F*RURK2>b5nB!=Sr zQy2~rKkr)jcu?q1?7crpq&~c8(H?c-&PwA#@L|xFW;@x**XYG{v#NF8|FZx_?7sza zn0}9M7hAWr>9t~WZd;Pff>o{T*LY8SjYqzbK%D{U3`kc zj)=TN=E>P_fd;qL#A^Q@WkS^If8KyMc0nj8w&Y_oU*DMVk zcgo;=UgmjPAcn)B#Z^T;Vr`z2+pf%~P`oTr)X*|7ID*IfpH7(MwYT!0BVw7|mnG^q zXf3E?`TI(rjmNv?AmP6B@4m-kAJb~mx$2=zZ!@UtOl_6hjK7EeD2aB-(fRCLi5d{W zy4OoX5mHSo3Sg2-g85MX;Y!ap4b-IeDK7TeE`IRI=dgxjE#zyQhl<6_F z0MUt{z1fZ<$rZDeY5YWZMM7W2m2Va((;HwlD5|ehb_cYi>F!qevI?*NiM+VGw+FvQ zNo|T~6*ukjKm~Oww$%Nq`H%9ylbjJ~44-doa~&%Em_v2xC8Wg(hKJPj!j!%5;MS>DEAl!(d8+&&C~CZ%Zv+INGYTI zdOTGVxJAHY>tg@HidzZmHw_p3#|St4YdHU&S!Aj&6IQjvn>?hP;Ggcjsf~drsbt7( zAj%*IRV95rN&4dnL>6>qxbz4Lgn=Kk6Vw_NqS~jEbD+}^hx?3?))uW*IeaXqE=)gV z35nTztECB357qIfS+HMU?AKfu1nN{aX~%3ey6D(RMt4R-9(mJksho}jY8unElgfB9w#5~$pb=%POWm9OrakzsL9X!U6=MvvufgfJ!5JFMJIF7F95qpmd?B7}l5vtt zMvhWf{WMwNnl9rf{^ASU(-)_%?8uh^aL!FJz+Arjwgh_YUJLiby1T#_4N%t1;1|m2 z#y42Q;yk*rT5%gw$@58MyK2TqY{s_kqs^YpOC6837i_5g=_sRrWvmn`kGV|vN+~F& zg=Q=ji3lszhhVW6?`hu^gOoD1VU*xa5sAG$xr-9kN|HbMz4g3`hU|{0v`v9!&skfG z5EY5&I4kU&L+}o8bcWZVuSnrNtYf0%>tQ0kN0(#&VTXpp0pp%Ws(1J2XZ(u!rmaq~ zjK9u`y!+el8Q$#G{&%%YtQ+Y$e})I>uD2)gGn9D}6h}|F1Bz*ZxOMwvz$1jG5cs9qDtA z$cHQ5z60`mvEje3tD_SZ9|n&EM+s%1pF@}m)j62vf7Bn+`SOtq!__^w@h){5(l7Ii zx}?)cnyvi)!T|kWqcw9(PWDc7oBI+4yLNpTZW?#~)zqZH^=$dTx;782^v9}>u>K^# z)26LgBcGFf2f|gXSVwSB)=oy8r&ahOP@RTdaar<)Xdu+S;(S8tJY(ciwK(keyq$~{ zG~G`WIO}n>_5PG{ChEdxr9_Kz17QgdJz+b{ht8qEDHK}VE-St(;@tDzksGF$ z4Jxy*`xI^_CvACtSHh{D_S#TH3UbT!fnINEfC_5|gUWAweLhpGLKo@&1n<*(t%t#+ov2|J0dvYjo(dz-+=-s;Ax~e0vo_gIa&Z+Ye2lC3o97Pmu~?qZx|`fs=YPynfP-NA|bE`sx{wjElgS z;oDSa`+dY6Ar=1%LC09hg&E3;WqCmZ17wt_g$O-#`{el$lKei^OE&Q~_3vQU0Qo!f zZ3v|;quOQ#R`31$k4Wm6MW5Qbu_sx8Yi3lvm7wHjUnZH$%}%sP3MYyc0KyK1f*T*D z+*c*KN7tVL>_lPZTIqxCSz*51%Ezil@#-ff&R`N?(*49x7VRqT09=zx35^Y;l#8s9 zrf7v1^U^lB?GKB=XiJt}RvO7CNMx6dSN-=&S7MXM5xyhRTaIpZt3|z|vOLNUlT_PN zTsBCc$`dNt=oGQN89M+fX5xcc*(e&Lc3+OBV_VIW@Xnd{q8{8j9}UNN6N;JUp1Z}m z8M8@>%S<%V^M-ZtnZZUBf-GB|rgg!(Y%f9-k^W|X4X*I_e?)7Dt*kl*OvGBTp>J4t z!R}1t=rR;|J$0&)YTstQdj9#!jEo7w&9F%NKagW*4N4U0TAZC z4i!HFkscWzW0vE#&64pG8~$7b-~=G&pL|{!(#>7Zhlm2vq0^9Rur+9AQOiAKBU1@v zXXr`@(-?S<$Aq~ydNtdktt^q*eA)?aY*~>e`D-p-oV*l7>xK>bF-tn%itKvx{pKO}u&=JDP)-Et_wefyDV8JYt$3Y(UADdj74o?PiJUs+X{B_HK0Kpk z0(lEgA)~4~42iu+uQNUUBXH)YJPXfJHVR%T%ScvC?RmknVHN4)s{*cz=7#r_-t(Gy(At|1xnM-$|`j=P; zYXf*Qp-KTc&-_|?m z7u{jITUu$8(Nb8Gm&hLs#*y~NN$0eFI2rtSB4v7M((v6R=IM=91q%y@h9BK*A@J0g z`U|{Q?>4~iD{+v9{AJPF?~zcE>w{HpEM>nr3gdjYUzL_t?HdJhmvJj2vlcrS5+YYU1 z&Q!V<;>kNcoKbB7MFN}!6P~^IT(nk?5 z+OKS&41HqlnAAOh9*(y=B_0Yw_Cb_^>0t(mx!>xKDbp1o<*=?%>X*bQ=Q5-tU$}=ndsuim;u-6Q?E-NNX6U!J5UxkyB{LPr=qnCGO%@SO7{OWU5N)$YXm zk-{BcMi-3@(Wb&(V&bfmg^ymhgzY>H{5pQ*erfgn6M_TWq+%H2 zhNBwxP|tHBaG0ZI@a+iTsGRFGtJK}7a!wOkLA=L_96JVSX7m~v#$tnG2zB^NcSkJm ze;?KN@k?DlP?5$wALgh_ zcEt`nt>{y&VwalcW|miBdfU;U@s9WOSWVKTo~pMHO3@T;nWL+%9h(>3drszj*xKe_ zaS_3h71H{I;|&wf(1uOR@6(~!0K|?|k>?J_MMZ?yS3Km`#^H^86gz4P(BcVN^ykUP z2P#i#7qKDo{b?-jhhb0=mZUNtuGgEjLakJlRi&cSLgc;cygsqaty^SS_Nw; z1HZN1OeSAiM71(g;f5!|nkA3LWMX@Ot-!tS>U~a5oQx$lp~N!d)HJirbm>VhKe#6u z2%VQt>!l^%_VfU8?u0h&bGP$rTBP9v;k-sdQLg`-%m;P627rg~9rj|nc1qIPFY7}q zFYgPX*o)K+#p~3g8Du|9_*+V)=%haSNthZpIiqrC z^_O9g?hjR&i+rDWG#r=M+q#=PL|(5@wFE7&?OYH7D!m_IY+tLpA2_?MZi}y>_nQv+ z9<@(i*6UwL6ca@0jz*%u%U~PPxp?|R*d!U@JSU?y>L{y|(mIf2qK&;H#d>I=CWj(?Mn>Fai4CFiZ=npA%BupH1fobCr;M*If;Z>epGS zwbMAz#zM><7eP@%P#|PN*)Ob_(%i& zOXvlY=--1TPvH^IZ0H`|CjJ_BWBGWu*4sVN%=Aq?phQgCjZ%Ud42RVHod zl@4XaZ6=y3zMh1op6w)XPt0P4R`1UlF`I@D+zr?*d0pc{`O3gk-Dcv4)aRA|zv+Q6mKb%!eoG46=X$c(g9g<2=zycuN1geq8=lB<= z?miiPC2Sm!4-omxs(E63!GpCObCWD7@>cvRw1*|ZhBZ~M`@wkEfPkm=(ZVd8YXD)- z|8z8h9rz0y z$(GOct%62c1D-vKx)hMa;JqA*3)ouO|K5UBTykCd&`ermzjI_mxBw?LxWn}Jv961F; zp^s}Ifi0FRlEC%9F~Y;N&2rJo$NR#=$@INcRd!fz32^dxY|V5UlD8Sn{d+7~ad1W$ z0|24lTrp)X(>tC+nFp)&1lkdIZ&5+PqDu}HoMn75=p<}+<~UUTo88%G=mKz%9Sn~s z$fWZ+bni)Uoi4K#{gNs6AQcr3N6lEg{PofKVREOq-nxxVL5@d3c2VF=4md;q zplMA>iu5ML8dI7(FI3{*Uu1+k;-sI#IX^IXLGo*FpC+C0%WEID(x{Bwvz7MOmN50m z)J&RoL`S!N`isru97Rc)Y3bmEGZI}*CEdr8ngMiOqa_DYEd?}wuAO$dZb&VS&oo7Y z{-R?Xs$->E&bF-(_SOywje6>Sua2}TK!tHHr;A@e(&^tW1Gm7-r7agAsGC%D+u3pu zD-puu?V^J6>iUE9BEkpAFItA34wKr}f=8de9_o@Q^V?)}g<&IW0sq$lO zNZSQLgQn46S|8t+(?An%CtnAF>BQm9^w3F6F-tEK{h}HyNWIY-RBrla4k-I0<`z zCloA-35Q@~rrp33c#oBS4dd;qAi-3Q22~146nbYAFgM7OAftBcJkc;PN{426Yy@&KRQIv>2ybC*|{6HR_ zy^bzc#|n!;nH)3>JQQA7y@7sIA85d4d@ej7Y^17x&59jn_T5yEZt1OQwgdCKb9=AI zh54uNahRQt9FRgkcc9D!bc0xPeKcDN7r9I(iXCGP?aA)`Kh1UDe))TJALlr3&dror z9;wT7C^07Y&J(t;aSwCWudZDC&M3OHF+B>9jse0q<-3`Pm8(xpHzCY@<*JFNU);PU zoYHKcHf&vq23^wt+rK(Gl7>tZAjv-#mOV$`ntsrJDwTk?K1kw$I#Gw_KaZCLKKbp&M47ue_d4wqKL9eQZ_Y!0 zFvPsL=6tRi^4{l15}$yd8>i_D&~hT5pG*y#V-dF#XwVMcPx7WvRQvOb-g!K@vf*?T zncifFw~j2fgzBoQj*!fP0c=|f!uhxj8*>M}Dq#tk{WK>D=;qxg!P<5W!T&1P>E|5y z^mWiUjnqFLe9(2y^hC4air?;>RoT=Ji~I)F-dzw5gmXQb zdyq=)4oPs2Xbv{tx3Zm&Cpxq;3fyMs0=14?4Hre)F}PrWl9!wV%W`8U|b)_j_$#&#i|xMr$zfC1s(Jb|S5 zpX-F)q6Wx!(Xvt}1Hog?o~WqQ01I{0Pjy79rERn_YT$x@1_%YIo{TuC*IeWN(7HUB z=S@dnyxkkhJJ{L4cqU$1985`s#dt%o!A%uI#;we+2Pe}54F{n=Mx*3S*(Z7r#B@v^ zGiHF~Aw&DZ_f|2SD9AxwaOvNigPkhQZysrUR6YY4eb@ejnc13xUXw@w?uWCh;I#$`|7tjVi&bw7!xu6x5cjyWkGe*r5W6&J{YrA zGQ9iUXNv*Qu01$lYx_k=9Bxmkpm#q(mZo``x^0SxIX8%gQt-*JbH;TcJas!GiL6qu z51M;~reL4u0A_V=UkHjhuwXf(jw0x7i-;44x@;B2_s^cJ`y-Tj`#Z zcQ+zg;BMAep;ez~(Zwz2-nSj9*+n$}?Y=tWX8j#cSZz!Lu6*Pk4WYr;;XpU80JSER z@iErrG8vp`0zGgN3h8A=6UO%%4%X}DJ#X|hLHCGP(T z4PF(}eZTeML1Ls3k8QU5@!yKa-n@}gZr1XK9ew_DeiD?FlTpFX?+QN;zbE>f`grr| zgadavX>Z$=y<%U4U0f*d5r6_xWFOcOmaCgeCh9TIq5o~L9Ouk!5CGWh28 z!zZ?|)VH_SjUjWcMT98wmUr+Uw!O-%GEL;?Kc+-k_U=@&vZ7PRBjNZUTY``5fBv}t zI>LR+jpazzt40fgSqb~C8t;sI+6hzq0qy0O<&(RCMn_73`K-n@AD0r@59x+SUQAFL znRA=)ZFrBSBY<9HK`C^vO(#a$y;^07kylV~8tiQtr1aup539SBg=xct!f*P5am=Mx z9p3rs_-H2a5S%E;jOKj`Mr10Y6WTyn-Eq$u39n;wb;XLkb6$_`pshwh3nzpe!t1K) zH`F1ZGFj>TO~ZywaViKWHpyp?pQb5c7G-Iof(RwTX6=-=_a8yrr*lC)+WMypOWC3@ zTNrqBO02ArFw*wFppQc@uRnwtjfOagljr0+Udy>#WCaHq5~mmO#p7^~WIX}%no6h* zPyE_4sB+Q}Nl~UBUd9qxp0um8#I|~(kn%1HZ-n>ZDWz83^F7Y9PY?let*XCm8dBL% zdNeB;gUUY$3(~CJ)dq~eihF^PA9y3=m{1}V=sJeXt+kaHLK%)}R^WodWqGbpbuXkgvS9Lxt(iU7cWnkmo1=|JOI!{g3XzH+!0F%y!eVEA7OeZ zb>1aUoI?%IN{WWKH*4Sf-*&2LCfSb(+u7U+krQOBF;X9Z4mV^M2hw&!?M=|eIc0+u!WaKdry#Cw2{raR*rV1cVD@;_mcMqJ#_YC7wsFV}F1}rUi0={VrWHZa z%cN~{g3*B}OCvRFd{|=u`77BE2V|&ze}Y$y|9ucUXi^hwP9@5_&`as!_8qyMJb+** zk$gzc(W5qs@#i?&c2|Hng60}c)%>lE9~vj&8@aSR=Ov`9R8i>Pb)F$caF6RhFlJ+k z>r{^n{rS;q+8)Z$Z6J?w{7hU#21*pCq0dv(i(B8V-2lBV}PMND)rL_X7BgocBc-Qjwwd636ho{(9&i3lTAja~|KqoMbP2UW_#n40Qz;rv3agDDIN|k9jX}9?W+gqol0FSLFM+Bv zV99J3H1eFHwGZ0U}z-zh@iW zkIO?iK~rd(se0Wbz=p17A9%&Q2(8XIt5>>!J+2`(wR)X^X@ygqrcRs%9WA3JB;weC zRL13%lf@q5sDYjScwO0xkk-0TH{QY5FddXZG`dI#BlV)4XX{$2<;VS%LP{lM@lp8~ zp?QEq2k!-xv9fNveG7hsL3|Xxz6m`Z$x#gYn@YGa57OT|}l` z)2OdI3n}>ilZpl-a;B?2DJc)z?)Izguh^rS+ zyViGZTZR>~(fzLR`TKs;Qmkzo6Ib)f=Bj3fyAt(B!Cx?I=k5!^NHJ$@oWJQY5O{|; z>UB$cOGkk-DTdxbVbYkipf})txm(#Sg>vBk^tVG5?p=FP9Lq$eIV)5cW4Oze7=6yQ zx0fgL!FT2>peS`NcR`+5LKNu=3GH9`b%v975%D=mr2SO$>jHBLivZdkJ zwEqgpB0VyW{!ZgOaU<263j2@O(OU8lXh1w-8RQtA`3_@HX``ksD3LiR@Xk>0@P1-r zf)vev1@D-u;oE+k{5lF9)?*0c6SxG358iTuxRJ`15S}1NnO{bA^=#7A_CsEEeQVki z8aU}sr6_nTAk<;+FO`LDZ3Z4#1dcs17=@-LR!C@&}4kCBz3 zD$k(ZpN@G>Vtvmzl=W?ifxb>Zubb3fjNQYvpPw8+kN*W%b(2 zJqk$KMQ#W!zS*SU99Z*Vd-+n`u-M*z?TLOG3jS7NcPeU+&b~)t#YbR4eKAzp}CQpmo*&ze-gAxT9h2hts1q99XLCJ1SvYzjh z++u!V#M;+F==Wj-1~&%Z<56ryryx;ca))yB#q~Lr#8^jU}`uj8U06a=u3v7aq|2bTTCBT|r>M z$J`gtV!U`@%BVyawz&?Pml$yBfG#UWTlp;&viMTK@2BdmfKpT%kE!ReOkq=oFX!?t zKFJYxbMNL9Aeq-@dIXoyTuskq8mu3nZ?Fwt?BkaR#?d~OALsNwS#$EKr21`tgv+>G zt@P)(DPWqWfKs~vg=odTH#0?#ZGm^jLhg+`k=&fUP%Ucjl1Efqy?gtZ>4FWtaB^wk zPaO^BUMm$S+jGpuZnywq1<9kS`14MP62n~Ok{^U)fvPvvKAn1O%G_{Xt?$5l^2b0w z_G^P@AQ@xh%CuFMRu9rE`#*o!SdRcZ;n`2atz-HVel0zh{%q$p1H3#uN1cZ-WW-@f zL>IhUH|OOX9|j~msCXOilF_rwR~b!HLi4ICWJi^cz=VOY#C1+DE?->m1rtJ~{I<5h z1gk`}&H7%wgKGu92k=9JTa3q3F|ZGqX+?+j7NN@$&6u??Y^Igk-^|YmidE#l2BGe$ zk-yncymX*q;{gC(Yi0d6KSX7d^x~@Yvti_>?H~UXiDQR9{{KdL(PMR>3nB-;x(WRa z3HWBzUUh~0-#hn*XlF%xx7IPqz=Z^8Cl`Mr3>d!ll$eLNs(dvN%Lr;(FD z^;E&^B+q(A;){_ZSxB9~!sZhYBW{Ws4n={1t}9t-6JY;^-562?mYd=Ed1War-bFiGq_CJz+*UBjzfu!=Y7`K3d3 zLq+U&gBi99!X zM8oO6ZAtj!3d?7_iHnrk2Dg3~|9-0hPhXux{0%yBRp$=ljhW?WAhI*Km;_l;y0)MEWh`h<9oM);@UE z@jYe2*BULy`;krFT5^5@QN)~4*CTbDeA}QpoIOJvzOLi>YCwbB_w6Z&-B?y}gj;29 zjkEr{{!uEXqTmjsU~ERM>C(l;^NaJ=OAAj7h~zWJ_GF_CbeQy`tHg&IyVy#YP(J;X zHRO@xxxI4{K)|xke(;y+tI6pJAywu8$G7}mi_`xoub+fjN#MNQ9%k*Q27`*b9#+f? zuQsiY-*DrGglKyV0*;D>7MVrx?Ug&t#4_t;hUNzW{ndo~juCa2i$`Djt+c(O@mzcI zUiLwv0uUFROwHi$g?mW9&fW#o!U<7vl*L|tU>IvZfu0|`%FxTYn}QZ1RW-y;>(=|)UV$t zeC#tl^RZ($*pp|5f{;a+5VL6bSk!|BEOThlGPrQVf10fdlgik6FiuMQbaZ3DfM!9d z!TqzoXJ6eKZ{Nt&`EUN3|D-$hp;lBynadbnzVq@P3BAe0;5|Wg==1T5LTUKsjLAgW zN~_}u{YcQAjDV>7x-L{~;Y!@@m4+h&SSwtIZ=gpzmz#j7VcH z``?T;#%H&9)SxM@)^vj;oDgvZOuKSA9|ufY4Pz;j#%0X7*=7W z8|fqKAFs>Fak50u-guN<3;Gvq&jz-~W+k=MqB1+B6=GsG0TgOgx?d?L5#H7riQ^0% zTQnl)$U`%)N~AFxv+q8IS!c4CTy6D}5GR3DKP_`l9Bt)(Phwx$kgmC|eDv1`oi3gW zSaC|*!ZxRB0=*yd`$npvt?}eoFY&R^w3fSSPqNt2iHG%OENps3IM4}P5;_(c(X2Up$d~_|G10=uM7Urtbxaa382;jw=SOy|jK4}R#EGG^ zM&_O!w2ou7zYae&)!G$Gim!TI@kivpS#W9lk-GfdVgHtu>u<*uN4Ej*h!q@sDRQjq zQQFS(WG8^B2t(IuL)p%b*88k}gQ;mgi+v9~%S#>56epS!SG1+qIsY2h%I8Ay zqsH{?sqB5Eo&qRLvdIUYU@-$HY*4^?HUZt(jMH{C=>7XPag#GdWg+)I#g@)%AHJS< zF6v$^)DgcsZI}R=%i-`9BII z&fa?}_pDn(je@U@J_^ZdyfymTC07nkU3T0N%PA`HOY zK-OF{NOiv>&gXPaNi;Y`9K|)v?9Bp`frh)fakO2}(cPi1f#Tc4u=|S1e$<0wcS%W$ z_+*UR)&8IK!Tr&W`xLKuAaCsdKwvF0oL%e(ZQ^(bBou9HZO(_wzVyj>p-GVM3M*Wo zoM2|oj^)rVNGN9AnM+IajDP)}Xk$SR$&>Xm5WED@Cwq&3{p1#dZld1R?p92sl9Uk@ z7zayf;YYa@Nt$;D9X}a#t*H6bU)Zwci4MKH&u!Z?CZSZntd~Y$;O^hw6i#-X9dlQU zzC{#4Ueh^F@`j#X-dG!{d{`>jwrx0%g2;>a1X9`;dcbb)LEZocxYYYhK>5Xb(3Qpm*f?-6(`6`Z zHd!o_0Af^cxrNaV5If&=Q?oPRl=1S!WjdTSEzpepyX`eqU>l&6YbjxTCW=V3Z@0~hF9}# zT7}LVNS6Pu^v?ldK)k6N9{g9CM&`x6Ep;D-hs#kIchOA*z1y6eX;*1)9)0-FPl4=L zGg#Xq7rIPHN}n5^SGRv{#00S+_n-0}r952RAI>_LPr^hjj9d`a-4+HYA|6OBN9$?O z$9J;#ymd`YlvEgX!o~$HjZE&6xx7z(+Ua<(+t5!!tzk%gM0LoKBG@{{E>YS7Q}psP z>PT45{#m1*xyu@xL0G@n4mw-rjdrg4#W8i4cgQtLac@CW(jDuSXjXM71^-;}{E-}a zxl0n7_vH|9^WC z=wOvMucjmYO?J1RkOY42S9D9j@US*}vR!>2IRgBSTe?#|iN3*f$F1}Mf&vrWe2%9} zV%=A0#r#}0E9i|@zbka^`DNA?!spP#vlfJiepKD`m`^_m!sMo1*Z6 zK&Aw+<81d$>xwvsG%9)>GZ6zGd@{J%FWR4sTqK3dCnceh01{xsE!sjR+2^bp$=WFOr|u+onP{l;Kemwr;A7n5xShhi5f6Ir z2Ev+xJ@m1S>0t|xF*DtOX+f}Djke8Vu@1u~WX}a_fsQ*03&?=n==T_3bDV>ZtPI+#tzQ$pfgHd*Z+@O zxyfim_$z(2E;=>97Ks~L5>T|My8`wzeBBh3URCi}$oVjQj&5PD9G40LFK>8G$)Xwb zZ{_Z5J}@{=6-Bt+nF0&8h2UX-C?#{iS6j;8bh+JP75Jb0OprivvMlJHj~0QBy*JY% z?>AiENe$jB%OG=DI{uNiPx4K84K2j(wNK=S6N-!<)M9-)KSlq*otGu_x*= z8*7);9- z2ji!#8s_y7-juuQVO0{;0aeuiXpZP$NBpnb^!J#@7QT42RoWiL>EYZ{Zg+upavIb0 zT36r35+pKbK{E?JXFmY7I?o$|fAgGnuP`kq%^+p7IBk@YbsF;k!~QFnQHEL3ah3(8 zN84&^;k4|$)xau;w6UP9IGbKVeFgYT&mde^*C#Hl5{(&pN-RVGno(dzKJGw z5EFdg57zDp)s{!BF7we+839V;D*hx<|GKx9v)W2R}m{eR*#su&J z)`IIB+g#0A6Kt+N<>c7Ml#v4ZtJzoZ6XS_9#G!6_tHm~)zYuaS{(09rte|dc#r58 zu&w)g2x{~hf458)Ct9Q!VcIpqHe;mqtMG^hS-FuhgZ5aEQt9-`5w*FYxUWT`#0<#w z_*CgeoPMazJMnb7pup9Iq==j`D}%>9`&$r4G6UFVdr08p0=M-!7hc#Y*lvf!H7S)N zjEMftWhom3tsL}xknKa5;{8?dCc09u+$?^fw9z(-Bgn25Eq$>d6MSA$dmevZc&1&Q|3m`#;~huOLA;MufgjiwkD0|LR52(WrDz zjSB{PpxGztZv+6?31`_L0Bf4SAV~ zt3R^Py-H`IcL^F3SPlt44ZKz+MTXY^{bq6JXv@JSRYdgl+A>zuvM*=O(jUTb~0*Ydj|j&~~h zjxu%~6lGvPIJ5x~PrpEYTqiQp=?3FoBE^fhmeutl-(Wl0G1>T||lX46lfEA({liwC3brl^1VbQ*d;9w|#PV>@#c@5nqP3hc6EMqlkbNRq!(T{49SBE~|| zU>t-|rO^oDp%uv~6&Fs4Jrpo%zMrk~6Q09DI33_$LJo~8hwgZY|F%#8{Wfd};>h^0 z=re0xYcJ+5A>?0l{ARJYrPf=PqdRFi{!D;R=C4f2Sl*oRma68!dHis31=1Zcrh)FQ zsGKt}uLw#H1F(qy)>hU)@ULdCGq7f!Y7|1oB1{F-9tpKnU8jF7rr`A2jDt)|egDsf z%h;MA;xZLd$o&}8#C2(Rxdq^ZjPo)XKEDR-F9D~yiVkaq+F|=d_c3#{XxbyPcIy*F zx(bjdj25%#(zCixUj+cvrEr5`z)bZ1_icl(&bE7K5uK+bk>U3YZBUhmZ(5SP7)D7I zxR66NVnZ*|l+mc^Yn6AUw<ODR+b&K-fkZP z;m{p;k0k@9hpt2}W*6~AVH3X%TJ-BAHWgnf4bAg8VSFnW)&qk;1ko&rn+a_5;?A1w z%A}@rq9VUGx_@uq+hf8~iER(y+tv}~Qffny+@%iz7T{0*FHg{qZhwg&fWK%Hmn(n2 zW0z@iXK>0#$GlY)w+8;{sdWZZA14p55M;)>DiYJv4q*%YEjk)KZ~z_T`eBrK3vte8 zu6U1{)@+Ki#m}>cf=#C4;%=QDPlkNxSEj6EttZJZxgn>B8~Srs{jtJ7%ou{4Gq2Si-of0ybLn<9V% zE_(MWklQ72kajhveJw6mi0dfZHyT=BII|! zt;GSQsU4H2VFmVE#vv%zzdyph%O=7{LjLVQFHXP<);>X0XBQ9XJ+j`p1rEQ!y_X=l zdP8yH(*x<2JqwlWgLe7{_UC{S3I9Y{#@m1cML?mZjwYgVW2G+&ekVH z4-gzfJ}v_{QUFgAxB!*T3P=r88Z6XUdSOB3%`0HMU{whfKyLMnH8Y&JzPjUMX0^w& z@-YXLM-Fn6$grz)_;~`!eL^VlIijm-oxs57g`8>YKydfJGl3p~Nzlu6=nhExQ$C_; zr6a2}$4fb_@!%cC6njZUhWzOd@oFOP4vPy_#_{Rj)wmy>s8* z{3AM^`KlL<7dsCafA{7S_SWYRz%PZD*JFs@$AD2Xz;F*35<_&@f%|dq}qf%w#Uoi7*%H| z>i$a6m-l=qpC=aK`*?^q)pW>PH$l}|KC=HNlJwB8`^U(IRnX*~%6aLkWt`!wls3eA z)xpc<@Ux`8OY&3_^=$p^O$&U1cQm70)V+#a6?A_xs#v3HeGlH@pD9JhP~3{Jk9xnt zzN19cP6E6F_!k`NYiuLdf6Rn+*IC<{zyw>+1{&}=e4t*orkgeVJ`H-(QJfq zjE;|UTFUmr4s;yjh{Sg{&NCJsb4GW`bKp>INyS zY->UF61PzB+1G~BpnN9UCoKxS&y}E;d_Sa2;uy-eh95)Y}?}_{w-5FJOE*r5+}c`s#;V1M4W?CoQWVW5uc{`-O}n$+0q3c6d~I&TwXt z*qo>uwxb~a8NsE%ne{)$aI{GR=-W_9B1B@S;tjSVI4lIo7Xun|KvqA6jd-T{$=e_W z#xXaBxjR60i&z|$>6i|`!^IZir`lZpDF~P?-|E;Pxndv^%R`9A;dsWJ2a8YDNvjNG zI8v-anDX9C!+Bl^@KnNWK5SCDUy4{;b(+O_tUPHYmaw7@3erh5##)&k_EE1>Ri}L5 z%TNsasZl6K38z$FmrffHz&$Jk{m?k?Qq3ak2b6CCX|@DnMgaInQys42o1T_|FO@P>nOQmV5Uy$-bnU>D12W7 zmZ?a-TDUIXyD$19%|-TE*^k94rfkITB6SfKgPlND4t{r})V*oOQf3METRr^VGEGfG z83F~;*9Z8&|Ldv?$el@;u0s?6o?%A3f&Y!Q9{YtE6_@}X--rC3tD6C)*oEnHR0{iM z_0TXAgkRylAww;^Azmia`&ozPt^(P717felaoFg#-0Hdu_DQ-_g`{2yFdIdLgsIur z2syZJENYkPmRCqL@v_E5Q%D+5xiMTUy5SQe>nE~#^)DwtqnnIC4sQ^AaH>bYJ7W~K z1T|%-{UIE@_jyatYUlwJ`^e<~)`u}EcnP3`yMPyR)?QKCp61Nn!v~;3 z53~2ru3ktrhvKuXrfd~SBIiNgRc*%4VhKjcyQ@>D^m4J2dR~&xl96kvmR3a-29h!b z2CCzyWfs=m(QpFk@uJQ^^wk?1ajd+1-9OjGxg`Y1dGztQo|9dhdTzYcr1p)pl(ElC` zIJ6r*@2T7H)E@7S*ppESob_+IOXX zmQwtHQ7TGevP>R$1Z0x@HQN_76BuK7$H99E(Y!TJ0C7^Xfi5BcEjO5#jBgx-4;P3{ zrI90m>+Gh+5MU<2230VZRhANdWnzQMtUlksjrs;Ux}zOs*{Qqm%e@>qy*3Fx@^4;ev<$cOGFD77dlX3H04v za#YAR{?v!hGaF5$ob7OYSPOcIhOhzgjDS6rkf$q^gzMW3^y=kgg_ko4#W$r(fNuj> zMx9pHLZ1GYzLg>5=Z-Np+5cwSN}j$0wnq&5FgtLXVC1>V#u_(=Gx{gO;Pi)#@Y)lJ z#E0tp_wmdC{-t#{%4JmCpuZ6+N86nx@uF$mt`C?-{E|Ts@624fK!`-03~yw(V!>e6 zTY}ZJ5@e>3y?fgg#mH$UC}O_)jp`_$Ibzu8yGc;W53t-#=dM#$Ym?KA)U1_FI4Bi~ zayTU0xVFgPyq)Yw-6bqpXT&q00yEP`55gqjyJ4+s{wp3e;;=xTs--HkpA!~npC)wv zD}eA~PqI2S*QTqu-I8xA;}*K@QW~}=(xQbttejNu%-)_$DTn!vXCqR5JG`>3>4A|$ zVT@PXB4hmmJ6$rf12-tjYc;Hv9lfy!gK*sb>f9mbc&i*wLvL(mZH%NP zE%alKO%%Io=HXQ4E-0ct?bVJ*u9?yZxPT0-?dy_c}h`CU$UPiWv|}0{%C{u zn4S-I@4LbKceMgMeGMIAj6hc-!26Z8(NJw-_^ujHMP2XRQRK;Hqdhjzx)06^x-)A# ztf<7a=N9lSe|_dK9OoLuGt+ATFrj#kzK7*yeOs8MRVkMSH&eHgRA3STP;bK+GXXU3 zC8M~5X4@Oow~-)m%7J+iBp=vp-4ZofhOg_ZMH% z1?oa|%TA)P@6vn0K5I(?GPkoc8|Om|#MvJk)J)w5QiZ4mUUt*%fnkAgEeW8Lz%Ys` z4ulQ^jUyYGk)Y52+FW;1O~QAb#R#O;<#>;7Z!XIX`j_@D^~^nFG=*7PMLqnXX`N5M zT+q)&#>w5O%5qtSVn|-7s?PmxgVs8X-ut!H)Cxw_DcpIv3GQ>M6n~O#9jx?Iud8D( zZ)XC+-*tI$cDt7szU*}v=3Lu7m>$5dhK6PebNuj}9>H+te17Kod6G^@W8ef=eRsH< z?Mkz{{>YLe(A_#VCDK5P3iXKrtY9JC^UK82!|Of!+VOmKcJ^1|cs~{) zd6>cICr2P&%{u&w= z1t_Awu_b*|`JAo5mHg=TwySf)8r*+noZI9Kll#}~7(ZG1iI$~%l$$4VkcbxBdt#-< z`N$tleFoVWr0v5D8O8NtP<-7@_dQt=Fgm>^>NLx#nWXgU*Y)w+a!}B{01x`t#+&m@ zDWCi1`mzY;;mnBsQ|KKJTZ{m9Hc5ZgU0R(y@hDzzaG z`&91!pTS3@ORc27{kG2xdx7?G2PFFz#$8#p={J_bm8@{@?L6SdmJJqy`CT=eD8_&6 z-inwTO4`j!=Fq|C_~BY;KaPPGu~8cwi{}7qOdSx1j#I9VQ_C1ktqQsw*4qilTn|XtF@j@Xqc-6r=R#K&m20x-~VG_hGle z$3~Gv&X;H~7f%Qpg|R!X73vy{Qkcj8e6B$QL_DQ`9zhf^^r`j68lVwdd><+S!NuLd z#gyi2sZat*gWx7Kcq>*MTkPoiukB48=1ytS?d#F+_8>O>I5yE@HkdiZ{i?LHxGrP- zCPOsXj=Z(i;8`^!L+bvVXA*|}=zD{a?`IU=6YTk)l8A$)E29wWhiFE7)P30oxK&u4 zw4LV_?8Wa%FrsxcK_k`kjpGXnPS?lmKPjqynl+VoJ@`&a9wLe#XDFD*3|ANsF#Rd~ zYP6q`u7sm3JbgWts*>?M*5LJl0^J3E=*atnkoEfT5Mg+tCaG_!9n;x(_CL;N=f<1J z?saIcERQA~Xw6F&gAnMGI;uLRF@QT6RfJFZD&A(!$ixVlhXrsYmxjHh=_w78 zUad}nq30@$h=^s8su{OiH#VuMCZd)IL}LrcA}bzn834|fd^2IswIvTy>bxVp8W;&Kua8Oh+!Bx2h2LX94s zJ_xDh(0Xb+6o)rcs`Y*NNO%KQG?Z&oS>5uK$2_<(B|?788f{c*#V2#|ZP#hsyeUD0 zXb4GKGAgklY^2g?`*RUVNiB>qIuu04d{xZ+!E@>&0_0f4oDAH8lAkWUvlcN4lDXt9 zI>$)MWP6&IpH%Ss&s>z(Do>enRdrrOUs`m1ryuGvi#MfQ^f9>>Yti|)hq9jtd&DLX znfrYU*e2D9KFIyGkaj2 z0}b%4KxB~VIC9aTD!EcEz}W7M_ff6WoIWG+y&0@_9&ujlir}r~6hbxW>>{zAxxL*C# zC!+B2?5dmo@_y|7y);|S~La-6F4M^S{Q?{pPT`F~?h$mm*= zcs&00D--SeqRSGU)B$h}ZR)nbIV3mzF-C{30>&%*)_NCjlkwF42C#kv&fO*r%Dk?6 zg0g%O=8m!#f`p2@4+kqB@?TKG}w z@}mmwk`N&6VcUBCbCZui)tph=OG{?J&yCF{M4+K05s3O+zhdt>6<-prqeQ(|VQATL zK9r0fhr);ApXXIPsS$AuzR%XRp9D_@o^wwS$KW@CvSm{%DvGpY&sW-AYW^a$R7u4JzaEVFzY$J5*_$(@q{scJGqH zQvwGk!St91WlA=non(xGO%8pav?pXkG!A{>uXfnBYtRkwI*UquJ{!n3APZpaj6T$r zLZ5U(0SIhD5a}&dNNMAE*62UE8wJb;{b28q)y<@Cdw1#M9kksW z34K-8c?-D@G9u47gN6bcyVfPKfP>umi%E&SZEg<#^hcl#jH-?&8Z3vZRF7(?;JxXZ zAD?F|x2Q;t2fqPJfUdrilbAYLyu91uoQ2=$BVe->=&0HAhutKfEMx>p7yl|g?Y8eM z?DCFlZ)hOPTtMF<6t7BBAs8SVkiKD(w(?wI)(@e{*7}u>IMd4NaT75{;k3ok&g59 zNq-~}vF%_CUiF)%6uh;FWy$3iRlh#trmD_GuiqTbjs0Q|f=UZ?qIPM8i0H_=5ekm% z_D&tzkzW0HUGX!1Z4QIjQuLmauf$+%kB~Po;K9Z(PR}K$O4o6{p|(o{9Z9oa`qtsX zP#IxQLu!X>Lf}OxZlsA-uo-)=OJt_7N>_wUWMswkA8U`fRCk<3cBBFN^>eiB z4GcP3L;Jby#c#E5KgmZZFc^ir%dJgNFrNxk}QhpG0A{SeH+wc0Dq(W!zP~AjQ z1~r?!Y!)!g?#+ZO4%B;lsM5CeM_MHDx7tacYXh%acNW4+LSy$2y;O~P6$(Ump1AD# zmP#%#!@GPif`ac&7?Jp2!GHPmT~7;jg71lGME(<$LHatRD1Sk_@55JiWG*qoPAu#Y zSj$2es~FD^5Du)|1HV}Wy>5{{7|L!qUf-|QKStgso#jWG_d4n16PTEWPyUt|flh(j z)?gpg1uWnc{EYwC_U2^1O~32h+yXa6?KnYSSLxg{^Nq<&*X@pt2-+|(U2qt?jT=eQ zJ~7Y_zJY7d0);W->Q%HNE-^mPal1R|wi;&xgB-Is*0c^? zCwLsNHx1CHVslR>4G&l$h0}Q>)j>e&kk7d5nsWU|52o{ zwlv0{>QigmZ+Luoec(|81rK%0SOwj_z6l-nupfi@NkLI5Na9XmO)s+e`~>HP7R$vp zIQvFE7O^|1kUAeQ(79@5TWVSP$Vcs3d?=qitzTadM{m@C0$}3vpMUPY zWxrXl^j;IaOx8rm57Fo{LoTN^1_9HNq7O5rk#c(u7pkS_TeAW>&z}ZpFzDTVoI)&t z0qIWkAniui&02GRcdXb6UCWZwSlyM_3a1jjdNt4$C#@}XLfb4$@yI32gjHM)_y^Z5 z(>|Vj<=%bc*5#$$VHSs$C6*8z|8ZrDWEDdkvRUZ({`1g1Jo8%BIn>*t1hM1@(qh-)OP{3IE|Ay;JGBjfinHO zpm*TWNbuGb-78px7@l!n(Hk@j`n6L8GX5-w(u)o?)=Z)_e8mr(n>m zt>olIlVIoF!O+4E(m26@3aXCvSLSHXR5-okbXl2u}Oec90vAy<|o;ak|xqqQS zUZ(p7FDqW8geu(+6PF&5CCb+N8KOu_s{cNt2K^iYB~+n96GIvQ7|^!Ny|mqi>39S` zKSuMl-<8^>-(`)isd}zC998!jo4X`$L1uw?Qbui~9GN`byolQF6zmhcES=dZD+8ge zUO_W<#PE2T$e`;bHuAJ>D^Axux>S74-+IpzWQ_$ob7yB1=Emif&!<9K))&x9^HWEnsLzCz59R&w;?(A}5LBTL_

5Os)GsZ22wA)xoM_Y?kN;9NaTT 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 z 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 literal 0 HcmV?d00001 diff --git a/media/ToolsManager/ESP-IDF_Configuration_Download_or_Use_ESP-IDF.png b/media/ToolsManager/ESP-IDF_Configuration_Download_or_Use_ESP-IDF.png deleted file mode 100644 index 888dca0fc7958fa968a4d8e280579d75818d2956..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148369 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®7W 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%0DM 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 z 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 diff --git a/media/ToolsManager/ESP-IDF_Manager_Changed_Installation_Message.png b/media/ToolsManager/ESP-IDF_Manager_Changed_Installation_Message.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d931047acbed3a56278005849595865e25c2e9 GIT binary patch literal 136563 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