From 0263ae83383796f0a64da3b0b47527663e161933 Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Tue, 15 Apr 2025 14:57:10 +0200 Subject: [PATCH 01/31] first changes --- cpp/models/abm/testing_strategy.cpp | 96 +++-------------------------- cpp/models/abm/testing_strategy.h | 74 ++++++---------------- 2 files changed, 29 insertions(+), 141 deletions(-) diff --git a/cpp/models/abm/testing_strategy.cpp b/cpp/models/abm/testing_strategy.cpp index 1a91d9aa47..b3edbdf330 100644 --- a/cpp/models/abm/testing_strategy.cpp +++ b/cpp/models/abm/testing_strategy.cpp @@ -43,26 +43,6 @@ bool TestingCriteria::operator==(const TestingCriteria& other) const return m_ages == other.m_ages && m_infection_states == other.m_infection_states; } -void TestingCriteria::add_age_group(const AgeGroup age_group) -{ - m_ages.set(static_cast(age_group), true); -} - -void TestingCriteria::remove_age_group(const AgeGroup age_group) -{ - m_ages.set(static_cast(age_group), false); -} - -void TestingCriteria::add_infection_state(const InfectionState infection_state) -{ - m_infection_states.set(static_cast(infection_state), true); -} - -void TestingCriteria::remove_infection_state(const InfectionState infection_state) -{ - m_infection_states.set(static_cast(infection_state), false); -} - bool TestingCriteria::evaluate(const Person& p, TimePoint t) const { // An empty vector of ages or none bitset of #InfectionStates% means that no condition on the corresponding property is set. @@ -91,23 +71,18 @@ bool TestingScheme::operator==(const TestingScheme& other) const //To be adjusted and also TestType should be static. } -bool TestingScheme::is_active() const +bool TestingScheme::is_active(TimePoint t) const { - return m_is_active; + return (m_start_date <= t && t < m_end_date); } -void TestingScheme::update_activity_status(TimePoint t) -{ - m_is_active = (m_start_date <= t && t <= m_end_date); -} - -bool TestingScheme::run_scheme(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const +void TestingScheme::run_scheme(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const { auto test_result = person.get_test_result(m_test_parameters.type); // If the agent has a test result valid until now, use the result directly if ((test_result.time_of_testing > TimePoint(std::numeric_limits::min())) && (test_result.time_of_testing + m_validity_period >= t)) { - return !test_result.result; + return } // Otherwise, the time_of_testing in the past (i.e. the agent has already performed it). if (m_testing_criteria.evaluate(person, t - m_test_parameters.required_time)) { @@ -115,10 +90,8 @@ bool TestingScheme::run_scheme(PersonalRandomNumberGenerator& rng, Person& perso if (random < m_probability) { bool result = person.get_tested(rng, t - m_test_parameters.required_time, m_test_parameters); person.add_test_result(t, m_test_parameters.type, result); - return !result; } } - return true; } TestingStrategy::TestingStrategy(const std::vector& location_to_schemes_map) @@ -146,67 +119,16 @@ void TestingStrategy::add_testing_scheme(const LocationType& loc_type, const Loc } } -void TestingStrategy::remove_testing_scheme(const LocationType& loc_type, const LocationId& loc_id, - const TestingScheme& scheme) -{ - auto iter_schemes = - std::find_if(m_location_to_schemes_map.begin(), m_location_to_schemes_map.end(), [&](const auto& p) { - return p.type == loc_type && p.id == loc_id; - }); - if (iter_schemes != m_location_to_schemes_map.end()) { - //remove the scheme from the list - auto& schemes_vector = iter_schemes->schemes; - auto last = std::remove(schemes_vector.begin(), schemes_vector.end(), scheme); - schemes_vector.erase(last, schemes_vector.end()); - //delete the list of schemes for this location if no schemes left - if (schemes_vector.empty()) { - m_location_to_schemes_map.erase(iter_schemes); - } - } -} - -void TestingStrategy::update_activity_status(TimePoint t) -{ - for (auto& [_type, _id, testing_schemes] : m_location_to_schemes_map) { - for (auto& scheme : testing_schemes) { - scheme.update_activity_status(t); - } - } -} - -bool TestingStrategy::run_strategy(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, +void TestingStrategy::run_strategy(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t) { - // A Person is always allowed to go home and this is never called if a person is not discharged from a hospital or ICU. - if (location.get_type() == mio::abm::LocationType::Home) { - return true; - } - - // If the Person does not comply to Testing where there is a testing scheme at the target location, it is not allowed to enter. - if (!person.is_compliant(rng, InterventionType::Testing)) { - return false; + if (m_testing_schemes_per_location.at(location.get_id().get()).empty()) { + return; } - // Lookup schemes for this specific location as well as the location type - // Lookup in std::vector instead of std::map should be much faster unless for large numbers of schemes - for (auto key : {std::make_pair(location.get_type(), location.get_id()), - std::make_pair(location.get_type(), LocationId::invalid_id())}) { - auto iter_schemes = - std::find_if(m_location_to_schemes_map.begin(), m_location_to_schemes_map.end(), [&](const auto& p) { - return p.type == key.first && p.id == key.second; - }); - if (iter_schemes != m_location_to_schemes_map.end()) { - // Apply all testing schemes that are found - auto& schemes = iter_schemes->schemes; - // Whether the Person is allowed to enter or not depends on the test result(s). - if (!std::all_of(schemes.begin(), schemes.end(), [&rng, &person, t](TestingScheme& ts) { - return !ts.is_active() || ts.run_scheme(rng, person, t); - })) { - return false; - } - } + for (auto&& scheme : m_testing_schemes_per_location.at(location.get_id().get())) { + scheme.run_scheme(rng, person, t) } - return true; } } // namespace abm diff --git a/cpp/models/abm/testing_strategy.h b/cpp/models/abm/testing_strategy.h index eb9b59670b..8b5d85446f 100644 --- a/cpp/models/abm/testing_strategy.h +++ b/cpp/models/abm/testing_strategy.h @@ -62,31 +62,6 @@ class TestingCriteria */ bool operator==(const TestingCriteria& other) const; - /** - * @brief Add an AgeGroup to the set of AgeGroup%s that are either allowed or required to be tested. - * @param[in] age_group AgeGroup to be added. - */ - void add_age_group(const AgeGroup age_group); - - /** - * @brief Remove an AgeGroup from the set of AgeGroup%s that are either allowed or required to be tested. - * @param[in] age_group AgeGroup to be removed. - */ - void remove_age_group(const AgeGroup age_group); - - /** - * @brief Add an #InfectionState to the set of #InfectionState%s that are either allowed or required to be tested. - * @param[in] infection_state #InfectionState to be added. - */ - void add_infection_state(const InfectionState infection_state); - - /** - * @brief Remove an #InfectionState from the set of #InfectionState%s that are either allowed or required to be - * tested. - * @param[in] infection_state #InfectionState to be removed. - */ - void remove_infection_state(const InfectionState infection_state); - /** * @brief Check if a Person and a Location meet all the required properties to get tested. * @param[in] p Person to be checked. @@ -133,22 +108,34 @@ class TestingScheme * @brief Gets the activity status of the scheme. * @return Whether the TestingScheme is currently active. */ - bool is_active() const; + bool is_active(TimePoint t) const; /** - * @brief Checks if the scheme is active at a given time and updates activity status. - * @param[in] t TimePoint to be updated at. + * @brief Gets the start date of the scheme. + * @return The start date of the scheme. */ - void update_activity_status(TimePoint t); + mio::abm::TimePoint get_start_date() const + { + return m_start_date; + } + + /** + * @brief Gets the end date of the scheme. + * @return The end date of the scheme. + */ + mio::abm::TimePoint get_end_date() const + { + return m_end_date; + } + /** * @brief Runs the TestingScheme and potentially tests a Person. * @param[inout] rng PersonalRandomNumberGenerator of the Person being tested. * @param[in] person Person to check. * @param[in] t TimePoint when to run the scheme. - * @return If the person is allowed to enter the Location by the scheme. */ - bool run_scheme(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const; + void run_scheme(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const; /// This method is used by the default serialization feature. auto default_serialize() @@ -160,7 +147,6 @@ class TestingScheme .add("end_date", m_end_date) .add("test_params", m_test_parameters) .add("probability", m_probability) - .add("is_active", m_is_active); } private: @@ -173,7 +159,6 @@ class TestingScheme TimePoint m_end_date; ///< Ending date of the scheme. TestParameters m_test_parameters; ///< Parameters of the test. ScalarType m_probability; ///< Probability of performing the test. - bool m_is_active = false; ///< Whether the scheme is currently active. }; /** @@ -225,25 +210,6 @@ class TestingStrategy add_testing_scheme(loc_type, LocationId::invalid_id(), scheme); } - /** - * @brief Remove a TestingScheme from the set of schemes that are checked for testing at a certain Location. - * @param[in] loc_type LocationType key for TestingScheme to be remove. - * @param[in] loc_id LocationId key for TestingScheme to be remove. - * @param[in] scheme TestingScheme to be removed. - */ - void remove_testing_scheme(const LocationType& loc_type, const LocationId& loc_id, const TestingScheme& scheme); - - /** - * @brief Remove a TestingScheme from the set of schemes that are checked for testing at a certain Location. - * A TestingScheme with loc_id of value LocationId::invalid_id() is used for all Locations of the given type. - * @param[in] loc_type LocationType key for TestingScheme to be remove. - * @param[in] scheme TestingScheme to be removed. - */ - void remove_testing_scheme(const LocationType& loc_type, const TestingScheme& scheme) - { - remove_testing_scheme(loc_type, LocationId::invalid_id(), scheme); - } - /** * @brief Checks if the given TimePoint is within the interval of start and end date of each TestingScheme and then * changes the activity status for each TestingScheme accordingly. @@ -257,9 +223,8 @@ class TestingStrategy * @param[in] person Person to check. * @param[in] location Location to check. * @param[in] t TimePoint when to run the strategy. - * @return If the Person is allowed to enter the Location. */ - bool run_strategy(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t); + void run_strategy(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t); /// This method is used by the default serialization feature. auto default_serialize() @@ -269,6 +234,7 @@ class TestingStrategy private: std::vector m_location_to_schemes_map; ///< Set of schemes that are checked for testing. + std::vector m_testing_scheme_scheduler; }; } // namespace abm From bdedb1ac59e95bcd72e1606a4aa41fc83471a550 Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Wed, 14 May 2025 15:59:41 +0200 Subject: [PATCH 02/31] secando changes --- cpp/benchmarks/abm.cpp | 35 ++++++++++++++++++------------- cpp/models/abm/testing_strategy.h | 9 +------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/cpp/benchmarks/abm.cpp b/cpp/benchmarks/abm.cpp index a9a179ae1d..0883bf0160 100644 --- a/cpp/benchmarks/abm.cpp +++ b/cpp/benchmarks/abm.cpp @@ -111,22 +111,29 @@ mio::abm::Simulation<> make_simulation(size_t num_persons, std::initializer_list return mio::abm::TestingCriteria(random_ages, random_states); }; - model.get_testing_strategy().add_testing_scheme( - mio::abm::LocationType::School, - mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), - mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - model.get_testing_strategy().add_testing_scheme( - mio::abm::LocationType::Work, - mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), - mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - model.get_testing_strategy().add_testing_scheme( - mio::abm::LocationType::Home, - mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), - mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - model.get_testing_strategy().add_testing_scheme( - mio::abm::LocationType::SocialEvent, + // model.get_testing_strategy().add_testing_scheme( + // mio::abm::LocationType::School, + // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), + // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); + // model.get_testing_strategy().add_testing_scheme( + // mio::abm::LocationType::Work, + // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), + // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); + // model.get_testing_strategy().add_testing_scheme( + // mio::abm::LocationType::Home, + // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), + // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); + // model.get_testing_strategy().add_testing_scheme( + // mio::abm::LocationType::SocialEvent, + // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), + // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); + + for(auto& loc : model.get_locations()) { + model.get_testing_strategy().add_testing_scheme( + loc.get_type(),loc.get_id(), mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); + } return mio::abm::Simulation(mio::abm::TimePoint(0), std::move(model)); } diff --git a/cpp/models/abm/testing_strategy.h b/cpp/models/abm/testing_strategy.h index 8b5d85446f..27ceedc20a 100644 --- a/cpp/models/abm/testing_strategy.h +++ b/cpp/models/abm/testing_strategy.h @@ -146,7 +146,7 @@ class TestingScheme .add("start_date", m_start_date) .add("end_date", m_end_date) .add("test_params", m_test_parameters) - .add("probability", m_probability) + .add("probability", m_probability); } private: @@ -210,13 +210,6 @@ class TestingStrategy add_testing_scheme(loc_type, LocationId::invalid_id(), scheme); } - /** - * @brief Checks if the given TimePoint is within the interval of start and end date of each TestingScheme and then - * changes the activity status for each TestingScheme accordingly. - * @param t TimePoint to check the activity status of each TestingScheme. - */ - void update_activity_status(const TimePoint t); - /** * @brief Runs the TestingStrategy and potentially tests a Person. * @param[inout] rng PersonalRandomNumberGenerator of the Person being tested. From 08a1b683ec098698a80f400f8fefadc9761084b2 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Thu, 15 May 2025 22:23:18 +0200 Subject: [PATCH 03/31] Refactor testing strategy methods for clarity and functionality --- cpp/benchmarks/abm.cpp | 4 +- cpp/models/abm/model.cpp | 9 ++-- cpp/models/abm/testing_strategy.cpp | 70 ++++++++++++++++++----------- cpp/models/abm/testing_strategy.h | 48 +++++++++++--------- 4 files changed, 77 insertions(+), 54 deletions(-) diff --git a/cpp/benchmarks/abm.cpp b/cpp/benchmarks/abm.cpp index 0883bf0160..a48e1f1364 100644 --- a/cpp/benchmarks/abm.cpp +++ b/cpp/benchmarks/abm.cpp @@ -129,8 +129,8 @@ mio::abm::Simulation<> make_simulation(size_t num_persons, std::initializer_list // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); for(auto& loc : model.get_locations()) { - model.get_testing_strategy().add_testing_scheme( - loc.get_type(),loc.get_id(), + model.get_testing_strategy().add_testing_scheme_location_id( + loc.get_id(), mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); } diff --git a/cpp/models/abm/model.cpp b/cpp/models/abm/model.cpp index fead965e23..a1935a4442 100755 --- a/cpp/models/abm/model.cpp +++ b/cpp/models/abm/model.cpp @@ -122,10 +122,11 @@ void Model::perform_mobility(TimePoint t, TimeSpan dt) get_number_persons(target_location.get_id()) >= target_location.get_capacity().persons) { return false; } - // the Person cannot move if the performed TestingStrategy is positive - if (!m_testing_strategy.run_strategy(personal_rng, person, target_location, t)) { + // The person cannot move if he has a positive test result + if(!m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)){ return false; } + // update worn mask to target location's requirements if (target_location.is_mask_required()) { // if the current MaskProtection level is lower than required, the Person changes mask @@ -189,7 +190,7 @@ void Model::perform_mobility(TimePoint t, TimeSpan dt) continue; } // skip the trip if the performed TestingStrategy is positive - if (!m_testing_strategy.run_strategy(personal_rng, person, target_location, t)) { + if (m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)) { continue; } // all requirements are met, move to target location @@ -295,8 +296,6 @@ void Model::compute_exposure_caches(TimePoint t, TimeSpan dt) void Model::begin_step(TimePoint t, TimeSpan dt) { - m_testing_strategy.update_activity_status(t); - if (!m_is_local_population_cache_valid) { build_compute_local_population_cache(); m_is_local_population_cache_valid = true; diff --git a/cpp/models/abm/testing_strategy.cpp b/cpp/models/abm/testing_strategy.cpp index b3edbdf330..f49dfb17fd 100644 --- a/cpp/models/abm/testing_strategy.cpp +++ b/cpp/models/abm/testing_strategy.cpp @@ -76,13 +76,16 @@ bool TestingScheme::is_active(TimePoint t) const return (m_start_date <= t && t < m_end_date); } -void TestingScheme::run_scheme(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const +bool TestingScheme::run_scheme_and_check_if_test_positive(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const { + if(!is_active(t)) { // If the scheme is not active, do nothing + return false; + } auto test_result = person.get_test_result(m_test_parameters.type); // If the agent has a test result valid until now, use the result directly if ((test_result.time_of_testing > TimePoint(std::numeric_limits::min())) && (test_result.time_of_testing + m_validity_period >= t)) { - return + return test_result.result; // If the test is positive, the entry is not allowed, and vice versa } // Otherwise, the time_of_testing in the past (i.e. the agent has already performed it). if (m_testing_criteria.evaluate(person, t - m_test_parameters.required_time)) { @@ -90,45 +93,58 @@ void TestingScheme::run_scheme(PersonalRandomNumberGenerator& rng, Person& perso if (random < m_probability) { bool result = person.get_tested(rng, t - m_test_parameters.required_time, m_test_parameters); person.add_test_result(t, m_test_parameters.type, result); + return result; // If the test is positive, the entry is not allowed, and vice versa } } + // If the test is not performed, the entry is allowed + return false; } -TestingStrategy::TestingStrategy(const std::vector& location_to_schemes_map) - : m_location_to_schemes_map(location_to_schemes_map.begin(), location_to_schemes_map.end()) +TestingStrategy::TestingStrategy(const std::vector& location_to_schemes_id, + const std::vector& location_to_schemes_type) + : m_testing_schemes_at_location_id(location_to_schemes_id.begin(), location_to_schemes_id.end()) + , m_testing_schemes_at_location_type(location_to_schemes_type.begin(), location_to_schemes_type.end()) { } -void TestingStrategy::add_testing_scheme(const LocationType& loc_type, const LocationId& loc_id, - const TestingScheme& scheme) + +void TestingStrategy::add_testing_scheme_location_id(const LocationId& loc_id, const TestingScheme& scheme) { - auto iter_schemes = - std::find_if(m_location_to_schemes_map.begin(), m_location_to_schemes_map.end(), [&](const auto& p) { - return p.type == loc_type && p.id == loc_id; - }); - if (iter_schemes == m_location_to_schemes_map.end()) { - //no schemes for this location yet, add a new list with one scheme - m_location_to_schemes_map.push_back({loc_type, loc_id, std::vector(1, scheme)}); - } - else { - //add scheme to existing vector if the scheme doesn't exist yet - auto& schemes = iter_schemes->schemes; - if (std::find(schemes.begin(), schemes.end(), scheme) == schemes.end()) { - schemes.push_back(scheme); - } - } + m_testing_schemes_at_location_id[loc_id.get()].schemes.push_back(scheme); } -void TestingStrategy::run_strategy(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, - TimePoint t) +void TestingStrategy::add_testing_scheme_location_type(const LocationType& loc_type, const TestingScheme& scheme) { - if (m_testing_schemes_per_location.at(location.get_id().get()).empty()) { - return; + m_testing_schemes_at_location_type[(size_t)loc_type].schemes.push_back(scheme); +} + + +bool TestingStrategy::run_strategy_and_check_if_entry_allowed(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t) +{ + // Early return if no scheme defined for this location or type + if (m_testing_schemes_at_location_id[location.get_id().get()].schemes.empty() && + m_testing_schemes_at_location_type[(size_t)location.get_type()].schemes.empty()) { + return true; + } + // Early return if the person is not compliant with the testing intervention + if (!person.is_compliant(rng, InterventionType::Testing)) { + return false; } - for (auto&& scheme : m_testing_schemes_per_location.at(location.get_id().get())) { - scheme.run_scheme(rng, person, t) + bool test_positive = false; + // Check schemes for specific location id + for (const auto& scheme : m_testing_schemes_at_location_id.at(location.get_id().get()).schemes) { + if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { + test_positive = true; // Deny entry immediately + } + } + // Check schemes for location type + for (const auto& scheme : m_testing_schemes_at_location_type.at((size_t)location.get_type()).schemes) { + if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { + test_positive = true; // Deny entry immediately + } } + return !test_positive; // Allow entry if no positive test } } // namespace abm diff --git a/cpp/models/abm/testing_strategy.h b/cpp/models/abm/testing_strategy.h index 27ceedc20a..51504c3650 100644 --- a/cpp/models/abm/testing_strategy.h +++ b/cpp/models/abm/testing_strategy.h @@ -135,7 +135,7 @@ class TestingScheme * @param[in] person Person to check. * @param[in] t TimePoint when to run the scheme. */ - void run_scheme(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const; + bool run_scheme_and_check_if_test_positive(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const; /// This method is used by the default serialization feature. auto default_serialize() @@ -172,14 +172,12 @@ class TestingStrategy * A LocalStrategy with id of value LocationId::invalid_id() is used for all Locations with LocationType type. */ struct LocalStrategy { - LocationType type; - LocationId id; std::vector schemes; /// This method is used by the default serialization feature. auto default_serialize() { - return Members("LocalStrategy").add("type", type).add("id", id).add("schemes", schemes); + return Members("LocalStrategy").add("schemes", schemes); } }; @@ -188,46 +186,56 @@ class TestingStrategy * @param[in] testing_schemes Vector of TestingSchemes that are checked for testing. */ TestingStrategy() = default; - explicit TestingStrategy(const std::vector& location_to_schemes_map); + explicit TestingStrategy(const std::vector& location_to_schemes_id, + const std::vector& location_to_schemes_type); /** - * @brief Add a TestingScheme to the set of schemes that are checked for testing at a certain Location. - * A TestingScheme with loc_id of value LocationId::invalid_id() is used for all Locations of the given type. - * @param[in] loc_type LocationType key for TestingScheme to be remove. + * @brief Add a TestingScheme to the set of schemes that are checked for testing at a certain Location for a specific id. * @param[in] loc_id LocationId key for TestingScheme to be added. * @param[in] scheme TestingScheme to be added. */ - void add_testing_scheme(const LocationType& loc_type, const LocationId& loc_id, const TestingScheme& scheme); + void add_testing_scheme_location_id(const LocationId& loc_id, + const TestingScheme& scheme); + /** + * @brief Add a TestingScheme to the set of schemes that are checked for testing at a certain Location. + * @param[in] loc_type LocationType key for TestingScheme to add. + * @param[in] scheme TestingScheme to be added. + */ + void add_testing_scheme_location_type(const LocationType& loc_type, + const TestingScheme& scheme); /** - * @brief Add a TestingScheme to the set of schemes that are checked for testing at a certain LocationType. - * A TestingScheme with loc_id of value LocationId::invalid_id() is used for all Locations of the given type. - * @param[in] loc_type LocationId key for TestingScheme to be added. + * @brief Add a TestingScheme to the set of schemes that are checked for testing at a certain Location. + * @param[in] loc_type Vector of LocationType key for TestingScheme to add. * @param[in] scheme TestingScheme to be added. */ - void add_testing_scheme(const LocationType& loc_type, const TestingScheme& scheme) - { - add_testing_scheme(loc_type, LocationId::invalid_id(), scheme); + void add_testing_scheme_location_type(const std::vector& loc_type, + const TestingScheme& scheme){ + for (auto& type : loc_type) { + add_testing_scheme_location_type(type, scheme); + } } /** - * @brief Runs the TestingStrategy and potentially tests a Person. + * @brief Runs the TestingStrategy and potentially tests a Person when entering. + * @details The TestingStrategy runs the TestingSchemes in the order they are added but first IDs and then types. + * It also decides if one can enter, if there are no positive tests. * @param[inout] rng PersonalRandomNumberGenerator of the Person being tested. * @param[in] person Person to check. * @param[in] location Location to check. * @param[in] t TimePoint when to run the strategy. */ - void run_strategy(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t); + bool run_strategy_and_check_if_entry_allowed(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t); /// This method is used by the default serialization feature. auto default_serialize() { - return Members("TestingStrategy").add("schemes", m_location_to_schemes_map); + return Members("TestingStrategy").add("schemes_id", m_testing_schemes_at_location_id).add("schemes_type", m_testing_schemes_at_location_type); } private: - std::vector m_location_to_schemes_map; ///< Set of schemes that are checked for testing. - std::vector m_testing_scheme_scheduler; + std::vector m_testing_schemes_at_location_id; ///< Set of schemes that are checked for testing in specific locations. + std::vector m_testing_schemes_at_location_type; }; } // namespace abm From 62132645981ed20965772210024c245c8795e215 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Thu, 15 May 2025 22:57:09 +0200 Subject: [PATCH 04/31] Enhance TestingStrategy with compliance checks and improve documentation for clarity --- cpp/models/abm/testing_strategy.cpp | 28 +++++++++++++++++++--------- cpp/models/abm/testing_strategy.h | 6 ++++-- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/cpp/models/abm/testing_strategy.cpp b/cpp/models/abm/testing_strategy.cpp index f49dfb17fd..32fc144075 100644 --- a/cpp/models/abm/testing_strategy.cpp +++ b/cpp/models/abm/testing_strategy.cpp @@ -81,6 +81,9 @@ bool TestingScheme::run_scheme_and_check_if_test_positive(PersonalRandomNumberGe if(!is_active(t)) { // If the scheme is not active, do nothing return false; } + if(!person.is_compliant(rng, InterventionType::Testing)) { // If the person is not compliant with the testing intervention + return true; // Assume positive test result + } auto test_result = person.get_test_result(m_test_parameters.type); // If the agent has a test result valid until now, use the result directly if ((test_result.time_of_testing > TimePoint(std::numeric_limits::min())) && @@ -110,11 +113,17 @@ TestingStrategy::TestingStrategy(const std::vector& location_to_s void TestingStrategy::add_testing_scheme_location_id(const LocationId& loc_id, const TestingScheme& scheme) { + if(loc_id.get() >= m_testing_schemes_at_location_id.size()) { + m_testing_schemes_at_location_id.resize(loc_id.get() + 1); + } m_testing_schemes_at_location_id[loc_id.get()].schemes.push_back(scheme); } void TestingStrategy::add_testing_scheme_location_type(const LocationType& loc_type, const TestingScheme& scheme) { + if((size_t)loc_type >= m_testing_schemes_at_location_type.size()) { + m_testing_schemes_at_location_type.resize((size_t)loc_type + 1); + } m_testing_schemes_at_location_type[(size_t)loc_type].schemes.push_back(scheme); } @@ -122,29 +131,30 @@ void TestingStrategy::add_testing_scheme_location_type(const LocationType& loc_t bool TestingStrategy::run_strategy_and_check_if_entry_allowed(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t) { // Early return if no scheme defined for this location or type + auto loc_id = location.get_id().get(); + if (loc_id >= m_testing_schemes_at_location_id.size() && (size_t)location.get_type() >= m_testing_schemes_at_location_type.size()) { + return true; // No scheme defined for this location or type, since the vector is not resized + } if (m_testing_schemes_at_location_id[location.get_id().get()].schemes.empty() && m_testing_schemes_at_location_type[(size_t)location.get_type()].schemes.empty()) { return true; } - // Early return if the person is not compliant with the testing intervention - if (!person.is_compliant(rng, InterventionType::Testing)) { - return false; - } - - bool test_positive = false; + + + bool entry_allowed = true; // Check schemes for specific location id for (const auto& scheme : m_testing_schemes_at_location_id.at(location.get_id().get()).schemes) { if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { - test_positive = true; // Deny entry immediately + entry_allowed = false; // Deny entry } } // Check schemes for location type for (const auto& scheme : m_testing_schemes_at_location_type.at((size_t)location.get_type()).schemes) { if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { - test_positive = true; // Deny entry immediately + entry_allowed = false; // Deny entry } } - return !test_positive; // Allow entry if no positive test + return location.get_type() != LocationType::Home ? entry_allowed : true; // Home is always allowed, else deny entry if test is positive or not compliant } } // namespace abm diff --git a/cpp/models/abm/testing_strategy.h b/cpp/models/abm/testing_strategy.h index 51504c3650..873e199ce1 100644 --- a/cpp/models/abm/testing_strategy.h +++ b/cpp/models/abm/testing_strategy.h @@ -183,7 +183,9 @@ class TestingStrategy /** * @brief Create a TestingStrategy. - * @param[in] testing_schemes Vector of TestingSchemes that are checked for testing. + * @param[in] testing_schemes Vector of TestingSchemes that are checked for testing. + * The first vector is for LocationId and the second for LocationType. + * The index of the vector is the LocationId or LocationType and the value is the vektor of TestingScheme(s). */ TestingStrategy() = default; explicit TestingStrategy(const std::vector& location_to_schemes_id, @@ -219,7 +221,7 @@ class TestingStrategy /** * @brief Runs the TestingStrategy and potentially tests a Person when entering. * @details The TestingStrategy runs the TestingSchemes in the order they are added but first IDs and then types. - * It also decides if one can enter, if there are no positive tests. + * It also decides if one can enter, if there are no positive tests, home is alwaays allowed. * @param[inout] rng PersonalRandomNumberGenerator of the Person being tested. * @param[in] person Person to check. * @param[in] location Location to check. From 9f93d6ae2709d2c10002e9eeac6a9f93a3c49b72 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Thu, 15 May 2025 23:06:01 +0200 Subject: [PATCH 05/31] Add assertions and improve logic for testing scheme entry checks --- cpp/models/abm/testing_strategy.cpp | 38 ++++++++++++++++++----------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/cpp/models/abm/testing_strategy.cpp b/cpp/models/abm/testing_strategy.cpp index 32fc144075..a48109cd45 100644 --- a/cpp/models/abm/testing_strategy.cpp +++ b/cpp/models/abm/testing_strategy.cpp @@ -59,6 +59,7 @@ TestingScheme::TestingScheme(const TestingCriteria& testing_criteria, TimeSpan v , m_test_parameters(test_parameters) , m_probability(probability) { + assert(start_date <= end_date && "Start date must be before or equal to end date"); } bool TestingScheme::operator==(const TestingScheme& other) const @@ -132,29 +133,38 @@ bool TestingStrategy::run_strategy_and_check_if_entry_allowed(PersonalRandomNumb { // Early return if no scheme defined for this location or type auto loc_id = location.get_id().get(); - if (loc_id >= m_testing_schemes_at_location_id.size() && (size_t)location.get_type() >= m_testing_schemes_at_location_type.size()) { - return true; // No scheme defined for this location or type, since the vector is not resized - } - if (m_testing_schemes_at_location_id[location.get_id().get()].schemes.empty() && - m_testing_schemes_at_location_type[(size_t)location.get_type()].schemes.empty()) { - return true; + auto loc_type = static_cast(location.get_type()); + + bool has_id_schemes = loc_id < m_testing_schemes_at_location_id.size() && + !m_testing_schemes_at_location_id[loc_id].schemes.empty(); + + bool has_type_schemes = loc_type < m_testing_schemes_at_location_type.size() && + !m_testing_schemes_at_location_type[loc_type].schemes.empty(); + + if (!has_id_schemes && !has_type_schemes) { + return true; // No applicable schemes } - bool entry_allowed = true; // Check schemes for specific location id - for (const auto& scheme : m_testing_schemes_at_location_id.at(location.get_id().get()).schemes) { - if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { - entry_allowed = false; // Deny entry + if (has_id_schemes) { + for (const auto& scheme : m_testing_schemes_at_location_id[loc_id].schemes) { + if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { + entry_allowed = false; // Deny entry + } } } + // Check schemes for location type - for (const auto& scheme : m_testing_schemes_at_location_type.at((size_t)location.get_type()).schemes) { - if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { - entry_allowed = false; // Deny entry + if (has_type_schemes) { + for (const auto& scheme : m_testing_schemes_at_location_type[loc_type].schemes) { + if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { + entry_allowed = false; // Deny entry + } } } - return location.get_type() != LocationType::Home ? entry_allowed : true; // Home is always allowed, else deny entry if test is positive or not compliant + + return location.get_type() != LocationType::Home ? entry_allowed : true; } } // namespace abm From e43abdcab70c1277b3fadb128fbbc0a84a18f226 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Fri, 16 May 2025 00:47:11 +0200 Subject: [PATCH 06/31] Enable benchmarks and adjust infection percentage in simulation logic --- cpp/CMakeLists.txt | 2 +- cpp/benchmarks/abm.cpp | 16 ++++++++-------- cpp/models/abm/model.cpp | 3 ++- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 45a3d67773..020e12b251 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -6,7 +6,7 @@ option(MEMILIO_BUILD_TESTS "Build memilio unit tests." ON) option(MEMILIO_BUILD_EXAMPLES "Build memilio examples." ON) option(MEMILIO_BUILD_MODELS "Build memilio models." ON) option(MEMILIO_BUILD_SIMULATIONS "Build memilio simulations that were used for scientific articles." ON) -option(MEMILIO_BUILD_BENCHMARKS "Build memilio benchmarks with google benchmark." OFF) +option(MEMILIO_BUILD_BENCHMARKS "Build memilio benchmarks with google benchmark." ON) option(MEMILIO_USE_BUNDLED_SPDLOG "Use spdlog bundled with epi" ON) option(MEMILIO_USE_BUNDLED_EIGEN "Use eigen bundled with epi" ON) option(MEMILIO_USE_BUNDLED_BOOST "Use boost bundled with epi (only for epi-io)" ON) diff --git a/cpp/benchmarks/abm.cpp b/cpp/benchmarks/abm.cpp index a48e1f1364..a8940ab8d1 100644 --- a/cpp/benchmarks/abm.cpp +++ b/cpp/benchmarks/abm.cpp @@ -70,7 +70,7 @@ mio::abm::Simulation<> make_simulation(size_t num_persons, std::initializer_list for (auto& person : model.get_persons()) { auto prng = mio::abm::PersonalRandomNumberGenerator(person); //some % of people are infected, large enough to have some infection activity without everyone dying - auto pct_infected = 0.05; + auto pct_infected = 0.00; if (mio::UniformDistribution::get_instance()(prng, 0.0, 1.0) < pct_infected) { auto state = mio::abm::InfectionState( mio::UniformIntDistribution::get_instance()(prng, 1, int(mio::abm::InfectionState::Count) - 1)); @@ -128,12 +128,13 @@ mio::abm::Simulation<> make_simulation(size_t num_persons, std::initializer_list // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - for(auto& loc : model.get_locations()) { - model.get_testing_strategy().add_testing_scheme_location_id( - loc.get_id(), - mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), - mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - } + // for(auto& loc : model.get_locations()) { + // model.get_testing_strategy().add_testing_scheme_location_id( + // loc.get_id(), + // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0)+ mio::abm::days(0), + // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); + + // } return mio::abm::Simulation(mio::abm::TimePoint(0), std::move(model)); } @@ -181,6 +182,5 @@ void abm_benchmark(benchmark::State& state, size_t num_persons, std::initializer //or overwhelm everything, so we don't benchmark these. Results should be mostly transferrable. BENCHMARK_CAPTURE(abm_benchmark, abm_benchmark_50k, 50000, {14159265u, 35897932u})->Unit(benchmark::kMillisecond); BENCHMARK_CAPTURE(abm_benchmark, abm_benchmark_100k, 100000, {38462643u, 38327950u})->Unit(benchmark::kMillisecond); -BENCHMARK_CAPTURE(abm_benchmark, abm_benchmark_200k, 200000, {28841971u, 69399375u})->Unit(benchmark::kMillisecond); BENCHMARK_MAIN(); diff --git a/cpp/models/abm/model.cpp b/cpp/models/abm/model.cpp index a1935a4442..0b9fd10aa5 100755 --- a/cpp/models/abm/model.cpp +++ b/cpp/models/abm/model.cpp @@ -126,6 +126,7 @@ void Model::perform_mobility(TimePoint t, TimeSpan dt) if(!m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)){ return false; } + // update worn mask to target location's requirements if (target_location.is_mask_required()) { @@ -190,7 +191,7 @@ void Model::perform_mobility(TimePoint t, TimeSpan dt) continue; } // skip the trip if the performed TestingStrategy is positive - if (m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)) { + if (!m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)) { continue; } // all requirements are met, move to target location From c26ca838534f9141623d35aa6cd059e823045420 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Fri, 16 May 2025 01:00:17 +0200 Subject: [PATCH 07/31] Refactor testing strategy to consolidate testing schemes for multiple location types --- cpp/benchmarks/abm.cpp | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/cpp/benchmarks/abm.cpp b/cpp/benchmarks/abm.cpp index a8940ab8d1..86c0378568 100644 --- a/cpp/benchmarks/abm.cpp +++ b/cpp/benchmarks/abm.cpp @@ -111,30 +111,12 @@ mio::abm::Simulation<> make_simulation(size_t num_persons, std::initializer_list return mio::abm::TestingCriteria(random_ages, random_states); }; - // model.get_testing_strategy().add_testing_scheme( - // mio::abm::LocationType::School, - // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), - // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - // model.get_testing_strategy().add_testing_scheme( - // mio::abm::LocationType::Work, - // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), - // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - // model.get_testing_strategy().add_testing_scheme( - // mio::abm::LocationType::Home, - // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), - // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - // model.get_testing_strategy().add_testing_scheme( - // mio::abm::LocationType::SocialEvent, - // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), - // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - - // for(auto& loc : model.get_locations()) { - // model.get_testing_strategy().add_testing_scheme_location_id( - // loc.get_id(), - // mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0)+ mio::abm::days(0), - // mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - - // } + model.get_testing_strategy().add_testing_scheme_location_type( + {mio::abm::LocationType::School, mio::abm::LocationType::Work, + mio::abm::LocationType::SocialEvent, mio::abm::LocationType::BasicsShop}, + mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), + mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); + return mio::abm::Simulation(mio::abm::TimePoint(0), std::move(model)); } From 298211fdfcdcf54f26494f4a4c9b62e6ec72d23d Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Fri, 16 May 2025 01:18:48 +0200 Subject: [PATCH 08/31] Update CMake options, adjust infection percentage in simulation, and enhance testing strategy checks --- cpp/CMakeLists.txt | 2 +- cpp/benchmarks/abm.cpp | 5 +-- cpp/models/graph_abm/graph_abmodel.h | 4 +-- cpp/tests/test_abm_testing_strategy.cpp | 43 +++++++++---------------- 4 files changed, 22 insertions(+), 32 deletions(-) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 020e12b251..45a3d67773 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -6,7 +6,7 @@ option(MEMILIO_BUILD_TESTS "Build memilio unit tests." ON) option(MEMILIO_BUILD_EXAMPLES "Build memilio examples." ON) option(MEMILIO_BUILD_MODELS "Build memilio models." ON) option(MEMILIO_BUILD_SIMULATIONS "Build memilio simulations that were used for scientific articles." ON) -option(MEMILIO_BUILD_BENCHMARKS "Build memilio benchmarks with google benchmark." ON) +option(MEMILIO_BUILD_BENCHMARKS "Build memilio benchmarks with google benchmark." OFF) option(MEMILIO_USE_BUNDLED_SPDLOG "Use spdlog bundled with epi" ON) option(MEMILIO_USE_BUNDLED_EIGEN "Use eigen bundled with epi" ON) option(MEMILIO_USE_BUNDLED_BOOST "Use boost bundled with epi (only for epi-io)" ON) diff --git a/cpp/benchmarks/abm.cpp b/cpp/benchmarks/abm.cpp index 86c0378568..ca8eee94de 100644 --- a/cpp/benchmarks/abm.cpp +++ b/cpp/benchmarks/abm.cpp @@ -70,7 +70,7 @@ mio::abm::Simulation<> make_simulation(size_t num_persons, std::initializer_list for (auto& person : model.get_persons()) { auto prng = mio::abm::PersonalRandomNumberGenerator(person); //some % of people are infected, large enough to have some infection activity without everyone dying - auto pct_infected = 0.00; + auto pct_infected = 0.05; if (mio::UniformDistribution::get_instance()(prng, 0.0, 1.0) < pct_infected) { auto state = mio::abm::InfectionState( mio::UniformIntDistribution::get_instance()(prng, 1, int(mio::abm::InfectionState::Count) - 1)); @@ -113,7 +113,7 @@ mio::abm::Simulation<> make_simulation(size_t num_persons, std::initializer_list model.get_testing_strategy().add_testing_scheme_location_type( {mio::abm::LocationType::School, mio::abm::LocationType::Work, - mio::abm::LocationType::SocialEvent, mio::abm::LocationType::BasicsShop}, + mio::abm::LocationType::SocialEvent, mio::abm::LocationType::Home}, mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); @@ -164,5 +164,6 @@ void abm_benchmark(benchmark::State& state, size_t num_persons, std::initializer //or overwhelm everything, so we don't benchmark these. Results should be mostly transferrable. BENCHMARK_CAPTURE(abm_benchmark, abm_benchmark_50k, 50000, {14159265u, 35897932u})->Unit(benchmark::kMillisecond); BENCHMARK_CAPTURE(abm_benchmark, abm_benchmark_100k, 100000, {38462643u, 38327950u})->Unit(benchmark::kMillisecond); +BENCHMARK_CAPTURE(abm_benchmark, abm_benchmark_200k, 200000, {28841971u, 69399375u})->Unit(benchmark::kMillisecond); BENCHMARK_MAIN(); diff --git a/cpp/models/graph_abm/graph_abmodel.h b/cpp/models/graph_abm/graph_abmodel.h index 05490bcbe6..a5d8cfee3a 100644 --- a/cpp/models/graph_abm/graph_abmodel.h +++ b/cpp/models/graph_abm/graph_abmodel.h @@ -113,7 +113,7 @@ class GraphABModel : public abm::Model return false; } // the Person cannot move if the performed TestingStrategy is positive - if (!m_testing_strategy.run_strategy(personal_rng, person, target_location, t)) { + if (!m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)) { return false; } // update worn mask to target location's requirements @@ -173,7 +173,7 @@ class GraphABModel : public abm::Model continue; } // skip the trip if the performed TestingStrategy is positive - if (!Base::m_testing_strategy.run_strategy(personal_rng, person, target_location, t)) { + if (!Base::m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)) { continue; } // all requirements are met, move to target location diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index 8c8fb5de06..d267b5d571 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -35,37 +35,26 @@ TEST_F(TestTestingCriteria, addRemoveAndEvaluateTestCriteria) mio::abm::TimePoint t{0}; // Initialize testing criteria with no age group or infection state set. - auto testing_criteria = mio::abm::TestingCriteria(); + auto testing_criteria_empty = mio::abm::TestingCriteria(); // Empty criteria should evaluate to true. - EXPECT_EQ(testing_criteria.evaluate(person, t), true); + EXPECT_EQ(testing_criteria_empty.evaluate(person, t), true); // Add infection states to the criteria. - testing_criteria.add_infection_state(mio::abm::InfectionState::InfectedSymptoms); - testing_criteria.add_infection_state(mio::abm::InfectionState::InfectedNoSymptoms); - - // Add an incorrect age group and evaluate. - testing_criteria.add_age_group(age_group_35_to_59); + std::vector test_infection_states = {mio::abm::InfectionState::InfectedSymptoms, + mio::abm::InfectionState::InfectedNoSymptoms}; + std::vector test_age_groups = {age_group_35_to_59}; + auto testing_criteria_false_ag = mio::abm::TestingCriteria(test_age_groups, test_infection_states); // Age group mismatch, should evaluate to false. - EXPECT_EQ(testing_criteria.evaluate(person, t), false); - // Remove the incorrect age group and evaluate again. - testing_criteria.remove_age_group(age_group_35_to_59); - EXPECT_EQ(testing_criteria.evaluate(person, t), true); - // Remove the infection state and check evaluation. - testing_criteria.remove_infection_state(mio::abm::InfectionState::InfectedSymptoms); - EXPECT_EQ(testing_criteria.evaluate(person, t), false); - - // Add the infection state again and verify. - testing_criteria.add_infection_state(mio::abm::InfectionState::InfectedSymptoms); - - // Test equality of testing criteria. - auto testing_criteria_manual = mio::abm::TestingCriteria( - std::vector({age_group_15_to_34}), - std::vector({mio::abm::InfectionState::InfectedNoSymptoms})); - EXPECT_EQ(testing_criteria == testing_criteria_manual, false); - // Modify manual criteria to match. - testing_criteria_manual.add_infection_state(mio::abm::InfectionState::InfectedSymptoms); - testing_criteria_manual.remove_age_group(age_group_15_to_34); - EXPECT_EQ(testing_criteria == testing_criteria_manual, true); + EXPECT_EQ(testing_criteria_false_ag.evaluate(person, t), false); + + // Add age groups to the criteria. + test_age_groups.push_back(age_group_15_to_34); + auto testing_criteria_right_ag = mio::abm::TestingCriteria(test_age_groups, test_infection_states); + // Now it should evaluate to true. + EXPECT_EQ(testing_criteria_right_ag.evaluate(person, t), true); + + // Test inequality of testing criteria. + EXPECT_EQ(testing_criteria_right_ag == testing_criteria_false_ag, false); } using TestTestingScheme = RandomNumberTest; From 7176447b351ce58f6cbe2bf52f590bc1b992a1b2 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Fri, 16 May 2025 10:30:26 +0200 Subject: [PATCH 09/31] Refactor TestingStrategy: remove deprecated methods and update testing scheme handling in tests --- cpp/models/abm/model.h | 16 ------------- cpp/tests/test_abm_model.cpp | 22 +++++------------- cpp/tests/test_abm_serialization.cpp | 6 ----- cpp/tests/test_abm_testing_strategy.cpp | 31 ++++++++++--------------- 4 files changed, 18 insertions(+), 57 deletions(-) diff --git a/cpp/models/abm/model.h b/cpp/models/abm/model.h index 452210da29..0c6b320e25 100644 --- a/cpp/models/abm/model.h +++ b/cpp/models/abm/model.h @@ -341,22 +341,6 @@ class Model return m_id; } - /** - * @brief Add a TestingScheme to the set of schemes that are checked for testing at all Locations that have - * the LocationType. - * @param[in] loc_type LocationId key for TestingScheme to be added. - * @param[in] scheme TestingScheme to be added. - */ - void add_testing_scheme(const LocationType& loc_type, const TestingScheme& scheme); - - /** - * @brief Remove a TestingScheme from the set of schemes that are checked for testing at all Locations that have - * the LocationType. - * @param[in] loc_type LocationId key for TestingScheme to be added. - * @param[in] scheme TestingScheme to be added. - */ - void remove_testing_scheme(const LocationType& loc_type, const TestingScheme& scheme); - /** * @brief Get a reference to a Person from this Model. * @param[in] person_id A Person's PersonId. diff --git a/cpp/tests/test_abm_model.cpp b/cpp/tests/test_abm_model.cpp index 948abd4901..2f7fb3ba7a 100644 --- a/cpp/tests/test_abm_model.cpp +++ b/cpp/tests/test_abm_model.cpp @@ -616,18 +616,15 @@ TEST_F(TestModelTestingCriteria, testAddingAndUpdatingAndRunningTestingSchemes) const auto probability = 1.0; const auto test_params_pcr = mio::abm::TestParameters{0.9, 0.99, test_time, mio::abm::TestType::Generic}; - auto testing_criteria = mio::abm::TestingCriteria(); - testing_criteria.add_infection_state(mio::abm::InfectionState::InfectedSymptoms); - testing_criteria.add_infection_state(mio::abm::InfectionState::InfectedNoSymptoms); + auto testing_criteria = mio::abm::TestingCriteria({},{mio::abm::InfectionState::InfectedSymptoms,mio::abm::InfectionState::InfectedNoSymptoms}); auto testing_scheme = mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params_pcr, probability); - model.get_testing_strategy().add_testing_scheme(mio::abm::LocationType::Work, testing_scheme); - EXPECT_EQ(model.get_testing_strategy().run_strategy(rng_person, person, work, current_time), + model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme); + EXPECT_EQ(model.get_testing_strategy().run_strategy_and_check_if_entry_allowed(rng_person, person, work, current_time), true); // no active testing scheme -> person can enter current_time = mio::abm::TimePoint(30); - model.get_testing_strategy().update_activity_status(current_time); ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) .Times(testing::Exactly(5)) @@ -637,15 +634,8 @@ TEST_F(TestModelTestingCriteria, testAddingAndUpdatingAndRunningTestingSchemes) .WillOnce(testing::Return(0.0)) // Draw for isolation compliance (doesn't matter in this test) .WillOnce( testing::Return(0.7)); // Person complies with testing (even though there is not testing strategy left) - EXPECT_EQ(model.get_testing_strategy().run_strategy(rng_person, person, work, current_time), + EXPECT_EQ(model.get_testing_strategy().run_strategy_and_check_if_entry_allowed(rng_person, person, work, current_time), false); // Testing scheme active and restricts entry - - // Try to re-add the same testing scheme and confirm it doesn't duplicate, then remove it. - model.get_testing_strategy().add_testing_scheme(mio::abm::LocationType::Work, - testing_scheme); //doesn't get added because of == operator - model.get_testing_strategy().remove_testing_scheme(mio::abm::LocationType::Work, testing_scheme); - EXPECT_EQ(model.get_testing_strategy().run_strategy(rng_person, person, work, current_time), - true); // no more testing_schemes } /** @@ -831,7 +821,7 @@ TEST_F(TestModel, mobilityRulesWithAppliedNPIs) auto testing_scheme = mio::abm::TestingScheme(testing_criteria, testing_frequency, start_date, end_date, test_params, probability); - model.get_testing_strategy().add_testing_scheme(mio::abm::LocationType::Work, testing_scheme); + model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme); ScopedMockDistribution>>> mock_exponential_dist; @@ -948,7 +938,7 @@ TEST_F(TestModel, mobilityTripWithAppliedNPIs) auto testing_scheme = mio::abm::TestingScheme(testing_criteria, testing_frequency, start_date, end_date, test_params, probability); - model.get_testing_strategy().add_testing_scheme(mio::abm::LocationType::Work, testing_scheme); + model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme); ScopedMockDistribution>>> mock_exponential_dist; diff --git a/cpp/tests/test_abm_serialization.cpp b/cpp/tests/test_abm_serialization.cpp index 7dbdc0249d..3386fdfedb 100644 --- a/cpp/tests/test_abm_serialization.cpp +++ b/cpp/tests/test_abm_serialization.cpp @@ -147,7 +147,6 @@ TEST(TestAbmSerialization, TestingScheme) reference_json["end_date"]["seconds"] = Json::Int(i++); reference_json["test_params"] = test_parameters; reference_json["probability"] = Json::Value((double)i++); - reference_json["is_active"] = Json::Value((bool)0); test_json_serialization(reference_json); } @@ -155,13 +154,8 @@ TEST(TestAbmSerialization, TestingScheme) TEST(TestAbmSerialization, TestingStrategy) { // See test_json_serialization for info on this test. - - unsigned i = 1; // counter s.t. members have different values - Json::Value local_strategy; - local_strategy["id"] = Json::UInt(i++); local_strategy["schemes"] = Json::Value(Json::arrayValue); - local_strategy["type"] = Json::UInt(i++); Json::Value reference_json; reference_json["schemes"][0] = local_strategy; diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index d267b5d571..d11de42917 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -86,16 +86,11 @@ TEST_F(TestTestingScheme, runScheme) mio::abm::TestingScheme(testing_criteria1, validity_period, start_date, end_date, test_params_pcr, probability); // Check the initial activity status. - EXPECT_EQ(testing_scheme1.is_active(), false); - testing_scheme1.update_activity_status(mio::abm::TimePoint(10)); - EXPECT_EQ(testing_scheme1.is_active(), true); + EXPECT_EQ(testing_scheme1.is_active(mio::abm::TimePoint(0)), false); + EXPECT_EQ(testing_scheme1.is_active(mio::abm::TimePoint(10)), true); // Deactivate the scheme after the end date. - testing_scheme1.update_activity_status(mio::abm::TimePoint(60 * 60 * 24 * 3 + 200)); - EXPECT_EQ(testing_scheme1.is_active(), false); - - // Reactivate the scheme. - testing_scheme1.update_activity_status(mio::abm::TimePoint(0)); + EXPECT_EQ(testing_scheme1.is_active(mio::abm::TimePoint(60 * 60 * 24 * 3 + 200)), false);; // Setup a second scheme with different infection states. std::vector test_infection_states2 = {mio::abm::InfectionState::Recovered}; @@ -124,11 +119,11 @@ TEST_F(TestTestingScheme, runScheme) .WillOnce(testing::Return(0.7)) // Person 2 got test .WillOnce(testing::Return(0.5)); // Person 2 tested negative and can enter - EXPECT_EQ(testing_scheme1.run_scheme(rng_person1, person1, start_date), + EXPECT_EQ(testing_scheme1.run_scheme_and_check_if_test_positive(rng_person1, person1, start_date), false); // Person tests and tests positive - EXPECT_EQ(testing_scheme2.run_scheme(rng_person2, person2, start_date), + EXPECT_EQ(testing_scheme2.run_scheme_and_check_if_test_positive(rng_person2, person2, start_date), true); // Person tests and tests negative - EXPECT_EQ(testing_scheme1.run_scheme(rng_person1, person1, start_date), + EXPECT_EQ(testing_scheme1.run_scheme_and_check_if_test_positive(rng_person1, person1, start_date), false); // Person doesn't test but used the last result (false to enter) } @@ -149,12 +144,10 @@ TEST_F(TestTestingScheme, initAndRunTestingStrategy) auto testing_criteria1 = mio::abm::TestingCriteria({}, test_infection_states); auto testing_scheme1 = mio::abm::TestingScheme(testing_criteria1, validity_period, start_date, end_date, test_params_pcr, probability); - testing_scheme1.update_activity_status(mio::abm::TimePoint(0)); std::vector test_infection_states2 = {mio::abm::InfectionState::Recovered}; auto testing_criteria2 = mio::abm::TestingCriteria({}, test_infection_states2); auto testing_scheme2 = mio::abm::TestingScheme(testing_criteria2, validity_period, start_date, end_date, test_params_pcr, probability); - testing_scheme2.update_activity_status(mio::abm::TimePoint(0)); mio::abm::Location loc_work(mio::abm::LocationType::Work, 0); // Since tests are performed before start_date, the InfectionState of all the Person have to take into account the test's required_time auto person1 = @@ -179,13 +172,13 @@ TEST_F(TestTestingScheme, initAndRunTestingStrategy) .WillOnce(testing::Return(0.7)); // Person 1 complies to testing mio::abm::TestingStrategy test_strategy = - mio::abm::TestingStrategy(std::vector{}); - test_strategy.add_testing_scheme(mio::abm::LocationType::Work, testing_scheme1); - test_strategy.add_testing_scheme(mio::abm::LocationType::Work, testing_scheme2); - EXPECT_EQ(test_strategy.run_strategy(rng_person1, person1, loc_work, start_date), + mio::abm::TestingStrategy(std::vector{},std::vector{}); + test_strategy.add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme1); + test_strategy.add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme2); + EXPECT_EQ(test_strategy.run_strategy_and_check_if_entry_allowed(rng_person1, person1, loc_work, start_date), false); // Person tests and tests positive - EXPECT_EQ(test_strategy.run_strategy(rng_person2, person2, loc_work, start_date), + EXPECT_EQ(test_strategy.run_strategy_and_check_if_entry_allowed(rng_person2, person2, loc_work, start_date), true); // Person tests and tests negative - EXPECT_EQ(test_strategy.run_strategy(rng_person1, person1, loc_work, start_date), + EXPECT_EQ(test_strategy.run_strategy_and_check_if_entry_allowed(rng_person1, person1, loc_work, start_date), false); // Person doesn't test but used the last result (false to enter) } From 75fad09abb0b735c3a501c481af703feca56c814 Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Fri, 16 May 2025 13:30:53 +0200 Subject: [PATCH 10/31] Refactor TestingStrategy and tests: streamline method signatures, enhance serialization, and improve test logic --- cpp/models/abm/testing_strategy.h | 24 ++++++++++--------- cpp/tests/test_abm_model.cpp | 25 ++++++++++---------- cpp/tests/test_abm_serialization.cpp | 31 ++++++++++++++----------- cpp/tests/test_abm_testing_strategy.cpp | 31 +++++++++++++++---------- 4 files changed, 62 insertions(+), 49 deletions(-) diff --git a/cpp/models/abm/testing_strategy.h b/cpp/models/abm/testing_strategy.h index 873e199ce1..5fe3dfdadc 100644 --- a/cpp/models/abm/testing_strategy.h +++ b/cpp/models/abm/testing_strategy.h @@ -128,7 +128,6 @@ class TestingScheme return m_end_date; } - /** * @brief Runs the TestingScheme and potentially tests a Person. * @param[inout] rng PersonalRandomNumberGenerator of the Person being tested. @@ -196,23 +195,21 @@ class TestingStrategy * @param[in] loc_id LocationId key for TestingScheme to be added. * @param[in] scheme TestingScheme to be added. */ - void add_testing_scheme_location_id(const LocationId& loc_id, - const TestingScheme& scheme); + void add_testing_scheme_location_id(const LocationId& loc_id, const TestingScheme& scheme); /** * @brief Add a TestingScheme to the set of schemes that are checked for testing at a certain Location. * @param[in] loc_type LocationType key for TestingScheme to add. * @param[in] scheme TestingScheme to be added. */ - void add_testing_scheme_location_type(const LocationType& loc_type, - const TestingScheme& scheme); + void add_testing_scheme_location_type(const LocationType& loc_type, const TestingScheme& scheme); /** * @brief Add a TestingScheme to the set of schemes that are checked for testing at a certain Location. * @param[in] loc_type Vector of LocationType key for TestingScheme to add. * @param[in] scheme TestingScheme to be added. */ - void add_testing_scheme_location_type(const std::vector& loc_type, - const TestingScheme& scheme){ + void add_testing_scheme_location_type(const std::vector& loc_type, const TestingScheme& scheme) + { for (auto& type : loc_type) { add_testing_scheme_location_type(type, scheme); } @@ -227,17 +224,22 @@ class TestingStrategy * @param[in] location Location to check. * @param[in] t TimePoint when to run the strategy. */ - bool run_strategy_and_check_if_entry_allowed(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t); + bool run_strategy_and_check_if_entry_allowed(PersonalRandomNumberGenerator& rng, Person& person, + const Location& location, TimePoint t); /// This method is used by the default serialization feature. auto default_serialize() { - return Members("TestingStrategy").add("schemes_id", m_testing_schemes_at_location_id).add("schemes_type", m_testing_schemes_at_location_type); + return Members("TestingStrategy") + .add("schemes_id", m_testing_schemes_at_location_id) + .add("schemes_type", m_testing_schemes_at_location_type); } private: - std::vector m_testing_schemes_at_location_id; ///< Set of schemes that are checked for testing in specific locations. - std::vector m_testing_schemes_at_location_type; + std::vector + m_testing_schemes_at_location_id; ///< Set of schemes that are checked for testing in specific locations. + std::vector + m_testing_schemes_at_location_type; ///< Set of schemes that are checked for testing in overall locations types }; } // namespace abm diff --git a/cpp/tests/test_abm_model.cpp b/cpp/tests/test_abm_model.cpp index 2f7fb3ba7a..9e0e5a31fa 100644 --- a/cpp/tests/test_abm_model.cpp +++ b/cpp/tests/test_abm_model.cpp @@ -611,31 +611,32 @@ TEST_F(TestModelTestingCriteria, testAddingAndUpdatingAndRunningTestingSchemes) person.set_assigned_location(mio::abm::LocationType::Work, work_id, model.get_id()); auto validity_period = mio::abm::days(1); - const auto start_date = mio::abm::TimePoint(20); - const auto end_date = mio::abm::TimePoint(60 * 60 * 24 * 3); + const auto start_date = mio::abm::TimePoint(0) + mio::abm::days(1); + const auto end_date = mio::abm::TimePoint(0) + mio::abm::days(3); const auto probability = 1.0; const auto test_params_pcr = mio::abm::TestParameters{0.9, 0.99, test_time, mio::abm::TestType::Generic}; - auto testing_criteria = mio::abm::TestingCriteria({},{mio::abm::InfectionState::InfectedSymptoms,mio::abm::InfectionState::InfectedNoSymptoms}); + auto testing_criteria = mio::abm::TestingCriteria( + {}, {mio::abm::InfectionState::InfectedSymptoms, mio::abm::InfectionState::InfectedNoSymptoms}); auto testing_scheme = mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params_pcr, probability); model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme); - EXPECT_EQ(model.get_testing_strategy().run_strategy_and_check_if_entry_allowed(rng_person, person, work, current_time), - true); // no active testing scheme -> person can enter - current_time = mio::abm::TimePoint(30); + EXPECT_EQ( + model.get_testing_strategy().run_strategy_and_check_if_entry_allowed(rng_person, person, work, current_time), + true); // no active testing scheme -> person can enter + current_time = mio::abm::TimePoint(0) + mio::abm::days(2); ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(5)) + .Times(testing::Exactly(4)) .WillOnce(testing::Return(0.7)) // Person complies with testing .WillOnce(testing::Return(0.5)) // Probability for testing (is performed) .WillOnce(testing::Return(0.4)) // Test result is positive - .WillOnce(testing::Return(0.0)) // Draw for isolation compliance (doesn't matter in this test) - .WillOnce( - testing::Return(0.7)); // Person complies with testing (even though there is not testing strategy left) - EXPECT_EQ(model.get_testing_strategy().run_strategy_and_check_if_entry_allowed(rng_person, person, work, current_time), - false); // Testing scheme active and restricts entry + .WillOnce(testing::Return(0.0)); // Draw for isolation compliance (doesn't matter in this test) + EXPECT_EQ( + model.get_testing_strategy().run_strategy_and_check_if_entry_allowed(rng_person, person, work, current_time), + false); // Testing scheme active but person complies with testing } /** diff --git a/cpp/tests/test_abm_serialization.cpp b/cpp/tests/test_abm_serialization.cpp index 3386fdfedb..2144ca1322 100644 --- a/cpp/tests/test_abm_serialization.cpp +++ b/cpp/tests/test_abm_serialization.cpp @@ -158,7 +158,9 @@ TEST(TestAbmSerialization, TestingStrategy) local_strategy["schemes"] = Json::Value(Json::arrayValue); Json::Value reference_json; - reference_json["schemes"][0] = local_strategy; + + reference_json["schemes_id"][0] = local_strategy; + reference_json["schemes_type"][0] = local_strategy; test_json_serialization(reference_json); } @@ -250,19 +252,20 @@ TEST(TestAbmSerialization, Model) Json::Value abm_parameters = mio::serialize_json(mio::abm::Parameters(i++)).value(); Json::Value reference_json; - reference_json["cemetery_id"] = Json::UInt(i++); - reference_json["location_types"] = Json::UInt(i++); - reference_json["locations"] = Json::Value(Json::arrayValue); - reference_json["parameters"] = abm_parameters; - reference_json["persons"] = Json::Value(Json::arrayValue); - reference_json["rng"]["counter"] = Json::UInt(i++); - reference_json["rng"]["key"] = Json::UInt(i++); - reference_json["rng"]["seeds"] = json_uint_array({i++, i++, i++, i++, i++, i++}); - reference_json["testing_strategy"]["schemes"] = Json::Value(Json::arrayValue); - reference_json["trip_list"]["index"] = Json::UInt(i++); - reference_json["trip_list"]["trips_weekday"] = Json::Value(Json::arrayValue); - reference_json["trip_list"]["trips_weekend"] = Json::Value(Json::arrayValue); - reference_json["use_mobility_rules"] = Json::Value(false); + reference_json["cemetery_id"] = Json::UInt(i++); + reference_json["location_types"] = Json::UInt(i++); + reference_json["locations"] = Json::Value(Json::arrayValue); + reference_json["parameters"] = abm_parameters; + reference_json["persons"] = Json::Value(Json::arrayValue); + reference_json["rng"]["counter"] = Json::UInt(i++); + reference_json["rng"]["key"] = Json::UInt(i++); + reference_json["rng"]["seeds"] = json_uint_array({i++, i++, i++, i++, i++, i++}); + reference_json["testing_strategy"]["schemes_id"] = Json::Value(Json::arrayValue); + reference_json["testing_strategy"]["schemes_type"] = Json::Value(Json::arrayValue); + reference_json["trip_list"]["index"] = Json::UInt(i++); + reference_json["trip_list"]["trips_weekday"] = Json::Value(Json::arrayValue); + reference_json["trip_list"]["trips_weekend"] = Json::Value(Json::arrayValue); + reference_json["use_mobility_rules"] = Json::Value(false); test_json_serialization(reference_json); } diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index d11de42917..752955be43 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -42,7 +42,7 @@ TEST_F(TestTestingCriteria, addRemoveAndEvaluateTestCriteria) // Add infection states to the criteria. std::vector test_infection_states = {mio::abm::InfectionState::InfectedSymptoms, mio::abm::InfectionState::InfectedNoSymptoms}; - std::vector test_age_groups = {age_group_35_to_59}; + std::vector test_age_groups = {age_group_35_to_59}; auto testing_criteria_false_ag = mio::abm::TestingCriteria(test_age_groups, test_infection_states); // Age group mismatch, should evaluate to false. EXPECT_EQ(testing_criteria_false_ag.evaluate(person, t), false); @@ -73,8 +73,8 @@ TEST_F(TestTestingScheme, runScheme) std::vector testing_criterias = {testing_criteria1}; auto validity_period = mio::abm::days(1); - const auto start_date = mio::abm::TimePoint(0); - const auto end_date = mio::abm::TimePoint(60 * 60 * 24 * 3); + const auto start_date = mio::abm::TimePoint(0) + mio::abm::seconds(1); + const auto end_date = mio::abm::TimePoint(0) + mio::abm::days(3); const auto probability = 0.8; const auto test_params_pcr = mio::abm::TestParameters{0.9, 0.99, mio::abm::hours(48), mio::abm::TestType::PCR}; @@ -90,7 +90,7 @@ TEST_F(TestTestingScheme, runScheme) EXPECT_EQ(testing_scheme1.is_active(mio::abm::TimePoint(10)), true); // Deactivate the scheme after the end date. - EXPECT_EQ(testing_scheme1.is_active(mio::abm::TimePoint(60 * 60 * 24 * 3 + 200)), false);; + EXPECT_EQ(testing_scheme1.is_active(mio::abm::TimePoint(60 * 60 * 24 * 3 + 200)), false); // Setup a second scheme with different infection states. std::vector test_infection_states2 = {mio::abm::InfectionState::Recovered}; @@ -112,19 +112,22 @@ TEST_F(TestTestingScheme, runScheme) // Mock uniform distribution to control random behavior in testing. ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(5)) + .Times(testing::Exactly(8)) + .WillOnce(testing::Return(0.1)) // Person 1 compliant to testing .WillOnce(testing::Return(0.7)) // Person 1 got test .WillOnce(testing::Return(0.7)) // Test is positive .WillOnce(testing::Return(0.5)) // Person 1 complies to isolation + .WillOnce(testing::Return(0.1)) // Person 2 compliant to testing .WillOnce(testing::Return(0.7)) // Person 2 got test - .WillOnce(testing::Return(0.5)); // Person 2 tested negative and can enter + .WillOnce(testing::Return(0.5)) // Person 2 tested negative and can enter + .WillOnce(testing::Return(0.1)); // Person 1 compliant to testing EXPECT_EQ(testing_scheme1.run_scheme_and_check_if_test_positive(rng_person1, person1, start_date), - false); // Person tests and tests positive + true); // Person tests and tests positive EXPECT_EQ(testing_scheme2.run_scheme_and_check_if_test_positive(rng_person2, person2, start_date), - true); // Person tests and tests negative + false); // Person tests and tests negative EXPECT_EQ(testing_scheme1.run_scheme_and_check_if_test_positive(rng_person1, person1, start_date), - false); // Person doesn't test but used the last result (false to enter) + true); // Person doesn't test but used the last result (false to enter) } /** @@ -161,18 +164,22 @@ TEST_F(TestTestingScheme, initAndRunTestingStrategy) // Mock uniform distribution to control random behavior in testing. ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly((8))) + .Times(testing::Exactly((11))) .WillOnce(testing::Return(0.7)) // Person 1 complies to testing .WillOnce(testing::Return(0.7)) // Person 1 is tested for scheme 1 .WillOnce(testing::Return(0.7)) // Test of Person 1 is positive .WillOnce(testing::Return(0.7)) // Person 1 complies to isolation + .WillOnce(testing::Return(0.7)) // Would Person 1 be compliant to testing again(other Scheme)? .WillOnce(testing::Return(0.7)) // Person 2 complies to testing .WillOnce(testing::Return(0.7)) // Person 2 is tested for scheme 2 .WillOnce(testing::Return(0.5)) // Test of Person 2 is negative - .WillOnce(testing::Return(0.7)); // Person 1 complies to testing + .WillOnce(testing::Return(0.7)) // Would Person 2 be compliant to testing again (other Scheme)? + .WillOnce(testing::Return(0.7)) // Person 1 complies to testing + .WillOnce(testing::Return(0.7)); // Person 1 complies to testing (again) mio::abm::TestingStrategy test_strategy = - mio::abm::TestingStrategy(std::vector{},std::vector{}); + mio::abm::TestingStrategy(std::vector{}, + std::vector{}); test_strategy.add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme1); test_strategy.add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme2); EXPECT_EQ(test_strategy.run_strategy_and_check_if_entry_allowed(rng_person1, person1, loc_work, start_date), From 640f58111d4f3e531b172c8576522636ffe3d5d8 Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Fri, 16 May 2025 13:42:59 +0200 Subject: [PATCH 11/31] formatting --- cpp/benchmarks/abm.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cpp/benchmarks/abm.cpp b/cpp/benchmarks/abm.cpp index ca8eee94de..48e88d3606 100644 --- a/cpp/benchmarks/abm.cpp +++ b/cpp/benchmarks/abm.cpp @@ -112,12 +112,11 @@ mio::abm::Simulation<> make_simulation(size_t num_persons, std::initializer_list }; model.get_testing_strategy().add_testing_scheme_location_type( - {mio::abm::LocationType::School, mio::abm::LocationType::Work, - mio::abm::LocationType::SocialEvent, mio::abm::LocationType::Home}, + {mio::abm::LocationType::School, mio::abm::LocationType::Work, mio::abm::LocationType::SocialEvent, + mio::abm::LocationType::Home}, mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), mio::abm::TimePoint(0) + mio::abm::days(10), {}, 0.5)); - return mio::abm::Simulation(mio::abm::TimePoint(0), std::move(model)); } From 18f83887fb61cb050661d51644326119d4e4d34a Mon Sep 17 00:00:00 2001 From: "Korf, Sascha Alexander" <51127093+xsaschako@users.noreply.github.com> Date: Fri, 16 May 2025 14:26:32 +0200 Subject: [PATCH 12/31] Update cpp/models/abm/testing_strategy.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- cpp/models/abm/testing_strategy.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cpp/models/abm/testing_strategy.cpp b/cpp/models/abm/testing_strategy.cpp index a48109cd45..5e83264efa 100644 --- a/cpp/models/abm/testing_strategy.cpp +++ b/cpp/models/abm/testing_strategy.cpp @@ -164,7 +164,11 @@ bool TestingStrategy::run_strategy_and_check_if_entry_allowed(PersonalRandomNumb } } - return location.get_type() != LocationType::Home ? entry_allowed : true; + if (location.get_type() == LocationType::Home) { + return true; + } else { + return entry_allowed; + } } } // namespace abm From e2ee1726f167e024c8b91af45124d35022f260be Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Fri, 16 May 2025 14:29:00 +0200 Subject: [PATCH 13/31] Refactor testing strategy method calls: replace add_testing_scheme with add_testing_scheme_location_type for consistency across examples --- cpp/examples/abm_history_object.cpp | 4 ++-- cpp/examples/abm_minimal.cpp | 4 ++-- cpp/models/abm/README.md | 2 +- cpp/simulations/abm.cpp | 7 ++++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/cpp/examples/abm_history_object.cpp b/cpp/examples/abm_history_object.cpp index e8e375de15..f8b9c9d6d8 100644 --- a/cpp/examples/abm_history_object.cpp +++ b/cpp/examples/abm_history_object.cpp @@ -134,8 +134,8 @@ int main() auto test_parameters = model.parameters.get()[test_type]; auto testing_criteria_work = mio::abm::TestingCriteria(); auto testing_scheme_work = mio::abm::TestingScheme(testing_criteria_work, validity_period, start_date, end_date, - test_parameters, probability); - model.get_testing_strategy().add_testing_scheme(mio::abm::LocationType::Work, testing_scheme_work); + test_parameters, probability); + model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme_work); // Assign infection state to each person. // The infection states are chosen randomly. diff --git a/cpp/examples/abm_minimal.cpp b/cpp/examples/abm_minimal.cpp index 496c32da1a..d4daa268c7 100644 --- a/cpp/examples/abm_minimal.cpp +++ b/cpp/examples/abm_minimal.cpp @@ -113,8 +113,8 @@ int main() auto test_parameters = model.parameters.get()[test_type]; auto testing_criteria_work = mio::abm::TestingCriteria(); auto testing_scheme_work = mio::abm::TestingScheme(testing_criteria_work, validity_period, start_date, end_date, - test_parameters, probability); - model.get_testing_strategy().add_testing_scheme(mio::abm::LocationType::Work, testing_scheme_work); + test_parameters, probability); + model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme_work); // Assign infection state to each person. // The infection states are chosen randomly with the following distribution diff --git a/cpp/models/abm/README.md b/cpp/models/abm/README.md index 5801d9dabe..a2b6e306e5 100644 --- a/cpp/models/abm/README.md +++ b/cpp/models/abm/README.md @@ -107,7 +107,7 @@ auto testing_criteria_work = std::vector{mio::abm::TestingCriteria({}, test_at_work, {})}; auto testing_scheme_work = mio::abm::TestingScheme(testing_criteria_work, start_date, end_date, test_type, probability); -model.get_testing_strategy().add_testing_scheme(testing_scheme_work); +model.get_testing_strategy().add_testing_scheme_location_type(testing_scheme_work); ``` For some infections to happen during the simulation, we have to initialize people with infections. diff --git a/cpp/simulations/abm.cpp b/cpp/simulations/abm.cpp index 655a078892..5667126f40 100644 --- a/cpp/simulations/abm.cpp +++ b/cpp/simulations/abm.cpp @@ -335,7 +335,7 @@ void create_assign_locations(mio::abm::Model& model) auto testing_scheme = mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params, probability.draw_sample()); - model.get_testing_strategy().add_testing_scheme(mio::abm::LocationType::SocialEvent, testing_scheme); + model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::SocialEvent, testing_scheme); // Add hospital and ICU with 5 maximum contacs. // For the number of agents in this example we assume a capacity of 584 persons (80 beds per 10000 residents in @@ -429,7 +429,8 @@ void create_assign_locations(mio::abm::Model& model) validity_period = mio::abm::days(7); auto testing_scheme_school = mio::abm::TestingScheme(testing_criteria_school, validity_period, start_date, end_date, test_params, probability.draw_sample()); - model.get_testing_strategy().add_testing_scheme(mio::abm::LocationType::School, testing_scheme_school); + model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::School, + testing_scheme_school); auto test_at_work = std::vector{mio::abm::LocationType::Work}; auto testing_criteria_work = mio::abm::TestingCriteria(); @@ -437,7 +438,7 @@ void create_assign_locations(mio::abm::Model& model) assign_uniform_distribution(probability, 0.1, 0.5); auto testing_scheme_work = mio::abm::TestingScheme(testing_criteria_work, validity_period, start_date, end_date, test_params, probability.draw_sample()); - model.get_testing_strategy().add_testing_scheme(mio::abm::LocationType::Work, testing_scheme_work); + model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme_work); } /** From 1bbf4b93595737c1c6ce65af66d89104e9e4172a Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 19 May 2025 10:45:42 +0200 Subject: [PATCH 14/31] Enhance TestingStrategy constructor: add overload for multiple local strategies --- .../memilio/simulation/bindings/models/abm.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp b/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp index 48a2cfa19a..a4949249e4 100644 --- a/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp +++ b/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp @@ -170,7 +170,8 @@ PYBIND11_MODULE(_simulation_abm, m) .def_readwrite("time", &mio::abm::ProtectionEvent::time); pymio::bind_class(m, "TestingStrategy") - .def(py::init&>()); + .def(py::init&, + const std::vector&>()); pymio::bind_class(m, "Location") .def_property_readonly("type", &mio::abm::Location::get_type) From 36fcce324d843afadc185d53d0ac2919fbeef803 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 19 May 2025 11:02:21 +0200 Subject: [PATCH 15/31] Refactor test_abm: remove unused testing scheme initialization in test_model --- .../memilio/simulation/bindings/models/abm.cpp | 3 +-- .../memilio-simulation/memilio/simulation_test/test_abm.py | 7 ------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp b/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp index a4949249e4..7cffb736af 100644 --- a/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp +++ b/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp @@ -162,9 +162,8 @@ PYBIND11_MODULE(_simulation_abm, m) const mio::abm::TestParameters&, double>(), py::arg("testing_criteria"), py::arg("testing_validity_period"), py::arg("start_date"), py::arg("end_date"), py::arg("test_parameters"), py::arg("probability")) - .def_property_readonly("active", &mio::abm::TestingScheme::is_active); - pymio::bind_class(m, "ProtectionEvent") + pymio::bind_class(m, "ProtectionEvent") .def(py::init(), py::arg("type"), py::arg("time")) .def_readwrite("type", &mio::abm::ProtectionEvent::type) .def_readwrite("time", &mio::abm::ProtectionEvent::time); diff --git a/pycode/memilio-simulation/memilio/simulation_test/test_abm.py b/pycode/memilio-simulation/memilio/simulation_test/test_abm.py index 2e3df1bd04..1b7d229a20 100644 --- a/pycode/memilio-simulation/memilio/simulation_test/test_abm.py +++ b/pycode/memilio-simulation/memilio/simulation_test/test_abm.py @@ -57,13 +57,6 @@ def test_locations(self): home.infection_parameters.MaximumContacts = 10 self.assertEqual(home.infection_parameters.MaximumContacts, 10) - testing_inf_states = [] - testing_crit = abm.TestingCriteria( - testing_ages, testing_inf_states) - testing_scheme = abm.TestingScheme(testing_crit, abm.days( - 1), t0, t0 + abm.days(1), model.parameters.TestData[abm.TestType.Antigen], 1.0) - # initially false, will only active once simulation starts - self.assertEqual(testing_scheme.active, False) def test_persons(self): """ """ From 4bdfd4a806dae7d48161fcc4474f0e5ded1819b8 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 19 May 2025 11:23:32 +0200 Subject: [PATCH 16/31] Fix indentation in abm.cpp: align method chaining for better readability --- .../memilio/simulation/bindings/models/abm.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp b/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp index 7cffb736af..19194358e6 100644 --- a/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp +++ b/pycode/memilio-simulation/memilio/simulation/bindings/models/abm.cpp @@ -161,9 +161,9 @@ PYBIND11_MODULE(_simulation_abm, m) .def(py::init(), py::arg("testing_criteria"), py::arg("testing_validity_period"), py::arg("start_date"), - py::arg("end_date"), py::arg("test_parameters"), py::arg("probability")) + py::arg("end_date"), py::arg("test_parameters"), py::arg("probability")); - pymio::bind_class(m, "ProtectionEvent") + pymio::bind_class(m, "ProtectionEvent") .def(py::init(), py::arg("type"), py::arg("time")) .def_readwrite("type", &mio::abm::ProtectionEvent::type) .def_readwrite("time", &mio::abm::ProtectionEvent::time); From 3a8163f67d66e5ca5ef551a7428f779412cd1ad1 Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Tue, 20 May 2025 15:59:27 +0200 Subject: [PATCH 17/31] Refactor testing strategy method names: unify method names to improve consistency and readability across the codebase --- cpp/benchmarks/abm.cpp | 2 +- cpp/examples/abm_history_object.cpp | 2 +- cpp/examples/abm_minimal.cpp | 2 +- cpp/models/abm/README.md | 2 +- cpp/models/abm/model.cpp | 5 +-- cpp/models/abm/testing_strategy.cpp | 53 +++++++++++++------------ cpp/models/abm/testing_strategy.h | 13 +++--- cpp/models/graph_abm/graph_abmodel.h | 4 +- cpp/simulations/abm.cpp | 7 ++-- cpp/tests/test_abm_model.cpp | 16 ++++---- cpp/tests/test_abm_testing_strategy.cpp | 16 ++++---- 11 files changed, 59 insertions(+), 63 deletions(-) diff --git a/cpp/benchmarks/abm.cpp b/cpp/benchmarks/abm.cpp index 48e88d3606..9f8e1f2f4d 100644 --- a/cpp/benchmarks/abm.cpp +++ b/cpp/benchmarks/abm.cpp @@ -111,7 +111,7 @@ mio::abm::Simulation<> make_simulation(size_t num_persons, std::initializer_list return mio::abm::TestingCriteria(random_ages, random_states); }; - model.get_testing_strategy().add_testing_scheme_location_type( + model.get_testing_strategy().add_scheme( {mio::abm::LocationType::School, mio::abm::LocationType::Work, mio::abm::LocationType::SocialEvent, mio::abm::LocationType::Home}, mio::abm::TestingScheme(random_criteria(), mio::abm::days(3), mio::abm::TimePoint(0), diff --git a/cpp/examples/abm_history_object.cpp b/cpp/examples/abm_history_object.cpp index b4b2eec314..28c883b892 100644 --- a/cpp/examples/abm_history_object.cpp +++ b/cpp/examples/abm_history_object.cpp @@ -137,7 +137,7 @@ int main() auto testing_criteria_work = mio::abm::TestingCriteria(); auto testing_scheme_work = mio::abm::TestingScheme(testing_criteria_work, validity_period, start_date, end_date, test_parameters, probability); - model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme_work); + model.get_testing_strategy().add_scheme(mio::abm::LocationType::Work, testing_scheme_work); // Assign infection state to each person. // The infection states are chosen randomly. diff --git a/cpp/examples/abm_minimal.cpp b/cpp/examples/abm_minimal.cpp index 0b6bf1bb88..d57153eebc 100644 --- a/cpp/examples/abm_minimal.cpp +++ b/cpp/examples/abm_minimal.cpp @@ -114,7 +114,7 @@ int main() auto testing_criteria_work = mio::abm::TestingCriteria(); auto testing_scheme_work = mio::abm::TestingScheme(testing_criteria_work, validity_period, start_date, end_date, test_parameters, probability); - model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme_work); + model.get_testing_strategy().add_scheme(mio::abm::LocationType::Work, testing_scheme_work); // Assign infection state to each person. // The infection states are chosen randomly with the following distribution diff --git a/cpp/models/abm/README.md b/cpp/models/abm/README.md index bd50228417..986c1cf59a 100644 --- a/cpp/models/abm/README.md +++ b/cpp/models/abm/README.md @@ -107,7 +107,7 @@ auto testing_criteria_work = std::vector{mio::abm::TestingCriteria({}, test_at_work, {})}; auto testing_scheme_work = mio::abm::TestingScheme(testing_criteria_work, start_date, end_date, test_type, probability); -model.get_testing_strategy().add_testing_scheme_location_type(testing_scheme_work); +model.get_testing_strategy().add_scheme(testing_scheme_work); ``` For some infections to happen during the simulation, we have to initialize people with infections. diff --git a/cpp/models/abm/model.cpp b/cpp/models/abm/model.cpp index 7ff811f49a..d95691e301 100755 --- a/cpp/models/abm/model.cpp +++ b/cpp/models/abm/model.cpp @@ -124,10 +124,9 @@ void Model::perform_mobility(TimePoint t, TimeSpan dt) return false; } // The person cannot move if he has a positive test result - if(!m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)){ + if (!m_testing_strategy.run_and_check(personal_rng, person, target_location, t)) { return false; } - // update worn mask to target location's requirements if (target_location.is_mask_required()) { @@ -192,7 +191,7 @@ void Model::perform_mobility(TimePoint t, TimeSpan dt) continue; } // skip the trip if the performed TestingStrategy is positive - if (!m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)) { + if (!m_testing_strategy.run_and_check(personal_rng, person, target_location, t)) { continue; } // all requirements are met, move to target location diff --git a/cpp/models/abm/testing_strategy.cpp b/cpp/models/abm/testing_strategy.cpp index 5e83264efa..d984397473 100644 --- a/cpp/models/abm/testing_strategy.cpp +++ b/cpp/models/abm/testing_strategy.cpp @@ -77,19 +77,20 @@ bool TestingScheme::is_active(TimePoint t) const return (m_start_date <= t && t < m_end_date); } -bool TestingScheme::run_scheme_and_check_if_test_positive(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const +bool TestingScheme::run_and_test(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const { - if(!is_active(t)) { // If the scheme is not active, do nothing + if (!is_active(t)) { // If the scheme is not active, do nothing return false; } - if(!person.is_compliant(rng, InterventionType::Testing)) { // If the person is not compliant with the testing intervention + if (!person.is_compliant( + rng, InterventionType::Testing)) { // If the person is not compliant with the testing intervention return true; // Assume positive test result } auto test_result = person.get_test_result(m_test_parameters.type); // If the agent has a test result valid until now, use the result directly if ((test_result.time_of_testing > TimePoint(std::numeric_limits::min())) && (test_result.time_of_testing + m_validity_period >= t)) { - return test_result.result; // If the test is positive, the entry is not allowed, and vice versa + return test_result.result; // If the test is positive, the entry is not allowed, and vice versa } // Otherwise, the time_of_testing in the past (i.e. the agent has already performed it). if (m_testing_criteria.evaluate(person, t - m_test_parameters.required_time)) { @@ -111,62 +112,62 @@ TestingStrategy::TestingStrategy(const std::vector& location_to_s { } - -void TestingStrategy::add_testing_scheme_location_id(const LocationId& loc_id, const TestingScheme& scheme) +void TestingStrategy::add_scheme(const LocationId& loc_id, const TestingScheme& scheme) { - if(loc_id.get() >= m_testing_schemes_at_location_id.size()) { + if (loc_id.get() >= m_testing_schemes_at_location_id.size()) { m_testing_schemes_at_location_id.resize(loc_id.get() + 1); } m_testing_schemes_at_location_id[loc_id.get()].schemes.push_back(scheme); } -void TestingStrategy::add_testing_scheme_location_type(const LocationType& loc_type, const TestingScheme& scheme) +void TestingStrategy::add_scheme(const LocationType& loc_type, const TestingScheme& scheme) { - if((size_t)loc_type >= m_testing_schemes_at_location_type.size()) { + if ((size_t)loc_type >= m_testing_schemes_at_location_type.size()) { m_testing_schemes_at_location_type.resize((size_t)loc_type + 1); } m_testing_schemes_at_location_type[(size_t)loc_type].schemes.push_back(scheme); } - -bool TestingStrategy::run_strategy_and_check_if_entry_allowed(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t) +bool TestingStrategy::run_and_check(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, + TimePoint t) { // Early return if no scheme defined for this location or type - auto loc_id = location.get_id().get(); + auto loc_id = location.get_id().get(); auto loc_type = static_cast(location.get_type()); - - bool has_id_schemes = loc_id < m_testing_schemes_at_location_id.size() && - !m_testing_schemes_at_location_id[loc_id].schemes.empty(); - + + bool has_id_schemes = + loc_id < m_testing_schemes_at_location_id.size() && !m_testing_schemes_at_location_id[loc_id].schemes.empty(); + bool has_type_schemes = loc_type < m_testing_schemes_at_location_type.size() && - !m_testing_schemes_at_location_type[loc_type].schemes.empty(); - + !m_testing_schemes_at_location_type[loc_type].schemes.empty(); + if (!has_id_schemes && !has_type_schemes) { return true; // No applicable schemes } - + bool entry_allowed = true; // Check schemes for specific location id if (has_id_schemes) { for (const auto& scheme : m_testing_schemes_at_location_id[loc_id].schemes) { - if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { - entry_allowed = false; // Deny entry + if (scheme.run_and_test(rng, person, t)) { + entry_allowed = false; // Deny entry } } } - + // Check schemes for location type if (has_type_schemes) { for (const auto& scheme : m_testing_schemes_at_location_type[loc_type].schemes) { - if (scheme.run_scheme_and_check_if_test_positive(rng, person, t)) { - entry_allowed = false; // Deny entry + if (scheme.run_and_test(rng, person, t)) { + entry_allowed = false; // Deny entry } } } - + if (location.get_type() == LocationType::Home) { return true; - } else { + } + else { return entry_allowed; } } diff --git a/cpp/models/abm/testing_strategy.h b/cpp/models/abm/testing_strategy.h index 5fe3dfdadc..789129c243 100644 --- a/cpp/models/abm/testing_strategy.h +++ b/cpp/models/abm/testing_strategy.h @@ -134,7 +134,7 @@ class TestingScheme * @param[in] person Person to check. * @param[in] t TimePoint when to run the scheme. */ - bool run_scheme_and_check_if_test_positive(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const; + bool run_and_test(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const; /// This method is used by the default serialization feature. auto default_serialize() @@ -195,23 +195,23 @@ class TestingStrategy * @param[in] loc_id LocationId key for TestingScheme to be added. * @param[in] scheme TestingScheme to be added. */ - void add_testing_scheme_location_id(const LocationId& loc_id, const TestingScheme& scheme); + void add_scheme(const LocationId& loc_id, const TestingScheme& scheme); /** * @brief Add a TestingScheme to the set of schemes that are checked for testing at a certain Location. * @param[in] loc_type LocationType key for TestingScheme to add. * @param[in] scheme TestingScheme to be added. */ - void add_testing_scheme_location_type(const LocationType& loc_type, const TestingScheme& scheme); + void add_scheme(const LocationType& loc_type, const TestingScheme& scheme); /** * @brief Add a TestingScheme to the set of schemes that are checked for testing at a certain Location. * @param[in] loc_type Vector of LocationType key for TestingScheme to add. * @param[in] scheme TestingScheme to be added. */ - void add_testing_scheme_location_type(const std::vector& loc_type, const TestingScheme& scheme) + void add_scheme(const std::vector& loc_type, const TestingScheme& scheme) { for (auto& type : loc_type) { - add_testing_scheme_location_type(type, scheme); + add_scheme(type, scheme); } } @@ -224,8 +224,7 @@ class TestingStrategy * @param[in] location Location to check. * @param[in] t TimePoint when to run the strategy. */ - bool run_strategy_and_check_if_entry_allowed(PersonalRandomNumberGenerator& rng, Person& person, - const Location& location, TimePoint t); + bool run_and_check(PersonalRandomNumberGenerator& rng, Person& person, const Location& location, TimePoint t); /// This method is used by the default serialization feature. auto default_serialize() diff --git a/cpp/models/graph_abm/graph_abmodel.h b/cpp/models/graph_abm/graph_abmodel.h index a5d8cfee3a..45bb27fa91 100644 --- a/cpp/models/graph_abm/graph_abmodel.h +++ b/cpp/models/graph_abm/graph_abmodel.h @@ -113,7 +113,7 @@ class GraphABModel : public abm::Model return false; } // the Person cannot move if the performed TestingStrategy is positive - if (!m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)) { + if (!m_testing_strategy.run_and_check(personal_rng, person, target_location, t)) { return false; } // update worn mask to target location's requirements @@ -173,7 +173,7 @@ class GraphABModel : public abm::Model continue; } // skip the trip if the performed TestingStrategy is positive - if (!Base::m_testing_strategy.run_strategy_and_check_if_entry_allowed(personal_rng, person, target_location, t)) { + if (!Base::m_testing_strategy.run_and_check(personal_rng, person, target_location, t)) { continue; } // all requirements are met, move to target location diff --git a/cpp/simulations/abm.cpp b/cpp/simulations/abm.cpp index 47b6a767b1..8d47677e5c 100644 --- a/cpp/simulations/abm.cpp +++ b/cpp/simulations/abm.cpp @@ -338,7 +338,7 @@ void create_assign_locations(mio::abm::Model& model) auto testing_scheme = mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params, probability.draw_sample()); - model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::SocialEvent, testing_scheme); + model.get_testing_strategy().add_scheme(mio::abm::LocationType::SocialEvent, testing_scheme); // Add hospital and ICU with 5 maximum contacs. // For the number of agents in this example we assume a capacity of 584 persons (80 beds per 10000 residents in @@ -432,8 +432,7 @@ void create_assign_locations(mio::abm::Model& model) validity_period = mio::abm::days(7); auto testing_scheme_school = mio::abm::TestingScheme(testing_criteria_school, validity_period, start_date, end_date, test_params, probability.draw_sample()); - model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::School, - testing_scheme_school); + model.get_testing_strategy().add_scheme(mio::abm::LocationType::School, testing_scheme_school); auto test_at_work = std::vector{mio::abm::LocationType::Work}; auto testing_criteria_work = mio::abm::TestingCriteria(); @@ -441,7 +440,7 @@ void create_assign_locations(mio::abm::Model& model) assign_uniform_distribution(probability, 0.1, 0.5); auto testing_scheme_work = mio::abm::TestingScheme(testing_criteria_work, validity_period, start_date, end_date, test_params, probability.draw_sample()); - model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme_work); + model.get_testing_strategy().add_scheme(mio::abm::LocationType::Work, testing_scheme_work); } /** diff --git a/cpp/tests/test_abm_model.cpp b/cpp/tests/test_abm_model.cpp index 212f62cd55..0754dead03 100644 --- a/cpp/tests/test_abm_model.cpp +++ b/cpp/tests/test_abm_model.cpp @@ -623,10 +623,9 @@ TEST_F(TestModelTestingCriteria, testAddingAndUpdatingAndRunningTestingSchemes) auto testing_scheme = mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params_pcr, probability); - model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme); - EXPECT_EQ( - model.get_testing_strategy().run_strategy_and_check_if_entry_allowed(rng_person, person, work, current_time), - true); // no active testing scheme -> person can enter + model.get_testing_strategy().add_scheme(mio::abm::LocationType::Work, testing_scheme); + EXPECT_EQ(model.get_testing_strategy().run_and_check(rng_person, person, work, current_time), + true); // no active testing scheme -> person can enter current_time = mio::abm::TimePoint(0) + mio::abm::days(2); ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) @@ -635,9 +634,8 @@ TEST_F(TestModelTestingCriteria, testAddingAndUpdatingAndRunningTestingSchemes) .WillOnce(testing::Return(0.5)) // Probability for testing (is performed) .WillOnce(testing::Return(0.4)) // Test result is positive .WillOnce(testing::Return(0.0)); // Draw for isolation compliance (doesn't matter in this test) - EXPECT_EQ( - model.get_testing_strategy().run_strategy_and_check_if_entry_allowed(rng_person, person, work, current_time), - false); // Testing scheme active but person complies with testing + EXPECT_EQ(model.get_testing_strategy().run_and_check(rng_person, person, work, current_time), + false); // Testing scheme active but person complies with testing } /** @@ -870,7 +868,7 @@ TEST_F(TestModel, mobilityRulesWithAppliedNPIs) auto testing_scheme = mio::abm::TestingScheme(testing_criteria, testing_frequency, start_date, end_date, test_params, probability); - model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme); + model.get_testing_strategy().add_scheme(mio::abm::LocationType::Work, testing_scheme); ScopedMockDistribution>>> mock_exponential_dist; @@ -986,7 +984,7 @@ TEST_F(TestModel, mobilityTripWithAppliedNPIs) auto testing_scheme = mio::abm::TestingScheme(testing_criteria, testing_frequency, start_date, end_date, test_params, probability); - model.get_testing_strategy().add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme); + model.get_testing_strategy().add_scheme(mio::abm::LocationType::Work, testing_scheme); ScopedMockDistribution>>> mock_exponential_dist; diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index 752955be43..5219995712 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -122,11 +122,11 @@ TEST_F(TestTestingScheme, runScheme) .WillOnce(testing::Return(0.5)) // Person 2 tested negative and can enter .WillOnce(testing::Return(0.1)); // Person 1 compliant to testing - EXPECT_EQ(testing_scheme1.run_scheme_and_check_if_test_positive(rng_person1, person1, start_date), + EXPECT_EQ(testing_scheme1.run_and_test(rng_person1, person1, start_date), true); // Person tests and tests positive - EXPECT_EQ(testing_scheme2.run_scheme_and_check_if_test_positive(rng_person2, person2, start_date), + EXPECT_EQ(testing_scheme2.run_and_test(rng_person2, person2, start_date), false); // Person tests and tests negative - EXPECT_EQ(testing_scheme1.run_scheme_and_check_if_test_positive(rng_person1, person1, start_date), + EXPECT_EQ(testing_scheme1.run_and_test(rng_person1, person1, start_date), true); // Person doesn't test but used the last result (false to enter) } @@ -180,12 +180,12 @@ TEST_F(TestTestingScheme, initAndRunTestingStrategy) mio::abm::TestingStrategy test_strategy = mio::abm::TestingStrategy(std::vector{}, std::vector{}); - test_strategy.add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme1); - test_strategy.add_testing_scheme_location_type(mio::abm::LocationType::Work, testing_scheme2); - EXPECT_EQ(test_strategy.run_strategy_and_check_if_entry_allowed(rng_person1, person1, loc_work, start_date), + test_strategy.add_scheme(mio::abm::LocationType::Work, testing_scheme1); + test_strategy.add_scheme(mio::abm::LocationType::Work, testing_scheme2); + EXPECT_EQ(test_strategy.run_and_check(rng_person1, person1, loc_work, start_date), false); // Person tests and tests positive - EXPECT_EQ(test_strategy.run_strategy_and_check_if_entry_allowed(rng_person2, person2, loc_work, start_date), + EXPECT_EQ(test_strategy.run_and_check(rng_person2, person2, loc_work, start_date), true); // Person tests and tests negative - EXPECT_EQ(test_strategy.run_strategy_and_check_if_entry_allowed(rng_person1, person1, loc_work, start_date), + EXPECT_EQ(test_strategy.run_and_check(rng_person1, person1, loc_work, start_date), false); // Person doesn't test but used the last result (false to enter) } From 1778fd0b2fe91ebe8ae4ee7c30f8741662dc45e4 Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Tue, 20 May 2025 16:40:42 +0200 Subject: [PATCH 18/31] Add tests for edge cases in TestingCriteria and TestingScheme functionality --- cpp/tests/test_abm_testing_strategy.cpp | 381 ++++++++++++++++++++++++ 1 file changed, 381 insertions(+) diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index 5219995712..862810af70 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -189,3 +189,384 @@ TEST_F(TestTestingScheme, initAndRunTestingStrategy) EXPECT_EQ(test_strategy.run_and_check(rng_person1, person1, loc_work, start_date), false); // Person doesn't test but used the last result (false to enter) } + +/** + * @brief Test for edge cases in TestingCriteria. + */ +TEST_F(TestTestingCriteria, testingCriteriaEdgeCases) +{ + // Create test locations and persons with different age groups and infection states + mio::abm::Location home(mio::abm::LocationType::Home, 0, num_age_groups); + + // Test with various infection states + auto person_exposed = + make_test_person(this->get_rng(), home, age_group_15_to_34, mio::abm::InfectionState::Exposed); + auto person_symptoms = + make_test_person(this->get_rng(), home, age_group_15_to_34, mio::abm::InfectionState::InfectedSymptoms); + auto person_no_symptoms = + make_test_person(this->get_rng(), home, age_group_15_to_34, mio::abm::InfectionState::InfectedNoSymptoms); + auto person_recovered = + make_test_person(this->get_rng(), home, age_group_15_to_34, mio::abm::InfectionState::Recovered); + + mio::abm::TimePoint t{0}; + + // Test with only infection states criteria + std::vector test_infection_states = {mio::abm::InfectionState::InfectedSymptoms, + mio::abm::InfectionState::InfectedNoSymptoms}; + auto testing_criteria_infection = mio::abm::TestingCriteria({}, test_infection_states); + + // Should match only infected persons + EXPECT_EQ(testing_criteria_infection.evaluate(person_exposed, t), false); + EXPECT_EQ(testing_criteria_infection.evaluate(person_symptoms, t), true); + EXPECT_EQ(testing_criteria_infection.evaluate(person_no_symptoms, t), true); + EXPECT_EQ(testing_criteria_infection.evaluate(person_recovered, t), false); + + // Test with only age group criteria + std::vector test_age_groups = {age_group_15_to_34, age_group_35_to_59}; + auto testing_criteria_age = mio::abm::TestingCriteria(test_age_groups, {}); + + // Create persons with different age groups + auto person_young = + make_test_person(this->get_rng(), home, age_group_5_to_14, mio::abm::InfectionState::Susceptible); + auto person_adult = + make_test_person(this->get_rng(), home, age_group_15_to_34, mio::abm::InfectionState::Susceptible); + auto person_older = + make_test_person(this->get_rng(), home, age_group_35_to_59, mio::abm::InfectionState::Susceptible); + auto person_senior = + make_test_person(this->get_rng(), home, age_group_60_to_79, mio::abm::InfectionState::Susceptible); + + // Should match only specified age groups + EXPECT_EQ(testing_criteria_age.evaluate(person_young, t), false); + EXPECT_EQ(testing_criteria_age.evaluate(person_adult, t), true); + EXPECT_EQ(testing_criteria_age.evaluate(person_older, t), true); + EXPECT_EQ(testing_criteria_age.evaluate(person_senior, t), false); + + // Test with both age and infection state criteria + auto testing_criteria_both = mio::abm::TestingCriteria(test_age_groups, test_infection_states); + + // Should match only when both criteria are met + auto person_adult_infected = + make_test_person(this->get_rng(), home, age_group_15_to_34, mio::abm::InfectionState::InfectedSymptoms); + auto person_young_infected = + make_test_person(this->get_rng(), home, age_group_5_to_14, mio::abm::InfectionState::InfectedSymptoms); + auto person_adult_recovered = + make_test_person(this->get_rng(), home, age_group_15_to_34, mio::abm::InfectionState::Recovered); + + EXPECT_EQ(testing_criteria_both.evaluate(person_adult_infected, t), true); + EXPECT_EQ(testing_criteria_both.evaluate(person_young_infected, t), false); + EXPECT_EQ(testing_criteria_both.evaluate(person_adult_recovered, t), false); +} + +/** + * @brief Test for TestingScheme time-related functionality. + */ +TEST_F(TestTestingScheme, testingSchemeTimeValidity) +{ + auto testing_criteria = mio::abm::TestingCriteria(); + auto validity_period = mio::abm::days(1); + const auto start_date = mio::abm::TimePoint(100); + const auto end_date = mio::abm::TimePoint(500); + const auto probability = 0.8; + const auto test_params = mio::abm::TestParameters{0.9, 0.99, mio::abm::hours(48), mio::abm::TestType::PCR}; + + auto testing_scheme = + mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params, probability); + + // Test boundary conditions of is_active method + EXPECT_EQ(testing_scheme.is_active(mio::abm::TimePoint(99)), false); // Just before start + EXPECT_EQ(testing_scheme.is_active(mio::abm::TimePoint(100)), true); // At start + EXPECT_EQ(testing_scheme.is_active(mio::abm::TimePoint(300)), true); // Middle + EXPECT_EQ(testing_scheme.is_active(mio::abm::TimePoint(499)), true); // Just before end + EXPECT_EQ(testing_scheme.is_active(mio::abm::TimePoint(500)), false); // At end + EXPECT_EQ(testing_scheme.is_active(mio::abm::TimePoint(501)), false); // After end + + // Test getter methods + EXPECT_EQ(testing_scheme.get_start_date(), start_date); + EXPECT_EQ(testing_scheme.get_end_date(), end_date); +} + +/** + * @brief Test for TestingScheme result caching behavior. + */ +TEST_F(TestTestingScheme, testingSchemeResultCaching) +{ + auto validity_period = mio::abm::days(1); + const auto start_date = mio::abm::TimePoint(0); + const auto end_date = mio::abm::TimePoint(0) + mio::abm::days(5); + const auto probability = 0.8; + const auto test_params_pcr = mio::abm::TestParameters{0.9, 0.99, mio::abm::hours(2), mio::abm::TestType::PCR}; + + auto testing_criteria = mio::abm::TestingCriteria({}, {}); + auto testing_scheme = + mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params_pcr, probability); + + // Create test person and location + mio::abm::Location loc_home(mio::abm::LocationType::Home, 0, num_age_groups); + auto person = make_test_person(this->get_rng(), loc_home, age_group_15_to_34, + mio::abm::InfectionState::InfectedNoSymptoms, start_date); + auto rng = mio::abm::PersonalRandomNumberGenerator(person); + + // Mock uniform distribution to control test results + ScopedMockDistribution>>> mock_uniform_dist; + EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) + .WillOnce(testing::Return(0.1)) // Person is compliant + .WillOnce(testing::Return(0.7)) // Test is performed + .WillOnce(testing::Return(0.8)) // First test is positive + .WillOnce(testing::Return(0.5)) // Isolation compliance + .WillOnce(testing::Return(0.1)); // Person is compliant again + + // First test at t=10 + auto t1 = mio::abm::TimePoint(10); + bool result1 = testing_scheme.run_and_test(rng, person, t1); + EXPECT_EQ(result1, true); // We expect the test to be positive + + // Test result should be cached for validity period + auto t2 = t1 + mio::abm::hours(12); // Within validity period + bool result2 = testing_scheme.run_and_test(rng, person, t2); + EXPECT_EQ(result2, true); // Should use cached result without calling RNG + + // After validity period expires, a new test should be performed + // But we didn't mock additional RNG calls, so this would fail if it tries to run a new test +} + +/** + * @brief Test for different test types and parameters. + */ +TEST_F(TestTestingScheme, differentTestTypes) +{ + auto validity_period = mio::abm::days(1); + const auto start_date = mio::abm::TimePoint(0); + const auto end_date = mio::abm::TimePoint(500); + const auto probability = 1.0; // Always test + + // Create PCR test parameters with high accuracy but long wait time + const auto test_params_pcr = mio::abm::TestParameters{0.95, 0.99, mio::abm::hours(24), mio::abm::TestType::PCR}; + + // Create rapid test parameters with lower accuracy but quick results + const auto test_params_rapid = mio::abm::TestParameters{0.8, 0.9, mio::abm::hours(0), mio::abm::TestType::Antigen}; + + auto testing_criteria = mio::abm::TestingCriteria(); + + // Create test schemes for both test types + auto testing_scheme_pcr = + mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params_pcr, probability); + + auto testing_scheme_rapid = mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, + test_params_rapid, probability); + + // Create test persons with different infection states + mio::abm::Location loc_home(mio::abm::LocationType::Home, 0, num_age_groups); + auto person_infected = + make_test_person(this->get_rng(), loc_home, age_group_15_to_34, mio::abm::InfectionState::InfectedNoSymptoms, + start_date - test_params_pcr.required_time); + auto rng_infected = mio::abm::PersonalRandomNumberGenerator(person_infected); + + auto person_healthy = + make_test_person(this->get_rng(), loc_home, age_group_15_to_34, mio::abm::InfectionState::Susceptible, + start_date - test_params_pcr.required_time); + auto rng_healthy = mio::abm::PersonalRandomNumberGenerator(person_healthy); + + // Mock uniform distribution to control test results + ScopedMockDistribution>>> mock_uniform_dist; + EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) + .Times(testing::Exactly(11)) + .WillOnce(testing::Return(0.1)) // Infected person complies for PCR test + .WillOnce(testing::Return(0.7)) // PCR test is performed + .WillOnce(testing::Return(0.05)) // PCR test correctly identifies infection + .WillOnce(testing::Return(0.5)) // Person complies to isolation + .WillOnce(testing::Return(0.1)) // Healthy person complies for PCR test + .WillOnce(testing::Return(0.7)) // PCR test is performed + .WillOnce(testing::Return(0.98)) // PCR test correctly identifies no infection + .WillOnce(testing::Return(0.1)) // Infected person complies for rapid test + .WillOnce(testing::Return(0.7)) // Rapid test is performed + .WillOnce(testing::Return(0.3)) // Rapid test correctly identifies infection + .WillOnce(testing::Return(0.1)); // Healthy person complies for rapid test + + // Test PCR test with infected person + bool pcr_infected_result = testing_scheme_pcr.run_and_test(rng_infected, person_infected, start_date); + EXPECT_EQ(pcr_infected_result, true); // PCR should detect infection + + // Test PCR test with healthy person + bool pcr_healthy_result = testing_scheme_pcr.run_and_test(rng_healthy, person_healthy, start_date); + EXPECT_EQ(pcr_healthy_result, false); // PCR should correctly identify no infection + + // Test rapid test with infected person + bool rapid_infected_result = testing_scheme_rapid.run_and_test(rng_infected, person_infected, start_date); + EXPECT_EQ(rapid_infected_result, true); // Rapid test should detect infection +} + +/** + * @brief Test for combining multiple testing schemes in TestingStrategy. + */ +TEST_F(TestTestingScheme, multipleSchemesCombination) +{ + auto validity_period = mio::abm::days(1); + const auto start_date = mio::abm::TimePoint(0); + const auto end_date = mio::abm::TimePoint(500); + const auto probability = 0.8; + const auto test_params = mio::abm::TestParameters{0.9, 0.99, mio::abm::hours(2), mio::abm::TestType::PCR}; + + // Create testing schemes for different age groups + std::vector children_age_groups = {age_group_0_to_4, age_group_5_to_14}; + std::vector adult_age_groups = {age_group_15_to_34, age_group_35_to_59}; + std::vector senior_age_groups = {age_group_60_to_79, age_group_80_plus}; + + auto testing_criteria_children = mio::abm::TestingCriteria(children_age_groups, {}); + auto testing_criteria_adults = mio::abm::TestingCriteria(adult_age_groups, {}); + auto testing_criteria_seniors = mio::abm::TestingCriteria(senior_age_groups, {}); + + auto testing_scheme_children = mio::abm::TestingScheme(testing_criteria_children, validity_period, start_date, + end_date, test_params, probability); + auto testing_scheme_adults = mio::abm::TestingScheme(testing_criteria_adults, validity_period, start_date, end_date, + test_params, probability); + auto testing_scheme_seniors = mio::abm::TestingScheme(testing_criteria_seniors, validity_period, start_date, + end_date, test_params, probability); + + // Create TestingStrategy + mio::abm::TestingStrategy test_strategy; + + // Add schemes to different location types + test_strategy.add_scheme(mio::abm::LocationType::School, testing_scheme_children); + test_strategy.add_scheme(mio::abm::LocationType::Work, testing_scheme_adults); + test_strategy.add_scheme(mio::abm::LocationType::SocialEvent, testing_scheme_seniors); + + // Also add multiple location types at once + std::vector public_locations = {mio::abm::LocationType::BasicsShop, + mio::abm::LocationType::SocialEvent}; + test_strategy.add_scheme(public_locations, testing_scheme_adults); + + // Create locations + mio::abm::Location loc_home(mio::abm::LocationType::Home, 0, num_age_groups); + mio::abm::Location loc_school(mio::abm::LocationType::School, 1, num_age_groups); + mio::abm::Location loc_work(mio::abm::LocationType::Work, 2, num_age_groups); + mio::abm::Location loc_shop(mio::abm::LocationType::BasicsShop, 3, num_age_groups); + + // Create persons of different age groups + auto child = make_test_person(this->get_rng(), loc_home, age_group_5_to_14, mio::abm::InfectionState::Susceptible, + start_date); + auto adult = make_test_person(this->get_rng(), loc_home, age_group_35_to_59, mio::abm::InfectionState::Susceptible, + start_date); + + auto rng_child = mio::abm::PersonalRandomNumberGenerator(child); + auto rng_adult = mio::abm::PersonalRandomNumberGenerator(adult); + + // Mock uniform distribution to control test results + ScopedMockDistribution>>> mock_uniform_dist; + EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) + .Times(testing::Exactly(8)) + .WillOnce(testing::Return(0.1)) // Child complies for school test + .WillOnce(testing::Return(0.7)) // Child gets tested at school + .WillOnce(testing::Return(0.95)) // Child tests negative + .WillOnce(testing::Return(0.1)) // Adult complies for work test + .WillOnce(testing::Return(0.7)) // Adult gets tested at work + .WillOnce(testing::Return(0.999)) // Adult tests (false) positive + .WillOnce(testing::Return(0.5)) // Adult complies to isolation + .WillOnce(testing::Return(0.1)); // Adult complies for shop test + + // Test child at school - should pass the test + bool school_result = test_strategy.run_and_check(rng_child, child, loc_school, start_date); + EXPECT_EQ(school_result, true); // Child should be allowed to enter school + + // Test adult at work - should fail the test + bool work_result = test_strategy.run_and_check(rng_adult, adult, loc_work, start_date); + EXPECT_EQ(work_result, false); // Adult should not be allowed to enter work + + // Test adult at shop - should use cached result without testing again + bool shop_result = test_strategy.run_and_check(rng_adult, adult, loc_shop, start_date); + EXPECT_EQ(shop_result, false); // Adult should not be allowed to enter shop either +} + +/** + * @brief Test for TestingStrategy handling of home location. + */ +TEST_F(TestTestingScheme, testingStrategyHomeAccess) +{ + auto validity_period = mio::abm::days(1); + const auto start_date = mio::abm::TimePoint(0); + const auto end_date = mio::abm::TimePoint(500); + const auto probability = 0.8; + const auto test_params = mio::abm::TestParameters{0.9, 0.99, mio::abm::hours(2), mio::abm::TestType::PCR}; + + // Create a testing scheme for all infection states + std::vector all_states = { + mio::abm::InfectionState::InfectedSymptoms, mio::abm::InfectionState::InfectedNoSymptoms, + mio::abm::InfectionState::Exposed, mio::abm::InfectionState::Recovered, mio::abm::InfectionState::Susceptible}; + + auto testing_criteria = mio::abm::TestingCriteria({}, all_states); + auto testing_scheme = + mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params, probability); + + // Create TestingStrategy and add scheme to Home location type + mio::abm::TestingStrategy test_strategy; + test_strategy.add_scheme(mio::abm::LocationType::Home, testing_scheme); + + // Create home location and infected person + mio::abm::Location loc_home(mio::abm::LocationType::Home, 0, num_age_groups); + auto person = make_test_person(this->get_rng(), loc_home, age_group_15_to_34, + mio::abm::InfectionState::InfectedSymptoms, start_date); + auto rng = mio::abm::PersonalRandomNumberGenerator(person); + + // Mock uniform distribution to control random behavior in testing + ScopedMockDistribution>>> mock_uniform_dist; + EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) + .Times(testing::Exactly(4)) + .WillOnce(testing::Return(0.1)) // Person complies for testing + .WillOnce(testing::Return(0.7)) // Person gets tested + .WillOnce(testing::Return(0.05)) // Test is positive + .WillOnce(testing::Return(0.5)); // Person complies to isolation + + // Even though a person tests positive, they should always be allowed to enter home + bool result = test_strategy.run_and_check(rng, person, loc_home, start_date); + EXPECT_EQ(result, true); // Person should be allowed to enter home regardless of test result +} + +/** + * @brief Test for TestingStrategy with location-specific schemes. + */ +TEST_F(TestTestingScheme, locationSpecificSchemes) +{ + auto validity_period = mio::abm::days(1); + const auto start_date = mio::abm::TimePoint(0); + const auto end_date = mio::abm::TimePoint(500); + const auto probability = 0.8; + const auto test_params = mio::abm::TestParameters{0.9, 0.99, mio::abm::hours(2), mio::abm::TestType::PCR}; + + // Create a testing scheme + auto testing_criteria = mio::abm::TestingCriteria(); + auto testing_scheme = + mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params, probability); + + // Create TestingStrategy + mio::abm::TestingStrategy test_strategy; + + // Add scheme to a specific location by ID + mio::abm::LocationId specific_shop_id(42); + test_strategy.add_scheme(specific_shop_id, testing_scheme); + + // Create locations with different IDs but same type + mio::abm::Location shop1(mio::abm::LocationType::BasicsShop, 42, num_age_groups); // Has the specific ID + mio::abm::Location shop2(mio::abm::LocationType::BasicsShop, 43, num_age_groups); // Different ID + + // Create a test person + auto person = + make_test_person(this->get_rng(), shop1, age_group_15_to_34, mio::abm::InfectionState::Susceptible, start_date); + auto rng = mio::abm::PersonalRandomNumberGenerator(person); + + // Mock uniform distribution to control test results + ScopedMockDistribution>>> mock_uniform_dist; + EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) + .Times(testing::Exactly(4)) + .WillOnce(testing::Return(0.1)) // Person complies for testing at shop1 + .WillOnce(testing::Return(0.7)) // Person gets tested at shop1 + .WillOnce(testing::Return(0.995)) // Test is positive + .WillOnce(testing::Return(0.5)); // Person complies to isolation + + // Test at shop with specific ID - should run the scheme + bool result1 = test_strategy.run_and_check(rng, person, shop1, start_date); + EXPECT_EQ(result1, false); // Person should not be allowed to enter after positive test + + // Test at shop with different ID - no scheme should run + // No need to mock RNG calls here as no test should be performed + bool result2 = test_strategy.run_and_check(rng, person, shop2, start_date); + EXPECT_EQ(result2, true); // Person should be allowed to enter as no test is required +} From 475b57d07347ad9b5eab23e8a190e8bdff76b68c Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Tue, 20 May 2025 18:28:16 +0200 Subject: [PATCH 19/31] Enhance run_and_test documentation: clarify return value regarding test compliance --- cpp/models/abm/testing_strategy.h | 3 ++- cpp/tests/test_abm_testing_strategy.cpp | 13 ++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cpp/models/abm/testing_strategy.h b/cpp/models/abm/testing_strategy.h index 789129c243..664f89702c 100644 --- a/cpp/models/abm/testing_strategy.h +++ b/cpp/models/abm/testing_strategy.h @@ -133,6 +133,7 @@ class TestingScheme * @param[inout] rng PersonalRandomNumberGenerator of the Person being tested. * @param[in] person Person to check. * @param[in] t TimePoint when to run the scheme. + * @return Whether the Person is assumed to have a positive test result (could be not complying to the test). */ bool run_and_test(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const; @@ -218,7 +219,7 @@ class TestingStrategy /** * @brief Runs the TestingStrategy and potentially tests a Person when entering. * @details The TestingStrategy runs the TestingSchemes in the order they are added but first IDs and then types. - * It also decides if one can enter, if there are no positive tests, home is alwaays allowed. + * It also decides if one can enter, if there are no positive tests, home is always allowed. * @param[inout] rng PersonalRandomNumberGenerator of the Person being tested. * @param[in] person Person to check. * @param[in] location Location to check. diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index 862810af70..387da76c62 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -336,7 +336,7 @@ TEST_F(TestTestingScheme, differentTestTypes) { auto validity_period = mio::abm::days(1); const auto start_date = mio::abm::TimePoint(0); - const auto end_date = mio::abm::TimePoint(500); + const auto end_date = mio::abm::TimePoint(0) + mio::abm::days(5); const auto probability = 1.0; // Always test // Create PCR test parameters with high accuracy but long wait time @@ -380,18 +380,21 @@ TEST_F(TestTestingScheme, differentTestTypes) .WillOnce(testing::Return(0.1)) // Infected person complies for rapid test .WillOnce(testing::Return(0.7)) // Rapid test is performed .WillOnce(testing::Return(0.3)) // Rapid test correctly identifies infection - .WillOnce(testing::Return(0.1)); // Healthy person complies for rapid test + .WillOnce(testing::Return(0.1)); // Infected person complies for isolation // Test PCR test with infected person - bool pcr_infected_result = testing_scheme_pcr.run_and_test(rng_infected, person_infected, start_date); + bool pcr_infected_result = + testing_scheme_pcr.run_and_test(rng_infected, person_infected, start_date + mio::abm::hours(1)); EXPECT_EQ(pcr_infected_result, true); // PCR should detect infection // Test PCR test with healthy person - bool pcr_healthy_result = testing_scheme_pcr.run_and_test(rng_healthy, person_healthy, start_date); + bool pcr_healthy_result = + testing_scheme_pcr.run_and_test(rng_healthy, person_healthy, start_date + mio::abm::hours(1)); EXPECT_EQ(pcr_healthy_result, false); // PCR should correctly identify no infection // Test rapid test with infected person - bool rapid_infected_result = testing_scheme_rapid.run_and_test(rng_infected, person_infected, start_date); + bool rapid_infected_result = + testing_scheme_rapid.run_and_test(rng_infected, person_infected, start_date + mio::abm::hours(1)); EXPECT_EQ(rapid_infected_result, true); // Rapid test should detect infection } From 8db4f79897ace45156a8927817dc830d6824ba64 Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Sat, 21 Jun 2025 16:25:55 +0200 Subject: [PATCH 20/31] Refactor TestingScheme: move start and end date getters to private section and update tests to remove direct calls --- cpp/models/abm/testing_strategy.cpp | 7 ++--- cpp/models/abm/testing_strategy.h | 36 ++++++++++++------------- cpp/tests/test_abm_testing_strategy.cpp | 4 --- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/cpp/models/abm/testing_strategy.cpp b/cpp/models/abm/testing_strategy.cpp index d984397473..d9cd166c96 100644 --- a/cpp/models/abm/testing_strategy.cpp +++ b/cpp/models/abm/testing_strategy.cpp @@ -79,12 +79,12 @@ bool TestingScheme::is_active(TimePoint t) const bool TestingScheme::run_and_test(PersonalRandomNumberGenerator& rng, Person& person, TimePoint t) const { - if (!is_active(t)) { // If the scheme is not active, do nothing + if (!is_active(t)) { // If the scheme is not active, do nothing; early return return false; } if (!person.is_compliant( rng, InterventionType::Testing)) { // If the person is not compliant with the testing intervention - return true; // Assume positive test result + return true; // Assume positive test result as this should not allow entry although it is not the same } auto test_result = person.get_test_result(m_test_parameters.type); // If the agent has a test result valid until now, use the result directly @@ -145,7 +145,7 @@ bool TestingStrategy::run_and_check(PersonalRandomNumberGenerator& rng, Person& return true; // No applicable schemes } - bool entry_allowed = true; + bool entry_allowed = true; // Assume entry is allowed unless a scheme denies it // Check schemes for specific location id if (has_id_schemes) { for (const auto& scheme : m_testing_schemes_at_location_id[loc_id].schemes) { @@ -164,6 +164,7 @@ bool TestingStrategy::run_and_check(PersonalRandomNumberGenerator& rng, Person& } } + // If the location is a home, entry is always allowed regardless of testing, no early return here because we still need to test if (location.get_type() == LocationType::Home) { return true; } diff --git a/cpp/models/abm/testing_strategy.h b/cpp/models/abm/testing_strategy.h index 664f89702c..12f6015229 100644 --- a/cpp/models/abm/testing_strategy.h +++ b/cpp/models/abm/testing_strategy.h @@ -110,24 +110,6 @@ class TestingScheme */ bool is_active(TimePoint t) const; - /** - * @brief Gets the start date of the scheme. - * @return The start date of the scheme. - */ - mio::abm::TimePoint get_start_date() const - { - return m_start_date; - } - - /** - * @brief Gets the end date of the scheme. - * @return The end date of the scheme. - */ - mio::abm::TimePoint get_end_date() const - { - return m_end_date; - } - /** * @brief Runs the TestingScheme and potentially tests a Person. * @param[inout] rng PersonalRandomNumberGenerator of the Person being tested. @@ -153,6 +135,24 @@ class TestingScheme friend DefaultFactory; TestingScheme() = default; + /** + * @brief Gets the start date of the scheme. + * @return The start date of the scheme. + */ + mio::abm::TimePoint get_start_date() const + { + return m_start_date; + } + + /** + * @brief Gets the end date of the scheme. + * @return The end date of the scheme. + */ + mio::abm::TimePoint get_end_date() const + { + return m_end_date; + } + TestingCriteria m_testing_criteria; ///< TestingCriteria of the scheme. TimeSpan m_validity_period; ///< The valid TimeSpan of the test. TimePoint m_start_date; ///< Starting date of the scheme. diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index 387da76c62..2bd3223286 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -279,10 +279,6 @@ TEST_F(TestTestingScheme, testingSchemeTimeValidity) EXPECT_EQ(testing_scheme.is_active(mio::abm::TimePoint(499)), true); // Just before end EXPECT_EQ(testing_scheme.is_active(mio::abm::TimePoint(500)), false); // At end EXPECT_EQ(testing_scheme.is_active(mio::abm::TimePoint(501)), false); // After end - - // Test getter methods - EXPECT_EQ(testing_scheme.get_start_date(), start_date); - EXPECT_EQ(testing_scheme.get_end_date(), end_date); } /** From eca897cfe5790eb8471f29fa0e8c8d88da380ce5 Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Sat, 21 Jun 2025 17:08:32 +0200 Subject: [PATCH 21/31] test --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c4fedc5994..299af0b08f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -173,7 +173,7 @@ jobs: - uses: ./.github/actions/linux-test with: artifact-pattern: gcc-latest-Release - num-repeat: 10 + num-repeat: 2 openmp: ON test-cpp-msvc: From 0f452ae73870de6188c160896e48724919d83426 Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Sat, 21 Jun 2025 17:12:09 +0200 Subject: [PATCH 22/31] [skip CI] revert test --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 299af0b08f..c4fedc5994 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -173,7 +173,7 @@ jobs: - uses: ./.github/actions/linux-test with: artifact-pattern: gcc-latest-Release - num-repeat: 2 + num-repeat: 10 openmp: ON test-cpp-msvc: From 91fb8bac4bb06c09781a8f608f7aa5bee5717c4a Mon Sep 17 00:00:00 2001 From: Sascha Korf <51127093+xsaschako@users.noreply.github.com> Date: Sat, 21 Jun 2025 19:01:21 +0200 Subject: [PATCH 23/31] test bug --- .../surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py b/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py index 937e9a4efd..d560138582 100644 --- a/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py +++ b/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py @@ -505,7 +505,7 @@ def test_network_fit(self, mock_population, mock_baseline, mock_minimum): model.network_fit( path=self.path, model=md, modeltype='classic', training_parameter=training_parameter, filename="data_secir_groups.pickle") - error_message = "[Errno 2] No such file or directory in the fake filesystem: '" + \ + error_message = "[Errno 2] No such file or directory: '" + \ self.path + "data_secir_groups.pickle'" self.assertEqual(str(error.exception), error_message) From 6483fd45ea43b42bbb080ed7dc893c62e394003e Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:27:44 +0200 Subject: [PATCH 24/31] test_bugfix --- cpp/tests/test_abm_testing_strategy.cpp | 34 ++++++++++++++++--------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index 2bd3223286..d98bd1ac46 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -338,8 +338,8 @@ TEST_F(TestTestingScheme, differentTestTypes) // Create PCR test parameters with high accuracy but long wait time const auto test_params_pcr = mio::abm::TestParameters{0.95, 0.99, mio::abm::hours(24), mio::abm::TestType::PCR}; - // Create rapid test parameters with lower accuracy but quick results - const auto test_params_rapid = mio::abm::TestParameters{0.8, 0.9, mio::abm::hours(0), mio::abm::TestType::Antigen}; + // Create rapid test parameters with lower accuracy but quick results (we need to set this to 24 hours to avoid the person getting healthy randomly) + const auto test_params_rapid = mio::abm::TestParameters{0.8, 0.9, mio::abm::hours(24), mio::abm::TestType::Antigen}; auto testing_criteria = mio::abm::TestingCriteria(); @@ -363,31 +363,41 @@ TEST_F(TestTestingScheme, differentTestTypes) auto rng_healthy = mio::abm::PersonalRandomNumberGenerator(person_healthy); // Mock uniform distribution to control test results + // Mock uniform distribution to control test results for PCR test with infected person ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(11)) + .Times(testing::Exactly(4)) .WillOnce(testing::Return(0.1)) // Infected person complies for PCR test .WillOnce(testing::Return(0.7)) // PCR test is performed - .WillOnce(testing::Return(0.05)) // PCR test correctly identifies infection - .WillOnce(testing::Return(0.5)) // Person complies to isolation - .WillOnce(testing::Return(0.1)) // Healthy person complies for PCR test - .WillOnce(testing::Return(0.7)) // PCR test is performed - .WillOnce(testing::Return(0.98)) // PCR test correctly identifies no infection - .WillOnce(testing::Return(0.1)) // Infected person complies for rapid test - .WillOnce(testing::Return(0.7)) // Rapid test is performed - .WillOnce(testing::Return(0.3)) // Rapid test correctly identifies infection - .WillOnce(testing::Return(0.1)); // Infected person complies for isolation + .WillOnce(testing::Return(0.05)) // PCR test correctly identifies infection (< sensitivity 0.95) + .WillOnce(testing::Return(0.5)); // Person complies to isolation // Test PCR test with infected person bool pcr_infected_result = testing_scheme_pcr.run_and_test(rng_infected, person_infected, start_date + mio::abm::hours(1)); EXPECT_EQ(pcr_infected_result, true); // PCR should detect infection + // Reset mock for PCR test with healthy person + EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) + .Times(testing::Exactly(3)) + .WillOnce(testing::Return(0.1)) // Healthy person complies for PCR test + .WillOnce(testing::Return(0.7)) // PCR test is performed + .WillOnce(testing::Return(0.98)); // PCR test correctly identifies no infection (< specificity 0.99) + // Test PCR test with healthy person bool pcr_healthy_result = testing_scheme_pcr.run_and_test(rng_healthy, person_healthy, start_date + mio::abm::hours(1)); EXPECT_EQ(pcr_healthy_result, false); // PCR should correctly identify no infection + // Reset mock for rapid test with infected person + + EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) + .Times(testing::Exactly(4)) + .WillOnce(testing::Return(0.1)) // Infected person complies for rapid test + .WillOnce(testing::Return(0.7)) // Rapid test is performed + .WillOnce(testing::Return(0.0)) // Rapid test correctly identifies infection (< sensitivity 0.8) + .WillOnce(testing::Return(0.1)); // Infected person complies for isolation + // Test rapid test with infected person bool rapid_infected_result = testing_scheme_rapid.run_and_test(rng_infected, person_infected, start_date + mio::abm::hours(1)); From 923e01cd8e6b6b71011811c1423d6fadcb06f035 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:36:47 +0200 Subject: [PATCH 25/31] enhance performance and add test --- cpp/models/abm/testing_strategy.cpp | 4 +- cpp/tests/test_abm_model.cpp | 3 +- cpp/tests/test_abm_testing_strategy.cpp | 83 +++--- pycode/memilio-simulation/CMakeLists.txt | 41 +-- .../simulation/bindings/pickle_serializer.h | 10 + pycode/memilio-simulation/mv/bin/Activate.ps1 | 247 ++++++++++++++++++ pycode/memilio-simulation/mv/bin/activate | 63 +++++ pycode/memilio-simulation/mv/bin/activate.csh | 26 ++ .../memilio-simulation/mv/bin/activate.fish | 69 +++++ pycode/memilio-simulation/mv/bin/ccmake | 8 + pycode/memilio-simulation/mv/bin/cmake | 8 + pycode/memilio-simulation/mv/bin/cpack | 8 + pycode/memilio-simulation/mv/bin/ctest | 8 + pycode/memilio-simulation/mv/bin/distro | 8 + pycode/memilio-simulation/mv/bin/f2py | 8 + pycode/memilio-simulation/mv/bin/f2py3 | 8 + pycode/memilio-simulation/mv/bin/f2py3.11 | 8 + pycode/memilio-simulation/mv/bin/ninja | Bin 0 -> 613352 bytes pycode/memilio-simulation/mv/bin/pip | 8 + pycode/memilio-simulation/mv/bin/pip3 | 8 + pycode/memilio-simulation/mv/bin/pip3.11 | 8 + .../memilio-simulation/mv/bin/pybind11-config | 8 + pycode/memilio-simulation/mv/bin/python | 1 + pycode/memilio-simulation/mv/bin/python3 | 1 + pycode/memilio-simulation/mv/bin/python3.11 | 1 + pycode/memilio-simulation/mv/bin/wheel | 8 + pycode/memilio-simulation/mv/pyvenv.cfg | 5 + 27 files changed, 604 insertions(+), 54 deletions(-) create mode 100644 pycode/memilio-simulation/mv/bin/Activate.ps1 create mode 100644 pycode/memilio-simulation/mv/bin/activate create mode 100644 pycode/memilio-simulation/mv/bin/activate.csh create mode 100644 pycode/memilio-simulation/mv/bin/activate.fish create mode 100755 pycode/memilio-simulation/mv/bin/ccmake create mode 100755 pycode/memilio-simulation/mv/bin/cmake create mode 100755 pycode/memilio-simulation/mv/bin/cpack create mode 100755 pycode/memilio-simulation/mv/bin/ctest create mode 100755 pycode/memilio-simulation/mv/bin/distro create mode 100755 pycode/memilio-simulation/mv/bin/f2py create mode 100755 pycode/memilio-simulation/mv/bin/f2py3 create mode 100755 pycode/memilio-simulation/mv/bin/f2py3.11 create mode 100755 pycode/memilio-simulation/mv/bin/ninja create mode 100755 pycode/memilio-simulation/mv/bin/pip create mode 100755 pycode/memilio-simulation/mv/bin/pip3 create mode 100755 pycode/memilio-simulation/mv/bin/pip3.11 create mode 100755 pycode/memilio-simulation/mv/bin/pybind11-config create mode 120000 pycode/memilio-simulation/mv/bin/python create mode 120000 pycode/memilio-simulation/mv/bin/python3 create mode 120000 pycode/memilio-simulation/mv/bin/python3.11 create mode 100755 pycode/memilio-simulation/mv/bin/wheel create mode 100644 pycode/memilio-simulation/mv/pyvenv.cfg diff --git a/cpp/models/abm/testing_strategy.cpp b/cpp/models/abm/testing_strategy.cpp index d9cd166c96..1fdebd76a6 100644 --- a/cpp/models/abm/testing_strategy.cpp +++ b/cpp/models/abm/testing_strategy.cpp @@ -82,7 +82,9 @@ bool TestingScheme::run_and_test(PersonalRandomNumberGenerator& rng, Person& per if (!is_active(t)) { // If the scheme is not active, do nothing; early return return false; } - if (!person.is_compliant( + if (person.get_compliance(InterventionType::Testing) < + 1.0 && // Dont need to draw a random number if the person is compliant either way + !person.is_compliant( rng, InterventionType::Testing)) { // If the person is not compliant with the testing intervention return true; // Assume positive test result as this should not allow entry although it is not the same } diff --git a/cpp/tests/test_abm_model.cpp b/cpp/tests/test_abm_model.cpp index 0754dead03..1899b5ff8d 100644 --- a/cpp/tests/test_abm_model.cpp +++ b/cpp/tests/test_abm_model.cpp @@ -629,8 +629,7 @@ TEST_F(TestModelTestingCriteria, testAddingAndUpdatingAndRunningTestingSchemes) current_time = mio::abm::TimePoint(0) + mio::abm::days(2); ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(4)) - .WillOnce(testing::Return(0.7)) // Person complies with testing + .Times(testing::Exactly(3)) .WillOnce(testing::Return(0.5)) // Probability for testing (is performed) .WillOnce(testing::Return(0.4)) // Test result is positive .WillOnce(testing::Return(0.0)); // Draw for isolation compliance (doesn't matter in this test) diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index d98bd1ac46..d5b83b9008 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -112,15 +112,12 @@ TEST_F(TestTestingScheme, runScheme) // Mock uniform distribution to control random behavior in testing. ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(8)) - .WillOnce(testing::Return(0.1)) // Person 1 compliant to testing + .Times(testing::Exactly(5)) .WillOnce(testing::Return(0.7)) // Person 1 got test .WillOnce(testing::Return(0.7)) // Test is positive .WillOnce(testing::Return(0.5)) // Person 1 complies to isolation - .WillOnce(testing::Return(0.1)) // Person 2 compliant to testing .WillOnce(testing::Return(0.7)) // Person 2 got test - .WillOnce(testing::Return(0.5)) // Person 2 tested negative and can enter - .WillOnce(testing::Return(0.1)); // Person 1 compliant to testing + .WillOnce(testing::Return(0.5)); // Person 2 tested negative and can enter EXPECT_EQ(testing_scheme1.run_and_test(rng_person1, person1, start_date), true); // Person tests and tests positive @@ -164,18 +161,12 @@ TEST_F(TestTestingScheme, initAndRunTestingStrategy) // Mock uniform distribution to control random behavior in testing. ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly((11))) - .WillOnce(testing::Return(0.7)) // Person 1 complies to testing + .Times(testing::Exactly((5))) .WillOnce(testing::Return(0.7)) // Person 1 is tested for scheme 1 .WillOnce(testing::Return(0.7)) // Test of Person 1 is positive .WillOnce(testing::Return(0.7)) // Person 1 complies to isolation - .WillOnce(testing::Return(0.7)) // Would Person 1 be compliant to testing again(other Scheme)? - .WillOnce(testing::Return(0.7)) // Person 2 complies to testing .WillOnce(testing::Return(0.7)) // Person 2 is tested for scheme 2 - .WillOnce(testing::Return(0.5)) // Test of Person 2 is negative - .WillOnce(testing::Return(0.7)) // Would Person 2 be compliant to testing again (other Scheme)? - .WillOnce(testing::Return(0.7)) // Person 1 complies to testing - .WillOnce(testing::Return(0.7)); // Person 1 complies to testing (again) + .WillOnce(testing::Return(0.5)); // Test of Person 2 is negative mio::abm::TestingStrategy test_strategy = mio::abm::TestingStrategy(std::vector{}, @@ -305,11 +296,9 @@ TEST_F(TestTestingScheme, testingSchemeResultCaching) // Mock uniform distribution to control test results ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .WillOnce(testing::Return(0.1)) // Person is compliant .WillOnce(testing::Return(0.7)) // Test is performed .WillOnce(testing::Return(0.8)) // First test is positive - .WillOnce(testing::Return(0.5)) // Isolation compliance - .WillOnce(testing::Return(0.1)); // Person is compliant again + .WillOnce(testing::Return(0.5)); // Isolation compliance // First test at t=10 auto t1 = mio::abm::TimePoint(10); @@ -366,8 +355,7 @@ TEST_F(TestTestingScheme, differentTestTypes) // Mock uniform distribution to control test results for PCR test with infected person ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(4)) - .WillOnce(testing::Return(0.1)) // Infected person complies for PCR test + .Times(testing::Exactly(3)) .WillOnce(testing::Return(0.7)) // PCR test is performed .WillOnce(testing::Return(0.05)) // PCR test correctly identifies infection (< sensitivity 0.95) .WillOnce(testing::Return(0.5)); // Person complies to isolation @@ -379,8 +367,7 @@ TEST_F(TestTestingScheme, differentTestTypes) // Reset mock for PCR test with healthy person EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(3)) - .WillOnce(testing::Return(0.1)) // Healthy person complies for PCR test + .Times(testing::Exactly(2)) .WillOnce(testing::Return(0.7)) // PCR test is performed .WillOnce(testing::Return(0.98)); // PCR test correctly identifies no infection (< specificity 0.99) @@ -392,8 +379,7 @@ TEST_F(TestTestingScheme, differentTestTypes) // Reset mock for rapid test with infected person EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(4)) - .WillOnce(testing::Return(0.1)) // Infected person complies for rapid test + .Times(testing::Exactly(3)) .WillOnce(testing::Return(0.7)) // Rapid test is performed .WillOnce(testing::Return(0.0)) // Rapid test correctly identifies infection (< sensitivity 0.8) .WillOnce(testing::Return(0.1)); // Infected person complies for isolation @@ -462,15 +448,12 @@ TEST_F(TestTestingScheme, multipleSchemesCombination) // Mock uniform distribution to control test results ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(8)) - .WillOnce(testing::Return(0.1)) // Child complies for school test + .Times(testing::Exactly(5)) .WillOnce(testing::Return(0.7)) // Child gets tested at school .WillOnce(testing::Return(0.95)) // Child tests negative - .WillOnce(testing::Return(0.1)) // Adult complies for work test .WillOnce(testing::Return(0.7)) // Adult gets tested at work .WillOnce(testing::Return(0.999)) // Adult tests (false) positive - .WillOnce(testing::Return(0.5)) // Adult complies to isolation - .WillOnce(testing::Return(0.1)); // Adult complies for shop test + .WillOnce(testing::Return(0.5)); // Adult complies to isolation // Test child at school - should pass the test bool school_result = test_strategy.run_and_check(rng_child, child, loc_school, start_date); @@ -518,8 +501,7 @@ TEST_F(TestTestingScheme, testingStrategyHomeAccess) // Mock uniform distribution to control random behavior in testing ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(4)) - .WillOnce(testing::Return(0.1)) // Person complies for testing + .Times(testing::Exactly(3)) .WillOnce(testing::Return(0.7)) // Person gets tested .WillOnce(testing::Return(0.05)) // Test is positive .WillOnce(testing::Return(0.5)); // Person complies to isolation @@ -564,8 +546,7 @@ TEST_F(TestTestingScheme, locationSpecificSchemes) // Mock uniform distribution to control test results ScopedMockDistribution>>> mock_uniform_dist; EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) - .Times(testing::Exactly(4)) - .WillOnce(testing::Return(0.1)) // Person complies for testing at shop1 + .Times(testing::Exactly(3)) .WillOnce(testing::Return(0.7)) // Person gets tested at shop1 .WillOnce(testing::Return(0.995)) // Test is positive .WillOnce(testing::Return(0.5)); // Person complies to isolation @@ -579,3 +560,43 @@ TEST_F(TestTestingScheme, locationSpecificSchemes) bool result2 = test_strategy.run_and_check(rng, person, shop2, start_date); EXPECT_EQ(result2, true); // Person should be allowed to enter as no test is required } + +TEST_F(TestTestingScheme, testCompliance) +{ + auto validity_period = mio::abm::days(1); + const auto start_date = mio::abm::TimePoint(0); + const auto end_date = mio::abm::TimePoint(500); + const auto probability = 0.8; + const auto test_params = mio::abm::TestParameters{0.9, 0.99, mio::abm::hours(2), mio::abm::TestType::PCR}; + + // Create a testing scheme + auto testing_criteria = mio::abm::TestingCriteria(); + auto testing_scheme = + mio::abm::TestingScheme(testing_criteria, validity_period, start_date, end_date, test_params, probability); + + // Create TestingStrategy + mio::abm::TestingStrategy test_strategy; + + // Add scheme to a specific location by ID + mio::abm::LocationId specific_shop_id(42); + test_strategy.add_scheme(specific_shop_id, testing_scheme); + + // Create locations with different IDs but same type + mio::abm::Location shop1(mio::abm::LocationType::BasicsShop, 42, num_age_groups); // Has the specific ID + + // Create a test person + auto person = + make_test_person(this->get_rng(), shop1, age_group_15_to_34, mio::abm::InfectionState::Susceptible, start_date); + auto rng = mio::abm::PersonalRandomNumberGenerator(person); + person.set_compliance(mio::abm::InterventionType::Testing, 0.1); // Set compliance for testing + + // Mock uniform distribution to control test results + ScopedMockDistribution>>> mock_uniform_dist; + EXPECT_CALL(mock_uniform_dist.get_mock(), invoke) + .Times(testing::Exactly(1)) + .WillOnce(testing::Return(0.2)); // Person is not compliant for testing + + // Test at shop with specific ID - should run the scheme + bool result1 = test_strategy.run_and_check(rng, person, shop1, start_date); + EXPECT_EQ(result1, false); // Person should not be allowed to enter after positive test +} diff --git a/pycode/memilio-simulation/CMakeLists.txt b/pycode/memilio-simulation/CMakeLists.txt index 04f4137ca8..605045adc2 100644 --- a/pycode/memilio-simulation/CMakeLists.txt +++ b/pycode/memilio-simulation/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.13) project(memilio-python) - +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) option(MEMILIO_USE_BUNDLED_PYBIND11 "Use pybind11 bundled with this library." ON) mark_as_advanced(MEMILIO_USE_BUNDLED_PYBIND11) @@ -66,22 +67,22 @@ add_pymio_module(_simulation memilio/simulation/bindings/utils/uncertain_value.cpp ) -add_pymio_module(_simulation_osir - LINKED_LIBRARIES memilio ode_sir - SOURCES memilio/simulation/bindings/models/osir.cpp -) - -add_pymio_module(_simulation_oseir - LINKED_LIBRARIES memilio ode_seir - SOURCES memilio/simulation/bindings/models/oseir.cpp -) - -add_pymio_module(_simulation_osecir - LINKED_LIBRARIES memilio ode_secir - SOURCES memilio/simulation/bindings/models/osecir.cpp -) - -add_pymio_module(_simulation_osecirvvs - LINKED_LIBRARIES memilio ode_secirvvs - SOURCES memilio/simulation/bindings/models/osecirvvs.cpp -) +# add_pymio_module(_simulation_osir +# LINKED_LIBRARIES memilio ode_sir +# SOURCES memilio/simulation/bindings/models/osir.cpp +# ) + +# add_pymio_module(_simulation_oseir +# LINKED_LIBRARIES memilio ode_seir +# SOURCES memilio/simulation/bindings/models/oseir.cpp +# ) + +# add_pymio_module(_simulation_osecir +# LINKED_LIBRARIES memilio ode_secir +# SOURCES memilio/simulation/bindings/models/osecir.cpp +# ) + +# add_pymio_module(_simulation_osecirvvs +# LINKED_LIBRARIES memilio ode_secirvvs +# SOURCES memilio/simulation/bindings/models/osecirvvs.cpp +# ) diff --git a/pycode/memilio-simulation/memilio/simulation/bindings/pickle_serializer.h b/pycode/memilio-simulation/memilio/simulation/bindings/pickle_serializer.h index d20ab9c5a4..74c949dc83 100644 --- a/pycode/memilio-simulation/memilio/simulation/bindings/pickle_serializer.h +++ b/pycode/memilio-simulation/memilio/simulation/bindings/pickle_serializer.h @@ -68,6 +68,16 @@ template <> struct PickleType : std::true_type { }; +// Add support for long (Eigen::Index is typically long) +template <> +struct PickleType : std::true_type { +}; + +// Add support for size_t +template <> +struct PickleType : std::true_type { +}; + //double template <> struct PickleType : std::true_type { diff --git a/pycode/memilio-simulation/mv/bin/Activate.ps1 b/pycode/memilio-simulation/mv/bin/Activate.ps1 new file mode 100644 index 0000000000..b49d77ba44 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/Activate.ps1 @@ -0,0 +1,247 @@ +<# +.Synopsis +Activate a Python virtual environment for the current PowerShell session. + +.Description +Pushes the python executable for a virtual environment to the front of the +$Env:PATH environment variable and sets the prompt to signify that you are +in a Python virtual environment. Makes use of the command line switches as +well as the `pyvenv.cfg` file values present in the virtual environment. + +.Parameter VenvDir +Path to the directory that contains the virtual environment to activate. The +default value for this is the parent of the directory that the Activate.ps1 +script is located within. + +.Parameter Prompt +The prompt prefix to display when this virtual environment is activated. By +default, this prompt is the name of the virtual environment folder (VenvDir) +surrounded by parentheses and followed by a single space (ie. '(.venv) '). + +.Example +Activate.ps1 +Activates the Python virtual environment that contains the Activate.ps1 script. + +.Example +Activate.ps1 -Verbose +Activates the Python virtual environment that contains the Activate.ps1 script, +and shows extra information about the activation as it executes. + +.Example +Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv +Activates the Python virtual environment located in the specified location. + +.Example +Activate.ps1 -Prompt "MyPython" +Activates the Python virtual environment that contains the Activate.ps1 script, +and prefixes the current prompt with the specified string (surrounded in +parentheses) while the virtual environment is active. + +.Notes +On Windows, it may be required to enable this Activate.ps1 script by setting the +execution policy for the user. You can do this by issuing the following PowerShell +command: + +PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser + +For more information on Execution Policies: +https://go.microsoft.com/fwlink/?LinkID=135170 + +#> +Param( + [Parameter(Mandatory = $false)] + [String] + $VenvDir, + [Parameter(Mandatory = $false)] + [String] + $Prompt +) + +<# Function declarations --------------------------------------------------- #> + +<# +.Synopsis +Remove all shell session elements added by the Activate script, including the +addition of the virtual environment's Python executable from the beginning of +the PATH variable. + +.Parameter NonDestructive +If present, do not remove this function from the global namespace for the +session. + +#> +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + + # The prior prompt: + if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { + Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt + Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT + } + + # The prior PYTHONHOME: + if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { + Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME + Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME + } + + # The prior PATH: + if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { + Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH + Remove-Item -Path Env:_OLD_VIRTUAL_PATH + } + + # Just remove the VIRTUAL_ENV altogether: + if (Test-Path -Path Env:VIRTUAL_ENV) { + Remove-Item -Path env:VIRTUAL_ENV + } + + # Just remove VIRTUAL_ENV_PROMPT altogether. + if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { + Remove-Item -Path env:VIRTUAL_ENV_PROMPT + } + + # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: + if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { + Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force + } + + # Leave deactivate function in the global namespace if requested: + if (-not $NonDestructive) { + Remove-Item -Path function:deactivate + } +} + +<# +.Description +Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the +given folder, and returns them in a map. + +For each line in the pyvenv.cfg file, if that line can be parsed into exactly +two strings separated by `=` (with any amount of whitespace surrounding the =) +then it is considered a `key = value` line. The left hand string is the key, +the right hand is the value. + +If the value starts with a `'` or a `"` then the first and last character is +stripped from the value before being captured. + +.Parameter ConfigDir +Path to the directory that contains the `pyvenv.cfg` file. +#> +function Get-PyVenvConfig( + [String] + $ConfigDir +) { + Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" + + # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). + $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue + + # An empty map will be returned if no config file is found. + $pyvenvConfig = @{ } + + if ($pyvenvConfigPath) { + + Write-Verbose "File exists, parse `key = value` lines" + $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath + + $pyvenvConfigContent | ForEach-Object { + $keyval = $PSItem -split "\s*=\s*", 2 + if ($keyval[0] -and $keyval[1]) { + $val = $keyval[1] + + # Remove extraneous quotations around a string value. + if ("'""".Contains($val.Substring(0, 1))) { + $val = $val.Substring(1, $val.Length - 2) + } + + $pyvenvConfig[$keyval[0]] = $val + Write-Verbose "Adding Key: '$($keyval[0])'='$val'" + } + } + } + return $pyvenvConfig +} + + +<# Begin Activate script --------------------------------------------------- #> + +# Determine the containing directory of this script +$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition +$VenvExecDir = Get-Item -Path $VenvExecPath + +Write-Verbose "Activation script is located in path: '$VenvExecPath'" +Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" +Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" + +# Set values required in priority: CmdLine, ConfigFile, Default +# First, get the location of the virtual environment, it might not be +# VenvExecDir if specified on the command line. +if ($VenvDir) { + Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" +} +else { + Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." + $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") + Write-Verbose "VenvDir=$VenvDir" +} + +# Next, read the `pyvenv.cfg` file to determine any required value such +# as `prompt`. +$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir + +# Next, set the prompt from the command line, or the config file, or +# just use the name of the virtual environment folder. +if ($Prompt) { + Write-Verbose "Prompt specified as argument, using '$Prompt'" +} +else { + Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" + if ($pyvenvCfg -and $pyvenvCfg['prompt']) { + Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" + $Prompt = $pyvenvCfg['prompt']; + } + else { + Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" + Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" + $Prompt = Split-Path -Path $venvDir -Leaf + } +} + +Write-Verbose "Prompt = '$Prompt'" +Write-Verbose "VenvDir='$VenvDir'" + +# Deactivate any currently active virtual environment, but leave the +# deactivate function in place. +deactivate -nondestructive + +# Now set the environment variable VIRTUAL_ENV, used by many tools to determine +# that there is an activated venv. +$env:VIRTUAL_ENV = $VenvDir + +if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { + + Write-Verbose "Setting prompt to '$Prompt'" + + # Set the prompt to include the env name + # Make sure _OLD_VIRTUAL_PROMPT is global + function global:_OLD_VIRTUAL_PROMPT { "" } + Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT + New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt + + function global:prompt { + Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " + _OLD_VIRTUAL_PROMPT + } + $env:VIRTUAL_ENV_PROMPT = $Prompt +} + +# Clear PYTHONHOME +if (Test-Path -Path Env:PYTHONHOME) { + Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME + Remove-Item -Path Env:PYTHONHOME +} + +# Add the venv to the PATH +Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH +$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/pycode/memilio-simulation/mv/bin/activate b/pycode/memilio-simulation/mv/bin/activate new file mode 100644 index 0000000000..8e15189229 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/activate @@ -0,0 +1,63 @@ +# This file must be used with "source bin/activate" *from bash* +# you cannot run it directly + +deactivate () { + # reset old environment variables + if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then + PATH="${_OLD_VIRTUAL_PATH:-}" + export PATH + unset _OLD_VIRTUAL_PATH + fi + if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then + PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" + export PYTHONHOME + unset _OLD_VIRTUAL_PYTHONHOME + fi + + # Call hash to forget past commands. Without forgetting + # past commands the $PATH changes we made may not be respected + hash -r 2> /dev/null + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + unset VIRTUAL_ENV_PROMPT + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV=/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/"bin":$PATH" +export PATH + +# unset PYTHONHOME if set +# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) +# could use `if (set -u; : $PYTHONHOME) ;` in bash +if [ -n "${PYTHONHOME:-}" ] ; then + _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" + unset PYTHONHOME +fi + +if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then + _OLD_VIRTUAL_PS1="${PS1:-}" + PS1='(mv) '"${PS1:-}" + export PS1 + VIRTUAL_ENV_PROMPT='(mv) ' + export VIRTUAL_ENV_PROMPT +fi + +# Call hash to forget past commands. Without forgetting +# past commands the $PATH changes we made may not be respected +hash -r 2> /dev/null diff --git a/pycode/memilio-simulation/mv/bin/activate.csh b/pycode/memilio-simulation/mv/bin/activate.csh new file mode 100644 index 0000000000..faae0995fb --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/activate.csh @@ -0,0 +1,26 @@ +# This file must be used with "source bin/activate.csh" *from csh*. +# You cannot run it directly. +# Created by Davide Di Blasi . +# Ported to Python 3.3 venv by Andrew Svetlov + +alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' + +# Unset irrelevant variables. +deactivate nondestructive + +setenv VIRTUAL_ENV /Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv + +set _OLD_VIRTUAL_PATH="$PATH" +setenv PATH "$VIRTUAL_ENV/"bin":$PATH" + + +set _OLD_VIRTUAL_PROMPT="$prompt" + +if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + set prompt = '(mv) '"$prompt" + setenv VIRTUAL_ENV_PROMPT '(mv) ' +endif + +alias pydoc python -m pydoc + +rehash diff --git a/pycode/memilio-simulation/mv/bin/activate.fish b/pycode/memilio-simulation/mv/bin/activate.fish new file mode 100644 index 0000000000..860f19e6de --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/activate.fish @@ -0,0 +1,69 @@ +# This file must be used with "source /bin/activate.fish" *from fish* +# (https://fishshell.com/); you cannot run it directly. + +function deactivate -d "Exit virtual environment and return to normal shell environment" + # reset old environment variables + if test -n "$_OLD_VIRTUAL_PATH" + set -gx PATH $_OLD_VIRTUAL_PATH + set -e _OLD_VIRTUAL_PATH + end + if test -n "$_OLD_VIRTUAL_PYTHONHOME" + set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME + set -e _OLD_VIRTUAL_PYTHONHOME + end + + if test -n "$_OLD_FISH_PROMPT_OVERRIDE" + set -e _OLD_FISH_PROMPT_OVERRIDE + # prevents error when using nested fish instances (Issue #93858) + if functions -q _old_fish_prompt + functions -e fish_prompt + functions -c _old_fish_prompt fish_prompt + functions -e _old_fish_prompt + end + end + + set -e VIRTUAL_ENV + set -e VIRTUAL_ENV_PROMPT + if test "$argv[1]" != "nondestructive" + # Self-destruct! + functions -e deactivate + end +end + +# Unset irrelevant variables. +deactivate nondestructive + +set -gx VIRTUAL_ENV /Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv + +set -gx _OLD_VIRTUAL_PATH $PATH +set -gx PATH "$VIRTUAL_ENV/"bin $PATH + +# Unset PYTHONHOME if set. +if set -q PYTHONHOME + set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME + set -e PYTHONHOME +end + +if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" + # fish uses a function instead of an env var to generate the prompt. + + # Save the current fish_prompt function as the function _old_fish_prompt. + functions -c fish_prompt _old_fish_prompt + + # With the original prompt function renamed, we can override with our own. + function fish_prompt + # Save the return status of the last command. + set -l old_status $status + + # Output the venv prompt; color taken from the blue of the Python logo. + printf "%s%s%s" (set_color 4B8BBE) '(mv) ' (set_color normal) + + # Restore the return status of the previous command. + echo "exit $old_status" | . + # Output the original/"old" prompt. + _old_fish_prompt + end + + set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" + set -gx VIRTUAL_ENV_PROMPT '(mv) ' +end diff --git a/pycode/memilio-simulation/mv/bin/ccmake b/pycode/memilio-simulation/mv/bin/ccmake new file mode 100755 index 0000000000..c2355150a9 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/ccmake @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from cmake import ccmake +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(ccmake()) diff --git a/pycode/memilio-simulation/mv/bin/cmake b/pycode/memilio-simulation/mv/bin/cmake new file mode 100755 index 0000000000..9b2d0ba62b --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/cmake @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from cmake import cmake +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cmake()) diff --git a/pycode/memilio-simulation/mv/bin/cpack b/pycode/memilio-simulation/mv/bin/cpack new file mode 100755 index 0000000000..169e2516e9 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/cpack @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from cmake import cpack +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(cpack()) diff --git a/pycode/memilio-simulation/mv/bin/ctest b/pycode/memilio-simulation/mv/bin/ctest new file mode 100755 index 0000000000..e9f98b2ec1 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/ctest @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from cmake import ctest +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(ctest()) diff --git a/pycode/memilio-simulation/mv/bin/distro b/pycode/memilio-simulation/mv/bin/distro new file mode 100755 index 0000000000..5e974fbd49 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/distro @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from distro.distro import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/f2py b/pycode/memilio-simulation/mv/bin/f2py new file mode 100755 index 0000000000..5763a63624 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/f2py @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from numpy.f2py.f2py2e import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/f2py3 b/pycode/memilio-simulation/mv/bin/f2py3 new file mode 100755 index 0000000000..5763a63624 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/f2py3 @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from numpy.f2py.f2py2e import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/f2py3.11 b/pycode/memilio-simulation/mv/bin/f2py3.11 new file mode 100755 index 0000000000..5763a63624 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/f2py3.11 @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from numpy.f2py.f2py2e import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/ninja b/pycode/memilio-simulation/mv/bin/ninja new file mode 100755 index 0000000000000000000000000000000000000000..c18c77022ccc8abe74106a4afee6ee5bfa5ff17f GIT binary patch literal 613352 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

*^`!&M0>m(i+2QX0Ci5O^ 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 IhnZK$0~Oj)nWELLQQxjR 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

+3R&jG}JB#5?;k?*f)=ig8U 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%0DrGPV#=n`&TH#+P+86 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�SMNsg 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

m+6FC=sDfOKP*M-^E*0(Rz&Z(4rWXZn8b(=nh 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%0ACw0 zJ)93dlVWsSgpm6d)W{a5E0#@tL}KSPNy?6*g1@iR8%-p_H=YGmJw_KV5ZYxCheMmVs^qMFZx9U zM{!t>REC$hd;?(SGQ)AGUnc4v3LulW-({klqU-_>yFE-{zlRypaZ!~KjSlBS8N;kbRCst3YDpIOw z7P=){9}GtutC-j~lW9r&JsE=@tY8e=$l+}5BGa=~E%20Rxx6UH5~pbu*xfZZdiMw9 z%ZQe#3Y999&EP$l+p+TQ>4mAebaeQztAnZ-v(z~TlY6}n2~^A0wV?8F6oHZD_j31-bQc+s4}0+!_u*IX_()ZPNN zC%Yx(cq3RK8^MIg?lwK;m#Z)~umZLu&Dwm`mtvIXtJVp6guD~XngSJ^s1GkyJrfPC zeGRis)z3qkPF%}yT1opd)svxj$b zI%#~(rMXQ7YVcB>gu|C2wpuSULV2ntTkl({y0XpACF(@>)cz$Zl5I9E!Qf>EmZ;hs zqbpbS=9rziDx5R5XNfAGZFJ1TVomZ<8v8T4NJJfl5VRnIqv7puDYM*m_p zJl_nltXp7Il74|Ojp2p5|8f;rH1*6f6)|}rwOFsAnS5QM`WDxqLq_uT$^y5)KnS2?nLfD89k^VtzT6$TTrXel z_Aj4xJ|#gTD{RB5E~XV%8~F&1!i%C<=wr1|$ zvt`ficip~oPv-6Sm+juOJM)fR_t230C~DU|>dxEu>?ynJ_FZ>u-4boYC3ACjdoP)r zx0V0$=PkU$dkOy~sy(~*Y}t{Sb=U4}wdKA$GqdgmxNXC#Y5QlQ^Inl0w|%MC z7Z&*=BNPwih@m-Gvz3g?78MuryM4T^Yi({rL*4oUg}S#@*W3_=&(PX^h5-TCPmlni z$R*Ncr&@vJ^nj;J^K^Oq=%P$3oP<9M3p=z>TQJbYy({%_c(IjGFd7L(BajCPp2yXA z{vEzZo8Sk*$SJ5BfjrsN`fw8`a_V@wMm%QF@72Q)n>(Pj2aO2THnnA6K(dpc>qjGB zW@rRQ+aX1&Vd9cm%YgRKPV(~m0=jIGUfvsWjXtbW>j`_&*V?Ij5IHLPzsQTF_LA}s z1S7~hO4S!YziEvz!s~!M!%_5bv#Uc*v5K$}A~jS=HAyc_dazt$p@u&iD=f@4c$F@5 z`+Z(FSK1oO2enWz=-2Xcjl9t;pEN7?m^_*-)`~iFL%eZt700_U{h@xBXBDB$m=j8B zcjeRwM6IC}=pMg2tb47gV+t&Z40;f$CsGr{UxC&N(a@Wnm6L|xY{?h~SjyAT1<)Ks zZUs;B5@TqAq29W`TT+#6Ms6pThi;Yoh*D$tBJcSx_){eEA_(9IY!wVgqe zb)gw}gAt4d7Rv5$IM~sKL8dYg4CuKA5_^5EVRs1KltvisY8G|}Nbyu=*VbnFH7ehl86+25x$Br9cHo@KO@#-yX zQ8QbFzX7%=%oau1q9_dUMT^*?Y}Qy)KZi}Loi%MeZ1p zj0uvD4j)tj=^_*c8V_nOQh^tA$3T?gx&vJu?k*-YzD&cLJuwNQ5kvR4$PUSMa)pMW zJV>Llby(?ehXae5G^eN=gA2+TU74q(aas=Gqz{EH!GvhY!?Y!2{TFBJ*`DQJ6wdO93VQk`M5k+KmubEs9#4VD6hpk>nJHl=Cn$Z`e4U_$WPPFjNZ2X1o0u3m~U)%v>U*U}7#t zka!gcImzwt%an#Zz1jjZ+#gZD0#?TgK!@7DKF1aV5p=)2Ga;t*I{8hAk{=XC}gOy^Jhu zmRsV>&Bbd;ONN?r5Z~QVh-I7%9UT7Fx@-!XA5{rg3`p=os1{P=~|8iXFxH?`ZW!97}x>!unNFv`4QiF-?W3v0$FNyQp`d8`6{{ z;=|m{Au~)&kraVefrqeU=lKr#GLZXXg~sHl3fRLRIOhbA#xfdp$5!yN^-xDlHVoE|sS3r2Q7 zEDkL%uUt!*x0)o(9!Nycc6jeaW1B`g0F8_)w4P6xWX47`6bgn(t>lS15v7UMNTmku zVgqix%bzSZGC29L3Nd%IVUa^tPkf3^^BP_QZEjL+rrfc*AmjzzX3iEtBWBdf=}un4 zTpqQz0GdQ9c4}_a4BUPrh>inJL_k8R%egL* z8lL4E<+)guU{}Jnafe~`g>~k~asfIs?~E*uH+c-&<#4d_+^{$BR+-0qm{3N@`U$f< z(J*v)(lj%|0(u9{wOHPY6^P7T6<)}20iZ?#U__gFg~476wqVrE5o|-R!32iAUyd0I zLyv^bj}cK6%OC8}y#+MT!uW!cG!pB!X5MtZxR6sQXlVIy2Hl98Ek+kc!FG+$FQqAjWiZyJ`$MQ|zHUOW8SRWgy&%Y2-cr7# zd}+DAJP;{g)=@sKJZ=paE}_8;Mj0|=g-hcI7g-?Mj>35=z>-(%3P#cNFq9%%(PUPL zxuBUcF)}7!Ns;|pkpt1Gu^ZHqXi0)C)%B3sis&7-G7Dgy?v8leo;E$E5xiLVY1L3Z zzMey(EJ!9#UXxD|oi$@#14#&wXb*|W4Yv?F^kz*&2s3Uih`+p>V!BNh07i7a3Scm@ zLeSRy=3r-FZ9%AUs%=@vTB~mv+KIGWWCx2Ul^yQO6B=#7jyTg~oXFWF_$G}28Pf7u zE0cx{;b?lgXK5@bIXMPti*3V%4I*_3N0#}PV@XDooX=Rza$FVF!(EIsC5kXcBoi}Z zHyQ*cT4rP}D2b3M3x3ffxQ>TD1E(0CWihI!%pd`WyjTN_wuiKf8|KaBqqPs_9L?}C zcXq>s<_5bF@gi6BCO#@c!NuO7LusyB=%YRvK+mOQkXShCp+!RKfxH>=>N7c)EQrCG zL`fVbRI@;Nv+!bm+_!0)5Y3L%EjO8I5u;oi#hWR{8WAei#%NN7RS*Lc99X`!HSDq}wX>?3 zhKB?b8?M~47g6sL?GGejK8nGKl&GDp(AWw%k(NBD(il2vOf!gf2pSM`JFV(|sV+HT z3SJz_K+{-TCxb;oMUC6|9l}a?Wb5LL3iT*v<*V6#u9MfHZNAsat)>xmuLkg z70!{)3VWGWP%*K%cw~irtk#q_vAAetzOyOMInrKStQCx_DA1Y~Ip8K}jsj0{NsjI* zaM;Ib1Gg#}?&y z=mp_**-ev6N^_bes(G6|Af7$h>CA!9c&y3AWjP+lIIT3hY;tL~<|)gmvqSdI0!Nva z?F1=DiRN$>mueSJ$gz{Z(=#EbnQ8@mPIeYkgr?Hmf)f1ask6adj>oA{HpO5Ulu#K+ z=oz0==gcnffSZyW43R`4+c_C*I;T6c$4*Ar#bd#;R z*e+9X!(Agg5J0 zD}dD!B*lXnIhGXhqWcY<(zIyPvD5)J`NC+IQ1DVeQT=HP-vi@4=Vo-MQ&-8DK+3l=sE48FK2OzXu&aH%9n#wm6dh)wKT z`urw!(yFHr&IrFL^UR~^2a?`q%3Wi-- zv_OQD#g<2P#Z5OFCNVlAWkhS7H?LOXS;L-+HuGUrCZik^lgVJ7Qqy3FVet#y5$!yP zmF8ur4cVA0v=&%Hm^AVpDCTJ)H(%QX3)Cwp8_K^!qxC6Gb9;GnlU>m;8Sk)gV1~o8 z;JdO^Mls68#$I!9lncjXpTtH`ZmiJCu^d3nfztHn<0E#CXsjn;d4mon$ip@dg>=48 z?_gvL7f#~)B(S>LU>Ty8a~;kW7(HH80-x4tV`zrg9Q7>4Ne1v6uM{qQ>hHp0l?_1j zc5sAcda{f8Ub-;`lR+vZ?KUBWoMee4CelGhs>hA0Mq4vm4Y4nluBZbhOv=no@5K@V z)>EYdMIG@;DYdRV^kX`dKo%}nfsz1baw22VL?wYLC=D#Vp`G#B6!kdXIt{}f+k@aG z28-CdpcPzNOv4VX&rL0N`n-7rrcSA6Lf@LLtehn(W*COhi197yt1)~OP=uAzTebs| zsW{va)?2V@5x`o2+>}UG>!vBJ_0{iCJc(Mlm6w_?op2*u7PQ?RUP=;|QxkLYg$a-_ z=D=@Zm?!0v7K~ky_<#X`?EVm=L_`V!QA0jvUGHj*?55w~)h`sEB`0)i(P@Z;nM zA490eK|5mFWa@L|CK|RJ(-s$SEk+Tsjs=Ab?T*R(r8E#ifynK3JMQ5^UJ^mu+}w>| zAKcu}MoDS2#6C}q(|jbw4nbidEu26Qby5b^T%-Yk_yVT&0r7hN%7QH7cawK%zg!^Z?OD(S9eSUD1Bp!mreOj&886@3nh z3G0OMy)Y6n)VA0krNU5e;@c9w2*Z>owm-#qR}4o(WJH1rT56a<;l%oum{KKpVQ&KV z3DyS0e2^23nM!h>5nX$kFBmn%(x}0V2(&(|McP%xe>b{X>tfbG7D5e<=$Ko{=Jqi& zJ0;2_vvaWNFlLOlX`;_#@W3e6ZY=ZgQ&lcx*y8KN9=T{9Vw;dJVbWL;>)ROVu!LJf znvLh zY$Q%>CO?`)aq^j-?&1=(LRj})C8Fu$$S8lz@LO?o`TjKeH%vl-iNE)y%`JAiX4KA` zI;Ga-n(Hbqo=_d`s*eU_GsPQD8Pu@ik|Yo0FiPVcnVJayFbdhQ;_>ym+h6T7md>I@ zy%wz6Bc%l|nvULwco+tVQJi39IF!t6a72TBK77pQvp>K5^UptTd5f*P(zos#>)t3X znksfzY68nx3H=#h&&o(sk>e~mxK!(*S{Q90I-YtY#o-TrD~Ugv0NrB+q~qB1bPp2{ z8@T+zMOos}1nB-&)|sp`YbxBw@afD-hogVLVNbIGN-(RqbdFpuBACTmq?vw}45$;ZyLcS7hDoP32AArA zI!p@Kg!n5PWb5ZFw#KNVqsV3kCx_h#g6rL7NX`hWYc>ML_l01B0o$}l#KorU-E1gh7ggpAEYt9w{U{I{0f!?v(6yOy~y z7~QBO{>xG3DITRmIY$|Xu!YRamf@4jMQQDz@(4!g7ug%^0AuMN0&iy%aev7~h5mH_ z{{_oX@bj1o{d=1&R2G85c`TO|v%BwRS6{o@GS*I*OB0tlm_x%Ha!#e?;M!p8r8M0j z`^B_jMvWX3HNs=)TN6F7OcPTm`zZS;ZCWtY73PQNoJB>&+KgbZ71Nqo0gpqQf*tC5 z3No~MouBE#`87&Y>%&QSS_Q(1HmtqT)M^S2LjcH-0_`&S`GwO_q~%kDY#Ee2x&jpV zK>&GH1al)XN#_f+dZ!25y0E5c2>~;7Hx^dJfh3|LiGU4l0i7iPiC}XCrN`vQgOZpN zO&L#fM>xYY-E50QLgiz|baZq$+?-iQFx)!EFN$J}!QtSVxeYaiV3;SlG=TYT!W&j0CVAX(@NZ98g6`?Dj~wi&k{7DJ;UNy*MQESbHN> zV2P28AYXRn=N+-O#G5WGUeM>W;Ut1narj_nV`E(dk4@`&C#KoJX~ttE}E&W_Q<9k1eC7@$~1BpaGl7tQ=>d>^QSQ?>Ttmp9+5gdajx))M`E;Px35YGVT>^iWD z3dO-!FQHFxJc_}GSnVbC=x-wwBu>;MnZIil*EFwSZ5{a&_Q)Bd0F$bkkl7gidsVT^Fat- zMYMr2mQU0=*hHPpCzWE+zoVEIzq|)9cbFVNPga;K;CG+ABnv|amcq4>-_;*S*8s} zR6qhQWnQT*q}|lmay+8IgZsqv69vZz;>2!*i_#dqu)MH%v8Ii}qB;(|<1i&wYN?$- z=g`1G$>dK29M#>WsCyJ;x9#g1S@}b8h#%sqyEFp7f zFN&Q&j!>~te*&r$$QM-;WJiAHbE;g46J)o-ni-`%aT!diGRHg&1F*!<;$tE+WBfDu zeua$V3$%T+mP!q(8VV<0_ABBTtNZN%o0+!)%hBBFkfT z^krgUi@V+D$M@+5G<^jxGxw%17RzxexlC^tz8FPt5TaZw)jKQfEA4H?i9|a1w~X|m zYPj9)??a}zv?y12lFlr|eq$>r(Z|MmIGK78r|tY#Xgi7aN_!-dn8+;E<$CjMUu34+ zv$O!F08UTSk#>$GIXR30eYd(QwIwMDrc3P11_u{1KtPJbHc0uvd>xP-#ki zQi2wsG&HN?1kn*_M-0-ln(7I?1rH8PN4O$iw;tK(BX~a!ZZi@R;#J&;%uF`NGFlA z=u!WKl#?VZGPQ_UdL{_BZz+=mD-}7}aQFt!7r-$z(d(t+=G%8JI>DbWd$uT~r`=0> z0b16O2d*&tz~M$52+u2Q!BmZhv=A1di5oxWjTb>gn0_=91`%w-%Q>;5jt*w!gEkgz z_$L9CiGj1~YPdg60QK?j)5@s^%mfK<2wzychfFV94Y{V<2)D+dm9Ss^)wsZ(K;dxP|8B2I()Tcj_sL8s)f z3PQdPI%l@9Xt7oag)ks#AJwD>zss$TwG2jKhdEFy~T`6DkZsD@*J?K@5Q%@ z;xtNrNs%+&Er>uo4&5Js^5xaalPXk~lW73q^-BjYeGsc`8Zic9G$l~9MF(ODlUB}c>e!SuS?XUGjhz?-B(x48x2s&@QA_n$UX4fF?l4pmlJR%PlyEDzf$I3jucQuIE5&!Bbc9x{)?thi2_3kJ z%7vsnMSfmkA+0-7hbauK{}&^ zQ^Dd3OD)%Y8|@u^@(i(>5}{Qoo~b(_(>y==ub+b9$@4}#O3ZtvOi3BjAsB*YmI;{~ zr^q}IER@Ta$V1#iRhh@XZFAvsE%3w}o+xUyI6O`29t&vkg-?Ep6ulA4gbo_}Pa;^} zBg}JViN)jrNjcR)mr`MP2o=qZ1K0mr$!It;YfpUsDu%oh=EKh>iEw^i^k2&>S)nH8 ziv|l6+_xH)P>G4coF%ldsl`xOez5;!g_I*$eCazsaYftF2s@D9`7_7YIV(UGoVn2M zh$oSK3JZAVVQ_O_!PkyeURp+_by-^buj9u9xdO!M80j3Z8=q?jToIlTttio|lif~5 z10t)O1L{pQaPSQR-YpFWz1z)(F8ZqBFmXF^OO{ET)%<)juz-@nV6u$N2|Eo~F*ExC z#@_7g_{bUehe1z!3=Z7gVtUGbUcl4+EmN8-b#95IUvjS@M-B|8wFq|K!)He+1SwfF=e3>nD9gV}mlbI=|3 z^3z>(2Vt z+cX|L0j|L%j7@;saXM?jxi(fc8@I0l;U7Y-4;k0Cf{*3 z1b5w^f%ID$s|Kuk1bhLOJ_=a@h8{yY!0un5T!TROO|UW8#0PB|FmkAKRbfv-uBmVJgkuUH= z*DI_M^m=bpSP1aIO}Kj=@c6fIYd-3C6|Ubc%7h#r1f=%yBL#O=ga0ikAK;On;0GuG z+n!L^PPB`e&nxUOVCjD&-}7v2@Gnpte$s{)*f3-(t57QK#N6ay@KLt(oJzKL{z ztAB%Z!@$QMAP2zikB|@GYv?6w0e9k5<#xd1qgCcTA9A<|KY$0gxeym^1FkJr*%81M zV^vl<0_85p&yxWjt-z1W0KQhKvL3)~Q&rXrczn9bjuD)xvLP3sU0$rR0>Cx%aMdl~ zmia1vkrM4}F@E|EaA>p2254y4y2|naH?^p&3~>JvmCXm-YN+fe;N}}tRy7h3_v9`D zT)iHA1Ma&6zmEpU?g4+<=r<4G$EN`OkErZ8;L*px$0!@~KCZGNz=MFbfb1!h7qA*X zpU@3BkU4RFkQ`sTF0Y6t+S`Os4LD@8>^h{%!+orL!bu}z=a}BfM_J1WbgJrIo!IX(JS^w3wEOTQm zQ*-99j7@V{hE~TidM;sEdoE?^M=xXP+vc8rfB zb{cwQ=e4Z=mK#{Vf}2>stZ%Z6f0w22UB~)GZf9xQ9Zc=HgQacQz|z*-$|xyM*~?Psjt@z0sE?l>FRbDX7>{+%f+{!aQDdLvU& znzGQZ1}V1TgB4c#H6?TA*KlVu;K8pcw!K5~vlSzh%mEiDX^SpUGP^HO)M`yhKc0=g zGDcyGoQl$2qGYWuQTiV&h29viC_~E>`-TblF^fqGehf+Vz3ojpqWfbT2HmhUTB zy8w$GPzLRJP_gy=5NWn3YVSjeZOy|?i8H*lMGDD9c{Bb3nJ)tOTp8%~L zDAx{Liv2X)GfKaW&nmV9J5lDB6m|7pC3E9mMJf9w%JoY{IsPj}-O#Hj$9k2ltY0hr z_w7?y*6;D#Cx;X^;INW8^e}YYnQHomv(yZB4*JVb{E+2vHU0Pnsx2~7&D=av&8Quv zrWfR@{RUj9vPOrR-dLoj9feLgI1c@)3Kwrzt4dZ4bjmDT?_aC-n>j~Scg<0i<8#mt z>r`85y_ykOpxV}5p{iL6Ri-UbZLD2o!$YclKv?a+HlixtsA^}OD%-n4%{;I|O<#A7 zsuX<#dgMCQHh-0xG5luLe(Ywo|KT;NZOE;lyFq1x?^gTQ-m9kVfSZVeXh(ZgW#av6 z*8Ka`^o`$F`;|VRD*gx5v;hyQ>197u`+0u^y|_nJ_Uuu!_5pUjsAjEx5kGm?t13Ht zRrT<%Rb|U7YUa*YRE52&W_9jUGuP}>mA(65NBobf*1fGN$KF;m3*J$c-gnfj3m`hO zE1&`!2Mc?I(ErarG_Ii+F_eivy_Y~C%69@ouN8QHt%z43VLry^#B@VCM7$%{324&$ ztE9K5JDKjD>jhpU>6!6+>$rcniSLy7Ov#7o-z5Cm+HWS)-6`W8!q*GLUq0+Ag4M9c z68Sw#@D?lf)V~HG+y_HDMd6M)+GCkXs9Djt2zuqDE|DJ?* zOKAFUkodh43Z`I7O1fl!CGycD>6-NrE=!hAw*@!p-D&ZENaC9%d_+Q1{-Z>Fcbn;% zlpEPgTuw3|>suoK&SNU~Um;=7rvj((nc^S&M8M4-3;3E0H~C*C^SAQ-zve^M$A)4UNm1J zNb?keG*2P85Azd(G*2PeR4-sY<|~BHpC@1=v>D+C77A#VKP1W@>ld2rXM1G+X1t$U z;%$|3J0jzOG=Em#Ao#9^Jk~x&f}8kXOvm{1)=9!CZ+hN6Nx1xciT&v$;bJx_Xq@Wr2jzl4{I&ou zubJ;~*zM*!r9ZzygpZQY3?uvAe5ZJ0W%wjZJhJ~2*KlllUC5#7hi2)%%zAk5i>h49l0}FwOIbU$Z~1U%<;B(nBq<}OJB!8L*5~TSd!HqJWneUAjJAz63#A+{uASHp61X2=6NgySGlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61X2=6NgySG zlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61X2=6NgySGlmt=|NJ$_if&ZKYw*EtW z54Jgn|LD870TK?CFh{~72`5T8Q^H0GnqdA! zn}S_$V%=#?-e;R*>?OSn$L9tpQd zxLv|s681{CU&2EY9+i;UWc^DxRKgqyizJ*V;YASHp61X2=6NgySGlmt=|NJ$_ifs_PN5=coP zC4rO#QW8i>ASHp61X2=6NgySGlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61X2=6 zNgySGlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61pdbKyewPDpm=YQs%EDjxE(Ctrl%}($EaE76EuPXaEi@GW%Iaf&3}N3o`Brd}c>a%Ppwb;aC&4sEv~RT z(5mxLGss!g?Do3c;jp{Q70^3ef=p7B5|^vE)B_4NF@oeZ))VOp>9agFPM=qXG|sYe zB2ozdL>}V)CuTr~UpBY6$mQ~McDkE=%ZiJ~W3>@&#IgHLQEJ(lofIb4O2S z&vvD!*S4*vC+itry2j+xPEay@Cm?X>L;A`akMii_k3R8uPq)&uUF}(|Zlkvina}Ky z)cTaId+TA5@C&8MWSAoLEvVOBw@k$F`pvh1yIpt%I>d{swX@R|(!)kD;P(3>U9M$C ztb6dvee~uhdX=$)_q9k`-QT03POc9BI%x`t`@J$&{5mV^l*zm*unE~ z84)*vK*iM>b%(vIJBtbhZ!a25$c*C!=N!=k%Y5Nrfc%4@h&$XW-+Tct-n?CYy>3L?b>wPfiS|Fc zAwn&(*xBqhd>*hC_61sJdFD32&(r1(yCPw?FJhpr*1&Iq+wTv0+>v0IJZef?K(oe! zI$*}&Bzog0nqQv~HFQ^t+oMNn>gP5TxkP(s#?Yk5Wxk-{LjL-=Ry~4*=z$=p#X4xQ zKiCT1c>kQ{tf`yrq40b&{KVa08g*nuD>9>rV!F^(J0q@8*w?PtaK_7$Bm6sZ80QX! zbVx#SR&`n_awcb;>WLP(R%Td+5)NNm#;P|i} z@}ou9w6~+WIh&!=N>y;$d0J>1dU%;^=H1Fyr#QjoY7GZFT+Ll5Jw4RHR-X>Sp{UUY z72sJ~!|Q47X`l%OP(Qn2tc!Tua2n~gw}WgcC);xx$hsTiY;I1bS0Z##5K38hx1U%k z*NijtKqTBnrEMtTTy6dLsR-kR8QcF25`Lq`N3!1e@1^B!X-`sGIf$4{^(Fu(2ot{Txc^Bcoe4IMM{b8`VU2>4sU3#ZS z4@G=rO)%q_BFq_z5Yan*5%TO-saNw<&3daZ;KJbSX`_(U@equ}epeLZUP$*ubeJK` zSQ`(;z!gumA@1K2)-4?L!~?l0!HeL_4}MSWpzXl%8Hg>?wr;9=Y2VX~@- zxt(!eUVY@ZM?LGy%{6B9s$59iRG?)01Rl5HTHHQA1svc3rWg+q2D64Y;3E>@@s1JF zyj%|lDOI-(n5WI_Bg4&D%`tyalw~bp-YASf=o|U&B&3HBy;Jur<6)ZxD(Y`5AuS%0 z#&&@QB0TS%9Mgj>L}iaaXpTZ?FGpMa(3^zr<0#B0gRlb}^I<~5xjw|vAWRerJR-30 zQbLY#1lCX>!gJ|PBYr~B2v@_aIR@n;+6>1GUFRt`2rS~}4WNf(5#7%j-^{U&urDH7 z0HNT`)4}O%mnbY{1{QWo)E{(v-OFGuqpZ>k1~j3)an$7x26&Wx(k}u#F4*FAcTvOx z=CvF(pl&?8qBd|GZ5#6%UU3rVov!m+luR(e1WPzD<$idyBRmuMu&d*$XB%DeE^ zILh(uF+3`I&`$2rWnioo`ibyJI2ynR#HG|r9?^i`7vOcXkI-c;@uD0cj}A;OLq5*H zA&yI(K{Hpy0THqPyClg&^Ipt77#g^*1Gflmt=|NJ$_ifs_PN5=coPC4rO# zQW8i>ASHp61X2=6NgySGlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61X2=6NgyQw zA%V@syKFOOZdPX=SNEtJ2luF3)E;$%x;A5jdcan;RoS67ZBP%{s5# zHmC!JbSqnxwmnK)PkP%LTid2H+J+pk4cV@)RfbfRRqf3hvRdi39ap<;o3pm4J8f%h zRaHmRHh}I1b)U_<*S68oGvIJ$w{5@eXuqERTh-0BElRg?OgRd-*|yQPcGv-BulibM zx3cD}RkjVbE$VAF?~tSR9^0n$1Bl(L?xG<&GjE%~M0YmC? z@(p5$CzuH4t+cGvOE6VnyA5nLn(W6E- zj5v_KG2@7BRr>tuvW@9``wiJ<+o-HYHLX^64crgOZC1CQvo~!=MyOlaZmU|Y4&SA2 zNH6PAwxn%QH%+V>kXBVxl$Et@;3{Q{+SD|pYMX6WCjMsis+*P4O-h<<4+9ySh}Wq# z?sW1Y??K97dgZ^zI#j^eIi!4nn?HZasxA1f7W`)x{8bD7fd$V1W$_;YcrLKuWfuGr z3m&%M-?iWmTky{;_zaX(c!~UPv*2%A@QZB8@t0Zf-4=WZ1e{3UWx*e@;Qz4TGf+#3 z>F==M2Q2sn8OiY%TJW_N`~?gCh6Vr7f~RFB)33DP3oQ80Eck8+c=$Blc3oQ6p3qI3=FSg)e z3x1;oUvI(h=Xh1DJkN{p82*wa{_iZ|f3@Hlc3z%X`ZF!~a0@=lf{(V~V=VYM3tnl# zt1b8}3qH?+&$r-B7QDrR2P}Bhf?sXHueabgTkzW~_+1wKdlvjb3%=EYKW@RFvEVOQ z@VyrNRSW)G3;ufx{$~sRsRjSSf)D7Q+&<2;;3F;gXbV2Zf{(Z0lP&lR3tnfz=UZ@> z1#h+BK?~kt!B<-FZ&~n%EcnY7{38o~_JCx0IW72X3+}eyS6lEqEcksEe6t0A#DYI= z!JoF^FIezjTJYB`_yG(4z6C#O!5QoojDIoxGSGs5-GX0W!E-J67z;k$f={;KGc5Q# z3qIe1H(T(f7CdUfS6c9!EcjXreuo7o!N6o-WXxfxW*9yhM99v78w5v|-I;J_!JQ2^ z1nwNTufcsCj_kd2;m(5_1~(k;e7F&C7r<$7qu_Gja^e09E)Q-DToGI`oD;4TZYqx(x4u$0j?45 zQn<_DE{B^Bw*c-6xP@?w;1cyAkdtxYcmq zg!>lU&2VerZh<3v`rB}8;l2ZR8{Bu{*1@fZyB+QhxD9Z3!rcXTHynm#2311cg^h&E zhRcT=4R;}2A)EuwT5l!rtAd*fR}EJKHyv&s+*NR4xQ%csTpCvlD%(V!d;LZX3aE3&n}I8I*Rkxg+>GRfe60n-~%(o$3yTglMr3Y2&vqP^g7d zdGCS@Nxm|rNS45Q%Lo5(*G!RkgGF^>ilhL#v_Yge#jOsfija`!2`_vQY5#peCtme% z8fmr5Qh#;EaDBj6=PQ1(!)c^-8p;^I%;Br@WxdAXG}1c_H306+s~f&5V}0*z_{tO$ zFKhU!#A3HJoGwD<^$cH?UhH0m1VaDLg$(~@a;qNur?Tc(F#M|-B2i+`l-E_osU%-k z757iPogwZU8%_SXYZ*?EFm@k9JnZye!~ojKH!#5C1eY+yd=m#L(ytWv#3K|BO};+s zgqLp-k>qG6yJd^Vw2rMJ8}hZX#xKl58h$AhAYGP409R%8xeZHR9dUvSC(ICW)5Hm` zn2=u9yCtM|{89<&VYy90`X*i@k?bY!k4W+~FOHC&p=ell;j*nr)a~a*!_64xEfO+{ zxIO~NDX;lLxcFuoFDJN248E58Ba(c?tzg_s+z2LKQ7s{G#c!ApS4+@eFe)ySkhe(S zPBpqdg5MiKf1J!^ULa;(86io?OCoSt1l3#+Y#l;MS#BXGfS24JJ;tmFJ`GR@t0*AP6fkWK0K#+fLPcL+{f~%chsbJosMv(4M zGw)V#h3Ha+#0vqEkds`akQl#D6e0hFD+c<+5b``}4D+soljp*3J4g&px+9@az=@;B zZbj%5KjAtAy5fv3^>BscO$9Ex)q`$6pcjLQyAJSI2tBOx+YQWX4d_N4d7lBj@{0^` z1)zC@0lk`67w~uU&H|TVURK~T#4QEldIGvwPPSFN(S-!$LpKo+q$>ynM9bzl?idg+ zblZT-kk<^v?-wvH7Kq;{5W7miCE9MEoA$zPZ@7HSn6cxEOUIVdf{c7Vdwal6tPYTm zBE5#d57YU6BbbUAy~?Ndv|K_|`&T z_3+`m@2xv@`L$QG@Fjkt33+r_sBZupUM{W*KyN?&l^#n%oTb@Vs6?%_Xw;(veo zbM-IY8+Y}4%DXq~z0>{0#o35##{eR_WL{MGO6?aiFDE9Zxw zEx2>a;Q!UuJ~e3VH}^lj=I={A&8r7I?QLKB%_Z+VzI01*=Kl6ak9~5uXdGm z9=^Eh-SBVP%A0>T<*dcEzZp1plFxqbE0g@socq!ZnJ?TmwegnQM*n(H!Naz+16Mt> z^pjO*K0o&G2ftnN-Fwa(u>Pg2%A6%HANoi7i)SDEuSM)vs!Uy)Tg>4AqXpLN$;A5Y1hwDHEG&gPF^yZL`>m#;rwQ0_kR zM91i1H#R(U_n_BjH-9{6N7lI$3U9sf?kgVM^y7Qd&RMm7*JnRa9^bqC-Ryg&dk0=o z5&0l|pYOf#pWi%ndi!m^EMBnN7^mNP{_e_EKmNg+*YEL0p1tVK>yOUqIp^1xDu-76 zHt?MpAOCF48-M6G?{LmfhtJ*p=H>^ET{f|K>GJC?f9_C*eef^tuDEmOpby6UY2RJx zzdZ8DiZg~B-P|wZ=5q)9@^4o^+*o_lU%%&D99+Nq;KWf)<$v09XD9L<=^o84}IGQ-X7{X*p%_akLSC8b@zq&v$9`&^W**h+w{~Wb6%bH z=VSSgoH2R&z1z<@x4Czq_Fkx>ysZB18y6io_Mz)R51zgH@w0-ckUw&e|5PoIQ^lP8G^RD`9-st%m^IhX^zWuPJfs7r$}e`n*ST+TXX&T{C6T@Z(QbT>GI? z_}CR^9Dm+*+1Ea~^`W=FQT@W#SKTzV_RquIi*C5Pcnx!tFx{j@Us;^D!p#RZMV4|S$^Bhe|Y;jefyVu^O=u-5lpLC zI{dcR{wF_kQse8dPIgDvRlN7#KlsO;*V%u4g>uEqpM8-%`LdlycR#8uxMM}>PY+)G z+rRF4tmX;(o%ftE`d9aksk`IB(t9SAZg0J=^yYKVy>92s56&L3Yvt0vJzsLE_Qp#; z{>$!H?^^ih+NpOhU%2FkigQPNvVPayY{R>47Z<+Odux{O{_|YxFYao;VDgL6-ujCk z7;@pDPdB`F?u#vL_Za^;Z_aa(Ce+?@jGm`_1dyzkm0F=IP^%-}x_n;*r+I;pboTbmjVQkGr8?`k7Tj z?s#xUoc*;fD4uB>BwHa=f`c;@z} z%HBF>R8RLuZ*RJ>^|`Ja-mk8Db-?bQ%$R=Lva4L5KKa9z&b=LHAFS{H(eGLoKm5l{ z>CI0*vePqh(aqC-e8acy{7!rRb7SWW4A#|OQFiR*v6pv-j3uUxh8lD!{IyV1Mo z&hNkV7stC#{dIGkeF|A3Sr{w5gu% zY4aX4e)U6t{X1D(H(l=Q{@%F$b3VzKubthpFXz7NpFQ)f_94%no6~#qC+E$Y^Vhi< zQ(ph%?N7CbzOm)e`N7@qx9m)N^Vh##s?M9A{>6%IE0*8z*3&o7{AR&}Up2hyfsJ{O zJYzfh_8F}YUO(H@)!O>b^NU9x&+K1qd#3xD{a1Wd`d^lQ*yW$@aXmS*cc(h-rZaZ` zXx!M*dd2nUT=YinYmsO50R{J6cvIQ*)%{_8$`<&Wcy zzt25u^Ow=z{oEasvtM|6;;@C^ed~5#=$AL0|MNdxvV7|6O;0qvKkBw0EVyT3ufyB9 zIlKA(s{S+DX0vm5Y}xYj_p|T2bW!IY^0L>@nR@*_>JP8^%L|{LvFE?9c=P@d`F}X~ V<%$pA>=$r+tmhvbmL<%Y{|C704vPQ) literal 0 HcmV?d00001 diff --git a/pycode/memilio-simulation/mv/bin/pip b/pycode/memilio-simulation/mv/bin/pip new file mode 100755 index 0000000000..a724d1076f --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/pip @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/pip3 b/pycode/memilio-simulation/mv/bin/pip3 new file mode 100755 index 0000000000..a724d1076f --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/pip3 @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/pip3.11 b/pycode/memilio-simulation/mv/bin/pip3.11 new file mode 100755 index 0000000000..a724d1076f --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/pip3.11 @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from pip._internal.cli.main import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/pybind11-config b/pycode/memilio-simulation/mv/bin/pybind11-config new file mode 100755 index 0000000000..c7c251f815 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/pybind11-config @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from pybind11.__main__ import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/python b/pycode/memilio-simulation/mv/bin/python new file mode 120000 index 0000000000..6e7f3c7dd2 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/python @@ -0,0 +1 @@ +python3.11 \ No newline at end of file diff --git a/pycode/memilio-simulation/mv/bin/python3 b/pycode/memilio-simulation/mv/bin/python3 new file mode 120000 index 0000000000..6e7f3c7dd2 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/python3 @@ -0,0 +1 @@ +python3.11 \ No newline at end of file diff --git a/pycode/memilio-simulation/mv/bin/python3.11 b/pycode/memilio-simulation/mv/bin/python3.11 new file mode 120000 index 0000000000..3cf1fbdcfd --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/python3.11 @@ -0,0 +1 @@ +/opt/homebrew/opt/python@3.11/bin/python3.11 \ No newline at end of file diff --git a/pycode/memilio-simulation/mv/bin/wheel b/pycode/memilio-simulation/mv/bin/wheel new file mode 100755 index 0000000000..a357451125 --- /dev/null +++ b/pycode/memilio-simulation/mv/bin/wheel @@ -0,0 +1,8 @@ +#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 +# -*- coding: utf-8 -*- +import re +import sys +from wheel.cli import main +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/pyvenv.cfg b/pycode/memilio-simulation/mv/pyvenv.cfg new file mode 100644 index 0000000000..66e11f3a74 --- /dev/null +++ b/pycode/memilio-simulation/mv/pyvenv.cfg @@ -0,0 +1,5 @@ +home = /opt/homebrew/opt/python@3.11/bin +include-system-site-packages = false +version = 3.11.13 +executable = /opt/homebrew/Cellar/python@3.11/3.11.13/Frameworks/Python.framework/Versions/3.11/bin/python3.11 +command = /opt/homebrew/opt/python@3.11/bin/python3.11 -m venv /Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv From b18cf86293ffe0056d8db9d1e210204c80d06b5a Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:56:01 +0200 Subject: [PATCH 26/31] redo --- pycode/memilio-simulation/mv/bin/Activate.ps1 | 247 ------------------ pycode/memilio-simulation/mv/bin/activate | 63 ----- pycode/memilio-simulation/mv/bin/activate.csh | 26 -- .../memilio-simulation/mv/bin/activate.fish | 69 ----- pycode/memilio-simulation/mv/bin/ccmake | 8 - pycode/memilio-simulation/mv/bin/cmake | 8 - pycode/memilio-simulation/mv/bin/cpack | 8 - pycode/memilio-simulation/mv/bin/ctest | 8 - pycode/memilio-simulation/mv/bin/distro | 8 - pycode/memilio-simulation/mv/bin/f2py | 8 - pycode/memilio-simulation/mv/bin/f2py3 | 8 - pycode/memilio-simulation/mv/bin/f2py3.11 | 8 - pycode/memilio-simulation/mv/bin/ninja | Bin 613352 -> 0 bytes pycode/memilio-simulation/mv/bin/pip | 8 - pycode/memilio-simulation/mv/bin/pip3 | 8 - pycode/memilio-simulation/mv/bin/pip3.11 | 8 - .../memilio-simulation/mv/bin/pybind11-config | 8 - pycode/memilio-simulation/mv/bin/python | 1 - pycode/memilio-simulation/mv/bin/python3 | 1 - pycode/memilio-simulation/mv/bin/python3.11 | 1 - pycode/memilio-simulation/mv/bin/wheel | 8 - pycode/memilio-simulation/mv/pyvenv.cfg | 5 - .../test_surrogatemodel_ode_secir_groups.py | 1 - 23 files changed, 518 deletions(-) delete mode 100644 pycode/memilio-simulation/mv/bin/Activate.ps1 delete mode 100644 pycode/memilio-simulation/mv/bin/activate delete mode 100644 pycode/memilio-simulation/mv/bin/activate.csh delete mode 100644 pycode/memilio-simulation/mv/bin/activate.fish delete mode 100755 pycode/memilio-simulation/mv/bin/ccmake delete mode 100755 pycode/memilio-simulation/mv/bin/cmake delete mode 100755 pycode/memilio-simulation/mv/bin/cpack delete mode 100755 pycode/memilio-simulation/mv/bin/ctest delete mode 100755 pycode/memilio-simulation/mv/bin/distro delete mode 100755 pycode/memilio-simulation/mv/bin/f2py delete mode 100755 pycode/memilio-simulation/mv/bin/f2py3 delete mode 100755 pycode/memilio-simulation/mv/bin/f2py3.11 delete mode 100755 pycode/memilio-simulation/mv/bin/ninja delete mode 100755 pycode/memilio-simulation/mv/bin/pip delete mode 100755 pycode/memilio-simulation/mv/bin/pip3 delete mode 100755 pycode/memilio-simulation/mv/bin/pip3.11 delete mode 100755 pycode/memilio-simulation/mv/bin/pybind11-config delete mode 120000 pycode/memilio-simulation/mv/bin/python delete mode 120000 pycode/memilio-simulation/mv/bin/python3 delete mode 120000 pycode/memilio-simulation/mv/bin/python3.11 delete mode 100755 pycode/memilio-simulation/mv/bin/wheel delete mode 100644 pycode/memilio-simulation/mv/pyvenv.cfg diff --git a/pycode/memilio-simulation/mv/bin/Activate.ps1 b/pycode/memilio-simulation/mv/bin/Activate.ps1 deleted file mode 100644 index b49d77ba44..0000000000 --- a/pycode/memilio-simulation/mv/bin/Activate.ps1 +++ /dev/null @@ -1,247 +0,0 @@ -<# -.Synopsis -Activate a Python virtual environment for the current PowerShell session. - -.Description -Pushes the python executable for a virtual environment to the front of the -$Env:PATH environment variable and sets the prompt to signify that you are -in a Python virtual environment. Makes use of the command line switches as -well as the `pyvenv.cfg` file values present in the virtual environment. - -.Parameter VenvDir -Path to the directory that contains the virtual environment to activate. The -default value for this is the parent of the directory that the Activate.ps1 -script is located within. - -.Parameter Prompt -The prompt prefix to display when this virtual environment is activated. By -default, this prompt is the name of the virtual environment folder (VenvDir) -surrounded by parentheses and followed by a single space (ie. '(.venv) '). - -.Example -Activate.ps1 -Activates the Python virtual environment that contains the Activate.ps1 script. - -.Example -Activate.ps1 -Verbose -Activates the Python virtual environment that contains the Activate.ps1 script, -and shows extra information about the activation as it executes. - -.Example -Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv -Activates the Python virtual environment located in the specified location. - -.Example -Activate.ps1 -Prompt "MyPython" -Activates the Python virtual environment that contains the Activate.ps1 script, -and prefixes the current prompt with the specified string (surrounded in -parentheses) while the virtual environment is active. - -.Notes -On Windows, it may be required to enable this Activate.ps1 script by setting the -execution policy for the user. You can do this by issuing the following PowerShell -command: - -PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - -For more information on Execution Policies: -https://go.microsoft.com/fwlink/?LinkID=135170 - -#> -Param( - [Parameter(Mandatory = $false)] - [String] - $VenvDir, - [Parameter(Mandatory = $false)] - [String] - $Prompt -) - -<# Function declarations --------------------------------------------------- #> - -<# -.Synopsis -Remove all shell session elements added by the Activate script, including the -addition of the virtual environment's Python executable from the beginning of -the PATH variable. - -.Parameter NonDestructive -If present, do not remove this function from the global namespace for the -session. - -#> -function global:deactivate ([switch]$NonDestructive) { - # Revert to original values - - # The prior prompt: - if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) { - Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt - Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT - } - - # The prior PYTHONHOME: - if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) { - Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME - Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME - } - - # The prior PATH: - if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) { - Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH - Remove-Item -Path Env:_OLD_VIRTUAL_PATH - } - - # Just remove the VIRTUAL_ENV altogether: - if (Test-Path -Path Env:VIRTUAL_ENV) { - Remove-Item -Path env:VIRTUAL_ENV - } - - # Just remove VIRTUAL_ENV_PROMPT altogether. - if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) { - Remove-Item -Path env:VIRTUAL_ENV_PROMPT - } - - # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether: - if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) { - Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force - } - - # Leave deactivate function in the global namespace if requested: - if (-not $NonDestructive) { - Remove-Item -Path function:deactivate - } -} - -<# -.Description -Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the -given folder, and returns them in a map. - -For each line in the pyvenv.cfg file, if that line can be parsed into exactly -two strings separated by `=` (with any amount of whitespace surrounding the =) -then it is considered a `key = value` line. The left hand string is the key, -the right hand is the value. - -If the value starts with a `'` or a `"` then the first and last character is -stripped from the value before being captured. - -.Parameter ConfigDir -Path to the directory that contains the `pyvenv.cfg` file. -#> -function Get-PyVenvConfig( - [String] - $ConfigDir -) { - Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg" - - # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue). - $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue - - # An empty map will be returned if no config file is found. - $pyvenvConfig = @{ } - - if ($pyvenvConfigPath) { - - Write-Verbose "File exists, parse `key = value` lines" - $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath - - $pyvenvConfigContent | ForEach-Object { - $keyval = $PSItem -split "\s*=\s*", 2 - if ($keyval[0] -and $keyval[1]) { - $val = $keyval[1] - - # Remove extraneous quotations around a string value. - if ("'""".Contains($val.Substring(0, 1))) { - $val = $val.Substring(1, $val.Length - 2) - } - - $pyvenvConfig[$keyval[0]] = $val - Write-Verbose "Adding Key: '$($keyval[0])'='$val'" - } - } - } - return $pyvenvConfig -} - - -<# Begin Activate script --------------------------------------------------- #> - -# Determine the containing directory of this script -$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition -$VenvExecDir = Get-Item -Path $VenvExecPath - -Write-Verbose "Activation script is located in path: '$VenvExecPath'" -Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)" -Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)" - -# Set values required in priority: CmdLine, ConfigFile, Default -# First, get the location of the virtual environment, it might not be -# VenvExecDir if specified on the command line. -if ($VenvDir) { - Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values" -} -else { - Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir." - $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/") - Write-Verbose "VenvDir=$VenvDir" -} - -# Next, read the `pyvenv.cfg` file to determine any required value such -# as `prompt`. -$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir - -# Next, set the prompt from the command line, or the config file, or -# just use the name of the virtual environment folder. -if ($Prompt) { - Write-Verbose "Prompt specified as argument, using '$Prompt'" -} -else { - Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value" - if ($pyvenvCfg -and $pyvenvCfg['prompt']) { - Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'" - $Prompt = $pyvenvCfg['prompt']; - } - else { - Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)" - Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'" - $Prompt = Split-Path -Path $venvDir -Leaf - } -} - -Write-Verbose "Prompt = '$Prompt'" -Write-Verbose "VenvDir='$VenvDir'" - -# Deactivate any currently active virtual environment, but leave the -# deactivate function in place. -deactivate -nondestructive - -# Now set the environment variable VIRTUAL_ENV, used by many tools to determine -# that there is an activated venv. -$env:VIRTUAL_ENV = $VenvDir - -if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) { - - Write-Verbose "Setting prompt to '$Prompt'" - - # Set the prompt to include the env name - # Make sure _OLD_VIRTUAL_PROMPT is global - function global:_OLD_VIRTUAL_PROMPT { "" } - Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT - New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt - - function global:prompt { - Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) " - _OLD_VIRTUAL_PROMPT - } - $env:VIRTUAL_ENV_PROMPT = $Prompt -} - -# Clear PYTHONHOME -if (Test-Path -Path Env:PYTHONHOME) { - Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME - Remove-Item -Path Env:PYTHONHOME -} - -# Add the venv to the PATH -Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH -$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH" diff --git a/pycode/memilio-simulation/mv/bin/activate b/pycode/memilio-simulation/mv/bin/activate deleted file mode 100644 index 8e15189229..0000000000 --- a/pycode/memilio-simulation/mv/bin/activate +++ /dev/null @@ -1,63 +0,0 @@ -# This file must be used with "source bin/activate" *from bash* -# you cannot run it directly - -deactivate () { - # reset old environment variables - if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then - PATH="${_OLD_VIRTUAL_PATH:-}" - export PATH - unset _OLD_VIRTUAL_PATH - fi - if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then - PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" - export PYTHONHOME - unset _OLD_VIRTUAL_PYTHONHOME - fi - - # Call hash to forget past commands. Without forgetting - # past commands the $PATH changes we made may not be respected - hash -r 2> /dev/null - - if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then - PS1="${_OLD_VIRTUAL_PS1:-}" - export PS1 - unset _OLD_VIRTUAL_PS1 - fi - - unset VIRTUAL_ENV - unset VIRTUAL_ENV_PROMPT - if [ ! "${1:-}" = "nondestructive" ] ; then - # Self destruct! - unset -f deactivate - fi -} - -# unset irrelevant variables -deactivate nondestructive - -VIRTUAL_ENV=/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv -export VIRTUAL_ENV - -_OLD_VIRTUAL_PATH="$PATH" -PATH="$VIRTUAL_ENV/"bin":$PATH" -export PATH - -# unset PYTHONHOME if set -# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) -# could use `if (set -u; : $PYTHONHOME) ;` in bash -if [ -n "${PYTHONHOME:-}" ] ; then - _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" - unset PYTHONHOME -fi - -if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then - _OLD_VIRTUAL_PS1="${PS1:-}" - PS1='(mv) '"${PS1:-}" - export PS1 - VIRTUAL_ENV_PROMPT='(mv) ' - export VIRTUAL_ENV_PROMPT -fi - -# Call hash to forget past commands. Without forgetting -# past commands the $PATH changes we made may not be respected -hash -r 2> /dev/null diff --git a/pycode/memilio-simulation/mv/bin/activate.csh b/pycode/memilio-simulation/mv/bin/activate.csh deleted file mode 100644 index faae0995fb..0000000000 --- a/pycode/memilio-simulation/mv/bin/activate.csh +++ /dev/null @@ -1,26 +0,0 @@ -# This file must be used with "source bin/activate.csh" *from csh*. -# You cannot run it directly. -# Created by Davide Di Blasi . -# Ported to Python 3.3 venv by Andrew Svetlov - -alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate' - -# Unset irrelevant variables. -deactivate nondestructive - -setenv VIRTUAL_ENV /Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv - -set _OLD_VIRTUAL_PATH="$PATH" -setenv PATH "$VIRTUAL_ENV/"bin":$PATH" - - -set _OLD_VIRTUAL_PROMPT="$prompt" - -if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then - set prompt = '(mv) '"$prompt" - setenv VIRTUAL_ENV_PROMPT '(mv) ' -endif - -alias pydoc python -m pydoc - -rehash diff --git a/pycode/memilio-simulation/mv/bin/activate.fish b/pycode/memilio-simulation/mv/bin/activate.fish deleted file mode 100644 index 860f19e6de..0000000000 --- a/pycode/memilio-simulation/mv/bin/activate.fish +++ /dev/null @@ -1,69 +0,0 @@ -# This file must be used with "source /bin/activate.fish" *from fish* -# (https://fishshell.com/); you cannot run it directly. - -function deactivate -d "Exit virtual environment and return to normal shell environment" - # reset old environment variables - if test -n "$_OLD_VIRTUAL_PATH" - set -gx PATH $_OLD_VIRTUAL_PATH - set -e _OLD_VIRTUAL_PATH - end - if test -n "$_OLD_VIRTUAL_PYTHONHOME" - set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME - set -e _OLD_VIRTUAL_PYTHONHOME - end - - if test -n "$_OLD_FISH_PROMPT_OVERRIDE" - set -e _OLD_FISH_PROMPT_OVERRIDE - # prevents error when using nested fish instances (Issue #93858) - if functions -q _old_fish_prompt - functions -e fish_prompt - functions -c _old_fish_prompt fish_prompt - functions -e _old_fish_prompt - end - end - - set -e VIRTUAL_ENV - set -e VIRTUAL_ENV_PROMPT - if test "$argv[1]" != "nondestructive" - # Self-destruct! - functions -e deactivate - end -end - -# Unset irrelevant variables. -deactivate nondestructive - -set -gx VIRTUAL_ENV /Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv - -set -gx _OLD_VIRTUAL_PATH $PATH -set -gx PATH "$VIRTUAL_ENV/"bin $PATH - -# Unset PYTHONHOME if set. -if set -q PYTHONHOME - set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME - set -e PYTHONHOME -end - -if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" - # fish uses a function instead of an env var to generate the prompt. - - # Save the current fish_prompt function as the function _old_fish_prompt. - functions -c fish_prompt _old_fish_prompt - - # With the original prompt function renamed, we can override with our own. - function fish_prompt - # Save the return status of the last command. - set -l old_status $status - - # Output the venv prompt; color taken from the blue of the Python logo. - printf "%s%s%s" (set_color 4B8BBE) '(mv) ' (set_color normal) - - # Restore the return status of the previous command. - echo "exit $old_status" | . - # Output the original/"old" prompt. - _old_fish_prompt - end - - set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" - set -gx VIRTUAL_ENV_PROMPT '(mv) ' -end diff --git a/pycode/memilio-simulation/mv/bin/ccmake b/pycode/memilio-simulation/mv/bin/ccmake deleted file mode 100755 index c2355150a9..0000000000 --- a/pycode/memilio-simulation/mv/bin/ccmake +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from cmake import ccmake -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(ccmake()) diff --git a/pycode/memilio-simulation/mv/bin/cmake b/pycode/memilio-simulation/mv/bin/cmake deleted file mode 100755 index 9b2d0ba62b..0000000000 --- a/pycode/memilio-simulation/mv/bin/cmake +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from cmake import cmake -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cmake()) diff --git a/pycode/memilio-simulation/mv/bin/cpack b/pycode/memilio-simulation/mv/bin/cpack deleted file mode 100755 index 169e2516e9..0000000000 --- a/pycode/memilio-simulation/mv/bin/cpack +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from cmake import cpack -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cpack()) diff --git a/pycode/memilio-simulation/mv/bin/ctest b/pycode/memilio-simulation/mv/bin/ctest deleted file mode 100755 index e9f98b2ec1..0000000000 --- a/pycode/memilio-simulation/mv/bin/ctest +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from cmake import ctest -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(ctest()) diff --git a/pycode/memilio-simulation/mv/bin/distro b/pycode/memilio-simulation/mv/bin/distro deleted file mode 100755 index 5e974fbd49..0000000000 --- a/pycode/memilio-simulation/mv/bin/distro +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from distro.distro import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/f2py b/pycode/memilio-simulation/mv/bin/f2py deleted file mode 100755 index 5763a63624..0000000000 --- a/pycode/memilio-simulation/mv/bin/f2py +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from numpy.f2py.f2py2e import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/f2py3 b/pycode/memilio-simulation/mv/bin/f2py3 deleted file mode 100755 index 5763a63624..0000000000 --- a/pycode/memilio-simulation/mv/bin/f2py3 +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from numpy.f2py.f2py2e import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/f2py3.11 b/pycode/memilio-simulation/mv/bin/f2py3.11 deleted file mode 100755 index 5763a63624..0000000000 --- a/pycode/memilio-simulation/mv/bin/f2py3.11 +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from numpy.f2py.f2py2e import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/ninja b/pycode/memilio-simulation/mv/bin/ninja deleted file mode 100755 index c18c77022ccc8abe74106a4afee6ee5bfa5ff17f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613352 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

*^`!&M0>m(i+2QX0Ci5O^ zP)rV|T9Me&>iX*6nGa~1jV^T=SJozd1d7+Ze!!^VqZnOVsM*H7`UrTRU z6ovT8fbs4p#p=v!R6ulyvyQ!(3y3qP`uk!rFF#5)fGlKYEY(_Aukvfhq$^*i%0*OG zQ`xmUQ9DJL6$|@mDy`~Hr*-AbEVbfwWZ4F7w1IgtI2u$BWnt07cK7w04z~yhZegxD zgw%=-q3S$Hk;?6dJ=9)#U=RXSijt=ras>t1!5T3n2CFz#muq)G>Y#tSlesL(L)hn!DFK=uFnd9d3Wx3Hc5Q*n&`$ym}^tf2v;=JziG% zy#XD%h7vapz;v<4Q9O=J#YadWn>)a?dFH4AkqfykAK;5N_Xux{Hg~1wdl35(?Az9M zNGZZYMjptc4Lr)ggMBg6ztpc=kLk!*J3Bhd3v4$F?MHe+m z#yqEb7AP)xCx19;lL7XTKl+R|Hg*Kw%fD0H_P9Y(@%+Euc;{_5l9=g<(%j)UacGd4 zr}|zhcv}@}yP;w!JHp#a89cTHRH+s1W>(4)C*-Z1e2H#~!@;E{aWx?VjLQGlJ=Ay1P6njWMmylcM8iP3ND5MZV`$sP zOyl{LUqe=SyUE&XG#Wj!q2jYC3rtGdQ5Lmy^&g=uzJEFJD|4l?C!knO{s?d80o}O( zXe-U^G>pR`UV$x73Z+5#vmh4J6!!(xs2**@mN&l0#6^mD|{s2rkE-0 z&BWU&T*4Qbu6GDUmY%NF{PqqN&6nU;2McP7n-aLG+EecQ>nzQ2dK&L0zhJbGfv6GS~6v@R!hS&bqvptBu0Z)td-*{G4_?$aD2ma3Syq?M#Nxoj1DF3C#` zDKT#`a=GR1f*Gwu#MI?k6og?|;0Zl)w{KGFg0w!_qaP%@Y)3zwz_1Mckn2>-Y)&Yc z!MHP~X;QjIN-Q$@9?@&v-qqR2WZ>jhWa3o)iFcW@TKBpCM(eheyYy^|B7wUBxOcdZ z|FXrLLJ_SPU+HMR(%Gs0HU&pas?N4Ty3E-&lnZU}(tc&nuu=jECw$l1b4~OLU3E8u zvxF6kx%Vfmfq=ks`1!;`bSGDt5g@WqZ*IEO8$q?8)Dq1#0@O~70i-yVHkAB%^M`@N zRL=}*nHV+U#8c8Zv0V>^6ICR0ueRv$>Bm5a#$=7;@Qf;EMg@k_vVaTm_8nkwVWPht zOXHnLDAN*X@qi!sTl~U8k}-mpI`IEOapZpeVVsd48s|u)bV`E)Kk$M3BgQ};ma}x) z>vOWvgMoZh9}@$qbTd#eW!+e*#8eOCuM+2~(VcL_V#pkCxiVdi_FGGhwu9TYT(}-n zFJqF21PBc~+r|uQ^jn70H})N7fEAB1q$aR~2C9w;(`$)6gQwS+DOnMnffZ5wnMRgG zuhY;=e7Bl&0ex8mAl4ku(9Hj@j1sSL)L z0%2nD)e5sfaf{4u`d!t@ zNHnU}+y*AWu&NT`*1Esqq0o}Hg7>aJF&C*KitfP#uO{??zvd6WxBtkExCcSRVgcu$ zuNMZO#>mJLr|MI)DFCJwOEpbim!Dd4SY{jZmW%Y10pq+H%p5m=Ebi_Uup(5J8KS!o z%!4*&xn#ouTCD}nYEt9bITl2BeH20|Bf=Wc2{FaJ&pbdx0GhAXhciq`klaD|+l>K=TO@0IEz zmAW++_Ybxt?^n&6s=9No)4bVABaK+YsruwAXK&t5|H0WShob*`v$wJrv-jpb*|Yay z=xb*0`;UIj>~;Hf_UxIFd$ae$E^VMHNDErzZ!l5=5N77gXzk=3#Z(w=bt7P~*u4~B z5)+c4@WY>Qs2_(O$74Ryl4z&uEdbRX(x3iObdDjCK+U2FEl+5K1|oRcQZ}6D-M-{l zS7iT!ygi5X69LAl;4QNnfR*<2mLLKQLu@3cvGm%ai1D1N0&XftbaARX^TT#v*5B$t zp*oQ87xJyMvZ$_O_$_3aba`&g^7{myjofA>#R$4Y;aj2z!n+dDFyi_3Ow9slO;aA*oASsj%c_OoNq4 zqc%)TW%m8?yrXD^C6OpRp4Ww&SoOd08y>9fB+tsU=@ENQRW9wZou*MeDQp6@p@Z~j zAjzM&vYTZE{+&vo_qHdWRvrM*o4hAubi)nUlkaU4394nCj``Ja_|^#cQS*)mJC>&| zC$MnB-_0Bh4;Wd#$w~C+)ifJ)DzLIUyJ2i+t%(5?!^o^)%B@ALH#`Plj*0jK68gIF z3)53~1WkK7ees~(DA@L>es2on2KG>|O52mAUiDzbUz3Iv=J_jOC2K0|`kd~qNQ2oJ z8UZU+e9)|vM&~?{H<-KWvFaN&lWlgxhCq4*$rAI>2qoN47IJ!@!;zwSbl=n6sp-4d zbSG2RY+33G z9;9wg{uj5&pYSKuHTj@^pC-^zqxuYlcwF_plVJ5S8lIP$t5*qSleSIG9N53&`4I

+3R&jG}JB#5?;k?*f)=ig8U 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%0DrGPV#=n`&TH#+P+86 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�SMNsg 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

m+6FC=sDfOKP*M-^E*0(Rz&Z(4rWXZn8b(=nh zD`x?3jZxO+({$blT=Q|>5KsE?35ciD`9pa-@&{}FqYA`-njgmX;mlm(La3`ft<+9? zAg%s%KEmEVhmTZu4fhmU_z73sNF2^w_S5*SWIH_0<+VIk^47EP&dYD$`icBz>L3o1 z_MMmKRQ8j2F3h>lrmamEDSo|JcwL&_-dpVUBBKqxO|(vjcArycoSV_+O(bRp}km$_xp4;I7o z-Qf9+@cd$U-taj0p}9QomfM+OZ554#3`UkP=DIWHu3*eZ zVf5@TxOIFIu6KQWthqSnvBxR}zAn66&IBEo2CrMsrTbdmtZN;CoEd?fF>OaL?l}Hj zcoEK=F*Nv!O@lD^ACLMpcr!mPw_JGRSo>z)?c?%BHoOtm_#4%YeU~2D3d;k@49Ugi z{_Po|_=}cF^DpHYe(|4&w}PyTink0sPj?Ib7<%?|cu9NeXK}x<){#}-ovqAjjfF4eh9-eaE$^BSe!{m^&hu+L6C|vBd#ql$ zq4DHf?!FJm3w@UNCA`OnmDc0$92K82w*JJe!KBW9J&rCU{jCwZ>G+^ zh#&V!$*1nvdH5^*bHDj4y3X>v(B+|A_Hd0LPa{52#STeFoB~}`R(hfC7(TusGZNdN zwd29++dYWuqVFbFBt1C!er|TfZ zHcm2WoR1%P*w(e0zK2aO*)wl&XfJc0-*5F6Ueb4^-vax?ym7%~Hhr>F&-4%aM=~+Y zip=9ZXGo9G3h;FM@r7dK|Bcp2t)KlT=?5>yp2Ig5A6r_#FsV&GYA zLqmV3Tn+u>-#bFO)t5@!O{2vt#oPcxGom{5%8k$1WjW ziug+-XCgK~c1zP;;g>x*k6l6kbq?tqi(=qr_q9eD{#!RtXZ~ioycnmxtHqDfIhHJ) z7`bAT(MhEr>@spc!|0h6oOj@s&vEjPyKULT#QU~h8t?~aPv@>rSI=$F?->~4jCcco z;Z;i}j{CrYk51DJpDtp2xMdoja_aD0g8gsGBrD%rx-U{!*P8dsH(M7z^g*la$$8&$ z#!~5^&_}dI`oy>&E!kK3UR`UX$6Kv=57|0wAUjyR$kvsOzFXGK+G^TRnicxcDHpjC z-S=U1-#6cEO)PQBp@&SrYU#dR?{8{dv?ZC(x5;_PBL+dRg+G+h~ z`Ygz~4W=I29!B<>JaeyY&+{Adlz-FBb4h58o9A;^x99n#;5_N%p{|u~o?oBs*Eh(M zJ=e(tEta}@23+3`=O^UBw`1c&yT3&q^>u>2%X91x^>s#CU)Q+#w+{*Z(56#;-kVD& z27Yw5uNOT`dG7g^4bq;!X;7%vp)0(!4_<2Bx%8Krqr0(P?EaYL(lRHsgmRKy z>3Ajj+;R?Hjo3tnuHZG%ZENF|?QN|RJ4>z(qM&{T&W@a4ovk2HGRc9!?s^RK&v>vQdPrNdXd(&6W( z!5;!XqC-0T#Nsit7p1{(&ky`w4*ui7e<64J(I4YG>h@(W{CU}->m2;uIUz4`(Osqt z<2Ro>Y}__iRJwG`3Q7MIPU&^14e54h#h0D@)X~D4qnU>sUxQnR+L2yInOmkQEA(f| zh%X~|&<@9bRy(3LzZgDi{E}10cJ2d4Zhfi9w!uw*f1df;Q(gaPPygZ-UjGDinu|5R zo*q_O|HogXMoMpZgua*F;6<J0#nR;Ijit%oU^~r~ z9W-sMIbR%mY*Hionx8v$h^XzdR^(*y-0_%LC#8@jCXzCPddGVsiAW!E|x9!|( zRO$^SM)ZzkO!0;SP29zOCwV-iZR|-J-#w%~OIi;98+$|o>-aW<_tH+G#7o_X#qAu* zqn^ZlRpE=~-3@2pkC*#l4cs>|HD3;+J)L6JCgj=zmQI_$0p{aJVHZBKn-!|jn0 zor`#eA2xU52sHf){>pCni#Ob1f8%@NB7De$`OT2;*s3E2|HI;8+@(oea)5bJQs*t3e`9vmH2omw^6dEd_W9PaA8hO|bW{iXKaviJkkRp>Ei&op?gx`vGE z(FeKj?bt?deSETA7i%!ZscGGcgFdS+$T<+fKGmaT1IT~f6JBVziF4YpOA^m6sL$Yj zuV&rvby>#hMDlz4DyRRnHS*a0)`bJ!ZS_AnZgt?ytw;Yio*OO7@c)0Lr7n)7)>z3?8%m9SKLtF} zZJ1p4s+@B!82;EKICrC;!q^N$jLk44I;qf(HLby3aQ(5zc6;bk`Fa&|DnDr7Xo7qt zGdLd%K9t}4(1uRvR@M9NdNZ}k#JXV!SmT>c@KbYE3o0 zorBWaxphNfWUa4%TgNumIc*F-`tL;<*uIek_i@a+H8Y=BSYi~mlzEEiXOHofgsCGy z9Wm&DEZUrNb9U&b1=fl$la?S)n7gb?hzXAQYHCHV_0zn2uR#7ZK_A`K&0eXAuaaMN z>AXnt&Ww!sdSoNt@?KtSpPvexIDMh=F?iyQr&6mLIB$O-Ypu`oAAcJjS&d(jZ_Q5L z_g?yJq>AyfhF=T*_4nTPBwMcMY*)Plr{!o>$ z~X|kO6*t4GGT+(6-ocC{gl27m+Pwggdm_3jWlqRcbht^eNUoTD0R9@21Rky}V zb{AK$XOexA$r}9IMdabU--%ln{CgX=>6Wd&f!rO{H~J;Y$ak@dc(wR%?KyD->&Wr_ z_Os^y-Nc_rE;T{l@8zN&5`&lf3URi?vW=pw)<5FYO1V=DoF|uR4&9t{lP~m&!N-%V zCOv&kZY1NOnt4*VzDOR8^Bmwjr~DV2eVoo2bA6+wq<@F>YSNWoaK@0f(ZDWEzQlia zFY4u+XgH7e)C2H0?Z*dE7`u~kL3&^2+&q<`&0ABct+886lc`%hrpz$X<5|0k8+8um z2#3~Jdy=0ao&MV6cjqMLj;1W=yEvGbFxi{uSjs++i@ku!izwH00y)Qg zvFuxX`y2PlI5_yzaX3f}|3P$|ovAHe(m#v-CiA$=q_G1eR?>xb(!>D>dLUHpNUgnpf_h)^|q3%pVybXY%xX{FSPx=4U^41 zh%x+89q&Qhz?yvf9{;p^5OuH9ve8wM<+tnzA3SW$PVviXwPu&_JIFm^DSlbpiCDs~ zjyn<85fkFxiKsI&CX;_Md2}DeJYprpbKhJJ0xTD7={hc*W zmK9njp?yKp&zhMlf}Jm{qm@ziXY_^iK%BPllks6M*L{3b|H`?Q zd{?^~ccfPRfM<>W1Y;i^WM-W4qkR;yk|5_sz>hi1xi-Fgay~bb^~I6{S5roE{B_DR zPEC2vkS&O>4kq8B9Qx&!IPfmvo7U{*zZX11FW@ai*FS|1-i*O(E;n~nDK_GDa8~)a z&bg>ItTGx+I_G`ig{3{*2PuV`T%{ejY%D$*@ zS3Tb&?^l!;TPNKPk*$+%htycc4%y?!4%vJv)t~*r`?i3?3h%&Bin%GpyyKq5o?^Zs z_Gj~nS4WsQrmu7M*b(xa1h-Yo#F z_N;LZ3UV?1{4t$PUBp@JPdMj}`T4GM$1bA{I){b5gVFmqGpCBXpcQ{|u}yQ%UO)F+ zHQ#iHo6cTW-gVS}g!%*A`KEdOB)BGM!x8QTQ|!;j(#^T-eWD)fRqW3ZbRkzC`V4cs ze5#2JHV@@;?kT$5R`HGD;l_f{&;F8HCB4Lqr{>fu#d`5w_6hu65c(hI@qZ`3EBVP@7LJ+=gS1z3AavfUxzFf> z%y(NIST&Tro&1_FH!F?24V-xvW4_$PyO}RPN)_r1zi*INaJ8Nj?gCEq(+2X$rk6Z5 zbuusid?9oI&za;eApIeyoMcYClReizM>&l@mkxp@I>hMjWvZ8c)0&a|kc)W#V=rse zx7|9@=9vY2i%knA{}+2BeI9v|bax&(J)dvrW1XH%t(palGVqa|EqsUISDfiQr|TPE zr9ARzkH7S+zVRKWT{lu*bDp6k^UGA>0Q?^h=AUup;a#xRKK-Y|If`tkKGZ2R7g*Kn zeWBbAu{n}w75bh7@BQm-crMN=H>g9oQm34sa`EqAqf&QI@|ZrMFZ7&_^C$=B zr<^)`eD^x}75DHUJ{zrNsJ!0)*vT3-+<9j&@2K>?6F(SQ(1%&Tor}&i#K}8^XY4-% z=cni`8aIOZAkXetI*nZI<)pvBa}VeFCZ07mO&jnj_=U4%szZ;t#G?oCs|;l9D}4j$ zdw+7FGp^6}g};*(@v^?0S#BXOGNaeeHS^CNzhirwyX|`}y-7BBVY*0To zH0uZT4PI~EF>u#L*ToXvo+$~n6t1!6WE~5 zx<5KEa6vn?Vi)=??df=So_j~k@vc_#z*H-AnD%Ne{h6W5*}3#P@7l6T=OsvIYpQ|& z!F4ILsrcR-(tiu$U8Nrcldk|n?e`fz=pUWPd$nlDJbLmgojA9#GiOzF;mnGzoYCRu zj1I3kqXXa2#P}Lw=U5NUU0T;#v*eepxwn7N%3cg?WA2rXakeXTc#d&d!TE*E;pSW{ zPYil*utE=0kL=!Z;=y8$&JqYP$MQ|(G$%^eNTsmzH(14wjq#yF+kN#Pl#Qnvh)smH zYlx-eU+o&8H3_A$?#7<7t%~uB_27<{;+h^G z>I;>$@6Y7U6!w&=-AUTx2d~_;JHG#2_z`=R~`J zcLKz@;~C~V}s%w6HUra(ni`mn!LY4W>@f!{$8(dW{mQ!fV6F&We+BI z9ElEP@WTq~`vU3Wr)%IR&h*e6xX0QwICLfaBz@_pz*8H_8=QFnn2q@MRG<1%<5cy8 zHD8f71bCV|P5K(Ae(2wibn*9V=%Knh;`Ae3pzVe3k6_=eiPhxXsrQ#CK6P_mUP%aE znOy`Aw+)BqCU9553vaMrHuwzu4G#>8vKFvabDR3N0^7U{x(*~>FUkI3x9>*1TwD9! zW>4+F7C(C&I_{}GKJDB+wf&8crhl{r+~t#1zqxyAE8x*_)R6&BCG=gX^i}#zzM5~+ z<~Vz>xXZ!ptu=Qs^udN9R@U4n!Ts=)IfJo`eGZddzDdD1_yx6J_+-|{?_$^m4vN`3 zxdFZ*U;H8)p3VhIzl&kA>V|HO+ze_!Js$^-qf_m%(8a&~j^-NfFyMRY4aP6H z<4?|vS8>nyaGS4*{WSV~f_%-`*`ikhIODiOLUAzg-eyk32rUDa&c6}73Um(X8SyOo zQ*jHFORu-mskef=5%i7mL)}(#5;0Bq$Y(ZSv#CArP>G+&`E+~7e%F<8qR>nE~J(l+s;C2E0H(LX^Ygl78hb0u)w$1e4iX`EA^^ke0fZ`mzl+CiCY;g;5}A-tKF%wgabCmPte>@6GuE#h5{e(`^m_YPzw`WK{SI(4vix5>);|RQe`c&N5FIWw z*01{K$NI0p;U5|6U!rc8c8y=NUN__YsqC@|pG5_F@PzYG=n9pU*Uq!#3XUv;=A9CvLIOaz>W4_uM^E#(XWB&M` z(S^L9KHd+ejdx_tsIZq9ac8`{u-*Zd8S6vkfA@q+pl!#o{($J6HYV=l{U06cx2Y^+ z&ws=o>t(z@_i1DOr$a)Uov}Xaf6tEfM|u9Fv3?zJ|JkvAnQ%*MR}SxL*N$r#>tj1} zXG(AMri;;^`k*&vqBnL%Z`7UOR&-nHM*Px4+O}2Q5ZUG%+_qtXXRq!sx~aRhBG|<$ zs6lsHh%UAWeq78vv}9K>xfK3vCT8-3v7Et*jq`WTsr%J-__c~Vmr8t*4>&I_b!V5z zTdb{pP}Mb(y51kjo5#F#bs(~lxnu_GW;4*`<5y=ynum3Zyg$4<|2-n%;osnV3x7)k zvHH62OuAXv_h4HtagQs|3-n$0qOa+>(A>S{nf+Ls^!xSTdvGXi<}8Bnkv|r3zfWNe zXHJJnzgsX!i!6AcO*)*?G@n$;N1kKPS;oi2xDm~y>xyq=zbA%G$kW=)rIFw_uD~}^ zK^d*Dn*6;!WAa<%*Z3$Uzi?Rx{I0`@=}6hQxbu@*X$R6XYgi&uU-S^y&HnrY!$6Kvidw$Tml316O-M`;@?-jpl z?f3l;TKnI;WMAP$-*0{G;kQ~}BW_b|@{Y6i<`C0S2wyZP=JwJccLw&|#T}=+GByX> z#(Vmk7z{r#)!1TNEcSENc&**4Hy{6JKs1DYpGGsae^(B67U!0i%a5{PP}?`*LDMJ9 zw`+m%4c_fBHwk{c8@`-~K7SXwd}niZVV1@HrktncxBBSpte1m4-wk~ej3ccN$nN&= z(|qUJ;Hr0%Q*R7CQ}yLCN2WuVCotF%}90PO8C4v|8S!ayi_}$Nhenq}Bb3O}QZ-Kry)8Avcm(V_| z(mm_+UF6X_?3eW80|;C)+4iRO>_cuutjH zY-?{lv@3o9{7K98S@kQ4+dOb_Av$vZXdCd2O%5N(ruzbTDqq$Mo|)P7jX7shdlwto zA4q?u=bcDirI$PTf_zuGDbBiF92%MSKXGa3yX2Kj(cGzZj$B`L{W`CI#tH1i?c^ul za<+ShUX7(zDWCi~3z4^rkh_bKzln{k@4w`U92;hZIJhX3NO>a>FXwWmkhd>lmpowA zw_K0iHG_2t&dl5m%&Ek_^ye&>7-hC_eu?;${rT(@;{29Ub*Z)VXquhBOr?hhu_ z<|AIKem-;<^Q}Uo8#K`$8k_0^^qomrzho~tGVodQJo@z6JhB`9u6%rV`@+Ng(Fd4u zZ*_f2cAIQc<|x^3(0#%VX!FiH_T5Tq<2>-TeAw)?LE|@7#o1H%b&hTrYwlVJQg01o zz(Q^}kwLbZd{R>a! zJINZT@?d8as-76KQ}DN3MLpnpkz2p+@TC53PW_wso_fQ_d9mFY(>;)tJ&~0@BP+v_ zRktutB6q?IKGViQlD!|NuU{qo0DZ0T)kt5Pe4b%ue`xI6zB;ROX?I2COBcFGp>1*_kLiIJ{Vg&OmeZ5|NJ&m(veS+5~ z+J(NZ_R`lI+`fiCI3GiOeq_Tf5v{wZzboASCf}j4+>eev^r-s#`e6IoOss2ZBu9Na z8G98zFnvosY4)n=+lGVoxK=)6pON=<(fDeoZyCFyx$f_ZK&NxgDdIc`yU*`{*0&=+ zZ$oz4HmLd=U(mi>%i_%RvCk%scz#@Y&vV4l1XlZdH~e8Iaf`W~{ku!}euy}Wj2`%s z?kk0-`?fT&=X>Q;D|C?Oa-NSsYw?GCnU6Z@Yl#={c-Q3^bdu?uV>6DJj2X!N68L%g z%Zq9!TNy1m=n9GpnE~x4lU~jm&n}*or6~u?E$5#*l=jqcci$+vb7O}QEV+!Yd zu;0VXo285+&FfR)`JVJ|^{LdTDsT*P_Cm!DU-rt5Q>iU~ z1|JLjwazWN3)e7r(8s{P5?!tYJY&eVkM&(=|Kd!}q@Uu=WY2w{Xm{YKYz6OXn`m?l z`(O9jZ)biw!WnW$8PiqVl|BVMK;z~p`%|P#tz*1sT}p8Dy+N|E+}i8^@L&;Z=xibQ zVq0I}YhTDQ%B=xrHFVfA)!G|wwezf<|HU@ppgczykK2F~qtB4B`&j?pcO1T(1>b3X z;7{b!eUV3fr4c{Z%ByYuC;P1y{@WN^W1v;Fx6fkTc^*bKS?d2+rI?51)AC~9 z#?fC=x~~=a^A5Pbi_Ee4(u;24kH-D>+05D9kv-eEPZe8#MGs5&{^uSF&OXpL%}qh%^zq4_;uB+u zW9Wl_794ag_TOsp2T*4M*~PgV&t$>>BN?-j`=U>r|B?9Uo7E4{hYiw(ZsHHoZ7J`M zolb2zI?SFA*U^Wk@F~}Lb#CZb=PcDH_b=j%)N|LR2ejO9?en#@jCtKz!`WF|gRDze z0Z(_wM8R8UsOm0?HQvE3IgADAtdeQx`(DoXMXXO}n7hFToAv3V;E};PcKk(eq?x|> zHFKEGl}%4uaa`wlW=0>N-k14iXhAzg2hk`^UN4vbgaa@Py^O6-zS}7`vZqxLM)%N~ zl!*mpK1{ZZiIi|BPc?mDbnY(~hgb*u@P)}Ygy!%+=hhoSv-m&oYH{f6{GXV0gSme^ zfG!>AD!;g8bgZuMbn!6Gk^ojV=TPMOSfi>8*6+lQo&KZyA~QT0yJv70N(r)3_SikM zE8C7Chf-BtBG@&_9P-EL=R>r`3(vPP$1_*HY$0b1Eb7Z+pLhg%XZZpxo!$f*_pN7wN2cN0@r{3s<9()lv^#Zrv$d8NBl{#U6 z_?WZ2<{piY`Cx|OgIVC&E4lH9uJ~by`*V3O1HTD6!t%T+tXK0K9#I^rz#mhIe2u>0 z+1osfy@wk-dlTq1$B~DP>(Ncd`bxf4&v^^&u@V(uH@9i^f8#Y*bzwfjA{XzO2J)xjtsuill2GkzqqtIIV zjqZi0+2Q!xSf`|Id#o3VLLX7DdH!Qj=#=~1t2or=KL4~hbd2X$Haz*UzRmi++qYkA z@7rg`a2M`+)))ofe?#c6lx<=@P@lD2#xp#xK6{zCTaC%^qkl^4t3T0K588c2n>zN@ zsXw}X^(UvV9&9@zdZGhUA9TE=?eDzX+Z61kgN5xk^9A8zajJ}|BsHp(ViE+awFqRc88TLo%48`?ZeKDzE7V^b~Ddy z2~1{PiM8{Eidpbkl64_vNi(OSgwKjS=9@N7b#h|%Vs6Z`m} z=ac>ThJV%;guVnWHOLap72_D6lILb#y!S@Nh115&8$)Bkspj%h?&$OH9?!ftnfYiV zdM*27_esZ05VNOP_hRzBzds#@81FUNth;8gOOk zGU{A4)Sd@~v-SY=Crv)Hn#<4n%;HWv6V9Bdm@Nb2`&WcA$)AaDL9)irc#mfr_#JSnqz^`5pFPCA zV+*lMZs*>w1ozC1pT~V;^L0;F_h^uNvc{y{!S?qY`wq4$Pj_R3j0Ao_eFt3W?9JTU zb`;;<1Y&AOn7i5Rcv`hP2o8o;d#(uW1Yg~+r+K$#7fqeAxix?A(5zQG|6W&YO?-+x!W8!^mJv%;p z%^;0u-E|;e8a(}>wc>`*&bOsE=-zDNWB4Awn)_@#*2SNui)h?j#JI^u=P*7QXDqc6 zZzx>Q$qTgC-`F+GrEAe^%{V5eMlx{%ILe0kA^!$$(TxJkdl}4s-IxclY3AU^8S4w3gf}GLTHw8-$Tyu~H_P~9`$d;STgBDrd?oK# z&TA*H*_)4zd18&HxNWS*?4KD4J>F%{Zk&BI?z!jlsavv5=boR~&^Z#rKchYQ^7HA; z_JP38(wXgRu#I#F5_|8ndJq?by=v~SL6^9GN!bV2-@DpE?4yWVZ*En%;+lW(M!vCS_N-{V$((aH4!)Gmr*GAH_+S`EeIsMAS2N80 zo03m?$V)#z$n+I*s2!`W8b*traN-doE_%$O*-A? z9ZyYieYxAZSTn~l|IVXNV((a?AL8$fmy{N3pHMUM)Q^o@f{s`Qy@=o1!r5MqU$<){ zj=d1aMlaic3$i`4#Tv>y-p4Yr6dLQ9*CGqhYwUHL%$9QMiTAgXeQ2NB9{2+LfvKk( z>p7FDV=6H+Ez~`owD+i6X^YvPG}-FbvYob$AiXai1U2mg}*S0lvjcXdAG(JIb_E?V5vJ)jE#g#ZGWrfHbI$Vy=wr(c#SQh3 zb|OFgKe8JA{7q<~dZs411BSRtczbIh?X!qYodTa|kB(K%ItOy+8s4vDjBNX+6{%<6 z?lI!A;@BtRNyg$9@yRjzyct@E-{ah&5}s-m%TJ*go-3zt9zJc=eK85X1$h4|aZWMr zC5d1c=T70QxTD;|PQP?B{Sjzk{7#yHZ|v}(uS-0AS_F3<@*?igNc-HL zWo;{!>JkY~!)DaDXD(?1=K-^rV^ZM7xTzsdPI6LXIZm7W*Z~>~ai61?;}=`@`_wAU zDWW~&ZA%Qh;AyQP0mJA{VV_wE_EXV}*z-1#2aYOhVYdXU!9jxc@=&iDjk)aQOvoztjWa!dN9@~K}`$5S2p z=JUdt{xCSxmU|4&eWJ(F$3FdBUn_bqYg$jRrd5j$c>e>8bJ|eG+A?bvd&UeIjo;V4 zA9^QnwPsZfpJc`CHDv6-J&#^;Hjma4w<#ar@jsh2=PAet(YamEoOETVEB!BCe2=z? zr(_GkU;75~W4(LdI3M>Q{VH#9;v)Pw-oS)7e!WxPKD(>B_IkMt9V*w?e|MIr*Wocd zSNM8`8i%yKmgnoUJ3m>qUv@y*Jl2P-Hs;NYmVou)GXt)bOdb%;1UKEaGsqguTEw8J z?#j7^v=r+EYiZYM+pQwYE8YFJma`)J>$&eqWoi7MOpCVI@%>)T7`EoYtp?! zJ$Y{P_JU6R4ZLfCr~9-0q-%dev2VcQ`@j)eZIRykKK*ip^DhU8P8Rnu(k`V}@ZP{) zr;GWQE|;~CH7DYzCjlq!yFQx7T}=7l65#IaGEac^Bg45DKHf!X0c=5kO9k(&#b6r_ z+@0(3FV4c|d4sv5%I7&ue@@a`m2}Ch@%7Hnf^?NA7_j0Ui;MK)74L9ozBa#UKZV|eBD~+9ZOC6Z^p!UUto8fa$%m!xp%6Hc0a%V z7JSgm+xVcl>!|*qH!x!gx^f;oBH1B2Ddu?`V~n;;thp|jw0+IkMVyT+-*NsGr4j9M zWc^^$LSm?@b#Dc*^-X6={{;FYgX))(rulOve1Bj(`>m0i$bmgpuun+5xgB5cQ2tqO zC(a1@$hVx_(X5yEjlMwH?WD;cjDEYK5B*jQem9Wc*mh}nRSSRNb(!!&MuXSsM@l1- zP104c`43kkw+qPgTVOuHzj#$RACi3dA~GDACOvR6w#pRp4rP6#JLTiZRi#Nc!_Ij* z8@@dOjP-`sba&2x=!e4pbZQji+tA`N;Hoas(zaLnMvry3Rty67KdLW8gP)BKT|&N0 z(px#?rtZFi8<^Wp z4rg7TeFfShF@%0?GiME^*?egRmTqXp~CoR7z;q{nS5COJ35+ESyv0qj3$PTPM_ z@bU|_Z=3xG87*b!*?(|?`7`}aFZW!z-OyjQus`iiFYP~A__6&5{TYk>qFSpEa; zgGk$lkOkZXxN9GRyMJZ0aDdKn_92`^?@gucL-Xx*ao=%+{7u-;ic3ulcWl^UwhjA9`wZX@v(MnM-#YOUS*+c5Z7V<- z%iP*?AZPguoZ$LEu+7`|I#6zp*6nVioW6(Q4R^1D)(twwE4%rFZhrK=^gRl~SvE@o ze4AgoIikDPBul2!H`DON{}tM6j(-;({|h{xe3|`&#FR)6)1IX`wto|4?YM3EH~K^i z>dfAT0_lXtU*q_i3PfA#%WcM21D&qp{SIV`@|y$y&}G8N{y4qRfG>oz0`M_a)`y zyQ^z8aVNoC=CUWIdhsm|Xo+z~gwfF^jttdawRGaiH|xGu0blxi^a>3|4n2+^cRo|dP+?@8RebV@_4=u&e`x@r667H_tjvUo^h;ZxHqlplF5`blz7u)d@#cVbWn z@m}c8eWRaM|2ejQ^Ho7}|6u9M_{|v$%2O&FD5KaJyG*}mF=>j|!a}` zeB5;)GX}w_%)u#_F)Q6*JnsuBQ;Clt-OhPYyh{3XU@KqH$%lV^YfU%T{uyF?!?J%? zli$=)b9JbQyz&NJ8#jsRkC%S#DIo7u2iIIU8VQ3S<9_!eTLx83Fv-yue zyN>qQ->Fx2t!Z4pf2BYIfi@M*e$=6Eyi=qDq8Y4eq|Sv>R>c8t~&kKfl7+v@C^ zqTf$_#LZ@~K9$%&tmsBNRy4ex{wGEy>~&&AnG+N%+Kk`WvliJ+yr}xDKj*Wm&Mmar zjRF1XH(8TK_G^5NBDUI|ThHD-n!Xk%7(=-yL3w@vj>qr&AMo?wQ}(jf4KHiVa%bD! z(CsnC?v;+9r{wcInR_e7LNCQ2^!@poLDk-d;-AxgeDO1- z4-1yb&t1kgJ?*>9kKgx(i4E?k2U(1xDMN`>p*^y(r}SfutGzwxI?sjgb4mI-v0mYe z>g?F<+)Z|zJ0D7PKRt4$4Ig(geVYw$>c4y%T+`4jvnmId4L*bh>1gMIJtPVhWI|1uW09G8!&H}h?=@C~#KgC??9?CWodksBgU;bZ;ee6Bull8acfL8@Dk;8lP za{8JW(zTR13cb_^q6=}d6DKW2H$Q|`WwJ(kj z>k^UQO*W%@&+Dzgv+sFj9Za?aYc`W<<2mQD5gTXbUh9{99QkN{~lu zW+mcJoy+!)VxK*sU;NsM&!MarT7HiFiiy&k-H09@fd8BMHr~UUF!w@Fp6!{be$$?R z;Ua!&25$Oy$)p^7Gg=1~%o~A8FzUqkw$ftpM?apW7rAQ=3Gy|+bW22gk~Q8c&_5E) zXTtH8uVL3xM_u^_ZH^dh1>A z^$!2{&^z_SPnQ%Z{#|RS#Ic&S)OpBa@eKM-{dCqsqnsIS&W*(m+QoV(d&;m!0e*RKIifyXp6XoCz=z*c?n0N^vGq935Zxl{Ye8%{~MAQfrVW=y$)`#klQ@ zEYp1Ub6|z(^Al-(E_ey2&-+@LoF$PNy?#R}2Xy{>`)X=%E$nZ`R^V~h;*M7#DAKs^!nwD(z-T?F^w&q!4YYvZp zYE7;5-#qZvoS03Yb|=Pk3Gq^k1Ht+#bTRyyla{cSvy`#3jkT$@v>(4^Xa?n{@J;Ks zH9v-zD2J}L6}s-RHeYYkl|Ez*`TTVKtWDPn{009gT_5=e>DmdphB-$J9bz^#S?&)N za*kNT=(Wt@?${b7yckzywc6_hu~I!8`tT?(K5&K=W~=*=rmh_cghDq9oU5 zzr?&v-+i5b`62ZD7|&YAEX5a=Gxv(nx0ajpqn2C0D-3no@7Uqwn@+xLCm!`0@@r1G zil4C!z_(F0Irv@OBSJ&b*)ah%1sp`>T?!*BkvviyA{csZlub|B zUiwyrjn6mfGzK>Beq_Gd(w;_{8rJchdDO@Y4`szqlH=|6Od9=?j{aTCf7|4rqN@}-Cc8AW4lgbpIz}5 zI!O&WiM~rGsj+pE&8|+OGScVdhm}9*%$%{bc?@kYWqs^t;T6kL{X3>L_$D9dXiKRd zGO;x#NpAy3!Bo4~F&@eKwcC(&z~`dCTfa+e|unc?$*T> z_WRin<2UC?#x&Dezo zcTRo3qQ2@gsZokUtWrD!F%PrRhe~{XTXd(LOZN@P>IcB3+}kj^0$z=eU_Rpf<+Z$v zcPrrAa^zjCPs8XqYn|d_$v>S%eLi@)hqfc#L?ex7*@si9uXq}9DUb&Gh5 zK7E|{o;BFN^RIiZcD{6A@fPVp_{pVD&dbl&PEud9E^};uX=E+7h}N_3`N2yhU(-pdW9o{^)u{1Ic{a^e(-ZQyP z{V%#`Z_oVeR@bg4j;PWZU)hW=m-lnv{XWoOE$0`Bw;MR`HU-^W9&bXHvCadZWE%cB zL0$SDyMZ-NXs-I2o$-}k-+cHZy}pDq)^ec#3G7bB*T}WfaUFVg z9Qx%o2Pfe?pLJvxUwyZ@^YAFLNb;sH_(|SuLzWadV<`)sp9W8=EgjpSv2@Topk>E( z-!)@NZBSX!EWHiCpbgGgDyU)1Xw6V?cL3Mojsc}HjtaE@(Un7s(&Ug^$5e+-ZXFBT z>9nG@&aPvW_J*b4N%3PxdR0Te8p$5eh4Mebod|-h{L_Zo`vWzHU8u~TDKm@wXL0Hm{j*1Bb9;;ryJ4ukPb=vo z#*zL%4m{*%XaIDU{IvI+6L*<|-^QWet~B~ZNfYfhk|z3m-N>x|j8}a8$gHTwtC3mH z)$VNPi$ZFP+Bxl4MLrq+sVs83IKhOE%NAVkK-Z%~)uHe^zUMiiff_ z?Zo8ectZD(Z_N(t<#KG2O49THCsH~S%v zArpXkC-0lcU!}DI=5t~;BmQpI-oa-|_iOHq1()MG>>!Z-#kB%i?FSy;mx+6c_56#Y3?_}y7L%s7a zzz-X!S9912U{{|=6{_D;^pW0u#FXOqg3kS-`_ZYzr)%)D+H*cK9i8JiGV~}o1_Nz{ zr{NzvhN^G$P4Y|bo8VjZ zkLIS1^c8=L7W1!LSv&Pa>YVYGfCp8M`^!T)%p2o{$MMuC?P0Zfc1ZLo=p&vLof}(h zzFkM!1LTnop}t;^%q~Ypr|XB=*ulBj^A*VGbp0?lfG*^z9(^I1B)cSz-d};Si6*`6@eE7sOaRyg=)N8#LDXL??pZU~K9YAC>Oc*{&52 z3|x(^5~?^=wLg#ktvprr$|?NML)5pd$u=`iUOP{po{wK=Lr?kV#$5mW$N2SZpECc0 zgZNcAOXt$usr|QlxBIX^YaT<|`EUgJC0oUdOPTANn0Ip6N59SMX^|~tp%cm{kVC#E z+9@0Q5}w)bzuQmSvi`$5ycqx1*)tk;uJ%JSf56(Ci9A_-$H3JQM?Oc>=IH6@*=BBo z&XU8D&j(pE*@1jM1kX-K&sKWy<<;ltQ`@LJM*Fz$r?7yw8Jxf``5F6+XsvU2@#Wj& zvTyW#(nSO5E>jsxl9f7B*Ft6=XH2PWy6YrCzQ>3StwH9wcz5LUd*Ji);k^yK*9&j< zlBeU{k9kWb^b-7mp6d>TgHi+4?a;2M7raNi=obb&|s*WQ`)?U^}>J*+$66&n|L(3a&H zo$Rrz*!Dcq3YpXLNlT%}Nxzex=EYVTgUwmVysGq$I`JLQA*k~!u_+fiys^mP4Z&^K z-~84VS7+0@Muh{2IB>H-_E7yiss9{b%%Fouy0Nl6edHpU3|caHw?jQR$@}$C_mGbO(nS zX*jsDc_{rfy&Z>hZ5Qz#KGl)g+!Z>|!Ql{do=XQ82bT`giG{;w$a_%Z4f*zI_{z6) z5P9xJw|C)w5`BXg=;!PUd{b<}=|?&dtKAu&R2O_x=f)YhYlpd(Wo*Q=vMjJ#`>OoN z4Z*L(&!4yVGINjmh{}p0_ij}AhbkRDcKcpqVNt8Czc2RM`uk%>#$jt*x1x3`ccP^0 zpc*S~-#-oA%P)erFKR1X0DU^@$(i`%Ts@h5<~#%9r6-;oMyv$+i}8V!46|mgZj=uQ#t)O6&%`^QPk*lBes9Lxd+05b88;pL0`#v3A6FA}NI(Y* zpBDB?^3^U@?~db6^GCBI?_7VCbf+v}deNPPM{~QpTXl}j98SYSYZ4{sX!Fs3+*xhnBI=Zv$gL0qqEqbPQyd|k)`nj zf7DQaHTAplaUS(Aq<-nS6~d#Z)m!$(nK|R>$8q#$8U1=IJi__TZ`l0tY5Qaq57e>W zzmB|d`#s?JM>FVS$t&rq`A)x&aQa>LhwFP*JM-K7{rTDe&$gWVZtZPp?fe?;lt0)@ z+@hcUw&?FX{&V>E(BA>amnq+%`u$(YfB9*6{8Ri#zyB-w&!2|JKgECa`@fR^{)$|1 z$KyZ6e;2#_cdjnhagWr;V%f^fey0`X>ph_<#O(Y(ti20-RMoY>z0b@fIg^~g2}~Y5 zl<-iK@P-f)LJ0g4S0rqvW=Oq&BH(Ng*wxrgoC1ZQ3SnXwwok zw~ZxjqfKqva%<4sdk0Bd)SwfM&G%nt&V)lm+wXoKzh9Vj&e@N(_g;Igwbx#I?VsRl zU9t*zUg1#p9^hA_zHYx3_|d4Z+pmCyhdKTG6?;b?D4RW{ccI@B<|TVX2TPtJKW9R} zPaV$uiBptM)_)(!AB?8|Zy$ZK3K*Njw=Yn)_$R%4r^bByppVj|O#Dl+p9JA)QJq>f zEb*ufa^7k)zII9Q81cD#61n^__D@?TTv2tCoJHZRvgq{4Q7ewo4;dFZ<0AWGQeGzh zX78{bmo-cy-`=r(3A31E5{p87!Mv=K^hvB`nTN6`DDU^%u^`0usd#67XHT(iO!?DU z+h$Tfi>5PjZrZ|;wbePCd<~C}$>T?l`)BoM+h?N1r_@=0`IxfgEX!E`q<8OJiL8sp zSdI3Jui-B8WqqMABJEHsqdJH9MB^)aFxFRMYnOPD+sD+QsKbfxezAX0PKZ5Ok)JXA zim)Ze`mY#0N8mobe;k|cJB-)O{ARqhyh?O|C|(&2*L(eL{SdvCo~?7V=y6ZTCl?dvUJw3dO&n`--Xz$`raP z<~J4_;n9mlpLF2@v(vBZipdVYF8jPjbWcY1l+zks*?rJUnjr#-b<`GIU5k**TQ?jl~u3H zH@E0;QUAD#eIo}q$r(_ohj*F8nwNTHuk_SxnMYASm>%Xw7&+$UJw9Dg{}jp*`DXcK zT^3DC9IC1%qEDb>C2}_H0hMo^Z+LeScHvli$oJ_BwgcX@sSx|VO>mT%I2iKE6Ce~agz^X-#v z{lJg#la}+Dy5>9XB5wAhoIw|R>oV%i92~(mO}rlHRQ!$ddDo5}*@rJ%shc?8j1jRI zHXWp_uxs*hv5BUp9Qjj-@7zuO#>_WIHWj&3*@NGl&-uvDJoyIpZG5?lp||X><>8N| z@C9W52OD?RX9^?O1|!_PTOfCLoV+bcW4|D-m-7tK{owvK--V`EQkDyQ;3VEn<4j&3 zb6xak`6hcsGoa;}{CV(;TS}To!7G-};91g2zDH=olh~z3=ZDZO^Fw^Y=##4OG<)96 zkNQ=uCVs(IzV*2|8$&tHb2;mI9)kYmZh5Ke^UsVN6#JNEA3DYu$oXSztD`m}nO|Z@ zV$4>OSLV9dpU$l-@RxM+opDTymBZW&i60N|a>?V0y=RO&r7XsH)X&C|Hrtt&dMz5J z-kH3Yx!aK;w04X*m8#03X-|CBC&6FN+e9{d(0Aj|dx>xU5cfzuuMw*=>ZdAgQ=B6> zdB9aK_QJp4iR>3Xi(e&tzFGKvDZg@tDH~j4@h@|QClD9r2)-}RA#0D|9~VZB3_=5M zuU1u}8%ccK5$vSnfbo+VJ+C$luEHzDH&S9~i9d79_Aj*h1Z{d{TW)>{=dMmt)~n$4 zLR$0=Hn~TNepNyL_4___=08xk z0H@!m6l^C#~UL>=`R*$8=+n_3ksV zXJ7RBE}o-lQyZFM-!?_R-7)&j*H8~E=dKQ*XNs@vJDdy2;7rJnds2?rk4hih6A5v? z!Yqn$o#u+Npqv*=uBsV^FrRn@uC(Jz@vk|>_{e#m9Qt0)_i)$5@uc@x zJ+T*`o3cmPE3nV|GY*`Wu-;Sl{GF(yAejVu8R7?mw{s=Dkd>4c#soZqV(!ax5`eP&9BeZWyWCnXS)*QVbAMn>ik8?G= ziQE?7cI!;VOzc~%DdbEAv6re=V7n{5g!TRCeS5^JosEoGtyK*jiTc)Oai${8@~uy6 z_#0()qB9KHvE;(|LQ8q4s7uaMq^VSV>r)%{(dKaZf5@E!4{+~XLGU*1#gmlzW5MN! ztvjJ7_E@;t&y>~8vxUF-u)~u?4}DJ3?6uE?Ah)GHIUDdb=C9yi#JcYs{=^1H-#NRF zdnR8YW)gkn#Q*1%CAPw78(j5$qz%KztTs?z^h`)pU*9NgK=%!8%e`ODCRl4Su|EA8I0-(^Gb&O??7Tv( zPv?P8XdiKS`BqPVMsbz%E53%y_$KDQoFn!) z>);eSL$L>(Lf{l}jI)#%8|T;=3NQ5*iQm}K#nzn?!Fcr@{l%4$&`Vn6*jKrqlQEY$ zSs-J`xEG-}ir+svyLF~U^hnvq(D6GBz4hn(B6M}}!<3jr*GV4Ic4ChapZj8Ye#P>8 zw|wQ-$TNAdeOP-SD|wbOve4m!^wSkQi(DyS4t+&*<(#M-n-2dGo#8^UB4aVDWqvUq zb0v@brV{s6$>JmMkaT!RAv`2x^N;}iBLx3g2|gk}g{K7J zBc&7Q7n_HK;2{ri|4kCh_OXqB*Nd;vWD5lxt6sjR~F=q zj4YA68lvls^oF0JbNpGJnX`#cj~tXaD|00QSjJCykq21x0)aK)O#3{h(3I%=LNCvz zM$bQp{GUTwOaF&{ve+NC&TPcqk*Cwn(@Y+V#-JG~-#U{bYe4AjJMs;BlQpMq=S_>1 zLAhZ$e<9x`J$@%oN_yzA6q+7gf5><4yps2_4w3d)cu6|J0p9Zj`GjueS?KmlJjXx`Fhn^xPCTV1?-w7>9 z`5No@ue#DX58#9Mq&Mi)6CKNF%p(uauWVbA|NcW)f%9r`Uqu^MvR?U5>#Vrst9*)B z#=CyPy9?W-rM@iMHJNs0)2_{SyNc|#7TawVIVNrVDfoyF;B&N5&alWi@x5c(dDw1e zsiU3C>~xY&(BL+S1WJcw+SIAbizs?;6^B742P3dsor6m8^+=G1}%EY4gZx zIVb$V@yyDK@+Lp)c%hFX=4TeVLLN4N-!nHu7Z)D&VI$~dT_ty42OmW?BClTMFYh+l zD-b^+(KXNSbLy)KeJbjEd1~A$>)bKC$(r-^wB;T0)x#Sl&fta49lO}yuBU!4I?a#a z4KlaSie3XRI?bL#ntiq>6<*W_odhUT^qBy>D8RGuj~Fj1!OwCHG2O++C;Cijni{$g zzM{|mvwc7rV|;J%_mea4sv#h}m3D|fqc?^14*X|@HtBTnLe3p73LFwUSrKh`1;0#- zKZDCO`OZ9$Je~0QOy;8WuRgW#DEQ~<85R%Upl1+&_%>B_)2Bub7OjZBD_WtBzCgdc zV8;rS@7MEP-qq7~XABKl-<)D?Dt>>$3pc|TWzF^oYqMf_^$IQRG;33AeemL*qHB~i*wn_}aRDOqdY0#aj7d|6C z$l1Kh!bTmSkEJXAlEwDA;^n=2RsA6L1;5K(^(y7d z`5xi@4-iX-J*HfV*^{wSRZ0BLv&8CrmAWMkn528rMcnA6oZsQ>N076sl6KN`SCwxI z_hW%mG-eBT31OQ)1b)`t2#YBLI+d8-C$XhUT~qHJIao++pSOvZZSm##g+mfwTF!YX z=J>PFRW`bN88RgsnUal65gf#xDfvD8vUhT@ka!h&^qUpqka3YS+)L@pPS?eY9e6&~fxXiD*Q=pK~6-=TYOE@6|DRa6|+KZ=TpHG*s`Bqqf3loN}a`P5zT zUu4`7&R_*uw~*(hWd4Y)_R`;|qvyQwnsT}%js1Pb%S&IwFLE!`XR;r4p+1v+H0dW| z4gX91lt~+e7m5DxJbpTx-N~m*=&w(GK}BArthcdY{fM>tpNUyfN<0iNYxuJHs^x`$ zta?J|Jd2o$r&ya3laH8+!(Sf1aQ~rQ_>qN4hpnz z{VTCLqzzk$r+6Fj6dxg;;y&UjN*u)s{vpD{iOFHL0ZlE6jq+Xnxgz94X@2s#!1yFyL1&Ov7(*JP}oN5}ONFIHqk z6#qm^XPiy??dXi#ncv%?x!KHbvB_s6C!zOT*>jnT9%|`_z;fPN&UfA;y6HtKw;Em% zo+0N5xl8j8Q9O0#7JKdKF}@{d8HSnTh1lnWro>NQc$DNl!nbz#*H>xNAK8zO>BvQ_ z17wf8^J4Hv-w2{3%X+;Nd7`Hx>%hC;=7++EUU`o=B(|=s+qyEpa?XC^yLT4WzfJ$g z=HyB4(|CEJYB>T9G9P1j3XVcMv3?g^{rKg-3yl?jX=NlEKU5gL<*Rv`zL-P*&!zv5 zz-Jnv{q6ki2d`rKf3G&#x@Ye`(riZVJP$8Db$Q{?d*}f}q6;9;#MY5bo5a7q7~VEy z>jpBP#MUA5>N&tOZ6St)wKn-*))}(q$U`Ss!TN-S?$8!D>+7ZT4fU6bTwE&e zSW{5vs_~+G^9@}fyn=L$mo=|wtMp5B9HQrbi^=018fke?=KoJQH*3?N^u@F6H4jq9 z5qvsJkSp)dFQ*<~8Ik_YX6>~f+I)=hkvOSxzGV)5vzNX(K)>kxmDznGHdkyin>4F$ zG>bN~v;KA3^uo*OKWI~Aq2BNx$RDw3%Cpesagj&(1n<9qjv#a#V2u`)H$LKzMfHPe zocTxpw(f$JcQ4Qf63<3p`4(g?d!h2=yzzy~dz1HaJ|;$US3z_4S^O%k;WLci9@&eg z|J7W4+C+wkUO@kdUT|_I$NBd_n^)@%Df}4ZH zMuBIvvwtG%FtIUaqqi21i=Mj|dt`R9YEFaJW$uZtFx%pzY4FkghaOtI|4^|_t9$Vm z6dkGznJn}2Hi2iO7bL0N7hYdkfFI(L7jjnCAAi(;bZv6dafzF|0-Dc+UIgAjIThb8 zENCQVBC^Gr4_lbqqHD?AI0=7|^zEdVILAWAV)KmgXelR)GVr}?P6E#X=9k<#G5|l6 zF_JuTW+)7A5dBsBA~rmPeVX|BM}%*ZznpfyW__1ff?~%?Z#YJpAn{*odEW`&m9)=N z=47RaQEIK3m;MBtF9si3J9p6c4??p#Wu59M4dBa`oq$GccZe(-K=cx-(hv?RK)oR52lez0On zaTZS2MIXx~rXlsvj+XD!Pp9aMQ>m)?PyD`q9uJ&s@xZkX9=I7E==Z5j#li!LqdZgK z?c7&4QRQylu8w~4TXO#aeFslEMA=1N^)KCjP-@$sO0hp#{2!c!C;lg6Qw+a(h(48a zONi?h0?&u(S2@QU;V)#%BpEw7+gQYWl`~Fae;4|Q+TW+1eigk@r(EnUEk4RqtWj6d zpHq=XVspi?I!25zzM2Z+V$Ukg9~r{fZb-G}z&K<}G1W$}eR_=2=| z8h_rnb9W8AerBZQ3#65^H949(@2&xzK6S2Z<*ot6T?1YZ`y0@PP9II8KgX82_HQFC z_fV$noyF>m;UBweAk28{)6cE@o;@Z0cIV$`{_dTtu(9BC_k7gnZtT82I!BYf@)Ge= z98&99>(V!tOrw1w(@H*3IJ99K>)KmY)pNvS6n^gX*%UjJq$#q~9JSK;8j6t}pFKEo z@c&ZZ61%Kt#?)73Mq^J)eRJ$IUnh<5OLQ_cC7s zuGHgG*dHuo4JP}jj}cqkxj#6%ht0V)*~1RA&nowj{u_AftUl-85i>JJZICJ*zhp%$VC_V_pe8F5g8*HFZq=| z`U?2o8?P)`G|3*fpP=`Sr5lB9?^edTWFvcjHjQemCt|disiwUggDv}*TjPGibFq6w zo>;VwpN8-@@d?wRciuIZKC`l3bRYSR-R-vh6NN|RPG(|D9bKy>B^}Wcw||GVfULO{ z`{Gg{ELw*JFRvUzE5nU&*+D{}He-={Nfu|3@pcXU3Byu47_c4W8s%R1+@hJ8)? zNy?Af5HB2)G3Fx>Mn;I8Tzpe<9vC?oqCb$CP1!4b*51Xd$O7RDVrRXQv5_%V>=nxx zjq(xOW+vx!!sFIi`^6F~N!C!EjK7?_7kTwIbZN;e=2cW)`A$DY-*!@`$g4k~n<(~* zzY1;08Y*{_t6tVnY&>8?MP}U;9an2SZ<2TTUce{bNWz}_X}*a)_0z1O9Qz8Nqb%(E zZ}h>F$I@}kM_B{UvAW1E@(G_Y`5hYvN%~IuAq{$+=GO{tMX%bA{qO~R9RjS0AIst1 zocFK(-S$6Xwu z1<0>!`ip@a?m~rM1Rh;k5a3?1N9c3WBj+*>{^5i?p^LHclm5TpvFIc4*v*<>@L(LV zF{TNf80+0g7xcb*v9XL_~#bd{j{#Cx6n?hcd~`w7)(NQeGGrP7UHVQ8qTtd&5X)-k@bGYLt<|x5VJ7=oPo>{`6X){ zc^2POS?gqCBeQ%-6YzChCFkAjI^ln^2PJeYely|^yoI@40#6WLbPAa*=c%%Y{o@74 zZ1lOXTj(dXL2wtp3d^S*T_EN&EM*7K`Nc*kI!O>Zk~*z6f{)ZCWpk&DwST&rzUx62 zoT4l_-~2jdNu3h2^c3>XnfD}ZwepiT^v()v-*z$ie?tC2?BN(9ng?f!tn)R@<^5Pc z$C!VkjEC$IXTtX;$9U)~*4}Sk%;sQyXYR(HEu6&{m2~VGFO~1CRa=BsF}hj)bS8CL z-^C}DwY|Z!r0c_G*au#^Jd?hj^s<-u!F}OqtYNV)#C#!DrpwwV6no?^cA}@ivjdZ( zx`B>uRfn%d`3^J2l|7h2_N0WKO3)8lpj*)wW45_MbcIKtlMn92q@GvS z*D0$6+gKP~O=4DxFY_R@VfDAATX1io^Z__J_XK7CQe^pJJAE^Daaljh^CsXyU>Eqr zTy21pMUT3G4|n&xoAFzbv}W=vTXx-@jb>AK~xONs(jl*OGCC@5|n7-#BeJa=jW7-QY{)x9ZvAtI}6u%TQ{lNc?wOp1nfq zn-;{+Y9sz2;HxcUkBS(ja+jy*F|VPM-1IZcuY76HDT8btcZ_^~+BZ!_V~qOgLu;IqXU|^Im*Bs`f{y|x`LB3;zOsD#`>w(NhxYE}9#E~7y{GFfnev&_KLloc zBu@PS;HlVtM1SaH9t!>z&gg+M$C;bCqwj1z%|9-hzGwz}c9(JIuZB&8{yI(nti?`z zian9Fy!#b8*-XZb`LHqL`zqJEzYQDUwD(z4Y0VjXMq^%ZD*#}1RnkhjzNMU15Fh9A+^XNReh^v??|rTy#QBovpyx91kFLv;PK&Kh)-&%R z+xD|xj-L0T=t+L&uk5$}#Vd1$yM5`azksj!>9*I>M;1L!tkR!7mjBjlG zmGFDZ<{4x>MVHw}-oo$Uf91Y0Qorws*2JQ~#@DsrJ^Ceyhr?eWmL&P#TftuK$hdme z0`O+^o87+r0C&OaJHLBR$UU+3*y@S-;nnV{Cn-~6(q}!0KE1ogzGM8x$e(DZ?uzDP zyesv4qcLGaq*uhfIp+4|hhKAz=Ff=b7yqy$tE2I?cUiUyE50^LSj(L*<(mO6`EQLZ zfgXH8@Mq5kKeG>}e{7v<9@(2H_b_l52yvU47fS9dVGsDpdiL~whwc8Z$2Y#Pv+*9* zK->MuuxluD1^3tnFU1y0?ByrFO}g#YTJvZFX@5mpY^2+t{TA;RLmRBO>5Is*k$ikH zCq<-xU!_e?zoxy|zt2@AHe@Zt9OSMzWvIL-c`y4Q_ki;c!ClJO3!lxzmOF`Y5qWLh zS14t(E-N99jUQechDUn2!!wbylADop)A51PnWx3X=XN3U+{BRi^~XjIz6)Q%Z_?VQ zdKDSEjCJK6RY^Ed1M@dOVM{{0p{E^tNxP7F|m{?p)71??70} zzTRh%ZQ*~gr+Ne#_U7k)cc+Z8k#<0I&Oc!@kob=p{V4u?iuR2ChV0vv{iWzST+%)X zoezPF_ymXlJg)u}w1%&1i|DA%clfV0i?6^M>Jy*;(f07(X&aDuO=8RNGM}AyG>V^E z=&e8I7fp*SeRAK8);N6vy-w(ywdT=Kfy(<0G3LTguYBOt4rtuEXLxnNHewoEF}5{t zPFA|gJ?2q9iKmpsIjZmqS3%J@e%;yw7JdI)Zk4qTUjaXc4unU@ytq}?nKCc%cN87v zE!Jk?70i8}--2I>KW#er%A77oAM8VSFQi?cq^%>&e`^k(oM6rCFn7PN1c%_v-NKXJ zkg}jF_S7g(&dD%mhtW}Y6VKF{4|`6O7u>RHD6}snBJD0^EMxp&FJ-h>U6>z)+!G?D z=x3~xD`PhDOwI+z^4?9}%n!+XYUmp;m2GQ#vwqL--rS$j|EB)A;=|teuX!Tt{h|Z= zuatIsj|cLi{z9eD`B~^Z3%q0wSiaWUlxUn`*3G5RuWklo*Up@J=-iV7F+dT<>s8v}!g7SLqhi;(RsE^>ykh z&|02zvL9is3;l%PQA*nK)-BPtxNjM4ODQt<*vQiQWA60GC@#n@!TG7xt`}c}=LtTn z2|nXz{V;O*?h~l zSb5ZUl$ZCq|B7kt*ySl-+C77OPFb^p=U5%bDLc6D=EySM#pe3vgmZJfXtK)t9cd=U z`e&7DxkUQsmFEid^~6Kn=PDR^#Z?g6eX~85A0KUh)_VMHsb7h{_XxNl$7CKnN!woq zH$!X$6II?%e!Hi>l=Gdb?_c%ADfsa_!f&anMWT~`YWI}M?rU-Q1vWGqyf``9@y!gawRTXl7 zjIAj4o7iI!AFa&t!pKukyI;JhjW#kLRwfnJKMj4&-$ZOt=D+O@1@_u--`CzACNDd$OGrQgAqAjlHTwg>U)-NG7lPnmo8L!qxvLzukZ-zzf4W# zMd=y7z5pLyWcfEpFY|550@cF7Dqjei5WaxEwQ)T08Dw4woxt0PL7!K(pY$@vCc-c3 znPYqLwHH6$vzMahbH*bqXFTZ7&O6nnW1REM%9i!GUN3rS-)macS>(?;>JdCf#}S$c zx>F+$QMTYzBG3CKMn224%nxh+iO;e7DkTl-*IYL3VTcyONBk7XXQ ze^)*BJA8F%7~L0skZa8w;s}>Q6Ghlc#V+clucH2#Q!IbXcO3qhGA_*PO=0xgz0lXw z=*<$JE4+7A)Gn~@oLwL!G>*PBUC!~fF0FbW-8cM-oo@cx=$Uxtox~uu?rb3KJEX~? zt?0Z*1-GL2kc&4Ghm&>)j^Yy}I1b_e8Ixh$1ySAp@yOD8`m6zcIDl*#fFAye%=r#D zoW`%~JMipZBY(tigS#4r?&A5F?0<8|(Ie2Afet-@4xOEC9DW_Sw+*@1fZTfwxtIO9 zwTE+%d&Tb;A6Ta8$3;HLUI}Z0O$U%q{->_Cd_YAeiH`r@@lhS$3tqC8kiHh(;WgQ- z6uS@gN9EPzhJM;CG%0C9tc_lvjW39vhMsiJb~wed9g6QuF?fq#khS+i{W4Z7kh939 zO_E2?E<9Sonz~c`VK3kpdy+L&<%a0Jkxf5ubNBvq)OCCiUO8Lk#dL&k zTJ8U!j!?vSl|tisag=Y<_viC%`p_EVX@WnxA~YEt|4I1HLIcpu+AmWV^H$bEmVJ%2 zQ%na5kUrL5S;TP@p78_vSaH_rKKe3w_Ezl1>Nml=T)R<*XKR0I1G1|i3&{Lx0bKZRtx}B^Q3c)jr^9*Na>h*o1lS4Pc z$Lgt1&QVQN>6}|jZ}>gwI`JFe%*+E;yS1g39uIG`*7>q_k0*_#UlG?s=uqN&2rupA zSLCSZBH`bTEEWF$F?6I5wsCaKl+a}C`;48exu2noVBUpw?0WacNCW(kb;oh;@i`Eh zpoS(QdrHx}%NUE8-VHzBB=-qeK9CMNTPSokU*+8hE=})^q{rq%`Do zf#|sGD~XPK>gnt2!Qr%V)@=^Gm+~v2M=e^qt@-1FLpVw24 zQ~&*iJd6Hl%dh8nj`e-OjLP7j@$M1u5&8WSJHN#D5T5ZPJAXi)!RZH%{6)MQPi*us zasnPuF!FKe`D~&qi8K;{zCE94%bd=U4rWSS??)aVd%6!u*mnzX6xn zShA;C{YB=d^hb;r{xAOii$zXdfM4nCd5Da5#drcTaIB41@N%vJuB48|Jqgx)46k^e zJw&l1JzvntZ{KHa8!@_VF6qwhD;)Z;dD_PJlC%rY(^FqSFB~&ZnU5Q86uxWA=<+Fr z4~Cf+wQhagjo>JDzS3Jp@;cv@^KZU}@*(Cb?Xl>=whs==x6Sy0Q@7w8kbREr*fDq( z+zUAqAihaK_>0F%(@|i>tvP@^;915jO4sWn!>n~=?1ZNK4iaOG=hzr#es84ZLB=q& z`-3tlKiIR#GH06MqhrS@llIEq z&)E02Y(07coeBT6?K$vNtDU7ws>Fv~Y_zB8H|t$bZk6zF3(m;1?p(9r%q3MKYp$by zWbQ`xD5}Qp;g3CE_D1A`v?O~ieNVfq+*`OagnGVdl~;K5exW5dK3e!YC}Von>ei8i z636%J_V>HTe7~IUm+`#=9&!o4;ni;9@LT!MsP2NQ#eB#1?fasgzhq4Q*?bo~PSWS8 zq}ykwyJ<|i>7*0ii3aMCz7jiy73bwOt!f|dq_0Fr@B_;}rIab-m}#E}6`BcIGU3L^ z71SX-L-y)ow0NV`i*6?GoM{)0O$$90@lN)meuMs9OF0Gn9kR;{z4cOlr_{q7oJqQ{ z@XOd4Qebr2ygugRRKCf44D&3wOTCg7pAU3~7xN`u(7iq~LCTPMiXHHoSRL|R&W`e) zvX=&VPh3_X_D>uGVr}Tn&q|8q$(@2$*`)29K;6vs_rd!K-dFJ_`K&gJ-IFucm-3uI zozZ?kb`i%}`a6~;+P0e`1C(LOHa&ViR^U)Vbj>L166r%dDY8`h~ZyRnx?ynr)B(>axdy~yR13<3T=rkUgqdx z{-SN}$q&%)Qpd{JJLxm&fAEaumo|mLMcU-I>zK~3^o#5vi2YsqO4ik}_T~Uj;xASY za?z@1w&PvMekW-qo$zb$v*@AJ*1NV+kMvz9eJVJW@H~<9GH&x}qvVt4_*fa}8Eui_+q#KU>< zX5h2v?x(rCHZi!W-piV0FYAWsS)6Ir^fy*x(~+~jt=!#rFMgfupW|DupI*tn+I{pv zh`2e$oO_o0ue_`q61jhZwdxy1E!fMkiTXId7IgWJuVRl%{6==r_n&b4j?3PT#N8|1 zrpf+?Z|cbEC-zYGXDKt_NFOxHrlyQo`E|($aC#(MYsN8p+)DYyp^QXA)+|PaI zk2>x<-^^LfAbMWTe-uU%u~*A^bFo367?(l+r#BF5rMgMl<(fj@M8_;f7sctS#ha|E zaviiWp7b%=kg=CBE}?yi$x{y`&r~m-=G_48J4V}P(zXMP`7TWz_?tF`^FPsVuh6#D zwC&rp?JnB(UE0<~+mbZnzz(-@;P15S?tQB24bIT1_`Tn8jeD-Kk9NIEyB5xf-Z?Ah zVx?VQq+NH>uDzU%kapoCSHJBUt^OKw85;SZhB<8?U2{jqFuRpB%BCyJdIVNe}x8YaoXy0beOvc*x zAnp6A)xNZbZ_>U8#}y9U3@<6=SA1AY$El%vX>%FpoU%3jKn}jJYw?9`*tRW_jW6si z4`fH+nN_8eMRyke(2qXPK>W}1_{Dzq?4A7LF>r{{#9DZZ@C!dQF_vH4N_(V#MCMDM zT~D8NafUk9XF~7JKKr88XUPYC?MgoI8~W_G(E1trtdBl>l|E~SCZ2;POq(X;taGg2 zj(%CePl4;4FRqHrdt`IuS2iw> zxe^bo)7V1*pSzNi4^%*(kMr#}(8}Z6c19|A-<50}kUfP=WY~AW<-1za@mJyst$Ux> zeX%g|S9p({^DKMHl9xl%)-dnIeutj&5BjF`<-&RvmQ{PuSHR`?w3Wyt=BbfutZ#>DbUMR6(ksXR-e^GwPrM5noqlSJ!S@b4RmYgF-ml!>JwhenE`sb!>Xj{&n>G5hw7W+R*(30p} zGNuREciZvBmHEa$Msj5hkc27Qv&WM@pl_9 zZNI=-vn)M|QzG?lrmb?;OyjIswuhK`f-ilN4L;cyI&b!`-~{e5oa9`Zv~Bj-wsHO% z-@x>2bokfNhhL!FEO0G_?u3`>;KqJ(OEGox`Pd%F%Q$P2* z21s`;q)-%t-S{`BAI zn}%EFMdsxe*8hrc*Dq1^*MVyT@Z6HZg6pJRN;_Ss`47#(CsJ_+`P<0~dhu_R{Wcj- zo%$0k-0*2kDSTISO#DPFdXX3>vPWEWOKC*jT}!=5q&>oWp}{2lV`ZEkbE_6<(`k>& z6&jt5|LiiJy_CP1zjd^K2k)YY} zfq#)jcf=PV|2l9;@=_P?gyy&Lyp}W3vG&MZk~t>rYT(?a6Bo(D9{SKa$wwXQXcuK! zzk=ft@E8D((p%<4&KqPym-fZ#+?GiDDeqTjN1A116ZLIt| zv;wV$kw;RW^tq&q^^M?C#-9CoxPY^lI{qbGz&VDC$PS@@i!V^Fv@KR=8L*dfb7+h7 z+rPvgz~S6n{D^WX^Z&|s9K5_qc=_F5`oHt?8TbrI-;S(~^g#{|xC zOynGgk8>Pxoa2c4=ae92q*wT;EQ zzje>+*Axy-%=RA67_VAB&v=0|b}oDgut&?By*T!~L4D>V&)D-{YE4!x50O^(3~mO# zA6SW9zk8PWfm`u8|AcKJ-Ht;laXKYt+o>d3<45C99v&xWyNS~Yzmu43os@0GFrOHW z)A^nqr<47z(U_P$lqr7o5*PEmr_aUdlrm3Iuk0O)E-A4u;l0&aYre2i_XO`DR%hz~ zd1XKB81KcWU(T3VIHgB%%41LZr+oV}aq$GNFnmqw8pUm|r+#Fb_|>SY_w0C`f?GPe zqU9Gv`C-9prl-D-bm587a!>7x;+0N39=S(?buT(lI(wQDCoi?(N}flEi+7T8MW@*# z+s4;2zs&))|keuC)o8y%E~o2n}z5me+H}8h@_U zan@OkYU+~y#s8Z2sUeFV*h5(K1NMexKOr-v>S5B9oU-;}nqm3i6%J)_H?nI4)| zC3wAB!F=Oa#XXCH`p@8UMO&<*zxJ39Qj6n>wHV% zo9t0o`FR&cM@@`9lP4f?A$f1%kx)1^#eqj~pZ4Ozv{m}K6&(KO3!M3K%Q+s6K0kM! z_bhxuVmxMjsvSNWo8ONdvidJPt7->jD$XkieTTT)%kndw7rhrGb}z|v=Im?G9`OpQ zN7Jy*USa#9N=)@tVw;19l-WFFF?Tyom9iP%zw=8Q>#gyvzNBj4`+_(3Snz&2?H!wM zoShGS_*}j-v#L@_EBT}k*)v?&$NZ13eOJ@wRnQsd_ubKRK4Z&-xGY?{oMo=RwCV+L zQM501Uf5a2$n%P`(VX#ni2j6DF4T`FSNJ!UP-Z)07sVyIP9d*FU)73(e>v~*ZvYaRBa|bxT z`>Yj5@?U9NtX7-LCD!qLV_FAyrUJJI{Yr)R;KIkat-yQIy4*2s9_%R3kxC8#O1OBQ5KIDME;eelVz|T0~ z1_%6I2mAvE{38ea69@cr2mG7^{)Genl>`2b1AfT?zwChjw;k}i4)`Aq*tPN;oy0rfL{G zc$ovf(gCk>z*jrqwGQ}t2fWb%-{gQl;ebEwfNyoccR1i}4tS>nzQ+OI=YSt{!2j-m zA9cW=cfgN1;Kv>CmmTm|9q=Is{0#^ElmmXo0XI0{?>gWgIN%>S;Ga0)pF7~^9Plq3 z@UI;3ZyfMT4)|pU{3i$e7YF>R1O6We{JI1Fn*)B+0lyuEKLfv7_}uuaGuIrexA@Yh zqx27)!MxB82F40Hv=!mATH_UOxrFS{x0yhZCK8< zb=q(USm)53r2i)HY#SDz*vD;H{Ij01;acEd+VIzaPuTERfr&M3mGcC!52K`%SqVJH zhQ*Js*oGeizRiXuUesP2E(bnr!;b)e--iDk_&;saWUz8`qlhVKPV^+xNJcu_NL zco*;j8{PqYg$(rP8%)(#=q1`^KZb!M6%#d0DsAbKMq`L!z@Cd41AfGYX8~8*@O0oKHheMg4{Ue}@Uu3Y0sMO# zP6dA5h9>|=Y& z{}K3?HvBU1>o)v5;2|6C24-*8D*xBOlWh1`z?a(aFM$`^a0l=z8zz=v`UV^RIdF*$ z{}lKh8*T-D)P`Gtt8JM3ywksB!`}n`sSP&*ciC_~@Skn?8DMN17M@Q757}@Km^c#F z`>zA1+wdXaOKtcd@DdxY23}*sRlqmd@Z-RD*zf`1&)P8S-}KMh@P7awwBbjAi5<%D zYZs|AFy1qoSsSOiT}B5hS@(h-kLq`0_>q64$?J3(Awn9u{aRDH3dfgrrK>=a&J9p~ z<8|Q3c)c}U4W}BxbXAdV)}^c3^in(T#TA;_N=RJIsEb#AmmZ8)A(v6k8&?P}Y?W`S zFpNFyGP>Pr(1l@ZkUXSV99ElwKMm|zBh6N~_{u@WTfaDrqi*ZcVz_UaL@cE$@SMH?!(9R8Sg zZNOy)4Qi|er;tbQG*pu(giz^CFxxnv?=^-E)$29OlT}TU(Ql}_q(KU(N!DAFwP5lB zwxg2uzGSU8`CQ5Lp-JOe2DeSFIjnI8B8;1~DYNPk5w*!s-!RMqM;27Ia` zUGGWPy3$9H00(`RzFy72Sq=D*)~@-&DGaLFmZCb`o#d~GH=0vaO}vc!K!RSAq6QN} zz_ngIkfQ3m0pP|&z0c%^cBXWBk})t|ok-HVP1T(PH!?*?YLYz zWSl`1wBUFtv2nbV)jD2E=@>6ryT?nW6XPX$|9GzVl5wc@Xis?TF7pj6RCO*huuu)V ze8UUXfZOa}pm4bETBt&CW;1W%&B_I;GQm7EUj-A)f%)o0!qnP@s#ez{3skRe^vzQt zuiiaRwRv?87zGli_AO9n67~N1Dv}6>jY($f0u?rV6$?RMuUMeklFh;Ssw)}OpQ;=0 z>s+LI#v8*6RE=o>51M9Zfoe|CyXLEKirGA0HBB&@=cxgo(KKHL()8MSsxnRJG?=be zQ#ql2)roYI!ysoeGMeV8@Fab3t~xV`*L9Q4#(An@im!jJYMNp;&sFVH%-XrCdy1$; z)ff4O=c9)(?3@= zXPV(TY9LeZpQ9?Ln|*Us&vg9+@C=>gp&4d3b<8k&=P3V7U+Y{|Gt=zh{YnyW*j_R9bH1XyVUn5^HF+;q+#H^d6IxneZtokoAE9j5QXh|Thoqu#hk)n@ae zJKOA8sQR)iXvaW~*)~u0%r;wT{A@`wI9qR8p!{?62(6!^pP8p>=IC_{&fGJe{zaO9 zksey41r}YURM#St7bg}uX*sdPWG3Bhk&Dpt)Iy!xCju_L->tgb0{6NF?sMl0JeuvMw;Ir7a68<3k6Y_<)2Tc~|5@n^jj*NyngJ_0q3OVbnqKYFn8KAV z4JP4CKcaa}&mQFyt1ACS4&Sc*+aA5ot9mpY1>}VGF#LnL?^SIcBjSZw>1Vt!E4|07 zy5ib2K2#*=y&Tm@Xs3uC-E8x!e%+{p^?9X)pcniq5;L0b)$#vOdNXdm}$g|#}}?h7ZV4*DTMb-5Uqa`#q_MTFh3q&kn$m_Q4JaR=kgYT$Td zI9~O~OX@T6Ite53A^EE77_vk9`SpL0zdCp>;w9kPW8rzBbZIy1Cos)xW}k+<(Ltd} z2Fyx-k*cN6TEv%Ii06z;^=by?^=o7qO(P6XNX12dqs^r{HKWE@;eMKvh$=l=c1?M7EN{3+x34=`AzC=&uT-Bf0#Y&|qB?ERd zoRU!obD1Eh^-lDhful@hPeHY%FYleJMbaxFv%pjj%%oy!D=}RwTpU7|IWyY> zAF7<=fhX0>@%ZOz!8x8m*u@+VEU0k~He(f;>+#Q1^E7Fb{G(rp3XD=-?e&!# zu;_?zf9w6!e6!!BN{w!pbbgmhA+D@06*80lyhurhZgw8YwdiAbE zks0Mls?V!8CZaWD)F!IRL{AMzDHDajDI;~O0p;uwwW3zb7?jNwi+to;j=EW?n~h$0 zl|iKsQ);_rz`FW0qsOHxTt>S~lno2%k;9WTbBfv+n|~tjHbBd9VyyC9Q;gGcs-3Ns?y8+R$WP+x)jx&#Eq3Ikm6}h z(JE6sA(W>SPcTK*rqC1pDV~88btc6Vn4k@&WW>Y;G=auPbZnSM+jxDI%s5;%g-t}tOZFFux?wDuRtLnI^-5XR--2J^9kZ>kn2T`VP zK*E{rH$XSOruC}BYqZ`#Geu4APBQ8!(=dVr_DG%uJdo^byIysSo5h>qalVS{Rpof0 zmP*stxIwj>Mm1%c2Jk?N*?+yNo1hP0r+Oxs{ntSvX7BZ?A|tbPz3QE0c3-djll89a zRbaBwe!Z%mjP&WAd{tyUdY7;H1{IvDpSWIyrlP={m}*wspa!O%kgmJf*9SJ!e3i5( zQy;!w)neYIC-|6S09Vg3de^CrIR;HSfd;isRn9eo>r~@hy@ps@b15J^*X#$4xr}7* zJYV;9Dlp#&tW!<%4dC(xdigrly1?|WQ=JR0g&8mOg|Af|3ys0GYG9!O99alUQWcAR zjn}HS#YT9o8eVJw_vD(LYgK>lR5Z^edd*rDUgB$CrviCK^*VNleW7(KloyoFTdH#~ z=fqO8k|LLyfwihJUq4fn=|!EJ>(P^=;=%y6+9E;O2`cV%v4vFcdm3l*#0Rldq%HL%Kz6sh4=EJRh;)n@73t+SsLmq2l3_2>{nx9$B1t$t$ z^%Lv0{`LCcdTn^U9@?NaZP0l?yg{$nsFiO-g{|Z8R>yQYGb+r zy7zSQe_Sr`K)l|;|K3dGc`zvhZb_b%{3Ol zACh(S)|%u!kncFXcAQpyp57|;(`VSO=$!T>I%fw{+NJj-!Ba~Sb#7xIN!7)h-ASq| zJ_EQs!3gs)A)_rxwd?W*LqfHIA)%0onrPPXI?<>|5)nu#{v;_jkVJ3!4ZYHE2Mk7i zuZoSh#mf!F1e&TZSF`3sc{`jR<`Y*Jk5c3}5FPxZZ^x#~@Vm_RI92Hypg8y~!YJVB z114>Tf~_r=#Y>TaMzX_b*VO$r(QmB3VY00*quGNtUI8rS3!ThisI-TT0S`2k+2euV z*JwPny9&Wy^i{3XZSunJ@q|5EIg1L9*5uK7(<_oiJLA!t;twP!~NlWo-h4Ak)+MGI|A>j%lM>n`MdV!SSj?>%;zD=WX)zj~9!D7(T`e+&7+n2G4mUf&MgKPaGmq?~lV| z0ng}l8MSf9#Tr@zZoDp!lM1Xn>0!;&iVEN|8r`bKZMLJt%5qi8OUp1(hATA_ZN0)} zqS@Ap)yVp0q8_3^X*#_Y)R-oue@5G5)@HCcF)_=b|DhUnx<1vFf%vC&V%q5-GH60R zZ(0)!Omsor13avIDu|BaMXglbiJoqBG(+Au8FVaKn84K&jhYNq;nSOdeN=bCXZXqL z6OF7oRY$R_O>L!so;0&FLxs~M;b58v9c?(xgT=5s-Gdz~kPb0gxZ(#D0w)x9)SD*P zwR8|Asz`!So~X)oW01A8E^pA{2T-QGlDvm0OIB9Br1u5|E$Ksjj=ojpf)22u zvXsg)MxQTJ4=eSs-s*u#89|Sz@3kJLo?gQm&Sg}?+gw7jlGkLF50CZeaJ&xBdh1#f;InJZW}$kHLBF&@g& z2jW$ui;}U3)y7kl-WHEZl(E5<2nDvqNs7)mdEFf+Gf41CL4vT>!LEwGm?l$B-iwS` zU@%42m-cC@O%rX0B}Tc6B?j|2n#xY+TMy^n;elGJwS2%n%`>c_yE@ZJ`|HS6r)7kt zylDGZD49Tg3Hk{iL)0eUy`D}VYrY=f;Y3f^2eWKsE!gPu^!rqk>~XdF^bVhD_brd& zpSnP&;G1;@%un}gOw&2hHi+Cgfy_RERoI7IW0=JFSLsuAdNbwsdi4q)0}j2(Kl)+@ zj0X7Nzf{Tr|t5jF6*|%Dq$<3%)tvZ(Y`d6!9p5D&;rAF;)e5^K=U!{V} z^$=f|d+Jte9aorVu2#KQOl@9+0;M;tQFT{NsN3I9?K#N6R=| zpv_xg^u`IR>5EfAmk+qdb#piWdwgASYQUp2)%)Z0x_DNo6z*&%c0tGamu9zzz26F$FK^=YfEOeYL-LRGGnQu% z!K8y}sAGciFa?_8WTT}&!Sw4a@2D|aXRes7kl$@$&C;9PlrF+h%1D`GVgg~UdcsBR zXeoA{i^{Q$u=V3I%c(TZ)6GVYt_Quysk>uove7Gg;C(P`luB zrqRw)-K@0nJ-iY{LRe`9!-|B#_Wd6!#O_ z)ZjP~M|H`PrFNWZL+wtM6**dP(6RxCM5La;+A6xVSx52&UjP+Z*DFZE1`(lQ^fLxF z9fSNei9WWt*eMAc?35HzQIgSTs18{h1P!qxHyV<$)yNnyP`oAG38Np3=&K?%0ACw0 zJ)93dlVWsSgpm6d)W{a5E0#@tL}KSPNy?6*g1@iR8%-p_H=YGmJw_KV5ZYxCheMmVs^qMFZx9U zM{!t>REC$hd;?(SGQ)AGUnc4v3LulW-({klqU-_>yFE-{zlRypaZ!~KjSlBS8N;kbRCst3YDpIOw z7P=){9}GtutC-j~lW9r&JsE=@tY8e=$l+}5BGa=~E%20Rxx6UH5~pbu*xfZZdiMw9 z%ZQe#3Y999&EP$l+p+TQ>4mAebaeQztAnZ-v(z~TlY6}n2~^A0wV?8F6oHZD_j31-bQc+s4}0+!_u*IX_()ZPNN zC%Yx(cq3RK8^MIg?lwK;m#Z)~umZLu&Dwm`mtvIXtJVp6guD~XngSJ^s1GkyJrfPC zeGRis)z3qkPF%}yT1opd)svxj$b zI%#~(rMXQ7YVcB>gu|C2wpuSULV2ntTkl({y0XpACF(@>)cz$Zl5I9E!Qf>EmZ;hs zqbpbS=9rziDx5R5XNfAGZFJ1TVomZ<8v8T4NJJfl5VRnIqv7puDYM*m_p zJl_nltXp7Il74|Ojp2p5|8f;rH1*6f6)|}rwOFsAnS5QM`WDxqLq_uT$^y5)KnS2?nLfD89k^VtzT6$TTrXel z_Aj4xJ|#gTD{RB5E~XV%8~F&1!i%C<=wr1|$ zvt`ficip~oPv-6Sm+juOJM)fR_t230C~DU|>dxEu>?ynJ_FZ>u-4boYC3ACjdoP)r zx0V0$=PkU$dkOy~sy(~*Y}t{Sb=U4}wdKA$GqdgmxNXC#Y5QlQ^Inl0w|%MC z7Z&*=BNPwih@m-Gvz3g?78MuryM4T^Yi({rL*4oUg}S#@*W3_=&(PX^h5-TCPmlni z$R*Ncr&@vJ^nj;J^K^Oq=%P$3oP<9M3p=z>TQJbYy({%_c(IjGFd7L(BajCPp2yXA z{vEzZo8Sk*$SJ5BfjrsN`fw8`a_V@wMm%QF@72Q)n>(Pj2aO2THnnA6K(dpc>qjGB zW@rRQ+aX1&Vd9cm%YgRKPV(~m0=jIGUfvsWjXtbW>j`_&*V?Ij5IHLPzsQTF_LA}s z1S7~hO4S!YziEvz!s~!M!%_5bv#Uc*v5K$}A~jS=HAyc_dazt$p@u&iD=f@4c$F@5 z`+Z(FSK1oO2enWz=-2Xcjl9t;pEN7?m^_*-)`~iFL%eZt700_U{h@xBXBDB$m=j8B zcjeRwM6IC}=pMg2tb47gV+t&Z40;f$CsGr{UxC&N(a@Wnm6L|xY{?h~SjyAT1<)Ks zZUs;B5@TqAq29W`TT+#6Ms6pThi;Yoh*D$tBJcSx_){eEA_(9IY!wVgqe zb)gw}gAt4d7Rv5$IM~sKL8dYg4CuKA5_^5EVRs1KltvisY8G|}Nbyu=*VbnFH7ehl86+25x$Br9cHo@KO@#-yX zQ8QbFzX7%=%oau1q9_dUMT^*?Y}Qy)KZi}Loi%MeZ1p zj0uvD4j)tj=^_*c8V_nOQh^tA$3T?gx&vJu?k*-YzD&cLJuwNQ5kvR4$PUSMa)pMW zJV>Llby(?ehXae5G^eN=gA2+TU74q(aas=Gqz{EH!GvhY!?Y!2{TFBJ*`DQJ6wdO93VQk`M5k+KmubEs9#4VD6hpk>nJHl=Cn$Z`e4U_$WPPFjNZ2X1o0u3m~U)%v>U*U}7#t zka!gcImzwt%an#Zz1jjZ+#gZD0#?TgK!@7DKF1aV5p=)2Ga;t*I{8hAk{=XC}gOy^Jhu zmRsV>&Bbd;ONN?r5Z~QVh-I7%9UT7Fx@-!XA5{rg3`p=os1{P=~|8iXFxH?`ZW!97}x>!unNFv`4QiF-?W3v0$FNyQp`d8`6{{ z;=|m{Au~)&kraVefrqeU=lKr#GLZXXg~sHl3fRLRIOhbA#xfdp$5!yN^-xDlHVoE|sS3r2Q7 zEDkL%uUt!*x0)o(9!Nycc6jeaW1B`g0F8_)w4P6xWX47`6bgn(t>lS15v7UMNTmku zVgqix%bzSZGC29L3Nd%IVUa^tPkf3^^BP_QZEjL+rrfc*AmjzzX3iEtBWBdf=}un4 zTpqQz0GdQ9c4}_a4BUPrh>inJL_k8R%egL* z8lL4E<+)guU{}Jnafe~`g>~k~asfIs?~E*uH+c-&<#4d_+^{$BR+-0qm{3N@`U$f< z(J*v)(lj%|0(u9{wOHPY6^P7T6<)}20iZ?#U__gFg~476wqVrE5o|-R!32iAUyd0I zLyv^bj}cK6%OC8}y#+MT!uW!cG!pB!X5MtZxR6sQXlVIy2Hl98Ek+kc!FG+$FQqAjWiZyJ`$MQ|zHUOW8SRWgy&%Y2-cr7# zd}+DAJP;{g)=@sKJZ=paE}_8;Mj0|=g-hcI7g-?Mj>35=z>-(%3P#cNFq9%%(PUPL zxuBUcF)}7!Ns;|pkpt1Gu^ZHqXi0)C)%B3sis&7-G7Dgy?v8leo;E$E5xiLVY1L3Z zzMey(EJ!9#UXxD|oi$@#14#&wXb*|W4Yv?F^kz*&2s3Uih`+p>V!BNh07i7a3Scm@ zLeSRy=3r-FZ9%AUs%=@vTB~mv+KIGWWCx2Ul^yQO6B=#7jyTg~oXFWF_$G}28Pf7u zE0cx{;b?lgXK5@bIXMPti*3V%4I*_3N0#}PV@XDooX=Rza$FVF!(EIsC5kXcBoi}Z zHyQ*cT4rP}D2b3M3x3ffxQ>TD1E(0CWihI!%pd`WyjTN_wuiKf8|KaBqqPs_9L?}C zcXq>s<_5bF@gi6BCO#@c!NuO7LusyB=%YRvK+mOQkXShCp+!RKfxH>=>N7c)EQrCG zL`fVbRI@;Nv+!bm+_!0)5Y3L%EjO8I5u;oi#hWR{8WAei#%NN7RS*Lc99X`!HSDq}wX>?3 zhKB?b8?M~47g6sL?GGejK8nGKl&GDp(AWw%k(NBD(il2vOf!gf2pSM`JFV(|sV+HT z3SJz_K+{-TCxb;oMUC6|9l}a?Wb5LL3iT*v<*V6#u9MfHZNAsat)>xmuLkg z70!{)3VWGWP%*K%cw~irtk#q_vAAetzOyOMInrKStQCx_DA1Y~Ip8K}jsj0{NsjI* zaM;Ib1Gg#}?&y z=mp_**-ev6N^_bes(G6|Af7$h>CA!9c&y3AWjP+lIIT3hY;tL~<|)gmvqSdI0!Nva z?F1=DiRN$>mueSJ$gz{Z(=#EbnQ8@mPIeYkgr?Hmf)f1ask6adj>oA{HpO5Ulu#K+ z=oz0==gcnffSZyW43R`4+c_C*I;T6c$4*Ar#bd#;R z*e+9X!(Agg5J0 zD}dD!B*lXnIhGXhqWcY<(zIyPvD5)J`NC+IQ1DVeQT=HP-vi@4=Vo-MQ&-8DK+3l=sE48FK2OzXu&aH%9n#wm6dh)wKT z`urw!(yFHr&IrFL^UR~^2a?`q%3Wi-- zv_OQD#g<2P#Z5OFCNVlAWkhS7H?LOXS;L-+HuGUrCZik^lgVJ7Qqy3FVet#y5$!yP zmF8ur4cVA0v=&%Hm^AVpDCTJ)H(%QX3)Cwp8_K^!qxC6Gb9;GnlU>m;8Sk)gV1~o8 z;JdO^Mls68#$I!9lncjXpTtH`ZmiJCu^d3nfztHn<0E#CXsjn;d4mon$ip@dg>=48 z?_gvL7f#~)B(S>LU>Ty8a~;kW7(HH80-x4tV`zrg9Q7>4Ne1v6uM{qQ>hHp0l?_1j zc5sAcda{f8Ub-;`lR+vZ?KUBWoMee4CelGhs>hA0Mq4vm4Y4nluBZbhOv=no@5K@V z)>EYdMIG@;DYdRV^kX`dKo%}nfsz1baw22VL?wYLC=D#Vp`G#B6!kdXIt{}f+k@aG z28-CdpcPzNOv4VX&rL0N`n-7rrcSA6Lf@LLtehn(W*COhi197yt1)~OP=uAzTebs| zsW{va)?2V@5x`o2+>}UG>!vBJ_0{iCJc(Mlm6w_?op2*u7PQ?RUP=;|QxkLYg$a-_ z=D=@Zm?!0v7K~ky_<#X`?EVm=L_`V!QA0jvUGHj*?55w~)h`sEB`0)i(P@Z;nM zA490eK|5mFWa@L|CK|RJ(-s$SEk+Tsjs=Ab?T*R(r8E#ifynK3JMQ5^UJ^mu+}w>| zAKcu}MoDS2#6C}q(|jbw4nbidEu26Qby5b^T%-Yk_yVT&0r7hN%7QH7cawK%zg!^Z?OD(S9eSUD1Bp!mreOj&886@3nh z3G0OMy)Y6n)VA0krNU5e;@c9w2*Z>owm-#qR}4o(WJH1rT56a<;l%oum{KKpVQ&KV z3DyS0e2^23nM!h>5nX$kFBmn%(x}0V2(&(|McP%xe>b{X>tfbG7D5e<=$Ko{=Jqi& zJ0;2_vvaWNFlLOlX`;_#@W3e6ZY=ZgQ&lcx*y8KN9=T{9Vw;dJVbWL;>)ROVu!LJf znvLh zY$Q%>CO?`)aq^j-?&1=(LRj})C8Fu$$S8lz@LO?o`TjKeH%vl-iNE)y%`JAiX4KA` zI;Ga-n(Hbqo=_d`s*eU_GsPQD8Pu@ik|Yo0FiPVcnVJayFbdhQ;_>ym+h6T7md>I@ zy%wz6Bc%l|nvULwco+tVQJi39IF!t6a72TBK77pQvp>K5^UptTd5f*P(zos#>)t3X znksfzY68nx3H=#h&&o(sk>e~mxK!(*S{Q90I-YtY#o-TrD~Ugv0NrB+q~qB1bPp2{ z8@T+zMOos}1nB-&)|sp`YbxBw@afD-hogVLVNbIGN-(RqbdFpuBACTmq?vw}45$;ZyLcS7hDoP32AArA zI!p@Kg!n5PWb5ZFw#KNVqsV3kCx_h#g6rL7NX`hWYc>ML_l01B0o$}l#KorU-E1gh7ggpAEYt9w{U{I{0f!?v(6yOy~y z7~QBO{>xG3DITRmIY$|Xu!YRamf@4jMQQDz@(4!g7ug%^0AuMN0&iy%aev7~h5mH_ z{{_oX@bj1o{d=1&R2G85c`TO|v%BwRS6{o@GS*I*OB0tlm_x%Ha!#e?;M!p8r8M0j z`^B_jMvWX3HNs=)TN6F7OcPTm`zZS;ZCWtY73PQNoJB>&+KgbZ71Nqo0gpqQf*tC5 z3No~MouBE#`87&Y>%&QSS_Q(1HmtqT)M^S2LjcH-0_`&S`GwO_q~%kDY#Ee2x&jpV zK>&GH1al)XN#_f+dZ!25y0E5c2>~;7Hx^dJfh3|LiGU4l0i7iPiC}XCrN`vQgOZpN zO&L#fM>xYY-E50QLgiz|baZq$+?-iQFx)!EFN$J}!QtSVxeYaiV3;SlG=TYT!W&j0CVAX(@NZ98g6`?Dj~wi&k{7DJ;UNy*MQESbHN> zV2P28AYXRn=N+-O#G5WGUeM>W;Ut1narj_nV`E(dk4@`&C#KoJX~ttE}E&W_Q<9k1eC7@$~1BpaGl7tQ=>d>^QSQ?>Ttmp9+5gdajx))M`E;Px35YGVT>^iWD z3dO-!FQHFxJc_}GSnVbC=x-wwBu>;MnZIil*EFwSZ5{a&_Q)Bd0F$bkkl7gidsVT^Fat- zMYMr2mQU0=*hHPpCzWE+zoVEIzq|)9cbFVNPga;K;CG+ABnv|amcq4>-_;*S*8s} zR6qhQWnQT*q}|lmay+8IgZsqv69vZz;>2!*i_#dqu)MH%v8Ii}qB;(|<1i&wYN?$- z=g`1G$>dK29M#>WsCyJ;x9#g1S@}b8h#%sqyEFp7f zFN&Q&j!>~te*&r$$QM-;WJiAHbE;g46J)o-ni-`%aT!diGRHg&1F*!<;$tE+WBfDu zeua$V3$%T+mP!q(8VV<0_ABBTtNZN%o0+!)%hBBFkfT z^krgUi@V+D$M@+5G<^jxGxw%17RzxexlC^tz8FPt5TaZw)jKQfEA4H?i9|a1w~X|m zYPj9)??a}zv?y12lFlr|eq$>r(Z|MmIGK78r|tY#Xgi7aN_!-dn8+;E<$CjMUu34+ zv$O!F08UTSk#>$GIXR30eYd(QwIwMDrc3P11_u{1KtPJbHc0uvd>xP-#ki zQi2wsG&HN?1kn*_M-0-ln(7I?1rH8PN4O$iw;tK(BX~a!ZZi@R;#J&;%uF`NGFlA z=u!WKl#?VZGPQ_UdL{_BZz+=mD-}7}aQFt!7r-$z(d(t+=G%8JI>DbWd$uT~r`=0> z0b16O2d*&tz~M$52+u2Q!BmZhv=A1di5oxWjTb>gn0_=91`%w-%Q>;5jt*w!gEkgz z_$L9CiGj1~YPdg60QK?j)5@s^%mfK<2wzychfFV94Y{V<2)D+dm9Ss^)wsZ(K;dxP|8B2I()Tcj_sL8s)f z3PQdPI%l@9Xt7oag)ks#AJwD>zss$TwG2jKhdEFy~T`6DkZsD@*J?K@5Q%@ z;xtNrNs%+&Er>uo4&5Js^5xaalPXk~lW73q^-BjYeGsc`8Zic9G$l~9MF(ODlUB}c>e!SuS?XUGjhz?-B(x48x2s&@QA_n$UX4fF?l4pmlJR%PlyEDzf$I3jucQuIE5&!Bbc9x{)?thi2_3kJ z%7vsnMSfmkA+0-7hbauK{}&^ zQ^Dd3OD)%Y8|@u^@(i(>5}{Qoo~b(_(>y==ub+b9$@4}#O3ZtvOi3BjAsB*YmI;{~ zr^q}IER@Ta$V1#iRhh@XZFAvsE%3w}o+xUyI6O`29t&vkg-?Ep6ulA4gbo_}Pa;^} zBg}JViN)jrNjcR)mr`MP2o=qZ1K0mr$!It;YfpUsDu%oh=EKh>iEw^i^k2&>S)nH8 ziv|l6+_xH)P>G4coF%ldsl`xOez5;!g_I*$eCazsaYftF2s@D9`7_7YIV(UGoVn2M zh$oSK3JZAVVQ_O_!PkyeURp+_by-^buj9u9xdO!M80j3Z8=q?jToIlTttio|lif~5 z10t)O1L{pQaPSQR-YpFWz1z)(F8ZqBFmXF^OO{ET)%<)juz-@nV6u$N2|Eo~F*ExC z#@_7g_{bUehe1z!3=Z7gVtUGbUcl4+EmN8-b#95IUvjS@M-B|8wFq|K!)He+1SwfF=e3>nD9gV}mlbI=|3 z^3z>(2Vt z+cX|L0j|L%j7@;saXM?jxi(fc8@I0l;U7Y-4;k0Cf{*3 z1b5w^f%ID$s|Kuk1bhLOJ_=a@h8{yY!0un5T!TROO|UW8#0PB|FmkAKRbfv-uBmVJgkuUH= z*DI_M^m=bpSP1aIO}Kj=@c6fIYd-3C6|Ubc%7h#r1f=%yBL#O=ga0ikAK;On;0GuG z+n!L^PPB`e&nxUOVCjD&-}7v2@Gnpte$s{)*f3-(t57QK#N6ay@KLt(oJzKL{z ztAB%Z!@$QMAP2zikB|@GYv?6w0e9k5<#xd1qgCcTA9A<|KY$0gxeym^1FkJr*%81M zV^vl<0_85p&yxWjt-z1W0KQhKvL3)~Q&rXrczn9bjuD)xvLP3sU0$rR0>Cx%aMdl~ zmia1vkrM4}F@E|EaA>p2254y4y2|naH?^p&3~>JvmCXm-YN+fe;N}}tRy7h3_v9`D zT)iHA1Ma&6zmEpU?g4+<=r<4G$EN`OkErZ8;L*px$0!@~KCZGNz=MFbfb1!h7qA*X zpU@3BkU4RFkQ`sTF0Y6t+S`Os4LD@8>^h{%!+orL!bu}z=a}BfM_J1WbgJrIo!IX(JS^w3wEOTQm zQ*-99j7@V{hE~TidM;sEdoE?^M=xXP+vc8rfB zb{cwQ=e4Z=mK#{Vf}2>stZ%Z6f0w22UB~)GZf9xQ9Zc=HgQacQz|z*-$|xyM*~?Psjt@z0sE?l>FRbDX7>{+%f+{!aQDdLvU& znzGQZ1}V1TgB4c#H6?TA*KlVu;K8pcw!K5~vlSzh%mEiDX^SpUGP^HO)M`yhKc0=g zGDcyGoQl$2qGYWuQTiV&h29viC_~E>`-TblF^fqGehf+Vz3ojpqWfbT2HmhUTB zy8w$GPzLRJP_gy=5NWn3YVSjeZOy|?i8H*lMGDD9c{Bb3nJ)tOTp8%~L zDAx{Liv2X)GfKaW&nmV9J5lDB6m|7pC3E9mMJf9w%JoY{IsPj}-O#Hj$9k2ltY0hr z_w7?y*6;D#Cx;X^;INW8^e}YYnQHomv(yZB4*JVb{E+2vHU0Pnsx2~7&D=av&8Quv zrWfR@{RUj9vPOrR-dLoj9feLgI1c@)3Kwrzt4dZ4bjmDT?_aC-n>j~Scg<0i<8#mt z>r`85y_ykOpxV}5p{iL6Ri-UbZLD2o!$YclKv?a+HlixtsA^}OD%-n4%{;I|O<#A7 zsuX<#dgMCQHh-0xG5luLe(Ywo|KT;NZOE;lyFq1x?^gTQ-m9kVfSZVeXh(ZgW#av6 z*8Ka`^o`$F`;|VRD*gx5v;hyQ>197u`+0u^y|_nJ_Uuu!_5pUjsAjEx5kGm?t13Ht zRrT<%Rb|U7YUa*YRE52&W_9jUGuP}>mA(65NBobf*1fGN$KF;m3*J$c-gnfj3m`hO zE1&`!2Mc?I(ErarG_Ii+F_eivy_Y~C%69@ouN8QHt%z43VLry^#B@VCM7$%{324&$ ztE9K5JDKjD>jhpU>6!6+>$rcniSLy7Ov#7o-z5Cm+HWS)-6`W8!q*GLUq0+Ag4M9c z68Sw#@D?lf)V~HG+y_HDMd6M)+GCkXs9Djt2zuqDE|DJ?* zOKAFUkodh43Z`I7O1fl!CGycD>6-NrE=!hAw*@!p-D&ZENaC9%d_+Q1{-Z>Fcbn;% zlpEPgTuw3|>suoK&SNU~Um;=7rvj((nc^S&M8M4-3;3E0H~C*C^SAQ-zve^M$A)4UNm1J zNb?keG*2P85Azd(G*2PeR4-sY<|~BHpC@1=v>D+C77A#VKP1W@>ld2rXM1G+X1t$U z;%$|3J0jzOG=Em#Ao#9^Jk~x&f}8kXOvm{1)=9!CZ+hN6Nx1xciT&v$;bJx_Xq@Wr2jzl4{I&ou zubJ;~*zM*!r9ZzygpZQY3?uvAe5ZJ0W%wjZJhJ~2*KlllUC5#7hi2)%%zAk5i>h49l0}FwOIbU$Z~1U%<;B(nBq<}OJB!8L*5~TSd!HqJWneUAjJAz63#A+{uASHp61X2=6NgySGlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61X2=6NgySG zlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61X2=6NgySGlmt=|NJ$_if&ZKYw*EtW z54Jgn|LD870TK?CFh{~72`5T8Q^H0GnqdA! zn}S_$V%=#?-e;R*>?OSn$L9tpQd zxLv|s681{CU&2EY9+i;UWc^DxRKgqyizJ*V;YASHp61X2=6NgySGlmt=|NJ$_ifs_PN5=coP zC4rO#QW8i>ASHp61X2=6NgySGlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61X2=6 zNgySGlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61pdbKyewPDpm=YQs%EDjxE(Ctrl%}($EaE76EuPXaEi@GW%Iaf&3}N3o`Brd}c>a%Ppwb;aC&4sEv~RT z(5mxLGss!g?Do3c;jp{Q70^3ef=p7B5|^vE)B_4NF@oeZ))VOp>9agFPM=qXG|sYe zB2ozdL>}V)CuTr~UpBY6$mQ~McDkE=%ZiJ~W3>@&#IgHLQEJ(lofIb4O2S z&vvD!*S4*vC+itry2j+xPEay@Cm?X>L;A`akMii_k3R8uPq)&uUF}(|Zlkvina}Ky z)cTaId+TA5@C&8MWSAoLEvVOBw@k$F`pvh1yIpt%I>d{swX@R|(!)kD;P(3>U9M$C ztb6dvee~uhdX=$)_q9k`-QT03POc9BI%x`t`@J$&{5mV^l*zm*unE~ z84)*vK*iM>b%(vIJBtbhZ!a25$c*C!=N!=k%Y5Nrfc%4@h&$XW-+Tct-n?CYy>3L?b>wPfiS|Fc zAwn&(*xBqhd>*hC_61sJdFD32&(r1(yCPw?FJhpr*1&Iq+wTv0+>v0IJZef?K(oe! zI$*}&Bzog0nqQv~HFQ^t+oMNn>gP5TxkP(s#?Yk5Wxk-{LjL-=Ry~4*=z$=p#X4xQ zKiCT1c>kQ{tf`yrq40b&{KVa08g*nuD>9>rV!F^(J0q@8*w?PtaK_7$Bm6sZ80QX! zbVx#SR&`n_awcb;>WLP(R%Td+5)NNm#;P|i} z@}ou9w6~+WIh&!=N>y;$d0J>1dU%;^=H1Fyr#QjoY7GZFT+Ll5Jw4RHR-X>Sp{UUY z72sJ~!|Q47X`l%OP(Qn2tc!Tua2n~gw}WgcC);xx$hsTiY;I1bS0Z##5K38hx1U%k z*NijtKqTBnrEMtTTy6dLsR-kR8QcF25`Lq`N3!1e@1^B!X-`sGIf$4{^(Fu(2ot{Txc^Bcoe4IMM{b8`VU2>4sU3#ZS z4@G=rO)%q_BFq_z5Yan*5%TO-saNw<&3daZ;KJbSX`_(U@equ}epeLZUP$*ubeJK` zSQ`(;z!gumA@1K2)-4?L!~?l0!HeL_4}MSWpzXl%8Hg>?wr;9=Y2VX~@- zxt(!eUVY@ZM?LGy%{6B9s$59iRG?)01Rl5HTHHQA1svc3rWg+q2D64Y;3E>@@s1JF zyj%|lDOI-(n5WI_Bg4&D%`tyalw~bp-YASf=o|U&B&3HBy;Jur<6)ZxD(Y`5AuS%0 z#&&@QB0TS%9Mgj>L}iaaXpTZ?FGpMa(3^zr<0#B0gRlb}^I<~5xjw|vAWRerJR-30 zQbLY#1lCX>!gJ|PBYr~B2v@_aIR@n;+6>1GUFRt`2rS~}4WNf(5#7%j-^{U&urDH7 z0HNT`)4}O%mnbY{1{QWo)E{(v-OFGuqpZ>k1~j3)an$7x26&Wx(k}u#F4*FAcTvOx z=CvF(pl&?8qBd|GZ5#6%UU3rVov!m+luR(e1WPzD<$idyBRmuMu&d*$XB%DeE^ zILh(uF+3`I&`$2rWnioo`ibyJI2ynR#HG|r9?^i`7vOcXkI-c;@uD0cj}A;OLq5*H zA&yI(K{Hpy0THqPyClg&^Ipt77#g^*1Gflmt=|NJ$_ifs_PN5=coPC4rO# zQW8i>ASHp61X2=6NgySGlmt=|NJ$_ifs_PN5=coPC4rO#QW8i>ASHp61X2=6NgyQw zA%V@syKFOOZdPX=SNEtJ2luF3)E;$%x;A5jdcan;RoS67ZBP%{s5# zHmC!JbSqnxwmnK)PkP%LTid2H+J+pk4cV@)RfbfRRqf3hvRdi39ap<;o3pm4J8f%h zRaHmRHh}I1b)U_<*S68oGvIJ$w{5@eXuqERTh-0BElRg?OgRd-*|yQPcGv-BulibM zx3cD}RkjVbE$VAF?~tSR9^0n$1Bl(L?xG<&GjE%~M0YmC? z@(p5$CzuH4t+cGvOE6VnyA5nLn(W6E- zj5v_KG2@7BRr>tuvW@9``wiJ<+o-HYHLX^64crgOZC1CQvo~!=MyOlaZmU|Y4&SA2 zNH6PAwxn%QH%+V>kXBVxl$Et@;3{Q{+SD|pYMX6WCjMsis+*P4O-h<<4+9ySh}Wq# z?sW1Y??K97dgZ^zI#j^eIi!4nn?HZasxA1f7W`)x{8bD7fd$V1W$_;YcrLKuWfuGr z3m&%M-?iWmTky{;_zaX(c!~UPv*2%A@QZB8@t0Zf-4=WZ1e{3UWx*e@;Qz4TGf+#3 z>F==M2Q2sn8OiY%TJW_N`~?gCh6Vr7f~RFB)33DP3oQ80Eck8+c=$Blc3oQ6p3qI3=FSg)e z3x1;oUvI(h=Xh1DJkN{p82*wa{_iZ|f3@Hlc3z%X`ZF!~a0@=lf{(V~V=VYM3tnl# zt1b8}3qH?+&$r-B7QDrR2P}Bhf?sXHueabgTkzW~_+1wKdlvjb3%=EYKW@RFvEVOQ z@VyrNRSW)G3;ufx{$~sRsRjSSf)D7Q+&<2;;3F;gXbV2Zf{(Z0lP&lR3tnfz=UZ@> z1#h+BK?~kt!B<-FZ&~n%EcnY7{38o~_JCx0IW72X3+}eyS6lEqEcksEe6t0A#DYI= z!JoF^FIezjTJYB`_yG(4z6C#O!5QoojDIoxGSGs5-GX0W!E-J67z;k$f={;KGc5Q# z3qIe1H(T(f7CdUfS6c9!EcjXreuo7o!N6o-WXxfxW*9yhM99v78w5v|-I;J_!JQ2^ z1nwNTufcsCj_kd2;m(5_1~(k;e7F&C7r<$7qu_Gja^e09E)Q-DToGI`oD;4TZYqx(x4u$0j?45 zQn<_DE{B^Bw*c-6xP@?w;1cyAkdtxYcmq zg!>lU&2VerZh<3v`rB}8;l2ZR8{Bu{*1@fZyB+QhxD9Z3!rcXTHynm#2311cg^h&E zhRcT=4R;}2A)EuwT5l!rtAd*fR}EJKHyv&s+*NR4xQ%csTpCvlD%(V!d;LZX3aE3&n}I8I*Rkxg+>GRfe60n-~%(o$3yTglMr3Y2&vqP^g7d zdGCS@Nxm|rNS45Q%Lo5(*G!RkgGF^>ilhL#v_Yge#jOsfija`!2`_vQY5#peCtme% z8fmr5Qh#;EaDBj6=PQ1(!)c^-8p;^I%;Br@WxdAXG}1c_H306+s~f&5V}0*z_{tO$ zFKhU!#A3HJoGwD<^$cH?UhH0m1VaDLg$(~@a;qNur?Tc(F#M|-B2i+`l-E_osU%-k z757iPogwZU8%_SXYZ*?EFm@k9JnZye!~ojKH!#5C1eY+yd=m#L(ytWv#3K|BO};+s zgqLp-k>qG6yJd^Vw2rMJ8}hZX#xKl58h$AhAYGP409R%8xeZHR9dUvSC(ICW)5Hm` zn2=u9yCtM|{89<&VYy90`X*i@k?bY!k4W+~FOHC&p=ell;j*nr)a~a*!_64xEfO+{ zxIO~NDX;lLxcFuoFDJN248E58Ba(c?tzg_s+z2LKQ7s{G#c!ApS4+@eFe)ySkhe(S zPBpqdg5MiKf1J!^ULa;(86io?OCoSt1l3#+Y#l;MS#BXGfS24JJ;tmFJ`GR@t0*AP6fkWK0K#+fLPcL+{f~%chsbJosMv(4M zGw)V#h3Ha+#0vqEkds`akQl#D6e0hFD+c<+5b``}4D+soljp*3J4g&px+9@az=@;B zZbj%5KjAtAy5fv3^>BscO$9Ex)q`$6pcjLQyAJSI2tBOx+YQWX4d_N4d7lBj@{0^` z1)zC@0lk`67w~uU&H|TVURK~T#4QEldIGvwPPSFN(S-!$LpKo+q$>ynM9bzl?idg+ zblZT-kk<^v?-wvH7Kq;{5W7miCE9MEoA$zPZ@7HSn6cxEOUIVdf{c7Vdwal6tPYTm zBE5#d57YU6BbbUAy~?Ndv|K_|`&T z_3+`m@2xv@`L$QG@Fjkt33+r_sBZupUM{W*KyN?&l^#n%oTb@Vs6?%_Xw;(veo zbM-IY8+Y}4%DXq~z0>{0#o35##{eR_WL{MGO6?aiFDE9Zxw zEx2>a;Q!UuJ~e3VH}^lj=I={A&8r7I?QLKB%_Z+VzI01*=Kl6ak9~5uXdGm z9=^Eh-SBVP%A0>T<*dcEzZp1plFxqbE0g@socq!ZnJ?TmwegnQM*n(H!Naz+16Mt> z^pjO*K0o&G2ftnN-Fwa(u>Pg2%A6%HANoi7i)SDEuSM)vs!Uy)Tg>4AqXpLN$;A5Y1hwDHEG&gPF^yZL`>m#;rwQ0_kR zM91i1H#R(U_n_BjH-9{6N7lI$3U9sf?kgVM^y7Qd&RMm7*JnRa9^bqC-Ryg&dk0=o z5&0l|pYOf#pWi%ndi!m^EMBnN7^mNP{_e_EKmNg+*YEL0p1tVK>yOUqIp^1xDu-76 zHt?MpAOCF48-M6G?{LmfhtJ*p=H>^ET{f|K>GJC?f9_C*eef^tuDEmOpby6UY2RJx zzdZ8DiZg~B-P|wZ=5q)9@^4o^+*o_lU%%&D99+Nq;KWf)<$v09XD9L<=^o84}IGQ-X7{X*p%_akLSC8b@zq&v$9`&^W**h+w{~Wb6%bH z=VSSgoH2R&z1z<@x4Czq_Fkx>ysZB18y6io_Mz)R51zgH@w0-ckUw&e|5PoIQ^lP8G^RD`9-st%m^IhX^zWuPJfs7r$}e`n*ST+TXX&T{C6T@Z(QbT>GI? z_}CR^9Dm+*+1Ea~^`W=FQT@W#SKTzV_RquIi*C5Pcnx!tFx{j@Us;^D!p#RZMV4|S$^Bhe|Y;jefyVu^O=u-5lpLC zI{dcR{wF_kQse8dPIgDvRlN7#KlsO;*V%u4g>uEqpM8-%`LdlycR#8uxMM}>PY+)G z+rRF4tmX;(o%ftE`d9aksk`IB(t9SAZg0J=^yYKVy>92s56&L3Yvt0vJzsLE_Qp#; z{>$!H?^^ih+NpOhU%2FkigQPNvVPayY{R>47Z<+Odux{O{_|YxFYao;VDgL6-ujCk z7;@pDPdB`F?u#vL_Za^;Z_aa(Ce+?@jGm`_1dyzkm0F=IP^%-}x_n;*r+I;pboTbmjVQkGr8?`k7Tj z?s#xUoc*;fD4uB>BwHa=f`c;@z} z%HBF>R8RLuZ*RJ>^|`Ja-mk8Db-?bQ%$R=Lva4L5KKa9z&b=LHAFS{H(eGLoKm5l{ z>CI0*vePqh(aqC-e8acy{7!rRb7SWW4A#|OQFiR*v6pv-j3uUxh8lD!{IyV1Mo z&hNkV7stC#{dIGkeF|A3Sr{w5gu% zY4aX4e)U6t{X1D(H(l=Q{@%F$b3VzKubthpFXz7NpFQ)f_94%no6~#qC+E$Y^Vhi< zQ(ph%?N7CbzOm)e`N7@qx9m)N^Vh##s?M9A{>6%IE0*8z*3&o7{AR&}Up2hyfsJ{O zJYzfh_8F}YUO(H@)!O>b^NU9x&+K1qd#3xD{a1Wd`d^lQ*yW$@aXmS*cc(h-rZaZ` zXx!M*dd2nUT=YinYmsO50R{J6cvIQ*)%{_8$`<&Wcy zzt25u^Ow=z{oEasvtM|6;;@C^ed~5#=$AL0|MNdxvV7|6O;0qvKkBw0EVyT3ufyB9 zIlKA(s{S+DX0vm5Y}xYj_p|T2bW!IY^0L>@nR@*_>JP8^%L|{LvFE?9c=P@d`F}X~ V<%$pA>=$r+tmhvbmL<%Y{|C704vPQ) diff --git a/pycode/memilio-simulation/mv/bin/pip b/pycode/memilio-simulation/mv/bin/pip deleted file mode 100755 index a724d1076f..0000000000 --- a/pycode/memilio-simulation/mv/bin/pip +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/pip3 b/pycode/memilio-simulation/mv/bin/pip3 deleted file mode 100755 index a724d1076f..0000000000 --- a/pycode/memilio-simulation/mv/bin/pip3 +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/pip3.11 b/pycode/memilio-simulation/mv/bin/pip3.11 deleted file mode 100755 index a724d1076f..0000000000 --- a/pycode/memilio-simulation/mv/bin/pip3.11 +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/pybind11-config b/pycode/memilio-simulation/mv/bin/pybind11-config deleted file mode 100755 index c7c251f815..0000000000 --- a/pycode/memilio-simulation/mv/bin/pybind11-config +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from pybind11.__main__ import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/bin/python b/pycode/memilio-simulation/mv/bin/python deleted file mode 120000 index 6e7f3c7dd2..0000000000 --- a/pycode/memilio-simulation/mv/bin/python +++ /dev/null @@ -1 +0,0 @@ -python3.11 \ No newline at end of file diff --git a/pycode/memilio-simulation/mv/bin/python3 b/pycode/memilio-simulation/mv/bin/python3 deleted file mode 120000 index 6e7f3c7dd2..0000000000 --- a/pycode/memilio-simulation/mv/bin/python3 +++ /dev/null @@ -1 +0,0 @@ -python3.11 \ No newline at end of file diff --git a/pycode/memilio-simulation/mv/bin/python3.11 b/pycode/memilio-simulation/mv/bin/python3.11 deleted file mode 120000 index 3cf1fbdcfd..0000000000 --- a/pycode/memilio-simulation/mv/bin/python3.11 +++ /dev/null @@ -1 +0,0 @@ -/opt/homebrew/opt/python@3.11/bin/python3.11 \ No newline at end of file diff --git a/pycode/memilio-simulation/mv/bin/wheel b/pycode/memilio-simulation/mv/bin/wheel deleted file mode 100755 index a357451125..0000000000 --- a/pycode/memilio-simulation/mv/bin/wheel +++ /dev/null @@ -1,8 +0,0 @@ -#!/Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv/bin/python3.11 -# -*- coding: utf-8 -*- -import re -import sys -from wheel.cli import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/pycode/memilio-simulation/mv/pyvenv.cfg b/pycode/memilio-simulation/mv/pyvenv.cfg deleted file mode 100644 index 66e11f3a74..0000000000 --- a/pycode/memilio-simulation/mv/pyvenv.cfg +++ /dev/null @@ -1,5 +0,0 @@ -home = /opt/homebrew/opt/python@3.11/bin -include-system-site-packages = false -version = 3.11.13 -executable = /opt/homebrew/Cellar/python@3.11/3.11.13/Frameworks/Python.framework/Versions/3.11/bin/python3.11 -command = /opt/homebrew/opt/python@3.11/bin/python3.11 -m venv /Users/saschakorf/Nosynch/Arbeit/memilio/pycode/memilio-simulation/mv diff --git a/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py b/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py index a79832d2ac..1d10b6167a 100644 --- a/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py +++ b/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py @@ -515,7 +515,6 @@ def test_network_fit(self, mock_population, mock_baseline, mock_minimum): self.assertIn(error_message_part2, str(error.exception)) self.assertIn(error_message_part3, str(error.exception)) - # generate dataset with multiple output input_width = 5 label_width = 10 From db83cd391f0de4c1aeb4969c14e364d15ce921e0 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:57:07 +0200 Subject: [PATCH 27/31] redo --- .../memilio/simulation/bindings/pickle_serializer.h | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/pycode/memilio-simulation/memilio/simulation/bindings/pickle_serializer.h b/pycode/memilio-simulation/memilio/simulation/bindings/pickle_serializer.h index 74c949dc83..d20ab9c5a4 100644 --- a/pycode/memilio-simulation/memilio/simulation/bindings/pickle_serializer.h +++ b/pycode/memilio-simulation/memilio/simulation/bindings/pickle_serializer.h @@ -68,16 +68,6 @@ template <> struct PickleType : std::true_type { }; -// Add support for long (Eigen::Index is typically long) -template <> -struct PickleType : std::true_type { -}; - -// Add support for size_t -template <> -struct PickleType : std::true_type { -}; - //double template <> struct PickleType : std::true_type { From dd6cac72ade0919e6de4a120b3fddf3977899008 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:58:14 +0200 Subject: [PATCH 28/31] redo --- pycode/memilio-simulation/CMakeLists.txt | 32 ++++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/pycode/memilio-simulation/CMakeLists.txt b/pycode/memilio-simulation/CMakeLists.txt index 605045adc2..96b92a1c18 100644 --- a/pycode/memilio-simulation/CMakeLists.txt +++ b/pycode/memilio-simulation/CMakeLists.txt @@ -67,22 +67,22 @@ add_pymio_module(_simulation memilio/simulation/bindings/utils/uncertain_value.cpp ) -# add_pymio_module(_simulation_osir -# LINKED_LIBRARIES memilio ode_sir -# SOURCES memilio/simulation/bindings/models/osir.cpp -# ) +add_pymio_module(_simulation_osir + LINKED_LIBRARIES memilio ode_sir + SOURCES memilio/simulation/bindings/models/osir.cpp +) -# add_pymio_module(_simulation_oseir -# LINKED_LIBRARIES memilio ode_seir -# SOURCES memilio/simulation/bindings/models/oseir.cpp -# ) +add_pymio_module(_simulation_oseir + LINKED_LIBRARIES memilio ode_seir + SOURCES memilio/simulation/bindings/models/oseir.cpp +) -# add_pymio_module(_simulation_osecir -# LINKED_LIBRARIES memilio ode_secir -# SOURCES memilio/simulation/bindings/models/osecir.cpp -# ) +add_pymio_module(_simulation_osecir + LINKED_LIBRARIES memilio ode_secir + SOURCES memilio/simulation/bindings/models/osecir.cpp +) -# add_pymio_module(_simulation_osecirvvs -# LINKED_LIBRARIES memilio ode_secirvvs -# SOURCES memilio/simulation/bindings/models/osecirvvs.cpp -# ) +add_pymio_module(_simulation_osecirvvs + LINKED_LIBRARIES memilio ode_secirvvs + SOURCES memilio/simulation/bindings/models/osecirvvs.cpp +) From db41cd0282984b92dbfee4a251364b25ee817cac Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:58:34 +0200 Subject: [PATCH 29/31] redo --- pycode/memilio-simulation/CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pycode/memilio-simulation/CMakeLists.txt b/pycode/memilio-simulation/CMakeLists.txt index 96b92a1c18..04f4137ca8 100644 --- a/pycode/memilio-simulation/CMakeLists.txt +++ b/pycode/memilio-simulation/CMakeLists.txt @@ -1,7 +1,6 @@ cmake_minimum_required(VERSION 3.13) project(memilio-python) -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) + option(MEMILIO_USE_BUNDLED_PYBIND11 "Use pybind11 bundled with this library." ON) mark_as_advanced(MEMILIO_USE_BUNDLED_PYBIND11) From 2c5850d4cac66c82aebb2dda2e53d3d3388bc254 Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Mon, 23 Jun 2025 20:00:53 +0200 Subject: [PATCH 30/31] redo --- .../surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py b/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py index 1d10b6167a..80f9c0f90d 100644 --- a/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py +++ b/pycode/memilio-surrogatemodel/memilio/surrogatemodel_test/test_surrogatemodel_ode_secir_groups.py @@ -505,7 +505,6 @@ def test_network_fit(self, mock_population, mock_baseline, mock_minimum): model.network_fit( path=self.path, model=md, modeltype='classic', training_parameter=training_parameter, filename="data_secir_groups.pickle") - # check error message error_message_part1 = "[Errno 2] No such file or directory" error_message_part2 = self.path From f3e8492196443d590af57752e3107b4fb06afdca Mon Sep 17 00:00:00 2001 From: Sascha <51127093+xsaschako@users.noreply.github.com> Date: Thu, 17 Jul 2025 22:35:51 +0200 Subject: [PATCH 31/31] add review comments --- cpp/models/abm/testing_strategy.cpp | 13 +++++++------ cpp/models/abm/testing_strategy.h | 4 ++-- cpp/tests/test_abm_testing_strategy.cpp | 15 ++++++--------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/cpp/models/abm/testing_strategy.cpp b/cpp/models/abm/testing_strategy.cpp index 1fdebd76a6..22ca75c4c4 100644 --- a/cpp/models/abm/testing_strategy.cpp +++ b/cpp/models/abm/testing_strategy.cpp @@ -82,18 +82,19 @@ bool TestingScheme::run_and_test(PersonalRandomNumberGenerator& rng, Person& per if (!is_active(t)) { // If the scheme is not active, do nothing; early return return false; } - if (person.get_compliance(InterventionType::Testing) < - 1.0 && // Dont need to draw a random number if the person is compliant either way - !person.is_compliant( - rng, InterventionType::Testing)) { // If the person is not compliant with the testing intervention - return true; // Assume positive test result as this should not allow entry although it is not the same - } + auto test_result = person.get_test_result(m_test_parameters.type); // If the agent has a test result valid until now, use the result directly if ((test_result.time_of_testing > TimePoint(std::numeric_limits::min())) && (test_result.time_of_testing + m_validity_period >= t)) { return test_result.result; // If the test is positive, the entry is not allowed, and vice versa } + if (person.get_compliance(InterventionType::Testing) < + 1.0 && // Dont need to draw a random number if the person is compliant either way + !person.is_compliant( + rng, InterventionType::Testing)) { // If the person is not compliant with the testing intervention + return true; + } // Otherwise, the time_of_testing in the past (i.e. the agent has already performed it). if (m_testing_criteria.evaluate(person, t - m_test_parameters.required_time)) { double random = UniformDistribution::get_instance()(rng); diff --git a/cpp/models/abm/testing_strategy.h b/cpp/models/abm/testing_strategy.h index 12f6015229..adae629210 100644 --- a/cpp/models/abm/testing_strategy.h +++ b/cpp/models/abm/testing_strategy.h @@ -168,8 +168,8 @@ class TestingStrategy { public: /** - * @brief List of testing schemes for a given LocationType and LocationId. - * A LocalStrategy with id of value LocationId::invalid_id() is used for all Locations with LocationType type. + * @brief Vector of testing schemes used as an entry for either LocationId or LocationType in TestingStrategy. + * @details The index of the vector is either corresponding to the LocationId or LocationType in the according TestingStrategy vector. */ struct LocalStrategy { std::vector schemes; diff --git a/cpp/tests/test_abm_testing_strategy.cpp b/cpp/tests/test_abm_testing_strategy.cpp index d5b83b9008..8e934ba077 100644 --- a/cpp/tests/test_abm_testing_strategy.cpp +++ b/cpp/tests/test_abm_testing_strategy.cpp @@ -90,7 +90,7 @@ TEST_F(TestTestingScheme, runScheme) EXPECT_EQ(testing_scheme1.is_active(mio::abm::TimePoint(10)), true); // Deactivate the scheme after the end date. - EXPECT_EQ(testing_scheme1.is_active(mio::abm::TimePoint(60 * 60 * 24 * 3 + 200)), false); + EXPECT_EQ(testing_scheme1.is_active(end_date + mio::abm::seconds(200)), false); // Setup a second scheme with different infection states. std::vector test_infection_states2 = {mio::abm::InfectionState::Recovered}; @@ -327,7 +327,7 @@ TEST_F(TestTestingScheme, differentTestTypes) // Create PCR test parameters with high accuracy but long wait time const auto test_params_pcr = mio::abm::TestParameters{0.95, 0.99, mio::abm::hours(24), mio::abm::TestType::PCR}; - // Create rapid test parameters with lower accuracy but quick results (we need to set this to 24 hours to avoid the person getting healthy randomly) + // Create rapid test parameters with lower accuracy (we need to set this to 24 hours to avoid the person getting healthy randomly) const auto test_params_rapid = mio::abm::TestParameters{0.8, 0.9, mio::abm::hours(24), mio::abm::TestType::Antigen}; auto testing_criteria = mio::abm::TestingCriteria(); @@ -361,8 +361,7 @@ TEST_F(TestTestingScheme, differentTestTypes) .WillOnce(testing::Return(0.5)); // Person complies to isolation // Test PCR test with infected person - bool pcr_infected_result = - testing_scheme_pcr.run_and_test(rng_infected, person_infected, start_date + mio::abm::hours(1)); + bool pcr_infected_result = testing_scheme_pcr.run_and_test(rng_infected, person_infected, start_date); EXPECT_EQ(pcr_infected_result, true); // PCR should detect infection // Reset mock for PCR test with healthy person @@ -372,8 +371,7 @@ TEST_F(TestTestingScheme, differentTestTypes) .WillOnce(testing::Return(0.98)); // PCR test correctly identifies no infection (< specificity 0.99) // Test PCR test with healthy person - bool pcr_healthy_result = - testing_scheme_pcr.run_and_test(rng_healthy, person_healthy, start_date + mio::abm::hours(1)); + bool pcr_healthy_result = testing_scheme_pcr.run_and_test(rng_healthy, person_healthy, start_date); EXPECT_EQ(pcr_healthy_result, false); // PCR should correctly identify no infection // Reset mock for rapid test with infected person @@ -385,8 +383,7 @@ TEST_F(TestTestingScheme, differentTestTypes) .WillOnce(testing::Return(0.1)); // Infected person complies for isolation // Test rapid test with infected person - bool rapid_infected_result = - testing_scheme_rapid.run_and_test(rng_infected, person_infected, start_date + mio::abm::hours(1)); + bool rapid_infected_result = testing_scheme_rapid.run_and_test(rng_infected, person_infected, start_date); EXPECT_EQ(rapid_infected_result, true); // Rapid test should detect infection } @@ -598,5 +595,5 @@ TEST_F(TestTestingScheme, testCompliance) // Test at shop with specific ID - should run the scheme bool result1 = test_strategy.run_and_check(rng, person, shop1, start_date); - EXPECT_EQ(result1, false); // Person should not be allowed to enter after positive test + EXPECT_EQ(result1, false); // Person should not be allowed to enter after not complying to the test }

?*ze-PCtdBRt(H?{PkHZhlKoE=ZN6PEKCI=Tlu$y;Bv*n7+(MuH}z$01ENL zoVFqJ)-b&_HhHS;FmtrnJr6n{d8{o+{@fdh0>+Nxjiqh}y)hznPU;$3GLza#jJDo9 zY3kvYqV(`ssnJLCCjr~%$Yr65wk)X|;es4GRlOK7LJ;U@}A7t&7X(U~%UbVC&$pyA*2H8~G zT6X-@O3k4S158|PaI5yJfIF#{-mrjxRRi3pcSl;~x%WaD&(tp3^?qie3_s5jp2{8T zVRp<|=0Fszg$<3k*6pjd>~ylYg{pCaeZ|bBqiOSAKjkXJ*Sdorv5PY9dhu8}mm%zV zYzO~!_5M%X-TM21cF)pvbbY0nbwyTrkx@GT?f5h!j0FJshi>Bg`&uLaTyDB!!_{2K zZvkQUKehkQ#lOjF@W5}rHvY}zNd!fcpmn6I0hL_B%36<2jcB7!$MP;zvY!l|ZQ~g| zM9at{Ok5M2LnuCyz(xdrQNDVWB)>-$o39?5ML30sgE(%v4@q2P5C)5>9?&w;d-6L) za3{W}phk{$=X7?Sn3%g@?{#5hX?4y6wNuw*ruGZBc(PeR6WOO9jpMVTUDk`Abl$!6 z*Q~a+e@7+Hn8y46>`OlsT)4$%Bnr-xiPDMjX?GVd zHv)C?libjBF@#IHV*P!_J8fe9Jx@WqK%G+IGh_c)tiLN-WBuXJt(-({;6BTR|jtVEQ?Ap{sF94hZzh%qIRNsll-J>7 zP4Q6qTh|(Y>stJ+Lb_@(%G4JOS7815*8^S=0{4o6e0tmOt17P#+IDkk9+uAG1E z@tt4rE}x;+_>x$RV`wX2N5laN%)q*mlRJxkuJxopOK4CiIYE-Sxyb0Tl~w4vlq=}2Vp%=Dv7wUP;b9m#r1ht4+nw(A2eBPc zYK^kk1bGT#gWLd9q3c>wHSUgVNp<8M;`$3Q`?Gie9T5}MQB6>)fIog5Z`@(fUFN__ z;M#vP$}!D}!&gMG4g97Ewg$H!SM8=O`Ml-}gUB=SpKyoHvGH0=n84^g-E-y_;3xvT zZfluT7`?lD&OLjhcjtGQ=N&d{gkMN2G=ERJ(v|Ux^3h_aS~kQk%1^yVFYS6jN-Wqd zVYSY&*b2%0{ILgynu|&N9E=%>RnUs_Xrc(0K~YIgkx9|*6g@E0+)b@?if&r$6y3Vi zDZ&Sw(EwvJcu|B3L% z%Fakx`=*UgLwl4#qgZx=&bR|9{MB?0R_u{689u{z7hsPp>F^$te-nCU4?Bl^B9=0H z9-_&cPwfU5$nwW~yeMnuI5ZuN1HsiBZ2nqBPVpV!?5iAe7KWs?0bjEs9Yx<{d5Bp; z7}Yd9l3}l)>?wh1S@hsp;gk70Byv%Ru&ZTHacC1y;<<1al*-3Pzc?$>BjnpkJF}ik z%Iqil#gItPll+H&K%!$SgC#MYO!)ahxaJXKZSc?cy(moK`)$MqPl z9T1y# IhnZK$0~Oj)nWELLQQxjR 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