From 0341f83ad1fdb868ee987bd8af0b1e621f7684a2 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Tue, 29 Mar 2022 20:09:02 +0200 Subject: [PATCH 01/11] CMakePM: Fix disappearing of the CMake settings page The ProjectExplorer::Task::Error will result in having m_kitErrorsForProject in targetsettingspanel.cpp which in TargetItem::updateSubItems() recreates the build settings page. By reporting the CMake project loading as Task::Warning the above case is avoided the project build settings page is not disappearing anymore. Change-Id: Ib2523e6ea86fe5ad6e4bbee4e101b47cb350a68d Reviewed-by: Reviewed-by: Christian Kandeler --- src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index c4d2127573b..99cb43eab40 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -514,7 +514,7 @@ void CMakeBuildSystem::combineScanAndParse(bool restoredFromBackup) if (restoredFromBackup) project()->addIssue( - CMakeProject::IssueType::Error, + CMakeProject::IssueType::Warning, tr("CMake configuration failed" "

The backup of the previous configuration has been restored.

" "

Have a look at the Issues pane or in the \"Projects > Build\" settings " @@ -532,7 +532,7 @@ void CMakeBuildSystem::combineScanAndParse(bool restoredFromBackup) updateFallbackProjectData(); project()->addIssue( - CMakeProject::IssueType::Error, + CMakeProject::IssueType::Warning, tr("Failed to load project" "

Have a look at the Issues pane or in the \"Projects > Build\" settings " "for more information about the failure. Date: Thu, 31 Mar 2022 17:43:25 +0200 Subject: [PATCH 02/11] CMakePM: Fix CMAKE_SYSROOT parameter value Was missing a = sign after PATH. Amends abbd6cdc8c0c31e647ff118ac6411a67e058dabf Task-number: QTCREATORBUG-27237 Task-number: QTCREATORBUG-27280 Change-Id: I06f9dc95ed261037febea573a7e8d305210507fa Reviewed-by: Reviewed-by: Eike Ziller --- src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 7ac8a98707d..05399d00ad4 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -1100,7 +1100,7 @@ static CommandLine defaultInitialCMakeCommand(const Kit *k, const QString buildT if (!isIos(k)) { // iOS handles this differently const QString sysRoot = SysRootKitAspect::sysRoot(k).path(); if (!sysRoot.isEmpty()) { - cmd.addArg("-DCMAKE_SYSROOT:PATH" + sysRoot); + cmd.addArg("-DCMAKE_SYSROOT:PATH=" + sysRoot); if (ToolChain *tc = ToolChainKitAspect::cxxToolChain(k)) { const QString targetTriple = tc->originalTargetTriple(); cmd.addArg("-DCMAKE_C_COMPILER_TARGET:STRING=" + targetTriple); From 1e9e09d7656b89b7fd2dda24769fc3e240e42053 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Thu, 31 Mar 2022 17:30:02 +0200 Subject: [PATCH 03/11] CMakePM: Filter out (more) empty key configuration items The code was not filtering empty configuration items that were the result of bad string input like: -DMY_KEY:PATH/some/path/but/no/equal/sign Amends a2a8f56b6e7429ddf7f26052dd92276938cd3d21 Task-number: QTCREATORBUG-27237 Change-Id: Ic307eceb66dc0e00b073c9aabb04fe70a223cf08 Reviewed-by: Eike Ziller --- src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp index ad9c2277928..002ece93261 100644 --- a/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeconfigitem.cpp @@ -349,7 +349,8 @@ CMakeConfig CMakeConfig::fromArguments(const QStringList &list, QStringList &unk unknownOptions.append(i); } - return result; + + return Utils::filtered(result, [](const CMakeConfigItem &item) { return !item.key.isEmpty(); }); } CMakeConfig CMakeConfig::fromFile(const Utils::FilePath &cacheFile, QString *errorMessage) From a7fb61ee9df4037ed23faca38d0eaee671bdbf3c Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 31 Mar 2022 09:37:28 +0200 Subject: [PATCH 04/11] COIN: Add Qt 5 based build Since we still support Qt 5 based builds, it is good to have it in the precheck. Change-Id: Iba58c9ac0c49fa87bf020e7dceef25f87c9aa454 Reviewed-by: Reviewed-by: Antti Kokko --- coin/instructions/common_environment.yaml | 82 ++++++++++++++++++++++- coin/instructions/provision.yaml | 6 +- 2 files changed, 82 insertions(+), 6 deletions(-) diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml index 3279aa6d93c..d179b44b4a3 100644 --- a/coin/instructions/common_environment.yaml +++ b/coin/instructions/common_environment.yaml @@ -5,18 +5,94 @@ instructions: - type: EnvironmentVariable variableName: QTC_BUILD_TYPE variableValue: "RelWithDebInfo" + - type: EnvironmentVariable + variableName: LLVM_BASE_URL + variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_140-based + + - type: Group + instructions: - type: EnvironmentVariable variableName: QTC_QT_BASE_URL variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.2/6.2.4-final-released/Qt6.2.4" - type: EnvironmentVariable variableName: QTC_QT_MODULES variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations" - - type: EnvironmentVariable - variableName: LLVM_BASE_URL - variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_140-based - type: EnvironmentVariable variableName: MACOSX_DEPLOYMENT_TARGET variableValue: 10.14 + - type: Group + instructions: + - type: EnvironmentVariable + variableName: QTC_QT_POSTFIX + variableValue: "-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z" + enable_if: + condition: property + property: target.os + equals_value: Windows + - type: Group + instructions: + - type: EnvironmentVariable + variableName: QTC_QT_POSTFIX + variableValue: "-Linux-RHEL_8_4-GCC-Linux-RHEL_8_4-X86_64.7z" + enable_if: + condition: property + property: target.os + equals_value: Linux + - type: Group + instructions: + - type: EnvironmentVariable + variableName: QTC_QT_POSTFIX + variableValue: "-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64.7z" + enable_if: + condition: property + property: target.os + equals_value: MacOS + enable_if: + condition: property + property: features + not_contains_value: "Qt5" + - type: Group + instructions: + - type: EnvironmentVariable + variableName: QTC_QT_BASE_URL + variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/5.15/5.15.2-final-released/latest" + - type: EnvironmentVariable + variableName: QTC_QT_MODULES + variableValue: "qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtsvg qttools qttranslations" + - type: EnvironmentVariable + variableName: MACOSX_DEPLOYMENT_TARGET + variableValue: 10.13 + - type: Group + instructions: + - type: EnvironmentVariable + variableName: QTC_QT_POSTFIX + variableValue: "-Windows-Windows_10-MSVC2019-Windows-Windows_10-X86_64.7z" + enable_if: + condition: property + property: target.os + equals_value: Windows + - type: Group + instructions: + - type: EnvironmentVariable + variableName: QTC_QT_POSTFIX + variableValue: "-Linux-RHEL_7_6-GCC-Linux-RHEL_7_6-X86_64.7z" + enable_if: + condition: property + property: target.os + equals_value: Linux + - type: Group + instructions: + - type: EnvironmentVariable + variableName: QTC_QT_POSTFIX + variableValue: "-MacOS-MacOS_10_13-Clang-MacOS-MacOS_10_13-X86_64.7z" + enable_if: + condition: property + property: target.os + equals_value: MacOS + enable_if: + condition: property + property: features + contains_value: "Qt5" - type: PrependToEnvironmentVariable variableName: PATH diff --git a/coin/instructions/provision.yaml b/coin/instructions/provision.yaml index 86c7ca32f63..9de3cf487e1 100644 --- a/coin/instructions/provision.yaml +++ b/coin/instructions/provision.yaml @@ -32,7 +32,7 @@ instructions: property: host.os in_values: [MacOS, Linux, Windows] - type: ExecuteCommand - command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix=-Linux-RHEL_8_4-GCC-Linux-RHEL_8_4-X86_64.7z --icu7z http://master.qt.io/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z {{.Env.QTC_QT_MODULES}}" + command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} --icu7z http://master.qt.io/development_releases/prebuilt/icu/prebuilt/56.1/icu-linux-g++-Rhel7.2-x64.7z {{.Env.QTC_QT_MODULES}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution maxTimeInSeconds: 3600 maxTimeBetweenOutput: 360 @@ -42,7 +42,7 @@ instructions: property: host.os equals_value: Linux - type: ExecuteCommand - command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix=-MacOS-MacOS_12-Clang-MacOS-MacOS_12-X86_64-ARM64.7z {{.Env.QTC_QT_MODULES}}" + command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} {{.Env.QTC_QT_MODULES}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution maxTimeInSeconds: 3600 maxTimeBetweenOutput: 360 @@ -61,7 +61,7 @@ instructions: property: host.os equals_value: Windows - type: ExecuteCommand - command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix=-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z --opengl32sw7z http://master.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-64.7z --d3dcompiler7z http://master.qt.io/development_releases/prebuilt/d3dcompiler/msvc2013/d3dcompiler_47-x64.7z --openssl7z http://ci-files02-hki.intra.qt.io/packages/jenkins/openssl/openssl_1.1.1d_prebuild_x64.7z {{.Env.QTC_QT_MODULES}}" + command: "python -u {{.AgentWorkingDir}}/build/qtsdk/packaging-tools/install_qt.py --qt-path {{.AgentWorkingDir}}/build/qt_install_dir --temp-path {{.AgentWorkingDir}}/build/qt_temp --base-url {{.Env.QTC_QT_BASE_URL}} --base-url-postfix={{.Env.QTC_QT_POSTFIX}} --opengl32sw7z http://master.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-64.7z --d3dcompiler7z http://master.qt.io/development_releases/prebuilt/d3dcompiler/msvc2013/d3dcompiler_47-x64.7z --openssl7z http://ci-files02-hki.intra.qt.io/packages/jenkins/openssl/openssl_1.1.1d_prebuild_x64.7z {{.Env.QTC_QT_MODULES}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution maxTimeInSeconds: 3600 maxTimeBetweenOutput: 360 From 38d57445e1318b04c52bd126266e1a3054fb372a Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 1 Apr 2022 09:44:20 +0200 Subject: [PATCH 05/11] Core: Fix runtime warning Amends b4f2ac0dd45. Change-Id: Ia62e396f3760f8805085d3a0b0435cc426e5fe2d Reviewed-by: Eike Ziller --- src/plugins/coreplugin/progressmanager/progressmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.cpp b/src/plugins/coreplugin/progressmanager/progressmanager.cpp index 598d1ac02b7..482ccde7f05 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager.cpp +++ b/src/plugins/coreplugin/progressmanager/progressmanager.cpp @@ -274,7 +274,7 @@ void ProgressManagerPrivate::init() summaryProgressLayout->setSpacing(0); m_summaryProgressWidget->setLayout(summaryProgressLayout); m_statusDetailsWidgetContainer = new QWidget(m_summaryProgressWidget); - m_statusDetailsWidgetLayout = new QHBoxLayout(m_summaryProgressWidget); + m_statusDetailsWidgetLayout = new QHBoxLayout(m_statusDetailsWidgetContainer); m_statusDetailsWidgetLayout->setContentsMargins(0, 0, 0, 0); m_statusDetailsWidgetLayout->setSpacing(0); m_statusDetailsWidgetLayout->addStretch(1); From b43da9c42d196406d88ce2a57c3e8c1dc2d4a274 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 30 Mar 2022 16:44:23 +0200 Subject: [PATCH 06/11] QmlDesigner: Explain how to build qtquickdesigner-components with CMake For qmake you have to use the qmake or 5.15 branch. Using links to code.qt.io instead of codereview. Change-Id: I8915529968623f8c239f1abc1165f3e7f95a4866 Reviewed-by: Leena Miettinen Reviewed-by: Thomas Hartmann --- .../qtquick-from-qmlproject-to-pro.qdoc | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc b/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc index 289c61b41f2..bc58931c7b0 100644 --- a/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc +++ b/doc/qtcreator/src/qtquick/qtquick-from-qmlproject-to-pro.qdoc @@ -173,17 +173,18 @@ If you use Qt Quick Studio Components or Effects in your project, you have to check out and install the \e {Qt Quick Designer Components} module from - \l{https://codereview.qt-project.org/admin/repos/qt-labs/qtquickdesigner-components} + \l{https://code.qt.io/cgit/qt-labs/qtquickdesigner-components.git/} {Qt Code Review}. For example: \badcode - git clone "https://codereview.qt-project.org/qt-labs/qtquickdesigner-components" + git clone https://code.qt.io/qt-labs/qtquickdesigner-components.git \endcode Then use qmake from your Qt installation to build the module and to add it to your Qt. Switch to the directory that contains the sources (usually, - qtquickdesigner-components), and enter the following commands: + qtquickdesigner-components), make sure you checkout the qmake branch, and enter + the following commands: \badcode \qmake -r @@ -193,6 +194,18 @@ On Windows, use the \c nmake and \c {nmake install} commands instead. + If you prefer CMake instead and you want to benefit from the QML compilation, + then you can checkout the dev branch instead. CMake is only supported since Qt 6.2. + Enter the following commands: + + \badcode + mkdir build + cd build + cmake -GNinja -DCMAKE_INSTALL_PREFIX= + cmake --build . + cmake --install . + \endcode + \section1 Adding Qt Quick Timeline Module to Qt Installations \note You only need to do this if your Qt version is older than 5.14. From bd2aa07fa5b463f9274d2fc1ffea1ad432ca2b83 Mon Sep 17 00:00:00 2001 From: Rafael Roquetto Date: Fri, 1 Apr 2022 13:25:06 +1000 Subject: [PATCH 07/11] Qnx: Fix progress count when deploying libraries Account for symlinks Fixes: QTCREATORBUG-27274 Change-Id: Ie7a8235c06299d28acb98bf077f8012bdb5fb8ea Reviewed-by: Reviewed-by: hjk --- src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp b/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp index c2b704a3bad..d877c7a2541 100644 --- a/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp +++ b/src/plugins/qnx/qnxdeployqtlibrariesdialog.cpp @@ -169,7 +169,7 @@ void QnxDeployQtLibrariesDialog::updateProgress(const QString &progressMessage) { QTC_CHECK(m_state == Uploading); - const int progress = progressMessage.count("sftp> put"); + const int progress = progressMessage.count("sftp> put") + progressMessage.count("sftp> ln -s"); if (progress != 0) { m_progressCount += progress; m_ui->deployProgress->setValue(m_progressCount); From 3fa560aeb038a97f6111c21e8c987568382775c2 Mon Sep 17 00:00:00 2001 From: Rafael Roquetto Date: Fri, 1 Apr 2022 11:01:29 +1000 Subject: [PATCH 08/11] QNX: don't set LD_LIBRARY_PATH Setting this variable causes an instance of LD_LIBRARY_PATH containing /lib to be added to the environment. In the context of QNX x64, this tricks the Linux dynamic loader into attempto to the target Qt libraries (e.g. libQt6Core.so) instead of the host ones when running host tools such as qmake, as the loader will find a matching library dependency in LD_LIBRARY_PATH before it can even reach the ld cache. This will obviously fail. An instance of LD_LIBRARY_PATH containing the path to the Qt libraries should not be required anyway - these explicitly passed as linker flags to the compiler driver. Host tools rely on the builting RPATH of their binaries. Task-number: QTCREATORBUG-27287 Change-Id: I0527a7a77c6c76fa0229ea65695cc0d9f7d9811b Reviewed-by: Reviewed-by: hjk --- src/plugins/qnx/qnxqtversion.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plugins/qnx/qnxqtversion.cpp b/src/plugins/qnx/qnxqtversion.cpp index 9bcb4ed831d..bb935987c2c 100644 --- a/src/plugins/qnx/qnxqtversion.cpp +++ b/src/plugins/qnx/qnxqtversion.cpp @@ -156,7 +156,6 @@ void QnxQtVersion::addToEnvironment(const Kit *k, Environment &env) const QtSupport::QtVersion::addToEnvironment(k, env); updateEnvironment(); env.modify(m_qnxEnv); - env.prependOrSetLibrarySearchPath(libraryPath()); } void QnxQtVersion::setupQmakeRunEnvironment(Environment &env) const From b2a34f3fcfb9131c62cfa857286c8fb0b7a3dc47 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 30 Mar 2022 14:57:21 +0200 Subject: [PATCH 09/11] QmlDesigner: Fix shortcuts and tooltips for transition editor Creating the correct tooltip and managing the shortcut is managed by the command. We need a context for the shortcuts. Applying similar fixes to the timeline. Task-number: QDS-6539 Change-Id: If9a92c64508a6d3ff0754522e311ca0ce422dda1 Reviewed-by: Knud Dollereder --- .../components/timelineeditor/timelinetoolbar.cpp | 5 ++--- .../transitioneditor/transitioneditorconstants.h | 8 ++++---- .../transitioneditor/transitioneditortoolbar.cpp | 4 ++-- .../transitioneditor/transitioneditorview.cpp | 3 +++ .../transitioneditor/transitioneditorwidget.cpp | 13 +++++++++++++ .../transitioneditor/transitioneditorwidget.h | 9 +++++++++ 6 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp index 2d6bac7ff0f..7ad56680130 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinetoolbar.cpp @@ -103,13 +103,12 @@ static QAction *createAction(const Utils::Id &id, const QString &name, const QKeySequence &shortcut) { - QString text = QString("%1 (%2)").arg(name).arg(shortcut.toString()); - Core::Context context(TimelineConstants::C_QMLTIMELINE); - auto *action = new QAction(icon, text); + auto *action = new QAction(icon, name); auto *command = Core::ActionManager::registerAction(action, id, context); command->setDefaultKeySequence(shortcut); + command->augmentActionWithShortcutToolTip(action); return action; } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h index 98b55922e08..3fc405a221c 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorconstants.h @@ -37,10 +37,10 @@ const int transitionEditorPropertyItemUserType = QGraphicsItem::UserType + 7; const char C_QMLTRANSITIONS[] = "QmlDesigner::Transitions"; -const char C_SETTINGS[] = "QmlDesigner.SettingsTransitions"; -const char C_CURVE_PICKER[] = "QmlDesigner.CurvePickerTransitions"; -const char C_ZOOM_IN[] = "QmlDesigner.ZoomInTransition"; -const char C_ZOOM_OUT[] = "QmlDesigner.ZoomOutTransitions"; +const char C_SETTINGS[] = "QmlDesigner.Transitions.Settings"; +const char C_CURVE_PICKER[] = "QmlDesigner.Transitions.CurvePicker"; +const char C_ZOOM_IN[] = "QmlDesigner.Transitions.ZoomIn"; +const char C_ZOOM_OUT[] = "QmlDesigner.Transitions.ZoomOut"; } // namespace TransitionEditorConstants } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp index 9d331eee876..16bec1ea05f 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditortoolbar.cpp @@ -90,13 +90,13 @@ static QAction *createAction(const Utils::Id &id, const QString &name, const QKeySequence &shortcut) { - QString text = QString("%1 (%2)").arg(name).arg(shortcut.toString()); Core::Context context(TransitionEditorConstants::C_QMLTRANSITIONS); - auto *action = new QAction(icon, text); + auto *action = new QAction(icon, name); auto *command = Core::ActionManager::registerAction(action, id, context); command->setDefaultKeySequence(shortcut); + command->augmentActionWithShortcutToolTip(action); return action; } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp index 49490886527..f487cc18fb7 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.cpp @@ -319,6 +319,9 @@ TransitionEditorWidget *TransitionEditorView::createWidget() if (!m_transitionEditorWidget) m_transitionEditorWidget = new TransitionEditorWidget(this); + auto *transitionContext = new TransitionContext(m_transitionEditorWidget); + Core::ICore::addContextObject(transitionContext); + return m_transitionEditorWidget; } diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp index b75f9d7f874..1fe8f221ac1 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.cpp @@ -68,6 +68,19 @@ namespace QmlDesigner { +TransitionContext::TransitionContext(QWidget *widget) + : IContext(widget) +{ + setWidget(widget); + setContext(Core::Context(TransitionEditorConstants::C_QMLTRANSITIONS)); +} + +void TransitionContext::contextHelp(const Core::IContext::HelpCallback &callback) const +{ + if (auto *widget = qobject_cast(m_widget)) + widget->contextHelp(callback); +} + class Eventfilter : public QObject { public: diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h index 698c4b76aeb..0de0ee01ce1 100644 --- a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h +++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorwidget.h @@ -49,6 +49,15 @@ class TransitionEditorToolBar; class TransitionEditorGraphicsScene; class ModelNode; +class TransitionContext : public Core::IContext +{ + Q_OBJECT + +public: + explicit TransitionContext(QWidget *widget); + void contextHelp(const HelpCallback &callback) const override; +}; + class TransitionEditorWidget : public QWidget { Q_OBJECT From b2ae5218927cf179b71d28c42b67f2c99d8e0071 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 1 Apr 2022 15:01:05 +0200 Subject: [PATCH 10/11] Fix that build device was always set to Local Host Copy and paste error from DeviceKitAspect. The build device has nothing todo with the target device, so it doesn't need to be compatible with the target device type. Amends ec5e060a07b4b6ba5adbb57fb047c43c6baaa1d9 Fixes: QTCREATORBUG-27242 Change-Id: Iab9ae4c9adc98a177d15de705bc07406419f85e1 Reviewed-by: hjk --- src/plugins/projectexplorer/kitinformation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp index 8a3e6758cdd..acf153ddfaa 100644 --- a/src/plugins/projectexplorer/kitinformation.cpp +++ b/src/plugins/projectexplorer/kitinformation.cpp @@ -1244,7 +1244,7 @@ void BuildDeviceKitAspect::setup(Kit *k) { QTC_ASSERT(DeviceManager::instance()->isLoaded(), return ); IDevice::ConstPtr dev = BuildDeviceKitAspect::device(k); - if (!dev.isNull() && dev->isCompatibleWith(k)) + if (!dev.isNull()) return; dev = defaultDevice(); From a32c857dedeaef4127cc3318668a95300ada3e2b Mon Sep 17 00:00:00 2001 From: Mats Honkamaa Date: Fri, 1 Apr 2022 10:55:11 +0300 Subject: [PATCH 11/11] Create fire particle tutorial - Rewrite the obsolete fire particle example to a tutorial and move it to the tutorial section - Add links to particle system tutorials to the particle page - Small related fixes Task-number: QDS-6459 Change-Id: If637c9eeabd176af4ee9acdb7f2027e365a6b59a Reviewed-by: Tanja Remes Reviewed-by: Leena Miettinen Reviewed-by: --- .../examples/doc/FireParticles.qdoc | 227 ++++++++++++++++++ .../doc/images/fire-particles-assets.png | Bin 0 -> 10709 bytes .../doc/images/fire-particles-navigator.png | Bin 0 -> 8250 bytes .../images/fire-particles-sprite-sequence.png | Bin 0 -> 16387 bytes .../images/fire-particles-sprite-textures.png | Bin 0 -> 20917 bytes .../examples/doc/images/fire-particles.png | Bin 0 -> 64163 bytes .../examples/doc/rainSnowParticles.qdoc | 3 +- .../qtdesignstudio-3d-particles.qdoc | 147 +----------- 8 files changed, 237 insertions(+), 140 deletions(-) create mode 100644 doc/qtdesignstudio/examples/doc/FireParticles.qdoc create mode 100644 doc/qtdesignstudio/examples/doc/images/fire-particles-assets.png create mode 100644 doc/qtdesignstudio/examples/doc/images/fire-particles-navigator.png create mode 100644 doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-sequence.png create mode 100644 doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-textures.png create mode 100644 doc/qtdesignstudio/examples/doc/images/fire-particles.png diff --git a/doc/qtdesignstudio/examples/doc/FireParticles.qdoc b/doc/qtdesignstudio/examples/doc/FireParticles.qdoc new file mode 100644 index 00000000000..9d0b489de3c --- /dev/null +++ b/doc/qtdesignstudio/examples/doc/FireParticles.qdoc @@ -0,0 +1,227 @@ +/**************************************************************************** +** +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt Design Studio documentation. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** +****************************************************************************/ + +/*! + \page fire-particle-effect.html + \ingroup gstutorials + \sa Particles + + \title Particle System: Fire Effect + \brief Illustrates how to create a fire effect with the \QDS + particle system. + + \image fire-particles.png + + The \e{Fire Effect} tutorial illustrates how you can add a fire effect to + your scene using the \QDS particle system. + + In this tutorial, you create a project from the beginning. You can download + the completed project from + \l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/fire-particles} + {here}. + + This tutorial requires that you know the basics of \QDS, see + \l{Getting Started}. + + \section1 Tutorial Assets + + You need the following assets to complete this tutorial: + \list + \li \e fire-sprites.png + \li \e fire-color-table.png + \endlist + + You can download the assets from + \l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/fire-particles/FireParticles/content/images} + {here}. + + \section1 Creating a Fire Effect + + \section2 Creating a Project + + To create a new project: + + \list 1 + \li Open \QDS. + \li On the \uicontrol {Welcome Screen}, select \uicontrol + {Create Project}. + \li In the \uicontrol Presets section, select \uicontrol General > + \uicontrol {3D}. + \li In the \uicontrol Details section, set the name to \e FireParticles + and select the folder where you want to save the project. + \li Select \uicontrol {Create}. + \endlist + + Next, remove unwanted default components from the project: + + \list 1 + \li In \uicontrol {Navigator}, select \e Text and select the \key Delete + key. + \li In the same way, delete \e {cubeModel}. + \endlist + + For a better visual effect, set the background color to black: + + \list + \li In \uicontrol {Navigator}, select \e Rectangle and in + \uicontrol {Properties}, set \uicontrol {Fill Color} to #000000. + \endlist + + + \section2 Adding a Particle System to Your Scene + + To add a particle system, you first need to import the QtQuick3D.Particles3D + module to your project: + + \list 1 + \li In the \uicontrol Components view, select \inlineimage icons/plus.png + . + \li Find QtQuick3D.Particles3D, and select it to add it to your project. + \endlist + + In this project, you use an animated sprite to simulate a fire. For + this, use the Animated Sprite particle system template: + + \list + \li From \uicontrol Components > + \uicontrol{Qt Quick 3D Particle System Templates} drag an + \uicontrol {Animated Sprite} component to \uicontrol{3D Editor}. You can + also drag it to \e scene in \uicontrol {Navigator}. + \endlist + + \image fire-particles-navigator.png + + You now have the particle system in place. To preview it, select + \key Alt + \key{P}. You can also preview the particle system in + \uicontrol {3D Editor} by using the \l {Particle Editor} tools. + + \section2 Adding Sprites and Sprite Animations + + First, import the sprite to use for the fire: + + \list 1 + \li In \uicontrol {Assets}, select \inlineimage icons/plus.png + . + \li Select \e {fire-sprites.png}. + \endlist + + \image fire-particles-assets.png + + Next, add the sprite to the particle system and create the animation: + + \list 1 + \li From \uicontrol{Assets}, drag \e {fire-sprites.png} to + \e animatedTexture in \uicontrol {Navigator}. + \li In \uicontrol{Navigator}, select \e{animatedSequence} and in + \uicontrol {Properties}, set: + \list + \li \uicontrol{Frame Count} to 3. + There are 3 sprites in \e {fire-sprites.png} so you want to + divide the image into 3 different sprites for this animation. + \li \uicontrol Interpolate to true. This makes the animation between + the sprites smooth. + \li \uicontrol{Random Start} to true. + This sets the animation for each particle to start from any of the + 3 sprites, creating some randomness to the effect. + \endlist + \endlist + + \image fire-particles-sprite-sequence.png + + To add color to the sprites, use a \e{color table}. With a color table, you + change the color of a single sprite during its life span. In this + project, you use a gradient color table ranging from yellow to dark orange. + This results in the sprites being yellow when they are emitted and dark + orange at the end of the life span. + + To set the color table: + \list 1 + \li Import \e{fire-color-table.png} to your project. + \li From \uicontrol{Components}, drag a \uicontrol Texture to + \e animatedSpriteParticle in \uicontrol{Navigator}. + \li Rename the texture to \e {fireColorTable}. + \li In \uicontrol {Navigator}, select \e {fireColorTable} and in + \uicontrol {Properties}, set \uicontrol Source to + \e{fire-color-table.png}. + \li In \uicontrol {Navigator}, select \e {animatedSpriteParticle} and: + \list + \li Ensure that \uicontrol Sprite is set to \e {animatedTexture}. + \li Set \uicontrol {Particle Scale} to 5. + \li Set \uicontrol {Color Table} to \e{fireColorTable}. + \endlist + \endlist + + \image fire-particles-sprite-textures.png + + \section2 Adjusting the Particle Emitter + + The next step is to adjust the particle emitter properties: + + \list 1 + \li In \uicontrol{Navigator}, select \e animatedSpriteEmitter and in + \uicontrol {Properties}, set: + \list + \li \uicontrol {Emit Rate} to 300. + \li \uicontrol {Life Span} to 2500. + \li \uicontrol {Life Span Variation} to 100. + \li \uicontrol {Particle End Scale} to 1,50. + \endlist + This sets the emitter to emit 300 particles per second. The life span of + each particle is ranging from 2.4 to 2.6 seconds. The size of each + particle is increasing slightly throughout its life span. + \li In \uicontrol{Navigator}, select \e animatedSpriteParticle and in + \uicontrol {Properties}, set: + \list + \li \uicontrol {Blend Mode} to Screen. + \li \uicontrol {Max Amount} to 1000. + \li \uicontrol {Color Variation} > \uicontrol W to 0,50. This adds + randomness to the opacity of the sprites. + \endlist + \li In \uicontrol{Navigator}, select \e animatedSpriteDirection and in + \uicontrol {Properties}, set: + \list + \li \uicontrol Direction > \uicontrol Y to 20. + \li \uicontrol {Direction Variation} > \uicontrol X to 3. + \li \uicontrol {Direction Variation} > \uicontrol Y to 10. + \endlist + This makes the particles go straight up with a small amount of randomness + to the direction. + \endlist + + \section1 Previewing + + Now, the fire effect is done. Before you preview it, adjust the camera: + \list 1 + \li In \uicontrol {Navigator}, select \e sceneCamera and in + \uicontrol {Properties}, set: + \list + \li \uicontrol {Field of View} to 20. + \li \uicontrol {Translation} > \uicontrol Y to 35. + \endlist + \endlist + + Now, preview the fire effect by selecting \key Alt + \key{P}. + +*/ diff --git a/doc/qtdesignstudio/examples/doc/images/fire-particles-assets.png b/doc/qtdesignstudio/examples/doc/images/fire-particles-assets.png new file mode 100644 index 0000000000000000000000000000000000000000..a820fd981982956527164bf840df12c95c35ae28 GIT binary patch literal 10709 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 N!PC{xWt~$(69CF(Ci?&Y literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/examples/doc/images/fire-particles-navigator.png b/doc/qtdesignstudio/examples/doc/images/fire-particles-navigator.png new file mode 100644 index 0000000000000000000000000000000000000000..759cca99909bf1ea5a9aed6c9e2b3600223d37e6 GIT binary patch literal 8250 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 Ofx*+&&t;ucLK6V%FT+j% literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-textures.png b/doc/qtdesignstudio/examples/doc/images/fire-particles-sprite-textures.png new file mode 100644 index 0000000000000000000000000000000000000000..e719b7ef29425bcdad272eb37e5ece95d92f3b93 GIT binary patch literal 20917 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/examples/doc/images/fire-particles.png b/doc/qtdesignstudio/examples/doc/images/fire-particles.png new file mode 100644 index 0000000000000000000000000000000000000000..c0ea56082819d4654f6b494c6fbf357a5a67340e GIT binary patch literal 64163 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Ä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

{jE zbtY+S+MYoy2hYgr&y)}mK6xmo{7H&<%`s!`=1%2<%G@W99Xez@w|6Fcn3eF!#?H=O z=H994R?Ro_R4YB7+e#mNwE67%bJz3^xwL8e9j~Z7@q6X{?N#?y-MLd!1Zt@TNk(Nz z23Hv#PwcyPMpt=J>(ZmAZytV9|7%;_*Lzl5o_#s=SEhfpkZz{t$xn*}b4sNAS==Yh zOi|46(YaH6zB6U1pb4J|pG?KUsp?kE+H*TMaED19Oh|i}G+o9ctZRexp2fFIclT<~ zRqjo>P;v6XDTTYG@jmm~%bnXeCchM5|N8p7?UhNO00NC={x50bk-X^S?R`vBc6K=X z@-#mF&BaIK?fdf2e@!dB`AS{Csp8I~=EqA+mtAO2{S-6re#Oy`eXUc4k9s95&CKwT z+4)@bd&wm0bt=Z}eL6lY+W9jrKb>#Dc=tFG_2xAqkb1eMUB={R+v6po3RUcogAhbz1D z^&YSK`}B6ytrws6T-{o|>)M^Hyxb1e$1}FJ^i0?iFvtA$v(2ro32AA|F3#}aJ0oN9 z=>RjgG`rdEV?N1`PaI2l*q3A=T*BrlxaZM{nNLnBykK#kly?1P%iUvX<`EuJj?ZTr zbC<_R#N4^Rb9cw;;}18zT)gga`}2QigZD0S%k)3YE0X;8=+Swx`nnBg%Cy&86g}`T zC|+Rru}QexN5%NyDWA>W>q?}gd#mpiEqqa;Hpy>$b?Wysr;a(LZ?Y~}qOtp6!s3iF zV`0a_q=!zAJw7g(FIxQB!iL|zQYQM2Z-{LyyHQO*Pf_t_O;9scvn6(! zkEBtm*2cb5a@PZc<%5q+>Fb_<=jlq{_j->r*X}%8xa#tgr<1O){rB(ex67^a^Z&ej z#4nyEbu?kA@r{ZHebs8aZ@RmxOO$l=9y8|tzGhGQ2N$E_R3*u>^mRUE!rbcjHX4G4 zZ4N$gNZ&krhGmhWX4ko?4`y6+NKEz)^; zc2hx-+N$EhEg9w3rm@(r(MXl-l@<{QKcrz46HFgyR#TV}+?9LBe-F?1gD#6b)YR0((wbB_)pj47_~evV;qim-&iH(s)|&KG_Mpp# z8@%&8#mv}xA9Y&4yZJ`1c{JTl4dM`gJtf4jci ztGnyB)ql^u?{>zwWkCyQnC94%XV2`T*#vdBPEmAj6EjlU92HO+cX#g@{db@0PKLKz zoSk;&_p`)LH#Pa-GEOv*FAT)D|QFedV)NVD-= zZU3@znTn*vhL>wiGD_xIY`8JEGEKEYZHLi}NJ*C7UheldEjC|ztH$PBqCe~2-#@RO zi^u2R`<_*}XSQGY=ck!-m4Y}yJ#}yk&o!WB+9V#ysAG4|WS&}Lq!iqFW{%Ob9_M3+ zh4iQW_#-iYew4}8c8&O!>zmJ~&p$7B=$+SQX%)xx03LbKxy%P!pLlE%;^|6Qy5rZ2 z&Z#NN6^~AF?`C#a+nuh)XY+ApZ1OXw&w-Q9_>`FG*%UwXd46iDI-BRO1-`3(XMGJ% zkI%h#^=Iw>-{!aLKX<=R&%+>mJhUc?iw1>zEWho~a$0vT@1dl#@P6%5S?u zl3&~viqre~NrJz#zyDP%5Hv!ldiTzsbxoSC9sd`& z%0%5cTbNZi>(1Fi^P`DI%R_2=yw_*z2ew20wF6>2lz9(w0c zlvr@Qb7sa&KLefMClL153ZcId^@cFp*VBKA)%({5A)B> z3;X}-$rTr)+ony9f@jW%IBqOjHp8+=fkR$*%3ZhQM+Xv;7E6fS%~RW9bWwv%*wZL* z&dmr;zBMKCXKgkbX_)ER1W&o!n*R6A?5jI%j?b3g_Wxt}^!4|8|Nq?mcKZ9*cdmZ; z7xezxsSl3J@7$@;0`++#T?ADv{oXCJFlj$|cTV|a{(0MXP0JMtT6=fv^-}4p*?9{C zQ!JM8&ujCWw)@lFS9UtRt;c+fE?N{OEfbu>xqGHt5YN1uH)dD{m~_qLJ~`2C`DICy zw09g$ZWnfLn4rSGjz>zmdFCPs7JiZZh@G1X6O)%kd`++ad++}Gy1lV=mH&Qa##H~k zT7FyqUhngFb(w$9{a(ATHeNT>5LCy4^2pp!R~IwyS(i2*&Fo6hxPYQO9JrI@`fRQ&SceszgN2ln@C|oAl(wsj25qxos%?_C1x`DbdLR}alGOkZ*1RMggWONC43RbCFYY!iQZ^@(c+$L=L>x~6`&*=)42 z;7Q|jn}R1NTpphicHMMwhq9-i%*+fO9}_V@pCxyXRp0wK@8GFc?YYMqmAT#3%;vq| zQDbwwReI>%snGoun|GGvZ~Iyqqx@X#{q4h^- z3qKdnYu68s&Ma$ADmZ^eSbv9d#Zg(~=7i0!OPZ$pi1b#o^)4_Dwz>3@#W>t*Zo1Xk zcV3fJCf{`_T==5w8m7 z3))|=h%404S3CY?S+%#|%crmMQWbAxhyhhg^F?WL2fJQqo*b| z-)%kUX1KBNnU_&uS+n-R#?DRAGb23M!u4V})!x0xDNA2>kN1B0^M&EPRpsyU&pkf7 z^xw1gjdMPoZvS@r{dM!_g>xR~b*{YGCIK38D=GeL&ADvC!ll!emCU+xwsO|v3oa3} z9*eY3TWqmRXPbGD3!n3}w*qmi(R=i)bAosUkCl}6)-txgwzA$cetLBl|3Xg0~Kg}Iw zhFgw3ICbdQ%<4&Q$s39iF1*YsX^TyNcwpvPy$H>|Gd^X~2M?~(2-|Jl7xN}9ZCzP& zZ+EOg#rf}L(%Rb6M_aesd^+>$<*R(XMKdk0fBwGrNOyAG_Nx6?3(u|jb+i0+xqour zMjy*l?2B_iBW<98;QMhC6rC>}nln++!eqJSDR#ju?ck0JLCd5J-BV{dg}8>eRdB4I z9mjTjLrdJc!%IDymRy_>X#tuj5jOTLTw0v4$Z*HA)N-5Rw9jup2rAM#Wj{ zuzQAqI%UnRPkfepOj>gBh0KgdPqnTGXHE%gi-)m=pNpw{cIL>bnSRe-?VH{9{H*2P zjP>mR?Vs_vq}->m92iw#R|yOF+%(X-ZozIJHc3>RGk+ z_~$VDm}BC{zkL$Wee}86^08Hs&Gm&lXUnP|*L)|o{G?`*-@8LXW@3FZmo;@>_KVHe z7dhy%X~PDC%>~D0zsq=bakDoq?)OufTP=5UN0EwWnpoG8jF!6zH*!Vh_I6q~mB&by ziCdN1d_Llq9uV`g<*wUz*I$D7Ka^RR))!RlJ-R#h?;IUDCN5 zPV%OpG91)T(oH?l!Bad-$?ayFY0ll>SIy6V{S^^EZ_`r!KFwFJcU}uD{`}K0Uav4~ zW@1-SR$nG(`O2y7&%Qp{Y_e4R<%NuvyDmX2-0osh!kz{n9WLw?U}5JI2@hLm5;w_i zmx1ACqZ=AwO>PsW#HK$!GVxJTx$2Ih)C&?SbJL|fFL}H_ee86BXZ-ZcE$5%lPkVO# z_15d%$N!bT-j-5RDSrO2mBiMSpv@DYvQkgzi@#Re?BeD>%Ii|SYufI-gZuc0RXg*WoPS+>!aw<>rf1r2KLL}bC5A6@WM**i z@k~lLV>9MH_@Hm*qef=?g4DF+#l@+q$(y~!tc0800_NQK(Kppv&!$LK!)#u~qF|9! z@qOC&r|Ft3yU?EXcJoj7>mR>zB)>D1zrn0AI)nQ{m3e$a_5QNOI-ie-#9#Zp7$mb$1~OUiqE{^yZ=B=P|`9q zY;)w*B`%#U47w^EQ7@N!vuwH0#4VK5l=Ceh_NJvvi~s$S_okbR<9_N|MJil;(R1d* ziZ!ja{ywVv=KOiH?#gea%clhLx;k$^3O{=HfP+C$Z0qU-e^m}C?w48|;lkYRlTIBv zSj9F0N-HX62at^`daL#EjiS zZI7;q{@(p?_4m`$&7XG9t}IhTc-lKm4Ool&lKD+_6Aof@rohGlB!OzycUsY{KG3=7hpcD9~7GtU}(87o#8~;5@zudmF{`;Nyx6>9zOg^)b<5Jq^$5J_F z_oI1LuLL-2di~Jo2vCYTzjS8yo;7jTawLBTWThOtvrFu_P_Uqd;$6}2M^D6l{rcpp z!_pmIY--_CCqBwrv?*vt#7Z8OlU}I_4_!8W>SK0P+?kk`^z6{7iMDggV>Q@SFgdSy|I*AA^jjTF6D&6J%c=U1C!?)O?wI@~(m#*TDx_3KA9p5;IoxytxtVc_}pc$-S$_=SA48jHen4Gxr)Z z>+7)0oyyE^7m#sg&6;&;Y~Og+uxQVnI<`&|>cYu?RC3b|(X^A4tc-aFMm)Y-H}NU0{|kbAazPtcP~pY}}I znW{T+xKXP7HMJw9x-)k$y*NM~Tyk^5T7K`jXw2@Cfo9706qyv93u$@`mxn zn}sO}=NmgGF1Tn>kf2ie@QBleNX~C>Vq#-d`&G`%Wcrvi*~VY0Tp}!@C9b!Q>!45h z)tkj>3n#O1_xdfqn8|WA1T>^PZUo z-^!_TX+Ha``t{4jiaoBJf>|C>*EJnyWxYAJY1wks_^5k4fxD*ptzJI!OJL`sC8reM zblpASFu_FY;0c#a$w^7)=QY|2GcR8KC~Mi~2_oU!d3-|jRL;j#s70(05o?l7505W8 z+&Za6M0%x249PT2hOUX@y)lWv<(D@S&kQmUHaG@HJ_)jKQe&pnLL zTWf!AXWEx7(sy_aLym3G|8}%?X^^Lt^lL;=$$q&BpL@ z#S_`7UWpG6UTtL7p4vFEI!*6Pjkl3dj}Ffnmg=x@c0QADb1KezEDVZ>DgAcpfxVvJ z!`(Nnsy+E%s@-k9tr3`4R%&i`lW+0i5P7}TXP+H6xsmhF!?Q)IP3eT#>Yf0l2`gLf z6~CM}`{AVQ)5XEu6SpVV)CwP-7h4#7N3?vZ)21K^j#aCVIS7S>&y}6p*g5rB>%_)G z4_0kR_c!=-hPyxJ#hu^?&$K*^H9RsBGhVV(zq2ql2+}z7X2y()=c_JzsKpf~Cb}mt z*$@=5^4Q$}%Kwc#{}&bdot$O(eDz+vsx(cn!0xlpj+@=c*|%L~V$(tiCn1*=Qw&_T z$t_>{e!0i9c{AhQpYkq^`+fGo>e!zzeG7wS5BqLh%;tE>Q>)c)@$Oe8dOjsu+kJXi zxV3xz)IGz*&iSm_^VDbQBo@a~(RFI!%u|ms8@H-d_@*kvs`{T%X>ELP zB~#Zm9b3`oRji!9>;9LDyEae%>|6dX@!ZnPm8qcokON9?*(=NCTmQRuDDCRd5%hd- zdH$D%SElZ}Wj~U{cbi6cJN~?C_{i*z$o8uXCA$5C-g_;aSRy9I)q3=5lhs!AgoMwvF58p5(BRV{V{PH))w23MGM;ib1?NbvT&HEf z^fE`9m33OU?H{OjRlyZBq?=XY+4*;U-_Q~cU&w){;{QZv$BxzuN7 zm4;0Fi@TE|Gc(`qOgrQ2FE8sJFZXDld)m&`KVL1|u{N*!c2c~E(#sOTby6=^84B~5 zaH-F`8GNJg*-TmUm>&l&UOjQ@&8tIw%;)zQ7#r`9lHe3;nmBXGrVmG2&v|W7&J4M9 zb>74WhhAt!?kqT+EtkR4d&nbw>e;2$M}_Ziz47$dg?*K0o=;mIT99e9_sridOU^!X zH@lJZPh#!!OIv&9DX}ISioMn{?v98un<=^6GC4o~k-@F0605Aj)*tdMl?Qbc)g-%@CQ_}hv^e-!)SDhmJk)ru_0S=YO#vBabk==iVXo%#46wNDd2Y_kSY90# zM`epknkw-{&svR7`UGT(xVeS#ojIdZ^tEm)_u8NH#rDVlK5P``{PFenziD4K?b7-A z@X9@#?OSi>)PZ8Qe`4a>YwMOzGK$$X?U>Nqc`hENI%iK`inii2WO24=`~6Cw>}YMN zM%DK#H5XaCRxi28Y2|5DkdTyg-XkDm&6zhbb1Rl@dVb)P!@`RmT+G&LZc=xz`Yil> z#3}Xs8LvtI?m0d8*s#f9!a6>c^D!1Xr7}a<($c0MeIFJt)_?YWc=7pnAMgDCrg%T@ zQ{uVf-t}>}x1WD&vV6 zJ$z@TEz*3r(s1|8H(Ybw(idznxa8@k)^yBgd2p<1{~Db)5-&yg)-|1*ckI->iLX{o zHql$+@8-tU>aI0)!G+8au`(YKwx)9jI@QJEGD@`cV`5BCPWt!umHJWr!}lv9Ki5}X zm(vfjiJkNO+ryo6pWiczUIvR#+tgRF{)gOcU4N`-TUt5mbKMzJ@0Q0BGp_G@-*fcD zq`sp|t2bM;+vZ1Lw3^y-~{bawE*Gm=*p ziEIsuxLmwl<>AKaoM|O5@0s3Tw{NDc{yMH+Zf#*@<*T7Z4-a+DJm(W2DZ!B@HFaXA ztgx`MFuN6~Lw)Ln)=Y_&EOXEG$tt(1X!OX`8f~1gE{w}s%UC=uExa`)h<)qMlKZAx ze|KMrer0X+`jx)yLPVC%!v(_jTZhyQ?;STD4=f$gb5Bna$taC_XH!yxnAy z?bM0PtuxQ{bvD`xt6Qlz9Xc>CCCPo0k-^62Z4P_!H`|Nk8!4!$Z>yGVn(>1CMIk91xkLUZct9M1r7q2|>+VEAb;@&0G^AdgAC;X|K zmZ{Ts^tGd`Mo5{AMZxJtW@Y!hmnPrdXv%Qt$y6L|Y+Uf^Q1|Ku0zP+)He8y?*|oay zSoOIQD{g%gzM6x)<$oqg%UKksC6aVpad`9f=EQ`QMMi}WrpXF>Uf8iA-G9d`mbnvc z9WP00*j(fY<6>5xdhWmhk5t7SA5NS(<+XU?n;nm};{sRCiHO;|!5~m`j>Tja<*ALG zr&?8fS6_dad;ReB!yg0oRh+qR^X2%?_gPaq{y)6^H2V z;x~Pe)t@tC=MF8MbzxymQ}x`d^AL+G+-$T$=5D>LKg>C|I)C=@e@_+veO}+5-~V^^@uzQ# zH{blzERkbYzr^o+%Bse@}1c$m(BCqxWxN&R?wmC`nCUef89_l^Z3G{ z;PNlJfAx~JmB*1khPx(Ur1By%wq={8xxM7&+K8D zd-STqg&7eR8;p!LBr9=nF&~^av1DpVxbn&ECR)tg+9z8NhNi2=ur7|+6TR2JzvlYh z%>C8Z^%s_VpWa^;`oDX9`~UCz=jNK(?>m_G`FQm1c~RS!I9ptq;k~aU`+Cr8JFalS zWsj~dx$@)o^KXCdoqh1!Jo3$y*&%FT%;?=oyQ zEDu`ohI9TI5w5A%RrFP=wY1A+UcRYNn^AG})PcsvncPz!9P-%o;ZSv2T3m#NiPg!O z1*M9T5s{f8Zk7g7yWD^Ne)`t?-?OFjuh+zVdb={-@9p|H{{N3}f4jXrZS&8Gyk@iQ z?_FBEa{1ElA!Sz!OENE3ZPR1_EfsnvWP7qqo6%K^^?wt;RTOUD{H1L3`tQLy-hG0X z_hs0aY+cd(MoF_oN?gm_WS*sg!Gv{E`ga6Mq^7zB+$?rZOiei7d5pI_q)%pMMdGsq z+>T3)ChGK<$i<%B^EAIANi}w@%|{>gSlP%ID#G2XZ6_akd(TGusm<@R$<}A*iS4g@ z_5a)3qUfsLJ@=>1tNVW^$IO1&!L-lnm63P+uIXJCDYTA?nirNGev_B4`LV=qAUm#h-#yJ2F&Zq*tG&|G7F_TU3um7C5aaRAvuURB%fy)e!f+0H|KZI=lOSz zZdd=lyQ0`@_Sycl4LAR+oF|^|_w%UU^`7L9SMBnaZz?%iSYXU@?(VwdpJ$mSXTB@X zTXxBNouvMBn?5hivZMQM@b_I!{&7JzU2Cde`olxIQ>TijvALyLX`8QESEj-rbHi|B z^6?{Ho0fm_DOhr0=8vXmDejXqTe+t`T2*kmQ`~RQhJc6|Q7z$v4_0k9_&9a-_Bpjz zc5UxfnmzCFx-+`>ZN6{UUz_sn+W)J;|I^pMPW-g~-tC;akmj?`*nhm6VxD}j@8YG9 zyS{=Yf-{3RF7YY;yyHe{TaI8UkM6T~hj+^J*IG=G>2@wOpV6&8&FPZI{1Pc{$LDWW z6)UdnQQ_w96=r6CxAXZlWoC7*sZIfw0Wa6Ri{zB6Of1}5zIBI`Me)N%;a0!oedVj7sdF`)#z2%?qdh6Rcbv{Sa zJ~Nm6`|AAvdH(J45RG8$2#XN@i`5J8rmd-}?1sU(0&JzdQdqdakzA`q#-9uMe(%Ra!dZ zNTcmk+3G$KHolTct*3a+*Kx6nX$f1qgmR%AT& zdb?4d;7k2D{^^+~RF7H8u*di3y?AMH>;23fi7Agx95~?c{7mPPpqUynl93TRQ&S%G zDGLi9bWnUTXT=;)FwfahkZ``w*1Abui(RhbaO%%4v;UQ3F9tpEPhU6JX}D$n}NKKp#r{rBv% z&!&G(Joo?p``i1gUhLo1y`Ept=G@-tpImjHKiiF6KbC4P@i+_PkF2d; z=?f;k+414b$*a8LlV+B$G0}4GTJ2Sk`1Fv+rXLzRq-9t8oZoEtddl|TpGSRVvg>1Z zoiUxt;dy=K(fU8D?)g8x-v2gV?pOZ&-DjT}OXir(51sIEcW_<#Ci!bCR|)R@vOe!r zVSLq*$Fu%_HGjSMhkxCp`FD<{rt&E3PMr|yZNF?(28)2Y5{H>sCdN-ORZ zdoK;p45?pl^x=@p27_S9l_KFsuNt5C*`r)}_CV{o&M%(n3xhOStfiP+-IQObgzA=T z56xfoQsCyNs{+Rl-cJ7>{O3=^zB{`m_pJG8@%(g_R$WDz{ z^SY$8)CWF`jSK>JB$t#v5moLzbfDF5gMnd?5ZA;k(QR$bcp+XWkQMQ zIxB7Qb1clDg`*0Y>&kR^Vk~xZmBqZMx>Rdek#k(S`e)Xs`TMjke(J9M^J?9_UPJTu z=YC$AGi}appW^SUZ-1&X{};YLF6vfJ-GYN@pDm~S@Ob@l@q{D|FAc%q(yV`9+iQwn z9$xTq_1_KJhNq;wQmzz)-wj#MCVX6=b?P~f`Xj=;aa7JfMiPTA_OPV5XmqODMmt5X?LhaJu z7oppqZTxZ7_fLF%&_Dh7X+1yA7XN?iZFl}}>c%g7OuWzg9BKFduU`Ii|DUHH;{Wcx zn)dlHkJ;?=3tOa&N>vmkx_JbbJxc3Y7!l=G82QQQ`|XAIt_00qt?#}&NhglKr>94y zSGKpj=Z$8FmT>FLMrL=bxsA%!;mq!8|K$$Ka{HG|I(JI=r1AN6c{hul3!eEXW{OyG z8*__ax_Y9qwbgIah1wv=h!kV>mCH`V@9W!mC0^#!_5Pp#CY|qIZYlq)ru@`ABM;l9 zIWObuU;JOb{?z)s)9dH&I{S=WBFAjL_Xz>bL+*mh6rHX(X==t@)0z70Y;kp6?53Xe z-}Bly?)LpYxY5XH#Fx*)1$SHZ@1eKRsQ?$a?-u`&{2W_r#nZ*Kqad-}X99|D&>DLlDSr)|{0xJDwllH4kyq@?2~?_TxUmdosT+&A%+*2*_C zb|fBeO?l8KT_3SyRn1u+bq}uAQ?l&yEDR^JaQE9>UF_lvP$c*Q!|%rp1{() z>3i|9E31|#$)C^u$DjW@KmOO_NzX$QHTax;ROe6IbN^_-)Cp;pml+9&Yz8ge~1EiFDhP0?2OZ+Gm1j>7^I+ZMUaxxVG*AA{zz&x&6daR@$K z?9?I@=-lDw**oR;LLbv>XAVzzoLd-wS7f(<$D~(UH;NP7cibvIuiLvIKtfU?M)%E) z;J+8s&c$#{deBxKW+fh8%_Xi?ZRMyK$r)}PcFrVRn0?mj)|pt{!K7HBJpuc+N2b#^*hVtTUT$n`A3s&_Sxr?S{}V`iCW|~Wl_h1bd}(( zX?nJC{a(AQ#Exf)AG+_^r0{ah8kTCdNhPKedU`^nPEI`f{p*=i6AyXqnl(dHM2t;K zd+NlLr9m7`6FXC$b*f7#D|0iaYgJ2~Jm9f>vq83TqQOFUxn}iS4yJvc>9T{%QPF9NhHJ0G^r@LTw#9GrmYrB& z&=zYL*65@jDJh}B^X8`UC#QnL^K4(fa!OQ?`1@Noglq1(Q}dh_ZoUw6x4?P%CZowd zcRuPGS2vyWSst{aL~8E2Lk>$XbC$(KXug>lxl-p=j)crA=M@Woyo~+1dUsIwdVWo> z>HNigiJtObx0LC7e=~V|7+RDnYA8-#;t{TTCBTVA&~%DZaMxui=N6%?8=}b^o48e4 z7Z`6$esHGID`+N%RqrW}Qqh0k#r#;TwOWsPZP=tPIivDuqwQR`V|<}xRaO~11~T=|y$`+U5+$o@Jbw|`$Aush$K&B-YRS0#6*x_|Tx&$ElYRMlM9WN!1pbiIXv(PyW{MF|gPiiZnp zdzOl})b}Smaw?pv)3avXyO(=XOG7p1X!P)igx|f|c&_!yqg6sBVOt}DK1_ae|Ek3A zx{R4|{&H#OekPhtov~_qXyMi}{^DEE*j(b@B;e_<*{Ps$CEy1CMtN_I_hSFw-TZh_ z{C8ePos|_|TW3M&3K2CnEB`l=Gc(^v%&d6G+p6#3re!?!WT?Sp9}_NdE90pj(^7rID zmce)V?!~JJ&YR}KIrCE5XLYF@v-zH0_39i;=6MKCJSOC_Hcs~R-H3@>) zj+unKd@rI^&85H2&8oUj#c`=XOvRGT>XsjmOy?0<VgBYelP+u3QM_ zoPCzx{6>ylyU*Mp7N^3gw$=SASuUN2B9e6sukE-yb@$4B^J>2C`gQZk*B1iIoB||k zJ{_{2bZFvC?xRA9!J_QAFz7F%w&!D~^rV8)g!9T%z0y@)teKN( zB6V;gd-zM1XdM$8qj-(3;)_QuruZ>72qj{UCHbxP&XzkB=YYS)!ZR<};|TOPn+b@eKD_iE+d zW4z`q_5H6Vf2a*@Viq>;pOe8eXQx5Y6Istqmo!7T=1x7=$Iiuku<=~yk{wZRB@Qd@ zeRf8e|7B@KXy4ZV@>zdpFaLK|Q_FPGv^6@JZ@o@T$lUz%GN{q1a`MXMfH%iG6s87r z7k2y=_#IW2yfQTLWnon9PW`9duU4PDJ~^r;&~>TNu2nqi+{$`xYUZC-F^Z12ixetDX`Q;D@X?7Q^G?mPUBAMv|HH`x+Il)H z+O3BgC#uIqyihrN^^DW5Su-L$q`1$9rmLm~&SF-5JHsi(Zpqvqkz1d<4dHYC^Xb_B z+HVHk8*bK!HJ^R<*)yf&+Pt+-LyA|VuHtLn9m{hxLbk2Qc-qDbI+tP#HKJy99O{#` zX5$h*C@kK0=aPlNh964`{2xw>W}AQigvav2C7)%r``4)44P9)o=~v2v08O4Vb1aQ_ zYnkkFkcybCx;5m`gpb>9izn}qd-U4*=hfJsk7DbizD&{lGk43)KPTB{pG}|AGR<=R z-Y%&^i93Ez^TfaJHk$GxQ>SmT;uXg&C7#xONA*_typgzRY-C_;EO5urpm0I)X<26T zJDWZ~wkmQ~e5teM&5qQk6P#$U-v1#=l znpYiuKE~p5hRx@B>TFiMjcK-%@0mZ}AolC$ocr@W-Rb#r+1dQ4e|^-y%gcZHzrVG= z=7jlloh=GW&pz`9l_RTtY$q;l>FN0M^P;%<*A3kZr%g-EtkqE3l)C@SODA6QR;PtQ zF{NpIB2BWw)_fvvafQcw?VFEvs_Zl$9XHmTHqD661+1BO7VrO%&&Q`p$ zT!r-3NxX*9B>-Qb0d%n7M=S{<powEBggW{}3w zyHgHl$sBSp@0x8`x2gZy*|WP(UY=tM3T+dR#R?u(r`|a8ByU{u+%(^9eP7|b)VDuN zPS$?i?7U~+>ONOT1EWc6d{lZH8yn9ZI(6vKfr-oy-KWQJl-Y3}3VrHPl$PqA`s_?6 zcki>TXNOv+PV`Dvl!*MQ@WvxdYjW)|fk?L?yXrkZs>JQBr!3#euX#2 zUJmM5dbSjZE)sw9xe-%mW*Z7t)z57P6XOq`b1B0De zDs$bE6H`9$CqC<(IM<)6*O=Q}#LaD9r02YtQYmf6#S=xexO<(xUtC)4=e*H->C6np zte3T1PSpjw1b$vGuiNxp-!A2}g!ekv^Dll*Jp0Vw090!!#JIXFbepoM#V|=HQu%t` zn#vuW^_y15zi)r;eQ)o&xK>%_i6!C8%2QAEbvhL!`0tRCaKt6` z{E;I^c!jOi4%xR%JQ=!cRnI!LFsZreX?-G-W;RarTfA9los{G9i=Ml-uYO*@IWbPu zw)Vv}g9!Q0XEp0TPYO<%`{&!z`W;UmFH&FF;*+`gr!cSC?DMKqP6(U~kWpX1Y=`XQ zw2nzPqvlP|ds%0+i*x!jyP81XH(Wl#*KD@D zT8BW3hG1}^{jt}3^~*nQuKk(yJg=v=H}GCqc<;Qt9hyDI4jSy_YFZ)?($sqH$i(Wh zo;#b;6Tdj~)=f}(X_6MkmX_AkI<@tf*QLl8J|<#oGc%7*@_RY^S^4S*ll*dbE;%#1 zt7gXU-`;iQ?^>lQGvlV&tk2y1laX!qS$+|_E`f&zzly};-#lL4{^RAwn$n*6a!K|_ zU&sEvT02w!@6*{oD}rl6eO*^(nTC`u2;#7sddT6@i#HWVkDO?%R=dPMsYPBTG9qH7 zh?w4<3z9F-m{`qSvU%65HEWc%u4^s7>->55(e`EH+1IOmN|^Z0M?f4^4N7oVDU z?rgia-Fnc7SqErNN>lKspd(A-nmGTbubbz~JQ6p5x_WMS@Xdb1w7Q+2zZyoJw<+ac zJwGJ%gKMdD9IK;h znKNg$w)!Qj?ai*+`)gh0n|;xHbEmB|Gjqa-<@)u$XU&aYTnt=%w#ppebN}dDk>p`F1rtibq&(FnZcbETwq7N_Dv+bz;nGSK&k1uXQSG&vY&JRBy>#rF;-SYe5+ZShh+nxJ){{HW8QK@%$`DWfOkM8G|{@HHNRQKBdezx@gzoWl{>#DoHZ@$0h$)#Mg`9~8r|8z9! zT6t{UvBUz2@)28Mbk7Ggllg_oX*`# zU#HB|`@1{XZhcow<&3}2ZoZ#aTDElm?kA6PHvf!an|*fvs?w7YNjilRcX;@&uCogH zy=dw3t0pPl=B_=l57+HjU*`BLsYHh7)Do@HF`(WKC5SH9*#&_Wq9pIZ=vMkI(MNpR2Uz z{QF6yW#f(3-ye3}5HCM^_d!-_YO10}NYjFVmFo`K&uL_y>bC2aabS$>k4e>e876r@ zmiyE^IO8*E4NGrpNSEOjy&!M?vnzL&JkR^M>6rQSnqsr>F}sdi%0HVEe)MX2y1ZW1 ztsJ}QpbT^}ob`<;BaxkG?*cT2bBkacBKr5lJ<^) zglIj~@@Q(5_58K)ki6KE)qVjS^L@_5>_|Lct+(zRi?O~)zrDTbefd(_=bb!ev+X@kC@m9mHoYowc;B(V zPb^$C1C`>Z*<71(`FHoeCxx%#=kI!x=N=eyXr89Wqyp0o>F*~mxVU0XOTC5Tk0rmB z?3^`2BBJua%*H33;@^7qES;!w@Ku)og`V!mT08jr->mY>RnwndH?vs0t0q%U+`oHg zWkhZ9x#OzQw{q+jgS@{|wJmFnrJH28)r>43)iP(vuFI>w_DoXs;?(_|dbTESW0`f? zQFrEvA#PgA%2Ussa9A9;9yZA@XvUkH zYyV|_4cYTjihE}8)m;mBnDlpV7w_-({(SdldAj%I;9EI%vq4J~v=vt;pH z$NA0b2RoM=xJ~I$+O*X$Yl_-#&6+@)<owH|q zN;&cBa(;JB*AUTaRd``CYjr}w)&Ps&Pfob}SZKvx^Pr9SYUmGUt@RQbe~w+9XMBDR zXBwBal=e~ehgu&0H=EvRU*FY!;^yq7&1Q+Uwn$w|DQ8+1)#zf6mG? zn|(fG!_7Yvo18dPdL<4=EEbWh@@f-mKe+UDl9r+QZpCSD=FRrrzO4V$iUm7X@t8<8 zul6$th{${+akJ3*YbA^IHxsF=-%ATjH!52eKWv@(;E-^-mT+%+SomDG>1T_p7A=i6 z-8%2%>*+Psg_-+yKe;6OanG0gb8U6~RzJV`SSi=H0O~qtCoN{QK+G;>`w&f;3zFFNI#<)Dm`l*y>()QdarlXO2FW zsTbwf8eNF=$cxzVp-sGL>eNQ&_b-<$&AdBFFXoc;Ju}zfBK&JE?*u;@R`QFm2ulW>wEB< z_7hLezB1n&?_1`%RH$UWilc!+V9eagN3AoRc6d#CWNh(6xU}!ihUaI>Z9bk5)}HFO z*wEmEQn&ft%Gd3?kxSus;bW$Lq~l~K0lmnPj?et-G< zqQBezzb*gQUOq4E_r^cJR_@*TMBrZRr_54to5qmGZ1(%LEds4lT&e=LTjy={D15my zZDnF^BP*bQ>V77L`Hh>m-I90E7L`|6xn|8vb#amy0wbH&j$FJ}Hb9(l} zbn}hh-bn7Q?G3;B`c-JDvA~)+Gc5#6^hCnud49W7tP;8N!@TM~k@__5xt+&OIV{~h zD>7mQ%U$=Iwk78?bF02zsM-8uUFExtX+cK+pDq0VZ0Gyc_vh6ZR?hkR&UN|nv(Ma( zZsh!1Ai$!!NMz}ekgG~AZC8RlOqG7V?XEo;fA^{VUfu1BqZVI_@DAj1EL^r^1<$%k ztutk-xu)6*Uk%;x>Ci-JwM+9OHyCU#{@QqG`ku$O#@yUfCpIoye{apb<&|Ie{m%P% z_m$<^o7eALt*L+c|J_boy^SWnSGC03TburNypdC<(|qsZ}Io0&0k;j{l=#|pGx2E4m-20cM9lax zY2vvvFV1H^wbh<_HFSB=@tNx3S3@s(o;E@+=LXHZPC;fZc{QrD@vDD|Qiu1## z&-?D(WgsRT_-Aj*`FRDV0i0q@t!_eV_7psLaXu&Y=|u7H)`_wQ8K)IUYi*y`#eKRH6Vfp zwqIltcdM*X7Fug_ckJBf>V)@p?nA*)uWEC}Lo`zEvVp@-t%#RZ3D)77+$nT5BDOgeYw=%ux5 z&YEuyo@`Ujp7&^jv0Hr9yX-qXPrsgf`@}%1>(TpE==PQB7oHl48f^he!BZBs39L=$ zUwT~8$Ml;k=W^5XvzIUFXRq7qW1I9~*)B~Jwo9RxA~jW*9St_6KWVdVO*wwho=bRr zhD^o7)+Z;9xFjyEjE^cLJ$H@c>vi5~*c7{8$}lMlX$sZ8XZHM^dAj_rt+RJ%$3^Va zZTJ3r^U}RJMQ{0>|GbHayOxu=B9be%#b@@}{v{x*Rf3l+Xb}ojUY4cd)uNzu**&>a zF-gPe#l|l`3O@e3Gwt3~gXQzuR*B6wk@8%=!%NG$tVe~}@t4Zq#Rf&^x!>>jaOBhh zmxURL@x2e$S+^0GTphb(PCLTI-=$<{-Nn?JSfS;Q0B`c3>hbd3j>#i?) zeEqE5pCW_u{qeQe=Uh_V{5-Lvzp84M@vem)Rf>RMY?=$FE05~2D6f>XPK`*Lb3en^_asLgR(@X4{7x%Ybdp=KC`;>1Zgs7x zjbHi?or#vKINkZ=fKTefR`o#Jb^CJj*#1AATlw+#=J#RmFR4zwc)4)j{OIhPUUQ;v< zATJ(M{>v9E*1lXkm9_U^=yD+y#|b7@+|0)6QtEMq3xxmuk;<=Bk*Iw3Xw@h0dmm&c zFTAl!q3I-Q@h`|Pvh z0Xb&({oh|(m&!HMDD{_yQ-I5B%k^>3?(Gg*B;st!mshq?ey`=%%QJ=Sq69_4Uuto% zHBA*3596BZw%qu$)349BKNo)sVUrTqJJa*WG~V#XqZju3zE^!H`?h`a?UU>Imc7~- zeRy5Z?j5p^^NQv?Ivsmc{PQg5k6-QT$~tx%mMy-m*>(1ryWx$Tee;jqDt>#hT5Dp8 z*Af+{z-QB@Z=D~#^Q1)fo2++PKUciUezNI_2i@}~eJc8Q0&aYi5B%Zx^O{NZ?qB8I$ro2Y&e(3T{@AT^mQy35`2@cQZ;6|C zt)~3k$|LdjrnN6!e||~jCzIu8pA~DH&3>;QeCg7xs#9m)E#^5CI_1cn$Eg>Mk7wx^ zUcI#YUXjkzv&F^Bf-i>#NJwa~%$+*bZTZFvH9~K02L4Unn7pXyuxxxm$|A#$!F314 zuZ47cDZ6-SY;~u5(qoK ze^m)hlm8KSK1{z8{Bu%#q4V;OCz$72w_kVbTlmRD`m(?J_pN)klt2ITY|?)F=iBvv zzMFJ1#Mjhlk4~k;qv_iV?Qe!2KNxW+?Q=y?IQ_Or8FGQaiWW z^!HBItp3xpGB^LU={ozY+S_X8rTy-&qpn-(S4I}c?LG6e;^p*dpI_bi^?BC&^O?SD zH-fg4T6r22FT5Pv%QBT&cJ9mGce2{k~*#G_P z=X0v>-0k~+(SKRts%)=$*Z$X6S6o_hbDHY2%J)&#^NaT#o87S^ciUBlR;Bh47$SMN`Je9pF5zpe4Z_9u)> zcSzo>@v>7B^f;E5bRy;Wfv$-Ux!xJ6cuY8W@L)oNAd3i-g@{0boCUuOmxTM0M!CF& z?bbUQbW=PgRBU+iC%NvHq2%Jizb9kb+I3QqTdOXe+9m3|DcNuF zrkn`2Nb^gsk#38ELf?BWS@kbZ=1k%7x%(BB{^&Y({hqO>J1^kQ*`?hsQ*-QQue!v< z<~mcxsDAN>1q}`@Y%DA?ToMu~9SamLI6djG&`E6KWRpm2;bCLqT{Gd3r}O>GhmT1V z+20C1|6)z}!IFb^x2L<&a% z-$dn02i!j}F-eGIBye(b2sj=LRJ7*w$w+eBymN)rucFE6!o3g6HrWNrl-~(V)tT2d ze{0b-&&3>%Latg1uUxg?xZGU4_)MWY>%&HCr5%qa%sCr!OGCX^MR|5}dEm9VI#Qj6 z24ZH1wqD?TwWX1rkB!N8%Lay4#%~`CSp;SzJdxnEX|`|TT=#&FN`l7yOv|Gu-O9`b z6tx@$4$2pjS3=(dOdz+0&*e+8U+oUGCVv&ED;B! zrX>_K94YMlU|7R6|G@GMZA^?|3LDxP1LL-A;nk}AX3l<(N2SF2XWE9?Bt4g>`5f|C{KL5aD*Vym)fI(J8 zqC%iUck<(To4?-_YEj7lzBAKg#gaESXLS3w8eUevf9_41$fioOppP3LK;xkQQHr|t z$+Z;$6Fb!9BxXG3<7-q9`Mi3s?(Cv{0WyUl4vNlYe21jUBm@1JLPc&1MNvwHR;rRCgtZ1yU% zyU#p3s(Ebh z$qftk=soe_`LpT5;Z2WYZc0s`IbVXGhlhv7isQloP7|5M9DJ-o77{KJ4<$J+eF!|= z-;HcvvO6rYEWps z|IIss$0rB!becGc&*1)kM)O&ufq2Z7rJQrhiY{%M{pa@XPr`|X0qd>`wa3m>&)!ue z)jUUQ|N9vRQsu|`Wep7sG!!m4GG|8=ln8O?JP_ITAR%BuGlz1?hDXbl!#k^2&3&=_ z$>(X7-XXea#oL~9=U(C8ym~|4kCLSv#fr1_r6b)WyRAdNo^x6C>itTKoY={hOPGyk6Hz3#oow{NzNOXi|ETmBs6etTpluej7w zK^F&ygNbbIY+@T4MBR@saA;zkb5QQxf@U5rKHKl-rqx&#T)uqB>vXSv)BJ6dy7osH zsmqOqvL?0U`wjr%T)AGT!Gzs)Mi)`iz9G?ON-xWt-tA@z%5 z@%uHYk|lRLtcy3ET++R(qw3=A8MQYrXynByu(_~?ZkpVaF1wnoxTK9yDkHH)jweiJ zE1TZ~(=7rEnpt}i3?6o_KH~al)tSj}gDh3ee{=*Fd@P^+EsW-Ll?gi?nnV zG=GO2n93r#X|sOE0!EfO?2J(b1urbh&MSOSI3U^cLCo#af!h<;yRZ9f^7HN+&XamO zZzx6<*+(C9b(S`U-`eE1n+zGBrx~;@5yDz!C>lAP~ zQ*-Jb%S_ob%X9voNtwr6{O;`0X}5ZoHJ`qvz&W`S1C-&?Bj|&A?tSnd? zjSU10P93;<#`U4q($4173k}p3Ssj`p*Q(EbJeMg69Vy!!`^8RV`Ko(c zJwpGkPdK;zwvpKX$IngFtyC_y=?R6h`X4?1hsJ zPGso~m{MQ=V7~i2)`9>Ig$Dr#elXPV-FIvdOgoXWpnP3g*)t`!^5&&)UYqr7KJRB# zR46JIcuT>tRB|o%kp=Pjr&9Az&RJD;T`BbI{#!>6{<``9pv=Dyk_smy%;ZFkzil>8 zJL!4M?(wVn9v0CCyIY#HoHs2<;Z6RS`r&Y@)P5iNza@^^7n~Rx*_1fWJg8x?YrEfU z-^|3z@rcDjWYYFtFD==+Ynw7nbW1dNPEP(gJxV@Q%Hq z{{Or9&#Djg-#mY$EWK&FLc=aH((SC$ z&+UH|p6>48WO=cG@p+>I!{fsrG}kyRY@BxTXWgQ587ces396OTLX~eaZ{|)bm~m!q z*we>b<*y6P}<~cXC1rc zvfq5}(|*&|zMJ&-Jhq^{eI4=+s%L9nAGf z612}R72M*=aq4{dn&}rD8aM=*TmlUG<{o6dQ!uK$kp9y3r>anC<@+pZ;_LT)YKe1 z(f-|^7N@^`e!fI-FSk_llN{CCt1|tpa_>ZN+ebOFYezUS>#j*;wBFHb%5nU(qBCQ= zsfogc4<9w>zuh@Ya>GTQmr^gAM3T*?KN4YA=~%yO1CNokRLWkC)z`u{zhBIvDl)S> zb@8fuogfc4nVhn1*8F|M_PP0`C;8@;S6_K9-x(2-+q~t}qKo3(wwC;VYIwQ4BR(lO zH1Mzoa45)_wz4SqJh*U3$jCLqT!%SpR_b0J_3nagJiAjSpPW$eeSymK+XuTYZ?oEc z#O<88)zb}RbIWV;bXIPdgbMUhW={#ipBEz+L5o2SR)%JB)*If=3_v_M$ZhNyb zV3YXcvZ9mgyh0+kZOVDE=!uhnc#3^+=zEtXtL{m+3&gk_PifH7n#9xiH%EMS&*b75 zlcG&2SF4sk($W!S;o*@A5O}eGx%tpW=>-Qk?>I8G^PP*((Jb#V;6C)mM~$`9QC#=v z$#*w(-3p&hkW`O1+2VLhA$N+NlG4%%cUP_|R|yJzKdX7?<3DZ36ebluZ&X;&rM$g8 z$<2`8OSx#bZn?TEU+e56RZ1!b1{x0p6djumY&;#H&~%W2x#vPr(Yg6={@k9qI?~E; z>xz9Hw@mdm``%1nz9Vh3-S0A{iKXf%J&uarQaE}?R1?xD`+i`~{i5S6w&bhPQ?Cd(%S*aiIz2U^d&dl1*q|4v3*zACq5X*@P3)z`j z4=>>Ub8phZhuwc4KK=3R!S%(tZt`8?$>zV`KAC;dX+m9^&$gTh(=CQ~dc~?{-VG{S z^-4By)vH>g<2}_(dUu3fSsX)DI1DFj-oNwg{n+P!Q<4qSl1~LFI5IUd37$*fJQaA_ z;4p`>#unSKXWF5xUp^UEVp{=kvO`lq`felsFzV9dS6AKD{>f!^;;`zG4|P1|+r>GRVJ5@(LKr>snP zcheyK>V__+NoSiDba7}wx@5_P%V%)2h>8X}it=_$=>F3^U+@2u<9AmDGnUQFWMORP z6jHG`AbZE*nFnWz#KKlFqb~-BTxQ)ovuEawr;1abs}~yOwQriATUK7MT!N1yZO3KT zpBb{#*PeUE*X=efu&Ik9^y@l}(61eL42~Cyv$L>>{JN?C>y!I@llmW?ha4Hk`xhib)hE3NbNp5NZ9S!O+@-+ycOlSeBRDugqdOtiYg z{KS7Ht$gk+Y9r3ROGACGi>f%J$o>7~-2W-fmV8Vc?;0$&T#UQBG=87d|DWfl&k#(! zc!24efTH91W{W*hY1aBqKUFnh&)nVe#c(*pC>-#IHPo^m%! z+D1I2(@R{H>*R@}-PPhtx@Vo4Y#I8s&t=uC!k@OnF-HuK&+QNUbkVBnQ~lSgAN=dK z{aUVe_PxG>Lkq|92@l!SA`b9$KHl2EDk7nHh;xpB+pWgGJ|EMUpPlmOer@dwb$Rvh ziASAoX=n*eDP4UuFi}ud{MQo)!*aQvliwx>hrah)vPy1xv*m+luihQ#PPKV|=%`(_ za(vwR{~sp1PHtcjWMU~ev7wcZc`t20*< zjnqjNHql_}UeT?w=)peCebT-zO;sT?yY7E6OJBa~-dvARTchK5d0#TUn{hg%Vz2(* zpEq;wcM>Yqbuu68~6eRA94z|i+0OIFFvELbn{{lKb=W?c_!H>EE> zTmSL$(f79fm0BIm%}&f*Y}_6TCM5D(SDd>Ts4+pofn8WaqVmyIm-rJ$*>3YL6_HNU z)?20G>=M$cwd%~#;*XluT3Z~0KE~XM$>ZBLd(Nt=vL}-zMbaW1T38sPG8Q&YOrCNekyDt*;4p*nJV~L&#)&tB3PtaK z+4idB>Z=)D4GoXe&a@gvniYL~v?eO_97R9(}C`?Fbu>E2nH1)EWZ%6;+ zsc%*qq`zL&bF;g$>`sT5;j$;e-yTWmIR%K!-26U$@v3{KOIOMDHb3sLein2_v|meU z%Av$9@q6UrbGz6kE{gHF6MHDTg4tGMi@*Ve#^MqonS_Sy7mChpl3XVpEOPJM?BChF zDd$LU4$tPLZ+7n3*?h*$$o#nDg20d+(x-FtZ}zULx;|x9Rg4m!g-UU|T8G8X8=EHX zcK&sJ|GW6Nf89*q_GYJ_QBZhbBam@Wp}8=o>V`9a^oztt2Zg3Q*deGW(7Gb;nc{=K znd0s(3Xk3`tuX9*>=)3f<^1XOzMSWiK}^8fSt z(%<#J-mm+2{Qrje>$%vpY)&LRxNv|;gk{d-NeTSbGZGt^zbIS~oU+wuCXcHit7xF$ zJI?Qmgha~E{E0JUUo@%bY(o3V;Dr*QU(bPThzW2E5j-O!ARrjptJU|IW#Wo`S*d?B zkNaEQ;^1p#m(?)Y&}3>NBis3u8SGQPDqYY#&B3dYVvw<* zm37X6NsEmSu?VNUNNnItJ8@xC&X2&u-2ziXPPB0}ttisx;JZ2FZ16$G^iw>W{cmng z2#N_iw7aNH_dsF-^<=wNJ?*c>L z$1GVT*WSRf|EW!Z|IxFZT83GRfBm+9HE-?XUEPigMD92^{*;zflTc_bDv^qCYG9D{ znUL6ahWVk%r#+m32Ks(_D$3&eZJpxDC+yVBmpAM@fAjgHl@odlABSAsExvNqcYhW} zMwW;9E4p^(|GMN-xvkIs?~dOuyYp^(ihG>oWMboEWMUEUNC-%1V|73BkdMV`M~kS- z4M(;{Cb!10*?KzCn$LDlINO!@F3soW@<&XLhTrGRG)msMvtquk`0`cvn3t}SoA_b7 zOvs6&dS;q4YfF|H{@8TcRawztvB*Qm77kV!8MhrR(tW3Sq%9hn8V+!#%s8+xLHT;8 z@1lvDQ!BQG@un!x6jzsironQwC&c4f?WV+UhjR|U3Ay@vVaU~L;bxYn^B9WwALj3T zEYQ@IbS$r=UG2onRfR0&QLK!Ntc?t8>@zI&*p&H=L;_A+I4H!E=J91__so+8@ugM! zIATQ(9FQq@5jZmErj2y+GlSb@U*2Xs3%Ob?v~tyVHI2YhpENx#CZ#*Y1<&Vov3xx0 zt^JdN13g9wYMwe>hF-Q**j0!7MOU1xTvyZ zHkkxUU)A7W^y;LRm7V(jm#4Si=l}mg<b;eG57c$IR$@>Qp%2IC<0Gl;DM{?rrx7-D{qrq+5c$qv=lSxI2WyY z^|w3ZYIQJ=AiJPr#e!9a9>OLXzRHV)T*TJ0ObyvH|J2V+lh4<$f3DKJoEI0{Z!Tn&iDs)_1-h(ywYNxs#iihgqifTmKmkF4rJX`8iCV#Z>aja^ zd2iqSrQQBrP~-b5yG%>_Mh-?1F@r-ar!H$3@QQC}Hl6c9;jrmv-ui8yw`ZQ4H_0?P zGc-SM`RC8uI_m1plgMr(%D`OlA2hIqxN_?y0js-R?4{S}SA1f<=e+ zZo4R9GW+}DubX4iaM0$G5jzPRDg^@0D@;|LpCLLsd_W!B-^Dk@O;<`fH`qIf}d%tdG zJvwLi!Lr3OgG2juf%)@@d;NXcHzeD9h*dBi}n?L`E;&gqzOS5-x zvGUwsHTzzkx6%7_XNk?rdrAy7{?mQ_V*0e6yEN zeSiJatCWeqch0=_+_5Ql56YA;Up3EZ$*OzC%wC^Q70NboGx0 zHxqTzR~KyKI(jzLZ`vs(hX)5)lwB&gdH+mNPc}Hj6cx~6aG1qdL!H~QS7}m=-LDn9 z|9t!KT)%y~`OmLvt!goEKIP_XS*+-=U$AN(sLO0z{!jU#W8oPCRvXp(vS;p!_bxeP za5GP5wV$7u;PgzrXAKPpRnL5o+|wZZLnLZm&mpF&jt2n=O+1_}>!!MWpS=I3$iz+h zHMO?!?@y)0>xoyIOFghLC|*(WbiwxL}vPvNkXk^iv;2Q23}w()QZ^%xvFP*(Fdt7_}n?X^E2 zz5Vhx*Xm5&=F{yr*L`0p!hWal_{vqwMOLnIPrRVP&(e~l_aO3Hdy<<#;bIa0o6DbE zep7jH#-Dc+-u*f`XThJgrb7(u2J?EH9~{)2bAZdt;1GkdPtDfdJH0mYwpUh_PB+_| z%l!1X3aeul5}CgB(9wnp`|iP zpBmIaqg`n*rYomsi+@q&=6)z2O%JZQ7zpOa*# z?tQbB{pcTqS=M|?9ZHAxel;o)ba7bFYHZOc7Ii|wW+od~OfzWyQfz}tmfYIchhA#g zS$DopwTNwVUF@j3qQqBV;i|rtpwRx)h2>s~s^!is?4p{_9_L6c$=$+v%j{u^=)AdR zt4mYnOA2djx!}~mCnDtU_E6@Uf`GySAtjF2&u+TE?cO?X?U%)y({5&6f0ZSed_h2k z#ieDH72m{FRsZkYY2MM%(BN#S|E!_edVeTSqrj5flB+LYW)^R{q^6}eg~eEe!={4m zyuzm`=N=^QU}{#?S!j^AbIz^wv+l_g*C|-KnHGoUOY0sjHeB^8LnHL7h760iqstx5 zqh|{Wp4)RdiR=oS#vQxvONpePe-oRG^N(I8CN|?aj;Di#BAO5LoKN6ozFqk5Q9-%o zJp1gpIcBqct4a;|iX-)$cvcjhzY7V{-_QT>va_3a&9r{^r)~CPrCgEFNR!09Jg@cU zl_cJ5$%%-+ab6&SmC5!^BD1Z34!5w$gM20Go@Tp&eWA#Z}tyRXlgpda(zOD z7jw)ZMwxF0hni|n-MnS?=h5uLPtR7A3EA1@pZA~j=)t_M=Sdu)r7ECQC39!vqqZ5= z3QgAESvmvP?6?!m*=QypS}y!v5+@$dkk8R8$*%NzoKf7?e z`St0O()@Lg)6dVYnS5+x%6HA3lJ7#UPV5M|y0}1HI_Qj}L+Bm`K8rlJ>m3daW?t7{ ztqK**+rCrslu?GH&aa*`HXRq7m=6gX2h4cDly~yBje(kU`fdKFXLF^}{H_&VeR4Tf z!|z<$yO66F16IA-IHS_gtI$D_C1l6*37hAxf4u0jnODQ4v$5~a-ZVXxwX*Q$16CO( z4wDNFpQl_CP;hMGF`oT*lflltJLkUV+bMGTXoyAZ3-#xPciBV>m#^w`U$RQB`@XT` z&gV@|0UH|{oTb0k$R=NjsX3R^zGwECyRNfCB-EoT8aa8=3}!rF(Dh%|D3-Q^FG#j#2c)cr#Vw2e$UKve(m%BHaCiI-_Tk-@p;b8h_YXgOzyp7^3zzwrf2?ZS~5JrO2-8-68Da5|}va?^oY{?e^~k+MXQE zy(#GIadh%e1L<}qR<#=q2ZgL|9N?bk)5tP0^Vav5KP$IugzlVH+N4idwX*DxIxVKl>$o|1H0p<+VHS zKK~ma*1f^<$=wO>w*9;?Jt^+Y@09_e#}$J@-51RGKDk|Ceg3nZKTc}-Y!-bux&KqY z{pb0$YUj_*p0Zc|bg{OMY`s#h5+5)PfU+rMYly*uY-*UsC_zO++nQQyh@GBzg8ssf8f zj&qY|K48kT@HzZ+k5%sfgZ5R|{GV1${+=wEZhgi~?fkQwwdc%KwcSEx`#nNsdxK=2 z-^|?nrm5rjisz>}`r0@y=a|nfk?2-X=eD)awX3~W_b;%xYSHV|31QE6yUbhA za9Av_(u<3gXZenvqx)+tb;3X1+`LVm`;f)-!vV`umMUn4T%Fh%a`j??K+UYTZ_n1~ znoR7zy+!i$S;hZ9E+4&n@BY1|&hh`Ys~i5QVbxFIUjI;Cpi+vF>vMovrr6Xs)6E~h z3#j{Y^U?3^k1eLx#y?95+as}~`+*I9gX#B zW*5qN$Xc?%MzXOfA^7DzN*i2$*R6i4ko5m zLM)DV_T)bOx%tOO_qQjt7VMHe#ni~a$Hh8jc_C9{o8^gx=UsID^tRnxdN^X)$)Ha$ zdqmD3m0iB7&u7W1z8*)BS#E27*j{;`Shp|BuIgfK(LENP*@2C0Y%>--%D^&l3Zph1sC@$ z-dkrIbN}qo9KE_1r}v%z8?s_mvgpcHixr&$LJAJXhQwYyD0_Ubi1^bI$*|LH8U_bA zyfYL(-;fbf$(U#`d-@^q`1f@`U;j;;pS1e6^S-;w5{*{9>Tm^R0InkbLdTd;=PLqN z48@O~y!2+ddhZGY>DVS&i5i~eHrse?&unl!_H@_oeY5}ndi^hJ_B*qkxi{Yw*-M3% z-kGw>ice`p!v|@-CM~5q!s6a`XQypG>YA{yqp|5AYmC!j&;lIW+qvB}Urr|ZJiRde zQQh{_?TW#n?*5>bg;qyLcf*Q1#pS2%&Q9w(f3(Q($l1A<+gzVC9^hI3u<5wi!bZXO z%TNEjdUVU1Eu6bM75h}@3H z@9t=Cy1D#q-n{hp$0z+3@{fveYT=u9;b52g1jmKFj_dQD>+iSjxyip+^mDZZNdIx4 zm8+JkHQ6}0y12Gf*YV4oshRipnc3H5xnR$BNvhc<&O5yMYQH~oS*7XM zWVvNQUAr3tLXZ2eT(w;JkZt9IPYi*A5AB6Iw9;gL71dgEAMso0&|)0n)Mk69>GO&* zgM-CCbmq*RGp{XAusiu(-n#~l(9$ncR#kZ^HE}3vfD8XT6Ir@Z>J_}%C8_3JPxj80%G-& zuCK6pFpp!^BBe!r2E9w=KV7{$WjPZQE6cfu&p%Xu5SE+W;Ka;0>$Cr^`E~n#TwLD$ z{JfQM-RZfjtctusZDj>RTth=LqM{rWGQaC&>ypwkka8 zkltD0_w0nl?L@8o^=bQGA5>^M%(>?QXNf=pKj)u6DIXt28uQ#d8gG-&SiF2y-@Kqu z{}X}}1xz$lchBtp;K0JT-~E(p%Qjw)+W1+1se*|uJd9HF+*%~JU0}Z3{j^9nh)hewf<)3~+L{6b}Im#&&O;XxmV*7ty^0vwE?g$3;8qM6p2(v0WR%y*Z3 zf5l+TpZ9Qm!eQYZP24jQ8#p_9*Gw>52AEiBM((whks}(uG*{>>y z?;Nw>MF);cr3-UKrb}$e+>%|o^TN8TW~;jH6*nhcI4s9z;qYjq<($JzTvJ|e-+eYW z>-Giy$~ih_M^-qtuCmGlg~7WWmOD6X<|ny^Wx2Tu(ZzZJGyuVn4I@WPD(?nOmB zO-%>c_yQ_IB>5&(CRE(I`{nn+Uxxg_dPf}(u2{8rdC1ktMaN~!pPRcdxbF~eT61k< zY}9b<(pYW+pB!PByvFhTX@F4o3eNmb2Fdc!l!|pe?;av zGQG~{zrXk0`)xO4gT56Sl|M@X#ftgTRr97e822odG-27rqfY+UK7LWL zslK*m+QQrtAG0r#Y6343ShMA#8~h(U7g%=t?lS$u8N2Q7=RV)3|2H7WXw|D1uB%>o zc6Li2)p&N0_2B!D2hPmaNLN4m($mJ0b9L!vyH54hH_8%koju)eB&6unaA0wffJL*o z!Ocy(Z=czI`_tdo|H>wRYqv>XyvmNnE7VrA*!=jJyLVz`%s*Ev?O1pyNighnMcu7= z^N;k;E1zF~YpvMAGpw@}5A#UQaaS#1-!7n7_laG8?p(9@`n~l(t8V06p2M?zl^usy zsIBS#^cj!&4T>3AiqE&Iy;{V*T>b3k%g-K*zjc@2s{UGHwu68~0z0#c+*Ow88yJs2 zllVEg{^z4lMSniccD5H;_3H4#kgJo6dAbCfOnR*>I5_g2aTt2!Yhq?#|8asZt zFQB?b$?*thZ*tr+NggGOJ58TGgj8NQDtf&!@F*)13Og+jvSJl~dr+wV*`3e(x)*SH zT)E&@dc2!^$|J|rtr@e_c034scGH!Ghwa9Jw&TJNB-bQxvNEl{S~g!rL!qlHAXJ`X z>8g3NX3p-Oy}QzDhjQaO?$@aWp9Pj=GP&uc-SkS7(Mh=FBKIbdiT&|JmWV^e5r-I9 z^WSg#Y%pa`Y-mX9s$UK+t6r_N+_7`@vNwh^xpuU-rK`twyb@S6c?^2Q%kS4zR}`C`+5Gg;r-oI(0yIKPWxNWD&C8A1%b&yrXtwUW zF=divcUbu9h$6=KacdkD56aCs{`kQJ#pw?}i2wih?NQpkee?L8!=_58vIs5&m$g=W z&*p8eex3Ht@1)q4%xKes&&w`O-h88US47*osZI{c{4zXMa_4y@nU>r>`|W()&iZ1@ zoNvWEm$n9REn=FH_$=gVVRy*Yi!&x~^%RTMcy@G6X2g6K?IRtFPKSxbilo%uIwxtP z%*Vx8C3l{MQ%UAoVSVlNZ@)zXco%7@?$-Epz_nocs=k>)p~q8Z8;U=yCnj zOV7)?B{$8w-DJ(n5AKmj@tELHX(Q_*k$5}a|8GideA0ol-i3ibd0keldb~X3s-fml z{#w7AULPyVjPs=`%cSfpuN^rt#cOwfc%hGrLqZd0%kj-kd}(cko9B9O{A+ji=I?`D zf=q{)jqj{nrMx`k>O@KR+ixxzMB7hUd7dj*c-rY1#d61c6x~iH@NpVhoUvIYdZaFW zxAVEy%5QZVha+4H9SV-0S-EPl_{vp}H{X69zP^3i#B~$%1Sj9Ln3{N{aLeiLx}7<` zDlz?UxfjPaHhx$!?E+8ou3ht|y?%j{|EG&0RhJJPI z2)X*PaN>d`Df#-#)ZVGw`22ZUW~$7e0*5fW{+~}3^S{6B|L>}t+a|}wB6pJ0CceI8 z(#P%MhwJ7iDX&V(o2Pkn&=%zQ4R4|9=0keeZwI5q=!fW~e*e_i~H= zKFgZludR19Y8S}$Hyl~_d+&YgOff}O<6>iT<@EC9tL#J;zTTBNYsISMMOxoyx$Sa& zvrC{!DvU|MU9p!wJEbk!x=iYUPR_efmzR_RHqz zA42~cj!#J7XG)*{=gAv&`=~i6>a0(*IN4?-p8RckfWi1pqSW#^M(-XR z(MU6D4i1&?@d%ZbFF)T}y|luxE3j*J<>idaFY9#n|GE0_?9&eyyN~+Y#oxPoPQT8^ ziT~X1)DK*49tMv2mS1ZSY!U}&Hs%gp6}o`$#A z|9+phzqWFMlEDEsw|nci7ckqtN#HM*`n2!7>TWHC&p9Di**)>RE<72Z&IY* zw}v^V=ESi^g8`M3T5E9uSKH$1ofC8zg5cTZFFjkucf z&u32`E}Ok=w+YWS`;=9$oEL{&Ej)em*vcn4ODCKyE-MaUN!-X0yL$Td&-?$$uWLWM zzxlsh+P!YsoCkdG9tiE*UtRq5b-e7l^_O2?Km7LXmb=U6^sf4K!DZE}h@Fq$S^hS7 zR;l-F+GhXa%qFwI&?9HUmpi&lTfME5D_UaV(^#z!wlN2!ceI)RIJ#OtzwYPhzhCcu z`TPB^`F**(_m?iDuX@ESvU1hqX91h|ooA}~a|?57U0YQad*bG;u<-638K!#THa8AR zzVA8ATEiP&zS6pcA3np68~|F1^{wZ`9TfBpOYv0MLp z`1Q$>p9oKIih{&{Ntd;0ocg<2t3*|md0kDskyJmdV$Uy7ydZ+9(lUV9U z{gb0fnwd>?IC_BCEFU^g$|wZ8G^)%pCozfa%2E8Dl%yZ&eQ?)`s`-o5(OCA9X0 zQfTR&JDRPN&Tg7**z+{cdVj^evfLTR_S`+EdHebN^1sXC_wH!c{r}T#N2~Xa2JamW z(l?y)o&R^o-}(1*ety|+8@_Mh`)~bws&8g)UaaW{GjXYi|IOes1vbx<>++wApWk)) zvYYe0H)U^4UoT8K|L%TW`Hp=v zy~>Qui&wpJ7F)S$ak|^dd6W8+3zb<4iznQ*i;d~YopN~HpV#(#f8GD{UhmN>?uf(x z<*fewFS2lGWR5u$ZQ;NledEBtg5CeW#^=ZHlj3hLsT92$n^dQt`nr8mTC`sCF0&seJ$oFxe?Rs8WnN$P^ZdW3 zsxBNC4%$DhPix!XcKyKzwzz|$G2hCoPcO{8Rj5;Z?tabH`kzn#eLcG4?$X_7ZO*2# ziU)lv)X}_cFlFEQ-?e7Nt6njSuUy6N=#}r^K_v$LuzX8kk}3p}*S(mJ?%Czd&0NcupWVFq+pn}= zzi$6M`?h4e=kB{PUDJK+r~NfMyYkHD{PNFV&u+P|zUo!E(~?zo0-tl*_t{u~4k}>( zo-@N)ZE4UMeZA%Je{P`~Fa>e}CL+!=+wTxdEd_kQNOeEr}5 zZ`c2Rw*PnizI$&kJv6wVcd2gvYz_JPJwN_jep)4aw|3UqGp;kztz|wLh#2dqJZvuvK&+Vdo=#dfBpa0^ZywXH ze=UQ=t@ z_u9hu=_|dt^Y2-mnY=V-cJ8l7r~m$c{lE6(+48?HGxzNKmZ_H}*L;F6b-2VSfD>u{P182(H zYi>M0efs04EScj*eyQ_#14NC_-~8#HDfRcu*{u;ePEbSC%Ga%1-rc=%M$3Y3*Mi6I^6uqaGI)}?Y08wfAg+dwQ7~T vgmL%$+HW`Wwl7|_YSphsOKa=j{~5Vh*9evAi(F)2U|{fc^>bP0l+XkKB!J4S literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc b/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc index 6b50449f072..2ab7fe2182d 100644 --- a/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc +++ b/doc/qtdesignstudio/examples/doc/rainSnowParticles.qdoc @@ -26,8 +26,9 @@ /*! \page rain-snow-particle-effect.html \ingroup gstutorials + \sa Particles - \title Rain and Snow Effect + \title Particle System: Rain and Snow Effect \brief Illustrates how to create a rain and snow effect with the \QDS particle system. diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-particles.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-particles.qdoc index 6f768c6bd24..12638642ffe 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-particles.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-particles.qdoc @@ -29,7 +29,6 @@ \page studio-3d-particles.html \previouspage studio-3d-loader-3d.html \nextpage studio-3d-particle-system.html - \title Particles A \e {particle system} enables you to use sprites, 3D models, or images to @@ -96,144 +95,7 @@ particle instance in \uicontrol Navigator. \endlist - Add instances of other components according to your use case. The following - section describes how to modify particle system component property values by - using the simulation of fire as an example. - - \section1 Example: Fire - - \image studio-3d-particles-fire.gif "Fire simulated by using particles" - - In this section, we explore using particle system components and modifying - their property values, such as particle source images and their color, life - span, and fading effects, to simulate fire. - - You can download the completed project from - \l {https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/FireParticles}{here}. - - We will need the following \l{Assets}{assets}: - - \list - \li Two images of flames: \e flame_01.png and \e flame_03.png - \li An image of smoke: \e smoke_01.png - \endlist - - \image studio-3d-particles-fire-assets.png "The assets in Assets" - - We will also need instances of the following components: - - \list - \li \l {Particle System} (one instance) - \li \l {Sprite Particle} (four instances) - \li \l {Emitter} (four instances) - \li \l {Vector Direction} (four instances) - \li \l {Textures}{Texture} (four instances) - \endlist - - We start by creating a \l{Creating a Project}{Qt Quick 3D Application} - project and adding the assets to it. We then follow the instructions above - to add the \uicontrol {Particle System} component instance, which provides - us with our first \uicontrol Emitter, \uicontrol {Sprite Particle}, and - \uicontrol {Vector Direction} instances. - - We add a \uicontrol Texture component instance with \e flame_01.png as the - source, and then add the texture as the sprite to use for the sprite - particle. We now have all the component instances we need for our first - emitter. To keep all the component instances together, we drag-and-drop the - sprite particle instance to the emitter instance in \uicontrol Navigator. - - \image studio-3d-particles-fire-emitter1.png "First emitter in fire example in Navigator" - - We need more than one particle to realistically simulate a fire, so we will - add three more emitter instances to the particle system. We can copy-paste - the first instance in \uicontrol Navigator, and just modify two of the - texture instances to use \e flame_03.png as the source and one of them to - use \e smoke_01.png as the source. We use three different flame particles - to be able to layer them and to hide the fact that two of them actually use - the same texture. - - \image studio-3d-particles-fire-components.png "Fire particle system component instances in Navigator" - - We can now start playing with the particle system component properties to - achieve the artistic effect that we want. To see how the changes in property - values affect the simulation, we will open the live preview by selecting - \inlineimage icons/live_preview.png - on the main toolbar (or by pressing \key {Alt+P}). - - First, we will specify property values for the \uicontrol {Particle System} - component. We want to spawn some particles before the simulation starts, so - that the fire will be roaring at start. To achieve this, we set the value of - \uicontrol Properties > \uicontrol {Particle System} > - \uicontrol {Start Time} to \e 2000 milliseconds. We will - use the default values for the other properties. - - \image studio-3d-particles-fire-properties-particle-system.png "Particle System properties" - - Then, we will specify how individual particles are spawned. We set the - value of \uicontrol Properties > \uicontrol {Particle Emitter} > - \uicontrol {Emit rate} to \e 40.00 for the flame particles and \e 20.00 - for the smoke particle, because we want to have more flames than smoke. - - \image studio-3d-particles-fire-properties-particle-emitter.png "Particle Emitter properties" - - To increase the visibility of the smoke at the top, we set the value of - \uicontrol {Life span} to \e 1200 milliseconds for the smoke particles - and \e 900, \e 1000, and \e 600 milliseconds for the flame particles. - Further, we set \uicontrol {Life span variation} to \e 100, \e 200, and - \e 300 for the flame particles to have some of them expire sooner than - others. - - To scale the particles during their lifespan, we set - \uicontrol {Particle scale} to \e 2.00 for all particles and - \uicontrol {Particle end scale} to \e 5.00 for the flame - particles and to \e 6.00 for the smoke particles. - - We can now modify the appearance of the particles by selecting the - \e spriteParticle in \uicontrol Navigator and then setting their color in - \uicontrol Properties > \uicontrol Particle. We select transparent yellow, - orange, and transparent gray in \uicontrol Color and set values for - \uicontrol {Color variation} to use slightly different colors for the - individual particles. - - We can also try changing the \uicontrol{Blend Mode} for the particle to get - a more realistic fire effect. - - \image studio-3d-particles-fire-properties-particle.png "Particle properties" - - We set \uicontrol {Fade in effect} and \uicontrol {Fade out effect} values - to \uicontrol FadeOpacity to change particle opacity between 0 and 1 over - the time specified in milliseconds in \uicontrol {Fade in duration} and - \uicontrol {Fade out duration}. Fading duration is calculated into the - particle lifespan, and therefore the smoke particles are actually never - fully visible with our settings. - - To specify that the particle texture should always be aligned face towards - the screen, we enable \uicontrol Properties > \uicontrol {Sprite Particle} > - \uicontrol Billboard for all the particle component instances. - - \image studio-3d-particles-fire-properties-sprite-particle.png "Sprite Particle properties" - - In \uicontrol{Particle Rotation}, we also need to set \uicontrol Rotation - and \uicontrol{Velocity Variation} for all emitters to 0. - - \image studio-3d-particles-fire-properties-rotation.png "Emitter rotation properties" - - Finally, we will specify the direction in which the particles move by - modifying the property values of the \uicontrol {Vector Direction} component - instances in \uicontrol Properties > \uicontrol {Particle Vector Direction}. - - In \uicontrol Direction, we set \uicontrol Y to \e 100.00 to make particles - move \e up, and \uicontrol Z to \e -100.00 to make them move in the - direction opposite to the target vector. We set the \uicontrol Direction - value to \e -50.00 for one of the flame particles and to \e -80.00 for the - smoke particle. - - \image studio-3d-particles-fire-properties-vector-direction.png "Vector Direction properties" - - We set the \uicontrol {Direction Variation} values for the different - vector direction instances to \e 10.00, \e 8.00, and \e 12.00 to make some - flames spread wider than others. You can try different values until you - get the effect you want. + Add instances of other components according to your use case. \section1 Performance Considerations @@ -344,6 +206,13 @@ \li Wander \li Applies random wave curves to particles. \endtable + + \section1 Particle System Tutorials + + \list + \li \l{Particle System: Fire Effect} + \li \l{Particle System: Rain and Snow Effect} + \endlist */ /*!