From 7566292157d6d183aefedabd0e5778f045702f91 Mon Sep 17 00:00:00 2001 From: Justin <52604018+hiimjustin000@users.noreply.github.com> Date: Fri, 1 Nov 2024 18:52:50 +0000 Subject: [PATCH 001/119] yeah... --- loader/include/Geode/utils/web.hpp | 9 +++++++++ loader/src/utils/web.cpp | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/loader/include/Geode/utils/web.hpp b/loader/include/Geode/utils/web.hpp index de421693..98cded4f 100644 --- a/loader/include/Geode/utils/web.hpp +++ b/loader/include/Geode/utils/web.hpp @@ -203,6 +203,15 @@ namespace geode::utils::web { */ WebRequest& followRedirects(bool enabled); + /** + * Enables or disables ignoring the content length header. + * The default is false. + * + * @param enabled + * @return WebRequest& + */ + WebRequest& ignoreContentLength(bool enabled); + /** * Sets the Certificate Authority (CA) bundle content. * Defaults to not sending a CA bundle. diff --git a/loader/src/utils/web.cpp b/loader/src/utils/web.cpp index 02028859..aadd10b9 100644 --- a/loader/src/utils/web.cpp +++ b/loader/src/utils/web.cpp @@ -202,6 +202,7 @@ public: bool m_certVerification = true; bool m_transferBody = true; bool m_followRedirects = true; + bool m_ignoreContentLength = false; std::string m_CABundleContent; ProxyOpts m_proxyOpts = {}; HttpVersion m_httpVersion = HttpVersion::DEFAULT; @@ -382,6 +383,9 @@ WebTask WebRequest::send(std::string_view method, std::string_view url) { // Follow request through 3xx responses curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, impl->m_followRedirects ? 1L : 0L); + // Ignore content length + curl_easy_setopt(curl, CURLOPT_IGNORE_CONTENT_LENGTH, impl->m_ignoreContentLength ? 1L : 0L); + // Track progress curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0); @@ -556,6 +560,11 @@ WebRequest& WebRequest::followRedirects(bool enabled) { return *this; } +WebRequest& WebRequest::ignoreContentLength(bool enabled) { + m_impl->m_ignoreContentLength = enabled; + return *this; +} + WebRequest& WebRequest::CABundleContent(std::string_view content) { m_impl->m_CABundleContent = content; return *this; From 50ab4ebed7b6477f3266cd98e25c2c4c06a74ac1 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 4 Nov 2024 20:14:23 +0300 Subject: [PATCH 002/119] removing deprecated things, part 1 (does not compile) --- loader/include/Geode/Loader.hpp | 2 +- loader/include/Geode/UI.hpp | 3 +- .../include/Geode/cocos/base_nodes/CCNode.h | 37 +- loader/include/Geode/cocos/include/cocos2d.h | 1 - loader/include/Geode/loader/Mod.hpp | 50 - loader/include/Geode/loader/ModMetadata.hpp | 20 - loader/include/Geode/loader/Setting.hpp | 324 ------- loader/include/Geode/loader/SettingEvent.hpp | 63 -- loader/include/Geode/loader/SettingNode.hpp | 32 - loader/include/Geode/loader/SettingV3.hpp | 68 +- loader/include/Geode/ui/GeodeUI.hpp | 5 - loader/include/Geode/ui/InputNode.hpp | 41 - .../Geode/{cocos/base_nodes => ui}/Layout.hpp | 878 +++++++++--------- loader/include/Geode/ui/Popup.hpp | 15 +- .../{cocos/base_nodes => ui}/SpacerNode.hpp | 16 +- loader/include/Geode/utils/JsonValidation.hpp | 220 ----- loader/include/Geode/utils/VersionInfo.hpp | 2 - loader/include/Geode/utils/cocos.hpp | 36 - loader/include/Geode/utils/general.hpp | 9 - loader/src/cocos2d-ext/AxisLayout.cpp | 8 - loader/src/hooks/GeodeNodeMetadata.cpp | 18 - loader/src/load.cpp | 4 +- loader/src/loader/Mod.cpp | 21 - loader/src/loader/ModMetadataImpl.cpp | 12 - loader/src/loader/ModSettingsManager.cpp | 42 - loader/src/loader/Setting.cpp | 498 ---------- loader/src/loader/SettingNode.cpp | 25 - loader/src/loader/SettingNodeV3.cpp | 1 - loader/src/loader/SettingNodeV3.hpp | 23 - loader/src/loader/SettingV3.cpp | 123 +-- loader/src/loader/updater.cpp | 12 +- loader/src/server/Server.cpp | 24 +- loader/src/server/Server.hpp | 1 - loader/src/ui/mods/GeodeStyle.cpp | 1 - loader/src/ui/mods/list/ModDeveloperItem.cpp | 2 +- loader/src/ui/mods/list/ModDeveloperList.cpp | 2 +- loader/src/ui/mods/list/ModProblemItem.cpp | 2 +- loader/src/ui/mods/list/ModProblemList.cpp | 2 +- loader/src/ui/mods/popups/ModErrorPopup.cpp | 2 +- .../src/ui/mods/settings/GeodeSettingNode.cpp | 558 ----------- .../src/ui/mods/settings/GeodeSettingNode.hpp | 361 ------- .../src/ui/mods/settings/ModSettingsPopup.cpp | 1 - loader/src/ui/nodes/InputNode.cpp | 105 --- loader/src/ui/nodes/MDTextArea.cpp | 18 +- loader/test/dependency/main.cpp | 198 ++-- 45 files changed, 580 insertions(+), 3306 deletions(-) delete mode 100644 loader/include/Geode/loader/Setting.hpp delete mode 100644 loader/include/Geode/loader/SettingEvent.hpp delete mode 100644 loader/include/Geode/loader/SettingNode.hpp delete mode 100644 loader/include/Geode/ui/InputNode.hpp rename loader/include/Geode/{cocos/base_nodes => ui}/Layout.hpp (88%) rename loader/include/Geode/{cocos/base_nodes => ui}/SpacerNode.hpp (88%) delete mode 100644 loader/src/loader/Setting.cpp delete mode 100644 loader/src/loader/SettingNode.cpp delete mode 100644 loader/src/ui/mods/settings/GeodeSettingNode.cpp delete mode 100644 loader/src/ui/mods/settings/GeodeSettingNode.hpp delete mode 100644 loader/src/ui/nodes/InputNode.cpp diff --git a/loader/include/Geode/Loader.hpp b/loader/include/Geode/Loader.hpp index a1bb4c37..3de671be 100644 --- a/loader/include/Geode/Loader.hpp +++ b/loader/include/Geode/Loader.hpp @@ -5,7 +5,7 @@ #include "loader/Log.hpp" #include "loader/Mod.hpp" #include "loader/ModEvent.hpp" -#include "loader/Setting.hpp" +#include "loader/SettingV3.hpp" #include "loader/Dirs.hpp" #include diff --git a/loader/include/Geode/UI.hpp b/loader/include/Geode/UI.hpp index 8f450777..8fdf1661 100644 --- a/loader/include/Geode/UI.hpp +++ b/loader/include/Geode/UI.hpp @@ -6,7 +6,8 @@ #include "ui/EnterLayerEvent.hpp" #include "ui/BasedButtonSprite.hpp" #include "ui/IconButtonSprite.hpp" -#include "ui/InputNode.hpp" +#include "ui/Layout.hpp" +#include "ui/SpacerNode.hpp" #include "ui/General.hpp" #include "ui/ListView.hpp" #include "ui/MDPopup.hpp" diff --git a/loader/include/Geode/cocos/base_nodes/CCNode.h b/loader/include/Geode/cocos/base_nodes/CCNode.h index d5255c55..ecce00e2 100644 --- a/loader/include/Geode/cocos/base_nodes/CCNode.h +++ b/loader/include/Geode/cocos/base_nodes/CCNode.h @@ -37,7 +37,6 @@ #include "../kazmath/include/kazmath/kazmath.h" #include "../script_support/CCScriptSupport.h" #include "../include/CCProtocols.h" -#include "Layout.hpp" #include "../../loader/Event.hpp" #include @@ -45,6 +44,12 @@ #include #endif +namespace geode { + class Layout; + class LayoutOptions; + enum class Anchor; +} + NS_CC_BEGIN class CCCamera; @@ -871,25 +876,13 @@ public: private: friend class geode::modifier::FieldContainer; - [[deprecated("Will be removed, it's an ABI break")]] - GEODE_DLL geode::modifier::FieldContainer* getFieldContainer(); GEODE_DLL geode::modifier::FieldContainer* getFieldContainer(char const* forClass); GEODE_DLL void addEventListenerInternal( std::string const& id, geode::EventListenerProtocol* protocol ); -#ifdef GEODE_EXPORTING - [[deprecated("Will be removed, it's an ABI break")]] - GEODE_DLL std::optional getAttributeInternal(std::string const& attribute); -#endif - -public: -#ifdef GEODE_EXPORTING - [[deprecated("Will be removed, it's an ABI break")]] - GEODE_DLL void setAttribute(std::string const& attribute, matjson::Value const& value); -#endif - +public: /** * Get the string ID of this node * @returns The ID, or an empty string if the node has no ID. @@ -990,13 +983,13 @@ public: * CCLayers / CCMenus, this will change where the children are located * @note Geode addition */ - GEODE_DLL void setLayout(Layout* layout, bool apply = true, bool respectAnchor = true); + GEODE_DLL void setLayout(geode::Layout* layout, bool apply = true, bool respectAnchor = true); /** * Get the Layout for this node * @returns The current layout, or nullptr if no layout is set * @note Geode addition */ - GEODE_DLL Layout* getLayout(); + GEODE_DLL geode::Layout* getLayout(); /** * Update the layout of this node using the current Layout. If no layout is * set, nothing happens @@ -1011,13 +1004,13 @@ public: * @param apply Whether to update the layout of the parent node * @note Geode addition */ - GEODE_DLL void setLayoutOptions(LayoutOptions* options, bool apply = true); + GEODE_DLL void setLayoutOptions(geode::LayoutOptions* options, bool apply = true); /** * Get the layout options for this node * @returns The current layout options, or nullptr if no options are set * @note Geode addition */ - GEODE_DLL LayoutOptions* getLayoutOptions(); + GEODE_DLL geode::LayoutOptions* getLayoutOptions(); /** * Adds a child at an anchored position with an offset. The node is placed * in its parent where the anchor specifies, and then the offset is used to @@ -1029,7 +1022,7 @@ public: * if no other layout is already specified * @note Geode addition */ - GEODE_DLL void addChildAtPosition(CCNode* child, Anchor anchor, CCPoint const& offset = CCPointZero, bool useAnchorLayout = true); + GEODE_DLL void addChildAtPosition(CCNode* child, geode::Anchor anchor, CCPoint const& offset = CCPointZero, bool useAnchorLayout = true); /** * Adds a child at an anchored position with an offset. The node is placed * in its parent where the anchor specifies, and then the offset is used to @@ -1044,7 +1037,7 @@ public: */ GEODE_DLL void addChildAtPosition( CCNode* child, - Anchor anchor, + geode::Anchor anchor, CCPoint const& offset, CCPoint const& nodeAnchor, bool useAnchorLayout = true @@ -1057,7 +1050,7 @@ public: * @param offset Where to place the child relative to the anchor * @note Geode addition */ - GEODE_DLL void updateAnchoredPosition(Anchor anchor, CCPoint const& offset = CCPointZero); + GEODE_DLL void updateAnchoredPosition(geode::Anchor anchor, CCPoint const& offset = CCPointZero); /** * Updates the anchored position of a child. Requires the child to already * have a parent; if the child already has AnchorLayoutOptions set, those @@ -1068,7 +1061,7 @@ public: * @note Geode addition */ GEODE_DLL void updateAnchoredPosition( - Anchor anchor, + geode::Anchor anchor, CCPoint const& offset, CCPoint const& nodeAnchor ); diff --git a/loader/include/Geode/cocos/include/cocos2d.h b/loader/include/Geode/cocos/include/cocos2d.h index cbcc600c..f88e09a0 100644 --- a/loader/include/Geode/cocos/include/cocos2d.h +++ b/loader/include/Geode/cocos/include/cocos2d.h @@ -59,7 +59,6 @@ THE SOFTWARE. // base_nodes #include "../base_nodes/CCNode.h" #include "../base_nodes/CCAtlasNode.h" -#include "../base_nodes/SpacerNode.hpp" // cocoa #include "../cocoa/CCAffineTransform.h" diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index 000901f8..99cb2b9d 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -9,7 +9,6 @@ #include "Loader.hpp" // very nice circular dependency fix #include "Hook.hpp" #include "ModMetadata.hpp" -#include "Setting.hpp" #include "SettingV3.hpp" #include "Types.hpp" #include "Loader.hpp" @@ -108,8 +107,6 @@ namespace geode { std::string getID() const; std::string getName() const; - [[deprecated("Use Mod::getDevelopers instead")]] - std::string getDeveloper() const; std::vector getDevelopers() const; std::optional getDescription() const; std::optional getDetails() const; @@ -137,17 +134,6 @@ namespace geode { std::vector getDependants() const; #endif - /** - * Check if this Mod has updates available on the mods index. If - * you're using this for automatic update checking, use - * `openInfoPopup` or `openIndexPopup` from the `ui/GeodeUI.hpp` - * header to open the Mod's page to let the user install the update - * @returns The latest available version on the index if there are - * updates for this mod - */ - [[deprecated("Use Mod::checkUpdates instead; this function always returns nullopt")]] - std::optional hasAvailableUpdate() const; - using CheckUpdatesTask = Task, std::string>>; /** * Check if this Mod has updates available on the mods index. If @@ -189,12 +175,6 @@ namespace geode { std::vector getSettingKeys() const; bool hasSetting(std::string_view const key) const; - // todo in v4: remove these - [[deprecated("Use Mod::getSettingV3")]] - std::optional getSettingDefinition(std::string_view const key) const; - [[deprecated("Use Mod::getSettingV3")]] - SettingValue* getSetting(std::string_view const key) const; - // todo in v4: possibly rename this to getSetting? /** * Get the definition of a setting, or null if the setting was not found, @@ -204,36 +184,6 @@ namespace geode { */ std::shared_ptr getSettingV3(std::string_view const key) const; - /** - * Register a custom setting's value class. See Mod::addCustomSetting - * for a convenience wrapper that creates the value in-place to avoid - * code duplication. Also see - * [the tutorial page](https://docs.geode-sdk.org/mods/settings) for - * more information about custom settings - * @param key The setting's key - * @param value The SettingValue class that shall handle this setting - * @see addCustomSetting - */ - [[deprecated("Use Mod::registerCustomSettingType")]] - void registerCustomSetting(std::string_view const key, std::unique_ptr value); - /** - * Register a custom setting's value class. The new SettingValue class - * will be created in-place using `std::make_unique`. See - * [the tutorial page](https://docs.geode-sdk.org/mods/settings) for - * more information about custom settings - * @param key The setting's key - * @param value The value of the custom setting - * @example - * $on_mod(Loaded) { - * Mod::get()->addCustomSetting("setting-key", DEFAULT_VALUE); - * } - */ - template - [[deprecated("Use Mod::registerCustomSettingType")]] - void addCustomSetting(std::string_view const key, V const& value) { - this->registerCustomSetting(key, std::make_unique(std::string(key), this->getID(), value)); - } - /** * Register a custom setting type. See * [the setting docs](https://docs.geode-sdk.org/mods/settings) for more diff --git a/loader/include/Geode/loader/ModMetadata.hpp b/loader/include/Geode/loader/ModMetadata.hpp index 588e9f96..0316c6c1 100644 --- a/loader/include/Geode/loader/ModMetadata.hpp +++ b/loader/include/Geode/loader/ModMetadata.hpp @@ -2,7 +2,6 @@ #include "../utils/Result.hpp" #include "../utils/VersionInfo.hpp" -#include "Setting.hpp" #include "Types.hpp" #include @@ -123,13 +122,6 @@ namespace geode { * character set. */ [[nodiscard]] std::string getName() const; - /** - * The name of the head developer. - * If the mod has multiple * developers, this will return the first - * developer in the list. - */ - [[nodiscard, deprecated("Use ModMetadata::getDevelopers() instead")]] - std::string getDeveloper() const; /** * The developers of this mod */ @@ -155,11 +147,6 @@ namespace geode { * (see MDTextArea for more info) */ [[nodiscard]] std::optional getSupportInfo() const; - /** - * Git Repository of the mod - */ - [[nodiscard, deprecated("Use ModMetadata::getLinks instead")]] - std::optional getRepository() const; /** * Get the links (related websites / servers / etc.) for this mod */ @@ -180,11 +167,6 @@ namespace geode { * Mod spritesheet names */ [[nodiscard]] std::vector getSpritesheets() const; - /** - * Mod settings - * @note Not a map because insertion order must be preserved - */ - [[nodiscard, deprecated("Use getSettingsV3")]] std::vector> getSettings() const; /** * Mod settings * @note Not a map because insertion order must be preserved @@ -237,8 +219,6 @@ namespace geode { void setDependencies(std::vector const& value); void setIncompatibilities(std::vector const& value); void setSpritesheets(std::vector const& value); - [[deprecated("This function does NOTHING")]] - void setSettings(std::vector> const& value); void setSettings(std::vector> const& value); void setTags(std::unordered_set const& value); void setNeedsEarlyLoad(bool const& value); diff --git a/loader/include/Geode/loader/Setting.hpp b/loader/include/Geode/loader/Setting.hpp deleted file mode 100644 index 45cc6491..00000000 --- a/loader/include/Geode/loader/Setting.hpp +++ /dev/null @@ -1,324 +0,0 @@ -#pragma once - -#include "Types.hpp" -#include "../DefaultInclude.hpp" -#include "../utils/Result.hpp" -#include "../utils/file.hpp" -#include -#include -#include -#include - -#pragma warning(push) -#pragma warning(disable : 4275) - -namespace geode { - class SettingNode; - class SettingValue; - - struct JsonMaybeObject; - struct JsonMaybeValue; - - /** - * A Setting for a boolean value. Represented in-game as a simple toggle - */ - struct GEODE_DLL BoolSetting final { - using ValueType = bool; - - std::optional name; - std::optional description; - bool defaultValue; - - static Result parse(JsonMaybeObject& obj); - }; - - /** - * A Setting for an integer value. The value can be limited using the min - * and max options - */ - struct GEODE_DLL IntSetting final { - using ValueType = int64_t; - - std::optional name; - std::optional description; - ValueType defaultValue; - std::optional min; - std::optional max; - struct { - bool arrows = true; - bool bigArrows = false; - size_t arrowStep = 1; - size_t bigArrowStep = 5; - bool slider = true; - std::optional sliderStep = std::nullopt; - bool input = true; - } controls; - - static Result parse(JsonMaybeObject& obj); - }; - - /** - * A Setting for a float value. The value can be limited using the min - * and max options - */ - struct GEODE_DLL FloatSetting final { - using ValueType = double; - - std::optional name; - std::optional description; - ValueType defaultValue; - std::optional min; - std::optional max; - struct { - bool arrows = true; - bool bigArrows = false; - size_t arrowStep = 1; - size_t bigArrowStep = 5; - bool slider = true; - std::optional sliderStep = std::nullopt; - bool input = true; - } controls; - - static Result parse(JsonMaybeObject& obj); - }; - - /** - * A Setting for a string value - */ - struct GEODE_DLL StringSetting final { - using ValueType = std::string; - - std::optional name; - std::optional description; - ValueType defaultValue; - struct Data { - /** - * A regex the string must successfully match against - */ - std::optional match; - - /** - * The CCTextInputNode's allowed character filter - */ - std::optional filter; - - /** - * A list of options the user can choose from - */ - std::optional> options; - }; - std::unique_ptr controls; - - std::array m_padding; - - StringSetting(); - StringSetting(StringSetting const& other); - StringSetting(StringSetting&& other) noexcept; - StringSetting& operator=(StringSetting const& other); - StringSetting& operator=(StringSetting&& other) noexcept; - ~StringSetting(); - - - static Result parse(JsonMaybeObject& obj); - }; - - /** - * A Setting for a file input. Lets the user select a file from their - * local device - */ - struct GEODE_DLL FileSetting final { - using ValueType = std::filesystem::path; - using Filter = utils::file::FilePickOptions::Filter; - - std::optional name; - std::optional description; - ValueType defaultValue; - struct { - std::vector filters; - } controls; - - static Result parse(JsonMaybeObject& obj); - }; - - /** - * A Setting for an RGB color. See ColorAlphaSetting for a setting that - * also allows customizing alpha - */ - struct GEODE_DLL ColorSetting final { - using ValueType = cocos2d::ccColor3B; - - std::optional name; - std::optional description; - ValueType defaultValue; - - static Result parse(JsonMaybeObject& obj); - }; - - /** - * A Setting for an RGBA color. See ColorSetting for a setting that doesn't - * have alpha - */ - struct GEODE_DLL ColorAlphaSetting final { - using ValueType = cocos2d::ccColor4B; - - std::optional name; - std::optional description; - ValueType defaultValue; - - static Result parse(JsonMaybeObject& obj); - }; - - /** - * A custom setting, defined by the mod. See - * [the tutorial page](https://docs.geode-sdk.org/mods/settings) for more - * information about how to create custom settings - */ - struct GEODE_DLL CustomSetting final { - std::shared_ptr json; - }; - - using SettingKind = std::variant< - BoolSetting, - IntSetting, - FloatSetting, - StringSetting, - FileSetting, - ColorSetting, - ColorAlphaSetting, - CustomSetting - >; - - /** - * Represents a saved value for a mod that can be customized by the user - * through an in-game UI. This class is for modeling the setting's - * definition - what values are accepted, its name etc. - * See [the tutorial page](https://docs.geode-sdk.org/mods/settings) - * for more information about how settings work - * @see SettingValue - * @see SettingNode - */ - struct GEODE_DLL Setting final { - private: - std::string m_key; - std::string m_modID; - SettingKind m_kind; - - Setting() = default; - - public: - static Result parse( - std::string const& key, - std::string const& mod, - JsonMaybeValue& obj - ); - Setting( - std::string const& key, - std::string const& mod, - SettingKind const& kind - ); - - template - std::optional get() { - if (std::holds_alternative(m_kind)) { - return std::get(m_kind); - } - return std::nullopt; - } - - std::unique_ptr createDefaultValue() const; - bool isCustom() const; - std::string getDisplayName() const; - std::optional getDescription() const; - std::string getModID() const; - }; - - /** - * Stores the actual, current value of a Setting. See - * [the tutorial page](https://docs.geode-sdk.org/mods/settings) for more - * information, and how to create custom settings - */ - class GEODE_DLL SettingValue { - protected: - std::string m_key; - std::string m_modID; - - SettingValue(std::string const& key, std::string const& mod); - - void valueChanged(); - - public: - virtual ~SettingValue() = default; - virtual bool load(matjson::Value const& json) = 0; - virtual bool save(matjson::Value& json) const = 0; - virtual SettingNode* createNode(float width) = 0; - - std::string getKey() const; - std::string getModID() const; - }; - - template - class GeodeSettingValue final : public SettingValue { - public: - using ValueType = typename T::ValueType; - - protected: - ValueType m_value; - T m_definition; - - using Valid = std::pair>; - - GEODE_DLL Valid toValid(ValueType const& value) const; - - public: - GeodeSettingValue(std::string const& key, std::string const& modID, T const& definition) - : SettingValue(key, modID), - m_definition(definition), - m_value(definition.defaultValue) {} - - bool load(matjson::Value const& json) override; - bool save(matjson::Value& json) const; - - GEODE_DLL SettingNode* createNode(float width) override; - T castDefinition() const { - return m_definition; - } - Setting getDefinition() const { - return Setting(m_key, m_modID, m_definition); - } - - GEODE_DLL ValueType getValue() const; - GEODE_DLL void setValue(ValueType const& value); - GEODE_DLL Result<> validate(ValueType const& value) const; - }; - - using BoolSettingValue = GeodeSettingValue; - using IntSettingValue = GeodeSettingValue; - using FloatSettingValue = GeodeSettingValue; - using StringSettingValue = GeodeSettingValue; - using FileSettingValue = GeodeSettingValue; - using ColorSettingValue = GeodeSettingValue; - using ColorAlphaSettingValue = GeodeSettingValue; - - // todo: remove in v3 - - template - struct [[deprecated("Use SettingTypeForValueType from SettingV3 instead")]] GEODE_DLL SettingValueSetter { - static T get(SettingValue* setting); - static void set(SettingValue* setting, T const& value); - }; - - template - bool GeodeSettingValue::load(matjson::Value const& json) { - if (!json.is()) return false; - m_value = json.as(); - return true; - } - - template - bool GeodeSettingValue::save(matjson::Value& json) const { - json = m_value; - return true; - } -} - -#pragma warning(pop) diff --git a/loader/include/Geode/loader/SettingEvent.hpp b/loader/include/Geode/loader/SettingEvent.hpp deleted file mode 100644 index b84b7884..00000000 --- a/loader/include/Geode/loader/SettingEvent.hpp +++ /dev/null @@ -1,63 +0,0 @@ -#pragma once - -#include "Event.hpp" -#include "Loader.hpp" -#include "Setting.hpp" -#include "Mod.hpp" -#include "SettingV3.hpp" -#include - -namespace geode { - struct GEODE_DLL [[deprecated("Use SettingChangedEventV3 from SettingV3.hpp instead")]] SettingChangedEvent : public Event { - Mod* mod; - SettingValue* value; - - SettingChangedEvent(Mod* mod, SettingValue* value); - }; - - class GEODE_DLL [[deprecated("Use SettingChangedEventV3 from SettingV3.hpp instead")]] SettingChangedFilter : public EventFilter { - protected: - std::string m_modID; - std::optional m_targetKey; - - public: - using Callback = void(SettingValue*); - - ListenerResult handle(utils::MiniFunction fn, SettingChangedEvent* event); - /** - * Listen to changes on a setting, or all settings - * @param modID Mod whose settings to listen to - * @param settingID Setting to listen to, or all settings if nullopt - */ - SettingChangedFilter( - std::string const& modID, - std::optional const& settingKey - ); - SettingChangedFilter(SettingChangedFilter const&) = default; - }; - - /** - * Listen for built-in setting changes - */ - template - class [[deprecated("Use SettingChangedEventV3 from SettingV3.hpp instead")]] GeodeSettingChangedFilter : public SettingChangedFilter { - public: - using Callback = void(T); - - ListenerResult handle(utils::MiniFunction fn, SettingChangedEvent* event) { - if ( - m_modID == event->mod->getID() && - (!m_targetKey || m_targetKey.value() == event->value->getKey()) - ) { - fn(SettingValueSetter::get(event->value)); - } - return ListenerResult::Propagate; - } - - GeodeSettingChangedFilter( - std::string const& modID, - std::string const& settingID - ) : SettingChangedFilter(modID, settingID) {} - GeodeSettingChangedFilter(GeodeSettingChangedFilter const&) = default; - }; -} diff --git a/loader/include/Geode/loader/SettingNode.hpp b/loader/include/Geode/loader/SettingNode.hpp deleted file mode 100644 index 5c56ce55..00000000 --- a/loader/include/Geode/loader/SettingNode.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#include "Setting.hpp" - -#include - -namespace geode { - class SettingNode; - - struct SettingNodeDelegate { - virtual void settingValueChanged(SettingNode* node) {} - virtual void settingValueCommitted(SettingNode* node) {} - }; - - class GEODE_DLL SettingNode : public cocos2d::CCNode { - protected: - SettingValue* m_value; - SettingNodeDelegate* m_delegate = nullptr; - - bool init(SettingValue* value); - void dispatchChanged(); - void dispatchCommitted(); - - public: - void setDelegate(SettingNodeDelegate* delegate); - - virtual void commit() = 0; - virtual bool hasUncommittedChanges() = 0; - virtual bool hasNonDefaultValue() = 0; - virtual void resetToDefault() = 0; - }; -} diff --git a/loader/include/Geode/loader/SettingV3.hpp b/loader/include/Geode/loader/SettingV3.hpp index 2117e883..cb91201c 100644 --- a/loader/include/Geode/loader/SettingV3.hpp +++ b/loader/include/Geode/loader/SettingV3.hpp @@ -3,15 +3,12 @@ #include "../DefaultInclude.hpp" #include #include -// todo: remove this header in 4.0.0 -#include "Setting.hpp" #include "../utils/cocos.hpp" +#include "../utils/file.hpp" // this unfortunately has to be included because of C++ templates #include "../utils/JsonValidation.hpp" #include "../utils/function.hpp" -// todo in v4: this can be removed as well as the friend decl in LegacyCustomSettingV3 -class LegacyCustomSettingToV3Node; class ModSettingsPopup; namespace geode { @@ -183,17 +180,6 @@ namespace geode { * Reset this setting's value back to its original value */ virtual void reset() = 0; - - [[deprecated( - "This function will be removed alongside legacy settings in 4.0.0! " - "You should NOT be implementing it for your own custom setting classes" - )]] - virtual std::optional convertToLegacy() const; - [[deprecated( - "This function will be removed alongside legacy settings in 4.0.0! " - "You should NOT be implementing it for your own custom setting classes" - )]] - virtual std::optional> convertToLegacyValue() const; }; using SettingGenerator = std::function>( @@ -357,37 +343,6 @@ namespace geode { void reset() override; }; - // todo in v4: remove this class completely - class GEODE_DLL LegacyCustomSettingV3 final : public SettingV3 { - private: - class Impl; - std::shared_ptr m_impl; - - friend class ::geode::ModSettingsManager; - friend class ::LegacyCustomSettingToV3Node; - - private: - class PrivateMarker {}; - friend class SettingV3; - - public: - LegacyCustomSettingV3(PrivateMarker); - static Result> parse(std::string const& key, std::string const& modID, matjson::Value const& json); - - std::shared_ptr getValue() const; - void setValue(std::shared_ptr value); - - bool load(matjson::Value const& json) override; - bool save(matjson::Value& json) const override; - SettingNodeV3* createNode(float width) override; - - bool isDefaultValue() const override; - void reset() override; - - std::optional convertToLegacy() const override; - std::optional> convertToLegacyValue() const override; - }; - class GEODE_DLL BoolSettingV3 final : public SettingBaseValueV3 { private: class Impl; @@ -404,9 +359,6 @@ namespace geode { Result<> isValid(bool value) const override; SettingNodeV3* createNode(float width) override; - - std::optional convertToLegacy() const override; - std::optional> convertToLegacyValue() const override; }; class GEODE_DLL IntSettingV3 final : public SettingBaseValueV3 { @@ -436,9 +388,6 @@ namespace geode { bool isInputEnabled() const; SettingNodeV3* createNode(float width) override; - - std::optional convertToLegacy() const override; - std::optional> convertToLegacyValue() const override; }; class GEODE_DLL FloatSettingV3 final : public SettingBaseValueV3 { @@ -468,9 +417,6 @@ namespace geode { bool isInputEnabled() const; SettingNodeV3* createNode(float width) override; - - std::optional convertToLegacy() const override; - std::optional> convertToLegacyValue() const override; }; class GEODE_DLL StringSettingV3 final : public SettingBaseValueV3 { @@ -493,9 +439,6 @@ namespace geode { std::optional> getEnumOptions() const; SettingNodeV3* createNode(float width) override; - - std::optional convertToLegacy() const override; - std::optional> convertToLegacyValue() const override; }; class GEODE_DLL FileSettingV3 final : public SettingBaseValueV3 { @@ -519,9 +462,6 @@ namespace geode { std::optional> getFilters() const; SettingNodeV3* createNode(float width) override; - - std::optional convertToLegacy() const override; - std::optional> convertToLegacyValue() const override; }; class GEODE_DLL Color3BSettingV3 final : public SettingBaseValueV3 { @@ -540,9 +480,6 @@ namespace geode { Result<> isValid(cocos2d::ccColor3B value) const override; SettingNodeV3* createNode(float width) override; - - std::optional convertToLegacy() const override; - std::optional> convertToLegacyValue() const override; }; class GEODE_DLL Color4BSettingV3 final : public SettingBaseValueV3 { @@ -561,9 +498,6 @@ namespace geode { Result<> isValid(cocos2d::ccColor4B value) const override; SettingNodeV3* createNode(float width) override; - - std::optional convertToLegacy() const override; - std::optional> convertToLegacyValue() const override; }; class GEODE_DLL SettingNodeV3 : public cocos2d::CCNode { diff --git a/loader/include/Geode/ui/GeodeUI.hpp b/loader/include/Geode/ui/GeodeUI.hpp index 8fd3c726..32dbf3bd 100644 --- a/loader/include/Geode/ui/GeodeUI.hpp +++ b/loader/include/Geode/ui/GeodeUI.hpp @@ -133,11 +133,6 @@ namespace geode { */ GEODE_DLL void openSupportPopup(Mod* mod); GEODE_DLL void openSupportPopup(ModMetadata const& metadata); - /** - * Open the store page for a mod (if it exists) - */ - [[deprecated("Will be removed, use openInfoPopup instead")]] - GEODE_DLL void openIndexPopup(Mod* mod); /** * Open the settings popup for a mod (if it has any settings) */ diff --git a/loader/include/Geode/ui/InputNode.hpp b/loader/include/Geode/ui/InputNode.hpp deleted file mode 100644 index 393942a0..00000000 --- a/loader/include/Geode/ui/InputNode.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once - -#include -#include -#include - -namespace geode { - class GEODE_DLL InputNode : public cocos2d::CCMenuItem { - protected: - cocos2d::extension::CCScale9Sprite* m_bgSprite; - CCTextInputNode* m_input; - - bool init(float, float, char const*, char const*, std::string const&, int); - bool init(float, char const*, char const*, std::string const&, int); - - public: - [[deprecated("Use geode::TextInput from the ui/TextInput.hpp header instead")]] - static InputNode* create( - float width, char const* placeholder, char const* fontFile, std::string const& filter, - int limit - ); - [[deprecated("Use geode::TextInput from the ui/TextInput.hpp header instead")]] - static InputNode* create( - float width, char const* placeholder, std::string const& filter, int limit - ); - [[deprecated("Use geode::TextInput from the ui/TextInput.hpp header instead")]] - static InputNode* create(float width, char const* placeholder, std::string const& filter); - [[deprecated("Use geode::TextInput from the ui/TextInput.hpp header instead")]] - static InputNode* create(float width, char const* placeholder, char const* fontFile); - [[deprecated("Use geode::TextInput from the ui/TextInput.hpp header instead")]] - static InputNode* create(float width, char const* placeholder); - - CCTextInputNode* getInput() const; - cocos2d::extension::CCScale9Sprite* getBG() const; - - void setEnabled(bool enabled) override; - - void setString(std::string const&); - std::string getString(); - }; -} diff --git a/loader/include/Geode/cocos/base_nodes/Layout.hpp b/loader/include/Geode/ui/Layout.hpp similarity index 88% rename from loader/include/Geode/cocos/base_nodes/Layout.hpp rename to loader/include/Geode/ui/Layout.hpp index b63ba881..bd6751b5 100644 --- a/loader/include/Geode/cocos/base_nodes/Layout.hpp +++ b/loader/include/Geode/ui/Layout.hpp @@ -1,448 +1,430 @@ -#pragma once - -#include "../include/ccMacros.h" -#include "../cocoa/CCAffineTransform.h" -#include "../cocoa/CCArray.h" -#include -#include -#include - -NS_CC_BEGIN - -class CCNode; - -#pragma warning(push) -#pragma warning(disable: 4275) - -/** - * Layouts automatically handle the positioning of nodes. Use CCNode::setLayout - * to apply a layout to a node, and then use CCNode::updateLayout to apply - * the layout's positioning. Geode comes with a few default layouts like - * RowLayout, ColumnLayout, and GridLayout, but if you need a different kind - * of layout you can inherit from the Layout class. - */ -class GEODE_DLL Layout : public CCObject { -protected: - CCArray* getNodesToPosition(CCNode* forNode) const; - - bool m_ignoreInvisibleChildren = false; - -public: - /** - * Automatically apply the layout's positioning on a set of nodes - * @param on Node to apply the layout on. Position's the node's children - * according to the layout. The content size of the node should be - * respected as a boundary the layout shouldn't overflow. The node may be - * rescaled to better fit its contents - */ - virtual void apply(CCNode* on) = 0; - - /** - * Get how much space this layout would like to take up for a given target - */ - virtual CCSize getSizeHint(CCNode* on) const = 0; - - void ignoreInvisibleChildren(bool ignore); - bool isIgnoreInvisibleChildren() const; - - virtual ~Layout() = default; -}; - -class GEODE_DLL LayoutOptions : public CCObject { -public: - virtual ~LayoutOptions() = default; -}; - -/** - * The direction of an AxisLayout - */ -enum class Axis { - Row, - Column, -}; - -/** - * Specifies the alignment of something in an AxisLayout - */ -enum class AxisAlignment { - // Align items to the start - // |ooo......| - Start, - // All items are centered - // |...ooo...| - Center, - // Align items to the end - // |......ooo| - End, - // Each item gets the same portion from the layout (disregards gap) - // |.o..o..o.| - Even, - // Space between each item is the same (disregards gap) - // |o...o...o| - Between, -}; - -constexpr float AXISLAYOUT_DEFAULT_MIN_SCALE = 0.65f; -constexpr int AXISLAYOUT_DEFAULT_PRIORITY = 0; - -/** - * Options for controlling the behaviour of individual nodes in an AxisLayout - * @example - * auto node = CCNode::create(); - * // this node will have 10 units of spacing between it and the next one - * node->setLayoutOptions( - * AxisLayoutOptions::create() - * ->setNextGap(10.f) - * ); - * someNodeWithALayout->addChild(node); - */ -class GEODE_DLL AxisLayoutOptions : public LayoutOptions { -protected: - class Impl; - - std::unique_ptr m_impl; - - AxisLayoutOptions(); - -public: - static AxisLayoutOptions* create(); - - virtual ~AxisLayoutOptions(); - - std::optional getAutoScale() const; - // @note Use hasExplicitMaxScale to know if the default scale has been overwritten - float getMaxScale() const; - // @note Use hasExplicitMinScale to know if the default scale has been overwritten - float getMinScale() const; - bool hasExplicitMaxScale() const; - bool hasExplicitMinScale() const; - float getRelativeScale() const; - std::optional getLength() const; - std::optional getPrevGap() const; - std::optional getNextGap() const; - bool getBreakLine() const; - bool getSameLine() const; - int getScalePriority() const; - std::optional getCrossAxisAlignment() const; - - /** - * Set the maximum scale this node can be if it's contained in an - * auto-scaled layout. Default is 1 - */ - [[deprecated("Use AxisLayoutOptions::setScaleLimits")]] - AxisLayoutOptions* setMaxScale(float scale); - - /** - * Set the minimum scale this node can be if it's contained in an - * auto-scaled layout. Default is AXISLAYOUT_DEFAULT_MIN_SCALE - */ - [[deprecated("Use AxisLayoutOptions::setScaleLimits")]] - AxisLayoutOptions* setMinScale(float scale); - - /** - * Set the limits to what the node can be scaled to. Passing `std::nullopt` - * uses the parent layout's default min / max scales - */ - AxisLayoutOptions* setScaleLimits(std::optional min, std::optional max); - - /** - * Set the relative scale of this node compared to other nodes if it's - * contained in an auto-scaled layout. Default is 1 - */ - AxisLayoutOptions* setRelativeScale(float scale); - - /** - * Set auto-scaling for this node, overriding the layout's auto-scale - * setting. If nullopt, the layout's auto-scale options will be used - */ - AxisLayoutOptions* setAutoScale(std::optional enabled); - - /** - * Set an absolute length for this node. If nullopt, the length will be - * dynamically calculated based on content size - */ - AxisLayoutOptions* setLength(std::optional length); - - /** - * Override the default gap in the layout between this node and the - * previous one. If nullopt, the default gap of the layout will be used - */ - AxisLayoutOptions* setPrevGap(std::optional gap); - - /** - * Override the default gap in the layout between this node and the next - * one. If nullopt, the default gap of the layout will be used - */ - AxisLayoutOptions* setNextGap(std::optional gap); - - /** - * If enabled, the node will always cause a growable axis layout to break - * into a new line even if the current line could've fit the next node - */ - AxisLayoutOptions* setBreakLine(bool enable); - - /** - * If enabled, the node will be forced to be on the same line as the - * previous node even if doing this would overflow - */ - AxisLayoutOptions* setSameLine(bool enable); - - /** - * Set the scale priority of this node. Nodes with higher priority will be - * scaled down first before nodes with lower priority when an auto-scaled - * layout attempts to fit its contents. Default is - * AXISLAYOUT_DEFAULT_PRIORITY - * @note For optimal performance, the priorities should all be close to - * each other with no gaps - */ - AxisLayoutOptions* setScalePriority(int priority); - - /** - * Override the cross axis alignment for this node in the layout - */ - AxisLayoutOptions* setCrossAxisAlignment(std::optional alignment); -}; - -/** - * A multi-purpose dynamic layout for arranging nodes along an axis. Can be - * used to arrange nodes in a single line, a grid, or a flex layout. The - * RowLayout and ColumnLayout classes function as simple thin wrappers over - * AxisLayout. The positioning of individual nodes in the layout can be - * further controlled using AxisLayoutOptions - * @warning Calculating layouts can get increasingly expensive for large - * amounts of child nodes being fit into a small space - while this should - * never prove a real performance concern as most layouts only have a few - * hundred children at the very most, be aware that you probably shouldn't - * call CCNode::updateLayout every frame for a menu with thousands of children - * @example - * auto menu = CCMenu::create(); - * // The menu's children will be arranged horizontally, unless they overflow - * // the content size width in which case a new line will be inserted and - * // aligned to the left. The menu automatically will automatically grow in - * // height to fit all the rows - * menu->setLayout( - * RowLayout::create() - * ->setGap(10.f) - * ->setGrowCrossAxis(true) - * ->setAxisAlignment(AxisAlignment::Start) - * ); - * menu->setContentSize({ 200.f, 0.f }); - * menu->addChild(...); - * menu->updateLayout(); - */ -class GEODE_DLL AxisLayout : public Layout { -protected: - class Impl; - - std::unique_ptr m_impl; - - AxisLayout(Axis); - -public: - /** - * Create a new AxisLayout. Note that this class is not automatically - * managed by default, so you must assign it to a CCNode or manually - * manage the memory yourself. See the chainable setters on AxisLayout for - * what options you can customize for the layout - * @param axis The direction of the layout - * @note For convenience, you can use the RowLayout and ColumnLayout - * classes, which are just thin wrappers over AxisLayout - * @returns Created AxisLayout - */ - static AxisLayout* create(Axis axis = Axis::Row); - - virtual ~AxisLayout(); - - void apply(CCNode* on) override; - CCSize getSizeHint(CCNode* on) const override; - - Axis getAxis() const; - AxisAlignment getAxisAlignment() const; - AxisAlignment getCrossAxisAlignment() const; - AxisAlignment getCrossAxisLineAlignment() const; - float getGap() const; - bool getAxisReverse() const; - bool getCrossAxisReverse() const; - bool getAutoScale() const; - bool getGrowCrossAxis() const; - bool getCrossAxisOverflow() const; - std::optional getAutoGrowAxis() const; - float getDefaultMinScale() const; - float getDefaultMaxScale() const; - - AxisLayout* setAxis(Axis axis); - /** - * Sets where to align the target node's children on the main axis (X-axis - * for Row, Y-axis for Column) - */ - AxisLayout* setAxisAlignment(AxisAlignment align); - /** - * Sets where to align the target node's children on the cross-axis (Y-axis - * for Row, X-axis for Column) - */ - AxisLayout* setCrossAxisAlignment(AxisAlignment align); - /** - * Sets where to align the target node's children on the cross-axis for - * each row (Y-axis for Row, X-axis for Column) - */ - AxisLayout* setCrossAxisLineAlignment(AxisAlignment align); - /** - * The spacing between the children of the node this layout applies to. - * Measured as the space between their edges, not centres. Does not apply - * on the main / cross axis if their alignment is AxisAlignment::Even - */ - AxisLayout* setGap(float gap); - /** - * Whether to reverse the direction of the children in this layout or not - */ - AxisLayout* setAxisReverse(bool reverse); - /** - * Whether to reverse the direction of the rows on the cross-axis or not - */ - AxisLayout* setCrossAxisReverse(bool reverse); - /** - * If enabled, then the layout may scale the target's children if they are - * about to overflow. Assumes that all the childrens' intended scale is 1 - */ - AxisLayout* setAutoScale(bool enable); - /** - * If true, if the main axis overflows extra nodes will be placed on new - * rows/columns on the cross-axis - */ - AxisLayout* setGrowCrossAxis(bool expand); - /** - * If true, the cross-axis content size of the target node will be - * automatically adjusted to fit the children - */ - AxisLayout* setCrossAxisOverflow(bool allow); - /** - * If not `std::nullopt`, then the axis will be automatically extended to - * fit all items in a single row whose minimum length is the specified. - * Useful for scrollable list layer contents - */ - AxisLayout* setAutoGrowAxis(std::optional allowAndMinLength); - /** - * Set the default minimum/maximum scales for nodes in the layout - */ - AxisLayout* setDefaultScaleLimits(float min, float max); -}; - -/** - * Simple layout for arranging nodes in a row (horizontal line) - */ -class GEODE_DLL RowLayout : public AxisLayout { -protected: - RowLayout(); - -public: - /** - * Create a new RowLayout. See the chainable setters on RowLayout for - * what options you can customize for the layout - * @returns Created RowLayout - */ - static RowLayout* create(); -}; - -/** - * Simple layout for arranging nodes in a column (vertical line) - */ -class GEODE_DLL ColumnLayout : public AxisLayout { -protected: - ColumnLayout(); - -public: - /** - * Create a new ColumnLayout. See the chainable setters on RowLayout for - * what options you can customize for the layout - * @returns Created ColumnLayout - */ - static ColumnLayout* create(); -}; - -/** - * The relative position of a node to its parent in an AnchorLayout - */ -enum class Anchor { - Center, - TopLeft, - Top, - TopRight, - Right, - BottomRight, - Bottom, - BottomLeft, - Left, -}; - -/** - * Options for customizing a node's position in an AnchorLayout - */ -class GEODE_DLL AnchorLayoutOptions : public LayoutOptions { -protected: - Anchor m_anchor = Anchor::Center; - CCPoint m_offset = CCPointZero; - -public: - static AnchorLayoutOptions* create(); - - Anchor getAnchor() const; - CCPoint getOffset() const; - - AnchorLayoutOptions* setAnchor(Anchor anchor); - AnchorLayoutOptions* setOffset(CCPoint const& offset); -}; - -/** - * A layout for positioning nodes at specific positions relative to their - * parent's content size. See `Anchor` for available anchoring options. Useful - * for example for popups, where a popup using `AnchorLayout` can be - * automatically resized without needing to manually shuffle nodes around - */ -class GEODE_DLL AnchorLayout : public Layout { -public: - static AnchorLayout* create(); - - void apply(CCNode* on) override; - CCSize getSizeHint(CCNode* on) const override; - - /** - * Get a position according to anchoring rules, with the same algorithm as - * `AnchorLayout` uses to position its nodes - * @param in The node whose content size to use as a reference - * @param anchor The anchor position - * @param offset Offset from the anchor - * @returns A position in `in` for the anchored and offsetted location - */ - static CCPoint getAnchoredPosition(CCNode* in, Anchor anchor, CCPoint const& offset); -}; - -/** - * A layout for automatically copying the content size of a node to other nodes. - * Basically main use case is for FLAlertLayers (setting the size of the - * background and `m_buttonMenu` based on `m_mainLayer`) - */ -class GEODE_DLL CopySizeLayout : public cocos2d::AnchorLayout { -protected: - cocos2d::CCArray* m_targets; - -public: - static CopySizeLayout* create(); - virtual ~CopySizeLayout(); - - /** - * Add a target to be automatically resized. Any targets' layouts will - * also be updated when this layout is updated - */ - CopySizeLayout* add(cocos2d::CCNode* target); - /** - * Remove a target from being automatically resized - */ - CopySizeLayout* remove(cocos2d::CCNode* target); - - void apply(cocos2d::CCNode* in) override; - cocos2d::CCSize getSizeHint(cocos2d::CCNode* in) const override; -}; - -#pragma warning(pop) - -NS_CC_END +#pragma once + +#include +#include +#include +#include + +namespace geode { + +#pragma warning(push) +#pragma warning(disable: 4275) + +/** + * Layouts automatically handle the positioning of nodes. Use CCNode::setLayout + * to apply a layout to a node, and then use CCNode::updateLayout to apply + * the layout's positioning. Geode comes with a few default layouts like + * RowLayout, ColumnLayout, and GridLayout, but if you need a different kind + * of layout you can inherit from the Layout class. + */ +class GEODE_DLL Layout : public cocos2d::CCObject { +protected: + cocos2d::CCArray* getNodesToPosition(cocos2d::CCNode* forNode) const; + + bool m_ignoreInvisibleChildren = false; + +public: + /** + * Automatically apply the layout's positioning on a set of nodes + * @param on Node to apply the layout on. Position's the node's children + * according to the layout. The content size of the node should be + * respected as a boundary the layout shouldn't overflow. The node may be + * rescaled to better fit its contents + */ + virtual void apply(cocos2d::CCNode* on) = 0; + + /** + * Get how much space this layout would like to take up for a given target + */ + virtual cocos2d::CCSize getSizeHint(cocos2d::CCNode* on) const = 0; + + void ignoreInvisibleChildren(bool ignore); + bool isIgnoreInvisibleChildren() const; + + virtual ~Layout() = default; +}; + +class GEODE_DLL LayoutOptions : public cocos2d::CCObject { +public: + virtual ~LayoutOptions() = default; +}; + +/** + * The direction of an AxisLayout + */ +enum class Axis { + Row, + Column, +}; + +/** + * Specifies the alignment of something in an AxisLayout + */ +enum class AxisAlignment { + // Align items to the start + // |ooo......| + Start, + // All items are centered + // |...ooo...| + Center, + // Align items to the end + // |......ooo| + End, + // Each item gets the same portion from the layout (disregards gap) + // |.o..o..o.| + Even, + // Space between each item is the same (disregards gap) + // |o...o...o| + Between, +}; + +constexpr float AXISLAYOUT_DEFAULT_MIN_SCALE = 0.65f; +constexpr int AXISLAYOUT_DEFAULT_PRIORITY = 0; + +/** + * Options for controlling the behaviour of individual nodes in an AxisLayout + * @example + * auto node = CCNode::create(); + * // this node will have 10 units of spacing between it and the next one + * node->setLayoutOptions( + * AxisLayoutOptions::create() + * ->setNextGap(10.f) + * ); + * someNodeWithALayout->addChild(node); + */ +class GEODE_DLL AxisLayoutOptions : public LayoutOptions { +protected: + class Impl; + + std::unique_ptr m_impl; + + AxisLayoutOptions(); + +public: + static AxisLayoutOptions* create(); + + virtual ~AxisLayoutOptions(); + + std::optional getAutoScale() const; + // @note Use hasExplicitMaxScale to know if the default scale has been overwritten + float getMaxScale() const; + // @note Use hasExplicitMinScale to know if the default scale has been overwritten + float getMinScale() const; + bool hasExplicitMaxScale() const; + bool hasExplicitMinScale() const; + float getRelativeScale() const; + std::optional getLength() const; + std::optional getPrevGap() const; + std::optional getNextGap() const; + bool getBreakLine() const; + bool getSameLine() const; + int getScalePriority() const; + std::optional getCrossAxisAlignment() const; + + /** + * Set the limits to what the node can be scaled to. Passing `std::nullopt` + * uses the parent layout's default min / max scales + */ + AxisLayoutOptions* setScaleLimits(std::optional min, std::optional max); + + /** + * Set the relative scale of this node compared to other nodes if it's + * contained in an auto-scaled layout. Default is 1 + */ + AxisLayoutOptions* setRelativeScale(float scale); + + /** + * Set auto-scaling for this node, overriding the layout's auto-scale + * setting. If nullopt, the layout's auto-scale options will be used + */ + AxisLayoutOptions* setAutoScale(std::optional enabled); + + /** + * Set an absolute length for this node. If nullopt, the length will be + * dynamically calculated based on content size + */ + AxisLayoutOptions* setLength(std::optional length); + + /** + * Override the default gap in the layout between this node and the + * previous one. If nullopt, the default gap of the layout will be used + */ + AxisLayoutOptions* setPrevGap(std::optional gap); + + /** + * Override the default gap in the layout between this node and the next + * one. If nullopt, the default gap of the layout will be used + */ + AxisLayoutOptions* setNextGap(std::optional gap); + + /** + * If enabled, the node will always cause a growable axis layout to break + * into a new line even if the current line could've fit the next node + */ + AxisLayoutOptions* setBreakLine(bool enable); + + /** + * If enabled, the node will be forced to be on the same line as the + * previous node even if doing this would overflow + */ + AxisLayoutOptions* setSameLine(bool enable); + + /** + * Set the scale priority of this node. Nodes with higher priority will be + * scaled down first before nodes with lower priority when an auto-scaled + * layout attempts to fit its contents. Default is + * AXISLAYOUT_DEFAULT_PRIORITY + * @note For optimal performance, the priorities should all be close to + * each other with no gaps + */ + AxisLayoutOptions* setScalePriority(int priority); + + /** + * Override the cross axis alignment for this node in the layout + */ + AxisLayoutOptions* setCrossAxisAlignment(std::optional alignment); +}; + +/** + * A multi-purpose dynamic layout for arranging nodes along an axis. Can be + * used to arrange nodes in a single line, a grid, or a flex layout. The + * RowLayout and ColumnLayout classes function as simple thin wrappers over + * AxisLayout. The positioning of individual nodes in the layout can be + * further controlled using AxisLayoutOptions + * @warning Calculating layouts can get increasingly expensive for large + * amounts of child nodes being fit into a small space - while this should + * never prove a real performance concern as most layouts only have a few + * hundred children at the very most, be aware that you probably shouldn't + * call CCNode::updateLayout every frame for a menu with thousands of children + * @example + * auto menu = CCMenu::create(); + * // The menu's children will be arranged horizontally, unless they overflow + * // the content size width in which case a new line will be inserted and + * // aligned to the left. The menu automatically will automatically grow in + * // height to fit all the rows + * menu->setLayout( + * RowLayout::create() + * ->setGap(10.f) + * ->setGrowCrossAxis(true) + * ->setAxisAlignment(AxisAlignment::Start) + * ); + * menu->setContentSize({ 200.f, 0.f }); + * menu->addChild(...); + * menu->updateLayout(); + */ +class GEODE_DLL AxisLayout : public Layout { +protected: + class Impl; + + std::unique_ptr m_impl; + + AxisLayout(Axis); + +public: + /** + * Create a new AxisLayout. Note that this class is not automatically + * managed by default, so you must assign it to a CCNode or manually + * manage the memory yourself. See the chainable setters on AxisLayout for + * what options you can customize for the layout + * @param axis The direction of the layout + * @note For convenience, you can use the RowLayout and ColumnLayout + * classes, which are just thin wrappers over AxisLayout + * @returns Created AxisLayout + */ + static AxisLayout* create(Axis axis = Axis::Row); + + virtual ~AxisLayout(); + + void apply(cocos2d::CCNode* on) override; + cocos2d::CCSize getSizeHint(cocos2d::CCNode* on) const override; + + Axis getAxis() const; + AxisAlignment getAxisAlignment() const; + AxisAlignment getCrossAxisAlignment() const; + AxisAlignment getCrossAxisLineAlignment() const; + float getGap() const; + bool getAxisReverse() const; + bool getCrossAxisReverse() const; + bool getAutoScale() const; + bool getGrowCrossAxis() const; + bool getCrossAxisOverflow() const; + std::optional getAutoGrowAxis() const; + float getDefaultMinScale() const; + float getDefaultMaxScale() const; + + AxisLayout* setAxis(Axis axis); + /** + * Sets where to align the target node's children on the main axis (X-axis + * for Row, Y-axis for Column) + */ + AxisLayout* setAxisAlignment(AxisAlignment align); + /** + * Sets where to align the target node's children on the cross-axis (Y-axis + * for Row, X-axis for Column) + */ + AxisLayout* setCrossAxisAlignment(AxisAlignment align); + /** + * Sets where to align the target node's children on the cross-axis for + * each row (Y-axis for Row, X-axis for Column) + */ + AxisLayout* setCrossAxisLineAlignment(AxisAlignment align); + /** + * The spacing between the children of the node this layout applies to. + * Measured as the space between their edges, not centres. Does not apply + * on the main / cross axis if their alignment is AxisAlignment::Even + */ + AxisLayout* setGap(float gap); + /** + * Whether to reverse the direction of the children in this layout or not + */ + AxisLayout* setAxisReverse(bool reverse); + /** + * Whether to reverse the direction of the rows on the cross-axis or not + */ + AxisLayout* setCrossAxisReverse(bool reverse); + /** + * If enabled, then the layout may scale the target's children if they are + * about to overflow. Assumes that all the childrens' intended scale is 1 + */ + AxisLayout* setAutoScale(bool enable); + /** + * If true, if the main axis overflows extra nodes will be placed on new + * rows/columns on the cross-axis + */ + AxisLayout* setGrowCrossAxis(bool expand); + /** + * If true, the cross-axis content size of the target node will be + * automatically adjusted to fit the children + */ + AxisLayout* setCrossAxisOverflow(bool allow); + /** + * If not `std::nullopt`, then the axis will be automatically extended to + * fit all items in a single row whose minimum length is the specified. + * Useful for scrollable list layer contents + */ + AxisLayout* setAutoGrowAxis(std::optional allowAndMinLength); + /** + * Set the default minimum/maximum scales for nodes in the layout + */ + AxisLayout* setDefaultScaleLimits(float min, float max); +}; + +/** + * Simple layout for arranging nodes in a row (horizontal line) + */ +class GEODE_DLL RowLayout : public AxisLayout { +protected: + RowLayout(); + +public: + /** + * Create a new RowLayout. See the chainable setters on RowLayout for + * what options you can customize for the layout + * @returns Created RowLayout + */ + static RowLayout* create(); +}; + +/** + * Simple layout for arranging nodes in a column (vertical line) + */ +class GEODE_DLL ColumnLayout : public AxisLayout { +protected: + ColumnLayout(); + +public: + /** + * Create a new ColumnLayout. See the chainable setters on RowLayout for + * what options you can customize for the layout + * @returns Created ColumnLayout + */ + static ColumnLayout* create(); +}; + +/** + * The relative position of a node to its parent in an AnchorLayout + */ +enum class Anchor { + Center, + TopLeft, + Top, + TopRight, + Right, + BottomRight, + Bottom, + BottomLeft, + Left, +}; + +/** + * Options for customizing a node's position in an AnchorLayout + */ +class GEODE_DLL AnchorLayoutOptions : public LayoutOptions { +protected: + Anchor m_anchor = Anchor::Center; + cocos2d::CCPoint m_offset = cocos2d::CCPointZero; + +public: + static AnchorLayoutOptions* create(); + + Anchor getAnchor() const; + cocos2d::CCPoint getOffset() const; + + AnchorLayoutOptions* setAnchor(Anchor anchor); + AnchorLayoutOptions* setOffset(cocos2d::CCPoint const& offset); +}; + +/** + * A layout for positioning nodes at specific positions relative to their + * parent's content size. See `Anchor` for available anchoring options. Useful + * for example for popups, where a popup using `AnchorLayout` can be + * automatically resized without needing to manually shuffle nodes around + */ +class GEODE_DLL AnchorLayout : public Layout { +public: + static AnchorLayout* create(); + + void apply(cocos2d::CCNode* on) override; + cocos2d::CCSize getSizeHint(cocos2d::CCNode* on) const override; + + /** + * Get a position according to anchoring rules, with the same algorithm as + * `AnchorLayout` uses to position its nodes + * @param in The node whose content size to use as a reference + * @param anchor The anchor position + * @param offset Offset from the anchor + * @returns A position in `in` for the anchored and offsetted location + */ + static cocos2d::CCPoint getAnchoredPosition(cocos2d::CCNode* in, Anchor anchor, cocos2d::CCPoint const& offset); +}; + +/** + * A layout for automatically copying the content size of a node to other nodes. + * Basically main use case is for FLAlertLayers (setting the size of the + * background and `m_buttonMenu` based on `m_mainLayer`) + */ +class GEODE_DLL CopySizeLayout : public AnchorLayout { +protected: + cocos2d::CCArray* m_targets; + +public: + static CopySizeLayout* create(); + virtual ~CopySizeLayout(); + + /** + * Add a target to be automatically resized. Any targets' layouts will + * also be updated when this layout is updated + */ + CopySizeLayout* add(cocos2d::CCNode* target); + /** + * Remove a target from being automatically resized + */ + CopySizeLayout* remove(cocos2d::CCNode* target); + + void apply(cocos2d::CCNode* in) override; + cocos2d::CCSize getSizeHint(cocos2d::CCNode* in) const override; +}; + +#pragma warning(pop) + +} diff --git a/loader/include/Geode/ui/Popup.hpp b/loader/include/Geode/ui/Popup.hpp index c9e6f3be..d7b3809d 100644 --- a/loader/include/Geode/ui/Popup.hpp +++ b/loader/include/Geode/ui/Popup.hpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace geode { template @@ -104,7 +105,7 @@ namespace geode { m_mainLayer->setPosition(winSize / 2); m_mainLayer->setContentSize(m_size); m_mainLayer->setLayout( - cocos2d::CopySizeLayout::create() + geode::CopySizeLayout::create() ->add(m_buttonMenu) ->add(m_bgSprite) ); @@ -119,7 +120,7 @@ namespace geode { closeSpr, this, (cocos2d::SEL_MenuHandler)(&Popup::onClose) ); if (dynamic) { - m_buttonMenu->addChildAtPosition(m_closeBtn, cocos2d::Anchor::TopLeft, { 3.f, -3.f }); + m_buttonMenu->addChildAtPosition(m_closeBtn, geode::Anchor::TopLeft, { 3.f, -3.f }); } else { m_closeBtn->setPosition(-m_size.width / 2 + 3.f, m_size.height / 2 - 3.f); @@ -137,14 +138,6 @@ namespace geode { } protected: - [[deprecated("Use Popup::initAnchored instead, as it has more reasonable menu and layer content sizes")]] - bool init( - float width, float height, InitArgs... args, char const* bg = "GJ_square01.png", - cocos2d::CCRect bgRect = { 0, 0, 80, 80 } - ) { - return this->initBase(width, height, std::forward(args)..., bg, bgRect, false); - } - /** * Init with AnchorLayout and the content size of `m_buttonMenu` and * `m_bgSprite` being tied to the size of `m_mainLayer` (rather than @@ -185,7 +178,7 @@ namespace geode { m_title = cocos2d::CCLabelBMFont::create(title.c_str(), font); m_title->setZOrder(2); if (m_dynamic) { - m_mainLayer->addChildAtPosition(m_title, cocos2d::Anchor::Top, ccp(0, -offset)); + m_mainLayer->addChildAtPosition(m_title, geode::Anchor::Top, ccp(0, -offset)); } else { auto winSize = cocos2d::CCDirector::get()->getWinSize(); diff --git a/loader/include/Geode/cocos/base_nodes/SpacerNode.hpp b/loader/include/Geode/ui/SpacerNode.hpp similarity index 88% rename from loader/include/Geode/cocos/base_nodes/SpacerNode.hpp rename to loader/include/Geode/ui/SpacerNode.hpp index e600402a..3d7f5766 100644 --- a/loader/include/Geode/cocos/base_nodes/SpacerNode.hpp +++ b/loader/include/Geode/ui/SpacerNode.hpp @@ -1,8 +1,8 @@ #pragma once -#include "CCNode.h" +#include -NS_CC_BEGIN +namespace geode { #pragma warning(push) #pragma warning(disable: 4275) @@ -22,7 +22,7 @@ NS_CC_BEGIN * @note If you want to specify a minimum width for a SpacerNode, add * AxisLayoutOptions for it and use setLength */ -class GEODE_DLL SpacerNode : public CCNode { +class GEODE_DLL SpacerNode : public cocos2d::CCNode { protected: size_t m_grow; @@ -61,9 +61,9 @@ public: */ class GEODE_DLL SpacerNodeChild : public SpacerNode { protected: - CCNode* m_child = nullptr; + cocos2d::CCNode* m_child = nullptr; - bool init(CCNode* child, size_t grow); + bool init(cocos2d::CCNode* child, size_t grow); public: /** @@ -73,11 +73,11 @@ public: * factors (akin to CSS flew grow) * @param grow The grow factor for this node. Default is 1 */ - static SpacerNodeChild* create(CCNode* child, size_t grow = 1); + static SpacerNodeChild* create(cocos2d::CCNode* child, size_t grow = 1); - void setContentSize(CCSize const& size) override; + void setContentSize(cocos2d::CCSize const& size) override; }; #pragma warning(pop) -NS_CC_END +} \ No newline at end of file diff --git a/loader/include/Geode/utils/JsonValidation.hpp b/loader/include/Geode/utils/JsonValidation.hpp index ee18c68c..461be50b 100644 --- a/loader/include/Geode/utils/JsonValidation.hpp +++ b/loader/include/Geode/utils/JsonValidation.hpp @@ -78,226 +78,6 @@ namespace geode { struct JsonMaybeObject; struct JsonMaybeValue; - struct GEODE_DLL - [[deprecated("Use JsonExpectedValue via the checkJson function instead")]] - JsonMaybeSomething { - protected: - JsonChecker& m_checker; - matjson::Value& m_json; - std::string m_hierarchy; - bool m_hasValue; - - friend struct JsonMaybeObject; - friend struct JsonMaybeValue; - - void setError(std::string const& error); - - public: - matjson::Value& json(); - - JsonMaybeSomething( - JsonChecker& checker, matjson::Value& json, std::string const& hierarchy, bool hasValue - ); - - bool isError() const; - std::string getError() const; - - operator bool() const; - }; - - struct GEODE_DLL - [[deprecated("Use JsonExpectedValue via the checkJson function instead")]] - JsonMaybeValue : public JsonMaybeSomething { - bool m_inferType = true; - - JsonMaybeValue( - JsonChecker& checker, matjson::Value& json, std::string const& hierarchy, bool hasValue - ); - - JsonMaybeSomething& self(); - - template - JsonMaybeValue& as() { - if (this->isError()) return *this; - if (!jsonConvertibleTo(self().m_json.type(), T)) { - this->setError( - self().m_hierarchy + ": Invalid type \"" + jsonValueTypeToString(self().m_json.type()) + - "\", expected \"" + jsonValueTypeToString(T) + "\"" - ); - } - m_inferType = false; - return *this; - } - - JsonMaybeValue& array(); - - template - JsonMaybeValue& asOneOf() { - if (this->isError()) return *this; - bool isOneOf = (... || jsonConvertibleTo(self().m_json.type(), T)); - if (!isOneOf) { - this->setError( - self().m_hierarchy + ": Invalid type \"" + jsonValueTypeToString(self().m_json.type()) + - "\", expected one of \"" + (jsonValueTypeToString(T), ...) + "\"" - ); - } - m_inferType = false; - return *this; - } - - template - bool is() { - if (this->isError()) return false; - return self().m_json.is(); - } - - template - JsonMaybeValue& validate(JsonValueValidator validator) { - if (this->isError()) return *this; - if (self().m_json.is()) { - if (!validator(self().m_json.as())) { - this->setError(self().m_hierarchy + ": Invalid value format"); - } - } - else { - this->setError( - self().m_hierarchy + ": Invalid type \"" + - std::string(jsonValueTypeToString(self().m_json.type())) + "\"" - ); - } - return *this; - } - - template - JsonMaybeValue& inferType() { - if (this->isError() || !m_inferType) return *this; - return this->as()>(); - } - - template - JsonMaybeValue& intoRaw(T& target) { - if (this->isError()) return *this; - target = self().m_json; - return *this; - } - - template - JsonMaybeValue& into(T& target) { - return this->intoAs(target); - } - - template - JsonMaybeValue& into(std::optional& target) { - return this->intoAs>(target); - } - - template - JsonMaybeValue& intoAs(T& target) { - this->inferType(); - if (this->isError()) return *this; - - if (self().m_json.is()) { - try { - target = self().m_json.as(); - } - catch(matjson::JsonException const& e) { - this->setError( - self().m_hierarchy + ": Error parsing JSON: " + std::string(e.what()) - ); - } - } - else { - this->setError( - self().m_hierarchy + ": Invalid type \"" + - std::string(jsonValueTypeToString(self().m_json.type())) + "\"" - ); - } - - return *this; - } - - template - T get() { - this->inferType(); - if (this->isError()) return T(); - if (self().m_json.is()) { - return self().m_json.as(); - } - return T(); - } - - JsonMaybeObject obj(); - - template - struct Iterator { - std::vector m_values; - - using iterator = typename std::vector::iterator; - using const_iterator = typename std::vector::const_iterator; - - iterator begin() { - return m_values.begin(); - } - - iterator end() { - return m_values.end(); - } - - const_iterator begin() const { - return m_values.begin(); - } - - const_iterator end() const { - return m_values.end(); - } - }; - - JsonMaybeValue at(size_t i); - - Iterator iterate(); - - Iterator> items(); - }; - - struct - [[deprecated("Use JsonExpectedValue via the checkJson function instead")]] - GEODE_DLL JsonMaybeObject : JsonMaybeSomething { - std::set m_knownKeys; - - JsonMaybeObject( - JsonChecker& checker, matjson::Value& json, std::string const& hierarchy, bool hasValue - ); - - JsonMaybeSomething& self(); - - void addKnownKey(std::string const& key); - - matjson::Value& json(); - - JsonMaybeValue emptyValue(); - - JsonMaybeValue has(std::string const& key); - - JsonMaybeValue needs(std::string const& key); - - void checkUnknownKeys(); - }; - - struct - [[deprecated("Use JsonExpectedValue via the checkJson function instead")]] - GEODE_DLL JsonChecker { - std::variant m_result; - matjson::Value& m_json; - - JsonChecker(matjson::Value& json); - - bool isError() const; - - std::string getError() const; - - JsonMaybeValue root(std::string const& hierarchy); - }; - class GEODE_DLL JsonExpectedValue final { protected: class Impl; diff --git a/loader/include/Geode/utils/VersionInfo.hpp b/loader/include/Geode/utils/VersionInfo.hpp index e7469eac..ce57ba71 100644 --- a/loader/include/Geode/utils/VersionInfo.hpp +++ b/loader/include/Geode/utils/VersionInfo.hpp @@ -186,8 +186,6 @@ namespace geode { std::tie(other.m_major, other.m_minor, other.m_patch, other.m_tag); } - [[deprecated("Use toNonVString or toVString instead")]] - std::string toString(bool includeTag = true) const; std::string toVString(bool includeTag = true) const; std::string toNonVString(bool includeTag = true) const; diff --git a/loader/include/Geode/utils/cocos.hpp b/loader/include/Geode/utils/cocos.hpp index 29d67d97..a25c2586 100644 --- a/loader/include/Geode/utils/cocos.hpp +++ b/loader/include/Geode/utils/cocos.hpp @@ -615,18 +615,6 @@ namespace geode::cocos { return static_cast(x->getChildren()->objectAtIndex(i)); } - /** - * Get nth child that is a given type. Checks bounds. - * @returns Child at index cast to the given type, - * or nullptr if index exceeds bounds - */ - - template - [[deprecated("Use CCNode::getChildByType instead")]] - static Type* getChildOfType(cocos2d::CCNode* node, int index) { - return node->getChildByType(index); - } - /** * Return a node, or create a default one if it's * nullptr. Syntactic sugar function @@ -856,30 +844,6 @@ namespace geode::cocos { return {color.r / 255.f, color.g / 255.f, color.b / 255.f, color.a / 255.f}; } - [[deprecated("This function may have unintended behavior, use cc3bFromHexString or manually expand the color instead")]] - constexpr cocos2d::ccColor3B cc3x(int hexValue) { - if (hexValue <= 0xf) - return cocos2d::ccColor3B{ - static_cast(hexValue * 17), - static_cast(hexValue * 17), - static_cast(hexValue * 17)}; - if (hexValue <= 0xff) - return cocos2d::ccColor3B{ - static_cast(hexValue), - static_cast(hexValue), - static_cast(hexValue)}; - if (hexValue <= 0xfff) - return cocos2d::ccColor3B{ - static_cast((hexValue >> 8 & 0xf) * 17), - static_cast((hexValue >> 4 & 0xf) * 17), - static_cast((hexValue >> 0 & 0xf) * 17)}; - else - return cocos2d::ccColor3B{ - static_cast(hexValue >> 16 & 0xff), - static_cast(hexValue >> 8 & 0xff), - static_cast(hexValue >> 0 & 0xff)}; - } - /** * Parse a ccColor3B from a hexadecimal string. The string may contain * a leading '#' diff --git a/loader/include/Geode/utils/general.hpp b/loader/include/Geode/utils/general.hpp index 73b64137..8d84c4a0 100644 --- a/loader/include/Geode/utils/general.hpp +++ b/loader/include/Geode/utils/general.hpp @@ -17,15 +17,6 @@ namespace geode { using ByteVector = std::vector; - // todo in v4: remove this - template - [[deprecated("Use geode::toBytes instead")]] - ByteVector toByteArray(T const& a) { - ByteVector out; - out.resize(sizeof(T)); - std::memcpy(out.data(), &a, sizeof(T)); - return out; - } template ByteVector toBytes(T const& a) { ByteVector out; diff --git a/loader/src/cocos2d-ext/AxisLayout.cpp b/loader/src/cocos2d-ext/AxisLayout.cpp index cedded25..bdb820f9 100644 --- a/loader/src/cocos2d-ext/AxisLayout.cpp +++ b/loader/src/cocos2d-ext/AxisLayout.cpp @@ -1026,14 +1026,6 @@ std::optional AxisLayoutOptions::getCrossAxisAlignment() const { return m_impl->m_crossAxisAlignment; } -AxisLayoutOptions* AxisLayoutOptions::setMaxScale(float scale) { - m_impl->m_scaleLimits.second = scale; - return this; -} -AxisLayoutOptions* AxisLayoutOptions::setMinScale(float scale) { - m_impl->m_scaleLimits.first = scale; - return this; -} AxisLayoutOptions* AxisLayoutOptions::setScaleLimits(std::optional min, std::optional max) { m_impl->m_scaleLimits = { min, max }; return this; diff --git a/loader/src/hooks/GeodeNodeMetadata.cpp b/loader/src/hooks/GeodeNodeMetadata.cpp index e1b79274..37e22b8d 100644 --- a/loader/src/hooks/GeodeNodeMetadata.cpp +++ b/loader/src/hooks/GeodeNodeMetadata.cpp @@ -62,10 +62,6 @@ public: return meta; } - FieldContainer* getFieldContainer() { - return nullptr; - } - FieldContainer* getFieldContainer(char const* forClass) { if (!m_classFieldContainers.count(forClass)) { m_classFieldContainers[forClass] = new FieldContainer(); @@ -104,11 +100,6 @@ size_t modifier::getFieldIndexForClass(char const* name) { return s_nextIndex[name]++; } -// not const because might modify contents -FieldContainer* CCNode::getFieldContainer() { - return GeodeNodeMetadata::set(this)->getFieldContainer(); -} - FieldContainer* CCNode::getFieldContainer(char const* forClass) { return GeodeNodeMetadata::set(this)->getFieldContainer(forClass); } @@ -455,13 +446,4 @@ void CCNode::updateAnchoredPosition(Anchor anchor, CCPoint const& offset, CCPoin } } -#ifdef GEODE_EXPORTING - -void CCNode::setAttribute(std::string const& attr, matjson::Value const& value) {} -std::optional CCNode::getAttributeInternal(std::string const& attr) { - return std::nullopt; -} - -#endif - #pragma warning(pop) diff --git a/loader/src/load.cpp b/loader/src/load.cpp index 11ca5216..ef9b38b4 100644 --- a/loader/src/load.cpp +++ b/loader/src/load.cpp @@ -7,7 +7,6 @@ #include #include #include -#include #include #include @@ -30,8 +29,7 @@ $on_mod(Loaded) { std::vector res; auto args = *event->messageData; - JsonChecker checker(args); - auto root = checker.root("[ipc/list-mods]").obj(); + auto root = checkJson(args, "[ipc/list-mods]"); auto includeRunTimeInfo = root.has("include-runtime-info").get(); auto dontIncludeLoader = root.has("dont-include-loader").get(); diff --git a/loader/src/loader/Mod.cpp b/loader/src/loader/Mod.cpp index 55b4c9a2..c377f9c6 100644 --- a/loader/src/loader/Mod.cpp +++ b/loader/src/loader/Mod.cpp @@ -20,10 +20,6 @@ std::string Mod::getName() const { return m_impl->getName(); } -std::string Mod::getDeveloper() const { - return m_impl->getDevelopers().empty() ? "" : m_impl->getDevelopers().front(); -} - std::vector Mod::getDevelopers() const { return m_impl->getDevelopers(); } @@ -101,9 +97,6 @@ std::vector Mod::getDependants() const { } #endif -std::optional Mod::hasAvailableUpdate() const { - return std::nullopt; -} Mod::CheckUpdatesTask Mod::checkUpdates() const { return server::checkUpdates(this).map( [](auto* result) -> Mod::CheckUpdatesTask::Value { @@ -159,24 +152,10 @@ bool Mod::hasSetting(std::string_view const key) const { return m_impl->hasSetting(key); } -std::optional Mod::getSettingDefinition(std::string_view const key) const { - return m_impl->m_settings->getLegacyDefinition(std::string(key)); -} - -SettingValue* Mod::getSetting(std::string_view const key) const { - return m_impl->m_settings->getLegacy(std::string(key)).get(); -} - std::shared_ptr Mod::getSettingV3(std::string_view const key) const { return m_impl->m_settings->get(std::string(key)); } -void Mod::registerCustomSetting(std::string_view const key, std::unique_ptr value) { - auto reg = m_impl->m_settings->registerLegacyCustomSetting(key, std::move(value)); - if (!reg) { - log::error("Unable to register custom setting: {}", reg.unwrapErr()); - } -} Result<> Mod::registerCustomSettingType(std::string_view type, SettingGenerator generator) { return m_impl->m_settings->registerCustomSettingType(type, generator); } diff --git a/loader/src/loader/ModMetadataImpl.cpp b/loader/src/loader/ModMetadataImpl.cpp index e99a25e0..f16c82e7 100644 --- a/loader/src/loader/ModMetadataImpl.cpp +++ b/loader/src/loader/ModMetadataImpl.cpp @@ -528,18 +528,6 @@ std::vector ModMetadata::getIncompatibilities() co std::vector ModMetadata::getSpritesheets() const { return m_impl->m_spritesheets; } -std::vector> ModMetadata::getSettings() const { - std::vector> res; - for (auto [key, sett] : m_impl->m_settings) { - auto checker = JsonChecker(sett); - auto value = checker.root(""); - auto legacy = Setting::parse(key, m_impl->m_id, value); - if (!checker.isError() && legacy.isOk()) { - res.push_back(std::make_pair(key, *legacy)); - } - } - return res; -} std::vector> ModMetadata::getSettingsV3() const { return m_impl->m_settings; } diff --git a/loader/src/loader/ModSettingsManager.cpp b/loader/src/loader/ModSettingsManager.cpp index 4922c57d..23615909 100644 --- a/loader/src/loader/ModSettingsManager.cpp +++ b/loader/src/loader/ModSettingsManager.cpp @@ -13,8 +13,6 @@ private: std::unordered_map m_types; SharedSettingTypesPool() : m_types({ - // todo in v4: remove this - { "custom", &LegacyCustomSettingV3::parse }, { "title", &TitleSettingV3::parse }, { "bool", &BoolSettingV3::parse }, { "int", &IntSettingV3::parse }, @@ -202,19 +200,6 @@ Result<> ModSettingsManager::registerLegacyCustomSetting(std::string_view key, s if (!m_impl->settings.count(id)) { return Err("No such setting '{}' in mod {}", id, m_impl->modID); } - auto& sett = m_impl->settings.at(id); - if (auto custom = typeinfo_pointer_cast(sett.v3)) { - if (!custom->getValue()) { - custom->setValue(std::move(ptr)); - m_impl->loadSettingValueFromSave(id); - } - else { - return Err("Setting '{}' in mod {} has already been registed", id, m_impl->modID); - } - } - else { - return Err("Setting '{}' in mod {} is not a legacy custom setting", id, m_impl->modID); - } return Ok(); } @@ -244,33 +229,6 @@ std::shared_ptr ModSettingsManager::get(std::string_view key) { auto id = std::string(key); return m_impl->settings.count(id) ? m_impl->settings.at(id).v3 : nullptr; } -std::shared_ptr ModSettingsManager::getLegacy(std::string_view key) { - auto id = std::string(key); - if (!m_impl->settings.count(id)) { - return nullptr; - } - auto& info = m_impl->settings.at(id); - // If this setting has alreay been given a legacy interface, give that - if (info.legacy) { - return info.legacy; - } - // Uninitialized settings are null - if (!info.v3) { - return nullptr; - } - // Generate new legacy interface - if (auto legacy = info.v3->convertToLegacyValue()) { - info.legacy.swap(*legacy); - return info.legacy; - } - return nullptr; -} -std::optional ModSettingsManager::getLegacyDefinition(std::string_view key) { - if (auto s = this->get(key)) { - return s->convertToLegacy(); - } - return std::nullopt; -} bool ModSettingsManager::restartRequired() const { return m_impl->restartRequired; diff --git a/loader/src/loader/Setting.cpp b/loader/src/loader/Setting.cpp deleted file mode 100644 index 432f6d96..00000000 --- a/loader/src/loader/Setting.cpp +++ /dev/null @@ -1,498 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using namespace geode::prelude; - -template -static void parseCommon(T& sett, JsonMaybeObject& obj) { - obj.has("name").into(sett.name); - obj.has("description").into(sett.description); - if (auto defValue = obj.needs("default")) { - // Platform-specific default value - if (defValue.is()) { - auto def = defValue.obj(); - if (auto plat = def.has(PlatformID::toShortString(GEODE_PLATFORM_TARGET, true))) { - plat.into(sett.defaultValue); - } - else { - defValue.into(sett.defaultValue); - } - } - else { - defValue.into(sett.defaultValue); - } - } -} - -Result BoolSetting::parse(JsonMaybeObject& obj) { - BoolSetting sett; - parseCommon(sett, obj); - return Ok(sett); -} - -Result IntSetting::parse(JsonMaybeObject& obj) { - IntSetting sett; - parseCommon(sett, obj); - obj.has("min").into(sett.min); - obj.has("max").into(sett.max); - if (auto controls = obj.has("control").obj()) { - controls.has("arrows").into(sett.controls.arrows); - controls.has("big-arrows").into(sett.controls.bigArrows); - controls.has("arrow-step").into(sett.controls.arrowStep); - controls.has("big-arrow-step").into(sett.controls.bigArrowStep); - controls.has("slider").into(sett.controls.slider); - controls.has("slider-step").into(sett.controls.sliderStep); - controls.has("input").into(sett.controls.input); - } - return Ok(sett); -} - -Result FloatSetting::parse(JsonMaybeObject& obj) { - FloatSetting sett; - parseCommon(sett, obj); - obj.has("min").into(sett.min); - obj.has("max").into(sett.max); - if (auto controls = obj.has("control").obj()) { - controls.has("arrows").into(sett.controls.arrows); - controls.has("big-arrows").into(sett.controls.bigArrows); - controls.has("arrow-step").into(sett.controls.arrowStep); - controls.has("big-arrow-step").into(sett.controls.bigArrowStep); - controls.has("slider").into(sett.controls.slider); - controls.has("slider-step").into(sett.controls.sliderStep); - controls.has("input").into(sett.controls.input); - } - return Ok(sett); -} - -Result StringSetting::parse(JsonMaybeObject& obj) { - StringSetting sett; - parseCommon(sett, obj); - obj.has("match").into(sett.controls->match); - obj.has("filter").into(sett.controls->filter); - obj.has("one-of").into(sett.controls->options); - return Ok(sett); -} - -Result FileSetting::parse(JsonMaybeObject& obj) { - FileSetting sett; - parseCommon(sett, obj); - if (auto controls = obj.has("control").obj()) { - for (auto& item : controls.has("filters").iterate()) { - if (auto iobj = item.obj()) { - Filter filter; - iobj.has("description").into(filter.description); - - std::vector files; - iobj.has("files").into(files); - - for (auto& i : files) { - filter.files.insert(i.as()); - } - - sett.controls.filters.push_back(filter); - } - } - } - return Ok(sett); -} - -Result ColorSetting::parse(JsonMaybeObject& obj) { - ColorSetting sett; - parseCommon(sett, obj); - return Ok(sett); -} - -Result ColorAlphaSetting::parse(JsonMaybeObject& obj) { - ColorAlphaSetting sett; - parseCommon(sett, obj); - return Ok(sett); -} - -Result Setting::parse( - std::string const& key, - std::string const& mod, - JsonMaybeValue& value -) { - auto sett = Setting(); - sett.m_key = key; - sett.m_modID = mod; - if (auto obj = value.obj()) { - std::string type; - obj.needs("type").into(type); - if (type.size()) { - switch (hash(type.c_str())) { - case hash("bool"): { - GEODE_UNWRAP_INTO(sett.m_kind, BoolSetting::parse(obj)); - } break; - - case hash("int"): { - GEODE_UNWRAP_INTO(sett.m_kind, IntSetting::parse(obj)); - } break; - - case hash("float"): { - GEODE_UNWRAP_INTO(sett.m_kind, FloatSetting::parse(obj)); - } break; - - case hash("string"): { - GEODE_UNWRAP_INTO(sett.m_kind, StringSetting::parse(obj)); - } break; - - case hash("rgb"): case hash("color"): { - GEODE_UNWRAP_INTO(sett.m_kind, ColorSetting::parse(obj)); - } break; - - case hash("rgba"): { - GEODE_UNWRAP_INTO(sett.m_kind, ColorAlphaSetting::parse(obj)); - } break; - - case hash("path"): case hash("file"): { - GEODE_UNWRAP_INTO(sett.m_kind, FileSetting::parse(obj)); - } break; - - case hash("custom"): { - sett.m_kind = CustomSetting { - .json = std::make_shared(obj.json()) - }; - // skip checking unknown keys - return Ok(sett); - } break; - - default: return Err("Unknown setting type \"" + type + "\""); - } - } - - // this is handled before the setting is parsed - obj.addKnownKey("platforms"); - - obj.checkUnknownKeys(); - } - // if the type wasn't an object or a string, the JsonChecker that gave the - // JsonMaybeValue will fail eventually so we can continue on - return Ok(sett); -} - -Setting::Setting( - std::string const& key, - std::string const& mod, - SettingKind const& kind -) : m_key(key), m_modID(mod), m_kind(kind) {} - -std::unique_ptr Setting::createDefaultValue() const { - return std::visit(makeVisitor { - [&](BoolSetting const& sett) -> std::unique_ptr { - return std::make_unique(m_key, m_modID, sett); - }, - [&](IntSetting const& sett) -> std::unique_ptr { - return std::make_unique(m_key, m_modID, sett); - }, - [&](FloatSetting const& sett) -> std::unique_ptr { - return std::make_unique(m_key, m_modID, sett); - }, - [&](StringSetting const& sett) -> std::unique_ptr { - return std::make_unique(m_key, m_modID, sett); - }, - [&](FileSetting const& sett) -> std::unique_ptr { - return std::make_unique(m_key, m_modID, sett); - }, - [&](ColorSetting const& sett) -> std::unique_ptr { - return std::make_unique(m_key, m_modID, sett); - }, - [&](ColorAlphaSetting const& sett) -> std::unique_ptr { - return std::make_unique(m_key, m_modID, sett); - }, - [&](auto const& sett) -> std::unique_ptr { - return nullptr; - }, - }, m_kind); -} - -bool Setting::isCustom() const { - return std::holds_alternative(m_kind); -} - -std::string Setting::getDisplayName() const { - return std::visit(makeVisitor { - [&](CustomSetting const& sett) { - return std::string(); - }, - [&](auto const& sett) { - return sett.name.value_or(m_key); - }, - }, m_kind); -} - -std::optional Setting::getDescription() const { - return std::visit(makeVisitor { - [&](CustomSetting const& sett) -> std::optional { - return std::nullopt; - }, - [&](auto const& sett) { - return sett.description; - }, - }, m_kind); -} - -std::string Setting::getModID() const { - return m_modID; -} - -// StringSetting - -StringSetting::StringSetting() : name(), description(), defaultValue(), controls(new Data()) {} -StringSetting::StringSetting(StringSetting const& other) : name(other.name), description(other.description), - defaultValue(other.defaultValue), controls(new Data(*other.controls)) {} -StringSetting::StringSetting(StringSetting&& other) noexcept : name(std::move(other.name)), description(std::move(other.description)), - defaultValue(std::move(other.defaultValue)), controls(std::move(other.controls)) {} -StringSetting& StringSetting::operator=(StringSetting const& other) { - name = other.name; - description = other.description; - defaultValue = other.defaultValue; - *controls = *other.controls; - return *this; -} -StringSetting& StringSetting::operator=(StringSetting&& other) noexcept { - name = std::move(other.name); - description = std::move(other.description); - defaultValue = std::move(other.defaultValue); - controls = std::move(other.controls); - return *this; -} -StringSetting::~StringSetting() = default; - -// SettingValue - -SettingValue::SettingValue(std::string const& key, std::string const& mod) - : m_key(key), m_modID(mod) {} - -std::string SettingValue::getKey() const { - return m_key; -} - -std::string SettingValue::getModID() const { - return m_modID; -} - -void SettingValue::valueChanged() { - if (auto mod = Loader::get()->getLoadedMod(m_modID)) { - if (auto sett = mod->getSettingV3(m_key)) { - sett->markChanged(); - } - } -} - -// GeodeSettingValue & SettingValueSetter specializations - -#define IMPL_NODE_AND_SETTERS(type_) \ - template<> \ - SettingNode* GeodeSettingValue< \ - type_##Setting \ - >::createNode(float width) { \ - return type_##SettingNode::create(this, width); \ - } \ - template<> \ - typename GeodeSettingValue::ValueType \ - GeodeSettingValue::getValue() const { \ - using S = typename SettingTypeForValueType::SettingType; \ - if (auto mod = Loader::get()->getInstalledMod(m_modID)) { \ - if (auto setting = typeinfo_pointer_cast(mod->getSettingV3(m_key))) {\ - return setting->getValue(); \ - } \ - } \ - return m_value; \ - } \ - template<> \ - void GeodeSettingValue< \ - type_##Setting \ - >::setValue(ValueType const& value) { \ - using S = typename SettingTypeForValueType::SettingType; \ - if (auto mod = Loader::get()->getInstalledMod(m_modID)) { \ - if (auto setting = typeinfo_pointer_cast(mod->getSettingV3(m_key))) {\ - return setting->setValue(value); \ - } \ - } \ - } \ - template<> \ - Result<> GeodeSettingValue< \ - type_##Setting \ - >::validate(ValueType const& value) const { \ - using S = typename SettingTypeForValueType::SettingType; \ - if (auto mod = Loader::get()->getInstalledMod(m_modID)) { \ - if (auto setting = typeinfo_pointer_cast(mod->getSettingV3(m_key))) {\ - return setting->isValid(value); \ - } \ - } \ - return Ok(); \ - } \ - template<> \ - typename type_##Setting::ValueType SettingValueSetter< \ - typename type_##Setting::ValueType \ - >::get(SettingValue* setting) { \ - using S = typename SettingTypeForValueType::SettingType; \ - if (auto mod = Loader::get()->getInstalledMod(setting->getModID())) { \ - if (auto sett = typeinfo_pointer_cast(mod->getSettingV3(setting->getKey()))) { \ - return sett->getValue(); \ - } \ - } \ - return typename type_##Setting::ValueType(); \ - } \ - template<> \ - void SettingValueSetter< \ - typename type_##Setting::ValueType \ - >::set( \ - SettingValue* setting, \ - typename type_##Setting::ValueType const& value \ - ) { \ - using S = typename SettingTypeForValueType::SettingType; \ - if (auto mod = Loader::get()->getInstalledMod(setting->getModID())) { \ - if (auto sett = typeinfo_pointer_cast(mod->getSettingV3(setting->getKey()))) { \ - return sett->setValue(value); \ - } \ - } \ - } - -#define IMPL_TO_VALID(type_) \ - template<> \ - typename GeodeSettingValue::Valid \ - GeodeSettingValue::toValid( \ - typename type_##Setting::ValueType const& value \ - ) const - -// instantiate values - -namespace geode { - template class GeodeSettingValue; - template class GeodeSettingValue; - template class GeodeSettingValue; - template class GeodeSettingValue; - template class GeodeSettingValue; - template class GeodeSettingValue; - template class GeodeSettingValue; -} - -IMPL_TO_VALID(Bool) { - return { value, std::nullopt }; -} - -IMPL_TO_VALID(Int) { - if (m_definition.min && value < m_definition.min) { - return { m_definition.min.value(), fmt::format( - "Value must be more than or equal to {}", - m_definition.min.value() - ) }; - } - if (m_definition.max && value > m_definition.max) { - return { m_definition.max.value(), fmt::format( - "Value must be less than or equal to {}", - m_definition.max.value() - ) }; - } - return { value, std::nullopt }; -} - -IMPL_TO_VALID(Float) { - if (m_definition.min && value < m_definition.min) { - return { m_definition.min.value(), fmt::format( - "Value must be more than or equal to {}", - m_definition.min.value() - ) }; - } - if (m_definition.max && value > m_definition.max) { - return { m_definition.max.value(), fmt::format( - "Value must be less than or equal to {}", - m_definition.max.value() - ) }; - } - return { value, std::nullopt }; -} - -IMPL_TO_VALID(String) { - if (m_definition.controls->match) { - if (!std::regex_match(value, std::regex{m_definition.controls->match.value()})) { - return { - m_definition.defaultValue, - fmt::format( - "Value must match regex {}", - m_definition.controls->match.value() - ) - }; - } - } - else if (m_definition.controls->options) { - if (std::find( - m_definition.controls->options.value().begin(), - m_definition.controls->options.value().end(), - value - ) == m_definition.controls->options.value().end()) { - return { - m_definition.defaultValue, - fmt::format( - "Value must be one of {}", - fmt::join(m_definition.controls->options.value(), ", ") - ) - }; - } - } - return { value, std::nullopt }; -} - -IMPL_TO_VALID(File) { - return { value, std::nullopt }; -} - -IMPL_TO_VALID(Color) { - return { value, std::nullopt }; -} - -IMPL_TO_VALID(ColorAlpha) { - return { value, std::nullopt }; -} - -IMPL_NODE_AND_SETTERS(Bool); -IMPL_NODE_AND_SETTERS(Int); -IMPL_NODE_AND_SETTERS(Float); -IMPL_NODE_AND_SETTERS(String); -IMPL_NODE_AND_SETTERS(File); -IMPL_NODE_AND_SETTERS(Color); -IMPL_NODE_AND_SETTERS(ColorAlpha); - -// instantiate value setters - -namespace geode { - template struct SettingValueSetter; - template struct SettingValueSetter; - template struct SettingValueSetter; - template struct SettingValueSetter; - template struct SettingValueSetter; - template struct SettingValueSetter; - template struct SettingValueSetter; -} - -// SettingChangedEvent - -SettingChangedEvent::SettingChangedEvent(Mod* mod, SettingValue* value) - : mod(mod), value(value) {} - -// SettingChangedFilter - -ListenerResult SettingChangedFilter::handle( - utils::MiniFunction fn, SettingChangedEvent* event -) { - if (m_modID == event->mod->getID() && - (!m_targetKey || m_targetKey.value() == event->value->getKey()) - ) { - fn(event->value); - } - return ListenerResult::Propagate; -} - -SettingChangedFilter::SettingChangedFilter( - std::string const& modID, - std::optional const& settingKey -) : m_modID(modID), m_targetKey(settingKey) {} diff --git a/loader/src/loader/SettingNode.cpp b/loader/src/loader/SettingNode.cpp deleted file mode 100644 index 17f3e67b..00000000 --- a/loader/src/loader/SettingNode.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include - -using namespace geode::prelude; - -void SettingNode::dispatchChanged() { - if (m_delegate) { - m_delegate->settingValueChanged(this); - } -} - -void SettingNode::dispatchCommitted() { - if (m_delegate) { - m_delegate->settingValueCommitted(this); - } -} - -bool SettingNode::init(SettingValue* value) { - m_value = value; - return true; -} - -void SettingNode::setDelegate(SettingNodeDelegate* delegate) { - m_delegate = delegate; -} diff --git a/loader/src/loader/SettingNodeV3.cpp b/loader/src/loader/SettingNodeV3.cpp index a02f4701..19573417 100644 --- a/loader/src/loader/SettingNodeV3.cpp +++ b/loader/src/loader/SettingNodeV3.cpp @@ -1,5 +1,4 @@ #include "SettingNodeV3.hpp" -#include #include #include #include diff --git a/loader/src/loader/SettingNodeV3.hpp b/loader/src/loader/SettingNodeV3.hpp index c20f498b..be462eb5 100644 --- a/loader/src/loader/SettingNodeV3.hpp +++ b/loader/src/loader/SettingNodeV3.hpp @@ -1,7 +1,6 @@ #pragma once #include -#include #include #include #include @@ -314,25 +313,3 @@ public: bool hasNonDefaultValue() const override; void onResetToDefault() override; }; - -// If these classes do get exposed in headers, -// LegacyCustomSettingToV3Node SHOULD NOT BE EXPOSED!!!!!! DO NOT DO THAT!!!! - -class LegacyCustomSettingToV3Node : public SettingNodeV3, public SettingNodeDelegate { -protected: - SettingNode* m_original; - - bool init(std::shared_ptr original, float width); - - void onCommit() override; - - void settingValueChanged(SettingNode*) override; - void settingValueCommitted(SettingNode*) override; - -public: - static LegacyCustomSettingToV3Node* create(std::shared_ptr original, float width); - - bool hasUncommittedChanges() const override; - bool hasNonDefaultValue() const override; - void onResetToDefault() override; -}; diff --git a/loader/src/loader/SettingV3.cpp b/loader/src/loader/SettingV3.cpp index 5b3e4534..6ee54927 100644 --- a/loader/src/loader/SettingV3.cpp +++ b/loader/src/loader/SettingV3.cpp @@ -1,5 +1,4 @@ #include -#include #include #include #include @@ -574,19 +573,12 @@ void SettingV3::markChanged() { } SettingChangedEventV3(shared_from_this()).post(); if (manager) { + // TODO: v4 // Use ModSettingsManager rather than convertToLegacyValue since it // caches the result and we want to have that for performance - SettingChangedEvent(this->getMod(), manager->getLegacy(this->getKey()).get()).post(); + // SettingChangedEvent(this->getMod(), manager->getLegacy(this->getKey()).get()).post(); } } - -std::optional SettingV3::convertToLegacy() const { - return std::nullopt; -} -std::optional> SettingV3::convertToLegacyValue() const { - return std::nullopt; -} - class TitleSettingV3::Impl final { public: }; @@ -666,15 +658,6 @@ bool LegacyCustomSettingV3::isDefaultValue() const { } void LegacyCustomSettingV3::reset() {} -std::optional LegacyCustomSettingV3::convertToLegacy() const { - return Setting(this->getKey(), this->getModID(), SettingKind(CustomSetting { - .json = std::make_shared(m_impl->json) - })); -} -std::optional> LegacyCustomSettingV3::convertToLegacyValue() const { - return m_impl->legacyValue ? std::optional(m_impl->legacyValue) : std::nullopt; -} - class BoolSettingV3::Impl final { public: }; @@ -699,17 +682,6 @@ SettingNodeV3* BoolSettingV3::createNode(float width) { ); } -std::optional BoolSettingV3::convertToLegacy() const { - return Setting(this->getKey(), this->getModID(), SettingKind(BoolSetting { - .name = this->getName(), - .description = this->getDescription(), - .defaultValue = this->getDefaultValue(), - })); -} -std::optional> BoolSettingV3::convertToLegacyValue() const { - return this->convertToLegacy()->createDefaultValue(); -} - class IntSettingV3::Impl final { public: std::optional minValue; @@ -819,28 +791,6 @@ SettingNodeV3* IntSettingV3::createNode(float width) { ); } -std::optional IntSettingV3::convertToLegacy() const { - return Setting(this->getKey(), this->getModID(), SettingKind(IntSetting { - .name = this->getName(), - .description = this->getDescription(), - .defaultValue = this->getDefaultValue(), - .min = this->getMinValue(), - .max = this->getMaxValue(), - .controls = { - .arrows = this->isArrowsEnabled(), - .bigArrows = this->isBigArrowsEnabled(), - .arrowStep = this->getArrowStepSize(), - .bigArrowStep = this->getBigArrowStepSize(), - .slider = this->isSliderEnabled(), - .sliderStep = this->getSliderSnap(), - .input = this->isInputEnabled(), - }, - })); -} -std::optional> IntSettingV3::convertToLegacyValue() const { - return this->convertToLegacy()->createDefaultValue(); -} - class FloatSettingV3::Impl final { public: std::optional minValue; @@ -948,27 +898,6 @@ SettingNodeV3* FloatSettingV3::createNode(float width) { ); } -std::optional FloatSettingV3::convertToLegacy() const { - return Setting(this->getKey(), this->getModID(), SettingKind(FloatSetting { - .name = this->getName(), - .description = this->getDescription(), - .defaultValue = this->getDefaultValue(), - .min = this->getMinValue(), - .max = this->getMaxValue(), - .controls = { - .arrows = this->isArrowsEnabled(), - .bigArrows = this->isBigArrowsEnabled(), - .arrowStep = static_cast(this->getArrowStepSize()), - .bigArrowStep = static_cast(this->getBigArrowStepSize()), - .slider = this->isSliderEnabled(), - .sliderStep = this->getSliderSnap(), - .input = this->isInputEnabled(), - }, - })); -} -std::optional> FloatSettingV3::convertToLegacyValue() const { - return this->convertToLegacy()->createDefaultValue(); -} class StringSettingV3::Impl final { public: @@ -1026,20 +955,6 @@ SettingNodeV3* StringSettingV3::createNode(float width) { ); } -std::optional StringSettingV3::convertToLegacy() const { - auto setting = StringSetting(); - setting.name = this->getName(); - setting.description = this->getDescription(); - setting.defaultValue = this->getDefaultValue(); - setting.controls->filter = this->getAllowedCharacters(); - setting.controls->match = this->getRegexValidator(); - setting.controls->options = this->getEnumOptions(); - return Setting(this->getKey(), this->getModID(), SettingKind(setting)); -} -std::optional> StringSettingV3::convertToLegacyValue() const { - return this->convertToLegacy()->createDefaultValue(); -} - class FileSettingV3::Impl final { public: bool folder = false; @@ -1153,18 +1068,6 @@ SettingNodeV3* FileSettingV3::createNode(float width) { ); } -std::optional FileSettingV3::convertToLegacy() const { - auto setting = FileSetting(); - setting.name = this->getName(); - setting.description = this->getDescription(); - setting.defaultValue = this->getDefaultValue(); - setting.controls.filters = this->getFilters().value_or(std::vector()); - return Setting(this->getKey(), this->getModID(), SettingKind(setting)); -} -std::optional> FileSettingV3::convertToLegacyValue() const { - return this->convertToLegacy()->createDefaultValue(); -} - class Color3BSettingV3::Impl final { public: }; @@ -1189,17 +1092,6 @@ SettingNodeV3* Color3BSettingV3::createNode(float width) { ); } -std::optional Color3BSettingV3::convertToLegacy() const { - auto setting = ColorSetting(); - setting.name = this->getName(); - setting.description = this->getDescription(); - setting.defaultValue = this->getDefaultValue(); - return Setting(this->getKey(), this->getModID(), SettingKind(setting)); -} -std::optional> Color3BSettingV3::convertToLegacyValue() const { - return this->convertToLegacy()->createDefaultValue(); -} - class Color4BSettingV3::Impl final { public: }; @@ -1223,14 +1115,3 @@ SettingNodeV3* Color4BSettingV3::createNode(float width) { std::static_pointer_cast(shared_from_this()), width ); } - -std::optional Color4BSettingV3::convertToLegacy() const { - auto setting = ColorAlphaSetting(); - setting.name = this->getName(); - setting.description = this->getDescription(); - setting.defaultValue = this->getDefaultValue(); - return Setting(this->getKey(), this->getModID(), SettingKind(setting)); -} -std::optional> Color4BSettingV3::convertToLegacyValue() const { - return this->convertToLegacy()->createDefaultValue(); -} diff --git a/loader/src/loader/updater.cpp b/loader/src/loader/updater.cpp index 1f040cd3..e5868a11 100644 --- a/loader/src/loader/updater.cpp +++ b/loader/src/loader/updater.cpp @@ -102,9 +102,7 @@ void updater::downloadLatestLoaderResources() { log::debug("Downloading latest resources", Loader::get()->getVersion().toVString()); fetchLatestGithubRelease( [](matjson::Value const& raw) { - auto json = raw; - JsonChecker checker(json); - auto root = checker.root("[]").obj(); + auto root = checkJson(raw, "[]"); // find release asset for (auto asset : root.needs("assets").iterate()) { @@ -206,9 +204,7 @@ void updater::downloadLoaderResources(bool useLatestRelease) { RUNNING_REQUESTS.erase("@downloadLoaderResources"); if (response->ok()) { if (auto ok = response->json()) { - auto json = ok.unwrap(); - JsonChecker checker(json); - auto root = checker.root("[]").obj(); + auto root = checkJson(ok.unwrap(), "[]"); // find release asset for (auto asset : root.needs("assets").iterate()) { @@ -362,9 +358,7 @@ void updater::checkForLoaderUpdates() { // Check for updates in the background fetchLatestGithubRelease( [](matjson::Value const& raw) { - auto json = raw; - JsonChecker checker(json); - auto root = checker.root("[]").obj(); + auto root = checkJson(raw, "[]"); VersionInfo ver { 0, 0, 0 }; root.needs("tag_name").into(ver); diff --git a/loader/src/server/Server.cpp b/loader/src/server/Server.cpp index 912d292d..9437e807 100644 --- a/loader/src/server/Server.cpp +++ b/loader/src/server/Server.cpp @@ -258,9 +258,7 @@ Result ServerDateTime::parse(std::string const& str) { } Result ServerModVersion::parse(matjson::Value const& raw) { - auto json = raw; - JsonChecker checker(json); - auto root = checker.root("ServerModVersion").obj(); + auto root = checkJson(raw, "ServerModVersion"); auto res = ServerModVersion(); @@ -356,9 +354,7 @@ Result ServerModVersion::parse(matjson::Value const& raw) { } Result ServerModReplacement::parse(matjson::Value const& raw) { - auto json = raw; - JsonChecker checker(json); - auto root = checker.root("ServerModReplacement").obj(); + auto root = checkJson(raw, "ServerModReplacement"); auto res = ServerModReplacement(); root.needs("id").into(res.id); @@ -371,9 +367,7 @@ Result ServerModReplacement::parse(matjson::Value const& r } Result ServerModUpdate::parse(matjson::Value const& raw) { - auto json = raw; - JsonChecker checker(json); - auto root = checker.root("ServerModUpdate").obj(); + auto root = checkJson(raw, "ServerModUpdate"); auto res = ServerModUpdate(); @@ -391,9 +385,7 @@ Result ServerModUpdate::parse(matjson::Value const& raw) { } Result> ServerModUpdate::parseList(matjson::Value const& raw) { - auto json = raw; - JsonChecker checker(json); - auto payload = checker.root("ServerModUpdatesList").array(); + auto payload = checkJson(raw, "ServerModUpdatesList"); std::vector list {}; for (auto item : payload.iterate()) { @@ -421,9 +413,7 @@ bool ServerModUpdate::hasUpdateForInstalledMod() const { } Result ServerModMetadata::parse(matjson::Value const& raw) { - auto json = raw; - JsonChecker checker(json); - auto root = checker.root("ServerModMetadata").obj(); + auto root = checkJson(raw, "ServerModMetadata"); auto res = ServerModMetadata(); root.needs("id").into(res.id); @@ -501,9 +491,7 @@ std::string ServerModMetadata::formatDevelopersToString() const { } Result ServerModsList::parse(matjson::Value const& raw) { - auto json = raw; - JsonChecker checker(json); - auto payload = checker.root("ServerModsList").obj(); + auto payload = checkJson(raw, "ServerModsList"); auto list = ServerModsList(); for (auto item : payload.needs("data").iterate()) { diff --git a/loader/src/server/Server.hpp b/loader/src/server/Server.hpp index 34b8f336..110f4e8f 100644 --- a/loader/src/server/Server.hpp +++ b/loader/src/server/Server.hpp @@ -3,7 +3,6 @@ #include "Geode/utils/VersionInfo.hpp" #include #include -#include #include #include #include diff --git a/loader/src/ui/mods/GeodeStyle.cpp b/loader/src/ui/mods/GeodeStyle.cpp index 07b4bc66..e5fa9039 100644 --- a/loader/src/ui/mods/GeodeStyle.cpp +++ b/loader/src/ui/mods/GeodeStyle.cpp @@ -1,7 +1,6 @@ #include "GeodeStyle.hpp" #include #include -#include #include #include diff --git a/loader/src/ui/mods/list/ModDeveloperItem.cpp b/loader/src/ui/mods/list/ModDeveloperItem.cpp index 5d490810..b9c08c80 100644 --- a/loader/src/ui/mods/list/ModDeveloperItem.cpp +++ b/loader/src/ui/mods/list/ModDeveloperItem.cpp @@ -1,7 +1,7 @@ #include "ModDeveloperItem.hpp" #include -#include +#include #include #include #include diff --git a/loader/src/ui/mods/list/ModDeveloperList.cpp b/loader/src/ui/mods/list/ModDeveloperList.cpp index c5a75e72..6a3a62ee 100644 --- a/loader/src/ui/mods/list/ModDeveloperList.cpp +++ b/loader/src/ui/mods/list/ModDeveloperList.cpp @@ -1,7 +1,7 @@ #include "ModDeveloperList.hpp" #include -#include +#include #include #include #include diff --git a/loader/src/ui/mods/list/ModProblemItem.cpp b/loader/src/ui/mods/list/ModProblemItem.cpp index a1522ef5..e757c1b1 100644 --- a/loader/src/ui/mods/list/ModProblemItem.cpp +++ b/loader/src/ui/mods/list/ModProblemItem.cpp @@ -1,7 +1,7 @@ #include "ModProblemItem.hpp" #include -#include +#include #include #include #include diff --git a/loader/src/ui/mods/list/ModProblemList.cpp b/loader/src/ui/mods/list/ModProblemList.cpp index beeb1a59..22a2fd40 100644 --- a/loader/src/ui/mods/list/ModProblemList.cpp +++ b/loader/src/ui/mods/list/ModProblemList.cpp @@ -1,7 +1,7 @@ #include "ModProblemList.hpp" #include -#include +#include #include #include #include diff --git a/loader/src/ui/mods/popups/ModErrorPopup.cpp b/loader/src/ui/mods/popups/ModErrorPopup.cpp index a17eebf6..e073b0d6 100644 --- a/loader/src/ui/mods/popups/ModErrorPopup.cpp +++ b/loader/src/ui/mods/popups/ModErrorPopup.cpp @@ -1,5 +1,5 @@ #include "ModErrorPopup.hpp" -#include "Geode/cocos/base_nodes/Layout.hpp" +#include #include "ui/mods/GeodeStyle.hpp" #include "ui/mods/list/ModProblemList.hpp" diff --git a/loader/src/ui/mods/settings/GeodeSettingNode.cpp b/loader/src/ui/mods/settings/GeodeSettingNode.cpp deleted file mode 100644 index ef6cb388..00000000 --- a/loader/src/ui/mods/settings/GeodeSettingNode.cpp +++ /dev/null @@ -1,558 +0,0 @@ -#include "GeodeSettingNode.hpp" -#include "Geode/binding/FLAlertLayer.hpp" -#include "Geode/ui/Popup.hpp" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Helpers - -template -static float valueToSlider(T const& setting, typename T::ValueType value) { - auto min = setting.min ? setting.min.value() : -100; - auto max = setting.max ? setting.max.value() : +100; - auto range = max - min; - return static_cast(clamp(static_cast(value - min) / range, 0.0, 1.0)); -} - -template -static typename T::ValueType valueFromSlider(T const& setting, float num) { - auto min = setting.min ? setting.min.value() : -100; - auto max = setting.max ? setting.max.value() : +100; - auto range = max - min; - auto value = static_cast(num * range + min); - if (auto step = setting.controls.sliderStep) { - value = static_cast( - round(value / step.value()) * step.value() - ); - } - return value; -} - -template -TextInput* createInput(C* node, GeodeSettingValue* setting, float width) { - auto input = TextInput::create(width / 2 - 70.f, "Text", "chatFont.fnt"); - input->setPosition({ - -(width / 2 - 70.f) / 2, - setting->castDefinition().controls.slider ? 5.f : 0.f - }); - input->setScale(.65f); - input->setDelegate(node); - return input; -} - -template -Slider* createSlider(C* node, GeodeSettingValue* setting, float width) { - auto slider = Slider::create( - node, menu_selector(C::onSlider), .5f - ); - slider->setPosition(-50.f, -15.f); - node->updateSlider(); - return slider; -} - -template -std::pair< - CCMenuItemSpriteExtra*, CCMenuItemSpriteExtra* -> createArrows(C* node, GeodeSettingValue* setting, float width, bool big) { - auto yPos = setting->castDefinition().controls.slider ? 5.f : 0.f; - auto decArrowSpr = CCSprite::createWithSpriteFrameName( - big ? "double-nav.png"_spr : "navArrowBtn_001.png" - ); - decArrowSpr->setFlipX(true); - decArrowSpr->setScale(.3f); - - auto decArrow = CCMenuItemSpriteExtra::create( - decArrowSpr, node, menu_selector(C::onArrow) - ); - decArrow->setPosition(-width / 2 + (big ? 65.f : 80.f), yPos); - decArrow->setTag(big ? - -setting->castDefinition().controls.bigArrowStep : - -setting->castDefinition().controls.arrowStep - ); - - auto incArrowSpr = CCSprite::createWithSpriteFrameName( - big ? "double-nav.png"_spr : "navArrowBtn_001.png" - ); - incArrowSpr->setScale(.3f); - - auto incArrow = CCMenuItemSpriteExtra::create( - incArrowSpr, node, menu_selector(C::onArrow) - ); - incArrow->setTag(big ? - setting->castDefinition().controls.bigArrowStep : - setting->castDefinition().controls.arrowStep - ); - incArrow->setPosition(big ? 5.f : -10.f, yPos); - - return { decArrow, incArrow }; -} - -// BoolSettingNode - -void BoolSettingNode::valueChanged(bool updateText) { - GeodeSettingNode::valueChanged(updateText); - m_toggle->toggle(m_uncommittedValue); -} - -void BoolSettingNode::onToggle(CCObject*) { - m_uncommittedValue = !m_toggle->isToggled(); - this->valueChanged(true); - m_toggle->toggle(!m_uncommittedValue); -} - -bool BoolSettingNode::setup(BoolSettingValue* setting, float width) { - m_toggle = CCMenuItemToggler::createWithStandardSprites( - this, menu_selector(BoolSettingNode::onToggle), .6f - ); - m_toggle->toggle(m_uncommittedValue); - m_toggle->setPositionX(-10.f); - m_menu->addChild(m_toggle); - - return true; -} - -// IntSettingNode - -float IntSettingNode::setupHeight(IntSettingValue* setting) const { - return setting->castDefinition().controls.slider ? 55.f : 40.f; -} - -void IntSettingNode::onSlider(CCObject* slider) { - m_uncommittedValue = valueFromSlider( - setting()->castDefinition(), - static_cast(slider)->getValue() - ); - this->valueChanged(true); -} - -void IntSettingNode::valueChanged(bool updateText) { - GeodeSettingNode::valueChanged(updateText); - if (updateText) { - this->updateLabel(); - } - this->updateSlider(); -} - -void IntSettingNode::updateSlider() { - if (m_slider) { - m_slider->setValue(valueToSlider( - setting()->castDefinition(), - m_uncommittedValue - )); - } -} - -void IntSettingNode::updateLabel() { - if (m_input) { - // hacky way to make setString not called textChanged - m_input->setString(numToString(m_uncommittedValue), false); - } - else { - m_label->setString(numToString(m_uncommittedValue).c_str()); - m_label->limitLabelWidth(m_width / 2 - 70.f, .5f, .1f); - } -} - -void IntSettingNode::onArrow(CCObject* sender) { - m_uncommittedValue += sender->getTag(); - this->valueChanged(true); -} - -void IntSettingNode::textChanged(CCTextInputNode* input) { - auto res = numFromString(input->getString()); - if (!res) return; - m_uncommittedValue = res.unwrap(); - this->valueChanged(false); -} - -bool IntSettingNode::setup(IntSettingValue* setting, float width) { - if (setting->castDefinition().controls.input) { - m_menu->addChild(m_input = createInput(this, setting, width)); - m_input->setCommonFilter(CommonFilter::Int); - } - else { - m_label = CCLabelBMFont::create("", "bigFont.fnt"); - m_label->setPosition({ - -(width / 2 - 70.f) / 2, - setting->castDefinition().controls.slider ? 5.f : 0.f - }); - m_label->limitLabelWidth(width / 2 - 70.f, .5f, .1f); - m_menu->addChild(m_label); - } - if (setting->castDefinition().controls.slider) { - m_menu->addChild(m_slider = createSlider(this, setting, width)); - } - if (setting->castDefinition().controls.arrows) { - auto [dec, inc] = createArrows(this, setting, width, false); - m_menu->addChild(m_decArrow = dec); - m_menu->addChild(m_incArrow = inc); - } - if (setting->castDefinition().controls.bigArrows) { - auto [dec, inc] = createArrows(this, setting, width, true); - m_menu->addChild(m_bigDecArrow = dec); - m_menu->addChild(m_bigIncArrow = inc); - } - return true; -} - -// FloatSettingNode - -float FloatSettingNode::setupHeight(FloatSettingValue* setting) const { - return setting->castDefinition().controls.slider ? 55.f : 40.f; -} - -void FloatSettingNode::onSlider(CCObject* slider) { - m_uncommittedValue = valueFromSlider( - setting()->castDefinition(), - static_cast(slider)->getValue() - ); - this->valueChanged(true); -} - -void FloatSettingNode::valueChanged(bool updateText) { - GeodeSettingNode::valueChanged(updateText); - if (updateText) { - this->updateLabel(); - } - this->updateSlider(); -} - -void FloatSettingNode::updateSlider() { - if (m_slider) { - m_slider->setValue(valueToSlider( - setting()->castDefinition(), - m_uncommittedValue - )); - } -} - -void FloatSettingNode::updateLabel() { - if (m_input) { - // hacky way to make setString not called textChanged - m_input->setString(numToString(m_uncommittedValue), false); - } - else { - m_label->setString(numToString(m_uncommittedValue).c_str()); - m_label->limitLabelWidth(m_width / 2 - 70.f, .5f, .1f); - } -} - -void FloatSettingNode::onArrow(CCObject* sender) { - m_uncommittedValue += sender->getTag(); - this->valueChanged(true); -} - -void FloatSettingNode::textChanged(CCTextInputNode* input) { - auto res = numFromString(input->getString()); - if (!res) return; - m_uncommittedValue = res.unwrap(); - this->valueChanged(false); -} - -bool FloatSettingNode::setup(FloatSettingValue* setting, float width) { - if (setting->castDefinition().controls.input) { - m_menu->addChild(m_input = createInput(this, setting, width)); - m_input->setCommonFilter(CommonFilter::Float); - } - else { - m_label = CCLabelBMFont::create("", "bigFont.fnt"); - m_label->setPosition({ - -(width / 2 - 70.f) / 2, - setting->castDefinition().controls.slider ? 5.f : 0.f - }); - m_label->limitLabelWidth(width / 2 - 70.f, .5f, .1f); - m_menu->addChild(m_label); - } - if (setting->castDefinition().controls.slider) { - m_menu->addChild(m_slider = createSlider(this, setting, width)); - } - if (setting->castDefinition().controls.arrows) { - auto [dec, inc] = createArrows(this, setting, width, false); - m_menu->addChild(m_decArrow = dec); - m_menu->addChild(m_incArrow = inc); - } - if (setting->castDefinition().controls.bigArrows) { - auto [dec, inc] = createArrows(this, setting, width, true); - m_menu->addChild(m_bigDecArrow = dec); - m_menu->addChild(m_bigIncArrow = inc); - } - return true; -} - -// StringSettingNode - -void StringSettingNode::updateLabel() { - if (m_input) m_input->setString(m_uncommittedValue, false); - if (m_label) { - m_label->setString(m_uncommittedValue.c_str()); - m_label->limitLabelWidth(m_width / 2 - 80.f, .65f, .1f); - } -} - -void StringSettingNode::textChanged(CCTextInputNode* input) { - m_uncommittedValue = input->getString(); - this->valueChanged(false); -} - -void StringSettingNode::valueChanged(bool updateText) { - GeodeSettingNode::valueChanged(updateText); - this->updateLabel(); -} - -void StringSettingNode::onArrow(CCObject* sender) { - m_selectedOption += sender->getTag(); - if (m_selectedOption < 0) { - m_selectedOption = m_options.size() - 1; - } - else if (m_selectedOption >= m_options.size()) { - m_selectedOption = 0; - } - m_uncommittedValue = m_options[m_selectedOption]; - this->valueChanged(true); -} - -bool StringSettingNode::setup(StringSettingValue* setting, float width) { - m_width = width; - if (setting->castDefinition().controls->options.has_value()) { - m_options = setting->castDefinition().controls->options.value(); - - m_selectedOption = 0; - for (size_t i = 0; i < m_options.size(); i++) { - if (m_options[i] == setting->castDefinition().defaultValue) { - m_selectedOption = i; - break; - } - } - - auto prevArrowSpr = CCSprite::createWithSpriteFrameName("navArrowBtn_001.png"); - prevArrowSpr->setFlipX(true); - prevArrowSpr->setScale(.3f); - - m_prevBtn = CCMenuItemSpriteExtra::create( - prevArrowSpr, this, menu_selector(StringSettingNode::onArrow) - ); - m_prevBtn->setPosition(-width / 2 + 65.f, 0.f); - m_prevBtn->setTag(-1); - m_menu->addChild(m_prevBtn); - - auto nextArrowSpr = CCSprite::createWithSpriteFrameName("navArrowBtn_001.png"); - nextArrowSpr->setScale(.3f); - - m_nextBtn = CCMenuItemSpriteExtra::create( - nextArrowSpr, this, menu_selector(StringSettingNode::onArrow) - ); - m_nextBtn->setTag(1); - m_nextBtn->setPosition(5.f, 0.f); - m_menu->addChild(m_nextBtn); - - m_label = CCLabelBMFont::create("", "bigFont.fnt"); - m_label->setPosition({ -(width / 2 - 70.f) / 2, .0f }); - m_menu->addChild(m_label); - } - else { - m_input = TextInput::create(width / 2 - 10.f, "Text", "chatFont.fnt"); - m_input->setPosition({ -(width / 2 - 70.f) / 2, .0f }); - m_input->setScale(.65f); - - if (setting->castDefinition().controls->filter.has_value()) { - m_input->setFilter(setting->castDefinition().controls->filter.value()); - } - - m_input->setDelegate(this); - m_menu->addChild(m_input); - } - - return true; -} - -// FileSettingNode - -void FileSettingNode::updateLabel() { - // hacky way to make setString not called textChanged - m_input->setString(m_uncommittedValue.string(), false); -} - -void FileSettingNode::textChanged(CCTextInputNode* input) { - m_uncommittedValue = input->getString().c_str(); - this->valueChanged(false); -} - -void FileSettingNode::valueChanged(bool updateText) { - GeodeSettingNode::valueChanged(updateText); - this->updateLabel(); -} - -void FileSettingNode::onPickFile(CCObject*) { - m_pickListener.bind(this, &FileSettingNode::onPickFileFinished); - m_pickListener.setFilter(file::pick( - file::PickMode::OpenFile, - { - dirs::getGameDir(), - setting()->castDefinition().controls.filters - })); -} - -void FileSettingNode::onPickFileFinished(FileTask::Event* event) { - if (!event->getValue()) { - return; - } - - auto value = event->getValue(); - if (value->isOk()) { - m_uncommittedValue = value->unwrap(); - this->valueChanged(true); - } else { - FLAlertLayer::create( - "Failed", - fmt::format("Failed to pick file: {}", value->err().value()).c_str(), - "Ok" - )->show(); - } -} - -bool FileSettingNode::setup(FileSettingValue* setting, float width) { - m_input = TextInput::create(width / 2 - 30.f, "Path to File", "chatFont.fnt"); - m_input->setPosition({ -(width / 2 - 80.f) / 2 - 15.f, .0f }); - m_input->setScale(.65f); - m_input->setDelegate(this); - m_menu->addChild(m_input); - - auto fileBtnSpr = CCSprite::createWithSpriteFrameName("gj_folderBtn_001.png"); - fileBtnSpr->setScale(.5f); - - auto fileBtn = CCMenuItemSpriteExtra::create( - fileBtnSpr, this, menu_selector(FileSettingNode::onPickFile) - ); - fileBtn->setPosition(.0f, .0f); - m_menu->addChild(fileBtn); - - return true; -} - -// ColorSettingNode - -void ColorSettingNode::valueChanged(bool updateText) { - GeodeSettingNode::valueChanged(updateText); - m_colorSpr->setColor(m_uncommittedValue); -} - -void ColorSettingNode::updateColor(ccColor4B const& color) { - m_uncommittedValue = to3B(color); - this->valueChanged(true); -} - -void ColorSettingNode::onSelectColor(CCObject*) { - auto popup = ColorPickPopup::create(m_uncommittedValue); - popup->setDelegate(this); - popup->setColorTarget(m_colorSpr); - popup->show(); -} - -bool ColorSettingNode::setup(ColorSettingValue* setting, float width) { - m_colorSpr = ColorChannelSprite::create(); - m_colorSpr->setColor(m_uncommittedValue); - m_colorSpr->setScale(.65f); - - auto button = CCMenuItemSpriteExtra::create( - m_colorSpr, this, menu_selector(ColorSettingNode::onSelectColor) - ); - button->setPositionX(-10.f); - m_menu->addChild(button); - - return true; -} - -// ColorAlphaSettingNode - -void ColorAlphaSettingNode::valueChanged(bool updateText) { - GeodeSettingNode::valueChanged(updateText); - m_colorSpr->setColor(to3B(m_uncommittedValue)); - m_colorSpr->updateOpacity(m_uncommittedValue.a / 255.f); -} - -void ColorAlphaSettingNode::updateColor(ccColor4B const& color) { - m_uncommittedValue = color; - this->valueChanged(true); -} - -void ColorAlphaSettingNode::onSelectColor(CCObject*) { - auto popup = ColorPickPopup::create(m_uncommittedValue); - popup->setDelegate(this); - popup->setColorTarget(m_colorSpr); - popup->show(); -} - -bool ColorAlphaSettingNode::setup(ColorAlphaSettingValue* setting, float width) { - m_colorSpr = ColorChannelSprite::create(); - m_colorSpr->setColor(to3B(m_uncommittedValue)); - m_colorSpr->updateOpacity(m_uncommittedValue.a / 255.f); - m_colorSpr->setScale(.65f); - - auto button = CCMenuItemSpriteExtra::create( - m_colorSpr, this, menu_selector(ColorAlphaSettingNode::onSelectColor) - ); - button->setPositionX(-10.f); - m_menu->addChild(button); - - return true; -} - -// CustomSettingPlaceholderNode - -void CustomSettingPlaceholderNode::commit() { - -} - -bool CustomSettingPlaceholderNode::hasUncommittedChanges() { - return false; -} - -bool CustomSettingPlaceholderNode::hasNonDefaultValue() { - return false; -} - -void CustomSettingPlaceholderNode::resetToDefault() { - -} - -bool CustomSettingPlaceholderNode::init(std::string const& key, float width) { - if (!SettingNode::init(nullptr)) - return false; - - constexpr auto sidePad = 40.f; - - this->setContentSize({ width, 40.f }); - - auto info = CCLabelBMFont::create( - "You need to enable the mod to modify this setting.", - "bigFont.fnt" - ); - info->setAnchorPoint({ .0f, .5f }); - info->limitLabelWidth(width - sidePad, .5f, .1f); - info->setPosition({ sidePad / 2, m_obContentSize.height / 2 }); - this->addChild(info); - - return true; -} - -CustomSettingPlaceholderNode* CustomSettingPlaceholderNode::create( - std::string const& key, float width -) { - auto ret = new CustomSettingPlaceholderNode; - if (ret->init(key, width)) { - ret->autorelease(); - return ret; - } - delete ret; - return nullptr; -} diff --git a/loader/src/ui/mods/settings/GeodeSettingNode.hpp b/loader/src/ui/mods/settings/GeodeSettingNode.hpp deleted file mode 100644 index d9b44d6a..00000000 --- a/loader/src/ui/mods/settings/GeodeSettingNode.hpp +++ /dev/null @@ -1,361 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using namespace geode::prelude; - -#define IMPL_SETT_CREATE(type_) \ - static type_##SettingNode* create( \ - type_##SettingValue* value, float width \ - ) { \ - auto ret = new type_##SettingNode; \ - if (ret->init(value, width)) { \ - ret->autorelease(); \ - return ret; \ - } \ - delete ret; \ - return nullptr; \ - } - -template -class GeodeSettingNode : public SettingNode { -public: - using ValueType = typename T::ValueType; - -protected: - float m_width; - float m_height; - ValueType m_uncommittedValue; - CCMenu* m_menu; - CCLabelBMFont* m_nameLabel; - CCLabelBMFont* m_errorLabel; - CCMenuItemSpriteExtra* m_resetBtn; - - bool init(GeodeSettingValue* setting, float width) { - if (!SettingNode::init(setting)) - return false; - - m_width = width; - m_height = this->setupHeight(setting); - this->setContentSize({ width, m_height }); - - constexpr auto sidePad = 40.f; - - m_uncommittedValue = setting->getValue(); - - auto name = setting->getDefinition().getDisplayName(); - - m_nameLabel = CCLabelBMFont::create(name.c_str(), "bigFont.fnt"); - m_nameLabel->setAnchorPoint({ .0f, .5f }); - m_nameLabel->limitLabelWidth(width / 2 - 50.f, .5f, .1f); - m_nameLabel->setPosition({ sidePad / 2, m_obContentSize.height / 2 }); - this->addChild(m_nameLabel); - - m_errorLabel = CCLabelBMFont::create("", "bigFont.fnt"); - m_errorLabel->setAnchorPoint({ .0f, .5f }); - m_errorLabel->limitLabelWidth(width / 2 - 50.f, .25f, .1f); - m_errorLabel->setPosition({ sidePad / 2, m_obContentSize.height / 2 - 14.f }); - m_errorLabel->setColor({ 255, 100, 100 }); - m_errorLabel->setZOrder(5); - this->addChild(m_errorLabel); - - m_menu = CCMenu::create(); - m_menu->setPosition({ m_obContentSize.width - sidePad / 2, m_obContentSize.height / 2 } - ); - this->addChild(m_menu); - - float btnPos = 15.f; - - if (setting->castDefinition().description) { - auto infoSpr = CCSprite::createWithSpriteFrameName("GJ_infoIcon_001.png"); - infoSpr->setScale(.6f); - - auto infoBtn = CCMenuItemSpriteExtra::create( - infoSpr, this, menu_selector(GeodeSettingNode::onDescription) - ); - infoBtn->setPosition( - -m_obContentSize.width + sidePad + m_nameLabel->getScaledContentSize().width + - btnPos, - 0.f - ); - m_menu->addChild(infoBtn); - - btnPos += 20.f; - } - - auto resetBtnSpr = CCSprite::createWithSpriteFrameName("reset-gold.png"_spr); - resetBtnSpr->setScale(.5f); - - m_resetBtn = CCMenuItemSpriteExtra::create( - resetBtnSpr, this, menu_selector(GeodeSettingNode::onReset) - ); - m_resetBtn->setPosition( - -m_obContentSize.width + sidePad + m_nameLabel->getScaledContentSize().width + - btnPos, - .0f - ); - m_menu->addChild(m_resetBtn); - - m_menu->setTouchEnabled(true); - - if (!this->setup(setting, width)) return false; - - this->valueChanged(); - - return true; - } - - void onDescription(CCObject*) { - FLAlertLayer::create( - setting()->getDefinition().getDisplayName().c_str(), - setting()->castDefinition().description.value(), - "OK" - )->show(); - } - - void onReset(CCObject*) { - createQuickPopup( - "Reset", - "Are you sure you want to reset " + - setting()->getDefinition().getDisplayName() + - " to default?", - "Cancel", "Reset", - [this](auto, bool btn2) { - if (btn2) { - this->resetToDefault(); - } - } - ); - } - - virtual float setupHeight(GeodeSettingValue* setting) const { - return 40.f; - } - - virtual bool setup(GeodeSettingValue* setting, float width) = 0; - - virtual void valueChanged(bool updateText = true) { - if (this->hasUncommittedChanges()) { - m_nameLabel->setColor({0x11, 0xdd, 0x00}); - } - else { - m_nameLabel->setColor({0xff, 0xff, 0xff}); - } - if (m_resetBtn) m_resetBtn->setVisible(this->hasNonDefaultValue()); - auto isValid = setting()->validate(m_uncommittedValue); - if (!isValid) { - m_errorLabel->setVisible(true); - m_errorLabel->setString(isValid.unwrapErr().c_str()); - } - else { - m_errorLabel->setVisible(false); - } - this->dispatchChanged(); - } - - GeodeSettingValue* setting() { - return static_cast*>(m_value); - } - -public: - void commit() override { - setting()->setValue(m_uncommittedValue); - m_uncommittedValue = setting()->getValue(); - this->valueChanged(); - this->dispatchCommitted(); - } - - bool hasUncommittedChanges() override { - return m_uncommittedValue != setting()->getValue(); - } - - bool hasNonDefaultValue() override { - return m_uncommittedValue != setting()->castDefinition().defaultValue; - } - - void resetToDefault() override { - m_uncommittedValue = setting()->castDefinition().defaultValue; - this->valueChanged(); - } -}; - -class BoolSettingNode : public GeodeSettingNode { -protected: - CCMenuItemToggler* m_toggle; - - void onToggle(CCObject*); - void valueChanged(bool updateText) override; - bool setup(BoolSettingValue* setting, float width) override; - -public: - IMPL_SETT_CREATE(Bool); -}; - -class IntSettingNode : - public GeodeSettingNode, - public TextInputDelegate -{ -protected: - TextInput* m_input = nullptr; - CCLabelBMFont* m_label = nullptr; - Slider* m_slider = nullptr; - CCMenuItemSpriteExtra* m_decArrow = nullptr; - CCMenuItemSpriteExtra* m_incArrow = nullptr; - CCMenuItemSpriteExtra* m_bigDecArrow = nullptr; - CCMenuItemSpriteExtra* m_bigIncArrow = nullptr; - - void valueChanged(bool updateText) override; - void textChanged(CCTextInputNode* input) override; - - float setupHeight(IntSettingValue* setting) const override; - bool setup(IntSettingValue* setting, float width) override; - -public: - void updateSlider(); - void updateLabel(); - - void onSlider(CCObject* slider); - void onArrow(CCObject* sender); - - IMPL_SETT_CREATE(Int); -}; - -class FloatSettingNode : - public GeodeSettingNode, - public TextInputDelegate -{ -protected: - TextInput* m_input = nullptr; - CCLabelBMFont* m_label = nullptr; - Slider* m_slider = nullptr; - CCMenuItemSpriteExtra* m_decArrow = nullptr; - CCMenuItemSpriteExtra* m_incArrow = nullptr; - CCMenuItemSpriteExtra* m_bigDecArrow = nullptr; - CCMenuItemSpriteExtra* m_bigIncArrow = nullptr; - - void valueChanged(bool updateText) override; - void textChanged(CCTextInputNode* input) override; - - float setupHeight(FloatSettingValue* setting) const override; - bool setup(FloatSettingValue* setting, float width) override; - -public: - void updateSlider(); - void updateLabel(); - - void onSlider(CCObject* slider); - void onArrow(CCObject* sender); - - IMPL_SETT_CREATE(Float); -}; - -class StringSettingNode : - public GeodeSettingNode, - public TextInputDelegate -{ -protected: - TextInput* m_input = nullptr; - CCLabelBMFont* m_label = nullptr; - CCMenuItemSpriteExtra* m_prevBtn = nullptr; - CCMenuItemSpriteExtra* m_nextBtn = nullptr; - std::vector m_options; - int m_selectedOption = 0; - float m_width; - - void textChanged(CCTextInputNode* input) override; - void valueChanged(bool updateText) override; - void updateLabel(); - - void onArrow(CCObject* sender); - - bool setup(StringSettingValue* setting, float width) override; - -public: - IMPL_SETT_CREATE(String); -}; - -class FileSettingNode : - public GeodeSettingNode, - public TextInputDelegate -{ -protected: - using FileTask = Task>; - - TextInput* m_input; - EventListener m_pickListener; - - void textChanged(CCTextInputNode* input) override; - void valueChanged(bool updateText) override; - void updateLabel(); - - void onPickFile(CCObject*); - void onPickFileFinished(FileTask::Event* event); - - bool setup(FileSettingValue* setting, float width) override; - -public: - IMPL_SETT_CREATE(File); -}; - -class ColorSettingNode : - public GeodeSettingNode, - public ColorPickPopupDelegate { -protected: - ColorChannelSprite* m_colorSpr; - - void valueChanged(bool updateText) override; - void updateColor(ccColor4B const& color) override; - - void onSelectColor(CCObject*); - - bool setup(ColorSettingValue* setting, float width) override; - -public: - IMPL_SETT_CREATE(Color); -}; - -class ColorAlphaSettingNode : - public GeodeSettingNode, - public ColorPickPopupDelegate { -protected: - ColorChannelSprite* m_colorSpr; - - void valueChanged(bool updateText) override; - void updateColor(ccColor4B const& color) override; - - void onSelectColor(CCObject*); - - bool setup(ColorAlphaSettingValue* setting, float width) override; - -public: - IMPL_SETT_CREATE(ColorAlpha); -}; - -class CustomSettingPlaceholderNode : public SettingNode { -protected: - void commit() override; - bool hasUncommittedChanges() override; - bool hasNonDefaultValue() override; - void resetToDefault() override; - - bool init(std::string const& key, float width); - -public: - static CustomSettingPlaceholderNode* create( - std::string const& key, float width - ); -}; diff --git a/loader/src/ui/mods/settings/ModSettingsPopup.cpp b/loader/src/ui/mods/settings/ModSettingsPopup.cpp index a55f7a46..a68e9aa2 100644 --- a/loader/src/ui/mods/settings/ModSettingsPopup.cpp +++ b/loader/src/ui/mods/settings/ModSettingsPopup.cpp @@ -1,7 +1,6 @@ #include "ModSettingsPopup.hpp" #include #include -#include #include #include #include diff --git a/loader/src/ui/nodes/InputNode.cpp b/loader/src/ui/nodes/InputNode.cpp deleted file mode 100644 index 4761af26..00000000 --- a/loader/src/ui/nodes/InputNode.cpp +++ /dev/null @@ -1,105 +0,0 @@ -#include -#include -#include -#include -#include - -using namespace geode::prelude; - -std::string InputNode::getString() { - return m_input->getString(); -} - -void InputNode::setString(std::string const& str) { - m_input->setString(str); -} - -CCTextInputNode* InputNode::getInput() const { - return m_input; -} - -CCScale9Sprite* InputNode::getBG() const { - return m_bgSprite; -} - -void InputNode::setEnabled(bool enabled) { - m_input->setMouseEnabled(enabled); - m_input->setTouchEnabled(enabled); -} - -bool InputNode::init( - float width, float height, char const* placeholder, char const* font, std::string const& filter, - int maxCharCount -) { - if (!CCMenuItem::initWithTarget(this, nullptr)) return false; - - m_bgSprite = cocos2d::extension::CCScale9Sprite::create( - "square02b_001.png", { 0.0f, 0.0f, 80.0f, 80.0f } - ); - m_bgSprite->setScale(.5f); - m_bgSprite->setColor({ 0, 0, 0 }); - m_bgSprite->setOpacity(75); - m_bgSprite->setContentSize({ width * 2, height * 2 }); - m_bgSprite->setPosition(width / 2, height / 2); - this->addChild(m_bgSprite); - - m_input = CCTextInputNode::create(width - 10.0f, height, placeholder, "Thonburi", 24, font); - m_input->setLabelPlaceholderColor({ 150, 150, 150 }); - m_input->setLabelPlaceholderScale(.75f); - m_input->setMaxLabelScale(.85f); - m_input->setMaxLabelLength(maxCharCount); - m_input->setPosition(width / 2, height / 2); - m_input->setUserObject("fix-text-input", CCBool::create(true)); - if (filter.length()) { - m_input->setAllowedChars(filter); - } - this->addChild(m_input); - - this->setContentSize({ width, height }); - this->setAnchorPoint({ .5f, .5f }); - - this->setCascadeColorEnabled(true); - this->setCascadeOpacityEnabled(true); - - return true; -} - -bool InputNode::init( - float width, char const* placeholder, char const* font, std::string const& filter, - int maxCharCount -) { - return init(width, 30.0f, placeholder, font, filter, maxCharCount); -} - -InputNode* InputNode::create( - float width, char const* placeholder, char const* font, std::string const& filter, - int maxCharCount -) { - auto pRet = new InputNode(); - - if (pRet->init(width, placeholder, font, filter, maxCharCount)) { - pRet->autorelease(); - return pRet; - } - - delete pRet; - return nullptr; -} - -InputNode* InputNode::create(float width, char const* placeholder, std::string const& filter) { - return create(width, placeholder, "bigFont.fnt", filter, 69); -} - -InputNode* InputNode::create( - float width, char const* placeholder, std::string const& filter, int maxCharCount -) { - return create(width, placeholder, "bigFont.fnt", filter, maxCharCount); -} - -InputNode* InputNode::create(float width, char const* placeholder, char const* font) { - return create(width, placeholder, font, "", 69); -} - -InputNode* InputNode::create(float width, char const* placeholder) { - return create(width, placeholder, "bigFont.fnt"); -} diff --git a/loader/src/ui/nodes/MDTextArea.cpp b/loader/src/ui/nodes/MDTextArea.cpp index 20a3b97f..e02d1a0d 100644 --- a/loader/src/ui/nodes/MDTextArea.cpp +++ b/loader/src/ui/nodes/MDTextArea.cpp @@ -317,21 +317,9 @@ struct MDParser { auto split = splitOnce(s_lastImage, '?'); s_lastImage = split.first; - // TODO: remove this in v4.0.0 - // check if this image is using the old format "my.mod/image.png&scale:0.5" - // this will be deprecated and then removed in the future - if (utils::string::contains(s_lastImage, "&")) { - split = splitOnce(s_lastImage, '&'); - s_lastImage = split.first; - imgArguments = ranges::map(utils::string::split(split.second, "&"), [&](auto str) { - return splitOnce(str, ':'); - }); - } else { - // new format "my.mod/image.png?scale=0.5" - imgArguments = ranges::map(utils::string::split(split.second, "&"), [&](auto str) { - return splitOnce(str, '='); - }); - } + imgArguments = ranges::map(utils::string::split(split.second, "&"), [&](auto str) { + return splitOnce(str, '='); + }); float spriteScale = 1.0f; float spriteWidth = 0.0f; diff --git a/loader/test/dependency/main.cpp b/loader/test/dependency/main.cpp index ef2e0418..d765941e 100644 --- a/loader/test/dependency/main.cpp +++ b/loader/test/dependency/main.cpp @@ -1,6 +1,5 @@ #include #include -#include #include #include #include "main.hpp" @@ -30,119 +29,120 @@ constexpr Icon DEFAULT_ICON = Icon::Steve; class MySettingValue; -class MySettingValue : public SettingValue { -protected: - Icon m_icon; +// TODO: v4 (port to new settings) +// class MySettingValue : public SettingValue { +// protected: +// Icon m_icon; -public: - MySettingValue(std::string const& key, std::string const& modID, Icon icon) - : SettingValue(key, modID), m_icon(icon) {} +// public: +// MySettingValue(std::string const& key, std::string const& modID, Icon icon) +// : SettingValue(key, modID), m_icon(icon) {} - bool load(matjson::Value const& json) override { - if (!json.is()) return false; - m_icon = static_cast(json.as()); - return true; - } - bool save(matjson::Value& json) const override { - json = static_cast(m_icon); - return true; - } - SettingNode* createNode(float width) override; +// bool load(matjson::Value const& json) override { +// if (!json.is()) return false; +// m_icon = static_cast(json.as()); +// return true; +// } +// bool save(matjson::Value& json) const override { +// json = static_cast(m_icon); +// return true; +// } +// SettingNode* createNode(float width) override; - void setIcon(Icon icon) { - m_icon = icon; - } - Icon getIcon() const { - return m_icon; - } -}; +// void setIcon(Icon icon) { +// m_icon = icon; +// } +// Icon getIcon() const { +// return m_icon; +// } +// }; -class MySettingNode : public SettingNode { -protected: - Icon m_currentIcon; - std::vector m_sprites; +// class MySettingNode : public SettingNode { +// protected: +// Icon m_currentIcon; +// std::vector m_sprites; - bool init(MySettingValue* value, float width) { - if (!SettingNode::init(value)) - return false; +// bool init(MySettingValue* value, float width) { +// if (!SettingNode::init(value)) +// return false; - m_currentIcon = value->getIcon(); - this->setContentSize({ width, 40.f }); +// m_currentIcon = value->getIcon(); +// this->setContentSize({ width, 40.f }); - auto menu = CCMenu::create(); - menu->setPosition(width / 2, 20.f); +// auto menu = CCMenu::create(); +// menu->setPosition(width / 2, 20.f); - float x = -75.f; +// float x = -75.f; - for (auto& [spr, icon] : { - std::pair { "GJ_square01.png", Icon::Steve, }, - std::pair { "GJ_square02.png", Icon::Mike, }, - std::pair { "GJ_square03.png", Icon::LazarithTheDestroyerOfForsakenSouls, }, - std::pair { "GJ_square04.png", Icon::Geoff, }, - }) { - auto btnSpr = CCSprite::create(spr); - btnSpr->setScale(.7f); - m_sprites.push_back(btnSpr); - if (icon == m_currentIcon) { - btnSpr->setColor({ 0, 255, 0 }); - } else { - btnSpr->setColor({ 200, 200, 200 }); - } - auto btn = CCMenuItemSpriteExtra::create( - btnSpr, this, menu_selector(MySettingNode::onSelect) - ); - btn->setTag(static_cast(icon)); - btn->setPosition(x, 0); - menu->addChild(btn); +// for (auto& [spr, icon] : { +// std::pair { "GJ_square01.png", Icon::Steve, }, +// std::pair { "GJ_square02.png", Icon::Mike, }, +// std::pair { "GJ_square03.png", Icon::LazarithTheDestroyerOfForsakenSouls, }, +// std::pair { "GJ_square04.png", Icon::Geoff, }, +// }) { +// auto btnSpr = CCSprite::create(spr); +// btnSpr->setScale(.7f); +// m_sprites.push_back(btnSpr); +// if (icon == m_currentIcon) { +// btnSpr->setColor({ 0, 255, 0 }); +// } else { +// btnSpr->setColor({ 200, 200, 200 }); +// } +// auto btn = CCMenuItemSpriteExtra::create( +// btnSpr, this, menu_selector(MySettingNode::onSelect) +// ); +// btn->setTag(static_cast(icon)); +// btn->setPosition(x, 0); +// menu->addChild(btn); - x += 50.f; - } +// x += 50.f; +// } - this->addChild(menu); +// this->addChild(menu); - return true; - } +// return true; +// } - void onSelect(CCObject* sender) { - for (auto& spr : m_sprites) { - spr->setColor({ 200, 200, 200 }); - } - m_currentIcon = static_cast(sender->getTag()); - static_cast( - static_cast(sender)->getNormalImage() - )->setColor({ 0, 255, 0 }); - this->dispatchChanged(); - } +// void onSelect(CCObject* sender) { +// for (auto& spr : m_sprites) { +// spr->setColor({ 200, 200, 200 }); +// } +// m_currentIcon = static_cast(sender->getTag()); +// static_cast( +// static_cast(sender)->getNormalImage() +// )->setColor({ 0, 255, 0 }); +// this->dispatchChanged(); +// } -public: - void commit() override { - static_cast(m_value)->setIcon(m_currentIcon); - this->dispatchCommitted(); - } - bool hasUncommittedChanges() override { - return m_currentIcon != static_cast(m_value)->getIcon(); - } - bool hasNonDefaultValue() override { - return m_currentIcon != DEFAULT_ICON; - } - void resetToDefault() override { - m_currentIcon = DEFAULT_ICON; - } +// public: +// void commit() override { +// static_cast(m_value)->setIcon(m_currentIcon); +// this->dispatchCommitted(); +// } +// bool hasUncommittedChanges() override { +// return m_currentIcon != static_cast(m_value)->getIcon(); +// } +// bool hasNonDefaultValue() override { +// return m_currentIcon != DEFAULT_ICON; +// } +// void resetToDefault() override { +// m_currentIcon = DEFAULT_ICON; +// } - static MySettingNode* create(MySettingValue* value, float width) { - auto ret = new MySettingNode; - if (ret->init(value, width)) { - ret->autorelease(); - return ret; - } - delete ret; - return nullptr; - } -}; +// static MySettingNode* create(MySettingValue* value, float width) { +// auto ret = new MySettingNode; +// if (ret->init(value, width)) { +// ret->autorelease(); +// return ret; +// } +// delete ret; +// return nullptr; +// } +// }; -SettingNode* MySettingValue::createNode(float width) { - return MySettingNode::create(this, width); -} +// SettingNode* MySettingValue::createNode(float width) { +// return MySettingNode::create(this, width); +// } struct MyMenuLayer : Modify { void onMoreGames(CCObject*) { @@ -161,7 +161,7 @@ struct MyMenuLayer : Modify { }; $on_mod(Loaded) { - Mod::get()->addCustomSetting("overcast-skies", DEFAULT_ICON); + // Mod::get()->addCustomSetting("overcast-skies", DEFAULT_ICON); (void)new EventListener(+[](GJGarageLayer* gl) { auto label = CCLabelBMFont::create("Dispatcher works!", "bigFont.fnt"); From 985b3aedb59c06d84c231d21d9a74e5566769f42 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 4 Nov 2024 20:28:38 +0300 Subject: [PATCH 003/119] removing deprecated things part 2 (compiles) --- loader/src/loader/ModMetadataImpl.cpp | 13 --- loader/src/loader/SettingNodeV3.cpp | 48 -------- loader/src/loader/SettingV3.cpp | 48 -------- loader/src/loader/updater.cpp | 9 +- loader/src/server/Server.cpp | 62 +++------- loader/src/ui/GeodeUI.cpp | 4 - loader/src/utils/JsonValidation.cpp | 159 -------------------------- loader/src/utils/VersionInfo.cpp | 3 - 8 files changed, 20 insertions(+), 326 deletions(-) diff --git a/loader/src/loader/ModMetadataImpl.cpp b/loader/src/loader/ModMetadataImpl.cpp index f16c82e7..54162a44 100644 --- a/loader/src/loader/ModMetadataImpl.cpp +++ b/loader/src/loader/ModMetadataImpl.cpp @@ -477,12 +477,6 @@ std::string ModMetadata::getName() const { return m_impl->m_name; } -std::string ModMetadata::getDeveloper() const { - // m_developers should be guaranteed to never be empty, but this is - // just in case it is anyway somehow - return m_impl->m_developers.empty() ? "" : m_impl->m_developers.front(); -} - std::string ModMetadata::formatDeveloperDisplayString(std::vector const& developers) { switch (developers.size()) { case 0: return "Unknown"; break; @@ -510,9 +504,6 @@ std::optional ModMetadata::getChangelog() const { std::optional ModMetadata::getSupportInfo() const { return m_impl->m_supportInfo; } -std::optional ModMetadata::getRepository() const { - return m_impl->m_links.getSourceURL(); -} ModMetadataLinks ModMetadata::getLinks() const { return m_impl->m_links; } @@ -629,10 +620,6 @@ void ModMetadata::setIncompatibilities(std::vector const& value void ModMetadata::setSpritesheets(std::vector const& value) { m_impl->m_spritesheets = value; } -void ModMetadata::setSettings(std::vector> const& value) { - // intentionally no-op because no one is supposed to be using this - // without subscribing to "internals are not stable" mentality -} void ModMetadata::setSettings(std::vector> const& value) { m_impl->m_settings = value; } diff --git a/loader/src/loader/SettingNodeV3.cpp b/loader/src/loader/SettingNodeV3.cpp index 19573417..a925485a 100644 --- a/loader/src/loader/SettingNodeV3.cpp +++ b/loader/src/loader/SettingNodeV3.cpp @@ -682,51 +682,3 @@ UnresolvedCustomSettingNodeV3* UnresolvedCustomSettingNodeV3::create(std::string CC_SAFE_DELETE(ret); return nullptr; } - -// LegacyCustomSettingToV3Node - -bool LegacyCustomSettingToV3Node::init(std::shared_ptr original, float width) { - if (!SettingNodeV3::init(original, width)) - return false; - - this->getNameMenu()->setVisible(false); - this->getButtonMenu()->setVisible(false); - - m_original = original->getValue()->createNode(width); - m_original->setDelegate(this); - this->setContentSize({ width, m_original->getContentHeight() }); - this->addChildAtPosition(m_original, Anchor::BottomLeft, ccp(0, 0), ccp(0, 0)); - - return true; -} - -void LegacyCustomSettingToV3Node::settingValueChanged(SettingNode*) { - SettingNodeValueChangeEventV3(this, false).post(); -} -void LegacyCustomSettingToV3Node::settingValueCommitted(SettingNode*) { - SettingNodeValueChangeEventV3(this, true).post(); -} - -void LegacyCustomSettingToV3Node::onCommit() { - m_original->commit(); -} - -bool LegacyCustomSettingToV3Node::hasUncommittedChanges() const { - return m_original->hasUncommittedChanges(); -} -bool LegacyCustomSettingToV3Node::hasNonDefaultValue() const { - return m_original->hasNonDefaultValue(); -} -void LegacyCustomSettingToV3Node::onResetToDefault() { - m_original->resetToDefault(); -} - -LegacyCustomSettingToV3Node* LegacyCustomSettingToV3Node::create(std::shared_ptr original, float width) { - auto ret = new LegacyCustomSettingToV3Node(); - if (ret && ret->init(original, width)) { - ret->autorelease(); - return ret; - } - CC_SAFE_DELETE(ret); - return nullptr; -} diff --git a/loader/src/loader/SettingV3.cpp b/loader/src/loader/SettingV3.cpp index 6ee54927..32511f0e 100644 --- a/loader/src/loader/SettingV3.cpp +++ b/loader/src/loader/SettingV3.cpp @@ -610,54 +610,6 @@ bool TitleSettingV3::isDefaultValue() const { } void TitleSettingV3::reset() {} -class LegacyCustomSettingV3::Impl final { -public: - matjson::Value json; - std::shared_ptr legacyValue = nullptr; -}; - -LegacyCustomSettingV3::LegacyCustomSettingV3(PrivateMarker) : m_impl(std::make_shared()) {} - -Result> LegacyCustomSettingV3::parse(std::string const& key, std::string const& modID, matjson::Value const& json) { - auto ret = std::make_shared(PrivateMarker()); - ret->init(key, modID); - ret->m_impl->json = json; - return Ok(ret); -} - -std::shared_ptr LegacyCustomSettingV3::getValue() const { - return m_impl->legacyValue; -} -void LegacyCustomSettingV3::setValue(std::shared_ptr value) { - m_impl->legacyValue = value; -} - -bool LegacyCustomSettingV3::load(matjson::Value const& json) { - if (m_impl->legacyValue) { - return m_impl->legacyValue->load(json); - } - return true; -} -bool LegacyCustomSettingV3::save(matjson::Value& json) const { - if (m_impl->legacyValue) { - return m_impl->legacyValue->save(json); - } - return true; -} -SettingNodeV3* LegacyCustomSettingV3::createNode(float width) { - if (m_impl->legacyValue) { - return LegacyCustomSettingToV3Node::create( - std::static_pointer_cast(shared_from_this()), width - ); - } - return UnresolvedCustomSettingNodeV3::create(this->getKey(), this->getMod(), width); -} - -bool LegacyCustomSettingV3::isDefaultValue() const { - return true; -} -void LegacyCustomSettingV3::reset() {} - class BoolSettingV3::Impl final { public: }; diff --git a/loader/src/loader/updater.cpp b/loader/src/loader/updater.cpp index e5868a11..9fda6f27 100644 --- a/loader/src/loader/updater.cpp +++ b/loader/src/loader/updater.cpp @@ -105,8 +105,7 @@ void updater::downloadLatestLoaderResources() { auto root = checkJson(raw, "[]"); // find release asset - for (auto asset : root.needs("assets").iterate()) { - auto obj = asset.obj(); + for (auto& obj : root.needs("assets").items()) { if (obj.needs("name").get() == "resources.zip") { updater::tryDownloadLoaderResources( obj.needs("browser_download_url").get(), @@ -207,8 +206,7 @@ void updater::downloadLoaderResources(bool useLatestRelease) { auto root = checkJson(ok.unwrap(), "[]"); // find release asset - for (auto asset : root.needs("assets").iterate()) { - auto obj = asset.obj(); + for (auto& obj : root.needs("assets").items()) { if (obj.needs("name").get() == "resources.zip") { updater::tryDownloadLoaderResources( obj.needs("browser_download_url").get(), @@ -382,8 +380,7 @@ void updater::checkForLoaderUpdates() { } // find release asset - for (auto asset : root.needs("assets").iterate()) { - auto obj = asset.obj(); + for (auto& obj : root.needs("assets").items()) { if (string::endsWith( obj.needs("name").get(), fmt::format("{}.zip", PlatformID::toShortString(GEODE_PLATFORM_TARGET, true)) diff --git a/loader/src/server/Server.cpp b/loader/src/server/Server.cpp index 9437e807..43a9e08a 100644 --- a/loader/src/server/Server.cpp +++ b/loader/src/server/Server.cpp @@ -265,7 +265,7 @@ Result ServerModVersion::parse(matjson::Value const& raw) { res.metadata.setGeodeVersion(root.needs("geode").get()); // Verify target GD version - auto gd_obj = root.needs("gd").obj(); + auto gd_obj = root.needs("gd"); std::string gd = "0.000"; if (gd_obj.has(GEODE_PLATFORM_SHORT_IDENTIFIER)) { gd = gd_obj.has(GEODE_PLATFORM_SHORT_IDENTIFIER). get(); @@ -288,13 +288,11 @@ Result ServerModVersion::parse(matjson::Value const& raw) { res.metadata.setIsAPI(root.needs("api").get()); std::vector dependencies {}; - for (auto dep : root.has("dependencies").iterate()) { + for (auto& obj : root.has("dependencies").items()) { // todo: this should probably be generalized to use the same function as mod.json - auto obj = dep.obj(); - bool onThisPlatform = !obj.has("platforms"); - for (auto& plat : obj.has("platforms").iterate()) { + for (auto& plat : obj.has("platforms").items()) { if (PlatformID::coveredBy(plat.get(), GEODE_PLATFORM_TARGET)) { onThisPlatform = true; } @@ -304,7 +302,7 @@ Result ServerModVersion::parse(matjson::Value const& raw) { } ModMetadata::Dependency dependency; - obj.needs("mod_id").validate(MiniFunction(&ModMetadata::validateID)).into(dependency.id); + obj.needs("mod_id").mustBe("a valid id", &ModMetadata::validateID).into(dependency.id); obj.needs("version").into(dependency.version); obj.has("importance").into(dependency.importance); @@ -319,9 +317,7 @@ Result ServerModVersion::parse(matjson::Value const& raw) { res.metadata.setDependencies(dependencies); std::vector incompatibilities {}; - for (auto& incompat : root.has("incompatibilities").iterate()) { - auto obj = incompat.obj(); - + for (auto& obj : root.has("incompatibilities").items()) { ModMetadata::Incompatibility incompatibility; obj.has("importance").into(incompatibility.importance); @@ -331,7 +327,7 @@ Result ServerModVersion::parse(matjson::Value const& raw) { if (incompatibility.importance == ModMetadata::Incompatibility::Importance::Superseded) { modIdValue.into(incompatibility.id); } else { - modIdValue.validate(MiniFunction(&ModMetadata::validateID)).into(incompatibility.id); + modIdValue.mustBe("a valid id", &ModMetadata::validateID).into(incompatibility.id); } obj.needs("version").into(incompatibility.version); @@ -346,11 +342,7 @@ Result ServerModVersion::parse(matjson::Value const& raw) { } res.metadata.setIncompatibilities(incompatibilities); - // Check for errors and return result - if (root.isError()) { - return Err(root.getError()); - } - return Ok(res); + return root.ok(res); } Result ServerModReplacement::parse(matjson::Value const& raw) { @@ -360,10 +352,7 @@ Result ServerModReplacement::parse(matjson::Value const& r root.needs("id").into(res.id); root.needs("version").into(res.version); - if (root.isError()) { - return Err(root.getError()); - } - return Ok(res); + return root.ok(res); } Result ServerModUpdate::parse(matjson::Value const& raw) { @@ -377,18 +366,14 @@ Result ServerModUpdate::parse(matjson::Value const& raw) { GEODE_UNWRAP_INTO(res.replacement, ServerModReplacement::parse(root.has("replacement").json())); } - // Check for errors and return result - if (root.isError()) { - return Err(root.getError()); - } - return Ok(res); + return root.ok(res); } Result> ServerModUpdate::parseList(matjson::Value const& raw) { auto payload = checkJson(raw, "ServerModUpdatesList"); std::vector list {}; - for (auto item : payload.iterate()) { + for (auto& item : payload.items()) { auto mod = ServerModUpdate::parse(item.json()); if (mod) { list.push_back(mod.unwrap()); @@ -398,11 +383,7 @@ Result> ServerModUpdate::parseList(matjson::Value c } } - // Check for errors and return result - if (payload.isError()) { - return Err(payload.getError()); - } - return Ok(list); + return payload.ok(list); } bool ServerModUpdate::hasUpdateForInstalledMod() const { @@ -430,8 +411,7 @@ Result ServerModMetadata::parse(matjson::Value const& raw) { } std::vector developerNames; - for (auto item : root.needs("developers").iterate()) { - auto obj = item.obj(); + for (auto& obj : root.needs("developers").items()) { auto dev = ServerDeveloper(); obj.needs("username").into(dev.username); obj.needs("display_name").into(dev.displayName); @@ -439,7 +419,7 @@ Result ServerModMetadata::parse(matjson::Value const& raw) { res.developers.push_back(dev); developerNames.push_back(dev.displayName); } - for (auto item : root.needs("versions").iterate()) { + for (auto& item : root.needs("versions").items()) { auto versionRes = ServerModVersion::parse(item.json()); if (versionRes) { auto version = versionRes.unwrap(); @@ -459,17 +439,13 @@ Result ServerModMetadata::parse(matjson::Value const& raw) { return Err("Mod '{}' has no (valid) versions", res.id); } - for (auto item : root.has("tags").iterate()) { + for (auto& item : root.has("tags").items()) { res.tags.insert(item.get()); } root.needs("download_count").into(res.downloadCount); - // Check for errors and return result - if (root.isError()) { - return Err(root.getError()); - } - return Ok(res); + return root.ok(res); } std::string ServerModMetadata::formatDevelopersToString() const { @@ -494,7 +470,7 @@ Result ServerModsList::parse(matjson::Value const& raw) { auto payload = checkJson(raw, "ServerModsList"); auto list = ServerModsList(); - for (auto item : payload.needs("data").iterate()) { + for (auto& item : payload.needs("data").items()) { auto mod = ServerModMetadata::parse(item.json()); if (mod) { list.mods.push_back(mod.unwrap()); @@ -505,11 +481,7 @@ Result ServerModsList::parse(matjson::Value const& raw) { } payload.needs("count").into(list.totalModCount); - // Check for errors and return result - if (payload.isError()) { - return Err(payload.getError()); - } - return Ok(list); + return payload.ok(list); } ModMetadata ServerModMetadata::latestVersion() const { diff --git a/loader/src/ui/GeodeUI.cpp b/loader/src/ui/GeodeUI.cpp index 9c1dce65..dff7dff6 100644 --- a/loader/src/ui/GeodeUI.cpp +++ b/loader/src/ui/GeodeUI.cpp @@ -147,10 +147,6 @@ Task geode::openInfoPopup(std::string const& modID) { return task; } } -void geode::openIndexPopup(Mod* mod) { - // deprecated func - openInfoPopup(mod); -} void geode::openChangelogPopup(Mod* mod) { auto popup = ModPopup::create(mod); diff --git a/loader/src/utils/JsonValidation.cpp b/loader/src/utils/JsonValidation.cpp index 71a5c908..1f1df324 100644 --- a/loader/src/utils/JsonValidation.cpp +++ b/loader/src/utils/JsonValidation.cpp @@ -3,165 +3,6 @@ using namespace geode::prelude; -matjson::Value& JsonMaybeSomething::json() { - return m_json; -} - -JsonMaybeSomething::JsonMaybeSomething( - JsonChecker& checker, matjson::Value& json, std::string const& hierarchy, bool hasValue -) : - m_checker(checker), - m_json(json), m_hierarchy(hierarchy), m_hasValue(hasValue) {} - -bool JsonMaybeSomething::isError() const { - return m_checker.isError() || !m_hasValue; -} - -std::string JsonMaybeSomething::getError() const { - return m_checker.getError(); -} - -JsonMaybeSomething::operator bool() const { - return !isError(); -} - -void JsonMaybeSomething::setError(std::string const& error) { - m_checker.m_result = error; -} - -JsonMaybeValue::JsonMaybeValue( - JsonChecker& checker, matjson::Value& json, std::string const& hierarchy, bool hasValue -) : JsonMaybeSomething(checker, json, hierarchy, hasValue) {} - -JsonMaybeSomething& JsonMaybeValue::self() { - return *static_cast(this); -} - -JsonMaybeValue& JsonMaybeValue::array() { - this->as(); - return *this; -} - -JsonMaybeObject JsonMaybeValue::obj() { - this->as(); - return JsonMaybeObject(self().m_checker, self().m_json, self().m_hierarchy, self().m_hasValue); -} - -JsonMaybeValue JsonMaybeValue::at(size_t i) { - this->as(); - if (this->isError()) return *this; - - auto& json = self().m_json.as_array(); - if (json.size() <= i) { - this->setError( - self().m_hierarchy + ": has " + std::to_string(json.size()) + - "items " - ", expected to have at least " + - std::to_string(i + 1) - ); - return *this; - } - return JsonMaybeValue( - self().m_checker, json.at(i), self().m_hierarchy + "." + std::to_string(i), self().m_hasValue - ); -} - -typename JsonMaybeValue::template Iterator JsonMaybeValue::iterate() { - this->as(); - Iterator iter; - if (this->isError()) return iter; - - auto& json = self().m_json.as_array(); - size_t i = 0; - for (auto& obj : json) { - iter.m_values.emplace_back( - self().m_checker, obj, self().m_hierarchy + "." + std::to_string(i++), self().m_hasValue - ); - } - return iter; -} - -typename JsonMaybeValue::template Iterator> JsonMaybeValue::items() { - this->as(); - Iterator> iter; - if (this->isError()) return iter; - - for (auto& [k, v] : self().m_json.as_object()) { - iter.m_values.emplace_back( - k, - JsonMaybeValue(self().m_checker, v, self().m_hierarchy + "." + k, self().m_hasValue) - ); - } - - return iter; -} - -JsonMaybeObject::JsonMaybeObject( - JsonChecker& checker, matjson::Value& json, std::string const& hierarchy, bool hasValue -) : JsonMaybeSomething(checker, json, hierarchy, hasValue) {} - -JsonMaybeSomething& JsonMaybeObject::self() { - return *static_cast(this); -} - -void JsonMaybeObject::addKnownKey(std::string const& key) { - m_knownKeys.insert(key); -} - -matjson::Value& JsonMaybeObject::json() { - return self().m_json; -} - -JsonMaybeValue JsonMaybeObject::emptyValue() { - return JsonMaybeValue(self().m_checker, self().m_json, "", false); -} - -JsonMaybeValue JsonMaybeObject::has(std::string const& key) { - this->addKnownKey(key); - if (this->isError()) return emptyValue(); - if (!self().m_json.contains(key) || self().m_json[key].is_null()) { - return emptyValue(); - } - return JsonMaybeValue(self().m_checker, self().m_json[key], key, true); -} - -JsonMaybeValue JsonMaybeObject::needs(std::string const& key) { - this->addKnownKey(key); - if (this->isError()) return emptyValue(); - if (!self().m_json.contains(key)) { - this->setError(self().m_hierarchy + " is missing required key \"" + key + "\""); - return emptyValue(); - } - return JsonMaybeValue(self().m_checker, self().m_json[key], key, true); -} - -// TODO: gross hack :3 (ctrl+f this comment to find the other part) -extern bool s_jsonCheckerShouldCheckUnknownKeys; -bool s_jsonCheckerShouldCheckUnknownKeys = true; -void JsonMaybeObject::checkUnknownKeys() { - if (!s_jsonCheckerShouldCheckUnknownKeys) - return; - for (auto& [key, _] : self().m_json.as_object()) { - if (!m_knownKeys.count(key)) { - log::warn("{} contains unknown key \"{}\"", self().m_hierarchy, key); - } - } -} - -JsonChecker::JsonChecker(matjson::Value& json) : m_json(json), m_result(std::monostate()) {} - -bool JsonChecker::isError() const { - return std::holds_alternative(m_result); -} - -std::string JsonChecker::getError() const { - return std::get(m_result); -} - -JsonMaybeValue JsonChecker::root(std::string const& hierarchy) { - return JsonMaybeValue(*this, m_json, hierarchy, true); -} - // This is used for null JsonExpectedValues (for example when doing // `json.has("key")` where "key" doesn't exist) static matjson::Value NULL_SCOPED_VALUE = nullptr; diff --git a/loader/src/utils/VersionInfo.cpp b/loader/src/utils/VersionInfo.cpp index a2271344..069f674b 100644 --- a/loader/src/utils/VersionInfo.cpp +++ b/loader/src/utils/VersionInfo.cpp @@ -113,9 +113,6 @@ Result VersionInfo::parse(std::string const& string) { return Ok(VersionInfo(major, minor, patch, tag)); } -std::string VersionInfo::toString(bool includeTag) const { - return this->toVString(); -} std::string VersionInfo::toVString(bool includeTag) const { return fmt::format("v{}", this->toNonVString(includeTag)); } From bed622243b82d963bf9d7f67d0e2e8bbf8ca49bc Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 4 Nov 2024 20:42:09 +0300 Subject: [PATCH 004/119] remove minifunction --- loader/include/Geode/Utils.hpp | 1 - .../include/Geode/cocos/base_nodes/CCNode.h | 6 +- loader/include/Geode/loader/Dispatch.hpp | 2 +- loader/include/Geode/loader/Event.hpp | 14 +- loader/include/Geode/loader/IPC.hpp | 2 +- loader/include/Geode/loader/Loader.hpp | 3 +- loader/include/Geode/loader/ModEvent.hpp | 2 +- loader/include/Geode/loader/SettingV3.hpp | 2 +- loader/include/Geode/modify/Field.hpp | 7 +- loader/include/Geode/ui/EnterLayerEvent.hpp | 4 +- loader/include/Geode/ui/MDPopup.hpp | 8 +- loader/include/Geode/ui/Popup.hpp | 11 +- loader/include/Geode/ui/SelectList.hpp | 6 +- loader/include/Geode/ui/TextRenderer.hpp | 2 +- loader/include/Geode/utils/ColorProvider.hpp | 2 +- loader/include/Geode/utils/JsonValidation.hpp | 3 +- loader/include/Geode/utils/MiniFunction.hpp | 141 ------------------ loader/include/Geode/utils/Task.hpp | 13 +- loader/include/Geode/utils/cocos.hpp | 63 ++++---- loader/include/Geode/utils/file.hpp | 6 +- loader/include/Geode/utils/map.hpp | 8 +- loader/include/Geode/utils/permission.hpp | 3 +- loader/src/hooks/GeodeNodeMetadata.cpp | 2 +- loader/src/internal/FileWatcher.hpp | 5 +- loader/src/internal/FixModIssues.cpp | 2 +- loader/src/loader/IPC.cpp | 2 +- loader/src/loader/LoaderImpl.hpp | 3 +- loader/src/loader/ModEvent.cpp | 2 +- loader/src/loader/SettingV3.cpp | 2 +- loader/src/loader/updater.cpp | 8 +- loader/src/loader/updater.hpp | 9 +- loader/src/platform/android/util.cpp | 11 +- loader/src/platform/ios/util.mm | 2 +- loader/src/platform/mac/util.mm | 2 +- loader/src/platform/windows/util.cpp | 2 +- loader/src/server/DownloadManager.cpp | 2 +- loader/src/server/DownloadManager.hpp | 2 +- loader/src/ui/mods/UpdateModListState.cpp | 2 +- loader/src/ui/mods/UpdateModListState.hpp | 2 +- loader/src/ui/mods/sources/ModListSource.cpp | 2 +- loader/src/ui/mods/sources/ModListSource.hpp | 2 +- loader/src/ui/nodes/ColorPickPopup.cpp | 2 +- loader/src/ui/nodes/EnterLayerEvent.cpp | 2 +- loader/src/ui/nodes/MDPopup.cpp | 4 +- loader/src/ui/nodes/Popup.cpp | 12 +- loader/src/utils/ColorProvider.cpp | 2 +- loader/src/utils/file.cpp | 10 +- loader/test/dependency/main.cpp | 2 +- loader/test/dependency/main.hpp | 2 +- 49 files changed, 126 insertions(+), 283 deletions(-) delete mode 100644 loader/include/Geode/utils/MiniFunction.hpp diff --git a/loader/include/Geode/Utils.hpp b/loader/include/Geode/Utils.hpp index b21d5a07..5554a91f 100644 --- a/loader/include/Geode/Utils.hpp +++ b/loader/include/Geode/Utils.hpp @@ -12,5 +12,4 @@ #include "utils/permission.hpp" #include "utils/general.hpp" #include "utils/timer.hpp" -#include "utils/MiniFunction.hpp" #include "utils/ObjcHook.hpp" diff --git a/loader/include/Geode/cocos/base_nodes/CCNode.h b/loader/include/Geode/cocos/base_nodes/CCNode.h index ecce00e2..1bbf681c 100644 --- a/loader/include/Geode/cocos/base_nodes/CCNode.h +++ b/loader/include/Geode/cocos/base_nodes/CCNode.h @@ -1095,7 +1095,7 @@ public: template geode::EventListenerProtocol* addEventListener( std::string const& id, - geode::utils::MiniFunction callback, + std::function callback, Args&&... args ) { auto listener = new geode::EventListener( @@ -1106,7 +1106,7 @@ public: } template geode::EventListenerProtocol* addEventListener( - geode::utils::MiniFunction callback, + std::function callback, Args&&... args ) { return this->addEventListener( @@ -1916,7 +1916,7 @@ namespace geode { std::string m_targetID; public: - ListenerResult handle(utils::MiniFunction fn, UserObjectSetEvent* event); + ListenerResult handle(std::function fn, UserObjectSetEvent* event); AttributeSetFilter(std::string const& id); }; diff --git a/loader/include/Geode/loader/Dispatch.hpp b/loader/include/Geode/loader/Dispatch.hpp index 1ce7bb9c..629ede39 100644 --- a/loader/include/Geode/loader/Dispatch.hpp +++ b/loader/include/Geode/loader/Dispatch.hpp @@ -53,7 +53,7 @@ namespace geode { return dispatchPools()[m_id]; } - ListenerResult handle(utils::MiniFunction fn, Ev* event) { + ListenerResult handle(std::function fn, Ev* event) { if (event->getID() == m_id) { return std::apply(fn, event->getArgs()); } diff --git a/loader/include/Geode/loader/Event.hpp b/loader/include/Geode/loader/Event.hpp index 55a12e8a..d7420a03 100644 --- a/loader/include/Geode/loader/Event.hpp +++ b/loader/include/Geode/loader/Event.hpp @@ -1,7 +1,6 @@ #pragma once #include "../utils/casts.hpp" -#include "../utils/MiniFunction.hpp" #include #include @@ -103,7 +102,7 @@ namespace geode { using Callback = ListenerResult(T*); using Event = T; - ListenerResult handle(utils::MiniFunction fn, T* e) { + ListenerResult handle(std::function fn, T* e) { return fn(e); } @@ -156,7 +155,7 @@ namespace geode { this->enable(); } - EventListener(utils::MiniFunction fn, T filter = T()) + EventListener(std::function fn, T filter = T()) : m_callback(fn), m_filter(filter) { m_filter.setListener(this); @@ -193,10 +192,7 @@ namespace geode { this->enable(); } - void bind(utils::MiniFunction const& fn) { - m_callback = fn; - } - void bind(utils::MiniFunction&& fn) { + void bind(std::function fn) { m_callback = fn; } @@ -218,12 +214,12 @@ namespace geode { return m_filter; } - utils::MiniFunction& getCallback() { + std::function& getCallback() { return m_callback; } protected: - utils::MiniFunction m_callback = nullptr; + std::function m_callback = nullptr; T m_filter; }; diff --git a/loader/include/Geode/loader/IPC.hpp b/loader/include/Geode/loader/IPC.hpp index 6ffd8631..73e32d1e 100644 --- a/loader/include/Geode/loader/IPC.hpp +++ b/loader/include/Geode/loader/IPC.hpp @@ -57,7 +57,7 @@ namespace geode::ipc { std::string m_messageID; public: - ListenerResult handle(utils::MiniFunction fn, IPCEvent* event); + ListenerResult handle(std::function fn, IPCEvent* event); IPCFilter( std::string const& modID, std::string const& messageID diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index 0c577de4..061d9edc 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -2,7 +2,6 @@ #include #include "../utils/Result.hpp" -#include "../utils/MiniFunction.hpp" #include "Log.hpp" #include "ModEvent.hpp" #include "ModMetadata.hpp" @@ -15,7 +14,7 @@ #include namespace geode { - using ScheduledFunction = utils::MiniFunction; + using ScheduledFunction = std::function; struct InvalidGeodeFile { std::filesystem::path path; diff --git a/loader/include/Geode/loader/ModEvent.hpp b/loader/include/Geode/loader/ModEvent.hpp index 83699e50..b9801c2c 100644 --- a/loader/include/Geode/loader/ModEvent.hpp +++ b/loader/include/Geode/loader/ModEvent.hpp @@ -43,7 +43,7 @@ namespace geode { Mod* m_mod; public: - ListenerResult handle(utils::MiniFunction fn, ModStateEvent* event); + ListenerResult handle(std::function fn, ModStateEvent* event); /** * Create a mod state listener diff --git a/loader/include/Geode/loader/SettingV3.hpp b/loader/include/Geode/loader/SettingV3.hpp index cb91201c..bea8bda8 100644 --- a/loader/include/Geode/loader/SettingV3.hpp +++ b/loader/include/Geode/loader/SettingV3.hpp @@ -658,7 +658,7 @@ namespace geode { public: using Callback = void(std::shared_ptr); - ListenerResult handle(utils::MiniFunction fn, SettingChangedEventV3* event); + ListenerResult handle(std::function fn, SettingChangedEventV3* event); /** * Listen to changes on a setting, or all settings * @param modID Mod whose settings to listen to diff --git a/loader/include/Geode/modify/Field.hpp b/loader/include/Geode/modify/Field.hpp index 3769dc51..95e794a6 100644 --- a/loader/include/Geode/modify/Field.hpp +++ b/loader/include/Geode/modify/Field.hpp @@ -1,6 +1,5 @@ #pragma once -#include "../utils/MiniFunction.hpp" #include "Traits.hpp" #include @@ -20,7 +19,7 @@ namespace geode::modifier { class FieldContainer { private: std::vector m_containedFields; - std::vector> m_destructorFunctions; + std::vector> m_destructorFunctions; public: ~FieldContainer() { @@ -40,9 +39,9 @@ namespace geode::modifier { return m_containedFields.at(index); } - void* setField(size_t index, size_t size, utils::MiniFunction destructor) { + void* setField(size_t index, size_t size, std::function destructor) { m_containedFields.at(index) = operator new(size); - m_destructorFunctions.at(index) = destructor; + m_destructorFunctions.at(index) = std::move(destructor); return m_containedFields.at(index); } diff --git a/loader/include/Geode/ui/EnterLayerEvent.hpp b/loader/include/Geode/ui/EnterLayerEvent.hpp index 31252892..138cfe98 100644 --- a/loader/include/Geode/ui/EnterLayerEvent.hpp +++ b/loader/include/Geode/ui/EnterLayerEvent.hpp @@ -30,7 +30,7 @@ namespace geode { std::optional m_targetID; public: - ListenerResult handle(utils::MiniFunction fn, AEnterLayerEvent* event); + ListenerResult handle(std::function fn, AEnterLayerEvent* event); AEnterLayerFilter( std::optional const& id @@ -63,7 +63,7 @@ namespace geode { std::optional m_targetID; public: - ListenerResult handle(utils::MiniFunction fn, EnterLayerEvent* event) { + ListenerResult handle(std::function fn, EnterLayerEvent* event) { if (m_targetID == event->getID()) { fn(static_cast(event)); } diff --git a/loader/include/Geode/ui/MDPopup.hpp b/loader/include/Geode/ui/MDPopup.hpp index 4ed45176..63b3681c 100644 --- a/loader/include/Geode/ui/MDPopup.hpp +++ b/loader/include/Geode/ui/MDPopup.hpp @@ -11,13 +11,13 @@ namespace geode { class GEODE_DLL MDPopup : public Popup< std::string const&, std::string const&, char const*, char const*, - utils::MiniFunction> { + std::function> { protected: - utils::MiniFunction m_onClick = nullptr; + std::function m_onClick = nullptr; bool setup( std::string const& title, std::string const& info, char const* btn1, char const* btn2, - utils::MiniFunction onClick + std::function onClick ) override; void onBtn(CCObject*); @@ -27,7 +27,7 @@ namespace geode { public: static MDPopup* create( std::string const& title, std::string const& content, char const* btn1, - char const* btn2 = nullptr, utils::MiniFunction onClick = nullptr + char const* btn2 = nullptr, std::function onClick = nullptr ); }; } diff --git a/loader/include/Geode/ui/Popup.hpp b/loader/include/Geode/ui/Popup.hpp index d7b3809d..7f0e4ce8 100644 --- a/loader/include/Geode/ui/Popup.hpp +++ b/loader/include/Geode/ui/Popup.hpp @@ -2,7 +2,6 @@ #include #include -#include #include #include @@ -52,7 +51,7 @@ namespace geode { } public: - ListenerResult handle(utils::MiniFunction fn, CloseEvent* event) { + ListenerResult handle(std::function fn, CloseEvent* event) { if (event->getPopup() == m_impl->popup) { fn(event); } @@ -214,21 +213,21 @@ namespace geode { GEODE_DLL FLAlertLayer* createQuickPopup( char const* title, std::string const& content, char const* btn1, char const* btn2, - utils::MiniFunction selected, bool doShow = true + std::function selected, bool doShow = true ); GEODE_DLL FLAlertLayer* createQuickPopup( char const* title, std::string const& content, char const* btn1, char const* btn2, - float width, utils::MiniFunction selected, bool doShow = true + float width, std::function selected, bool doShow = true ); GEODE_DLL FLAlertLayer* createQuickPopup( char const* title, std::string const& content, char const* btn1, char const* btn2, - utils::MiniFunction selected, bool doShow, bool cancelledByEscape + std::function selected, bool doShow, bool cancelledByEscape ); GEODE_DLL FLAlertLayer* createQuickPopup( char const* title, std::string const& content, char const* btn1, char const* btn2, - float width, utils::MiniFunction selected, bool doShow, bool cancelledByEscape + float width, std::function selected, bool doShow, bool cancelledByEscape ); } diff --git a/loader/include/Geode/ui/SelectList.hpp b/loader/include/Geode/ui/SelectList.hpp index 33619026..df224875 100644 --- a/loader/include/Geode/ui/SelectList.hpp +++ b/loader/include/Geode/ui/SelectList.hpp @@ -14,13 +14,13 @@ namespace geode { protected: std::vector m_list; size_t m_index = 0; - utils::MiniFunction m_onChange; + std::function m_onChange; cocos2d::CCLabelBMFont* m_label; CCMenuItemSpriteExtra* m_prevBtn; CCMenuItemSpriteExtra* m_nextBtn; bool init( - float width, std::vector const& list, utils::MiniFunction onChange + float width, std::vector const& list, std::function onChange ) { if (!cocos2d::CCMenu::init()) return false; @@ -94,7 +94,7 @@ namespace geode { public: static SelectList* create( - float width, std::vector const& list, utils::MiniFunction onChange + float width, std::vector const& list, std::function onChange ) { auto ret = new SelectList(); if (ret->init(width, list, onChange)) { diff --git a/loader/include/Geode/ui/TextRenderer.hpp b/loader/include/Geode/ui/TextRenderer.hpp index d749d1b5..b0719769 100644 --- a/loader/include/Geode/ui/TextRenderer.hpp +++ b/loader/include/Geode/ui/TextRenderer.hpp @@ -122,7 +122,7 @@ namespace geode { * to distinguish between bold, italic and * regular text. */ - using Font = utils::MiniFunction; + using Font = std::function; protected: cocos2d::CCPoint m_origin = cocos2d::CCPointZero; diff --git a/loader/include/Geode/utils/ColorProvider.hpp b/loader/include/Geode/utils/ColorProvider.hpp index 547cb3ee..804572f0 100644 --- a/loader/include/Geode/utils/ColorProvider.hpp +++ b/loader/include/Geode/utils/ColorProvider.hpp @@ -21,7 +21,7 @@ namespace geode { std::string m_id; public: - ListenerResult handle(utils::MiniFunction fn, ColorProvidedEvent* event); + ListenerResult handle(std::function fn, ColorProvidedEvent* event); ColorProvidedFilter(std::string const& id); }; diff --git a/loader/include/Geode/utils/JsonValidation.hpp b/loader/include/Geode/utils/JsonValidation.hpp index 461be50b..7dd18a46 100644 --- a/loader/include/Geode/utils/JsonValidation.hpp +++ b/loader/include/Geode/utils/JsonValidation.hpp @@ -4,7 +4,6 @@ #include "../loader/Log.hpp" #include #include -#include #include namespace geode { @@ -73,7 +72,7 @@ namespace geode { } template - using JsonValueValidator = utils::MiniFunction; + using JsonValueValidator = std::function; struct JsonMaybeObject; struct JsonMaybeValue; diff --git a/loader/include/Geode/utils/MiniFunction.hpp b/loader/include/Geode/utils/MiniFunction.hpp deleted file mode 100644 index b29d1735..00000000 --- a/loader/include/Geode/utils/MiniFunction.hpp +++ /dev/null @@ -1,141 +0,0 @@ -#pragma once - -#include -#include -#include -#include "terminate.hpp" - -namespace geode::utils { - - template - class MiniFunction; - - template - class MiniFunctionStateBase { - public: - virtual ~MiniFunctionStateBase() = default; - virtual Ret call(Args... args) const = 0; - virtual MiniFunctionStateBase* clone() const = 0; - }; - - template - class MiniFunctionState final : public MiniFunctionStateBase { - public: - Type m_func; - - explicit MiniFunctionState(Type func) : m_func(func) {} - - Ret call(Args... args) const override { - return const_cast(m_func)(std::forward(args)...); - } - - MiniFunctionStateBase* clone() const override { - return new MiniFunctionState(*this); - } - }; - - template - class MiniFunctionStatePointer final : public MiniFunctionStateBase { - public: - Type m_func; - - explicit MiniFunctionStatePointer(Type func) : m_func(func) {} - - Ret call(Args... args) const override { - return const_cast(*m_func)(std::forward(args)...); - } - - MiniFunctionStateBase* clone() const override { - return new MiniFunctionStatePointer(*this); - } - }; - - template - class MiniFunctionStateMemberPointer final : public MiniFunctionStateBase { - public: - Type m_func; - - explicit MiniFunctionStateMemberPointer(Type func) : m_func(func) {} - - Ret call(Class self, Args... args) const override { - return const_cast(self->*m_func)(std::forward(args)...); - } - - MiniFunctionStateBase* clone() const override { - return new MiniFunctionStateMemberPointer(*this); - } - }; - - template - concept MiniFunctionCallable = requires(Callable&& func, Args... args) { - { func(std::forward(args)...) } -> std::same_as; - }; - - template - class MiniFunction { - public: - using FunctionType = Ret(Args...); - using StateType = MiniFunctionStateBase; - - private: - StateType* m_state; - - public: - MiniFunction() : m_state(nullptr) {} - - MiniFunction(std::nullptr_t) : MiniFunction() {} - - MiniFunction(MiniFunction const& other) : - m_state(other.m_state ? other.m_state->clone() : nullptr) {} - - MiniFunction(MiniFunction&& other) : m_state(other.m_state) { - other.m_state = nullptr; - } - - ~MiniFunction() { - if (m_state) delete m_state; - } - - template - requires(MiniFunctionCallable && !std::is_same_v, MiniFunction>) - MiniFunction(Callable&& func) : - m_state(new MiniFunctionState, Ret, Args...>(std::forward(func))) {} - - template - requires(!MiniFunctionCallable && std::is_pointer_v && std::is_function_v>) - MiniFunction(FunctionPointer func) : - m_state(new MiniFunctionStatePointer(func)) {} - - template - requires(std::is_member_function_pointer_v) - MiniFunction(MemberFunctionPointer func) : - m_state(new MiniFunctionStateMemberPointer(func)) {} - - MiniFunction& operator=(MiniFunction const& other) { - if (m_state) delete m_state; - m_state = other.m_state ? other.m_state->clone() : nullptr; - return *this; - } - - MiniFunction& operator=(MiniFunction&& other) { - if (m_state) delete m_state; - m_state = other.m_state; - other.m_state = nullptr; - return *this; - } - - Ret operator()(Args... args) const { - if (!m_state) { - utils::terminate( - "Attempted to call a MiniFunction that was never assigned " - "any function, or one that has been moved" - ); - } - return m_state->call(std::forward(args)...); - } - - explicit operator bool() const { - return m_state; - } - }; -} diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index d6691257..1d69b155 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -1,7 +1,6 @@ #pragma once #include "general.hpp" -#include "MiniFunction.hpp" #include "../loader/Event.hpp" #include "../loader/Loader.hpp" #include @@ -249,11 +248,11 @@ namespace geode { using Value = T; using Progress = P; - using PostResult = utils::MiniFunction; - using PostProgress = utils::MiniFunction; - using HasBeenCancelled = utils::MiniFunction; - using Run = utils::MiniFunction; - using RunWithCallback = utils::MiniFunction; + using PostResult = std::function; + using PostProgress = std::function; + using HasBeenCancelled = std::function; + using Run = std::function; + using RunWithCallback = std::function; using Callback = void(Event*); @@ -752,7 +751,7 @@ namespace geode { this->listen(std::move(onResult), [](auto const&) {}, [] {}); } - ListenerResult handle(utils::MiniFunction fn, Event* e) { + ListenerResult handle(std::function fn, Event* e) { if (e->m_handle == m_handle && (!e->m_for || e->m_for == m_listener)) { fn(e); } diff --git a/loader/include/Geode/utils/cocos.hpp b/loader/include/Geode/utils/cocos.hpp index a25c2586..5eb5f557 100644 --- a/loader/include/Geode/utils/cocos.hpp +++ b/loader/include/Geode/utils/cocos.hpp @@ -10,7 +10,6 @@ #include "../loader/Event.hpp" #include #include -#include "MiniFunction.hpp" // support converting ccColor3B / ccColor4B to / from json @@ -658,7 +657,7 @@ namespace geode::cocos { */ GEODE_DLL cocos2d::CCScene* switchToScene(cocos2d::CCLayer* layer); - using CreateLayerFunc = utils::MiniFunction; + using CreateLayerFunc = std::function; /** * Reload textures, overwriting the scene to return to after the loading @@ -726,7 +725,7 @@ namespace geode::cocos { * there is none */ template - Type* findFirstChildRecursive(cocos2d::CCNode* node, utils::MiniFunction predicate) { + Type* findFirstChildRecursive(cocos2d::CCNode* node, std::function predicate) { if (cast::typeinfo_cast(node) && predicate(static_cast(node))) return static_cast(node); @@ -880,7 +879,7 @@ namespace geode::cocos { } template >> - static cocos2d::CCArray* vectorToCCArray(std::vector const& vec, utils::MiniFunction convFunc) { + static cocos2d::CCArray* vectorToCCArray(std::vector const& vec, std::function convFunc) { auto res = cocos2d::CCArray::createWithCapacity(vec.size()); for (auto const& item : vec) res->addObject(convFunc(item)); @@ -907,7 +906,7 @@ namespace geode::cocos { template < typename K, typename V, typename C, typename = std::enable_if_t || std::is_same_v>> - static cocos2d::CCDictionary* mapToCCDict(std::map const& map, utils::MiniFunction convFunc) { + static cocos2d::CCDictionary* mapToCCDict(std::map const& map, std::function convFunc) { auto res = cocos2d::CCDictionary::create(); for (auto const& [key, value] : map) res->setObject(value, convFunc(key)); @@ -1180,11 +1179,11 @@ namespace geode::cocos { template class LambdaCallback : public cocos2d::CCObject { public: - utils::MiniFunction m_callback; + std::function m_callback; - static LambdaCallback* create(utils::MiniFunction&& callback) { + static LambdaCallback* create(std::function callback) { auto ret = new (std::nothrow) LambdaCallback(); - if (ret->init(std::forward>(callback))) { + if (ret->init(std::move(callback))) { ret->autorelease(); return ret; } @@ -1192,8 +1191,8 @@ namespace geode::cocos { return nullptr; } - bool init(utils::MiniFunction&& callback) { - m_callback = std::forward>(callback); + bool init(std::function callback) { + m_callback = std::move(callback); return true; } @@ -1204,20 +1203,20 @@ namespace geode::cocos { public: static cocos2d::CCMenuItem* create( - utils::MiniFunction&& callback + std::function callback ) { auto item = cocos2d::CCMenuItem::create(); - assignCallback(item, std::forward>(callback)); + assignCallback(item, std::move(callback)); return item; } static cocos2d::CCMenuItemSprite* createSprite( cocos2d::CCNode* normalSprite, cocos2d::CCNode* selectedSprite, - utils::MiniFunction&& callback + std::function callback ) { auto item = cocos2d::CCMenuItemSprite::create(normalSprite, selectedSprite); - assignCallback(item, std::forward>(callback)); + assignCallback(item, std::move(callback)); return item; } @@ -1225,57 +1224,57 @@ namespace geode::cocos { cocos2d::CCNode* normalSprite, cocos2d::CCNode* selectedSprite, cocos2d::CCNode* disabledSprite, - utils::MiniFunction&& callback + std::function callback ) { auto item = cocos2d::CCMenuItemSprite::create(normalSprite, selectedSprite, disabledSprite); - assignCallback(item, std::forward>(callback)); + assignCallback(item, std::move(callback)); return item; } static CCMenuItemSpriteExtra* createSpriteExtra( cocos2d::CCNode* normalSprite, - utils::MiniFunction&& callback + std::function callback ) { auto item = CCMenuItemSpriteExtra::create(normalSprite, nullptr, nullptr); - assignCallback(item, std::forward>(callback)); + assignCallback(item, std::move(callback)); return item; } static CCMenuItemSpriteExtra* createSpriteExtraWithFilename( std::string_view normalSpriteName, float scale, - utils::MiniFunction&& callback + std::function callback ) { auto sprite = cocos2d::CCSprite::create(normalSpriteName.data()); sprite->setScale(scale); - return createSpriteExtra(sprite, std::forward>(callback)); + return createSpriteExtra(sprite, std::move(callback)); } static CCMenuItemSpriteExtra* createSpriteExtraWithFrameName( std::string_view normalSpriteName, float scale, - utils::MiniFunction&& callback + std::function callback ) { auto sprite = cocos2d::CCSprite::createWithSpriteFrameName(normalSpriteName.data()); sprite->setScale(scale); - return createSpriteExtra(sprite, std::forward>(callback)); + return createSpriteExtra(sprite, std::move(callback)); } static CCMenuItemToggler* createToggler( cocos2d::CCNode* onSprite, cocos2d::CCNode* offSprite, - utils::MiniFunction&& callback + std::function callback ) { auto item = CCMenuItemToggler::create(offSprite, onSprite, nullptr, nullptr); - assignCallback(item, std::forward>(callback)); + assignCallback(item, std::move(callback)); return item; } static CCMenuItemToggler* createTogglerWithStandardSprites( float scale, - utils::MiniFunction&& callback + std::function callback ) { auto offSprite = cocos2d::CCSprite::createWithSpriteFrameName("GJ_checkOff_001.png"); auto onSprite = cocos2d::CCSprite::createWithSpriteFrameName("GJ_checkOn_001.png"); @@ -1283,14 +1282,14 @@ namespace geode::cocos { offSprite->setScale(scale); onSprite->setScale(scale); - return createToggler(onSprite, offSprite, std::forward>(callback)); + return createToggler(onSprite, offSprite, std::move(callback)); } static CCMenuItemToggler* createTogglerWithFilename( std::string_view onSpriteName, std::string_view offSpriteName, float scale, - utils::MiniFunction&& callback + std::function callback ) { auto offSprite = cocos2d::CCSprite::create(offSpriteName.data()); auto onSprite = cocos2d::CCSprite::create(onSpriteName.data()); @@ -1298,14 +1297,14 @@ namespace geode::cocos { offSprite->setScale(scale); onSprite->setScale(scale); - return createToggler(onSprite, offSprite, std::forward>(callback)); + return createToggler(onSprite, offSprite, std::move(callback)); } static CCMenuItemToggler* createTogglerWithFrameName( std::string_view onSpriteName, std::string_view offSpriteName, float scale, - utils::MiniFunction&& callback + std::function callback ) { auto offSprite = cocos2d::CCSprite::createWithSpriteFrameName(offSpriteName.data()); auto onSprite = cocos2d::CCSprite::createWithSpriteFrameName(onSpriteName.data()); @@ -1313,15 +1312,15 @@ namespace geode::cocos { offSprite->setScale(scale); onSprite->setScale(scale); - return createToggler(onSprite, offSprite, std::forward>(callback)); + return createToggler(onSprite, offSprite, std::move(callback)); } template static void assignCallback( cocos2d::CCMenuItem* item, - utils::MiniFunction&& callback + std::function callback ) { - auto lambda = LambdaCallback::create(std::forward>(callback)); + auto lambda = LambdaCallback::create(std::move(callback)); item->setTarget(lambda, menu_selector(LambdaCallback::execute)); item->setUserObject("lambda-callback", lambda); } diff --git a/loader/include/Geode/utils/file.hpp b/loader/include/Geode/utils/file.hpp index 620a71bc..427c6de4 100644 --- a/loader/include/Geode/utils/file.hpp +++ b/loader/include/Geode/utils/file.hpp @@ -162,7 +162,7 @@ namespace geode::utils::file { * @param callback Callback to call with the progress of the unzip operation */ void setProgressCallback( - utils::MiniFunction callback + std::function callback ); /** @@ -213,7 +213,7 @@ namespace geode::utils::file { ); static Result<> intoDir( - utils::MiniFunction progressCallback, + std::function progressCallback, Path const& from, Path const& to, bool deleteZipAfter = false @@ -281,7 +281,7 @@ namespace geode::utils::file { public: using Callback = void(FileWatchEvent*); - ListenerResult handle(utils::MiniFunction callback, FileWatchEvent* event); + ListenerResult handle(std::function callback, FileWatchEvent* event); FileWatchFilter(std::filesystem::path const& path); }; diff --git a/loader/include/Geode/utils/map.hpp b/loader/include/Geode/utils/map.hpp index 00868ef8..3806dd8a 100644 --- a/loader/include/Geode/utils/map.hpp +++ b/loader/include/Geode/utils/map.hpp @@ -20,7 +20,7 @@ namespace geode::utils::map { * false if not. */ template - bool contains(std::unordered_map const& map, utils::MiniFunction containFunc) { + bool contains(std::unordered_map const& map, std::function containFunc) { for (auto const& [_, r] : map) { if (containFunc(r)) return true; } @@ -39,7 +39,7 @@ namespace geode::utils::map { * a pointer. */ template - R select(std::unordered_map const& map, utils::MiniFunction selectFunc) { + R select(std::unordered_map const& map, std::function selectFunc) { for (auto const& [_, r] : map) { if (selectFunc(r)) return r; } @@ -59,7 +59,7 @@ namespace geode::utils::map { */ template std::vector selectAll( - std::unordered_map const& map, utils::MiniFunction selectFunc + std::unordered_map const& map, std::function selectFunc ) { std::vector res; for (auto const& [_, r] : map) { @@ -111,7 +111,7 @@ namespace geode::utils::map { template std::unordered_map remap( std::unordered_map const& map, - utils::MiniFunction(std::pair)> remapFunc + std::function(std::pair)> remapFunc ) { std::unordered_map res; for (auto const& [t, v] : map) { diff --git a/loader/include/Geode/utils/permission.hpp b/loader/include/Geode/utils/permission.hpp index c7c15ca3..dd0b83e3 100644 --- a/loader/include/Geode/utils/permission.hpp +++ b/loader/include/Geode/utils/permission.hpp @@ -1,7 +1,6 @@ #pragma once #include -#include "MiniFunction.hpp" #include namespace geode::utils::permission { @@ -21,5 +20,5 @@ namespace geode::utils::permission { * @param permission The permission * @param callback The callback, passed value is 'true' if permission was granted and 'false' otherwise. */ - void GEODE_DLL requestPermission(Permission permission, utils::MiniFunction callback); + void GEODE_DLL requestPermission(Permission permission, std::function callback); } \ No newline at end of file diff --git a/loader/src/hooks/GeodeNodeMetadata.cpp b/loader/src/hooks/GeodeNodeMetadata.cpp index 37e22b8d..0d6ba416 100644 --- a/loader/src/hooks/GeodeNodeMetadata.cpp +++ b/loader/src/hooks/GeodeNodeMetadata.cpp @@ -335,7 +335,7 @@ void CCNode::updateLayout(bool updateChildOrder) { UserObjectSetEvent::UserObjectSetEvent(CCNode* node, std::string const& id, CCObject* value) : node(node), id(id), value(value) {} -ListenerResult AttributeSetFilter::handle(MiniFunction fn, UserObjectSetEvent* event) { +ListenerResult AttributeSetFilter::handle(std::function fn, UserObjectSetEvent* event) { if (event->id == m_targetID) { fn(event); } diff --git a/loader/src/internal/FileWatcher.hpp b/loader/src/internal/FileWatcher.hpp index 2c7fb128..30913786 100644 --- a/loader/src/internal/FileWatcher.hpp +++ b/loader/src/internal/FileWatcher.hpp @@ -2,15 +2,14 @@ #include //#include -#include #include #include #include class FileWatcher { public: - using FileWatchCallback = geode::utils::MiniFunction; - using ErrorCallback = geode::utils::MiniFunction; + using FileWatchCallback = std::function; + using ErrorCallback = std::function; protected: std::filesystem::path m_file; diff --git a/loader/src/internal/FixModIssues.cpp b/loader/src/internal/FixModIssues.cpp index ed68a4c9..e97bcd15 100644 --- a/loader/src/internal/FixModIssues.cpp +++ b/loader/src/internal/FixModIssues.cpp @@ -20,7 +20,7 @@ protected: std::string content; std::string optionA; std::string optionB; - MiniFunction after; + std::function after; }; EventListener m_download; diff --git a/loader/src/loader/IPC.cpp b/loader/src/loader/IPC.cpp index 6fbabcab..c2870fa3 100644 --- a/loader/src/loader/IPC.cpp +++ b/loader/src/loader/IPC.cpp @@ -19,7 +19,7 @@ ipc::IPCEvent::IPCEvent( ipc::IPCEvent::~IPCEvent() {} -ListenerResult ipc::IPCFilter::handle(utils::MiniFunction fn, IPCEvent* event) { +ListenerResult ipc::IPCFilter::handle(std::function fn, IPCEvent* event) { if (event->targetModID == m_modID && event->messageID == m_messageID) { event->replyData = fn(event); return ListenerResult::Stop; diff --git a/loader/src/loader/LoaderImpl.hpp b/loader/src/loader/LoaderImpl.hpp index 7f79d8e3..99016566 100644 --- a/loader/src/loader/LoaderImpl.hpp +++ b/loader/src/loader/LoaderImpl.hpp @@ -10,7 +10,6 @@ #include #include #include -#include #include "ModImpl.hpp" #include #include @@ -41,7 +40,7 @@ namespace geode { LoadingState m_loadingState = LoadingState::None; - std::vector> m_mainThreadQueue; + std::vector> m_mainThreadQueue; mutable std::mutex m_mainThreadMutex; std::vector> m_uninitializedHooks; bool m_readyToHook = false; diff --git a/loader/src/loader/ModEvent.cpp b/loader/src/loader/ModEvent.cpp index 2abdd2c4..f699619a 100644 --- a/loader/src/loader/ModEvent.cpp +++ b/loader/src/loader/ModEvent.cpp @@ -12,7 +12,7 @@ Mod* ModStateEvent::getMod() const { return m_mod; } -ListenerResult ModStateFilter::handle(utils::MiniFunction fn, ModStateEvent* event) { +ListenerResult ModStateFilter::handle(std::function fn, ModStateEvent* event) { // log::debug("Event mod filter: {}, {}, {}, {}", m_mod, static_cast(m_type), event->getMod(), static_cast(event->getType())); if ((!m_mod || event->getMod() == m_mod) && event->getType() == m_type) { fn(event); diff --git a/loader/src/loader/SettingV3.cpp b/loader/src/loader/SettingV3.cpp index 32511f0e..e7b3292a 100644 --- a/loader/src/loader/SettingV3.cpp +++ b/loader/src/loader/SettingV3.cpp @@ -422,7 +422,7 @@ public: std::optional settingKey; }; -ListenerResult SettingChangedFilterV3::handle(utils::MiniFunction fn, SettingChangedEventV3* event) { +ListenerResult SettingChangedFilterV3::handle(std::function fn, SettingChangedEventV3* event) { if ( event->getSetting()->getModID() == m_impl->modID && !m_impl->settingKey || event->getSetting()->getKey() == m_impl->settingKey diff --git a/loader/src/loader/updater.cpp b/loader/src/loader/updater.cpp index 9fda6f27..10c12f8a 100644 --- a/loader/src/loader/updater.cpp +++ b/loader/src/loader/updater.cpp @@ -16,7 +16,7 @@ updater::ResourceDownloadEvent::ResourceDownloadEvent( ) : status(std::move(status)) {} ListenerResult updater::ResourceDownloadFilter::handle( - const utils::MiniFunction& fn, + const std::function& fn, ResourceDownloadEvent* event ) { fn(event); @@ -30,7 +30,7 @@ updater::LoaderUpdateEvent::LoaderUpdateEvent( ) : status(std::move(status)) {} ListenerResult updater::LoaderUpdateFilter::handle( - const utils::MiniFunction& fn, + const std::function& fn, LoaderUpdateEvent* event ) { fn(event); @@ -45,8 +45,8 @@ std::optional s_latestGithubRelease; bool s_isNewUpdateDownloaded = false; void updater::fetchLatestGithubRelease( - const utils::MiniFunction& then, - utils::MiniFunction expect, bool force + const std::function& then, + std::function expect, bool force ) { if (s_latestGithubRelease) { return then(s_latestGithubRelease.value()); diff --git a/loader/src/loader/updater.hpp b/loader/src/loader/updater.hpp index a5bee7eb..31641b93 100644 --- a/loader/src/loader/updater.hpp +++ b/loader/src/loader/updater.hpp @@ -2,7 +2,6 @@ #include #include -#include #include namespace geode::updater { @@ -20,7 +19,7 @@ namespace geode::updater { public: using Callback = void(ResourceDownloadEvent*); - static ListenerResult handle(const utils::MiniFunction& fn, ResourceDownloadEvent* event); + static ListenerResult handle(const std::function& fn, ResourceDownloadEvent* event); ResourceDownloadFilter(); }; @@ -33,7 +32,7 @@ namespace geode::updater { public: using Callback = void(LoaderUpdateEvent*); - static ListenerResult handle(const utils::MiniFunction& fn, LoaderUpdateEvent* event); + static ListenerResult handle(const std::function& fn, LoaderUpdateEvent* event); LoaderUpdateFilter(); }; @@ -43,8 +42,8 @@ namespace geode::updater { void downloadLatestLoaderResources(); void downloadLoaderUpdate(std::string const& url); void fetchLatestGithubRelease( - const utils::MiniFunction& then, - utils::MiniFunction expect, + const std::function& then, + std::function expect, bool force = false ); diff --git a/loader/src/platform/android/util.cpp b/loader/src/platform/android/util.cpp index 0f534dda..549d9c51 100644 --- a/loader/src/platform/android/util.cpp +++ b/loader/src/platform/android/util.cpp @@ -6,7 +6,6 @@ using namespace geode::prelude; #include #include #include -#include #include #include #include @@ -139,9 +138,9 @@ bool utils::file::openFolder(std::filesystem::path const& path) { } std::mutex s_callbackMutex; -static utils::MiniFunction)> s_fileCallback {}; -static utils::MiniFunction>)> s_filesCallback {}; -static utils::MiniFunction s_taskCancelled {}; +static std::function)> s_fileCallback {}; +static std::function>)> s_filesCallback {}; +static std::function s_taskCancelled {}; extern "C" JNIEXPORT void JNICALL Java_com_geode_launcher_utils_GeodeUtils_selectFileCallback( @@ -356,7 +355,7 @@ bool geode::utils::permission::getPermissionStatus(Permission permission) { return false; } -static MiniFunction s_permissionCallback; +static std::function s_permissionCallback; extern "C" JNIEXPORT void JNICALL Java_com_geode_launcher_utils_GeodeUtils_permissionCallback( @@ -371,7 +370,7 @@ JNIEXPORT void JNICALL Java_com_geode_launcher_utils_GeodeUtils_permissionCallba } } -void geode::utils::permission::requestPermission(Permission permission, utils::MiniFunction callback) { +void geode::utils::permission::requestPermission(Permission permission, std::function callback) { s_permissionCallback = callback; JniMethodInfo info; if (JniHelper::getStaticMethodInfo(info, "com/geode/launcher/utils/GeodeUtils", "requestPermission", "(Ljava/lang/String;)V")) { diff --git a/loader/src/platform/ios/util.mm b/loader/src/platform/ios/util.mm index 3d21fee5..3242d156 100644 --- a/loader/src/platform/ios/util.mm +++ b/loader/src/platform/ios/util.mm @@ -39,6 +39,6 @@ bool geode::utils::permission::getPermissionStatus(Permission permission) { return true; // unimplemented } -void geode::utils::permission::requestPermission(Permission permission, utils::MiniFunction callback) { +void geode::utils::permission::requestPermission(Permission permission, std::function callback) { callback(true); // unimplemented } diff --git a/loader/src/platform/mac/util.mm b/loader/src/platform/mac/util.mm index 88a30eab..b68def89 100644 --- a/loader/src/platform/mac/util.mm +++ b/loader/src/platform/mac/util.mm @@ -309,7 +309,7 @@ bool geode::utils::permission::getPermissionStatus(Permission permission) { return true; // unimplemented } -void geode::utils::permission::requestPermission(Permission permission, utils::MiniFunction callback) { +void geode::utils::permission::requestPermission(Permission permission, std::function callback) { callback(true); // unimplemented } diff --git a/loader/src/platform/windows/util.cpp b/loader/src/platform/windows/util.cpp index b2a6e8b7..d5020657 100644 --- a/loader/src/platform/windows/util.cpp +++ b/loader/src/platform/windows/util.cpp @@ -275,7 +275,7 @@ bool geode::utils::permission::getPermissionStatus(Permission permission) { return true; // unimplemented } -void geode::utils::permission::requestPermission(Permission permission, utils::MiniFunction callback) { +void geode::utils::permission::requestPermission(Permission permission, std::function callback) { callback(true); // unimplemented } diff --git a/loader/src/server/DownloadManager.cpp b/loader/src/server/DownloadManager.cpp index 9cd8ff5b..573881e9 100644 --- a/loader/src/server/DownloadManager.cpp +++ b/loader/src/server/DownloadManager.cpp @@ -9,7 +9,7 @@ using namespace server; ModDownloadEvent::ModDownloadEvent(std::string const& id) : id(id) {} -ListenerResult ModDownloadFilter::handle(MiniFunction fn, ModDownloadEvent* event) { +ListenerResult ModDownloadFilter::handle(std::function fn, ModDownloadEvent* event) { if (m_id.empty() || m_id == event->id) { fn(event); } diff --git a/loader/src/server/DownloadManager.hpp b/loader/src/server/DownloadManager.hpp index a6df29d7..de2ffeb0 100644 --- a/loader/src/server/DownloadManager.hpp +++ b/loader/src/server/DownloadManager.hpp @@ -49,7 +49,7 @@ namespace server { std::string m_id; public: - ListenerResult handle(MiniFunction fn, ModDownloadEvent* event); + ListenerResult handle(std::function fn, ModDownloadEvent* event); ModDownloadFilter(); ModDownloadFilter(std::string const& id); diff --git a/loader/src/ui/mods/UpdateModListState.cpp b/loader/src/ui/mods/UpdateModListState.cpp index 4e18fcd0..e6443a09 100644 --- a/loader/src/ui/mods/UpdateModListState.cpp +++ b/loader/src/ui/mods/UpdateModListState.cpp @@ -2,7 +2,7 @@ UpdateModListStateEvent::UpdateModListStateEvent(UpdateState&& target) : target(target) {} -ListenerResult UpdateModListStateFilter::handle(MiniFunction fn, UpdateModListStateEvent* event) { +ListenerResult UpdateModListStateFilter::handle(std::function fn, UpdateModListStateEvent* event) { if ( // If the listener wants to hear all state updates then let it std::holds_alternative(m_target) || diff --git a/loader/src/ui/mods/UpdateModListState.hpp b/loader/src/ui/mods/UpdateModListState.hpp index 38175509..55bb5eeb 100644 --- a/loader/src/ui/mods/UpdateModListState.hpp +++ b/loader/src/ui/mods/UpdateModListState.hpp @@ -35,7 +35,7 @@ protected: UpdateState m_target; public: - ListenerResult handle(MiniFunction fn, UpdateModListStateEvent* event); + ListenerResult handle(std::function fn, UpdateModListStateEvent* event); UpdateModListStateFilter(); UpdateModListStateFilter(UpdateState&& target); diff --git a/loader/src/ui/mods/sources/ModListSource.cpp b/loader/src/ui/mods/sources/ModListSource.cpp index e19e1c43..c7b301a0 100644 --- a/loader/src/ui/mods/sources/ModListSource.cpp +++ b/loader/src/ui/mods/sources/ModListSource.cpp @@ -15,7 +15,7 @@ static size_t ceildiv(size_t a, size_t b) { InvalidateCacheEvent::InvalidateCacheEvent(ModListSource* src) : source(src) {} -ListenerResult InvalidateCacheFilter::handle(MiniFunction fn, InvalidateCacheEvent* event) { +ListenerResult InvalidateCacheFilter::handle(std::function fn, InvalidateCacheEvent* event) { if (event->source == m_source) { fn(event); } diff --git a/loader/src/ui/mods/sources/ModListSource.hpp b/loader/src/ui/mods/sources/ModListSource.hpp index 8506d305..5b61d22a 100644 --- a/loader/src/ui/mods/sources/ModListSource.hpp +++ b/loader/src/ui/mods/sources/ModListSource.hpp @@ -21,7 +21,7 @@ protected: public: using Callback = void(InvalidateCacheEvent*); - ListenerResult handle(MiniFunction fn, InvalidateCacheEvent* event); + ListenerResult handle(std::function fn, InvalidateCacheEvent* event); InvalidateCacheFilter() = default; InvalidateCacheFilter(ModListSource* src); diff --git a/loader/src/ui/nodes/ColorPickPopup.cpp b/loader/src/ui/nodes/ColorPickPopup.cpp index 7a6b46c3..49a0b4fc 100644 --- a/loader/src/ui/nodes/ColorPickPopup.cpp +++ b/loader/src/ui/nodes/ColorPickPopup.cpp @@ -40,7 +40,7 @@ using namespace geode::prelude; // ColorPickPopup* popup; // }; -// ListenerResult ColorPickPopupEventFilter::handle(utils::MiniFunction fn, ColorPickPopupEvent* event) { +// ListenerResult ColorPickPopupEventFilter::handle(std::function fn, ColorPickPopupEvent* event) { // if (event->getPopup() == m_impl->popup) { // if (event->isPopupClosed()) { // m_impl->popup = nullptr; diff --git a/loader/src/ui/nodes/EnterLayerEvent.cpp b/loader/src/ui/nodes/EnterLayerEvent.cpp index 1f68f53f..5bb1bf60 100644 --- a/loader/src/ui/nodes/EnterLayerEvent.cpp +++ b/loader/src/ui/nodes/EnterLayerEvent.cpp @@ -8,7 +8,7 @@ AEnterLayerEvent::AEnterLayerEvent( ) : layerID(layerID), layer(layer) {} -ListenerResult AEnterLayerFilter::handle(utils::MiniFunction fn, AEnterLayerEvent* event) { +ListenerResult AEnterLayerFilter::handle(std::function fn, AEnterLayerEvent* event) { if (m_targetID == event->layerID) { fn(event); } diff --git a/loader/src/ui/nodes/MDPopup.cpp b/loader/src/ui/nodes/MDPopup.cpp index 462dcc71..1b79daaa 100644 --- a/loader/src/ui/nodes/MDPopup.cpp +++ b/loader/src/ui/nodes/MDPopup.cpp @@ -6,7 +6,7 @@ using namespace geode::prelude; bool MDPopup::setup( std::string const& title, std::string const& info, char const* btn1Text, char const* btn2Text, - utils::MiniFunction onClick + std::function onClick ) { this->setTitle(title.c_str(), "goldFont.fnt", .9f, 33.f); @@ -60,7 +60,7 @@ float MDPopup::estimateHeight(std::string const& content) { MDPopup* MDPopup::create( std::string const& title, std::string const& content, char const* btn1, char const* btn2, - utils::MiniFunction onClick + std::function onClick ) { auto ret = new MDPopup(); if (ret->initAnchored( diff --git a/loader/src/ui/nodes/Popup.cpp b/loader/src/ui/nodes/Popup.cpp index 714e3f4e..b8fab53b 100644 --- a/loader/src/ui/nodes/Popup.cpp +++ b/loader/src/ui/nodes/Popup.cpp @@ -71,7 +71,7 @@ using namespace geode::prelude; class QuickPopup : public FLAlertLayer, public FLAlertLayerProtocol { protected: - MiniFunction m_selected; + std::function m_selected; bool m_cancelledByEscape; bool m_usedEscape = false; @@ -92,7 +92,7 @@ protected: public: static QuickPopup* create( char const* title, std::string const& content, char const* btn1, char const* btn2, - float width, MiniFunction selected, bool cancelledByEscape + float width, std::function selected, bool cancelledByEscape ) { auto inst = new QuickPopup; inst->m_selected = selected; @@ -109,7 +109,7 @@ public: FLAlertLayer* geode::createQuickPopup( char const* title, std::string const& content, char const* btn1, char const* btn2, float width, - MiniFunction selected, bool doShow + std::function selected, bool doShow ) { auto ret = QuickPopup::create(title, content, btn1, btn2, width, selected, false); if (doShow) { @@ -120,14 +120,14 @@ FLAlertLayer* geode::createQuickPopup( FLAlertLayer* geode::createQuickPopup( char const* title, std::string const& content, char const* btn1, char const* btn2, - MiniFunction selected, bool doShow + std::function selected, bool doShow ) { return createQuickPopup(title, content, btn1, btn2, 350.f, selected, doShow); } FLAlertLayer* geode::createQuickPopup( char const* title, std::string const& content, char const* btn1, char const* btn2, float width, - MiniFunction selected, bool doShow, bool cancelledByEscape + std::function selected, bool doShow, bool cancelledByEscape ) { auto ret = QuickPopup::create(title, content, btn1, btn2, width, selected, cancelledByEscape); if (doShow) { @@ -138,7 +138,7 @@ FLAlertLayer* geode::createQuickPopup( FLAlertLayer* geode::createQuickPopup( char const* title, std::string const& content, char const* btn1, char const* btn2, - MiniFunction selected, bool doShow, bool cancelledByEscape + std::function selected, bool doShow, bool cancelledByEscape ) { return createQuickPopup(title, content, btn1, btn2, 350.f, selected, doShow, cancelledByEscape); } diff --git a/loader/src/utils/ColorProvider.cpp b/loader/src/utils/ColorProvider.cpp index 4f2a922b..644634bc 100644 --- a/loader/src/utils/ColorProvider.cpp +++ b/loader/src/utils/ColorProvider.cpp @@ -6,7 +6,7 @@ using namespace geode::prelude; ColorProvidedEvent::ColorProvidedEvent(std::string const& id, cocos2d::ccColor4B const& color) : id(id), color(color) {} -ListenerResult ColorProvidedFilter::handle(MiniFunction fn, ColorProvidedEvent* event) { +ListenerResult ColorProvidedFilter::handle(std::function fn, ColorProvidedEvent* event) { if (event->id == m_id) { fn(event); } diff --git a/loader/src/utils/file.cpp b/loader/src/utils/file.cpp index 0d514f5d..cecd1254 100644 --- a/loader/src/utils/file.cpp +++ b/loader/src/utils/file.cpp @@ -180,7 +180,7 @@ private: int32_t m_mode; std::variant m_srcDest; std::unordered_map m_entries; - utils::MiniFunction m_progressCallback; + std::function m_progressCallback; Result<> init() { // open stream from file @@ -295,7 +295,7 @@ public: return Ok(std::move(ret)); } - void setProgressCallback(utils::MiniFunction callback) { + void setProgressCallback(std::function callback) { m_progressCallback = callback; } @@ -536,7 +536,7 @@ Unzip::Path Unzip::getPath() const { } void Unzip::setProgressCallback( - utils::MiniFunction callback + std::function callback ) { return m_impl->setProgressCallback(callback); } @@ -587,7 +587,7 @@ Result<> Unzip::intoDir( } Result<> Unzip::intoDir( - utils::MiniFunction progressCallback, + std::function progressCallback, Path const& from, Path const& to, bool deleteZipAfter @@ -677,7 +677,7 @@ std::filesystem::path FileWatchEvent::getPath() const { } ListenerResult FileWatchFilter::handle( - MiniFunction callback, + std::function callback, FileWatchEvent* event ) { std::error_code ec; diff --git a/loader/test/dependency/main.cpp b/loader/test/dependency/main.cpp index d765941e..caafb23a 100644 --- a/loader/test/dependency/main.cpp +++ b/loader/test/dependency/main.cpp @@ -12,7 +12,7 @@ std::string TestEvent::getData() const { TestEvent::TestEvent(std::string const& data) : data(data) {} -ListenerResult TestEventFilter::handle(utils::MiniFunction fn, TestEvent* event) { +ListenerResult TestEventFilter::handle(std::function fn, TestEvent* event) { fn(event); return ListenerResult::Propagate; } diff --git a/loader/test/dependency/main.hpp b/loader/test/dependency/main.hpp index abf4f610..f6364391 100644 --- a/loader/test/dependency/main.hpp +++ b/loader/test/dependency/main.hpp @@ -29,7 +29,7 @@ class GEODE_TESTDEP_DLL TestEventFilter : public EventFilter { public: using Callback = void(TestEvent*); - ListenerResult handle(utils::MiniFunction fn, TestEvent* event); + ListenerResult handle(std::function fn, TestEvent* event); TestEventFilter(); TestEventFilter(TestEventFilter const&) = default; }; From 8320cf60574b3e2d5a2f28d8cc751fa6b6853260 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 4 Nov 2024 21:27:14 +0300 Subject: [PATCH 005/119] Alias V3 settings to default --- loader/include/Geode/Loader.hpp | 2 +- loader/include/Geode/loader/Event.hpp | 6 +-- loader/include/Geode/loader/Mod.hpp | 12 ++--- loader/include/Geode/loader/ModMetadata.hpp | 2 +- .../Geode/loader/ModSettingsManager.hpp | 8 +--- loader/include/Geode/loader/Setting.hpp | 48 +++++++++++++++++++ loader/include/Geode/loader/SettingV3.hpp | 34 ++++++------- loader/include/Geode/loader/Types.hpp | 3 -- loader/include/Geode/platform/platform.hpp | 26 ++++++---- loader/include/Geode/ui/SceneManager.hpp | 10 ++-- loader/src/hooks/persist.cpp | 13 +++-- loader/src/loader/Mod.cpp | 2 +- loader/src/loader/ModImpl.cpp | 8 ++-- loader/src/loader/ModMetadataImpl.cpp | 2 +- loader/src/loader/ModMetadataImpl.hpp | 2 +- loader/src/loader/ModSettingsManager.cpp | 37 ++++++-------- loader/src/loader/SettingNode.hpp | 16 +++++++ loader/src/loader/SettingNodeV3.hpp | 2 +- loader/src/loader/SettingV3.cpp | 14 ++---- loader/src/ui/mods/ModsLayer.cpp | 2 +- loader/src/ui/mods/ModsLayer.hpp | 4 +- loader/src/ui/mods/list/ModItem.cpp | 2 +- loader/src/ui/mods/list/ModItem.hpp | 2 +- loader/src/ui/mods/popups/ModPopup.cpp | 2 +- loader/src/ui/mods/popups/ModPopup.hpp | 2 +- .../src/ui/mods/settings/ModSettingsPopup.cpp | 19 ++++---- .../src/ui/mods/settings/ModSettingsPopup.hpp | 8 ++-- loader/src/utils/PlatformID.cpp | 5 -- 28 files changed, 167 insertions(+), 126 deletions(-) create mode 100644 loader/include/Geode/loader/Setting.hpp create mode 100644 loader/src/loader/SettingNode.hpp diff --git a/loader/include/Geode/Loader.hpp b/loader/include/Geode/Loader.hpp index 3de671be..a1bb4c37 100644 --- a/loader/include/Geode/Loader.hpp +++ b/loader/include/Geode/Loader.hpp @@ -5,7 +5,7 @@ #include "loader/Log.hpp" #include "loader/Mod.hpp" #include "loader/ModEvent.hpp" -#include "loader/SettingV3.hpp" +#include "loader/Setting.hpp" #include "loader/Dirs.hpp" #include diff --git a/loader/include/Geode/loader/Event.hpp b/loader/include/Geode/loader/Event.hpp index d7420a03..8f88cb54 100644 --- a/loader/include/Geode/loader/Event.hpp +++ b/loader/include/Geode/loader/Event.hpp @@ -51,6 +51,7 @@ namespace geode { private: static DefaultEventListenerPool* create(); + DefaultEventListenerPool(); public: bool add(EventListenerProtocol* listener) override; @@ -63,10 +64,7 @@ namespace geode { friend class DispatchEvent; template - friend class DispatchFilter; - - // todo: make this private in Geode 4.0.0 - DefaultEventListenerPool(); + friend class DispatchFilter; }; class GEODE_DLL EventListenerProtocol { diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index 99cb2b9d..5639e628 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -9,7 +9,7 @@ #include "Loader.hpp" // very nice circular dependency fix #include "Hook.hpp" #include "ModMetadata.hpp" -#include "SettingV3.hpp" +#include "Setting.hpp" #include "Types.hpp" #include "Loader.hpp" @@ -22,9 +22,7 @@ #include #include -namespace geode { - class SettingV3; - +namespace geode { template struct HandleToSaved : public T { Mod* m_mod; @@ -182,7 +180,7 @@ namespace geode { * `Mod::registerCustomSettingType` * @param key The key of the setting as defined in `mod.json` */ - std::shared_ptr getSettingV3(std::string_view const key) const; + std::shared_ptr getSetting(std::string_view const key) const; /** * Register a custom setting type. See @@ -245,7 +243,7 @@ namespace geode { template T getSettingValue(std::string_view const key) const { using S = typename SettingTypeForValueType::SettingType; - if (auto sett = cast::typeinfo_pointer_cast(this->getSettingV3(key))) { + if (auto sett = cast::typeinfo_pointer_cast(this->getSetting(key))) { return sett->getValue(); } return T(); @@ -254,7 +252,7 @@ namespace geode { template T setSettingValue(std::string_view const key, T const& value) { using S = typename SettingTypeForValueType::SettingType; - if (auto sett = cast::typeinfo_pointer_cast(this->getSettingV3(key))) { + if (auto sett = cast::typeinfo_pointer_cast(this->getSetting(key))) { auto old = sett->getValue(); sett->setValue(value); return old; diff --git a/loader/include/Geode/loader/ModMetadata.hpp b/loader/include/Geode/loader/ModMetadata.hpp index 0316c6c1..9c0c553f 100644 --- a/loader/include/Geode/loader/ModMetadata.hpp +++ b/loader/include/Geode/loader/ModMetadata.hpp @@ -171,7 +171,7 @@ namespace geode { * Mod settings * @note Not a map because insertion order must be preserved */ - [[nodiscard]] std::vector> getSettingsV3() const; + [[nodiscard]] std::vector> getSettings() const; /** * Get the tags for this mod */ diff --git a/loader/include/Geode/loader/ModSettingsManager.hpp b/loader/include/Geode/loader/ModSettingsManager.hpp index 6baa355d..6f5db523 100644 --- a/loader/include/Geode/loader/ModSettingsManager.hpp +++ b/loader/include/Geode/loader/ModSettingsManager.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include "SettingV3.hpp" +#include "Setting.hpp" namespace geode { class Mod; @@ -57,12 +57,8 @@ namespace geode { matjson::Value& getSaveData(); Result<> registerCustomSettingType(std::string_view type, SettingGenerator generator); - // todo in v4: remove this - Result<> registerLegacyCustomSetting(std::string_view key, std::unique_ptr&& ptr); - std::shared_ptr get(std::string_view key); - std::shared_ptr getLegacy(std::string_view key); - std::optional getLegacyDefinition(std::string_view key); + std::shared_ptr get(std::string_view key); /** * Returns true if any setting with the `"restart-required"` attribute diff --git a/loader/include/Geode/loader/Setting.hpp b/loader/include/Geode/loader/Setting.hpp new file mode 100644 index 00000000..3ae2ef7b --- /dev/null +++ b/loader/include/Geode/loader/Setting.hpp @@ -0,0 +1,48 @@ +#pragma once +#include "SettingV3.hpp" + +namespace geode { + using Setting = SettingV3; + using SettingGenerator = SettingGeneratorV3; + + template + using SettingBaseValue = SettingBaseValueV3; + + using TitleSetting = TitleSettingV3; + using BoolSetting = BoolSettingV3; + using IntSetting = IntSettingV3; + using FloatSetting = FloatSettingV3; + using StringSetting = StringSettingV3; + using FileSetting = FileSettingV3; + using Color3BSetting = Color3BSettingV3; + using Color4BSetting = Color4BSettingV3; + + using SettingNode = SettingNodeV3; + template + using SettingValueNode = SettingValueNodeV3; + + using SettingChangedEvent = SettingChangedEventV3; + using SettingChangedFilter = SettingChangedFilterV3; + using SettingNodeSizeChangeEvent = SettingNodeSizeChangeEventV3; + using SettingNodeValueChangeEvent = SettingNodeValueChangeEventV3; + + template + using SettingTypeForValueType = SettingTypeForValueTypeV3; + + template + EventListener* listenForSettingChanges(std::string_view settingKey, Lambda&& callback, Mod* mod = getMod()) { + return listenForSettingChangesV3(settingKey, std::forward(callback), mod); + } + + template + EventListener* listenForSettingChanges(std::string_view settingKey, Lambda&& callback, Mod* mod = getMod()) { + return listenForSettingChangesV3(settingKey, std::forward(callback), mod); + } + + inline EventListener* listenForAllSettingChanges( + std::function)> const& callback, + Mod* mod = getMod() + ) { + return listenForAllSettingChangesV3(callback, mod); + } +} \ No newline at end of file diff --git a/loader/include/Geode/loader/SettingV3.hpp b/loader/include/Geode/loader/SettingV3.hpp index bea8bda8..bf6e528f 100644 --- a/loader/include/Geode/loader/SettingV3.hpp +++ b/loader/include/Geode/loader/SettingV3.hpp @@ -14,8 +14,6 @@ class ModSettingsPopup; namespace geode { class ModSettingsManager; class SettingNodeV3; - // todo in v4: remove this - class SettingValue; class GEODE_DLL SettingV3 : public std::enable_shared_from_this { private: @@ -122,8 +120,6 @@ namespace geode { */ void markChanged(); - friend class ::geode::SettingValue; - public: SettingV3(); virtual ~SettingV3(); @@ -182,7 +178,7 @@ namespace geode { virtual void reset() = 0; }; - using SettingGenerator = std::function>( + using SettingGeneratorV3 = std::function>( std::string const& key, std::string const& modID, matjson::Value const& json @@ -697,45 +693,45 @@ namespace geode { }; template - struct SettingTypeForValueType { + struct SettingTypeForValueTypeV3 { static_assert( !std::is_same_v, - "specialize the SettingTypeForValueType class to use Mod::getSettingValue for custom settings" + "specialize the SettingTypeForValueTypeV3 class to use Mod::getSettingValue for custom settings" ); }; template <> - struct SettingTypeForValueType { + struct SettingTypeForValueTypeV3 { using SettingType = BoolSettingV3; }; template <> - struct SettingTypeForValueType { + struct SettingTypeForValueTypeV3 { using SettingType = IntSettingV3; }; template <> - struct SettingTypeForValueType { + struct SettingTypeForValueTypeV3 { using SettingType = FloatSettingV3; }; template <> - struct SettingTypeForValueType { + struct SettingTypeForValueTypeV3 { using SettingType = StringSettingV3; }; template <> - struct SettingTypeForValueType { + struct SettingTypeForValueTypeV3 { using SettingType = FileSettingV3; }; template <> - struct SettingTypeForValueType { + struct SettingTypeForValueTypeV3 { using SettingType = Color3BSettingV3; }; template <> - struct SettingTypeForValueType { + struct SettingTypeForValueTypeV3 { using SettingType = Color4BSettingV3; }; template - EventListener* listenForSettingChanges(std::string_view settingKey, auto&& callback, Mod* mod = getMod()) { - using Ty = typename SettingTypeForValueType::SettingType; + EventListener* listenForSettingChangesV3(std::string_view settingKey, auto&& callback, Mod* mod = getMod()) { + using Ty = typename SettingTypeForValueTypeV3::SettingType; return new EventListener( [callback = std::move(callback)](std::shared_ptr setting) { if (auto ty = geode::cast::typeinfo_pointer_cast(setting)) { @@ -745,11 +741,11 @@ namespace geode { SettingChangedFilterV3(mod, std::string(settingKey)) ); } - EventListener* listenForSettingChanges(std::string_view settingKey, auto&& callback, Mod* mod = getMod()) { + EventListener* listenForSettingChangesV3(std::string_view settingKey, auto&& callback, Mod* mod = getMod()) { using T = std::remove_cvref_t>; - return listenForSettingChanges(settingKey, std::move(callback), mod); + return listenForSettingChangesV3(settingKey, std::move(callback), mod); } - GEODE_DLL EventListener* listenForAllSettingChanges( + GEODE_DLL EventListener* listenForAllSettingChangesV3( std::function)> const& callback, Mod* mod = getMod() ); diff --git a/loader/include/Geode/loader/Types.hpp b/loader/include/Geode/loader/Types.hpp index ba869cf5..e5243a47 100644 --- a/loader/include/Geode/loader/Types.hpp +++ b/loader/include/Geode/loader/Types.hpp @@ -89,14 +89,11 @@ namespace geode { constexpr std::string_view GEODE_MOD_EXTENSION = ".geode"; class Mod; - class Setting; class Loader; class Hook; class VersionInfo; class Unknown; - using unknownmemfn_t = void (Unknown::*)(); - using unknownfn_t = void (*)(); namespace modifier { template diff --git a/loader/include/Geode/platform/platform.hpp b/loader/include/Geode/platform/platform.hpp index c8d52484..2ef19b36 100644 --- a/loader/include/Geode/platform/platform.hpp +++ b/loader/include/Geode/platform/platform.hpp @@ -116,14 +116,22 @@ namespace geode { public: // todo in v4: make these flags and add archless Mac and Android as well as Desktop and Mobile and remove Linux enum { - Unknown = -1, - Windows = 0, - MacIntel = 1, - MacArm = 2, - iOS = 3, - Android32 = 4, - Android64 = 5, - Linux = 6, + Unknown = 0b000000, + Windows = 0b000001, + Android32 = 0b000010, + Android64 = 0b000100, + MacIntel = 0b001000, + MacArm = 0b010000, + iOS = 0b100000, + Android = Android32 | Android64, + Mac = MacIntel | MacArm, + Apple = Mac | iOS, + X64 = MacIntel | Windows, + X86 = Unknown, + ArmV7 = Android32, + ArmV8 = Android64 | MacArm | iOS, + Desktop = Windows | Mac, + Mobile = Android | iOS, }; using Type = decltype(Unknown); @@ -190,7 +198,6 @@ namespace geode { case iOS: return "iOS"; case Android32: return "Android32"; case Android64: return "Android64"; - case Linux: return "Linux"; default: break; } return "Undefined"; @@ -206,7 +213,6 @@ namespace geode { case iOS: return "ios"; case Android32: return ignoreArch ? "android" : "android32"; case Android64: return ignoreArch ? "android" : "android64"; - case Linux: return "linux"; default: break; } return "undefined"; diff --git a/loader/include/Geode/ui/SceneManager.hpp b/loader/include/Geode/ui/SceneManager.hpp index 961003e1..2c57c564 100644 --- a/loader/include/Geode/ui/SceneManager.hpp +++ b/loader/include/Geode/ui/SceneManager.hpp @@ -8,6 +8,8 @@ #include namespace geode { + struct SceneSwitch; + class GEODE_DLL SceneManager final { protected: std::vector> m_persistedNodes; @@ -15,6 +17,10 @@ namespace geode { virtual ~SceneManager(); + void willSwitchToScene(cocos2d::CCScene* scene); + + friend struct SceneSwitch; + public: static SceneManager* get(); @@ -34,9 +40,5 @@ namespace geode { * Gets a span of the persisted nodes. To add new nodes to the list, use keepAcrossScenes. */ std::span const> getPersistedNodes(); - - // This method should only be called by geode itself - // TODO(v4): hide this - void willSwitchToScene(cocos2d::CCScene* scene); }; } diff --git a/loader/src/hooks/persist.cpp b/loader/src/hooks/persist.cpp index 44a18d14..0c0ea468 100644 --- a/loader/src/hooks/persist.cpp +++ b/loader/src/hooks/persist.cpp @@ -2,10 +2,15 @@ using namespace geode::prelude; +#ifdef GEODE_IS_WINDOWS +#include +#else +#include +#endif + +namespace geode { #ifdef GEODE_IS_WINDOWS - -#include struct SceneSwitch : Modify { GEODE_FORWARD_COMPAT_DISABLE_HOOKS("persist disabled") void willSwitchToScene(CCScene* scene) { @@ -15,8 +20,6 @@ struct SceneSwitch : Modify { }; #else - -#include struct SceneSwitch : Modify { GEODE_FORWARD_COMPAT_DISABLE_HOOKS("persist disabled") void willSwitchToScene(CCScene* scene) { @@ -26,3 +29,5 @@ struct SceneSwitch : Modify { }; #endif + +} \ No newline at end of file diff --git a/loader/src/loader/Mod.cpp b/loader/src/loader/Mod.cpp index c377f9c6..0bddeacc 100644 --- a/loader/src/loader/Mod.cpp +++ b/loader/src/loader/Mod.cpp @@ -152,7 +152,7 @@ bool Mod::hasSetting(std::string_view const key) const { return m_impl->hasSetting(key); } -std::shared_ptr Mod::getSettingV3(std::string_view const key) const { +std::shared_ptr Mod::getSetting(std::string_view const key) const { return m_impl->m_settings->get(std::string(key)); } diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index 0334e06d..963925f4 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -229,19 +229,19 @@ Result<> Mod::Impl::saveData() { } bool Mod::Impl::hasSettings() const { - return m_metadata.getSettingsV3().size(); + return m_metadata.getSettings().size(); } std::vector Mod::Impl::getSettingKeys() const { std::vector keys; - for (auto& [key, _] : m_metadata.getSettingsV3()) { + for (auto& [key, _] : m_metadata.getSettings()) { keys.push_back(key); } return keys; } bool Mod::Impl::hasSetting(std::string_view const key) const { - for (auto& setting : m_metadata.getSettingsV3()) { + for (auto& setting : m_metadata.getSettings()) { if (setting.first == key) { return true; } @@ -681,8 +681,6 @@ ModJson Mod::Impl::getRuntimeInfo() const { for (auto patch : m_patches) { obj["patches"].as_array().push_back(ModJson(patch->getRuntimeInfo())); } - // TODO: so which one is it - // obj["enabled"] = m_enabled; obj["loaded"] = m_enabled; obj["temp-dir"] = this->getTempDir(); obj["save-dir"] = this->getSaveDir(); diff --git a/loader/src/loader/ModMetadataImpl.cpp b/loader/src/loader/ModMetadataImpl.cpp index 54162a44..0924187a 100644 --- a/loader/src/loader/ModMetadataImpl.cpp +++ b/loader/src/loader/ModMetadataImpl.cpp @@ -519,7 +519,7 @@ std::vector ModMetadata::getIncompatibilities() co std::vector ModMetadata::getSpritesheets() const { return m_impl->m_spritesheets; } -std::vector> ModMetadata::getSettingsV3() const { +std::vector> ModMetadata::getSettings() const { return m_impl->m_settings; } std::unordered_set ModMetadata::getTags() const { diff --git a/loader/src/loader/ModMetadataImpl.hpp b/loader/src/loader/ModMetadataImpl.hpp index fbf97448..f14ab996 100644 --- a/loader/src/loader/ModMetadataImpl.hpp +++ b/loader/src/loader/ModMetadataImpl.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include using namespace geode::prelude; diff --git a/loader/src/loader/ModSettingsManager.cpp b/loader/src/loader/ModSettingsManager.cpp index 23615909..c908bb27 100644 --- a/loader/src/loader/ModSettingsManager.cpp +++ b/loader/src/loader/ModSettingsManager.cpp @@ -13,17 +13,17 @@ private: std::unordered_map m_types; SharedSettingTypesPool() : m_types({ - { "title", &TitleSettingV3::parse }, - { "bool", &BoolSettingV3::parse }, - { "int", &IntSettingV3::parse }, - { "float", &FloatSettingV3::parse }, - { "string", &StringSettingV3::parse }, - { "file", &FileSettingV3::parse }, - { "folder", &FileSettingV3::parse }, - { "path", &FileSettingV3::parse }, - { "rgb", &Color3BSettingV3::parse }, - { "color", &Color3BSettingV3::parse }, - { "rgba", &Color4BSettingV3::parse }, + { "title", &TitleSetting::parse }, + { "bool", &BoolSetting::parse }, + { "int", &IntSetting::parse }, + { "float", &FloatSetting::parse }, + { "string", &StringSetting::parse }, + { "file", &FileSetting::parse }, + { "folder", &FileSetting::parse }, + { "path", &FileSetting::parse }, + { "rgb", &Color3BSetting::parse }, + { "color", &Color3BSetting::parse }, + { "rgba", &Color4BSetting::parse }, }) {} public: @@ -78,9 +78,7 @@ public: struct SettingInfo final { std::string type; matjson::Value json; - std::shared_ptr v3 = nullptr; - // todo: remove in v4 - std::shared_ptr legacy = nullptr; + std::shared_ptr v3 = nullptr; }; std::string modID; std::unordered_map settings; @@ -159,7 +157,7 @@ ModSettingsManager::ModSettingsManager(ModMetadata const& metadata) : m_impl(std::make_unique()) { m_impl->modID = metadata.getID(); - for (auto const& [key, json] : metadata.getSettingsV3()) { + for (auto const& [key, json] : metadata.getSettings()) { auto setting = Impl::SettingInfo(); setting.json = json; auto root = checkJson(json, "setting"); @@ -195,13 +193,6 @@ Result<> ModSettingsManager::registerCustomSettingType(std::string_view type, Se m_impl->createSettings(); return Ok(); } -Result<> ModSettingsManager::registerLegacyCustomSetting(std::string_view key, std::unique_ptr&& ptr) { - auto id = std::string(key); - if (!m_impl->settings.count(id)) { - return Err("No such setting '{}' in mod {}", id, m_impl->modID); - } - return Ok(); -} Result<> ModSettingsManager::load(matjson::Value const& json) { if (json.is_object()) { @@ -225,7 +216,7 @@ matjson::Value& ModSettingsManager::getSaveData() { return m_impl->savedata; } -std::shared_ptr ModSettingsManager::get(std::string_view key) { +std::shared_ptr ModSettingsManager::get(std::string_view key) { auto id = std::string(key); return m_impl->settings.count(id) ? m_impl->settings.at(id).v3 : nullptr; } diff --git a/loader/src/loader/SettingNode.hpp b/loader/src/loader/SettingNode.hpp new file mode 100644 index 00000000..1e4d1e5e --- /dev/null +++ b/loader/src/loader/SettingNode.hpp @@ -0,0 +1,16 @@ +#pragma once +#include "SettingNodeV3.hpp" + +using namespace geode::prelude; + +using TitleSettingNode = TitleSettingNodeV3; +using BoolSettingNode = BoolSettingNodeV3; +template +using NumberSettingNode = NumberSettingNodeV3; +using IntSettingNode = IntSettingNodeV3; +using FloatSettingNode = FloatSettingNodeV3; +using StringSettingNode = StringSettingNodeV3; +using FileSettingNode = FileSettingNodeV3; +using Color3BSettingNode = Color3BSettingNodeV3; +using Color4BSettingNode = Color4BSettingNodeV3; +using UnresolvedCustomSettingNode = UnresolvedCustomSettingNodeV3; \ No newline at end of file diff --git a/loader/src/loader/SettingNodeV3.hpp b/loader/src/loader/SettingNodeV3.hpp index be462eb5..794379b7 100644 --- a/loader/src/loader/SettingNodeV3.hpp +++ b/loader/src/loader/SettingNodeV3.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include #include diff --git a/loader/src/loader/SettingV3.cpp b/loader/src/loader/SettingV3.cpp index e7b3292a..7f0d91b3 100644 --- a/loader/src/loader/SettingV3.cpp +++ b/loader/src/loader/SettingV3.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include #include @@ -45,7 +45,7 @@ namespace enable_if_parsing { if (!mod->hasSetting(settingID)) { return Err("Mod '{}' does not have setting '{}'", mod->getName(), settingID); } - if (!typeinfo_pointer_cast(mod->getSettingV3(settingID))) { + if (!typeinfo_pointer_cast(mod->getSetting(settingID))) { return Err("Setting '{}' in mod '{}' is not a boolean setting", settingID, mod->getName()); } } @@ -59,7 +59,7 @@ namespace enable_if_parsing { // This is an if-check just in case, even though check() should already // make sure that getSettingV3 is guaranteed to return true auto name = settingID; - if (auto sett = mod->getSettingV3(settingID)) { + if (auto sett = mod->getSetting(settingID)) { name = sett->getDisplayName(); } if (modID == defaultModID) { @@ -446,7 +446,7 @@ SettingChangedFilterV3::SettingChangedFilterV3(Mod* mod, std::optional* geode::listenForAllSettingChanges( +EventListener* geode::listenForAllSettingChangesV3( std::function)> const& callback, Mod* mod ) { @@ -572,12 +572,6 @@ void SettingV3::markChanged() { manager->markRestartRequired(); } SettingChangedEventV3(shared_from_this()).post(); - if (manager) { - // TODO: v4 - // Use ModSettingsManager rather than convertToLegacyValue since it - // caches the result and we want to have that for performance - // SettingChangedEvent(this->getMod(), manager->getLegacy(this->getKey()).get()).post(); - } } class TitleSettingV3::Impl final { public: diff --git a/loader/src/ui/mods/ModsLayer.cpp b/loader/src/ui/mods/ModsLayer.cpp index 27fc2866..64985430 100644 --- a/loader/src/ui/mods/ModsLayer.cpp +++ b/loader/src/ui/mods/ModsLayer.cpp @@ -90,7 +90,7 @@ bool ModsStatusNode::init() { m_downloadListener.bind([this](auto) { this->updateState(); }); - m_settingNodeListener.bind([this](SettingNodeValueChangeEventV3* ev) { + m_settingNodeListener.bind([this](SettingNodeValueChangeEvent* ev) { this->updateState(); return ListenerResult::Propagate; }); diff --git a/loader/src/ui/mods/ModsLayer.hpp b/loader/src/ui/mods/ModsLayer.hpp index 35e36b97..ed585239 100644 --- a/loader/src/ui/mods/ModsLayer.hpp +++ b/loader/src/ui/mods/ModsLayer.hpp @@ -12,7 +12,7 @@ #include "sources/ModListSource.hpp" #include "UpdateModListState.hpp" #include -#include +#include using namespace geode::prelude; @@ -40,7 +40,7 @@ protected: EventListener m_updateStateListener; EventListener m_downloadListener; DownloadState m_lastState = DownloadState::None; - EventListener> m_settingNodeListener; + EventListener> m_settingNodeListener; bool init(); void updateState(); diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index 570c89d7..abe3c536 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -303,7 +303,7 @@ bool ModItem::init(ModSource&& source) { m_downloadListener.bind([this](auto) { this->updateState(); }); m_downloadListener.setFilter(server::ModDownloadFilter(m_source.getID())); - m_settingNodeListener.bind([this](SettingNodeValueChangeEventV3*) { + m_settingNodeListener.bind([this](SettingNodeValueChangeEvent*) { this->updateState(); return ListenerResult::Propagate; }); diff --git a/loader/src/ui/mods/list/ModItem.hpp b/loader/src/ui/mods/list/ModItem.hpp index f5f9fc90..c6a3fa75 100644 --- a/loader/src/ui/mods/list/ModItem.hpp +++ b/loader/src/ui/mods/list/ModItem.hpp @@ -35,7 +35,7 @@ protected: EventListener>> m_checkUpdateListener; EventListener m_downloadListener; std::optional m_availableUpdate; - EventListener> m_settingNodeListener; + EventListener> m_settingNodeListener; /** * @warning Make sure `getMetadata` and `createModLogo` are callable diff --git a/loader/src/ui/mods/popups/ModPopup.cpp b/loader/src/ui/mods/popups/ModPopup.cpp index 07762c6f..1d8b6f8a 100644 --- a/loader/src/ui/mods/popups/ModPopup.cpp +++ b/loader/src/ui/mods/popups/ModPopup.cpp @@ -618,7 +618,7 @@ bool ModPopup::setup(ModSource&& src) { m_downloadListener.bind([this](auto) { this->updateState(); }); m_downloadListener.setFilter(m_source.getID()); - m_settingNodeListener.bind([this](SettingNodeValueChangeEventV3*) { + m_settingNodeListener.bind([this](SettingNodeValueChangeEvent*) { this->updateState(); return ListenerResult::Propagate; }); diff --git a/loader/src/ui/mods/popups/ModPopup.hpp b/loader/src/ui/mods/popups/ModPopup.hpp index c5689af3..bb660302 100644 --- a/loader/src/ui/mods/popups/ModPopup.hpp +++ b/loader/src/ui/mods/popups/ModPopup.hpp @@ -42,7 +42,7 @@ protected: EventListener>> m_checkUpdateListener; EventListener m_updateStateListener; EventListener m_downloadListener; - EventListener> m_settingNodeListener; + EventListener> m_settingNodeListener; bool setup(ModSource&& src) override; void updateState(); diff --git a/loader/src/ui/mods/settings/ModSettingsPopup.cpp b/loader/src/ui/mods/settings/ModSettingsPopup.cpp index a68e9aa2..22a0dacf 100644 --- a/loader/src/ui/mods/settings/ModSettingsPopup.cpp +++ b/loader/src/ui/mods/settings/ModSettingsPopup.cpp @@ -6,12 +6,13 @@ #include #include #include -#include +#include +#include // needed for weightedFuzzyMatch #include -static bool matchSearch(SettingNodeV3* node, std::string const& query) { - if (typeinfo_cast(node)) { +static bool matchSearch(SettingNode* node, std::string const& query) { + if (typeinfo_cast(node)) { return true; } bool addToList = false; @@ -73,12 +74,12 @@ bool ModSettingsPopup::setup(Mod* mod) { m_list->setTouchEnabled(true); for (auto& key : mod->getSettingKeys()) { - SettingNodeV3* node; - if (auto sett = mod->getSettingV3(key)) { + SettingNode* node; + if (auto sett = mod->getSetting(key)) { node = sett->createNode(layerSize.width); } else { - node = UnresolvedCustomSettingNodeV3::create(key, mod, layerSize.width); + node = UnresolvedCustomSettingNode::create(key, mod, layerSize.width); } m_settings.push_back(node); @@ -249,7 +250,7 @@ void ModSettingsPopup::onClearSearch(CCObject*) { m_list->moveToTop(); } -void ModSettingsPopup::updateState(SettingNodeV3* invoker) { +void ModSettingsPopup::updateState(SettingNode* invoker) { auto search = m_searchInput->getString(); auto hasSearch = !search.empty(); @@ -261,10 +262,10 @@ void ModSettingsPopup::updateState(SettingNodeV3* invoker) { // Update search visibility + all settings with "enable-if" schemes + // checkerboard BG - TitleSettingNodeV3* lastTitle = nullptr; + TitleSettingNode* lastTitle = nullptr; bool bg = false; for (auto& sett : m_settings) { - if (auto asTitle = typeinfo_cast(sett.data())) { + if (auto asTitle = typeinfo_cast(sett.data())) { lastTitle = asTitle; } sett->removeFromParent(); diff --git a/loader/src/ui/mods/settings/ModSettingsPopup.hpp b/loader/src/ui/mods/settings/ModSettingsPopup.hpp index c569d53f..506d157d 100644 --- a/loader/src/ui/mods/settings/ModSettingsPopup.hpp +++ b/loader/src/ui/mods/settings/ModSettingsPopup.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include #include @@ -14,17 +14,17 @@ class ModSettingsPopup : public GeodePopup { protected: Mod* m_mod; ScrollLayer* m_list; - std::vector> m_settings; + std::vector> m_settings; CCMenu* m_applyMenu; CCMenuItemSpriteExtra* m_applyBtn; CCMenuItemSpriteExtra* m_restartBtn; ButtonSprite* m_applyBtnSpr; TextInput* m_searchInput; CCMenuItemSpriteExtra* m_searchClearBtn; - EventListener> m_changeListener; + EventListener> m_changeListener; bool setup(Mod* mod) override; - void updateState(SettingNodeV3* invoker = nullptr); + void updateState(SettingNode* invoker = nullptr); bool hasUncommitted() const; void onClose(CCObject*) override; void onApply(CCObject*); diff --git a/loader/src/utils/PlatformID.cpp b/loader/src/utils/PlatformID.cpp index 49038918..a3fb35a7 100644 --- a/loader/src/utils/PlatformID.cpp +++ b/loader/src/utils/PlatformID.cpp @@ -33,8 +33,6 @@ PlatformID PlatformID::from(const char* str) { case hash("Android64"): case hash("android64"): return PlatformID::Android64; - case hash("Linux"): - case hash("linux"): return PlatformID::Linux; default: return PlatformID::Unknown; } } @@ -64,9 +62,6 @@ std::vector PlatformID::getCovered(std::string_view str) { case hash("android"): return { PlatformID::Android32, PlatformID::Android64 }; case hash("android32"): return { PlatformID::Android32 }; case hash("android64"): return { PlatformID::Android64 }; - - // todo in v4: no linux - case hash("linux"): return { PlatformID::Linux }; default: return {}; } From bdb0c99e1768861916217b60a7594c1c7c486833 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 4 Nov 2024 23:24:20 +0300 Subject: [PATCH 006/119] update to new result --- CMakeLists.txt | 3 +- loader/include/Geode/Utils.hpp | 1 - .../include/Geode/external/result/result.hpp | 5994 ----------------- loader/include/Geode/loader/Loader.hpp | 2 +- loader/include/Geode/loader/Mod.hpp | 2 +- loader/include/Geode/loader/ModMetadata.hpp | 2 +- loader/include/Geode/loader/Tulip.hpp | 2 +- loader/include/Geode/modify/Modify.hpp | 2 +- loader/include/Geode/utils/JsonValidation.hpp | 2 +- loader/include/Geode/utils/ObjcHook.hpp | 2 +- loader/include/Geode/utils/Result.hpp | 305 - loader/include/Geode/utils/Task.hpp | 2 +- loader/include/Geode/utils/VersionInfo.hpp | 2 +- loader/include/Geode/utils/file.hpp | 2 +- loader/include/Geode/utils/general.hpp | 9 +- loader/include/Geode/utils/map.hpp | 2 +- loader/include/Geode/utils/web.hpp | 2 +- loader/src/loader/LoaderImpl.cpp | 26 +- loader/src/loader/LoaderImpl.hpp | 2 +- loader/src/loader/ModImpl.cpp | 4 +- loader/src/loader/ModMetadataImpl.cpp | 19 +- loader/src/loader/ModSettingsManager.cpp | 38 +- loader/src/loader/PatchImpl.cpp | 4 +- loader/src/loader/SettingV3.cpp | 16 +- loader/src/loader/Tulip.cpp | 4 +- loader/src/loader/updater.cpp | 6 +- loader/src/platform/android/crashlog.cpp | 6 +- loader/src/platform/android/util.cpp | 2 +- loader/src/platform/windows/nfdwin.hpp | 2 +- loader/src/platform/windows/util.cpp | 7 +- loader/src/server/Server.cpp | 9 +- loader/src/ui/GeodeUI.cpp | 2 +- loader/src/ui/mods/sources/ModSource.cpp | 6 +- loader/src/ui/nodes/MDTextArea.cpp | 6 +- loader/src/utils/file.cpp | 51 +- loader/src/utils/web.cpp | 4 +- 36 files changed, 159 insertions(+), 6391 deletions(-) delete mode 100644 loader/include/Geode/external/result/result.hpp delete mode 100644 loader/include/Geode/utils/Result.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 963be24f..e94e525f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -237,6 +237,7 @@ endif() set(MAT_JSON_AS_INTERFACE ON) CPMAddPackage("gh:geode-sdk/json#cda9807") +CPMAddPackage("gh:geode-sdk/result@1.0.1") CPMAddPackage("gh:fmtlib/fmt#10.2.1") target_compile_definitions(${PROJECT_NAME} INTERFACE MAT_JSON_DYNAMIC=1) @@ -296,7 +297,7 @@ target_include_directories(GeodeBindings PUBLIC ${GEODE_LOADER_PATH}/include/Geode/fmod ) target_link_directories(GeodeBindings PUBLIC ${GEODE_LOADER_PATH}/include/link) -target_link_libraries(GeodeBindings PUBLIC fmt TulipHookInclude mat-json) +target_link_libraries(GeodeBindings PUBLIC fmt TulipHookInclude mat-json GeodeResult) target_link_libraries(${PROJECT_NAME} INTERFACE GeodeBindings) if (NOT EXISTS ${GEODE_BIN_PATH}) diff --git a/loader/include/Geode/Utils.hpp b/loader/include/Geode/Utils.hpp index 5554a91f..c587c8d0 100644 --- a/loader/include/Geode/Utils.hpp +++ b/loader/include/Geode/Utils.hpp @@ -1,7 +1,6 @@ #pragma once #include "DefaultInclude.hpp" -#include "utils/Result.hpp" #include "utils/VersionInfo.hpp" #include "utils/ranges.hpp" #include "utils/casts.hpp" diff --git a/loader/include/Geode/external/result/result.hpp b/loader/include/Geode/external/result/result.hpp deleted file mode 100644 index f2ac2802..00000000 --- a/loader/include/Geode/external/result/result.hpp +++ /dev/null @@ -1,5994 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -/// \file result.hpp -/// -/// \brief This header contains the 'result' monadic type for indicating -/// possible error conditions -//////////////////////////////////////////////////////////////////////////////// - -/* - The MIT License (MIT) - - Copyright (c) 2017-2021 Matthew Rodusek All rights reserved. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. -*/ - -#ifndef RESULT_RESULT_HPP -#define RESULT_RESULT_HPP - -#include // std::size_t -#include // std::enable_if, std::is_constructible, etc -#include // placement-new -#include // std::address_of -#include // std::reference_wrapper, std::invoke -#include // std::in_place_t, std::forward -#include // std::initializer_list -#include // std::string (for exception message) - -#if defined(RESULT_EXCEPTIONS_DISABLED) -# include // std::fprintf, stderr -#else -# include // std::logic_error -#endif - -#if __cplusplus >= 201402L -# define RESULT_CPP14_CONSTEXPR constexpr -#else -# define RESULT_CPP14_CONSTEXPR -#endif - -#if __cplusplus >= 201703L -# define RESULT_CPP17_INLINE inline -#else -# define RESULT_CPP17_INLINE -#endif - -#if defined(__clang__) && defined(_MSC_VER) -# define RESULT_INLINE_VISIBILITY __attribute__((visibility("hidden"))) -#elif defined(__clang__) || defined(__GNUC__) -# define RESULT_INLINE_VISIBILITY __attribute__((visibility("hidden"), always_inline)) -#elif defined(_MSC_VER) -# define RESULT_INLINE_VISIBILITY __forceinline -#else -# define RESULT_INLINE_VISIBILITY -#endif - -// [[clang::warn_unused_result]] is more full-featured than gcc's variant, since -// it supports being applied to class objects. -#if __cplusplus >= 201703L -# define RESULT_NODISCARD [[nodiscard]] -# define RESULT_WARN_UNUSED [[nodiscard]] -#elif defined(__clang__) && ((__clang_major__ > 3) || ((__clang_major__ == 3) && (__clang_minor__ >= 9))) -# define RESULT_NODISCARD [[clang::warn_unused_result]] -# define RESULT_WARN_UNUSED [[clang::warn_unused_result]] -#elif defined(__GNUC__) -# define RESULT_NODISCARD -# define RESULT_WARN_UNUSED [[gnu::warn_unused_result]] -#else -# define RESULT_WARN_UNUSED -# define RESULT_NODISCARD -#endif - -#if defined(RESULT_NAMESPACE) -# define RESULT_NAMESPACE_INTERNAL RESULT_NAMESPACE -#else -# define RESULT_NAMESPACE_INTERNAL cpp -#endif -#define RESULT_NS_IMPL RESULT_NAMESPACE_INTERNAL::bitwizeshift - -// clang's `-Wdocumentation-unknown-command` flag is bugged and does not -// understand `\copydoc` tags, despite this being a valid doxygen tag. -#if defined(__clang__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wdocumentation-unknown-command" -#endif - -namespace RESULT_NAMESPACE_INTERNAL { -inline namespace bitwizeshift { - - //=========================================================================== - // utilities : constexpr forward - //=========================================================================== - - // std::forward is not constexpr until C++14 - namespace detail { -#if __cplusplus >= 201402L - using std::forward; -#else - template - inline RESULT_INLINE_VISIBILITY constexpr - auto forward(typename std::remove_reference::type& t) - noexcept -> T&& - { - return static_cast(t); - } - - template - inline RESULT_INLINE_VISIBILITY constexpr - auto forward(typename std::remove_reference::type&& t) - noexcept -> T&& - { - return static_cast(t); - } -#endif - } // namespace detail - - - //=========================================================================== - // utilities : invoke / invoke_result - //=========================================================================== - - // std::invoke was introduced in C++17 - - namespace detail { -#if __cplusplus >= 201703L - using std::invoke; - using std::invoke_result; - using std::invoke_result_t; -#else - template - struct is_reference_wrapper : std::false_type{}; - - template - struct is_reference_wrapper> : std::true_type{}; - - //------------------------------------------------------------------------- - - template ::value && - std::is_base_of::type>::value - >::type> - inline RESULT_INLINE_VISIBILITY constexpr - auto invoke(T Base::*pmf, Derived&& ref, Args&&... args) - noexcept(noexcept((::RESULT_NS_IMPL::detail::forward(ref).*pmf)(::RESULT_NS_IMPL::detail::forward(args)...))) - -> decltype((::RESULT_NS_IMPL::detail::forward(ref).*pmf)(::RESULT_NS_IMPL::detail::forward(args)...)) - { - return (RESULT_NS_IMPL::detail::forward(ref).*pmf)(RESULT_NS_IMPL::detail::forward(args)...); - } - - template ::value && - is_reference_wrapper::type>::value - >::type> - inline RESULT_INLINE_VISIBILITY constexpr - auto invoke(T Base::*pmf, RefWrap&& ref, Args&&... args) - noexcept(noexcept((ref.get().*pmf)(std::forward(args)...))) - -> decltype((ref.get().*pmf)(RESULT_NS_IMPL::detail::forward(args)...)) - { - return (ref.get().*pmf)(RESULT_NS_IMPL::detail::forward(args)...); - } - - template ::value && - !is_reference_wrapper::type>::value && - !std::is_base_of::type>::value - >::type> - inline RESULT_INLINE_VISIBILITY constexpr - auto invoke(T Base::*pmf, Pointer&& ptr, Args&&... args) - noexcept(noexcept(((*std::forward(ptr)).*pmf)(std::forward(args)...))) - -> decltype(((*RESULT_NS_IMPL::detail::forward(ptr)).*pmf)(RESULT_NS_IMPL::detail::forward(args)...)) - { - return ((*RESULT_NS_IMPL::detail::forward(ptr)).*pmf)(RESULT_NS_IMPL::detail::forward(args)...); - } - - template ::value && - std::is_base_of::type>::value - >::type> - inline RESULT_INLINE_VISIBILITY constexpr - auto invoke(T Base::*pmd, Derived&& ref) - noexcept(noexcept(std::forward(ref).*pmd)) - -> decltype(RESULT_NS_IMPL::detail::forward(ref).*pmd) - { - return RESULT_NS_IMPL::detail::forward(ref).*pmd; - } - - template ::value && - is_reference_wrapper::type>::value - >::type> - inline RESULT_INLINE_VISIBILITY constexpr - auto invoke(T Base::*pmd, RefWrap&& ref) - noexcept(noexcept(ref.get().*pmd)) - -> decltype(ref.get().*pmd) - { - return ref.get().*pmd; - } - - template ::value && - !is_reference_wrapper::type>::value && - !std::is_base_of::type>::value - >::type> - inline RESULT_INLINE_VISIBILITY constexpr - auto invoke(T Base::*pmd, Pointer&& ptr) - noexcept(noexcept((*std::forward(ptr)).*pmd)) - -> decltype((*RESULT_NS_IMPL::detail::forward(ptr)).*pmd) - { - return (*RESULT_NS_IMPL::detail::forward(ptr)).*pmd; - } - - template ::type>::value>::type> - inline RESULT_INLINE_VISIBILITY constexpr - auto invoke(F&& f, Args&&... args) - noexcept(noexcept(std::forward(f)(std::forward(args)...))) - -> decltype(RESULT_NS_IMPL::detail::forward(f)(RESULT_NS_IMPL::detail::forward(args)...)) - { - return RESULT_NS_IMPL::detail::forward(f)(RESULT_NS_IMPL::detail::forward(args)...); - } - - template - struct is_invocable - { - template - static auto test( Fn2&&, Args2&&... ) - -> decltype(invoke(std::declval(), std::declval()...), std::true_type{}); - - static auto test(...) - -> std::false_type; - - using type = decltype(test(std::declval(), std::declval()...)); - static constexpr bool value = type::value; - }; - - template - struct invoke_result_impl { - using type = decltype(RESULT_NS_IMPL::detail::invoke(std::declval(), std::declval()...)); - }; - template - struct invoke_result_impl{}; - - template - struct invoke_result - : invoke_result_impl::value, Fn, Args...>{}; - - template - using invoke_result_t = typename invoke_result::type; -#endif - } - - //=========================================================================== - // struct : in_place_t - //=========================================================================== - -#if __cplusplus >= 201703L - using std::in_place_t; - using std::in_place; -#else - /// \brief A structure for representing in-place construction - struct in_place_t - { - explicit in_place_t() = default; - }; - RESULT_CPP17_INLINE constexpr auto in_place = in_place_t{}; -#endif - - //=========================================================================== - // struct : in_place_t - //=========================================================================== - - /// \brief A structure for representing in-place construction of an error type - struct in_place_error_t - { - explicit in_place_error_t() = default; - }; - - RESULT_CPP17_INLINE constexpr auto in_place_error = in_place_error_t{}; - - //=========================================================================== - // forward-declarations - //=========================================================================== - - template - class failure; - - template - class result; - - template - class bad_result_access; - - //=========================================================================== - // traits - //=========================================================================== - - template - struct is_failure : std::false_type{}; - template - struct is_failure> : std::true_type{}; - - template - struct is_result : std::false_type{}; - template - struct is_result> : std::true_type{}; - - //=========================================================================== - // trait : detail::wrapped_result_type - //=========================================================================== - - namespace detail { - - template - using wrapped_result_type = typename std::conditional< - std::is_lvalue_reference::value, - std::reference_wrapper< - typename std::remove_reference::type - >, - typename std::remove_const::type - >::type; - - } // namespace detail - -#if !defined(RESULT_DISABLE_EXCEPTIONS) - - //=========================================================================== - // class : bad_result_access - //=========================================================================== - - ///////////////////////////////////////////////////////////////////////////// - /// \brief An exception thrown when result::value is accessed without - /// a contained value - ///////////////////////////////////////////////////////////////////////////// - template - class bad_result_access : public std::logic_error - { - //------------------------------------------------------------------------- - // Constructor / Assignment - //------------------------------------------------------------------------- - public: - - /// \brief Constructs this exception using the underlying error type for - /// the error type - /// - /// \param error the underlying error - template ::value>::type> - explicit bad_result_access(E2&& error); - - /// \{ - /// \brief Constructs this exception using the underlying error type for - /// the error and a message - /// - /// \param what_arg the message for the failure - /// \param error the underlying error - template ::value>::type> - bad_result_access(const char* what_arg, E2&& error); - template ::value>::type> - bad_result_access(const std::string& what_arg, E2&& error); - /// \} - - bad_result_access(const bad_result_access& other) = default; - bad_result_access(bad_result_access&& other) = default; - - //------------------------------------------------------------------------- - - auto operator=(const bad_result_access& other) -> bad_result_access& = default; - auto operator=(bad_result_access&& other) -> bad_result_access& = default; - - /// \{ - /// \brief Gets the underlying error - /// - /// \return the error - auto error() & noexcept -> E&; - auto error() && noexcept -> E&&; - auto error() const & noexcept -> const E&; - auto error() const && noexcept -> const E&&; - /// \} - - //------------------------------------------------------------------------- - // Private Members - //------------------------------------------------------------------------- - private: - - E m_error; - }; - -#endif - - namespace detail { - - template - using failure_is_value_convertible = std::integral_constant::value && - !std::is_same::type, in_place_t>::value && - !is_failure::type>::value && - !is_result::type>::value - )>; - - template - using failure_is_explicit_value_convertible = std::integral_constant::value && - !std::is_convertible::value - )>; - - template - using failure_is_implicit_value_convertible = std::integral_constant::value && - std::is_convertible::value - )>; - - template - using failure_is_value_assignable = std::integral_constant::type>::value && - !is_failure::type>::value && - std::is_assignable&,E2>::value - )>; - - } // namespace detail - - //=========================================================================== - // class : failure_type - //=========================================================================== - - ////////////////////////////////////////////////////////////////////////////// - /// \brief A semantic type used for distinguishing failure values in an - /// API that returns result types - /// - /// \tparam E the error type - ////////////////////////////////////////////////////////////////////////////// - template - class failure - { - static_assert( - !is_result::type>::value, - "A (possibly CV-qualified) result 'E' type is ill-formed." - ); - static_assert( - !is_failure::type>::value, - "A (possibly CV-qualified) failure 'E' type is ill-formed." - ); - static_assert( - !std::is_void::type>::value, - "A (possibly CV-qualified) 'void' 'E' type is ill-formed." - ); - static_assert( - !std::is_rvalue_reference::value, - "rvalue references for 'E' type is ill-formed. " - "Only lvalue references are valid." - ); - - //------------------------------------------------------------------------- - // Public Member Types - //------------------------------------------------------------------------- - public: - - using error_type = E; - - //------------------------------------------------------------------------- - // Constructors / Assignment - //------------------------------------------------------------------------- - public: - - /// \brief Constructs a failure via default construction - failure() = default; - - /// \brief Constructs a failure by delegating construction to the - /// underlying constructor - /// - /// \param args the arguments to forward to E's constructor - template ::value>::type> - constexpr failure(in_place_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value); - - /// \brief Constructs a failure by delegating construction to the - /// underlying constructor - /// - /// \param ilist the initializer list - /// \param args the arguments to forward to E's constructor - template ,Args...>::value>::type> - constexpr failure(in_place_t, std::initializer_list ilist, Args&&...args) - noexcept(std::is_nothrow_constructible, Args...>::value); - - /// \{ - /// \brief Constructs a failure from the given error - /// - /// \param error the error to create a failure from - template ::value,int>::type = 0> - constexpr failure(E2&& error) - noexcept(std::is_nothrow_constructible::value); - template ::value,int>::type = 0> - constexpr explicit failure(E2&& error) - noexcept(std::is_nothrow_constructible::value); - /// \} - - /// \brief Constructs this failure by copying the contents of an existing - /// one - /// - /// \param other the other failure to copy - /* implicit */ failure(const failure& other) = default; - - /// \brief Constructs this failure by moving the contents of an existing - /// one - /// - /// \param other the other failure to move - /* implicit */ failure(failure&& other) = default; - - /// \brief Constructs this failure by copy-converting \p other - /// - /// \param other the other failure to copy - template ::value>::type> - constexpr /* implicit */ failure(const failure& other) - noexcept(std::is_nothrow_constructible::value); - - /// \brief Constructs this failure by move-converting \p other - /// - /// \param other the other failure to copy - template ::value>::type> - constexpr /* implicit */ failure(failure&& other) - noexcept(std::is_nothrow_constructible::value); - - //-------------------------------------------------------------------------- - - /// \brief Assigns the value of \p error to this failure through - /// move-assignment - /// - /// \param error the value to assign - /// \return reference to `(*this)` - template ::value>::type> - RESULT_CPP14_CONSTEXPR - auto operator=(E2&& error) - noexcept(std::is_nothrow_assignable::value || std::is_lvalue_reference::value) -> failure&; - - /// \brief Assigns the contents of \p other to this by copy-assignment - /// - /// \param other the other failure to copy - /// \return reference to `(*this)` - auto operator=(const failure& other) -> failure& = default; - - /// \brief Assigns the contents of \p other to this by move-assignment - /// - /// \param other the other failure to move - /// \return reference to `(*this)` - auto operator=(failure&& other) -> failure& = default; - - /// \brief Assigns the contents of \p other to this by copy conversion - /// - /// \param other the other failure to copy-convert - /// \return reference to `(*this)` - template ::value>::type> - RESULT_CPP14_CONSTEXPR - auto operator=(const failure& other) - noexcept(std::is_nothrow_assignable::value) -> failure&; - - /// \brief Assigns the contents of \p other to this by move conversion - /// - /// \param other the other failure to move-convert - /// \return reference to `(*this)` - template ::value>::type> - RESULT_CPP14_CONSTEXPR - auto operator=(failure&& other) - noexcept(std::is_nothrow_assignable::value) -> failure&; - - //-------------------------------------------------------------------------- - // Observers - //-------------------------------------------------------------------------- - public: - - /// \{ - /// \brief Gets the underlying error - /// - /// \return the underlying error - RESULT_CPP14_CONSTEXPR - auto error() & noexcept - -> typename std::add_lvalue_reference::type; - RESULT_CPP14_CONSTEXPR - auto error() && noexcept - -> typename std::add_rvalue_reference::type; - constexpr auto error() const & noexcept - -> typename std::add_lvalue_reference::type>::type; - constexpr auto error() const && noexcept - -> typename std::add_rvalue_reference::type>::type; - /// \} - - //------------------------------------------------------------------------- - // Private Member Types - //------------------------------------------------------------------------- - private: - - using underlying_type = detail::wrapped_result_type; - - //------------------------------------------------------------------------- - // Private Members - //------------------------------------------------------------------------- - private: - - underlying_type m_failure; - }; - -#if __cplusplus >= 201703L - template - failure(std::reference_wrapper) -> failure; - - template - failure(T&&) -> failure::type>; -#endif - - //=========================================================================== - // non-member functions : class : failure - //=========================================================================== - - //--------------------------------------------------------------------------- - // Comparison - //--------------------------------------------------------------------------- - - template - constexpr auto operator==(const failure& lhs, - const failure& rhs) noexcept -> bool; - template - constexpr auto operator!=(const failure& lhs, - const failure& rhs) noexcept -> bool; - template - constexpr auto operator<(const failure& lhs, - const failure& rhs) noexcept -> bool; - template - constexpr auto operator>(const failure& lhs, - const failure& rhs) noexcept -> bool; - template - constexpr auto operator<=(const failure& lhs, - const failure& rhs) noexcept -> bool; - template - constexpr auto operator>=(const failure& lhs, - const failure& rhs) noexcept -> bool; - - //--------------------------------------------------------------------------- - // Utilities - //--------------------------------------------------------------------------- - - /// \brief Deduces and constructs a failure type from \p e - /// - /// \param e the failure value - /// \return a constructed failure value - template - RESULT_WARN_UNUSED - constexpr auto fail(E&& e) - noexcept(std::is_nothrow_constructible::type,E>::value) - -> failure::type>; - - /// \brief Deduces a failure reference from a reverence_wrapper - /// - /// \param e the failure value - /// \return a constructed failure reference - template - RESULT_WARN_UNUSED - constexpr auto fail(std::reference_wrapper e) - noexcept -> failure; - - /// \brief Constructs a failure type from a series of arguments - /// - /// \tparam E the failure type - /// \param args the arguments to forward to E's constructor - /// \return a constructed failure type - template ::value>::type> - RESULT_WARN_UNUSED - constexpr auto fail(Args&&...args) - noexcept(std::is_nothrow_constructible::value) - -> failure; - - /// \brief Constructs a failure type from an initializer list and series of - /// arguments - /// - /// \tparam E the failure type - /// \param args the arguments to forward to E's constructor - /// \return a constructed failure type - template ,Args...>::value>::type> - RESULT_WARN_UNUSED - constexpr auto fail(std::initializer_list ilist, Args&&...args) - noexcept(std::is_nothrow_constructible, Args...>::value) - -> failure; - - /// \brief Swaps the contents of two failure values - /// - /// \param lhs the left failure - /// \param rhs the right failure - template - auto swap(failure& lhs, failure& rhs) -#if __cplusplus >= 201703L - noexcept(std::is_nothrow_swappable::value) -> void; -#else - noexcept(std::is_nothrow_move_constructible::value) -> void; -#endif - - namespace detail { - - //========================================================================= - // class : unit - //========================================================================= - - /// \brief A standalone monostate object (effectively std::monostate). This - /// exists to allow for `void` specializations - struct unit {}; - - //========================================================================= - // non-member functions : class : unit - //========================================================================= - - constexpr auto operator==(unit, unit) noexcept -> bool { return true; } - constexpr auto operator!=(unit, unit) noexcept -> bool { return false; } - constexpr auto operator<(unit, unit) noexcept -> bool { return false; } - constexpr auto operator>(unit, unit) noexcept -> bool { return false; } - constexpr auto operator<=(unit, unit) noexcept -> bool { return true; } - constexpr auto operator>=(unit, unit) noexcept -> bool { return true; } - - //========================================================================= - // class : detail::result_union - //========================================================================= - - /////////////////////////////////////////////////////////////////////////// - /// \brief A basic utility that acts as a union containing the T and E - /// types - /// - /// This is specialized on the case that both T and E are trivial, in which - /// case `result_union` is also trivial - /// - /// \tparam T the value type result to be returned - /// \tparam E the error type returned on failure - /// \tparam IsTrivial Whether or not both T and E are trivial - /////////////////////////////////////////////////////////////////////////// - template ::value && - std::is_trivially_destructible::value> - struct result_union - { - //----------------------------------------------------------------------- - // Public Member Types - //----------------------------------------------------------------------- - - using underlying_value_type = wrapped_result_type; - using underlying_error_type = E; - - //----------------------------------------------------------------------- - // Constructors / Assignment - //----------------------------------------------------------------------- - - /// \brief Constructs an empty object - /// - /// This is for use with conversion constructors, since it allows a - /// temporary unused object to be set - result_union(unit) noexcept; - - /// \brief Constructs the underlying value from the specified \p args - /// - /// \param args the arguments to forward to T's constructor - template - constexpr result_union(in_place_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value); - - /// \brief Constructs the underlying error from the specified \p args - /// - /// \param args the arguments to forward to E's constructor - template - constexpr result_union(in_place_error_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value); - - result_union(const result_union&) = default; - result_union(result_union&&) = default; - - //----------------------------------------------------------------------- - - auto operator=(const result_union&) -> result_union& = default; - auto operator=(result_union&&) -> result_union& = default; - - //----------------------------------------------------------------------- - // Modifiers - //----------------------------------------------------------------------- - - /// \brief A no-op for trivial types - auto destroy() const noexcept -> void; - - //----------------------------------------------------------------------- - // Public Members - //----------------------------------------------------------------------- - - union { - underlying_value_type m_value; - underlying_error_type m_error; - unit m_empty; - }; - bool m_has_value; - }; - - //------------------------------------------------------------------------- - - template - struct result_union - { - //----------------------------------------------------------------------- - // Public Member Types - //----------------------------------------------------------------------- - - using underlying_value_type = wrapped_result_type; - using underlying_error_type = E; - - //----------------------------------------------------------------------- - // Constructors / Assignment / Destructor - //----------------------------------------------------------------------- - - /// \brief Constructs an empty object - /// - /// This is for use with conversion constructors, since it allows a - /// temporary unused object to be set - result_union(unit) noexcept; - - /// \brief Constructs the underlying value from the specified \p args - /// - /// \param args the arguments to forward to T's constructor - template - constexpr result_union(in_place_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value); - - /// \brief Constructs the underlying error from the specified \p args - /// - /// \param args the arguments to forward to E's constructor - template - constexpr result_union(in_place_error_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value); - - result_union(const result_union&) = default; - result_union(result_union&&) = default; - - //----------------------------------------------------------------------- - - /// \brief Destroys the underlying stored object - ~result_union() - noexcept(std::is_nothrow_destructible::value && - std::is_nothrow_destructible::value); - - //----------------------------------------------------------------------- - - auto operator=(const result_union&) -> result_union& = default; - auto operator=(result_union&&) -> result_union& = default; - - //----------------------------------------------------------------------- - // Modifiers - //----------------------------------------------------------------------- - - /// \brief Destroys the underlying stored object - auto destroy() -> void; - - //----------------------------------------------------------------------- - // Public Members - //----------------------------------------------------------------------- - - union { - underlying_value_type m_value; - underlying_error_type m_error; - unit m_empty; - }; - bool m_has_value; - }; - - //========================================================================= - // class : result_construct_base - //========================================================================= - - /////////////////////////////////////////////////////////////////////////// - /// \brief Base class of assignment to enable construction and assignment - /// - /// This class is used with several pieces of construction to ensure - /// trivial constructibility and assignability: - /// - /// * `result_trivial_copy_ctor_base` - /// * `result_trivial_move_ctor_base` - /// * `result_copy_assign_base` - /// * `result_move_assign_base` - /// - /// \tparam T the value type - /// \tparam E the error type - /////////////////////////////////////////////////////////////////////////// - template - struct result_construct_base - { - //----------------------------------------------------------------------- - // Constructors / Assignment - //----------------------------------------------------------------------- - - /// \brief Constructs an empty object - /// - /// This is for use with conversion constructors, since it allows a - /// temporary unused object to be set - result_construct_base(unit) noexcept; - - /// \brief Constructs the underlying value from the specified \p args - /// - /// \param args the arguments to forward to T's constructor - template - constexpr result_construct_base(in_place_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value); - - /// \brief Constructs the underlying error from the specified \p args - /// - /// \param args the arguments to forward to E's constructor - template - constexpr result_construct_base(in_place_error_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value); - - result_construct_base(const result_construct_base&) = default; - result_construct_base(result_construct_base&&) = default; - - auto operator=(const result_construct_base&) -> result_construct_base& = default; - auto operator=(result_construct_base&&) -> result_construct_base& = default; - - //----------------------------------------------------------------------- - // Construction / Assignment - //----------------------------------------------------------------------- - - /// \brief Constructs the value type from \p args - /// - /// \note This is an implementation detail only meant to be used during - /// construction - /// - /// \pre there is no contained value or error at the time of construction - /// - /// \param args the arguments to forward to T's constructor - template - auto construct_value(Args&&...args) - noexcept(std::is_nothrow_constructible::value) -> void; - - /// \brief Constructs the error type from \p args - /// - /// \note This is an implementation detail only meant to be used during - /// construction - /// - /// \pre there is no contained value or error at the time of construction - /// - /// \param args the arguments to forward to E's constructor - template - auto construct_error(Args&&...args) - noexcept(std::is_nothrow_constructible::value) -> void; - - /// \brief Constructs the underlying error from the \p other result - /// - /// If \p other contains a value, then the T type will be - /// default-constructed. - /// - /// \note This is an implementation detail only meant to be used during - /// construction of `result` types - /// - /// \pre there is no contained value or error at the time of construction - /// - /// \param other the other result to construct - template - auto construct_error_from_result(Result&& other) -> void; - - /// \brief Constructs the underlying type from a result object - /// - /// \note This is an implementation detail only meant to be used during - /// construction - /// - /// \pre there is no contained value or error at the time of construction - /// - /// \param other the other result to construct - template - auto construct_from_result(Result&& other) -> void; - - //----------------------------------------------------------------------- - - template - auto assign_value(Value&& value) - noexcept(std::is_nothrow_assignable::value) -> void; - - template - auto assign_error(Error&& error) - noexcept(std::is_nothrow_assignable::value) -> void; - - template - auto assign_from_result(Result&& other) -> void; - - //----------------------------------------------------------------------- - - template - auto construct_value_from_result_impl(std::true_type, ReferenceWrapper&& reference) - noexcept -> void; - - template - auto construct_value_from_result_impl(std::false_type, Value&& value) - noexcept(std::is_nothrow_constructible::value) -> void; - - template - auto assign_value_from_result_impl(std::true_type, Result&& other) -> void; - - template - auto assign_value_from_result_impl(std::false_type, Result&& other) -> void; - - //----------------------------------------------------------------------- - // Public Members - //----------------------------------------------------------------------- - - using storage_type = result_union; - - storage_type storage; - }; - - //========================================================================= - // class : result_trivial_copy_ctor_base - //========================================================================= - - template - struct result_trivial_copy_ctor_base_impl : result_construct_base - { - using base_type = result_construct_base; - using base_type::base_type; - - result_trivial_copy_ctor_base_impl(const result_trivial_copy_ctor_base_impl& other) - noexcept(std::is_nothrow_copy_constructible::value && - std::is_nothrow_copy_constructible::value); - result_trivial_copy_ctor_base_impl(result_trivial_copy_ctor_base_impl&& other) = default; - - auto operator=(const result_trivial_copy_ctor_base_impl& other) -> result_trivial_copy_ctor_base_impl& = default; - auto operator=(result_trivial_copy_ctor_base_impl&& other) -> result_trivial_copy_ctor_base_impl& = default; - }; - - template - using conditionally_nest_type = typename std::conditional< - Condition, - typename Base::base_type, - Base - >::type; - - template - using result_trivial_copy_ctor_base = conditionally_nest_type< - std::is_trivially_copy_constructible::value && - std::is_trivially_copy_constructible::value, - result_trivial_copy_ctor_base_impl - >; - - //========================================================================= - // class : result_trivial_move_ctor_base - //========================================================================= - - template - struct result_trivial_move_ctor_base_impl : result_trivial_copy_ctor_base - { - using base_type = result_trivial_copy_ctor_base; - using base_type::base_type; - - result_trivial_move_ctor_base_impl(const result_trivial_move_ctor_base_impl& other) = default; - result_trivial_move_ctor_base_impl(result_trivial_move_ctor_base_impl&& other) - noexcept(std::is_nothrow_move_constructible::value && - std::is_nothrow_move_constructible::value); - - auto operator=(const result_trivial_move_ctor_base_impl& other) -> result_trivial_move_ctor_base_impl& = default; - auto operator=(result_trivial_move_ctor_base_impl&& other) -> result_trivial_move_ctor_base_impl& = default; - }; - - template - using result_trivial_move_ctor_base = conditionally_nest_type< - std::is_trivially_move_constructible::value && - std::is_trivially_move_constructible::value, - result_trivial_move_ctor_base_impl - >; - - //========================================================================= - // class : result_trivial_copy_assign_base - //========================================================================= - - template - struct result_trivial_copy_assign_base_impl - : result_trivial_move_ctor_base - { - using base_type = result_trivial_move_ctor_base; - using base_type::base_type; - - result_trivial_copy_assign_base_impl(const result_trivial_copy_assign_base_impl& other) = default; - result_trivial_copy_assign_base_impl(result_trivial_copy_assign_base_impl&& other) = default; - - auto operator=(const result_trivial_copy_assign_base_impl& other) - noexcept(std::is_nothrow_copy_constructible::value && - std::is_nothrow_copy_constructible::value && - std::is_nothrow_copy_assignable::value && - std::is_nothrow_copy_assignable::value) - -> result_trivial_copy_assign_base_impl&; - auto operator=(result_trivial_copy_assign_base_impl&& other) - -> result_trivial_copy_assign_base_impl& = default; - }; - - template - using result_trivial_copy_assign_base = conditionally_nest_type< - std::is_trivially_copy_constructible::value && - std::is_trivially_copy_constructible::value && - std::is_trivially_copy_assignable::value && - std::is_trivially_copy_assignable::value && - std::is_trivially_destructible::value && - std::is_trivially_destructible::value, - result_trivial_copy_assign_base_impl - >; - - //========================================================================= - // class : result_trivial_move_assign_base - //========================================================================= - - template - struct result_trivial_move_assign_base_impl - : result_trivial_copy_assign_base - { - using base_type = result_trivial_copy_assign_base; - using base_type::base_type; - - result_trivial_move_assign_base_impl(const result_trivial_move_assign_base_impl& other) = default; - result_trivial_move_assign_base_impl(result_trivial_move_assign_base_impl&& other) = default; - - auto operator=(const result_trivial_move_assign_base_impl& other) - -> result_trivial_move_assign_base_impl& = default; - auto operator=(result_trivial_move_assign_base_impl&& other) - noexcept(std::is_nothrow_move_constructible::value && - std::is_nothrow_move_constructible::value && - std::is_nothrow_move_assignable::value && - std::is_nothrow_move_assignable::value) - -> result_trivial_move_assign_base_impl&; - }; - - template - using result_trivial_move_assign_base = conditionally_nest_type< - std::is_trivially_move_constructible::value && - std::is_trivially_move_constructible::value && - std::is_trivially_move_assignable::value && - std::is_trivially_move_assignable::value && - std::is_trivially_destructible::value && - std::is_trivially_destructible::value, - result_trivial_move_assign_base_impl - >; - - //========================================================================= - // class : disable_copy_ctor - //========================================================================= - - template - struct disable_copy_ctor : result_trivial_move_assign_base - { - using base_type = result_trivial_move_assign_base; - using base_type::base_type; - - disable_copy_ctor(const disable_copy_ctor& other) = delete; - disable_copy_ctor(disable_copy_ctor&& other) = default; - - auto operator=(const disable_copy_ctor& other) - -> disable_copy_ctor& = default; - auto operator=(disable_copy_ctor&& other) - -> disable_copy_ctor& = default; - }; - - template - using result_copy_ctor_base = conditionally_nest_type< - std::is_copy_constructible::value && - std::is_copy_constructible::value, - disable_copy_ctor - >; - - //========================================================================= - // class : disable_move_ctor - //========================================================================= - - template - struct disable_move_ctor : result_copy_ctor_base - { - using base_type = result_copy_ctor_base; - using base_type::base_type; - - disable_move_ctor(const disable_move_ctor& other) = default; - disable_move_ctor(disable_move_ctor&& other) = delete; - - auto operator=(const disable_move_ctor& other) - -> disable_move_ctor& = default; - auto operator=(disable_move_ctor&& other) - -> disable_move_ctor& = default; - }; - - template - using result_move_ctor_base = conditionally_nest_type< - std::is_move_constructible::value && - std::is_move_constructible::value, - disable_move_ctor - >; - - //========================================================================= - // class : disable_move_assignment - //========================================================================= - - template - struct disable_move_assignment - : result_move_ctor_base - { - using base_type = result_move_ctor_base; - using base_type::base_type; - - disable_move_assignment(const disable_move_assignment& other) = default; - disable_move_assignment(disable_move_assignment&& other) = default; - - auto operator=(const disable_move_assignment& other) - -> disable_move_assignment& = delete; - auto operator=(disable_move_assignment&& other) - -> disable_move_assignment& = default; - }; - - template - using result_copy_assign_base = conditionally_nest_type< - std::is_nothrow_copy_constructible::value && - std::is_nothrow_copy_constructible::value && - std::is_copy_assignable>::value && - std::is_copy_assignable::value, - disable_move_assignment - >; - - //========================================================================= - // class : disable_copy_assignment - //========================================================================= - - template - struct disable_copy_assignment - : result_copy_assign_base - { - using base_type = result_copy_assign_base; - using base_type::base_type; - - disable_copy_assignment(const disable_copy_assignment& other) = default; - disable_copy_assignment(disable_copy_assignment&& other) = default; - - auto operator=(const disable_copy_assignment& other) - -> disable_copy_assignment& = default; - auto operator=(disable_copy_assignment&& other) - -> disable_copy_assignment& = delete; - }; - - template - using result_move_assign_base = conditionally_nest_type< - std::is_nothrow_move_constructible::value && - std::is_nothrow_move_constructible::value && - std::is_move_assignable>::value && - std::is_move_assignable::value, - disable_copy_assignment - >; - - //========================================================================= - // alias : result_storage - //========================================================================= - - template - using result_storage = result_move_assign_base; - - //========================================================================= - // traits : result - //========================================================================= - - template - using result_is_convertible = std::integral_constant - std::is_constructible&>:: value || - std::is_constructible&>:: value || - std::is_constructible&&>:: value || - std::is_constructible&&>:: value || - - // E1 constructible from result - std::is_constructible&>:: value || - std::is_constructible&>:: value || - std::is_constructible&&>:: value || - std::is_constructible&&>:: value || - - // result convertible to T1 - std::is_convertible&, T1>:: value || - std::is_convertible&, T1>:: value || - std::is_convertible&&, T1>::value || - std::is_convertible&&, T1>::value || - - // result convertible to E2 - std::is_convertible&, E1>:: value || - std::is_convertible&, E1>:: value || - std::is_convertible&&, E1>::value || - std::is_convertible&&, E1>::value - )>; - - //------------------------------------------------------------------------- - - template - using result_is_copy_convertible = std::integral_constant::value && - std::is_constructible::value && - std::is_constructible::value - )>; - - template - using result_is_implicit_copy_convertible = std::integral_constant::value && - std::is_convertible::value && - std::is_convertible::value - )>; - - template - using result_is_explicit_copy_convertible = std::integral_constant::value && - (!std::is_convertible::value || - !std::is_convertible::value) - )>; - - //------------------------------------------------------------------------- - - template - using result_is_move_convertible = std::integral_constant::value && - std::is_constructible::value && - std::is_constructible::value - )>; - - template - using result_is_implicit_move_convertible = std::integral_constant::value && - std::is_convertible::value && - std::is_convertible::value - )>; - - template - using result_is_explicit_move_convertible = std::integral_constant::value && - (!std::is_convertible::value || - !std::is_convertible::value) - )>; - - //------------------------------------------------------------------------- - - template - using result_is_value_convertible = std::integral_constant::value && - !std::is_same::type, in_place_t>::value && - !std::is_same::type, in_place_error_t>::value && - !is_result::type>::value - )>; - - template - using result_is_explicit_value_convertible = std::integral_constant::value && - !std::is_convertible::value - )>; - - template - using result_is_implicit_value_convertible = std::integral_constant::value && - std::is_convertible::value - )>; - - //------------------------------------------------------------------------- - - template - using result_is_convert_assignable = std::integral_constant::value && - - std::is_assignable&>::value && - std::is_assignable&>::value && - std::is_assignable&&>::value && - std::is_assignable&&>::value && - - std::is_assignable&>::value && - std::is_assignable&>::value && - std::is_assignable&&>::value && - std::is_assignable&&>::value - )>; - - template - using result_is_copy_convert_assignable = std::integral_constant::value && - - std::is_nothrow_constructible::value && - std::is_assignable&, const T2&>::value && - std::is_nothrow_constructible::value && - std::is_assignable::value - )>; - - template - using result_is_move_convert_assignable = std::integral_constant::value && - - std::is_nothrow_constructible::value && - std::is_assignable::value && - std::is_nothrow_constructible::value && - std::is_assignable::value - )>; - - //------------------------------------------------------------------------- - - template - using result_is_value_assignable = std::integral_constant::type>::value && - !is_failure::type>::value && - std::is_nothrow_constructible::value && - std::is_assignable&,U>::value && - ( - !std::is_same::type,typename std::decay::type>::value || - !std::is_scalar::value - ) - )>; - - template - using result_is_failure_assignable = std::integral_constant::value && - std::is_assignable::value - )>; - - // Friending 'extract_error" below was causing some compilers to incorrectly - // identify `exp.m_storage.m_error` as being an access violation despite the - // friendship. Using a type name instead seems to be ubiquitous across - // compilers - struct result_error_extractor - { - template - static constexpr auto get(const result& exp) noexcept -> const E&; - template - static constexpr auto get(result& exp) noexcept -> E&; - }; - - template - constexpr auto extract_error(const result& exp) noexcept -> const E&; - - template - [[noreturn]] - auto throw_bad_result_access(E&& error) -> void; - - template - [[noreturn]] - auto throw_bad_result_access_message(String&& message, E&& error) -> void; - - } // namespace detail - - ///////////////////////////////////////////////////////////////////////////// - /// \brief The class template `result` manages result results from APIs, - /// while encoding possible failure conditions. - /// - /// A common use-case for result is the return value of a function that - /// may fail. As opposed to other approaches, such as `std::pair` - /// or `std::optional`, `result` more accurately conveys the intent of the - /// user along with the failure condition to the caller. This effectively - /// produces an orthogonal error handling mechanism that allows for exception - /// safety while also allowing discrete testability of the return type. - /// - /// `result` types may contain a `T` value, which signifies that an - /// operation succeeded in producing the result value of type `T`. If an - /// `result` does not contain a `T` value, it will always contain an `E` - /// error condition instead. - /// - /// An `result` can always be queried for a possible error case by - /// calling the `error()` function, even if it contains a value. - /// In the case that a `result` contains a value object, this will - /// simply return an `E` object constructed through default aggregate - /// construction, as if through the expression `E{}`, which is assumed to be - /// a "valid" (no-error) state for an `E` type. - /// For example: - /// - /// * `std::error_code{}` produces a default-construct error-code, which is - /// the "no error" state, - /// * integral (or enum) error codes produce a `0` value (no error), thanks to - /// zero-initialization, - /// * `std::exception_ptr{}` produces a null-pointer, - /// * `std::string{}` produces an empty string `""`, - /// * etc. - /// - /// When a `result` contains either a value or error, the storage for - /// that object is guaranteed to be allocated as part of the result - /// object's footprint, i.e. no dynamic memory allocation ever takes place. - /// Thus, a result object models an object, not a pointer, even though the - /// `operator*()` and `operator->()` are defined. - /// - /// When an object of type `result` is contextually converted to - /// `bool`, the conversion returns `true` if the object contains a value and - /// `false` if it contains an error. - /// - /// `result` objects do not have a "valueless" state like `variant`s do. - /// Once a `result` has been constructed with a value or error, the - /// active underlying type can only be changed through assignment which may - /// is only enabled if construction is guaranteed to be *non-throwing*. This - /// ensures that a valueless state cannot occur naturally. - /// - /// Example Use: - /// \code - /// auto to_string(int x) -> result - /// { - /// try { - /// return std::stoi(x); - /// } catch (const std::invalid_argument&) { - /// return fail(std::errc::invalid_argument); - /// } catch (const std::std::out_of_range&) { - /// return fail(std::errc::result_out_of_range); - /// } - /// } - /// \endcode - /// - /// \note If using C++17 or above, `fail` can be replaced with - /// `failure{...}` thanks to CTAD. - /// - /// \tparam T the underlying value type - /// \tparam E the underlying error type - /////////////////////////////////////////////////////////////////////////// - template - class RESULT_NODISCARD result - { - // Type requirements - - static_assert( - !std::is_abstract::value, - "It is ill-formed for T to be abstract type" - ); - static_assert( - !std::is_same::type, in_place_t>::value, - "It is ill-formed for T to be a (possibly CV-qualified) in_place_t type" - ); - static_assert( - !is_result::type>::value, - "It is ill-formed for T to be a (possibly CV-qualified) 'result' type" - ); - static_assert( - !is_failure::type>::value, - "It is ill-formed for T to be a (possibly CV-qualified) 'failure' type" - ); - static_assert( - !std::is_rvalue_reference::value, - "It is ill-formed for T to be an rvalue 'result type. " - "Only lvalue references are valid." - ); - - static_assert( - !std::is_abstract::value, - "It is ill-formed for E to be abstract type" - ); - static_assert( - !std::is_void::type>::value, - "It is ill-formed for E to be (possibly CV-qualified) void type" - ); - static_assert( - !is_result::type>::value, - "It is ill-formed for E to be a (possibly CV-qualified) 'result' type" - ); - static_assert( - !is_failure::type>::value, - "It is ill-formed for E to be a (possibly CV-qualified) 'failure' type" - ); - static_assert( - !std::is_same::type, in_place_t>::value, - "It is ill-formed for E to be a (possibly CV-qualified) in_place_t type" - ); - static_assert( - !std::is_reference::value, - "It is ill-formed for E to be a reference type. " - "Only T types may be lvalue references" - ); - - // Friendship - - friend detail::result_error_extractor; - - template - friend class result; - - //------------------------------------------------------------------------- - // Public Member Types - //------------------------------------------------------------------------- - public: - - using value_type = T; ///< The value type of this result - using error_type = E; ///< The error type of this result - using failure_type = failure; ///< The failure type - - template - using rebind = result; ///< Rebinds the result type - - //------------------------------------------------------------------------- - // Constructor / Destructor / Assignment - //------------------------------------------------------------------------- - public: - - /// \brief Default-constructs a result with the underlying value type - /// active - /// - /// This constructor is only enabled if `T` is default-constructible - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// assert(cpp::result{} == std::string{}); - /// ``` - template ::value>::type> - constexpr result() - noexcept(std::is_nothrow_constructible::value); - - /// \brief Copy constructs this result - /// - /// If \p other contains a value, initializes the contained value as if - /// direct-initializing (but not direct-list-initializing) an object of - /// type `T` with the expression *other. - /// - /// If other contains an error, constructs an object that contains a copy - /// of that error. - /// - /// \note This constructor is defined as deleted if - /// `std::is_copy_constructible::value` or - /// `std::is_copy_constructible::value` is `false` - /// - /// \note This constructor is defined as trivial if both - /// `std::is_trivially_copy_constructible::value` and - /// `std::is_trivially_copy_constructible::value` are `true` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// const auto r = cpp::result{42}; - /// const auto s = r; - /// - /// assert(r == s); - /// ``` - /// - /// \param other the result to copy - constexpr result(const result& other) = default; - - /// \brief Move constructs a result - /// - /// If other contains a value, initializes the contained value as if - /// direct-initializing (but not direct-list-initializing) an object - /// of type T with the expression `std::move(*other)` and does not make - /// other empty: a moved-from result still contains a value, but the - /// value itself is moved from. - /// - /// If other contains an error, move-constructs this result from that - /// error. - /// - /// \note This constructor is defined as deleted if - /// `std::is_move_constructible::value` or - /// `std::is_move_constructible::value` is `false` - /// - /// \note This constructor is defined as trivial if both - /// `std::is_trivially_move_constructible::value` and - /// `std::is_trivially_move_constructible::value` are `true` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{"hello world"}; - /// auto s = std::move(r); - /// - /// assert(s == "hello world"); - /// ``` - /// - /// \param other the result to move - constexpr result(result&& other) = default; - - /// \{ - /// \brief Converting copy constructor - /// - /// If \p other contains a value, constructs a result object - /// that contains a value, initialized as if direct-initializing - /// (but not direct-list-initializing) an object of type `T` with the - /// expression `*other`. - /// - /// If \p other contains an error, constructs a result object that - /// contains an error, initialized as if direct-initializing - /// (but not direct-list-initializing) an object of type `E`. - /// - /// \note This constructor does not participate in overload resolution - /// unless the following conditions are met: - /// - `std::is_constructible_v` is `true` - /// - T is not constructible or convertible from any expression - /// of type (possibly const) `result` - /// - E is not constructible or convertible from any expression - /// of type (possible const) `result` - /// - /// \note This constructor is explicit if and only if - /// `std::is_convertible_v` or - /// `std::is_convertible_v` is `false` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// const auto r = cpp::result{42}; - /// const auto s = cpp::result{r}; - /// - /// assert(r == s); - /// ``` - /// - /// \param other the other type to convert - template ::value,int>::type = 0> - result(const result& other) - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_constructible::value); - template ::value,int>::type = 0> - explicit result(const result& other) - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_constructible::value); - /// \} - - /// \{ - /// \brief Converting move constructor - /// - /// If \p other contains a value, constructs a result object - /// that contains a value, initialized as if direct-initializing - /// (but not direct-list-initializing) an object of type T with the - /// expression `std::move(*other)`. - /// - /// If \p other contains an error, constructs a result object that - /// contains an error, initialized as if direct-initializing - /// (but not direct-list-initializing) an object of type E&&. - /// - /// \note This constructor does not participate in overload resolution - /// unless the following conditions are met: - /// - `std::is_constructible_v` is `true` - /// - T is not constructible or convertible from any expression - /// of type (possibly const) `result` - /// - E is not constructible or convertible from any expression - /// of type (possible const) `result` - /// - /// \note This constructor is explicit if and only if - /// `std::is_convertible_v` or - /// `std::is_convertible_v` is `false` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result,int>{ - /// std::make_unique() - /// }; - /// const auto s = cpp::result,long>{ - /// std::move(r) - /// }; - /// ``` - /// - /// \param other the other type to convert - template ::value,int>::type = 0> - result(result&& other) - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_constructible::value); - template ::value,int>::type = 0> - explicit result(result&& other) - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_constructible::value); - /// \} - - //------------------------------------------------------------------------- - - /// \brief Constructs a result object that contains a value - /// - /// The value is initialized as if direct-initializing (but not - /// direct-list-initializing) an object of type `T` from the arguments - /// `std::forward(args)...` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{ - /// cpp::in_place, "Hello world" - /// }; - /// ``` - /// - /// \param args the arguments to pass to T's constructor - template ::value>::type> - constexpr explicit result(in_place_t, Args&&... args) - noexcept(std::is_nothrow_constructible::value); - - /// \brief Constructs a result object that contains a value - /// - /// The value is initialized as if direct-initializing (but not - /// direct-list-initializing) an object of type `T` from the arguments - /// `std::forward>(ilist)`, - /// `std::forward(args)...` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{ - /// cpp::in_place, {'H','e','l','l','o'} - /// }; - /// ``` - /// - /// \param ilist An initializer list of entries to forward - /// \param args the arguments to pass to T's constructor - template &, Args...>::value>::type> - constexpr explicit result(in_place_t, - std::initializer_list ilist, - Args&&...args) - noexcept(std::is_nothrow_constructible, Args...>::value); - - //------------------------------------------------------------------------- - - /// \brief Constructs a result object that contains an error - /// - /// the value is initialized as if direct-initializing (but not - /// direct-list-initializing) an object of type `E` from the arguments - /// `std::forward(args)...` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{ - /// cpp::in_place_error, "Hello world" - /// }; - /// ``` - /// - /// \param args the arguments to pass to E's constructor - template ::value>::type> - constexpr explicit result(in_place_error_t, Args&&... args) - noexcept(std::is_nothrow_constructible::value); - - /// \brief Constructs a result object that contains an error - /// - /// The value is initialized as if direct-initializing (but not - /// direct-list-initializing) an object of type `E` from the arguments - /// `std::forward>(ilist)`, - /// `std::forward(args)...` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{ - /// cpp::in_place_error, {'H','e','l','l','o'} - /// }; - /// ``` - /// - /// \param ilist An initializer list of entries to forward - /// \param args the arguments to pass to Es constructor - template &, Args...>::value>::type> - constexpr explicit result(in_place_error_t, - std::initializer_list ilist, - Args&&...args) - noexcept(std::is_nothrow_constructible, Args...>::value); - - //------------------------------------------------------------------------- - - /// \{ - /// \brief Constructs the underlying error of this result - /// - /// \note This constructor only participates in overload resolution if - /// `E` is constructible from \p e - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// cpp::result r = cpp::fail(42); - /// - /// auto get_error_result() -> cpp::result { - /// return cpp::fail("hello world!"); - /// } - /// ``` - /// - /// \param e the failure error - template ::value>::type> - constexpr /* implicit */ result(const failure& e) - noexcept(std::is_nothrow_constructible::value); - template ::value>::type> - constexpr /* implicit */ result(failure&& e) - noexcept(std::is_nothrow_constructible::value); - /// \} - - /// \{ - /// \brief Constructs a result object that contains a value - /// - /// The value is initialized as if direct-initializing (but not - /// direct-list-initializing) an object of type T with the expression - /// value. - /// - /// \note This constructor is constexpr if the constructor of T - /// selected by direct-initialization is constexpr - /// - /// \note This constructor does not participate in overload - /// resolution unless `std::is_constructible_v` is true - /// and `decay_t` is neither `in_place_t`, `in_place_error_t`, - /// nor a `result` type. - /// - /// \note This constructor is explicit if and only if - /// `std::is_convertible_v` is `false` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// cpp::result r = 42; - /// - /// auto get_value() -> cpp::result { - /// return "hello world!"; // implicit conversion - /// } - /// ``` - /// - /// \param value the value to copy - template ::value,int>::type = 0> - constexpr explicit result(U&& value) - noexcept(std::is_nothrow_constructible::value); - template ::value,int>::type = 0> - constexpr /* implicit */ result(U&& value) - noexcept(std::is_nothrow_constructible::value); - /// \} - - //------------------------------------------------------------------------- - - /// \brief Copy assigns the result stored in \p other - /// - /// \note This assignment operator only participates in overload resolution - /// if the following conditions are met: - /// - `std::is_nothrow_copy_constructible_v` is `true`, and - /// - `std::is_nothrow_copy_constructible_v` is `true` - /// this restriction guarantees that no ' - /// - /// \note This assignment operator is defined as trivial if the following - /// conditions are all `true`: - /// - `std::is_trivially_copy_constructible::value` - /// - `std::is_trivially_copy_constructible::value` - /// - `std::is_trivially_copy_assignable::value` - /// - `std::is_trivially_copy_assignable::value` - /// - `std::is_trivially_destructible::value` - /// - `std::is_trivially_destructible::value` - /// - /// \param other the other result to copy - auto operator=(const result& other) -> result& = default; - - /// \brief Move assigns the result stored in \p other - /// - /// \note This assignment operator only participates in overload resolution - /// if the following conditions are met: - /// - `std::is_nothrow_copy_constructible_v` is `true`, and - /// - `std::is_nothrow_copy_constructible_v` is `true` - /// this restriction guarantees that no 'valueless_by_exception` state - /// may occur. - /// - /// \note This assignment operator is defined as trivial if the following - /// conditions are all `true`: - /// - `std::is_trivially_move_constructible::value` - /// - `std::is_trivially_move_constructible::value` - /// - `std::is_trivially_move_assignable::value` - /// - `std::is_trivially_move_assignable::value` - /// - `std::is_trivially_destructible::value` - /// - `std::is_trivially_destructible::value` - /// - /// \param other the other result to copy - auto operator=(result&& other) -> result& = default; - - /// \brief Copy-converts the state of \p other - /// - /// If both `*this` and \p other contain either values or errors, the - /// underlying value is constructed as if through assignment. - /// - /// Otherwise if `*this` contains a value, but \p other contains an error, - /// then the contained value is destroyed by calling its destructor. `*this` - /// will no longer contain a value after the call, and will now contain `E` - /// constructed as if direct-initializing (but not direct-list-initializing) - /// an object with an argument of `const E2&`. - /// - /// If \p other contains a value and `*this` contains an error, then the - /// contained error is destroyed by calling its destructor. `*this` now - /// contains a value constructed as if direct-initializing (but not - /// direct-list-initializing) an object with an argument of `const T2&`. - /// - /// \note The function does not participate in overload resolution unless - /// - `std::is_nothrow_constructible_v`, - /// `std::is_assignable_v`, - /// `std::is_nothrow_constructible_v`, - /// `std::is_assignable_v` are all true. - /// - T is not constructible, convertible, or assignable from any - /// expression of type (possibly const) `result` - /// - /// \param other the other result object to convert - /// \return reference to `(*this)` - template ::value>::type> - auto operator=(const result& other) - noexcept(std::is_nothrow_assignable::value && - std::is_nothrow_assignable::value) -> result&; - - /// \brief Move-converts the state of \p other - /// - /// If both `*this` and \p other contain either values or errors, the - /// underlying value is constructed as if through move-assignment. - /// - /// Otherwise if `*this` contains a value, but \p other contains an error, - /// then the contained value is destroyed by calling its destructor. `*this` - /// will no longer contain a value after the call, and will now contain `E` - /// constructed as if direct-initializing (but not direct-list-initializing) - /// an object with an argument of `E2&&`. - /// - /// If \p other contains a value and `*this` contains an error, then the - /// contained error is destroyed by calling its destructor. `*this` now - /// contains a value constructed as if direct-initializing (but not - /// direct-list-initializing) an object with an argument of `T2&&`. - /// - /// \note The function does not participate in overload resolution unless - /// - `std::is_nothrow_constructible_v`, - /// `std::is_assignable_v`, - /// `std::is_nothrow_constructible_v`, - /// `std::is_assignable_v` are all true. - /// - T is not constructible, convertible, or assignable from any - /// expression of type (possibly const) `result` - /// - /// \param other the other result object to convert - /// \return reference to `(*this)` - template ::value>::type> - auto operator=(result&& other) - noexcept(std::is_nothrow_assignable::value && - std::is_nothrow_assignable::value) -> result&; - - /// \brief Perfect-forwarded assignment - /// - /// Depending on whether `*this` contains a value before the call, the - /// contained value is either direct-initialized from std::forward(value) - /// or assigned from std::forward(value). - /// - /// \note The function does not participate in overload resolution unless - /// - `std::decay_t` is not a result type, - /// - `std::decay_t` is not a failure type - /// - `std::is_nothrow_constructible_v` is `true` - /// - `std::is_assignable_v` is `true` - /// - and at least one of the following is `true`: - /// - `T` is not a scalar type; - /// - `std::decay_t` is not `T`. - /// - /// \param value to assign to the contained value - /// \return reference to `(*this)` - template ::value>::type> - auto operator=(U&& value) - noexcept(std::is_nothrow_assignable::value) -> result&; - - /// \{ - /// \brief Perfect-forwarded assignment - /// - /// Depending on whether `*this` contains an error before the call, the - /// contained error is either direct-initialized via forwarding the error, - /// or assigned from forwarding the error - /// - /// \note The function does not participate in overload resolution unless - /// - `std::is_nothrow_constructible_v` is `true`, and - /// - `std::is_assignable_v` is `true` - /// - /// \param other the failure value to assign to this - /// \return reference to `(*this)` - template ::value>::type> - auto operator=(const failure& other) - noexcept(std::is_nothrow_assignable::value) -> result&; - template ::value>::type> - auto operator=(failure&& other) - noexcept(std::is_nothrow_assignable::value) -> result&; - /// \} - - //------------------------------------------------------------------------- - // Observers - //------------------------------------------------------------------------- - public: - - /// \{ - /// \brief Retrieves a pointer to the contained value - /// - /// This operator exists to give `result` an `optional`-like API for cases - /// where it's known that the `result` already contains a value. - /// - /// Care must be taken to ensure that this is only used in safe contexts - /// where a `T` value is active. - /// - /// \note The behavior is undefined if `*this` does not contain a value. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{ - /// make_widget() - /// }; - /// - /// r->do_something(); - /// ``` - /// - /// \return a pointer to the contained value - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto operator->() - noexcept -> typename std::remove_reference::type*; - RESULT_WARN_UNUSED - constexpr auto operator->() - const noexcept -> typename std::remove_reference::type>::type*; - /// \} - - /// \{ - /// \brief Retrieves a reference to the contained value - /// - /// This operator exists to give `result` an `optional`-like API for cases - /// where it's known that the `result` already contains a value. - /// - /// Care must be taken to ensure that this is only used in safe contexts - /// where a `T` value is active. - /// - /// \note The behaviour is undefined if `*this` does not contain a value - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{ - /// make_widget() - /// }; - /// - /// (*r).do_something(); - /// - /// consume(*r); - /// ``` - /// - /// \return a reference to the contained value - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto operator*() - & noexcept -> typename std::add_lvalue_reference::type; - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto operator*() - && noexcept -> typename std::add_rvalue_reference::type; - RESULT_WARN_UNUSED - constexpr auto operator*() - const& noexcept -> typename std::add_lvalue_reference::type>::type; - RESULT_WARN_UNUSED - constexpr auto operator*() - const&& noexcept -> typename std::add_rvalue_reference::type>::type; - /// \} - - //------------------------------------------------------------------------- - - /// \brief Contextually convertible to `true` if `*this` contains a value - /// - /// This function exists to allow for simple, terse checks for containing - /// a value. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto get_result() -> cpp::result; - /// auto r = get_result(); - /// if (r) { ... } - /// - /// assert(static_cast(cpp::result{42})); - /// - /// assert(!static_cast(cpp::result{cpp::fail(42)})); - /// ``` - /// - /// \return `true` if `*this` contains a value, `false` if `*this` - /// does not contain a value - RESULT_WARN_UNUSED - constexpr explicit operator bool() const noexcept; - - /// \brief Returns `true` if `*this` contains a value - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto get_result() -> cpp::result; - /// auto r = get_result(); - /// if (r.has_value()) { ... } - /// - /// assert(cpp::result{42}.has_value()); - /// - /// assert(!cpp::result{cpp::fail(42)}.has_value()); - /// ``` - /// - /// \return `true` if `*this` contains a value, `false` if `*this` - /// contains an error - RESULT_WARN_UNUSED - constexpr auto has_value() const noexcept -> bool; - - /// \brief Returns `true` if `*this` contains an error - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto get_result() -> cpp::result; - /// - /// auto r = get_result(); - /// if (r.has_error()) { ... } - /// - /// assert(!cpp::result{42}.has_error()); - /// - /// assert(cpp::result{cpp::fail(42)}.has_error()); - /// ``` - /// - /// \return `true` if `*this` contains an error, `false` if `*this` - /// contains a value - RESULT_WARN_UNUSED - constexpr auto has_error() const noexcept -> bool; - - //------------------------------------------------------------------------- - - /// \{ - /// \brief Returns a reference to the contained value - /// - /// This function provides checked (throwing) access to the underlying - /// value. The constness and refness of this result is propagated to the - /// underlying reference. - /// - /// If this contains an error, an exception is thrown containing the - /// underlying error. The error is consumed propagating the same constness - /// and refness of this result. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// assert(cpp::result{42}.value() == 42); - /// - /// auto r = cpp::result,int>{ - /// std::make_unique(42) - /// }; - /// auto s = std::move(r).value(); - /// - /// try { - /// auto r = cpp::result{ cpp::fail(42) }; - /// auto v = r.value(); - /// } catch (const cpp::bad_result_access& e) { - /// assert(e.error() == 42); - /// } - /// ``` - /// - /// \throws bad_result_access if `*this` does not contain a value. - /// - /// \return the value of `*this` - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto value() - & -> typename std::add_lvalue_reference::type; - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto value() - && -> typename std::add_rvalue_reference::type; - RESULT_WARN_UNUSED - constexpr auto value() - const & -> typename std::add_lvalue_reference::type>::type; - RESULT_WARN_UNUSED - constexpr auto value() - const && -> typename std::add_rvalue_reference::type>::type; - /// \} - - /// \{ - /// \brief Returns the contained error, if one exists, or a - /// default-constructed error value - /// - /// The `error()` function will not throw any exceptions if `E` does not - /// throw any exceptions for the copy or move construction. - /// - /// This is to limit the possible scope for exceptions, and to allow the - /// error type to be treated as a "status"-like type, where the - /// default-constructed case is considered the "good" state. - /// - /// If this function is invoked on an rvalue of a result, the error is - /// returned via move-construction - /// - /// ### Requires - /// - /// * `std::is_default_constructible::value` is `true` - /// * `std::is_copy_constructible::value` or - /// `std::is_move_constructible::value` is `true` - /// * `E{}` represents the "good" (non-error) state - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{ 42 }; - /// assert(r.error() == std::error_code{}); - /// - /// auto r = cpp::result{ - /// cpp::fail(std::io_errc::stream) - /// }; - /// - /// assert(r.error() == std::io_errc::stream); - /// ``` - /// - /// \return the error or a default-constructed error value - RESULT_WARN_UNUSED - constexpr auto error() const & - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_copy_constructible::value) -> E; - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto error() && - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_move_constructible::value) -> E; - /// } - - /// \{ - /// \brief Asserts an expectation that this result contains an error, - /// throwing a bad_result_access on failure - /// - /// If this function is invoked from an rvalue of `result`, then this will - /// consume the underlying error first, if there is one. - /// - /// \note This function exists as a means to allow for results to be marked - /// `used` without requiring directly inspecting the underlying value. - /// This is, in effect, equivalent to `assert(res.has_value())`, - /// however it uses exceptions to ensure the stack can be unwound, and - /// exceptions invoked. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto start_service() -> cpp::result; - /// - /// start_service().expect("Service failed to start!"); - /// ``` - /// - /// \param message the message to provide to this expectation - /// - /// \return the value of `*this` - template ::value && - std::is_copy_constructible::value - )>::type> - RESULT_CPP14_CONSTEXPR auto expect(String&& message) & -> typename std::add_lvalue_reference::type; - template ::value && - std::is_move_constructible::value - )>::type> - RESULT_CPP14_CONSTEXPR auto expect(String&& message) && -> typename std::add_rvalue_reference::type; - template ::value && - std::is_copy_constructible::value - )>::type> - RESULT_CPP14_CONSTEXPR auto expect(String&& message) const & -> typename std::add_lvalue_reference::type>::type; - template ::value && - std::is_copy_constructible::value - )>::type> - RESULT_CPP14_CONSTEXPR auto expect(String&& message) const && -> typename std::add_rvalue_reference::type>::type; - /// \} - - //------------------------------------------------------------------------- - // Monadic Functionalities - //------------------------------------------------------------------------- - public: - - /// \{ - /// \brief Returns the contained value if `*this` has a value, - /// otherwise returns \p default_value. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{42}; - /// assert(r.value_or(0) == 42); - /// - /// auto r = cpp::result{cpp::fail(42)}; - /// assert(r.value_or(0) == 0); - /// ``` - /// - /// \param default_value the value to use in case `*this` contains an error - /// \return the contained value or \p default_value - template - RESULT_WARN_UNUSED - constexpr auto value_or(U&& default_value) - const & -> typename std::remove_reference::type; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto value_or(U&& default_value) - && -> typename std::remove_reference::type; - /// \} - - /// \{ - /// \brief Returns the contained error if `*this` has an error, - /// otherwise returns \p default_error. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{42}; - /// assert(r.error_or(0) == cpp::fail(0)); - /// - /// auto r = cpp::result{cpp::fail(42)}; - /// assert(r.error_or(0) == cpp::fail(42)); - /// ``` - /// - /// \param default_error the error to use in case `*this` is empty - /// \return the contained value or \p default_error - template - RESULT_WARN_UNUSED - constexpr auto error_or(U&& default_error) const & -> error_type; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto error_or(U&& default_error) && -> error_type; - /// \} - - //------------------------------------------------------------------------- - - /// \brief Returns a result containing \p value if this result contains - /// a value, otherwise returns a result containing the current - /// error. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{42}; - /// assert(r.and_then(100) == 100); - /// - /// auto r = cpp::result{cpp::fail(42)}; - /// assert(r.and_then(100) == cpp::fail(42)); - /// ``` - /// - /// \param value the value to return as a result - /// \return a result of \p value if this contains a value - template - RESULT_WARN_UNUSED - constexpr auto and_then(U&& value) const -> result::type,E>; - - /// \{ - /// \brief Invokes the function \p fn with the value of this result as - /// the argument - /// - /// If this result contains an error, a result of the error is returned - /// - /// The function being called must return a `result` type or the program - /// is ill-formed - /// - /// If this is called on an rvalue of `result` which contains an error, - /// the returned `result` is constructed from an rvalue of that error. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto to_string(int) -> cpp::result; - /// auto r = cpp::result{42}; - /// assert(r.flat_map(to_string) == "42"); - /// - /// auto r = cpp::result{cpp::fail(42)}; - /// assert(r.flat_map(to_string) == cpp::fail(42)); - /// ``` - /// - /// \param fn the function to invoke with this - /// \return The result of the function being called - template - RESULT_WARN_UNUSED - constexpr auto flat_map(Fn&& fn) const & -> detail::invoke_result_t; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto flat_map(Fn&& fn) && -> detail::invoke_result_t; - /// \} - - /// \{ - /// \brief Invokes the function \p fn with the value of this result as - /// the argument - /// - /// If this result is an error, the result of this function is that - /// error. Otherwise this function wraps the result and returns it as an - /// result. - /// - /// If this is called on an rvalue of `result` which contains an error, - /// the returned `result` is constructed from an rvalue of that error. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto to_string(int) -> std::string; - /// auto r = cpp::result{42}; - /// assert(r.map(to_string) == "42"); - /// - /// auto r = cpp::result{cpp::fail(42)}; - /// assert(r.map(to_string) == cpp::fail(42)); - /// ``` - /// - /// \param fn the function to invoke with this - /// \return The result result of the function invoked - template - RESULT_WARN_UNUSED - constexpr auto map(Fn&& fn) const & -> result,E>; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto map(Fn&& fn) && -> result,E>; - /// \} - - /// \{ - /// \brief Invokes the function \p fn with the error of this result as - /// the argument - /// - /// If this result contains a value, the result of this function is that - /// value. Otherwise the function is called with that error and returns the - /// result as a result. - /// - /// If this is called on an rvalue of `result` which contains a value, - /// the returned `result` is constructed from an rvalue of that value. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto to_string(int) -> std::string; - /// auto r = cpp::result{42}; - /// assert(r.map_error(to_string) == 42); - /// - /// auto r = cpp::result{cpp::fail(42)}; - /// assert(r.map_error(to_string) == cpp::fail("42")); - /// - /// auto r = cpp::result{}; - /// auto s = r.map(std::string::size); // 's' contains 'result' - /// ``` - /// - /// \param fn the function to invoke with this - /// \return The result result of the function invoked - template - RESULT_WARN_UNUSED - constexpr auto map_error(Fn&& fn) - const & -> result>; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto map_error(Fn&& fn) - && -> result>; - /// \} - - /// \{ - /// \brief Invokes the function \p fn with the error of this result as - /// the argument - /// - /// If this result contains a value, a result of the value is returned - /// - /// The function being called must return a `result` type or the program - /// is ill-formed - /// - /// If this is called on an rvalue of `result` which contains an error, - /// the returned `result` is constructed from an rvalue of that error. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto to_string(int) -> cpp::result; - /// auto r = cpp::result{42}; - /// assert(r.flat_map(to_string) == 42); - /// - /// auto r = cpp::result{cpp::fail(42)}; - /// assert(r.flat_map(to_string) == cpp::fail("42")); - /// ``` - /// - /// \param fn the function to invoke with this - /// \return The result of the function being called - template - RESULT_WARN_UNUSED - constexpr auto flat_map_error(Fn&& fn) - const & -> detail::invoke_result_t; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto flat_map_error(Fn&& fn) - && -> detail::invoke_result_t; - /// \} - - //------------------------------------------------------------------------- - // Private Members - //------------------------------------------------------------------------- - private: - - detail::result_storage m_storage; - - //------------------------------------------------------------------------- - // Private Monadic Functions - //------------------------------------------------------------------------- - private: - - /// \{ - /// \brief Map implementations for void and non-void functions - /// - /// \param fn the function - template - constexpr auto map_impl(std::true_type, Fn&& fn) const & -> result; - template - constexpr auto map_impl(std::false_type, Fn&& fn) const & -> result,E>; - template - RESULT_CPP14_CONSTEXPR auto map_impl(std::true_type, Fn&& fn) && -> result; - template - RESULT_CPP14_CONSTEXPR auto map_impl(std::false_type, Fn&& fn) && -> result,E>; - /// \} - }; - - //=========================================================================== - // class : result - //=========================================================================== - - ///////////////////////////////////////////////////////////////////////////// - /// \brief Partial specialization of `result` - /// - /// \tparam E the underlying error type - ///////////////////////////////////////////////////////////////////////////// - template - class RESULT_NODISCARD result - { - // Type requirements - - static_assert( - !std::is_void::type>::value, - "It is ill-formed for E to be (possibly CV-qualified) void type" - ); - static_assert( - !std::is_abstract::value, - "It is ill-formed for E to be abstract type" - ); - static_assert( - !is_failure::type>::value, - "It is ill-formed for E to be a (possibly CV-qualified) 'failure' type" - ); - static_assert( - !std::is_reference::value, - "It is ill-formed for E to be a reference type. " - "Only T types may be lvalue references" - ); - - // Friendship - - friend detail::result_error_extractor; - - template - friend class result; - - //------------------------------------------------------------------------- - // Public Member Types - //------------------------------------------------------------------------- - public: - - using value_type = void; ///< The value type of this result - using error_type = E; ///< The error type of this result - using failure_type = failure; ///< The failure type - - template - using rebind = result; ///< Rebinds the result type - - //------------------------------------------------------------------------- - // Constructor / Assignment - //------------------------------------------------------------------------- - public: - - /// \brief Constructs a `result` object in a value state - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{}; - /// ``` - constexpr result() noexcept; - - /// \brief Copy constructs this result - /// - /// If other contains an error, constructs an object that contains a copy - /// of that error. - /// - /// \note This constructor is defined as deleted if - /// `std::is_copy_constructible::value` is `false` - /// - /// \note This constructor is defined as trivial if both - /// `std::is_trivially_copy_constructible::value` are `true` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// const auto r = cpp::result{}; - /// const auto s = r; - /// ``` - /// - /// \param other the result to copy - constexpr result(const result& other) = default; - - /// \brief Move constructs a result - /// - /// If other contains an error, move-constructs this result from that - /// error. - /// - /// \note This constructor is defined as deleted if - /// `std::is_move_constructible::value` is `false` - /// - /// \note This constructor is defined as trivial if both - /// `std::is_trivially_move_constructible::value` are `true` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{}; - /// auto s = std::move(r); - /// ``` - /// - /// \param other the result to move - constexpr result(result&& other) = default; - - /// \brief Converting copy constructor - /// - /// If \p other contains a value, constructs a result object that is not - /// in an error state -- ignoring the value. - /// - /// If \p other contains an error, constructs a result object that - /// contains an error, initialized as if direct-initializing - /// (but not direct-list-initializing) an object of type `E`. - /// - /// \note This constructor does not participate in overload resolution - /// unless the following conditions are met: - /// - `std::is_constructible_v` is `true` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// const auto r = cpp::result{42}; - /// const auto s = cpp::result{r}; - /// ``` - /// - /// \param other the other type to convert - template ::value>::type> - explicit result(const result& other) - noexcept(std::is_nothrow_constructible::value); - - /// \brief Converting move constructor - /// - /// If \p other contains an error, constructs a result object that - /// contains an error, initialized as if direct-initializing - /// (but not direct-list-initializing) an object of type E&&. - /// - /// \note This constructor does not participate in overload resolution - /// unless the following conditions are met: - /// - `std::is_constructible_v` is `true` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{42}; - /// auto s = cpp::result{ - /// std::move(r) - /// }; - /// ``` - /// - /// \param other the other type to convert - template ::value>::type> - explicit result(result&& other) - noexcept(std::is_nothrow_constructible::value); - - //------------------------------------------------------------------------- - - /// \brief Constructs a result object in a value state - /// - /// This constructor exists primarily for symmetry with the `result` - /// constructor. Unlike the `T` overload, no variadic arguments may be - /// supplied. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{cpp::in_place}; - /// ``` - constexpr explicit result(in_place_t) noexcept; - - /// \brief Constructs a result object that contains an error - /// - /// the value is initialized as if direct-initializing (but not - /// direct-list-initializing) an object of type `E` from the arguments - /// `std::forward(args)...` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{ - /// cpp::in_place_error, "Hello world" - /// }; - /// ``` - /// - /// \param args the arguments to pass to `E`'s constructor - template ::value>::type> - constexpr explicit result(in_place_error_t, Args&&... args) - noexcept(std::is_nothrow_constructible::value); - - /// \brief Constructs a result object that contains an error - /// - /// The value is initialized as if direct-initializing (but not - /// direct-list-initializing) an object of type `E` from the arguments - /// `std::forward>(ilist)`, - /// `std::forward(args)...` - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto r = cpp::result{ - /// cpp::in_place_error, {'H','e','l','l','o'} - /// }; - /// ``` - /// - /// \param ilist An initializer list of entries to forward - /// \param args the arguments to pass to Es constructor - template &, Args...>::value>::type> - constexpr explicit result(in_place_error_t, - std::initializer_list ilist, - Args&&...args) - noexcept(std::is_nothrow_constructible, Args...>::value); - - //------------------------------------------------------------------------- - - /// \{ - /// \brief Constructs the underlying error of this result - /// - /// \note This constructor only participates in overload resolution if - /// `E` is constructible from \p e - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// cpp::result r = cpp::fail(42); - /// - /// auto get_error_result() -> cpp::result { - /// return cpp::fail("hello world!"); - /// } - /// ``` - /// - /// \param e the failure error - template ::value>::type> - constexpr /* implicit */ result(const failure& e) - noexcept(std::is_nothrow_constructible::value); - template ::value>::type> - constexpr /* implicit */ result(failure&& e) - noexcept(std::is_nothrow_constructible::value); - /// \} - - //------------------------------------------------------------------------- - - /// \brief Copy assigns the result stored in \p other - /// - /// \note The function does not participate in overload resolution unless - /// - `std::is_nothrow_copy_constructible_v` is `true` - /// this restriction guarantees that no 'valueless_by_exception` state - /// may occur. - /// - /// \note This assignment operator is defined as trivial if the following - /// conditions are all `true`: - /// - `std::is_trivially_copy_constructible::value` - /// - `std::is_trivially_copy_assignable::value` - /// - `std::is_trivially_destructible::value` - /// - /// \param other the other result to copy - auto operator=(const result& other) -> result& = default; - - /// \brief Move assigns the result stored in \p other - /// - /// \note The function does not participate in overload resolution unless - /// - `std::is_nothrow_copy_constructible_v` is `true` - /// this restriction guarantees that no 'valueless_by_exception` state - /// may occur. - /// - /// \note This assignment operator is defined as trivial if the following - /// conditions are all `true`: - /// - `std::is_trivially_move_constructible::value` - /// - `std::is_trivially_move_assignable::value` - /// - `std::is_trivially_destructible::value` - /// - /// \param other the other result to copy - auto operator=(result&& other) -> result& = default; - - /// \brief Copy-converts the state of \p other - /// - /// If both this and \p other contain an error, the underlying error is - /// assigned through copy-assignment. - /// - /// If \p other contains a value state, this result is constructed in a - /// value state. - /// - /// If \p other contans an error state, and this contains a value state, - /// the underlying error is constructed through copy-construction. - /// - /// \note The function does not participate in overload resolution unless - /// - `std::is_nothrow_constructible_v`, - /// `std::is_assignable_v` are all `true`. - /// - /// \param other the other result object to convert - /// \return reference to `(*this)` - template ::value && - std::is_assignable::value>::type> - auto operator=(const result& other) - noexcept(std::is_nothrow_assignable::value) -> result&; - - /// \brief Move-converts the state of \p other - /// - /// If both this and \p other contain an error, the underlying error is - /// assigned through move-assignment. - /// - /// If \p other contains a value state, this result is constructed in a - /// value state. - /// - /// If \p other contans an error state, and this contains a value state, - /// the underlying error is constructed through move-construction. - /// - /// \note The function does not participate in overload resolution unless - /// - `std::is_nothrow_constructible_v`, - /// `std::is_assignable_v` are all `true`. - /// - /// \param other the other result object to convert - /// \return reference to `(*this)` - template ::value && - std::is_assignable::value>::type> - auto operator=(result&& other) - noexcept(std::is_nothrow_assignable::value) -> result&; - - /// \{ - /// \brief Perfect-forwarded assignment - /// - /// Depending on whether `*this` contains an error before the call, the - /// contained error is either direct-initialized via forwarding the error, - /// or assigned from forwarding the error - /// - /// \note The function does not participate in overload resolution unless - /// - `std::is_nothrow_constructible_v` is `true`, and - /// - `std::is_assignable_v` is `true` - /// - /// \param other the failure value to assign to this - /// \return reference to `(*this)` - template ::value>::type> - auto operator=(const failure& other) - noexcept(std::is_nothrow_assignable::value) -> result&; - template ::value>::type> - auto operator=(failure&& other) - noexcept(std::is_nothrow_assignable::value) -> result&; - /// \} - - //------------------------------------------------------------------------- - // Observers - //------------------------------------------------------------------------- - public: - - - /// \brief Contextually convertible to `true` if `*this` does not contain - /// an error - /// - /// This function exists to allow for simple, terse checks for containing - /// a value. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto get_result() -> cpp::result; - /// auto r = get_result(); - /// if (r) { ... } - /// - /// assert(static_cast(cpp::result{})); - /// - /// assert(!static_cast(cpp::result{cpp::fail(42)})); - /// ``` - /// - /// \return `true` if `*this` contains a value, `false` if `*this` - /// does not contain a value - RESULT_WARN_UNUSED - constexpr explicit operator bool() const noexcept; - - /// \copydoc result::has_value - RESULT_WARN_UNUSED - constexpr auto has_value() const noexcept -> bool; - - /// \copydoc result::has_error - RESULT_WARN_UNUSED - constexpr auto has_error() const noexcept -> bool; - - //------------------------------------------------------------------------- - - /// \{ - /// \brief Throws an exception if `(*this)` is in an error state - /// - /// This function exists for symmetry with `cpp::result` objects where - /// `T` contains a value. - /// - /// If this contains an error, an exception is thrown containing the - /// underlying error. The error is consumed propagating the same constness - /// and refness of this result. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// cpp::result{}.value(); // no exception - /// - /// auto r = cpp::result>{ - /// cpp::fail(std::make_unique(42)) - /// }; - /// std::move(r).value(); // throws bad_result_access> - /// - /// try { - /// auto r = cpp::result{ cpp::fail(42) }.value(); - /// } catch (const cpp::bad_result_access& e) { - /// assert(e.error() == 42); - /// } - /// ``` - /// - /// \throws bad_result_access if `*this` does not contain a value. - RESULT_CPP14_CONSTEXPR auto value() && -> void; - RESULT_CPP14_CONSTEXPR auto value() const & -> void; - /// \} - - /// \{ - /// \copydoc result::error - RESULT_WARN_UNUSED - constexpr auto error() const & - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_copy_constructible::value) -> E; - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto error() && - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_copy_constructible::value) -> E; - /// \} - - /// \{ - /// \copydoc result::expect - template ::value && - std::is_copy_constructible::value - )>::type> - RESULT_CPP14_CONSTEXPR auto expect(String&& message) const & -> void; - template ::value && - std::is_move_constructible::value - )>::type> - RESULT_CPP14_CONSTEXPR auto expect(String&& message) && -> void; - /// \} - - //------------------------------------------------------------------------- - // Monadic Functionalities - //------------------------------------------------------------------------- - public: - - /// \{ - /// \copydoc result::error_or - template - RESULT_WARN_UNUSED - constexpr auto error_or(U&& default_error) const & -> error_type; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto error_or(U&& default_error) && -> error_type; - /// \} - - //------------------------------------------------------------------------- - - /// \copydoc result::and_then - template - RESULT_WARN_UNUSED - constexpr auto and_then(U&& value) const -> result::type,E>; - - /// \{ - /// \brief Invokes the function \p fn if `(*this)` contains no value - /// - /// If this result contains an error, a result of the error is returned - /// - /// The function being called must return a `result` type or the program - /// is ill-formed - /// - /// If this is called on an rvalue of `result` which contains an error, - /// the returned `result` is constructed from an rvalue of that error. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto generate_int() -> cpp::result { return 42; } - /// auto r = cpp::result{}; - /// assert(r.flat_map(generate_int) == 42); - /// - /// auto r = cpp::result{cpp::fail(42)}; - /// assert(r.flat_map(generate_int) == cpp::fail(42)); - /// ``` - /// - /// \param fn the function to invoke with this - /// \return The result of the function being called - template - RESULT_WARN_UNUSED - constexpr auto flat_map(Fn&& fn) const & -> detail::invoke_result_t; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto flat_map(Fn&& fn) && -> detail::invoke_result_t; - /// \} - - /// \{ - /// \brief Invokes the function \p fn if `(*this)` contains no value - /// - /// If this result is an error, the result of this function is that - /// error. Otherwise this function wraps the result and returns it as an - /// result. - /// - /// If this is called on an rvalue of `result` which contains an error, - /// the returned `result` is constructed from an rvalue of that error. - /// - /// ### Examples - /// - /// Basic Usage: - /// - /// ```cpp - /// auto generate_int() -> int { return 42; } - /// auto r = cpp::result{}; - /// assert(r.map(generate_int) == 42); - /// - /// auto r = cpp::result{cpp::fail(42)}; - /// assert(r.map(generate_int) == cpp::fail(42)); - /// ``` - /// - /// \param fn the function to invoke with this - /// \return The result result of the function invoked - template - RESULT_WARN_UNUSED - constexpr auto map(Fn&& fn) const & -> result,E>; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto map(Fn&& fn) && -> result,E>; - /// \} - - /// \{ - /// \copydoc result::map_error - template - constexpr auto map_error(Fn&& fn) const & -> result>; - template - RESULT_CPP14_CONSTEXPR - auto map_error(Fn&& fn) && -> result>; - /// \} - - - /// \{ - /// \copydoc result::flat_map_error - template - RESULT_WARN_UNUSED - constexpr auto flat_map_error(Fn&& fn) const & -> detail::invoke_result_t; - template - RESULT_WARN_UNUSED - RESULT_CPP14_CONSTEXPR auto flat_map_error(Fn&& fn) && -> detail::invoke_result_t; - /// \} - - //------------------------------------------------------------------------- - // Private Members - //------------------------------------------------------------------------- - private: - - detail::result_storage m_storage; - - //------------------------------------------------------------------------- - // Private Monadic Functions - //------------------------------------------------------------------------- - private: - - /// \{ - /// \brief Map implementations for void and non-void functions - /// - /// \param fn the function - template - constexpr auto map_impl(std::true_type, Fn&& fn) const & -> result; - template - constexpr auto map_impl(std::false_type, Fn&& fn) const & -> result,E>; - template - RESULT_CPP14_CONSTEXPR auto map_impl(std::true_type, Fn&& fn) && -> result; - template - RESULT_CPP14_CONSTEXPR auto map_impl(std::false_type, Fn&& fn) && -> result,E>; - /// \} - }; - - //=========================================================================== - // non-member functions : class : result - //=========================================================================== - - //--------------------------------------------------------------------------- - // Comparison - //--------------------------------------------------------------------------- - - template - constexpr auto operator==(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator!=(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator>=(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator<=(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator>(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator<(const result& lhs, const result& rhs) - noexcept -> bool; - - //--------------------------------------------------------------------------- - - template - constexpr auto operator==(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator!=(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator>=(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator<=(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator>(const result& lhs, const result& rhs) - noexcept -> bool; - template - constexpr auto operator<(const result& lhs, const result& rhs) - noexcept -> bool; - - //--------------------------------------------------------------------------- - - template ::value>::type> - constexpr auto operator==(const result& exp, const U& value) - noexcept -> bool; - template ::value>::type> - constexpr auto operator==(const T& value, const result& exp) - noexcept -> bool; - template ::value>::type> - constexpr auto operator!=(const result& exp, const U& value) - noexcept -> bool; - template ::value>::type> - constexpr auto operator!=(const T& value, const result& exp) - noexcept -> bool; - template ::value>::type> - constexpr auto operator<=(const result& exp, const U& value) - noexcept -> bool; - template ::value>::type> - constexpr auto operator<=(const T& value, const result& exp) - noexcept -> bool; - template ::value>::type> - constexpr auto operator>=(const result& exp, const U& value) - noexcept -> bool; - template ::value>::type> - constexpr auto operator>=(const T& value, const result& exp) - noexcept -> bool; - template ::value>::type> - constexpr auto operator<(const result& exp, const U& value) - noexcept -> bool; - template ::value>::type> - constexpr auto operator<(const T& value, const result& exp) - noexcept -> bool; - template ::value>::type> - constexpr auto operator>(const result& exp, const U& value) - noexcept -> bool; - template ::value>::type> - constexpr auto operator>(const T& value, const result& exp) - noexcept -> bool; - - //--------------------------------------------------------------------------- - - template - constexpr auto operator==(const result& exp, const failure& value) - noexcept -> bool; - template - constexpr auto operator==(const failure& value, const result& exp) - noexcept -> bool; - template - constexpr auto operator!=(const result& exp, const failure& value) - noexcept -> bool; - template - constexpr auto operator!=(const failure& value, const result& exp) - noexcept -> bool; - template - constexpr auto operator<=(const result& exp, const failure& value) - noexcept -> bool; - template - constexpr auto operator<=(const failure& value, const result& exp) - noexcept -> bool; - template - constexpr auto operator>=(const result& exp, const failure& value) - noexcept -> bool; - template - constexpr auto operator>=(const failure& value, const result& exp) - noexcept -> bool; - template - constexpr auto operator<(const result& exp, const failure& value) - noexcept -> bool; - template - constexpr auto operator<(const failure& value, const result& exp) - noexcept -> bool; - template - constexpr auto operator>(const result& exp, const failure& value) - noexcept -> bool; - template - constexpr auto operator>(const failure& value, const result& exp) - noexcept -> bool; - - //--------------------------------------------------------------------------- - // Utilities - //--------------------------------------------------------------------------- - - /// \{ - /// \brief Swaps the contents of \p lhs with \p rhs - /// - /// \param lhs the left result - /// \param rhs the right result - template - auto swap(result& lhs, result& rhs) -#if __cplusplus >= 201703L - noexcept(std::is_nothrow_move_constructible>::value && - std::is_nothrow_move_assignable>::value && - std::is_nothrow_swappable::value && - std::is_nothrow_swappable::value) -#else - noexcept(std::is_nothrow_move_constructible>::value && - std::is_nothrow_move_assignable>::value) -#endif - -> void; - template - auto swap(result& lhs, result& rhs) -#if __cplusplus >= 201703L - noexcept(std::is_nothrow_move_constructible>::value && - std::is_nothrow_move_assignable>::value && - std::is_nothrow_swappable::value) -#else - noexcept(std::is_nothrow_move_constructible>::value && - std::is_nothrow_move_assignable>::value) -#endif - -> void; - /// \} - -} // inline namespace bitwizeshift -} // namespace EXPECTED_NAMESPACE - -namespace std { - - template - struct hash<::RESULT_NS_IMPL::result> - { - auto operator()(const RESULT_NS_IMPL::result& x) const -> std::size_t - { - if (x.has_value()) { - return std::hash{}(*x) + 1; // add '1' to differentiate from error case - } - return std::hash{}(::RESULT_NS_IMPL::detail::extract_error(x)); - } - }; - - template - struct hash<::RESULT_NS_IMPL::result> - { - auto operator()(const RESULT_NS_IMPL::result& x) const -> std::size_t - { - if (x.has_value()) { - return 0; - } - return std::hash{}(::RESULT_NS_IMPL::detail::extract_error(x)); - } - }; - -} // namespace std - -#if !defined(RESULT_DISABLE_EXCEPTIONS) - -//============================================================================= -// class : bad_result_access -//============================================================================= - -//----------------------------------------------------------------------------- -// Constructors -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::bad_result_access::bad_result_access(E2&& error) - : logic_error{"error attempting to access value from result containing error"}, - m_error(detail::forward(error)) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::bad_result_access::bad_result_access( - const char* what_arg, - E2&& error -) : logic_error{what_arg}, - m_error(detail::forward(error)) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::bad_result_access::bad_result_access( - const std::string& what_arg, - E2&& error -) : logic_error{what_arg}, - m_error(detail::forward(error)) -{ - -} - -//----------------------------------------------------------------------------- -// Observers -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::bad_result_access::error() - & noexcept -> E& -{ - return m_error; -} - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::bad_result_access::error() - && noexcept -> E&& -{ - return static_cast(m_error); -} - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::bad_result_access::error() - const & noexcept -> const E& -{ - return m_error; -} - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::bad_result_access::error() - const && noexcept -> const E&& -{ - return static_cast(m_error); -} - -#endif - -//============================================================================= -// class : failure -//============================================================================= - -//----------------------------------------------------------------------------- -// Constructors -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::failure::failure(in_place_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value) - : m_failure(detail::forward(args)...) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::failure::failure( - in_place_t, - std::initializer_list ilist, - Args&&...args -) noexcept(std::is_nothrow_constructible, Args...>::value) - : m_failure(ilist, detail::forward(args)...) -{ - -} - -template -template ::value,int>::type> -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::failure::failure(E2&& error) - noexcept(std::is_nothrow_constructible::value) - : m_failure(detail::forward(error)) -{ - -} - -template -template ::value,int>::type> -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::failure::failure(E2&& error) - noexcept(std::is_nothrow_constructible::value) - : m_failure(detail::forward(error)) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::failure::failure(const failure& other) - noexcept(std::is_nothrow_constructible::value) - : m_failure(other.error()) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::failure::failure(failure&& other) - noexcept(std::is_nothrow_constructible::value) - : m_failure(static_cast&&>(other).error()) -{ - -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::failure::operator=(E2&& error) - noexcept( - std::is_nothrow_assignable::value || - std::is_lvalue_reference::value - ) -> failure& -{ - m_failure = detail::forward(error); - - return (*this); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::failure::operator=(const failure& other) - noexcept(std::is_nothrow_assignable::value) - -> failure& -{ - m_failure = other.error(); - - return (*this); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::failure::operator=(failure&& other) - noexcept(std::is_nothrow_assignable::value) - -> failure& -{ - m_failure = static_cast&&>(other).error(); - - return (*this); -} - -//----------------------------------------------------------------------------- -// Observers -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::failure::error() - & noexcept -> typename std::add_lvalue_reference::type -{ - return m_failure; -} - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::failure::error() - && noexcept -> typename std::add_rvalue_reference::type -{ - using reference = typename std::add_rvalue_reference::type; - - return static_cast(m_failure); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::failure::error() - const & noexcept - -> typename std::add_lvalue_reference::type>::type -{ - return m_failure; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::failure::error() - const && noexcept - -> typename std::add_rvalue_reference::type>::type -{ - using reference = typename std::add_rvalue_reference::type>::type; - - return static_cast(m_failure); -} - -//============================================================================= -// non-member functions : class : failure -//============================================================================= - -//----------------------------------------------------------------------------- -// Comparison -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator==(const failure& lhs, const failure& rhs) - noexcept -> bool -{ - return lhs.error() == rhs.error(); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator!=(const failure& lhs, const failure& rhs) - noexcept -> bool -{ - return lhs.error() != rhs.error(); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<(const failure& lhs, const failure& rhs) - noexcept -> bool -{ - return lhs.error() < rhs.error(); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>(const failure& lhs, const failure& rhs) - noexcept -> bool -{ - return lhs.error() > rhs.error(); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<=(const failure& lhs, const failure& rhs) - noexcept -> bool -{ - return lhs.error() <= rhs.error(); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>=(const failure& lhs, const failure& rhs) - noexcept -> bool -{ - return lhs.error() >= rhs.error(); -} - -//----------------------------------------------------------------------------- -// Utilities -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::fail(E&& e) - noexcept(std::is_nothrow_constructible::type,E>::value) - -> failure::type> -{ - using result_type = failure::type>; - - return result_type( - detail::forward(e) - ); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::fail(std::reference_wrapper e) - noexcept -> failure -{ - using result_type = failure; - - return result_type{e.get()}; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::fail(Args&&...args) - noexcept(std::is_nothrow_constructible::value) - -> failure -{ - return failure(in_place, detail::forward(args)...); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::fail(std::initializer_list ilist, Args&&...args) - noexcept(std::is_nothrow_constructible, Args...>::value) - -> failure -{ - return failure(in_place, ilist, detail::forward(args)...); -} - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::swap(failure& lhs, failure& rhs) -#if __cplusplus >= 201703L - noexcept(std::is_nothrow_swappable::value) -> void -#else - noexcept(std::is_nothrow_move_constructible::value) - -> void -#endif -{ - using std::swap; - - swap(lhs.error(), rhs.error()); -} - -//============================================================================= -// class : detail::result_union -//============================================================================= - -//----------------------------------------------------------------------------- -// Constructors / Assignment -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::detail::result_union - ::result_union(unit) - noexcept - : m_empty{} -{ - // m_has_value intentionally not set -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::detail::result_union - ::result_union(in_place_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value) - : m_value(detail::forward(args)...), - m_has_value{true} -{ -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::detail::result_union - ::result_union(in_place_error_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value) - : m_error(detail::forward(args)...), - m_has_value{false} -{ -} - -//----------------------------------------------------------------------------- -// Modifiers -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_union::destroy() - const noexcept -> void -{ - // do nothing -} - -//============================================================================= -// class : detail::result_union -//============================================================================= - -//----------------------------------------------------------------------------- -// Constructors / Destructor / Assignment -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::detail::result_union - ::result_union(unit) - noexcept - : m_empty{} -{ - // m_has_value intentionally not set -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::detail::result_union - ::result_union(in_place_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value) - : m_value(detail::forward(args)...), - m_has_value{true} -{ -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::detail::result_union - ::result_union(in_place_error_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value) - : m_error(detail::forward(args)...), - m_has_value{false} -{ -} - -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::detail::result_union - ::~result_union() - noexcept(std::is_nothrow_destructible::value && std::is_nothrow_destructible::value) -{ - destroy(); -} - -//----------------------------------------------------------------------------- -// Modifiers -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_union::destroy() - -> void -{ - if (m_has_value) { - m_value.~underlying_value_type(); - } else { - m_error.~underlying_error_type(); - } -} - -//============================================================================= -// class : result_construct_base -//============================================================================= - -//----------------------------------------------------------------------------- -// Constructors / Assignment -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::detail::result_construct_base::result_construct_base(unit) - noexcept - : storage{unit{}} -{ -} - -template -template -inline constexpr RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::detail::result_construct_base::result_construct_base( - in_place_t, - Args&&...args -) noexcept(std::is_nothrow_constructible::value) - : storage{in_place, detail::forward(args)...} -{ -} - -template -template -inline constexpr RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::detail::result_construct_base::result_construct_base( - in_place_error_t, - Args&&...args -) noexcept(std::is_nothrow_constructible::value) - : storage(in_place_error, detail::forward(args)...) -{ -} - -//----------------------------------------------------------------------------- -// Construction / Assignment -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::construct_value(Args&&...args) - noexcept(std::is_nothrow_constructible::value) - -> void -{ - using value_type = typename storage_type::underlying_value_type; - - auto* p = static_cast(std::addressof(storage.m_value)); - new (p) value_type(detail::forward(args)...); - storage.m_has_value = true; -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::construct_error(Args&&...args) - noexcept(std::is_nothrow_constructible::value) - -> void -{ - using error_type = typename storage_type::underlying_error_type; - - auto* p = static_cast(std::addressof(storage.m_error)); - new (p) error_type(detail::forward(args)...); - storage.m_has_value = false; -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::construct_error_from_result( - Result&& other -) -> void -{ - if (other.storage.m_has_value) { - construct_value(); - } else { - construct_error(detail::forward(other).storage.m_error); - } -} - - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::construct_from_result( - Result&& other -) -> void -{ - if (other.storage.m_has_value) { - construct_value_from_result_impl( - std::is_lvalue_reference{}, - detail::forward(other).storage.m_value - ); - } else { - construct_error(detail::forward(other).storage.m_error); - } -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::assign_value(Value&& value) - noexcept(std::is_nothrow_assignable::value) - -> void -{ - if (!storage.m_has_value) { - storage.destroy(); - construct_value(detail::forward(value)); - } else { - storage.m_value = detail::forward(value); - } -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::assign_error(Error&& error) - noexcept(std::is_nothrow_assignable::value) - -> void -{ - if (storage.m_has_value) { - storage.destroy(); - construct_error(detail::forward(error)); - } else { - storage.m_error = detail::forward(error); - } -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::assign_from_result(Result&& other) - -> void -{ - if (other.storage.m_has_value != storage.m_has_value) { - storage.destroy(); - construct_from_result(detail::forward(other)); - } else if (storage.m_has_value) { - assign_value_from_result_impl( - std::is_lvalue_reference{}, - detail::forward(other) - ); - } else { - storage.m_error = detail::forward(other).storage.m_error; - } -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::construct_value_from_result_impl( - std::true_type, - ReferenceWrapper&& reference -) noexcept -> void -{ - using value_type = typename storage_type::underlying_value_type; - - auto* p = static_cast(std::addressof(storage.m_value)); - new (p) value_type(reference.get()); - storage.m_has_value = true; -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::construct_value_from_result_impl( - std::false_type, - Value&& value -) noexcept(std::is_nothrow_constructible::value) -> void -{ - using value_type = typename storage_type::underlying_value_type; - - auto* p = static_cast(std::addressof(storage.m_value)); - new (p) value_type(detail::forward(value)); - storage.m_has_value = true; -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::assign_value_from_result_impl( - std::true_type, - Result&& other -) -> void -{ - // T is a reference; unwrap it - storage.m_value = other.storage.m_value.get(); -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_construct_base::assign_value_from_result_impl( - std::false_type, - Result&& other -) -> void -{ - storage.m_value = detail::forward(other).storage.m_value; -} - - -//============================================================================= -// class : result_trivial_copy_ctor_base_impl -//============================================================================= - -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::detail::result_trivial_copy_ctor_base_impl - ::result_trivial_copy_ctor_base_impl(const result_trivial_copy_ctor_base_impl& other) - noexcept(std::is_nothrow_copy_constructible::value && - std::is_nothrow_copy_constructible::value) - : base_type(unit{}) -{ - using ctor_base = result_construct_base; - - ctor_base::construct_from_result(static_cast(other)); -} - -//============================================================================= -// class : result_trivial_move_ctor_base -//============================================================================= - -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::detail::result_trivial_move_ctor_base_impl - ::result_trivial_move_ctor_base_impl(result_trivial_move_ctor_base_impl&& other) - noexcept(std::is_nothrow_move_constructible::value && - std::is_nothrow_move_constructible::value) - : base_type(unit{}) -{ - using ctor_base = result_construct_base; - - ctor_base::construct_from_result(static_cast(other)); -} - -//============================================================================= -// class : result_copy_assign_base -//============================================================================= - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_trivial_copy_assign_base_impl - ::operator=(const result_trivial_copy_assign_base_impl& other) - noexcept(std::is_nothrow_copy_constructible::value && - std::is_nothrow_copy_constructible::value && - std::is_nothrow_copy_assignable::value && - std::is_nothrow_copy_assignable::value) - -> result_trivial_copy_assign_base_impl& -{ - using ctor_base = result_construct_base; - - ctor_base::assign_from_result(static_cast(other)); - return (*this); -} - -//========================================================================= -// class : result_move_assign_base -//========================================================================= - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::result_trivial_move_assign_base_impl - ::operator=(result_trivial_move_assign_base_impl&& other) - noexcept(std::is_nothrow_move_constructible::value && - std::is_nothrow_move_constructible::value && - std::is_nothrow_move_assignable::value && - std::is_nothrow_move_assignable::value) - -> result_trivial_move_assign_base_impl& -{ - using ctor_base = result_construct_base; - - ctor_base::assign_from_result(static_cast(other)); - return (*this); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::detail::result_error_extractor::get(const result& exp) - noexcept -> const E& -{ - return exp.m_storage.storage.m_error; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::detail::result_error_extractor::get(result& exp) - noexcept -> E& -{ - return exp.m_storage.storage.m_error; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::detail::extract_error(const result& exp) noexcept -> const E& -{ - return result_error_extractor::get(exp); -} - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::throw_bad_result_access(E&& error) -> void -{ -#if defined(RESULT_DISABLE_EXCEPTIONS) - std::fprintf( - stderr, - "error attempting to access value from result containing error\n" - ); - std::abort(); -#else - using exception_type = bad_result_access< - typename std::remove_const< - typename std::remove_reference::type - >::type - >; - - throw exception_type{ - detail::forward(error) - }; -#endif -} - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::detail::throw_bad_result_access_message( - String&& message, - E&& error -) -> void -{ -#if defined(RESULT_DISABLE_EXCEPTIONS) - const auto message_string = std::string{ - detail::forward(message) - }; - std::fprintf(stderr, "%s\n", message_string.c_str()); - std::abort(); -#else - using exception_type = bad_result_access< - typename std::remove_const< - typename std::remove_reference::type - >::type - >; - - throw exception_type{ - detail::forward(message), - detail::forward(error) - }; -#endif -} - -//============================================================================= -// class : result -//============================================================================= - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result() - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place) -{ - -} - -template -template ::value,int>::type> -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::result::result(const result& other) - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_constructible::value) - : m_storage(detail::unit{}) -{ - m_storage.construct_from_result( - static_cast&>(other).m_storage - ); -} - -template -template ::value,int>::type> -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::result::result(const result& other) - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_constructible::value) - : m_storage(detail::unit{}) -{ - m_storage.construct_from_result( - static_cast&>(other).m_storage - ); -} - -template -template ::value,int>::type> -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::result::result(result&& other) - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_constructible::value) - : m_storage(detail::unit{}) -{ - m_storage.construct_from_result( - static_cast&&>(other).m_storage - ); -} - -template -template ::value,int>::type> -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::result::result(result&& other) - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_constructible::value) - : m_storage(detail::unit{}) -{ - m_storage.construct_from_result( - static_cast&&>(other).m_storage - ); -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(in_place_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place, detail::forward(args)...) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result( - in_place_t, - std::initializer_list ilist, - Args&&...args -) noexcept(std::is_nothrow_constructible, Args...>::value) - : m_storage(in_place, ilist, detail::forward(args)...) -{ - -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(in_place_error_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place_error, detail::forward(args)...) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result( - in_place_error_t, - std::initializer_list ilist, - Args&&...args -) noexcept(std::is_nothrow_constructible, Args...>::value) - : m_storage(in_place_error, ilist, detail::forward(args)...) -{ - -} - -//------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(const failure& e) - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place_error, e.error()) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(failure&& e) - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place_error, static_cast(e.error())) -{ - -} - -template -template ::value,int>::type> -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(U&& value) - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place, detail::forward(value)) -{ - -} - -template -template ::value,int>::type> -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(U&& value) - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place, detail::forward(value)) -{ - -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::result::operator=(const result& other) - noexcept(std::is_nothrow_assignable::value && - std::is_nothrow_assignable::value) - -> result& -{ - m_storage.assign_from_result( - static_cast&>(other).m_storage - ); - return (*this); -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::result::operator=(result&& other) - noexcept(std::is_nothrow_assignable::value && - std::is_nothrow_assignable::value) - -> result& -{ - m_storage.assign_from_result( - static_cast&&>(other).m_storage - ); - return (*this); -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::result::operator=(U&& value) - noexcept(std::is_nothrow_assignable::value) - -> result& -{ - m_storage.assign_value(detail::forward(value)); - return (*this); -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::result::operator=(const failure& other) - noexcept(std::is_nothrow_assignable::value) - -> result& -{ - m_storage.assign_error(other.error()); - return (*this); -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::result::operator=(failure&& other) - noexcept(std::is_nothrow_assignable::value) - -> result& -{ - m_storage.assign_error(static_cast(other.error())); - return (*this); -} - -//----------------------------------------------------------------------------- -// Observers -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::operator->() - noexcept -> typename std::remove_reference::type* -{ - // Prior to C++17, std::addressof was not `constexpr`. - // Since `addressof` fixes a relatively obscure issue where users define a - // custom `operator&`, the pre-C++17 implementation has been defined to be - // `&(**this)` so that it may exist in constexpr contexts. -#if __cplusplus >= 201703L - return std::addressof(**this); -#else - return &(**this); -#endif -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::operator->() - const noexcept -> typename std::remove_reference::type>::type* -{ -#if __cplusplus >= 201703L - return std::addressof(**this); -#else - return &(**this); -#endif -} - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::operator*() - & noexcept -> typename std::add_lvalue_reference::type -{ - return m_storage.storage.m_value; -} - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::operator*() - && noexcept -> typename std::add_rvalue_reference::type -{ - using reference = typename std::add_rvalue_reference::type; - - return static_cast(m_storage.storage.m_value); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::operator*() - const& noexcept -> typename std::add_lvalue_reference::type>::type -{ - return m_storage.storage.m_value; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::operator*() - const&& noexcept -> typename std::add_rvalue_reference::type>::type -{ - using reference = typename std::add_rvalue_reference::type>::type; - - return static_cast(m_storage.storage.m_value); -} - -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::operator bool() - const noexcept -{ - return m_storage.storage.m_has_value; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::has_value() - const noexcept -> bool -{ - return m_storage.storage.m_has_value; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::has_error() - const noexcept -> bool -{ - return !m_storage.storage.m_has_value; -} - -//----------------------------------------------------------------------------- - -// The `has_value()` expression below is incorrectly identified as an unused -// value, which results in the `-Wunused-value` warning. This is suppressed -// to prevent false-positives -#if defined(__clang__) -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wunused-value" -#elif defined(__GNUC__) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wunused-value" -#elif defined(_MSC_VER) -// Older MSVC versions incorrectly warn on returning a reference to a temporary. -// This has been suppressed -# pragma warning(push) -# pragma warning(disable:4172) -#endif - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::value() - & -> typename std::add_lvalue_reference::type -{ - return (has_value() || - (detail::throw_bad_result_access(m_storage.storage.m_error), false), - m_storage.storage.m_value - ); -} - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::value() - && -> typename std::add_rvalue_reference::type -{ - using reference = typename std::add_rvalue_reference::type; - - return (has_value() || - (detail::throw_bad_result_access(static_cast(m_storage.storage.m_error)), true), - static_cast(m_storage.storage.m_value) - ); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::value() - const & -> typename std::add_lvalue_reference::type>::type -{ - return (has_value() || - (detail::throw_bad_result_access(m_storage.storage.m_error), true), - m_storage.storage.m_value - ); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::value() - const && -> typename std::add_rvalue_reference::type>::type -{ - using reference = typename std::add_rvalue_reference::type>::type; - - return (has_value() || - (detail::throw_bad_result_access(static_cast(m_storage.storage.m_error)), true), - (static_cast(m_storage.storage.m_value)) - ); -} - -#if defined(__clang__) -# pragma clang diagnostic pop -#elif defined(__GNUC__) -# pragma GCC diagnostic pop -#elif defined(_MSC_VER) -# pragma warning(pop) -#endif - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::error() const & - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_copy_constructible::value) -> E -{ - static_assert( - std::is_default_constructible::value, - "E must be default-constructible if 'error()' checks are used. " - "This is to allow for default-constructed error states to represent the " - "'good' state" - ); - - return m_storage.storage.m_has_value - ? E{} - : m_storage.storage.m_error; -} - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::error() && - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_move_constructible::value) -> E -{ - static_assert( - std::is_default_constructible::value, - "E must be default-constructible if 'error()' checks are used. " - "This is to allow for default-constructed error states to represent the " - "'good' state" - ); - - return m_storage.storage.m_has_value - ? E{} - : static_cast(m_storage.storage.m_error); -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::expect(String&& message) - & -> typename std::add_lvalue_reference::type -{ - return (has_value() || - (detail::throw_bad_result_access_message( - detail::forward(message), - m_storage.storage.m_error - ), true), - m_storage.storage.m_value - ); -} - -template -template -inline RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::expect(String&& message) - && -> typename std::add_rvalue_reference::type -{ - using reference = typename std::add_rvalue_reference::type; - - return (has_value() || - (detail::throw_bad_result_access_message( - detail::forward(message), - static_cast(m_storage.storage.m_error) - ), true), - static_cast(m_storage.storage.m_value) - ); -} - -template -template -inline RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::expect(String&& message) - const & -> typename std::add_lvalue_reference::type>::type -{ - return (has_value() || - (detail::throw_bad_result_access_message( - detail::forward(message), - m_storage.storage.m_error - ), true), - m_storage.storage.m_value - ); -} - -template -template -inline RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::expect(String&& message) - const && -> typename std::add_rvalue_reference::type>::type -{ - using reference = typename std::add_rvalue_reference::type>::type; - - return (has_value() || - (detail::throw_bad_result_access_message( - detail::forward(message), - static_cast(m_storage.storage.m_error) - ), true), - (static_cast(m_storage.storage.m_value)) - ); -} - -//----------------------------------------------------------------------------- -// Monadic Functionalities -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::value_or(U&& default_value) - const& -> typename std::remove_reference::type -{ - return m_storage.storage.m_has_value - ? m_storage.storage.m_value - : detail::forward(default_value); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::value_or(U&& default_value) - && -> typename std::remove_reference::type -{ - return m_storage.storage.m_has_value - ? static_cast(**this) - : detail::forward(default_value); -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::error_or(U&& default_error) - const& -> error_type -{ - return m_storage.storage.m_has_value - ? detail::forward(default_error) - : m_storage.storage.m_error; -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::error_or(U&& default_error) - && -> error_type -{ - return m_storage.storage.m_has_value - ? detail::forward(default_error) - : static_cast(m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::and_then(U&& value) - const -> result::type,E> -{ - return map([&value](const T&){ - return detail::forward(value); - }); -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::flat_map(Fn&& fn) - const & -> detail::invoke_result_t -{ - using result_type = detail::invoke_result_t; - - static_assert( - is_result::value, - "flat_map must return a result type or the program is ill-formed" - ); - - return has_value() - ? detail::invoke(detail::forward(fn), m_storage.storage.m_value) - : result_type(in_place_error, m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::flat_map(Fn&& fn) - && -> detail::invoke_result_t -{ - using result_type = detail::invoke_result_t; - - static_assert( - is_result::value, - "flat_map must return a result type or the program is ill-formed" - ); - - return has_value() - ? detail::invoke(detail::forward(fn), static_cast(m_storage.storage.m_value)) - : result_type(in_place_error, static_cast(m_storage.storage.m_error)); -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::map(Fn&& fn) - const & -> result,E> -{ - using result_type = detail::invoke_result_t; - - return map_impl(std::is_void{}, detail::forward(fn)); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::map(Fn&& fn) - && -> result,E> -{ - using result_type = detail::invoke_result_t; - - return static_cast&&>(*this).map_impl( - std::is_void{}, - detail::forward(fn) - ); -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::map_error(Fn&& fn) - const & -> result> -{ - using result_type = result>; - - return has_error() - ? result_type(in_place_error, detail::invoke( - detail::forward(fn), m_storage.storage.m_error - )) - : result_type(in_place, m_storage.storage.m_value); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::map_error(Fn&& fn) - && -> result> -{ - using result_type = result>; - - return has_error() - ? result_type(in_place_error, detail::invoke( - detail::forward(fn), static_cast(m_storage.storage.m_error) - )) - : result_type(static_cast(m_storage.storage.m_value)); -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::flat_map_error(Fn&& fn) - const & -> detail::invoke_result_t -{ - using result_type = detail::invoke_result_t; - - static_assert( - is_result::value, - "flat_map_error must return a result type or the program is ill-formed" - ); - - return has_value() - ? result_type(in_place, m_storage.storage.m_value) - : detail::invoke(detail::forward(fn), m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::flat_map_error(Fn&& fn) - && -> detail::invoke_result_t -{ - using result_type = detail::invoke_result_t; - - static_assert( - is_result::value, - "flat_map_error must return a result type or the program is ill-formed" - ); - - return has_value() - ? result_type(in_place, static_cast(m_storage.storage.m_value)) - : detail::invoke(detail::forward(fn), static_cast(m_storage.storage.m_error)); -} - -//----------------------------------------------------------------------------- -// Private Monadic Functions -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::map_impl(std::true_type, Fn&& fn) - const & -> result -{ - using result_type = result; - - return has_value() - ? (detail::invoke(detail::forward(fn), m_storage.storage.m_value), result_type{}) - : result_type(in_place_error, m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::map_impl(std::false_type, Fn&& fn) - const & -> result,E> -{ - using invoke_result_type = detail::invoke_result_t; - using result_type = result; - - return has_value() - ? result_type(in_place, detail::invoke( - detail::forward(fn), m_storage.storage.m_value - )) - : result_type(in_place_error, m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::map_impl(std::true_type, Fn&& fn) - && -> result -{ - using result_type = result; - - return has_value() - ? (detail::invoke( - detail::forward(fn), static_cast(m_storage.storage.m_value) - ), result_type{}) - : result_type(in_place_error, static_cast(m_storage.storage.m_error)); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::map_impl(std::false_type, Fn&& fn) - && -> result,E> -{ - using invoke_result_type = detail::invoke_result_t; - using result_type = result; - - return has_value() - ? result_type(in_place, detail::invoke( - detail::forward(fn), static_cast(m_storage.storage.m_value) - )) - : result_type(in_place_error, static_cast(m_storage.storage.m_error)); -} - -//============================================================================= -// class : result -//============================================================================= - -//----------------------------------------------------------------------------- -// Constructor / Assignment -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result() - noexcept - : m_storage(in_place) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::result::result(const result& other) - noexcept(std::is_nothrow_constructible::value) - : m_storage(detail::unit{}) -{ - m_storage.construct_error_from_result( - static_cast&>(other).m_storage - ); -} - -template -template -inline RESULT_INLINE_VISIBILITY -RESULT_NS_IMPL::result::result(result&& other) - noexcept(std::is_nothrow_constructible::value) - : m_storage(detail::unit{}) -{ - m_storage.construct_error_from_result( - static_cast&&>(other).m_storage - ); -} - - -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(in_place_t) - noexcept - : m_storage(in_place) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(in_place_error_t, Args&&...args) - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place_error, detail::forward(args)...) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(in_place_error_t, - std::initializer_list ilist, - Args&&...args) - noexcept(std::is_nothrow_constructible, Args...>::value) - : m_storage(in_place_error, ilist, detail::forward(args)...) -{ - -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(const failure& e) - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place_error, e.error()) -{ - -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::result(failure&& e) - noexcept(std::is_nothrow_constructible::value) - : m_storage(in_place_error, static_cast(e.error())) -{ - -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::result::operator=(const result& other) - noexcept(std::is_nothrow_assignable::value) - -> result& -{ - m_storage.assign_from_result(other.m_storage); - return (*this); -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::result::operator=(result&& other) - noexcept(std::is_nothrow_assignable::value) - -> result& -{ - m_storage.assign_from_result(static_cast&&>(other).m_storage); - return (*this); -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::result::operator=(const failure& other) - noexcept(std::is_nothrow_assignable::value) - -> result& -{ - m_storage.assign_error(other.error()); - return (*this); -} - -template -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::result::operator=(failure&& other) - noexcept(std::is_nothrow_assignable::value) - -> result& -{ - m_storage.assign_error(static_cast(other.error())); - return (*this); -} - -//----------------------------------------------------------------------------- -// Observers -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -RESULT_NS_IMPL::result::operator bool() - const noexcept -{ - return has_value(); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::has_value() - const noexcept -> bool -{ - return m_storage.storage.m_has_value; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::has_error() - const noexcept -> bool -{ - return !has_value(); -} - -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::value() - const & -> void -{ - static_cast( - has_value() || - (detail::throw_bad_result_access(m_storage.storage.m_error), true) - ); -} - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::value() - && -> void -{ - static_cast( - has_value() || - (detail::throw_bad_result_access(static_cast(m_storage.storage.m_error)), true) - ); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::error() - const & - noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_copy_constructible::value) -> E -{ - return has_value() ? E{} : m_storage.storage.m_error; -} - -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::error() - && noexcept(std::is_nothrow_constructible::value && - std::is_nothrow_copy_constructible::value) -> E -{ - return has_value() ? E{} : static_cast(m_storage.storage.m_error); -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::expect(String&& message) - const & -> void -{ - if (has_error()) { - detail::throw_bad_result_access_message( - detail::forward(message), - m_storage.storage.m_error - ); - } -} - -template -template -inline RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::expect(String&& message) - && -> void -{ - if (has_error()) { - detail::throw_bad_result_access_message( - detail::forward(message), - static_cast(m_storage.storage.m_error) - ); - } -} - -//----------------------------------------------------------------------------- -// Monadic Functionalities -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::error_or(U&& default_error) - const & -> error_type -{ - return has_value() - ? detail::forward(default_error) - : m_storage.storage.m_error; -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::error_or(U&& default_error) - && -> error_type -{ - return has_value() - ? detail::forward(default_error) - : static_cast(m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::and_then(U&& value) - const -> result::type,E> -{ - return map([&value]{ - return detail::forward(value); - }); -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::flat_map(Fn&& fn) - const & -> detail::invoke_result_t -{ - using result_type = detail::invoke_result_t; - - static_assert( - is_result::value, - "flat_map must return a result type or the program is ill-formed" - ); - - return has_value() - ? detail::invoke(detail::forward(fn)) - : result_type(in_place_error, m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::flat_map(Fn&& fn) - && -> detail::invoke_result_t -{ - using result_type = detail::invoke_result_t; - - static_assert( - is_result::value, - "flat_map must return a result type or the program is ill-formed" - ); - - return has_value() - ? detail::invoke(detail::forward(fn)) - : result_type(in_place_error, static_cast(m_storage.storage.m_error)); -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::map(Fn&& fn) - const & -> result,E> -{ - using result_type = detail::invoke_result_t; - - return map_impl(std::is_void{}, detail::forward(fn)); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::map(Fn&& fn) - && -> result,E> -{ - using result_type = detail::invoke_result_t; - - return static_cast&&>(*this).map_impl( - std::is_void{}, - detail::forward(fn) - ); -} - -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::map_error(Fn&& fn) - const & -> result> -{ - using result_type = result>; - - return has_value() - ? result_type{} - : result_type(in_place_error, detail::invoke( - detail::forward(fn), m_storage.storage.m_error - )); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::map_error(Fn&& fn) - && -> result> -{ - using result_type = result>; - - return has_value() - ? result_type{} - : result_type(in_place_error, - detail::invoke(detail::forward(fn), static_cast(m_storage.storage.m_error) - )); -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::flat_map_error(Fn&& fn) - const & -> detail::invoke_result_t -{ - using result_type = detail::invoke_result_t; - - static_assert( - is_result::value, - "flat_map_error must return a result type or the program is ill-formed" - ); - static_assert( - std::is_default_constructible::value, - "flat_map_error for result requires the new T type to be default-" - "constructible" - ); - - return has_value() - ? result_type{} - : detail::invoke(detail::forward(fn), m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::flat_map_error(Fn&& fn) - && -> detail::invoke_result_t -{ - using result_type = detail::invoke_result_t; - - static_assert( - is_result::value, - "flat_map_error must return a result type or the program is ill-formed" - ); - static_assert( - std::is_default_constructible::value, - "flat_map_error for result requires the new T type to be default-" - "constructible" - ); - - return has_value() - ? result_type{} - : detail::invoke(detail::forward(fn), static_cast(m_storage.storage.m_error)); -} - -//----------------------------------------------------------------------------- -// Private Monadic Functions -//----------------------------------------------------------------------------- - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::map_impl(std::true_type, Fn&& fn) - const & -> result -{ - using result_type = result; - - return has_value() - ? (detail::invoke(detail::forward(fn)), result_type{}) - : result_type(in_place_error, m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::result::map_impl(std::false_type, Fn&& fn) - const & -> result,E> -{ - using invoke_result_type = detail::invoke_result_t; - using result_type = result; - - return has_value() - ? result_type(in_place, detail::invoke(detail::forward(fn))) - : result_type(in_place_error, m_storage.storage.m_error); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::map_impl(std::true_type, Fn&& fn) - && -> result -{ - using result_type = result; - - return has_value() - ? (detail::invoke(detail::forward(fn)), result_type{}) - : result_type(in_place_error, static_cast(m_storage.storage.m_error)); -} - -template -template -inline RESULT_INLINE_VISIBILITY RESULT_CPP14_CONSTEXPR -auto RESULT_NS_IMPL::result::map_impl(std::false_type, Fn&& fn) - && -> result,E> -{ - using invoke_result_type = detail::invoke_result_t; - using result_type = result; - - return has_value() - ? result_type(in_place, detail::invoke(detail::forward(fn))) - : result_type(in_place_error, static_cast(m_storage.storage.m_error)); -} - -//============================================================================= -// non-member functions : class : result -//============================================================================= - -//----------------------------------------------------------------------------- -// Comparison -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator==(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return (lhs.has_value() == rhs.has_value()) - ? ( - lhs.has_value() - ? *lhs == *rhs - : detail::extract_error(lhs) == detail::extract_error(rhs) - ) - : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator!=(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return (lhs.has_value() == rhs.has_value()) - ? ( - lhs.has_value() - ? *lhs != *rhs - : detail::extract_error(lhs) != detail::extract_error(rhs) - ) - : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>=(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return (lhs.has_value() == rhs.has_value()) - ? ( - lhs.has_value() - ? *lhs >= *rhs - : detail::extract_error(lhs) >= detail::extract_error(rhs) - ) - : static_cast(static_cast(lhs)) >= static_cast(static_cast(rhs)); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<=(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return (lhs.has_value() == rhs.has_value()) - ? ( - lhs.has_value() - ? *lhs <= *rhs - : detail::extract_error(lhs) <= detail::extract_error(rhs) - ) - : static_cast(static_cast(lhs)) <= static_cast(static_cast(rhs)); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return (lhs.has_value() == rhs.has_value()) - ? ( - lhs.has_value() - ? *lhs > *rhs - : detail::extract_error(lhs) > detail::extract_error(rhs) - ) - : static_cast(static_cast(lhs)) > static_cast(static_cast(rhs)); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return (lhs.has_value() == rhs.has_value()) - ? ( - lhs.has_value() - ? *lhs < *rhs - : detail::extract_error(lhs) < detail::extract_error(rhs) - ) - : static_cast(static_cast(lhs)) < static_cast(static_cast(rhs)); -} - - -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator==(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return lhs.has_value() == rhs.has_value() - ? ( - lhs.has_value() - ? true - : detail::extract_error(lhs) == detail::extract_error(rhs) - ) - : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator!=(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return lhs.has_value() == rhs.has_value() - ? ( - lhs.has_value() - ? false - : detail::extract_error(lhs) != detail::extract_error(rhs) - ) - : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>=(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return lhs.has_value() == rhs.has_value() - ? ( - lhs.has_value() - ? true - : detail::extract_error(lhs) >= detail::extract_error(rhs) - ) - : static_cast(static_cast(lhs)) >= static_cast(static_cast(rhs)); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<=(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return lhs.has_value() == rhs.has_value() - ? ( - lhs.has_value() - ? true - : detail::extract_error(lhs) <= detail::extract_error(rhs) - ) - : static_cast(static_cast(lhs)) <= static_cast(static_cast(rhs)); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return lhs.has_value() == rhs.has_value() - ? ( - lhs.has_value() - ? false - : detail::extract_error(lhs) > detail::extract_error(rhs) - ) - : static_cast(static_cast(lhs)) > static_cast(static_cast(rhs)); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<(const result& lhs, - const result& rhs) - noexcept -> bool -{ - return lhs.has_value() == rhs.has_value() - ? ( - lhs.has_value() - ? false - : detail::extract_error(lhs) < detail::extract_error(rhs) - ) - : static_cast(static_cast(lhs)) < static_cast(static_cast(rhs)); -} - - -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator==(const result& exp, const U& value) - noexcept -> bool -{ - return (exp.has_value() && *exp == value); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator==(const T& value, const result& exp) - noexcept -> bool -{ - return (exp.has_value() && *exp == value); -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator!=(const result& exp, const U& value) - noexcept -> bool -{ - return exp.has_value() ? *exp != value : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator!=(const T& value, const result& exp) - noexcept -> bool -{ - return exp.has_value() ? value != *exp : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<=(const result& exp, const U& value) - noexcept -> bool -{ - return exp.has_value() ? *exp <= value : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<=(const T& value, const result& exp) - noexcept -> bool -{ - return exp.has_value() ? value <= *exp : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>=(const result& exp, const U& value) - noexcept -> bool -{ - return exp.has_value() ? *exp >= value : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>=(const T& value, const result& exp) - noexcept -> bool -{ - return exp.has_value() ? value >= *exp : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<(const result& exp, const U& value) - noexcept -> bool -{ - return exp.has_value() ? *exp < value : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<(const T& value, const result& exp) - noexcept -> bool -{ - return exp.has_value() ? value < *exp : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>(const result& exp, const U& value) - noexcept -> bool -{ - return exp.has_value() ? *exp > value : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>(const T& value, const result& exp) - noexcept -> bool -{ - return exp.has_value() ? value > *exp : true; -} - -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator==(const result& exp, const failure& error) - noexcept -> bool -{ - return exp.has_error() ? detail::extract_error(exp) == error.error() : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator==(const failure& error, const result& exp) - noexcept -> bool -{ - return exp.has_error() ? error.error() == detail::extract_error(exp) : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator!=(const result& exp, const failure& error) - noexcept -> bool -{ - return exp.has_error() ? detail::extract_error(exp) != error.error() : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator!=(const failure& error, const result& exp) - noexcept -> bool -{ - return exp.has_error() ? error.error() != detail::extract_error(exp) : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<=(const result& exp, const failure& error) - noexcept -> bool -{ - return exp.has_error() ? detail::extract_error(exp) <= error.error() : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<=(const failure& error, const result& exp) - noexcept -> bool -{ - return exp.has_error() ? error.error() <= detail::extract_error(exp) : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>=(const result& exp, const failure& error) - noexcept -> bool -{ - return exp.has_error() ? detail::extract_error(exp) >= error.error() : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>=(const failure& error, const result& exp) - noexcept -> bool -{ - return exp.has_error() ? error.error() >= detail::extract_error(exp) : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<(const result& exp, const failure& error) - noexcept -> bool -{ - return exp.has_error() ? detail::extract_error(exp) < error.error() : true; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator<(const failure& error, const result& exp) - noexcept -> bool -{ - return exp.has_error() ? error.error() < detail::extract_error(exp) : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>(const result& exp, const failure& error) - noexcept -> bool -{ - return exp.has_error() ? detail::extract_error(exp) > error.error() : false; -} - -template -inline RESULT_INLINE_VISIBILITY constexpr -auto RESULT_NS_IMPL::operator>(const failure& error, const result& exp) - noexcept -> bool -{ - return exp.has_error() ? error.error() > detail::extract_error(exp) : true; -} - -//----------------------------------------------------------------------------- -// Utilities -//----------------------------------------------------------------------------- - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::swap(result& lhs, result& rhs) -#if __cplusplus >= 201703L - noexcept(std::is_nothrow_move_constructible>::value && - std::is_nothrow_move_assignable>::value && - std::is_nothrow_swappable::value && - std::is_nothrow_swappable::value) -#else - noexcept(std::is_nothrow_move_constructible>::value && - std::is_nothrow_move_assignable>::value) -#endif - -> void -{ - using std::swap; - - if (lhs.has_value() == rhs.has_value()) { - if (lhs.has_value()) { - swap(*lhs, *rhs); - } else { - auto& lhs_error = detail::result_error_extractor::get(lhs); - auto& rhs_error = detail::result_error_extractor::get(rhs); - - swap(lhs_error, rhs_error); - } - // If both `result`s contain values, do nothing - } else { - auto temp = static_cast&&>(lhs); - lhs = static_cast&&>(rhs); - rhs = static_cast&&>(temp); - } -} - -template -inline RESULT_INLINE_VISIBILITY -auto RESULT_NS_IMPL::swap(result& lhs, result& rhs) -#if __cplusplus >= 201703L - noexcept(std::is_nothrow_move_constructible>::value && - std::is_nothrow_move_assignable>::value && - std::is_nothrow_swappable::value) -#else - noexcept(std::is_nothrow_move_constructible>::value && - std::is_nothrow_move_assignable>::value) -#endif - -> void -{ - using std::swap; - - if (lhs.has_value() == rhs.has_value()) { - if (lhs.has_error()) { - auto& lhs_error = detail::result_error_extractor::get(lhs); - auto& rhs_error = detail::result_error_extractor::get(rhs); - - swap(lhs_error, rhs_error); - } - // If both `result`s contain values, do nothing - } else { - auto temp = static_cast&&>(lhs); - lhs = static_cast&&>(rhs); - rhs = static_cast&&>(temp); - } -} - -#if defined(__clang__) -# pragma clang diagnostic pop -#endif - -#undef RESULT_NAMESPACE_INTERNAL -#undef RESULT_NS_IMPL -#undef RESULT_CPP14_CONSTEXPR -#undef RESULT_CPP17_INLINE -#undef RESULT_INLINE_VISIBILITY -#undef RESULT_NODISCARD -#undef RESULT_WARN_UNUSED - -#endif /* RESULT_RESULT_HPP */ \ No newline at end of file diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index 061d9edc..8bab1da5 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include "../utils/Result.hpp" +#include #include "Log.hpp" #include "ModEvent.hpp" #include "ModMetadata.hpp" diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index 5639e628..8c78be4f 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -2,7 +2,7 @@ #include "../DefaultInclude.hpp" #include "../cocos/support/zip_support/ZipUtils.h" -#include "../utils/Result.hpp" +#include #include "../utils/VersionInfo.hpp" #include "../utils/general.hpp" diff --git a/loader/include/Geode/loader/ModMetadata.hpp b/loader/include/Geode/loader/ModMetadata.hpp index 9c0c553f..d6338448 100644 --- a/loader/include/Geode/loader/ModMetadata.hpp +++ b/loader/include/Geode/loader/ModMetadata.hpp @@ -1,6 +1,6 @@ #pragma once -#include "../utils/Result.hpp" +#include #include "../utils/VersionInfo.hpp" #include "Types.hpp" diff --git a/loader/include/Geode/loader/Tulip.hpp b/loader/include/Geode/loader/Tulip.hpp index cecc986a..5de00c34 100644 --- a/loader/include/Geode/loader/Tulip.hpp +++ b/loader/include/Geode/loader/Tulip.hpp @@ -7,7 +7,7 @@ namespace geode::hook { /** * Create a calling convention wrapper for a function. */ - GEODE_DLL tulip::hook::Result createWrapper( + GEODE_DLL Result createWrapper( void* address, tulip::hook::WrapperMetadata const& metadata ) noexcept; diff --git a/loader/include/Geode/modify/Modify.hpp b/loader/include/Geode/modify/Modify.hpp index 6b79b7ed..a81ec8c4 100644 --- a/loader/include/Geode/modify/Modify.hpp +++ b/loader/include/Geode/modify/Modify.hpp @@ -158,7 +158,7 @@ namespace geode::modifier { for (auto& [uuid, hook] : m_hooks) { auto res = Mod::get()->claimHook(hook); if (!res) { - log::error("Failed to claim hook {}: {}", hook->getDisplayName(), res.error()); + log::error("Failed to claim hook {}: {}", hook->getDisplayName(), res.unwrapErr()); } else { added.push_back(uuid); diff --git a/loader/include/Geode/utils/JsonValidation.hpp b/loader/include/Geode/utils/JsonValidation.hpp index 7dd18a46..e54a16f7 100644 --- a/loader/include/Geode/utils/JsonValidation.hpp +++ b/loader/include/Geode/utils/JsonValidation.hpp @@ -4,7 +4,7 @@ #include "../loader/Log.hpp" #include #include -#include +#include namespace geode { struct JsonChecker; diff --git a/loader/include/Geode/utils/ObjcHook.hpp b/loader/include/Geode/utils/ObjcHook.hpp index ec52ae4f..dc1d2658 100644 --- a/loader/include/Geode/utils/ObjcHook.hpp +++ b/loader/include/Geode/utils/ObjcHook.hpp @@ -1,7 +1,7 @@ #pragma once #include "../loader/Hook.hpp" -#include "Result.hpp" +#include namespace geode { namespace hook { diff --git a/loader/include/Geode/utils/Result.hpp b/loader/include/Geode/utils/Result.hpp deleted file mode 100644 index b7ce5f71..00000000 --- a/loader/include/Geode/utils/Result.hpp +++ /dev/null @@ -1,305 +0,0 @@ -#pragma once - -#include "../DefaultInclude.hpp" -#include "../external/result/result.hpp" - -#include -#include -#include -#include -#include -#include - -namespace geode { - namespace impl { - using DefaultValue = std::monostate; - using DefaultError = std::string; - template - using WrappedResult = std::conditional_t< - std::is_lvalue_reference_v, std::reference_wrapper>, - std::remove_const_t>; - - template - class [[nodiscard]] Failure { - public: - WrappedResult m_error; - - Failure() = default; - - template - requires(std::is_constructible_v) - explicit constexpr Failure(E2 const& e) : m_error(e) {} - - template - requires(std::is_constructible_v) - explicit constexpr Failure(E2&& e) : m_error(std::move(e)) {} - - E& error() & noexcept { - return m_error; - } - - E const& error() const& noexcept { - return m_error; - } - - E&& error() && noexcept { - return static_cast(m_error); - } - - E const&& error() const&& noexcept { - return static_cast(m_error); - } - }; - - template - class [[nodiscard]] Success { - public: - WrappedResult m_value; - - Success() = default; - - template - requires(std::is_constructible_v) - explicit constexpr Success(T2 const& v) : m_value(v) {} - - template - requires(std::is_constructible_v) - explicit constexpr Success(T2&& v) : m_value(std::forward(v)) {} - - T& value() & noexcept { - return m_value; - } - - T const& value() const& noexcept { - return m_value; - } - - T&& value() && noexcept { - return static_cast(m_value); - } - - T const&& value() const&& noexcept { - return static_cast(m_value); - } - }; - } - - template - class [[nodiscard]] Result : public cpp::result { - public: - using Base = cpp::result; - using ValueType = typename Base::value_type; - using ErrorType = typename Base::error_type; - - using Base::result; - - template - requires(cpp::detail::result_is_implicit_value_convertible::value) - constexpr Result(U&& value) = delete; - - template - requires(std::is_constructible_v) - constexpr Result(impl::Failure const& e) : Base(cpp::failure(e.error())) {} - - template - requires(std::is_constructible_v) - constexpr Result(impl::Failure&& e) : Base(cpp::failure(std::move(e.error()))) {} - - template - requires(std::is_constructible_v) - constexpr Result(impl::Success const& s) : Base(s.value()) {} - - template - requires(std::is_constructible_v) - constexpr Result(impl::Success&& s) : Base(std::move(s.value())) {} - - [[nodiscard]] constexpr explicit operator bool() const noexcept { - return this->Base::operator bool(); - } - - [[nodiscard]] constexpr bool isOk() const noexcept { - return this->Base::has_value(); - } - - [[nodiscard]] constexpr bool isErr() const noexcept { - return this->Base::has_error(); - } - - [[nodiscard]] constexpr decltype(auto) unwrap() & { - return this->Base::value(); - } - - [[nodiscard]] constexpr decltype(auto) unwrap() const& { - return this->Base::value(); - } - - [[nodiscard]] constexpr decltype(auto) unwrap() && { - return this->Base::value(); - } - - [[nodiscard]] constexpr decltype(auto) unwrap() const&& { - return this->Base::value(); - } - - [[nodiscard]] constexpr decltype(auto) unwrapErr() & { - return this->Base::error(); - } - - [[nodiscard]] constexpr decltype(auto) unwrapErr() const& { - return this->Base::error(); - } - - [[nodiscard]] constexpr decltype(auto) unwrapErr() && { - return this->Base::error(); - } - - [[nodiscard]] constexpr decltype(auto) unwrapErr() const&& { - return this->Base::error(); - } - - template - requires(std::is_constructible_v) - [[nodiscard]] Result expect(std::string const& format, Args&&... args) { - if (this->isErr()) { - return impl::Failure(fmt::format( - fmt::runtime(format), std::forward(args)..., - fmt::arg("error", this->unwrapErr()) - )); - } - else { - return std::move(*this); - } - } - - template - requires(std::is_constructible_v) - [[nodiscard]] Result expect(std::string const& format, Args&&... args) - const { - if (this->isErr()) { - return impl::Failure(fmt::format( - fmt::runtime(format), std::forward(args)..., - fmt::arg("error", this->unwrapErr()) - )); - } - else { - return *this; - } - } - - template - [[nodiscard]] constexpr decltype(auto) unwrapOr(U&& val) && { - return this->Base::value_or(std::forward(val)); - } - - template - [[nodiscard]] constexpr decltype(auto) unwrapOr(U&& val) const& { - return this->Base::value_or(std::forward(val)); - } - - [[nodiscard]] constexpr decltype(auto) unwrapOrDefault() && requires std::is_default_constructible_v { - return this->Base::value_or(T()); - } - [[nodiscard]] constexpr decltype(auto) unwrapOrDefault() const& requires std::is_default_constructible_v { - return this->Base::value_or(T()); - } - - template - [[nodiscard]] constexpr decltype(auto) errorOr(U&& val) && { - return this->Base::error_or(std::forward(val)); - } - - template - [[nodiscard]] constexpr decltype(auto) errorOr(U&& val) const& { - return this->Base::error_or(std::forward(val)); - } - - /** - * Convert the result into an optional containing the value if Ok, and - * nullopt if Err - */ - [[nodiscard]] constexpr std::optional ok() const& { - if (this->isOk()) { - return this->unwrap(); - } - return std::nullopt; - } - - /** - * Convert the result into an optional containing the value if Ok, and - * nullopt if Err - */ - [[nodiscard]] constexpr std::optional ok() && { - if (this->isOk()) { - return this->unwrap(); - } - return std::nullopt; - } - - /** - * Convert the result into an optional containing the error if Err, and - * nullopt if Ok - */ - [[nodiscard]] constexpr std::optional err() const& { - if (this->isErr()) { - return this->unwrapErr(); - } - return std::nullopt; - } - - /** - * Convert the result into an optional containing the error if Err, and - * nullopt if Ok - */ - [[nodiscard]] constexpr std::optional err() && { - if (this->isErr()) { - return this->unwrapErr(); - } - return std::nullopt; - } - - /** - * Completely disregard the result. Only recommended if the result is - * inconsequential - */ - constexpr void disregard() && {} - }; - - template - constexpr impl::Success Ok() { - return impl::Success(); - } - - template - constexpr impl::Success Ok(T value) { - // DO NOT MAKE THE PARAMETER T&&!!!! THAT WILL CAUSE C++ TO DO UNEXPECTED - // IMPLICIT MOVES FOR EXAMPLE WHEN DOING `Ok(unordered_map.at(value))` - return impl::Success(std::forward(value)); - } - - template - constexpr impl::Failure Err(E error) { - return impl::Failure(std::forward(error)); - } - - template - inline impl::Failure Err(std::string const& format, Args&&... args) { - return impl::Failure( - fmt::format(fmt::runtime(format), std::forward(args)...) - ); - } - -#define GEODE_UNWRAP_INTO(into, ...) \ - auto GEODE_CONCAT(unwrap_res_, __LINE__) = (__VA_ARGS__); \ - if (GEODE_CONCAT(unwrap_res_, __LINE__).isErr()) { \ - return geode::Err(std::move(GEODE_CONCAT(unwrap_res_, __LINE__).unwrapErr())); \ - } \ - into = std::move(GEODE_CONCAT(unwrap_res_, __LINE__).unwrap()) - -#define GEODE_UNWRAP(...) \ - do { \ - auto GEODE_CONCAT(unwrap_res_, __LINE__) = (__VA_ARGS__); \ - if (GEODE_CONCAT(unwrap_res_, __LINE__).isErr()) { \ - return geode::Err(std::move(GEODE_CONCAT(unwrap_res_, __LINE__).unwrapErr())); \ - } \ - } while(false) -} diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index 1d69b155..c2890be1 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -248,7 +248,7 @@ namespace geode { using Value = T; using Progress = P; - using PostResult = std::function; + using PostResult = std::function; using PostProgress = std::function; using HasBeenCancelled = std::function; using Run = std::function; diff --git a/loader/include/Geode/utils/VersionInfo.hpp b/loader/include/Geode/utils/VersionInfo.hpp index ce57ba71..d1f3e57f 100644 --- a/loader/include/Geode/utils/VersionInfo.hpp +++ b/loader/include/Geode/utils/VersionInfo.hpp @@ -4,7 +4,7 @@ #include #include #include -#include "../utils/Result.hpp" +#include namespace geode { enum class VersionCompare { diff --git a/loader/include/Geode/utils/file.hpp b/loader/include/Geode/utils/file.hpp index 427c6de4..efb2199d 100644 --- a/loader/include/Geode/utils/file.hpp +++ b/loader/include/Geode/utils/file.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Result.hpp" +#include #include "general.hpp" #include "../loader/Event.hpp" #include "Task.hpp" diff --git a/loader/include/Geode/utils/general.hpp b/loader/include/Geode/utils/general.hpp index 8d84c4a0..a1912b5c 100644 --- a/loader/include/Geode/utils/general.hpp +++ b/loader/include/Geode/utils/general.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Result.hpp" +#include #include "../DefaultInclude.hpp" #include @@ -13,6 +13,7 @@ #include #include #include +#include namespace geode { using ByteVector = std::vector; @@ -159,6 +160,12 @@ namespace geode { */ GEODE_DLL float getDisplayFactor(); } + + template + requires (sizeof...(Args) > 0) + constexpr auto Err(fmt::format_string fmt, Args&&... args) { + return Err(fmt::format(fmt, std::forward(args)...)); + } } template<> diff --git a/loader/include/Geode/utils/map.hpp b/loader/include/Geode/utils/map.hpp index 3806dd8a..9a7b7bb8 100644 --- a/loader/include/Geode/utils/map.hpp +++ b/loader/include/Geode/utils/map.hpp @@ -1,6 +1,6 @@ #pragma once -#include "Result.hpp" +#include #include #include diff --git a/loader/include/Geode/utils/web.hpp b/loader/include/Geode/utils/web.hpp index de421693..6f6f2a25 100644 --- a/loader/include/Geode/utils/web.hpp +++ b/loader/include/Geode/utils/web.hpp @@ -2,7 +2,7 @@ #include // another great circular dependency fix #include -#include "Result.hpp" +#include #include "Task.hpp" #include #include diff --git a/loader/src/loader/LoaderImpl.cpp b/loader/src/loader/LoaderImpl.cpp index a7810b77..54c938a4 100644 --- a/loader/src/loader/LoaderImpl.cpp +++ b/loader/src/loader/LoaderImpl.cpp @@ -496,20 +496,20 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { thread::setName("Mod Unzip"); log::loadNest(nest); auto res = unzipFunction(); + auto prevNest = log::saveNest(); + log::loadNest(nest); + if (!res) { + this->addProblem({ + LoadProblem::Type::UnzipFailed, + node, + res.unwrapErr() + }); + log::error("Failed to unzip: {}", res.unwrapErr()); + m_refreshingModCount -= 1; + log::loadNest(prevNest); + return; + } this->queueInMainThread([=, this]() { - auto prevNest = log::saveNest(); - log::loadNest(nest); - if (!res) { - this->addProblem({ - LoadProblem::Type::UnzipFailed, - node, - res.unwrapErr() - }); - log::error("Failed to unzip: {}", res.unwrapErr()); - m_refreshingModCount -= 1; - log::loadNest(prevNest); - return; - } loadFunction(); log::loadNest(prevNest); }); diff --git a/loader/src/loader/LoaderImpl.hpp b/loader/src/loader/LoaderImpl.hpp index 99016566..7af233d5 100644 --- a/loader/src/loader/LoaderImpl.hpp +++ b/loader/src/loader/LoaderImpl.hpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include #include "ModImpl.hpp" diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index 963925f4..ef237fe7 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -51,7 +51,9 @@ Result<> Mod::Impl::setup() { (void) utils::file::createDirectoryAll(m_saveDirPath); // always create temp dir for all mods, even if disabled, so resources can be loaded - GEODE_UNWRAP(this->createTempDir().expect("Unable to create temp dir: {error}")); + GEODE_UNWRAP(this->createTempDir().mapErr([](auto const& err) { + return fmt::format("Unable to create temp dir: {}", err); + })); m_settings = std::make_unique(m_metadata); auto loadRes = this->loadData(); diff --git a/loader/src/loader/ModMetadataImpl.cpp b/loader/src/loader/ModMetadataImpl.cpp index 0924187a..29e28c6f 100644 --- a/loader/src/loader/ModMetadataImpl.cpp +++ b/loader/src/loader/ModMetadataImpl.cpp @@ -307,8 +307,11 @@ Result ModMetadata::Impl::create(ModJson const& json) { if (json.contains("geode") && json["geode"].is_string()) { GEODE_UNWRAP_INTO( schema, - VersionInfo::parse(json["geode"].as_string()) - .expect("[mod.json] has invalid target loader version: {error}") + VersionInfo::parse(json["geode"].as_string()).mapErr( + [](auto const& err) { + return fmt::format("[mod.json] has invalid target loader version: {}", err); + } + ) ); } else { @@ -382,7 +385,9 @@ Result ModMetadata::Impl::createFromGeodeZip(file::Unzip& unzip) { // Read mod.json & parse if possible GEODE_UNWRAP_INTO( - auto jsonData, unzip.extract("mod.json").expect("Unable to read mod.json: {error}") + auto jsonData, unzip.extract("mod.json").mapErr([](auto const& err) { + return fmt::format("Unable to extract mod.json: {}", err); + }) ); std::string error; @@ -400,7 +405,9 @@ Result ModMetadata::Impl::createFromGeodeZip(file::Unzip& unzip) { auto impl = info.m_impl.get(); impl->m_path = unzip.getPath(); - GEODE_UNWRAP(info.addSpecialFiles(unzip).expect("Unable to add extra files: {error}")); + GEODE_UNWRAP(info.addSpecialFiles(unzip).mapErr([](auto const& err) { + return fmt::format("Unable to add extra files: {}", err); + })); return Ok(info); } @@ -409,7 +416,9 @@ Result<> ModMetadata::Impl::addSpecialFiles(file::Unzip& unzip) { // unzip known MD files for (auto& [file, target] : this->getSpecialFiles()) { if (unzip.hasEntry(file)) { - GEODE_UNWRAP_INTO(auto data, unzip.extract(file).expect("Unable to extract \"{}\"", file)); + GEODE_UNWRAP_INTO(auto data, unzip.extract(file).mapErr([&](auto const& err) { + return fmt::format("Unable to extract \"{}\": {}", file, err); + })); *target = sanitizeDetailsData(std::string(data.begin(), data.end())); } } diff --git a/loader/src/loader/ModSettingsManager.cpp b/loader/src/loader/ModSettingsManager.cpp index c908bb27..494a26da 100644 --- a/loader/src/loader/ModSettingsManager.cpp +++ b/loader/src/loader/ModSettingsManager.cpp @@ -8,22 +8,36 @@ using namespace geode::prelude; // #1 no need to duplicate the built-in settings between all mods // #2 easier lookup of custom settings if a mod uses another mod's custom setting type + +namespace { + auto changeToGenerator(auto&& function) { + return [function]( + std::string const& key, + std::string const& modID, + matjson::Value const& json + ) -> Result> { + return function(key, modID, json).map([](auto&& ptr) { + return std::shared_ptr(ptr); + }); + }; + } +} class SharedSettingTypesPool final { private: std::unordered_map m_types; SharedSettingTypesPool() : m_types({ - { "title", &TitleSetting::parse }, - { "bool", &BoolSetting::parse }, - { "int", &IntSetting::parse }, - { "float", &FloatSetting::parse }, - { "string", &StringSetting::parse }, - { "file", &FileSetting::parse }, - { "folder", &FileSetting::parse }, - { "path", &FileSetting::parse }, - { "rgb", &Color3BSetting::parse }, - { "color", &Color3BSetting::parse }, - { "rgba", &Color4BSetting::parse }, + { "title", changeToGenerator(TitleSettingV3::parse) }, + { "bool", changeToGenerator(BoolSettingV3::parse) }, + { "int", changeToGenerator(IntSettingV3::parse) }, + { "float", changeToGenerator(FloatSettingV3::parse) }, + { "string", changeToGenerator(StringSettingV3::parse) }, + { "file", changeToGenerator(FileSettingV3::parse) }, + { "folder", changeToGenerator(FileSettingV3::parse) }, + { "path", changeToGenerator(FileSettingV3::parse) }, + { "rgb", changeToGenerator(Color3BSettingV3::parse) }, + { "color", changeToGenerator(Color3BSettingV3::parse) }, + { "rgba", changeToGenerator(Color4BSettingV3::parse) }, }) {} public: @@ -135,7 +149,7 @@ public: continue; } if (auto v3 = (*gen)(key, modID, setting.json)) { - setting.v3 = *v3; + setting.v3 = v3.unwrap(); this->loadSettingValueFromSave(key); } else { diff --git a/loader/src/loader/PatchImpl.cpp b/loader/src/loader/PatchImpl.cpp index 38b331f1..4f30a73e 100644 --- a/loader/src/loader/PatchImpl.cpp +++ b/loader/src/loader/PatchImpl.cpp @@ -92,8 +92,8 @@ Result<> Patch::Impl::updateBytes(const ByteVector& bytes) { if (m_enabled) { auto res = this->disable(); if (!res) return Err("Failed to update patch: {}", res.unwrapErr()); - res = this->enable(); - if (!res) return Err("Failed to update patch: {}", res.unwrapErr()); + auto res2 = this->enable(); + if (!res2) return Err("Failed to update patch: {}", res2.unwrapErr()); } return Ok(); diff --git a/loader/src/loader/SettingV3.cpp b/loader/src/loader/SettingV3.cpp index 7f0d91b3..e4cb701c 100644 --- a/loader/src/loader/SettingV3.cpp +++ b/loader/src/loader/SettingV3.cpp @@ -152,18 +152,21 @@ namespace enable_if_parsing { return Ok(); } Result<> eval(std::string const& defaultModID) const override { - Result<> err = Ok(); + std::optional err; for (auto& comp : components) { auto res = comp->eval(defaultModID); if (res) { return Ok(); } // Only show first condition that isn't met - if (err.isOk()) { - err = Err(res.unwrapErr()); + if (!err.has_value()) { + err = res.unwrapErr(); } } - return err; + if (err.has_value()) { + return Err(*err); + } + return Ok(); } }; @@ -235,7 +238,10 @@ namespace enable_if_parsing { auto original = m_index; auto ret = this->nextWord(); m_index = original; - return ret ? *ret : std::nullopt; + if (!ret) { + return std::nullopt; + } + return ret.unwrap(); } Result> nextComponent() { GEODE_UNWRAP_INTO(auto maybeWord, this->nextWord()); diff --git a/loader/src/loader/Tulip.cpp b/loader/src/loader/Tulip.cpp index a21fd069..4d7bab6e 100644 --- a/loader/src/loader/Tulip.cpp +++ b/loader/src/loader/Tulip.cpp @@ -1,7 +1,9 @@ #include -tulip::hook::Result geode::hook::createWrapper( +using namespace geode::prelude; + +Result geode::hook::createWrapper( void* address, tulip::hook::WrapperMetadata const& metadata ) noexcept { diff --git a/loader/src/loader/updater.cpp b/loader/src/loader/updater.cpp index 10c12f8a..fa31dee1 100644 --- a/loader/src/loader/updater.cpp +++ b/loader/src/loader/updater.cpp @@ -83,7 +83,7 @@ void updater::fetchLatestGithubRelease( } else { Mod::get()->setSavedValue("last-modified-auto-update-check", response->header("Last-Modified").value_or("")); - s_latestGithubRelease = *json; + s_latestGithubRelease = json.unwrap(); then(*s_latestGithubRelease); } } @@ -141,7 +141,7 @@ void updater::tryDownloadLoaderResources(std::string const& url, bool tryLatestO // unzip resources zip auto unzip = file::Unzip::create(response->data()); if (unzip) { - auto ok = unzip->extractAllTo(resourcesDir); + auto ok = unzip.unwrap().extractAllTo(resourcesDir); if (ok) { updater::updateSpecialFiles(); ResourceDownloadEvent(UpdateFinished()).post(); @@ -308,7 +308,7 @@ void updater::downloadLoaderUpdate(std::string const& url) { // unzip resources zip auto unzip = file::Unzip::create(response->data()); if (unzip) { - auto ok = unzip->extractAllTo(targetDir); + auto ok = unzip.unwrap().extractAllTo(targetDir); if (ok) { s_isNewUpdateDownloaded = true; LoaderUpdateEvent(UpdateFinished()).post(); diff --git a/loader/src/platform/android/crashlog.cpp b/loader/src/platform/android/crashlog.cpp index 392b23e0..ae5bda51 100644 --- a/loader/src/platform/android/crashlog.cpp +++ b/loader/src/platform/android/crashlog.cpp @@ -261,12 +261,12 @@ int writeAndGetPid() { auto res = file::readString(pidFile); if (!res) { - log::warn("Failed to read last-pid file: {}", res.error()); + log::warn("Failed to read last-pid file: {}", res.unwrapErr()); } else { auto res = numFromString(res.unwrap()); if (!res) { - log::warn("Failed to parse last-pid file: {}", res.error()); + log::warn("Failed to parse last-pid file: {}", res.unwrapErr()); } else lastPid = res.unwrap(); } @@ -281,7 +281,7 @@ int writeAndGetPid() { auto res = file::writeString(pidFile, std::to_string(getpid())); if (!res) { - log::warn("Failed to write last-pid file: {}", res.error()); + log::warn("Failed to write last-pid file: {}", res.unwrapErr()); } return lastPid; diff --git a/loader/src/platform/android/util.cpp b/loader/src/platform/android/util.cpp index 549d9c51..6cd2bc09 100644 --- a/loader/src/platform/android/util.cpp +++ b/loader/src/platform/android/util.cpp @@ -12,7 +12,7 @@ using namespace geode::prelude; #include #include #include -#include +#include #include #include #include diff --git a/loader/src/platform/windows/nfdwin.hpp b/loader/src/platform/windows/nfdwin.hpp index 4602d0cc..d39c5fb1 100644 --- a/loader/src/platform/windows/nfdwin.hpp +++ b/loader/src/platform/windows/nfdwin.hpp @@ -41,7 +41,7 @@ #define NFD_UTF8_BOM "\xEF\xBB\xBF" #include -#include +#include #include using namespace geode::prelude; diff --git a/loader/src/platform/windows/util.cpp b/loader/src/platform/windows/util.cpp index d5020657..7e9322f0 100644 --- a/loader/src/platform/windows/util.cpp +++ b/loader/src/platform/windows/util.cpp @@ -120,7 +120,6 @@ Task> file::pick(PickMode mode, FilePickOptions co return RetTask::immediate(Err("Invalid pick mode")); } std::filesystem::path path; - Result result; auto pickresult = nfdPick(nfdMode, options, &path); if (pickresult.isErr()) { if (pickresult.unwrapErr() == "Dialog cancelled") { @@ -137,13 +136,11 @@ Task>> file::pickMany(FilePickOptions std::vector paths; auto pickResult = nfdPick(NFDMode::OpenFiles, options, &paths); - Result> result; if (pickResult.isErr()) { - result = Err(pickResult.err().value()); + return RetTask::immediate(Err(pickResult.err().value())); } else { - result = Ok(paths); + return RetTask::immediate(Ok(paths)); } - return RetTask::immediate(std::move(result)); // return Task>>::immediate(std::move(file::pickFiles(options))); } diff --git a/loader/src/server/Server.cpp b/loader/src/server/Server.cpp index 43a9e08a..ed53871f 100644 --- a/loader/src/server/Server.cpp +++ b/loader/src/server/Server.cpp @@ -783,7 +783,7 @@ void server::queueBatches( ) { // we have to do the copy here, or else our values die batchedCheckUpdates(batches->back()).listen([resolve, batches, accum](auto result) { - if (result->ok()) { + if (result->isOk()) { auto serverValues = result->unwrap(); accum->reserve(accum->size() + serverValues.size()); @@ -798,7 +798,12 @@ void server::queueBatches( } } else { - resolve(*result); + if (result->isOk()) { + resolve(Ok(result->unwrap())); + } + else { + resolve(Err(result->unwrapErr())); + } } }); } diff --git a/loader/src/ui/GeodeUI.cpp b/loader/src/ui/GeodeUI.cpp index dff7dff6..a7621074 100644 --- a/loader/src/ui/GeodeUI.cpp +++ b/loader/src/ui/GeodeUI.cpp @@ -34,7 +34,7 @@ protected: if (auto res = event->getValue()) { if (res->isOk()) { // Copy info first as onClose may free the listener which will free the event - auto info = **res; + auto info = res->unwrap(); this->onClose(nullptr); // Run this on next frame because otherwise the popup is unable to call server::getMod for some reason Loader::get()->queueInMainThread([info = std::move(info)]() mutable { diff --git a/loader/src/ui/mods/sources/ModSource.cpp b/loader/src/ui/mods/sources/ModSource.cpp index fe7bb2e0..0860ee73 100644 --- a/loader/src/ui/mods/sources/ModSource.cpp +++ b/loader/src/ui/mods/sources/ModSource.cpp @@ -14,9 +14,9 @@ LoadModSuggestionTask loadModSuggestion(LoadProblem const& problem) { if (auto suggestionVersionRes = ComparableVersionInfo::parse(suggestionVersionStr)) { server::ModVersion suggestionVersion = server::ModVersionLatest(); - if (suggestionVersionRes->getComparison() == VersionCompare::MoreEq) { + if (suggestionVersionRes.unwrap().getComparison() == VersionCompare::MoreEq) { suggestionVersion = server::ModVersionMajor { - .major = suggestionVersionRes->getUnderlyingVersion().getMajor() + .major = suggestionVersionRes.unwrap().getUnderlyingVersion().getMajor() }; } // todo: if mods are allowed to specify other type of version comparisons in the future, @@ -195,7 +195,7 @@ server::ServerRequest> ModSource::fetchValidTags } return Ok(finalTags); } - return *result; + return Ok(result->unwrap()); }, [](server::ServerProgress* progress) { return *progress; diff --git a/loader/src/ui/nodes/MDTextArea.cpp b/loader/src/ui/nodes/MDTextArea.cpp index e02d1a0d..df27a2e7 100644 --- a/loader/src/ui/nodes/MDTextArea.cpp +++ b/loader/src/ui/nodes/MDTextArea.cpp @@ -329,19 +329,19 @@ struct MDParser { if (key == "scale") { auto scaleRes = utils::numFromString(value); if (scaleRes) { - spriteScale = *scaleRes; + spriteScale = scaleRes.unwrap(); } } else if (key == "width") { auto widthRes = utils::numFromString(value); if (widthRes) { - spriteWidth = *widthRes; + spriteWidth = widthRes.unwrap(); } } else if (key == "height") { auto heightRes = utils::numFromString(value); if (heightRes) { - spriteHeight = *heightRes; + spriteHeight = heightRes.unwrap(); } } } diff --git a/loader/src/utils/file.cpp b/loader/src/utils/file.cpp index cecd1254..caeba44e 100644 --- a/loader/src/utils/file.cpp +++ b/loader/src/utils/file.cpp @@ -57,7 +57,7 @@ Result utils::file::readJson(std::filesystem::path const& path) if (!str) return Err(str.unwrapErr()); std::string error; - auto res = matjson::parse(str.value(), error); + auto res = matjson::parse(str.unwrap(), error); if (error.size()) return Err("Unable to parse JSON: " + error); return Ok(res.value()); @@ -304,7 +304,9 @@ public: GEODE_UNWRAP( mzTry(mz_zip_entry_read_open(m_handle, 0, nullptr)) - .expect("Unable to open entry (code {error})") + .mapErr([&](auto error) { + return fmt::format("Unable to open entry (code {})", error); + }) ); // if the file is empty, its data is empty (duh) @@ -323,7 +325,9 @@ public: mz_zip_entry_close(m_handle); GEODE_UNWRAP(file::createDirectoryAll((dir / name).parent_path())); - GEODE_UNWRAP(file::writeBinary(dir / name, res).expect("Unable to write to {}: {error}", dir / name)); + GEODE_UNWRAP(file::writeBinary(dir / name, res).mapErr([&](auto error) { + return fmt::format("Unable to write to {}: {}", dir / name, error); + })); return Ok(); } @@ -333,14 +337,18 @@ public: GEODE_UNWRAP( mzTry(mz_zip_goto_first_entry(m_handle)) - .expect("Unable to navigate to first entry (code {error})") + .mapErr([&](auto error) { + return fmt::format("Unable to navigate to first entry (code {})", error); + }) ); uint64_t numEntries; GEODE_UNWRAP( mzTry(mz_zip_get_number_entry(m_handle, &numEntries)) - .expect("Unable to get number of entries (code {error})") + .mapErr([&](auto error) { + return fmt::format("Unable to get number of entries (code {})", error); + }) ); uint32_t currentEntry = 0; @@ -395,7 +403,9 @@ public: GEODE_UNWRAP( mzTry(mz_zip_goto_first_entry(m_handle)) - .expect("Unable to navigate to first entry (code {error})") + .mapErr([&](auto error) { + return fmt::format("Unable to navigate to first entry (code {})", error); + }) ); GEODE_UNWRAP( @@ -403,12 +413,17 @@ public: m_handle, reinterpret_cast(name.u8string().c_str()), 1 - )).expect("Unable to navigate to entry (code {error})") + )) + .mapErr([&](auto error) { + return fmt::format("Unable to locate entry (code {})", error); + }) ); GEODE_UNWRAP( mzTry(mz_zip_entry_read_open(m_handle, 0, nullptr)) - .expect("Unable to open entry (code {error})") + .mapErr([&](auto error) { + return fmt::format("Unable to open entry (code {})", error); + }) ); // if the file is empty, its data is empty (duh) @@ -448,7 +463,9 @@ public: GEODE_UNWRAP( mzTry(mz_zip_entry_write_open(m_handle, &info, MZ_COMPRESS_LEVEL_DEFAULT, 0, nullptr)) - .expect("Unable to open entry for writing (code {error})") + .mapErr([&](auto error) { + return fmt::format("Unable to open entry for writing (code {})", error); + }) ); mz_zip_entry_close(m_handle); @@ -465,7 +482,9 @@ public: GEODE_UNWRAP( mzTry(mz_zip_entry_write_open(m_handle, &info, MZ_COMPRESS_LEVEL_DEFAULT, 0, nullptr)) - .expect("Unable to open entry for writing (code {error})") + .mapErr([&](auto error) { + return fmt::format("Unable to open entry for writing (code {})", error); + }) ); auto written = mz_zip_entry_write(m_handle, data.data(), data.size()); if (written < 0) { @@ -550,16 +569,22 @@ bool Unzip::hasEntry(Path const& name) { } Result Unzip::extract(Path const& name) { - return m_impl->extract(name).expect("{error} (entry {})", name.string()); + return m_impl->extract(name).mapErr([&](auto error) { + return fmt::format("Unable to extract entry {}: {}", name.string(), error); + }); } Result<> Unzip::extractTo(Path const& name, Path const& path) { - GEODE_UNWRAP_INTO(auto bytes, m_impl->extract(name).expect("{error} (entry {})", name.string())); + GEODE_UNWRAP_INTO(auto bytes, m_impl->extract(name).mapErr([&](auto error) { + return fmt::format("Unable to extract entry {}: {}", name.string(), error); + })); // create containing directories for target path if (path.has_parent_path()) { GEODE_UNWRAP(file::createDirectoryAll(path.parent_path())); } - GEODE_UNWRAP(file::writeBinary(path, bytes).expect("Unable to write file {}: {error}", path.string())); + GEODE_UNWRAP(file::writeBinary(path, bytes).mapErr([&](auto error) { + return fmt::format("Unable to write file {}: {}", path.string(), error); + })); return Ok(); } diff --git a/loader/src/utils/web.cpp b/loader/src/utils/web.cpp index 02028859..fe3dc7c1 100644 --- a/loader/src/utils/web.cpp +++ b/loader/src/utils/web.cpp @@ -1,4 +1,4 @@ -#include +#include #include #include #include @@ -498,7 +498,7 @@ WebRequest& WebRequest::header(std::string_view name, std::string_view value) { int timeoutValue = 5; auto res = numFromString(value.substr(numStart, numLength)); if (res) { - timeoutValue = res.value(); + timeoutValue = res.unwrap(); } timeout(std::chrono::seconds(timeoutValue)); From 544689c9451dbe3a72f49171dbd2bd4626a90658 Mon Sep 17 00:00:00 2001 From: The Bearodactyl Date: Thu, 7 Nov 2024 12:27:41 -0500 Subject: [PATCH 007/119] add hashtag symbol to `CommonFilter::Any` (#1131) --- loader/src/ui/nodes/TextInput.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/src/ui/nodes/TextInput.cpp b/loader/src/ui/nodes/TextInput.cpp index b6b4ae75..a54fa744 100644 --- a/loader/src/ui/nodes/TextInput.cpp +++ b/loader/src/ui/nodes/TextInput.cpp @@ -47,7 +47,7 @@ const char* geode::getCommonFilterAllowedChars(CommonFilter filter) { case CommonFilter::Float: return "-.0123456789"; case CommonFilter::ID: return "abcdefghijklmnopqrstuvwxyz0123456789-_."; case CommonFilter::Name: return "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_ "; - case CommonFilter::Any: return "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-+/\\&$%^~*\'\"{}()[]<>=!?@,;.:|• "; + case CommonFilter::Any: return "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#_-+/\\&$%^~*\'\"{}()[]<>=!?@,;.:|• "; case CommonFilter::Hex: return "0123456789abcdefABCDEF"; case CommonFilter::Base64Normal: return "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/="; case CommonFilter::Base64URL: return "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_="; From 842b342dc59cca265feeef84cdb157d8c291549d Mon Sep 17 00:00:00 2001 From: Justin <52604018+hiimjustin000@users.noreply.github.com> Date: Fri, 1 Nov 2024 18:52:50 +0000 Subject: [PATCH 008/119] yeah... --- loader/include/Geode/utils/web.hpp | 9 +++++++++ loader/src/utils/web.cpp | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/loader/include/Geode/utils/web.hpp b/loader/include/Geode/utils/web.hpp index 6f6f2a25..ad06e247 100644 --- a/loader/include/Geode/utils/web.hpp +++ b/loader/include/Geode/utils/web.hpp @@ -203,6 +203,15 @@ namespace geode::utils::web { */ WebRequest& followRedirects(bool enabled); + /** + * Enables or disables ignoring the content length header. + * The default is false. + * + * @param enabled + * @return WebRequest& + */ + WebRequest& ignoreContentLength(bool enabled); + /** * Sets the Certificate Authority (CA) bundle content. * Defaults to not sending a CA bundle. diff --git a/loader/src/utils/web.cpp b/loader/src/utils/web.cpp index fe3dc7c1..c7f00e04 100644 --- a/loader/src/utils/web.cpp +++ b/loader/src/utils/web.cpp @@ -202,6 +202,7 @@ public: bool m_certVerification = true; bool m_transferBody = true; bool m_followRedirects = true; + bool m_ignoreContentLength = false; std::string m_CABundleContent; ProxyOpts m_proxyOpts = {}; HttpVersion m_httpVersion = HttpVersion::DEFAULT; @@ -382,6 +383,9 @@ WebTask WebRequest::send(std::string_view method, std::string_view url) { // Follow request through 3xx responses curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, impl->m_followRedirects ? 1L : 0L); + // Ignore content length + curl_easy_setopt(curl, CURLOPT_IGNORE_CONTENT_LENGTH, impl->m_ignoreContentLength ? 1L : 0L); + // Track progress curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0); @@ -556,6 +560,11 @@ WebRequest& WebRequest::followRedirects(bool enabled) { return *this; } +WebRequest& WebRequest::ignoreContentLength(bool enabled) { + m_impl->m_ignoreContentLength = enabled; + return *this; +} + WebRequest& WebRequest::CABundleContent(std::string_view content) { m_impl->m_CABundleContent = content; return *this; From 12b70db212c27aea9e7c0f73f6fcf751fd5c01d4 Mon Sep 17 00:00:00 2001 From: The Bearodactyl Date: Thu, 7 Nov 2024 12:27:41 -0500 Subject: [PATCH 009/119] add hashtag symbol to `CommonFilter::Any` (#1131) --- loader/src/ui/nodes/TextInput.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/src/ui/nodes/TextInput.cpp b/loader/src/ui/nodes/TextInput.cpp index b6b4ae75..a54fa744 100644 --- a/loader/src/ui/nodes/TextInput.cpp +++ b/loader/src/ui/nodes/TextInput.cpp @@ -47,7 +47,7 @@ const char* geode::getCommonFilterAllowedChars(CommonFilter filter) { case CommonFilter::Float: return "-.0123456789"; case CommonFilter::ID: return "abcdefghijklmnopqrstuvwxyz0123456789-_."; case CommonFilter::Name: return "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_ "; - case CommonFilter::Any: return "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-+/\\&$%^~*\'\"{}()[]<>=!?@,;.:|• "; + case CommonFilter::Any: return "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ#_-+/\\&$%^~*\'\"{}()[]<>=!?@,;.:|• "; case CommonFilter::Hex: return "0123456789abcdefABCDEF"; case CommonFilter::Base64Normal: return "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/="; case CommonFilter::Base64URL: return "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_="; From 37e5e9f00b0838b2b3374dc55d711afc046b471e Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:29:37 +0300 Subject: [PATCH 010/119] update tuliphook --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e94e525f..64d96cb7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -267,7 +267,7 @@ if (DEFINED GEODE_TULIPHOOK_REPO_PATH) message(STATUS "Using ${GEODE_TULIPHOOK_REPO_PATH} for TulipHook") add_subdirectory(${GEODE_TULIPHOOK_REPO_PATH} ${GEODE_TULIPHOOK_REPO_PATH}/build) else() - CPMAddPackage("gh:geode-sdk/TulipHook#d1d9559") + CPMAddPackage("gh:geode-sdk/TulipHook#4e5d607") endif() set(CMAKE_WARN_DEPRECATED ON CACHE BOOL "" FORCE) From 693fadd9bc604ac14d143c47a19f8db051d80079 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:41:05 +0300 Subject: [PATCH 011/119] i love clang sometimes --- loader/src/loader/ModMetadataImpl.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/loader/src/loader/ModMetadataImpl.cpp b/loader/src/loader/ModMetadataImpl.cpp index 29e28c6f..e2f31dd5 100644 --- a/loader/src/loader/ModMetadataImpl.cpp +++ b/loader/src/loader/ModMetadataImpl.cpp @@ -416,6 +416,8 @@ Result<> ModMetadata::Impl::addSpecialFiles(file::Unzip& unzip) { // unzip known MD files for (auto& [file, target] : this->getSpecialFiles()) { if (unzip.hasEntry(file)) { + // reference to local binding 'file' declared in enclosing function + std::string_view file(file); GEODE_UNWRAP_INTO(auto data, unzip.extract(file).mapErr([&](auto const& err) { return fmt::format("Unable to extract \"{}\": {}", file, err); })); From 088eddbb7b7c381089dcefb517506b3699f349db Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:42:33 +0300 Subject: [PATCH 012/119] c++ as well --- loader/src/loader/ModMetadataImpl.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/loader/src/loader/ModMetadataImpl.cpp b/loader/src/loader/ModMetadataImpl.cpp index e2f31dd5..690e3969 100644 --- a/loader/src/loader/ModMetadataImpl.cpp +++ b/loader/src/loader/ModMetadataImpl.cpp @@ -417,9 +417,9 @@ Result<> ModMetadata::Impl::addSpecialFiles(file::Unzip& unzip) { for (auto& [file, target] : this->getSpecialFiles()) { if (unzip.hasEntry(file)) { // reference to local binding 'file' declared in enclosing function - std::string_view file(file); - GEODE_UNWRAP_INTO(auto data, unzip.extract(file).mapErr([&](auto const& err) { - return fmt::format("Unable to extract \"{}\": {}", file, err); + std::string_view fileStr(file); + GEODE_UNWRAP_INTO(auto data, unzip.extract(fileStr).mapErr([&](auto const& err) { + return fmt::format("Unable to extract \"{}\": {}", fileStr, err); })); *target = sanitizeDetailsData(std::string(data.begin(), data.end())); } From 8aa2c2283ae67d776dbeb9088d06b94f4589a2f1 Mon Sep 17 00:00:00 2001 From: dankmeme01 <42031238+dankmeme01@users.noreply.github.com> Date: Sat, 9 Nov 2024 01:42:39 +0100 Subject: [PATCH 013/119] add 2.207 support --- CMakeLists.txt | 4 ++-- loader/include/link/win64/libcocos2d.lib | Bin 2232276 -> 2234292 bytes .../src/platform/windows/gdTimestampMap.hpp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 64d96cb7..3c073e78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,8 +189,8 @@ include(cmake/Platform.cmake) include(cmake/GeodeFile.cmake) if (NOT DEFINED GEODE_GD_VERSION) - set(GEODE_GD_VERSION 2.206) - set(GEODE_COMP_GD_VERSION 22060) + set(GEODE_GD_VERSION 2.207) + set(GEODE_COMP_GD_VERSION 22070) endif() target_compile_definitions( diff --git a/loader/include/link/win64/libcocos2d.lib b/loader/include/link/win64/libcocos2d.lib index 3275c2021607b6cb26b16ed22682831c91d36d01..d306f5271d6ab4da630a232679b43a0ce1064963 100644 GIT binary patch delta 305951 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 H{;~f7yD?d= delta 301621 zcmXWk4}6tl|G@FfBuO%}wzIRdvzcTvnapG|Gf7V}nVCsul4K^6BuRHBGf8GLNoHn} zWM(p%B$G^f_DnLFWF|=_nVBT>e6H{H{k>lA`*Y5A&V65h?)g2lm9?*z9Wsm_&#I8e@->wUCW(cQcSqm zPO-np`E`&97po`^B&lYK-=;X-!%VoSrTBf6TIca#oeA&Z17ZWkAJd%P!6sZZQ2d#v z_D~$Ga{iiV!mUFgYAwazoX0xsQ`;#1S?Kh6%&gDa>-@`%F~np$NAx#C#5#(Q0_Vtp z86w&!`jt9IrJ5n4i=uy}bMz!L#2PSIHBorS%r--;fy31vienjsH7L_LF2oEG4HSb% zt7eMhd7Wsd2+davA`~agRDBd-3xzl2L`Ec*QG~~0{?6sJv84C*utXKTb3iqrYL zXl4IT=a4vAbyA!$Qyr!l!CqNs4pa>KOeBS>3W~GBRTag^;fie>iL*y427NY?lZ~XFv~b0jPZ}0{S6yD{N%@EN^k;zB}qs+t= z^PP$P%n-4N;>y8lF-2CGDx-3?4YWlxSD~%8*(-KYUQw`f>Gw+nhC0vB6pHv zkh!>as@hL6X}0R6xUSfl%!-L66xRpTD!PjO&l{l{DQ*~}nkn+LR6E6uteDtKF=eLW zqEm2Fi8GaZNGzwgIYF(Zn8wXL&9etCV%?IXc2P{{#MZ6-6r;Zt1#zm5;x^79Hc%91 zDEk<<^Hn0YQp{jw#WwbT28TPiu-Hyf#62K(Q`|X2F}pi4bGCC=h#4XlQ_Kog%yt&; zj#o7lvsnSLn&O^e>_3Mg_pEW|B$*+C=W}rHNYy|wH(51N+?T1C#C@1IMIE5HpMhHQ z`>8StFI-i#|6a8jvS5U&r+9!R73(RAc`nvbJeZ~!#DiEkQSGF7s6a7@hfu;G#371@ z=P1uUK`Ac~hbbOep!z5l@m%n^MR=6w*5VK~pW-o|3;P&L1}J8|1doTR3JR|*!VD41 zDW2fDsHP}SRJ9aOvJzq=#nN=Onc}H2%05N~pBGIOPmfnEw1xd&#s@?z#WUH8{d@+? zbJb3YXL&9su{Upq}6zF zlG;U4Q>eNrUYh5uG-ik>rFfYw5M1`9cF1Yrl~Cy?`EoYiuHMFFU5Q8y|<=^^I`+V$79tFisoYHlm2Fi z;Q1%m;tk|rEp|R-q@t2yYfv$$t@tk&7V9Wl(p3w^|8i6ZMe7uGfa0?`&Nf!a^0t-o z0H24eWfa?oDlWPmUyM|1DcaIh6UCPk6odE@JNRl5yC}ZmrW1Q9+Gh!GNc%w^;OkOn zXQ&w>$|=4XtjZ{M`BVkPw_$2IMTcLlp!hC9)l+n)sP%L``~Q8aYNptot#(lSz!Hi* z6nlykgWiK5=Qw*=PO*gICnh48#824AbFqlx=P-Eoz$dM)fZ`7A!Y^!ru#d5yy%)6< zzcLfSOn$|I(P|ULZ(~&pMK==@+bDjY#QxjE?;TE0o*5#TWe@%+RQo7;XFGoyGei_q z91Kxx;X(X0NHNR5aEO_Ur4)aMsil1V|IG&u^8&Gw;vcp|upR%PFH2mHi^2;pG!fze#Sos0gA@_-oyY+uLa-{4@P(=66j1?HP2o>cn<%1lR3}AXw(ufi zII$?F2>MkOMQl)U(pbdhs}72jCM!;Q65{#1;J%2*$xKM}Pz;^roMKGGDTe(&WuY@{ zkckjWC{AS{qLLzExT>W%Ekm*Fr(rl37Tpx5&vOzvuV9rDaYnpaLp=^7MyRzEXC|u+ z6iMld8z>29O;B9)ER4)n%zh-!o}qdul8e+KigOs4mBP*L*+U9yK6c}PuG>nP6WxoD&qou=$#T)>SkS}4-8jAsuKY1^F(Cz=S+PLZCc*vE8S#7x8? ziVS99T|7utP>e}X3~CH6VXFiey#!;qrs!b*$99;AOZl=8y%gi-JOAOtqMTxUoLWh7 z*(kM%VgeHoZ4{SJQF|#e=Qvjw6Cu1MJix>V#j;Ptl`Oqzq{w0hqLt#RT*XPRLN+U7 zT^*tr?A6Hes|Jc|CaO*fFP9Nn*D_PFoMKXvVpfxIU6$&in7q)ro`H)xio9`Z2gMCD z9sc!hgy7uyxN*4fB5thb0j6-X2rf1SH|4556jK?bbu%**8W^ZLEN(peSU7f@Lej?Gw~aiW!Bfm*S2Rrzq4!2xeJ?I|HhUVrIOm zr2Oyyh`YF{1UJ-On8k&~DvG-kRV~GAJ}(&5Y}}KsnC(57!$8GmihHwE8^zp7ib;5L zIo!9*nHOdv#A1s3`>O@iI_%768wAhi!{fO)M6qD5>Y;dm=T`AR#r2BuU^rj@93mbp za~ASgR8TyWpc*Jjn2BhkczCMnqbTL3v>q9tR!}SoDsIq4cr;aQW&a=DY9bcrDMq^( zkCiw}d?rHFP(04k3kLHz%EqWI6i?);Jrw106oV_rlk*j;_9T{i^Eg=c37#r;D!7o? zM)5SuXD#FA5vwVlNm2~v87v>IxDS@&*|DmXVnw#HkKsMXk_s;J94d2EJH_*?jOd`K zDo}eVUYM@BD5{H8H^qxgP8_7DVMPS1QPao%zf@|(%Kj!ouzxG@vQf5!tR`XixRo*XH(O0pipDLkvjqAPEpZ$N0fBagtVah(n>!GTGqAo%$qj~_(1Y!%tMqVqnQ+$xCc2YF)Tc`1wTxAqyaoSbK!O4O53MAag4b@t=S)tt zQ*7t;g4b@x7alYC!eaDR8z&GfZyUbMRV>$+*ufHt-4uLF?Q~JJ&rtg)zUK3ygJNf% z+C$-eQ)D6pZ~g|mIDyzt@hzVh2PrxhINybs2(gHwbFeC>_&!1{qu3o#l@ve33oqh_ z8XjOzf~uqVF;T6d*gHbiQ~Z>q)>7;nrPfjW%yY4xqKoIkKE^MjE%yHx_TAdg2Sg*q zue?EUvR`o^MRBnM_>BPw2KyVjQ`IJl-?^^@7yBJOY05svA3XoVvj<*m_3~J3r1*2R z;^KeeV6x(32k}>uvX60y6%(w^A^gqjMFYiQ&L^5F{>fth?ctwRr*DFZ5L+nz<+<2O zx0*;ZQEj6*B1g4TgiKQhD2|+|x+(h2QoR&M%{HDrL>|Q_t^T|~@X7u-dcHbDF@Vj`D2`p=3>s)6#S)6+!qp0o2P;hE;CQu);`n6MND-Q@nko1;+u1=8 zmaq0woLHm|QiLyZhWJdRSVC&kG;7uzX@W-9v_r?6sz z`{)!5<2k&@VSLg$l@Ew*6bV_XjpDQ%WglZWpBKD#I8Nt+g4vypM4k&SmWVU*RX4?m zGK>8`Gf{1!NMgywL5j0VosoVMDOOXQouPJ6B+qot8E7H}+i(t2vYm7JxY$TBYBoF$ z=kW>AK#|Hwt@8({T8hy*>M+FxHBQ=i6DgQg8ZKPsq^Fxmv4`TKawlW7i4?op{|pWn zFLK6=G?9YYi~&EC7GsB*NWrp>#ig^Had9S6Y@ztiOlQ2$M2d|Rm$9POgu!Yp1wVK8 z>>)BUL@~=uT#@TcG$vB4q_{Fu^-yH3aIRu2#6F5__SU*OP4Tg-k+amfh7}Nd*#B$x zn8@5E&b6aVr0AfSw8*)Rl@WaGI!s>dT%Teh1z!=@BaeHNHCo8#OPZXyM%b_=Gbt5%9z^Axkc6$Nvh+qkzZ@3v(; zK;baO4aj%9k++XgjPiEOn4A9P7}p_3_x^H%wyn!LC@=B|L~2t^%P6e73c7laCkglby1Yfah?b< zk)n*EJg8PvJjsc~c8aB(N3c3e@ziXm!k9==PVqD=E$aCCf0~&sV`hTEEW~aE0WYEisy0^H|TSyWFpq{15^b?6)Ph6{lCbnbtdwKOw~zI&B(16d84SL zs2QoYQoJ-(vHve&C9|_$W~Ia`id8A9iQ*NmC%hdz!0H0U{;$TXrOq0^i4-jN8oZXO znkj0tR6E7%+)IL0dmVN2oHzQLNU@xvKGE^&8IAR3j$+^5#9H2Hy%nmeDH=v7R;>YV zk5NqGZLBL$eH8C3avHfQ#R`gd6NDG}ZaojMK2@=g>+#+M)kd*_nTZ~X_qivmjRO@Y z-G~pEnOINJG+uFzCVZHux@Z^sziFQH(Et-E*uRgknLQM%C_WygHd8cbsht#`%yhP} z)M5q2r>vM@l|RMSY_*qq9R54UY2l4xDaHSWsRoMH47G*gvs|^0V%uEj^Fbz3ETiB@ zxlS#`7p$~kmAx-Gw6WA;2gR3#>M+HQ#m-j&6DjH_+8L18PVx0r)l0Fn#QDZ&A_c4X z4R$4~4SfCY+F&BT9j`dax9FIxSe*`hH{a=uFp+|<{Z4$((hAP;J$5q@v6JG5B4|5ge9A_d0%lI?8(p4M9FL`PY#r|2&uOTK< zlu;arS6)32@LQVNM$yeuiXMvJ7dky*CQ{T;{E@8IQ}nWuqMhPT&LcR-pEy|T{59A_ zTHaqPcz{F0RRhJ}V^k}}VP+<{(GKIEc~0LT6DhdS`ta{i#p?W9YkVeEZK610g4#>> z8qXI}Y{Zd+jZf52^c$_3DUQliJ1P24SKSmxFLVZk8=qKBaZH-pOffJ=?V`Ip<2$xc z9i$kh}HTpD3~ zVhzPOW-PW*{Dl zT)Du>8fbi?jN+MYexkyGSc)8F_+IYn+jG3#9L{iDOGUW-W+ z73Y|Q>!zu0>T#Gn&$*rviVBK6PAsY^ZeV~`J_8WUJ|8#oT5C$4Vil&~rV@wmC4HiX z;^v`>!Fo4yn3kyODQ-zs8!4uYWYtD-dyd-9*FWD} z`etM+J~;#YGP1+x_=RL&(IjOb<4%@TY@?W&t?Xmmm8)7QW-%ba=Vswkc ze6y#k-4yrm0?|P+hZ71;HV5}|Lcw79k*aSlOE30P+*hOyQOqk=hbj1Js+e!T{`u`> z-~5G+eJ*(JVS!QXG9j9^!n0b3bIS@lYQRP{IhU zhX<<_6s7U1hT;*Pi)xBRajKHy(V(iLSj^`IpIeN__`Kk~k5#k(ONJU}6~*I8s)3@6 z=VA@T6T=j*eFEh?7b_{A}Pyxi(`o-H&!!I$E*SW%?6ep;}^E1>QimItKVikIg(s|FgMSWfXuysD>IJw|P! zcr{CLkyo*1irP!@+FYl00Q=9uSG&}Cotr~&Q1uj>)6`aq zkEf`86kanIu|DaiDk!$ZDNeElpN>{76kBr@C)tYs7N~BDmSX3BA;u>bQnYd%F`v$7 z|67^8^;wbXq1d*-`MkgJi6s=Zqui4Hae*e>V$bjXx{^o+BisCQ>5{&jR{z*}d6nz<>+ia*mE71HG#$z#FuBhhb$>ZLepzSBR% zM2TXGqr=q-iUEnLf#R5vs-9vX&n<6Y9S?9UPXwPl7K2jN7K-D>sjU=)nVHx?ar`K? zo+30^t))02L+zjl%N1S}zm+UboNA)P9*S^gWexGGbrca#w| zBz1ryeW7!a-$aR(6d4RuY@oP!ylSTyQ=ob%E?Mr3958OUYNhzkY-fC& zi4vS(JT8k+%=R)&;C-Tz;_`872Sw&$=Zb)d60G7Cn8?an-o&*$z?G@0nIfyuxr!wd zD=4yuDc+NftJ!n0k0NKDbIm{#C6-d;CMs4d7uSv#UevW)d4Ngz&UMUC@UiPKx!AdW zl!+286nWWdFU1X|PW~VhC8{WHOi`@HjhHgmxoN10x@jo;e-ry|P3455gW~2wb&z5j zv#@SSR1EGGOy_mtFvYEGr&Yi`A~;t8Zd>IP&N5M=k9r(#=O(jegesPK2JT2uYblD- z6c;VRol_MTy%RGToOM^cs-u{dtkzT9&C-i@_Wy1Uvsq&6o&X|s|tz-;?)|8;uN)w;=$?8 z!T}~qu*3`T&}hY=A3_NOw;t}N$|y>G?0=~bmChr)QFK!9M{dQVyhb!oEKXMpVlf`e zS6viKxR~{LgsP<|o2a@ep740l6DViqqK4whM75S;=>*k7@e~8LDn_bJ6i+h{Ynf3i zD4t>EL@UMeLdScS5sD^?6*HXY;!Tub)X$+ZO>Logo{I=(@jR-EofpDPlwi;=pqd$r zUWykPjKxnbUcu^R&a1;rlxUz>Ggh@x zyf#hs(q8tzw$yn&!bAyfpx05CtkzS!!2rcpiu!ETLGk8v#fjg z>%CELd-l-mtSd56);oh$9Yte~VwoGkH=SZVCl;J^J>FvrtPQ+hETMQmK{ZiqWCg4b zLinn)hYuDzO`#@AR8oAHsMwwlv1y#zLGckM5zO`@Y%Xy=jxbSTB}H?J+CcFMD=Bud z|DWtKQCkYtL5fcoI$H;tD6x#8Gq1X<7T{r4~vz^wVCQ59g_-ux=E!;#2 z2C)sF=d%Bw=Yr8&+sm9UhMOp{k)myq+D-8#ud{Zr1!6D7S4*AtcoQY+D8A-(Vl&0g zY~^+G0N*fjYZo&XwG`iuQSB5RbDZy(iQwelp)*~zQhYy69j4e_;{3qC1n>C)-kvlQ zCAL%iI9>6kAF-D=T0ad|H5B`j)jEowM=MtAXLK=e!9Oeb-ZAQze06|g|9s&^@%J}5 zODPTn6em4^-!c`e^c%WaCF}Qoim!&>(GyfFDgH=R%@n;86_f16p9L2Ce~=T23W~oH zRTIUb$!b5v-wU0?aVAQ%Q2fIQtv;Wsr{Fheojr7q@tXzC5kccW!n21aCuFYiTSq3T zjTHSRD&E`=N6m5i4>f*KPjPgH+DtKEwsTCl@ryc&f#cOai7p3zhDA>M6+_DjUuqviAgYiv5q2kyc5U2|M$mr8vjW}PP{RGQATmH zPgPU!lT2qD#VG~Ou>Qs`c+D`Jnyy+Y5~ipgiqn=j!#zee++w+`({r6fPADoV&KRZI zDMm0`>&y{~RXP*=;8L8$z(pg)$VtxGLycds4QInk&M|(mm*Sj-PD;S|#TtrpGZf2u zE=H9)=M6W0!9~tP>I~=n!NxBb{P`F?QngTA!0X`o)BMJ1pt!KmNl!L@!Nt;X(QGG! z)e<`>E@l<1G0aRHptz*U8JlYSg2|1=rSqI|3~=0F_J17vW&I~bZJ`*Sr}k4^w#b>l z%81nzmuIS-6q(bUEBYJ1SW3aSTTTM7UkmF5sHgmi%D6kkNuy-;kw1nWM(E-QCvUQ$(vyO)(w8Omm+|zMu zs@g?SFkNw;0^BxNagN(iSmN9sX8fX>Vn!^_wqL1R;56!T{&CN&>kv0A{*B9>7+z?YF|peP=#c2GPxQyrvO$b|%hU5JNxE)G$Y zu!YvcA!;E-=>XyROIa4{k)T>hv1piTqoCCRFp;&E0=Y^Nxj zs#uk>9`^r#WQ8j za#nV^XAhmuv)pXfiZs)S|iI*9SwQ8hd`Bvc-UT>{VQcV=E@>L+ZDb~z)UgNxCFGVe{6TN)> z*Y+C!>y=Jj!1zTC#T#5$Y^124sCHAlIYV&{zUA_-Wh*h*1H(J)GFqIi3<;^#m9 zw^`zKESdEVZxmG&jR|Tk#k=W>)p-}|Yn=DEfM6Bg!-h=f{b9y08Ynih-NHV`2OgvS z08Il`1;vMPs+wZcaK)Q8;Ui8Ywoq)Iq;^t#JVhO(Xl`~s$v1w{OX2Ys5BaT6GZZ(< zr`S5%`ENht7fUHxxH&~T#sB6wtv=%ytWqmJ%T_%U+bW#TSwX?7f8NFZZ=Y!#UbG!w za6+riuQpPAS>WslH-52>;;THTeSqXwg7%be?Aq zCVGHT)fC5!QC#d83@mew9c7|LJH?=d&T+#`v}mRnJj*#gV4}qaiqI*}3H?m8@Ye7E zVTr1a;>2WCPZ2&*^-v69rdEVst)hrbQ4AsyzI=6%B8rJvexKv{xwyr*P0mJ&K#t;K z0mPI$LEb1TDPozq;9{|e%W_T%G0|cjMf_yvWL8?#&>G`K4`r#vZi-XpIl~5+Xu)WQ z;nWd|lbwo$48=tgz~6c+hWkvk;5EZ>Iu{mw6nr-&&PX@WXQZ?LXY6rCEHcp+e;&|j zp-7tPoE2fB#d?a7Q=PLJsHmmjyD4!FGZm{SQn-l)*Gs{<3&HPrMUNV;wosfm!$}P_ z(V~Ll{Ge*27@e!wp3%5~RkG4p0Z~P9;V{MEE(G6IIh?~w=Wx*^)kTrPURxJ4FtLGR z%rv!+;u2QI8p{d@zH-Lm(ot$N#W)5k_EP+3jx#>M{&R>Pzty>nr4!r-mtg{fur6m0 z1s}T{nbVysxXA>2dIcsXC@wk?S28%!N0GJMxr*0`I`;pnIuo6pr5If{uAb-Qu!n+K z<=`4tL^M(4&UUWtZ=wa~x)zf%)B%d?ik-fFSP#CnRU>8hFHX0}*#Q%sxhc>LkPXu(Bq!Sp1xk>b`&wUeTtK=o4G z#>}k3!DaqeV^MFYjm4An|;*IZ}TP!laSQQSRU zF}u4lyTZ9=w22nn5BFdW0}<`Co&CRes^ZSS7jtJT1~nJ=l{)hVnP^c>aX$kST>O5_ zpR5j2c*~px0TV5l%mO@+rWniv9*5#w)l2bUxwDWrij@=(B`MzX5K1PfT@(+`bV}I@ z!D~wK2wP|^Vygu+UxY_lG0z?rb0M*Y;xR@j+9;M3JCDbiXtA22ELk!8GCVQODGxEx zqK@K8E-v;{EM4q8#lQcH<`Dfish5kA&O_0J1bI6 zwAe}U+&rgpn28o!DW0Fn{y)#MRj~qsSybT#E@)K`Qp~m*FXlTn%urNQyp*9jDOMIc zFAp`*f^B#is|uV~!c4UAw(tO}xtR58Q1PYrD%LPK>oo=XT*hW!5$9Z$AiMG78lT5VONAVUfuo}3aVE-EM_ISm`-p0E54&NET(+X#6x``IMDgMjeS}nuWW{UrD0jssY zs-gI7jOwJ=#(S;Lb;7^m2`4t&RZL^nkz_k#8PKvhn$JE&?Y zen?YHieF%i-oxMjU=PuI4m&@x=hj}o+D!4&6vf4U!oFgM?~bAc%ltFClGJ*NU$Rvf z#r_KCS3YhX;J^RC0gT4_ZGqFx0K^Uo{`j5f37BZnK=DVqYNzPUQ@bhtoTm0t94u5! z;voL=ia1z@oI@zJ#35aHj{xeh$#nF|{0NyV)P#iPM8JK7SVh_c!yxtm=E4;vQ;l^1* zF*r?evB5ZgiW6!~K=9^JoKWb5Wtf0yqBxP~g7=g0F%5_&iZk+@5n(1E_}B=X$qHCWLA8SR>l!D(2bZRIjq^VYl%Zr@MekLGzPbR!80wy5VQcPsV;t<7^%bcuXCLro4 zu9~3sP-HV;>*_eQi6UpJV!v~6O{J5YYy$8CxxC1_Hb?O#bS);$a;^(80kN23G8Yi5 zD6VHu1?RXPc}zfbP~5<4tbDdWG*jHj>u$7P|2H0Vrj(d~brVY|YAE=Lm9vrJ=6rR4 zV%h@dmM{|#TrTwv;M|pC0-}#%)=Ku@9{6QIXD0=J8qV2EaStOG%=RA4;Ud<(Nopg- z+IP>lPa|q0Db-X-AWN}ezL8|cCcCh~s?=XSVsj8dekrIbL-4+n5C>|ZH81SQ5%=-lQ&|*AR z>?{d00Z~QqIPVi%D9R=)kN-zgh9`KVRn7&)28t*1)d7m7%*c8wT(Nymp@LNun<$>n zQk@jbW~##!&n$Jkzh!uhGN$^)k*PfiPI4<0l{E8@Et2Cc2RV4Pl#@c@8>$+?m;FX zmQnnWq_$A(;Y4B|#gB8Gz2PPx)=~U4Q8B2Wz_)1P=Yb|5nB>ps;@%Prva6B(|Ai&C z_A^`SS8gh?h~hw~;v)P$VBohgs+FR9it~Gj35XRGJxQvG;*SZclcIN)#s2>pq1dlK zagYm$EfjxEbq=v-g25ib-wA3h#o;u?$q(b7`A%QZ1jKrZfAdry<@f(%%rfVQR1+gM zQ-oxy4vHgZDc*A=`Ymye@|ze@L(xB3HBlU$;|v&XVg%BvjIj@`tNFAX#St`!YQe70I=Q|e+HZfuqMOvzJ zVVH>#t0~gCuxO>Yh>3{36dAKD_CKS~xp=XOvBoqym+;u)+cI%!l8F&pDaP?}(M!Qk zwVXo~E+^-zz)<-E|!Oi|4gSIlrG4lpsIhT_VxYBxpJT<0pki4hGH z*{q=88ritI(#c_E1n>27I9$UCtlWTVq_}pX+DkF1$hnRIi3*Cz396prdM+SXrR$N$ zj71m44P490k7NHi#N>0MST`mqE`B4XOj3s_Zej-3)Ks;J;^s`nAaBOBSk24p6Ho zW^z8^?c@RO;zi;B#jH8b-2+XG-~xAJ_9(^4XXBm~&K%xv-OE2%thvlwusw5eAFC{? zDCP}yym>6Ubw48#ti=78Ki}bBP{)W36btg42f|E@;7j!Z6mxG_4<@KiiiPFQLlGuM zFo}myGD3JUCA`^sc%s@tQ94C&!<6EY+0G(kV#FqjM{}ITAtpwYP&~%KMI*(MY{j{j z;Bj8_cnSMo7F6pfp2$+X=n0fBa-NJgF@lpliKPr!Y^Qi?vSK@*LIuyo0g9)YfH*|4 ztQa1LXBfFyNU^-X;=;@EEK4nxQLON*c_GF_2ba)yjf^s zL?6Xkmd|=?yy~WCU^dp$PaTW(^k z4XlJCI)4FI945?*u=-IkC=#Hav#Cl%a~-}f zixCW>8J{o{v4djEeCN|aCPu8I*qZ0?yMi&IoT7z27aJ)4H(B*j{`(&>tz6vV$7D_i z#kP6Q=iw$stfAPRrn)G;;B{8pU{y)+B`YX4QtX(h_EUVt;Jzwn|Jzg5PKvJ!)nSUA zOPp`wOpK_b*p;q!Q+&J3>BulKVh_c4HBKj6A{cZhzF!1>|1)NHg4#my!(?@kV$T}q z$1D>g_EGFz;QTbm#E6v?`$nr)il6fp@A(;BeEC|xgs}hi@C(aj@$HxRb*hOGeG~^c zsrB19)kD$Emz4E;rs}5XS?&B$Xkx71eu``K;?E?tmHq#7tBE;S>iiXNVg$4P3x^gt z{FNLrqLJe8G>6|Ej1ikD`U;$XnUrAZ|E)1Wet*zur#Pa>3GsO*7~;cL=g2%0wEBgq zPKu+JJN?I-px8xmbgeTW*95I&c%N8FF)&rNQ5?I-88pTO1^@mpI0(m;JA-+HI81T; zS|^l~TPGOBtWH2!rs|?NvBC+@FhQ}8Vh9tkBBnW!15MEKBDsL&o9je{nxI%s;pgL4 z^Z>=Iq7g_}tU>@Wyv7PfsCtUn32F~T+ydvMfC<72p2Wqi_$<{!adM?IbgT)Ay%eXE zI>XXTQ1nuqTH+-5Oi-+(IBlfbNilq$b2oE;H3+kas5nC)KL6qgxX9oo_j>>qPT3j>ZX{m z(7Buy65PO-BXhKBrnq9V;`jf9S9F=+#JSFu3_vWR$l^qT8z~D{jZ~cED)8-<(?)SM zD`4dqRZ4MQvoJ{B5coP(y_+HFq55*3O`xZO%__%fd0L5$X z$9z^&aKFumw;cAcV4Cwls0oVg6#SISVcCoEAWLa2WFVrJ;-N9BouXu_^RO{N!Kyus z(h2GS#UslYfIaXNE{A1Vgh%sLFU8_k=dnT)w3bAuMvBL|pjFmiv2|s5B3v=(Cs5A& z#7c@Mlh}U_!6(-{{PC)wU=~a96e}ZoC@R=T>*-L%SIE;?mZ(_fWq5|=7i|>FIgdC< z@hpS0Rs`Aq6+zTG&y6=hv5TT|raDCN{Cw3%QN?p%ALE6^PBk+XEPFLx9HE*iY9=X< zlkzQ8@FiYkt;|&I6fe(nRs~H^Y@&FDZLn6e#9|}GtIX6|!wQMD6t7Kp_)aM(Se06M z{A4R=)$#Q#Hc-65NvwJztsSf?DBj{8vKqLs*hlepgR`#O1g&>?ujr%v z@Bd&Uqp;px=I}RK1VsnMdqvKM5EB#&Dc(;|8!0w2L&0ip#0Lz@YGUaH*J#3rbDd2C zO>omd_MdNy#7A)^C{|N!PFAeOW_&zOwNNxqQF|ypVLPlXteB{x_>>6=-ou})3T|bf z)_(`Uvxikq%XkwMoU8@^D|1={CMecWe8#{8+wmE;jZs@EKF?NrDYml;))%7`_sHWes|)VCC;uS6BMl!-%eKhC^}er>$^d! zg8l!Fk#)u?mbnw(^G0!yVt0x21FsY7DE3THoSYv{1%F)N@PnzKSVr;F2*u!k!ai0= z>}UV??Ki=n%bYHjR_vtsr9kyk?B^do)~^9|km5k8^IL=oiuDxTIg0J<#_#i-9tI>l z_Mr!VI_vLB-B-p(a+Wp%^?tby6I^zzOC2p?v=r8@kpxA=AVP zW_bd_raC7Y6DyWbgeR!26hr1Z5kpO^;A0WsKXK&rQTUcRQM^v@nkbKhp9_oa6w&#r ziz2YliQ$c6BSkP z1;g?bC*xbK*i$Q<1YRfhP@Kkvtl?>jj}6D^vz)|m6D!tGoH2&|=MZ}a`(lllHiHnJYCR;mEOKUY0>PVS;;uqsrKL=#2v4EDd6B`WT99%Odb!jXzuEW|^ToDySV1s5*C!=Y*g zMQMU+rg(&{6de?c^3^ViNBQ|r?4wxBT`TG-9viFnQ7l>HJRW9ZMKwj)c*V)e@Wgzl ze6WcXyrvv{m*ucJPhx3?<1O9713bk@1$Q(*y^5_UP<<3nmpRJ2} zs5&X0WkA*nmR{6RJU32wv6ak7R8l<8-6>eU=TViX*rF=DP~lW3m{`GTRpZ6+s-1!# zQi+#1zgSPPl8IR_5470-mzO%LhMQQyEcg~H_7(O@9Hv;k+KB?=>rF;1R#U9yM52x2E#6}_3{X`RZ!-bG;NQl& ziRu8wI}4n~P!lV-FT6$$@20Bl6zdC}_xhPw!OY*oh7`4h;{76LBR891Yc}Eo1|k^5 z2WVpE)`z1MtMMT=@%O*mL+nR`6c_mjn-kRzijU_y&G9ByY^L~Ry0e7=h&qZ-Gu3{I zt#cfHFcm8rC|V}5|1Fcy?eMo*#EL$O)+R-9n;hyimw(s?Ew=j)=_-T1;j3joveUhmOJqc6R>vmS8T^Fd^=37 zr|953me;{3t?wA6)tRVxQ7697Qk@jLXFL227qNnq|A0M1RRhJ3V^s^q-h906XD6xkbUpi@%*aF=#W^gC*iVsC=A0Weabg|CDBdUbP@FeM^--iQ zb3%>)CX-}lW-@JNCNncL zGcz-jnM^V>v(3!jnfG^|^SqzW_uM(>dG7nVuj{&>z5CZLBVeEOSj`qjTwbg>$cPNq z&EWU{l`BY*Y5^lM<27T9xYDg5tydzeRC9z8S8ejk=3bwxGc;u7YUDKgU1JqRwT}_5 zM$W(QWlpe$oB6q!;*Qg-XT-H0%^^nQcKKb$gsMSCh$?ojTF8idvNhWnQC+BEk!svq<5x3V6cyR3 z!F@S?-urg)1!|l8?hg}1wU!Ze`I>!}JGZkKfCQqNv!_%NVNkdxiT|U5prx)GTGh zt0~l<7v*}L;zKs%vzqHwgN*nn zLPO9W!MmnF6cy=NgO6FvXRTQ?%7{-WlWGkk*5zu(8S!bQ<}f4Hclv$CJgQ+vY#{Y2 z=G-t!{Xb6^zkQ6@*ys0!B8rL&zW{%4%Wr}a{IxB=V~p6`<@Z&zD5}+r*ixw3#fYzK z{I<>#Wh+1bSGLac`-bLGanm>8r(}MI7{O1;RQz;IQH?O-I|5U2BEG|Tli&9&pz3DC z4(?M;Fye|(_6 zT<0@QuUX27>0GDcn&}Ai*7JfH!J37Pn3=BG!H5$Y{bn(tYB3{DWJ1*jMg-+*#u;%^ zp@zjy!t4^wenxmtZWX6b@N7*dBTfm?bTcA^099R#IF$Z`-R)Zsanp6)7=`8~ozfxr*!Ja2}~wjWHsg zjQX4(NBw;-=dblks1T>m1$qscxd4fkeiu?274^IjNf8?EPr^l|nuCl;Zuh&G>r^a$ zF;WUOeE(l(3Ol-_(JxiRscK=wr86}hj7X#DR5Vx`E=$sEWkfmwsE#q>@+E#5WJyM_&^D9tr+ zP16vV3v>AXug*C>yZziP;`HI~arq51A~!?BLns&5Q4-aDM&z-e&-L_^ihHg{KBq&q zkr6jkY1qsS@D|jI)91!e%?Kk3<1|EBh?`P0n;21)r zs9$lNIN^2P8X$h%j3}{dNOcKri_j3nZ78MYs@06Roy@4#Gomb8Ly-KG%*kKx@*`_^ zpq$L92(tVj^}mzd`&1CAibkuzU1UT>5O<+6O0$#^cc*Gt^lns9Mitqp!aZa_b(j&= z?B3_z08JaCmzSClO+O>w9sw4EjAvtyK#d(Hf^&#fZmJG;0~rmZ@3Kh{s);t&HHe+x#XN@kEJck`W!%)W4$| zNBo{-7e1Y$X=cPzvoynu=*sbXIzXJNZbo#6Y3Pq`Jd>&+%g>;P090hH2hVz&ctJ0z zQO#$>+$at8oQu8;%?3t1SE)J1i2enB&vTt>3nS*$`|IsSGUDYPzad4Os#T15g;JGNfXhTVMWLy$h3^E3pr8DG&GD(?RZTlAV{MjwLo`P!q|Nd3R2 z8MY>C7Bb=+cCMmpzwz1cx2;f|Di+&@Zxc1cjMz?~Dt5WuXRqIP+^6E6?=YUE;m?0K z$MHRpsyZ3L@89`RiXA>g?ehbXt2QxWXS!yD5kH1&dKfVgps8f^+3EKane*}fG{zU$ zMVeLYVi$fUAQij#*@q1HOcrZ4GU699r&`X4DdthpFH`t6LNmaK-DFnP&B*tEasEbx zs%l1`3BNrqajI4`;`caBAEVDPzrEa}8fU~G*_xG%*vEaUAx8X30ID{|HtPT9LBIVa z;#6&A!~rH!G06cOjMmI yJBc1EA0eut{WsoKGazug+@{x=S%YL+v4dHE+%Gs1`? zM64p(BlsVsP<1lmsA$R=eRlf&TOdx=W=0%iUezEY{tMRBGy3eJ{=9^VOS6g*$Hi#+ z84)m3Q^)AD$M5(&2~(|M#I#t=JVs0p)KoG0O!@^DOPGp3{}~pzQNm^{nP#%Gh^o5Cz4LReeT1q8Tb09G|!n)yNoIKJTUj+2Tx61 z=GZW!)i(FR-7_v(REg18ILyC8ve z59kfv#P|y@h*kKXXV#=%Wc@FpBD+H+>95hUoj8EykXpxmgFqi8efB*@H&5Q|QFV72OG9wKZyS%^ftPSzmPp_9$XQ*^Qu zWlo*!c6xPEAEuLOr!ffv!*$YupwkHi)(D*}K=c_pS&D>6ovelHOeRB4lup*eb(T&x zp)gt}6R19$0MQbolUe65H-ckz(u>e@buu4Oact7dOWb)(j@WocB%IH#k(fa0kbHqo zRw5%&CmWG-p-#3SH;F~zxkx8_QIkx%FJ>`>rcfRzm*`{>5>hE8k}f41NKYehcs-Zt zWFKnMDFd1=Cvr4rkc}(Y0fI7h(h2jGM2^TTB1g2p>NWYnWf!jl~q3{-+Org4%d(nC;87iSkOT6snHqws7Qf@-t?K;_k z>N29gg9V_J>tqQM@6^dEq*X8?<1U?SKz1elfV{gY4Lnsk*@en`SP-?7RT>lhLD02x7iJsCmHgDisL2GWb#hX}BdbRv|E3?in9-a+ES z^b8W4sXJ00VGg)jC>6>dWe#|2TXk{-b&oNkwvGCu>2dl2P3`9n=&7PcmX= zCyOKaDLNbaE_Md}(*%R)Zu$g?&*)?fsXd$?q(94u)L!bpx>qMzbLnhk^-*)=KF3ax z-%qs2f1Vyd`8*yPsD6R8qI!T}UL*+U=j&t`F)z^rNF8KO6ueA1Q8A>G{b+baCo;?_ z!OT}lS=Xy{uWkmHmEI!KO2wBDh%gc*>Iq5?5yDW;76`W1vyhrz+W@HVgGoPWx3!mRalDD;yT-SOoe1F&Sz^FGo;!oL&y2I)ML1!|{3v;5Rv1F>ShDx?tvCSel3E8G2cP z)R}sInAS`333^$JOn(2uyPg;KiF(9!=vc=FvXzaS`ZYWmrj_^(8~a#BK5Ku zX=f5VJW+btkA}0jHrh*6(fohTv-PqFF)?~siuiN%vI?oOdRdR`bGaG0aRh+M^H>;F z@uVLO=acpX(hohqYCnYNM7=CQ+=T>y_$0k7NBl*U11ZUjUS2XUCf#tSun1h2=w&;K zQrRV{E@crkq!ICDdg(=EI+G#oa_)sYgAAec3cVacV17y+SCMkKvMDEu zucrP}ywv58zH3Mu^e&=D^cLErrZ|6B$8f5&eVeo2maS4>us{7QKuhrI;I$f2&?5QCGr(x3M71rFvP2 zxZCMuWR;OA6yHHj(NInRcakAQRS+Dq@6yXSDk{kgTJP3Na20F9dJpxVe-HJqrdgoe zOR5l6qn8DUzK_}=s+P%+dOr&zyN)9S_XDI71@$a~z6a^_2EBA3@FBf4;V9}F8Bxc2 zM^N8H|DfLcuwG_0b0b0@;iw?Ag&iRBQ5J=}l|@kUm|l*drHzyFIA4dWw0F-bFJb|7kLdx^C)!jF-k|hz<=sjA(wAn|k%K8TE6?P9JGU z>~l-N+f^SR?;KdIb5a>3$S`#HsP};#tE7DEOE7vevN>vOi@) zq_3y>ko6fO(l_X33~8SeATl;`J=|X~AM!S_Ao9K>K)5&aJ_^2~{@Z!U+rkIP{+b2g z-b%#C|AxTe*`}9WDE*fDp>jJ9CX{|heNi+{L!s(>K1byaz3fHR50ni}J2}EX>ZKjC zCpgN`|3ub*qW;!h96f~nOt&I(l8#37FFcYFGe!Cl`zw!TB<|+Phs59XvJ#1V7?J!t zyGQa~9$ZNLgX@s6kNXh&C-Wj{KhGDW9pJtLULH6H`2s0_@c~i}kxnH4%>;-)%#Dcs zhY`_72ng~2<1`@os9x5={V#P#_A#=E?EfeOTw;*T$UDv;+ff=|kbS5=-XQzEywprH z$RX5D=MB^Z^51BjVUQ!Joyq&CJHa3aQ8&vV$Ix`5L1qORq!Xbh8Dt*9W*cMy;!ifn z3Zw=bWF1_m82BOEAf6C|Orh#jgB*spJ=7pZoq_*HY>-4f7bD+bkew(svLG5w1_?B? z5cC#<3?R~KkP)QV46+gVc7sfy#KFBNRv1y}G{_F*hZ$rX`KK9V3v$94!wp_>oonHL#kG4hfPauh=s8zd`*#n5*N zsZBM=B)Ts(NOGD%cA@<;gT$q?5SlJGNJIv~qUH*ND47I@>MO~37Hgu^dzC?EXB%WG z3a>UuKn{x{{~Cjci?SeR4rRbRH@mpjAiL3(OX{!VYxLw1!1V-!&V0&v1F1)Q0m0nJ z*XSrTNWx8&0&PVGiM^R-gtys4+HN8BC@-e5&~+<~R6x^j|q@b zOWjd&Kc@gKbp{E3z#xN&uQ%{BVkUTy;84-Pbz#9n?$&_{-3YrKKH4jrpv^JCR zM-0-Bh!!pwZ6Vr6*%3-xSqzOZ`JvkV-_pM=FuDl3gPEed>?WRdhd^KHzwcaV?@hG{{P1t>zjO zeMH*Pu!dcK%no5+%MOwFi9y!Fy^aSEsy`*@^~{5q?E&v+1QAf>4LoDVnBNQn4? z-ay(W&Mor4WM`<~Y>=R@=yrr}q1ll1H9;eLD?3ERH>4UJ+YDm;meL|^JM~A&cRb$F zI?i*z`#n)2euqI;A?pV&Lg7vVLgSA-awn)iVt(QpWba}psQTF;(ILr9)xly%6NZj^D91sY{PT4op}l;4+Fh!nmr#aiUeGRh8AoM@E8XbxhY zlZ?^_WwwzY5si{?vQbvU#rK;SN9ieCdy3a6Z6QX{pUR?03^mGTldNWh%y*u z6sbm|Y(SyOD7(>MHp(mu*C579u<+QJ6rFZ{MwuCDlpfg6WVeWqViCB{GRk(8M;qlRI?iUX80LZN9HUI2 zHr6OX=NkEiX6}n4a1@q~PBcnCk}o7hs7oT!i?|S( z$&?7K7aJua#VBh~a*0s_Qb{wSF6BKGrcoxeT}I&PMp=ri%Z;)V^%-RP3ZpDSS|*v! zr2d6hvU5~t8RZz-u42(_0zvfEMp=oB98w6+HKZQZE~6Yl(;Q0RHu4L~^u)Df2`RZ` z3GVC25~}iy5_r8)x?#;{aU|YAuy7Sn|Lp}d!;M6ZhC(L1$tb5zU0jf%{2qpU~vokrP$LT?4>N8Vk$ zf!s>|8+mv0-zcbJgzFyCh1_aJ=0#CG zWkl73WDwrw2AT*>4^jU{ju)npl@>@7yF}o_e2yciYi304BStxh`WCKxlRmr_9tjeC>_*)po2G__^4(l<|3XSv8NyQU3xvLd^gd zpz=kdOrm5yrvZ5{kxJwY(qPDbnbae9h}5Fs6?zG!!yI8Wyh<-EARvUjMqeO(A&m$3 z>)eB4?;`4f`ZqZ5i#hMGze#!!wS?w@`z>mUnh{d{HamlUDVad(I|PBUQObz+Wi;+` zK11TW^bX2but9Xc$7d^zvINoZGdH}stC$?sAMoTt>lllCNI=++mer*1BX)uCHPjO^ zAF~^ztmVOi;!j8=>etabpOSJY>$wKWpK)@KzkzE|{yFoac_Zccg8H|7!A+Zt(ul*T z`jRrBX)}%Y6^~NP+(KZO_B8<^WGiPKiQiBX%(bf^;#7cMC7M z$C+dtov{Ov{%+w_LAtrt?*(4>Wnq(5qp(Ziw zOtKtqy-D_>)nJk^qe)gE&18}_$S|`2$}A@S!5V@?yv-z=P-ZvDGzae?OfksiW0IVRbO(pa*HigQh}3q^4z*^0dL*f3o2WXQ`)>iI;3qy$oexC>0O7%_<^ zS%k<7O)?03l1cgydXY)G5Sq-0kc&;yjmQ+{LBS;^*@u=?GI*&;h7p%W`jK@RyGD7s zNe;r>e>o}4Fv$d3uP{keCaFX1l_q}Sn4Lp^6$>LOo75xoYIcB*9FthDAxOly2p&mu zOtKCYZUVcO)FUF7&yaVWiJ!2N={z!cy-9kmr~c9TM24&zs3SZDEO;Ydqq&fJ-DHxD z$SpF-6xwb!Nsz}R^O0~1fuO$FB;mKRd*qgoepK9MlEdgJrCD!hK2(%ZPPE=ZM#{Oa zocb@g(0PTX1bSdM|=(4jI8@eE1GLr?0!xF z+;ucG>K-u3?0U+8_y@TjDGdaR9PdLk1&SN#aMTk}V3SFD5%w^tMM5);hq6aZGP8w% zk^Cr=qpp<>e~dnWvCSj{NPe7hqN$zto}ej_+QA&~JV{fcu9GZ3Mg14^;_5QVe$+k9 z;@xyMqMu>+$nK$0Fz_rX>*Z9yGnb>*N0yNA9Q}fdekOdLU7>Ow!M{KgBV~Xthv!As zK=XY1;w9#WYmoXM8f2oEnS6-mLi#Jz8%4up1a+?x{Q`FW8VjLsAr199yF$hyvWL<) zIKpUKOb~C9A;d2s)kuGf@*#JGdZX-ZuEoGoGW8DW-ti6%G0LRN=v-7Sr(W+;U*xSI zYIMKH#VffM&F}O1DwA{~@&k5^(lMTpA95lPyqd`o{Sg~N<{Fw5r602}TGtZfC-egn zyzA(Gq<_lfs8~x z%7D_JI1Oms#biJ88B!)qvIS+o@EKaC$kea&6XJLCC`a;d1cvlI^u-?P@A;jl6&m+) zuKyr9Sod);a{eSJ)b6Lt4^Rf!50W}0{YAOpI>e$V|C?(Lb8-;<4`o5&5qbzM|KnkH zl)ggwznqF=98qNd=j8{R|2QgQ<{QzQWi{#p%o2ONS;pX+W|m3RO*cz;pjk$cHp47y zQ9IKtp(mJS39@FHWj9(+H1h}BxEF;dndK0=XPf!uShH+HLoj~}^AxkJL0O1dg1o1i zWhJUZ%@U*@_OUSt4y_S&l4+Stb;-R5{He zVP@%q@iemxB0AhGn^AtcSpp+?52Tfbjb`hJpnIKW+G0S0WzlCxa z6Tq!zndjvtu7tXy<~B-!+EM~R)9q%NRYv4Uy2C6xP*%=0sK1kI&{|=Zkh|D9k}A0d zWp}d>+NxOm9vT!G)npLm_nPG>I%{a&`>1~}FXmdaEJf=5GzCiP*bTZLpquOY3^@<- z8Qcw=2-H7BAgF9)F*K9OpeD2QA^c&=h~#D#MfD?GgZdWcMg5}$kET}YAMh9rgPCn~ zKJ1U1Wf&3dq#dp&%(4ru9ZdWrbw_-sS=J%vDH;+bT?B*nr)kV??nlfsW?6-t9{LDH z&k{JQdMV>v)KeYCzpaKkK!wpS_b0s=(qYs|BdUP1ZmX4#L%MO^EBgXTc_VjdP4c#{TN zVwNGqy~TqBt`RbT%D1@&?MvC^JJc14qa0ZjE+b$xFXyv&$r2)0P&%Z(M?e@_$@T9O z1ael9;SZ?)C@;xl)C=t&(r~Lu4U~^)DnzZ}GbDe^u|mOGGKS($s43R1GmGa_0z=1o z&iiL%1+^Q@GVODY7*aOU^{D%T;5HEya=)ZxUsC_x%|!SW(W80`Z=&vNnsO_NcKoDEgK@+0KbT&Ud5{J>%@^dpaL2I|%p(0zman7WRh(Fa;&6h$*EA~P*Ai1ZV<4_&h?l6ay;wxcD;A`vH9WF2Z| zTf};@MZBwcDGs*Cv{Njy2+<)HS%UaeEiwXEs6`Hj21bJE|W!! zX6{F<#Uf+KvvME0ZG2|8$N(Z7+y}Q}kpQPfmOCx{`d=7PpJtIEq=#E%7aC5t$jk^P zM$8#ph_pyKq=>e&{VM0*UIIL9IzQ5{Qm&b7!&l*BRTc@|lW zym;0;pUs@_wMa$+H=^YNi$o<_WIZY`v`BE0MS5Ys$iko3u}FS0J3`mR1dw8p`G~lL z2@#*lH7K~$B74xC#$1&BWswcYyNWEJ zJDVL|&DSW)A!XOFQ$)JB8P#*xJ^J0ecP(XuJD2&;a2-3$V=+WsPp_ah-y(rGa2?VL zEV2*Y<{L?IA<-lECL%1N6ezseA|W0wM#?Q*jGkf^x|MVywS;n@;5LiwM`Njl-yh^& z#Fo(m$hpHJ<0vn;$RRY}X_46#7MX{LyC~sZ)ZbNUkqOk?&2G?HMa1{e(MYSd$R^a^ zYmx98i>yJ}eJqIHT8kv#PbT21qr*}10O?08(w? zj5e{uhnWcZ%|wdsNBFSCBEyJ%l+TdeYLOkNevDnT@g8y>XV>j4j_tZpyMC6gMRPAV&E;!U^l|K-qdX|+x5yFn zKW~wwd88H%FObRs`Ucf662N>GLB&h#e2|6Vd6@-=$O6({A=_vkCZn%X|Fyi7FQC@1 z(fO!YNXNfU{ZPG#N!}m}$XLvRsCkoF!_XE!H80Yvy>W|9R7RmgGCPc>?Qu#60 zVfk9p`3X(Cj;~SjDZ#BL1L*yXCf&g4LG$NiX(J^==@*=WO*AUfzoh;XUvj}_QvMaY zM(GwF8eel{P`j0m|AupntZf8?yl<&38n#ov@3?QA#ZmS>y@S>r^u!PB4w*aI9Lj#A zY0)@gky$^HJ=k~g?C|oE@-vIUHEEHfX#a(pPZ2GOf8|Cr@22T~BWlF%;Rqu4ce)+D zd-?hgO1O`C(DWzw@3+V{v>YI-2WfJo{zapr=nz>!>EG0UikFJREP|?kXfU)Mp??1( zN`xGx;h_9WXCwX?&4#-F$c$KJBTA05N>G4R<|F=itL#MYG%MfO&?@Ut8EBP*7?{E5 zGp(`;H78gldKUle)8s5ZIMFKkL00}0i&YjOWi~gW_++a{FrTA>f4n#?#44+ib}FA^ zL8w&{bbJlB-YPp#YOu;))Ece)f~ZxxO;!mvTlvGLd}guAZd6&VatIAJuT>)LOp08G zRra7+vC1^3RoV~~X62_+1a_KLMvxS4m4MT&vJx2)R@nge8CDrbMI^gK)0tKYjIzoo ziuuQ_f})upMQ2+jB!;h1bq@b-L9A8Ayu6g0Yn7wujw90Zh#Fhstx|nHyH8*z2)KZh zA|jDM;J%Q>FqmYO#EY!59d*f8nRziAO0micxGy0iC{4A>KGa@nm1Ag0Baq9iG7N7* zIuXHjIg_9?gNxC8g;n&KEQZD_tuiaiDm~C&WtAbMWLsqus;(wmIeZ2y-_&j?+%7hO zzBvT!w#pJ@Uu%^~H0RP6*HI3X*^k!8$yz%*Me-BOi;@m9gytv7LMO)+-sGpOvL1z992+!0&5hmc z44!9*9xXkbfM?ku;(I9p+;gomf$Bb*7d_9>y!}>Lj;!ZtJe18NGw6ST#RoWYXn&Ep z=93Y`yhQy+U$RR2Ad_M7%iKJ~PEhd*H=}!)iC<-6WGx`=Soa!fUr6TA{5p-dh{i+K z8#FQM7L%-iAPpK%H{uoHxT&ZJ1$XqC-yf58a%CPq|zNx-Ps%!uxUD<^6^=P_T{qkMmOTEdgw&PDuQYWVG2TyEyZR{h16Rcalw@?iXr4MJC|-mATNon`g>z)W82X(zS<4(fvCM?G7qr_d2k{7FD69IA>Pku(2b|i^%`cBS<;Q z^=SN;BYuqfuRO+)`;TTrpV%bnIGe0RPJm5zqULy;97E?co0zBDWC-zrHd&3l88(TU z$@M5c!6pf_Y_bNqC)#8;mIm1*^(33DhiA4;4x`~@n*;~jq!(82DK;5JVhEEU^HiH` zMSiG_ze-_~Zk%x;tY zXm{8oR3R|rI&CsD%qB~){WP0+gHN}~e56L$_~Vy0X+DEpM%rW}%Fg8CD4Pr-?kskJ z!f2c9fah$R>_tP2O#;thH;9NOP~@J=CQukh7SM8@jelv8Kv8_YO#%{ZGK}O4Y+l)R zflbO2Z6X)4Tf`)BA>0?)WDgpXZ8G~}n=C+53Om2VCJT|AYLiVUyp)}zCXF(o<1(A9 zNN2p<#t&v>=n9)`Kxw8;4x#Q!n;bz`mQ5nB^4etiRir!HCI``VH8sp(7pT03-Mgqa zGUnK17wX+)=UPezcP{r};5vfI<8#zsPfha)0InMd3{?fpb0Zl-WT8z)kbDzCA>UiX zE>VB8O%xAlLF_F|fP!M`je%R)c?tDH&TUMJno^qt-ENZ}#Fr5;3h$saC@v=$l-+5Q zlnUyM>buxIhALV7Zpw?wD(XM;9#V^xYMYFs@?IJbbu~7bbssk%v6dS!?|we7qgNha z@p^Uy)`64 z!BO}u8%1F+8|@{!+PO3Yn){giIl2{r{oIU@=WWsl^E{jM!~O!hMAQITL+pz-S&Z2E zHd%?Zm&g?I2FU_SUnUUL46z29U!fO<=`)19%G_RFlm(;^5w9^hViyuI(qAVdC|yJ; z-ry#LEhZDFeUl)UPy$4}MMENUgj%EGZB7CfEVW72J3Ir>H%i@?(HH1k&T)R1YvFBP zLG9jSQk1VGO7y=^5Ubb`az0=O=oq6!AF?a-t>#30MEcOThDAPRK`dBHM}K1D2Q%hC z+^3WhjqB-`&nOLwHt_l9)E>%4>c46uwfKSwuwWCr{*uQo8aDIP`pPDYkg|m!(C{_S zf~}kg#C~IwF}SwzAVT-IoRaO-78T!da?m->BH#10L+TE8kG>x$(@vXAV(3RNJDFf| zwEskB?&2wj!k>9oW6>nd^b1chG)=LKUnvoick}Rp=Qln>%^rH^cLGDzUYnHs!GssdfrSSN@-H&sJ;Y6j{hJ2@+746We^?ytNBH`G^a4tcQtyBHF#_es zSnNNdM~0~XjvKQSa@xg4n9L3U;xgppta*ADskP~8;J?K5vE@`25zE1%Q=O`+{{yQDW>$ z04e9%Wh3Ur*`?|{uU!J-SpcEu+hq_*30#1DzRCGsG$#`Ah1`tvB+`xAi|ld)jmhlr zVuD3fid_~V;S#%yA&q}ZY7KHOwaX@W(%1|tE@OjeOea&`%kBJ5mR+JVNI9CWu*{56Qr9r)m`{z(n=-p%qao2JU+_`qy zii+zfX&#$~*L=NQ79cam?XqQz;D`W?7-^7hYWCAfa+hqxIJ!ArH zx7hj4-IM@Hx7uYJ%1hW3T5cmdrECWEw{ve9&57PSsDETRA0YQmJ3sZZOK}BhN9SEk zSV<<3aW^|hUllvPhwHGsn$p}$-D?O0x%b&+61BCwcfVa$Ag9hQVGnREGV2Kn9S`z# z17&-N_aE{SWh1FWKVO$NQIm)5{FICLn~5I1k1$CKyGHt>)E_0SWa2S`Lw1{8_Mz`_ z0&XW5c%GnHv8jV}KS?P%2?!-m*(I=x%^~z@=JxWU@1{;k<-H>D1DYjL31xb z&7~xW?jvesK1VH4+HaS`=zQMJKb%UC$a;Z(LG=KoLF0>dIflmhjOciYH3tbE-k6tZ z4ipS=F@|0tfMEha!>dfXfG$SGYec+|&PM6$1hk0bin2Gz&SHYWz?;;02|a_-x43?U z4WayPdTJ@Vh4K#fj`Hll=rZcxy_^f)B{FPXK^otq#w)2Ys@~^#uA+eu`2mZgY>YtB z`yq|AntM?H5f7j>+zaJnP6p!F5(qLs;W(ps9sPldPYG;2rw+-VdHL`&Cfz_oe9lQg z)CeAeCzhoy!-^?QxxnFUX(YwViiC>c;^lhd2zOnNI5?T0``L=VSF!mi8 z9jAfO`8{RcL0_Qo2eRPhrGBSff_`K&C=*1D!k?%sT6gi@&(s{*liYx&U)aGE3nJ!M z7C`Q9P7S(#BiKDW6;b{>O^D{bY~&B-L)$)T|0kP4-hS#o$xFilCOXJ2Q1ll~hqgnc z^luhH*kQUFDgSU(;XXonQ1w3^Hb=PziT~PVJ<5*p1I&Na78(A3sZv^wbI9xfhYTa* zc!%sp%QS~XOm}!?WV%B#10Avv`7<0cg{qkjF`nR%A;iye$XXPi=#WEb4suBFNe+IU z&>`8g9WsHYles?F!5=7eNX{wz^Oz_JafqDikWNH~I%EUtbq)#F^EGM=4moD3Ga_tV;g?b0?DFlOdr$eH{9I_har!gUV!W|NGI`g3@ zg6q(G2Jb~WWD@OXIwU2EuTkSY%ORoB>;~y)vm4aKIK+C6L*^qcmc`*Ymx<65=a7W+ z9I_Ra@ebLKy7Sp-0+~U`1r8ZRd?G=i=t76=Lw%A%j-u%zu1RKY#9r(W??ztAQXDev z5{Jx#J(aX0{8H+L=rl5dn#&wwPIvH^&dJ2(1cTNLuDik^tB{|`Lg>Dd#j^+y)mKsX zY=*jMkzEx!WFgXSa>#a+7C9vFX6{9@hwD&(3)wCvAY|Uke7AZ@UkMF$ z8$lqol)54Jc1nTDGKU;N=N&9i&H_lg(;=HtS>ceNyBsorm`XB(rn?=ISjEJsx`)rJ z`5YDZI^;0gYslz*4q1q8Fyb{h*J zhrlP%)WnV+rq-xzrYsnEguZEE5fnU1Z?tkRf*+&Ah-@SM$bFpp@8reP?vNd5euC6? zIAjDFPjXJt-pS6NqN$M8#dTOm-KO!u&U>*AnXW7PUsp2ot|e#7JFA zC!^{ehs+%1*dS^d3&6FUvY_c*QoDj|An83$3o2I9xbL$#5>}BJRDD3!#@Gy^K4cE$ zdsovi9}x)}*U&H@a}%Q1@)Se;C)9i$Pe7D?$^`4l7IHpw$X?WKV4=?)GKzwY^bqR4 zAoXb9L@#~G@kG&PGV~QeB6|y^Mf=y(-?)`@AoCj<5vAM60y@5>ZriCXvcIG5C>v){ z)P2v<+QCi`@dG75_D&{6`;P=a!FzE3M4eH)iy(jIdW26BEHZxKi2vg7if76p2hsW~ z3-0EjgZSSl2}<|yOhD7`WM(g!LF6Cw26Fc?Icoo;!}k*~tOwW(vJcY8e^D;P9pZE# z|8D|B(_zZ{4<`)CN2veiBmCg*x3kJ^j+4}3}5af<9fRe&NP z$1Ab|1=AGShsNoO%nnqf2Vpa~9z`=1*@NB_cyAWhBkM#(wxK*o;qQN*#E0lH3?DiRpRMMybKk#)!oXF-&muE;?&M6km%6q$#x zNESx+nTqU0Wt1Y*&SEo&iB@D4^3PUe7wTj9XVT75WC)qDicFyPTt)P8idW{xDH400 z!XF@HvUo+dqWpYzfvyBa>=!7q9NCGAOrq{WMUJ5-Ns-8lxDQ3iEPk;f?Fdd`6NtY= z;k&31e5xWrmnyOl*=dvmU6-+DI@wA0DpGtoyF+^h5nZ9k0>o!3G6wgRM2pfaMUG(8 zReYXJDXu0MH0LP%t{3%3ql?Ao@Hyh#WEGxk6*+{iT&}xLkwL`e(Fbr{&t|>66y=j9 zRNTPDs4Gz9DB5l$@lQ_#ixs|eiXwTp5)g(;2>3S2 zdOIaUavA@PhCAq~a^`{8btj9Xv_g?7RNO`CQC+Es+^t9_%vGch+4s=7D6Hll)Z9xy z)DReQ?xPRTR7-E%ukgn*sDB-Sp!oqByq#NY(1m}dCw|x7=67=IG092O&|4rj-v=yKNFz;c}3FZ z(P$`tfs73(GK``ZS$sZOL+(o)SM&_B*2}Dg${{{~g|c~hi5ymBDN))U`k-u1x{pfm==fDzZO$F9Wn^lDE)%A zWxThX`uFn^@h-c9YXx16hWD6cC5s{ceVT9;@1x}d(mcl5M)8Ndznb(S;v*(U!5RWW z>&I+hEh$IJCp0B;*HKnfeoAK1xt?o2qyEF65&Z@(M*8P84Ei?GFkkQ<+?!|^RD4N4 zpldUo{uS9l;T9SZHD4<-Yb*6cTlh_ z0x0`|8_=?odC8v6o2UbxM|v zpwM7~zW+xWb$=h33Ph1cS;%Hgh36MMM&xqx2%D97KCE?|Cm~0u-jO5E?IWiljREyIW3~d8t!65S&KJ zkaU?-wxTrM$+zls%96_oDuaxm;tD6fZb+&Te7n31>j#GA{#qH#GxtubLj9jNopz=CujOsixbv>UUE8i&_QFQ|gp}xQ= zp*K1~ZetQ8l{#fL zGH$0wkX^>4D7=HJuk zOLHKkhFZaTA2%ba)+vh+dq2BELLCi-#0O|dq}7vZWIRYF;A$W+xF2%Lc6b`eC@NUz z5E`0T>tQmCpk~VD!|JjxM7T&q)7A>}a|2bpc`0ItXB19;lmJxZRS zVNu=Tlp|<(lG=810x;_-N`;&*7Ji!SBCMN?AoUsQzmb=c9->3jvjo%2&Ji`2og$-; zGmpyWXgVzD=e_5hvIX_?DAfxzFgydK6P+)zz*b8srcYKJXacT?w_tX%9JJ<#G!Se%Mjr5(I0)+oaW)LtzUtlNlexhuM z-^C)(|I8xTkK##!L-H?_8SztO1`)qf|AAkLb~l}gfZyn1OyK{FT?bfH#};-0MFnM7 z$}XTZdj;&V0VWzd5M!D#LJ|{=Q6SY+AiY_Li8oasy;(>z%?Rnu2+>!$$SW zoWtHsA7tUBbY#D?yGHJqa#6406O`xD_ipc1bA~m;`&@cAYv8xtCRsJ#b{j$eL|R?H z>o(e|*xW6`y7;?p1FUzx>z23U3s3I@+5Xqli*{7c?fuyi^l1RU)bl&DLe2C z{GPH+--1)|?E7tDu_sMbo_!x$7>M?Kgacsc=)QtXIOv#99I`Hu*<{>Yuo;~C1LpQ-Us4Z1Muw`@d;MngKStrP<0p7?*0@&>B}IKTd6n8}98Z$vUGg zZgk+w#x<$KqUfV}UFbg%0rjz*zr+m)0PDZ#D}nO?b4XxupqbGLlg)!SI-hl0+kc6R zvFfMA_X&VEOi7ot=7LtZ1gBal$=wpIir?bmtX;pv#Rkxfbc7FGk=!kb(1QZN`qSdw zR^~VHv0^|IK)Wl@X_-+&t?1w5G6KNd7yp}6z_#yQ39w#pC1$qvs2uzQz?jdjm2vnm>rl>SQJ^GI3~0qFr+#ec-j4Uhrf zvUw7kdkPBiR_4)Pk3v`t`H_2m_4osGqrNG2>iMX{kzQ2__IxKc$ z(JQeV-)-n_Wpz~vi;vRUJ?#zUpsfg~f+t8#mE_8*uXnaaO^&sMw8ZFL$>#v@^RT>9e8Ykf&7^u5xV`HqP3J z{u{rFiUZfNR>2gATsm}A)mr`JXT5f z_+_Dp4ggVCkI=jh6tp0Q$q+;91c<>o4#Mte8VAYGHm1Fs)uEma_I2?CrnC8-;M4g+ zRJ^pfm9V%W_^P2P(Q2I)*5BGNDXPcDnmtCNI>cRD1==9}$&pGEW8`Cczuq z-%r?B-I#0|G{X<~5-*<^6~D1{4`wxpnX<1&U>53n$6pwjDWSV;up@yY?kM@4LR)Af>pxRsAd|_EiD6aBvLxFpNv*h&^!jsmrscrW!3bzg)2s9tOO3Qa{rF&qXkMv zaU6h6ouN2h0z0NS0l>nkQ3E#Se%!M|J|{}>U@d$Riz1BEppT$1Uirz$V8jHFgf~e7 zp(XY~H}~<1@dyAXqt{*T`1t`TQ(7W24N6O9$_GK~=)KkiXqr5$jK+m%UF2!mdY_le&FLQv)-aDKWP|30C*LySj(I7Qf zK+-jN+0(Uo7{i{lcr_#T<*g!Bqr7###H8AZ1ybh)=&xyChDl~j6!|2xjQFG31V}Pd z(NzJ+R5tgwn#abE3P70D3k5`2pE7u+aL0J5aD5|%61GV;wUBJHxJAfNPqc|)0VJ(D zRsw}2^+{$bx(Fky8mJmETY4NPo6}4ZYAo>@Q#Lw0-Ul>j)%H5KlvOT(Cjhu%dejgT zMW!w%O5kwPt6(BK37DKA>b!{cOZyuMa)C7x9WDlD-}ET_lpCYN)-NXmlQ&ci7=jM1 zoP<8n%4vzjq>w)8B4ty33V@|YM)lVWht2g;i5X-v8b+*$H1yk$w2B49NQ%wnslcUw z2M1w~dTc6B6Sy?fIN3~|jxm&tj8{q*Z2p#^*)dAhEN1Fw5ZB))nbbhYp1GJa1vteT zo~gQify>|SoulEHqvgQ4e&`o!s#gG#{{z&|E(QCXpM^2R%!o?Y2(qxW5}3>xoyaE6 zmOunUy8@A5h4JQM6suso*3wU7vQ12qj0KWH@MM9ad@GxQ^NGUG8PrL#7WtU3yTFSxL`dfCFBG_e+N3l4T?0tY{y|pJ7+cI^T7D65 z>-P^ZO{86WFUBwrPK?h943n{S324O!rbR#3oC(#q8-a^i(!U?TJmvG9ZmvQS+dpd zt^~o#si8B2t3a!%75ZXNSl9rr2CcN&Q7J)v6pIhnNVM)N#56PEUkhL^ku~&Ru*xgr z9H{+u;Ir&kEO!PcM_W@zI$YZ5kpu>Ekn2_OmOtaO16sreb%TmKD6rlCZdaCODuo9 zog#(v&jD7!Y?Tair+0vvZL@<0_&d?ddQez0#}>1hIou_1$<}RuvCRW@*mt9+ym|2= zZs{JLx#i71puxopVYAGzTB6mkqL$rjz?kFjj`O8jfivbyYz2M~$u#R9k;~~TG;+Tp zOw$VdUI`Q#oiafznY)iV{TDvO5c5>g-S5Q(69{u*4+yaC!DuNec%!B0gT!0gzp2)o z1yKoBb%8p!{za)k)1veti5{Z?{ds~vGkKVRwTFeP)fby=H{uZq6g=9}548sLD8|xo zIAjca4D;{Ek4iK7E@m)W08GoLf**@M%vEj$rXW8mQxBTzWNedk2I^5$<$F6YIg3;i zXNFlv<8N&j8HJ)7cIAE?bPncY*|YpOX2EJ-PXN=aAS$Ggo&;w8@oMg6@9QaGN(-Xg zR@V2C5mw)$;2={z#B5~;hH2F~937Xdo*`uMcQLxPu)y*x`fWQY9!V<; zK7Kv)=c~{8fLd^{RTrL@K*dqBl=KBOmn~LnOU!ldl+7I%9$xeT4QmEQaTkEu5sne2 zjFdT!dI{`!Mc?298oFk}eF?z2rJWG&%RXR7!hJ;o72&cN|0;1-qzaeu^O|f<*RvKi zg1_#=@KmB`bBc6z)8M?`5SkU~$TZ4St*yT4MRx4k-|{03Qe_(SHaN`d?igk2oXz|@ z0M>TL%o|p;Z2hoXQp^alR+MQ3Rhixeu)T)^e$gIWm@e({0S(cGtxFmu5EU|3gJA=1 z0w#NTJT?T5jY{rt)bAg;%UMf)6*mJ5$ZTK>5YXqZF0fBZtC zmBMSyVlS~HLF`L3*Y8&wjyYd- z=`3&9FPrtf80Pj50F!-TC&JJ{AF!h^)GC2W7-9~q4b62Isys8l{EKYvIL80#1Dd8r zwTj;WY)I&YU;bSJJ6^gR@=-K&O%ovUbJ`61gW^_8Tg*VCV^$;UpCIX692LB<%L=xC zNwlqEt7fTx15>XjhU=HL2d`S?Q%7V zW`UuLBf=^vS7QqqhY&t(R5~0Ge#NgbBE&0hmCaC?7bL>FQj%k?FdQBAs#Ht%jE@L3 z-(9KlLBbJy&?&F3)Wz0hhp1pHT`(HmK%?#ol?F5PNHkaVm3h536cLh0*}6-NZtbj_ z9>CQ03mr>)N=(RD8s(#-DTS(l(S%8HBx^y2X<;vkL8(lynQEoi-acYlhvYHYVmt=G z%v47@Rhbk?F?DrHOrn*xr8~^-I(4I#IZ&4)V$)KDlJY|_-KnOdFP)ie`v`EzG$mF* zbjcDGp)Is28b{jFI~^IUCK6Sp;=LeUrPwGFFv`lM*fK=q)fs1_bOTs-W9aQbk0jRD zm<6kjED^wl3`Zv&S&~HC9GSZOPbT)(s*a3t-xtk=MNyq}Dg7k6<8h<_m_4Ag<4Bcg zeH@I@G+;^wI6B__NC$A&0Qd{T(nL5(RtU_HWRtAptKtU+k}zgw{ehW!Gq!mQv6~Sa zAc5*$in?(&ko2x@kV7O_%AUPH;}vR5duD_DNJE#bG&R_ZG}oq7MHm9+ng%&Kxd}Ox z(6^{HVJ4DcXfC|fru0l2!zCtJD?BmJJc2Nr)O3cWS0m9}Hw5lT6N73pqa;#-0kvLj^_Xl4G;ivt&U`e0jyvM}>Elp0x5h|}lB}}T>{x2P6Q^tp zOzrFCJ$f(VOp>M-Y>d;qAY%!Xv|dPq4kqRJ$!W1xO{#N=_hmSFW*8)!i98AHxNtVz2Sl&> zK@qm1JQBd{d*RHu6)@{Q%7-!N8Z+@35~w&l%KU^ZXfJUl$)X|)n!!6`A^T`AC}hZ< z<)_4@$`Z}l;HL0?HPK|UoP*|;`_)}qwz8Uw=3Ut`bI=1mli)l6Q%5@nYg){*nfbt! zjh0nBC68jhZ-K;wJZ6&*O!gQ=J;Syw>#zX8$}#BBp7)3pms06MiP6hNYyo);FzL&o znL(^x5F@K!D1pHWd)f_`V}WiN>p=a*o~cqi6J+TC-69Fp574oRJPw%hagLxXO`(6{ zd>FK5(|CvQ&&n*YX+MF+F}@Qe&l3Tx9N&qO=Sh;HSu$!=SPWpriqJbDCrga&%!3*M zmjKf+AwpC64!bym8+=sE8a+$;!t&0VvGXSie)Y;tWOrX=BQboc1$8sX}l$wz< z=eq*U#Vb*b=8W4@*Ry;;?h;vFD}l*=CbYLd+lT3>!&MTfczc#vtVVO;*-;&5C?yhz zdWYdGjA|gI09Hd&yv!pe^q~~_ROj&n-Dgn%XIlki~e^*GLa-xVC_?1371{cOUyb8daSD4RK zt>bFhEUFlK%EzQ|4SB}tNF7~ z+|^VND-;1DA6DfB8PB(}6!&IyxoVa}KSssUqm2?Hj^`=`Q?`$F3ow=MsCP)j6|3zt z-SV#5N#N>Mi5Y5Tode@vx?4SU!xVZGfZ1~#9hV_30Q25ePk<8RLJV}}_%;$lZ7-)t zHuNPOO_4xSVt2b2sb_Xf?e9Qu#dG1Fxz5@h{+$38HmVB)5o}p{a~CkKc`}s@>2mHS zV&_JM3<{eiMz=T?v#Nnxvu*#)7~z=tHp zm^bY|^M1Uv=15L{A>v-f~0yCk%`dtcHqt~8k5eE?wd zC8m{hV2VGKm^5qu0j4FS?JP_E$VZIpg5Q4pvHoL<7PTH{$LFCx@gmKePO8#>iq7+j zAY+5lvmEj>3AD|=y3z1Cb?YdWyNb%<&|ex6L!l!47ha^;X)pyofuv)HUy7k5I>i!E zH%sDBAgSQF*NYU>r=&v62kyf#%6^OQ`1n+_1S+ouh*7Z3_!b{A(?U_bH1HLGuG3^L zppStm*4GlKJ2by8_K6fwWSrno&U0`qk8C}jbzi_*C{rBO!rxY6sf%Oix(-@ zb2j54|3ZiC1e~rq|LP}fP*YY#{S6%EFYm+D<#!0^J?(6NPt9NcKyzJ% zIe!sSWQoR~Kv%A?ZBZ7?@m@Qhi4p$=Op7C7gel~+ClvmcK>mb+)F3*n@{f;BM}qqo zz`DxL-U&P`(ZV?^mcqi-f50?VB3$t;TUH}z2WI3Ic%O;~e-_=lgb55p(LpK40ibIY zACA}U!4D{aO5K?PSw zxvWfQLb|p>VuuJ4yzqXsI?|Dp-HG1mw1?YIn2U@>G7m=Z;?>wv;?a&JV2KjbaS<=c zM=V5#$-uN<9s1aMUtre9CaCKMiY@GXK|e`HKSIO;WC}2@_=HX#nM;*uWeAZEYH;rFM+S2Olo*Ohr&mD+c;UiRDlVR-q65KP zttX-5RCJI8@;pa77dqHS%n+)W8Vv!ka!n^{!9yibpIWv7G7OlQi#l;6V>o~%7a;CK;^9~c5i1q znhP%reQ#$1Fm>q(!QQ%>C`ssVUHR7-{(S!k09$T|3YqUu@?o^7sHP~BCB~SdFgut6 zU|G4%4#XpQ^#c;*F3T#|@>B^-wc3X|bF~Lq?Mcrxperk&A3F!y;sW!WIg+eyUMwu+ z0#kpZ@%)LdN4@EL4v2g4q&iyrR$8n?t~>LbEqlVvOuD zV)FoOxhnM5!hDI*wmBbQJhfg?3X&DI@-5)*4xtfO3*A94~|Jt41zIr5}Mnt56#qKiP4#2bWSGB4WW-` zFOir|n*1q1S8Sj)C!cm-4PW>rIw!c4{8Dxn>UIWK!gf512p2gG`GL&uzn)F&_ zu@~9#jp|eVNW=V#>0r+IG?Kwh=A#Eppr-?vy*Bj3ERz_0VwjUU1DMQpohS&N31H6T z1Z8c*tY8EUN{b zvwc95rIMnsg3c<57L{Nn|6ze}H83SP2_e@Ixl-z*gRv?nFIZn?gvm`%vTc?( zoFkh%KF)Hk56JtX1W+h66`0N=HEkH<47un&-wV=jL$S%Z0KLWBf@?yC1M6%7b)f`y zay7Pw&_}5YD3-Ecgy!^HI|V72W&BM2{0wMbYd}aDS&%!u`MQ;p?11CzOl4wl-Z4(qT&0`-R}?b&%HfK9X1jG1+K1u?a$6E9(2DS>*2EZMjU zn9AE7an{mJv{}VmHdCLg6<|!LP04F~!0nsp1T3S-;^DOl(4|piyX)5hSUXR3Va!ur zkLK+83Ci07YzcLPubZMZ(b3k(I~?LVjOs_!n%|8K9hDqERLM%zchhbHu%(myBtoFLNY&AMUq0Q|!`H3>O&ilMS9&c_4PP_P;QUa zxEY6v__0*h>k|sl9jfam8BptAeb)0S01rQ6JY?o~qfe88rsO$=)6=JhIrbf()>2J- zs`j*nx%g)!P%q3fJ$qJS;;s5TI)-8Qd`#J%Q_yac(_;$pJkaSY)Ue1B%ok*{UO!~s zW+yO}+Z=AIak^84MQx8q6nrQOy{G_VN$+$KGP1jTXy-QR@3r9OCtL3W=5BLzOtwLy zL;A*-Bt}0>$k=kM5A{8xn}0pR?bUWfkf-0cN| zR+eyLAapP>zayJRnOI?i+YMmVlbu*7yeolv-p+{a0VexAH790bZ$xv$c?rsi6lxZ3 zg0_#F$W3HF9s20;dtQ)v`&j+Si}%r6(|w&-_kSRP#)GJ$=EBzfANt4|CYkLge*~cO ze)wa46oRcbJ_e>`O(!<P%?U=ClZs+*WiI=&$uHKyYmEl?+V)VQhK z>9+3t3qRGze|(Se{S^p0E?1WwOsrqaX1)B)Fy8> z`Mcb^&vQ0L@SX3I(g&lCqJ17cI*38Dlbhe;lfs=y7k;WpP~Il71Ap)V2WP5}nAm|o zN?>2>)?MkQV+A7U(6NI50ho71g7S!jAjT~0Ctt7cUy(34;NR@PpMAjmD^(!Xy@XSt z)0O+lUzENmPp>PXP*7uMBMx|xN%UJm%3_Zl$~Z`%%DK2lxaxSsFRm^*X1Oz2IK=Z2?gp}|l zM=vXNqU{F~DFYI4s_Ombg^#k5Pc)B>1*VA~A|O9M*EhVZYC&h{G<6oq1a9R|jAle*St%bWjXGlIwhXQK7_O>A>kJvrM> zeZ7Kbz499z(b^J#6@t5j3!r`;hvg>@iAlEhEpR4TNvC_1Nn+*@77jIRUjTD>3Yq4y_jX*T_tdkb?1hJ%z)q-rkliMSVOB4 z#so0+>htoEz~sH|n4mGm=yV4r^JY~~SaT0FH?U@w#`Q#V`WF0_%A_jXMB&LRTg*gB zV5-%4rE1HJShU3Sv#x&=Kb>Hp$h4{#&~3M0V#P=S9)nAs2~GYMIBJgm@wWDCA5jAi~4SnzQU*?6;o zDR~0t<2go*my%$iJ@n&WqtPwtdQD2Nc&qUtwLIT{4# zKcQ+K8Mu%OoxGdnC74~<6XzcfvPo1IXR}EhXsSCG;3h1g7`}Rb!Y*oCMA(s?-e(Pu#RqU2L!fd@-mTeg-M3VPaXna5AyIQ%xuA z+20ai%3f5hlr8*Dq2_0?ZD{C=S^H86jJGy?jq-s3EhdVUD2lwp-Tq~npJgUa?uo4>P9;6K{2N@|pb4#;{^uQ&p6u zcdMxD!r~xZ+d}hdP}}o;kkD+4UnSJ{54LQAF;GejRQ_PjL}~0oN;LK|Lbet=g_F?7 zER>)5+jG!)zc)jtTIT|j`vP{%pqz>V`H6|X=`!wl)c58eZPO@_q(%ZsiR<}<-1{S@ z$3T-Q+y&^|^|n#rgkL0uyAYVQb`05!z)%ES1I(Tm@DfBY3u7VoBA{Dez|(C8_E_+{ z7(nMvT#hx7RkNQ`U#Xxwy48XFTII3=9fXK3p_;R2( z>@;V@%psHmSiVOO5ki{eR4UNyXjJXRKgR+?b6g2b+t0XvW{@G%!7GSZlT8PioUa6? zY`@v07~@v~ShwHo$%vv*K~kElX+lyDNd9yYQ%n)=gtpeN0g~dOqdF|bs^1HlhA7ir zi~cL$XB7q2HC^YWRkXirUlT1B%dZEmwIA4|%oODYU|b&tO%88FbJd6HJYu2(3!j@v z2sy1G7Cy`v*AlglY{tkKS_e$^F0-Mr(X9utepi%OGAnL{`Q;73xIVE-fZ1vlFqLgK z|0xub&G^kU*q_?WGwz4`y~;+=t@_k9SY}VR0MqL;ZKo<=oVTL+^7 z+eG}8o{8tqG>cK!Mixk}{al?;Ce+)|9P@=LFqRD5PF=K}=@d&VP3VFT3bc0+DEl{a zuwh~8PC`}&K~jz@Xwqu&E<%Zgw5^S+4V`k4!(B#$qW43&zIZqO@@NApruyH;G{#>s{#cg^u zs*hy)3)F=$dG4 zXl2C#qRIkp12Ivw+9^^%-E>%7dI`u|ond-d60VJcy$~4{v0wJ~-*DI+Z#jQa`=?nH zIPz?-cyW%`df>SsT|WX5`c(|P_v=9-w3;csMq^1U30f2j7IZN$xD6ehVbaepl5_P-Cgw+rS+B-Im=DYeI=g*zZt} zFNTHbnF&gD0PZ04P6t!TtIqz2w7PgRL*XT zy{yxSVO;j78i1KGH=)@T5vK39*oFHZbz2dE1YZ*_e5tS!%01o(wWc?MgcUW*{{Yk| zNpTJCnPxT8J6s0C7EG{g;zQ7H|63glbLAg-sb)K{cG&)U@YF|G0j+U9_I^?PW{-p* zWnZm!^NEl1H8BZ6U6Nm$L`UR~KlOf=J{lWQs7NVSHT+;9Mgo6^VU`>=s-D1*>U|DO zLpNB3HXWqvOh>;!&(^3&n~sWZnK$~9kY$l!MsLKnefOgCwUJ?Zot0_UK4A7m+BAz{ znt>^O%eL3Ys;DjD5x2Ivl?$14m{7=-UR3(ZE7#g>5d(EM2Ky2?vahdw@=s5|rS)tl6ELq<1BY@l9HYZ{($MzoT_D={fy=+*36EB z?niTNq&wEC`OuYMm_niPG=&EwFxXkvgJ^Dw4igd5IB6`Xv;w`QyIZ+}Po6}Kn;cmi zjeF1eK~`g`%lid{w)Jo;SG0v;v3dCwnCzacGhZqoMn|6LH(=^|x|PR@Sfcwonorqn z_N>gL4gpxX+ip_6^@8Y-)(d|SQ_*haYNg!~{RvD-jC2UfV%Y9F{vvrbd67oxvlZvx zpj+3A4HnTsutp`?f6$!%u6g6c&g8#9S2}G>vh?XN@mG7HZCTH}+J7L_%VqOwY#!Qy zS?UTiY8l)2?-BuZeAjkFfmwzF7)NYaoE5Xjoc}XN80JIc@@=%0yC+JVJJ5yAmJH#( zPiiK(dRs-4@qZ1wA*`1O`H6AUiUGU&Xge>$-P_Az-O6oRGH_u_|yc!|IVe&?99Rg-5tjth?h?&g>g&Jwb43 zBd(Hafz)O&Q2=g>4@16*_ziT8EC{i^Uj*6Kv_78lc+1h3XO9z`iE z>x;;UP4PGzXAm}X8g6t{+Yf84tbXpXf%7;_79NS=4{=C$M}aL7&6P=E9q-*H0hpKS z#$C4*wJ$dL$r7Wub=KV1N1{13D2aZ+6sD<>fqAwRG}pgx^K1;0Dlzd^`}GAOQ@j+Zgb$}e%y2@MrG*)f@A*TrfYSnI1i=$4@MiSL5%yCmw%lhV zxZe9AGH4t`)vemkwa5(bcU%j=pTsa ziw2Sn%)WHU+%OI%pwTqqgB92S=Vz8#ydMKE}j`;4`z0A>!vy4fHLKUyd< zt+J;P1G}z(=nM?7;!_SGn+JjegDtUZA-UjS^(RO;vPQd=H-K3{%#)ZgR@ymiZolX& z!^V8@HXWFnPoi?H)|D!TU9CA%Vn$oe6Fo`VJu7k9K66>JEN3kM#iM8pj;ox4q;80f zYf_~@msCnElapBzh`PyVQL)zcBDelN zI*a_X6?8unFPhS@qXAvqJ$3 zB=Dj@XN*pvj}C4y^tUQTg!K+Z>=++fTwW;pA_|EQhw1wW^ zF*_OKI2M?;Y3}K!iM9Xg*&>Nv6&OtEmSicE<3a2=G&g03O(kNAZKXY)A~B1AIbLFp z));S$@xCiTmqtzirYg@p&BRneOp?cP9_1avaX_Ca(JKN>F=8jl4*PE`csb6hn5O1k zc3O*7aPBAsYg3c=RD&>=4qFyaA1FW?DRPXGJij??1Da}Qp z$Dq}W?^1~lDe5wbF^ZZIJ4XWhZ*;!hv8y;&1#?$npTF|}Zdv5^Y~1!XygYM4_L)0h z1#`-b-3ufRbM{?l_4q>NlaBRxjYNkO?nM&Qv2ZVzzya2V)7|4b^lg{;(Ay_>LJKaH zXuM5&f_qjdtGmnxtoQ*>=ouVb{h>4&tCk?LTn=>IoG@Gyn-wOkPRRzuv^6hEl8;p{ z2D)593xiYADq;UM%e+zRM4&4qI!B9@ES^?M%xo=I+KF8OV9VUFki@P8CVh!ppG?No zRlvCBho*D2#B|KmH2~%<2ulJjzvv7k%hZNk6z?7XD zT5vZ3(^43EtZOAkAFF*f*8%8S7@F96iRqZw1_1Mp4Na^{Vsv8cs`<^p)E$VLpsjb< z+G?Z33^T2F{0j?_XHSO(+(LPF+oG^BCMWNQi(&x5Zw2uM2ctw*uCEpB=uJRZb{cH~ zeQ<@kR$>nr+(yLCax2fEu~p3NvN@B6t=K$U3f>_xSU{Z+HcXSD{oS=Y6*Nxp*jJBi zrFR$5O|4O5D84EliY@o#$r)=^UE0TO6>N6KTiegE<#bd( z6kpJz(AC-(J*=8vqI%M@S)U=sObwV>-xifk^c99Ni_-VfLmsuj>}re3)YjmP&ON|v zTa2n?2s-yl44#Vca;9|1h}{QZahY3r&YAIZKbqUh+)5RhefhUJH3b!s1xs{XXPcL$rY{q$ ztV?YyF_~`%(Y#_zKVJjWv`!UVusRK6?ed-`4lj17pu}_%}=Ab@)EU~y^OH~&8|yTZK7g{7&H9@+cPwr zx_g}yOj^S3tvyR@oQ}N@Lz+#7E=ZE0KSv}hmxYZqA=&7k2g%w)a7KJmm~y^A)C$fB z)0LAAawo~)jIb)!Go-SlWfogjZ|s8gEtK29@FkDYhX}4_b9+Vnf6r z5POhm0NS-Y%ovi`jJ!kx-gCcsMwpv<86?}5hh=IC#?EZKA~9GFSv3;;hT&MVHr%7as5djAEe?b@Ku ztzGZF1SY>q)jQ^4_fkJikK!!`j9xFXlkEtOXv2D+7dhOd3(SQ!lOWDByHLM36QP$9 z>=w`^N7<5}mP+Y>Qu}07zXH{EqH6F4OlQBAzyT(2z#Q5)0A~LeHBxhW%)Y+`CjA2F zHJ=9JOh|?j*zZU(br-P~+{RB+R?QZ2UcsBT-(OkX;+h*M3GZOoOX>5lOxqz74JpfGI9d6|ipI;69>#T#o zv|SV=sHryHO42UhhErYKUP;hmN+|zo^MY*om+d{fU(j#WC1FEM`p=B*R|yo!gPyE0 z;BNpHUy2Q1gGDio{#^pisfIe_Lo}MA%TSRDG2}nIAbrTpYyL@~?7Gli^Di$*_nK^% z=Wj4y78Z>~rQL7XXZIh8Hl{3g^uIt?-J`CHnSc+=W@ET#!2ba3Re^lZ;4;`uv`gS1 zlgqHP*QG1gB=-en&mo(Q>@h12lR&&WQb}hE*(#bv#&8Ab(TtG+BLJ*>&^=Vs6Bh2e zN{n*silw#P(7f&Huy~w6##t}JBY|pfZ z3bu;gx2?<=x+l=pkGPc`RwnN#NldIy6wk`sSu`-|*TDPo>0oZLm&E99k!e(KV9K_* zg~jS&l|`!<2~=D#i_gxkFxaMRB}2N~Ve#4JMGCg`4K(Hi`Vex<)3!xAOPyi~bjtOi zeNLPgr28Dd%?O7~Q9hoK`8%AVTBMJIj8-6XflMG|<_+dmF*9#BM7Q*YPMEhx0*&U) z0#zbSM)&BB*9S=wXj~sKeM$zf_DQ!$uaxxx)2F@?ql8DMA^p(Y+C3VlXkLvzDgSs+#HgxOL$Fk5>>Ptfdyx)C!;CmJ$nCflF2ooHaZ z^ar7;XM*xFKsM`D4Mt)hFohe!LVCSH5~J4#*jx<;#u*hIa;}C*jGhlNn;lByE`Q!> ztXeS6hk;t&&7nCTE-^aijLryPc1K0)xgJxak-#{jJE2CSB+#fvY>}J^VE(S4ON%TL zL-8%0a9!D6q|tS;E=Qxw{q<^>%mT)sIqz0FRBJaCMrW)9rkPBIY|~#D90%5Db&_{; ze1f(8qA-17&Q^fqLDluLx*mfg4AhnnlZxKYS6 zZDzWYK%>cm>GJT!xST98sL8WB4#P|#R&Rq3=5*L_rb^5}jSiWV5FcFwnC2B<_QR1L zQ>_=Xr(HYG0ae!<>I}2Env3RscLZ5mB8-UjL@s*H1F-TAS?kl|4cUcYk(T7sy)2fU z9)+KE85SLDQXbMW@dd4fk5s>?|3h7|GJkRuSQzCD?N4S%jP6fZoSO;ElDj$)=Z=;@ zW1M50%>vM|TURw9J5sgTvRO}XSOAy^rA_-Ksli0)`hvv2q)QM+q@pv>}_MvKg zG#cT8XjOdzjXV8S`>uvw`433!T_DK?GTrAPF38SN(rNv&Ot6CJ9LPbyI zZE_ZTPbMDA?w9oweQrn=Vl?ENmJqV>ei<#4$zi$KDd2DEr)uefX!!lxQZH9!Qyd9+ zRyjISTY0fqQlx@6%(T@v?ar_my|;g+&IjxLR4>80sd&YL%Y?1cP6L^S2W2f$7YTFw zrvsS%kW9T5i7@3~Mq=CJ1?kk-+@3+)KV){n%xupDaBD(z$OLY=#OP@dGwl_?G$%ys z7&gSSfQf0=VzjpLuo9T;mQGmP*%GK&o85F*0n^Z;Rtp$EtI?eQm`&u&YD<7A`8xC> zqEup(MFdm!GMcrTEk?k- zLnZF>0ix8ZY!+VFKp54_{cLG}0Xob{j6On3eweLZ2u$Jks;x3Vy9Uj*iP1sJZ6e%I zvHv0f8xx~LCO;Q?0iu9%4S{+;E!~qchfHU#1z$N& zo6}9A<_}NTff^}u-Qoy6Jh61=dJycj18EcIj78xafN}kz8W(H65zXnpqO{aJ88;C5 zt};JCGY_k}$7&VT zve~$W$5gxqz_fI;PiM+r3t)aa95xp>3$ynCv!`BWj;fH;J3tb5sNgmk^q ziHgpnUZlCAgXOo-1X_MS1`f;mM`xI}8feumfVAq~B7x>ZLwJ}}0O?`UtpK)n^~?<% z$Y!_Lwh?P>uj0CpVQoT(%Y>rO0io@LEc@6wnVhvAaG1WK}mO8Y|Z9gwa~@F*LrEF$hk zbKX#77zVpxV|f?Ah9+~)$$)zREcAGk{ElgTBbpnB+BOB)`Pn95a)u#(8a8^_Ve|JS zaFS`}?R&iM6FS+Gsp%VYb{|NLvRTVgmJcC+%lRQa62UgcnKS%|K&2nrQbeZMAETqT zz8-C5EW!nqfj&X=>fx|4yUqI(u}`U=_IgG7Hc(r zf~_fox-!jZR?z)S`zdVJTO?Xv$Fm~{Ujb7yGJ1qbDcS1zYY8;2o|(`72EZi)RG-bl z_qS*+``mo|meKhRz^2b_%T&Vnb>({!@#-(6{c35X0MQEJ2Lcs-ZL6fR;r)o->PMkC zV3-2C`}vR*;nvcG*Nj-pG>oTJ!ng+v0eNX~NbU2Py08@vnPq@Zf}wKwW2!Ao&6y(dc0?@|4(2_GCj%_ ze3nZ8h33kyJ8=y9ZwWNUdkSts4|1Ug|BxQIzA@Kk?7I3d=;nPB{IH+URZ_;o0B-S; zRRltsCHki9`afYy-^!Ybo~AQb)edUy-@?uf(T*uAo-ZTdL{qe5xvK-fx^bR3t9q#N8?_ zI3#=Toz8+Fy8-R`5iipSuUg+Q7>stjL{ICGYyyCe*03oiins$Sxh(*T4IQ`7^eCA>Q{Z$o?>Yn}ulOAyiZjQ689tzM8|>0& z%1W4E=>9%*&7sg_2S}hU7ZxA}0+aoRIY2PrAPE$2;`O!~he&JGwL@rC{=;thqWf&f zaXjaW6bA?PG;N;LL>&q=_J0Q1?5o1p*}&Ql!?YaS-)7{eaRgNFln z*?cvhX8FYkG#CFZ_Zsz~vfOH<1R8TIw$vR3U~0a))MW{LCYrb8tMxa=PnK*po@ish zYyhkN?L=ZUS^|xU5nFJL!8}?UehYozeykUy?^m(BZydU;TnPWfYdGLvJ3%#G0+sqF zTQ5%VYF761c=6J3{gw%2B4}l{Lm-A5!fYmwkU*nA7;qARt{mJOFvJ5^!<;OEDW>N# zm|&&=Sez5B7p@qwsof%OZ3*vp>m%V&)~e$@%42ctt-fgjHpp62WvllxL&-sx*^cmu zrU%4W9*`@6!?ip5#J|7Nl;@q0mL1UvR>cb2f{P|ZB)e2poldG!8y1eIEX_w81(Hf| zM|zQ1``8~;VxI9RFxilcK)~OWBaC2@HtT12nJmi)OW8C8F^*%|DrP3=<(;frBb%?I zWiu8q{0TVq^xiCBc1466x8tZU!539;X8ZU`iNMVWyYQHsm;Am^a>-n--U+^JL%g(5t zP(YpiFESjj(6P4-s2{-*$*Pb*bGnC*&>lBnmU0YwYdY1VJiX7F7s}=V)+MKT1_lxo z_UOd1KFptgI}@#>(>+Q^#w&Dg>u^b;%%9ePt3^QPE%V@Qfu7+QI5;Wh_wtsS* z{N%Z$iU>dd1#JL#9Nsw+% z&UCBr(;nFV>lL10eg9RW{sqfn7lU-ea?jELckDIUlWDptdWR!ytx!d1f1Ps)2-SLl zy7cVv;S`{ko~3S1*eNarCMO16_gJYqOQs4%z*Nt~j=#a0?7bEPy?-U^Rek;aR5WKh z!;Qp9DniWk;{>M(G0(M%SEvha`v^`4!97kXJey3^SO1rhnDbnC1~Fzzq7oR`6T4@C zTKQ^^`ryC%cJP^Kc9aBdUXJF5qoW6CJ+RqcL2Q)v0mIu%*=*b5`&pn?)hB$Y24qoo zB``5%OxpB%D*KU`vw_Kp4NtZT?qwYkkiDL|3P9I69`$Dv2*VyUUQJA$6M9NYfN{iy zXKdQ&(PxCcaa#&p<1B2DZ@Un{UBAS|1}wxr(PhNlc^Y?eSw}xMcMdUj9%D?^yK~VT zb3Su-G&cGH8sRsGfy8+u- z5}*s`MEA9}mU>*8r)F=YUn+rvt>)dTdQsRC#3*cCCNU{i^Sp4El~ZS*Zq-sRC&89^ zV5v|H)lxB`VzTIGB+3cY;0YgWlD-%YdtbW(92}ez-H!&Zgeg0)62R0;J?c+&kfP8l z$|4NWezRWW@pyAH_>2B-oMDLIE z4hGq)fGM6Eofy;}XhebudcFE;FB5o5BF=jBLh!&Xh~;9}fOK6_cwg)F3Qu-`2fO>e z7C=`yb0|nlMW>XOUgsNm?JE3MLPZ4XhaXkgw254l_=NJ)>)9vMDm+<%{)tBcq-^U3 z-+;>6;;nsN(&}9KJf!%7e&ysw^^5#UHZqzt<_2%V$aYqGl$XWXkBF=VEvvC__yA2q z7-*dr6lXPFq3(4HHDbPWJ$lRQ7oM(BvjaB(xa&&It!a+A3YeU$Y#8?9_RU1+DyFx1 zI9-^_IEZQ^abA%UKFDhRz-9pK3GiD$sNrf`XH1s20+V-*DoZgi=1n(Ik2T%kO*Jc4 ze>KS>P(wFYDzT*p3yREQ0Q93hw-K@_6;7d3&iQtN$3((82ZOV)b_WJjcU@5TdMBDQ zuV?O64K8=d=47k!dXIYfQ~e?OyNRLgk*)z+5D8o35YHb{~rLcmj2;sW}NI# zIPmP%-4m?b0pSs*Sz)i$KSYeI8xWqRr%~#t9|jX!280g?#snFfe`t>o#q@z45A9J< z%^QfGZH6S{lAq#ZMA6mLm2QfO%#m&JB4am2J9=5=mMwa)++-^lXfKHFk6|hPm}%uU zK++4Lm4;l%9%Z&mG62F)#&&4^g?@hmV)Z&Q;GyVrRRnDS$yjjIIqGmXy!Sa`cCUmClR7OmS} z@JXv`ZCH}kdWSk$q=F(Rq+gNU2|Dxd@F+hl$7J{-nw#!WWyqR$p}FtE5NikKQtN@9 zwh)7BzCzVtyJ9o|n17cVMOm*ep}BmxOic9^3me?a0M5T#9h~Tk3Gx+Sn(kHwDKKp2 zUIk|EX4}j$I!bi)i#O@^9C^OBf^smdhS;o;dJO1TizsB zlGodn6f|vRk@hXnE*lBG=W8KWad=x|`dN)5QO7mJIkso;jt?DEic7s%TqtqQKf{7u zTG#9*cGr&z?`QI+OljT)-A6}Z-3+-ZZcmV8x!xWC9gA=v#9+#7?2Q1XFN!wWJmvO+ zNy_b;h{+9^$k(})>}!Vih{?=wtU`D-K@E-XQ@8hrb`c){Q+>ZpElAM>SL6skB(BP{ zAQ4ltW^=?Jfn?PKntlfy*T-mXUW8rqU~0=I;}f9U7uhVB8QrJA6lRAH)McUmfY4{a zRA*z=sHMSb6#pEUwrs2f48vsZ;0plPKdkyF#?O~%c0FQq0xSvGOES%OA!HjmV+G26 zpw==5hO>H1cyH^($6)Jx!N+#)nt`r;lhHCW!#{IWGvIm!%>jnPJYY|Rp^ZGmAC;L_) zhuz-Q&WSCz{GMcAI39~Mo>;Nc#SfrcHa;9jT%!^dFTj$YA0-Aqts9-F{=lDl|KWeY zxa!p6KXZ9M`AF1EfXn;jd7CHqk64%^jreC`-!(COjJ5qm6I^EORDRj-MJ8^V9FCJg zFRSj1?HnBN0j-KS7f${^p&~Jr(t4>7a1i`%KQVg5rZ;U}lZgl>DII9_Q!L%*@n{-L z6a|tfwgr&Sda!Pu7T+gOC}8IbenH5Ik(Ji5BZpQcZXW~V2u9Z!{jWE?gNo3ipI3$Pah7# zR1}TT`U{xCXI0B*$8Y{763=>+$HwhK_=hkjQeiQ&3RF{ksN4+ue_PRHio&SSd|-FUJPneKR4`KwE$7|?Ld=h&$_2)I){+s}5q z!q8lm8;)NfdQqJtwr3m;Ox+T!go-9Y=?rSbHjX1C8fSl>u<08UV^`UAf2&}6xUM3q zVRi$qcslm}3~3W180jO}41(6?r_=%Y( z6gt^K%AOK~JDSW3F%6CaX8p^m1~Wa0Msw;b>KPGMp6C?`x0pMFDqXA~&1m%Yu{v@I zG#rE1)yJRb3JFl28-q_8Ue(eWt;XmCX7^HLDF`Tfc(&(mE}*lEaQ+N3b!mQ#39XL= zCYl@`EBVAqAU3}3-ix{KI0?k>kK4T$vz&Ne*9Onz3#dXwRIEwxfvew!ujdxbsJeYX zpZFDrN0C(o1^Q`94^3vnEaY?sb!OY}iC$!1E4MgW>@g@#3x+O37e&J)bY4)5E23OK zm}5(pm_b&s1cdFv^#!_Y4)TcBb1br_g9zDXw7}lkCh< zDuMD+T!NCWZcN^3=(6cu^*B1yuXNd*5p=XncQSx3o@e$jc8}U0=(bbwLX5UBQ+?I| zVDeAHV&2)PhBZ5}ff8sVMw-Z$WP_;J`7*Q9CBvp}umq-BcfXC_P~9LV9qK_ z0!Qh>RF`Ynz~p^`>SXyWhtt~ov06=nQfepSMoYAEBF^r{#{e^LS#&b5WdavinT`dd z*D>aLD_hTx1F+#!+rpY@;&@LH!hc$l}twGRcGKZpTP^Wq+*H$rdu@&C0WI> zvvE(Az*sBuOcZSj9t%DAX$l&@{cBj3Rd8T=)yKH76G_mB^1n1 z-4bNkA&ujJE?J4t!J``$6#V-O$9vheTz}vmZ0S;L-SNo96#N8G+_Dm9hIy{XvY!)y z*}W8H6w|pB3am7A|JLD2zW!_fjKFUQ9bgg3mxqYCpr4ptOmk6FBx8x5h}h+NGFaJF z1i2d44+71Ey9DT}gKB6I7#7}70mjv8TeUDcOM$65JH#Zhy|W^q8_teS(TZm1T52pE z#ww;^XP=6Jn9?7T5}Wr^K{EeTl;jPSb_P5Rz{+3L?HMs*hB+OW!*&b{%FBQ$TxCw9 z*xt$+0G6%7-b%1DQ>;LKCJlSbX)>A84OMW;wpo^g`2OG2r84s@D})eF#}V*gLS*xD z7N{Nkoyo?RAPMEA12Zc@Qf_6wPG|k?%F85qHYm28j%ne03nDe_H@UAoSvCk{R{>b^ zhvx{z{X!c=ucQsDeZ4ll7>UbPE9GvxQ9dM2@g40ql=#0}jg8mlW%w@GUIClkQn2&o zpQ>H3vV0kum;9xc<^9R7Sjkeddk!!yf3d0Y*|xxtZJ!IwmNU$248I`?PeA2^^Jq5H zMq-=H;4{f&{mAnPnM+9S*!&74kmR~AAY{=y@mSdl4+xfOy2Rng#i3DQv#eTenWeAr7 zSofcrRk5<`WoS+>#d&V-`B}m0a)}w>&sGgO8E|UlG}!F3q<2<|3;t9?h=t6o!i(%@ z#bmm~2Bs2$snjKqbnm&+kKDghE-MW|BEZ5G0>0AhSDBJuiJ_H+B`Uk?EKR!#&C|+| z(3@O~&us`zr}113^kw0R`nrlai)(;cUxwHnEOaq-xEAQjh(zTu9$Q0RhvxFGiP%sH zUgy4EV$`RCY$kdGFfrW{l@rZO3OAy8eK&PntVnnhns=>&uvf0eF4WPH>Zx(I$+4EE zB{SQV5oGWISGW#H;efNFaPhJ6oM=4F$IiI2TxY!xE#CYnD6!=_486gJuIt)0$*S0- zW+rUdRTx)x&qUn+F2U`EPHDi+@)Jb^XugD}rZU||U)RMgJrFJ?CK?aKGADftD7KVB zxE&QgZ1leS)o`k`Sq z;5&e+JP$cXFau%eJAtkxG>^TaYnF=N1z^K@I8$IEs}`E>25{ebxSYThPEcfBZzhW8 zn&TRidbI?mS_>Xif0&j@y~c;R{5(_HEa2K|p+Z*GSeyhk#CWD`_xO~pY*9BnM6;zc+BjQ~CMPVsI~{R)fIzw9aOTqx z^I2$q5M5?p00s?{!*cb904#}DJsK;kJdEap@rlY)QM6bV4AH{#5n^cjIFu!;6B3oz z75qvdkd)j!O320wv2fvQF}5A~81;4`F7udthNA&9+?$W9&UCfkyTi#isyl=o@sHPs?T_ z9cHUL0CZgjx#GE_QNu*IB`EKxWf>%bOthC9lkbJ+Sql5F!rs!pSS91y88P$%lsrC3* zfXTZOX}ox%q++0Io@@{IRUZ)Vjl@~bK`M}?@vr%ScswMAP9iI}O&RcY2^?Ws>#(%# z4FDZi!E@n(52xl(nX`OT0y9malL6oI@wojeBuu72tIFtYptFans?IJlyhFY)@9H2I z8Pw9^ZZ8r~J>)t2&>bIDHtJI$@1o1H%cAp4euue}Jpk5S7ClvSV(eLxMjGvP;kah~ zdsvj^yj)s|zAmvl$R_q({fNX#NG!rZNaImYjbJplhO<|FQJx zJ2Y2KOjPeL+sZ)S1GDl9x+&s3dYAEB5>WOy(^(uT^?%lJ3jIa9Ew`PoVSj)Zs7#_zTS?SJB?@$(laM zyHY|dbVB2A0IROTrU!s}ukfH!d+6E0f2hM-@dixM3>%QS&3{QMX)|4uO-RcAh5U{N z$-{&!p6L=a6|JRy1xP%1NTBMOt_db`Y%8@L91fq6sJsHn2GFHD%2+cJm6ryY$915& zWoBZ$m3ABQx|pL?yJf&I2~?hDX3gO~I?Wx>iSPk)Z?|lwvTH04xI#3oVXwr6Vq@bB|foq^uut`ly(;oN! zY{4R+x`R^X-6&Y>ndKU5T`)&grQEqm9$Z{V>LXNXG0;7H=*R91pQNE#_SKVsbJfKh zUZ(SGnwKbP9Sd4f5)x;nU56*6XGY>J5`HMD{-nNAHx~jO4Rpi2#4`h)jSZuhWbA0` zvH9u<7^b(x#9ABXV5t8tP=UmqRkO@3**g&(#sFQnAaPZoLt&w;eBuNqry3FC&zF)F z<@S3fzZ-F3F08w&;qordwOKy1>OLS@SfGYAb`UO>2u-QM%s+g#El9CtNgN2RstM1g z9u?jw+ZSxn0h)NC*1Z;Q>~Ih(+$Rv|?Aq`w4TJ}3pdFtj_Yvey2RSz(m&|i5vU+t- zQq+?1{viLsI9#T#{xKe zY|)niO!0|oDUCg-*&odZPfT1EV45A68Gz=hlT@F~&KwLxbM=EbbFh0KAxVLQr(C8rs-H<8n%W{C-lZNx}RNWBEB*p{t`Le{mR?XHPkyh{X6MJsj9^T!$beXCSEV-B+|uRhVw36n6f|$XnSS|fg-VB|HB*6UycrA9|E{*VKX!L&8d+-nBG(9O>HW4@ zXUH5c5+^WfG1v{ashzWeWiC3edn(**t$mW5^aC~yn04p*(ACA*iX8c%jSC1;>O%qa zVY);Qu^KI$Cd~RPyyvFPn1pw4wROTiJ5qi&-2|j;OnBp5&_7Ce8X1$@u^zH&Kt3E;E6aJRMn1U!rAEK599;YHm)oC99A zl_e^_L%}vp=At?OIc%ETx+`6=Ri#lu z7f1|l|Ggd_W0jnnI6S~T1LjNMD6K;_YX!g@JWm}Vi=2gME`I@6CLcOq)oiA##{kpv zLiiC@?gc?H3xTP=K#f+6#IdqD!%BNPyodGn4=A?t#R01dF9Lecg=#owXDpAS>8)Ap z%A{0C&$-!h^>`4v^fvg>t=}f=K(^&_0)Vx*;f#fWBFRf=A|*~IQs0>;BgTJDn#c#i zvd)vd$Rw-g;>3x88ElO4KF56m$Sp>{Ww+yE_3AJG&)Ag*L|JwHmz)_~n1LBYWd;OH zb49>?2Q;@#0X16{sLWh}7R_9cY%dimxs|0-Z+kAZ*`|oCRtmIlE@XSD(7qYp@7#wO z&Uv0kzjyw|C zxFnvwo&{joo>rNv?+U)Y!j;GcX3dIN7Er>p7{#pGYSF1%9xzkxjTmkUtAq{82PXFw zMCjY918k3ovzCj2sk%2}m?qh;Vvlqd9v6oSsc379I)# zx(vXa*O2c3kPTPt!a2ZHyoL~@_jMeDU1+-Ua5;csuj7%x*_T>+6%^+J=v~d3Et=;U z&7D-u>yVf9)x1{$oF4?Hym4yaf*^366)3{?g#c#W5X%aAgp@2obKMPm;KJ!Ipe<4J zCaNT1b{RVbsIVD?deml%Yu>pcPA@{2MK_5!oo9ruFq%84pq=I2@?)7RgTRbuF+NyU z<}i!hauox5NuT*mXmXvkzMyZ!UQM%E_jap+CSfMmN`rC$T1=p|7kfvm7jNbLTDRB| zbUyi=R>Rc~>4?Im_7N*_4S?yl$97e_9*J{BwhHdGz+`R0C)iA( zCr;9IL`jd9EyEnrRm$@?)G1vWYrY;s#|nD7lL1{$(=FWJYLtm_BG<73eQw#`YP{OD zma{~hPpkwcX>&xniH@*5#lTe8z<6D>&P*pXpj9-W<+T`)4O>Y#wTh##wFJ}}OHJ0) z^wrhtT06=saET6%s#$V{>0J$4C3P^p@K%|yi5+}BF!>emXyt|xm>UcX9w|M^ei1yo z5$K$|us}`k8g44>$3?Pd?ML2MCkWSPbb_@HPWt;I-#;pKWzHe{6 z1RHMy@W2DOB5D(!i<#dJV5Z^$hE>wn08{iJ-D)@oADplW4y=D!Yy1V9L&OGxm+OEz zemD1y3bzD|4RJ1{s+8ofReKK?g^=;rl1e$fvSuW1#@riwc8gOXbj}?FN|@^% zs3JFTH4C3A}Y~?p{Qg%^;7=|9EXwj@qPr2a?nWn z6kAJTtg1}`Sn(-T8-QljW<}o(bkW9G_A~~uSlK?VIazf9 zkoSU6<>$z4jGFIFRZSIqA{w1Itr>k0&>Mix*~~*5E9O4J9B4H~O%lX(T7$BUTA5I` z@qPds544(L>Q$)cjlfhK#DnEnN;6l4W!?l}(?O(F0}t{k2u-mWn3_kRO>Ep@^3pW> z=scr>*ymk{^9&m$CepbNG$U~@@xQSdEdnXR%LhZCC+~a4N=SJ7>-4;h8#+yl(I z9XzlR;pQu7&OP3$mrC4k>+@+|Q2O9i;>C~05iHs;m3#udPsk^D4J6ZEh@Ib}RwZvdFF9Th(Sa?cE@2t71PMZ8HvD_QKFsK!3ew~GjV_JUCL zOR?-LS+)N*=P9Rx##?C4f0?I{#hl(o^OVYniR$c~d>Gb=y#wHhpIc?9+jpIMV*3Cr z`K8qu0_4gl~ zbz%+P1)=ocG1S~WR)uRmT7D1U*ggEPScv2MXx_Ppi=#fVrQ#PoC@PxxfCg3n2kr)x zo^N5IcxLKDPz(FB)d;oeRX%!w`N+VWp%O3hIw||_HKD~>_s2k2ycRo1rTm2q=8g`Q zb2Aabe`26ndAKlqpQ5?p85lmygRQa1(|iU@?%&AM9DSWnLFlv3f${zW6Lol**P(9z zCV>$Xzyk&_#iU&X=3tOmr`>*5_AW4of*7e-g#JGq#MFM*D%@m8gu$r~0yCcHT1uQu ze*sLzTihIo<|AlMd;6r#U!uACmLC8cL&Z#<38-nIuzFHN7_bV#W*U; ztL3AjRIA==^nrt;1S&es(OvD1NHhoiVi}L2%lvm^af({UFLema@et<9*y!?iW4pH4 z0D)^TaO?t!Xl^u`QEsP?5$a;Qx6lzA>?Z(MyvLIop}5_hXA%dJ&5BSECtUuy#87s?CCqwZGqhZu)>1uV{>@Gx!}CyxTbeV>0vHO7IVW zi^9zlu*%k-z_n}b7;Z|2i%h~_z@&YG)1EcgK`vz0TxiX|4IqnBLmg__p{)5oke%|? z-eD#>02=Z|@z@EHuZ-1*$IzK&u9ignzckmjmN|$}p@~TDT#Zmc)>UZhCQ7FM(*{c) z;pnM$w{zfjlqeFhqQin{?XgEiI1>Ngzno_LW%BNB5OkQ9RMbI zupKYF0Vn%S2f0lUK&JsrRcj7$jL-nCHsI8z8?e%y4s+ob>p=O0Li5Oul^DsPg+LY~q@mAB<)0f!o$rfM? zfEC~JqE3pPwQ8lE+ocaM^IyZ&sjA;Bd?KmWazj#| z4B#WLVGjeyG!RL%o;Mxg^`+Tlu0=Zi6rhx5P=eYOjfLEj;BcGZV#B7Q-^$-lx?$6d zW<0WZ9YU3cUw9oG1%i5P^g+vh)NN%VRH%$RMRuY;sMWoW;s%r@vPp_+vH`%<|H*f> z81Fzd_k9B{^=IQPu^jcKj{%2ZK!Y%#bd~lq!p_=Vh-hr;Da6|sgF$#^7e_bq(IVg6 zLumXbVtc7gUBT6j|MDHKEen06SuZL1Q$vI3ntx*ZxA+H`j_L4YSP*!y%-dGI-Nbn# zjM{Jm$m-@q^9VHOcXRxY!y6ey|9`_9WdH}9YGmm_Vp)45-0SmrnY7ps8EqWvtNbj$ z76nanbk z<6Kh}I%#YT$^htW0wp9n($xK;R9&d`$>=RB+0oC0A@S9O$W%-rLQ&=3LF$aIeC#5{ zn?*co>t_drAC0Wij3uXcq38wZ1ag*9)>ubfNuYlE!-Dz-8pEk zbo=vLn#C@ff#xg^-$p|6&P8+M{)iE(AXY= zY0-Q@lpWSRQg%3(dd$DqJ4S8pV7Wsgwo@Jm6}}7K@z5ZsC7@Y$Mga2}(4{t)yOE%L zInHNtb;MsT4*n&fzX!FULmVj3J9!6}1kve3EF+;LgSZfMsR8z@+UuizYSmS~jx-vU zzOnpcw(*Z~b{x^-TiC7ndP*)Bco{LU?=VNUx=5&^kP6X8kW|PV&`lfez>_rP?IKi0 zO*kF_Y+eu@wG`#l|6Jq3 zlUwgOqwM~7nCs2?_+MRs>rL{GwP;cG(E{R3!$w3c8{_-~TK2C9v=)L!WW1jh`-(V! zQ8SG`YI~dzI9LPydJR7_LeZxbQ&VxWsh!yesI1{ss3X>h(esQ0`0+iL;M z4ExW2mH?eK*5TjLG};jxrmDJGG>iVvWnG*9GXej(rj26<{xeL&nIkJ~%2E(6n*fJ6 z??fWsdAO{oJEzNv*BY3Vwss8LLjaKFtaz;@511$Mzi;9M>=tfDQv;f>w&48jPP-LvL9bG5NjknjvE*- z-gcoZ4*iYnFQZ#@fYqSgWB`Y&)QkD8M`6uxHZaKUoR4g3ac|CC!M$68z|>TKdz0LY zIPz9f0VP?Efp*eF4!KqqbVK4cLblCzOi|-*;|CLBQEx}TnQ4BusMd+D0j4G!iQudm zmOV*_lUl7&1?t+MTFdC_!8Pj~N1RGejWciKkk6-g68U`V&_U5uEa%Q2ox|+@BF=wH zfv)cFXJ^`^vGla*CU2Q$&|}_lYWn~#K;jtn4$z1k=x2BNMDv|!t~`13U1;7i-7&_l z&=dR17>llLqp=j98z_8y?ihH|HzcB@`fa`5gAu4z)&gb5~{BqV7A4SpCOnb@-Tp?PCH zJn+L&xYI2yfCz-|2e76-VlV;O{uimijlirJ;b-^XwNOP(PBQA^F2=w&0plI%zq(}$ zizVKS<~3iSn8Bu4S6HM98qXI<;%+~WkH>I$cp=^c05*LQF+;65i*Iuw5D$_-ynPV_ zqTut+%=m~N{|iDzGadLS{Si2?c{_Nwf(;KDz(IsD^HgY;hXJgg2`60=qoL_dNV56} zFuAi3RBW5VM;6+xS|Vt-J{pvWRoA-Pm*+YL*s)M({Kr7LaSZg@=ebC5*th^z5ASi~ zFU+X`1~(xVCm7ph2?p{6FclX&V$}XT$8;4nmTwxd)=wJ1bhULXKV}!x-vW$xoS)UC zSVd|pFqPxDNNEgt*P4ywU2g+s@+FQOHNKa{83EeR4YL5;PNFdJQb(4`emma0dRhsK zqmD|@t)9T+FwGFUv8MZ829i$!lRMGBu0`ba__iZ>)#@=1n5U`RoXapklb8mxC7K$g zz@7oMip!uzI!xl66_a?Ds1?n@B(RN`Jd3R0b0AbT2Np{jN~V>HmIRj^neNDw;RqQV#TIMUF+1&@ zEgIkP=TWaOFQ*9Mc^ia^&hxXYQdZUQ4lrTobJd`?y*Pf~2h67P{p>cap&C%ct{FxJ zX!~hEC$4ZzQk!42*b|Z$jigsdY6yAZi{3NMK`sZ?5-9O1hZ!WodmxImO#+p z8?&86o6SR6P&y_1SPx%S-hx_*ygdKOzWn$J235HPs-1d_)9U(#%U#}AHZ0%u5}cub1&vh z)^rJ|8AQN?M0e#bZ-EJEJ@-2VlJkC|DsZ7$LqJWEo-;p8B$KMVJxoa5dCX;gqw_K# z>j{}v<-Jbz_Q5L41cdO!zd+}im-~B_@AgKjDRVggh2R`9aQ)TcIb16WpZ7}x!_J1V z%MBGy=Zjw%%>z`sx%|XJSmLi~;Kz#{SqL7?YbVs=H_gB_<>?eK2kN1ellB5A<@7E3 z-ZszA9#j{1V826i<0=QsmOc^yhOzFEM9N0f#gMK?LW;z`UK7xKjr>hu^eWxv9iUv!7)j6bn-9GL1~BgU%K zK}l>tqU4}~29$BVqtl(KFSk*{3;gVIz0hxs&A>jYwt$aH+_C-%J*E`;*;BcC9mFei zKLb;By`zg-a}7UYq|UU`8xA)8g3i(}$yN0qx9OsCZ-8?Euvv(OLHm{FTI6Tn!^dgZhgG z^)C$yR+uf22si%*p~jnVW(B!4ZwIU6`Hz9_thV2bPyE>YMeNoS2HLL*7W>%)@U&&M z#L|}imj-$GHPqVKym2R7x+YL7S;FIQ>-hfDR%2pR>5t)fx#JeMTV>pe0)f)amdHWS z4x|6w>gZ2E&M8aM>ofxxQ+^u^tPNGMVOs&b@lWhnX?4Vtj}Bn6uJw;?aX7_+y%WuK z*K(C0j&)sa!M&Al;9-;1YVo?OK{6B;}UG}@K$l@gw;7tL!* zxZfk1eP~X)jyG%7C7wf#24>wqxY8}(AqoNYLeS@b+S7Q8-tq=aNTDKPK+SsxRK%)h z`J6-`(gB#`|DYHy_j*)t1_eQ?Oh58Smx$#D>{waH+xk4GZIO58oyO6z^aBgHXS7eantj$jq}L5_QOqEWvOugW}H+QDpi#9>bl5UN|_pVXou zMRU)#j=S8wOdBD@s*rou3smaYa`#MVq~2)GUnjQbI#%%5r>$fCO7~#Zr<4nUP>#to zA#V-p)}(S23AVoIrn=1EM@=g84{e!{IM+!rF!`*RUeFbf$EE_4dj~hFLfNFDx!_KJ zg8J(YKYI&DVEP#tmbwvptv{NNg}Hl>+?$t200#g#|9*!pP`H!>0nFco6j0V_?#`y| zB!Gj0z+xL9clQSyK)fos5nI4!pdw{5#6ZWYgXNql0yEUWq?m>$1a25G^@_`*82xZG zmuyB-dckJ6NK$JE;0OblX2OWRMjDv*>i&EDgIfebU`7Gsy_b(iG^eAvzLmSZ>g;gq z@mN-qABJWCowR`~d#jU`2~3&8-BE3L0Hvgd#G83yQ;jx&gVa~I3ysHvh%vy_-REcT zw2C5@Gig^fzK0@~s!g1Rk+^Zk82RK&pistwQ09Lf=Md1W;S4l?n06e{6;AhLJG3?L zF&^lohmlP@{t$dbITBF?Fu?$hwOO?uTqD|1SSO(D7o zk0T)_kzy&c2(;iM%Tkhp)RgFCG@C%9p7>u!n1c}(KXLLAY7Wu}rvkY1VP3r<#x{+* z^=`pQrJR7CD)B@QkWR~{6SCoB?=(B4V9Gg!%-L#TidDR3U~tusBTv2k6FA^<1Xigz zH;6v*i8s@P7E*Jb0c1DCgutASX77`J+zI*A(rakmnt?R$3k)qy==vfW*;aJDYKwnri(0exIx`5IAK|u{E4~fP9~YTrpjnBIRe9wClkyC5-J7;? zeIlNT%LC@bHhyqU8dZw`6zEb*5@6a)gRArKPZ$()RI7X#JQmM_Vc*JCSwm_Yv%!z^a9HK zPJx*Z%);lyF$Yg3FQ5UH972Yp&kjBy;pi*`joWqz*N&&m77>lcLwFh)<1pJsVMz-> z=&|Ryp%vDy5Y1^X@P5RxP!XCByoBo84^LQf5h6`=1%R0^JBF&;U*vPLGWkjX|BZ6@ zR4GyLpk)SDWVWxODQ50Oj5cehWs0Kjt3k5qC6S`y{9a6iHr9jRZ@w(X#(m`_pz)Fy z&N4dVVHL+*156`f9O>`z+4MVwh!*VP4Y;vU>S|vyW5eBGeh$t zi+#Hs6pvT&eJjehR}h`ZBPidl8i}jNlIcd4d_}x*(7XcsU?r$|tNmpyTUdx@F`5rm zbCD6*+*Q=sx;+TtH|^nyMr0;SK;y(7K43kJ`L8r5>umrMB3ovzWaK~1Bdg@jhdHfp)X>BCQy7g`Y zwe&Zj-()tQMx~FYNbTMZlIfSIv|>cvIMT43An?2RYe27YFJ~^PN==H6rq>#z>RxHx zN1l08K%r4|w6@MbRlM4|mrA9Fwo<3^w6Dl`mC}4mzCp(8o~4$|H?4a#ov_hm`!Y?n zU?Hv`VTl%smFMmujf-<9)4t4v)I*bxu}ThkFe)KhNjM&<#d& zA2t77p6Il?VD|x7^Dg&uMft@2XfCQjh79KmOgHP~7*)~e6`&7pZKM^*{{dAZDL>%M z+2%L`Zmi*AP)*dPW_YF@l188jPXcl?AxG6YMwo}d$yE@jx(?M}HXVzztOqcmuy+k0 zn~+GlJZNBI)P3)wB0p} zaqjN64;=E`+amyOdLJj*@&H;K2s{c*%BMW7COqrM&|DOc*gX3KnES$di@CQ(ACCwB zvfwlBjBB9y!pRc`Fji&6yZaGs#&9bipES^C+YLh0NNl0S4*LYjl7^44K9a78uD7;z zly`QIH$g&OYZ;?pZ(B3PNp^h;(b$ebmUVWIF_EOX)480cNZ+2RB#KF&;>OuYSSrv@ z5xVjuXwm=E=s&rhm)8cn)*6nweg=?=&mn808ojnFDp>Taf%dC^6JQS|FRe@eoPnNT zH!DGQ2Y^M17S>w^`@BIgT77x|i4q%LiIsnW_*C%|s$=9pMb|HaWJZ#0*RnX}B>7W_zk%+VtZPrwI}$O&M`jJ1I|cjOTF|k zd9-3~ui!74-%wKXH?K=&eQ78drUb0LyvqJE&@?8iT74~u&if4?0JD*v&{hwn99|Fp zMUScQYs6PJ{}cCb-!T5tMMeE?Y$!GZqXT}2@l69g)s8ICEjhZq1`yv?Jrd?syN~+W z^PECOzhwYp)T{=7c8mWjg#PVjOnIY!dJ9C9BEADiStC!JTDh|in94KUwmR4fd-nTuwtQ(TAXsevFDx zj~jByBu$uskAlEme{hiyV)HRD1q~H&23K^onLA7X}I0GQp!J<%ipVqK5m*f1-=F3(sO>PtWx1I!Fqckx%~ zDJl7X-Nj!6op~Ck80u8-FZyKIH;~@-3w+v>GG{{sH@*e26i1-r`Wm0D@1aQxW$>Nx z50--!T>Bo)pEv^SP7;w2HBdhQQsNA-6QLj^8h7?rOqa1RL=M8(a4MF9w=j;}E_6isr_4e4T_`{D$V5H2Ym5cEIldmYjyt z;wkO`%k&G(9|p$kgbRcCXOK?kR!+0&5Wv5J!0lF`ki@@(z*2|PY_({vA!GCpt!ahJ zr^jdBE!N$70(5hnPFtHRc=#`X`MyAm$_n?{+Bku3GSEzySS8>;xOcvCfP0GF;)~S{ z18`fkSY3VycUn8lxS+Mq&bVo|kb!JPps+T+7!?^4V0jB#S`DJ(JV!IgOo>LLLG%=^ zGel`t8=qcWGnYf<9Qr?0ZR?`{Y;5aHR4cFL6?>wdHXPI3+17c6%ARM9gZT&GS_9~A zXAcY=gJ^w1pD%6$bU~*;X3J(2^&4%`ys4ctUDd|&>#kz=w*w|A!a3HA;c0^iU{d@6 zR_rP^up7-`Zs%w1|Kj zlz!C|DgD}!_`JyLOjY+K@`+HsQiCX8*@-~;ZXcfdud)mV=PIX?w2Q8Qy4@`d706s%K(T#_xx>*J;)OlwE z%`}xr#3!J+qP?>>(P5TWYcp{{Fwp?w*@xjc;5jJJNGrGGZj%TY<2+Yo`H+Z{M>0Xz zA><5nF{nnXkw={E)Pdosa2nd3i&O9)ddVmOb2=?qVU!Pt&D{f2S~k4}*tHorR_&^@ z9Pv@sQj^RA$!>%U^ZMGWnkZi%mDrPWLLkp*MrN2mVs~`MoDzBk*xht-JkkTrk+Im; zso9o$47ASr!YUnX_e5vum*6#_(xRkTHFA&>CDhpgenXA!K8o9xy+C`U-7;7AKwhi*39W1n6oxTy zUpvyYLuHO|IR26|hzCc)Cmdl=oJhpj;stklNQsOza2@bf4Lp&zd$c=|#%g|vL@<7o z`7d2forr;?6MAR>Z$Em%+N#K*0d_yY>T+fnXclt`Z!gnm_N&q{NM72w3&MRF4RqBQ zce-hKLO90&Q!+fjf(NTvIun?r5!@^ZevCzPMGxnAn{Gn8ZXE5pWj#;6>ok&_(eZ>l z5$ikCERS$T^(&p^j814)Z@BH4`9XB7I+p1^-GnDqqlwbV=R_hJ)*J4LjpJlhIA>u- zb?E_Crz{S>CK0vWy`3ZIohK$-#C+W)y?1mrfin6yN0~r^(qv7kkA;#r>6?Plq>K*m zM+k#&dun}8RXSN9r1gDHeA^Dn6X)}&*ODz&4c3`vgLX|aRIAkGf_XVK$m}?ub}Y=6 z!Af!}Naml(nJ2XVH0rUhvj=%87Gm6Ko(^Eyc(^mBp>gYb4h`+)6d0`x7r)$QEf$*r zYJaC7;Iw(j%c@+?HPC5l-F#<9Rd|}^R8aW7=K)}opGHdwh}M<%mTHt z{t(vE?<`Ickd=0r0M8Jpk=ZKAKQ+DR^xyx<$O271$ygLr8(dbC>6+VUJ#$gkCKdiY{?Gd$bw znINo&!4bO6d6_ZPo+d9$RME`=rYxHW;ONmHL6yUoquD#enXOi}wtOi;yF%M?0!D4d zwLs4`(0CgD98ZGXU#!A1kNO{KakE4mJ|CEbXc}+B?EIQf)qmySRG2L|&~Bz_1ws_9B2N2q{8ym_Bw>5Fy!B05*<Du2CG#6x{4y)m{fLG19fU`>|mun254wc!~660A4Oj(BWjPfX7 zKrO$J)3OTJwFcPi!;9c&nSntq@fp6Z>b{FOMZK7!rgnJ{9W^s>X^RpR8e#=7l`{kE zDG5zSlp3!DCUaJRxm;H3Q5@{6G&j&$#pUvmi4)0H3^=Q0P(rJf1Tm>+IulL0%POFzjFNNKRYsl74Sd<^zBfJ-JirKV8-bz&v%=hzq&Q97%F=;DO|cF|o3(A@?m#WWXzxuTj2c||x zsHmw1MY9eNQnnd?$-ja-b;6mhFq&gk-pp1W74;Z0SF6rMzG2;YZYMn{$gGhd`+)U- zc55Ac20;68qajNVk`K3O8l>K4!-={67d_NXbM{fY>nv`o@HrnMlG&-gG?l!9>rCN8 zJPc~3=R+)4u5RN|*>|^(RDWH~_pn&GM+|hb`mETZGX?Nb02>!`2@tOLV`$F50Ne2K zCESMT2uK|MK5hUfs1t)t@2{9{>O5fp&n{241WBU2^GV=xm-0k|(4kw<+_aQus)R$h z70sy^y3MI(L1G&)$;&tiYhbq>n7U;=Yb3glMtT&3&8BX2nTC6ZmQ7YF9KLP)7?j{%12sWzOIG^F|;`4MPD+2qgBFne3yuu zQ7;2iHxt&trdLuMdK;5T+DUt^a-eUB$~eqV5yi6ty9jiApl>9B%u0&JrpeLRst9?1 zF7j12NZ~2(#t0AOI?bN42#czL*+0uYLY@7srCYI1djM>_fv=Njeg(}1P5CEd87Z`V1I_zx4zT?o#QaS( zCtU)q`RC1im4yiJ1*ZNMPC}#;-ZGkdsHRKs;5jlq=A{$IU~dB*b{jt>v-0O1VD7&Z z*&v&vJ8`XNp8>=tuV&!9Ou8f@leeD)rf{flgeencIMjHMU5gfd$fBkhi6D7#c%ofC z2>ip@%$G4nG*9WhTAI^ZE*GHNQ8mSPHtPHr15-zIi{?1z(CLSnLm{~Kp$PsiNETh} zzMP(XGNZ+z^Ls?M{&E~T+c3)-mc0+Uk#n86yd7gX!V{j>2LSGz>+DBdH4h-PVj(mA zA&nw;9yzCXa5)mb!$%-lHqU8J#2JI+cg8;k(0eCO1Xx3fPYhxm$`@e6*<|fVg7xs| z`{AF`@Q#k~^-?>ISbS$8>z{$_lb6DhMXl$)j0jsl2c}>>4_n2t%>f!&kuyeZUg+#w z{v;-D$2#i<)58AWHb*~yJy1<$#{dmz-eX2VFMj&d>A3>?f`pOQ>gX&AaL_w zuSac{K+CD)7eRF1HTbMSVxcpD37N&gI+`QFza73OFrmc~3xD8CVCpV&kChxUHYAU5 zzXA^IoS||zaLE!H^J`!-uW+VIS`aKl4^n>a8v`;zt-8V4{#3NSHTsKHtFA=yL@b{m z_+1dU`+i<7CYb%bfr(KwhvFss{SWh15$@Ly046PV22|80!7yagwMw9~>>q=e?I*_^ zH87cS+@h;vK{5@Sc~>HLbR3w>YhZi|MmoIe{w2}a>zpLHB=Y>f8j!B4w0&z-FZ?%v1mLI`UyCdY^l!m2WG{0j+ssF>>vw>) zemHCo7Lxr(5L`Ic*GrC9ZxxY@`7;PEU4WZ5a=(c6{VNFE{%C+z#*1P89mJ%J_l2uf zzn<1kjaX^BwBm37@V}K8>n&tnUh#(${10mLZ|G;&Lbt7+;qK|b>~D4~7b>|a2rgWN zFg4?Wb{>^5#Mf4pJ`})#@=xuf*}CE&Q*Svs$ox-4^HSk|CRL6($ZFa!V8gcX_(mKw zpN8hj)!0Z)i`;!|7E*i_rWFI@YQI%uiP<>}bVm7umZ}rI>%>zdP6IsMEFOH?u3-1a zC;CqRpQwhje+)K}*5-jyoZ1}IgJ7*AV2-nHbPl%5ONnRq+B74F+xg}~t+mAn>Yw5P zEc!K8lFq!^p}FK~o_QDXNd)ziItlSf_A}gIi=2QPH0p}nxYPL^k7301W)BgnxY>ES zDtMMFOhf(g`!127mU@MIs!Di{1BDY7MWeog%9f{Fd`41&nxpiI2`_b zwpCl>I;rv<&9A|40MZANe_Y{SV=BVY9_S0dG+!Kl2*79nH$5MCp=E1`BE0t0WBp_w zt^tXsZYg`Fheg+^V+fSJ24^<%^-M~sY7m`zbRbaO6dztio`N#LZPlC|!EL6|bOzWl zgkIAv8p-f!zQ|B0Yt}PDlsYy4aX1CNW~9hf#bV~kSK~GXGD$3-CH9;jnB1$OWiQyt zF(R%E08?=_;z}FOT*z*m0gP9Ly8`1{_$`DlK8T5`3XE>S1o@*?7V)REf%B^>JlCKO zl_3Rd(>?u7+QbC*Kg3g2d{$O}KT$LD4*2^qf3#HDh1W^DJG^ z?A{Yt+A<>%;GK@J5} zM_Fd9$2vDL$q1VZ0q={kR%~!yY_}mby7;&D2Kq{%Qw;REYWICkk2?PXOIAd9=c$B# z2X{@fF7O0Y;!s~ZwQ42esH6KikA+i|X8eVf(`uzHN@e>Qm`s)MNMeG?bI@pUTeQD{ zj#IUNLAwP95rud7OecZ^ga3>A$Q7y9HP1YXMx53n6`H^I z9BM8}C;@*5o#cPp&clr)Svq6Y9)t1cx>|lpD`LGNXfAsYS-8!0LU~!@&7lUcXL&Jh z*4rfV1=V2&c&tfJV|0dop-ka$VDjG+ZUJu|f#$IHPue^Z%@wlQGUQRfWPZREoY3v* zXs&)3iP_XVk4KfR!b8c@tXNfMhVhpSI|hi!Wd>=_EDCf|dFyZvW5+Ypy=n76b#J4C ze+ixlwF&)?nL5$SnBZSlmCzBG^>jsxgZO;GnZds_6t}^7;bW+&#Yb2zMt2g7kl0>h z@xO{s0_;1c)_pM!n4C{}a>%*|#sgFNIC2Kiy|%q3@Sc#~wn*_|ECsAKln04wr>De@>)i^h>c`!Y6OGhs&-O`y1 zblJfGdlTQfC{uv(9^!GdRS9GPle^V-_j6AWYa)2rxMj^4M!|#1Cgbh z4q)05o~0w#R8N3h({s>VeT0{DiEd_~dBsyF>Bds+d@j)SPdO*h_e;(4Cen-N0l4)> zq!&x4^MXhrZ|4J3^EBiQm{StF0KmwbEW}7AwMnKAsb5GYx$YU%k6-u=w|sOesX_FB z(nSPHeHNzxa#*2Ew?h9ri+x}-0kK560D7N8g`n(KVDb!N z9m~Jx$un`rlMl#&=U`nBa+!}xL^yIWjXrM&M%L#CF5V#}qvuJVM7e~J^*fw)pG46g zH=tWwmjaZ2>1>s=1TX&K<$3dBiFwS%Aj_V|T;&t>)~+w3t|z@fT_58sCUVDfKrQST z&mD`n@p3fR+=95#W|Iiu+z3bct@b#vr1L;9?N&D)jj;xzLU`u`IO|q7lw~)I@Cu3x z06f&dPr`-VE+j5wy$rdHdcyLKoG43M1VYDebq})}nuzfWh@^K8Vtg5~>Ln1F$wH9K zyAAiiYZq8f&9$-F-L->}OYt~x1!xx&E2sEjJq4yXQNkv=kmTKY&S zUP&W8T!muNjlXiF*4KxAZC1mJfV>KHbJn16X5Z~@P1h`gA|Sn*p-)$dOZeActh5&! z=sX&(nXKlS@O75}y?qVd`OW)-4_PeLHNe#E!A-?K|KO5MW7G!WEX-&r=1vCT)7D*7 z>C3JNd>1;tPYY|s;pMfU*Z8ODV6vkU<#fw{NqW^eT%G@@#jwx`y57wL(D8EJae-=l z)YB0UP6T+TxU8TJ2VGWJ0fIlg3JZRDp(O$ohvO@$=XLI`cCYG*?;R8aSn&_Pc|z(< zO9NGst-`>{Uw3Lc%tsTi=a-PgWWNqKQ@)dDy;FM~I@`X^onQv?a_H5->|ci(fs?!k zsE0;|<9g~gZvk%BnY!f+y8+ayoA`;ZxW8~C(WqL0`wKR`g*+YIC3!kG5j^8fXQHV~ zaT0$sy3BnO2ZMGbaf?Ayqwj0qLew%B`pzIt$(Sp2(X9j;xfi;~hMeg4HuM`=hD($- zK;atQPCVI*qfk^ev2Lx~Y7KyeW!P4D+1qT}G+HQ*wKUS)MZRox;ycU7yTz%=I?#={ z1CKq~0I6O?b7(9$R7xbn3Vef1C+Fh)qYTtGx#HMk6C#Uq2b$~dpaM0Au zbT7~;5pk>-S{UCAXs)V*=V(JrD9-x;%v_HRzQN5u_!i=vR(8a>`vFXfiaWi0OgJ7r z_r$T6B{W!64sUD*tGfp>8|Y;%hCyQzd&L=;xxiEeDW)uP`^v*lbEsNxT&gK)qyP3-akDvJ zfWJKuoW-mXq{;F=gkLE~BTU+ZKxg^l*p1*&vQ!V2Y8d|uOzua{0X8q<(yC}NrBa=T zNK6y1_M!N|>hp+P_QQnCzS=ijrMKsd5;?<12vl}8l7^qR=lesPFFuN~4UdV-7mVzv z#OLoGBSP_?It$dq4!k$;uA^Gm6mJ~t+<+N8PRO;3eT(UPeN3-uH7=fAOR)>dE=?{$~heL+t|ecJ%sd@t^9 z;&vXBKXE#+9hf429D9vHY^_Q(ryWEnWwQr`Re6eLSA7sx<)r}UsxT-|gWA!9Fl593 z<{lGzG?gGd17Jm59J>=~#XJklhC{eP1Y%}eB8my01F$kaj@?}oGQR`OnTO%V6?EnU z7hHNCnAH2+{h`UZ9PoOE7XZmkh+}tK#R0ri#s4+=TuVXsidJA;3zN{SoUvL6K5UBIMu;nJp+G$n5JHm2CIiWau!2m&~p zgC^)}lY_b&Bm-Zj=#;S&8xY1)1UkMLmkAWU)vbmxb^pzmRjBau4 z5k29>z6wm;*C?6MUqH^LPwO>wx7aihkG~fDi~a&~-WhSM?o|L^H-Itt_;D0bWs)Lr zZy304r^37$>=a)>?%%R{n&09fg}ne~_23#$?6|kk-1rT4oX!5#nngTm@HWs@o7{8h z%c>lNbdlh@SXEQJG4+D`v5H24Et;|2qBOA3D}#0Wecvp zQkC`X9IK)dU<9+rC$ROPZguQM2B=oURefY+7raL745ufnnHr>gM(7RfIs+RO71>=K z`XO0sO#H01p_zEIW$g`12r5&a)cFpU2O&JbO<5vUrK^5Xc_*3DpY#Gl3(k zqlJi`IXX-fD^~l4+8slRkfolGhgTzHG2J}26k>mYeoG#553tKr>dn5bsM))@5hFN4 zbTfZ-E>Tt8c!FOezq>Kf@Plpv^2=sqqMDiAI$GsEj6iGqP%ipbz4R5a_BY&>&l<+9 zs_;*~24>5!IQ9rw)X}7lDt>tLSB=j=-`@Z;e0bc@mJKOxpnOZ+43A@XkVL5VozaXV z(+mB)gp|LL{yi{tBjTpD^dL6!4`|LG$$Jn7Vn3oe_fM4W?_bZqkwQnYdadbM(xb$` zl)vzB%Po62Ga%|>k7MN(;_$Ztn1)AjdslX7 zU8Y6@7^AjVw8n+?`K@tD>u;yq{6GF))lW2=+JA7EuzNF?0hss>s_W>u_F7rhU`juO zc+)@5YPBT^Ro~KA2{{CsOB7f9LUgPCMG*$*nmHgmwqHTF@n3js_@c2HD4f#Yh-CdO zIPuL`Z$X9>yEX!(*nbB+eU8d|2+6v{Cs2Zqe{my@8f-l`s=@vPW2hL*<7=VS|3vfT zC-B^mO~=AO{{>*>IN|B?Y}4OHGYxb zel*AF?B_H9D<;MHRrc+80LzB2f@~`T&GH|@p?3s{HB}^lAJ#F7nl7iCHn7t*P_3KH zH?TOwaDimbtteLZcL1} z&LasORQfizUp<+_hXfO8EF={%ctFbC#x+_^p30diI37uis%ry|XGB}_(n40FKrMY5 zmsPR9ylAeO#`hP+6?)uslgnp}`}6IsQ_7!#i)cE!3zkP{B}EVGMbo(QOMU68!EHGq zqYRs-Otnev4a%E-_ViK(pEz7QLiaeK3*{Y9YFx7savfR|+wTH-Mu}#Dt~j3{2Y7I8Bp76OnlW zFm)G+$eh2tm`H=Jz7vk5jkO_3)YHqriYF2B-#c*=cla#Mh>)q%s*Frs7j#(=?MhR5 zKk%1JLfpETaFw0p>Oe7%+5a}eeO!Ok@2&sz;SIDpAKw(101DJ3X z&)EvGn1JS-tK&MVUR_;rRB>cp1u?RT2AU~F>*UTdFwv^1t1HP=!z31D5{;~zYm}Y3 z7O~~o#NDuscx8OSFiT~LR&9|7oA2$e#bQh*c;y+cVmdrv##-=i3OY~e?ixy+vmGxE z5VL?exD!-^$AS{7#e^#Tb7*8qJzZnfwTJAqy-7@_ z5`&g;F%hO?8k#GY@en0+Afrb{XYbR2N$Z7mn6;cwQ{?5(0cPiNo|hNRbWb~T1#i~! zPxY93V)UrbxiqoD-ma;p%N4?$oCiYHy`dGQG83Ne`M@+)p}Ywg^R^RWeF1=}yYXr0 zm8&d3af|Ch0E>3xTND7Yg%_FYSuUG+Ur~3omceS!HZ>y42x*u6R@EB#uGmfb?TG#j*DgMQZ4BG^gLp*Gi0g zE}H9a=HnK`=b^de7D1d}wVRLTkpo?0>`WGQqc=qs=Cyz}g=df}!wwmW9Q4vq*tHOJ zCpV*+))M-65ioUw5HU7<%Vj}m^a2CpR}Dkj#;8@xk(!WbvEd30bSITN6z`k{(dMlu z^iC1};vE7X)21L=2-_6^77cOXzL~Xhnx>^WMGwwjNu2UNiVqw}Z7e*1t3Ykk>$sa` z6QhLkT$-Dd=eio`s-do)CW^wvUkpse>v%%UhN58m5&*qrJQfgit}&YXsl4G}_Ge|> zClYj)0+{{=4Ev%x`0|O3cP%h=!z~++7ELRX3`}mBp-Ae&BT<$-!pJ?DmrSh0auD7B z2DUwRvl%E(I9AX~WIT>nH{?nPMZS{eyPoG#LSBGgQVRcy^^%T)ziHE@kk?h9mR8QK zoM3JVnzxK{p_s{AfcAEtggl+?&gfXz=(liLQayu|3V-Wh<5ECKJ z8tOLjOehH%v5FkPS^|}viA{mn*SuQ7ty_nF>o$tw9v+dGqB&_ShGpYk&`#BiC5=?3 z8C&jc-$!L{HOEw1$SEUu2aPLroI#H{7h>V>M4$QNAiy?#ik*KKjeQ&@DYu@mP3wWF zc?TZ{$0bg)r%ukb9@^O$S~(4^emq6OkF0#Du(U0A|#Fq#NF_@QrEK(?(kC45$DrVTWkyBfQvsDeov}9ylhB$QL9}{5w5E-HuxgY|KsW5i z7m^dlT4j{#u0)o6GjVA1*)H2Gxmd{xLS{|IN+KMz8?WX%Id=~bvU)Ohrp?KLkjV!z z*5i{QlgQdIUqk5S{{oZwgjp}^&gc&KL)2Nt)4qXra!rIZ-)WaT3?%qo>x=AV+DtU2 z5Wz=?;GrxyH#Qr^Du<5}JnI>s?NOT8Gml{+30t{8hdcI$ORO-w$I;xF?Yc#c+Q!9H zNWv4q+`oANTnv#Acme%3o{KntlhaF11+JMbzH;l=DS zFnGrI0tny17kOV4kjYPhR0Yx5FU8Gh$tQ+nUN0rd{O%yIsY7J6+VmG*E6tvf5N~>T zM`-+N{H5e&eyA)o(;hT$+8NhhjoQi2^2COI#lW!WkKz-}cRECUmH3`N6UN}5FD+s( zYO!7eq3T_{7E2hO*U@}vCe*1k$RZee1DMQN2!?Dnv;e*dVE%5Ntr0tLFPg)0;Yrxg z(KcILB6OeJDHAZ5FS2n&)yeP?YO*U0K2(f+#)b`~;tSyxkhL$8Mup^Z^>S8NLGpjb0T_BloR;~;IzFwmn~G*$JA@uWk!@}VInV__ymM<-{O`_ zEd8fwKKd3{Eo8d&vXbfkjQUwS2V#kQ5p!_K=hh%PU;dmx)w^*^Pl80T$N_Xz^$uqv zDSb_Y9L9r0qffOZ13>#xgXjqCkOs}gW`l>oMni^EdmCgp4+8{mV{LeweyV1!E8K2F z2|uSEBMYnH=19oV7idnO=NfFzV!_br)uPRD1enTst|4~zPlP955*KQ@!M4`fe+A5j z`K~T%X&v9&B2539IMKKVVY)OeLUO+Wq5K7|?xr}6Fq)-QZu%_|I=lc!2r`%x7Wq36 z+IlDZ=uN{n~N_B&6y$ z0K=|uMXO^)uJ&|l%{HRg@xL3u9(MkhwrDfkHot;X40ini^t#XD?iAie%MSY!&AFco zWzXNp_zTV3u7vB2*o%!v95?+9OxjgAZnBBbL^;tv09Ib*>Z<;n#y6m_O(zI*klQA) z&;Lbp<{`1qVY;-ABGc6b38hH1Tl+5Mi(UA-=V8G`KC}OLP)2c>yWXOsFf`XJ#xa&8 z0TD6wIMpJZ=D~hgvjj)Y0GW*iA@x2ZWGhhHw**y7BRm$Dne>kaP6E&YV961j8g9J? zs>8;@3eGzXG^-jDiCq_(OTR>7R|ccPc!mR0vlPa2`&_=j6z=Fjkrr+ZOypO%iY6l_ ztJm5Fz{amQPp$jBEimi8=I71A0JkHahAk(*{aXu9Mb;q#NUU{Ka^mSHO|Oeoh8sN( z|CT$7=-G64$OBCMa%8tqftcSJKl{DEH9eFRzk4k;|Eqo`2hU) zYbeBwAA}I|i<;5EG_FLJ$EL`IjICDPv@zNfTT}O;9zeR>!Yz*hwW=SvOCw~n1Dcao z8R-(H3xqgz1ZLAJh?6{F7r}KWVAdStd)OMv#sahITU4Xl=@fo*$`7FTI&8uFUgumQ zNr|GX9~7|$w4~r1Ea%MDcvkitT<23w{=Z49+0^i{Um@;()F%uRhyr=Uev&eKR4I2uK_U804Cya z(3MMQi@VEfb&_ZRyJ}J7BFlP3nA`;2 ziS%F%OL`HrG>ERpcO%f|I$V#J+z=c+10BWw&N&*A3{8lV9Nme~&YO`Yoi*N~ONG+y z0cyu@hSG&-ShRES?wK|n^bluH(1kk5PEYKvs;0TTr0mS>6^6YR$QS*|&#r`)=uJ$! z6~nZlBUYe~0qlYg9Xl}KTU|~yd!*&CS-8&0_)F5?+-O_*)R*{FbDJ>$wkjffkpeI7F*R{e^A@>udow*-w!}@ z`daLJ85)s3)1pFQ%|Plb>jPh3neh^eaZod+X!OD8EAco=32o9?A_X%9 zz{$sPSMAy7_(mYVlJ5BEfl&}Tlsc^_g_`U$*;02SEc`G~EV=_#_o>Oq17(+?Zff`< zUV9@XemFxrRdJcChZ!BLN!B`!5=|q5f5~n@38ADdj{ZjiSmualcTmOA|EM6H&-%9M zptgVH(*recAmN^*<1Z%~;GRUf_>4ra8Nf8%={nPd5zCVaOk{XGyT)U+>!X3$5FXF& z1dGi&2F;o4u~%fUCIYcDY0-{X#_<^8p>ia5OnRDo0~3Hb-Zq|HTM(U1q|WLTRSsLPzKCS{Ss)a4w|z2Q*tkhV zGXGQ9xQ2_k`>0Kq+ueL&?0U@fY(i$;0M6l-wY6H+=#F;dq5<QDQ0UTy0<5aw+&E)`4JP+N%TzW^gPf*$YEC=Kw z^?W{v=ETIa;zkkpUV!GN-|)Pj+OKS{|sS zKVVBu_ej+8fvI=^!Lbc7u|yXGnCy>d&uoaA&P!-i+a82Xw<+KgJLysoYJ3nosZU2P zI6_Cy1}5xJ=;-t~uA_y>Uk1$maq;ZbK%8;SL38dyNFm7D9HGK52c|CGq{5BWpsNaV z(VY3P{WUM)WzM6?*ES>BW)RALK6Um8Ea~TOCeTH2E=?gnO0Ns~n+t;I6@R%=L}$GU zC`5gsfksh{6=jD&_5#Ry~+R% zHDQGFbTu%!-MIDAV-{Dr7X#Dyge%81IiaeT0CVUcRJz)DYgR5?19a30a6z(51UO5H zr|Z5#fMZ`>+(BK|Bi^{V`Y9NDEl6%T;eLk<4|BZ1*bb_+XEX3C0G9z+zs>cLorMyC z=yCw3G@%SiuD&RWTtS1Z{>G=vB$()nm}Mmh6+eY!qzuC7Ub~i{nHW_u5z745H%0x? zhYN;KLaRKE^%dxUYY>F^&rWcq?(Bbjq_$4g{j?|0pi_R3TqrM8igYaw~5s7r& zIXG4*Oo_LgbMorX)y@COP>1>=0F>uFLU~<}&JUz;Lm>R28;H=t=j{CZcwu}a%7oq!GK^>>$2L!nT#B5N)031bgKc& zAK$*4N}XyP#IOYy*xL;3f$TQ6Sg`?b$LMkf@C_)+=hhgcDstL%S6dgybue*Wuy!r5 zs_q4_*5=ScM4;=?Y1oVQ5vcHmN&#Hk%45FMN)}mjhHPk=F~sc?+Q*0PV4MAKk=eKd zL=Uv`^sqak5FYWJ0HzJ$iqPtJ+yzY45H4;Zj23vxGOQ=YWE}MkQ-2NNn=2S1YVAxR zVmXM_zw8>Ph7RL~SHxTjn4+DCf$a)2d7}Dm>eYM9r|(2r7;-^#&CWD*dk;t!??PZ| zD$3+8?!CZNIz9SS(o9SQuNwgLj^v)au*3JEIcztAE}3f;zQz5(q>tjhg&?sJ&4-AD zbmhb-HUYES<*~gDBW(9(08h9)gX}yoQCe9+>@3`a_(*muRNDgts^8-pZWjqyHOGVK zygHL>4q*ZQi{{#JkFFtQdtIozhdhq*)*jn3Zfk!JgW!rWygws4;d#kNfQdXaenX48 z5?b+5H1B&2T2Y=2i3NHLnBuX#8^Q9&(d-?^BLi{^^=_eplP8FWId359l?QA>F+2$x zY2&%?C|t`eMsu{P9UsqL@eqE@)*xngUK_94elv6`l8cPbLZ@!Ss3=o7F0$K6upQLs ziOqKY0H(1WA2|`V=9?*+w@em&*9q_HYZL(#-2s@6_dG+6Ta7T zXby9G`q@1qBZ9CUG{m~!@QoYkH44!41WK(zq*j>4S3~4NUqF{RH7FyHdr^2RFB+Kk zYPZ{?59G~E5tDcc=o8uT>`fPuWP2ISYjWb*TWun$+KJ}msa)xiHqvWD<-@yZPDkqy zb=jO5ii=NGAXMw|j8{)i%DCNC#iWCaOPV1@eTof9zQ;$gl}w@e&Xsxe=+k~q~!PEFW!sd*+a9m zFZ9-?l+S)W8P${>nOHtI9^ZGn+tt>TGZT4(8WPOPPqB6~2`pmyTJ+gCGd{nCFJhhQ z(3}ws&%mZ!l}v{o991^GYYcAllZjnb)aN*;m&b*o$l^T^&HWq?0(_IpJt0BweS=== z$~N7~+k0%)m~iJl0L`)ksI_Rwiyzf88L_uMG%)?mK^M=segsTWdynn=Ga`Whn7A9( zgaBS9l!W5>1k}8jaK$4G-KS`-xP%)zVM{+lbMmF!mWnBVj^^r1E#fM^RdN8Btl3;& z2ygiynhzaz^}un8Su!b*(5p-7nnT8FROcf=X;|xW*x-fvJq)^u9X#e&BgD?G2WH(I zzO%(S!53&wxtyO)h~^_`t`p5dXMc(2sE(eIrXmP2$ghBjoX4XhG3T$1IcMyKL}$K01n~fcF~>n|;+eSE~KT+TgPg>-ZfQvE1LH!%bho_mL;|!mxb@%!#jD!|ZY$ z7@n!P;d`Kq7V<+7GHiO;s7U1pV+yrv5a4ZYg%8R}ML@!)%@|!$_z_sO?i;E~vzERH zu{?@SqhjGz+a$zAb~$l6+hXAh*o3EsKZVEcG-GZA`X_@iC37Lqd1uEv%kP0I-TWN_FPpOrVeNk=HdTBN zYj0EdBUbVkj41s|p4Anz{}s*Eeor^EmxD*(^e|^(n7AM2WRj4(C-U~rYk;1b}41~X8YtP=p1#d*?APdNxx|1U6^OT|o)R?yNy zX@w>6`By~iqnWt zej_4Cn>mU-)(V6+G~(7#`f_d}1;ZS`9FK=>wjriPK4wMp;n@oG?F2giXIE!+|4+!a z+MJ;2zlaFNg};QYj9=ekPBlh+SS=iw$-lU+JSoKurHRpzq%48{1I{2fEU6VTq-Z}a`B z(c+EbPC;~3N_b~HMu`hY*+(LrYQQCr*KhTH%g>~D0 z9{&i2@ZbW#BsU@J1dLe?30EZ!z_KQkADD=710GL8d4E*&Ks#!b?$B~h>E_Nrt}hMm zs}8@zhbDaV1oW7*EF5SbpEErD>3M3lkBoyRykw+R z3cX}>27t59@Jv>RmL-}`El3nJzvf`QV?Omvb;?VVu0 z$#12d8vM(C70;f?)j*NMNHc&e7#7;RADWNf&9%9hYkxFn^~79v-@_LV-5AWJ!s`LR zB;3nYnot@8(OlCOU+I5#x`*<8Gg2-WL4vWB`8y@4CPO$}s)1Z$nQ1-@HTc|z7s2!0owC7$Fr|V2sN6C=Hr`rfF=rMMx*(tC%n6vE8JHd15A44Nk&h1 zX~c4$33TxTd@02XRb$ay7a0zh-TFm8>spKhIw=ZkAuHR(%8sXH$d83`lOQaZA@+U2 z*a;xCs*fk}f9rN4(3|>r%-sr#X91Jz4Y#KV_GvMpHJwD`+vg2G-L7vDo}Uep$Gzdn z=85nJm?s01^hiAWAd4U|1>;!h6|`M*y<{tW3sxu{LWZfH?qei?*jI zcIs3B-+qjb-n!<~fXR7WNGxZ-bQ)CqaJ-*r6(BLFa{$bJLeSy2>1NQfgvC+txRje& zLE~J|*cNk=iSa#h9)OK~J@|^8)sZ3&XlbDD+nrC{mUO_5+q8wp0aiX-0Fo!Ri17zE zo2Ev3^FpF_I4)XCAy-y>rWX;Yup{@Ujz|8IMnPmP@A3m(0-I%G6 z(IQ}y62s3_wXv3Or--ZER~W!f$}<2bn>J{1=60olj!}7CqWh^S1Noc0;;PhD1`yu_ z-x<%|Migf}R|8YAlb`VzQS!KsMqqIP=CK$U??BJlDr2x^9+u6tga{6V_-#KOc4zZa z%Rj`-uQAYP(KO6kPXL!1z!=pu&@)g~#dKzIz1U3G0tlu@tL0szaW82w=Z;8ZECaB< zTli?z^f3QSp^r5fxo1l zK{_*Ocfyc{1f@nF=ARc@WuULJ%kgO46UV#v8t7)~@CA{$qGP2kzDT;7)`zsDunaYE z4__Y)E_kkB4d~`4g^f_*dpS^OWj-*;eIe#$dlN2VL*kqBf*>Y24A&h8MS4~LeLRp6 zo~tl`&hCQCk;{67byeAIVE3}ZQvBsU_Lm-ZXv!q%sh~{K{Q-1F&#;zi%xz-%7!DsU zzM}j9&^gr!>`PQu<6moF;#EP{ScjU}9M9zBrbMFnuam`JS^r$b{*1yZ>t96nO#vM} zII@|_{U~8zgS-XiK?9SdI(*EfY_;%*0MwJ0)(2r3jLEFW;t1nm1KmQc>4pec%1wCJ zbpTd=!mZw_vyTM2uId}sMS83{~r z0CTK6jz~=3{N>790$|PO=ggmMM050hlnTGvCOk@2jSIms;}Cp~_UeP+QL3yp_bWSUSW6? zeFk36lV1ZD6rW;$X>K=6Q82g(=$w?WWTI%12YWG#bZ_6XMoO34Qs9v zhoEXU?XX23M2Pcj06k|23U`5K@uG-xo-=^MOc#5OW!tv%cmNCz{KR=9a4JLPSy07R3xd4`B3=upVmLH{2Hp%vJ-_LUsR^ z*BS{Kz5q%3d6TKaO zf#jMg?-5??Vs+p<0>Fd45o&MWDn1L#-}-n3z|5njvLzHpOl@UsS?MC|s|Kc}3LlEi zcg72rv5EL-E}CXBBT5Kz1pQI@8V6+1qF?zdWp;T2aVnQ6!e%0cPVVo>&&f^sdp| zT;&c!9i7cLZ7AQNM@RXN_h@w8Mq>4~q;?Fh2=qQkj{2FWI>d6n8_hori%h~x4BW(N zxzqhnh3yAA=o=6_NS)5$@eU@}r~uZ;+ko6d$f%64xoXjsKK8XOLVEl4@)^I$;iyNb z```bj+(oD4kK=!P>3_aV{I4(*Y4th3S$wiM5!nZ(_x#3>V1y^GLUZyJVZ&6}@7%!( z<*x>&{12=a`>((PQ}+iSyb*xor93^gHmlgw_JOZn&Rj^Y6j2NUvDG%0!wKP4iBg zbpS{sV^{gLv!lvbfe7f7)8kM#I6X0@2uO>8KJBjmO`mrE(*EE0LcsXQ#%llVxM!P? z$gi*ISU|kk^%cfcdzNdGmLz=zT~Gd<=;k0W6UK%uR`+z}H4DLUYaosLkSla;mWKso zbXcaPLiM7DNh*8OV*9C|x^Oz;M6CvWC65p5Z{3`lb{1b7Kt#V2a3(tUJbtVVUuxJt zl_Pxv;J))btkheNF!TKS_qDQt`4$-eB<#Zm?Zl@QGCZEfs=|+aSN230W7YYbwpiD{ z3;b`w5M)A1M`HIaqgFAt?+tW+wP&K`RT5#FKLp4wZ{*2nuoq!+M}SGc9!VHqW6u>0 z7~yP>0#kSeHrd1aS~wG)`$q%VLoE#RbZ8(ZoXRl+ldLMTu;y%u=R(n{DI%HUK<7C; z?9QN7T}}XlAtaNsGhb=l(EnrruTsk$J{EoIc@*!Yoiu<~sEVtwO}3z+Lfj*rGSIO| zJ0ih)YD!qDT0K$t3fj+#yQ{VAFM|nfo^T=mpMlRJxd!Vn7GyUNv}-)PWHL+(%4?) zwV0Si&FCNXpk`|QbQ}$w!@p^dK>qDCx=fw}EsdIiGadOwc&pO<$luU^`0; zXZ-I4kFh$gRdRm^&=oPBu@Wd&qkn+&UxU>st+AzIP*}#90Kuf$ z*p26ovnYjDRIxanWq)y~<+HI?BeXEjx-n9&vUSG)#+uTzG)Tew|DrI}%{&*X$<4TF z3ARHF48ME8k9N*ObMk^Pw^|zSk=JNUdHVAMz)@pS;dNrKW%wcw5^A7Zs=4!UNup{V zIw(7CEl(lK6Pd+E=KuNChJCHfZo|iemd574v{xfq@~pNHM_2$|^;b-+nma$NwcS{> za}qAWVf=3-v17Aj$15s_)CNK2kWK?V$1Y!FnZXo9a9m7-DPpNG+!7@mqoUxJTHcJ>wYcjnUyswQh%I0==;ru6 ztf0rrZVWKV%TOOsa&1hcN^9d`l}A>JvGwSp#~Y#W=$5c>; zVv)C9eu0O*cOuYn0dxhSS5J!69WVzh(9HtqonvE=GPBaQ4mUpVm%;5k>^79xQ8YI& zZB^3b$mVtfw32NR_)EdKmp-u* z$?jNnco|mivmH5E5hW!A(33~UdQCuW%EHHZfX-Zw=*F`gXUZ9!Ewd~fhSxw3BOn`= z=-&rSP9CK}u0!(7E)3(Ls-Gx!F@>t|wplHVweAL(LmOafyLfJHuok^ai0#n@2IeX? z`S!5TqHdf!vD($Trkzwn;-edwtL))nkLQR3ukL7W zbx#<+l-S&&Q399FfX*VYFgWxc{9=}O)?F@UPQ9s+Sp{$ zcD`uwv)tZbuyhq7|ABwoFBPxE)xVgz3?%yiJ#kv(Tq@x;FBN)W5l@EoHPEfq;cuEE zv>zLL$-kBU_5(WoMwI@V%4&E4RDWPH*PsB(rqoCz(gpxnJHW#pu@eR}5Y0;ma)S{r za1ffC4Dzryp~Pk)1$xAr1jL=RVZoCryZLZAV)$dZB^F z8x_{VGjWW1kpXP2Qtl6HW$IsC<+_;Uv+n*doXT5CiXzWTK=M$!hZT9s5=bJH@qnec zm1aX{yNyb`H-YV}1^dH@{R{bo2(7vd&8ce<|JbOXxT7+hmdo$&p*2stDT%M%CKr(q2%cZ1K8D0UZUW3B!C->&QY?;>-I(gm^&*{ z*N&QvS@4(vV7E&>>?#1gE1)@}cXl$-{K2e9Jyz!9#3|7g!2C1|4{pfYm!jZsG%%jo z$p7CwnO|fP%5Wtx>mHib-OgIkH_inES6R*vV>}8j$6s!6*0M^cq>{0ZFC5bHb>RRBkAGX&kYrH-d=zR|( zUbk_=LRjMfteAsajmeyEZ^pHhx1)>UG5Q#tlZD=D+Iq z^&nZDDLCgJ7nwqYTvKo+CPgG7w5dd+1o_W`EqGaW?vz+vz0S-*`05)1=%^C7V5!T3 z?6d%I-xR}5Gm1hiHyS`&v4}-wI)KSndD!cbLS<*5dE-VT%520dPHSccIP*Pk#;vOy^K8Xi&$fz3s; z>sqd6v=Zok=)H#=>Sy`m$Rf!}7b-swG?K@1#S!*5AI;HESe+I6(aw|lSpZDxIKJWt zMOldE>L)CrhVYwe+JRNvDiK6P+u#t9kMc6_ZT0}*HcYs>Lb0~!??ZiLquB+U|4V60qtb7hd z?mMQMS<^E>>-k;OZPMnjHYSibZ@C+UGB=~#eBuq9kSJ%n$H1WI^ag&GA>7CcU~;yE zC8?`daL&bP%}QWur}1!H_{ddg9$p$|uAn9x(PN@}TldnK_RXSuTdgfS7m?Li4Qdf( zIDn8lHmf160Wf_AHzdJTKAQh7v*k(~KXFw6%;}pD@z^k>_vNBAw-9Lm&5=XxHl4x% z?*lONd4$$-2zt{=<(XP4^k(V(B$b>wu~(|3U->y|5UDvOj<=KZfqOVdjv#DOMxgo zLQ3T2~b!%k0tVpuz+Xmn=Zbj62XqS)0U?Q3;M!!Yd zEy0{P(kua;((Txt4c?B+Wj4p{diF*7ek1*5p@-ERShe#}U`Fi-8)`>Uc#g*a3|Z`% z)}R@p`EfMoyaLB!IiiYJ;xivl0O-HjGgOUSh6sD9r9evu&h!Ogt#3DDR-QEe!JY>f ziPxvlT)i`Fkf~^fq9?5)7lFhkn*HnrxaVDwWa*KFBF=uE2F0DP;nZN#5*{`O=Qe^? zC_1ixhV(^+lp@B2>X~gpgf-6+m$}$UNgcIL$a4UOEQh<8yv?$X1}#SqjOw*E)4<9X z#-`dGBnlC1sYkli<&{`SY|b6ECoCjB^@sio!dOPgz;wBuyg6xbf4eQ zuetcgi^e~0Z_sRQO5zcQmw?H+-80{Wp_@;-XR5K^28{m>&%y?b2pwKVbJjZu9i#?` zlH2XTl-wRUN_}^oeOix>!u0geQP>Wep2~N_X4`EkjWO^mGOvL6zPosWSkL&lyFIab zySD%&Uj@n3*^}n0JTGpZZn#?<1oIr&P7q7EhsRq%^U(Z}dAvsaMK3`WPuL1>NLr1> z+c>)jxok=70F!XUMbQd$xq2lJ{lzj+Ni)bB3<-42u1G+>s#dIUvUvi z{e}VQrLyn!v}>49kzaWenCg4^HbN}tZ=pGJFP8KFPf6+90Pouims2&(l5-Fl?sov3 zv=6Cp8z4DkEqr>z_FWQ3?b6sd6;Xwl7I3}?#rJKx?76|M5XRGQ+e|2=VVhZ@C}h+*F<}Xnoyx zU;T0HO7y!Iz>^<^^(%5aFS4@&F(dm7aEdzIj#t41Ek%!pvieoT zs0PJ|wR}+w64R0+VjluizLuLEt?Rlkx`6i)^_BZ6ZdMi-@xH`f@ng`a{1kgdn}}0f zj{hVov}hGBf69A?!Vi54T1_7Gu;;gfw`w)dNnq+TU{*iqVGke(U;R0nv%bQiT<)sK zR;IqhPWuZ0Yga|atFl$N8f3$~*xT<9pidS!T&iGS6Ks(GX~oP>MCu0&w0Zv^T*j9M z1`kTE^Ym^oV}bb!nCf-ht%#k@K{V^J7VO7$9h)JDQ1ws%U2!j6FBG>u1=+&^VE%e; zF9K5&z*H1EV$|es>@Ts3zkD6|i|0#wZpF~QG0^d9`IneX$*owszXh;xHST@dj9>Ks zU4Y`DKB0}}z1M#YkG?nlmuzOjvYq$=K>r$q(>9z4Cx67C*i4nI!F`zGg!AH*@9jqB z8@NKPkFvj*)mi|53;?UvSoB|boMQmy9KsqPWh*j!$AL+IoM-k#D(Qql!mE}Yw#*T1 z&Gfk8PeAAAP`qbx5}4X2_{ogb0h|Kn%lybTwqg$4>DTUp?)29JeI`E=QKe9L zYaZig07Jf}@KXRug|tJYOwupp5Hs$MMJCC*=cff&BPl`jYdsP#8h>q(4Vk4z(nQs?djLxGJ-LS9yHbR|ADcbEWne&axB6}od#ytGko(a_K<&~ zIrCYbk<~k8<=&^ag6Y*|DZYRd*t3vkG8xWAc`%{09d`*GqqvZ zVhef}%^U8Eyhv@^!dEJhJgNhx=03dFJie4~okiWp|Dr?HE2aFDUW7OyXs$bg5NC54 z??$hzbT?AZDm^B3UNkgi&W~Z2t3l84&WIrmx(cB43H0hJ9AZE6JO^2&7>a)Xex6HF z1XPWPP||T+m6wEq+Z5d;B}f_*a^G>JUF4E(AbH(o7`i<30xu{HQqy`y)EvMZIuSO; zN({EY$ZPCl76a%6F#o5p>8AXV@c7}tloeq?&R*|!Dc@3$`2!Zh_cSrky=gDX3`R_5 zQ(%%$q5M)_Vien&2m^xy>rFnlipobNkwgoMkw9ne@U&1>wMZ~ZpdjlqfH@87N|P$K z@=<_n{MkOP7786371d?vnKPa8Cnd#sj zR$CwKVLhN$_z#NNY|!HT-V0##dK}B!WP*er@eu>#*2Z3>=1k-JPf_RL2eqAV^W3>` zk!{dizCQ9YRs4={k^KDg0_w+Chl3WGa1f_DZ9yorE^M$}`cE*_4#4UcsI`p3v=#_ z=EKDZ!T(=RF?I={|LZBnt_HBnzrDcN&A_x&Q9s}!ep1Q5zt`A3(Dk_=I3Bci@4!jN_0xilq2P@K&F;l5?v*)VXoe|B88aW&$MWKzQo>uzwU=Nzs zxeuW@S!$E;+&$52NHt&B#p2To%_kc2z4((Z(Y9Rk+2Z*rD)#s zCC?e?^^Csts#lIX(9cj{s-qqKRY9R6Qk8tgFQRF*>tOu~y$0xE0krRtCT``6a`aS_ z4_jth|4)1g=d!^6qM{u`=r2r_tmxqedWjuSd}IA`0CS#-%(VlG$YO*6Oj8AJ2R<%! z4wl7VMg~|eyW{*A)uhIQ+xnK<3tEh{bsGiro;XLMN*RS~4)SuKSW_|pOl*cl<-wIa z)hWD7Ce3|FJdEyGDnGXtCVWLb$gS!g#V%ALY5%7E%P8H^L$kSbe=8Z>qDqA#P zi{|u}j;_l0gGD9v##o%@js-gDS-h3KVV&h-iWNN$Xn!k*En0*s;{mMw@tg%H6KF1$ zKYM@K-SP+7rw}sF>u6`EU?M{{6`glG_3uYGHxRWboW7IE@uIg^Q#CbQNX6%5EZb^MswY-+~W(=o`dE?7dX1p=Y1`SPRlb8 z*+8eZMOY&5VrYLYT;*H<%YXM2H|*`isY?zG{!}|h63q^iqVOa0K*QS}4pfGMB5N}r zn7sCmOHIC0n9TxUGXLaeBXXh((VUM0ZRKi#b71MGN$2&UIaSXu0@JA~Dc{vYB|Yqb ztGL4AC3FlV&Q=$Ldi3A?Y*pCNP1O86KI?$aS&>Ch?R4jqw7Xe%p7M_~S>5}Or*nf` zg=O3Vav_}^eN7@0eqf1#@hRVCyliiis-)ea?w4NFy;b*{aZ{*AWn5}`ep}4fQV@>X zic&r~r@|pG1E#PG9I}m73Szkcp6G(fzj?kT^B~lJIe??O8k%HQU~6!g2lU%pk!F@W zQjDY*M=GYdjg&KM3(jLDi1^bWTHS9a&?DVoI5G+rTlPB$6w)2KW#jzBq}&O|=%BjycDPMc#XjHx19%Z(%w|CgfS!F? zAJ&ox)B9j^Ya?;;RT@eDuSg4fE3VGj7_T_YRp`8?54bFT-4a*|VLu39<;#dbZ72#S z{g45SQ)jlKE?wHC*lj%=0EYK-;7w0!ag#_#tpj>QKgVTun^Un&J_6vH?UCK>D2kPB zJqfAm1-uC&nGEW#Rz@2GVy8ivjfPz!z|BO2C9~C;@QX4m|oX zGM;bD#RhOAF!?)hBX#ZoUP?f|O?ODX?NI~MS#>zpirriiNr1=72RVm*Q8nm8}JK&jV05tlz{V4A7ok)iF>@KW(6KY9@fB&e}rg&eStB`B|xsE~e#N z7~HeizCs^HUPS z5$yoF^b#!XQO{Z|Kp6Tf0J<(U+&YV}g_XPtOx^`vcJEYV33igE=Dr%6W?C;vQ?<^M zroKj?=Y~24nLy;3VyWJg9+=q$Q0ly?v$GdXRmmrswp0cGIKqnF_aHP1sJ{pUDu`(M zP6`9sTZTy!sk^89ES2?0w<@WmQ-5Kc))3`&jJUEAFN=?F#P=O~14Exf({yhG-8YEt zso@AflSaC2E3{~U8cqXzvmV|{RdnQjL~IM+Lg(I2UUo_?bnj>|rC$*{ z*lzP=UGhFa*IC`Xrf0&mH=$?3_MkZ=15R6>+KT05FEEvFMk4cOt%nx6z0Ux~s*Fr{ zcexm2x=jy4RRz##S73Enor#nr9{(~gF(PeO&HmEEv}TjQy_awrTqQmyLcTG`sY;m(tNnsNQE$fT{SNa^Lcsgc(Y`U*FLbQq zCMB*%9RQ}hkM~mMM*{mBtyUCheF;qRyQsXfahW7cEdz>sz9OzJzXr|~?^ZCbgh&q( zsPYU{)>c=3U$u_*2Q!NB;`k&~8}ltg%agd~vjjy1gIZz3NBwJsB|aDOqFOCacvv^+^O zek5uK-$9+XjiVD;hGQUEH^Dy3AOg4J08ZGAz|Hi;J`T9`45g#n6Ts9=#HJNr8{p#Q zq2y1*+R{k~B~cX4#72>Y=AV)?Cka$N$)QX0&CW{9=qYqrION~$q!yU;$@Uu(;dFim zaP9||M3308{Q`^&*#ff{;P3kW3e4UQ@NHL_5D12>dYlw{|3>3Xejio#5-BAAJE-Mc zhZB+#Q5`Q9g+G8fc^y_5i4nSZ8kpouMYzVF1o;!qrPo96@p)LY$b;pG`kl@saQ+uK zN8qz?zDgd7cb$_~gxY@3Ma=5oG}_s_@tA|nj$G`s{{b%phk5zkWmGh1J)??-Gia_H z#^X}4l%7R%?o>F6l4h2L2teaG98HX#!>I$>Io!+MBn~<+!hBS~r#p_5m4Ju=NC7jcjqR}X>- zZf_E;d=tE#Oef7EBxx4xeeU<6@znbTCb)>J;xVecvEBp~^+&XsSF7DOH_+Vf&9#ax z0Ll6U&t=+Zp$I!#0=Rn|4?BeZwW6*TSoAMwmwEzeJ!lPJ-FPoM2o>^3AbC_SG<47G zqlIpHKqzF<|3jO-#M&ZTZPr}TX2@p{bE`>`jJy zVK!ooW-g#%pZNsQjEw^f($#x%5@K7xu{153I&Z!@)iEML<=*0GW^%B>e+5O~4&3Bi z$3;&9)#^>T%J#&A_ZDLg&7v1V=m0|FZgC8t9{&~C5x|tt5>T`etH_~r z1~7Z7mp#@+>Z6B90dyBMFaH8tOdC2{AR;;073j(@P&DvgTD0GO7{cjv2f^xT zUY;=JK~o}{b8h4ZF=91Jq6w&7X1^K*r!yE?B@;aNi+^9?dJt&W7sv%4`IHvtgC{vzQCl+=B`I1W&6<(pT5l~@iVKV z*v|9^p{zMxcArpe6b7KV+wIsW*u-u^2?qjLcsur*{{Oo2%QCUqW{rU?Gi(fs$F2>u=O zISJwHhX9jx7aRqy*qXPe+R|MF^u`4|#UygN7o&O4-Pjub zw9t}Qr2Mh2F{LXymp~y>=TBOw);t>OQ%UzY8q;66%;*acbd5pV5?y1slys=(Anw#J zU*u(Zd|i2U8kH6sg?^?nnNBA~lpHn?1Q0$8_qr?jelB zu5^lLqwy^@jclbxJ?!w9QeeWsW}@>+_j*}HxOEFN3z+D2j-jgiBuk=0P;xw_vk)3)hz&py)d<9M9SdofE*h04C>iA1RLFa!4S_M{yK) zHlI5!5mL+pjR^&uhG?FT=E9@)H4N4puM2>F?I^Cs78UXi0W@^3JM?2AaaFm&;U$nc z?ht#yfR}woMFitZ3=9j#MKE|Pn!QEb`%|=`pJhsee3n8!sqG+Xc-aQ7`L{BW5 zD*(w^&(GXMEWQ%W<;75|f~OpQn=y#RZB;$EXp_SuSrevvZ-D0dO^y~eGzEXF4KOS(CjVP+sm(Ni{Ry9bUEQEUPT~wZtKweY%TW6(tQZ0_XsfgrAT&tu!$QLDXw;H zbcVGayuh_pmqv8LH})dKOw~lf05^bMZW*>7vf@aDNyUWu83_TK<7ctpmjIYqj=iOH zSt6d=2u${~Jf0Fe%16;$`aE`&HhQ3=2l0--gVr~K<#Lxn!TCyh%0naUrX@k#M`Z_kmp<=q9 zLieLy#7VPUG=(@e0aN)RV%~_YJbVH7 zDrlG^L6P8oj*tZ}J5Yu3TVxkgmqJ#X>yc@8G=*kw0dxCaM&81vbFn&>8o+qvJsoTA zTeyKT>O12!+|~dztH)Fq0QSt?aaAWv7)^6CxFR37EsD z5yjdRMi4Nli`y_p7<=?ui!Rc_qYpdj0hE_DZ0dpwRmLh`2X%Odmw%)Q@xAVus!g_| z=k!-Z{)lg4cNonH^dW*cRq`qpQ+d%&n7}Ir8qfd#8Hw89*SJiC9lQ#lzY?a3ZxF<* z;&>k`ZWYdGrvb#HZr0*yp>wYpzy$jI03Pgl)yvHk64Y8kqTWSXlKwh;pnOf!nvty_ z}8KZ`CxYIM3uYC+qc2n zTTdMJg5BbGc#6v!#_j{A`&m>ISv{BTlRQ_I(P#225%4*Yc;7_ceG;Zq4SN3fv4q%s zI7~#p9~!_|ypVvh6dSaTp{BoI|NKin`1lBaiP-JPQ(wJhdHzti+K<7oIuznYk)`$K zxwv)p2}tIB;22%hk0*IVc>8Hg=mReET_q7me-;zEw!16ICP)<_{O9Pac8{Z{45h7? zPrd-TeAfu7fVQlSII7o*L#NaG1B#R0&y}F&e(Y|d3eI;ov;Ci|{+hrw_}>BWky(W- zZ&HY>uc^+Oq8jnM%$EjuT7#a^`m9xh-uC-S^H5Y7(LpUA9g5fEti{+mP!jJ&9|X;x zLR>>leTx+CAz)HIcZ4GO z^aGmxpYdWIYS!MI-my4B{CdOOsAUx^oEX$m0+oD<`*qUp$){^dX`u8YftH53lhv`$ z`MN*@(ja<;^B94aeTG65ljGzkrN_Z?0_fHIz3f$I5|7q< z+I0Pd9#iMTVOBqY7r&|=;32OjCTw zD=rIi1X>mp*ZfSfNI8I7aGO9$c)wpjZRP=-!`T2uB>gLZXB)dxO!Gt;6K#Z)G5Jjk zM4jr7N4=|#Q8wRN@-G6R-$AteOY8;Y3clTDi5Ay*Fmv$P2_J+Ak zE=|Ojf8sRT;llTI#CBC2JN*SJNe&kZovnNezy3GzQ0oj)J9!A9mQC~~Ebc6*)j24+Ei8)mu9_O11J)6>+NSWobr0f*WciCY2$XQ4 zD*uZOz+d~0ANY{$G);PQHl!YeJ7S_^0Xi>8DJ8; zcxxQ0l|2ppIsifhSeDkfvnu!&HTVc@%`SyTt^Yt5Kb*!NGSeHw*&X6%W+H$M2bX!r zczi3esZG!veVpHwpy|||kmWZuI$5@^bw^e81V1bh_7VXqAx&L)`9$cih$bR|srjBx zIjyN6BBp16GAk|;*Rmhz-jSdte0UUrvZCO_ZH`ic;h-J|Wi_LXarn2y_*B))_$VoM zA?7&~BZ>jHXHN2%Uii6KH0PhR=x}F*%XX_O#2gP`-j5KojnfG(NxEw~3TsYX_dkXk!FIPj_${p#pzHe8ygFa0fm#*ZFFU;MC37)U!}<&YZ&f~2FFX>yJFkdwS| zdmvL$PUt`tZES1vE{I&7HX{l>I}mifsvX|Ai^|Bw`)Ix!LnA5pVN6A<8n@v$q!BET79kcd@v&EWe+_U2YDrsF~Yqt9YGDw^_P3#WaNfx&0Q zBYZ8?&Za(ISi-gIVg}@O>HH4LCBRg~yE@ufqF4nk1+KWxelZllp#WyOeC)_jyjMF6 z&4*mRoCcK^ZvQgU+0+mxvMJVlsm>G7fr@q{*JApH6TCLTeVOVW#pOjhr$O{A#pMJ_ z_qg#;ft9A%R*xXwV|?rqvoPk7XwGSYor;W(#pH|vW@8IvgG_lPUelBT%)S=TTX~2@ z{zWS$`Ik&!LRz}|+2y?ms7FV@D`<3;q0YYa_>TfGKU{w2eMRqHhd<)8l=tv_2S3>S0nec{MQkjh&rLq7WTk1I()CT%*XswE!rS zdMydy-Z1ANQ@|8l95j-axv_){aX3-cZhdb_2z4AGa~u$=UD}bK?~d2v_q+8(aYw~# zkR}kQ&hPGTM^0RYoQSbTwDz%USk$anojw@BBoIQ>ko5+F@1)i~_T+;|X-@`~lyK(& zI+f&+7{Ae#1x$GY_gEtRa~-j~tcervsfg_&X_RJ%cC^9h=Ax$?jGhM1Z|qa2-i$^9W1ZNb1~#8sv1s!-4fHZSuC#OJ zlSB&WMxYBkuFK6IiRBk_rjtZoYwI3tiqeGH&Hy32{nbwmyntV|6quR7WDo{75X}Y) zps|Y%4rCV4iEVidV1$Kjea17J_h7KIfk}^Y+CEmTDbk0AG(|cgnPZ^)sJi?4w+%&c zYc?>c?S1Th0g;cHi{_g4d{q^3OODYTuUvjtN7JKpntSo==RE2w*16m^sO9O}`37*1 ziE;7gHZEKU*dZ>@@;(;IkJv=Selt3%YlDd0CR-ug_$>fNbn~(2NJNCS z1kL5~&hB<}WWgDL(aoKjbF&%-eW#Wc`Oc+4Kii#0)?(RPhUSz+?xV?X>4Yr#tz11T zNXYu%z)_CP2!$_L4q}-}+!u%#DG$x%t(^GecxSiQ2tbtV$LiSVZ?U?{<5x%+h-S8SVefJ@fW<(WDP@v`@Snc`{4Hxt%G?&Gdse& z-W~W$Mpq-lXGYV?thJWjguaIqa&A}mK-H-?cT+-ZR}iSYD^4{Am+{zPyDt<)2X z9c<%nlsbzyW$uNPSAoZz_DCeytiHm#+zVhydt`fU7GKNp(`tYdy-s{JEZuT&VD)`# zfZpYG4mA02p*H!zMEB?FC(`@{XfEi0G{>tQEQMIYPzwR9?%+c5SiX$kQB6z&}O)ZILo-eiA=iq z@CAKFM}v9+qzH64(cMn%O5utm){+O&QDi6Ah0527?|X!9JOoTeC+LQaZHS=qVE`-J zBG|Jj;}g5lbpWQcbLuKSJ7dtEjf~+D08e&u*;2F`@p_;qbavr9`WZ*G9TOs)+hCwO z+NEKHJ1GXR+Yp|a5Q8ZpIvwl>BXoBofTubmF({WbQ8D!>P1=MW?hEbM*Ly5Fi`6Dh zxAh+b95HA43FKgQUgYcFuyYebeH=Y+>4N3nCMhj|PXJij$!QA|I`Jfcsh99IMTqPv zqq(`t?d$pR159-n=f&#F zq1-cy80cAGYPvdGs=9*4NbEInhN+C!CCg}(VRvMslpgVSYcG+tF)Mgpble^E&irEK)BJ=x`r5ozXM7QJP3IMme4r z>lL^Nsn*G*UUOPjg8OhHjMVMN;>OS zVkdxgqkZd`e(_DvYc%YVK3G7z{(&22vdo9HRZkx!xOdef)6~sZS`LWBa$iBb^>Gfi z8;S7!l>nBH;RyxJKYejPcS~O!c%8akJ;1%tZZ|>hMI-5i;SEBD^miuOOtnZezKL!V z`#ViX*dlTC79gqD^28A>wYn=hM}C{SN+00tVzuwR_`G+~TrWwXc7AFLvwiw(lRnBLFyy;zs~B>Vq>k8;T+}{20LQeGnT;-zFY=`~(<(niC%i zJjM@W#3k%c4NN-h8;WTzo=v|&nkoX-K=mu5_&S-V8&_yvHqeXv)xp(xnf z4`A!Qu6CwjiUs!oFll{}F*S*TADMm$%$&YB6E$JDk$pw;UOEIu_Fr5b1hrlN!POyP zW=`Y5hp6{BjOOTmR)+Y>Sp!V&jXqu&$KSX3n)uy(k<;!gKjH}E8)A1lPqvWD(90WT zF}?*Im~lz#1iZt(AE~jbi=C0`pXod@u`a&ff#{_EE{{5>oXymadn{WS;d#F|(1YxN z@WH6P#{-4h0;hnZA82I$OPyD#eo2-+8CYqiUYO-GiqH=Legwo%_IK?u)u3zO;n_a7 zru#jBM~QCjFz084v?wT#9eyO_l8fAU6i{R@DGt))sHpiEf%1ks)9rGEVy!(64l9Ra zt;J5*+;6ZFK>JFn1ULb7^5xEvreva+)1QE;zTBCjR?M?3jv`n)X#nHYnim_xf46Wu zibi01@i&&(rR;&$2P%j^g<+9Cywo^R4Q}qTt@RRnhFWxyo`OAtEI1Ip=x1Pdj&!y) z?ehfY7hs&DfU&VZv1|NQ3x1SSy9Kj617mDsgQjQIY>dBE(v(s?PF&A%2Doe$us ztIYA3Fzrw`WDzn3rfpM)FE(C{h_f+HT~KE36(nV;b7O!rbGb(kI#w-RN|c77Ye=^& zB>}}3=cqmt{@Y>vVNOM3yu>W4&n!iYPB3sP-KDD=&B`ElpWy(O=kZem5l1yabJh^l z`N??|d8DSmtiRT&Ysbue311cg;JZUC1*pQuL;@3i2hXXAzFcUo9eeJ+v~(%GA7uzD z`OU^XOu`b~MT1`ToxD4mbZshB7av3Fv1Yt;h{@&Y?S%NWSS$$b8}HPgA!YHENY}c7 zskxiS>_M&2j)Sx!4w&?bNT%7?yO^0~0ES$QnUT&|1a$GhY+S*;kTBZjMl)^@uJo~E ze=ub@GTN-S2w zvAKYTKg>m`2&Q^M6WRiD=svS11f|@Lct1QEr&AR-IvdlCL9>gajkt#E7uN`$Ivr7o zO(_An7mcL%={gXyVmkKhQccM(Xb{gX>&L~6PZfiiNiBPki-!ika%O`c=wTMth&(G)4sei(dy z4pO4BUy*j{4@|~LoCHgZh$#k8XPMW!Z681vb2reS7N?Ttqq4> zNeXrA9gA%J?nn7FSnsh62BF+Xef*nA5SCs#DIu2%LI_O!|HQOYhsU~G5Iu`Kz%4L6 zw{#0Eje4#d>mFwAnP0z6N2fWDi^Y$hZw(V(EA4cebsikLPESs1^HV+%DUAftveB*qc4xJe9@8VDvWii}XVN4r zT$49*k0q#OfZDFjT=hhTK9gt^Pck13P|%|Lp~UPJgsGn7wtXN52?gzC=`dn6`l`;w z^0Iuh!==i4^U|weW;M8KTxp;OnvOv9%pJa}WsC;WSH!LYaDADN-D4A4IR?#>u5t}C zRX2(#;c8%N%XtVOBzX;uFe3|+-1NLzl3EOuGPssN%d=3QHlw>`wncAa(OdCW-kXr; zI3iS=Wh+myB8>-~)njlbj5;Z^6B3g=0l@UDUCmYYi@pmRR#kzS7{K_hcC|6T@MT%j zCmHC0CV`0U(_~=$+qh4*PI8t(r-k}_oA06q&IFz70+^=PxZ0~*ck&q!8|3Q&Ouh!2 z=&KJVaO33*#S~x)w{xZhiKzyO7Hahr_XTR^4!&3jrfvuT=iGyYiDXJ_?4|*@@m16q zFMq{%$vH-NV*oQ}1!Z5h@evAQ(+waiRu@doFq&Jc?3Kt1Nv6bdJ`+H#5GPksQbcqp zfU_77vF~fVs8VG2W&>C})@A#_L~*h(hqSx!UYsn*mluSEWP@5t1-B52*!3z*2Ptzw z1FLXU^GK8soZ}{@xVo8R{9*X{v8Z(#7K%f^N?!0StZE+m{;HB!?TNkRd^G32&JTsC zS+hnyZh_HL$PvpmILb3=80DE38n8)68n;yIV_V0Y4*_}Jei3?1e3MI_iovztp$Bgk zgOo}tK&n)hE9h-iDJmQ_k}4c;0&+J13_uc0)fGYvK*#It53$C>IXz|$c zEnqF@J}hvFfAFe)3i-5qrVQ~C1Cydoy<;IJN-A#!aOwSsg5@{@;e#ef;lolQIMH>9 z`szJCjNp>4fwZJA1F-Nt5zF!AC>PBklaM7qti&Q9ahkInnCkcW`LR&uJd*vsnQq%- zGBHcH5pqotW=Y<~5E1n4)Y~LP(9MSP=w4)H?f}NWhi7F(^POnUne6fgk0jX0ge$qr z0H)As1jC4vxVwSbJQ*i(HlJe=N0;}|=#n0S^D-S3@N~rr0u|48o3GghldF2-D7m^4 z{dUcA;j6IX;K7;^S_NSA!^jBP1je+2Yl;*L-3#FQYF?)$jCwVi%d?;gduQ;tOZcQU z!0h~x`y^`CK`mvq^D#OKYOhs!>zo~AxA4!Pn=(er!Fc!5mU`8*&iTc>k+%lFBw_qW-Wl3*VEjHFGW-6t))%d zkRo8Bi=hn#g^n1z7i@(lDgzA%AzrW*X|xA{$@`oidyDCPh)8_Fr&pv#9!B%15|k`S zo&{zdFx~d^^od~d5j5}G&(9Bq0D|FTW5LSB&P>kK#1_ z^g+uZnGi?`fVop~jmFYp!!&FJrgSQ5{ko9Kzi;t9~JJtU3+u;zP=UNr%{+n%CLN1OKb%;6W=wPa2#JyV!4+j6lV*1Zt^q~=f6B*DS(yV zaZ}Ojf4A@J^REjb(=uRoKJA=F*;?jVL^($}FwsBosDzx8o)*fDKd(7o1?jo#1PM zes6eGS)6gfr3>ip1Tg=EFO_XserXo3>fUW;V7dYG8Zd)rBG{0`gur(JGkzvw2w=>z z7QhMsqfhdxCEA~AHK6TvC8@#2o3XvdcL!MXDxAveppkrvI~CEz8)$Zw!$@qNi6*<# z-iJ~eZvvP*%hgiNnT6XgHfRxZy=9>B4S4aMwD8w&6KBuk5LhZPxnVs-Ds_B^hFJAH zoSp;;FZC`6g=~eF8Zd)jwuLn`Q|@2u3q2x3{`bH4h}xVb?mBhD+m?KUhR^%0{y--d z@b}%J+X{d4bqHY-&fnGCjebXFyGE&Fsh}on7Rd+dQBWz(2h?x%Qe5Wy@(-?JBIUh@ zK!;vNuzz~A_2Xdt?$BNm+zzDr61P+7pSasEj=uK=fUExGaf0yARR*TNiH_JrR~wj? zYR_Lh?ibO(hrne1EusO=^G5*^yK=ELkUWbd_s0R?%2yE&0%*1nk)rv;K*y=UXLu?h zxDIRerFHmI04vY%Aj69J%)qo%+jpWmPVxwJLlp5jfI0IJMcA+>HqKud?73BO9k2Zm znEebBiBD%nMXjCW@7bVoV&`}O;ElU*z--gAnAR@?R8uOD_mE=|^Y&E$*y=n#D~}Y! z4gym%ADb{qM_>*anC9x)N{jFW@GyXx3;vy0je%*d`VDW?RON^I*=vJBTfPRcasjUN z*vLafDc=AHn{lhE+i_uAjzh@fTLyF}&mC^FCWyg&2XyU1S2I6qH}E|} z!*#rc?SKv6BK!6O{u1r*v&+t6{6_*5J$Jf0+7YvA`BD6(#_4aV!pD+q7rAhrBwUE~ zFFzW8VN3`kJced1+x&1pD=Qb6;{nXcckD-P?e#?9FT0xf`Nd_PyZkADS-%)XuW}q> zqD}^Y2Nu&xF9s}trvkwI2tF9F*I@s(0nDiP?R}I$|6GqQ+HDUO^ZiSJ^!A%@=jFe& zIWQ2GHz0 z!~*kYpx4QJ5sJuOgI_Gw%V`pP`CqhBmhXj|v8f2OZqNS)@#?)eF_lG06b5OM^pM>@ zM6zauTZ7CiPLKn=nh*zPKr(lqv(5jHfwMrbisRl@Q!M_cKDJB*#X4Zl-U3NVCMlxV zy;4N~zqnB4S%Qk@;@2(lhKRmG0QATE*`;?8^PPw0?6#qq#^ii0vgpH;c^%-Ho9U^qk%Og zY6CxZdTo){o1Vb+1k-PNUN91v(vOke+tA2Tsw}olE&xX?C8sFw zn+1AxKYhoz8>rVPFqt}kLH6AAS+i8;2a&jSEYesa{8{sAoP!8HxNrm&T8~yFLlO0C+c1-u0PtsuhV+ z@fSSC0q6`M zWQDtL4$O-ExJ$FDE&tq@s7q`CjBmNChbp+za>+_qa!UX+m!pPy@^PM!7tXU4FcIzj zSq;3psS8gXi`cLofaP8M?5xpBtbKskYq#MVha_f2cL<!K0Ns8{kZ2T6rR5m+l5uPLhnD`y)ujPRl?Rs@e zk?MGoz*_18b!d~Xor=oG@utKQJ*~7QB;I_8<~Yi!QUID8#;G z0I0e83rpcIhz&$@@;!L6?7Ebe=G&gZHBWa-Mb3k$+ttUBjJL_;ipt&;(A{+$Ic+;2 ze`9zsk(_kGsV}FPot2)5*>&|3aVI!P1>KVa{SP%vgzyV#XwF_?sZ2FNO*)>WuL+@b`|qb4u3H0VIr^> z8Q7Gv(B^7#s((zwAcAzYu@c>j!DZ!2JXmC*hfl*@5^pT91iS>m^=W=y6qxTf!mJ)> zz7);5KV!dRvldW5p@&RoghOe_XMd*mphVOmtaKQG=Key5>epJzTZMnP4E>h=0{>tG z6hX>xB01w%3R1*@syIlwydKoDXaRk+Jl^sF0@8Us6e@EbLFf^`QJJ%~x=y6}MiO%O zZ^pU4S^I=$jly_NUM%d$Qh1aB%;427bCG~`P0a-G%uPghKOiW*8+G|0O z>Sa9651N~cB40AMYcLI|3+JfXXYc`%s=X~)VZE4yYe8$*8ko0KQ4vOsr76w%3)yU& zO@Rob#(~<#zntdJTWMR28sRs*!F6D7ye9d#bF|uW*fJM_iN0S;TbOqj=p%3QH{a*MZQk48E9( zi1m6jpDDmWt|TGmWC}3d3Na^gdm~)#RABP2;4W7SSyW2i0L+F$6avg0&6hpeN@>HU zN{MMSrpm`q>nIrtYE;mH-$=;X$K03Ny}@QR$m!^O;~0Ou-N!sdxH}^NOj_gZ*Wka& zqiNSo+pd`bjLmmE1#p%DWV5Wd+b6rn8Rbr0L2R}j$a&!js(3PAiL7Io18NcHhj${N zc>|@zO&@mEOwt|JY@jpmca2n?uH|G!$THW!#H*H};XO^jU~r%*QgD!CpkvjR&~U%n zGo6zanYDQUwtN7kkOwD%QF$In8#q0QWG?gdbT-?$_@{|kSLkwPOKrh;H$iznneaUBi3p|XT-|^ ztP2nCX!@vzb%&M*;M3Rf1iZ$Gy#8&#>}e97W|}>#&~FE@=6Wu4+CpolXbXJ@nzN>e zEg84)JJEb-3U|+9i+C5BQzKw9B~!V$MTx@Qz|>9Ux#FNjX+KS)WyC>2` zB5?(%O^*!ktOif8OpB-)TnS)hWO#e^_O#~a`J?=smH_47Rsk683co;Iaw8uDtx}pl zdSK;V;;+yZo~W81w(LT*%nwC0GhA6`z*iHz#ueVmq+uj^O_LGDIS$P3bD~$@beKJDqvI{{ic_!aw3%`FK$!#V#d2u=Iel%~4 z4!6B?CZ_!X0Qb$}(=Kv_Ytft@W3bDtSzwBQIW*fgX%iDjB`SZA8S$L4K+|@#r z<+vK5>WP1pLRjmApjkUd1Zn&gxQ9rLwVUw@oK2ozq-`H2Wa}+%osefE5Uyq&fhM`( zYHY{}u|ER7>gEcu^Y0w3CqhwiP-mH}7v6dUXhhFDCyipFQDLParmckdSZDwCnV6i7 z1~5*Q#l}RavYY(PP2~vIb^B5LCF2nkEy^(n`+f|V^!V`jqWJJwJE4gIKW>1{Z#)Y= zpD-|SD#OySu0CWK`_W1wxXxr?CtSp(QoO)j@* zLYVw>K&P}khsi@p^~JE>7~5tj7}=t#>Cgz4XjKVeiCaK6V}s>E9ife-z$7m@rxPhN znxTUma2_tT%Bp_lK&Riz^Sff0&!f3pYx`je#{}{a7vJ)}h~`Pf z_K$&xzFq<_JHhZD%*luaY#R~F^e;dKnVo+YS&a z_JrG?Kw@-yWur{YD?~EdizU@Yzk~Cl)rL-kUJa;CvNxtx(c>GvNo|a&VG1RD)H}c&-)R3P z7MW)(Exr`dzFR+YSqrAB>H%RmxoQ)xXU`mP(ZBQ@(ZAlKIm&tohYxmR;c|N)j3lqH zm0K_X*d63Sx3u!xi?o z55UxR784dXH>yY^1>5i$LvY2WMf6w=Le=+jhD1LfqB*g>r5{pyEqbas_=x(6e%Zd} zKrCn&(0Sb%}w<);-#*Gy_XO=`#A{tJ6d&?U(fmi zn3)~JEzhcP%zj{U3;Ak7YOjSuOY;F@D7}+?2rU@;5`^;a6MD(j_A4|;-+#{LgJ=%v zY`@UZ9B77UuYZUb%Ih4i;~TS%2~i&g$&C+iQ41emLxgg7SbV(DpRYk2twZw zp=v83!OXWHR9?iH5!?Ll(45*eJjHZjM%)(u9+;h7!-px)gM7zhPVDdMiF^*OUzw3YAO0ZLdWGxqZ!=IU zpg5E|4Rp6h`Jq%WSEKECB&O|8>U((a@Kif4MV{d=&1G-o89KehZ&iv%BmO2(dIcVh zkRPF?e7EkCzEt~9JqTYZelsG@^!02ZnKOi}=^Nf$RXrKgjF4^3sY;$(JX;U9eUD5e z?CNN4`XOOw`cwq&;%JSgdqe+grZEZXRKM_+CZI^HhZw+Cc9AI$=)=XbxuvqvE z&-4iihM_rsAS8$<>CLG{VVn-?vELx{C~L@qx~K(Cy66PSQP1(pouJ^f?vR@aCu;r_ zr1fz4U^W3UD@{NxcQf}HRA;UU(c@%IiO{4s@kS87-eVqsKt|LfeYzT5<-h5UvHK4h zs-~U>>XGyxS1P_EZ)5zygAzURF@U?kYiervP?cE56X)U_APSh(Wq$VUGhJNb>)hH{ za;Ae$G%zPiUE@sU8yZ;AwwVE(4PXob%l&x`?oDjMW6`|%dA=TqDk3+U2X5sDY{7{N zt_N|zxXN9z!3SZ^1tEMv{ zyuKzf7wXiGB$sqq_*_-ipP%ZBRD2nZmzI3NFN$eu;$6ZH0Oq}jTi=6U#D@vx zT}N@6*3keCQfqhd`O*}J{nFYXisr6PWXkj5qF}T)Fy&W-<3quF`JO-o(R~8!WxV2w zP)7t%99;DUFz;O+8wh^-p}BB0c7lW7^Rox=V49}->HYxDyb?#z()Q?}M|){H=otV^ z<(1*~wc9+$GZ4Vnwj=j$Q#2vm^dOqpd#|!A_d*sapccIYc4afMVz7e&%((`{Z01xL zU}`bgD%dRG-c@=@skO0tTUWJleXaIYwTlaA# z5u9CQV7mS12vFn9cuz83Rm<{hUtJ36$|n+wV8-3S5A`t_Eh*H|{v~@P4lS zy2G@lZ49Pb0eB67e+pt6GwU0_TVK*h0Ondu!_3*~vu0<{U!Zbo{BfqmL3f|~V}18+ z@Q<;e`q2S@Z_`kz=XgpPQ_tfx)k`nGWZu-Nbo(RZ5BCKoJaM6&Cvhh@e8cL82;CT=80&||H?$7p?MOT&z!q?GMZ-|V-U?Zp!v^pH%~+Jv>N_z%`j=X&cc(H->4ZLk+q;FKHT7EpAbh! z@#@9%+89de2Xs2frGIVF5*m*tN8_2%K&~vT4fBM8@0p;K@QsBrp+B>LStT%z?PG`p62ca5BMy8hLNPC(8B$-F7Zg=BosN$Sz-Ty~Y>U1Y0aNz_zd9W>mKNjz$f6eq=XUh%Jp!RI zH-T!+5w0=TQQi#9=%c0)bk+(*CU{Gr(_U&$jh}t?J*djsm`RnFfKu|07Dp>Q-L1f^ z|IxzHfx3EGv;&=`z_^a_O|9-r==rh+wk&#%PtJ1D=7QYGV_dXa2!gHUz+8Xa!j_oo zJYYUKZWfdtJqhYIG+%szD|>JTwRfT!ygkVEusMsS&Qn=O{p`E#nk`{pcYvnURQD_>)QM4Nm$lG@tp2v!yM93P?5UR6u$+Fqz-GJ!-{Ci|L4Zs(S#O^SwKPfaWca z=3dzD3ZPSNw6|TV`qKSV)z?Y@51jI+G&uI4eQONa_bOn@ZbYi{9OkW)TV&q%LdL3! zkkY=bj$k!Np8DS1O8xMy{b^ zeA0AZ!nW@NCimBWSK0f4sr{Anqx;(QTYa1mhrS*FChIqUrv~8%G5V1n!mKs)cKRGU zk0Xq&2-GIe2ydn?{GF?kCMgzP1>nZtO$)EdxjqO?lRr57Rug#$m?c(B!ob#sezgbt z4+Hbh4CLuQI?9={%5)uoS*I;B6(f8En8QDy`se6r3o&85>jAvojPS9#PYHgn2Mta_@tlL#KfGx0N~E^d52ba^dc~cp>0^c#VY-mfbq`_k5^@( z7V!&lZ3EENs0~}sG%>;b%fJ-Q#p1Z&JWed=d-YmCzIQu-A&uLZ{j)EuKI(4)%nohx zW2Ro;LnZyi^B?H9L0w+~rRv6Q*p5*5MwE1KMCnyvQp30$tg_k(%+pp3IX3Nt$g#Z^ zM$Ut(`w3Csj%8lxR)j^r3CvUBZP+VERx!Q>OsghbjKqpwPbpS>J0Kl3yT;$8!SXaA zu|0ezfHZFpt;2s8eNJl1hi~QUJz#b><$P(32(905=+Y*%7G8HZyzYE>-J#)a%*SZj zH;5?n0}YN>lWN>ysw~>_kKo|7GLjPQ0k?&bd_-bG_oDesT3=IV~^R{C|RhxMD1`D_q5=0Tz4NxQgJIKWjk!*RJn#beb8< zrKcGaUgZm5cE(y56Kc1=p-ZWDR=qgze*+pfQ3Tmalyq?iDE(IiIbC1|)m@;PY*Azv zVaDb?gp2%tDoUb_;(^Tsl|SG>1C7w#hpPv+<&dgL6vsUPTD(yV*>P}-!SM)6Mh}5% V Date: Sat, 9 Nov 2024 01:42:39 +0100 Subject: [PATCH 014/119] add 2.207 support --- CMakeLists.txt | 4 ++-- loader/include/link/win64/libcocos2d.lib | Bin 2232276 -> 2234292 bytes .../src/platform/windows/gdTimestampMap.hpp | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 963be24f..c7eb7302 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,8 +189,8 @@ include(cmake/Platform.cmake) include(cmake/GeodeFile.cmake) if (NOT DEFINED GEODE_GD_VERSION) - set(GEODE_GD_VERSION 2.206) - set(GEODE_COMP_GD_VERSION 22060) + set(GEODE_GD_VERSION 2.207) + set(GEODE_COMP_GD_VERSION 22070) endif() target_compile_definitions( diff --git a/loader/include/link/win64/libcocos2d.lib b/loader/include/link/win64/libcocos2d.lib index 3275c2021607b6cb26b16ed22682831c91d36d01..d306f5271d6ab4da630a232679b43a0ce1064963 100644 GIT binary patch delta 305951 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 H{;~f7yD?d= delta 301621 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 V Date: Sat, 9 Nov 2024 09:05:16 +0300 Subject: [PATCH 015/119] matjson status 1/? --- CMakeLists.txt | 4 +- .../include/Geode/cocos/base_nodes/CCNode.h | 2 +- loader/include/Geode/loader/Hook.hpp | 2 +- loader/include/Geode/loader/IPC.hpp | 2 +- loader/include/Geode/loader/Loader.hpp | 9 +- loader/include/Geode/loader/Log.hpp | 8 +- loader/include/Geode/loader/Mod.hpp | 36 +--- loader/include/Geode/loader/ModMetadata.hpp | 7 +- loader/include/Geode/loader/SettingV3.hpp | 11 +- loader/include/Geode/loader/Types.hpp | 2 +- loader/include/Geode/utils/JsonValidation.hpp | 23 +-- loader/include/Geode/utils/VersionInfo.hpp | 30 ++-- loader/include/Geode/utils/cocos.hpp | 12 +- loader/include/Geode/utils/file.hpp | 22 ++- loader/include/Geode/utils/general.hpp | 5 +- loader/include/Geode/utils/web.hpp | 2 +- loader/src/loader/IPC.cpp | 2 +- loader/src/loader/IPC.hpp | 2 +- loader/src/loader/LoaderImpl.hpp | 2 +- loader/src/loader/ModImpl.hpp | 4 +- loader/src/loader/ModMetadataImpl.cpp | 2 +- loader/src/loader/ModMetadataImpl.hpp | 68 ++++--- loader/src/loader/updater.hpp | 2 +- loader/src/server/Server.hpp | 2 +- loader/src/utils/VersionInfo.cpp | 2 +- loader/src/utils/cocos.cpp | 169 +++++++----------- loader/src/utils/file.cpp | 2 +- loader/src/utils/web.cpp | 2 +- loader/test/main/main.cpp | 2 +- 29 files changed, 173 insertions(+), 265 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c073e78..045564a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -236,8 +236,8 @@ if (ANDROID) endif() set(MAT_JSON_AS_INTERFACE ON) -CPMAddPackage("gh:geode-sdk/json#cda9807") -CPMAddPackage("gh:geode-sdk/result@1.0.1") +CPMAddPackage("gh:geode-sdk/json#1b182dd") +CPMAddPackage("gh:geode-sdk/result@1.1.0") CPMAddPackage("gh:fmtlib/fmt#10.2.1") target_compile_definitions(${PROJECT_NAME} INTERFACE MAT_JSON_DYNAMIC=1) diff --git a/loader/include/Geode/cocos/base_nodes/CCNode.h b/loader/include/Geode/cocos/base_nodes/CCNode.h index 1bbf681c..bf4f00c9 100644 --- a/loader/include/Geode/cocos/base_nodes/CCNode.h +++ b/loader/include/Geode/cocos/base_nodes/CCNode.h @@ -41,7 +41,7 @@ #include #ifndef GEODE_IS_MEMBER_TEST -#include +#include #endif namespace geode { diff --git a/loader/include/Geode/loader/Hook.hpp b/loader/include/Geode/loader/Hook.hpp index 6a3eb105..1ea4d792 100644 --- a/loader/include/Geode/loader/Hook.hpp +++ b/loader/include/Geode/loader/Hook.hpp @@ -2,7 +2,7 @@ #include "../DefaultInclude.hpp" #include "../utils/general.hpp" -#include +#include #include "Tulip.hpp" #include #include diff --git a/loader/include/Geode/loader/IPC.hpp b/loader/include/Geode/loader/IPC.hpp index 73e32d1e..015b246f 100644 --- a/loader/include/Geode/loader/IPC.hpp +++ b/loader/include/Geode/loader/IPC.hpp @@ -3,7 +3,7 @@ #include "Event.hpp" #include "Loader.hpp" #include "Mod.hpp" -#include +#include namespace geode::ipc { #ifdef GEODE_IS_WINDOWS diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index 8bab1da5..5132704e 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -8,7 +8,7 @@ #include "Types.hpp" #include -#include +#include #include #include #include @@ -121,7 +121,7 @@ namespace geode { * @param name The argument name */ template - std::optional parseLaunchArgument(std::string_view const name) const { + Result parseLaunchArgument(std::string_view const name) const { auto str = this->getLaunchArgument(name); if (!str.has_value()) { return std::nullopt; @@ -133,10 +133,7 @@ namespace geode { return std::nullopt; } auto value = jsonOpt.value(); - if (!value.is()) { - return std::nullopt; - } - return value.as(); + return value.template as(); } void queueInMainThread(ScheduledFunction&& func); diff --git a/loader/include/Geode/loader/Log.hpp b/loader/include/Geode/loader/Log.hpp index f4cbe9cd..88ad3cb5 100644 --- a/loader/include/Geode/loader/Log.hpp +++ b/loader/include/Geode/loader/Log.hpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include // for formatting std::vector and such @@ -65,12 +65,6 @@ namespace std::filesystem { } } -namespace matjson { - GEODE_INLINE GEODE_HIDDEN std::string format_as(matjson::Value const& value) { - return value.dump(matjson::NO_INDENTATION); - } -} - namespace geode { class Mod; diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index 8c78be4f..18f64048 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -13,7 +13,7 @@ #include "Types.hpp" #include "Loader.hpp" -#include +#include #include #include #include @@ -51,22 +51,6 @@ namespace geode { return action == ModRequestedAction::Uninstall || action == ModRequestedAction::UninstallWithSaveData; } - template - static consteval bool typeImplementsIsJSON() { - using namespace matjson; - if constexpr (requires(const Value& json) { Serialize>::is_json(json); }) - return true; - if constexpr (std::is_same_v) return true; - if constexpr (std::is_same_v) return true; - if constexpr (std::is_same_v) return true; - if constexpr (std::is_constructible_v) return true; - if constexpr (std::is_integral_v || std::is_floating_point_v) return true; - if constexpr (std::is_same_v) return true; - if constexpr (std::is_same_v) return true; - - return false; - } - GEODE_HIDDEN Mod* takeNextLoaderMod(); class ModImpl; @@ -264,24 +248,22 @@ namespace geode { template T getSavedValue(std::string_view const key) { - static_assert(geode::typeImplementsIsJSON(), "T must implement is_json in matjson::Serialize, otherwise this always returns default value."); auto& saved = this->getSaveContainer(); - if (saved.contains(key)) { - if (auto value = saved.try_get(key)) { - return *value; - } + if (auto res = saved.get(key).andThen([](auto&& v) { + return v.template as(); + }); res.isOk()) { + return res.unwrap(); } return T(); } template T getSavedValue(std::string_view const key, T const& defaultValue) { - static_assert(geode::typeImplementsIsJSON(), "T must implement is_json in matjson::Serialize, otherwise this always returns default value."); auto& saved = this->getSaveContainer(); - if (saved.contains(key)) { - if (auto value = saved.try_get(key)) { - return *value; - } + if (auto res = saved.get(key).andThen([](auto&& v) { + return v.template as(); + }); res.isOk()) { + return res.unwrap(); } saved[key] = defaultValue; return defaultValue; diff --git a/loader/include/Geode/loader/ModMetadata.hpp b/loader/include/Geode/loader/ModMetadata.hpp index d6338448..cf08961c 100644 --- a/loader/include/Geode/loader/ModMetadata.hpp +++ b/loader/include/Geode/loader/ModMetadata.hpp @@ -4,7 +4,7 @@ #include "../utils/VersionInfo.hpp" #include "Types.hpp" -#include +#include #include namespace geode { @@ -290,7 +290,8 @@ namespace geode { template <> struct matjson::Serialize { - static matjson::Value to_json(geode::ModMetadata const& info) { - return info.toJSON(); + static Value toJson(geode::ModMetadata const& value) + { + return Value(value.toJSON()); } }; diff --git a/loader/include/Geode/loader/SettingV3.hpp b/loader/include/Geode/loader/SettingV3.hpp index bf6e528f..b9e380c1 100644 --- a/loader/include/Geode/loader/SettingV3.hpp +++ b/loader/include/Geode/loader/SettingV3.hpp @@ -306,14 +306,15 @@ namespace geode { } bool load(matjson::Value const& json) override { - if (json.is()) { - m_impl->value = json.as(); - return true; + auto res = json.as(); + if (res.isErr()) { + return false; } - return false; + m_impl->value = res.unwrap(); + return true; } bool save(matjson::Value& json) const override { - json = m_impl->value; + json = matjson::Value(m_impl->value); return true; } }; diff --git a/loader/include/Geode/loader/Types.hpp b/loader/include/Geode/loader/Types.hpp index e5243a47..5f887925 100644 --- a/loader/include/Geode/loader/Types.hpp +++ b/loader/include/Geode/loader/Types.hpp @@ -2,7 +2,7 @@ #include "../DefaultInclude.hpp" #include "../platform/cplatform.h" -#include +#include #include diff --git a/loader/include/Geode/utils/JsonValidation.hpp b/loader/include/Geode/utils/JsonValidation.hpp index e54a16f7..1776614f 100644 --- a/loader/include/Geode/utils/JsonValidation.hpp +++ b/loader/include/Geode/utils/JsonValidation.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include "../loader/Log.hpp" #include #include @@ -104,21 +104,14 @@ namespace geode { return this->getJSONRef(); } else { - try { - if (this->getJSONRef().is()) { - return this->getJSONRef().as(); - } - else { - this->setError( - "unexpected type {}", - this->matJsonTypeToString(this->getJSONRef().type()) - ); - } - } - // matjson can throw variant exceptions too so you need to do this - catch(std::exception const& e) { - this->setError("unable to parse json: {}", e); + auto res = this->getJSONRef().as(); + if (res) { + return res.unwrap(); } + this->setError( + "unexpected type {}", + this->matJsonTypeToString(this->getJSONRef().type()) + ); } return std::nullopt; } diff --git a/loader/include/Geode/utils/VersionInfo.hpp b/loader/include/Geode/utils/VersionInfo.hpp index d1f3e57f..ad19692f 100644 --- a/loader/include/Geode/utils/VersionInfo.hpp +++ b/loader/include/Geode/utils/VersionInfo.hpp @@ -2,7 +2,7 @@ #include "../DefaultInclude.hpp" #include -#include +#include #include #include @@ -256,25 +256,17 @@ namespace geode { template requires std::is_same_v || std::is_same_v struct matjson::Serialize { - static matjson::Value to_json(V const& info) { - return info.toString(); + static geode::Result fromJson(Value const& value) + { + auto str = GEODE_UNWRAP(value.asString()); + auto version = GEODE_UNWRAP(V::parse(str).mapErr([](auto&& err) { + return geode::Err("Invalid version format: {}", err); + })); + return geode::Ok(version); } - static bool is_json(matjson::Value const& json) { - if (json.is_string()) { - auto ver = V::parse(json.as_string()); - return !ver.isErr(); - } - return false; - } - - static V from_json(matjson::Value const& json) { - auto ver = V::parse(json.as_string()); - if (!ver) { - throw matjson::JsonException( - "Invalid version format: " + ver.unwrapErr() - ); - } - return ver.unwrap(); + static Value toJson(V const& value) + { + return Value(value.toString()); } }; diff --git a/loader/include/Geode/utils/cocos.hpp b/loader/include/Geode/utils/cocos.hpp index 5eb5f557..b72c096d 100644 --- a/loader/include/Geode/utils/cocos.hpp +++ b/loader/include/Geode/utils/cocos.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include "casts.hpp" #include "general.hpp" #include "../DefaultInclude.hpp" @@ -15,16 +15,14 @@ template <> struct matjson::Serialize { - static matjson::Value GEODE_DLL to_json(cocos2d::ccColor3B const& color); - static cocos2d::ccColor3B GEODE_DLL from_json(matjson::Value const& color); - static bool GEODE_DLL is_json(matjson::Value const& json); + static geode::Result fromJson(Value const& value); + static Value toJson(cocos2d::ccColor3B const& value); }; template <> struct matjson::Serialize { - static matjson::Value GEODE_DLL to_json(cocos2d::ccColor4B const& color); - static cocos2d::ccColor4B GEODE_DLL from_json(matjson::Value const& color); - static bool GEODE_DLL is_json(matjson::Value const& json); + static geode::Result fromJson(Value const& value); + static Value toJson(cocos2d::ccColor4B const& value); }; // operators for CC geometry diff --git a/loader/include/Geode/utils/file.hpp b/loader/include/Geode/utils/file.hpp index efb2199d..2ff28895 100644 --- a/loader/include/Geode/utils/file.hpp +++ b/loader/include/Geode/utils/file.hpp @@ -5,7 +5,7 @@ #include "../loader/Event.hpp" #include "Task.hpp" -#include +#include #include #include #include @@ -13,14 +13,15 @@ template <> struct matjson::Serialize { - static matjson::Value to_json(std::filesystem::path const& path) { - return path.string(); + static geode::Result fromJson(Value const& value) + { + auto str = GEODE_UNWRAP(value.asString()); + return geode::Ok(std::filesystem::path(str).make_preferred()); } - static std::filesystem::path from_json(matjson::Value const& value) { - return std::filesystem::path(value.as_string()).make_preferred(); - } - static bool is_json(matjson::Value const& value) { - return value.is_string(); + + static Value toJson(std::filesystem::path const& value) + { + return Value(value.string()); } }; @@ -32,10 +33,7 @@ namespace geode::utils::file { template Result readFromJson(std::filesystem::path const& file) { GEODE_UNWRAP_INTO(auto json, readJson(file)); - if (!json.is()) { - return Err("JSON is not of type {}", typeid(T).name()); - } - return Ok(json.as()); + return json.as(); } GEODE_DLL Result<> writeString(std::filesystem::path const& path, std::string const& data); diff --git a/loader/include/Geode/utils/general.hpp b/loader/include/Geode/utils/general.hpp index a1912b5c..4cca1163 100644 --- a/loader/include/Geode/utils/general.hpp +++ b/loader/include/Geode/utils/general.hpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include @@ -170,7 +170,8 @@ namespace geode { template<> struct matjson::Serialize { - static matjson::Value to_json(geode::ByteVector const& bytes) { + static Value toJson(geode::ByteVector const& bytes) + { return matjson::Array(bytes.begin(), bytes.end()); } }; diff --git a/loader/include/Geode/utils/web.hpp b/loader/include/Geode/utils/web.hpp index ad06e247..5f01a89b 100644 --- a/loader/include/Geode/utils/web.hpp +++ b/loader/include/Geode/utils/web.hpp @@ -1,7 +1,7 @@ #pragma once #include // another great circular dependency fix -#include +#include #include #include "Task.hpp" #include diff --git a/loader/src/loader/IPC.cpp b/loader/src/loader/IPC.cpp index c2870fa3..d7dd4645 100644 --- a/loader/src/loader/IPC.cpp +++ b/loader/src/loader/IPC.cpp @@ -1,6 +1,6 @@ #include #include "IPC.hpp" -#include +#include #include using namespace geode::prelude; diff --git a/loader/src/loader/IPC.hpp b/loader/src/loader/IPC.hpp index 35fbc81f..7ea91ff5 100644 --- a/loader/src/loader/IPC.hpp +++ b/loader/src/loader/IPC.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include namespace geode::ipc { void setup(); diff --git a/loader/src/loader/LoaderImpl.hpp b/loader/src/loader/LoaderImpl.hpp index 7af233d5..3a340720 100644 --- a/loader/src/loader/LoaderImpl.hpp +++ b/loader/src/loader/LoaderImpl.hpp @@ -2,7 +2,7 @@ #include "FileWatcher.hpp" -#include +#include #include #include #include diff --git a/loader/src/loader/ModImpl.hpp b/loader/src/loader/ModImpl.hpp index 3491b788..5c64be24 100644 --- a/loader/src/loader/ModImpl.hpp +++ b/loader/src/loader/ModImpl.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include "ModPatch.hpp" #include #include @@ -47,7 +47,7 @@ namespace geode { /** * Saved values */ - matjson::Value m_saved = matjson::Object(); + matjson::Value m_saved = matjson::Value(); /** * Setting values. This is behind unique_ptr for interior mutability */ diff --git a/loader/src/loader/ModMetadataImpl.cpp b/loader/src/loader/ModMetadataImpl.cpp index 690e3969..6dd60bf2 100644 --- a/loader/src/loader/ModMetadataImpl.cpp +++ b/loader/src/loader/ModMetadataImpl.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include diff --git a/loader/src/loader/ModMetadataImpl.hpp b/loader/src/loader/ModMetadataImpl.hpp index f14ab996..caf4c2d1 100644 --- a/loader/src/loader/ModMetadataImpl.hpp +++ b/loader/src/loader/ModMetadataImpl.hpp @@ -74,52 +74,44 @@ namespace geode { template <> struct matjson::Serialize { - static matjson::Value GEODE_DLL to_json(geode::ModMetadata::Dependency::Importance const& importance) { - switch (importance) { - case geode::ModMetadata::Dependency::Importance::Required: return {"required"}; - case geode::ModMetadata::Dependency::Importance::Recommended: return {"recommended"}; - case geode::ModMetadata::Dependency::Importance::Suggested: return {"suggested"}; - default: return {"unknown"}; - } - } - static geode::ModMetadata::Dependency::Importance GEODE_DLL from_json(matjson::Value const& importance) { - auto impStr = importance.as_string(); - if (impStr == "required") - return geode::ModMetadata::Dependency::Importance::Required; - if (impStr == "recommended") - return geode::ModMetadata::Dependency::Importance::Recommended; - if (impStr == "suggested") - return geode::ModMetadata::Dependency::Importance::Suggested; - throw matjson::JsonException(R"(Expected importance to be "required", "recommended" or "suggested")"); + static geode::Result fromJson(Value const& value) + { + auto str = GEODE_UNWRAP(value.asString()); + if (str == "required") return geode::Ok(geode::ModMetadata::Dependency::Importance::Required); + if (str == "recommended") return geode::Ok(geode::ModMetadata::Dependency::Importance::Recommended); + if (str == "suggested") return geode::Ok(geode::ModMetadata::Dependency::Importance::Suggested); + return geode::Err("Invalid importance"); } - static bool is_json(matjson::Value const& value) { - return value.is_string(); + static Value toJson(geode::ModMetadata::Dependency::Importance const& value) + { + switch (value) { + case geode::ModMetadata::Dependency::Importance::Required: return "required"; + case geode::ModMetadata::Dependency::Importance::Recommended: return "recommended"; + case geode::ModMetadata::Dependency::Importance::Suggested: return "suggested"; + } + return "unknown"; } }; template <> struct matjson::Serialize { - static matjson::Value GEODE_DLL to_json(geode::ModMetadata::Incompatibility::Importance const& importance) { - switch (importance) { - case geode::ModMetadata::Incompatibility::Importance::Breaking: return {"breaking"}; - case geode::ModMetadata::Incompatibility::Importance::Conflicting: return {"conflicting"}; - case geode::ModMetadata::Incompatibility::Importance::Superseded: return {"superseded"}; - default: return {"unknown"}; - } - } - static geode::ModMetadata::Incompatibility::Importance GEODE_DLL from_json(matjson::Value const& importance) { - auto impStr = importance.as_string(); - if (impStr == "breaking") - return geode::ModMetadata::Incompatibility::Importance::Breaking; - if (impStr == "conflicting") - return geode::ModMetadata::Incompatibility::Importance::Conflicting; - if (impStr == "superseded") - return geode::ModMetadata::Incompatibility::Importance::Superseded; - throw matjson::JsonException(R"(Expected importance to be "breaking", "conflicting", or "superseded")"); + static geode::Result fromJson(Value const& value) + { + auto str = GEODE_UNWRAP(value.asString()); + if (str == "breaking") return geode::Ok(geode::ModMetadata::Incompatibility::Importance::Breaking); + if (str == "conflicting") return geode::Ok(geode::ModMetadata::Incompatibility::Importance::Conflicting); + if (str == "superseded") return geode::Ok(geode::ModMetadata::Incompatibility::Importance::Superseded); + return geode::Err("Invalid importance"); } - static bool is_json(matjson::Value const& value) { - return value.is_string(); + static Value toJson(geode::ModMetadata::Incompatibility::Importance const& value) + { + switch (value) { + case geode::ModMetadata::Incompatibility::Importance::Breaking: return "breaking"; + case geode::ModMetadata::Incompatibility::Importance::Conflicting: return "conflicting"; + case geode::ModMetadata::Incompatibility::Importance::Superseded: return "superseded"; + } + return "unknown"; } }; diff --git a/loader/src/loader/updater.hpp b/loader/src/loader/updater.hpp index 31641b93..07a96b7f 100644 --- a/loader/src/loader/updater.hpp +++ b/loader/src/loader/updater.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include namespace geode::updater { diff --git a/loader/src/server/Server.hpp b/loader/src/server/Server.hpp index 110f4e8f..b801f8d7 100644 --- a/loader/src/server/Server.hpp +++ b/loader/src/server/Server.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include using namespace geode::prelude; diff --git a/loader/src/utils/VersionInfo.cpp b/loader/src/utils/VersionInfo.cpp index 069f674b..0c5c9658 100644 --- a/loader/src/utils/VersionInfo.cpp +++ b/loader/src/utils/VersionInfo.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include using namespace geode::prelude; diff --git a/loader/src/utils/cocos.cpp b/loader/src/utils/cocos.cpp index 0ae4486b..3a8fa960 100644 --- a/loader/src/utils/cocos.cpp +++ b/loader/src/utils/cocos.cpp @@ -1,123 +1,82 @@ #include #include -#include +#include #include #include #include using namespace geode::prelude; -bool matjson::Serialize::is_json(matjson::Value const& json) { - if (json.is_array()) { - return json.as_array().size() == 3; +Result matjson::Serialize::fromJson(matjson::Value const& value) { + if (value.isArray()) { + auto arr = GEODE_UNWRAP(value.asArray()); + if (arr.size() == 3) { + auto r = GEODE_UNWRAP(arr[0].asInt()); + auto g = GEODE_UNWRAP(arr[1].asInt()); + auto b = GEODE_UNWRAP(arr[2].asInt()); + return Ok(cocos2d::ccc3(r, g, b)); + } + return Err("Expected color array to have 3 items"); } - if (json.is_object()) { - return json.contains("r") && json.contains("g") && json.contains("b"); + if (value.isObject()) { + auto r = GEODE_UNWRAP(GEODE_UNWRAP(value.get("r")).asInt()); + auto g = GEODE_UNWRAP(GEODE_UNWRAP(value.get("g")).asInt()); + auto b = GEODE_UNWRAP(GEODE_UNWRAP(value.get("b")).asInt()); + return Ok(cocos2d::ccc3(r, g, b)); } - if (json.is_string()) { - return !cc3bFromHexString(json.as_string()).isErr(); + if (value.isString()) { + auto hex = GEODE_UNWRAP(value.asString()); + auto res = cc3bFromHexString(hex); + if (!res) { + return Err("Invalid hex color string: {}", res.unwrapErr()); + } + return Ok(res.unwrap()); } - return false; +} +matjson::Value matjson::Serialize::toJson(cocos2d::ccColor3B const& value) { + return matjson::makeObject({ + { "r", value.r }, + { "g", value.g }, + { "b", value.b } + }); } -matjson::Value matjson::Serialize::to_json(ccColor3B const& color) { - return matjson::Object { - { "r", color.r }, - { "g", color.g }, - { "b", color.b } - }; +Result matjson::Serialize::fromJson(matjson::Value const& value) { + if (value.isArray()) { + auto arr = GEODE_UNWRAP(value.asArray()); + if (arr.size() == 4) { + auto r = GEODE_UNWRAP(arr[0].asInt()); + auto g = GEODE_UNWRAP(arr[1].asInt()); + auto b = GEODE_UNWRAP(arr[2].asInt()); + auto a = GEODE_UNWRAP(arr[3].asInt()); + return Ok(cocos2d::ccc4(r, g, b, a)); + } + return Err("Expected color array to have 4 items"); + } + if (value.isObject()) { + auto r = GEODE_UNWRAP(GEODE_UNWRAP(value.get("r")).asInt()); + auto g = GEODE_UNWRAP(GEODE_UNWRAP(value.get("g")).asInt()); + auto b = GEODE_UNWRAP(GEODE_UNWRAP(value.get("b")).asInt()); + auto a = GEODE_UNWRAP(GEODE_UNWRAP(value.get("a")).asInt()); + return Ok(cocos2d::ccc4(r, g, b, a)); + } + if (value.isString()) { + auto hex = GEODE_UNWRAP(value.asString()); + auto res = cc4bFromHexString(hex); + if (!res) { + return Err("Invalid hex color string: {}", res.unwrapErr()); + } + return Ok(res.unwrap()); + } } -ccColor3B matjson::Serialize::from_json(matjson::Value const& json) { - ccColor3B color; - // array - if (json.is_array()) { - if (json.as_array().size() == 3) { - color.r = json[0].as_int(); - color.g = json[1].as_int(); - color.b = json[2].as_int(); - } - else { - throw matjson::JsonException("Expected color array to have 3 items"); - } - } - // object - else if (json.is_object()) { - color.r = json["r"].as_int(); - color.g = json["g"].as_int(); - color.b = json["b"].as_int(); - } - // hex string - else if (json.is_string()) { - auto c = cc3bFromHexString(json.as_string()); - if (!c) { - throw matjson::JsonException("Invalid color hex string"); - } - color = c.unwrap(); - } - // bad - else { - throw matjson::JsonException("Expected color to be array, object or hex string"); - } - return color; -} - -bool matjson::Serialize::is_json(matjson::Value const& json) { - if (json.is_array()) { - return json.as_array().size() == 4; - } - if (json.is_object()) { - return json.contains("r") && json.contains("g") && json.contains("b") && json.contains("a"); - } - if (json.is_string()) { - return !cc4bFromHexString(json.as_string()).isErr(); - } - return false; -} - -matjson::Value matjson::Serialize::to_json(ccColor4B const& color) { - return matjson::Object { - { "r", color.r }, - { "g", color.g }, - { "b", color.b }, - { "a", color.a } - }; -} - -ccColor4B matjson::Serialize::from_json(matjson::Value const& json) { - ccColor4B color; - // array - if (json.is_array()) { - if (json.as_array().size() == 4) { - color.r = json[0].as_int(); - color.g = json[1].as_int(); - color.b = json[2].as_int(); - color.a = json[3].as_int(); - } - else { - throw matjson::JsonException("Expected color array to have 4 items"); - } - } - // object - else if (json.is_object()) { - color.r = json["r"].as_int(); - color.g = json["g"].as_int(); - color.b = json["b"].as_int(); - color.a = json["a"].as_int(); - } - // hex string - else if (json.is_string()) { - auto c = cc4bFromHexString(json.as_string()); - if (!c) { - throw matjson::JsonException("Invalid color hex string: " + c.unwrapErr()); - } - color = c.unwrap(); - } - // bad - else { - throw matjson::JsonException("Expected color to be array, object or hex string"); - } - return color; +matjson::Value matjson::Serialize::toJson(cocos2d::ccColor4B const& value) { + return matjson::makeObject({ + { "r", value.r }, + { "g", value.g }, + { "b", value.b }, + { "a", value.a } + }); } Result geode::cocos::cc3bFromHexString(std::string const& rawHexValue, bool permissive) { diff --git a/loader/src/utils/file.cpp b/loader/src/utils/file.cpp index caeba44e..5cba9d46 100644 --- a/loader/src/utils/file.cpp +++ b/loader/src/utils/file.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/loader/src/utils/web.cpp b/loader/src/utils/web.cpp index c7f00e04..0cf732ec 100644 --- a/loader/src/utils/web.cpp +++ b/loader/src/utils/web.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #define CURL_STATICLIB #include diff --git a/loader/test/main/main.cpp b/loader/test/main/main.cpp index 6603f687..af1a2beb 100644 --- a/loader/test/main/main.cpp +++ b/loader/test/main/main.cpp @@ -54,7 +54,7 @@ struct $modify(MenuLayer) { log::popNest(); log::info("Mod has launch arg 'mod-arg': {}", Mod::get()->hasLaunchArgument("mod-arg")); log::info("Loader flag 'bool-arg': {}", Loader::get()->getLaunchFlag("bool-arg")); - log::info("Loader int 'int-arg': {}", Loader::get()->parseLaunchArgument("int-arg")); + log::info("Loader int 'int-arg': {}", Loader::get()->parseLaunchArgument("int-arg").unwrapOr(0)); log::popNest(); return true; From 108721dd3ff36287d725acbd994db123501c7fb2 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Sat, 9 Nov 2024 09:14:00 +0300 Subject: [PATCH 016/119] matjson 2/? --- loader/include/Geode/loader/Loader.hpp | 14 ++++++-------- loader/include/Geode/loader/Mod.hpp | 2 +- loader/src/loader/IPC.cpp | 13 ++++++------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index 5132704e..41ef428a 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -121,18 +121,16 @@ namespace geode { * @param name The argument name */ template - Result parseLaunchArgument(std::string_view const name) const { + Result parseLaunchArgument(std::string_view const name) const { auto str = this->getLaunchArgument(name); if (!str.has_value()) { - return std::nullopt; + return Err("Launch argument '{}' not found", name); } - std::string parseError; - auto jsonOpt = matjson::parse(str.value(), parseError); - if (!jsonOpt.has_value()) { - log::debug("Parsing launch argument '{}' failed: {}", name, parseError); - return std::nullopt; + auto jsonOpt = matjson::Value::parse(str.value()); + if (jsonOpt.isErr()) { + return Err("Parsing launch argument '{}' failed: {}", name, jsonOpt.unwrapErr()); } - auto value = jsonOpt.value(); + auto value = jsonOpt.unwrap(); return value.template as(); } diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index 18f64048..ecec1005 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -265,7 +265,7 @@ namespace geode { }); res.isOk()) { return res.unwrap(); } - saved[key] = defaultValue; + saved[key] = matjson::Value(defaultValue); return defaultValue; } diff --git a/loader/src/loader/IPC.cpp b/loader/src/loader/IPC.cpp index d7dd4645..427efef1 100644 --- a/loader/src/loader/IPC.cpp +++ b/loader/src/loader/IPC.cpp @@ -33,19 +33,18 @@ ipc::IPCFilter::IPCFilter(std::string const& modID, std::string const& messageID matjson::Value ipc::processRaw(void* rawHandle, std::string const& buffer) { matjson::Value reply; - std::string error; - auto res = matjson::parse(buffer, error); + auto res = matjson::Value::parse(buffer); if (error.size() > 0) { - log::warn("Received IPC message that isn't valid JSON: {}", error); + log::warn("Received IPC message that isn't valid JSON: {}", res.unwrapErr()); return reply; } - matjson::Value json = res.value(); + matjson::Value json = res.unwrap(); - if (!json.contains("mod") || !json["mod"].is_string()) { + if (!json.contains("mod") || !json["mod"].isString()) { log::warn("Received IPC message without 'mod' field"); return reply; } - if (!json.contains("message") || !json["message"].is_string()) { + if (!json.contains("message") || !json["message"].isString()) { log::warn("Received IPC message without 'message' field"); return reply; } @@ -55,6 +54,6 @@ matjson::Value ipc::processRaw(void* rawHandle, std::string const& buffer) { } // log::debug("Posting IPC event"); // ! warning: if the event system is ever made asynchronous this will break! - IPCEvent(rawHandle, json["mod"].as_string(), json["message"].as_string(), data, reply).post(); + IPCEvent(rawHandle, json["mod"].asString().unwrap(), json["message"].asString().unwrap(), data, reply).post(); return reply; } From 30f872cc87bc7af6a46a54d5550bae8256de7090 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sat, 9 Nov 2024 12:29:19 -0300 Subject: [PATCH 017/119] Revert "add 2.207 support" This reverts commit 8aa2c2283ae67d776dbeb9088d06b94f4589a2f1. --- CMakeLists.txt | 4 ++-- loader/include/link/win64/libcocos2d.lib | Bin 2234292 -> 2232276 bytes .../src/platform/windows/gdTimestampMap.hpp | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 045564a1..849366d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,8 +189,8 @@ include(cmake/Platform.cmake) include(cmake/GeodeFile.cmake) if (NOT DEFINED GEODE_GD_VERSION) - set(GEODE_GD_VERSION 2.207) - set(GEODE_COMP_GD_VERSION 22070) + set(GEODE_GD_VERSION 2.206) + set(GEODE_COMP_GD_VERSION 22060) endif() target_compile_definitions( diff --git a/loader/include/link/win64/libcocos2d.lib b/loader/include/link/win64/libcocos2d.lib index d306f5271d6ab4da630a232679b43a0ce1064963..3275c2021607b6cb26b16ed22682831c91d36d01 100644 GIT binary patch delta 301621 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 V-&4X-uLI6I_JKxKX=dXN#*H$Zs8I2uPr>H z!W(?{S!bo3H!9_vr+Pk(^aRd1=e(47{%_h4W6t>8gdb=y;oS#Jcu#@}|80TOJIsWO z4HUmmRs9qPmpOmTGu`)f@2UwlBUr8qQM9isTV+BuwM z!o^mKe-=9fX(n8BQ~bM1M3~7&95Kj5h!%>VSL%oWzofg%rcMuvkuU@^Dp0F?^J2p*Ur%+Dwr! zMQx)vb-L=INMs<1CG3ALnRT&IeED3A%n-GL;t~cbYAD7fDDI1KxHLtv+?QfJ7Zy7yF5{YFKl^_fUk+I_ z70aE4%Zn8E#^sp676|T(3Am!vnK;-)h{Y6FhO3nnlf0^y;yo#KP)sXQtkyK#SnA{ln+UOtE@S_1VkBZUML~+Hr?@#?wNp%I zwL~YyEqRKI-h#qn=T`0^v4CPmxLQSV8#niD!`c7axQI1#tlC8JUrsD~D2kYYb$f`a zq?pBt#9E3wl9hdoV!ld5BgLI#R0|DoDB;3l1I1n317Zus>|Dj{X5;RB)lD&Hjygv*dWw}P%09+3d|uR2RE}0n6oF^?fM}+u z%24cQ6`spf8!1-tTy#)8&r*x+6xDfZ55)^S7u^&!WzLIC6oH5rm+}Csy=pbZON?AF z%9pTaoZ3Y3a*o%HB!8hrdX{vP(ML!rTE`uwVehyG)z_YG2YBmdng)tE_PGAm8Hjh+o6rU8S zUWyK$i$3*_GO@%0E*OR;l|Vh}s=4PPx{6U8oWI?+k-?KCIw?Oq;W zcZoVo@!ec?h+g&_Clqfnqri;FnUxBz{3R6A|_?ex0ot_^$)(e-AIPehXIIp}(P* zEfDrGerNB+N{WNbL@<+s_#;u(QS^;eO%#7JG0{TNKMnzV*zEk3Wg-N#{0oP2)HaI0 z^VI>0!$qo_;vcq9^ivElQ^BkU@b5e|KnF~unP(yc_FxV>M=UjwR#1Yfr#LcIHBk)8 zRNE+ynx?ua1{bKk6i4SNK6f;N3stuXLQLvf54&9mwHe?R3067JDgTW~hS{K2}ByP{b~9{J|ztETM?=sXB`Iv8sdOq&@$;D!d;X@QB9gb5bsLd1!;}s`Oz^Qy*a9^B?L?$G5Q=B$U9iRu;{}Ho{ z(@$}FsguMG6_BGpQYmEOt?(6e`Y{g0omDYh9{an)lg*cT&$+JXoRwlF?N({qPRGnuYY^Ec!QIfW+Fv9#U)vaeY^zYn2G43 zxRjX)miJPOFLy2rH<5xtU4|^SN^sFET+TJcX7>N`%_edJUlw8y#T7FYC%pm_=Q>x0 zm`JgdV$yI`NAVvfAX+IVPgI>0R~4uO6jMss|0$&=^6DVPvR{pCk6KM}4KonU6gioS zljh)BRz`GFv$XOSI5+rAq+nJzU>Zv%wo}|V%gJZp zqLSjKQL2riAW!vC+|2o{>5)!gdKC|F3pb14Vz;0$Q*EWVl|c$-cPnPhb#7yZVmZZ3 zzpAD9?`YLdQ8ZEQqPy7t+qsDZv%ej)%AGqHpbuAwTGglSRJOgi&EJ-ojGTg^N#d?al>8h22 z|CjGDi9mqEy!mQ?;{G|Rm!f>8+DGvKTOsUY%;&l2qIht+;y-*I!~&j+K8lC9p0&_0 z0DD+i<~+<}QBJWaTvby%!c0Uf#o|e7KgFZml;R-8l7-G=LrkRL27L?_396C(uV^%p zk7p@H`#6>sJ5LNUk)ncP8A~r1%rZQgq8cccXR56fPZcNz_Y_vlP^{VtJYC5CKV1m> z1S^Z2XSk4Pp{QgDt!KG;#Bz!%pJFgocrHZJO2wZ zkzzhY!yv`y8!X;yy;-IXQ8dnT-ZCaq@ZPu3G}vPQn-(~42b)N-grYf2Eu(nHqpB!c zhN-m_?~YQ<6dT5 zZ4?{Fs}72fCMaI}5jKru|LtK@tMhTXi4=_PV{GPv!al|)%s?=kPtd^t1%vCrrzvVZ z#TH&K>|=b!=fygTt;y^^hsdogpY{1j#mPTMCj$};uoGX5Rm|=SY~#6L1-Ic#UN3m< zm)OqaL_5V-yk79yudrhb`@e%(>|pfP*PKAGykBEyree8v;v1GwY@y&=YG*sex4CK? z#cnLQpiC0|g9}M`EeT;uuF~REmTV-1f_%j{ErH1c8(ll zqC^A5AfAgxilfq03&r5Es-5EK$!aG>aGu&lam+Nehhj*+i3-@m5I$)g%L@dbJQg7{ zR2Ri@yjJkq;}BY)c2gYBbFrUd=uFi|aYCsRW=xb=XaZ4T3r*CCp=udLc)VIo5s{== zwg~WTw$nxtH9>V!c&4ho6w$LC?;sN;mQuv<^B)f2q?RvJZKjB2Nd>cug`X7>y%cfG z$chhAizrSCS5*|lMyMu=levxvbnpPfCn+vE9H&fF_A&T2+u1~MDkl&dDH3@uHc*_F zs_bKoV8sOY(FmN*b1QH0C6{M2USAV=J7CN1G_YtS(08eCLuR6D77% zjGOCRnrNcL78>9%eztR&-$V&!a~b%dw75LXLTLlpm6{ornsMh3kH4v ze)hk7o)Hg(nkd0CK7je$B%+?;!EuUZd=Lw!seKd=6{|xO3l}&Kvm$~?J&Z-HtZ1gq z?EfQ^6|;H-i%XqHLrj#Yq*#)yS|}cysCH0Pup-vuMlGaR8m_7+o=8%hX!HL8Mil;e`V0E6x%6xTz;+eTlWvGb~Oe#>x;n`%xV4g+Q zM75LRxtWS(eGaP@JJ0(}l&GVq9;>)PtMLL85eF%1%AFU(O_bpG|Ds;3F;S~iRR_gO zj9l=hm#}7$^RnMWiAIXGlN9^E7OyZvYaJ^kmQlPqOx04#iU)X)nF;psJ+zKd ztrYJwGqIbZjeA1$QGCEjt#)Q6)=+#nT5*mKu`x?+r`y^8j|z=*kYW@2XMM~bie(g= zhpY7zpQNje6dierW$wVI3!N>jm|&H+;IjoyO%YeiN zirtgc9*XaZojrq0lwcM2;QM&BmaqTsIqV&+ILTi8FkZ1lKcH)d^J9>S5`6vth%5Ln0o|3<26T5UWgMKx0#k)^g#1Qn`&iX-PcgN7Q9SV?hI zf~un!JVtd=1dc8;9&v~wxWYLm(Rf5X#gJ6Bk>c1XY8OSwEay05JYqRT=m@o*;`p&@ z6WwG2o}oF$*-LQ(0}>481cWg&>%N35hcKUuX>q~)j{_CJk1zF>iqo@hK`BgKUUisifzd@m?2 z8f849lVU6vwk{4+brhMCR5!&X^PO>##v}O8e-FR0?74Kj+C?$G#JP+m7po|;Myt&f zmrr*l1R0N5L2(5$7A+JLIltIKab=zpxN<)aFo_F_0gC^yBGzP&T0?QwNYz9!WrEs9 zaWy9vT@=|fRUgGQWloMU9t1o&%XxrnN2q#=+;r7WaotqaOEGn>bA7P!2xfgf`2Nvh zRr7E|n&KQcVA^E0i|%6oZ!A=d?ndO7J2!D+v4o<40SYc&fSZ}UHJ#U6w`8ep6othO z-%EN#1;vb^iownZaJbE*swieAsC5+oWiLf7MNx`cPjUMw)j%<8jM_kP$9UCBQ9M@h zxd7i>dhX0neDY3|@B+c-_=RN8UE`E}jM*%yXrZ_}L)pielc}01?qNWJ&)tJk?ita+ z{+D(b&%IOB7K$=nAU0Fn#|Z@|yAN|Yp+QuIdUp<}uuV#O&7p5uR`~qrn)mDlZC#j7T ztH-KlikDJVJ;fSsQqe;3a)xT9SUV257Zg;q{5ClVbgJb&&mE&*6=EPCYk=;Kr%P{~}c_MFS@mTPWUS#l!)M#xm!v zAmb6-4{xCs-pOK zgleSNJW*|<_$0uEKCyb7j&kF%J`GWv;-Syg>M%+yZy!^)=+$xt~OHa$x~ev-!njK?;y2;;)i%uPtnDBL?`9@f6tH1 zT(C?(V&5F+r%>Y&l@$9&t6GYmlhitj1Bq%a#V?~&J4H7$7i|>3jzz#8TAiLW;}Oji zzl~816ul!A7w^UI++2c-{SJOw>Qqtu5vf*D@Y7PKhT>0FCSVVLE_eFFjYlk@_$yQ` zr8qQ1Eu#2)keW-aK8IgS_K5uy|4diADF*TtzyIkOIAA>gvgC+1p=vS35#g$aB50Ue zO>tzhYM>Z2QmvynDn)Ie7@VOtQXI`c|L1`1PB4!J&x3JHuG&K}WQOXdIJU?MF(z6p zq&Uu_swqPKs*2)xo{K;w4=|Ju2tGL!CnP9lbppahsYZ$unVDEi5k6e4p@@iAt0*E_ zDbYp|mFWcdt>kFSGf8cwh-PM%cd)9Vh)GvFD160EY^aGAY)dTsTu{_e#IZGk!N(zf ziU>r6xUYg?mIS;8xiq%QQ`3WXEU=Qc7a?<=J zTCAkFz^hhJq_Z+&3B`p&)O?BzCL_uyF5|7IVT^w!#_7HtBqp>o_sht#; z%yPyJHql}!#ia~Xtfd$~TD4PLmaTSEWG!$m=Oz>#6cdWs{|Ut=`ie-^OffOvxiZ8= z3r=t)CIu;GI|={cePT7mx8#9@j%S!$~!T&<$GYlPyW zcVYG<#YJc1ZU$$~300L8_r$9;6s0V^Xr}=V_p-!RnMYMo+?TF4QOqq+hbRI|oq1e9 zaPoP$pMeTi^?sD6s#b~zCaN90{{as3*%Q%A@nE^LAk;*Q6%-G#m!gGY;S_a{;^Ae^ zqC^ud81y1M!oWoj#o{vO(LwA#hv-KaIZJq>=%9FPrc=RdL^Z|ZNs2){j-?aSc8Vvs zptUSWt)zG|P3@vsUcmk@=Y`9ewe?hmv%+Jd#VU%Y$Ee*DD;co$j9=AJR5B28fa2MO zP8BOBnkk;kaaIKw;VP@vc|O-fTh%PRVAR!kVT5X+sNq6_S=8XgA~isKnJO%!hzJN$ZY zbaNQ{-(2s!Gu1?kLliBQ&bwnxv|yRv1>bav_c*cOr0=1XEfBo774MfiZQ&+bu*Gfo zfE5tkG{B*Kjyg>7;UZ_F$3zRZXCpourP?SqaU#KNH{oMuW^E2qODR4Xrq)t)u#$p7 z2Rb->nxpnoY?-C{C_bC-Yz;Hff*WfqK2KI`2fwZx-I?!vG1NqhI*M(%&X>kS3kLBe zwr8^c9HO@~dh4q)XGf%o7V9X!9;dcY?BsRUH*A6Eq}Vmj`8L!!yiTmA_%1_r zu>aq6nCLx>Trk@`_6h9R^{Mv1_;63~C zb6^AqYlCxOiisAy=>UG=je;BM7j#!Rzs8$rQA5#_s93EY{KmjV14ZuywUgra8BXB$ zejec9Jm-&K6D>IDALvU}tWqETWTiw8ML%B+)?Y)^Qi?+fs-EKSG{r>!#^G!ch(63o ztbfX#0gs6mwG{u3S3Bqq<2AFKBSMTF?O3m9qlhSUB14Q<)KNrDQT-I2HBNM%@mk(U;|8^ zt9=yruoYIRQRNi(avrgYqAZF1FH1tRb02#x_EXHA>jXksDvLK+^HLS>n}_?;)mDn~ z>1sE{1G$PxJ%IT|D!`309}muV7Vu>xswo~yRLt@rEX-4!WFh#$qQhVx#v-1JE{aFk zLeWjJc$PXy5qOkkv6c)`ODP@;Q>!T|($p4;$BUh%3|K6tcp_faQ!Hbp#0H8dCn;9t z$=&S#^4Uf_HOP1c7v~3w-W6W8mf~qnBw8s}W~r?d&rDU!@)=YzDeKt;wUMH#%;8Tp zz0W1G|Ic+et4fU5dVYl3PElRzyx=ol!Ruc@%^c@N1}d5i8-UyC`0t;jHJpqLbncUMKdj z|8H=pU*!BR*my++MFSTW>nPq#Q(Gt+a~0=k#9M5o)x=hcN{Y9Kt2&D2@rs}Sc$-<` zcUUs3g*S@D6z_(sRTLYNR4c`M6;3M`5Uc_}@AJN&>a>L!uc)T@fIS!XG1_Od|Lu&p zz0diu+<2{xA!-T5N0Ev*eS}S%NHkD}CrDH{x!5H_zEK+<3(%%J2Vqzn^8q-bmvW z%ziI^U|?3)Ahnj_$4TlC#lC9ir}4%sSgoJHw^!n4wnlVQ99ZG}l4-oZWU~Li@IkAa zH(0;2M}m|8iXJ{@{Wey0QS??gzmGOv!Rq~vgA1KMMi{T?py-?B{K-u%8fbt+f37-A z@mG~|h!Kjt6n`&p4ksJ0*h29S|5;!SaALtZ2k>u>h%v@E)f7jJSG^`Ca0G{-70!|A zCPwV07_`VaYNUw~+b9N?I!F6WjA*3@p6(no#KeeNiXqv~u|XzAFo1ff#fvjOa>@;&6!By!eT!K-%*K?NhSt?n2}p~fU{>iqu2`3L~%}@Gdjq` zh&2@FPEri=T#Q-i@ZD65V3y}0b(wSiNE0Kt*7-=AWwHMkM5+dg^jvkA;=*z#V~B|n zt0^wZRBX>h7|SYI7qbFlF-2yWVt|?8yDEosToT|gZk*aqaVdLkjb~tDEyZP%)i#PO zRz@)UEL^_CnK0bMi1id#Fi_D+F|ok8GMKM_d$_XEnZ(iw?t@AA4}-Ay8$pMUO~zGI z6gSvan8Kb~SBEPudNr~cpx94w%>pNf*NIB@Kc~{fT$`>K-L=RqRP0|au487_R8~aP zQe2;}dMWZamvuw3+DS33$hpyLVg##xBl0uY|NIObbZ)9JF;)RH76TMFb5d*i2*pXK zQ94C2 zyHea+?vy2(7{UEehWi+ZXs7M$|J+H&;m)56{*CAkgW|j6n0Y0tpW^-{PB{Y;T)Z3) zj8}Up=FfK?3^p->$vlV!BNT&Ku%7*YC{yjBSUA^tm^X^06pMU{H!i{>W7H;!#d(Tt zSd2$`jkP4zd5moq%=|G_uwoSf4v%vov4UbLBNVL^PZT-JLQITUPVr>CV)jpB`DE2i z@l>U=f&qvf6i?4_RoN-iY$cqN|AajFKJ7_pk-xpAtCV$}lY`2-Uq zHd0gklgIvZh0BqtHbLIPB4hqv3{xZ#z+$*nB5zw=gUbP zrug4nr-6Zq7K%3uoW@Be#(In2|BQLd+U7Lz0>QLA4@d<=n@4wgY2ruekZ*-~y|tk06v7K*Lxt@U}BT2Il*1w=2! z7ZuL76cZylD8A&q*7gvK{ol?$TVHVkYe$f(rT9AE*%@wP#9E4P*b>o9v1_bqrTDhc z;k%$1>pLzenE7|uGX?hRf6pH0`(hJg?KNr%#Sfzt`}PC6c#qgc@gw(w=%d&-*ZFCP zi4iL)_K#3ZYCnEXWB={p=Y7rr_T2hquv$;iJyCJ7Zv0xL4pH>5)Yfl4wT7ZMLv5${ zz1%s-#|8iU4>1P^Ow1pQ#_F5t{K)`B8%6&t=dWNBBdRG5C8>6bzq8a9io=stC&fQG zib?!~fvN2Oz*KZO|FZm|pY|J{nX3jUj#%IXg&3b$L2+cfYNQxc;2afhe4>eB@Fdkw zadcoY2Ly8hv6XU zp+xml@Ixt)$cl+7iqjHQH^qoG&gmnKPc%{_rK^n;XXGGY54)Y@nZ_r2DbB2RQYIRo z=%+ZV))|>)d}4s&Y(8#{Vg;;ohNyKEqbI3-6z9%0zJNXO6Dfyf9)t5XIH`HYC)oE? zoX?hsZi=*W=YlZf6IB%H>57S^Tx<7aepiW{<>bicC%(W_*IxxeQrps-6AMVkDPyV!=r-$Alv1iXh_?RTL9v zs6L7-=Q;ddpifj#{AYw}rkFfc^-x^J`>ZK}U=G$Q=jv4B6Wb}Wd69LEU$KwZAZN7N zN^$K>Czo>xR*xT2`S<~q!|GgzspZb~Y=srLzKI9OJY`Wh0cv(#wR#A z-$MEFlT{1FO`JzC_?u8L-MN|930C7~OrIzMzUjQkx@E3Y7-D>)lH%48s*!?kqns{^ z+h#j62OFPQLGfQMDB3BCrm9|w+ZS8x|Ev_Xnc|M=4&OfcL=DBAW7HOk5?08%i@g`i zDP||CHj2ABpEV~_?WDM8J^~y{lN2W{#l88eo1&~pG3qkh$BeDHTu3xf@ZTk!E{b_e zocl)_pXj70FLfU9@j82Wfc>}TXREyw4{~8^L8#&)3-C~`>Y-S;)OnZ-iH#JCW;l-w zF+Q<|VsV<{=l{ON9me-)p4v~bWRCM#i1CTl6cx#;mEv&*EO^i3Sjs(QJrS(951zoX z1jT!n;mJvA5BvY*9^+eH;ylG01s8h?D>79V#nZE$l|zhAtfY8`EflQcGpNi`+bNzc zRQ(iH<<4^fukk%+t#wwV8=v4lScT^cR5wNSeCLID;}gvK1=N%|FAg<6v65nSqN=Ch zcLAME6oEC2%zAm0;-W8OEn6bE;nw06E^MvysI?TYGGM`bUPbM6=e3E(Cw5ZQl{&8n z8=t7A)$ITJRO9gG^>|~N8lb4>=Cb}bTs2ZOFcZ;6@g^4(eH4vsmGzcUYbcr~C|0wn zoBe-#nbSPd_(U_sJChXq{tjA-75mqMcNaJt!i-N;QM{L|4p6kNaNf@_KCz9WtpEXg z=y5)nXM9$Bq*_PuVTx*?*qE-kaW~>424Za*su%=+eCFeaQqFdY&9hV=#V3o{e|zZg zsPz<|W~v<&{63)gjJ*>JDYgz*+y`6nIRh1K6rDMWi+AD+o(uaJ+j7`{4!&)@&X>i; zCwTrPw)5Qj%A;0M?BHe1o$4!XZ_9+i$02j z+)&mZL)CJMJ}x9SQT&;$_EGdNbp9GHk(0H|#;_pHc@cn&=2RK~m{KK9JPW}%D zCaL`t|1J`-#$%jXiX&208%0o|bL1csD{3ePja7RofBzYK)O=^K-^7Xy6h}``ofQ0Z z%Q-}G4DYjsgsW8)$Bs}<6d~i)PKx8|oKVgm8nB0b&hgDA)*70nc2MwBE)kY$VnsW} ziIY?pMfhANBFMywp=#kP#Z*(J`XAQLMVQ=AiEZ_crpu{C<4Viu!uE?Xfu>A4ugyv!J>0z7nVw`~MFYhx3_$FrC@gnwWd>pc#f&VqgW|RVH9#?Qk@MeS zCRVJaDB|b;_7GddsI1!=nP9nZ$E-Q(5XBvHo#H7bR&WOwgFn|2B_SqOG*R5e%*9@c z+4G&d{U%nlu>W_rnAka-Q1nvpy_qN-Y+?n=T#9?+6(_$JWfK)AF9ZL34`MFww*uMD zJZ3J|QQSXT1z6_$!QW^(+<4`9fB^|s;Q`EF<~+z7MJL6A5{KUtj1}By4`Cr+($>T2 zs-I%f8s`zV+6p|vEUd+uiZ?IDqtjJ41>cg1$AV0(SWHn7sdi92KGRw1F|neO;t2*W zwoojaAp)^aazeq2p2YG|s)ORGLT3f96RRlrlPrgmJ&lzNSnQ{GrdY9^&!Cd$*0X~Z zgMXIq|6{9$sudK^F>|Xn@0N zJ|MPIyp*H%Qt(TI&OwTo%bc~Wh*(7N3KJ1b;uWm(tJM^*GH}75Uqvlj60iq;0w!Kd zGqHkEzlJ&nCbm$#o~yP~tY;wB8}W*Zyn*^Liu<7+|6{4G2A^6-@n#xd{~TiZ`z_I! zXJSPU#arc0Q@Dv0EFb>@k=VDVInBW)Rxq1pyfaxHqG+jc-W_jZ1?PMh8(1Cdy;S!9 zy;Lwtt9739{!kMu>L}V+3BmTX;e!IFoh=a66dz_Pw&_D`WKh;eQ=LtNO|0N!oA7af znS6}R%uq19&G@9q>F}CZ!5}*DDKin>6kC=#pA9pyqJv^2HE5%{9m z#9G_J6&K%zFLPBN#rCDnS0hZUXref<0<_9sRz zR#EIvSGy^GE_M!tnpnZC58#(Vr`woVv7F-9VXB#;XR_*|_-(e+%lmry{x7zduU(68 zzZ{n9ckqjZ;*Yr|*6QQ)VgtpW`A$Cr6WkyD_=|yAheA{v#or5@!+sMh8rlED9RA5t zjP4%{R6GBsnOOKun5v;Tf{%$#ilBK8KLzuP-4ui7J4gA9U$jsRo~90(fPe5o<3D%6d1qgr#Nn-6IyKi*73YgY@irAMfFgeP!q5R;}6So zP7F4Fv5q2~H&_vos)HhulUq?<#jN;F%I_(3q6ZtlsH5;sbz%k?zhDA<2j%w#=5avm zaK*`E;a}#&jWB-EMiI})t&@f+W_1#V{S@agcx!Z~;vN`{b9tTEM=_?sIgfkIO68_Z^|Ak{jNUpw zSv6CnO;Nl#4HqyND?M0MQe4Oqi;WZ++)Lsh#YGj)*l^<)D=01=hJZaZI+@Hsv{PI% zN$sE*H&yMTxU^91rx;)AToz>fVgW@KTPV0_7A_y5n%Mu#IZPPm@NdEJiot5_ky4SW@*WGnvu+dpNG@n1dL$sTO{Vj0CXepN$} z!-)hpQVy=2pg701$YnsHhvGVBZ%y^8YKrSesaE#?`c~u5%U1&wH!yo^TB2&CxN)r7 zPLa=+2$nw|H!%RKfC~!lhXUNp%85-B(~F#20^Ah0Sd7XlOjVmHZk?ifDQ3)fZeyzi z%X=GUW-7L2CjPt3DdNK7Fvab4&MYQk1!nPL>kdXF4p9`BId=vdzgR<2!T?1J#a+{! z*&)U+)>GWg9t+NOH|A`0?x{3>t8}yo_)A$1>s|(6l^In*aUU-fofLBmoj@9+w>Ysi zFJJXi+`rl>=i}A`!xXQ50Q`O+*#8H)=|nxnf_ctEBaB~kQ!L~S*265lsG(Stu9yV> zwhR9w%v>CxSX}Nr$_fcq@lh<90RH)(f5}1Tu@%N|Rb;4*6p!aPOM{JHu-{AZ#2jZ? zxbX|NV;P=gw$^ekC~7I5VkJd0#fo%R&K_3qChO^mYCFZs0@X+H3^TDRLscckv#gY8 zq^KIFIw_vx9ua&=K8ICvo##XO`sd((ew9lfHs=yihRvb$GShsU2?oqMhQk znNA&BAz0oz@Ewy_KiK%iItu>$$_enL@doPIAM1aG4&N&I#a@ax8KBiTNO6)zyu}5q zCI&9*DBhl;c2YD?ci!Q`R!fQ#XgSOSyvu%D8+fzzUZ&IPGk&p);(b=YYD-WJ6d#ON zd?UWYbdrPsr3|}v09>wcCr6knT_>1ZxoF3b97Er-4y&nq1eU=#WspB^A$HJKeY01 zXJFP>L241jjxe>7;_GAt?181QcFuLa8Dji`S$~6F&Ca*Wjo;cm%lU4i@mqUFIN!6> zVj0EWF{+c|huKb7r16VtzW%#7{FtIx_8+ltvSLvC@DodK?PsY4@7a%^)755*1H48I zQ2esg>E`^Ro#NMA#sB`R|5s+%Q{wzK*!Ts@^Ba0cscjU$mpTWB8NaBb_#;hir0C0c z{$zlngQ9<`^H-4Zi%RzYuS(>+f9Upm^iV9;>0wy zks>@>^-})#KjR{n8WEXj;zT<|6c-SOC_KxYXupXQYbm_rR3}ADk;88_#)%CSu`?V$ z9~VuuDPZE_GSv=>cwT6o#0v!%J_*CTYBj~lBh@B~;k?H>Ww2UFkuX9rhy>InEenE>=^V$AAQbJ`bs7&iOtQC+gY% z^XpAq+8D*j({RB!#SL=-(sR^4iVI7fj9?Qdn0*E=8m(C7i!gSqYNxoE^N22rO#c3t zgNeH&T=6A#3C3lqJrtJ~sQnbMQ|e4+2}L6Xf0E@Kq?oeQxtcFq!8NW%HeVgqHK9)6nsq!t&IHv> zaqSW(cch6ETs#-ov4_@FR!ne%PQ~?Eiq*Luc?+By5=@+EqnI{T^-;e6kGpZ95&6SR zoM@)FDM$5C6!1Fh=6J=RZ^m>6F1YA)+*0loaz4R*P>5S|6{~YAW-!4SOW6P07@=sP zn3=6ug_-y-GqH-o6nj{N+Y?ni#jFg~NpS}g5Dfkf6f=11PLJX}cLq3=Ojdg-?kZ6O z6tml%yXTrXYYqbz4HWnAe!+Y1LFszu-gFZuwosH6JNFGWae~(c_=#2AT$aKLM5@&k z^Tw!66!%Y4tjhf;pXWRfX5vH*#r)A~GsT02ipe~P1WbtQL z4y*Gp7Nsd>w+N5SaTYTZv5Ml+af*vRiY3{KFX1J4tjMVdHF07k`(MFcKAxafQ!E{> zHc~vnT`T%2mMwOkOfhkS<$V&%bJRYHrz)HkoKLh-JUvAPc+t~XIa{$jEAh-ir*f!? z6AZEv&vI9bI*O`HwTcpVXKar z2rgQO*E19seI4sdoi}_YPBc^0a~*Mzf*(kM{cm7IVjabsW1PkfCeC_mlG;JhRG=7a z6W(6rG;cEkLyFo$@!mAmL(y99yzez}qMo8{g4#>* z0W-JSBh^}p4=1T^ijA|Kj~Gb69zJ3a)+T0dee6-J#>d#4rw&l?t(WKsF>#`i;?rDb zOOS~Zd?jtcXX6zY{|s9zoX?Zle-3e5KMG0eqaJ3(8U9Eu_xA#gHR8HeDU2=w0Ca9&X~q28x5@)Mko5xQWF9ioR0k z&tMZL*3dQVfBz`sFzSB%m92JD9Ga=P_#yng*g2eJ;zS?CKl7Y{FcT-LDgGU!SiOHY znRqiz^-_NR7JtM-C&*{w#d?Y($EvLqgJwBLg_w9zMKO4k+DLKqRJD&HxWYMRn28rH z6hkH$1aGt=jap2>PrICY3QwA1Sv`oJuKFpwOPrVl6EB!`41Af2fB#Fok2l8V zJN_XiUM#1Gi&u3N@w`!VP@FW=85U{c1%n!fld}|)IT^#}I;Uitc+o?Vu$28zSZd-= zO;#-1sYqPwoW_Yn7sUupWS#C;YbcUNsTPVe#;Z<>WbO&kO>t(KlM-NWQY>a`ot30E zP>h_Y_EMZZ+Zh#V;zbq3Ib&2C#pqnc4LBO-&UeNnnt0Jl5jc+}5q%V?^PKaCns`x3 zk;cG81H}cbjOd_9pQQ#UE?nVc@IKK_aZ!%iMfvAH|EKGIz@n z5fKp)5g`!~5fKp)5fKp~A`%heNJK;o5g`!~5djey8JU?8nW-6>nVFfHk(rs9nVFfH znVFg4{mz+lpXc8D+~4~=pV>Hb&faUUwf6BfQI+IsQC%}d6cvkI1OD8X7rRcuwdES> zb}dpHysirpMYW0%X=$2+jJUqdE1f`8n;3Be0pGyi|Dj|AXqGYJ#$?S_M(|5BFS3(~ zn_9iHf<#dbGUDcF4Qag@*{PZxjJRdQD~J0%ZViRo^FmrYa*H)58FAYdue?H0REHUH zJ2!je2Wl2G;*KQEHbxXwX_%`3cQ$zya-XW7`WNzYSCnQsBZ^49ibg8J^b8G?PDe2{ zRPAKMj55tZMwHZOPB3C7!FrU^v?_X|6tk?EnA;cj-|QSPT1V#GbM znk|f|X!g2yL==z8eO|NcMe(R&4HchNVNQYOIQ5@%Tof14c+8E`uE! zMaSQVnrzK(M%-ViVb}bwmr~p2^+1Fus+EkWOVGGkqz(_}Xbv%=o^*LU6scLmh=w9B z&vQeykP-Y+&1(xI9;TN(nncsXh(|&-YZ>8g&J{(qj}ebHd9~<8Q4wtm=5=|shKr&a zWyE7-K(&hzZDc@ok`a%$d$lv4ieTIEM2yO)z13DPiU4|1#pv9QJK zl|)fg?D`cfqS-w7qg-Aa8L_z9>oub&DmL{RmSj?Y&&v{S_ISO@Yj}z%s%}QSVb?5U z#0dAOPB7xl1zt-dMNzF}#9LXKos3vk>h(7Bs|Gp$Zx4#HJWeyl2!5wawbEA<)gnf` zldK^N?_gD(*SqXYMR4z8l%`Z2V#Iqip~q^nt=h_n_xbl+?=o1ev_So3u^{J02s&+)p~s`qNup$Yiy6!tYySE8Jb;;*iq&6t)D1xE8i~Q3+znLtYgG?Ihq5E*j4ZK zJ&Nk;7H^7@g$R2vzwx5$I~?`3k2pIjPl`U(5idi|Uxii*j9 z#{Lq`aYp@i&=O9i;w$^KzU?J^l&RY+}R-cIxr(L=7GL zFHRE+jx*wnE-&8*ajMoa;!M8(lNTKG^6M6-$5~vc;-a(Q zpRZw2f1KUs#a~9~RIO&jIfWYLI|qRsUQ?M*wS*BtF&g(MUqF|jVKE)_DVi}x7)mvV z7-6i`9ASjXr6D*I%vBoC*RWJ;2+9I0KlX52x!J>3=VkX3r>ch$4!dSCBa}D|X;t7P zc#q&3uXEXmN5~{iKO@cy*N~<25L%#eJ3|lh1ltyG z%PTfXoT_b%;BVGY@yjizY7HZ%v2zuhp62Eyo(ny$@Y4)3B7u~8Tp6fY$cV%Y%`rw? zMOHkLGBuPX30G56k7OSW_a@_-RLxfEe+@4wTD^3-=EyLY~nw^X&&(rK-#62#}I3p@Zwa2|a z8iKeNmDF6dfDyCFjA}6>sv=ZwC%+z3&7s*;YZ>9n)DWc$bIE{;Am^f*W>Xzy#C-(e zQRA!WX2ku9hDGm3Eu~bEjoJ;={{b?f+RlhNGN9VShzH9wM;K9Gr#Z=phgj63frVA= zjBp2Nx){-@*Yq*sVI$n0mwvCNU~#I37{RaAyy%BV&>W>9W6gLpTC<7~ElHY#^BM7^U9*r8 zone~AjChKTsFrj7pIR=?E+SX0WyI4dn)Qt6&erT;#53$fwVM$=#hL?*=xy=pixj77 z4dL!_tPZLDH_uJ90mwLMcM}Ne36E%JdgQ}UN88HQ$;;rz+k9m2_s(2 z)a+u!f>y7WxK73I|2kj7P`+lI5ibvVEld)pYC9udsq|XJ4piNYcr{!@Hebc!WX(=S zyjJbCM8v6@&j|PH)Izn65yPckZ%h%Vie0^dkwnctM!ZRY9!m=~^w3hg)$FxQFHRL% zScbRbG?d|OEH78Noy(8%1y*pQ$I2iLWmt)K;x(HXv5MNO2x1l9t@9dX$0{~4iuby` z`1PLC<9$k{8e+tnCJ*ZWL9k{6Bi1sZ$A{dYTEK{PVH(oQcRV^jO4pFykFdVl>tiyf z8eqf*j;V^EHsF&y&2C0FFB?grYA+)`t@7IBBTiL6BR-4KY-GgdBF%9|eBSQ0g$=0| zGvW*GQ*B|ySdL~p^&jKq%K{C-dT21{raXRIAvE1d#u#xZSwq$i z;de5p>SM%V=J9YJrfEF*wo9)DMi0{Jam1w|z$5rGTeFrCN24?g81Yx2rk2rTm)9}w zQ;jm>?+BIK`S$={;5av`ni)M<+=D;K=Czd({Ehft%Ng-66RDWvU!3&QG%|V|_4=<| zoT{CS7|-&c{^P5?PDP7TMcq#=mS9mdeT6$f+ zI6Ypol+n$L4->1J7(EVqP0p8K)jCE@iPFqx#2NmYI!2HEUcPw}tlGqgGh;PFjPMK4 z)Jw42j~BmvUT0-VuxdRc{F61qj5yn>X=n5}?iElf!K!VHIENjp*zGw84A*osV(LUq zrQ8ram2^$r?iIv>Di#ZZjs;aMj2@)eLtm`f!U#i>$0HRh=2fhifQdM5Ma7Cqk9{}c zlHPMN19iPcnSpmtydt|iD;-)iwT-(n|p6x1`>8hAH zcW&z4wY_tSr-n?OHM9EGxikOo51z{QarPFkRDxIR{?W&H53x+YVe-`8J7cGo^7WjX zCeQspLY>?jkTrSs|9<1PH2*7Be4jPB{eiRZ`9EgOnO)U8{mv<--mLql`u+bu8Eo?R z>AmR@`{h0Foj!TRs~ab`+9svWo^fCA7vG+t>)AJ1-+S-=$@>52t@rm&4(R=?WoowP z<*MF|o&Kr4^M4^$$GoZ2dIO&FPhY_ght~fO8T3EkKe<<#KgIWdOe0sE+1oraCBFAm z@EN}I_-aM-$QjOQ6QX+kx`Sd@?D*vjYul7dFS#UYT1?bsy@x;78{L=1Mnx(7ugLdT zeye&p&&7j>f+UpZTFW0n5_}{`)}VlIQ#g+9qd{W*D@c|h^H`7s@{e%zBjk9H3?by7 zAX$v;6G3tU3;qp~^pim{hW7u0Bw;*A4q@;V*N9FgxhLpkHL51+IO#gsik3+_NjhC8 zM=<20libNVnKDHuYf*iMPC|WkvK?(_>Lk@qCnqp`mQITOb)r98Cu3*{&`JC`Iyr;| zfjSABs*`1i57NncWayX!?n1pz4xq}wL})hZ#NVWoegv9zG9SSfZbqV&AdqX*$$nJZ zb#ffl4xNmnQ6W&LPFfKdtdkyuoU4-&#DuU>B%h~~O~?t=$+l3PTT0K@$zfE7v18O; zz@%snXR-@*(hXyTP6iQtkxrH(A(F`uf3Z%MBOyvBqe#0%C!0|iO@OGnR42z!9ix+z zXu3=%604JT=r3oJm%DZRiB2Ymbs8gr_sRftd2$r>bG#iGba z(#Z}KT}`@Coy;QFP#*ZD=%f$9*HTJ^rjiXrT}R-^aHr{HCyK7845&yaa#Y?xHc*v8 zHc)q?PJA+n96>h`Im}tq9Z5IqWCPN&**!9DVNR6ikXh8+N@-D>OPNrA8$U)v9`*OV zT_>F|=d)V`-@&AaD`0m>y^~3iRmd(;e3wr4pt6X-P&b`26;mddXXs=hqDtr&B+jJS zkXA}#qi`1Y!c|6w?xsoarv5?Yq#Ysma1)X%bg~hJ_YytoDoNvPoeUtPN+*jEIfoI^ zE}g7I++6wr$<>qw8TaXA3-W7N5XJXX8r0U(2WWYKCa+`Tb#Bu6Af1Z9dTIshLyWLD zkP#?cGmQ8~7D492q!-0a1c>@a*iExeI$(a3-a$wUJ%f;W)E(ii%z=c*C>3(sm;=S` z$91v~CGCtTeuDa=qJw@w#gqIP6`kw=*OG+Utu+wrya82CNLB%XGGx&0z~0To$N;bJB%n?#p0-bmo?Ei zN?m>5BV91AW>JK{&)G!$8oC$hAJDzXUCX4X_>j7zejU61h$9LA^_&10KW2n^1APGV zC(H@`Mn;%FrEw9xNhj-2>Hds!j>^qEsZjellWrj!@cn|xpdX`&5b-4`MeqbzV|?_zf-`d%k{QN5dnLcIQje1rr2oUB z$UDJLFev_)nxpb0&5G*(cyOU+oFK;CG{GqrN2BQFB)TT(C3K=*mLdK$y{tmYB)x1y z(dl~GhY}yX>_y>ZevGmydN~Bw8G1R4dSAWxoT-;q82$9J5D{nT`Dt1&Vg7nqikP$Y zvfRx}VgQRE<{U;O1~MXPs$SM1DM&ACk;va5u?7ix-bcDYFB_3<)XR3{ne?&~d1it` zxkWEWQE%1DI9hCanPS&V2doagjKH0&=w&mCom`9tz6Z|dT)nizH-w9kah{%^v-Oe| z%C*QipKKs6OfS1pbb($DqAFZ3$5D47b42K+4f>1p(vQeUf=9;1dfA1tD6WmtyQSq4 zz4%A#r4Qyy^)d)0MlXvIaTzH>Tr4*u>2d-fO1Sv+Zn>k7S0Owdawj92Pq z0QN)zfO3^yhM*)-4uoILc(t3fCzEa@Uc(|tNYTrBq+iP}QIN_aD7%h`(Uhi_pzE0o zk?Guv#2d&EvNQCu2jw?%EgCZQ;&&50g^(;#j)a>jCo;43venH?$t|Q0bvZU-a+)ksRA)gfAp_c_nC?G2+xsyfFQb>L8VlgBZ(Hp3m&fLXh1Tiz{ z9~72Q|6{zg%%o1GdYO;#S=@+}GQEtU*WY4n)I?CC66$oq?uBp^ilc;r7hfatc4rr@qhkX zIVzCH*a3ptSQLqmvk0=<^>P4JPjFJu+QA8Vl9VE}Q!gu#{uC3#)uoq7Pg6?hyO{@3 z&(O?B=^?Wy>194QFXeqihq7lGQQ6N;&*^0~N(ac!^Q0Zt`Amec7svvl2k8wYy~v2f z1>A$=mnaL;hiFRVzD(~RXCb|Sf>$UP$`(=oy}XpXN+hUWOxjTO8V!lkB|Jz_@;W0* zhS?oT-{5mpj&SVYdXxK5x0Ljw?k#GJre!qU+hiA$mh)qbqke^6PM~om^_O?J06wc| z3QT#IhYkWq=>ZtuqcIV@nr8xH-e}M>5xXnz6sLyFW#BO0k)E9bLg2*uf zMD&+jkHoFahvctV5XsvJ5Q$&&K2o<+CO0q1-|zwAcCY{vza?U%>?AN`e5aQ!$lgW$ zkpDdoCS>oXzDWOphC;y}K1cqKdf9=3y_5|VKXHUnvyZf+;b+RSpRB_@O+dhVdYeWSD;={jeV5(TtGadGaCTuwE7+?9LF`Hvf69cP5`6ahgIgDgPU1cNL?;zWat zBJMPUEJxfVgRDft=>}PiWFLd9NA_fc>_p)dgY25(Hb~JK2HAsRU*15`nfw^#eg@fx z;xRWg8^JV34gS zFdAepYTPD+Ofnm!3n3ORMvB!Sn~-f|L6qAKas+h_gG^Km(uN?XLFOYo*dVKra;`x( zBP)b^k$D~?(n1Zg5h>>zWCK#d46+9C7cjz|5Kfwqa3OCXA%b)v@gjq)MRFt~5-;X` z#7D6p;xFMoWJHr4)L&{4V+^TB_GRo2)v*Tgx!fQRlxD4a&t&=zlyq$><=Id+9X zmL!noEBOEm5}EWWgB(SF5&>Lokp1XPHc0F>EQaP3QhTjI#?X*T4_s%EEvQK|i2ZsN zLPfek0&gH#6lEC1??!?{VI~>Bi8Ya(Mg31?8D#KgQk89xL+HPSH02oNAi8d4r@52? zt+%m@JcDdQ{q3YapRdt)2LTii4C?NrjD@5gHFptA5nrQrxPbm=l?E zX*lFnGdG&<LF$gIdQJhV9x}*DbTrW2WNjEJ zjRc3hhnXCWO$7c3K_aY~W=86x1c{;+$_UpyGLDv30(p%3FL;b-+t?AZA7?StwNtMr z3^IVo4jK=cPa0$gsyfNUQ7gKf7pnj;IG%43W<>5i;lVkU+%?M2q%8YWAW*Mv%OKl%nJ%(vGGf0(sdWLx^9< zF+}kze1^6~^uVi}6l5(X188`SpqB8QK(PCDQi=Fsx)!-_kO5SWaCF`za)d4=l}LPx zra|^Hfc82?nlKsjwf0_VzKoGS%lb+xd!PQNIS|tVb^Hb$PPbchX~nZkflic zj0X@3Hxo2kKPRv))PHyj4}vd9DN4rp5RG5b99wBbM1IA&ManjIhSIMMavaUuY1VIO zHiYgVXvBTX4w1K$RHODggG|{)X%YE7^+(oj9`A7dz;j@an<)3t(LWkwF=F>}5z>Al zAe8Upk^3|Chj~BOAnq4-f`S7EIgG|%$=*Sp_lWzAGmiX2q!@L-)5wPj5)prpEuY^+##IzeqpAkI{h0`kS<)>bOD1(fJQSo*?ar{g*yK)=92G<$p9OTE`8d zKSkCMB}N%VI=|zz4P_IJavaU486{wnQTh>jx>4LCyu|T4M_W-j*(fK_ImIYpXBcG} z;(d*>0Xb(HWf!Xaj3Q?lr3c~uMt&u0l;pFGvJrU!M%jzXbC?IsfkyG0YUF1`es?O! zD8oq5F(0z^T+4rdmuiDiCK_23Ats}&My}Z?htX;=ir#9J1&FX2WhK(=>gL*$iL7i zdr%Q!l%r_8$SA&%>=w$!EP})+qpU~nB}Ung+GrNLlzEU4W0cJ(zKnFEJ(l|}Cvc?4 z8D%G2(~RO1PYDp|zQQPLk(a=Z(Q+lJPb5Vsxr#{9pJbGnt0@s&$wmph#wa7mN-@eI zG+#@WQh5()*HI=^rxEz|Mj1qGx=}Wv^ae7WVU#{Z-bkk5PRnHHD7?ui2T+~GqG-99 z^kf@l5u$G)g~-Su^(eg6DEm;6O9@ba8$FRnmJohBSwdnySwg`bMmd6p0;5d1lf@BI zNU%t_i~6s>i)JVyYLrc9LNpa~@eHGMAiRVLuxcjnmy*U=1OZnWX}_DkK|nbZ!*~xh zM`(pnmLT$8nhsHwG%8|d8)Z4-s*JJ*X>+Lm+BtNvi#L!ommed!nja(eK1L+ekS-+M z&xn*-ju+w{;K#_QqwdIgkZdBOo|GfyA+AGQ1M?!C^|qp*kqn~J{V+|0iYDrhsz(@6 z)ohf5a6QWIQPIK;D4EBI;#Q;VM(JZ*hpINphswt}dT4DYJ5P`u_;-*=_&sTqHu!eZ znDBdw`nU1o+rr2VB)jX9^+{0H_D{v=o`oY z?_(TI&l}|=s^`YP zmXRLl-==wxxSX1zXa%W8{YrNJ4w*p2DuO`HyOa?%qcrY&e1?$K^bT_0XM<>1!)G5D zWdO#t%#9@XhfI#bbv(J?`iMnPx}Gec>SNM}mJOu+6Y2@`Ms|bnPkFE)a}%jV>1Xr~ znl@A0&$$L+TR1sL`GRYZJI1`I{E~9OUA2{)Q2rGGpkNziK*iTI9_qG}8MwaTI#lhT zuITxe9qyzgNcoOOD@u3q8Ct(L^0$le>_FlVln;e_Xk66&NT2Mbub})y{g?g3Mf)fN z3VtRk)b6KdzmO`#9w1eS_?0t_u!BZfjF{i3H&PB6WgU`#r>00aOi+mXgR_q4BixVh zKe-PfN68HIfAMtui~3uS8D$8{-|PxO$2kq~|A#ul_XNiVlm4ZKIEKoT)D)%vku4OD zQ#RC|;yy7+JAx*dWC+0%O|lS?rwTB*kFjKPH{v?IsyP zw1WkZqnP9%TAfTDY?4vroNJQ9Xbs`M^Gwo>kWiBhBkp{YtUur6mYgtliLwh!asbug zr0zl{M`nac_M_z@CXF=ld%h;gyVxYh&>2M#mykJ>Mw6LK$q15SOtJ~tmyt!}#hPRb z(l0m3S|rD@VI)i=L(|+QiHIj6gkC{PU{5efKg?H}qz^%fCh36hRVHbMB$=chay28y z(U8n_*Dw!KQ%tfGRo9ZiRFibUejVvYY#O^p?)4_wjTU!0DZIfXo8ihZiT*}XhvG~V z|KXSmFfogTp}(2bBPN?2p!OD%Ovxcgm~SO`gyx!L8S-u;Ftp~GB=B}VLvp@}U$Bzt zJIEj!3#h;GP9j5WA$3H?T`X9{*QlIMy^2k;3Q03evK7@OCOMAwnRIq3fuMAjNdn5) zJ(BJw{m3gf$zC+xL$g*eAM);{oN!f=k=a}~oBDTGnWShAwMUi9Bqz~2mvmMWHNx-X zW@OcHGaB!wnQG~FC=bxhh^-^7sCNx>Oe29idNrOpFpo>x~ja-lLhY1$(O}x3b ziAH;b4o7LTNsgfDQ5I<-wFsU^;~}TjBuCNxm`TFgm>eaK)8VLZH_4D zjv88@C%F0a3-VrI!a;V0{1*v+0h1&ACAu6LL#%lVGS35K*~|Mmd{c5Aw9B=9V7cA zo{*?rPye9pV=}mb4I$2cEP(oNII25%#v}Dx9zLkw$p*gT1fg*k<@ufs zBFw$pBukO>15JbCJuHm=9|>wNU5%2TSY#hJAmV4rfb9L82DpAJgrdvC+8ZCM|r6H#l?s}Mo=jJn=VJgah`(z zkUE5(pj=4!mqn3#l55cPAE_UwEJ!;=51~rT;y1x8tB^a2S%y(M*(}y6W?6!SGt4rE5?`|foXJgy^fSv+6rW`l@i)r=V$U|qHn;-J;(reJ zA}!D?d(be|%zutG%Q}?l2t;p|5#;bUksLR;&9ca7mO_(R^k%bcLX*WT@m8~}LAs5J zQEfNNQMeogrd$AFVP@%o@dC4~MsB!Sj-ca0 zvqVIgWfYn2i_Eecb&*VVF_9r9iVM+piCIFT&9WY@OU+`AAt)4I#^kYPS%}oj$xIxZ zK=L%RY(-VPS*BcJmOex#5G<;%WP^#^gZ!(^asq8hX8!KftEmg}lg;9Djae2TFNKs{ z%Z(^bC9vyAA6#iHcD-44qCMR#q5Pq&ttiW2LUi0{mf%dYEJylHX4!$7EP}b&EIo+N zHp>QN-@*pbm_z-|w^DcH=bB|7>TY9_JZg-r+s$$k3-g)q4znCWT>*7N^_^s-kb9AM zmst*=wur^1o2472#WdIqHdR89D41!My;xsLxn~goTFcyK{!Vo2j-ql(f#Q1z1Qiu# zIfkBl*=eO&HX>&>*PyhDYv7t=mT`2rxMnWbAg7vzP<YVg9HgH$N=(Jat&(UVVA3@ zD?;Ao$Rcf&fKmA#pRFcK2zsB=Az}>yq4NW-UrP{(|Bwu?qfBmI!am{))U2oB(DX4+ zsSPw0^q=q>)>>jy0>D2Fd${~FheS)6v*}-noh{hk-)gC$@ zRX-B&UIIYjPb{{N9zfR5JRh)NKbiW4z%X!t&HPIJ5BL5?O-)IaB9AZbma{~qr z^HlqTZbj!295iOE7!6HY{H_;-Ar&(k-+9p{f`gDtIL!FO>e_h5RYf(DIBEDx>WEi== z7MXY^b0FQ%A_viNmPMlcxexVcTO=gFBI{9gjzt0kEwT(nQ!O$j$Rdl~ykzPuau|Jj zix>?S8GvH6$b2N22nMBQi}+Y9(v4s%lOV%pk-ez5TV#@h`(afqvINOa?n6T`pPkEQ z5E#OJNIcIXhcFas;lKZ#Pt@oPBkBt*vIS+~7CDOg3oT-f;6g-R#LY;EWWtMi4{1>r zIe@lHED{lIkulU<$|hngvI>Qlk)2qJEJD`h%!&Ruf}6&g=#ICzCHe|(L{)-C^jBJB zIr0-NauQ8fk?JH1->+kll&jeh>XQlJ8jG|eFog-BT+1~`O|{5&G+f7AX`~m~*Ha1< zrV{`#=+8!b|jNj+||$VwzBTpjS|QCq0INLb7?6MRuanT||nf6FriOi4dJLSh&O@ z;~1D}k?>M3M&m3NDkGhUxSMhywcH}RP=1ev-yh^&Sns6=5MODL4al8skv*uavd9Uv z&LMLyN(gttT#IZ*Q8l|k-F-w{Lq{X>ev6EvwALa44_IUbIdv?ErUxw&R!=67@DLr2 ztOnALVzPPw)r}T8j*f?!tBL!O_6SXj=4LYfDD_|PC_8LnBBabCQZ%&k;bRu*g0+p$ z5cjx6HlnbdU0~@G?68AfKgr_A>ExcLI0Xpr;;5qXX^Z%ETciidGX#L_9!iOUUheNB z${l?cseP7R_tUkge2$w2_!@c7bL{3*9;Citk$q?xv`FZSq!wihNaaiP4GM<{;AIv; z-a>Yco>w@gi&zjHuabquWE+*Qk(m;{hq>_$I(~%uq3}&6LDy0qL~pSm zik5LQ(C{{sEw{*Ol&m22D+%x&IvpjexDNyGS|oOq`%wNKr)D)ZN7DP003Blk2uHcsXy{Rwn)qdnh>?0kjjl*hoMhN=O&sKL!S}EW`e`W=k&)G zn)C}!4=TsV(wFQO*;_dU==_T3%{J=4c^emeP0F{kYh-`JLt_U=2F2gf@jE%ki2aUW zki3i9qU?L>x10NZU~%N^p?Bc=k)GJg?hx}6n?ue%nil0hTjUrT_LJpbcy|2ardbZK z7!rQ9$bQruq~^a7Eiw;rBPxHV>CkzYhWvvgh@>NQJDUFF>!Xwq!+%+%;u!b;ZIN}T zI!;#q;WQ!Q1dWRHf5{56Px7pA^OE-;i=bef27~Jq^+SVLWgIONtl~G(%1=&K{uW8A ztVGEqs|4}yp{+uek5!JNeKMa{bbISovmCK2xl+4FyiC>_J&D|8`c;xlD?r5UXrQ<#|>)jOtK!h5GXe zEX*qN5z1fWaR`gTtrC49nLuKMRW=~+B6f+2NUI#df{WQe6mwws604*~lT8d?N&qod z@x9C{OFaK}a#pNW_M_o)B8?+zteIw&!gzL%;wxAbO$k;ByplkWn8;%2xXLOaNmf~p zlB=z96hYTmWg!w%$Oy8pwaQKur&{Fzs;(mtbfu9!_w_`CgmflB_6=N&$_%SayphFF zo@te1XuOH{vaHgH@SCkNih^vig~nT~{I@`>3?lwkGKt1qEC1vbyF_fBRmMl8V==cG|}TUBNE!JvKfU> zP-E0~kcB778X`NbvKF~d@fjMrD8bWY0io`0K19|t90^qS@L?}EBBhT=QS&Sd^;@MM z5zi4M(g#R4%ATjg(KO#G<`+2INE{>!D0z`Apm_o3{v{Si{SZz5GIJqpA@yIzOTsI3 zD#{jFCFWIbM&V*ohvwIKP%L3$B)-mPC>^HWZ;*D>jS%pg95=)-<#QChMTetn8GZFO zJ%EJelnj|GXlB%`{=8b7j%emz}}sE;Wh5;u@tw0y$uH!=rOKP7{oQva$=M1;1_*y(1g zEJe!aJjGD8h24F@DL}{=SwPg6>;!pRnE-iTF(Pjp8H4L!-!~jd#O$DKNcxrl zc2ZuXe8)4y%}envZa~}j)M+)5y z``ctcM$fiMdVo!Kpz0hJ47AC5WKFfnJ~RZ`WTMU{J+SKCHd&yzNrJ&9tC3-}$z~Lo zY_bbAW}6r-Hoh&>CYe@(M3c=X{&t)6A;e*mviljoDY(wQ;HaUilA~H0cCPZ8@*CTs|n}uhv%Mxy! zX_JMBC?#Sf&9cdEG?lTy-RvCc<)juR_pl4JRoEo>UYjgNdL?tgHJiXuTSZ3DFo#mQ z$S_*x+QhG#=0)~>^pl&H<{G;Gei{%twKh3|<_B!zQ%BTL9^?jO)^h`vKE&q@q@Lh| z8>u;BA0}wTH<3N$JVFrYZsxN`IZ3E)p^xT~HMF#n^~b3Hab6a+vFpcK1S#!YfYK*u zKGb&5U{BIu(08(XR6IqWblGG8u}|A%3(C8>?it=gOb@3BWxc%DN4XI9EZ3p5-zEp( zdX9}gNBvy`?DTmSK)`&O3&s~XF0c-AGs0e^ZirgISx3xE>=H>sWDTh=^H4$RLYs^s z?-eqIibZ4r^{*1hV#`y$8A1J0O7Rvq zA#NF&K>OPSxttOpVFgW!!j;q-P4Do)T19{;dY5B8$~wq?kG{arYEGH^eJ)1d8fy0e zlcI4gQGUoyk-Cl@q2wcWu%6CF%E#;q!y7o`pOC$ce2t<{S#T2zqVhAFm^U*A(mtn@ z=-xuVd_ieYJ;vu>QvXG~#BQZQ;QERQwlM+nzvkGWYdgp98;%Qdb`Zq3yoZpTJSUL) z9mfo%yLe7~PcI>BH?>964?F|*uv5hT$O8_!d)YmPf1*tLsQ<}*G~UnbWIvPtLcNiA zfTIW3uRLlGvN+0q(WXqPEd?Xm5WBcH@ltx8T_n^l{fIrE2~ZJc7yk?F zvJyq%cA3auSHA#x5q1f<$j(nt>@<=|k#Vt|Z^^JrPZalGVwX*DMYEAh2@-iREQb!6r|c^7s{@)%K_A-v6<`b(gOc@p@ zW{~n5i4>lHx_C9xZld0($YK|0y4fy%*>;(as9Q)ea&zpm2Q{}+nq1Ng&%Zo8gs42S zgpAv{1{L{~8!dNGQg;EnM$DadS&QOAyNsj%F1v&ku_Gi;x65`E6te?V%;3fnGJ&+2 zcG-x^QZg}%xe#AQ36OKQU5=o+oK4+Bz(}cJGw8mTdn>8`NnS=~vq%*mpmL5~PN3dJ z+UMG35#p=K1d8rs=QVa&iro9T4r8^H<^k$nMCnOQ-iVwyCjh5F%&lv z6c#?r*G<$v_z^xpb2F)Xlukxt3niInmqTc7CHlumB@)|M1i6pfuXC=4nG_Xou!|7_M*f>*Y$?wQ;b`$##WekOWk?`JZU{zB9T_za1^a;#8#kRyt& z-?;t|WkLS$EQspEEbs>bA?64{qwY^0PDjZq68@qwQGAT~{^m*R=B3~`yZMI(L&OQ5 z1E~I&U7V!r5&s_-B5RyQP7a$!z70UobHfeQI%FrRFLp>ol$)EP_$O8`;Rn$Kf&5F^4ccPZ&1DW* zjpA5`>_hG4EFMQdNSMatsE>Du^$Le9LtFyaBlSu$gS_^>I1eHVph`pMik(^AX z+`Qyn!{n$*A??>vGo+_F_+^ztO0FaAC{Lqaa9vME(g_qrH#lS*{TT#vqeC{KJk!CS zZliRF&2q?g)ZI*g*$!EWoLd}n6kR!#_Eze@iI>V;hxp&-;6D^PBqPruhtP35DbHsD z)Zam11*8<|cM=d<3Te8#9I_4tMGiTJ*69xZl$%3FkvGF3htXQ%;2-W_Ze)~lFPdg? zT^U&@bGRk{ZX!ZQITPMP`jA^e5NNrVx>d46gv}{IkM9+H*5!Xn=q3B_P zL1PoaJVFf-+f2Gq_9zRXyM_Ll$AZXjrPhxT5E9y05Veo9M!Q1>k@^JpBDaGQyLqX6 zlJs}7ON2hf;t1)Yfl%-?M-uJb9Mflr7qV^g#OOM2T6xHVkrHC1<`VZ^ZzF$LF!Su7e#-O8Ppx4+yCb01H>F> za^(Kwklm;_!To6emtaoPS7`i?Q#9`2S6F2Fl*26>Pca#Pn)?V^Cn#c_sK`&0h^!r!o>NQF}oeK2z&{an^TgF8f#-18KE$4il}P(>oo zCps(+ET%pJSA`%o?j`S`BUEG+($W-uGE=1Odc`df>FgL) zH?U|1=|S?1><;Cb1ccU`xH(IaK}6q7ut?2TWCuoW;qx3yaVx=~I9HLA*m4{7&tq}4 z-mXYsK3PT59g1v2RRPx(Q2(Yo`LK{aK-69A7Kufq2^rJ57_piNB1cV$A}7!~ zlhl@y4OnNf0HVqW9#wbKxaEorA@&{uLURQH-%D95DcNl9aaZvM3g*yM=yNf_Toy-a zHQkPk`$#>qYiJr&-p}G_tEB`F(6~sb;~wNZNI#&po?d#0K0r|ey}?EoBCe4@Q2ekW z(nS4xcnN)klp?p8$k6mCo!Y|0=$gmrXjNns*^g0YRJM^iv_H;u?M#fAClo2^paGwx zY@O`*DMcoAapYiqT9GA4>t=p5JwrKrxVDG-8+#QQMp_^BME$dh82c#$@}8sF&^N$@ z&nvPWwey+q1^NUzgVYxtFOszd+>g4KcqRdNC<6 zzQ$t6T*3vYdYvvFR-_yDH&_UnBcvP)-XyI{$qcgIq9;(gjO*W~IT5#2?AhoC*<07z9(LhM1B6G^`@ zBK{EfBK>zo_Mqi3_x!;r>sQIM5i1?^Jz}8PIAgJWS#Dm!)W($O2}j<-$Uq> zf+&CLN$S&hPTxDFkGTsPIpe=BrK zOpsGXk)Y!~r0AV8hEju54x!TMlp}DNm=9HEM!2gjOonPJ7og7O6hFI@pTV4BcQ|D+ z;uNCAsM9Gm!7OsFQznHtr61wv5flnS**WUZcS=wgJA?HCrwkz~+$kGSe4$gu(HG&A z=!*#SBBxu*BH6{oOpdH5CceZei;xyg1Sj9F;gp5QNMw^3y2>e;No)pnS3AWg+06yXPD#DSDO*vV!kgDJ z0TNPK2!+=p(0L<4Ws(tO+~kzKsLCQEH?ugB zvRMa>w>ZT&$0;LjUgB;g70AwIAr#!kjp)qdv)i4r5heLfIf0ftoDy0<6Cv|XYK-hc zGKH4AC`XY~hLJU$g^*wD!eDLYW`45dYJk5dkyrPnEueXQ%|#r3RHCiasOD9;f! zQU-_)Mb8rq8t1d~7uYF62RZY|e37O@>jK_;iH8mHhbR>WUnZD^WD}LIF#jUvNBFA* zisZ$V81CxVoFYru6{23J5m7qqlqqkp7!pUEvJZoAQkJD;2+ePi_GJWtxVPB_%9j%; znpe>6E7=6%-*L(&6s%$n)V<5XqpX4dMcH+SM^$|7Y(i)o$Zkk>6Iu$rCP6?EAqj#g z3M3+SN)!t!lGq!P*b4{&%_x=-dqao~8;~d#Y$W=#7ZSUIl31|--+N|u@6Ne1+2s4< zK2P$@d(WIXbK0DlJA3OU^tT!F-*pS-3(r-xn7caY0iMfV#%N!Gg5epw6&&N4_9{5W zbHQt1?)A)=yYP&91H|wgzYXHWGxtp>8=jK4FlBE;AMlKR2lI_*{=2YyJj=GDpL$Fi zp3x0UGjT!@e)~O$3eU;!gAkqt|ASOMfb+pK>O;&So@+kB$UcTb;+gvih~gRhDG1>S ze1>*Bf8sgibI`<-{{^Igr}vl89XxyRoW27li|3F=yoV=sX%mzI&#!nEe3cpVE}lca zMkAh{-(YU>{E6q>Zy`cF^S=XeJo(>4tMT;z0ak#g!;g>*p0DuC_z7MS&)A)qHay9@ z&r{uibMPtqPp0?!^iXZ{TzfM@bQm_j_m{{;q5!hcX`Jiq^k`9Etf z<`qxjKDbRhqxNI;co5-ZZpV}A$-MbGk1p=0iNw{OB0Z(4?%GTk*v908@BA z#xp4y@8Rj4k`;3uo4_qiW#ERSFyNYcu_bL%{59!fKWZxN|A{ys(>LK#i#Ak?=M|bHY zwj31?QLT#aAf8wgKT2e*0s;Kx6>H{p3W~z9-MWa9#P}p}SLdW|mG{KQi}^<TjAEZj6ZVUzSvOHxu+<5Abq&FrMX97BPQzC`!*KbntbQ1$esH+-)5$Y|GrP| z-l5OEBhL`se@L$BFgT{iHKO6CK1~G2Y7R*p#4H z@mF#WIj{pkxg%c7dtr#kXx1rXNI{WzS(?Hf4qPXUYiV=xNs->y-q>3Wdm5TMtL79@ zvMM2A_2L(MiHBAMG9%y(xSvT3e63fK?D%}V(FJeRv?O02!PGWoD1rx}xvOf<6p5P? zyNIe^lQm*xu|Wkq7(lNArij`R-k=!rn+_~ljN$H>meM1E<}n-S1UzEq=EMxKFDXS6 zC4LA(k<0<08)QdEDC+b8->MbsiOJ! zWHs{R@k%0Cs2}MaD4NglXNZ!dlpZdHGGFmIugvuIZ(lEd^~$vNp_3GPkZ2Zx$&o3k zH}s_kfb0HBKGMNdHuXsr_1@lUd3P|0G|? zSzvTi6{P=aUqiC+<$8OG&*P)gOp}bv61Q~JVTKrbf^O#CL<-|kV8eA_0j>czi z1?eZ&-UtCSzm_c4dQyf)8Cajt3#$_wQpCzv65AYD-*6B4Q-jn)53&E>j3K5& z5~bTvzT4XN2s0$MpU55;o4o4H_RStLaL}J6CMM{THZ&tk!upH+(cbK~Ca<4jV|D&p zIc-f~e?UE3lSSdw*bbuc)wYK?Ao4<@9Ovr!Z})CXLkEUlDjVa?Yipo`A|3P-wecwv zBXeU2WpD_aU*YQqKCE-uF-2MJ*)Xpmz&E@*$52$|7Ec9YDAdE>C8fU{n#kFfm~1z} z$Q#4d8w143G2Z0W_4U1t0Y9p++1sse&@0`-_s>0`4ru zq>X^Ly6(evl165+I`gAJ6nnHFYZ67I7wdf~Go49~3|@w88vHmst3DpsCM_fbqRwxn z|=t&4Y#EV3^x%Smyh=j7qeRQ1jUp{ z9)P9E`Y4buBZ)~4O*33TOuoVd#J@=?10tepyd;#vV3aWhz_g6_jv!Ugra)@Jj!_|E z(3hA=0D1x`QzLZBazg19Xv7?f0gm|W02diHw#gDQMC1ok`bVhL-rYxu6UrMi1)Wp} z^-ko-=N%bh1SDb(1DS%)$5!STstc?l1zuyO0#@_+Xq$>N0U&7wxuL|Bq1<3isu!_# z1RgPQdt!gr5Hq%=C=eV|45hdP>ggV&t}{r~MRBi`Oi_4k%J7IFq{z2V42=}#9)kr1 z0jIbyEHB4eV)gnjhq#zxY3d9KNq4bCQzHjQ$?;4)tC#K=W|J08kRydc1X*_bO$x0v{kR*-%+VKDuh6$WzkVH$P}Fqs)CSwt+&l`Jzoo2`Jl zGV5!FV2aSc=s4&^q`s1s^F@A3@S&S5AX@#uP)C! z$~qsqE}f`=gKcC@8$Jm~;&&i!Uk zE3{n8sksW>$Hpe9gVZl_N0jRe|NDu@; z()~g$=3C+@-kh%ERvwcw(B&JL|2TtWImz48rl91uWVj=@btZtBLsRl1#H9W%9U9VK z~5ADn=76F|3 z;~*PRW@qQ3_uLUFTGff9Etw-}FGh3Sh?MCOxkx=^4!8uEyhFW1xQ~-KmYbC-TptpP zrimF3hGG^n(U|kX7_QQ0r{~l7cDC8)1ripu%L_vg-lHl0i@;jxWN(&OnU~VbmM&+3Ed5dd%MVEDY3o{whAI7J3atfAQY5z`yh@?_+FUakgY=MO3|He>-O${ZreS1+Jx4hu5D7gFn}>j09F&tt3>HT* z*D8!Od$+e`gSn36*4)mqTra`ap|CXV2I_r%3#4fJ`uuZ3SuHZ`m>Yr1{T1stHe_iX zEYZ11;N*#z-y0d=yPc8Q@YTCY0q0qbUiCdbiN<>VKpBMKdfmnJWMh zg`Xu3HCYY{W=|^t+&vYmKZ~qbCRc$@tA8J1cIvp(RT9y5-n%-41iQ$v9q8TkWBU33P#Hy20HC8MOs8kNi z8Ej0(i1Z`82Z}+=E^l4om6Xs#j*&dzC_K2{$CKBuWYA z+AuMjL)KI7YK$QFpLQl+_e!ue`J!@&lnWN{G567M*Z(8ez;3xnts@UD(Nt%+ACK7o zW#T}0cA@k605H3cNQsocr3OhFlp{TeXVrf)FuT_&jz&r_rAQA+Fjfv`hQt=e52Mez zBfS}`^ZpBnLoP9<7`mw>PRrv*0QMi1GTY+FrM;3Pe-vUV+MDk3L~L#On1mn)Hyx=X zIZ2Ns_c;2@oskkXA6cg`1rffOr96S=#-qG#d*t4TXUK8FsPX6bb(b0E(v3_^&d#-jV^7icuGo^+RpB}JBW zzo>vw%N{RRjjn3Mgc!eDdM6sf7XZ-vp8DRpQ| zYoj>wHlE5Z9ywOq8c6~V2I!qI(82^Ox4o-?GWpW77N$+x!DIFOc4$+*0%|cy#u}zW z4Pj!@1}q&q4fs8vGrM|5BIk3*O~&H;z?FCP$fAxL$V}*e0M?zNXFAOLe}Lu+ucvMA z|Dgg#O~^kA6XO~sr9{yRa?K_3hYHf_O@6lYG7H&vG9>)S?}8fxn08SOmxH z=nnu}0-mCpDGT zng0pXwv1oWW{a_ZX|Ah(NgT-Mng!ASLKs;G*GsSZ&fQ)I#62^!kbUT^;Dq*C$bO*9 zFKyLAa8{6rxp!I2_~QZ4e|btjm*-(t6ss`q4RSVXabY@qgv^b004DPaR*5in_2Pl4 zxk68~n2f}w0c=?sU7B8ni7L&6 zFdg2ZqoU5Lw;O<-a=oI+M;0fc_G^UL~VDhfhrSFVT3S=|{l1c)}$@0iKu&lEp>*=%*5+!C?_i_W*-n4;AXoZ-mM zsdSi5)S7-z>}Sg35(US)cQ}nrEAos7ViaAPQS`&Rxu$30!Cs2Mu$K$yt{=a=Zmr~3C{(548gY#^`yFJHr^KU07C&98v^yREu9>i zQU{3Uff$uvV8t@87;8H0k7%BStvL=-K&>#qRAd~QR}`b>iU6RIFs=Sz;xGSi2*&V^ z5jQrTKuyEj>&6ao;5KX5B|ag9Oc#T`O3}UokSf9USSMmYnQL?dV&lz2bI}Nd6@CPT zxt4r|!A!8jCoDlP0H*pBZ=1)6CIOdwm%dkE&gG$smi73MIl#$47oQrvR6PZly1Vu4 zlnwAOMZ#+HEMuHXbnc0sF&+*~QI(z)Fo$-8BH@nX)QvQdJSg)tnq6P6C&x7_Op%WS zp}brV4)d7>eRIWj6wphmqnECyD~!E#ZDhtXfL?L0K2GKyXQFxif_5x*3&TLJU1pY4 z1mMWiaGIT~DwFQf3geb8Q`K3(6g;4NWo8k_sAl*_vw$zPkAj_?D%v)hO;hFBmnb(# zHHX0t02~_v$q1!8d3_h{IP|-IjHjL3ea8d6;~{ryz!X2M&pDIBiK@Bn1B54q zfvrh|Ih>P$E`K!oPR<;Kv1MV>qf-_(moSeZPqO$z#~n*FC1LXvT1$V-xtdSYP<;^U zO=ftM6Pg1;#UYUOw1z3;Q_yeSL2XxsPX(@GU8_pBK#{R39W$%b0IYgKpHn$bwum`h zVXzm>{53O_Gk{sYUJnaWru1EylUJRoFxI?E_R2Dag(SHA@t$baiL(f^a=gcOu2^qVFgo*7m!iv-=UO$L%g~&A zHZnGzhnex?asc-~uM3P>))i=8e|9?p))ED@)@B*SD*^ORGS>fcnwY^ZRX{66Hce#! z7Ee;r)q;(r$W|5Q3TUhYR2Qb-Y>u+uqi?2Egr`^<2yJn%4s3pX_Pp z0oUt*E}iT#PPppZs@DTku*mB^@?=Wp1_g9WMgmzJyODaW(>)|h6K+z?QA=4jhcVp6 zn0+k+(6cqVJ6j&c@ZiOK+ARvBMM2Y@tpH~KR&23zI?Si7RG0~o&1IA43hL`{Pt*f0 zs}x2a=W(wKS;o6sdV|hBTgEG$%Rz81w}wE{ooTL?Hqs=h0HE6lwB-oTVAuH8KGIWx zP6Vhj1Ugb&dQeYo`NU>efcb_ubVX*ezFjrDS4AvGzk@K_qOW$=D2#Qr!;Jq<0P{<{ zt<_(o1SloFiw5UEDtel8cL-!pb9BqP2i@i#)efIirGReBVnJ)IC#JI0D`(lQ4^qQe z^s1I%Yw%)3??uNI)75IJZL0Svw3RHA_x%87*S8}kKA?bFOl0gmh~}DlJ?@x8eF&JA z86GQBET%jR;FagKBT7A@fS_nD4~e2wm+?@SM@bXv6MU_Hg(5Q@s$4z>lH1S2H~MXn ze4I#D6rsGweT*D8E8MONA!YP-&mEhMC(wEM2kn@R^$MuX2FoTkpn22z2zX%4UH)d~ zUjyLs4|Vfr{5*+f|3`XOB1gxf@KeAvoloC;utc0q=+nTAyr3Q5BtD~n?yR2qn`eQk zImXk@HRMKxcApt#+VLDs(8$^9IEy>wU{m>g2r1Vvns;V?{sjUx&W>K$coBRh9&4{` zm_mLD=%&xxyH4Ds&{~8vDQ*U)r+jcq6+GwF=l% ztUt~ZFSdBGx5N)@$S}>ehU>zwSWYXi`wBH*WIw^?WC-%RE2^b# z#U#=9Sw(wsfX)_c&{m-HGz}^Vkz>HA83giBU#9SS`NgbYqWS!U8nXSI1Fl}$pz8xmU4WG&59bjs{ZO8YU?<%0S zjwMGV{r5P`)^;+f+&StLP1J8y>K!C^%dA$_5CT~f11634z*o_ns2d>fD@fa4LHsWa zPcj-3464EbJvpXSWtb7SfQLzflQKR1u1vFOG zaDP(sC?9VmRVfYl`q*qAl2l0A#cOhqmZ&QynO#WqRR}KE4Vq=MSobwJtT+Wx0_9-$ zG@5$zjY38LiXnE(MJ0aeodIb?8dA!yx8=0G#(<$_WuiC<85hxg(8XGBE#=F>E*s3rdSG zaN@FrPXPSC5PYO76Je6vi+*#@Rx4i1+yv!)XO1%LQ)n6Cbnl|CdiMjV*>PQ5 zX(t-a_C&n`#G^3oJ3ypnu{ zx}v$E%s5ZToQxNk-DTcr2Q(4@*%2Smj;Bgan0x6)WENvJU|IFD&Ef6Bn>ruh8?EcLh(B9`$a0psry(8_r%gX|Fti!46RBbSZZ;UGsA z(imw^E;)phOGfu3n!KeDZ{C2LHx|YNVNCOd-i~6|c^Zu@63%tDu(=DK}V|LXWnDPsvcGX8gqIT66n9K{|;w)49{S zF(zfOGeTUcs-(IIT}@Pwa;H_W94HUX)nzz!xBmujCvoY#wAR8&z5=%HR9T)@0CZCs z_96KJBvyNv1WayLpdi8-Thtti=7w@Ce4q)oNb5N8$qH!AI-Kc|ahX<(Qz$Oi4Dv-i z*>YG2)OKZODmtGzAmBc@F8gI`qQezX%hH%RAA#n&t5sfMP0N{Yn5NLSarPH!9MGr0yDSip!V}1D>d08QJbMKM%kTw2lERv0jwAj7}};w zC{#f0HUh>}QJ9V;elROP8o=u7qOU<_0aGwcPjF@Ypsz2byz()^V@O_gLm@AVGozg> ziKK6iXFEuXBQv$~*brRaIiN2w^o7=O;IMRr&Y>j4Qt;yy28zq}Q2>mrE=~Z(v%I|* z0iCGO)}u|#U{3Cv`(DStQ%EECw&R2L$@tbizqNq>)exa*9H`&60V~ zQ^OQ3dd+hD1puzQ1$U}hGF>(|rvbQSbaa`Xt}t%ZVQ%USVDeXZ+qr9Yrb4^jlw(&? zDESb|LI8_y@r<&pcbTZqQaD`ZYVJrn(=Msfw4WVDTf`{Q%t4<6bosbIJ3n4r6h>P( zF?0NL6+AD+UWRv2Nb2_3ql}k$8y%$2lN+0DvMX43cyK%!-%iCNMTyPi-pbM#Xy%%~eO*bzU49`Kql(9%6iDy{{vVoLN(=Q@S4W;#s8uLrRDuze?{Cm^1bwA`la5|}&Uf49XiazQu0D16F(X$70NmF$(qJF$>u zt3u0t=M~{s=D&lapgs!+4%%gItK9Fk-PLOKN;~cOR)y9s@?$D-8#UjJ)fG2o7O5*0 z#`?_*i>U&@rYcWB6!z-m6(utR?z`gH>h^XwI^Jf_tb;q8SA-WozSN$`y+(Tlzn-Ko z?ggWLrvkP!A-GGSvCYsr#k+y2INGJWt{=U*M`5f-(AY#(0obw@Kd;1>!EB<|Dhzx# zGY7VQsRpKKc3=>tm|AMU`np$P^gC;H$8aB-n`Y}}3HA#?_oKP|0eokeaX$*=yc_vz zK8crxe$D3y#G3~g+NFiMFMm)2T2B$MJ+X&?&czRzX%zuu?f9_547Vwg>53i+qb**a zb^WMf^q|&)4qLxIroipw;qfrq!UOveq;&vRpA?uA8NT^DN>2dOum;CMEq26IW_=iF z>D8Rj4M5l2i4Vs3%$H5hRB?GKCcQ>s#<`W5rik59^kkSA*J!iXrvR**7l_*H(+Z>g zaFm>7*5NZ@I=n+>9?t@^=`L?nQ``v5&v$vPK2!F}j&nT+wC5BfQD7^%=M@IIlr`yb z)kR)V=oFFPGd4-Ayjz9(wxjop>^(d%G6Rp7qfKS)IaICxsDv8Nl*0T4m)GH2cqNm6ffko1oZmX5f&B1u|Ft zY8aEhFfdxf7#8pvfHeylD|&_Fbu<^8rLV?Koqj`+zz+zX6^Q&!k6=0NwlJpT?7%?| zKUDsfYeBl0>rGmcPX*n6Gj|9FR4?mU{n zoc|KtdC*xES-+&SDqn#R)jD&tg5w;QAlORjYfz}Zv>kgE-zcEAXJO96x4^W#hLhKmB4*=G@grjEs zatDU_5t!mD^fMi-`6oppRs42EU_fL946`$g$(icwAO^hDOWP(h&1)CX)thigaMu#+ z%^0$7L!V;*tbl1^!Ic5+Cp&15Pih90{C*+LSg{!r_N@qLI>btTyF(!CDEf@jmt)&f zN$6;Bb4W>Aws-C!zFZp6^jCuEfPe(c1A#htei`FI*SueKTw|F&AgK+k+W8wXyl)Fm zGt_QDx-zT)T=R4O6hx#D=$eP$L+~8&Vs_Atl);mgUH*VvN7Uk$sNUH@E$Fe@`Jce7 zsHKB&tw@Zyguj5^UW+L$yIP-8(;oH!xZ`U5G?r-!e=AH+v9`|BmC|X$;Po}sKVkI# zYXajV`pMS8{{mBe9ZY)dgWhf=BTYZqI`6+Qu<;>WLUsL~G`BF#5$#p4XkLJIy${WO zAI6G=_sUi_`xOR1=lL+sqwl_6|7ll8H=Jr_Ok9k3;$d7<0+-Uur4?-Z+oOQ48(CQX z6B`FTOFRlVLgmv;H+~Sk73c^CC5!{ft0o0M{+km&}Y#7c{3o z>OFvdPS-ut4A>RGA_DSp$qw17#|xl;8w_FXqh3F;=hj_wJ`=*Pa0h16?xuhvZDg6w zbqBC?8$OK!x0e3Ze9>w8L^-K%f?f1&)Q2etCch!4myR3yLhzB|@Cse-)VT!F)~=sG zb#KDESbAqdO#+*{-^46(p+Z8D4UQhbBtDKUJPU)4FP5f3zBpN-QN(Azj0j*Pg-QV? z`*9rj+_hRCgGnp^;Pl6_Be1Xa-!cvYv*>YbYycBg(y1hsmbYmwXZlm~7m3qAx8b(H z*%AFWF+CLqKXlygUoGy1S29I(vb`0i?cXZy17PXx`ijxi?Y_Wxp1_Ay8F%QyHi78? zF1;h5m2^!^26b2u5w=21svzz6WRkF(>pcT)NVbZ|0!ja!dN`tOD@lkhq39=dxyUz6 z)K?jn#C&ak5UOjyW}T~cs{feL0ALc|LrAp{lcQxh`9Pr4@75O>>}1j)G*{mp(7r=p z{0v5O<~{nrWDjicLx9PBA5yaL!-x$9u>5@t4nSLwkoHGGVi8=+ipDHwln&u! z(~NGIg(E7KK|3OnvZRafl#!x#d7WDLwjH=^!ONQMWKQSu}ryMAjm7DLG0eJs{Db9pjWNxAl1-jue-4IO7WMD=-h5dXBMMr2(n4bc4 z;Zumrd`?&~@-SdZo%KtZZjl5t z*BK##{*sQVBIj-V>P<#oN>U^RVLCaJbaMUi_++ycvU0Y_3lyUN;wSZktQboqA1gw0 znvevd`Jxgm_jK-CcvIdfFaIxZyWf*I-fF7#VN(B{~W2mS5OAdli>XNr6R zFfGsOifj(%L>kO3O~zmtp_4#peUlOH!Bxc3oD9soXK_fX!%PR-9*MlT<2=xmRWl- zUP*t^uy*!M@hK$3x|0l-&9wSd5X$`qw;u4(IHHm2MH$8dqE_{dlD1oQn2wzWl6^L{ zn(>{E=DRoPGIpll$`mHV-i1_OZ(OmSSF{O?o$%&#g?jmBpVXjZ6 zW}4%4kaCU)c`-;f{AlF4Oyw>CrusFVD`p&*qB-{kEX3^+2+HqvC2N!~Uq-CWn`f9X z^(a9!wU-mfv$NH#%XKdB3UILE1$zoZtV+6cgn9|lt=Op|yjy`;%6cV8*6j3H6KzU@ zr54i7kxN06)VBDp#N_|S5~YlUw#&#{STHCDCi_L>QbcDGo$0=chP86OZMq}Mb2X?f zei6YwigURJnB^~`(E^Bj;=N=L|l*NZtq%a7*e=YO}HT> z-12ICpf&#w;9T4^v!6Vx7(h{Na2$dr0^+8 zSw`K~hu|7-Or4g4WXo>5Iyv(xhfPL#OK8{)jU7`c8`L&n7^5pdHS@hz!_rC`=6m`u zO|M%K>dJF4wsFSa9T*bHIVE4rf3BjTmbIv1=tI>@EvwOMRf|19F(bc~s1==RPh;6a z^EMji2l_S{30KYlWx16^sQg#u7u^#ths?4aK@9$CWIGbb)>^ld{65t6n`zMrj>}`=KoN0qUpaPuy!^@qlb}4}y@dw!NJJje3>;r49v`0dmMG@+RO`ZT|WL+Eip<^NIfu8e~q4SL524I>@4B3UFz%?|*)&Ho_>sDZ9 zyibB!Z5`q-pEPqWo&wPSZxmBwx#iQuK*^c*+|r3Ja@-VOo&oXFZw+a)aX$;pjF;__ zB=whrr`w)3Qs2Lv>61%6_u!pCB>Sd7^c?8!|4uhymQFoS)bbYkWWmHrjYY~A2tH#k z0xPf7GoinTE*I}LyehNtmw@s7sN1-l6DE>PgxP0zsI0@y02b{tI%KA~1(>RR_Kbi@ zq?U%5xZj>&vTo}@GJC(#EsKyZ6SeC7_B5DLdj-@snbe#RE@za|@2voi+-lVCOtpJ8 zF6OqPShvGsarZT_cUxVo%qZQn&*tlO(Ap7e&7~Rc4KVk_R(!)}alXz_q%PA?wvlvh z@qjK@CmY%j8tr;-Y$m;n6P^;?@Yh69F6!1d;m%L`*YcL)1M?e?F$69OJ z%)&k1anvSyCxSDkpi)PYIsiF}Cd$_-EkN|GH81F_r3b0Qc|F zmCD3?0nF0Bbqq^dz9bTV>;7EIjxs@K&9wuZQ(o3`0B#})@40bpz~OMLfSd@`2&$fc z^$6wYmV;>`OlQNNkTOV_QF-Yrl3D3u`vQ)i69l!Y&aoq0k(pW1H$<&|v3&!Xxt(u8 zt$MGn(oAUIp}FD>d#1`Rf6ZZ>%yS>pTZZ}Qb(geHvGv(L} zl6i6Z7)-Nh0j4f4sO{LBbbbY`+$GYqOk|Zlk{|(?for2n_Y#M~Kl=~+%*wR5=1Fdd)vN!$>y)nOIymj#hUL!%` zKN@tGpmspT;n4B7duh;D_zZtbS(4o(j(DTAyFO3M_B#>59)|5Zl9x(O zRlm*(h@JFzygghl-b8l+IyX7i*q_rsG3*M=3SUsW0#VXo#^42}?j8KLwq>=)fCsuYHq(`nMeVI1&LYez%pKbsgvfuqGIrD(Y8s?kY-_ z_P}9;@9c*WaM)3)(Ikl8AAS!XTPBOdV61i4<@rcuZlUPqsh-q##-;Y0hAs4a5whq~ zJD1EM^hW3P_1<9Rt=$qu-rf3#1`O9n;jE5>0sDps3SWaVU$^68{xBWr#l2%O_BDNz z93|EAO@_`;Xt^@dG2w59luW0?SY`UJJhY}l#&EE3QBKCwA2X|vAyfyRnHDi6^+ z)4!wXA0iYK^3$!tWTinGT&e`C%nktE+;k&|vxqy8`tECAYO+P!AY!2WaxB`StbzxF zT1`e!yU@&upi*MAVi^KVcBUTV9nPIFH(&K8?89tCvO07J$k6)9ud2S0$unVA(kpp}Eo*iY5rqX}Nx3Y@Vz2Aya8 z53E9dZrMmy*`jVNu{y|5QrZuaDnk{R1A)mLtf$qiD0L8;s|V{V2bLm_1Lu??H*Jp# zh?3jWI^h04gec3*N$%KA)WJ0BqARhB{P1tdnz69~k4OIn{bT!zykYuRCk{1d9ET92 zL-lbmIumG^!}M7*NlXN0;s>a!p)dF63?@1c=(&XE$Eg8Sp_oqN<^yx(2kyi2>;}mK zK7f7?j0_e>b^+NpI+IoND6xBV zQ2(TEWEytlpAKEaFava^0GK;C7FTNzip6Q6k%q$gy7yGQ9tHGa3O!L|AERFy%!V)( zm>Qy3f08~-_CfFA3WHQ|c2N5sjb%7T08>6Bb~Mp(TY-$sEI*j0(5O$%4!S?mFt0#3 z66lHpg7|5XRz}S(b~s9*wL2xudkCfjQ!p%cJc&?Kb9Vc|3}EU;2P5|oFddnR*4*K- zW5k97H45^(#`-Zq^n1e##ibh}w-+YcgLzJ8v%;4WQnQs)SH;!wI^3h?+Wsjt_ zkMgYW8!Hpy`iZhJLG9ufIY)HogH01H0zP7uE0p!S`j@4k>h%?9Rpg_+8Q zB+O4rPEf#pBIA(Y;gKQKe;wlNSP(lgjA_1>c0x^+G|8SsujB>$iw(yG$GA@HG1@1G zfhD6+lY+9ijl-lpN4+wU#&3M+tn)or0T)JwWfGf5n9s07S~V%QSDO^)JLuxzXxFgV ztQP~=R1lnGqsV6c6a`!qjmJ}gDW4qdx4QAwWKlmcsNJ-{WVt}c9x+Y3Rcul4Ub=HZXNZ z1XD%hgxH}rifo$B(a@vYr>2Y4D{Tw-Tm_6O;Kd5l4?hAH9P3g%CfkxQaPerQa_zFG z((o&V%c%z5#^jwBMwcBG)MRTa*!dyg>ioB&YV8F&j%zKOunU1Jnh{(anNK!D7pZ2e z`!t!m80d;w!G2=@$%zdb zCj^gY#DJI zfGcKW8Da743|I-^hF#vafdatN1wrjbaiSx$T&m38uCiQFl!TwL<7qCt(BKY`sX0Ej zhsYa`Z_!GAMpe8^EEJPDGx zW^Y$oA8Yqhuzsu2Z_6*Zrj4(&B}rBbzZbyF-MF#Nve;%6?*nk=?sibTAHb#Uq4)q% zJUO;)9v@V|0nVu1%1(?*A<-Qt50Q{&%t5uZt+780x=ZFj_?EGwwx(hW?e#wbV9mL@ zGc)Uhk17m~P?#$nQX6R-boa$$$~IOveTq8Vx28wIU4e2eQ-OV)#*%Tj?;uy4lJm&c z{_D_vdW(0I&BU3>Jpo{0i}w&~%0{J;yvstRk;B2jdWFuxeJw^wft8;(0Jvp7%Fk@& zE|?0{0F!%uP%{QoAD;xK?);#3)2}(!r+{fHj~q$B0KpB_a4uA?UQf=sm?w(g_BRm^W zW%I4U9)!i2)0q8^DIMX$y;0O{K48o7(RvU^?-rWl~JW?*dbP z4mR+iB3isRwPQPgJI;w6Y11Xk2&N``if8x(MWi#?}nC!W7Y)0h5$ zPcrG&JPBuc;rpPQex0U%%-j7Bt=W5Ubs`fAL8Or%3dTM_e|dSMMdqit>CJaQrw(F% z_XNL7Ld>8)q%KQvUV$qilgmfIEWSZ^>x{(5XfFPnu6AKwn34Ddn2H;960G@CG-uwV zH#@SFLMI3I889_Bxs2SESbq-8FMoRvbd6XNWA6J40GFR2FX4N@o;&;%*FFl`*mzaeUb}+Cpgv_+rBa0+W;MsGFD{@A>+*d@X{9(J7 zV}!m2q0AL7LO5KEOw^I~HwuH&otYOfGyE37E&tNy5u1IMJA9`w?%aVf^*t~}6$Vo* zm;C{l9Sp-*`4P>FRz=s4pMY7hIyj88%j|5Yf@r^l#(LR>=JmG*qYn6Ih0%^xF%rL^ zIq_1%buqozP19L*sY`GZMC4esnW15CfHwrDHSf^M|$`T%@wx? z2b0j;$&P7Tzbmvm3uN~92QZm;=u9zX_!G@Fcj)}EA^nBsyfymUk_$GZJ-}>Vqmy7x z>u+ja65a3p1I+F_jc#bWM;iKMxQ2geno6(4j+VvH!BxaQ{|h09*i4F$()K8x??u1< zrS07m+^5jicy3P4exRq9wIgqhiI+fY-paW309aGjUT$L*x^-?@K#Wu99%4f^O7hIZ zFq7?|;U+s-FoVPcl6!AZvudUf9aXcO94+HuTcn++m#brkw`vCL^83yTJ=T_Xm_>;$ zK$qVi)b6xryQ*E$oOuoMY8Lwi!+3%5UmH8lmcB5lCMe(t7cu6dx&hPlAoHbqCf8jx z%b=x+iy3huFg4fFp(Zl~O2uRW$EVQNfMcTlK>Huj*<-0|l4{PfnHrn+9suUvfPH+P zL^5xa42v^Xke4%q+} ztwsO3J(Y&&2 zLfd9NMgiMi*^dSAo!bm0AU`VYmg=?#()`b@Q~^O#NI4xiJS2l8UL1z-NU$F)?5u3^z=bR4($+|V|u%yWVX5MMHBsStH05-kas`EKaHCuxQTX0MT z@b0_X5gQLzKx=GdoE-t6=Weya*OgR{Y14qIenVF~DPk5bjs&J|ThwrIl!8RUg$n*e zMr!30%+&OdR@SZU21jy>vF(74BU#7{5cDM`*tP*#2$>0-|LtJZNK~jWk)1+Dp$M%r z*SZhG)5=rS>-Fk_V3-p>d zNkbB&_10`6w&Gs37<4;e**CL^V?%JOO)wQX4rAJKuVJn%R2&aXMZNB-ozcpH&}dHx z4aDg_+_L1C zN_BHW{5BknFWVCDqWqEFAIXF?7Xm0qN{CudnWr%B0us@Y>`|$FKCw6dLHHDeaZM#C z4oDFF&`5Czl;K+Ym>%>LbXk{#B!mx^b$KdLJNF^w#`G>p%B)PVfROjR;*-gUds0}y zIE|3`4emIK7uz5a%=q5g5_2kTA&jeXta`fzLp~ASbFTU}1 z7BCf`wpx}t8_ng9Dt5T&B8GVm@tpZsdsTT+2yRtn$WM6&viNg>qsxigO<~CWC1~34v-KkFI#7A&^_~m?@kGnbf63UnZTeFz$%wD6mv@N&zlFkCm_c z2D|i#b$B6&+#5C=Mk2IgvD5}&r#Or-MBP_CgtZ+O}; z9Mg+k3u-%_wtF!)Ki2^`{U^N|OQVxLQgphWdi1|#L?@QbeC2mDnwR!Wu&bHwFO_tZ`U zNzT}+>6ZAI%3cZX>JuCP3eYOrt&bmMB5C1DH0M6w-coJ_(521#gfQQ-3eBDtEpum4 zW;I$HUWi`fxD}YpUybRYuqG`aAJcwY*aC)k#r5pJ>SrLBv#2EXSo|)odFDkGM~qUD zDA^Jrq&u}_nsPf>EB;+)jp^zgs#yji&EJ?#dX3cD?S_|j*plvv*t!!WD>fO+LkVOO zxho`*x_P*%3FnVAcR;C-D1;7cBMw!o3N6c9=L{?K@f z7N96l{|XK=X-Q9ry7T^s z!dSx^tED^&U}i=uwUqF*Nh_fg|1peLl)s0Q4XqT-B$A3&kB5*lV{w1ACdIPI;E>ek!_uI@EpfQXIj?>goVz!%O~r zp%gr+dBAYiA|NR@$~JbY0#yB)6NjKa4R$`p+EB@&A7L*H0#%q%u-0pZH`B$kX>os`U=2l?=32;4H{{Ixk9-{DnxM6{3Y;4W> zfd(AtUU*W_qVzzjAw~2LX=chlL)FlXs%b(w~XW2K6psK@dz z)T+!<2#-|ec7~9$nBblg79Mt?-{O9$+EF;h|IcXd_NBo;X{Xd;s^k9>*5VsF;9{E> zRb9m0DVx;YpjtH`wVfw*niX2#UePykTF|_7L_*uAmVZ@1_o-#J_4*qy4I>g{k=i{3 z76^Y=Kv^$zXU)vJ`~hIm$msR+KNTiwnEwlyMMHFLWb?R3HM_z*ixqzZ(lFB4aA)KH z2bk(%$bu|}&&L0+0&0nXv_@L$N*9<9#rO}Hny>A(BcPQA$rE)U4Qe{IgRR~x36ja} z1Hnz%Mh%eZ)_!1q&Q7rA>1MQx=?FhCQjd0wm`62_wD}X}RAT|m%}JG)@O2gYMx?rS zo!LahDX^~46bo4$t3#OJj{1b|V%H_Ol!5)OG$R-v2G`!|_3=Q$a2>Ja$0EmIs@2{+iJ2D0d`Ro@zW=F;o`UY1N2&`R39dSu0YrQ zXcV<2ka>MCfE8m?1ER23CvWBVb_Zm>mJog|=X+cYWQkqoE8W7cWc2Rj6*+4Wz%2V` z=6l`Mdr@aR5txDl5~9}deZUmAgm3DrzZd;CADQa@f>!p=MCmu*v#fRSp}Cr?B1~#h z_!V64mn!xz3662;%8LEHm8s7Jx(7q^RWG}}Cpiqn-G8{L?{@uK43>hVFd$$0GKv8L zj!&HzVUN)Xs^(EP6K;GrbmdDShLEZ{Oc%{-U_=-&_UYNSsI(AvaZwt3#i9xF6(*>j z>XialiVL6;J>9F+OJT+k%UXtO66>viD1Xs~giFUJ1f!Ad!_ZsCCRjHxnBMfoD@FOK z`e$G;e3=4~;iq>*LQ?TN?jD{0T8FMkMHNYR;H3GG?@)CnBlOOAo5fMKD3Mcv%p~Nw zyX+rdGB&foX2BnJPr-ow2zaP#JTA}MUl9w6lJ#&>T$N4B8bA^{$h2Dh)4_olh}<}; z!S6`8c7XJc?goL@=7XYyuEa}2pN1X*@eBsK<*!&NM=kwiwlM^l>~RSbt+Lj;9tz;R zzu{Q&|Bki#LKYT>DYP}lvh;B{fE9=9X*SC?MxZ(K2tD~^ImSrUY|XLQ`Y0Q~xd*qm z`jrE8-84OuVoc?tx#r(iYF_#Wc%uL;KB^tL(g6yn9jOG2$+I>=1Ni*z&K#m&un%24n}kOAvnfp`68Rm z^LPO33iYBA)j%aHR0BOkHRE^2%rCoH4m<(C?L|62jLt+f?>IWO&u#1DyyB;&#+8q< z)W`0e%u{b@x0y3D$VYR@1gt#5_ZqkzpP2|0s8`0iu1jFUm;}u7WAtG#{X7)S)w7{? zmiv^LSSKr>rgo0|l54jqknNO^YpQz)S3QRBf6$cBc|*S?*ZaG$Wp=`M`70pe@ zrDnP=Wncq5Tw$~|r|gEEhdF|r|Mm`XZJ*+r25S2|#90qX(0X3R6WS9wl1Ns>E2Mj> zXb=)fCDo${*&H8dJF6rGL1!hVqu;6%^=Xo$pf06&smmE5@z%VBJvn|42b0=N&?-0? zQscEWCbdF^aZ8PDuoVHbyA!U#+t3LKKEHo~b$GM_j%f4hg;@YrcaG~Xy39=-5J|C^ zVI89|gT*tIY1$Szy9{zRFfDWSEUo0m3>>4FmzpHSehH*?EQ!7NFW*A(*F3#!ZX%Bh zAqR-Yu5pub@j-O>@eW+xD!3sbu9uiMDWOZ7{hZ*uh|2{hiDX^e%vYFn(ew1w{;lXjF)*IV z3G!Hz+s4dZPa*Uft$O}b(OlRHF;f-`fKEKqEemO{^dk$Wp}FGB)Tlq}a5^ylg*pkz zGrN%a3}C*PjFTZ%2kLX<0Oc&w&o7)w!mshe8rwoHB;;NbX^!zMbe^6BlJgr+5sx$TMi~>uiwB%bR!L>fFyVMD5wB+OI;gAaM=|uAGA1R}gg17rO&_5rB`Kld9d( zEV*M>{GJO;Q4eU_ie<)yNI)wEr|W7L(||Ys=j-bl2UE8aQ1c%~-(9RQSTiM43Up>N zBvX5dE*WMH=TW!0d+`%wU{Lc^^usJta`Xd{=Z7Wd|0*bYuS|9Sx;kX7212>X1w?Vl zUfjTEkstd}!V3wxC=ka(p+YkP-|rOMHe zr7i_#{e`+%*kH@hoO_WmSat<_IWR?sC-kAQYKAGL!fqzNilmZ}7S~%8UaTXT>R(L^ zU99^mN4%1067My@WM7gxKH`XTzRkpa-^rnC0tNwdEif;p#ihB7!r@91qx;;i1F$6x zrxY!g%d(K`0n9uip|=>(D=ty|bh$nRDOeU&ZcykUV#Z}Ukn&lnbaVjaMiPj>SKKh7 z=5|5kt0a=Psc!=EwkE%%W&rh-(9P&}%jJ4%=CCG-k%L@D-R67zgI&Bar?(u08m`ct z9=o&r7Bp{Pl8PU$U&2b6_!$`~S^6276$+!RA*A$~-&_ey(KPH4Sd@nWD*!AdAlDs} z;wk_u2*~3Ev%1y5)J#jj_4lTKmGWX%cPr2{%XA}P8haa>m-LN;vo<{kiB!sc2;@;o za(^?{-&2&7>pH=lr65pdI-KQ({f163mvuWKi__tM*R<>&aY`88JKP2^bs{7Yh*d}PT0&1tCSmotj zG*@K7nO&I`mn^RQ(wHpSHB+Sf)GLF;JDxOmrYzBH*6s(o^akBE(+o)Kq8WGq&Ds4_ zz|scHRP#Y1aii``*$=TjgyxnTQwt(~l=bj1nit>XYF0l}FS($fHh2V>y#C00p!^ya z&S<1+QJ{I06lQ&YWGNP#V@y8=k`4XIo=oFp>_1NYEz|j9bk?Ey=Vkif$%9FT$U8kj z4Al>SRiGb@b?H&qN@G0;wJg^s!qln_z|_x3z>$k*@e>2~+zHjzzmnC)0lDFt@GBdx z!M#1r1LBbFFiuPbdQ!cDW0efZ4B;tY;#ca9o4LNH(d?UPcYVweJwx(o7zFFJ%!4B& zDNgz|wPy*wsgqy2K`u^}-;vI41c*{|(XtC)SriVYAv3+936vyh+43BbtQt(p)rKZK zk3nr29EZJI6DV1w>@1lU2$Vj&5aQy{L#JFM8kg$vi%IfDP;HtCm%@1@DankLesKGx z@QCWtu&Hy)awBJUBqdFTB((`-YlgrOYzc?%@iqfke4Fm^Ok!JrIk^x=@+`zmbS=%4%OX5Bz{u*+?pG6HBwNF5;c$Q(3WI$5L z6w^Kp3%M>EXL?Jn)rD+Elg~i0Y8DRZTYQHTz@@!V0RJ55%=>lQmD9$4Wa|qW&BRfN z-8}hbR{kXj%^MXrz}77b;5z^uc?_x`T*j>U*a*zbV^DlN>k~bQvmK-+g~8pW-Tg_F zscGQ}CtKby`3`~x+Q#cZK)WaQrAGpce3 zbVl_@pmUGKIzQ*JRQ(q{s7k>y?4JOveoS}c&h~&LM%x2B6|s?`@Is?&HYd9Pta)5t ze6bP!jOOxjFxaYN6MBliuNuT;*Q_k^OZb)A8uwWx`I&;`k@iA%hk%vGCG-%xUjS)W zaa-RJYz|Y+KO`1cAcu&i&rwA)wT`U!L)sArZL?BtT-8GLoD7%#&=en=niz<7TwV@Vu`BPzSuHR z_T(M{OICb9S5Hxyx-K|9v-ATqvrf+}og7cPNXqe&fGM3C7ZiD?mT`3ir>lM?KerWc*rB~W9!iX2{ubTT2E82(7jKl!KOvhOZ zORmX?4Fs@eK8_h%ge3C{Rw^F^biuobCh$mpw-oeA8mxesB4>s@;Wg)MhS|tSL<+%)uzOG(=Bwa}@^F^!IcfFn#YR0Oy|) zWhF+d11TIT93BuBPU#Vz46*Jz)SS4gGgmwsw4XSIs#v^csBip^2~*6i^#(=r6l}cm zH5Zgj$()w*V@XIejz;YtYgWw^9Zi(tls|k+$g;lpp-k6$&{$j?1TJfij>~pgw>p#3ln+{dsg^QwVchT)*2kr0G8rq6_^n zK1>9oW$0!o3}> zX+Q7IRC_xEfjk$~o;W)Jiz>@bi(dav)BJgfUTbQ*SED1wb$QL+_BKc^9Jj=Rb7yU@7oL zG`gFH7%8x+8W)35)1SI(n3zj|IpHrI!wmFNG&lUE>pg3}49&aGK>CPrN9s3%4d-%T zvd_e1@WfH-65vE_bYdG_+J< z`a7wf+vJ!>Dg(OoUp@4g_ED}deZ?1BQb$Bqq^$CDRTwkjLOl~?8%kHxM6Vs@w{Cbb z6}<-3t~fUVzir44)Yj^`*R{Y@?8C>sz9pU{+EB6_33VN7xK6#IeS6^;y3~9!^y`6X zIoBRTnHt;xVDULn1006ZqJgZ>4T$mS7{WwLr}r?rk7m)GR~Cme6V)ALT6U`{MN!0^DcLUz~bGFUBnvfaChMAx)}h$oQ~z+C4&z!aQ^X!q)#rX3z; z9_IlxpM4=b4o~hF=0RY(C8lW~1Te??5Sn*f2)*VcOjaHSaKuGeyKqxxne`)NCCe|e zXVzv_;ZcyR@TX;o?H9#$vz;@PudsFGW9k*{OJ{TP9|xxVVtbZ~2~m1SUj?iKu;>DO z1Y@yj27Cg*5k1n}$LQJOX+1D?7vRh4{7Id9 zN1^a6Aek2>L>=TtU`kW`Y+vk;rFQ*+?$aUc$X)d$l0xHf%E*6Xxa`ibS~daA%UemM+mydW^HDg zc9w);-T=m*l@{5b<@c{{3zNur$kU_pGNWW|`o=fIZ>+p5KFOA7nXkO1UdeVO-JINaft;T0k@67aPDq&7d^=^em$$`(mD3wg~>u^+sx&yncW;GKaQ<*AEr2HC{hbJ-0pPj}>ryE1U%dyEEkzpeu%_ z$%%1$26iOnQw8MgxrlwHFac3^J7hU?gr1EsVxKeM`kUiy&XL`J^9A0xd0E_{W&n(+ z#g_^*hQ}*uKy2fE2XOUQ!WnE>9+zT9ib&$nsDOi`VVc6kd`lA&T|hHu`3mT&TkJWD zlZ#1myBjdYX~{n3vhJA}U_xF-*Ud7LyE{tgURtN_E7QY1TO z`8`Nht~5?rI)jp)ng;a)C}yrif;nug9#~j1`y+{Iw5~o*xlN9N%56W<7;0AH9LC0l zddWumLGo-8NvA}260&6_R-L>{leb;y*FUz^Jp5-gA6bDs9CX|cimerX0dP?n%Dwzk zW48R-4NUogY1(mOmSZ;))48i4c}@dND+Q(fgBH*zT198;4m26kKVtnA)Z}_T_YFE1 zzY2w7PL_%PH;}z}oGyOG`R{0M8K-m3-u?s4iw<_bElUe@!uwB$l>xZ7v!onB(#48? z9{ev7!?^`0=5mmnWmaw3gKk%rrNNQD zfJ0a-3(~Y(m`&ds7e?=H54wXwyUz)+{^J!UAU3=h=Xdo_Ibb*X#D=ab?ARGLAX-}D z`c-Ci=pZIslh9ebd8j`5l3jN1NhiD`JZo_8$w`xSZ^aU#&fp+-4UWw8Ei^RGcV8%P znGFuQ5O8W*53zPl+-Pyr6s_+{Zwjv8m>o=#e)1%MyN1F4O-VbMr%VzKx-$kynsZXj{dsmveoMi#1rAp?i<7SH`GjzpdtDZCr^|Kji z+QBH+Sx=%-doOsuiw)3}SuYUUeJ^AN4c7)~E;)JwxTH{Dh5-{vsQRG!=KJFCd)6Nr zGv!E3&MQf*FVH*g!}%MawO*Narvp=Pf81eWLr!mF(foB!)%CF;mH}YH{c(refXtdR z0W6-SFY(yMcov%L9>9@5&XmKwGvED4x`hv7zL#z`0te-`5?KV+`b*@I{z>An+4?{w zO?Cog06M?%ri8KLv)THjQ_)#cBefk!)HXZ>W6s-bD7eF>BjiCK+4K;E{LithZ~d6c zU|{;*jKcty5J>S!_B|DS523ynALTzt^gdpv#;W2&LGAw-yYjdyi!LmAFQRgR3n;?9 zY?=E4n3_9ai@750WeQYg*Ftezj@v>GiT16ZO+VHvJ5X?KOr!5-lYlAHHSWW5|2Qq4m+O{GDWj5sO?<_ z^DITv2+NDr$w8k*MrG_uXNcvl!ov0dT!C6R|8Xvr$ zZGzKU!FUJhKf&o1c%aIf9ED1_f2W)QaNULR3xZl)&rl>y2LMyH0*@bJUTnVvcB!_6 zlq@+B+|5*VGf@Lqe@c9;tzODx-9QjNxB_DL=`=2O^j@c4F?z3a5Up6l6K%6qf~kc~ zZ*4G0rdA@cQ*<+gRFokLf8`|LiYwu-tj_0i60XV+3*%RXFQUdRxgfq*kV_(n917r` zDkQ;oRKZ$2wlc}?0SWXl3w^Q^P}s5I0KRom{On+_Iujw{>=D3(JlQr&{jt!{Q(||F z1kihlI5RTJr$+&E_(^D%$t&yvEN=^C0+=>Ep7~E=mu1nK)jx$@*8f}1U6JI=rjb8` zFl*YS@uvr;DE!jVt(f|!5dm&oW#~KcwCl+hdbBFK%^W^|1NIaP*i#jKfOydXtwmMT zZ=Z@!yw5`U9lVT-s?hMK0kf|RuZll5${#!_H9fE~z?EJRpP&w3&evnpi!C+fQz7=J zTbSY?V*<~kX%$Nksf`6DZD#y38^*sS$+G9y0yB=5BLBIzv(#NP4ertC^+uyQnDK-> z@*FJC;aPl&!q84YmlJ1mJFHnnjMF(mN$oskx4Cw zsHLCdJtnn4zmr>#vE;GG+d3Bum5Y8$?!-c+74ezs&c*e)Gb~^i(g1Pl#Ud`uLQu~H z&{r%1DA+H(Qe?l*LUYs_{3zqWugpc@z_Tsj@g$k;RqeL65l){_nW3IGoxPt!)6RW~ z+?iVpu@?o2=Yn|g+<5yNNg~=k518h;ytrToY9#bahji89d~}vMX1c2RwQVw@opw%r z2H2>FNDkKpG{ha-p;#bVcHJmk$0;qy1mbv@irN7NynPjCJ5(u(%8i-X%x zl-T5>x#Aiw-x&N+V{_k{3?Fkv5RVAPgII8R&W!3wF|_Tu}*pIWX%N^T;)zSM-)7 zEp-Jj)z?9mkY0#V6R(T!5nMkLJ<~!ngJ)u9wNl)17v4tMcO73P6Fs{XUHO7@|HAyt z0lM-Hn4im6ahn(N-Q47YtP#3}TZ05;u? zdBS?*ncK$Lm>~Ov*vpUI%Y<(tK|R_0CQ4{2|o-@%SYd{x0`57J9go7bo`r z0suF@3v1YIo}v51`YohErtbvvp~%^E^p+9weJw~=S=Nrq3rYaYxGlbbNd&iXOVC`i9>%cmQZY?V zq7<0O+P0ZaeF=fR9>B6%XMu$rSc9VH0d4?r)pG7{X)zJz{zhO@S8xMq?%SJyY21L? z`N`Ac5nY*2A&4a6%@(>pIl}h+L_E_HN<6!T7JtWkZAU5p3>#PC6sdQOJRQheTaa-o z`CgtB7P7n){Wiak>NJPVB!IU8xN&v-^x#?ve{UI@v&#&BPjGEHFqxZhxyK`j=KyxA|NUUu=vxqqn&_)q5?2yEic&7oD&LfEiebx z#@i2S38Q6`eyrdwn&SRTy~C(SroyN*4VnPZ-2|%s9B(5#jDOQ3EyxRiyoZpPU$h-h z{I_qP`pGR>f(wCM*Mjt^C6{?SsY5exu+wv!Jp-WV8|?wmH|sGW@4EQHfanLZp&CNj z&`gc(DZJd<)#e_E1i*c*!2Eh7DWr>Fj`MyC%~HH3<^f>pHt{sDP%RIl zxuAlp79n#FSF{BsnA0?3~nCTs?Zu#T? z&@zvKc%=GqFmtLB{BwyrsH-pCduMuI(L>fgvT8Jp|{{%3J z4|1l80I5=sdKMD-GA}8NVijnNe26=FX7ZpKnBs@SuTXzJ%q7tTK4}4asg&=Kg!?b_ zQ>|z`!G2L-XDO5H)2+bT?+vmdYJJ86#;Wa`;V4&ah^A8zYb=}#ncu`@0mzX&$Ye9YNO3$oiZ*&m(r{KB(+ z2_#bw!n6G+BbD`STIlTnmL5WW^tPAd*$d?+a7QaJz53sQHLbwOhrpy4tGTf;$-Zo% zd#NF>a-d!-;jX>XO1A15{A>VNYAi3mF!E|EI_)hayB*|FxJj=8z3MR1G!AZ(a6euL zu<3Byv1;Yhe6-pki`?%U03Ljr``JSOzKP~#&v5;VW?Sy$EnxaR8$UC+Q*}2YzwtI< ze!?bwZi}HOHN~t030A`K3~Z)%NPP0=dQT=elXNk~cR{l1iSV&1f9tU5O$-v`MLPZgR>JBsFsLV;%Adid*1LaOg7X3o&5q&^N_Ei^)~q`@1eQj z1)i*@#n3v2&f?zJZ229&*sd4(l*OUr2cS{$I}ROzF(l8(gnS5e-8SxSh_aE7&|LNh z(&jiOWa}X6x&r95=6V0Dk&D~Yhd0w|#@+X4xgWqvt;>7<`puIcdSwVov7<`82 zxl+ zneQ3gyxsK{r);k70Suwv+dOd~4CRk#&VL3EH_j4g;UfEUkQ78?h^w#7l4BaZBdFAf zZk!y_BU9e(I0dfy5mx_LZU~8s);*N$JxrwQ+PYAc`8@7~rtgYp53LGhV*rUVs((c` zwICDJ>Ye;G3qkIu7EqcxaH(*tcoD$QU{2XCzUL{t)`O>Fo?nQ@6N|j#RMbCw5yWZP zub>gRB|OK5F_rjl08ZT!o~`=bWY{th)&CCQ`Yqw(?G$`##`3 zikR{!niqU%qWl?m83R>yF&l#gSIUnAQ<`oK5(^skpF4?X+f_+C|`Gb1WupD_fRi- zT6D5%GH@O{DS$#P4zU#|-=+dH{Nl6U85p@oMO4|MT2+}H)AOwWsiGQq-hRYkFo zNx48`3O)cs;%ExOvD6gB5ssf0u{zE*=s%H(giP&XBDvK`Lcim`=R3=EERun#?BeRB zj(-2|GMfV6)F1dV>G6xyL8=zlcvprxFqu_{Snn8-gR8}r9NgmxnR_d$!Zz(^RbdXu zt^s6L4dT^)2lxu>`3S-%w7|RBG9o6jTYzxiAB`c1n{?d+$f_UteNfE+v9WuANyR=F zUQ#@0a8r1|J&ElH`JNC?MK9{H)bC1Dg@^cj1*mrm$Zsj8O-pg2hkoswKd|PS`Sjjg zANsIrDSj_V>K_x?w*~1hZ{%7}#60~lmF?ok)~&PS^4k8qWSS?J+v!e1N+ z##v4t9ZwE#rFh-z;T_bzzYHl5{f}rx7p?Gml>bi~S=(qw0`2`P{{I~9C=1QbdBi|7 zTZ#Q&1I=nhI}B9plxzSC|A|ji&2NN9*qmW{X7tT0Z{IT_7~NBBvW`1%y9IZai* z2{!NQ?&^%+C*<4{`Hxe9u6rYV1dYc~9fnhV8qgul+#?pm#-O?MO`Pbo&hWn}o^E|I zd`%HQQV_wx*!FGK>`o{M`l^(Y(b|kIVT>ak71hUeiW)cF7Yyn3L08tTKC6c6G62V; zC+~3y*9PbWYLGQ8Dp;OCv{sdQ&$ZnQ(EDE~@QEN+(l+5=&yFSm6X`NALdtW1+2~4O zH=D$P)?_q?^mm=8E^{;X1fm8#aJul4O9OwYziWbe?l2O%Qd0=4aRwn%?(n9miQgpJ z)v%c2nbdbXKKy_Y)vB88_*uY|wMz)T)1!x$Uz2DhOY;Fan>t*a?#iX1u@1!&p94BO z)8W15lo*Om$o{zi=48OyY--OKqJ$Kl2TXJO1h%`yiShYpt{dQrQIB^>m>duW{Fp>b zrjyQZFR(D9s2jTsi}6eWF!w}bJYsSe0#h8$1z7Yol}HSPpY70>sc5Is$Oa+^mJARS z^DIn^irR&X2M%NdDQ&%wl+w<}Ck+t^yhehDHU(%78REigbl15%s!g>WT`Ds=p_fh2 zM5^>6d{VOu(NL6^uav-C+)B2nGNhxbO>E~<>AUf}5C8JXCDtc)vLeSk-NJNMjYC}N zM9f%1e#z_7R`imgj%Y2?lg71Zk~}bL2EM2q3W*-k%=BtNooJ?#I=KwEn&B?IWx6&b zTCCBXEJTuR-|ZTUu}9!(mkR$r0qQYWp$1^yHtXN5SinTMg2_!5FA zHhLv$2esT^oDQm20rK$s;peJFenEz-sH=fF`aVu}YX36M1}Hq&wt-ID=aT|nIU2H! zb6J~hfNXbG-zO%-YRSqDY18JK_HDLo8|^wVM2#PSMG}@oqZcN(pic*S0nqC|3?HV^ zOu38v&_awfBQ=5LheZ0|TC2IAN75=HWGukgo%JD&Z6SI>*LoNsJ3x zdyCSnQVY!h1|F(Jl7IjTWXLu;Z=U3BtzT z1Wa|$1k~04n!@M^ALM2WlTLlv2PNF*TPz@ZvduJKw-V-4RDsu*^ZGbpzn5B=ApwCf zb|6pe+}4VQK>YW0tYtta<{-9A?_sDQ@}l*wq01@DY1c&E@13N^_Ob5+(m__mq87Q+ z0bc>SX_H;UND73&lsvbX)t08j*?*cG!FILc@uu5!-y8$dX z*ELYp78`1soHorMayjpzX?xFuE9rm?2%LtKz^x;AB`w`ID zKFu}JX-5bldXy+u@)1AhY~)wjsuEJWs12DdyJ$Y( zk7E>N`L4@VeE|!!r9RjUOzKxyPKSedv3H*Uu&Drh*BmGwqF_Q)X#q3K{gI*SrHfpV z)V)o`YL1bMuBS#WdKFD=(Z#OG>dnz?CtIvt*HX(f4Zvywre5O8QNvy{?g!~@C+d-& z#ApgHab>A%clhioM_fvLis%lh^v=RHVfz3mKGtiSj{!UlignXnXV~O5pmOw-#sc^Z zQ4Fa<;c@TN>=cXml%6GEc9l1W#3eXLk%HWUUVY!<=L@7A7OHD2FvXX-I;r|G30VOz zLXdgRg5b`{7{f>{Zdt^WG4|(yYdW3n6G7z#tF?3acj3wZMd`)XLDgRFN^t-y;rnhQ zRy0+klvF-dL%UQnmRouTInw^?keF5ZAa&g-{GKX^(@>A+&R%cXUoG9 zDcl{_Cu!>L37o75gKI2IClxU<;fw&I<@0zi15@@r?!&Zp9b8x?{MA=1U|;IcwoR1K zKCjZW3ui<7q`YKEzE*W&BCmn2cMg(?GjkHyW2*r<)dD>h?0nq<4wsCi1=k!Wad?Be z&UzYep-g?ip6@ZW-WE{+g-3>(1b-APV;00f{|l zB(OR`VGiC!^UD3OKRZ6>-jJyxb^=&X3>DElm+4b;TDyQdvOj!c`PqC(qTp^fAbDpe z@H?D5D^rW+ZGpE)kJi!D4?pWY#Rd}b_In_ddoJT1U3Roea_Fh7_dz4GKozVD ziz}~*cB?&g_C-_l$dz7RdQ|2E&F*=wL_#t-6@k--=+k$V>vWZTKC^w+(h4WzBLFL} zg3EsOazmiS3VjTq_X2LP#a)O`&|Gl=7bA*NwF^xZM4wudtXb+hL8X7#F0}lfL>3VV zt@0VoZ^wK@)G6O^Sdi&KJs>!Ifoq<`QSG@EIa~+KUSJL#3NKO}^B66S(Mv>_ebiy;wXQ-NC~yX- zd!*CCdYZzuI3boA)C4vFxII51_@cNTeXoK9>t`OyKzaBRP^$PQFXFBb7W|0#fPEzA%#=tsF^cw-7y zR`Z1%hwp$Zy(A%cNFz+z_h>CHaSc!#qJ8$D+00J;0QBEYxQ!(~0EF~*n^!UjF_EYnsJF&0^e6Um(RUiILqbj};$xINkn@{n`;4g&S zej`$f4oIP0e?`ChZglmtjm^{+zX6!>3y#muY>EwP3+>Tpv7>C>@4yty=1NX%oIlXq zG&_MOn2_t%0&y0;{*wm1bBFg-wR;ZN4T7P6fkwYVzQSVR{w5lC--3l(oyM~ldOjk% z^bgJFR#%cry48iB*fEp7_#}8de8fTzJOXtR+fUduN9f6? zHXSgV7nfqEmdta~G8XUX_&S7;8(;RGNJzFk(3SG;(jD?h$hc@NE<2_<&aWqamMeObXwX_U2tmsmxSX;?BY5=soqu-VfMc0`ZtES(R zGHlrxk&J5xdb5AW`S8tqJK5=xl34%G=ASxOYC^^rl#}2gz0Qxd>~F(B>V0 zNxp__bJNl62+YnEI0`#-jnSbX77pOV1)P}h8$4)kSir|4oc;(j7cWfs*R*CNFdhFy zI%w3jd?*10u9uM%cocvkt6g2yj{g990Zd+$aB3hN5auNstrd&djD))zLranWI^5kW z7W3hVADD^-iQ+OG>6x!cDe*pTC!)5y%!Qv&Fy5Q8{e~_`Zo7^v4q-Xs(46}hqNiJz z7>=A!KwSW=E8%p6q{Y*KX1{?)AV7#Iasf&p&_)8C`vKAgGT$h+tdEd&Z{V%Mj}~!q zWEb?hkzMd(Na=s$xs<%8_}&-Cu8F`byPjuz0y3+2$ym@yqRtk)i6H*1>kV~d?)qeq zthph9{i=ew<5Pgyz6Lu!aw#9028!CaRO&n8EqDWmZ{$efyB|-Wl5#i~lAP(ZbVa}S zl*9gknw`PsOilp0p&WJ9KJ z;jG^_V}5m@C(Sr_ElR{5TGg59b#bKB3)D*1;z&tyg)n+;>DZ|^5nA=O7cUZ+8^z>b zACOGD3;Y8~JO2U-Q4^=4xV}WZ`YsfWWi2yzk5RqV55((_AcYGwV|ReAW)sov58%dS zOq0lbUK*Nn?}1X!Tb?j9po`=oY`TTXbn?^1Y zl?g)v{Rzm47G#jhTxIYL;uPGo0|A`ej6Dk=TUWwpw$i>HL~Jcy54n^eVIT%~XtSow z6QkOxYooG&Bef#rqsc#W;*buW;o3 zEgOOAl!paB^E-aQk4}ecaPNQP#t03GU9-!R=tNF1V`K~Vs54ePe5<20X<%F|>(kLnz##$I#1%s$L85bb)APxr| zhi;3f$G3j*;{yqJf6MJbKxfRDlv5WaF5^xhPWF4)u@|Y!CZdPJ79i7!;>?d#zr8!3DQ0IYIV>=J3nT!RugroKK{^RXDIQ(LwPDti}bPomb_& z8e+mz06b8I!%7FTg3lKM*tflBf)mh`hN(c8KFka2M6c7V<`}iJy(im=qUbuW6`j(- zGt>!9T1zhi1+4kRsqCjwJ$m)`MlM5-RJ<`*0OH=qc>Y_c-HV7??x#?@@;P^r>bMv* zvL9!OWV5#E5wz%*fK_%}IPMf7*DGPo%Fa=xTnuJ$zj2@MEy6g%7XI8O9 zsDmw^2~1VECyn9>N9Qk+oA6mcmsTIMf@(IJBcEgetcV8Z5CcNKKs0#idHmc~#Abyc zQT9Cfc_O|MHnj+tZBH5VqEK7Q9J!Ol)LH2Za8s{+nlFi{LB5he2VQ{3-ToO4qD+>i zGzOIB5~$-IyobH%nSbZ^Jd7(p!qZDl?TDXBmXV$|%#@PXbm>vVtB7v=Hl*V^P3OOT zLY?ax8S4CMfHE(>xJY@QM%=q-FJ9(3WlI99LKI%kd<@`VgeOCNv4xLR_bu|z*8rIM z67C0~YsZla^a7ykw(`uCSdN8gUK;7?P1CmdN?Q9-NOCPOho3W+Oq@|H0_O8bPk%bE zvpEwWJ0I zL6cKD2lpq5a5UYtrSrli7JB-{Ggay?S8BP}fhWT%#^EC6pLxk`Q&m){(IL`B3UH-Ti% ztFE4uKeaPl{C3050502+Ff!nbKuhA_=$a%e%Dn---U7&^XwOw@VGU;oWvX?ikABSk zR?R(?u{j36*z&iJooWf)y%eO*f0;2uCURTUckOmuHQL{SKh3 z->`2Q71b^&T3_>8f^P4ml~fg<`^o|$;ZTdX29)-^jao#9VlNSWmIGM%7Vk2!m-S5P z2{A=8&G`mbkZbGMF^y^0*MeBtJGc|D<6WG0I{X@gP&#*6=-_$1u2Ix_i)s|_wwmKq z`nSl-Nn)b5_#OsCmgn6B_Qb7N+I0eWsI#Y?bU+k2T6)&>(#?9Bb@MLQc$KzGSSVh3 zx&b6J<2)njEXA(P17!i4B;C;7NF+VAs8yFoFQO`H6G)D)MOBolgcpR9Fk04hd#C7n2lXF*dxjvc59LDJJxa z1+;HQ5gEP;OvTqYCTmV{cTh_jLR>24C%pC|r!UC9hEH<8=T{DPmcaQH;*op&v?7Eq=I z#YWf(3}myDdj7{_Dz06G*^gVV4jl?<+YMm$0Z3c&ys%g~b0yZU)&l;kNYq)Fc$M@U z3QMIRnC9a>po@PzhWX&y{Cx|E9|P>>`ERlx0G-jq6{FzZhiDGzZkPt4TR*Zeo$Nraa`Qq@v0ik+l7pWoC}RDb z2vs(r)X0I5xfox7n)hc2)x@8i6`t7pdn|Nk)%+Vj{x`|)1+eUQz8C>aV9NVwq~5=f zdi}pfS`U)FesLC?0CBxpiJuKXXa9A;5>2T5o=d4ML<)~GEC)TO|;;7%_tvpSWH3kCy?~^$3foqX3J_b zlA8a*#{W!cw~v)x3yb-SMJ!g$>F*il)U^nEeznjsYZkkm`~}N+iSB=E{o-)+NlxTV zf%zR@WTbfOpt;&!+?={$;{!fQ)(r-ixgp^p%K z7pPT7`Cv7|ECH0FA6#;`1!POExg>@b+DdF^d$(S9d&1DHD`|&MayqzEsREF7t)psD z4-`hTsp;TGb?|M*-9!`Kp5We&&Tw&3(g7oAI?jN>faFHG2dS06u{2=t!8Y9=)m_C|Ks<}bX~`nyF2I!deC+ick(Z1|bEMzL z9>p=!X$i#Kv}kvxn)9}Cdno|dqoVAa4CqeL5 zCUM@2)0re-a))?g%9DM;IwpPoug65WjpQICMosSI?xLPb_Obk>sEJImzTx?Nb$`LY%Vihdpyxg^|2pC70yamG^Y+lVr6f*p&A761ORio`r=jo;x6H; z_ITguK&R6E>1F}B4`SRK=nhOl7ubZxI5&PGYOu)t8|WSu8pq})P`tX(6TqTja2;^j z(Y~p~5lAl!*qdb6errRlZf^j$#k+fx>akM{2%lCNBz%2HRx=`^GgVfs0T-*>7jzf* z@UhDk)U40J=*8K7EqbD0o+?X>?4qJ>cei&Mt2l<}51M5?4T%=#F=@b5_}sm0s?@v# zoDN|9aL?to<1nFfGibV-65X-t=ss5mwJkEbtAq9>b+0)@k9ZAe`Q#J;nav_sN@Hld zoJg4TsOZrWBYeMs7+z^I1gNICeGe{5q@nJfT`WwVjjV8TuXa8tG?%LWvzIt`e8*`6`~ z+3Oe@UT=4dO6uiKb65Z&OQ*Mj8+*A2NaoTG4G8gA3uhBzp^U}>k~i$%mC<-$ntMYT z!4+fsMI3@n0A}`ZAA4CraDO72+mGPhC4H^^t?^JLlb}kpztyxkHc71>?qeq`qMIDh zX*wB4e0T_p4MjW0LV->OFt;DZ945vb0P3#kI%RHa*LC+q#;Mu;k=d2g6zn7A>1l0apZ>Xo|>83xhkgrcbHS;?~M6prgilx;r_RLSkkEn49Apsv0NpF^UUGb1V!~ zlET?6w3;>ZY&@~5O2o@2ML^f&`uad!!oNzc;lZTH))lt`vvPgx#7eJ;r~$ds0|^Lfe&)InadwHl5?^u4BmZ zS?xmA@-q7_vjTNtvaYp03*OgvC?#41jQ2d>Nvi5xHcspqOIOmpgT)qPesB+nx|{3J zTre4N@FY)?O1X)zq;SkiT5u|T5|SGA7Z`dF>9*cR=zQ*qX&wsgyv)Kl?O;ng7qq;-T7a=G z2Y7cb{NSAhzCl5$6CUddU@|Y_=|gijt^}rRoLd*R+2aory$a}%@y9@O-(fX?#pC}E z-=Pe^iZf8QES(Htt8XU*H)(=9YOoxo&Y>SMZAPf@6_ zHNfPaMfcn;<$;?9ihKR#t-#1h?qnxrD!Nv!=&VWZ1lwdy+G`owrHVSoM5?TFqIH&o z6|U;O-PWwIqjOrWhz^$N;zaQv~LLa+#FMPiTXls0a zrn`@ddf&-d#3>=O4}#jnB9U_DZ-6~S)av?1kDynZY#LBk!E5i7-Z^-<1sS7iQ#y21 zBL|`^=)giGVruyi6F2O4dh#DZA3gUda__(2rTo{Z!+*9-rEEiSZPx zu%?eQbh5g2m+1}|QQc;Il6@|sI-q%|%S%+A0A|v8o>OHGfSgLr9!gPG5_|UakM8Xh z5(yn$MIBzvb+kCaukP5U{Cv;ps^5Gb$p{DbNl>Ue9};kQp^;+|g8vkN#pmNfKuOUt zi9HQW!v*f1>c@rl2tnR1c*X)6#Q1^Av%oZ+4^I;#V@Vw``YjfwhZ=c}Aw9xv-3s90 zDM&W|3$f=cj3Y5K%6J~=iVNM2QHE(3UZ8vRE$?W|8mWpo-MJin82o zz?3ca1)sFgW=u=Y7)Z`bBsqU)L=RE>KCwF?`t@Utq^DB16S8TVdn6$ld&P)$ptpW` zII5KxQ3+f_gzEF$C)l*6h_qe?q4WzqBhT!lQJ$CuL858)W@7| z@H?pUUPE)^h42Z|xA^)pUh>T1>lP+ceS1Ckro}s;Z_vaFE&_*SR#EJVH$kZ327cHe z6zp3>WAVV~KFV|BF@^YT(5RW}>0@*4MbhFO3)532FNq8-ztr7M9a_&{o7R#dQc>?( zU*HiNGiDb2+DTKm1R17PFJRM(bhtRZ+-2bgsrAcEO~GsWcT>-|u)Lynf5q>J)LM{X zYVTF;QjYmTK80FZU@1*hN35JOIJ&1z&h+`plBF%q?bSfO2jc6O`j!UQ-o(5QOyvys zW%MYP-FXlu@6@##; zAA$b1e9r*lD%*x)g+2!6P(Er_(pGSca3DSbCbfWWv~ma5^8E42wf0Tu8Qf1T++dY; z3Zh+UZ_U8tGob5Miok=v{r)+cLuSEv+`Wo#BcYI+XrCo?Y`lvv5ZA+GPLc_PoFBn2CNsd862B!<3f{ciH`Xvbd6fqmWjNl}sW zz=Wgl4bb3Qyjpz;G$VLoOIDdN^SA5^s6fRf52La4Emfg>2Vh+}lMzek_&a~!TaXc` z{Z8y^G9yUq2dmQ&P9xN>FmS5-E%0R9;DiM`U|~9`>+bTg5_!!|@!Z~zt-vLtqVbaz zzIGi|+TFh3wLxpq#3u*ECt0JS@dMaGAkAJ5u}}K`C;Bi$hpPIk;cUnb%sf^jJ}H}z zL&1&fc%UkH(qv&qJ4v(ffPb=pi7Ms(kXZH4dVa(sj?8{;1+Kn71aC`sv&4R2Pyq|{ zFRkdR1u*n-M#5kJ6~LN}KK690p0FtH`pv?epc*ej#@AtgnxFjM+JAZlmkGh6KZq>p znOcDng8wHl1&hJ!l*Mir-U`EMdC9#@WX!D3U+fDUR*F4kuI1kr`V^;GiNXE@VDA0g zaTLu*(A;$F=A&pXd*GN~H={Y@LEem!T05313fhEY_dn>91$e>c5UV*sEm@0SblJYd z?Xxd9KTJOk=+sj8X-+d1r_^l$tS)trmBdUx!v$QyBfe{ck|+l6w#X!^$)_5dS3EHh z%79&+w3r~;E1AwL_Hc3hksk zCq{QsQ!9PFf-4~oDk9K--7W5spvuA{GyaJLF0YEkKib%cYdTSYG*q#|t>8s-ZKty^ z3okHb)jX3SG*mR2Q=jy)$9d?|_#;oYyf%CfD8vvSYHxEdmsLC%PMlivR15F{0AmTb zYHW151j=H*PUvvOa`@o#Vz_n}DNm)@Pgk%z6SabI(YS(r2ftpek>VAJI6{`KK(%4> zf_UaxiemIG1oEzQpX&5}If;|*cpN&8Zy^_>`j3YX?(p2XNP#6_LUk+MCsJaGEvVQg zK45CD^qj2bY~>gs#eQJ2SG!??=AstX^uZm>a-#JKo@5s%B|_YiTFI77h)%HsxkgI1 zfC(zE4ApcF{R@MY(uzJ@hP9Oa3y(e(z@`^?UQX|C@pIJ26US5UKy{{AK&|A&FI{y7 zvD9s>3{iw_C!p1PC&VE9CB|hfr@Q?r)+-3NVu8B>S8}KO>JZ%AZ;B1(i3yoBG(E-o z%g617=H@nSF1eZBm3S22bq{`*emId8D+zbJ2T+ye?oqbid=T=`6PPsRJ{j+T;IL4J zCPHd^5oeC%M4w8(9K%FgSm)lLmi)4GOOelf*=J4pHVnNFAlqK{tqz~tTSj#Kqh+r_A?yWJ`BheqUYO7#Oe^Hmo5$}9Q((Y)_&m@Qdwti#iVi(1Z- ziqLBsfFswr&sFc7&89!;{(4K)I~Sj%Tc1oVqrU2 z)qk%=vtPL&|Qjp+7r#s ziZ;0Y4h1mQaCy)=(E4_w?N?L8IpZJ;Gwv7@F$0{zfdQQt5vdBNgV9x+u)OjoTy(+0 zrfXV$Y@`(PKgsdCL{&f6N@Xy0CzQhw>$}cscLjDMSj~VURvSvddvW@;;cO@;sXzm2 zLN5mu#tyU4SxzZ@L3TKRbvt>kSa^veEIQp){{2`Lhw}h|9@#p^P4`1N{}*~xE4uIj zXS6x3%+^n;9w495Jf6^>h9;yFom`Iw8eNMDWvaNlF@ zA-0+-?X}R!o^~_nWvTI`+N&;z?x%)-A~FvA!O;l>YIq!JkDT9ZAlvnpi8R1cx@91q zv=3bP(fy{O-$_Jr$!2VSi4=>H18N&LyH8iMKjYn+Dq=E#8%jNM)u_)IOTa(tCoA;c zy&k>h0vC0?XP$cQP4Pks{Ai7#l>QmO6n?=9_spd~6OfWBEd3*m#!o_sWae1_cDw<} z%%~%Vq8FuWXA?ViR3jG$B-2v?hg1)b9MW?@@^Ce(`J!wZ4S{!(O6@J_pK zrt{0GXs&zO-A@igM=PQ{Xc};7&$xR@oY`F-a1CGa?nM1hzSSJ3rrqR8khBD@pcS{$ zz=^7;i-48SNLL}z2EXfRiREUL36h$r0^v94>w#hI-fgmToD|AVJM4h@R+l*-ISf zTt>*s=Wv|ka4k&FTIA&~Cm#L4BSaH(1u)tB4U8yNm|*>Ni_uNI}*tNmbJtVNrRMY|G9QNA5_TT+&K#;K&swww*D#`$coo`&gG*dby zK$kA}oZ$4EC4pDtwCc?O?Il3xz2@#pXl|JJ<5Z=@pCdD(HAx22eTzfV>p|^>KX^^Q zxP*HHnzR4(We0^uaQ8+uZ~v1Y{!+z?exH%7#7!7R<|S7a%vav_VfJ74##k&QG3@35 zGUK(dWZMISgwzU>khf^0N?+M7Q5`*}L)bByCVsj5Rt&V^Z{Nwmd5A;zrD!hrhaae$ zoVpDd|4MjL(#{98PQZg(M$GrVg{pU_AFJW#_{%}Ea3u;n9DqXitN?KBO6VT>e4g_O+c80$s@_?&BFy|fj7$=~fxv2ds1G?cI z)Oa}D=`a%uw*&qCD(F89B4{^7>gEnWGFE#Ak#S&Rta}zk(RW(F0V*oNZ_D)tl#-r3 zodB<)1@iB5Pf)dO8Ce|wh#J*$P)&3B`Sn&j{jPT+J^ilGJhIGLx0usi3v_iEj)9Zs zpb~Li8J@L3_cjfx-{8_6oP!STvOYQ85y<0#yJ<#swTK5C)SR$T_kd*b?XXaS>H3<9 z<_~4K*J)~XSVsqHV*jrPwTj!pfyywxgbj(vA>lV-^+f1x?hU|Ye+ZqG-rgU4PeL(D~^3Q*o;eQ|=?*ufvX>aB62-lC!v*VsatNgNHgwqpy? z%R%&B3q0jmBZ#=Rvo*I_0N>X-=A@5ck1*ySMzn^$}xF~w4I(mx{fk3V; z>7sj24}fm+8q_>Eyr?TmY#!9h^)ZSN9GoIy;~xUa#cNQ6bj}XbEb$ZVhXJgP^cMux zr3myNL32(NZ$<=Yc`fv_fRECEnm%^RmR{HTK03QRLywBY8>30b2 z`A&L#R?81PKKnR;Wzl}7z5@ZQ#!vve85nO2$Cx_&38E9@58lhyWBN13Z;fdc$W#K7 z@rAq8>DL8?OJ5bL!l}Nz0=t)vo z_7u<+o&CI$mm8F)(Ok0^XUcoyOwB@1UxFovd>}wDiWN z*G0DlzF9fMgEP;wB3!EEZ=)s?A6jE0U*@I2H+zS8!pp;xT&jM0g3W$emu|>u3-q))FF9pdcHM4AN~potk(W(?Lm$7GBDm`z9zy+dBtjuSC#j8 zQk*Qd@D*NdMQ{2B_dle4*W49VpRWO3m*QttpCX=r-D-|ikqe@|YRU0jng#HUR$$&b z&%XlSYy}n`?>{l91_iOVS}}*SQyE4xSKNAg8^G-E@NUSyzI;;%7xW!qLQe3rnob>h ziQi6t7ns~`eq8og2%$&1!KO5|*%Ov*r}f3+;0%QF*@fnY_0GyCAmVz z;7w<62AjZI0DV1}nw7QBb!e{W;b-qth}7GAB;8pDaHU^lxpX%|E4>dog$JOOI{(PW z6VRGEW+1Kk0Vrl(sv3Su?xEI4^P8w3YRNZk#}7eocP}<K?s*e+z?7eM9r}zBDz^!-@FYCmSA|@J_zNaBBwn z*+r1_Z&Ksb!NaMRtJ59Sz6T~}u%BJx5%*1gKy$_KRu~&JG9o_P4@mAwe)juRA{~1G z&9nb-F6t0D!XE)lcmPj+Is_a6yRY?74#s^D=#Zg)c1^%Mqdf#n#ZZ5+DogKWaRhuA zkfvb>7dQWfoG9#`U7|#uve7~ZV+@D)YnyXF%)tlLhRgMvd@K z2GM?6z%ZYxT^s5tKjOZ#yc@q| zL6WS6hysgWNr1D2uBBp{V}?smyGqsFg6Ke}}hOQxV#mDA<=&koiaB zI;+T#&}b*Ho~O7ZcckTuMf)Q5jiVT3!O47YXnG>Y-b{RJi|Vkf2gBk61nq+s zyRwa^<&#zWV`5cfGl~`@r_51@;1lnuTo(u@;5cf26i$Exzs#j>YxUpX2`$LF01R=3 zI+7KxzT2XhpekLVs4^GJuKO36o=~9c#&EWZGMjd2{`*nSD3$VyvH1F!(!Zsp%H&!I zT^NmVtbbK-3kqJhNAu3HT&zW5e+M+zK8B1AGQl=a%;D!oJ6dS`OwEJ-U~!RtKTvN? zdKNI;gRQx{U1*xBJOX<+72>WYNmnr=h-6h*=m51tfW*Om zBnUNxg^ren%PJcb+>Ziq`$W$DfKclmv(TfLdh~V(&2aqnXdbRcgIab6>{N%RBSmNt z1K`XYu7d*1IG)O|=tps5(Jkr0(FGUJynN1#GcPWfHT|@Li{}+ysj82QNm6@5LQz64 zq{~#yozT&a&A1kxQ^Ga4na%4AV8vuVdu%p9Of!PCd>k>NI6O2{9hl6inLD%#s8xp3 zvQOg+DWokP7_TR^kF*C$IDrYkG@rqoKt=f@EJD?^ay-q0bcXa*uIaUU#LNgELNt~Bs|(Gd5~&$q2|(0e=qB&SA)4pdPO8~fVSaovEP zUF{icqe$vicT36V?wVh#ak0*Uq;Lg$fZEP#WU8E|!)pV20+>66$7O+`>2B$#*?Lj8 zt71b3IeDPM3ik%J!V87Hr=Ke#`xoF{A3ce(=nU0ss*QIj6hT>x_HxL>=nJIf3t`DwLJsW_Qi#ssHQ$(jt?uPNs_ZP zfJjcg1NWo1{>n3p;_T)`8h?R5Si>#fsvU^t(o6iER8gOf3F_*L_|6oL=pY7cuO>yt zL=!s7#y=r)gIhkiqkgNMbbvnrKA+SI&VMfcKPeBfz$~uOYC)924F#s)8T=CFo*mRB{mPvz3gmQ|y-C6P}sMV5BKfIM?Nq+UKVJRyACja1|oQi{iY!Hpwf`b7E zqN4D4Gznfwa_Ff}Na2W`43ew2z!7uMI^rz<6e77=MGsfoX0TdjD_%n_ffjl?wmX%8 zbt-y-S~QEVDk|{4Svk8FY6|n?_EWDnG=B6TU`puwt z5-=-@Wl$Wa-ukHJrvO)i$vJ?eUFoj~3W{LKWHfu`a!1T`jdFo$?jAZ$9iGc|x(Pf3 zz=`v?4<(X4XVOr5hMuN|U&ZMNrkn-L_MV{w!8b=sElMlTCIQOp723~9Cd~t-b3l7p zuh3NW$<YUx?<&g*>AoE}Kn7bLB$5P@=AS8k+ZQ!_UNw zTErP8{H{D;%KC+#Y{QVj(i{A2$X-6JPwj^2(`+C?r~rgE_csVZqgqN}A_!ds%)yuN zY-;xoJPSguvhHj=Fc(v2|D=VEP&=;UqZW4T5)eu*5v=8AcskKY-UKs@a4nc3bGVXo zDG2S@4wK|y*#)a-c-oZj@Qfv$!U&3eaT#cN2Vh@_ETiR_ij3yv09FhLJqa7y$SvyK zD1HL{3YyH+6Tw*rBVZcYnIOLL#L#S&-kncfi=G(8ECBz$fm=VZp0m+hb|ceC4&0jq zOzI%?g^@9?=s}4zs9^7CWDD=-<;&AnSDD9S|V?yNSfm+Bb@YV%J4E!oUvX}CK3xj$!b+c~> z(gF^qS1ToPiZUP63U4#~bP@JnLztnVgB>V}ku3l&{Z+i>ux**Yn~fEM;6e*HSbevd z+kE_7uXYPh#s<9>kZr>dXiO^-0>&ejMZokKj+j{PKXZ*116a3$>p#Kt>(E@VlJ9d7 zR+peTcSPt&nm&_1-Hpf(E&*`&2*mL+&j4W1Ln#F&V&ir+PNybf58VVz;q4ql`&E0C6hPmM&N62x zZ@Wm;R2~-*`)^M6Eg)5S2j{wGnHc=7H2C6&F?a`Q6>-Q?P}`G*INMlkORH0E`!=Gs zI2$3919#2!T1ErRw$g3(g%$R5Ie^~LNTU54*+9Ix!s1bBSY*%gHGcNcxE_HZyb^>f z6lal`^C~oFtmVxj$GRHLHEVgqF1)oeG>^ZFdu!$ZZU?6MO>9~7FhFeWJAg}n3#E86 zU=k90Cos9Eg833-F8Uf;rp(8%=w`3-#zQ$s_FKnisHu^K(ekf&P@(~+B_`^z{%B&|1~_ohuEY0Y!4 z8`1pIJE%D|10q{XXuXA{+>GXe z-2adYJsFaUCxD*38|ie1GJQd|62MivopY2TQ&9zA-D7_C=7W|+kru87X6EBu?THM^ zlW49u6B(4@oB8T%o{8+_Q^d20XTjn~q%f&ZgWBS=kmCo&F{dbGvdu~0kI8NYrnJgGCb*;`QTrU4*VaKJAkAgpJHpyL4`59l z4hkLI3>{CYD(=-&7Xm?|8Fs6WE`tHk#_@v37HUitIph#sxTo+;Kk6q~5)N*A$9ddNmgC zbQR?_4hRCOF|Y|Yz6 z-__GX^+f6^VR2MF;Z~Wqg$-9{zQ_X@apP_$^{{g*ZrnY#jjupp3uqS57TAU96>Q^q z6QPK9qj`Hi6cIvb`^FR6u@=CJkDwiqWVQnX4AZ?5!|H&p{m4T;f+JY4>pjigi;i(v zO9wV0n13I%^DaV4LFOm)AO!FO0P6_okno@)O1-@FD;Xcs0OnjAimOW8Fa@h#^}I*| zKLW|Ji$m?@heDTq3{1((JeU;<;1e`^K0&5x!YkZS6zP>ufyw;@KUxNioqs|deg3u?zzZ}IhZg#Wl_a{6x2G-gR0;8313sKPlQ!!Cc3NU!75Gtlq1CkZW95;G!GjX z=R~5bOy{@=y;sXT?N3lqpZkXe9cJoS&w31CZ2?m| zUd0>Jl9o79aiPEDFZhv)Xm-=!MYA}a2&FEHuLLc5u)bOASKlO4=Xh$b=DpsUj z%ZDRvv8~7uhY`s8I*wdr04!`}dyFt+A9t2Xgfy>C0~0!c2J~71aNTPVGF{CC(c2i&6VZZn(i$Wtn zFX}7Gd)#5@3d*18anhybNE&C?WCuv8L+n5t~syC@I!fd||RL7BuS?gMH77rz3;|(+QYq zUsF7Hj3OH0(RBuT>DSmm|CI!fqv?E2K98{EB;R^Ebo$oCnog;|eQ%PUD4P)`LDX0( zAB(rJl|5qzIAV>u{{#$R_BVJ&z(Fa2`@w{s55SE-@O+GBq$now1Cz0z?_*&M646|@ zpUVK{Z?!Pda~??~OsVfgYuBBLvB=mZgGS}`6yWgR+7?zN1&|Hj!m0>cp|dyQ4ZBp} z8V>qXRNf>0b5zldsF2D(WS4jS*_2OPPW@M4n8#b6u~UDMh3<;x?T2_4T14h2pgHF- zcZA7?X&#WH*^PM6cPE~89%UA_nx1fXP|IuNL6cxs4>YIV0%i$L=wH{+z7K8Tp1_ot z7_s)ffJy#|uf5REz0q9#6JK_7kM#j2_h;t9(2{AfrSq%4me|(!L54T-7k-IM_`Ur= z#QUrNcy;&(+(?tkPH?%u1!T9TOe2>D%;MW9JQGS&OgtT!jNkagMG_ok}= zM=eiO=sSqysjfD9m{SB4*uWZ2w?zgM+*^kWa}EKMW}%4KPQoxsSB7>`c|9Xz)OCMx zkKJVW5TG0W;=zci3)o4eH2Wt9{iwk5=)FqIlNA8=ZI2`S&IzHaYBdZ3I7mdzzi(>@^hGnOahq?J*eU)WiRBUxQp}J*g}V^K_u=*5KsQ z;k<_ws}@sInqx5lICKRAV!Nx=9~u{MXb1rb9Y=$G_d`gi164gYF^2INLsTQq7#&h_ zBGEMg!0blHV*p_eCj#efml(WvrcK(!oR-&IZ^U#a0n%@6=+zVp@iQJ?1C&G4$iE9U zK)x`eLPq%GlQr^V{IZj%M$p}sT+?DnZ$P)X=(f6jq6&(ROktbgvT_{EB?hZoMLXKF7!D_-m5K{8+za=55S5|p(TE)Qh`~!F8#K@pOEi!aR{YpS;{E71e z6h!M>v_?J>dbWByk#8SUdglR{ot)T7MgEB&QiQL?8Nr8il?BA5@jpGWHlRo}U2OrG zDiZd1ert!TFK8EYEDsNJvEJ;{QciDhT|>)XRUbW>QvQ65t+!+XCVT-pXnKrp@EMLH zu}D)S1}-FuBO9X6vQgAKOuXrREhygh7fu^QX*Gx;-*kLptfu%GC@vz3#ZQF3gX_e$ zji|vLPDqT^!~6!|#UQ%jZ_mf_>ahqUuLC5nTOun%)@nio+$F#q?v@z5-7PHt611-B z&Md!vkw72kO~n{WF<^a7DC3@pUaF`T$9cP+4E3vd(VZBJP2F@o$kz2>)zBx1b0MJ@aoBQTD*Gj}i#~y^uEmoK)d~{NjPG!>O6H`* z_FM@<8C#LgbC`w@&Q%d@)_5cIxiOO!ldG$N%Z`9YZyv^Cr&$g)RZ5mw9LX3SndTJS z3+MZG3%j8>rMt~BqF0-QEx!ZZ*GHV-q`6_CEpPPCRpURi%*w&0%ML!SHs9#1110dU8 zqO*s9nL5(mnU*Q)>|rz)xFeh@r(un-P57^QJOXgqtDy^>VjH0aA0?`pTnmcDcnr<kn*3Ti4d=5z{TwD(i!+(UEkc*7|@g zjqX9{6ohcmjJs_(|Y$-wfUDa1N;#s^s&Q-ypdj;HLoI_jYKp zTCz1M_%4FR^}(Y#di9qA_q2t(R&~s?zk6jJg;Hp%=e7{&XIi*-O62iYRnNZDxDpXj z#IvAW)jmQWnK@ZstuH8^*aD)e;3u4$&Dg`PEm&(SEbms3tlSwoz@Y{wU=B4|GKbF* z*{oeS$Cln|02wfx&x35iE`)|NOHhIAaDiEz*t`Jrx(*R1*|wZkvLe=g5x{-p_!iJ> zPczaC&B7qJSqx3jjZIdKOOT**I9w5l#g{W{c8hYxOyox^YeQp> zb;hZOLZ{92PE2G^uZjE5H8iVS^QMbF_hdBXKhQUGC;dN_dBFM7nq8(5`%9! zDe<#1JJIa@I5bwRK07v1RjKGO75N9AZCrV_v1B5by{q-Rl0Wc+msx+H5(A&uMO74; z?r!~L<2gJ8(Yr-#y;=ZsKE*+dNEbRh8C3^h&8MNK*b?ek0!vb=SLvq{Q~tD z4kdo%U}}<7o&PbB-1Y_Rh8e)>BlEzX{DhF3{zAH3qzUBnfuEw^`4@^rBM<98LvzSf z(QHK2p9Axw7e2g$Z%js54~UZDU(kSx{*LZTPt@3Lqo}vq1Cn)nQMd1Kcp%*Ey#QwK zLj}D9P}Cyr18{S6guNC?IQjL!6z20JrARR~(D1j{ zZ$Yx*OK440JsXyfFaLJ{=6!`3AM1?|vT7;xXiydg@I3}V`GT|OP9I%(nCmh`U7~J~l+`$!jz5{43 z`^&vE`>J%~Brh>Fm6G6pc zTCLJ=5mY#sbQ9i4@Fs#gMBag9vfgR~z|1Cs=X?j}#sMzgUHu6IF8&T#fBd=v+miv3 zS`LZi&j40m!Sf6nBhCd~aNhDk@xr5CaC+hKSAgN;d(V&TR{lfiWZT)2 zh|+#T-&t`Hqv&XfnR#<9e+O{)4_HeC81^k7ru_$iHM0|g*Ele~E{dKs)Z?3m@%?Fy zuWkxrkoW^Ao|Jbkg!=vq9{|2U@ON7(&3IX+?7m!YJ|Dgq}I4&m3 zX7n^t9EBVK*@_?GEIFLW3(-7k0r6w!2eB(`@i&j;o2l=HgD|-AZ~=W=vmra$CK6uE zl{|ef9Kw)D&^X*SMjuoDt6UuiLfhsVawRrhTVOKh@l7W<>q2vO0%BP?UZE}Az<3*x zO_Z3xPSbKup=T(7l?f4pRj;eLtO@_19WX~4;U7q1bSPLpzvajM7K2t8aK%lbg%mdj znP7%(?JZoA^@QoZb+GB(k^p zgzgQ;YGEtZzn#)m<^O6OqT08Q_`qX*P%tg>*dK_Z;Rp<%=2t{z=QzG28K;CEi6rT% zYX?Q*aPAXOO?s!2YKpQ(v+53SqH0`;6B`EuZR!dyhIDsg1dh-a^MwxVMJ*9IARi6j zip4zQ75gd%&Hb+9&E#KmLbSDrhEa6)!FqVK`=uFg> z{27`hshJt}I1no+P4ubsOQ#7oRwEO78?;(#{POdxF-4~X~r#Nt2_Mt3QG za3TSa;(t)>v-<=*5tx+{(Nzt5jZIm9Azsw>Szk<1dBf~!2t5MvyG(w7Gj2=_4pIq? zo`~j#8<|FzH*k~CoSqti8@Q%hA)L2l0P|8K`VcU|lN6OZ-l34|JY$TjDLjv5ACVPc)}?jX06sA`UXs zk}m!nRWB0jIT0}vRP$Wpx2?o7_Xfq><$Rg-CJ`pF4={x*61%C&7f^QQ!GFQw38T>0 z0OR_*zBD^YYxzP&`a%<& zIuYJRI?##TB9Letn-q=b{*!wK=V#K+0DAUn?k5W#3_x>1yLLlVE@3h(oD6*pgV!1XlvDXY=@UeMfJKiqr%I| z1j+v~cHMzd7EjwKaCd>^5^@AcyE~9xlF)k+dQU>{As`3{B#~mFC3caLsANUN5PQRb zy&<6f?3CCQA;hkL5W6DqJ+qs;+j;i|zrWw-ot>SXot>ST-QC@aQoYRbv2{Ehn992n zwZ~(E%W-h0kO5421J$6ROhyW>KhP)6gJwfE0Kn0$BU^|yORbBAJe?qWOi`DC)Z=6i z)XqjWl3i9$I|y`hx9Hn`vrB`4NsYAck~zdffL;~p@Y_k8`8h+0)02@H>GN^Q251=Q zF51f6VEt(NaD2{g0|D`Y_B~V^gXsv_jGz_|yB*#OwkSnOb(tdxUeqW?s#(Z@qb{a) zV?#7YQM*xiuKIkPpp>g5NzU46BDp)tf!m}^&1F0IOwg^4a&)lt2cr|323gd0TU;RS zE7uoDMkgDXl5#ya#1`Q(_*@f>X>P+00fTxqmN?%PYp+*~iB=*kE6xx)HAh5GF|Z@(?c_o+ZvJ!IMWg@$$-KIcBHwFmT{tel$1UNy=DQk<}s`9Ce?$IinGy}Qjfi@apbl5#zgC3CG=EL z>j3y=pjOowbGyMb{c0_i#h(LA^b;(LuUEp)#pi7uA_t3u3#`}jgi1Cg`&6=dInZfM zp=E{Jb@8*!`8;4snmW4JJx9SZ6Y~Kqcv8zuC^u2R#&H24g&iZuiskF{4$4hDOBr4P zU~0SrG3f&1QVA2iP@%md{lmI$G4pdro&Vo|i|}7q!vD9G#er6iF2~zh2OBn)Z(3=t zDf683fUZn%;QA-_Diy=zD~zx7&WI4(nsPI6K`mJ1SA?PYM2CFs^L*$l1L&yA`fj_o zw^-I_3D7fAB1fF}tx9&BVJXlV&!MPrS4w2ENcR{|_sJkQtFc>F`%7tRWLLXCSe|jY z0&BTSHUqB0=bg<_UAR6KNeeWu$$%xOuC4`^HiJSe_G6rPCmU}Qut$il3H{NNz*?-5 z73*9JTy`hSvRn3Jx5H~2%+9X>y6DA3?RtC@vr@G@TqMT&wN}{#TLnzzOWFjJ%!Q{MW9S|lEi z-kqqusATSEZbai1Z5+6FxEUOP!@Kp4vvAN&8nC7Cw!w?z8#8rHkb}o2#LeoL43V%m zkyULp5iCq|i^7eemuoF*W5!l)1-Qd&iJ{lZ%$UwvK%(0@vUqq%FqOVdVVa1f_ORjn zkuFmW*8!c~-Z5OvOt$VLO>4ehk#0osqJEZ8kzUKZ0l18g4qQaqJu=NERKzpb8x?wl zLD2HdcQJ59$x!0L9+57({?(ER3kE6VYBv?iQlkDCC0;xUt@^Kmk=ubTNpZxBlRY96 z#M-xY-InUbHo$i%bT9EjW5XOW<8~)8@s3`I!9H(NpX0?l^DmAPJ9;?kiKtdFv10MN zdi!#2u|QR+`Y%?jZ-wW@{?*Z@AOygBJ7X^V^pGDN z#O_{^O+{fh!|Jg=Hmg4{G$zo8WVjp=N`~JJVD&x}>u>Agh!f+l*6+k(z%2@>6~LM^ z{2pL1V2#A^-iZDc_BF-Vfk#4MkI3(d1^?{F`na0pA60*J`cKl2 zDIm6DeH;yh?^B&DTQVO9FtsoGSkVV&0~}jdL+0W>5kObA8R%I|Xe7pK3T~vLh zFJH_%dQxHH#DTupx&Uakbj(Gn0J{2fi)*4rjdCA56tTu)+ZT!2ZEdXAI~4}KPD8IR zAfBfJz$z2SJl&@Qz>VpVi6ZK-E=LA@CIGBRhnjMrIpEI%o!cM7la&F1kFD`&ewK-T zE`VN_9Ft%%O-$g=D`0p`6 zA~mLyIQ$h;MBTu?3ZQ?8Bd)YlObc#1O~u|_ixvM4cC-{tztM@B?$#cK9%y4gF^;P9 zR3g0>xX6J>E89E@#LV(*0A>tCd4dTH4xw~8F9X%r$>l8WjC|m}-1ue|=buC+krRM? zqZT{2FkxbZ&dtE^|`57JRHFR<7FlFI*?pc>E!lXK-Ua{%{)3B zOZ@5>!-JOXvxLjrfnU-`VDZQ-Gg3G#NdJyP?hEdU1O3hv!4}L z9Y90bC$tj<@Sh-IoNJbJ=v?zbq7#FL^n?gs&_1hu_GA`5^_ zIhlwGhf|)I(0WUW92qR4g6a=IRRxPWRwSaXxL1r*96gzs5`r_+{UIoq42>Kn{%EJi zQq1Y{5r7$EuwOnt6bE{G*68A4&-8w*fTJxKW+y%Yrh1HHfLO7|YM10xNxvn&q142A z=+UPDUoqA(1vL(Oqh!CNEXM)!8ObtloMVt^@~PD%N{TE+{W-DtTjGk4Ok_&)%in5? zHm(H4FMuf@9(kFiRdd!I0`TSE^;u`mj4y%NKEcsjZ1}^XzN!mkXAV;rawj6zW7-ey zsT~2e=t)R#tw~23GV>A?$T5YG9gbWPt3e9Jmn#tAQ){J8^SJg3M-qh0lGbV5hj^A2wwAm0w>|f4BCD=^-L7^=osQd5_;v zJEt|_n%j_X6{MR;`!`X4cUON2?>lO1#WVypkXY7is2uhlXKIH%4;}j+)QYA%uuFUe zDcJq19pPffG;E)CZ$YH2?2O(5Tfcu${|yp3eXUza!Fu$g0yYx+&+0z2IpKZ+F#DVy zr(sj*7(PemI0kI$rtK4$;XDpRZk?ni;$UWE+@`mZLIy@KLwrKR`NYtn*7+lt!T4E2 z;|1!lq|lXa!BtL9U0UT%2Ec1BPSQ@4GhI2QFsWkXCH%08T7u~mZjFMB5rreI&XLWP zeZMI59YNhRP0Fu;q}ELe833tPtj^>&1&J5OFLQJgN2h4pHYVlYf%DICbhVj>inl07 zZ3R{#dh&-tarRzUL?z|ogGrrLq^jPl>W z<+_siq4UOq)wBGgFoMn`#Mybs_aNOKn#iU${HuYTBE5dnG(JQ# z!fP*HTmVU(Vc>fP#$<>`{Dx{WnVn_7JlP;=Opv}{-tM^oFe@TyTnNMT{GuoG>o z>;sp)$;n5TywwFTY!aRmNgooEDx4Q3l(lJZxMd6xbsUl-G?FDKj0;(j|_l();j8G$du+ZIeDqr-XK2kx^K6 zqKC%}w_{6cQ{k=gs&aoh;BJEF4v)FqmM4_v%8{i*wo%}zU^!w`nahztM;6S=hPkju zt6zGHyPN8IAcey$R6_udEq7cgvO4;$Waa*r1q@?=ZZ{SAo4?|8va)?v2;>1Ubp^P+ zcYMPbvEyp2t0@UaWxvUHBm5UV4QI1wjEreazl02o3P`b5Vgu-VM`F8e(*X0)8!I$! zT4iJzrb&SB{ArPK7Xmg70P`NK8zoM)jjSh5U5x+|r)_pH4*!LDleFS9R+klz&*dwz zor+osr^Kd5CdGu>UrHaY8&UdN{W_w|pVWwZh}@q{R6khdAStsAW>SEejsB$WAv*?O z$VPYx(=4ft*s}^jl8GN-iZJJt4s0njg@$|zJtstrr5*hEoVJEKKDlAENL&N`+1Ok& zwcIsnrqII(bHP@d1DI0?_8z}9NxK1tC2%fPnEspIwQ8xf@28x#Yt>xzq6M&Pav~>* zm(An2HI++~spk-@?ixKZ%=kNh+CCVmj z8-Pn@V#3aytMB(@>+C3XTL5>@jO-|Oq!?R&w(7P6u&7PaqRAqsg%LNm}}soZcXz z6e4u(SP-geueT=saF%pV1);tjv^7W_Ib@hlz?9#NgjaG$ofzw1XKJzN7W6Ma*{V`} zQgi{ey|-X@44^icY-V%?rf7ELNSh>}EQpSv<5*Pq*A304;i#S4D|YY4eZG7$np)Q# zgip;zN<2AL?+Odn_5j9z8NvWZ8td2WU@=iMdo|ka2~757k@+Ia7i(EZ@zzU$ z6GYkcIx(VnontWlruCf#Yjnp8626E=k%gV?phf!%xwzzBCxV zi7~RO%)*{3@@BK9A4tA52eXDB>@h858h|xjlS20zvAse%zWV2)c7fMyQN57ljEa3S zz**^}7+G$r3qW80`-4tpkEA%fWR*Y=OPbj{=)bisKDAjA=p#N zC%vvbh$QHr9Fr)rUd1yXJJOT1N7>j^8(fP-#@;OTlS4!KeMxu_2oI@+$BV+gp!_rjzSK0Z*I1L{z-#>}uhH6~GQ7vZrpxO3Le68E80x`rQGLIYLsuXoN;U zI=OcsMra{KGG{#*Nz`(u#NdrbR!VEC<0y%|6ESljt?DR?(|GYD!4FP}u`Qlt)n}RD z^>n`^?FK=LcQz#9QM@w?gdn_ud5cBm+o*~=w=@nl5bTnTVC%B~RJxfBn(p+ZL7Krg z%6Z2CQ^GJz$;VO$o|p=6d+g@EaUfJws>(#Q>A=jcTvOsX*rpO45SdrbXPY20eo5}4r z%(YxkIXp%4S9w_mj^8detz^?kXeB>Vakx=au)6L@qaWOhExk255=63?$2k>;54d);UCN z<5pGJX`Ql6+2<1S$s9x3*_w7aiDaa{rm@fS@VRIa0s~AVnbDrFAdSV@d)1<#O&3OM zK>!#vI*DiGEh(TY0>G5T$OEBeqnpMuvoP?>j+UM{k+ltFPv`rOY4oDNe;bOM^1a-cR(47k)DQ_L4Jjaa z+I>(cn?90-l1CHi&iX5XOq(yN&*Jro)nl}fX-G|jdbb2Uth~=5FJQA3IID(RO7a++ zG&y99S>Kltiw9@H_}EM%cCKPM2$hf1r>yKSYwRjuMm<2KclsF;riE7nvikvqLm7mh z%(#Y_DxZCx3VPivUJGgm@?jS3xF_XfUfK$vYaVpidTDGsvJ$|Q0^GU)vidB+MaFU% z=sAT|z~mR;1|yDP8Q;~wJW+s*uZ`7aTDu0o1Cx`q!XqhMHU$cSnLdRXb^Q{CB78nE zMPJFy@wpC|Gml_=IL~aHuLmaYQFYct>$@bzq>23vildK3Hnh9KL++bch;j>vCR`nvZmH%7&ObSzbQ9-2 z)a`qp#X`W22+C(UB#184*-D_Z&pPmMxPG)&Jq5}f>3h*`@h8;URpkd=bS1EP*8$=3!uRUb13jD1%*+_z2Njl7u&e zUq%!oKhFrBN#C2jk^N}kmpyriM@@VMeio0?u!!(u3atfN!t^JppPZE0Msa}&+Uv}gdIrdxGdln*-|fI{2ai}wg_HxuLLEC5x{=tp3g>IhU(E2+Q-MDo+vAvN zjXddrm!|4+|$4ho{)S^;uBMA>gQQt@V{bVwg_4&eSQ1W(6P5gLKrI$Qd?ZAu~_cuB^>U=Y#eO3f)LNu`+3K(36CmEGG|M z1kPI+*+&%r55aRAKIHPQAJuwE{V|rnnzvyt+AjlGP>8!CxW14(Aw@vdzps!8e9K}+ zi?wUCg}~;blU<-zT^PC8Za2%qsILMzx(H!Zo4SzUP5r8ZW+~d<4PZ`Dl77R1t{8jp z`D_uc{hNB7?guc_xR=;Jx*Ut|jD?0(ka|S^R}#f$$o{_uc-o@eE3{j*#^vRU-09Ay zqWE>gb&<1%mE*k*o<>}+XO@`7e*>SZ-^J#oI9VSWhWQ^b1vlucg5;BJ3f=@J<$Cz& z+nOg>{V7&w@|FVj5bxc{WTbn!Zv)fjCf&M`x#W5{<)?1a6@Vpd-vuV~=A_Gm zdTbM~e@|f=i|||6nxUu9-v=i80QCHe7jfG(zn_gIsrM=1FbjtKC8@e}zIH#2{TJ6@ z%VYCk7c&Y6KrQM<1hd%fcycbX`jmsfrQaBtZCSIJ#4CX*z7bl9RFl=)p>o8s*W#7k zS_>9GAQrVgMRs{-iN1$7&V$j^*( zqs(p`4WQ57g2)l)n*pl>z_d+CTJav+V|}GCDd+7L+qQlkpt$C9M^j7FjO;fAEYlf6mp91L2{D!fj_&z=41|~vI-!TBC5+;38H;#bTzL{&nar}~c z7-7gA>o1A6(-x-XClneck4+hd`8hx_YE6UsV$Wei|JXWl5@_GLNUxZ21Wa(Ul3V65 zo(iDvK7uhZhnfYrY81Gug{qkw_yxed_p&WArAg@K59v>LfwlM*n2IVKRxleC%wqfo zVEMX8X;rMF8Vr?4BSfK+-^mD-U5A7Y?|Kj!466JAy8E^zX&1RLjrtRxOR7<5bndzs zX@9J3vt-j>K&P(9sX5-N6gZose=D+h4T%jnvuOVWnvOgh-y^h^n{Li&05iWr$+CqQ z4*1G$(gELp6(&(6eGOyEf#yE<4A8y}2oL`B0P`~RlQn07nYjV=nL8dkFXkLDj}fNd zLpnyvgJmWzipF^PzlAUM-b4CY#Y$zuqJh~MIY2CYSf>_T_~hu1L1!uLn_(mKK;27B?)jvpTlR&L5Q7gD9W*BwVsw2Vu zTq3!)qXDl6cv{}#AtMJ*oH&2+WqDT(&YQhVR336QD*X=Qv;8sLXT`FR(*4QTuL^Te zi+gUuRbhMpSOm`r{`dai7*hI#-bGfu;sV575;=lH*v>y3kenwphcdW1lln!Qv-*H+ zEkRg``5F>OMXgd!RMgslxL$t@mAY>|p`{^Bf)OBC@T4AklDoEh(`s+}y$Zx4iJ1G= zn0Y*Q#sfrd0&P2i01-CXmbe1hHObllP>ZSsVky|6S0yurhz45+e#W`CqqCghqWBK% z*VsV;`Erny3hmb#Ds-j=!zjj3M^8G2SuiY&>`@rJ!*vR!*t|jJOE#iDbhs^M5V_)3 zHDvM2Sdc8K!IdSacIgGG%$zk=n0EZkk>>KU@1gVHvvF1h~9slb#M5DG4FpT1tX^ z>!yH2|LRz2=UU5nP{Q*`N=sG%9Y@_L{LQiOe2+bBUG7zW`#PZG2|aUt%qo6$u4IBm zrV_wJ^$ST`f_#QzCsGRrf>eq+pRyQ)%}Y!W#ZNT2M@-xT+IMW3{6M*7k2$-5#EuVWZ#Sefh848YWX zaAk)X1(LB`IY1QHY7XG;U3$1%F6iu)pi6+Rg^6O ztU8Tb?f|ri*k-HR3TXEpz5I;D>09G-;oS(`@wf@4siaJ)M5YbNbZ<#aU%ObU$zNNL zJb5>6M77CkvANq0!0fX$clEk|9yVac;S3IyWHKF0b|5CVpF=bZ%d=H1 zrVG&#bPu0HuFrChrM|mMj=pG9jq^hHYNjZ}h3?f%m5_GUcJ!b{Ckgrg-L2WVw#D<^ ztx5T4sg;zE?t)I93v;%n!L^8l`J`QeOMIK1>(Fn6>xR!e-`2zJ=H9kDFz!p7xWkF% z5!iV504Dbm=P*%!vr*N{_BTBNtlS#e!AcBDDf>oB*$bGH?^;g_rhd37Shqm}x3G6o#1fNhDQR^7ueLlj2M znN!;$>s$ytG|=+F`DV*T3Cb{_PlP+W*-e^2`dN-7rJsiboLwH7B{p1dUG9`EW;gVV z06MGz#{FC`rfT~079&ZE_B3#|$2&!#ahGf7C_JVt75oOYJc@9+kxpDvy3vUzQtzir zus*YTE%Lv2KB+x5yaE4>uKjP#`Ox&jlWc`vc*+d6Qv5)e8^>4Nb%ISgTnLtw&SY!C#7_or7)A%xf7FLVuAoH|Ubc{xaa$An;)Grq~wX z+_O#3l`F$Gnd2~6?l1ND4qL9rz%2n3)fwMlaUjd9a z2`Y3x9cEFug+RN1Vm#9Hp_G;!PuLSz%$1gCU8F~rO z@lODa$F3}%pE~x&GJQ*duKZcc^aahR91GedE(2t5Gv{hCe7~{KG4EkH0h_}>a7WPe zz^?)@c{^4u9!_Hcn5%)AzCCh?c%nuh3YuGTOoxNBYe?49TR3~$d3ubsYeDVEcBIA* z9I}Qo_=)xv07gEEyqD=aLNa*ZMNd($1h}B3bF4`EP3Mtjnmj~9$BtHk$25`sx2uyV z?u+};!GPx3NHf3&WHo4RY=th3{#~ajg~+DS8UXuMpzv$o?|S~joWX?(*v)QtBQSM`Xz*h|03BC(y}9P*8dy zno{kE<_#p=zw||zO`#j{`5gOfdZ{-7v;J>Aj?UcToAEiiozuG4F!l8o0L%Z;S&Zmhok1a=i5J1I1BtQ@&SbG;J`MvGwvW@U zXaQ%Tm3X}Zb~(=_JZfyH1aJd2o7K_TkFNi;`tmI5xe+AScXW;rea^9KIraQ^F)+F3 zbQ2krm(+%Iv{*tdo=E9QY`Y!cLZwpz|x7@6Nt;CMb&O|%faxmDMaW{V1^$gYwn*a(c3)li+ zSUs;+GcIQx%XQxajQ`olR^pu7R3-hK##R6m9bWB(5!r01Ayf!AX2CivY*D!n)H0sKqGGIf zp&58TFa^({#Kp$uv4Zdi0QC021T@R;Sit5%;C9ycY6t9?O?!xVdLFm2=QZ$Zx3%qzla?OU%G>uBe^Hd*`a`KL{>wub_j*Bw-cCxe$dx|=}xi+PK>h& zPpMy$$%tz!g4v^|0jzuxk2T>977fS@&ojUjr8{H9%rxwV*=@YanBoCD*&zyXJgdO5 z;@oSAbw%OIhF$p|{N|456ndluW6r|o13aW;U>9Is^lKB!ej)Hn$Hv}Cn$qd9)E9vn z)!%8GLuQKk5&@g&Mof+++wHzgRv>!-mM30eYWC(8Vr_tPxY*T{d3MIZ#$5nzjr00M z?>K#Gng;Y$1++Vb9MrYlz?8iLi#>Cvv34+num`}3c&~O>0Zl1ci9Q5FyjQM;B4tZN zs>n<5whGBs>K9wxUIVF=T}W>8pgq&?*MTV*jOoWP%!0iEh&xHQU_tTA?xlmR{{a*I zDqiI%o8-hTR7v`LGA+%U3fmkQ*KL_W9d@R1S4673M)k)`52v zE=4T!>jHynsKqNA9e9`YC*mbs(r9znIMc@WKy5`cT^mgudmotS=GwZ&_}PcAyGI}> zz~{Xwr~Lqqx>Rq9ZKn2kXv!6n{q4lp4O}h6+;;8xK z(Xp1f#BBQq3fR*o+032a4*^^=+S%V`q2$-4eFWg1y|~0^dk1gmIH^pSvr7U$R=6pY z611-OZ0G-p0yYt&+Gz91%)oydz#YnhgpTI^KT>s{;g|JowE+%A>ZD^r8=}ui=;>pO zO%_|2zW|{{V;~)yX61}#`NTs&FL<5ubvCvBFcWeZ?V&eRoK2Lx+PxZ+u?U z*Q>emQvX=2>mOjwNGI#zk_7xx-=$8SSPumC+qYtMhzSKCCe7g5kZoYbKHwOpq&5N6>VTU2GUrfRAO+W1wxKT2^9SmK&8kT1QL|}pql(0)S!U=QAe1`S z=@Ak0aj=;gmmp#VmJc8>S12I z*}1Ao12OX!ybvA~*tf1uvVEq4jexFL=)^%k6V0R&tAI^VC5?JxE*i62jTIBPSmK}^ zI^+^JAwhccvG$+y)eRSg)nRpn@0aL$rYKZiSB^j?Mxbf%$CWhTan8yX- zJAR4A>4NAuT;;=3$85&O*TU^*ydJboKu?Pbs7U0w`cWePN~MJQJkjk#VgOzIeH~ja zSkxg2=<2av?O>IZH1kEhz(ik3&WJgHY~}R=6yd_Br)+H0kbJrluyR}HG zr{*u3r4T6XLll3VuPe-(YD`sIkqgNFx)Y`32 zOI@$J0CVmW?7_gVhG8pLS77>nileya>l5jf^sOjw-VIE`w^}~u$|b@-C8CiioaNPS zo@N1r?$n`^tKiU`k2D*m9$@6er`Ua7NLq58CmrYsbopxg>A;rWUI6BNhA1(Y0mJkr z%p6@qg2NMRun#Z?J_CC;oiX*PFZF$Ap?%tbr7Ze^?%_iFlm*+2q!G!QPw-lVOJYz{bdi);nMr?Yc-^PC17OX3eZ$7K83U*r z^YuL;lkh-%&Rw8Om_AG0CzpK?HIe)ouJGqKLa;5yV9+SJLf>MrgNXZVRi9}mI1HbsF4B#m6a?E$4hQDMBAo$N=05_TUp)lBz`NL}DhM9BkmEy# zE=B^K^(D51@n7PRE_SNj3`&hs;3=X_zCHr1sCKl%G#BrG8QGE(i>EgQh{Tak{n0kUg6#{gJz7}t2FTw@fXun_fFVs9;G4jz`VMmN}| zdK`e6w;^wVrZwvpbdsc~$3WEM6);6?ID+_J;xb)?nCKxLnE+t<5!g#M9K0xKqQbNm zC)dF{Vn7)~rkX?9G8M~A0yuj;ie-Q^7Ao4)vr7Oc6MBQQjo5RQzPV+SUS!T0ATu{i)1tky%HO!RZ{Ir|RGt)oX{>frini{3UCZ2i1E zfW}S!c)y%&0@%7dkBn{2omiJSNy#6pq?-?t2MV>^jF}W%07&$8-eKZIb&Nwy*kf$E z*%doiD0E(Ek0+xWY!)m8rm7UPfCsF|*2#s7q8p3Qg)}khtP3yweH9Z!Mc0}IFgvms zG_$|KeYLI|yuG!?jq4xt04%yeU#HmY%g5)n-@tU9>}h>WL$DiZ3IKfRo5-P}>v7$k zG-Eke0vPr!$|Jb0u*l#Ng=r*S9p%@8AIxel4Pf%`hF##q7;srFu=Ez&;uX0h(?)bT zX~~Q&*h2r+MmMigxXgFHijb9CV6o@TGOBk?_|*hYy~o})G7lDC1Add&di8_F57n;Q z9l_?c_*}8po1qP=zKvah&mC^lwwf$ewh~_}Z`1Uf2OC%6bMC#)#L{~azE62sbDSe`6*W^CGKy%&W095;bj@_opk zgYVExrS_!4(Yeu^iPpjUVD6ZxL#Z#hs#5Cf7UKJMJrvDkbSpluxx=enDaU5hT72I7 zBh{L}YzC5yHTgE6OYYQ(F`sW8KIc7vDg(~5Y1P&%V63Qm0Ob}O&6d#(0D2#Eq8Qj@ z&opcsf%ZR)Sj7HPZ~xF7VC!vh0F(ZZGs)6)aC%DN(w?9sfZq5MuB)(Nf^mC$09|;O z9=T%{=MIJGVAnLuzTF96^}~oXm2LKR4|RqS+oUiy#6mu4X@E{eoqCPL(O7p~yM8c# zSKyb_E&Ap`N`@`{cL5W99Nx;&E#AQ)_Shz5a{#mBQEch9-J>ZxPeFg2MG6U@1Kh(KXG;9S|1aT2l_)t!=vAC_I1v$TKi>?`IkzI^QL+=X)n z=gwZ5ccs{QaZHkk{3+65r?<3Ykvvi4@DXaRa0fPO7G2YeT^>chav#)+UHIwx$M8Az zRAi=j;z3>B=Eyuwjio<@k>N-(uaYCG>wbbjJD*Y}(Yoges!kM1fs*9gYo#D6H{fc4 zZ6{;uSt?pdWj&fm?E>)|9L&|Zjbt$C}tMpBAh+Xc&)p%;Ovl+pxLok{Sq(s72`S+{G##5 zCdO+3roM`EWj0pFWb}2QOa4GC(+15H3*NvXVLNIFUdZ+-1zZ_uKRYEHul_n*b;Y*l zy;}NK3X+8hJ^=0AeV_>H5(Oh$8 zz&^p(@_(>>;l4IotUo1wPQHc3y0EVi+%o(58AwK*Mn6ro4E_BbQ+r@~BjotG?CU$u zLb0LZd^^W4K(Oo`7+H3-Uj`EfZ$vPs%a|Z9KGZ`xW^kX(vXmQ1xUM;LcId(}W8+48mo&E14 zw~7jLEB|seWp7|rgWAqB@Usisq;>dft-D95B57eT!(%!RTR`f@-xab_N&EV^M;KZVAH5aY^1d62}ILCaOK3ji;r2_vZx@YQmx>8T9&OJHU(zl{z+z|#ZD_wtu^K5Fy3Y1A5xlmpr;Qy!Y1-Hp{9g#b`~;_sJ}7a8V2vkVDvhnet%4t*{sntE}h2 z$uG9)2K%A7#l;|Y_)7%9_|YQf(q00Lx30Uro$F@Kr8+=oA3?xrdR@22GNV`=tF8hz z7LiA=BjJu7bB60FV2WM)%s+PoC?2ir#$}((b!0$i02o!z0Gb-$0=lRQp$44Dwv3$g znrY<1fyt@oPUXv%DkNcEMtuM`)^n%ZIWBVcvG{BQp!e5vXNZjsBQY6VA0!iFz(fSl zkq-AjLTg97WsjJv8VO*w12zgSuXRcV`!BVUb_8xxq?0aBH;XMX=|+KW`PZ5Y%-o}B zd``q?-sKIZB+SHNVk_Gg_KNky(iw9H+K7O~4u z+upDR>Sd8WwmIFx7S9&M;>Kert>O=g%jVfZ>6U2zz%d-bu_4JurWJt6$1yUGjkJbS z*{p00Txt!|Ej^Oi2A{)D7}*9UySBh&{-OteCEqlAIY%}{nn01G4BwxMjc(j^0U@^>$aobU68i?Xh6hw%O3 zy;O4~^l6u((Aw!9){j(tF8V_=hRRoD&P69+qW`ow7omyW8J{a6|6^iHt)q$EMQL5` z=z4f1@JAebW-%{nUD;5IG<2omDF4Mi(jZ5V@!1WGPk$yBI2_0;XQ?t3X1Ajh9> zA?YE<|5s&pE;#-@LCt?!mm3pnFMQs~K0`B<$S6A98=o`&)ptHD2-^prtNzu4uw;y- z2x&3st3;SNu3o(GJzU2jww>|vt1Z+?GTAMXc|Ypb8V}Y+whv+ANkf|l{;+Pjl{PRl zpAKN(KjB7lXDnz0WUI1>j#{n$6EQ2BwTR_g`-5b}U(R7jmTImGTTTZMv7L>uoN|we z$!#F$l!W=T)A(!=8-&jtF7|0t!SqfB15@-5l@U#@7b()FLAu4Uo>;o?LvvOb_e1bY z?j=6$wgl4(3{_-fME+@K$I@Q|5O+3kV-ZZ;sB^%Tt8o5VUs0FoAZt6%I$AF~V)a7n< zG%sCe#F$y&ax8Tr+@}>=lQ^X;$d4WeTAQ}HQY^la!dx*naW;NE(ru z)tAaIBAScH6>8ix11HS{OO(t8<%%ZmUUrn(WW5YPzr%%lYfb4h;2Z$mP2KjuK$Vwd zm}2a66~i+Z*J~|4P4u`ad1@V8X8SG&`N~GR?IR_UlaA6`^CUe)Qg-IVG{dCRvNWWS zazfFA-}6cK3zIx;Ei*;VD7L>@fCe`<_Jz*2vPJ9)eDyZLsp8NN6jo$-8=eP zL!ZdXi_>B+awymqco9hL4tJ%K-)0p7i%%^E@K94<=*9$joK9|JXsOS`=c@XyG>iYo z6e=H>+y*YZZ56M-=*KVxz-)E~hP;`44a5+gn?bscQ5G}{&Ft5H?qp6UKbd~ztSj>!q znzP#>WC!TVRw?8SXzFT!ixS<1=j{NCS6rjeeQY|w+=**}OHYE;V6Dq?6)9+%;wwnd z1_ndug=$Kayw$L|NW0XhU2GCuLS+wV2`!R+ZRCEOMwQXMa@UJJ5$+1}e&b8E4-&{&>0Lk1~tT$XTWb7n^a{FQa5-!@8TuXlw-e}}CO}eCb$w%5lu~>?)ZE=)Bs4Pyl9>kqV8W$v+=@HtzOy-WcL8{^leSE% zjT|da-b~%x>BV%m33iwy?*_@kUfj=V=WOXE4_g4-(#01#I>khB55AWBTwU!hu#w&% zyE1nx&~Cr0rKswvYZhB)?gb{t?;0QqyXitS`{I9*c>#BgTBW2NW77Y4*-U=Fk-H{k*uk;et-*5ZfIku(uqosc97|Az?RwmrT?enNtc-NPW>yA?txd<6^c zqU8*t82=+Apy-wu6B{;IUinc%mbY{bvG_jJaXHn=u0KX>E)h|GCHTa_Nj~k;I3}OR z!JefcDI07AD$$TKiT6ED_dhF<7scH zJ+xt$ty7hDMJ>FeW&23USJ~yU0PO$>T`oTkb6J({!!2}ys~yNolC;RX+)1^gg;g^8P?Fhy#$q4-cw3mU|-4VmjF|t8sc3&Y`i^(rv#VR{!?;Ab~Jmk-m|0n^6r0VZ|0Z%Al>CDY8}?IotCcZS8w zEYoa{^u*hZ@F`FHCJf7KAeP_3y-d71!WRljn_G_874BNGd89^9Zk^;DAmx4ojbaY? zHrMkBU$LvcnB2t`DTeIVQy)RCm4A_+{Xd((VyGEwf{PW$zDXUd=mPJ6bx_tYOP!<2 z6Un-zq z9K8z{xZ4~AG;QHw8r9@}u&g%3gO*CJHT0P05rWU?m`zJVXKKO-d>Gv-qslpR&&)db?_?yU+j#6Ee>Q8^=n|NI%A@q zhfUcbV)Gm7P;t5%1}%mtWy<*b79=}%`G4^D9e~ri82qssuo2jqFWHqJm==qNy zl<^K&M|lEmXAg8u5R;Z!OI~5-W5q|8`BWwTAu#bXz+r=2 z`*)#tKV&{m$&nrE>c#^N{Dzep0!0jS$uzRnX$UUY za$Lx-{{?U;b@Vq4JJM#`!+m-|H4n1=X~6zUq@#zsMp^3SXxt=-s@8rZP3?>AuvmX$%5ouR5Xezlqn~BeDOonSMd@BUeK*KmUMk^+;?+&xdAQoCZ2| zl)c?FY5xoK=w5DH+RSe_1K{4py5GP)pQTnuBPC+9Ofu*49DtR*;9LS|wI{45;vx@( z6g9vjkEmKzFSzxSLZYo-m8}fF$Ff|h)U4Kdwso%uOm?=bk2tqPS7Daha!_OL zF^C&*5PPD<2|~qv+(T%7S$$BJ<8~1>?;zy3xx>$5Md6^9yxgZ)iNDzNPOo`R0C?&QMLfZfLh5! zxcN-&nThcLlDbkiF_I~khH3=Ns!0fj*_Z-qPs)i5XRMOb%)W`1a$nYDW00#^r8mh2 zwFy2~PDV6^GhH7AY3xn8rX&XUFpo^+XnGwqyHfCEcH=-XtWfv+Ne|>_(t~(>-ZvGO zNStpHvk^)FdSnK+(2TuM#4$MA69L>?r00~`tW3h^g6Xiv`PccZ^(@TA@hV`lT?~;? z^eJF_ac(*yAEO`ApJHKtm|p>7L{@)yQ_FcaqA1M^rT&|dh~J+91Iv!4$a+HwqWDsC z0;T34IKfWFNjKt#8*BZ8DgZAL}7))gOCgBiIfY|6ELL9HO)uPv(lYmrV=*FAdwMqNp9Q?)sFu zvzh~DfI5JD;b3=~MRl3U=m^ZKgOLWj`7hKc@^Uq{XHN#OW<4`@R5QxFf)rp1=D{oA z)l)&=M9vlRO;Q2O90DhX16g#k6Y1H`ERPIc+4R%$wp-^~II55i*zdd9a@2+3DGOla zcr%3>?sh*0tsFuLa%4mojXJ?KuznrsiAcVQ16vnG3>$rD$g z$+u_gPk&KJR+?QpuGABRusjtsh-@QHEp#Oa_np>7TuPdvI=w(|(VbdUhex4$D^iso z)@vzJHu*UeEj&R9N!lc#0RUEB>GFsjk&%r>;bH{zj^6ESALh{rlzWPms{ZWaNK&S~6FoyM zDIAvn97UkKt6YP`mTkJkX=tRXPr*Qrt_8)4sB+(g(D<>AW`d>6s}UBo@gvwkXDMJ; zvG_iHhOt;gHZbX#IFH8Pq?dX?r8{!+Q}N3fu!hN>@pr>!BI}VlPLXphYOmf~8?Ws| z+3Xn$$_3ZDdU6S?b1_T{#wlQoIQW2XXsFLDrZyg!oD~##dQi8BrVlm&z^Vszm0}yT ziTIql(o8z&VXjGXI9H-E>=>*nXS&jpLGtG;IBGm+B3WYr+9?WnsYrRNE;`#mOS!?{ z!1Ip!A=jw@&&YOOE9Sw0!)2Y=k%De)U^?o{tMn9&zicH8e z@HuG=65($@W-DabCONt}s?FSg8~VkDIi6_mBF-B*h0;XA* zV(#A}!rTO6yKlnQ1WefsVTiNE3Y{hjEA(zMih027eMS$0GN$s0#LcJ}mp64ww}EeX6+)k8|gF9q=At*FVvnK8|v zvPrZInCUOD*-LwN=KU`RrhF~Df1A~kB}J|RFzhxIla;-wH%N0#x)n6Xt_J4Ji+b3@ zw0_qBQ}&V(NMKvpYk^6hWNu~kjKK?`5X^kO49qnFDAI2_?wDjw+E-dS30v- zA5`WP+yLOty?SM>IjA=RQ*k@W#o$UA6O(pdteog3ple>!Q{7CpZ^q|>JM62fX~<+h zr=y>@P(PzD_l&ljSkce^-wI+0(~!$(JNSIpT&x8o<9}M%hk`<~5xV#9HfrSXX=s9UM7A!QOll>GI1Wa4XTBd9VJ!nAY{>e zoOl||9u{I&>Q1zK_+8yfvCo_EdBzN*{DOt0OMxlb>_SPS=`Ao~0>G-x@aFgpq>^(M z+qw(DzIP*ZRIESi74*7f52vDso2iF87kEaBqx*F2VCDIDgIL;ry*%F>qAgOWS73lhlZ*W#FjitrNRI%RItxPL z#F!>N3e2%jbgh>w1MA#lz-*j_l2%TKc@~cY6aASbm0;NsKLJd{Y*=|4#)GmCPTK9H zMSJdt55k*e@_G^^4}H$GC{Vf`Bve6!D)TV=IU(6m7BbiYYGH@;Yzo^L?!@QvL;4oY zdH;pA{nN7`Dcj6+5Gd|_5l+p^^=aUJPShAhjl`@L0=JC zhR@Ftq3H#lxfIUT)(p1HJr5eGRk}Z7nxPkf$$JE5X!$yA^-?i?X0KiZu+jjs?8Zxg zoScKQQEp(&MqdW7{82QTezWEY2{y4_0VaDcCKfQ(xxnnnE(L5V(r-!Za-O~VtH6|e zjSWZPJ&|~1iMOhYeYXOJYMKRWYfqr9lNtU97{bW97GflSIojkw@1;Sic^uVAS>GDQ zftD8;Pwx!mYe1$gnSZUwof_U$y>wrg(gV zaW@(nxrQ|6L(rQKh82I9wNJt)4@y@!ylWnz7yWhal`-h|?ZDMp?O3>m;+V z9|2wPt1njMFGRS8XA)Sz^Wy+;$3jS-1DR3&L;-OF+O;091qdBfx=z`IPXoZw*P>+1 zLQy{+`k4Z1=f=&I;`0EpQ7>ZRa$+oc{zU+Id=auY09sYooF|9WFO9^E-}UId1hRGc zO8~2X*PRX%a~PPNFCkuW&tf-f@z|{s%&Rz}fQ>}kKYas3O2qcnRSM$~yZ_WnP8jBB z0CVmYm~P%6+eTIgfVbtL;=@KVY?!|apx@6!*#{@f+`6v=z_eFgZLC0jNA^tsn4WJ^ z)Pdh>z&c`Oz9~l?{apaP<3GrLuL0|b<0e_AM?U~vw8w>)k3iL;1?eOHd4PUU=tBv z*RMs48Rid#>1m~-S9|{%XzOcFcVI6+mabZI5PS{&xVK{*J4TaJ}>Y_~jq% z7in>A2Z7ng(}7>|uJ^RGbXATrn=}6c?SI#tGy3E{qcDxcEAJv{e}O?b8vy3NX8_r- zo(lkvzh?|9J(Vln#1t%F7d3+aQ+@*!(5A>JxQ~~f1{J=AHG<=}9CvwHVk5eHcQHt& zEm=AzUlh!Bdc}@sJum_04Fc@N-b)%?RC*Nx{5Cj~i8^4yf0e;R@bwbexnyu#mpXTF zpUY=umo{^3gHaD8PwvCYa?XuMR9N{1bM73#Ww`zN*?)9hiibQ~CqD1q4~c_}7Pby@ zCV|A63&817`b1(8pKyFW9Oc(e%P?ux$LHK={coTCDoX==u8#I=?zhQ61TZ-bbrL2f z5|}E6kz>Jvoo=ENqjM_hjiO=5x*6FP?h-Smqe1B0)o!1Sdo38SA%NwT z7*o>^x4C>S2I$;Ietxz>sXs*pJ;d6nn^EV@@7`e>uSTG;B36H<&(z6SV8T9xYrs8v z78Gd=%=*TD?Y0whciIG)rcM0Xy*Bdkx@%V^HIzGpd@$XVCYad!YlB3w^&^z1*u3c` ze;VG@uS&3%;-@$euKLI|SDd*fF{GL@!9OEBp`n~J3xJC!i9~(t80&6{(PUE zyGX1bFej4z{2Cw2OM+>@togy!OFW;Y*AlVqOFA&gseWyCm}V%0RO`tfF>y;~#A|o9 z0jV4oTL1ck(BU6ZgKd))V@Ey)09bVcE|IkX%C^}U4Fo#!Mt3(GG)Akj82fjk3MSqN z9tHvI?&9C9$zG3}45rV=t;O^zNX!}?0$@>BO)>bRfJ5>5%yHLHF}<5UJ}enL449G= zu92c}vo#o~wCtWZHQ+PA_i%ta{OroI0SiWT1b~%4+ftQ4x%g4J+ejL+RN)z6M^gG6 ztju>5=$7A%_>awkK#qr`+Z%L86WzxJZfxh?i8((rLGskixJdNWbXN9CMLx_vWC56R zivg6Xz&z`00R6wX;>E$nAblY zz}!DjXO%zK=mM2UOG`{8(lY?u`3EMQ&4pq#B5sNgQ*t*4GE7^xSj=dFOFxTWkFz{e zq^3LhfAWuX{4ulkkE7f1xLD!o_|QcF{PL_^8l3}MP}<9tzc{0o&siWg3w)OUPfNCU=wHoXk4`(6(Rg0 zcylGV0>J8j>D;Mt*Ri>7F9bOI3=WAFkI+0Fo&{S3%*heVxz!bJF+R`O;I>t`;LMfk zNi#PO=)I%;jm6KKoeeERD*M8U$?^ke{t~Qd^9lk$o9AFn^py&&ZTWof)F#u~gU2QK zoSEs@FK3~WBUS;kl*X*zHdvtDldSOzc@S6jm=5AD1GUs*cT8zmcyBQ*TVDxHmu7h_ zSZoUm?`}b(A0ap5Dh2E!PUPwonQ^`vn39Xb`-rm>jCX3;^tlGWvSJh>*Z|EzxfbZ6 zOTs$}F;;JyJ^ z($P1Oco#k3X=Qm6CAjWNA=0{gGYB1aLOU^7mQb9^{83Io4jYx>-$Hb^y28^e!^Q-E zD@cY-(*@5WN^9}CXqp}`3rLKRiZMgonqAj?;DdQr=b~DQ~+jh&&vQ zH@x;RB$LVdT4XEBDA3fB%q6@S=-oN` zcm)G@awsTpR{~7ZCUXVSg(@(B4bBbeR7>qMOk${QS4Mu(Ig;LA+8J_m42E z{s1tk3yc9~bRGm|*8)9o#D?`De9phijpX`W?if1(v4HZ!3N3ZiDjIe(&?5jQdd#uY za}JLJb8?Zt5so108!Xnt#{!t6p717?0b!gyu7Kw&L3#q8Gd82df{$r%l%&$pC~a3j zJhb{%ShUD5@@v=Wv8tLU6);xJytHnFm>C=HvX!2Zu&Ka*HJf2h3R_+hE>3+FR;P3k zB8n_?6WTOLzS6T@HJwH;3k@Wx~( zn8rO1bna3;UlQ!7Dc36g2c@-Gv6Cq=}IZC9eAXXX;UWK;e^@geyO`3fHdehGWn*+e8>?QdeK zP7nSfIiX)Z1SeJ3=`$>dk=s0$6i{&L%T>pAmPs1$IMw*vq1^r=JCnVyfUa0;=r%J)UjvhR+l4XT0JF8+eqA?*>sz4r zl%MCaDcx`T4#2(Z^zkse@I5daTN_IXsa&vp`-i|>%NWwIvGBH09+b8KnPh(i*~|@k zubHO&gwK^5bj~PFA!i|lYLAhQH)xAU4m&+0=unUZO$6vTfmT0YkNn;{FG6f z4a^C&v$a@HSh9rs&-k2OV(iV>{_P|%)mDsZfi};l@VVf2J)cW%v1F3+A~nS1`_CgU zl5&T}r1BeC7ULHX3VRTN`;`&(a9ag?)1Z7!nS=RUu1@3BTnf3oq>i^7Sa=rST_tv7nKq&V? zOgghc8$tc8(2Yb&N_d=IM3uxU2Y{j~|41!KLG+F@022~g(oPfT@QYZXF-n#$hn}03 zR*523|AK>aDTr9%$eI-`hl(lC8K8G<)|HH9;@y^IH^Y|hbBK3yWm0~kig@|QhvBJX8rr{%qN{buZoYmoyjpkO3V(j>WD zLdfba;REd6TcvQRL}me5rxw{n^yvz3(&k-x7MQFXiws}4@INhyxmoCY!W$vF4(5ebV-pl?E=R4D2_?++>HdXh)+0x)!m_$ zHn%RYeRX{RGkPEv!R?0`)NBCY&injYJunkt1U`?rU$2^B%|zm}|1lgA<&4W_m@2vf z%zMC}8!{kFNKyD)&?~$P%{JSq!3H22=&}d(d^(g$X-PJ;q#ewFAnU*L52U?qkGV9Zl7>mWoJ%zmRxKE;5&W7hll?)Z^~q zVqsfrkW!Y>9IT(9()#n!uf_mZ^rKzWgWiUs_)&lVpfmwiW_uBEO@MPh<}V6<<}*7+mS`F8Edu( zB+}^2%)lbBdW>Em$LwGdsGZ#I9%+|ZXTF0M!0acP@1U2a`P65RIPs*vXGn5v-S-2N zF#wVFpZkX=(fJ?EmtnwW3YaRo9)~(}wPLBK<^cZuBB{r6c;SsnwqcVa)mT z57t@ArH|??+klRLaQFgIKS#gS#B>1L0=V-T-2s%uj(=QR2)YKu+EKGF4GGT|$qS8H zOH~@~A(_QR%UJDvZ zT2nu-eT{29Xe9&Z9Ui_$4BxL`Eh}vzt5it=u;vB5Ax-&_m{B4g-U8>DxPhCKJ{nMEEHYF?M1xeX;1KF+sM!%wO zjikacFSQ#mC!V(6%FW!u?tql<@wXM3yZjx3eI`dPWMg^+FjZs2!^MeR`kaySWu~iV z09`yTJj(9X4ap~4S$YM2Ny!RtAP)UcYk)D^JAm`;^VAplZyG*2Ti*Kw(C+N;2=T>w zT`ed>Cq+pay1ojiRe72$_EVU4Vn=p(eKBRVb=|NjHBZAYd!IE*YAM4dm4m8z(@8lB z#vm_E^BUKfm=YKWbjfq5 z;o}OxChH(z!k$OdS>wXpc4N<$q`?Z^gO9k{L@-8&C`Q{0n{j7;)6f9W9CD^e!veTf z+1MVhOJk~`pH3Pc09Ir}Gyh-1J_5g#ysfWz6n>YHD9YoF#5krcpTA^24!(|~V>YMb zt+h?en2w@xubdd(*REuW#iU20;cYJW8vCu1-al9QT8v9nB~yK_HcXMl%{ zw9;c%+?A#1;<33&;nDwz&JLiDzUSBK%7P5YSw{?v2>@qKHpnswj3rL1CPM-?7yYvh z)i^?CPYF*J`9sVJsuxC#N8@XzpfKX-EqYxeyT@b#Fy;IG+7rvHc6Xxs94m4T=sq#? zNG1W(cUpL=hZzNv&Kr^+nxtVpEDURZSn*m(Y4>ej6 zvhI-ILjShy%}$x>1BInt9{L1p7*U)46=41df7(UK#0WXkc8rk}ya z8xv(}JXca4GIH>hbLM0$TqtV(_B7|BAx5Oy5hJrew(=u?Y7nCOz3OCb(>`Ek1C#c# zUh)X`)OwNhe}!FZR8&+USCI~n!a)%1 z>4RQor1nscMn(2EGo-hbsXeuaiiUtP=*YuN0TC5NlfJX>%)NWxGtlq-&EEU${q24B zIdkU@#Iqo-sCKDv!~uv?_Vp^xg1D56?O@qHW&?7LL$r_AQ7pCnoXCpPi|6JjPYr%9 zD_-?thA21kfxGgHGK&IPF+w!qLL@|2K>tH9KdqLJ17i6PL%hDW*Y)K=oLtwdcs9g~ zxtQG51g93M2_7VOXJi)Lpr-EevA^#nl2ms`GUWp_AKEha`);(eN!s*kNSj{G97o&k z9yUT!Oey3#rUg(mp3I_bLIk*T;D5miXdK6&#Xu%iXrZDi}5xwZ{$@Q z*TB(vz?5a;#T*MltR@xB^vfqETg5vLz()WKg?y9k(5NvbBQ2I*3-O~6Cq9Uq$T6J`V^v-z;wA9cPf5{R+T^E5E2jqE&ZlKL6PDTCB_umEADjb4ZK zSwNMq+MA>XG#l5YR8hjg=U{y5tOT!8O|0#jQCke$=_Ys7?0R}0;y^QFx}8jF+`1Dl zvDa{Ga9*HLm4tolXDQ^F=*llZ<+K)N(ab<8AeAky3^<+nMTk?5FsGDwvUVxNcLZ?9 zu9#vDFM1-m+J&<4B$ZI!AN z^$A%8$TkkK*WzB=gl8XzUD z>{}HZLT@C}kTQ#!xxrZdMKrC~p=?H*yJ?B-^bJ6^wYj!a*+Jg~WPCgG+UgvF{^h`w znV41#E=0Af;rCmbYIAZDMySp(=aCu8wa`{_!W~N4Io{UV4%MJ@4D2wp3E$p(;HCJjmM(wR|=p{6jH zn;(odE{M+h0hDgYMR;!R>~qum5V*2Vw{bzVb$}$Eazo^f_7O0P8u64>akCLWF=(#` zu>BNck+oQn+mCfNs%pLX`;~e_n`q%1plxd-Cg;}E22haq69A{5ahY}6Wd+1r&KM;r zRBQxhZ5PtHx}HbW97ifGAR9-BlsY{`U%l~ts+U+$hk#8u+qbsQpv}__v*}HEo5Z@a ze4S+b;BAqaNxxm;^C)_2op+ELcaG~8UHFSAFh4ILUR_#a?3dzEi!UuSd;5u5XI}wR z(rwh4Xlq{s(`jPF*tZFo)Y%yO%yCVLh}LF^$25CKsp#qIYk!nRZi@n`>m@)bhkR1j@pH-*@ z>9+Qh?au9iV0KZC8k&~GzMnuWoO=3sc)yk9e%HxUG?iaqaInYk{ML?q5@+pS0h#ad zJEwo$DjXZzAwKHq)5s1$?u}zctY#z1`Zr)2no)?MIKPWUB8a~OH~A7jyE)e0&_1eX z=Rcy+QA_K5BcHkcov^sDKU+URgj2f!Io6*!MG$c)-0j$lF+c0R zOFYqgY8A9)w4m)~$N7i4b}cbJ?y-PZs@((qLnP2%Flp7i*$Z&x0JaR7#=js=iSILw z)qs@7voxBq+6Tz_c()Nc8SCuSI6*k!@jE9Q;)CWTA@w1!)j6ksn#xSWcyQ$>-|=l27^r6#zuDSASE)V)bDdV;;&kc0Z4gIohl z79_H`kynCa2LTBsy1fz{JLK3C95cxfhO){*%$_8}VTe-(GcuS#Y6PToFmuPuVUy!d zeupnv-oKGX-DfCT`dY2ofn!{gmoQGdX@T9U%b07nUCN*4&JjS;hA^I5To9!B8<>hA H{;~f7yD?d= diff --git a/loader/src/platform/windows/gdTimestampMap.hpp b/loader/src/platform/windows/gdTimestampMap.hpp index 5d5fe25a..79f2da88 100644 --- a/loader/src/platform/windows/gdTimestampMap.hpp +++ b/loader/src/platform/windows/gdTimestampMap.hpp @@ -32,7 +32,6 @@ static auto const& getGDVersionTimestampMap() { { 1704948277, "2.203" }, { 1705041028, "2.204" }, { 1717243515, "2.206" }, - { 1731098609, "2.207" }, }; return map; } From d1d34aab8f40cc33234b38b76ea64a22fd659b30 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sat, 9 Nov 2024 12:31:54 -0300 Subject: [PATCH 018/119] update cpm to 0.40.2 --- cmake/CPM.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/CPM.cmake b/cmake/CPM.cmake index d0fd0e8e..baf2d8c3 100644 --- a/cmake/CPM.cmake +++ b/cmake/CPM.cmake @@ -2,8 +2,8 @@ # # SPDX-FileCopyrightText: Copyright (c) 2019-2023 Lars Melchior and contributors -set(CPM_DOWNLOAD_VERSION 0.39.0) -set(CPM_HASH_SUM "66639bcac9dd2907b2918de466783554c1334446b9874e90d38e3778d404c2ef") +set(CPM_DOWNLOAD_VERSION 0.40.2) +set(CPM_HASH_SUM "c8cdc32c03816538ce22781ed72964dc864b2a34a310d3b7104812a5ca2d835d") if(CPM_SOURCE_CACHE) set(CPM_DOWNLOAD_LOCATION "${CPM_SOURCE_CACHE}/cpm/CPM_${CPM_DOWNLOAD_VERSION}.cmake") From af23cf81d3c31f576bda2991403e662602be9e3a Mon Sep 17 00:00:00 2001 From: Cvolton Date: Sat, 9 Nov 2024 16:55:39 +0100 Subject: [PATCH 019/119] fix cceglview --- loader/include/Geode/cocos/platform/win32/CCEGLView.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/loader/include/Geode/cocos/platform/win32/CCEGLView.h b/loader/include/Geode/cocos/platform/win32/CCEGLView.h index ed2820aa..a3628e77 100644 --- a/loader/include/Geode/cocos/platform/win32/CCEGLView.h +++ b/loader/include/Geode/cocos/platform/win32/CCEGLView.h @@ -142,7 +142,7 @@ public: /** * @note RobTop addition */ - void toggleFullScreen(bool fullscreen, bool borderless); + void toggleFullScreen(bool fullscreen, bool borderless, bool fix); /** * @note RobTop addition @@ -185,6 +185,8 @@ public: protected: static CCEGLView* s_pEglView; + // @note unknown members here + uint8_t m_unkPad[8]; bool m_bCaptured; // Robtop Removal // HWND m_hWnd; @@ -203,6 +205,8 @@ protected: int m_nRetinaFactor; // @note RobTop Addition bool m_bCursorHidden; + // @note may be before m_bCursorHidden + int m_unkSize4; // Robtop Removal // LPCWSTR m_menu; // Robtop Removal @@ -225,6 +229,8 @@ public: // @note RobTop Addition bool m_bIsBorderless; // @note RobTop Addition + bool m_bIsFix; + // @note RobTop Addition bool m_bShouldHideCursor; // @note RobTop Addition bool m_bCursorLocked; From 9ed55c4e7b6b1e323659ae141fd1415be75ecbb5 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sat, 9 Nov 2024 15:16:24 -0300 Subject: [PATCH 020/119] matjson 3/3, compiles but mod about.md dont load for some reason --- CMakeLists.txt | 2 +- .../include/Geode/cocos/base_nodes/CCNode.h | 2 +- loader/include/Geode/loader/Hook.hpp | 2 +- loader/include/Geode/loader/IPC.hpp | 2 +- loader/include/Geode/loader/Loader.hpp | 2 +- loader/include/Geode/loader/Log.hpp | 2 +- loader/include/Geode/loader/Mod.hpp | 2 +- loader/include/Geode/loader/ModMetadata.hpp | 2 +- loader/include/Geode/loader/Types.hpp | 2 +- loader/include/Geode/utils/JsonValidation.hpp | 9 +++- loader/include/Geode/utils/VersionInfo.hpp | 8 +-- loader/include/Geode/utils/cocos.hpp | 2 +- loader/include/Geode/utils/file.hpp | 4 +- loader/include/Geode/utils/general.hpp | 7 ++- loader/include/Geode/utils/web.hpp | 2 +- loader/src/loader/HookImpl.cpp | 2 +- loader/src/loader/IPC.cpp | 4 +- loader/src/loader/IPC.hpp | 2 +- loader/src/loader/LoaderImpl.hpp | 2 +- loader/src/loader/ModImpl.cpp | 42 ++++++++-------- loader/src/loader/ModImpl.hpp | 2 +- loader/src/loader/ModMetadataImpl.cpp | 39 ++++++--------- loader/src/loader/ModSettingsManager.cpp | 19 +++---- loader/src/loader/PatchImpl.cpp | 2 +- loader/src/loader/updater.hpp | 2 +- loader/src/platform/windows/IPC.cpp | 6 ++- loader/src/server/Server.cpp | 49 +++++++++---------- loader/src/server/Server.hpp | 2 +- loader/src/utils/JsonValidation.cpp | 26 +++++++--- loader/src/utils/VersionInfo.cpp | 2 +- loader/src/utils/cocos.cpp | 4 +- loader/src/utils/file.cpp | 14 ++---- loader/src/utils/web.cpp | 14 +++--- 33 files changed, 142 insertions(+), 141 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 849366d9..7673e63a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -236,8 +236,8 @@ if (ANDROID) endif() set(MAT_JSON_AS_INTERFACE ON) -CPMAddPackage("gh:geode-sdk/json#1b182dd") CPMAddPackage("gh:geode-sdk/result@1.1.0") +CPMAddPackage("gh:geode-sdk/json#8c6c325") CPMAddPackage("gh:fmtlib/fmt#10.2.1") target_compile_definitions(${PROJECT_NAME} INTERFACE MAT_JSON_DYNAMIC=1) diff --git a/loader/include/Geode/cocos/base_nodes/CCNode.h b/loader/include/Geode/cocos/base_nodes/CCNode.h index bf4f00c9..1bbf681c 100644 --- a/loader/include/Geode/cocos/base_nodes/CCNode.h +++ b/loader/include/Geode/cocos/base_nodes/CCNode.h @@ -41,7 +41,7 @@ #include #ifndef GEODE_IS_MEMBER_TEST -#include +#include #endif namespace geode { diff --git a/loader/include/Geode/loader/Hook.hpp b/loader/include/Geode/loader/Hook.hpp index 1ea4d792..6a3eb105 100644 --- a/loader/include/Geode/loader/Hook.hpp +++ b/loader/include/Geode/loader/Hook.hpp @@ -2,7 +2,7 @@ #include "../DefaultInclude.hpp" #include "../utils/general.hpp" -#include +#include #include "Tulip.hpp" #include #include diff --git a/loader/include/Geode/loader/IPC.hpp b/loader/include/Geode/loader/IPC.hpp index 015b246f..73e32d1e 100644 --- a/loader/include/Geode/loader/IPC.hpp +++ b/loader/include/Geode/loader/IPC.hpp @@ -3,7 +3,7 @@ #include "Event.hpp" #include "Loader.hpp" #include "Mod.hpp" -#include +#include namespace geode::ipc { #ifdef GEODE_IS_WINDOWS diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index 41ef428a..62c9f70b 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -8,7 +8,7 @@ #include "Types.hpp" #include -#include +#include #include #include #include diff --git a/loader/include/Geode/loader/Log.hpp b/loader/include/Geode/loader/Log.hpp index 88ad3cb5..563776ec 100644 --- a/loader/include/Geode/loader/Log.hpp +++ b/loader/include/Geode/loader/Log.hpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include // for formatting std::vector and such diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index ecec1005..aff3aa8a 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -13,7 +13,7 @@ #include "Types.hpp" #include "Loader.hpp" -#include +#include #include #include #include diff --git a/loader/include/Geode/loader/ModMetadata.hpp b/loader/include/Geode/loader/ModMetadata.hpp index cf08961c..435c4fca 100644 --- a/loader/include/Geode/loader/ModMetadata.hpp +++ b/loader/include/Geode/loader/ModMetadata.hpp @@ -4,7 +4,7 @@ #include "../utils/VersionInfo.hpp" #include "Types.hpp" -#include +#include #include namespace geode { diff --git a/loader/include/Geode/loader/Types.hpp b/loader/include/Geode/loader/Types.hpp index 5f887925..e5243a47 100644 --- a/loader/include/Geode/loader/Types.hpp +++ b/loader/include/Geode/loader/Types.hpp @@ -2,7 +2,7 @@ #include "../DefaultInclude.hpp" #include "../platform/cplatform.h" -#include +#include #include diff --git a/loader/include/Geode/utils/JsonValidation.hpp b/loader/include/Geode/utils/JsonValidation.hpp index 1776614f..b2522a83 100644 --- a/loader/include/Geode/utils/JsonValidation.hpp +++ b/loader/include/Geode/utils/JsonValidation.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include "../loader/Log.hpp" #include #include @@ -223,6 +223,13 @@ namespace geode { * @returns The key, which is a no-op value if it didn't exist */ JsonExpectedValue has(std::string_view key); + /** + * Check if this object has an optional key. Asserts that this JSON + * value is an object. If the key doesn't exist, or the value is null, returns a + * `JsonExpectValue` that does nothing + * @returns The key, which is a no-op value if it didn't exist, or was null + */ + JsonExpectedValue hasNullable(std::string_view key); /** * Check if this object has an optional key. Asserts that this JSON * value is an object. If the key doesn't exist, sets an error and diff --git a/loader/include/Geode/utils/VersionInfo.hpp b/loader/include/Geode/utils/VersionInfo.hpp index ad19692f..ed51ada9 100644 --- a/loader/include/Geode/utils/VersionInfo.hpp +++ b/loader/include/Geode/utils/VersionInfo.hpp @@ -2,7 +2,7 @@ #include "../DefaultInclude.hpp" #include -#include +#include #include #include @@ -258,9 +258,9 @@ requires std::is_same_v || std::is_same_v { static geode::Result fromJson(Value const& value) { - auto str = GEODE_UNWRAP(value.asString()); - auto version = GEODE_UNWRAP(V::parse(str).mapErr([](auto&& err) { - return geode::Err("Invalid version format: {}", err); + GEODE_UNWRAP_INTO(auto str, value.asString()); + GEODE_UNWRAP_INTO(auto version, V::parse(str).mapErr([](auto&& err) { + return fmt::format("Invalid version format: {}", err); })); return geode::Ok(version); } diff --git a/loader/include/Geode/utils/cocos.hpp b/loader/include/Geode/utils/cocos.hpp index b72c096d..e2337aef 100644 --- a/loader/include/Geode/utils/cocos.hpp +++ b/loader/include/Geode/utils/cocos.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include "casts.hpp" #include "general.hpp" #include "../DefaultInclude.hpp" diff --git a/loader/include/Geode/utils/file.hpp b/loader/include/Geode/utils/file.hpp index 2ff28895..3cc7f7c5 100644 --- a/loader/include/Geode/utils/file.hpp +++ b/loader/include/Geode/utils/file.hpp @@ -5,7 +5,7 @@ #include "../loader/Event.hpp" #include "Task.hpp" -#include +#include #include #include #include @@ -15,7 +15,7 @@ template <> struct matjson::Serialize { static geode::Result fromJson(Value const& value) { - auto str = GEODE_UNWRAP(value.asString()); + GEODE_UNWRAP_INTO(auto str, value.asString()); return geode::Ok(std::filesystem::path(str).make_preferred()); } diff --git a/loader/include/Geode/utils/general.hpp b/loader/include/Geode/utils/general.hpp index 4cca1163..78298810 100644 --- a/loader/include/Geode/utils/general.hpp +++ b/loader/include/Geode/utils/general.hpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include @@ -170,9 +170,8 @@ namespace geode { template<> struct matjson::Serialize { - static Value toJson(geode::ByteVector const& bytes) - { - return matjson::Array(bytes.begin(), bytes.end()); + static Value toJson(geode::ByteVector const& bytes) { + return std::vector(bytes.begin(), bytes.end()); } }; diff --git a/loader/include/Geode/utils/web.hpp b/loader/include/Geode/utils/web.hpp index 5f01a89b..ad06e247 100644 --- a/loader/include/Geode/utils/web.hpp +++ b/loader/include/Geode/utils/web.hpp @@ -1,7 +1,7 @@ #pragma once #include // another great circular dependency fix -#include +#include #include #include "Task.hpp" #include diff --git a/loader/src/loader/HookImpl.cpp b/loader/src/loader/HookImpl.cpp index 558a1756..e10adc70 100644 --- a/loader/src/loader/HookImpl.cpp +++ b/loader/src/loader/HookImpl.cpp @@ -98,7 +98,7 @@ std::string_view Hook::Impl::getDisplayName() const { } matjson::Value Hook::Impl::getRuntimeInfo() const { - auto json = matjson::Object(); + matjson::Value json; json["address"] = std::to_string(reinterpret_cast(m_address)); json["detour"] = std::to_string(reinterpret_cast(m_detour)); json["name"] = m_displayName; diff --git a/loader/src/loader/IPC.cpp b/loader/src/loader/IPC.cpp index 427efef1..30d54d3e 100644 --- a/loader/src/loader/IPC.cpp +++ b/loader/src/loader/IPC.cpp @@ -1,6 +1,6 @@ #include #include "IPC.hpp" -#include +#include #include using namespace geode::prelude; @@ -34,7 +34,7 @@ matjson::Value ipc::processRaw(void* rawHandle, std::string const& buffer) { matjson::Value reply; auto res = matjson::Value::parse(buffer); - if (error.size() > 0) { + if (!res) { log::warn("Received IPC message that isn't valid JSON: {}", res.unwrapErr()); return reply; } diff --git a/loader/src/loader/IPC.hpp b/loader/src/loader/IPC.hpp index 7ea91ff5..35fbc81f 100644 --- a/loader/src/loader/IPC.hpp +++ b/loader/src/loader/IPC.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include namespace geode::ipc { void setup(); diff --git a/loader/src/loader/LoaderImpl.hpp b/loader/src/loader/LoaderImpl.hpp index 3a340720..7af233d5 100644 --- a/loader/src/loader/LoaderImpl.hpp +++ b/loader/src/loader/LoaderImpl.hpp @@ -2,7 +2,7 @@ #include "FileWatcher.hpp" -#include +#include #include #include #include diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index ef237fe7..cc345252 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -190,15 +190,12 @@ Result<> Mod::Impl::loadData() { auto savedPath = m_saveDirPath / "saved.json"; if (std::filesystem::exists(savedPath)) { GEODE_UNWRAP_INTO(auto data, utils::file::readString(savedPath)); - std::string error; - auto res = matjson::parse(data, error); - if (error.size() > 0) { - return Err("Unable to parse saved values: " + error); - } - m_saved = res.value(); - if (!m_saved.is_object()) { + m_saved = GEODE_UNWRAP(matjson::parse(data).mapErr([](auto&& err) { + return fmt::format("Unable to parse saved values: {}", err); + })); + if (!m_saved.isObject()) { log::warn("saved.json was somehow not an object, forcing it to one"); - m_saved = matjson::Object(); + m_saved = matjson::Value::object(); } } @@ -218,11 +215,15 @@ Result<> Mod::Impl::saveData() { // saveData is expected to be synchronous, and always called from GD thread ModStateEvent(m_self, ModEventType::DataSaved).post(); - auto res = utils::file::writeString(m_saveDirPath / "settings.json", json.dump()); + auto res = json.dump().andThen([&](auto const& str) { + return utils::file::writeString(m_saveDirPath / "settings.json", str); + }); if (!res) { log::error("Unable to save settings: {}", res.unwrapErr()); } - auto res2 = utils::file::writeString(m_saveDirPath / "saved.json", m_saved.dump()); + auto res2 = m_saved.dump().andThen([&](auto const& str) { + return utils::file::writeString(m_saveDirPath / "saved.json", str); + }); if (!res2) { log::error("Unable to save values: {}", res2.unwrapErr()); } @@ -387,7 +388,7 @@ Result<> Mod::Impl::uninstall(bool deleteSaveData) { ModRequestedAction::Uninstall; // Make loader forget the mod should be disabled - Mod::get()->getSaveContainer().try_erase("should-load-" + m_metadata.getID()); + Mod::get()->getSaveContainer().erase("should-load-" + m_metadata.getID()); std::error_code ec; std::filesystem::remove(m_metadata.getPath(), ec); @@ -674,14 +675,14 @@ std::string_view Mod::Impl::expandSpriteName(std::string_view name) { ModJson Mod::Impl::getRuntimeInfo() const { auto json = m_metadata.toJSON(); - auto obj = matjson::Object(); - obj["hooks"] = matjson::Array(); + auto obj = matjson::Value::object(); + obj["hooks"] = matjson::Value::array(); for (auto hook : m_hooks) { - obj["hooks"].as_array().push_back(ModJson(hook->getRuntimeInfo())); + obj["hooks"].push(ModJson(hook->getRuntimeInfo())); } - obj["patches"] = matjson::Array(); + obj["patches"] = matjson::Value::array(); for (auto patch : m_patches) { - obj["patches"].as_array().push_back(ModJson(patch->getRuntimeInfo())); + obj["patches"].push(ModJson(patch->getRuntimeInfo())); } obj["loaded"] = m_enabled; obj["temp-dir"] = this->getTempDir(); @@ -722,12 +723,9 @@ std::vector Mod::Impl::getProblems() const { } static Result getModImplInfo() { - std::string error; - auto res = matjson::parse(about::getLoaderModJson(), error); - if (error.size() > 0) { - return Err("Unable to parse mod.json: " + error); - } - matjson::Value json = res.value(); + auto json = GEODE_UNWRAP(matjson::parse(about::getLoaderModJson()).mapErr([](auto&& err) { + return fmt::format("Unable to parse mod.json: {}", err); + })); GEODE_UNWRAP_INTO(auto info, ModMetadata::create(json)); return Ok(info); diff --git a/loader/src/loader/ModImpl.hpp b/loader/src/loader/ModImpl.hpp index 5c64be24..436dece4 100644 --- a/loader/src/loader/ModImpl.hpp +++ b/loader/src/loader/ModImpl.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include "ModPatch.hpp" #include #include diff --git a/loader/src/loader/ModMetadataImpl.cpp b/loader/src/loader/ModMetadataImpl.cpp index 6dd60bf2..8c048b8d 100644 --- a/loader/src/loader/ModMetadataImpl.cpp +++ b/loader/src/loader/ModMetadataImpl.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include @@ -113,14 +113,14 @@ Result ModMetadata::Impl::createFromSchemaV010(ModJson const& rawJs auto checkerRoot = fmt::format( "[{}/v0.0.0/mod.json]", - rawJson.contains("id") ? rawJson["id"].as_string() : "unknown.mod" + rawJson.contains("id") ? GEODE_UNWRAP(rawJson["id"].asString()) : "unknown.mod" ); // JsonChecker did it this way too try { checkerRoot = fmt::format( "[{}/{}/mod.json]", - rawJson.contains("id") ? rawJson["id"].as_string() : "unknown.mod", - rawJson.contains("version") ? rawJson["version"].as().toVString() : "v0.0.0" + rawJson.contains("id") ? GEODE_UNWRAP(rawJson["id"].asString()) : "unknown.mod", + rawJson.contains("version") ? GEODE_UNWRAP(rawJson["version"].as()).toVString() : "v0.0.0" ); } catch (...) { } @@ -304,10 +304,10 @@ Result ModMetadata::Impl::createFromSchemaV010(ModJson const& rawJs Result ModMetadata::Impl::create(ModJson const& json) { // Check mod.json target version auto schema = about::getLoaderVersion(); - if (json.contains("geode") && json["geode"].is_string()) { + if (json.contains("geode") && json["geode"].isString()) { GEODE_UNWRAP_INTO( schema, - VersionInfo::parse(json["geode"].as_string()).mapErr( + VersionInfo::parse(GEODE_UNWRAP(json["geode"].asString())).mapErr( [](auto const& err) { return fmt::format("[mod.json] has invalid target loader version: {}", err); } @@ -355,13 +355,9 @@ Result ModMetadata::Impl::create(ModJson const& json) { Result ModMetadata::Impl::createFromFile(std::filesystem::path const& path) { GEODE_UNWRAP_INTO(auto read, utils::file::readString(path)); - std::string error; - auto res = matjson::parse(read, error); - if (error.size() > 0) { - return Err(std::string("Unable to parse mod.json: ") + error); - } - - GEODE_UNWRAP_INTO(auto info, ModMetadata::create(res.value())); + GEODE_UNWRAP_INTO(auto info, ModMetadata::create(GEODE_UNWRAP(matjson::parse(read).mapErr([&](auto const& err) { + return fmt::format("Unable to parse mod.json: {}", err); + })))); auto impl = info.m_impl.get(); @@ -390,18 +386,13 @@ Result ModMetadata::Impl::createFromGeodeZip(file::Unzip& unzip) { }) ); - std::string error; - auto res = matjson::parse(std::string(jsonData.begin(), jsonData.end()), error); - if (error.size() > 0) { - return Err(std::string("Unable to parse mod.json: ") + error); - } - ModJson json = res.value(); + ModJson json = GEODE_UNWRAP(matjson::parse(std::string(jsonData.begin(), jsonData.end())).mapErr([](auto const& err) { + return fmt::format("Unable to parse mod.json: {}", err); + })); - auto res2 = ModMetadata::create(json); - if (!res2) { - return Err("\"" + unzip.getPath().string() + "\" - " + res2.unwrapErr()); - } - auto info = res2.unwrap(); + auto info = GEODE_UNWRAP(ModMetadata::create(json).mapErr([&](auto const& err) { + return fmt::format("\"{}\" - {}", unzip.getPath().string(), err); + })); auto impl = info.m_impl.get(); impl->m_path = unzip.getPath(); diff --git a/loader/src/loader/ModSettingsManager.cpp b/loader/src/loader/ModSettingsManager.cpp index 494a26da..1ab4fb9e 100644 --- a/loader/src/loader/ModSettingsManager.cpp +++ b/loader/src/loader/ModSettingsManager.cpp @@ -124,16 +124,11 @@ public: // Store the value in an intermediary so if `save` fails the existing // value loaded from disk isn't overwritten matjson::Value value; - try { - if (sett.v3->save(value)) { - this->savedata[key] = value; - } - else { - log::error("Unable to save setting '{}' for mod {}", key, this->modID); - } + if (sett.v3->save(value)) { + this->savedata[key] = value; } - catch(matjson::JsonException const& e) { - log::error("Unable to save setting '{}' for mod {} (JSON exception): {}", key, this->modID, e.what()); + else { + log::error("Unable to save setting '{}' for mod {}", key, this->modID); } } } @@ -209,11 +204,11 @@ Result<> ModSettingsManager::registerCustomSettingType(std::string_view type, Se } Result<> ModSettingsManager::load(matjson::Value const& json) { - if (json.is_object()) { + if (json.isObject()) { // Save this so when custom settings are registered they can load their // values properly - m_impl->savedata = json.as_object(); - for (auto const& [key, _] : json.as_object()) { + m_impl->savedata = json; + for (auto const& [key, _] : json) { m_impl->loadSettingValueFromSave(key); } } diff --git a/loader/src/loader/PatchImpl.cpp b/loader/src/loader/PatchImpl.cpp index 4f30a73e..c483613f 100644 --- a/loader/src/loader/PatchImpl.cpp +++ b/loader/src/loader/PatchImpl.cpp @@ -104,7 +104,7 @@ uintptr_t Patch::Impl::getAddress() const { } matjson::Value Patch::Impl::getRuntimeInfo() const { - auto json = matjson::Object(); + auto json = matjson::Value::object(); json["address"] = std::to_string(reinterpret_cast(m_address)); json["original"] = m_original; json["patch"] = m_patch; diff --git a/loader/src/loader/updater.hpp b/loader/src/loader/updater.hpp index 07a96b7f..31641b93 100644 --- a/loader/src/loader/updater.hpp +++ b/loader/src/loader/updater.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include namespace geode::updater { diff --git a/loader/src/platform/windows/IPC.cpp b/loader/src/platform/windows/IPC.cpp index 7c2a1514..42ad4cb7 100644 --- a/loader/src/platform/windows/IPC.cpp +++ b/loader/src/platform/windows/IPC.cpp @@ -21,7 +21,11 @@ void ipcPipeThread(HANDLE pipe) { if (ReadFile(pipe, buffer, sizeof(buffer) - 1, &read, nullptr)) { buffer[read] = '\0'; - std::string reply = ipc::processRaw((void*)pipe, buffer).dump(); + auto res = ipc::processRaw((void*)pipe, buffer).dump(); + if (!res) { + log::warn("Failed to process IPC message: {}", res.unwrapErr()); + } + std::string reply = res.unwrapOr(""); DWORD written; WriteFile(pipe, reply.c_str(), reply.size(), &written, nullptr); diff --git a/loader/src/server/Server.cpp b/loader/src/server/Server.cpp index ed53871f..49867ffd 100644 --- a/loader/src/server/Server.cpp +++ b/loader/src/server/Server.cpp @@ -172,24 +172,23 @@ static Result parseServerPayload(web::WebResponse c return Err(ServerError(response.code(), "Response was not valid JSON: {}", asJson.unwrapErr())); } auto json = std::move(asJson).unwrap(); - if (!json.is_object()) { + if (!json.isObject()) { return Err(ServerError(response.code(), "Expected object, got {}", jsonTypeToString(json.type()))); } - auto obj = json.as_object(); - if (!obj.contains("payload")) { - return Err(ServerError(response.code(), "Object does not contain \"payload\" key - got {}", json.dump())); + if (!json.contains("payload")) { + return Err(ServerError(response.code(), "Object does not contain \"payload\" key - got {}", json.dump().unwrapOr("?"))); } - return Ok(obj["payload"]); + return Ok(json["payload"]); } static ServerError parseServerError(web::WebResponse const& error) { // The server should return errors as `{ "error": "...", "payload": "" }` if (auto asJson = error.json()) { auto json = asJson.unwrap(); - if (json.is_object() && json.contains("error")) { + if (json.isObject() && json.contains("error") && json["error"].isString()) { return ServerError( error.code(), - "{}", json.get("error") + "{}", json["error"].asString().unwrapOr("Unknown (no error message)") ); } else { @@ -267,8 +266,8 @@ Result ServerModVersion::parse(matjson::Value const& raw) { // Verify target GD version auto gd_obj = root.needs("gd"); std::string gd = "0.000"; - if (gd_obj.has(GEODE_PLATFORM_SHORT_IDENTIFIER)) { - gd = gd_obj.has(GEODE_PLATFORM_SHORT_IDENTIFIER). get(); + if (gd_obj.hasNullable(GEODE_PLATFORM_SHORT_IDENTIFIER)) { + gd = gd_obj.hasNullable(GEODE_PLATFORM_SHORT_IDENTIFIER). get(); } if (gd != "*") { @@ -288,11 +287,11 @@ Result ServerModVersion::parse(matjson::Value const& raw) { res.metadata.setIsAPI(root.needs("api").get()); std::vector dependencies {}; - for (auto& obj : root.has("dependencies").items()) { + for (auto& obj : root.hasNullable("dependencies").items()) { // todo: this should probably be generalized to use the same function as mod.json - bool onThisPlatform = !obj.has("platforms"); - for (auto& plat : obj.has("platforms").items()) { + bool onThisPlatform = !obj.hasNullable("platforms"); + for (auto& plat : obj.hasNullable("platforms").items()) { if (PlatformID::coveredBy(plat.get(), GEODE_PLATFORM_TARGET)) { onThisPlatform = true; } @@ -304,7 +303,7 @@ Result ServerModVersion::parse(matjson::Value const& raw) { ModMetadata::Dependency dependency; obj.needs("mod_id").mustBe("a valid id", &ModMetadata::validateID).into(dependency.id); obj.needs("version").into(dependency.version); - obj.has("importance").into(dependency.importance); + obj.hasNullable("importance").into(dependency.importance); // Check if this dependency is installed, and if so assign the `mod` member to mark that auto mod = Loader::get()->getInstalledMod(dependency.id); @@ -317,9 +316,9 @@ Result ServerModVersion::parse(matjson::Value const& raw) { res.metadata.setDependencies(dependencies); std::vector incompatibilities {}; - for (auto& obj : root.has("incompatibilities").items()) { + for (auto& obj : root.hasNullable("incompatibilities").items()) { ModMetadata::Incompatibility incompatibility; - obj.has("importance").into(incompatibility.importance); + obj.hasNullable("importance").into(incompatibility.importance); auto modIdValue = obj.needs("mod_id"); @@ -362,8 +361,8 @@ Result ServerModUpdate::parse(matjson::Value const& raw) { root.needs("id").into(res.id); root.needs("version").into(res.version); - if (root.has("replacement")) { - GEODE_UNWRAP_INTO(res.replacement, ServerModReplacement::parse(root.has("replacement").json())); + if (root.hasNullable("replacement")) { + GEODE_UNWRAP_INTO(res.replacement, ServerModReplacement::parse(root.hasNullable("replacement").json())); } return root.ok(res); @@ -400,9 +399,9 @@ Result ServerModMetadata::parse(matjson::Value const& raw) { root.needs("id").into(res.id); root.needs("featured").into(res.featured); root.needs("download_count").into(res.downloadCount); - root.has("about").into(res.about); - root.has("changelog").into(res.changelog); - root.has("repository").into(res.repository); + root.hasNullable("about").into(res.about); + root.hasNullable("changelog").into(res.changelog); + root.hasNullable("repository").into(res.repository); if (root.has("created_at")) { GEODE_UNWRAP_INTO(res.createdAt, ServerDateTime::parse(root.has("created_at").get())); } @@ -439,7 +438,7 @@ Result ServerModMetadata::parse(matjson::Value const& raw) { return Err("Mod '{}' has no (valid) versions", res.id); } - for (auto& item : root.has("tags").items()) { + for (auto& item : root.hasNullable("tags").items()) { res.tags.insert(item.get()); } @@ -705,16 +704,16 @@ ServerRequest> server::getTags(bool useCache) { return Err(payload.unwrapErr()); } matjson::Value json = payload.unwrap(); - if (!json.is_array()) { + if (!json.isArray()) { return Err(ServerError(response->code(), "Expected a string array")); } std::unordered_set tags; - for (auto item : json.as_array()) { - if (!item.is_string()) { + for (auto item : json) { + if (!item.isString()) { return Err(ServerError(response->code(), "Expected a string array")); } - tags.insert(item.as_string()); + tags.insert(item.asString().unwrap()); } return Ok(tags); } diff --git a/loader/src/server/Server.hpp b/loader/src/server/Server.hpp index b801f8d7..110f4e8f 100644 --- a/loader/src/server/Server.hpp +++ b/loader/src/server/Server.hpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include using namespace geode::prelude; diff --git a/loader/src/utils/JsonValidation.cpp b/loader/src/utils/JsonValidation.cpp index 1f1df324..f0a936aa 100644 --- a/loader/src/utils/JsonValidation.cpp +++ b/loader/src/utils/JsonValidation.cpp @@ -168,6 +168,19 @@ JsonExpectedValue JsonExpectedValue::has(std::string_view key) { } return JsonExpectedValue(m_impl.get(), m_impl->scope[key], key); } +JsonExpectedValue JsonExpectedValue::hasNullable(std::string_view key) { + if (this->hasError()) { + return JsonExpectedValue(); + } + if (!this->assertIs(matjson::Type::Object)) { + return JsonExpectedValue(); + } + m_impl->knownKeys.insert(std::string(key)); + if (!m_impl->scope.contains(key) || m_impl->scope[key].isNull()) { + return JsonExpectedValue(); + } + return JsonExpectedValue(m_impl.get(), m_impl->scope[key], key); +} JsonExpectedValue JsonExpectedValue::needs(std::string_view key) { if (this->hasError()) { return JsonExpectedValue(); @@ -190,7 +203,7 @@ std::vector> JsonExpectedValue::proper return std::vector>(); } std::vector> res; - for (auto& [k, v] : m_impl->scope.as_object()) { + for (auto& [k, v] : m_impl->scope) { res.push_back(std::make_pair(k, JsonExpectedValue(m_impl.get(), v, k))); } return res; @@ -211,7 +224,7 @@ size_t JsonExpectedValue::length() { if (!this->assertIs(matjson::Type::Array)) { return 0; } - return m_impl->scope.as_array().size(); + return m_impl->scope.size(); } JsonExpectedValue JsonExpectedValue::at(size_t index) { if (this->hasError()) { @@ -220,15 +233,14 @@ JsonExpectedValue JsonExpectedValue::at(size_t index) { if (!this->assertIs(matjson::Type::Array)) { return JsonExpectedValue(); } - auto& arr = m_impl->scope.as_array(); - if (arr.size() <= index) { + if (index >= m_impl->scope.size()) { this->setError( "array expected to have at least size {}, but its size was only {}", - index + 1, arr.size() + index + 1, m_impl->scope.size() ); return JsonExpectedValue(); } - return JsonExpectedValue(m_impl.get(), arr.at(index), std::to_string(index)); + return JsonExpectedValue(m_impl.get(), m_impl->scope[index], std::to_string(index)); } std::vector JsonExpectedValue::items() { if (this->hasError()) { @@ -239,7 +251,7 @@ std::vector JsonExpectedValue::items() { } std::vector res; size_t i = 0; - for (auto& v : m_impl->scope.as_array()) { + for (auto& v : m_impl->scope) { res.push_back(JsonExpectedValue(m_impl.get(), v, std::to_string(i++))); } return res; diff --git a/loader/src/utils/VersionInfo.cpp b/loader/src/utils/VersionInfo.cpp index 0c5c9658..069f674b 100644 --- a/loader/src/utils/VersionInfo.cpp +++ b/loader/src/utils/VersionInfo.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include using namespace geode::prelude; diff --git a/loader/src/utils/cocos.cpp b/loader/src/utils/cocos.cpp index 3a8fa960..cfce8735 100644 --- a/loader/src/utils/cocos.cpp +++ b/loader/src/utils/cocos.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include #include @@ -32,6 +32,7 @@ Result matjson::Serialize::fromJson( } return Ok(res.unwrap()); } + return Err("Expected color to be array, object or hex string"); } matjson::Value matjson::Serialize::toJson(cocos2d::ccColor3B const& value) { return matjson::makeObject({ @@ -68,6 +69,7 @@ Result matjson::Serialize::fromJson( } return Ok(res.unwrap()); } + return Err("Expected color to be array, object or hex string"); } matjson::Value matjson::Serialize::toJson(cocos2d::ccColor4B const& value) { diff --git a/loader/src/utils/file.cpp b/loader/src/utils/file.cpp index 5cba9d46..22037899 100644 --- a/loader/src/utils/file.cpp +++ b/loader/src/utils/file.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #include #include @@ -53,14 +53,10 @@ Result utils::file::readString(std::filesystem::path const& path) { } Result utils::file::readJson(std::filesystem::path const& path) { - auto str = utils::file::readString(path); - if (!str) - return Err(str.unwrapErr()); - std::string error; - auto res = matjson::parse(str.unwrap(), error); - if (error.size()) - return Err("Unable to parse JSON: " + error); - return Ok(res.value()); + auto str = GEODE_UNWRAP(utils::file::readString(path)); + return matjson::parse(str).mapErr([&](auto const& err) { + return fmt::format("Unable to parse JSON: {}", err); + }); } Result utils::file::readBinary(std::filesystem::path const& path) { diff --git a/loader/src/utils/web.cpp b/loader/src/utils/web.cpp index 0cf732ec..4f872b36 100644 --- a/loader/src/utils/web.cpp +++ b/loader/src/utils/web.cpp @@ -3,7 +3,7 @@ #include #include #include -#include +#include #include #define CURL_STATICLIB #include @@ -130,12 +130,9 @@ Result WebResponse::string() const { } Result WebResponse::json() const { GEODE_UNWRAP_INTO(auto value, this->string()); - std::string error; - auto res = matjson::parse(value, error); - if (error.size() > 0) { - return Err("Error parsing JSON: " + error); - } - return Ok(res.value()); + return matjson::parse(value).mapErr([&](auto const& err) { + return fmt::format("Error parsing JSON: {}", err); + }); } ByteVector WebResponse::data() const { return m_impl->m_data; @@ -595,7 +592,8 @@ WebRequest& WebRequest::bodyString(std::string_view str) { } WebRequest& WebRequest::bodyJSON(matjson::Value const& json) { this->header("Content-Type", "application/json"); - std::string str = json.dump(matjson::NO_INDENTATION); + // TODO: mat + std::string str = json.dump(matjson::NO_INDENTATION).unwrapOr(""); m_impl->m_body = ByteVector { str.begin(), str.end() }; return *this; } From e8ef9b79c85ecb00ae8a86f09e1451f75a8a25de Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sat, 9 Nov 2024 15:51:20 -0300 Subject: [PATCH 021/119] fix build --- loader/include/Geode/loader/Loader.hpp | 2 +- loader/include/Geode/utils/cocos.hpp | 12 ++++++------ loader/include/Geode/utils/file.hpp | 3 ++- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index 62c9f70b..cdb1ddb7 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -121,7 +121,7 @@ namespace geode { * @param name The argument name */ template - Result parseLaunchArgument(std::string_view const name) const { + Result parseLaunchArgument(std::string_view const name) const { auto str = this->getLaunchArgument(name); if (!str.has_value()) { return Err("Launch argument '{}' not found", name); diff --git a/loader/include/Geode/utils/cocos.hpp b/loader/include/Geode/utils/cocos.hpp index e2337aef..43668bec 100644 --- a/loader/include/Geode/utils/cocos.hpp +++ b/loader/include/Geode/utils/cocos.hpp @@ -15,14 +15,14 @@ template <> struct matjson::Serialize { - static geode::Result fromJson(Value const& value); - static Value toJson(cocos2d::ccColor3B const& value); + static geode::Result GEODE_DLL fromJson(Value const& value); + static Value GEODE_DLL toJson(cocos2d::ccColor3B const& value); }; template <> struct matjson::Serialize { - static geode::Result fromJson(Value const& value); - static Value toJson(cocos2d::ccColor4B const& value); + static geode::Result GEODE_DLL fromJson(Value const& value); + static Value GEODE_DLL toJson(cocos2d::ccColor4B const& value); }; // operators for CC geometry @@ -930,10 +930,10 @@ namespace std { }; template - struct std::hash> { + struct hash> { size_t operator()(geode::WeakRef const& ref) const { // the explicit template argument is needed here because it would otherwise cast to WeakRef and recurse - return hash>{}(ref.m_controller); + return std::hash>{}(ref.m_controller); } }; } diff --git a/loader/include/Geode/utils/file.hpp b/loader/include/Geode/utils/file.hpp index 3cc7f7c5..b037512f 100644 --- a/loader/include/Geode/utils/file.hpp +++ b/loader/include/Geode/utils/file.hpp @@ -41,7 +41,8 @@ namespace geode::utils::file { template Result<> writeToJson(std::filesystem::path const& path, T const& data) { - GEODE_UNWRAP(writeString(path, matjson::Value(data).dump())); + GEODE_UNWRAP_INTO(auto str, matjson::Value(data).dump()); + GEODE_UNWRAP(writeString(path, str)); return Ok(); } From 39dc184b88359a01fb8207ca82212a1f3e75254c Mon Sep 17 00:00:00 2001 From: Justin <52604018+hiimjustin000@users.noreply.github.com> Date: Sat, 9 Nov 2024 13:55:51 -0500 Subject: [PATCH 022/119] 2.207 patch updates (#1140) * Update gdTimestampMap.hpp * Update CMakeLists.txt * Add files via upload --- CMakeLists.txt | 4 ++-- loader/include/link/win64/libcocos2d.lib | Bin 2234292 -> 2234292 bytes .../src/platform/windows/gdTimestampMap.hpp | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c7eb7302..b8ad699f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,8 +189,8 @@ include(cmake/Platform.cmake) include(cmake/GeodeFile.cmake) if (NOT DEFINED GEODE_GD_VERSION) - set(GEODE_GD_VERSION 2.207) - set(GEODE_COMP_GD_VERSION 22070) + set(GEODE_GD_VERSION 2.2073) + set(GEODE_COMP_GD_VERSION 22073) endif() target_compile_definitions( diff --git a/loader/include/link/win64/libcocos2d.lib b/loader/include/link/win64/libcocos2d.lib index d306f5271d6ab4da630a232679b43a0ce1064963..ea1bce4d8824ea791a16f11e547b6fdb36e18267 100644 GIT binary patch delta 156597 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[%qFT$pjO}LPd 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 Date: Sat, 9 Nov 2024 16:04:38 -0300 Subject: [PATCH 023/119] actually now --- loader/include/Geode/loader/Loader.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index cdb1ddb7..a59c84d3 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -124,11 +124,11 @@ namespace geode { Result parseLaunchArgument(std::string_view const name) const { auto str = this->getLaunchArgument(name); if (!str.has_value()) { - return Err("Launch argument '{}' not found", name); + return Err(fmt::format("Launch argument '{}' not found", name)); } auto jsonOpt = matjson::Value::parse(str.value()); if (jsonOpt.isErr()) { - return Err("Parsing launch argument '{}' failed: {}", name, jsonOpt.unwrapErr()); + return Err(fmt::format("Parsing launch argument '{}' failed: {}", name, jsonOpt.unwrapErr())); } auto value = jsonOpt.unwrap(); return value.template as(); From 5eda75311d50f3358447343b12f5f0b6b8461320 Mon Sep 17 00:00:00 2001 From: Chloe <25387744+qimiko@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:27:24 -0700 Subject: [PATCH 024/119] fix macos build --- loader/src/platform/mac/LoaderImpl.mm | 7 ++++++- loader/src/platform/mac/util.mm | 12 ++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/loader/src/platform/mac/LoaderImpl.mm b/loader/src/platform/mac/LoaderImpl.mm index 34bc0ead..68c8cede 100644 --- a/loader/src/platform/mac/LoaderImpl.mm +++ b/loader/src/platform/mac/LoaderImpl.mm @@ -98,7 +98,12 @@ CFDataRef msgPortCallback(CFMessagePortRef port, SInt32 messageID, CFDataRef dat std::string cdata(reinterpret_cast(CFDataGetBytePtr(data)), CFDataGetLength(data)); - std::string reply = geode::ipc::processRaw(port, cdata).dump(); + auto res = geode::ipc::processRaw(port, cdata).dump(); + if (!res) { + log::warn("Failed to process IPC message: {}", res.unwrapErr()); + } + std::string reply = res.unwrapOr(""); + return CFDataCreate(NULL, (UInt8 const*)reply.data(), reply.size()); } diff --git a/loader/src/platform/mac/util.mm b/loader/src/platform/mac/util.mm index b68def89..ea863c9d 100644 --- a/loader/src/platform/mac/util.mm +++ b/loader/src/platform/mac/util.mm @@ -78,7 +78,7 @@ namespace { @interface FileDialog : NSObject +(Result>) filePickerWithMode:(file::PickMode)mode options:(file::FilePickOptions const&)options multiple:(bool)mult; -+(void) dispatchFilePickerWithMode:(file::PickMode)mode options:(file::FilePickOptions const&)options multiple:(bool)mult onCompletion:(void(^)(FileResult))onCompletion; ++(void) dispatchFilePickerWithMode:(file::PickMode)mode options:(file::FilePickOptions const&)options multiple:(bool)mult onCompletion:(void(^)(FileResult&&))onCompletion; @end @implementation FileDialog @@ -152,10 +152,10 @@ namespace { } } -+(void) dispatchFilePickerWithMode:(file::PickMode)mode options:(file::FilePickOptions const&)options multiple:(bool)mult onCompletion:(void(^)(FileResult))onCompletion { ++(void) dispatchFilePickerWithMode:(file::PickMode)mode options:(file::FilePickOptions const&)options multiple:(bool)mult onCompletion:(void(^)(FileResult&&))onCompletion { dispatch_async(dispatch_get_main_queue(), ^{ auto result = [self filePickerWithMode:mode options:options multiple:mult]; - onCompletion(result); + onCompletion(std::move(result)); }); } @@ -164,7 +164,7 @@ namespace { GEODE_DLL Task> file::pick(file::PickMode mode, file::FilePickOptions const& options) { using RetTask = Task>; return RetTask::runWithCallback([mode, options](auto resultCallback, auto progress, auto cancelled) { - [FileDialog dispatchFilePickerWithMode:mode options:options multiple:false onCompletion: ^(FileResult result) { + [FileDialog dispatchFilePickerWithMode:mode options:options multiple:false onCompletion: ^(FileResult&& result) { if (cancelled()) { resultCallback(RetTask::Cancel()); } else { @@ -182,11 +182,11 @@ GEODE_DLL Task> file::pick(file::PickMode mode, fi GEODE_DLL Task>> file::pickMany(file::FilePickOptions const& options) { using RetTask = Task>>; return RetTask::runWithCallback([options](auto resultCallback, auto progress, auto cancelled) { - [FileDialog dispatchFilePickerWithMode: file::PickMode::OpenFile options:options multiple:true onCompletion: ^(FileResult result) { + [FileDialog dispatchFilePickerWithMode: file::PickMode::OpenFile options:options multiple:true onCompletion: ^(FileResult&& result) { if (cancelled()) { resultCallback(RetTask::Cancel()); } else { - resultCallback(result); + resultCallback(std::move(result)); } }]; }); From 70be7c60611cc60eba399f84fe0143d5f23dc4dc Mon Sep 17 00:00:00 2001 From: Chloe <25387744+qimiko@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:33:03 -0700 Subject: [PATCH 025/119] how much will this break --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7673e63a..71874cc6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -238,7 +238,7 @@ endif() set(MAT_JSON_AS_INTERFACE ON) CPMAddPackage("gh:geode-sdk/result@1.1.0") CPMAddPackage("gh:geode-sdk/json#8c6c325") -CPMAddPackage("gh:fmtlib/fmt#10.2.1") +CPMAddPackage("gh:fmtlib/fmt#11.0.2") target_compile_definitions(${PROJECT_NAME} INTERFACE MAT_JSON_DYNAMIC=1) From 31d7c9d099cb18a3f200790cc8c7f7cf9ea182a7 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sat, 9 Nov 2024 18:32:34 -0300 Subject: [PATCH 026/119] fix mod descriptions (nasty bug) this is a very bad issue with the result library :( alk pls fix --- loader/src/ui/mods/popups/ModPopup.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/src/ui/mods/popups/ModPopup.cpp b/loader/src/ui/mods/popups/ModPopup.cpp index 1d8b6f8a..fb9c54f8 100644 --- a/loader/src/ui/mods/popups/ModPopup.cpp +++ b/loader/src/ui/mods/popups/ModPopup.cpp @@ -46,7 +46,7 @@ protected: } void onRequest(Request::Event* event) { - if (event->getValue() && event->getValue()->isOk() && event->getValue()->unwrap()) { + if (event->getValue() && event->getValue()->isOk() && event->getValue()->inspect([](auto&& value) { return value.has_value(); })) { m_loading->removeFromParent(); m_textarea->setString(event->getValue()->unwrap()->c_str()); } From 5b10a91d8c9a39eac07b12af8c646be56ac86284 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sun, 10 Nov 2024 00:43:06 -0300 Subject: [PATCH 027/119] do a few v4 todos --- loader/include/Geode/loader/Mod.hpp | 1 - loader/include/Geode/loader/ModEvent.hpp | 3 --- loader/src/loader/ModImpl.cpp | 1 - 3 files changed, 5 deletions(-) diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index aff3aa8a..6a7ddbd0 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -157,7 +157,6 @@ namespace geode { std::vector getSettingKeys() const; bool hasSetting(std::string_view const key) const; - // todo in v4: possibly rename this to getSetting? /** * Get the definition of a setting, or null if the setting was not found, * or if it's a custom setting that has not yet been registered using diff --git a/loader/include/Geode/loader/ModEvent.hpp b/loader/include/Geode/loader/ModEvent.hpp index b9801c2c..5b88f0f7 100644 --- a/loader/include/Geode/loader/ModEvent.hpp +++ b/loader/include/Geode/loader/ModEvent.hpp @@ -10,9 +10,6 @@ namespace geode { enum class ModEventType { Loaded, - Unloaded, - Enabled, - Disabled, DataLoaded, DataSaved, }; diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index cc345252..10903eb2 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -321,7 +321,6 @@ Result<> Mod::Impl::loadBinary() { ModStateEvent(m_self, ModEventType::Loaded).post(); - ModStateEvent(m_self, ModEventType::Enabled).post(); ModStateEvent(m_self, ModEventType::DataLoaded).post(); m_isCurrentlyLoading = false; From 2b0970d3411ab8a73519d01e75c57288a3684fdf Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sun, 10 Nov 2024 01:26:25 -0300 Subject: [PATCH 028/119] bump version --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index a5c4c763..fcdb2e10 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.9.0 +4.0.0 From be9ba27ba4ffcfb49cee083b237561110a2557aa Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sun, 10 Nov 2024 01:28:57 -0300 Subject: [PATCH 029/119] only set gd version to 2.207 on desktop --- CMakeLists.txt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e07864f..3e9684c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,8 +189,13 @@ include(cmake/Platform.cmake) include(cmake/GeodeFile.cmake) if (NOT DEFINED GEODE_GD_VERSION) - set(GEODE_GD_VERSION 2.2073) - set(GEODE_COMP_GD_VERSION 22073) + if (GEODE_TARGET_PLATFORM STREQUAL "Win64" OR GEODE_TARGET_PLATFORM STREQUAL "MacOS") + set(GEODE_GD_VERSION 2.2073) + set(GEODE_COMP_GD_VERSION 22073) + else() + set(GEODE_GD_VERSION 2.206) + set(GEODE_COMP_GD_VERSION 22060) + endif() endif() target_compile_definitions( From 9d4e6ba0e479e901fdc7fad475026cb9fdcc9fc4 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sun, 10 Nov 2024 11:51:49 +0200 Subject: [PATCH 030/119] header fixes (i think this might make compiling without PCH possible?) --- loader/include/Geode/Utils.hpp | 2 +- loader/include/Geode/loader/Tulip.hpp | 1 + loader/include/Geode/utils/VersionInfo.hpp | 7 +++---- loader/include/Geode/utils/cocos.hpp | 2 ++ loader/include/Geode/utils/string.hpp | 1 + loader/src/loader/SettingV3.cpp | 2 ++ loader/src/ui/mods/popups/ConfirmInstall.cpp | 1 + loader/src/ui/nodes/SceneManager.cpp | 1 + 8 files changed, 12 insertions(+), 5 deletions(-) diff --git a/loader/include/Geode/Utils.hpp b/loader/include/Geode/Utils.hpp index c587c8d0..24d2b820 100644 --- a/loader/include/Geode/Utils.hpp +++ b/loader/include/Geode/Utils.hpp @@ -10,5 +10,5 @@ #include "utils/file.hpp" #include "utils/permission.hpp" #include "utils/general.hpp" -#include "utils/timer.hpp" +#include "utils/Timer.hpp" #include "utils/ObjcHook.hpp" diff --git a/loader/include/Geode/loader/Tulip.hpp b/loader/include/Geode/loader/Tulip.hpp index 5de00c34..0df1be92 100644 --- a/loader/include/Geode/loader/Tulip.hpp +++ b/loader/include/Geode/loader/Tulip.hpp @@ -2,6 +2,7 @@ #include #include +#include "../Prelude.hpp" namespace geode::hook { /** diff --git a/loader/include/Geode/utils/VersionInfo.hpp b/loader/include/Geode/utils/VersionInfo.hpp index ed51ada9..646ea423 100644 --- a/loader/include/Geode/utils/VersionInfo.hpp +++ b/loader/include/Geode/utils/VersionInfo.hpp @@ -5,6 +5,7 @@ #include #include #include +#include namespace geode { enum class VersionCompare { @@ -256,8 +257,7 @@ namespace geode { template requires std::is_same_v || std::is_same_v struct matjson::Serialize { - static geode::Result fromJson(Value const& value) - { + static geode::Result fromJson(Value const& value) { GEODE_UNWRAP_INTO(auto str, value.asString()); GEODE_UNWRAP_INTO(auto version, V::parse(str).mapErr([](auto&& err) { return fmt::format("Invalid version format: {}", err); @@ -265,8 +265,7 @@ struct matjson::Serialize { return geode::Ok(version); } - static Value toJson(V const& value) - { + static Value toJson(V const& value) { return Value(value.toString()); } }; diff --git a/loader/include/Geode/utils/cocos.hpp b/loader/include/Geode/utils/cocos.hpp index 43668bec..e12276c6 100644 --- a/loader/include/Geode/utils/cocos.hpp +++ b/loader/include/Geode/utils/cocos.hpp @@ -10,6 +10,8 @@ #include "../loader/Event.hpp" #include #include +#include "../ui/Layout.hpp" +#include "../ui/SpacerNode.hpp" // support converting ccColor3B / ccColor4B to / from json diff --git a/loader/include/Geode/utils/string.hpp b/loader/include/Geode/utils/string.hpp index 5b87a113..e2632faa 100644 --- a/loader/include/Geode/utils/string.hpp +++ b/loader/include/Geode/utils/string.hpp @@ -4,6 +4,7 @@ #include #include #include +#include "../DefaultInclude.hpp" namespace geode::utils::string { /** diff --git a/loader/src/loader/SettingV3.cpp b/loader/src/loader/SettingV3.cpp index e4cb701c..1bf9770f 100644 --- a/loader/src/loader/SettingV3.cpp +++ b/loader/src/loader/SettingV3.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -6,6 +7,7 @@ #include #include #include "SettingNodeV3.hpp" +#include using namespace geode::prelude; diff --git a/loader/src/ui/mods/popups/ConfirmInstall.cpp b/loader/src/ui/mods/popups/ConfirmInstall.cpp index 70f59a2b..02c30ce9 100644 --- a/loader/src/ui/mods/popups/ConfirmInstall.cpp +++ b/loader/src/ui/mods/popups/ConfirmInstall.cpp @@ -1,4 +1,5 @@ #include "ConfirmInstall.hpp" +#include #include #include #include diff --git a/loader/src/ui/nodes/SceneManager.cpp b/loader/src/ui/nodes/SceneManager.cpp index 77f1c69b..8a9982da 100644 --- a/loader/src/ui/nodes/SceneManager.cpp +++ b/loader/src/ui/nodes/SceneManager.cpp @@ -1,5 +1,6 @@ #include #include +#include using namespace geode::prelude; From a3b306a4e015462679440093d83ac9fa06b2059b Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sun, 10 Nov 2024 11:59:14 +0200 Subject: [PATCH 031/119] turns out that path was case-insensitive now... --- loader/include/Geode/Utils.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/include/Geode/Utils.hpp b/loader/include/Geode/Utils.hpp index 24d2b820..c587c8d0 100644 --- a/loader/include/Geode/Utils.hpp +++ b/loader/include/Geode/Utils.hpp @@ -10,5 +10,5 @@ #include "utils/file.hpp" #include "utils/permission.hpp" #include "utils/general.hpp" -#include "utils/Timer.hpp" +#include "utils/timer.hpp" #include "utils/ObjcHook.hpp" From efb1fbf72947d26ed71541795211339f4802de0f Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sun, 10 Nov 2024 12:17:14 +0200 Subject: [PATCH 032/119] add option for single-page local mods list --- loader/resources/mod.json.in | 6 ++++++ .../mods/sources/InstalledModListSource.cpp | 19 +++++++++++++++++-- loader/src/ui/mods/sources/ModListSource.cpp | 10 ++++++---- loader/src/ui/mods/sources/ModListSource.hpp | 10 ++++++---- .../src/ui/mods/sources/ModPackListSource.cpp | 2 +- .../ui/mods/sources/ServerModListSource.cpp | 4 ++-- 6 files changed, 38 insertions(+), 13 deletions(-) diff --git a/loader/resources/mod.json.in b/loader/resources/mod.json.in index 0e7ef08d..ea3f2df8 100644 --- a/loader/resources/mod.json.in +++ b/loader/resources/mod.json.in @@ -85,6 +85,12 @@ "name": "Enable Geode-Themed Colors", "description": "When enabled, the Geode menu has a Geode-themed color scheme. This does not affect any other menus!" }, + "infinite-local-mods-list": { + "type": "bool", + "default": false, + "name": "Expand Installed Mods List", + "description": "Make the installed mods list a single infinite scrollable list instead of having pages" + }, "developer-title": { "type": "title", "name": "Developer Settings" diff --git a/loader/src/ui/mods/sources/InstalledModListSource.cpp b/loader/src/ui/mods/sources/InstalledModListSource.cpp index 0aea81f0..5ed9c097 100644 --- a/loader/src/ui/mods/sources/InstalledModListSource.cpp +++ b/loader/src/ui/mods/sources/InstalledModListSource.cpp @@ -68,9 +68,15 @@ void InstalledModListSource::resetQuery() { }; } -InstalledModListSource::ProviderTask InstalledModListSource::fetchPage(size_t page, size_t pageSize, bool forceUpdate) { +InstalledModListSource::ProviderTask InstalledModListSource::fetchPage(size_t page, bool forceUpdate) { m_query.page = page; - m_query.pageSize = pageSize; + m_query.pageSize = m_pageSize; + + // Infinite mods list option + if (Mod::get()->template getSettingValue("infinite-local-mods-list")) { + m_query.page = 0; + m_query.pageSize = Loader::get()->getAllMods().size(); + } auto content = ModListSource::ProvidedMods(); for (auto& mod : Loader::get()->getAllMods()) { @@ -122,3 +128,12 @@ InvalidateQueryAfter InstalledModListSource::getQueryMut() { bool InstalledModListSource::isDefaultQuery() const { return m_query.isDefault(); } + +$execute { + listenForSettingChanges("infinite-local-mods-list", [](bool value) { + auto size = value ? std::numeric_limits::max() : 10; + InstalledModListSource::get(InstalledModListType::All)->setPageSize(size); + InstalledModListSource::get(InstalledModListType::OnlyErrors)->setPageSize(size); + // Updates is technically a server mod list :-) So I left it out here + }); +} diff --git a/loader/src/ui/mods/sources/ModListSource.cpp b/loader/src/ui/mods/sources/ModListSource.cpp index c7b301a0..1c6f57b2 100644 --- a/loader/src/ui/mods/sources/ModListSource.cpp +++ b/loader/src/ui/mods/sources/ModListSource.cpp @@ -5,7 +5,6 @@ #define FTS_FUZZY_MATCH_IMPLEMENTATION #include -static constexpr size_t PER_PAGE = 10; static std::vector ALL_EXTANT_SOURCES {}; static size_t ceildiv(size_t a, size_t b) { @@ -33,7 +32,7 @@ typename ModListSource::PageLoadTask ModListSource::loadPage(size_t page, bool f return PageLoadTask::immediate(Ok(m_cachedPages.at(page))); } m_cachedPages.erase(page); - return this->fetchPage(page, PER_PAGE, forceUpdate).map( + return this->fetchPage(page, forceUpdate).map( [this, page](Result* result) -> Result { if (result->isOk()) { auto data = result->unwrap(); @@ -56,12 +55,15 @@ typename ModListSource::PageLoadTask ModListSource::loadPage(size_t page, bool f } std::optional ModListSource::getPageCount() const { - return m_cachedItemCount ? std::optional(ceildiv(m_cachedItemCount.value(), PER_PAGE)) : std::nullopt; + return m_cachedItemCount ? std::optional(ceildiv(m_cachedItemCount.value(), m_pageSize)) : std::nullopt; } - std::optional ModListSource::getItemCount() const { return m_cachedItemCount; } +void ModListSource::setPageSize(size_t size) { + m_pageSize = size; + this->reset(); +} void ModListSource::reset() { this->resetQuery(); diff --git a/loader/src/ui/mods/sources/ModListSource.hpp b/loader/src/ui/mods/sources/ModListSource.hpp index 5b61d22a..862bec52 100644 --- a/loader/src/ui/mods/sources/ModListSource.hpp +++ b/loader/src/ui/mods/sources/ModListSource.hpp @@ -51,9 +51,10 @@ public: protected: std::unordered_map m_cachedPages; std::optional m_cachedItemCount; + size_t m_pageSize = 10; virtual void resetQuery() = 0; - virtual ProviderTask fetchPage(size_t page, size_t pageSize, bool forceUpdate) = 0; + virtual ProviderTask fetchPage(size_t page, bool forceUpdate) = 0; virtual void setSearchQuery(std::string const& query) = 0; ModListSource(); @@ -75,6 +76,7 @@ public: PageLoadTask loadPage(size_t page, bool forceUpdate = false); std::optional getPageCount() const; std::optional getItemCount() const; + void setPageSize(size_t size); static void clearAllCaches(); static bool isRestartRequired(); @@ -123,7 +125,7 @@ protected: InstalledModsQuery m_query; void resetQuery() override; - ProviderTask fetchPage(size_t page, size_t pageSize, bool forceUpdate) override; + ProviderTask fetchPage(size_t page, bool forceUpdate) override; void setSearchQuery(std::string const& query) override; InstalledModListSource(InstalledModListType type); @@ -153,7 +155,7 @@ protected: server::ModsQuery m_query; void resetQuery() override; - ProviderTask fetchPage(size_t page, size_t pageSize, bool forceUpdate) override; + ProviderTask fetchPage(size_t page, bool forceUpdate) override; void setSearchQuery(std::string const& query) override; ServerModListSource(ServerModListType type); @@ -174,7 +176,7 @@ public: class ModPackListSource : public ModListSource { protected: void resetQuery() override; - ProviderTask fetchPage(size_t page, size_t pageSize, bool forceUpdate) override; + ProviderTask fetchPage(size_t page, bool forceUpdate) override; void setSearchQuery(std::string const& query) override; ModPackListSource(); diff --git a/loader/src/ui/mods/sources/ModPackListSource.cpp b/loader/src/ui/mods/sources/ModPackListSource.cpp index 6063d4c7..d2d536ab 100644 --- a/loader/src/ui/mods/sources/ModPackListSource.cpp +++ b/loader/src/ui/mods/sources/ModPackListSource.cpp @@ -1,7 +1,7 @@ #include "ModListSource.hpp" void ModPackListSource::resetQuery() {} -ModPackListSource::ProviderTask ModPackListSource::fetchPage(size_t page, size_t pageSize, bool forceUpdate) { +ModPackListSource::ProviderTask ModPackListSource::fetchPage(size_t page, bool forceUpdate) { return ProviderTask::immediate(Err(LoadPageError("Coming soon ;)"))); } diff --git a/loader/src/ui/mods/sources/ServerModListSource.cpp b/loader/src/ui/mods/sources/ServerModListSource.cpp index cc43e495..3dc54f83 100644 --- a/loader/src/ui/mods/sources/ServerModListSource.cpp +++ b/loader/src/ui/mods/sources/ServerModListSource.cpp @@ -4,9 +4,9 @@ void ServerModListSource::resetQuery() { m_query = this->createDefaultQuery(); } -ServerModListSource::ProviderTask ServerModListSource::fetchPage(size_t page, size_t pageSize, bool forceUpdate) { +ServerModListSource::ProviderTask ServerModListSource::fetchPage(size_t page, bool forceUpdate) { m_query.page = page; - m_query.pageSize = pageSize; + m_query.pageSize = m_pageSize; return server::getMods(m_query, !forceUpdate).map( [](Result* result) -> ProviderTask::Value { if (result->isOk()) { From cad670fb31a19f0be363c7c7e9be3eb0b7e322fa Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sun, 10 Nov 2024 12:20:44 +0200 Subject: [PATCH 033/119] hide search toggle --- loader/src/ui/mods/ModsLayer.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/loader/src/ui/mods/ModsLayer.cpp b/loader/src/ui/mods/ModsLayer.cpp index 64985430..b97bd46e 100644 --- a/loader/src/ui/mods/ModsLayer.cpp +++ b/loader/src/ui/mods/ModsLayer.cpp @@ -465,12 +465,12 @@ bool ModsLayer::init() { bigSizeBtn->setID("list-size-button"); listActionsMenu->addChild(bigSizeBtn); - auto searchBtn = CCMenuItemSpriteExtra::create( - GeodeSquareSprite::createWithSpriteFrameName("search.png"_spr, &m_showSearch), - this, menu_selector(ModsLayer::onSearch) - ); - searchBtn->setID("search-button"); - listActionsMenu->addChild(searchBtn); + // auto searchBtn = CCMenuItemSpriteExtra::create( + // GeodeSquareSprite::createWithSpriteFrameName("search.png"_spr, &m_showSearch), + // this, menu_selector(ModsLayer::onSearch) + // ); + // searchBtn->setID("search-button"); + // listActionsMenu->addChild(searchBtn); listActionsMenu->setLayout(ColumnLayout::create()); m_frame->addChildAtPosition(listActionsMenu, Anchor::Left, ccp(-5, 25)); From c9afa7536771489bea6753b94f2651cf86e9e5a3 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sun, 10 Nov 2024 12:20:55 +0200 Subject: [PATCH 034/119] move mod list arrows a bit to not overlap --- loader/src/ui/mods/list/ModList.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/loader/src/ui/mods/list/ModList.cpp b/loader/src/ui/mods/list/ModList.cpp index e94fd100..f9f9cbd9 100644 --- a/loader/src/ui/mods/list/ModList.cpp +++ b/loader/src/ui/mods/list/ModList.cpp @@ -308,7 +308,7 @@ bool ModList::init(ModListSource* src, CCSize const& size) { ->setAxisAlignment(AxisAlignment::End) ->setAxisReverse(true) ); - this->addChildAtPosition(pageLeftMenu, Anchor::Left, ccp(-5, 0)); + this->addChildAtPosition(pageLeftMenu, Anchor::Left, ccp(-20, 0)); auto pageRightMenu = CCMenu::create(); pageRightMenu->setID("page-right-menu"); @@ -329,7 +329,7 @@ bool ModList::init(ModListSource* src, CCSize const& size) { RowLayout::create() ->setAxisAlignment(AxisAlignment::Start) ); - this->addChildAtPosition(pageRightMenu, Anchor::Right, ccp(5, 0)); + this->addChildAtPosition(pageRightMenu, Anchor::Right, ccp(20, 0)); // Status From 12e8bbb6a296486a05e68a959b19e877560526d7 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sun, 10 Nov 2024 12:55:56 +0200 Subject: [PATCH 035/119] split problems into load problems and outdated GD version --- loader/include/Geode/loader/Loader.hpp | 3 ++- loader/include/Geode/loader/Mod.hpp | 3 ++- loader/src/hooks/MenuLayer.cpp | 3 +-- loader/src/internal/FixModIssues.cpp | 2 +- loader/src/internal/crashlog.cpp | 6 ++++-- loader/src/loader/Loader.cpp | 14 ++++++++++++-- loader/src/loader/Mod.cpp | 15 ++++++++++++--- loader/src/loader/ModImpl.cpp | 14 +++++++++----- loader/src/loader/ModImpl.hpp | 2 +- loader/src/ui/mods/list/ModItem.cpp | 13 +++++++++---- loader/src/ui/mods/list/ModList.cpp | 4 ++-- .../ui/mods/sources/InstalledModListSource.cpp | 10 +++++++++- loader/src/ui/mods/sources/ModListSource.hpp | 1 + 13 files changed, 65 insertions(+), 25 deletions(-) diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index a59c84d3..e907dc1a 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -91,7 +91,8 @@ namespace geode { Mod* getLoadedMod(std::string const& id) const; std::vector getAllMods(); std::vector getAllProblems() const; - std::vector getProblems() const; + std::vector getLoadProblems() const; + std::vector getOutdated() const; std::vector getRecommendations() const; /** diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index 6a7ddbd0..b4dfe12d 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -446,7 +446,8 @@ namespace geode { bool isLoggingEnabled() const; void setLoggingEnabled(bool enabled); - bool hasProblems() const; + bool targetsOutdatedGDVersion() const; + bool hasLoadProblems() const; std::vector getAllProblems() const; std::vector getProblems() const; std::vector getRecommendations() const; diff --git a/loader/src/hooks/MenuLayer.cpp b/loader/src/hooks/MenuLayer.cpp index af86cc56..3b82c54b 100644 --- a/loader/src/hooks/MenuLayer.cpp +++ b/loader/src/hooks/MenuLayer.cpp @@ -83,13 +83,12 @@ struct CustomMenuLayer : Modify { } // show if some mods failed to load - if (Loader::get()->getProblems().size()) { + if (Loader::get()->getLoadProblems().size()) { static bool shownProblemPopup = false; if (!shownProblemPopup) { shownProblemPopup = true; Notification::create("There were errors - see Geode page!", NotificationIcon::Error)->show(); } - if (m_fields->m_geodeButton) { m_fields->m_exclamation = CCSprite::createWithSpriteFrameName("exMark_001.png"); m_fields->m_exclamation->setPosition(m_fields->m_geodeButton->getContentSize() - ccp(10, 10)); diff --git a/loader/src/internal/FixModIssues.cpp b/loader/src/internal/FixModIssues.cpp index e97bcd15..2c55cd11 100644 --- a/loader/src/internal/FixModIssues.cpp +++ b/loader/src/internal/FixModIssues.cpp @@ -79,7 +79,7 @@ protected: public: void start() { - for (auto problem : Loader::get()->getProblems()) { + for (auto problem : Loader::get()->getAllProblems()) { switch (problem.type) { // Errors where the correct solution is to just delete the invalid .geode package case LoadProblem::Type::InvalidFile: diff --git a/loader/src/internal/crashlog.cpp b/loader/src/internal/crashlog.cpp index 359fa926..4350ca2f 100644 --- a/loader/src/internal/crashlog.cpp +++ b/loader/src/internal/crashlog.cpp @@ -24,7 +24,8 @@ void crashlog::printGeodeInfo(std::stringstream& stream) { << "Loader Commit: " << about::getLoaderCommitHash() << "\n" << "Bindings Commit: " << about::getBindingsCommitHash() << "\n" << "Installed mods: " << Loader::get()->getAllMods().size() << "\n" - << "Problems: " << Loader::get()->getProblems().size() << "\n"; + << "Outdated mods: " << Loader::get()->getOutdated().size() << "\n" + << "Problems: " << Loader::get()->getLoadProblems().size() << "\n"; } void crashlog::printMods(std::stringstream& stream) { @@ -44,7 +45,8 @@ void crashlog::printMods(std::stringstream& stream) { stream << fmt::format("{} | [{}] {}\n", mod->isCurrentlyLoading() ? "o"sv : mod->isEnabled() ? "x"sv : - mod->hasProblems() ? "!"sv : // thank you for this bug report + mod->hasLoadProblems() ? "!"sv : // thank you for this bug report + mod->targetsOutdatedGDVersion() ? "*"sv : // thank you very much for this bug report mod->shouldLoad() ? "~"sv : " "sv, mod->getVersion().toVString(), mod->getID() diff --git a/loader/src/loader/Loader.cpp b/loader/src/loader/Loader.cpp index e5223914..cd887d15 100644 --- a/loader/src/loader/Loader.cpp +++ b/loader/src/loader/Loader.cpp @@ -68,18 +68,28 @@ std::vector Loader::getAllMods() { std::vector Loader::getAllProblems() const { return m_impl->getProblems(); } -std::vector Loader::getProblems() const { +std::vector Loader::getLoadProblems() const { std::vector result; for (auto problem : this->getAllProblems()) { if ( problem.type != LoadProblem::Type::Recommendation && - problem.type != LoadProblem::Type::Suggestion + problem.type != LoadProblem::Type::Suggestion && + problem.type != LoadProblem::Type::UnsupportedVersion ) { result.push_back(problem); } } return result; } +std::vector Loader::getOutdated() const { + std::vector result; + for (auto problem : this->getAllProblems()) { + if (problem.type == LoadProblem::Type::UnsupportedVersion) { + result.push_back(problem); + } + } + return result; +} std::vector Loader::getRecommendations() const { std::vector result; for (auto problem : this->getAllProblems()) { diff --git a/loader/src/loader/Mod.cpp b/loader/src/loader/Mod.cpp index 0bddeacc..272e7a9e 100644 --- a/loader/src/loader/Mod.cpp +++ b/loader/src/loader/Mod.cpp @@ -252,8 +252,16 @@ bool Mod::hasSavedValue(std::string_view const key) { return this->getSaveContainer().contains(key); } -bool Mod::hasProblems() const { - return m_impl->hasProblems(); +bool Mod::hasLoadProblems() const { + return m_impl->hasLoadProblems(); +} +bool Mod::targetsOutdatedGDVersion() const { + for (auto problem : this->getAllProblems()) { + if (problem.type == LoadProblem::Type::UnsupportedVersion) { + return true; + } + } + return false; } std::vector Mod::getAllProblems() const { return m_impl->getProblems(); @@ -263,7 +271,8 @@ std::vector Mod::getProblems() const { for (auto problem : this->getAllProblems()) { if ( problem.type != LoadProblem::Type::Recommendation && - problem.type != LoadProblem::Type::Suggestion + problem.type != LoadProblem::Type::Suggestion && + problem.type != LoadProblem::Type::UnsupportedVersion ) { result.push_back(problem); } diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index 10903eb2..dccea06a 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -708,11 +708,15 @@ bool Mod::Impl::isCurrentlyLoading() const { return m_isCurrentlyLoading; } -bool Mod::Impl::hasProblems() const { - for (auto const& item : m_problems) { - if (item.type <= LoadProblem::Type::Recommendation) - continue; - return true; +bool Mod::Impl::hasLoadProblems() const { + for (auto const& problem : m_problems) { + if ( + problem.type != LoadProblem::Type::Recommendation && + problem.type != LoadProblem::Type::Suggestion && + problem.type != LoadProblem::Type::UnsupportedVersion + ) { + return true; + } } return false; } diff --git a/loader/src/loader/ModImpl.hpp b/loader/src/loader/ModImpl.hpp index 436dece4..cf709567 100644 --- a/loader/src/loader/ModImpl.hpp +++ b/loader/src/loader/ModImpl.hpp @@ -151,7 +151,7 @@ namespace geode { std::vector getProblems() const; - bool hasProblems() const; + bool hasLoadProblems() const; bool shouldLoad() const; bool isCurrentlyLoading() const; }; diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index abe3c536..d8e7f350 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -185,7 +185,7 @@ bool ModItem::init(ModSource&& source) { m_viewMenu->addChild(m_enableToggle); m_viewMenu->updateLayout(); } - if (mod->hasProblems()) { + if (mod->hasLoadProblems() || mod->targetsOutdatedGDVersion()) { auto viewErrorSpr = createGeodeCircleButton( CCSprite::createWithSpriteFrameName("exclamation.png"_spr), 1.f, CircleBaseSize::Small @@ -410,9 +410,14 @@ void ModItem::updateState() { m_titleContainer->updateLayout(); // If there were problems, tint the BG red - if (m_source.asMod() && m_source.asMod()->hasProblems()) { - m_bg->setColor("mod-list-errors-found"_cc3b); - m_bg->setOpacity(isGeodeTheme() ? 25 : 90); + if (m_source.asMod()) { + if (m_source.asMod()->hasLoadProblems()) { + m_bg->setColor("mod-list-errors-found"_cc3b); + m_bg->setOpacity(isGeodeTheme() ? 25 : 90); + } + if (m_source.asMod()->targetsOutdatedGDVersion()) { + m_bg->setOpacity(isGeodeTheme() ? 0 : 0); + } } // Highlight item via BG if it wants to restart for extra UI attention diff --git a/loader/src/ui/mods/list/ModList.cpp b/loader/src/ui/mods/list/ModList.cpp index f9f9cbd9..6e1ac04f 100644 --- a/loader/src/ui/mods/list/ModList.cpp +++ b/loader/src/ui/mods/list/ModList.cpp @@ -111,7 +111,7 @@ bool ModList::init(ModListSource* src, CCSize const& size) { m_topContainer->addChild(m_updateAllContainer); - if (Loader::get()->getProblems().size()) { + if (Loader::get()->getLoadProblems().size()) { m_errorsContainer = CCNode::create(); m_errorsContainer->setID("errors-container"); m_errorsContainer->ignoreAnchorPointForPosition(false); @@ -549,7 +549,7 @@ void ModList::updateTopContainer() { // If there are errors, show the error banner if (m_errorsContainer) { - auto noErrors = Loader::get()->getProblems().empty(); + auto noErrors = Loader::get()->getLoadProblems().empty(); m_errorsContainer->setVisible(!noErrors); } diff --git a/loader/src/ui/mods/sources/InstalledModListSource.cpp b/loader/src/ui/mods/sources/InstalledModListSource.cpp index 5ed9c097..0d5e1acd 100644 --- a/loader/src/ui/mods/sources/InstalledModListSource.cpp +++ b/loader/src/ui/mods/sources/InstalledModListSource.cpp @@ -12,8 +12,11 @@ bool InstalledModsQuery::preCheck(ModSource const& src) const { return false; } // If only errors requested, only show mods with errors (duh) + if (type == InstalledModListType::OnlyOutdated) { + return src.asMod()->targetsOutdatedGDVersion(); + } if (type == InstalledModListType::OnlyErrors) { - return src.asMod()->hasProblems(); + return src.asMod()->hasLoadProblems(); } return true; } @@ -59,6 +62,11 @@ InstalledModListSource* InstalledModListSource::get(InstalledModListType type) { static auto inst = new InstalledModListSource(InstalledModListType::OnlyErrors); return inst; } break; + + case InstalledModListType::OnlyOutdated: { + static auto inst = new InstalledModListSource(InstalledModListType::OnlyOutdated); + return inst; + } break; } } diff --git a/loader/src/ui/mods/sources/ModListSource.hpp b/loader/src/ui/mods/sources/ModListSource.hpp index 862bec52..10e421ca 100644 --- a/loader/src/ui/mods/sources/ModListSource.hpp +++ b/loader/src/ui/mods/sources/ModListSource.hpp @@ -110,6 +110,7 @@ enum class InstalledModListType { All, OnlyUpdates, OnlyErrors, + OnlyOutdated, }; struct InstalledModsQuery final : public LocalModsQueryBase { InstalledModListType type = InstalledModListType::All; From 7b171c56c9513016db4fcb7d502e5be411bdd3c3 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sun, 10 Nov 2024 10:14:46 -0300 Subject: [PATCH 036/119] avoid collision with result's geode_concat macro --- loader/include/Geode/DefaultInclude.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/loader/include/Geode/DefaultInclude.hpp b/loader/include/Geode/DefaultInclude.hpp index 0190d9e2..19d2fac4 100644 --- a/loader/include/Geode/DefaultInclude.hpp +++ b/loader/include/Geode/DefaultInclude.hpp @@ -18,8 +18,10 @@ return s_##name; \ } -#define GEODE_WRAPPER_CONCAT(x, y) x##y -#define GEODE_CONCAT(x, y) GEODE_WRAPPER_CONCAT(x, y) +#if !defined(GEODE_CONCAT) + #define GEODE_WRAPPER_CONCAT(x, y) x##y + #define GEODE_CONCAT(x, y) GEODE_WRAPPER_CONCAT(x, y) +#endif #define GEODE_WRAPPER_STR(...) #__VA_ARGS__ #define GEODE_STR(...) GEODE_WRAPPER_STR(__VA_ARGS__) From deab3d251785ac06830a07c205f942a54fcfeea0 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sun, 10 Nov 2024 10:38:59 -0300 Subject: [PATCH 037/119] remove GEODE_STATIC_PTR and GEODE_STATIC_VAR --- loader/include/Geode/DefaultInclude.hpp | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/loader/include/Geode/DefaultInclude.hpp b/loader/include/Geode/DefaultInclude.hpp index 19d2fac4..52cdb79f 100644 --- a/loader/include/Geode/DefaultInclude.hpp +++ b/loader/include/Geode/DefaultInclude.hpp @@ -5,19 +5,6 @@ #include #include -#define GEODE_STATIC_PTR(type, name) \ - static type* s_##name; \ - inline type* name() { \ - if (!s_##name) s_##name = new type(); \ - return s_##name; \ - } - -#define GEODE_STATIC_VAR(type, name) \ - inline type& name() { \ - static type s_##name; \ - return s_##name; \ - } - #if !defined(GEODE_CONCAT) #define GEODE_WRAPPER_CONCAT(x, y) x##y #define GEODE_CONCAT(x, y) GEODE_WRAPPER_CONCAT(x, y) From 084fea220e36c422761d159885e1f0724e5a6a53 Mon Sep 17 00:00:00 2001 From: dankmeme01 <42031238+dankmeme01@users.noreply.github.com> Date: Sun, 10 Nov 2024 16:05:20 +0100 Subject: [PATCH 038/119] code cleanup: remove unnecessary const in function parameters --- loader/include/Geode/c++stl/string.hpp | 4 +-- loader/include/Geode/loader/Loader.hpp | 8 +++--- loader/include/Geode/loader/Mod.hpp | 28 +++++++++---------- loader/include/Geode/ui/TextArea.hpp | 24 ++++++++-------- loader/include/Geode/utils/Task.hpp | 20 ++++++------- loader/include/Geode/utils/general.hpp | 2 +- loader/src/c++stl/string-impl.hpp | 2 +- loader/src/c++stl/string.cpp | 4 +-- loader/src/loader/Loader.cpp | 6 ++-- loader/src/loader/LoaderImpl.cpp | 6 ++-- loader/src/loader/LoaderImpl.hpp | 6 ++-- loader/src/loader/Mod.cpp | 14 +++++----- loader/src/loader/ModImpl.cpp | 12 ++++---- loader/src/loader/ModImpl.hpp | 12 ++++---- loader/src/platform/android/gdstdlib.cpp | 2 +- .../src/platform/windows/gdTimestampMap.hpp | 2 +- loader/src/ui/nodes/TextArea.cpp | 28 +++++++++---------- loader/src/utils/web.cpp | 2 +- 18 files changed, 91 insertions(+), 91 deletions(-) diff --git a/loader/include/Geode/c++stl/string.hpp b/loader/include/Geode/c++stl/string.hpp index 6b8ca914..c84caa15 100644 --- a/loader/include/Geode/c++stl/string.hpp +++ b/loader/include/Geode/c++stl/string.hpp @@ -93,7 +93,7 @@ namespace gd { bool empty() const; bool operator==(string const& other) const; - bool operator==(std::string_view const other) const; + bool operator==(std::string_view other) const; bool operator==(char const* other) const { return *this == std::string_view(other); } @@ -101,7 +101,7 @@ namespace gd { return *this == std::string_view(other); } std::strong_ordering operator<=>(string const& other) const; - std::strong_ordering operator<=>(std::string_view const other) const; + std::strong_ordering operator<=>(std::string_view other) const; std::strong_ordering operator<=>(char const* other) const { return *this <=> std::string_view(other); } diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index e907dc1a..1ee17351 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -103,26 +103,26 @@ namespace geode { * Returns whether the specified launch argument was passed in via the command line. * @param name The argument name */ - bool hasLaunchArgument(std::string_view const name) const; + bool hasLaunchArgument(std::string_view name) const; /** * Get a launch argument. These are passed into the game as command-line arguments * with the format `--geode:arg-name=value`. * @param name The argument name * @return The value, if present */ - std::optional getLaunchArgument(std::string_view const name) const; + std::optional getLaunchArgument(std::string_view name) const; /** * Get a launch argument flag. Returns whether the argument is present and its * value is exactly `true`. * @param name The argument name */ - bool getLaunchFlag(std::string_view const name) const; + bool getLaunchFlag(std::string_view name) const; /** * Get and parse a launch argument value using the setting value system. * @param name The argument name */ template - Result parseLaunchArgument(std::string_view const name) const { + Result parseLaunchArgument(std::string_view name) const { auto str = this->getLaunchArgument(name); if (!str.has_value()) { return Err(fmt::format("Launch argument '{}' not found", name)); diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index b4dfe12d..c174f7e3 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -155,7 +155,7 @@ namespace geode { * declared in `mod.json`) */ std::vector getSettingKeys() const; - bool hasSetting(std::string_view const key) const; + bool hasSetting(std::string_view key) const; /** * Get the definition of a setting, or null if the setting was not found, @@ -163,7 +163,7 @@ namespace geode { * `Mod::registerCustomSettingType` * @param key The key of the setting as defined in `mod.json` */ - std::shared_ptr getSetting(std::string_view const key) const; + std::shared_ptr getSetting(std::string_view key) const; /** * Register a custom setting type. See @@ -179,7 +179,7 @@ namespace geode { * Returns a prefixed launch argument name. See `Mod::getLaunchArgument` * for details about mod-specific launch arguments. */ - std::string getLaunchArgumentName(std::string_view const name) const; + std::string getLaunchArgumentName(std::string_view name) const; /** * Returns the names of the available mod-specific launch arguments. */ @@ -189,7 +189,7 @@ namespace geode { * for details about mod-specific launch arguments. * @param name The argument name */ - bool hasLaunchArgument(std::string_view const name) const; + bool hasLaunchArgument(std::string_view name) const; /** * Get a mod-specific launch argument. This is equivalent to `Loader::getLaunchArgument` * with the argument name prefixed by the mod ID. For example, a launch argument named @@ -197,20 +197,20 @@ namespace geode { * @param name The argument name * @return The value, if present */ - std::optional getLaunchArgument(std::string_view const name) const; + std::optional getLaunchArgument(std::string_view name) const; /** * Equivalent to a prefixed `Loader::getLaunchFlag` call. See `Mod::getLaunchArgument` * for details about mod-specific launch arguments. * @param name The argument name */ - bool getLaunchFlag(std::string_view const name) const; + bool getLaunchFlag(std::string_view name) const; /** * Equivalent to a prefixed `Loader::parseLaunchArgument` call. See `Mod::getLaunchArgument` * for details about mod-specific launch arguments. * @param name The argument name */ template - std::optional parseLaunchArgument(std::string_view const name) const { + std::optional parseLaunchArgument(std::string_view name) const { return Loader::get()->parseLaunchArgument(this->getLaunchArgumentName(name)); } @@ -224,7 +224,7 @@ namespace geode { * setting type has a `getValue` function which returns the value */ template - T getSettingValue(std::string_view const key) const { + T getSettingValue(std::string_view key) const { using S = typename SettingTypeForValueType::SettingType; if (auto sett = cast::typeinfo_pointer_cast(this->getSetting(key))) { return sett->getValue(); @@ -233,7 +233,7 @@ namespace geode { } template - T setSettingValue(std::string_view const key, T const& value) { + T setSettingValue(std::string_view key, T const& value) { using S = typename SettingTypeForValueType::SettingType; if (auto sett = cast::typeinfo_pointer_cast(this->getSetting(key))) { auto old = sett->getValue(); @@ -243,10 +243,10 @@ namespace geode { return T(); } - bool hasSavedValue(std::string_view const key); + bool hasSavedValue(std::string_view key); template - T getSavedValue(std::string_view const key) { + T getSavedValue(std::string_view key) { auto& saved = this->getSaveContainer(); if (auto res = saved.get(key).andThen([](auto&& v) { return v.template as(); @@ -257,7 +257,7 @@ namespace geode { } template - T getSavedValue(std::string_view const key, T const& defaultValue) { + T getSavedValue(std::string_view key, T const& defaultValue) { auto& saved = this->getSaveContainer(); if (auto res = saved.get(key).andThen([](auto&& v) { return v.template as(); @@ -276,7 +276,7 @@ namespace geode { * @returns The old value */ template - T setSavedValue(std::string_view const key, T const& value) { + T setSavedValue(std::string_view key, T const& value) { auto& saved = this->getSaveContainer(); auto old = this->getSavedValue(key); saved[key] = value; @@ -417,7 +417,7 @@ namespace geode { * Check whether or not this Mod * depends on another mod */ - bool depends(std::string_view const id) const; + bool depends(std::string_view id) const; /** * Check whether all the required diff --git a/loader/include/Geode/ui/TextArea.hpp b/loader/include/Geode/ui/TextArea.hpp index 05b1f6da..7d9125fc 100644 --- a/loader/include/Geode/ui/TextArea.hpp +++ b/loader/include/Geode/ui/TextArea.hpp @@ -24,34 +24,34 @@ namespace geode { */ class GEODE_DLL SimpleTextArea : public cocos2d::CCNode { public: - static SimpleTextArea* create(const std::string& text, const std::string& font = "chatFont.fnt", const float scale = 1); - static SimpleTextArea* create(const std::string& text, const std::string& font, const float scale, const float width); + static SimpleTextArea* create(const std::string& text, const std::string& font = "chatFont.fnt", float scale = 1.0f); + static SimpleTextArea* create(const std::string& text, const std::string& font, float scale, float width); void setFont(const std::string& font); std::string getFont(); void setColor(const cocos2d::ccColor4B& color); cocos2d::ccColor4B getColor(); - void setAlignment(const cocos2d::CCTextAlignment alignment); + void setAlignment(cocos2d::CCTextAlignment alignment); cocos2d::CCTextAlignment getAlignment(); - void setWrappingMode(const WrappingMode mode); + void setWrappingMode(WrappingMode mode); WrappingMode getWrappingMode(); void setText(const std::string& text); std::string getText(); - void setMaxLines(const size_t maxLines); + void setMaxLines(size_t maxLines); size_t getMaxLines(); - void setWidth(const float width); + void setWidth(float width); float getWidth(); - void setScale(const float scale) override; + void setScale(float scale) override; float getScale() override; - void setLinePadding(const float padding); + void setLinePadding(float padding); float getLinePadding(); std::vector getLines(); float getHeight(); float getLineHeight(); private: - static SimpleTextArea* create(const std::string& font, const std::string& text, const float scale, const float width, const bool artificialWidth); + static SimpleTextArea* create(const std::string& font, const std::string& text, float scale, float width, const bool artificialWidth); - bool init(const std::string& font, const std::string& text, const float scale, const float width, const bool artificialWidth); + bool init(const std::string& font, const std::string& text, float scale, float width, const bool artificialWidth); bool m_shouldUpdate = false; bool m_artificialWidth = false; @@ -67,9 +67,9 @@ namespace geode { float m_lineHeight = 0.f; float m_linePadding = 0.f; - cocos2d::CCLabelBMFont* createLabel(const std::string& text, const float top); + cocos2d::CCLabelBMFont* createLabel(const std::string& text, float top); float calculateOffset(cocos2d::CCLabelBMFont* label); - void charIteration(const std::function& overflowHandling); + void charIteration(const std::function& overflowHandling); void updateLinesNoWrap(); void updateLinesWordWrap(bool spaceWrap); void updateLinesCutoffWrap(); diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index c2890be1..83ccd5ab 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -140,7 +140,7 @@ namespace geode { class PrivateMarker final {}; - static std::shared_ptr create(std::string_view const name) { + static std::shared_ptr create(std::string_view name) { return std::make_shared(PrivateMarker(), name); } @@ -153,7 +153,7 @@ namespace geode { friend class Task; public: - Handle(PrivateMarker, std::string_view const name) : m_name(name) {} + Handle(PrivateMarker, std::string_view name) : m_name(name) {} ~Handle() { // If this Task was still pending when the Handle was destroyed, // it can no longer be listened to so just cancel and cleanup @@ -393,7 +393,7 @@ namespace geode { * Create a new Task that is immediately cancelled * @param name The name of the Task; used for debugging */ - static Task cancelled(std::string_view const name = "") { + static Task cancelled(std::string_view name = "") { auto task = Task(Handle::create(name)); Task::cancel(task.m_handle); return task; @@ -404,7 +404,7 @@ namespace geode { * @param value The value the Task shall be finished with * @param name The name of the Task; used for debugging */ - static Task immediate(T value, std::string_view const name = "") { + static Task immediate(T value, std::string_view name = "") { auto task = Task(Handle::create(name)); Task::finish(task.m_handle, std::move(value)); return task; @@ -416,7 +416,7 @@ namespace geode { * function MUST be synchronous - Task creates the thread for you! * @param name The name of the Task; used for debugging */ - static Task run(Run&& body, std::string_view const name = "") { + static Task run(Run&& body, std::string_view name = "") { auto task = Task(Handle::create(name)); std::thread([handle = std::weak_ptr(task.m_handle), name = std::string(name), body = std::move(body)] { utils::thread::setName(fmt::format("Task '{}'", name)); @@ -449,7 +449,7 @@ namespace geode { * calls will always be ignored * @param name The name of the Task; used for debugging */ - static Task runWithCallback(RunWithCallback&& body, std::string_view const name = "") { + static Task runWithCallback(RunWithCallback&& body, std::string_view name = "") { auto task = Task(Handle::create(name)); std::thread([handle = std::weak_ptr(task.m_handle), name = std::string(name), body = std::move(body)] { utils::thread::setName(fmt::format("Task '{}'", name)); @@ -484,7 +484,7 @@ namespace geode { * were cancelled! */ template - static Task, std::monostate> all(std::vector>&& tasks, std::string_view const name = "") { + static Task, std::monostate> all(std::vector>&& tasks, std::string_view name = "") { using AllTask = Task, std::monostate>; // If there are no tasks, return an immediate task that does nothing @@ -581,7 +581,7 @@ namespace geode { * the mapped task is appended to the end */ template - auto map(ResultMapper&& resultMapper, ProgressMapper&& progressMapper, OnCancelled&& onCancelled, std::string_view const name = "") const { + auto map(ResultMapper&& resultMapper, ProgressMapper&& progressMapper, OnCancelled&& onCancelled, std::string_view name = "") const { using T2 = decltype(resultMapper(std::declval())); using P2 = decltype(progressMapper(std::declval())); @@ -651,7 +651,7 @@ namespace geode { * @param name The name of the Task; used for debugging. The name of * the mapped task is appended to the end */ template - auto map(ResultMapper&& resultMapper, ProgressMapper&& progressMapper, std::string_view const name = "") const { + auto map(ResultMapper&& resultMapper, ProgressMapper&& progressMapper, std::string_view name = "") const { return this->map(std::move(resultMapper), std::move(progressMapper), +[]() {}, name); } @@ -669,7 +669,7 @@ namespace geode { * the mapped task is appended to the end */ template requires std::copy_constructible

- auto map(ResultMapper&& resultMapper, std::string_view const name = "") const { + auto map(ResultMapper&& resultMapper, std::string_view name = "") const { return this->map(std::move(resultMapper), +[](P* p) -> P { return *p; }, name); } diff --git a/loader/include/Geode/utils/general.hpp b/loader/include/Geode/utils/general.hpp index 78298810..27844896 100644 --- a/loader/include/Geode/utils/general.hpp +++ b/loader/include/Geode/utils/general.hpp @@ -117,7 +117,7 @@ namespace geode { * @returns String as number, or Err if the string couldn't be converted */ template - Result numFromString(std::string_view const str, int base = 10) { + Result numFromString(std::string_view str, int base = 10) { if constexpr (std::is_floating_point_v #if defined(__cpp_lib_to_chars) && false diff --git a/loader/src/c++stl/string-impl.hpp b/loader/src/c++stl/string-impl.hpp index 99abf1e2..00335593 100644 --- a/loader/src/c++stl/string-impl.hpp +++ b/loader/src/c++stl/string-impl.hpp @@ -13,7 +13,7 @@ namespace geode::stl { void free(); char* getStorage(); - void setStorage(const std::string_view); + void setStorage(std::string_view); size_t getSize(); void setSize(size_t); diff --git a/loader/src/c++stl/string.cpp b/loader/src/c++stl/string.cpp index 7c7f18d9..83c5fe2e 100644 --- a/loader/src/c++stl/string.cpp +++ b/loader/src/c++stl/string.cpp @@ -100,11 +100,11 @@ namespace gd { bool string::operator==(string const& other) const { return std::string_view(*this) == std::string_view(other); } - bool string::operator==(std::string_view const other) const { + bool string::operator==(std::string_view other) const { return std::string_view(*this) == other; } - std::strong_ordering string::operator<=>(std::string_view const other) const { + std::strong_ordering string::operator<=>(std::string_view other) const { return static_cast(std::string_view(*this).compare(other) <=> 0); } diff --git a/loader/src/loader/Loader.cpp b/loader/src/loader/Loader.cpp index cd887d15..38761b52 100644 --- a/loader/src/loader/Loader.cpp +++ b/loader/src/loader/Loader.cpp @@ -119,14 +119,14 @@ std::vector Loader::getLaunchArgumentNames() const { return m_impl->getLaunchArgumentNames(); } -bool Loader::hasLaunchArgument(std::string_view const name) const { +bool Loader::hasLaunchArgument(std::string_view name) const { return m_impl->hasLaunchArgument(name); } -std::optional Loader::getLaunchArgument(std::string_view const name) const { +std::optional Loader::getLaunchArgument(std::string_view name) const { return m_impl->getLaunchArgument(name); } -bool Loader::getLaunchFlag(std::string_view const name) const { +bool Loader::getLaunchFlag(std::string_view name) const { return m_impl->getLaunchFlag(name); } diff --git a/loader/src/loader/LoaderImpl.cpp b/loader/src/loader/LoaderImpl.cpp index 54c938a4..1806eb6a 100644 --- a/loader/src/loader/LoaderImpl.cpp +++ b/loader/src/loader/LoaderImpl.cpp @@ -927,11 +927,11 @@ std::vector Loader::Impl::getLaunchArgumentNames() const { return map::keys(m_launchArgs); } -bool Loader::Impl::hasLaunchArgument(std::string_view const name) const { +bool Loader::Impl::hasLaunchArgument(std::string_view name) const { return m_launchArgs.find(std::string(name)) != m_launchArgs.end(); } -std::optional Loader::Impl::getLaunchArgument(std::string_view const name) const { +std::optional Loader::Impl::getLaunchArgument(std::string_view name) const { auto value = m_launchArgs.find(std::string(name)); if (value == m_launchArgs.end()) { return std::nullopt; @@ -939,7 +939,7 @@ std::optional Loader::Impl::getLaunchArgument(std::string_view cons return std::optional(value->second); } -bool Loader::Impl::getLaunchFlag(std::string_view const name) const { +bool Loader::Impl::getLaunchFlag(std::string_view name) const { auto arg = this->getLaunchArgument(name); return arg.has_value() && arg.value() == "true"; } diff --git a/loader/src/loader/LoaderImpl.hpp b/loader/src/loader/LoaderImpl.hpp index 7af233d5..b44b5d48 100644 --- a/loader/src/loader/LoaderImpl.hpp +++ b/loader/src/loader/LoaderImpl.hpp @@ -115,9 +115,9 @@ namespace geode { std::string getLaunchCommand() const; void initLaunchArguments(); std::vector getLaunchArgumentNames() const; - bool hasLaunchArgument(std::string_view const name) const; - std::optional getLaunchArgument(std::string_view const name) const; - bool getLaunchFlag(std::string_view const name) const; + bool hasLaunchArgument(std::string_view name) const; + std::optional getLaunchArgument(std::string_view name) const; + bool getLaunchFlag(std::string_view name) const; void updateResources(bool forceReload); diff --git a/loader/src/loader/Mod.cpp b/loader/src/loader/Mod.cpp index 272e7a9e..e3e7bd7f 100644 --- a/loader/src/loader/Mod.cpp +++ b/loader/src/loader/Mod.cpp @@ -148,11 +148,11 @@ std::vector Mod::getSettingKeys() const { return m_impl->getSettingKeys(); } -bool Mod::hasSetting(std::string_view const key) const { +bool Mod::hasSetting(std::string_view key) const { return m_impl->hasSetting(key); } -std::shared_ptr Mod::getSetting(std::string_view const key) const { +std::shared_ptr Mod::getSetting(std::string_view key) const { return m_impl->m_settings->get(std::string(key)); } @@ -164,15 +164,15 @@ std::vector Mod::getLaunchArgumentNames() const { return m_impl->getLaunchArgumentNames(); } -bool Mod::hasLaunchArgument(std::string_view const name) const { +bool Mod::hasLaunchArgument(std::string_view name) const { return m_impl->hasLaunchArgument(name); } -std::optional Mod::getLaunchArgument(std::string_view const name) const { +std::optional Mod::getLaunchArgument(std::string_view name) const { return m_impl->getLaunchArgument(name); } -bool Mod::getLaunchFlag(std::string_view const name) const { +bool Mod::getLaunchFlag(std::string_view name) const { return m_impl->getLaunchFlag(name); } @@ -220,7 +220,7 @@ ModRequestedAction Mod::getRequestedAction() const { return m_impl->getRequestedAction(); } -bool Mod::depends(std::string_view const id) const { +bool Mod::depends(std::string_view id) const { return m_impl->depends(id); } @@ -248,7 +248,7 @@ void Mod::setLoggingEnabled(bool enabled) { m_impl->setLoggingEnabled(enabled); } -bool Mod::hasSavedValue(std::string_view const key) { +bool Mod::hasSavedValue(std::string_view key) { return this->getSaveContainer().contains(key); } diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index dccea06a..01c7fada 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -243,7 +243,7 @@ std::vector Mod::Impl::getSettingKeys() const { return keys; } -bool Mod::Impl::hasSetting(std::string_view const key) const { +bool Mod::Impl::hasSetting(std::string_view key) const { for (auto& setting : m_metadata.getSettings()) { if (setting.first == key) { return true; @@ -252,7 +252,7 @@ bool Mod::Impl::hasSetting(std::string_view const key) const { return false; } -std::string Mod::Impl::getLaunchArgumentName(std::string_view const name) const { +std::string Mod::Impl::getLaunchArgumentName(std::string_view name) const { return this->getID() + "." + std::string(name); } @@ -267,15 +267,15 @@ std::vector Mod::Impl::getLaunchArgumentNames() const { return names; } -bool Mod::Impl::hasLaunchArgument(std::string_view const name) const { +bool Mod::Impl::hasLaunchArgument(std::string_view name) const { return Loader::get()->hasLaunchArgument(this->getLaunchArgumentName(name)); } -std::optional Mod::Impl::getLaunchArgument(std::string_view const name) const { +std::optional Mod::Impl::getLaunchArgument(std::string_view name) const { return Loader::get()->getLaunchArgument(this->getLaunchArgumentName(name)); } -bool Mod::Impl::getLaunchFlag(std::string_view const name) const { +bool Mod::Impl::getLaunchFlag(std::string_view name) const { return Loader::get()->getLaunchFlag(this->getLaunchArgumentName(name)); } @@ -442,7 +442,7 @@ bool Mod::Impl::hasUnresolvedIncompatibilities() const { return false; } -bool Mod::Impl::depends(std::string_view const id) const { +bool Mod::Impl::depends(std::string_view id) const { return utils::ranges::contains(m_metadata.getDependencies(), [id](ModMetadata::Dependency const& t) { return t.id == id; }); diff --git a/loader/src/loader/ModImpl.hpp b/loader/src/loader/ModImpl.hpp index cf709567..b3fb8dad 100644 --- a/loader/src/loader/ModImpl.hpp +++ b/loader/src/loader/ModImpl.hpp @@ -112,13 +112,13 @@ namespace geode { bool hasSettings() const; std::vector getSettingKeys() const; - bool hasSetting(std::string_view const key) const; + bool hasSetting(std::string_view key) const; - std::string getLaunchArgumentName(std::string_view const name) const; + std::string getLaunchArgumentName(std::string_view name) const; std::vector getLaunchArgumentNames() const; - bool hasLaunchArgument(std::string_view const name) const; - std::optional getLaunchArgument(std::string_view const name) const; - bool getLaunchFlag(std::string_view const name) const; + bool hasLaunchArgument(std::string_view name) const; + std::optional getLaunchArgument(std::string_view name) const; + bool getLaunchFlag(std::string_view name) const; Result claimHook(std::shared_ptr hook); Result<> disownHook(Hook* hook); @@ -136,7 +136,7 @@ namespace geode { // 1.3.0 additions ModRequestedAction getRequestedAction() const; - bool depends(std::string_view const id) const; + bool depends(std::string_view id) const; Result<> updateDependencies(); bool hasUnresolvedDependencies() const; bool hasUnresolvedIncompatibilities() const; diff --git a/loader/src/platform/android/gdstdlib.cpp b/loader/src/platform/android/gdstdlib.cpp index 3477b6dd..3559a8e5 100644 --- a/loader/src/platform/android/gdstdlib.cpp +++ b/loader/src/platform/android/gdstdlib.cpp @@ -101,7 +101,7 @@ namespace geode::stl { } // TODO: add a copyFrom(string const&) to take advantage // of gnustl refcounted strings - void StringImpl::setStorage(const std::string_view str) { + void StringImpl::setStorage(std::string_view str) { this->free(); if (str.size() == 0) { diff --git a/loader/src/platform/windows/gdTimestampMap.hpp b/loader/src/platform/windows/gdTimestampMap.hpp index 5afc8618..27d0c430 100644 --- a/loader/src/platform/windows/gdTimestampMap.hpp +++ b/loader/src/platform/windows/gdTimestampMap.hpp @@ -49,7 +49,7 @@ static std::string timestampToVersion(uint32_t timestamp) { } } -static uint32_t versionToTimestamp(std::string_view const targetVersion) { +static uint32_t versionToTimestamp(std::string_view targetVersion) { for (const auto& [stamp, ver] : getGDVersionTimestampMap()) { if (ver == targetVersion) { return stamp; diff --git a/loader/src/ui/nodes/TextArea.cpp b/loader/src/ui/nodes/TextArea.cpp index c46384ff..90cb7aea 100644 --- a/loader/src/ui/nodes/TextArea.cpp +++ b/loader/src/ui/nodes/TextArea.cpp @@ -2,15 +2,15 @@ using namespace geode::prelude; -SimpleTextArea* SimpleTextArea::create(const std::string& text, const std::string& font, const float scale) { +SimpleTextArea* SimpleTextArea::create(const std::string& text, const std::string& font, float scale) { return SimpleTextArea::create(font, text, scale, CCDirector::sharedDirector()->getWinSize().width / 2, false); } -SimpleTextArea* SimpleTextArea::create(const std::string& text, const std::string& font, const float scale, const float width) { +SimpleTextArea* SimpleTextArea::create(const std::string& text, const std::string& font, float scale, float width) { return SimpleTextArea::create(font, text, scale, width, true); } -SimpleTextArea* SimpleTextArea::create(const std::string& font, const std::string& text, const float scale, const float width, const bool artificialWidth) { +SimpleTextArea* SimpleTextArea::create(const std::string& font, const std::string& text, float scale, float width, bool artificialWidth) { SimpleTextArea* instance = new SimpleTextArea(); if (instance->init(font, text, scale, width, artificialWidth)) { @@ -22,7 +22,7 @@ SimpleTextArea* SimpleTextArea::create(const std::string& font, const std::strin return nullptr; } -bool SimpleTextArea::init(const std::string& font, const std::string& text, const float scale, const float width, const bool artificialWidth) { +bool SimpleTextArea::init(const std::string& font, const std::string& text, float scale, float width, bool artificialWidth) { m_font = font; m_text = text; m_scale = scale; @@ -57,7 +57,7 @@ ccColor4B SimpleTextArea::getColor() { return m_color; } -void SimpleTextArea::setAlignment(const CCTextAlignment alignment) { +void SimpleTextArea::setAlignment(CCTextAlignment alignment) { m_alignment = alignment; this->updateContainer(); } @@ -66,7 +66,7 @@ CCTextAlignment SimpleTextArea::getAlignment() { return m_alignment; } -void SimpleTextArea::setWrappingMode(const WrappingMode mode) { +void SimpleTextArea::setWrappingMode(WrappingMode mode) { m_wrappingMode = mode; this->updateContainer(); } @@ -84,7 +84,7 @@ std::string SimpleTextArea::getText() { return m_text; } -void SimpleTextArea::setMaxLines(const size_t maxLines) { +void SimpleTextArea::setMaxLines(size_t maxLines) { m_maxLines = maxLines; this->updateContainer(); } @@ -93,7 +93,7 @@ size_t SimpleTextArea::getMaxLines() { return m_maxLines; } -void SimpleTextArea::setWidth(const float width) { +void SimpleTextArea::setWidth(float width) { m_artificialWidth = true; this->updateContainer(); @@ -105,7 +105,7 @@ float SimpleTextArea::getWidth() { return m_container->getContentSize().width; } -void SimpleTextArea::setScale(const float scale) { +void SimpleTextArea::setScale(float scale) { m_scale = scale; this->updateContainer(); } @@ -114,7 +114,7 @@ float SimpleTextArea::getScale() { return m_scale; } -void SimpleTextArea::setLinePadding(const float padding) { +void SimpleTextArea::setLinePadding(float padding) { m_linePadding = padding; this->updateContainer(); } @@ -135,7 +135,7 @@ float SimpleTextArea::getLineHeight() { return m_lineHeight; } -CCLabelBMFont* SimpleTextArea::createLabel(const std::string& text, const float top) { +CCLabelBMFont* SimpleTextArea::createLabel(const std::string& text, float top) { if (m_maxLines && m_lines.size() >= m_maxLines) { CCLabelBMFont* last = m_lines.at(m_maxLines - 1); const std::string& text = last->getString(); @@ -159,7 +159,7 @@ float SimpleTextArea::calculateOffset(CCLabelBMFont* label) { return m_linePadding + label->getContentSize().height * m_scale; } -void SimpleTextArea::charIteration(const std::function& overflowHandling) { +void SimpleTextArea::charIteration(const std::function& overflowHandling) { float top = 0; m_lines.clear(); CCLabelBMFont* line = this->createLabel("", top); @@ -208,7 +208,7 @@ void SimpleTextArea::updateLinesNoWrap() { } void SimpleTextArea::updateLinesWordWrap(bool spaceWrap) { - this->charIteration([this, spaceWrap](CCLabelBMFont* line, const char c, const float top) { + this->charIteration([this, spaceWrap](CCLabelBMFont* line, char c, float top) { const std::string_view delimiters(spaceWrap ? " " : " `~!@#$%^&*()-_=+[{}];:'\",<.>/?\\|"); if (delimiters.find(c) == std::string_view::npos) { @@ -228,7 +228,7 @@ void SimpleTextArea::updateLinesWordWrap(bool spaceWrap) { } void SimpleTextArea::updateLinesCutoffWrap() { - this->charIteration([this](CCLabelBMFont* line, const char c, const float top) { + this->charIteration([this](CCLabelBMFont* line, char c, float top) { const std::string& text = line->getString(); const char back = text.back(); const bool lastIsSpace = back == ' '; diff --git a/loader/src/utils/web.cpp b/loader/src/utils/web.cpp index 4f872b36..0f4a5246 100644 --- a/loader/src/utils/web.cpp +++ b/loader/src/utils/web.cpp @@ -221,7 +221,7 @@ WebRequest::WebRequest() : m_impl(std::make_shared()) {} WebRequest::~WebRequest() {} // Encodes a url param -std::string urlParamEncode(std::string_view const input) { +static std::string urlParamEncode(std::string_view input) { std::ostringstream ss; ss << std::hex << std::uppercase; for (char c : input) { From 76db1268bfdb0c17b9f25e7255fe06a0c6607a0a Mon Sep 17 00:00:00 2001 From: dankmeme01 <42031238+dankmeme01@users.noreply.github.com> Date: Sun, 10 Nov 2024 17:47:09 +0100 Subject: [PATCH 039/119] change some const string refs to string views and change getID to return a ref --- .../include/Geode/cocos/base_nodes/CCNode.h | 20 ++++++++++++++----- loader/src/hooks/GeodeNodeMetadata.cpp | 16 +++++++++------ 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/loader/include/Geode/cocos/base_nodes/CCNode.h b/loader/include/Geode/cocos/base_nodes/CCNode.h index 1bbf681c..351f9a15 100644 --- a/loader/include/Geode/cocos/base_nodes/CCNode.h +++ b/loader/include/Geode/cocos/base_nodes/CCNode.h @@ -888,7 +888,7 @@ public: * @returns The ID, or an empty string if the node has no ID. * @note Geode addition */ - GEODE_DLL std::string getID(); + GEODE_DLL const std::string& getID(); /** * Set the string ID of this node. String IDs are a Geode addition * that are much safer to use to get nodes than absolute indexes @@ -899,13 +899,23 @@ public: */ GEODE_DLL void setID(std::string const& id); + /** + * Set the string ID of this node. String IDs are a Geode addition + * that are much safer to use to get nodes than absolute indexes + * @param id The ID of the node, recommended to be in kebab case + * without any spaces or uppercase letters. If the node is added + * by a mod, use the _spr literal to append the mod ID to it + * @note Geode addition + */ + GEODE_DLL void setID(std::string&& id); + /** * Get a child by its string ID * @param id ID of the child * @returns The child, or nullptr if none was found * @note Geode addition */ - GEODE_DLL CCNode* getChildByID(std::string const& id); + GEODE_DLL CCNode* getChildByID(std::string_view id); /** * Get a child by its string ID. Recursively searches all the children @@ -913,7 +923,7 @@ public: * @returns The child, or nullptr if none was found * @note Geode addition */ - GEODE_DLL CCNode* getChildByIDRecursive(std::string const& id); + GEODE_DLL CCNode* getChildByIDRecursive(std::string_view id); /** * Get a child based on a query. Searches the child tree for a matching @@ -929,14 +939,14 @@ public: * ->getChildByID("mod.id/epic-button")` * @returns The first matching node, or nullptr if none was found */ - GEODE_DLL CCNode* querySelector(std::string const& query); + GEODE_DLL CCNode* querySelector(std::string_view query); /** * Removes a child from the container by its ID. * @param id The ID of the node * @note Geode addition */ - GEODE_DLL void removeChildByID(std::string const& id); + GEODE_DLL void removeChildByID(std::string_view id); /** * Add a child before a specified existing child diff --git a/loader/src/hooks/GeodeNodeMetadata.cpp b/loader/src/hooks/GeodeNodeMetadata.cpp index 0d6ba416..bd4de0de 100644 --- a/loader/src/hooks/GeodeNodeMetadata.cpp +++ b/loader/src/hooks/GeodeNodeMetadata.cpp @@ -104,7 +104,7 @@ FieldContainer* CCNode::getFieldContainer(char const* forClass) { return GeodeNodeMetadata::set(this)->getFieldContainer(forClass); } -std::string CCNode::getID() { +const std::string& CCNode::getID() { return GeodeNodeMetadata::set(this)->m_id; } @@ -112,7 +112,11 @@ void CCNode::setID(std::string const& id) { GeodeNodeMetadata::set(this)->m_id = id; } -CCNode* CCNode::getChildByID(std::string const& id) { +void CCNode::setID(std::string&& id) { + GeodeNodeMetadata::set(this)->m_id = std::move(id); +} + +CCNode* CCNode::getChildByID(std::string_view id) { for (auto child : CCArrayExt(this->getChildren())) { if (child->getID() == id) { return child; @@ -121,7 +125,7 @@ CCNode* CCNode::getChildByID(std::string const& id) { return nullptr; } -CCNode* CCNode::getChildByIDRecursive(std::string const& id) { +CCNode* CCNode::getChildByIDRecursive(std::string_view id) { if (auto child = this->getChildByID(id)) { return child; } @@ -180,7 +184,7 @@ private: std::unique_ptr m_next = nullptr; public: - static Result> parse(std::string const& query) { + static Result> parse(std::string_view query) { if (query.empty()) { return Err("Query may not be empty"); } @@ -278,7 +282,7 @@ public: } }; -CCNode* CCNode::querySelector(std::string const& queryStr) { +CCNode* CCNode::querySelector(std::string_view queryStr) { auto res = NodeQuery::parse(queryStr); if (!res) { log::error("Invalid CCNode::querySelector query '{}': {}", queryStr, res.unwrapErr()); @@ -289,7 +293,7 @@ CCNode* CCNode::querySelector(std::string const& queryStr) { return query->match(this); } -void CCNode::removeChildByID(std::string const& id) { +void CCNode::removeChildByID(std::string_view id) { if (auto child = this->getChildByID(id)) { this->removeChild(child); } From 038788bf57c65b5c8b6b1bef5e498c80050f726e Mon Sep 17 00:00:00 2001 From: Cvolton Date: Sun, 10 Nov 2024 20:17:44 +0100 Subject: [PATCH 040/119] fix safe mode dialog randomly appearing --- loader/src/load.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/src/load.cpp b/loader/src/load.cpp index ef9b38b4..e6307133 100644 --- a/loader/src/load.cpp +++ b/loader/src/load.cpp @@ -84,7 +84,7 @@ void tryShowForwardCompat() { #ifdef GEODE_IS_WINDOWS bool safeModeCheck() { // yes this is quite funny - if (GetAsyncKeyState(VK_SHIFT) == 0) { + if (!(GetAsyncKeyState(VK_SHIFT) & (1 << 15))) { return false; } From a3beed16f5e61d6c614258a896fd745dd5e89988 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Mon, 11 Nov 2024 00:25:16 +0200 Subject: [PATCH 041/119] silly alk revert --- loader/include/Geode/loader/Setting.hpp | 6 ++---- loader/include/Geode/loader/SettingV3.hpp | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/loader/include/Geode/loader/Setting.hpp b/loader/include/Geode/loader/Setting.hpp index 3ae2ef7b..cc5f4f23 100644 --- a/loader/include/Geode/loader/Setting.hpp +++ b/loader/include/Geode/loader/Setting.hpp @@ -1,4 +1,5 @@ #pragma once + #include "SettingV3.hpp" namespace geode { @@ -26,9 +27,6 @@ namespace geode { using SettingNodeSizeChangeEvent = SettingNodeSizeChangeEventV3; using SettingNodeValueChangeEvent = SettingNodeValueChangeEventV3; - template - using SettingTypeForValueType = SettingTypeForValueTypeV3; - template EventListener* listenForSettingChanges(std::string_view settingKey, Lambda&& callback, Mod* mod = getMod()) { return listenForSettingChangesV3(settingKey, std::forward(callback), mod); @@ -45,4 +43,4 @@ namespace geode { ) { return listenForAllSettingChangesV3(callback, mod); } -} \ No newline at end of file +} diff --git a/loader/include/Geode/loader/SettingV3.hpp b/loader/include/Geode/loader/SettingV3.hpp index b9e380c1..1c2cb7fa 100644 --- a/loader/include/Geode/loader/SettingV3.hpp +++ b/loader/include/Geode/loader/SettingV3.hpp @@ -694,45 +694,45 @@ namespace geode { }; template - struct SettingTypeForValueTypeV3 { + struct SettingTypeForValueType { static_assert( !std::is_same_v, - "specialize the SettingTypeForValueTypeV3 class to use Mod::getSettingValue for custom settings" + "specialize the SettingTypeForValueType class to use Mod::getSettingValue for custom settings" ); }; template <> - struct SettingTypeForValueTypeV3 { + struct SettingTypeForValueType { using SettingType = BoolSettingV3; }; template <> - struct SettingTypeForValueTypeV3 { + struct SettingTypeForValueType { using SettingType = IntSettingV3; }; template <> - struct SettingTypeForValueTypeV3 { + struct SettingTypeForValueType { using SettingType = FloatSettingV3; }; template <> - struct SettingTypeForValueTypeV3 { + struct SettingTypeForValueType { using SettingType = StringSettingV3; }; template <> - struct SettingTypeForValueTypeV3 { + struct SettingTypeForValueType { using SettingType = FileSettingV3; }; template <> - struct SettingTypeForValueTypeV3 { + struct SettingTypeForValueType { using SettingType = Color3BSettingV3; }; template <> - struct SettingTypeForValueTypeV3 { + struct SettingTypeForValueType { using SettingType = Color4BSettingV3; }; template EventListener* listenForSettingChangesV3(std::string_view settingKey, auto&& callback, Mod* mod = getMod()) { - using Ty = typename SettingTypeForValueTypeV3::SettingType; + using Ty = typename SettingTypeForValueType::SettingType; return new EventListener( [callback = std::move(callback)](std::shared_ptr setting) { if (auto ty = geode::cast::typeinfo_pointer_cast(setting)) { From 4ba8751c682c104ab999dee4b48d49a193c5a2e8 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sun, 10 Nov 2024 19:28:14 -0300 Subject: [PATCH 042/119] update json to 3.0.1 --- CMakeLists.txt | 4 ++-- loader/include/Geode/utils/file.hpp | 3 +-- loader/src/loader/ModImpl.cpp | 8 ++------ loader/src/platform/mac/LoaderImpl.mm | 6 +----- loader/src/platform/windows/IPC.cpp | 6 +----- loader/src/server/Server.cpp | 2 +- loader/src/utils/web.cpp | 3 +-- 7 files changed, 9 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e9684c8..60fa235b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -241,8 +241,8 @@ if (ANDROID) endif() set(MAT_JSON_AS_INTERFACE ON) -CPMAddPackage("gh:geode-sdk/result@1.1.0") -CPMAddPackage("gh:geode-sdk/json#8c6c325") +CPMAddPackage("gh:geode-sdk/result@1.1.1") +CPMAddPackage("gh:geode-sdk/json@3.0.1") CPMAddPackage("gh:fmtlib/fmt#11.0.2") target_compile_definitions(${PROJECT_NAME} INTERFACE MAT_JSON_DYNAMIC=1) diff --git a/loader/include/Geode/utils/file.hpp b/loader/include/Geode/utils/file.hpp index b037512f..3cc7f7c5 100644 --- a/loader/include/Geode/utils/file.hpp +++ b/loader/include/Geode/utils/file.hpp @@ -41,8 +41,7 @@ namespace geode::utils::file { template Result<> writeToJson(std::filesystem::path const& path, T const& data) { - GEODE_UNWRAP_INTO(auto str, matjson::Value(data).dump()); - GEODE_UNWRAP(writeString(path, str)); + GEODE_UNWRAP(writeString(path, matjson::Value(data).dump())); return Ok(); } diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index 01c7fada..18a1dea1 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -215,15 +215,11 @@ Result<> Mod::Impl::saveData() { // saveData is expected to be synchronous, and always called from GD thread ModStateEvent(m_self, ModEventType::DataSaved).post(); - auto res = json.dump().andThen([&](auto const& str) { - return utils::file::writeString(m_saveDirPath / "settings.json", str); - }); + auto res = utils::file::writeString(m_saveDirPath / "settings.json", json.dump()); if (!res) { log::error("Unable to save settings: {}", res.unwrapErr()); } - auto res2 = m_saved.dump().andThen([&](auto const& str) { - return utils::file::writeString(m_saveDirPath / "saved.json", str); - }); + auto res2 = utils::file::writeString(m_saveDirPath / "saved.json", m_saved.dump()); if (!res2) { log::error("Unable to save values: {}", res2.unwrapErr()); } diff --git a/loader/src/platform/mac/LoaderImpl.mm b/loader/src/platform/mac/LoaderImpl.mm index 68c8cede..eb8a7d5f 100644 --- a/loader/src/platform/mac/LoaderImpl.mm +++ b/loader/src/platform/mac/LoaderImpl.mm @@ -98,11 +98,7 @@ CFDataRef msgPortCallback(CFMessagePortRef port, SInt32 messageID, CFDataRef dat std::string cdata(reinterpret_cast(CFDataGetBytePtr(data)), CFDataGetLength(data)); - auto res = geode::ipc::processRaw(port, cdata).dump(); - if (!res) { - log::warn("Failed to process IPC message: {}", res.unwrapErr()); - } - std::string reply = res.unwrapOr(""); + std::string reply = geode::ipc::processRaw(port, cdata).dump(); return CFDataCreate(NULL, (UInt8 const*)reply.data(), reply.size()); } diff --git a/loader/src/platform/windows/IPC.cpp b/loader/src/platform/windows/IPC.cpp index 42ad4cb7..7c2a1514 100644 --- a/loader/src/platform/windows/IPC.cpp +++ b/loader/src/platform/windows/IPC.cpp @@ -21,11 +21,7 @@ void ipcPipeThread(HANDLE pipe) { if (ReadFile(pipe, buffer, sizeof(buffer) - 1, &read, nullptr)) { buffer[read] = '\0'; - auto res = ipc::processRaw((void*)pipe, buffer).dump(); - if (!res) { - log::warn("Failed to process IPC message: {}", res.unwrapErr()); - } - std::string reply = res.unwrapOr(""); + std::string reply = ipc::processRaw((void*)pipe, buffer).dump(); DWORD written; WriteFile(pipe, reply.c_str(), reply.size(), &written, nullptr); diff --git a/loader/src/server/Server.cpp b/loader/src/server/Server.cpp index 49867ffd..55be73e8 100644 --- a/loader/src/server/Server.cpp +++ b/loader/src/server/Server.cpp @@ -176,7 +176,7 @@ static Result parseServerPayload(web::WebResponse c return Err(ServerError(response.code(), "Expected object, got {}", jsonTypeToString(json.type()))); } if (!json.contains("payload")) { - return Err(ServerError(response.code(), "Object does not contain \"payload\" key - got {}", json.dump().unwrapOr("?"))); + return Err(ServerError(response.code(), "Object does not contain \"payload\" key - got {}", json.dump())); } return Ok(json["payload"]); } diff --git a/loader/src/utils/web.cpp b/loader/src/utils/web.cpp index 0f4a5246..d83f5388 100644 --- a/loader/src/utils/web.cpp +++ b/loader/src/utils/web.cpp @@ -592,8 +592,7 @@ WebRequest& WebRequest::bodyString(std::string_view str) { } WebRequest& WebRequest::bodyJSON(matjson::Value const& json) { this->header("Content-Type", "application/json"); - // TODO: mat - std::string str = json.dump(matjson::NO_INDENTATION).unwrapOr(""); + std::string str = json.dump(matjson::NO_INDENTATION); m_impl->m_body = ByteVector { str.begin(), str.end() }; return *this; } From 0c469b98fe62b49df36de43ff3b8caa1c40e11c2 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 11 Nov 2024 21:25:06 +0300 Subject: [PATCH 043/119] update json and result --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 60fa235b..fd799a38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -241,8 +241,8 @@ if (ANDROID) endif() set(MAT_JSON_AS_INTERFACE ON) -CPMAddPackage("gh:geode-sdk/result@1.1.1") -CPMAddPackage("gh:geode-sdk/json@3.0.1") +CPMAddPackage("gh:geode-sdk/result@1.2.0") +CPMAddPackage("gh:geode-sdk/json@3.0.2") CPMAddPackage("gh:fmtlib/fmt#11.0.2") target_compile_definitions(${PROJECT_NAME} INTERFACE MAT_JSON_DYNAMIC=1) From 2940de38bc557f8a54cb0ea15c61ef0e2dfb5452 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 11 Nov 2024 21:33:34 +0300 Subject: [PATCH 044/119] update tuliphook --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fd799a38..b45073a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -272,7 +272,7 @@ if (DEFINED GEODE_TULIPHOOK_REPO_PATH) message(STATUS "Using ${GEODE_TULIPHOOK_REPO_PATH} for TulipHook") add_subdirectory(${GEODE_TULIPHOOK_REPO_PATH} ${GEODE_TULIPHOOK_REPO_PATH}/build) else() - CPMAddPackage("gh:geode-sdk/TulipHook#4e5d607") + CPMAddPackage("gh:geode-sdk/TulipHook#2.4.0") endif() set(CMAKE_WARN_DEPRECATED ON CACHE BOOL "" FORCE) From 9c1f48ee6414bf7f6a30964609252e9771c72280 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 11 Nov 2024 21:37:25 +0300 Subject: [PATCH 045/119] update tuliphook take 2 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b45073a9..68abfa7b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -272,7 +272,7 @@ if (DEFINED GEODE_TULIPHOOK_REPO_PATH) message(STATUS "Using ${GEODE_TULIPHOOK_REPO_PATH} for TulipHook") add_subdirectory(${GEODE_TULIPHOOK_REPO_PATH} ${GEODE_TULIPHOOK_REPO_PATH}/build) else() - CPMAddPackage("gh:geode-sdk/TulipHook#2.4.0") + CPMAddPackage("gh:geode-sdk/TulipHook@2.4.0") endif() set(CMAKE_WARN_DEPRECATED ON CACHE BOOL "" FORCE) From 673317d3cb1fd5ee85b5a7bb1fe476f3f48b5f11 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:38:03 +0300 Subject: [PATCH 046/119] hook priority changes with pre/post and Priority class for static priority values --- loader/include/Geode/modify/Modify.hpp | 161 ++++++++++++++++++++++++- loader/include/Geode/utils/NodeIDs.hpp | 4 +- 2 files changed, 161 insertions(+), 4 deletions(-) diff --git a/loader/include/Geode/modify/Modify.hpp b/loader/include/Geode/modify/Modify.hpp index a81ec8c4..392ea11f 100644 --- a/loader/include/Geode/modify/Modify.hpp +++ b/loader/include/Geode/modify/Modify.hpp @@ -104,8 +104,36 @@ } \ } while (0); -namespace geode::modifier { +namespace geode { + class Priority { + public: + static inline constexpr int32_t First = -3000; + static inline constexpr int32_t VeryEarly = -2000; + static inline constexpr int32_t Early = -1000; + static inline constexpr int32_t Normal = 0; + static inline constexpr int32_t Late = 1000; + static inline constexpr int32_t VeryLate = 2000; + static inline constexpr int32_t Last = 3000; + static inline constexpr int32_t FirstPre = First; + static inline constexpr int32_t VeryEarlyPre = VeryEarly; + static inline constexpr int32_t EarlyPre = Early; + static inline constexpr int32_t NormalPre = Normal; + static inline constexpr int32_t LatePre = Late; + static inline constexpr int32_t VeryLatePre = VeryLate; + static inline constexpr int32_t LastPre = Last; + + static inline constexpr int32_t FirstPost = Last; + static inline constexpr int32_t VeryEarlyPost = VeryLate; + static inline constexpr int32_t EarlyPost = Late; + static inline constexpr int32_t NormalPost = Normal; + static inline constexpr int32_t LatePost = Early; + static inline constexpr int32_t VeryLatePost = VeryEarly; + static inline constexpr int32_t LastPost = First; + }; +} + +namespace geode::modifier { template class ModifyDerive; @@ -114,6 +142,9 @@ namespace geode::modifier { public: std::map> m_hooks; + /// @brief Get a hook by name + /// @param name The name of the hook to get + /// @returns Ok if the hook was found, Err if the hook was not found Result getHook(std::string const& name) { if (m_hooks.find(name) == m_hooks.end()) { return Err("Hook not in this modify"); @@ -121,15 +152,139 @@ namespace geode::modifier { return Ok(m_hooks[name].get()); } - Result<> setHookPriority(std::string const& name, int32_t priority) { + /// @brief Set the priority of a hook + /// @param name The name of the hook to set the priority of + /// @param priority The priority to set the hook to + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriority(std::string const& name, int32_t priority = Priority::Normal) { auto res = this->getHook(name); if (!res) { - return Err(res.unwrapErr()); + return Err(std::move(res).unwrapErr()); } res.unwrap()->setPriority(priority); return Ok(); } + /// @brief Set the priority of a hook + /// @param name The name of the hook to set the priority of + /// @param priority The priority to set the hook to + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriorityPre(std::string const& name, int32_t priority = Priority::Normal) { + return this->setHookPriority(name, priority); + } + + /// @brief Set the priority of a hook + /// @param name The name of the hook to set the priority of + /// @param priority The priority to set the hook to + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriorityPost(std::string const& name, int32_t priority = Priority::Normal) { + return this->setHookPriority(name, -priority); + } + + /// @brief Set the priority of a hook to be after another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param after The mod ids of the mods to set the priority after + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + template requires (std::is_convertible_v && ...) + Result<> setHookPriorityAfter(std::string const& name, C&&... after) { + auto res = this->getHook(name); + if (!res) { + return Err(std::move(res).unwrapErr()); + } + auto hook = std::move(res).unwrap(); + ([&](){ + auto mod = Loader::get()->getInstalledMod(after); + if (!mod) return; + auto hooks = mod->getHooks(); + auto func = [=](){ + for (auto modHook : hooks) { + if (modHook->getAddress() != hook->getAddress()) continue; + auto priority = hook->getPriority(); + if (priority < mod->getPriority()) { + hook->setPriority(mod->getPriority() + 1); + } + } + }; + if (Loader::get()->isModLoaded(mod)) { + func(); + } + else { + new EventListener(func, ModStateFilter(mod, ModEventType::Loaded)); + } + } (), ...); + return Ok(); + } + + /// @brief Set the priority of a hook to be before another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param before The mod ids of the mods to set the priority before + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + template requires (std::is_convertible_v && ...) + Result<> setHookPriorityBefore(std::string const& name, C&&... before) { + auto res = this->getHook(name); + if (!res) { + return Err(std::move(res).unwrapErr()); + } + auto hook = std::move(res).unwrap(); + ([&](){ + auto mod = Loader::get()->getInstalledMod(before); + if (!mod) return; + auto hooks = mod->getHooks(); + auto func = [=](){ + for (auto modHook : hooks) { + if (modHook->getAddress() != hook->getAddress()) continue; + auto priority = hook->getPriority(); + if (priority > mod->getPriority()) { + hook->setPriority(mod->getPriority() - 1); + } + } + }; + if (Loader::get()->isModLoaded(mod)) { + func(); + } + else { + new EventListener(func, ModStateFilter(mod, ModEventType::Loaded)); + } + } (), ...); + return Ok(); + } + + /// @brief Set the priority of a hook to be after another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param after The mod ids of the mods to set the priority after + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + template requires (std::is_convertible_v && ...) + Result<> setHookPriorityAfterPre(std::string const& name, C&&... after) { + return this->setHookPriorityAfter(name, Priority::NormalPre, std::forward(after)...); + } + + /// @brief Set the priority of a hook to be before another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param before The mod ids of the mods to set the priority before + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + template requires (std::is_convertible_v && ...) + Result<> setHookPriorityBeforePre(std::string const& name, C&&... before) { + return this->setHookPriorityBefore(name, Priority::NormalPre, std::forward(before)...); + } + + /// @brief Set the priority of a hook to be after another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param after The mod ids of the mods to set the priority after + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + template requires (std::is_convertible_v && ...) + Result<> setHookPriorityAfterPost(std::string const& name, C&&... after) { + return this->setHookPriorityBefore(name, Priority::NormalPost, std::forward(after)...); + } + + /// @brief Set the priority of a hook to be before another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param before The mod ids of the mods to set the priority before + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + template requires (std::is_convertible_v && ...) + Result<> setHookPriorityBeforePost(std::string const& name, C&&... before) { + return this->setHookPriorityAfter(name, Priority::NormalPost, std::forward(before)...); + } + // unordered_map idea ModifyBase() { struct EboCheck : ModifyDerived::Base { diff --git a/loader/include/Geode/utils/NodeIDs.hpp b/loader/include/Geode/utils/NodeIDs.hpp index b2fad89f..8b22d8a2 100644 --- a/loader/include/Geode/utils/NodeIDs.hpp +++ b/loader/include/Geode/utils/NodeIDs.hpp @@ -1,9 +1,11 @@ +#pragma once +#include #include "cocos.hpp" namespace geode::node_ids { using namespace cocos2d; - static constexpr int32_t GEODE_ID_PRIORITY = 0x100000; + static constexpr int32_t GEODE_ID_PRIORITY = Priority::VeryEarlyPost; template requires std::is_base_of_v From 6db3084062f4c065076991479ef5d9fa75b493ad Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:40:30 +0300 Subject: [PATCH 047/119] priorities production ready (not tested) --- loader/include/Geode/modify/Modify.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/loader/include/Geode/modify/Modify.hpp b/loader/include/Geode/modify/Modify.hpp index 392ea11f..69b67992 100644 --- a/loader/include/Geode/modify/Modify.hpp +++ b/loader/include/Geode/modify/Modify.hpp @@ -161,7 +161,7 @@ namespace geode::modifier { if (!res) { return Err(std::move(res).unwrapErr()); } - res.unwrap()->setPriority(priority); + std::move(res).unwrap()->setPriority(priority); return Ok(); } @@ -200,8 +200,8 @@ namespace geode::modifier { for (auto modHook : hooks) { if (modHook->getAddress() != hook->getAddress()) continue; auto priority = hook->getPriority(); - if (priority < mod->getPriority()) { - hook->setPriority(mod->getPriority() + 1); + if (priority < modHook->getPriority()) { + hook->setPriority(modHook->getPriority() + 1); } } }; @@ -234,8 +234,8 @@ namespace geode::modifier { for (auto modHook : hooks) { if (modHook->getAddress() != hook->getAddress()) continue; auto priority = hook->getPriority(); - if (priority > mod->getPriority()) { - hook->setPriority(mod->getPriority() - 1); + if (priority > modHook->getPriority()) { + hook->setPriority(modHook->getPriority() - 1); } } }; From b1ab3eb373ec62b8a1af38391aaa7e52a586f8d0 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Mon, 11 Nov 2024 22:43:04 +0300 Subject: [PATCH 048/119] thank you mat --- loader/include/Geode/modify/Modify.hpp | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/loader/include/Geode/modify/Modify.hpp b/loader/include/Geode/modify/Modify.hpp index 69b67992..650e6fc8 100644 --- a/loader/include/Geode/modify/Modify.hpp +++ b/loader/include/Geode/modify/Modify.hpp @@ -157,11 +157,8 @@ namespace geode::modifier { /// @param priority The priority to set the hook to /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found Result<> setHookPriority(std::string const& name, int32_t priority = Priority::Normal) { - auto res = this->getHook(name); - if (!res) { - return Err(std::move(res).unwrapErr()); - } - std::move(res).unwrap()->setPriority(priority); + GEODE_UNWRAP_INTO(auto hook, this->getHook(name)); + hook->setPriority(priority); return Ok(); } @@ -187,11 +184,7 @@ namespace geode::modifier { /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found template requires (std::is_convertible_v && ...) Result<> setHookPriorityAfter(std::string const& name, C&&... after) { - auto res = this->getHook(name); - if (!res) { - return Err(std::move(res).unwrapErr()); - } - auto hook = std::move(res).unwrap(); + GEODE_UNWRAP_INTO(auto hook, this->getHook(name)); ([&](){ auto mod = Loader::get()->getInstalledMod(after); if (!mod) return; @@ -221,11 +214,7 @@ namespace geode::modifier { /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found template requires (std::is_convertible_v && ...) Result<> setHookPriorityBefore(std::string const& name, C&&... before) { - auto res = this->getHook(name); - if (!res) { - return Err(std::move(res).unwrapErr()); - } - auto hook = std::move(res).unwrap(); + GEODE_UNWRAP_INTO(auto hook, this->getHook(name)); ([&](){ auto mod = Loader::get()->getInstalledMod(before); if (!mod) return; From 324883140ab68de73414b3a6cead9b0deae5bc62 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Mon, 11 Nov 2024 16:42:01 -0300 Subject: [PATCH 049/119] add Task::chain --- loader/include/Geode/utils/Task.hpp | 87 +++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index 83ccd5ab..27d61056 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -751,6 +751,93 @@ namespace geode { this->listen(std::move(onResult), [](auto const&) {}, [] {}); } + /** + * Create a new Task that listens to this Task and maps the values using + * the provided function. The new Task will only start when this Task finishes. + * @param mapper Function that makes a new task given the finished value of this task. + * The function signature should be `Task(T*)`, and it will be executed + * on the main thread. + * @param name The name of the Task; used for debugging. + * @return The new Task that will run when this Task finishes. + * @note Progress from this task is not sent through, only progress from the new task is. + */ + template Mapper> + auto chain(Mapper mapper, std::string_view name = "") const -> decltype(mapper(std::declval())) { + using NewTask = decltype(mapper(std::declval())); + using NewType = typename NewTask::Value; + using NewProgress = typename NewTask::Progress; + + std::unique_lock lock(m_handle->m_mutex); + + if (m_handle->m_status == Status::Cancelled) { + // if the current task has been cancelled already, make an immediate cancelled task + return NewTask::cancelled(); + } + else if (m_handle->m_status == Status::Finished) { + // if the current task is already done, we can just call the mapper directly + return mapper(&*m_handle->m_resultValue); + } + + // otherwise, make a wrapper task that waits for the current task to finish, + // and then runs the mapper on the result. this new task will also wait for the task + // created by the mapper to finish, and will just forward the values through. + // do this because we cant really change the handle of the task we already returned + + NewTask task = NewTask::Handle::create(fmt::format("{} <- {}", name, m_handle->m_name)); + + task.m_handle->m_extraData = std::make_unique( + // make the first event listener that waits for the current task + static_cast(new EventListener( + [handle = std::weak_ptr(task.m_handle), mapper = std::move(mapper)](Event* event) mutable { + if (auto v = event->getValue()) { + auto newInnerTask = mapper(v); + // this is scary.. but it doesn't seem to crash lol + handle.lock()->m_extraData = std::make_unique( + // make the second event listener that waits for the mapper's task + // and just forwards everything through + static_cast(new EventListener( + [handle](Event* event) mutable { + if (auto v = event->getValue()) { + NewTask::finish(handle.lock(), std::move(*v)); + } + else if (auto p = event->getProgress()) { + NewTask::progress(handle.lock(), std::move(*p)); + } + else if (event->isCancelled()) { + NewTask::cancel(handle.lock()); + } + }, + std::move(newInnerTask) + )), + +[](void* ptr) { + delete static_cast*>(ptr); + }, + +[](void* ptr) { + static_cast*>(ptr)->getFilter().cancel(); + } + ); + } + else if (auto p = event->getProgress()) { + // no guarantee P and NewProgress are compatible + // nor does it seem like the intended behavior? + // TODO: maybe add a mapper for progress? + } + else if (event->isCancelled()) { + NewTask::cancel(handle.lock()); + } + }, + *this + )), + +[](void* ptr) { + delete static_cast*>(ptr); + }, + +[](void* ptr) { + static_cast*>(ptr)->getFilter().cancel(); + } + ); + return task; + } + ListenerResult handle(std::function fn, Event* e) { if (e->m_handle == m_handle && (!e->m_for || e->m_for == m_listener)) { fn(e); From f5f336532fbdd6e1706bfb4470840dd6a0d1ab7d Mon Sep 17 00:00:00 2001 From: Cvolton Date: Mon, 11 Nov 2024 21:36:39 +0100 Subject: [PATCH 050/119] fix the stupid misaligned controller button --- loader/src/hooks/MenuLayer.cpp | 1 + loader/src/ids/MenuLayer.cpp | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/loader/src/hooks/MenuLayer.cpp b/loader/src/hooks/MenuLayer.cpp index 3b82c54b..52eb5e3c 100644 --- a/loader/src/hooks/MenuLayer.cpp +++ b/loader/src/hooks/MenuLayer.cpp @@ -75,6 +75,7 @@ struct CustomMenuLayer : Modify { this->fixSocialMenu(); + //this code doesnt run have fun figuring out why idc enough if (auto node = this->getChildByID("settings-gamepad-icon")) { node->setPositionX( bottomMenu->getChildByID("settings-button")->getPositionX() + winSize.width / 2 diff --git a/loader/src/ids/MenuLayer.cpp b/loader/src/ids/MenuLayer.cpp index d5e8cf0d..233a4e32 100644 --- a/loader/src/ids/MenuLayer.cpp +++ b/loader/src/ids/MenuLayer.cpp @@ -46,6 +46,11 @@ $register_ids(MenuLayer) { } setIDSafe(this, labelOffset++, "player-username"); + + if(auto node = this->getChildByID("settings-gamepad-icon")) { + // hide it until someone figures out how to bind the positioning to the actual button + node->setVisible(false); + } // main menu if (auto menu = this->getChildByType(0)) { From bcb856a30280743f231bb6032ece7b8b13e0939b Mon Sep 17 00:00:00 2001 From: Chloe <25387744+qimiko@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:14:32 -0700 Subject: [PATCH 051/119] update android binaries --- .../include/link/android32/libcocos2dcpp.so | Bin 1523952 -> 1532252 bytes .../include/link/android64/libcocos2dcpp.so | Bin 1741104 -> 1751176 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/loader/include/link/android32/libcocos2dcpp.so b/loader/include/link/android32/libcocos2dcpp.so index 6fde2f27314cfaccb437b9846c1ebd7d340257e9..aa508cf787f10921efffa37ec2493fedb0b952b6 100644 GIT binary patch literal 1532252 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

Jf1C{9<33!0;cjWTD7TU#@0>q5a5 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

l=@Ror5geZB&jofoIPQh9H6 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 L{c9xfH|YK!=5)Hj diff --git a/loader/include/link/android64/libcocos2dcpp.so b/loader/include/link/android64/libcocos2dcpp.so index 4bc16f70696669740e9ffcdc2a10b87a891e487f..ce69d8613819d10330fa742568287f35deac5893 100644 GIT binary patch literal 1751176 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

i&)Se7_uU>9}xEJ;!_s`I9*wsU3s2;e4X| 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

BHTu^#Pe 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%0Dj$ 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%0DJokwa3{fmRcH#cqrO2LKAitp_v<`l%bLJW>=j| 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� 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 Date: Mon, 11 Nov 2024 15:21:34 -0700 Subject: [PATCH 052/119] ok there --- CMakeLists.txt | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 68abfa7b..ab63fe8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,13 +189,10 @@ include(cmake/Platform.cmake) include(cmake/GeodeFile.cmake) if (NOT DEFINED GEODE_GD_VERSION) - if (GEODE_TARGET_PLATFORM STREQUAL "Win64" OR GEODE_TARGET_PLATFORM STREQUAL "MacOS") - set(GEODE_GD_VERSION 2.2073) - set(GEODE_COMP_GD_VERSION 22073) - else() - set(GEODE_GD_VERSION 2.206) - set(GEODE_COMP_GD_VERSION 22060) - endif() + # this is incorrect! + # Android and iOS are on 2.2074 so please fix when 2.2074 releases for desktop :( + set(GEODE_GD_VERSION 2.2073) + set(GEODE_COMP_GD_VERSION 22073) endif() target_compile_definitions( From c9e97af18a7315e792842e4c1e625fa51416611c Mon Sep 17 00:00:00 2001 From: Chloe <25387744+qimiko@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:53:02 -0700 Subject: [PATCH 053/119] disable forward compat mode on android --- loader/src/loader/LoaderImpl.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/loader/src/loader/LoaderImpl.cpp b/loader/src/loader/LoaderImpl.cpp index 1806eb6a..75741ae1 100644 --- a/loader/src/loader/LoaderImpl.cpp +++ b/loader/src/loader/LoaderImpl.cpp @@ -42,6 +42,11 @@ Loader::Impl::~Impl() = default; // Initialization bool Loader::Impl::isForwardCompatMode() { +#ifdef GEODE_IS_ANDROID + // forward compat mode doesn't really make sense on android + return false; +#endif + if (!m_forwardCompatMode.has_value()) { m_forwardCompatMode = !this->getGameVersion().empty() && this->getGameVersion() != GEODE_STR(GEODE_GD_VERSION); From d415c949d046a178c5a19f145df70fd44f17662e Mon Sep 17 00:00:00 2001 From: Chloe <25387744+qimiko@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:53:26 -0700 Subject: [PATCH 054/119] add android gameversion to mappings --- loader/src/platform/android/LoaderImpl.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/loader/src/platform/android/LoaderImpl.cpp b/loader/src/platform/android/LoaderImpl.cpp index 4bcd0d45..0d8db401 100644 --- a/loader/src/platform/android/LoaderImpl.cpp +++ b/loader/src/platform/android/LoaderImpl.cpp @@ -21,6 +21,7 @@ std::string Loader::Impl::getGameVersion() { case 37: m_gdVersion = "2.200"; break; case 38: m_gdVersion = "2.205"; break; case 39: m_gdVersion = "2.206"; break; + case 40: m_gdVersion = "2.2074"; break; default: m_gdVersion = std::to_string(version_code); } } From 09fa8727816c572891943411ccaf0f5c4ad149cb Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Tue, 12 Nov 2024 01:03:19 +0200 Subject: [PATCH 055/119] show outdated mods in the UI + make outdated Geode ver count for that too --- loader/include/Geode/loader/Loader.hpp | 15 +++++ loader/include/Geode/loader/Mod.hpp | 11 +++- loader/src/internal/crashlog.cpp | 2 +- loader/src/loader/Loader.cpp | 13 +--- loader/src/loader/LoaderImpl.cpp | 64 ++++++++++--------- loader/src/loader/Mod.cpp | 19 ++---- loader/src/loader/ModImpl.cpp | 6 +- loader/src/ui/mods/GeodeStyle.cpp | 2 + loader/src/ui/mods/list/ModItem.cpp | 57 +++++++++++++++-- loader/src/ui/mods/list/ModItem.hpp | 1 + .../mods/sources/InstalledModListSource.cpp | 2 +- loader/src/ui/mods/sources/ModListSource.hpp | 8 ++- 12 files changed, 134 insertions(+), 66 deletions(-) diff --git a/loader/include/Geode/loader/Loader.hpp b/loader/include/Geode/loader/Loader.hpp index 1ee17351..ec77356f 100644 --- a/loader/include/Geode/loader/Loader.hpp +++ b/loader/include/Geode/loader/Loader.hpp @@ -46,6 +46,21 @@ namespace geode { Type type; std::variant cause; std::string message; + + bool isSuggestion() const { + return + type == LoadProblem::Type::Recommendation || + type == LoadProblem::Type::Suggestion; + } + bool isOutdated() const { + return + type == LoadProblem::Type::UnsupportedVersion || + type == LoadProblem::Type::NeedsNewerGeodeVersion || + type == LoadProblem::Type::UnsupportedGeodeVersion; + } + bool isProblem() const { + return !isSuggestion() && !isOutdated(); + } }; class LoaderImpl; diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index c174f7e3..211615ed 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -446,7 +446,16 @@ namespace geode { bool isLoggingEnabled() const; void setLoggingEnabled(bool enabled); - bool targetsOutdatedGDVersion() const; + /** + * If this mod is built for an outdated GD or Geode version, returns the + * `LoadProblem` describing the situation. Otherwise `nullopt` if the + * mod is made for the correct version of the game and Geode + */ + std::optional targetsOutdatedVersion() const; + /** + * @note Make sure to also call `targetsOutdatedVersion` if you want to + * make sure the mod is actually loadable + */ bool hasLoadProblems() const; std::vector getAllProblems() const; std::vector getProblems() const; diff --git a/loader/src/internal/crashlog.cpp b/loader/src/internal/crashlog.cpp index 4350ca2f..8341afef 100644 --- a/loader/src/internal/crashlog.cpp +++ b/loader/src/internal/crashlog.cpp @@ -46,7 +46,7 @@ void crashlog::printMods(std::stringstream& stream) { mod->isCurrentlyLoading() ? "o"sv : mod->isEnabled() ? "x"sv : mod->hasLoadProblems() ? "!"sv : // thank you for this bug report - mod->targetsOutdatedGDVersion() ? "*"sv : // thank you very much for this bug report + mod->targetsOutdatedVersion() ? "*"sv : // thank you very much for this bug report mod->shouldLoad() ? "~"sv : " "sv, mod->getVersion().toVString(), mod->getID() diff --git a/loader/src/loader/Loader.cpp b/loader/src/loader/Loader.cpp index 38761b52..b2575850 100644 --- a/loader/src/loader/Loader.cpp +++ b/loader/src/loader/Loader.cpp @@ -71,11 +71,7 @@ std::vector Loader::getAllProblems() const { std::vector Loader::getLoadProblems() const { std::vector result; for (auto problem : this->getAllProblems()) { - if ( - problem.type != LoadProblem::Type::Recommendation && - problem.type != LoadProblem::Type::Suggestion && - problem.type != LoadProblem::Type::UnsupportedVersion - ) { + if (problem.isProblem()) { result.push_back(problem); } } @@ -84,7 +80,7 @@ std::vector Loader::getLoadProblems() const { std::vector Loader::getOutdated() const { std::vector result; for (auto problem : this->getAllProblems()) { - if (problem.type == LoadProblem::Type::UnsupportedVersion) { + if (problem.isOutdated()) { result.push_back(problem); } } @@ -93,10 +89,7 @@ std::vector Loader::getOutdated() const { std::vector Loader::getRecommendations() const { std::vector result; for (auto problem : this->getAllProblems()) { - if ( - problem.type == LoadProblem::Type::Recommendation || - problem.type == LoadProblem::Type::Suggestion - ) { + if (problem.isSuggestion()) { result.push_back(problem); } } diff --git a/loader/src/loader/LoaderImpl.cpp b/loader/src/loader/LoaderImpl.cpp index 1806eb6a..65fe6883 100644 --- a/loader/src/loader/LoaderImpl.cpp +++ b/loader/src/loader/LoaderImpl.cpp @@ -384,6 +384,37 @@ void Loader::Impl::buildModGraph() { } void Loader::Impl::loadModGraph(Mod* node, bool early) { + // Check version first, as it's not worth trying to load a mod with an + // invalid target version + // Also this makes it so that when GD updates, outdated mods get shown as + // "Outdated" in the UI instead of "Missing Dependencies" + auto res = node->getMetadata().checkGameVersion(); + if (!res) { + this->addProblem({ + LoadProblem::Type::UnsupportedVersion, + node, + res.unwrapErr() + }); + log::error("{}", res.unwrapErr()); + log::popNest(); + return; + } + + if (!this->isModVersionSupported(node->getMetadata().getGeodeVersion())) { + this->addProblem({ + node->getMetadata().getGeodeVersion() > this->getVersion() ? LoadProblem::Type::NeedsNewerGeodeVersion : LoadProblem::Type::UnsupportedGeodeVersion, + node, + fmt::format( + "Geode version {}\nis required to run this mod\n(installed: {})", + node->getMetadata().getGeodeVersion().toVString(), + this->getVersion().toVString() + ) + }); + log::error("Unsupported Geode version: {}", node->getMetadata().getGeodeVersion()); + log::popNest(); + return; + } + if (node->hasUnresolvedDependencies()) { log::debug("{} {} has unresolved dependencies", node->getID(), node->getVersion()); return; @@ -444,35 +475,6 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { log::popNest(); return; } - - auto res = node->getMetadata().checkGameVersion(); - if (!res) { - this->addProblem({ - LoadProblem::Type::UnsupportedVersion, - node, - res.unwrapErr() - }); - log::error("{}", res.unwrapErr()); - m_refreshingModCount -= 1; - log::popNest(); - return; - } - - if (!this->isModVersionSupported(node->getMetadata().getGeodeVersion())) { - this->addProblem({ - node->getMetadata().getGeodeVersion() > this->getVersion() ? LoadProblem::Type::NeedsNewerGeodeVersion : LoadProblem::Type::UnsupportedGeodeVersion, - node, - fmt::format( - "Geode version {}\nis required to run this mod\n(installed: {})", - node->getMetadata().getGeodeVersion().toVString(), - this->getVersion().toVString() - ) - }); - log::error("Unsupported Geode version: {}", node->getMetadata().getGeodeVersion()); - m_refreshingModCount -= 1; - log::popNest(); - return; - } } if (early) { @@ -524,6 +526,10 @@ void Loader::Impl::findProblems() { log::debug("{} is not enabled", id); continue; } + if (mod->targetsOutdatedVersion()) { + log::debug("{} is outdated", id); + continue; + } log::debug("{}", id); log::pushNest(); diff --git a/loader/src/loader/Mod.cpp b/loader/src/loader/Mod.cpp index e3e7bd7f..11748486 100644 --- a/loader/src/loader/Mod.cpp +++ b/loader/src/loader/Mod.cpp @@ -255,13 +255,13 @@ bool Mod::hasSavedValue(std::string_view key) { bool Mod::hasLoadProblems() const { return m_impl->hasLoadProblems(); } -bool Mod::targetsOutdatedGDVersion() const { +std::optional Mod::targetsOutdatedVersion() const { for (auto problem : this->getAllProblems()) { - if (problem.type == LoadProblem::Type::UnsupportedVersion) { - return true; + if (problem.isOutdated()) { + return problem; } } - return false; + return std::nullopt; } std::vector Mod::getAllProblems() const { return m_impl->getProblems(); @@ -269,11 +269,7 @@ std::vector Mod::getAllProblems() const { std::vector Mod::getProblems() const { std::vector result; for (auto problem : this->getAllProblems()) { - if ( - problem.type != LoadProblem::Type::Recommendation && - problem.type != LoadProblem::Type::Suggestion && - problem.type != LoadProblem::Type::UnsupportedVersion - ) { + if (problem.isProblem()) { result.push_back(problem); } } @@ -282,10 +278,7 @@ std::vector Mod::getProblems() const { std::vector Mod::getRecommendations() const { std::vector result; for (auto problem : this->getAllProblems()) { - if ( - problem.type == LoadProblem::Type::Recommendation || - problem.type == LoadProblem::Type::Suggestion - ) { + if (problem.isSuggestion()) { result.push_back(problem); } } diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index 18a1dea1..04b45487 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -706,11 +706,7 @@ bool Mod::Impl::isCurrentlyLoading() const { bool Mod::Impl::hasLoadProblems() const { for (auto const& problem : m_problems) { - if ( - problem.type != LoadProblem::Type::Recommendation && - problem.type != LoadProblem::Type::Suggestion && - problem.type != LoadProblem::Type::UnsupportedVersion - ) { + if (problem.isProblem()) { return true; } } diff --git a/loader/src/ui/mods/GeodeStyle.cpp b/loader/src/ui/mods/GeodeStyle.cpp index e5fa9039..584287be 100644 --- a/loader/src/ui/mods/GeodeStyle.cpp +++ b/loader/src/ui/mods/GeodeStyle.cpp @@ -12,6 +12,8 @@ $on_mod(Loaded) { ColorProvider::get()->define("mod-list-version-label-updates-available"_spr, ccc3(88, 202, 255)); ColorProvider::get()->define("mod-list-restart-required-label"_spr, ccc3(153, 245, 245)); ColorProvider::get()->define("mod-list-restart-required-label-bg"_spr, ccc3(123, 156, 163)); + ColorProvider::get()->define("mod-list-outdated-label"_spr, ccc3(245, 153, 245)); + ColorProvider::get()->define("mod-list-outdated-label-bg"_spr, ccc3(156, 123, 163)); ColorProvider::get()->define("mod-list-search-bg"_spr, { 83, 65, 109, 255 }); ColorProvider::get()->define("mod-list-updates-available-bg"_spr, { 139, 89, 173, 255 }); ColorProvider::get()->define("mod-list-updates-available-bg-2"_spr, { 45, 110, 222, 255 }); diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index d8e7f350..286d2012 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -95,6 +95,17 @@ bool ModItem::init(ModSource&& source) { m_restartRequiredLabel->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(std::nullopt, .75f)); m_infoContainer->addChild(m_restartRequiredLabel); + m_outdatedLabel = createTagLabel( + fmt::format("Outdated (GD {})", m_source.getMetadata().getGameVersion().value_or("*")), + { + to3B(ColorProvider::get()->color("mod-list-outdated-label"_spr)), + to3B(ColorProvider::get()->color("mod-list-outdated-label-bg"_spr)) + } + ); + m_outdatedLabel->setID("outdated-label"); + m_outdatedLabel->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(std::nullopt, .75f)); + m_infoContainer->addChild(m_outdatedLabel); + m_downloadBarContainer = CCNode::create(); m_downloadBarContainer->setID("download-bar-container"); m_downloadBarContainer->setContentSize({ 320, 30 }); @@ -185,7 +196,7 @@ bool ModItem::init(ModSource&& source) { m_viewMenu->addChild(m_enableToggle); m_viewMenu->updateLayout(); } - if (mod->hasLoadProblems() || mod->targetsOutdatedGDVersion()) { + if (mod->hasLoadProblems() || mod->targetsOutdatedVersion()) { auto viewErrorSpr = createGeodeCircleButton( CCSprite::createWithSpriteFrameName("exclamation.png"_spr), 1.f, CircleBaseSize::Small @@ -342,7 +353,6 @@ void ModItem::updateState() { m_downloadBarContainer->setVisible(false); m_downloadWaiting->setVisible(false); } - m_infoContainer->updateLayout(); // Set default colors based on source to start off with // (possibly overriding later based on state) @@ -410,16 +420,22 @@ void ModItem::updateState() { m_titleContainer->updateLayout(); // If there were problems, tint the BG red + m_outdatedLabel->setVisible(false); if (m_source.asMod()) { if (m_source.asMod()->hasLoadProblems()) { m_bg->setColor("mod-list-errors-found"_cc3b); m_bg->setOpacity(isGeodeTheme() ? 25 : 90); } - if (m_source.asMod()->targetsOutdatedGDVersion()) { - m_bg->setOpacity(isGeodeTheme() ? 0 : 0); + if (m_source.asMod()->targetsOutdatedVersion()) { + m_bg->setColor("mod-list-outdated-label"_cc3b); + m_bg->setOpacity(isGeodeTheme() ? 25 : 90); + m_outdatedLabel->setVisible(true); + m_developers->setVisible(false); } } + m_infoContainer->updateLayout(); + // Highlight item via BG if it wants to restart for extra UI attention if (wantsRestart) { m_bg->setColor("mod-list-restart-required-label"_cc3b); @@ -541,7 +557,38 @@ void ModItem::onView(CCObject*) { } void ModItem::onViewError(CCObject*) { if (auto mod = m_source.asMod()) { - ModErrorPopup::create(mod)->show(); + if (auto problem = mod->targetsOutdatedVersion()) { + std::string issue; + std::string howToFix; + switch (problem->type) { + default: + case LoadProblem::Type::UnsupportedVersion: { + issue = fmt::format("{}", problem->message); + howToFix = "wait for the developer to release an update to " + "the mod that supports the newer version."; + } break; + + case LoadProblem::Type::UnsupportedGeodeVersion: { + issue = "This mod is made for a newer version of Geode."; + howToFix = "update Geode by enabling Automatic Updates " + "or redownloading it from the Geode website."; + } break; + + case LoadProblem::Type::NeedsNewerGeodeVersion: { + issue = "This mod is made for an older version of Geode."; + howToFix = "wait for the developer to release an update to " + "the mod that supports the newer version."; + } break; + } + FLAlertLayer::create( + "Outdated", + fmt::format("{} Please {}", issue, howToFix), + "OK" + )->show(); + } + else { + ModErrorPopup::create(mod)->show(); + } } } void ModItem::onEnable(CCObject*) { diff --git a/loader/src/ui/mods/list/ModItem.hpp b/loader/src/ui/mods/list/ModItem.hpp index c6a3fa75..89ac4a2d 100644 --- a/loader/src/ui/mods/list/ModItem.hpp +++ b/loader/src/ui/mods/list/ModItem.hpp @@ -25,6 +25,7 @@ protected: CCNode* m_recommendedBy; CCLabelBMFont* m_developerLabel; ButtonSprite* m_restartRequiredLabel; + ButtonSprite* m_outdatedLabel; CCNode* m_downloadWaiting; CCNode* m_downloadBarContainer; Slider* m_downloadBar; diff --git a/loader/src/ui/mods/sources/InstalledModListSource.cpp b/loader/src/ui/mods/sources/InstalledModListSource.cpp index 0d5e1acd..79b03a90 100644 --- a/loader/src/ui/mods/sources/InstalledModListSource.cpp +++ b/loader/src/ui/mods/sources/InstalledModListSource.cpp @@ -13,7 +13,7 @@ bool InstalledModsQuery::preCheck(ModSource const& src) const { } // If only errors requested, only show mods with errors (duh) if (type == InstalledModListType::OnlyOutdated) { - return src.asMod()->targetsOutdatedGDVersion(); + return src.asMod()->targetsOutdatedVersion().has_value(); } if (type == InstalledModListType::OnlyErrors) { return src.asMod()->hasLoadProblems(); diff --git a/loader/src/ui/mods/sources/ModListSource.hpp b/loader/src/ui/mods/sources/ModListSource.hpp index 10e421ca..46d02236 100644 --- a/loader/src/ui/mods/sources/ModListSource.hpp +++ b/loader/src/ui/mods/sources/ModListSource.hpp @@ -230,7 +230,13 @@ void filterModsWithLocalQuery(ModListSource::ProvidedMods& mods, Query const& qu if (a.second != b.second) { return a.second > b.second; } - // Sort secondarily alphabetically + // Make sure outdated mods are always last by default + auto aIsOutdated = a.first.getMetadata().checkGameVersion().isErr(); + auto bIsOutdated = b.first.getMetadata().checkGameVersion().isErr(); + if (aIsOutdated != bIsOutdated) { + return !aIsOutdated; + } + // Fallback sort alphabetically return utils::string::caseInsensitiveCompare( a.first.getMetadata().getName(), b.first.getMetadata().getName() From e61b2c0595ed38e913c71f120ec2e6278a96e210 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Tue, 12 Nov 2024 02:31:36 -0300 Subject: [PATCH 056/119] co_await support for geode Task see comment at the bottom of the header for more information --- loader/include/Geode/utils/Task.hpp | 135 ++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index 27d61056..bf4ef0fb 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -5,8 +5,17 @@ #include "../loader/Loader.hpp" #include #include +#include namespace geode { + namespace geode_internal { + template + struct TaskPromise; + + template + struct TaskAwaiter; + } + /** * Tasks represent an asynchronous operation that will be finished at some * unknown point in the future. Tasks can report their progress, and will @@ -152,6 +161,12 @@ namespace geode { template friend class Task; + template + friend struct geode_internal::TaskPromise; + + template + friend struct geode_internal::TaskAwaiter; + public: Handle(PrivateMarker, std::string_view name) : m_name(name) {} ~Handle() { @@ -307,6 +322,12 @@ namespace geode { template friend class Task; + template + friend struct geode_internal::TaskPromise; + + template + friend struct geode_internal::TaskAwaiter; + public: // Allow default-construction Task() : m_handle(nullptr) {} @@ -883,3 +904,117 @@ namespace geode { static_assert(is_filter>, "The Task class must be a valid event filter!"); } + +// - C++20 coroutine support for Task - // + +// Example usage (function must return a Task): +// ``` +// Task someTask() { +// auto response = co_await web::WebRequest().get("https://example.com"); +// co_return response.code(); +// } +// ``` +// This will create a Task that will finish with the response code of the +// web request. +// +// Note: If the Task the coroutine is waiting on is cancelled, the coroutine +// will be destroyed and the Task will be cancelled as well. If the Task returned +// by the coroutine is cancelled, the coroutine will be destroyed as well and execution +// stops as soon as possible. +// +// The body of the coroutine is ran in whatever thread it got called in. +// TODO: maybe guarantee main thread? + +namespace geode { + namespace geode_internal { + template + struct TaskPromise { + using MyTask = Task; + std::weak_ptr m_handle; + + ~TaskPromise() { + // does nothing if its not pending + MyTask::cancel(m_handle.lock()); + } + + std::suspend_never initial_suspend() noexcept { return {}; } + std::suspend_never final_suspend() noexcept { return {}; } + // TODO: do something here? + void unhandled_exception() {} + + MyTask get_return_object() { + auto handle = MyTask::Handle::create(""); + m_handle = handle; + return handle; + } + + void return_value(T&& x) { + MyTask::finish(m_handle.lock(), std::move(x)); + } + + bool isCancelled() { + if (auto p = m_handle.lock()) { + return p->is(MyTask::Status::Cancelled); + } + return true; + } + }; + + template + struct TaskAwaiter { + Task task; + + bool await_ready() { + return task.isFinished(); + } + + template + void await_suspend(std::coroutine_handle> handle) { + if (handle.promise().isCancelled()) { + handle.destroy(); + return; + } + // this should be fine because the parent task can only have + // one pending task at a time + std::shared_ptr::Handle> parentHandle = handle.promise().m_handle.lock(); + if (!parentHandle) { + handle.destroy(); + return; + } + parentHandle->m_extraData = std::make_unique::Handle::ExtraData>( + static_cast(new EventListener>( + [handle](auto* event) { + if (event->getValue()) { + handle.resume(); + } + if (event->isCancelled()) { + handle.destroy(); + } + }, + task + )), + +[](void* ptr) { + delete static_cast>*>(ptr); + }, + +[](void* ptr) { + static_cast>*>(ptr)->getFilter().cancel(); + } + ); + } + + T await_resume() { + return std::move(*task.getFinishedValue()); + } + }; + } +} + +template +auto operator co_await(geode::Task task) { + return geode::geode_internal::TaskAwaiter{task}; +} + +template +struct std::coroutine_traits, Args...> { + using promise_type = geode::geode_internal::TaskPromise; +}; \ No newline at end of file From 00cc510d5b9dfdac22c8bb8d5453a8f2b9c25ea8 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Tue, 12 Nov 2024 02:41:35 -0300 Subject: [PATCH 057/119] fix typename --- loader/include/Geode/utils/Task.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index bf4ef0fb..6971a2fc 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -976,7 +976,7 @@ namespace geode { } // this should be fine because the parent task can only have // one pending task at a time - std::shared_ptr::Handle> parentHandle = handle.promise().m_handle.lock(); + auto parentHandle = handle.promise().m_handle.lock(); if (!parentHandle) { handle.destroy(); return; From 0ee9aebdee7b6334de2eccc0936218d55e2e7f0d Mon Sep 17 00:00:00 2001 From: Oleksandr Nemesh Date: Tue, 12 Nov 2024 13:53:15 +0200 Subject: [PATCH 058/119] add 2.2074 timestamp (#1143) --- CMakeLists.txt | 6 ++---- loader/src/platform/windows/gdTimestampMap.hpp | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ab63fe8a..ea342bb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,10 +189,8 @@ include(cmake/Platform.cmake) include(cmake/GeodeFile.cmake) if (NOT DEFINED GEODE_GD_VERSION) - # this is incorrect! - # Android and iOS are on 2.2074 so please fix when 2.2074 releases for desktop :( - set(GEODE_GD_VERSION 2.2073) - set(GEODE_COMP_GD_VERSION 22073) + set(GEODE_GD_VERSION 2.2074) + set(GEODE_COMP_GD_VERSION 22074) endif() target_compile_definitions( diff --git a/loader/src/platform/windows/gdTimestampMap.hpp b/loader/src/platform/windows/gdTimestampMap.hpp index 27d0c430..5af8761c 100644 --- a/loader/src/platform/windows/gdTimestampMap.hpp +++ b/loader/src/platform/windows/gdTimestampMap.hpp @@ -36,6 +36,7 @@ static auto const& getGDVersionTimestampMap() { { 1731117052, "2.2071" }, { 1731130219, "2.2072" }, { 1731156923, "2.2073" }, + { 1731376950, "2.2074" }, }; return map; } From ab196b9adfba511e1880fa78c8fea3b3edbde083 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Tue, 12 Nov 2024 12:21:09 -0300 Subject: [PATCH 059/119] allow sending progress from Task coroutines by using co_yield --- loader/include/Geode/utils/Task.hpp | 39 ++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index 6971a2fc..7a40e3e4 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -9,7 +9,7 @@ namespace geode { namespace geode_internal { - template + template struct TaskPromise; template @@ -161,7 +161,7 @@ namespace geode { template friend class Task; - template + template friend struct geode_internal::TaskPromise; template @@ -322,7 +322,7 @@ namespace geode { template friend class Task; - template + template friend struct geode_internal::TaskPromise; template @@ -924,12 +924,22 @@ namespace geode { // // The body of the coroutine is ran in whatever thread it got called in. // TODO: maybe guarantee main thread? +// +// The coroutine can also yield progress values using `co_yield`: +// ``` +// Task someTask() { +// for (int i = 0; i < 10; i++) { +// co_yield i; +// } +// co_return "done!"; +// } +// ``` namespace geode { namespace geode_internal { - template + template struct TaskPromise { - using MyTask = Task; + using MyTask = Task; std::weak_ptr m_handle; ~TaskPromise() { @@ -948,10 +958,15 @@ namespace geode { return handle; } - void return_value(T&& x) { + void return_value(T x) { MyTask::finish(m_handle.lock(), std::move(x)); } + std::suspend_never yield_value(P value) { + MyTask::progress(m_handle.lock(), std::move(value)); + return {}; + } + bool isCancelled() { if (auto p = m_handle.lock()) { return p->is(MyTask::Status::Cancelled); @@ -968,8 +983,8 @@ namespace geode { return task.isFinished(); } - template - void await_suspend(std::coroutine_handle> handle) { + template + void await_suspend(std::coroutine_handle> handle) { if (handle.promise().isCancelled()) { handle.destroy(); return; @@ -981,7 +996,7 @@ namespace geode { handle.destroy(); return; } - parentHandle->m_extraData = std::make_unique::Handle::ExtraData>( + parentHandle->m_extraData = std::make_unique::Handle::ExtraData>( static_cast(new EventListener>( [handle](auto* event) { if (event->getValue()) { @@ -1014,7 +1029,7 @@ auto operator co_await(geode::Task task) { return geode::geode_internal::TaskAwaiter{task}; } -template -struct std::coroutine_traits, Args...> { - using promise_type = geode::geode_internal::TaskPromise; +template +struct std::coroutine_traits, Args...> { + using promise_type = geode::geode_internal::TaskPromise; }; \ No newline at end of file From c197e2913c92d862b325f10e74f8e00acbd07d6e Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Tue, 12 Nov 2024 14:39:08 -0300 Subject: [PATCH 060/119] update libraries --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ea342bb9..db395308 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -236,8 +236,8 @@ if (ANDROID) endif() set(MAT_JSON_AS_INTERFACE ON) -CPMAddPackage("gh:geode-sdk/result@1.2.0") -CPMAddPackage("gh:geode-sdk/json@3.0.2") +CPMAddPackage("gh:geode-sdk/result@1.2.1") +CPMAddPackage("gh:geode-sdk/json@3.0.3") CPMAddPackage("gh:fmtlib/fmt#11.0.2") target_compile_definitions(${PROJECT_NAME} INTERFACE MAT_JSON_DYNAMIC=1) @@ -267,7 +267,7 @@ if (DEFINED GEODE_TULIPHOOK_REPO_PATH) message(STATUS "Using ${GEODE_TULIPHOOK_REPO_PATH} for TulipHook") add_subdirectory(${GEODE_TULIPHOOK_REPO_PATH} ${GEODE_TULIPHOOK_REPO_PATH}/build) else() - CPMAddPackage("gh:geode-sdk/TulipHook@2.4.0") + CPMAddPackage("gh:geode-sdk/TulipHook@2.4.1") endif() set(CMAKE_WARN_DEPRECATED ON CACHE BOOL "" FORCE) From b662aac29dd42d3f4987f5c2867758c641c9f5b3 Mon Sep 17 00:00:00 2001 From: Cvolton Date: Tue, 12 Nov 2024 19:56:15 +0100 Subject: [PATCH 061/119] update messageboxfix to 2.2074 --- loader/src/hooks/MessageBoxFix.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/loader/src/hooks/MessageBoxFix.cpp b/loader/src/hooks/MessageBoxFix.cpp index 57d73cfc..a132a676 100644 --- a/loader/src/hooks/MessageBoxFix.cpp +++ b/loader/src/hooks/MessageBoxFix.cpp @@ -41,9 +41,9 @@ $execute { // hook them to call our own handler if (LoaderImpl::get()->isForwardCompatMode()) return; -#if GEODE_COMP_GD_VERSION == 22060 - const uintptr_t offset1 = 0x75d00; // member function in CCEGLView - const uintptr_t offset2 = 0x75d60; // static function +#if GEODE_COMP_GD_VERSION == 22074 + const uintptr_t offset1 = 0x75D90; // member function in CCEGLView + const uintptr_t offset2 = 0x75DF0; // static function (void) Mod::get()->hook( reinterpret_cast(geode::base::getCocos() + offset1), From 2d66279243f3468a6a68dfe70334fffa68981a53 Mon Sep 17 00:00:00 2001 From: Cvolton Date: Tue, 12 Nov 2024 20:17:01 +0100 Subject: [PATCH 062/119] limit geode mod list error to the frame --- loader/src/ui/mods/list/ModList.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/src/ui/mods/list/ModList.cpp b/loader/src/ui/mods/list/ModList.cpp index 6e1ac04f..b68b870b 100644 --- a/loader/src/ui/mods/list/ModList.cpp +++ b/loader/src/ui/mods/list/ModList.cpp @@ -352,7 +352,7 @@ bool ModList::init(ModListSource* src, CCSize const& size) { m_statusDetailsBtn->setID("status-details-button"); m_statusContainer->addChild(m_statusDetailsBtn); - m_statusDetails = SimpleTextArea::create("", "chatFont.fnt", .6f); + m_statusDetails = SimpleTextArea::create("", "chatFont.fnt", .6f, 650.f); m_statusDetails->setID("status-details-input"); m_statusDetails->setAlignment(kCCTextAlignmentCenter); m_statusContainer->addChild(m_statusDetails); From 02845d967ee138b94466807981d41c60f2bfb9a0 Mon Sep 17 00:00:00 2001 From: Cvolton Date: Tue, 12 Nov 2024 20:35:01 +0100 Subject: [PATCH 063/119] disable the modlist slider --- loader/src/ui/mods/list/ModList.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/loader/src/ui/mods/list/ModList.cpp b/loader/src/ui/mods/list/ModList.cpp index b68b870b..59b52bb1 100644 --- a/loader/src/ui/mods/list/ModList.cpp +++ b/loader/src/ui/mods/list/ModList.cpp @@ -650,7 +650,15 @@ void ModList::showStatus(ModListStatus status, std::string const& message, std:: m_statusDetails->setVisible(false); m_statusDetailsBtn->setVisible(details.has_value()); m_statusLoadingCircle->setVisible(std::holds_alternative(status)); - m_statusLoadingBar->setVisible(std::holds_alternative(status)); + + // the loading bar makes no sense to display - it's meant for progress of mod list page loading + // however the mod list pages are so small, that there usually isn't a scenario where the loading + // takes longer than a single frame - therefore this is useless + // server processing time isn't included in this - it's only after the server starts responding + // that we get any progress information + // also the position is wrong if you wanna restore the functionality + //m_statusLoadingBar->setVisible(std::holds_alternative(status)); + m_statusLoadingBar->setVisible(false); // Update progress bar if (auto per = std::get_if(&status)) { From 9b953014722a71130b805198803e2584226ee2e5 Mon Sep 17 00:00:00 2001 From: Cvolton Date: Tue, 12 Nov 2024 20:37:47 +0100 Subject: [PATCH 064/119] also show the loading circle on the former progress bar condition --- loader/src/ui/mods/list/ModList.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/loader/src/ui/mods/list/ModList.cpp b/loader/src/ui/mods/list/ModList.cpp index 59b52bb1..211417f8 100644 --- a/loader/src/ui/mods/list/ModList.cpp +++ b/loader/src/ui/mods/list/ModList.cpp @@ -649,7 +649,10 @@ void ModList::showStatus(ModListStatus status, std::string const& message, std:: m_statusContainer->setVisible(true); m_statusDetails->setVisible(false); m_statusDetailsBtn->setVisible(details.has_value()); - m_statusLoadingCircle->setVisible(std::holds_alternative(status)); + m_statusLoadingCircle->setVisible( + std::holds_alternative(status) + || std::holds_alternative(status) + ); // the loading bar makes no sense to display - it's meant for progress of mod list page loading // however the mod list pages are so small, that there usually isn't a scenario where the loading From 6d13f7837d3f235c6514c7889332962b83bddaa7 Mon Sep 17 00:00:00 2001 From: Cvolton Date: Tue, 12 Nov 2024 21:12:05 +0100 Subject: [PATCH 065/119] fix outdated geode error swap --- loader/src/ui/mods/list/ModItem.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index 286d2012..5fce9726 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -568,13 +568,13 @@ void ModItem::onViewError(CCObject*) { "the mod that supports the newer version."; } break; - case LoadProblem::Type::UnsupportedGeodeVersion: { + case LoadProblem::Type::NeedsNewerGeodeVersion: { issue = "This mod is made for a newer version of Geode."; howToFix = "update Geode by enabling Automatic Updates " "or redownloading it from the Geode website."; } break; - case LoadProblem::Type::NeedsNewerGeodeVersion: { + case LoadProblem::Type::UnsupportedGeodeVersion: { issue = "This mod is made for an older version of Geode."; howToFix = "wait for the developer to release an update to " "the mod that supports the newer version."; From 123b3abff3a98b21b0ff9a82cc6233477cbd0c44 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Tue, 12 Nov 2024 23:05:03 +0200 Subject: [PATCH 066/119] somes settings UI fixes --- loader/src/loader/SettingNodeV3.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/loader/src/loader/SettingNodeV3.cpp b/loader/src/loader/SettingNodeV3.cpp index a925485a..23d42fb9 100644 --- a/loader/src/loader/SettingNodeV3.cpp +++ b/loader/src/loader/SettingNodeV3.cpp @@ -136,7 +136,7 @@ void SettingNodeV3::updateState(CCNode* invoker) { m_impl->bg->setOpacity(75); } - m_impl->nameMenu->setContentWidth(this->getContentWidth() - m_impl->buttonMenu->getContentWidth() - 20); + m_impl->nameMenu->setContentWidth(this->getContentWidth() - m_impl->buttonMenu->getContentWidth() - 25); m_impl->nameMenu->updateLayout(); } @@ -462,6 +462,7 @@ void FileSettingNodeV3::updateState(CCNode* invoker) { // which is clever and good UX but also a hack so I also need to hack to support that const auto isTextualDefaultValue = [this, setting = this->getSetting()]() { if (this->hasNonDefaultValue()) return false; + if (setting->getDefaultValue().string().size() > 20) return false; std::error_code ec; return setting->isFolder() ? !std::filesystem::is_directory(setting->getDefaultValue(), ec) : From 74a70112a4b1952a469d162fd5bda3390289a6e9 Mon Sep 17 00:00:00 2001 From: STGamer24YT <129440436+STGamer24YT@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:34:27 -0400 Subject: [PATCH 067/119] Translate english text in SpanishInternationalExtra.nsh Some text is in english, and I decided to translate it. Hopefully I did it right and this text can be used in the installer. --- .../windows/Language Files/SpanishInternationalExtra.nsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/installer/windows/Language Files/SpanishInternationalExtra.nsh b/installer/windows/Language Files/SpanishInternationalExtra.nsh index e562e1ef..bcaf552b 100644 --- a/installer/windows/Language Files/SpanishInternationalExtra.nsh +++ b/installer/windows/Language Files/SpanishInternationalExtra.nsh @@ -1,15 +1,15 @@ !insertmacro LANGFILE_EXT SpanishInternational !pragma warning disable 6030 -${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "Este asistente le guiará durante la instalación de $(^NameDA) en su computadora.$\r$\n$\r$\nAntes de iniciar la instalación, asegúrese de que Geometry Dash no se está ejecutando$\r$\n$\r$\n$_CLICK" -${LangFileString} MUI_UNTEXT_WELCOME_INFO_TEXT "Este asistente le guiará durante la desinstalación de $(^NameDA).$\r$\n$\r$\nAntes de iniciar la desinstalación, asegúrese de que Geometry Dash no se está ejecutando.$\r$\n$\r$\n$_CLICK" +${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "Este asistente le guiará durante la instalación de Geode en su computadora.$\r$\n$\r$\nAntes de iniciar la instalación, asegúrese de que Geometry Dash no se está ejecutando$\r$\n$\r$\n$_CLICK" +${LangFileString} MUI_UNTEXT_WELCOME_INFO_TEXT "Este asistente le guiará durante la desinstalación de Geode.$\r$\n$\r$\nAntes de iniciar la desinstalación, asegúrese de que Geometry Dash no se está ejecutando.$\r$\n$\r$\n$_CLICK" !pragma warning default 6030 ; installer ${LangFileString} GEODE_TEXT_GD_MISSING "$\r$\n$\r$\n¡Geometry Dash no está instalado en esta ruta!" -${LangFileString} GEODE_TEXT_GD_OLD "$\r$\n$\r$\nYour version of Geometry Dash is too old for this version of Geode!" -${LangFileString} GEODE_TEXT_MOD_LOADER_ALREADY_INSTALLED "This path has other mods installed!$\r$\nThey will be overwritten by Geode. (the dll trademark)" +${LangFileString} GEODE_TEXT_GD_OLD "$\r$\n$\r$\n¡Su versión de Geometry Dash es demasiado antigua para esta versión de Geode!" +${LangFileString} GEODE_TEXT_MOD_LOADER_ALREADY_INSTALLED "¡Esta ruta ya tiene otros mods instalados!$\r$\nVan a ser sobreescritos por Geode. (the dll trademark)" ; uninstaller From 03a4387c80ecb586da731f02e7725cfbf268a4f2 Mon Sep 17 00:00:00 2001 From: Fleeym <61891787+Fleeym@users.noreply.github.com> Date: Tue, 12 Nov 2024 23:47:56 +0200 Subject: [PATCH 068/119] bump version to v4.0.0-alpha.1 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index fcdb2e10..166af730 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.0.0 +4.0.0-alpha.1 From df2528c8a539bbfb58d741034143fc8dfe07b516 Mon Sep 17 00:00:00 2001 From: Fleeym <61891787+Fleeym@users.noreply.github.com> Date: Wed, 13 Nov 2024 00:11:01 +0200 Subject: [PATCH 069/119] fix: fix ModItem only displaying outdated GD --- loader/src/ui/mods/list/ModItem.cpp | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index 5fce9726..84455411 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -1,15 +1,19 @@ #include "ModItem.hpp" + +#include +#include +#include + #include #include #include #include -#include -#include "../GeodeStyle.hpp" -#include "../popups/ModPopup.hpp" -#include "../popups/DevPopup.hpp" +#include "ui/mods/GeodeStyle.hpp" +#include "ui/mods/popups/ModPopup.hpp" +#include "ui/mods/popups/DevPopup.hpp" #include "ui/mods/popups/ModErrorPopup.hpp" #include "ui/mods/sources/ModSource.hpp" -#include "../../GeodeUIEvent.hpp" +#include "ui/GeodeUIEvent.hpp" bool ModItem::init(ModSource&& source) { if (!CCNode::init()) @@ -426,9 +430,20 @@ void ModItem::updateState() { m_bg->setColor("mod-list-errors-found"_cc3b); m_bg->setOpacity(isGeodeTheme() ? 25 : 90); } - if (m_source.asMod()->targetsOutdatedVersion()) { + if (std::optional opt = m_source.asMod()->targetsOutdatedVersion()) { + LoadProblem problem = opt.value(); m_bg->setColor("mod-list-outdated-label"_cc3b); m_bg->setOpacity(isGeodeTheme() ? 25 : 90); + std::string content; + if ( + problem.type == LoadProblem::Type::UnsupportedGeodeVersion || + problem.type == LoadProblem::Type::NeedsNewerGeodeVersion + ) { + content = fmt::format("Outdated (Geode {})", m_source.getMetadata().getGeodeVersion().toNonVString()); + } else { + content = fmt::format("Outdated (GD {})", m_source.getMetadata().getGameVersion().value_or("*")); + } + m_outdatedLabel->setString(content.c_str()); m_outdatedLabel->setVisible(true); m_developers->setVisible(false); } From 0b2fc66a891889333252ac3c20c5dd3fd4d30c12 Mon Sep 17 00:00:00 2001 From: Fleeym <61891787+Fleeym@users.noreply.github.com> Date: Wed, 13 Nov 2024 00:20:49 +0200 Subject: [PATCH 070/119] fix: don't show outdated if wantsRestart --- loader/src/ui/mods/list/ModItem.cpp | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index 84455411..79e1e503 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -434,17 +434,25 @@ void ModItem::updateState() { LoadProblem problem = opt.value(); m_bg->setColor("mod-list-outdated-label"_cc3b); m_bg->setOpacity(isGeodeTheme() ? 25 : 90); - std::string content; - if ( - problem.type == LoadProblem::Type::UnsupportedGeodeVersion || - problem.type == LoadProblem::Type::NeedsNewerGeodeVersion - ) { - content = fmt::format("Outdated (Geode {})", m_source.getMetadata().getGeodeVersion().toNonVString()); - } else { - content = fmt::format("Outdated (GD {})", m_source.getMetadata().getGameVersion().value_or("*")); + if (!wantsRestart) { + std::string content; + if ( + problem.type == LoadProblem::Type::UnsupportedGeodeVersion || + problem.type == LoadProblem::Type::NeedsNewerGeodeVersion + ) { + content = fmt::format( + "Outdated (Geode {})", + m_source.getMetadata().getGeodeVersion().toNonVString() + ); + } else { + content = fmt::format( + "Outdated (GD {})", + m_source.getMetadata().getGameVersion().value_or("*") + ); + } + m_outdatedLabel->setString(content.c_str()); + m_outdatedLabel->setVisible(true); } - m_outdatedLabel->setString(content.c_str()); - m_outdatedLabel->setVisible(true); m_developers->setVisible(false); } } From f96ea5e7274a7b7f5c9d40d2270829327fd77b99 Mon Sep 17 00:00:00 2001 From: Fleeym <61891787+Fleeym@users.noreply.github.com> Date: Wed, 13 Nov 2024 00:24:01 +0200 Subject: [PATCH 071/119] fix: write it a bit better --- loader/src/ui/mods/list/ModItem.cpp | 39 ++++++++++++++--------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index 79e1e503..c257c3cf 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -426,33 +426,32 @@ void ModItem::updateState() { // If there were problems, tint the BG red m_outdatedLabel->setVisible(false); if (m_source.asMod()) { + std::optional targetsOutdated = m_source.asMod()->targetsOutdatedVersion(); if (m_source.asMod()->hasLoadProblems()) { m_bg->setColor("mod-list-errors-found"_cc3b); m_bg->setOpacity(isGeodeTheme() ? 25 : 90); } - if (std::optional opt = m_source.asMod()->targetsOutdatedVersion()) { - LoadProblem problem = opt.value(); + if (!wantsRestart && targetsOutdated) { + LoadProblem problem = targetsOutdated.value(); m_bg->setColor("mod-list-outdated-label"_cc3b); m_bg->setOpacity(isGeodeTheme() ? 25 : 90); - if (!wantsRestart) { - std::string content; - if ( - problem.type == LoadProblem::Type::UnsupportedGeodeVersion || - problem.type == LoadProblem::Type::NeedsNewerGeodeVersion - ) { - content = fmt::format( - "Outdated (Geode {})", - m_source.getMetadata().getGeodeVersion().toNonVString() - ); - } else { - content = fmt::format( - "Outdated (GD {})", - m_source.getMetadata().getGameVersion().value_or("*") - ); - } - m_outdatedLabel->setString(content.c_str()); - m_outdatedLabel->setVisible(true); + std::string content; + if ( + problem.type == LoadProblem::Type::UnsupportedGeodeVersion || + problem.type == LoadProblem::Type::NeedsNewerGeodeVersion + ) { + content = fmt::format( + "Outdated (Geode {})", + m_source.getMetadata().getGeodeVersion().toNonVString() + ); + } else { + content = fmt::format( + "Outdated (GD {})", + m_source.getMetadata().getGameVersion().value_or("*") + ); } + m_outdatedLabel->setString(content.c_str()); + m_outdatedLabel->setVisible(true); m_developers->setVisible(false); } } From 708e6dc7f25729311f2f3eb498851bc93d762d29 Mon Sep 17 00:00:00 2001 From: mat <26722564+matcool@users.noreply.github.com> Date: Tue, 12 Nov 2024 20:17:07 -0300 Subject: [PATCH 072/119] disable macos build for now --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 80c5df29..81fd051c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -137,6 +137,7 @@ jobs: build-mac: name: Build macOS runs-on: macos-latest + if: false env: SCCACHE_CACHE_MULTIARCH: 1 From 6dbe289a7ada6a8557e2ffa3f5fa86dbea60e4ae Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Tue, 12 Nov 2024 23:47:25 -0300 Subject: [PATCH 073/119] Revert "disable macos build for now" This reverts commit 708e6dc7f25729311f2f3eb498851bc93d762d29. --- .github/workflows/build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 81fd051c..80c5df29 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -137,7 +137,6 @@ jobs: build-mac: name: Build macOS runs-on: macos-latest - if: false env: SCCACHE_CACHE_MULTIARCH: 1 From 6765bbbc75429ba070a2cef9e6157291941af39f Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Wed, 13 Nov 2024 01:26:48 -0300 Subject: [PATCH 074/119] add wip changelog --- CHANGELOG.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4143d15a..8f44f6ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ # Geode Changelog +## v4.0.0-alpha.1 + * Support for the 2.2074 update + * Developers, see [this page for a migration guide](https://docs.geode-sdk.org/tutorials/migrate-v4) + * Major API breaks: + * Remove everything previously marked deprecated + * `utils::MiniFunction` removed + * Rewritten `geode::Result` class + * Rewritten matjson library + * Settings V2 completely removed, use V3 now + * `JsonChecker` removed + * Add new system for ordered hook priority (673317d, 6db3084) + * See docs: LINK HERE!! + * C++20 coroutine support for `geode::Task` (e61b2c0, ab196b9) + * See docs: LINK HERE!! + * Single page local mods list (efb1fbf) + * Split mod problems into load and outdated (12e8bbb, 09fa872, df2528c) + * This means mods made for outdated gd or geode versions no longer count as actual errors, resulting in less clutter in the ui + * Fix safe mode popup on windows showing up when not supposed to (038788b) + * WebRequest::ignoreContentLength (#1126) + * Lots of smaller fixes to the geode ui (c9afa75, f5f3365, 2d66279, 02845d9, 9b95301, 6d13f78, 123b3ab, 0b2fc66, f96ea5e, cad670f) + * Fix CCArrayExt::pop_back() return type (#1130) + * Add missing spanish translations to installer (#1145) + * Add hashtag symbol to CommonFilter::Any (#1131) + * Disable forward compat on android (c9e97af) + ## v3.9.0 * Many changes to the settings ui (#1108) * Fuzzy search is now more reasonable From 9bebb9819c983d65aee05c8b1d4449ec9ca76ded Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Wed, 13 Nov 2024 01:53:30 -0300 Subject: [PATCH 075/119] add link to task docs --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f44f6ac..845e2365 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,8 +12,8 @@ * `JsonChecker` removed * Add new system for ordered hook priority (673317d, 6db3084) * See docs: LINK HERE!! - * C++20 coroutine support for `geode::Task` (e61b2c0, ab196b9) - * See docs: LINK HERE!! + * C++20 coroutine support for `geode::Task`, [see docs](https://docs.geode-sdk.org/tutorials/tasks#coroutines) (e61b2c0, ab196b9) + * Add `Task::chain`, [see docs](https://docs.geode-sdk.org/tutorials/tasks#chaining-tasks) * Single page local mods list (efb1fbf) * Split mod problems into load and outdated (12e8bbb, 09fa872, df2528c) * This means mods made for outdated gd or geode versions no longer count as actual errors, resulting in less clutter in the ui From a4f8295784232321a2f44baa0df6c0899c15a439 Mon Sep 17 00:00:00 2001 From: Chloe <25387744+qimiko@users.noreply.github.com> Date: Tue, 12 Nov 2024 23:36:38 -0700 Subject: [PATCH 076/119] detect 2.207 hotfix versions on macos --- loader/src/platform/mac/LoaderImpl.mm | 84 ++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) diff --git a/loader/src/platform/mac/LoaderImpl.mm b/loader/src/platform/mac/LoaderImpl.mm index eb8a7d5f..2112eee3 100644 --- a/loader/src/platform/mac/LoaderImpl.mm +++ b/loader/src/platform/mac/LoaderImpl.mm @@ -161,13 +161,95 @@ void Loader::Impl::addNativeBinariesPath(std::filesystem::path const& path) { } } +bool gameVersionIsAmbiguous(std::string gameVersion) { + return gameVersion == "2.207"; +} + +std::array getBinaryUUID() { + auto imageCount = _dyld_image_count(); + + auto binaryHeader = _dyld_get_image_header(0); + for (auto i = 0u; i < imageCount; i++) { + auto headerCandidate = _dyld_get_image_header(i); + if (headerCandidate->filetype == MH_EXECUTE) { + auto imageName = _dyld_get_image_name(i); + + binaryHeader = headerCandidate; + break; + } + } + + auto commandCount = binaryHeader->ncmds; + auto commandSize = binaryHeader->sizeofcmds; + + // for whatever reason _dyld_get_image_header returns a 32bit mach header, not a 64bit one + // that's okay but we do have to account for that issue here + auto commands = reinterpret_cast(binaryHeader) + sizeof(struct mach_header_64); + + for (auto i = 0u; i < commandCount; i++) { + auto cCommand = reinterpret_cast(commands); + if (cCommand->cmd == LC_UUID) { + auto uuidCommand = reinterpret_cast(commands); + return std::to_array(uuidCommand->uuid); + } + + commands += cCommand->cmdsize; + } + + return {}; +} + +const auto& uuidToVersionMap() { + // we only need to define versions that are ambiguous + // so for now, 2.207 + // you can get these hashes from otool, just look for the LC_UUID load command! + static std::unordered_map uuidToVersionName{ +#if defined(GEODE_IS_ARM_MAC) + {"27044C8B-76BD-303C-A035-5314AF1D9E6E", "2.2074"}, +#elif defined(GEODE_IS_INTEL_MAC) + {"DB5CADC0-E533-3123-8A63-5A434FE391ED", "2.2074"} +#endif + }; + + return uuidToVersionName; +} + std::string Loader::Impl::getGameVersion() { NSBundle* mainBundle = [NSBundle mainBundle]; NSDictionary* infoDictionary = [mainBundle infoDictionary]; NSString *version = infoDictionary[@"CFBundleShortVersionString"]; - return std::string([version UTF8String]); + auto versionStr = std::string([version UTF8String]); + + if (gameVersionIsAmbiguous(versionStr)) { + static std::string manualVersionStr = []() -> std::string { + auto uuid = getBinaryUUID(); + if (uuid.empty()) { + // i wonder if this might cause issues + return {}; + } + + auto uuidStr = fmt::format("{:02X}{:02X}{:02X}{:02X}-{:02X}{:02X}-{:02X}{:02X}-{:02X}{:02X}-{:02X}{:02X}{:02X}{:02X}{:02X}{:02X}", + uuid[0], uuid[1], uuid[2], uuid[3], uuid[4], uuid[5], uuid[6], uuid[7], + uuid[8], uuid[9], uuid[10], uuid[11], uuid[12], uuid[13], uuid[14], uuid[15] + ); + + auto& versionMap = uuidToVersionMap(); + auto versionElem = versionMap.find(uuidStr); + if (versionElem != versionMap.end()) { + return versionElem->second; + } + + // return the uuid as a fallback + // in this situation, geode (and any mods) won't load, so it's not really a big deal + return uuidStr; + }(); + + return manualVersionStr; + } + + return versionStr; } // TODO From 290e0e0a349224d5819899091f2a675fb36a889a Mon Sep 17 00:00:00 2001 From: Chloe <25387744+qimiko@users.noreply.github.com> Date: Wed, 13 Nov 2024 02:38:00 -0700 Subject: [PATCH 077/119] update dynamic cast addresses --- loader/src/hooks/DynamicCastFix.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/loader/src/hooks/DynamicCastFix.cpp b/loader/src/hooks/DynamicCastFix.cpp index 3394d81c..2c325c33 100644 --- a/loader/src/hooks/DynamicCastFix.cpp +++ b/loader/src/hooks/DynamicCastFix.cpp @@ -9,10 +9,10 @@ $execute { // layers, which fail on user layers due to typeinfo not matching #if defined(GEODE_IS_INTEL_MAC) - void* dynamicCastAddr = reinterpret_cast(base::get() + 0x7dd5e7); + void* dynamicCastAddr = reinterpret_cast(base::get() + 0x7ba1d8); (void) Mod::get()->hook(dynamicCastAddr, &cast::typeinfoCastInternal, "__dynamic_cast"); #elif defined(GEODE_IS_ARM_MAC) - void* dynamicCastAddr = reinterpret_cast(base::get() + 0x6dfb10); + void* dynamicCastAddr = reinterpret_cast(base::get() + 0x6c8bcc); (void)Mod::get()->hook(dynamicCastAddr, &cast::typeinfoCastInternal, "__dynamic_cast"); #elif defined(GEODE_IS_ANDROID) void* handle = dlopen("libcocos2dcpp.so", RTLD_LAZY | RTLD_NOLOAD); From 37fb2a3ddf90058c68e7195be4c97a69a169d915 Mon Sep 17 00:00:00 2001 From: mat <26722564+matcool@users.noreply.github.com> Date: Wed, 13 Nov 2024 10:06:00 -0300 Subject: [PATCH 078/119] missing commit hash on changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 845e2365..d6f931fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ * Add new system for ordered hook priority (673317d, 6db3084) * See docs: LINK HERE!! * C++20 coroutine support for `geode::Task`, [see docs](https://docs.geode-sdk.org/tutorials/tasks#coroutines) (e61b2c0, ab196b9) - * Add `Task::chain`, [see docs](https://docs.geode-sdk.org/tutorials/tasks#chaining-tasks) + * Add `Task::chain`, [see docs](https://docs.geode-sdk.org/tutorials/tasks#chaining-tasks) (3248831) * Single page local mods list (efb1fbf) * Split mod problems into load and outdated (12e8bbb, 09fa872, df2528c) * This means mods made for outdated gd or geode versions no longer count as actual errors, resulting in less clutter in the ui From 1af10eea7fbe71427dd2bb2e45709984fd937bee Mon Sep 17 00:00:00 2001 From: mat <26722564+matcool@users.noreply.github.com> Date: Wed, 13 Nov 2024 10:41:13 -0300 Subject: [PATCH 079/119] add check for gd version in DynamicCastFix.cpp prevents silently breaking macos --- loader/src/hooks/DynamicCastFix.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/loader/src/hooks/DynamicCastFix.cpp b/loader/src/hooks/DynamicCastFix.cpp index 2c325c33..d493bf93 100644 --- a/loader/src/hooks/DynamicCastFix.cpp +++ b/loader/src/hooks/DynamicCastFix.cpp @@ -8,6 +8,10 @@ $execute { // this is needed because the transitions in cocos uses dynamic cast to check // layers, which fail on user layers due to typeinfo not matching + #if defined(GEODE_IS_MAC) && GEODE_COMP_GD_VERSION != 22074 + #error "Unsupported version for macOS dynamic cast fix, please update the addresses" + #endif + #if defined(GEODE_IS_INTEL_MAC) void* dynamicCastAddr = reinterpret_cast(base::get() + 0x7ba1d8); (void) Mod::get()->hook(dynamicCastAddr, &cast::typeinfoCastInternal, "__dynamic_cast"); From 71f56ef49eb17dd70cc91999736ca075c09b3941 Mon Sep 17 00:00:00 2001 From: dankmeme01 <42031238+dankmeme01@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:59:12 +0100 Subject: [PATCH 080/119] add XInputSetState export in proxy loader, fixing certain steam emus --- loader/launcher/windows/proxyLoader.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/loader/launcher/windows/proxyLoader.cpp b/loader/launcher/windows/proxyLoader.cpp index 84f96670..f06c020b 100644 --- a/loader/launcher/windows/proxyLoader.cpp +++ b/loader/launcher/windows/proxyLoader.cpp @@ -6,6 +6,7 @@ struct XINPUT_STATE; struct XINPUT_CAPABILITIES; +struct XINPUT_VIBRATION; constexpr static auto MAX_PATH_CHARS = 32768u; @@ -41,6 +42,17 @@ extern "C" DWORD XInputGetState(DWORD dwUserIndex, XINPUT_STATE *pState) { return ERROR_DEVICE_NOT_CONNECTED; } +#pragma comment(linker, "/export:XInputSetState,@3") +extern "C" DWORD XInputSetState(DWORD dwUserIndex, XINPUT_VIBRATION* pVibration) { + static auto fp = getFP("XInputSetState"); + if (fp) { + using FPType = decltype(&XInputSetState); + return reinterpret_cast(fp)(dwUserIndex, pVibration); + } + + return ERROR_DEVICE_NOT_CONNECTED; +} + #pragma comment(linker, "/export:XInputGetCapabilities,@4") extern "C" DWORD XInputGetCapabilities(DWORD dwUserIndex, DWORD dwFlags, XINPUT_CAPABILITIES *pCapabilities) { static auto fp = getFP("XInputGetCapabilities"); From ebd4c920f5775287aea82fe758edec000108ff04 Mon Sep 17 00:00:00 2001 From: mat <26722564+matcool@users.noreply.github.com> Date: Wed, 13 Nov 2024 13:38:10 -0300 Subject: [PATCH 081/119] add placeholder link for new hook priority system lets not forget to write docs for this.. --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6f931fa..5b5ed583 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,7 @@ * Rewritten matjson library * Settings V2 completely removed, use V3 now * `JsonChecker` removed - * Add new system for ordered hook priority (673317d, 6db3084) - * See docs: LINK HERE!! + * Add new system for ordered hook priority, [see docs](https://docs.geode-sdk.org/tutorials/hookpriority) (673317d, 6db3084) * C++20 coroutine support for `geode::Task`, [see docs](https://docs.geode-sdk.org/tutorials/tasks#coroutines) (e61b2c0, ab196b9) * Add `Task::chain`, [see docs](https://docs.geode-sdk.org/tutorials/tasks#chaining-tasks) (3248831) * Single page local mods list (efb1fbf) From 6679a690a2e1e244c0afdeaa359f596335e947a2 Mon Sep 17 00:00:00 2001 From: Fleeym <61891787+Fleeym@users.noreply.github.com> Date: Wed, 13 Nov 2024 19:48:47 +0200 Subject: [PATCH 082/119] fix(ModItem): hide outdated label when updating --- loader/src/ui/mods/list/ModItem.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index c257c3cf..d12f64e0 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -330,9 +330,10 @@ void ModItem::updateState() { auto wantsRestart = m_source.wantsRestart(); auto download = server::ModDownloadManager::get()->getDownload(m_source.getID()); + bool isDownloading = download && download->isActive(); // If there is an active download ongoing, show that in place of developer name - if (download && download->isActive()) { + if (isDownloading) { m_updateBtn->setVisible(false); m_restartRequiredLabel->setVisible(false); m_developers->setVisible(false); @@ -431,7 +432,7 @@ void ModItem::updateState() { m_bg->setColor("mod-list-errors-found"_cc3b); m_bg->setOpacity(isGeodeTheme() ? 25 : 90); } - if (!wantsRestart && targetsOutdated) { + if (!wantsRestart && targetsOutdated && !isDownloading) { LoadProblem problem = targetsOutdated.value(); m_bg->setColor("mod-list-outdated-label"_cc3b); m_bg->setOpacity(isGeodeTheme() ? 25 : 90); From 22a11b96e249ef753b856a06b17aaab990704148 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Wed, 13 Nov 2024 16:20:32 -0300 Subject: [PATCH 083/119] fix wrong type in Task::chain impl --- loader/include/Geode/utils/Task.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index 7a40e3e4..2b0e2e1b 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -817,7 +817,7 @@ namespace geode { // make the second event listener that waits for the mapper's task // and just forwards everything through static_cast(new EventListener( - [handle](Event* event) mutable { + [handle](typename NewTask::Event* event) mutable { if (auto v = event->getValue()) { NewTask::finish(handle.lock(), std::move(*v)); } From 01807fedc9a727629e2207d7b94fd158e74004cd Mon Sep 17 00:00:00 2001 From: Fleeym <61891787+Fleeym@users.noreply.github.com> Date: Wed, 13 Nov 2024 23:19:07 +0200 Subject: [PATCH 084/119] fix(ModSource): fix bad unwrap in fetchValidTags --- loader/src/ui/mods/sources/ModSource.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/loader/src/ui/mods/sources/ModSource.cpp b/loader/src/ui/mods/sources/ModSource.cpp index 0860ee73..2234888f 100644 --- a/loader/src/ui/mods/sources/ModSource.cpp +++ b/loader/src/ui/mods/sources/ModSource.cpp @@ -5,6 +5,7 @@ #include #include #include +#include LoadModSuggestionTask loadModSuggestion(LoadProblem const& problem) { // Recommended / suggested are essentially the same thing for the purposes of this @@ -183,19 +184,22 @@ server::ServerRequest> ModSource::fetchValidTags return std::visit(makeVisitor { [](Mod* mod) { return server::getTags().map( - [mod](auto* result) -> Result, server::ServerError> { + [mod](Result, server::ServerError>* result) + -> Result, server::ServerError> { + std::unordered_set finalTags; + auto modTags = mod->getMetadata().getTags(); + if (result->isOk()) { + std::unordered_set fetched = result->unwrap(); // Filter out invalid tags - auto modTags = mod->getMetadata().getTags(); - auto finalTags = std::unordered_set(); - for (auto& tag : modTags) { - if (result->unwrap().contains(tag)) { + for (std::string const& tag : modTags) { + if (fetched.contains(tag)) { finalTags.insert(tag); } } - return Ok(finalTags); } - return Ok(result->unwrap()); + + return Ok(finalTags); }, [](server::ServerProgress* progress) { return *progress; From 280b6efa946d8e61d63a5b8fa2fe26e1a3078129 Mon Sep 17 00:00:00 2001 From: Fleeym <61891787+Fleeym@users.noreply.github.com> Date: Thu, 14 Nov 2024 02:26:40 +0200 Subject: [PATCH 085/119] fix: fix mod downloads not checking version (#1148) --- loader/src/server/Server.cpp | 3 ++- loader/src/ui/mods/list/ModItem.cpp | 14 ++------------ loader/src/ui/mods/popups/ModPopup.cpp | 6 +++++- loader/src/ui/mods/sources/ModSource.cpp | 24 ++++++++++++++++++++++++ loader/src/ui/mods/sources/ModSource.hpp | 1 + 5 files changed, 34 insertions(+), 14 deletions(-) diff --git a/loader/src/server/Server.cpp b/loader/src/server/Server.cpp index 55be73e8..193221de 100644 --- a/loader/src/server/Server.cpp +++ b/loader/src/server/Server.cpp @@ -8,6 +8,7 @@ #include #include #include "../internal/about.hpp" +#include "Geode/loader/Loader.hpp" using namespace server; @@ -647,7 +648,7 @@ ServerRequest server::getModVersion(std::string const& id, Mod }, }, version); - return req.get(formatServerURL("/mods/{}/versions/{}", id, versionURL)).map( + return req.get(formatServerURL("/mods/{}/versions/{}?gd={}", id, versionURL, Loader::get()->getGameVersion())).map( [](web::WebResponse* response) -> Result { if (response->ok()) { // Parse payload diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index d12f64e0..662a7b40 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -8,6 +8,7 @@ #include #include #include +#include "server/DownloadManager.hpp" #include "ui/mods/GeodeStyle.hpp" #include "ui/mods/popups/ModPopup.hpp" #include "ui/mods/popups/DevPopup.hpp" @@ -631,18 +632,7 @@ void ModItem::onEnable(CCObject*) { UpdateModListStateEvent(UpdateModState(m_source.getID())).post(); } void ModItem::onInstall(CCObject*) { - if (auto updates = m_source.hasUpdates()) { - if (updates->replacement.has_value()) { - server::ModDownloadManager::get()->startDownload( - updates->replacement->id, - updates->replacement->version, - std::nullopt, - m_source.getID() - ); - return; - } - } - server::ModDownloadManager::get()->startDownload(m_source.getID(), std::nullopt); + m_source.startInstall(); } void ModItem::onDevelopers(CCObject*) { DevListPopup::create(m_source)->show(); diff --git a/loader/src/ui/mods/popups/ModPopup.cpp b/loader/src/ui/mods/popups/ModPopup.cpp index fb9c54f8..a22578e8 100644 --- a/loader/src/ui/mods/popups/ModPopup.cpp +++ b/loader/src/ui/mods/popups/ModPopup.cpp @@ -7,11 +7,13 @@ #include #include #include +#include #include "ConfirmUninstallPopup.hpp" #include "../settings/ModSettingsPopup.hpp" #include "../../../internal/about.hpp" #include "../../GeodeUIEvent.hpp" #include "../popups/ModtoberPopup.hpp" +#include "server/DownloadManager.hpp" class FetchTextArea : public CCNode { public: @@ -1047,7 +1049,9 @@ void ModPopup::onInstall(CCObject*) { return; } } - server::ModDownloadManager::get()->startDownload(m_source.getID(), std::nullopt); + + m_source.startInstall(); + this->onClose(nullptr); } diff --git a/loader/src/ui/mods/sources/ModSource.cpp b/loader/src/ui/mods/sources/ModSource.cpp index 2234888f..a6aff3bb 100644 --- a/loader/src/ui/mods/sources/ModSource.cpp +++ b/loader/src/ui/mods/sources/ModSource.cpp @@ -240,3 +240,27 @@ server::ServerRequest> ModSource::checkUp }, }, m_value); } +void ModSource::startInstall() { + if (auto updates = this->hasUpdates()) { + if (updates->replacement.has_value()) { + server::ModDownloadManager::get()->startDownload( + updates->replacement->id, + updates->replacement->version, + std::nullopt, + this->getID() + ); + } else { + server::ModDownloadManager::get()->startDownload( + this->getID(), + updates->version + ); + } + } else { + server::ModDownloadManager::get()->startDownload( + this->getID(), + this->asServer() + ? std::optional{this->asServer()->latestVersion().getVersion()} + : std::nullopt + ); + } +} diff --git a/loader/src/ui/mods/sources/ModSource.hpp b/loader/src/ui/mods/sources/ModSource.hpp index aa13f3bb..0f6776ee 100644 --- a/loader/src/ui/mods/sources/ModSource.hpp +++ b/loader/src/ui/mods/sources/ModSource.hpp @@ -49,4 +49,5 @@ public: server::ServerRequest> fetchChangelog() const; server::ServerRequest> fetchValidTags() const; server::ServerRequest> checkUpdates(); + void startInstall(); }; From e881dc5ef248ba1c73b7717efff92cd96162be77 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Thu, 14 Nov 2024 15:57:11 +0200 Subject: [PATCH 086/119] manually installing mods from files button --- loader/include/Geode/loader/Mod.hpp | 3 +- loader/include/Geode/loader/ModMetadata.hpp | 12 +- loader/include/Geode/ui/GeodeUI.hpp | 4 + loader/resources/file-add.png | Bin 0 -> 22588 bytes loader/src/loader/LoaderImpl.cpp | 187 +++++++++++++++++- loader/src/loader/LoaderImpl.hpp | 6 + loader/src/loader/ModImpl.cpp | 1 + loader/src/loader/ModMetadataImpl.cpp | 23 +++ loader/src/server/DownloadManager.cpp | 3 + loader/src/ui/GeodeUI.cpp | 81 +++++--- loader/src/ui/mods/ModsLayer.cpp | 53 ++++- loader/src/ui/mods/ModsLayer.hpp | 1 + loader/src/ui/mods/list/ModDeveloperList.cpp | 5 - loader/src/ui/mods/list/ModItem.cpp | 6 +- .../mods/sources/InstalledModListSource.cpp | 4 +- loader/src/ui/mods/sources/ModListSource.cpp | 15 +- loader/src/ui/mods/sources/ModListSource.hpp | 5 +- loader/src/ui/mods/sources/ModSource.cpp | 40 +--- loader/src/ui/mods/sources/ModSource.hpp | 2 +- 19 files changed, 344 insertions(+), 107 deletions(-) create mode 100644 loader/resources/file-add.png diff --git a/loader/include/Geode/loader/Mod.hpp b/loader/include/Geode/loader/Mod.hpp index 211615ed..0c006103 100644 --- a/loader/include/Geode/loader/Mod.hpp +++ b/loader/include/Geode/loader/Mod.hpp @@ -41,7 +41,8 @@ namespace geode { Enable, Disable, Uninstall, - UninstallWithSaveData + UninstallWithSaveData, + Update }; static constexpr bool modRequestedActionIsToggle(ModRequestedAction action) { diff --git a/loader/include/Geode/loader/ModMetadata.hpp b/loader/include/Geode/loader/ModMetadata.hpp index 435c4fca..af091d30 100644 --- a/loader/include/Geode/loader/ModMetadata.hpp +++ b/loader/include/Geode/loader/ModMetadata.hpp @@ -198,9 +198,19 @@ namespace geode { /** * Checks if mod can be installed on the current GD version. - * Returns Ok() if it can, Err otherwise. + * Returns Ok() if it can, Err explaining why not otherwise. */ Result<> checkGameVersion() const; + /** + * Checks if mod can be installed on the current Geode version. + * Returns Ok() if it can, Err explaining why not otherwise. + */ + Result<> checkGeodeVersion() const; + /** + * Checks if mod can be installed on the current GD & Geode version. + * Returns Ok() if it can, Err explaining why not otherwise. + */ + Result<> checkTargetVersions() const; #if defined(GEODE_EXPOSE_SECRET_INTERNALS_IN_HEADERS_DO_NOT_DEFINE_PLEASE) void setPath(std::filesystem::path const& value); diff --git a/loader/include/Geode/ui/GeodeUI.hpp b/loader/include/Geode/ui/GeodeUI.hpp index 32dbf3bd..0ac51b9b 100644 --- a/loader/include/Geode/ui/GeodeUI.hpp +++ b/loader/include/Geode/ui/GeodeUI.hpp @@ -155,6 +155,10 @@ namespace geode { * Create a logo sprite for a mod */ GEODE_DLL cocos2d::CCNode* createModLogo(Mod* mod); + /** + * Create a logo sprite for a mod from a .geode file + */ + GEODE_DLL cocos2d::CCNode* createModLogo(std::filesystem::path const& geodePackage); /** * Create a logo sprite for a mod downloaded from the Geode servers. The * logo is initially a loading circle, with the actual sprite downloaded diff --git a/loader/resources/file-add.png b/loader/resources/file-add.png new file mode 100644 index 0000000000000000000000000000000000000000..bae8b7d406b0aa412b0222a68651a24ff0007845 GIT binary patch literal 22588 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 #include +#include +#include + using namespace geode::prelude; Loader::Impl* LoaderImpl::get() { @@ -405,17 +408,16 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { return; } - if (!this->isModVersionSupported(node->getMetadata().getGeodeVersion())) { + auto geodeVerRes = node->getMetadata().checkGeodeVersion(); + if (!geodeVerRes) { this->addProblem({ - node->getMetadata().getGeodeVersion() > this->getVersion() ? LoadProblem::Type::NeedsNewerGeodeVersion : LoadProblem::Type::UnsupportedGeodeVersion, + node->getMetadata().getGeodeVersion() > this->getVersion() ? + LoadProblem::Type::NeedsNewerGeodeVersion : + LoadProblem::Type::UnsupportedGeodeVersion, node, - fmt::format( - "Geode version {}\nis required to run this mod\n(installed: {})", - node->getMetadata().getGeodeVersion().toVString(), - this->getVersion().toVString() - ) + geodeVerRes.unwrapErr() }); - log::error("Unsupported Geode version: {}", node->getMetadata().getGeodeVersion()); + log::error("{}", geodeVerRes.unwrapErr()); log::popNest(); return; } @@ -977,4 +979,171 @@ bool Loader::Impl::isSafeMode() const { void Loader::Impl::forceSafeMode() { m_forceSafeMode = true; -} \ No newline at end of file +} + +void Loader::Impl::installModManuallyFromFile(std::filesystem::path const& path, std::function after) { + auto res = ModMetadata::createFromGeodeFile(path); + if (!res) { + FLAlertLayer::create( + "Invalid File", + fmt::format( + "The path '{}' is not a valid Geode mod: {}", + path.string(), + res.unwrapErr() + ), + "OK" + )->show(); + return; + } + auto meta = res.unwrap(); + + auto check = meta.checkTargetVersions(); + if (!check) { + FLAlertLayer::create( + "Invalid Mod Version", + fmt::format( + "The mod {} can not be installed: {}", + meta.getID(), + check.unwrapErr() + ), + "OK" + )->show(); + } + + auto doInstallModFromFile = [this, path, meta, after]() { + std::error_code ec; + + static size_t MAX_ATTEMPTS = 10; + + // Figure out a free path to install to + auto installTo = dirs::getModsDir() / fmt::format("{}.geode", meta.getID()); + size_t counter = 0; + while (std::filesystem::exists(installTo, ec) && counter < MAX_ATTEMPTS) { + installTo = dirs::getModsDir() / fmt::format("{}-{}.geode", meta.getID(), counter); + counter += 1; + } + + // This is incredibly unlikely but theoretically possible + if (counter >= MAX_ATTEMPTS) { + FLAlertLayer::create( + "Unable to Install", + fmt::format( + "Unable to install mod {}: Can't find a free filename!", + meta.getID() + ), + "OK" + )->show(); + return; + } + + // Actually copy the file over to the install directory + std::filesystem::copy_file(path, installTo, ec); + if (ec) { + FLAlertLayer::create( + "Unable to Install", + fmt::format( + "Unable to install mod {}: {} (Error code {})", + meta.getID(), ec.message(), ec.value() + ), + "OK" + )->show(); + return; + } + + // Mark an updated mod as updated or add to the mods list + if (m_mods.contains(meta.getID())) { + m_mods.at(meta.getID())->m_impl->m_requestedAction = ModRequestedAction::Update; + } + // Otherwise add a new Mod + // This should be safe as all of the scary stuff in setup() is only relevant + // for mods that are actually running + else { + auto mod = new Mod(meta); + auto res = mod->m_impl->setup(); + if (!res) { + log::error("Unable to set up manually installed mod: {}", res.unwrapErr()); + } + (void)mod->enable(); + m_mods.insert({ meta.getID(), mod }); + } + + if (after) after(); + + // No need for the user to go and manually clean up the file + createQuickPopup( + "Mod Installed", + fmt::format( + "Mod {} has been succesfully installed from file! " + "Do you want to delete the original file?", + meta.getName() + ), + "OK", "Delete File", + [path](auto, bool btn2) { + if (btn2) { + std::error_code ec; + std::filesystem::remove(path, ec); + if (ec) { + FLAlertLayer::create( + "Unable to Delete", + fmt::format( + "Unable to delete {}: {} (Error code {})", + path, ec.message(), ec.value() + ), + "OK" + )->show(); + } + // No need to show a confirmation popup if succesful since that's + // to be assumed via pressing the button on the previous popup + } + } + ); + }; + + if (auto existing = Loader::get()->getInstalledMod(meta.getID())) { + createQuickPopup( + "Already Installed", + fmt::format( + "The mod {} v{} has already been installed " + "as version {}. Do you want to replace the " + "installed version with the file?", + meta.getID(), meta.getVersion(), + existing->getVersion() + ), + "Cancel", "Replace", + [doInstallModFromFile, path, existing, meta](auto, bool btn2) mutable { + std::error_code ec; + std::filesystem::remove(existing->getPackagePath(), ec); + if (ec) { + FLAlertLayer::create( + "Unable to Uninstall", + fmt::format( + "Unable to uninstall {}: {} (Error code {})", + existing->getID(), ec.message(), ec.value() + ), + "OK" + )->show(); + return; + } + doInstallModFromFile(); + } + ); + return; + } + + doInstallModFromFile(); +} + +bool Loader::Impl::isRestartRequired() const { + for (auto mod : Loader::get()->getAllMods()) { + if (mod->getRequestedAction() != ModRequestedAction::None) { + return true; + } + if (ModSettingsManager::from(mod)->restartRequired()) { + return true; + } + } + if (server::ModDownloadManager::get()->wantsRestart()) { + return true; + } + return false; +} diff --git a/loader/src/loader/LoaderImpl.hpp b/loader/src/loader/LoaderImpl.hpp index b44b5d48..928dd7ca 100644 --- a/loader/src/loader/LoaderImpl.hpp +++ b/loader/src/loader/LoaderImpl.hpp @@ -138,6 +138,12 @@ namespace geode { bool isSafeMode() const; // enables safe mode, even if the launch arg wasnt provided void forceSafeMode(); + + // This will potentially start a whole sequence of popups that guide the + // user through installing the specific .geode file + void installModManuallyFromFile(std::filesystem::path const& path, std::function after); + + bool isRestartRequired() const; }; class LoaderImpl : public Loader::Impl { diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index 04b45487..acd09801 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -30,6 +30,7 @@ static constexpr const char* humanReadableDescForAction(ModRequestedAction actio case ModRequestedAction::Disable: return "Mod has been disabled"; case ModRequestedAction::Uninstall: return "Mod has been uninstalled"; case ModRequestedAction::UninstallWithSaveData: return "Mod has been uninstalled"; + case ModRequestedAction::Update: return "Mod has been updated"; } } diff --git a/loader/src/loader/ModMetadataImpl.cpp b/loader/src/loader/ModMetadataImpl.cpp index 8c048b8d..1b4b1cac 100644 --- a/loader/src/loader/ModMetadataImpl.cpp +++ b/loader/src/loader/ModMetadataImpl.cpp @@ -572,6 +572,29 @@ Result<> ModMetadata::checkGameVersion() const { } return Ok(); } +Result<> ModMetadata::checkGeodeVersion() const { + if (!LoaderImpl::get()->isModVersionSupported(m_impl->m_geodeVersion)) { + auto current = LoaderImpl::get()->getVersion(); + if (m_impl->m_geodeVersion > current) { + return Err( + "This mod was made for a newer version of Geode ({}). You currently have version {}.", + m_impl->m_geodeVersion, current + ); + } + else { + return Err( + "This mod was made for an older version of Geode ({}). You currently have version {}.", + m_impl->m_geodeVersion, current + ); + } + } + return Ok(); +} +Result<> ModMetadata::checkTargetVersions() const { + GEODE_UNWRAP(this->checkGameVersion()); + GEODE_UNWRAP(this->checkGeodeVersion()); + return Ok(); +} #if defined(GEODE_EXPOSE_SECRET_INTERNALS_IN_HEADERS_DO_NOT_DEFINE_PLEASE) void ModMetadata::setPath(std::filesystem::path const& value) { diff --git a/loader/src/server/DownloadManager.cpp b/loader/src/server/DownloadManager.cpp index 573881e9..545fe3ed 100644 --- a/loader/src/server/DownloadManager.cpp +++ b/loader/src/server/DownloadManager.cpp @@ -4,6 +4,7 @@ #include #include #include +#include using namespace server; @@ -124,6 +125,8 @@ public: .details = fmt::format("Unable to delete existing .geode package (code {})", ec), }; } + // Mark mod as updated + ModImpl::getImpl(mod)->m_requestedAction = ModRequestedAction::Update; } // If this was an update, delete the old file first if (!removingInstalledWasError) { diff --git a/loader/src/ui/GeodeUI.cpp b/loader/src/ui/GeodeUI.cpp index a7621074..c730699b 100644 --- a/loader/src/ui/GeodeUI.cpp +++ b/loader/src/ui/GeodeUI.cpp @@ -166,40 +166,55 @@ Popup* geode::openSettingsPopup(Mod* mod, bool disableGeodeTheme) { return nullptr; } +using ModLogoSrc = std::variant; + class ModLogoSprite : public CCNode { protected: std::string m_modID; CCNode* m_sprite = nullptr; EventListener> m_listener; - bool init(std::string const& id, bool fetch) { + bool init(ModLogoSrc&& src) { if (!CCNode::init()) return false; this->setAnchorPoint({ .5f, .5f }); this->setContentSize({ 50, 50 }); - // This is a default ID, nothing should ever rely on the ID of any ModLogoSprite being this - this->setID(std::string(Mod::get()->expandSpriteName(fmt::format("sprite-{}", id)))); - - m_modID = id; m_listener.bind(this, &ModLogoSprite::onFetch); + + std::visit(makeVisitor { + [this](Mod* mod) { + m_modID = mod->getID(); - // Load from Resources - if (!fetch) { - this->setSprite(id == "geode.loader" ? - CCSprite::createWithSpriteFrameName("geode-logo.png"_spr) : - CCSprite::create(fmt::format("{}/logo.png", id).c_str()), - false - ); - } - // Asynchronously fetch from server - else { - this->setSprite(createLoadingCircle(25), false); - m_listener.setFilter(server::getModLogo(id)); - } + // Load from Resources + this->setSprite(mod->isInternal() ? + CCSprite::createWithSpriteFrameName("geode-logo.png"_spr) : + CCSprite::create(fmt::format("{}/logo.png", mod->getID()).c_str()), + false + ); + }, + [this](std::string const& id) { + m_modID = id; + + // Asynchronously fetch from server + this->setSprite(createLoadingCircle(25), false); + m_listener.setFilter(server::getModLogo(id)); + }, + [this](std::filesystem::path const& path) { + this->setSprite(nullptr, false); + if (auto unzip = file::Unzip::create(path)) { + if (auto logo = unzip.unwrap().extract("logo.png")) { + this->setSprite(std::move(logo.unwrap()), false); + } + } + }, + }, src); - ModLogoUIEvent(std::make_unique(this, id)).post(); + // This is a default ID, nothing should ever rely on the ID of any ModLogoSprite being this + this->setID(std::string(Mod::get()->expandSpriteName(fmt::format("sprite-{}", m_modID)))); + + ModLogoUIEvent(std::make_unique(this, m_modID)).post(); return true; } @@ -224,6 +239,13 @@ protected: ModLogoUIEvent(std::make_unique(this, m_modID)).post(); } } + void setSprite(ByteVector&& data, bool postEvent) { + auto image = Ref(new CCImage()); + image->initWithImageData(data.data(), data.size()); + + auto texture = CCTextureCache::get()->addUIImage(image, m_modID.c_str()); + this->setSprite(CCSprite::createWithTexture(texture), postEvent); + } void onFetch(server::ServerRequest::Event* event) { if (auto result = event->getValue()) { @@ -233,12 +255,7 @@ protected: } // Otherwise load downloaded sprite to memory else { - auto data = result->unwrap(); - auto image = Ref(new CCImage()); - image->initWithImageData(data.data(), data.size()); - - auto texture = CCTextureCache::get()->addUIImage(image, m_modID.c_str()); - this->setSprite(CCSprite::createWithTexture(texture), true); + this->setSprite(std::move(result->unwrap()), true); } } else if (event->isCancelled()) { @@ -247,9 +264,9 @@ protected: } public: - static ModLogoSprite* create(std::string const& id, bool fetch = false) { + static ModLogoSprite* create(ModLogoSrc&& src) { auto ret = new ModLogoSprite(); - if (ret->init(id, fetch)) { + if (ret->init(std::move(src))) { ret->autorelease(); return ret; } @@ -259,13 +276,17 @@ public: }; CCNode* geode::createDefaultLogo() { - return ModLogoSprite::create(""); + return ModLogoSprite::create(ModLogoSrc(nullptr)); } CCNode* geode::createModLogo(Mod* mod) { - return ModLogoSprite::create(mod->getID()); + return ModLogoSprite::create(ModLogoSrc(mod)); +} + +CCNode* geode::createModLogo(std::filesystem::path const& geodePackage) { + return ModLogoSprite::create(ModLogoSrc(geodePackage)); } CCNode* geode::createServerModLogo(std::string const& id) { - return ModLogoSprite::create(id, true); + return ModLogoSprite::create(ModLogoSrc(id)); } diff --git a/loader/src/ui/mods/ModsLayer.cpp b/loader/src/ui/mods/ModsLayer.cpp index b97bd46e..8f9b0d64 100644 --- a/loader/src/ui/mods/ModsLayer.cpp +++ b/loader/src/ui/mods/ModsLayer.cpp @@ -145,7 +145,7 @@ void ModsStatusNode::updateState() { switch (state) { // If there are no downloads happening, just show the restart button if needed case DownloadState::None: { - m_restartBtn->setVisible(ModListSource::isRestartRequired()); + m_restartBtn->setVisible(LoaderImpl::get()->isRestartRequired()); } break; // If some downloads were cancelled, show the restart button normally @@ -154,7 +154,7 @@ void ModsStatusNode::updateState() { m_status->setColor(ccWHITE); m_status->setVisible(true); - m_restartBtn->setVisible(ModListSource::isRestartRequired()); + m_restartBtn->setVisible(LoaderImpl::get()->isRestartRequired()); } break; // If all downloads were finished, show the restart button normally @@ -170,7 +170,7 @@ void ModsStatusNode::updateState() { m_status->setVisible(true); m_statusBG->setVisible(true); - m_restartBtn->setVisible(ModListSource::isRestartRequired()); + m_restartBtn->setVisible(LoaderImpl::get()->isRestartRequired()); } break; case DownloadState::SomeErrored: { @@ -274,6 +274,39 @@ void ModsLayer::onOpenModsFolder(CCObject*) { file::openFolder(dirs::getModsDir()); } +void ModsLayer::onAddModFromFile(CCObject*) { + if (!Mod::get()->setSavedValue("shown-manual-install-info", true)) { + return FLAlertLayer::create( + nullptr, + "Manually Installing Mods", + "You can manually install mods by selecting their .geode files. " + "Do note that manually installed mods are not verified to be safe and stable!\n" + "Proceed at your own risk!", + "OK", nullptr, + 350 + )->show(); + } + file::pick(file::PickMode::OpenFile, file::FilePickOptions { + .filters = { file::FilePickOptions::Filter { + .description = "Geode Mods", + .files = { "*.geode" }, + }} + }).listen([](Result* path) { + if (*path) { + LoaderImpl::get()->installModManuallyFromFile(path->unwrap(), []() { + InstalledModListSource::get(InstalledModListType::All)->clearCache(); + }); + } + else { + FLAlertLayer::create( + "Unable to Select File", + path->unwrapErr(), + "OK" + )->show(); + } + }); +} + void ModsStatusNode::onRestart(CCObject*) { // Update button state to let user know it's restarting but it might take a bit m_restartBtn->setEnabled(false); @@ -380,6 +413,20 @@ bool ModsLayer::init() { folderBtn->setID("mods-folder-button"); actionsMenu->addChild(folderBtn); + auto addSpr = createGeodeCircleButton( + CCSprite::createWithSpriteFrameName("file-add.png"_spr), 1.f, + CircleBaseSize::Medium + ); + addSpr->setScale(.8f); + addSpr->setTopRelativeScale(.8f); + auto addBtn = CCMenuItemSpriteExtra::create( + addSpr, + this, + menu_selector(ModsLayer::onAddModFromFile) + ); + addBtn->setID("mods-add-button"); + actionsMenu->addChild(addBtn); + actionsMenu->setLayout( ColumnLayout::create() ->setAxisAlignment(AxisAlignment::Start) diff --git a/loader/src/ui/mods/ModsLayer.hpp b/loader/src/ui/mods/ModsLayer.hpp index ed585239..2b2afaa0 100644 --- a/loader/src/ui/mods/ModsLayer.hpp +++ b/loader/src/ui/mods/ModsLayer.hpp @@ -76,6 +76,7 @@ protected: void onTab(CCObject* sender); void onOpenModsFolder(CCObject*); + void onAddModFromFile(CCObject*); void onBigView(CCObject*); void onSearch(CCObject*); void onGoToPage(CCObject*); diff --git a/loader/src/ui/mods/list/ModDeveloperList.cpp b/loader/src/ui/mods/list/ModDeveloperList.cpp index 6a3a62ee..0f3ae4c9 100644 --- a/loader/src/ui/mods/list/ModDeveloperList.cpp +++ b/loader/src/ui/mods/list/ModDeveloperList.cpp @@ -64,11 +64,6 @@ bool ModDeveloperList::init(DevListPopup* popup, ModSource const& source, CCSize m_list->m_contentLayer->addChild(ModDeveloperItem::create(popup, dev.username, itemSize, dev.displayName)); } }, - [this, popup, itemSize](ModSuggestion const& suggestion) { - for (std::string& dev : suggestion.suggestion.getDevelopers()) { - m_list->m_contentLayer->addChild(ModDeveloperItem::create(popup, dev, itemSize, std::nullopt, false)); - } - }, }); m_list->m_contentLayer->updateLayout(); m_list->scrollToTop(); diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index c257c3cf..9004a21c 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -284,7 +284,7 @@ bool ModItem::init(ModSource&& source) { m_recommendedBy->addChild(nameLabel); m_recommendedBy->setLayout( - RowLayout::create() + RowLayout::create() ->setDefaultScaleLimits(.1f, 1.f) ->setAxisAlignment(AxisAlignment::Start) ); @@ -390,10 +390,6 @@ void ModItem::updateState() { m_bg->setColor("mod-list-featured-color"_cc3b); m_bg->setOpacity(65); } - }, - [this](ModSuggestion const& suggestion) { - m_bg->setColor("mod-list-recommended-bg"_cc3b); - m_bg->setOpacity(isGeodeTheme() ? 25 : 90); } }); diff --git a/loader/src/ui/mods/sources/InstalledModListSource.cpp b/loader/src/ui/mods/sources/InstalledModListSource.cpp index 79b03a90..91e6930e 100644 --- a/loader/src/ui/mods/sources/InstalledModListSource.cpp +++ b/loader/src/ui/mods/sources/InstalledModListSource.cpp @@ -13,10 +13,10 @@ bool InstalledModsQuery::preCheck(ModSource const& src) const { } // If only errors requested, only show mods with errors (duh) if (type == InstalledModListType::OnlyOutdated) { - return src.asMod()->targetsOutdatedVersion().has_value(); + return src.asMod() && src.asMod()->targetsOutdatedVersion().has_value(); } if (type == InstalledModListType::OnlyErrors) { - return src.asMod()->hasLoadProblems(); + return src.asMod() && src.asMod()->hasLoadProblems(); } return true; } diff --git a/loader/src/ui/mods/sources/ModListSource.cpp b/loader/src/ui/mods/sources/ModListSource.cpp index 1c6f57b2..44900d20 100644 --- a/loader/src/ui/mods/sources/ModListSource.cpp +++ b/loader/src/ui/mods/sources/ModListSource.cpp @@ -1,6 +1,7 @@ #include "ModListSource.hpp" #include #include +#include #define FTS_FUZZY_MATCH_IMPLEMENTATION #include @@ -88,20 +89,6 @@ void ModListSource::clearAllCaches() { src->clearCache(); } } -bool ModListSource::isRestartRequired() { - for (auto mod : Loader::get()->getAllMods()) { - if (mod->getRequestedAction() != ModRequestedAction::None) { - return true; - } - if (ModSettingsManager::from(mod)->restartRequired()) { - return true; - } - } - if (server::ModDownloadManager::get()->wantsRestart()) { - return true; - } - return false; -} bool weightedFuzzyMatch(std::string const& str, std::string const& kw, double weight, double& out) { int score; diff --git a/loader/src/ui/mods/sources/ModListSource.hpp b/loader/src/ui/mods/sources/ModListSource.hpp index 46d02236..7e241a9d 100644 --- a/loader/src/ui/mods/sources/ModListSource.hpp +++ b/loader/src/ui/mods/sources/ModListSource.hpp @@ -79,7 +79,6 @@ public: void setPageSize(size_t size); static void clearAllCaches(); - static bool isRestartRequired(); }; template @@ -231,8 +230,8 @@ void filterModsWithLocalQuery(ModListSource::ProvidedMods& mods, Query const& qu return a.second > b.second; } // Make sure outdated mods are always last by default - auto aIsOutdated = a.first.getMetadata().checkGameVersion().isErr(); - auto bIsOutdated = b.first.getMetadata().checkGameVersion().isErr(); + auto aIsOutdated = a.first.getMetadata().checkTargetVersions().isErr(); + auto bIsOutdated = b.first.getMetadata().checkTargetVersions().isErr(); if (aIsOutdated != bIsOutdated) { return !aIsOutdated; } diff --git a/loader/src/ui/mods/sources/ModSource.cpp b/loader/src/ui/mods/sources/ModSource.cpp index 0860ee73..b41edee2 100644 --- a/loader/src/ui/mods/sources/ModSource.cpp +++ b/loader/src/ui/mods/sources/ModSource.cpp @@ -51,9 +51,6 @@ std::string ModSource::getID() const { [](server::ServerModMetadata const& metadata) { return metadata.id; }, - [](ModSuggestion const& suggestion) { - return suggestion.suggestion.getID(); - }, }, m_value); } ModMetadata ModSource::getMetadata() const { @@ -65,9 +62,6 @@ ModMetadata ModSource::getMetadata() const { // Versions should be guaranteed to have at least one item return metadata.versions.front().metadata; }, - [](ModSuggestion const& suggestion) { - return suggestion.suggestion; - }, }, m_value); } @@ -80,9 +74,6 @@ std::string ModSource::formatDevelopers() const { // Versions should be guaranteed to have at least one item return metadata.formatDevelopersToString(); }, - [](ModSuggestion const& suggestion) { - return ModMetadata::formatDeveloperDisplayString(suggestion.suggestion.getDevelopers()); - }, }, m_value); } @@ -94,9 +85,6 @@ CCNode* ModSource::createModLogo() const { [](server::ServerModMetadata const& metadata) { return createServerModLogo(metadata.id); }, - [](ModSuggestion const& suggestion) { - return createServerModLogo(suggestion.suggestion.getID()); - }, }, m_value); } bool ModSource::wantsRestart() const { @@ -113,9 +101,6 @@ bool ModSource::wantsRestart() const { [](server::ServerModMetadata const& metdata) { return false; }, - [](ModSuggestion const& suggestion) { - return false; - }, }, m_value); } std::optional ModSource::hasUpdates() const { @@ -133,9 +118,6 @@ ModSource ModSource::convertForPopup() const { } return ModSource(server::ServerModMetadata(metadata)); }, - [](ModSuggestion const& suggestion) { - return ModSource(ModSuggestion(suggestion)); - }, }, m_value); } @@ -148,6 +130,7 @@ server::ServerModMetadata const* ModSource::asServer() const { } server::ServerRequest> ModSource::fetchAbout() const { + // todo: write as visit if (auto mod = this->asMod()) { return server::ServerRequest>::immediate(Ok(mod->getMetadata().getDetails())); } @@ -181,12 +164,15 @@ server::ServerRequest ModSource::fetchServerInfo() co } server::ServerRequest> ModSource::fetchValidTags() const { return std::visit(makeVisitor { - [](Mod* mod) { + [](server::ServerModMetadata const& metadata) { + // Server info tags are always certain to be valid since the server has already validated them + return server::ServerRequest>::immediate(Ok(metadata.tags)); + }, + [this](auto const&) { return server::getTags().map( - [mod](auto* result) -> Result, server::ServerError> { + [modTags = this->getMetadata().getTags()](auto* result) -> Result, server::ServerError> { if (result->isOk()) { // Filter out invalid tags - auto modTags = mod->getMetadata().getTags(); auto finalTags = std::unordered_set(); for (auto& tag : modTags) { if (result->unwrap().contains(tag)) { @@ -202,14 +188,6 @@ server::ServerRequest> ModSource::fetchValidTags } ); }, - [](server::ServerModMetadata const& metadata) { - // Server info tags are always certain to be valid since the server has already validated them - return server::ServerRequest>::immediate(Ok(metadata.tags)); - }, - [](ModSuggestion const& suggestion) { - // Suggestions are also guaranteed to be valid since they come from the server - return server::ServerRequest>::immediate(Ok(suggestion.suggestion.getTags())); - }, }, m_value); } server::ServerRequest> ModSource::checkUpdates() { @@ -230,9 +208,5 @@ server::ServerRequest> ModSource::checkUp // Server mods aren't installed so you can't install updates for them return server::ServerRequest>::immediate(Ok(std::nullopt)); }, - [](ModSuggestion const& suggestion) { - // Suggestions also aren't installed so you can't install updates for them - return server::ServerRequest>::immediate(Ok(std::nullopt)); - }, }, m_value); } diff --git a/loader/src/ui/mods/sources/ModSource.hpp b/loader/src/ui/mods/sources/ModSource.hpp index aa13f3bb..909a8d56 100644 --- a/loader/src/ui/mods/sources/ModSource.hpp +++ b/loader/src/ui/mods/sources/ModSource.hpp @@ -2,6 +2,7 @@ #include #include +#include using namespace geode::prelude; @@ -23,7 +24,6 @@ public: ModSource() = default; ModSource(Mod* mod); ModSource(server::ServerModMetadata&& metadata); - ModSource(ModSuggestion&& suggestion); std::string getID() const; ModMetadata getMetadata() const; From 893b03e3131516375ec3f7c91b161b8b335e774e Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Thu, 14 Nov 2024 16:37:07 +0200 Subject: [PATCH 087/119] use tag display names from server --- loader/src/server/Server.cpp | 47 ++++++++++++------ loader/src/server/Server.hpp | 13 ++++- loader/src/ui/mods/GeodeStyle.cpp | 20 ++------ loader/src/ui/mods/GeodeStyle.hpp | 6 +-- loader/src/ui/mods/popups/FiltersPopup.cpp | 4 +- loader/src/ui/mods/popups/FiltersPopup.hpp | 4 +- loader/src/ui/mods/popups/ModPopup.cpp | 4 +- loader/src/ui/mods/popups/ModPopup.hpp | 4 +- loader/src/ui/mods/sources/ModSource.cpp | 57 ++++++++++++---------- loader/src/ui/mods/sources/ModSource.hpp | 2 +- 10 files changed, 93 insertions(+), 68 deletions(-) diff --git a/loader/src/server/Server.cpp b/loader/src/server/Server.cpp index 193221de..e9b6db0a 100644 --- a/loader/src/server/Server.cpp +++ b/loader/src/server/Server.cpp @@ -246,6 +246,31 @@ std::string ServerDateTime::toAgoString() const { return fmt::format("{:%b %d %Y}", value); } +Result ServerTag::parse(matjson::Value const& raw) { + auto root = checkJson(raw, "ServerTag"); + auto res = ServerTag(); + + root.needs("id").into(res.id); + root.needs("name").into(res.name); + root.needs("display_name").into(res.displayName); + + return root.ok(res); +} +Result> ServerTag::parseList(matjson::Value const& raw) { + auto payload = checkJson(raw, "ServerTagsList"); + std::vector list {}; + for (auto& item : payload.items()) { + auto mod = ServerTag::parse(item.json()); + if (mod) { + list.push_back(mod.unwrap()); + } + else { + log::error("Unable to parse tag from the server: {}", mod.unwrapErr()); + } + } + return payload.ok(list); +} + Result ServerDateTime::parse(std::string const& str) { std::stringstream ss(str); date::sys_seconds seconds; @@ -690,33 +715,25 @@ ServerRequest server::getModLogo(std::string const& id, bool useCach ); } -ServerRequest> server::getTags(bool useCache) { +ServerRequest> server::getTags(bool useCache) { if (useCache) { return getCache().get(); } auto req = web::WebRequest(); req.userAgent(getServerUserAgent()); - return req.get(formatServerURL("/tags")).map( - [](web::WebResponse* response) -> Result, ServerError> { + return req.get(formatServerURL("/detailed-tags")).map( + [](web::WebResponse* response) -> Result, ServerError> { if (response->ok()) { // Parse payload auto payload = parseServerPayload(*response); if (!payload) { return Err(payload.unwrapErr()); } - matjson::Value json = payload.unwrap(); - if (!json.isArray()) { - return Err(ServerError(response->code(), "Expected a string array")); + auto list = ServerTag::parseList(payload.unwrap()); + if (!list) { + return Err(ServerError(response->code(), "Unable to parse response: {}", list.unwrapErr())); } - - std::unordered_set tags; - for (auto item : json) { - if (!item.isString()) { - return Err(ServerError(response->code(), "Expected a string array")); - } - tags.insert(item.asString().unwrap()); - } - return Ok(tags); + return Ok(list.unwrap()); } return Err(parseServerError(*response)); }, diff --git a/loader/src/server/Server.hpp b/loader/src/server/Server.hpp index 110f4e8f..c7a7be9b 100644 --- a/loader/src/server/Server.hpp +++ b/loader/src/server/Server.hpp @@ -10,6 +10,8 @@ using namespace geode::prelude; namespace server { + // todo: replace parse()s with Serialize::fromJson now that it uses Results + struct ServerDateTime final { using Clock = std::chrono::system_clock; using Value = std::chrono::time_point; @@ -21,6 +23,15 @@ namespace server { static Result parse(std::string const& str); }; + struct ServerTag final { + size_t id; + std::string name; + std::string displayName; + + static Result parse(matjson::Value const& json); + static Result> parseList(matjson::Value const& json); + }; + struct ServerDeveloper final { std::string username; std::string displayName; @@ -147,7 +158,7 @@ namespace server { ServerRequest getMod(std::string const& id, bool useCache = true); ServerRequest getModVersion(std::string const& id, ModVersion const& version = ModVersionLatest(), bool useCache = true); ServerRequest getModLogo(std::string const& id, bool useCache = true); - ServerRequest> getTags(bool useCache = true); + ServerRequest> getTags(bool useCache = true); ServerRequest> checkUpdates(Mod const* mod); diff --git a/loader/src/ui/mods/GeodeStyle.cpp b/loader/src/ui/mods/GeodeStyle.cpp index 584287be..54c108b0 100644 --- a/loader/src/ui/mods/GeodeStyle.cpp +++ b/loader/src/ui/mods/GeodeStyle.cpp @@ -196,10 +196,10 @@ ButtonSprite* createTagLabel(std::string const& text, std::pairm_BGSprite->setColor(color.second); return label; } -ButtonSprite* createGeodeTagLabel(std::string_view tag) { - return createTagLabel(geodeTagName(tag), geodeTagColors(tag)); +ButtonSprite* createGeodeTagLabel(server::ServerTag const& tag) { + return createTagLabel(tag.displayName, geodeTagColors(tag)); } -std::pair geodeTagColors(std::string_view tag) { +std::pair geodeTagColors(server::ServerTag const& tag) { static std::array TAG_COLORS { std::make_pair(ccc3(240, 233, 255), ccc3(130, 123, 163)), std::make_pair(ccc3(234, 255, 245), ccc3(123, 163, 136)), @@ -207,20 +207,10 @@ std::pair geodeTagColors(std::string_view tag) { std::make_pair(ccc3(255, 253, 240), ccc3(163, 157, 123)), std::make_pair(ccc3(255, 242, 240), ccc3(163, 128, 123)), }; - if (tag == "modtober24") { + if (tag.name == "modtober24") { return std::make_pair(ccc3(225, 236, 245), ccc3(82, 139, 201)); } - return TAG_COLORS[hash(tag) % 5932 % TAG_COLORS.size()]; -} -std::string geodeTagName(std::string_view tag) { - // todo in v4: rework tags to use a server-provided display name instead - if (tag == "modtober24") { - return "Modtober 2024"; - } - // Everything else just capitalize and that's it - auto readable = std::string(tag); - readable[0] = std::toupper(readable[0]); - return readable; + return TAG_COLORS[hash(tag.name) % 5932 % TAG_COLORS.size()]; } ListBorders* createGeodeListBorders(CCSize const& size, bool forceDisableTheme) { diff --git a/loader/src/ui/mods/GeodeStyle.hpp b/loader/src/ui/mods/GeodeStyle.hpp index 2c458966..c916ce7a 100644 --- a/loader/src/ui/mods/GeodeStyle.hpp +++ b/loader/src/ui/mods/GeodeStyle.hpp @@ -7,6 +7,7 @@ #include #include #include +#include using namespace geode::prelude; @@ -87,9 +88,8 @@ ButtonSprite* createGeodeButton(std::string const& text, bool gold = false, Geod CircleButtonSprite* createGeodeCircleButton(CCSprite* top, float scale = 1.f, CircleBaseSize size = CircleBaseSize::Medium, bool altColor = false, bool forceDisableTheme = false); ButtonSprite* createTagLabel(std::string const& text, std::pair const& color); -ButtonSprite* createGeodeTagLabel(std::string_view tag); -std::pair geodeTagColors(std::string_view tag); -std::string geodeTagName(std::string_view tag); +ButtonSprite* createGeodeTagLabel(server::ServerTag const& tag); +std::pair geodeTagColors(server::ServerTag const& tag); ListBorders* createGeodeListBorders(CCSize const& size, bool forceDisableTheme = false); diff --git a/loader/src/ui/mods/popups/FiltersPopup.cpp b/loader/src/ui/mods/popups/FiltersPopup.cpp index cbe09fb4..0ae0905c 100644 --- a/loader/src/ui/mods/popups/FiltersPopup.cpp +++ b/loader/src/ui/mods/popups/FiltersPopup.cpp @@ -144,7 +144,7 @@ bool FiltersPopup::setup(ModListSource* src) { return true; } -void FiltersPopup::onLoadTags(typename server::ServerRequest>::Event* event) { +void FiltersPopup::onLoadTags(typename server::ServerRequest>::Event* event) { if (event->getValue() && event->getValue()->isOk()) { auto tags = event->getValue()->unwrap(); m_tagsMenu->removeAllChildren(); @@ -157,7 +157,7 @@ void FiltersPopup::onLoadTags(typename server::ServerRequestm_notClickable = true; - btn->setUserObject("tag", CCString::create(tag)); + btn->setUserObject("tag", CCString::create(tag.name)); m_tagsMenu->addChild(btn); } m_tagsMenu->updateLayout(); diff --git a/loader/src/ui/mods/popups/FiltersPopup.hpp b/loader/src/ui/mods/popups/FiltersPopup.hpp index cf741f77..de18ccee 100644 --- a/loader/src/ui/mods/popups/FiltersPopup.hpp +++ b/loader/src/ui/mods/popups/FiltersPopup.hpp @@ -13,14 +13,14 @@ protected: ModListSource* m_source; CCMenu* m_tagsMenu; std::unordered_set m_selectedTags; - EventListener>> m_tagsListener; + EventListener>> m_tagsListener; CCMenuItemToggler* m_enabledModsOnly = nullptr; TextInput* m_developerNameInput = nullptr; bool setup(ModListSource* src) override; void updateTags(); - void onLoadTags(typename server::ServerRequest>::Event* event); + void onLoadTags(typename server::ServerRequest>::Event* event); void onResetTags(CCObject*); void onResetDevName(CCObject*); void onSelectTag(CCObject* sender); diff --git a/loader/src/ui/mods/popups/ModPopup.cpp b/loader/src/ui/mods/popups/ModPopup.cpp index a22578e8..411bede2 100644 --- a/loader/src/ui/mods/popups/ModPopup.cpp +++ b/loader/src/ui/mods/popups/ModPopup.cpp @@ -885,7 +885,7 @@ void ModPopup::onCheckUpdates(typename server::ServerRequest>::Event* event) { +void ModPopup::onLoadTags(typename server::ServerRequest>::Event* event) { if (event->getValue() && event->getValue()->isOk()) { auto data = event->getValue()->unwrap(); m_tags->removeAllChildren(); @@ -904,7 +904,7 @@ void ModPopup::onLoadTags(typename server::ServerRequestsetID("modtober-banner"); menu->ignoreAnchorPointForPosition(false); diff --git a/loader/src/ui/mods/popups/ModPopup.hpp b/loader/src/ui/mods/popups/ModPopup.hpp index bb660302..1e1b1d91 100644 --- a/loader/src/ui/mods/popups/ModPopup.hpp +++ b/loader/src/ui/mods/popups/ModPopup.hpp @@ -38,7 +38,7 @@ protected: CCNode* m_modtoberBanner = nullptr; std::unordered_map>> m_tabs; EventListener> m_statsListener; - EventListener>> m_tagsListener; + EventListener>> m_tagsListener; EventListener>> m_checkUpdateListener; EventListener m_updateStateListener; EventListener m_downloadListener; @@ -52,7 +52,7 @@ protected: void setStatValue(CCNode* stat, std::optional const& value); void onLoadServerInfo(typename server::ServerRequest::Event* event); - void onLoadTags(typename server::ServerRequest>::Event* event); + void onLoadTags(typename server::ServerRequest>::Event* event); void onCheckUpdates(typename server::ServerRequest>::Event* event); void onTab(CCObject* sender); diff --git a/loader/src/ui/mods/sources/ModSource.cpp b/loader/src/ui/mods/sources/ModSource.cpp index d1b170d3..d7a6d007 100644 --- a/loader/src/ui/mods/sources/ModSource.cpp +++ b/loader/src/ui/mods/sources/ModSource.cpp @@ -163,34 +163,41 @@ server::ServerRequest ModSource::fetchServerInfo() co // should deal with performance issues return server::getMod(this->getID()); } -server::ServerRequest> ModSource::fetchValidTags() const { - return std::visit(makeVisitor { - [](server::ServerModMetadata const& metadata) { - // Server info tags are always certain to be valid since the server has already validated them - return server::ServerRequest>::immediate(Ok(metadata.tags)); +server::ServerRequest> ModSource::fetchValidTags() const { + std::unordered_set modTags; + std::visit(makeVisitor { + [&](Mod* mod) { + modTags = mod->getMetadata().getTags(); }, - [this](auto const&) { - return server::getTags().map( - [modTags = this->getMetadata().getTags()](auto* result) -> Result, server::ServerError> { - if (result->isOk()) { - std::unordered_set fetched = result->unwrap(); - // Filter out invalid tags - auto finalTags = std::unordered_set(); - for (auto& tag : modTags) { - if (result->unwrap().contains(tag)) { - finalTags.insert(tag); - } - } - } - - return Ok(finalTags); - }, - [](server::ServerProgress* progress) { - return *progress; - } - ); + [&](server::ServerModMetadata const& metadata) { + modTags = metadata.tags; }, }, m_value); + + // This does two things: + // 1. For installed mods, it filters out invalid tags + // 2. For everything else, it gets the rest of the tag info (display name) from the server + return server::getTags().map( + [modTags = std::move(modTags)](auto* result) -> Result, server::ServerError> { + auto finalTags = std::vector(); + if (result->isOk()) { + auto fetched = result->unwrap(); + // Filter out invalid tags + for (auto& tag : modTags) { + auto stag = ranges::find(fetched, [&tag](server::ServerTag const& stag) { + return stag.name == tag; + }); + if (stag) { + finalTags.push_back(*stag); + } + } + } + return Ok(finalTags); + }, + [](server::ServerProgress* progress) { + return *progress; + } + ); } server::ServerRequest> ModSource::checkUpdates() { m_availableUpdate = std::nullopt; diff --git a/loader/src/ui/mods/sources/ModSource.hpp b/loader/src/ui/mods/sources/ModSource.hpp index 6bf5a9aa..7de655e3 100644 --- a/loader/src/ui/mods/sources/ModSource.hpp +++ b/loader/src/ui/mods/sources/ModSource.hpp @@ -47,7 +47,7 @@ public: server::ServerRequest fetchServerInfo() const; server::ServerRequest> fetchAbout() const; server::ServerRequest> fetchChangelog() const; - server::ServerRequest> fetchValidTags() const; + server::ServerRequest> fetchValidTags() const; server::ServerRequest> checkUpdates(); void startInstall(); }; From 13b30e591a5c841e71fecdbff790c67737235c5b Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Thu, 14 Nov 2024 16:42:43 +0200 Subject: [PATCH 088/119] pre-emptively update changelog --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b5ed583..e1334cfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Geode Changelog +## v4.0.0-alpha.2 + * Button to manually install mods from files (e881dc5) + * Add `ModRequestedAction::Update` (e881dc5) + * Add `ModMetadata::checkGeodeVersion` and `ModMetadata::checkTargetVersions` (e881dc5) + * Add `geode::createModLogo` for creating a logo from a `.geode` package (e881dc5) + * Tags now use names provided by the server (893b03e) + * Fix `Task::chain` using the wrong type in the impl (22a11b9) + * Fix installing mods not checking the current version (#1148) + * Fix crash when checking tags (01807fe) + * Fix 'Outdated' label being visible while updating (6679a69) + ## v4.0.0-alpha.1 * Support for the 2.2074 update * Developers, see [this page for a migration guide](https://docs.geode-sdk.org/tutorials/migrate-v4) From f9fed578aa228331c7907150d9bbc33f49450f9d Mon Sep 17 00:00:00 2001 From: mat <26722564+matcool@users.noreply.github.com> Date: Thu, 14 Nov 2024 14:49:08 -0300 Subject: [PATCH 089/119] update matjson to 3.1.0 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index db395308..07c449d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -237,7 +237,7 @@ endif() set(MAT_JSON_AS_INTERFACE ON) CPMAddPackage("gh:geode-sdk/result@1.2.1") -CPMAddPackage("gh:geode-sdk/json@3.0.3") +CPMAddPackage("gh:geode-sdk/json@3.1.0") CPMAddPackage("gh:fmtlib/fmt#11.0.2") target_compile_definitions(${PROJECT_NAME} INTERFACE MAT_JSON_DYNAMIC=1) From 48cad613c71e1de0a1363f842a7c6f2150ad8f66 Mon Sep 17 00:00:00 2001 From: Fleeym <61891787+Fleeym@users.noreply.github.com> Date: Fri, 15 Nov 2024 01:22:51 +0200 Subject: [PATCH 090/119] Add changes from v3.9.2 (#1153) * fix: fix mod downloads not checking version (#1149) * bump version to 3.9.1 * fix(index): don't remove gd and geode params (#1152) * chore: version bump --------- Co-authored-by: Cvolton --- CHANGELOG.md | 6 ++++++ loader/src/server/Server.cpp | 7 +++---- loader/src/ui/mods/popups/ModPopup.cpp | 3 +++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1334cfc..e8239daf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,12 @@ * Add hashtag symbol to CommonFilter::Any (#1131) * Disable forward compat on android (c9e97af) +## v3.9.2 + * Fix searching for mods returning unavailable mods (#1149) + +## v3.9.1 + * Fix mod downloads not checking version (f575187) + ## v3.9.0 * Many changes to the settings ui (#1108) * Fuzzy search is now more reasonable diff --git a/loader/src/server/Server.cpp b/loader/src/server/Server.cpp index e9b6db0a..7c1b4334 100644 --- a/loader/src/server/Server.cpp +++ b/loader/src/server/Server.cpp @@ -554,12 +554,11 @@ ServerRequest server::getMods(ModsQuery const& query, bool useCa // Add search params if (query.query) { req.param("query", *query.query); - } else { - // Target current GD version and Loader version when query is not set - req.param("gd", GEODE_GD_VERSION_STR); - req.param("geode", Loader::get()->getVersion().toNonVString()); } + req.param("gd", GEODE_GD_VERSION_STR); + req.param("geode", Loader::get()->getVersion().toNonVString()); + if (query.platforms.size()) { std::string plats = ""; bool first = true; diff --git a/loader/src/ui/mods/popups/ModPopup.cpp b/loader/src/ui/mods/popups/ModPopup.cpp index 411bede2..8262a09b 100644 --- a/loader/src/ui/mods/popups/ModPopup.cpp +++ b/loader/src/ui/mods/popups/ModPopup.cpp @@ -1,4 +1,7 @@ #include "ModPopup.hpp" + +#include + #include #include #include From 81cd8d1bca4f946d2cb58a53eea17d5475f8b21c Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Thu, 14 Nov 2024 20:36:56 -0300 Subject: [PATCH 091/119] add back warning for outdated fix --- loader/src/hooks/WindowsFontCacheFix.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/loader/src/hooks/WindowsFontCacheFix.cpp b/loader/src/hooks/WindowsFontCacheFix.cpp index da9e13a8..ea1375db 100644 --- a/loader/src/hooks/WindowsFontCacheFix.cpp +++ b/loader/src/hooks/WindowsFontCacheFix.cpp @@ -37,15 +37,15 @@ static void patchCall(uintptr_t addr, uintptr_t newCall) { $execute { if (LoaderImpl::get()->isForwardCompatMode()) return; +#if GEODE_COMP_GD_VERSION == 22040 // BitmapDC::~BitmapDC -#if 0 // TODO: mat GEODE_COMP_GD_VERSION == 22040 patchCall(0xC9A56, (uintptr_t)&RemoveFontResourceWHook); // BitmapDC::setFont patchCall(0xCB5BC, (uintptr_t)&RemoveFontResourceWHook); patchCall(0xCB642, (uintptr_t)&AddFontResourceWHook); #else - // #pragma message("Unsupported GD version!") + #pragma message("Unsupported GD version!") #endif }; From 0e8d4c60bc76653a01dd4fe0aa07b3e9847b5aff Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Thu, 14 Nov 2024 20:37:22 -0300 Subject: [PATCH 092/119] fix nest issue --- loader/src/loader/LoaderImpl.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/loader/src/loader/LoaderImpl.cpp b/loader/src/loader/LoaderImpl.cpp index c780221f..bc855f77 100644 --- a/loader/src/loader/LoaderImpl.cpp +++ b/loader/src/loader/LoaderImpl.cpp @@ -505,20 +505,20 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { thread::setName("Mod Unzip"); log::loadNest(nest); auto res = unzipFunction(); - auto prevNest = log::saveNest(); - log::loadNest(nest); - if (!res) { - this->addProblem({ - LoadProblem::Type::UnzipFailed, - node, - res.unwrapErr() - }); - log::error("Failed to unzip: {}", res.unwrapErr()); - m_refreshingModCount -= 1; - log::loadNest(prevNest); - return; - } - this->queueInMainThread([=, this]() { + this->queueInMainThread([=, this, res = std::move(res)]() { + auto prevNest = log::saveNest(); + log::loadNest(nest); + if (!res) { + this->addProblem({ + LoadProblem::Type::UnzipFailed, + node, + res.unwrapErr() + }); + log::error("Failed to unzip: {}", res.unwrapErr()); + m_refreshingModCount -= 1; + log::loadNest(prevNest); + return; + } loadFunction(); log::loadNest(prevNest); }); From ecec11fa93506d7b9ba3d77f013465a9ab6005d1 Mon Sep 17 00:00:00 2001 From: slideglide <68702247+slideglide@users.noreply.github.com> Date: Fri, 15 Nov 2024 13:53:48 +0300 Subject: [PATCH 093/119] Fix every "succes" spelling mistakes I could find (#1151) * Fix spelling mistakes * Fix spelling mistake * Fix spelling mistakes * Fix spelling mistake * Fix spelling mistake --- loader/include/Geode/cocos/support/zip_support/ZipUtils.h | 4 ++-- loader/include/Geode/utils/Task.hpp | 4 ++-- loader/include/Geode/utils/cocos.hpp | 4 ++-- loader/src/loader/LoaderImpl.cpp | 4 ++-- loader/src/server/DownloadManager.cpp | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/loader/include/Geode/cocos/support/zip_support/ZipUtils.h b/loader/include/Geode/cocos/support/zip_support/ZipUtils.h index 17019eaa..76e2f7f7 100644 --- a/loader/include/Geode/cocos/support/zip_support/ZipUtils.h +++ b/loader/include/Geode/cocos/support/zip_support/ZipUtils.h @@ -208,9 +208,9 @@ namespace cocos2d /** * Custom function added for geode; returns if the - * zip file was succesfully decoded. + * zip file was successfully decoded. * - * @return true if the zip was succesfully loaded, + * @return true if the zip was successfully loaded, * false otherwise. * * @since geode v1.0.0 diff --git a/loader/include/Geode/utils/Task.hpp b/loader/include/Geode/utils/Task.hpp index 2b0e2e1b..80b85b95 100644 --- a/loader/include/Geode/utils/Task.hpp +++ b/loader/include/Geode/utils/Task.hpp @@ -95,7 +95,7 @@ namespace geode { enum class Status { /// The task is still running or waiting to start Pending, - /// The task has succesfully finished + /// The task has successfully finished Finished, /// The task has been cancelled Cancelled, @@ -1032,4 +1032,4 @@ auto operator co_await(geode::Task task) { template struct std::coroutine_traits, Args...> { using promise_type = geode::geode_internal::TaskPromise; -}; \ No newline at end of file +}; diff --git a/loader/include/Geode/utils/cocos.hpp b/loader/include/Geode/utils/cocos.hpp index e12276c6..6a7093ab 100644 --- a/loader/include/Geode/utils/cocos.hpp +++ b/loader/include/Geode/utils/cocos.hpp @@ -850,7 +850,7 @@ namespace geode::cocos { * @param permissive If true, strings like "f" are considered valid * representations of the color white. Useful for UIs that allow entering * a hex color. Empty strings evaluate to pure white - * @returns A ccColor3B if it could be succesfully parsed, or an error + * @returns A ccColor3B if it could be successfully parsed, or an error * indicating the failure reason */ GEODE_DLL Result cc3bFromHexString(std::string const& hexValue, bool permissive = false); @@ -863,7 +863,7 @@ namespace geode::cocos { * @param permissive If true, strings like "f" are considered valid * representations of the color white. Useful for UIs that allow entering * a hex color. Empty strings evaluate to pure white - * @returns A ccColor4B if it could be succesfully parsed, or an error + * @returns A ccColor4B if it could be successfully parsed, or an error * indicating the failure reason */ GEODE_DLL Result cc4bFromHexString(std::string const& hexValue, bool requireAlpha = false, bool permissive = false); diff --git a/loader/src/loader/LoaderImpl.cpp b/loader/src/loader/LoaderImpl.cpp index bc855f77..d878a564 100644 --- a/loader/src/loader/LoaderImpl.cpp +++ b/loader/src/loader/LoaderImpl.cpp @@ -1073,7 +1073,7 @@ void Loader::Impl::installModManuallyFromFile(std::filesystem::path const& path, createQuickPopup( "Mod Installed", fmt::format( - "Mod {} has been succesfully installed from file! " + "Mod {} has been successfully installed from file! " "Do you want to delete the original file?", meta.getName() ), @@ -1092,7 +1092,7 @@ void Loader::Impl::installModManuallyFromFile(std::filesystem::path const& path, "OK" )->show(); } - // No need to show a confirmation popup if succesful since that's + // No need to show a confirmation popup if successful since that's // to be assumed via pressing the button on the previous popup } } diff --git a/loader/src/server/DownloadManager.cpp b/loader/src/server/DownloadManager.cpp index 545fe3ed..79a49a4d 100644 --- a/loader/src/server/DownloadManager.cpp +++ b/loader/src/server/DownloadManager.cpp @@ -256,7 +256,7 @@ std::optional ModDownloadManager::startDownload( std::optional const& dependencyFor, std::optional const& replacesMod ) { - // If this mod has already been succesfully downloaded or is currently + // If this mod has already been successfully downloaded or is currently // being downloaded, return as you can't download multiple versions of the // same mod simultaniously, since that wouldn't make sense. I mean the new // version would just immediately override to the other one From 9834cb2a2205278cfe771117fe2eedec63744da6 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Fri, 15 Nov 2024 11:56:46 -0300 Subject: [PATCH 094/119] fix dangling string crash on modpopup --- loader/src/ui/mods/popups/ModPopup.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/loader/src/ui/mods/popups/ModPopup.cpp b/loader/src/ui/mods/popups/ModPopup.cpp index 8262a09b..1cab734e 100644 --- a/loader/src/ui/mods/popups/ModPopup.cpp +++ b/loader/src/ui/mods/popups/ModPopup.cpp @@ -51,11 +51,16 @@ protected: } void onRequest(Request::Event* event) { - if (event->getValue() && event->getValue()->isOk() && event->getValue()->inspect([](auto&& value) { return value.has_value(); })) { - m_loading->removeFromParent(); - m_textarea->setString(event->getValue()->unwrap()->c_str()); + if (auto* res = event->getValue(); res && res->isOk()) { + auto value = std::move(*res).unwrap(); + if (value) { + m_loading->removeFromParent(); + std::string str = std::move(value).value(); + m_textarea->setString(str.c_str()); + return; + } } - else if (!event->getProgress()) { + if (!event->getProgress()) { m_loading->removeFromParent(); m_textarea->setString(m_noneText.c_str()); } From fb504cbf83fbae9d1d052fd9079c746131d5e15a Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Fri, 15 Nov 2024 11:58:33 -0300 Subject: [PATCH 095/119] theres no need for gdstring.lib since 2.206 --- cmake/Platform.cmake | 1 - loader/include/link/win64/gdstring.lib | Bin 36616 -> 0 bytes 2 files changed, 1 deletion(-) delete mode 100644 loader/include/link/win64/gdstring.lib diff --git a/cmake/Platform.cmake b/cmake/Platform.cmake index e8ea0d55..557e4df9 100644 --- a/cmake/Platform.cmake +++ b/cmake/Platform.cmake @@ -80,7 +80,6 @@ elseif (GEODE_TARGET_PLATFORM STREQUAL "Win64") ${GEODE_LOADER_PATH}/include/link/win64/ngtcp2_crypto_boringssl.lib ${GEODE_LOADER_PATH}/include/link/win64/libcurl.lib ${GEODE_LOADER_PATH}/include/link/win64/glew32.lib - ${GEODE_LOADER_PATH}/include/link/win64/gdstring.lib ${GEODE_LOADER_PATH}/include/link/win64/fmod.lib opengl32 ) diff --git a/loader/include/link/win64/gdstring.lib b/loader/include/link/win64/gdstring.lib deleted file mode 100644 index 574cceba7f9e0172f8d1516ebb47c105a1a28064..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36616 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 CLL7_$ From 64d9a289a340ee1783b265258050c185ee13b902 Mon Sep 17 00:00:00 2001 From: B1rtek <53182944+B1rtek@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:40:11 +0100 Subject: [PATCH 096/119] Web support for multiple headers with same name (#1150) Used for Set-Cookie, for example --- loader/include/Geode/utils/web.hpp | 13 ++++++++-- loader/src/utils/web.cpp | 40 ++++++++++++++++++++++-------- 2 files changed, 41 insertions(+), 12 deletions(-) diff --git a/loader/include/Geode/utils/web.hpp b/loader/include/Geode/utils/web.hpp index ad06e247..d762c724 100644 --- a/loader/include/Geode/utils/web.hpp +++ b/loader/include/Geode/utils/web.hpp @@ -83,6 +83,15 @@ namespace geode::utils::web { std::vector headers() const; std::optional header(std::string_view name) const; + + /** + * Retrieves a list of all headers from the response with a given name - there can be + * multiple headers with the same name, such as Set-Cookie, with each cookie in a separate + * header + * @param name name of the header + * @return std::optional> + */ + std::optional> getAllHeadersNamed(std::string_view name) const; }; class GEODE_DLL WebProgress final { @@ -286,9 +295,9 @@ namespace geode::utils::web { /** * Gets the request headers * - * @return std::unordered_map + * @return std::unordered_map> */ - std::unordered_map getHeaders() const; + std::unordered_map> getHeaders() const; /** * Gets the parameters inside the URL diff --git a/loader/src/utils/web.cpp b/loader/src/utils/web.cpp index d83f5388..e14ab106 100644 --- a/loader/src/utils/web.cpp +++ b/loader/src/utils/web.cpp @@ -96,7 +96,7 @@ class WebResponse::Impl { public: int m_code; ByteVector m_data; - std::unordered_map m_headers; + std::unordered_map> m_headers; Result<> into(std::filesystem::path const& path) const; }; @@ -146,8 +146,14 @@ std::vector WebResponse::headers() const { } std::optional WebResponse::header(std::string_view name) const { - auto str = std::string(name); - if (m_impl->m_headers.contains(str)) { + if (auto str = std::string(name); m_impl->m_headers.contains(str)) { + return m_impl->m_headers.at(str).at(0); + } + return std::nullopt; +} + +std::optional> WebResponse::getAllHeadersNamed(std::string_view name) const { + if (auto str = std::string(name); m_impl->m_headers.contains(str)) { return m_impl->m_headers.at(str); } return std::nullopt; @@ -189,7 +195,7 @@ public: std::string m_method; std::string m_url; - std::unordered_map m_headers; + std::unordered_map> m_headers; std::unordered_map m_urlParameters; std::optional m_userAgent; std::optional m_acceptEncodingType; @@ -270,15 +276,17 @@ WebTask WebRequest::send(std::string_view method, std::string_view url) { // Set headers curl_slist* headers = nullptr; - for (auto& [name, value] : impl->m_headers) { + for (auto& [name, values] : impl->m_headers) { // Sanitize header name auto header = name; header.erase(std::remove_if(header.begin(), header.end(), [](char c) { return c == '\r' || c == '\n'; }), header.end()); // Append value - header += ": " + value; - headers = curl_slist_append(headers, header.c_str()); + for (const auto& value: values) { + header += ": " + value; + headers = curl_slist_append(headers, header.c_str()); + } } curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); @@ -406,7 +414,12 @@ WebTask WebRequest::send(std::string_view method, std::string_view url) { if (value.ends_with('\r')) { value = value.substr(0, value.size() - 1); } - headers.insert_or_assign(key, value); + // Create a new vector and add to it or add to an already existing one + if (headers.contains(key)) { + headers.at(key).push_back(value); + } else { + headers.insert_or_assign(key, std::vector{value}); + } } return size * nitems; })); @@ -508,7 +521,14 @@ WebRequest& WebRequest::header(std::string_view name, std::string_view value) { } } - m_impl->m_headers.insert_or_assign(std::string(name), std::string(value)); + // Create a new vector and add to it or add to an already existing one + std::string strName = std::string(name); + std::string strValue = std::string(value); + if (m_impl->m_headers.contains(strName)) { + m_impl->m_headers.at(strName).push_back(strValue); + } else { + m_impl->m_headers.insert_or_assign(strName, std::vector{strValue}); + } return *this; } @@ -609,7 +629,7 @@ std::string WebRequest::getUrl() const { return m_impl->m_url; } -std::unordered_map WebRequest::getHeaders() const { +std::unordered_map> WebRequest::getHeaders() const { return m_impl->m_headers; } From da9209010846847195ea8e2faa67fd41462842a3 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Fri, 15 Nov 2024 14:42:52 -0300 Subject: [PATCH 097/119] change ModSettingsManager::save return type --- loader/include/Geode/loader/ModSettingsManager.hpp | 6 +----- loader/src/loader/ModImpl.cpp | 3 +-- loader/src/loader/ModSettingsManager.cpp | 4 ++-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/loader/include/Geode/loader/ModSettingsManager.hpp b/loader/include/Geode/loader/ModSettingsManager.hpp index 6f5db523..296b34bf 100644 --- a/loader/include/Geode/loader/ModSettingsManager.hpp +++ b/loader/include/Geode/loader/ModSettingsManager.hpp @@ -40,12 +40,8 @@ namespace geode { * The format of the savedata will be an object with the keys being * setting IDs and then the values the values of the saved settings * @note If saving a setting fails, it will log a warning to the console - * @warning This will overwrite the whole `json` parameter - be sure to - * pass the full settings savedata to `load()` so you can be sure that - * unregistered custom settings' saved values don't disappear! - * @todo in v4: make this return the value instead lol */ - void save(matjson::Value& json); + matjson::Value save(); /** * Get the savedata for settings, aka the JSON object that contains all diff --git a/loader/src/loader/ModImpl.cpp b/loader/src/loader/ModImpl.cpp index acd09801..f8e71ccf 100644 --- a/loader/src/loader/ModImpl.cpp +++ b/loader/src/loader/ModImpl.cpp @@ -210,8 +210,7 @@ Result<> Mod::Impl::saveData() { } // ModSettingsManager keeps track of the whole savedata - matjson::Value json; - m_settings->save(json); + matjson::Value json = m_settings->save(); // saveData is expected to be synchronous, and always called from GD thread ModStateEvent(m_self, ModEventType::DataSaved).post(); diff --git a/loader/src/loader/ModSettingsManager.cpp b/loader/src/loader/ModSettingsManager.cpp index 1ab4fb9e..d18b664e 100644 --- a/loader/src/loader/ModSettingsManager.cpp +++ b/loader/src/loader/ModSettingsManager.cpp @@ -214,12 +214,12 @@ Result<> ModSettingsManager::load(matjson::Value const& json) { } return Ok(); } -void ModSettingsManager::save(matjson::Value& json) { +matjson::Value ModSettingsManager::save() { for (auto& [key, _] : m_impl->settings) { m_impl->saveSettingValueToSave(key); } // Doing this since `ModSettingsManager` is expected to manage savedata fully - json = m_impl->savedata; + return m_impl->savedata; } matjson::Value& ModSettingsManager::getSaveData() { return m_impl->savedata; From 5592ef68c3f9c88a405ff60272c4d36b57a05910 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Fri, 15 Nov 2024 14:44:25 -0300 Subject: [PATCH 098/119] disable forward compat msgbox as it confuses users --- loader/src/load.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/loader/src/load.cpp b/loader/src/load.cpp index e6307133..afdd159e 100644 --- a/loader/src/load.cpp +++ b/loader/src/load.cpp @@ -67,13 +67,13 @@ void tryShowForwardCompat() { return; // TODO: change text later - console::messageBox( - "Forward Compatibility Warning", - "Geode is running in a newer version of GD than Geode targets.\n" - "UI is going to be disabled, platform console is forced on and crashes can be more common.\n" - "However, if your game crashes, it is probably caused by an outdated mod and not Geode itself.", - Severity::Warning - ); + // console::messageBox( + // "Forward Compatibility Warning", + // "Geode is running in a newer version of GD than Geode targets.\n" + // "UI is going to be disabled, platform console is forced on and crashes can be more common.\n" + // "However, if your game crashes, it is probably caused by an outdated mod and not Geode itself.", + // Severity::Warning + // ); Mod::get()->setSavedValue( "last-forward-compat-warn-popup-ver", From 1a201e1d65d1f8c4dbdd6a2ec66eb0254187cb3b Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:27:22 -0300 Subject: [PATCH 099/119] pimpl ColorPickPopup --- loader/include/Geode/ui/ColorPickPopup.hpp | 18 +- loader/src/ui/nodes/ColorPickPopup.cpp | 220 +++++++++------------ 2 files changed, 102 insertions(+), 136 deletions(-) diff --git a/loader/include/Geode/ui/ColorPickPopup.hpp b/loader/include/Geode/ui/ColorPickPopup.hpp index 8a0dc68d..66ffd22f 100644 --- a/loader/include/Geode/ui/ColorPickPopup.hpp +++ b/loader/include/Geode/ui/ColorPickPopup.hpp @@ -13,7 +13,7 @@ namespace geode { virtual void updateColor(cocos2d::ccColor4B const& color) {} }; - // todo in v4: make this pimpl and maybe use events over the delegate? + // todo in v4: maybe use events over the delegate? // thing with events is that if you just filter via ColorPickPopup* it // won't work unless you automatically detach the filter when closing the // popup (otherwise opening another popup really quickly will just be @@ -24,18 +24,8 @@ namespace geode { public cocos2d::extension::ColorPickerDelegate, public TextInputDelegate { protected: - cocos2d::ccColor4B m_color; - cocos2d::ccColor4B m_originalColor; - cocos2d::extension::CCControlColourPicker* m_picker; - Slider* m_opacitySlider = nullptr; - TextInput* m_rInput; - TextInput* m_gInput; - TextInput* m_bInput; - TextInput* m_hexInput; - TextInput* m_opacityInput = nullptr; - ColorPickPopupDelegate* m_delegate = nullptr; - cocos2d::CCSprite* m_newColorSpr; - CCMenuItemSpriteExtra* m_resetBtn; + class Impl; + std::unique_ptr m_impl; static constexpr auto TAG_OPACITY_INPUT = 0; static constexpr auto TAG_R_INPUT = 1; @@ -43,6 +33,8 @@ namespace geode { static constexpr auto TAG_B_INPUT = 3; static constexpr auto TAG_HEX_INPUT = 4; + ColorPickPopup(); + ~ColorPickPopup(); bool setup(cocos2d::ccColor4B const& color, bool isRGBA) override; void onOpacitySlider(cocos2d::CCObject* sender); diff --git a/loader/src/ui/nodes/ColorPickPopup.cpp b/loader/src/ui/nodes/ColorPickPopup.cpp index 49a0b4fc..b076533d 100644 --- a/loader/src/ui/nodes/ColorPickPopup.cpp +++ b/loader/src/ui/nodes/ColorPickPopup.cpp @@ -10,59 +10,33 @@ using namespace geode::prelude; -// class ColorPickPopupEvent::Impl final { -// public: -// ColorPickPopup* popup; -// ccColor4B color; -// bool closed = false; -// }; +class ColorPickPopup::Impl final { +public: + cocos2d::ccColor4B m_color; + cocos2d::ccColor4B m_originalColor; + cocos2d::extension::CCControlColourPicker* m_picker; + Slider* m_opacitySlider = nullptr; + TextInput* m_rInput; + TextInput* m_gInput; + TextInput* m_bInput; + TextInput* m_hexInput; + TextInput* m_opacityInput = nullptr; + ColorPickPopupDelegate* m_delegate = nullptr; + cocos2d::CCSprite* m_newColorSpr; + CCMenuItemSpriteExtra* m_resetBtn; +}; -// ColorPickPopupEvent::ColorPickPopupEvent(ColorPickPopup* popup, ccColor4B const& color) -// : m_impl(std::make_shared()) -// { -// m_impl->popup = popup; -// m_impl->color = color; -// } -// ColorPickPopupEvent::~ColorPickPopupEvent() = default; +ColorPickPopup::ColorPickPopup() { + m_impl = std::make_unique(); +} -// ColorPickPopup* ColorPickPopupEvent::getPopup() const { -// return m_impl->popup; -// } -// ccColor4B ColorPickPopupEvent::getColor() const { -// return m_impl->color; -// } -// bool ColorPickPopupEvent::isPopupClosed() const { -// return m_impl->closed; -// } +ColorPickPopup::~ColorPickPopup() {} -// class ColorPickPopupEventFilter::Impl final { -// public: -// ColorPickPopup* popup; -// }; - -// ListenerResult ColorPickPopupEventFilter::handle(std::function fn, ColorPickPopupEvent* event) { -// if (event->getPopup() == m_impl->popup) { -// if (event->isPopupClosed()) { -// m_impl->popup = nullptr; -// } -// else { -// fn(event); -// } -// } -// return ListenerResult::Propagate; -// } -// ColorPickPopupEventFilter::ColorPickPopupEventFilter() : ColorPickPopupEventFilter(nullptr) {} -// ColorPickPopupEventFilter::ColorPickPopupEventFilter(ColorPickPopup* popup) -// : m_impl(std::make_shared()) -// { -// m_impl->popup = popup; -// } -// ColorPickPopupEventFilter::~ColorPickPopupEventFilter() = default; bool ColorPickPopup::setup(ccColor4B const& color, bool isRGBA) { m_noElasticity = true; - m_color = color; - m_originalColor = color; + m_impl->m_color = color; + m_impl->m_originalColor = color; auto winSize = CCDirector::sharedDirector()->getWinSize(); @@ -115,25 +89,25 @@ bool ColorPickPopup::setup(ccColor4B const& color, bool isRGBA) { // picker - m_picker = CCControlColourPicker::colourPicker(); - m_picker->setDelegate(this); - m_picker->setID("color-picker"); + m_impl->m_picker = CCControlColourPicker::colourPicker(); + m_impl->m_picker->setDelegate(this); + m_impl->m_picker->setID("color-picker"); auto pickerWrapper = CCNode::create(); - pickerWrapper->setContentSize(m_picker->getContentSize()); + pickerWrapper->setContentSize(m_impl->m_picker->getContentSize()); pickerWrapper->setID("picker-wrapper"); - pickerWrapper->addChildAtPosition(m_picker, Anchor::Center, ccp(0, 0)); + pickerWrapper->addChildAtPosition(m_impl->m_picker, Anchor::Center, ccp(0, 0)); pickerRow->addChild(pickerWrapper); auto oldColorSpr = CCSprite::createWithSpriteFrameName("whiteSquare60_001.png"); - oldColorSpr->setColor(to3B(m_color)); + oldColorSpr->setColor(to3B(m_impl->m_color)); oldColorSpr->setID("old-color-spr"); colorMenu->addChild(oldColorSpr); - m_newColorSpr = CCSprite::createWithSpriteFrameName("whiteSquare60_001.png"); - m_newColorSpr->setColor(to3B(m_color)); - m_newColorSpr->setID("new-color-spr"); - colorMenu->addChild(m_newColorSpr); + m_impl->m_newColorSpr = CCSprite::createWithSpriteFrameName("whiteSquare60_001.png"); + m_impl->m_newColorSpr->setColor(to3B(m_impl->m_color)); + m_impl->m_newColorSpr->setID("new-color-spr"); + colorMenu->addChild(m_impl->m_newColorSpr); auto resetBtnSpr = ButtonSprite::create( CCSprite::createWithSpriteFrameName("reset-gold.png"_spr), 0x20, true, 0.f, @@ -141,16 +115,16 @@ bool ColorPickPopup::setup(ccColor4B const& color, bool isRGBA) { ); resetBtnSpr->setScale(.6f); - m_resetBtn = + m_impl->m_resetBtn = CCMenuItemSpriteExtra::create(resetBtnSpr, this, menu_selector(ColorPickPopup::onReset)); - m_resetBtn->setPosition({ -165.f, -50.f }); - m_resetBtn->setLayoutOptions( + m_impl->m_resetBtn->setPosition({ -165.f, -50.f }); + m_impl->m_resetBtn->setLayoutOptions( AxisLayoutOptions::create() ->setPrevGap(10.f) ->setNextGap(10.f) ); - m_resetBtn->setID("reset-btn"); - colorMenu->addChild(m_resetBtn); + m_impl->m_resetBtn->setID("reset-btn"); + colorMenu->addChild(m_impl->m_resetBtn); @@ -194,11 +168,11 @@ bool ColorPickPopup::setup(ccColor4B const& color, bool isRGBA) { rText->setID("r-text"); rColumn->addChild(rText); - m_rInput = TextInput::create(50.f, "R"); - m_rInput->setScale(.7f); - m_rInput->setDelegate(this, TAG_R_INPUT); - m_rInput->setID("r-input"); - rColumn->addChild(m_rInput); + m_impl->m_rInput = TextInput::create(50.f, "R"); + m_impl->m_rInput->setScale(.7f); + m_impl->m_rInput->setDelegate(this, TAG_R_INPUT); + m_impl->m_rInput->setID("r-input"); + rColumn->addChild(m_impl->m_rInput); rColumn->updateLayout(); auto rRect = calculateChildCoverage(rColumn); @@ -223,11 +197,11 @@ bool ColorPickPopup::setup(ccColor4B const& color, bool isRGBA) { gText->setID("g-text"); gColumn->addChild(gText); - m_gInput = TextInput::create(50.f, "G"); - m_gInput->setScale(.7f); - m_gInput->setDelegate(this, TAG_G_INPUT); - m_gInput->setID("g-input"); - gColumn->addChild(m_gInput); + m_impl->m_gInput = TextInput::create(50.f, "G"); + m_impl->m_gInput->setScale(.7f); + m_impl->m_gInput->setDelegate(this, TAG_G_INPUT); + m_impl->m_gInput->setID("g-input"); + gColumn->addChild(m_impl->m_gInput); gColumn->updateLayout(); auto gRect = calculateChildCoverage(gColumn); @@ -252,11 +226,11 @@ bool ColorPickPopup::setup(ccColor4B const& color, bool isRGBA) { bText->setID("b-text"); bColumn->addChild(bText); - m_bInput = TextInput::create(50.f, "B"); - m_bInput->setScale(.7f); - m_bInput->setDelegate(this, TAG_B_INPUT); - m_bInput->setID("b-input"); - bColumn->addChild(m_bInput); + m_impl->m_bInput = TextInput::create(50.f, "B"); + m_impl->m_bInput->setScale(.7f); + m_impl->m_bInput->setDelegate(this, TAG_B_INPUT); + m_impl->m_bInput->setID("b-input"); + bColumn->addChild(m_impl->m_bInput); bColumn->updateLayout(); auto bRect = calculateChildCoverage(bColumn); @@ -281,11 +255,11 @@ bool ColorPickPopup::setup(ccColor4B const& color, bool isRGBA) { hexText->setID("hex-text"); hexColumn->addChild(hexText); - m_hexInput = TextInput::create(165.f, "Hex"); - m_hexInput->setScale(.7f); - m_hexInput->setDelegate(this, TAG_HEX_INPUT); - m_hexInput->setID("hex-input"); - hexColumn->addChild(m_hexInput); + m_impl->m_hexInput = TextInput::create(165.f, "Hex"); + m_impl->m_hexInput->setScale(.7f); + m_impl->m_hexInput->setDelegate(this, TAG_HEX_INPUT); + m_impl->m_hexInput->setID("hex-input"); + hexColumn->addChild(m_impl->m_hexInput); hexColumn->updateLayout(); rgbRow->updateLayout(); @@ -324,22 +298,22 @@ bool ColorPickPopup::setup(ccColor4B const& color, bool isRGBA) { opacityText->setID("opacity-text"); sliderColumn->addChild(opacityText); - m_opacitySlider = + m_impl->m_opacitySlider = Slider::create(this, menu_selector(ColorPickPopup::onOpacitySlider), .75f); - m_opacitySlider->setValue(color.a / 255.f); - m_opacitySlider->setID("opacity-slider"); + m_impl->m_opacitySlider->setValue(color.a / 255.f); + m_impl->m_opacitySlider->setID("opacity-slider"); auto sliderWrapper = CCNode::create(); - sliderWrapper->setContentSize(ccp(m_opacitySlider->m_width, m_opacitySlider->m_height) * .75f); + sliderWrapper->setContentSize(ccp(m_impl->m_opacitySlider->m_width, m_impl->m_opacitySlider->m_height) * .75f); sliderWrapper->setID("slider-wrapper"); - sliderWrapper->addChildAtPosition(m_opacitySlider, Anchor::Center, ccp(0, 0)); + sliderWrapper->addChildAtPosition(m_impl->m_opacitySlider, Anchor::Center, ccp(0, 0)); sliderColumn->addChild(sliderWrapper); - m_opacityInput = TextInput::create(60.f, "Opacity"); - m_opacityInput->setScale(.7f); - m_opacityInput->setDelegate(this, TAG_OPACITY_INPUT); - m_opacityInput->setID("opacity-input"); - opacitySection->addChild(m_opacityInput); + m_impl->m_opacityInput = TextInput::create(60.f, "Opacity"); + m_impl->m_opacityInput->setScale(.7f); + m_impl->m_opacityInput->setDelegate(this, TAG_OPACITY_INPUT); + m_impl->m_opacityInput->setID("opacity-input"); + opacitySection->addChild(m_impl->m_opacityInput); sliderColumn->updateLayout(); opacitySection->updateLayout(); @@ -366,35 +340,35 @@ void ColorPickPopup::updateState(CCNode* except) { inp->setString(value, false); \ } - IF_NOT_EXCEPT(m_rInput, numToString(m_color.r)); - IF_NOT_EXCEPT(m_gInput, numToString(m_color.g)); - IF_NOT_EXCEPT(m_bInput, numToString(m_color.b)); - IF_NOT_EXCEPT(m_hexInput, cc3bToHexString(to3B(m_color))); - if (m_opacityInput) { - IF_NOT_EXCEPT(m_opacityInput, numToString(m_color.a / 255.f, 2)); + IF_NOT_EXCEPT(m_impl->m_rInput, numToString(m_impl->m_color.r)); + IF_NOT_EXCEPT(m_impl->m_gInput, numToString(m_impl->m_color.g)); + IF_NOT_EXCEPT(m_impl->m_bInput, numToString(m_impl->m_color.b)); + IF_NOT_EXCEPT(m_impl->m_hexInput, cc3bToHexString(to3B(m_impl->m_color))); + if (m_impl->m_opacityInput) { + IF_NOT_EXCEPT(m_impl->m_opacityInput, numToString(m_impl->m_color.a / 255.f, 2)); } - if (m_opacitySlider) { - m_opacitySlider->setValue(m_color.a / 255.f); + if (m_impl->m_opacitySlider) { + m_impl->m_opacitySlider->setValue(m_impl->m_color.a / 255.f); } - if (m_picker != except) { - m_picker->setDelegate(nullptr); - m_picker->setColorValue(to3B(m_color)); - m_picker->setDelegate(this); + if (m_impl->m_picker != except) { + m_impl->m_picker->setDelegate(nullptr); + m_impl->m_picker->setColorValue(to3B(m_impl->m_color)); + m_impl->m_picker->setDelegate(this); } - m_resetBtn->setVisible(m_originalColor != m_color); - m_newColorSpr->setColor(to3B(m_color)); - if (m_delegate) { - m_delegate->updateColor(m_color); + m_impl->m_resetBtn->setVisible(m_impl->m_originalColor != m_impl->m_color); + m_impl->m_newColorSpr->setColor(to3B(m_impl->m_color)); + if (m_impl->m_delegate) { + m_impl->m_delegate->updateColor(m_impl->m_color); } } void ColorPickPopup::onOpacitySlider(CCObject* sender) { - m_color.a = static_cast(static_cast(sender)->getValue() * 255.f); + m_impl->m_color.a = static_cast(static_cast(sender)->getValue() * 255.f); this->updateState(); } void ColorPickPopup::onReset(CCObject*) { - m_color = m_originalColor; + m_impl->m_color = m_impl->m_originalColor; this->updateState(); } @@ -404,32 +378,32 @@ void ColorPickPopup::textChanged(CCTextInputNode* input) { case TAG_HEX_INPUT: { if (auto color = cc3bFromHexString(input->getString(), true)) { - m_color.r = color.unwrap().r; - m_color.g = color.unwrap().g; - m_color.b = color.unwrap().b; + m_impl->m_color.r = color.unwrap().r; + m_impl->m_color.g = color.unwrap().g; + m_impl->m_color.b = color.unwrap().b; } } break; case TAG_OPACITY_INPUT: { auto res = numFromString(input->getString().c_str()); - if (res) m_color.a = std::clamp(static_cast(res.unwrap() * 255.f), 0, 255); + if (res) m_impl->m_color.a = std::clamp(static_cast(res.unwrap() * 255.f), 0, 255); break; } case TAG_R_INPUT: { auto res = numFromString(input->getString().c_str()); - if (res) m_color.r = std::clamp(res.unwrap(), 0u, 255u); + if (res) m_impl->m_color.r = std::clamp(res.unwrap(), 0u, 255u); break; } case TAG_G_INPUT: { auto res = numFromString(input->getString().c_str()); - if (res) m_color.g = std::clamp(res.unwrap(), 0u, 255u); + if (res) m_impl->m_color.g = std::clamp(res.unwrap(), 0u, 255u); break; } case TAG_B_INPUT: { auto res = numFromString(input->getString().c_str()); - if (res) m_color.b = std::clamp(res.unwrap(), 0u, 255u); + if (res) m_impl->m_color.b = std::clamp(res.unwrap(), 0u, 255u); break; } @@ -440,18 +414,18 @@ void ColorPickPopup::textChanged(CCTextInputNode* input) { } void ColorPickPopup::colorValueChanged(ccColor3B color) { - m_color.r = color.r; - m_color.g = color.g; - m_color.b = color.b; - this->updateState(m_picker); + m_impl->m_color.r = color.r; + m_impl->m_color.g = color.g; + m_impl->m_color.b = color.b; + this->updateState(m_impl->m_picker); } void ColorPickPopup::setDelegate(ColorPickPopupDelegate* delegate) { - m_delegate = delegate; + m_impl->m_delegate = delegate; } void ColorPickPopup::setColorTarget(cocos2d::CCSprite* spr) { - m_picker->setColorTarget(spr); + m_impl->m_picker->setColorTarget(spr); } ColorPickPopup* ColorPickPopup::create(ccColor4B const& color, bool isRGBA) { From 5645399a9f5d95ac9838f9d6b4d38cf8aa021891 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:38:14 -0300 Subject: [PATCH 100/119] allow building loader in debug mode on windows --- cmake/Platform.cmake | 23 ++++++++++++++++------- loader/include/link/win64/gd-libcurl.lib | Bin 0 -> 20662 bytes 2 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 loader/include/link/win64/gd-libcurl.lib diff --git a/cmake/Platform.cmake b/cmake/Platform.cmake index 557e4df9..08480a37 100644 --- a/cmake/Platform.cmake +++ b/cmake/Platform.cmake @@ -72,18 +72,27 @@ elseif (GEODE_TARGET_PLATFORM STREQUAL "Win64") target_link_libraries(${PROJECT_NAME} INTERFACE ${GEODE_LOADER_PATH}/include/link/win64/libcocos2d.lib ${GEODE_LOADER_PATH}/include/link/win64/libExtensions.lib - ${GEODE_LOADER_PATH}/include/link/win64/ssl.lib - ${GEODE_LOADER_PATH}/include/link/win64/crypto.lib - ${GEODE_LOADER_PATH}/include/link/win64/nghttp2.lib - ${GEODE_LOADER_PATH}/include/link/win64/ngtcp2.lib - ${GEODE_LOADER_PATH}/include/link/win64/nghttp3.lib - ${GEODE_LOADER_PATH}/include/link/win64/ngtcp2_crypto_boringssl.lib - ${GEODE_LOADER_PATH}/include/link/win64/libcurl.lib ${GEODE_LOADER_PATH}/include/link/win64/glew32.lib ${GEODE_LOADER_PATH}/include/link/win64/fmod.lib opengl32 ) + if (PROJECT_IS_TOP_LEVEL AND CMAKE_BUILD_TYPE STREQUAL "Debug") + target_link_libraries(${PROJECT_NAME} INTERFACE + ${GEODE_LOADER_PATH}/include/link/win64/gd-libcurl.lib + ) + else() + target_link_libraries(${PROJECT_NAME} INTERFACE + ${GEODE_LOADER_PATH}/include/link/win64/ssl.lib + ${GEODE_LOADER_PATH}/include/link/win64/crypto.lib + ${GEODE_LOADER_PATH}/include/link/win64/nghttp2.lib + ${GEODE_LOADER_PATH}/include/link/win64/ngtcp2.lib + ${GEODE_LOADER_PATH}/include/link/win64/nghttp3.lib + ${GEODE_LOADER_PATH}/include/link/win64/ngtcp2_crypto_boringssl.lib + ${GEODE_LOADER_PATH}/include/link/win64/libcurl.lib + ) + endif() + # Windows links against .lib and not .dll set(GEODE_OUTPUT_NAME "Geode") set(GEODE_PLATFORM_BINARY "Geode.lib") diff --git a/loader/include/link/win64/gd-libcurl.lib b/loader/include/link/win64/gd-libcurl.lib new file mode 100644 index 0000000000000000000000000000000000000000..ca43d10ef2ba26152adda474e21a59a16517076e GIT binary patch literal 20662 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 Date: Fri, 15 Nov 2024 16:43:36 -0300 Subject: [PATCH 101/119] use fmtlib instead of sstream in numToString and intToHex --- loader/include/Geode/utils/general.hpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/loader/include/Geode/utils/general.hpp b/loader/include/Geode/utils/general.hpp index 27844896..c00a258b 100644 --- a/loader/include/Geode/utils/general.hpp +++ b/loader/include/Geode/utils/general.hpp @@ -5,7 +5,6 @@ #include "../DefaultInclude.hpp" #include #include -#include #include #include #include @@ -64,9 +63,7 @@ namespace geode { template std::string intToHex(T i) { - std::stringstream stream; - stream << std::showbase << std::setbase(16) << (uint64_t)i; - return stream.str(); + return fmt::format("{:#x}", i); } /** @@ -75,15 +72,16 @@ namespace geode { * @param num Number to convert to string * @param precision Precision of the converted number * @returns Number as string + * @note Precision has no effect on integers */ template std::string numToString(Num num, size_t precision = 0) { - std::stringstream ss; - if (precision) { - ss << std::fixed << std::setprecision(precision); + if constexpr (std::is_floating_point_v) { + if (precision) { + return fmt::format("{:.{}f}", num, precision); + } } - ss << num; - return ss.str(); + return fmt::to_string(num); } /** From 3081164600532274b12537d63d85fed9d964409c Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:45:06 -0300 Subject: [PATCH 102/119] only send delegate update on closing ColorPickPopup --- loader/include/Geode/ui/ColorPickPopup.hpp | 1 + loader/src/ui/nodes/ColorPickPopup.cpp | 18 +++++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/loader/include/Geode/ui/ColorPickPopup.hpp b/loader/include/Geode/ui/ColorPickPopup.hpp index 66ffd22f..5a1b298d 100644 --- a/loader/include/Geode/ui/ColorPickPopup.hpp +++ b/loader/include/Geode/ui/ColorPickPopup.hpp @@ -39,6 +39,7 @@ namespace geode { void onOpacitySlider(cocos2d::CCObject* sender); void onReset(cocos2d::CCObject* sender); + void onClose(cocos2d::CCObject* sender) override; void textChanged(CCTextInputNode* input) override; void colorValueChanged(cocos2d::ccColor3B color) override; diff --git a/loader/src/ui/nodes/ColorPickPopup.cpp b/loader/src/ui/nodes/ColorPickPopup.cpp index b076533d..117f9ddf 100644 --- a/loader/src/ui/nodes/ColorPickPopup.cpp +++ b/loader/src/ui/nodes/ColorPickPopup.cpp @@ -335,10 +335,10 @@ bool ColorPickPopup::setup(ccColor4B const& color, bool isRGBA) { } void ColorPickPopup::updateState(CCNode* except) { -#define IF_NOT_EXCEPT(inp, value) \ - if (inp->getInputNode() != except) { \ - inp->setString(value, false); \ - } + #define IF_NOT_EXCEPT(inp, value) \ + if (inp->getInputNode() != except) { \ + inp->setString(value, false); \ + } IF_NOT_EXCEPT(m_impl->m_rInput, numToString(m_impl->m_color.r)); IF_NOT_EXCEPT(m_impl->m_gInput, numToString(m_impl->m_color.g)); @@ -357,9 +357,6 @@ void ColorPickPopup::updateState(CCNode* except) { } m_impl->m_resetBtn->setVisible(m_impl->m_originalColor != m_impl->m_color); m_impl->m_newColorSpr->setColor(to3B(m_impl->m_color)); - if (m_impl->m_delegate) { - m_impl->m_delegate->updateColor(m_impl->m_color); - } } void ColorPickPopup::onOpacitySlider(CCObject* sender) { @@ -372,6 +369,13 @@ void ColorPickPopup::onReset(CCObject*) { this->updateState(); } +void ColorPickPopup::onClose(CCObject* sender) { + if (m_impl->m_delegate) { + m_impl->m_delegate->updateColor(m_impl->m_color); + } + Popup::onClose(sender); +} + void ColorPickPopup::textChanged(CCTextInputNode* input) { if (input->getString().size()) { switch (input->getTag()) { From 9fe3d133e93191d6225f2521b0714788293995c6 Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Fri, 15 Nov 2024 17:15:17 -0300 Subject: [PATCH 103/119] beta.1 perhaps --- CHANGELOG.md | 12 +++++++++++- VERSION | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8239daf..9137aa40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,25 @@ # Geode Changelog -## v4.0.0-alpha.2 +## v4.0.0-beta.1 * Button to manually install mods from files (e881dc5) * Add `ModRequestedAction::Update` (e881dc5) * Add `ModMetadata::checkGeodeVersion` and `ModMetadata::checkTargetVersions` (e881dc5) * Add `geode::createModLogo` for creating a logo from a `.geode` package (e881dc5) * Tags now use names provided by the server (893b03e) + * Add web support for multiple request headers with same name (#1150) * Fix `Task::chain` using the wrong type in the impl (22a11b9) * Fix installing mods not checking the current version (#1148) + * Fix searching for mods ignoring geode and gd version (#1153) * Fix crash when checking tags (01807fe) * Fix 'Outdated' label being visible while updating (6679a69) + * Fix log nesting issue (0e8d4c6) + * Remove forward compat message box as it confuses users (5592ef6) + * Fix crash on opening mod changelogs (9834cb2) + * Make `ColorPickPopup` pimpl (1a201e1) + * Fix lag issue in `ColorPickPopup` (3081164) + * Change return type of `ModSettingsManager::save` (da92090) + * Fix every misspelling of successfully (#1151) + * Allow building geode itself in debug mode (5645399) ## v4.0.0-alpha.1 * Support for the 2.2074 update diff --git a/VERSION b/VERSION index 166af730..a35737f9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.0.0-alpha.1 +4.0.0-beta.1 From f6c23220d84950db0673d317a6fc98eda6cf5051 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sat, 16 Nov 2024 01:10:43 +0200 Subject: [PATCH 104/119] fix VersionInfo toJSON --- loader/include/Geode/utils/VersionInfo.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/include/Geode/utils/VersionInfo.hpp b/loader/include/Geode/utils/VersionInfo.hpp index 646ea423..b826570b 100644 --- a/loader/include/Geode/utils/VersionInfo.hpp +++ b/loader/include/Geode/utils/VersionInfo.hpp @@ -266,6 +266,6 @@ struct matjson::Serialize { } static Value toJson(V const& value) { - return Value(value.toString()); + return Value(value.toNonVString()); } }; From d6f0c597f19ed12c0a632205e94d47b180286bef Mon Sep 17 00:00:00 2001 From: Cvolton Date: Sat, 16 Nov 2024 00:19:03 +0100 Subject: [PATCH 105/119] add GEODE_DESKTOP GEODE_MOBILE macros --- loader/include/Geode/platform/cplatform.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/loader/include/Geode/platform/cplatform.h b/loader/include/Geode/platform/cplatform.h index 54676313..592b55e7 100644 --- a/loader/include/Geode/platform/cplatform.h +++ b/loader/include/Geode/platform/cplatform.h @@ -11,6 +11,8 @@ #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) || defined(WIN64) || defined(_WIN64) || defined(__WIN64) && !defined(__CYGWIN__) #define GEODE_WINDOWS(...) __VA_ARGS__ + #define GEODE_DESKTOP(...) __VA_ARGS__ + #define GEODE_MOBILE(...) #define GEODE_IS_WINDOWS #define GEODE_IS_DESKTOP #define GEODE_PLATFORM_NAME "Windows" @@ -43,6 +45,8 @@ #define GEODE_INTEL_MAC(...) #define GEODE_ARM_MAC(...) #define GEODE_IOS(...) __VA_ARGS__ + #define GEODE_DESKTOP(...) + #define GEODE_MOBILE(...) __VA_ARGS__ #define GEODE_IS_IOS #define GEODE_IS_MOBILE #define GEODE_PLATFORM_NAME "iOS" @@ -53,6 +57,8 @@ #else #define GEODE_IOS(...) #define GEODE_MACOS(...) __VA_ARGS__ + #define GEODE_DESKTOP(...) __VA_ARGS__ + #define GEODE_MOBILE(...) #define GEODE_IS_MACOS #define GEODE_IS_DESKTOP #define GEODE_PLATFORM_EXTENSION ".dylib" @@ -84,6 +90,8 @@ // Android #if defined(__ANDROID__) #define GEODE_ANDROID(...) __VA_ARGS__ + #define GEODE_MOBILE(...) __VA_ARGS__ + #define GEODE_DESKTOP(...) #define GEODE_IS_ANDROID #define GEODE_IS_MOBILE #define GEODE_CALL From 22210956bb82f7bb0d7d196896e8fb8b29e1f942 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Sat, 16 Nov 2024 13:01:22 +0300 Subject: [PATCH 106/119] fix nest issues on errors --- loader/include/Geode/loader/Log.hpp | 31 +++++++ loader/src/hooks/save.cpp | 4 +- loader/src/load.cpp | 55 ++++++------ loader/src/loader/LoaderImpl.cpp | 132 ++++++++++++---------------- loader/test/main/main.cpp | 21 ++--- 5 files changed, 126 insertions(+), 117 deletions(-) diff --git a/loader/include/Geode/loader/Log.hpp b/loader/include/Geode/loader/Log.hpp index 563776ec..5142b4b3 100644 --- a/loader/include/Geode/loader/Log.hpp +++ b/loader/include/Geode/loader/Log.hpp @@ -114,6 +114,37 @@ namespace geode { popNest(getMod()); } + struct NestScope { + private: + bool m_active = true; + public: + NestScope() { + pushNest(); + } + + NestScope(NestScope const&) { + pushNest(); + } + + NestScope(NestScope&& other) { + other.m_active = false; + } + + NestScope& operator=(NestScope const&) { + pushNest(); + return *this; + } + + NestScope& operator=(NestScope&& other) { + other.m_active = false; + return *this; + } + + ~NestScope() { + if (m_active) popNest(); + } + }; + class Nest final { private: class Impl; diff --git a/loader/src/hooks/save.cpp b/loader/src/hooks/save.cpp index e3a9ac95..f6c482b3 100644 --- a/loader/src/hooks/save.cpp +++ b/loader/src/hooks/save.cpp @@ -8,7 +8,7 @@ using namespace geode::prelude; namespace { void saveModData() { log::info("Saving mod data..."); - log::pushNest(); + log::NestScope nest; auto begin = std::chrono::high_resolution_clock::now(); @@ -17,8 +17,6 @@ namespace { auto end = std::chrono::high_resolution_clock::now(); auto time = std::chrono::duration_cast(end - begin).count(); log::info("Took {}s", static_cast(time) / 1000.f); - - log::popNest(); } } diff --git a/loader/src/load.cpp b/loader/src/load.cpp index afdd159e..a2f32f8c 100644 --- a/loader/src/load.cpp +++ b/loader/src/load.cpp @@ -138,17 +138,18 @@ int geodeEntry(void* platformData) { // set up internal mod, settings and data log::info("Setting up internal mod"); - log::pushNest(); - auto internalSetupRes = LoaderImpl::get()->setupInternalMod(); - log::popNest(); - if (!internalSetupRes) { - console::messageBox( - "Unable to Load Geode!", - "There was a fatal error setting up " - "the internal mod and Geode can not be loaded: " + internalSetupRes.unwrapErr() - ); - LoaderImpl::get()->forceReset(); - return 1; + { + log::NestScope nest; + auto internalSetupRes = LoaderImpl::get()->setupInternalMod(); + if (!internalSetupRes) { + console::messageBox( + "Unable to Load Geode!", + "There was a fatal error setting up " + "the internal mod and Geode can not be loaded: " + internalSetupRes.unwrapErr() + ); + LoaderImpl::get()->forceReset(); + return 1; + } } tryShowForwardCompat(); @@ -161,26 +162,28 @@ int geodeEntry(void* platformData) { // set up loader, load mods, etc. log::info("Setting up loader"); - log::pushNest(); - auto setupRes = LoaderImpl::get()->setup(); - log::popNest(); - if (!setupRes) { - console::messageBox( - "Unable to Load Geode!", - "There was an unknown fatal error setting up " - "the loader and Geode can not be loaded. " - "(" + setupRes.unwrapErr() + ")" - ); - LoaderImpl::get()->forceReset(); - return 1; + { + log::NestScope nest; + auto setupRes = LoaderImpl::get()->setup(); + if (!setupRes) { + console::messageBox( + "Unable to Load Geode!", + "There was an unknown fatal error setting up " + "the loader and Geode can not be loaded. " + "(" + setupRes.unwrapErr() + ")" + ); + LoaderImpl::get()->forceReset(); + return 1; + } } crashlog::setupPlatformHandlerPost(); log::debug("Setting up IPC"); - log::pushNest(); - ipc::setup(); - log::popNest(); + { + log::NestScope nest; + ipc::setup(); + } // download and install new loader update in the background diff --git a/loader/src/loader/LoaderImpl.cpp b/loader/src/loader/LoaderImpl.cpp index d878a564..dbd6163e 100644 --- a/loader/src/loader/LoaderImpl.cpp +++ b/loader/src/loader/LoaderImpl.cpp @@ -81,35 +81,32 @@ Result<> Loader::Impl::setup() { if (this->supportsLaunchArguments()) { log::debug("Loading launch arguments"); - log::pushNest(); + log::NestScope nest; this->initLaunchArguments(); - log::popNest(); } // on some platforms, using the crash handler overrides more convenient native handlers if (!this->getLaunchFlag("disable-crash-handler")) { log::debug("Setting up crash handler"); - log::pushNest(); + log::NestScope nest; if (!crashlog::setupPlatformHandler()) { log::debug("Failed to set up crash handler"); } - log::popNest(); } else { log::debug("Crash handler setup skipped"); } log::debug("Loading hooks"); - log::pushNest(); - if (!this->loadHooks()) { + if (log::NestScope nest; !this->loadHooks()) { return Err("There were errors loading some hooks, see console for details"); } - log::popNest(); log::debug("Setting up directories"); - log::pushNest(); - this->createDirectories(); - this->addSearchPaths(); - log::popNest(); + { + log::NestScope nest; + this->createDirectories(); + this->addSearchPaths(); + } // Trigger on_mod(Loaded) for the internal mod // this function is already on the gd thread, so this should be fine @@ -129,7 +126,7 @@ void Loader::Impl::addSearchPaths() { void Loader::Impl::updateResources(bool forceReload) { log::debug("Adding resources"); - log::pushNest(); + log::NestScope nest; for (auto const& [_, mod] : m_mods) { if (!forceReload && ModImpl::getImpl(mod)->m_resourcesLoaded) continue; @@ -140,7 +137,6 @@ void Loader::Impl::updateResources(bool forceReload) { // we have to call it in both places since setup is only called once ever, but updateResources is called // on every texture reload CCFileUtils::get()->updatePaths(); - log::popNest(); } std::vector Loader::Impl::getAllMods() { @@ -178,24 +174,22 @@ bool Loader::Impl::isModVersionSupported(VersionInfo const& target) { void Loader::Impl::saveData() { for (auto& [id, mod] : m_mods) { log::debug("{}", mod->getID()); - log::pushNest(); + log::NestScope nest; auto r = mod->saveData(); if (!r) { log::warn("Unable to save data for mod \"{}\": {}", mod->getID(), r.unwrapErr()); } - log::popNest(); } } void Loader::Impl::loadData() { for (auto& [_, mod] : m_mods) { log::debug("{}", mod->getID()); - log::pushNest(); + log::NestScope nest; auto r = mod->loadData(); if (!r) { log::warn("Unable to load data for mod \"{}\": {}", mod->getID(), r.unwrapErr()); } - log::popNest(); } } @@ -238,7 +232,7 @@ void Loader::Impl::updateModResources(Mod* mod) { return; log::debug("{}", mod->getID()); - log::pushNest(); + log::NestScope nest; for (auto const& sheet : mod->getMetadata().getSpritesheets()) { log::debug("Adding sheet {}", sheet); @@ -258,8 +252,6 @@ void Loader::Impl::updateModResources(Mod* mod) { CCSpriteFrameCache::get()->addSpriteFramesWithFile(plist.c_str()); } } - - log::popNest(); } void Loader::Impl::addProblem(LoadProblem const& problem) { @@ -275,14 +267,14 @@ void Loader::Impl::addProblem(LoadProblem const& problem) { void Loader::Impl::queueMods(std::vector& modQueue) { for (auto const& dir : m_modSearchDirectories) { log::debug("Searching {}", dir); - log::pushNest(); + log::NestScope nest; for (auto const& entry : std::filesystem::directory_iterator(dir)) { if (!std::filesystem::is_regular_file(entry) || entry.path().extension() != GEODE_MOD_EXTENSION) continue; log::debug("Found {}", entry.path().filename()); - log::pushNest(); + log::NestScope nest; auto res = ModMetadata::createFromGeodeFile(entry.path()); if (!res) { @@ -292,7 +284,6 @@ void Loader::Impl::queueMods(std::vector& modQueue) { res.unwrapErr() }); log::error("Failed to queue: {}", res.unwrapErr()); - log::popNest(); continue; } auto modMetadata = res.unwrap(); @@ -310,14 +301,11 @@ void Loader::Impl::queueMods(std::vector& modQueue) { "A mod with the same ID is already present." }); log::error("Failed to queue: a mod with the same ID is already queued"); - log::popNest(); continue; } modQueue.push_back(modMetadata); - log::popNest(); } - log::popNest(); } } @@ -335,7 +323,7 @@ void Loader::Impl::populateModList(std::vector& modQueue) { for (auto const& metadata : modQueue) { log::debug("{} {}", metadata.getID(), metadata.getVersion()); - log::pushNest(); + log::NestScope nest; auto mod = new Mod(metadata); @@ -347,20 +335,17 @@ void Loader::Impl::populateModList(std::vector& modQueue) { res.unwrapErr() }); log::error("Failed to set up: {}", res.unwrapErr()); - log::popNest(); continue; } m_mods.insert({metadata.getID(), mod}); - - log::popNest(); } } void Loader::Impl::buildModGraph() { for (auto const& [id, mod] : m_mods) { log::debug("{}", mod->getID()); - log::pushNest(); + log::NestScope nest; for (auto& dependency : mod->m_impl->m_metadata.m_impl->m_dependencies) { log::debug("{}", dependency.id); if (!m_mods.contains(dependency.id)) { @@ -387,7 +372,6 @@ void Loader::Impl::buildModGraph() { incompatibility.mod = m_mods.contains(incompatibility.id) ? m_mods[incompatibility.id] : nullptr; } - log::popNest(); } } @@ -404,7 +388,6 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { res.unwrapErr() }); log::error("{}", res.unwrapErr()); - log::popNest(); return; } @@ -418,7 +401,6 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { geodeVerRes.unwrapErr() }); log::error("{}", geodeVerRes.unwrapErr()); - log::popNest(); return; } @@ -431,12 +413,10 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { return; } - log::debug("{} {}", node->getID(), node->getVersion()); - log::pushNest(); + log::NestScope nest; if (node->isEnabled()) { log::warn("Mod {} already loaded, this should never happen", node->getID()); - log::popNest(); return; } @@ -447,6 +427,7 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { auto unzipFunction = [this, node]() { log::debug("Unzip"); + log::NestScope nest; auto res = node->m_impl->unzipGeodeFile(node->getMetadata()); return res; }; @@ -454,6 +435,7 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { auto loadFunction = [this, node, early]() { if (node->shouldLoad()) { log::debug("Load"); + log::NestScope nest; auto res = node->m_impl->loadBinary(); if (!res) { this->addProblem({ @@ -479,7 +461,6 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { }); log::error("{}", reason.value()); m_refreshingModCount -= 1; - log::popNest(); return; } } @@ -494,7 +475,6 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { }); log::error("Failed to unzip: {}", res.unwrapErr()); m_refreshingModCount -= 1; - log::popNest(); return; } loadFunction(); @@ -524,7 +504,6 @@ void Loader::Impl::loadModGraph(Mod* node, bool early) { }); }).detach(); } - log::popNest(); } void Loader::Impl::findProblems() { @@ -538,7 +517,7 @@ void Loader::Impl::findProblems() { continue; } log::debug("{}", id); - log::pushNest(); + log::NestScope nest; for (auto const& dep : mod->getMetadata().getDependencies()) { if (dep.mod && dep.mod->isEnabled() && dep.version.compare(dep.mod->getVersion())) @@ -665,18 +644,15 @@ void Loader::Impl::findProblems() { }); log::error("{} failed to load for an unknown reason", id); } - - log::popNest(); } } void Loader::Impl::refreshModGraph() { log::info("Refreshing mod graph"); - log::pushNest(); + log::NestScope nest; if (m_isSetup) { log::error("Cannot refresh mod graph after startup"); - log::popNest(); return; } @@ -686,48 +662,51 @@ void Loader::Impl::refreshModGraph() { m_loadingState = LoadingState::Queue; log::debug("Queueing mods"); - log::pushNest(); std::vector modQueue; - this->queueMods(modQueue); - log::popNest(); + { + log::NestScope nest; + this->queueMods(modQueue); + } m_loadingState = LoadingState::List; log::debug("Populating mod list"); - log::pushNest(); - this->populateModList(modQueue); - modQueue.clear(); - log::popNest(); + { + log::NestScope nest; + this->populateModList(modQueue); + modQueue.clear(); + } m_loadingState = LoadingState::Graph; log::debug("Building mod graph"); - log::pushNest(); - this->buildModGraph(); - log::popNest(); + { + log::NestScope nest; + this->buildModGraph(); + } log::debug("Ordering mod stack"); - log::pushNest(); - this->orderModStack(); - log::popNest(); + { + log::NestScope nest; + this->orderModStack(); + } m_loadingState = LoadingState::EarlyMods; log::debug("Loading early mods"); - log::pushNest(); - while (!m_modsToLoad.empty() && m_modsToLoad.front()->needsEarlyLoad()) { - auto mod = m_modsToLoad.front(); - m_modsToLoad.pop_front(); - this->loadModGraph(mod, true); + { + log::NestScope nest; + while (!m_modsToLoad.empty() && m_modsToLoad.front()->needsEarlyLoad()) { + auto mod = m_modsToLoad.front(); + m_modsToLoad.pop_front(); + this->loadModGraph(mod, true); + } } - log::popNest(); auto end = std::chrono::high_resolution_clock::now(); auto time = std::chrono::duration_cast(end - begin).count(); log::info("Took {}s. Continuing next frame...", static_cast(time) / 1000.f); - log::popNest(); - m_loadingState = LoadingState::Mods; - queueInMainThread([&]() { + queueInMainThread([this]() { this->continueRefreshModGraph(); }); } @@ -781,7 +760,7 @@ void Loader::Impl::orderModStack() { void Loader::Impl::continueRefreshModGraph() { if (m_refreshingModCount != 0) { - queueInMainThread([&]() { + queueInMainThread([this]() { this->continueRefreshModGraph(); }); return; @@ -794,28 +773,27 @@ void Loader::Impl::continueRefreshModGraph() { } log::info("Continuing mod graph refresh..."); - log::pushNest(); + log::NestScope nest; m_timerBegin = std::chrono::high_resolution_clock::now(); switch (m_loadingState) { case LoadingState::Mods: if (!m_modsToLoad.empty()) { - log::debug("Loading mods"); - log::pushNest(); auto mod = m_modsToLoad.front(); m_modsToLoad.pop_front(); + log::debug("Loading mod {} {}", mod->getID(), mod->getVersion()); this->loadModGraph(mod, false); - log::popNest(); break; } m_loadingState = LoadingState::Problems; [[fallthrough]]; case LoadingState::Problems: log::debug("Finding problems"); - log::pushNest(); - this->findProblems(); - log::popNest(); + { + log::NestScope nest; + this->findProblems(); + } m_loadingState = LoadingState::Done; { auto end = std::chrono::high_resolution_clock::now(); @@ -831,12 +809,10 @@ void Loader::Impl::continueRefreshModGraph() { } if (m_loadingState != LoadingState::Done) { - queueInMainThread([&]() { + queueInMainThread([this]() { this->continueRefreshModGraph(); }); } - - log::popNest(); } std::vector Loader::Impl::getProblems() const { diff --git a/loader/test/main/main.cpp b/loader/test/main/main.cpp index af1a2beb..578bd210 100644 --- a/loader/test/main/main.cpp +++ b/loader/test/main/main.cpp @@ -39,23 +39,24 @@ struct $modify(MenuLayer) { // Launch arguments log::info("Testing launch args..."); - log::pushNest(); + log::NestScope nest; log::info("For global context:"); - log::pushNest(); - for (const auto& arg : Loader::get()->getLaunchArgumentNames()) { - log::info("{}", arg); + { + log::NestScope nest; + for (const auto& arg : Loader::get()->getLaunchArgumentNames()) { + log::info("{}", arg); + } } - log::popNest(); log::info("For this mod:"); - log::pushNest(); - for (const auto& arg : Mod::get()->getLaunchArgumentNames()) { - log::info("{}", arg); + { + log::NestScope nest; + for (const auto& arg : Mod::get()->getLaunchArgumentNames()) { + log::info("{}", arg); + } } - log::popNest(); log::info("Mod has launch arg 'mod-arg': {}", Mod::get()->hasLaunchArgument("mod-arg")); log::info("Loader flag 'bool-arg': {}", Loader::get()->getLaunchFlag("bool-arg")); log::info("Loader int 'int-arg': {}", Loader::get()->parseLaunchArgument("int-arg").unwrapOr(0)); - log::popNest(); return true; } From 17bf7722c90dbdc52cb8a54a89cb774815eca03a Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Sat, 16 Nov 2024 14:53:21 +0300 Subject: [PATCH 107/119] fix before/after priority stuff --- loader/include/Geode/modify/Modify.hpp | 185 +++++++++++++++---------- loader/test/dependency/main.cpp | 32 +++++ loader/test/main/main.cpp | 2 + 3 files changed, 147 insertions(+), 72 deletions(-) diff --git a/loader/include/Geode/modify/Modify.hpp b/loader/include/Geode/modify/Modify.hpp index 650e6fc8..b58d2e73 100644 --- a/loader/include/Geode/modify/Modify.hpp +++ b/loader/include/Geode/modify/Modify.hpp @@ -145,18 +145,19 @@ namespace geode::modifier { /// @brief Get a hook by name /// @param name The name of the hook to get /// @returns Ok if the hook was found, Err if the hook was not found - Result getHook(std::string const& name) { - if (m_hooks.find(name) == m_hooks.end()) { + Result getHook(std::string_view name) { + auto key = std::string(name); + if (m_hooks.find(key) == m_hooks.end()) { return Err("Hook not in this modify"); } - return Ok(m_hooks[name].get()); + return Ok(m_hooks[key].get()); } /// @brief Set the priority of a hook /// @param name The name of the hook to set the priority of /// @param priority The priority to set the hook to /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found - Result<> setHookPriority(std::string const& name, int32_t priority = Priority::Normal) { + Result<> setHookPriority(std::string_view name, int32_t priority = Priority::Normal) { GEODE_UNWRAP_INTO(auto hook, this->getHook(name)); hook->setPriority(priority); return Ok(); @@ -166,7 +167,7 @@ namespace geode::modifier { /// @param name The name of the hook to set the priority of /// @param priority The priority to set the hook to /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found - Result<> setHookPriorityPre(std::string const& name, int32_t priority = Priority::Normal) { + Result<> setHookPriorityPre(std::string_view name, int32_t priority = Priority::Normal) { return this->setHookPriority(name, priority); } @@ -174,104 +175,144 @@ namespace geode::modifier { /// @param name The name of the hook to set the priority of /// @param priority The priority to set the hook to /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found - Result<> setHookPriorityPost(std::string const& name, int32_t priority = Priority::Normal) { + Result<> setHookPriorityPost(std::string_view name, int32_t priority = Priority::Normal) { return this->setHookPriority(name, -priority); } /// @brief Set the priority of a hook to be after another hook in different mods /// @param name The name of the hook to set the priority of - /// @param after The mod ids of the mods to set the priority after + /// @param after The mod to set the priority after /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found - template requires (std::is_convertible_v && ...) - Result<> setHookPriorityAfter(std::string const& name, C&&... after) { + Result<> setHookPriorityAfter(std::string_view name, Mod* mod) { GEODE_UNWRAP_INTO(auto hook, this->getHook(name)); - ([&](){ - auto mod = Loader::get()->getInstalledMod(after); - if (!mod) return; + auto func = [=](ModStateEvent* event){ auto hooks = mod->getHooks(); - auto func = [=](){ - for (auto modHook : hooks) { - if (modHook->getAddress() != hook->getAddress()) continue; - auto priority = hook->getPriority(); - if (priority < modHook->getPriority()) { - hook->setPriority(modHook->getPriority() + 1); - } + for (auto modHook : hooks) { + if (modHook->getAddress() != hook->getAddress()) continue; + auto priority = modHook->getPriority(); + if (hook->getPriority() <= priority) { + hook->setPriority(priority + 1); } - }; - if (Loader::get()->isModLoaded(mod)) { - func(); } - else { - new EventListener(func, ModStateFilter(mod, ModEventType::Loaded)); - } - } (), ...); - return Ok(); - } - - /// @brief Set the priority of a hook to be before another hook in different mods - /// @param name The name of the hook to set the priority of - /// @param before The mod ids of the mods to set the priority before - /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found - template requires (std::is_convertible_v && ...) - Result<> setHookPriorityBefore(std::string const& name, C&&... before) { - GEODE_UNWRAP_INTO(auto hook, this->getHook(name)); - ([&](){ - auto mod = Loader::get()->getInstalledMod(before); - if (!mod) return; - auto hooks = mod->getHooks(); - auto func = [=](){ - for (auto modHook : hooks) { - if (modHook->getAddress() != hook->getAddress()) continue; - auto priority = hook->getPriority(); - if (priority > modHook->getPriority()) { - hook->setPriority(modHook->getPriority() - 1); - } - } - }; - if (Loader::get()->isModLoaded(mod)) { - func(); - } - else { - new EventListener(func, ModStateFilter(mod, ModEventType::Loaded)); - } - } (), ...); + return ListenerResult::Propagate; + }; + if (mod->isEnabled()) { + func(nullptr); + } + else { + new EventListener(func, ModStateFilter(mod, ModEventType::Loaded)); + } return Ok(); } /// @brief Set the priority of a hook to be after another hook in different mods /// @param name The name of the hook to set the priority of - /// @param after The mod ids of the mods to set the priority after + /// @param after The mod id of the mod to set the priority after /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found - template requires (std::is_convertible_v && ...) - Result<> setHookPriorityAfterPre(std::string const& name, C&&... after) { - return this->setHookPriorityAfter(name, Priority::NormalPre, std::forward(after)...); + Result<> setHookPriorityAfter(std::string_view name, std::string_view after) { + auto mod = Loader::get()->getInstalledMod(std::string(after)); + if (!mod) return Err("Mod not found"); + return this->setHookPriorityAfter(name, mod); } /// @brief Set the priority of a hook to be before another hook in different mods /// @param name The name of the hook to set the priority of - /// @param before The mod ids of the mods to set the priority before + /// @param before The mod to set the priority before /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found - template requires (std::is_convertible_v && ...) - Result<> setHookPriorityBeforePre(std::string const& name, C&&... before) { - return this->setHookPriorityBefore(name, Priority::NormalPre, std::forward(before)...); + Result<> setHookPriorityBefore(std::string_view name, Mod* mod) { + GEODE_UNWRAP_INTO(auto hook, this->getHook(name)); + auto func = [=](ModStateEvent* event){ + auto hooks = mod->getHooks(); + for (auto modHook : hooks) { + if (modHook->getAddress() != hook->getAddress()) continue; + auto priority = modHook->getPriority(); + if (hook->getPriority() >= priority) { + hook->setPriority(priority - 1); + } + } + return ListenerResult::Propagate; + }; + if (mod->isEnabled()) { + func(nullptr); + } + else { + new EventListener(func, ModStateFilter(mod, ModEventType::Loaded)); + } + return Ok(); + } + + /// @brief Set the priority of a hook to be before another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param before The mod id of the mod to set the priority before + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriorityBefore(std::string_view name, std::string_view before) { + auto mod = Loader::get()->getInstalledMod(std::string(before)); + if (!mod) return Err("Mod not found"); + return this->setHookPriorityBefore(name, mod); } /// @brief Set the priority of a hook to be after another hook in different mods /// @param name The name of the hook to set the priority of - /// @param after The mod ids of the mods to set the priority after + /// @param after The mod id of the mod to set the priority after /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found - template requires (std::is_convertible_v && ...) - Result<> setHookPriorityAfterPost(std::string const& name, C&&... after) { - return this->setHookPriorityBefore(name, Priority::NormalPost, std::forward(after)...); + Result<> setHookPriorityAfterPre(std::string_view name, std::string_view after) { + return this->setHookPriorityAfter(name, after); + } + + /// @brief Set the priority of a hook to be after another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param before The mod to set the priority after + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriorityAfterPre(std::string_view name, Mod* mod) { + return this->setHookPriorityAfter(name, mod); } /// @brief Set the priority of a hook to be before another hook in different mods /// @param name The name of the hook to set the priority of - /// @param before The mod ids of the mods to set the priority before + /// @param before The mod id of the mod to set the priority before /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found - template requires (std::is_convertible_v && ...) - Result<> setHookPriorityBeforePost(std::string const& name, C&&... before) { - return this->setHookPriorityAfter(name, Priority::NormalPost, std::forward(before)...); + Result<> setHookPriorityBeforePre(std::string_view name, std::string_view before) { + return this->setHookPriorityBefore(name, CERT_NOT_BEFORE_FILETIME_PROP_ID); + } + + /// @brief Set the priority of a hook to be before another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param before The mod to set the priority before + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriorityBeforePre(std::string_view name, Mod* mod) { + return this->setHookPriorityBefore(name, mod); + } + + /// @brief Set the priority of a hook to be after another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param after The mod id of the mod to set the priority after + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriorityAfterPost(std::string_view name, std::string_view after) { + return this->setHookPriorityBefore(name, after); + } + + /// @brief Set the priority of a hook to be after another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param before The mod to set the priority after + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriorityAfterPost(std::string_view name, Mod* mod) { + return this->setHookPriorityBefore(name, mod); + } + + /// @brief Set the priority of a hook to be before another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param before The mod id of the mod to set the priority before + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriorityBeforePost(std::string_view name, std::string_view before) { + return this->setHookPriorityAfter(name, before); + } + + /// @brief Set the priority of a hook to be before another hook in different mods + /// @param name The name of the hook to set the priority of + /// @param before The mod to set the priority before + /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found + Result<> setHookPriorityBeforePost(std::string_view name, Mod* mod) { + return this->setHookPriorityAfter(name, mod); } // unordered_map idea diff --git a/loader/test/dependency/main.cpp b/loader/test/dependency/main.cpp index caafb23a..daf8ddf1 100644 --- a/loader/test/dependency/main.cpp +++ b/loader/test/dependency/main.cpp @@ -160,6 +160,38 @@ struct MyMenuLayer : Modify { } }; +struct AfterMenuLayer : Modify { + static void onModify(auto& self) { + if (self.setHookPriorityAfterPost("MenuLayer::init", "geode.test")) { + log::debug("priority set after test"); + } + } + + bool init() { + if (!MenuLayer::init()) return false; + + log::debug("should run third!"); + + return true; + } +}; + +struct BeforeMenuLayer : Modify { + static void onModify(auto& self) { + if (self.setHookPriorityBeforePost("MenuLayer::init", "geode.test")) { + log::debug("priority set before test"); + } + } + + bool init() { + if (!MenuLayer::init()) return false; + + log::debug("should run first!"); + + return true; + } +}; + $on_mod(Loaded) { // Mod::get()->addCustomSetting("overcast-skies", DEFAULT_ICON); diff --git a/loader/test/main/main.cpp b/loader/test/main/main.cpp index 578bd210..102f720f 100644 --- a/loader/test/main/main.cpp +++ b/loader/test/main/main.cpp @@ -58,6 +58,8 @@ struct $modify(MenuLayer) { log::info("Loader flag 'bool-arg': {}", Loader::get()->getLaunchFlag("bool-arg")); log::info("Loader int 'int-arg': {}", Loader::get()->parseLaunchArgument("int-arg").unwrapOr(0)); + log::debug("should run second!"); + return true; } }; From 5919c7e09aad6d7e934d0287f9acf64de6c26589 Mon Sep 17 00:00:00 2001 From: altalk23 <45172705+altalk23@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:04:25 +0300 Subject: [PATCH 108/119] i love tab! --- loader/include/Geode/modify/Modify.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/include/Geode/modify/Modify.hpp b/loader/include/Geode/modify/Modify.hpp index b58d2e73..ae06837e 100644 --- a/loader/include/Geode/modify/Modify.hpp +++ b/loader/include/Geode/modify/Modify.hpp @@ -272,7 +272,7 @@ namespace geode::modifier { /// @param before The mod id of the mod to set the priority before /// @returns Ok if the hook was found and the priority was set, Err if the hook was not found Result<> setHookPriorityBeforePre(std::string_view name, std::string_view before) { - return this->setHookPriorityBefore(name, CERT_NOT_BEFORE_FILETIME_PROP_ID); + return this->setHookPriorityBefore(name, before); } /// @brief Set the priority of a hook to be before another hook in different mods From a7f15bcc01546aff22b66944d5030afaa435cbd2 Mon Sep 17 00:00:00 2001 From: Rod Date: Sat, 16 Nov 2024 12:21:57 +0000 Subject: [PATCH 109/119] Added pt-pt (#1158) * Added Portuguese Portuguese * sry i forgot this --------- Co-authored-by: OmgRod --- .../windows/Language Files/PortuguesePTExtra.nsh | 16 ++++++++++++++++ installer/windows/installer.nsi | 1 + 2 files changed, 17 insertions(+) create mode 100644 installer/windows/Language Files/PortuguesePTExtra.nsh diff --git a/installer/windows/Language Files/PortuguesePTExtra.nsh b/installer/windows/Language Files/PortuguesePTExtra.nsh new file mode 100644 index 00000000..f3447f18 --- /dev/null +++ b/installer/windows/Language Files/PortuguesePTExtra.nsh @@ -0,0 +1,16 @@ +!insertmacro LANGFILE_EXT PortuguesePT + +!pragma warning disable 6030 +${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "O instalador irá guiá-lo através da instalação de $(^NameDA).$\r$\n$\r$\nAntes de iniciar a instalação, certifique-se de que o Geometry Dash não está aberto.$\r$\n$\r$\n$_CLICK" +${LangFileString} MUI_UNTEXT_WELCOME_INFO_TEXT "O instalador irá guiá-lo através da desinstalação de $(^NameDA).$\r$\n$\r$\nAntes de iniciar a desinstalação, certifique-se de que o Geometry Dash não está aberto.$\r$\n$\r$\n$_CLICK" +!pragma warning default 6030 + +; installer + +${LangFileString} GEODE_TEXT_GD_MISSING "$\r$\n$\r$\nEsse caminho não tem o Geometry Dash instalado!" +${LangFileString} GEODE_TEXT_GD_OLD "$\r$\n$\r$\nA sua versão do Geometry Dash é demasiado antiga para esta versão do Geode!" +${LangFileString} GEODE_TEXT_MOD_LOADER_ALREADY_INSTALLED "Esse caminho já tem outros mods instalados!$\r$\nEles serão substituídos pelo Geode. (the dll trademark)" + +; uninstaller + +${LangFileString} GEODE_UNTEXT_GEODE_MISSING "Esse caminho não tem o Geode instalado!" diff --git a/installer/windows/installer.nsi b/installer/windows/installer.nsi index 7faf5bc3..7ec8f11e 100644 --- a/installer/windows/installer.nsi +++ b/installer/windows/installer.nsi @@ -58,6 +58,7 @@ !insertmacro GEODE_LANGUAGE "Polish" !insertmacro GEODE_LANGUAGE "Russian" !insertmacro GEODE_LANGUAGE "PortugueseBR" + !insertmacro GEODE_LANGUAGE "PortuguesePT" !insertmacro GEODE_LANGUAGE "Ukrainian" !insertmacro GEODE_LANGUAGE "Czech" !insertmacro GEODE_LANGUAGE "Turkish" From 06eb32310c982b12be01ffd9443c43df64bc97c5 Mon Sep 17 00:00:00 2001 From: Rod Date: Sat, 16 Nov 2024 13:14:12 +0000 Subject: [PATCH 110/119] Changed PortuguesePT to Portuguese (#1160) * Added Portuguese Portuguese * sry i forgot this * idk * fixed bug * fix * fixed portuguese * removed portuguese extra --------- Co-authored-by: OmgRod Co-authored-by: Cvolton --- .../{PortuguesePTExtra.nsh => PortugueseExtra.nsh} | 2 +- installer/windows/installer.nsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename installer/windows/Language Files/{PortuguesePTExtra.nsh => PortugueseExtra.nsh} (96%) diff --git a/installer/windows/Language Files/PortuguesePTExtra.nsh b/installer/windows/Language Files/PortugueseExtra.nsh similarity index 96% rename from installer/windows/Language Files/PortuguesePTExtra.nsh rename to installer/windows/Language Files/PortugueseExtra.nsh index f3447f18..eefa02e9 100644 --- a/installer/windows/Language Files/PortuguesePTExtra.nsh +++ b/installer/windows/Language Files/PortugueseExtra.nsh @@ -1,4 +1,4 @@ -!insertmacro LANGFILE_EXT PortuguesePT +!insertmacro LANGFILE_EXT Portuguese !pragma warning disable 6030 ${LangFileString} MUI_TEXT_WELCOME_INFO_TEXT "O instalador irá guiá-lo através da instalação de $(^NameDA).$\r$\n$\r$\nAntes de iniciar a instalação, certifique-se de que o Geometry Dash não está aberto.$\r$\n$\r$\n$_CLICK" diff --git a/installer/windows/installer.nsi b/installer/windows/installer.nsi index 7ec8f11e..9f9d499c 100644 --- a/installer/windows/installer.nsi +++ b/installer/windows/installer.nsi @@ -58,7 +58,7 @@ !insertmacro GEODE_LANGUAGE "Polish" !insertmacro GEODE_LANGUAGE "Russian" !insertmacro GEODE_LANGUAGE "PortugueseBR" - !insertmacro GEODE_LANGUAGE "PortuguesePT" + !insertmacro GEODE_LANGUAGE "Portuguese" !insertmacro GEODE_LANGUAGE "Ukrainian" !insertmacro GEODE_LANGUAGE "Czech" !insertmacro GEODE_LANGUAGE "Turkish" From 302eea1f4792bfe0b8ebd31b82f0a05c31ae123d Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sat, 16 Nov 2024 16:22:03 +0200 Subject: [PATCH 111/119] disable enable button on outdated mods --- loader/src/ui/mods/list/ModItem.cpp | 8 ++++++-- loader/src/ui/mods/popups/ModPopup.cpp | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index c88edaf9..baa770c9 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -466,8 +466,12 @@ void ModItem::updateState() { if (m_enableToggle && m_source.asMod()) { m_enableToggle->toggle(m_source.asMod()->isOrWillBeEnabled()); - // Disable the toggle if the mod has been uninstalled - if (modRequestedActionIsUninstall(m_source.asMod()->getRequestedAction())) { + // Disable the toggle if the mod has been uninstalled or if the mod is + // outdated + if ( + modRequestedActionIsUninstall(m_source.asMod()->getRequestedAction()) || + m_source.asMod()->targetsOutdatedVersion() + ) { m_enableToggle->setEnabled(false); auto off = typeinfo_cast(m_enableToggle->m_offButton->getNormalImage()); auto on = typeinfo_cast(m_enableToggle->m_onButton->getNormalImage()); diff --git a/loader/src/ui/mods/popups/ModPopup.cpp b/loader/src/ui/mods/popups/ModPopup.cpp index 1cab734e..5656c225 100644 --- a/loader/src/ui/mods/popups/ModPopup.cpp +++ b/loader/src/ui/mods/popups/ModPopup.cpp @@ -672,7 +672,11 @@ void ModPopup::updateState() { m_cancelBtn->setVisible(false); m_enableBtn->toggle(asMod && asMod->isOrWillBeEnabled()); - m_enableBtn->setVisible(asMod && asMod->getRequestedAction() == ModRequestedAction::None); + m_enableBtn->setVisible( + asMod && + asMod->getRequestedAction() == ModRequestedAction::None && + !asMod->targetsOutdatedVersion() + ); m_reenableBtn->toggle(m_enableBtn->isToggled()); m_reenableBtn->setVisible(asMod && modRequestedActionIsToggle(asMod->getRequestedAction())); From 3fa91241aad706ab4800878d5f4866240b3e72ae Mon Sep 17 00:00:00 2001 From: acaruso-xx <151804137+acaruso-xx@users.noreply.github.com> Date: Sat, 16 Nov 2024 15:37:49 +0000 Subject: [PATCH 112/119] Add missing CCHttpRequest members and member functions (#1161) --- .../cocos/extensions/network/HttpRequest.h | 50 ++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/loader/include/Geode/cocos/extensions/network/HttpRequest.h b/loader/include/Geode/cocos/extensions/network/HttpRequest.h index 042e159a..b44934b1 100644 --- a/loader/include/Geode/cocos/extensions/network/HttpRequest.h +++ b/loader/include/Geode/cocos/extensions/network/HttpRequest.h @@ -28,6 +28,8 @@ #include "../../include/cocos2d.h" #include "../ExtensionMacros.h" +enum class GJHttpType; + NS_CC_EXT_BEGIN class CC_DLL CCHttpClient; @@ -216,6 +218,50 @@ public: return _headers; } + inline int getType() { + return _type; + } + + inline void setType(int type) { + _type = type; + } + + // @note Geode addition + inline void setType(GJHttpType type) { + _type = static_cast(type); + } + + inline bool getShouldCancel() { + return _shouldCancel; + } + + inline void setShouldCancel(bool shouldCancel) { + _shouldCancel = shouldCancel; + } + + inline int getDownloadProgress() { + return _downloadProgress; + } + + inline void setDownloadProgress(int downloadProgress) { + _downloadProgress = downloadProgress; + } + + inline int getReadTimeout() { + return _readTimeout; + } + + inline void setReadTimeout(int readTimeout) { + _readTimeout = readTimeout; + } + + inline int getConnectTimeout() { + return _connectTimeout; + } + + inline void setConnectTimeout(int connectTimeout) { + _connectTimeout = connectTimeout; + } protected: // properties @@ -229,13 +275,15 @@ protected: gd::vector _headers; /// custom http headers // @note RobTop Addition - int _requestTypeGJ; + int _type; // @note RobTop Addition bool _shouldCancel; // @note RobTop Addition int _downloadProgress; // @note RobTop Addition int _readTimeout; + // @note RobTop Addition + int _connectTimeout; }; NS_CC_EXT_END From b9fb2f67786e6b99b18de0e66b4294aab3ec5406 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sat, 16 Nov 2024 18:36:34 +0200 Subject: [PATCH 113/119] fix CCCallFuncExt --- loader/include/Geode/utils/cocos.hpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/loader/include/Geode/utils/cocos.hpp b/loader/include/Geode/utils/cocos.hpp index 6a7093ab..0e77a412 100644 --- a/loader/include/Geode/utils/cocos.hpp +++ b/loader/include/Geode/utils/cocos.hpp @@ -1331,15 +1331,13 @@ namespace geode::cocos { class CallFuncExtImpl : public cocos2d::CCActionInstant { public: static CallFuncExtImpl* create(const F& func) { - auto ret = new CallFuncExtImpl; - ret->m_func = func; + auto ret = new CallFuncExtImpl(func); ret->autorelease(); return ret; } static CallFuncExtImpl* create(F&& func) { - auto ret = new CallFuncExtImpl; - ret->m_func = std::move(func); + auto ret = new CallFuncExtImpl(std::move(func)); ret->autorelease(); return ret; } @@ -1347,8 +1345,17 @@ namespace geode::cocos { private: F m_func; + // F may not be default-constructible + CallFuncExtImpl(F&& func) : m_func(std::move(func)) {} + CallFuncExtImpl(F const& func) : m_func(func) {} + void update(float) override { - if (m_func) this->m_func(); + // Make sure any `std::function`s are valid + if constexpr (requires { static_cast(m_func); }) { + if (m_func) m_func(); + } else { + m_func(); + } } }; From c94a533d1c7684ab1a8f954f9f116df50ddb4bc1 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sat, 16 Nov 2024 18:36:45 +0200 Subject: [PATCH 114/119] fix updating causing the ui to lag out like hell --- loader/src/server/DownloadManager.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/loader/src/server/DownloadManager.cpp b/loader/src/server/DownloadManager.cpp index 79a49a4d..6fae2320 100644 --- a/loader/src/server/DownloadManager.cpp +++ b/loader/src/server/DownloadManager.cpp @@ -28,6 +28,7 @@ public: DownloadStatus m_status; EventListener> m_infoListener; EventListener m_downloadListener; + unsigned int m_scheduledEventForFrame = 0; Impl( std::string const& id, @@ -83,7 +84,14 @@ public: } if (!ModDownloadManager::get()->checkAutoConfirm()) { - ModDownloadEvent(m_id).post(); + // Throttle events to only once per frame to not cause a + // billion UI updates at once + if (m_scheduledEventForFrame != CCDirector::get()->getTotalFrames()) { + m_scheduledEventForFrame = CCDirector::get()->getTotalFrames(); + Loader::get()->queueInMainThread([id = m_id]() { + ModDownloadEvent(id).post(); + }); + } } }); auto fetchVersion = version.has_value() ? ModVersion(*version) : ModVersion(ModVersionLatest()); @@ -157,7 +165,14 @@ public: else if (event->isCancelled()) { m_status = DownloadStatusCancelled(); } - ModDownloadEvent(m_id).post(); + // Throttle events to only once per frame to not cause a + // billion UI updates at once + if (m_scheduledEventForFrame != CCDirector::get()->getTotalFrames()) { + m_scheduledEventForFrame = CCDirector::get()->getTotalFrames(); + Loader::get()->queueInMainThread([id = m_id]() { + ModDownloadEvent(id).post(); + }); + } }); auto req = web::WebRequest(); From 4d5e465ade1464d2c0cd39eddd099328bd714fb6 Mon Sep 17 00:00:00 2001 From: dankmeme01 <42031238+dankmeme01@users.noreply.github.com> Date: Sun, 17 Nov 2024 18:13:04 +0100 Subject: [PATCH 115/119] fix utils::string::replaceIP hanging if filter is empty --- loader/src/utils/string.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/loader/src/utils/string.cpp b/loader/src/utils/string.cpp index ed46bc31..28415e17 100644 --- a/loader/src/utils/string.cpp +++ b/loader/src/utils/string.cpp @@ -59,6 +59,8 @@ std::string utils::string::toUpper(std::string const& str) { } std::string& utils::string::replaceIP(std::string& str, std::string const& orig, std::string const& repl) { + if (orig.empty()) return str; + std::string::size_type n = 0; while ((n = str.find(orig, n)) != std::string::npos) { str.replace(n, orig.size(), repl); From 38f3385c90b4df3e39e6c9c9aadd267a98b0a7fa Mon Sep 17 00:00:00 2001 From: matcool <26722564+matcool@users.noreply.github.com> Date: Sun, 17 Nov 2024 15:14:25 -0300 Subject: [PATCH 116/119] add safe mode tip text to windows crashlog window --- .../src/platform/windows/crashlogWindow.cpp | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/loader/src/platform/windows/crashlogWindow.cpp b/loader/src/platform/windows/crashlogWindow.cpp index 501a81f4..d9a0acf6 100644 --- a/loader/src/platform/windows/crashlogWindow.cpp +++ b/loader/src/platform/windows/crashlogWindow.cpp @@ -18,6 +18,7 @@ enum { ID_BUTTON_OPEN_FOLDER = 103, ID_BUTTON_COPY_CLIPBOARD = 104, ID_BUTTON_RESTART_GAME = 105, + ID_SAFE_MODE_TIP_TEXT = 106, }; #define TO_HMENU(x) reinterpret_cast(static_cast(x)) @@ -63,6 +64,25 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { DEFAULT_PITCH | FF_DONTCARE, TEXT("Consolas")); auto guiFont = static_cast(GetStockObject(DEFAULT_GUI_FONT)); + auto calculateTextSize = [&](std::string_view text) -> SIZE { + HDC hdc = GetDC(hwnd); + SelectObject(hdc, monoFont); + SIZE size; + GetTextExtentPoint32A(hdc, text.data(), text.size(), &size); + ReleaseDC(hwnd, hdc); + return size; + }; + auto tipTextStr = "Tip: You can hold shift while launching the game to enter safe mode."; + auto tipTextSize = calculateTextSize(tipTextStr); + + auto tipText = CreateWindowA( + "STATIC", tipTextStr, + WS_CHILD | WS_VISIBLE | SS_SIMPLE, + 0, 0, tipTextSize.cx, tipTextSize.cy, + hwnd, TO_HMENU(ID_SAFE_MODE_TIP_TEXT), NULL, NULL + ); + SendMessage(tipText, WM_SETFONT, WPARAM(monoFont), TRUE); + auto handleText = CreateWindowA( "EDIT", "Crashlog text goes here", WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_LEFT | ES_MULTILINE | ES_READONLY | ES_AUTOVSCROLL | WS_BORDER, 0, 0, 100, 100, @@ -109,10 +129,20 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { RECT clientRect; GetClientRect(hwnd, &clientRect); + RECT textRect; + GetClientRect(GetDlgItem(hwnd, ID_SAFE_MODE_TIP_TEXT), &textRect); + + SetWindowPos( + GetDlgItem(hwnd, ID_SAFE_MODE_TIP_TEXT), NULL, + layout::PADDING, layout::PADDING, + 0, 0, + SWP_NOZORDER | SWP_NOSIZE + ); + SetWindowPos( GetDlgItem(hwnd, ID_CRASHLOG_TEXT), NULL, - layout::PADDING, layout::PADDING, - clientRect.right - layout::PADDING * 2, clientRect.bottom - layout::BUTTON_HEIGHT - layout::PADDING * 3, + layout::PADDING, layout::PADDING * 2 + textRect.bottom, + clientRect.right - layout::PADDING * 2, clientRect.bottom - layout::BUTTON_HEIGHT - layout::PADDING * 4 - textRect.bottom, SWP_NOZORDER ); @@ -150,6 +180,9 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { } break; case WM_CTLCOLORSTATIC: { + auto hdc = (HDC)wParam; + // make every text have transparent background + SetBkMode(hdc, TRANSPARENT); return (LRESULT)(COLOR_WINDOWFRAME); } break; From 7bcf50da57acef4643a6cc1765490403a256c428 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Sun, 17 Nov 2024 23:35:39 +0200 Subject: [PATCH 117/119] grid view in mod list; some minor stuff left to do --- loader/include/Geode/utils/timer.hpp | 1 + loader/resources/grid-view.png | Bin 0 -> 1363 bytes loader/src/platform/ios/LoaderImpl.cpp | 2 + loader/src/ui/mods/ModsLayer.cpp | 58 ++-- loader/src/ui/mods/ModsLayer.hpp | 5 +- loader/src/ui/mods/list/ModItem.cpp | 350 +++++++++++++++++-------- loader/src/ui/mods/list/ModItem.hpp | 15 +- loader/src/ui/mods/list/ModList.cpp | 41 +-- loader/src/ui/mods/list/ModList.hpp | 4 +- 9 files changed, 335 insertions(+), 141 deletions(-) create mode 100644 loader/resources/grid-view.png diff --git a/loader/include/Geode/utils/timer.hpp b/loader/include/Geode/utils/timer.hpp index 73f0dd3d..c1380f04 100644 --- a/loader/include/Geode/utils/timer.hpp +++ b/loader/include/Geode/utils/timer.hpp @@ -71,6 +71,7 @@ namespace geode::utils { std::string m_msg; Timer m_timer; + // @geode-ignore(geode-alternative) LogPerformance(std::string const& msg = "", std::ostream& out = std::cout) : m_msg(msg), m_output(out) { m_timer = Timer(); diff --git a/loader/resources/grid-view.png b/loader/resources/grid-view.png new file mode 100644 index 0000000000000000000000000000000000000000..9b91512962234bb56746e0ed0347e1d820d60971 GIT binary patch literal 1363 zcma)+X;cyh9Ki8P^Y-Z+D3)czoMw4o1*wrJpsB!2^GeMECSIryv881wsAY=iN`+ag zJUZl=Pf7A1NhyoGX5Jd}<*_Cb9UeFuzTRtJ_u+s1-uvGl{)N~el##xbJ^%nP!l03O zwT;>my=`hew=#56Z8XyHsAGV}SKuWzXcG~E2mqj|#9%W{N6p()(c$R;fU#&xG{hWgIP8Hw+0Ka)ze`4J4fIt`=r>*MlYww z#z?&sr(|c;gV1}!bSu)8Ypxu+3>BZ1b+~t@F!5oy>Wb=#64ZVf9RAkX8(n{FSmZZjA zT9FUvb&7n*=hWaX${#fR-p?%x_cve%9nFAol};<4&h3w=dvvug)vECdFZ z=ryFT0AlY2?v72Ys zdU|@Sw~pUF{aL1*2tWT)&Ssmt_073YsRnNI)~-vHN+qFO{PQ8Nd>GS>uj6_Z9LJGv+p3fFOl z-Q*$8&S$()ZkP4@(;P0hqLt4N93fIDP4I&UGYS4FCnF<8{kd=Taw>+FsU4Abz+iB> zinp#4!?%E2CrS_|1vpHEA={#MR7r=2hY97(Nn(n1=p@+2M#_{WmhRaHeAVg- zI|B72`@vej*!n^C8;SX(ogZ6qfJi}r$a$-k?ogM0~iuw6@#{|u0sQ90L z_)HlmD>>)YV2FvZK8|7We(Xiv!W=}hzP?^!U|_ItAkS@RzG)$ybxO6dAwX3L+S-<8 zrl%`bKYy;RN3`wLC@?=Vz+)HDg1h}jNExV&Vt2X6-#QLo+Hqdr0k5uNI#H}*)(U!N zUz4UTAs(mj!Mn6WZVopG>yCWL1FqAbcJ=btxOok~KHhzzDfVN`?HbJCB9)^Nxg`eU zUDo+SHUhsPJb53c3cAa*nk50UZC%R!zi4V5HT8OAW4Nk*gaC|h5VG-D?4^GJq`i$x literal 0 HcmV?d00001 diff --git a/loader/src/platform/ios/LoaderImpl.cpp b/loader/src/platform/ios/LoaderImpl.cpp index 023653f7..edbefa70 100644 --- a/loader/src/platform/ios/LoaderImpl.cpp +++ b/loader/src/platform/ios/LoaderImpl.cpp @@ -10,11 +10,13 @@ #include void Loader::Impl::platformMessageBox(char const* title, std::string const& info) { + // @geode-ignore(geode-alternative) std::cout << title << ": " << info << std::endl; } void Loader::Impl::logConsoleMessageWithSeverity(std::string const& msg, Severity severity) { if (m_platformConsoleOpen) { + // @geode-ignore(geode-alternative) std::cout << msg << "\n" << std::flush; } } diff --git a/loader/src/ui/mods/ModsLayer.cpp b/loader/src/ui/mods/ModsLayer.cpp index 8f9b0d64..df5c2204 100644 --- a/loader/src/ui/mods/ModsLayer.cpp +++ b/loader/src/ui/mods/ModsLayer.cpp @@ -499,28 +499,48 @@ bool ModsLayer::init() { // Actions - auto listActionsMenu = CCMenu::create(); - listActionsMenu->setID("list-actions-menu"); - listActionsMenu->setContentHeight(100); - listActionsMenu->setAnchorPoint({ 1, 0 }); - listActionsMenu->setScale(.65f); + auto listDisplayMenu = CCMenu::create(); + listDisplayMenu->setID("list-actions-menu"); + listDisplayMenu->setContentHeight(100); + listDisplayMenu->setAnchorPoint({ 1, 0 }); + listDisplayMenu->setScale(.65f); + + auto smallSizeBtn = CCMenuItemSpriteExtra::create( + GeodeSquareSprite::createWithSpriteFrameName("GJ_smallModeIcon_001.png"), + this, menu_selector(ModsLayer::onDisplay) + ); + smallSizeBtn->setTag(static_cast(ModListDisplay::SmallList)); + smallSizeBtn->setID("list-normal-size-button"); + listDisplayMenu->addChild(smallSizeBtn); + m_displayBtns.push_back(smallSizeBtn); auto bigSizeBtn = CCMenuItemSpriteExtra::create( - GeodeSquareSprite::createWithSpriteFrameName("GJ_smallModeIcon_001.png", &m_bigView), - this, menu_selector(ModsLayer::onBigView) + GeodeSquareSprite::createWithSpriteFrameName("GJ_extendedIcon_001.png"), + this, menu_selector(ModsLayer::onDisplay) ); + bigSizeBtn->setTag(static_cast(ModListDisplay::BigList)); bigSizeBtn->setID("list-size-button"); - listActionsMenu->addChild(bigSizeBtn); + listDisplayMenu->addChild(bigSizeBtn); + m_displayBtns.push_back(bigSizeBtn); + + auto gridBtn = CCMenuItemSpriteExtra::create( + GeodeSquareSprite::createWithSpriteFrameName("grid-view.png"_spr), + this, menu_selector(ModsLayer::onDisplay) + ); + gridBtn->setTag(static_cast(ModListDisplay::Grid)); + gridBtn->setID("list-size-button"); + listDisplayMenu->addChild(gridBtn); + m_displayBtns.push_back(gridBtn); // auto searchBtn = CCMenuItemSpriteExtra::create( // GeodeSquareSprite::createWithSpriteFrameName("search.png"_spr, &m_showSearch), // this, menu_selector(ModsLayer::onSearch) // ); // searchBtn->setID("search-button"); - // listActionsMenu->addChild(searchBtn); + // listDisplayMenu->addChild(searchBtn); - listActionsMenu->setLayout(ColumnLayout::create()); - m_frame->addChildAtPosition(listActionsMenu, Anchor::Left, ccp(-5, 25)); + listDisplayMenu->setLayout(ColumnLayout::create()->setAxisReverse(true)); + m_frame->addChildAtPosition(listDisplayMenu, Anchor::Left, ccp(-5, 25)); m_statusNode = ModsStatusNode::create(); m_statusNode->setZOrder(4); @@ -629,7 +649,7 @@ void ModsLayer::gotoTab(ModListSource* src) { m_currentSource = src; // Update the state of the current list - m_lists.at(m_currentSource)->updateSize(m_bigView); + m_lists.at(m_currentSource)->updateDisplay(m_display); m_lists.at(m_currentSource)->activateSearch(m_showSearch); m_lists.at(m_currentSource)->updateState(); } @@ -687,6 +707,13 @@ void ModsLayer::updateState() { else { m_pageMenu->setVisible(false); } + + // Update display button + for (auto btn : m_displayBtns) { + static_cast(btn->getNormalImage())->setState( + static_cast(btn->getTag()) == m_display + ); + } } void ModsLayer::onTab(CCObject* sender) { @@ -716,12 +743,13 @@ void ModsLayer::onGoToPage(CCObject*) { popup->setID("go-to-page"_spr); popup->show(); } -void ModsLayer::onBigView(CCObject*) { - m_bigView = !m_bigView; +void ModsLayer::onDisplay(CCObject* sender) { + m_display = static_cast(sender->getTag()); // Make sure to avoid a crash if (m_currentSource) { - m_lists.at(m_currentSource)->updateSize(m_bigView); + m_lists.at(m_currentSource)->updateDisplay(m_display); } + this->updateState(); } void ModsLayer::onSearch(CCObject*) { m_showSearch = !m_showSearch; diff --git a/loader/src/ui/mods/ModsLayer.hpp b/loader/src/ui/mods/ModsLayer.hpp index 2b2afaa0..35f40a14 100644 --- a/loader/src/ui/mods/ModsLayer.hpp +++ b/loader/src/ui/mods/ModsLayer.hpp @@ -66,7 +66,8 @@ protected: ModsStatusNode* m_statusNode; EventListener m_updateStateListener; bool m_showSearch = true; - bool m_bigView = false; + ModListDisplay m_display = ModListDisplay::SmallList; + std::vector m_displayBtns; bool init(); @@ -77,7 +78,7 @@ protected: void onTab(CCObject* sender); void onOpenModsFolder(CCObject*); void onAddModFromFile(CCObject*); - void onBigView(CCObject*); + void onDisplay(CCObject*); void onSearch(CCObject*); void onGoToPage(CCObject*); void onRefreshList(CCObject*); diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index baa770c9..719c4660 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -29,7 +29,7 @@ bool ModItem::init(ModSource&& source) { m_bg->ignoreAnchorPointForPosition(false); m_bg->setAnchorPoint({ .5f, .5f }); m_bg->setScale(.7f); - this->addChild(m_bg); + this->addChildAtPosition(m_bg, Anchor::Center); m_logo = m_source.createModLogo(); m_logo->setID("logo-sprite"); @@ -39,23 +39,10 @@ bool ModItem::init(ModSource&& source) { m_infoContainer->setID("info-container"); m_infoContainer->setScale(.4f); m_infoContainer->setAnchorPoint({ .0f, .5f }); - m_infoContainer->setLayout( - ColumnLayout::create() - ->setAxisReverse(true) - ->setAxisAlignment(AxisAlignment::Even) - ->setCrossAxisLineAlignment(AxisAlignment::Start) - ->setGap(0) - ); - m_infoContainer->getLayout()->ignoreInvisibleChildren(true); m_titleContainer = CCNode::create(); m_titleContainer->setID("title-container"); m_titleContainer->setAnchorPoint({ .0f, .5f }); - m_titleContainer->setLayout( - RowLayout::create() - ->setDefaultScaleLimits(.1f, 1.f) - ->setAxisAlignment(AxisAlignment::Start) - ); m_titleLabel = CCLabelBMFont::create(m_source.getMetadata().getName().c_str(), "bigFont.fnt"); m_titleLabel->setID("title-label"); @@ -67,14 +54,20 @@ bool ModItem::init(ModSource&& source) { m_versionLabel->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(std::nullopt, .7f)); m_titleContainer->addChild(m_versionLabel); - m_infoContainer->addChild(m_titleContainer); + m_titleContainer->setLayout( + RowLayout::create() + ->setDefaultScaleLimits(.1f, 1.f) + ->setAxisAlignment(AxisAlignment::Start) + ); + m_titleContainer->getLayout()->ignoreInvisibleChildren(true); + m_infoContainer->addChildAtPosition(m_titleContainer, Anchor::Left); m_developers = CCMenu::create(); m_developers->setID("developers-menu"); m_developers->ignoreAnchorPointForPosition(false); m_developers->setAnchorPoint({ .0f, .5f }); - auto by = "By " + m_source.formatDevelopers(); + auto by = m_source.formatDevelopers(); m_developerLabel = CCLabelBMFont::create(by.c_str(), "goldFont.fnt"); m_developerLabel->setID("developers-label"); auto developersBtn = CCMenuItemSpriteExtra::create( @@ -87,7 +80,24 @@ bool ModItem::init(ModSource&& source) { RowLayout::create() ->setAxisAlignment(AxisAlignment::Start) ); - m_infoContainer->addChild(m_developers); + m_infoContainer->addChildAtPosition(m_developers, Anchor::Left); + + m_description = CCScale9Sprite::create("square02b_001.png"); + m_description->setScale(.5f); + m_description->setContentSize(ccp(450, 30) / m_description->getScale()); + m_description->setColor(ccBLACK); + m_description->setOpacity(90); + + auto desc = m_source.getMetadata().getDescription(); + auto descLabel = CCLabelBMFont::create( + desc.value_or("[No Description Provided]").c_str(), + "chatFont.fnt" + ); + descLabel->setColor(desc ? ccWHITE : ccGRAY); + limitNodeWidth(descLabel, m_description->getContentWidth() - 20, 2.f, .1f); + m_description->addChildAtPosition(descLabel, Anchor::Left, ccp(10, 0), ccp(0, .5f)); + + m_infoContainer->addChildAtPosition(m_description, Anchor::Left); m_restartRequiredLabel = createTagLabel( "Restart Required", @@ -97,19 +107,19 @@ bool ModItem::init(ModSource&& source) { } ); m_restartRequiredLabel->setID("restart-required-label"); - m_restartRequiredLabel->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(std::nullopt, .75f)); - m_infoContainer->addChild(m_restartRequiredLabel); + m_restartRequiredLabel->setScale(.75f); + m_infoContainer->addChildAtPosition(m_restartRequiredLabel, Anchor::Left); m_outdatedLabel = createTagLabel( - fmt::format("Outdated (GD {})", m_source.getMetadata().getGameVersion().value_or("*")), + "Outdated", { to3B(ColorProvider::get()->color("mod-list-outdated-label"_spr)), to3B(ColorProvider::get()->color("mod-list-outdated-label-bg"_spr)) } ); m_outdatedLabel->setID("outdated-label"); - m_outdatedLabel->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(std::nullopt, .75f)); - m_infoContainer->addChild(m_outdatedLabel); + m_outdatedLabel->setScale(.75f); + m_infoContainer->addChildAtPosition(m_outdatedLabel, Anchor::Left); m_downloadBarContainer = CCNode::create(); m_downloadBarContainer->setID("download-bar-container"); @@ -121,7 +131,7 @@ bool ModItem::init(ModSource&& source) { m_downloadBar->setScale(1.5f); m_downloadBarContainer->addChildAtPosition(m_downloadBar, Anchor::Center, ccp(0, 0), ccp(0, 0)); - m_infoContainer->addChild(m_downloadBarContainer); + m_infoContainer->addChildAtPosition(m_downloadBarContainer, Anchor::Left); m_downloadWaiting = CCNode::create(); m_downloadWaiting->setID("download-waiting-container"); @@ -141,13 +151,12 @@ bool ModItem::init(ModSource&& source) { ccp(m_downloadWaiting->getContentHeight() / 2, 0) ); - m_infoContainer->addChild(m_downloadWaiting); + m_infoContainer->addChildAtPosition(m_downloadWaiting, Anchor::Left); - this->addChild(m_infoContainer); + this->addChildAtPosition(m_infoContainer, Anchor::Left); m_viewMenu = CCMenu::create(); m_viewMenu->setID("view-menu"); - m_viewMenu->setAnchorPoint({ 1.f, .5f }); m_viewMenu->setScale(.55f); ButtonSprite* spr = nullptr; @@ -214,43 +223,38 @@ bool ModItem::init(ModSource&& source) { } }, [this](server::ServerModMetadata const& metadata) { + m_badgeContainer = CCNode::create(); + m_badgeContainer->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(.1f, .8f)); if (metadata.featured) { - auto star = CCSprite::createWithSpriteFrameName("tag-featured.png"_spr); - star->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(.1f, .8f)); - m_titleContainer->addChild(star); + m_badgeContainer->addChild(CCSprite::createWithSpriteFrameName("tag-featured.png"_spr)); } if (metadata.tags.contains("paid")) { - auto paidModLabel = CCSprite::createWithSpriteFrameName("tag-paid.png"_spr); - paidModLabel->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(.1f, .8f)); - m_titleContainer->addChild(paidModLabel); + m_badgeContainer->addChild(CCSprite::createWithSpriteFrameName("tag-paid.png"_spr)); } if (metadata.tags.contains("modtober24")) { - auto modtoberLabel = CCSprite::createWithSpriteFrameName("tag-modtober.png"_spr); - modtoberLabel->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(.1f, .8f)); - m_titleContainer->addChild(modtoberLabel); + m_badgeContainer->addChild(CCSprite::createWithSpriteFrameName("tag-modtober.png"_spr)); } // Show mod download count here already so people can make informed decisions // on which mods to install - auto downloadsContainer = CCNode::create(); + m_downloadCountContainer = CCNode::create(); auto downloads = CCLabelBMFont::create(numToAbbreviatedString(metadata.downloadCount).c_str(), "bigFont.fnt"); downloads->setID("downloads-label"); downloads->setColor("mod-list-version-label"_cc3b); downloads->limitLabelWidth(80, .5f, .1f); - downloadsContainer->addChildAtPosition(downloads, Anchor::Right, ccp(-0, 0), ccp(1, .5f)); + m_downloadCountContainer->addChildAtPosition(downloads, Anchor::Right, ccp(-0, 0), ccp(1, .5f)); auto downloadsIcon = CCSprite::createWithSpriteFrameName("GJ_downloadsIcon_001.png"); downloadsIcon->setID("downloads-icon-sprite"); downloadsIcon->setScale(.75f); - downloadsContainer->addChildAtPosition(downloadsIcon, Anchor::Right, ccp(-downloads->getScaledContentWidth() - 10, 0)); + m_downloadCountContainer->addChildAtPosition(downloadsIcon, Anchor::Left, ccp(5, 0)); - downloadsContainer->setContentSize({ - downloads->getScaledContentWidth() + 10 + downloadsIcon->getScaledContentWidth() + 10, + m_downloadCountContainer->setContentSize({ + downloads->getScaledContentWidth() + downloadsIcon->getScaledContentWidth(), 25 }); - downloadsContainer->updateLayout(); - m_viewMenu->addChild(downloadsContainer); + m_downloadCountContainer->updateLayout(); // Check if mod is recommended by any others, only if not installed if (!Loader::get()->isModInstalled(metadata.id)) { @@ -289,7 +293,7 @@ bool ModItem::init(ModSource&& source) { ->setDefaultScaleLimits(.1f, 1.f) ->setAxisAlignment(AxisAlignment::Start) ); - m_infoContainer->addChild(m_recommendedBy); + m_infoContainer->addChildAtPosition(m_recommendedBy, Anchor::Left); } } } @@ -329,15 +333,89 @@ bool ModItem::init(ModSource&& source) { void ModItem::updateState() { auto wantsRestart = m_source.wantsRestart(); - auto download = server::ModDownloadManager::get()->getDownload(m_source.getID()); bool isDownloading = download && download->isActive(); + // Update the size of the mod cell itself + if (m_display == ModListDisplay::Grid) { + auto widthWithoutGaps = m_targetWidth - 10; + this->setContentSize(ccp(widthWithoutGaps / roundf(widthWithoutGaps / 80), 100)); + m_bg->setContentSize(m_obContentSize / m_bg->getScale()); + } + else { + this->setContentSize(ccp(m_targetWidth, m_display == ModListDisplay::BigList ? 40 : 30)); + m_bg->setContentSize((m_obContentSize - ccp(6, 0)) / m_bg->getScale()); + } + + // On Grid layout the title is a direct child of info so it can be positioned + // more cleanly, while m_titleContainer is just used to position the version + // and downloads next to each other + m_titleLabel->removeFromParent(); + if (m_display == ModListDisplay::Grid) { + m_infoContainer->addChildAtPosition(m_titleLabel, Anchor::Top); + } + else { + m_titleContainer->insertBefore(m_titleLabel, nullptr); + } + + // Download counts go next to the version like on the website on grid view + if (m_downloadCountContainer) { + m_downloadCountContainer->removeFromParent(); + if (m_display == ModListDisplay::Grid) { + m_titleContainer->insertAfter(m_downloadCountContainer, m_versionLabel); + } + else { + m_viewMenu->addChild(m_downloadCountContainer); + } + } + + // Move badges to either be next to the title or in the top left corner in grid view + if (m_badgeContainer) { + m_badgeContainer->removeFromParent(); + if (m_display == ModListDisplay::Grid) { + m_badgeContainer->setLayout(ColumnLayout::create()->setAutoGrowAxis(true)); + m_badgeContainer->setScale(.25f); + this->addChildAtPosition(m_badgeContainer, Anchor::TopLeft, ccp(5, -5), ccp(0, 1)); + } + else { + m_badgeContainer->setLayout(RowLayout::create()->setAutoGrowAxis(true)); + m_titleContainer->addChild(m_badgeContainer); + } + } + + // On Grid View logo has constant size + if (m_display == ModListDisplay::Grid) { + limitNodeSize(m_logo, ccp(30, 30), 999, .1f); + m_logo->setPosition(m_obContentSize.width / 2, m_obContentSize.height - 20); + } + else { + auto logoSize = m_obContentSize.height - 10; + limitNodeSize(m_logo, ccp(logoSize, logoSize), 999, .1f); + m_logo->setPosition(m_obContentSize.height / 2 + 5, m_obContentSize.height / 2); + } + + // There's space to show the description only on the big list + // When we do, elements like the download progress bar should replace it + // over the developer name since it's less important + // Couldn't figure out a more concise name + m_description->setVisible(m_display == ModListDisplay::BigList); + m_developers->setVisible(true); + auto elementToReplaceWithOtherAbnormalElement = + m_display == ModListDisplay::BigList ? m_description : m_developers; + + auto titleSpace = m_display == ModListDisplay::Grid ? + CCSize(m_obContentSize.width - 10, 35) : + CCSize(m_obContentSize.width / 2 - m_obContentSize.height, m_obContentSize.height - 5); + + // Divide by scale of info container since that actually determines the size + // (Since the scale of m_titleContainer and m_developers is managed by its layout) + // If there is an active download ongoing, show that in place of developer name + // (or description on big view) if (isDownloading) { m_updateBtn->setVisible(false); m_restartRequiredLabel->setVisible(false); - m_developers->setVisible(false); + elementToReplaceWithOtherAbnormalElement->setVisible(false); auto status = download->getStatus(); if (auto prog = std::get_if(&status)) { @@ -355,7 +433,7 @@ void ModItem::updateState() { // Otherwise show "Restart Required" button if needed in place of dev name else { m_restartRequiredLabel->setVisible(wantsRestart); - m_developers->setVisible(!wantsRestart); + elementToReplaceWithOtherAbnormalElement->setVisible(!wantsRestart); m_downloadBarContainer->setVisible(false); m_downloadWaiting->setVisible(false); } @@ -418,11 +496,10 @@ void ModItem::updateState() { m_versionLabel->setColor(to3B(ColorProvider::get()->color("mod-list-version-label"_spr))); } - m_viewMenu->updateLayout(); - m_titleContainer->updateLayout(); + // Hide by default + m_outdatedLabel->setVisible(false); // If there were problems, tint the BG red - m_outdatedLabel->setVisible(false); if (m_source.asMod()) { std::optional targetsOutdated = m_source.asMod()->targetsOutdatedVersion(); if (m_source.asMod()->hasLoadProblems()) { @@ -430,32 +507,129 @@ void ModItem::updateState() { m_bg->setOpacity(isGeodeTheme() ? 25 : 90); } if (!wantsRestart && targetsOutdated && !isDownloading) { - LoadProblem problem = targetsOutdated.value(); m_bg->setColor("mod-list-outdated-label"_cc3b); m_bg->setOpacity(isGeodeTheme() ? 25 : 90); - std::string content; - if ( - problem.type == LoadProblem::Type::UnsupportedGeodeVersion || - problem.type == LoadProblem::Type::NeedsNewerGeodeVersion - ) { - content = fmt::format( - "Outdated (Geode {})", - m_source.getMetadata().getGeodeVersion().toNonVString() - ); - } else { - content = fmt::format( - "Outdated (GD {})", - m_source.getMetadata().getGameVersion().value_or("*") - ); - } - m_outdatedLabel->setString(content.c_str()); m_outdatedLabel->setVisible(true); - m_developers->setVisible(false); + elementToReplaceWithOtherAbnormalElement->setVisible(false); + if (m_display == ModListDisplay::Grid) { + m_outdatedLabel->setString("Outdated"); + } + else { + m_outdatedLabel->setString(( + (targetsOutdated->type == LoadProblem::Type::UnsupportedGeodeVersion || + targetsOutdated->type == LoadProblem::Type::NeedsNewerGeodeVersion) ? + fmt::format( + "Outdated (Geode {})", + m_source.getMetadata().getGeodeVersion().toNonVString() + ) : + fmt::format( + "Outdated (GD {})", + m_source.getMetadata().getGameVersion().value_or("*") + ) + ).c_str()); + } } } + // Update size and direction of title + // On grid view, m_titleContainer contains the version and download count + // but not the actual title lol + m_titleContainer->setContentWidth(titleSpace.width / m_infoContainer->getScale()); + if (m_display == ModListDisplay::Grid) { + static_cast(m_titleContainer->getLayout()) + ->setGap(10) + ->setAxisAlignment(AxisAlignment::Center); + static_cast(m_developers->getLayout()) + ->setAxisAlignment(AxisAlignment::Center); + } + else { + static_cast(m_titleContainer->getLayout()) + ->setGap(5) + ->setAxisAlignment(AxisAlignment::Start); + static_cast(m_developers->getLayout()) + ->setAxisAlignment(AxisAlignment::Start); + } + m_titleContainer->updateLayout(); + m_developers->setContentWidth(titleSpace.width / m_infoContainer->getScale()); + m_developers->updateLayout(); + + if (m_recommendedBy) { + m_recommendedBy->setContentWidth(titleSpace.width / m_infoContainer->getScale()); + m_recommendedBy->updateLayout(); + } + + // Update positioning (jesus) + switch (m_display) { + case ModListDisplay::Grid: { + m_infoContainer->updateAnchoredPosition(Anchor::Center, ccp(0, -5), ccp(.5f, .5f)); + // m_description is hidden + + m_titleLabel->updateAnchoredPosition(Anchor::Top, ccp(0, -10), ccp(.5f, .5f)); + limitNodeWidth(m_titleLabel, m_titleContainer->getContentWidth(), .8f, .1f); + m_titleContainer->updateAnchoredPosition(Anchor::Center, ccp(0, 0), ccp(.5f, .5f)); + m_developers->updateAnchoredPosition(Anchor::Bottom, ccp(0, 10), ccp(.5f, .5f)); + m_restartRequiredLabel->updateAnchoredPosition(Anchor::Bottom, ccp(0, 10), ccp(.5f, .5f)); + m_outdatedLabel->updateAnchoredPosition(Anchor::Bottom, ccp(0, 10), ccp(.5f, .5f)); + m_downloadBarContainer->updateAnchoredPosition(Anchor::Bottom, ccp(0, 10), ccp(.5f, .5f)); + m_downloadWaiting->updateAnchoredPosition(Anchor::Bottom, ccp(0, 10), ccp(.5f, .5f)); + + if (m_recommendedBy) { + m_recommendedBy->updateAnchoredPosition(Anchor::Bottom, ccp(0, 10), ccp(.5f, .5f)); + } + } break; + + default: + case ModListDisplay::SmallList: { + m_infoContainer->updateAnchoredPosition(Anchor::Left, ccp(m_obContentSize.height + 10, 0), ccp(0, .5f)); + m_titleContainer->updateAnchoredPosition(Anchor::TopLeft, ccp(0, 0), ccp(0, 1)); + + // m_description is hidden + m_developers->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 3), ccp(0, 0)); + m_restartRequiredLabel->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 3), ccp(0, 0)); + m_outdatedLabel->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 3), ccp(0, 0)); + m_downloadBarContainer->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 3), ccp(0, 0)); + m_downloadWaiting->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 3), ccp(0, 0)); + + if (m_recommendedBy) { + m_recommendedBy->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 3), ccp(0, 0)); + } + } break; + + case ModListDisplay::BigList: { + m_infoContainer->updateAnchoredPosition(Anchor::Left, ccp(m_obContentSize.height + 10, 0), ccp(0, .5f)); + m_titleContainer->updateAnchoredPosition(Anchor::TopLeft, ccp(0, 0), ccp(0, 1)); + + m_developers->updateAnchoredPosition(Anchor::Left, ccp(0, 0), ccp(0, .5f)); + + m_description->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 0), ccp(0, 0)); + m_restartRequiredLabel->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 0), ccp(0, 0)); + m_outdatedLabel->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 0), ccp(0, 0)); + m_downloadBarContainer->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 0), ccp(0, 0)); + m_downloadWaiting->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 0), ccp(0, 0)); + + if (m_recommendedBy) { + m_recommendedBy->updateAnchoredPosition(Anchor::BottomLeft, ccp(0, 0), ccp(0, 0)); + } + } break; + } + m_infoContainer->setContentSize(ccp(titleSpace.width, titleSpace.height) / m_infoContainer->getScale()); m_infoContainer->updateLayout(); + // Update button menu state + if (m_display == ModListDisplay::Grid) { + m_viewMenu->setContentWidth(m_obContentSize.width / m_viewMenu->getScaleX()); + m_viewMenu->updateAnchoredPosition(Anchor::Bottom, ccp(0, 5), ccp(.5f, 0)); + m_viewMenu->setScale(.45f); + static_cast(m_viewMenu->getLayout())->setAxisAlignment(AxisAlignment::Center); + } + else { + m_viewMenu->setContentWidth(m_obContentSize.width / m_viewMenu->getScaleX() / 2 - 20); + m_viewMenu->updateAnchoredPosition(Anchor::Right, ccp(-10, 0), ccp(1, .5f)); + m_viewMenu->setScale(.55f); + static_cast(m_viewMenu->getLayout())->setAxisAlignment(AxisAlignment::End); + } + m_viewMenu->updateLayout(); + // Highlight item via BG if it wants to restart for extra UI attention if (wantsRestart) { m_bg->setColor("mod-list-restart-required-label"_cc3b); @@ -482,45 +656,15 @@ void ModItem::updateState() { } } + this->updateLayout(); + ModItemUIEvent(std::make_unique(this)).post(); } -void ModItem::updateSize(float width, bool big) { - this->setContentSize({ width, big ? 40.f : 30.f }); - - m_bg->setContentSize((m_obContentSize - ccp(6, 0)) / m_bg->getScale()); - m_bg->setPosition(m_obContentSize / 2); - - auto logoSize = m_obContentSize.height - 10; - limitNodeSize(m_logo, { logoSize, logoSize }, 999, .1f); - m_logo->setPosition(m_obContentSize.height / 2 + 5, m_obContentSize.height / 2); - - CCSize titleSpace { - m_obContentSize.width / 2 - m_obContentSize.height, - logoSize + 5 - }; - - // Divide by scale of info container since that actually determines the size - // (Since the scale of m_titleContainer and m_developers is managed by its layout) - m_titleContainer->setContentWidth(titleSpace.width / m_infoContainer->getScale()); - m_titleContainer->updateLayout(); - - m_developers->setContentWidth(titleSpace.width / m_infoContainer->getScale()); - m_developers->updateLayout(); - - if (m_recommendedBy) { - m_recommendedBy->setContentWidth(titleSpace.width / m_infoContainer->getScale()); - m_recommendedBy->updateLayout(); - } - - m_infoContainer->setPosition(m_obContentSize.height + 10, m_obContentSize.height / 2); - m_infoContainer->setContentSize(ccp(titleSpace.width, titleSpace.height) / m_infoContainer->getScale()); - m_infoContainer->updateLayout(); - - m_viewMenu->setContentWidth(m_obContentSize.width / m_viewMenu->getScaleX() / 2 - 20); - m_viewMenu->updateLayout(); - - this->updateLayout(); +void ModItem::updateDisplay(float width, ModListDisplay display) { + m_display = display; + m_targetWidth = width; + this->updateState(); } void ModItem::onCheckUpdates(typename server::ServerRequest>::Event* event) { diff --git a/loader/src/ui/mods/list/ModItem.hpp b/loader/src/ui/mods/list/ModItem.hpp index 89ac4a2d..3891c3a1 100644 --- a/loader/src/ui/mods/list/ModItem.hpp +++ b/loader/src/ui/mods/list/ModItem.hpp @@ -12,6 +12,12 @@ using namespace geode::prelude; +enum class ModListDisplay { + SmallList, + BigList, + Grid, +}; + class ModItem : public CCNode { protected: ModSource m_source; @@ -19,10 +25,11 @@ protected: CCNode* m_logo; CCNode* m_infoContainer; CCNode* m_titleContainer; - CCLabelBMFont* m_titleLabel; + Ref m_titleLabel; CCLabelBMFont* m_versionLabel; CCNode* m_developers; CCNode* m_recommendedBy; + CCScale9Sprite* m_description; CCLabelBMFont* m_developerLabel; ButtonSprite* m_restartRequiredLabel; ButtonSprite* m_outdatedLabel; @@ -37,6 +44,10 @@ protected: EventListener m_downloadListener; std::optional m_availableUpdate; EventListener> m_settingNodeListener; + Ref m_badgeContainer = nullptr; + Ref m_downloadCountContainer; + ModListDisplay m_display = ModListDisplay::SmallList; + float m_targetWidth = 300; /** * @warning Make sure `getMetadata` and `createModLogo` are callable @@ -57,7 +68,7 @@ protected: public: static ModItem* create(ModSource&& source); - void updateSize(float width, bool big); + void updateDisplay(float width, ModListDisplay display); ModSource& getSource() &; }; diff --git a/loader/src/ui/mods/list/ModList.cpp b/loader/src/ui/mods/list/ModList.cpp index 211417f8..530c32c3 100644 --- a/loader/src/ui/mods/list/ModList.cpp +++ b/loader/src/ui/mods/list/ModList.cpp @@ -18,13 +18,6 @@ bool ModList::init(ModListSource* src, CCSize const& size) { m_source->reset(); m_list = ScrollLayer::create(size); - m_list->m_contentLayer->setLayout( - ColumnLayout::create() - ->setAxisReverse(true) - ->setAxisAlignment(AxisAlignment::End) - ->setAutoGrowAxis(size.height) - ->setGap(2.5f) - ); this->addChildAtPosition(m_list, Anchor::Bottom, ccp(-m_list->getScaledContentWidth() / 2, 0)); m_topContainer = CCNode::create(); @@ -410,7 +403,7 @@ void ModList::onPromise(ModListSource::PageLoadTask::Event* event) { first = false; m_list->m_contentLayer->addChild(item); } - this->updateSize(m_bigSize); + this->updateDisplay(m_display); // Scroll list to top auto listTopScrollPos = -m_list->m_contentLayer->getContentHeight() + m_list->getContentHeight(); @@ -526,12 +519,10 @@ void ModList::updateTopContainer() { // (giving a little bit of extra padding for it, the same size as gap) m_list->setContentHeight( m_topContainer->getContentHeight() > 0.f ? - this->getContentHeight() - m_topContainer->getContentHeight() - - static_cast(m_list->m_contentLayer->getLayout())->getGap() : + this->getContentHeight() - m_topContainer->getContentHeight() - 2.5f : this->getContentHeight() ); - static_cast(m_list->m_contentLayer->getLayout())->setAutoGrowAxis(m_list->getContentHeight()); - m_list->m_contentLayer->updateLayout(); + this->updateDisplay(m_display); // Preserve relative scroll position m_list->m_contentLayer->setPositionY(( @@ -557,14 +548,14 @@ void ModList::updateTopContainer() { this->updateLayout(); } -void ModList::updateSize(bool big) { - m_bigSize = big; +void ModList::updateDisplay(ModListDisplay display) { + m_display = display; // Update all BaseModItems that are children of the list // There may be non-BaseModItems there (like separators) so gotta be type-safe for (auto& node : CCArrayExt(m_list->m_contentLayer->getChildren())) { if (auto item = typeinfo_cast(node)) { - item->updateSize(m_list->getContentWidth(), big); + item->updateDisplay(m_list->getContentWidth(), display); } } @@ -574,8 +565,24 @@ void ModList::updateSize(bool big) { m_list->m_contentLayer->getPositionY() / oldPositionArea : -1.f; - // Auto-grow the size of the list content - m_list->m_contentLayer->updateLayout(); + // Update the list layout based on the display model + if (display == ModListDisplay::Grid) { + m_list->m_contentLayer->setLayout( + RowLayout::create() + ->setGrowCrossAxis(true) + ->setAxisAlignment(AxisAlignment::Center) + ->setGap(2.5f) + ); + } + else { + m_list->m_contentLayer->setLayout( + ColumnLayout::create() + ->setAxisReverse(true) + ->setAxisAlignment(AxisAlignment::End) + ->setAutoGrowAxis(m_obContentSize.height) + ->setGap(2.5f) + ); + } // Preserve relative scroll position m_list->m_contentLayer->setPositionY(( diff --git a/loader/src/ui/mods/list/ModList.hpp b/loader/src/ui/mods/list/ModList.hpp index 1183a11f..f0388fe2 100644 --- a/loader/src/ui/mods/list/ModList.hpp +++ b/loader/src/ui/mods/list/ModList.hpp @@ -52,7 +52,7 @@ protected: EventListener m_invalidateCacheListener; EventListener>> m_checkUpdatesListener; EventListener m_downloadListener; - bool m_bigSize = false; + ModListDisplay m_display = ModListDisplay::SmallList; bool m_exiting = false; std::atomic m_searchInputThreads = 0; @@ -83,7 +83,7 @@ public: void showStatus(ModListStatus status, std::string const& message, std::optional const& details = std::nullopt); void updateState(); - void updateSize(bool big); + void updateDisplay(ModListDisplay display); void activateSearch(bool activate); void setIsExiting(bool exiting); }; From 6e86b38990a42e11e353a0fbbddd46f5da4f7cea Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Mon, 18 Nov 2024 21:31:17 +0200 Subject: [PATCH 118/119] fix vv version --- loader/src/loader/LoaderImpl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/src/loader/LoaderImpl.cpp b/loader/src/loader/LoaderImpl.cpp index dbd6163e..cfe8684c 100644 --- a/loader/src/loader/LoaderImpl.cpp +++ b/loader/src/loader/LoaderImpl.cpp @@ -1079,7 +1079,7 @@ void Loader::Impl::installModManuallyFromFile(std::filesystem::path const& path, createQuickPopup( "Already Installed", fmt::format( - "The mod {} v{} has already been installed " + "The mod {} {} has already been installed " "as version {}. Do you want to replace the " "installed version with the file?", meta.getID(), meta.getVersion(), From 1ff24f09c6b86f3515b29521f8cb0110399487c3 Mon Sep 17 00:00:00 2001 From: HJfod <60038575+HJfod@users.noreply.github.com> Date: Tue, 19 Nov 2024 00:18:23 +0200 Subject: [PATCH 119/119] finish grid view --- loader/resources/tag-joke.png | Bin 0 -> 18312 bytes loader/resources/tag-modtober-long.png | Bin 0 -> 48575 bytes loader/resources/tag-modtober.png | Bin 40273 -> 17522 bytes loader/resources/tag-paid-long.png | Bin 0 -> 33370 bytes loader/resources/tag-paid.png | Bin 33370 -> 16013 bytes loader/src/ui/mods/ModsLayer.cpp | 11 ++- loader/src/ui/mods/ModsLayer.hpp | 1 - loader/src/ui/mods/list/ModItem.cpp | 72 ++++++++++++++---- loader/src/ui/mods/list/ModItem.hpp | 1 + loader/src/ui/mods/list/ModList.cpp | 24 +++++- .../mods/sources/InstalledModListSource.cpp | 11 +-- loader/src/ui/mods/sources/ModListSource.cpp | 6 +- loader/src/ui/mods/sources/ModListSource.hpp | 8 ++ .../src/ui/mods/sources/ModPackListSource.cpp | 4 + .../ui/mods/sources/ServerModListSource.cpp | 4 + 15 files changed, 110 insertions(+), 32 deletions(-) create mode 100644 loader/resources/tag-joke.png create mode 100644 loader/resources/tag-modtober-long.png create mode 100644 loader/resources/tag-paid-long.png diff --git a/loader/resources/tag-joke.png b/loader/resources/tag-joke.png new file mode 100644 index 0000000000000000000000000000000000000000..4eee11368d00b85e0c7bb767cff115ee921e7027 GIT binary patch literal 18312 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 literal 0 HcmV?d00001 diff --git a/loader/resources/tag-modtober.png b/loader/resources/tag-modtober.png index 5b57a707691641a168241f5d8909a817c0d8de47..06359278f08e8b6ecb56f8d97842e392f23e3206 100644 GIT binary patch literal 17522 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 diff --git a/loader/resources/tag-paid-long.png b/loader/resources/tag-paid-long.png new file mode 100644 index 0000000000000000000000000000000000000000..5e16735b8a8b21e31ef77f87a6e41e606c65917b GIT binary patch literal 33370 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 +static ModListDisplay MOD_LIST_DISPLAY = ModListDisplay::SmallList; + bool ModsStatusNode::init() { if (!CCNode::init()) return false; @@ -649,7 +651,7 @@ void ModsLayer::gotoTab(ModListSource* src) { m_currentSource = src; // Update the state of the current list - m_lists.at(m_currentSource)->updateDisplay(m_display); + m_lists.at(m_currentSource)->updateDisplay(MOD_LIST_DISPLAY); m_lists.at(m_currentSource)->activateSearch(m_showSearch); m_lists.at(m_currentSource)->updateState(); } @@ -711,7 +713,7 @@ void ModsLayer::updateState() { // Update display button for (auto btn : m_displayBtns) { static_cast(btn->getNormalImage())->setState( - static_cast(btn->getTag()) == m_display + static_cast(btn->getTag()) == MOD_LIST_DISPLAY ); } } @@ -744,10 +746,11 @@ void ModsLayer::onGoToPage(CCObject*) { popup->show(); } void ModsLayer::onDisplay(CCObject* sender) { - m_display = static_cast(sender->getTag()); + MOD_LIST_DISPLAY = static_cast(sender->getTag()); // Make sure to avoid a crash if (m_currentSource) { - m_lists.at(m_currentSource)->updateDisplay(m_display); + m_lists.at(m_currentSource)->updateDisplay(MOD_LIST_DISPLAY); + m_lists.at(m_currentSource)->reloadPage(); } this->updateState(); } diff --git a/loader/src/ui/mods/ModsLayer.hpp b/loader/src/ui/mods/ModsLayer.hpp index 35f40a14..43d080b4 100644 --- a/loader/src/ui/mods/ModsLayer.hpp +++ b/loader/src/ui/mods/ModsLayer.hpp @@ -66,7 +66,6 @@ protected: ModsStatusNode* m_statusNode; EventListener m_updateStateListener; bool m_showSearch = true; - ModListDisplay m_display = ModListDisplay::SmallList; std::vector m_displayBtns; bool init(); diff --git a/loader/src/ui/mods/list/ModItem.cpp b/loader/src/ui/mods/list/ModItem.cpp index 719c4660..fba92ceb 100644 --- a/loader/src/ui/mods/list/ModItem.cpp +++ b/loader/src/ui/mods/list/ModItem.cpp @@ -53,6 +53,10 @@ bool ModItem::init(ModSource&& source) { m_versionLabel->setID("version-label"); m_versionLabel->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(std::nullopt, .7f)); m_titleContainer->addChild(m_versionLabel); + + m_versionDownloadSeparator = CCLabelBMFont::create("•", "bigFont.fnt"); + m_versionDownloadSeparator->setOpacity(155); + m_titleContainer->addChild(m_versionDownloadSeparator); m_titleContainer->setLayout( RowLayout::create() @@ -180,10 +184,7 @@ bool ModItem::init(ModSource&& source) { } } - auto viewBtn = CCMenuItemSpriteExtra::create( - spr, - this, menu_selector(ModItem::onView) - ); + auto viewBtn = CCMenuItemSpriteExtra::create(spr, this, menu_selector(ModItem::onView)); viewBtn->setID("view-button"); m_viewMenu->addChild(viewBtn); @@ -229,10 +230,23 @@ bool ModItem::init(ModSource&& source) { m_badgeContainer->addChild(CCSprite::createWithSpriteFrameName("tag-featured.png"_spr)); } if (metadata.tags.contains("paid")) { - m_badgeContainer->addChild(CCSprite::createWithSpriteFrameName("tag-paid.png"_spr)); + auto shortVer = CCSprite::createWithSpriteFrameName("tag-paid.png"_spr); + shortVer->setTag(1); + m_badgeContainer->addChild(shortVer); + auto longVer = CCSprite::createWithSpriteFrameName("tag-paid-long.png"_spr); + longVer->setTag(2); + m_badgeContainer->addChild(longVer); + } + if (metadata.tags.contains("joke")) { + m_badgeContainer->addChild(CCSprite::createWithSpriteFrameName("tag-joke.png"_spr)); } if (metadata.tags.contains("modtober24")) { - m_badgeContainer->addChild(CCSprite::createWithSpriteFrameName("tag-modtober.png"_spr)); + auto shortVer = CCSprite::createWithSpriteFrameName("tag-modtober.png"_spr); + shortVer->setTag(1); + m_badgeContainer->addChild(shortVer); + auto longVer = CCSprite::createWithSpriteFrameName("tag-modtober-long.png"_spr); + longVer->setTag(2); + m_badgeContainer->addChild(longVer); } // Show mod download count here already so people can make informed decisions @@ -242,17 +256,18 @@ bool ModItem::init(ModSource&& source) { auto downloads = CCLabelBMFont::create(numToAbbreviatedString(metadata.downloadCount).c_str(), "bigFont.fnt"); downloads->setID("downloads-label"); downloads->setColor("mod-list-version-label"_cc3b); - downloads->limitLabelWidth(80, .5f, .1f); + downloads->limitLabelWidth(125, 1.f, .1f); m_downloadCountContainer->addChildAtPosition(downloads, Anchor::Right, ccp(-0, 0), ccp(1, .5f)); auto downloadsIcon = CCSprite::createWithSpriteFrameName("GJ_downloadsIcon_001.png"); downloadsIcon->setID("downloads-icon-sprite"); - downloadsIcon->setScale(.75f); - m_downloadCountContainer->addChildAtPosition(downloadsIcon, Anchor::Left, ccp(5, 0)); + downloadsIcon->setScale(1.2f); + m_downloadCountContainer->addChildAtPosition(downloadsIcon, Anchor::Left, ccp(8, 0)); + // m_downloadCountContainer scale is controlled in updateState m_downloadCountContainer->setContentSize({ downloads->getScaledContentWidth() + downloadsIcon->getScaledContentWidth(), - 25 + 30 }); m_downloadCountContainer->updateLayout(); @@ -338,7 +353,7 @@ void ModItem::updateState() { // Update the size of the mod cell itself if (m_display == ModListDisplay::Grid) { - auto widthWithoutGaps = m_targetWidth - 10; + auto widthWithoutGaps = m_targetWidth - 7.5f; this->setContentSize(ccp(widthWithoutGaps / roundf(widthWithoutGaps / 80), 100)); m_bg->setContentSize(m_obContentSize / m_bg->getScale()); } @@ -358,14 +373,19 @@ void ModItem::updateState() { m_titleContainer->insertBefore(m_titleLabel, nullptr); } + // Show download separator if there is something to separate and we're in grid view + m_versionDownloadSeparator->setVisible(m_downloadCountContainer && m_display == ModListDisplay::Grid); + // Download counts go next to the version like on the website on grid view if (m_downloadCountContainer) { m_downloadCountContainer->removeFromParent(); if (m_display == ModListDisplay::Grid) { - m_titleContainer->insertAfter(m_downloadCountContainer, m_versionLabel); + m_titleContainer->insertAfter(m_downloadCountContainer, m_versionDownloadSeparator); + m_downloadCountContainer->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(.1f, .7f)); } else { m_viewMenu->addChild(m_downloadCountContainer); + m_downloadCountContainer->setLayoutOptions(AxisLayoutOptions::create()->setScaleLimits(.1f, .6f)); } } @@ -373,14 +393,31 @@ void ModItem::updateState() { if (m_badgeContainer) { m_badgeContainer->removeFromParent(); if (m_display == ModListDisplay::Grid) { - m_badgeContainer->setLayout(ColumnLayout::create()->setAutoGrowAxis(true)); - m_badgeContainer->setScale(.25f); - this->addChildAtPosition(m_badgeContainer, Anchor::TopLeft, ccp(5, -5), ccp(0, 1)); + m_badgeContainer->setLayout( + ColumnLayout::create() + ->setAxisReverse(true) + ->setAutoGrowAxis(true) + ->setAxisAlignment(AxisAlignment::Start) + ); + m_badgeContainer->getLayout()->ignoreInvisibleChildren(true); + m_badgeContainer->setScale(.3f); + this->addChildAtPosition(m_badgeContainer, Anchor::TopLeft, ccp(5, -2), ccp(0, 1)); } else { - m_badgeContainer->setLayout(RowLayout::create()->setAutoGrowAxis(true)); + m_badgeContainer->setLayout( + RowLayout::create() + ->setAutoGrowAxis(true) + ); + m_badgeContainer->getLayout()->ignoreInvisibleChildren(true); m_titleContainer->addChild(m_badgeContainer); } + // Long tags don't fit in the grid UI + for (auto child : CCArrayExt(m_badgeContainer->getChildren())) { + if (child->getTag() > 0) { + child->setVisible(child->getTag() == (m_display == ModListDisplay::Grid ? 1 : 2)); + } + } + m_badgeContainer->updateLayout(); } // On Grid View logo has constant size @@ -558,6 +595,9 @@ void ModItem::updateState() { m_recommendedBy->updateLayout(); } + limitNodeWidth(m_downloadWaiting, m_titleContainer->getContentWidth(), 1.f, .1f); + limitNodeWidth(m_downloadBarContainer, m_titleContainer->getContentWidth(), 1.f, .1f); + // Update positioning (jesus) switch (m_display) { case ModListDisplay::Grid: { diff --git a/loader/src/ui/mods/list/ModItem.hpp b/loader/src/ui/mods/list/ModItem.hpp index 3891c3a1..be4bdeed 100644 --- a/loader/src/ui/mods/list/ModItem.hpp +++ b/loader/src/ui/mods/list/ModItem.hpp @@ -48,6 +48,7 @@ protected: Ref m_downloadCountContainer; ModListDisplay m_display = ModListDisplay::SmallList; float m_targetWidth = 300; + CCLabelBMFont* m_versionDownloadSeparator; /** * @warning Make sure `getMetadata` and `createModLogo` are callable diff --git a/loader/src/ui/mods/list/ModList.cpp b/loader/src/ui/mods/list/ModList.cpp index 530c32c3..123b1ac1 100644 --- a/loader/src/ui/mods/list/ModList.cpp +++ b/loader/src/ui/mods/list/ModList.cpp @@ -6,6 +6,22 @@ #include "../ModsLayer.hpp" #include "../popups/ModtoberPopup.hpp" +static size_t getDisplayPageSize(ModListSource* src, ModListDisplay display) { + if (src->isLocalModsOnly() && Mod::get()->template getSettingValue("infinite-local-mods-list")) { + return std::numeric_limits::max(); + } + return display == ModListDisplay::Grid ? 16 : 10; +} + +$execute { + listenForSettingChanges("infinite-local-mods-list", [](bool value) { + InstalledModListSource::get(InstalledModListType::All)->reset(); + InstalledModListSource::get(InstalledModListType::OnlyErrors)->reset(); + InstalledModListSource::get(InstalledModListType::OnlyOutdated)->reset(); + // Updates is technically a server mod list :-) So I left it out here + }); +} + bool ModList::init(ModListSource* src, CCSize const& size) { if (!CCNode::init()) return false; @@ -179,7 +195,7 @@ bool ModList::init(ModListSource* src, CCSize const& size) { m_searchInput->setCallback([this](auto const&) { // If the source is already in memory, we can immediately update the // search query - if (typeinfo_cast(m_source)) { + if (m_source->isLocalModsOnly()) { m_source->search(m_searchInput->getString()); return; } @@ -550,6 +566,7 @@ void ModList::updateTopContainer() { void ModList::updateDisplay(ModListDisplay display) { m_display = display; + m_source->setPageSize(getDisplayPageSize(m_source, m_display)); // Update all BaseModItems that are children of the list // There may be non-BaseModItems there (like separators) so gotta be type-safe @@ -570,7 +587,7 @@ void ModList::updateDisplay(ModListDisplay display) { m_list->m_contentLayer->setLayout( RowLayout::create() ->setGrowCrossAxis(true) - ->setAxisAlignment(AxisAlignment::Center) + ->setAxisAlignment(AxisAlignment::Start) ->setGap(2.5f) ); } @@ -634,6 +651,9 @@ void ModList::gotoPage(size_t page, bool update) { // Clear list contents m_list->m_contentLayer->removeAllChildren(); m_page = page; + + // Update page size (if needed) + m_source->setPageSize(getDisplayPageSize(m_source, m_display)); // Start loading new page with generic loading message this->showStatus(ModListUnkProgressStatus(), "Loading..."); diff --git a/loader/src/ui/mods/sources/InstalledModListSource.cpp b/loader/src/ui/mods/sources/InstalledModListSource.cpp index 91e6930e..fc996bb6 100644 --- a/loader/src/ui/mods/sources/InstalledModListSource.cpp +++ b/loader/src/ui/mods/sources/InstalledModListSource.cpp @@ -137,11 +137,8 @@ bool InstalledModListSource::isDefaultQuery() const { return m_query.isDefault(); } -$execute { - listenForSettingChanges("infinite-local-mods-list", [](bool value) { - auto size = value ? std::numeric_limits::max() : 10; - InstalledModListSource::get(InstalledModListType::All)->setPageSize(size); - InstalledModListSource::get(InstalledModListType::OnlyErrors)->setPageSize(size); - // Updates is technically a server mod list :-) So I left it out here - }); +bool InstalledModListSource::isLocalModsOnly() const { + return m_type == InstalledModListType::All || + m_type == InstalledModListType::OnlyErrors || + m_type == InstalledModListType::OnlyOutdated; } diff --git a/loader/src/ui/mods/sources/ModListSource.cpp b/loader/src/ui/mods/sources/ModListSource.cpp index 44900d20..62d49c99 100644 --- a/loader/src/ui/mods/sources/ModListSource.cpp +++ b/loader/src/ui/mods/sources/ModListSource.cpp @@ -62,8 +62,10 @@ std::optional ModListSource::getItemCount() const { return m_cachedItemCount; } void ModListSource::setPageSize(size_t size) { - m_pageSize = size; - this->reset(); + if (m_pageSize != size) { + m_pageSize = size; + this->reset(); + } } void ModListSource::reset() { diff --git a/loader/src/ui/mods/sources/ModListSource.hpp b/loader/src/ui/mods/sources/ModListSource.hpp index 7e241a9d..9e6e904d 100644 --- a/loader/src/ui/mods/sources/ModListSource.hpp +++ b/loader/src/ui/mods/sources/ModListSource.hpp @@ -77,6 +77,8 @@ public: std::optional getPageCount() const; std::optional getItemCount() const; void setPageSize(size_t size); + + virtual bool isLocalModsOnly() const = 0; static void clearAllCaches(); }; @@ -139,6 +141,8 @@ public: InstalledModsQuery const& getQuery() const; InvalidateQueryAfter getQueryMut(); bool isDefaultQuery() const override; + + bool isLocalModsOnly() const override; }; enum class ServerModListType { @@ -171,6 +175,8 @@ public: bool isDefaultQuery() const override; server::ModsQuery createDefaultQuery() const; ServerModListType getType() const; + + bool isLocalModsOnly() const override; }; class ModPackListSource : public ModListSource { @@ -187,6 +193,8 @@ public: std::unordered_set getModTags() const override; void setModTags(std::unordered_set const& tags) override; bool isDefaultQuery() const override; + + bool isLocalModsOnly() const override; }; bool weightedFuzzyMatch(std::string const& str, std::string const& kw, double weight, double& out); diff --git a/loader/src/ui/mods/sources/ModPackListSource.cpp b/loader/src/ui/mods/sources/ModPackListSource.cpp index d2d536ab..77d19fb2 100644 --- a/loader/src/ui/mods/sources/ModPackListSource.cpp +++ b/loader/src/ui/mods/sources/ModPackListSource.cpp @@ -21,3 +21,7 @@ void ModPackListSource::setModTags(std::unordered_set const& set) { bool ModPackListSource::isDefaultQuery() const { return true; } + +bool ModPackListSource::isLocalModsOnly() const { + return false; +} diff --git a/loader/src/ui/mods/sources/ServerModListSource.cpp b/loader/src/ui/mods/sources/ServerModListSource.cpp index 3dc54f83..f66b06ff 100644 --- a/loader/src/ui/mods/sources/ServerModListSource.cpp +++ b/loader/src/ui/mods/sources/ServerModListSource.cpp @@ -115,3 +115,7 @@ server::ModsQuery ServerModListSource::createDefaultQuery() const { ServerModListType ServerModListSource::getType() const { return m_type; } + +bool ServerModListSource::isLocalModsOnly() const { + return false; +}

Ms*<2P3`*M;P({aFh{$@f7Qo5ub?r8u3i*FyepV1iVSM zPbmg&w(H>JABEk2)Ab#UJ#l4O-XvVth%do@SX@uBUT?-LDL)8{ z`=Pxq@jM(M%M;J-o@Oqiv=N#9kP|v^7xCrxq&hi%WkG#KF zujTRgl*e2@4uGG2g7d91X`W3fK{gO8Bj+vzG+nG3wXB`xwdz<2mQkobIpm_J%$ z^ZR#rv9RQ(Y_tD8IK802N8(pS9 z;g@B67_Q^4B?8QJ`;njnbNIr zWa$9wqcX+kGXXDL6JUQHe={y>7HHLUD~?~rBl!`G=VktyzcGIp_v0;adWBePu1r4y zU-jgCq(8x46?K2Tfm85kS)T7zj)%Ra`{8Ppbo(sDb#N&e{}i{NzgEPezvke%^as^n zPh%g_zai7tyGD7&^U81>{*QjXHVY>V(4YU?gWn;4n9P3qyB&!^a{s;=*0Tn%@Z<=w;yM!eh&`V)R6Hi%F9wG`r_0}f2jRUkegoI39bi9C3%Esj zxT8G&FdSw4-tIE&^?ZQ+{`w`H*{Gj=e_Q8w^859(pI19@q_=MG5Ai(A|2gN+bNnOO zhyE;&SMfIG*9)+J4=Dl}U>%V8KgEf@`tzA*ac~2UC)59nlNtut`_ndm zFyH>IzfUw82S3){iF+B}H@c1MSh_u%{7L&6&u<6g2S$I}hEomS#Ge1^{@CCS`|AhV zuj5R^t8lQJKHeFeY#jfYLawjjF4&`y?tgFLXk0Pwe3r zVE3O2e_2-C>G}5ahnlz-ac`NwHBQ2{r4#T%Jb(c$=FbDzV|%Q_%pPa?* z^&Y-xr2h*-4U6k5`u_#&MtzS-Kf$ZmPnMOg!a_Kk^}QSx>$?x$PMqQEY>$C>hfFWp z=Tp1~)4iPWLY!s9+dSs_81d=&8zX)MA2s3?|D!#PcsxFX`^fr@!#Cd0pQoMc5?_b? z_z^O7KG`@Ji~b?b|1|Dk#Q(xkSoALuum6Pk5;v6&$6<|FP<;N@%?cwUM!Cvi5>mfFG|0Oi|{zHkXQWTS5pU}B6YzMf+T#N}3wM|0?Zo{O_4WVGC4L>}kzVz$QYGE2%eXfA#rSw0 z*CfBFpSV8`af$c9k7a(5J`qp_=zJ}x4?I^R2ZR-;%u*1aN+C#>l_oH z7@sple5~$&+i(%?Dbt_Eo|pCS4SVpxkl;x=9)J^#_+acdS!5v zt+dJz7uVYd*P5lzF9aVSrO&UEOFRaLkY1hNTR0M{>p4&OZM~mdkE7qwfm_P@ z{ecgR()D|SD^NdAS-(oau(s&z`JC8I!<0f`EowWz)Lv)Fd4su>kQPt=Ua)1$ZI*rll`?9uFdtTMS8KH zc?&P5{nhxHkKI=2?>}zFHLz-rFL5obj&~G~9;?@be3$r5>>$0meh=|T++Ehk%ZvGI zrQYwhz`0oL*G2os;lNe8y~pB6ykF*Dh~3xd{oX!&;-lj6A@ZNZxA6#BUIBKb>i%g} zrhPutzX$AxQ;Bz%>AT_r++TV&?z~oyhrM_jJ|gS$6TZy%5u3{NZdKg)e4+mSb_2ZR z2mSm1J#kvT!+t+?HjY@Y>%R^sV6|T4;4rSA+K>K#2hjfN`d!3{q*vGLKRg_(^{#eR z`j6pIJO_*UQnZ%?Z^WW};b}MntK)CQyRn)N^6@RKj%QV)y^Z`Y;QLsO#}2qontmRY zf_<xGvWa?*pC_Ui8vCg{;&{tnV>)4yWS=K z1>SAsKZUcg>dyuE2P0m(ChG^TB*$l6+|GC&)f0ypeg_w9(&K#>_Dt8$3r^xJtoDm{ zaMWf!AC<2~|KFn5llpid{i7n+PmJ#uaVySG^^dN&F6l-4iuG3CIqRhB2xH^#TIS|3C46C>UOdu%N}o=88?#mU&8 zxXS-N4#(YPebVt|et%0?oc}>Q_v#j_75zi(&(67|{}V4Hzq%ftb=ZFxR;0ydS=7xq_)%O9tK%2oI=HE|f5~0^(}^yf4y!te*#0smpq@UGJZo;gN=4#W{GZEPpL-!}EU8|3rK4 z#fhKj{hGTs^E==FRQrt=uy2N*ue#t^tor8&oQQkM`TH|`zD&G5KNRAuPj&gBKJ>>O zdi@)ZcjKzEK09$P9w>bj`|s5A?={>8tNHa2jxgetUtoOT5i-9Y&cWPzi}RZR_3ozkM_q4q#NP!pXu}OjAvn0pFw!O;dk(I+*aoQ2%o^Be~9+q zgY$7E>EpP-@J;*xkCXAB`fk?Qiu&`9Bk;)2b$MBMJXYnM!YTN9nZK4V@p7^DdJ>H{ z8u>TiBlJIUeMSGjJ`?FHH)Q_A z;(l2;0B_{{)%AS~C-VK*0W!WE7vfK(zr)$2SJ%s{5&N5O_4kvaa4zXpdJ^RS~ zOYzXR_4B38F7a&awo6~X^VkEc_3^s0U}8oOEFay&79#qk310rIQk zb;gI~@x=T;0UyO`{Y=MsM*K8BVZ=)|akEYt4##HNv$K&!wd;|70;(uVTEPa0y7Q}pW#9_ZbFbo$Q*1r!n7uO-K#?xkei2Uk!Pq6!6 z4*T^sRjGJfA#r?;$W=i`xrbDtNXPXIP0NKzZK^gK7n%$mk41zV0C_7 z@D;4)uX*?}-X!OPy~3+w?EAm_IPE{ZUU|1vs_smDlC@wWdB;oo^?+nEoivPpp5# z@Hyr;Z>K9-@8d^UoST^MHsQUbZ{&0p>r1>67pJdc{ftM4Z*`U@*2715BmGBR&qi(7 z{}}Fr6DkB+VU#D@GYO|*F`o#(kJE8&>8&_uzMikYc8TZX9MY@f-Nk3{V#b>&@7cDj zC&u3cjmCp2>A%l75ih|Dr0pT2^?XRe*>>vtjmAo z60hq(Tyu^t2#p&2vp3i)I2v?w5qCGa@+co)p59uF8{u(j%^RJTa z>7P{s?dN%QaA;M1eIsx*J}%22g?+0r-sJhGxOfeoM!cg;pM`UT)$y@=jpF>GenmJQ ztLGb4!Z?4d#zSX(0`HRLy@^w52HN|jS@z(O^mq6G*H`t2 zi}=ohVvFlnh?|mL^e3_3bPs3$A}z*SEqu(#?~l_tUMYEgZLoTYYZ&h0&Uo9i`tN-X zz!_Ne$G7nhxG8y^*AG9&VtfmKiAOKh{U^^Qeg*qJr~A(X9Ew$ct@twIb(zlp0yg8V zaJ0-X`r9iw5%-kmHv~sk)8GHxgtKY~+V8J_k2CA&>r;Tep67gI{t6vfuj}g1gEhvP z{C$#E^8EVaXm7n9Ou?Q$`tP@{#!ImJy_7%jB;)$J(b4+RKI-~b#dD2#Lp;!kx5i~Z z)Za&n!shpt-o&^0{*t&JqCKYJb1U`p(q%63PjM~2Pol=}x44P4$p15r#%ld65#eTy z!fHM9$5;9O$~f5`N!ZaS(Ek4029X}C{&5aQK}q_w)g^>vBAg%^@uwO0yG z!(#pr?Ujmmt|@*VB*y1wF7fa1Rnm+06X^@^ZCReMTNn0UM%){hY0Ug6&$k_}f;&ma zVh2|3Hy;l%{3RZbhsyr^0AFkpXdRIGTSu}VX&PvMUurUrFrF8t<5_`v{ko2i)1G3! z5%bGKJe2lQ{kLLQ?q4~7VR8QT@qW^KIbG2T#lb=PdQQU;SoNnPILdIPZuCFHuj6>! zhw?;wO~hT+>-)t8F7Zt`Q|1@xzrk5pTtDIS_^1*87oWi&5f}4UH8!Gt{OI^r>2^3N zIMDw5`YasTOxOPy?u9qW^zKp22Q32a_xBp%T&&6;fd}#VQg!}&@Iu^O=0Alm$@UZN zeFL}Rd{uit#_A=`snsh_yS;3L9m-tv0zw6?37w>cNH5Zo`6Tf_k_Gsqfw_Lp0#Rpvc$i)qMJzaiR7pJ&* zzKj3o;vZaG=;8-1uHT#WB%HsuE!#g1=e?}=AIVs~#QCqp!Ti1OQv6%==lw463)r3S zi`AF$@~=LfKM2n^{@!?Byc_o>y%;}ZUAzdF>8Rt|u>%i~<)6k`Sj|^Y@L{ap-wf@; z^93x{e^K87_%T-FV=i`&(DUIA?1k0y*>kuCR{ixcu7$m2c|OtfM=a(qQGQq4ozHJB zknW2kiC>alh}BE9=T;ZzxcIh<%fH6_(MhitA-D}z^>g5MhNt89SUn%zj3W*IfL}Gz z7vX5^P2I%#)a(0neY@cC#MORuJof9X+iNop#NzWsBL7(&VZ_A;1-oI@UVb3_iyUAUfP6Lxnzoj=OOBXCqC_qQ_tDwp_YxQO^2 zS>8F9_-z;0j$!@nrrW8;q72+?*`W- zJ?+J#-K=+r2gvw@BUu}?dA9Q~X4>=MQ0N4hux$M@FdcN))pidFsE zPGCQbKa|JsEFVuu(;l0{4c|~_;)Pgo2M{; z#PGaJdg@f}KVt)(zyB=aH?VIU`zH<~{QWepM||=3-GxJ^GhX}a`13P(zVLdWbwj2f zjx!RtpOKz6lk5Fv@$&?c|Mgj{7Xt&GzfU0i3qFNg%lf?hHvMrB`(^2PT!<^n@&>%a z^XMUZyfvTgX6?c1c%4!hZ$kr}@0W=3{odvILt^psHsSC&+)oTEem>xg&t-iZ9%z4l zs<-fnK&z!Z-W&7ye8@3!jery10#td*SG$;{Gd+HwjO{^=191yzgeM8>8#@$|Bxx!0P?CDflr~_kWwQ z*I2!u{spU-sBhWDPdmWHui`xNHy0?yAF+Cg`aQq)X=mUi@9FEEk3HrW&p#sne|R@m{mpwF z^V+ zyn!8fCuv3fva!c9-G12{xIf145f|-uW+VIkw0~cu-WK{3UMSR1!{);Yt6(?ot=Z#Zw!e{#V z`Ffm*`^f%#2D|U3J>>bheah$0zR>T_)WxGK>i4HY@Ot(`6*zbC{!=&nXzw=Xc=WPr zSkc(Z(oVpRz54xvNjNo&>p^~TeLuv$U+VsI1&3l$zKECILI1~UJ_^9ehF`-Ocz{g5 z9DD97-cO4BKjC$8arXUt$(`I!5^qX+(VuGLx#?-vaoR(iPcxTzH=Ia%ajixAfq0sc ze+KTiRp(#f68{WuGxF!*Y$N|Q7eB!T#MSwDXVTw2#@N3f)B>;K?{TU5FB1P&b*&|O zg?Rq;8jjqr_b>0^46MpKiaoRS`zz0V#`$0se*<5{>V9_xF2ZX5`v$9*Xp?g|>MK2; zJj4Zc_2-}cK7TrW5Uy51|Gk_j?Cz=mUeyA86|3vN7Z>9C97|l!b2y}OoPEDuau@y8 zM}OWt3|}g*`d@Wx7*;P)-!VA;>p;t!e~a>#;%UMp6aEzMs}*NIf4G3FJ){5r%0qmn zTAcmlU_Z4>4CHH0$Kh9Jc{(H{=0FLs&V%5Z{dZwi%ehdi>K=w>f%m#Xn{Jv z8dhJNdO$y~7?0DjxStm1vl?H->Uq*(d>ebq_#Nz-qvLh~l~*|2>8eVKu(5;|Exk@3oiue52=w5PZ9Joc;Z8 z2M#2z+J7Pr#f{|gR^kNQQTi*q4U6?d)b}#>{Wj2=DP1Fr_QNV3gMAL^`S26m{(pM? z_!nmoSLr)^NqZ4j<7YBnY0RIC@o457(Y|87*^ECSF7|_B{CabqVEAFFxj$j%0#p)&cyFX6LEq5@>@BNHl;+tgpSFwj@jJ@8C!-a1-?C*Q-!t=h<<^PV?V0AtHvbkRP zTUlNtj?410Nyom3Ejh4QJGb`!O|F-&y&jTLQ?_UnX>Lt#3 zqKl{DRVDa6c#?_s_!`GAj|nniAA~*U2ix)2a7bV633z-d z-Ck>P^0Ptq_1P=(d&JoH55Hqap1vMs4sd^qRr~qlvAByo|E@UYgCP6&%m(6p#7oKe zGW<1WIV`^3I0vie5f^YF4wLa`a@gNh(0^|^0H2y3Z08?(OCt)>S|HJPX@!E%Y zzJ}HN)vw^p)nWGY!nbic@m*X1(Z4t0NaOv^JREMg2q%>7Xw8)8=lehI|9{la=N&lJ z@Ivf3srP>e@n!si%>V3R?)OgV^GU|#@f$M!DGo2w(H=iPVt0-oBjcrxu>UvmhvD(K zqrCoc_*}w9`}gC=;H=Yn|Fa#3cWq{WKBiPI&mYd{&(k!$y4(%-ROaJ@x-@&2$6K2HCy;dDi-EnaWL z`{5hJYs&aIY*o_lKhG8UN#BUL7%v~;tyqi~QT`sh7Z>NRVx7WAXdgA63h*@Qr}~Tg zQRW}|ry4(9u|HPhbrG&*_%yC(xXv-w6I`F;i}US;*U|sf`#F>FJGi!tufYYR-!Hu% zr+=h<5nnX&m&oJ&0<88U4e)ua>emww!D{_V!s87u!Co9sUB8Ps(6Hb4e16*Sc);Cx^kLrOhV^zP^_zG6}f5*2Bw>i%Bl`m0dFMQXCZ*hrd z#6VD_r`e!$sj)zK*!JhegJzR_1;c+s424`Y*eJh^kc?J%X@emwwuY=uw1F_dn z`u)GRac=33_VdT>cp7mv{(izMa3xt@nKR6{ShZgpoQWsN_`BHeypEs4!C17fIKO&7 z(%wdVJYJ4#%6KNuFyi;{vV$MY^1-_MKk&*R;AD-()vgM8-Kc!&M@!Ol4T zcm4UcWjOkF@%t$veFl#FgZj(*9l^c+)YtDORxfe`bNRQ(U+pJ8Z^-;B+E46P zg7H?ygSXRFtSH=(xcdC!0DOeFns3MAT6c=ao9K^e_&Kcl^D*qZuDiW|zJ~pYtNE<# zdDfpjt?lPm{2<` z=NcZ0FB@KtA7Iu04&m$x!FK(A#|4{$?eSFmBJ+FuaQk|+!O?~K{_ZWjq*gQg^YriI zX~fm}?Zr_egYD0wU&Y&qtLs($XU4-{y1Z~asB^geJUIqCh^zJ;gCDa0R{eW1P9(lq zw&yP4FZx-_nEyn7_!mDQuG0Jd!g#r>_v6txX-7x<^G=iT!h>Dy=W)w%B5WI1>DfE+a=~x(yRS+Wt@utk@ahYi%#j^tBk;Y|FS>g1Vw#gaHBnG);Sg=v0q5U ztM2Rl>wLWYp8mYVE*x2;*N3yX8}^pR^SsP{3@?-R$8LY?`LjO`#x>=5dml$~Jk?%@ za4)RZ$0GbH4wL0o{+0Q3FZ&6Z-yfej9cH&@6#l@d|75%li}5DTcP-v-_#obc#r?R5 z-^0G&hueR@wCWX}&k|SHBLaK;qx;(!9D-H<`Uq!Zwg2CbzrpJKuHd6sySO_nZDXp z_Q&LJCH*okm=@~%Jb-AQI9zDN=i=<|U$Xb}8?kzcI)04v=LOsEuYQkb4G6WrA9oX{ zPtw0fS^66Nr)-dY{}_VzVby-a@r^I^et9{}Ra-%rlM3rp+2 zC%PA>F466O0iPcpY+uhucwWUI>jE2masDq9P`|3wPu8am&h_B$2g~Cv#1UV#vFEEj z*q`}4NXF0M{8~YF{qEug#`;(KCf9@Z73GQfrWRhs^A0iI#roF=uaOq@8G=)>y8c^m zy5T=?1`d$NuW^g|PYbf|FIwT(mo~TKgYbFMd&~68al4g4_V?ZP;D^N3e(qOX>p6YB z{=${A)2yL#zx%``Uh#L@pY*D}4e)ZT`bSH=#fV4YOk7)@e}6pbK$`vgK_gt^({P?F zPqf$j_%bd<1B&+AfRhgDzo+>>e6>!H{re-=aGknA_UEM^;y1CH-+XQ}Ut)E=JK^nE zt%n0}mf@ob#%LXf@xyo>Yd>3ID=S&!-ym+AZ9RIJA5bnN9DWRI_P zcouFd(|?IG4F81l@k=s(2iIs2WY71t?l7LQw~W7t6R>KJIGl*TmDh7A&hOO8e!jIA zkK}ot+OPeHdvy)A-%q@Q)BJ+1M*Lur=noYN>EG`K+wBvAr$y-czlQz&g6#F`9o!tN z`s~4N4Bx^XjP%w2V*NJaU2reMld%J<^=K{r0ITtpjWe<8Kj-l&tk%be_%RNX?N$9Q z=hHaIo)25%L3jbvia6idxUh-tZ@IX}w0Qe|>NXzPG|2vaUB7#@x4%B$5jY8}`>m~b zmJz>&=V8^q8W!=q(TESjMOa<`cX9IoJ)Y8Vdptm%&-Zv8ZX{iRbFsHPAJ4xTPl2ot zGTt1o3Sz#NeglsW4zl;x({RzWU~8$2r{fdE)%|2HzKu`I{pxL;6B1MaXitVzQS+HxbSaykdgi|9)eYWssAtgG3+h#x5X>4TA%vkLo&Z8ZyG*~)%=!< zPZ;rRdqXf8DG0l_((BD|JpSJZ`+h0|*CIYimUjX#!L?<7 zyN5GEnGfasQ}Yq&+Xh+ZWc)=OJs{XR#snei(-)ukIM&`Trr^SMLH6&5Zp7~1E$sd0 zclcu2aQpibcW{T7^nS0>W3Jb=aJ&Bp;3dS>`q%{zJ*a=bFu^501!s_6thb{7EXQAC zwVoZrM-5l_kLUkb?blo5g7q!z-;0dL7m0_-_WA(#Skl7w7dZZ43;X@Av$#%sy`KJu z-OjbQddl{!_k{gHvVPwG8g`I=s4RaDPORL_YOD5xIET3Ek2i3EM>BiAti#ACB(C~L z1ipHl_LJoe$DU#O{1@Tf7j%3lu0{MenLZCktbEB{Zwm1$TvgV;x?2gW=%WaGKIwt; zR=i~Qr+4vV$`k9OX#b6P?sxk8cG)iRpRixJzFzlnJFM2<=Sq~YGO?N;o8f${?oWE* zvvc(CYs|noSdEYEIKG3+}PO7!&OTamtPP2 zHqn2dqdiXTs`p!Q*uNY7LC)_p@#T{d_VG63$X6(j9}E=rJ%W2p>SnK>0q(R{te%e& za3WqH>-#>={UX9%UvhBD*PZO&OE1Djq+cofi+^d_??5N}ey%?rZg>$+{Hc?5OwKQ- zu|M-gcX_;fcw209dwzSiObKgYOmlm_>WT~d>EAzp8@tVBeq%t3^Gg%y`|I`nD}4TL zXM247ikA~t^I6%lcqzx1^=XdX(_7fj6Z_)uA6nSsZ3?b2A;R9@e1d1K>tv7TYdAWm zg+2dP@+e_tXSbkc#q|rp3uD{a_rqiHw3v4G^RZR<=$aPx=Owc6<9AxvpU?RPN6*%F zFIU1El-9!D@A=|t(_7g4k*+w380~if?=IB8*H@`R z3G16lx_w*Yd4?14Dau#lWeF}nRL|$%VlUi69`72Cz$(3mC+&?daJ|L&ei1u{1z8(p z{~3Y3vO3xAxdva2jIi$qzQYe@#*w%9dS1mzvs&2eNy%qQSbM+JpWms36N@_A_d{** z#lAdob;dywb?EfVzm9RV}(_YdIu>bl_&d-aB>-{PYpQ7(alCcB#k?EJ> zjH!A)`4VU0Ph@*t#-q4jSNo%qUd(4$t!E8z7QQ3XkH;DGf3+U0#%BzFjnzxc;d$8O z5aUngFIk!SWO|VGo~&PE+pL9Ms;#{q{Ep+(sjn>mx$2zXnD%yi^u;FzhgluD z0HXarz}sTOEVUonhqL1%?9W?Y!jXf*tON3Vs?}h8PH1oc-c?UrEs^)LWqAv5@_TxJ z`vdN^pm@C($7@iN`F(PPJ-&Nj^%DK7FZNl;^FujbEOCji#JL^1*z4~;m-s;({%&(? zv8?ZP?1+u9@9%5ZqW`@fVU3gR6OGR_ZbQwA+hZ~g{-wP&Q~D!ZjpwPVyexe6qi**8 z?hdY%-pw8lwVtJZsom`U9*uprbhCfo^2uYPYrR@GRC*;A1{eG>DB$uK%BUo`%{_!Z5&#&jlG_3!Grib z(U&rwi<3$>xA&ukBK@1q?fpZI+MLe{J%6;sUMqv_`;me8MXbi#yLi=_2>brzARaWS zg?&DkaP(Zgem%iQ$*-Pg_|{>+ht>0re%N=F-rrBgk==tWZhM^lc{N`6|G2vMz#gkV zfaA|>Lhi9bEgR+%tIh5hTYPuH$}r3&7Gf?%sHDZJ6(NR|g%}nKp)90@+?5c@%E~G~ zR!J*!3HiOxcjspNr(QniInQ~{bDnd~bDrn>{Stpv9?y^XIPNLir^kcLpOywX(Zof6 zezlS>Hs$&uF2*wvKjC|)xBD@lvEo_H?sQsn=I_MS`B;d(TgB_=DPAq;zg{u@ZEIY* z%#_E+|4!f2lKK35f%@~0F1!XWlI0tVqn0y2=J-W6 zcrLCd{o})oH(1OEMgE%}xzn!%R&hQi-bu!X2i@sz?W;JKto)k<(|+AN^RAO0C1Zx`nbllk8rN%{?@zJA6-u;@?3`H1aM#hHfp zOFvo3FXNaGIsc3gBK^CS{0Yw3Z1Q`!V-;sPR_D7%C6C4h#6|xt@_VO}_v7!Z{O;|< z{T>$22SoZFl{^Di{mAs^c{ugASSMZ{|2dqp)XYz-M=_pQ=^w%WSnm$g5As~nUIL`e2U|% ztag^t9>x0Zu}bk$?ESSl-km+FI32O7zbpnm+rtyNK8dUTDyNc<;xyuFzEFw}9?aFx z&z#5Zj5oniN6q?92u{MQ<@~A-F8{`iKa23G6BW;!#PNNOXPpdmuE_Rr>~XHIQ>-t@ z^Ywl&;@<}9&u?!_;(UI`^(N!r^``$lUGe$&e5T@fMf&jm^jF2q-(~uN1FAS#KUT~)M7#)J$11;XQaE2{d0r^f|2mNQehK-p z-YC-lhv%NB{mJ9|a}f8Z_?mRUVCv@r>rL|fzl1Y?uXx@ow!et||1cgiq>8f-i}{*} z|B0tx`Sw3>{-r?udtt6&Rh+tind@yPj=^5?eBH*be@uV&NGkm& zevSM^e;k8Thr~J8z8cp2+You%Kvh0g>z!=zUUUtzu=>-PjsUC`MX>{YRS znTWsLS%03h?QqUV-S*C8nSK)XVf|*N%x@XaIquT)?}PYUmry<5{~MQF<9=VJ?=yn( zw{z*=bK8M8U*~z3tj`~@59N=R>1&MS{^_lF{k~O8oYl#U&pq)i(tjq?zl_Un$2o7y z{5D|k8|M1=e2V@NzfOA5UVQOZEcPcHRmlVKRpKwo_Ax8R4vH)jQm9Ym+{5g zLAt$97{mOxPLO-N6Y=@@Qr#f;`iStRNC8LHd5`XZ$5r_rG4xFkiqc+xlr z&?Ur~Bjej}s}OU)cnXJZkJry<>P}$3b=a(5cELIAVx7C>_L=w%k9ha^FUq$b=XMF! z^Ub5Uq&QZu@70)C#p$ywME4&7IDq^40kS@Z;govu`gzBjIF0&O>s#w^IqLx_$wae+nPj-C3_6&BGHX$LZgX{R$tn z)+>v!$Kg2L-*`>p{&|^8U(XRZt!c1c&l`eAo^ZLxYq7sfTv|I$zYn|-*WMlL+}o(4 zJSXwQX)b3iFUX4Y9&}{sb6n0R^7?FxQwB!s`}4lIG@A0tirz$yAr402kV40Cj{x|E5q=fEPiK9<@)Gu8{~?2exto2zY-j@j^`gVHgUXOTmrWfd53Dx4@_nK-Y-h8=k&z;(n6i}^7qzI@I5v2nOsxOqSF6?}^0IVtzQ24~i6@9dKGbsX1l1v!7n z`N&mV9v`I7?*r4Q57x^#e0P2I!I4i#2dTwtLtpVgRS^iIG(urzRVIl2dnox z|H5ZUAISFNe&aS?Ok91x>Af#kaq2PO6UQUs0eHO??}i_+;)C!m;^O{Tyst6^x3=Q* z@M89->gNNz7B_U4zk#z~Y;VPX!N)9L!z*sBa(rcZ>P)9U{W8w!K!&2dw!V zU=QYFqP|7^S=@u?UuwOg0B?RdR`)NLa9(rPV`cvlJcIGs-{rg~ua7~vM+mhUm_`j_XW(#!Cu05c!Bgmbo#zubTDtK|QMORw*a#Tk@e)lUH~ zm>#Qr1sAu7(~fzK@%XVI{rqz%PQ&fUU(BB-<6%e4`z5beiZ8+0q!(kYd;W&kU~&G% z`8ka1KhAtl`XbIxGVj~g%jEnLe@MmyaV8!hkADF6d6VZKvcGv9pBo>o$A^z`)h~ML z_xnqPzwW8$5BI-L|35L>z1}Ly6NjrV=%VNU3vqET)1Ms2t~i(bctrZEIOzT%x_;Ze zfhm6zS>7Hv5f7Gr8hiJy`22>bk2mowJd?Qa23)^SkY1lYh7&CRjWaAaoXL1$ISiLs z9)R2QHTg}$sg{@H9Lrzer00uQa5+}#8^1+=hgE;o0ekZK8qxoY z{SU!GI70d*Jl=}Gk6*0Q<`PZ{n&?2RR=}KQy2F0X#;!5B7T|$o>35l;=hKJQnM@!tdft z+**1c-eARl!%5csv33^M`$W^fw8tay2)TVSK7@x!r{k1%L!1k;zbnCQo(u`$q#%92^$h;S@`rc`R{0m~B4;#^)Vc%J^?MgSgsX!$nn`dF)S(2a$LP>DBc#5YM&zBKDtZKL4^B=izZO|0B5m ziza>*XJPUDOq?IzZ0XrJcrx7WZG{oPQ{aD{)g}>tjd28hw}cguZ-7z zoB1cMB^`!SvFfh|;8Luv*EjL+mh#fc^lm|a5(?5d! ztk2&igPG{;>Oci50U9V$0M;iz8|rFP4oNE)fZDg8D>7*78j9T?Y}oJ!>a#% z9v72dt(Sj~FV-2T$J4uV7@xC-==;-$gc}Xf{ckGX$M;dG`>_?+KWCusFTTbZI|k|g z`8wYHO2zdi#?LA5QomU3|1_@lYDN1K@nK82-mzGJ7VTjQUcvlDtbd95?i-cjOL6FH z74sL7elu<}%e40sIQ31|dt`my#7VPhA9QdcedDFf&%W;9gvjeP3MYNv#l7Ay;;DFg zSyw&Zn}sia+D*5Q4LGCqzvzqe!UGCq18R`98`u&m~xajqcdOV$k zx4+jxUymzsLG^)pedQaRbF;6G|AVLe-IKXV#qrdBkN&Ki***-{Zq`B1&xYZB>`z_K zZ(@%HW_;U&qZXR)!#R()FJe88{KfgHznt+RJIMXMi}15}2VNlK*Kp$7roU^lg7$+| zJONLA$K207gAd_dviwW&ti?h4etrwS{!=gK-++qaJA>15%>JWt>Ho2MUN8=S_pXWm zjs2I-9G2wTdPcd+we#} zU;LWP?`Q0PPapmJBUSR~Pd_mEKZ2vynf(vIbMYd%{ma;IJ;&!+vAW-uQj;I}qe_uUfHv7rd`gdp#c-ibGxI{hk>(yHqq1_7H@uUh+f}XfQxo?)Av97@FA=JxQSB-n){!y57=K|v>p$J z;zLEWAK6|qam)|q`gtGwoiX#3{Wueg_AScuD^9oWj~c9Fyec;Brw>m4wX+`YGjYa` z=JW1_IOV4x=U18EWgJyP|9V$N{w>yXz7L!6q$l?K%J?~)u-bSfzPQr(kcfBasMq`d z!?W7(eKYcW1aIJaNi zhByDg{grf`P1M)LAo|XV@(;z6IsSTBtS3#v6DW_UFZcM2%Sf;Kmv?dIpT-~I#+Qr_ z;0>04!ZCkU%>F0I$mnIo^q zMflX-7-yK=emC~H735r#$9oQY-!}J~)jncAf_KUEt?@;CQ>Kr@r5dK|2%`oTk*GXfEC}3x7Tj3`$O*n z>a$LJ{rRd^vEq;HU_7f;%lVa4CTvn}W2Y|H!ca;(Z%j5lDl|EqW>R`uI@C+~|{@kjAFD?SNd$Eti; z*t40bpLMtzR`JiVA6D1fx43mtt|NY5RP^`1SBiV?qP>t_)o(MLj#YU(;CWU&1?S*y zvcAV+=O^=h6)#qb&%wpk_Idc6mH$?J)rud(9?ebuCAjr@lmDekac4LEA?a258{tH( z%HIYLwc;^24fmAgPr+wPbDgsshNz#XE5%>O1=jX?xX{YK5FfSTXK;~~e>q-!$>d-2 zi#y{juzw3v{%$w`tMU)QU95OIPQa@Ci}0>La^24dMfulOitohP*7n7CnU()#ywQr^ zvxoi^tMl6mzwo!I|Hw-5$M7v{`!TqxzbXH8d>>ZlX9@PhD*uf*u-xRot5WsXb4KaO@* zIt(N3_VaV4xW_)`*DcNQx56&0&TlO4Z^g&qRIKuU9nZXF>StM{_*R@}ZGReXu=4*K z@3i6#_H+MX<^M1~Sksh0wo*J5*KTFX|0?#zs{HTaR#to$4#J}RV!S(sBkG&{iz~%1 z;wf@_k>2Y7{g2FFxFMcr#oOW>EB`1w;a5{XJuAhZz{S?~&*O7e{~7|6t=-d<37A^)V6q1a)-2k{uf5WKC#w2#`H=~e&tJoX4P z*Uuc>0IT>~?1P8N{T1R1SIzgM9jz4q6{lOsJ12am{d3{{7e+PnPBX9$%}n()mmFkH1%n-^R17?VEhfdKgyy%fon; z6;Hq$@O+v7Fnpn^$$xUC_-q^%Vak_}U0CJ63-`C;KjKuZ@-N4ytDF359KAE{i_5I- zJLBtC{>ivzq}l%@+yFl;%Rd{(;6>8gan2hZ_5J5B_!RLOGJfwd)^|Eo+<%Jxr7gbp zt$AM{s#3f+o=AGtAC1D9*7nnI>+j6=b1KDG;9P6_E%;-s?uUQGG0(^7&s+YBj}V_J z%iHcawgz< zLQH$TUfA*^^C8Pa@#aTOf3py$rzYs~eS%LBAHe;z=>IR^j6XW+_nm8>;&?(5^yl%r z;q9d+J_eWkucPiimf(PHroElSq4=0Q-dng$M1p>P)b?BEYc7+15U!2)%JgsGn4dc6 z{CD8vR{B425neCTH~EhC6>IWK#B;GapObM(hXmc;mt&7Oll};(g8x zSmoCn*N!*azly!Fy1qZbyE`SgpI?dk{QSkvG*V|U+;rcvAX}Bh^OME zEXa!eW#cLLcGUgh4xG#9bGOO-f56^Pw%6|$+`t)lJ}<iA>)Ur{iAI zldy~TO;r0?j?39!YZ*U?8~5Y;2c@h1M18DF(8t#S`+b<8*Uw(Y-Y<30?PCp2!GFo^ zFW}@CyXfn!B{!mtr*+ZK8%AOODSUsAO#c?%XZbT+KfS%9-lxBSlU{DGpT|@y5zn{H z`Sh*iNL+t9^HCa%sGm`IR%%D5x7^?BI326@y#fc#YOmv`u?`8eQBQ~sTmd3V1`pLTg&k@cs z^W)EO0sc&;KZ_^6Yx2KU$xZ&p^+UXttj{D|wA7UEc^tINY(Kw}^YL8bljZh5V2>51 z{%+y%Se*~=^LIJ`?Wq)?o@yBrD51sY=Wfo2??yP^mVmr?JuCwm{f52__bkLu-x~G)uWvf{q zjKQJbnf_-SPA0xco{zV1DV`v`1*dE?*K-~@jA=*|H1fyReutN8}B#IUnb&EtlG<>O5TcR5nn3jS7q4$V0-;OtItKQN36E* zSjj24>LH#N$nj?`jyh_}vjyi{{;HCH#oou*zwD3h`IG&fGUHQETpXLAuh*Bc&$lN3 z<#?9mPb>KpE+;-m=6~0vD$Y-5+B=WR^VJn+;3uR<;7HoHY7YyrU$L2=9Kid2Wqgy@ zSB<}DAH-F97cRnTd>)O|hQnOys3;X{@|0?4XaKayEzBjv)-^cmHd&=_f!R7d8`Tc1B;FKjD z_4B>UqO+*!vap{>Nrq^shO-Q`mLG9A9ZA-@-Y>)%y_5%IP2f zqyLfDPa^hrf^~h3!CCkVdAvDzH20&Ty@=0mY{4sdKBhjOaTHIm;-z>SadAGx^Lo!K ztT$Wn2khm9=c!m{E#24iAH?jRlytiS+=QYIh?icZB?r&?6zgQoihffn1{gsI4 z;mKBf2mXV&`h3S>Jj03?;cLW2eT(gX$8)UsEj*L*iT#P=uX~lxr%*nTUX;%dSNAsg z2ja!n_FeEIYx`cf7W<<)xVKNm4cT5i?-Bcd2CufZPshH*#phK-d;#7>+}G^}&Kev- zyq=8jz{jlkQQVEVs-JWCFDw5WcmQ#A{I#!fd{(?E9!*@7SL{C!S3hm)KL)R`&fft1 z0LLdjFC*&b8T^8ke+F*I_N`_47vh;#JP&sw?knS4@nYiY^EY4P!PfrI;q}BDxzpEm zJg!q-EAE5$5?AGa7*8f1DD&@vPZC%4*9Wh*;-m1dR(zUBZ^h@~%fuVX{jb4ZJfBnT zb0@BTugU)eu4l#1<3_~Q_uXE`4_I-JfB8HR^()FJ+TR0so7JAe@Ifq&U&J5BXR#=c z@F+Y$o=@SIaUaiMhs)a$>rI<+vgM<=zh&zg&8j0$D5DyEg!`jEnmY0mVIyYzNh7m zc(>&d_yAV(x0$#ItMPs#F2TLnznGux#X(-iML5IqC4BBciu?SD^tHKBI&Q_A6-k-l26{`|x>Tz1H;uLgN~ zIva_r?Z@G*xVzkb7XHpE&uZ*ZJ=ncoE6TG62R2&i{yumye*RP`{vQq?y*QsDy$@fE z5rY@Y{5#|0HG=j0dlVjDv*P*{$F~?y#o~Cy_SJ8KdM)a`of)L{ylMhtlH-ooYsK$Ci9vQ=cy?3zwJmlB-C)`2icLg`T*UZm+s(U(_Smhs$bMOF}emGWt;vA;oGU8%>A?jx~ zzJXPH+=Lt4XMWG32*+U6KitGwShcsNHMqXN?dpt>=c^0OAwEpzKOA4T@_Q4vYE;qw z#QrznK3IJIK=?SGh}He2b2se)tNjOIpT@!Z{hGcw$Z|S%;eIl|)p!Y3<@p)k!s`0J zr>3XlxzBu`YA7yhVy^H0IOu+JJ!arsyhY}}7AHSYF+Pa$e}nsD)xK`xbnGkBht%?P zmSNR@jKO7=mtmKWIo{(q+wxttxgPKg*?u0uBL}58(K7!;?CopX$1^wsev)lLIzDx#tA5_G0%!ivRj1#Dm!0UU zukZiixy{XZRJX3DvmA^5QRLqiZ^oTyw!%;1i!Foodg?k{+{&c?Qp9l!Ss#Dl`fX^> z()ZS5{CFtXxkiH(`E|!bo(j?5SNRfFf8zRh1^WdD>-+09csQOxOlRpt3^E8d_Tzn9EDfQ_ys(b{!{fQwHkOjyH9l0 z*INr*Li%wseF9F5G4(MXPsK0E@+`*XkCMOa9}97g%k&@Ta4uH!h3XAGosY5V58C46 z_+h!fKKM3P{lQzf=HUdr{Q>-Vtm!|hczZe<@Gh^4^B0ZB_Xu{{%lt;*<+!2r`}kw5 z`nPXzAwDDP^D1s?_2=IAay*Zl^2gwHmY>Fjc&W^PDNgA{`DFd-79_QQG(-}+qQuW&tPfZPWhRO63 zanX~Qyu|gEjZe}30;NC3!>#R$aprJy{WwiLo$a`_Oz($Fuo^#O@cko3f7-rnvLgFOf>T`Pao1_wVoD$OR*Y%`s1`oe7`UqhB#l(I22!Lq+dz-4n8Z=@&US<41FD=4ejUmo_qHGu!C@XxqD z^{>uXyQYl4H~4-X8J~h@&1XE6^^t?epXK{*r1#(ye$PwI2QT8eSbZMD+n4@xQLz4e zSQngwTgd!J<3dbv-Q{~7@5a8;t8t0teb^)0#7nTB<=Z&M@&kUHPs^Qf1|A{vABNB2 z(b98p;@jqW*p8=Q)qa1(g;>3x;51|Yu$cBKxA(`1SoN1KoPne1Fh%_@!V9_IQ}tbd zQ~7+s7P);9PFWqIucxZbiLWxhZ_pBFOpDXw&j1`?eLvV#ynB7He%`VQZ~oBqKZkJg zreOVjUpMi-EsXc_eEPM(9|b$&goyIGaN#!cljR#D{E3Or!};5T_2)?n#P;N`wm*aO zb_6@>d0rKNu7}Tp_3yhqgr6@o<9jk5LVKJn_xBpkATH`x+z*Xtd8fOzqW>Z;=8q!Y zvNin;R`c0J9QwKGAD_e7*pcJYJNP*Jt1kDqU&MEt@!~HW^o5x(-PMNk^JIvAAEOD5 zXt>h3MtyW-?MX1q(mqi`VgEy_FkAy4O>y%qCiVOLwmlYM5q8HF$6|73ZW z;2yLG)xUfu;)hIrN7^yp|C0HsJfEHcp3b4K%>By4xCD2X^;P>}+RqWj8=2mPw|{NY zKZ}p!y;P8B5AWfif#&ED0H9;Z3~vcIeu=;=iMkN#SgClHta8SEUCPR4~-&HV8-oS7e@*9TT( ze>_Z{@4Yzd8uL5#eP=<`&qDM4x6Sb8Y9adlr{{5Ab@Tfp2XQ$bE%U3}p7vYA#Jk}Q zcz}$*imTooqVFHKVLyDC!9>*W54a=WPpA6R+qkh$h_it0Mf=DMX1-+kBOLXhDc{dH zsA-74U%4lQ`GT+c{8AL&EG*CWI6UjwDE<95>+#5DX1(YqksgZ$R#Cnhq2l^;>G@AM z&g>hjp9epUlg7vC&wG7}|KayXR>F)z;97g_aL-c$r7AFOSI5TAW3HUgk zEX%tPyB-PAzh|=rKi+weUa$BI-|9F>-!J-xGrx*5@v*q^iLUzd$FJd%pb)1W4>-i} zEyq<)n%@Wi0%utM71xgn(cg#Z5#i}fOEI6vjKvEFnD6_XjqkVO$8itKjUt(^#Z>g~ z;`~01%dnUa3V)94cjfmov9^BV~{{EG|dVU{@2Xz>%$Dcm9ajy{PTX}rh z*!TXG&IQ?Dy^sHDu+rWCiS_M0xCQI!>ifUW;?bDP!~Oi?A6%XO&e!b*&Rrcnofn8V zlJRD^HE}V&5dC3ie2x5tMgD_?o0#}GoSYV-@3-e*zcC^Der-MO!|&y&{_cOc^obDt zdle6MV!XK;;v9~xIDb*N#Pzt-qOFJfe2&07_`RG@*uOZxbMf|fO@FWv2eaO{TEvQ<32vG zX!`G=X1zEPC$2HS@AL$2kZOJ(W--3s@^^R;zgN^(=2wotB>$e$jbd2u*c0M>Bi#u% zro9}Kei0{*GwE01=H%}s<417Wpo;nx*I&&?>A$e3U*S&py5%wWw&nS_D)po0v-#MA z{OR7^+kcH);lpx&w{aO(_0zg5+cUqYC*w)j8;k8l`m@vre4SoMeh;AL2C?;X$ivmAyK zr-nGYm1&P$I0?}vG5r5s_Bnf;7r_F zl^<_-&Gg^naIxiixHiwv)co;dvHcsS|2vK6;uSK#rimO+*Es!s>LYO!UMu74aMsKa zXAu{?Xg^iTH-80X7B)@dfwcfm)9@0IzD!dd+Op6bu$VsFML zUm5=phho*g9LF88s{hM44y*p?zQ-xg&;0(BJYQXKnr^(>wlT)KYQSjSe0)go`~DY`k9Y&mz(+LR_wQe@k*BGEWXt+ zUYECK67z>#bAAKxEZj||Pr*mtt@?>>!Zu^tdjT5&$F z;6vC~`oZ4xXZQi>Xq=p9+V2RQjn(;l4d*alX(7{pfYqNU&nLJ%-<;2H@eRv2u*V1H zeERkAbn0R?UiHLHvFe{D<4~-|uf;gd@@|}t=gac^j%)LM#;Sbx_oe?SH2HPIQ*kqy zehgk>IU66sYW?yP?D@IL?<{VGpO)KKPZsL|rhg2=$vZiI**^Q>eY?!~JPj9F&che6 z>L0$w)pnctsaHSNkG$jc`mqc5xN3fHU?KM3W7_klc&_FD;hk8`&uaE(KE&@8_LSvs zk2mf${m&El_c}@L`$f@SvT*%^4p~Z05KAOhlvjeaSGn zzc@SzKOsFDH~-4?C$sTTtj4Pk@eZu6|L^c2JVS1O4JRB4(d(~1Da?PqHu26l6MrVt z5644}hB(9I^*S3D9yj~jfE#~felPeG9*%wG_BU`Qj`pv(o*o>?^&I)Qv;Xc2$Kb5a zp?Z9H66fOwWPN4gef(a7Iv?xt)gdl@|L`l`5FP4Fmiucki2frcRQETJ;s88f=9h&F zA7#9i>kr%T0e;`eOK$%gK7v(#4-RJg=c2UZaKe-*Jsyq6`+TDG_&XPez7VCauPwqI zqV)K77N46OrN{rOL)hOa6gm#^uXB@qxAUvEZ*KRN{?T2aS)y<)33*~Qlgw; z(uZ(N(xfH&&He}DAw$gZyok#>nd4c4mpvb)-?!L} z3#cE}9?#<%tar?i`>QpS^F1I+uLp$S#*|mhKL+BG2~o}#nSKT?cqU3epIM7t#23r> zQDNe0e(*Og=J-a-xc4yH|M)0Wr&G_0x4=`le`qA{&--EZC+cqm&Z?WF=ihJR4U~uO$$dZYDc)%Ld%W3l)sZ|u zwfqP!usj%VwfrgGZuu&f_Ucph#q-EcJJ#cKTMiH~B{Kc?Xm zSk32G;@`2FZ~TC7;dU~=OE|vmN_Y9h`RC=yJK_y-n@qEPYaE4J$nB%?3)c3@mEz-Z zs+fv1vQ)!%5GgD=bDe@&#HS#iEZ`BvZ* ztd8$fJOx*m{Y~?6%HuYZ*_#jpv0r(b6+;3XYKHs{m&$2-WvbXYe~X zM5gz8hU*Kf`_XV*W1%^o6zq>@kY3csb2txom)n1UFX4vLrMT)MQ@+L%=x?#Q{vO3q zc#}*&317tPrT5^R>`*-()}2WI`!?z2e5^OVwK&xMeYc{%=HiQe%=4jL_{h7V?%($o z@tZh*X{i1^ppa)750{(vGZ{y%F!P^Pcr)%L%X1ieatMWWFiTXcpK2Ovi z-&z%_*9&Ii>^##yY{k#S57zgem+)@lYW!|Anf~E@(|>ix8Gonf{%ShTBEChQ-$Hzj z`MT;qe#fp4%>1#<6y~Q`To0l?rs6d?TDH%v`24z1=RFy}j5F7V>iJds=eS?mV8+ua zcr%_a({IHwABO7r)xY=@ep$w&o@aeD#KuT0+)XOzY1>u(e;+Z^gNk?C{rPyF7Fx}VsCYkq9{vr_DbReNkOmH8xA{eL*_ zf)C65Uc{m7U-gF{;Ti>@x;($&HkKQ_NdJW+WO-w723GfPqj74#SUtaAikA@oUZ(#Z zXZ~e=U+ZtY;a`65M#kGrqyPJa{zbYU9YXg>72h$P5bDL6CX9d zfAu`hC$9RRe0(0O{_Q7Re}}m~YrahV;ICwV5Q1k7HS^&CxE!yQ8wX!HJ%T^t#+FIFUF<0@p``bHC{qomA}pmo-eG5*Vl72E+QT;%kw&( zMtp+wPVBcUl)km%{9M2;yjr?p2K&QrO1to+-SlVDPvf~B1NHe`j&BoJ?Rh`0{Y9vL z->}XrydQv7f88BV!~JA_ui&KT%EpYI6ZVDb`FHed^bf7g`5J@U>^J>GHoo;plzzUlA5S^jOZR72@MhAh{w*Mr z^N;7t@=U;`&CLDgI-GgHw1*$?IsAvb9;&|1eBzrJy?)sZZ^!EVzKZ7-#pwOzWB(sx zbp8B{j~`5&>!c#AX>E{I>iuhNizd45k zE~n`Jt>#ST-@9G9y@lfp(yQ_LDI7C``#*VnoA43hy{c8Tx9@Qh^{K{>+OwE{oHYGG z7u*!9_LPPLuxhW%@#8pJ9$yKbhkd2%zsdXvkC2YQ-lxoXmx|M|>L0W4J2+aV--Exy zs{ZTDX8UhVd=O5?Gi3Ug@hRL$9`9%P;&)u%(l_y1=GWUeKVp7fZw}XAkvSe0?uu3a zFde60Uzz^~JQb_{^elcAtNxKGa!h2=< zIGp%{`8~83@g#l^>0uc!z}Jh-`M!XAyyMdAXU*r)zWF_*!7}|2-1SFOUvJ=%HzRa> z72ZSqnoNHJ7ye}CXI1Aj|2@m~&jenK7fo@|-=VrZ(YV?_W_~{cH^$>+eoJvCR^!Jh zT#QwHUcu+Fst>;`u4i0JZXbs|E}QH78T|WeVNO4Je&^xra{8@zL; zui!((SIGPuE~b8~hq=$c*k3FTs9`(;m*JOX`ek_H-C_Ft9mYqn8h`J~q5s6gNH2~z z3=gRprk{_Dz5I42T!>e zr`HdE!9Jbi_4VIk3H8hG#kQB{YXJ7o<8DfN2|n^ctX`k`87Hlab!y3Y^QDx3eXM@} zb2Q$*D^|aMn~lp(x^#cM6Q|S<)9<^N;pFlBo|)|b0+&%g4Z`&PCgF^RVa`(7zL#Q; zRs(haa~ubS4Ak?BChyVS9vZ0UTO)8}XuLB+*7ri(h3%_Le~yzv&F`61Sx$MG4{Va< z8HXpP_Sg4A)A4rFx0AU8ukDkUwt;6*9|18Gof5htXWe<)y;?m>8d7Rb8l&8t+ zJDrGgiL3e73-}a{mhEpT_V_7Qzt6H4Z>$-w>+?EJ<@a0F_|ZC#^3*l$uRq>5H{SV3 z*8fY``{6Km`NZ*mT*<%TNa8CPAH?GzJXiH`p;Oy`3nlu&;J%z@12+n>Wnf-CwH;d=S>7a?K#`U}UAVHN$CsIQU2{64EX zpNnu2an*l+iO*rx|Nn!d!o%F>*InKZI6o0)fBmovua)I_1z*G?qz~hy$cp|^?Ejv1 zY~LYFfB#W8Jhx+*`}2Sz|8x=WO!?*ZOL0CH{iTSX#zpus=~kThR$ao}>s=zAjkB=$ ze3S4;8(6=I4%7WzIc^gZroT_$|3lLAd*ET@C(1V%Z|@$a$D3?Cx1YIx*^ToVzn_xn zui_a0IQ_ik;f?ICo9WNfvA2u;%l5hv&x&LJ(&uo}hhe%usj`Xm?0>b)KMZFve^l4| z2t1^Hq%%WqzX&J1%kN3b^e1uEo?-fWzh^V+7q=svZgM@MD_)jJdy{?%-#QVd=c8+I z(mHeg594(2NIhP8enkEBGVP@;UX~Z3>-Q-(#2IBQHr|0VWcf>XvaACcF`wC&XIIMzGqz(juU)2jzX9>qWkQ+zH=$w3}{^V{qzq+M8_83-DZ?M|~#q-+^s*}wBL;P1u^Zx8%+=%B%jfjiy@Ax0? zg?ZB8e*Sa|$1`5}y4}EOSm^1DAg-QQ`Qy>VMSm>DvoJi_dOp=d*oqIsGl|!e`A^0( ztoTfPjq-{7#Pf!Ca3JZ$_qmAjy^j}TaXpIXW4rJiYy0nUb!oBv6%ptBF#MDLKBwmA zwC@1(dtlMnkKdc6dvc%OXK-`N?_z(;`*4=!UvbRqVfy)5^PSueSssjCmY3r=%f&ds za=l&LZ&`i}Ct6O&k6Ye|lPv#%`&e$boAzOO4DN3^2d7y63Jr z@@zcZ@(w)G^6z+*WuHA9(a=FnRtrjz4&>{|KX{Y zJM3fq%JL+fZh1YPZuwW7Vflgm+`n7yhchiN!Ea#E9!39l6wkJN70yWX4sB*z=?8ualTS;vbFtW92jA?pHnHm2IpAYAHum< z&9~3tk7ZocclED$J}%>8f4=yLwS5_L`agt@uA>ucsmI9{gjglo?U)9+Ud!L#r-8J~}R#wY0c%@!Op zw_-g+?EjpIPe{=3mv|oK`Xt_3ZXb*bh|iZ!!nwrNcs~P|S^fyeyk+8NaTb11ZeQyd z$BP58sP7gyB50+1{wv0h$V%}fTta$vKa_^c@i3X+8#v+Kf%<)uPjK?QF!%4bh~qns zLz|fIFS+YD^|`>zm)hb2tj=E-TzjFpA9)=g$Ljh#iHmTE+<%pCaQ9^W`RpFJ_9B!2 z^El(&V|u>31vlsUaWlF7*Vu*C{yk4{yjYEoZSXHxwU=02itEYw$|QXKZF9bJ@#c5J z^z*fIB91S}{dGS{{);Q_zeN44!mb=spMT;!yjZ3WKSlrZF852)1947SjPrt=AH9lG zi7%D$_wg;Pj_*h8x5VV{@h$Vo9-Z|4ehZvIJVI{&D9-=P+}}(P>4~@F1c>s^#{~@| zb$i~6r{9Xu^UZ5G39J4x@H_gG{4o8zV>CXu%B&Z?gVR=rIWy$`KgXpwUivQ_lo#gy z{HEA{Lnel8$WPTrC@#cm`w=+mgD|~*n}e5NRUd~%dMxJmBEKs*f1SzCr-=RsZ<6sY zIDI|yb9uhUW7mfjey)r3o6Pli|M$!faID;4Z@d8? zl%9yEY^MFm{V%|?yLHmv$Fd1e`>0|)M3m=eoQoUD?eG18^M_S??ud6_b$-U;QtTzu z&%qb5I-V`K+=>_B>sGw#8OEEB&Gs#ERjjsu4A;gl$o${LnRu`CpZMtBB;CLH7gIl5 z%>DKxT#h%%Lm&^?nrnZ<13>ULS*T(W^=N{Jo6xJ~8!? zgY)rAGXMR!taFrZ&%fiKF2?nLqWrJ%exOX>86W5UJJlX1VE=9Ae9Xs*c(p9gI$XBH zoS(zE2G`pPSsx`LePNhh53YKa>jSrx@eVi(|0+EUPx+ksmiJ%Namm35ef~G&;$y}a zu+MuD`uSn=682AjpxWz`xL|37Gg=tx$TbzEtjOUl}JUm~PC*o)Nn}du$ z@_1A5#4p42{n&eW0}hnwPvT;{Megqk&N@Q>F1K&=3)fT4etNxSFiwx^qtma!B_Aj2 z_&<2Vx4m_|%ded8ltlggR~gv5YIps9>sL5*WP-lmZFr9UX|+i|4CmJ9t*^&5xW-iT zKH*#{2V{MCou_@{cv&BbIP{w^{r&2baL@@; z-|ynxxRcy|JB~ZadY$x7_$XHWf!77jPs<*9JuMEG67MG4&lFtpyQ$BuIDKDlUB5L; zDbHc!{`g2>Z)ck^|Q23S-v)Zkv^fPj!(uV|Mt+|C-50Aytk(=U)3_s zM|fYoe%T*4?%G#xzZqYTHLm_Q=kvK<`g%#hWv}+q`K`p~<|aG4Wc{7TRkM?I{z3mR zf6X(;_X55(tCueS=h%NW`OEEVTxNW@X40qN!kflo=sF@@+Nc z%ftaKdg%8BzQUO)ef9aSbA|RatgpV_`{8q+nfLyd3+t~F=qW=7N;w^E1O8v<5zYK{*Bl14*$^~yx2+4zhA}~ zYrE;^ZM*Qq9j3ppdzoSGU;REnEe|ip|EwARI^tw}L8c#uZ;#{nbCkN+aRo*?=|5r1f zT*0YW&F2C=IUYPrp8rAk&^a@Hy@}7^rE-6trI@7ACSkh3uj(7_jmtbpK^0N zLDk3)e3*Z0GNa9PK2NA)k$ zaCWC~eZRL1w}}eZ@Bi(<1^A}i-wnLEbGTk_d$g99Q@cyJZvXSKH;$L-Kfyz=dOmp; zFU0j^yj5*4XO*@66ubee{$>H57#*(HX9{o@9w)aygKuHI-cg716%(%4Gh%V*qo#aW zI0~!nPvLwk?pv4R!#!pGvG^8#Kzb~0+||VA#dv_1l@AEaQ&-H+PWxOYz&i!yLS^hM9 zNq)d_0T`uzLS^0KS9=%JRH}6LR>zCh5i}rTmBChheSGi<@Q0|v=8DB$^DPQ z$NQW1F$)*Oc5;|zyT{8fa3SfJcC7fmm!I)?&d)HpeeHYc?-xZl134hke-6S0`;+wi zZY@sTXYRL(@v;+1`u(Yx`)Du4NqT*M6fXTMNq?VN7C!MsioXB(0N>*NSJlS}oVbGf zTUlRaIAe8$?ys8hMGyJZ_X=6wp?HlIUx1T{tMTYKK4Qh4##|qGgxo$1r|>*JLOKm+ zVJ;W<@xP51V)Z^>A+G;^gzoRJ;7PclOy8)9m-7Zz_eZg~eR_<~o$mc0*FW)wvONyRu8ZdTB|pZkLsq)K??XJF-CZgDH#m8tDbH_s z2v+0G4g8E1Z_w1sc^z9*@&3zk?@QK8UAcRlYKuX~q3oG9SUsWPQZrjaK|QycMhQaXCI= z#gF1*{DR!R948k>I0NK*O4C-1w+AZPi|F6Fr?LkdA$2ulRgh0!mH)+eTlPpzfrZi(s5JJLUF+#6SA`_^**ui~h-k-9t|0gK9Q+TqBzl9TczM+nHFV4n`Wc*Lu=D!F%zijX@*XKf)ZXXf2fVh`D zzNheZ-v3hhEx|*)BK7^%Zd_P3(pf9VrxHB!?ntMRd>_Yo#EbVeBlY@ABiyDQ^(W7N z0^WTvNw2qNVjsrW#j?C-aMXiQ&S~kYfwV8y<0GUW!72Ad>ifz5cp~m5^M3_z;Qcdo z|MUrt;(R_Sx4(#e?u&E=$n*h0jE@VF^!J$##ch@*>F@8&!uu8_IV0rzykB6~XG!|~ z0jlwDIB6WLu6Cc6q zemWnA(w@i3@*KpuR{Q=JU&kZl@%n_aeZP2T02hSlU;5+Rut;Z{+aG5 z&+TN&e+6gb(=WiL2ks8h`_>_+)&Rcq5KSY(F1ISn*Bx8gbD-i}*1dZN)F*hK3-fW<`biFFSZxsiFjU~E=+py`&DB9 z3-AiuP;UPLc9@Td^kVxj@D`a~Uutk;~!n=%;$O$^?$Zf{4&n6wy)cX^&PB^r#W6{#XIAVv3g(r8GPvV1ZTB8zUBA` z@z&D2a5?TKeH}-}8wW;lz2Rmu{sdl*)%zM*xDc!S_TzI{oIg>Y<+w(IahuN62ac8T zN3nlktiHc|4NoDySjIQu+TBh49l!;c?%JLIKX^M<_377z`Ct$FQ+fVg#^ZZNI=Cl6-)lKEZ2`GXkGrTwF+KdkCI375pj==Xoe<6`13$n-h*7Ws{l zK8!~VG3Bok!~7kq{951)E1rmFVO4+A@dhit4Lgm^`<{nzYub+}uV_Et;{wvF`tf;` z`JuJ_D7@2(e}H#e@yqy-<&Issf3`de7h%<2R^SUR^S;%VO7SnT&lBeOOR+yz$M1CW za>A|ngE$8J%JH}(P90|2+jtz1YOdG$I0LKkYcmdgGScZJ&;JQLad@QjtsGy=aY7p7 znasbwi}CK87)RB2JkB4>d_itM4o8lUbbgiRb0hY7+8oby?2ma&>TXXBVrh@x#pw0I zKq(o;T%foWT9i_x*H!Avlt_+I}qFUKpvj zpM{4L7vqVzo(pl|u^u}9BhDhO>eIVB<8JNsw+HLZc|F|cSCl6nZ+IzEufINrf5Gbh;9Xpb)%n|p%kThs zJeP4ox`{v3lld=J_3y&zGw6Th{mv8kzLz5%FS-32_tCOXjx_Pn~Ys!$F*nb^nP^P4A-nWADecxL$(rS}d+NvHc)i zKFhk^@Kwu4@O8`8dwDrGEO*DZEN9}|Sk$+;es^NeH%Z!#eKf8=$J{SW#F==UjIYH3wL9wfL674jR{l3|8R^ya8`78k z&ov&46D;TcpR2nM?5X+#IDW-MkqOyk8CfhAqhZhcHp4;;W5a4=d7cy*{pJ ze~~^D`(t%Izr|s_mRr;0^*rnpzkoN9UiF9S{g~fmd7}R`!H10aOSl-v%lf{K_eL)- z|2=Rq9^Q3|e}Vny=<v0~cb|KC^M-xw^a~*c*3~>1)Jt z{fu}wJQ=I`YznS7PmhOe{4`eQe*}ABSGnHa7WwH<>iEy}XZ>HO*P|G`53BqcxDbcQ z`TR#*`%}H2u?Dao#45c5#~JbQIMax4#H;ZW^8Eh7Td$o>$k@$JB8jr^nW zW$Y%?FTgH~^m?@!$Kn|>eg-EO2H1bkpmrSVH}PdM9*T<})1NO5!KoSg^N~y(u~;9k z0LNjqKK_Msu^PX%US)myCBS~)D*$^e@wb2fYBXN`9)C|;w&yzR^11FGmvM?=uh%$V z!*O`f7drg{Tx56;j$EeWRy_URZ~*qr)bUX`+we;4zFfyo<8-`Jw%3z`_H~cX~WNI=BjdpT^&QKQ;`falO^`8-nAgukr`D(h=Ps^Ko_Z zuaosZgKJX$0qK8n`fmD@{Cg1%hH$-zx0Lao*!_F$X*dF(lkptvy;HAmhjA=!F5^`a z=#Pej@oKErpEqzszV7dz*9z2vV^o}N@gt5}QV{zK%igAZUa ze~SISH?GEd?OEO0u5g&+~6Bp%)`8frjpnS1k66?uaY_YzmD+r*JR^iRld{T=NyJpPwV~13~U+k zdH8;wPQMhFkbZ|OuLvjRhuiPZ+{8FZDhR4+w>o-_8URC`yYD!Ov0J? z6`4L0U%{=VkKnk{{`UI}kBzBfH9G5We|`{vQ_t)B*Vl0pakYP#fyZOj-!|cQv8vxi z?8xY5zb{m6Ed7~yyga@GADpS52fmGKpYyjrub+p#u|>-~fE}egpONvMc=BKV)+M@$7|$1Q;w9bx8jWN9x~#9? zP#lTX`ESNic%ZD`dEEHd0Q>&7)_C^Md4YESci{w&4bx7d%$^d2dU z_xwQn@2PdciNtry_ykDe*%6MyUO}}h1+8FzSHk`q>=vVDLmg}{S)mY*6a58KI^+% zxoh#ar&!;O_()v0f!=RS$E}TcCT?lOx8n{*{0QzyTZm zBla6F;zgv7FLxb2JLB^QEY4TdKSAU-{4O45I0H|>YCn>TXBgg(lWCuIlqatDS-dKa z{gd1u+;xh(PNhG2>Gp4heXzQIopGoUe*;J27+L;eoN2_5-a!ih+E3zW#9)`>?g(f|AOm1A7HPi*KrP3 z&*PqapZy6QE7Nzuu`TrZzl(=sHU9E&GF~Fn|BY+6)bVGgF@CX{za#NNBmNFvir32g z8*rqL&VL<8;j3~!bW3A=w$$?V*ga_F7D@C}dV}SiWUCrs7eYW4Z_sNFigzbFaRiuo~~)v)S+95%PRq!eN8-^Q#!AcoIHkls6ZbVznPw zkE;z^Uj9CUIN!rg@oU)eimtzVI^zMW`n16VjCe0R*ocq8$wquJo{UBNivF_!=i#f; z7jaIH0Q>&I`iS{>$Z~76oFAXWX1p2p@2Tq-jvZLlF9!EE;$v|f?kUITYWzj-0IRP& z{u!JTrORvhG5aIjQKs*K%X;bfOk9clZDjt<*bl4ry^7~z)gKzosbYPKRey-ax9}qJ zi~cp-$*DNKkDjjzarJ20j}9Z+??E#D{$=ufD$k?-L-hD-j~xk&CwaVK_|#c`|68`thq&>`0Q-Jr zFHYe2YJRzgPsHo}K)v}@tR=>J+zRi+;`)j8I09cKy;x60{~Umi5*N=CMSLW_Pux?+ z-^J&Mi_iB(d?{|o_)zif_zdY?iHr5T2%n<9!lL~fEZ}|@`Z) z{{;5IYCPV+p+>x32K^WBkmYyBE~EAMpN{9^ow9#@i=*Dw`->a67$1=N{XXOVc1(bM zKl3KeONq3pDJQLlE-@kADqZ)E64W=?3);Bt&s8aB0ed={`;0K zmU4Y&2io^feetK0_3@YCOsw`ZKjH3E^#1TR&c^C_VUy39AE)a4(KrFC{xt&+#UZjj z2XM`w1L(^Y{j&`Fx$5s1xBi0iNw3at1ipn;fBF(H+~~0HSBkO!@<99d6SYGV67svh)3h!m+R}1j`Iu`i1_CL_TOjw7w0U~ z`_uL-=ues2!*N8G-hXG}BI0U%oWk3PtNn;uHplxyujhSncl?%Y-;Z(Bj6nN-VTaSHAwU3YaA zYrm0xJU)V(%6JaGgH`*U!HKH^?DwVIz9KzV_3ej$!+m7_3Aoj2yx!ufn3e#Cm)YZ#7(XE$vJFKO`>N(*s|@YQFKuwZGEtgWF;;N<{i3+}`j< zI2fz`l7&;SnqRi#9IUR#VO)ZT$nr|@neqC4$~#W+8aa%YHF~{kjAL<2nLhw8OVRmz zI>i%lnvwrKoPkw+GjRMnI)9E+d^avK^8bb}V0C^su;*l*zuMRTjeBB`wYvTturF5i ze+4g_s`C$WijT)}M*ei1gxAUQUoP^$t@CemitodXbM)~~V?W$M=D&*L$LjnKo#M5> zVf-2SpT(&-Oy>8)XQt@<9i8HRalVm%7%sx1zl#0e6x?C7{`*pMo#J2OYcjt`pNCz( z4zQos|BB1LVSbeRnVRcp|6JW)z42wk;n;UQ_aCzU18_1{>*;9hIZmI?drt9BaRKSo ze7P2vVbPwVe*3ZS2JK5Y(QvI?_78?z;bOyGaqW#d|1cbBcot4Iya8`Bd=g(Xd=GnX z((6H;^^8BP>e~UkZ`O{(QHE3TOv7K|e7r)o-xhp^>nHY;Vm|sAyKK|*`F)&>)qMHv z2KF!bzPw(q;G%CG_WjH|ICHyBzY-VX1M+x>@zNau_TOVD!~MR~*TZWg?Ty`J`j>G= zzTO`ti})_RpICtla2uKa1kN`0C;#GGI7Y^sZDRc`(Cc3`UWkXu_!RsAua(}3SO2K@ zr{{6?e_}0hKPBeVnwx3gJvzM~_Gf)n{c#{J#A=U4c3 znf^^&b7z$O{Bs6wW$bT%#7htB=Wo}r?@{(k^88-d#`R%8udZh__Bp2OI}NAd=JI&E za1K`KFNyeZo!;|X_M=#(AB0^_==tnp9D!B-EjSLV>rsMpaEv@&?d{|**8MLS*T?F5 zCE&(bl{X*z;~6sl4|wT;So`zii#VUS+JDsF!TlhT@zaaz|W z0(;=PGJgv8#j1T);D;Cc?#Q5{aSy-LVFr00qpNI1d|AUKgH<`a#KG*k*En(KX8AFRsCPYrG^LN2Y7-kZ!S*$L#N+_(+!`&*@kQF;{5Pv znLh;koYmuTJa#!p`^)jT3cHu;`Tvy2kJb6q-_7y<46uJ6tS65COV5vKIM48A>~&tp z&x!nopDdvNVzu7%#Tgg$d^Q7@;k#TwaXs_!wM+W>SmhsCFE8`FL!Ms;?D!|Z?r&po zy(@Y?UyI}LG@1S!F2QQPb=yPvR|D+dQ|yJKuIcA3X}IQfJ>P$iXJXYp*Kq6&y?<%B zm-^h)_jhsF_m;l?AL0UR$@VW0zODD?5Ag+jRGr^G+V_sGPZCbKt3RJ!jThp9GX3xP znh}5IC+c6O;{$LmUMJHpz=Qs$uh;i@pW#c`_nwZ|-_P~JXJr1)IOV>MC*u;Veji~q zUcGyuwOgh?hWE`0wWdnfKEQae_&ldd#r5ujeW&X8zsKTq952(a7U>U#+WUtiB7JJ8 zJ-^mD$o-H_m$w)DxdhtxkJW!>zk<8S>l1-5ROR!3nSUB~ ze>BiuZ+^rM>?z~-@F2tO4$)r?zlAfgnx8UoHm)I$cM#`R3$*9o%7@wSVl`iQW0&fD zzAukA5YNSG{h5i~jraLB;E`D6KaL}KzfZXgPv-sV1G2nl3z?6f2(;hNjKSMlb+qcr z>ywUsT?4JnGW}MZRFCHs(x-6>R{gj3FYK?L((Tn2$GYqDABf|y_(6Cv-ai&@8fcI2 z9oWMw(7r$W3rFD&@_03lFdp$}=?HwQf0+Gw-xOR%{Fsby$A!=F{)9ZA>o~Q2NBe!) zCP(SN&-1)rrtgEtvLCL2#eVn=9Nj|4KgIhD@5jNspP}+U#G8D0zeSeUqKNV7Oa0jZ zi1QtWy*u#yO2(Jsbi;>5dK@GB$36Vu`#5`l>UWImk4MP-AK>;CG%n{d3$pMd@P2HMZJC*f;&n2djpWBbuxWqCi~q!|5v&^26dfbK7z#jNMJ zp?sd)8(({sFd;W0!mG;J}e?O01Ugvtq`gOu_Se#YbxwLEE*cwX zO_ayqk8_iC|G$76k7NAF^o>q39>(kO*az>MK>4yg(sB290*M zY87jbNAEL?C!Zku^No0%NBR>o|3tiSQK0?2dMPn_CDz3zi`cE`gwDuQu-fO>AkTdvtqpv$NwDP!C~@vzvF{h zf!1kh&p&Cu6}+#2#rznDy|V+Yx1|^0#dwBHUxvL_>g(tI7vlqq^;#US7k2rwVtfcc zd!GJ*#q)OI_4q7q&G`xcaDnT!n(HU~`#n5)O`sJZ<2U|hJzUHDBiqAqk@5d^pw&s1 z_XEx{{Ng3{5BLokpM@Y7dv?Zg_w?tfBe2&ayzeN>TYwX*1ljZ1ejMx)WX+KCX{DQ7ziL5t ze`t+;9}BYYe_q9T{n`iF_kWN4kM`~mWKEUV zza_3+5NGe_``|%)3*1A{4nr-Y)8{?~^mQ%Be&x<1Q5I%1b^%tLC zCE@c}eLrOe9%khK0^cXD-XF=uH5yj@y(aN_)lNLsNPh^s5m)I;M1JG=H}MS06W^~D z$A6TGq`8sa9WOGC^A-I|+z&m(@zh`SH`j;sN79SGCnm0U zV|;|)-)DH1pYJGKgsVz_hkrBT)h!o(Z&Igki+?v9hf55|*UFuGYV4xK31%o&S6M zJ{~8J|36%Y2THfE;$lVj3bH?cPr_efRbCFhf<=E7^)JG0do#aE-^XcqhjddH7t7Hn z$i6@CiBs@a8UGObMh96RNN>bja6{>T@Dbcnx^Yz(t5V+}`}2docws*spN#WybD91d zd;y0^AHW;h^s?_?|Hj@iLH7GEZjZWH$#|Vi-wAug2HDS(KEOjea{Xm|Jx(F6&bJu* z_1EqFNHrHLn7`Ml+NTxHCa(6wNw{Eu?jPUcgIFE^8lF5b$clfuqP-o}U94^Gd)eQ2 znT}_2_c>M8Cl3d|!+4VG$N#W9{YTX=>M^b-^$(KiQ*kE0H?DpUBM*;?=w*Lic2C3& z2R=@JY1hl{594v(_mTGcv<~;CyjNuT|KL;OnP23399F}{s!yET;qv}70yoBOq?h6S zSncok;_ylO_t3B6NG#^R^6^yD#frjV@_b|P+{t>qejjH}39|aj^tt|E31nzmJ)UKQ+7#`=kb0L*)4uVf9ap`BQlA`$5)C zS>HOYjF&WBpPu;c2l{=JF?cQWXCv~8`STNOG2e*#i}hhQK0sVtKM}uVxFc5kf$=zo^kO`T`RyZ-9;^917dJQjJMLh((vvP$7wjtQ z`xI_nl3l*P66L*szhpczeU@L(WSkVz%buT>;DoMvydB1Aq*vGP@j8retj1S&>}cD| zejYUgyVGBX$?`YhnTG$saie-!E#>v9UzhoW{7vQcc?l;o-d>XV-@-GKdfDHz!Ss(DBIe&iCap3L_d zReSNnjL|doez*^Q_p1Iqo+&tmcyrmFn{eibj1PJIKd=km*HZJ*6Yeh7$T}VE`;!hh zjra;#|H0V%;~;CA^hY=ccaz?Meb(yv`VuZ9?kVGS8n{@up3&t8WA{0F|34V};JvcG zX(IhxEc0*1dGlDm-V1RY?!tf)?cboG zi}i3!oP9mI`b$b801Lr-_(SDz~6sN5Z zvd8~JC%b#Hzay^d+ZI2>Z^`2i$LgO*GX^_~`q|&NT!o`IR_vEWeXBHPd~m%^l2)9* zA1qYShbf&6UHmJ5G}6 z|HWxomDl!J#y1xGZBf5?Jl}{fz)3D0t*J7ekL!I~F}}t5UBv$Qu8g;7%KmM;UcZOq z!B`z{4IXazEFNRHiI_oT63)PCzqB0RFye>sJtO~h{PcG^f5YcptY@*B58|)`pOD8}irv2tvfsZy zg*#()K99Db{qR#V{c~9T6XUNH9!^~CAA93uEcPR!{m0`}!;5h`R_(I|=VLdSz62Lz zRlg=JU98-l`tJ?K3zoI{h@$><%wqUu% zpB*dj?@OHGn{XuQMShX~XFLF_^~UoB#y3{&9fUKnr#!y_I3JIdeh>To!2JacEZXZ3 zEF;prAEcMA+nV+FEcYj}{5NpTbGkipacwNt zBXK;-m-*sPegD=Q7yK1uKkr(JBQDV2<^JFOw{KRu6a|h&mJ!_9&ksQz6UP8rPt4QaO7?3E6-;w z-gmcRy%6R7g4>tr@$e8ka7QL25r4st`aIPADFM&LYvu7i#KDzYVB!1;;+i`eDQqpi~9v} zyfo~xrL+Bc_MMyP#@B(`Liu9!X0J)LD;>r{(F(>I2ccr@jU#^6#e&d zFXKGoDt}#n*2gNrc6~cxAN;b+pM=NbAnDKW1{@;&1HNX&uZa9E!S?5+?E+k^)p(~& zpNbQ!2HU?U{tM2i7HnT1??4x8(Br}O^XQQ{vPQ5ye{RE3_&nu_@ml2MYuLZ0KA*>f zxF1`w+~UuMm5=`>*o+6^1k$Vdqc2V|@+XP>>vaB^PVp5u+sOYt-X`;l`W+GZckBG; zoZ@$Jsmw3Z*9c}mZRCF*yB_9#l<_3i>ji^^1S9`uoMPlZD)Lv+`L8&|Yj))Pjr=X} zHY0xz>}Kiwqn+XlaH)}hD=stgpAh-)>+yHXDPAvv^M6vGzaRF;>inay+j*V;O{e$= zIKjxj9H$uh_h8o@I{yWy_!FHte|5jXPUOp zaEe#%%=y>R=kJ02u{!@C?7C6sk8z5R#|cLMPjHHnf0M|+R_8BtieJUqM*dn|IDaF5 z8|=DD=kMhdPsXK2{zbS9caZDlI+6c?&R^gZKZSkkR-C_>e{bOktn$~6m_dKa zfAcC<|HS{jfgMKqX-@Ik`08R^{wk;Rd+Hgp2RmWGq;QN+xKhp%8 z=|ga#EKgkj{Xb$vc|im$<5_4WDg!TxwO_Y)$2iIeZ))$YONpLdD4 z=PUnp1P*>WxcvErMNSWB_G z|9A!0YZPqXe}0C&8td{7;|Q$oryKQju{@dt+wT+i#@(L{wtv4Q3kNq1wm&bqi8G(m zagQj*doz8!j(EG_5xCUw0$i)PzJJ(-?_qU6^A~pa)_%Mf_iKh9$P*nXZc4`<_sbR*H8-{XU=b$eXEmvL*E-?caG;TvrK9#1eH{$s3tyg@jnO|bpE zeJWP}M4e{f$uH{rja;0D7s&gulenZ^u>E}H9;IBd z{AIk_U&qHf#V6q$BcA0HUxUX4===w8y+B=`QrrTo<3AG3^Uk1PTC$=(&9V9?&c8MG zA>LHRd*CP|{RkXq_+y-iJ!SfJc%~6A#0w2y$C*a@`h961BOZtk8h#BI8-5>`8eWAT z4b}bkK90oial)d%ME0Y+@L+4U{5&BO$9C8Em$$Lw75bM<-#Lc!>lJLjZ=8WQ;kV`a z{f(RT4le(^Qj{MU%X*KO$@pv>+b7t5fA|cp7pvR9N`Ic$^w<5h5xzkDIhns7P9UzH z&%J}A2k7yThi77SJs)EKfqMS&AHaCRvt@b7_;OsZ{ru>2-2K&H`}3Z^@inZTchwrm z_<2pw-)-?o+(4EWhnL0&+uxU(iR%s0={Mp8Tur7wCGulc-^y`}Z>;*C7oKdmE1rql z$oxC-cC6at9~}33u>E}T=~sC^gT?2`;(EM{cVX3@Y4`$G&*wJdxWU2p^WPF&oS^Gh z-ZR4GFJN& zTzj0p{&_ePFOlbS7YC2m{j2-y)Ng_wKWW$_MbGzJaVy-8{9-+=F_`{>)$`*(oPpK; zbtrZ_quYBrc7I2&r<<@J7VRs_JK^MeID@#D+eG}CA@}%keid}@F9EwACSju z{08&S)L{GfG{@uW@9F;g1$N-Ea(%ik(!U>UzyJTtQ1*i#VEKKYH*rL#&i3=X75M$1 zBkcMW;LOxc)+JfqBg2@V$4A(|chL+VOpdUh4-UmX!z1kVaU1s9+}ZxV+C7{xu9N-! zfL9W^U-&7)e!q7PUV1vhen0vcPEG4%e_y7-o7@k*9%20{+hZ91eQ-qi=T+i*Y{p6N zb+O0yO`J-7!({p%pd_(dEyEW(~o>WpB$Pw8Zr7llWT>|#F; zUW^NOMOa_S{J-LB2O{k8TYV(&yByT+fUB?XY~7dX-@$nsI@{xW2QJ>!*>2A=oSLBP z-}o(#H&?I6HQiV+{SRb7!lroKI)ql7a}U zk8~;akL+y!{irr$8DHdglkw@eQik47e}{|l4tYLz@xsNy_VN9a>2FJDZytz?{x=f4 z7YEztmxa^t&AJuwlQ`v{U~8}Zyv2PS?RTB=$^t0zN8wHXQodV-7vQ<|L+tMZ9L2s3 z_A@=(dVK~z>#C|`094>7_T%O++oZ}T@|6bWmJhEAcKFvL0|&+h{q z*(JoDpLXHA$PoMQ%ihB--9qf|kNHoezx4>Q`)e{T?ipfLVVf$>e*-=hO?v5DxU4^M zSs&kb_&j-_uK!5f{k0Hl$zv7y*WwF_A=V1no`2)?x2T_-ADd00KTM>2S>90WF)76U zK3f)EJ%#g^{q=X8_O3qOGn4szCRNAdaPE5{_WZUKH=Y(^|9;j7_4gw~a8u&qepP%P(GPbZuHI*R3wJZ}rwJ2psOpDfjCcVa zW*ol+4>95o@KoXqr}FcwH`T=&ZNz=>0waGUo@B%m@LJ-kev|MFBR(JRBrfh>#rbc- z3yk=2e1jRzlSBtUx^PJ@qFBkxVk>S;*&=F1|C9O^^fZBxmf3ocq4p<{w4a0czzX(SI}R? zeqX%LH~>!|KhsnB@yFwvM*jJD4smsTH(+bN?te${TH@;OXI#ZKjCjrWU97#tRsEmC zZbm#5pCPW!zdvqj#FOz|;;Mdgacd)df_=nd=x%IT(!?Eyu^rqiSH6u{rg9}%7~ZZx{Y=FSRc4p8;$tWxTO(qhj$wB zDBO{_s{bf_z=)^gcq6_BpD^P4@Fe1@e&_KyBmU@g7i*D`-wR(g;^BCsk^gmk--xG* z^hW>x45$Cx)7njYi}mIZ&izQw=T&DA|2V|{e4!C;-XY6=zr@ce{tDhkdNKaQ{(dMv zh!@ED{e7JCS%`iAy%L|GzG}Sgz;2YU=JQ{0G3f`&`dz}UgR-pI^7HM=Gyfa+zBKBIUkG~cB zVD-H42JVX0`(4dv@&1kB*YR+y-d|dbQ;hggJk#(Kv$@|e+zGEXJOyvVs=Up3j}gC) zj~i~4&i7fcr##=m_|ea`KgHfyj4#oi$FRfjQy;NkHQWy;8J>@48a|9O4cGdZ`eJqb zC|qoK0WLHA3wHk^#C{%Hdk*_Ate!9T!bw=|zsKU>Wg+(aET7iJIaT;31Co#go^;XKTCu)IAo@Gc|$Uc4WVlkuwaXs^r=`|pYS;al0d{DJrZj#uU3 zxRoLH`%D|~sV{Z?E@R(X5%&FWjrrW45m(ozE3UpudlqhN_yG1d{MZ7Xe`57~qB~B* zF|s~0@hKzy9()UTlkscVu{y+lp8D)U_IG#~8xql9y5QQ653pv)`;95s=ZOL3<6Xqp z;GFOE`Iq9hJ45W}&y7A|KH0(kQO+k0T$A{7^7s?+Alz4aJ>G)V^}B{IG2f{DQMFH5 zFPTp~NiX(yjqvwI`j_w?%;C!GACLFp5z_DA!=YJLA2}b*cZz?F{qptk59460`qxF= z!-&^h#Q4EuW%)t)%9U7qzIX#y`a$1cq~Yk@`hF${KPaI6Wcwb$9h>O=TKA$hZ2}b-R9%}fB&zLU_N8;gFwSO`mV|W#Q$MAXl zzTsAjU94Gnv}}(a_?{6Thb!;Z^Xp377_0HPA2-A5_;;``R`bDgOSpf*>ixXV*!?G+ zeiUwu)p*Lp{&5tVewxIf3@`KTEG9dT|_H+wuM;B4Y< zvOh1tl^^SGg~;?J zH5X6Eb!B-+@M5gm_aUBJ%<~Ny_gq2$!Rqss80_*ZS4$p0Rroi3{lCJ`VpZO+xCIvb zXK{U=$maR25s$<}@!K*!0vBVoo-D#1KSkQlSH8vd&V*QZnV&^@7jeyVy1w;SvcBP| zvb<32Qp)-wJsy{0bw0~+?LYPP*o(8VTHpW0r}~81>x18y)aNff-wee0SlmB~`b@{C z4Cmo8yiB&&HJovwqP;}_jbFw72=7+)bMi-c^542W*Wxs+#^WyhsSz*1UtsZhk|_U` z)$~8?$?=6};+mI2taEZaEXS!=n4e^Op2OZJ``YLG5YN1!+c)AXp66nejC@jrR(prhV=M=d|uTXPo{n2W&T{kig5#)B1V zkH;1`uTrS}`C2?K!iVMg&BNJMLhb&zALrm{@_O9FzEwl*{YZlx)<=9)wub}zJr-*9 ztWt4(6Y+&7Lhb9l6sO@Kvi=9LORZ4*`|vmMNPI@VKi}YMp64-Nsr9D^uH8J;{`_ww zehsVfGY>Zp&nmZgzOfp|u>Onvj(EPY6Sp?vC-Dg4qI?m*i#r(cy5DgBZNyvSFeBa_ zFCi}O$3^}(agAs7?dfhtC=DUvZF8 z{y+Gt5r1SI&oiXO`Mcv7>{?#GI+hu%utCWc?fWzwQOmf?F? z^}kYF`Gtz|Mf}-~^lz-^MO=s!)d84tlpM*i1u z3Rdlxf@c}=&+vTQT9#jkOC~z(@8A86cM(_nlZKm#8-4{p#4pJFQ?XAg-5*xrwpg9- zaU6`N%JdhoYrm}W&nv|F+;xgSwuSl0$p0)Z!0LSb@Npyl3NFDL<@_}nJI?jt+E(<} z47{)n{aMaOKjD2ZcDLi_@PnPJ#qvy_sc&7u`RzjOzvtz?mHKxGwHC?p+TtQSL%KVT z^VjV)5l_a$WIP*}V!J)?WlVL-$I}IT4XgddFN%-`T!##e}*Kcnzatm^kMPQo$#hv>h#cweVb`}5Eu5$_yo zEs^u{b-eI5hrQpfzn%Ggh@P(_am^k&|1f+ChspXZ!X7<2o~-{CoE*jPlgjaY92fS{ zzeiec2m7HEJwC$l(r8`(G@On5$nsX;vc93#Xt{nK#fh)$>*JP3`B7`sP&=%uQTFj@l@jKd3vSqcpiz>{k9uELwa#NME`Gv_Y$XixRw=yt1;d^ zWxPAyN_sJWiTONHq{kJW-(wNw_rgc1uXtW0>N^CV;CO0&9fyk&b^rbZ7aQJ)PZ=)4C0OhS#eDoX zj)}`E|NK&%?|r9u?VZ%0^kO~`>7T>y!}agk4#dg0scet8@vuQz<@23r?=+|QVw^#G zHNWKI9IWcIAG^I)kzds352yHjyievA^?53v^E2|lfIAq+4|j?Wz-31MF}UW4iu#N4 zX5&Rh{^d^b?bw&}sy&Y42;5Dcf3+XDKf!CILvi8gQ2Tx95x9C%X!-qC`SEZtR@Z+$ zj==FU|L-^(tLKG}?c)AX{u6b00&gI$_6wo70IT|pb4ou2*M3{aH{v*~*1v1mWsIIr z+;($)li6Q#EYTkwSp5^nkHGcD>3A|uz+$|J^qII2i}5F1f-{&;)cr`c0`4!d*dK`a z^LQH`BK;cnm{`$%BK{$6JSo(^f8U5B`F&*7e&=x%R`dIlKXN~b`FOg#{7^jCh>yV8 zI9|qAVi$f-IY#;r&NKWkPT}{L2g-Q6J*+SMo^wa((Ksztx9=CY5UcnxocNxekFCAz z=Wx8t-x^ncKh*lUaz%XyWpU+%8$Z#Rf#M5N@NB8sm=_7r;eQ-0w zeX%!I_rK$DZ>+B0N*sq(e?5+KjrdKx9jp1J`2o%!tNm4Xd>MC<^_hbGKGyBE5l7u=*#?`8T|pcpG`V+K2f43nP6G?DMnkk5h0GR{do? zPQ&VYoyFA;>HW}ChdJNFdVIWyuVM8(d;oSY47Gp%WD!pLh5fJWuRq~UNA&S36*8aW zbF#i(IOiz)9qFz(vPfUAxA0tCMaF00g;=%6SGZKB7xQcCFaLGS5zhY@_cO9S)9?h= zo1Iv!SBvrGQx*M1;6}ObFu1gH*wAxu6L)3 z>+e~_^=}qtKd*`rZXRa$?+pZA=`+ggU%@5@v@to-*lgrkZ{k5zx3i8Jtv zlqceE{K|O4YW-P?-Cqo|cFN-w;9~re^c{SweVF||b&KC9zeC0G#eAQLi}6&M{!<+5 zA7-x)dvP9C@#{D^K*t-MBp$5G?}#Hqboz04AAXe=B*gKSVedY={r8CU(b`o{iT!Vw z{r!)ZaC+Y``~AbW@yvd@{yBJIjBc-!I0tW(=TrSO^JT0~-wwME*Uy*6;7q($reBS_ zkEpm_qQ2*G%1GTGTKvv_2!eQ)p#qq@c zaw$G1_t)Zi(l@x95&se2l=l-NehMdi7H02PD*eIdGmFFQ`_BeA6RZ750A7tneMI~9 z#@mhf7(8fcnAK6P_w#Y~GJSnE;e^bv^7@MWMR=oeei!kl#JL>hqYI77xo z{v^B@tNN|QSy=5a|HQetwXE+m=UD%-dj8ZE|7GNV7hl0@ecg;}F4yV*z;&=XUcFN0 zM?6rL-vaL(rr)m!af3)3bmyY)5M}K0U z9Q{1I(gog68l|5Xx??l`B2Fj0s!w0M5Uci2!e1Kk`8XGkmGxPVdydJnCRMH&-#x^na}4@8CGxO_sL_uQuYhaV}P$Z$1AH zpO?Azw?2~ThhzT@y1rlFQCQVyFHXklcz5w+Ec(CLAJn_T^O}S#Ybz6$n15SgGu{p7 z%lsn!XuJYt2z_Pq*H<;gc zv0s#NZ`}BHMSF|%@wnDeJ%4_RT@3$>-LbenB7L=+e13pKq`h$>ZYUj()9_2ui|`&? zMS3^hk5&JdjFK)v34Bx>n$8>*ba+~$# zc$oeCWFVf2*U9pxWB(JnyaF6YFP*<>8TG}gKSkkU zBR(Eq!>T_m$LZ&F{yjJwtNwHw=UfZ3cF6wI>VM477xnqPfiGkAe0MhPO?q{G_KNg| ztK4IL!ae2rw8e=x!|eA7M&a~ZVfOox^F;h#_Rq4tHekQoy1vJ8cdXj0(tXAgzA4LZ zffwGBAeHnLUCf;b|Z-L{fzbH@CKLVel{!f*=mh~DQZNw+z$(%pkv3&ew z<97`o$EjG&FRqoUS~GFHOy3N5n3!cvmFs<=Q@j_xVB{Z-uVFR+O~;k1=<>61P260T zzYqK21JeJ)m0TS5^B?a=s#Mzs3hka^0?7x4p z1`l%A?ROk!*5Ul*@gHK320H$HRodezhy8uUNE}?>VZViVUF_OCl>p? z_BhAkus>fNgo~={-xFSleZn2q3E5uX;uV~anx6`>Mg7$IoX0L59rpZxA1`}f*T3dt z|BW}sv7}emCkPM1s{TFk7$ZI$PsZnEfBO(`r9L%f`!2?FIG(D{TAbKL*Jl@QJzd|w z9CwQUgY!tQ>Qm!!#v@ksc@`fx;tqVRo5R{F*TVsLQzZRew%2rAg4O)71=o35&o?Kr zJ66Z5R->xb7_0Y{p2MqqI_&4g(Ri=X{}Zt%=cCSdGR`CY40-(dc!Xz%)WX)+k-O=-^JSu zdp}XtDm2^|U%(UO`Fw;2^>f(2SNsD$g;jm;;44_QXWLp;tun0I<5ip*qvLb%OdKQ2 z--b(!_yv3cuaa>OzGyl(R+rZe`wwu~&$qYXnsLmxk5~45AKFRg2MS8KGe}QLkJ=K0-J#I|;XJmPQ;83jAvqzug_(pkcad)iR^JP5s zBRw8ob&4nB0we!?tp15MUyKhDSM9$Z|8Ar|jQ_%7{~-3)RqC*Q8urC?-q7(^vA5w_ zI23!z{M+y#tUiysfRnPj+V}G{>N5Wgb=cnzaNzpG9QOCoC*nbPh+N;&aX}*Mk(|Fb z$_BxmbOk^8@xy)${ua z9F6V!9e3tytjhPrxp0qs6|(%Or+<4o8dmK;9ao=2|EI%> z@(b|NY~~MH-aT9idrG%y#Qcoa`Hd7_p~ufG97|l)XFXns)%l#k!x&$};(qKNc4a;g z_iy6!k*7SFpNx1L+?=?ZjK6|AV)g!299~6wwSJ7i6L3X(-nYVYu(-bz$IHSc)aL~( z&i6R3wNj5Kt8rDU9#-{jjXf~igYxvlaU&z1gT3)08Q+VyW@ME=e-ZobGfwe)IN!+c z(S-4U)qK$b|7OJd<5JvImOlqq|I%SU&)tcWu&VDJoPr0+^j^<0Um5ZK_!L&>zW_hJ zO6M=a_3%{Lf2ucSJh$&*|9#wcc;RY?{XAnZZu}MFRUR(``{Ki@J#eKpdOf_3-SMRA z746x?3vXsT$@G13IvyrH7vI9_{EpxUI9|pddyet5MaR3~f%FgcJRu&>;CiV3F##u# zzKP8LF`jNX8?VNyy?5b*I83H5!?9cS{M@ivRVy3Mk@5C;!qP13FzqL52~-@kCsV)%)f1@S{KJ`sL%AhHv14eGdD1a=jK+ zt!bRUEA1)vr{1^=^;PE|jO&pmAVLd$nTz#3$u^(h-*()aAX77a09*B3?&(s`j3T zYaY_&ZNT*mAIBbs?_)2l=If_gSGAfM@iw@X5$}wBv0Cq5#bGP;_YdE8iqFK!MtNW2 z$uhs#ujb=wt9AYpPVwtFU*;F->-aJrjr?Bt@S3dh=iy@hc+n}|3D-Pa(H)xa=3^bLp?}prhQM%KPa8oOpuyR>m*m!eTw&)@sZBiR$SBJ-u;7Pttvl=bU@E1lNsLnlA+*d!5ts!947PRsUauLyh=; z9EsKZ`7fS~C&}Zr>OlX*ZKM-$i&9GjKD5`^L$0FzjJW$Kf1qf!0uOcd;N_)u=;+lS3p(Elj|kUSFBHgcnna77pTAT5Gn_|yb-i}r0<6yOI6iK~%Ww$}lI_(p zgzNKVxP8C)8ji$jKQsgPz^eSMxSx^!JbvGZHwtBb!)iW_!K;n{$*ph{r5m4al+d5`q)^Pjz!^^lCR@ZwB_Q9&YS=bM&_3}F$zeVpCk2%G!;h9GMIuXpT zSoOyjaF!A8iPzw!vVODhA>2fI559(5N#;4|-tRTXLwD-(2jE!D>nY{uI~z|o z;yZDQ5xbfV~UO!&KbAM!hkokw=gE(G#7WN^%I^R6Ji1tzI^HIE&^HJ?{5l<$)x_%8` zWY!BXaGRmGG|HaX#wcGX(SF+-tX!B0^4&|%% z_yAY>rDA-G_3#Uk{s;YhVUtt*XY56KQI<&m7tX|-Zu#}9+>`N=pH*JInBN)+bN&_c z9s3D<28;Y+evA?(y=S@WSVQq)Ec&O&|31#9{MK0Xhfi_6M*Z#iZUgq*tv`R>?Ueom zE|T>X`7hxMSge1d{{P}LyDFaFh~w3a`ft1ub~&QY*B9p-$M23S6@}Z+D@S2}d`{MP z6;}VmIe+cs%}(Bq3!m?A@tRKg`MUIC{dx3l`+V!;xxdl>W%MhfVs@P9Kc7J=fp9zZi&*b9}Y`nuCiC|A2opd>@}O>icA$s@6j+uAjJ`&*P_0 z>-oZg+ZrB-yBZ#k2OItbzk^l(-HhMGYJ6P6(+xL|=6x5e=GT{S30CzPfFBs~3Ha&X z_4QhSyJMApJ$BubW$&L4I>j&IMAD1CBhI&aU*>DvRN52AAJESqUv!Fh#hFI_*YPGJ z|2tUy6UUg1=NRQJcZ#oa%AfBP-;0Zl)%{YHepRiV9IqqC7X7OsR{unO zys??SBW`>~x5sNv>EFP9#9NYAwAZ`1!$DpCLZ|rGc#u)v9-NF-{rv}QNRB= z#p}heUK;sZVlZtcyu2|27Kf!152+9{;jW1u+=U0L&UDErz zr(>Dl@j7{aG1#SjM|=I5k8>`E+xP#waNq}{@-gL zdMjc_NPEO^vkg4>|Ff5&1! zFOK)ft5vNVSoIGFZgxl4XE<()yUFw!_{7m!s3QMroJzc!-0z*i>YwQE=kd({>GkgU z*O))CI^Ixx*@$Ogk9#_P3`b$LUOpPn@r-yl-eknz!=;A5$Mx=qTN7k`|HbJzK)Ugu zs@5K?uJ`M>)&o5srDDJTb9LtdRTX;x#}95`YObWDBGkO@j>UUryyPJEi_i7`vl;G!XUKR2PQ_||o{!V9dcOBHe!^^0 zU#9;Zd%F19e=l3uY?DmMm-o^dw=fS73`iL^V#<|2*d4J*JC3JaphOpka`Pt*EFZM3! zXMexr3|{_{pS`~g9Ljox)$_&oaD&o*_WpSf?#RFAuG-gY82wj9$9rP`PP+c*aZXts ze~OD&(D_FX=YGGOj&BxzRsVbJWk)a`N&i5$Pj@`!4L^JTavCpo_bZqW#C-TG?(&MC zJ)c$>N&d=y)--wjw8zO`53s+lIR+}i z_fRR=r8eg)(`VpqU+=W{3%@(XON?PZM|w4WUc-rX3)@e$XE%Jao}c|bG#V#2@GJQH z84(X0%k!m%e)jW^F}Oh^?Ty$yb%5PpU*fdpy1gIcoECoeezMUx+P|freSJq_|2C}l ztcPMg{SbS1_AA&gi{lR;&+|e*Kl}c6EAE2T`{a{&Ixa_hi1aT{pndT+IUYJ;^$~3l zjQgF__ah^4CHA*fiHZH{A{=SN<8f2sRb>1mF4tIp|NAGri1ek2i~Yb~SbfCt{=@Z+ z^d1v=|3rE(Vj_JD+<~~d9}L2Wjq={Xy@`wS6Zc0G@kt}T01qZEjwRxovHFPrFCJes z(jUXqNH5kek^Vb;-Kft!yv&FfnN-4hYUF&l^r=JvTfQcf@Kw--t&TzJym{wI44&h36Gmw2ByCP4N+| z${&PJV9|dfz7VGx@k2P>$p0h0X2jj5vL7(wO>veHABc1CXj%R=9Qm#OzQzit_%0kC zr0aJcN8#QweqCsc0Z#FW*dw^` z_#*v>xCU1F_u}DKcUr?`{&P<8+c?I^?>deBE*4`^w67OlFXO@;@Kz(-^jS|K77T9e}l7(_(Pn7C(Gm4h^9S5wEN(zc$SQ>z+wFHcPHtScs*9*=QkXO z)%bCLpZzOtEYo+z=|+47&M@NVaq%uXzw31Nv$(s=ABZE2_zFA(hsyYQe9(xy&Y*p; zdOp+v|BY3B-p9HAeXI`h{$o3?)m5)w-{EjvQRXJRp5ivG>Pd4}tMz1V&6`xv_n((CVaoP^c&QDQFh1^IW&`n`$6M(O?9SUiOCmdW$qj!P0(Q0kDV{#r%H+|4UrG54ebL5ic#{w{bb|!oOb=`-Ob`fVh{8 zS6_b*93?fJ4J4(ry_o?oZp9G>fYC!G$mzaLa#75AIOTgmmY15TQ+ z=fgF)#sb~`Ik*A-SC(IMHS@_SeotHGABF2I)c5n7@CdBt!*lovZY=Y=tfBlxe)jW} zcKB_q(vQZ8_XF+cciZuA#EZ%NnfN|d^G-j{P@|l<6nqSp0?bK^(SB_t!(b9jo=%^CRkmRsDM6d^}XPc>#aMWg6ZQPx z1XtXn*YmNs3+})KBg#v|aXow5>&HXv-La>=KdKPR{Q@2@&!;W+?bOr0UmlL#yY{sA zU&rt#lvhcnzloRcWqp++D`E;Tc%{ zee!WUp7gDVi~0Tsyp}jWkA%xwd3ZPR(lTCc6YtBhSU<(_Ti{3;7w&@BHS1~rz4ug{ z_(@OueQOflN?i5#O&qaTyXt1f8~qbX`J#PW;%WceX+OURb&3zg38Yu^?JS(}jqcw# zT;_n@pZtLHQ}y$wGI7jD#MSYFamj;vzL|t;U=`np$6&QzIEiDhL)Q0qd=}4;uCs;x z>Zk0_WdDWZxI>gDy#i++=6d9U73Z6R!;~mbNS0CW? zFZB37j>mAmD`onI+nBGvWd9?N-w#K9rJo1R#wjQD^O=1(GsVw(B-8(Z(@*RDQ2Fhw zcV~3^w)pBAk?uQiTM*XzMp9QIvd`C`3a=;UoU>56`ycNS;k!?L{EySRR?`dNeJ{OgBZuCrds z`-dU8&98;~L2*5;!QMCZe&+;kj#dBtF4E(g)Lo=6wVU|}SCf7nN8@JFA@~!+L-9>) z&kwl4&$|4p*axffp5iX}q%5yiBG>mXI(-;+$7=mrjo01M@gHy;R{5Xfh)f-CvWNRG zd_k5!5_{7g>U{U&mRR(fINz_aKi(#tjkB;?Utju!{mO0q{JJSVfw#&2=#3+?*zd^x zh{oY}_5Nd*h+}p98+Zs-$NvwH!s_o=tMBFd!rf(k`r>pW|3|nL*N-SqtT+4c1?CI2 z{++`ejQAaVgSfiiDU!tcXvAN`Pl=2DrC2{(<0`M~`;{(u7U|Xc7>Vl>SM$?*_$cxE z_T#`U&YyG{=?j#Vl{sZ z#O;`mRr|(ce=NqQXuqFvgyCvOIG$l|yc~=1C(^gZ>Lc2~562SkDdPii=0nzN`F>>< z&dt&H7ng9%@A~|!e#U%4`ol8+aN&RS`ESM1&-|>Xa(=jmUH)c1k}mT(`{Ad0KhP2% z%+vS3@8Dl>S6Tid+=KGf^Pe+#99He)dX)aeYCdU>V~qGvJReV%8tK$vFJ+M07D%=-~>sz$9XuhQ_p5S#ta*&~ey+~&PYENufeLl*5gVQZ`liIi{QnJJOT1En%UZYb0VDnl zM`AHv#PO@1WIZt43QwWFsy#>HHCVOZ8XRk!&ndhekET2^{%+vNr~3WRpHA^IDU6S@ zx;_1J^U+Bk=rJ{H-%`eprBA%K6*#(Z|>W_m;=Mh{s?xe*VC@c)X0)IK}-& zd7ZyAj>c;IkHW<(==d`1iFeEVpW?IlUpb%rgi|W%^v`ex-YetPPV@Jmuld{STQ3}B zcnOZcEoAv$;#F9!H;?dM`ctja9gZ(N+i9Jo zJ|g`@r}zpyh4iZZ_uwq7*5f?<(1?eerTxA9?e$_4?t<0v({T?h#+MimCC|~`c%`%- z&NVy}pXB_+^8sj_IE(aZewc}K zuxjs3__-1P5@)pNZ-0NHXe#3|z+penYK$l32HN!v#aF!j?dPE*a1K`eu@vVTPQg#G zm~X`W&yRQ!qfL#EM^5pQU$eh@y|BI_eN7yM$IJG33;P`JZ;yvrIGMP*9^>)fEegkz z$bSaAv@D!YgiC(Ieh!QD!VR%o>@NG?hYog%kHQh87wsw1ufao%{Cn};;_-I=Q%>=p zaI%sA8BW2XKSX(zF4CSxyaoQrh=<`EBOZgF;QF#XR%6dM^!&LOw=tZG!|^nk{tujv zCrg(~W54yLzx9E1Gkh8cNWYCsw$kHw15RwC`#%MbXs7)Er(!kUU-_2ydduG$%7iY) zcPE@QSARby8oP%Ku&@8U_^aRn_WFJYk8${0TV#DaE-{}6`CA>N+v4+Q`&eH}&%klS z9n!n7cNcyB#V+%FtGkXj$0M+MJ~aU!>7nQImZ^quj*#=Y$EGZvpW z9E+QH_p-0|)3`5I|gjX3(#nF@X{__c5 zht>LC<0r1iDgJi-2jG;cdc1AKzR~_xU3t9oI2Nn@#uJ=|gJrz>4fX>&9QO77HqO4- z-#*`UIQ){H?|;P}OZD|q;U?ERz9q|RkF#_1`?~jW${*TCaKuZ!?CU2JZ!%owXVx3W z+YVV?OPsjY-~PSNNqEXSeg5C#t9YbL{}gxp$lv}xYvW(2&qjTH_QoYQ>HOpI2(0>J z1De<@NR+UU#97)lBYRKgVn0{R`fYiuL9%?2iJlm z+pK3N!|mT6ABGPe)a|(v$9(E<{ZHmk#qS={qpVw zINw(s_VrT__c*KfgMILJ>?PZ0E>1BVi*rA4*zX@Q@K?(m_Vwa%m+{fqVdrm$CmD{! z)o|raXQY4!h`YzYi>z&HD(f_M-u~Oq%u#JmFit9_+>Iuv%Y# zz%4K9_WTcb#A-fiaF6ka#r{&XZ%^SXdi|J)lko)^--c&@UwA!;^r={V#GdRD_W6nS zl>J}qKJ9&j{ekR%e_ZC4zx9qR?<0IOQ|~9f!rpiMt-(sJK{`S8g=9|Oy`lmj>(YWMO+DDeZ1}9=Q-yX$Ju$qr<;HW%*tCBn) z@89X4fBo(6JM_g#SlvI)#pTobTZ3fzU*X=5b{FjL%X61=1xLRWVBasgJY@cx9b}!6 zeo8J8ZG;G51!JN_K>dnC++=KfOSEh z&k{VPQ$WFfOq8F3lksqQyx(z+&Xg}*=`rI2x03$X$#|c@oKkOYCU`3K&oNt}K+5ZOV;}?JWqO-7jSb%+fzLv-Ok2}cY zzx>aO{tssm7vonPZ}l_wM_BAPgy;VIq9^Bbf73^&AM+pcz2V-^nUAoz{}%Zje3AZ& z5wGpy%D--%SBu*kG=u+{pC=+7^~wCDf*%Z7jw1F5-%(%0}R^~ea)^#R8;b5FRtZ;ma`fbN~*iWW^fZGk%{pVZ4)jE#7h>P^) zU0to4_^up33-H;|I{o+9e@sBZ^8=CI$IaE6f@{kB18^)JEPV{;<5^hL?+K0>8&L4~ zLLz@yNmpz8xPXHBM0f`-H9nwVzapHAYZ>nGlB?Cma02dSxO6F3YZO+`OWNSs_@t~) z0`53LxBuGGFM4hn>PLLHOurr1nHW&8zZLblhEp%~v3AJ$sOrlv#(Us{q@N-4PsZMp z0_^7#DNcU5tg977ys?}Qnv|nGCv*MF{9ffDcvAxk_WzL8={I9>_YQ@da*H4+s^gsTd#WVVSVdXceSq8a@hBKJ#k08R<_S-T&9h~zMs90yQTE8pC6Ut zMbL!Jx_=wjpuOXC|9RG={kG`icdo_txwY_m74`S6?P_Hk_O9bTpEUpS75*Zs2* zC*f(beQx7AA8UKn<@i{Qx90U2&%5;TD%IzFb{Dpv=&v3)4vYCi)Tc!Q`X5J1e~LRM z1{B=Sh^`y6}RsEoDpU+-*wGt2O z`1vNTR@xEPKRKQ{GUv_}KAN0c& zPlwz0+YvbXU^rzJmbU;WJ=5tEamv2|)&g0dAKSWGf%%2|7jgX3?N~4I1{u%BHU0~* ze?P0@Tdr0Ei|=pp1N$O<6i(v!V*MAMiF3;a+WY@H?U@f>4YU@?@B4p(lj{W9-42MGXG(*KNsz}2~TRk@ua`U?hOMA_A8=3RXe#_ zVOZ^7N8tpl%1_2=?+7;FEHHu^vzH3A9$q`}s4txNl&=^(E5Zc5;yb=CjuNe4}wXR_E&;=xQx& zqtCZLuGdzle~Q&di~-9*dg3boX%l_zz zNB9TYf1mQcQ~FuhW0AxDd(z#w;{u2M`_|v%*|Qw>`j>~x7jf9*)ie0Tq|>a)(t zXK^0!Dzd(zz3IOmh4mNL+hpv414nRy{lh3-|4le%LZH=Jj?de8z=cG4zgyY*1NSrR(ueVMrMo@fHpZ#ncemEc z`DrNbL42AlF9Fw?5oq1wd`11Uaq*Zy`+dDnU)lrrl<}#!%LhE)dZ{q|_jvZAK&ziD z?-~A_=S5yJecgVHXWrMT`}kK})LXWSY{Cc>FdAEdV$6FeT6ULjLm`e`aX65=evbC#~1Mu z5%d=p>!+{}j>VH@{>!+`wm_?rod1fy!}_s9kH>GEylNorLwvl@<**vd{cowk_-LTL zKbeh_js+GxKNRJA4Pm`GuCM1qxZ@XkJ#h@>{t&DE;dor~gzlfx!`Od(S@`z=qP#>L zht>ShaX9g>0RF7i)uSmWitr%`Mq>uoEZXUg&$<1+pZ`|pSP;@(a4 z`~C5F5%0^HP71z{uo#afF6ImI{(mc8Ys8P>Sw{RD5jUKPPa5g}#@&tip~NVTZ`cDL z_)!1elP`X9vcG-*`wm|BWq&JDw$Bpmf~U#z`w^!d>u>KD+(z>}1FQ8n5I;2HlkiWt zlFWYqyYRkT?Kf`WC&Wd2i2f=!hW(!re+#=}6(5Z~jQBbnP5s38OGW-~a2+FkiLu-t z80kCUnb(-lWctbY5LWex!^v2kPa00a^JMzFcw5PMYckh^_`ZWR?!|aj?0;S7Z-={J zwI1}t>LdQYckn~Z)2BCoqqzpZsecm z6yJzFNw4xBz&=L)v)EzezvdKwfV&v^T_&-982PK=r{&@c<_|GGS~$hK;TR+TNW2O+ zmglnoH+?zYI>YrR@^5vDAIB$*{MYc1yR46L{wq3}_RiMpOJjWX9{XY0AARtU2YNhA z!DDcwjDLjFuo^%6aXNO$_}ADYr*Qog*V{cj|G0i1s6Pt#qauCv_t=l(4l>>vNBpTh1SdZZwBP4_f{Q*W+&_x^SvdNy!u_#uscEz) z7UNC0IbQs?PTvJ@$Ev+X;pnGl)lzFE@2ceVs=BoEdkL5SM=$AKfzQk4ghvGaunDRyaXXEMB9o9x! z--VmG-}KVyPho#7_J^XrdH96kwsGv&YtSCDzM)%akD7(gH$?h|Td6Nr#~+DPu`2Il zoN%U(Jzt;3zO{9{)Hd!9@kDw2qT6}@Q-|wW9{JpQQNTn~*M1@pH!eqbW|O}sU_=M-PxVJpMFYeKV_YLy?Z7$y4!a-jZ z_E!o%jm3UW)bGBN-S@g$*NCh7G;?w{tUh86?Ta58={I86mWBN*#?xtB<8&YU-~YRV zlZjWLe&YBYlUQ$k9R>Rl;VbwA?kdlx?b`Pck$!?P?q-z&JL!3 zS#L%D8#t_sc7;RC7u_7zHW~NB={+6RP+49g_U+}cHp}x{beQqhoBK!UTni{?tw8pL>M$884E~!9BQNuP+_=8Q1Fw-QOdfyd1wtT%GSHPEN(ki4T|M4f&k= zHM~LkU%Y%I_rtQjQAZhnqqM)p?qlgs84pk9dOz96{ys`H&isYo-X9;q;(3ek6WopGw`x6U_{EDJh!+!A z^Tomw^zTx=e$Dxk=XY4;|J=zBa1wEqztTz8@8vpw*%Zdphx++ReSEZnzCU=&Dc%=H ztfoBK9^>%@e5XX=`7Czw4!kN>udh#W5*F<#&fopii*AN#8HJ<1=wmgd|HXJZfLER9Q!svof5mxNTpz-f&M|*5{?z?N zXB>rR$@u#?b!;E|->do*Z~w$$zYpwqp8Ju#ybqA)a|-8UwO*gN!2Ge#VgLIlp{cAN z`*r#>oQqZZ3tzMUKj^UEXJz5%SUe9D=lcwg_|##YlYZqJ#@8X9Ps#D_hua-?SW{Jd z;v=6i9%OtyPCm|jCf9>QxC;AyaX&8Zx6k5}+~14)ck%aF*Klnko`WyT=T9PD^dk4G zM%*3WG4j{L<(lf}UmdU;_qXDB;{G-qw>9#Q#*fJ_ey>QBKNHs{zgVBd^M>`fl97ME z$WL5cFCu;xdl~VcaQ>GLi{>b3znW>Zr{R9s<1HRH!d%V;{s#MCH|ad=EAxx=o|pK(f|0)~4ma{o#siJ~+wm~NKjU$R zYhHG>-ov6jMEL`8v=QHlXB)nT7aOjS&h=#EZ-&?4p{hKrKB7;C;XLA^zs2#^;o>Lt z`G1Z}VRinua7Dwfe8>A~!@Y1Vtm;1ztB*L|bX>A)#D5PJu@-BS2@M^;Il^luW=d{>#sO|7WQhV^XEIo zt6XKiO404r8aKd$W&W=CQO|g55!bgk{y?YrB)r_nzXGo_^6$da`o!D+-qs1H_zyVG z$p061Ii=6P>i&P%bCLCi}a^(NvziUpKw(f7vtd>u4Tkuxz6}C;;nEyBOZ#o8S!DbuMwYxM;P&K zc!Cj6#&eB$23~5!b8(yzFP9E<-irUk zE#&wXT^-$NVh6rYJ(p3~!DJ8p+ne|&+v8S$TS zI9BEVhi}!@hd$3;<>nZsxH6W z&#cc_m0urMH{yY~9xlf5#q~H9H!{2jH^F0N{AV18yGz&jh4wN$7`OXc$9Li7c#ce; zh0A|a_&iG-FCSlS7;pV6=c5X@UW_-y>Lbp<2d^W)nqRx)I4okKyx~si$Km}(`V}}C ztMR=DUw&O5|Fl#57hLC}K3|3tj6Elc-l~1{zRwvGJHhl7yX}v zPss9x&*Mu*{4UPG)8zTO{z~~Hb@{ch8SjL9r0Mz($KhDje<2=a#FOw8yjGTqf z*Nb~j@t1Bh{=e1b`{43emEQx`GUC&)H{LAE--A=}HtApRh)eo;^fP?9S-jO-j*m)r zUW_-z>7-ZVp%>1;>iFaEeIvdaKf&t!_TgzA;;ogk{PRxn+j#M1U4Dry_J>%NUlZ>% z;{G@ZAC~76f!+M#t=+QxiB9n)I4WJ2pNL0bRelPdZp3fl`B=4AK0Xi_U-0)0Vn0;* ze=o*c;5y&w^7~29NfjAed{mvX5 zc10im435BR{wQ^q_A=t(_y`V_$BV`4BkH^jyL_+9`wf@Gs=P+ojBg`86-QxJ-XWZ1 z#Q(-ejQkDmy?DH4xcF6lyivFezAWn(k8fht9^c{HMtax#%#T=IuZ{2l-*{`h91o#R z@$q=b5BhkU@EEN6>nl9dh~LAD@itkX+7H-2T+{i7U?03v#^Z2`5x;>`u|vko=WzXA z*XPp)SH|l48jWk>frSoLos+~9`8{{FydtUeMB^AJwKRVYiuf5M4|UH_nd zw{?HLh8Izvrlc41O*5=MqJ3LArSFD)$gjrlQ0$NWogH`?i zho2kqqK|oAa#y$CYq&aYE05m=zm3)WFabwlHC{I35x6nwMgJeg8(uB^euNk==}z$+ zypHsuJ|ca|C-fJNm&a>^yJYiyUCvLOe_x!^rl}l<$Sw#FEu92g!|7w3x zAN-0euPvU9M@tXJIas_u6!~Lt?(c=~M}^~Y^@k4o`w!{32Uh1>{BP!GJY1I75~mpP z(Kr>0{uk%B5JzSv*!MSEo#MyvlShT~i%9>SlkefUT>bv^KPOjs%K87{ux`ovw8k!f zI_$qUort4wcX|D6!w3J?f8TN$2R(II;(?7g|B896kAXey?^}oBoPYH5@pU-$KRw@_ zz}eWo{;|H#_sxQaa5gb-J$iBb0fy1$% z%MP50{g3po1{J)26#YFBcdQm< z-I9M_u@1*IrGBzLmvD`SLH2&(G0w$%-vd~Se`%}R^8!B6lJ=3u{|~o(L%W5Go0Wvs_f1FO)K)?E z_p3JIIA2|#?{ES>Bg=b^N3_=Q=0)82`v`vTT*ims3?se;PiYfm&o5~>6RYzrT9orK z;;-W{&PT-~aReS9%U_9;jre)|CsytG2TZ_t4+Q-dL3%hg%x)?{Sn7 zuTY%x#a?p!_Q8ugF+Svcu>h|M46@(v@4>|#LH2&<4z7jO@#>V|`1pYA-v}HrD9GM# zt-v=!f~>lnkm&!TIHhNhz25wV^RX(gjVs6NrH}tMj>c;It-^JB>-67ZZ+uI(=fAj2 zm~OvjZf;gZ!x7j6tK)r$Yhdwx8BxD)a5p3Va!EHU9AB65_SmNnf3GgDm*IGJUp+sp z!DkI0$0hr5KJxqjH*nay%pbBm_m^lNtm+env#=_E6ILHFr)V3(t2do{iP~u?J_3(ev#&oJL&L=U41MA;|tdX|>Xv z556GVqcyHEo%4~NjPoZ2+26<5BGOOh`jX=>1vi+%c$D?|3kTsAa{j7Z#?9J3E6Dyn zaVUDiC5=`%Y4lI zEWHhTJOi=?Rcdu|B#3u(Di$cr*XgG zMqKP4JuA9d-Fbf~zCSMBH@3mEjCfx>ns^l%pM)0~@illJaj`y%{D*KcAN@Wu6-RpN z_np7sD#R<1Uc9gT8;>^PWh=Q^jfsojyA<)pc$yIp!Vco<-)ngX&okna@BrfK_XL;W zl}0=PPd4IT;>||<8eV1`|1sW8+^e8I6|M5_n7F5`Uo(8ci1!jEuFh{1zH5{}7vC_B zzZpL!-c*)^PzT#$i8F6pCmbjRIME*eB zin#jsaQfqI#JyyE40aG_yHe2pAK;Tl{6pN2xR@J7|0LjBM*KJ)ZN$^D#rr^Y{NL~_ z;_CeV#ifa>-m1%#+YyZz?}`h{;Hc5Vt4`$!@Xtx z#W*rXzdzjK6#on-8u_o{gIMkVbMR>+Ub-stD;C$6*l*OwM`!VVg!MyQ4;`K25jfu{ zFB+FW$b3qAk^dOp{;6KSZ{T0>AX$EyYHn7?LwY~d90y`C--`T^xCg$d&KG+g4zlmx zQn31nb4tVIkLdiRJ=ss;WpaIKffGL0`|t5M`lxQtB%EgW9Ag5t(I4fiyIJmM z_3sna!zbs&TbDV$h_`Wy_rya;-?Jf87r?L8o z@-E=nm-YS2uh=tPJ0FjxJ=J_yz6RGf?WNkk4xVB3PiuVGh~Izl6JB)tn?oZ`Fi-^A<6_;u`g zMUUT#wO%Z*DxN@G?XUXaC%C7)ewX3EtJGIr&p7;tAolr%{ozuZ{h_0$y+8EDzU}qD zhcpc@=ieVw_mfBP*%ikdQ zJPE7%x5AT*ct0G2Re#LI?Men)4q4xQIEDBedHg%Lvsk-HXOO?N^l)6dg`ST-!0IE;X%X&Dd#Lu? zf)Ba}+xy9D_z+g(rE)Xc7q6A|ZHlLDiMJ|ozG8n6;1nN-)ko}6#^4^W=<=51aID(* zV?4@;pTkpdeYrmWiQ_zi?cdXG-rUVPZ+I%s#SU4&B&BX%t2+J=&&FTK^d2qf zzpC0Dah~DP_(-*2dp_8JpBPTX>LZT#J#Oi#$8*`1T)&39;RLM4&orEEcq{gPO~+I5 z1iVbvx5yjpm$6z88{qKj!S>&8zAfw(Y|rQOa0;#_^Pj*sabxL+xMU4&_cvcWpI329 z;`L?v5FCL!NDp&LKNiOkFDJ+22Aotg*#7r*uVL3(dOUcxV*F#(9)4JTM0<9@y@+?< zzs3AD1+T+ivi#5Rk=nYv|L_SMU!*X7b6>9KdOAK1kHD(D^*9mNmgRkq)9UMZk=E=V z8w6V?+#c9M_$^7p*#b@Krs^dl~eo%PVAxE*J{Unf<@iL`Fi5hM!X~b21m;HT&zAK&l2q2GuZw; zm#=ZhUV8kNc#H9eMJ`c(5FUcn{4^cs8S%r|rFXD>zk3IVVU@pXd&bV>SO@#p|#-UKI!Jjn(xN zjD1Gv_+0FZd&}b;!pn{LJ*+;W&VS)`#5?fc;{3gX=r641*M3-iMEWS4H&S0uo1Nl2 zaph6EK3Puj`?xxBb^TNfX8pqsdHmLRJC2l&#_A)EzW}?8*5zNsC9(Rwsj?wlZ)1WB z{$5s`PanJsi&BK+@j0o{tB}^ld}AAB@)5*HpaF@B!@mp6;*9I1H=n z;SU@|dUd^dcHw>>tNL`qtLyDH&cI^55a(0AEAtUf80dLr-l-Fq>f<_BBv%k;sx0aokBY+PqvuzkP0ALkKQ z<23_6$Ljbm^=3b~Ah_W7#l`uC<7BMj`*8|Z^UrVCeW8xm4P!pvqsL=Ayp8cD-Y1Cp zzc)UN)$`9WSbanrN8`)nSL1IrK8n@&OT?ZWPmRCZxVqt&`!GHY`{7!+1!ar#8H@X3 zbv|3M`iSFyf(H_RO{Tx$6u*OGh^zK{sqc&V-SJ$b{7!hOQQkzHXyjjy_Z#U?<76z_ zS3K|f5vz}=Ul!i|nSTD1=ajx&KlaCq3eQjEe;vDHRbBw@en{tk+bKQ?k1+DD#uKpm zzRoV(YQMhUOm>QYi%%@p?RyWO#iH(_J}%*`pE5379sgp)-^95_ybsQkanXOHaH%D_ z{Drt8c2K^EAHi>9)j!v9l##wjf6fm_%JeO8DpvO|Lvi*}=642|C~pn+SP^W0zvL_~ z|6#EG?`1r}Wmb}3mgoI8`%U~vIs$vH((BI}9EU}(it;bx1bjwb-_P-gHF~{iK7jcF ztMp^>a(q(e-+;TU)$vpuhSmC(iw_!cuL#B$-YoNX$6@QVXW?AK`|c3vD(ikVE6TUz553D!s`5<;s|_3mS1il*Yk$pg1?Uz$7_!h zW0}unJPIe_R!k5gz8+^^*ZZ$jy!}Y9byT+RQyl)ez8`KBNqZB2LzWkbvknH^-$#nU z;h*aMKY-OojOovCk3+itkDTIvi~PjJ?>mV4c|@^)I;-~^A-Ig;82se0K7KqNaa51* z)A%56E9?6J=U~--)drCttMS|yyB}jeB-78uW3Wp98CD;0K40J|M*Ja;!R1IM>hJb0 z?SER=CjjSSRo+sZhbzhR-Gys#ehuaE({Tt^>5B|z{NW2S-Uxf1)A6@)9XwgaSK?SB zei3iS4jIqK*+#tO5bB53{;EG#A921>xXJloYmdyo0%u^gzdMXert11+;__ImKcYQc zhtj_Iq+E}^@zrnj{dyQ)b&2^`#;4)z?-`FWe;f|~L67&ZvFEj5`~B!2B0aWbdsZFB z`npfAug&m9V|@+653uy?gg%BjlusCSMMw5U@zu#_55)?Rv*zmTX4CS z`u*CcxUrG`96n0*o_`18`p4o6zF#Ho|0X!a z7vL$RSNV5f^%3>^1ji5;|1HWt=@h?!KQ!{+!LfL)Oz$y*`T8eaei&|v9Wp)#$6&Rd zB;dJ5`b&5@-Ye5*<0pSJ-sJtg%Sh(48+tr7z{_vy=WFlabga&ABhE15-(b(5b-d^( zt_Q517dFB@@Jf07E;tj5`)$!4V{jf`E58r88ZW;aY(KC53{SYnep05tiq%K7>CgBo z@eV}`%X1k`|NS0p-IC=s#Vr^gYP@yA7X4YDyrMsQKzz77-W=S-CB*)I#U8xM$p15r#cKX5JC5gXSdFKaIMql$2&ZGUUarGWaD92a zz1S^9|Gmper}#DONqyA${Enk=F*$#f9M63Da)@f zUz$O*?;f03ImCWnl8LvM4zb_wcuioxR3^m!eW$K?aitLZetaUHfK~lsai)8S{r%Dl zIOP@HKmXxWd`q5xkBQ8`?}pgd=ML;ee^b4J`R5Dl$9PoFn|{Efv6}Dh<5r|^N_sIq ztx0@;$e7IxI^ClcBJsh7k;(Ku#R`tD! z{a+0!`2B2=zw=c3w`z!eKRN+t;;yp1{kTar?JOLF)%Y&=9`hwu_34C{ims9*aeq!YR9p_`!pD(}9`;~gS{Fb;fR_E6b zhu|gh{FdRXI8t7}PjJfyx_xR+=laH~y@%srI6&s#fDhtg@_yzzRv%HPTR6EpPrxV%w~S?%y^gWH40xe#`k=DD^-v0tvHVS-DUY-;B9F<|E5F5`2WEv{wK~M zy=tGza~RK9onH&=>aXMdaCzKHmOmc%yBu#_l;zKNipSv~(yQ{0;0Qc}{Ni~)nv=6| z25~h%dCg^h4PgF|=O2zw1cuoA`?WY9SCRGk61zJ>?EQ8gPQ&wLy!JfG3)1e5uNt0* z!-IAFb9~eAJscIHD+un*(u-i+8^L5b$9FO(w zX{ACB!)|Zr@9WOSi|9XfJ#4~W#MSzC0IxOTXYtMG!s}PGuj@jdw;1k?Go{6RzXadL zs{ha99DG!^*DrYG75)1>kDcPB7x6sfeVxA%PQt3cJL9j6_#m8$>&yO3#4aD`_2xUA zJ6)IOwV3q+tNm0DTx*8DzTd+Qu&RGN_Q7gDbq$AMb^rX*60Tp|L7rbtT>l#1pQJwG z`gqeR-VLXdUY*Y{oQ2i>S)6c8NWuM(XwM5c53Bn8gFAA5YCq<_l=XHd`y+Y$PB`u( z=6mVU!o;^p@4y{r6<#l*{Bt-3tNHs8cAu;FZ!MN_ePDGxjKo*5s?RQb6IYYtGZXhn z4z<_ke4M>r_kYXfoX?UF`}+?Q@cgB^J=fzD+*|hNx7cGjaSkZz`w!0E5Mtet=kwYM z#yjV$`lBCShgJPzaXx+^)92!A(Fq8{YYp%3jQA3~AFJnaU*T0-SPxlGMEOr}$~L{8y|$M5b-P}F{BRJq_5KM9vfV!o2cKaI=X()YtZIK>~} z2BcTVD-z4|1sp8%zlrB#wSOLjmtxg_YwRD}MfHW{_!aRs*kXK%@h!${SA2x>C(Gjx z!6$FW7yN##h(|lcSKH6)%K3I*1v$(Snzm2-qgl z9G;=?pR(~0d{;gntiFT&%Wa<5FrY>K0&v!EA@+C}hZFDW_TGnmvUPhs##LJB=g)3C zxqqR*y{Mn)?`rrm?Wg8HAAFbbBlg2$eGkCCls8(Q&tQDufBO5!Go9jbIKepnDV&7W zc)5kYGUCPK`Ti@OBg=1#gYI$uvOULQp9dlK_xCp99IURN^LTcS_G9e+yS|^Oo520D z;c)Evko!sb?@w*TC;rpx%T1h}ug7EckD1?s^xtzt;$Eaz_v<_GPyg!Y1;65PiR!~kC0yV=XdzPJ>8$bJH^W+QePKceskOatN!eX+Zgd_xHH}$`||+4iQCHY ze;a!g3$^>R+#co!torjUJfgVvXq=DL^|%=)l+f{Sv9D{WeLw2*3H^!10xqr>2hR5h zwf7GTaS&GDPxu<|G+bscT>gyZ>+*@~i&ZkB1q)j#CU5Pon)^ z4Ylw0-@s8=<$o8);nK3bwqW%U$KQz)tLgs8!rkd_F`tR~-en*CO@FHX_QVH`^rLVx zR{g&iAN^hTf4o!t6t3f`kM|q)#wx$te)dOy==^oD84tvKgGw5 z_!XRH#Gm1-Sj`vB4)FZ(wNQJ#e;2=PcpHwwi)4F#hqJx(_$hmk=Lt1vZ`x0cmoU5- ztNrzAyc0WQJRRT1E2JxY%6O<5YCqrf$0cip+TS0F!BJRU4|{PQ{zB%zj*rw1wf6^Z zhe%&XkLNdVmf_)eL|q-)XwdbS0II)dBpUt>Su>L)v zUvLBRcart1dBn|{?yIkdLAb0@-cCHERj74AroWH9Nw2PtYM(Lw4R^&|$lpq)pNmgp zHU7WAF4S+Zj9Z^mJ{DJjIKL1)2CMWjI2Wt(lJF?%ui_c_Dn2ad%Zf+o-?wymz40o% zN0z?~w`s5Y=L?+LuBUy!^Bc}1K3cuMOXm78{=RP6=3gT|64x-iA2%@k z4Eta;UpD!Izc<5bf7TC&8R-|{2)tRgXB>X|SG@Ir>rd=A_B+MT;5;M$E$kAa=Z7b_ zB39>9{sikccF6ME;Q3hHUk$-SjPxJjF<8uxqP;HTl+9i3-y8Z9ClXihXKR1S{Lob& zZvf84>ieUMv3GZU{(EtAtm^jzZim(Llwx0Tz4p*?UpxV;`i{WsaHOo?JbX7#zaQD` z6#pDQG0Mxp`B=@Tk8#|SL0~~4)4Q$fMlXS4>_ej zhFu1R+Rs}vaWdX3kN?ss#z$nR{rs#IRv&S^b~q?1)PDZ<0gfA_+w&Ywz+R*k_Y?W} zES`l$eJY>kdE~pH);9TjU2o!;>7n-D$Be>R<3sK5r!2=A6GE-;xS&M-qc~|=sQtVp zOXQEH^<;ZhJHzt{t|w7z@w}oX-pzcXet)4WzKCBYF6Ng=e1P=odE7*NgLowwUxIHD zFJ0h@)(-qgmM8Kb#}AD7_jsGMIDQWHo}uRlud}>=!)ktT;2v1iSDfE_I2l^F{+NnWX6p4}JC2#9%g?~uu_~|11?CrgM;@;OUOro|--B`aIePtEhcmFs zpN2E>a9N*{sf^EgdcV;QXW+rI{JFT@e4YO?_Q!W+{4w@kp!Z94zGi;M>Ua^@7Y~;2 zQx4(q)uHzHGalgb*dfcS^9|R>s!;oR!gTEBtAGDwH7-a0)+fD~{}b_I@~ig$5g);7 zyjU06|6x@hZ+sT3@#2pk6-}^a@w`Qp*WW2V5%*Z5^RL3;SdEuNJj#e)z*F!Uc|Omv z?^-=yG)ZH8;Ndbp0C!oZ%U_AZuzH?y9H$!b9Gs48%KWvz<@e%@_#m8*)xRebgB#O+ z>V4E|e1Y>-?Y9fJ+o<;kKj8L;i(caSgS5Eb-oTx)YR~aF1grIY3m$=0`={V>M*92s zJ2KgwM!a-7_XBvA%wGfFa@GCW+$rwB9-DOi z2jd!8^=CA0Zp7E&Hdwq*5cT^UhhVk--@{oAy4u%c$?sSXh}V|seeq(f`m;BVER|pl zm*Z`;Q+y%LC%tOlL|lBcuHPA48LRmJaCICik5}#r`xD$p7{u?@!uHdZV4@T{#fw543F5s^+yKL zp6_D!ZK3w_KGEmrhkdYEk3{*?u|HP7hk608 z+aGG(lgIxL&pxX61D-!{ewXz5x5b{xh4mNZ^}#2wL*}1@lTXwBa(+v~<-3I2{qZA? z{+9iTtWU9P%$Jm}+N&iF!Y5^XBrbVb$3Mp9v3mb<9tRrnhj={WU6d!*&l1ge~#6^3F^*J0LAnqmO6YxCZV*HEve0-UBX&H~j)3At( z;~&7?sGqvN@8BLreXD2C|5#lQE%DRx)L&i?4yX7#_@H*@ypMfwKbhatx|1W*5f93VMBR+JV{h;(~c-XJ(FXeoBA7@(~WXkojw0 zWd2=d{>c2DahI#CUz`uozj0Xo6Kx)Whh5XpJ67W&EK-T|7qHXyzV`bZmrJadSX~dA z<1nn!_rv|MTA$v*Nm%XAH(>8P?X!3<-YSpxH;%v2*WS;1U&gnH%lGG@IJs7ky&jIo zHSRH=W&0Q7UWFy=k653!;OVtf?Y|d(z#)Da4P`#{GhU^lG#a~1Z- zi)DTG<18%R_lWxB;#_=Dp6_zG^luUKLym`LxW>PI?eDSr;_-N~jE~1oPxXFd84f5F zWY6ziILAB4ex7z3XAoEK5C6jjulKh)%lZWT#`q{3WHpxkm4GKz3bO0J7+<2i_40lw z4ZBnhviCy=aC3ZB_Gck>tE%(Yy~h3$N6O>%#)Vjo&$0L+R{gyKJ5>v^f4=A-euAgU z{CRj%^`PSMBKouXb^5!e&fgn%!RmTE63=K6WQ~^j=iw#9A4#X!IlSLkukQ*IuOQ>)@|>+RM*iCPIB_o-Z;r1U`2+ABBY!L|pnja*;_&q*+fcPM}UJt;%{DbWEWfq?HN|1fM%D|ae9sh5fWyBljGhW;4cpR>Q)qI|hyI?h+ zx8ajm&F7zRJ{~RS=Y1UYD)UkHj|Ur{tWMNdw#Og)bf!F+{x!U-YmhZxelPa{?h;7- z<@)dyo)$s-Wd3Yi;T1hzuj0;}Z#7>3!s(<}fK@d5U(lE*Xy{~z##km@jUz%R{fcQ z>(V}T|MU}1r2cBYUBgMFSM7U(=QYsnt6uPI{3TpSdUgIoa1mDRi^t^$>G*tH4O89X z`M4X`!fHRBi^K38d48Mz!TUPuE51h&`?W4Ok@~3m_QO$wb$t`?yccwR7dgbY;!M)3 z`kug9Sk<=xUohfT?()4N?kwxu6E}zpvhTMOaXME0m4-dv(7uL~acw!j8sFplqfvUi z4aXUygY5UEX}CY}XnDLd_!*~Wp7d(HZjaNkYR?qhm;MsxTlCj5oJfDD{`wN< zlU~$UT!Smi&CpWr}Fh-j~Sk+U^qmLBhe@HNBh zaE&BAUT)$l#MSt(^$+D64#ZVv>-JB^@pyx5&$rl(^3-^6dd&KW#qT!~^@+r($+Tat zH%oBP0)4)Y;nxjU{+H`HR?nN`@K(mJ`hC?iaU$ch0>>BooB!eC#2Xg7l64HvHsXJY z^o%EwUW_M?CyYW6Q14iKHORQ73@TLYCOD)Q?crw z4E)Gge}2K^=wEgI{=%0?ui96ml#4aJlkWdE*o;TxUTbvu@8dA6`hOiBV#I&Mqp&#N zqW{a5cCk`$Q|TV~8?5#>@8D`{gDfu@-+=w_cDdgEf%EzOspn<9Wf>Q%di&*89W1T~ zA$T11SM3{%lQ-)2eSoKT)9u^h5I=?=kY4rQpZEz@?W7+?{%S4aCjA z*5hd{uChz}8ulZ-T5l>jyI9|0RsW8-6X`q4`i;diuo_>VV;{;_{ZoM3(f{iD=ITQK z)4!_!U%&%Nug>>yoP@=A6W4=zczRELJ~leUkKjUiJdyq`F2dq`2v>G>vC4l_QXk=V zxEk&%>pv7nVKu(L!kJk8{i??}lKQLn@gC)=KlM@dZ;So+2HDR?M&eocU0HrQF2brk z$MEz%x;?)+#Q(*^zSs5jtiX7|sy%J-`$oJUP8OEy`AR&F`l|in4q=X`>iZ-1JD}Tp z4Nniz^(k_QS9NpY?=S1~*$Ss&HQxK+?~M2;d;qKQvI=_~WIW32%a6F@p&v$Jjh*f+TZhl0^m*9Nt&JCd$@27CV&-(tad?nUPtn#adyz%syRQvD0w{nR0zyZ0sK5;k*tNu>FuN(2jcsOn( z%g@9qxS{ktoQ~D|-f}f)?{)SI@_VZ1amuwI>$ptskNXo>`9}-?t)IWF#wX|>9(NV@ z&zE={?NR-+9}gsbby?mm{1#UIZZ|Nr50xQC3l^l-5}|JCQCA8vrv@#f;@SUq3ah~w~nnLiVIKMAtmpFhB1Sp0oR zvA)!@4#hC1>5(VdAN?@T6J73UtC6} zAB6p|s{dx((TLy0U5t3gy6pFGu*^RMufWyidcP2FD;;dVFFS(c%INZ4JXwFSnm>)O zU)kW|`5@XKjl1Bjviupi0ITO)pW|uH!PW+Oyq~bQYp@k4pLZ4EyoSN{`Fi1bj#nwz z{vJ3I7vOuPO8R>ezEqX^Gr`31KgNab!S;CEg_Avk?e*d`PRHtd2$y;;Rt=7KLe{qn zzHeNQ`{DBg^z+-duyY6fK5qtoL|m;0A7OXm>Uq^>T!#6q;(PInKDs~e;MRugd%0Nc zv06W(aDS}Uk7@XIBmGt!k5zvk#_firS_>JE;(qRuL;NAG(MTWP-JAJ<)%O z?2jwR{+@^f8teS)aS&GP=Q%tczbX5(Qhny1kvGwoN;KgZ#0|KQ^1>0&>bj(;|M37<6V+R(*1 zjaC15z=c@#{}B8TtNFGBJG~NY|2*O6*m-!Wl_>jvze79+Pa?g_Uxa61)&Es}xIP&1 zR(KUw{re`)#H#;hV!u}zzbpu1{IACAI_UKw6Q^R;p5O5Std3v15&eVf%J~?D^E(FH z&&xl;%_(1{Kaach2)2L!Zp9ZEABMZ*vfYC1_bp>_6jnb^vm77luFK29*?6=(em*|> zrhcDZs0D={5>mt0*m!mJf9ehgQ(wVEc$0AUOZCo z|JFIg58w>atM=Z(nOL2licJ_FM!YS)fYtu_ZS31q&zH@(V=ukF=i`%jzN}BvrY?M6 z%X%dJ8qUOOfA}FT!i!}*3n%x{$1D3H^9if#Z#z7xZ?L^zAA$XXg6-#JpW#b}f5J(@ ztj8=+qJQc&W4^u~Y`^b_!)~$qdbJ9#drhyWS8)RA8_D`LXzpU29i;0&2=^hs+Rv}R z$yl{F7Z+gF-z{HaKZ4bIHXLVhJmuB+GmfXq`w5pFO#jO9Q=tXdvp8K|7@o>_QO^^` z;pv=znp?a+F2d_bKTp;_4X+)WYX80G{SNV8ag#T6`H!(LR^y{aOXi0We;N0|YCjQ= z-^Xe_S%Q;{^!srNZYbOH2TmWN&v#v47pvS*u9vdD(Krl?^-i3>xp;;V-+{BRI({C0 zf+tV`k^Y5NT<=E*+s~s$V3#radb=KvAH{A#*5`&W=~e$%Ywcn!H`d>#csl*(MSaBe zrwdM@yfiSM}h<}W`ysO8@ z9^4D7@o@nUG~!M#^L!1nd>5aOHh8$<(Rd8*EU$+<@KNfk?$>_CUerg`_cjijtn2IA zmikWC^=*XBcmUo@dNuz>;X_!}cRoI6#JA%s_>8RYHN0brKEHL^@%&(_UVr-FvsjIn zcX5?zdVSc1dto*IZsC)L>-w|*c`w-FwO(=m48a4F^?2TZv*&Byz-I%(?fpuNS6ClN zuh!>5c#+}xI1gWy?Ky-GQJ(6La_zak82#M41;O_Bh>6$(tNdSLZ^H$+ z2^QmDjK?w^*sr~(&yPDc<1O$qBYzNHW#k`=8_(4F7dphZVV8xvK4)Q`7XW=n;q4XEH2nR}E#$8ghtG>$mk5&6S;s-Ruhh}H2wz(u&Btlt*ga*n>AKI9Pp4SRm7&&N~jiwDd6 zo?W;fpR4be+hH>vjhB#K9e)a5VU)K5Z!zNE<6T(Q?;*~?YCq}TmHokI`g+mD-HiQ-tMc>klN}}dZ;{@+8{?h+u1R{ae`}B3=^u4I zqHrj2_4BUda6==$06(R?`to=iu=h^g{!6%tVbAXL7j~8D`{MRSd?xOO)&6)7j>Ge0 z`m=cXg4E)_pDxDBZHIW70LGtDUPG+@i82Zlb(jdc5^=<%li_q%h2cVDn5YKd@2`6d035SKYS9;l;tJjh;M`K z@5lDxG_2N>T)g>1y&hVT3bWHC*remKyI{goLnBmfW$ZxnS&NDn6`|Q>EGx0FPPJPL5I1uL<{s8-Yuk#?O;ej9q@#_n&EamEj!hdqU5rvXQhOzb5my z!`HAnKO?c{e-r2atIvl=6y-aG*ypD&P9nW}|2+|xy{Wwp$KmdB zz4!&E-qQVBHJbYs{GY5}E1b*uraHyvdnA5<@5tx<`$YV)zJIA1!}W;zosi>a0M35O z{ir}u9=yx7<;{EkN$ap!*APY_r4n=jyb#MSk!2M(e? z)Oh&-M;X3^V{v2IoKxQsmh7JL$4l>PG~b}AEMuYb337u;Q@Z!v)RhE@9}<0bgG%>OBNsu*H_&v^jH zJ{Mw-uM60DWvaD@^CPae_Z;HR13CYsSLMHecVX3@PWXrse+{3+d*tzF;uL3{e;Zzg z)%E`>-hsQy_Ea9kc*5%X^fG>IK}1qu1%r zsDbu+&=2>D9%!$(Q*hq=NPGXg6IWRnX?e-}^~ZQ!O+7x_4rYD8Yvu8$;DB2C{2s4&H`t$ga(?9bYK`Nc53zqA^hBIVebo5=0q?3${mYcp?-KTVL65h8 z@CnwNiX308R~3e^UuC^e>&^4{sbcwdEcTZGu}lTP9EmLc}@+koM;m-Z}|vg1ST=W)N{&1*~c&*J&{ zeTR6Jc%J`}UW`w1z3{`6usEN>;dp@&e-|&q?d1GDgqKsksGlhR3T{LF#r>f8dATAy zJ~7mOU*kKH=gU~luTY#nCd%Gljl<_Rq*~3GAL4qk&>{U6>@=yQzT*6!#4cEkzk9fj z5wAIl{VJX+&u<7`H(BRjgwybK>MP1Sg;S=4+WQ&T(Jt0a94_N+u>aIh`+j&BZqOy% zp5JqDEb&)m`gHsmepC7i-jon!|2?aUV`$H`Q2YIC7rg83aC0fca#rax_`^xbq&exZCC>HZi ztUt%_cG5R4b~WoJUW?WFF7=j+l{ju=vBmkShch_dXxZNO*gZ|(zePI4$6=p2`h0wZ zn`3o8zr>x4_$k~IGdzmhUv3=FLD^`CSp7fz|rgbOP(`l2Chp(GQ=+OJ)A~IQ~PfF7o%g zox(+HLhbwUstN2@R_poG7bg%8l=(lx@vB1Z>&YeTLHc$wUj1F32V?boIs|9qp)$S< z`%<1dAHQLLtkTz<$a-$LJN8-2e3$FTblhv5&VK-h;WKi5uaM|s9c28d_YY05Gvh;z zpB}=TZ#930;+3Qq_qSsH&BR$7Lhb9@=lC3^_~P+%3+G@}|K^hz?>JG$L$LcUJs!t8 z#24fKsXBiKj>Bp^UBK@c@iLQnAA{9?pcBr<)8+A!aIbImeESv$Z49-azdtvH@wzG0 z;*PDj{xNt87UxTh&zGk@>l)M8uM>Yy#-p+C=FsAw=M?GRe2@C3mDFE2565FKnSSc~ z?B}qkuZUNiPJiK*(wlI?=gfc3r-*l)!G3N_sC7_Y&)&hy(uvFU^#?qS_KhRIm|vx4 zvYuw>{%DS$;NCJm2;bs-s{6$$*qQU8&i|*lfb!IOvlF{#=%2Sf<`B=rzTfHd_1rAR zD^};r3#)(P|Gj|w80iCX6juA8;ds^_y?)NdS;Xth`me{gvATaagM+4p+3$n@z#imp zDbst+=KSMk(&0D((|yJLH5pIAYP_c5GM)7I9s98}?N|MC4$mdMusA=Jk~kl@uJjA| z>USmIgNWyobhw0{r4W1;ZY|-?cYDKA5XzA%lh6D`SA%k-`$?Ne1Y>xuloBAE;Q^rkM$O-^>PIEtsG{bucf#x zR{4+ME?BKEdAQ{s{XE-Bem4F*&M@+K!d(<~^T-`8xeETe*zO}>b_a$TT-a29S zes4LhLi#{i-YMK4tNy9Bkmm#RzuK?Age%iOUZfZMg zkJb765kEHKf8f&3huQnpwu@Y>dRX<(T-*e!_3lSJ1}~TOabC=Rqh6T(`w4pBb$Ek} zPr(6RVfOWBA6|x4`L0X2f5d8h^u+l_d;u=RyJdN2aGJNy-|$1`J3c7mJ@BOZVb)f8 z|2G_`)f!+wzg&%*G%6WyVtv_zw;xEgB4vM`bBI5{(?~DsE7I5gi06A)txxUnCq_IL zufc(`K5Otz!@uDcFX;I5OQ|p3BhwGW{*A-z=R?zQdXq4F|GyT0ht>Lg6lWUo2lyCP z{o7y}^VM)LzF?$J#CiClJpM+U*)+`ZlKpoJ=QaPs(yzzahVSA6!>=r7z3|uhXXB1oWY)_Vi})_Yjg;+_ru@eG_3mjF;2(gdMD=lE1%Im zd|i4LPVX3I?@w;vlRfo(YOs>__t5Pfiam*|>-9PuglEd~u3)$BVfObx^;Y44FzdXN zTyJn5<*E8@!0~}$_I|ejM@=7OKd-5}n*Qyh)4zcOaAR5CVmziV*AwYOI4_9y$oiC8 z!}TOs&-WMb68wsczlpQ)8R?aHU5FmfNAM=B>RW`<@lcumm9_MLsP3<6cpKi{sHDAz zaqL9qzpP)CbzCnd>G{?Mr(tzHoQ%CE>*KA(YrE+8;osujthb{7#d>>2n7F!L+{L$u zi}hW^UDva|P@dTDi}k`6zi4@FuriEFZrN`r4SnX$0aXwc4e-#&E_469#HgSLbzK;9hb$GKZZwT%+y<|Ly^R)!` zF}x24;n_0%J$w?Y^`^>Z+BZXwhwgY3R`q!gzk{2}{9ExFtga6yaH^61G2VvN^R1R? z+%FjM(f9%0Bg^{)r_a>K%fcC0_5W=gHY?12UsLaMe%=PF`VGL&j1OV4-yMTbFn`qF z|Co-iN{i=JAK}KN?@W3zo;Kpj*j?t&z?qaUEc!DCFIzb zuwSMgKW<-gJ;G{ywZ{c`tt@W{PWhqac%nWt9J~gfC0?EMBL1y|&*FUIYJL>qLOem1 z-*h|eIiU9g5jgpv-rrBg8Hd8`zfW-l7arC1tCi06E{p!8L&f;&f|q5p9?0=I1a~|^ z|H%E+T;a32z1Q$roG9y4_bb+iUv&RO;!#+|=i_UJ_v3-*^!@%rJOhuG^P%<*`t!VY z2i*VHFzd2B-W%BeLYV!$eJRemsPA9Dz?bkKnf^!o;F3Py|KRw`I$mcd?>q2Xnf_Hg z?26v6OcB1S*V|2a1)e9=Gz+VLq76UegGTymxDDyW^9qsv2|i)OYi00$fw)+oM7%A&XvAai*}wIE zX9+%s)&AutoQuW!FXltlZ<&9FLvW$tk8qKZ{{SxiQ0M;#yW#1wJooQd?|#-lU)36$ z@i3fX(3ONj(f=VeTN?!@yFQnAMPh)yyHIhuZAb% zG5ETSe~rT)>-Dw(@4#yP_Snz-z-oN;#hF;W4_SzPo`hK&WqAkjG2BobMHGdCBY59_(K|-2Q#`H*kPQxP3qDeT4P0X1M)5LJ*Fx#rs#8e-ch|54ZMH zchMi~aRT{=N}s|xMtN>WdHz;g|9-TdxH&#vwj}>#yu>Hm9^dJ>s9v~rPnLH>Xk;G;k3{dkRI+`qBDSEqdO{JA-vht>UUAihfa#>B$sEQ1^6)*=To#N3kUJ{Q`Gwiw-emY<9B8JReY_x z9?xTN6MkN&hm5Zl?h|g`zZ}J>c)E-~#6Eq)?e`}kCwbnmE!=*ewgkV$?-P1nrq95c zq4cM0uhS_U9&Ya^U&5YzFVRS*AB?+UwcgIdu~^mb8=Q?7GvGvf|G?gSf1&1gz0=Hp z<9m$0cpX;#lZc0H4Y$8H{ubAv{_1#-u%F?!XIO8rm#p7Ac+%u>`~LkK`~**zaqBG4 zBd6&8Z-$#s4Y!}4L}T?&jM3NdCF1J-e<2<-E!=)zzYov&BHX@y{fRwhh1>538vMfg zfv3vj_rt?xhuhENKg2FcteyaKECOu<`>_*%RJi}g>m z_Z+@}7fQSQ%Fhp`huiNjdti^RO4c)xJ`pEj_49Ox@ZG&7>w}1wy}7x{S}+OO8Ddf4ZCJ)Vc)0NhlTw*imGqoohyeg(S! z@*LvjE-`*dua4gm=V8@<;rO8upMstC>GgdT9+9uh-{TO!jMYC;=5;)V{Ni|GJ$1Xx z^&N|ta0@)wi1)*b@SDU%|8Bw$a5L%iSpDOZb?XxL-p~3Z=Szz#_%Q27nUegIaL$k6 z#r-MD`v~XZma@E)xW+NPepb55{tLH~@h*54R_8YX59NHR>*rD&N`I*HwF6H#;-~N+ zBVLHtQJ#7};FinzD%Abi2%GV)*yFf9U&F9BR_AL5Zf(Rj;P#m27x&*8+zHQ-eu@v_ zTXdu7k6ypAKA-1$D&xsG4!A%Rq-14chq0C{{@_yqvuCkoP$Tp z@_ONbUv>Y-;sh-6i~5YjGjJ=pU-}5|xXAh@#Pr#!tM9f zEpQ%wB;zso(q-x=*UKq5sQMtg{I778tGYk#;54kxSG7F)KbQRi6&CgFi_88IZvVc9 ziFndo_RDfVvKn9dQ^&J#*nQRm8NY|uJ=FUV_ZvKKdPIN8_IJQ(|LDKJHXIk=UuAnf zz*&#=?*rV2*ZoUiu24 z+Z?ZQggrican|JsgzC`*oTADL(sE ze|x|2{2k6eakbxSh7-CDu)JjYaJ&qw^rp%GhSmBOgzFjccs#6Lg#EqR=s&2RS48oCSzJ##-R1d;w;rD( zaROHN!;A6%@NU_@ukpb85%%|hzv6g2LiVTAJ;uvR5%%|WO>w0b5%%+d?zlM~B+DCw zcd|ZK#Nz&IEDogoVto_$XVY;q>D79&5_>(;>;Eo?_(|;4Quoh&?1EMQR4!ycY{Xk* zAG}i5X9&*3?W8}zMferzEbQkSVeOYL!Vj>z-ZlD@@!m@JXB3XdfinF9oQ~D~%MpA8 ztK$`7r`CFWc>Trsz^!Ed{x}V@EiYbA*JGD%5%%+?6Zp7sy~)Rw=`YovrS9`Swv+D9 z`q=AV-JhKt;;-X0(yRT?9Gs3-e{RGFjCeLahRewMKKFqA9=;>p8Sm|^+cO&9#l2;G zEB5aaVSn#-0T<9db^a^<&3Nt}VgJ6CKwKpt!oHuKj0*x8k36sy*PG2aDuTG|uV1il zEbF0Mznvbk-VTnis!O-PONMYhXn@E+1ZNHBcrv~iCya`)ct}+o-zPjS!kQ=j2Y!;k zdi7jM-18Che`*&P{<18*cLC!`9=`}zS;Tyl z*Na9))NgS_@%K}rzR`Hv(g^$SZ_L3pK4HAb^grY4j1Toa@Eu&4^RLE-%RgKnKGo}Q zGn~lN#(NxJ%*VbC@waf3&-D0Mfqn64c|J4oh%!3=4TpHe$2@N{@^{3kM*cT&KWCkP zwnID(S6Qi#e-?XSb^J#-u!7F-{_nH#_BhGNKMbpXVvLW*Da6(N+9KSp^2Xx#VWL02 zbcmnAPOEf%{>3g><*)aI`#X1?zY{j&Z{TT0{)IRRtM+WcovZ8i9C3)>z=cNs3jeWw zVKrY{;PR_={rcl-SjA^xA0xgUH#g#EaVI10^px-Wjd(-c--rj}I3qqDzhlHd!&8j- zw>ZU!U&YIecxm3mY%=1_@t0WL-zDH2TwRX$t+-%Kgf&)<$6GjdZG^p_tMBA$W#SPs zJ_a{g7h&IzufZST4`lo#_Fm8VqW?MJWff~`=yOI z8>{{JZ5+2T!U~tit6$pH+J(!=_Qc|hOexZNaFo^Z8 zlC!Hd><0UBS$+WCg@;N{#2zMJkCq6*TWp*v#>|0NW1=r;g;8pmJ>R+5(NxO6n%C8)0f3MvFtAFAcZE;4GNc(y<3TIc1wAcS#*t;72FW18} zIId=7@qR#De~PekOFh2o)O9@-L`AO_a zdNtlWYqQ?rgS1DK_bM*if%7S^#~!9g?0^$VujWe>ZbMw$KZ@(mTX;5cuVPoTl5t<+-ZK6L-eBZEjmHsJ*RKay{S)Wx zKfK*Y?^V~;8X+y}+X1iYSu*}adn0k>HhO%-JH%&Tmq6WLYjG7knq!Ild$H9{=RfBV zzmKOG`Q1HTtt2e!D)P6)pBV8FyvB%+#_2|UG0wo9W&TWDgjdS-vj8va9ck~!8a~f{ zu#X-O!8ir0`}IV82rri9rQ)c*di_0zx8db7Zq;MG42ra$|24u+!IAd!u@IbwFVZcd zeT(prL6P?L^9UX@Aku!`RwVKhZzRia<>hMm5m)t#!&|UgkC)r)3DfYo{tkAv_+*`G6T<<1+e(X0<* z{rlJ<{sqo4@@L~*tm>bK|1#obd|a)^SY5yC;TFRq?fp{}K8;m5{XO<84)F-Qjr6L&N8_AXx;^u73#`uX zS9k-*7wN@%a1`I7e0BWGIBd4wuRg>l0`>9TnmrqDglCXm9lsM^hSmBLi{0jy^taf5 zB;v)rH`;$MeX&D)3-%|yC{Lt6jMMr3L27U-pk@b5|?=yxt$S$9su)m-+iU zcp`RM7+L&%t0?~y2Y-W)8vT=vchi2=KiBX@;?-sUJ;n!(c(s?957bBXcXym%cq*QT z`^ow*#mj>>+J7%Q%^{wN&l>r!;!C)%%>M)r4%PWg;<0r&llkGW= z2VU0ot>Me@@B|qT#W}dLoR3L3|7xWD^K0J<=j!$T3QqV<&;J^&I6v3)dJ%xruv!mC z;V-c|f6H+Oo+ppL3kTeew9b=2%;yt$$aTFQm2J)V$Ev)R_%p1^djqEmmnq5rKfLW0 z`xV)q96aNv0rvf2wKnX3??+nq{^Vr`gue=}EPb}t>Xm3Lt8o_>=`ik;iafnCYC8Ss5Ycx*9OJ)8w z*#AGhK3>4FSjDTn%>52_mgA`%E_$lx%j-DIin4znMlz1#zuB_<9XJQ8`d-D$sz%xS zi%M6GcyHM#>!>XME1dLPlzo2kaW+=x_l0)MS0nx! z_AD1=O_2M`^*E0Dw2|dy;e4$6>rea`tMcmmyIQ5IY4^tEu{z&lu{Ule%li}u8R@fe z6y7c4Pq15c-TpSOxLVDzI^NqjlJOzxBd!ngaAVGQ<6>8{R%1WXbNY+d=j*sFR`svb zp644zc`-Q5@Ta&x{z}&8XI#F9KE6u_o;Miojq6}FpC({$Bc6(zV6`9m1;-fa|HZLJ z`X(J&PmJ`h;g5{;^Y98IeFk2K)%(M1I0Jjh`j>r`@rLKi@!A*Mc$$&l>csfOgJu4@xN@w{@8=K?!+A#j z3Ag~O^SKy5HR3yPIS(B_hCQ$vKfhydBmP`xo~Ie{Cb&IT=W8&I$7=q6grDG{vi`?$ zTx~tSOLd{XxT%b{$Cc{n^D`Fv7*4|-@d$Z-uH)3Yy1tFNvi@S#-(B#C!5giA<@xIG z5TAfOJazt$u{T!zm5y5*@zb~?7Uhfm#$7yOs4m~R+q3b8I8Ejk>3iaIS-$WPe87m$ z!P$7NY~L4nOuZ=kdHz{^HZscIkGgf|d0G7^`+lM~-iFosITQOf(Cy2_{&>3V@4s;d zZYbS4fc*wuDv!S$kN1hPM#}hU5y!WrEA`-hwNaG)ys<03hQ<0K*5hf|?FBu4zsF;6 zR~f&9zr zHlE?D=ld4C4y*fxn|QCV{CUuqda=I=)#VStH?eBpC%Acp9bFz+9xlQv-l#A83Dz^w-{SdHS3H92g?q6pS+C*cSUpdhh{usWkhs_{EXLc3tLG7^ zcsKD1GX5<-XyiXFY{c*2i^RqCPh6kM1aW_2#OvaFMt(nh(TE4*!P27sBXJS)L(TvB zc=`zad}EVC{0JTvrTg;_JO-=zUoqI#df$lq;bfdheZ~0=!{bKl@<%$v=U}I3U49yN z!K(a2xQ-FOg&W{^W%<4#T)*&}(r;p?m?*2CeBbv4eljS^-fv&Qv9Y@S?xDON!0LVH zc}m6zm2o`eUNH@ z@j3okTJ&EoK8e+QuNThs7pwh2cYMW&kHbg#{e~I4tsu_5ORjdxFk? z)**fuXUqH|edS2jd#uJwOMKHPKL+15;$yMXIDPzu*afTnn{XW?o`oC8xH#T5>?h;G zWumyAVf8+s5uS*}`XJ6 z%-6aDSf8-^`+KeNZ1Su5+gq4;Wy%xl?`wE5@y5ljX1$G<5?AZ=XlQ0LEfh!@}lBY*YR zxc@NnH^WDl>ik_C;{9>Hkv|a^8u{1Z^NV%1%63#I4uf&-~{_pV7 zqb2#p_2!&I{BPX+GkyHJajd_1f;@lz_~^ln_WRukhxj<0X5?Rr)3K`mSNQyXef(^P z_-*XDQXjwa8?0|w9lsSmzegWG%pv{`USZ^4iPvFu{2%bG-TL@>4)O9s*nh0j$8U#g zV3mI$eza5PpW+Z-jb|A7kK$w_|4rRR+rRI%+F+8 z3#<6&xQP)zg?(jQ%)h^IHyIbMGmPi4Mt*-BYvg|o4>R&l!V``BpW*k7_;+}T5&sRZ zFyjB8qfaPh_}Nh@ow5H#>;G+yf(`I9_0kSfYtqJ`H|eut&6gsM@QlnSY0nS z;B{D~KabDh&a(WLzmdeQd#^?lfLW0d{#p?SCfSCHxbM$`V! zxj&Tm7w=)u^r+(ZJEA>DanjBx`|nwlAA`Tv`;%y#yqD(>a(}ZLr|&CSPelH7?6Y4# ze>jX&@mATMOE@eu%C7HUI2Wt^VyUt8*AM#nZ7rOG@5}sgIQszYkxmqGd`7ls8{U=` zWzCfJdxBdW)A#=^-eUd7Y}1O*-}}P9L|LE9^7i2(d`r5*IO=zf_R0JG?l|fq&vRw@ zpWygQ`hNd7PR7pi`_p>k*}vpR+26;$fwQnXH%y|x*5jl*QPv~rN7(xw&m-jVdcRG5 z?sGhO{+8qPN3>tYf5UN4bbtSibFtc=w|a;5=RZB(67Vp5P#$j|&UK2mR?G6Ao51;d zF522I+ZT-|IY$@&{WVeF<#=6%X#0J}SGZlOUVpP3;@5C=r)eTR`*o3C+z%YV2aR~1un{jk2~)oM zzVLax$0*+)pD^-=;j8j~K$IVkFOpx}4~qIF;iE?Wbs}!${~q5bzxeqHk^h1)`RmI3 zkMS8Jf1SxZ@9w?a;>W>@%YPMLHR5sjmQns(k)HDE%ksD3`$qf++=jS#UL}ry4!5Ly z^*zep_zvZJ6(6sfRbvVZ0sBX>o{0YS#euTDB7YF>OMcaVBX9-oUqpJb-)h{2M%#xaz;txSf&zF0No4-+3zce;i*tZxP4$#_5blb-&piA3d(;+fax2 zT-?N4&$o2!i`9HPgS#2=|8O6?p5ux69XyTe1y=8i7vPTdqwV*dKj5f#u&1xizaRVH5il#w!0>eA-BV z3}3(lWO{2R>uqbDzA0{xReuh|0a#sM7hwN3(f0d-Jvi3zUw8)glI8cF#q|KI@;2i% zd{xE|;AFpO`~ATaya}uN`OIcN`LfO*iCwVT4=u!9aAUbX@4)fxqV4^}d0fLk+Wz@2 zmn8bPL$vj_Jbr5&)-$^JenX7cIJ_6Pk?~J(ULSqD4i@aSI>Lj zz>kP~6{oLeO~FejkJC|nef}PQgw=Swj#n7Rt1_SQVZ{CMCL=xqe~DFnm*GoB`fu{c%Yb;>A1nKpr4{nWBeG;%gR_))2yWr*2U!1>h@raB1eeW@c_!XREK7wI!_ypjJR9*@;} zQ7MJ{>k!?(UbqIHF58!gmti$tzrx#aLmAJ-C$U(c#qo;p^79*u_j}@cSn-2rD8680Lp;&(}C6J;kX9Rlj};y<0iyaf33z{ zuo^$V;$B#-A61vIKQ-cE*ope8_+0FVRsMsxBOW1-=kX!;M@BpW??1eNXvz4Tg_qD? z^}cuw_8lH=|2*?voJ9M|$o~5sCy&%kk?i}}#5*ww6ea3cBD{%9VyNU!!+t8g={){C!kKk}>V`OkQsk^eUC!uje!`C`1d zEPd85;JL(S%J@5Y-S`;Gl0TpPH7*(zV|8W$67%I3hxGNA@qT7(v^7%ZZ;R8$vA@S6 zeFWZpZKHLa{9?Tu?GT@bUB>J4wFOtfYQ7%94UG8j_(j}Imhbj4^B1e}9*9%0y55b$ z`B=U0*oJ-I(Z?&q{&=38A9X)r|1cri{{0exI3Kj-lZ!{yeoU&S?LyaPUq zH%O1clg{Y*xej}u)z_arI0~!v;wW~|{DC+Z-;wcIIO7KQ19EEn<6K^cz zZSh+AQ>-_lKYQbavOKY0h{aZ4{k}K>?e|8$4=a$L5o&i@T|!)iVH8P_x7f8ZA|!=t$T z@}Kj)E>`37W!&CKKLU5don`vjc$N{*z$tjA9Iu7AOF1mlzqEzxDOT-^$4_u88UGaf zI_vRy3TNTLGG1jX^TS2wkHNlpsf>Ss4;em;`@8CR>1{l3GTaK!D6h*Kfs?T+ZyENi zpyOHC2Tzd4E5a-ARO#klaK7Ah`VrU@tM;$OCyn?OoP!6EU#y3Z@!*GtZJTd-y z;5@9x(-8d7h|k4Nm2~-Q@S~@?{GAT*<2a7=YCPP=@mQ5#I-U7!#OvcEJX_YkJq|6s z$r?w0iTM!b5Fd$MD(mv+<0@E{|3BQoh#$bs@nTv2KX@+=mE*b9SA6f>MvvFg*sZEA ze+#aG)&0|Ncvm$Y_u4^uxV|hu6kjns4?9)Y<7+QYz=1M-fyj?HNc-%h|7z&+hvIl# zon=#;ulaadJw3mV;1sO-yZkP$U--BzuMdv%((w;*JRU6L-{CAghz=CxU&9ytIG&6@ z|25;aON_mLjlze5V(i~XI|uu;*6YJ|>`VSvWd1976jt@C@eMx@ifhYwdz^xMNRPv( zjr3b_A+8|L*Kz#hWqrPG;}&i8@ha}7eOTQub;k#=I{pltja7ed!sFY;*x!Sl6Z!pP z?B|7#@RIg1)_z&PIvG3<>_GixeJ0>B9d-F-j|1pGwf@xnmi4@AjD0`U z5pTntW%+O80^D7m?@#fJ@ECi)bPW5_|EjzPI3YNu_~%>2@t*&V>vV3jl>~6&W#DT=s`^k7|Fg2Jbh@--(+U@hp6XxL6NF{wug0 zaj#-mvmW4<9A8`?MfnHr|FseS{0}J|kZJd*+`}zCS+ds>>hf5TB0yB6ay&aYwAmKZ!$(_!Hb8tNJ(G zNBI>?$`|WvAU5M~;X_9LRXE!y{~*3%#Q(%Mad+A$#$S*9thZ5I@5_{UDUKfyWB>iQ zn>aT%#u{3xB;FyD^GScI@z5XN;{2)c^e#Sb#FyhTK_$OmL5$aLaYO9I@x}SRjCa#M zHC{^n!1_K|uV=ovT3n3%J#;8m|3n`~VedC$EO$A-$6)^vsx! zjL`cl*MpRgM-vz0tu^)>S#o_6j&bl5+=+Ngjwj+9@OZpd`UhNv=ViBKee$sSC+hn< z_8%K#->+0U#Pc%TOr~$);1GP4_?t3526uUj{g!OcVw^cHrucoOsLwv^&+|KxUfB0A z_v4detk0!4<4IF#uN-ejvHBsM=aTp#f$Aj~6#`6h%|Jx3iJ*oRM0lQ$; zpBcCceo2mpJGeXRgL=MPHk&EO4eu5U!URr=X8CJ;j@SP+3!2b z|IGD~`ic1}>i-Hh(~rcf$gk@6DbB@hNH5Aijcc6Oc02KGeX2Rw!@=IT7y0Sl;_~|8 zAgspYVjN+_kK!1t_LEL0*$*1=4)`r2e=o#wq5nQQjC_ zVEA)fX!s_6fJ0?@wN5|V{-)UDhko|+t})n5zX}KB#MnO{^^=32V((u|)>F~nfoGmA zf1rcM;V{yx_HD*#SUs<}i*s|LGT;}_;{{vfNOygqftK{p54*RR1i?4rINEXJvf--dEMyo0kY zGaqIC`scVmz8Ygc&x^);b7SnESKEaBIG<`g_z_R~EyjM{{S*&k{=P_k#r6HA^E@wS z{HyDGES^Wap^PWtmBht*Am+z59D7ZV&ue%HR_ldV4&xE4le*j@I|G@NAQPs0na zx;~%BpBVAyer5g{@pd@Ph{xkEvARBP#+UG5dAuvQ<8@s>&kKw<++D_FaWWRq7sUDd z6zAc2(%)mN)~4dW7bx1F>kuz{k@n@q*w2q&!fCjv%s&R7#;ShDaZs~<_WPcym)K7c zSNC^sWB(iae&Y3 zi#YT57;BD9UpklP%g6d#UeeyU=WV?{_Q8D&PrzFluj+fXPw+isJb#PFE!tFEo;ZKM z;1KdxmgQIYjqf|KT5o&dVTR}6QTV7#{|jz?NB3v*YwRCzI~kvb-!bB6@D!}dce&2} zrx6dp$wqu4US!0#<4&3`p1aBjx({kf1Qta*WP3ul>3XF4)H5EszBGj$_?f- zR^y=qe#?lD#gnkQ-W|rCyY=snFTmS~tM=Eq$$H(RpFJOX<2>SOyspA-f9U={k3I2L z**?!(tanCyAkM*JJrd(-1Aci! zSJHlw{sOLnXUpT&{hjfOM@SFA1JeiC^JxYiO!;DdiSpOs%?tE++k>47^?vIq_SiYV z?vF;dIUmH;^>c(U<*V_s2&WRCE{}g2`~0cvQ~eJ8^_foJ5vLGW_ggFQw8Q=F=VRaE z)W7up*Q0>;b?;|?k2?wVRPVr4lOMTmtE!Y^VXR_0X8 z?{&>}eXoz(f6vGJy6(euU-xxg_x=6uD+QbWZ~>yJzRXPtp-;AOi0k9f)E73lFX4`^9** zF0aPJZ*U~rFRu4rrGWDl`x}Q7@fMvQ#8p{csrf+NFNJt+%~kHtp960{n)ky)D6fuR zm0yUHuo`cazsHkB{s1>9#`al2sP<@nhvyLw){lDsqp=ST(cX+B@doWuce&pli+0cd zJ#ix5r}O1FrGB(~JoCKAcv>pjJ%9GX?MhpJj@#0Hjj3PsJ_JwUd{uj^_A7m#^<#-> z_xKcwm*8P~f1_}zTC3c@m-m4q{{eeE{;+-2`98p&*o?=4|M2}skq^WHxQ^cbXSf?a zqMe7UmW+0PAHU>E~NewwmoLxHQ4mWOL!yh zYRdn|^Sj93!yaDI?(yyiJdE~iKzY@kcko?*+n#kEaQ!K7+HVk^9$?#Vxg$T1=TY7q zPhFRnYY8^(Hw1qs^3QM%HvRblPWHC#8ROyQ%23wplW%d3PqceJc~wmt9TL-?R>pXg#7pRaAtZMYDd7fz_BxdCaxI`e z)%sAiX9^xqdzt>Z6{k@Cd0qZG{vMn0u-@Zdu6x3XIIw)Q`}?^waj6FO^P?{v`31a$ z^5*!;m!v(gY5(?klgLNo?Rc?1p3OL_g6+RoaX`gr_wSRn;tzLPR*rVR4;$$4ESyE& zUT^OR{tcVjF0C_a@H6A-euf z+~CP*_j;s^7xl3z{}LXD$LsQ|@O5nFmpiyYHCz4#Z~6~5$3GRHusXCQ#x2o~(@i*9!hvAAfqL~pM9`9(pud#jp zdf$=n#YvPm?R^K2!{+#EmGyGHBl6yO9v-Z>pXTtFxPW{L?V;N1FT8~RPs@B>S=pEE z`_UhDJ`Er7T2nMX`LZhb1YfGf_^Y>{hka|?`RnO&oF6vFI}z8w=6JuvO@#l(p?HAa zUd{54x*J|j-dK-68}Okz(eC#b#VXK$v1!k4I5;5M{XSy_&cJ5-M{xl*>!HUga=me9 zz5nNNXkErT?e}pmHs_O%Phr!(p_RN`?dsWlF%H8Ebp0#%l*l_&=6FRuACIeV>;H+z z(;w9S)Ox!@75dkU_V16{;Ktb8FN5)7%A4_UHttQXu8+E(cHoudenl?t`V&vVRm}FQ za=$lvc>k#NN?Tl|xqY4(5#53b!c}n#toqX}hg&|$_{#Rw@u~BP$5S}I z+C?tonu@cjZ?4BqycL`Feyp08>syhx#`}en@L}PV__**Hd|KG2I_;0m_QP%P{d95%I=U4D` z+*Q~A1h;HreH*6;2S4TI+KbET@}ux^JYM?<4sUA5%L;y8uHiU>*Ffs}y^cM1#JI=P zm3aHk82A5Qa7DRwynFrP;qT>2+!f>g|0hCmP8+-bH}HNOulK(j2Rv)nKh zIv34N{4^M`Q%fIJ#4>{0j#$=+WGi7oYcwAM{nT^xTD_QCLF-?shO|J z*7b6o6&`>i!)*C1oPkY$EWioRMY}(53#`ZZ)5V_eARI2d7)J>o#tFhD>wCG@VAFrP z;~cC$?^pd}20kjv|AbGA+`j?itH@u+h1fh#XW^Ya~CqpQ6> z4I0uPp0V>|ESC99oJx6f{rBQ@Z04Igc&W&nHsX3?b3Y7pcmb}_&9?6$yaxZE&%bA5 zFV~poqg?~F=i%enj9)+C)7ZQp^$KLX>~8ZO*bAF{7H%o>AMvxezTSSrr@dT5@ILKv zIH*Uo`}3nhd#BW=lI?t->*sAFa3d3*L{_{G|F@ z#pc{E!V&l$HrID5_KL9W`z7`j{u5UguG@m^i_hrokHGh^8Gjbx(ZQ>V?&qTS2afzt zJTB6nuYXI%Uu=#i9M2K?6ubzV@n$0~#OD4z>#*lDT%VrIr+PdYg11N6`~MT{(Z{Y= zF5s5gG4AJ`@~yc4$?NFz3&+FpKJ5>2P+xoew{bAOrStBsc|MA^$M*rw!KOdl!n^Tm zT|O+B?Z?^Zk1~r+f)5zwj=)%SB$s!%WpUmo9DUe?ddPLv)*1Gd>qGX zuf$nT$GG30{*HqZ?08(WgO{s2X8JBVpPo1huho7Jd-SvS$9K3SE~|4_2=@mbsoe&r z;hWlT;&J`yzk2=s1wJ*v&R6+3Jkf5iZYc8!HosTVAMYO=?f(B*-ovwo*z0=?XX6mP zzv3Nfe|%B96+ZP6?WgxY99J9`?b@O94BUkGkJYtz;N#>Aba}5%^v{>=_3Mw5v0A^W z>%SJ?I~nJG|8^1=3K#Fp`J9b&-%qu$XOi9CYuFbz)BDfHVc4|iS%*u6dGVViwtfqo zgU$F6j}M4^20n_-{roMygP+#t=kXl!vF`^uW0{Y@nUpv4`zLq>ZmqX}5}(FjXxHz~`f{qhpQqs=Z`t~r z@vO0SJ$W66kF(FG0X;ZgZ2C_;uKJpt&p*OTgfFQ4bvwT_3HNf15c}(oQ^;S?$F~e0 zz-m3F+Uq9H!!vbW`GrT_9*-Mu`|C)YBK$s1!>0f4#*0LL1Aio3<3%smDr`P~?Te3N z)1K)#dzzhJe#AZ#9?cw=xH?QQyFHjd-`&3JebcbjORAF4<4J^^nr z;|Y$LWY2FqPQ=Ib_V41BDfa&8+mrDax6t{g_!PdYeH!P!8SVbPm)5xCr=Hih;E~+ljfz~xbs6s?_ttsUzPx`RSNl_+*L25MCfNIbAl^r= z#wRsCOvirQZ+=BC@A@2{WP4SL>X&z&#h!oL=S}Zu?gz#LwLf(~cg7DmUUNTA#3g7? z(>`BeA8hjLxV*?4#<2dwX1s~Q13Im8ou@yj`FpY>{}c!7`l|n(!J*iUHzi}eT)jjd zjQ!Z2X}`hv8t1RpL#ln|;0lrU{Y?%Ip}Zft+W&93J~r)9I*$2@?H4Ck`|pIuiT%Ba zQ$)TAr;7YfoQ}=;R*C0)!&VioC)D)~#WEj(vqb%+cpWz9yBF^ic>ylu{@cRwsp}J) z!1=I!bv|nQQ*m3)S3U2k^IwY-((L_t9S_A!$3^u!^<%!q=6Wu}$=J+qckq0XNA>6V zPSpPlXNtVk0L};R(%bKkhrDgKza1yxlRCeEk8u3eX>fHtiYGpr*T-S+*ypcVc=^2O zqVrYfe*ou^oAJB)K-Oc^qut-{9fSvA(?8$C!?C#^ci>sLzCNBSI2$+Ct~iM2A#9!> zpTl11w){BU9Gm(7OB{|({Tp}!HseF1!Hmb)Y;Oq874(w9eJiJ(!|I6V@LwO#ZVXto} z4iX-TgRwc@xwyN?x8h#HzvDP;-e1%jM*9gz;6=i-aklUwd=#7OQGl-tKQ)~7_)MF3 z#Ur_2%=djp;0^kIDtf-a{**WO%P+V#uAtka-pgLDR@nUg?qnQ})%ch1cLQ!sqZf;p(q& zJ+SGYJ@EMF`8<{LRqgc#HviN$pXw;T31?EjEtzVczws$-`bX_iTrV8W{Gjp?IQ({; zYk)348;8xdpFe(&L;3#8V4dH@bI6-&w;av$GdADHPr_Nr@$TopSvYr&T@UWZf%oFv ze?NE+S7f}IskhfU`BA@)Z+5fu&qsJB{YkZt8h^jXTdRp>Ys<0ur`jwVx9)DgZ+ym4zW5l{W7Ie8+ZZR{ZF>7j zIQ$3uy!kP{qK{7<&jD3`{=@e}YCinaVc)UzPjYiTyW$34^S)VMznM6bT%DgfpUt>1 z$But@9l75)uJ3|q_xD};;Vhn?%=kS4n}6z@W;pyl4$OG?yrGUa2YWv8s{4LC0*9C5f`qv@8!Bke>3xc8|>ZFJ})NX`t%pm|EA;XnRfix zhV$_xj#pi;k`ov|KD6^)8yuK8&^=$ifP*>>bhmFTHviN)C*ln1@6+2`grlf`i~&n+ z|5F?`aiDuV*^U!FvY#hj!#UXWpGp(GT+2j%?|@}K90x3W_{jV2jVr@j3*oLDd7j$bGgl*ne^!XI^kgQ*6dFm&rm#tR(wJ%jZ0vF4&^I0k`iPe0k_WvEOfz9@AI{f5h+LPRDuQQ&3_vrq< z7*~95p!Tn!^YT*|Z)tCJ zeN}rugCoez=OO*^Xn8;23AC?ypSBFoT5bE^m-rr@qTA<~D!;})KiZt$5M&*wV45f33hLU~pHI8M25pBMkeE!W!5SF2BD|F>h@ z>*02I{KQp7~&+|!mIr(&*FUCi7e^veCbKGE~{XW=fd`9Gd;{x&!UH_?fxISN4N8@pLw7wtH z@rA+|_xEkG@iOig)&6SzavWEof2sbfu3rHjPpkFKx2@`&m3% z^v|A-{AKL1+4k?Za77%#_SE%%-{CKC6nR;lpT|RRUF|aI+`l+NI~7v(_Pu!b^Uy+^C49_L{}isez-p(*ylyAsqxM!@<6GXh>GJ>Lj6LMqHD_^szq9ZA2I55=k7>V;@pblZ zp8tNvXTP`KuPZZ~`H%IInXiL!46d)+uaCoHa4NZ(f9B%(*o-&3@%2*iu4rBV4&F&_ zp4S`9VZ1$H*RzSZ>LL3){DI1`Ii7tu2b=Z7zqnDJUB6bE%l$9>G~U+J{(f{Aju!V< zJU&8Rh2vBA-*`M&9+a7mtMQrYeYV&wr#p88*1mpaq zSoi$f87D=@x<8ML#GVsk-Sf`?yr24Je4LCAW3ztx5Et}_wa1GekemB!KQ3|DzTf$u z!~fs_a?@XGzQ_9);V>L3JQTl(&G;|}_ZQxZM+yHAU!lF#_@&zWK0YGayWD&)*JR3@ z^Q(gg++59fE>-zTu4ix>xjG*;KljGzqWn8}j_?Ycq06iLeK%f$xt)r}yR&$y@IN?H zln+?I{D4*eQ1$!b9Bkf4yowKF^FCx2&cmj^ev0$4nNRoO5=U%)5&K}%zY1|k_$pTj z`%~k8#f(Sur*Q*aUY&nWJcaU|b@_3Qdc1i0231 zrL+{srsE`R+IuZd$L4zG;pMo8-hPe6j9(&u7MD0`*Q+n%jhF4; zi@c4K$!qEQ-{1_~LyylMOPK$U+4`;Uzv6y)5tpU?&HO)9xtCpUzl*Djd>w8|Zhjws z53Vor)3`Iax!?ZAEky41{-g6>IUIi6e!kWNf7Lw3-G8U!rR1i)KgWj>W8CL^6@Ntj zxjz5WOWEGfc75`+!!O|BPsUYr`>nxCu%Gt#4qw7KSI2Sz~+8>2H(JDeKZx< zIAgz0l!Y5$Gd}%>$6>QS{}uFSyhCq47WX=9Ki~Zrr(<)yzH|60-c4@aXVhEC=c(B2 zZy*l))vgEMcKB1AL~iO|#w)Oy4;yB2e`5Fc@I8@dVUKe*Ka0b$xxQ6Dp?_m@zI|~z zHtWF|I2)V42ilBJowv__=WytShwCNP->R=-yvAnx)9@^8wzn1M;L)_FD(_lN`~T0r zuWpI6afoj3BwThv9C&+xa*J_ZR*UkHhBqWgDK4 z&GkBsx8qmz_6l*}W&8fD-dfrpoBr1mAID>L`N_E36?=btj8k!l&iCQn*qqNbd>zl! zdAW78N1k;sE^*cVea%4Z@rOPCDR^$A9j`JS`BvPL@@Bj}g}Y(ZU)6f_AAC~Oum1U? zd3!uW)E|H+==!QZr{E1e?f#cI@-K0QuCK};#cM?U>v))`|M>bxb3eRS)Ng}NiTb^; zpQt~=kx#<~qJAd!yk_s$9e8|Sd;GsT@&`D8@@9SEw}JOTqJ9V5RMby!@dO z#*dm?9?d)90Lq*De;5wNevF@LJbT;Wl{iLkUyZN7<8j!mm!8UD{?gl1c_+LR$LsNU zJg#xme%`$qrwHfcv%*ckW<8p3%MZbs!b@?X@KK!bmn~mvEAyRj2VCQCo4<}zgg4@| z!oTBow`}?9+t|NwZ(NAY`<g7h3ng zDcJ0P22K}wHeQa^^O)+df8soB+N<0*tVjN{&%bT(M%+f1?~nh$X8&ob`~&;_+;w;z zHrqRfJzX(w-^W9QYk$l7Nw_Pn;bF^<#1n+)<2tNo&3bqPp3d`~I$!mE><|tiuTkVO zu0Qbtk(b${##j6PqaI!+@(y?`x%qv(XuMYB$#^EYdcITZ@mY9_$k*VN)-XC1Rw?zH`cP3Z!jXM6P zzT^D`>qXOk9q<5AKLLA-{0%%w)L)9LhE`{&`f>SHnP=aJ<&3!DA##cQy6zy1fF(J9vbKBD3QFV}jJhv1`~ zZ9W=jlbi7&69@H(alcPLjBk*eXx-wty_QQ$TkL$0_XNtog z<5Y6>zD1Qkf&Iks-NO0g(K@e_%X;DQ829^tK6pF*xxLO)@lcU(!~clvoAvts-2;}YZ{di$sGJ@UcY<&Lqw zD{0@S_ra++Lg({vE;jS=PJCIEFT|duZ24x#S)XB3J{FI{werX%Ywxe^c$pY~f5E$W9yjyT9lVX) zjQ^ERc)1RWyd^$K?#K4k_#UGy@)UfR+{~{l@kNmzz}5TO`Rf|KDRQ5a%tz#A{%C^# z6?r6%CpZ7U?MPgT{%Vf@9XyuYtRGh33L@W$&nMXO=Wq<|8=~8*@+p2VqLv+B+u>|% z#`8fq2S1_9zk^e1$GAVg{al&$_x5;rKOMs9PcZ*z|ACi#(O;&ZuW?mu#@l0fZrrM(-?LET=XFP3@(j=4qP{=w zChE6wxECHG%8$eoMEU6suf!Rm{4Tskl>f!yTX?T1U-~T1)1rJmheL3IC?A78tJ?EV zb~qgekel{hj)O({9EWpplqjEvhhsG#s`1_P*GJs|XOf%uy|K8pX#X*|#FI8(iIcEe zf2sN4EKbMq+Fs`ve;7~H_@b^~9ejy=q|T#oWHtMHievE-;raLiuA|HE!6mBO`kv>R zudx}QJK-xFui0N5K2APf*PnsIYuNE`C+>wC>)i7K<2g3R*A=&px7!L8#!1-JUyDzQ`g`zxa&vsQa7(`!_xtt0 z-Bx zX1pJRSBrc$c17FcTZK1^d>5`lZnl3C?-Kb<+?d>ao?r5J<~xzs#33SYiBF2W2i{A2 zsrFF!%P^cPJPn`4X8vD?AK8l})~}*|0^W;Nd#U4j)8UWs1#&Z9@4^M5{7F1_fL(9haO5Sg@qOI7 zw*FH%0Gs`_!d*rE7aaLZI8@Ys6Gw^q3$aVoU+2j8;$%_(EKU>k|G``O+vBft{n7jx zyj;}pjk87l@p!bTztoZM#JQsWZ}^g^e;?Nu^~?VGXkHI{)U)l^9#_Ps{i5)B@jN@i zk-vq5MExZ=44dbxY%sL`x=rE9eFO!*Y#ETKXD2De4y-ollh7IgZ2I!V3~Kp0hBlWcLKj@>y0PiQu=tt;Z$ti4=l#nBHxC$<7jjIxME{lztZ2lAH`jD-W(6X zW_*ss$#{Uyr{G*sKMS7{^}oUXfwum69EeT*GPn5tgUCDMCD`o$6?{RI&&2QWdoE@? z-+>FTnIF#M^d@#ZFLe0H0^T2!oAZAG?_>T~?Wewf@DlE==S%hdgg5aptoEm#_ddka zu%MP->1dq_`2W{Eo^^I!3}VTF24~E$L9Mem+*XSo?j~e zLx0C+`w@6AHt%O<;?vmd?;Bi*&G*3yaHE#?{Y!;^xjxv`Z;BJKdS9WAzdN3c&H2BC zmx}V!@kVUk*Jj}p*sKSCz?X3|y}kc%)o1K@QN57y4iD4$v-kpTt^EqF+A7BV{hFD0 z77o$*PJ9TT(LRgUw6^0-+5ebd@JXFNjrRw~xbA8X#=G0ZxLo@E!Xo8o?eYGA|HkHe z6yh3ft(!jJ_l1OC!pS&VZ+{8ikIndZ5c{^X^UY(laVlP*%loN5(>})i|Gl)w9vx!b zzt56@b3$zYo``FNvcA^GzZlo<7~}qZ&24xBHsk3{+bJ!qqJD2jo`gNZYR-oUqWy`FBiNtv zW_@@Kw-ohDJ?`zAE9%$AGVg#RMg2HDMARRPx4dM}f2JeP!l|PE4xAzCpTI7${~M0H zR7r2wMp54%?-lji;QH)ejW24w(bJKSz!yaQX}Cbt&%~oe{cK16BlhiL+wU?Cz^4DY zO0mWtV$Z({mU$2k74@ITQKJ4Jd|uRl!;vq*$)f%`oF?k;#}T6bMMv)Pf9H~_2X5#{nvc)OYo zw(Zvl%e*u0Ch8~P1X2G@JYLlQ(2?)NsiOXQoPo{p-^IH`{W4yU=JoJyQNIH|F81FK z4-n(`BuBm!-xKw}#y;Kb{?Fi>qJE(xf6Ck26-;?`|El&1#o@TKb{t+U>W_8gv++Dp ze>Kj+=6UJ|d30#9HO^Zw+!<)Hs>=5CxqMe--kFAkJsgM@jYzL z$G0r=!wYtMUGZ{k)`LTF4j!rNFTw#Y+Us!!rwAAGrM>ZBUH(~IAo5|jTZFxSGw>{I zuJ0Cn0h{*vUDX%mJ_!$G0B`^|N__ zDvu*{Ug=5hXKbG5TH@W<)E|PA`p3B5)a5_LfdlOI`WI*5o;nYx=Iy$SYiW1Fo{4sR zc@?K(^S(a=zk}=O^1tA9*iZYO!&R#Dn=j;Me=p$Bf%fy=ckzWm_WM999o~UE47TU@ zE3Q!|-u?Vmx(2^FLvFU;0ecLw$CK#rRP0Y)Umx!Y+zp%O-C8xhU8At+uW@)f??=q{ z*(TxD*nHlz2*-=Rzxx93B3J!Yy?^=v4-@(S@G)|A|Ec`3r@UQbMP3WvBscGWg7FlQ zN8sYIcK;*rOp(8htBZU&UM%u$xCOa6zGHZ$$gkn9A}{X8^N7f+<9Ly`z}rOL1CJK@ zV7yP{lkhZ=FTlq{z7{VQ`5t^;KTUq37aSu_y zHx3c`NIXE~(^Pqpe}Kn|d^3&~`9VCLyo&CBSMXqw7q9K@T1IZZ-&hNe7I_HXMsAKj z22T?CtN0kXxnJhv=_22ZZ;AaM!3#uw4e#atGvkX-9iHcSztL1*pFk}07jPcsKOk50 z;d?mkC0qX-4&e7L%=*VSfccm_R+o>)C5G~S6zzFO9IqMQpU07}Fkb588;viFvhT;%;q9aC z-}m0b-tl&Psal`$gZ4B1I~b=X$GDE@_e=3Oa*SOMOmuiLP9j&wtJYs%s`}W>XTRek zY`+J&dR{Hofd0<@&HH9Qyi4rA9lk{U;`)3h;5^(|dn2wm*3NIoaC6~*a3nVCml_Qp zbqAb8ZjLt*r;75E9nQp=qWo689+%a}a~1E#owZ9h;(gml@qC9%jI-CR`^nYyQ2q5RJ}&B4YRqo{i}q`d{ituQUj!aNZtkyS+*suA;dZat_sO|93Y-2^ zA<)}32Alh#Cr-!ac<16wY~D{F#yQx0-|H4GF~Pont@JeKAlw>fPqgpfU&0=5STDfg z_`E*D)bEIs(rliBSBrcZJ}dGQ_^#OgZ5;l#U4J)h z&U`!C?*BQQBl3y(ipUq@fOqWux5?onIF#Jnf7fx8DE~x@M_msmi}IaunkYXAcV+)( zd`WfW%kXkhe<#is_0Ku{0OyMGPqkz`66Hg2*H`TK{{}kpY1m`BJ-<(IMQp~SefX}Z zpXbQEo?(42>IdR5Q9lw#aJ_nSf2jU4){!s9iK6~CJWkaA6)zL}f8fadTk$+E>UY9f zqW(~aXW-qU{Ca#`lt1k74V*8^muby-k#3(qnmGI-4kkDA;V2xA&H8+f!|U-lQT{Ma z$MJeRDHhE26n++mzH6VKUcvLQ`TT4l-iiihKCtUhj-bc@|pI5cSfpcyB;dp{@Cf+N26#LGz1@M&z`Z@rIOzGsgw7bgpQwxd2?tGD+wj+t-UcOcHjW`02QIMV zi)VY@r(o5e)p*<(Ul)E6PhmbY-{*b>?-TRcEc^kv`8<9DJ|^;`c$=vI7d|g?-wu49 zA?C|w_?pOj;kzOqt1R*iTqVKIw_oDojJIY!K7m`4o8!BW%Zj{42;(=oIls2Jy2#`3 zSdmY}^+mn}&m}kO@vm?Tksrrv$<2B`ABTwCCzR(QkvG6SL>`7iGwk(z6UX7__4WD~ zXJNJeR_njrxNEXq|D1E=|Ka15H{*Yej=W#M=6;UEsSE9TV?55lrS<+Y@d}Y2!e_+! z|AAYxf7AY+oxELNQJ(3!sDHJ>Ik>C#Q0%eDe!l-9_Qd9W#vxor8U}isx6fzjrthcdMM>{{KMM;w6jidhr_0!RG$;?DDAV zVxJ{3?*C7)Hx4hJ;9lRqgXfW}{;BT&uW=H&Isa>T4Y_fhuB^XtU0pr`AID}qnu~|~ zCb;|420Wx(g6p6zpN~`Dx6c!`yD^?&(;uG41=y^I-@@gW+WxT{SHtG|U&4(S;HdF5l+YrE~gt{(g!Lc8t%Z`lDa z9=po5i}_D&FAAr98sqLCBXP`Uwtr2<(XXv?wbuRdL!3lzp5MR5^F;Zd@%%gXdAwLS z&wu3Vc~Xrp-gxil_U{QB;o+1w{U;v#uD9#^F*s|(!}XWyUm18eHuq-^K7r%ezRJ(x z^?%#`R`vznFK)E&ub;uk`8`atzp3~R&*R1ia0+>Ay*-Z?y-%U)laO1qW=g^Z6E>h(q-D z^6_$!H;BX~V%_6G0o37k*oUm7%YjGoff7M*Ci}=zu`+lH&Z{8pDx8LV$fRADG{;xA$PJbSz zk0%3{-(^3KIgW?ZzhBe2e-!iodF5u< zdKbC8>suU7d1cjJ9`PJMHrKbQ!~Jmvxt}gS)8QPPP5zk9Pda=D=ZN|h6Iic{>)Q;6 zU$gJq!g1a~-dF1FO~;3h*!AKj9G1)cRP5pL=i|T=e7}$bQ0LRQAIJNPt)Ga8oQ`q- z9^PtP@mKpk<#!x;-kx9a{*SsAP9`_)8-mmDXnlMy;~E$2^VwQF0h{sj1oj?a-;dtH zhsak_UyUDu12~?Gc070y2VEj(yj16tj9X8z_d_}^{M~N~501~g-*1P@vOhKcsP#Y}970~9$YorwsPg2dKfQws*q-T6+p)(L zyM8^2$BW~?f`iG;{90@v$B)f;Qv)Bz=6>jeTjkmHVIoezs(-8Y`w_o^SL^dB!~s|B z{>u+~)D3U~xw)Pl@F=XVr`p~Id;w3<+xx-ci#YKQyWS|ouVd4mH3##X#I%<$_0|2? z91j!i)fK-%dDC90I2||E`+Fa65$*MbBR_z%DQ}MdBHoY9{p&k~_b=Q}UG?@FI@}4% z`>h|IM|m?J&&F%88Q(s2_&c0SZpNSA@CE#g-k<+VtS_$H`?)(##65IA%;7Y=j$HLO z)!$d*1K1qTcR1!xd%jn2Iv%OZmm5m^ivHOU%ijZj0pAtvIRwl9k23|Iy#gd|9%6v6aE};#qIU^oWS=)?lD|FuiN!f zE1d9`y+2;Y+1QLXAL0IDy?X?gnQzy#)m|nS?u(NsZ|=9r_;vC&`gr!@CJXK7Q^iNn ze^?JU)pzlPrt{shkwK7;2AKQWr;ci|>@IabH3#otm^BDFour8HM|G=hywZXeZo`ijF+vlwh@o;SJk6fIJ)%~N6=P#UrP5<$K zmE*x?{OgGGac4dMjm0hRGQMfA#mV;=Kef-`xm*wPzU)4(Khe%#RmSklL9U*s)Og$) zHzoHja(P!Y4#6$7U&HD5ANCJ*yese=;fpu}7pJ@$ue`_7{=zMArtko~TzEFl65ff| z2w%tRgsYEZy(rujXJd1}O~Tu;>A%}?+^=!&_1LfYG`XKX-pa4B{uYkL)&8-0CVm#1 z`{@df5)OQw{w+Kfr{lVM`)lxeZ0`SyI2W7wwd{DlUyx`29=8*|!u2uFcm424kt&`53&P?H$v{KhEKK zIJ59!`>6eIarhkGPHy`5;}aRbv{nD8g)>X4zxsICU;1IsF$u1L+SBm$H)7qNH?PJ8 zDGBcP_dnukgas~%JX5U{Fo5Xq+oBcJ%lQGNfqW<3xr($!zPr>(Ik9Ch1b8yyp`~Oia!zU%Q?)Gbfeeqyjei%0Y)HQg`;kO)~gTr}06QS#8 z;>d_tS1C?NU9Yt`xo50<{q!|HK04OD-am{JO2)c&>H3eq$#}=-$!fe+^_$^Y;`8MZ zIN~Ea-n@mYtgv2*8+h9GIf{2KkY2`tww!4zEwg)Y4!-2T5 z_Ezlklx?s3*!)x1?}@kR&y(!?-vC^Z@@9PyiicxWR-Io0-YxP8xQkz`d;VX6%|BIV zgTvb${=wmkxWpUr?(btadxz)oy0(3L;V$)J-QSna#96qGzTeN`{S9pYZakgm^QN@F zX)hesEY@{R`!qKH)bZZHt?3_T{(2&v_Go3lUs4B~f2w>iUi_wgp6}@>KN7d2zG=U= zaU@pj6V;x}u=%ITeBsCs;xx+l)aCCx%6q^2X#Ls_x5X!@Z=OfSIP%H3VrzT112}v?ITTH;VG*XR;m<<%6)yBXA+*&Gi_G%LH4eVSnM3xFsI1k7pM)|I{`P z<8>m>#{q3(T|esn6)=nW|5@%Q{eG(#?$#mJ{eE&Zo`IX`?a#;Cv1%{1K3VVZ0h~v^ zQkO3`oAEWo{{CD~d*{EfI|AW_Ib3CQqV|>JBy;K=jecrZjUEB+s>)iqm6@CuCfp_TR>5qfE z$GX3N`#LVb>i$;kHxK9ck9Gh5#%pm*Vyyf7gL`lg|G$~JzQ^zg;fpv+_!d5g&G|gQ zzTtK~S!_P@g>XsS0GsW5;~{vho-fK{-w4~@b#NfArH{V_j$!?1_7{qCa95p2V2@t0 zu3Or}aPlkmejJYr$jx{*9f$U|^%vuG;ng@7o9{nudcKt|r_92aK@mwJx~(C_5hY!5cXrGk*-kQ8BhZj>jq3w8wjR zFYc)KzZRE_Wqqsr>rQ+s&Tj7qTshwE?-$$+oA*b5;4#=wZ||`T{vL(nF}XL+AfKZ1 zns`;R%^Tv133mSJfJ50dC$G(GNUBBqig|vA({);^ZMb z&uRaMgSlR2KJi(^^TA8@d9g08D*9VfoG{eh&(GrF_@v%m9~{N`RoBNCkCTN5;?UuC z{W=~W8fn+3@8Do;#-~L%gYskb_SfTcY_F-_{x<9>+Vdye4p-6nB|HzC{{J^Vh0XKH zf4B_$GyT^Vg?x%s;KjU1yO#2c}qy7`xH*qG8*S?SM zVbeavmvDW?*z@znv#_}z{P0n1`gAi%$K{stz74DOsG3h=uqW@gOn*$nKG?MX_jouq_m}Sn zeE(^neSU6+Tj1(N$5Y1D6K~;o)GAUP->W!_`s#Sq{ubh`i|qT3UAXKN`@Hp=qkPFs z?mz0A<8OrJ`?weJMm}GtqqqMu4w_`I|7P4B*V6et+=czu)NcGC&-dh}KTp8fqWo@r z0-O8iiI2#sZ^nZTID+#x-!~nIU7U|O|1_MLV#klq@CvN1muiob_%nP34GzQVeAM&Cc|4lqnaK^Pu1BFGueO}~mGY{6 zRrz525pJWmKM9}0=K5{GKB@M38o4|^zk3Y_tNb9wmw{8FMS;75+8?!xiK8VJaIr`h`7I`Rv+K-7PL^OED;<7w@c%tzR)7uw;L z>Gu9l#8KGXe~WPpHtoF=pPz2;k4ui+JB#+FyqVwH$Bnt6)%n#~!~DA<*7cG;z8CR1tgfHxAEO+egKva>lx+J zpVFRKji<_ic!_X4E)brKBePJ#BT5T&$u67jd#yauj6zap^tYJ&Kn)? z{=WEkI2W7sO|iA~$B20M`^_#mYps1>{2s2l&d!&)csTB%xBm~`$NgLjtLJV1b$nh! z|1{%W7krIe&A%!if?eEyDp&X4R6JAX>iz3->@D&gc(oocRDK%I4PNaYFA8zkdV9V7 zKWBW$W<2eIqp(>|48!|ota6>v>94WaccWe3rKp?JSff@`xL zf7jxqP4@ZYCp;gU_IZGpVl`i@?T2mT`})H3@KOAn&cDN1o9*~ei2bweda3RgjAwYT zE}w{(i2Pl=4!73%K70vp(5|?N{`jR`Z^q!|c&^Uh#z9}%^DV%Ku<7q{o4LQX*z30v zzlhEA&22mcoAa%k&GVda7|z6|f4`6OusPl<*n5zDe_ZTK&OhhjdRFz1a9msX6^G~G z0CF|HtMbQj15v)(SA5RVmloimZzdFtFDh@pmHsaLF5b%Lt!n&H`5_!I+q(QV?)N#XTwC=0-Vg_V&-)== zz9aV9XV-(1@e<*$akc%n|NM=Eu<1Vyw{!lb?D`}Mhl}#>;vv|KKOf`m*xY}+@m_4k zn^X9N$nWAQ?=jyqzpC|7g&oYdQ5_vG*kKOklUi^V=?@5mQLtOQMJ>KuJKQ_mkhntJM+%ENf zS=-)WI0jGB$2$-o$7Z~lf`bp*@pc6scgWtqKjU?{t*-w7=Lt91P5=4P&d<*~JOb}0 z@2Tr=!qpDj_e-a67B=nikHa;-VSXoXrt5dc^^Vx~n1Gw$K04ox)9?W80(=RZ`J&mk zyuZO}eXsg|5^kPr*NdOxq1fa{@p^3fqvsyx*V*=YF$mXTe5=Fu)O;I*H;8-!?nS2yuuT!s2-J>b1peTUON4>Z6Bb$yk0!&k8Rd-|90HtuIN zUa0$F2HwT~mDPG;6F!2~c&&UCm!f=G?OV7CuAp7vJI3FmwtqFo13t2UU(?Bv$Kf!_ zoBlcm$KcLvPqqJSoQX~Qe&X;BTxzgwkK;Jun4RxRe9!oY&G^y?r~Pc7&tJezm#=ai zWPVrYKgLmhi7HQhb9_7TB5dCO6x+vm^gsJPwG++~`x}n^f3y3a>BzspyD4v;NB+PC z*iWB-qy4;(J*@t8sPO!yl{beF*z;e&+iAh0`9``cMAA z^By+)>xA2}eRDq#$5m-BGrlgw{=(nk2Ew;-kZ|1tj32^%a41&&RbAf<9D|uoio6rY ziSmErL0HYFs(hD&+^P@f?pTqYaZemP2^+n`IW0&`)E&fy)&@v4_oj?%A5Z3 z8(#g1?H@irKAN}2heY`}e14lPpW?`u;XG0PTfAY1Eq}?8mpaVn`zP%21mP*WZ21^R z{ucHZ<=5bdZ*2L)j{G)mC(742LVwv~%Xh*ue;LP!@{91zy|(yl=fNf5(wmKg#`b(jHGJUcJ$lAL7X0#qC7-4S4z{TmHBs{|6_E^8Uy8 zd^g*ce-6uhBu*3M-^2BDZ27Mo`B}V1lrMIi`ROZLzCM=u3;2*I{~9i}byd;l59zwHmNJMs^41InBJun$Kcu*Z|{$g7=T zeJRR!#7z(JJgfW9Fh@QICyVl5;L;RZNP z_(hx~JQhzDUV`Td@4zdBf5X|ro~QXeOW`K?lyDUOL--9`D7*rfIc?A9JM1rP5JwHFOJvc8=j**&)M}_ zES@0zF3!cK{MR_}ynUXyh=*Xa9&di0?>Atx{z%8;uvrgo#)q)k-Z|Xhg7p&@82_*- z-x8n2=JU5Sd>NbVpTRdo{`CK7Uy;9qJy`FV_aB>ZRjk%mYW^wy8}|z~+l$A6qWpB+ zN#x(*?!v_{@_iEFjyO*EEqn>9^|spI8GH}d*ABcy`-}Bv1a61h>O2ik5cvj&PvZ=7 zvmR~uJI`mLe1yZV;Y(uspJV@vcDz33@O|8l+#FA{%N!3j<8@z$C*e#{eiJ?=%Aa(& z5EqK_Ev~Tsykxf@E&Q z@+Ge_{)_T~4)?-mMfn-H>SeqAjSio{?a0mXm-&PC7Uf$x+#hF(@=Ne3TwV8{Z4RHq z1>~l`)V;?2cg5bnaX1K@`fobC9EX#e`d4tOs9)nc@83oJ=Nuk|vqb%E_>`!B2VW5N zYySDD!*HRfKNkn(+2h}jgRwdOn+{jL!TUIJbNmBwx~RVt&lC0cIb49(iTcmo3Tl~%aCdx-UJPBVA<-fo+uG#JX?C^aYN^Z`#=`HRzQNFjs z4o;Vk071+-+wqxHr>`#}!ic|0MzCydk9ghFL z{r-0tK7`luK(3DeRXm|E*0n_+-^V!UKl^#XVO1WR{2tB`?-Ts)az6_9z%Ks&L(Pxs zebTEqg!dKdeY1N1wHS}b>iYxg{l(XKF|Mn95!a!rSJ2+CF(cBT}9ppj}`euRbJ#D;wd8k22Uq9 z$A1~m6#Mu7hrh`Yd62TG-v=KN`5SnP$d}<;BHxSmi2N$9@{;}kp?&{ldt(2saa(e8 zJ!0`qQGXJS7x{iVnv8C*f+@pzBO-@<+( zUyZMjtM!kne+)Mkx$8fk&xYFfo&LDB$UEYus9QJ&3y8dhmWfrF3$O@@nI4U73DYLZle4j zcnIFC%SS%u<4Wvg>(9VdJ#2mxAHrvJ`M$+`Tx%YSbDh-QhEt1K*DUViiYac(Pr)rq zJUm|Y`PnCU-^o=)zyGV=M;vhE`8bmD>Ul|(uUvxT74-gjaTfg$-kLDfmMo~Wr?-liz;!@{r{e6!7HohS0*D2}aDiHO1CQn=zKMvF7o4e z4|yY<7x(dTEf9Hgd{fjPfR~AU7Opy*{p7#>ch9+kQUX5eJu!bFW8U#WU)}xxYU@59gGz+uMbo zEo=8*tgMf#6K z7>rL|d01b~f72cLI-IBLtMWhLLTvieUpV9sTi>_xqj?YxtYyd7NF0h)eRaLZ;Kg_B z@h@=XU*cq4UzI!bv*YSu3m-tQtYoi-Y&}b$9@I&_cSLv@@4pfsJ|PB*0%lm zDjtW`dR!e(xvKPk+*u#b(+)q6!?>TH*5%*AW3U-NSK$5FtS^4Wm+)d;zR8o^zX5UX z_j}{C7GHtRD!-~)@+0{Mv6EloW#9}TX#6%2>VX<9@nIwW zE?!Ao{Qj}HpH0WNuzKHO6RtB%pYKQPhgJMKK4qN0mJjPK)%qHYXW$O<{A2N6torLp zd=QKKDN(*ce94GE_AKj-;STtw;TT+Qcn*Gm)qJrH*L`058g7l%_fejGj{6V8J#ZXO zVSNzg8HLq9Q701}oaW%g4qolx90%uNr>Wr;{iUM6;y$#m`aSF_O*ud9rTSMReDMWc ze?9S^xSFiLWPB5=@xK$hwA1nbusg0L(>L>FzBA$x*cWs871uulH#g$jaa&wf#?Rvy zjd<;5uGT9?{?~Aj5l_M0jr?EW5F`F4?uTc}<5zF)YTf;3oi#|V*UhjQe;pT-UiH^u z_&QeO_cMGStM#WCH*T-%qhSlyTf9%6uQR@iJ8*%bJqF{rxxC*k`$INv@^YB{zV;CZ zU&Z^0tM6<0wq$PGR=<8Ta5xMtc|IQ(UhX*IpJ#t+jK?mx3D+Mh%Qqa4Bz{tQEq3o2 zW`Dj`hzDYIJ??GUuNm`q8$5vaQR6uj`-kZ9JOKyc6nXq*Sp5@imV@{4YeedOqymTZ zf8qV)SM6K-1y}0?9wv|XCJyMO=i4;=4vv=bO?W>(AbnKC2Zq_-zo^;n;kX~3-dmUd z9X!i$I-YNMH(rd@`1}WF8u4cBU9Am<2jCpTY4|H6{|RtM%^tgfdo_U{*Fe_uZhtAFBrOR)P}djInSZfW=dPQ@+c ze9_pS>*M)BPx6ZK-wV4B(Bpj~4#jRV{aPGyN#8H*!Rntl|6vCg;g~DBy`O%G`Ju7C z|Na0Ur2U)9^KZq)W%_yADSVaqG#Rh^va7Y*=PL@5dhxWWVaO z-hMyb7n|w3W0!X;=NHjlL$N3Jk?og;n|kZ~>mA~UaFCJzGVW*OcL{Q}j(O_*zSxYv zj+2c1!*RNie;ywHl+M4+Azp-YjQs!MgGPR@&fM?T)%k<48IQrGM*ivezL9?&K2%%h zKjaYq1AC9s^;hFn>L086YlTPG()oKk#1rs9BmV+C(#W5S>$&RuKRLwj;`v7Yr@Aoz z8u|V4J{O(8ze9W+&NuQe!o^1Zop{KjI{&W@@hZXWcSq~%Z;Cyzy8dpsRu!FputR(X z_BZmc!y&kv9G{2r^w0Ht`4?V9T+N@&UgLhoNZ%LxCg}KlJQl0t<>EXeeg(VyPseL_ zW&XwL_#rsMh`)y~8u3lI%^01(5GP@kzh*c3n-Oo1UEkC3(Rd(M<@*G$GU7kut491j zZZ}rvZ{MBu1*`mFINyjbz#ijtd^?W7s(d%_#*zB|q~_~9Z+=A2@2&75;$F0exIcaa zFErxg@MYra`-ltiN+bRSuKKRNzdeCB8u44$$B29M;CZtVZ;!he@&5RL5g(6ZjrdZ0 z%!u#A(}=6`|BBBT@ke^PT5E`_`~ODxvJvl$_Yqh3Z&CP`5l_KqjQFS6qQBRusIS`A z9^9v;_HQ^TEzH{aSmpZvcnJHq75e`E1>DteB=$8t1Gk&6_sd&xTO)oBUu6Ej#rehl z!lf7IOVazf7qRb_FzYiJpNdZ>>i9NXVz>lfGVIoy{%AM|Z{_&agSom@F?T_AL9*1 zd5_|WM*J=wYuNh@_BV!m;Z(yDvA^NXxUJ#eaIoR0-sJwra3~HnoQiuG&cP9eFW~-$ z>-J^;VYoYvF+343FuVb$8$OLcHSE@p`#Zxyc!S|lIMZ+j{>t!=ILGh<{EgwZZ!td` z9*mC~UV-xs7ve(0|KYk=Jx^}kpZ$~3-ci`s=nr#oYr}cCo#AWvWy1{zu-`G<19vr? zh(ipo#cvue!~+di9mxF{R`(lS@JJ&*4v#V7J8-HI{~gaT;y!P)J{s}9c$pDjgtLtJ zH+Zw*GMsC;Q5fUb@SAwQ;VJk#!yE7s!@uAYhF!vWesB0CeAe)Ae9`a96qJ=hj<&cpf93f1PrO-@{8uubyu-h+#g#sy+tdvsjfs121Aci~WnZ zU)g|5@L}mZoINS5;(3a=zOxQ?ie>(ute@w-jB~Mio;4b~OyPYLPAKwk#%E{f{`3>R zj{W5IRf%)88qQ=rm*@AvMOZzreG~WpOy6(Mz>8SFm+(Me9KQf(q=(y|7yXKJz7Myr zw?;hc)pGqjGXP)3?dAF7agz*PzHHnM_m%O}ICiw&fBlP3(H>sJMSFM-roD{)Lr)xr zReevzF<4#C0i0ySU579qVKv@5;rT{<9A1i5eJ#U7ny`$;7zuj@|Pj&g`;is{BzPTNH){C&qe-4i!uIj^O7{|w||F&}QoA@^IA+r9K;)s>{ z{3Uo1ZY1L#!&%>qcxQYaPnGc*IAN9k{Nx9`8hM@=>iBanZ+QE165#pjfM7+%yo=+Jbf(s3A!$pSwz{Q5W-sAcV_rezqr{Geh2l&+Szg}A$!50WSDF++I)D;Jbe7E9O%% zf9}T~TlIW(0dFBL<`40CwUy**y+HpG*DF4cZh(7Y^?PCd_%i85`-tPcg}2M&i~Rq? z$sAwR|11Zu!BdR*ah!_9epd9)2Y4=4_0?_y_Zx->;l(n&sE;`~6N~Z)@4z{Rf5UnB zfQ&yek@IZ}vw!cZ8yu|Gvk4yj<45nBVFryIOsXcn{oooBsPhV{s7;4G#Gt-2T1RI9z>`-cNjllXmOhSJ^4j@6!9N2e^+c zpZGn-7E_pCiT9M{>5fy{tgqOwi2f4i5TA-mNiW8WsE=(9{vEsT*6}A&9(E_}Ph9n% zF}N#M>%|Hjg4O$&NAUhUeY`5E58EG?5*PEYD9>AX0OhZPEBd!Xd@gRXr*gg!>G$IR zyjNFRxB@74L!vFkqi2LnjNx8vlmS>I*)8+iIRdcW-Y{=;sD zj}TYuTUUG*i}5Uuw+P?Cs(udO``CxL7(Z^)=>G>Q*RzW9;V3*p#%JLpc)L8_6Vo~W zLG}-nSL6@I5r-<*caeWCK5F;`4$9Z@r#|3$5dKRZZy3(}KFs=8Uhguz>TuqA&2-m97K9?e3AYxeiOH%y(;==I_Lkna=#_w!*MPSl;@v=2XOpYEZS#_L;M83 zO?p*de>=GT9L5)Mb$uPN%PHL+!>}v9EYG(C-!|e`uv3vPukT#;BfseRD-LI#*6Ynm zoN-3KPxuSIZ@BI}p2yQ)ME@4+i9hbc^@;u_t}hJN!lFM`%x`!b>Ba8_iS<7Xd-D5Q zgRrQ-1vs@>@Ar4&by(HMS)7GMdx`Yr_?S_jPt1Qf-U1&ay{fO*@Xxra%pZ+Q%Jq1j zh))w&^VfQu{AjrSzT0k*p13N{F?aUu;Hn?7pW%Ad-{bJa`(%BH`e~2NzaP~f zn}08CJkI||mv13X{Z~5&*T+NT`H$m-Un|#tQ9u9S5-iFq`eVQXSL-*!Q}9K@Irx&{ zb2y0e&y>gi2hVG}zGD3n<*&bx&rh!F-#_k&Z=cicGaS2@==%8(x527CvTz5EC;E%% zA4jn@Mt}eAHuk~l^PJj?n2+T7MS6c6#qq>`M_g|oT!2;kCg6;_`u)x{Tu5B3S0epq z_$qEB{WEqyulFDS;B%aBHgR#i&wTuFyfY3ay}F)wJP@n;T7p*>=)d2w2bT~R#}nr- z!#nQj^p7uQe*aC^Un>W{fz!F3S~7n$jwlSb-;YSa-WMppoR4Q@75zoj-=}y{akRZ3%);jTDf@9U@2mL8`uG!fFN(A0 zn|nCQJ0#n{ishT$mUVt*>iKOQ%Uj!>tiaBciLRPGjGz`gu&_4B8vdllh}?n``V>Wc$y;OaIjEy&7j3{dqG^`!2@*z2Du~`&zVJ zp6_tG!!h>#-btMPJC?`)4ZEL;vD4qgaW`YEN96U@SV8}~7GwW?j|RA3Dd&^%W;loQ zspk`I@$?%!&y?|S9Pv`Deg4rns7ajNzA1QUX{>cumgghfFCf+)Z)w&(XYK@)Q zO^=ZA9ykF{l8(by@o4E39N`phrATMsVl3u!F`f!Udh8?p=xX}gBl`FKJK~nOvy8uo zz3=JYtIovE<@)#dui{apSD!cfuHpFuado~yIGK33Jl=BbT1ChA;9%0L@?6D5#_^hD za=%TygUla^FA;xM`V)M}XscsxP3noh<(`~s{4~rJOhjJ zi~jQgUW^;b{QK|@!*}s%te(HOS;u&NOnU^rj$6t6t8ieMex6f^PZ{gyJ-mbc^b0b5 z%k_L;x1C;J!*DRa*Q@G#7Vcogb8#+lHQ!&u`B;n((f%G;54$5SG>$h1yF9MVTV2S2)j{$QkUgRf#Qc|F7Md&~#k zSlqwN#aoQ|U>jaSTzq~Y;^*;hBVKDG@Ba`N{Yk`M!iS7_tZ;QTA3SL-#D@(Zz$Xpg zz^4p1$mV?>!@cnZ!%6tE;Y@tRZ~?wy_-}m6@Y9=E?+kas{~C_MRt;VL4{%k(8?bBj zaQpq9LwHd={rmH!c)ZcSoHsw5z7ck+q1*oz?19yI4aXr^^@nLV0WXy8w-u{@q7QxT z-~tDiIQY7QowhuDJa-3s;i0a2{)}{pk8yCSgXiIFqkcAFPq%P;{=b12;Rf>h8st1& zp4K?Wh)3WfhNn5CU*O<%xRmrhazAwjyFQ`s2kLym=NH&Zp8s`RiUXxnvHBQgIoc~FjPuxq!dppF#aVc>%e=c%}e}=2q(fLn1#4kJemV>Qr z50|HggX`gz9{Tv94)I7FLR^(^u|s@~gTHd{0ld}7UnTe9@;r&JFu&BJe#HFpJRZV$ zQu~!&4(THuJlw&F*uB0UU&|fh8y&n8PbYl~**?V%@oPATcr_WX`6cTQenh$%R{unQ z3C08Yd&g=#$KvhA{4muaz6vLkUab%Na2EFBSYkao>)`)zKJft*K*R&TV*laE{zp0i zr#IB&YXPqMo_@ZNgV!7Ndlbic>+|2iNm$iK{q0;|d%eECgw1$3&Lq9M-X!ctda)jg z=Lw4(;$Pr=<9sLaX~SjsDpvQ;wRb%1cG#nl9)HDkXl z<6q;P=6e794<2CDM}xi02V74L&M*2?06v7p-#-%Whn-sM@%}FM$LjiK;1J{U|4q0Z z?a@VEPrZG-pHVx)-YH0&?X$xP0zO%a3WUysruJE-^4X!`9knT%BRN5blk8< zxb?NXzI_OCtl=br;`Tl~39zYG`S-SYT9<8tb!n~Xnwfc9FT+bbSFheiJs z<6|p!=6w^jpTB_nFABH+{z{{RyuZTV>rwBk^u+^1b^o1!lW`+?yp6aNuaqvsX>aK7 z6Sn`B_etLjx9@)^;n}o@dS1T*hxFC^^E|x%Wj&vrc8K4@siar^r~Y^BSFo5b#QjbO z2lvNi#8rRai$mWEw|{@B`XR;}{Y}M3;GzLKo`cf|>iOXU&cmvIw#}!1za4J>zCtX{ z#Oq~!tiYl4@AssS<9x$4zh}M)*Yj6*9ER2Lr{Im$mwNu3ftOG}YP{{j#iZ{nkAEIt zHtNs$2gY**_fyW5?LQ2Ujn?hA124wvezY9tVRinX!(3lXxc$6kG0rz!ikrmg{@d^f z?TJje%ZF50&XK16+}=f8vTDWg6<#HB;S z?dMTkHdzCk#1gub51_y|_d13nh%u^MkVxXDO;y+7ii zSbe{-$}#%qyLvw8fLDzQxAw{NN8u>`URF=(88{pJNN>b#6Lfv#)VX|I_mL$(jk5iUnITiFJ33b_a$`ubi;$l zFWN(_H=`Wli?R23oqsQGhg-<{xai>OgJm-oPIvA4APIG(ESW_X`b-@y*?D4b)Ye;?m4(ywude~SxAuiEE4zGS#+5$%OL z%Ij-|+a>GkdmF!u)qW-khhjCpR^z3(smy;E@5kc$#d`KHK7zYQKl97O4#e)0^?HQC<7z!&_)YwDs{VX<0(PCM_k(M2OI%f! z|2S@g)%D%S5k|auG0%73*ZY}R9578kf1HKOuzH_xKX#q2+vl8vAK=-PSDe4%{i$DR zf6}Y@w1KAN0mefvOPZzxW}s=rLe%{S=!$;1Wt z1yw)Tf1@6c);ac> zkf!5PaWI}O<6qzcBVK}wusZ$|=V{Lm_5D<59EVrR{Nr%HSx z4jy9o2a$d@<58x+hJEMg{{9c1i+_^G_x+9EzxhaC|1f;oa5jF0{iv5re-`I1)NXWv z=kfe~UA3PXfD5tezq4_X;csyOV z@5E_KdA={}|2QuBM7O8YW%k3%^!a`9GA!y#tpBg$PYn;js|}~&b%r+MfOi>w3-2{N0e@q775>ifH~0t4_N1cxCHRP8>krcX5BL-d}5emHjnV=kJRbVKLu|{*Z(-aW&~RINL~n1m_s(|HAu?^q$w) z{~PIF!$*wt!*Q{Z{$qU6NWT}C8tE_KawC1s>#SE9mFuf0?+duV@IX9vg^o|g^*_~K zjq`AzyuJf?UcmZ_@hINcx!@3YzQK4Sy%^8pe9vO{l{$Y{yv4{r*daa>hmv09&%$v= z{_pWIBmW-`@#YFuRsKde42$($)wiB0Pwceg^@D+TUxR1oAzC=>$?^9#cDn4je`u2!vpbXnSTk+H{!c+iQ%)j9INxW+~NI%PJG{p z{Nnz~8=LVS*fUG7KkwofvC2Oehhgfp;bhq&mE;(DF#vOmJAe?5b1 zy`szWl0&>dE-~`Ihi@DC7vVuh{#=LnPuTr)ef~SR30CK?Q_g%~4|{q~a&m@l^I{cUG_)bJ==hW+I6KEd8O z`gz_S+!d?#D#a5G*Jr1^*>Eua&F~mp_Y0kWCCf2@id zp8@Lm=OvtAI00uEUW4=TRGGg3hkT{m_bx8S>i4pqtLkPY?+CZ=ulfq_)X$S<;6gk} z9&ZZ{-4$;CzVA;C{uh@L?<>={a(1%-A&RI3HH!ZH`k7_r`gK$KZ0qi*dWJb^cvA0r!;UxhV2uwVu{>q5MWX z7<+%C>u)6PhgJVvi$`IV{|rvU>iCa7&hd*Kkb8O@_eXHg=<-G&kGn{JiGvPQ&PO8tJ0ANT*BcY zb${)JZy(nC<4M?aTtdb7*F^dcab9$S$Xt>CBb+og!G8Xofp`3M;Wiwk2qhgT5gsH@%LnTpT=X4>F1BVa0XV_GX?*E#phe1 ze*eW~c!11b$KB03#ePW4PhvbZ$7cLh+`T~WkHT;m7W11p-W(i<)&0;dTzFZ}k4>L& zvw9q_Y#)(+HQsSnuSX?#An9LF<*DsvP5)hg9uG}D^I&Rh-tj<3UH~(4hH@4ystk&D-JZLYh=Cc@l(C})U`m3J5 z3veM;^P$_5Zk7|*ukH^9V()XhJQHx)MLj=fbN3 z!K7FB7whmqtoqvl2bbV<;(oIHRi0*k!BwT7!~3x+Ur+p<5l_HB7+#6J7!PXw+l?<% zUQxfIyr=L{(sz)@f20BR_m^((rnpm&PZqBK{A0vJ@j$~m2nL&U`2OmlrnUf!O0;ef@*6Csy@21GhHfo3KAt-;cYBBkt?`ZJ%R( z#cKVD!}IZMS)S<*&cq}C)8)0Aa=(EG$@GJ8@B{rkZYj>eYCiiG7h*NP-owR4{5fCN zFH8TPQW$o@s{CoVrIU{D!R>^dD*MM}9Po&a*KbC7aEdHncYM(B2t1ztrhad87T!nw zdy!t$|K}oql?Z!&EX3UnKfob|eVfz24EMzS43EMC4S$3q4Cmq~!>4eZVdoa~N37=W zMmW<)|K4^K?h{P^k>yWzNdF05N`BQ}zQP;uYqEaM<1(!7x4c?1zN$u8fifO|L$S&~ z498&ApBLbvSgj{J@K~(o{}P;yPs!sw*^2Sv9AWK~?v8^Wjj->h6LEQ)2>bnmML4HD z$CK^-19o~W!dfo#m*b_a=`YfCThm|3-&6WkoJU-hZwTIRcn&^jI2UJe{1!6*IjsJP zIw-@1#MSlJ^Lsen6sP(`ur^fo&tx3p5@Ah}&cY>F&G&yh zzu;APpNv1|&wTcjzP=84DBdXJBe2KQy8S-K`M8UWpT({XBJ984=Kd1(;qtj9)(>%i z-T|BOVYrC&YCf3d;Ei~!ryeh5I18)#?ESKvwUOg9y;K~30xlu0zCXJek8P;Sa|TB> zA}-5Yy(9PYxSn)hT*P=(`_m6__Oq4!Q`G-<2mgT!jrdam5Bqg|pZH%KU*uncgPTQE zyniWt9)D%HStsU$<~scZ{B(=T-{TYMzrp^7AAg1Wb)*0J;%f9SHU7Kdq0EnJJjLSy zM*n-?A-)PvC%x)_d$Bn`7vp^5s{Wq}WIp$cutv!FJs7Kh;uzr$9*l2MUiExw8t!J4 zcNN~zM$g}S@e-rFXB^`9@I}(A^41G_c>QUQ1D=nt*2wb3;gYuWH|d4=F7Njoqpae6 zpD%H0JKhJE@!xRiixKwk^;PTaX7!w)%ijdgG|Jx@Kiwh1zTX^&J+T^}A7ihs`tP~q zI>ZZc2BagWo=3io%U;&=Q3`&5Sxzg;vjsbK)bS$x7*@}NJYHkIHrxjX;}J6d z2zFMh=<~RGX5R*4WvC}e}17m&nr6X z<1fIyaYvc{M?4Fw_I~Vj&X3jg2I8@=>iymr+@?!}^|s8Ph10Q`f3IQh*EpU$f72e! zuLB~i^)h{5JiTj#{r>qJJhoee{e6)`IJJ9({e9MJBL2D_zYTi2@%NY_?DvIxQ;3_jlK!UNPi=rN(;rm-d=U>OeN}n9cs$(jM|c!g`PK=KMxBxej>DS}ic!=y@rFhlby1nYXLH)d` z*Q;*0X1Jculkg(qs(n7i`9}I5arZF2fBX+S_0`8~{U+-%9wf{2HeQM+NzcL_{d9Zm z!2Ph;4~gr!j8Dn=PCP$(v@iR2>R0tY9~?n?)&D|ql;K1iXLuzZYWN5qY4|Qqz=87o z_4=_N2w7jTo{RQ;5u5S;IEVBtWcnmLkMv?a6X`#3i0{V5q>q*9f5H1mFZ!=Yf5##2 z@fQ2-w{(ALhu<{ZAIBLUixaULZ`<&E!@uJVhM(@wd~LWdK5KYBF300#dH3Rk{_=Sf_g=vrhq<$Xp zcm&Ub@D`aq2)n$izi&7ahhmlgQ@j-4ko8}N(?&@V`DGTqPh9Oc_Tb@TA}q11 z7yaWVPBPqd5TB>Kr~C6n{El(Fwb*l#F7F+jf&0kgb&q1c8XIB%KG#Bg9oLcZA930^ zJ>NbPO@B$GztjGrJn!J498Z;Z2@VX^_4O4VVE9*@l%%i6C&ta1fmMBt#&eDMmpH?S zKN8FMG~(UxRwKR;?=s@Q;(R0CDvtFF50TgRE1&;CSNx zViaC!r2p6{UGGvHf?LS*U%<&&^^azwINu~aUV7p_#`)jH z9_hNi=i~K8eQ$M$|Af1fUY)-jN8m2<{0&C4USQSUvAAfiuJ4Vwn7FF%J2;8Bs_#Y# zZdTVhdj05+{fzP_;Uz}-m*H~K2g>vB!k3Nu`^6!C5BqaIRsN^`NBv<{fA8RAtm^Mm z+=uh4^=1z~Wt_hld(6}0=MMIJQ}-B^LNHQ48Mbe=j;2G_wfkMuYUjS z6YRzDRsYGsS4pqdixW8DBfZ}$!}IYVSwA)3V?J1*%j=16;}J3*h@%$j^h0s(-}?9; zVCOs9>u}6pdOYOg{p1(#CyDjv4$kn4wD*T?$I>4j==CrR|9O-9S$X~>oY^MQE^jWr zzNB*f67%1ATzF5!Cl|+k zqMx^xW2a^M{;FOg_t!3wc7N-HcM#t#&-adqFORT4Z+sueQGZ@Co`I`lb-mkh-YUu` z>+2l8$n~i8`foh_u}J%Ro*mElc~tv#JhDopyJePnrtVyB$S{vrBLE_TOt zWc&hd@&(UZq@PKqe{5wwl*ctbcL7nv?0TIEC^G zhvI(Qb$=RyyFM3b-;cbHn>3BIzn`@iUwSgq{=DfNK8;oXd4RKa>*KeZ!u9RZ^KCTF zoE~YZ{pnI1BI5FT4&b!CdVhBn$L-_uI2rd%p?$vL@8d{^;-v>GKmVzyPy7IjxbP)> z`w;V&OkXRN{NHnbDE%@nI-=+MVYt}vVi7OU&*Qf_xBw44q4!r;@I2;2u^$%CN2^YK zINlJCB|Y7%qI|D7_#K>R#FHJo3?~s+^}P>ImloH14$n9IAI`vHei!lj@8eUI?IHX! z9(74yUo^gbL+|HP@gaFVVn4dVA)bd_%Jlv1S$xh&|DQwLYnpifN~e!^@J8%UT-2YK zufNB4IbH)S&VR`v?mV6TLwZr4B7I{A2jSkt)%x}hj>2kvpNiwKn%`D9cqbliq`%?d zXFuTi1Myn&{2@3MtIuPH;aOO<*DSo)@J75EtMPCI=NP_*_ZqG_gZaR)A1=mfeF?)J ztbZM4c|OFUSY3Y(o^Gst9oO{E^rftM*L8?XWt2HcmC-`8eH(U&Td6+-26o>uW>& zCvkQCuRC}wc4EC&^*bBaHP-KSxG`4!>1*7^a4~+x@Le2Yxb|$`560^Ft?+as-VHCp zsy$9K0B35pN;W=ioxz zO!_c(s;Q6v2kws5d~Yp$*iYh6;%a_*5yxRQo_gUihKJ%*>?6-N6=&jl(yMVEepY%f z{>|_i>{2Vz9#8*ZU##Yv`im$JeqQEpkKf1Y`ugH*!(;HzxPeTcj&Ebte=>2fyLKL4 zgjIbP;;YzC=D&(PpU`pVk7<9yp7;o^A=9_RMTUFei-x0cnc+ly-*7s1sjZK<8haSt zfxWRR-w7Ow)%tML!L=82KS*4)XOM$O;Y8x<`TIHtpT+6KReRpUna25QFX4RLk7x(a zz=_1w{C?EIbw8m$8^;^r;Qe?paaA9e@n++EuFF`zv8s<&_^Oe90Cx7!`KMw}toCo~ zaYMsDVsEVK<0kgSsy^y1XFbEJJ_7JSBOZ-M8J_9jO?WzSbv+jy+#rMb+&F%OgIC}k z#8YH@?ZN)s52@po;!wkNR)nJGU^O3{#0QP|J#5~O z)&G>|VND|KzpwQMZu4xUeZQKFow(n7O_o0coA-a)MSkJ~WV{IHVm01x;r&?kx7sV2 zf3ccx+T(Yc>iMico`KbR{t5mDza)=ef(v~0`c;1w{iT_9DE7zd_h_f#%oeQ2RH#_* z^08BE#=E?~bNh_(eJl~ln&;LDkeqOH^f8!9W_Q%y%(_UCz@5?wD ztNzyqFE--wI18)xT!D9BRe$;Tpy9u9fsw!FnupyK|7OH{J9r!(*g>yHUpV+0p6;)o z*Hq7BeZp#eZHc`DbpP#%J%e=njmE)PtuG(qD6Fo3JuVE^{uYmYEzDpvj9<#YBAxTnnD z43}UvUq#|OM*1lZUWr{sM%v%E-0$G?IGcD2d3=`*>@To-KG_AkjMCRL40~hMKj+~9 zBfcH?Gkg<|#HzmPZFIA$OwsOyUGQ>w{xJ?-k28s@{o&URK7+RsSMB>qHscMSl*j9Y z=ch#4pVuVev8j>v=hfSAlc|yR`}}|5`}mg3-+B}M?R{O|-uO0F^UZtMd73`|T^m#cexCaq z&X~>pEA1!Jd*>3L!+4N>2Yb$Ad`V~EviXtLBlFzGgpgdm!c3DXI zX#f%5g3~@`KSO>||1Mv#zJ3yE?W(0^86F9f2Q_+oQ1`FD2`uu zC+&g7eowd)uD({+{}5aki~Wv>&%y2RLg`C5AJ3EZ>9>peSg$=1mu8V(#&_W44Lm=P zzJteRGoMMf+s$~}Onpm_!AG{}{Pz~YY_DrLb4TU#ACbQO9?rir(mEvLpJ0zYdObRgx6uE)aQ&ivFXMp)3H(>3Z{eZ* z9)X(Qo%Zs1>+;DJ{Yj*M94}u#*{a3$347peS(EL*SKkm{Sw7M3KhNV1pG~yyZ#&^G z#MjI7^}>he>ErhoUaF5DjW2wnk3Rxe8<}jaWWb5@Pr^;xC05kG@N`@+DzTzHg%{u@ ziOKf!p;h>BT(VV-`WEqR_{PLkdq46WJ~vLg2;Vj0S8&e{QtkEV4&Fvw)nAQ$9N(}v zZjhX6t&!(zjkga;wCm$#eC3@)`~0DJ-_NPmG3Uzijlvxwb$lYWA`l8iT3{Kl1Lw_ukUYM%l3wjs8{tWV-nX{P_H2u59hqS7cRJ#8#`W~Ub$&^*$J-!$*@%z97jkrczmEf- znQWhLF7AWH{3+Tm1J8aW#l9ciB5aiR5Wba}WPe`z3qJKU<45Mdg8f#f*w5q2@c=C5 zQ*r#qzj3qPGvd$S5e+8W=kvq0{+MXz55T9e%KtiE?m5|h{v3uk{;1Or#!HUs^kcAB z!33+GY>!Deh5o4aYm0D~9lCwi;_zF#J$8$@;iDqHHqm}wd=6V1Cfoh#3a(?cx6=Xk zUn8d4{o5Vyeoy;pyr%8@cDxntL;b7rb;RA0-nY)k`s;=7c1*O^$nn-6`>dE^=O2pC zeKy5z-^sY%wkh`S?JvfCjr5=63(FJj-yhqB{Q{=i*Y^{S#eL-Y|G>+;Ott5uDhD~9 zQ9pI?=o3ly^ZTawGUZt*^9SK8gYw@$Z95^@8{=QAML!@t#WS7?)*E0MPu9}uu zv7Z(7*&mPZ$6La6``*I`47=ttKh&FSf4}@$JiBe8{r*!Rp4lqd z{=BIV?mIKlp3jGf{GqA#d^t(PTPIp6^87RKg)P*l^kRGK@>^~V0= zB=*B~Wd2fo%837mQ;c}+@0srnH^p5H2jDf`lI_pS`r*r*zneV%VC>a9)qZ|6PNY9S z&c2@6BK?qwcK^>3>3x#z_2VF}F=nFuJogM<--Z4l$6qO~<*)a1cktbp+0V)ISNVbd z+acMyB3%=2d4c20{@Dn3=%my8;o10rOdo{n1t#0&4aEmuO0>?%{E^tt*pH3EJz1|* z|C@+AESqS1EOb;)jP_9V(*zfgUe#v@9Mwygzc(J+Rsa3-;kf1OX#0J%Nw}EfsprYdaXEfO zo_{y?HtO>PF5-NCGX6Vm$??^AuW^+Ah1K=>;_0MU_m3TLKnQ=oT((y~oYPyk=SWUXzJ~2I=el8eg2F%U^;^u`2Ha>>Z`sv+gnKm$+L0+G1a> z_l!JW5O$ug+b;rpl76;~PrxH%_3>uoB&^2IN<1GAk?D8ia;&be5PQc(+w1vXxF1&a z=}|!c!6RgTKkO18ZU4QeuGn*Yw7otJz^;^cISnYr|GRj4TC~+!)^{QvnjUR`A9VpP zCcl@AZ^rkN^!b0lF7y}G-_Bt5Pdr1sgtHb=zjA-#a-8QU%XNL$!AaNj_4?rbzeL-= z$KZ#ZGj#jCgvS=?{{I@z#WiI42H@ad_53vyyL_t4H&NurYCNXlH2l1*zhyWNACUe6 zr>@jKgq^NO+w1?&IQgvhW!&bfZr{6j=ql=09X#pI{>>ASMyjjShnv5 z9Pv5%W&hoWowK9u_4^bq!(xIG{ri&eX2y@q{||1G6Ky|Fu35->gQrnIk=`2@eno!S z9_@v9>hTqbv*}-Ie(8gQcIoR0!=<>YJl_<2b+@jsxww8_w7oxGfmh*qk5!(37mnlj zYJ4BYZ4O3TYvlO3h6}%swm)C0`V+^;`(*uj;vmM8s{f|g=}5HwK6xNs`eU@UO_nbd zr*=xPZpiu?h(nG=^Tt?Zc}C-Gyihs?2Nme@FUI+Jo{VqC1CQ(d#eSTGf0FSc9D0KB zM+X%3eI3XBtozr0I1Bs8^sYZMe$VOt@eDpfypfEz!hQNKt7vcW`9gs3TbSbu_Yi(t z$KS^3r=#u9S4ZPqtUlkKiwp7V^7tFE_nBzx7wNC@ee5ND5_=X$TZ5!8;AE^m|GR-p z3|prduZG>QJMG;-=6?pa#43L~oX-4GO~$+8MYyl@TeuW^Ne{-;sV_12iu!#I7hyGj z%oOPje~QZuZ^terdVHL~?F?VTQMkQ4{$oY-C#>ePMz|2G^1X_E&+Frb<9>$6;#B;s zJYG7^GMtGEjP!ZRc&cj#a@iySBi_9l-yzLhLJ=z*4<0r89CB1+79j9YeALTd~ ztNHlR)3g^><*$vKT-N&sFPx6m_-ToAa5H(nmvAvok?x8kN~7)PL49#HR^vSi2mPV< z$M4}h+)L(9#jbzq{xA;*kRXQ;pcE6R^zEFzG}oH@omH7@O{H`uruqqI{rHBidily#@BZ2VfaVv ziBiyRs-0wd7 z2U(smBL9DSyr*H82l{^O6YP)Gc=!^R(*E1!@xR60iL3eKJWjxBeB8tL--@y4%jzYx zSN|C6fIPnsZbMv+#{hgaI>w%_`{U9^G4^~m8avS+C&~VijHgqcSm^~g@8=kM{mH_? z`(v!pvVM2tHt*{Gc2dNjqyNbKr8o+!{pa5}jrv|F%j}f#us13r{wlest;Uva4%Z`nAM z>-Ur8--SbpW9;`oPvL|!G4}rTH@xGQ7<;|HiBqvE{{!rDI>w5Z$E$OZ^@01jczJz| z@ImHhwVpnYiwy_i+qi~IABtBkjIsZI^E>$d;TWrxjE}(n$Eja=z9gJn5MzIT_XC{! zO^p41>;hc=ZH&D?TZ!E{UL$$DZ0vbRdnXRUs{en7J-(-W@_auDbG{)m|8F??NBV~x zuYcjt6MDXM`JMHY@(hsa8{qB-V(k4%Tbzm2@dI(r!5HgbnLZR}Q+`$6SX_YB{FQ*c ze~7W4A59kNv6^4z&}HDy;g$ES!zi{Ja|H8s3eIjQnTt zbjG_HuYcmGUuh3np2sdTA7XX9MmPhDr%+-&3c%S|oqr(Sfz^C98ecTxQ*jwq<9$AM zIU8d?pInALu-ad3#J4Z#{ls@T)iu_>e=o$|)XxanpDtkMy0P}}yWPb3^<(Y+@<=K7 z%Wkpu^MNOD`jfGCdwF9|JX&5~dtCTbto6Bc4_x9MYh9M-dmHa>7;En@hT;sbSgVWd z|Ko97y;%G6w;4F~=~#Qbe2n{f#@e6XWnyoRw^E*O8_xHMwb##Ya6}W%FOPp52R|2U ze_s6?F2`!U{R^izjkU+S(;wKK-Y)ak!Z{w)pFCefT>1y|rSwbK^H_VomWjuGJ%GeQ)ai_V}ONKVvoDJ%!Vsh_!s={-p&TdW-czUhm5|=x@fmEN?%Yd6)TGdMv(u zPxtq^`2KzEZ0!7>9?#$7`Z!S5#~*kg_L6qKLVv?*{P^Hh!(DNj;h}gwR>zxz3$Qxg zCR}Eu{}z{HHNX6hT_3Ptl;^*NZ)5em%=IeineEQVcoUpGD8U~8&*PztFSY-86(?a; z{=PULhs*rKa1+K;Q|T!<1grbu1$ao*vWoq)cwY1=j>sQu?~k|OL!*~fyuT#k-{8y( zvG(;G!@e)a+Rsxj;8fy1@_g5EOX8|OR=r05>KJQ3?|c&H%?1C<@oA^vx?#@AKBk~Vej|j?fE(!4}3J<+9HoXOt@#fwVMfFlrKr7ZxwI( z$#@!0s2^{=zzw^IFU84O@m5n=o^?3qqj+nlO#dYgp*-q&-~k-kKHf@^`A_14j`7wx z=?nPC=yJPmRF%6My=Jbz0(a#_3; zF6*NsE=r`nrC-M()W-#R{(;ydEZ%yAKT9dDZwSt87;l}F@$oosldiuHurt@!P4=gS z*nMiex>uH2Nvh@1)5_WZtv)7xRcT5V6|U~z#hNH+Wq-|I0&ofmG9#SyifN3#n`hn)_xwn z8An}V{~)jTJ3Ny5cvhaj2>ZIm*?*6#3>Ue@{hzD*59n+9A2@zT$iy-s7DBd0Xj=%G zMy%1M(Ja$w)N0#%)~2<0^{%z;y@`cJBV?aOXfzA4#t<5z(WVg^jSxaU8kz8Y-tBdM zd_VhZkIuR0o_l`ZpKtvYgc9J_HYr-JUUa4XUTXDb|gQy;unv} z)cae4cU!&}9}<$O*RN0FzhBODLZyGchG!j@sn_p2@UK|4$FK2)$7kyC@^}2i>6wmS zj&Eo`{r8MaeSIbre>yT#uMbAy6F9z)CH{E4)@mjvooxy+u^;e9q zI6KQ}Kl*_0!D~L8?c5~gU4@@mkmdX%{r4Gs-sCJNOxp9y`0yE7PJpD>f)`d~IS)(! z`WSEAHQNc3{?m=$-96j6Ue4$G@uYjRoJdLUpuOy`Aj_$e{T+?J|97_Y^soc@JJmJ) zyIJx#1~0ogOV7`j;yd4+?HnrO!DM{GrCH8#;xsot`H7P9nv2&C%W@*5z6$V`ld|}o zxC8sU3xC?o_$$X(iKkwh z_`k$suAuy+e168KemC2>N5;2*@Y!XQw;XTK@ARLQSRzLMj+9M)shN5_E5*kaX6p6& zBlx@(nYw>&#xw8D)X!6Vi0^#KwBJ4WjLn&PeE7=^Z_ISUCI83&!F)*nxmN0DG~Tv8 z%c+s_z7)@SIZLmnrr{TNW$u5Uz#We=ab_Eq?Thdet(p4%Uj;tzlT2rygg=8juB?{( zX~E8$c+GoR4#m5FeA|IHSl)vlvivLFhROc^`2XVdR`^i^)CVT}`@>JgFJd*GUx?qZ z!YASuTq*IVCP zSx%13*YDt-G1>b3WS6`Br&;>>=pS(!E|dNL5~2bf@`ku=<`iy zAJ1#wKTkhjG7M+@ZtCYG?D@i!&p6zV)%E$yaonCPCsq1iGOqZR_AUF%z`pOZ_P@X8 z9^dV5{2#OQ_`M1zS@n4z4*WGsuTLI#!!5sr%PqIyn*TEXN&S6_TX2H-2ORX9@!vSv z^02?iFHV;DBXBoX+oV zoQUfzr{R*R+4_0wxj6M-kM6(uIQ>13F7MUYkNuM0bvW>S6aP6}k5&I_#<8u&pWv?K zY^Peb{|0BIWb5;Q>;9;W%)@9G$;0IP!e6eFDzK zxw3sKuDKvv-(Q-Kdk9y@a|ceiiv3CbRbmhERr%NBaKa-by|?h-B;%d9b+^Zfm+&qe z^o2*C5B`L6aifI)<;K4(TmK%;G5_#9>E+q_dQ${$`#9Ta;Dgt0e>xxg6S8&txC*ym z)qZcr{Z{xw9D4=f0SC5UiMx}s_3z6*fV-xc<9!;(TlLe3d#}xQyiy+9-S}30eTmbi zW$W|zUhKEL57$`^`j_XyEuVr1vC98g9C^L*l{f{f_H;Au#A>|B#pN@zoj@6n?!YbY zuh#Wlfup|k=<9JCaCnzTU*CEaH(+%=V<)cO?$OWFeuEQ!^XTs}{();g_Bh=#9}MLj zr1Ue7p8rPRD8>ghA4cMVcH{GL$Zy$Blhnr)-2R8D&kWr6mq%Z3xE*Kz!T2rvTY;l# z?`phw0B7JbX;07MgyHk`^U1H_-0=DOd}jylBfe_SKj6sA<~ZT9p8FSjPMNQNPw%K9 zoRcwLtLq;p;(=$o#gW|}y&kz5`(NOBC3fh>pXqvB6{!!|?**ybZeqOdlJXjl2cBm9m+|&G+;PD? zCrX@&11_4U->1pL(P{Ja_*Q~@u$u46aP_QtPKRv&Aoga=)BSrrb~5Mb`(+z(oM)cC zzPcHg-8N6Z5BdfU%bBOor$5B43+L(j{StS0=jrDMe!~8OdAxIXpgjL}o$t}V=QJ#U z`Y!b7^<)H&dwZUKe_;%+raa@Nd?w&7t9+Ai;4TwB11I80i9ZMDSmA}Z-U`11cUa-~ z<7C={+Ws-@#cI6VjBBj$7TjvN1NURy-*MC@#`|yvR_O&EGR!H*s=tTgR;>0PiTf>I zh{HNe_#~WQc?R}ao{K9i7vZgz@557{S*Y(fufr#J7wY@X&)`>c7wY=if@A#jCoa&q z^J6P+UFXrq+lf=F&HVcdu71no1WElLd?@un{~nb7bPO(g-s3njpPY(=Y5zS^e`B$C zr$?_}CgALP(?71orN7dCB)xRp%X+^`_LqZW8kvtI+>e7__c-O!zt`Z9S51D_<0|Ga zHGVZ>?+4^h;=hYSKl14HWhZXI&63}ra2fLtTkJ2Nzi~P1S=AnfA2!Sh|J=-PXW&7vV8C%-83q#ds}N*E{aQ-{TM| zuLtqpGv@2@;&FV&jf6}2Z^9SOoUh+Ee+B2?G+$poZN=O0m6D&&@sT&rcb*mhh;c``f@2=c}0%CzEFD~>#+5nx{{9%e z9fwNzM11NWIZjjHf&OwWerRHj?jPy+Q=i#>F@DtwUxB}|!YlC}EBq<^E8*3$zgO`g zi6;G4yr#&6e}zXAuI9@DJk|11N7CLcpMlp~j>Fq1uMFAW3_N;?aSpy4r%U*1{1fh# z@oPOEQ=FsQ+h)Ao@^(CDX^s;m?c;0w(DEGTJxT93oVg-Lk0*y5Mg3!Sz5ZA{)1Tvv zmHvJPUb8aCNs{zp@t)Eg=P2=Y`0O(3Q`Wz?;O~FW(f!wp(?4FV=a*G@0^^rz50BzA ztnu(kJQGJqeqY23CoFUx7H`8xUS|A>>jX0%euJ-=xKLmJ{0&dCeDE;xpSIAMBKZ%+ zW4OOvAnA|Bqi31-XD-4M@JI=tgy-dvA=#ZeM|3qI+Vg}Oa0z=>B^?{6vd+|w6lb+P?&|uPMJr*Y6Bk-;|lYSK5i%*mIvG{~%7wYkClDj=t^Zzv5 ze)u})T+(xoCktoty&9VD{`t;}=im_WQhYZ~7vG70!s_|$`|yyR#?|=M-i7*k&Zph@ zT?=)8YQQshE!58=yoxiiYH!={2CT-j5AYtGBm4gZPyLwoBgfl?r+s4b{~f*otM<@` zms#O|;FVa-w+9_P%z4)eKLT&Z$I1SV#@}F-zZ3B2j)hLVgh#mkVxe=r_$<5(tMVL& zS7J3k$Ki**q&-UhFUQ*`A2nVj;W6C{_5H{ceB`$a_4TqF@e|)I)b9)2f!?2-Ky;ZuKHsPDhuiL?2BQKIDkK|Ex@w6AB}_*k8fyo_gB;UC~4tmcC* zydIC0^iCX3d&O!!Gz;&+sy&zfk2m4J30LjwV|?_VCjC*zP~P}VNq;V$hU3M%a7@U$ z{p%68egB2aZ!q6qJCzF~i~ln1X&esweYGCXF2mFIne&_La68*Gz0qIzo*b^S{2zQY z>1D|NU%*HHvrymv+J<)oEYion3x7j=)jod0^*^rG{s&J>U#y?+3OSbY`rC|OXW<6o ztMa}aA3}Jr?0+Uc79S*D_&;8WPas^C|2kaH@wolnJ-&wj3Ez&-BfhG?Z}0@m2OY;%RK!qxu9;N6(ZS^M`l4S#QKzW|q8>)8kJvFu-MUx#PTT&&kW zZ{U@Lmq>cs@xWfw-@0+U)&Ks%>R&kj8GYja_qF)Nw8i@V$UGcr)z5u69;^D@g0BcP z`P=h9K70h_MYw9eV{jAoe>(ei+e<1QbNHhD?ZYkq+woMa>hCTbJI}O_M{p!o`>(@C zl3!ImP56wVi**0}7+-=_xD)pOeI~wvaFxFlJRe^~{@naLk2m0Q@z|3%zdK@)9v>gZ zJsi&&ay)P0603ZA@u$RB`#=8V|L@E2Uc%M>=i|eJ7U}DSt#}PCkoDT+Q#jt>Mb0fU z-@Jswk6pKaK6cBq3-?(29~w@6Z(gjgkDq{-&0Vao_e{oHvKQ;?+sp9!Ig9oEf){bR zRsP#>vQ_@O@Fc7Jd$8Av{}(Q|;vaP??bV7Ofj7)rtk=s^@D;Z#-e13N`FrsY;=A?j zx*Xf}U4usxuF9_wmqwcL>Ro(^wS5=1^ZOglw6;I=G_Jq1{ekv1%sCF{TiZutJO5YW z_15-jxQ6ZBUgg%u0{kcawOaCjAAaa2C#@0`x{XRO-)N%+$h zru|=n-?g@%f%|SV+ux1@t?kS3qt^DdcpCMg=96x0*UwQAd}EeywSK$wf1HEgC0t#v zc?^G#S-$VDzwQ6y0sJT7s=tpsJOS^*b0z)^JmJ>GdOUsrzk$_y z^ewzFJWroLbm5{?^7QrhU+^00L$&u|k^jGb&ca&=SM7ZwPCsj%b1eIJ+gm!`Zf)K$llOF16y{f%`r-=~v-uzF+6AC*1m~!yy}s_5A!Y?zi&) z4vz8^>G5qBPW_}nm-iPqGMDdd(V*P)zQx`S^L@vCIK;~D5oZz~C&>Pf!##Yjt4_w} za2$8T68*f$7~Ffd`M%nC+_$Sh->;g8GsurB?-bl=mG4~KV;%oe9Kin6{wr`4-v`T; z{8Zy=oGfl|xBuCc|C_jvaCQE?8#nR2OjSQW;KZ}@^z#b`oyGcs{ijQM!ML68Ni~Wi za5M2$eVm7Tuu3o9-5#s+-)nG?^*y_raJc1pIL2}jPPBYKPP4oL=U9FfS7NoE{|MJx z{vNkj{u_5$+aD1{`?11D;GlC&dZTcJYuT!?!u--r7w zZ@~SQH{$`zt$5J#9$fLHSFf*sz`d6D;wH=g;{Ml6{~CS{@hy+U{^#=adM6rZKcA=X z2VaDv2~Uyoy#i-!qWwyLz7FTs=jrP`8MqGnC4M0;n~CLl(bc%^hCFAhtlz3|)%HC7 z{rGyEy(P~nmFG`i#(i(*>Fd2Mxc-?uJ^yv#Udscx`|3P>|Lc%*IsbVoPmdqR;ZPhU z`5TE#DK9m@T#UQ(Yxj>I?)h309-LvmXPS+-ZZO*y;vTHt_r4ED7MSfH#~#biyW!y` zy?1dF-&5?9{CtFcqw@9rq%UzO&XDjQaP0YfA6EP)jz5q7C)WdqM$_Le$k+4d88|35 zU*E5~2)CV;udmNvfg9MrI{q7Rzm?y4xZZLRcB1q2{m1)pVFrmxBAn6aSr91F7QV*vqV3y*n%6+%y-m$)rCVzuR`*F@VH@4t#y1OaO&lhhxFewv2$>- zF8^5U8B(mT??qk?mD|H{*`Q z=6l3#c;HGizklV%pO~kwXZ(h1aH5P~!(-T<`c~zAGOl&oi_}LfF1eTSO^$am?oG_o z&x>W^`jLDeTgq!0Zk}Z3!~1a$?JGgTpTM1j$BSRajaK{n2&dw73I7R4EilJ3%(z40w>AwO~e_r=Lk8TYh4!?>G5$Ec9s|E@hKN4E;IdOB~HfWl3peDvAwFF zT3l6Bq@OR}f;%2E>($S2^uzQYdB5UUTzY$+zF)V`-TtUz-M){CW&N|F$O)JIos8QS zn(tdj;_fFXPYECI#?LeJ`}H_=3FEVr|IN5-(DcuI+;7>Bd%UzyiC=}23i6yVneU&# z@z(h8GVWk|RbOqmrr#WYH_l#R_WwIBugur$k$?-yZvx+Mm;QVTPGfvh>79l9Pcq+g zy#Uu@Ri6`Z+ZlY%Uygq=uAx3kB)yw)7xkseZvl3!_=Pw)+@KgkOalM&#?~@ovO5ZhWb~Ok8qRz8=qfIF9p8b$#L<9DR)$A8YX7iDtfe5$9ws z*W*buuCF!ee~8=py#zJBcH?Nz65SvE!I5>0w^AQRUrc=l=j-t;5__&&qQB30KJIze ztABqx371~COg~?ihEskq>&rPf{#nXPj<*DdeZ+Wi$bs=?4X$B4QrAoVgFCSrZ(hNT z%%AFfs{<##VAeA~;tuSU@*WaL|8HPCm*WY;(X{6jRbRN|C38MI9=DxetiRuL4Xzkd ztk*9YICN~WzQ2=;bBM3%cNOj@y-rDgog4otubz)zz}^dsom4sgcW~Q9%a)VE| z_gT0<+c+P`9b2s1OF0giwnVS5H{h+G<>}|~-oU<%l)mJD2d*Ss^^YHL5bYsR_J7cL z#`7QZoLU**kH_i97wh?b6mC5bYi}K|Mv#$otm%TUt55~r{(MNTZ-%7Xa7>Z597egiuLnh z&*L(_zpuuh?Kr`5H?HINLuw@d|HU<%mg({u5>I*Ln(<>O?z)cOr;+`ggwuAK^;0|! znP$GHJ{{K)uEzHaoRVU`=U#|?ADQo;m*YX)EBRUHhLfJ^-}N}=wPpJJxe0q7^6Ky% zxSRB&W&7`OPdoK1?c;Y`(Y8#tr-LTYo?bG)&k}+|_?~})Y(LU9>8FY>z+J=h_4ACA za46+hA>r5JlrPM9pM}$Ly0o7noN(%LJwBA=>^WgK)F?e7%hQMfnCI3Bl=p6Y)$;>y_NPPpuE5l*!BcQ1~y(yPT8mfyr494y;+ zV&Ays`g-6XPCI_N(=O$InzX2?O4snUfhY* z_;D|e_{y}W^{&6>dW*EzE!fv@t~WO0fzo0knvUbYWxXfi1vop0-}ex&#$MKks=YmeTfWP4 zs-*m$#Z4jk`uf1zc#!c()#oQT_0?s1zWEl%zP(I;Z)Bfqe&0gHKk5p~r(lK7-zc1X zGrxx<^*IIyJ!{rW6L2lZzz+=Bv$47BaX(ZeeA=fI7+r3F_HD8wf!Zy4M$4&t#|;p zNO`ZoO<`t!Sc_Y6lEmMHLr*g4zl{^HDzA@m3Rdy^a5Zj{?T02Zo}J9^{fNVHz$r`g z^8~TD8msiK#tG%7J!RsYQD$b80O!#RybnJ4@aSpWK@i>TZmA_={VZ2t(!68=oa-3_0 zKZe5yAC&#SghS6T{bf6jvivQMxBMqgv3%6klqdE}dLwZ!t`%R1D@L09PQ+C>NBYwZ zIQF*XdVQaPqga3S$o6@-%v!%J#qHMbiIwA^s3p35o^s>!`%2Za{YyCAx_|aA&bHiv zb1eUey_Wak63auA=&v|T(htQR?!QHg&%iZ=CyK}6cSi2*Rrov{=9ux_iz~Um8ZPly;&$Sy6f%|*PV{nk=NjSvvEjY|_F^<4$Jh>akSmBT1 zY^#60hU2X89XP>qH%`ToQXc)d`Vo`AfGHdw?Wse;N8pGU##iwe+>2FyCgMTMGjXS{ zKwm%b;vjynQN_Ox#}*an^R?%27~!fu-o;K~fgZoU#HD$(7n%Ql!MTL1@$#T+h=0Kn z{k@?haI7q^;e2(`Ta_j-$!vU z^P`IY0*iY0r{Ij|y!w9EI9xW-q&EpS;uP6_ zCJst8<+%`7<5CG|AAjpK=q9#_Ig~9qhqf5`Q;N;`hZ=`48d@>-WY^ zn@a!X`cZ|%kH*3LK4rN$0as&HemCP@oFw4|ICip`|L(+rXD`?7uNnvO`&eFyzZv&T z;`))CkGzlLyoGvv=)?)u^`l>L?oIi6J$ul#l;4sgLKEbB*Aez)RytlHlqoSbIDm*Z5ND%(GZ%YQJ}yPv^5tk>1{TW|;Q z)p}?r?zQ{_4xVYoheM~)ey#QXi8$N}kHOKnM)p4m2i|1zmw|&VFU6sjAHd<3H{wXk zui<#hJ8+`qJvbS6%Km@FQP%S=blo6YsqS=?>yuNn8_cnSXu$MAcS%6&K&CrkJd(;1(!s_zjvETLGpw{vi-6+RvZ z(En6=Q*pZ$o{2jx=i_e6CAc4l$^IY2!TesZ+J80nS?hsKxb_y)-`>X!mcPbLxJ%L- zlFE2?tGQk{0+(l)@$o!dYxyeNgw_6M;}*-SaGT}FaEIkLaW7Wm!6$gY@N7>g=XbHg`DlWaUk9$KHTUoK;_L9 zIJeZ?KkdSScNXg7{ToMF4x35+V^uy^;)XSa`usK(x00TkA98Sc!4iFaZ#fPqG%m+p ztkP@1AqA%VcH$B%{AcWA{h{(7a1-l4!qxb560Wi0pN|7)Y}j8P?)SoyaNGIo_Q!Xh zM@_@g=Xv${<6NBau=zdMTpYmt4mG~siNj|3^m_9lT)Whqe{RIdCDezM@7uUx(sI3? z`v^BJo?bTjkUdh>g`M`DNHn~s(EC*kCECHncHkvMdP`F+?4xMaJz zznF$=uQvN%gnfRq|GRO`L*{t@g9ixrO8%e6IjcyIPTIldtU`u<)RF1gEuUx=O6=J>C}o!BG$UxX9yHu+tHYs$^`8*$XZ=KAYfIPiYf zTeAIExU+)iKc#>EiPIkTI!O|K{4B=D2U%Z9e;$V;dzU)(haET{j>ol+nD&{9>n-Qt zMm#9>Q-T|+%=mIYZn3-xcVgAv-^WqwI3CI0=eVvKOMZUA-DTXLlkg$8(Em3qancx| z-Rq0T;eofkPPts)xDZ!wBwX?{84qGL9%SO6XU%wCghMUgha<3x{}hhFD!(l_&T*pJgydE#!Y#_tL|fYp3divu>9@HcU&Ucsjm`^O9jT3N&#J>zDK4*@922QrT2&Y=U8>d^Y#o3mdaE|2;?6v$~ zTw*yWlkv^+C|qv&GF*upB)_w86~8B}j&CJSdfw!}2B%nl1E=9Q+5R)!@aIx}|GgJC zPS1C$q`eK|N-O@+vuPi@&F`I`g4+pKD#4FiEN*Q6SyClEA2TAN3ecT@fYFN zAI$!j;XcAueLsi;LO5TS^q#~er|^6Q2kiET&A4VP&)-Sp7mktCjGRu#feeIv*O1)2}Vm*H6#KU59)1czz=u=wp2@Yt8;I#vKV>{rt{NxZ*X_|8B=^ zI84%8iwCi4UytGXNbY}0cq5MBd7TLHJ2-kY&lgC3J8;K2+)ow%gexd7^}V^kxwN+l zUcKHu1IM_}k4gPsj9Xsz>hWU+?)=Q_L@@2R?PW2p+F`E0-HS7JGCs-pU+acn;&lQg zy*F{kR<9E-&$E4reV=lDNZR8+ZaB|7sN*?t9%g+JDaRL$+jf)xLl5jf89P6i^~Wu^ zoBXQwxfsV=&*QAX>3>k)lD|sa@iq55B!8Q6$r0Som;Jqo`+1&B)$ewk@h#`qQl8)7 zz#i5wlHOq++G|juUT++O2aYu7Gbdr^RP#J(9IpR`>(7$jO*rf{o<|Uu;Mo5%A4~qK zaME_#lY~Eq6G_h}ejS%iE7bGX`#3B)Uq8?CE%y71bpC$FL3_>pfaB*=erKEOdFSAA z!d3kx;q)t(>)(sI1y}yT`Mb1-Lfmw_SwG!{YkB^rQ}Xu+?mE{zPxCy^i01yIgg4{* zaI;?g8v8%wdZYBWzp(eXLVbVrklP49o#!>AzD~kD+s*nq0*42)-j(nuobZ03p3h=% z8ucA4;g{eX+Fz9TY8-#K2~Wk%r!l`tezS26&&xRC0-Q?ytMpdl_74j6{o^&b;ln~b zKR=2+gvZPNp2gjVdiD3v-^Q^KvQEVOVLYtMTO-T*vd_i4xw7vtzybdum;{?IN$!D(UaTHJ378iceTb zeOb>-kHI;U&GAphT{u?KpNB)Ike>KncY9nX--EBkvABxsLHPZr#?@9`GY&2uf?^QW<1@5lV^LK zE*21O_zv8CbiQ7%@4@NxZ&iN3&^3=7vdi7C-lqlCE>=! zUMF4NukqltGtGFh97p`b`yEpL_u&xEH^b%lAHhjjt#>xzltT;k`eHNgB0V)fw&0jk z&GQXE;85moHJ%L1WnlAroi>@DM&Y(n&VR&L;;_4^KiPj4Zoz&zpD4v%uK$Lr{9)hq z#rk?@E$&Jw*5~&x;YQ-C>mx0=_va$rem}(##8>NsZ*V-Wl=S=D?Vl>r^Ov)jw{T119!^)7UB2@X^#?r8SdbEj9`D!yRe|V{0Z+(CplYDx;(St9b)Fk$8p;+h5Gzv6D~ig9jBb-i8$F{x=l2p3n1Uvi(Uo_nc+={3R0Cp3C!avcEW-Kzvo7*I;KX&#y`N z4D5|rrteqZhTE+8ci_%(%k=X^_u*>RCu)4F#*LPrb+@UczcTIRj^Kzs@7ukHw+?n(GURxa<2O-9Bbw&)yAB0^IR{d0#XMhhbHox8i`i8E<9$%)!-b^Y!{{Ic_JtR+(QOz_GNqbUFS_ICx>9 zzTf{kPUZO2dhb1)fmMI`6z7iP{8+aC8E>V0)cu7aCG;1kL_fcByz6A29v`Fe)@ywF z`K&nHb*~v;rr^$Ujz`j;jiasOU5XQMg@jk)sEi_gee7ABHmgX#&+$6$;&_uK{!ZM& z`!cHhzQ&zcjW7Ffx8>o>XipF2>-KUQF6qnH&!ddP(Z8_Xkn#R<+(dl!{mtvJ!}U5< zUN__LWOKee4<}7AUV;Z& z{X%s<^Dd6LYpFiJ-i6a1&)3g4e1n}D^M2fb>&m72{U~QS?T7FhDbEnxiPidO9QO2^ z^UHV~)Xnux$hrrdan1I8r%uivI&jzC0w-Sb|20nj$h7YPoNhUI1?jQ+j+FSPs5i?=S}_{251dDjYke)=ko z+-=^s`2e>Ozh26F4^H^R^zUDAGLDe+{>3$&CVaS`_C@+?JUAQY5?`$cuEGQKhc4NE z1`f+zs{8v~T!T|3ya4;N%=cRE$2lElJzR@Bel_iT3mza`t+!fm_RbZ0J^eK% z$?^SxQ$OSVeeuwhtVcdsq1TsZ;PNlc`%1C6p5ygO{*rO3mA_dy9W#9IAHQ$MonM&p z@#7v`E8$hRWZ{PW*MHsnyHDb}Z_WA0Yq$d^Nc^t%!?#2OA%zSppD#i<(E8(Z$ z{%eYK|Gf|o@IFC_geT!{-X~D~ z49ES~jF)HQT%0Z2UxvGJj`#+g{hOJO=HN!0DB&g8Vf<9>qZ}t;Ri01b49ktUo$(_; zw*L^Peq^4v{tQ(}98E^l=QCMw%%$?Lf>8bi1jXNw~gdHn>5^m#b$T5=s zbR59_b+x}NoEl)#TZ;Xxzt#PwdvK{0{uJ&!i0?zmeEKp@nPawZbGNtVi!X8L?Pk3F z9cNqV9d#G&&GJZGiPe03KCb`KjBgWh$!$CzppFNJ9Ae5d3wyAtk0P9lBPISrxa{d= zdcE-+4z$+)Z{Re`AL7J+P5$@b<~LX9`(t}?_ZKUiHdzlGx|;qToPirXrhMn)7OcuYAJbUw%1ZA# z9Al+7564>ZeK^ueuM8(z;g8}B%P-*|EB*&K*9!j*mtj@^L&{mtSmB|#FW0okb8xj4 zeg&?_sy(LRMk~Esyw!?-H*UAmdjhvw;jiINE4@!}x0T+nxW|egu!j9v=^cj$tnkq| zknv3AFAfJ|b-c+q#2W8z!c|s!^KgU}o{wWJ-+>b>KY&v#*We5*y?R_>g};TPtngj9 z#tQGj4VM4H&6bDV=bo>a_I3&mw$eKXcU$4(alhp$IKUdeZ^j{(Z+GKc^WiESVTC`8 zV=O<56D+@lv#sqraE2BBGtRaAFHW-J54)f7#0n30ZG~Tit1VxRw^~la9hN;f(JG%J zTw=M*-Jbb7Mf&ffIEeXM_2)VqX89EyW%)fEXZbUnWcddiZ_U?#;xsG#@CwFPtmeZ| zymiM4z1|*)!xxzI>_Oj+6W*;wqddo{nR=-X0;o88;s3*X#fJ*b`u$e<;RDi_H0B z8II$71FHYj-~{XY16$qgZ}IE?)aGt~yIJ4t!8JHn_Wvsm%{A9Q2XUnJeS~AzQXW?N zW3Y$#D*xkgIUbPtIT=^yn(J>_xU0Zi-|*oOo-TSQAMc;3_VJIqJ=de_W&0B!V7}vewAwxr2b2`(^X&_9D^~fLgxhhcY(EpH zEi><@-G*~3Hn3d=@UXJONi=RX)>kmleJU_gXH+1C}4f0jtdQ{7pCmC(HTvo4BEr@)2*xY4zs! zymsUC)dl+dD1A7P^OG<+{y`jp!^MG>)E8Fg6C-fDYiUns;?f4ttYx*nzEX=jNH0zD{~}H& zzG}a3;0)_|o*lUMxdQ!tk=?GJH}6yah-0Y#WJzxy_G8taf*zv1<8UdDFkIh2dlZkx zEian*<8doi{oxuM{u2F5;%DOQmkad$lN>y-wLt&gXd!NV!;E*UapL9z{k`4?a92}- zzTQ}aYj|H*9skQXaEod0+i@IL{be`K#_IW>AF=a_89)BO5g(Z28S*geQLOsMa9nNq zbX;pW7S~&zj2p4)KQnRcPE($<-SBpkzuR#e-yc@b`FKYWYZE&qx8u-gC7M<}09&HQp4?k+R^Edu8fUMu@QABTNr z%Kvhlj6)=RD$c+ve;L?=RrxHzUMu`gTw;Ykg3GM%jkv-Je;rp_;X81x75+7Du)_D^ ztycJ9RkUX-d<1T@!q3H>R(JyLw!&|~eO7ob9!*K7fBGD^bNxS5%J&Bx_Kzv=KX5dzk?_MFWqm?_QS-rZI2|WQ__;WO z`|~QjL>y<`ufGMSTK3^w%Mai>%k{X$@_X1hxKO{J*MWO*uI&F?oW}Y?wZGqR7gqiE zFYMuY1J!;HU&r{2b7cFY@c@n%pNJ!Qo=9y!61U-A2|pWeJ2d>xLhJ8ny_r>yY?Q7*Nrn3Tpy}AT)vurD zxD{8173%A6d2aYgrajz&W3W2D2eAhyOZv5VD^8RBH{!Y`zn+iZ!EqBwPsWcOIO>{0 zeScs#Zokv-)X4KS-8eM7P~X4Ui_3A9>@R3N+n>sKA^STSC!CJudSEo}oafiS*L4X_ z8)^FA)wpAhU#~AxapI^#rz7A%`R0Z+J%pXuLjAnj zGq@3l$niGe)(Z>u^HuM;zL@qe`ESQTHmj5 z#`@z5+PlObj?-|u_$0g)H;N;1?v;i5d|({TNhCj#{w27666GQBuf_v&{d)UUTzVDH zD@*)2xU9&u$0fLWiQnm!@>z*HCY$kg4X&qt)bXvu8Jqc@p!DAtu$S*?s{Yl2V|hPM z^~aBK)AeRN>c)dS&+d`@{))2+SMBql$EgpjwjY7}uu6Y4PX4P%_qR*1e>&e&kouX3 zeLU}1F6n3Dz!`=5{lJCTxsmZf+J_GZ^E^+y#4p9^nBe`_lh@&vbTgjR;|`o4;jiO{ zTUYAwW;+g>W#-3ka12)C$1k`XhsgH(aE;}mH5@;Vl<*MTg;n{Sf}?LSJ_ncJc!?i} zn{bKvN*sTy>7Uo(M(mUDSvYpeN}ZnqT%TdakJY#bZ z+lH%Vo8#}o16Z~HUvN^E8NdFa`2 z{qqHQ@NDB%xNfxhp2MTK>3j3N+3Cz&7l{#=P{ABG2c9!9l~u{hXzUMCTUTfPNHTK3^+%N01* z@-sNz@|!r(^5;0&az9SR4U)g%PjP&W%XE7`8<#IO^?xaD!>a#I#Zh;g^MSdzpYS9} zZ!vbVSL*R{HBRMyXLY}QEw1PLROu4G8dpRt)AQd`IJeO3Z!`8`RetZ{ax45xT!}Lz zy?uBPCrNz;)zUuiG41m-9Eocs{&_gDi03t>{x88fy#KAzy8^f49Em>#N0d-Ll72e& z+-v$*0nS*)^EVQ{9M=$@BHQ1GYgaP=O89?p)g7ik)Zvg)GkV5h+A{b_dWY@gcTm}4Ds7ce>?$)S>YpbW7jf0e~-r@Jl`Fp>JvAU-*E9Q z?)LPzF!3TBb)(j|3`7cBdk{?{zlx5)5TkG=hBr<06%!;-k*INr$1`e zho9p?tkz3E;@bZ(o=g84Qb+q(Z^nybak4d@oQ1O=GxPO@xcpMTzTP_#Cw*X!?;7lF zHtiz~2luYf_nQ~sif!int_Wva@$bSZKdsQ?{i8VIJ#&7u5!VvGSC0P`+_!MK9uIcn z^hJEnLc+gy{Sy66%JX+z+Hcld$8Ds1E-~w=vvKng%-0fsDh|LolHNjGf7D8Se!d1r z^L(-z-`3-B>v`o@aH&(Q-(PCSo!sA7_5T$P7;pAJh36!NysB}uRbQKM9QMfZY{Ru!_3t*^h}C@ZEpEk;5`Pf)<7DyBO|*wr zp8uEqh2s9}%=5-0aTiwU#o@l~X8m#{j-kD(@o5^4vz&nwEPJs3LleIMmtobvOL0h> zIi3e`1Xkfs;AkuSc^r?`{@=j;L)Y)mulu~y$GFS#kGR#cQ%`wWJ{H$lJ`>*0W#W@I9t{e!!hr zwf{eGHI9?|4S0_BSjl**>K7+}XUZ!ad#(JOg9Cfa_!W;!e>CwY;VQOIlk~5}8P@jc zxTn^y-zS-e(a~wCj zL|-5L21m2rRqg3lH~edJzBPywt?;4G(_XFqek_imK2(2*!iiY*ugh^b+pGR~4bCB4 z^|zaF6IShYKK6f8sNZ+-;lSyp|Eq`>`tj|GM$1Zt{gY~N%&nn#Wy*ZzK2=@<|{63By z&Ue&$=UE)PuTY;4ZpMLsnfBg-Q}BS~=Tn^cuQ@;c8n@tZ+5Z6UVYDxk_=h#n--h_~ z`Twyv@F1UlA8{0pzQpJB$a*0bH}HJFs;|p&?-f2LUgndV@Syd342y9ozt@l?`&)%0 z=KJ*VRp9J+pI#q6ffHx?bo*<-mAGEEe+xJK*RSW3PjUHWK7Bp!d)zj`r`HdE;*K!$ ze)>@_vK}CRv69|txT?UX?-!nnOBVX{`9T~GC4Z_vOvV`;Z>embifb>zQa*F=U_SYg z@H`wa$CTIIxXpT>@iE+Cc{6U@!tu)aa4YtW_v`h@=eXVa{fpmlMY_q)!7s7i3iIjj z`vl|illgv>)c@&t>nVgw{w~J7Stfr|aKGg&92f4>^S>W=<1X3$aol{WPxrqqxZQG_ z8y~Cj=O;X1`H0P2?>o(GABIzk%=#t@hgsp{ag^n$IM#}PD~_|m^Kg>oJ8_!jN3jR1 z{B6P|mfye?mOsL^mcPYYakV`E=rq#4=lL8p--O_nxyDi0L+=WZ^1BSD@Vun*^?1-K z|J!hg)qd7s|0AY8YH+I6-x_hZ}1Q?W`f z7dPX0NpA%Xp#Q7&%Y8T;CrJ2uoI9KGLi*dYxYw$Wx83+&pFY3;0f$juYCImqQCFMs za`-EhA6C~lBCxN=^p}fq>NevkxRLZyB|n)s_qJ8Ke->ho)gJE0eY1ReJ^cg@oyvG2 zI=t6d7a_9 z*c|^@+&0ap*DEP_0N1GFbK_s{ z+Zq4WeASJ&5*{MyANeZ%Dc`5hKgZ(oTyuQWasTZ;eSfA9_b|SPN`A|+!+aJjegX$u z-s;BZ_@g9z7Y-*}&9~p;NGtvyIM(ve*O)(VGVS+7+<;Yijls?Imo`a1(Tz|2tNcvI zsg@VwY^?IL8dqSIpGR>OR{d=gj!iY|!B=qvR^#hOxZzg%kJNWJZp$$F{T;_;GCoQE z4u75T3akBx<5H~le<3cnJRMhJbv(D>S{x+l-GLjh8lTtUVEU_yzZr*H-i4!aq-@`d zQ?cs*hcwY&t4w+$Tvz)XpTs{4*J8Cknt*$r@HqoA-cG|^n|#io#LvQ=^**OT)>B2e znfXBN{~jE=%%|^HKZXOW@ns7R!by@|E3UNs6|S|$=e@Yz@)2*)zpeRe6z(ZuJeKq> z!r_Zd`A^1?xKzSt<9e*x+r2o2{!lI9jc)wKX8hiUJFp7hiM@Fyy{~X!k?GHW;7Z&g z=^gnd;|cvGPCNoPQ$BrkGk5(y3OB4_ev|UN6o)Y1sP;4yM?UD&_vZ_6JmIST?!zq{ zf1srQ1a7n3h&!-qKObS|4L`r}a$x^o<0R4#lJtN13vf$;Ni8RL0+zyaTc zQ!Ck@#J>ZFOkbscZ?zit_R`-Z{YKm{W0jLD-ht!$C=c=XxRmx;BOcOBe|d@h$?*)w zu`S$RSLKJ}I3J1;kHoDH`kfA0kH+JE;wMV@RM(r$d@~F8k$$*@FTlZsr-_TO2dnl} zimR;cAHqqECjOJS7MIEPFX5Oi=KQ1;R}`$$>3@NslFwco9{_YaO&+TYhWm~fBm zZxH*e<2(Kx`V&_DB^GyE`Jalz_L=%#jN@>X?Ei6`@H_oayaNXwTBOe}2XV(=Y%lF| zR14$9;YCi9^w$gVz(3Td^pC4?$gm>4zDUQ79FID_BAiNirySpdxQzX^h&SMv;oN_e z{Je!zj^X!8Wq;kczS*?z|GI83)#(Sm%k>Z(B;|E7E^Ra6=i$h0=6dR7ID_<5{wCuA z%QLV;{76afHr&-&s@HETak90)2XM(ZrFy(*aJT=wRF`L~>n}_7diPr#-c{-(%klk< ztBKz)`wMxG_$8|x_W|FdIjXa9${y1nuEc(<#=~@6P5xqKdoPZE&#&ua1#a%-{DuQ| z$KQK#Bga=FHDIMF&kTY_89Gv6av zgGsU25xeN6S=A92&vB3-_RwsL$a#;4-)G!s7-`?oZminpl{lLG`XziOuI7Dh<$UbK73u3) z_hB#2mH1ENUYsI+6^Cb*=<#$Xj=#jLm%qV@mIrV$R^@T%hwR_-akvkw@n|d_w0t!V z9B;yB;}FYBak%Aj9A)_l9FOVF`}^~YIMMPBoNW0AoND=yHtNgr$vE5cxj4si0`_9n z-_vmNrRMjZJ-9NS-(Qye_;Bb1;>-AQ2adYj+>cv}2PPKj`TlX7ooLFV8RuH=#wC`I z+`;^T)$yN$D=bgJZIg=h^|eeKap;}8z6)?`k~y9#+;PaAy1zBxF2Ys&Z^!)y->L7X z{eaWx&rx!`NA0A1NIyZwx6^Pa?NR0L5?p~*dq~9*d{3ZFw$H;`54%&ZzwX2V^mkR> zkGtDrwZGSK9Q|2^ci?2K_V*)B#krFH-?$a4{Re-<`Gd9n890^kOQj!&2eFEO6%J** zQTxllwOGY3!O7E1_(M1YtNheq4_5hk4R>Lc{ti57ZU3DcpYcnj|1S<^yi)OxYNtJ6 zm7mjb6;|;t!tsn>Dt;nPv(9%jaW7W!{kVehSEW~tYq84zOSm4Z{J)PQ7=KjydvMEn z=K0-z+)TJi?}%NjZy4{@{vz;Jtit1P8&>;E!W~$ppN9Lb_=|7` z)1+6A1F=f)b=-s_qGwvz~y{H?MHQC4bX!{BtYx`#rO8)2qhwvBP>QQQ{ZjKt4t2}TEa$@yQ2Qtj} z)eifd`5c!@_z5`d)}{J+tIp-8ksVrTTfM0o=g%@znSh*hzg_ z4#l08&%%9{<8XlWJ-x{|)bdOmZ+SjWv0Q|+Etg}T<@LDS^7FXH@|(ET@=n}k`77LS zc`pvEHOG7CZtBbO@i^M@D4d2vr93adWmfn^Ty2F<$8DCg@StTc4%uMRyAwxQei$cU zRUeyhsukXhb1Z*~OD%totF7(-#0^&X;a||czVYkxrxURU2g~uDg?*Oea7(v2f1Qf^ zHktg*#sSv%3JYgXObuqvZ*>)$(-Q zW!ZxRpEJj^42M~M07qMX7AIJ4#;KM+!ye1O;4aFu`LF~1`5zp3Yl&Wu1b4AMz+0vK z!*O*+iBlpz7Y7sGF22OI^*zX|a98e1y?#!^bz4^I>ruDi<~*L?lku$>CqA>%ab*0v z7dO0Zj{i~IVtE7ZwEQCOv-~Cwc*ku2AueOSO_Th7i&L0yE5v`}#OGEzL9+khdnk{& zE1g~$A4lVm#+CZ}ckwu7^Gc^lwx5do=Mi7V!`Zm;#AW(=-aOo~(_H^3#64K`r@Qf> z6X93xt9BJspUhzVm`4v9M@Yu1vgtBgDYto76(UvoUs=6$czaoT*omnr!lhXZm;oE|m*;oilxXYo|rw4_8I&#gH5 z_7eSm!0kBd3zOevINtKzIK}cqINNe9PR%cI0;D|Zu&1a*Uk`1>&X*?rxA4FT=J(^< zaq>?kPK|tTeh-ePy{YxhUR;W!rF;(WrarJ5Pfx^7k4gVb9Afzb9BDZLS68mkzb`NY zxBSHUgp}89IQCcbe#ugtjt6Bua6eA#H~V`M=URRVm*OzV?+)Dfr@3C#g$J<;@57<{ zjGb>-Km29lhvMErv%VgKL#_4oWE^gJ4vxmEd`jJL+E2OU=P}%LF7HE%x8lBkO!^<- zNNYX28}~oBRG%OGhvS-ZK63KMGdq3ar^L(Gr`8S|@f7jQ&>3g5g^Z)aFp1}}roKM&4>P5jH@BEg+-nc#21Rf2cIb%I}jqk{LtZG!&^cL_f2FZc(+7r?!O z3*hZA?$KG#EP{6kZiROV{tCQX@OR<8g8Sh?!M}xv1iuOI7yNOl2o$zoPzt5xl%g^A^<869>gm?7X_t4*keY}@# z^7G-plHPs1kFM+Qe0ZFY&w_UnzD~=pg~to|GPsiPMOuCfoGIkp@MaGV!|mHv=#_w&wx>o%|U&ci+E{86wb@A z@*uno`97`R3bzUQ26(sNd*JaOvHsy9cr%=@!#@ol68t+j@1u;rTK+1$?{xdU%P|KS zPx!vIUduD!ZLsk_pM)oJpVRo`Jf$!0cU}(f6!I##g5T3L`ZvJ`1+RtE&*b;Ob$Z=! z32f~DUbthS{T}HN*msuwJ+Ys`ZG!(>$+3qv9p9+p^KAQnoeXwcYZ^NU4cflE#S@}zFw%~(sso+!J#D56B z0B#pN2i_vM2Hq+77I;u_4?H6HL3s1~_I&kGc=D$DmkZpxPNE2Psz+MEO2L}YtfVYeIE{CH+UIn)cZh(6PuYr37 z_b9oD?^|%6kUt9d3*G|{3;r$KBEtU_9ue|UIBkoquM^&*z65^^o+$VNxJtzL88}zS z7s5q?m%tT*Z-Fa)_Iv3L75;e3Ux(9#d^_BqX63u!0P$66fA%803tpu809-L;o#(IK zhgW18=TcL@Ftyi4$t@NU?QKQF@Ry{o$!E@m5m)Cgn^(r_jrh z9$Z2E=KkUnaK8xuTX>J)x8VW7r~Zrik6=GMEVvjxAh-%15!?(P68w2MZL7`SH{c1d zv7g7`iGp8-CkuWL&J}znmY*+pDqJLZ0bDA08C)Uwb8r=G>g(%pRLFP2t%83Gw+sFU z+$H$TW5)Y>1W$uE3%(NGCb$9agH8Ik!+T(}Uj90~?|#dD@PP+bd-t!Nf_FZ++M8d# z2#?#g+PmK|443kIJT2Nj(~hP5C#>_{!#fS$i+-<`UkFDZV*RbT7~Tz+YX5L8Tr%DI zn+TjKxC74k?rLxT{uQ`v!CG%W&CyY26f!Q;PU-%oh~-o|?yX8!e8_#pbG{~UsM z@3Z$kK6D)IhrigW=Zh2Iv_AWLN0Z^KA8_A7%P)hszOa@zG2Qw1LdDa#@2ktV7#`+4 zrd4wjoLkH92Wj32Z|k-GEXgHPG=UIyoi_$uMH-FCmO0iM)k)4K)UDdcy+ zqp+FJ_riHX|6#b~87uFHHwpedykGF!D*UrH{q*Cpzw2!Jr^8VpzX0A2oAhVFRYHFO z?E9IOFNVwDd~Ki2aNXoK&t6u;T|)kOc((}u4Y)<es z?iKPgJ}}-lB*GWKTZR7haQ1UH{#JM&Y{v6D;rf5EKGWs-Hk|jo?SD_geP6NVdlBvu z^4H)Y*yQ(w6UO`cg?=VH;pbL<5nKtI`ko692>t8etwMeiJSxI>!sEkhJ^S1Q=kB%f zZ-XPSiT^3M1N~NAz5#fbkpC4P|AMWLv~ko2Z2V6ayi0H%obd~rUKyMgvH7Wn%Y?iM z?t)Ezy5LsyO@6)x?-TOv@Z?|G{QMN|fKC1W4(=EHChQxq@t=4i=?nfiyale(<)028 zf=ztoaNdiSm%&lkn32VQ1BL;L$1 zRQRcc*W<-c-7{21m2I_%omPJXT0}!dcWVD0q0NY^ydE);la0T_zU5d5xai)jFQ9V z_eQUTC)ZeicLUsYcAJ-Ri|ycFJdtj%93d@#D!TfbZj*B#g9+1E0- z7dG{~7T(;9|IqFI1$acrzX2DeS^xVGT>1~Y9{(X+A>==S1A?D}+Xept&KBWE;2t3# zcQW}CJOS<#?1%dW&xA+cwfQN72ZVePJS;c@j|g4^ryXz0*8}eo@qG)<5b{UiiGugQ zxq^q_4iSC??iGB(Da>!*v-uql?>y12cPGFl#AoiaWW(D|Zue#T-1*w&@Rkp?dHwkY zcwD}<*Lt{4#Mc66pU~#((ety7aDRH6x8M48_`tbso*?<%{WIZF03SG$`queh4iC3b zUah|#-Y4q&OK{(cPH+BuzY34s_`e-+nyCL@z(ufWuUD16sQ=?WO#c+WpLYtJH_^uT zDR@hy)B7Hv5H1t)&%$+ZrLLcw;a!5i3}>Ee?-TwA9@pCG?N>hocYV^@+ppoY^EuDZ z^UuK$X&sV^ce!k8- z->ri47q@xmw;^~Sr_Gmlf~(&Gk1KBTWl*8&yrTo|5ccy$c&p%h;T>>>&d-DJ9wFZe zZx{W454=yvUxp6|ejPp}n8)dT=@(ji{V3cj;=2HzAmlUQ$%3ze^947+rGhuWi$r|) z!Bs;31Y9rpWw=%FKj1FGANmOPDB?Q{-Yn!f@HWB4@J_+k!g~Zaz~e=HYvFxD{$==p z;BD|B!9Ri1FS7MF2#<*I=rwqPkRSI^>QC_LaK7MdxKwZnJSgI;hO2~pC0sA~3vjF8 zt#Fs%$KahJzMsLHh5TiBo8UK;zTjg&M*Rss4c;Q+I|tq;-#!?Y_KmZvR*b*NOPM;C8|Hz(Wt({e#EgZQKWG)BR;HJivMAc+J0t_kP&&pW*Qp zj3?S(z6l@X_qmMzAvpcwHeZ3x&xbN;pIMAY+P_SMTZ`I!i*)=2@IH95=Ih}Du-Z6%(LNl!6k66mcIJU&g-`_cO6z#VX(=3ID7Tc@{PngzG5>Ga;qTL@>Z>-6%w z2rdn_dG^x`w|?2$^ICX2@HDR75pX~5PbZ{DWBle;W|;C zPr7G^dBuhAKnQY{Q`I|JW0#1flD5< z_7H+ck(>H%fqh@M>%-3}{d??u_AWRe+UHwvz2G0fU2wZj?@4(4H|%_R0PcpjX!(A4 z^EYjNM&WI+soxXMVm>A0AAxtnCco#x6CdyN_T%#5u2$4HgeY(?Y zk2~POoo(KH_W}6eUx;7pKLKz0uTIbZ{tDjnN}F$&&i|`$l=d{`Jtm9xC%s-RKNB8D z`(WBYx>_upf?9pi(p zuhsD0p*HV(n+|vp_1*pfH~t6U&9s;CSC7Cui7!jX|13O-_zVxj^}ok|>iCa2oB3Cb z9q&(uNB)7mo#MuS2Hf(&HNG~@li;l9un%3{&nO;Xe@x4-hSRg`eeD38J#mfaub07x zV2bPbqZYW}&z<~+m&@I7#RXP=H(WQ_@`G>`4(RaTg9qU{&5y#_+_zKxRlSe$3|u7m zC3u41Kf{%RN8ozF$DYG@BzQbLPViZ9kKha8t%5IscM6^hZ=bQo8=tO+3ocvZjej9H zqrjH01#W?Jb^Uw}9;#a7+p62|PPm8PKTSW*t-pKVZAELm`>&6{nZ;{-{d&H(2QHYq zhHtc8{UH^e-yf;e_4hVB0-OGH;za6ifgK-Dha+X=N2h-gyl3GW?|ZnJO25L+_pXMc zysyH0 z1DuCz{ui9F)XFo?#a=>uKcwa7!!66~`Tb|$ZSVn|pK^H9a@tGt61YCR#`}G%RdD-F zR(=Ou*<|JS!jWd$Ux$AL-n+uq*VFKR*v!XYQ2Hm*KXm*23C?X<m2ldvHvCdJ z_dnNo?}Oh0x9_m^{}nhO`1^4FPuF}*xz27hRz$E%> zb-UNUJ_7fM_;cZ?;05rmyZD|%+eZ!D{Z;Bi_tyyA&iy6L<1(yka9`3uF{-ei}eQ?1Gwmsfd;bF61=R2S9AGGHUr^4yIwmr^ov*G@4 zt??D;_PPR2`!@Qzd;z%igYCY(T7C<>h~Jww{%8ZdX)Eok^}h|bi0>U9gAeh2O}7sJ z61?w$HQsz-1m63gZQm0=g+6S?i?iXtHvEeYf3cFo2Q*&|`+mmwr~Pjoy#FB^-%2>6 zWt}%)*#MV)*M47kAKV6;`gjcP61*4QB=}``{B~RaZ^4;@KX?J-Exb$T@8j^0kWYvA z3tk9!FJJ4;w`$>$N7i`z-K*dtVSjhQy|D2o55e06KLz&*ei_~=_#be;;FBiPKLnoz z4+zeM_X)ln9)?YSzaBm$#H8 z_;{`bPQM6ygY&ig9C$aJt+@am6?{EB>Bm+cfrlQq@pZ!KyR1LBN9hZG6fS~I zexHX+VbkA!2lv4hI{i1`aZgzN4}Kc^hfR4t1?R)YKa{}fKe6F&gcrdky|r*1+^YS> zW_b8XG2X&OPucNqFPy)7jraSAufp|j(cg7=UpD^q)Asj}Ccq=l*zv{>k9*dpUjmO8 z{8>0ta1)#*xD%cv_#QZ0@FQ@Z;OF52!GD2E1Rvwa{|G(GjxBP1osl2QakI%OW@Hz*!|v0c+-E|@<-wN>+SvJ4e;)@YxxZ=H~eOJ^L_R_ zY#SW-mgOJAlfS*r^Orw^``)ngg?(`8LEGN1z$3HQdj9Qgc)=UnrmnBA!<(3&Y}fU*4c_ziTJL_w z({SMFwfv^GUJt?tOV)Y&H}Amv=UP5>I_1BV@H)Op@Th2yOX2J@)^g{;jqeJ@*IWO2 zJzOvLtLxy+7u)u^6&`_2``!hoQC`E}g);>2hWEp!K3|4QNiR$1@9*&FwbtG~kVpR@ z{cbIv0Pja`;=c&qUSjvx^Wn*7+4!%4^94uXBEesPO9g)it`Ph@TqXE*xK;3}GwA<< z{cxAyGPp-@9lTla8n_oWa%Jy#9x9C0wG*|BTY-d}Na5SK&iz)_Ui+$6QSK z8TLHsKi~@N)6}o(wEmA%onI{Gyl8@E`v>bT@IHlxAt&7 z+=aYEhhGH`!2O!P0w0{R)>}{g0Pe|M>+L`6g?HrH``E9;Rrt&8+W(BgBgjqqr+k{6n_p`{0T6f0O_3!`p>F*bVO%JOu9*JPHp9 zKJ_xn3!C~qA5PD=`7eSq1P9>>uo+L+!*ww3)ES?8;d*$Y=AXdbBK+^+O|a=NZ^0Ar zPsSe|Ux2?w-m1fA!QG$1f9d+og(nAX|0;pA3f6kxuhzmn@Td;o3U|%4{`;%&t{ZH6 z-+}99+41WccqiPe!~X?dRA}YL&Ln@ZX}>HuzsSljfw#g@9sVkKLh)K}Jragnj=9&V zZ?#|B3YW~W?cD{B7xKH|Rw4f$JaVE9-w$s`UZm4|UdaXTgEytM`^xnA^ah+)V$1(e zczwFn$Zhy{(CzRU!7sI)NE8%gZw@xVAFr@hogIKdprj37xHJ}2@9NI#5xyfG^d`ReD1Wzin@_e`eHt}5p*9&0&$^UqXHb zpAF{=o(gxt8M?k_!Ts0U@%{#Q1g_BXM!2NPmj82b6gKmXufwf^AA#FpGrsPIdj$U$ z-Y?4cI@~M#-7$0NFJip>2)teJ`S2pfV-x>$xc)}gS319!!> z48j$HUxCMe(2i$s!#!fYal#d>kA?o}aO)~NAIgTaZnpEY5_mJ5r`!8lctG$nIAir% z?|ilu?w~%+dF&li-TNxXt>HzrzQG{KQh~ zx60~&93Fnxp66Ty``+vH=9>lZDDrVSy#;U!T(9#}4QIn<{#_4e!N≧Ih$9Z$8}% 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