diff --git a/build/patches/00AdblockPlus-add-blocking-in-service-workers.patch b/build/patches/00AdblockPlus-add-blocking-in-service-workers.patch index 00fe8838..d37667d5 100644 --- a/build/patches/00AdblockPlus-add-blocking-in-service-workers.patch +++ b/build/patches/00AdblockPlus-add-blocking-in-service-workers.patch @@ -22,7 +22,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/browser/adblock/adblock_content_browser_client.cc --- a/chrome/browser/adblock/adblock_content_browser_client.cc +++ b/chrome/browser/adblock/adblock_content_browser_client.cc -@@ -45,6 +45,7 @@ +@@ -43,6 +43,7 @@ #include "content/public/browser/web_contents.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "services/network/public/mojom/websocket.mojom.h" @@ -30,7 +30,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b #include "services/service_manager/public/cpp/binder_registry.h" #include "third_party/blink/public/common/loader/url_loader_throttle.h" -@@ -58,6 +59,29 @@ +@@ -56,6 +57,29 @@ namespace { @@ -60,7 +60,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b bool IsFilteringNeeded(content::RenderFrameHost* frame) { if (frame) { auto* profile = -@@ -65,17 +89,7 @@ bool IsFilteringNeeded(content::RenderFrameHost* frame) { +@@ -63,17 +87,7 @@ bool IsFilteringNeeded(content::RenderFrameHost* frame) { if (profile) { content::RenderFrameHost* embedder = frame->GetOutermostMainFrameOrEmbedder(); const auto& embedder_url = embedder->GetLastCommittedURL(); @@ -79,7 +79,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b } } return false; -@@ -90,6 +104,8 @@ class AdblockContextData : public base::SupportsUserData::Data { +@@ -88,6 +102,8 @@ class AdblockContextData : public base::SupportsUserData::Data { static void StartProxying( Profile* profile, @@ -88,7 +88,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b content::RenderFrameHost* frame, int render_process_id, mojo::PendingReceiver receiver, -@@ -102,8 +118,6 @@ class AdblockContextData : public base::SupportsUserData::Data { +@@ -100,8 +116,6 @@ class AdblockContextData : public base::SupportsUserData::Data { self = new AdblockContextData(); profile->SetUserData(kAdblockContextUserDataKey, base::WrapUnique(self)); } @@ -97,7 +97,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b adblock::AdblockURLLoaderFactoryConfig config{ adblock::SubscriptionServiceFactory::GetForBrowserContext( browser_context), -@@ -115,8 +129,9 @@ class AdblockContextData : public base::SupportsUserData::Data { +@@ -113,8 +127,9 @@ class AdblockContextData : public base::SupportsUserData::Data { browser_context)}; auto proxy = std::make_unique( std::move(config), @@ -108,7 +108,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b std::move(receiver), std::move(target_factory), embedder_support::GetUserAgent(), base::BindOnce(&AdblockContextData::RemoveProxy, -@@ -157,47 +172,50 @@ void AdblockContentBrowserClient::ForceAdblockProxyForTesting() { +@@ -155,47 +170,50 @@ void AdblockContentBrowserClient::ForceAdblockProxyForTesting() { #endif bool AdblockContentBrowserClient::WillInterceptWebSocket( @@ -176,7 +176,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b auto* subscription_service = adblock::SubscriptionServiceFactory::GetForBrowserContext( browser_context); -@@ -205,33 +223,33 @@ void AdblockContentBrowserClient::CreateWebSocketInternal( +@@ -203,33 +221,33 @@ void AdblockContentBrowserClient::CreateWebSocketInternal( adblock::ResourceClassificationRunnerFactory::GetForBrowserContext( browser_context); classification_runner->CheckRequestFilterMatchForWebSocket( @@ -218,7 +218,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b std::move(handshake_client)); return; } -@@ -248,6 +266,72 @@ void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted( +@@ -246,6 +264,72 @@ void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted( VLOG(1) << "[eyeo] Web socket blocked for " << url; } @@ -291,7 +291,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( content::BrowserContext* browser_context, content::RenderFrameHost* frame, -@@ -271,24 +355,12 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( +@@ -269,24 +353,12 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( navigation_id, ukm_source_id, factory_receiver, header_client, bypass_redirect_checks, disable_secure_dns, factory_override, navigation_response_task_runner); @@ -320,7 +320,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b bool use_test_loader = false; #ifdef EYEO_INTERCEPT_DEBUG_URL -@@ -307,7 +379,7 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( +@@ -305,7 +377,7 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( mojo::PendingRemote target_factory_remote; *factory_receiver = target_factory_remote.InitWithNewPipeAndPassReceiver(); AdblockContextData::StartProxying( @@ -401,7 +401,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -6300,7 +6300,9 @@ ChromeContentBrowserClient:: +@@ -6330,7 +6330,9 @@ ChromeContentBrowserClient:: } bool ChromeContentBrowserClient::WillInterceptWebSocket( @@ -412,7 +412,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_EXTENSIONS) if (!frame) { return false; -@@ -6321,9 +6323,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( +@@ -6351,9 +6353,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( } void ChromeContentBrowserClient::CreateWebSocket( @@ -427,7 +427,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h -@@ -617,11 +617,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -624,11 +624,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { CreateURLLoaderHandlerForServiceWorkerNavigationPreload( int frame_tree_node_id, const network::ResourceRequest& resource_request) override; @@ -495,7 +495,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.h b/c namespace adblock { -@@ -49,6 +50,7 @@ class AdblockURLLoaderFactory : public network::mojom::URLLoaderFactory { +@@ -57,6 +58,7 @@ class AdblockURLLoaderFactory : public network::mojom::URLLoaderFactory { AdblockURLLoaderFactory( AdblockURLLoaderFactoryConfig config, @@ -503,7 +503,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.h b/c content::GlobalRenderFrameHostId host_id, mojo::PendingReceiver receiver, mojo::PendingRemote target_factory, -@@ -78,6 +80,7 @@ class AdblockURLLoaderFactory : public network::mojom::URLLoaderFactory { +@@ -86,6 +88,7 @@ class AdblockURLLoaderFactory : public network::mojom::URLLoaderFactory { void MaybeDestroySelf(); AdblockURLLoaderFactoryConfig config_; @@ -683,7 +683,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -985,7 +985,7 @@ bool ContentBrowserClient::WillCreateURLLoaderFactory( +@@ -998,7 +998,7 @@ bool ContentBrowserClient::WillCreateURLLoaderFactory( return false; } @@ -692,7 +692,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b return false; } -@@ -994,9 +994,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { +@@ -1007,9 +1007,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { } void ContentBrowserClient::CreateWebSocket( @@ -707,7 +707,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -1764,7 +1764,7 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1791,7 +1791,7 @@ class CONTENT_EXPORT ContentBrowserClient { scoped_refptr navigation_response_task_runner); // Returns true when the embedder wants to intercept a websocket connection. @@ -716,7 +716,7 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br // Returns the WebSocket creation options. virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame); -@@ -1786,9 +1786,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1813,9 +1813,11 @@ class CONTENT_EXPORT ContentBrowserClient { // Always called on the UI thread and only when the Network Service is // enabled. virtual void CreateWebSocket( diff --git a/build/patches/00Add-a-flag-to-disable-GamePad-API.patch b/build/patches/00Add-a-flag-to-disable-GamePad-API.patch index 6c1bf029..34e5d812 100644 --- a/build/patches/00Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/00Add-a-flag-to-disable-GamePad-API.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -7205,9 +7205,9 @@ +@@ -7331,9 +7331,9 @@ "expiry_milestone": 121 }, { @@ -29,7 +29,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3051,7 +3051,7 @@ const char kReduceAcceptLanguageDescription[] = +@@ -3071,7 +3071,7 @@ const char kReduceAcceptLanguageDescription[] = const char kRestrictGamepadAccessName[] = "Restrict gamepad access"; const char kRestrictGamepadAccessDescription[] = @@ -66,7 +66,7 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t if (!navigator.DomWindow()) { // Using an existing NavigatorGamepad if one exists, but don't create one // for a detached window, as its subclasses depend on a non-null window. -@@ -430,6 +434,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() { +@@ -435,6 +439,8 @@ void NavigatorGamepad::SampleAndCompareGamepadState() { void NavigatorGamepad::DispatchGamepadEvent(const AtomicString& event_name, Gamepad* gamepad) { diff --git a/build/patches/00Add-option-to-disable-snapshots.patch b/build/patches/00Add-option-to-disable-snapshots.patch index 3e418d7f..e9435194 100644 --- a/build/patches/00Add-option-to-disable-snapshots.patch +++ b/build/patches/00Add-option-to-disable-snapshots.patch @@ -16,9 +16,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -294,8 +294,12 @@ class TabGridViewBinder { - updateThumbnailMatrix(thumbnail, result, thumbnailSize); - thumbnail.setImageBitmap(result); +@@ -288,8 +288,12 @@ class TabGridViewBinder { + // Adjust bitmap to thumbnail. + TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize); } else if (isMostRecentRequest) { - // If the most recent request is a null bitmap ensure a placeholder is visible. - thumbnail.setImageDrawable(null); @@ -31,7 +31,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; if (sThumbnailFetcherForTesting != null) { -@@ -370,6 +374,7 @@ class TabGridViewBinder { +@@ -325,6 +329,7 @@ class TabGridViewBinder { */ private static void setFavicon(ViewLookupCachingFrameLayout rootView, PropertyModel model, TabListFaviconProvider.TabFavicon favicon) { @@ -67,7 +67,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -88,6 +88,11 @@ found in the LICENSE file. +@@ -94,6 +94,11 @@ found in the LICENSE file. android:title="@string/open_external_links_incognito_title" android:summary="@string/open_external_links_incognito_summary" android:defaultValue="false" /> @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -147,6 +147,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +@@ -142,6 +142,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.printing.TabPrinter; @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.readaloud.ReadAloudController; import org.chromium.chrome.browser.selection.SelectionPopupBackPressHandler; -@@ -657,7 +658,7 @@ public abstract class ChromeActivity +@@ -658,7 +659,7 @@ public abstract class ChromeActivity TabModelSelector tabModelSelector = mTabModelOrchestrator.getTabModelSelector(); setTabContentManager(new TabContentManager(this, mBrowserControlsManagerSupplier.get(), @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java -@@ -324,9 +324,12 @@ public class TabContentManager { +@@ -344,9 +344,12 @@ public class TabContentManager { * @param forceUpdate Whether to obtain the thumbnail from the live content. * @param writeBack When {@code forceUpdate}, whether to write the thumbnail to cache. */ @@ -115,12 +115,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo + return; + } - // TODO(crbug/1444782): Remove forceUpdate and writeBack params from here and don't - // trigger a captureThumbnail. This should be feasible once the + // TODO(crbug/1444782): Remove forceUpdate and writeBack params once the following features + // launch: diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -69,6 +69,11 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; +@@ -65,6 +65,11 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -132,12 +132,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import java.util.ArrayList; import java.util.List; -@@ -77,7 +82,15 @@ import java.util.List; +@@ -72,7 +77,15 @@ import java.util.List; + * Fragment to keep track of the all the privacy related preferences. */ - public class PrivacySettings extends PreferenceFragmentCompat - implements Preference.OnPreferenceChangeListener, FragmentHelpAndFeedbackLauncher, -- ProfileDependentSetting { -+ ProfileDependentSetting, INeedSnackbarManager { + public class PrivacySettings +- extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener { ++ extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener, INeedSnackbarManager { + private SnackbarManager mSnackbarManager; + private Snackbar mSnackbar; + @@ -149,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; -@@ -145,6 +158,21 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -139,6 +152,21 @@ public class PrivacySettings } } @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener(preference -> { -@@ -293,6 +321,7 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -294,6 +322,7 @@ public class PrivacySettings public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; @@ -179,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { -@@ -316,6 +345,13 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -319,6 +348,13 @@ public class PrivacySettings SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.apply(); @@ -193,7 +193,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -356,6 +392,10 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -360,6 +396,10 @@ public class PrivacySettings : R.string.text_off); } @@ -207,7 +207,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -5407,6 +5407,14 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

%1$swww.amazon.com timer ran out. It'll start again tomorrow. diff --git a/build/patches/00Add-setting-to-clear-data-on-exit.patch b/build/patches/00Add-setting-to-clear-data-on-exit.patch index c36926c2..1f553ff7 100644 --- a/build/patches/00Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/00Add-setting-to-clear-data-on-exit.patch @@ -34,7 +34,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -302,6 +302,7 @@ chrome_java_sources = [ +@@ -303,6 +303,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAdvanced.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java", @@ -45,7 +45,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -141,6 +141,7 @@ import org.chromium.chrome.browser.profiles.ProfileManager; +@@ -146,6 +146,7 @@ import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate; @@ -53,7 +53,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.read_later.ReadingListUtils; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; -@@ -1257,7 +1258,11 @@ public class ChromeTabbedActivity extends ChromeActivity Clear browsing data @@ -484,7 +484,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1609,6 +1609,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1635,6 +1635,9 @@ Your Google account may have other forms of browsing history like searches and a Basic @@ -497,7 +497,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1568,6 +1568,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1584,6 +1584,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -508,30 +508,30 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc --- a/components/browsing_data/core/browsing_data_policies_utils.cc +++ b/components/browsing_data/core/browsing_data_policies_utils.cc -@@ -19,15 +19,15 @@ namespace browsing_data { +@@ -21,15 +21,15 @@ namespace { namespace policy_data_types { // Data retention policy types that require sync to be disabled. --const char kBrowsingHistoryName[] = "browsing_history"; --const char kPasswordSigninName[] = "password_signin"; --const char kAutofillName[] = "autofill"; --const char kSiteSettingsName[] = "site_settings"; -+extern const char kBrowsingHistoryName[] = "browsing_history"; -+extern const char kPasswordSigninName[] = "password_signin"; -+extern const char kAutofillName[] = "autofill"; -+extern const char kSiteSettingsName[] = "site_settings"; +-constexpr char kBrowsingHistoryName[] = "browsing_history"; +-constexpr char kPasswordSigninName[] = "password_signin"; +-constexpr char kAutofillName[] = "autofill"; +-constexpr char kSiteSettingsName[] = "site_settings"; ++extern constexpr char kBrowsingHistoryName[] = "browsing_history"; ++extern constexpr char kPasswordSigninName[] = "password_signin"; ++extern constexpr char kAutofillName[] = "autofill"; ++extern constexpr char kSiteSettingsName[] = "site_settings"; // Data retention policy types that do not require sync to be disabled. --const char kHostedAppDataName[] = "hosted_app_data"; --const char kDownloadHistoryName[] = "download_history"; --const char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data"; --const char kCachedImagesAndFilesName[] = "cached_images_and_files"; -+extern const char kHostedAppDataName[] = "hosted_app_data"; -+extern const char kDownloadHistoryName[] = "download_history"; -+extern const char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data"; -+extern const char kCachedImagesAndFilesName[] = "cached_images_and_files"; +-constexpr char kHostedAppDataName[] = "hosted_app_data"; +-constexpr char kDownloadHistoryName[] = "download_history"; +-constexpr char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data"; +-constexpr char kCachedImagesAndFilesName[] = "cached_images_and_files"; ++extern constexpr char kHostedAppDataName[] = "hosted_app_data"; ++extern constexpr char kDownloadHistoryName[] = "download_history"; ++extern constexpr char kCookiesAndOtherSiteDataName[] = "cookies_and_other_site_data"; ++extern constexpr char kCachedImagesAndFilesName[] = "cached_images_and_files"; } // namespace policy_data_types - namespace { + // The format of the log message shown in chrome://policy/logs when sync types diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/components/browsing_data/core/browsing_data_policies_utils.h --- a/components/browsing_data/core/browsing_data_policies_utils.h +++ b/components/browsing_data/core/browsing_data_policies_utils.h diff --git a/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch b/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch index 92c9e378..630fd877 100644 --- a/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch +++ b/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch @@ -47,7 +47,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -130,6 +130,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting +@@ -164,6 +164,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting mSnackbarManager.showSnackbar(mSnackbar); } @@ -127,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java -@@ -249,6 +249,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -247,6 +247,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -145,7 +145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8144,6 +8144,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -8404,6 +8404,11 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kElasticOverscroll)}, #endif @@ -172,7 +172,7 @@ diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/con diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2019,6 +2019,10 @@ const char kMoveTopToolbarToBottomName[] = "Move top toolbar to bottom"; +@@ -2051,6 +2051,10 @@ const char kMoveTopToolbarToBottomName[] = "Move top toolbar to bottom"; const char kMoveTopToolbarToBottomDescription[] = "Move the top toolbar to the bottom."; @@ -186,7 +186,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1143,6 +1143,9 @@ extern const char kImprovedKeyboardShortcutsDescription[]; +@@ -1162,6 +1162,9 @@ extern const char kImprovedKeyboardShortcutsDescription[]; extern const char kMoveTopToolbarToBottomName[]; extern const char kMoveTopToolbarToBottomDescription[]; @@ -199,7 +199,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -326,6 +326,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -331,6 +331,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kTabDragDropAndroid, &kTabAndLinkDragDropAndroid, &kTabEngagementReportingAndroid, @@ -210,7 +210,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -329,6 +329,8 @@ public abstract class ChromeFeatureList { +@@ -330,6 +330,8 @@ public abstract class ChromeFeatureList { public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -219,16 +219,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; -@@ -594,6 +596,8 @@ public abstract class ChromeFeatureList { +@@ -600,6 +602,8 @@ public abstract class ChromeFeatureList { new CachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false); public static final CachedFlag sMoveTopToolbarToBottom = new CachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); + public static final CachedFlag sShowAlwaysContextMenuOnLinks = + new CachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false); public static final CachedFlag sOmniboxModernizeVisualUpdate = - new CachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, false); + new CachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true); public static final CachedFlag sOptimizationGuidePushNotifications = -@@ -704,6 +708,7 @@ public abstract class ChromeFeatureList { +@@ -723,6 +727,7 @@ public abstract class ChromeFeatureList { sTabStripRedesign, sTabStripStartupRefactoring, sTabletToolbarReordering, @@ -239,7 +239,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1804,6 +1804,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1839,6 +1839,12 @@ Your Google account may have other forms of browsing history like searches and a Move toolbar to bottom @@ -252,7 +252,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -2853,6 +2859,9 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Open in new Chrome tab @@ -265,7 +265,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -26,6 +26,11 @@ found in the LICENSE file. +@@ -30,6 +30,11 @@ found in the LICENSE file. android:summary="@string/page_zoom_always_show_preference_summary" android:title="@string/page_zoom_always_show_preference_title" /> @@ -296,7 +296,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private FontSizePrefs mFontSizePrefs; private FontSizePrefsObserver mFontSizePrefsObserver = new FontSizePrefsObserver() { -@@ -144,6 +146,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -140,6 +142,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled()); mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this); @@ -309,7 +309,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener(preference -> { Intent intent = new Intent(Settings.ACTION_CAPTIONING_SETTINGS); -@@ -206,6 +214,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -213,6 +221,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat } else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) { mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue); mDelegate.requestRestart(getActivity()); @@ -322,7 +322,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java -@@ -33,6 +33,8 @@ public interface AccessibilitySettingsDelegate { +@@ -49,6 +49,8 @@ public interface AccessibilitySettingsDelegate { BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate(); @@ -334,7 +334,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -235,6 +235,10 @@ BASE_FEATURE(kBackgroundResourceFetch, +@@ -241,6 +241,10 @@ BASE_FEATURE(kBackgroundResourceFetch, "BackgroundResourceFetch", base::FEATURE_DISABLED_BY_DEFAULT); @@ -348,7 +348,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -140,6 +140,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackForwardCacheWithKeepaliveRequest); +@@ -143,6 +143,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackForwardCacheWithKeepaliveRequest); BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackgroundResourceFetch); @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third LocalDOMWindow* window = GetDocument().domWindow(); if (!window) { return; -@@ -509,6 +521,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request, +@@ -510,6 +522,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request, /*element=*/this, request.HasUserGesture())); } @@ -402,7 +402,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third Frame* target_frame = frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame; -@@ -552,7 +573,7 @@ void HTMLAnchorElement::SetHovered(bool hovered) { +@@ -553,7 +574,7 @@ void HTMLAnchorElement::SetHovered(bool hovered) { } } @@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third event.SetDefaultHandled(); LocalDOMWindow* window = GetDocument().domWindow(); -@@ -651,12 +672,12 @@ void HTMLAnchorElement::HandleClick(Event& event) { +@@ -652,12 +673,12 @@ void HTMLAnchorElement::HandleClick(Event& event) { } NavigationPolicy navigation_policy = NavigationPolicyFromEvent(&event); @@ -428,7 +428,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third // If Alt is held down it will force a download, however, wait to see if // this is an alt-double-click which should instead select the text of the // link. -@@ -668,7 +689,9 @@ void HTMLAnchorElement::HandleClick(Event& event) { +@@ -669,7 +690,9 @@ void HTMLAnchorElement::HandleClick(Event& event) { frame->GetEventHandler().SetDownloadModifierTaskHandle( std::move(task_handle)); } else { @@ -488,7 +488,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ #include "third_party/blink/renderer/core/paint/timing/paint_timing.h" #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/style/content_data.h" -@@ -757,6 +759,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( +@@ -753,6 +755,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( } } @@ -525,7 +525,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc --- a/third_party/blink/renderer/core/page/context_menu_controller.cc +++ b/third_party/blink/renderer/core/page/context_menu_controller.cc -@@ -228,14 +228,16 @@ void ContextMenuController::DocumentDetached(Document* document) { +@@ -236,14 +236,16 @@ void ContextMenuController::DocumentDetached(Document* document) { } } @@ -545,7 +545,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t mouse_event->SetDefaultHandled(); } -@@ -453,7 +455,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( +@@ -461,7 +463,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( bool ContextMenuController::ShowContextMenu(LocalFrame* frame, const PhysicalOffset& point, WebMenuSourceType source_type, @@ -555,7 +555,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Displaying the context menu in this function is a big hack as we don't // have context, i.e. whether this is being invoked via a script or in // response to user input (Mouse event WM_RBUTTONDOWN, -@@ -476,6 +479,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -484,6 +487,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, if (!result.InnerNodeOrImageMapImage()) return false; @@ -571,7 +571,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Clear any previously set cached results if we are resetting the hit test // result. image_selection_cached_result_ = nullptr; -@@ -829,11 +841,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -837,11 +849,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, data.form_renderer_id = GetFormRendererId(result); data.field_renderer_id = GetFieldRendererId(result); diff --git a/build/patches/00Add-support-to-jxl.patch b/build/patches/00Add-support-to-jxl.patch index ab7c87ce..7ec3e05b 100644 --- a/build/patches/00Add-support-to-jxl.patch +++ b/build/patches/00Add-support-to-jxl.patch @@ -16,9 +16,6 @@ Enabled by default chrome/browser/flag-metadata.json | 5 + chrome/browser/flag_descriptions.cc | 7 + chrome/browser/flag_descriptions.h | 5 + - .../chrome_accept_header_browsertest.cc.rej | 48 ++ - .../network/accept_header_browsertest.cc | 1 + - .../network/accept_header_browsertest.cc.rej | 51 ++ content/common/content_constants_internal.cc | 11 +- content/common/content_constants_internal.h | 3 +- content/public/browser/frame_accept_header.cc | 13 +- @@ -62,10 +59,8 @@ Enabled by default third_party/libjxl/README.chromium | 15 + .../libjxl/gen_headers/jxl/jxl_export.h | 11 + tools/metrics/histograms/enums.xml | 3 +- - 57 files changed, 2110 insertions(+), 17 deletions(-) + 54 files changed, 2010 insertions(+), 17 deletions(-) create mode 100644 build/linux/unbundle/libjxl.gn - create mode 100644 chrome/browser/net/chrome_accept_header_browsertest.cc.rej - create mode 100644 content/browser/network/accept_header_browsertest.cc.rej create mode 100644 third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.cc create mode 100644 third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.h create mode 100644 third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder_test.cc @@ -87,7 +82,7 @@ Enabled by default diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -519,6 +519,10 @@ vars = { +@@ -515,6 +515,10 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -98,7 +93,7 @@ diff --git a/DEPS b/DEPS 'highway_revision': '8f20644eca693cfb74aa795b0006b6779c370e7a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg -@@ -1209,6 +1213,9 @@ deps = { +@@ -1205,6 +1209,9 @@ deps = { 'src/third_party/dawn': Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), @@ -161,20 +156,13 @@ diff --git a/build/linux/unbundle/replace_gn_files.py b/build/linux/unbundle/rep diff --git a/cc/base/devtools_instrumentation.cc b/cc/base/devtools_instrumentation.cc --- a/cc/base/devtools_instrumentation.cc +++ b/cc/base/devtools_instrumentation.cc -@@ -73,6 +73,9 @@ ScopedImageUploadTask::~ScopedImageUploadTask() { +@@ -90,6 +90,12 @@ ScopedImageDecodeTask::~ScopedImageDecodeTask() { auto duration = base::TimeTicks::Now() - start_time_; const char* histogram_name = nullptr; switch (image_type_) { + case ImageType::kJxl: + histogram_name = "Renderer4.ImageUploadTaskDurationUs.Jxl"; + break; - case ImageType::kAvif: - histogram_name = "Renderer4.ImageUploadTaskDurationUs.Avif"; - break; -@@ -122,6 +125,9 @@ ScopedImageDecodeTask::~ScopedImageDecodeTask() { - auto duration = base::TimeTicks::Now() - start_time_; - const char* histogram_name = nullptr; - switch (image_type_) { + case ImageType::kJxl: + histogram_name = "Renderer4.ImageUploadTaskDurationUs.Jxl"; + break; @@ -220,7 +208,7 @@ diff --git a/cc/tiles/image_decode_cache.h b/cc/tiles/image_decode_cache.h diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8656,6 +8656,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -8918,6 +8918,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(download::features::kSmartSuggestionForLargeDownloads)}, #endif // BUILDFLAG(IS_ANDROID) @@ -236,7 +224,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -3043,6 +3043,11 @@ +@@ -3090,6 +3090,11 @@ // This flag is used by web developers to test upcoming javascript features. "expiry_milestone": -1 }, @@ -251,7 +239,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -7605,6 +7605,13 @@ const char kDcheckIsFatalDescription[] = +@@ -7709,6 +7709,13 @@ const char kDcheckIsFatalDescription[] = "rather than crashing. If enabled, DCHECKs will crash the calling process."; #endif // BUILDFLAG(DCHECK_IS_CONFIGURABLE) @@ -268,7 +256,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -4393,6 +4393,11 @@ extern const char kDcheckIsFatalName[]; +@@ -4456,6 +4456,11 @@ extern const char kDcheckIsFatalName[]; extern const char kDcheckIsFatalDescription[]; #endif // BUILDFLAG(DCHECK_IS_CONFIGURABLE) @@ -280,126 +268,6 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio #if BUILDFLAG(ENABLE_CARDBOARD) extern const char kEnableCardboardName[]; extern const char kEnableCardboardDescription[]; -diff --git a/chrome/browser/net/chrome_accept_header_browsertest.cc.rej b/chrome/browser/net/chrome_accept_header_browsertest.cc.rej -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/net/chrome_accept_header_browsertest.cc.rej -@@ -0,0 +1,48 @@ -+diff a/chrome/browser/net/chrome_accept_header_browsertest.cc b/chrome/browser/net/chrome_accept_header_browsertest.cc (rejected hunks) -+@@ -11,18 +11,26 @@ -+ #include "media/media_buildflags.h" -+ #include "net/test/embedded_test_server/http_request.h" -+ #include "third_party/blink/public/common/buildflags.h" -++#include "third_party/blink/public/common/features.h" -+ -+ using ChromeAcceptHeaderTest = InProcessBrowserTest; -+ -+-#if BUILDFLAG(ENABLE_AV1_DECODER) -++#if BUILDFLAG(ENABLE_AV1_DECODER) || BUILDFLAG(ENABLE_JXL_DECODER) -+ namespace { -+ std::string GetOptionalImageCodecs() { -+ std::string result; -++#if BUILDFLAG(ENABLE_JXL_DECODER) -++ if (base::FeatureList::IsEnabled(blink::features::kJXL)) { -++ result.append("image/jxl,"); -++ } -++#endif -++#if BUILDFLAG(ENABLE_AV1_DECODER) -+ result.append("image/avif,"); -++#endif -+ return result; -+ } -+ } // namespace -+-#endif // BUILDFLAG(ENABLE_AV1_DECODER) -++#endif // BUILDFLAG(ENABLE_AV1_DECODER) || BUILDFLAG(ENABLE_JXL_DECODER) -+ -+ IN_PROC_BROWSER_TEST_F(ChromeAcceptHeaderTest, Check) { -+ net::EmbeddedTestServer server(net::EmbeddedTestServer::TYPE_HTTP); -+@@ -55,7 +63,7 @@ -+ std::string expected_plugin_accept_header = -+ "text/html,application/xhtml+xml,application/xml;q=0.9,image/" -+ "webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"; -+-#if BUILDFLAG(ENABLE_AV1_DECODER) -++#if BUILDFLAG(ENABLE_AV1_DECODER) || BUILDFLAG(ENABLE_JXL_DECODER) -+ expected_plugin_accept_header = -+ "text/html,application/xhtml+xml,application/xml;q=0.9," + -+ GetOptionalImageCodecs() + -+@@ -66,7 +74,7 @@ -+ -+ std::string expected_favicon_accept_header = -+ "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"; -+-#if BUILDFLAG(ENABLE_AV1_DECODER) -++#if BUILDFLAG(ENABLE_AV1_DECODER) || BUILDFLAG(ENABLE_JXL_DECODER) -+ expected_favicon_accept_header = -+ GetOptionalImageCodecs() + -+ "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"; -diff --git a/content/browser/network/accept_header_browsertest.cc b/content/browser/network/accept_header_browsertest.cc ---- a/content/browser/network/accept_header_browsertest.cc -+++ b/content/browser/network/accept_header_browsertest.cc -@@ -22,6 +22,7 @@ - #include "net/test/embedded_test_server/http_request.h" - #include "ppapi/buildflags/buildflags.h" - #include "third_party/blink/public/common/buildflags.h" -+#include "third_party/blink/public/common/features.h" - #include "third_party/blink/public/mojom/manifest/manifest.mojom.h" - - #if BUILDFLAG(ENABLE_PPAPI) -diff --git a/content/browser/network/accept_header_browsertest.cc.rej b/content/browser/network/accept_header_browsertest.cc.rej -new file mode 100644 ---- /dev/null -+++ b/content/browser/network/accept_header_browsertest.cc.rej -@@ -0,0 +1,51 @@ -+diff a/content/browser/network/accept_header_browsertest.cc b/content/browser/network/accept_header_browsertest.cc (rejected hunks) -+@@ -71,13 +72,20 @@ -+ return it->second; -+ } -+ -+-#if BUILDFLAG(ENABLE_AV1_DECODER) -++#if BUILDFLAG(ENABLE_AV1_DECODER) || BUILDFLAG(ENABLE_JXL_DECODER) -+ std::string GetOptionalImageCodecs() const { -+ std::string result; -++#if BUILDFLAG(ENABLE_JXL_DECODER) -++ if (base::FeatureList::IsEnabled(blink::features::kJXL)) { -++ result.append("image/jxl,"); -++ } -++#endif -++#if BUILDFLAG(ENABLE_AV1_DECODER) -+ result.append("image/avif,"); -++#endif -+ return result; -+ } -+-#endif // BUILDFLAG(ENABLE_AV1_DECODER) -++#endif // BUILDFLAG(ENABLE_AV1_DECODER) || BUILDFLAG(ENABLE_JXL_DECODER) -+ -+ private: -+ void Monitor(const net::test_server::HttpRequest& request) { -+@@ -113,7 +121,7 @@ -+ std::string expected_main_frame_accept_header = -+ "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp," -+ "image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"; -+-#if BUILDFLAG(ENABLE_AV1_DECODER) -++#if BUILDFLAG(ENABLE_AV1_DECODER) || BUILDFLAG(ENABLE_JXL_DECODER) -+ expected_main_frame_accept_header = -+ "text/html,application/xhtml+xml,application/xml;q=0.9," + -+ GetOptionalImageCodecs() + -+@@ -126,7 +134,7 @@ -+ std::string expected_sub_frame_accept_header = -+ "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp," -+ "image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"; -+-#if BUILDFLAG(ENABLE_AV1_DECODER) -++#if BUILDFLAG(ENABLE_AV1_DECODER) || BUILDFLAG(ENABLE_JXL_DECODER) -+ expected_sub_frame_accept_header = -+ "text/html,application/xhtml+xml,application/xml;q=0.9," + -+ GetOptionalImageCodecs() + -+@@ -144,7 +152,7 @@ -+ // ResourceType::kImage -+ std::string expected_image_accept_header = -+ "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"; -+-#if BUILDFLAG(ENABLE_AV1_DECODER) -++#if BUILDFLAG(ENABLE_AV1_DECODER) || BUILDFLAG(ENABLE_JXL_DECODER) -+ expected_image_accept_header = -+ GetOptionalImageCodecs() + -+ "image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8"; diff --git a/content/common/content_constants_internal.cc b/content/common/content_constants_internal.cc --- a/content/common/content_constants_internal.cc +++ b/content/common/content_constants_internal.cc @@ -514,18 +382,18 @@ diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc diff --git a/third_party/.gitignore b/third_party/.gitignore --- a/third_party/.gitignore +++ b/third_party/.gitignore -@@ -179,6 +179,7 @@ - /libipp/libipp +@@ -97,6 +97,7 @@ + /libgifcodec /libjingle/source - /libjpeg_turbo + /libupnp +#/libjxl/src - /liblouis/src - /libphonenumber/dist - /libprotobuf-mutator/src + /llvm + /llvm-allocated-type + /llvm-bootstrap diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -411,6 +411,9 @@ BASE_FEATURE(kCORSErrorsIssueOnly, +@@ -422,6 +422,9 @@ BASE_FEATURE(kCORSErrorsIssueOnly, "CORSErrorsIssueOnly", base::FEATURE_DISABLED_BY_DEFAULT); @@ -630,7 +498,7 @@ diff --git a/third_party/blink/public/common/BUILD.gn b/third_party/blink/public diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -142,6 +142,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackgroundResourceFetch); +@@ -145,6 +145,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBackgroundResourceFetch); BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kShowAlwaysContextMenuOnLinks); @@ -642,7 +510,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl -@@ -4103,6 +4103,7 @@ domain Emulation +@@ -4133,6 +4133,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -682,7 +550,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent header.Replace(String(type + ","), ""); } return AtomicString(header); -@@ -837,6 +837,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( +@@ -842,6 +842,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum; for (protocol::Emulation::DisabledImageType type : *disabled_types) { if (DisabledImageTypeEnum::Avif == type || @@ -785,9 +653,9 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c #include "third_party/blink/renderer/bindings/core/v8/to_v8_traits.h" #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" #include "third_party/blink/renderer/bindings/core/v8/v8_union_arraybufferallowshared_arraybufferviewallowshared_readablestream.h" -@@ -88,6 +90,9 @@ DEFINE_BINARY_PROTO_FUZZER( - // Request a full GC upon returning. - auto scoped_gc = MakeScopedGarbageCollectionRequest(); +@@ -89,6 +91,9 @@ DEFINE_BINARY_PROTO_FUZZER( + auto scoped_gc = + MakeScopedGarbageCollectionRequest(test_support.GetIsolate()); + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature(features::kJXL); @@ -798,8 +666,8 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1827,6 +1827,15 @@ component("platform") { - ] +@@ -1816,6 +1816,15 @@ component("platform") { + sources += [ "text/hyphenation/hyphenation_null.cc" ] } + if (enable_jxl_decoder) { @@ -814,8 +682,8 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re if (current_cpu == "x86" || current_cpu == "x64") { deps += [ ":blink_x86_avx" ] sources += [ "audio/cpu/x86/delay_sse2.cc" ] -@@ -2264,6 +2273,10 @@ source_set("blink_platform_unittests_sources") { - sources += [ "image-decoders/avif/avif_image_decoder_test.cc" ] +@@ -2232,6 +2241,10 @@ source_set("blink_platform_unittests_sources") { + sources += [ "text/locale_icu_test.cc" ] } + if (enable_jxl_decoder) { @@ -825,7 +693,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re sources += [ "testing/run_all_tests.cc" ] configs += [ -@@ -2306,6 +2319,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2275,6 +2288,7 @@ source_set("blink_platform_unittests_sources") { "//third_party/blink/renderer/platform/scheduler:unit_tests", "//third_party/blink/renderer/platform/wtf", "//third_party/libavif:libavif", @@ -869,7 +737,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.c diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h --- a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h +++ b/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h -@@ -30,8 +30,8 @@ class PLATFORM_EXPORT BitmapImageMetrics { +@@ -29,8 +29,8 @@ class PLATFORM_EXPORT BitmapImageMetrics { kICO = 5, kBMP = 6, kAVIF = 7, @@ -883,14 +751,15 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc --- a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc +++ b/third_party/blink/renderer/platform/image-decoders/image_decoder.cc -@@ -23,12 +23,14 @@ +@@ -23,6 +23,7 @@ #include #include "base/logging.h" +#include "base/feature_list.h" #include "base/numerics/safe_conversions.h" #include "base/sys_byteorder.h" - #include "build/build_config.h" + #include "base/trace_event/trace_event.h" +@@ -30,6 +31,7 @@ #include "media/media_buildflags.h" #include "skia/ext/cicp.h" #include "third_party/blink/public/common/buildflags.h" @@ -920,7 +789,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc #endif return cc::ImageType::kInvalid; } -@@ -192,6 +202,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { +@@ -191,6 +201,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { return "image/avif"; } #endif @@ -933,7 +802,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc return String(); } -@@ -297,6 +313,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( +@@ -296,6 +312,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( decoder = std::make_unique( alpha_option, high_bit_depth_decoding_option, color_behavior, max_decoded_bytes, animation_option); @@ -2397,7 +2266,7 @@ new file mode 100644 diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/blink/tools/commit_stats/git-dirs.txt --- a/third_party/blink/tools/commit_stats/git-dirs.txt +++ b/third_party/blink/tools/commit_stats/git-dirs.txt -@@ -76,6 +76,7 @@ +@@ -75,6 +75,7 @@ ./third_party/angle/third_party/glmark2/src,ANGLE ./third_party/openh264/src,OpenH264 ./third_party/googletest/src,GoogleTest @@ -2408,7 +2277,7 @@ diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/bli diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations -@@ -4744,6 +4744,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -4781,6 +4781,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai # Started failing after rolling new version of check-layout-th.js css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ] @@ -2424,7 +2293,7 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites -@@ -450,6 +450,15 @@ +@@ -447,6 +447,15 @@ "--disable-threaded-compositing", "--disable-threaded-animation"], "expires": "Jul 1, 2023" }, @@ -2839,7 +2708,7 @@ new file mode 100644 diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml -@@ -26394,7 +26394,7 @@ Called by update_debug_scenarios.py.--> +@@ -26495,7 +26495,7 @@ Called by update_debug_scenarios.py.--> @@ -2848,7 +2717,7 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums -@@ -64986,6 +64986,7 @@ from previous Chrome versions. +@@ -65578,6 +65578,7 @@ from previous Chrome versions. diff --git a/build/patches/00Always-open-browser-controls-in-new-tab.patch b/build/patches/00Always-open-browser-controls-in-new-tab.patch index 2f654fa3..f57402ec 100644 --- a/build/patches/00Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/00Always-open-browser-controls-in-new-tab.patch @@ -22,10 +22,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge; import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.tab.TabBrowserControlsConstraintsHelper; - import org.chromium.chrome.browser.tab.state.CriticalPersistedTabData; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.document.TabDelegate; -@@ -204,6 +206,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { + import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +@@ -202,6 +204,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @Override public void onOpenInNewTab(GURL url, Referrer referrer, boolean navigateToTab, @Nullable AdditionalNavigationParams additionalNavigationParams) { @@ -33,7 +33,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM RecordUserAction.record("MobileNewTabOpened"); RecordUserAction.record("LinkOpenedInNewTab"); LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); -@@ -217,6 +220,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -215,6 +218,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @Override public void onOpenInNewTabInGroup(GURL url, Referrer referrer) { diff --git a/build/patches/00Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/00Clear-CORS-Preflight-Cache-on-clearing-data.patch index ad8aba8d..b8817d3f 100644 --- a/build/patches/00Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/00Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1129,6 +1129,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time, +@@ -1126,6 +1126,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time, base::BindOnce(&NetworkContext::OnHttpCacheCleared, base::Unretained(this), std::move(callback)))); diff --git a/build/patches/00Compress-libchrome-to-free-up-some-space.patch b/build/patches/00Compress-libchrome-to-free-up-some-space.patch index 7b4ceb5d..02414353 100644 --- a/build/patches/00Compress-libchrome-to-free-up-some-space.patch +++ b/build/patches/00Compress-libchrome-to-free-up-some-space.patch @@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -640,6 +640,7 @@ template("chrome_common_apk_or_module_tmpl") { +@@ -635,6 +635,7 @@ template("chrome_common_apk_or_module_tmpl") { [ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ] loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ] library_always_compress += [ "libchrome_crashpad_handler.so" ] diff --git a/build/patches/00Cromite-Branding.patch b/build/patches/00Cromite-Branding.patch index 45b4407c..5ef0f3fb 100644 --- a/build/patches/00Cromite-Branding.patch +++ b/build/patches/00Cromite-Branding.patch @@ -83,7 +83,7 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -170,7 +170,7 @@ by a child template that "extends" this file. +@@ -171,7 +171,7 @@ by a child template that "extends" this file. CreateProfilePrefStoreManager( +@@ -285,10 +286,7 @@ std::unique_ptr CreateProfilePrefStoreManager( #endif std::string seed; CHECK(ui::ResourceBundle::HasSharedInstance()); @@ -13158,7 +13158,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc --- a/chrome/browser/profiles/profile_shortcut_manager_win.cc +++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc -@@ -75,7 +75,7 @@ const int kMaxProfileShortcutFileNameLength = 64; +@@ -77,7 +77,7 @@ const int kMaxProfileShortcutFileNameLength = 64; // Incrementing this number will cause profile icons to be regenerated on // profile startup (it should be incremented whenever the product/avatar icons // change, etc). @@ -13186,7 +13186,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -2255,7 +2255,7 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2296,7 +2296,7 @@ Your Google account may have other forms of browsing history like searches and a About Chrome @@ -13207,7 +13207,7 @@ diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc #if BUILDFLAG(IS_CHROMEOS_ASH) const char kChromeOsHelpViaWebUIURL[] = #if BUILDFLAG(GOOGLE_CHROME_BRANDING) -@@ -109,7 +109,7 @@ const char kChromeSearchScheme[] = "chrome-search"; +@@ -111,7 +111,7 @@ const char kChromeSearchScheme[] = "chrome-search"; const char kChromeUIUntrustedNewTabPageUrl[] = "chrome-untrusted://new-tab-page/"; diff --git a/build/patches/00Deprecate-Data-URL-in-SVGUseElement.patch b/build/patches/00Deprecate-Data-URL-in-SVGUseElement.patch index 5cda57e6..effbd42b 100644 --- a/build/patches/00Deprecate-Data-URL-in-SVGUseElement.patch +++ b/build/patches/00Deprecate-Data-URL-in-SVGUseElement.patch @@ -10,8 +10,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3101,8 +3101,8 @@ - base_feature: "none", +@@ -3159,8 +3159,8 @@ + status: "stable", }, { - name: "RemoveDataUrlInSvgUse", diff --git a/build/patches/00Disable-BackForwardCache.patch b/build/patches/00Disable-BackForwardCache.patch index 74565de9..2e55b10a 100644 --- a/build/patches/00Disable-BackForwardCache.patch +++ b/build/patches/00Disable-BackForwardCache.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -98,9 +98,9 @@ BASE_FEATURE(kBackgroundFetch, +@@ -65,9 +65,9 @@ BASE_FEATURE(kBackgroundFetch, base::FEATURE_ENABLED_BY_DEFAULT); // Enable using the BackForwardCache. diff --git a/build/patches/00Disable-Component-Updates.patch b/build/patches/00Disable-Component-Updates.patch index 287d1ebb..da45f4f9 100644 --- a/build/patches/00Disable-Component-Updates.patch +++ b/build/patches/00Disable-Component-Updates.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc --- a/chrome/browser/component_updater/registration.cc +++ b/chrome/browser/component_updater/registration.cc -@@ -100,6 +100,7 @@ +@@ -98,6 +98,7 @@ namespace component_updater { void RegisterComponentsForUpdate() { diff --git a/build/patches/00Disable-Compression-Dictionary-Transport.patch b/build/patches/00Disable-Compression-Dictionary-Transport.patch index 264b35e8..29bbb211 100644 --- a/build/patches/00Disable-Compression-Dictionary-Transport.patch +++ b/build/patches/00Disable-Compression-Dictionary-Transport.patch @@ -10,8 +10,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -691,16 +691,18 @@ - } +@@ -685,16 +685,18 @@ + status: "stable", }, { - name: "CompressionDictionaryTransport", diff --git a/build/patches/00Disable-FirstPartySets-and-StorageAccessAPI.patch b/build/patches/00Disable-FirstPartySets-and-StorageAccessAPI.patch index f4070594..5da4cc25 100644 --- a/build/patches/00Disable-FirstPartySets-and-StorageAccessAPI.patch +++ b/build/patches/00Disable-FirstPartySets-and-StorageAccessAPI.patch @@ -4,32 +4,52 @@ Subject: Disable FirstPartySets and StorageAccessAPI License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - components/privacy_sandbox/privacy_sandbox_prefs.cc | 2 +- - content/public/common/content_features.cc | 6 +++--- - 2 files changed, 4 insertions(+), 4 deletions(-) + components/privacy_sandbox/privacy_sandbox_prefs.cc | 2 +- + components/privacy_sandbox/tracking_protection_prefs.cc | 4 ++-- + content/public/common/content_features.cc | 6 +++--- + 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc --- a/components/privacy_sandbox/privacy_sandbox_prefs.cc +++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc -@@ -58,7 +58,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -55,7 +55,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, false); registry->RegisterBooleanPref( -- prefs::kPrivacySandboxFirstPartySetsEnabled, true, -+ prefs::kPrivacySandboxFirstPartySetsEnabled, false, +- prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, true, ++ prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref(prefs::kPrivacySandboxTopicsConsentGiven, +diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc +--- a/components/privacy_sandbox/tracking_protection_prefs.cc ++++ b/components/privacy_sandbox/tracking_protection_prefs.cc +@@ -27,13 +27,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { + + // Tracking Protection Settings Prefs + registry->RegisterBooleanPref( +- prefs::kBlockAll3pcToggleEnabled, false, ++ prefs::kBlockAll3pcToggleEnabled, false, // with true enables FPS + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterIntegerPref( + prefs::kTrackingProtectionLevel, + static_cast(TrackingProtectionLevel::kStandard), + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); +- registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false); ++ registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false); // with true enables FPS + registry->RegisterBooleanPref( + prefs::kEnableDoNotTrack, false, + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -493,9 +493,9 @@ BASE_FEATURE(kWebIdentityMDocs, +@@ -405,9 +405,9 @@ BASE_FEATURE(kWebIdentityMDocs, base::FEATURE_DISABLED_BY_DEFAULT); // Enables usage of First Party Sets to determine cookie availability. -BASE_FEATURE(kFirstPartySets, - "FirstPartySets", -- base::FEATURE_DISABLED_BY_DEFAULT); +- base::FEATURE_ENABLED_BY_DEFAULT); +BASE_FEATURE(kFirstPartySets, // always + "FirstPartySets", // disabled + base::FEATURE_DISABLED_BY_DEFAULT); // in bromite diff --git a/build/patches/00Disable-GSA-by-default.patch b/build/patches/00Disable-GSA-by-default.patch index 73b459a4..2e47db49 100644 --- a/build/patches/00Disable-GSA-by-default.patch +++ b/build/patches/00Disable-GSA-by-default.patch @@ -13,15 +13,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java -@@ -43,7 +43,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity; +@@ -38,7 +38,6 @@ import org.chromium.chrome.browser.document.ChromeLauncherActivity; import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler; import org.chromium.chrome.browser.externalnav.IntentWithRequestMetadataHandler.RequestMetadata; import org.chromium.chrome.browser.flags.ChromeFeatureList; -import org.chromium.chrome.browser.gsa.GSAState; - import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteControllerProvider; import org.chromium.chrome.browser.profiles.Profile; -@@ -270,8 +269,6 @@ public class IntentHandler { + import org.chromium.chrome.browser.renderer_host.ChromeNavigationUIData; +@@ -264,8 +263,6 @@ public class IntentHandler { private static int sReferrerId; private static String sPendingIncognitoUrl; @@ -30,7 +30,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j private static final String PACKAGE_GMAIL = "com.google.android.gm"; private static final String PACKAGE_PLUS = "com.google.android.apps.plus"; private static final String PACKAGE_HANGOUTS = "com.google.android.talk"; -@@ -491,8 +488,6 @@ public class IntentHandler { +@@ -456,8 +453,6 @@ public class IntentHandler { return ExternalAppId.LINE; } else if (packageName.equals(PACKAGE_WHATSAPP)) { return ExternalAppId.WHATSAPP; @@ -79,7 +79,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -713,8 +713,8 @@ BASE_FEATURE(kContextMenuGoogleLensSearchOptimizations, +@@ -725,8 +725,8 @@ BASE_FEATURE(kContextMenuGoogleLensSearchOptimizations, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kContextMenuSearchWithGoogleLens, @@ -90,7 +90,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse BASE_FEATURE(kContextMenuShopWithGoogleLens, "ContextMenuShopWithGoogleLens", -@@ -799,8 +799,8 @@ BASE_FEATURE(kOfflineIndicatorV2, +@@ -827,8 +827,8 @@ BASE_FEATURE(kOfflineIndicatorV2, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kExperimentsForAgsa, diff --git a/build/patches/00Disable-GetInstalledRelatedApps-API.patch b/build/patches/00Disable-GetInstalledRelatedApps-API.patch index ade8fb76..1d4fe0b8 100644 --- a/build/patches/00Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/00Disable-GetInstalledRelatedApps-API.patch @@ -35,8 +35,8 @@ diff --git a/content/browser/installedapp/installed_app_provider_impl_win.cc b/c diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -587,12 +587,12 @@ BASE_FEATURE(kInnerFrameCompositorSurfaceEviction, - base::FEATURE_ENABLED_BY_DEFAULT); // guard this +@@ -451,12 +451,12 @@ BASE_FEATURE(kGreaseUACH, "GreaseUACH", base::FEATURE_ENABLED_BY_DEFAULT); + BASE_FEATURE(kIdleDetection, "IdleDetection", base::FEATURE_DISABLED_BY_DEFAULT); // Kill switch for the GetInstalledRelatedApps API. -BASE_FEATURE(kInstalledApp, "InstalledApp", base::FEATURE_ENABLED_BY_DEFAULT); @@ -53,7 +53,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2115,9 +2115,9 @@ +@@ -2139,9 +2139,9 @@ status: {"Android": "test", "default": "stable"}, }, { diff --git a/build/patches/00Disable-PartnerCustomizations.patch b/build/patches/00Disable-PartnerCustomizations.patch index 02373a7d..5783c953 100644 --- a/build/patches/00Disable-PartnerCustomizations.patch +++ b/build/patches/00Disable-PartnerCustomizations.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -912,8 +912,8 @@ BASE_FEATURE(kOpaqueOriginForIncomingIntents, +@@ -936,8 +936,8 @@ BASE_FEATURE(kOmniboxWarmRecycledViewPool, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kPartnerCustomizationsUma, diff --git a/build/patches/00Disable-PrivateStateTokens-API.patch b/build/patches/00Disable-PrivateStateTokens-API.patch index 79184e18..e99f6972 100644 --- a/build/patches/00Disable-PrivateStateTokens-API.patch +++ b/build/patches/00Disable-PrivateStateTokens-API.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -175,12 +175,12 @@ BASE_FEATURE(kAttributionReportingCrossAppWeb, // in bromite +@@ -168,12 +168,12 @@ BASE_FEATURE(kAttributionReportingCrossAppWeb, // in bromite // set, and handling their responses, according to the protocol. // (See https://github.com/WICG/trust-token-api.) BASE_FEATURE(kPrivateStateTokens, diff --git a/build/patches/00Disable-SHA1-Server-Signature.patch b/build/patches/00Disable-SHA1-Server-Signature.patch index 616969fb..c2d4318d 100644 --- a/build/patches/00Disable-SHA1-Server-Signature.patch +++ b/build/patches/00Disable-SHA1-Server-Signature.patch @@ -15,7 +15,7 @@ diff --git a/net/base/features.cc b/net/base/features.cc BASE_FEATURE(kSHA1ServerSignature, - "SHA1ServerSignature", -- base::FEATURE_ENABLED_BY_DEFAULT); +- base::FEATURE_DISABLED_BY_DEFAULT); + "SHA1ServerSignature", // disabled + base::FEATURE_DISABLED_BY_DEFAULT); // in bromite diff --git a/build/patches/00Disable-WebGPU.patch b/build/patches/00Disable-WebGPU.patch index c2b5a83e..50b89a04 100644 --- a/build/patches/00Disable-WebGPU.patch +++ b/build/patches/00Disable-WebGPU.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc -@@ -284,7 +284,7 @@ BASE_FEATURE(kEnableDrDcVulkan, +@@ -283,7 +283,7 @@ BASE_FEATURE(kForceGpuMainThreadToNormalPriorityDrDc, // Enable WebGPU on gpu service side only. This is used with origin trial and // enabled by default on supported platforms. #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS_ASH) diff --git a/build/patches/00Disable-prefers-reduced-transparency-media-query.patch b/build/patches/00Disable-prefers-reduced-transparency-media-query.patch index dea74f4d..dbb1ecca 100644 --- a/build/patches/00Disable-prefers-reduced-transparency-media-query.patch +++ b/build/patches/00Disable-prefers-reduced-transparency-media-query.patch @@ -10,7 +10,7 @@ This feature can be used for fingerprinting as it exposes a user preference diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2943,8 +2943,8 @@ +@@ -3003,8 +3003,8 @@ base_feature: "none", }, { diff --git a/build/patches/00Disable-privacy-issues-in-password-manager.patch b/build/patches/00Disable-privacy-issues-in-password-manager.patch index 7ce264e6..b4aa4303 100644 --- a/build/patches/00Disable-privacy-issues-in-password-manager.patch +++ b/build/patches/00Disable-privacy-issues-in-password-manager.patch @@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -445,15 +445,6 @@ by a child template that "extends" this file. +@@ -446,15 +446,6 @@ by a child template that "extends" this file. @@ -49,7 +49,7 @@ diff --git a/chrome/browser/password_manager/generated_password_leak_detection_p diff --git a/components/password_manager/core/browser/affiliation/affiliation_backend.cc b/components/password_manager/core/browser/affiliation/affiliation_backend.cc --- a/components/password_manager/core/browser/affiliation/affiliation_backend.cc +++ b/components/password_manager/core/browser/affiliation/affiliation_backend.cc -@@ -405,6 +405,7 @@ void AffiliationBackend::OnMalformedResponse( +@@ -404,6 +404,7 @@ void AffiliationBackend::OnMalformedResponse( } bool AffiliationBackend::OnCanSendNetworkRequest() { @@ -60,7 +60,7 @@ diff --git a/components/password_manager/core/browser/affiliation/affiliation_ba diff --git a/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc b/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc --- a/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc +++ b/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc -@@ -131,6 +131,10 @@ void AffiliationServiceImpl::Shutdown() { +@@ -127,6 +127,10 @@ void AffiliationServiceImpl::Shutdown() { void AffiliationServiceImpl::PrefetchChangePasswordURLs( const std::vector& urls, base::OnceClosure callback) { @@ -114,7 +114,7 @@ diff --git a/components/password_manager/core/browser/affiliation/facet_manager. diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc --- a/components/password_manager/core/browser/features/password_features.cc +++ b/components/password_manager/core/browser/features/password_features.cc -@@ -68,8 +68,8 @@ BASE_FEATURE(kFillingAcrossGroupedSites, +@@ -61,8 +61,8 @@ BASE_FEATURE(kFillingAcrossGroupedSites, // Enables the experiment for the password manager to only fill on account // selection, rather than autofilling on page load, with highlighting of fields. BASE_FEATURE(kFillOnAccountSelect, @@ -123,9 +123,9 @@ diff --git a/components/password_manager/core/browser/features/password_features + "fill-on-account-select", // always enabled + base::FEATURE_ENABLED_BY_DEFAULT); // by default - #if BUILDFLAG(IS_IOS) - // Enables migration to OSCrypt with a single query to the keychain. -@@ -87,14 +87,14 @@ BASE_FEATURE(kSharedPasswordNotificationUI, + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) + // Enables new confirmation bubble flow if generated password was used in a +@@ -88,14 +88,14 @@ BASE_FEATURE(kSharedPasswordNotificationUI, // Enables password receiving service including incoming password sharing // invitation sync data type. BASE_FEATURE(kPasswordManagerEnableReceiverService, diff --git a/build/patches/00Disable-remote-altsvc-for-h3-connections.patch b/build/patches/00Disable-remote-altsvc-for-h3-connections.patch index a8cb20dd..7d725131 100644 --- a/build/patches/00Disable-remote-altsvc-for-h3-connections.patch +++ b/build/patches/00Disable-remote-altsvc-for-h3-connections.patch @@ -26,7 +26,7 @@ diff --git a/net/http/http_server_properties_manager.cc b/net/http/http_server_p diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stream_factory_job_controller.cc --- a/net/http/http_stream_factory_job_controller.cc +++ b/net/http/http_stream_factory_job_controller.cc -@@ -1236,11 +1236,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal( +@@ -1233,11 +1233,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal( // single user on a multi-user system to hijack the alternate protocol. // These systems also enforce ports <1024 as restricted ports. So don't // allow protocol upgrades to user-controllable ports. @@ -39,7 +39,7 @@ diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stre continue; if (alternative_service_info.protocol() == kProtoHTTP2) { -@@ -1277,8 +1273,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal( +@@ -1274,8 +1270,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal( GURL destination = CreateAltSvcUrl( original_url, alternative_service_info.host_port_pair()); diff --git a/build/patches/00Disable-speechSynthesis-getVoices-API.patch b/build/patches/00Disable-speechSynthesis-getVoices-API.patch index 30aa713f..3d98a38e 100644 --- a/build/patches/00Disable-speechSynthesis-getVoices-API.patch +++ b/build/patches/00Disable-speechSynthesis-getVoices-API.patch @@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7675,6 +7675,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7944,6 +7944,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kFileSystemObserverDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kFileSystemObserver)}, @@ -90,7 +90,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -890,7 +890,7 @@ const base::FeatureParam kMediaFoundationClearKeyCdmPathForTesting{ +@@ -915,7 +915,7 @@ const base::FeatureParam kMediaFoundationClearKeyCdmPathForTesting{ #endif // BUILDFLAG(IS_WIN) // Enables the Live Caption feature on supported devices. @@ -99,7 +99,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc // Controls whether a "Share this tab instead" button should be shown for // getDisplayMedia captures. Note: This flag does not control if the "Share this -@@ -937,9 +937,9 @@ BASE_FEATURE(kLiveCaptionRightClick, +@@ -974,9 +974,9 @@ BASE_FEATURE(kLiveCaptionRightClick, base::FEATURE_DISABLED_BY_DEFAULT); // Enable or disable Live Caption support for WebAudio. @@ -115,7 +115,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -659,6 +659,10 @@ BASE_FEATURE(kDirectCompositorThreadIpc, +@@ -653,6 +653,10 @@ BASE_FEATURE(kDirectCompositorThreadIpc, "DirectCompositorThreadIpc", base::FEATURE_DISABLED_BY_DEFAULT); @@ -129,7 +129,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -332,6 +332,8 @@ extern const base::FeatureParam kCostReductionOfMultiplexedRequests; +@@ -330,6 +330,8 @@ extern const base::FeatureParam kCostReductionOfMultiplexedRequests; // hopping through the IO thread first. BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDirectCompositorThreadIpc); diff --git a/build/patches/00Disable-visited-pseudo-class.patch b/build/patches/00Disable-visited-pseudo-class.patch index 33135371..c24783d2 100644 --- a/build/patches/00Disable-visited-pseudo-class.patch +++ b/build/patches/00Disable-visited-pseudo-class.patch @@ -54,7 +54,7 @@ diff --git a/components/visitedlink/browser/visitedlink_writer.cc b/components/v diff --git a/components/visitedlink/common/visitedlink_common.cc b/components/visitedlink/common/visitedlink_common.cc --- a/components/visitedlink/common/visitedlink_common.cc +++ b/components/visitedlink/common/visitedlink_common.cc -@@ -43,6 +43,7 @@ bool VisitedLinkCommon::IsVisited(const GURL& url) const { +@@ -41,6 +41,7 @@ bool VisitedLinkCommon::IsVisited(const GURL& url) const { } bool VisitedLinkCommon::IsVisited(Fingerprint fingerprint) const { diff --git a/build/patches/00Disallowing-MIDI-permission-by-default.patch b/build/patches/00Disallowing-MIDI-permission-by-default.patch index e17f9538..e884b62f 100644 --- a/build/patches/00Disallowing-MIDI-permission-by-default.patch +++ b/build/patches/00Disallowing-MIDI-permission-by-default.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -164,7 +164,7 @@ BASE_FEATURE(kWindowManagementPermissionAlias, +@@ -169,7 +169,7 @@ BASE_FEATURE(kWindowPlacementPermissionAlias, // Enables disallowing MIDI permission by default. BASE_FEATURE(kBlockMidiByDefault, "BlockMidiByDefault", diff --git a/build/patches/00Enable-Android-Dynamic-Performance-Framework.patch b/build/patches/00Enable-Android-Dynamic-Performance-Framework.patch index 05d94733..6d881230 100644 --- a/build/patches/00Enable-Android-Dynamic-Performance-Framework.patch +++ b/build/patches/00Enable-Android-Dynamic-Performance-Framework.patch @@ -11,10 +11,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/version.gni b/chrome/version.gni --- a/chrome/version.gni +++ b/chrome/version.gni -@@ -68,7 +68,7 @@ if (is_mac) { - _version_dictionary_template += "trichrome_auto_64_32_version_code = \"@TRICHROME_AUTO_64_32_VERSION_CODE@\" " - _version_dictionary_template += +@@ -75,7 +75,7 @@ if (is_mac) { "trichrome_64_version_code = \"@TRICHROME_64_VERSION_CODE@\" " + _version_dictionary_template += + "trichrome_auto_64_version_code = \"@TRICHROME_AUTO_64_VERSION_CODE@\" " - if (target_cpu == "arm64") { + if (target_cpu == "arm64" || target_cpu == "x64") { _version_dictionary_template += "trichrome_64_32_high_version_code = \"@TRICHROME_64_32_HIGH_VERSION_CODE@\" " @@ -23,7 +23,7 @@ diff --git a/chrome/version.gni b/chrome/version.gni diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc --- a/components/viz/common/features.cc +++ b/components/viz/common/features.cc -@@ -298,9 +298,10 @@ const base::FeatureParam kADPFMidFrameBoostDurationMultiplier{ +@@ -291,9 +291,10 @@ const base::FeatureParam kADPFMidFrameBoostDurationMultiplier{ // If enabled, Chrome includes the Renderer Main thread(s) into the // ADPF(Android Dynamic Performance Framework) hint session. diff --git a/build/patches/00Enable-Document-Open-Inheritance-Removal.patch b/build/patches/00Enable-Document-Open-Inheritance-Removal.patch index 48f881a8..2ef266a3 100644 --- a/build/patches/00Enable-Document-Open-Inheritance-Removal.patch +++ b/build/patches/00Enable-Document-Open-Inheritance-Removal.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -3420,70 +3420,6 @@ void Document::open(LocalDOMWindow* entered_window, +@@ -3425,70 +3425,6 @@ void Document::open(LocalDOMWindow* entered_window, // https://chromestatus.com/metrics/feature/timeline/popularity/4375 CountUse(WebFeature::kDocumentOpenMutateSandbox); } @@ -85,7 +85,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1438,7 +1438,6 @@ +@@ -1441,7 +1441,6 @@ { name: "DocumentOpenSandboxInheritanceRemoval", status: "stable", diff --git a/build/patches/00Enable-ImprovedBookmarks-by-default.patch b/build/patches/00Enable-ImprovedBookmarks-by-default.patch index b0341d06..d1633a0f 100644 --- a/build/patches/00Enable-ImprovedBookmarks-by-default.patch +++ b/build/patches/00Enable-ImprovedBookmarks-by-default.patch @@ -60,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiPrefs.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiPrefs.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiPrefs.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUiPrefs.java -@@ -18,7 +18,7 @@ import java.lang.annotation.RetentionPolicy; +@@ -21,7 +21,7 @@ import java.lang.annotation.RetentionPolicy; */ public class BookmarkUiPrefs { private static final @BookmarkRowDisplayPref int INITIAL_BOOKMARK_ROW_DISPLAY_PREF = @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -505,7 +505,7 @@ BASE_FEATURE(kAndroidSearchEngineChoiceNotification, +@@ -509,7 +509,7 @@ BASE_FEATURE(kAndroidSearchEngineChoiceNotification, BASE_FEATURE(kAndroidImprovedBookmarks, "AndroidImprovedBookmarks", diff --git a/build/patches/00Evict-the-entire-FrameTree-like-desktop.patch b/build/patches/00Evict-the-entire-FrameTree-like-desktop.patch index e8ead9ed..4c5893b5 100644 --- a/build/patches/00Evict-the-entire-FrameTree-like-desktop.patch +++ b/build/patches/00Evict-the-entire-FrameTree-like-desktop.patch @@ -4,8 +4,8 @@ Subject: Evict the entire FrameTree like desktop License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - components/viz/common/features.cc | 2 +- - content/public/common/content_features.cc | 4 ++-- + components/viz/common/features.cc | 2 +- + content/common/features.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc @@ -20,19 +20,19 @@ diff --git a/components/viz/common/features.cc b/components/viz/common/features. // If enabled, CompositorFrameSinkClient::OnBeginFrame is also treated as the // DidReceiveCompositorFrameAck. Both in providing the Ack for the previous -diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc ---- a/content/public/common/content_features.cc -+++ b/content/public/common/content_features.cc -@@ -583,8 +583,8 @@ BASE_FEATURE(kInMemoryCodeCache, +diff --git a/content/common/features.cc b/content/common/features.cc +--- a/content/common/features.cc ++++ b/content/common/features.cc +@@ -241,8 +241,8 @@ BASE_FEATURE(kInMemoryCodeCache, // frames. Otherwise only toplevel frames and OOPIF are handled, and other // cases, e.g. PDF tiles are ignored. See https://crbug.com/1360351 for details. BASE_FEATURE(kInnerFrameCompositorSurfaceEviction, - "InnerFrameCompositorSurfaceEviction", - base::FEATURE_ENABLED_BY_DEFAULT); -+ "InnerFrameCompositorSurfaceEviction", // guard this -+ base::FEATURE_ENABLED_BY_DEFAULT); // guard this ++ "InnerFrameCompositorSurfaceEviction", // guard this ++ base::FEATURE_ENABLED_BY_DEFAULT); // guard this - // Kill switch for the GetInstalledRelatedApps API. - BASE_FEATURE(kInstalledApp, "InstalledApp", base::FEATURE_ENABLED_BY_DEFAULT); + // Enable IOSurface based screen capturer. + #if BUILDFLAG(IS_MAC) -- 2.25.1 diff --git a/build/patches/00Fix-eyeo-Browser-Ad-filtering-patches.patch b/build/patches/00Fix-eyeo-Browser-Ad-filtering-patches.patch deleted file mode 100644 index cd6750f6..00000000 --- a/build/patches/00Fix-eyeo-Browser-Ad-filtering-patches.patch +++ /dev/null @@ -1,129 +0,0 @@ -From: uazo -Date: Wed, 6 Sep 2023 15:25:18 +0000 -Subject: Fix eyeo Browser Ad filtering patches - ---- - chrome/browser/BUILD.gn | 4 ---- - chrome/browser/client_hints/client_hints_browsertest.cc | 7 +------ - chrome/browser/extensions/BUILD.gn | 4 ---- - chrome/browser/preferences/BUILD.gn | 4 ---- - chrome/browser/ui/BUILD.gn | 6 ------ - chrome/browser/ui/tab_helpers.cc | 4 ---- - 6 files changed, 1 insertion(+), 28 deletions(-) - -diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn ---- a/chrome/browser/BUILD.gn -+++ b/chrome/browser/BUILD.gn -@@ -2110,12 +2110,8 @@ static_library("browser") { - "//chrome/common/notifications", - "//chrome/installer/util:with_no_strings", - "//chrome/services/speech/buildflags", --<<<<<<< HEAD --======= -- "//chromeos/components/kiosk", - "//components/adblock/content:browser", - "//components/adblock/core/converter", -->>>>>>> 9402d5c48c0e8... Squashed commits - "//components/assist_ranker", - "//components/autofill/content/browser", - "//components/autofill/core/browser", -diff --git a/chrome/browser/client_hints/client_hints_browsertest.cc b/chrome/browser/client_hints/client_hints_browsertest.cc ---- a/chrome/browser/client_hints/client_hints_browsertest.cc -+++ b/chrome/browser/client_hints/client_hints_browsertest.cc -@@ -655,17 +655,12 @@ class ClientHintsBrowserTest : public policy::PolicyTest { - // Force-enable the ClientHintsFormFactor feature, so that the header is - // represented in the various header counts. - feature_list->InitializeFromCommandLine( --<<<<<<< HEAD -- "UserAgentClientHint,CriticalClientHint,AcceptCHFrame," -- "ClientHintsFormFactor,ClientHintsPrefersReducedTransparency", -- ""); --======= - "UserAgentClientHint,CriticalClientHint,AcceptCHFrame", -+ "ClientHintsFormFactor,ClientHintsPrefersReducedTransparency", - // Disabling AdblockPlus because the async implementation of - // AdblockURLLoaderThrottle::WillStartRequest confuses - // ThirdPartyURLLoaderInterceptor. - "AdblockPlus"); -->>>>>>> 9402d5c48c0e8... Squashed commits - return feature_list; - } - -diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn ---- a/chrome/browser/extensions/BUILD.gn -+++ b/chrome/browser/extensions/BUILD.gn -@@ -834,11 +834,7 @@ static_library("extensions") { - "//chrome/browser/safe_browsing:metrics_collector", - "//chrome/browser/ui/tabs:tab_enums", - "//chrome/browser/web_applications", --<<<<<<< HEAD --======= -- "//chromeos/components/kiosk", - "//components/adblock/content:browser", -->>>>>>> 9402d5c48c0e8... Squashed commits - "//components/cbor:cbor", - "//components/commerce/core:pref_names", - "//components/device_reauth", -diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn ---- a/chrome/browser/preferences/BUILD.gn -+++ b/chrome/browser/preferences/BUILD.gn -@@ -38,12 +38,8 @@ android_library("java") { - # TODO(chouinard,estade): Consider breaking this target up into a different target for each pref file. - java_cpp_strings("java_pref_names_srcjar") { - sources = [ --<<<<<<< HEAD - "//chrome/common/pref_names.h", --======= -- "//chrome/common/pref_names.cc", - "//components/adblock/core/common/adblock_prefs.cc", -->>>>>>> 9402d5c48c0e8... Squashed commits - "//components/autofill/core/common/autofill_prefs.cc", - "//components/commerce/core/pref_names.cc", - "//components/dom_distiller/core/pref_names.cc", -diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn ---- a/chrome/browser/ui/BUILD.gn -+++ b/chrome/browser/ui/BUILD.gn -@@ -449,11 +449,8 @@ static_library("ui") { - "//chrome/browser/storage_access_api", - "//chrome/browser/ui/side_panel:side_panel_enums", - "//chrome/browser/ui/webui:configs", --<<<<<<< HEAD - "//chrome/browser/ui/webui/location_internals:mojo_bindings", --======= - "//chrome/browser/ui/webui/adblock_internals:mojo_bindings", -->>>>>>> 9402d5c48c0e8... Squashed commits - "//chrome/browser/ui/webui/omnibox:mojo_bindings", - "//chrome/browser/ui/webui/segmentation_internals:mojo_bindings", - "//chrome/browser/ui/webui/suggest_internals:mojo_bindings", -@@ -469,11 +466,8 @@ static_library("ui") { - "//components/about_ui", - "//components/access_code_cast/common:metrics", - "//components/account_id", --<<<<<<< HEAD - "//components/autofill/content/browser", --======= - "//components/adblock/content:browser", -->>>>>>> 9402d5c48c0e8... Squashed commits - "//components/autofill/content/browser:risk_proto", - "//components/autofill/core/browser", - "//components/blocked_content", -diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc ---- a/chrome/browser/ui/tab_helpers.cc -+++ b/chrome/browser/ui/tab_helpers.cc -@@ -17,14 +17,10 @@ - #include "base/trace_event/trace_event.h" - #include "build/build_config.h" - #include "build/chromeos_buildflags.h" --<<<<<<< HEAD - #include "chrome/browser/3pcd/heuristics/opener_heuristic_tab_helper.h" --======= --#include "chrome/browser/3pcd_heuristics/opener_heuristic_tab_helper.h" - #include "chrome/browser/adblock/element_hider_factory.h" - #include "chrome/browser/adblock/sitekey_storage_factory.h" - #include "chrome/browser/adblock/subscription_service_factory.h" -->>>>>>> 9402d5c48c0e8... Squashed commits - #include "chrome/browser/bookmarks/bookmark_model_factory.h" - #include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h" - #include "chrome/browser/browser_process.h" --- -2.25.1 diff --git a/build/patches/00Fonts-fingerprinting-mitigation.patch b/build/patches/00Fonts-fingerprinting-mitigation.patch index ded8198e..dd2b4b86 100644 --- a/build/patches/00Fonts-fingerprinting-mitigation.patch +++ b/build/patches/00Fonts-fingerprinting-mitigation.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/browser/about_flags.cc | 5 + chrome/browser/flag_descriptions.cc | 5 + chrome/browser/flag_descriptions.h | 3 + - content/public/common/content_features.cc | 4 +- + content/common/features.cc | 8 +- skia/ext/skia_utils_win.cc | 20 ++ skia/ext/skia_utils_win.h | 3 + third_party/blink/common/features.cc | 6 +- @@ -28,13 +28,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../fonts/skia/bromite_allowed_fonts.h | 270 ++++++++++++++++++ .../platform/fonts/skia/font_cache_skia.cc | 44 ++- .../platform/fonts/win/font_cache_skia_win.cc | 7 +- - 13 files changed, 361 insertions(+), 12 deletions(-) + 13 files changed, 363 insertions(+), 14 deletions(-) create mode 100644 third_party/blink/renderer/platform/fonts/skia/bromite_allowed_fonts.h diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -10130,6 +10130,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -10403,6 +10403,11 @@ const FeatureEntry kFeatureEntries[] = { kClipboardMaximumAgeVariations, "ClipboardMaximumAge")}, @@ -49,7 +49,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -157,6 +157,11 @@ const char kClipboardUnsanitizedContentDescription[] = +@@ -159,6 +159,11 @@ const char kClipboardUnsanitizedContentDescription[] = "Allows reading/writing unsanitized content from/to the clipboard. " "Currently, it is only applicable to HTML format. See crbug.com/1268679."; @@ -64,7 +64,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -127,6 +127,9 @@ extern const char kClickToCallDescription[]; +@@ -131,6 +131,9 @@ extern const char kClickToCallDescription[]; extern const char kClipboardUnsanitizedContentName[]; extern const char kClipboardUnsanitizedContentDescription[]; @@ -74,27 +74,31 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kClipboardMaximumAgeName[]; extern const char kClipboardMaximumAgeDescription[]; -diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc ---- a/content/public/common/content_features.cc -+++ b/content/public/common/content_features.cc -@@ -28,7 +28,7 @@ BASE_FEATURE(kAllowContentInitiatedDataUrlNavigations, +diff --git a/content/common/features.cc b/content/common/features.cc +--- a/content/common/features.cc ++++ b/content/common/features.cc +@@ -21,8 +21,8 @@ BASE_FEATURE(kAllowContentInitiatedDataUrlNavigations, + // Allows Blink to request fonts from the Android Downloadable Fonts API through // the service implemented on the Java side. BASE_FEATURE(kAndroidDownloadableFontsMatching, - "AndroidDownloadableFontsMatching", +- "AndroidDownloadableFontsMatching", - base::FEATURE_ENABLED_BY_DEFAULT); -+ base::FEATURE_DISABLED_BY_DEFAULT); ++ "AndroidDownloadableFontsMatching", // disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // by default - #if BUILDFLAG(IS_ANDROID) - // Use chromim's implementation of selection magnifier built using surface -@@ -520,7 +520,7 @@ const base::FeatureParam + // The following two features, when enabled, result in the browser process only + // asking the renderer process to run beforeunload handlers if it knows such +@@ -195,8 +195,8 @@ const base::FeatureParam kFledgeLimitNumAuctionsParam{ + // font name or postscript name. Rolling out behind a flag, as enabling this // enables a font indexer on Android which we need to test in the field first. BASE_FEATURE(kFontSrcLocalMatching, - "FontSrcLocalMatching", +- "FontSrcLocalMatching", - base::FEATURE_ENABLED_BY_DEFAULT); -+ base::FEATURE_DISABLED_BY_DEFAULT); ++ "FontSrcLocalMatching", // disable ++ base::FEATURE_DISABLED_BY_DEFAULT); // by default - #if !BUILDFLAG(IS_ANDROID) // Feature controlling whether or not memory pressure signals will be forwarded + // to the GPU process. diff --git a/skia/ext/skia_utils_win.cc b/skia/ext/skia_utils_win.cc --- a/skia/ext/skia_utils_win.cc +++ b/skia/ext/skia_utils_win.cc @@ -157,7 +161,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea BASE_FEATURE(kGainmapHdrImages, "GainmapHdrImages", -@@ -1973,6 +1973,10 @@ BASE_FEATURE(kWebRtcH264WithOpenH264FFmpeg, +@@ -2036,6 +2036,10 @@ BASE_FEATURE(kWebRtcH264WithOpenH264FFmpeg, base::FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(RTC_USE_H264) && BUILDFLAG(ENABLE_FFMPEG_VIDEO_DECODERS) @@ -165,13 +169,13 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea + "FontsFingerprintMitigation", + base::FEATURE_ENABLED_BY_DEFAULT); + - BASE_FEATURE(kWebRtcEncoderAsyncEncode, - "WebRtcEncoderAsyncEncode", - base::FEATURE_ENABLED_BY_DEFAULT); + // Exposes non-standard stats in the WebRTC getStats() API. + BASE_FEATURE(kWebRtcExposeNonStandardStats, + "WebRtc-ExposeNonStandardStats", diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -246,6 +246,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kCompressParkableStrings); +@@ -249,6 +249,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kCompressParkableStrings); BLINK_COMMON_EXPORT extern const base::FeatureParam kMaxDiskDataAllocatorCapacityMB; @@ -184,7 +188,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -731,6 +731,7 @@ component("platform") { +@@ -755,6 +755,7 @@ component("platform") { "fonts/simple_font_data.cc", "fonts/simple_font_data.h", "fonts/skia/font_cache_skia.cc", diff --git a/build/patches/00Keep-Side-Panel-Companion-disabled.patch b/build/patches/00Keep-Side-Panel-Companion-disabled.patch index 1f1600e0..2b08943c 100644 --- a/build/patches/00Keep-Side-Panel-Companion-disabled.patch +++ b/build/patches/00Keep-Side-Panel-Companion-disabled.patch @@ -40,7 +40,7 @@ diff --git a/chrome/browser/companion/core/features.cc b/chrome/browser/companio } // namespace internal // When search companion is enabled, show a context menu item that allows the -@@ -57,6 +57,7 @@ const char kDisableCheckUserPermissionsForCompanion[] = +@@ -65,6 +65,7 @@ const char kDisableCheckUserPermissionsForCompanion[] = const char kForceCompanionPinnedState[] = "force-companion-pinned-state"; bool ShouldOverrideCheckingUserPermissionsForCompanion() { @@ -63,7 +63,7 @@ diff --git a/chrome/browser/ui/side_search/side_search_prefs.cc b/chrome/browser diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -121,7 +121,7 @@ BASE_FEATURE(kResponsiveToolbar, +@@ -122,7 +122,7 @@ BASE_FEATURE(kResponsiveToolbar, // Enables the side search feature for Google Search. Presents recent Google // search results in a browser side panel. diff --git a/build/patches/00Keep-disabled-FetchLaterAPI.patch b/build/patches/00Keep-disabled-FetchLaterAPI.patch index 34009f4c..85045ed4 100644 --- a/build/patches/00Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/00Keep-disabled-FetchLaterAPI.patch @@ -9,7 +9,7 @@ Subject: Keep disabled FetchLaterAPI diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1693,7 +1693,8 @@ +@@ -1700,7 +1700,8 @@ }, { // The Blink runtime-enabled feature name for the API's IDL. diff --git a/build/patches/00Keyboard-protection-flag.patch b/build/patches/00Keyboard-protection-flag.patch index 56793cdf..867471f5 100644 --- a/build/patches/00Keyboard-protection-flag.patch +++ b/build/patches/00Keyboard-protection-flag.patch @@ -23,7 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5157,6 +5157,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5413,6 +5413,9 @@ const FeatureEntry kFeatureEntries[] = { {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, @@ -36,7 +36,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3315,6 +3315,12 @@ const char kSystemKeyboardLockDescription[] = +@@ -3335,6 +3335,12 @@ const char kSystemKeyboardLockDescription[] = "keyboard shortcuts and have the events routed directly to the website " "when in fullscreen mode."; @@ -52,7 +52,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1901,6 +1901,9 @@ extern const char kSuppressToolbarCapturesDescription[]; +@@ -1920,6 +1920,9 @@ extern const char kSuppressToolbarCapturesDescription[]; extern const char kSystemKeyboardLockName[]; extern const char kSystemKeyboardLockDescription[]; @@ -186,7 +186,7 @@ diff --git a/third_party/blink/renderer/core/events/keyboard_event.h b/third_par diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc -@@ -202,6 +202,14 @@ BASE_FEATURE(kSystemKeyboardLock, +@@ -184,6 +184,14 @@ BASE_FEATURE(kSystemKeyboardLock, "SystemKeyboardLock", base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/build/patches/00Lock-Profile-Cookie-Database.patch b/build/patches/00Lock-Profile-Cookie-Database.patch index 13fbc7b4..916e0093 100644 --- a/build/patches/00Lock-Profile-Cookie-Database.patch +++ b/build/patches/00Lock-Profile-Cookie-Database.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc --- a/chrome/browser/browser_features.cc +++ b/chrome/browser/browser_features.cc -@@ -207,8 +207,8 @@ BASE_FEATURE(kAppBoundEncryptionMetrics, +@@ -213,8 +213,8 @@ BASE_FEATURE(kAppBoundEncryptionMetrics, // Enables locking the cookie database for profiles. // TODO(crbug.com/1430226): Remove after fully launched. BASE_FEATURE(kLockProfileCookieDatabase, @@ -18,8 +18,8 @@ diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_feature - base::FEATURE_ENABLED_BY_DEFAULT); + "LockProfileCookieDatabase", // enabled + base::FEATURE_ENABLED_BY_DEFAULT); // by default - #endif - // Enables showing the email of the flex org admin that setup CBCM in the + // Don't call the Win32 API PrefetchVirtualMemory when loading chrome.dll inside + // non-browser processes. This is done by passing flags to these processes. This -- 2.25.1 diff --git a/build/patches/00Log-dangling-attributes-in-some-html-elements.patch b/build/patches/00Log-dangling-attributes-in-some-html-elements.patch index 65af1e82..7c52f15c 100644 --- a/build/patches/00Log-dangling-attributes-in-some-html-elements.patch +++ b/build/patches/00Log-dangling-attributes-in-some-html-elements.patch @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5105,7 +5105,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5361,7 +5361,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWebShareDescription, kOsWin | kOsCrOS | kOsMac, FEATURE_VALUE_TYPE(features::kWebShare)}, #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) @@ -42,7 +42,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4552,6 +4552,14 @@ void Document::ProcessBaseElement() { +@@ -4563,6 +4563,14 @@ void Document::ProcessBaseElement() { KURL base_element_url; if (href) { String stripped_href = StripLeadingAndTrailingHTMLSpaces(*href); @@ -57,7 +57,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (!stripped_href.empty()) base_element_url = KURL(FallbackBaseURL(), stripped_href); } -@@ -4570,6 +4578,14 @@ void Document::ProcessBaseElement() { +@@ -4581,6 +4589,14 @@ void Document::ProcessBaseElement() { !GetExecutionContext()->GetSecurityOrigin()->CanRequest( base_element_url)) { UseCounter::Count(*this, WebFeature::kBaseWithCrossOriginHref); @@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink } } -@@ -4589,6 +4605,8 @@ void Document::ProcessBaseElement() { +@@ -4600,6 +4616,8 @@ void Document::ProcessBaseElement() { if (target->Contains('<')) UseCounter::Count(*this, WebFeature::kBaseWithOpenBracketInTarget); base_target_ = *target; @@ -84,7 +84,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -2577,8 +2577,26 @@ void Element::StripScriptingAttributes( +@@ -2574,8 +2574,26 @@ void Element::StripScriptingAttributes( attribute_vector.Shrink(destination); } @@ -116,7 +116,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/r --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h @@ -575,7 +575,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable { - virtual const QualifiedName& SubResourceAttributeName() const; + virtual bool HasLegalLinkAttribute(const QualifiedName&) const; // Only called by the parser immediately after element construction. - void ParserSetAttributes(const Vector&); @@ -254,8 +254,8 @@ diff --git a/third_party/blink/renderer/core/loader/frame_load_request.cc b/thir +#include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/core/fileapi/public_url_manager.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" - #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h" -@@ -134,6 +135,14 @@ const LocalFrameToken* FrameLoadRequest::GetInitiatorFrameToken() const { + #include "third_party/blink/renderer/core/html/forms/html_form_element.h" +@@ -145,6 +146,14 @@ const LocalFrameToken* FrameLoadRequest::GetInitiatorFrameToken() const { const AtomicString& FrameLoadRequest::CleanNavigationTarget( const AtomicString& target) const { if (ContainsNewLineAndLessThan(target)) { @@ -319,7 +319,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1522,8 +1522,8 @@ +@@ -1525,8 +1525,8 @@ // Experiment with preventing some instances of mutation XSS // by escaping "<" and ">" in attribute values. // See: crbug.com/1175016 @@ -330,7 +330,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 }, { name: "EventTimingInteractionCount", -@@ -2263,6 +2263,12 @@ +@@ -2296,6 +2296,12 @@ // Use LongAnimationFrameMonitor to emit longtask entries name: "LongTaskFromLongAnimationFrame" }, diff --git a/build/patches/00Partition-HSTS-cache-by-NAK.patch b/build/patches/00Partition-HSTS-cache-by-NAK.patch index 94191c42..0c6332a5 100644 --- a/build/patches/00Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/00Partition-HSTS-cache-by-NAK.patch @@ -32,7 +32,7 @@ diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/s diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc --- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc +++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc -@@ -395,7 +395,10 @@ void NetInternalsMessageHandler::OnDomainSecurityPolicyDelete( +@@ -396,7 +396,10 @@ void NetInternalsMessageHandler::OnDomainSecurityPolicyDelete( // There cannot be a unicode entry in the HSTS set. return; } @@ -43,7 +43,7 @@ diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/ *domain, base::BindOnce(&IgnoreBoolCallback)); } -@@ -405,7 +408,10 @@ void NetInternalsMessageHandler::OnHSTSQuery(const base::Value::List& list) { +@@ -406,7 +409,10 @@ void NetInternalsMessageHandler::OnHSTSQuery(const base::Value::List& list) { DCHECK(callback_id && domain); AllowJavascript(); @@ -54,7 +54,7 @@ diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/ *domain, base::BindOnce(&NetInternalsMessageHandler::ResolveCallbackWithResult, weak_factory_.GetWeakPtr(), *callback_id)); -@@ -431,8 +437,12 @@ void NetInternalsMessageHandler::OnHSTSAdd(const base::Value::List& list) { +@@ -432,8 +438,12 @@ void NetInternalsMessageHandler::OnHSTSAdd(const base::Value::List& list) { const bool sts_include_subdomains = list[1].GetBool(); base::Time expiry = base::Time::Now() + base::Days(1000); @@ -83,7 +83,7 @@ diff --git a/components/password_manager/core/browser/hsts_query.cc b/components diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc --- a/net/http/transport_security_state.cc +++ b/net/http/transport_security_state.cc -@@ -215,7 +215,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) { +@@ -225,7 +225,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) { // Converts |hostname| from dotted form ("www.google.com") to the form // used in DNS: "\x03www\x06google\x03com", lowercases that, and returns // the result. @@ -92,7 +92,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // We cannot perform the operations as detailed in the spec here as `host` // has already undergone IDN processing before it reached us. Thus, we // lowercase the input (probably redudnant since most input here has been -@@ -236,6 +236,29 @@ std::vector CanonicalizeHost(const std::string& host) { +@@ -246,6 +246,29 @@ std::vector CanonicalizeHost(const std::string& host) { return new_host.value(); } @@ -122,7 +122,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // PreloadResult is the result of resolving a specific name in the preloaded // data. struct PreloadResult { -@@ -327,7 +350,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { +@@ -337,7 +360,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { // Ensure that |search_hostname| is a valid hostname before // processing. @@ -131,7 +131,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ return false; } // Normalize any trailing '.' used for DNS suffix searches. -@@ -394,18 +417,19 @@ TransportSecurityState::TransportSecurityState( +@@ -404,18 +427,19 @@ TransportSecurityState::TransportSecurityState( // Both HSTS and HPKP cause fatal SSL errors, so return true if a // host has either. @@ -154,7 +154,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ dict.Set("should_upgrade_to_ssl", sts_state.ShouldUpgradeToSSL()); dict.Set("host_found_in_hsts_bypass_list", hsts_host_bypass_list_.find(host) != hsts_host_bypass_list_.end()); -@@ -413,13 +437,14 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( +@@ -423,13 +447,14 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( } bool TransportSecurityState::ShouldUpgradeToSSL( @@ -171,7 +171,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ } TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins( -@@ -432,7 +457,7 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins( +@@ -442,7 +467,7 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins( const NetworkAnonymizationKey& network_anonymization_key, std::string* pinning_failure_log) { // Perform pin validation only if the server actually has public key pins. @@ -180,7 +180,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ return PKPStatus::OK; } -@@ -451,9 +476,9 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins( +@@ -461,9 +486,9 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins( return pin_validity; } @@ -192,7 +192,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ } TransportSecurityState::CTRequirementsStatus -@@ -589,12 +614,13 @@ void TransportSecurityState::UpdatePinList( +@@ -557,12 +582,13 @@ void TransportSecurityState::UpdatePinList( } void TransportSecurityState::AddHSTSInternal( @@ -207,7 +207,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return; -@@ -618,14 +644,15 @@ void TransportSecurityState::AddHSTSInternal( +@@ -586,14 +612,15 @@ void TransportSecurityState::AddHSTSInternal( DirtyNotify(); } @@ -225,7 +225,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return; -@@ -711,10 +738,12 @@ TransportSecurityState::CheckPinsAndMaybeSendReport( +@@ -679,10 +706,12 @@ TransportSecurityState::CheckPinsAndMaybeSendReport( return PKPStatus::VIOLATED; } @@ -240,7 +240,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return false; -@@ -791,7 +820,8 @@ void TransportSecurityState::DirtyNotify() { +@@ -759,7 +788,8 @@ void TransportSecurityState::DirtyNotify() { delegate_->StateIsDirty(this); } @@ -250,7 +250,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ const std::string& value) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); -@@ -810,24 +840,26 @@ bool TransportSecurityState::AddHSTSHeader(const std::string& host, +@@ -778,24 +808,26 @@ bool TransportSecurityState::AddHSTSHeader(const std::string& host, upgrade_mode = STSState::MODE_FORCE_HTTPS; } @@ -282,7 +282,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ report_uri); } -@@ -862,7 +894,7 @@ TransportSecurityState::CheckPublicKeyPinsImpl( +@@ -830,7 +862,7 @@ TransportSecurityState::CheckPublicKeyPinsImpl( const NetworkAnonymizationKey& network_anonymization_key, std::string* failure_log) { PKPState pkp_state; @@ -291,7 +291,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // HasPublicKeyPins should have returned true in order for this method to have // been called. -@@ -906,7 +938,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, +@@ -874,7 +906,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, PreloadResult result; if (host_pins_.has_value()) { // Ensure that |host| is a valid hostname before processing. @@ -300,7 +300,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ return false; } // Normalize any trailing '.' used for DNS suffix searches. -@@ -994,21 +1026,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, +@@ -962,21 +994,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, return false; } @@ -331,7 +331,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return false; -@@ -1045,11 +1080,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host, +@@ -1013,11 +1048,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host, return false; } @@ -349,7 +349,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_state.h --- a/net/http/transport_security_state.h +++ b/net/http/transport_security_state.h -@@ -328,8 +328,8 @@ class NET_EXPORT TransportSecurityState { +@@ -323,8 +323,8 @@ class NET_EXPORT TransportSecurityState { // primary public interface; direct access to STS and PKP states is best // left to tests. The caller needs to handle the optional pinning override // when is_issued_by_known_root is false. @@ -360,7 +360,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s const NetLogWithSource& net_log = NetLogWithSource()); PKPStatus CheckPublicKeyPins( const HostPortPair& host_port_pair, -@@ -340,7 +340,7 @@ class NET_EXPORT TransportSecurityState { +@@ -335,7 +335,7 @@ class NET_EXPORT TransportSecurityState { const PublicKeyPinReportStatus report_status, const NetworkAnonymizationKey& network_anonymization_key, std::string* failure_log); @@ -369,7 +369,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns CT_REQUIREMENTS_NOT_MET if a connection violates CT policy // requirements: that is, if a connection to |host|, using the validated -@@ -429,7 +429,7 @@ class NET_EXPORT TransportSecurityState { +@@ -424,7 +424,7 @@ class NET_EXPORT TransportSecurityState { // // If an entry is deleted, the new state will be persisted through // the Delegate (if any). @@ -378,7 +378,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns true and updates |*result| if |host| has dynamic or static // HSTS/HPKP (respectively) state. If multiple entries match |host|, dynamic -@@ -439,8 +439,8 @@ class NET_EXPORT TransportSecurityState { +@@ -434,8 +434,8 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -389,7 +389,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns true and updates |*result| iff |host| has static HSTS/HPKP // (respectively) state. If multiple entries match |host|, the most specific -@@ -454,22 +454,24 @@ class NET_EXPORT TransportSecurityState { +@@ -449,22 +449,24 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -419,7 +419,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s const base::Time& expiry, bool include_subdomains, const HashValueVector& hashes, -@@ -517,7 +519,7 @@ class NET_EXPORT TransportSecurityState { +@@ -512,7 +514,7 @@ class NET_EXPORT TransportSecurityState { typedef ExpiringCache> ReportCache; @@ -428,7 +428,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // IsBuildTimely returns true if the current build is new enough ensure that // built in security information (i.e. HSTS preloading and pinning -@@ -543,11 +545,13 @@ class NET_EXPORT TransportSecurityState { +@@ -538,11 +540,13 @@ class NET_EXPORT TransportSecurityState { // any previous state for the |host|, including static entries. // // The new state for |host| is persisted using the Delegate (if any). @@ -504,7 +504,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque return std::make_unique( request, UpgradeSchemeToCryptographic(url), // Use status code 307 to preserve the method, so POST requests work. -@@ -1076,7 +1076,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { +@@ -1055,7 +1055,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { HttpResponseHeaders* headers = GetResponseHeaders(); std::string value; if (headers->EnumerateHeader(nullptr, "Strict-Transport-Security", &value)) @@ -513,7 +513,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } void URLRequestHttpJob::OnStartCompleted(int result) { -@@ -1146,7 +1146,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { +@@ -1125,7 +1125,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { TransportSecurityState* state = context->transport_security_state(); NotifySSLCertificateError( result, transaction_->GetResponseInfo()->ssl_info, @@ -525,7 +525,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1887,17 +1887,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( +@@ -1884,17 +1884,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( std::move(callback).Run(); } @@ -548,7 +548,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont IsHSTSActiveForHostCallback callback) { net::TransportSecurityState* security_state = url_request_context_->transport_security_state(); -@@ -1907,10 +1909,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, +@@ -1904,10 +1906,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, return; } @@ -561,7 +561,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont GetHSTSStateCallback callback) { base::Value::Dict result; -@@ -1946,10 +1948,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -1943,10 +1945,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, net::TransportSecurityState::STSState dynamic_sts_state; net::TransportSecurityState::PKPState dynamic_pkp_state; bool found_sts_dynamic = transport_security_state->GetDynamicSTSState( @@ -574,7 +574,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont if (found_sts_dynamic) { result.Set("dynamic_upgrade_mode", static_cast(dynamic_sts_state.upgrade_mode)); -@@ -1985,6 +1987,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -1982,6 +1984,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, } void NetworkContext::DeleteDynamicDataForHost( @@ -582,7 +582,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont const std::string& host, DeleteDynamicDataForHostCallback callback) { net::TransportSecurityState* transport_security_state = -@@ -1995,7 +1998,7 @@ void NetworkContext::DeleteDynamicDataForHost( +@@ -1992,7 +1995,7 @@ void NetworkContext::DeleteDynamicDataForHost( } std::move(callback).Run( @@ -591,7 +591,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont } void NetworkContext::EnableStaticKeyPinningForTesting( -@@ -2062,7 +2065,7 @@ void NetworkContext::PreconnectSockets( +@@ -2125,7 +2128,7 @@ void NetworkContext::PreconnectSockets( DCHECK(!require_network_anonymization_key_ || !network_anonymization_key.IsEmpty()); @@ -600,7 +600,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont // |PreconnectSockets| may receive arguments from the renderer, which is not // guaranteed to validate them. -@@ -2882,12 +2885,15 @@ void NetworkContext::OnConnectionError() { +@@ -2945,12 +2948,15 @@ void NetworkContext::OnConnectionError() { std::move(on_connection_close_callback_).Run(this); } @@ -641,7 +641,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& host, DeleteDynamicDataForHostCallback callback) override; void SetCorsOriginAccessListsForOrigin( -@@ -716,7 +718,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -724,7 +726,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext mojo::PendingRemote cookie_observer, net::FirstPartySetMetadata first_party_set_metadata); @@ -654,7 +654,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1509,16 +1509,16 @@ interface NetworkContext { +@@ -1529,16 +1529,16 @@ interface NetworkContext { // Adds explicitly-specified data as if it was processed from an // HSTS header. Used by tests and implementation of chrome://net-internals. @@ -674,7 +674,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw => (mojo_base.mojom.DictionaryValue state); // Sets allowed and blocked origins respectively for the URLLoaderFactory -@@ -1537,7 +1537,7 @@ interface NetworkContext { +@@ -1557,7 +1557,7 @@ interface NetworkContext { // Deletes any dynamic data stored for |host| from the transport // security state. Returns true iff an entry was deleted. // See net::TransportSecurityState::DeleteDynamicDataForHost for more detail. diff --git a/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch index 79465c9f..8c8061d3 100644 --- a/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch @@ -16,18 +16,17 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html net/cookies/cookie_deletion_info.cc | 3 ++- net/cookies/parsed_cookie.h | 7 ++++++- net/extras/sqlite/sqlite_persistent_cookie_store.cc | 10 ++++++++++ - services/network/cookie_settings.cc | 12 ++++++++++-- services/network/restricted_cookie_manager.cc | 3 +++ .../renderer/modules/cookie_store/cookie_init.idl | 2 +- .../renderer/modules/cookie_store/cookie_store.cc | 12 ++++++++++++ .../cookie_store/cookie_store_delete_options.idl | 2 +- ui/webui/webui_allowlist.cc | 1 + - 13 files changed, 58 insertions(+), 28 deletions(-) + 12 files changed, 48 insertions(+), 26 deletions(-) diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -628,14 +628,14 @@ ProfileNetworkContextService::CreateCookieManagerParams( +@@ -613,14 +613,14 @@ ProfileNetworkContextService::CreateCookieManagerParams( // UI to interact with SameSite cookies on accounts.google.com, which is used // for displaying a list of available accounts on the NTP // (chrome://new-tab-page), etc. @@ -49,7 +48,7 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/components/content_settings/core/common/cookie_settings_base.cc --- a/components/content_settings/core/common/cookie_settings_base.cc +++ b/components/content_settings/core/common/cookie_settings_base.cc -@@ -326,7 +326,7 @@ CookieSettingsBase::GetCookieSettingInternal( +@@ -318,7 +318,7 @@ CookieSettingsBase::GetCookieSettingInternal( absl::optional scope; if (block_third) { scope = IsAllowed(setting) @@ -61,8 +60,8 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -268,8 +268,8 @@ BASE_FEATURE(kWaitForFirstPartySetsInit, - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -260,8 +260,8 @@ BASE_FEATURE(kWaitForFirstPartySetsInit, + base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kPartitionedCookies, - "PartitionedCookies", @@ -70,9 +69,9 @@ diff --git a/net/base/features.cc b/net/base/features.cc + "PartitionedCookies", // guard this + base::FEATURE_ENABLED_BY_DEFAULT); // guard this - BASE_FEATURE(kNoncedPartitionedCookies, - "NoncedPartitionedCookies", -@@ -284,8 +284,8 @@ BASE_FEATURE(kStaticKeyPinningEnforcement, + BASE_FEATURE(kBlockTruncatedCookies, + "BlockTruncatedCookies", +@@ -272,8 +272,8 @@ BASE_FEATURE(kStaticKeyPinningEnforcement, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kCookieDomainRejectNonASCII, @@ -83,21 +82,21 @@ diff --git a/net/base/features.cc b/net/base/features.cc // Enables partitioning of third party storage (IndexedDB, CacheStorage, etc.) // by the top level site to reduce fingerprinting. -@@ -491,8 +491,8 @@ BASE_FEATURE(kDigestAuthEnableSecureAlgorithms, +@@ -469,8 +469,8 @@ BASE_FEATURE(kDigestAuthEnableSecureAlgorithms, + // are disabled by default. Partitioned storage will not be allowed if // third-party cookies are disabled due to a specific rule. - // TODO(crbug.com/1468277): Default enable when UI work is complete. BASE_FEATURE(kThirdPartyPartitionedStorageAllowedByDefault, - "ThirdPartyPartitionedStorageAllowedByDefault", -- base::FEATURE_DISABLED_BY_DEFAULT); +- base::FEATURE_ENABLED_BY_DEFAULT); + "ThirdPartyPartitionedStorageAllowedByDefault", // must be + base::FEATURE_DISABLED_BY_DEFAULT); // disabled - BASE_FEATURE(kCookieDeprecationFacilitatedTestingLabels, - "CookieDeprecationFacilitatedTestingLabels", + BASE_FEATURE(kPriorityHeader, + "PriorityHeader", diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc --- a/net/cookies/canonical_cookie.cc +++ b/net/cookies/canonical_cookie.cc -@@ -1468,8 +1468,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const { +@@ -1469,8 +1469,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const { if (IsPartitioned()) { if (CookiePartitionKey::HasNonce(partition_key_)) return true; @@ -106,7 +105,7 @@ diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc } return true; -@@ -1726,15 +1724,7 @@ bool CanonicalCookie::IsCookiePartitionedValid(const GURL& url, +@@ -1727,15 +1725,7 @@ bool CanonicalCookie::IsCookiePartitionedValid(const GURL& url, bool secure, bool is_partitioned, bool partition_has_nonce) { @@ -163,7 +162,7 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc --- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc +++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc -@@ -803,6 +803,16 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { +@@ -814,6 +814,16 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() { if (!restore_old_session_cookies_) DeleteSessionCookiesOnStartup(); @@ -180,42 +179,10 @@ diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sq return true; } -diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc ---- a/services/network/cookie_settings.cc -+++ b/services/network/cookie_settings.cc -@@ -30,6 +30,11 @@ - namespace network { - namespace { - -+bool IsThirdPartyAllowed(const ContentSettingPatternSource& setting) { -+ return setting.primary_pattern.MatchesAllHosts() && -+ !setting.secondary_pattern.MatchesAllHosts(); -+} -+ - const ContentSettingPatternSource* FindMatchingSetting( - const GURL& primary_url, - const GURL& secondary_url, -@@ -185,11 +190,14 @@ net::NetworkDelegate::PrivacySetting CookieSettings::IsPrivacyModeEnabled( - - CookieSettings::ThirdPartyBlockingScope - CookieSettings::GetThirdPartyBlockingScope(const GURL& first_party_url) const { -- // If cookies are allowed for the first-party URL then we allow -+ // If cookies are allowed for the thirdy-party URL then we allow - // partitioned cross-site cookies. -+ // partitioned are the default for all cookies, so we allow all cookies -+ // if the user want so. - if (const ContentSettingPatternSource* match = FindMatchingSetting( - first_party_url, first_party_url, content_settings_); -- !match || match->GetContentSetting() == CONTENT_SETTING_ALLOW) { -+ match && IsThirdPartyAllowed(*match) && -+ match->GetContentSetting() == CONTENT_SETTING_ALLOW) { - return ThirdPartyBlockingScope::kUnpartitionedOnly; - } - return ThirdPartyBlockingScope::kUnpartitionedAndPartitioned; diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc --- a/services/network/restricted_cookie_manager.cc +++ b/services/network/restricted_cookie_manager.cc -@@ -798,6 +798,9 @@ void RestrictedCookieManager::SetCookieFromString( +@@ -808,6 +808,9 @@ void RestrictedCookieManager::SetCookieFromString( std::move(callback).Run(site_for_cookies_ok, top_frame_origin_ok); callback = base::DoNothing(); diff --git a/build/patches/00Remove-GoogleAccountsPrivateApiHost.patch b/build/patches/00Remove-GoogleAccountsPrivateApiHost.patch index 705d32d4..ccd24a96 100644 --- a/build/patches/00Remove-GoogleAccountsPrivateApiHost.patch +++ b/build/patches/00Remove-GoogleAccountsPrivateApiHost.patch @@ -42,7 +42,7 @@ diff --git a/chrome/browser/signin/google_accounts_private_api_util.cc b/chrome/ diff --git a/chrome/browser/trusted_vault/trusted_vault_encryption_keys_tab_helper.cc b/chrome/browser/trusted_vault/trusted_vault_encryption_keys_tab_helper.cc --- a/chrome/browser/trusted_vault/trusted_vault_encryption_keys_tab_helper.cc +++ b/chrome/browser/trusted_vault/trusted_vault_encryption_keys_tab_helper.cc -@@ -56,8 +56,7 @@ class EncryptionKeyApi +@@ -57,8 +57,7 @@ class EncryptionKeyApi trusted_vault_keys, SetEncryptionKeysCallback callback) override { // Extra safeguard. @@ -52,7 +52,7 @@ diff --git a/chrome/browser/trusted_vault/trusted_vault_encryption_keys_tab_help return; } -@@ -90,8 +89,7 @@ class EncryptionKeyApi +@@ -91,8 +90,7 @@ class EncryptionKeyApi int method_type_hint, AddTrustedRecoveryMethodCallback callback) override { // Extra safeguard. diff --git a/build/patches/00Remove-detection-of-captive-portals.patch b/build/patches/00Remove-detection-of-captive-portals.patch index 787ea678..52d9205c 100644 --- a/build/patches/00Remove-detection-of-captive-portals.patch +++ b/build/patches/00Remove-detection-of-captive-portals.patch @@ -10,14 +10,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -432,7 +432,7 @@ void ProfileNetworkContextService::UpdateAdditionalCertificates() { +@@ -411,7 +411,7 @@ void ProfileNetworkContextService::UpdateAdditionalCertificates() { void ProfileNetworkContextService::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { - registry->RegisterBooleanPref( -- embedder_support::kAlternateErrorPagesEnabled, true, -+ embedder_support::kAlternateErrorPagesEnabled, false, - user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled, +- true); ++ false); registry->RegisterBooleanPref(prefs::kQuicAllowed, true); registry->RegisterBooleanPref(prefs::kGloballyScopeHTTPAuthCacheEnabled, + false); -- 2.25.1 diff --git a/build/patches/00Remove-support-for-device-memory-and-cpu-recovery.patch b/build/patches/00Remove-support-for-device-memory-and-cpu-recovery.patch index 1aae7171..0a20178e 100644 --- a/build/patches/00Remove-support-for-device-memory-and-cpu-recovery.patch +++ b/build/patches/00Remove-support-for-device-memory-and-cpu-recovery.patch @@ -120,7 +120,7 @@ diff --git a/third_party/blink/common/device_memory/approximated_device_memory.c diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -1971,8 +1971,8 @@ BASE_FEATURE(kWebFontsCacheAwareTimeoutAdaption, +@@ -2034,8 +2034,8 @@ BASE_FEATURE(kWebFontsCacheAwareTimeoutAdaption, // Controls whether the implementation of the performance.measureMemory // web API uses PerformanceManager or not. BASE_FEATURE(kWebMeasureMemoryViaPerformanceManager, diff --git a/build/patches/00Restore-LastTabStandingTracker.patch b/build/patches/00Restore-LastTabStandingTracker.patch index 9e7b0f4a..05daf670 100644 --- a/build/patches/00Restore-LastTabStandingTracker.patch +++ b/build/patches/00Restore-LastTabStandingTracker.patch @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1925,6 +1925,16 @@ static_library("browser") { +@@ -1970,6 +1970,16 @@ static_library("browser") { ] } @@ -378,7 +378,7 @@ new file mode 100644 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -121,6 +121,7 @@ +@@ -123,6 +123,7 @@ #include "chrome/browser/password_manager/password_reuse_manager_factory.h" #include "chrome/browser/password_manager/password_store_factory.h" #include "chrome/browser/permissions/adaptive_quiet_notification_permission_ui_enabler.h" @@ -386,7 +386,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/permissions/notifications_engagement_service_factory.h" #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h" #include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h" -@@ -894,6 +895,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -921,6 +922,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) OnDeviceTailModelServiceFactory::GetInstance(); #endif @@ -397,7 +397,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -64,6 +64,7 @@ +@@ -63,6 +63,7 @@ #include "chrome/browser/page_load_metrics/page_load_metrics_initialize.h" #include "chrome/browser/password_manager/chrome_password_manager_client.h" #include "chrome/browser/performance_manager/public/user_tuning/user_performance_tuning_manager.h" @@ -405,7 +405,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/permissions/one_time_permissions_tracker_helper.h" #include "chrome/browser/predictors/loading_predictor_factory.h" #include "chrome/browser/predictors/loading_predictor_tab_helper.h" -@@ -388,6 +389,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -396,6 +397,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { HistoryClustersTabHelper::CreateForWebContents(web_contents); HttpsOnlyModeTabHelper::CreateForWebContents(web_contents); webapps::InstallableManager::CreateForWebContents(web_contents); diff --git a/build/patches/00Show-warnings-on-downloads-over-HTTP.patch b/build/patches/00Show-warnings-on-downloads-over-HTTP.patch index a987e031..e9ea2bde 100644 --- a/build/patches/00Show-warnings-on-downloads-over-HTTP.patch +++ b/build/patches/00Show-warnings-on-downloads-over-HTTP.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -1221,9 +1221,9 @@ BASE_FEATURE(kTreatUnsafeDownloadsAsActive, +@@ -1228,9 +1228,9 @@ BASE_FEATURE(kTreatUnsafeDownloadsAsActive, base::FEATURE_ENABLED_BY_DEFAULT); // Show warnings on downloads not delivered over HTTPS. diff --git a/build/patches/00TEMP-Add-a-log-to-track-strange-behavior.patch b/build/patches/00TEMP-Add-a-log-to-track-strange-behavior.patch index 27aba87a..7d1f9cd3 100644 --- a/build/patches/00TEMP-Add-a-log-to-track-strange-behavior.patch +++ b/build/patches/00TEMP-Add-a-log-to-track-strange-behavior.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc -@@ -2982,6 +2982,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, +@@ -2964,6 +2964,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, if (it == active_streams_.end()) { // NOTE: it may just be that the stream was cancelled. LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; diff --git a/build/patches/00WIN-Add-some-prefs-to-secure-preferences.patch b/build/patches/00WIN-Add-some-prefs-to-secure-preferences.patch index 119873ac..d71ad7d6 100644 --- a/build/patches/00WIN-Add-some-prefs-to-secure-preferences.patch +++ b/build/patches/00WIN-Add-some-prefs-to-secure-preferences.patch @@ -9,7 +9,7 @@ Subject: WIN Add some prefs to secure preferences diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc -@@ -117,6 +117,14 @@ bool g_disable_domain_check_for_testing = false; +@@ -121,6 +121,14 @@ bool g_disable_domain_check_for_testing = false; // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a // deprecated tracked preference. const prefs::TrackedPreferenceMetadata kTrackedPrefs[] = { diff --git a/build/patches/00WIN-Disable-TabHoverCard-images.patch b/build/patches/00WIN-Disable-TabHoverCard-images.patch index bf84ed34..55727f00 100644 --- a/build/patches/00WIN-Disable-TabHoverCard-images.patch +++ b/build/patches/00WIN-Disable-TabHoverCard-images.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -212,11 +212,7 @@ BASE_FEATURE(kTabHoverCardImageSettings, +@@ -217,11 +217,7 @@ BASE_FEATURE(kTabHoverCardImageSettings, // https://crbug.com/928954 BASE_FEATURE(kTabHoverCardImages, "TabHoverCardImages", diff --git a/build/patches/00WIN-Disable-sharing-hub.patch b/build/patches/00WIN-Disable-sharing-hub.patch index 340216a5..59928976 100644 --- a/build/patches/00WIN-Disable-sharing-hub.patch +++ b/build/patches/00WIN-Disable-sharing-hub.patch @@ -25,7 +25,7 @@ diff --git a/chrome/browser/sharing_hub/sharing_hub_features.cc b/chrome/browser diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc -@@ -1701,10 +1701,10 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode() { +@@ -1708,10 +1708,10 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode() { command_updater_.UpdateCommandEnabled(IDC_CHROME_WHATS_NEW, show_main_ui); #endif command_updater_.UpdateCommandEnabled(IDC_CONTENT_CONTEXT_SHARING_SUBMENU, @@ -42,7 +42,7 @@ diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc -@@ -1555,6 +1555,7 @@ void SendTabToSelfFromPageAction(Browser* browser) { +@@ -1556,6 +1556,7 @@ void SendTabToSelfFromPageAction(Browser* browser) { } bool CanGenerateQrCode(const Browser* browser) { diff --git a/build/patches/00WIN-Enable-Network-Service-Sandbox-and-CIG.patch b/build/patches/00WIN-Enable-Network-Service-Sandbox-and-CIG.patch index 6313ed16..ad985a1f 100644 --- a/build/patches/00WIN-Enable-Network-Service-Sandbox-and-CIG.patch +++ b/build/patches/00WIN-Enable-Network-Service-Sandbox-and-CIG.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -776,7 +776,7 @@ const char kDEPRECATED_AllowlistedExtensionID[] = "whitelisted-extension-id"; +@@ -774,7 +774,7 @@ const char kDEPRECATED_AllowlistedExtensionID[] = "whitelisted-extension-id"; // https://blogs.windows.com/blog/tag/code-integrity-guard/. BASE_FEATURE(kNetworkServiceCodeIntegrity, "NetworkServiceCodeIntegrity", diff --git a/build/patches/00WIN-Fix-log-to-file.patch b/build/patches/00WIN-Fix-log-to-file.patch index 4f299e23..e8fb8957 100644 --- a/build/patches/00WIN-Fix-log-to-file.patch +++ b/build/patches/00WIN-Fix-log-to-file.patch @@ -13,7 +13,7 @@ Log rotation enabled by default. diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc --- a/chrome/common/logging_chrome.cc +++ b/chrome/common/logging_chrome.cc -@@ -185,7 +185,7 @@ LoggingDestination DetermineLoggingDestination( +@@ -190,7 +190,7 @@ LoggingDestination DetermineLoggingDestination( return kDefaultLoggingMode; } @@ -22,7 +22,7 @@ diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc bool RotateLogFile(const base::FilePath& target_path) { DCHECK(!target_path.empty()); // If the old log file doesn't exist, do nothing. -@@ -230,7 +230,7 @@ bool RotateLogFile(const base::FilePath& target_path) { +@@ -235,7 +235,7 @@ bool RotateLogFile(const base::FilePath& target_path) { return true; } @@ -31,7 +31,7 @@ diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc #if BUILDFLAG(IS_CHROMEOS_ASH) base::FilePath SetUpSymlinkIfNeeded(const base::FilePath& symlink_path, -@@ -392,6 +392,10 @@ void InitChromeLogging(const base::CommandLine& command_line, +@@ -397,6 +397,10 @@ void InitChromeLogging(const base::CommandLine& command_line, // since that will remove the newly created link instead. delete_old_log_file = APPEND_TO_OLD_LOG_FILE; #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -42,7 +42,7 @@ diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc } else { log_locking_state = DONT_LOCK_LOG_FILE; } -@@ -546,7 +550,7 @@ bool DialogsAreSuppressed() { +@@ -551,7 +555,7 @@ bool DialogsAreSuppressed() { return dialogs_are_suppressed_; } @@ -50,7 +50,7 @@ diff --git a/chrome/common/logging_chrome.cc b/chrome/common/logging_chrome.cc +#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) base::FilePath GenerateTimestampedName(const base::FilePath& base_path, base::Time timestamp) { - base::Time::Exploded time_deets; + return base_path.InsertBeforeExtensionASCII( diff --git a/chrome/common/logging_chrome.h b/chrome/common/logging_chrome.h --- a/chrome/common/logging_chrome.h +++ b/chrome/common/logging_chrome.h @@ -80,18 +80,18 @@ diff --git a/chrome/common/logging_chrome.h b/chrome/common/logging_chrome.h diff --git a/content/app/content_main.cc b/content/app/content_main.cc --- a/content/app/content_main.cc +++ b/content/app/content_main.cc -@@ -308,7 +308,11 @@ RunContentProcess(ContentMainParams params, +@@ -311,7 +311,11 @@ RunContentProcess(ContentMainParams params, // Route stdio to parent console (if any) or create one. if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableLogging)) { -- base::RouteStdioToConsole(true); +- base::RouteStdioToConsole(/*create_console_if_not_found*/ true); + std::string logging_destination = + base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kEnableLogging); + if (logging_destination == "stderr") { -+ base::RouteStdioToConsole(true); ++ base::RouteStdioToConsole(/*create_console_if_not_found*/ true); + } - } - #endif - + } else if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kHeadless)) { + // When running in headless mode we want stdio routed however if -- 2.25.1 diff --git a/build/patches/00WIN-enable-pdf-plugin.patch b/build/patches/00WIN-enable-pdf-plugin.patch index 4d9cabcd..602de9c5 100644 --- a/build/patches/00WIN-enable-pdf-plugin.patch +++ b/build/patches/00WIN-enable-pdf-plugin.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -2053,7 +2053,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -2054,7 +2054,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/00Warning-message-for-unsupported-hardware-aes.patch b/build/patches/00Warning-message-for-unsupported-hardware-aes.patch index e927b385..3cf27052 100644 --- a/build/patches/00Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/00Warning-message-for-unsupported-hardware-aes.patch @@ -58,7 +58,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn "//headless:headless_non_renderer", "//headless:headless_shell_browser_lib", "//net:net_resources", -@@ -1709,6 +1710,8 @@ if (is_android) { +@@ -1705,6 +1706,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", @@ -80,7 +80,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #if BUILDFLAG(IS_WIN) #include -@@ -1115,6 +1118,13 @@ absl::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1133,6 +1136,13 @@ absl::optional ChromeMainDelegate::BasicStartupComplete() { return chrome::RESULT_CODE_INVALID_SANDBOX_STATE; #endif @@ -97,7 +97,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -7035,6 +7035,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7051,6 +7051,10 @@ Keep your key file in a safe place. You will need it to create new versions of y You are using an unsupported feature flag: $1SignedHTTPExchange. Stability and security will suffer. @@ -111,7 +111,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8152,6 +8152,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -8412,6 +8412,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kViewportSegmentsDescription, kOsAll, FEATURE_VALUE_TYPE(features::kViewportSegments)}, @@ -125,7 +125,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -888,6 +888,10 @@ const char kViewportSegmentsDescription[] = +@@ -892,6 +892,10 @@ const char kViewportSegmentsDescription[] = "Enable the viewport segment API, giving information about the logical " "segments of the device (dual screen and foldable devices)"; @@ -139,7 +139,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -635,6 +635,9 @@ extern const char kDeviceForceScheduledRebootDescription[]; +@@ -641,6 +641,9 @@ extern const char kDeviceForceScheduledRebootDescription[]; extern const char kDevicePostureName[]; extern const char kDevicePostureDescription[]; @@ -152,7 +152,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc --- a/chrome/browser/ui/startup/bad_flags_prompt.cc +++ b/chrome/browser/ui/startup/bad_flags_prompt.cc -@@ -231,6 +231,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) { +@@ -239,6 +239,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) { return; } } @@ -171,7 +171,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3493,6 +3493,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3489,6 +3489,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kLacrosUseChromeosProtectedAv1, #endif switches::kDesktopModeViewportMetaEnabled, @@ -182,7 +182,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -778,6 +778,11 @@ BASE_FEATURE(kNoStatePrefetchHoldback, +@@ -600,6 +600,11 @@ BASE_FEATURE(kNoStatePrefetchHoldback, "NoStatePrefetchHoldback", base::FEATURE_DISABLED_BY_DEFAULT); @@ -197,7 +197,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -176,6 +176,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kNetworkServiceInProcess); +@@ -155,6 +155,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kNetworkServiceInProcess); CONTENT_EXPORT BASE_DECLARE_FEATURE(kNotificationContentImage); CONTENT_EXPORT BASE_DECLARE_FEATURE(kNotificationTriggers); CONTENT_EXPORT BASE_DECLARE_FEATURE(kNoStatePrefetchHoldback); diff --git a/build/patches/00add-browser-policy.patch b/build/patches/00add-browser-policy.patch index 17785437..b91fa2c2 100644 --- a/build/patches/00add-browser-policy.patch +++ b/build/patches/00add-browser-policy.patch @@ -118,9 +118,9 @@ diff --git a/base/win/win_util.cc b/base/win/win_util.cc diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -72,9 +72,7 @@ by a child template that "extends" this file. - +@@ -73,9 +73,7 @@ by a child template that "extends" this file. + - @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -85,7 +83,6 @@ by a child template that "extends" this file. +@@ -86,7 +84,6 @@ by a child template that "extends" this file. @@ -136,7 +136,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -129,7 +126,6 @@ by a child template that "extends" this file. +@@ -130,7 +127,6 @@ by a child template that "extends" this file. @@ -203,10 +203,10 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2032,9 +2032,9 @@ bool AreFuturePoliciesEnabledByDefault() { - // Enable future policies for branded browser tests. - if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) +@@ -2046,9 +2046,9 @@ bool AreFuturePoliciesEnabledByDefault() { + if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; + } - version_info::Channel channel = chrome::GetChannel(); - return channel != version_info::Channel::STABLE && - channel != version_info::Channel::BETA; @@ -271,7 +271,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign } PrefService* ChromeSigninClient::GetPrefs() { return profile_->GetPrefs(); } -@@ -234,6 +236,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { +@@ -242,6 +244,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { } void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { @@ -431,7 +431,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc --- a/components/commerce/core/commerce_feature_list.cc +++ b/components/commerce/core/commerce_feature_list.cc -@@ -160,8 +160,8 @@ BASE_FEATURE(kCommercePriceTrackingChipExperiment, +@@ -159,8 +159,8 @@ BASE_FEATURE(kCommercePriceTrackingChipExperiment, #if BUILDFLAG(IS_ANDROID) BASE_FEATURE(kCommercePriceTrackingRegionLaunched, @@ -442,7 +442,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm #else BASE_FEATURE(kCommercePriceTrackingRegionLaunched, "CommercePriceTrackingRegionLaunched", -@@ -207,8 +207,8 @@ BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT); +@@ -227,8 +227,8 @@ BASE_FEATURE(kShoppingList, "ShoppingList", base::FEATURE_DISABLED_BY_DEFAULT); #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || \ BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) BASE_FEATURE(kShoppingListRegionLaunched, @@ -453,7 +453,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm #else BASE_FEATURE(kShoppingListRegionLaunched, "ShoppingListRegionLaunched", -@@ -257,8 +257,8 @@ BASE_FEATURE(kCommerceHintAndroid, +@@ -277,8 +277,8 @@ BASE_FEATURE(kCommerceHintAndroid, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kMerchantWidePromotion, @@ -467,7 +467,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm diff --git a/components/policy/core/browser/browser_policy_connector.cc b/components/policy/core/browser/browser_policy_connector.cc --- a/components/policy/core/browser/browser_policy_connector.cc +++ b/components/policy/core/browser/browser_policy_connector.cc -@@ -125,6 +125,9 @@ void BrowserPolicyConnector::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -140,6 +140,9 @@ void BrowserPolicyConnector::RegisterPrefs(PrefRegistrySimple* registry) { CloudPolicyRefreshScheduler::kDefaultRefreshDelayMs); registry->RegisterBooleanPref( policy_prefs::kCloudManagementEnrollmentMandatory, false); @@ -480,7 +480,7 @@ diff --git a/components/policy/core/browser/browser_policy_connector.cc b/compon diff --git a/components/policy/core/common/command_line_policy_provider.cc b/components/policy/core/common/command_line_policy_provider.cc --- a/components/policy/core/common/command_line_policy_provider.cc +++ b/components/policy/core/common/command_line_policy_provider.cc -@@ -22,6 +22,9 @@ std::unique_ptr +@@ -23,6 +23,9 @@ std::unique_ptr CommandLinePolicyProvider::CreateIfAllowed( const base::CommandLine& command_line, version_info::Channel channel) { @@ -690,9 +690,9 @@ diff --git a/components/policy/core/common/policy_service_impl.cc b/components/p diff --git a/components/policy/core/common/policy_switches.cc b/components/policy/core/common/policy_switches.cc --- a/components/policy/core/common/policy_switches.cc +++ b/components/policy/core/common/policy_switches.cc -@@ -20,6 +20,8 @@ const char kEncryptedReportingUrl[] = "encrypted-reporting-url"; - // Set policy value by command line. - const char kChromePolicy[] = "policy"; +@@ -24,6 +24,8 @@ const char kChromePolicy[] = "policy"; + // (go/crosman-file-storage-server) to upload log and support packet files. + const char kFileStorageServerUploadUrl[] = "file-storage-server-upload-url"; +const char kForceDisabledPolicies[] = "force-disable-policies"; + @@ -702,10 +702,10 @@ diff --git a/components/policy/core/common/policy_switches.cc b/components/polic diff --git a/components/policy/core/common/policy_switches.h b/components/policy/core/common/policy_switches.h --- a/components/policy/core/common/policy_switches.h +++ b/components/policy/core/common/policy_switches.h -@@ -18,6 +18,7 @@ extern const char kRealtimeReportingUrl[]; - extern const char kEncryptedReportingUrl[]; +@@ -19,6 +19,7 @@ extern const char kEncryptedReportingUrl[]; extern const char kChromePolicy[]; extern const char kSecureConnectApiUrl[]; + extern const char kFileStorageServerUploadUrl[]; +extern const char kForceDisabledPolicies[]; #if BUILDFLAG(IS_CHROMEOS_ASH) extern const char kDisablePolicyKeyVerification[]; @@ -786,7 +786,7 @@ diff --git a/components/policy/resources/webui/policy_row.ts b/components/policy diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp --- a/components/policy_strings.grdp +++ b/components/policy_strings.grdp -@@ -585,8 +585,8 @@ Additional details: +@@ -588,8 +588,8 @@ Additional details: Default @@ -800,7 +800,7 @@ diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc --- a/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc +++ b/components/signin/internal/identity_manager/gaia_cookie_manager_service.cc -@@ -494,6 +494,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -469,6 +469,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) { } void GaiaCookieManagerService::InitCookieListener() { @@ -809,7 +809,7 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser DCHECK(!cookie_listener_receiver_.is_bound()); network::mojom::CookieManager* cookie_manager = -@@ -1111,6 +1113,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished( +@@ -891,6 +893,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished( } void GaiaCookieManagerService::HandleNextRequest() { @@ -821,7 +821,7 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc --- a/google_apis/gaia/gaia_auth_fetcher.cc +++ b/google_apis/gaia/gaia_auth_fetcher.cc -@@ -607,6 +607,7 @@ void GaiaAuthFetcher::StartListAccounts() { +@@ -482,6 +482,7 @@ void GaiaAuthFetcher::StartListAccounts() { } } })"); diff --git a/build/patches/00do-not-block-build-incompatible-profiles.patch b/build/patches/00do-not-block-build-incompatible-profiles.patch index bf7f95a1..a7e137d7 100644 --- a/build/patches/00do-not-block-build-incompatible-profiles.patch +++ b/build/patches/00do-not-block-build-incompatible-profiles.patch @@ -4,25 +4,13 @@ Subject: Do not block the build for incompatible profiles License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .gitignore | 1 - v8/BUILD.gn | 2 +- - 2 files changed, 1 insertion(+), 2 deletions(-) + 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/.gitignore b/.gitignore ---- a/.gitignore -+++ b/.gitignore -@@ -347,7 +347,6 @@ vs-chromium-project.txt - /ui/surface/surface.xml - /ui/surface/surface_gpu_tests.xml - /ui/webui/internal --/v8 - /webkit/data - /webpagereplay_logs/ - /x86-generic_out/ diff --git a/v8/BUILD.gn b/v8/BUILD.gn --- a/v8/BUILD.gn +++ b/v8/BUILD.gn -@@ -2372,7 +2372,7 @@ template("run_mksnapshot") { +@@ -2369,7 +2369,7 @@ template("run_mksnapshot") { # Replace this with --warn-about-builtin-profile-data to see the full # list of builtins with incompatible profiles. diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 647dff86..2bd30dfd 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -84,7 +84,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2966,9 +2966,9 @@ +@@ -3018,9 +3018,9 @@ "expiry_milestone": 125 }, { @@ -100,7 +100,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json -@@ -3688,6 +3688,22 @@ +@@ -3212,6 +3212,22 @@ "no_downscaled_overlay_promotion" ] }, @@ -126,7 +126,7 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc -@@ -65,6 +65,11 @@ BASE_FEATURE(kUseGles2ForOopR, +@@ -70,6 +70,11 @@ BASE_FEATURE(kUseGles2ForOopR, #endif ); @@ -141,7 +141,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h --- a/gpu/config/gpu_finch_features.h +++ b/gpu/config/gpu_finch_features.h -@@ -17,6 +17,7 @@ namespace features { +@@ -22,6 +22,7 @@ namespace features { GPU_EXPORT BASE_DECLARE_FEATURE(kUseGles2ForOopR); // All features in alphabetical order. The features should be documented @@ -177,8 +177,8 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt --- a/gpu/config/gpu_workaround_list.txt +++ b/gpu/config/gpu_workaround_list.txt -@@ -16,6 +16,7 @@ decode_encode_srgb_for_generatemipmap - depth_stencil_renderbuffer_resize_emulation +@@ -13,6 +13,7 @@ count_all_in_varyings_packing + decode_encode_srgb_for_generatemipmap disable_2d_canvas_auto_flush disable_accelerated_av1_decode +disable_aimagereader @@ -233,7 +233,7 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -981,6 +981,11 @@ BASE_FEATURE(kHardwareSecureDecryptionExperiment, +@@ -1018,6 +1018,11 @@ BASE_FEATURE(kHardwareSecureDecryptionExperiment, // Allows automatically disabling hardware secure Content Decryption Module // (CDM) after failures or crashes to fallback to software secure CDMs. If this // feature is disabled, the fallback will never happen and users could be stuck @@ -248,7 +248,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc diff --git a/media/base/media_switches.h b/media/base/media_switches.h --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -332,6 +332,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoBlitColorAccuracy); +@@ -347,6 +347,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoBlitColorAccuracy); MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoToolboxVideoDecoder); #endif // BUILDFLAG(IS_APPLE) MEDIA_EXPORT BASE_DECLARE_FEATURE(kWebRTCColorAccuracy); diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index 3bd37caa..a9cceba2 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -231,6 +231,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; +@@ -227,6 +227,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; -@@ -981,6 +982,8 @@ public abstract class ChromeActivity +@@ -984,6 +985,8 @@ public abstract class ChromeActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(); ChromeCachedFlags.getInstance().cacheNativeFlags(); @@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -9367,6 +9367,13 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9661,6 +9661,13 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kEnableDrDcDescription, kOsAll, FEATURE_VALUE_TYPE(features::kEnableDrDc)}, @@ -55,7 +55,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -16,6 +16,11 @@ +@@ -14,6 +14,11 @@ namespace flag_descriptions { @@ -70,7 +70,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -42,6 +42,9 @@ namespace flag_descriptions { +@@ -43,6 +43,9 @@ namespace flag_descriptions { // Cross-platform ------------------------------------------------------------- @@ -83,15 +83,15 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -145,6 +145,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -147,6 +147,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, &feed::kFeedUserInteractionReliabilityReport, - &feed::kInterestFeedContentSuggestions, + &kAllowUserCertificates, &feed::kInterestFeedV2, &feed::kInterestFeedV2Autoplay, &feed::kInterestFeedV2Hearts, -@@ -473,6 +474,10 @@ BASE_FEATURE(kSearchReadyOmniboxFeature, +@@ -477,6 +478,10 @@ BASE_FEATURE(kSearchReadyOmniboxFeature, "SearchReadyOmnibox", base::FEATURE_DISABLED_BY_DEFAULT); @@ -105,7 +105,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -22,6 +22,7 @@ BASE_DECLARE_FEATURE(kAdvancedPeripheralsSupport); +@@ -23,6 +23,7 @@ BASE_DECLARE_FEATURE(kAdvancedPeripheralsSupport); BASE_DECLARE_FEATURE(kAdvancedPeripheralsSupportTabStrip); BASE_DECLARE_FEATURE(kAllowNewIncognitoTabIntents); BASE_DECLARE_FEATURE(kAndroidAppIntegration); @@ -124,7 +124,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE = "AdaptiveButtonInTopToolbarTranslate"; -@@ -514,6 +515,8 @@ public abstract class ChromeFeatureList { +@@ -501,6 +502,8 @@ public abstract class ChromeFeatureList { /* Alphabetical: */ public static final CachedFlag sAndroidAppIntegration = new CachedFlag(ANDROID_APP_INTEGRATION, false); @@ -133,7 +133,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sAppMenuMobileSiteOption = new CachedFlag(APP_MENU_MOBILE_SITE_OPTION, false); public static final CachedFlag sBackGestureActivityTabProvider = -@@ -634,6 +637,7 @@ public abstract class ChromeFeatureList { +@@ -642,6 +645,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowser = List.of( // clang-format off sAndroidAppIntegration, diff --git a/build/patches/Add-IsCleartextPermitted-flag.patch b/build/patches/Add-IsCleartextPermitted-flag.patch index 20f3b988..7b8e9af9 100644 --- a/build/patches/Add-IsCleartextPermitted-flag.patch +++ b/build/patches/Add-IsCleartextPermitted-flag.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -9571,6 +9571,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9862,6 +9862,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kForceOffTextAutosizingName, flag_descriptions::kForceOffTextAutosizingDescription, kOsAndroid, FEATURE_VALUE_TYPE(features::kForceOffTextAutosizing)}, @@ -30,7 +30,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1964,6 +1964,10 @@ const char kHttpsUpgradesDescription[] = +@@ -1996,6 +1996,10 @@ const char kHttpsUpgradesDescription[] = "Enable automatically upgrading all top-level navigations to HTTPS with " "fast fallback to HTTP."; @@ -44,7 +44,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1101,6 +1101,9 @@ extern const char kStorageBucketsDescription[]; +@@ -1120,6 +1120,9 @@ extern const char kStorageBucketsDescription[]; extern const char kHideIncognitoMediaMetadataName[]; extern const char kHideIncognitoMediaMetadataDescription[]; diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index a0e6d4b4..cbbf5520 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../java/res/xml/privacy_preferences.xml | 4 + .../privacy/settings/PrivacySettings.java | 1 + .../chrome_autocomplete_provider_client.cc | 2 + - chrome/browser/browser_resources.grd | 4 +- + chrome/browser/browser_resources.grd | 3 + .../extensions/api/proxy/proxy_api_helpers.cc | 2 +- chrome/browser/net/proxy_service_factory.cc | 24 +- chrome/browser/net/proxy_service_factory.h | 3 + @@ -40,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../proxy_config/proxy_policy_handler.cc | 2 +- net/proxy_resolution/proxy_config.cc | 52 ++- net/proxy_resolution/proxy_config.h | 3 + - 25 files changed, 981 insertions(+), 18 deletions(-) + 25 files changed, 981 insertions(+), 17 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -82,6 +82,7 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -77,6 +77,7 @@ public class PrivacySettings private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; @@ -100,7 +100,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd -@@ -275,11 +275,13 @@ +@@ -252,6 +252,9 @@ @@ -108,13 +108,8 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou + + - - - -- - diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc --- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc +++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc @@ -202,7 +197,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -181,6 +181,8 @@ +@@ -185,6 +185,8 @@ #include "rlz/buildflags/buildflags.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -211,7 +206,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/background_mode_manager.h" #endif -@@ -1306,6 +1308,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1389,6 +1391,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -666,7 +661,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -309,6 +309,8 @@ static_library("ui") { +@@ -301,6 +301,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -678,7 +673,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -64,6 +64,7 @@ +@@ -63,6 +63,7 @@ #include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h" #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" #include "chrome/browser/ui/webui/policy/policy_ui.h" @@ -686,7 +681,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/predictors/predictors_ui.h" #include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h" #include "chrome/browser/ui/webui/signin_internals_ui.h" -@@ -499,6 +500,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -496,6 +497,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; @@ -1141,7 +1136,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons const char kChromeUIChromeURLsHost[] = "chrome-urls"; const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/"; const char kChromeUIComponentsHost[] = "components"; -@@ -449,6 +451,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { +@@ -450,6 +452,7 @@ bool IsSystemWebUIHost(base::StringPiece host) { kChromeUILockScreenNetworkHost, kChromeUILockScreenStartReauthHost, kChromeUIMobileSetupHost, @@ -1149,7 +1144,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, kChromeUINotificationTesterHost, -@@ -755,6 +758,7 @@ const char* const kChromeHostURLs[] = { +@@ -759,6 +762,7 @@ const char* const kChromeHostURLs[] = { #if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_CHROMEOS) kChromeUIAppLauncherPageHost, @@ -1160,7 +1155,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -143,6 +143,8 @@ extern const char kChromeUINTPTilesInternalsHost[]; +@@ -142,6 +142,8 @@ extern const char kChromeUINTPTilesInternalsHost[]; extern const char kChromeUINaClHost[]; extern const char kChromeUINetExportHost[]; extern const char kChromeUINetExportURL[]; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index fa199cf7..ead466b1 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -85,8 +85,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/autocomplete_provider_client.h | 1 + .../omnibox/browser/base_search_provider.cc | 2 +- components/omnibox/browser/search_provider.cc | 4 +- - .../host_content_settings_map_factory.cc | 1 + - 67 files changed, 760 insertions(+), 92 deletions(-) + 66 files changed, 759 insertions(+), 92 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -95,7 +94,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -650,6 +650,7 @@ chrome_java_resources = [ +@@ -659,6 +659,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/phone_as_a_security_key_accessory_filter.xml", @@ -114,10 +113,10 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "java/src/org/chromium/chrome/browser/ActivityUtils.java", -@@ -955,6 +956,7 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java", +@@ -967,6 +968,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java", + "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", "java/src/org/chromium/chrome/browser/provider/BaseColumns.java", "java/src/org/chromium/chrome/browser/provider/BookmarkColumns.java", @@ -167,7 +166,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -50,6 +50,11 @@ found in the LICENSE file. +@@ -56,6 +56,11 @@ found in the LICENSE file. android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings"/> @@ -240,7 +239,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -58,6 +58,10 @@ import org.chromium.base.task.TaskTraits; +@@ -62,6 +62,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -248,10 +247,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct +import org.chromium.components.user_prefs.UserPrefs; +import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; - import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.app.ChromeActivity; -@@ -578,9 +582,14 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -1870,6 +1871,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -463,7 +462,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -64,6 +64,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -66,6 +66,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.version_info.VersionInfo; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -473,7 +472,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -1218,7 +1221,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1260,7 +1263,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @Override public boolean isIncognito() { @@ -485,7 +484,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java -@@ -34,6 +34,7 @@ import org.chromium.base.annotations.NativeMethods; +@@ -35,6 +35,7 @@ import org.chromium.base.annotations.NativeMethods; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; @@ -493,7 +492,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo import org.chromium.chrome.browser.ChromeTabbedActivity; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.download.home.DownloadActivity; -@@ -75,6 +76,10 @@ import org.chromium.url.GURL; +@@ -77,6 +78,10 @@ import org.chromium.url.GURL; import java.io.File; @@ -504,7 +503,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** * A class containing some utility static methods. */ -@@ -318,7 +323,16 @@ public class DownloadUtils { +@@ -353,7 +358,16 @@ public class DownloadUtils { // Offline pages isn't supported in Incognito. This should be checked before calling // OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found // for incognito profile. @@ -546,7 +545,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** * Combines and manages the different UI components of browsing history. */ -@@ -156,7 +163,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve +@@ -158,7 +165,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve recordUserAction("Show"); // If incognito placeholder is shown, we don't need to create History UI elements. @@ -555,7 +554,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History mSelectableListLayout = null; mRootView = getIncognitoHistoryPlaceholderView(); return; -@@ -597,7 +604,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve +@@ -601,7 +608,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve private void swapContentView() { boolean toHistoryClusters; @@ -564,7 +563,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History return; } else if (isHistoryClustersUIShowing()) { toHistoryClusters = false; -@@ -660,11 +667,24 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve +@@ -664,11 +671,24 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve && mContentView == mHistoryClustersCoordinator.getActivityContentView(); } @@ -590,7 +589,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // If Incognito placeholder is shown no need to call any destroy method. return; } -@@ -684,7 +704,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve +@@ -688,7 +708,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve * @return True if manager handles this event, false if it decides to ignore. */ public boolean onBackPressed() { @@ -624,7 +623,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History * Native page for managing browsing history. */ @@ -39,6 +46,15 @@ public class HistoryPage extends BasicNativePage { - boolean isIncognito, Supplier tabSupplier, String url) { + Profile profile, Supplier tabSupplier, String url) { super(host); + if (isIncognito && @@ -642,7 +641,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -15,6 +15,7 @@ import androidx.annotation.VisibleForTesting; +@@ -16,6 +16,7 @@ import org.chromium.base.jank_tracker.JankTracker; import org.chromium.base.supplier.DestroyableObservableSupplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.Supplier; @@ -650,7 +649,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -226,7 +227,8 @@ public class NativePageFactory { +@@ -232,7 +233,8 @@ public class NativePageFactory { String url, NativePage candidatePage, Tab tab, boolean isIncognito) { NativePage page; @@ -880,15 +879,15 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -73,6 +73,7 @@ import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings; - import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; +@@ -75,6 +75,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl; import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate; import org.chromium.chrome.browser.sync.SyncServiceFactory; + import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; -@@ -323,6 +324,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -329,6 +330,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((PrivacySandboxSettingsBaseFragment) fragment) .setSnackbarManager(getSnackbarManager()); } @@ -901,7 +900,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java -@@ -14,6 +14,8 @@ import java.util.ArrayList; +@@ -13,6 +13,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -910,7 +909,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore /** * A tab model observer for managing bulk closures. */ -@@ -41,7 +43,8 @@ public class HistoricalTabModelObserver implements TabModelObserver { +@@ -40,7 +42,8 @@ public class HistoricalTabModelObserver implements TabModelObserver { if (tabs.isEmpty()) return; if (tabs.size() == 1) { @@ -920,7 +919,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore return; } -@@ -72,7 +75,6 @@ public class HistoricalTabModelObserver implements TabModelObserver { +@@ -71,7 +74,6 @@ public class HistoricalTabModelObserver implements TabModelObserver { entries.add(historicalGroup); idToGroup.put(groupId, historicalGroup); } @@ -943,7 +942,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java -@@ -26,6 +26,8 @@ import java.util.Arrays; +@@ -25,6 +25,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -952,7 +951,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore /** * Creates historical entries in TabRestoreService. */ -@@ -59,10 +61,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -58,10 +60,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { // HistoricalTabSaver implementation. @Override @@ -965,7 +964,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } @Override -@@ -114,7 +116,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -113,7 +115,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { // If there is only a single valid tab remaining save it individually. if (validEntries.size() == 1 && validEntries.get(0).isSingleTab()) { @@ -974,7 +973,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore return; } -@@ -140,11 +142,12 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -139,11 +141,12 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { CollectionUtil.integerCollectionToIntArray(savedStateVersions)); } @@ -989,7 +988,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } /** -@@ -152,7 +155,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -151,7 +154,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { * internal Chrome scheme, about:blank, or a native page and it cannot be incognito. */ private boolean shouldSave(Tab tab) { @@ -998,7 +997,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore // {@link GURL#getScheme()} is not available in unit tests. if (mIgnoreUrlSchemesForTesting) return true; -@@ -224,7 +227,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -223,7 +226,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { @NativeMethods interface Natives { @@ -1019,7 +1018,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.ui.base.IntentRequestTracker; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -794,7 +796,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -790,7 +792,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mAppMenuCoordinator.getAppMenuHandler(), mActivityTabProvider, mToolbarManager.getMenuButtonView(), () -> { mTabCreatorManagerSupplier.get() @@ -1042,7 +1041,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome /** * This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ -@@ -510,7 +514,6 @@ public class ChromeTabCreator extends TabCreator { +@@ -517,7 +521,6 @@ public class ChromeTabCreator extends TabCreator { // TODO(crbug.com/1081924): Clean up the launches from SearchActivity/Chrome. public Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1099,7 +1098,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -41,6 +41,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -40,6 +40,7 @@ import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1107,7 +1106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController; import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -@@ -554,7 +555,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -556,7 +557,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve return ret; } }, @@ -1165,7 +1164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5153,6 +5153,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5409,6 +5409,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOfflinePagesLivePageSharingName, flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid, FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)}, @@ -1227,7 +1226,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and DCHECK_EQ(android_group_ids.size(), group_titles.size()); DCHECK_EQ(per_tab_android_group_id.size(), tabs.size()); -@@ -230,11 +241,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( +@@ -234,11 +245,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( JNIEnv* env, const JavaParamRef& jtab_android, const JavaParamRef& state, @@ -1346,7 +1345,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -4134,6 +4134,12 @@ const char kOfflinePagesLivePageSharingDescription[] = +@@ -4209,6 +4209,12 @@ const char kOfflinePagesLivePageSharingDescription[] = "Enables to share current loaded page as offline page by saving as MHTML " "first."; @@ -1362,7 +1361,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2431,6 +2431,9 @@ extern const char kOmahaMinSdkVersionAndroidDescription[]; +@@ -2484,6 +2484,9 @@ extern const char kOmahaMinSdkVersionAndroidDescription[]; extern const char kOmahaMinSdkVersionAndroidMinSdk1Description[]; extern const char kOmahaMinSdkVersionAndroidMinSdk1000Description[]; @@ -1375,7 +1374,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -576,8 +576,8 @@ BASE_FEATURE(kCCTFeatureUsage, +@@ -588,8 +588,8 @@ BASE_FEATURE(kCCTFeatureUsage, BASE_FEATURE(kCCTIncognito, "CCTIncognito", base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kCCTIncognitoAvailableToThirdParty, @@ -1709,7 +1708,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -239,6 +239,7 @@ +@@ -249,6 +249,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1717,7 +1716,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" -@@ -1692,6 +1693,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1781,6 +1782,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1856,7 +1855,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1408,6 +1408,37 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1431,6 +1431,37 @@ Your Google account may have other forms of browsing history like searches and a Clears history from all synced devices @@ -1897,7 +1896,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java -@@ -178,6 +178,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -177,6 +177,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected String mFormattedFullUrl; protected String mUrlForDisplay; private boolean mOmniboxUpdatedConnectionSecurityIndicatorsEnabled; @@ -1905,7 +1904,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same // document navigation. The first call is usually necessary, which updates the UrlBar to reflect -@@ -200,7 +201,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -199,7 +200,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro public LocationBarModel(Context context, NewTabPageDelegate newTabPageDelegate, @NonNull UrlFormatter urlFormatter, @NonNull ProfileProvider profileProvider, @NonNull OfflineStatus offlineStatus, @@ -1919,7 +1918,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn --- a/chrome/browser/ui/messages/android/BUILD.gn +++ b/chrome/browser/ui/messages/android/BUILD.gn -@@ -24,6 +24,7 @@ android_library("java") { +@@ -25,6 +25,7 @@ android_library("java") { srcjar_deps = [ ":jni_headers" ] sources = [ "java/src/org/chromium/chrome/browser/ui/messages/infobar/SimpleConfirmInfoBarBuilder.java", @@ -1962,7 +1961,7 @@ new file mode 100644 diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -3935,6 +3935,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -3878,6 +3878,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2065,7 +2064,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics); -@@ -523,6 +524,8 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -527,6 +528,8 @@ class HostContentSettingsMap : public content_settings::Observer, // Whether this settings map is for an incognito or guest session. bool is_off_the_record_; @@ -2146,16 +2145,5 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ ((default_url && !default_url->suggestions_url().empty() && !*query_is_private) || (keyword_url && !keyword_url->suggestions_url().empty())); -diff --git a/weblayer/browser/host_content_settings_map_factory.cc b/weblayer/browser/host_content_settings_map_factory.cc ---- a/weblayer/browser/host_content_settings_map_factory.cc -+++ b/weblayer/browser/host_content_settings_map_factory.cc -@@ -45,6 +45,7 @@ HostContentSettingsMapFactory::BuildServiceInstanceFor( - scoped_refptr settings_map = - base::MakeRefCounted( - user_prefs::UserPrefs::Get(context), context->IsOffTheRecord(), -+ /*force_save_site_settings*/false, - /*store_last_modified=*/true, - /*restore_session=*/false, - /*should_record_metrics=*/!context->IsOffTheRecord()); -- 2.25.1 diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 150f1a34..0b23483a 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -114,19 +114,19 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c + app:iconTint="@color/default_icon_color_tint_list" /> mShareDelegateSupplier; private final Supplier mEphemeralTabCoordinatorSupplier; -@@ -74,7 +75,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -76,7 +77,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { private NativePageFactory mNativePageFactory; @@ -240,7 +240,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import android.text.TextUtils; import android.util.Pair; -@@ -38,6 +51,32 @@ import org.chromium.url.GURL; +@@ -37,6 +50,32 @@ import org.chromium.url.GURL; import java.util.ArrayList; import java.util.List; @@ -273,8 +273,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Provides the communication channel for Android to fetch and manipulate the * bookmark model stored in native. -@@ -432,6 +471,209 @@ class BookmarkBridge { - mNativeBookmarkBridge, BookmarkBridge.this, id.getId(), id.getType()); +@@ -435,6 +474,209 @@ class BookmarkBridge { + mNativeBookmarkBridge, id.getId(), id.getType()); } + /** @@ -523,16 +523,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static List> createPairsList(int[] left, int[] right) { List> pairList = new ArrayList<>(); for (int i = 0; i < left.length; i++) { -@@ -966,6 +1241,9 @@ class BookmarkBridge { - int getChildCount(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type); - void getChildIds(long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, - List bookmarksList); +@@ -961,6 +1236,9 @@ class BookmarkBridge { + int getChildCount(long nativeBookmarkBridge, long id, int type); + void getChildIds( + long nativeBookmarkBridge, long id, int type, List bookmarksList); + void importBookmarks(long nativeBookmarkBridge, BookmarkBridge caller, WindowAndroid window); + void exportBookmarks(long nativeBookmarkBridge, BookmarkBridge caller, WindowAndroid window, + String export_path); - BookmarkId getChildAt( - long nativeBookmarkBridge, BookmarkBridge caller, long id, int type, int index); - int getTotalBookmarkCount( + BookmarkId getChildAt(long nativeBookmarkBridge, long id, int type, int index); + int getTotalBookmarkCount(long nativeBookmarkBridge, long id, int type); + void setBookmarkTitle(long nativeBookmarkBridge, long id, int type, String title); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java @@ -582,7 +582,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java -@@ -53,6 +53,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega +@@ -55,6 +55,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver; import org.chromium.components.commerce.core.CommerceSubscription; import org.chromium.components.commerce.core.ShoppingService; @@ -591,7 +591,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.components.favicon.LargeIconBridge; import org.chromium.components.feature_engagement.EventConstants; import org.chromium.components.power_bookmarks.PowerBookmarkMeta; -@@ -80,6 +82,9 @@ class BookmarkManagerMediator +@@ -82,6 +84,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -601,7 +601,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Keeps track of whether drag is enabled / active for bookmark lists. */ -@@ -508,6 +513,14 @@ class BookmarkManagerMediator +@@ -513,6 +518,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -616,7 +616,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * See BookmarkManager(Coordinator)#updateForUrl */ -@@ -684,6 +697,16 @@ class BookmarkManagerMediator +@@ -689,6 +702,16 @@ class BookmarkManagerMediator } } @@ -773,7 +773,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -15,6 +15,7 @@ import androidx.annotation.VisibleForTesting; +@@ -16,6 +16,7 @@ import org.chromium.base.jank_tracker.JankTracker; import org.chromium.base.supplier.DestroyableObservableSupplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.Supplier; @@ -790,7 +790,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final BrowserControlsManager mBrowserControlsManager; private final Supplier mCurrentTabSupplier; -@@ -69,7 +70,7 @@ public class NativePageFactory { +@@ -70,7 +71,7 @@ public class NativePageFactory { private NativePageBuilder mNativePageBuilder; @@ -799,7 +799,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat @NonNull BottomSheetController sheetController, @NonNull BrowserControlsManager browserControlsManager, @NonNull Supplier currentTabSupplier, -@@ -115,7 +116,7 @@ public class NativePageFactory { +@@ -118,7 +119,7 @@ public class NativePageFactory { @VisibleForTesting static class NativePageBuilder { @@ -808,7 +808,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final Supplier mUma; private final BrowserControlsManager mBrowserControlsManager; -@@ -129,7 +130,7 @@ public class NativePageFactory { +@@ -133,7 +134,7 @@ public class NativePageFactory { private final HomeSurfaceTracker mHomeSurfaceTracker; private final ObservableSupplier mTabContentManagerSupplier; @@ -817,7 +817,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat BottomSheetController sheetController, BrowserControlsManager browserControlsManager, Supplier currentTabSupplier, Supplier snackbarManagerSupplier, -@@ -169,7 +170,7 @@ public class NativePageFactory { +@@ -175,7 +176,7 @@ public class NativePageFactory { protected NativePage buildBookmarksPage(Tab tab) { return new BookmarkPage(mActivity.getComponentName(), mSnackbarManagerSupplier.get(), mTabModelSelector.isIncognitoSelected(), @@ -829,7 +829,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -226,6 +226,8 @@ static_library("browser") { +@@ -225,6 +225,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -838,7 +838,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.h", "bookmarks/managed_bookmark_service_factory.cc", -@@ -1923,6 +1925,13 @@ static_library("browser") { +@@ -1968,6 +1970,13 @@ static_library("browser") { ] } @@ -852,7 +852,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3622,8 +3631,6 @@ static_library("browser") { +@@ -3697,8 +3706,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -864,7 +864,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -9530,6 +9530,14 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9821,6 +9821,14 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kForceOffTextAutosizing)}, #endif @@ -1011,8 +1011,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + select_file_dialog_->ListenerDestroyed(); } - void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef&) { -@@ -619,6 +726,182 @@ jint BookmarkBridge::GetTotalBookmarkCount( + void BookmarkBridge::Destroy(JNIEnv*) { +@@ -558,6 +665,182 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -1193,8 +1193,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse +} + void BookmarkBridge::SetBookmarkTitle(JNIEnv* env, - const JavaParamRef& obj, jlong id, + jint type, diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h --- a/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h @@ -1226,9 +1226,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser public: BookmarkBridge(Profile* profile, bookmarks::BookmarkModel* model, -@@ -74,6 +79,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, - bool IsDoingExtensiveChanges(JNIEnv* env, - const base::android::JavaParamRef& obj); +@@ -72,6 +77,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, + + bool IsDoingExtensiveChanges(JNIEnv* env); + // SelectFileDialog::Listener implementation. + void FileSelected(const base::FilePath& path, @@ -1238,10 +1238,10 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser + jboolean IsEditBookmarksEnabled(JNIEnv* env); - void LoadEmptyPartnerBookmarkShimForTesting( -@@ -171,6 +182,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, - jlong id, - jint type); + void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env); +@@ -84,6 +95,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, + jlong id, + jint type); + void ImportBookmarks(JNIEnv* env, + const base::android::JavaParamRef& obj, @@ -1252,10 +1252,10 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser + const base::android::JavaParamRef& java_window, + const base::android::JavaParamRef& j_export_path); + - void SetBookmarkTitle(JNIEnv* env, - const base::android::JavaParamRef& obj, - jlong id, -@@ -363,12 +383,16 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, + void GetTopLevelFolderIds( + JNIEnv* env, + const base::android::JavaParamRef& j_result_obj); +@@ -310,12 +330,16 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, void DestroyJavaObject(); raw_ptr profile_; @@ -1272,7 +1272,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser // Information about the Partner bookmarks (must check for IsLoaded()). // This is owned by profile. -@@ -382,6 +406,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, +@@ -329,6 +353,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver, // Observes the profile destruction and creation. base::ScopedObservation profile_observation_{this}; @@ -1382,9 +1382,9 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -7647,6 +7647,11 @@ const char kProfilesReorderingDescription[] = - "persisted."; - #endif +@@ -7752,6 +7752,11 @@ const char kEnableBoundSessionCredentialsDescription[] = + "prevent the usage of bound credentials outside of the user device."; + #endif // BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS) +const char kBookmarksExportUseSafName[] = "Use saf for bookmarks export"; +const char kBookmarksExportUseSafDescription[] = @@ -1397,9 +1397,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -4427,6 +4427,9 @@ extern const char kProfilesReorderingName[]; - extern const char kProfilesReorderingDescription[]; - #endif +@@ -4490,6 +4490,9 @@ extern const char kEnableBoundSessionCredentialsName[]; + extern const char kEnableBoundSessionCredentialsDescription[]; + #endif // BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS) +extern const char kBookmarksExportUseSafName[]; +extern const char kBookmarksExportUseSafDescription[]; @@ -1410,7 +1410,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -187,6 +187,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -191,6 +191,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kClearOmniboxFocusAfterNavigation, &kCloseTabSuggestions, &kCloseTabSaveTabList, @@ -1418,9 +1418,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kCriticalPersistedTabData, &kCreateNewTabInitializeRenderer, &kCCTBackgroundTab, -@@ -1179,5 +1180,10 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent, - "WebApkTrampolineOnInitialIntent", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -1195,5 +1196,10 @@ BASE_FEATURE(kWebApkInstallService, + "WebApkInstallService", + base::FEATURE_DISABLED_BY_DEFAULT); +// disabled by default because of an issue on Android 6.0 +BASE_FEATURE(kBookmarksExportUseSaf, @@ -1432,7 +1432,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -185,6 +185,7 @@ BASE_DECLARE_FEATURE(kTabStripRedesign); +@@ -189,6 +189,7 @@ BASE_DECLARE_FEATURE(kTabStripRedesign); BASE_DECLARE_FEATURE(kTabletToolbarReordering); BASE_DECLARE_FEATURE(kTabStripStartupRefactoring); BASE_DECLARE_FEATURE(kTabToGTSAnimation); @@ -1443,7 +1443,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -485,6 +485,7 @@ public abstract class ChromeFeatureList { +@@ -475,6 +475,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String USER_BYPASS_UI = "UserBypassUI"; @@ -1512,7 +1512,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -100,6 +100,8 @@ public final class ChromePreferenceKeys { +@@ -101,6 +101,8 @@ public final class ChromePreferenceKeys { "enhanced_bookmark_last_used_parent_folder"; public static final String BOOKMARKS_SORT_ORDER = "Chrome.Bookmarks.BookmarkRowSortOrder"; public static final String BOOKMARKS_VISUALS_PREF = "Chrome.Bookmarks.BookmarkRowDisplay"; @@ -1521,7 +1521,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** * Whether Chrome is set as the default browser. -@@ -964,6 +966,7 @@ public final class ChromePreferenceKeys { +@@ -992,6 +994,7 @@ public final class ChromePreferenceKeys { AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1560,7 +1560,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -400,6 +400,9 @@ static_library("common_lib") { +@@ -402,6 +402,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1582,7 +1582,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn "importer/bookmarks_file_importer.cc", "importer/bookmarks_file_importer.h", "importer/external_process_importer_bridge.cc", -@@ -215,6 +213,11 @@ static_library("utility") { +@@ -218,6 +216,11 @@ static_library("utility") { ] } @@ -1801,7 +1801,7 @@ diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/st diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h --- a/ui/shell_dialogs/select_file_dialog.h +++ b/ui/shell_dialogs/select_file_dialog.h -@@ -211,6 +211,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog +@@ -213,6 +213,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog const GURL* caller = nullptr); bool HasMultipleFileTypeChoices(); diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index bf001b16..f7422bfc 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -68,6 +68,16 @@ found in the LICENSE file. +@@ -74,6 +74,16 @@ found in the LICENSE file. android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" android:key="do_not_track" android:title="@string/do_not_track_title"/> @@ -44,7 +44,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -53,6 +53,9 @@ import java.lang.annotation.Retention; +@@ -55,6 +55,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Set; @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis /** * Dispatches incoming intents to the appropriate activity based on the current configuration and * Intent fired. -@@ -243,6 +246,9 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega +@@ -246,6 +249,9 @@ public class LaunchIntentDispatcher { */ public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; @@ -64,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent) || !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) { return false; -@@ -262,6 +268,10 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega +@@ -265,6 +271,10 @@ public class LaunchIntentDispatcher { newIntent.setData(uri); newIntent.setClassName(context, CustomTabActivity.class.getName()); @@ -75,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis // Since configureIntentForResizableCustomTab() might change the componenet/class // associated with the passed intent, it needs to be called after #setClassName(context, // CustomTabActivity.class.getName()); -@@ -408,6 +418,17 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega +@@ -411,6 +421,17 @@ public class LaunchIntentDispatcher { if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -119,9 +119,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -103,6 +103,9 @@ public class PrivacySettings extends PreferenceFragmentCompat - private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher; - private Profile mProfile; +@@ -97,6 +97,9 @@ public class PrivacySettings + private ManagedPreferenceDelegate mManagedPreferenceDelegate; + private IncognitoLockSettings mIncognitoLockSettings; + private ChromeSwitchPreference allowCustomTabIntentsPref; + private ChromeSwitchPreference openExternalLinksPref; @@ -129,7 +129,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { getActivity().setTitle(R.string.prefs_privacy_security); -@@ -246,6 +249,9 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -247,6 +250,9 @@ public class PrivacySettings new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -139,7 +139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); -@@ -260,6 +266,14 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -263,6 +269,14 @@ public class PrivacySettings } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(Profile.getLastUsedRegularProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -154,8 +154,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -283,6 +297,16 @@ public class PrivacySettings extends PreferenceFragmentCompat - UserPrefs.get(mProfile).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); +@@ -286,6 +300,16 @@ public class PrivacySettings + UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } + allowCustomTabIntentsPref = @@ -170,11 +170,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK); if (doNotTrackPref != null) { - doNotTrackPref.setSummary(UserPrefs.get(mProfile).getBoolean(Pref.ENABLE_DO_NOT_TRACK) + doNotTrackPref.setSummary( diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -580,8 +580,8 @@ BASE_FEATURE(kCCTIncognitoAvailableToThirdParty, +@@ -592,8 +592,8 @@ BASE_FEATURE(kCCTIncognitoAvailableToThirdParty, base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite BASE_FEATURE(kCCTIntentFeatureOverrides, @@ -185,7 +185,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse BASE_FEATURE(kCCTMinimized, "CCTMinimized", base::FEATURE_DISABLED_BY_DEFAULT); -@@ -591,7 +591,7 @@ BASE_FEATURE(kCCTPageInsightsHub, +@@ -603,7 +603,7 @@ BASE_FEATURE(kCCTPageInsightsHub, BASE_FEATURE(kCCTPostMessageAPI, "CCTPostMessageAPI", @@ -213,7 +213,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -5182,6 +5182,20 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Resume diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index bb0996f2..bd416600 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -230,6 +230,8 @@ import java.util.Locale; +@@ -236,6 +236,8 @@ import java.util.Locale; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct /** * This is the main activity for ChromeMobile when not running in document mode. All the tabs * are accessible via a chrome specific tab switching UI. -@@ -2203,6 +2205,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2385,6 +2386,11 @@ public abstract class ChromeActivity return true; } @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -3818,6 +3818,9 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

Dark theme diff --git a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index a0e5280c..c2ac5aa5 100644 --- a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -604,6 +604,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = { +@@ -636,6 +636,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = { #endif // BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID) @@ -40,7 +40,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = { {"mode", "always-none"}}; const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNewTab[] = { -@@ -4714,7 +4730,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4969,7 +4985,11 @@ const FeatureEntry kFeatureEntries[] = { kOsMac | kOsLinux | kOsWin, FEATURE_VALUE_TYPE(features::kSystemNotifications)}, #endif // BUILDFLAG(ENABLE_SYSTEM_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS_ASH) @@ -64,7 +64,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "base/feature_list.h" #include "base/format_macros.h" #include "base/functional/bind.h" -@@ -368,6 +369,15 @@ AutocompleteController::AutocompleteController( +@@ -305,6 +306,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { diff --git a/build/patches/Add-flag-for-save-data-header.patch b/build/patches/Add-flag-for-save-data-header.patch index 58865603..3dc97a5d 100644 --- a/build/patches/Add-flag-for-save-data-header.patch +++ b/build/patches/Add-flag-for-save-data-header.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5335,7 +5335,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5597,7 +5597,10 @@ const FeatureEntry kFeatureEntries[] = { {"force-text-direction", flag_descriptions::kForceTextDirectionName, flag_descriptions::kForceTextDirectionDescription, kOsAll, MULTI_VALUE_TYPE(kForceTextDirectionChoices)}, @@ -30,7 +30,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1382,6 +1382,10 @@ const char kDeprecateAltBasedSixPackDescription[] = +@@ -1396,6 +1396,10 @@ const char kDeprecateAltBasedSixPackDescription[] = "Show deprecation notifications and disable functionality for Alt based " "six pack deprecations. The Search based versions continue to work."; @@ -44,7 +44,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -714,6 +714,9 @@ extern const char kDeprecateAltBasedSixPackDescription[]; +@@ -723,6 +723,9 @@ extern const char kDeprecateAltBasedSixPackDescription[]; extern const char kDeprecateOldKeyboardShortcutsAcceleratorName[]; extern const char kDeprecateOldKeyboardShortcutsAcceleratorDescription[]; @@ -84,7 +84,7 @@ diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/cont diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -13,6 +13,11 @@ +@@ -14,6 +14,11 @@ namespace network::features { @@ -99,7 +99,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -94,6 +94,8 @@ extern uint32_t GetLoaderChunkSize(); +@@ -91,6 +91,8 @@ extern uint32_t GetLoaderChunkSize(); COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kCorsNonWildcardRequestHeadersSupport); diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index 2d9ef05d..d4477893 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1237,6 +1237,11 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = { +@@ -1270,6 +1270,11 @@ const FeatureEntry::Choice kForceColorProfileChoices[] = { switches::kForceDisplayColorProfile, "hdr10"}, }; @@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::Choice kMemlogModeChoices[] = { {flags_ui::kGenericExperimentChoiceDisabled, "", ""}, {flag_descriptions::kMemlogModeMinimal, heap_profiling::kMemlogMode, -@@ -5229,6 +5234,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5491,6 +5496,9 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(chrome::android::kShareSheetCustomActionsPolish)}, #endif // BUILDFLAG(IS_ANDROID) @@ -46,7 +46,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2186,6 +2186,10 @@ const char kUnthrottledNestedTimeoutDescription[] = +@@ -2226,6 +2226,10 @@ const char kUnthrottledNestedTimeoutDescription[] = "websites abusing the API will still eventually have their setTimeouts " "clamped."; @@ -60,7 +60,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1236,6 +1236,9 @@ extern const char kUndoAutofillDescription[]; +@@ -1261,6 +1261,9 @@ extern const char kUndoAutofillDescription[]; extern const char kUnthrottledNestedTimeoutName[]; extern const char kUnthrottledNestedTimeoutDescription[]; diff --git a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch index 212d6ce6..a7c0f932 100644 --- a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch +++ b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3929,6 +3929,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4192,6 +4192,10 @@ const FeatureEntry kFeatureEntries[] = { chrome::android::kContextualSearchSuppressShortView, kContextualSearchSuppressShortViewVariations, "ContextualSearchSuppressShortView")}, @@ -29,7 +29,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1458,6 +1458,11 @@ const char kEnableManagedConfigurationWebApiDescription[] = +@@ -1472,6 +1472,11 @@ const char kEnableManagedConfigurationWebApiDescription[] = "Allows website to access a managed configuration provided by the device " "administrator for the origin."; @@ -44,7 +44,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -802,6 +802,9 @@ extern const char kEnablePenetratingImageSelectionDescription[]; +@@ -811,6 +811,9 @@ extern const char kEnablePenetratingImageSelectionDescription[]; extern const char kEnablePerfettoSystemTracingName[]; extern const char kEnablePerfettoSystemTracingDescription[]; @@ -57,7 +57,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -357,12 +357,8 @@ BASE_FEATURE(kPreloadMetadataLazyLoad, +@@ -360,12 +360,8 @@ BASE_FEATURE(kPreloadMetadataLazyLoad, // Let videos be resumed via remote controls (for example, the notification) // when in background. BASE_FEATURE(kResumeBackgroundVideo, @@ -71,6 +71,6 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc + base::FEATURE_DISABLED_BY_DEFAULT // in Bromite ); - // When enabled, MediaCapabilities will check with GPU Video Accelerator + #if BUILDFLAG(IS_MAC) -- 2.25.1 diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 0a563d33..105ef859 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -6605,6 +6605,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6866,6 +6866,10 @@ const FeatureEntry kFeatureEntries[] = { {"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName, flag_descriptions::kReaderModeInCCTDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)}, @@ -32,9 +32,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3895,6 +3895,10 @@ const char kCCTTextFragmentLookupApiEnabledName[] = - const char kCCTTextFragmentLookupApiEnabledDescription[] = - "Enable CCT API to lookup text fragments"; +@@ -3951,6 +3951,10 @@ const char kAccountReauthenticationRecentTimeWindow0mins[] = "0 mins"; + const char kAccountReauthenticationRecentTimeWindow1mins[] = "1 mins"; + const char kAccountReauthenticationRecentTimeWindow5mins[] = "5 mins"; +const char kIPv6ProbingName[] = "Enable IPv6 probing."; +const char kIPv6ProbingDescription[] = @@ -46,7 +46,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -879,6 +879,9 @@ extern const char kEnableWasmStringrefName[]; +@@ -889,6 +889,9 @@ extern const char kEnableWasmStringrefName[]; extern const char kEnableWasmStringrefDescription[]; extern const char kEnableWasmTieringName[]; @@ -59,7 +59,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1096,6 +1096,7 @@ component("net") { +@@ -1094,6 +1094,7 @@ component("net") { "//build:chromeos_buildflags", "//net/data/ssl/chrome_root_store:gen_root_store_inc", "//net/http:transport_security_state_generated_files", @@ -132,7 +132,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -31,6 +31,11 @@ BASE_FEATURE(kThrottleDelayable, +@@ -32,6 +32,11 @@ BASE_FEATURE(kThrottleDelayable, "ThrottleDelayable", base::FEATURE_ENABLED_BY_DEFAULT); @@ -147,7 +147,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -17,6 +17,7 @@ namespace features { +@@ -16,6 +16,7 @@ namespace features { COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kNetworkErrorLogging); COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kReporting); COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kThrottleDelayable); diff --git a/build/patches/Add-flag-to-disable-external-intent-requests.patch b/build/patches/Add-flag-to-disable-external-intent-requests.patch index 91ffee81..47f28c24 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3870,6 +3870,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4133,6 +4133,11 @@ const FeatureEntry kFeatureEntries[] = { {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName, flag_descriptions::kUiPartialSwapDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, @@ -30,7 +30,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -4196,6 +4196,12 @@ const char kPolicyLogsPageAndroidDescription[] = +@@ -4271,6 +4271,12 @@ const char kPolicyLogsPageAndroidDescription[] = "Enable the new chrome://policy-logs page containing logs for debugging " "policy related issues on Android."; @@ -46,7 +46,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2481,6 +2481,9 @@ extern const char kQueryTilesNTPDescription[]; +@@ -2534,6 +2534,9 @@ extern const char kQueryTilesNTPDescription[]; extern const char kQueryTilesOnStartName[]; extern const char kQueryTilesOnStartDescription[]; extern const char kQueryTilesSingleTierName[]; diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index a02bfc64..b48d5837 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -8170,6 +8170,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -8430,6 +8430,10 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)}, #endif @@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -7230,6 +7230,9 @@ const char kLacrosMergeIcuDataFileDescription[] = +@@ -7338,6 +7338,9 @@ const char kLacrosMergeIcuDataFileDescription[] = "Enables sharing common areas of icudtl.dat between Ash and Lacros."; #endif // #if BUILDFLAG(IS_CHROMEOS_LACROS) @@ -46,9 +46,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -4405,6 +4405,8 @@ extern const char kWebUITabStripTabDragIntegrationName[]; - extern const char kWebUITabStripTabDragIntegrationDescription[]; - #endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH) +@@ -4463,6 +4463,8 @@ extern const char kWebUITabStripContextMenuAfterTapName[]; + extern const char kWebUITabStripContextMenuAfterTapDescription[]; + #endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) +extern const char kEnableVibrationName[]; +extern const char kEnableVibrationDescription[]; @@ -58,7 +58,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -101,6 +101,7 @@ void SetRuntimeFeatureDefaultsForPlatform( +@@ -103,6 +103,7 @@ void SetRuntimeFeatureDefaultsForPlatform( if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) { WebRuntimeFeatures::EnableMediaSession(false); } @@ -69,7 +69,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -158,6 +158,11 @@ BASE_FEATURE(kBackForwardCacheMemoryControls, +@@ -106,6 +106,11 @@ BASE_FEATURE(kBackForwardCacheMemoryControls, #endif ); @@ -84,15 +84,15 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -360,6 +360,8 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWarmUpNetworkProcess); +@@ -311,6 +311,8 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kForceOffTextAutosizing); + CONTENT_EXPORT BASE_DECLARE_FEATURE(kUserMediaScreenCapturing); CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebNfc); - #endif // BUILDFLAG(IS_ANDROID) +CONTENT_EXPORT BASE_DECLARE_FEATURE(kVibration); + #if BUILDFLAG(IS_MAC) - CONTENT_EXPORT BASE_DECLARE_FEATURE(kDeviceMonitorMac); + CONTENT_EXPORT BASE_DECLARE_FEATURE(kMacAllowBackgroundingRenderProcesses); diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h --- a/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h @@ -141,7 +141,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2584,6 +2584,10 @@ +@@ -2638,6 +2638,10 @@ status: {"Android": "stable"}, base_feature: "none", }, diff --git a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch index 02c383a1..cd739a2e 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1791,6 +1791,11 @@ config("default_warnings") { +@@ -1845,6 +1845,11 @@ config("default_warnings") { # TODO(crbug.com/1412713) Evaluate and possibly enable. "-Wno-deprecated-this-capture", ] diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index e68bb333..10e8518d 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -142,8 +142,8 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome/browser/permissions/one_time_permissions_tracker.cc --- a/chrome/browser/permissions/one_time_permissions_tracker.cc +++ b/chrome/browser/permissions/one_time_permissions_tracker.cc -@@ -18,8 +18,34 @@ - #include "components/permissions/features.h" +@@ -19,8 +19,34 @@ + #include "components/permissions/permission_context_base.h" #include "content/public/browser/visibility.h" #include "url/gurl.h" +#include "components/content_settings/core/browser/host_content_settings_map.h" @@ -178,7 +178,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome OneTimePermissionsTracker::~OneTimePermissionsTracker() = default; OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default; -@@ -93,6 +119,11 @@ void OneTimePermissionsTracker::WebContentsUnloadedOrigin( +@@ -108,6 +134,11 @@ void OneTimePermissionsTracker::WebContentsUnloadedOrigin( observer.OnLastPageFromOriginClosed(origin); } } @@ -210,7 +210,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.h b/chrome/ ~OneTimePermissionsTracker() override; OneTimePermissionsTracker(const OneTimePermissionsTracker&) = delete; -@@ -127,7 +128,7 @@ class OneTimePermissionsTracker : public KeyedService { +@@ -136,7 +137,7 @@ class OneTimePermissionsTracker : public KeyedService { base::ObserverList observer_list_; std::map origin_tracker_; @@ -232,7 +232,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc --- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc -@@ -345,7 +345,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallbacks( +@@ -263,7 +263,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { return; case PermissionDialogButton::kAcceptOnce: RecordDecision(permissions::PermissionAction::GRANTED_ONCE); @@ -244,7 +244,7 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc -@@ -426,8 +426,8 @@ void ContentAutofillDriver::FormsSeen( +@@ -412,8 +412,8 @@ void ContentAutofillDriver::FormsSeen( const std::vector& removed_forms) { target->GetAutofillManager().OnFormsSeen( WithNewVersion(updated_forms), removed_forms); @@ -255,7 +255,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co WithNewVersion(updated_forms), removed_forms); } }); -@@ -457,8 +457,8 @@ void ContentAutofillDriver::FormSubmitted( +@@ -443,8 +443,8 @@ void ContentAutofillDriver::FormSubmitted( } target->GetAutofillManager().OnFormSubmitted( WithNewVersion(form), known_success, submission_source); @@ -266,7 +266,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co WithNewVersion(form), known_success, submission_source); } }); -@@ -482,8 +482,8 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form, +@@ -468,8 +468,8 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form, base::TimeTicks timestamp) { target->GetAutofillManager().OnTextFieldDidChange( WithNewVersion(form), field, bounding_box, timestamp); @@ -277,7 +277,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co WithNewVersion(form), field, bounding_box, timestamp); } }); -@@ -505,8 +505,8 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form, +@@ -491,8 +491,8 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form, const FormFieldData& field, const gfx::RectF& bounding_box) { target->GetAutofillManager().OnTextFieldDidScroll(WithNewVersion(form), field, bounding_box); @@ -288,7 +288,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co WithNewVersion(form), field, bounding_box); } }); -@@ -529,8 +529,8 @@ void ContentAutofillDriver::SelectControlDidChange( +@@ -515,8 +515,8 @@ void ContentAutofillDriver::SelectControlDidChange( const FormFieldData& field, const gfx::RectF& bounding_box) { target->GetAutofillManager().OnSelectControlDidChange( WithNewVersion(form), field, bounding_box); @@ -299,7 +299,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co WithNewVersion(form), field, bounding_box); } }); -@@ -555,8 +555,8 @@ void ContentAutofillDriver::AskForValuesToFill( +@@ -541,8 +541,8 @@ void ContentAutofillDriver::AskForValuesToFill( AutofillSuggestionTriggerSource trigger_source) { target->GetAutofillManager().OnAskForValuesToFill( WithNewVersion(form), field, bounding_box, trigger_source); @@ -310,7 +310,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co WithNewVersion(form), field, bounding_box, trigger_source); } }); -@@ -570,8 +570,8 @@ void ContentAutofillDriver::HidePopup() { +@@ -556,8 +556,8 @@ void ContentAutofillDriver::HidePopup() { DCHECK(!target->IsPrerendering()) << "We should never affect UI while prerendering"; target->GetAutofillManager().OnHidePopup(); @@ -321,7 +321,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -583,8 +583,8 @@ void ContentAutofillDriver::FocusNoLongerOnForm(bool had_interacted_form) { +@@ -569,8 +569,8 @@ void ContentAutofillDriver::FocusNoLongerOnForm(bool had_interacted_form) { this, had_interacted_form, [](autofill::AutofillDriver* target, bool had_interacted_form) { target->GetAutofillManager().OnFocusNoLongerOnForm(had_interacted_form); @@ -332,7 +332,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -604,15 +604,15 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form, +@@ -590,15 +590,15 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form, const FormFieldData& field, const gfx::RectF& bounding_box) { target->GetAutofillManager().OnFocusOnFormField(WithNewVersion(form), field, bounding_box); @@ -352,7 +352,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co } }); } -@@ -628,8 +628,8 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form, +@@ -614,8 +614,8 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form, base::TimeTicks timestamp) { target->GetAutofillManager().OnDidFillAutofillFormData( WithNewVersion(form), timestamp); @@ -363,7 +363,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co WithNewVersion(form), timestamp); } }); -@@ -641,8 +641,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() { +@@ -627,8 +627,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() { } router().DidEndTextFieldEditing(this, [](autofill::AutofillDriver* target) { target->GetAutofillManager().OnDidEndTextFieldEditing(); @@ -374,7 +374,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -657,8 +657,8 @@ void ContentAutofillDriver::SelectOrSelectListFieldOptionsDidChange( +@@ -643,8 +643,8 @@ void ContentAutofillDriver::SelectOrSelectListFieldOptionsDidChange( cast(target) ->GetAutofillManager() .OnSelectOrSelectListFieldOptionsDidChange(WithNewVersion(form)); @@ -385,7 +385,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co WithNewVersion(form)); } }); -@@ -680,8 +680,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue( +@@ -666,8 +666,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue( const FormFieldData& field, const std::u16string& old_value) { target->GetAutofillManager().OnJavaScriptChangedAutofilledValue( WithNewVersion(form), field, old_value); @@ -396,7 +396,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co WithNewVersion(form), field, old_value); } }); -@@ -696,8 +696,8 @@ void ContentAutofillDriver::OnContextMenuShownInField( +@@ -682,8 +682,8 @@ void ContentAutofillDriver::OnContextMenuShownInField( const FieldGlobalId& field_global_id) { target->GetAutofillManager().OnContextMenuShownInField(form_global_id, field_global_id); @@ -407,7 +407,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co }); } -@@ -722,6 +722,10 @@ ContentAutofillDriver::GetAutofillAgent() { +@@ -708,6 +708,10 @@ ContentAutofillDriver::GetAutofillAgent() { return autofill_agent_; } @@ -421,7 +421,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co diff --git a/components/autofill/content/browser/content_autofill_driver.h b/components/autofill/content/browser/content_autofill_driver.h --- a/components/autofill/content/browser/content_autofill_driver.h +++ b/components/autofill/content/browser/content_autofill_driver.h -@@ -131,7 +131,7 @@ class ContentAutofillDriver : public AutofillDriver, +@@ -132,7 +132,7 @@ class ContentAutofillDriver : public AutofillDriver, autofill_manager_ = std::move(autofill_manager); secondary_autofill_manager_ = std::move(secondary_autofill_manager); } @@ -453,27 +453,24 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c import java.io.Serializable; -@@ -20,19 +21,30 @@ public class PermissionInfo implements Serializable { +@@ -20,9 +21,15 @@ public class PermissionInfo implements Serializable { private final String mEmbedder; private final String mOrigin; private final @ContentSettingsType int mContentSettingsType; + private final @SessionModel int mSessionModel; - - public PermissionInfo(@ContentSettingsType int type, String origin, String embedder) { - this(type, origin, embedder, false); - } - ++ + public PermissionInfo(@ContentSettingsType int type, String origin, String embedder, boolean isEmbargoed) { + this(type, origin, embedder, isEmbargoed, 0); + } -+ + public PermissionInfo( - @ContentSettingsType int type, String origin, String embedder, boolean isEmbargoed) { + @ContentSettingsType int type, String origin, String embedder, boolean isEmbargoed, + @SessionModel int sessionModel) { assert WebsitePermissionsFetcher.getPermissionsType(type) - == WebsitePermissionsFetcher.WebsitePermissionsType.PERMISSION_INFO; - mOrigin = origin; + == WebsitePermissionsFetcher.WebsitePermissionsType.PERMISSION_INFO + : "invalid type: " +@@ -31,6 +38,11 @@ public class PermissionInfo implements Serializable { mEmbedder = embedder; mContentSettingsType = type; mIsEmbargoed = isEmbargoed; @@ -496,7 +493,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c import org.chromium.components.embedder_support.util.Origin; import org.chromium.content_public.browser.BrowserContextHandle; -@@ -542,6 +543,11 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -558,6 +559,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } } @@ -508,7 +505,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); long usage = mSite.getTotalUsage(); -@@ -971,6 +977,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1024,6 +1030,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (contentType == mHighlightedPermission) { switchPreference.setBackgroundColor(mHighlightColor); } @@ -598,7 +595,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp diff --git a/components/content_settings/android/BUILD.gn b/components/content_settings/android/BUILD.gn --- a/components/content_settings/android/BUILD.gn +++ b/components/content_settings/android/BUILD.gn -@@ -59,6 +59,7 @@ java_cpp_enum("content_settings_enums_javagen") { +@@ -60,6 +60,7 @@ java_cpp_enum("content_settings_enums_javagen") { "../core/common/cookie_controls_breakage_confidence_level.h", "../core/common/cookie_controls_enforcement.h", "../core/common/cookie_controls_status.h", @@ -757,7 +754,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc -@@ -148,6 +148,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -154,6 +154,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( std::map user_specified_settings_to_display; @@ -766,7 +763,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp for (const auto& permission : permission_info_list) { if (base::Contains(permissions_to_display, permission.type)) { -@@ -156,6 +158,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -162,6 +164,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( if (setting_to_display) { user_specified_settings_to_display[permission.type] = *setting_to_display; @@ -775,7 +772,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } } -@@ -172,7 +176,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -178,7 +182,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( ConvertUTF16ToJavaString(env, setting_title), ConvertUTF16ToJavaString(env, setting_title_mid_sentence), static_cast(permission), @@ -785,7 +782,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } -@@ -185,7 +190,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -191,7 +196,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title), ConvertUTF16ToJavaString(env, object_title), static_cast(chosen_object->ui_info->content_settings_type), @@ -798,7 +795,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -1177,6 +1177,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1184,6 +1184,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.source = info.source; permission_info.is_one_time = (info.metadata.session_model() == content_settings::SessionModel::OneTime); @@ -829,7 +826,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per /** * Delegate class for modal permission dialogs. Contains all of the data displayed in a prompt, -@@ -43,6 +44,9 @@ public class PermissionDialogDelegate { +@@ -46,6 +47,9 @@ public class PermissionDialogDelegate { /** The {@link ContentSettingsType}s requested in this dialog. */ private int[] mContentSettingsTypes; @@ -839,7 +836,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per public WindowAndroid getWindow() { return mWindow; } -@@ -72,6 +76,15 @@ public class PermissionDialogDelegate { +@@ -79,6 +83,15 @@ public class PermissionDialogDelegate { PermissionDialogDelegateJni.get().accept(mNativeDelegatePtr, PermissionDialogDelegate.this); } @@ -876,16 +873,16 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per /** * This class creates the model for permission dialog. */ -@@ -34,7 +45,7 @@ class PermissionDialogModel { - TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds( - messageTextView, delegate.getDrawableId(), 0, 0, 0); +@@ -41,7 +52,7 @@ class PermissionDialogModel { + secondaryTextView.setVisibility(View.VISIBLE); + } - return new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS) + PropertyModel pm = new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS) .with(ModalDialogProperties.CONTROLLER, controller) .with(ModalDialogProperties.FOCUS_DIALOG, true) .with(ModalDialogProperties.CUSTOM_VIEW, customView) -@@ -46,6 +57,74 @@ class PermissionDialogModel { +@@ -53,6 +64,74 @@ class PermissionDialogModel { .with(ModalDialogProperties.BUTTON_TAP_PROTECTION_PERIOD_MS, UiUtils.PROMPT_INPUT_PROTECTION_SHORT_DELAY_MS) .build(); @@ -963,7 +960,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc -@@ -67,6 +67,11 @@ void PermissionDialogJavaDelegate::DismissDialog() { +@@ -68,6 +68,11 @@ void PermissionDialogJavaDelegate::DismissDialog() { Java_PermissionDialogDelegate_dismissFromNative(env, j_delegate_); } @@ -975,7 +972,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ // static void PermissionDialogDelegate::Create( content::WebContents* web_contents, -@@ -95,12 +100,26 @@ PermissionDialogDelegate* PermissionDialogDelegate::CreateForTesting( +@@ -96,12 +101,26 @@ PermissionDialogDelegate* PermissionDialogDelegate::CreateForTesting( void PermissionDialogDelegate::Accept(JNIEnv* env, const JavaParamRef& obj) { DCHECK(permission_prompt_); @@ -1016,7 +1013,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.cc b/components/permissions/android/permission_prompt/permission_prompt_android.cc --- a/components/permissions/android/permission_prompt/permission_prompt_android.cc +++ b/components/permissions/android/permission_prompt/permission_prompt_android.cc -@@ -46,6 +46,14 @@ void PermissionPromptAndroid::Accept() { +@@ -47,6 +47,14 @@ void PermissionPromptAndroid::Accept() { delegate_->Accept(); } @@ -1205,7 +1202,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc --- a/components/permissions/permission_context_base.cc +++ b/components/permissions/permission_context_base.cc -@@ -257,6 +257,16 @@ PermissionContextBase::CreatePermissionRequest( +@@ -262,6 +262,16 @@ PermissionContextBase::CreatePermissionRequest( std::move(delete_callback)); } @@ -1222,7 +1219,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm content::PermissionResult PermissionContextBase::GetPermissionStatus( content::RenderFrameHost* render_frame_host, const GURL& requesting_origin, -@@ -466,7 +476,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -506,7 +516,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -1232,7 +1229,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK(content_setting == CONTENT_SETTING_ALLOW || content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); -@@ -481,13 +492,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -521,13 +532,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { @@ -1251,7 +1248,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -539,11 +551,27 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -573,11 +585,27 @@ void PermissionContextBase::NotifyPermissionSet( ContentSetting content_setting, bool is_one_time, bool is_final_decision) { @@ -1280,7 +1277,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -573,6 +601,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -607,6 +635,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time) { @@ -1296,7 +1293,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -582,6 +619,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -616,6 +653,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, constraints.set_session_model(is_one_time ? content_settings::SessionModel::OneTime : content_settings::SessionModel::Durable); @@ -1308,7 +1305,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -143,6 +143,15 @@ class PermissionContextBase : public content_settings::Observer { +@@ -149,6 +149,15 @@ class PermissionContextBase : public content_settings::Observer { // Updates stored content setting if persist is set, updates tab indicators // and runs the callback to finish the request. @@ -1324,7 +1321,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void NotifyPermissionSet(const PermissionRequestID& id, const GURL& requesting_origin, const GURL& embedding_origin, -@@ -164,6 +173,11 @@ class PermissionContextBase : public content_settings::Observer { +@@ -170,6 +179,11 @@ class PermissionContextBase : public content_settings::Observer { // Store the decided permission as a content setting. // virtual since the permission might be stored with different restrictions // (for example for desktop notifications). @@ -1336,7 +1333,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, -@@ -194,6 +208,12 @@ class PermissionContextBase : public content_settings::Observer { +@@ -200,6 +214,12 @@ class PermissionContextBase : public content_settings::Observer { PermissionRequest::PermissionDecidedCallback permission_decided_callback, base::OnceClosure delete_callback) const; @@ -1349,7 +1346,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi base::ObserverList permission_observers_; // Set by subclasses to inform the base class that they will handle adding -@@ -216,7 +236,8 @@ class PermissionContextBase : public content_settings::Observer { +@@ -222,7 +242,8 @@ class PermissionContextBase : public content_settings::Observer { const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -1357,8 +1354,8 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi + bool is_final_decision, + content_settings::LifetimeMode lifetime_option); - raw_ptr browser_context_; - const ContentSettingsType content_settings_type_; + void NotifyObservers(const ContentSettingsPattern& primary_pattern, + const ContentSettingsPattern& secondary_pattern, diff --git a/components/permissions/permission_prompt.h b/components/permissions/permission_prompt.h --- a/components/permissions/permission_prompt.h +++ b/components/permissions/permission_prompt.h @@ -1376,7 +1373,7 @@ diff --git a/components/permissions/permission_prompt.h b/components/permissions diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc --- a/components/permissions/permission_request.cc +++ b/components/permissions/permission_request.cc -@@ -35,6 +35,14 @@ PermissionRequest::PermissionRequest( +@@ -37,6 +37,14 @@ PermissionRequest::PermissionRequest( permission_decided_callback_(std::move(permission_decided_callback)), delete_callback_(std::move(delete_callback)) {} @@ -1391,7 +1388,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio PermissionRequest::~PermissionRequest() { DCHECK(delete_callback_.is_null()); } -@@ -274,19 +282,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { +@@ -276,19 +284,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const { permissions::features::kPermissionStorageAccessAPI); } @@ -1470,7 +1467,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // Called when the user has cancelled the permission request. This // corresponds to a denial, but is segregated in case the context needs to -@@ -170,6 +179,9 @@ class PermissionRequest { +@@ -174,6 +183,9 @@ class PermissionRequest { // Called once a decision is made about the permission. PermissionDecidedCallback permission_decided_callback_; @@ -1555,7 +1552,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1162,32 +1173,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1165,32 +1176,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1598,7 +1595,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1436,7 +1447,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) { +@@ -1439,7 +1450,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) { void PermissionRequestManager::DoAutoResponseForTesting() { switch (auto_response_for_test_) { case ACCEPT_ONCE: diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 2affbd31..c6a42e61 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -2251,6 +2251,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2519,6 +2519,11 @@ public abstract class ChromeActivity return doOpenWebApk(currentTab); } diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index 54e965db..46ada2ea 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -22,8 +22,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -61,6 +61,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting - return new ReaderForAccessibilityDelegate(mProfile); +@@ -95,6 +95,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting + return new TextSizeContrastAccessibilityDelegate(getBrowserContextHandle()); } + private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate { @@ -51,7 +51,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.preferences.SharedPreferencesManager; @@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; -@@ -1417,7 +1418,9 @@ public class RootUiCoordinator +@@ -1438,7 +1439,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -80,22 +80,22 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro + public static final String FLAGS_FORCE_TABLET_UI_ENABLED = "force_tablet_ui_enabled"; /** Keys used to save settings related to homepage. */ - public static final String HOMEPAGE_CUSTOM_URI = "homepage_custom_uri"; + public static final String DEPRECATED_HOMEPAGE_CUSTOM_URI = "homepage_custom_uri"; diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -62,6 +62,7 @@ public class LegacyChromePreferenceKeys { +@@ -64,6 +64,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.FLAGS_CACHED_START_SURFACE_ENABLED, ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED, ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR, + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM, ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, - ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI, + ChromePreferenceKeys.HOMEPAGE_ENABLED, diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -690,7 +690,7 @@ public class LocationBarCoordinator +@@ -691,7 +691,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -107,8 +107,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1730,6 +1730,13 @@ Your Google account may have other forms of browsing history like searches and a - Depending on your settings, Chrome may also send cookies and your current URL +@@ -1765,6 +1765,13 @@ Your Google account may have other forms of browsing history like searches and a + Protection from trackers (third-party cookies, IP tracking, invasive scripts, and more) + @@ -148,7 +148,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn disallowed_extension_deps_ = [ # Components should largely not depend on //extensions. Since // extensions # is not a component target and is linked with //chrome, depending on most -@@ -753,7 +753,7 @@ test("components_unittests") { +@@ -817,7 +817,7 @@ test("components_unittests") { # On other platforms, no components should depend on Chrome. # Since //chrome depends on //extensions, we also only assert_no_deps on # extensions targets for non-lacros builds. @@ -157,7 +157,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn assert_no_deps = [ "//chrome/*" ] assert_no_deps += disallowed_extension_deps_ } -@@ -1042,7 +1042,7 @@ if (use_blink) { +@@ -1103,7 +1103,7 @@ if (use_blink) { # dependency. On other platforms, no components should depend on Chrome. # Since //chrome depends on //extensions, we also only assert_no_deps on # extensions targets for non-lacros builds. @@ -169,7 +169,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml -@@ -31,6 +31,11 @@ found in the LICENSE file. +@@ -35,6 +35,11 @@ found in the LICENSE file. android:summary="@string/reader_for_accessibility_summary" android:title="@string/reader_for_accessibility_title" /> @@ -185,15 +185,15 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java @@ -33,6 +33,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat - public static final String PREF_READER_FOR_ACCESSIBILITY = "reader_for_accessibility"; public static final String PREF_CAPTIONS = "captions"; + public static final String PREF_ZOOM_INFO = "zoom_info"; + private BooleanPreferenceDelegate mForceTabletUIDelegate; + static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; private TextScalePreference mTextScalePref; private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -121,6 +123,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -117,6 +119,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat getPreferenceScreen().removePreference(readerForAccessibilityPref); } @@ -206,7 +206,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener(preference -> { Intent intent = new Intent(Settings.ACTION_CAPTIONING_SETTINGS); -@@ -167,6 +175,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -174,6 +182,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat mFontSizePrefs.setUserFontScaleFactor((Float) newValue); } else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue); @@ -218,9 +218,9 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java -@@ -38,6 +38,8 @@ public interface AccessibilitySettingsDelegate { +@@ -60,6 +60,8 @@ public interface AccessibilitySettingsDelegate { */ - BooleanPreferenceDelegate getReaderForAccessibilityDelegate(); + IntegerPreferenceDelegate getTextSizeContrastAccessibilityDelegate(); + BooleanPreferenceDelegate getForceTabletUIDelegate(); + @@ -230,7 +230,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn --- a/ui/android/BUILD.gn +++ b/ui/android/BUILD.gn -@@ -409,6 +409,8 @@ android_library("ui_no_recycler_view_java") { +@@ -411,6 +411,8 @@ android_library("ui_no_recycler_view_java") { ":ui_android_features_java", ":ui_java_resources", ":ui_utils_java", diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index d5d94dce..470c9899 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -55,6 +55,11 @@ found in the LICENSE file. +@@ -61,6 +61,11 @@ found in the LICENSE file. android:title="@string/incognito_settings_title" android:summary="@string/incognito_settings_summary" android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -39,6 +39,7 @@ import org.chromium.base.BuildInfo; +@@ -40,6 +40,7 @@ import org.chromium.base.BuildInfo; import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CommandLine; @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -1257,8 +1258,10 @@ public class ChromeTabbedActivity extends ChromeActivity<resetlink>reset sync

<resetlink>reset sync

IMAGE diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index ba2ff427..e9b9026e 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -12,15 +12,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -84,6 +84,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment; +@@ -86,6 +86,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment; import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher; import org.chromium.components.browser_ui.settings.PaddedDividerItemDecoration; import org.chromium.components.browser_ui.settings.SettingsLauncher; +import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; - import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment; + import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment; import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; -@@ -399,8 +400,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -417,8 +418,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finish(); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index 71500535..5a69ec9a 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -273,7 +273,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h -@@ -1936,6 +1936,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, +@@ -1937,6 +1937,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index 06c23326..5fc32e93 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -186,7 +186,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -36,6 +36,7 @@ +@@ -37,6 +37,7 @@ #include "third_party/blink/public/common/peerconnection/webrtc_ip_handling_policy.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/platform.h" @@ -194,7 +194,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/web_document.h" -@@ -764,6 +765,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -781,6 +782,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // origin. WebRTCIPHandlingPolicy policy = GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy); diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index b0a8f647..4ddc862d 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -40,7 +40,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1299,6 +1299,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1314,6 +1314,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -48,7 +48,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; frame_host->ForEachRenderFrameHostWithAction( -@@ -1312,6 +1313,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1327,6 +1328,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -200,7 +200,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -13542,12 +13542,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -13489,12 +13489,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( base::Value::Dict body; if (!reason.empty()) body.Set("reason", reason); @@ -235,7 +235,7 @@ diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/b diff --git a/content/public/common/content_switch_dependent_feature_overrides.cc b/content/public/common/content_switch_dependent_feature_overrides.cc --- a/content/public/common/content_switch_dependent_feature_overrides.cc +++ b/content/public/common/content_switch_dependent_feature_overrides.cc -@@ -7,6 +7,7 @@ +@@ -9,6 +9,7 @@ #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" #include "net/base/features.h" @@ -246,7 +246,7 @@ diff --git a/content/public/common/content_switch_dependent_feature_overrides.cc diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -242,7 +242,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( +@@ -234,7 +234,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( #if BUILDFLAG(ENABLE_REPORTING) BASE_FEATURE(kDocumentReporting, "DocumentReporting", @@ -290,7 +290,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -14,10 +14,10 @@ +@@ -15,10 +15,10 @@ namespace network::features { BASE_FEATURE(kNetworkErrorLogging, @@ -307,7 +307,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn --- a/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn -@@ -1431,7 +1431,6 @@ mojom("mojom") { +@@ -1427,7 +1427,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -318,7 +318,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1189,6 +1189,7 @@ interface NetworkContext { +@@ -1196,6 +1196,7 @@ interface NetworkContext { // provided |network_isolation_key|. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -326,7 +326,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1202,6 +1203,7 @@ interface NetworkContext { +@@ -1209,6 +1210,7 @@ interface NetworkContext { // Note that this queued report will never be delivered if no reporting // endpoint matching is registered for with the provided // |network_isolation_key|. @@ -372,7 +372,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h" #include "services/network/public/mojom/source_location.mojom-blink.h" -@@ -2505,9 +2506,11 @@ void LocalFrame::MainFrameInteractive() { +@@ -2502,9 +2503,11 @@ void LocalFrame::MainFrameInteractive() { } } @@ -398,7 +398,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b #include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h" #include "services/metrics/public/cpp/ukm_source_id.h" #include "services/network/public/mojom/fetch_api.mojom-blink-forward.h" -@@ -629,9 +629,9 @@ class CORE_EXPORT LocalFrame final +@@ -627,9 +627,9 @@ class CORE_EXPORT LocalFrame final void FinishedScrollSequence(); SmoothScrollSequencer* GetSmoothScrollSequencer() const; diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index d277a9f9..4e64f052 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -3515,7 +3515,6 @@ generate_jni("chrome_jni_headers") { +@@ -3603,7 +3603,6 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java", "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java", "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java", @@ -32,7 +32,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1062,7 +1062,6 @@ chrome_java_sources = [ +@@ -1074,7 +1074,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/suggestions/tile/TileGroupDelegateImpl.java", "java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java", "java/src/org/chromium/chrome/browser/suggestions/tile/TopSitesTileView.java", @@ -43,7 +43,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3110,8 +3110,6 @@ static_library("browser") { +@@ -3182,8 +3182,6 @@ static_library("browser") { "feed/android/refresh_task_scheduler_impl.cc", "feed/android/refresh_task_scheduler_impl.h", "feed/android/web_feed_bridge.cc", @@ -52,7 +52,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "file_select_helper_contacts_android.cc", "file_select_helper_contacts_android.h", "first_run/android/first_run_prefs.cc", -@@ -3328,10 +3326,6 @@ static_library("browser") { +@@ -3398,10 +3396,6 @@ static_library("browser") { "ssl/chrome_security_state_model_delegate.h", "ssl/known_interception_disclosure_infobar.cc", "ssl/known_interception_disclosure_infobar.h", @@ -66,7 +66,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -1021,9 +1021,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -1027,9 +1027,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { settings_api::PrefType::PREF_TYPE_BOOLEAN; #endif diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 6cfe2da2..766d7bb3 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc -@@ -1184,6 +1184,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1176,6 +1176,12 @@ bool WebMediaPlayerImpl::HasAudio() const { return pipeline_metadata_.has_audio; } @@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( const WebVector& enabledTrackIds) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3513,7 +3519,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3484,7 +3490,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // Audio only stream is allowed to play when in background. diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index 382cf8cf..14bf9980 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3905,6 +3905,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4168,6 +4168,10 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kKioskEnableAppServiceDescription, kOsCrOS, FEATURE_VALUE_TYPE(features::kKioskEnableAppService)}, #endif // BUILDFLAG(IS_CHROMEOS) @@ -37,7 +37,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3694,6 +3694,11 @@ const char kWebTransportDeveloperModeDescription[] = +@@ -3735,6 +3735,11 @@ const char kWebTransportDeveloperModeDescription[] = "When enabled, removes the requirement that all certificates used for " "WebTransport over HTTP/3 are issued by a known certificate root."; @@ -52,7 +52,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2146,6 +2146,9 @@ extern const char kWebRtcRemoteEventLogDescription[]; +@@ -2171,6 +2171,9 @@ extern const char kWebRtcRemoteEventLogDescription[]; extern const char kWebrtcUseMinMaxVEADimensionsName[]; extern const char kWebrtcUseMinMaxVEADimensionsDescription[]; @@ -65,7 +65,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -252,6 +252,10 @@ BASE_FEATURE(kBiddingAndScoringDebugReportingAPI, +@@ -258,6 +258,10 @@ BASE_FEATURE(kBiddingAndScoringDebugReportingAPI, "BiddingAndScoringDebugReportingAPI", base::FEATURE_DISABLED_BY_DEFAULT); @@ -79,7 +79,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -155,6 +155,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapConcurrentSweeping); +@@ -158,6 +158,8 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapConcurrentSweeping); BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapIncrementalMarking); BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kBlinkHeapIncrementalMarkingStress); @@ -178,7 +178,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h --- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h +++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h -@@ -338,6 +338,8 @@ class MODULES_EXPORT BaseAudioContext +@@ -339,6 +339,8 @@ class MODULES_EXPORT BaseAudioContext // if the execution context does not exist. bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&); diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index fee6aec0..b8871b08 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -59,7 +59,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h -@@ -88,6 +88,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -89,6 +89,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { virtual SubresourceFilter* GetSubresourceFilter() const = 0; virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0; @@ -70,7 +70,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -597,6 +597,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -588,6 +588,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } @@ -149,7 +149,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/third_party/blink/renderer/core/loader/worker_fetch_context.h --- a/third_party/blink/renderer/core/loader/worker_fetch_context.h +++ b/third_party/blink/renderer/core/loader/worker_fetch_context.h -@@ -63,6 +63,7 @@ class WorkerFetchContext final : public BaseFetchContext { +@@ -64,6 +64,7 @@ class WorkerFetchContext final : public BaseFetchContext { bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index ac0b0762..12fa309a 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -108,7 +108,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc -@@ -823,6 +823,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() +@@ -829,6 +829,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() RegisterPseudoScheme(url::kJavaScriptScheme); RegisterPseudoScheme(kViewSourceScheme); RegisterPseudoScheme(kGoogleChromeScheme); @@ -119,7 +119,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1058,6 +1058,8 @@ component("net") { +@@ -1056,6 +1056,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 6dfedb7c..3aa32b9b 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -67,7 +67,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -301,6 +301,7 @@ if (current_toolchain == default_toolchain) { +@@ -304,6 +304,7 @@ if (current_toolchain == default_toolchain) { "//chrome/android/modules/image_editor/provider:java", "//chrome/android/modules/stack_unwinder/provider:java", "//chrome/android/webapk/libs/client:client_java", @@ -78,7 +78,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -441,6 +441,7 @@ chrome_java_resources = [ +@@ -448,6 +448,7 @@ chrome_java_resources = [ "java/res/layout/account_chooser_dialog_title.xml", "java/res/layout/account_divider_preference.xml", "java/res/layout/account_management_account_row.xml", @@ -86,7 +86,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/auto_sign_in_first_run_dialog.xml", "java/res/layout/autofill_billing_address_dropdown.xml", "java/res/layout/autofill_card_name_and_number.xml", -@@ -639,6 +640,7 @@ chrome_java_resources = [ +@@ -648,6 +649,7 @@ chrome_java_resources = [ "java/res/xml/about_chrome_preferences.xml", "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", @@ -97,7 +97,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -948,6 +948,8 @@ chrome_java_sources = [ +@@ -960,6 +960,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", @@ -105,7 +105,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java + "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java", "java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java", "java/src/org/chromium/chrome/browser/policy/PolicyAuditorBridge.java", - "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderServiceImpl.java", + "java/src/org/chromium/chrome/browser/printing/TabPrinter.java", diff --git a/chrome/android/java/res/layout/adblock_editor.xml b/chrome/android/java/res/layout/adblock_editor.xml new file mode 100644 --- /dev/null @@ -428,7 +428,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java -@@ -783,7 +783,7 @@ public class TabModelImpl extends TabModelJniBridge { +@@ -781,7 +781,7 @@ public class TabModelImpl extends TabModelJniBridge { protected boolean createTabWithWebContents( Tab parent, Profile profile, WebContents webContents) { return getTabCreator(profile.isOffTheRecord()) @@ -440,7 +440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -14314,6 +14314,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -14317,6 +14317,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -511,7 +511,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1128,6 +1128,26 @@ BrowserProcessImpl::component_updater() { +@@ -1130,6 +1130,26 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -560,7 +560,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -429,6 +429,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -431,6 +431,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -573,7 +573,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn -@@ -23,6 +23,7 @@ android_library("java") { +@@ -24,6 +24,7 @@ android_library("java") { "android/java/src/org/chromium/chrome/browser/flags/StringCachedFieldTrialParameter.java", "android/java/src/org/chromium/chrome/browser/flags/ValuesOverridden.java", "android/java/src/org/chromium/chrome/browser/flags/ValuesReturned.java", @@ -581,7 +581,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn ] deps = [ "//base:base_java", -@@ -44,6 +45,7 @@ android_library("java") { +@@ -45,6 +46,7 @@ android_library("java") { generate_jni("jni_headers") { sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ] sources += [ @@ -589,7 +589,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", ] -@@ -58,6 +60,7 @@ static_library("flags_android") { +@@ -59,6 +61,7 @@ static_library("flags_android") { "android/chrome_session_state.cc", "android/chrome_session_state.h", ] @@ -651,7 +651,7 @@ new file mode 100755 diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -588,6 +588,9 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { +@@ -604,6 +604,9 @@ SystemNetworkContextManager::~SystemNetworkContextManager() { void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { StubResolverConfigReader::RegisterPrefs(registry); @@ -704,7 +704,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -2610,6 +2610,9 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2598,6 +2598,9 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -1925,15 +1925,15 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc --- a/components/subresource_filter/core/common/indexed_ruleset.cc +++ b/components/subresource_filter/core/common/indexed_ruleset.cc -@@ -5,6 +5,7 @@ - #include "components/subresource_filter/core/common/indexed_ruleset.h" +@@ -6,6 +6,7 @@ #include "base/check.h" + #include "base/hash/hash.h" +#include "base/logging.h" #include "base/metrics/histogram_macros.h" #include "base/trace_event/trace_event.h" #include "components/subresource_filter/core/common/first_party_origin.h" -@@ -36,8 +37,10 @@ VerifyStatus GetVerifyStatus(const uint8_t* buffer, +@@ -37,8 +38,10 @@ VerifyStatus GetVerifyStatus(const uint8_t* buffer, // least once. The verifier detects a subset of the errors detected by the // checksum, and is unneeded once expected_checksum is consistently nonzero. flatbuffers::Verifier verifier(buffer, size); @@ -1948,7 +1948,7 @@ diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/comp diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -152,8 +152,8 @@ BASE_FEATURE(kAutofillSendUnidentifiedKeyAfterFill, +@@ -158,8 +158,8 @@ BASE_FEATURE(kAutofillUseDomNodeIdForRendererId, // Apply lazy-loading to ad frames which have embeds likely impacting Core Web // Vitals. BASE_FEATURE(kAutomaticLazyFrameLoadingToAds, @@ -1959,7 +1959,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea // The timeout value that forces loading iframes that are lazy loaded by // LazyAds. After this timeout, the frame loading is triggered even when the -@@ -173,8 +173,8 @@ const base::FeatureParam kSkipFrameCountForLazyAds( +@@ -179,8 +179,8 @@ const base::FeatureParam kSkipFrameCountForLazyAds( // Apply lazy-loading to frames which have embeds likely impacting Core Web // Vitals. BASE_FEATURE(kAutomaticLazyFrameLoadingToEmbeds, @@ -1970,7 +1970,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea // The timeout value that forces loading iframes that are lazy loaded by // LazyEmbeds. After this timeout, the frame loading is triggered even when the -@@ -196,8 +196,8 @@ const base::FeatureParam kSkipFrameCountForLazyEmbeds( +@@ -202,8 +202,8 @@ const base::FeatureParam kSkipFrameCountForLazyEmbeds( // to gather Blink.AutomaticLazyLoadFrame.LazyEmbedFrameCount UKM data even when // kAutomaticLazyFrameLoadingToEmbeds is disabled. BASE_FEATURE(kAutomaticLazyFrameLoadingToEmbedUrls, diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index aabccaaa..1388407b 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -277,8 +277,16 @@ class LocationBarMediator +@@ -278,8 +278,16 @@ class LocationBarMediator if (mNativeInitialized) RecordUserAction.record("FocusLocation"); // Don't clear Omnibox if the user just pasted text to NTP Omnibox. if (mShouldClearOmniboxOnFocus) { @@ -65,7 +65,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private int mPreviousWidth; @ScrollType -@@ -302,6 +304,27 @@ public abstract class UrlBar extends AutocompleteEditText { +@@ -307,6 +309,27 @@ public abstract class UrlBar extends AutocompleteEditText { mPendingScroll = false; } fixupTextDirection(); diff --git a/build/patches/Disable-Accessibility-service-by-default.patch b/build/patches/Disable-Accessibility-service-by-default.patch index 95eb7f06..b807e12b 100644 --- a/build/patches/Disable-Accessibility-service-by-default.patch +++ b/build/patches/Disable-Accessibility-service-by-default.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1791,6 +1791,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1826,6 +1826,12 @@ Your Google account may have other forms of browsing history like searches and a Check now @@ -45,7 +45,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java -@@ -21,6 +21,9 @@ import org.chromium.components.user_prefs.UserPrefs; +@@ -20,6 +20,9 @@ import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; diff --git a/build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch b/build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch index e9234db0..8629488c 100644 --- a/build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch +++ b/build/patches/Disable-DRM-media-origin-IDs-preprovisioning.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -1087,8 +1087,8 @@ BASE_FEATURE(kMediaDrmPersistentLicense, +@@ -1131,8 +1131,8 @@ BASE_FEATURE(kMediaDrmPersistentLicense, // MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs // which will trigger provisioning process after MediaDrmBridge is created. BASE_FEATURE(kMediaDrmPreprovisioning, diff --git a/build/patches/Disable-FLoC-and-privacy-sandbox.patch b/build/patches/Disable-FLoC-and-privacy-sandbox.patch index c76d7868..94669cd8 100644 --- a/build/patches/Disable-FLoC-and-privacy-sandbox.patch +++ b/build/patches/Disable-FLoC-and-privacy-sandbox.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3416,6 +3416,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -3430,6 +3430,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* source_origin, const url::Origin* destination_origin, const url::Origin* reporting_origin) { @@ -48,7 +48,7 @@ diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc --- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc -@@ -115,6 +115,7 @@ bool PrivacySandboxSettingsDelegate::HasAppropriateTopicsConsent() const { +@@ -150,6 +150,7 @@ bool PrivacySandboxSettingsDelegate::HasAppropriateTopicsConsent() const { bool PrivacySandboxSettingsDelegate::PrivacySandboxRestrictedNoticeRequired() const { @@ -70,7 +70,7 @@ diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc b/chrom diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc --- a/components/history/core/browser/history_backend.cc +++ b/components/history/core/browser/history_backend.cc -@@ -679,18 +679,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id, +@@ -655,18 +655,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id, if (!visit_id) return; @@ -93,14 +93,14 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc --- a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc +++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc -@@ -286,6 +286,7 @@ void PrivacySandboxAttestations::LoadAttestationsInternal( +@@ -339,6 +339,7 @@ void PrivacySandboxAttestations::LoadAttestationsInternal( void PrivacySandboxAttestations::SetParsedAttestations( base::Version version, PrivacySandboxAttestationsMap attestations_map) { + if ((true)) return; file_version_ = std::move(version); attestations_map_ = std::move(attestations_map); - attestations_parse_progress_ = Progress::kFinished; + diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc --- a/components/privacy_sandbox/privacy_sandbox_features.cc +++ b/components/privacy_sandbox/privacy_sandbox_features.cc @@ -109,7 +109,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components BASE_FEATURE(kPrivacySandboxSettings4, - "PrivacySandboxSettings4", -- base::FEATURE_DISABLED_BY_DEFAULT); +- base::FEATURE_ENABLED_BY_DEFAULT); + "PrivacySandboxSettings4", // must be disabled + base::FEATURE_DISABLED_BY_DEFAULT); // in bromite @@ -161,7 +161,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc --- a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc +++ b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc -@@ -102,7 +102,7 @@ base::Value::Dict CreateBlockedTopicEntry(const CanonicalTopic& topic) { +@@ -120,7 +120,7 @@ std::set GetTopicsSetFromString( // static bool PrivacySandboxSettingsImpl::IsAllowed(Status status) { @@ -170,8 +170,8 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo } // static -@@ -203,7 +203,8 @@ PrivacySandboxSettingsImpl::GetFinchDisabledTopics() { - return finch_disabled_topics_; +@@ -229,7 +229,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() { + return finch_prioritized_topics_; } -bool PrivacySandboxSettingsImpl::IsTopicsAllowed() const { @@ -180,7 +180,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo // M1 specific if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings4)) { Status status = GetM1TopicAllowedStatus(); -@@ -260,7 +261,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext( +@@ -286,7 +287,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext( IsPrivacySandboxEnabledForContext(top_frame_origin, url); } @@ -190,7 +190,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo const auto& blocked_topics = pref_service_->GetList(prefs::kPrivacySandboxBlockedTopics); -@@ -446,6 +448,7 @@ bool PrivacySandboxSettingsImpl::MaySendAttributionReport( +@@ -488,6 +490,7 @@ bool PrivacySandboxSettingsImpl::MaySendAttributionReport( void PrivacySandboxSettingsImpl::SetFledgeJoiningAllowed( const std::string& top_frame_etld_plus1, bool allowed) { @@ -198,7 +198,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); -@@ -516,7 +519,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( +@@ -558,7 +561,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( } bool PrivacySandboxSettingsImpl::IsFledgeJoiningAllowed( @@ -208,8 +208,8 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); auto& pref_data = scoped_pref_update.Get(); -@@ -671,7 +675,8 @@ bool PrivacySandboxSettingsImpl::IsPrivateAggregationAllowed( - reporting_origin.GetURL()); +@@ -727,7 +731,8 @@ bool PrivacySandboxSettingsImpl::IsPrivateAggregationDebugModeAllowed( + net::CookieSettingOverrides()); } -bool PrivacySandboxSettingsImpl::IsPrivacySandboxEnabled() const { @@ -218,7 +218,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo PrivacySandboxSettingsImpl::Status status = GetPrivacySandboxAllowedStatus(); if (!IsAllowed(status)) { return false; -@@ -709,7 +714,8 @@ void PrivacySandboxSettingsImpl::SetTopicsBlockedForTesting() { +@@ -765,7 +770,8 @@ void PrivacySandboxSettingsImpl::SetTopicsBlockedForTesting() { pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabledV2, false); } @@ -228,7 +228,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabledV2, enabled); } -@@ -771,7 +777,10 @@ bool PrivacySandboxSettingsImpl::IsPrivacySandboxEnabledForContext( +@@ -826,7 +832,10 @@ bool PrivacySandboxSettingsImpl::IsPrivacySandboxEnabledForContext( net::CookieSettingOverrides()); } @@ -240,7 +240,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo pref_service_->SetTime(prefs::kPrivacySandboxTopicsDataAccessibleSince, base::Time::Now()); -@@ -784,6 +793,7 @@ PrivacySandboxSettingsImpl::Status +@@ -839,6 +848,7 @@ PrivacySandboxSettingsImpl::Status PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( const url::Origin& top_frame_origin, const GURL& url) const { diff --git a/build/patches/Disable-NTP-remote-suggestions-by-default.patch b/build/patches/Disable-NTP-remote-suggestions-by-default.patch index b7d4139d..b5bfbdb1 100644 --- a/build/patches/Disable-NTP-remote-suggestions-by-default.patch +++ b/build/patches/Disable-NTP-remote-suggestions-by-default.patch @@ -10,16 +10,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/feed/core/shared_prefs/pref_names.cc b/components/feed/core/shared_prefs/pref_names.cc --- a/components/feed/core/shared_prefs/pref_names.cc +++ b/components/feed/core/shared_prefs/pref_names.cc -@@ -19,8 +19,8 @@ const char kEnableSnippets[] = "ntp_snippets.enable"; - const char kArticlesListVisible[] = "ntp_snippets.list_visible"; +@@ -24,8 +24,8 @@ const char kArticlesListVisible[] = "ntp_snippets.list_visible"; + const char kEnableSnippetsByDse[] = "ntp_snippets_by_dse.enable"; void RegisterFeedSharedProfilePrefs(PrefRegistrySimple* registry) { - registry->RegisterBooleanPref(kEnableSnippets, true); - registry->RegisterBooleanPref(kArticlesListVisible, true); + registry->RegisterBooleanPref(kEnableSnippets, false); + registry->RegisterBooleanPref(kArticlesListVisible, false); + registry->RegisterBooleanPref(kEnableSnippetsByDse, true); } - } // namespace prefs -- 2.25.1 diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index 30debbad..d2a12e4f 100644 --- a/build/patches/Disable-PrivacyGuide.patch +++ b/build/patches/Disable-PrivacyGuide.patch @@ -4,9 +4,9 @@ Subject: Disable PrivacyGuide License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/browser/ui/webui/settings/settings_ui.cc | 2 +- - chrome/common/chrome_features.cc | 8 ++++---- - 2 files changed, 5 insertions(+), 5 deletions(-) + chrome/browser/ui/webui/settings/settings_ui.cc | 2 +- + chrome/common/chrome_features.cc | 16 ++++++++-------- + 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc --- a/chrome/browser/ui/webui/settings/settings_ui.cc @@ -23,7 +23,31 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -475,8 +475,8 @@ BASE_FEATURE(kPrivacyGuideAndroid3, +@@ -475,26 +475,26 @@ BASE_FEATURE(kGeoLanguage, "GeoLanguage", base::FEATURE_DISABLED_BY_DEFAULT); + // Enables or disables the Privacy Guide v3 update of the Privacy Guide feature + // in Chrome Settings. + BASE_FEATURE(kPrivacyGuide3, +- "PrivacyGuide3", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "PrivacyGuide3", // always disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite + + // Enables or disables the Privacy Guide preload card update of the Privacy + // Guide feature in Chrome Settings. Also, this requires the PrivacyGuide3 + // feature to be enabled as well. + BASE_FEATURE(kPrivacyGuidePreload, +- "PrivacyGuidePreload", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "PrivacyGuidePreload", // always disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite + + #if BUILDFLAG(IS_ANDROID) + BASE_FEATURE(kPrivacyGuideAndroid3, +- "PrivacyGuideAndroid3", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "PrivacyGuideAndroid3", // always disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite + #endif #if BUILDFLAG(IS_ANDROID) BASE_FEATURE(kPrivacyGuidePreloadAndroid, @@ -34,16 +58,5 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc #endif #if !BUILDFLAG(IS_ANDROID) -@@ -1042,8 +1042,8 @@ BASE_FEATURE(kPrintPreviewSetupAssistance, - #endif - - BASE_FEATURE(kPrivacyGuideAndroid, -- "PrivacyGuideAndroid", -- base::FEATURE_DISABLED_BY_DEFAULT); -+ "PrivacyGuideAndroid", // always disabled -+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite - - #if BUILDFLAG(IS_ANDROID) - BASE_FEATURE(kPrivacyGuideAndroidPostMVP, -- 2.25.1 diff --git a/build/patches/Disable-StartSurface-feature.patch b/build/patches/Disable-StartSurface-feature.patch index 6ea95149..98f6037e 100644 --- a/build/patches/Disable-StartSurface-feature.patch +++ b/build/patches/Disable-StartSurface-feature.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1129,8 +1129,8 @@ BASE_FEATURE(kSearchEnginesPromoV3, +@@ -1145,8 +1145,8 @@ BASE_FEATURE(kSearchEnginesPromoV3, BASE_FEATURE(kSpareTab, "SpareTab", base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kStartSurfaceAndroid, @@ -27,7 +27,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -607,7 +607,7 @@ public abstract class ChromeFeatureList { +@@ -613,7 +613,7 @@ public abstract class ChromeFeatureList { new CachedFlag(SHOULD_IGNORE_INTENT_SKIP_INTERNAL_CHECK, true); public static final CachedFlag sSpareTab = new CachedFlag(SPARE_TAB, false); public static final CachedFlag sStartSurfaceAndroid = new CachedFlag( diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index c255e0f0..963360e5 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -39,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5373,6 +5373,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5635,6 +5635,12 @@ const FeatureEntry kFeatureEntries[] = { {"enable-tls13-kyber", flag_descriptions::kEnableTLS13KyberName, flag_descriptions::kEnableTLS13KyberDescription, kOsAll, FEATURE_VALUE_TYPE(net::features::kPostQuantumKyber)}, @@ -55,7 +55,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1107,6 +1107,14 @@ const char kAccessibilityAcceleratorNotificationsTimeoutDescription[] = +@@ -1111,6 +1111,14 @@ const char kAccessibilityAcceleratorNotificationsTimeoutDescription[] = "shortcut (docked magnifier, screen magnifier and high contrast) to time " "out instead of remaining pinned."; @@ -73,7 +73,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -635,6 +635,12 @@ extern const char kDevicePostureDescription[]; +@@ -641,6 +641,12 @@ extern const char kDevicePostureDescription[]; extern const char kEnableTLS13EarlyDataName[]; extern const char kEnableTLS13EarlyDataDescription[]; @@ -142,7 +142,7 @@ diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc #include "url/gurl.h" #include "url/scheme_host_port.h" #include "url/url_constants.h" -@@ -196,6 +197,38 @@ std::set HostsFromOrigins(std::set origins) { +@@ -195,6 +196,38 @@ std::set HostsFromOrigins(std::set origins) { } // namespace @@ -181,7 +181,7 @@ diff --git a/net/quic/quic_stream_factory.cc b/net/quic/quic_stream_factory.cc // Refcounted class that owns quic::QuicCryptoClientConfig and tracks how many // consumers are using it currently. When the last reference is freed, the // QuicCryptoClientConfigHandle informs the owning QuicStreamFactory, moves it -@@ -2354,7 +2387,7 @@ QuicStreamFactory::CreateCryptoConfigHandle( +@@ -2353,7 +2386,7 @@ QuicStreamFactory::CreateCryptoConfigHandle( sct_auditing_delegate_, HostsFromOrigins(params_.origins_to_force_quic_on), actual_network_anonymization_key), diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 2a73c355..ebd25a16 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/predictors/loading_predictor.cc | 4 +- .../predictors/loading_predictor_config.cc | 4 +- .../browser/predictors/predictors_features.cc | 14 +--- - chrome/common/chrome_features.cc | 10 +-- + chrome/common/chrome_features.cc | 6 +- .../browser/autofill_optimization_guide.cc | 5 +- .../optimization_guide/core/hints_fetcher.cc | 1 + .../optimization_guide/core/hints_manager.cc | 5 ++ @@ -23,15 +23,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/prediction_model_download_manager.cc | 6 +- .../core/prediction_model_fetcher_impl.cc | 1 + components/optimization_guide/features.gni | 3 +- - components/permissions/features.cc | 8 +-- + components/permissions/features.cc | 16 ++--- third_party/blink/common/features.cc | 12 ++-- .../platform/runtime_enabled_features.json5 | 2 +- - 21 files changed, 79 insertions(+), 109 deletions(-) + 21 files changed, 81 insertions(+), 111 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -890,10 +890,10 @@ static_library("browser") { +@@ -891,10 +891,10 @@ static_library("browser") { "navigation_predictor/navigation_predictor_metrics_document_data.h", "navigation_predictor/navigation_predictor_preconnect_client.cc", "navigation_predictor/navigation_predictor_preconnect_client.h", @@ -49,7 +49,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc --- a/chrome/browser/browser_features.cc +++ b/chrome/browser/browser_features.cc -@@ -239,22 +239,22 @@ BASE_FEATURE(kIncomingCallNotifications, +@@ -255,22 +255,22 @@ BASE_FEATURE(kIncomingCallNotifications, // Enables omnibox trigger prerendering. BASE_FEATURE(kOmniboxTriggerForPrerender2, @@ -139,7 +139,7 @@ diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/ diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc -@@ -333,7 +333,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -343,7 +343,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -224,29 +224,7 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -1008,8 +1008,8 @@ BASE_FEATURE(kPermissionAuditing, - // Enables using the prediction service for permission prompts. We will keep - // this feature in order to allow us to update the holdback chance via finch. - BASE_FEATURE(kPermissionPredictions, -- "PermissionPredictions", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ "PermissionPredictions", // disabled by default -+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite - - // The holdback chance is 30% but it can also be configured/updated - // through finch if needed. -@@ -1020,8 +1020,8 @@ const base::FeatureParam kPermissionPredictionsHoldbackChance( - - // Enables using the prediction service for geolocation permission prompts. - BASE_FEATURE(kPermissionGeolocationPredictions, -- "PermissionGeolocationPredictions", -- base::FEATURE_ENABLED_BY_DEFAULT); -+ "PermissionGeolocationPredictions", // disabled by default -+ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite - - const base::FeatureParam - kPermissionGeolocationPredictionsHoldbackChance( -@@ -1037,7 +1037,7 @@ BASE_FEATURE(kPluginVm, "PluginVm", base::FEATURE_DISABLED_BY_DEFAULT); +@@ -1044,7 +1044,7 @@ BASE_FEATURE(kPluginVm, "PluginVm", base::FEATURE_DISABLED_BY_DEFAULT); // Allows Chrome to do preconnect when prerender fails. BASE_FEATURE(kPrerenderFallbackToPreconnect, "PrerenderFallbackToPreconnect", @@ -255,6 +233,17 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc #if BUILDFLAG(IS_CHROMEOS) // Enable improved printer state and error state messaging for Print Preview. +@@ -1105,8 +1105,8 @@ BASE_FEATURE(kSafetyCheckExtensions, + + // Enables notification permission module in Safety Check. + BASE_FEATURE(kSafetyCheckNotificationPermissions, +- "SafetyCheckNotificationPermissions", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "SafetyCheckNotificationPermissions", // disabled by default ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite + + const base::FeatureParam + kSafetyCheckNotificationPermissionsMinEnagementLimit{ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/components/autofill/core/browser/autofill_optimization_guide.cc --- a/components/autofill/core/browser/autofill_optimization_guide.cc +++ b/components/autofill/core/browser/autofill_optimization_guide.cc @@ -287,7 +276,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/optimization_guide/core/hints_fetcher.cc --- a/components/optimization_guide/core/hints_fetcher.cc +++ b/components/optimization_guide/core/hints_fetcher.cc -@@ -185,6 +185,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints( +@@ -178,6 +178,7 @@ bool HintsFetcher::FetchOptimizationGuideServiceHints( const std::string& access_token, bool skip_cache, HintsFetchedCallback hints_fetched_callback) { @@ -327,7 +316,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op diff --git a/components/optimization_guide/core/optimization_guide_features.cc b/components/optimization_guide/core/optimization_guide_features.cc --- a/components/optimization_guide/core/optimization_guide_features.cc +++ b/components/optimization_guide/core/optimization_guide_features.cc -@@ -33,13 +33,6 @@ namespace features { +@@ -34,13 +34,6 @@ namespace features { namespace { @@ -341,7 +330,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b constexpr auto enabled_by_default_mobile_only = #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) true; -@@ -47,13 +40,6 @@ constexpr auto enabled_by_default_mobile_only = +@@ -48,13 +41,6 @@ constexpr auto enabled_by_default_mobile_only = false; #endif @@ -355,7 +344,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b // Returns whether |locale| is a supported locale for |feature|. // // This matches |locale| with the "supported_locales" feature param value in -@@ -99,17 +85,17 @@ bool IsSupportedLocaleForFeature( +@@ -149,17 +135,17 @@ std::set GetOauthScopesForFeature(const base::Feature& feature) { // Enables the syncing of the Optimization Hints component, which provides // hints for what optimizations can be applied on a page load. BASE_FEATURE(kOptimizationHints, @@ -379,7 +368,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b // Enables performance info in the context menu and fetching from a remote // Optimization Guide Service. -@@ -119,33 +105,29 @@ BASE_FEATURE(kContextMenuPerformanceInfoAndRemoteHintFetching, +@@ -169,33 +155,29 @@ BASE_FEATURE(kContextMenuPerformanceInfoAndRemoteHintFetching, // Enables the prediction of optimization targets. BASE_FEATURE(kOptimizationTargetPrediction, @@ -410,7 +399,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b // Enables fetching page metadata from the remote Optimization Guide service. BASE_FEATURE(kRemotePageMetadata, - "RemotePageMetadata", -- base::FEATURE_DISABLED_BY_DEFAULT); +- enabled_by_default_desktop_only); + "RemotePageMetadata", // disabled by default + base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite @@ -423,7 +412,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b // Enables the page visibility model to be annotated on every page load. BASE_FEATURE(kPageVisibilityPageContentAnnotations, "PageVisibilityPageContentAnnotations", -@@ -168,8 +150,8 @@ BASE_FEATURE(kPageEntitiesModelResetOnShutdown, +@@ -218,8 +200,8 @@ BASE_FEATURE(kPageEntitiesModelResetOnShutdown, // Enables push notification of hints. BASE_FEATURE(kPushNotifications, @@ -434,7 +423,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b // This feature flag does not turn off any behavior, it is only used for // experiment parameters. -@@ -182,21 +164,21 @@ BASE_FEATURE(kOptimizationGuideMetadataValidation, +@@ -232,21 +214,21 @@ BASE_FEATURE(kOptimizationGuideMetadataValidation, "OptimizationGuideMetadataValidation", base::FEATURE_DISABLED_BY_DEFAULT); @@ -462,7 +451,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b BASE_FEATURE(kOptimizationGuideUseContinueOnShutdownForPageContentAnnotations, "OptimizationGuideUseContinueOnShutdownForPageContentAnnotations", -@@ -231,8 +213,8 @@ BASE_FEATURE(kPageContentAnnotationsPersistSalientImageMetadata, +@@ -281,8 +263,8 @@ BASE_FEATURE(kPageContentAnnotationsPersistSalientImageMetadata, // Killswitch for fetching on search results from a remote Optimization Guide // Service. BASE_FEATURE(kOptimizationGuideFetchingForSRP, @@ -473,7 +462,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b // Enables the model store to save relative paths computed from the base model // store dir. Storing as relative path in the model store is needed for IOS, -@@ -511,7 +493,7 @@ size_t MaxURLKeyedHintCacheSize() { +@@ -566,7 +548,7 @@ size_t MaxURLKeyedHintCacheSize() { bool ShouldPersistHintsToDisk() { return GetFieldTrialParamByFeatureAsBool(kOptimizationHints, @@ -546,7 +535,7 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -92,12 +92,12 @@ BASE_FEATURE(kFailFastQuietChip, +@@ -93,24 +93,24 @@ BASE_FEATURE(kFailFastQuietChip, // When enabled, use the value of the `service_url` FeatureParam as the url // for the Web Permission Predictions Service. BASE_FEATURE(kPermissionPredictionServiceUseUrlOverride, @@ -562,11 +551,27 @@ diff --git a/components/permissions/features.cc b/components/permissions/feature + base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite BASE_FEATURE(kPermissionOnDeviceGeolocationPredictions, - "PermissionOnDeviceGeolocationPredictions", +- "PermissionOnDeviceGeolocationPredictions", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "PermissionOnDeviceGeolocationPredictions", // disabled by default ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite + + BASE_FEATURE(kPermissionDedicatedCpssSetting, + "PermissionDedicatedCpssSettings", + base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kPermissionPredictionsV2, +- "PermissionPredictionsV2", +- base::FEATURE_DISABLED_BY_DEFAULT); ++ "PermissionPredictionsV2", // disabled by default ++ base::FEATURE_DISABLED_BY_DEFAULT); // in Bromite + + #if BUILDFLAG(IS_ANDROID) + diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -1181,12 +1181,8 @@ BASE_FEATURE(kMemoryCacheStrongReferenceSingleUnload, +@@ -1217,12 +1217,8 @@ BASE_FEATURE(kMemoryCacheStrongReferenceSingleUnload, // in the first viewport after the page load and the metrics of the clicked // anchor element will be extracted and recorded. BASE_FEATURE(kNavigationPredictor, @@ -581,7 +586,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea ); BASE_FEATURE(kNewBaseUrlInheritanceBehavior, -@@ -1323,8 +1319,8 @@ BASE_FEATURE(kPrefetchPrivacyChanges, +@@ -1359,8 +1355,8 @@ BASE_FEATURE(kPrefetchPrivacyChanges, base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite BASE_FEATURE(kPreloadingHeuristicsMLModel, @@ -595,7 +600,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2954,7 +2954,7 @@ +@@ -3014,7 +3014,7 @@ { // https://crbug.com/1126305 name: "Prerender2", diff --git a/build/patches/Disable-all-promo-dialogs.patch b/build/patches/Disable-all-promo-dialogs.patch index 5ef0e977..0a014c90 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -949,6 +949,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -945,6 +945,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo() { @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -147,7 +147,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -144,7 +144,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -38,8 +38,8 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -34,7 +34,7 @@ BASE_FEATURE(kBrowserMetricsAPI, - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -30,7 +30,7 @@ BASE_FEATURE(kAllowEyeDropperWGCScreenCapture, + ); // Enables Chrome Labs menu in the toolbar. See https://crbug.com/1145666 -BASE_FEATURE(kChromeLabs, "ChromeLabs", base::FEATURE_ENABLED_BY_DEFAULT); @@ -50,14 +50,14 @@ diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc diff --git a/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc b/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc --- a/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc +++ b/chrome/browser/ui/views/user_education/browser_feature_promo_controller.cc -@@ -67,6 +67,7 @@ ui::ElementContext BrowserFeaturePromoController::GetAnchorContext() const { +@@ -68,6 +68,7 @@ ui::ElementContext BrowserFeaturePromoController::GetAnchorContext() const { - bool BrowserFeaturePromoController::CanShowPromo( + bool BrowserFeaturePromoController::CanShowPromoForElement( ui::TrackedElement* anchor_element) const { + if ((true)) return false; + auto* const profile = browser_view_->GetProfile(); // Temporarily turn off IPH in incognito as a concern was raised that // the IPH backend ignores incognito and writes to the parent profile. - // See https://bugs.chromium.org/p/chromium/issues/detail?id=1128728#c30 diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java --- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java +++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index 45525f41..81a5022b 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -12,6 +12,7 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/android/java/AndroidManifest.xml | 1 - + components/attribution_reporting/features.cc | 4 +- .../origin_trials/features.cc | 8 +- .../render_view_context_menu_base.cc | 3 - .../aggregatable_report_sender.cc | 15 +- @@ -21,20 +22,21 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../attribution_os_level_manager.cc | 1 + .../attribution_report_network_sender.cc | 9 + .../attribution_storage_sql.cc | 8 +- - content/browser/storage_partition_impl.cc | 8 +- + content/browser/storage_partition_impl.cc | 9 - content/public/android/BUILD.gn | 2 - - .../browser/AttributionOsLevelManager.java | 225 ++---------------- + .../browser/AttributionOsLevelManager.java | 218 +----------------- + .../public/browser/content_browser_client.cc | 6 +- .../public/browser/navigation_controller.cc | 1 - content/public/common/content_features.cc | 4 +- content/renderer/render_thread_impl.cc | 5 +- .../attribution/request_headers_internal.cc | 1 + .../network/public/cpp/attribution_utils.cc | 2 + services/network/public/cpp/features.cc | 6 +- - third_party/blink/common/features.cc | 42 ++-- + third_party/blink/common/features.cc | 38 +-- .../platform/runtime_enabled_features.json5 | 7 + ui/base/ui_base_features.cc | 2 +- ui/events/android/motion_event_android.cc | 6 +- - 23 files changed, 97 insertions(+), 269 deletions(-) + 25 files changed, 92 insertions(+), 274 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml @@ -47,6 +49,20 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -361,6 +355,24 @@ by a child template that "extends" this file. +@@ -362,6 +356,24 @@ by a child template that "extends" this file. @@ -187,7 +187,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java -@@ -202,6 +202,9 @@ public class IntentHandler { +@@ -196,6 +196,9 @@ public class IntentHandler { private static final String EXTRA_TAB_LAUNCH_TYPE = "org.chromium.chrome.browser.tab_launch_type"; @@ -197,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j /** * A hash code for the URL to verify intent data hasn't been modified. */ -@@ -1414,6 +1417,17 @@ public class IntentHandler { +@@ -1264,6 +1267,17 @@ public class IntentHandler { return IntentUtils.safeGetSerializableExtra(intent, EXTRA_TAB_LAUNCH_TYPE); } @@ -215,7 +215,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j /** * Creates an Intent that will launch a ChromeTabbedActivity on the new tab page. The Intent * will be trusted and therefore able to launch Incognito tabs. -@@ -1538,7 +1552,7 @@ public class IntentHandler { +@@ -1395,7 +1409,7 @@ public class IntentHandler { String headers = getExtraHeadersFromIntent(intent); headers = maybeAddAdditionalContentHeaders(intent, url, headers); @@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -426,8 +426,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega +@@ -429,8 +429,8 @@ public class LaunchIntentDispatcher { /*incognito*/true); newIntent.setData(mIntent.getData()); newIntent.setPackage(applicationContext.getPackageName()); @@ -240,15 +240,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -84,6 +84,7 @@ import org.chromium.chrome.browser.tab.state.PersistedTabData; - import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData; +@@ -86,6 +86,7 @@ import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData; import org.chromium.chrome.browser.ui.cars.DrivingRestrictionsManager; + import org.chromium.chrome.browser.ui.hats.SurveyClientFactory; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager; +import org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity; import org.chromium.chrome.browser.usb.UsbNotificationManager; import org.chromium.chrome.browser.util.AfterStartupTaskUtils; import org.chromium.chrome.browser.webapps.WebappRegistry; -@@ -429,6 +430,8 @@ public class ProcessInitializationHandler { +@@ -439,6 +440,8 @@ public class ProcessInitializationHandler { .resolveClearDataDialogResultRecorder()::makeDeferredRecordings); deferredStartupHandler.addDeferredTask(WebApkUninstallUmaTracker::recordDeferredUma); @@ -384,7 +384,7 @@ new file mode 100644 diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -9956,6 +9956,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -10229,6 +10229,10 @@ const FeatureEntry kFeatureEntries[] = { features::kBrokerFileOperationsOnDiskCacheInNetworkService)}, #if BUILDFLAG(IS_ANDROID) @@ -398,7 +398,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3194,6 +3194,11 @@ const char kIsolateOriginsDescription[] = +@@ -3215,6 +3215,11 @@ const char kIsolateOriginsDescription[] = "Requires dedicated processes for an additional set of origins, " "specified as a comma-separated list."; @@ -413,7 +413,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1844,6 +1844,9 @@ extern const char kIsolateOriginsDescription[]; +@@ -1863,6 +1863,9 @@ extern const char kIsolateOriginsDescription[]; extern const char kIsolationByDefaultName[]; extern const char kIsolationByDefaultDescription[]; @@ -426,7 +426,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -287,6 +287,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -294,6 +294,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReengagementNotification, &kSearchReadyOmniboxFeature, &kRelatedSearches, @@ -434,7 +434,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kReportParentalControlSitesChild, &kRequestDesktopSiteDefaults, &kRequestDesktopSiteDefaultsControl, -@@ -1015,6 +1016,10 @@ BASE_FEATURE(kScrollToTLDOptimization, +@@ -1035,6 +1036,10 @@ BASE_FEATURE(kScrollToTLDOptimization, "ScrollToTLDOptimization", base::FEATURE_DISABLED_BY_DEFAULT); @@ -448,7 +448,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -170,6 +170,7 @@ BASE_DECLARE_FEATURE(kRequestDesktopSiteDefaultsLogging); +@@ -176,6 +176,7 @@ BASE_DECLARE_FEATURE(kRequestDesktopSiteDefaultsLogging); BASE_DECLARE_FEATURE(kRestoreTabsOnFRE); BASE_DECLARE_FEATURE(kSearchEnginesPromoV3); BASE_DECLARE_FEATURE(kSearchReadyOmniboxFeature); @@ -459,7 +459,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -402,6 +402,7 @@ public abstract class ChromeFeatureList { +@@ -395,6 +395,7 @@ public abstract class ChromeFeatureList { public static final String REACHED_CODE_PROFILER = "ReachedCodeProfiler"; public static final String READALOUD = "ReadAloud"; public static final String READER_MODE_IN_CCT = "ReaderModeInCCT"; @@ -470,7 +470,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -5256,6 +5256,19 @@ To change this setting, <resetlink>reset sync

<resetlink>reset sync

diff --git a/build/patches/Enable-third-party-storage-partitioning.patch b/build/patches/Enable-third-party-storage-partitioning.patch index d7a280e6..bcf0f805 100644 --- a/build/patches/Enable-third-party-storage-partitioning.patch +++ b/build/patches/Enable-third-party-storage-partitioning.patch @@ -10,16 +10,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -290,8 +290,8 @@ BASE_FEATURE(kCookieDomainRejectNonASCII, +@@ -278,8 +278,8 @@ BASE_FEATURE(kCookieDomainRejectNonASCII, // Enables partitioning of third party storage (IndexedDB, CacheStorage, etc.) // by the top level site to reduce fingerprinting. BASE_FEATURE(kThirdPartyStoragePartitioning, - "ThirdPartyStoragePartitioning", -- base::FEATURE_DISABLED_BY_DEFAULT); +- base::FEATURE_ENABLED_BY_DEFAULT); + "ThirdPartyStoragePartitioning", // must be enabled + base::FEATURE_ENABLED_BY_DEFAULT); // in Bromite + // Whether to use the new code paths needed to support partitioning Blob URLs. // This exists as a kill-switch in case an issue is identified with the Blob - // URL implementation that causes breakage. -- 2.25.1 diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index d7e7208f..eb50403b 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -27,7 +27,7 @@ Requires patch: Adds-support-for-writing-URIs.patch Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/BUILD.gn | 4 + + chrome/android/BUILD.gn | 7 +- .../android/java/res/xml/main_preferences.xml | 5 + .../browser/download/DownloadUtils.java | 6 + .../init/ProcessInitializationHandler.java | 3 + @@ -135,7 +135,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/web_ui_injection_host.h | 27 + .../strings/userscripts_strings.grdp | 54 ++ tools/gritsettings/resource_ids.spec | 6 + - 108 files changed, 9488 insertions(+), 1 deletion(-) + 108 files changed, 9490 insertions(+), 2 deletions(-) create mode 100644 components/user_scripts/README.md create mode 100755 components/user_scripts/android/BUILD.gn create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml @@ -225,17 +225,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -242,6 +242,9 @@ if (current_toolchain == default_toolchain) { - "//third_party/androidx:androidx_gridlayout_gridlayout_java", - "//third_party/androidx:androidx_preference_preference_java", - ] +@@ -179,7 +179,11 @@ if (current_toolchain == default_toolchain) { + sources = chrome_java_resources + sources += [ "//chrome/android/java/res_app/layout/main.xml" ] + +- deps = [ + # this need to be into android_resources("chrome_app_java_resources") section because + # android:java_resources are packed *_percent.pak and placed in the executable folder -+ deps += [ "//components/user_scripts/android:java_resources" ] - } - - android_library("app_hooks_java") { -@@ -570,6 +573,7 @@ if (current_toolchain == default_toolchain) { ++ deps = [ "//components/user_scripts/android:java_resources" ] ++ ++ deps += [ + ":chrome_base_module_resources", + ":ui_locale_string_resources", + "//chrome/android/webapk/libs/common:splash_resources", +@@ -582,6 +586,7 @@ if (current_toolchain == default_toolchain) { "//components/ukm/android:java", "//components/url_formatter/android:url_formatter_java", "//components/user_prefs/android:java", @@ -261,7 +264,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java -@@ -73,6 +73,7 @@ import org.chromium.ui.UiUtils; +@@ -75,6 +75,7 @@ import org.chromium.ui.UiUtils; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.widget.Toast; import org.chromium.url.GURL; @@ -269,7 +272,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo import java.io.File; -@@ -421,6 +422,11 @@ public class DownloadUtils { +@@ -456,6 +457,11 @@ public class DownloadUtils { public static boolean openFile(String filePath, String mimeType, String downloadGuid, OTRProfileID otrProfileID, String originalUrl, String referrer, @DownloadOpenSource int source, Context context) { @@ -284,7 +287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -121,6 +121,8 @@ import java.util.ArrayList; +@@ -124,6 +124,8 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -293,7 +296,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni /** * Handles the initialization dependences of the browser process. This is meant to handle the * initialization that is not tied to any particular Activity, and the logic that should only be -@@ -321,6 +323,7 @@ public class ProcessInitializationHandler { +@@ -331,6 +333,7 @@ public class ProcessInitializationHandler { DefaultBrowserInfo.initBrowserFetcher(); @@ -321,7 +324,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3606,6 +3606,13 @@ static_library("browser") { +@@ -3684,6 +3684,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -338,7 +341,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -164,6 +164,7 @@ +@@ -165,6 +165,7 @@ #include "components/ui_devtools/switches.h" #include "components/variations/service/google_groups_updater_service.h" #include "components/variations/variations_switches.h" @@ -346,8 +349,8 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #include "components/version_info/version_info.h" #include "components/viz/common/features.h" #include "components/viz/common/switches.h" -@@ -8339,6 +8340,12 @@ const FeatureEntry kFeatureEntries[] = { - FEATURE_VALUE_TYPE(ash::features::kClipboardHistoryUrlTitles)}, +@@ -8622,6 +8623,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(ash::features::kClipboardHistoryWebContentsPaste)}, #endif // BUILDFLAG(IS_CHROMEOS_ASH) +#if BUILDFLAG(IS_ANDROID) @@ -362,7 +365,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -7489,6 +7489,11 @@ const char kUseOutOfProcessVideoDecodingDescription[] = +@@ -7593,6 +7593,11 @@ const char kUseOutOfProcessVideoDecodingDescription[] = "enabled in ash-chrome)."; #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) @@ -377,7 +380,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -4292,6 +4292,9 @@ extern const char kQuickCommandsDescription[]; +@@ -4355,6 +4355,9 @@ extern const char kQuickCommandsDescription[]; #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || // defined (OS_FUCHSIA) @@ -390,7 +393,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -260,6 +260,7 @@ +@@ -270,6 +270,7 @@ #include "components/permissions/contexts/geolocation_permission_context_android.h" #include "components/query_tiles/tile_service_prefs.h" #include "components/webapps/browser/android/install_prompt_prefs.h" @@ -398,7 +401,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/cart/cart_service.h" #include "chrome/browser/companion/core/promo_handler.h" -@@ -1627,6 +1628,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -1716,6 +1717,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, translate::TranslatePrefs::RegisterProfilePrefs(registry); omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); @@ -424,7 +427,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -483,6 +483,10 @@ +@@ -494,6 +494,10 @@ #include "chrome/browser/offline_pages/request_coordinator_factory.h" #endif @@ -435,7 +438,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc namespace chrome { void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) { -@@ -1166,6 +1170,9 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1206,6 +1210,9 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); @@ -540,14 +543,14 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc @@ -107,6 +107,7 @@ - #include "components/signin/public/base/signin_switches.h" + #include "components/signin/public/base/signin_buildflags.h" #include "components/site_engagement/content/site_engagement_service.h" #include "components/supervised_user/core/common/buildflags.h" +#include "components/user_scripts/browser/ui/user_scripts_ui.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" #include "content/public/common/content_client.h" -@@ -538,6 +539,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -535,6 +536,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIVersionHost) return &NewWebUI; @@ -562,14 +565,14 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni @@ -121,6 +121,7 @@ template("chrome_extra_paks") { - "$root_gen_dir/skia/skia_resources.pak", + "$root_gen_dir/net/net_resources.pak", "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak", "$root_gen_dir/third_party/blink/public/resources/inspector_overlay_resources.pak", + "$root_gen_dir/chrome/userscripts_browser_resources.pak", "$root_gen_dir/ui/resources/webui_resources.pak", ] deps = [ -@@ -139,6 +140,7 @@ template("chrome_extra_paks") { +@@ -138,6 +139,7 @@ template("chrome_extra_paks") { "//third_party/blink/public:devtools_inspector_resources", "//third_party/blink/public:resources", "//ui/resources", @@ -591,7 +594,7 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -233,6 +233,12 @@ static_library("renderer") { +@@ -234,6 +234,12 @@ static_library("renderer") { "//v8", ] @@ -729,7 +732,7 @@ diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/ diff --git a/components/components_strings.grd b/components/components_strings.grd --- a/components/components_strings.grd +++ b/components/components_strings.grd -@@ -335,6 +335,7 @@ +@@ -336,6 +336,7 @@ @@ -10489,7 +10492,7 @@ new file mode 100755 diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -927,6 +927,12 @@ +@@ -954,6 +954,12 @@ "components/autofill/core/browser/autofill_address_rewriter_resources.grd":{ "includes": [6220] }, diff --git a/build/patches/Follow-only-system-dark-mode.patch b/build/patches/Follow-only-system-dark-mode.patch index a48f014f..bf4bb1ec 100644 --- a/build/patches/Follow-only-system-dark-mode.patch +++ b/build/patches/Follow-only-system-dark-mode.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java b/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java --- a/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java +++ b/chrome/browser/ui/android/night_mode/java/src/org/chromium/chrome/browser/night_mode/GlobalNightModeStateController.java -@@ -126,7 +126,7 @@ class GlobalNightModeStateController implements NightModeStateProvider, +@@ -136,7 +136,7 @@ class GlobalNightModeStateController implements NightModeStateProvider, } private void updateNightMode() { diff --git a/build/patches/Guard-for-user-agent-reduction.patch b/build/patches/Guard-for-user-agent-reduction.patch index 7e67fea4..7e975389 100644 --- a/build/patches/Guard-for-user-agent-reduction.patch +++ b/build/patches/Guard-for-user-agent-reduction.patch @@ -55,7 +55,7 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -1449,8 +1449,8 @@ BASE_FEATURE(kReducedReferrerGranularity, +@@ -1501,8 +1501,8 @@ BASE_FEATURE(kReducedReferrerGranularity, const base::FeatureParam kUserAgentFrozenBuildVersion{ &kReduceUserAgentMinorVersion, "build_version", "0"}; @@ -69,7 +69,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3039,23 +3039,23 @@ +@@ -3099,23 +3099,23 @@ // If enabled, the deviceModel will be reduced to "K" and the // androidVersion will be reduced to a static "10" string in android // User-Agent string. diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 22f05628..3fa69c1a 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -37,6 +37,12 @@ found in the LICENSE file. +@@ -43,6 +43,12 @@ found in the LICENSE file. android:title="@string/settings_incognito_tab_lock_title" android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off" android:persistent="false"/> @@ -48,7 +48,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -49,6 +49,7 @@ import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; +@@ -45,6 +45,7 @@ import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.chrome.browser.usage_stats.UsageStatsConsentDialog; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; @@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; -@@ -67,6 +68,9 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; +@@ -63,6 +64,9 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** * Fragment to keep track of the all the privacy related preferences. */ -@@ -106,6 +110,8 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -100,6 +104,8 @@ public class PrivacySettings private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -75,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { getActivity().setTitle(R.string.prefs_privacy_security); -@@ -214,6 +220,40 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -210,6 +216,40 @@ public class PrivacySettings Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); syncAndServicesLink.setSummary(buildSyncAndServicesLink()); @@ -114,10 +114,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + }); + Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); - if (thirdPartyCookies != null) { - thirdPartyCookies.getExtras().putString( -@@ -401,6 +441,29 @@ public class PrivacySettings extends PreferenceFragmentCompat - privacyGuide.setTitle(privacyGuidePrefTitle); + + if (showTrackingProtectionUI()) { +@@ -410,6 +450,29 @@ public class PrivacySettings + || ChromeFeatureList.isEnabled(ChromeFeatureList.TRACKING_PROTECTION_3PCD); } + class TimeFrequencySpinnerOption { @@ -172,7 +172,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1393,6 +1393,18 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1416,6 +1416,18 @@ Your Google account may have other forms of browsing history like searches and a Browsing history @@ -344,7 +344,7 @@ diff --git a/components/history/core/browser/expire_history_backend.h b/componen diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc --- a/components/history/core/browser/history_backend.cc +++ b/components/history/core/browser/history_backend.cc -@@ -165,7 +165,7 @@ const int kMaxRedirectCount = 32; +@@ -164,7 +164,7 @@ const int kMaxRedirectCount = 32; // The number of days old a history entry can be before it is considered "old" // and is deleted. @@ -353,7 +353,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his // The maximum number of days for which domain visit metrics are computed // each time HistoryBackend::GetDomainDiversity() is called. -@@ -1328,6 +1328,19 @@ void HistoryBackend::InitImpl( +@@ -1304,6 +1304,19 @@ void HistoryBackend::InitImpl( expirer_.StartExpiringOldStuff(base::Days(kExpireDaysThreshold)); } @@ -376,7 +376,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his diff --git a/components/history/core/browser/history_backend.h b/components/history/core/browser/history_backend.h --- a/components/history/core/browser/history_backend.h +++ b/components/history/core/browser/history_backend.h -@@ -222,6 +222,8 @@ class HistoryBackend : public base::RefCountedThreadSafe, +@@ -221,6 +221,8 @@ class HistoryBackend : public base::RefCountedThreadSafe, void Init(bool force_fail, const HistoryDatabaseParams& history_database_params); @@ -463,7 +463,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist // Triggers the backend to load if it hasn't already, and then returns whether // it's finished loading. // Note: Virtual needed for mocking. -@@ -1143,6 +1147,10 @@ class HistoryService : public KeyedService, +@@ -1138,6 +1142,10 @@ class HistoryService : public KeyedService, raw_ptr local_device_info_provider_ = nullptr; diff --git a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch index 20efd34d..44b4284a 100644 --- a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch +++ b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch @@ -30,7 +30,7 @@ diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omni diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc --- a/components/omnibox/browser/omnibox_field_trial.cc +++ b/components/omnibox/browser/omnibox_field_trial.cc -@@ -289,7 +289,11 @@ void OmniboxFieldTrial::GetDemotionsByType( +@@ -290,7 +290,11 @@ void OmniboxFieldTrial::GetDemotionsByType( size_t OmniboxFieldTrial::GetProviderMaxMatches( AutocompleteProvider::Type provider) { diff --git a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch index 7d80a2a6..dd100bf4 100644 --- a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch +++ b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/renderer/core/dom/build.gni --- a/third_party/blink/renderer/core/dom/build.gni +++ b/third_party/blink/renderer/core/dom/build.gni -@@ -166,6 +166,8 @@ blink_core_sources_dom = [ +@@ -167,6 +167,8 @@ blink_core_sources_dom = [ "has_invalidation_flags.h", "icon_url.cc", "icon_url.h", @@ -35,7 +35,7 @@ diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/r diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -294,6 +294,7 @@ +@@ -295,6 +295,7 @@ #include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h" #include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h" #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h" @@ -43,7 +43,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h" #include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h" #include "third_party/blink/renderer/core/page/spatial_navigation_controller.h" -@@ -370,6 +371,8 @@ +@@ -372,6 +373,8 @@ #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h" #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h" @@ -52,7 +52,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #ifndef NDEBUG using WeakDocumentSet = blink::HeapHashSet>; static WeakDocumentSet& LiveDocumentSet(); -@@ -7416,6 +7419,64 @@ void Document::OnPrepareToStopParsing() { +@@ -7423,6 +7426,64 @@ void Document::OnPrepareToStopParsing() { MilestoneForDelayedAsyncScript::kFinishedParsing); } @@ -117,7 +117,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink void Document::FinishedParsing() { DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing()); DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading); -@@ -7482,6 +7543,9 @@ void Document::FinishedParsing() { +@@ -7489,6 +7550,9 @@ void Document::FinishedParsing() { } frame->Loader().FinishedParsing(); @@ -130,7 +130,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -2064,6 +2064,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2075,6 +2075,9 @@ class CORE_EXPORT Document : public ContainerNode, void AXContextModeChanged(); void ClearAXObjectCache(); @@ -165,7 +165,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc --- a/third_party/blink/renderer/core/html/html_script_element.cc +++ b/third_party/blink/renderer/core/html/html_script_element.cc -@@ -186,6 +186,11 @@ void HTMLScriptElement::setTextContent(const String& string) { +@@ -182,6 +182,11 @@ void HTMLScriptElement::setTextContent(const String& string) { Node::setTextContent(string); } diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index 250f4016..461c48c9 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -273,7 +273,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -537,7 +537,7 @@ void ContentSettingsRegistry::Init() { +@@ -538,7 +538,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); Register(ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit", diff --git a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch index dcfdface..397176f9 100644 --- a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch +++ b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -4979,9 +4979,9 @@ +@@ -5028,9 +5028,9 @@ "expiry_milestone": 120 }, { diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index fd8b7ee7..b8824e3a 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -143,7 +143,7 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.h b/chro diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc --- a/chrome/browser/net/chrome_network_delegate.cc +++ b/chrome/browser/net/chrome_network_delegate.cc -@@ -142,6 +142,13 @@ bool IsAccessAllowedAndroid(const base::FilePath& path) { +@@ -150,6 +150,13 @@ bool IsAccessAllowedAndroid(const base::FilePath& path) { if (external_storage_path.IsParent(path)) return true; @@ -160,7 +160,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -672,6 +672,7 @@ static_library("ui") { +@@ -665,6 +665,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index 77260457..0abc8667 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -9,7 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/chrome_content_browser_client.cc | 2 +- chrome/browser/flag_descriptions.cc | 5 +++++ chrome/browser/flag_descriptions.h | 3 +++ - chrome/browser/prefetch/prefetch_prefs.h | 2 +- + chrome/browser/preloading/preloading_prefs.h | 2 +- chrome/browser/profiles/profile.cc | 2 +- .../reset_page/reset_profile_dialog.html | 2 +- chrome/browser/ui/browser_ui_prefs.cc | 4 ++-- @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -77,6 +77,7 @@ +@@ -78,6 +78,7 @@ #include "components/autofill/core/common/autofill_payments_features.h" #include "components/autofill/core/common/autofill_switches.h" #include "components/autofill/core/common/autofill_util.h" @@ -38,7 +38,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #include "components/browser_sync/browser_sync_switches.h" #include "components/browsing_data/core/features.h" #include "components/commerce/core/commerce_feature_list.h" -@@ -6514,6 +6515,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6775,6 +6776,11 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kQuickSettingsPWANotifications)}, #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -77,7 +77,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3291,6 +3291,11 @@ const char kCommerceMerchantViewerAndroidDescription[] = +@@ -3311,6 +3311,11 @@ const char kCommerceMerchantViewerAndroidDescription[] = "Allows users to view merchant trust signals on eligible pages."; const char kTabGroupsSaveId[] = "tab-groups-save"; @@ -92,7 +92,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1889,6 +1889,9 @@ extern const char kCommerceMerchantViewerAndroidName[]; +@@ -1908,6 +1908,9 @@ extern const char kCommerceMerchantViewerAndroidName[]; extern const char kCommerceMerchantViewerAndroidDescription[]; extern const char kTabGroupsSaveId[]; @@ -102,9 +102,9 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio extern const char kTabGroupsSaveName[]; extern const char kTabGroupsSaveDescription[]; -diff --git a/chrome/browser/prefetch/prefetch_prefs.h b/chrome/browser/prefetch/prefetch_prefs.h ---- a/chrome/browser/prefetch/prefetch_prefs.h -+++ b/chrome/browser/prefetch/prefetch_prefs.h +diff --git a/chrome/browser/preloading/preloading_prefs.h b/chrome/browser/preloading/preloading_prefs.h +--- a/chrome/browser/preloading/preloading_prefs.h ++++ b/chrome/browser/preloading/preloading_prefs.h @@ -23,7 +23,7 @@ enum class NetworkPredictionOptions { kWifiOnlyDeprecated = 1, kDisabled = 2, @@ -184,7 +184,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar #include "components/bookmarks/browser/scoped_group_bookmark_actions.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/pref_registry/pref_registry_syncable.h" -@@ -480,11 +481,13 @@ bool DoesBookmarkContainWords(const std::u16string& title, +@@ -483,11 +484,13 @@ bool DoesBookmarkContainWords(const std::u16string& title, void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( @@ -256,7 +256,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. /*allowlisted_schemes=*/{}, /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK}, WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE, -@@ -346,7 +346,7 @@ void ContentSettingsRegistry::Init() { +@@ -337,7 +337,7 @@ void ContentSettingsRegistry::Init() { // TODO(crbug.com/904439): Update this to "SECURE_ONLY" once // DeviceOrientationEvents and DeviceMotionEvents are only fired in secure // contexts. @@ -268,7 +268,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc --- a/components/content_settings/core/browser/cookie_settings.cc +++ b/components/content_settings/core/browser/cookie_settings.cc -@@ -68,7 +68,7 @@ void CookieSettings::RegisterProfilePrefs( +@@ -74,7 +74,7 @@ void CookieSettings::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterIntegerPref( prefs::kCookieControlsMode, @@ -292,7 +292,7 @@ diff --git a/components/payments/core/payment_prefs.cc b/components/payments/cor diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc --- a/components/safe_browsing/core/common/safe_browsing_prefs.cc +++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc -@@ -265,13 +265,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -271,13 +271,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kSafeBrowsingSawInterstitialScoutReporting, false); registry->RegisterBooleanPref( @@ -311,7 +311,7 @@ diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/compo diff --git a/components/signin/internal/identity_manager/primary_account_manager.cc b/components/signin/internal/identity_manager/primary_account_manager.cc --- a/components/signin/internal/identity_manager/primary_account_manager.cc +++ b/components/signin/internal/identity_manager/primary_account_manager.cc -@@ -146,9 +146,9 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -147,9 +147,9 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { std::string()); registry->RegisterStringPref(prefs::kGoogleServicesAccountId, std::string()); registry->RegisterBooleanPref(prefs::kGoogleServicesConsentedToSync, false); @@ -326,7 +326,7 @@ diff --git a/components/signin/internal/identity_manager/primary_account_manager diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -985,8 +985,8 @@ const base::FeatureParam kInterestGroupStorageMaxOpsBeforeMaintenance{ +@@ -987,8 +987,8 @@ const base::FeatureParam kInterestGroupStorageMaxOpsBeforeMaintenance{ // the attribute. Note: At present, only iframes with origin-restricted // sandboxes are isolated. BASE_FEATURE(kIsolateSandboxedIframes, diff --git a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch index a9bfec08..e4c4da90 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -58,6 +58,19 @@ found in the LICENSE file. +@@ -64,6 +64,19 @@ found in the LICENSE file. android:key="privacy_sandbox" android:title="@string/prefs_privacy_sandbox" android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragmentV3"/> @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -57,6 +57,13 @@ import org.chromium.components.user_prefs.UserPrefs; +@@ -53,6 +53,13 @@ import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.text.NoUnderlineClickableSpan; import org.chromium.ui.text.SpanApplier; @@ -51,9 +51,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** * Fragment to keep track of the all the privacy related preferences. */ -@@ -76,6 +83,16 @@ public class PrivacySettings extends PreferenceFragmentCompat - private static final String PREF_INCOGNITO_LOCK = "incognito_lock"; +@@ -72,6 +79,16 @@ public class PrivacySettings private static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; + private static final String PREF_TRACKING_PROTECTION = "tracking_protection"; + // moved from SyncAndServicesSettings.java + private static final String PREF_SERVICES_CATEGORY = "services_category"; @@ -66,9 +66,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + + private ManagedPreferenceDelegate mManagedPreferenceDelegate; private IncognitoLockSettings mIncognitoLockSettings; - private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher; - private Profile mProfile; -@@ -142,6 +159,16 @@ public class PrivacySettings extends PreferenceFragmentCompat + + @Override +@@ -136,6 +153,16 @@ public class PrivacySettings setHasOptionsMenu(true); @@ -85,17 +85,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting ChromeSwitchPreference canMakePaymentPref = (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT); canMakePaymentPref.setOnPreferenceChangeListener(this); -@@ -220,6 +247,9 @@ public class PrivacySettings extends PreferenceFragmentCompat - UserPrefs.get(mProfile).setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); +@@ -223,6 +250,9 @@ public class PrivacySettings } else if (PREF_HTTPS_FIRST_MODE.equals(key)) { - UserPrefs.get(mProfile).setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue); + UserPrefs.get(getProfile()) + .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue); + } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { + UserPrefs.get(Profile.getLastUsedRegularProfile()) + .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); } return true; } -@@ -234,6 +264,8 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -237,6 +267,8 @@ public class PrivacySettings * Updates the preferences. */ public void updatePreferences() { @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -452,6 +452,10 @@ CHAR_LIMIT guidelines: +@@ -464,6 +464,10 @@ CHAR_LIMIT guidelines: No statistics or crash reports are sent to Google diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index 5e19b025..8109e28e 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -60,7 +60,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2473,6 +2473,7 @@ static_library("browser") { +@@ -2530,6 +2530,7 @@ static_library("browser") { "//services/device/public/cpp:device_features", "//services/device/public/cpp/geolocation", "//services/device/public/cpp/usb", @@ -71,7 +71,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -226,6 +226,8 @@ +@@ -227,6 +227,8 @@ #include "ui/ui_features.h" #include "url/url_features.h" @@ -80,7 +80,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) #include "base/allocator/buildflags.h" #endif -@@ -3897,6 +3899,20 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4160,6 +4162,20 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kWebrtcUseMinMaxVEADimensionsName, flag_descriptions::kWebrtcUseMinMaxVEADimensionsDescription, kOsAll, FEATURE_VALUE_TYPE(blink::features::kWebRtcUseMinMaxVEADimensions)}, @@ -104,7 +104,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -250,6 +250,7 @@ source_set("browser") { +@@ -245,6 +245,7 @@ source_set("browser") { "//third_party/libyuv", "//third_party/re2", "//third_party/sqlite", @@ -123,7 +123,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #if BUILDFLAG(IS_ANDROID) #include "base/android/child_process_binding_types.h" #include "content/browser/android/java_interfaces_impl.h" -@@ -3304,6 +3305,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3299,6 +3300,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBreakpad, switches::kDisableDatabases, switches::kDisableFileSystem, @@ -147,7 +147,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -44,6 +44,8 @@ +@@ -46,6 +46,8 @@ #include "ui/gl/gl_switches.h" #include "ui/native_theme/native_theme_features.h" @@ -156,7 +156,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. #if BUILDFLAG(IS_ANDROID) #include "base/android/build_info.h" #endif -@@ -546,6 +548,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { +@@ -548,6 +550,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { // as a last resort. void SetCustomizedRuntimeFeaturesFromCombinedArgs( const base::CommandLine& command_line) { @@ -185,15 +185,15 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -37,6 +37,7 @@ - #include "base/containers/contains.h" +@@ -38,6 +38,7 @@ #include "base/debug/dump_without_crashing.h" + #include "base/i18n/time_formatting.h" #include "base/metrics/histogram_functions.h" +#include "base/rand_util.h" #include "base/notreached.h" #include "base/ranges/algorithm.h" #include "base/task/single_thread_task_runner.h" -@@ -845,6 +846,17 @@ Document::Document(const DocumentInit& initializer, +@@ -847,6 +848,17 @@ Document::Document(const DocumentInit& initializer, : nullptr), data_(MakeGarbageCollected(GetExecutionContext())) { DCHECK(agent_); @@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (base::FeatureList::IsEnabled(features::kDelayAsyncScriptExecution)) script_runner_delayer_->Activate(); -@@ -2299,6 +2311,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2300,6 +2312,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { #endif } @@ -240,7 +240,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ AtomicString visibilityState() const; bool IsPageVisible() const; bool hidden() const; -@@ -2418,6 +2422,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2429,6 +2433,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; @@ -253,7 +253,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -2120,6 +2120,7 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2121,6 +2121,7 @@ void Element::ClientQuads(Vector& quads) const { quads.push_back(element_layout_object->LocalToAbsoluteQuad( gfx::QuadF(element_layout_object->ObjectBoundingBox()))); } @@ -261,7 +261,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ return; } -@@ -2128,6 +2129,10 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2129,6 +2130,10 @@ void Element::ClientQuads(Vector& quads) const { element_layout_object->IsBR()) { element_layout_object->AbsoluteQuads(quads); } @@ -272,7 +272,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ } DOMRectList* Element::getClientRects() { -@@ -2170,6 +2175,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { +@@ -2171,6 +2176,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { DCHECK(element_layout_object); GetDocument().AdjustRectForScrollAndAbsoluteZoom(result, *element_layout_object); @@ -376,7 +376,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_ diff --git a/third_party/blink/renderer/core/svg/svg_graphics_element.cc b/third_party/blink/renderer/core/svg/svg_graphics_element.cc --- a/third_party/blink/renderer/core/svg/svg_graphics_element.cc +++ b/third_party/blink/renderer/core/svg/svg_graphics_element.cc -@@ -187,6 +187,8 @@ SVGRectTearOff* SVGGraphicsElement::getBBoxFromJavascript() { +@@ -143,6 +143,8 @@ SVGRectTearOff* SVGGraphicsElement::getBBoxFromJavascript() { if (const auto* layout_object = GetLayoutObject()) { bounding_box = GetBBox(); @@ -394,7 +394,7 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t auto* layout_object = GetLayoutObject(); + float value = 0; if (IsNGTextOrInline(layout_object)) { - NGSvgTextQuery query(*layout_object); + SvgTextQuery query(*layout_object); - return query.SubStringLength(0, query.NumberOfCharacters()); + value = query.SubStringLength(0, query.NumberOfCharacters()); + } else { @@ -413,9 +413,9 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t auto* layout_object = GetLayoutObject(); + float value = 0; if (IsNGTextOrInline(layout_object)) -- return NGSvgTextQuery(*layout_object).SubStringLength(charnum, nchars); +- return SvgTextQuery(*layout_object).SubStringLength(charnum, nchars); - return 0; -+ value = NGSvgTextQuery(*layout_object).SubStringLength(charnum, nchars); ++ value = SvgTextQuery(*layout_object).SubStringLength(charnum, nchars); + else + value = 0; + return value * (RuntimeEnabledFeatures::FingerprintingCanvasMeasureTextNoiseEnabled() ? @@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t SVGPointTearOff* SVGTextContentElement::getStartPositionOfChar( @@ -162,6 +171,8 @@ SVGPointTearOff* SVGTextContentElement::getStartPositionOfChar( if (IsNGTextOrInline(layout_object)) { - point = NGSvgTextQuery(*layout_object).StartPositionOfCharacter(charnum); + point = SvgTextQuery(*layout_object).StartPositionOfCharacter(charnum); } + if (RuntimeEnabledFeatures::FingerprintingCanvasMeasureTextNoiseEnabled()) + point.Scale(GetDocument().GetNoiseFactorX(), GetDocument().GetNoiseFactorY()); @@ -434,7 +434,7 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t @@ -184,6 +195,8 @@ SVGPointTearOff* SVGTextContentElement::getEndPositionOfChar( if (IsNGTextOrInline(layout_object)) { - point = NGSvgTextQuery(*layout_object).EndPositionOfCharacter(charnum); + point = SvgTextQuery(*layout_object).EndPositionOfCharacter(charnum); } + if (RuntimeEnabledFeatures::FingerprintingCanvasMeasureTextNoiseEnabled()) + point.Scale(GetDocument().GetNoiseFactorX(), GetDocument().GetNoiseFactorY()); @@ -443,7 +443,7 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t @@ -206,6 +219,8 @@ SVGRectTearOff* SVGTextContentElement::getExtentOfChar( if (IsNGTextOrInline(layout_object)) { - rect = NGSvgTextQuery(*layout_object).ExtentOfCharacter(charnum); + rect = SvgTextQuery(*layout_object).ExtentOfCharacter(charnum); } + if (RuntimeEnabledFeatures::FingerprintingCanvasMeasureTextNoiseEnabled()) + rect.Scale(GetDocument().GetNoiseFactorX(), GetDocument().GetNoiseFactorY()); @@ -458,7 +458,7 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t + if (RuntimeEnabledFeatures::FingerprintingCanvasMeasureTextNoiseEnabled()) + target.Scale(GetDocument().GetNoiseFactorX(), GetDocument().GetNoiseFactorY()); if (IsNGTextOrInline(layout_object)) { - return NGSvgTextQuery(*layout_object) + return SvgTextQuery(*layout_object) - .CharacterNumberAtPosition(point->Target()->Value()); + .CharacterNumberAtPosition(target); } @@ -485,7 +485,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c namespace blink { BASE_FEATURE(kDisableCanvasOverdrawOptimization, -@@ -2188,6 +2192,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -2187,6 +2191,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds(); DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh))); } @@ -496,7 +496,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c } return image_data; -@@ -2865,9 +2873,23 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { +@@ -2864,9 +2872,23 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { TextDirection direction = ToTextDirection(GetState().GetDirection(), canvas); @@ -524,7 +524,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1650,7 +1650,9 @@ component("platform") { +@@ -1648,7 +1648,9 @@ component("platform") { "//third_party/blink/renderer:non_test_config", ] @@ -779,7 +779,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3062,6 +3062,15 @@ +@@ -3122,6 +3122,15 @@ status: {"Android": "", "default": "stable"}, base_feature: "none", }, diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index 7622bcc1..5aa783ad 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -54,7 +54,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc -@@ -2315,7 +2315,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2317,7 +2317,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, Resource* cached_resource = document->Fetcher()->CachedResource(url); if (!cached_resource) { cached_resource = MemoryCache::Get()->ResourceForURL( @@ -81,7 +81,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_party/blink/renderer/core/loader/image_loader.cc --- a/third_party/blink/renderer/core/loader/image_loader.cc +++ b/third_party/blink/renderer/core/loader/image_loader.cc -@@ -741,7 +741,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { +@@ -729,7 +729,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { // content when style recalc is over and DOM mutation is allowed again. if (!url.IsNull()) { Resource* resource = MemoryCache::Get()->ResourceForURL( @@ -175,7 +175,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -860,7 +860,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( +@@ -879,7 +879,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( if (!archive_ && factory.GetType() == ResourceType::kRaw) return nullptr; @@ -185,7 +185,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c // Most off-main-thread resource fetches use Resource::kRaw and don't reach // this point, but off-main-thread module fetches might. if (IsMainThread()) { -@@ -1347,7 +1348,9 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1360,7 +1361,9 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, resource = nullptr; } else { resource = MemoryCache::Get()->ResourceForURL( @@ -196,7 +196,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } if (resource) { policy = DetermineRevalidationPolicy(resource_type, params, *resource, -@@ -1455,6 +1458,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1468,6 +1471,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, if (resource_cache_remote_.is_bound()) { resource_cache_remote_->Contains( params.Url(), @@ -205,7 +205,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c WTF::BindOnce(&ResourceFetcher::OnResourceCacheContainsFinished, WrapWeakPersistent(this), base::TimeTicks::Now(), resource_request.GetRequestDestination())); -@@ -1604,7 +1609,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1619,7 +1624,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( const FetchParameters& params, const ResourceFactory& factory) { const String cache_identifier = @@ -215,7 +215,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c if (!base::FeatureList::IsEnabled( blink::features::kScopeMemoryCachePerContext)) { DCHECK(!IsMainThread() || params.IsStaleRevalidation() || -@@ -2605,10 +2611,13 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { +@@ -2629,10 +2635,13 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { to_be_removed.clear(); } @@ -231,7 +231,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } // Requests that can be satisfied via `archive_` (i.e. MHTML) or -@@ -2621,7 +2630,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url) const { +@@ -2645,7 +2654,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url) const { if (bundle) return bundle->GetCacheIdentifier(); @@ -243,7 +243,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h -@@ -260,7 +260,8 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -259,7 +259,8 @@ class PLATFORM_EXPORT ResourceFetcher uint32_t inflight_keepalive_bytes); blink::mojom::ControllerServiceWorkerMode IsControlledByServiceWorker() const; diff --git a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch index 8866b099..c955129c 100644 --- a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch +++ b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch @@ -43,7 +43,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -9640,6 +9640,13 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9934,6 +9934,13 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(base::i18n::kLacrosMergeIcuDataFile)}, #endif @@ -60,7 +60,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3920,6 +3920,11 @@ const char kChimeAndroidSdkDescription[] = +@@ -3976,6 +3976,11 @@ const char kChimeAndroidSdkDescription[] = "Enable Chime SDK to receive push notification."; const char kChimeAndroidSdkName[] = "Use Chime SDK"; @@ -75,7 +75,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -45,6 +45,9 @@ namespace flag_descriptions { +@@ -46,6 +46,9 @@ namespace flag_descriptions { extern const char kAccelerated2dCanvasName[]; extern const char kAccelerated2dCanvasDescription[]; @@ -88,15 +88,15 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -180,6 +180,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -183,6 +183,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kBackGestureActivityTabProvider, &kBackGestureRefactorActivityAndroid, &kBackGestureRefactorAndroid, + &kCloseAllTabsModalDialog, &kBackgroundThreadPool, &kBaselineGM3SurfaceColors, - &kCacheActivityTaskID, -@@ -524,6 +525,10 @@ BASE_FEATURE(kCacheActivityTaskID, + &kBlockIntentsWhileLocked, +@@ -536,6 +537,10 @@ BASE_FEATURE(kCacheActivityTaskID, "CacheActivityTaskID", base::FEATURE_ENABLED_BY_DEFAULT); @@ -107,7 +107,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse // Used in downstream code. BASE_FEATURE(kCastDeviceFilter, "CastDeviceFilter", -@@ -534,8 +539,8 @@ BASE_FEATURE(kClearOmniboxFocusAfterNavigation, +@@ -546,8 +551,8 @@ BASE_FEATURE(kClearOmniboxFocusAfterNavigation, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kCloseTabSuggestions, @@ -121,8 +121,8 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -38,6 +38,7 @@ BASE_DECLARE_FEATURE(kBackgroundThreadPool); - BASE_DECLARE_FEATURE(kBaselineGM3SurfaceColors); +@@ -41,6 +41,7 @@ BASE_DECLARE_FEATURE(kBaselineGM3SurfaceColors); + BASE_DECLARE_FEATURE(kBlockIntentsWhileLocked); BASE_DECLARE_FEATURE(kCacheActivityTaskID); BASE_DECLARE_FEATURE(kClearOmniboxFocusAfterNavigation); +BASE_DECLARE_FEATURE(kCloseAllTabsModalDialog); @@ -132,7 +132,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -203,6 +203,7 @@ public abstract class ChromeFeatureList { +@@ -197,6 +197,7 @@ public abstract class ChromeFeatureList { public static final String CCT_RESIZABLE_90_MAXIMUM_HEIGHT = "CCTResizable90MaximumHeight"; public static final String CCT_RESIZABLE_ALLOW_RESIZE_BY_USER_GESTURE = "CCTResizableAllowResizeByUserGesture"; diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index 85a9212f..f74aa1a7 100644 --- a/build/patches/Re-introduce-override_build_timestamp.patch +++ b/build/patches/Re-introduce-override_build_timestamp.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -4087,8 +4087,13 @@ action("build_date") { +@@ -4099,8 +4099,13 @@ action("build_date") { args = [ rebase_path("$target_gen_dir/generated_build_date.h", root_build_dir), @@ -30,7 +30,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn + } } - if (enable_nocompile_tests) { + if (enable_nocompile_tests_new) { diff --git a/build_overrides/build.gni b/build_overrides/build.gni --- a/build_overrides/build.gni +++ b/build_overrides/build.gni diff --git a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch index 417c88ef..f61721ed 100644 --- a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch +++ b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch @@ -37,7 +37,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -379,6 +379,7 @@ void URLRequestHttpJob::OnGotFirstPartySetCacheFilterMatchInfo( +@@ -360,6 +360,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( // fields in the referrer. GURL referrer(request_->referrer()); @@ -45,7 +45,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque // Our consumer should have made sure that this is a safe referrer (e.g. via // URLRequestJob::ComputeReferrerForPolicy). if (referrer.is_valid()) { -@@ -386,11 +387,14 @@ void URLRequestHttpJob::OnGotFirstPartySetCacheFilterMatchInfo( +@@ -367,11 +368,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer, referer_value); } @@ -60,7 +60,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque AddExtraHeaders(); -@@ -647,10 +651,10 @@ void URLRequestHttpJob::StartTransactionInternal() { +@@ -628,10 +632,10 @@ void URLRequestHttpJob::StartTransactionInternal() { void URLRequestHttpJob::AddExtraHeaders() { request_info_.extra_headers.SetAcceptEncodingIfMissing( request()->url(), request()->accepted_stream_types(), diff --git a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch index 491e0f5f..399f4a68 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -37,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -658,6 +658,8 @@ chrome_java_resources = [ +@@ -667,6 +667,8 @@ chrome_java_resources = [ "java/res/xml/incognito_preferences.xml", "java/res/xml/privacy_preferences.xml", "java/res/xml/privacy_preferences_v2.xml", @@ -49,9 +49,9 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -966,6 +966,8 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", +@@ -978,6 +978,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java", "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", + "java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java", + "java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java", @@ -113,7 +113,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -70,6 +70,10 @@ found in the LICENSE file. +@@ -76,6 +76,10 @@ found in the LICENSE file. android:title="@string/close_tabs_on_exit_title" android:summary="@string/close_tabs_on_exit_summary" android:defaultValue="false" /> @@ -163,7 +163,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -32,6 +32,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthSettingSwitchPreference; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsFragment; @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideInteractions; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge; -@@ -85,6 +86,7 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -80,6 +81,7 @@ public class PrivacySettings private static final String PREF_DO_NOT_TRACK = "do_not_track"; private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -179,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; private static final String PREF_PROXY_OPTIONS = "proxy"; private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; -@@ -354,6 +356,10 @@ public class PrivacySettings extends PreferenceFragmentCompat +@@ -358,6 +360,10 @@ public class PrivacySettings : R.string.text_off); } @@ -371,7 +371,7 @@ new file mode 100644 diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -541,6 +541,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -557,6 +557,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( base::BindRepeating(&SystemNetworkContextManager::UpdateReferrersEnabled, base::Unretained(this))); @@ -381,7 +381,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows pref_change_registrar_.Add( prefs::kExplicitlyAllowedNetworkPorts, base::BindRepeating( -@@ -632,6 +635,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -648,6 +651,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { // the system NetworkContext, and the per-profile pref values are used for // the profile NetworkContexts. registry->RegisterBooleanPref(prefs::kEnableReferrers, true); @@ -392,18 +392,18 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc --- a/chrome/browser/renderer_preferences_util.cc +++ b/chrome/browser/renderer_preferences_util.cc -@@ -108,6 +108,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, +@@ -110,6 +110,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, prefs->accept_languages = GetLanguageListForProfile( profile, pref_service->GetString(language::prefs::kAcceptLanguages)); prefs->enable_referrers = pref_service->GetBoolean(prefs::kEnableReferrers); + prefs->referrers_policy = pref_service->GetInteger(prefs::kReferrersPolicy); prefs->enable_do_not_track = - pref_service->GetBoolean(prefs::kEnableDoNotTrack); - prefs->enable_encrypted_media = + TrackingProtectionSettingsFactory::GetForProfile(profile) + ->IsDoNotTrackEnabled(); diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -993,6 +993,30 @@ CHAR_LIMIT guidelines: +@@ -1016,6 +1016,30 @@ CHAR_LIMIT guidelines: For example, some websites may respond to this request by showing you ads that aren’t based on other websites you’ve visited. Many websites will still collect and use your browsing data — for example to improve security, to provide content, ads and recommendations, and to generate reporting statistics. @@ -437,7 +437,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/pref_watcher.cc --- a/chrome/browser/ui/prefs/pref_watcher.cc +++ b/chrome/browser/ui/prefs/pref_watcher.cc -@@ -99,6 +99,8 @@ PrefWatcher::PrefWatcher(Profile* profile) : profile_(profile) { +@@ -106,6 +106,8 @@ PrefWatcher::PrefWatcher(Profile* profile) renderer_callback); profile_pref_change_registrar_.Add(prefs::kEnableReferrers, renderer_callback); @@ -461,7 +461,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1486,6 +1486,9 @@ inline constexpr char kEnableDoNotTrack[] = "enable_do_not_track"; +@@ -1469,6 +1469,9 @@ inline constexpr char kEnableReferrers[] = "enable_referrers"; inline constexpr char kEnableEncryptedMedia[] = "webkit.webprefs.encrypted_media_enabled"; @@ -474,7 +474,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -394,6 +394,14 @@ void AddAdditionalRequestHeaders( +@@ -393,6 +393,14 @@ void AddAdditionalRequestHeaders( blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever); } diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 61d161f2..776703f4 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -26,6 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- ...em_webview_bundle.AndroidManifest.expected | 5 - build/android/gyp/proguard.py | 2 + + build/config/android/config.gni | 4 +- chrome/android/BUILD.gn | 48 +- chrome/android/chrome_java_sources.gni | 5 - .../features/cablev2_authenticator/BUILD.gn | 2 - @@ -104,9 +105,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/cardboard/BUILD.gn | 4 - - weblayer/browser/java/BUILD.gn | 1 - - weblayer/public/java/BUILD.gn | 1 - - 82 files changed, 96 insertions(+), 2011 deletions(-) + 81 files changed, 97 insertions(+), 2012 deletions(-) diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected --- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -142,10 +141,24 @@ diff --git a/build/android/gyp/proguard.py b/build/android/gyp/proguard.py ]) + ')', # TODO(agrieve): Remove once we update to U SDK. r'OnBackAnimationCallback', +diff --git a/build/config/android/config.gni b/build/config/android/config.gni +--- a/build/config/android/config.gni ++++ b/build/config/android/config.gni +@@ -170,9 +170,7 @@ if (is_android || is_chromeos) { + + # google_play_services_package contains the path where individual client + # targets (e.g. google_play_services_base_java) are located. +- if (!defined(google_play_services_package)) { +- google_play_services_package = "//third_party/android_deps" +- } ++ google_play_services_package = "" + + if (!defined(android_protoc_bin)) { + android_protoc_bin = "//third_party/android_protoc/protoc" diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -288,14 +288,6 @@ if (current_toolchain == default_toolchain) { +@@ -291,14 +291,6 @@ if (current_toolchain == default_toolchain) { ":google_api_keys_java", ":update_proto_java", ":usage_stats_proto_java", @@ -160,7 +173,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:jni_java", "//cc:cc_java", "//cc/mojom:mojom_java", -@@ -612,14 +604,23 @@ if (current_toolchain == default_toolchain) { +@@ -624,14 +616,23 @@ if (current_toolchain == default_toolchain) { "//services/shape_detection:shape_detection_java", "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", @@ -187,9 +200,9 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -893,12 +894,6 @@ if (current_toolchain == default_toolchain) { - ":chrome_java", +@@ -914,12 +915,6 @@ if (current_toolchain == default_toolchain) { ":chrome_jni_headers", + ":chrome_unit_test_util_java", ":delegate_public_impl_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", @@ -200,9 +213,9 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java_test_support", "//base:base_java_test_support_uncommon", "//base:base_junit_test_support", -@@ -1506,13 +1501,6 @@ if (current_toolchain == default_toolchain) { +@@ -1536,13 +1531,6 @@ if (current_toolchain == default_toolchain) { + ":chrome_app_java_resources", ":chrome_test_util_java", - ":critical_persisted_tab_data_flatbuffer_test_v1_java", ":delegate_public_impl_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", @@ -214,7 +227,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_java_test_support_uncommon", -@@ -2430,7 +2418,6 @@ if (current_toolchain == default_toolchain) { +@@ -2458,7 +2446,6 @@ if (current_toolchain == default_toolchain) { ] deps = [ ":chrome_java", @@ -222,7 +235,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:jni_java", -@@ -2529,7 +2516,6 @@ if (current_toolchain == default_toolchain) { +@@ -2552,7 +2539,6 @@ if (current_toolchain == default_toolchain) { # is in a DFM. android_library("base_module_java") { sources = [ @@ -230,7 +243,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java", "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java", -@@ -2545,8 +2531,6 @@ if (current_toolchain == default_toolchain) { +@@ -2569,8 +2555,6 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", @@ -239,9 +252,9 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", -@@ -2570,17 +2554,11 @@ if (current_toolchain == default_toolchain) { +@@ -2593,17 +2577,11 @@ if (current_toolchain == default_toolchain) { + "java/src/org/chromium/chrome/browser/notifications/NotificationService.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", - "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", - "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java", - "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundService.java", @@ -257,7 +270,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:jni_java", "//chrome/browser/download/android:file_provider_java", -@@ -2594,7 +2572,6 @@ if (current_toolchain == default_toolchain) { +@@ -2617,7 +2595,6 @@ if (current_toolchain == default_toolchain) { "//components/media_router/browser/android:cast_options_provider_java", "//components/minidump_uploader:minidump_uploader_java", "//components/module_installer/android:module_installer_java", @@ -265,7 +278,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_collection_collection_java", "//ui/android:ui_no_recycler_view_java", -@@ -2613,7 +2590,6 @@ if (current_toolchain == default_toolchain) { +@@ -2636,7 +2613,6 @@ if (current_toolchain == default_toolchain) { # Deps to pull services into base module. # TODO(crbug.com/1126301): Consider moving these to the chrome module to # reduce base dex size. @@ -284,7 +297,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java", "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java", "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", -@@ -991,10 +990,6 @@ chrome_java_sources = [ +@@ -1003,10 +1002,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProvider.java", "java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java", "java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java", @@ -298,7 +311,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/features/cablev2_authenticator/BUILD.gn b/chrome/android/features/cablev2_authenticator/BUILD.gn --- a/chrome/android/features/cablev2_authenticator/BUILD.gn +++ b/chrome/android/features/cablev2_authenticator/BUILD.gn -@@ -16,8 +16,6 @@ android_library("java") { +@@ -17,8 +17,6 @@ android_library("java") { deps = [ ":java_resources", @@ -310,7 +323,7 @@ diff --git a/chrome/android/features/cablev2_authenticator/BUILD.gn b/chrome/and diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -121,19 +121,14 @@ by a child template that "extends" this file. +@@ -122,19 +122,14 @@ by a child template that "extends" this file. @@ -330,7 +343,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -784,16 +779,6 @@ by a child template that "extends" this file. +@@ -785,16 +780,6 @@ by a child template that "extends" this file. @@ -347,7 +360,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -374,7 +387,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1034,20 +999,10 @@ by a child template that "extends" this file. +@@ -1035,20 +1000,10 @@ by a child template that "extends" this file. @@ -392,10 +405,10 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro - - - - -@@ -1301,12 +1256,6 @@ by a child template that "extends" this file. + tools:ignore="ExportedService"> +@@ -1299,12 +1254,6 @@ by a child template that "extends" this file. {% endif %} @@ -746,15 +759,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -129,7 +129,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -124,7 +124,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment private Preference mLinkPref; private Menu mMenu; - private @Nullable PasswordCheck mPasswordCheck; private @ManagePasswordsReferrer int mManagePasswordsReferrer; - private HelpAndFeedbackLauncher mHelpAndFeedbackLauncher; - private Profile mProfile; -@@ -203,7 +202,6 @@ public class PasswordSettings extends PreferenceFragmentCompat + private BottomSheetController mBottomSheetController; + +@@ -196,7 +195,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -762,7 +775,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage computeTrustedVaultBannerState(); } -@@ -309,9 +307,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -302,9 +300,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment if (shouldShowAutoSigninOption()) { createAutoSignInCheckbox(); } @@ -772,7 +785,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) { createTrustedVaultBanner(R.string.android_trusted_vault_banner_sub_label_opted_in, -@@ -509,10 +504,6 @@ public class PasswordSettings extends PreferenceFragmentCompat +@@ -502,10 +497,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment // by the system. if (getActivity().isFinishing()) { PasswordManagerHandlerProvider.getInstance().removeObserver(this); @@ -795,7 +808,7 @@ diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/ import("//chrome/android/modules/stack_unwinder/stack_unwinder_module.gni") import("//chrome/android/modules/test_dummy/test_dummy_module.gni") import("//device/vr/buildflags/buildflags.gni") -@@ -39,7 +37,6 @@ if (enable_arcore) { +@@ -37,7 +35,6 @@ if (enable_arcore) { # Each new module needs to add a desc to one of the lists below. chrome_module_descs = [ @@ -806,7 +819,7 @@ diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/ diff --git a/chrome/browser/language/android/BUILD.gn b/chrome/browser/language/android/BUILD.gn --- a/chrome/browser/language/android/BUILD.gn +++ b/chrome/browser/language/android/BUILD.gn -@@ -9,15 +9,12 @@ android_library("base_module_java") { +@@ -10,15 +10,12 @@ android_library("base_module_java") { sources = [ "java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java", "java/src/org/chromium/chrome/browser/language/GlobalAppLocaleController.java", @@ -865,7 +878,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java -@@ -19,7 +19,6 @@ import org.chromium.base.Log; +@@ -18,7 +18,6 @@ import org.chromium.base.Log; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.language.AppLocaleUtils; import org.chromium.chrome.browser.language.GlobalAppLocaleController; @@ -873,7 +886,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse import org.chromium.chrome.browser.language.R; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.PrefChangeRegistrar; -@@ -135,11 +134,6 @@ public class LanguageSettings extends PreferenceFragmentCompat +@@ -131,11 +130,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment * translate target language, and detailed translate preferences. */ private void createDetailedPreferences(Bundle savedInstanceState, String rootKey) { @@ -888,7 +901,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn --- a/chrome/browser/password_manager/android/BUILD.gn +++ b/chrome/browser/password_manager/android/BUILD.gn -@@ -99,8 +99,6 @@ android_library("java") { +@@ -101,8 +101,6 @@ android_library("java") { ":android_backend_java_enums", ":java_resources", ":settings_interface_java", @@ -897,7 +910,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p "//base:base_java", "//base:jni_java", "//build/android:build_java", -@@ -221,8 +219,6 @@ robolectric_binary("password_manager_junit_tests") { +@@ -223,8 +221,6 @@ robolectric_binary("password_manager_junit_tests") { ":public_impl_java", ":settings_interface_java", ":test_support_java", @@ -1063,7 +1076,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -54,8 +54,6 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -60,8 +60,6 @@ function addPrivacyChildRoutes(r: Partial) { if (loadTimeData.getBoolean('enableSecurityKeysSubpage')) { r.SECURITY_KEYS = r.SECURITY.createChild('/securityKeys'); @@ -1075,7 +1088,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -277,8 +277,6 @@ static_library("ui") { +@@ -273,8 +273,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -1084,7 +1097,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/internals/internals_ui.cc", "webui/internals/internals_ui.h", "webui/interstitials/interstitial_ui.cc", -@@ -516,7 +514,6 @@ static_library("ui") { +@@ -508,7 +506,6 @@ static_library("ui") { "//components/feedback/redaction_tool", "//components/find_in_page", "//components/flags_ui", @@ -1141,7 +1154,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/internals/internals_ui.h" #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h" #include "chrome/browser/ui/webui/intro/intro_ui.h" -@@ -479,8 +478,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -478,8 +477,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIFlagsHost) return &NewWebUI; @@ -1153,7 +1166,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom diff --git a/chrome/browser/webauthn/android/BUILD.gn b/chrome/browser/webauthn/android/BUILD.gn --- a/chrome/browser/webauthn/android/BUILD.gn +++ b/chrome/browser/webauthn/android/BUILD.gn -@@ -13,7 +13,6 @@ android_library("java") { +@@ -14,7 +14,6 @@ android_library("java") { deps = [ ":java_resources", ":jni_headers", @@ -1211,7 +1224,7 @@ diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.cc b/chrome/browser/webauthn/authenticator_request_dialog_model.cc --- a/chrome/browser/webauthn/authenticator_request_dialog_model.cc +++ b/chrome/browser/webauthn/authenticator_request_dialog_model.cc -@@ -1742,10 +1742,6 @@ void AuthenticatorRequestDialogModel::PopulateMechanisms() { +@@ -1772,10 +1772,6 @@ void AuthenticatorRequestDialogModel::PopulateMechanisms() { if (cable_ui_type_) { switch (*cable_ui_type_) { case AuthenticatorRequestDialogModel::CableUIType::CABLE_V2_2ND_FACTOR: @@ -1225,7 +1238,7 @@ diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.cc b/chr diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauthn/cablev2_devices.cc --- a/chrome/browser/webauthn/cablev2_devices.cc +++ b/chrome/browser/webauthn/cablev2_devices.cc -@@ -365,6 +365,9 @@ void AddPairing(Profile* profile, std::unique_ptr pairing) { +@@ -366,6 +366,9 @@ void AddPairing(Profile* profile, std::unique_ptr pairing) { // This is called when doing a QR-code pairing with a phone and the phone // sends long-term pairing information during the handshake. The pairing // information is saved in preferences for future operations. @@ -1238,7 +1251,7 @@ diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauth diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -242,8 +242,6 @@ android_library("chrome_java_integration_test_support") { +@@ -243,8 +243,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1277,7 +1290,7 @@ diff --git a/components/externalauth/android/BUILD.gn b/components/externalauth/ "//base:base_java", "//components/embedder_support/android:util_java", "//content/public/android:content_java", -@@ -45,7 +43,6 @@ android_library("java") { +@@ -44,7 +42,6 @@ android_library("java") { robolectric_library("junit") { deps = [ ":java", @@ -1306,7 +1319,7 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex /** * Utility class for external authentication tools. -@@ -172,9 +168,7 @@ public class ExternalAuthUtils { +@@ -170,9 +166,7 @@ public class ExternalAuthUtils { * when it is updating. */ public boolean isGooglePlayServicesMissing(final Context context) { @@ -1317,7 +1330,7 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex } /** -@@ -191,7 +185,6 @@ public class ExternalAuthUtils { +@@ -189,7 +183,6 @@ public class ExternalAuthUtils { public boolean canUseGooglePlayServices(final UserRecoverableErrorHandler errorHandler) { Context context = ContextUtils.getApplicationContext(); final int resultCode = checkGooglePlayServicesAvailable(context); @@ -1325,7 +1338,7 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex // resultCode is some kind of error. Log.v(TAG, "Unable to use Google Play Services: %s", describeError(resultCode)); if (isUserRecoverableError(resultCode)) { -@@ -261,11 +254,7 @@ public class ExternalAuthUtils { +@@ -259,11 +252,7 @@ public class ExternalAuthUtils { * @return The code produced by calling the external code */ protected int checkGooglePlayServicesAvailable(final Context context) { @@ -1338,7 +1351,7 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex } /** -@@ -276,7 +265,7 @@ public class ExternalAuthUtils { +@@ -274,7 +263,7 @@ public class ExternalAuthUtils { * @return true If the code represents a user-recoverable error */ protected boolean isUserRecoverableError(final int errorCode) { @@ -1347,7 +1360,7 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex } /** -@@ -286,7 +275,7 @@ public class ExternalAuthUtils { +@@ -284,7 +273,7 @@ public class ExternalAuthUtils { * @return a textual description of the error code */ protected String describeError(final int errorCode) { @@ -1438,7 +1451,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn --- a/components/gcm_driver/instance_id/android/BUILD.gn +++ b/components/gcm_driver/instance_id/android/BUILD.gn -@@ -15,7 +15,6 @@ generate_jni("test_support_jni_headers") { +@@ -16,7 +16,6 @@ generate_jni("test_support_jni_headers") { android_library("instance_id_driver_java") { deps = [ @@ -1446,7 +1459,7 @@ diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm "//base:base_java", "//base:jni_java", "//build/android:build_java", -@@ -30,14 +29,12 @@ android_library("instance_id_driver_java") { +@@ -31,14 +30,12 @@ android_library("instance_id_driver_java") { sources = [ "java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java", @@ -1564,7 +1577,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com diff --git a/components/media_router/browser/android/BUILD.gn b/components/media_router/browser/android/BUILD.gn --- a/components/media_router/browser/android/BUILD.gn +++ b/components/media_router/browser/android/BUILD.gn -@@ -11,10 +11,6 @@ android_library("java") { +@@ -12,10 +12,6 @@ android_library("java") { resources_package = "org.chromium.components.media_router" deps = [ ":java_resources", @@ -1575,7 +1588,7 @@ diff --git a/components/media_router/browser/android/BUILD.gn b/components/media "//base:base_java", "//base:jni_java", "//build/android:build_java", -@@ -76,8 +72,6 @@ android_library("java") { +@@ -77,8 +73,6 @@ android_library("java") { android_library("cast_options_provider_java") { sources = [ "java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java" ] deps = [ @@ -1584,7 +1597,7 @@ diff --git a/components/media_router/browser/android/BUILD.gn b/components/media ] } -@@ -103,7 +97,6 @@ android_library("test_support_java") { +@@ -104,7 +98,6 @@ android_library("test_support_java") { ":java", ":java_resources", ":test_jni_headers", @@ -1592,7 +1605,7 @@ diff --git a/components/media_router/browser/android/BUILD.gn b/components/media "//base:base_java", "//base:base_java_test_support", "//base:jni_java", -@@ -147,10 +140,6 @@ robolectric_library("junit") { +@@ -148,10 +141,6 @@ robolectric_library("junit") { deps = [ ":java", ":test_support_java", @@ -2147,7 +2160,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo private static final String TAG = "CafMR"; protected static final List NO_SINKS = Collections.emptyList(); -@@ -167,7 +164,6 @@ public abstract class CafBaseMediaRouteProvider +@@ -165,7 +162,6 @@ public abstract class CafBaseMediaRouteProvider // current session and clean up the routes (can't wait for session ending as the signal // might be delayed). sessionController().endSession(); @@ -2155,7 +2168,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo } if (mPendingCreateRouteRequestInfo != null) { cancelPendingRequest("Request replaced"); -@@ -196,9 +192,6 @@ public abstract class CafBaseMediaRouteProvider +@@ -194,9 +190,6 @@ public abstract class CafBaseMediaRouteProvider mManager.onCreateRouteRequestError("The sink does not exist", nativeRequestId); } @@ -2165,7 +2178,7 @@ diff --git a/components/media_router/browser/android/java/src/org/chromium/compo mPendingCreateRouteRequestInfo = new CreateRouteRequestInfo(source, sink, presentationId, origin, tabId, isOffTheRecord, nativeRequestId, targetRouteInfo); -@@ -225,100 +218,6 @@ public abstract class CafBaseMediaRouteProvider +@@ -223,100 +216,6 @@ public abstract class CafBaseMediaRouteProvider removeRoute(routeId, /* error= */ null); } @@ -2985,7 +2998,7 @@ diff --git a/components/media_router/test/android/cast_emulator/BUILD.gn b/compo diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn --- a/components/module_installer/android/BUILD.gn +++ b/components/module_installer/android/BUILD.gn -@@ -33,11 +33,9 @@ android_library("module_installer_java") { +@@ -34,11 +34,9 @@ android_library("module_installer_java") { ] deps = [ @@ -2997,7 +3010,7 @@ diff --git a/components/module_installer/android/BUILD.gn b/components/module_in "//third_party/androidx:androidx_annotation_annotation_java", ] -@@ -57,11 +55,9 @@ robolectric_binary("module_installer_junit_tests") { +@@ -58,11 +56,9 @@ robolectric_binary("module_installer_junit_tests") { ] deps = [ ":module_installer_java", @@ -3012,7 +3025,7 @@ diff --git a/components/module_installer/android/BUILD.gn b/components/module_in diff --git a/components/signin/public/android/BUILD.gn b/components/signin/public/android/BUILD.gn --- a/components/signin/public/android/BUILD.gn +++ b/components/signin/public/android/BUILD.gn -@@ -2,8 +2,6 @@ import("//build/config/android/rules.gni") +@@ -3,8 +3,6 @@ import("//third_party/jni_zero/jni_zero.gni") android_library("java") { deps = [ @@ -3021,7 +3034,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi "//base:base_java", "//base:jni_java", "//build/android:build_java", -@@ -177,7 +175,6 @@ robolectric_library("junit") { +@@ -178,7 +176,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3032,7 +3045,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java b/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java --- a/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java +++ b/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java -@@ -11,10 +11,6 @@ import androidx.annotation.Nullable; +@@ -10,10 +10,6 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.annotation.WorkerThread; @@ -3065,7 +3078,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/BUILD.gn --- a/components/webauthn/android/BUILD.gn +++ b/components/webauthn/android/BUILD.gn -@@ -6,8 +6,6 @@ import("//build/config/android/rules.gni") +@@ -7,8 +7,6 @@ import("//third_party/jni_zero/jni_zero.gni") generate_jni("jni_headers") { sources = [ @@ -3074,10 +3087,10 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", "java/src/org/chromium/components/webauthn/WebAuthnBrowserBridge.java", ] -@@ -18,13 +16,8 @@ android_library("java") { - sources = [ - "java/src/org/chromium/components/webauthn/AuthenticatorFactory.java", +@@ -21,13 +19,8 @@ android_library("java") { "java/src/org/chromium/components/webauthn/AuthenticatorImpl.java", + "java/src/org/chromium/components/webauthn/AuthenticatorIncognitoConfirmationBottomsheet.java", + "java/src/org/chromium/components/webauthn/Barrier.java", - "java/src/org/chromium/components/webauthn/CredManHelper.java", "java/src/org/chromium/components/webauthn/CredManMetricsHelper.java", - "java/src/org/chromium/components/webauthn/Fido2Api.java", @@ -3088,17 +3101,17 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "java/src/org/chromium/components/webauthn/GetAssertionResponseCallback.java", "java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsResponseCallback.java", "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", -@@ -35,9 +28,6 @@ android_library("java") { - ] +@@ -39,9 +32,6 @@ android_library("java") { deps = [ + ":java_resources", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//base:jni_java", "//build/android:build_java", -@@ -90,8 +80,6 @@ android_library("test_support_java") { +@@ -96,8 +86,6 @@ android_library("test_support_java") { source_set("android") { sources = [ @@ -3110,15 +3123,15 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java -@@ -12,7 +12,6 @@ import android.os.Build; - import android.util.Pair; +@@ -14,7 +14,6 @@ import android.util.Pair; + import androidx.annotation.Nullable; import org.chromium.base.Callback; -import org.chromium.base.PackageUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.blink.mojom.Authenticator; import org.chromium.blink.mojom.AuthenticatorStatus; -@@ -59,9 +58,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -71,9 +70,6 @@ public final class AuthenticatorImpl implements Authenticator { /** The payment information to be added to the "clientDataJson". */ private PaymentOptions mPayment; @@ -3128,7 +3141,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut private MakeCredential_Response mMakeCredentialCallback; private GetAssertion_Response mGetAssertionCallback; // A queue is used to store pending IsUserVerifyingPlatformAuthenticatorAvailable request -@@ -70,14 +66,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -82,14 +78,6 @@ public final class AuthenticatorImpl implements Authenticator { // situation does not matter because all pending requests will return the same value. private Queue> mIsUserVerifyingPlatformAuthenticatorAvailableCallbackQueue = new LinkedList<>(); @@ -3143,10 +3156,10 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Builds the Authenticator service implementation. -@@ -97,21 +85,6 @@ public final class AuthenticatorImpl implements Authenticator { - mRenderFrameHost = renderFrameHost; +@@ -113,21 +101,6 @@ public final class AuthenticatorImpl implements Authenticator { mOrigin = mRenderFrameHost.getLastCommittedOrigin(); mTopOrigin = topOrigin; + mCreateConfirmationUiDelegate = createConfirmationUiDelegate; - - mGmsCorePackageVersion = PackageUtils.getPackageVersion(GMSCORE_PACKAGE_NAME); - } @@ -3165,7 +3178,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -141,17 +114,9 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -157,11 +130,9 @@ public final class AuthenticatorImpl implements Authenticator { mMakeCredentialCallback = callback; mIsOperationPending = true; @@ -3174,18 +3187,25 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - return; - } ++ // Fido2 not supported on Bromite ++ onError(AuthenticatorStatus.NOT_IMPLEMENTED); + if (mCreateConfirmationUiDelegate != null) { + if (!mCreateConfirmationUiDelegate.show( + () +@@ -176,12 +147,6 @@ public final class AuthenticatorImpl implements Authenticator { + + private void continueMakeCredential( + PublicKeyCredentialCreationOptions options, MakeCredential_Response callback) { - mPendingFido2CredentialRequest = getFido2CredentialRequest(); - mPendingFido2CredentialRequest.handleMakeCredentialRequest(mContext, options, - mRenderFrameHost, /*maybeClientDataHash=*/null, mOrigin, - (status, response) - -> onRegisterResponse(status, response), - status -> onError(status)); -+ // Fido2 not supported on Bromite -+ onError(AuthenticatorStatus.NOT_IMPLEMENTED); } @Override -@@ -165,16 +130,8 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -195,16 +160,8 @@ public final class AuthenticatorImpl implements Authenticator { mGetAssertionCallback = callback; mIsOperationPending = true; @@ -3204,7 +3224,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -186,15 +143,8 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -216,15 +173,8 @@ public final class AuthenticatorImpl implements Authenticator { callback.call(isUvpaa); }; @@ -3222,7 +3242,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -203,7 +153,7 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -233,7 +183,7 @@ public final class AuthenticatorImpl implements Authenticator { * version. */ public boolean isGetMatchingCredentialIdsSupported() { @@ -3231,7 +3251,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -217,32 +167,13 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -247,32 +197,13 @@ public final class AuthenticatorImpl implements Authenticator { */ public void getMatchingCredentialIds(String relyingPartyId, byte[][] credentialIds, boolean requireThirdPartyPayment, GetMatchingCredentialIdsResponseCallback callback) { @@ -3266,7 +3286,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -254,8 +185,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -284,8 +215,6 @@ public final class AuthenticatorImpl implements Authenticator { if (!mIsOperationPending || mGetAssertionCallback == null) { return; } @@ -3275,7 +3295,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -297,7 +226,6 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -327,7 +256,6 @@ public final class AuthenticatorImpl implements Authenticator { } else if (mGetAssertionCallback != null) { mGetAssertionCallback.call(status, null, null); } @@ -3283,7 +3303,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut cleanupRequest(); } -@@ -305,13 +233,10 @@ public final class AuthenticatorImpl implements Authenticator { +@@ -335,13 +263,10 @@ public final class AuthenticatorImpl implements Authenticator { mIsOperationPending = false; mMakeCredentialCallback = null; mGetAssertionCallback = null; @@ -3418,7 +3438,7 @@ diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -141,10 +141,6 @@ android_library("content_full_java") { +@@ -142,10 +142,6 @@ android_library("content_full_java") { deps = [ ":content_java_resources", ":content_main_dex_java", @@ -3432,7 +3452,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -3394,10 +3394,6 @@ if (is_android) { +@@ -3405,10 +3405,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3446,7 +3466,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -504,9 +504,6 @@ if (is_android) { +@@ -506,9 +506,6 @@ if (is_android) { "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java", ] deps = [ @@ -3472,7 +3492,7 @@ diff --git a/remoting/android/client_java_tmpl.gni b/remoting/android/client_jav diff --git a/services/BUILD.gn b/services/BUILD.gn --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -122,11 +122,6 @@ if (is_android) { +@@ -123,11 +123,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java", ] deps = [ @@ -3484,7 +3504,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -156,10 +151,6 @@ if (is_android) { +@@ -157,10 +152,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -3498,7 +3518,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn --- a/services/device/geolocation/BUILD.gn +++ b/services/device/geolocation/BUILD.gn -@@ -166,10 +166,6 @@ if (is_android) { +@@ -167,10 +167,6 @@ if (is_android) { deps = [ ":geolocation_jni_headers", @@ -3512,7 +3532,7 @@ diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/ diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn --- a/services/shape_detection/BUILD.gn +++ b/services/shape_detection/BUILD.gn -@@ -115,8 +115,6 @@ if (is_android) { +@@ -116,8 +116,6 @@ if (is_android) { ] deps = [ @@ -3548,7 +3568,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # TODO(crbug.com/1366370) Remove this once all depencencies are updated to -@@ -978,212 +969,6 @@ if (!limit_android_deps) { +@@ -767,212 +758,6 @@ if (!limit_android_deps) { ] } @@ -3761,7 +3781,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. android_aar_prebuilt("com_google_android_material_material_java") { -@@ -1228,62 +1013,6 @@ if (!limit_android_deps) { +@@ -1017,62 +802,6 @@ if (!limit_android_deps) { ] } @@ -3824,7 +3844,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_google_guava_guava_android_java") { -@@ -1617,19 +1346,6 @@ if (!limit_android_deps) { +@@ -1406,19 +1135,6 @@ if (!limit_android_deps) { is_robolectric = true } @@ -3844,7 +3864,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("org_robolectric_utils_java") { jar_path = "libs/org_robolectric_utils/utils-4.10.3.jar" -@@ -2009,290 +1725,6 @@ if (!limit_android_deps) { +@@ -1878,290 +1594,6 @@ if (!limit_android_deps) { deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] } @@ -4193,27 +4213,5 @@ diff --git a/third_party/cardboard/BUILD.gn b/third_party/cardboard/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/androidx:androidx_annotation_annotation_jvm_java", "//third_party/androidx:androidx_appcompat_appcompat_java", -diff --git a/weblayer/browser/java/BUILD.gn b/weblayer/browser/java/BUILD.gn ---- a/weblayer/browser/java/BUILD.gn -+++ b/weblayer/browser/java/BUILD.gn -@@ -91,7 +91,6 @@ android_library("base_module_java") { - srcjar_deps = [ ":base_module_jni" ] - deps = [ - ":base_module_interfaces_java", -- "$google_play_services_package:google_play_services_basement_java", - "//base:base_java", - "//base:jni_java", - "//base:process_launcher_java", -diff --git a/weblayer/public/java/BUILD.gn b/weblayer/public/java/BUILD.gn ---- a/weblayer/public/java/BUILD.gn -+++ b/weblayer/public/java/BUILD.gn -@@ -139,7 +139,6 @@ android_library("java") { - "//weblayer/browser/java:interfaces_java", - - # TODO(rayankans): Figure out why this isn't being inherited from //weblayer/browser/java. -- "$google_play_services_package:google_play_services_basement_java", - ] - - proguard_configs = [ "proguard.flags" ] -- 2.25.1 diff --git a/build/patches/Remove-navigator.connection-info.patch b/build/patches/Remove-navigator.connection-info.patch index de3172c2..bd56bd8b 100644 --- a/build/patches/Remove-navigator.connection-info.patch +++ b/build/patches/Remove-navigator.connection-info.patch @@ -73,7 +73,7 @@ diff --git a/third_party/blink/renderer/platform/network/network_state_notifier. diff --git a/third_party/blink/renderer/platform/network/network_state_notifier.h b/third_party/blink/renderer/platform/network/network_state_notifier.h --- a/third_party/blink/renderer/platform/network/network_state_notifier.h +++ b/third_party/blink/renderer/platform/network/network_state_notifier.h -@@ -123,7 +123,7 @@ class PLATFORM_EXPORT NetworkStateNotifier { +@@ -124,7 +124,7 @@ class PLATFORM_EXPORT NetworkStateNotifier { scoped_refptr task_runner_; }; diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index 03b9e834..b11d7e26 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -129,7 +129,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSess diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -62,7 +62,6 @@ import org.chromium.chrome.browser.native_page.ContextMenuManager; +@@ -64,7 +64,6 @@ import org.chromium.chrome.browser.native_page.ContextMenuManager; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteControllerProvider; @@ -137,7 +137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileKey; -@@ -117,8 +116,7 @@ import java.util.List; +@@ -119,8 +118,7 @@ import java.util.List; */ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvider, TemplateUrlServiceObserver, @@ -147,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. private static final String TAG = "NewTabPage"; // Key for the scroll position data that may be stored in a navigation entry. -@@ -148,7 +146,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide +@@ -151,7 +149,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide protected boolean mSearchProviderHasLogo; protected OmniboxStub mOmniboxStub; @@ -155,7 +155,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. // The timestamp at which the constructor was called. protected final long mConstructedTimeNs; -@@ -240,8 +237,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide +@@ -243,8 +240,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide @Override public boolean isVoiceSearchEnabled() { @@ -165,7 +165,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -249,21 +245,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide +@@ -252,21 +248,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide if (mIsDestroyed) return; FeedReliabilityLogger feedReliabilityLogger = mFeedSurfaceProvider.getReliabilityLogger(); @@ -187,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -767,12 +748,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide +@@ -785,12 +766,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -783,11 +758,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide +@@ -801,11 +776,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide } } @@ -212,9 +212,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. /** Adds an observer to be notified on most visited tile clicks. */ public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) { mMostVisitedTileClickObservers.addObserver(observer); -@@ -806,9 +776,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide - mLastShownTimeNs = System.nanoTime(); +@@ -825,9 +795,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide RecordUserAction.record("MobileNTPShown"); + mJankTracker.startTrackingScenario(JankScenario.NEW_TAB_PAGE); SuggestionsMetrics.recordSurfaceVisible(); - - FeatureNotificationUtils.registerIPHCallback(FeatureType.VOICE_SEARCH, @@ -222,7 +222,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } /** Records UMA for the NTP being hidden and the time spent on it. */ -@@ -816,7 +783,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide +@@ -836,7 +803,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide RecordHistogram.recordMediumTimesHistogram("NewTabPage.TimeSpent", (System.nanoTime() - mLastShownTimeNs) / TimeUtils.NANOSECONDS_PER_MILLISECOND); SuggestionsMetrics.recordSurfaceHidden(); @@ -230,7 +230,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } /** -@@ -914,9 +880,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide +@@ -934,9 +900,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide } mFeedSurfaceProvider.destroy(); mTab.getWindowAndroid().removeContextMenuCloseListener(mContextMenuManager); @@ -243,10 +243,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java -@@ -78,7 +78,6 @@ class SearchBoxMediator implements DestroyObserver, NativeInitObserver { - - ColorStateList colorStateList = - ThemeUtils.getThemedToolbarIconTint(mContext, BrandedColorScheme.APP_DEFAULT); +@@ -86,7 +86,6 @@ class SearchBoxMediator implements DestroyObserver, NativeInitObserver { + ? AppCompatResources.getColorStateList(mContext, + R.color.default_icon_color_accent1_container_tint_list) + : ThemeUtils.getThemedToolbarIconTint(mContext, BrandedColorScheme.APP_DEFAULT); - mModel.set(SearchBoxProperties.VOICE_SEARCH_COLOR_STATE_LIST, colorStateList); } @@ -262,7 +262,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; -@@ -403,14 +402,12 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -404,14 +403,12 @@ public class SearchActivity extends AsyncInitializationActivity // will navigate to Tabbed mode. Investigate whether this can inflate // the tabbed mode layout in the background instead of CCTs. CustomTabsConnection.getInstance().warmup(0); @@ -278,7 +278,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se RecordUserAction.record("SearchWidget.WidgetSelected"); getActivityDelegate().onFinishDeferredInitialization(); -@@ -481,8 +478,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -482,8 +479,7 @@ public class SearchActivity extends AsyncInitializationActivity if (isFromQuickActionSearchWidget()) { recordQuickActionSearchType(searchType); } @@ -397,15 +397,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -92,7 +92,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate; - import org.chromium.chrome.browser.omnibox.SearchEngineLogoUtils; +@@ -92,7 +92,6 @@ import org.chromium.chrome.browser.omnibox.SearchEngineLogoUtils; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; + import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures; -@@ -2198,10 +2197,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve +@@ -2207,10 +2206,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve return mLocationBar.getOmniboxStub(); } @@ -419,7 +419,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -94,8 +94,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; +@@ -96,8 +96,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; @@ -428,7 +428,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -@@ -287,7 +285,6 @@ public class RootUiCoordinator +@@ -295,7 +293,6 @@ public class RootUiCoordinator protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); protected Supplier mStartSurfaceParentTabSupplier; @Nullable @@ -436,7 +436,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi private MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; -@@ -584,9 +581,6 @@ public class RootUiCoordinator +@@ -594,9 +591,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -446,7 +446,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1173,19 +1167,11 @@ public class RootUiCoordinator +@@ -1194,19 +1188,11 @@ public class RootUiCoordinator new VoiceToolbarButtonController.VoiceSearchDelegate() { @Override public boolean isVoiceSearchEnabled() { @@ -467,7 +467,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi } }; TranslateToolbarButtonController translateToolbarButtonController = -@@ -1295,13 +1281,6 @@ public class RootUiCoordinator +@@ -1316,13 +1302,6 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -484,7 +484,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -138,7 +138,6 @@ android_library("java") { +@@ -139,7 +139,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", @@ -518,7 +518,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -39,7 +39,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate; +@@ -40,7 +40,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; import org.chromium.chrome.browser.omnibox.suggestions.history_clusters.HistoryClustersProcessor.OpenHistoryClustersDelegate; @@ -526,7 +526,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -@@ -389,13 +388,6 @@ public class LocationBarCoordinator +@@ -390,13 +389,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -540,7 +540,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Nullable @Override public OmniboxStub getOmniboxStub() { -@@ -681,11 +673,6 @@ public class LocationBarCoordinator +@@ -682,11 +674,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -555,7 +555,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -51,7 +51,6 @@ import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; +@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; @@ -563,7 +563,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; -@@ -87,8 +86,8 @@ import java.util.function.BooleanSupplier; +@@ -88,8 +87,8 @@ import java.util.function.BooleanSupplier; * currently, migration of this logic out of LocationBarLayout is in progress. */ class LocationBarMediator @@ -574,7 +574,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow ComponentCallbacks, TemplateUrlService.TemplateUrlServiceObserver, BackPressHandler { private static final int ICON_FADE_ANIMATION_DURATION_MS = 150; -@@ -148,7 +147,6 @@ class LocationBarMediator +@@ -149,7 +148,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; @@ -582,7 +582,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private final LocationBarDataProvider mLocationBarDataProvider; private StatusCoordinator mStatusCoordinator; private AutocompleteCoordinator mAutocompleteCoordinator; -@@ -218,8 +216,6 @@ class LocationBarMediator +@@ -219,8 +217,6 @@ class LocationBarMediator mLocationBarDataProvider.addObserver(this); mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -591,7 +591,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mProfileSupplier = profileSupplier; mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); mPrivacyPreferencesManager = privacyPreferencesManager; -@@ -263,8 +259,6 @@ class LocationBarMediator +@@ -264,8 +260,6 @@ class LocationBarMediator mAutocompleteCoordinator = null; mUrlCoordinator = null; mPrivacyPreferencesManager = null; @@ -600,7 +600,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -371,11 +365,6 @@ class LocationBarMediator +@@ -372,11 +366,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -612,7 +612,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -593,8 +582,6 @@ class LocationBarMediator +@@ -594,8 +583,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(false, false); RecordUserAction.record("MobileOmniboxVoiceSearch"); @@ -621,7 +621,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ void lensButtonClicked(View view) { -@@ -1041,8 +1028,7 @@ class LocationBarMediator +@@ -1042,8 +1029,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -631,7 +631,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1201,7 +1187,6 @@ class LocationBarMediator +@@ -1202,7 +1188,6 @@ class LocationBarMediator // This method needs to be called first as it computes |mBrandedColorScheme|. updateBrandedColorScheme(); @@ -639,7 +639,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow updateLensButtonColors(); } -@@ -1288,16 +1273,6 @@ class LocationBarMediator +@@ -1289,16 +1274,6 @@ class LocationBarMediator } } @@ -656,7 +656,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1313,29 +1288,10 @@ class LocationBarMediator +@@ -1314,29 +1289,10 @@ class LocationBarMediator return mUrlHasFocus; } @@ -686,7 +686,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow public void setSearchQuery(String query) { if (TextUtils.isEmpty(query)) return; -@@ -1354,21 +1310,9 @@ class LocationBarMediator +@@ -1355,21 +1311,9 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } diff --git a/build/patches/Remove-window-name-on-cross-origin-navigation.patch b/build/patches/Remove-window-name-on-cross-origin-navigation.patch index ede3d192..2dcdf64f 100644 --- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch +++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -2564,7 +2564,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2620,7 +2620,7 @@ void DocumentLoader::CommitNavigation() { // that the name would be nulled and if the name is accessed after we will // fire a UseCounter. If we decide to move forward with this change, we'd // actually clean the name here. @@ -22,7 +22,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p frame_->Tree().ExperimentalSetNulledName(); } -@@ -2575,6 +2575,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2631,6 +2631,7 @@ void DocumentLoader::CommitNavigation() { // TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just // record the fact that the name would be nulled and if the name is accessed // after we will fire a UseCounter. diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index 858a15fa..25fbce4a 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -9520,6 +9520,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -9811,6 +9811,11 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kDesksTemplatesDescription, kOsCrOS, FEATURE_VALUE_TYPE(ash::features::kDesksTemplates)}, #endif @@ -37,7 +37,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -3270,6 +3270,11 @@ +@@ -3324,6 +3324,11 @@ // Added feature, for testing. expiry deep in future. "expiry_milestone": 116 }, @@ -52,7 +52,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -4340,6 +4340,11 @@ const char kSendTabToSelfV2Description[] = +@@ -4420,6 +4420,11 @@ const char kSendTabToSelfV2Description[] = "Enables new received tab " "UI shown next to the profile icon instead of using system notifications."; @@ -67,7 +67,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2548,6 +2548,9 @@ extern const char kShowScrollableMVTOnNTPAndroidDescription[]; +@@ -2598,6 +2598,9 @@ extern const char kShowScrollableMVTOnNTPAndroidDescription[]; extern const char kSendTabToSelfV2Name[]; extern const char kSendTabToSelfV2Description[]; @@ -80,7 +80,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -280,6 +280,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -287,6 +287,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReaderModeInCCT, &kRecordSuppressionMetrics, &kReengagementNotification, @@ -88,7 +88,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kRelatedSearches, &kReportParentalControlSitesChild, &kRequestDesktopSiteDefaults, -@@ -464,6 +465,10 @@ BASE_FEATURE(kAvoidSelectedTabFocusOnLayoutDoneShowing, +@@ -468,6 +469,10 @@ BASE_FEATURE(kAvoidSelectedTabFocusOnLayoutDoneShowing, "AvoidSelectedTabFocusOnLayoutDoneShowing", base::FEATURE_ENABLED_BY_DEFAULT); @@ -102,7 +102,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -164,6 +164,7 @@ BASE_DECLARE_FEATURE(kRequestDesktopSiteDefaultsDowngrade); +@@ -170,6 +170,7 @@ BASE_DECLARE_FEATURE(kRequestDesktopSiteDefaultsDowngrade); BASE_DECLARE_FEATURE(kRequestDesktopSiteDefaultsLogging); BASE_DECLARE_FEATURE(kRestoreTabsOnFRE); BASE_DECLARE_FEATURE(kSearchEnginesPromoV3); @@ -113,7 +113,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -319,6 +319,7 @@ public abstract class ChromeFeatureList { +@@ -320,6 +320,7 @@ public abstract class ChromeFeatureList { "MessagesForAndroidInfrastructure"; public static final String MESSAGES_FOR_ANDROID_PERMISSION_UPDATE = "MessagesForAndroidPermissionUpdate"; @@ -140,20 +140,20 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow DropdownItemViewInfoListBuilder(@NonNull Supplier tabSupplier, BookmarkState bookmarkState, OpenHistoryClustersDelegate openHistoryClustersDelegate) { -@@ -92,8 +94,10 @@ class DropdownItemViewInfoListBuilder { +@@ -91,8 +93,10 @@ class DropdownItemViewInfoListBuilder { mDividerLineProcessor = new DividerLineProcessor(context); } mHeaderProcessor = new HeaderProcessor(context); - registerSuggestionProcessor(new EditUrlSuggestionProcessor( -- context, host, delegate, mImageSupplier, mActivityTabSupplier, shareSupplier)); +- context, host, mImageSupplier, mActivityTabSupplier, shareSupplier)); + mEditUrlSuggestionProcessor = new EditUrlSuggestionProcessor( -+ context, host, delegate, mImageSupplier, mActivityTabSupplier, shareSupplier); ++ context, host, mImageSupplier, mActivityTabSupplier, shareSupplier); + registerSuggestionProcessor(mEditUrlSuggestionProcessor); + registerSuggestionProcessor( new AnswerSuggestionProcessor(context, host, textProvider, mImageSupplier)); registerSuggestionProcessor( -@@ -202,6 +206,9 @@ class DropdownItemViewInfoListBuilder { +@@ -201,6 +205,9 @@ class DropdownItemViewInfoListBuilder { /** Signals that native initialization has completed. */ void onNativeInitialized() { mHeaderProcessor.onNativeInitialized(); diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index 96d63b54..d1ae2954 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -552,6 +552,7 @@ chrome_java_resources = [ +@@ -561,6 +561,7 @@ chrome_java_resources = [ "java/res/layout/new_tab_page_incognito.xml", "java/res/layout/new_tab_page_layout.xml", "java/res/layout/new_tab_page_tile_grid_placeholder.xml", @@ -41,7 +41,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -612,6 +612,7 @@ chrome_java_sources = [ +@@ -623,6 +623,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java", "java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java", "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java", @@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -37,6 +37,7 @@ import org.chromium.chrome.browser.cryptids.ProbabilisticCryptidRenderer; +@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.cryptids.ProbabilisticCryptidRenderer; import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.lens.LensEntryPoint; @@ -216,8 +216,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import org.chromium.chrome.browser.lens.LensMetrics; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.logo.LogoBridge.Logo; -@@ -102,6 +103,8 @@ public class NewTabPageLayout extends LinearLayout { - private UiConfig mUiConfig; +@@ -106,6 +107,8 @@ public class NewTabPageLayout extends LinearLayout { + private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); + private ViewGroup mShortcutsView; @@ -225,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL /** * Whether the tiles shown in the layout have finished loading. * With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress. -@@ -245,6 +248,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -277,6 +280,7 @@ public class NewTabPageLayout extends LinearLayout { initializeMostVisitedTilesCoordinator(profile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate, isScrollableMvtEnabled(), searchProviderIsGoogle); initializeSearchBoxBackground(); @@ -233,7 +233,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -635,16 +639,22 @@ public class NewTabPageLayout extends LinearLayout { +@@ -702,16 +706,22 @@ public class NewTabPageLayout extends LinearLayout { marginLayoutParams.leftMargin = lateralPaddingsForNTP; marginLayoutParams.rightMargin = lateralPaddingsForNTP; } @@ -258,7 +258,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL marginLayoutParams.bottomMargin = getGridMvtBottomMargin(); } -@@ -947,6 +957,22 @@ public class NewTabPageLayout extends LinearLayout { +@@ -1013,6 +1023,22 @@ public class NewTabPageLayout extends LinearLayout { return iphCommandBuilder; } @@ -318,7 +318,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5302,6 +5302,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5564,6 +5564,9 @@ const FeatureEntry kFeatureEntries[] = { SINGLE_VALUE_TYPE_AND_VALUE( switches::kForceShowUpdateMenuItemCustomSummary, "Custom Summary")}, @@ -331,7 +331,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -4422,6 +4422,9 @@ const char kStartSurfaceWithAccessibilityName[] = +@@ -4502,6 +4502,9 @@ const char kStartSurfaceWithAccessibilityName[] = const char kStartSurfaceWithAccessibilityDescription[] = "Enable Start Surface with Accessibility."; @@ -344,7 +344,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2575,6 +2575,9 @@ extern const char kSmartZoomDescription[]; +@@ -2625,6 +2625,9 @@ extern const char kSmartZoomDescription[]; extern const char kSmartSuggestionForLargeDownloadsName[]; extern const char kSmartSuggestionForLargeDownloadsDescription[]; @@ -357,7 +357,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -254,6 +254,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -263,6 +263,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kIncognitoReauthenticationForAndroid, &kIncognitoScreenshot, &kInfobarScrollOptimization, @@ -365,7 +365,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kInstanceSwitcher, &kInstantStart, &kLensCameraAssistedSearch, -@@ -827,6 +828,10 @@ BASE_FEATURE(kInstanceSwitcher, +@@ -859,6 +860,10 @@ BASE_FEATURE(kInstanceSwitcher, "InstanceSwitcher", base::FEATURE_ENABLED_BY_DEFAULT); @@ -379,7 +379,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -134,6 +134,7 @@ BASE_DECLARE_FEATURE(kOmniboxModernizeVisualUpdate); +@@ -141,6 +141,7 @@ BASE_DECLARE_FEATURE(kOmniboxModernizeVisualUpdate); BASE_DECLARE_FEATURE(kOmniboxWarmRecycledViewPool); BASE_DECLARE_FEATURE(kOptimizeGeolocationHeaderGeneration); BASE_DECLARE_FEATURE(kPageAnnotationsService); @@ -390,7 +390,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -317,6 +317,7 @@ public abstract class ChromeFeatureList { +@@ -318,6 +318,7 @@ public abstract class ChromeFeatureList { public static final String LOOKALIKE_NAVIGATION_URL_SUGGESTIONS_UI = "LookalikeUrlNavigationSuggestionsUI"; public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked"; @@ -401,7 +401,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/components/signin/public/base/signin_switches.cc b/components/signin/public/base/signin_switches.cc --- a/components/signin/public/base/signin_switches.cc +++ b/components/signin/public/base/signin_switches.cc -@@ -13,7 +13,7 @@ namespace switches { +@@ -14,7 +14,7 @@ namespace switches { // Feature to add a signed-out avatar on the NTP. BASE_FEATURE(kIdentityStatusConsistency, "IdentityStatusConsistency", @@ -413,7 +413,7 @@ diff --git a/components/signin/public/base/signin_switches.cc b/components/signi diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json -@@ -7793,6 +7793,24 @@ +@@ -7994,6 +7994,24 @@ ] } ], diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index 3d37bc06..75a72121 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -20,15 +20,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -41,6 +41,7 @@ import org.chromium.chrome.browser.signin.services.SigninManager; - import org.chromium.chrome.browser.sync.SyncServiceFactory; - import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; +@@ -43,6 +43,7 @@ import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; + import org.chromium.chrome.browser.sync.settings.SignInPreference; + import org.chromium.chrome.browser.sync.settings.SyncPromoPreference; import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils; +import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarFeatures; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarStatePredictor; import org.chromium.chrome.browser.tracing.settings.DeveloperSettings; import org.chromium.components.browser_ui.settings.ChromeBasePreference; -@@ -207,7 +208,9 @@ public class MainSettings extends PreferenceFragmentCompat +@@ -225,7 +226,9 @@ public class MainSettings extends ChromeBaseSettingsFragment new AdaptiveToolbarStatePredictor(null).recomputeUiState(uiState -> { // We don't show the toolbar shortcut settings page if disabled from finch. @@ -38,11 +38,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe + if (uiState.canShowUi && !AdaptiveToolbarFeatures.isSingleVariantModeEnabled()) return; getPreferenceScreen().removePreference(findPreference(PREF_TOOLBAR_SHORTCUT)); }); - } + diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareButtonController.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareButtonController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareButtonController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareButtonController.java -@@ -98,6 +98,43 @@ public class ShareButtonController extends BaseButtonDataProvider { +@@ -100,6 +100,43 @@ public class ShareButtonController extends BaseButtonDataProvider { return mShareUtils.shouldEnableShare(tab); } @@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareButt diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -653,18 +653,12 @@ const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Share[] = { +@@ -685,18 +685,12 @@ const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Share[] = { {"default_segment", "share"}, {"show_ui_only_after_ready", "false"}, {"ignore_segmentation_results", "true"}}; @@ -126,7 +126,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java -@@ -238,7 +238,11 @@ public class AdaptiveToolbarButtonController +@@ -249,7 +249,11 @@ public class AdaptiveToolbarButtonController @Override public void onFinishNativeInitialization() { diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index 2fb8eee7..861031f2 100644 --- a/build/patches/Restore-offline-indicator-v2-flag.patch +++ b/build/patches/Restore-offline-indicator-v2-flag.patch @@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -841,7 +841,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -837,7 +837,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { private void initStatusIndicatorCoordinator(LayoutManagerImpl layoutManager) { // TODO(crbug.com/1035584): Disable on tablets for now as we need to do one or two extra // things for tablets. @@ -99,7 +99,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab return; } -@@ -863,6 +864,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -859,6 +860,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mStatusIndicatorCoordinator.addObserver(mStatusIndicatorObserver); mStatusIndicatorCoordinator.addObserver(mStatusBarColorController); @@ -114,7 +114,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5194,6 +5194,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5450,6 +5450,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kOfflinePagesLivePageSharingName, flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid, FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)}, @@ -127,9 +127,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -5946,6 +5946,11 @@ - "owners": [ "//components/search/OWNERS" ], - "expiry_milestone": 118 +@@ -6042,6 +6042,11 @@ + "owners": [ "dom" ], + "expiry_milestone": 125 }, + { + "name": "offline-indicator-v2", @@ -142,7 +142,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -4169,6 +4169,10 @@ const char kNotificationPermissionRationaleBottomSheetDescription[] = +@@ -4244,6 +4244,10 @@ const char kNotificationPermissionRationaleBottomSheetDescription[] = "flow. " "Only works with builds targeting Android T+."; @@ -156,7 +156,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2448,6 +2448,9 @@ extern const char kNewTabSearchEngineUrlAndroidDescription[]; +@@ -2501,6 +2501,9 @@ extern const char kNewTabSearchEngineUrlAndroidDescription[]; extern const char kNotificationPermissionRationaleName[]; extern const char kNotificationPermissionRationaleDescription[]; @@ -169,7 +169,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -264,6 +264,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -273,6 +273,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNewTabSearchEngineUrlAndroid, &kNotificationPermissionVariant, &kNotificationPermissionBottomSheet, @@ -177,7 +177,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kPageAnnotationsService, &kPreconnectOnTabCreation, &kInlineUpdateFlow, -@@ -790,6 +791,10 @@ BASE_FEATURE(kDrawEdgeToEdge, +@@ -818,6 +819,10 @@ BASE_FEATURE(kEarlyInitializeStartupMetrics, BASE_FEATURE(kEmptyStates, "EmptyStates", base::FEATURE_ENABLED_BY_DEFAULT); @@ -191,7 +191,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -124,6 +124,7 @@ BASE_DECLARE_FEATURE(kLensCameraAssistedSearch); +@@ -132,6 +132,7 @@ BASE_DECLARE_FEATURE(kLensCameraAssistedSearch); BASE_DECLARE_FEATURE(kLensOnQuickActionSearchWidget); BASE_DECLARE_FEATURE(kLocationBarModelOptimizations); BASE_DECLARE_FEATURE(kNewTabSearchEngineUrlAndroid); @@ -202,7 +202,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -330,6 +330,7 @@ public abstract class ChromeFeatureList { +@@ -331,6 +331,7 @@ public abstract class ChromeFeatureList { public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; diff --git a/build/patches/Revert-Delete-block-external-form-redirects.patch b/build/patches/Revert-Delete-block-external-form-redirects.patch index 1d4355b9..088df7f0 100644 --- a/build/patches/Revert-Delete-block-external-form-redirects.patch +++ b/build/patches/Revert-Delete-block-external-form-redirects.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -10112,6 +10112,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -10385,6 +10385,12 @@ const FeatureEntry kFeatureEntries[] = { "ServiceWorkerSkipIgnorableFetchHandler")}, #if BUILDFLAG(IS_ANDROID) @@ -36,9 +36,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -831,6 +831,11 @@ - "owners": [ "ioanap", "izuzic@google.com"], - "expiry_milestone": 120 +@@ -836,6 +836,11 @@ + "owners": ["ortuno", "cros-apps-platform-core@google.com" ], + "expiry_milestone": 132 }, + { + "name": "block-external-form-redirects-no-gesture", @@ -51,7 +51,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -4070,6 +4070,12 @@ const char kInstantStartName[] = "Instant start"; +@@ -4145,6 +4145,12 @@ const char kInstantStartName[] = "Instant start"; const char kInstantStartDescription[] = "Show start surface before native library is loaded."; @@ -67,7 +67,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2391,6 +2391,9 @@ extern const char kInstanceSwitcherDescription[]; +@@ -2444,6 +2444,9 @@ extern const char kInstanceSwitcherDescription[]; extern const char kInstantStartName[]; extern const char kInstantStartDescription[]; diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index 16ca62ed..8c1bf0c6 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4687,6 +4687,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4940,6 +4940,10 @@ const FeatureEntry kFeatureEntries[] = { kOsWin | kOsLinux | kOsAndroid | kOsCrOS, FEATURE_VALUE_TYPE(features::kVulkan)}, #if BUILDFLAG(IS_ANDROID) @@ -26,11 +26,11 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc + SINGLE_DISABLE_VALUE_TYPE(switches::kDisablePullToRefreshEffect)}, {"translate-message-ui", flag_descriptions::kTranslateMessageUIName, flag_descriptions::kTranslateMessageUIDescription, kOsAndroid, - FEATURE_VALUE_TYPE(translate::kTranslateMessageUI)}, + FEATURE_WITH_PARAMS_VALUE_TYPE(translate::kTranslateMessageUI, diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1770,6 +1770,10 @@ +@@ -1802,6 +1802,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 122 }, @@ -44,7 +44,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -4222,6 +4222,10 @@ const char kReadLaterDescription[] = +@@ -4297,6 +4297,10 @@ const char kReadLaterDescription[] = "Allow users to save tabs for later. Enables a new button and menu for " "accessing tabs saved for later."; @@ -58,7 +58,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -2485,6 +2485,9 @@ extern const char kQueryTilesSwapTrendingDescription[]; +@@ -2538,6 +2538,9 @@ extern const char kQueryTilesSwapTrendingDescription[]; extern const char kReadAloudName[]; extern const char kReadAloudDescription[]; diff --git a/build/patches/Revert-flags-remove-num-raster-threads.patch b/build/patches/Revert-flags-remove-num-raster-threads.patch index fde5b1e1..d17e8980 100644 --- a/build/patches/Revert-flags-remove-num-raster-threads.patch +++ b/build/patches/Revert-flags-remove-num-raster-threads.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -396,6 +396,17 @@ const FeatureEntry::Choice kOverlayStrategiesChoices[] = { +@@ -398,6 +398,17 @@ const FeatureEntry::Choice kOverlayStrategiesChoices[] = { "single-fullscreen,single-on-top,underlay"}, }; @@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = { {flags_ui::kGenericExperimentChoiceDefault, "", ""}, {flag_descriptions::kTouchSelectionStrategyCharacter, -@@ -4843,6 +4854,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5098,6 +5109,9 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(mojo::core::kMojoLinuxChannelSharedMem)}, #endif #if BUILDFLAG(IS_ANDROID) @@ -46,7 +46,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -5552,6 +5552,10 @@ +@@ -5648,6 +5648,10 @@ "owners": [ "lazzzis", "aishwaryarj" ], "expiry_milestone": 120 }, @@ -60,7 +60,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2279,6 +2279,14 @@ const char kOmniboxActionsInSuggestDescription[] = +@@ -2307,6 +2307,14 @@ const char kOmniboxActionsInSuggestDescription[] = "Actions in Suggest permits optional Action Chips to be attached to " "Entity suggestions."; @@ -78,7 +78,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1300,6 +1300,13 @@ extern const char kOmitCorsClientCertDescription[]; +@@ -1322,6 +1322,13 @@ extern const char kOmitCorsClientCertDescription[]; extern const char kOmniboxActionsInSuggestName[]; extern const char kOmniboxActionsInSuggestDescription[]; diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index 3d7cc602..b14936da 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -58,10 +58,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -186,7 +186,7 @@ BASE_FEATURE(kBlockInsecurePrivateNetworkRequestsFromPrivate, +@@ -125,7 +125,7 @@ BASE_FEATURE(kBlockInsecurePrivateNetworkRequests, // - kBlockInsecurePrivateNetworkRequests - BASE_FEATURE(kBlockInsecurePrivateNetworkRequestsFromUnknown, - "BlockInsecurePrivateNetworkRequestsFromUnknown", + BASE_FEATURE(kBlockInsecurePrivateNetworkRequestsFromPrivate, + "BlockInsecurePrivateNetworkRequestsFromPrivate", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); @@ -175,7 +175,7 @@ diff --git a/third_party/blink/renderer/core/frame/policy_container.h b/third_pa diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc -@@ -8064,6 +8064,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { +@@ -8069,6 +8069,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { EXPECT_EQ(client.StopLoadingCount(), 2); } @@ -261,7 +261,7 @@ diff --git a/third_party/blink/renderer/core/loader/modulescript/worker_module_s #include "services/network/public/mojom/referrer_policy.mojom-blink.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/loader/network_utils.h" -@@ -175,7 +176,7 @@ void WorkerModuleScriptFetcher::NotifyClient( +@@ -182,7 +183,7 @@ void WorkerModuleScriptFetcher::NotifyClient( // Step 12.3-12.6 are implemented in Initialize(). global_scope_->Initialize( @@ -368,7 +368,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc -@@ -80,6 +80,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( +@@ -82,6 +82,8 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( KURL response_script_url = creation_params->script_url; network::mojom::ReferrerPolicy response_referrer_policy = creation_params->referrer_policy; @@ -377,7 +377,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco const bool parent_cross_origin_isolated_capability = creation_params->parent_cross_origin_isolated_capability; const bool parent_is_isolated_context = -@@ -99,7 +101,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( +@@ -101,7 +103,7 @@ DedicatedWorkerGlobalScope* DedicatedWorkerGlobalScope::Create( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. global_scope->Initialize(response_script_url, response_referrer_policy, @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco nullptr /* response_origin_trial_tokens */); return global_scope; } else { -@@ -215,6 +217,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { +@@ -218,6 +220,7 @@ const AtomicString& DedicatedWorkerGlobalScope::InterfaceName() const { void DedicatedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -394,7 +394,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco Vector response_csp, const Vector* /* response_origin_trial_tokens */) { // Step 14.3. "Set worker global scope's url to response's url." -@@ -228,6 +231,9 @@ void DedicatedWorkerGlobalScope::Initialize( +@@ -231,6 +234,9 @@ void DedicatedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -404,7 +404,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco // The following is the Content-Security-Policy part of "Initialize worker // global scope's policy container" // https://html.spec.whatwg.org/#initialize-worker-policy-container -@@ -440,6 +446,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( +@@ -443,6 +449,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -415,7 +415,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.h -@@ -105,6 +105,7 @@ class CORE_EXPORT DedicatedWorkerGlobalScope final : public WorkerGlobalScope { +@@ -107,6 +107,7 @@ class CORE_EXPORT DedicatedWorkerGlobalScope final : public WorkerGlobalScope { void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -786,7 +786,7 @@ diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_imp diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc -@@ -461,6 +461,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -474,6 +474,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( // is set, and with the following callback steps given evaluationStatus:" RunClassicScript( classic_script_loader->ResponseURL(), referrer_policy, @@ -794,7 +794,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl classic_script_loader->GetContentSecurityPolicy() ? mojo::Clone(classic_script_loader->GetContentSecurityPolicy() ->GetParsedPolicies()) -@@ -474,6 +475,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -487,6 +488,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( void ServiceWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -802,7 +802,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl Vector response_csp, const Vector* response_origin_trial_tokens) { // Step 4.5. "Set workerGlobalScope's url to serviceWorker's script url." -@@ -487,6 +489,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -500,6 +502,9 @@ void ServiceWorkerGlobalScope::Initialize( // script resource's referrer policy." SetReferrerPolicy(response_referrer_policy); @@ -812,7 +812,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl // This is quoted from the "Content Security Policy" algorithm in the service // workers spec: // "Whenever a user agent invokes Run Service Worker algorithm with a service -@@ -497,6 +502,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -510,6 +515,9 @@ void ServiceWorkerGlobalScope::Initialize( // - If serviceWorker's script resource was delivered with a // Content-Security-Policy-Report-Only HTTP header containing the value // policy, the user agent must monitor policy for serviceWorker." @@ -822,7 +822,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -537,26 +545,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( +@@ -550,26 +558,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( kDoNotSupportReferrerPolicyLegacyKeywords, &referrer_policy); } @@ -861,7 +861,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h -@@ -124,6 +124,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final +@@ -129,6 +129,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -869,7 +869,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl Vector response_csp, const Vector* response_origin_trial_tokens) override; // Fetches and runs the top-level classic worker script. -@@ -382,6 +383,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final +@@ -400,6 +401,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final void RunClassicScript( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, diff --git a/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch b/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch index 9f57be60..1b004678 100644 --- a/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch +++ b/build/patches/Samsung-Note-9-SDK27-crazylinker-workaround.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java --- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java +++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java -@@ -37,6 +37,7 @@ import org.chromium.build.annotations.MainDex; +@@ -38,6 +38,7 @@ import org.chromium.build.annotations.MainDex; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -19,7 +19,7 @@ diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoade import javax.annotation.concurrent.GuardedBy; -@@ -284,7 +285,21 @@ public class LibraryLoader { +@@ -285,7 +286,21 @@ public class LibraryLoader { */ public void initInAppZygote() { assert !mInitDone; diff --git a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch index 35db4dd5..e42a9230 100644 --- a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch +++ b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -532,6 +532,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -548,6 +548,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment setUpSoundPreference(preference); } else if (type == ContentSettingsType.JAVASCRIPT) { setUpJavascriptPreference(preference); @@ -22,7 +22,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } else if (type == ContentSettingsType.GEOLOCATION) { setUpLocationPreference(preference); } else if (type == ContentSettingsType.NOTIFICATIONS) { -@@ -889,16 +891,8 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -939,16 +941,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setUpAdsInformationalBanner() { // Add the informational banner which shows at the top of the UI if ad blocking is // activated on this site. @@ -39,7 +39,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } private SiteSettingsCategory getWarningCategory() { -@@ -1070,17 +1064,35 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1123,17 +1117,35 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @Nullable Integer currentValue = mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT); @@ -81,7 +81,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Updates the ads list preference based on whether the site is a candidate for blocking. This * has some custom behavior. -@@ -1096,22 +1108,10 @@ public class SingleWebsiteSettings extends SiteSettingsPreferenceFragment +@@ -1149,22 +1161,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment setupContentSettingsPreference(preference, null, false); return; } @@ -107,7 +107,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -206,13 +206,18 @@ public final class Website implements WebsiteEntry { +@@ -223,13 +223,18 @@ public final class Website implements WebsiteEntry { ContentSettingException exception = getContentSettingException(type); if (type == ContentSettingsType.ADS) { diff --git a/build/patches/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch index ee367678..67274d98 100644 --- a/build/patches/Switch-to-fstack-protector-strong.patch +++ b/build/patches/Switch-to-fstack-protector-strong.patch @@ -13,22 +13,18 @@ higher memory/cache usage but not by the full 2-3%. Original License: MIT - https://spdx.org/licenses/MIT.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - build/config/compiler/BUILD.gn | 8 +------- - 1 file changed, 1 insertion(+), 7 deletions(-) + build/config/compiler/BUILD.gn | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -368,18 +368,12 @@ config("compiler") { +@@ -372,14 +372,12 @@ config("compiler") { cflags += [ "-fstack-protector" ] } } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) { - # TODO(phajdan.jr): Use -fstack-protector-strong when our gcc supports it. - # See also https://crbug.com/533294 -- if (current_os != "zos") { -- cflags += [ "--param=ssp-buffer-size=4" ] -- } -- # The x86 toolchain currently has problems with stack-protector. if (is_android && current_cpu == "x86") { cflags += [ "-fno-stack-protector" ] diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index fc71c410..98c67e4f 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -45,7 +45,7 @@ Require: Content-settings-infrastructure.patch diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -104,6 +104,7 @@ android_library("java") { +@@ -105,6 +105,7 @@ android_library("java") { "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsiteRowPreference.java", @@ -53,7 +53,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b ] resources_package = "org.chromium.components.browser_ui.site_settings" -@@ -275,6 +276,8 @@ android_resources("java_resources") { +@@ -277,6 +278,8 @@ android_resources("java_resources") { "java/res/xml/site_settings_preferences.xml", "java/res/xml/site_settings_preferences_with_categories.xml", "java/res/xml/website_preferences.xml", @@ -381,7 +381,7 @@ new file mode 100755 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java -@@ -412,6 +412,14 @@ public class WebsitePreferenceBridge { +@@ -416,6 +416,14 @@ public class WebsitePreferenceBridge { return WebsitePreferenceBridgeJni.get().toHostOnlyPattern(pattern); } @@ -396,7 +396,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c @NativeMethods public interface Natives { boolean isNotificationEmbargoedForOrigin( -@@ -481,5 +489,7 @@ public class WebsitePreferenceBridge { +@@ -485,5 +493,7 @@ public class WebsitePreferenceBridge { boolean getLocationAllowedByPolicy(BrowserContextHandle browserContextHandle); String toDomainWildcardPattern(String pattern); String toHostOnlyPattern(String pattern); @@ -746,7 +746,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h --- a/components/content_settings/core/browser/host_content_settings_map.h +++ b/components/content_settings/core/browser/host_content_settings_map.h -@@ -381,6 +381,9 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -385,6 +385,9 @@ class HostContentSettingsMap : public content_settings::Observer, allow_invalid_secondary_pattern_for_testing_ = allow; } diff --git a/build/patches/Use-4-tile-rows-never-show-logo.patch b/build/patches/Use-4-tile-rows-never-show-logo.patch index 7ce9c07c..a9537686 100644 --- a/build/patches/Use-4-tile-rows-never-show-logo.patch +++ b/build/patches/Use-4-tile-rows-never-show-logo.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -114,7 +114,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -118,7 +118,7 @@ public class NewTabPageLayout extends LinearLayout { */ private boolean mHasShownView; @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardLogo; -@@ -401,7 +401,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -433,7 +433,7 @@ public class NewTabPageLayout extends LinearLayout { boolean isScrollableMvtEnabled, boolean searchProviderIsGoogle) { assert mMvTilesContainerLayout != null; @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL if (searchProviderIsGoogle && QueryTileUtils.isQueryTilesEnabledOnNTP()) { maxRows = QueryTileSection.getMaxRowsForMostVisitedTiles(getContext()); } -@@ -587,7 +587,7 @@ public class NewTabPageLayout extends LinearLayout { +@@ -654,7 +654,7 @@ public class NewTabPageLayout extends LinearLayout { && mInitialized) { return; } diff --git a/build/patches/Use-dummy-DFM-installer.patch b/build/patches/Use-dummy-DFM-installer.patch index eb64920f..84ff980a 100644 --- a/build/patches/Use-dummy-DFM-installer.patch +++ b/build/patches/Use-dummy-DFM-installer.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn --- a/components/module_installer/android/BUILD.gn +++ b/components/module_installer/android/BUILD.gn -@@ -20,13 +20,11 @@ android_library("module_installer_java") { +@@ -21,13 +21,11 @@ android_library("module_installer_java") { "java/src/org/chromium/components/module_installer/logger/Logger.java", "java/src/org/chromium/components/module_installer/logger/PlayCoreLogger.java", "java/src/org/chromium/components/module_installer/logger/SplitAvailabilityLogger.java", diff --git a/build/patches/Viewport-Protection-Site-Setting.patch b/build/patches/Viewport-Protection-Site-Setting.patch index 7d9f08c3..d01ec71f 100644 --- a/build/patches/Viewport-Protection-Site-Setting.patch +++ b/build/patches/Viewport-Protection-Site-Setting.patch @@ -183,7 +183,7 @@ new file mode 100644 diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -1402,7 +1402,7 @@ constexpr base::FeatureParam +@@ -1445,7 +1445,7 @@ constexpr base::FeatureParam kPrivateAggregationApiDebugModeEnabledAtAll{ BASE_FEATURE(kViewportProtection, "ViewportProtection", @@ -207,7 +207,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -893,6 +893,9 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -896,6 +896,9 @@ void Page::UpdateAcceleratedCompositingSettings() { void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { bool isEnabled = base::FeatureList::IsEnabled(features::kViewportProtection); diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index 66c3fdd0..57ac29f1 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -33,7 +33,7 @@ The feature is controlled by a feature flag (default enabled) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -10180,6 +10180,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -10453,6 +10453,11 @@ const FeatureEntry kFeatureEntries[] = { kServiceWorkerSkipIgnorableFetchHandlerVariations, "ServiceWorkerSkipIgnorableFetchHandler")}, @@ -48,7 +48,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -7652,6 +7652,12 @@ const char kWebXrInternalsDescription[] = +@@ -7756,6 +7756,12 @@ const char kWebXrInternalsDescription[] = "debug issues with the WebXR Device API."; #endif // #if defined(ENABLE_VR) @@ -64,7 +64,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -4422,6 +4422,9 @@ extern const char kPaintPreviewDemoName[]; +@@ -4485,6 +4485,9 @@ extern const char kPaintPreviewDemoName[]; extern const char kPaintPreviewDemoDescription[]; #endif // ENABLE_PAINT_PREVIEW && BUILDFLAG(IS_ANDROID) @@ -77,9 +77,9 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -1400,6 +1400,10 @@ constexpr base::FeatureParam - &kPrivateAggregationApi, "fledge_extensions_enabled", - /*default_value=*/true}; +@@ -1443,6 +1443,10 @@ constexpr base::FeatureParam kPrivateAggregationApiDebugModeEnabledAtAll{ + &kPrivateAggregationApi, "debug_mode_enabled_at_all", + /*default_value=*/true}; +BASE_FEATURE(kViewportProtection, + "ViewportProtection", @@ -91,7 +91,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -1321,6 +1321,9 @@ BLINK_COMMON_EXPORT bool IsFencedFramesEnabled(); +@@ -1363,6 +1363,9 @@ BLINK_COMMON_EXPORT bool IsFencedFramesEnabled(); BLINK_COMMON_EXPORT bool IsMaxUnthrottledTimeoutNestingLevelEnabled(); @@ -139,7 +139,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -1715,7 +1715,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -1783,7 +1783,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -316,7 +316,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -1403,6 +1403,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1402,6 +1402,10 @@ void LocalFrame::RestoreScrollOffsets() { saved_scroll_offsets_ = nullptr; } @@ -327,7 +327,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ void LocalFrame::SetPageZoomFactor(float factor) { SetPageAndTextZoomFactors(factor, text_zoom_factor_); } -@@ -1543,12 +1547,16 @@ device::mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1542,12 +1546,16 @@ device::mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { return mojo_handler_->GetDevicePosture(); } @@ -366,7 +366,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b // Informs the local root's document and its local descendant subtree that a // media query value changed. -@@ -1029,6 +1030,7 @@ class CORE_EXPORT LocalFrame final +@@ -1026,6 +1027,7 @@ class CORE_EXPORT LocalFrame final unsigned hidden_ : 1; float page_zoom_factor_; @@ -472,7 +472,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1794,6 +1794,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1779,6 +1779,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (auto* device_emulator = DeviceEmulator()) { device_emulator->UpdateVisualProperties(visual_properties); @@ -562,7 +562,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re namespace blink { -@@ -887,7 +891,79 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -890,7 +894,79 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -645,7 +645,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h --- a/third_party/blink/renderer/core/page/page.h +++ b/third_party/blink/renderer/core/page/page.h -@@ -439,6 +439,9 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -445,6 +445,9 @@ class CORE_EXPORT Page final : public GarbageCollected, // place. void UpdateBrowsingContextGroup(const blink::BrowsingContextGroupInfo&); @@ -655,7 +655,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren private: friend class ScopedPagePauser; -@@ -582,6 +585,10 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -588,6 +591,10 @@ class CORE_EXPORT Page final : public GarbageCollected, // browser side FrameTree has the FrameTree::Type of kFencedFrame. bool is_fenced_frame_tree_ = false; diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index f0dfa344..d5349e01 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -129,7 +129,7 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu diff --git a/build/android/gyp/util/build_utils.py b/build/android/gyp/util/build_utils.py --- a/build/android/gyp/util/build_utils.py +++ b/build/android/gyp/util/build_utils.py -@@ -498,4 +498,27 @@ def ReadSourcesList(sources_list_file_name): +@@ -499,4 +499,27 @@ def ReadSourcesList(sources_list_file_name): Note that this function should not be used to parse response files. """ with open(sources_list_file_name) as f: @@ -413,7 +413,7 @@ diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -286,7 +286,7 @@ if (enable_java_templates && is_android) { +@@ -212,7 +212,7 @@ if (enable_java_templates && is_android) { # } template("java_cpp_enum") { action_with_pydeps(target_name) { @@ -422,7 +422,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni # The sources aren't compiled so don't check their dependencies. check_includes = false -@@ -297,6 +297,10 @@ if (enable_java_templates && is_android) { +@@ -223,6 +223,10 @@ if (enable_java_templates && is_android) { _rebased_sources = rebase_path(invoker.sources, root_build_dir) args = [ "--srcjar=$_rebased_srcjar_path" ] + _rebased_sources @@ -436,7 +436,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -15,6 +15,12 @@ import org.chromium.components.browser_ui.accessibility.PageZoomUtils; +@@ -23,6 +23,12 @@ import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; import org.chromium.components.user_prefs.UserPrefs; import org.chromium.content_public.browser.BrowserContextHandle; @@ -452,8 +452,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn -@@ -5,7 +5,8 @@ - import("//build/config/android/rules.gni") +@@ -6,7 +6,8 @@ import("//build/config/android/rules.gni") + import("//third_party/jni_zero/jni_zero.gni") android_library("java") { - sources = [ @@ -461,8 +461,8 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn + sources += [ "android/java/src/org/chromium/chrome/browser/flags/AllCachedFieldTrialParameters.java", "android/java/src/org/chromium/chrome/browser/flags/BooleanCachedFieldTrialParameter.java", - "android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java", -@@ -41,7 +42,8 @@ android_library("java") { + "android/java/src/org/chromium/chrome/browser/flags/CachedFieldTrialParameter.java", +@@ -42,7 +43,8 @@ android_library("java") { } generate_jni("jni_headers") { @@ -472,7 +472,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", ] -@@ -49,6 +51,10 @@ generate_jni("jni_headers") { +@@ -50,6 +52,10 @@ generate_jni("jni_headers") { static_library("flags_android") { sources = [ diff --git a/build/patches/build-remove-calling-untrusted-hooks.patch b/build/patches/build-remove-calling-untrusted-hooks.patch index 62872813..25e46e5b 100644 --- a/build/patches/build-remove-calling-untrusted-hooks.patch +++ b/build/patches/build-remove-calling-untrusted-hooks.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -123,7 +123,7 @@ vars = { +@@ -119,7 +119,7 @@ vars = { # Check out and download nacl by default, unless on an arm mac. # This can be disabled e.g. with custom_vars. @@ -22,7 +22,7 @@ diff --git a/DEPS b/DEPS # By default, do not check out src-internal. This can be overridden e.g. with # custom_vars. -@@ -180,7 +180,7 @@ vars = { +@@ -176,7 +176,7 @@ vars = { # platforms, but support for other platforms may be added in the future. 'checkout_openxr' : 'checkout_win or checkout_android', @@ -31,7 +31,7 @@ diff --git a/DEPS b/DEPS # By default bot checkouts the WPR archive files only when this # flag is set True. -@@ -4615,54 +4615,6 @@ hooks = [ +@@ -4508,54 +4508,6 @@ hooks = [ 'sync', '--extract', ], }, @@ -86,7 +86,7 @@ diff --git a/DEPS b/DEPS { # Case-insensitivity for the Win SDK. Must run before win_toolchain below. 'name': 'ciopfs_linux', -@@ -4813,57 +4765,6 @@ hooks = [ +@@ -4706,57 +4658,6 @@ hooks = [ ], }, @@ -144,7 +144,7 @@ diff --git a/DEPS b/DEPS # Pull rc binaries using checked-in hashes. { 'name': 'rc_win', -@@ -4889,30 +4790,6 @@ hooks = [ +@@ -4782,30 +4683,6 @@ hooks = [ '-s', 'src/build/toolchain/win/rc/mac/rc.sha1', ], }, diff --git a/build/patches/do-not-add-suffix-to-package-name.patch b/build/patches/do-not-add-suffix-to-package-name.patch index 12a0c72f..ce9595d2 100644 --- a/build/patches/do-not-add-suffix-to-package-name.patch +++ b/build/patches/do-not-add-suffix-to-package-name.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -30,7 +30,7 @@ declare_args() { +@@ -29,7 +29,7 @@ declare_args() { chrome_public_manifest_package = "org.chromium.chrome" if (use_stable_package_name_for_trichrome) { chrome_public_manifest_package += ".stable" diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index d3652f9b..d8f8c83e 100644 --- a/build/patches/enable-ftrivial-auto-var-init-zero.patch +++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -389,6 +389,10 @@ config("compiler") { +@@ -393,6 +393,10 @@ config("compiler") { cflags += [ "-fwrapv" ] } diff --git a/build/patches/eyeo-117.0.5938.0-android_api.patch b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch similarity index 57% rename from build/patches/eyeo-117.0.5938.0-android_api.patch rename to build/patches/eyeo-beta-118.0.5993.48-android_api.patch index 49c93cb2..5148eca5 100644 --- a/build/patches/eyeo-117.0.5938.0-android_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch @@ -1,89 +1,87 @@ From: chromium-sdk -Date: Mon, 21 Aug 2023 18:20:44 +0200 +Date: Thu, 12 Oct 2023 14:46:06 +0200 Subject: eyeo Browser Ad filtering Solution: Android API Module -Based on Chromium 117.0.5938.0 +Based on Chromium 118.0.5993.48 Pre-requisites: eyeo Browser Ad filtering Solution: Base Module --- - chrome/android/BUILD.gn | 9 + + chrome/android/BUILD.gn | 10 + chrome/browser/BUILD.gn | 14 + - chrome/browser/android/adblock/adblock_jni.cc | 194 +++++++ - chrome/browser/android/adblock/adblock_jni.h | 53 ++ .../android/adblock/adblock_jni_factory.cc | 72 +++ .../android/adblock/adblock_jni_factory.h | 50 ++ - .../filtering_configuration_bindings.cc | 250 ++++++++ - .../filtering_configuration_bindings.h | 69 +++ ...iltering_configuration_bindings_factory.cc | 70 +++ ...filtering_configuration_bindings_factory.h | 51 ++ - ...source_classification_notifier_bindings.cc | 191 ++++++ - ...esource_classification_notifier_bindings.h | 69 +++ + .../adblock/java_bindings_getters_impl.cc | 88 +++ ...lassification_notifier_bindings_factory.cc | 71 +++ ...classification_notifier_bindings_factory.h | 52 ++ ...hrome_browser_main_extra_parts_profiles.cc | 10 + - components/adblock/android/BUILD.gn | 111 ++++ - .../adblock_settings_locales_titles.xml | 98 ++++ - .../adblock/AdblockContentType.java | 62 ++ - .../components/adblock/AdblockController.java | 258 +++++++++ + components/adblock/android/BUILD.gn | 99 +++ + components/adblock/android/adblock_jni.cc | 176 ++++++ + components/adblock/android/adblock_jni.h | 52 ++ + .../filtering_configuration_bindings.cc | 295 +++++++++ + .../filtering_configuration_bindings.h | 68 +++ + .../adblock/AdblockContentType.java | 61 ++ + .../components/adblock/AdblockController.java | 203 +++++++ .../components/adblock/AdblockCounters.java | 101 ++++ - .../adblock/FilteringConfiguration.java | 245 ++++++++ + .../adblock/FilteringConfiguration.java | 348 +++++++++++ .../ResourceClassificationNotifier.java | 187 ++++++ - .../adblock/AdblockControllerTest.java | 87 +++ - .../adblock/FilteringConfigurationTest.java | 366 ++++++++++++ - .../ResourceClassificationNotifierTest.java | 143 +++++ - .../adblock/TestAdBlockedObserver.java | 183 ++++++ - .../adblock/TestPagesCircumventionTest.java | 90 +++ - .../components/adblock/TestPagesCspTest.java | 136 +++++ - .../adblock/TestPagesElemhideEmuInvTest.java | 158 +++++ - .../adblock/TestPagesElemhideEmuTest.java | 217 +++++++ - .../adblock/TestPagesElemhideTest.java | 237 ++++++++ - .../adblock/TestPagesExceptionTest.java | 244 ++++++++ - .../adblock/TestPagesFilterTest.java | 329 +++++++++++ - .../adblock/TestPagesHeaderFilterTest.java | 150 +++++ - .../adblock/TestPagesRewriteTest.java | 185 ++++++ - .../adblock/TestPagesSiteKeyTest.java | 82 +++ - .../adblock/TestPagesSnippetsTest.java | 545 ++++++++++++++++++ - .../adblock/TestPagesTestsHelper.java | 255 ++++++++ - .../adblock/TestPagesWebsocketTest.java | 77 +++ - .../adblock/TestVerificationUtils.java | 166 ++++++ - 40 files changed, 5937 insertions(+) - create mode 100644 chrome/browser/android/adblock/adblock_jni.cc - create mode 100644 chrome/browser/android/adblock/adblock_jni.h + .../adblock/android/java_bindings_getters.h | 41 ++ + .../adblock/AdblockControllerTestBase.java | 63 ++ + .../adblock/TestAdBlockedObserver.java | 176 ++++++ + .../TestPagesCircumventionTestBase.java | 64 ++ + .../adblock/TestPagesCspTestBase.java | 108 ++++ + .../TestPagesElemhideEmuInvTestBase.java | 135 +++++ + .../adblock/TestPagesElemhideEmuTestBase.java | 183 ++++++ + .../adblock/TestPagesElemhideTestBase.java | 204 +++++++ + .../adblock/TestPagesExceptionTestBase.java | 174 ++++++ + .../adblock/TestPagesFilterTestBase.java | 254 ++++++++ + .../TestPagesHeaderFilterTestBase.java | 125 ++++ + .../adblock/TestPagesHelperBase.java | 180 ++++++ + .../adblock/TestPagesRewriteTestBase.java | 153 +++++ + .../adblock/TestPagesSiteKeyTestBase.java | 58 ++ + .../adblock/TestPagesSnippetsTestBase.java | 562 ++++++++++++++++++ + .../adblock/TestPagesWebsocketTestBase.java | 56 ++ + .../adblock/TestVerificationUtils.java | 163 +++++ + ...source_classification_notifier_bindings.cc | 164 +++++ + ...esource_classification_notifier_bindings.h | 69 +++ + 39 files changed, 5010 insertions(+) create mode 100644 chrome/browser/android/adblock/adblock_jni_factory.cc create mode 100644 chrome/browser/android/adblock/adblock_jni_factory.h - create mode 100644 chrome/browser/android/adblock/filtering_configuration_bindings.cc - create mode 100644 chrome/browser/android/adblock/filtering_configuration_bindings.h create mode 100644 chrome/browser/android/adblock/filtering_configuration_bindings_factory.cc create mode 100644 chrome/browser/android/adblock/filtering_configuration_bindings_factory.h - create mode 100644 chrome/browser/android/adblock/resource_classification_notifier_bindings.cc - create mode 100644 chrome/browser/android/adblock/resource_classification_notifier_bindings.h + create mode 100644 chrome/browser/android/adblock/java_bindings_getters_impl.cc create mode 100644 chrome/browser/android/adblock/resource_classification_notifier_bindings_factory.cc create mode 100644 chrome/browser/android/adblock/resource_classification_notifier_bindings_factory.h create mode 100644 components/adblock/android/BUILD.gn - create mode 100644 components/adblock/android/java/res/values/adblock_settings_locales_titles.xml + create mode 100644 components/adblock/android/adblock_jni.cc + create mode 100644 components/adblock/android/adblock_jni.h + create mode 100644 components/adblock/android/filtering_configuration_bindings.cc + create mode 100644 components/adblock/android/filtering_configuration_bindings.h create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/AdblockContentType.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/AdblockController.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/AdblockCounters.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/FilteringConfiguration.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/ResourceClassificationNotifier.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockControllerTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/FilteringConfigurationTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/ResourceClassificationNotifierTest.java + create mode 100644 components/adblock/android/java_bindings_getters.h + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockControllerTestBase.java create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestAdBlockedObserver.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCspTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTest.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCspTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHelperBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTestBase.java + create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTestBase.java create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/TestVerificationUtils.java + create mode 100644 components/adblock/android/resource_classification_notifier_bindings.cc + create mode 100644 components/adblock/android/resource_classification_notifier_bindings.h diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -99,31 +97,39 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/android/resource_sizes.gni") import("//build/config/android/config.gni") -@@ -206,6 +210,7 @@ if (current_toolchain == default_toolchain) { - "//chrome/browser/ui/android/toolbar:java_resources", - "//chrome/browser/ui/android/webid/internal:java_resources", - "//chrome/browser/ui/messages/android:java_resources", -+ "//components/adblock/android:java_resources", - "//components/autofill/android:autofill_java_resources", - "//components/autofill/android:autofill_payments_java_resources", - "//components/blocked_content/android:java_resources", -@@ -446,6 +451,7 @@ if (current_toolchain == default_toolchain) { +@@ -236,6 +240,7 @@ if (current_toolchain == default_toolchain) { + "//third_party/androidx:androidx_gridlayout_gridlayout_java", + "//third_party/androidx:androidx_preference_preference_java", + ] ++ + } + + android_library("app_hooks_java") { +@@ -452,6 +457,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/xsurface:java", "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", -+ "//components/adblock/android:adblock_java", ++ "//components/adblock/android:adblock_controller_java", "//components/autofill/android:autofill_java", "//components/background_task_scheduler:background_task_scheduler_java", "//components/background_task_scheduler:background_task_scheduler_task_ids_java", -@@ -1662,6 +1668,7 @@ if (current_toolchain == default_toolchain) { - "//chrome/test/android:chrome_java_integration_test_support", - "//chrome/test/android:chrome_java_test_pagecontroller", - "//chrome/test/android/test_trusted_web_activity:test_trusted_web_activity_java", -+ "//components/adblock/android:adblock_java_tests", - "//components/autofill/android:autofill_features_java", - "//components/autofill/android:autofill_java", - "//components/background_task_scheduler:background_task_scheduler_java", -@@ -1858,6 +1865,7 @@ if (current_toolchain == default_toolchain) { +@@ -661,6 +667,7 @@ if (current_toolchain == default_toolchain) { + "//url/mojom:url_mojom_gurl_java", + ] + ++ + deps += feed_deps + + srcjar_deps = [ +@@ -1550,6 +1557,7 @@ if (current_toolchain == default_toolchain) { + "//chrome/android/webapk/libs/client:client_java", + "//chrome/android/webapk/libs/common:common_java", + "//chrome/android/webapk/libs/runtime_library:webapk_service_aidl_java", ++ "//chrome/browser/adblock/android:adblock_java_tests", + "//chrome/browser/android/browserservices/intents:java", + "//chrome/browser/android/browserservices/verification:java", + "//chrome/browser/android/browserservices/verification:javatests", +@@ -1889,6 +1897,7 @@ if (current_toolchain == default_toolchain) { srcjar_deps = [ "//chrome/browser:tos_dialog_behavior_generated_enum" ] data = [ @@ -131,10 +137,10 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/test/data/android/", "//chrome/test/data/autofill/", "//chrome/test/data/background_sync/", -@@ -3624,6 +3632,7 @@ group("jni_headers") { - "//chrome/browser/ui/messages/android:jni_headers", +@@ -3707,6 +3716,7 @@ group("jni_headers") { "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", + "//components/browser_ui/device_lock/android:device_lock_bridge_jni_headers", + "//components/adblock/android:jni_headers", "//components/content_relationship_verification/android:jni_headers", "//components/image_fetcher:jni_headers", @@ -142,284 +148,34 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3371,6 +3371,20 @@ static_library("browser") { - "webauthn/android/webauthn_request_delegate_android.cc", +@@ -3438,6 +3438,17 @@ static_library("browser") { "webauthn/android/webauthn_request_delegate_android.h", + ] -+ ### Android API module start -+ "android/adblock/adblock_jni.cc", -+ "android/adblock/adblock_jni.h", ++ ### Android API module start ++ sources += [ + "android/adblock/adblock_jni_factory.cc", + "android/adblock/adblock_jni_factory.h", + "android/adblock/filtering_configuration_bindings_factory.cc", + "android/adblock/filtering_configuration_bindings_factory.h", -+ "android/adblock/filtering_configuration_bindings.cc", -+ "android/adblock/filtering_configuration_bindings.h", ++ "android/adblock/java_bindings_getters_impl.cc", + "android/adblock/resource_classification_notifier_bindings_factory.cc", + "android/adblock/resource_classification_notifier_bindings_factory.h", -+ "android/adblock/resource_classification_notifier_bindings.cc", -+ "android/adblock/resource_classification_notifier_bindings.h", -+ ### Android API module end - ] ++ ] ++ ### Android API module end public_deps += [ -diff --git a/chrome/browser/android/adblock/adblock_jni.cc b/chrome/browser/android/adblock/adblock_jni.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/android/adblock/adblock_jni.cc -@@ -0,0 +1,194 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+#include "chrome/browser/android/adblock/adblock_jni.h" -+ -+#include -+#include -+#include -+ -+#include "base/android/jni_android.h" -+#include "base/android/jni_array.h" -+#include "base/android/jni_string.h" -+#include "base/android/jni_weak_ref.h" -+#include "base/logging.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" -+#include "chrome/browser/android/adblock/adblock_jni_factory.h" -+#include "chrome/browser/browser_process.h" -+#include "chrome/browser/profiles/profile_manager.h" -+#include "components/adblock/android/jni_headers/AdblockController_jni.h" -+#include "content/public/browser/browser_thread.h" -+ -+using base::android::AttachCurrentThread; -+using base::android::CheckException; -+using base::android::ConvertJavaStringToUTF8; -+using base::android::ConvertUTF8ToJavaString; -+using base::android::GetClass; -+using base::android::JavaParamRef; -+using base::android::JavaRef; -+using base::android::MethodID; -+using base::android::ScopedJavaGlobalRef; -+using base::android::ScopedJavaLocalRef; -+using base::android::ToJavaArrayOfObjects; -+using base::android::ToJavaArrayOfStrings; -+ -+namespace adblock { -+ -+namespace { -+ -+AdblockController* GetController() { -+ if (!g_browser_process || !g_browser_process->profile_manager()) { -+ return nullptr; -+ } -+ return AdblockControllerFactory::GetForBrowserContext( -+ g_browser_process->profile_manager()->GetLastUsedProfile()); -+} -+ -+AdblockJNI* GetJNI() { -+ if (!g_browser_process || !g_browser_process->profile_manager()) { -+ return nullptr; -+ } -+ return AdblockJNIFactory::GetForBrowserContext( -+ g_browser_process->profile_manager()->GetLastUsedProfile()); -+} -+ -+ScopedJavaLocalRef ToJava(JNIEnv* env, -+ ScopedJavaLocalRef& url_class, -+ jmethodID& url_constructor, -+ const std::string& url, -+ const std::string& title, -+ const std::string& version, -+ const std::vector& languages) { -+ ScopedJavaLocalRef url_param( -+ env, env->NewObject(url_class.obj(), url_constructor, -+ ConvertUTF8ToJavaString(env, url).obj())); -+ CheckException(env); -+ return Java_Subscription_Constructor(env, url_param, -+ ConvertUTF8ToJavaString(env, title), -+ ConvertUTF8ToJavaString(env, version), -+ ToJavaArrayOfStrings(env, languages)); -+} -+ -+std::vector> CSubscriptionsToJObjects( -+ JNIEnv* env, -+ const std::vector>& subscriptions) { -+ ScopedJavaLocalRef url_class = GetClass(env, "java/net/URL"); -+ jmethodID url_constructor = MethodID::Get( -+ env, url_class.obj(), "", "(Ljava/lang/String;)V"); -+ std::vector> jobjects; -+ jobjects.reserve(subscriptions.size()); -+ for (auto& sub : subscriptions) { -+ jobjects.push_back(ToJava( -+ env, url_class, url_constructor, sub->GetSourceUrl().spec(), -+ sub->GetTitle(), sub->GetCurrentVersion(), std::vector{})); -+ } -+ return jobjects; -+} -+ -+std::vector> CSubscriptionsToJObjects( -+ JNIEnv* env, -+ std::vector& subscriptions) { -+ ScopedJavaLocalRef url_class = GetClass(env, "java/net/URL"); -+ jmethodID url_constructor = MethodID::Get( -+ env, url_class.obj(), "", "(Ljava/lang/String;)V"); -+ std::vector> jobjects; -+ jobjects.reserve(subscriptions.size()); -+ for (auto& sub : subscriptions) { -+ if (sub.ui_visibility == SubscriptionUiVisibility::Visible) { -+ // The checks here are when one makes f.e. adblock:custom visible -+ DCHECK(sub.url.is_valid()); -+ if (sub.url.is_valid()) { -+ jobjects.push_back(ToJava(env, url_class, url_constructor, -+ sub.url.spec(), sub.title, "", -+ sub.languages)); -+ } -+ } -+ } -+ return jobjects; -+} -+ -+} // namespace -+ -+AdblockJNI::AdblockJNI(SubscriptionService* subscription_service) -+ : subscription_service_(subscription_service) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ if (subscription_service_) { -+ subscription_service_->AddObserver(this); -+ } -+} -+ -+AdblockJNI::~AdblockJNI() { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ if (subscription_service_) { -+ subscription_service_->RemoveObserver(this); -+ } -+} -+ -+void AdblockJNI::Bind(JavaObjectWeakGlobalRef weak_java_controller) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ weak_java_controller_ = weak_java_controller; -+} -+ -+void AdblockJNI::OnSubscriptionInstalled(const GURL& url) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ JNIEnv* env = AttachCurrentThread(); -+ ScopedJavaLocalRef obj = weak_java_controller_.get(env); -+ if (obj.is_null()) { -+ return; -+ } -+ -+ ScopedJavaLocalRef j_url = ConvertUTF8ToJavaString(env, url.spec()); -+ Java_AdblockController_subscriptionUpdatedCallback(env, obj, j_url); -+} -+ -+} // namespace adblock -+ -+static void JNI_AdblockController_Bind( -+ JNIEnv* env, -+ const base::android::JavaParamRef& caller) { -+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); -+ if (!adblock::GetController()) { -+ return; -+ } -+ JavaObjectWeakGlobalRef weak_controller_ref(env, caller); -+ adblock::GetJNI()->Bind(weak_controller_ref); -+} -+ -+static base::android::ScopedJavaLocalRef -+JNI_AdblockController_GetInstalledSubscriptions(JNIEnv* env) { -+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); -+ if (!adblock::GetController()) { -+ return ToJavaArrayOfObjects(env, -+ std::vector>{}); -+ } -+ -+ return ToJavaArrayOfObjects( -+ env, adblock::CSubscriptionsToJObjects( -+ env, adblock::GetController()->GetInstalledSubscriptions())); -+} -+ -+static base::android::ScopedJavaLocalRef -+JNI_AdblockController_GetRecommendedSubscriptions(JNIEnv* env) { -+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); -+ if (!adblock::GetController()) { -+ return ToJavaArrayOfObjects(env, -+ std::vector>{}); -+ } -+ -+ auto list = adblock::GetController()->GetKnownSubscriptions(); -+ return ToJavaArrayOfObjects(env, -+ adblock::CSubscriptionsToJObjects(env, list)); -+} -diff --git a/chrome/browser/android/adblock/adblock_jni.h b/chrome/browser/android/adblock/adblock_jni.h -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/android/adblock/adblock_jni.h -@@ -0,0 +1,53 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#ifndef CHROME_BROWSER_ANDROID_ADBLOCK_ADBLOCK_JNI_H_ -+#define CHROME_BROWSER_ANDROID_ADBLOCK_ADBLOCK_JNI_H_ -+ -+#include -+ -+#include "base/android/jni_weak_ref.h" -+#include "base/memory/raw_ptr.h" -+#include "components/adblock/core/adblock_controller.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+#include "components/keyed_service/core/keyed_service.h" -+ -+namespace content { -+class BrowserContext; -+} -+ -+namespace adblock { -+ -+class AdblockJNI : public SubscriptionService::SubscriptionObserver, -+ public KeyedService { -+ public: -+ explicit AdblockJNI(SubscriptionService* subscription_service); -+ ~AdblockJNI() override; -+ -+ void Bind(JavaObjectWeakGlobalRef weak_java_controller); -+ // SubscriptionService::SubscriptionObserver -+ void OnSubscriptionInstalled(const GURL& subscription_url) override; -+ -+ private: -+ SEQUENCE_CHECKER(sequence_checker_); -+ raw_ptr subscription_service_; -+ JavaObjectWeakGlobalRef weak_java_controller_; -+}; -+ -+} // namespace adblock -+ -+#endif // CHROME_BROWSER_ANDROID_ADBLOCK_ADBLOCK_JNI_H_ + "//chrome/android/features/dev_ui:buildflags", +@@ -3627,6 +3638,9 @@ static_library("browser") { + "//url:gurl_android", + ] + ++ ###Android API module start ++ deps += [ "//components/adblock/android:java_bindings" ] ++ ###Android API module end + + if (safe_browsing_mode == 2) { + sources += [ diff --git a/chrome/browser/android/adblock/adblock_jni_factory.cc b/chrome/browser/android/adblock/adblock_jni_factory.cc new file mode 100644 --- /dev/null @@ -447,9 +203,9 @@ new file mode 100644 +#include + +#include "chrome/browser/adblock/subscription_service_factory.h" -+#include "chrome/browser/android/adblock/adblock_jni.h" +#include "chrome/browser/profiles/incognito_helpers.h" +#include "chrome/browser/profiles/profile.h" ++#include "components/adblock/android/adblock_jni.h" +#include "components/keyed_service/content/browser_context_dependency_manager.h" +#include "content/public/browser/browser_context.h" + @@ -552,335 +308,6 @@ new file mode 100644 +} // namespace adblock + +#endif // CHROME_BROWSER_ANDROID_ADBLOCK_ADBLOCK_JNI_FACTORY_H_ -diff --git a/chrome/browser/android/adblock/filtering_configuration_bindings.cc b/chrome/browser/android/adblock/filtering_configuration_bindings.cc -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/android/adblock/filtering_configuration_bindings.cc -@@ -0,0 +1,250 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#include "chrome/browser/android/adblock/filtering_configuration_bindings.h" -+ -+#include -+#include -+ -+#include "base/android/jni_array.h" -+#include "base/android/jni_string.h" -+#include "base/ranges/algorithm.h" -+#include "chrome/browser/android/adblock/filtering_configuration_bindings_factory.h" -+#include "chrome/browser/browser_process.h" -+#include "chrome/browser/profiles/profile.h" -+#include "chrome/browser/profiles/profile_manager.h" -+#include "components/adblock/android/jni_headers/FilteringConfiguration_jni.h" -+#include "components/adblock/core/configuration/filtering_configuration.h" -+#include "components/adblock/core/configuration/persistent_filtering_configuration.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+ -+namespace adblock { -+ -+FilteringConfigurationBindings::FilteringConfigurationBindings( -+ SubscriptionService* subscription_service, -+ PrefService* pref_service) -+ : subscription_service_(subscription_service), -+ pref_service_(pref_service) {} -+ -+FilteringConfigurationBindings::~FilteringConfigurationBindings() { -+ for (auto& pair : bound_counterparts_) { -+ pair.first->RemoveObserver(this); -+ } -+} -+ -+void FilteringConfigurationBindings::Bind( -+ const std::string& configuration_name, -+ JavaObjectWeakGlobalRef filtering_configuration_java) { -+ auto* existing_configuration = -+ GetInstalledConfigurationWithName(configuration_name); -+ if (existing_configuration) { -+ auto existing_binding = bound_counterparts_.find(existing_configuration); -+ if (existing_binding == bound_counterparts_.end()) { -+ // This is the first Java-side counterpart bound to this -+ // FilteringConfiguration. -+ existing_configuration->AddObserver(this); -+ } -+ bound_counterparts_[existing_configuration].push_back( -+ std::move(filtering_configuration_java)); -+ } else { -+ // There is no already-installed FilteringConfiguration with this name. -+ // Create one and bind to it. -+ auto new_filtering_configuration = -+ std::make_unique(pref_service_, -+ configuration_name); -+ new_filtering_configuration->AddObserver(this); -+ bound_counterparts_[new_filtering_configuration.get()].push_back( -+ std::move(filtering_configuration_java)); -+ subscription_service_->InstallFilteringConfiguration( -+ std::move(new_filtering_configuration)); -+ } -+} -+ -+FilteringConfiguration* -+FilteringConfigurationBindings::GetInstalledConfigurationWithName( -+ const std::string& configuration_name) { -+ const auto installed_configurations = -+ subscription_service_->GetInstalledFilteringConfigurations(); -+ auto existing_configuration_it = -+ base::ranges::find(installed_configurations, configuration_name, -+ &FilteringConfiguration::GetName); -+ return existing_configuration_it != installed_configurations.end() -+ ? *existing_configuration_it -+ : nullptr; -+} -+ -+void FilteringConfigurationBindings::OnEnabledStateChanged( -+ FilteringConfiguration* config) { -+ Notify(config, Java_FilteringConfiguration_enabledStateChanged); -+} -+ -+void FilteringConfigurationBindings::OnFilterListsChanged( -+ FilteringConfiguration* config) { -+ Notify(config, Java_FilteringConfiguration_filterListsChanged); -+} -+ -+void FilteringConfigurationBindings::OnAllowedDomainsChanged( -+ FilteringConfiguration* config) { -+ Notify(config, Java_FilteringConfiguration_allowedDomainsChanged); -+} -+ -+void FilteringConfigurationBindings::OnCustomFiltersChanged( -+ FilteringConfiguration* config) { -+ Notify(config, Java_FilteringConfiguration_customFiltersChanged); -+} -+ -+void FilteringConfigurationBindings::Notify( -+ FilteringConfiguration* config, -+ FilteringConfigurationBindings::JavaEventListener event_listener_function) { -+ auto bound_weak_refs = bound_counterparts_.find(config); -+ DCHECK(bound_weak_refs != bound_counterparts_.end()) -+ << "This should never receive notifications from unobserved " -+ "FilteringConfigurations"; -+ JNIEnv* env = base::android::AttachCurrentThread(); -+ for (auto& weak_ref : bound_weak_refs->second) { -+ auto java_counterpart = weak_ref.get(env); -+ if (java_counterpart.is_null()) { -+ continue; // Bound counterpart may have been destroyed on Java side -+ } -+ event_listener_function(env, java_counterpart); -+ } -+} -+ -+} // namespace adblock -+ -+adblock::FilteringConfigurationBindings& GetBindingsFromLastUsedProfile() { -+ auto* bindings = -+ adblock::FilteringConfigurationBindingsFactory::GetForBrowserContext( -+ g_browser_process->profile_manager()->GetLastUsedProfile()); -+ DCHECK(bindings) << "FilteringConfigurationBindings should be non-null even " -+ "in tests, to keep the code simple"; -+ return *bindings; -+} -+ -+adblock::FilteringConfiguration& GetConfigurationWithName( -+ const base::android::JavaParamRef& configuration_name) { -+ auto& bindings = GetBindingsFromLastUsedProfile(); -+ auto* configuration = bindings.GetInstalledConfigurationWithName( -+ base::android::ConvertJavaStringToUTF8(configuration_name)); -+ DCHECK(configuration) -+ << "FilteringConfigurationBindings::Bind should have ensured a " -+ "configuration with this name is installed"; -+ return *configuration; -+} -+ -+static void JNI_FilteringConfiguration_Bind( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name, -+ const base::android::JavaParamRef& caller) { -+ auto& bindings = GetBindingsFromLastUsedProfile(); -+ JavaObjectWeakGlobalRef weak_configuration_ref(env, caller); -+ auto cpp_name = base::android::ConvertJavaStringToUTF8(configuration_name); -+ bindings.Bind(cpp_name, weak_configuration_ref); -+} -+ -+static jboolean JNI_FilteringConfiguration_IsEnabled( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name) { -+ return GetConfigurationWithName(configuration_name).IsEnabled() ? JNI_TRUE -+ : JNI_FALSE; -+} -+ -+static void JNI_FilteringConfiguration_SetEnabled( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name, -+ jboolean j_enabled) { -+ return GetConfigurationWithName(configuration_name) -+ .SetEnabled(j_enabled == JNI_TRUE); -+} -+ -+static void JNI_FilteringConfiguration_AddFilterList( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name, -+ const base::android::JavaParamRef& url) { -+ GetConfigurationWithName(configuration_name) -+ .AddFilterList(GURL{base::android::ConvertJavaStringToUTF8(url)}); -+} -+ -+static void JNI_FilteringConfiguration_RemoveFilterList( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name, -+ const base::android::JavaParamRef& url) { -+ GetConfigurationWithName(configuration_name) -+ .RemoveFilterList(GURL{base::android::ConvertJavaStringToUTF8(url)}); -+} -+ -+static base::android::ScopedJavaLocalRef -+JNI_FilteringConfiguration_GetFilterLists( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name) { -+ // For simplicity, convert GURL to std::string, pass to Java, and convert from -+ // String to URL. Strings are easier to pass through JNI. -+ std::vector urls; -+ base::ranges::transform( -+ GetConfigurationWithName(configuration_name).GetFilterLists(), -+ std::back_inserter(urls), &GURL::spec); -+ return base::android::ToJavaArrayOfStrings(env, urls); -+} -+ -+static void JNI_FilteringConfiguration_AddAllowedDomain( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name, -+ const base::android::JavaParamRef& allowed_domain) { -+ GetConfigurationWithName(configuration_name) -+ .AddAllowedDomain(base::android::ConvertJavaStringToUTF8(allowed_domain)); -+} -+ -+static void JNI_FilteringConfiguration_RemoveAllowedDomain( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name, -+ const base::android::JavaParamRef& allowed_domain) { -+ GetConfigurationWithName(configuration_name) -+ .RemoveAllowedDomain(ConvertJavaStringToUTF8(allowed_domain)); -+} -+ -+static base::android::ScopedJavaLocalRef -+JNI_FilteringConfiguration_GetAllowedDomains( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name) { -+ return base::android::ToJavaArrayOfStrings( -+ env, GetConfigurationWithName(configuration_name).GetAllowedDomains()); -+} -+ -+static void JNI_FilteringConfiguration_AddCustomFilter( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name, -+ const base::android::JavaParamRef& custom_filter) { -+ GetConfigurationWithName(configuration_name) -+ .AddCustomFilter(ConvertJavaStringToUTF8(custom_filter)); -+} -+ -+static void JNI_FilteringConfiguration_RemoveCustomFilter( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name, -+ const base::android::JavaParamRef& custom_filter) { -+ GetConfigurationWithName(configuration_name) -+ .RemoveCustomFilter( -+ base::android::ConvertJavaStringToUTF8(custom_filter)); -+} -+ -+static base::android::ScopedJavaLocalRef -+JNI_FilteringConfiguration_GetCustomFilters( -+ JNIEnv* env, -+ const base::android::JavaParamRef& configuration_name) { -+ return base::android::ToJavaArrayOfStrings( -+ env, GetConfigurationWithName(configuration_name).GetCustomFilters()); -+} -diff --git a/chrome/browser/android/adblock/filtering_configuration_bindings.h b/chrome/browser/android/adblock/filtering_configuration_bindings.h -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/android/adblock/filtering_configuration_bindings.h -@@ -0,0 +1,69 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#ifndef CHROME_BROWSER_ANDROID_ADBLOCK_FILTERING_CONFIGURATION_BINDINGS_H_ -+#define CHROME_BROWSER_ANDROID_ADBLOCK_FILTERING_CONFIGURATION_BINDINGS_H_ -+ -+#include -+#include -+#include -+#include "base/android/jni_weak_ref.h" -+#include "base/memory/raw_ptr.h" -+#include "base/sequence_checker.h" -+#include "components/adblock/core/configuration/filtering_configuration.h" -+#include "components/adblock/core/subscription/subscription_service.h" -+#include "components/keyed_service/core/keyed_service.h" -+#include "components/prefs/pref_service.h" -+ -+namespace adblock { -+ -+class FilteringConfigurationBindings : public KeyedService, -+ public FilteringConfiguration::Observer { -+ public: -+ explicit FilteringConfigurationBindings( -+ SubscriptionService* subscription_service, -+ PrefService* pref_service); -+ ~FilteringConfigurationBindings() override; -+ void Bind(const std::string& configuration_name, -+ JavaObjectWeakGlobalRef filtering_configuration_java); -+ FilteringConfiguration* GetInstalledConfigurationWithName( -+ const std::string& name); -+ -+ // FilteringConfiguration::Observer: -+ void OnEnabledStateChanged(FilteringConfiguration* config) override; -+ void OnFilterListsChanged(FilteringConfiguration* config) override; -+ void OnAllowedDomainsChanged(FilteringConfiguration* config) override; -+ void OnCustomFiltersChanged(FilteringConfiguration* config) override; -+ -+ private: -+ using JavaEventListener = void(JNIEnv* env, -+ const base::android::JavaRef& obj); -+ void Notify(FilteringConfiguration* config, -+ JavaEventListener event_listener_function); -+ SEQUENCE_CHECKER(sequence_checker_); -+ raw_ptr subscription_service_; -+ raw_ptr pref_service_; -+ // There may be multiple Java-side FilteringConfiguration instances -+ // (represented by JavaObjectWeakGlobalRef) that map to a single C++ -+ // FilteringConfiguration. -+ using WeakReferences = std::vector; -+ std::map bound_counterparts_; -+}; -+ -+} // namespace adblock -+ -+#endif // CHROME_BROWSER_ANDROID_ADBLOCK_FILTERING_CONFIGURATION_BINDINGS_H_ diff --git a/chrome/browser/android/adblock/filtering_configuration_bindings_factory.cc b/chrome/browser/android/adblock/filtering_configuration_bindings_factory.cc new file mode 100644 --- /dev/null @@ -906,9 +333,9 @@ new file mode 100644 +#include "chrome/browser/android/adblock/filtering_configuration_bindings_factory.h" + +#include "chrome/browser/adblock/subscription_service_factory.h" -+#include "chrome/browser/android/adblock/filtering_configuration_bindings.h" +#include "chrome/browser/profiles/incognito_helpers.h" +#include "chrome/browser/profiles/profile.h" ++#include "components/adblock/android/filtering_configuration_bindings.h" +#include "components/keyed_service/content/browser_context_dependency_manager.h" + +namespace adblock { @@ -941,7 +368,7 @@ new file mode 100644 + content::BrowserContext* context) const { + return new FilteringConfigurationBindings( + SubscriptionServiceFactory::GetForBrowserContext(context), -+ Profile::FromBrowserContext(context)->GetPrefs()); ++ Profile::FromBrowserContext(context)->GetOriginalProfile()->GetPrefs()); +} + +content::BrowserContext* @@ -1012,11 +439,11 @@ new file mode 100644 +} // namespace adblock + +#endif // CHROME_BROWSER_ANDROID_ADBLOCK_FILTERING_CONFIGURATION_BINDINGS_FACTORY_H_ -diff --git a/chrome/browser/android/adblock/resource_classification_notifier_bindings.cc b/chrome/browser/android/adblock/resource_classification_notifier_bindings.cc +diff --git a/chrome/browser/android/adblock/java_bindings_getters_impl.cc b/chrome/browser/android/adblock/java_bindings_getters_impl.cc new file mode 100644 --- /dev/null -+++ b/chrome/browser/android/adblock/resource_classification_notifier_bindings.cc -@@ -0,0 +1,191 @@ ++++ b/chrome/browser/android/adblock/java_bindings_getters_impl.cc +@@ -0,0 +1,88 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -1034,254 +461,77 @@ new file mode 100644 + * along with eyeo Chromium SDK. If not, see . + */ + -+#include "chrome/browser/android/adblock/resource_classification_notifier_bindings.h" ++#include "components/adblock/android/java_bindings_getters.h" + -+#include -+#include -+ -+#include "base/android/jni_android.h" -+#include "base/android/jni_array.h" -+#include "base/android/jni_string.h" -+#include "base/ranges/algorithm.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "chrome/browser/android/adblock/adblock_jni_factory.h" ++#include "chrome/browser/android/adblock/filtering_configuration_bindings_factory.h" +#include "chrome/browser/android/adblock/resource_classification_notifier_bindings_factory.h" +#include "chrome/browser/android/tab_android.h" +#include "chrome/browser/browser_process.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/profiles/profile_manager.h" -+#include "components/adblock/android/jni_headers/ResourceClassificationNotifier_jni.h" -+#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/adblock/core/common/adblock_utils.h" ++#include "components/adblock/android/filtering_configuration_bindings.h" ++#include "components/adblock/android/resource_classification_notifier_bindings.h" ++#include "content/public/browser/web_contents.h" + +namespace adblock { +namespace { ++constexpr int kNoTabId = -1; ++} + -+constexpr int kNoId = -1; ++SubscriptionService* GetSubscriptionService() { ++ if (!g_browser_process || !g_browser_process->profile_manager()) { ++ return nullptr; ++ } ++ return SubscriptionServiceFactory::GetForBrowserContext( ++ g_browser_process->profile_manager()->GetLastUsedProfile()); ++} ++ ++AdblockJNI* GetJNI() { ++ if (!g_browser_process || !g_browser_process->profile_manager()) { ++ return nullptr; ++ } ++ return AdblockJNIFactory::GetForBrowserContext( ++ g_browser_process->profile_manager()->GetLastUsedProfile()); ++} ++ ++adblock::FilteringConfigurationBindings& GetFilteringConfigurationBindings() { ++ auto* bindings = ++ adblock::FilteringConfigurationBindingsFactory::GetForBrowserContext( ++ g_browser_process->profile_manager()->GetLastUsedProfile()); ++ DCHECK(bindings) << "FilteringConfigurationBindings should be non-null even " ++ "in tests, to keep the code simple"; ++ return *bindings; ++} ++ ++adblock::ResourceClassificationNotifierBindings& ++GetResourceClassificationNotifierBindings() { ++ auto* bindings = adblock::ResourceClassificationNotifierBindingsFactory:: ++ GetForBrowserContext( ++ g_browser_process->profile_manager()->GetLastUsedProfile()); ++ DCHECK(bindings) ++ << "ResourceClassificationNotifierBindings should be non-null even " ++ "in tests, to keep the code simple"; ++ return *bindings; ++} + +int GetTabId(content::RenderFrameHost* render_frame_host) { + auto* web_contents = + content::WebContents::FromRenderFrameHost(render_frame_host); + if (!web_contents) { -+ return kNoId; ++ return kNoTabId; + } + + auto* tab = TabAndroid::FromWebContents(web_contents); + if (!tab) { -+ return kNoId; ++ return kNoTabId; + } + + return tab->GetAndroidId(); +} + -+} // namespace -+ -+using base::android::AttachCurrentThread; -+using base::android::CheckException; -+using base::android::ConvertJavaStringToUTF8; -+using base::android::ConvertUTF8ToJavaString; -+using base::android::GetClass; -+using base::android::JavaParamRef; -+using base::android::JavaRef; -+using base::android::MethodID; -+using base::android::ScopedJavaGlobalRef; -+using base::android::ScopedJavaLocalRef; -+using base::android::ToJavaArrayOfObjects; -+using base::android::ToJavaArrayOfStrings; -+ -+ResourceClassificationNotifierBindings::ResourceClassificationNotifierBindings( -+ ResourceClassificationRunner* classification_runner) -+ : classification_runner_(classification_runner) { -+ classification_runner_->AddObserver(this); -+} -+ -+ResourceClassificationNotifierBindings:: -+ ~ResourceClassificationNotifierBindings() { -+ classification_runner_->RemoveObserver(this); -+} -+ -+void ResourceClassificationNotifierBindings::Bind( -+ JavaObjectWeakGlobalRef resource_classifier_java) { -+ bound_counterpart_ = resource_classifier_java; -+} -+ -+void ResourceClassificationNotifierBindings::OnAdMatched( -+ const GURL& url, -+ FilterMatchResult result, -+ const std::vector& parent_frame_urls, -+ ContentType content_type, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription, -+ const std::string& configuration_name) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ DCHECK(render_frame_host); -+ DCHECK(result == FilterMatchResult::kBlockRule || -+ result == FilterMatchResult::kAllowRule); -+ const bool was_blocked = result == FilterMatchResult::kBlockRule; -+ DVLOG(3) << "[eyeo] Ad matched " << url << "(type: " << content_type -+ << (was_blocked ? ", blocked" : ", allowed") << ")"; -+ JNIEnv* env = AttachCurrentThread(); -+ -+ ScopedJavaLocalRef obj = bound_counterpart_.get(env); -+ if (obj.is_null()) { -+ return; -+ } -+ -+ ScopedJavaLocalRef j_url = ConvertUTF8ToJavaString(env, url.spec()); -+ ScopedJavaLocalRef j_parents = -+ ToJavaArrayOfStrings(env, adblock::utils::ConvertURLs(parent_frame_urls)); -+ ScopedJavaLocalRef j_subscription = -+ ConvertUTF8ToJavaString(env, subscription.spec()); -+ ScopedJavaLocalRef j_configuration = -+ ConvertUTF8ToJavaString(env, configuration_name); -+ int tab_id = GetTabId(render_frame_host); -+ Java_ResourceClassificationNotifier_adMatchedCallback( -+ env, obj, j_url, was_blocked, j_parents, j_subscription, j_configuration, -+ static_cast(content_type), tab_id); -+} -+ -+void ResourceClassificationNotifierBindings::OnPageAllowed( -+ const GURL& url, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription, -+ const std::string& configuration_name) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ DCHECK(render_frame_host); -+ DVLOG(3) << "[eyeo] Page allowed " << url; -+ JNIEnv* env = AttachCurrentThread(); -+ -+ ScopedJavaLocalRef obj = bound_counterpart_.get(env); -+ if (obj.is_null()) { -+ return; -+ } -+ -+ ScopedJavaLocalRef j_url = ConvertUTF8ToJavaString(env, url.spec()); -+ ScopedJavaLocalRef j_subscription = -+ ConvertUTF8ToJavaString(env, subscription.spec()); -+ ScopedJavaLocalRef j_configuration = -+ ConvertUTF8ToJavaString(env, configuration_name); -+ int tab_id = GetTabId(render_frame_host); -+ Java_ResourceClassificationNotifier_pageAllowedCallback( -+ env, obj, j_url, j_subscription, j_configuration, tab_id); -+} -+ -+void ResourceClassificationNotifierBindings::OnPopupMatched( -+ const GURL& url, -+ FilterMatchResult result, -+ const GURL& opener_url, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription, -+ const std::string& configuration_name) { -+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ DCHECK(render_frame_host); -+ DCHECK(result == FilterMatchResult::kBlockRule || -+ result == FilterMatchResult::kAllowRule); -+ const bool was_blocked = result == FilterMatchResult::kBlockRule; -+ DVLOG(3) << "[eyeo] Popup matched " << url -+ << (was_blocked ? ", blocked" : ", allowed"); -+ JNIEnv* env = AttachCurrentThread(); -+ -+ ScopedJavaLocalRef obj = bound_counterpart_.get(env); -+ if (obj.is_null()) { -+ return; -+ } -+ -+ ScopedJavaLocalRef j_url = ConvertUTF8ToJavaString(env, url.spec()); -+ ScopedJavaLocalRef j_opener = -+ ConvertUTF8ToJavaString(env, opener_url.spec()); -+ ScopedJavaLocalRef j_subscription = -+ ConvertUTF8ToJavaString(env, subscription.spec()); -+ ScopedJavaLocalRef j_configuration = -+ ConvertUTF8ToJavaString(env, configuration_name); -+ int tab_id = GetTabId(render_frame_host); -+ Java_ResourceClassificationNotifier_popupMatchedCallback( -+ env, obj, j_url, was_blocked, j_opener, j_subscription, j_configuration, -+ tab_id); -+} -+ +} // namespace adblock -+ -+static void JNI_ResourceClassificationNotifier_Bind( -+ JNIEnv* env, -+ const base::android::JavaParamRef& caller) { -+ auto* bindings = adblock::ResourceClassificationNotifierBindingsFactory:: -+ GetForBrowserContext(ProfileManager::GetLastUsedProfile()); -+ DCHECK(bindings); -+ -+ bindings->Bind(JavaObjectWeakGlobalRef(env, caller)); -+} -diff --git a/chrome/browser/android/adblock/resource_classification_notifier_bindings.h b/chrome/browser/android/adblock/resource_classification_notifier_bindings.h -new file mode 100644 ---- /dev/null -+++ b/chrome/browser/android/adblock/resource_classification_notifier_bindings.h -@@ -0,0 +1,69 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#ifndef CHROME_BROWSER_ANDROID_ADBLOCK_RESOURCE_CLASSIFICATION_NOTIFIER_BINDINGS_H_ -+#define CHROME_BROWSER_ANDROID_ADBLOCK_RESOURCE_CLASSIFICATION_NOTIFIER_BINDINGS_H_ -+ -+#include -+#include -+#include "base/android/jni_weak_ref.h" -+#include "base/memory/raw_ptr.h" -+#include "base/sequence_checker.h" -+#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/keyed_service/core/keyed_service.h" -+#include "components/prefs/pref_service.h" -+ -+namespace adblock { -+ -+class ResourceClassificationNotifierBindings -+ : public KeyedService, -+ public ResourceClassificationRunner::Observer { -+ public: -+ explicit ResourceClassificationNotifierBindings( -+ ResourceClassificationRunner* classification_runner); -+ ~ResourceClassificationNotifierBindings() override; -+ -+ void Bind(JavaObjectWeakGlobalRef resource_classifier_java); -+ -+ // ResourceClassificationRunner::Observer -+ void OnAdMatched(const GURL& url, -+ FilterMatchResult match_result, -+ const std::vector& parent_frame_urls, -+ ContentType content_type, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription, -+ const std::string& configuration_name) override; -+ void OnPageAllowed(const GURL& url, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription, -+ const std::string& configuration_name) override; -+ void OnPopupMatched(const GURL& url, -+ FilterMatchResult match_result, -+ const GURL& opener_url, -+ content::RenderFrameHost* render_frame_host, -+ const GURL& subscription, -+ const std::string& configuration_name) override; -+ -+ private: -+ SEQUENCE_CHECKER(sequence_checker_); -+ raw_ptr classification_runner_; -+ JavaObjectWeakGlobalRef bound_counterpart_; -+}; -+ -+} // namespace adblock -+ -+#endif // CHROME_BROWSER_ANDROID_ADBLOCK_RESOURCE_CLASSIFICATION_NOTIFIER_BINDINGS_H_ diff --git a/chrome/browser/android/adblock/resource_classification_notifier_bindings_factory.cc b/chrome/browser/android/adblock/resource_classification_notifier_bindings_factory.cc new file mode 100644 --- /dev/null @@ -1307,8 +557,8 @@ new file mode 100644 +#include "chrome/browser/android/adblock/resource_classification_notifier_bindings_factory.h" + +#include "chrome/browser/adblock/resource_classification_runner_factory.h" -+#include "chrome/browser/android/adblock/resource_classification_notifier_bindings.h" +#include "chrome/browser/profiles/incognito_helpers.h" ++#include "components/adblock/android/resource_classification_notifier_bindings.h" +#include "components/keyed_service/content/browser_context_dependency_manager.h" + +namespace adblock { @@ -1418,7 +668,7 @@ new file mode 100644 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -255,6 +255,11 @@ +@@ -263,6 +263,11 @@ #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/proto/merchant_signal_db_content.pb.h" @@ -1430,7 +680,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #else #include "chrome/browser/accessibility/live_caption/live_caption_controller_factory.h" -@@ -741,6 +746,11 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -762,6 +767,11 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(IS_ANDROID) FastCheckoutCapabilitiesFetcherFactory::GetInstance(); @@ -1446,7 +696,7 @@ diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BU new file mode 100644 --- /dev/null +++ b/components/adblock/android/BUILD.gn -@@ -0,0 +1,111 @@ +@@ -0,0 +1,99 @@ +# This file is part of eyeo Chromium SDK, +# Copyright (C) 2006-present eyeo GmbH +# eyeo Chromium SDK is free software: you can redistribute it and/or modify @@ -1464,35 +714,28 @@ new file mode 100644 +import("//build/config/locales.gni") +import("//tools/grit/grit_rule.gni") + -+android_library("adblock_java") { ++source_set("java_bindings") { + sources = [ -+ "java/src/org/chromium/components/adblock/AdblockContentType.java", -+ "java/src/org/chromium/components/adblock/AdblockController.java", -+ "java/src/org/chromium/components/adblock/AdblockCounters.java", -+ "java/src/org/chromium/components/adblock/FilteringConfiguration.java", -+ "java/src/org/chromium/components/adblock/ResourceClassificationNotifier.java", ++ "adblock_jni.cc", ++ "adblock_jni.h", ++ "filtering_configuration_bindings.cc", ++ "filtering_configuration_bindings.h", ++ "java_bindings_getters.h", ++ "resource_classification_notifier_bindings.cc", ++ "resource_classification_notifier_bindings.h", + ] -+ -+ + deps = [ -+ ":java_resources", + ":jni_headers", -+ "//base:base_java", -+ "//base:jni_java", -+ "//build/android:build_java", -+ "//chrome/browser/preferences:java", -+ "//chrome/browser/profiles/android:java", -+ "//content/public/android:content_full_java", -+ "//components/browser_ui/settings/android:java", -+ "//components/prefs/android:java", -+ "//components/user_prefs/android:java", -+ "//third_party/androidx:androidx_annotation_annotation_java", -+ "//third_party/androidx:androidx_fragment_fragment_java", -+ "//third_party/androidx:androidx_preference_preference_java", ++ "//base", ++ "//components/keyed_service/content:content", + ] + -+ annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] -+ resources_package = "org.chromium.components.adblock" ++ public_deps = [ ++ "//components/adblock/content:browser", ++ "//components/adblock/core/configuration", ++ "//components/adblock/core/subscription", ++ "//components/prefs", ++ ] +} + +generate_jni("jni_headers") { @@ -1503,169 +746,672 @@ new file mode 100644 + ] +} + -+android_resources("java_resources") { ++android_library("adblock_controller_java") { + sources = [ -+ "java/res/values/adblock_settings_locales_titles.xml", ++ "java/src/org/chromium/components/adblock/AdblockContentType.java", ++ "java/src/org/chromium/components/adblock/AdblockController.java", ++ "java/src/org/chromium/components/adblock/AdblockCounters.java", ++ "java/src/org/chromium/components/adblock/FilteringConfiguration.java", ++ "java/src/org/chromium/components/adblock/ResourceClassificationNotifier.java", + ] ++ ++ srcjar_deps = [ ":jni_headers" ] ++ deps = [ ++ "//base:base_java", ++ "//base:jni_java", ++ "//third_party/androidx:androidx_annotation_annotation_java", ++ ] ++ ++ resources_package = "org.chromium.components.adblock.controller" +} + -+android_library("adblock_java_tests") { -+ testonly = true + ++android_library("adblock_java_tests_base") { ++ testonly = true + sources = [ -+ "javatests/src/org/chromium/components/adblock/AdblockControllerTest.java", -+ "javatests/src/org/chromium/components/adblock/FilteringConfigurationTest.java", -+ "javatests/src/org/chromium/components/adblock/ResourceClassificationNotifierTest.java", ++ "javatests/src/org/chromium/components/adblock/AdblockControllerTestBase.java", + "javatests/src/org/chromium/components/adblock/TestAdBlockedObserver.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesCircumventionTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesCspTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesElemhideTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesExceptionTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesFilterTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesRewriteTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java", -+ "javatests/src/org/chromium/components/adblock/TestPagesWebsocketTest.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesCircumventionTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesCspTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesElemhideTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesExceptionTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesFilterTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesHelperBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesRewriteTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesSnippetsTestBase.java", ++ "javatests/src/org/chromium/components/adblock/TestPagesWebsocketTestBase.java", + "javatests/src/org/chromium/components/adblock/TestVerificationUtils.java", + ] -+ -+ + deps = [ -+ ":adblock_java", ++ ":adblock_controller_java", + "//base:base_java", + "//base:base_java_test_support", -+ "//chrome/android:chrome_java", -+ "//chrome/browser/flags:java", -+ "//chrome/browser/settings:test_support_java", -+ "//chrome/browser/tab:java", -+ "//chrome/browser/tabmodel:java", -+ "//chrome/test/android:chrome_java_integration_test_support", -+ "//chrome/test/android:chrome_java_test_support_common", -+ "//components/infobars/android:java", -+ "//components/infobars/core:infobar_enums_java", -+ "//components/messages/android/test:test_support_java", + "//content/public/android:content_full_java", -+ "//content/public/android:content_main_dex_java", + "//content/public/test/android:content_java_test_support", -+ "//net/android:net_java_test_support", -+ "//third_party/androidx:androidx_test_monitor_java", + "//third_party/androidx:androidx_test_runner_java", -+ "//third_party/hamcrest:hamcrest_library_java", + "//third_party/junit:junit", + ] +} -diff --git a/components/adblock/android/java/res/values/adblock_settings_locales_titles.xml b/components/adblock/android/java/res/values/adblock_settings_locales_titles.xml +diff --git a/components/adblock/android/adblock_jni.cc b/components/adblock/android/adblock_jni.cc new file mode 100644 --- /dev/null -+++ b/components/adblock/android/java/res/values/adblock_settings_locales_titles.xml -@@ -0,0 +1,98 @@ -+ ++++ b/components/adblock/android/adblock_jni.cc +@@ -0,0 +1,176 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ + -+ -+ -+ | ++#include "components/adblock/android/adblock_jni.h" + -+ -+ -+ af|Afrikaans -+ am|ኣማርኛ -+ ar|العربية -+ as|অসমীয়া -+ ast|Asturianu -+ az|Azərbaycan -+ be|Беларуская мова -+ bg|български -+ bn|বাংলা (ভারত) -+ br|ar brezhoneg -+ bs|bosanski -+ ca|català -+ cs|čeština -+ cy|Cymraeg -+ da|dansk -+ de|Deutsch -+ dsb|dolnoserbski -+ el|ελληνικά -+ en|English -+ eo|Esperanto -+ es|español -+ et|eesti keel -+ eu|euskara -+ fa|فارسى -+ fi|suomi -+ fil|Filipino -+ fr|français -+ fy|Frysk -+ gl|Galego -+ gu|ગુજરાતી (ભારત) -+ he|עברית -+ hi|हिन्दी -+ hr|Hrvatski -+ hsb|hornjoserbsce -+ hu|magyar -+ hy|Հայերեն -+ id|Bahasa Indonesia -+ is|Íslenska -+ it|italiano -+ ja|日本語 -+ ka|ქართული -+ kab|Taqbaylit -+ kk|Қазақ тілі -+ kn|ಕನ್ನಡ -+ ko|한국어 -+ lt|lietuvių kalba -+ lv|latviešu valoda -+ mg|Malagasy -+ mk|македонски -+ ml|മലയാളം -+ ms|Melayu -+ nb|norsk -+ nl|Nederlands -+ nn|norsk -+ pa|ਪੰਜਾਬੀ (ਭਾਰਤ) -+ pl|polski -+ pt|português -+ rm|rumantsch -+ ro|română -+ ru|Русский -+ si|සිංහල -+ sk|slovenčina -+ sl|slovenščina -+ sq|shqip -+ sr|српски -+ sv|svenska -+ sw|Kiswahili -+ ta|தமிழ் -+ te|తెలుగు -+ th|ภาษาไทย -+ tr|Türkçe -+ uk|українська -+ ur|اردو -+ uz|o’zbek -+ vi|Tiếng Việt -+ zh|中文 -+ -+ ++#include ++#include ++#include ++ ++#include "base/android/jni_android.h" ++#include "base/android/jni_array.h" ++#include "base/android/jni_string.h" ++#include "base/android/jni_weak_ref.h" ++#include "base/logging.h" ++#include "components/adblock/android/java_bindings_getters.h" ++#include "components/adblock/android/jni_headers/AdblockController_jni.h" ++#include "components/adblock/core/subscription/subscription_config.h" ++#include "content/public/browser/browser_thread.h" ++ ++using base::android::AttachCurrentThread; ++using base::android::CheckException; ++using base::android::ConvertJavaStringToUTF8; ++using base::android::ConvertUTF8ToJavaString; ++using base::android::GetClass; ++using base::android::JavaParamRef; ++using base::android::JavaRef; ++using base::android::MethodID; ++using base::android::ScopedJavaGlobalRef; ++using base::android::ScopedJavaLocalRef; ++using base::android::ToJavaArrayOfObjects; ++using base::android::ToJavaArrayOfStrings; ++ ++namespace adblock { ++ ++namespace { ++ ++ScopedJavaLocalRef ToJava(JNIEnv* env, ++ ScopedJavaLocalRef& url_class, ++ jmethodID& url_constructor, ++ const std::string& url, ++ const std::string& title, ++ const std::string& version, ++ const std::vector& languages) { ++ ScopedJavaLocalRef url_param( ++ env, env->NewObject(url_class.obj(), url_constructor, ++ ConvertUTF8ToJavaString(env, url).obj())); ++ CheckException(env); ++ return Java_Subscription_Constructor(env, url_param, ++ ConvertUTF8ToJavaString(env, title), ++ ConvertUTF8ToJavaString(env, version), ++ ToJavaArrayOfStrings(env, languages)); ++} ++ ++std::vector> CSubscriptionsToJObjects( ++ JNIEnv* env, ++ const std::vector>& subscriptions) { ++ ScopedJavaLocalRef url_class = GetClass(env, "java/net/URL"); ++ jmethodID url_constructor = MethodID::Get( ++ env, url_class.obj(), "", "(Ljava/lang/String;)V"); ++ std::vector> jobjects; ++ jobjects.reserve(subscriptions.size()); ++ for (auto& sub : subscriptions) { ++ jobjects.push_back(ToJava( ++ env, url_class, url_constructor, sub->GetSourceUrl().spec(), ++ sub->GetTitle(), sub->GetCurrentVersion(), std::vector{})); ++ } ++ return jobjects; ++} ++ ++std::vector> CSubscriptionsToJObjects( ++ JNIEnv* env, ++ std::vector& subscriptions) { ++ ScopedJavaLocalRef url_class = GetClass(env, "java/net/URL"); ++ jmethodID url_constructor = MethodID::Get( ++ env, url_class.obj(), "", "(Ljava/lang/String;)V"); ++ std::vector> jobjects; ++ jobjects.reserve(subscriptions.size()); ++ for (auto& sub : subscriptions) { ++ if (sub.ui_visibility == SubscriptionUiVisibility::Visible) { ++ // The checks here are when one makes f.e. adblock:custom visible ++ DCHECK(sub.url.is_valid()); ++ if (sub.url.is_valid()) { ++ jobjects.push_back(ToJava(env, url_class, url_constructor, ++ sub.url.spec(), sub.title, "", ++ sub.languages)); ++ } ++ } ++ } ++ return jobjects; ++} ++ ++} // namespace ++ ++AdblockJNI::AdblockJNI(SubscriptionService* subscription_service) ++ : subscription_service_(subscription_service) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ if (subscription_service_) { ++ subscription_service_->AddObserver(this); ++ } ++} ++ ++AdblockJNI::~AdblockJNI() { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ if (subscription_service_) { ++ subscription_service_->RemoveObserver(this); ++ } ++} ++ ++void AdblockJNI::Bind(JavaObjectWeakGlobalRef weak_java_controller) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ weak_java_controller_ = weak_java_controller; ++} ++ ++void AdblockJNI::OnSubscriptionInstalled(const GURL& url) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ JNIEnv* env = AttachCurrentThread(); ++ ScopedJavaLocalRef obj = weak_java_controller_.get(env); ++ if (obj.is_null()) { ++ return; ++ } ++ ++ ScopedJavaLocalRef j_url = ConvertUTF8ToJavaString(env, url.spec()); ++ Java_AdblockController_subscriptionUpdatedCallback(env, obj, j_url); ++} ++ ++} // namespace adblock ++ ++static void JNI_AdblockController_Bind( ++ JNIEnv* env, ++ const base::android::JavaParamRef& caller) { ++ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); ++ if (!adblock::GetSubscriptionService()) { ++ return; ++ } ++ JavaObjectWeakGlobalRef weak_controller_ref(env, caller); ++ adblock::GetJNI()->Bind(weak_controller_ref); ++} ++ ++static base::android::ScopedJavaLocalRef ++JNI_AdblockController_GetInstalledSubscriptions(JNIEnv* env) { ++ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); ++ auto* subscription_service = adblock::GetSubscriptionService(); ++ if (!subscription_service) { ++ return ToJavaArrayOfObjects(env, ++ std::vector>{}); ++ } ++ ++ return ToJavaArrayOfObjects( ++ env, ++ adblock::CSubscriptionsToJObjects( ++ env, subscription_service->GetCurrentSubscriptions( ++ subscription_service->GetAdblockFilteringConfiguration()))); ++} ++ ++static base::android::ScopedJavaLocalRef ++JNI_AdblockController_GetRecommendedSubscriptions(JNIEnv* env) { ++ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); ++ ++ auto list = adblock::config::GetKnownSubscriptions(); ++ return ToJavaArrayOfObjects(env, ++ adblock::CSubscriptionsToJObjects(env, list)); ++} +diff --git a/components/adblock/android/adblock_jni.h b/components/adblock/android/adblock_jni.h +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/adblock_jni.h +@@ -0,0 +1,52 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#ifndef COMPONENTS_ADBLOCK_ANDROID_ADBLOCK_JNI_H_ ++#define COMPONENTS_ADBLOCK_ANDROID_ADBLOCK_JNI_H_ ++ ++#include ++ ++#include "base/android/jni_weak_ref.h" ++#include "base/memory/raw_ptr.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++#include "components/keyed_service/core/keyed_service.h" ++ ++namespace content { ++class BrowserContext; ++} ++ ++namespace adblock { ++ ++class AdblockJNI : public SubscriptionService::SubscriptionObserver, ++ public KeyedService { ++ public: ++ explicit AdblockJNI(SubscriptionService* subscription_service); ++ ~AdblockJNI() override; ++ ++ void Bind(JavaObjectWeakGlobalRef weak_java_controller); ++ // SubscriptionService::SubscriptionObserver ++ void OnSubscriptionInstalled(const GURL& subscription_url) override; ++ ++ private: ++ SEQUENCE_CHECKER(sequence_checker_); ++ raw_ptr subscription_service_; ++ JavaObjectWeakGlobalRef weak_java_controller_; ++}; ++ ++} // namespace adblock ++ ++#endif // COMPONENTS_ADBLOCK_ANDROID_ADBLOCK_JNI_H_ +diff --git a/components/adblock/android/filtering_configuration_bindings.cc b/components/adblock/android/filtering_configuration_bindings.cc +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/filtering_configuration_bindings.cc +@@ -0,0 +1,295 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include "components/adblock/android/filtering_configuration_bindings.h" ++ ++#include ++#include ++ ++#include "base/android/jni_array.h" ++#include "base/android/jni_string.h" ++#include "base/ranges/algorithm.h" ++#include "components/adblock/android/java_bindings_getters.h" ++#include "components/adblock/android/jni_headers/FilteringConfiguration_jni.h" ++#include "components/adblock/core/configuration/filtering_configuration.h" ++#include "components/adblock/core/configuration/persistent_filtering_configuration.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++ ++namespace adblock { ++ ++FilteringConfigurationBindings::FilteringConfigurationBindings( ++ SubscriptionService* subscription_service, ++ PrefService* pref_service) ++ : subscription_service_(subscription_service), ++ pref_service_(pref_service) {} ++ ++FilteringConfigurationBindings::~FilteringConfigurationBindings() { ++ for (auto& pair : bound_counterparts_) { ++ pair.first->RemoveObserver(this); ++ } ++} ++ ++void FilteringConfigurationBindings::Bind( ++ const std::string& configuration_name, ++ JavaObjectWeakGlobalRef filtering_configuration_java) { ++ auto* existing_configuration = ++ GetInstalledConfigurationWithName(configuration_name); ++ if (existing_configuration) { ++ auto existing_binding = bound_counterparts_.find(existing_configuration); ++ if (existing_binding == bound_counterparts_.end()) { ++ // There is no Java-side counterpart bound to this ++ // FilteringConfiguration. ++ existing_configuration->AddObserver(this); ++ } ++ bound_counterparts_[existing_configuration] = ++ std::move(filtering_configuration_java); ++ } else { ++ // There is no already-installed FilteringConfiguration with this name. ++ // Create one and bind to it. ++ auto new_filtering_configuration = ++ std::make_unique(pref_service_, ++ configuration_name); ++ new_filtering_configuration->AddObserver(this); ++ bound_counterparts_[new_filtering_configuration.get()] = ++ std::move(filtering_configuration_java); ++ subscription_service_->InstallFilteringConfiguration( ++ std::move(new_filtering_configuration)); ++ } ++} ++ ++void FilteringConfigurationBindings::RemoveConfiguration( ++ const std::string& configuration_name) { ++ auto* existing_configuration = ++ GetInstalledConfigurationWithName(configuration_name); ++ if (existing_configuration) { ++ existing_configuration->RemoveObserver(this); ++ bound_counterparts_.erase(existing_configuration); ++ subscription_service_->UninstallFilteringConfiguration(configuration_name); ++ } ++} ++ ++std::vector ++FilteringConfigurationBindings::GetConfigurations() { ++ return subscription_service_->GetInstalledFilteringConfigurations(); ++} ++ ++FilteringConfiguration* ++FilteringConfigurationBindings::GetInstalledConfigurationWithName( ++ const std::string& configuration_name) { ++ const auto installed_configurations = GetConfigurations(); ++ auto existing_configuration_it = ++ base::ranges::find(installed_configurations, configuration_name, ++ &FilteringConfiguration::GetName); ++ return existing_configuration_it != installed_configurations.end() ++ ? *existing_configuration_it ++ : nullptr; ++} ++ ++void FilteringConfigurationBindings::OnEnabledStateChanged( ++ FilteringConfiguration* config) { ++ Notify(config, Java_FilteringConfiguration_enabledStateChanged); ++} ++ ++void FilteringConfigurationBindings::OnFilterListsChanged( ++ FilteringConfiguration* config) { ++ Notify(config, Java_FilteringConfiguration_filterListsChanged); ++} ++ ++void FilteringConfigurationBindings::OnAllowedDomainsChanged( ++ FilteringConfiguration* config) { ++ Notify(config, Java_FilteringConfiguration_allowedDomainsChanged); ++} ++ ++void FilteringConfigurationBindings::OnCustomFiltersChanged( ++ FilteringConfiguration* config) { ++ Notify(config, Java_FilteringConfiguration_customFiltersChanged); ++} ++ ++void FilteringConfigurationBindings::Notify( ++ FilteringConfiguration* config, ++ FilteringConfigurationBindings::JavaEventListener event_listener_function) { ++ auto bound_weak_ref = bound_counterparts_.find(config); ++ DCHECK(bound_weak_ref != bound_counterparts_.end()) ++ << "This should never receive notifications from unobserved " ++ "FilteringConfigurations"; ++ JNIEnv* env = base::android::AttachCurrentThread(); ++ auto java_counterpart = bound_weak_ref->second.get(env); ++ if (!java_counterpart.is_null()) { ++ event_listener_function(env, java_counterpart); ++ } ++} ++ ++} // namespace adblock ++ ++// Throws when called with a name of a non existing configuration. ++adblock::FilteringConfiguration* GetConfigurationWithName( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name) { ++ auto& bindings = adblock::GetFilteringConfigurationBindings(); ++ auto* configuration = bindings.GetInstalledConfigurationWithName( ++ base::android::ConvertJavaStringToUTF8(configuration_name)); ++ if (!configuration) { ++ env->ThrowNew(env->FindClass("java/lang/IllegalStateException"), ++ "Configuration does not exist!"); ++ return nullptr; ++ } ++ return configuration; ++} ++ ++static void JNI_FilteringConfiguration_Bind( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name, ++ const base::android::JavaParamRef& caller) { ++ auto& bindings = adblock::GetFilteringConfigurationBindings(); ++ JavaObjectWeakGlobalRef weak_configuration_ref(env, caller); ++ auto cpp_name = base::android::ConvertJavaStringToUTF8(configuration_name); ++ bindings.Bind(cpp_name, weak_configuration_ref); ++} ++ ++static void JNI_FilteringConfiguration_RemoveConfiguration( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name) { ++ auto& bindings = adblock::GetFilteringConfigurationBindings(); ++ bindings.RemoveConfiguration( ++ base::android::ConvertJavaStringToUTF8(configuration_name)); ++} ++ ++static base::android::ScopedJavaLocalRef ++JNI_FilteringConfiguration_GetConfigurations(JNIEnv* env) { ++ auto& bindings = adblock::GetFilteringConfigurationBindings(); ++ std::vector configurations; ++ base::ranges::transform( ++ bindings.GetConfigurations(), std::back_inserter(configurations), ++ [](adblock::FilteringConfiguration* fc) { return fc->GetName(); }); ++ return base::android::ToJavaArrayOfStrings(env, configurations); ++} ++ ++static jboolean JNI_FilteringConfiguration_IsEnabled( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ return (configuration && configuration->IsEnabled()) ? JNI_TRUE : JNI_FALSE; ++} ++ ++static void JNI_FilteringConfiguration_SetEnabled( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name, ++ jboolean j_enabled) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ if (configuration) { ++ configuration->SetEnabled(j_enabled == JNI_TRUE); ++ } ++} ++ ++static void JNI_FilteringConfiguration_AddFilterList( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name, ++ const base::android::JavaParamRef& url) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ if (configuration) { ++ configuration->AddFilterList( ++ GURL{base::android::ConvertJavaStringToUTF8(url)}); ++ } ++} ++ ++static void JNI_FilteringConfiguration_RemoveFilterList( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name, ++ const base::android::JavaParamRef& url) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ if (configuration) { ++ configuration->RemoveFilterList( ++ GURL{base::android::ConvertJavaStringToUTF8(url)}); ++ } ++} ++ ++static base::android::ScopedJavaLocalRef ++JNI_FilteringConfiguration_GetFilterLists( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name) { ++ // For simplicity, convert GURL to std::string, pass to Java, and convert from ++ // String to URL. Strings are easier to pass through JNI. ++ std::vector urls; ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ if (configuration) { ++ base::ranges::transform(configuration->GetFilterLists(), ++ std::back_inserter(urls), &GURL::spec); ++ } ++ return base::android::ToJavaArrayOfStrings(env, urls); ++} ++ ++static void JNI_FilteringConfiguration_AddAllowedDomain( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name, ++ const base::android::JavaParamRef& allowed_domain) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ if (configuration) { ++ configuration->AddAllowedDomain( ++ base::android::ConvertJavaStringToUTF8(allowed_domain)); ++ } ++} ++ ++static void JNI_FilteringConfiguration_RemoveAllowedDomain( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name, ++ const base::android::JavaParamRef& allowed_domain) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ if (configuration) { ++ configuration->RemoveAllowedDomain(ConvertJavaStringToUTF8(allowed_domain)); ++ } ++} ++ ++static base::android::ScopedJavaLocalRef ++JNI_FilteringConfiguration_GetAllowedDomains( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ return base::android::ToJavaArrayOfStrings( ++ env, configuration ? configuration->GetAllowedDomains() ++ : std::vector{}); ++} ++ ++static void JNI_FilteringConfiguration_AddCustomFilter( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name, ++ const base::android::JavaParamRef& custom_filter) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ if (configuration) { ++ configuration->AddCustomFilter(ConvertJavaStringToUTF8(custom_filter)); ++ } ++} ++ ++static void JNI_FilteringConfiguration_RemoveCustomFilter( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name, ++ const base::android::JavaParamRef& custom_filter) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ if (configuration) { ++ configuration->RemoveCustomFilter( ++ base::android::ConvertJavaStringToUTF8(custom_filter)); ++ } ++} ++ ++static base::android::ScopedJavaLocalRef ++JNI_FilteringConfiguration_GetCustomFilters( ++ JNIEnv* env, ++ const base::android::JavaParamRef& configuration_name) { ++ auto* configuration = GetConfigurationWithName(env, configuration_name); ++ return base::android::ToJavaArrayOfStrings( ++ env, configuration ? configuration->GetCustomFilters() ++ : std::vector{}); ++} +diff --git a/components/adblock/android/filtering_configuration_bindings.h b/components/adblock/android/filtering_configuration_bindings.h +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/filtering_configuration_bindings.h +@@ -0,0 +1,68 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#ifndef COMPONENTS_ADBLOCK_ANDROID_FILTERING_CONFIGURATION_BINDINGS_H_ ++#define COMPONENTS_ADBLOCK_ANDROID_FILTERING_CONFIGURATION_BINDINGS_H_ ++ ++#include ++#include ++#include ++#include "base/android/jni_weak_ref.h" ++#include "base/memory/raw_ptr.h" ++#include "base/sequence_checker.h" ++#include "components/adblock/core/configuration/filtering_configuration.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++#include "components/keyed_service/core/keyed_service.h" ++#include "components/prefs/pref_service.h" ++ ++namespace adblock { ++ ++class FilteringConfigurationBindings : public KeyedService, ++ public FilteringConfiguration::Observer { ++ public: ++ explicit FilteringConfigurationBindings( ++ SubscriptionService* subscription_service, ++ PrefService* pref_service); ++ ~FilteringConfigurationBindings() override; ++ void Bind(const std::string& configuration_name, ++ JavaObjectWeakGlobalRef filtering_configuration_java); ++ void RemoveConfiguration(const std::string& configuration_name); ++ std::vector GetConfigurations(); ++ FilteringConfiguration* GetInstalledConfigurationWithName( ++ const std::string& name); ++ ++ // FilteringConfiguration::Observer: ++ void OnEnabledStateChanged(FilteringConfiguration* config) override; ++ void OnFilterListsChanged(FilteringConfiguration* config) override; ++ void OnAllowedDomainsChanged(FilteringConfiguration* config) override; ++ void OnCustomFiltersChanged(FilteringConfiguration* config) override; ++ ++ private: ++ using JavaEventListener = void(JNIEnv* env, ++ const base::android::JavaRef& obj); ++ void Notify(FilteringConfiguration* config, ++ JavaEventListener event_listener_function); ++ SEQUENCE_CHECKER(sequence_checker_); ++ raw_ptr subscription_service_; ++ raw_ptr pref_service_; ++ std::map ++ bound_counterparts_; ++}; ++ ++} // namespace adblock ++ ++#endif // COMPONENTS_ADBLOCK_ANDROID_FILTERING_CONFIGURATION_BINDINGS_H_ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/AdblockContentType.java b/components/adblock/android/java/src/org/chromium/components/adblock/AdblockContentType.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/AdblockContentType.java -@@ -0,0 +1,62 @@ +@@ -0,0 +1,61 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -1720,8 +1466,7 @@ new file mode 100644 + } + + public static AdblockContentType fromInt(int i) { -+ AdblockContentType type = intToContentTypeMap.get(Integer.valueOf(i)); -+ return type; ++ return intToContentTypeMap.get(i); + } + + public int getValue() { @@ -1732,7 +1477,7 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/AdblockController.java -@@ -0,0 +1,258 @@ +@@ -0,0 +1,203 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -1753,33 +1498,21 @@ new file mode 100644 +package org.chromium.components.adblock; + +import android.content.Context; -+import android.content.res.Resources; +import android.util.Log; +import android.webkit.URLUtil; + -+import androidx.annotation.NonNull; -+import androidx.annotation.Nullable; +import androidx.annotation.UiThread; + -+import org.chromium.base.ContextUtils; +import org.chromium.base.ThreadUtils; +import org.chromium.base.annotations.CalledByNative; +import org.chromium.base.annotations.NativeMethods; -+import org.chromium.chrome.browser.preferences.Pref; -+import org.chromium.chrome.browser.profiles.Profile; -+import org.chromium.components.user_prefs.UserPrefs; ++import org.chromium.components.adblock.controller.R; + -+import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; -+import java.util.Collections; -+import java.util.HashMap; +import java.util.List; -+import java.util.Map; -+import java.util.Set; -+import java.util.concurrent.CopyOnWriteArraySet; + +/** + * @brief Main access point for java UI code to control ad filtering. @@ -1876,35 +1609,9 @@ new file mode 100644 + } + + @UiThread -+ public void setMoreOptionsEnabled(boolean enabled) { -+ UserPrefs.get(Profile.getLastUsedRegularProfile()) -+ .setBoolean(Pref.ADBLOCK_MORE_OPTIONS_ENABLED, enabled); -+ } -+ -+ @UiThread -+ public boolean areMoreOptionsEnabled() { -+ return UserPrefs.get(Profile.getLastUsedRegularProfile()) -+ .getBoolean(Pref.ADBLOCK_MORE_OPTIONS_ENABLED); -+ } -+ -+ @UiThread -+ public List getRecommendedSubscriptions(Context context) { -+ final List recommendedSubscriptions = -+ (List) (List) Arrays.asList( -+ AdblockControllerJni.get().getRecommendedSubscriptions()); -+ final Map localeToTitle = getLocaleToTitleMap(context); -+ for (int i = 0; i < recommendedSubscriptions.size(); ++i) { -+ for (final String language : recommendedSubscriptions.get(i).languages()) { -+ final String title = localeToTitle.get(language); -+ if (title != null && !title.isEmpty()) { -+ recommendedSubscriptions.set(i, -+ new Subscription(recommendedSubscriptions.get(i).url(), title, -+ "" /*version*/, recommendedSubscriptions.get(i).languages())); -+ break; -+ } -+ } -+ } -+ return recommendedSubscriptions; ++ public List getRecommendedSubscriptions() { ++ return (List) (List) Arrays.asList( ++ AdblockControllerJni.get().getRecommendedSubscriptions()); + } + + @UiThread @@ -1954,23 +1661,6 @@ new file mode 100644 + return result; + } + -+ private Map getLocaleToTitleMap(final Context context) { -+ final Resources resources = context.getResources(); -+ final String[] locales = -+ resources.getStringArray(R.array.fragment_adblock_general_locale_title); -+ final String separator = resources.getString(R.string.fragment_adblock_general_separator); -+ final Map localeToTitle = new HashMap<>(locales.length); -+ for (final String localeAndTitlePair : locales) { -+ // in `String.split()` separator is a regexp, but we want to treat it as a string -+ final int separatorIndex = localeAndTitlePair.indexOf(separator); -+ final String locale = localeAndTitlePair.substring(0, separatorIndex); -+ final String title = localeAndTitlePair.substring(separatorIndex + 1); -+ localeToTitle.put(locale, title); -+ } -+ -+ return localeToTitle; -+ } -+ + @CalledByNative + private void subscriptionUpdatedCallback(final String url) { + ThreadUtils.assertOnUiThread(); @@ -2101,7 +1791,7 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/FilteringConfiguration.java -@@ -0,0 +1,245 @@ +@@ -0,0 +1,348 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2138,6 +1828,7 @@ new file mode 100644 +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; ++import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Set; @@ -2159,6 +1850,7 @@ new file mode 100644 + private final Set mConfigurationChangeObservers = new HashSet<>(); + protected final Set mSubscriptionUpdateObservers = new HashSet<>(); + private final String mName; ++ private final static Set mConfigurations = new HashSet<>(); + + public interface ConfigurationChangeObserver { + /** @@ -2191,11 +1883,6 @@ new file mode 100644 + void onSubscriptionDownloaded(final URL url); + } + -+ public FilteringConfiguration(String configuration_name) { -+ mName = configuration_name; -+ FilteringConfigurationJni.get().bind(mName, this); -+ } -+ + @UiThread + public void addObserver(final ConfigurationChangeObserver observer) { + mConfigurationChangeObservers.add(observer); @@ -2216,28 +1903,43 @@ new file mode 100644 + mSubscriptionUpdateObservers.remove(observer); + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public void setEnabled(boolean enabled) { ++ public void setEnabled(boolean enabled) throws IllegalStateException { + FilteringConfigurationJni.get().setEnabled(mName, enabled); + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public boolean isEnabled() { ++ public boolean isEnabled() throws IllegalStateException { + return FilteringConfigurationJni.get().isEnabled(mName); + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public void addFilterList(final URL url) { ++ public void addFilterList(final URL url) throws IllegalStateException { + FilteringConfigurationJni.get().addFilterList(mName, url.toString()); + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public void removeFilterList(final URL url) { ++ public void removeFilterList(final URL url) throws IllegalStateException { + FilteringConfigurationJni.get().removeFilterList(mName, url.toString()); + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public List getFilterLists() { ++ public List getFilterLists() throws IllegalStateException { + List filterListsStr = + Arrays.asList(FilteringConfigurationJni.get().getFilterLists(mName)); + List filterLists = new ArrayList(); @@ -2251,43 +1953,132 @@ new file mode 100644 + return filterLists; + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public void addAllowedDomain(final String domain) { ++ public void addAllowedDomain(final String domain) throws IllegalStateException { + String sanitizedDomain = sanitizeSite(domain); + if (sanitizedDomain == null) return; + FilteringConfigurationJni.get().addAllowedDomain(mName, sanitizedDomain); + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ ++ + @UiThread -+ public void removeAllowedDomain(final String domain) { ++ public void removeAllowedDomain(final String domain) throws IllegalStateException { + String sanitizedDomain = sanitizeSite(domain); + if (sanitizedDomain == null) return; + FilteringConfigurationJni.get().removeAllowedDomain(mName, sanitizedDomain); + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public List getAllowedDomains() { ++ public List getAllowedDomains() throws IllegalStateException { + List allowedDomains = + Arrays.asList(FilteringConfigurationJni.get().getAllowedDomains(mName)); + Collections.sort(allowedDomains); + return allowedDomains; + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public void addCustomFilter(final String filter) { ++ public void addCustomFilter(final String filter) throws IllegalStateException { + FilteringConfigurationJni.get().addCustomFilter(mName, filter); + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public void removeCustomFilter(final String filter) { ++ public void removeCustomFilter(final String filter) throws IllegalStateException { + FilteringConfigurationJni.get().removeCustomFilter(mName, filter); + } + ++ /** ++ * @throws IllegalStateException when called on removed FilteringConfiguration. ++ */ + @UiThread -+ public List getCustomFilters() { ++ public List getCustomFilters() throws IllegalStateException { + return Arrays.asList(FilteringConfigurationJni.get().getCustomFilters(mName)); + } + ++ @UiThread ++ public static FilteringConfiguration createConfiguration(final String configuration_name) { ++ FilteringConfiguration configuration = findConfigurationByName(configuration_name); ++ if (configuration == null) { ++ configuration = new FilteringConfiguration(configuration_name); ++ mConfigurations.add(configuration); ++ } ++ return configuration; ++ } ++ ++ @UiThread ++ public static void removeConfiguration(final String configuration_name) { ++ final FilteringConfiguration configuration = findConfigurationByName(configuration_name); ++ if (configuration != null) { ++ mConfigurations.remove(configuration); ++ } ++ // Even if on Java side there is no such a FilteringConfiguration object, it can exist ++ // on native side. ++ FilteringConfigurationJni.get().removeConfiguration(configuration_name); ++ } ++ ++ @UiThread ++ public static List getConfigurations() { ++ // Get all existing (on C++ side) configurations, if there is no matching Java ++ // instance present in mConfigurations set then create one and add. ++ final String[] existing_configurations_names = ++ FilteringConfigurationJni.get().getConfigurations(); ++ final List configurations_to_return = ++ new ArrayList(); ++ // If mConfigurations contains configurations which are not present on the list returned ++ // from FilteringConfigurationJni.get().getConfigurations() then we need to remove them ++ // as it means that a configuration has been removed on native side (not via Java API). ++ mConfigurations.removeIf(filteringConfiguration -> { ++ return !Arrays.asList(existing_configurations_names) ++ .contains(filteringConfiguration.mName); ++ }); ++ for (final String configuration_name : existing_configurations_names) { ++ FilteringConfiguration configuration = findConfigurationByName(configuration_name); ++ if (configuration == null) { ++ configuration = new FilteringConfiguration(configuration_name); ++ mConfigurations.add(configuration); ++ } ++ configurations_to_return.add(configuration); ++ } ++ Collections.sort(configurations_to_return, new Comparator() { ++ @Override ++ public int compare( ++ final FilteringConfiguration object1, final FilteringConfiguration object2) { ++ return object1.mName.compareTo(object2.mName); ++ } ++ }); ++ return configurations_to_return; ++ } ++ ++ // TODO(kzlomek): Make it private once we remove AdblockController (DPD-2120). ++ protected FilteringConfiguration(final String configuration_name) { ++ mName = configuration_name; ++ FilteringConfigurationJni.get().bind(mName, this); ++ } ++ ++ @UiThread ++ private static FilteringConfiguration findConfigurationByName(final String configuration_name) { ++ for (final FilteringConfiguration configuration : mConfigurations) { ++ if (configuration.mName.equals(configuration_name)) { ++ return configuration; ++ } ++ } ++ return null; ++ } ++ + private String sanitizeSite(String site) { + // |site| is raw user input. We expect it to be either a domain or a URL. + try { @@ -2334,6 +2125,8 @@ new file mode 100644 + @NativeMethods + interface Natives { + void bind(String configuration_name, FilteringConfiguration caller); ++ void removeConfiguration(String configuration_name); ++ String[] getConfigurations(); + boolean isEnabled(String configuration_name); + void setEnabled(String configuration_name, boolean enabled); + void addFilterList(String configuration_name, String url); @@ -2539,11 +2332,57 @@ new file mode 100644 + void bind(ResourceClassificationNotifier caller); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockControllerTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockControllerTest.java +diff --git a/components/adblock/android/java_bindings_getters.h b/components/adblock/android/java_bindings_getters.h new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockControllerTest.java -@@ -0,0 +1,87 @@ ++++ b/components/adblock/android/java_bindings_getters.h +@@ -0,0 +1,41 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#ifndef COMPONENTS_ADBLOCK_ANDROID_JAVA_BINDINGS_GETTERS_H_ ++#define COMPONENTS_ADBLOCK_ANDROID_JAVA_BINDINGS_GETTERS_H_ ++ ++#include "components/adblock/android/adblock_jni.h" ++#include "components/adblock/android/filtering_configuration_bindings.h" ++#include "components/adblock/android/resource_classification_notifier_bindings.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++ ++namespace adblock { ++ ++SubscriptionService* GetSubscriptionService(); ++ ++AdblockJNI* GetJNI(); ++ ++FilteringConfigurationBindings& GetFilteringConfigurationBindings(); ++ ++ResourceClassificationNotifierBindings& ++GetResourceClassificationNotifierBindings(); ++ ++int GetTabId(content::RenderFrameHost* render_frame_host); ++ ++} // namespace adblock ++ ++#endif // COMPONENTS_ADBLOCK_ANDROID_JAVA_BINDINGS_GETTERS_H_ +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockControllerTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockControllerTestBase.java +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockControllerTestBase.java +@@ -0,0 +1,63 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2566,45 +2405,21 @@ new file mode 100644 +import androidx.test.filters.LargeTest; + +import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + +import org.chromium.base.test.util.CallbackHelper; -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.DisabledTest; +import org.chromium.base.test.util.Feature; +import org.chromium.base.test.util.IntegrationTest; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.AdblockController; +import org.chromium.content_public.browser.test.util.TestThreadUtils; + -+import java.net.MalformedURLException; -+import java.net.URL; +import java.util.ArrayList; -+import java.util.Arrays; -+import java.util.HashMap; +import java.util.List; -+import java.util.Map; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class AdblockControllerTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private CallbackHelper mHelper = new CallbackHelper(); -+ -+ @Before -+ public void setUp() { -+ mActivityTestRule.startMainActivityOnBlankPage(); -+ } ++public abstract class AdblockControllerTestBase { ++ private final CallbackHelper mHelper = new CallbackHelper(); + + @Test + @IntegrationTest @@ -2631,530 +2446,11 @@ new file mode 100644 + Assert.assertEquals(expectedAllowedDomains, allowedDomains); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/FilteringConfigurationTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/FilteringConfigurationTest.java -new file mode 100644 ---- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/FilteringConfigurationTest.java -@@ -0,0 +1,366 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+package org.chromium.components.adblock; -+ -+import androidx.test.InstrumentationRegistry; -+ -+import androidx.test.filters.LargeTest; -+ -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; -+import org.junit.Test; -+import org.junit.runner.RunWith; -+ -+import org.chromium.base.test.util.CallbackHelper; -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.DisabledTest; -+import org.chromium.base.test.util.Feature; -+import org.chromium.base.test.util.IntegrationTest; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.browser.tab.Tab; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.content_public.browser.test.util.TestThreadUtils; -+import org.chromium.content_public.common.ContentSwitches; -+import org.chromium.net.test.EmbeddedTestServer; -+ -+import java.net.MalformedURLException; -+import java.net.URL; -+import java.util.ArrayList; -+import java.util.Arrays; -+import java.util.HashMap; -+import java.util.List; -+import java.util.Map; -+import java.util.concurrent.TimeUnit; -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, -+ ContentSwitches.HOST_RESOLVER_RULES + "=MAP * 127.0.0.1"}) -+public class FilteringConfigurationTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private CallbackHelper mHelper = new CallbackHelper(); -+ public FilteringConfiguration mConfigurationA; -+ public FilteringConfiguration mConfigurationB; -+ private EmbeddedTestServer mTestServer; -+ private String mTestUrl; -+ -+ private class TestConfigurationChangeObserver -+ implements FilteringConfiguration.ConfigurationChangeObserver { -+ public volatile boolean mOnEnabledStateChangedCalled; -+ public volatile boolean mOnFilterListsChanged; -+ public volatile boolean mOnAllowedDomainsChanged; -+ public volatile boolean mOnCustomFiltersChanged; -+ -+ public TestConfigurationChangeObserver() { -+ mOnEnabledStateChangedCalled = false; -+ mOnFilterListsChanged = false; -+ mOnAllowedDomainsChanged = false; -+ mOnCustomFiltersChanged = false; -+ } -+ -+ @Override -+ public void onEnabledStateChanged() { -+ mOnEnabledStateChangedCalled = true; -+ } -+ @Override -+ public void onFilterListsChanged() { -+ mOnFilterListsChanged = true; -+ } -+ -+ @Override -+ public void onAllowedDomainsChanged() { -+ mOnAllowedDomainsChanged = true; -+ } -+ -+ @Override -+ public void onCustomFiltersChanged() { -+ mOnCustomFiltersChanged = true; -+ } -+ } -+ -+ public void loadTestUrl() throws InterruptedException { -+ mActivityTestRule.loadUrl(mTestUrl, 5); -+ } -+ -+ @Before -+ public void setUp() throws TimeoutException { -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfigurationA = new FilteringConfiguration("a"); -+ mConfigurationB = new FilteringConfiguration("b"); -+ -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ mActivityTestRule.startMainActivityOnBlankPage(); -+ mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); -+ mTestUrl = mTestServer.getURLWithHostName( -+ "test.org", "/chrome/test/data/adblock/innermost_frame.html"); -+ } -+ -+ @After -+ public void tearDown() { -+ mTestServer.stopAndDestroyServer(); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void addingAllowedDomains() throws Exception { -+ final List allowedDomainsA = new ArrayList<>(); -+ final List allowedDomainsB = new ArrayList<>(); -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfigurationA.addAllowedDomain("foobar.com"); -+ mConfigurationA.addAllowedDomain("domain.com/path/to/page.html"); -+ mConfigurationA.addAllowedDomain("domain.com/duplicate.html"); -+ allowedDomainsA.addAll(mConfigurationA.getAllowedDomains()); -+ -+ mConfigurationB.addAllowedDomain("https://scheme.com/path.html"); -+ mConfigurationB.addAllowedDomain("https://second.com"); -+ mConfigurationB.removeAllowedDomain("https://second.com"); -+ mConfigurationB.addAllowedDomain("gibberish"); -+ allowedDomainsB.addAll(mConfigurationB.getAllowedDomains()); -+ -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ // We expect to see a sorted collection of domains (not URLs) without duplicates. -+ ArrayList expectedAllowedDomainsA = new ArrayList(); -+ expectedAllowedDomainsA.add("domain.com"); -+ expectedAllowedDomainsA.add("foobar.com"); -+ Assert.assertEquals(expectedAllowedDomainsA, allowedDomainsA); -+ -+ // We expect not to see second.com because it was removed after being added. -+ ArrayList expectedAllowedDomainsB = new ArrayList(); -+ expectedAllowedDomainsB.add("scheme.com"); -+ expectedAllowedDomainsB.add("www.gibberish.com"); -+ Assert.assertEquals(expectedAllowedDomainsB, allowedDomainsB); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void addingCustomFilters() throws Exception { -+ final List customFiltersA = new ArrayList<>(); -+ final List customFiltersB = new ArrayList<>(); -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfigurationA.addCustomFilter("foobar.com"); -+ mConfigurationA.addCustomFilter("foobar.com"); -+ mConfigurationA.addCustomFilter("abc"); -+ customFiltersA.addAll(mConfigurationA.getCustomFilters()); -+ -+ mConfigurationB.addCustomFilter("https://scheme.com/path.html"); -+ mConfigurationB.addCustomFilter("https://second.com"); -+ mConfigurationB.removeCustomFilter("https://second.com"); -+ customFiltersB.addAll(mConfigurationB.getCustomFilters()); -+ -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ // We expect to see a collection of custom filters without duplicates. -+ // The order represents order of addition. -+ ArrayList expectedCustomFiltersA = new ArrayList(); -+ expectedCustomFiltersA.add("foobar.com"); -+ expectedCustomFiltersA.add("abc"); -+ Assert.assertEquals(expectedCustomFiltersA, customFiltersA); -+ -+ // We expect not to see https://second.com because it was removed after being added. -+ ArrayList expectedCustomFiltersB = new ArrayList(); -+ expectedCustomFiltersB.add("https://scheme.com/path.html"); -+ Assert.assertEquals(expectedCustomFiltersB, customFiltersB); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void addingFilterLists() throws Exception { -+ final URL filterList1 = new URL("http://filters.com/list1.txt"); -+ final URL filterList2 = new URL("http://filters.com/list2.txt"); -+ final List filterListsA = new ArrayList(); -+ final List filterListsB = new ArrayList(); -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfigurationA.addFilterList(filterList1); -+ mConfigurationA.addFilterList(filterList2); -+ mConfigurationA.addFilterList(filterList1); -+ filterListsA.addAll(mConfigurationA.getFilterLists()); -+ -+ mConfigurationB.addFilterList(filterList1); -+ mConfigurationB.addFilterList(filterList2); -+ mConfigurationB.removeFilterList(filterList1); -+ filterListsB.addAll(mConfigurationB.getFilterLists()); -+ -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ ArrayList expectedFilterListsA = new ArrayList(); -+ expectedFilterListsA.add(filterList1); -+ expectedFilterListsA.add(filterList2); -+ Assert.assertEquals(expectedFilterListsA, filterListsA); -+ -+ ArrayList expectedFilterListsB = new ArrayList(); -+ expectedFilterListsB.add(filterList2); -+ Assert.assertEquals(expectedFilterListsB, filterListsB); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void aliasedConfigurations() throws Exception { -+ final URL filterList1 = new URL("http://filters.com/list1.txt"); -+ final URL filterList2 = new URL("http://filters.com/list2.txt"); -+ final List filterListsA = new ArrayList(); -+ final List filterListsB = new ArrayList(); -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ // Create a new FilteringConfiguration with a name of one that -+ // already exist. -+ FilteringConfiguration aliasedConfiguration = new FilteringConfiguration("a"); -+ -+ // We add filter lists only to the original configuration instance. -+ mConfigurationA.addFilterList(filterList1); -+ mConfigurationA.addFilterList(filterList2); -+ -+ // We check what filter lists are present in the original and in the aliased instance. -+ filterListsA.addAll(mConfigurationA.getFilterLists()); -+ filterListsB.addAll(aliasedConfiguration.getFilterLists()); -+ -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ ArrayList expectedFilterLists = new ArrayList(); -+ expectedFilterLists.add(filterList1); -+ expectedFilterLists.add(filterList2); -+ Assert.assertEquals(expectedFilterLists, filterListsA); -+ Assert.assertEquals(expectedFilterLists, filterListsB); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void configurationChangeObserverNotified() throws Exception { -+ final URL filterList1 = new URL("http://filters.com/list1.txt"); -+ final TestConfigurationChangeObserver observer = new TestConfigurationChangeObserver(); -+ Assert.assertFalse(observer.mOnEnabledStateChangedCalled); -+ Assert.assertFalse(observer.mOnAllowedDomainsChanged); -+ Assert.assertFalse(observer.mOnCustomFiltersChanged); -+ Assert.assertFalse(observer.mOnFilterListsChanged); -+ -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ // We'll create an aliased instance which will receive notifications triggered by -+ // changes made to the original instance. -+ FilteringConfiguration aliasedConfiguration = new FilteringConfiguration("a"); -+ aliasedConfiguration.addObserver(observer); -+ -+ mConfigurationA.addFilterList(filterList1); -+ mConfigurationA.addAllowedDomain("test.com"); -+ mConfigurationA.addCustomFilter("test.com"); -+ mConfigurationA.setEnabled(false); -+ -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ Assert.assertTrue(observer.mOnEnabledStateChangedCalled); -+ Assert.assertTrue(observer.mOnAllowedDomainsChanged); -+ Assert.assertTrue(observer.mOnCustomFiltersChanged); -+ Assert.assertTrue(observer.mOnFilterListsChanged); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void resourceBlockedByFilter() throws Exception { -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfigurationA.addCustomFilter("resource.png"); -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ loadTestUrl(); -+ TestVerificationUtils.expectResourceBlocked(mActivityTestRule, "subresource"); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void resourceAllowedByFilter() throws Exception { -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfigurationA.addCustomFilter("resource.png"); -+ // Allowing filter for the mocked test.org domain that mTestServer hosts. -+ mConfigurationA.addCustomFilter("@@test.org$document"); -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ loadTestUrl(); -+ TestVerificationUtils.expectResourceShown(mActivityTestRule, "subresource"); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void resourceAllowedByAllowedDomain() throws Exception { -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfigurationA.addCustomFilter("resource.png"); -+ mConfigurationA.addAllowedDomain("test.org"); -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ loadTestUrl(); -+ TestVerificationUtils.expectResourceShown(mActivityTestRule, "subresource"); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void resourceBlockedBySecondConfiguration() throws Exception { -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ // ConfigurationA allows the resource. -+ // Allowing rules take precedence within a FilteringConfiguration. -+ mConfigurationA.addCustomFilter("resource.png"); -+ mConfigurationA.addAllowedDomain("test.org"); -+ // But ConfigurationB blocks the resource. -+ // Blocking takes precedence across FilteringConfigurations. -+ mConfigurationB.addCustomFilter("resource.png"); -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ loadTestUrl(); -+ TestVerificationUtils.expectResourceBlocked(mActivityTestRule, "subresource"); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void noBlockingWithoutFilters() throws Exception { -+ loadTestUrl(); -+ TestVerificationUtils.expectResourceShown(mActivityTestRule, "subresource"); -+ } -+} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/ResourceClassificationNotifierTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/ResourceClassificationNotifierTest.java -new file mode 100644 ---- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/ResourceClassificationNotifierTest.java -@@ -0,0 +1,143 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+package org.chromium.components.adblock; -+ -+import androidx.test.InstrumentationRegistry; -+import android.util.Log; -+ -+import androidx.test.filters.LargeTest; -+ -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; -+import org.junit.Test; -+import org.junit.runner.RunWith; -+ -+import org.chromium.base.test.util.CallbackHelper; -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.DisabledTest; -+import org.chromium.base.test.util.Feature; -+import org.chromium.base.test.util.IntegrationTest; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.browser.tab.Tab; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.content_public.browser.test.util.TestThreadUtils; -+import org.chromium.content_public.common.ContentSwitches; -+import org.chromium.net.test.EmbeddedTestServer; -+ -+import java.net.MalformedURLException; -+import java.net.URL; -+import java.util.ArrayList; -+import java.util.Arrays; -+import java.util.HashMap; -+import java.util.List; -+import java.util.Map; -+import java.util.concurrent.TimeUnit; -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, -+ ContentSwitches.HOST_RESOLVER_RULES + "=MAP * 127.0.0.1"}) -+public class ResourceClassificationNotifierTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private CallbackHelper mHelper = new CallbackHelper(); -+ public FilteringConfiguration mConfiguration; -+ public TestAdBlockedObserver mAdBlockedObserver = new TestAdBlockedObserver(); -+ -+ private EmbeddedTestServer mTestServer; -+ private String mTestUrl; -+ -+ public void loadTestUrl() throws InterruptedException { -+ mActivityTestRule.loadUrl(mTestUrl, 5); -+ } -+ -+ @Before -+ public void setUp() throws TimeoutException { -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfiguration = new FilteringConfiguration("a"); -+ ResourceClassificationNotifier.getInstance().addOnAdBlockedObserver(mAdBlockedObserver); -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ mActivityTestRule.startMainActivityOnBlankPage(); -+ mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); -+ mTestUrl = mTestServer.getURLWithHostName( -+ "test.org", "/chrome/test/data/adblock/innermost_frame.html"); -+ } -+ -+ @After -+ public void tearDown() { -+ mTestServer.stopAndDestroyServer(); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void noNotificationWithoutBlocking() throws Exception { -+ loadTestUrl(); -+ -+ Assert.assertTrue(mAdBlockedObserver.blockedInfos.isEmpty()); -+ Assert.assertTrue(mAdBlockedObserver.allowedInfos.isEmpty()); -+ Assert.assertTrue(mAdBlockedObserver.allowedPageInfos.isEmpty()); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void resourceBlockedByFilter() throws Exception { -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfiguration.addCustomFilter("resource.png"); -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ loadTestUrl(); -+ // Observer was notified about the blocking -+ Assert.assertTrue(mAdBlockedObserver.isBlocked("resource.png")); -+ Assert.assertTrue(mAdBlockedObserver.allowedInfos.isEmpty()); -+ Assert.assertTrue(mAdBlockedObserver.allowedPageInfos.isEmpty()); -+ } -+ -+ @Test -+ @IntegrationTest -+ @LargeTest -+ @Feature({"adblock"}) -+ public void pageAllowed() throws Exception { -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ mConfiguration.addCustomFilter("resource.png"); -+ mConfiguration.addAllowedDomain("test.org"); -+ mHelper.notifyCalled(); -+ }); -+ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); -+ loadTestUrl(); -+ // Observer was notified about the allowed resource -+ Assert.assertTrue(mAdBlockedObserver.blockedInfos.isEmpty()); -+ Assert.assertTrue(mAdBlockedObserver.isAllowed("resource.png")); -+ -+ // TODO(mpawlowski): The observer could also be notified about the entire domain being -+ // allowed: Assert.assertTrue(mAdBlockedObserver.isPageAllowed("test.org")); However this is -+ // currently broken with multiple FilteringConfigurations (DPD-1729). -+ } -+} diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestAdBlockedObserver.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestAdBlockedObserver.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestAdBlockedObserver.java -@@ -0,0 +1,183 @@ +@@ -0,0 +1,176 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3175,47 +2471,48 @@ new file mode 100644 +package org.chromium.components.adblock; + +import org.junit.Assert; -+import org.junit.Rule; ++ ++import org.chromium.components.adblock.AdblockContentType; ++import org.chromium.components.adblock.AdblockCounters; ++import org.chromium.components.adblock.ResourceClassificationNotifier; + +import java.net.URL; -+import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.CountDownLatch; -+import java.util.concurrent.TimeoutException; + +public class TestAdBlockedObserver implements ResourceClassificationNotifier.AdBlockedObserver { + @Override + public void onAdAllowed(AdblockCounters.ResourceInfo info) { + allowedInfos.add(info); -+ Assert.assertTrue(info.getSubscription().equals(getExpectedSubscriptionUrl())); ++ Assert.assertEquals(info.getSubscription(), getExpectedSubscriptionUrl()); + CheckAndCountDownLatch(Decision.ALLOWED, info.getRequestUrl().split("\\?")[0]); + } + + @Override + public void onAdBlocked(AdblockCounters.ResourceInfo info) { + blockedInfos.add(info); -+ Assert.assertTrue(info.getSubscription().equals(getExpectedSubscriptionUrl())); ++ Assert.assertEquals(info.getSubscription(), getExpectedSubscriptionUrl()); + CheckAndCountDownLatch(Decision.BLOCKED, info.getRequestUrl().split("\\?")[0]); + } + + @Override + public void onPageAllowed(AdblockCounters.ResourceInfo info) { + allowedPageInfos.add(info); -+ Assert.assertTrue(info.getSubscription().equals(getExpectedSubscriptionUrl())); ++ Assert.assertEquals(info.getSubscription(), getExpectedSubscriptionUrl()); + } + + @Override + public void onPopupAllowed(AdblockCounters.ResourceInfo info) { + allowedPopupsInfos.add(info); -+ Assert.assertTrue(info.getSubscription().equals(getExpectedSubscriptionUrl())); ++ Assert.assertEquals(info.getSubscription(), getExpectedSubscriptionUrl()); + } + + @Override + public void onPopupBlocked(AdblockCounters.ResourceInfo info) { + blockedPopupsInfos.add(info); -+ Assert.assertTrue(info.getSubscription().equals(getExpectedSubscriptionUrl())); ++ Assert.assertEquals(info.getSubscription(), getExpectedSubscriptionUrl()); + } + + public boolean isBlocked(String url) { @@ -3243,11 +2540,7 @@ new file mode 100644 + } + + public int numBlockedPopups() { -+ int result = 0; -+ for (AdblockCounters.ResourceInfo info : blockedPopupsInfos) { -+ ++result; -+ } -+ return result; ++ return blockedPopupsInfos.size(); + } + + public boolean isAllowed(String url) { @@ -3283,11 +2576,7 @@ new file mode 100644 + } + + public int numAllowedPopups() { -+ int result = 0; -+ for (AdblockCounters.ResourceInfo info : allowedPopupsInfos) { -+ ++result; -+ } -+ return result; ++ return allowedPopupsInfos.size(); + } + + public void setExpectedSubscriptionUrl(URL url) { @@ -3329,20 +2618,20 @@ new file mode 100644 + } + + private URL mTestSubscriptionUrl; -+ List blockedInfos = new CopyOnWriteArrayList<>(); -+ List allowedInfos = new CopyOnWriteArrayList<>(); -+ List allowedPageInfos = new CopyOnWriteArrayList<>(); -+ List blockedPopupsInfos = new CopyOnWriteArrayList<>(); -+ List allowedPopupsInfos = new CopyOnWriteArrayList<>(); ++ public List blockedInfos = new CopyOnWriteArrayList<>(); ++ public List allowedInfos = new CopyOnWriteArrayList<>(); ++ public List allowedPageInfos = new CopyOnWriteArrayList<>(); ++ public List blockedPopupsInfos = new CopyOnWriteArrayList<>(); ++ public List allowedPopupsInfos = new CopyOnWriteArrayList<>(); + CountDownLatch countDownLatch; + Set expectedAllowed; + Set expectedBlocked; +}; -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTestBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTest.java -@@ -0,0 +1,90 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCircumventionTestBase.java +@@ -0,0 +1,64 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3364,80 +2653,54 @@ new file mode 100644 + +import androidx.test.filters.LargeTest; + -+import org.junit.After; +import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + -+import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.content_public.browser.test.util.DOMUtils; +import org.chromium.content_public.browser.test.util.JavaScriptUtils; + -+import java.lang.Thread; -+import java.util.concurrent.TimeoutException; ++public abstract class TestPagesCircumventionTestBase { ++ private TestPagesHelperBase mHelper; + -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesCircumventionTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); -+ -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ mHelper.addFilterList(TestPagesTestsHelper.TESTPAGES_SUBSCRIPTION); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); ++ public void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; ++ mHelper.addFilterList(TestPagesHelperBase.TESTPAGES_SUBSCRIPTION); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyCircumventionInlineStyleNotImportant() -+ throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.CIRCUMVENTION_TESTPAGES_TESTCASES_ROOT ++ public void testVerifyCircumventionInlineStyleNotImportant() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.CIRCUMVENTION_TESTPAGES_TESTCASES_ROOT + + "inline-style-important"); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 2, "div"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 2, "div"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyCircumventionAnonymousFrameDocumentWrite() -+ throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.CIRCUMVENTION_TESTPAGES_TESTCASES_ROOT ++ public void testVerifyCircumventionAnonymousFrameDocumentWrite() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.CIRCUMVENTION_TESTPAGES_TESTCASES_ROOT + + "anoniframe-documentwrite"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "span[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "span[data-expectedresult='fail']"); + String numHidden = JavaScriptUtils.executeJavaScriptAndWaitForResult( + mHelper.getWebContents(), + "var hiddenCount = 0;" -+ + "var elements = document.getElementById(\"write\").contentWindow.document.getElementsByTagName(\"span\");" ++ + "var elements = document.getElementById(\"write\").contentWindow" ++ + ".document.getElementsByTagName(\"span\");" + + "for (let i = 0; i < elements.length; ++i) {" -+ + " if (window.getComputedStyle(elements[i]).display == \"none\") ++hiddenCount;" ++ + " if (window.getComputedStyle(elements[i]).display == \"none\") " ++ + "++hiddenCount;" + + "}" + + "hiddenCount;"); + Assert.assertEquals("1", numHidden); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCspTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCspTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCspTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCspTestBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCspTest.java -@@ -0,0 +1,136 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesCspTestBase.java +@@ -0,0 +1,108 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3459,126 +2722,98 @@ new file mode 100644 + +import androidx.test.filters.LargeTest; + -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.DisabledTest; +import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.components.adblock.TestVerificationUtils.IncludeSubframes; + -+import java.util.concurrent.TimeoutException; ++public abstract class TestPagesCspTestBase { ++ private TestPagesHelperBase mHelper; + -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesCspTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); -+ -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testCspAllSites() throws TimeoutException, InterruptedException { ++ public void testCspAllSites() throws Exception { + mHelper.addCustomFilter("*$csp=script-src 'none'"); -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "csp_all"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "img[id='all-sites-fail-1']"); ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "csp_all"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 0, "img[id='all-sites-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testCspSpecificSite() throws TimeoutException, InterruptedException { ++ public void testCspSpecificSite() throws Exception { + mHelper.addCustomFilter(String.format("||%s^$csp=script-src https://%s/lib/utils.js", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "csp_specific"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "img[id='specific-site-fail-1']", IncludeSubframes.NO); ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "csp_specific"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 0, "img[id='specific-site-fail-1']", ++ TestVerificationUtils.IncludeSubframes.NO); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testCspSpecificSiteFrameSrc() throws TimeoutException, InterruptedException { ++ public void testCspSpecificSiteFrameSrc() throws Exception { + mHelper.addCustomFilter( -+ String.format("||%s^$csp=frame-src 'self'", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "csp_specific"); ++ String.format("||%s^$csp=frame-src 'self'", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "csp_specific"); + TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div[id='sub-frame-error']", IncludeSubframes.NO); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div[id='sub-frame-error-details']", IncludeSubframes.NO); ++ mHelper, 0, "div[id='sub-frame-error']", TestVerificationUtils.IncludeSubframes.NO); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 0, "div[id='sub-frame-error-details']", ++ TestVerificationUtils.IncludeSubframes.NO); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testCspException() throws TimeoutException, InterruptedException { ++ public void testCspException() throws Exception { + // Blocking filter: + mHelper.addCustomFilter(String.format("||%s^$csp=script-src https://%s/lib/utils.js", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); + // Resource loaded by JS was blocked -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp"); ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp"); + TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div[id='unblock-javascript'] > img"); ++ mHelper, 0, "div[id='unblock-javascript'] > img"); ++ ++ // Allowing filter: ++ mHelper.addCustomFilter(String.format("@@||%s^$csp", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ // Resource loaded by JS was allowed ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div[id='unblock-javascript'] > img"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testCspGenericBlockException() throws Exception { ++ // Blocking filter: ++ mHelper.addCustomFilter(String.format("||%s^$csp=script-src https://%s/lib/utils.js", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ // Resource loaded by JS was blocked ++ mHelper.loadUrl( ++ TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp_genericblock"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div[id='genericblock-javascript'] > img"); + + // Allowing filter: + mHelper.addCustomFilter( -+ String.format("@@||%s^$csp", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ // Resource loaded by JS was allowed -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div[id='unblock-javascript'] > img"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testCspGenericBlockException() throws TimeoutException, InterruptedException { -+ // Blocking filter: -+ mHelper.addCustomFilter(String.format("||%s^$csp=script-src https://%s/lib/utils.js", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ // Resource loaded by JS was blocked -+ mHelper.loadUrl( -+ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp_genericblock"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div[id='genericblock-javascript'] > img"); -+ -+ // Allowing filter: -+ mHelper.addCustomFilter( -+ String.format("@@||%s^$genericblock", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ String.format("@@||%s^$genericblock", TestPagesHelperBase.TESTPAGES_DOMAIN)); + // Resource loaded by JS was allowed + mHelper.loadUrl( -+ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp_genericblock"); ++ TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "csp_genericblock"); + TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div[id='genericblock-javascript'] > img"); ++ mHelper, 1, "div[id='genericblock-javascript'] > img"); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTestBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTest.java -@@ -0,0 +1,158 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuInvTestBase.java +@@ -0,0 +1,135 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3600,148 +2835,125 @@ new file mode 100644 + +import androidx.test.filters.LargeTest; + -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + -+import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+ -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesElemhideEmuInvTest { -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); + ++public abstract class TestPagesElemhideEmuInvTestBase { + public static final String ELEMENT_HIDING_EMULATION_TESTPAGES_URL = -+ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT ++ TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + + "element-hiding-emulation-inversion"; ++ private TestPagesHelperBase mHelper; + -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotAbpProperties() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuNotAbpProperties() throws Exception { + mHelper.addCustomFilter( + String.format("%s#?#.ehei-properties:not(:-abp-properties(width: 238px))", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='basic-not-abp-properties-usage-fail']"); ++ mHelper, 1, "div[id='basic-not-abp-properties-usage-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotAbpHas() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuNotAbpHas() throws Exception { + mHelper.addCustomFilter( + String.format("%s#?#.ehei-has:not(:-abp-has(span.ehei-has-not-hide))", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='basic-not-abp-has-usage-fail']"); ++ mHelper, 1, "div[id='basic-not-abp-has-usage-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotAbpContains() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuNotAbpContains() throws Exception { + mHelper.addCustomFilter( + String.format("%s#?#.ehei-contains:not(span:-abp-contains(example-content))", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "span[id='basic-not-abp-contains-usage-fail']"); ++ mHelper, 1, "span[id='basic-not-abp-contains-usage-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotChained() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuNotChained() throws Exception { + mHelper.addCustomFilter(String.format( + "%s#?#.ehei-chained-parent:not(:-abp-has(> div:-abp-properties(width: 198px)))", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, -+ "div[id='chained-extended-selectors-with-not-selector-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div[id='chained-extended-selectors-with-not-selector-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotCaseIsensitive() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuNotCaseIsensitive() throws Exception { + mHelper.addCustomFilter(String.format("%s#?#.ehei-case:not(:-abp-properties(WiDtH: 209px))", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, -+ "div[id='case-insensitive-extended-selectors-with-not-selector-fail']"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div[id='case-insensitive-extended-selectors-with-not-selector-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotWildcard() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuNotWildcard() throws Exception { + mHelper.addCustomFilter(String.format("%s#?#.ehei-wildcard:not(:-abp-properties(cursor:*))", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, + "div[id='wildcard-in-extended-selector-combined-with-not-selector-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotRegexAbpProperties() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideEmuNotRegexAbpProperties() throws Exception { + mHelper.addCustomFilter( + String.format("%s#?#.ehei-regex:not(:-abp-properties(/width: 11[1-5]px;/))", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='regular-expression-in-not-abp-properties-fail-1']"); ++ mHelper, 1, "div[id='regular-expression-in-not-abp-properties-fail-1']"); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='regular-expression-in-not-abp-properties-fail-2']"); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, ".ehei-regex3"); ++ mHelper, 1, "div[id='regular-expression-in-not-abp-properties-fail-2']"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 1, ".ehei-regex3"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuNotRegexAbpContains() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuNotRegexAbpContains() throws Exception { + mHelper.addCustomFilter(String.format( + "%s#?#.ehei-contains-regex:not(span:-abp-contains(/example-contentregex\\d/))", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "span[id='regular-expression-in-not-abp-contains-fail-1']"); ++ mHelper, 1, "span[id='regular-expression-in-not-abp-contains-fail-1']"); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "span[id='regular-expression-in-not-abp-contains-fail-2']"); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 2, ".ehei-contains-regex"); ++ mHelper, 1, "span[id='regular-expression-in-not-abp-contains-fail-2']"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 2, ".ehei-contains-regex"); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTestBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTest.java -@@ -0,0 +1,217 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideEmuTestBase.java +@@ -0,0 +1,183 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3763,207 +2975,173 @@ new file mode 100644 + +import androidx.test.filters.LargeTest; + -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + -+import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+ -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesElemhideEmuTest { -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); + ++public abstract class TestPagesElemhideEmuTestBase { + public static final String ELEMENT_HIDING_EMULATION_TESTPAGES_URL = -+ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "element-hiding-emulation"; ++ TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "element-hiding-emulation"; + public static final String ELEMENT_HIDING_EMULATION_EXCEPTIONS_TESTPAGES_URL = -+ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "element-hiding"; ++ TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "element-hiding"; ++ private TestPagesHelperBase mHelper; + -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersBasicAbpProperties() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersBasicAbpProperties() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s#?#div:-abp-properties(width: 213px)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s#?#div:-abp-properties(width: 213px)", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='basic-abp-properties-usage-fail-1']"); ++ mHelper, 1, "div[id='basic-abp-properties-usage-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersBasicAbpHas() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersBasicAbpHas() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s#?#div:-abp-has(>div>span.ehe-abp-has)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s#?#div:-abp-has(>div>span.ehe-abp-has)", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='basic-abp-has-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[id='basic-abp-has-usage-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersBasicHas() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersBasicHas() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s#?#div:has(>div>span.ehe-has)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s#?#div:has(>div>span.ehe-has)", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + // "Basic :has() usage" are duplicated on testpage. -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 2, "div[id='basic-has-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 2, "div[id='basic-has-usage-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersBasicAbpContains() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersBasicAbpContains() throws Exception { + mHelper.addCustomFilter(String.format("%s#?#span:-abp-contains(ehe-contains-target)", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "span[id='basic-abp-contains-usage-fail-1']"); ++ mHelper, 1, "span[id='basic-abp-contains-usage-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersBasicXpath() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersBasicXpath() throws Exception { + mHelper.addCustomFilter( + String.format("%s#?#span:xpath(//*[@id=\"basic-xpath-usage-fail\"])", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "span[id='basic-xpath-usage-fail']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "span[id='basic-xpath-usage-fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersBasicHasText() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersBasicHasText() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s#?#span:has-text(ehe-has-text)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s#?#span:has-text(ehe-has-text)", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "span[id='basic-has-text-usage-fail-1']"); ++ mHelper, 1, "span[id='basic-has-text-usage-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersChainedExtendedSelectors() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersChainedExtendedSelectors() throws Exception { + mHelper.addCustomFilter( + String.format("%s#?#div:-abp-has(> div:-abp-properties(width: 214px))", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='chained-extended-selectors-fail-1']"); ++ mHelper, 1, "div[id='chained-extended-selectors-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersCaseInsensitiveExtendedSelectors() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersCaseInsensitiveExtendedSelectors() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s#?#div:-abp-properties(WiDtH: 215px)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s#?#div:-abp-properties(WiDtH: 215px)", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='case-insensitive-extended-selectors-fail-1']"); ++ mHelper, 1, "div[id='case-insensitive-extended-selectors-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersWildcardInExtendedSelector() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersWildcardInExtendedSelector() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s#?#div:-abp-properties(cursor:*)", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s#?#div:-abp-properties(cursor:*)", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='wildcard-in-extended-selector-fail-1']"); ++ mHelper, 1, "div[id='wildcard-in-extended-selector-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersRegularExpressionInAbpProperties() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersRegularExpressionInAbpProperties() throws Exception { + mHelper.addCustomFilter(String.format("%s#?#div:-abp-properties(/width: 12[1-5]px;/)", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='regular-expression-in-abp-properties-fail-1']"); ++ mHelper, 1, "div[id='regular-expression-in-abp-properties-fail-1']"); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='regular-expression-in-abp-properties-fail-2']"); ++ mHelper, 1, "div[id='regular-expression-in-abp-properties-fail-2']"); + // "Not a target" div is not hidden, does not match regular expression. + TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div[class='testcase-examplecontent ehe-regex3']"); ++ mHelper, 1, "div[class='testcase-examplecontent ehe-regex3']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersRegularExpressionInAbpContains() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersRegularExpressionInAbpContains() throws Exception { + mHelper.addCustomFilter( + String.format("%s#?#div > div:-abp-contains(/ehe-containsregex\\d/)", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='regular-expression-in-abp-contains-fail-1']"); ++ mHelper, 1, "div[id='regular-expression-in-abp-contains-fail-1']"); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='regular-expression-in-abp-contains-fail-2']"); ++ mHelper, 1, "div[id='regular-expression-in-abp-contains-fail-2']"); + } + + // Exceptions: + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideEmuFiltersException() throws TimeoutException, InterruptedException { ++ public void testElemHideEmuFiltersException() throws Exception { + // Add a blocking filter, verify element hidden. + mHelper.addCustomFilter( -+ String.format("%s##.testcase-ehe", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ String.format("%s##.testcase-ehe", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_EXCEPTIONS_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='exception-usage-pass-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[id='exception-usage-pass-1']"); + + // Add exception filter, verify element no longer hidden. + mHelper.addCustomFilter( -+ String.format("%s#@#.testcase-ehe", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ String.format("%s#@#.testcase-ehe", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EMULATION_EXCEPTIONS_TESTPAGES_URL); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div[id='exception-usage-pass-1']"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 1, "div[id='exception-usage-pass-1']"); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTestBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTest.java -@@ -0,0 +1,237 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesElemhideTestBase.java +@@ -0,0 +1,204 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3985,227 +3163,194 @@ new file mode 100644 + +import androidx.test.filters.LargeTest; + -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + -+import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+ -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesElemhideTest { -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); + ++public abstract class TestPagesElemhideTestBase { + public static final String ELEMENT_HIDING_TESTPAGES_URL = -+ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "element-hiding"; ++ TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "element-hiding"; + public static final String ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL = -+ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "elemhide"; ++ TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "elemhide"; ++ private TestPagesHelperBase mHelper; + -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersIdSelector() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s###eh-id", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ public void testElemHideFiltersIdSelector() throws Exception { ++ mHelper.addCustomFilter(String.format("%s###eh-id", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[id='eh-id']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[id='eh-id']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersIdSelectorDoubleCurlyBraces() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersIdSelectorDoubleCurlyBraces() throws Exception { + mHelper.addCustomFilter( -+ String.format("%s##div[id='{{eh-id}}']", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ String.format("%s##div[id='{{eh-id}}']", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[id='{{eh-id}}']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[id='{{eh-id}}']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersClassSelector() throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersClassSelector() throws Exception { + mHelper.addCustomFilter( -+ String.format("%s##.eh-class", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ String.format("%s##.eh-class", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[class='eh-class']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[class='eh-class']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersDescendantSelector() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersDescendantSelector() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s##.testcase-area > .eh-descendant", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s##.testcase-area > .eh-descendant", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[class='eh-descendant']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[class='eh-descendant']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersSiblingSelector() throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersSiblingSelector() throws Exception { + mHelper.addCustomFilter(String.format("%s##.testcase-examplecontent + .eh-sibling", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[class='eh-sibling']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[class='eh-sibling']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersAttributeSelector1() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersAttributeSelector1() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s##div[height=\"100\"][width=\"100\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s##div[height=\"100\"][width=\"100\"]", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='attribute-selector-1-fail-1']"); ++ mHelper, 1, "div[id='attribute-selector-1-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersAttributeSelector2() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersAttributeSelector2() throws Exception { + mHelper.addCustomFilter(String.format("%s##div[href=\"http://testcase-attribute.com/\"]", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='attribute-selector-2-fail-1']"); ++ mHelper, 1, "div[id='attribute-selector-2-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersAttributeSelector3() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersAttributeSelector3() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s##div[style=\"width: 200px;\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s##div[style=\"width: 200px;\"]", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='attribute-selector-3-fail-1']"); ++ mHelper, 1, "div[id='attribute-selector-3-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersStartsWithSelector1() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersStartsWithSelector1() throws Exception { + mHelper.addCustomFilter(String.format("%s##div[href^=\"http://testcase-startswith.com/\"]", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='starts-with-selector-1-fail-1']"); ++ mHelper, 1, "div[id='starts-with-selector-1-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersStartsWithSelector2() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersStartsWithSelector2() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s##div[style^=\"width: 201px;\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s##div[style^=\"width: 201px;\"]", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='starts-with-selector-2-fail-1']"); ++ mHelper, 1, "div[id='starts-with-selector-2-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersEndsWithSelector1() -+ throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersEndsWithSelector1() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s##div[style$=\"width: 202px;\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s##div[style$=\"width: 202px;\"]", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); + TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='ends-with-selector-1-fail-1']"); ++ mHelper, 1, "div[id='ends-with-selector-1-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersContains() throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersContains() throws Exception { + mHelper.addCustomFilter(String.format( -+ "%s##div[style*=\"width: 203px;\"]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "%s##div[style*=\"width: 203px;\"]", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[id='contains-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[id='contains-fail-1']"); + } + + // Exceptions: + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersBasicException() throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersBasicException() throws Exception { + mHelper.addCustomFilter( -+ String.format("%s##.ex-elemhide", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ String.format("%s##.ex-elemhide", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/elemhide/basic/*", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "||%s/testfiles/elemhide/basic/*", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL); + // No exceptions added yet, both objects should be blocked. -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "img[id='basic-usage-fail-1']"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[id='basic-usage-pass-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "img[id='basic-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[id='basic-usage-pass-1']"); + // Add exception filter and reload. + mHelper.addCustomFilter(String.format( -+ "@@%s/en/exceptions/elemhide$elemhide", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "@@%s/en/exceptions/elemhide$elemhide", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL); + // Image should remain blocked, div should be unblocked. -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "img[id='basic-usage-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "img[id='basic-usage-fail-1']"); + TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div[id='basic-usage-area'] > div[id='basic-usage-pass-1']"); ++ mHelper, 1, "div[id='basic-usage-area'] > div[id='basic-usage-pass-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testElemHideFiltersIframeException() throws TimeoutException, InterruptedException { ++ public void testElemHideFiltersIframeException() throws Exception { + mHelper.addCustomFilter( -+ String.format("%s##.targ-elemhide", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ String.format("%s##.targ-elemhide", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/elemhide/iframe/*.png", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "||%s/testfiles/elemhide/iframe/*.png", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "img[id='iframe-fail-1']"); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div[id='iframe-pass-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "img[id='iframe-fail-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[id='iframe-pass-1']"); + + // Add exception filter and reload. + mHelper.addCustomFilter(String.format( -+ "@@%s/en/exceptions/elemhide$elemhide", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "@@%s/en/exceptions/elemhide$elemhide", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(ELEMENT_HIDING_EXCEPTIONS_TESTPAGES_URL); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "img[id='iframe-fail-1']"); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, "div[id='iframe-pass-1']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "img[id='iframe-fail-1']"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 1, "div[id='iframe-pass-1']"); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTestBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTest.java -@@ -0,0 +1,244 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesExceptionTestBase.java +@@ -0,0 +1,174 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -4227,67 +3372,40 @@ new file mode 100644 + +import androidx.test.filters.LargeTest; + -+import org.junit.After; +import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + -+import org.chromium.base.task.PostTask; -+import org.chromium.base.task.TaskTraits; -+import org.chromium.base.test.util.CallbackHelper; -+import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.content_public.browser.test.util.DOMUtils; ++import org.chromium.components.adblock.AdblockContentType; +import org.chromium.content_public.browser.test.util.JavaScriptUtils; -+import org.chromium.content_public.common.ContentSwitches; + -+import java.lang.Thread; -+import java.util.Arrays; +import java.util.HashSet; ++import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; -+import java.util.concurrent.TimeoutException; + -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesExceptionTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); ++public abstract class TestPagesExceptionTestBase { ++ private TestPagesHelperBase mHelper; + -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ mHelper.addFilterList(TestPagesTestsHelper.TESTPAGES_SUBSCRIPTION); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; ++ mHelper.addFilterList(TestPagesHelperBase.TESTPAGES_SUBSCRIPTION); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyImageExceptions() throws TimeoutException, InterruptedException { ++ public void testVerifyImageExceptions() throws Exception { + final String subdomainImage = String.format( + "https://allowed.subdomain.%s/testfiles/image_exception/subdomain.png", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN); -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "image"); ++ TestPagesHelperBase.TESTPAGES_DOMAIN); ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "image"); + Assert.assertEquals(2, mHelper.numAllowed()); + Assert.assertEquals(2, mHelper.numAllowedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); + Assert.assertTrue(mHelper.isAllowed(subdomainImage)); + Assert.assertTrue(mHelper.isAllowed( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "image_exception/image.png")); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 2, "img"); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "image_exception/image.png")); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 2, "img"); + String numImages = JavaScriptUtils.executeJavaScriptAndWaitForResult( + mHelper.getWebContents(), "document.getElementsByTagName(\"img\").length;"); + Assert.assertEquals("2", numImages); @@ -4296,100 +3414,62 @@ new file mode 100644 + @Test + @LargeTest + @Feature({"adblock"}) -+ @CommandLineFlags.Add(ContentSwitches.DISABLE_POPUP_BLOCKING) -+ public void testVerifyPopupException() throws TimeoutException, InterruptedException { -+ final String POPUP_TESTACE_URL = -+ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "popup"; -+ mHelper.loadUrl(POPUP_TESTACE_URL); -+ Assert.assertEquals(1, mHelper.getTabCount()); -+ final CallbackHelper tabsLoadedWaiter = mHelper.getTabsOpenedAndLoadedWaiter(); -+ PostTask.postTask(TaskTraits.BEST_EFFORT_MAY_BLOCK, () -> { -+ try { -+ String numElements = JavaScriptUtils.executeJavaScriptAndWaitForResult( -+ mHelper.getWebContents(), -+ "var elements = document.getElementsByClassName(\"testcase-trigger\");" -+ + "for (let i = 0; i < elements.length; ++i) {" -+ + " elements[i].click();" -+ + "}" -+ + "elements.length;"); -+ Assert.assertEquals("3", numElements); -+ } catch (TimeoutException e) { -+ Assert.assertEquals("Popups were triggered", "Popups were NOT triggered"); -+ } -+ }); -+ // Wait for three tab loaded events -+ tabsLoadedWaiter.waitForCallback( -+ 0, 3, TestPagesTestsHelper.TEST_TIMEOUT_SEC, TimeUnit.SECONDS); -+ Assert.assertEquals(4, mHelper.getTabCount()); -+ Assert.assertEquals(3, mHelper.numAllowedPopups()); -+ Assert.assertTrue(mHelper.isPopupAllowed( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup_exception/link.html")); -+ Assert.assertTrue(mHelper.isPopupAllowed(TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT -+ + "popup_exception/script-window.html")); -+ Assert.assertTrue(mHelper.isPopupAllowed( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup_exception/script-tab.html")); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testVerifySubdocumentException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "subdocument"); ++ public void testVerifySubdocumentException() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "subdocument"); + Assert.assertEquals(1, mHelper.numAllowed()); -+ Assert.assertTrue(mHelper.isAllowed(TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ Assert.assertTrue(mHelper.isAllowed(TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + + "subdocument_exception/subdocument.html")); -+ TestVerificationUtils.verifyGreenBackground(mActivityTestRule, "exception-target"); ++ TestVerificationUtils.verifyGreenBackground(mHelper, "exception-target"); + String numFrames = JavaScriptUtils.executeJavaScriptAndWaitForResult( + mHelper.getWebContents(), "window.frames.length;"); + Assert.assertEquals("1", numFrames); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, "iframe"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 1, "iframe"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyScriptException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "script"); ++ public void testVerifyScriptException() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "script"); + Assert.assertEquals(1, mHelper.numAllowed()); + Assert.assertTrue(mHelper.isAllowed( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "script_exception/script.js")); -+ TestVerificationUtils.verifyGreenBackground(mActivityTestRule, "script-target"); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "script_exception/script.js")); ++ TestVerificationUtils.verifyGreenBackground(mHelper, "script-target"); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "script_exception/image.png")); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "img[data-expectedresult='fail']"); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "script_exception/image.png")); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyStylesheetException() throws TimeoutException, InterruptedException { -+ final String allowedUrl = TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT -+ + "stylesheet_exception/stylesheet.cs"; -+ final CountDownLatch countDownLatch = -+ mHelper.setOnAdMatchedExpectations(null, new HashSet<>(Arrays.asList(allowedUrl))); -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "stylesheet"); -+ // Wait with 10 seconds max timeout -+ countDownLatch.await(10, TimeUnit.SECONDS); -+ Assert.assertEquals(1, mHelper.numAllowed()); -+ Assert.assertTrue(mHelper.isAllowed(allowedUrl)); -+ Assert.assertEquals(1, mHelper.numBlocked()); -+ Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "stylesheet_exception/image.png")); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "img"); -+ TestVerificationUtils.verifyGreenBackground(mActivityTestRule, "exception-target"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testVerifyXHRException() throws TimeoutException, InterruptedException { ++ public void testVerifyStylesheetException() throws Exception { + final String allowedUrl = -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "xmlhttprequest_exception/text.txt"; ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "stylesheet_exception/stylesheet.cs"; + final CountDownLatch countDownLatch = -+ mHelper.setOnAdMatchedExpectations(null, new HashSet<>(Arrays.asList(allowedUrl))); -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "xmlhttprequest"); ++ mHelper.setOnAdMatchedExpectations(null, new HashSet<>(List.of(allowedUrl))); ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "stylesheet"); ++ // Wait with 10 seconds max timeout ++ countDownLatch.await(10, TimeUnit.SECONDS); ++ Assert.assertEquals(1, mHelper.numAllowed()); ++ Assert.assertTrue(mHelper.isAllowed(allowedUrl)); ++ Assert.assertEquals(1, mHelper.numBlocked()); ++ Assert.assertTrue(mHelper.isBlocked( ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "stylesheet_exception/image.png")); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "img"); ++ TestVerificationUtils.verifyGreenBackground(mHelper, "exception-target"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testVerifyXHRException() throws Exception { ++ final String allowedUrl = ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "xmlhttprequest_exception/text.txt"; ++ final CountDownLatch countDownLatch = ++ mHelper.setOnAdMatchedExpectations(null, new HashSet<>(List.of(allowedUrl))); ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "xmlhttprequest"); + // Wait with 10 seconds max timeout + countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numAllowed()); @@ -4399,62 +3479,57 @@ new file mode 100644 + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyGenericBlockException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "genericblock"); ++ public void testVerifyGenericBlockException() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "genericblock"); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "genericblock/specific.png")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "genericblock/specific.png")); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "img[data-expectedresult='pass']"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "img[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 1, "img[data-expectedresult='pass']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyGenericHideException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "generichide"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div[data-expectedresult='pass']"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[data-expectedresult='fail']"); ++ public void testVerifyGenericHideException() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "generichide"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 1, "div[data-expectedresult='pass']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyDocumentException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "document"); ++ public void testVerifyDocumentException() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "document"); + Assert.assertTrue(mHelper.isAllowed( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "document/image.png")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "document/image.png")); + Assert.assertTrue(mHelper.isPageAllowed( -+ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "document")); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div[data-expectedresult='pass']"); ++ TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "document")); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 1, "div[data-expectedresult='pass']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyWebSocketException() throws TimeoutException, InterruptedException { ++ public void testVerifyWebSocketException() throws Exception { + final String wssUrl = -+ String.format("wss://%s/websocket", TestPagesTestsHelper.TESTPAGES_DOMAIN); ++ String.format("wss://%s/websocket", TestPagesHelperBase.TESTPAGES_DOMAIN); + final CountDownLatch countDownLatch = -+ mHelper.setOnAdMatchedExpectations(null, new HashSet<>(Arrays.asList(wssUrl))); -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "websocket"); ++ mHelper.setOnAdMatchedExpectations(null, new HashSet<>(List.of(wssUrl))); ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "websocket"); + // Wait with 10 seconds max timeout + countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numAllowedByType(AdblockContentType.CONTENT_TYPE_WEBSOCKET)); + Assert.assertTrue(mHelper.isAllowed(wssUrl)); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTestBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTest.java -@@ -0,0 +1,329 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesFilterTestBase.java +@@ -0,0 +1,254 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -4476,90 +3551,62 @@ new file mode 100644 + +import androidx.test.filters.LargeTest; + -+import org.junit.After; +import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + -+import org.chromium.base.task.PostTask; -+import org.chromium.base.task.TaskTraits; -+import org.chromium.base.test.util.CallbackHelper; -+import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.DisabledTest; +import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.browser.tab.Tab; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.components.adblock.TestVerificationUtils.IncludeSubframes; ++import org.chromium.components.adblock.AdblockContentType; +import org.chromium.content_public.browser.test.util.DOMUtils; +import org.chromium.content_public.browser.test.util.JavaScriptUtils; -+import org.chromium.content_public.common.ContentSwitches; + -+import java.lang.Thread; +import java.util.Arrays; +import java.util.HashSet; ++import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; -+import java.util.concurrent.TimeoutException; + -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesFilterTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); ++public abstract class TestPagesFilterTestBase { ++ private TestPagesHelperBase mHelper; + -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ mHelper.addFilterList(TestPagesTestsHelper.TESTPAGES_SUBSCRIPTION); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; ++ mHelper.addFilterList(TestPagesHelperBase.TESTPAGES_SUBSCRIPTION); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testBlockingFilters() throws TimeoutException, InterruptedException { ++ public void testBlockingFilters() throws Exception { + final CountDownLatch countDownLatch = mHelper.setOnAdMatchedExpectations( + new HashSet<>(Arrays.asList( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "blocking/full-path.png", -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "blocking/full-path.png", ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + + "blocking/partial-path/partial-path.png", -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + + "blocking/wildcard/1/wildcard.png", -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + + "blocking/wildcard/2/wildcard.png", -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "blocking/dynamic.png", -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "blocking/subdomain.png")), ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "blocking/dynamic.png", ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "blocking/subdomain.png")), + null); -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "blocking"); ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "blocking"); + // Wait with 10 seconds max timeout + countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(6, mHelper.numBlocked()); + Assert.assertEquals(6, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 6, "img[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 6, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyScriptFilters() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "script"); ++ public void testVerifyScriptFilters() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "script"); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_SCRIPT)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "script/script.js")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "script/script.js")); + + String childCount = + JavaScriptUtils.executeJavaScriptAndWaitForResult(mHelper.getWebContents(), @@ -4570,34 +3617,33 @@ new file mode 100644 + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyImageFilters() throws TimeoutException, InterruptedException { ++ public void testVerifyImageFilters() throws Exception { + final CountDownLatch countDownLatch = mHelper.setOnAdMatchedExpectations( + new HashSet<>(Arrays.asList( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "image/static/static.png", -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "image/static/static.png", ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + + "image/dynamic/dynamic.png")), + null); -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "image"); ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "image"); + countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(2, mHelper.numBlocked()); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "image/static/static.png")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "image/static/static.png")); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "image/dynamic/dynamic.png")); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 2, "img[data-expectedresult='fail']"); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "image/dynamic/dynamic.png")); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 2, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyStylesheetFilters() throws TimeoutException, InterruptedException { ++ public void testVerifyStylesheetFilters() throws Exception { + final String blockedUrl = -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "stylesheet/stylesheet.cs"; ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "stylesheet/stylesheet.cs"; + final CountDownLatch countDownLatch = -+ mHelper.setOnAdMatchedExpectations(new HashSet<>(Arrays.asList(blockedUrl)), null); -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "stylesheet"); ++ mHelper.setOnAdMatchedExpectations(new HashSet<>(List.of(blockedUrl)), null); ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "stylesheet"); + // Wait with 10 seconds max timeout + countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numBlocked()); @@ -4611,50 +3657,12 @@ new file mode 100644 + @Test + @LargeTest + @Feature({"adblock"}) -+ @CommandLineFlags.Add(ContentSwitches.DISABLE_POPUP_BLOCKING) -+ public void testVerifyPopupFilters() throws TimeoutException, InterruptedException { -+ final String POPUP_TESTACE_URL = -+ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "popup"; -+ mHelper.loadUrl(POPUP_TESTACE_URL); -+ Assert.assertEquals(1, mHelper.getTabCount()); -+ final CallbackHelper tabsOpenedAndClosedWaiter = mHelper.getTabsOpenedAndClosedWaiter(); -+ // Trigger popups which open and close when blocked -+ PostTask.postTask(TaskTraits.BEST_EFFORT_MAY_BLOCK, () -> { -+ try { -+ String numElements = JavaScriptUtils.executeJavaScriptAndWaitForResult( -+ mHelper.getWebContents(), -+ "var elements = document.getElementsByClassName(\"testcase-trigger\");" -+ + "for (let i = 0; i < elements.length; ++i) {" -+ + " elements[i].click();" -+ + "}" -+ + "elements.length;"); -+ Assert.assertEquals("3", numElements); -+ } catch (TimeoutException e) { -+ Assert.assertEquals("Popups were triggered", "Popups were NOT triggered"); -+ } -+ }); -+ // Wait for three tab open events and three close tabs events -+ tabsOpenedAndClosedWaiter.waitForCallback( -+ 0, 6, TestPagesTestsHelper.TEST_TIMEOUT_SEC, TimeUnit.SECONDS); -+ Assert.assertEquals(3, mHelper.numBlockedPopups()); -+ Assert.assertTrue(mHelper.isPopupBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup/link.html")); -+ Assert.assertTrue(mHelper.isPopupBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup/script-window.html")); -+ Assert.assertTrue(mHelper.isPopupBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "popup/script-tab.html")); -+ Assert.assertEquals(1, mHelper.getTabCount()); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testVerifyXHRFilters() throws TimeoutException, InterruptedException { ++ public void testVerifyXHRFilters() throws Exception { + final String blockedUrl = -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "xmlhttprequest/text.txt"; ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "xmlhttprequest/text.txt"; + final CountDownLatch countDownLatch = -+ mHelper.setOnAdMatchedExpectations(new HashSet<>(Arrays.asList(blockedUrl)), null); -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "xmlhttprequest"); ++ mHelper.setOnAdMatchedExpectations(new HashSet<>(List.of(blockedUrl)), null); ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "xmlhttprequest"); + // Wait with 10 seconds max timeout + countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numBlocked()); @@ -4666,99 +3674,93 @@ new file mode 100644 + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifySubdocumentFilters() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "subdocument"); ++ public void testVerifySubdocumentFilters() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "subdocument"); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals( + 1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_SUBDOCUMENT)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "subdocument/subdocument.html")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "subdocument/subdocument.html")); + // Do not search for iframe within the site's iframes. -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "iframe[data-expectedresult='fail']", IncludeSubframes.NO); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "iframe[data-expectedresult='fail']", ++ TestVerificationUtils.IncludeSubframes.NO); + } + + @Test + @LargeTest + @Feature({"adblock"}) + @DisabledTest(message = "Please enable again when rewrite filters will be supported") -+ public void testVerifyRewrite() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "rewrite"); ++ public void testVerifyRewrite() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "rewrite"); + Assert.assertEquals(3, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_SCRIPT)); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_MEDIA)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "rewrite/audio.mp3")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "rewrite/audio.mp3")); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "rewrite/video.mp4")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "rewrite/video.mp4")); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "rewrite/script.js")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "rewrite/script.js")); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyMatchCaseFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "match-case"); ++ public void testVerifyMatchCaseFilter() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "match-case"); + Assert.assertEquals(2, mHelper.numBlocked()); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 2, "img[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 2, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyThirdPartyFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "third-party"); ++ public void testVerifyThirdPartyFilter() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "third-party"); + Assert.assertEquals(2, mHelper.numBlocked()); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 2, "img[data-expectedresult='fail']"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 2, "img[data-expectedresult='pass']"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 2, "img[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 2, "img[data-expectedresult='pass']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyOtherFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "other"); ++ public void testVerifyOtherFilter() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "other"); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_OTHER)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "other/image.png")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "other/image.png")); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyDomainFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "domain"); ++ public void testVerifyDomainFilter() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "domain"); + Assert.assertEquals(2, mHelper.numBlocked()); + Assert.assertEquals(2, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "domain/static/target/image.png")); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "domain/static/target/image.png")); + Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "domain/dynamic/image.png")); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 2, "img[data-expectedresult='fail']"); ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "domain/dynamic/image.png")); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 2, "img[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyPingFilter() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "ping"); ++ public void testVerifyPingFilter() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "ping"); + // Ping action not yet triggered + Assert.assertEquals(0, mHelper.numBlocked()); + final CountDownLatch countDownLatch = new CountDownLatch(1); + mHelper.setOnAdMatchedLatch(countDownLatch); + // Trigger ping action -+ final Tab tab = -+ mActivityTestRule.getActivity().getTabModelSelectorSupplier().get().getCurrentTab(); -+ JavaScriptUtils.executeJavaScriptAndWaitForResult( -+ tab.getWebContents(), "document.getElementById(\"script-ping-trigger\").click()"); ++ JavaScriptUtils.executeJavaScriptAndWaitForResult(mHelper.getWebContents(), ++ "document.getElementById(\"script-ping-trigger\").click()"); + // Wait with 10 seconds max timeout + countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numBlocked()); @@ -4767,16 +3769,14 @@ new file mode 100644 + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyPingFilterException() throws TimeoutException, InterruptedException { -+ mHelper.loadUrl(TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "ping"); ++ public void testVerifyPingFilterException() throws Exception { ++ mHelper.loadUrl(TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "ping"); + // Ping action not yet triggered + Assert.assertEquals(0, mHelper.numAllowed()); + final CountDownLatch countDownLatch = new CountDownLatch(1); + mHelper.setOnAdMatchedLatch(countDownLatch); + // Trigger ping action -+ final Tab tab = -+ mActivityTestRule.getActivity().getTabModelSelectorSupplier().get().getCurrentTab(); -+ JavaScriptUtils.executeJavaScriptAndWaitForResult(tab.getWebContents(), ++ JavaScriptUtils.executeJavaScriptAndWaitForResult(mHelper.getWebContents(), + "document.getElementsByClassName(\"testcase-trigger\")[0].click()"); + // Wait with 10 seconds max timeout + countDownLatch.await(10, TimeUnit.SECONDS); @@ -4784,11 +3784,11 @@ new file mode 100644 + Assert.assertEquals(0, mHelper.numBlocked()); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTestBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTest.java -@@ -0,0 +1,150 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHeaderFilterTestBase.java +@@ -0,0 +1,125 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -4810,967 +3810,115 @@ new file mode 100644 + +import androidx.test.filters.LargeTest; + -+import org.junit.After; +import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.DisabledTest; +import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.components.adblock.TestVerificationUtils.IncludeSubframes; -+ -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesHeaderFilterTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); ++import org.chromium.components.adblock.AdblockContentType; + ++public abstract class TestPagesHeaderFilterTestBase { + public static final String HEADER_TESTPAGES_URL = -+ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "header"; ++ TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "header"; + public static final String HEADER_EXCEPTIONS_TESTPAGES_URL = -+ TestPagesTestsHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "header"; ++ TestPagesHelperBase.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "header"; ++ private TestPagesHelperBase mHelper; + -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testHeaderFilterScript() throws TimeoutException, InterruptedException { ++ public void testHeaderFilterScript() throws Exception { + mHelper.addCustomFilter( + String.format("||%s/testfiles/header/$header=content-type=application/javascript", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(HEADER_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_SCRIPT)); + Assert.assertTrue(mHelper.isBlocked(String.format( -+ "https://%s/testfiles/header/script.js", TestPagesTestsHelper.TESTPAGES_DOMAIN))); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, -+ "div#functionproperty-target > div[data-expectedresult='fail']"); ++ "https://%s/testfiles/header/script.js", TestPagesHelperBase.TESTPAGES_DOMAIN))); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#functionproperty-target > div[data-expectedresult='fail']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testHeaderFilterImage() throws TimeoutException, InterruptedException { ++ public void testHeaderFilterImage() throws Exception { + mHelper.addCustomFilter( + String.format("||%s/testfiles/header/image.png$header=content-type=image/png", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(HEADER_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); + Assert.assertTrue(mHelper.isBlocked(String.format( -+ "https://%s/testfiles/header/image.png", TestPagesTestsHelper.TESTPAGES_DOMAIN))); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, "img[id='image-fail-1']"); ++ "https://%s/testfiles/header/image.png", TestPagesHelperBase.TESTPAGES_DOMAIN))); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 0, "img[id='image-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testHeaderFilterImageAndComma() throws TimeoutException, InterruptedException { ++ public void testHeaderFilterImageAndComma() throws Exception { + mHelper.addCustomFilter(String.format("||%s/testfiles/header/image2.png$header=date=\\x2c", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(HEADER_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); + Assert.assertTrue(mHelper.isBlocked(String.format( -+ "https://%s/testfiles/header/image2.png", TestPagesTestsHelper.TESTPAGES_DOMAIN))); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, "img[id='comma-fail-1']"); ++ "https://%s/testfiles/header/image2.png", TestPagesHelperBase.TESTPAGES_DOMAIN))); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 0, "img[id='comma-fail-1']"); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testHeaderFilterStylesheet() throws TimeoutException, InterruptedException { ++ public void testHeaderFilterStylesheet() throws Exception { + mHelper.addCustomFilter(String.format("||%s/testfiles/header/$header=content-type=text/css", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(HEADER_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals( + 1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_STYLESHEET)); + Assert.assertTrue( + mHelper.isBlocked(String.format("https://%s/testfiles/header/stylesheet.css", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN))); ++ TestPagesHelperBase.TESTPAGES_DOMAIN))); + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testHeaderFilterException() throws TimeoutException, InterruptedException { ++ public void testHeaderFilterException() throws Exception { + // Add blocking filter, expect blocked image + mHelper.addCustomFilter( + String.format("||%s/testfiles/header_exception/$header=content-type=image/png", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(HEADER_EXCEPTIONS_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numBlocked()); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); + TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "img[id='image-header-exception-pass-1']"); ++ mHelper, 0, "img[id='image-header-exception-pass-1']"); + + // Add exception filter, expect image allowed + mHelper.addCustomFilter(String.format( -+ "@@%s/testfiles/header_exception/$header", TestPagesTestsHelper.TESTPAGES_DOMAIN)); ++ "@@%s/testfiles/header_exception/$header", TestPagesHelperBase.TESTPAGES_DOMAIN)); + mHelper.loadUrl(HEADER_EXCEPTIONS_TESTPAGES_URL); + Assert.assertEquals(1, mHelper.numAllowed()); + Assert.assertEquals(1, mHelper.numAllowedByType(AdblockContentType.CONTENT_TYPE_IMAGE)); + Assert.assertTrue( + mHelper.isAllowed(String.format("https://%s/testfiles/header_exception/image.png", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN))); ++ TestPagesHelperBase.TESTPAGES_DOMAIN))); + TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "img[id='image-header-exception-pass-1']"); ++ mHelper, 1, "img[id='image-header-exception-pass-1']"); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHelperBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHelperBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTest.java -@@ -0,0 +1,185 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+package org.chromium.components.adblock; -+ -+import androidx.test.filters.LargeTest; -+ -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; -+import org.junit.Test; -+import org.junit.runner.RunWith; -+ -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.DisabledTest; -+import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.content_public.browser.test.util.JavaScriptUtils; -+ -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesRewriteTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); -+ -+ public static final String REWRITE_TEST_URL = -+ TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "rewrite"; -+ -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewriteScript() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/*.js$rewrite=abp-resource:blank-js,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, "div[id='script-fail-1']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewriteStylesheet() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/*.css$rewrite=abp-resource:blank-css,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ TestVerificationUtils.verifyGreenBackground(mActivityTestRule, "stylesheet-target"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewriteSubdocument() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/*.html$rewrite=abp-resource:blank-html,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "subdocument-target"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewriteText() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/*.txt$rewrite=abp-resource:blank-text,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "text-status"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewriteGif() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/1x1.gif$rewrite=abp-resource:1x1-transparent-gif,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "1x1-target"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewrite2x2Png() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/2x2.png$rewrite=abp-resource:2x2-transparent-png,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "2x2-target"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewrite3x2Png() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/3x2.png$rewrite=abp-resource:3x2-transparent-png,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "3x2-target"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewrite32x32Png() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/32x32.png$rewrite=abp-resource:32x32-transparent-png,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ TestVerificationUtils.verifySelfTestPass(mActivityTestRule, "32x32-target"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewriteAudio() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/*.mp3$rewrite=abp-resource:blank-mp3,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ String value = JavaScriptUtils.executeJavaScriptAndWaitForResult( -+ mActivityTestRule.getActivity() -+ .getTabModelSelectorSupplier() -+ .get() -+ .getCurrentTab() -+ .getWebContents(), -+ "document.getElementById('audio-area').lastChild.getAttribute('data-expectedresult')"); -+ Assert.assertEquals("\"pass\"", value); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testRewriteVideo() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/rewrite/*.mp4$rewrite=abp-resource:blank-mp4,domain=%s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrl(REWRITE_TEST_URL); -+ String value = JavaScriptUtils.executeJavaScriptAndWaitForResult( -+ mActivityTestRule.getActivity() -+ .getTabModelSelectorSupplier() -+ .get() -+ .getCurrentTab() -+ .getWebContents(), -+ "document.getElementById('video-area').lastChild.getAttribute('data-expectedresult')"); -+ Assert.assertEquals("\"pass\"", value); -+ } -+} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTest.java -new file mode 100644 ---- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTest.java -@@ -0,0 +1,82 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+package org.chromium.components.adblock; -+ -+import androidx.test.filters.LargeTest; -+ -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; -+import org.junit.Test; -+import org.junit.runner.RunWith; -+ -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.DisabledTest; -+import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+ -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesSiteKeyTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); -+ -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testVerifySitekeyException() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ String.format("%s#@#[data-adblockkey]", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.addCustomFilter( -+ String.format("%s##.testcase-sitekey-eh", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/sitekey/outofframe.png", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.addCustomFilter(String.format( -+ "||%s/testfiles/sitekey/inframe.png", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.addCustomFilter( -+ "@@$document,sitekey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANGtTstne7e8MbmDHDiMFkGbcuBgXmiVesGOG3gtYeM1EkrzVhBjGUvKXYE4GLFwqty3v5MuWWbvItUWBTYoVVsCAwEAAQ"); -+ mHelper.loadUrl(TestPagesTestsHelper.SITEKEY_TESTPAGES_TESTCASES_ROOT); -+ Assert.assertEquals(1, mHelper.numBlocked()); -+ Assert.assertTrue(mHelper.isBlocked( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "sitekey/outofframe.png")); -+ Assert.assertEquals(1, mHelper.numAllowed()); -+ Assert.assertTrue(mHelper.isAllowed( -+ TestPagesTestsHelper.TESTPAGES_RESOURCES_ROOT + "sitekey/inframe.png")); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "img"); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "div"); -+ } -+} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java -new file mode 100644 ---- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTest.java -@@ -0,0 +1,545 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+package org.chromium.components.adblock; -+ -+import androidx.test.filters.LargeTest; -+ -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; -+import org.junit.Test; -+import org.junit.runner.RunWith; -+ -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.DisabledTest; -+import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+ -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesSnippetsTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); -+ -+ public static final String SNIPPETS_TESTPAGES_TESTCASES_ROOT = -+ TestPagesTestsHelper.TESTPAGES_TESTCASES_ROOT + "snippets/"; -+ -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortCurrentInlineScriptBasic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#abort-current-inline-script console.group", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-current-inline-script"); -+ // All "Abort" snippets cancel creation of the target div, so it won't be hidden - it will -+ // not exist in DOM. Therefore we verify it's not displayed instead of verifying it's -+ // hidden. -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortCurrentInlineScriptSearch() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ String.format("%s#$#abort-current-inline-script console.info acis-search", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-current-inline-script"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#search-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortCurrentInlineScriptRegex() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ String.format("%s#$#abort-current-inline-script console.warn '/acis-regex[1-2]/'", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-current-inline-script"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#regex-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnPropertyReadBasic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#abort-on-property-read aoprb", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-read"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnPropertyReadSubProperty() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#abort-on-property-read aopr.sp", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-read"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#subproperty-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnPropertyReadFunctionProperty() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#abort-on-property-read aoprf.fp", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-read"); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, -+ "div#functionproperty-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnPropertyWriteBasic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#abort-on-property-write window.aopwb", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-write"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnPropertyWriteSubProperty() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#abort-on-property-write window.aopwsp", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-write"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#subproperty-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnPropertyWriteFunctionProperty() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#abort-on-property-write aopwf.fp", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-write"); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, -+ "div#functionproperty-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnIframePropertyReadBasic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-read aoiprb", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-read"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnIframePropertyReadSubProperty() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-read aoipr.sp", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-read"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#subproperty-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnIframePropertyReadMultipleProperties() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-read aoipr1 aoipr2", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-read"); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, -+ "div#multipleproperties-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnIframePropertyWriteBasic() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-write aoipwb", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-write"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnIframePropertyWriteSubProperty() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-write aoipw.sp", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-write"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#subproperty-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testAbortOnIframePropertyWriteMultipleProperties() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-write aoipw1 aoipw2", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-iframe-property-write"); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 0, -+ "div#multipleproperties-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsStatic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains 'hic-basic-static' p[id]", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "p#hic-static-id"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsDynamic() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains 'hic-basic-dynamic' p[id]", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "p#hic-dynamic-id"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsSearch() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains 'hic-search' p[id] .target", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div#search2-target > p.target"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div#search1-target > p[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsRegex() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains /hic-regex-[2-3]/ p[id]", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); -+ // "hic-regex-1" does not match regex, should remain displayed. -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, "p#hic-regex-1"); -+ -+ // "hic-regex-2" and "hic-regex-2" do match regex, should be hidden. -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "p#hic-regex-2"); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "p#hic-regex-3"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsFrame() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains hidden span#frame-target", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, "span#frame-target"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsAndMatchesStyleStatic() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#hide-if-contains-and-matches-style hicamss div[id] span.label /./ 'display: inline;'", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-and-matches-style"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div#static-usage-area > div[data-expectedresult='fail']"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div#static-usage-area > div[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsAndMatchesStyleDynamic() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#hide-if-contains-and-matches-style hicamsd div[id] span.label /./ 'display: inline;'", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-and-matches-style"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div#dynamic-target > div[data-expectedresult='fail']"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div#dynamic-target > div[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsImage() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#hide-if-contains-image /^89504e470d0a1a0a0000000d4948445200000064000000640802/ div[shouldhide] div", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-image"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 2, "div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsVisibleTextBasicUsage() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#hide-if-contains-visible-text Sponsored-hicvt-basic '#parent-basic > .article' '#parent-basic > .article .label'", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-visible-text"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div#parent-basic > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfContainsVisibleTextContentUsage() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#hide-if-contains-visible-text Sponsored-hicvt-content '#parent-content > .article' '#parent-content > .article .label'", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-visible-text"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div#parent-content > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfHasAndMatchesStyleBasicUsage() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#hide-if-has-and-matches-style a[href=\"#basic-target-ad\"] div[id] span.label /./ 'display: inline;'", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-has-and-matches-style"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div#basic-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfHasAndMatchesStyleLegitElements() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#hide-if-has-and-matches-style a[href=\"#comments-target-ad\"] div[id] span.label ';' /\\\\bdisplay:\\ inline\\;/", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-has-and-matches-style"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div#comments-target > div[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfLabeledBy() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format( -+ "%s#$#hide-if-labelled-by 'Label' '#hilb-target [aria-labelledby]' '#hilb-target'", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-labelled-by"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div[data-expectedresult='fail']"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfMatchesXPathBasicStaticUsage() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#hide-if-matches-xpath //*[@id=\"isnfnv\"]", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, -+ "div#basic-static-usage-area > div[data-expectedresult='fail']"); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, -+ "div#basic-static-usage-area > div[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfMatchesXPathClassUsage() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ String.format("%s#$#hide-if-matches-xpath //*[@class=\"to-be-hidden\"]", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div#class-usage-area > div[data-expectedresult='fail']"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div#class-usage-area > div[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfMatchesXPathIdStartsWith() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ String.format("%s#$#hide-if-matches-xpath //div[starts-with(@id,\"fail\")]", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); -+ TestVerificationUtils.verifyHiddenCount(mActivityTestRule, 1, -+ "div#hide-if-id-starts-with-area > div[data-expectedresult='fail']"); -+ TestVerificationUtils.verifyDisplayedCount(mActivityTestRule, 1, -+ "div#hide-if-id-starts-with-area > div[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfShadowContainsBasicUsage() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#hide-if-shadow-contains 'hisc-basic' p", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-shadow-contains"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div#basic-target > p[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testHideIfShadowContainsRegexUsage() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ String.format("%s#$#hide-if-shadow-contains '/hisc-regex[1-2]/' div", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-shadow-contains"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 2, "div#regex-target > div[data-expectedresult='fail']"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div#regex-target > div[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testJsonPrune() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ String.format("%s#$#json-prune 'data-expectedresult jsonprune aria-label'", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "json-prune?delay=100"); -+ // The object does not get hidden, it no longer exists in the DOM. -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#testcase-area > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testOverridePropertyRead() throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ String.format("%s#$#override-property-read overridePropertyRead.fp false", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent(SNIPPETS_TESTPAGES_TESTCASES_ROOT + "override-property-read"); -+ TestVerificationUtils.verifyHiddenCount( -+ mActivityTestRule, 1, "div#basic-target > div[data-expectedresult='fail']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testStripFetchQueryParameterBasicUsage() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter(String.format("%s#$#strip-fetch-query-parameter basicBlocked %s", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN, TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "strip-fetch-query-parameter"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 0, "div#basic-target > div[data-expectedresult='fail']"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 1, "div#basic-target > div[data-expectedresult='pass']"); -+ } -+ -+ @Test -+ @LargeTest -+ @Feature({"adblock"}) -+ public void testStripFetchQueryParameterOtherUsage() -+ throws TimeoutException, InterruptedException { -+ mHelper.addCustomFilter( -+ String.format("%s#$#strip-fetch-query-parameter otherAllowed2 other-domain", -+ TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ mHelper.loadUrlWaitForContent( -+ SNIPPETS_TESTPAGES_TESTCASES_ROOT + "strip-fetch-query-parameter"); -+ TestVerificationUtils.verifyDisplayedCount( -+ mActivityTestRule, 2, "div#other-target > div[data-expectedresult='pass']"); -+ } -+} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java -new file mode 100644 ---- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesTestsHelper.java -@@ -0,0 +1,255 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesHelperBase.java +@@ -0,0 +1,180 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -5791,30 +3939,22 @@ new file mode 100644 +package org.chromium.components.adblock; + +import org.junit.Assert; -+import org.junit.Rule; + +import org.chromium.base.Log; +import org.chromium.base.test.util.CallbackHelper; -+import org.chromium.chrome.browser.tab.EmptyTabObserver; -+import org.chromium.chrome.browser.tab.Tab; -+import org.chromium.chrome.browser.tabmodel.TabModelObserver; -+import org.chromium.chrome.browser.tabmodel.TabModelSelector; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.AdblockContentType; ++import org.chromium.components.adblock.AdblockController; +import org.chromium.content_public.browser.WebContents; +import org.chromium.content_public.browser.test.util.TestThreadUtils; -+import org.chromium.url.GURL; + -+import java.lang.Thread; +import java.net.MalformedURLException; +import java.net.URL; -+import java.util.HashSet; -+import java.util.List; +import java.util.Set; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + -+public class TestPagesTestsHelper { ++public abstract class TestPagesHelperBase { + public static final String TESTPAGES_DOMAIN = "abptestpages.org"; + public static final String TESTPAGES_BASE_URL = "https://" + TESTPAGES_DOMAIN; + public static final String TESTPAGES_TESTCASES_ROOT = TESTPAGES_BASE_URL + "/en/"; @@ -5831,15 +3971,13 @@ new file mode 100644 + public static final String TESTPAGES_RESOURCES_ROOT = TESTPAGES_BASE_URL + "/testfiles/"; + public static final String TESTPAGES_SUBSCRIPTION = + TESTPAGES_TESTCASES_ROOT + "/abp-testcase-subscription.txt"; -+ + public static final int TEST_TIMEOUT_SEC = 30; + + private URL mTestSubscriptionUrl; -+ private CallbackHelper mHelper = new CallbackHelper(); -+ private TestAdBlockedObserver mObserver = new TestAdBlockedObserver(); -+ private TestSubscriptionUpdatedObserver mSubscriptionUpdateObserver = ++ private final CallbackHelper mHelper = new CallbackHelper(); ++ private final TestAdBlockedObserver mObserver = new TestAdBlockedObserver(); ++ private final TestSubscriptionUpdatedObserver mSubscriptionUpdateObserver = + new TestSubscriptionUpdatedObserver(); -+ private ChromeTabbedActivityTestRule mActivityTestRule; + + private class TestSubscriptionUpdatedObserver + implements AdblockController.SubscriptionUpdateObserver { @@ -5854,9 +3992,7 @@ new file mode 100644 + } + } + -+ public void setUp(final ChromeTabbedActivityTestRule activityRule) { -+ mActivityTestRule = activityRule; -+ mActivityTestRule.startMainActivityOnBlankPage(); ++ public void setUp() { + TestThreadUtils.runOnUiThreadBlocking(() -> { + AdblockController.getInstance().addOnAdBlockedObserver(mObserver); + AdblockController.getInstance().addSubscriptionUpdateObserver( @@ -5868,7 +4004,7 @@ new file mode 100644 + try { + mTestSubscriptionUrl = new URL(filterListUrl); + mObserver.setExpectedSubscriptionUrl(mTestSubscriptionUrl); -+ } catch (MalformedURLException e) { ++ } catch (MalformedURLException ignored) { + } + Assert.assertNotNull("Test subscription url", mTestSubscriptionUrl); + TestThreadUtils.runOnUiThreadBlocking(() -> { @@ -5895,64 +4031,6 @@ new file mode 100644 + }); + } + -+ public CallbackHelper getTabsOpenedAndClosedWaiter() { -+ final CallbackHelper callbackHelper = new CallbackHelper(); -+ final TabModelSelector tabModelSelector = -+ mActivityTestRule.getActivity().getTabModelSelectorSupplier().get(); -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ tabModelSelector.getCurrentModel().addObserver(new TabModelObserver() { -+ @Override -+ public void onFinishingTabClosure(Tab tab) { -+ // For some reason TabModelObserver#tabRemoved() is not called. -+ // Let's wait a bit to make sure tab is indeed closed. -+ try { -+ Thread.sleep(100); -+ } catch (InterruptedException e) { -+ } -+ callbackHelper.notifyCalled(); -+ } -+ @Override -+ public void didAddTab( -+ Tab tab, int type, int creationState, boolean markedForSelection) { -+ callbackHelper.notifyCalled(); -+ } -+ }); -+ }); -+ return callbackHelper; -+ } -+ -+ public CallbackHelper getTabsOpenedAndLoadedWaiter() { -+ final CallbackHelper callbackHelper = new CallbackHelper(); -+ final TabModelSelector tabModelSelector = -+ mActivityTestRule.getActivity().getTabModelSelectorSupplier().get(); -+ TestThreadUtils.runOnUiThreadBlocking(() -> { -+ tabModelSelector.getCurrentModel().addObserver(new TabModelObserver() { -+ @Override -+ public void didAddTab( -+ Tab tab, int type, int creationState, boolean markedForSelection) { -+ tab.addObserver(new EmptyTabObserver() { -+ @Override -+ public void onPageLoadFinished(Tab tab, GURL url) { -+ callbackHelper.notifyCalled(); -+ } -+ }); -+ } -+ }); -+ }); -+ return callbackHelper; -+ } -+ -+ public WebContents getWebContents() { -+ return mActivityTestRule.getActivity().getCurrentWebContents(); -+ } -+ -+ public int getTabCount() { -+ return mActivityTestRule.getActivity() -+ .getTabModelSelectorSupplier() -+ .get() -+ .getTotalTabCount(); -+ } -+ + // Note: Use either setOnAdMatchedLatch XOR setOnAdMatchedExpectations + public void setOnAdMatchedLatch(final CountDownLatch countDownLatch) { + Assert.assertTrue( @@ -6007,16 +4085,11 @@ new file mode 100644 + return mObserver.isPopupAllowed(url); + } + -+ public void loadUrl(final String url) throws InterruptedException, TimeoutException { -+ mActivityTestRule.loadUrl(url, TEST_TIMEOUT_SEC); -+ } ++ public abstract void loadUrl(final String url) throws Exception; + -+ public void loadUrlWaitForContent(final String url) -+ throws InterruptedException, TimeoutException { -+ loadUrl(url); -+ TestVerificationUtils.verifyCondition(mActivityTestRule, -+ "document.getElementsByClassName('testcase-waiting-content').length == 0"); -+ } ++ public abstract void loadUrlWaitForContent(final String url) throws Exception; ++ ++ public abstract WebContents getWebContents(); + + public int numBlocked() { + return mObserver.blockedInfos.size(); @@ -6026,11 +4099,11 @@ new file mode 100644 + return mObserver.allowedInfos.size(); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTest.java +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTestBase.java new file mode 100644 --- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTest.java -@@ -0,0 +1,77 @@ ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesRewriteTestBase.java +@@ -0,0 +1,153 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -6052,56 +4125,823 @@ new file mode 100644 + +import androidx.test.filters.LargeTest; + -+import org.junit.After; +import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; +import org.junit.Test; -+import org.junit.runner.RunWith; + -+import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.content_public.browser.test.util.JavaScriptUtils; + -+import java.util.Arrays; -+import java.util.HashSet; -+import java.util.concurrent.CountDownLatch; -+import java.util.concurrent.TimeUnit; -+import java.util.concurrent.TimeoutException; ++public abstract class TestPagesRewriteTestBase { ++ public static final String REWRITE_TEST_URL = ++ TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "rewrite"; ++ private TestPagesHelperBase mHelper; + -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class TestPagesWebsocketTest { -+ @Rule -+ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ private TestPagesTestsHelper mHelper = new TestPagesTestsHelper(); -+ -+ @Before -+ public void setUp() { -+ mHelper.setUp(mActivityTestRule); -+ mHelper.addCustomFilter( -+ String.format("$websocket,domain=%s", TestPagesTestsHelper.TESTPAGES_DOMAIN)); -+ } -+ -+ @After -+ public void tearDown() { -+ mHelper.tearDown(); ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; + } + + @Test + @LargeTest + @Feature({"adblock"}) -+ public void testVerifyWebsocketFilter() throws TimeoutException, InterruptedException { ++ public void testRewriteScript() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.js$rewrite=abp-resource:blank-js,domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 0, "div[id='script-fail-1']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testRewriteStylesheet() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.css$rewrite=abp-resource:blank-css,domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifyGreenBackground(mHelper, "stylesheet-target"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testRewriteSubdocument() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.html$rewrite=abp-resource:blank-html,domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mHelper, "subdocument-target"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testRewriteText() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.txt$rewrite=abp-resource:blank-text,domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mHelper, "text-status"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testRewriteGif() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/1x1.gif$rewrite=abp-resource:1x1-transparent-gif,domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mHelper, "1x1-target"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testRewrite2x2Png() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/2x2.png$rewrite=abp-resource:2x2-transparent-png,domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mHelper, "2x2-target"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testRewrite3x2Png() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/3x2.png$rewrite=abp-resource:3x2-transparent-png,domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mHelper, "3x2-target"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testRewrite32x32Png() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/32x32.png$rewrite=abp-resource:32x32-transparent-png," ++ + "domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ TestVerificationUtils.verifySelfTestPass(mHelper, "32x32-target"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testRewriteAudio() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.mp3$rewrite=abp-resource:blank-mp3,domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ String value = JavaScriptUtils.executeJavaScriptAndWaitForResult(mHelper.getWebContents(), ++ "document.getElementById('audio-area').lastChild.getAttribute" ++ + "('data-expectedresult')"); ++ Assert.assertEquals("\"pass\"", value); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testRewriteVideo() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/rewrite/*.mp4$rewrite=abp-resource:blank-mp4,domain=%s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrl(REWRITE_TEST_URL); ++ String value = JavaScriptUtils.executeJavaScriptAndWaitForResult(mHelper.getWebContents(), ++ "document.getElementById('video-area').lastChild.getAttribute" ++ + "('data-expectedresult')"); ++ Assert.assertEquals("\"pass\"", value); ++ } ++} +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTestBase.java +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSiteKeyTestBase.java +@@ -0,0 +1,58 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.components.adblock; ++ ++import androidx.test.filters.LargeTest; ++ ++import org.junit.Assert; ++import org.junit.Test; ++ ++import org.chromium.base.test.util.Feature; ++ ++public abstract class TestPagesSiteKeyTestBase { ++ private TestPagesHelperBase mHelper; ++ ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testVerifySitekeyException() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#@#[data-adblockkey]", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.addCustomFilter( ++ String.format("%s##.testcase-sitekey-eh", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/sitekey/outofframe.png", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.addCustomFilter(String.format( ++ "||%s/testfiles/sitekey/inframe.png", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.addCustomFilter( ++ "@@$document,sitekey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANGtTstne7e8MbmDHDiMFkGbcuBgXmiVesGOG3gtYeM1EkrzVhBjGUvKXYE4GLFwqty3v5MuWWbvItUWBTYoVVsCAwEAAQ"); ++ mHelper.loadUrl(TestPagesHelperBase.SITEKEY_TESTPAGES_TESTCASES_ROOT); ++ Assert.assertEquals(1, mHelper.numBlocked()); ++ Assert.assertTrue(mHelper.isBlocked( ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "sitekey/outofframe.png")); ++ Assert.assertEquals(1, mHelper.numAllowed()); ++ Assert.assertTrue(mHelper.isAllowed( ++ TestPagesHelperBase.TESTPAGES_RESOURCES_ROOT + "sitekey/inframe.png")); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "img"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div"); ++ } ++} +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTestBase.java +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesSnippetsTestBase.java +@@ -0,0 +1,562 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.components.adblock; ++ ++import androidx.test.filters.LargeTest; ++ ++import org.junit.Test; ++ ++import org.chromium.base.test.util.Feature; ++ ++public abstract class TestPagesSnippetsTestBase { ++ private TestPagesHelperBase mHelper; ++ ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortCurrentInlineScriptBasic() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#abort-current-inline-script console.group", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "abort-current-inline-script"); ++ // All "Abort" snippets cancel creation of the target div, so it won't be hidden - it will ++ // not exist in DOM. Therefore we verify it's not displayed instead of verifying it's ++ // hidden. ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#basic-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortCurrentInlineScriptSearch() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#abort-current-inline-script console.info acis-search", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "abort-current-inline-script"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#search-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortCurrentInlineScriptRegex() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#abort-current-inline-script console.warn '/acis-regex[1-2]/'", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "abort-current-inline-script"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#regex-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnPropertyReadBasic() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-property-read aoprb", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#basic-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnPropertyReadSubProperty() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-property-read aopr.sp", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#subproperty-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnPropertyReadFunctionProperty() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-property-read aoprf.fp", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#functionproperty-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnPropertyWriteBasic() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-property-write window.aopwb", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#basic-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnPropertyWriteSubProperty() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-property-write window.aopwsp", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#subproperty-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnPropertyWriteFunctionProperty() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-property-write aopwf.fp", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "abort-on-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#functionproperty-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnIframePropertyReadBasic() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#abort-on-iframe-property-read aoiprb", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "abort-on-iframe-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#basic-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnIframePropertyReadSubProperty() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-read aoipr.sp", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "abort-on-iframe-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#subproperty-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnIframePropertyReadMultipleProperties() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-read aoipr1 aoipr2", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "abort-on-iframe-property-read"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#multipleproperties-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnIframePropertyWriteBasic() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-write aoipwb", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "abort-on-iframe-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#basic-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnIframePropertyWriteSubProperty() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-write aoipw.sp", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "abort-on-iframe-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#subproperty-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testAbortOnIframePropertyWriteMultipleProperties() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#abort-on-iframe-property-write aoipw1 aoipw2", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "abort-on-iframe-property-write"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#multipleproperties-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsStatic() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains 'hic-basic-static' p[id]", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "p#hic-static-id"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsDynamic() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains 'hic-basic-dynamic' p[id]", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "p#hic-dynamic-id"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsSearch() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains 'hic-search' p[id] .target", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div#search2-target > p.target"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#search1-target > p[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsRegex() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains /hic-regex-[2-3]/ p[id]", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); ++ // "hic-regex-1" does not match regex, should remain displayed. ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 1, "p#hic-regex-1"); ++ ++ // "hic-regex-2" and "hic-regex-2" do match regex, should be hidden. ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "p#hic-regex-2"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "p#hic-regex-3"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsFrame() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains hidden span#frame-target", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "span#frame-target"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsAndMatchesStyleStatic() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-contains-and-matches-style hicamss div[id] span.label /./ 'display:" ++ + " inline;'", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "hide-if-contains-and-matches-style"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#static-usage-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#static-usage-area > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsAndMatchesStyleDynamic() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-contains-and-matches-style hicamsd div[id] span.label /./ 'display:" ++ + " inline;'", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "hide-if-contains-and-matches-style"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#dynamic-target > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#dynamic-target > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsImage() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-contains-image " ++ + "/^89504e470d0a1a0a0000000d4948445200000064000000640802/ " ++ + "div[shouldhide] div", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-contains-image"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 2, "div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsVisibleTextBasicUsage() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-contains-visible-text Sponsored-hicvt-basic '#parent-basic > " ++ + ".article' '#parent-basic > .article .label'", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "hide-if-contains-visible-text"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#parent-basic > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfContainsVisibleTextContentUsage() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-contains-visible-text Sponsored-hicvt-content '#parent-content > " ++ + ".article' '#parent-content > .article .label'", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "hide-if-contains-visible-text"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#parent-content > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfHasAndMatchesStyleBasicUsage() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-has-and-matches-style a[href=\"#basic-target-ad\"] div[id] span" ++ + ".label /./ 'display: inline;'", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "hide-if-has-and-matches-style"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#basic-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfHasAndMatchesStyleLegitElements() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-has-and-matches-style a[href=\"#comments-target-ad\"] div[id] span" ++ + ".label ';' /\\\\bdisplay:\\ inline\\;/", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "hide-if-has-and-matches-style"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#comments-target > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfLabeledBy() throws Exception { ++ mHelper.addCustomFilter(String.format( ++ "%s#$#hide-if-labelled-by 'Label' '#hilb-target [aria-labelledby]' '#hilb-target'", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-labelled-by"); ++ TestVerificationUtils.verifyHiddenCount(mHelper, 1, "div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount(mHelper, 1, "div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfMatchesXPathBasicStaticUsage() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-matches-xpath //*[@id=\"isnfnv\"]", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#basic-static-usage-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#basic-static-usage-area > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfMatchesXPath3BasicStaticUsage() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-matches-xpath3 //*[@id=\"isnfnv\"]", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#basic-static-usage-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#basic-static-usage-area > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfMatchesXPathClassUsage() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#hide-if-matches-xpath //*[@class=\"to-be-hidden\"]", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#class-usage-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#class-usage-area > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfMatchesXPath3ClassUsage() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#hide-if-matches-xpath3 //*[@class=\"to-be-hidden\"]", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#class-usage-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#class-usage-area > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfMatchesXPathIdStartsWith() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#hide-if-matches-xpath //div[starts-with(@id,\"fail\")]", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#hide-if-id-starts-with-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#hide-if-id-starts-with-area > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfMatchesXPath3IdStartsWith() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#hide-if-matches-xpath3 //div[starts-with(@id,\"fail\")]", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-matches-xpath"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#hide-if-id-starts-with-area > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#hide-if-id-starts-with-area > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfShadowContainsBasicUsage() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#hide-if-shadow-contains 'hisc-basic' p", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-shadow-contains"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#basic-target > p[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testHideIfShadowContainsRegexUsage() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#hide-if-shadow-contains '/hisc-regex[1-2]/' div", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "hide-if-shadow-contains"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 2, "div#regex-target > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#regex-target > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testJsonPrune() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#json-prune 'data-expectedresult jsonprune aria-label'", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "json-prune?delay=100"); ++ // The object does not get hidden, it no longer exists in the DOM. ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#testcase-area > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testOverridePropertyRead() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#override-property-read overridePropertyRead.fp false", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent( ++ TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT + "override-property-read"); ++ TestVerificationUtils.verifyHiddenCount( ++ mHelper, 1, "div#basic-target > div[data-expectedresult='fail']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testStripFetchQueryParameterBasicUsage() throws Exception { ++ mHelper.addCustomFilter(String.format("%s#$#strip-fetch-query-parameter basicBlocked %s", ++ TestPagesHelperBase.TESTPAGES_DOMAIN, TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "strip-fetch-query-parameter"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 0, "div#basic-target > div[data-expectedresult='fail']"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 1, "div#basic-target > div[data-expectedresult='pass']"); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testStripFetchQueryParameterOtherUsage() throws Exception { ++ mHelper.addCustomFilter( ++ String.format("%s#$#strip-fetch-query-parameter otherAllowed2 other-domain", ++ TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ mHelper.loadUrlWaitForContent(TestPagesHelperBase.SNIPPETS_TESTPAGES_TESTCASES_ROOT ++ + "strip-fetch-query-parameter"); ++ TestVerificationUtils.verifyDisplayedCount( ++ mHelper, 2, "div#other-target > div[data-expectedresult='pass']"); ++ } ++} +diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTestBase.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTestBase.java +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestPagesWebsocketTestBase.java +@@ -0,0 +1,56 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.components.adblock; ++ ++import androidx.test.filters.LargeTest; ++ ++import org.junit.Assert; ++import org.junit.Test; ++ ++import org.chromium.base.test.util.Feature; ++import org.chromium.components.adblock.AdblockContentType; ++ ++import java.util.HashSet; ++import java.util.List; ++import java.util.concurrent.CountDownLatch; ++import java.util.concurrent.TimeUnit; ++ ++public abstract class TestPagesWebsocketTestBase { ++ private TestPagesHelperBase mHelper; ++ ++ protected void setUp(TestPagesHelperBase helper) { ++ mHelper = helper; ++ mHelper.addCustomFilter( ++ String.format("$websocket,domain=%s", TestPagesHelperBase.TESTPAGES_DOMAIN)); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ public void testVerifyWebsocketFilter() throws Exception { + final String wssUrl = -+ String.format("wss://%s/websocket", TestPagesTestsHelper.TESTPAGES_DOMAIN); ++ String.format("wss://%s/websocket", TestPagesHelperBase.TESTPAGES_DOMAIN); + final CountDownLatch countDownLatch = -+ mHelper.setOnAdMatchedExpectations(new HashSet<>(Arrays.asList(wssUrl)), null); -+ mHelper.loadUrl(TestPagesTestsHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "websocket"); ++ mHelper.setOnAdMatchedExpectations(new HashSet<>(List.of(wssUrl)), null); ++ mHelper.loadUrl(TestPagesHelperBase.FILTER_TESTPAGES_TESTCASES_ROOT + "websocket"); + // Wait with 10 seconds max timeout + countDownLatch.await(10, TimeUnit.SECONDS); + Assert.assertEquals(1, mHelper.numBlockedByType(AdblockContentType.CONTENT_TYPE_WEBSOCKET)); @@ -6112,7 +4952,7 @@ diff --git a/components/adblock/android/javatests/src/org/chromium/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/TestVerificationUtils.java -@@ -0,0 +1,166 @@ +@@ -0,0 +1,163 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -6134,9 +4974,9 @@ new file mode 100644 + +import org.junit.Assert; + -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; +import org.chromium.content_public.browser.test.util.JavaScriptUtils; + ++import java.util.Locale; +import java.util.concurrent.TimeoutException; + +public class TestVerificationUtils { @@ -6164,7 +5004,8 @@ new file mode 100644 + + " }" + + " if (includeSubframes) {" + + " for (let frame of document.querySelectorAll(\"iframe\")) {" -+ + " for (let element of frame.contentWindow.document.body.querySelectorAll(selector)) {" ++ + " for (let element of frame.contentWindow.document.body" ++ + ".querySelectorAll(selector)) {" + + " if (matches(element))" + + " ++count;" + + " }" @@ -6174,83 +5015,79 @@ new file mode 100644 + + "}"; + + private static final String WAIT_FOR_COUNT_FUNCTION_WRAPPER = "(function () {" -+ + "%s\n" // matches() defintion placeholder -+ + "%s\n" // countElements() defintion placeholder ++ + "%s\n" // matches() definition placeholder ++ + "%s\n" // countElements() definition placeholder + + "%s\n" // WAIT_FUNCTION placeholder which calls countElements() as a predicate + + "}());"; + -+ // Poll every 100 ms until condition is met or 10 seconds timeout occurs -+ private static final String WAIT_FUNCTION = "let repeat = 100;" -+ + "const id = setInterval(() => {" -+ + " --repeat;" -+ + " if (%s) {" // predicate placeholder -+ + " clearInterval(id);" -+ + " domAutomationController.send('OK');" -+ + " } else if (repeat == 0) {" -+ + " clearInterval(id);" -+ + " domAutomationController.send('Timeout');" -+ + " }" -+ + "}, 100);"; ++ // Poll every 100 ms until condition is met or 4 seconds timeout occurs ++ // Internal timeout of JavaScriptUtils.runJavascriptWithAsyncResult() is 5 seconds ++ // so our wait timeout needs to be shorter. ++ private static final String WAIT_FUNCTION = "function waitWithTimeout() {" ++ + " return new Promise(resolve => {" ++ + " let repeat = 40;" ++ + " const id = setInterval(() => {" ++ + " --repeat;" ++ + " if (%s) {" // predicate placeholder ++ + " clearInterval(id);" ++ + " resolve('OK');" ++ + " } else if (repeat == 0) {" ++ + " clearInterval(id);" ++ + " resolve('Timeout');" ++ + " }" ++ + " }, 100);" ++ + " });" ++ + "};" ++ + "waitWithTimeout().then((result) => { domAutomationController.send(result); });"; + -+ private static void verifyMatchesCount(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final int num, final String matchesFunction, final String selector, -+ IncludeSubframes includeSubframes) throws TimeoutException { ++ private static void verifyMatchesCount(final TestPagesHelperBase helper, final int num, ++ final String matchesFunction, final String selector, IncludeSubframes includeSubframes) ++ throws TimeoutException { + final String boolIncludeSubframes = + includeSubframes == IncludeSubframes.YES ? "true" : "false"; -+ final String predicate = String.format( ++ final String predicate = String.format(Locale.getDefault(), + "countElements(\"%s\", %s) == %d", selector, boolIncludeSubframes, num); + final String waitFunction = String.format(WAIT_FUNCTION, predicate); + final String js = String.format(WAIT_FOR_COUNT_FUNCTION_WRAPPER, matchesFunction, + COUNT_ELEMENT_FUNCTION, waitFunction); + final String result = -+ JavaScriptUtils.runJavascriptWithAsyncResult(mActivityTestRule.getActivity() -+ .getTabModelSelectorSupplier() -+ .get() -+ .getCurrentTab() -+ .getWebContents(), -+ js); ++ JavaScriptUtils.runJavascriptWithAsyncResult(helper.getWebContents(), js); + Assert.assertEquals(STATUS_OK, result); + } + -+ public static void verifyHiddenCount(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final int num, final String selector) throws TimeoutException { -+ verifyHiddenCount(mActivityTestRule, num, selector, IncludeSubframes.YES); ++ public static void verifyHiddenCount(final TestPagesHelperBase helper, final int num, ++ final String selector) throws TimeoutException { ++ verifyHiddenCount(helper, num, selector, IncludeSubframes.YES); + } + -+ public static void verifyHiddenCount(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final int num, final String selector, final IncludeSubframes includeSubframes) ++ public static void verifyHiddenCount(final TestPagesHelperBase helper, final int num, ++ final String selector, final IncludeSubframes includeSubframes) + throws TimeoutException { -+ verifyMatchesCount( -+ mActivityTestRule, num, MATCHES_HIDDEN_FUNCTION, selector, includeSubframes); ++ verifyMatchesCount(helper, num, MATCHES_HIDDEN_FUNCTION, selector, includeSubframes); + } + -+ public static void verifyDisplayedCount(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final int num, final String selector) throws TimeoutException { -+ verifyDisplayedCount(mActivityTestRule, num, selector, IncludeSubframes.YES); ++ public static void verifyDisplayedCount(final TestPagesHelperBase helper, final int num, ++ final String selector) throws TimeoutException { ++ verifyDisplayedCount(helper, num, selector, IncludeSubframes.YES); + } + -+ public static void verifyDisplayedCount(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final int num, final String selector, final IncludeSubframes includeSubframes) ++ public static void verifyDisplayedCount(final TestPagesHelperBase helper, final int num, ++ final String selector, final IncludeSubframes includeSubframes) + throws TimeoutException { -+ verifyMatchesCount( -+ mActivityTestRule, num, MATCHES_DISPLAYED_FUNCTION, selector, includeSubframes); ++ verifyMatchesCount(helper, num, MATCHES_DISPLAYED_FUNCTION, selector, includeSubframes); + } + -+ public static void verifyCondition(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final String predicate) throws TimeoutException { ++ public static void verifyCondition(final TestPagesHelperBase helper, final String predicate) ++ throws TimeoutException { + final String waitFunction = String.format(WAIT_FUNCTION, predicate); + Assert.assertEquals(STATUS_OK, -+ JavaScriptUtils.runJavascriptWithAsyncResult(mActivityTestRule.getActivity() -+ .getTabModelSelectorSupplier() -+ .get() -+ .getCurrentTab() -+ .getWebContents(), -+ waitFunction)); ++ JavaScriptUtils.runJavascriptWithAsyncResult( ++ helper.getWebContents(), waitFunction)); + } + -+ public static void verifyGreenBackground(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final String elemId) throws TimeoutException { -+ verifyCondition(mActivityTestRule, ++ public static void verifyGreenBackground(final TestPagesHelperBase helper, final String elemId) ++ throws TimeoutException { ++ verifyCondition(helper, + "window.getComputedStyle(document.getElementById('" + elemId + + "')).backgroundColor == 'rgb(13, 199, 75)'"); + } @@ -6258,26 +5095,269 @@ new file mode 100644 + // For some cases it is better to rely on page script testing element + // rather than invent a specific script to check condition. For example + // checks for rewrite filters replaces content proper way. -+ public static void verifySelfTestPass(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final String elemId) throws TimeoutException { -+ verifyCondition(mActivityTestRule, ++ public static void verifySelfTestPass(final TestPagesHelperBase helper, final String elemId) ++ throws TimeoutException { ++ verifyCondition(helper, + "document.getElementById('" + elemId + + "').getAttribute('data-expectedresult') == 'pass'"); + } + -+ public static void expectResourceBlocked(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final String elemId) throws TimeoutException { -+ verifyCondition(mActivityTestRule, ++ public static void expectResourceBlocked(final TestPagesHelperBase helper, final String elemId) ++ throws TimeoutException { ++ verifyCondition(helper, + "window.getComputedStyle(document.getElementById('" + elemId + + "')).display == 'none'"); + } + -+ public static void expectResourceShown(final ChromeTabbedActivityTestRule mActivityTestRule, -+ final String elemId) throws TimeoutException { -+ verifyCondition(mActivityTestRule, ++ public static void expectResourceShown(final TestPagesHelperBase helper, final String elemId) ++ throws TimeoutException { ++ verifyCondition(helper, + "window.getComputedStyle(document.getElementById('" + elemId + + "')).display == 'inline'"); + } +} +diff --git a/components/adblock/android/resource_classification_notifier_bindings.cc b/components/adblock/android/resource_classification_notifier_bindings.cc +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/resource_classification_notifier_bindings.cc +@@ -0,0 +1,164 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include "components/adblock/android/resource_classification_notifier_bindings.h" ++ ++#include ++#include ++ ++#include "base/android/jni_android.h" ++#include "base/android/jni_array.h" ++#include "base/android/jni_string.h" ++#include "base/ranges/algorithm.h" ++#include "components/adblock/android/java_bindings_getters.h" ++#include "components/adblock/android/jni_headers/ResourceClassificationNotifier_jni.h" ++#include "components/adblock/content/browser/resource_classification_runner.h" ++#include "components/adblock/core/common/adblock_utils.h" ++ ++namespace adblock { ++ ++using base::android::AttachCurrentThread; ++using base::android::CheckException; ++using base::android::ConvertJavaStringToUTF8; ++using base::android::ConvertUTF8ToJavaString; ++using base::android::GetClass; ++using base::android::JavaParamRef; ++using base::android::JavaRef; ++using base::android::MethodID; ++using base::android::ScopedJavaGlobalRef; ++using base::android::ScopedJavaLocalRef; ++using base::android::ToJavaArrayOfObjects; ++using base::android::ToJavaArrayOfStrings; ++ ++ResourceClassificationNotifierBindings::ResourceClassificationNotifierBindings( ++ ResourceClassificationRunner* classification_runner) ++ : classification_runner_(classification_runner) { ++ classification_runner_->AddObserver(this); ++} ++ ++ResourceClassificationNotifierBindings:: ++ ~ResourceClassificationNotifierBindings() { ++ classification_runner_->RemoveObserver(this); ++} ++ ++void ResourceClassificationNotifierBindings::Bind( ++ JavaObjectWeakGlobalRef resource_classifier_java) { ++ bound_counterpart_ = resource_classifier_java; ++} ++ ++void ResourceClassificationNotifierBindings::OnAdMatched( ++ const GURL& url, ++ FilterMatchResult result, ++ const std::vector& parent_frame_urls, ++ ContentType content_type, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription, ++ const std::string& configuration_name) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ DCHECK(render_frame_host); ++ DCHECK(result == FilterMatchResult::kBlockRule || ++ result == FilterMatchResult::kAllowRule); ++ const bool was_blocked = result == FilterMatchResult::kBlockRule; ++ DVLOG(3) << "[eyeo] Ad matched " << url << "(type: " << content_type ++ << (was_blocked ? ", blocked" : ", allowed") << ")"; ++ JNIEnv* env = AttachCurrentThread(); ++ ++ ScopedJavaLocalRef obj = bound_counterpart_.get(env); ++ if (obj.is_null()) { ++ return; ++ } ++ ++ ScopedJavaLocalRef j_url = ConvertUTF8ToJavaString(env, url.spec()); ++ ScopedJavaLocalRef j_parents = ++ ToJavaArrayOfStrings(env, adblock::utils::ConvertURLs(parent_frame_urls)); ++ ScopedJavaLocalRef j_subscription = ++ ConvertUTF8ToJavaString(env, subscription.spec()); ++ ScopedJavaLocalRef j_configuration = ++ ConvertUTF8ToJavaString(env, configuration_name); ++ int tab_id = adblock::GetTabId(render_frame_host); ++ Java_ResourceClassificationNotifier_adMatchedCallback( ++ env, obj, j_url, was_blocked, j_parents, j_subscription, j_configuration, ++ static_cast(content_type), tab_id); ++} ++ ++void ResourceClassificationNotifierBindings::OnPageAllowed( ++ const GURL& url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription, ++ const std::string& configuration_name) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ DCHECK(render_frame_host); ++ DVLOG(3) << "[eyeo] Page allowed " << url; ++ JNIEnv* env = AttachCurrentThread(); ++ ++ ScopedJavaLocalRef obj = bound_counterpart_.get(env); ++ if (obj.is_null()) { ++ return; ++ } ++ ++ ScopedJavaLocalRef j_url = ConvertUTF8ToJavaString(env, url.spec()); ++ ScopedJavaLocalRef j_subscription = ++ ConvertUTF8ToJavaString(env, subscription.spec()); ++ ScopedJavaLocalRef j_configuration = ++ ConvertUTF8ToJavaString(env, configuration_name); ++ int tab_id = adblock::GetTabId(render_frame_host); ++ Java_ResourceClassificationNotifier_pageAllowedCallback( ++ env, obj, j_url, j_subscription, j_configuration, tab_id); ++} ++ ++void ResourceClassificationNotifierBindings::OnPopupMatched( ++ const GURL& url, ++ FilterMatchResult result, ++ const GURL& opener_url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription, ++ const std::string& configuration_name) { ++ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ++ DCHECK(render_frame_host); ++ DCHECK(result == FilterMatchResult::kBlockRule || ++ result == FilterMatchResult::kAllowRule); ++ const bool was_blocked = result == FilterMatchResult::kBlockRule; ++ DVLOG(3) << "[eyeo] Popup matched " << url ++ << (was_blocked ? ", blocked" : ", allowed"); ++ JNIEnv* env = AttachCurrentThread(); ++ ++ ScopedJavaLocalRef obj = bound_counterpart_.get(env); ++ if (obj.is_null()) { ++ return; ++ } ++ ++ ScopedJavaLocalRef j_url = ConvertUTF8ToJavaString(env, url.spec()); ++ ScopedJavaLocalRef j_opener = ++ ConvertUTF8ToJavaString(env, opener_url.spec()); ++ ScopedJavaLocalRef j_subscription = ++ ConvertUTF8ToJavaString(env, subscription.spec()); ++ ScopedJavaLocalRef j_configuration = ++ ConvertUTF8ToJavaString(env, configuration_name); ++ int tab_id = adblock::GetTabId(render_frame_host); ++ Java_ResourceClassificationNotifier_popupMatchedCallback( ++ env, obj, j_url, was_blocked, j_opener, j_subscription, j_configuration, ++ tab_id); ++} ++ ++} // namespace adblock ++ ++static void JNI_ResourceClassificationNotifier_Bind( ++ JNIEnv* env, ++ const base::android::JavaParamRef& caller) { ++ auto& bindings = adblock::GetResourceClassificationNotifierBindings(); ++ bindings.Bind(JavaObjectWeakGlobalRef(env, caller)); ++} +diff --git a/components/adblock/android/resource_classification_notifier_bindings.h b/components/adblock/android/resource_classification_notifier_bindings.h +new file mode 100644 +--- /dev/null ++++ b/components/adblock/android/resource_classification_notifier_bindings.h +@@ -0,0 +1,69 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#ifndef COMPONENTS_ADBLOCK_ANDROID_RESOURCE_CLASSIFICATION_NOTIFIER_BINDINGS_H_ ++#define COMPONENTS_ADBLOCK_ANDROID_RESOURCE_CLASSIFICATION_NOTIFIER_BINDINGS_H_ ++ ++#include ++#include ++#include "base/android/jni_weak_ref.h" ++#include "base/memory/raw_ptr.h" ++#include "base/sequence_checker.h" ++#include "components/adblock/content/browser/resource_classification_runner.h" ++#include "components/keyed_service/core/keyed_service.h" ++#include "components/prefs/pref_service.h" ++ ++namespace adblock { ++ ++class ResourceClassificationNotifierBindings ++ : public KeyedService, ++ public ResourceClassificationRunner::Observer { ++ public: ++ explicit ResourceClassificationNotifierBindings( ++ ResourceClassificationRunner* classification_runner); ++ ~ResourceClassificationNotifierBindings() override; ++ ++ void Bind(JavaObjectWeakGlobalRef resource_classifier_java); ++ ++ // ResourceClassificationRunner::Observer ++ void OnAdMatched(const GURL& url, ++ FilterMatchResult match_result, ++ const std::vector& parent_frame_urls, ++ ContentType content_type, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription, ++ const std::string& configuration_name) override; ++ void OnPageAllowed(const GURL& url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription, ++ const std::string& configuration_name) override; ++ void OnPopupMatched(const GURL& url, ++ FilterMatchResult match_result, ++ const GURL& opener_url, ++ content::RenderFrameHost* render_frame_host, ++ const GURL& subscription, ++ const std::string& configuration_name) override; ++ ++ private: ++ SEQUENCE_CHECKER(sequence_checker_); ++ raw_ptr classification_runner_; ++ JavaObjectWeakGlobalRef bound_counterpart_; ++}; ++ ++} // namespace adblock ++ ++#endif // COMPONENTS_ADBLOCK_ANDROID_RESOURCE_CLASSIFICATION_NOTIFIER_BINDINGS_H_ -- 2.25.1 diff --git a/build/patches/eyeo-117.0.5938.0-android_settings.patch b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch similarity index 97% rename from build/patches/eyeo-117.0.5938.0-android_settings.patch rename to build/patches/eyeo-beta-118.0.5993.48-android_settings.patch index afc56a6a..3ccb2a3a 100644 --- a/build/patches/eyeo-117.0.5938.0-android_settings.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch @@ -1,13 +1,18 @@ From: chromium-sdk -Date: Mon, 21 Aug 2023 18:20:45 +0200 +Date: Thu, 12 Oct 2023 14:46:08 +0200 Subject: eyeo Browser Ad filtering Solution: Android Settings UI Module -Based on Chromium 117.0.5938.0 +Based on Chromium 118.0.5993.48 Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API Module --- + chrome/android/BUILD.gn | 6 + .../android/java/res/xml/main_preferences.xml | 14 +- - components/adblock/android/BUILD.gn | 55 ++++ + chrome/browser/adblock/android/BUILD.gn | 10 + + .../adblock/AdblockFilterFragmentTest.java | 63 +++++ + .../adblock/AdblockPopupInfoBarTest.java | 118 +++++++++ + .../adblock/AdblockPopupMessageTest.java | 103 ++++++++ + components/adblock/android/BUILD.gn | 68 +++++ components/adblock/android/README.md | 13 + .../adblock/android/adblock_strings.grd | 238 ++++++++++++++++++ .../fragment_adblock_custom_item_add.png | Bin 0 -> 490 bytes @@ -38,10 +43,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API .../settings/AdblockFilterListsAdapter.java | 115 +++++++++ .../settings/AdblockFilterListsFragment.java | 54 ++++ .../settings/AdblockMoreOptionsFragment.java | 34 +++ - .../settings/AdblockSettingsFragment.java | 137 ++++++++++ - .../adblock/AdblockFilterFragmentTest.java | 73 ++++++ - .../adblock/AdblockPopupInfoBarTest.java | 129 ++++++++++ - .../adblock/AdblockPopupMessageTest.java | 112 +++++++++ + .../settings/AdblockSettingsFragment.java | 141 +++++++++++ .../translations/adblock_strings_af.xtb | 4 + .../translations/adblock_strings_am.xtb | 13 + .../translations/adblock_strings_ar.xtb | 13 + @@ -122,7 +124,10 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API .../translations/adblock_strings_zh-HK.xtb | 4 + .../translations/adblock_strings_zh-TW.xtb | 13 + .../translations/adblock_strings_zu.xtb | 4 + - 116 files changed, 2440 insertions(+), 3 deletions(-) + 118 files changed, 2443 insertions(+), 3 deletions(-) + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java create mode 100644 components/adblock/android/README.md create mode 100644 components/adblock/android/adblock_strings.grd create mode 100644 components/adblock/android/java/res/drawable-hdpi/fragment_adblock_custom_item_add.png @@ -154,9 +159,6 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockFilterListsFragment.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockMoreOptionsFragment.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockFilterFragmentTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockPopupInfoBarTest.java - create mode 100644 components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockPopupMessageTest.java create mode 100644 components/adblock/android/translations/adblock_strings_af.xtb create mode 100644 components/adblock/android/translations/adblock_strings_am.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ar.xtb @@ -238,6 +240,29 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API create mode 100644 components/adblock/android/translations/adblock_strings_zh-TW.xtb create mode 100644 components/adblock/android/translations/adblock_strings_zu.xtb +diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn +--- a/chrome/android/BUILD.gn ++++ b/chrome/android/BUILD.gn +@@ -241,6 +241,9 @@ if (current_toolchain == default_toolchain) { + "//third_party/androidx:androidx_preference_preference_java", + ] + ++ ### Android UI module start ++ deps += [ "//components/adblock/android:java_ui_resources" ] ++ ### Android UI module end + } + + android_library("app_hooks_java") { +@@ -667,6 +670,9 @@ if (current_toolchain == default_toolchain) { + "//url/mojom:url_mojom_gurl_java", + ] + ++ ### Android UI module start ++ deps += [ "//components/adblock/android:adblock_ui_java" ] ++ ### Android UI module end + + deps += feed_deps + diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml @@ -284,15 +309,340 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j android:title="@string/prefs_about_chrome"/> -diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BUILD.gn ---- a/components/adblock/android/BUILD.gn -+++ b/components/adblock/android/BUILD.gn -@@ -24,6 +24,18 @@ android_library("adblock_java") { - "java/src/org/chromium/components/adblock/ResourceClassificationNotifier.java", +diff --git a/chrome/browser/adblock/android/BUILD.gn b/chrome/browser/adblock/android/BUILD.gn +--- a/chrome/browser/adblock/android/BUILD.gn ++++ b/chrome/browser/adblock/android/BUILD.gn +@@ -35,6 +35,13 @@ android_library("adblock_java_tests") { + "javatests/src/org/chromium/chrome/browser/adblock/TestPagesWebsocketTest.java", ] + ### Android UI module start + sources += [ ++ "javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java", ++ ] ++ ### Android UI module end + + deps = [ + "//base:base_java", +@@ -65,4 +72,7 @@ android_library("adblock_java_tests") { + "//url:gurl_java", + ] + ++ ### Android UI module start ++ deps += [ "//components/adblock/android:adblock_ui_java" ] ++ ### Android UI module end + } +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java +@@ -0,0 +1,63 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import androidx.test.filters.SmallTest; ++ ++import org.junit.Assert; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.Test; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.ApplicationTestUtils; ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.base.test.util.Feature; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.browser.settings.SettingsActivityTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.settings.AdblockFilterListsFragment; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class AdblockFilterFragmentTest { ++ @Rule ++ public final ChromeTabbedActivityTestRule mActivityTestRule = ++ new ChromeTabbedActivityTestRule(); ++ @Rule ++ public SettingsActivityTestRule mTestRule = ++ new SettingsActivityTestRule<>(AdblockFilterListsFragment.class); ++ ++ @Before ++ public void setUp() throws Exception { ++ mActivityTestRule.startMainActivityOnBlankPage(); ++ mTestRule.startSettingsActivity(); ++ ApplicationTestUtils.finishActivity(mTestRule.getActivity()); ++ } ++ ++ @Test ++ @SmallTest ++ @Feature({"adblock"}) ++ public void testLanguageFiltersNotEmpty() { ++ mTestRule.startSettingsActivity(); ++ AdblockFilterListsFragment fragment = mTestRule.getFragment(); ++ Assert.assertNotNull(fragment); ++ Assert.assertNotEquals(0, fragment.getListView().getCount()); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java +@@ -0,0 +1,118 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import androidx.test.InstrumentationRegistry; ++import androidx.test.filters.MediumTest; ++ ++import org.hamcrest.Matchers; ++import org.junit.After; ++import org.junit.Assert; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.Test; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.task.PostTask; ++import org.chromium.base.task.TaskTraits; ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.base.test.util.Criteria; ++import org.chromium.base.test.util.CriteriaHelper; ++import org.chromium.base.test.util.Feature; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.browser.infobar.InfoBarIdentifier; ++import org.chromium.chrome.browser.tabmodel.TabModelSelector; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.chrome.test.util.browser.Features.DisableFeatures; ++import org.chromium.components.infobars.InfoBar; ++import org.chromium.net.test.EmbeddedTestServer; ++ ++// NOTE: Messages feature had to be disabled when testing infobars ++// https://gitlab.com/eyeo/adblockplus/abpchromium/-/commit/a617caaa5692630f73d967a55d86bf52cc491ad5 ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++@DisableFeatures({ChromeFeatureList.MESSAGES_FOR_ANDROID_INFRASTRUCTURE}) ++public class AdblockPopupInfoBarTest { ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ ++ private static final String POPUP_HTML_PATH = "/chrome/test/data/android/popup_test.html"; ++ ++ private String mPopupHtmlUrl; ++ private EmbeddedTestServer mTestServer; ++ ++ @Before ++ public void setUp() throws Exception { ++ // Create a new temporary instance to ensure the Class is loaded. Otherwise we will get a ++ // ClassNotFoundException when trying to instantiate during startup. ++ mActivityTestRule.startMainActivityOnBlankPage(); ++ ++ PostTask.runOrPostTask( ++ TaskTraits.UI_DEFAULT, () -> Assert.assertEquals(0, getNumInfobarsShowing())); ++ ++ mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); ++ mPopupHtmlUrl = mTestServer.getURL(POPUP_HTML_PATH); ++ } ++ ++ @After ++ public void tearDown() { ++ mTestServer.stopAndDestroyServer(); ++ } ++ ++ private int getNumInfobarsShowing() { ++ return mActivityTestRule.getInfoBars().size(); ++ } ++ ++ public int getTabCount() { ++ final TabModelSelector tabModelSelector = ++ mActivityTestRule.getActivity().getTabModelSelectorSupplier().get(); ++ Assert.assertNotNull(tabModelSelector); ++ return tabModelSelector.getTotalTabCount(); ++ } ++ ++ @Test ++ @MediumTest ++ @Feature({"adblock"}) ++ public void popUpBlockedInfoBarVisibleWhenAbpEnabled() throws InterruptedException { ++ mActivityTestRule.loadUrl(mPopupHtmlUrl); ++ Assert.assertEquals(1, getTabCount()); ++ CriteriaHelper.pollUiThread(() -> { ++ Criteria.checkThat(getNumInfobarsShowing(), Matchers.is(1)); ++ InfoBar frontInfoBar = mActivityTestRule.getInfoBars().get(0); ++ Criteria.checkThat("Invalid infobar type shown", frontInfoBar.getInfoBarIdentifier(), ++ Matchers.is(InfoBarIdentifier.POPUP_BLOCKED_INFOBAR_DELEGATE_MOBILE)); ++ }); ++ } ++ ++ @Test ++ @MediumTest ++ @CommandLineFlags.Add({"disable-adblock"}) ++ @Feature({"adblock"}) ++ public void popUpBlockedInfoBarVisibleWhenAbpDisabled() { ++ mActivityTestRule.loadUrl(mPopupHtmlUrl); ++ Assert.assertEquals(1, getTabCount()); ++ CriteriaHelper.pollUiThread(() -> { ++ Criteria.checkThat(getNumInfobarsShowing(), Matchers.is(1)); ++ InfoBar frontInfoBar = mActivityTestRule.getInfoBars().get(0); ++ Criteria.checkThat("Invalid infobar type shown", frontInfoBar.getInfoBarIdentifier(), ++ Matchers.is(InfoBarIdentifier.POPUP_BLOCKED_INFOBAR_DELEGATE_MOBILE)); ++ }); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java +@@ -0,0 +1,103 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import androidx.test.InstrumentationRegistry; ++import androidx.test.filters.MediumTest; ++ ++import org.hamcrest.Matchers; ++import org.junit.After; ++import org.junit.Assert; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.Test; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.base.test.util.Criteria; ++import org.chromium.base.test.util.CriteriaHelper; ++import org.chromium.base.test.util.Feature; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.browser.tabmodel.TabModelSelector; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.messages.MessagesTestHelper; ++import org.chromium.net.test.EmbeddedTestServer; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class AdblockPopupMessageTest { ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ ++ private static final String POPUP_HTML_PATH = "/chrome/test/data/android/popup_test.html"; ++ ++ private String mPopupHtmlUrl; ++ private EmbeddedTestServer mTestServer; ++ ++ @Before ++ public void setUp() throws Exception { ++ // Create a new temporary instance to ensure the Class is loaded. Otherwise we will get a ++ // ClassNotFoundException when trying to instantiate during startup. ++ mActivityTestRule.startMainActivityOnBlankPage(); ++ ++ mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); ++ mPopupHtmlUrl = mTestServer.getURL(POPUP_HTML_PATH); ++ } ++ ++ @After ++ public void tearDown() { ++ mTestServer.stopAndDestroyServer(); ++ } ++ ++ public int getTabCount() { ++ final TabModelSelector tabModelSelector = ++ mActivityTestRule.getActivity().getTabModelSelectorSupplier().get(); ++ Assert.assertNotNull(tabModelSelector); ++ return tabModelSelector.getTotalTabCount(); ++ } ++ ++ @Test ++ @MediumTest ++ @Feature({"adblock"}) ++ public void popUpBlockedMessageVisibleWhenAbpEnabled() throws InterruptedException { ++ mActivityTestRule.loadUrl(mPopupHtmlUrl); ++ Assert.assertEquals(1, getTabCount()); ++ ++ CriteriaHelper.pollUiThread(() -> { ++ Criteria.checkThat(MessagesTestHelper.getMessageCount( ++ mActivityTestRule.getActivity().getWindowAndroid()), ++ Matchers.is(1)); ++ }); ++ } ++ ++ @Test ++ @MediumTest ++ @CommandLineFlags.Add({"disable-adblock"}) ++ @Feature({"adblock"}) ++ public void popUpBlockedMessageVisibleWhenAbpDisabled() { ++ mActivityTestRule.loadUrl(mPopupHtmlUrl); ++ Assert.assertEquals(1, getTabCount()); ++ ++ CriteriaHelper.pollUiThread(() -> { ++ Criteria.checkThat(MessagesTestHelper.getMessageCount( ++ mActivityTestRule.getActivity().getWindowAndroid()), ++ Matchers.is(1)); ++ }); ++ } ++} +diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BUILD.gn +--- a/components/adblock/android/BUILD.gn ++++ b/components/adblock/android/BUILD.gn +@@ -66,6 +66,74 @@ android_library("adblock_controller_java") { + resources_package = "org.chromium.components.adblock.controller" + } + ++### Android UI module start ++android_library("adblock_ui_java") { ++ sources = [ + "java/src/org/chromium/components/adblock/settings/AdblockAllowedDomainsFragment.java", + "java/src/org/chromium/components/adblock/settings/AdblockCustomFilterListsFragment.java", + "java/src/org/chromium/components/adblock/settings/AdblockCustomFiltersFragment.java", @@ -302,16 +652,28 @@ diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BU + "java/src/org/chromium/components/adblock/settings/AdblockMoreOptionsFragment.java", + "java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java", + ] -+### Android UI module end - - deps = [ - ":java_resources", -@@ -58,6 +70,33 @@ android_resources("java_resources") { - sources = [ - "java/res/values/adblock_settings_locales_titles.xml", - ] -+### Android UI module start -+ sources += [ ++ ++ deps = [ ++ ":adblock_controller_java", ++ ":java_ui_resources", ++ "//base:base_java", ++ "//base:jni_java", ++ "//build/android:build_java", ++ "//chrome/browser/preferences:java", ++ "//chrome/browser/profiles/android:java", ++ "//components/browser_ui/settings/android:java", ++ "//components/prefs/android:java", ++ "//components/user_prefs/android:java", ++ "//content/public/android:content_full_java", ++ "//third_party/androidx:androidx_fragment_fragment_java", ++ "//third_party/androidx:androidx_preference_preference_java", ++ ] ++ ++ resources_package = "org.chromium.components.adblock" ++} ++ ++android_resources("java_ui_resources") { ++ sources = [ + "java/res/drawable-hdpi/fragment_adblock_custom_item_add.png", + "java/res/drawable-hdpi/fragment_adblock_custom_item_remove.png", + "java/res/drawable-mdpi/fragment_adblock_custom_item_add.png", @@ -336,29 +698,8 @@ diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BU + ] + + deps = [ ":adblock_strings_grd" ] -+### Android UI module end - } - - android_library("adblock_java_tests") { -@@ -84,6 +123,13 @@ android_library("adblock_java_tests") { - "javatests/src/org/chromium/components/adblock/TestVerificationUtils.java", - ] - -+ ### Android UI module start -+ sources += [ -+ "javatests/src/org/chromium/components/adblock/AdblockPopupInfoBarTest.java", -+ "javatests/src/org/chromium/components/adblock/AdblockPopupMessageTest.java", -+ "javatests/src/org/chromium/components/adblock/AdblockFilterFragmentTest.java", -+ ] -+ ### Android UI module end - - deps = [ - ":adblock_java", -@@ -109,3 +155,12 @@ android_library("adblock_java_tests") { - "//third_party/junit:junit", - ] - } -+### Android UI module start ++} ++ +java_strings_grd("adblock_strings_grd") { + grd_file = "adblock_strings.grd" + outputs = [ "values/adblock_strings.xml" ] + @@ -367,6 +708,9 @@ diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BU + [ "values-{{source_name_part}}/adblock_strings.xml" ]) +} +### Android UI module end + + android_library("adblock_java_tests_base") { + testonly = true diff --git a/components/adblock/android/README.md b/components/adblock/android/README.md new file mode 100644 --- /dev/null @@ -1420,7 +1764,7 @@ new file mode 100644 + final List installed = + AdblockController.getInstance().getInstalledSubscriptions(); + final List recommended = -+ AdblockController.getInstance().getRecommendedSubscriptions(getActivity()); ++ AdblockController.getInstance().getRecommendedSubscriptions(); + final List customStrings = new ArrayList(); + for (final AdblockController.Subscription subscription : installed) { + if (recommended.contains(subscription)) { @@ -1802,12 +2146,12 @@ new file mode 100644 + + @Override + public int getCount() { -+ return mController.getRecommendedSubscriptions(mContext).size(); ++ return mController.getRecommendedSubscriptions().size(); + } + + @Override + public Object getItem(int pos) { -+ return mController.getRecommendedSubscriptions(mContext).get(pos); ++ return mController.getRecommendedSubscriptions().get(pos); + } + + @Override @@ -1963,7 +2307,7 @@ diff --git a/components/adblock/android/java/src/org/chromium/components/adblock new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java -@@ -0,0 +1,137 @@ +@@ -0,0 +1,141 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// eyeo Chromium SDK is free software: you can redistribute it and/or modify @@ -1979,19 +2323,17 @@ new file mode 100644 +package org.chromium.components.adblock.settings; + +import android.os.Bundle; -+import android.util.Log; -+import android.view.MotionEvent; -+import android.view.View; + +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; + +import org.chromium.build.BuildConfig; ++import org.chromium.chrome.browser.preferences.Pref; ++import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.components.adblock.AdblockController; +import org.chromium.components.adblock.R; +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; -+ -+import java.lang.System; ++import org.chromium.components.user_prefs.UserPrefs; + +public class AdblockSettingsFragment + extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener { @@ -2024,12 +2366,17 @@ new file mode 100644 + mMoreOptions = findPreference(SETTINGS_MORE_OPTIONS_KEY); + } + ++ private boolean areMoreOptionsEnabled() { ++ return UserPrefs.get(Profile.getLastUsedRegularProfile()) ++ .getBoolean(Pref.ADBLOCK_MORE_OPTIONS_ENABLED); ++ } ++ + private void applyAdblockEnabled(boolean enabledValue) { + mFilterLists.setEnabled(enabledValue); + mAcceptableAdsEnabled.setEnabled(enabledValue); + mAllowedDomains.setEnabled(enabledValue); + mMoreOptions.setEnabled(enabledValue); -+ mMoreOptions.setVisible(AdblockController.getInstance().areMoreOptionsEnabled()); ++ mMoreOptions.setVisible(areMoreOptionsEnabled()); + } + + private void synchronizePreferences() { @@ -2058,7 +2405,8 @@ new file mode 100644 + + mOnOffTogleTimestamp = now; + if (mOnOffClickCount >= ON_OFF_TOGGLE_COUNT_TO_ENABLE_MORE_OPTIONS) { -+ AdblockController.getInstance().setMoreOptionsEnabled(true); ++ UserPrefs.get(Profile.getLastUsedRegularProfile()) ++ .setBoolean(Pref.ADBLOCK_MORE_OPTIONS_ENABLED, true); + } + } + @@ -2101,335 +2449,6 @@ new file mode 100644 + synchronizePreferences(); + } +} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockFilterFragmentTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockFilterFragmentTest.java -new file mode 100644 ---- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockFilterFragmentTest.java -@@ -0,0 +1,73 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+package org.chromium.components.adblock; -+ -+import androidx.test.InstrumentationRegistry; -+import androidx.test.rule.ActivityTestRule; -+ -+import androidx.test.filters.SmallTest; -+ -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; -+import org.junit.Test; -+import org.junit.runner.RunWith; -+ -+import org.chromium.base.Log; -+import org.chromium.base.test.util.ApplicationTestUtils; -+import org.chromium.base.test.util.CallbackHelper; -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.browser.settings.SettingsActivityTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.components.adblock.settings.AdblockFilterListsFragment; -+import org.chromium.content_public.browser.test.util.TestThreadUtils; -+ -+import java.net.URL; -+import java.util.concurrent.TimeUnit; -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class AdblockFilterFragmentTest { -+ @Rule -+ public final ChromeTabbedActivityTestRule mActivityTestRule = -+ new ChromeTabbedActivityTestRule(); -+ @Rule -+ public SettingsActivityTestRule mTestRule = -+ new SettingsActivityTestRule<>(AdblockFilterListsFragment.class); -+ -+ @Before -+ public void setUp() throws Exception { -+ mActivityTestRule.startMainActivityOnBlankPage(); -+ mTestRule.startSettingsActivity(); -+ ApplicationTestUtils.finishActivity(mTestRule.getActivity()); -+ } -+ -+ @Test -+ @SmallTest -+ @Feature({"adblock"}) -+ public void testLanguageFiltersNotEmpty() { -+ mTestRule.startSettingsActivity(); -+ AdblockFilterListsFragment fragment = mTestRule.getFragment(); -+ Assert.assertNotNull(fragment); -+ Assert.assertNotEquals(0, fragment.getListView().getCount()); -+ } -+} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockPopupInfoBarTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockPopupInfoBarTest.java -new file mode 100644 ---- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockPopupInfoBarTest.java -@@ -0,0 +1,129 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+package org.chromium.components.adblock; -+ -+import androidx.test.InstrumentationRegistry; -+import androidx.test.filters.MediumTest; -+ -+import org.hamcrest.Matchers; -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; -+import org.junit.Test; -+import org.junit.runner.RunWith; -+ -+import org.chromium.base.task.PostTask; -+import org.chromium.base.task.TaskTraits; -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.Criteria; -+import org.chromium.base.test.util.CriteriaHelper; -+import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeFeatureList; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.browser.infobar.InfoBarIdentifier; -+import org.chromium.chrome.browser.tabmodel.TabModelSelector; -+import org.chromium.chrome.test.ChromeBrowserTestRule; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.chrome.test.util.browser.Features.DisableFeatures; -+import org.chromium.components.infobars.InfoBar; -+import org.chromium.net.test.EmbeddedTestServer; -+ -+import java.net.MalformedURLException; -+import java.net.URL; -+import java.util.ArrayList; -+import java.util.Arrays; -+import java.util.HashMap; -+import java.util.List; -+import java.util.Map; -+import java.util.concurrent.TimeUnit; -+import java.util.concurrent.TimeoutException; -+ -+// NOTE: Messages feature had to be disabled when testing infobars -+// https://gitlab.com/eyeo/adblockplus/abpchromium/-/commit/a617caaa5692630f73d967a55d86bf52cc491ad5 -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+@DisableFeatures({ChromeFeatureList.MESSAGES_FOR_ANDROID_INFRASTRUCTURE}) -+public class AdblockPopupInfoBarTest { -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ -+ private static final String POPUP_HTML_PATH = "/chrome/test/data/android/popup_test.html"; -+ -+ private String mPopupHtmlUrl; -+ private EmbeddedTestServer mTestServer; -+ -+ @Before -+ public void setUp() throws Exception { -+ // Create a new temporary instance to ensure the Class is loaded. Otherwise we will get a -+ // ClassNotFoundException when trying to instantiate during startup. -+ mActivityTestRule.startMainActivityOnBlankPage(); -+ -+ PostTask.runOrPostTask( -+ TaskTraits.UI_DEFAULT, () -> Assert.assertTrue(getNumInfobarsShowing() == 0)); -+ -+ mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); -+ mPopupHtmlUrl = mTestServer.getURL(POPUP_HTML_PATH); -+ } -+ -+ @After -+ public void tearDown() { -+ mTestServer.stopAndDestroyServer(); -+ } -+ -+ private int getNumInfobarsShowing() { -+ return mActivityTestRule.getInfoBars().size(); -+ } -+ -+ public int getTabCount() { -+ return mActivityTestRule.getActivity() -+ .getTabModelSelectorSupplier() -+ .get() -+ .getTotalTabCount(); -+ } -+ -+ @Test -+ @MediumTest -+ @Feature({"adblock"}) -+ public void popUpBlockedInfoBarVisibleWhenAbpEnabled() throws InterruptedException { -+ mActivityTestRule.loadUrl(mPopupHtmlUrl); -+ Assert.assertEquals(1, getTabCount()); -+ CriteriaHelper.pollUiThread(() -> { -+ Criteria.checkThat(getNumInfobarsShowing(), Matchers.is(1)); -+ InfoBar frontInfoBar = mActivityTestRule.getInfoBars().get(0); -+ Criteria.checkThat("Invalid infobar type shown", frontInfoBar.getInfoBarIdentifier(), -+ Matchers.is(InfoBarIdentifier.POPUP_BLOCKED_INFOBAR_DELEGATE_MOBILE)); -+ }); -+ } -+ -+ @Test -+ @MediumTest -+ @CommandLineFlags.Add({"disable-adblock"}) -+ @Feature({"adblock"}) -+ public void popUpBlockedInfoBarVisibleWhenAbpDisabled() { -+ mActivityTestRule.loadUrl(mPopupHtmlUrl); -+ Assert.assertEquals(1, getTabCount()); -+ CriteriaHelper.pollUiThread(() -> { -+ Criteria.checkThat(getNumInfobarsShowing(), Matchers.is(1)); -+ InfoBar frontInfoBar = mActivityTestRule.getInfoBars().get(0); -+ Criteria.checkThat("Invalid infobar type shown", frontInfoBar.getInfoBarIdentifier(), -+ Matchers.is(InfoBarIdentifier.POPUP_BLOCKED_INFOBAR_DELEGATE_MOBILE)); -+ }); -+ } -+} -diff --git a/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockPopupMessageTest.java b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockPopupMessageTest.java -new file mode 100644 ---- /dev/null -+++ b/components/adblock/android/javatests/src/org/chromium/components/adblock/AdblockPopupMessageTest.java -@@ -0,0 +1,112 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+package org.chromium.components.adblock; -+ -+import androidx.test.InstrumentationRegistry; -+import androidx.test.filters.MediumTest; -+ -+import org.hamcrest.Matchers; -+import org.junit.After; -+import org.junit.Assert; -+import org.junit.Before; -+import org.junit.Rule; -+import org.junit.Test; -+import org.junit.runner.RunWith; -+ -+import org.chromium.base.test.util.CommandLineFlags; -+import org.chromium.base.test.util.Criteria; -+import org.chromium.base.test.util.CriteriaHelper; -+import org.chromium.base.test.util.Feature; -+import org.chromium.chrome.browser.flags.ChromeSwitches; -+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; -+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -+import org.chromium.components.messages.MessagesTestHelper; -+import org.chromium.net.test.EmbeddedTestServer; -+ -+import java.net.MalformedURLException; -+import java.net.URL; -+import java.util.ArrayList; -+import java.util.Arrays; -+import java.util.HashMap; -+import java.util.List; -+import java.util.Map; -+import java.util.concurrent.TimeUnit; -+import java.util.concurrent.TimeoutException; -+ -+@RunWith(ChromeJUnit4ClassRunner.class) -+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) -+public class AdblockPopupMessageTest { -+ @Rule -+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); -+ -+ private static final String POPUP_HTML_PATH = "/chrome/test/data/android/popup_test.html"; -+ -+ private String mPopupHtmlUrl; -+ private EmbeddedTestServer mTestServer; -+ -+ @Before -+ public void setUp() throws Exception { -+ // Create a new temporary instance to ensure the Class is loaded. Otherwise we will get a -+ // ClassNotFoundException when trying to instantiate during startup. -+ mActivityTestRule.startMainActivityOnBlankPage(); -+ -+ mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); -+ mPopupHtmlUrl = mTestServer.getURL(POPUP_HTML_PATH); -+ } -+ -+ @After -+ public void tearDown() { -+ mTestServer.stopAndDestroyServer(); -+ } -+ -+ public int getTabCount() { -+ return mActivityTestRule.getActivity() -+ .getTabModelSelectorSupplier() -+ .get() -+ .getTotalTabCount(); -+ } -+ -+ @Test -+ @MediumTest -+ @Feature({"adblock"}) -+ public void popUpBlockedMessageVisibleWhenAbpEnabled() throws InterruptedException { -+ mActivityTestRule.loadUrl(mPopupHtmlUrl); -+ Assert.assertEquals(1, getTabCount()); -+ -+ CriteriaHelper.pollUiThread(() -> { -+ Criteria.checkThat(MessagesTestHelper.getMessageCount( -+ mActivityTestRule.getActivity().getWindowAndroid()), -+ Matchers.is(1)); -+ }); -+ } -+ -+ @Test -+ @MediumTest -+ @CommandLineFlags.Add({"disable-adblock"}) -+ @Feature({"adblock"}) -+ public void popUpBlockedMessageVisibleWhenAbpDisabled() { -+ mActivityTestRule.loadUrl(mPopupHtmlUrl); -+ Assert.assertEquals(1, getTabCount()); -+ -+ CriteriaHelper.pollUiThread(() -> { -+ Criteria.checkThat(MessagesTestHelper.getMessageCount( -+ mActivityTestRule.getActivity().getWindowAndroid()), -+ Matchers.is(1)); -+ }); -+ } -+} diff --git a/components/adblock/android/translations/adblock_strings_af.xtb b/components/adblock/android/translations/adblock_strings_af.xtb new file mode 100644 --- /dev/null diff --git a/build/patches/eyeo-117.0.5938.0-base.patch b/build/patches/eyeo-beta-118.0.5993.48-base.patch similarity index 88% rename from build/patches/eyeo-117.0.5938.0-base.patch rename to build/patches/eyeo-beta-118.0.5993.48-base.patch index 05c42505..5519f110 100644 --- a/build/patches/eyeo-117.0.5938.0-base.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-base.patch @@ -1,8 +1,8 @@ From: chromium-sdk -Date: Mon, 21 Aug 2023 18:20:40 +0200 +Date: Thu, 12 Oct 2023 14:46:00 +0200 Subject: eyeo Browser Ad filtering Solution: Base Module -Based on Chromium 117.0.5938.0 +Based on Chromium 118.0.5993.48 --- DEPS | 22 + LICENSE | 15 + @@ -10,7 +10,7 @@ Based on Chromium 117.0.5938.0 base/trace_event/builtin_categories.h | 5 + build/install-build-deps.py | 10 +- components/BUILD.gn | 15 + - components/adblock/CHANGELOG.md | 611 ++++ + components/adblock/CHANGELOG.md | 635 +++++ components/adblock/LICENSE | 674 +++++ components/adblock/README.md | 80 + components/adblock/content/BUILD.gn | 22 + @@ -19,18 +19,18 @@ Based on Chromium 117.0.5938.0 .../browser/adblock_controller_factory_base.h | 50 + .../content/browser/adblock_filter_match.h | 30 + .../adblock_telemetry_service_factory_base.cc | 100 + - .../adblock_telemetry_service_factory_base.h | 57 + + .../adblock_telemetry_service_factory_base.h | 54 + .../browser/adblock_url_loader_factory.cc | 746 +++++ - .../browser/adblock_url_loader_factory.h | 92 + - .../adblock_url_loader_factory_for_test.cc | 372 +++ + .../browser/adblock_url_loader_factory.h | 100 + + .../adblock_url_loader_factory_for_test.cc | 436 +++ .../adblock_url_loader_factory_for_test.h | 70 + - .../browser/adblock_webcontents_observer.cc | 187 ++ + .../browser/adblock_webcontents_observer.cc | 188 ++ .../browser/adblock_webcontents_observer.h | 85 + .../content_security_policy_injector.h | 61 + .../content_security_policy_injector_impl.cc | 125 + .../content_security_policy_injector_impl.h | 66 + .../adblock/content/browser/element_hider.h | 70 + - .../content/browser/element_hider_impl.cc | 305 ++ + .../content/browser/element_hider_impl.cc | 323 +++ .../content/browser/element_hider_impl.h | 55 + .../content/browser/element_hider_info.cc | 37 + .../content/browser/element_hider_info.h | 44 + @@ -43,12 +43,12 @@ Based on Chromium 117.0.5938.0 .../resource_classification_runner_impl.h | 156 ++ .../content/browser/session_stats_impl.cc | 86 + .../content/browser/session_stats_impl.h | 71 + - .../subscription_service_factory_base.cc | 225 ++ + .../subscription_service_factory_base.cc | 224 ++ .../subscription_service_factory_base.h | 60 + .../test/adblock_url_loader_factory_test.cc | 399 +++ - .../test/adblock_webcontents_observer_test.cc | 159 ++ - ...tent_security_policy_injector_impl_test.cc | 177 ++ - .../browser/test/element_hider_impl_test.cc | 390 +++ + .../test/adblock_webcontents_observer_test.cc | 164 ++ + ...tent_security_policy_injector_impl_test.cc | 183 ++ + .../browser/test/element_hider_impl_test.cc | 425 +++ .../test/frame_hierarchy_builder_test.cc | 154 + ...dblock_content_security_policy_injector.cc | 28 + ...adblock_content_security_policy_injector.h | 44 + @@ -58,18 +58,18 @@ Based on Chromium 117.0.5938.0 .../test/mock_frame_hierarchy_builder.h | 49 + .../mock_resource_classification_runner.cc | 49 + .../mock_resource_classification_runner.h | 104 + - ...esource_classification_runner_impl_test.cc | 453 +++ + ...esource_classification_runner_impl_test.cc | 463 +++ .../browser/test/session_stats_impl_test.cc | 74 + components/adblock/core/BUILD.gn | 175 ++ - .../activeping_telemetry_topic_provider.cc | 243 ++ - .../activeping_telemetry_topic_provider.h | 84 + + .../activeping_telemetry_topic_provider.cc | 285 ++ + .../activeping_telemetry_topic_provider.h | 87 + components/adblock/core/adblock_controller.h | 64 + .../adblock/core/adblock_controller_impl.cc | 271 ++ .../adblock/core/adblock_controller_impl.h | 95 + components/adblock/core/adblock_switches.cc | 26 + components/adblock/core/adblock_switches.h | 29 + - .../adblock/core/adblock_telemetry_service.cc | 244 ++ - .../adblock/core/adblock_telemetry_service.h | 107 + + .../adblock/core/adblock_telemetry_service.cc | 258 ++ + .../adblock/core/adblock_telemetry_service.h | 120 + components/adblock/core/classifier/BUILD.gn | 76 + .../core/classifier/resource_classifier.cc | 24 + .../core/classifier/resource_classifier.h | 90 + @@ -77,7 +77,7 @@ Based on Chromium 117.0.5938.0 .../classifier/resource_classifier_impl.h | 64 + .../test/mock_resource_classifier.cc | 26 + .../test/mock_resource_classifier.h | 66 + - .../test/resource_classifier_impl_test.cc | 634 +++++ + .../test/resource_classifier_impl_test.cc | 625 +++++ .../test/resource_classifier_perftest.cc | 235 ++ components/adblock/core/common/BUILD.gn | 110 + .../adblock/core/common/adblock_constants.cc | 164 ++ @@ -102,13 +102,13 @@ Based on Chromium 117.0.5938.0 .../configuration/filtering_configuration.h | 90 + .../filtering_configuration_prefs.cc | 33 + .../filtering_configuration_prefs.h | 30 + - .../persistent_filtering_configuration.cc | 270 ++ + .../persistent_filtering_configuration.cc | 274 ++ .../persistent_filtering_configuration.h | 86 + - ...persistent_filtering_configuration_test.cc | 240 ++ - .../test/fake_filtering_configuration.cc | 114 + + .../test/fake_filtering_configuration.cc | 115 + .../test/fake_filtering_configuration.h | 66 + .../test/mock_filtering_configuration.cc | 34 + - .../test/mock_filtering_configuration.h | 75 + + .../test/mock_filtering_configuration.h | 81 + + ...persistent_filtering_configuration_test.cc | 252 ++ components/adblock/core/converter/BUILD.gn | 83 + .../adblock/core/converter/converter_main.cc | 115 + .../core/converter/flatbuffer_converter.cc | 134 + @@ -116,7 +116,7 @@ Based on Chromium 117.0.5938.0 .../adblock/core/converter/parser/BUILD.gn | 66 + .../core/converter/parser/content_filter.cc | 68 + .../core/converter/parser/content_filter.h | 50 + - .../core/converter/parser/domain_option.cc | 115 + + .../core/converter/parser/domain_option.cc | 114 + .../core/converter/parser/domain_option.h | 59 + .../converter/parser/filter_classifier.cc | 39 + .../core/converter/parser/filter_classifier.h | 46 + @@ -162,7 +162,7 @@ Based on Chromium 117.0.5938.0 .../filtering_configuration_maintainer_impl.h | 119 + .../subscription/installed_subscription.cc | 42 + .../subscription/installed_subscription.h | 138 + - .../installed_subscription_impl.cc | 552 ++++ + .../installed_subscription_impl.cc | 554 ++++ .../installed_subscription_impl.h | 150 + .../ongoing_subscription_request.h | 50 + .../ongoing_subscription_request_impl.cc | 191 ++ @@ -179,7 +179,7 @@ Based on Chromium 117.0.5938.0 .../subscription/subscription_collection.h | 99 + .../subscription_collection_impl.cc | 353 +++ .../subscription_collection_impl.h | 97 + - .../core/subscription/subscription_config.cc | 320 +++ + .../core/subscription/subscription_config.cc | 338 +++ .../core/subscription/subscription_config.h | 121 + .../subscription/subscription_downloader.h | 66 + .../subscription_downloader_impl.cc | 289 ++ @@ -199,7 +199,7 @@ Based on Chromium 117.0.5938.0 .../subscription/subscription_validator.h | 59 + .../subscription_validator_impl.cc | 145 + .../subscription_validator_impl.h | 53 + - ...ring_configuration_maintainer_impl_test.cc | 900 ++++++ + ...ring_configuration_maintainer_impl_test.cc | 908 ++++++ .../test/installed_subscription_impl_test.cc | 111 + .../test/load_gzipped_test_file.cc | 43 + .../test/load_gzipped_test_file.h | 35 + @@ -229,16 +229,16 @@ Based on Chromium 117.0.5938.0 .../test/subscription_collection_impl_test.cc | 1020 +++++++ .../test/subscription_downloader_impl_test.cc | 578 ++++ ...scription_persistent_metadata_impl_test.cc | 213 ++ - ...bscription_persistent_storage_impl_test.cc | 342 +++ - .../test/subscription_service_impl_test.cc | 275 ++ + ...bscription_persistent_storage_impl_test.cc | 347 +++ + .../test/subscription_service_impl_test.cc | 287 ++ .../test/subscription_updater_impl_test.cc | 98 + .../test/subscription_validator_impl_test.cc | 252 ++ .../test/url_keyword_extractor_test.cc | 74 + .../subscription/url_keyword_extractor.cc | 68 + .../core/subscription/url_keyword_extractor.h | 61 + - ...ctiveping_telemetry_topic_provider_test.cc | 320 +++ - .../core/test/adblock_controller_impl_test.cc | 481 ++++ - .../adblock_telemetry_service_unittest.cc | 376 +++ + ...ctiveping_telemetry_topic_provider_test.cc | 328 +++ + .../core/test/adblock_controller_impl_test.cc | 449 +++ + .../adblock_telemetry_service_unittest.cc | 409 +++ .../core/test/bundled_subscription_test.cc | 49 + .../core/test/mock_adblock_controller.cc | 26 + .../core/test/mock_adblock_controller.h | 71 + @@ -272,17 +272,17 @@ Based on Chromium 117.0.5938.0 .../docs/settings/user-setting-sequence.png | Bin 0 -> 61104 bytes .../docs/settings/user-setting-sequence.txt | 14 + components/adblock/features.gni | 47 + - components/resources/BUILD.gn | 9 + - components/resources/adblock_resources.grdp | 26 + + components/resources/BUILD.gn | 5 + + components/resources/adblock_resources.grdp | 27 + components/resources/adblocking/.gitignore | 1 + - components/resources/adblocking/BUILD.gn | 70 + + components/resources/adblocking/BUILD.gn | 82 + components/resources/adblocking/LICENSE | 14 + - components/resources/adblocking/anticv.txt.gz | Bin 0 -> 64073 bytes - .../resources/adblocking/easylist.txt.gz | Bin 0 -> 132650 bytes + components/resources/adblocking/anticv.txt.gz | Bin 0 -> 66744 bytes + .../resources/adblocking/easylist.txt.gz | Bin 0 -> 124964 bytes components/resources/adblocking/elemhide.js | 43 + .../adblocking/elemhide_for_selector.jst | 53 + .../resources/adblocking/elemhideemu.jst | 1436 ++++++++++ - .../adblocking/exceptionrules.txt.gz | Bin 0 -> 844912 bytes + .../adblocking/exceptionrules.txt.gz | Bin 0 -> 846414 bytes components/resources/adblocking/update.sh | 33 + components/resources/components_resources.grd | 6 + .../data/adblock/40_regex_patterns.txt.gz | Bin 0 -> 904 bytes @@ -310,8 +310,11 @@ Based on Chromium 117.0.5938.0 .../core/frame/local_frame_mojo_handler.cc | 12 + .../core/frame/local_frame_mojo_handler.h | 5 + .../url_loader/mojo_url_loader_client.cc | 6 +- + tools/eyeo/generate_interdiffs.sh | 150 + + tools/eyeo/generate_modules.sh | 209 ++ + tools/eyeo/snippets_deps.py | 61 + tools/gritsettings/resource_ids.spec | 8 + - 307 files changed, 36335 insertions(+), 4 deletions(-) + 310 files changed, 37070 insertions(+), 4 deletions(-) create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE create mode 100644 components/adblock/README.md @@ -406,11 +409,11 @@ Based on Chromium 117.0.5938.0 create mode 100644 components/adblock/core/configuration/filtering_configuration_prefs.h create mode 100644 components/adblock/core/configuration/persistent_filtering_configuration.cc create mode 100644 components/adblock/core/configuration/persistent_filtering_configuration.h - create mode 100644 components/adblock/core/configuration/persistent_filtering_configuration_test.cc create mode 100644 components/adblock/core/configuration/test/fake_filtering_configuration.cc create mode 100644 components/adblock/core/configuration/test/fake_filtering_configuration.h create mode 100644 components/adblock/core/configuration/test/mock_filtering_configuration.cc create mode 100644 components/adblock/core/configuration/test/mock_filtering_configuration.h + create mode 100644 components/adblock/core/configuration/test/persistent_filtering_configuration_test.cc create mode 100644 components/adblock/core/converter/BUILD.gn create mode 100644 components/adblock/core/converter/converter_main.cc create mode 100644 components/adblock/core/converter/flatbuffer_converter.cc @@ -594,11 +597,14 @@ Based on Chromium 117.0.5938.0 create mode 100644 components/test/data/adblock/exceptionrules.txt.gz create mode 100644 components/test/data/adblock/longurl.txt.gz create mode 100644 components/test/data/adblock/random_shuf_100.tsv.sqlite + create mode 100755 tools/eyeo/generate_interdiffs.sh + create mode 100755 tools/eyeo/generate_modules.sh + create mode 100644 tools/eyeo/snippets_deps.py diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -186,6 +186,10 @@ vars = { +@@ -182,6 +182,10 @@ vars = { # flag is set True. 'checkout_wpr_archives': False, @@ -609,28 +615,28 @@ diff --git a/DEPS b/DEPS # By default, do not check out WebKit for iOS, as it is not needed unless # running against ToT WebKit rather than system WebKit. This can be overridden # e.g. with custom_vars. -@@ -300,6 +304,8 @@ vars = { +@@ -296,6 +300,8 @@ vars = { 'download_libaom_testdata': False, 'android_git': 'https://android.googlesource.com', + 'eyeo_distpartners_gitlab': 'https://gitlab.com/eyeo/distpartners', -+ 'eyeo_snippets_gitlab': 'https://gitlab.com/eyeo/snippets.git', ++ 'eyeo_snippets_gitlab': 'https://gitlab.com/eyeo/anti-cv/snippets.git', 'aomedia_git': 'https://aomedia.googlesource.com', 'boringssl_git': 'https://boringssl.googlesource.com', 'chrome_git': 'https://chrome-internal.googlesource.com', -@@ -523,6 +529,11 @@ vars = { +@@ -519,6 +525,11 @@ vars = { # and whatever else without interference from each other. 'betocore_revision': 'b902b346037ea3f4aadf8177021f6f917b16e648', + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed + # and whatever else without interference from each other. -+ 'eyeo_snippets_revision': 'v0.7.0', ++ 'eyeo_snippets_revision': 'v0.8.1', + # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': '84fb809dd6dae36d556dc0bb702c6cc2ce9d4b80', -@@ -853,6 +864,10 @@ deps = { + 'libcxx_revision': '7cf98622abaf832e2d4784889ebc69d5b6fde4d8', +@@ -849,6 +860,10 @@ deps = { 'condition': 'checkout_android and checkout_src_internal', }, @@ -639,9 +645,9 @@ diff --git a/DEPS b/DEPS + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + '243c1406199960e001e1dceccafc6fc2db6897f9', + 'url': Var('chromium_git') + '/website.git' + '@' + '98972e05cf600ceefe641ac5d83b661e2792fcb4', }, -@@ -1002,6 +1017,13 @@ deps = { +@@ -998,6 +1013,13 @@ deps = { 'dep_type': 'cipd', }, @@ -710,7 +716,7 @@ diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_ca #ifndef BASE_TRACE_EVENT_BUILTIN_CATEGORIES_H_ #define BASE_TRACE_EVENT_BUILTIN_CATEGORIES_H_ -@@ -85,6 +89,7 @@ +@@ -86,6 +90,7 @@ X("exo") \ X("extensions") \ X("explore_sites") \ @@ -758,7 +764,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn import("//base/debug/debug.gni") import("//build/config/chrome_build.gni") -@@ -124,6 +127,14 @@ test("components_unittests") { +@@ -178,6 +181,14 @@ test("components_unittests") { deps = [ "//base", @@ -773,7 +779,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/aggregation_service:unit_tests", "//components/apdu:unit_tests", "//components/assist_ranker:unit_tests", -@@ -339,6 +350,7 @@ test("components_unittests") { +@@ -401,6 +412,7 @@ test("components_unittests") { if (use_blink) { deps += [ @@ -781,7 +787,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/autofill/content/browser:unit_tests", "//components/autofill/content/renderer:unit_tests", "//components/autofill/core/common/mojom:unit_tests", -@@ -1072,6 +1084,9 @@ if (use_blink) { +@@ -1133,6 +1145,9 @@ if (use_blink) { deps = [ "//base", @@ -795,9 +801,33 @@ diff --git a/components/adblock/CHANGELOG.md b/components/adblock/CHANGELOG.md new file mode 100644 --- /dev/null +++ b/components/adblock/CHANGELOG.md -@@ -0,0 +1,611 @@ +@@ -0,0 +1,635 @@ +# Release Notes + ++## eyeo Browser Ad Filtering Solution 118.0 ++* Updated to Chromium 118.0.5993.48 ++* Allow removing existing FilteringConfigurations via Java API (DPD-2090) ++* Extracting some common code shared between the WebView and Chrome integrations (DPD-2159) ++* Fixed xpath3 snippets for WebView integrations (DPD-2162) ++* Update snippets repository URL to reflect repo move (DPD-2149) ++* Removing references to C++ AdblockController class (DPD-2153). Use the FilteringConfiguration in C++ now. ++* AdblockController still remains in Java. Internally, it redirects methods to its FilteringConfiguration. ++* Eyeometry TopicProviders can now provide debug information asynchronously (DPD-2175). This debug info is shown on chrome://adblock-internals ++* Hopeful fix for a non-reproducible crash in IsActiveOnDomain (DPD-2101) ++* The following locales now install global-filters+easylist.txt by default: th, el, sl, hr, sr, bs (DPD-2180) ++* Uzbek and Kazakh locales now install ruadlist+easylist.txt by default (DPD-2228) ++* Simplify localization of filter list titles in Android UI (DPD-2227) ++ ++Known issues: ++* monochrome_public_bundle target doesn't link. This is prioritized for fixing in 119. ++ ++## eyeo Chromium SDK 117.0 ++* Updated to Chromium 117.0.5938.44 ++* Added support for hide-if-matches-xpath3 snippet (DPD-2065) ++* Added Japanese and Turkish filter lists (DPD-2096) ++* Fixed dump from dangling pointer detector in adblock::ElementHider (DPD-2122) ++* Revert changes introduced with DPD-2101 that caused a crash in chrome://flags ++ +## eyeo Chromium SDK 116.0 +* Updated to Chromium 116.0.5845.78 +* Added webview support (DPD-2036) @@ -2152,7 +2182,7 @@ new file mode 100644 + +Differences across versions are listed in [the changelog](components/adblock/CHANGELOG.md). + -+You can also use our [interdiff script](tools/adblock/generate_interdiffs.sh) to compare two git revision ranges. You can find more information in the [integration how-to](docs/integration-how-to.md). ++You can also use our [interdiff script](tools/eyeo/generate_interdiffs.sh) to compare two git revision ranges. You can find more information in the [integration how-to](docs/integration-how-to.md). + + +## For eyeo Chromium SDK contributors @@ -2599,7 +2629,7 @@ new file mode 100644 + GetSubscriptionService(context)->GetAdblockFilteringConfiguration(), + url_loader_factory, GetInitialDelay(), GetCheckInterval()); + service->AddTopicProvider(std::make_unique( -+ utils::GetAppInfo(), prefs, GetAdblockController(context), ++ utils::GetAppInfo(), prefs, GetSubscriptionService(context), + ActivepingTelemetryTopicProvider::DefaultBaseUrl(), + ActivepingTelemetryTopicProvider::DefaultAuthToken())); + @@ -2631,7 +2661,7 @@ diff --git a/components/adblock/content/browser/adblock_telemetry_service_factor new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/adblock_telemetry_service_factory_base.h -@@ -0,0 +1,57 @@ +@@ -0,0 +1,54 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2659,7 +2689,6 @@ new file mode 100644 + +namespace adblock { + -+class AdblockController; +class SubscriptionService; +class AdblockTelemetryServiceFactoryBase + : public BrowserContextKeyedServiceFactory { @@ -2671,8 +2700,6 @@ new file mode 100644 + + protected: + virtual PrefService* GetPrefs(content::BrowserContext* context) const = 0; -+ virtual AdblockController* GetAdblockController( -+ content::BrowserContext* context) const = 0; + virtual SubscriptionService* GetSubscriptionService( + content::BrowserContext* context) const = 0; + AdblockTelemetryServiceFactoryBase(); @@ -3444,7 +3471,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.h b/c new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/adblock_url_loader_factory.h -@@ -0,0 +1,92 @@ +@@ -0,0 +1,100 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3482,11 +3509,19 @@ new file mode 100644 +class ContentSecurityPolicyInjector; + +struct AdblockURLLoaderFactoryConfig { -+ raw_ptr subscription_service = nullptr; -+ raw_ptr resource_classifier = nullptr; -+ raw_ptr element_hider = nullptr; -+ raw_ptr sitekey_storage = nullptr; -+ raw_ptr csp_injector = nullptr; ++ // These raw_ptrs have DisableDanglingPtrDetection because they point to ++ // KeyedServices that will be removed with the BrowserContext. This object has ++ // no good method to find out when the BrowserContext is destroyed, so it ++ // can't null the pointers. ++ raw_ptr ++ subscription_service = nullptr; ++ raw_ptr ++ resource_classifier = nullptr; ++ raw_ptr element_hider = nullptr; ++ raw_ptr sitekey_storage = ++ nullptr; ++ raw_ptr ++ csp_injector = nullptr; +}; + +// Processing network requests and responses. @@ -3541,7 +3576,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory_for_t new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/adblock_url_loader_factory_for_test.cc -@@ -0,0 +1,372 @@ +@@ -0,0 +1,436 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3564,6 +3599,8 @@ new file mode 100644 +#include "base/strings/string_split.h" +#include "base/strings/string_util.h" +#include "base/strings/utf_string_conversions.h" ++#include "components/adblock/core/configuration/filtering_configuration.h" ++#include "components/adblock/core/subscription/subscription_config.h" +#include "net/http/http_status_code.h" +#include "net/http/http_util.h" +#include "services/network/public/cpp/resource_request.h" @@ -3663,59 +3700,119 @@ new file mode 100644 + return command_elements; +} + -+void Clear(AdblockController* adblock_controller, -+ std::vector (AdblockController::*getter)() const, -+ void (AdblockController::*action)(const std::string&)) { -+ for (const auto& item : (adblock_controller->*getter)()) { -+ (adblock_controller->*action)(item); ++void Clear(SubscriptionService* subscription_service, ++ std::vector (FilteringConfiguration::*getter)() const, ++ void (FilteringConfiguration::*action)(const std::string&)) { ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; ++ for (const auto& item : (adblock_configuration->*getter)()) { ++ (adblock_configuration->*action)(item); + } +} + +std::vector List( -+ AdblockController* adblock_controller, -+ std::vector (AdblockController::*getter)() const) { -+ return (adblock_controller->*getter)(); ++ SubscriptionService* subscription_service, ++ std::vector (FilteringConfiguration::*getter)() const) { ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; ++ return (adblock_configuration->*getter)(); +} + -+void AddOrRemove(AdblockController* adblock_controller, -+ void (AdblockController::*action)(const std::string&), ++void AddOrRemove(SubscriptionService* subscription_service, ++ void (FilteringConfiguration::*action)(const std::string&), + std::string& items) { + auto items_list = base::SplitString(items, payload_delimiter, + base::WhitespaceHandling::TRIM_WHITESPACE, + base::SplitResult::SPLIT_WANT_NONEMPTY); ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; + for (const auto& item : items_list) { -+ (adblock_controller->*action)(item); ++ (adblock_configuration->*action)(item); + } +} + -+void ClearSubscriptions(AdblockController* adblock_controller) { -+ for (const auto& subscription : -+ adblock_controller->GetInstalledSubscriptions()) { -+ adblock_controller->UninstallSubscription(subscription->GetSourceUrl()); ++void ClearSubscriptions(SubscriptionService* subscription_service) { ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; ++ for (const auto& subscription : adblock_configuration->GetFilterLists()) { ++ adblock_configuration->RemoveFilterList(subscription); + } +} + +std::vector ListSubscriptions( -+ AdblockController* adblock_controller) { ++ SubscriptionService* subscription_service) { ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; + std::vector subscriptions; -+ base::ranges::transform(adblock_controller->GetInstalledSubscriptions(), -+ std::back_inserter(subscriptions), -+ [](const auto& subscription) { -+ return subscription->GetSourceUrl().spec(); -+ }); ++ base::ranges::transform( ++ adblock_configuration->GetFilterLists(), ++ std::back_inserter(subscriptions), ++ [](const auto& subscription) { return subscription.spec(); }); + return subscriptions; +} + -+void AddOrRemoveSubscription(AdblockController* adblock_controller, -+ void (AdblockController::*action)(const GURL&), -+ std::string& items) { ++void AddOrRemoveSubscription( ++ SubscriptionService* subscription_service, ++ void (FilteringConfiguration::*action)(const GURL&), ++ std::string& items) { ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; + auto items_list = base::SplitString(items, payload_delimiter, + base::WhitespaceHandling::TRIM_WHITESPACE, + base::SplitResult::SPLIT_WANT_NONEMPTY); + for (const auto& item : items_list) { -+ (adblock_controller->*action)(GURL{item}); ++ (adblock_configuration->*action)(GURL{item}); + } +} ++ ++bool IsAdblockEnabled(SubscriptionService* subscription_service) { ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; ++ return adblock_configuration->IsEnabled(); ++} ++ ++void SetAdblockEnabled(SubscriptionService* subscription_service, ++ bool enabled) { ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; ++ adblock_configuration->SetEnabled(enabled); ++} ++ ++bool IsAAEnabled(SubscriptionService* subscription_service) { ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; ++ return base::ranges::any_of( ++ adblock_configuration->GetFilterLists(), ++ [&](const auto& url) { return url == AcceptableAdsUrl(); }); ++} ++ ++void SetAAEnabled(SubscriptionService* subscription_service, bool enabled) { ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "Action called for non existing \"adblock\" configuration"; ++ enabled ? adblock_configuration->AddFilterList(AcceptableAdsUrl()) ++ : adblock_configuration->RemoveFilterList(AcceptableAdsUrl()); ++} ++ +} // namespace + +// static @@ -3729,14 +3826,14 @@ new file mode 100644 + mojo::PendingRemote target_factory, + std::string user_agent_string, + DisconnectCallback on_disconnect, -+ AdblockController* adblock_controller) ++ SubscriptionService* subscription_service) + : AdblockURLLoaderFactory(std::move(config), + host_id, + std::move(receiver), + std::move(target_factory), + user_agent_string, + std::move(on_disconnect)), -+ adblock_controller_(adblock_controller) {} ++ subscription_service_(subscription_service) {} + +AdblockURLLoaderFactoryForTest::~AdblockURLLoaderFactoryForTest() = default; + @@ -3747,7 +3844,7 @@ new file mode 100644 + const network::ResourceRequest& request, + ::mojo::PendingRemote client, + const net::MutableNetworkTrafficAnnotationTag& traffic_annotation) { -+ DCHECK(adblock_controller_); ++ DCHECK(subscription_service_); + if (request.url.host() != kAdblockDebugDataHostName) { + DLOG(WARNING) + << "[eyeo] AdblockURLLoaderFactoryForTest got unexpected url: " @@ -3802,24 +3899,24 @@ new file mode 100644 + if (topic == kTopicSubscriptions) { + if (command_elements.size() == 3) { + // This can be either add or remove with custom payload -+ void (AdblockController::*action_ptr)(const GURL&) = nullptr; ++ void (FilteringConfiguration::*action_ptr)(const GURL&) = nullptr; + std::string payload = DecodePayload(command_elements[2]); + if (action == kActionAdd) { -+ action_ptr = &AdblockController::InstallSubscription; ++ action_ptr = &FilteringConfiguration::AddFilterList; + } else if (action == kActionRemove) { -+ action_ptr = &AdblockController::UninstallSubscription; ++ action_ptr = &FilteringConfiguration::RemoveFilterList; + } + if (action_ptr) { + VLOG(2) << "[eyeo] Handling subscription payload: " << payload; -+ AddOrRemoveSubscription(adblock_controller_, action_ptr, payload); ++ AddOrRemoveSubscription(subscription_service_, action_ptr, payload); + return kResponseOk; + } + } else if (action == kActionClear) { -+ ClearSubscriptions(adblock_controller_); ++ ClearSubscriptions(subscription_service_); + return kResponseOk; + } else if (action == kActionList) { + std::string response = kResponseOk; -+ auto subscriptions = ListSubscriptions(adblock_controller_); ++ auto subscriptions = ListSubscriptions(subscription_service_); + if (!subscriptions.empty()) { + response += "\n\n"; + for (const auto& subscription : subscriptions) { @@ -3831,50 +3928,52 @@ new file mode 100644 + } else if (topic == kTopicFilters || topic == kTopicDomains) { + if (command_elements.size() == 3) { + // This can be either add or remove with custom payload -+ void (AdblockController::*action_ptr)(const std::string&) = nullptr; ++ void (FilteringConfiguration::*action_ptr)(const std::string&) = ++ nullptr; + std::string payload = DecodePayload(command_elements[2]); + if (topic == kTopicFilters) { + if (action == kActionAdd) { -+ action_ptr = &AdblockController::AddCustomFilter; ++ action_ptr = &FilteringConfiguration::AddCustomFilter; + } else if (action == kActionRemove) { -+ action_ptr = &AdblockController::RemoveCustomFilter; ++ action_ptr = &FilteringConfiguration::RemoveCustomFilter; + } + } else { + if (action == kActionAdd) { -+ action_ptr = &AdblockController::AddAllowedDomain; ++ action_ptr = &FilteringConfiguration::AddAllowedDomain; + } else if (action == kActionRemove) { -+ action_ptr = &AdblockController::RemoveAllowedDomain; ++ action_ptr = &FilteringConfiguration::RemoveAllowedDomain; + } + } + if (action_ptr) { + VLOG(2) << "[eyeo] Handling payload: " << payload; -+ AddOrRemove(adblock_controller_, action_ptr, payload); ++ AddOrRemove(subscription_service_, action_ptr, payload); + return kResponseOk; + } + } else { -+ std::vector (AdblockController::*getter)() const = nullptr; -+ void (AdblockController::*deleter)(const std::string&) = nullptr; ++ std::vector (FilteringConfiguration::*getter)() const = ++ nullptr; ++ void (FilteringConfiguration::*deleter)(const std::string&) = nullptr; + if (action == kActionClear) { + if (topic == kTopicFilters) { -+ deleter = &AdblockController::RemoveCustomFilter; -+ getter = &AdblockController::GetCustomFilters; ++ deleter = &FilteringConfiguration::RemoveCustomFilter; ++ getter = &FilteringConfiguration::GetCustomFilters; + } else { -+ deleter = &AdblockController::RemoveAllowedDomain; -+ getter = &AdblockController::GetAllowedDomains; ++ deleter = &FilteringConfiguration::RemoveAllowedDomain; ++ getter = &FilteringConfiguration::GetAllowedDomains; + } + } else if (action == kActionList) { + if (topic == kTopicFilters) { -+ getter = &AdblockController::GetCustomFilters; ++ getter = &FilteringConfiguration::GetCustomFilters; + } else { -+ getter = &AdblockController::GetAllowedDomains; ++ getter = &FilteringConfiguration::GetAllowedDomains; + } + } + if (deleter && getter) { -+ Clear(adblock_controller_, getter, deleter); ++ Clear(subscription_service_, getter, deleter); + return kResponseOk; + } else if (getter) { + std::string response = kResponseOk; -+ auto items = List(adblock_controller_, getter); ++ auto items = List(subscription_service_, getter); + if (!items.empty()) { + response += "\n\n"; + for (const auto& item : items) { @@ -3889,8 +3988,8 @@ new file mode 100644 + std::string response = kResponseOk; + response += "\n\n"; + bool enabled = topic == kTopicAdblock -+ ? adblock_controller_->IsAdblockEnabled() -+ : adblock_controller_->IsAcceptableAdsEnabled(); ++ ? IsAdblockEnabled(subscription_service_) ++ : IsAAEnabled(subscription_service_); + response += enabled ? "enabled" : "disabled"; + return response; + } @@ -3902,9 +4001,9 @@ new file mode 100644 + } + if (value.has_value()) { + if (topic == kTopicAdblock) { -+ adblock_controller_->SetAdblockEnabled(value.value()); ++ SetAdblockEnabled(subscription_service_, value.value()); + } else { -+ adblock_controller_->SetAcceptableAdsEnabled(value.value()); ++ SetAAEnabled(subscription_service_, value.value()); + } + return kResponseOk; + } @@ -3940,7 +4039,7 @@ new file mode 100644 +#define COMPONENTS_ADBLOCK_CONTENT_BROWSER_ADBLOCK_URL_LOADER_FACTORY_FOR_TEST_H_ + +#include "components/adblock/content/browser/adblock_url_loader_factory.h" -+#include "components/adblock/core/adblock_controller.h" ++#include "components/adblock/core/subscription/subscription_service.h" + +namespace adblock { + @@ -3964,7 +4063,7 @@ new file mode 100644 + mojo::PendingRemote target_factory, + std::string user_agent_string, + DisconnectCallback on_disconnect, -+ AdblockController* adblock_controller); ++ SubscriptionService* subscription_service); + ~AdblockURLLoaderFactoryForTest() final; + + void CreateLoaderAndStart( @@ -3983,7 +4082,7 @@ new file mode 100644 + void SendResponse( + std::string response_body, + ::mojo::PendingRemote client) const; -+ raw_ptr adblock_controller_; ++ raw_ptr subscription_service_; +}; + +} // namespace adblock @@ -3993,7 +4092,7 @@ diff --git a/components/adblock/content/browser/adblock_webcontents_observer.cc new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/adblock_webcontents_observer.cc -@@ -0,0 +1,187 @@ +@@ -0,0 +1,188 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -4055,11 +4154,11 @@ new file mode 100644 +} // namespace + +void TraceHandleLoadComplete( -+ content::RenderFrameHost* frame_host, ++ intptr_t rfh_trace_id, + const adblock::ElementHider::ElemhideInjectionData&) { + TRACE_EVENT_NESTABLE_ASYNC_END0("eyeo", + "AdblockWebContentObserver::HandleOnLoad", -+ TRACE_ID_LOCAL(frame_host)); ++ TRACE_ID_LOCAL(rfh_trace_id)); +} + +AdblockWebContentObserver::AdblockWebContentObserver( @@ -4151,9 +4250,10 @@ new file mode 100644 + DVLOG(1) << "[eyeo] skipping element hiding on localhost URL"; + return; + } ++ const auto rfh_trace_id = reinterpret_cast(frame_host); + TRACE_EVENT_NESTABLE_ASYNC_BEGIN1( + "eyeo", "AdblockWebContentObserver::HandleOnLoad", -+ TRACE_ID_LOCAL(frame_host), "url", url.spec()); ++ TRACE_ID_LOCAL(rfh_trace_id), "url", url.spec()); + + auto referrers_chain = + frame_hierarchy_builder_->BuildFrameHierarchy(frame_host); @@ -4171,7 +4271,7 @@ new file mode 100644 + element_hider_->ApplyElementHidingEmulationOnPage( + std::move(url), std::move(referrers_chain), frame_host, + std::move(site_key), -+ base::BindOnce(&TraceHandleLoadComplete, frame_host)); ++ base::BindOnce(&TraceHandleLoadComplete, rfh_trace_id)); +} + +bool AdblockWebContentObserver::IsAdblockEnabled() const { @@ -4617,7 +4717,7 @@ diff --git a/components/adblock/content/browser/element_hider_impl.cc b/componen new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/element_hider_impl.cc -@@ -0,0 +1,305 @@ +@@ -0,0 +1,323 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -4733,6 +4833,19 @@ new file mode 100644 + &output, 0, "{{elemHidingEmulatedPatternsDef}}", build_string); +} + ++std::string GenerateXpath3Dep() { ++ static std::string xpath3_dep = ++ "(" + ++ ui::ResourceBundle::GetSharedInstance().LoadDataResourceString( ++ IDR_ADBLOCK_SNIPPETS_XPATH3_DEP_JS) + ++ ")();"; ++ if (xpath3_dep == "()();") { ++ LOG(WARNING) << "Snippets library does not support xpath3!"; ++ return ""; ++ } ++ return xpath3_dep; ++} ++ +void GenerateSnippetScript(const GURL& url, + base::Value::List input, + std::string& output) { @@ -4746,7 +4859,12 @@ new file mode 100644 + static std::string snippets_lib = + ui::ResourceBundle::GetSharedInstance().LoadDataResourceString( + IDR_ADBLOCK_SNIPPETS_JS); -+ output = "({{callback}})({}, ...{{snippets}});"; ++ ++ output = "{{xpath3}}({{callback}})({}, ...{{snippets}});"; ++ bool require_xpath3 = ++ serialized.find("hide-if-matches-xpath3") != std::string::npos; ++ base::ReplaceSubstringsAfterOffset(&output, 0, "{{xpath3}}", ++ require_xpath3 ? GenerateXpath3Dep() : ""); + base::ReplaceSubstringsAfterOffset(&output, 0, "{{callback}}", snippets_lib); + base::ReplaceSubstringsAfterOffset(&output, 0, "{{snippets}}", serialized); +} @@ -6263,7 +6381,7 @@ diff --git a/components/adblock/content/browser/subscription_service_factory_bas new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/subscription_service_factory_base.cc -@@ -0,0 +1,225 @@ +@@ -0,0 +1,224 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -6430,8 +6548,7 @@ new file mode 100644 + content::BrowserContext* context) const { + auto* prefs = GetPrefs(context); + auto* subscription_service = new SubscriptionServiceImpl( -+ base::BindRepeating(&MakeFilterConfigurationMaintainer, context, -+ GetPrefs(context), ++ base::BindRepeating(&MakeFilterConfigurationMaintainer, context, prefs, + GetSubscriptionPersistentMetadata(context), + static_cast(this)), + base::BindRepeating(&CleanupPersistedConfiguration, prefs)); @@ -6962,7 +7079,7 @@ diff --git a/components/adblock/content/browser/test/adblock_webcontents_observe new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/test/adblock_webcontents_observer_test.cc -@@ -0,0 +1,159 @@ +@@ -0,0 +1,164 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -7005,6 +7122,11 @@ new file mode 100644 + observer_ = AdblockWebContentObserver::FromWebContents(web_contents); + } + ++ void TearDown() override { ++ observer_ = nullptr; ++ content::RenderViewHostTestHarness::TearDown(); ++ } ++ + MockSubscriptionService service_; + MockElementHider hider_; + MockSitekeyStorage storage_; @@ -7126,7 +7248,7 @@ diff --git a/components/adblock/content/browser/test/content_security_policy_inj new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/test/content_security_policy_injector_impl_test.cc -@@ -0,0 +1,177 @@ +@@ -0,0 +1,183 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -7183,6 +7305,12 @@ new file mode 100644 + &subscription_service_, std::move(frame_hierarchy_builder)); + } + ++ void TearDown() override { ++ // Avoid dangling pointers during destruction. ++ frame_hierarchy_builder_ = nullptr; ++ content::RenderViewHostTestHarness::TearDown(); ++ } ++ + void FrameHierarchyWillBeBuilt() { + EXPECT_CALL(*frame_hierarchy_builder_, + FindRenderFrameHost(main_rfh()->GetGlobalId())) @@ -7308,7 +7436,7 @@ diff --git a/components/adblock/content/browser/test/element_hider_impl_test.cc new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/test/element_hider_impl_test.cc -@@ -0,0 +1,390 @@ +@@ -0,0 +1,425 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -7361,6 +7489,9 @@ new file mode 100644 + EXPECT_CALL(mock_delegate_, LoadDataResourceString(IDR_ADBLOCK_SNIPPETS_JS)) + .WillRepeatedly(testing::Return("snippets_lib")); + EXPECT_CALL(mock_delegate_, ++ LoadDataResourceString(IDR_ADBLOCK_SNIPPETS_XPATH3_DEP_JS)) ++ .WillRepeatedly(testing::Return("xpath3_dep")); ++ EXPECT_CALL(mock_delegate_, + LoadDataResourceString(IDR_ADBLOCK_ELEMHIDE_EMU_JS)) + .WillRepeatedly(testing::Return("{{elemHidingEmulatedPatternsDef}}")); + } @@ -7698,6 +7829,38 @@ new file mode 100644 + task_environment()->RunUntilIdle(); +} + ++TEST_F(AdblockElementHiderImplTest, InjectsXpath3DepWhenXpath3FilterFound) { ++ base::Value::List snippets_config; ++ snippets_config.Append("hide-if-matches-xpath3"); ++ ++ ElementHiderImpl element_hide(&sub_service_); ++ EXPECT_CALL(sub_service_, GetCurrentSnapshot()).WillOnce([&]() { ++ auto collection = std::make_unique(); ++ EXPECT_CALL(*collection, ++ FindBySpecialFilter(SpecialFilterType::Document, kUrl, ++ kFrameHierarchy, kSitekey)) ++ .WillOnce(testing::Return(absl::nullopt)); ++ EXPECT_CALL(*collection, ++ FindBySpecialFilter(SpecialFilterType::Elemhide, kUrl, ++ kFrameHierarchy, kSitekey)) ++ .WillOnce(testing::Return(GURL("about:blank"))); ++ EXPECT_CALL(*collection, GenerateSnippets(kUrl, kFrameHierarchy)) ++ .WillOnce(testing::Return(testing::ByMove(std::move(snippets_config)))); ++ SubscriptionService::Snapshot snapshot; ++ snapshot.push_back(std::move(collection)); ++ return snapshot; ++ }); ++ ++ element_hide.ApplyElementHidingEmulationOnPage( ++ kUrl, kFrameHierarchy, main_rfh(), kSitekey, ++ base::BindLambdaForTesting( ++ [&](const ElementHider::ElemhideInjectionData& data) { ++ EXPECT_EQ(data.snippet_js, ++ "(xpath3_dep)();(snippets_lib)({}, " ++ "...[\"hide-if-matches-xpath3\"]);"); ++ })); ++} ++ +} // namespace adblock diff --git a/components/adblock/content/browser/test/frame_hierarchy_builder_test.cc b/components/adblock/content/browser/test/frame_hierarchy_builder_test.cc new file mode 100644 @@ -8283,7 +8446,7 @@ diff --git a/components/adblock/content/browser/test/resource_classification_run new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/test/resource_classification_runner_impl_test.cc -@@ -0,0 +1,453 @@ +@@ -0,0 +1,463 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -8370,10 +8533,8 @@ new file mode 100644 + std::unique_ptr mock_frame_hierarchy_builder = + std::make_unique(); + mock_frame_hierarchy_builder_ = mock_frame_hierarchy_builder.get(); -+ auto collection = std::make_unique(); -+ mock_subscription_collection_ = collection.get(); + mock_snapshot_ = std::make_unique(); -+ mock_snapshot_->push_back(std::move(collection)); ++ mock_snapshot_->push_back(std::make_unique()); + mock_resource_classifier_ = base::MakeRefCounted(); + classification_runner_ = std::make_unique( + mock_resource_classifier_, std::move(mock_frame_hierarchy_builder), @@ -8381,6 +8542,19 @@ new file mode 100644 + classification_runner_->AddObserver(&mock_observer_); + } + ++ void TearDown() override { ++ // Avoid dangling pointers during destruction. ++ mock_frame_hierarchy_builder_ = nullptr; ++ classification_runner_->RemoveObserver(&mock_observer_); ++ classification_runner_.reset(); ++ RenderViewHostTestHarness::TearDown(); ++ } ++ ++ MockSubscriptionCollection& mock_subscription_collection() { ++ return *static_cast( ++ mock_snapshot_->front().get()); ++ } ++ + void SiteKeyWillBePresent(const std::vector& frame_hierarchy, + SiteKey sitekey) { + EXPECT_CALL(mock_sitekey_storage_, FindSiteKeyForAnyUrl(frame_hierarchy)) @@ -8440,7 +8614,6 @@ new file mode 100644 + raw_ptr mock_frame_hierarchy_builder_; + scoped_refptr mock_resource_classifier_; + std::unique_ptr classification_runner_; -+ raw_ptr mock_subscription_collection_; + std::unique_ptr mock_snapshot_; + + const GURL kUrl{"https://test.com/url.x"}; @@ -8524,7 +8697,7 @@ new file mode 100644 + .Times(0); + + // In default config page is not allowlisted... -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + FindBySpecialFilter(SpecialFilterType::Document, kUrl, + std::vector(), SiteKey())) + .WillOnce(testing::Return(absl::nullopt)); @@ -8545,11 +8718,11 @@ new file mode 100644 + +TEST_F(AdblockResourceClassificationRunnerImplTest, + CheckRequestFilterMatch_AllowlistedMainframeInTwoConfigs) { -+ std::string other_coniguration = "other"; ++ std::string other_configuration = "other"; + EXPECT_CALL(mock_observer_, OnPageAllowed(kUrl, main_rfh(), kSubscriptionUrl, -+ other_coniguration)); ++ other_configuration)); + -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + FindBySpecialFilter(SpecialFilterType::Document, kUrl, + std::vector(), SiteKey())) + .WillOnce(testing::Return(absl::optional{kSubscriptionUrl})); @@ -8560,8 +8733,8 @@ new file mode 100644 + std::vector(), SiteKey())) + .WillOnce(testing::Return(absl::optional{kSubscriptionUrl})); + EXPECT_CALL(*collection, GetFilteringConfigurationName()) -+ .WillRepeatedly(testing::ReturnRef(other_coniguration)); -+ EXPECT_CALL(*mock_subscription_collection_, GetFilteringConfigurationName()) ++ .WillRepeatedly(testing::ReturnRef(other_configuration)); ++ EXPECT_CALL(mock_subscription_collection(), GetFilteringConfigurationName()) + .WillRepeatedly(testing::ReturnRef(kConfigurationName)); + mock_snapshot_->push_back(std::move(collection)); + @@ -9000,9 +9173,8 @@ diff --git a/components/adblock/core/activeping_telemetry_topic_provider.cc b/co new file mode 100644 --- /dev/null +++ b/components/adblock/core/activeping_telemetry_topic_provider.cc -@@ -0,0 +1,243 @@ -+/* -+ * This file is part of eyeo Chromium SDK, +@@ -0,0 +1,285 @@ ++/* This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify @@ -9024,8 +9196,10 @@ new file mode 100644 +#include "base/json/json_writer.h" +#include "base/system/sys_info.h" +#include "base/time/time.h" ++#include "base/time/time_to_iso8601.h" +#include "base/uuid.h" +#include "components/adblock/core/common/adblock_prefs.h" ++#include "components/adblock/core/subscription/subscription_config.h" + +namespace adblock { +namespace { @@ -9073,12 +9247,12 @@ new file mode 100644 +ActivepingTelemetryTopicProvider::ActivepingTelemetryTopicProvider( + utils::AppInfo app_info, + PrefService* pref_service, -+ AdblockController* adblock_controller, ++ SubscriptionService* subscription_service, + const GURL& base_url, + const std::string& auth_token) + : app_info_(std::move(app_info)), + pref_service_(pref_service), -+ adblock_controller_(adblock_controller), ++ subscription_service_(subscription_service), + base_url_(base_url), + auth_token_(auth_token) {} + @@ -9119,35 +9293,13 @@ new file mode 100644 + return auth_token_; +} + -+void ActivepingTelemetryTopicProvider::GetPayload(PayloadCallback callback) { -+ base::Value::Dict payload; -+ payload.Set("addon_name", "eyeo-chromium-sdk"); -+ payload.Set("addon_version", "2.0.0"); -+ payload.Set("application", app_info_.name); -+ payload.Set("application_version", app_info_.version); -+ payload.Set("aa_active", adblock_controller_->IsAcceptableAdsEnabled()); -+ payload.Set("platform", base::SysInfo::OperatingSystemName()); -+ payload.Set("platform_version", base::SysInfo::OperatingSystemVersion()); -+ // Server requires the following parameters to either have a correct, -+ // non-empty value, or not be present at all. We shall not send empty strings. -+ AppendStringIfPresent(pref_service_, common::prefs::kTelemetryLastPingTag, -+ "last_ping_tag", payload); -+ AppendStringIfPresent(pref_service_, common::prefs::kTelemetryFirstPingTime, -+ "first_ping", payload); -+ AppendStringIfPresent(pref_service_, common::prefs::kTelemetryLastPingTime, -+ "last_ping", payload); -+ AppendStringIfPresent(pref_service_, -+ common::prefs::kTelemetryPreviousLastPingTime, -+ "previous_last_ping", payload); -+ -+ base::Value::Dict root; -+ root.Set("payload", std::move(payload)); ++void ActivepingTelemetryTopicProvider::GetPayload( ++ PayloadCallback callback) const { + std::string serialized; + // The only way JSONWriter::Write() can return fail is then the Value + // contains lists or dicts that are too deep (200 levels). We just built the + // payload and root objects here, they should be really shallow. -+ CHECK(base::JSONWriter::Write(root, &serialized)); -+ VLOG(1) << "[eyeo] Telemetry ping payload: " << serialized; ++ CHECK(base::JSONWriter::Write(GetPayloadInternal(), &serialized)); + std::move(callback).Run(std::move(serialized)); +} + @@ -9205,6 +9357,35 @@ new file mode 100644 + UpdatePrefs(*ping_response_time); +} + ++void ActivepingTelemetryTopicProvider::FetchDebugInfo( ++ DebugInfoCallback callback) const { ++ base::Value::Dict debug_info; ++ debug_info.Set("endpoint_url", GetEndpointURL().spec()); ++ debug_info.Set("payload", GetPayloadInternal()); ++ debug_info.Set("first_ping", ++ pref_service_->GetString( ++ adblock::common::prefs::kTelemetryFirstPingTime)); ++ debug_info.Set("time_of_next_request", ++ base::TimeToISO8601(GetTimeOfNextRequest())); ++ debug_info.Set( ++ "last_ping", ++ pref_service_->GetString(adblock::common::prefs::kTelemetryLastPingTime)); ++ debug_info.Set("previous_last_ping", ++ pref_service_->GetString( ++ adblock::common::prefs::kTelemetryPreviousLastPingTime)); ++ debug_info.Set("next_ping", ++ base::TimeToISO8601(pref_service_->GetTime( ++ adblock::common::prefs::kTelemetryNextPingTime))); ++ ++ std::string serialized; ++ // The only way JSONWriter::Write() can return fail is then the Value ++ // contains lists or dicts that are too deep (200 levels). We just built the ++ // payload and root objects here, they should be really shallow. ++ CHECK(base::JSONWriter::WriteWithOptions( ++ debug_info, base::JsonOptions::OPTIONS_PRETTY_PRINT, &serialized)); ++ std::move(callback).Run(std::move(serialized)); ++} ++ +void ActivepingTelemetryTopicProvider::ScheduleNextPing(base::TimeDelta delay) { + pref_service_->SetTime(common::prefs::kTelemetryNextPingTime, + base::Time::Now() + delay); @@ -9231,6 +9412,40 @@ new file mode 100644 + tag.AsLowercaseString()); +} + ++base::Value ActivepingTelemetryTopicProvider::GetPayloadInternal() const { ++ base::Value::Dict payload; ++ bool aa_enabled = false; ++ auto* adblock_configuration = ++ subscription_service_->GetAdblockFilteringConfiguration(); ++ if (adblock_configuration) { ++ aa_enabled = base::ranges::any_of( ++ adblock_configuration->GetFilterLists(), ++ [&](const auto& url) { return url == AcceptableAdsUrl(); }); ++ } ++ payload.Set("addon_name", "eyeo-chromium-sdk"); ++ payload.Set("addon_version", "2.0.0"); ++ payload.Set("application", app_info_.name); ++ payload.Set("application_version", app_info_.version); ++ payload.Set("aa_active", aa_enabled); ++ payload.Set("platform", base::SysInfo::OperatingSystemName()); ++ payload.Set("platform_version", base::SysInfo::OperatingSystemVersion()); ++ // Server requires the following parameters to either have a correct, ++ // non-empty value, or not be present at all. We shall not send empty strings. ++ AppendStringIfPresent(pref_service_, common::prefs::kTelemetryLastPingTag, ++ "last_ping_tag", payload); ++ AppendStringIfPresent(pref_service_, common::prefs::kTelemetryFirstPingTime, ++ "first_ping", payload); ++ AppendStringIfPresent(pref_service_, common::prefs::kTelemetryLastPingTime, ++ "last_ping", payload); ++ AppendStringIfPresent(pref_service_, ++ common::prefs::kTelemetryPreviousLastPingTime, ++ "previous_last_ping", payload); ++ ++ base::Value::Dict root; ++ root.Set("payload", std::move(payload)); ++ return base::Value(std::move(root)); ++} ++ +// static +void ActivepingTelemetryTopicProvider::SetHttpPortForTesting( + int http_port_for_testing) { @@ -9248,7 +9463,7 @@ diff --git a/components/adblock/core/activeping_telemetry_topic_provider.h b/com new file mode 100644 --- /dev/null +++ b/components/adblock/core/activeping_telemetry_topic_provider.h -@@ -0,0 +1,84 @@ +@@ -0,0 +1,87 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -9271,9 +9486,9 @@ new file mode 100644 + +#include "base/memory/raw_ptr.h" +#include "base/time/time.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/adblock_telemetry_service.h" +#include "components/adblock/core/common/adblock_utils.h" ++#include "components/adblock/core/subscription/subscription_service.h" +#include "components/prefs/pref_service.h" + +namespace adblock { @@ -9292,7 +9507,7 @@ new file mode 100644 + public: + ActivepingTelemetryTopicProvider(utils::AppInfo app_info, + PrefService* pref_service, -+ AdblockController* adblock_controller, ++ SubscriptionService* subscription_service, + const GURL& base_url, + const std::string& auth_token); + ~ActivepingTelemetryTopicProvider() final; @@ -9302,7 +9517,7 @@ new file mode 100644 + + GURL GetEndpointURL() const final; + std::string GetAuthToken() const final; -+ void GetPayload(PayloadCallback callback) final; ++ void GetPayload(PayloadCallback callback) const final; + + // Normally 12 hours since last ping, 1 hour in case of retries. + base::Time GetTimeOfNextRequest() const final; @@ -9311,6 +9526,8 @@ new file mode 100644 + // from |response_content|. + void ParseResponse(std::unique_ptr response_content) final; + ++ void FetchDebugInfo(DebugInfoCallback callback) const final; ++ + // Sets the port used by the embedded http server required for browser tests. + // Must be called before the first call to DefaultBaseUrl(). + static void SetHttpPortForTesting(int http_port_for_testing); @@ -9322,10 +9539,11 @@ new file mode 100644 + private: + void ScheduleNextPing(base::TimeDelta delay); + void UpdatePrefs(const std::string& ping_response_time); ++ base::Value GetPayloadInternal() const; + + const utils::AppInfo app_info_; + raw_ptr pref_service_; -+ raw_ptr adblock_controller_; ++ raw_ptr subscription_service_; + const GURL base_url_; + const std::string auth_token_; +}; @@ -9847,7 +10065,7 @@ diff --git a/components/adblock/core/adblock_telemetry_service.cc b/components/a new file mode 100644 --- /dev/null +++ b/components/adblock/core/adblock_telemetry_service.cc -@@ -0,0 +1,244 @@ +@@ -0,0 +1,258 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -9869,6 +10087,7 @@ new file mode 100644 + +#include + ++#include "base/barrier_callback.h" +#include "base/functional/bind.h" +#include "base/memory/weak_ptr.h" +#include "base/strings/string_number_conversions.h" @@ -9965,6 +10184,10 @@ new file mode 100644 + url_loader_.reset(); + } + ++ const std::unique_ptr& GetTopicProvider() const { ++ return topic_provider_; ++ } ++ + private: + bool IsRequestInFlight() { + return url_loader_ != nullptr || weak_ptr_factory_.HasWeakPtrs(); @@ -10059,6 +10282,15 @@ new file mode 100644 + OnEnabledStateChangedInternal(); +} + ++void AdblockTelemetryService::GetTopicProvidersDebugInfo( ++ TopicProvidersDebugInfoCallback service_callback) const { ++ const auto barrier_callback = base::BarrierCallback( ++ ongoing_conversations_.size(), std::move(service_callback)); ++ for (const auto& conversation : ongoing_conversations_) { ++ conversation->GetTopicProvider()->FetchDebugInfo(barrier_callback); ++ } ++} ++ +void AdblockTelemetryService::OnEnabledStateChangedInternal() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (adblock_filtering_configuration_->IsEnabled() && !timer_.IsRunning()) { @@ -10096,7 +10328,7 @@ diff --git a/components/adblock/core/adblock_telemetry_service.h b/components/ad new file mode 100644 --- /dev/null +++ b/components/adblock/core/adblock_telemetry_service.h -@@ -0,0 +1,107 @@ +@@ -0,0 +1,120 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -10121,6 +10353,7 @@ new file mode 100644 +#include +#include + ++#include "base/functional/callback_forward.h" +#include "base/memory/raw_ptr.h" +#include "base/sequence_checker.h" +#include "base/time/time.h" @@ -10148,6 +10381,7 @@ new file mode 100644 + class TopicProvider { + public: + using PayloadCallback = base::OnceCallback; ++ using DebugInfoCallback = base::OnceCallback; + virtual ~TopicProvider() = default; + // Endpoint URL on the Telemetry server onto which requests should be sent. + virtual GURL GetEndpointURL() const = 0; @@ -10155,7 +10389,7 @@ new file mode 100644 + virtual std::string GetAuthToken() const = 0; + // Data uploaded with the request, should be valid for the schema + // present on the server. Async to allow querying asynchronous data sources. -+ virtual void GetPayload(PayloadCallback callback) = 0; ++ virtual void GetPayload(PayloadCallback callback) const = 0; + // Returns the desired time when AdblockTelemetryService should make the + // next network request. + virtual base::Time GetTimeOfNextRequest() const = 0; @@ -10164,6 +10398,10 @@ new file mode 100644 + // response errors via GetTimeToNextRequest(). + virtual void ParseResponse( + std::unique_ptr response_content) = 0; ++ // Gets debugging info to be logged on chrome://adblock-internals. Do not ++ // put any secrets here (tokens, api keys). Asynchronous to allow reusing ++ // the async logic of GetPayload, if needed. ++ virtual void FetchDebugInfo(DebugInfoCallback callback) const = 0; + }; + AdblockTelemetryService( + FilteringConfiguration* filtering_configuration, @@ -10171,6 +10409,8 @@ new file mode 100644 + base::TimeDelta initial_delay, + base::TimeDelta check_interval); + ~AdblockTelemetryService() override; ++ using TopicProvidersDebugInfoCallback = ++ base::OnceCallback)>; + + // Add all required topic providers before calling Start(). + void AddTopicProvider(std::unique_ptr topic_provider); @@ -10186,6 +10426,11 @@ new file mode 100644 + // FilteringConfiguration::Observer + void OnEnabledStateChanged(FilteringConfiguration* config) override; + ++ // Collects debug information from all topic providers. Runs |callback| once ++ // all topic providers have provided their info. ++ void GetTopicProvidersDebugInfo( ++ TopicProvidersDebugInfoCallback callback) const; ++ + private: + void OnEnabledStateChangedInternal(); + void RunPeriodicCheck(); @@ -10993,7 +11238,7 @@ diff --git a/components/adblock/core/classifier/test/resource_classifier_impl_te new file mode 100644 --- /dev/null +++ b/components/adblock/core/classifier/test/resource_classifier_impl_test.cc -@@ -0,0 +1,634 @@ +@@ -0,0 +1,625 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -11034,78 +11279,88 @@ new file mode 100644 + public: + void SetUp() override { + classifier_ = base::MakeRefCounted(); -+ mock_subscription_collection_ = new MockSubscriptionCollection(); + mock_snapshot_ = std::make_unique(); -+ mock_snapshot_->emplace_back(mock_subscription_collection_); -+ EXPECT_CALL(*mock_subscription_collection_, GetFilteringConfigurationName()) ++ mock_snapshot_->push_back(std::make_unique()); ++ EXPECT_CALL(mock_subscription_collection(), GetFilteringConfigurationName()) + .WillRepeatedly(testing::ReturnRef(kConfigurationName)); + } + ++ ResourceClassifier::ClassificationResult ClassifyRequest() { ++ return classifier_->ClassifyRequest(std::move(*mock_snapshot_), ++ kResourceAddress, {kParentAddress}, ++ kContentType, kSitekey); ++ } ++ ++ MockSubscriptionCollection& mock_subscription_collection() { ++ return *static_cast( ++ mock_snapshot_->front().get()); ++ } ++ + void FindBySubresourceFilterReturns(const absl::optional& return_value, + FilterCategory category) { -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + FindBySubresourceFilter(_, _, _, _, category)) + .WillOnce(Return(return_value)); + } + + void FindBySpecialFilterReturns(const absl::optional& return_value, + SpecialFilterType type) { -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + FindBySpecialFilter(type, _, _, _)) + .WillOnce(Return(return_value)); + } + + void FindByAllowFilterReturns(const absl::optional& return_value) { -+ EXPECT_CALL(*mock_subscription_collection_, FindByAllowFilter(_, _, _, _)) ++ EXPECT_CALL(mock_subscription_collection(), FindByAllowFilter(_, _, _, _)) + .WillOnce(Return(return_value)); + } + + void FindByPopupFilterReturns(const absl::optional& return_value, + FilterCategory category) { -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + FindByPopupFilter(_, _, _, category)) + .WillOnce(Return(return_value)); + } + + void GetHeaderFiltersReturns(const std::set& return_value, + FilterCategory category) { -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + GetHeaderFilters(_, _, _, category)) + .WillOnce(Return(return_value)); + } + + void AssertFindBySubresourceFilterNotCalled(FilterCategory category) { -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + FindBySubresourceFilter(_, _, _, _, category)) + .Times(0); + } + + void GetRewriteFiltersReturns(const std::set& return_value, + FilterCategory category) { -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + GetRewriteFilters(_, _, category)) + .WillOnce(Return(return_value)); + } + + void AssertFindBySpecialFilterNotCalled(SpecialFilterType type) { -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + FindBySpecialFilter(type, _, _, _)) + .Times(0); + } + + void AssertFindByAllowFilterNotCalled() { -+ EXPECT_CALL(*mock_subscription_collection_, FindByAllowFilter(_, _, _, _)) ++ EXPECT_CALL(mock_subscription_collection(), FindByAllowFilter(_, _, _, _)) + .Times(0); + } + + void AssertFindByPopupFilterNotCalled(FilterCategory category) { -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + FindByPopupFilter(_, _, _, category)) + .Times(0); + } + + void AssertGetHeaderFiltersNotCalled(FilterCategory category) { -+ EXPECT_CALL(*mock_subscription_collection_, ++ EXPECT_CALL(mock_subscription_collection(), + GetHeaderFilters(_, _, _, category)) + .Times(0); + } @@ -11130,7 +11385,6 @@ new file mode 100644 + const std::set kDomainSpecificHeaderFilters = { + {"domain_specific_filter", kSourceUrl}}; + const std::string kConfigurationName = "test_configuration"; -+ raw_ptr mock_subscription_collection_; + std::unique_ptr mock_snapshot_; + scoped_refptr classifier_; +}; @@ -11145,9 +11399,7 @@ new file mode 100644 + AssertFindBySubresourceFilterNotCalled( + FilterCategory::DomainSpecificBlocking); + -+ auto result = -+ classifier_->ClassifyRequest(std::move(*mock_snapshot_), kResourceAddress, -+ {kParentAddress}, kContentType, kSitekey); ++ auto result = ClassifyRequest(); + EXPECT_EQ(result.decision, Decision::Ignored); + EXPECT_EQ(result.decisive_configuration_name, ""); + EXPECT_EQ(result.decisive_subscription, GURL()); @@ -11168,9 +11420,7 @@ new file mode 100644 + AssertFindBySubresourceFilterNotCalled( + FilterCategory::DomainSpecificBlocking); + -+ auto result = -+ classifier_->ClassifyRequest(std::move(*mock_snapshot_), kResourceAddress, -+ {kParentAddress}, kContentType, kSitekey); ++ auto result = ClassifyRequest(); + EXPECT_EQ(result.decision, Decision::Blocked); + EXPECT_EQ(result.decisive_configuration_name, kConfigurationName); + EXPECT_EQ(result.decisive_subscription, kSourceUrl); @@ -11190,9 +11440,7 @@ new file mode 100644 + AssertFindBySubresourceFilterNotCalled( + FilterCategory::DomainSpecificBlocking); + -+ auto result = -+ classifier_->ClassifyRequest(std::move(*mock_snapshot_), kResourceAddress, -+ {kParentAddress}, kContentType, kSitekey); ++ auto result = ClassifyRequest(); + EXPECT_EQ(result.decision, Decision::Allowed); + EXPECT_EQ(result.decisive_configuration_name, kConfigurationName); + EXPECT_EQ(result.decisive_subscription, kSourceUrl); @@ -11212,9 +11460,7 @@ new file mode 100644 + AssertFindBySubresourceFilterNotCalled( + FilterCategory::DomainSpecificBlocking); + -+ auto result = -+ classifier_->ClassifyRequest(std::move(*mock_snapshot_), kResourceAddress, -+ {kParentAddress}, kContentType, kSitekey); ++ auto result = ClassifyRequest(); + EXPECT_EQ(result.decision, Decision::Blocked); + EXPECT_EQ(result.decisive_configuration_name, kConfigurationName); + EXPECT_EQ(result.decisive_subscription, kSourceUrl); @@ -11237,9 +11483,7 @@ new file mode 100644 + FindBySubresourceFilterReturns(absl::nullopt, + FilterCategory::DomainSpecificBlocking); + -+ auto result = -+ classifier_->ClassifyRequest(std::move(*mock_snapshot_), kResourceAddress, -+ {kParentAddress}, kContentType, kSitekey); ++ auto result = ClassifyRequest(); + EXPECT_EQ(result.decision, Decision::Ignored); + EXPECT_EQ(result.decisive_configuration_name, ""); + EXPECT_EQ(result.decisive_subscription, GURL()); @@ -11262,9 +11506,7 @@ new file mode 100644 + FindBySubresourceFilterReturns(absl::optional(kSourceUrl), + FilterCategory::DomainSpecificBlocking); + -+ auto result = -+ classifier_->ClassifyRequest(std::move(*mock_snapshot_), kResourceAddress, -+ {kParentAddress}, kContentType, kSitekey); ++ auto result = ClassifyRequest(); + EXPECT_EQ(result.decision, Decision::Blocked); + EXPECT_EQ(result.decisive_configuration_name, kConfigurationName); + EXPECT_EQ(result.decisive_subscription, kSourceUrl); @@ -11473,9 +11715,7 @@ new file mode 100644 + .WillRepeatedly(testing::ReturnRef(other_coniguration)); + + mock_snapshot_->push_back(std::move(mock_subscription_collection)); -+ auto result = -+ classifier_->ClassifyRequest(std::move(*mock_snapshot_), kResourceAddress, -+ {kParentAddress}, kContentType, kSitekey); ++ auto result = ClassifyRequest(); + EXPECT_EQ(result.decision, Decision::Blocked); + EXPECT_EQ(result.decisive_configuration_name, other_coniguration); + EXPECT_EQ(result.decisive_subscription, other_source); @@ -11497,9 +11737,7 @@ new file mode 100644 + .Times(0); + + mock_snapshot_->push_back(std::move(mock_subscription_collection)); -+ auto result = -+ classifier_->ClassifyRequest(std::move(*mock_snapshot_), kResourceAddress, -+ {kParentAddress}, kContentType, kSitekey); ++ auto result = ClassifyRequest(); + EXPECT_EQ(result.decision, Decision::Blocked); + EXPECT_EQ(result.decisive_configuration_name, kConfigurationName); + EXPECT_EQ(result.decisive_subscription, kSourceUrl); @@ -11526,9 +11764,7 @@ new file mode 100644 + .WillRepeatedly(testing::ReturnRef(other_coniguration)); + + mock_snapshot_->emplace_back(mock_subscription_collection); -+ auto result = -+ classifier_->ClassifyRequest(std::move(*mock_snapshot_), kResourceAddress, -+ {kParentAddress}, kContentType, kSitekey); ++ auto result = ClassifyRequest(); + EXPECT_EQ(result.decision, Decision::Allowed); + EXPECT_EQ(result.decisive_configuration_name, other_coniguration); + EXPECT_EQ(result.decisive_subscription, other_source); @@ -13392,7 +13628,7 @@ new file mode 100644 + +source_set("unit_tests") { + testonly = true -+ sources = [ "persistent_filtering_configuration_test.cc" ] ++ sources = [ "test/persistent_filtering_configuration_test.cc" ] + + deps = [ + ":configuration", @@ -13477,20 +13713,20 @@ new file mode 100644 + + // Adding an existing filter list, or removing a non-existing filter list, are + // NOPs and do not notify observers. -+ virtual void AddFilterList(GURL url) = 0; -+ virtual void RemoveFilterList(GURL url) = 0; ++ virtual void AddFilterList(const GURL& url) = 0; ++ virtual void RemoveFilterList(const GURL& url) = 0; + virtual std::vector GetFilterLists() const = 0; + + // Adding an existing allowed domain, or removing a non-existing allowed + // domain, are NOPs and do not notify observers. -+ virtual void AddAllowedDomain(std::string domain) = 0; -+ virtual void RemoveAllowedDomain(std::string domain) = 0; ++ virtual void AddAllowedDomain(const std::string& domain) = 0; ++ virtual void RemoveAllowedDomain(const std::string& domain) = 0; + virtual std::vector GetAllowedDomains() const = 0; + + // Adding an existing custom filter, or removing a non-existing custom filter, + // are NOPs and do not notify observers. -+ virtual void AddCustomFilter(std::string filter) = 0; -+ virtual void RemoveCustomFilter(std::string filter) = 0; ++ virtual void AddCustomFilter(const std::string& filter) = 0; ++ virtual void RemoveCustomFilter(const std::string& filter) = 0; + virtual std::vector GetCustomFilters() const = 0; +}; + @@ -13574,7 +13810,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur new file mode 100644 --- /dev/null +++ b/components/adblock/core/configuration/persistent_filtering_configuration.cc -@@ -0,0 +1,270 @@ +@@ -0,0 +1,274 @@ + +/* + * This file is part of eyeo Chromium SDK, @@ -13726,14 +13962,14 @@ new file mode 100644 + return *pref_value; +} + -+void PersistentFilteringConfiguration::AddFilterList(GURL url) { ++void PersistentFilteringConfiguration::AddFilterList(const GURL& url) { + if (AppendToList(dictionary_, kFilterListsKey, url.spec())) { + PersistToPrefs(); + NotifyFilterListsChanged(); + } +} + -+void PersistentFilteringConfiguration::RemoveFilterList(GURL url) { ++void PersistentFilteringConfiguration::RemoveFilterList(const GURL& url) { + if (RemoveFromList(dictionary_, kFilterListsKey, url.spec())) { + PersistToPrefs(); + NotifyFilterListsChanged(); @@ -13744,14 +13980,16 @@ new file mode 100644 + return GetFromList(dictionary_, kFilterListsKey); +} + -+void PersistentFilteringConfiguration::AddAllowedDomain(std::string domain) { ++void PersistentFilteringConfiguration::AddAllowedDomain( ++ const std::string& domain) { + if (AppendToList(dictionary_, kDomainsKey, domain)) { + PersistToPrefs(); + NotifyAllowedDomainsChanged(); + } +} + -+void PersistentFilteringConfiguration::RemoveAllowedDomain(std::string domain) { ++void PersistentFilteringConfiguration::RemoveAllowedDomain( ++ const std::string& domain) { + if (RemoveFromList(dictionary_, kDomainsKey, domain)) { + PersistToPrefs(); + NotifyAllowedDomainsChanged(); @@ -13763,14 +14001,16 @@ new file mode 100644 + return GetFromList(dictionary_, kDomainsKey); +} + -+void PersistentFilteringConfiguration::AddCustomFilter(std::string filter) { ++void PersistentFilteringConfiguration::AddCustomFilter( ++ const std::string& filter) { + if (AppendToList(dictionary_, kCustomFiltersKey, filter)) { + PersistToPrefs(); + NotifyCustomFiltersChanged(); + } +} + -+void PersistentFilteringConfiguration::RemoveCustomFilter(std::string filter) { ++void PersistentFilteringConfiguration::RemoveCustomFilter( ++ const std::string& filter) { + if (RemoveFromList(dictionary_, kCustomFiltersKey, filter)) { + PersistToPrefs(); + NotifyCustomFiltersChanged(); @@ -13901,16 +14141,16 @@ new file mode 100644 + void SetEnabled(bool enabled) final; + bool IsEnabled() const final; + -+ void AddFilterList(GURL url) final; -+ void RemoveFilterList(GURL url) final; ++ void AddFilterList(const GURL& url) final; ++ void RemoveFilterList(const GURL& url) final; + std::vector GetFilterLists() const final; + -+ void AddAllowedDomain(std::string domain) final; -+ void RemoveAllowedDomain(std::string domain) final; ++ void AddAllowedDomain(const std::string& domain) final; ++ void RemoveAllowedDomain(const std::string& domain) final; + std::vector GetAllowedDomains() const final; + -+ void AddCustomFilter(std::string filter) final; -+ void RemoveCustomFilter(std::string filter) final; ++ void AddCustomFilter(const std::string& filter) final; ++ void RemoveCustomFilter(const std::string& filter) final; + std::vector GetCustomFilters() const final; + + static void RegisterProfilePrefs(PrefRegistrySimple* registry); @@ -13927,7 +14167,7 @@ new file mode 100644 + void NotifyAllowedDomainsChanged(); + void NotifyCustomFiltersChanged(); + -+ raw_ptr pref_service_; ++ const raw_ptr pref_service_; + std::string name_; + base::ObserverList observers_; + base::Value::Dict dictionary_; @@ -13936,11 +14176,327 @@ new file mode 100644 +} // namespace adblock + +#endif // COMPONENTS_ADBLOCK_CORE_CONFIGURATION_PERSISTENT_FILTERING_CONFIGURATION_H_ -diff --git a/components/adblock/core/configuration/persistent_filtering_configuration_test.cc b/components/adblock/core/configuration/persistent_filtering_configuration_test.cc +diff --git a/components/adblock/core/configuration/test/fake_filtering_configuration.cc b/components/adblock/core/configuration/test/fake_filtering_configuration.cc new file mode 100644 --- /dev/null -+++ b/components/adblock/core/configuration/persistent_filtering_configuration_test.cc -@@ -0,0 +1,240 @@ ++++ b/components/adblock/core/configuration/test/fake_filtering_configuration.cc +@@ -0,0 +1,115 @@ ++ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include "components/adblock/core/configuration/test/fake_filtering_configuration.h" ++ ++#include "base/ranges/algorithm.h" ++#include "testing/gtest/include/gtest/gtest.h" ++ ++namespace adblock { ++ ++FakeFilteringConfiguration::FakeFilteringConfiguration() : name("testing") {} ++ ++FakeFilteringConfiguration::~FakeFilteringConfiguration() { ++ EXPECT_FALSE(observer) << "Observer was not removed"; ++} ++ ++void FakeFilteringConfiguration::AddObserver(Observer* obs) { ++ EXPECT_FALSE(observer) << "Observer was already added"; ++ observer = obs; ++} ++ ++void FakeFilteringConfiguration::RemoveObserver(Observer* obs) { ++ EXPECT_EQ(observer, obs) << "This fake works with just a single observer"; ++ observer = nullptr; ++} ++ ++const std::string& FakeFilteringConfiguration::GetName() const { ++ return name; ++} ++ ++void FakeFilteringConfiguration::SetEnabled(bool enabled) { ++ is_enabled = enabled; ++ if (observer) { ++ observer->OnEnabledStateChanged(this); ++ } ++} ++ ++bool FakeFilteringConfiguration::IsEnabled() const { ++ return is_enabled; ++} ++ ++void FakeFilteringConfiguration::AddFilterList(const GURL& url) { ++ filter_lists.push_back(url); ++ if (observer) { ++ observer->OnFilterListsChanged(this); ++ } ++} ++ ++void FakeFilteringConfiguration::RemoveFilterList(const GURL& url) { ++ filter_lists.erase(base::ranges::remove(filter_lists, url), ++ filter_lists.end()); ++ if (observer) { ++ observer->OnFilterListsChanged(this); ++ } ++} ++ ++std::vector FakeFilteringConfiguration::GetFilterLists() const { ++ return filter_lists; ++} ++ ++void FakeFilteringConfiguration::AddAllowedDomain(const std::string& domain) { ++ allowed_domains.push_back(domain); ++ if (observer) { ++ observer->OnAllowedDomainsChanged(this); ++ } ++} ++ ++void FakeFilteringConfiguration::RemoveAllowedDomain( ++ const std::string& domain) { ++ allowed_domains.erase(base::ranges::remove(allowed_domains, domain), ++ allowed_domains.end()); ++ if (observer) { ++ observer->OnAllowedDomainsChanged(this); ++ } ++} ++ ++std::vector FakeFilteringConfiguration::GetAllowedDomains() const { ++ return allowed_domains; ++} ++ ++void FakeFilteringConfiguration::AddCustomFilter(const std::string& filter) { ++ custom_filters.push_back(filter); ++ if (observer) { ++ observer->OnCustomFiltersChanged(this); ++ } ++} ++ ++void FakeFilteringConfiguration::RemoveCustomFilter(const std::string& filter) { ++ custom_filters.erase(base::ranges::remove(custom_filters, filter), ++ custom_filters.end()); ++ if (observer) { ++ observer->OnCustomFiltersChanged(this); ++ } ++} ++ ++std::vector FakeFilteringConfiguration::GetCustomFilters() const { ++ return custom_filters; ++} ++ ++} // namespace adblock +diff --git a/components/adblock/core/configuration/test/fake_filtering_configuration.h b/components/adblock/core/configuration/test/fake_filtering_configuration.h +new file mode 100644 +--- /dev/null ++++ b/components/adblock/core/configuration/test/fake_filtering_configuration.h +@@ -0,0 +1,66 @@ ++ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#ifndef COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_FAKE_FILTERING_CONFIGURATION_H_ ++#define COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_FAKE_FILTERING_CONFIGURATION_H_ ++ ++#include ++#include ++ ++#include "base/memory/raw_ptr.h" ++#include "base/observer_list.h" ++#include "components/adblock/core/configuration/filtering_configuration.h" ++ ++namespace adblock { ++ ++class FakeFilteringConfiguration : public FilteringConfiguration { ++ public: ++ FakeFilteringConfiguration(); ++ ~FakeFilteringConfiguration() override; ++ ++ void AddObserver(Observer* observer) override; ++ void RemoveObserver(Observer* observer) override; ++ ++ const std::string& GetName() const override; ++ ++ void SetEnabled(bool enabled) override; ++ bool IsEnabled() const override; ++ ++ void AddFilterList(const GURL& url) override; ++ void RemoveFilterList(const GURL& url) override; ++ std::vector GetFilterLists() const override; ++ ++ void AddAllowedDomain(const std::string& domain) override; ++ void RemoveAllowedDomain(const std::string& domain) override; ++ std::vector GetAllowedDomains() const override; ++ ++ void AddCustomFilter(const std::string& filter) override; ++ void RemoveCustomFilter(const std::string& filter) override; ++ std::vector GetCustomFilters() const override; ++ ++ raw_ptr observer = nullptr; ++ std::string name; ++ bool is_enabled = true; ++ std::vector filter_lists; ++ std::vector allowed_domains; ++ std::vector custom_filters; ++}; ++ ++} // namespace adblock ++ ++#endif // COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_FAKE_FILTERING_CONFIGURATION_H_ +diff --git a/components/adblock/core/configuration/test/mock_filtering_configuration.cc b/components/adblock/core/configuration/test/mock_filtering_configuration.cc +new file mode 100644 +--- /dev/null ++++ b/components/adblock/core/configuration/test/mock_filtering_configuration.cc +@@ -0,0 +1,34 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include "components/adblock/core/configuration/test/mock_filtering_configuration.h" ++ ++namespace adblock { ++ ++MockFilteringConfiguration::MockFilteringConfiguration() = default; ++MockFilteringConfiguration::~MockFilteringConfiguration() = default; ++ ++void MockFilteringConfiguration::AddObserver( ++ FilteringConfiguration::Observer* observer) { ++ observers_.AddObserver(observer); ++} ++void MockFilteringConfiguration::RemoveObserver( ++ FilteringConfiguration::Observer* observer) { ++ observers_.RemoveObserver(observer); ++} ++ ++} // namespace adblock +diff --git a/components/adblock/core/configuration/test/mock_filtering_configuration.h b/components/adblock/core/configuration/test/mock_filtering_configuration.h +new file mode 100644 +--- /dev/null ++++ b/components/adblock/core/configuration/test/mock_filtering_configuration.h +@@ -0,0 +1,81 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#ifndef COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_MOCK_FILTERING_CONFIGURATION_H_ ++#define COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_MOCK_FILTERING_CONFIGURATION_H_ ++ ++#include "base/observer_list.h" ++#include "components/adblock/core/configuration/filtering_configuration.h" ++#include "testing/gmock/include/gmock/gmock.h" ++ ++using testing::NiceMock; ++ ++namespace adblock { ++ ++class MockFilteringConfiguration : public FilteringConfiguration { ++ public: ++ MockFilteringConfiguration(); ++ ~MockFilteringConfiguration() override; ++ ++ void AddObserver(FilteringConfiguration::Observer* observer) override; ++ void RemoveObserver(FilteringConfiguration::Observer* observer) override; ++ ++ // The name must be unique across all created configurations. ++ MOCK_METHOD(const std::string&, GetName, (), (const, override)); ++ ++ // Enable or disable the entire configuration. A disabled configuration does ++ // not contribute filters to classification and behaves as if it was not ++ // installed. ++ MOCK_METHOD(void, SetEnabled, (bool enabled), (override)); ++ MOCK_METHOD(bool, IsEnabled, (), (const, override)); ++ ++ // Adding an existing filter list, or removing a non-existing filter list, are ++ // NOPs and do not notify observers. ++ MOCK_METHOD(void, AddFilterList, (const GURL& url), (override)); ++ MOCK_METHOD(void, RemoveFilterList, (const GURL& url), (override)); ++ MOCK_METHOD(std::vector, GetFilterLists, (), (const, override)); ++ ++ // Adding an existing allowed domain, or removing a non-existing allowed ++ // domain, are NOPs and do not notify observers. ++ MOCK_METHOD(void, AddAllowedDomain, (const std::string& domain), (override)); ++ MOCK_METHOD(void, ++ RemoveAllowedDomain, ++ (const std::string& domain), ++ (override)); ++ MOCK_METHOD(std::vector, ++ GetAllowedDomains, ++ (), ++ (const, override)); ++ ++ // Adding an existing custom filter, or removing a non-existing custom filter, ++ // are NOPs and do not notify observers. ++ MOCK_METHOD(void, AddCustomFilter, (const std::string& filter), (override)); ++ MOCK_METHOD(void, ++ RemoveCustomFilter, ++ (const std::string& filter), ++ (override)); ++ MOCK_METHOD(std::vector, ++ GetCustomFilters, ++ (), ++ (const, override)); ++ ++ base::ObserverList observers_; ++}; ++ ++} // namespace adblock ++ ++#endif // COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_MOCK_FILTERING_CONFIGURATION_H_ +diff --git a/components/adblock/core/configuration/test/persistent_filtering_configuration_test.cc b/components/adblock/core/configuration/test/persistent_filtering_configuration_test.cc +new file mode 100644 +--- /dev/null ++++ b/components/adblock/core/configuration/test/persistent_filtering_configuration_test.cc +@@ -0,0 +1,252 @@ + +/* + * This file is part of eyeo Chromium SDK, @@ -13963,6 +14519,7 @@ new file mode 100644 + +#include + ++#include "components/adblock/core/configuration/filtering_configuration_prefs.h" +#include "components/prefs/testing_pref_service.h" +#include "gmock/gmock.h" +#include "gtest/gtest.h" @@ -14175,321 +14732,23 @@ new file mode 100644 + testing::UnorderedElementsAre(kCustomFilter1, kCustomFilter3)); +} + ++TEST_F(AdblockPersistentFilteringConfigurationTest, ++ PrefsClearedAfterRemovePersistedData) { ++ const auto& all_configurations = ++ pref_service_ ++ .GetValue(filtering_configuration::prefs::kConfigurationsPrefsPath) ++ .GetDict(); ++ EXPECT_NE(nullptr, all_configurations.FindDict(kName)); ++ PersistentFilteringConfiguration::RemovePersistedData(&pref_service_, kName); ++ EXPECT_EQ(nullptr, all_configurations.FindDict(kName)); ++} ++ +INSTANTIATE_TEST_SUITE_P(All, + AdblockPersistentFilteringConfigurationTest, + testing::Values(RecreateConfiguration::Yes, + RecreateConfiguration::No)); + +} // namespace adblock -diff --git a/components/adblock/core/configuration/test/fake_filtering_configuration.cc b/components/adblock/core/configuration/test/fake_filtering_configuration.cc -new file mode 100644 ---- /dev/null -+++ b/components/adblock/core/configuration/test/fake_filtering_configuration.cc -@@ -0,0 +1,114 @@ -+ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#include "components/adblock/core/configuration/test/fake_filtering_configuration.h" -+ -+#include "base/ranges/algorithm.h" -+#include "testing/gtest/include/gtest/gtest.h" -+ -+namespace adblock { -+ -+FakeFilteringConfiguration::FakeFilteringConfiguration() : name("testing") {} -+ -+FakeFilteringConfiguration::~FakeFilteringConfiguration() { -+ EXPECT_FALSE(observer) << "Observer was not removed"; -+} -+ -+void FakeFilteringConfiguration::AddObserver(Observer* obs) { -+ EXPECT_FALSE(observer) << "Observer was already added"; -+ observer = obs; -+} -+ -+void FakeFilteringConfiguration::RemoveObserver(Observer* obs) { -+ EXPECT_EQ(observer, obs) << "This fake works with just a single observer"; -+ observer = nullptr; -+} -+ -+const std::string& FakeFilteringConfiguration::GetName() const { -+ return name; -+} -+ -+void FakeFilteringConfiguration::SetEnabled(bool enabled) { -+ is_enabled = enabled; -+ if (observer) { -+ observer->OnEnabledStateChanged(this); -+ } -+} -+ -+bool FakeFilteringConfiguration::IsEnabled() const { -+ return is_enabled; -+} -+ -+void FakeFilteringConfiguration::AddFilterList(GURL url) { -+ filter_lists.push_back(url); -+ if (observer) { -+ observer->OnFilterListsChanged(this); -+ } -+} -+ -+void FakeFilteringConfiguration::RemoveFilterList(GURL url) { -+ filter_lists.erase(base::ranges::remove(filter_lists, url), -+ filter_lists.end()); -+ if (observer) { -+ observer->OnFilterListsChanged(this); -+ } -+} -+ -+std::vector FakeFilteringConfiguration::GetFilterLists() const { -+ return filter_lists; -+} -+ -+void FakeFilteringConfiguration::AddAllowedDomain(std::string domain) { -+ allowed_domains.push_back(domain); -+ if (observer) { -+ observer->OnAllowedDomainsChanged(this); -+ } -+} -+ -+void FakeFilteringConfiguration::RemoveAllowedDomain(std::string domain) { -+ allowed_domains.erase(base::ranges::remove(allowed_domains, domain), -+ allowed_domains.end()); -+ if (observer) { -+ observer->OnAllowedDomainsChanged(this); -+ } -+} -+ -+std::vector FakeFilteringConfiguration::GetAllowedDomains() const { -+ return allowed_domains; -+} -+ -+void FakeFilteringConfiguration::AddCustomFilter(std::string filter) { -+ custom_filters.push_back(filter); -+ if (observer) { -+ observer->OnCustomFiltersChanged(this); -+ } -+} -+ -+void FakeFilteringConfiguration::RemoveCustomFilter(std::string filter) { -+ custom_filters.erase(base::ranges::remove(custom_filters, filter), -+ custom_filters.end()); -+ if (observer) { -+ observer->OnCustomFiltersChanged(this); -+ } -+} -+ -+std::vector FakeFilteringConfiguration::GetCustomFilters() const { -+ return custom_filters; -+} -+ -+} // namespace adblock -diff --git a/components/adblock/core/configuration/test/fake_filtering_configuration.h b/components/adblock/core/configuration/test/fake_filtering_configuration.h -new file mode 100644 ---- /dev/null -+++ b/components/adblock/core/configuration/test/fake_filtering_configuration.h -@@ -0,0 +1,66 @@ -+ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#ifndef COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_FAKE_FILTERING_CONFIGURATION_H_ -+#define COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_FAKE_FILTERING_CONFIGURATION_H_ -+ -+#include -+#include -+ -+#include "base/memory/raw_ptr.h" -+#include "base/observer_list.h" -+#include "components/adblock/core/configuration/filtering_configuration.h" -+ -+namespace adblock { -+ -+class FakeFilteringConfiguration : public FilteringConfiguration { -+ public: -+ FakeFilteringConfiguration(); -+ ~FakeFilteringConfiguration() override; -+ -+ void AddObserver(Observer* observer) override; -+ void RemoveObserver(Observer* observer) override; -+ -+ const std::string& GetName() const override; -+ -+ void SetEnabled(bool enabled) override; -+ bool IsEnabled() const override; -+ -+ void AddFilterList(GURL url) override; -+ void RemoveFilterList(GURL url) override; -+ std::vector GetFilterLists() const override; -+ -+ void AddAllowedDomain(std::string domain) override; -+ void RemoveAllowedDomain(std::string domain) override; -+ std::vector GetAllowedDomains() const override; -+ -+ void AddCustomFilter(std::string filter) override; -+ void RemoveCustomFilter(std::string filter) override; -+ std::vector GetCustomFilters() const override; -+ -+ raw_ptr observer = nullptr; -+ std::string name; -+ bool is_enabled = true; -+ std::vector filter_lists; -+ std::vector allowed_domains; -+ std::vector custom_filters; -+}; -+ -+} // namespace adblock -+ -+#endif // COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_FAKE_FILTERING_CONFIGURATION_H_ -diff --git a/components/adblock/core/configuration/test/mock_filtering_configuration.cc b/components/adblock/core/configuration/test/mock_filtering_configuration.cc -new file mode 100644 ---- /dev/null -+++ b/components/adblock/core/configuration/test/mock_filtering_configuration.cc -@@ -0,0 +1,34 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#include "components/adblock/core/configuration/test/mock_filtering_configuration.h" -+ -+namespace adblock { -+ -+MockFilteringConfiguration::MockFilteringConfiguration() = default; -+MockFilteringConfiguration::~MockFilteringConfiguration() = default; -+ -+void MockFilteringConfiguration::AddObserver( -+ FilteringConfiguration::Observer* observer) { -+ observers_.AddObserver(observer); -+} -+void MockFilteringConfiguration::RemoveObserver( -+ FilteringConfiguration::Observer* observer) { -+ observers_.RemoveObserver(observer); -+} -+ -+} // namespace adblock -diff --git a/components/adblock/core/configuration/test/mock_filtering_configuration.h b/components/adblock/core/configuration/test/mock_filtering_configuration.h -new file mode 100644 ---- /dev/null -+++ b/components/adblock/core/configuration/test/mock_filtering_configuration.h -@@ -0,0 +1,75 @@ -+/* -+ * This file is part of eyeo Chromium SDK, -+ * Copyright (C) 2006-present eyeo GmbH -+ * -+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 3 as -+ * published by the Free Software Foundation. -+ * -+ * eyeo Chromium SDK is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with eyeo Chromium SDK. If not, see . -+ */ -+ -+#ifndef COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_MOCK_FILTERING_CONFIGURATION_H_ -+#define COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_MOCK_FILTERING_CONFIGURATION_H_ -+ -+#include "base/observer_list.h" -+#include "components/adblock/core/configuration/filtering_configuration.h" -+#include "testing/gmock/include/gmock/gmock.h" -+ -+using testing::NiceMock; -+ -+namespace adblock { -+ -+class MockFilteringConfiguration : public FilteringConfiguration { -+ public: -+ MockFilteringConfiguration(); -+ ~MockFilteringConfiguration() override; -+ -+ void AddObserver(FilteringConfiguration::Observer* observer) override; -+ void RemoveObserver(FilteringConfiguration::Observer* observer) override; -+ -+ // The name must be unique across all created configurations. -+ MOCK_METHOD(const std::string&, GetName, (), (const, override)); -+ -+ // Enable or disable the entire configuration. A disabled configuration does -+ // not contribute filters to classification and behaves as if it was not -+ // installed. -+ MOCK_METHOD(void, SetEnabled, (bool enabled), (override)); -+ MOCK_METHOD(bool, IsEnabled, (), (const, override)); -+ -+ // Adding an existing filter list, or removing a non-existing filter list, are -+ // NOPs and do not notify observers. -+ MOCK_METHOD(void, AddFilterList, (GURL url), (override)); -+ MOCK_METHOD(void, RemoveFilterList, (GURL url), (override)); -+ MOCK_METHOD(std::vector, GetFilterLists, (), (const, override)); -+ -+ // Adding an existing allowed domain, or removing a non-existing allowed -+ // domain, are NOPs and do not notify observers. -+ MOCK_METHOD(void, AddAllowedDomain, (std::string domain), (override)); -+ MOCK_METHOD(void, RemoveAllowedDomain, (std::string domain), (override)); -+ MOCK_METHOD(std::vector, -+ GetAllowedDomains, -+ (), -+ (const, override)); -+ -+ // Adding an existing custom filter, or removing a non-existing custom filter, -+ // are NOPs and do not notify observers. -+ MOCK_METHOD(void, AddCustomFilter, (std::string filter), (override)); -+ MOCK_METHOD(void, RemoveCustomFilter, (std::string filter), (override)); -+ MOCK_METHOD(std::vector, -+ GetCustomFilters, -+ (), -+ (const, override)); -+ -+ base::ObserverList observers_; -+}; -+ -+} // namespace adblock -+ -+#endif // COMPONENTS_ADBLOCK_CORE_CONFIGURATION_TEST_MOCK_FILTERING_CONFIGURATION_H_ diff --git a/components/adblock/core/converter/BUILD.gn b/components/adblock/core/converter/BUILD.gn new file mode 100644 --- /dev/null @@ -15100,7 +15359,7 @@ diff --git a/components/adblock/core/converter/parser/domain_option.cc b/compone new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/domain_option.cc -@@ -0,0 +1,115 @@ +@@ -0,0 +1,114 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -15137,13 +15396,12 @@ new file mode 100644 + +} // namespace + -+static constexpr char kExcludeSymbol = '~'; -+ +DomainOption::DomainOption() {} + +// static +DomainOption DomainOption::FromString(base::StringPiece domains_list, + base::StringPiece separator) { ++ static const std::string_view kExclusionPrefix = "~"; + auto lower_domains_list = base::ToLowerASCII(domains_list); + auto domains = + base::SplitStringPiece(lower_domains_list, separator, @@ -15151,7 +15409,7 @@ new file mode 100644 + + const auto first_include_domain_it = std::partition( + domains.begin(), domains.end(), [](base::StringPiece domain) { -+ return !domain.empty() && domain.front() == kExcludeSymbol; ++ return base::StartsWith(domain, kExclusionPrefix); + }); + + std::vector exclude_domains(domains.begin(), @@ -15161,7 +15419,7 @@ new file mode 100644 + + // Remove the ~ prefix that indicates an exclude domain. + for (auto& domain : exclude_domains) { -+ base::RemoveChars(domain, base::StringPiece(&kExcludeSymbol), &domain); ++ base::RemoveChars(domain, kExclusionPrefix, &domain); + } + + RemoveDuplicates(exclude_domains); @@ -22876,7 +23134,7 @@ diff --git a/components/adblock/core/subscription/installed_subscription_impl.cc new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/installed_subscription_impl.cc -@@ -0,0 +1,552 @@ +@@ -0,0 +1,554 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -23131,7 +23389,8 @@ new file mode 100644 + if (filter_disallowed_by_excludes) { + continue; + } -+ selectors.push_back(filter->selector()->c_str()); ++ selectors.emplace_back(filter->selector()->c_str(), ++ filter->selector()->size()); + } + + return selectors; @@ -23337,8 +23596,9 @@ new file mode 100644 + + if (sitekeys->size() != 0u) { + if (std::none_of( -+ sitekeys->begin(), sitekeys->end(), -+ [&sitekey](const auto* it) { return it->c_str() == sitekey; })) { ++ sitekeys->begin(), sitekeys->end(), [&sitekey](const auto* it) { ++ return base::StringPiece(it->c_str(), it->size()) == sitekey; ++ })) { + // This filter requires a sitekey, and the one provided doesn't match. + return false; + } @@ -25396,7 +25656,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_config.cc -@@ -0,0 +1,320 @@ +@@ -0,0 +1,338 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -25577,12 +25837,24 @@ new file mode 100644 + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, ++ {GURL(GetHost() + "global-filters+easylist.txt"), ++ "Global Filters+EasyList", ++ {"th", "el", "sl", "hr", "sr", "bs"}, ++ SubscriptionUiVisibility::Visible, ++ SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, ++ SubscriptionPrivilegedFilterStatus::Forbidden}, + {GURL(GetHost() + "indianlist+easylist.txt"), + "IndianList+EasyList", + {"bn", "gu", "hi", "pa", "as", "mr", "ml", "te", "kn", "or", "ne", "si"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, ++ {GURL(GetHost() + "japanese-filters+easylist.txt"), ++ "Japanese Filters+EasyList", ++ {"ja"}, ++ SubscriptionUiVisibility::Visible, ++ SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, ++ SubscriptionPrivilegedFilterStatus::Forbidden}, + {GURL(GetHost() + "koreanlist+easylist.txt"), + "KoreanList+EasyList", + {"ko"}, @@ -25615,7 +25887,13 @@ new file mode 100644 + SubscriptionPrivilegedFilterStatus::Forbidden}, + {GURL(GetHost() + "ruadlist+easylist.txt"), + "RuAdList+EasyList", -+ {"ru", "uk"}, ++ {"ru", "uk", "uz", "kk"}, ++ SubscriptionUiVisibility::Visible, ++ SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, ++ SubscriptionPrivilegedFilterStatus::Forbidden}, ++ {GURL(GetHost() + "turkish-filters+easylist.txt"), ++ "Turkish Filters+EasyList", ++ {"tr"}, + SubscriptionUiVisibility::Visible, + SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, + SubscriptionPrivilegedFilterStatus::Forbidden}, @@ -27886,7 +28164,7 @@ diff --git a/components/adblock/core/subscription/test/filtering_configuration_m new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/filtering_configuration_maintainer_impl_test.cc -@@ -0,0 +1,900 @@ +@@ -0,0 +1,908 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -28108,6 +28386,14 @@ new file mode 100644 + std::move(storage_->on_initialized_).Run(loaded_subscriptions); + } + ++ void TearDown() override { ++ // Avoid danging pointers during destruction. ++ storage_ = nullptr; ++ preloaded_subscription_provider_ = nullptr; ++ updater_ = nullptr; ++ downloader_ = nullptr; ++ } ++ + void AddSubscription( + scoped_refptr subscription, + SubscriptionDownloader::RetryPolicy expected_retry_policy = @@ -32760,7 +33046,7 @@ diff --git a/components/adblock/core/subscription/test/subscription_persistent_s new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/subscription_persistent_storage_impl_test.cc -@@ -0,0 +1,342 @@ +@@ -0,0 +1,347 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -32860,6 +33146,11 @@ new file mode 100644 + RecreateStorage(); + } + ++ void TearDown() final { ++ // Avoid dangling pointers during destruction. ++ validator_ = nullptr; ++ } ++ + void RecreateStorage() { + auto validator = std::make_unique(); + validator_ = validator.get(); @@ -33107,7 +33398,7 @@ diff --git a/components/adblock/core/subscription/test/subscription_service_impl new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/test/subscription_service_impl_test.cc -@@ -0,0 +1,275 @@ +@@ -0,0 +1,287 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -33179,6 +33470,25 @@ new file mode 100644 + &AdblockSubscriptionServiceImplTest::MockCleanupConfiguration, + base::Unretained(this))) {} + ++ void TearDown() override { ++ // Avoid dangling pointers during destruction. ++ maintainer_factory_calls_.clear(); ++ } ++ ++ void DisableConfigurationAndEnsureMaintainerDestroyed( ++ MaintainerFactoryCall* entry) { ++ bool maintainer_destroyed = false; ++ EXPECT_CALL(*entry->output_maintainer, Destructor()).WillOnce([&]() { ++ maintainer_destroyed = true; ++ }); ++ entry->output_maintainer = nullptr; ++ entry->input_configuration->SetEnabled(false); ++ // Explicitly verifying the maintainer was destroyed now, because the ++ // destructor will always be called *eventually*. We want to make sure it ++ // was called in response to SetEnabled(false). ++ EXPECT_TRUE(maintainer_destroyed); ++ } ++ + std::unique_ptr MockMakeMaintainer( + FilteringConfiguration* configuration, + SubscriptionServiceImpl::SubscriptionUpdatedCallback update_callback) { @@ -33238,6 +33548,9 @@ new file mode 100644 + EXPECT_EQ(testee_.GetInstalledFilteringConfigurations(), + std::vector{config_bare_ptr}); + ASSERT_EQ(0u, cleaned_configs_.size()); ++ // Avoid dangling pointers after UninstallFilteringConfiguration(). ++ maintainer_factory_calls_[0].input_configuration = nullptr; ++ maintainer_factory_calls_[0].output_maintainer = nullptr; + // Uninstall and confirm. + testee_.UninstallFilteringConfiguration(config_name); + EXPECT_TRUE(testee_.GetInstalledFilteringConfigurations().empty()); @@ -33266,14 +33579,8 @@ new file mode 100644 + config->is_enabled = true; + testee_.InstallFilteringConfiguration(std::move(config)); + -+ ASSERT_EQ(maintainer_factory_calls_.size(), 1u); -+ auto maintainer = maintainer_factory_calls_[0].output_maintainer; -+ EXPECT_CALL(*maintainer, Destructor()); -+ config_bare_ptr->SetEnabled(false); -+ // Explicitly verifying the EXPECT_CALL now, because the destructor will -+ // always be called *eventually*. We want to make sure it was called in -+ // response to SetEnabled(false). -+ testing::Mock::VerifyAndClearExpectations(maintainer); ++ DisableConfigurationAndEnsureMaintainerDestroyed( ++ &maintainer_factory_calls_[0]); + // The configuration remains installed, even if it is disabled and there is + // no maintainer for it. + EXPECT_EQ(testee_.GetInstalledFilteringConfigurations(), @@ -33295,12 +33602,10 @@ new file mode 100644 + maintainer_factory_calls_[0].input_configuration, + maintainer_factory_calls_[1].input_configuration, + maintainer_factory_calls_[2].input_configuration)); -+ auto& disabled_entry = maintainer_factory_calls_[1]; ++ auto disabled_entry = std::move(maintainer_factory_calls_[1]); + // We disable one configuration. The maintainer of that configuration will -+ // not be consulted when we ask for the configuration's Subscriptions. -+ EXPECT_CALL(*disabled_entry.output_maintainer, GetCurrentSubscriptions()) -+ .Times(0); -+ disabled_entry.input_configuration->SetEnabled(false); ++ // be destroyed, so it won't be consulted for subscriptions. ++ DisableConfigurationAndEnsureMaintainerDestroyed(&disabled_entry); + EXPECT_TRUE( + testee_.GetCurrentSubscriptions(disabled_entry.input_configuration) + .empty()); @@ -33334,11 +33639,9 @@ new file mode 100644 + std::make_unique()); + ASSERT_EQ(maintainer_factory_calls_.size(), 3u); + // We disable one configuration. The maintainer of that configuration will -+ // not take part in populating the Snapshot. -+ EXPECT_CALL(*maintainer_factory_calls_[1].output_maintainer, -+ GetSubscriptionCollection()) -+ .Times(0); -+ maintainer_factory_calls_[1].input_configuration->SetEnabled(false); ++ // not take part in populating the Snapshot because it will be destroyed. ++ DisableConfigurationAndEnsureMaintainerDestroyed( ++ &maintainer_factory_calls_[1]); + // The maintainers of enabled configurations will be asked to provide + // SubscriptionCollections for the Snapshot. + auto collection1 = std::make_unique(); @@ -33965,7 +34268,7 @@ diff --git a/components/adblock/core/test/activeping_telemetry_topic_provider_te new file mode 100644 --- /dev/null +++ b/components/adblock/core/test/activeping_telemetry_topic_provider_test.cc -@@ -0,0 +1,320 @@ +@@ -0,0 +1,328 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -33994,7 +34297,9 @@ new file mode 100644 +#include "base/test/task_environment.h" +#include "base/uuid.h" +#include "components/adblock/core/common/adblock_prefs.h" -+#include "components/adblock/core/test/mock_adblock_controller.h" ++#include "components/adblock/core/configuration/test/mock_filtering_configuration.h" ++#include "components/adblock/core/subscription/subscription_config.h" ++#include "components/adblock/core/subscription/test/mock_subscription_service.h" +#include "components/prefs/pref_value_store.h" +#include "components/prefs/testing_pref_service.h" +#include "gmock/gmock.h" @@ -34012,8 +34317,12 @@ new file mode 100644 + app_info_.version = "1234"; + app_info_.client_os = "UNUSED"; // base/sys_info.h used instead. + common::prefs::RegisterProfilePrefs(pref_service_.registry()); -+ EXPECT_CALL(controller_, IsAcceptableAdsEnabled()) -+ .WillRepeatedly(testing::Return(AcceptableAdsEnabled())); ++ EXPECT_CALL(subscription_service_, GetAdblockFilteringConfiguration()) ++ .WillRepeatedly(testing::Return(&adblock_configuration_)); ++ EXPECT_CALL(adblock_configuration_, GetFilterLists()) ++ .WillRepeatedly(testing::Return( ++ AcceptableAdsEnabled() ? std::vector{AcceptableAdsUrl()} ++ : std::vector{})); + RecreateProvider(); + } + @@ -34023,7 +34332,8 @@ new file mode 100644 + + void RecreateProvider() { + provider_ = std::make_unique( -+ app_info_, &pref_service_, &controller_, kBaseUrl, kAuthToken); ++ app_info_, &pref_service_, &subscription_service_, kBaseUrl, ++ kAuthToken); + } + + void ExpectPayloadAndTimeConsistentAfterRestart() { @@ -34117,7 +34427,8 @@ new file mode 100644 + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + utils::AppInfo app_info_; + TestingPrefServiceSimple pref_service_; -+ MockAdblockController controller_; ++ MockSubscriptionService subscription_service_; ++ MockFilteringConfiguration adblock_configuration_; + std::unique_ptr provider_; +}; + @@ -34290,7 +34601,7 @@ diff --git a/components/adblock/core/test/adblock_controller_impl_test.cc b/comp new file mode 100644 --- /dev/null +++ b/components/adblock/core/test/adblock_controller_impl_test.cc -@@ -0,0 +1,481 @@ +@@ -0,0 +1,449 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -34324,6 +34635,7 @@ new file mode 100644 +#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/common/adblock_prefs.h" +#include "components/adblock/core/configuration/filtering_configuration.h" ++#include "components/adblock/core/configuration/test/mock_filtering_configuration.h" +#include "components/adblock/core/subscription/subscription_config.h" +#include "components/adblock/core/subscription/test/mock_subscription.h" +#include "components/adblock/core/subscription/test/mock_subscription_service.h" @@ -34339,39 +34651,6 @@ new file mode 100644 +using testing::_; +using testing::Return; + -+namespace { -+ -+class MockFilteringConfiguration : public FilteringConfiguration { -+ public: -+ MOCK_METHOD(void, AddObserver, (Observer * observer), (override)); -+ MOCK_METHOD(void, RemoveObserver, (Observer * observer), (override)); -+ -+ MOCK_METHOD(const std::string&, GetName, (), (const, override)); -+ -+ MOCK_METHOD(void, SetEnabled, (bool enabled), (override)); -+ MOCK_METHOD(bool, IsEnabled, (), (const, override)); -+ -+ MOCK_METHOD(void, AddFilterList, (GURL url), (override)); -+ MOCK_METHOD(void, RemoveFilterList, (GURL url), (override)); -+ MOCK_METHOD(std::vector, GetFilterLists, (), (const, override)); -+ -+ MOCK_METHOD(void, AddAllowedDomain, (std::string domain), (override)); -+ MOCK_METHOD(void, RemoveAllowedDomain, (std::string domain), (override)); -+ MOCK_METHOD(std::vector, -+ GetAllowedDomains, -+ (), -+ (const, override)); -+ -+ MOCK_METHOD(void, AddCustomFilter, (std::string filter), (override)); -+ MOCK_METHOD(void, RemoveCustomFilter, (std::string filter), (override)); -+ MOCK_METHOD(std::vector, -+ GetCustomFilters, -+ (), -+ (const, override)); -+}; -+ -+} // namespace -+ +bool operator==(const KnownSubscriptionInfo& lhs, + const KnownSubscriptionInfo& rhs) { + return lhs.url == rhs.url && lhs.languages == rhs.languages && @@ -34656,7 +34935,7 @@ new file mode 100644 + // Anti-CV filter list is installed as well, to enable snippets. + ExpectInstallationTriggered(AntiCVUrl()); + -+ RecreateController("th-TH"); ++ RecreateController("hu-HU"); + testee_->RunFirstRunLogic(&pref_service_); +} + @@ -34776,7 +35055,7 @@ diff --git a/components/adblock/core/test/adblock_telemetry_service_unittest.cc new file mode 100644 --- /dev/null +++ b/components/adblock/core/test/adblock_telemetry_service_unittest.cc -@@ -0,0 +1,376 @@ +@@ -0,0 +1,409 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -34798,6 +35077,7 @@ new file mode 100644 + +#include + ++#include "base/test/mock_callback.h" +#include "base/test/task_environment.h" +#include "base/time/time.h" +#include "components/adblock/core/configuration/test/mock_filtering_configuration.h" @@ -34825,9 +35105,10 @@ new file mode 100644 + public: + MOCK_METHOD(GURL, GetEndpointURL, (), (const, override)); + MOCK_METHOD(std::string, GetAuthToken, (), (const, override)); -+ MOCK_METHOD(void, GetPayload, (PayloadCallback), (override)); ++ MOCK_METHOD(void, GetPayload, (PayloadCallback), (const, override)); + MOCK_METHOD(base::Time, GetTimeOfNextRequest, (), (const, override)); + MOCK_METHOD(void, ParseResponse, (std::unique_ptr), (override)); ++ MOCK_METHOD(void, FetchDebugInfo, (DebugInfoCallback), (const, override)); +}; + +const auto kInitialDelay = base::Seconds(30); @@ -35152,6 +35433,37 @@ new file mode 100644 + ExpectFooMadeRequest(0); +} + ++TEST_F(AdblockTelemetryServiceTest, CollectDebugInfoFromProviders) { ++ auto* foo_mock = RegisterFooMock(); ++ auto* bar_mock = RegisterBarMock(); ++ base::MockCallback ++ service_callback; ++ ++ // foo_mock provides the debug info synchronously. ++ EXPECT_CALL(*foo_mock, FetchDebugInfo(testing::_)) ++ .WillOnce([](MockTopicProvider::DebugInfoCallback callback) { ++ std::move(callback).Run("foo_debug_info"); ++ }); ++ ++ // bar_mock provides the debug info asynchronously, after foo_mock. ++ AdblockTelemetryService::TopicProvider::DebugInfoCallback bar_callback; ++ EXPECT_CALL(*bar_mock, FetchDebugInfo(testing::_)) ++ .WillOnce([&bar_callback](MockTopicProvider::DebugInfoCallback callback) { ++ bar_callback = std::move(callback); ++ }); ++ ++ // The service callback is called only after both providers have provided ++ // their debug info. ++ // Not yet: ++ EXPECT_CALL(service_callback, Run(testing::_)).Times(0); ++ telemetry_service_->GetTopicProvidersDebugInfo(service_callback.Get()); ++ ++ // Now bar_mock provides its debug info. ++ EXPECT_CALL(service_callback, ++ Run(testing::ElementsAre("foo_debug_info", "bar_debug_info"))); ++ std::move(bar_callback).Run("bar_debug_info"); ++} ++ +} // namespace adblock diff --git a/components/adblock/core/test/bundled_subscription_test.cc b/components/adblock/core/test/bundled_subscription_test.cc new file mode 100644 @@ -45496,7 +45808,7 @@ new file mode 100644 + +Differences across versions are listed in [the changelog](components/adblock/CHANGELOG.md). + -+You can also use our [interdiff script](tools/adblock/generate_interdiffs.sh) to compare two git revision ranges. ++You can also use our [interdiff script](tools/eyeo/generate_interdiffs.sh) to compare two git revision ranges. + +To get a combined patch, execute the script to obtain the changes introduced by eyeo Chromium SDK compared to vanilla Chromium in the old branch, and the same for the new new branch. You can obtain the necessary hashes for the revision ranges from release announcements. To get help on how to use the script, run `./generate_interdiffs.sh --help`. diff --git a/components/adblock/docs/settings/README.md b/components/adblock/docs/settings/README.md @@ -46619,18 +46931,7 @@ new file mode 100644 diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn --- a/components/resources/BUILD.gn +++ b/components/resources/BUILD.gn -@@ -2,6 +2,10 @@ - # Use of this source code is governed by a BSD-style license that can be - # found in the LICENSE file. - -+# This source code is a part of eyeo Chromium SDK. -+# Use of this source code is governed by the GPLv3 that can be found in the -+# components/adblock/LICENSE file. -+ - import("//build/config/android/config.gni") - import("//components/safe_browsing/buildflags.gni") - import("//components/supervised_user/buildflags.gni") -@@ -72,6 +76,11 @@ grit("components_resources") { +@@ -73,6 +73,11 @@ grit("components_resources") { if (is_android && safe_browsing_mode == 2) { deps += [ "//components/safe_browsing/content/resources/real_time_url_checks_allowlist:make_real_time_url_allowlist_protobuf" ] } @@ -46646,7 +46947,7 @@ diff --git a/components/resources/adblock_resources.grdp b/components/resources/ new file mode 100644 --- /dev/null +++ b/components/resources/adblock_resources.grdp -@@ -0,0 +1,26 @@ +@@ -0,0 +1,27 @@ + +>{V)+WYEgV@~kbV!bNi987DBX)2n!e -zaigXG;g?^2{n?j~Kl=Eq5&eAB!|Tq02XT9!MFOUGgN9CW$;Qo7Uek^XaPH4!Ir*BY -z>DPEs`2;Ne!}dVFVCf(gFZB1VilpO6_9)0asq?Zb;$$!ZBYDtik9(nmMgR2L>k+t3>tug#$jFH{%vsFyh@}xaTJ_f#wVUNZ`|^tcdX>wG7%%bFE4-BCoYkZR`9utNiNRlwtjnN -zB^N6d;azU%^I~`keiFG`VthrF)y#f@OQsmQ3;$$bAlOKowkVbj{=-<^n6F~s -zWy<9QH#PB73-on6R@ZWFZUqI|fqEEg8uxKLDN}U)+Yh$Tm(}Ux?Z73_u@sGEVuxHz -zdDPZ+3U>3%$-%)S=M9_mrVPb&(k8-v@@%QZq-f1mo0TZ#vgQe%vJ3aUFWHNSSxfP2 -z=)6pypce_K_b7XCIH?BBlvhi`h0QWu6nWM(70M>OE!eQyN*`55E?(c~;}>$!oQ;e0 -z<=%V|OQjwTIPmS9>*KUne_76ss_I~HaelLA&O6Hv-v(AWo!@)Kw^!2#UCSD1V?8~w>mo<;xv6A($nWU0N`}kjS3Ly{vJy&iW{Ig-rp;V -z26A~V_g;^$KwQ>*zcLXN7%_pLb*cx=?1D%K26}Cc -zJSaoozH4Ut6yK&ld5Q_Z5CRI`EnGX**hb&)P3$#y811m{AeHzuS2jH;T#|066LR0i -zF9%;1Uqb=$2tKFw*NOg!1bs2#=$QHyV^p{fNT%@5MhzH#_=#7!IZnS%r_ktdj7dR< -zi8OSS9}S3!>N2;WVx8uup9?h(SZi?)>}=JVsMm=yFF^`%qBIHo2=Uz(+kjDf6g=Z@ -z#jRxnN?%kgZHuoQ9H=*)O?+Vg8L7MjAo$`5O!X63S1;MP3&`vfLE*?yLvz#%qTnv3 -zO&lLEt=;XQxe)G-n%%?tIjpsT5@l~&xK_?yX>?q~;@#fWmcsr^k+!AhiH(0M+pE*| -zr38BAc>&A+xYo7@23wg!al1zv+q2WHqQ9j1!>>Mlf?uO4aS&nERc(V_LOk)1xA7%& -zF*;bp$>Fgb{D()qW&8iJ_ioLSBGEMmsVL#ZRkQE__koaJd66F9bhx|Z=p7CbDd>KD5 -z!au{`C9^84FV#J>3xH58u)8NSJ1Z+I^ULp+-=*S&n6&1wYL``iCPNCS1&DcSvtT;J -zw{2}Y%v5uo_ul9UF&yIUa_>Bj6GTru1*t@JBC -z9!CC8tgmi_Udr-ARJax<-9*5^hKrxk3}}L!5`v?F%o$N#}aej -zjX(xXgiR2F!$5N?<~Fu1%%GI;Z9vH2vu%`^AU?I}LH(I~6B|}#s1tNomwo>6Wc=zC -z&ISJv4mg2%h~@(^rmN0s*ILd!$880Ea_ZW~>5Ur4eO#a>KblH&N(O_UJk+`j@xGCK -zu>r7k^A=zhFdwS6X{kmiam%I6?qfI)lJ-3@Q-^4a0hL5yQ-V+A%Svu-rD4wAE7SZpBtlB*)oET2={ -z^`cTT6dC-ly;>k8Hvn2ludHtbN1PTg41q|yi4oxm&RitgEI9ZXeufS9!j(s7ehmXV -zplLD(+p6f{*o8E!{G=go&<+r*#(TB5VCN0Vr -zyPZhr=jRqTUEF`zo2b-fvMf7>{ghbrr*VzIA8u#EJJ?1P1YT{Mm}6h}bO?cI4|o5( -z6p@(h{&}L8)hmx*y&%e4RLK(8^?{2|{UC~1n0XhjVg#`#j=xsoUC<53DVeSf3_U0~H -z*ap`~25TJFn9pOZHNZ&9e~sq9rTxpEyHsR+O2tIjrlI|7=x=So-LB!#JbPp_<}Nl% -zT!<0oOi2<7niX5sXN*{w@>9@Ccy*r3P#~_psp$fAB3`{p5^{v|T=VdCd1O2-LWlq?tISCY9yo(mOGLqRXl1`txxsW>DAw25H52Ma__5tNWDC&(4$eH0 -z3v`OibbN8%#>^B@nf3-VB{;6^zRi5#>cGBwHN@1W#89Ylg_nNo{7&`CLT6J-T@e=t -z`i3@A78dK0)Hf=#(ORH76l7Y8#Y9tR6U%es;quvUEI09U-~srgVL_yTI2!_1a^{a{ -z!{`OvsL>mssmI}xv)4AKdu0 -zdGNgR!Hr*=2fH5I`Ora2zN=F+%$AoyGb;7I3-l08p5Jz});Gtfw8CWD0jpAT9a$}E -zSe3v)^%rH1_vmJ#@_?K0?w@SeYlX{z9iw5IIJ58E{W}pb8O4*2|IRzxuW{CltvDjVJ?B_EJw5Q8g(re*pzU0$59dKZ-Eu)U-;FW3?&+SwD$4 -zyV%V*10>r@)|9D(OVXq0|d_z#qAGDF_B1>?xOeX`cs=O+#am0 -zd{|p;hqYB3)>d7xwpxR=)fQM=ZG*Md4p>`RSX*tt+Ny!Il@DvH8rD{uu(sL?YpV@d -zTY0dy+Jv>$R#;oLVQsYmYpZowTY0dy+JLoH3)WT}u(n!*wbcf!t=3?zMmUdpQGqEZ -z7a+SPTQ~>!_zIP~XkIE}Kzve6jJxJ~@Zf$gwC}uiiye=E9sFeaOkn72nV@~6`@Ol| -zeR3RLi)5sI>(OtI&)E{V=@N+?yg9Xr{KyxV?h@0ty`#4q%I@$j@41s>YczR$=Lp2dBN~NE -zJQ454^X|*D4ST+>@1d#KQMf{`2__F@qDGkAV*NhVo7j_jVqfDse;F_R<$S67DlfI* -zs`JMiki2_7ck9^@9G|zKb&Itq;#i#VlSt>RKWX2u3-19uawo^6Yh!=HYqfS8Kc;vD -zx8HicZ!=l1lSoQBp>`86ez1z){%ee+c59MgF#=+n_t2}Gu4!D92YYVoA8$+m?PP@T -z^V_?&3C6%GEC=k8WW55eX*pnF+5qOh=Io6oNYiSeFl%rjgR|mZYcCwWjJH`Izx9%A -zM2N6o`7XZueCys>5&}CFPJzQYexuimmjotPY-rtvDz@IQseoG^{&4T-05b?tH~;sm -zbu8|_)3w#FUPB(#jY$K7&BW1#9&?_E#%Ww-0=A|A04pyUi*9f0aBs-de0} -zi^Ic*B1i%8CoqXbBWtsBt~72U;~-od4eHScRyWZwX=tTo8NC2Q1jyQz{{H=oUMP`~ -zR;6)DO1j66Ibd$#QtCux*EXelsi8u?xt44>0Bz{9!l)dxz|@L%00ohRiC8-8DEbj? -z(C~J~4Nn*w*RY-h5I10|i7)rOy{~HDc`TuDWZSWYqY2m~&b6Bzy6ZF#Gp?|!lE!j@ -zbcr;_$6KD?_R^*q8(tDq*YiL6R?DUk4>h~S9k-r_pK^sk4K_ag)~)^$l}fD9?&T=D -zsjT_64mpC6pQacH1V&lwb<+BjohncxOJ{qZX`O!;B#hl=DbBtJ<8SowRmJzd_~hfq -zM?1#;ETm*NtUi5ie`@rpM>|=k!GQMFAq-}liPEl7i~0}+@DDm%ZD5+mo6!C9T?~iX -zF3;|h3K9eMII*QUxDG!Ac$p1sAO)y88a#!wdmEv)4x7RR1wqBV9S(8~DBfV;-7m-jAvGm)eY`QO?cm2-G;{8a$A07QHYv#{?ez)*hpmW}QddZEE~dk3tM -zlZcO-vj#tW^u>pt1oc3cANFL{EpLXWUVQlU^Jm{X^trve;vv@CmUU=02rYy$4$p0J -z2FCTTm;d3zUQR5e#7jAG(o{t0Rid$9AqAITPun##S7;hy=~d90q^=ALucG|-)ms-JGYjJ$?>vVb><7({*^t_ay$1scb)N -zx4qMLn{eSv1{qt4Re^M`Dv2#}-}>lYZ)QA|ToET#L3-?ojmxpxF1W=ajvG|$E;`}w^pcZwd^x92*q -z@&W!AGwuzZp?a8#Xan4sJeSc4)R9H^teoo}nAfSPpq|~UlEo{g&W@g4FN%G-a3kub4BxC_$8{Br -z**X|`MPWf9pPc|#IRvJrNnTMe0~TTsZI^XzESv?DgRJF7R`JBRq%Ru@r_ESQC4-wV -zW4xEkEf}G_sm(?SKco7{{?NC{2QUvMskChFTUVpJg8Zc(NYhMOt@ZHhJ)722^mBRQ -z0dt)WvpykSwaK_iRaoV!X>sFB{CK_-sQXJ(_$aQP4O_uE(^ySF-6068WqYM4Z~X8 -zQ+7UD3~S>^irgyX!E!=RMxKRV$yCX -z+Yd0BvRMr10}-FWIoyx1ROPP(4b&&q3+uh%tW!Ag~QXZFpP*w{_U{D6a=^ZOA1-X@Mb{kH^4%NMyfiawW$H3zQ21fA<1gr1Uz?+etJM5^xCon=Hd|e7` -zNM**oshkqSC8sr>$cd4MQk7$<|8Dd28Jbef`q$SVefrTCA3go}`o$MdzxeR_x<^T= -zEi5$IG22Y`?wQKWZ3uY)koThJQiG0xj`asbA*`d5b5ZmB-{VB&lS`3U7m2pWFwzw~ -zk;0M^6IRH1oLC+wB_;{Idl0lXIHVTuvW9)v&PJQ{YO`hA`Ktrq^jYmti(xP?F74u` -z0!Q{CY=?)l8|O`2cl|ZqJw@N0cz3!Ybn6C&K5%=efL4j9bW$feI&yNEaa`&cXd$MZ -zp}seIK`2-Q|H>{>x%9nC81r0Wcp}<5u7``#%ZF(#`BFjN{^|T=sR661yc;H4jt##M -zXDN-{8meLTpwADW`;H_}&Q-3%4=(!rX>4}?Jpa7&*XR2A)A&WtXDFr>o>oLI6&pC) -z!v1(kTjCHL{q`pxf3Ga_&u!ovJStJK$V)^AUZvykDD#xbrI+}~M^2soCxB>y?~)*( -z0&0>fgYyk|uSpkvc6nA?;GaG8Qn;TzTu46pXStG*^d8C43=-;r*XB~v*J8z4onftR -zy6}@!UtoH+`jp}U_rK87Fafy#G*0^_iUO#{D{%PL$9o|DL -zm>_idC+;^ym+B8w;K?{u-b0+fc#km+EdZNx5-T)ILchJ}j!#HP?jZjy$X -zMNGMixs+|72=^GJ#dDdup-y@3FrA_sqat1rQ`EU(by=^E{RK!4Qa!&Zlmd`YzVO>* -zsIx_#XU{ecIoiG7Qn4qzd##OJ0>sR=a85sOoFyia#GH3d5+^1O$#(6WN)^=PQSBxl -zHT@cXQasns##oPL6H-J(ty}RDI4o7snmqK248`V&N3d`%^2p+ -z(t(%;logzRYmQSWD6@KF+(8Xfvc0zTY?Q!W>QV)iTGeZX2VG)7ibnyBoM|=`MTHSt -z3Z8Zt5`3Y~9g6pPgm5-=x29NzspmGDQW!N$hPix$`eUi)rG&-0%iD})f)(3Uj?mi@ -ztC5>@C(5qQ$KLkp}^ -zbLgmH3`i0XdX1wo1fkZUsh3F=apj8yK1I+^L2Cp%GUWm!R?n2DV5HjrxCJ$e&tuBsEgLT$N} -zg&~ON=c@=LbCb)YiaF*72I>kcoyC;}p~{pXj8EjEt}bByI&G>$QJSV^ce)0k2t68@ -zNMQgQkw(Z0MJE<7yZpUge`+Vx&1rer0iK(AAI>j18FdtvLH%`+oJ3qJs@h+Ekx1Nh -zL{QdJ%>6*X;I$DA;B<)GmX&B4287b&Zeb!>#4a?-u!*RN&gB@k1BVbyJOOKY){$nw0NG}S=RKd%E7&no<)zQRH=Hmofc -z&F>CTQ-woi({G8c#)6hZptBviQH_O-ib@q_V>e`(2mt0H5mY+06VcVYL4q7+A;35b -z0Xw?WgMjK5W{S~XVDu`@S&>iNh{Z!q%582nra{dTIh2Jh0z|-ZlF+^8KY+-cJtT=8 -zz=EElK&`-C7rK_TIZ^W1M#AA5rxdPfJ98Rn*@b&x!Im2%ouL7FhQUUUm!;B~opK3F?E1)5OM#a$7i+fPiJo(P7tBUAAe!YaRt~ -z4v8hsz*9#-3#B7LvsTx|rmf~`)K5T~iR>TDgpCE6!cI5n2I?RLHxM|Kr846n4E>q~ -zk>Sur@B$eL=vCH$!%z*C%YlqLp*emHM$!Xgo>Sxz}AfjuX -z{2UA8+8u-I>Q3h77r~+gXZ7!mJ`qs~w3sn5<(WgL)MO%iq0F^4vNkMoR{}Q3E;)0f -z2IKJStZo9B95Sdt#a?R8-4jK@t3-=SA+N@ozN{~b6NgiTVRAbX=&|Qe1ulDY!)jaT -zUR=6pAhrR$6!{WRxSMy>l!*nST8#8377l2sA4cS4qXR$W3MMPn%+`#?vP2!3aIDBk -z4M7@<7d9SCkx+KO)J2HK77*AlSOhTNHTI$A3OQ1sM77&5wvtT2uR?YwM3w_E(MU7! -zLm|kwGL1Rf -zVHI*DVyG7}=E1DF_i==4-Pa@U-?V5t2Ugygc+;LCo%0@F*nJuUWkDsAJ5Xa?-wZ$*SeVM; -zHmof$JAti{Q3-{UL5ms;*fmyu(syb_#P30F{evnBUDO1TOmb3IBG@|Vd-zusO2ns_ -z9ajyd9+nJeiCb=5%-F?%SCMq&OCfs)+grm4@(W2oM6{`U8WV-QF5OS56wpRt7Yr)M -zzHv|^TZYpQ#Zuc4e6Ebm8Cud6YK<(Dnuxh83~XfYYH-yn1C`MNCbg7|Rwt;L+HFn{ -zkhn;r-Uv*DY$V{fqG@o)2SI}xN&% -zKmtrykDvmqAl{8oiOj&P(Sze%plB}vpkxC?k%9>gBV?lMUYVS^Zua~#D-3n`2=`O2 -z+3f+#g}|6@cC1njEBi~OqQyn*DEUow(}?s?0V%5rCITqEeRV|ww{>jd@0}ndz)=GB -z0Bs!6C~%@g4N4Qt8lo)B0nM7!yy^r*(dKQF1YO!G&Q-##R7T4(bYXW?4jT#%p-yEZ -zvYGHk!Rv-42UMEi)d*`nIQX3hz)9@A8Za>s!)j_(u8Ew*GkbpkQ>*|WSR=p11_i!{ -zZcVB0O=NG4V5de*Y5`1mAESzqb5hx44%82plMfl+aVn49NyQBsNJb59Nr9h?#uH^j -zeBty14C@IDP)w$7*n;dbnY(ahXfNln7CRclHH&4bGEuszpa-c}1EQSR`9al!8`X??WTH6 -z2%Ps3BWB_+c+#v8hH)P-HN=89-(L8EIGUmfI-V9DFnvw%u9Qv_opeo{y`4noHjqC~LP -z`DM_o0Okv^VMq$(U#PK)knQAFV2zvJm6__LN&(1bvUZtD7XYmma26=V!q395I&B)% -zadD>@>1@C5qqa(yX4kQ`ccPI{kO!A}e( -zHSwl4b%yIcAl3yppzDaIiOulpp;fO&<8raYJ?SsS3G5{7E^k<-P_aH=G&)ge8GGDo -zhF*5Ku=RGqNzIgGn8^UJvN0eEF~k)ZTNM;E>t@%n#$vXp>y8=B%y5P}vr?ZRlM>Kf -zMWbb;Hbi;B*~7Yl6~#60Q@6*C)xruM4UDB&H%x(t66iwIR6^-hB37ie8}h_!0HWVi -z@HjLzLnEQX4igZ~G)`xT;sNMD+@ZnoFFh;D;OS@)=sAmZUZ6}Lp -z;L$LC3r6p4$Wo3&OMBc&N(*vXq_!$~o)Jd^7ATX|cN!=Ln*gK4)S>9HC9D=zSs}sX -zPM%#hx^`{YX=B5rgo8#*3e?fdihi%z#31T -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 -zdR~wUyXe)nmR;H?uNC)4Ws;S;j -zH<7~iS{d<{)}hqTg{K<(db(>+W#cwn>fG9QWXq~hY{mtseAM85EON7RAM#UNOx>*x -zdo7Grc>rZjm%ULe$!)@hk*jM&)aX_#U>LyclK#NML{R=N6 -z8!KCx87`r{KNrwE1q+P6?9a?TquNU4=VS%LCA{21uHS4Zhc}L>y}_XyM@#}sT=i!e -z-Yj;rwb$2$d{wDJ9u1;8b>*O!lI6UMt>YoSJsXVZXzQ71=OEcb=1&peaCNr18y>3v -z-KM!w);ttVB%P&bm&}Ty`T4o*StKdt$(xQKV$AULiNFBCJv4HLRml!HD(@UUjo+s< -z4y#qVAe9qSvRa#lVI71su2dTOft)!hgd)Yt&TebZ#EvsN=G9=JHkP=;eE+h?;!3;^ljVOxE-0Zm7soV7yfpz)BzAxw^ga -z#$CiEEVVeeGYGUe3*`LGHGblrlk?^R;Rm06g0~{j_Ay-~c8~u~O9I;%jMJO0ecdf? -zwK5(ye4aTiQG}|0{e$s7A2sC=`q}?D42lWZQ-`nlLmOKBECx-xL_6l03T5LYc1q -z0-6xnG~^SEb5XIH#*AT(!{J0`0F7hgBBEv*z#JqLAe^??M1I1>iqLt@GI_ur7Fw4< -z)d4WbG|F2E!0JjZ^{DY`uY2JkF$ZoSlrTLfG$!$l5beb4t{TDeryLXUcXa{C)Q|~EQTgoQuBXC#VR-iF;e(3@te(weqC4lg9h>!9;Td;7 -zO&XVBqCw8VC|h1U@Hf?&?iL79e@q)(NQzC)7Efa-051}UB~x-#p4O2#=GJ7#@qpQ+ -zjxJ`Z-14s-c*=(YiV9*m-X;WSOFl&-)3ItiY0yru618I^{}78auZCH^Ow|c;MBcncgGB_r?b@PUfaQMST)Y7 -zs5nHSnpdcuth@2+NQA$#7{D1+D)24HKcig^eCiFMKpL>G>DDi{- -zwqBmNwsPWHZxD(C{@MOSBU1JTnI4Mmy_`JQ8vvFs)xJ(C`m=8R3|}f;c~WU_o5Tt0 -zL^vfdbZ^jWU1Z<7g;oXuUelQMU-}UZ5(ZMwd{RrA`CD9%Rol -z_;L(%(R}CK9}Ipln9XKC=;Kv$#c`>BfY1D3@bWZxB!c19KRi4C-5Dx4R%Smrz77+>jKIF_(h=-A5>KC%pNOo7 -zE?YOUm>`w;PK!sJsTf{#UCMcReD!W1!aNuY^Q~_~AFkEx{!@FWMEK&)onELHH(d^#yJ1n>!Ie^Iom+e?r~HNH0Xl_ARaG^y}&{W6CKO?1A7|@!d5eX{ZaHUY!KBRDIV_uW=mTcyH83q09mp_mbbjX2 -zEO)%(Vv-mEXS}N8+l?u*2j)g2MI9!)LY(eJ!9KfR=Wpf^t-7eAw6+?$zm8vh$bEY+ -zCt|-;H#Y5z&Fm0RW6PvwukN1|J|AY7Ju?0!=v54w{}`zO%_RHZ -zD!lRV0xcks{dfd&AdH(Vwi`6T%ydR#JXu50G`GKbr}_Xs_j+8Wod(s{L*Q4Dr2F^# -zJG-MvS(SGRA=LA`AARwn&-ZALk4Q@!3?+Jlk$(b3#Y0#1;%I;l6Bvvkfc-O=NpXZs -zz~iI6T0bA^(T;F^VFoi9l7`L<07C;?m1m!Uj$KiYUu_TL?J+RDc -z`uJ!!0Ns80o{9lRUcSd1$$QL_Tp>KKLGIbr?VTgB&E0#%Zag`T5-EzInjc>cFkP93 -z^&D9hSbo2D -zTp>e|=9fW*Ca1{VsZiS3QkYi>jaD&K19{s|#@1&U7#m6nvljw}vw-fN0hP!Y7J7_g -zMgqqH?Kj~MemD}QHK2f_<5`B@?zP@$zv0U#$0Vw}I~ZWh;$(pz(C&z1@hBi0)NK2c -z<5-yp_NFwj&4frdp1cLDosrMc!tDb!?H&BRK1dfB<^O3>ew2=muhz~2z~ISosFT=C -z=uYzZ&XF#T)_xzUWys>e)}MiAmLTuDd2Q{J(Y-jVvUSVd{+`x8Z|y>1OMo9PCOb!I -z!Oqqm4FLJ%vyBJbq8$SO5aG2)>l#4fcCQ)XZ_O_Fpz+Jzfj59Ll++i1dt*E(>NtAQl}H@gqgc9QL*){J5P?EB6GOOw{0$$NOPe^nTm0td8tTpFaWKGzSi>#8Q|4M -zdluU_sLT@(q0phWIDW%d;Z5>}^av~hZpphxm}}wq4giKft1U-n@V(3E^wGTsmjFbY -z!YDh01w&Q7>%eadu%X>dfML$I^T=!8=$VY)x-}lDi9uo4x5T~$eFHMnZ?#f$HK{&AmG~;`3At3?b{gQIh$)HM>V#txS{)yWZ638@gd*VdZouY7m+F#@1FKg&v5%2Ap@D*+F!y& -zUZhYw6k(EoL8Tc-?t#y+ZC+1|?X%g+aec;OD)~`i#u#)xw>{AYi%r4s=b0+UwTA|$ -zYTp`isB!J!N4>UMv$xsW^yR5Uty(Kyk-Hdl)!Ik7UX!mD+i3k`_Xpo-l!-^r3ru<_ -z-^zr>zVLDH?jQluHvA4qmv9uMd=CAej`+*Z$_YWd(R8I?A;|XO+j652H^-Eh45Zm#EY8ryoh| -z+xq6Sog9mvSwbl1c_GcZ&eLJGV5(3_gc;%H<2~kej>zW;Rg=Bd%C0*cx{MqntZCoiE?#05I!OZ3ki5gD>4hZ4=M%gu -zgISWs=3TnA3)1|u*4Ejvtio^CD{K_$uRJ~~+hfgo5xS%qz}#`_Z#XO`K4KSUSf$^v -z`EQRXQhzT~6JgV+c3$CF+nP*8_Tuv<-=YH{wR0bB1SBi~^f|t2KhkyV64mG!Q89vB -z=`nm&;sF`-ZKxtWbaE_Wf`E@oi9B>CLp(mK*||^A%nANIdP;9w)6;FdMDm!rq2mkb$iMa8-IMb>Py9}1ifWFg&ej?h -z4ZZ9?Ip$*^<6{(B>v~eTdbX4bu#K&Wve1#jK$PwN%KX*8b}c$hDa%~bBJE*Ydx@R_ -zNpMY+Y(mAN)u#|^kH|uneoMOs^H_?yg&ZufalH$s33qM(-(UP;UHo_d>~H??U;oWN -z`h&mu-~Q6I{ii?sfB*fzh>ps?`seDXETHUu`01bg><@nSkAL=uKl}ZopZ*0F+z+q+ -z_{Xn*^hdA%_@BQ1>?i-{PyWmUQ-IAbNPYd6zyJEj -z|Ksbw{I6gC_+PyK@t?o`@&EGr$N%N)AO9Pw{>kef|IevVU;pq= -zUjNH~^7@B=_WFna;q?#y^!2~|Z(jfKpT7R#|MmKZKdeu}pZ@emKmGHc{^+m&=;&wv -z;irG`(?9v^Klqd1~yB@XUWl&;7SQ`yYPx`}J7=7G4Lh -z`RTv?>7V~U|Jb$u-~SB$|3AUM|La#ia~65){PA1k`W=GCO9n|9U;V>Jzq@+LfL)YO -zJv)Uu{z`|z)}Lv26u3Wwcr3i`rkDvyMv3sVJzzN8S^Yc0Dl}aDF332z4#3jOCwMb? -zbyQbv$aD~Ln8ki_d<%{{{dA1t;qldfHlGI4!*{N)qhWb{{h!fSZEo1NQCj8ygnP*d -zKZx%*zG^ku_mFjhe}Z0i;B&DXGj2idZDhGgHFh9>53TP&{96$H1|Hv_Up^(;g6p^9 -z@(t3rjXG_|?jF+GhbZ3&+it~>+p*~Zh`tj?e+BZ>rekeNw}miop_$tV*wqH&UjyYg -z$MCyP52=Jm1!qhVUgHV6CQ{&w_AP^?H)Pyek{R<~Cm!@}UZ)&L@&o);5Yl6w$dG1;v|nG#V_OM-XyT4aFOn4Wn;@m8fF -zt3!Y7=<_O(=BOMCR2pZu%cBhT@~G4{wh&$1tbgT~?~G6zsv`U}?y>gS?H*r!mFxmU -zlyeys*`iqBO5ld9Eyo%l)QiXD!7WhZE`Ti|UFSSGKHX{+hc7t%y -zSM!l5VMC#8Da;X6?zGjHxcTRVDLe5@nP6$*o!3hyAa$}mz=_YH*?Z;h@_fIvlJD3r~H_T@WXgh1#pTL?^D -zFUBIxDT6@52B_=(OsdK;EaFV#M@M>FpIoEMHY`^m7u$Z1;26d_n$Sx`fgiK28~hOl -zFCF9UQ=ZFA37B_M8Jn(fr5Fwip%VT9)_9662HimoMM*g^RD?guz+m=ye5PPDf#?~qmcchVKstw> -zXN&1sKA!Y%#IjF$h0xLno~y&iLYL{I_`!7E)kTFD>H_18hJF0;Mps29lI_EEc1n%8 -znU98({z#iX8$DH~-9=B!#Wa(uKRP|_lMQZx{>ZI9$i1dBkz0_c+fDUK7SUQ`5x*KG -zNt!Lz+T;0fDNMH3nk}@MC_PSVa~;HzXdn#|T3!{K}mK%cgn86qz3KkT)#Nvf=! -zU6RZ@)>@{r-NH$DT1}YAsntO4>aDbuI`7P5$*J2~Eok7eJ=Nt}+m;D&BA<<(6hqBV -zh_oA{aWJu`aebB^^tM0wm7{45>u_}#2~j0!iD^K_$c`4)2|vVnO>y_V3ap_2i?f{J -zc(F_ler5K0bHBdI_Pf14Bo2R_^}FKT4O -zhJc7WZM2@EE9&x_2GO<=&w}9|cfB3qU)(JBJ&wM9Pd~r_HQ7+3Sh=e=&o8Ue9wH(# -zdxisUy_)4n1o?U1?Qu-eSWagdyT!AQ`pFrE_NRoDXTySn{+$6o$RXx0P8Y!08sH6+ -zgp$6~qZc~S6$c5qC`3qj`m(^Rh-g4d?U%47EM45A&@vQ)>i+%v{5EWVpc78@0f!$a -zBBD~s=4Y%9y($%JH*PU3R3uVOj&2lmU<}+Ypc8f=!&-{CGZq_l*E>bjSa(ps>&B9) -zo((T7*2Vw^TmvT@>S{Q|82`34mP!=)$kvj8^P-=KG*pPEf+=p4b62M+N1Eg3!Ve)v -z5awSn##piNqHhA3UL>-#lPOAx5}%z*1(H3;aK^Z>O&H2Y6~WZ-+e3lMv>5;3sl)iG -zHqCpctCANX3~7zIzZ4igQj{PXR`%0E7%}A?pzdg69KZ?{AUfJz3H2O}c!NkRQj6X~ -zIElj)m5EuH-Hua0DUwcDG_Fdt#56X9 -zng*n_FnEyaC_pFp0YNBk#7$j|!h5Hu^SU}JRSsv{y$M=M7dWy04Y&%M{&Sd`oO=WIH9$W~7qtlH5}%!(N*6R- -zBalzE`^~G`fZ;~w#&xbzv_&c_RocO^g%`!R5ujy>N&Q6AaDF4Jc~fnUl~?6h@Zy%ZB!M)R_o`_MEi3_ixa&bDSs_US0UbUVqnUXcXB6zup10uv#^gi5- -zRp@QVRB@R$3I3>Z38>1$9K$)nznq&QR5zk&ABjZgxvmOK6VEU-Qt^ewZ6k$&)JhG~ -zi~`Iv;`0w&ez6GJ)5rNfUPi$3=K(`3BBB -zNC*YMWE?oMHUZQ-!QK-w1N=HsflZO*eepzALzXE;Py#hVWD_IFLTmO4hO^i&K?EBM -z;3qVBmtzAOEFO~c#D*7C83#;+ -zpMZpe2v%YA9MU~;D|9srSQecMH?1kn5x+=IE$fn?Tb=>x2FFMc%(*%1Y?L7TVB^za -zm@fG0LYMa*+LrW@Eo89&MKDxD7gh)mdt&SY(u%>EM;wqufF@1p;?!X3=d$MRGI`l7 -zgHzagEhfnsbH{0 -zA*yr?)Y^V)mBsp%FymK(2g-1{0#vuz@Yb2adl3hXnVt$HbQY9!7@r%9qkxv?N&<^S -zL3wx|khJ36kkKx)JzX=PMLw*VPDBH$7+DOROX65Xr5({Rx4B3R?2fV(B3F1w;Bz>| -zJ2zQgz)svY=3`yz!1d70LC?cv3Md7bI>u?#k-($&{$eeyyqt3~Ytnco06me6rP_*~97w -z4JQS)u^!FPY?&i_W9%uxIqBo+2u@n -z&~kR;vNc{fQx#J<3B;lDughwp9-cB-m<8;$$M}@@mQJCC3`DS`TufXAxi|=c8%~)F -zlnRytul)FD%nT%rnJAlDyBdN_G*ZkpvTB2KvI7sTM+o6A`1^S<#tRCrNWk7qN(2To -z<3<=0)_vj@k;3f)>tnsxrm+7y9RvR)OamTM5C^mZc8zK?kl%p%#BexjBtAo=4$BYx -zaF+Njrs*=n8v;%|j-Z2WOBq~VNGsJX=fwlZX`$7E4M%kM$?*^7$5-FTmfy&h-^iBV -z$d=#8mfy&h-^iBV$d=#8mfy&h`WxBO@Ar*t`HgJ(jcj>K9#M}?90Qx4 -zp1O2ja{}V8U{_(=I_}dyEag*-WImQXJbQ7WIRVBSn9y4f?f@2p-J^E}`9kaWwOCO0 -zS@awaFup!OBHDtYB?ER3saWqumQC_3ztXz?#zW>+RY$;2S|dV@0bb(6DT-}g -zKg{1uhDZk|%b)1C-W14EEu%G+?KxY#T$eVF -z$fL8f?l)0}H2S=V%=#J4wHi{{uGazXT?5H#fWSkAL~GoXjRL_aUQhsb*d;IQO9;T= -z*U^fpsh(NMrv91b7SCQOOe*=+4X!Z9%9~qYC6(D@lSR>w-popCi%r(oYNS_N>$<9Y`WUuF%=)U}{$PTZD{Kz?@QJjyG{qU3pWyep{JIVBFxnm -z_Q~y-2#~fRGDBls#Wc^z2LvL^D%1q_OPQ>%SxkDWN6}rPUWrPOy*_O~Qjgtyx -zLyzU2d)xkpB!iUnET!;K&Yw=y1HO?$veAW -zf*(LZtZ-zw` -zi+PdAuz!4Ya#Xu957K@<&cCx%BZ0$O`}ebZ4|`)F3Ry1gxLe`{!X#^eqaajAgOAa* -z)(nnp0I#F*g$up|EPy45lYl`oLuDi$8-C( -z;q}I4`kmt~>BYM6(0o1*_?5wdiKcTWRgQHD%rV7}KES8p03?>8)2KA6TMFAS2=81= -z;ET+*^?c9+{wkLff%;O*E#tdKS-QY1t6sV%Ab^;x+^I;*v4FR$iLh+vq%ts>3g1O7 -zRTdVw8!FzjB5PhAu$&@Pd-8Ucm?ZhS3Eg{5JAaJ=oR^!fYr~u5jynkR+gZDZz!<~) -zMN!%8>l*zL`_V#IZ1n?`njeL; -zJ1h_)z|Fif?%`K?Z7Z`A=ke(#kqZ4Zx1NPGzo6Si06(=a&HILP(wefVme~N1Qw|Wk -zKX?3A4jNNHJNCp2H{6v>*N5BMZ|eU29()=6p!n-L8AV>mjn&sf*xVwb*cKc6wZ^Y- -z5KC<`mFF1QVo&(SX6V~*Fi)46NY4QsEio?T-id936ka&XO;A2Rd?s|;B?*dENr8*& -zfC&5EZXLR|21`EM5~bdzOyiWG$9Kp}Y_k*e7)!hydz=rW;L}5pKVYV~iU8wfBUSBlMv6ckxgICOfffW2GFI~EsqfLDF2CJn+XXI`zRl8 -zF^~f@inpT2PnwY_{GZhl>n*l$ep8Mo?y -z$pa%&1L7iyZNv$m-2LDN-GNt$BhjVnT-%J!4ls&`u3Bvho^6+W65+8tH=XM -znjr8Hsy|fw=C|RD{`W}WAArGkn7)&Gtg)9>>?w|g)Fk;rkm?*;9UM~AJl-Ez+zrNm?f#T`=k2{tP)mmmFK=tW8iVHQ%`+2haD8EQ_`MDgy -z%nMO;D|4TJ{^7@;J^kPaucD`-=*4J)0;6GC*hS|{W;sZe(`$-BW_luwmNCG*lARBs -zLaWcG-8n6z71N|jpgB1i>QbZFtOV93VkpU`hbkH*{fTD71E>S@w1^g&IKRZ2Nkz2G -zBt47uk%*VFtb2DU24?xwT>WBau}9efw8Sosd4KVR7=0>I2`l%UmaV>!Dh;9?vkZ0I|u*9+0~+ -zQP{kk64!ev>W>J07129@62lRu$UVNg(*qe^WJc~gG{8iJD&}m#{c-rTH<~H2j2CtV -z>4J}ocx6V(+_{SPZfLY4WuL(bfCQhY&aAIIbC#v2?yhXO##1O@W>E6{2Z}4_Ej^Q-8 -z^zxG`8sjlPjc&rhH5ax$=5lmhd{gOmbdbN8K9y~q_*RLwQXI;7%ddhMl)>?^^i^rj&-PH=>~5> -zo{w=n03Q{LgV7KlI-A)1qfbBj;-jY@U%&X`=@%dNE7e-BHd#4Y=N(Skq{_W(Oa%-^4~@_&M}nyakLtdGh4ww#zhs8#iAk3v?n7n;+vNu8j}lSGPEW*1Gr@&;wha -zKDRlC8Ud}d5bF%b8cRX;#r^=!+i013HP~`<{stqVXo3T67fja1utQvcu=34L@3>Xy*r|=ZA&n5H -z5CM{MOh2J9#P&@(zX$97&2h6x`1dF-rJl*5n3RkCJF@}QtmmYbJ6BJRkFV;quXpd% -z0KXpX><%j3x<~0aM;o0t)jLP+M6vBh?9Xe^(e85xXg5F#wQbXmwz9l(=HspAG-z?Z -zs1wVQee)ht#UQo=kZN!_Y@6*SAn_2j+KM=2Ux^XkaaJ;JIBZeed+@Xl=zVuJD1sm8*8h0_9!H -za%4g0uBVP~k`!=)kF%>CkrdCrLDL7($||WBkZk%|fXCSE?>#|Ows)g;>s-$+Pq*fo -zpmYG+i8bQS(>6ntsM{@_;T}ehF5=kutPEiH1RuvU`m_D=!mb%@|A9BA>q>T-++gE+ -z#A>CxH0`Ln2I1_<@uyF}_~0jk -zj0XN22HPw>wt&ddw=Yf)o?LrwTi{}wRfv~0qP1q;ee3$Aov+q^o0&B`_oTk>yN~(A -zDeJ)c&TlLmg4x=v&$oW=mYX2d++g-fJJj|ZE%ih_7+L$$TUL>H_sMZH;MH26I1X5g -z@Dc&=%O}V0KmGL64?n;D;R&bC_55upiD&?r<_2i6oK5B1ChhH}+7=+N@qPjjadi$>rI; -z9uJTUe4|ydw~brnnS1wIXR8AxTlr~w{NV1(99DSPz_@74uQ8oRKUQ#H%g?f8aUf#f -ze$n;WL@aOC6Atgdwa6AYz;sy{-g$By$*KM*X|5gVsvF39S)k6kQ=f_UUoT2gR%W-U -z;7lgK6i6@YZZ8vZf?>!z_Nt5GG5+(_qfjwW<; -z`yG;xB432ho8qzqZpls30>)}pqNj9>v1}sXAB%oD9o+4Y)X-)Fp19!5q3Rlwd`NLw -zq~XXy)&Oz83uX$8r^1*!(AzTxe507w*R%07EN4sIi=Zwg89eHJ%5Wu;PvAf&@6zo; -z01`nG_iA$sya7qdyLjF9*{ey(_MCR(&(9AqJKywM -z@vK8fax!86@_tx+^#eB2440iI(#zq<8lv|?vP5Usv$tQGG%m|Hubew_tc{(8tlnjH(79z%(#Tj-#2}QWTb=!F`en$Wam_Qp)PQT;V -zm2+U{1=m76FZ6t|yWiHl1iitRWGDF@HkAAU`MxWR#Q;b72k-%dmtX$CU`DvpliwY@ -z)6Re67VWo#-!>+A&Mx>sN_x6n>ZzJ^BlZn;@bfZ!ADt$j(OUeLjb1TQhWzdj0O~RT -zNL^0jrrfnN8}CCEHmbvPA5P5QbX;Q^;2rGi2lemCQImgmS14CNC2bNfys7&WtnMvn&TcGkjT$H7V -z#xKSK;KqX&))KtY)4h7K9ehIr^guBPVt<#*%L9ga)Y(VQWt5NefIe=2 -zw{v`>#DNnP64gRps6;+*tr-#0HLgq#&jz}(5leDQuyd)xx5ausKcmB6t4F?kg3e0e -zyUt|X?}Yji6rcNI0+K=~Y(g+%8c!_ou*{jNuX{S%Ixh#Js8LiJ?kmsE#nZ8*>1m!Q7tLtcM^e -zc%;VyXLk`3*y9(p3ALrrj$l`XXfM__ik&WQ1Z)p<*QuFMc2OF+C`mrSxHh(kt!Rxp -z83S_#l~Sako@R27@AyPauOk3T_!=OK`}w?Gd2tZomoUPPRb!*sk3Q`KgBXg$^q+q4 -z{>Ps^`}@})eE7wO&%XHZgPs^cUy5|rIfe*fvSJC~IT5Wddm}amxz#=ztK3_y -zjmR_Yl?E6VS;AuwoA|x!d8L_U~Jmk^)FS -zsj&%Xsd>1E=|BT?9o`(cNR3_f`-_j_qp;xM1U(9xgVE}`j&`~L*7G_Xr9A+=p)zBP -zI~kqWQYQ_vePFV{c3{MxXgncgtjIzy!WW+)hRJkl8Ilw74K$+UFoi=PlLFwLMc*?b -z{VpDPyqGS`9!_hA2RPpr^+xeB$SdFiMSoajCs4H!g|LL&bG+20?SKdZ8*G&#zt%PA -zi?Ka{4vb~!E_9nZ{OpQ=cucM+SRTA_sdZSWWFmI1qt&G4d7rXhOM7lHMJfWN*&>q8 -zgF?e{n*be}IG?RN+uDyM5Ll^Kfr@)moh-5($A0QV1N>rkNNCvDHMgpiCC`1i6G#&Q5;T`@$GZq*| -zd9sgfc<1PB9>PIDA>KyQ?A(UzDF_KTbAe77A~n6VGHSS>)3NtmaOAER;yNt!%%GAV -zm^52bpInr^q5P2b%z`mkb -ze=^U4;NhtdN`_H!6RA)=1R*vqP5Nlr#~<@Ep*mhe5pk|>054Ib>0b1TS7n1rt`qE| -z+g6o+8^JF#I=eVOeQS*t?Jde91x9CeQF+l8oY;8WY&D-#3`GT~ZlYr1z*FFt%ju#& -zs*v?l%W+1$J$&QY>FHR9A@TTm6(-bf;ON?j_EepU7>W~fFr+~_D{4npe_Q^ws-#RS4l;_LQ!me5$bKX7r#@7xoZ#-b)`tlmt7Q1lx1tx;6 -z*=9aye7)c8)BgJe^}t!5HO2F$ -zc+nIuo8rBuc)u>*?q$Xb8}uHd(kcNY5HMWk`u}h3%XTD3vMb-?D^k-16d+_o?%Om5 -zqiQu;5TI@eYH0>~5E4exNLn~aW15lfK}S6Zm>&`_4+G3swEk%BxkkEsR%W=JXiZC% -z;maZ2Xv^J~a@~^VS6l7XzjMRxmj%NvZt?=$HNN;S|N84^#LfQsAODWI*NxwyP<=Yv -zJxWbqBSIp*{uUPLaMzmnKcL0_B)Wm=PzXunCPY?-tF+W~^7`f^$UZ^b+*BR4_&$1e -z|HXV`W4@n2-#)Kp8Gn6KxG!C*AD&))pKh)iW{;*Pn9>)|e%uOx{dl8>t=qa+b)dQW -z96wdR^ADfp9KngEBr&W^Zx -z`N7`!BTUD+yA~g+H#eX#J2Nfjk-dWBCJU`Q^9EruBG%!I$lW+$@`qH-D@klOCbpGR -zzBXxCi&>)|E-2OBh#>Ow&!gKJrFSpPy?J=?-*!SL)4^*$q|N>R4*&d+cVgmg(j=O{QB*x2Cg=P!gZou -z>(3M-OAjJ3t_=<9S4MP|Wm>zaAiAm0-d?+4wyq=FhmAQRxA5{KG$MiLefyyX6~Sz} -z*B~=)dilRo?}O>9--6Y5p9&lwDret+Nv<{JqMA|n(7nAmzt1G`&%^8 -zFsTv3h#{#vBi(-w{Y7QuO9R65gD5IH*#)YUxM|v_sj%`(w`p}A-wmq7!bu_zwol`9 -z!AvGqn%384vcW`D-8@(M#d}DW80f?HIdBgT4>GxH+5I%@dYikomB;Wwloiyi)~PVN -zNsp4g8RxWvTZ_QA+lZDvs(7^XVuXERPUZIa+5a!qY1<0Es7Yvdrki~^+w!Is?a!KW -z{dFDj>3vR@*65IL-99(PTwyzN+w}+VcRN%!qMOCLCTIBl;ZmBuk^hb+S@js@yK?)@ -z&0htSar|Wv+T+i;vc6}NPr(uw=jN)JRdc&FH1Y3cuz#?Je=^$EK<0gGXduUF@mh5r -zrz(v|eeIgXEJsN&$?blX$LNpzGtP99MMV9LV`r9BYScdxYL|$v6Owr&NAfOt&x+;G -zkdZ#mp_AVngb8VUpUds#AD+RBc@9y+&1qqQd56M7(Y7F5@Jv;^%bj>QA}4K#4gedr@JJw^0uA&N2HI -z=2E>5jT6kx>WtpGt%5AAy~`l=KJlyir7Bb7VQvIdoK$k($eW$bnn^TtR*|Pw?ewly1}Etvc2m;^#1(&=p+3;G-|PUm~OtO -znLKvY-+cb-zyHJU{`PO+qYzDRT1V6OkKcs!XUPr!(bh2gZ_IovW%TOJ&6`SnlSYoV -z8&+3`+yNfrONhK{-dJOF5PYP -zbLtQzYVv?P$O#+UFADO0yhW92y`(B`G3q9T581s&5QX%Wzcc;wYTBDyH=(cCUGwF+ -z@U6z{*K5@KAVTH4_ZJ_)g(L53ne(+#8OGd1eI`(f+bX06AJ1#-FI&y}dfuUxP;YKG -zcYOoDG-9^!c$F|3wcItX!K~@a&Ig&I(pIY(4?X)*u&KTSL8?0gL$mBx8~m;9N3?># -zpj;E??lyU)?(MX9`kNvh#zAP2yHD?YCr4dh&V}2(+5A12&9(EJuXJkE1bMhUY0UC& -z!Oz0F?T01-#MDN1>=x0_Z0GH*I`1IX6%po= -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 -z;#{_C074cS5e^AXI}tULktUDrEQ-kGp#hQA -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 -zn8ViKwF -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 -z$mx -z1=HGn%VmsSc2C~OyTN7d@)QtC7*j|=*pS>&6eObh+6fz5Yx4_oLQjOLG@;3qm;{!2 -zAc8`pMXg5ifNe#X<;)Y$*KNH>87rB*lB3GK;;6Q5vv}~EY -zT;hh(qEmETn|#3Vil+C%3KtSFF^TVjZvxT14V9n@@AH*&qI)niilGv1l>|#u1$X3^ -zV~09`bH}v#+OSM$Z|p>y=1lMK6^x>5P0Ug6T)*blFwli+@tKh9rV#~Tv|))v-lQt# -z(VP6t3UFLdXcFF&yq_xJ&z(%Ocx3;u%@vfKp}{f-WQ7bQj}Hx0UqT*8V5%PEhGn#z -z1f@E}iOM1ZA8DybST2tyd3;Moa8M*yTu=v!)b)_hU`-FjblY5!lV=8CA#zRxzZjrs -zQevST9nR7xKu*Whg`%nqMz4i)s08VRJsIRkIH7+fAj`57nkw41VOiT~g0p8`<~Ne- -zfp!6r=x7oB*rwh+6KfRw#TA4l#)ryP93ryTwnWC3%F8xYF7aB$gwM -zE0*Zj8xdCD(DhgnJfheuK_2GRmWrtNyb-d00Dn|9)8 -zTFNJYWu2Ic#9&EvJ)xN@{A+L&dq5MIT4mV9HYVh+?S!xzk2fD@V@a?&P4 -zKD9SaGZYfYN^DEvi%TeJ`wVBKO+h;{PDvy-ycG^e^O;rNw>eg -zxCY097*UDD5~x^AgUC3eoHM<@5}KQJh59P5=_Vv?+5oE}s|+cY7QyFkw{STc3N49V -zeMyw`#XS?2IinepgZ+Ui8hQawy3|uHpjxx)1$*I0bOgk#Rtw50doaU}Y!NGhtH@Q9 -z*dfS?2c#3V8bTJ5$+ -z%X#Qk#1=Huha2kDpe9=)q(I1AgK`jz<__$_Rl-Lc;UwGA4rNw?*2o!kiw^mUJPPjA -zr;DV9yE2oE{v9 -zKq-9*IuQziP{^Rix1IZ}?x|p5Milkiz~okwqf<@j>din|9Sn%U}>Hw+8cYNlI$yxF3%Ed|hz;YHSKa|((-Krbh=nZ- -zQK4t`%2X2(uCZccON7@ahCT^npfm{)uR2>eqAB4tPpCxCY>#C`sy#YtF;0mUPW9=Y -zjt7%#k~tUXF*up+NN# -zSqiEy?HSIrVLzigBCKE@O4LiY6~`k^aQgs_B@c&cAvCx0B~gZJ9^{Sb3a0FeVE1Y% -zBsTOsxOy>Fe>Af~!`iSXpAMc>nC -zMhc$?VE`3>U!bYjQb1+BCr5-1&%?plu3B2*nRz<1p-CPj@Q`X&5up)yJhGA8oVveo -ztrykW-1{h6fyhaDvamNpEm9+@edV#J<6h4ll~5$$IX0aS`8K{n3o0}k7$PAz3RuqJ -z-ZmoW69Em{jjRxgmmjbTjYr+}tPMwyD0sd{hDcs=*t@;aYOqYrk-e9r#6O%z!gOc3 -z8nzpnF2=JLj;JGVLOv-h6_?|xe(t}#`r^)T+?(*V{P6zlc21udT<@8i}YZR#H~9K_y%ElrRj;9iU+4<{PGO?;G!13 -zqWWzgM0pyBlC0pIpw(>n4DfUVB>@L#D=y~!Aj&&g+UFoMwj(_j5Na%WNPqEDq!Q -zCf|DWC^IiCxP~N}$Hr+XnZ{8^H;#+&tNbmy@qN6)s{i8I?|%E!?dwmU-YUGFH7vDk -iA;-kEiEX@VyuaSw=y{wAQSWA$V*Vf8s3}@O-~#}4>qs;J +literal 66744 +zcmV(wK>gzrrRgqeDgOreDnwSL((I?bD=C_7ivi()xpa60smwMS5sc^6tCfssE>E!QcNJ +z1*5$y_2=l1A$0kTNySBWXdmnyJlWraKL=0tp#4492|KipU!U4To@nR=jcmYQ)*k@E52npdIABGY;$g<9 +ztpy+)M%oUz42pEbV1USMLIDk)1xZ197WQqP*$NP_1EQGf+d5)g+FFtzhR=^}l2HIN +zwgbsE4@hEjr3$9(p^)|rr3+<91K6A<3}D%kK`4=0v2q$beTXyPmNSqB|Kw}0uJUN9s*ux1Z@sK!$if`P?ZIPsa%2)Zc)4b!&9v$m{9H<3n5pl|QwH|Ohbo>@qE#TZ4% +zopRb%Qr4C;rrXNRvn*%8ENQ=h_*O)&NNf-&OCShRXp#|k#3}oXEYu7B`nlyZP&JWd +zEYNPD`hk!_Xcr_kRJqV*>9NK&nxcxtFcViLMFLdUYn<7aO0$oq^&??dAV^Fi1yeCn +zPYXBUBi2t%5jw|05Zc$)}1fd)57L_yn{Xo{4zop=^E<<3~(%bGH>MBZS%E-F*MRw|-6X(~Rao$_^4 +z4kAYKwkAZWNQ6xAS&eRm?)P}TEF>7n8!y;=dsoxnTS*M!< +zo72`b8Fwl?S8WYtps5(;X=_zCQ$bnn)Cw)SUwsBGlWv2^Xs6n&s9F-3)ovXL+E$w- +znp#A->{NNs?TYf;)>0C)BJVWhJm_Kxj;!jgLiydV6B0zaY~WBYjF{>ohW`R!aOuCy +z)KN&TxNg}#AxT0U*c)NP)Pj=9x-L##Xq+6}oQ;n&{ptLdzjJdU!QH9dg5|)@H8^ge +zJCq_liHJM_!(G8K9@Aj8-`7rY^9*LYoB?Uvq%r*xZw{CsC+92yKSRjlB(Y&*d`Cha +zSRHFd($yvv6qbVJfNfg=1c*i|C+7LHr(kKXNQ%ag!~zRwQ%%Wu66Hrx7sgeg{f7HM +zSpp9z1gEoQZ75*Vy3w~@LjM~ad%s9RB00%AzJ2YAg$bjCLzKe7l-|aTSv6@8!6?P% +zrhE=l@_h8Q>l023v)VCeN>p?juCA_TYx`{#umg=@4j($;Kx)D>W&huZiwaxEtfWY_6a$wBlX3>D)oh0Xt?J+TfvLD%X*r2Qcj78~F +z+z80?0`w8`6oUgZbYzP*Hp;Wx6iw`0ndwlxy_!*Dy6e{r6xJMWKyrdrYmb +zza5WVbd5E*_#<~bxyDj1WCnH^potNa5@lg_L0oyTPhQzWk|?C&Zy1PR%E#gp5F!=v +zZ%b)jG5*iLzjL9ttF*~d87O+>lWcMoF+jW~y#lKYhLGtXatsBW96e};Stvq1kj^0w +zJx;BRj|6>&o}no{y>WI5;VDl}5t4$?1eoLH37IsjsV#X#F>1hl<=#yAH4CEoJ>%Ik +zFyPXpRj!SxR_r>%E$+IXfp%r_1dFQ3F&e+_lZaGdH&oa-2bIK9%roJOF%~0;{#7h; +z90!NkXmsnwZw<$(NDfQJpSyt1<*Nvw9&oMxu5dUQTMgP%z`&`%g9@w#;DKv;Kgii-^X +zcxmxDfD2Rt8f{PEuYYi3Hkp37AkOvWKR)a4@Bh>Gpp~g!&s9Wu0mFPw-*)q{Ln!=W +zV~V;Ddpi7hAP!LELkUWzluy9Rx654{d!niq>auUcR(8SZhodcQ-KrYQMh|Ui1=D;e +z2NP5QkHFfGwh|x!lfEF5!unEPq|W~Go~Dm4v=&ttgBXAZ4<8Z3Ra}?In{}{|m?2e1 +zgU>J_-6c3C6$x=1KH)Ar2bDh}>Z_L}X(O}l$1^;E1t9w!uzH{q-A^s}5i#&#enW8>!l^SeU#Bx-+7c5G +zjksZ1w>PfTe5MZ4c?qOl!`Rt5$VDXC5WWlyb9@PrGnn}~L^y>WAX-ktE&$lDp@ory +z_R*tKdS)m>SZnRMYKM)4vLffFI2uzSw89 +zfAD-Yh!XLLBtty8A@uW0nBmZ8yI1D5kH2803uC%dlEQ{ywj*F!!o~~6y|Gi2l-m~D +ze`btTHZ2NqvFZc!%#?Ygdk!qHxiNODF(Ryw7d#-`n=+MLx!Q8EesI;Y#Fc^ATu67g+JmoceCMiPE4MkFInm9-pT +zI8x&TA`p_)sXg8$+2c0zCmH2U)Bc}DDrxhcnB_pO4Bc?NqnAVJ#R*aZdjIbURn1xii^PsST{||NtAJu@k +zi>bxUqBfldG;{I(wL@}V3dBP}EDKyjj*1)#*Y1Zo!qpQkcKxv1W^x}CwFf0K>cg`9 +z@k5YNlW49IPsEQNk|eeW&fsl5 +z;zN0~H*cbrFKxQn6}0CapyiJerRNF!u(6)DNAT13+SO|yoGHI2J`u!4jG +z-bVp(^1^p+JiJ_C$2O}rRs$Wp*)VZ3qOB4T9v)3p<0N-{=Q5;pICuiO$VlfCxVSt> +zSob`RmA8BybKITF)AAkzc+u^s#@C)7foJ#u1Jy?EW01d +z1lKSTM89Q2{e7D2$$3r!W}X~k)7<>CCk6GYVYX$#LDL(rSn#adYsqCmXT%kU*&Ng$ +zdw|zYj-B5x2lmcxb>s7b)61Rm+9#B%xI=-0U0M}$JJ$_REnvnvP^xeIEF6M1S9^Lq +z4a=Lp+0IqZZ3TQh86LC +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 +z(Bj6O_zXASTSe +z2F;aN?{xLb2>^=Dq|QFaLeZK5$&_{#obCOGQJh`C2R1VX_`*rSKQ)#!h-EZgUR^yU +zN}6&!WY_tL*4VHtt1G?jlm^_584OFQgbK^fO;jLN6mT>vdOK}o`B(nd>zM{w^+=ib +zC4q%kQ_|pCThQ9JcTpqU;3V8~#sH?chby`zku4P^#(LG>H{Lv&PW-CVB86WUny}3# +z`npiOmH-GGLE3A#?%urh+O3<*MfKA`DWPfK=H~Y}kuTubA~;!S1*Ag*fToK&R0BXF +zXQl#CRT#QnAG=09ZS$4XRN#PfgsEg=_8Xtz9YYRK&D6`sc}z;;rUKNkV#B#(0J@L>Ht6NJv5=7M +z+(Si;$X`t0?hD(|AXrTBzMV5v$Fdd^Iz%4eZb6~@WAw7QutRGnu@|?F=|+UF(<~%} +z5xL>TnIBDkv*(=Qqrt29XdK1qB!CO#xer~mvaG_7XthVbbN1WCfn7YWr!Vc^e0i5K +zn%%y+^ZOxneX__{G+Z5?oNx_lW_3f>JRBq}mgl+FRB%t4phYJPX4w|E;i@Hkf+)wEO14kBl +zf$x&w^2WMHNw%1K8ZU@*FHUwT+lk_hg#^(Ks2i{Kqme@wR0g@$iFWEQ#i=_-1Tk(H +zli_Ta=I)-u)|e +z*|n#nnb~ZPwT$$3Zb!n*i~IjUE$w6`pVmVV`tGUnC9_v0ozZ+cw13FZ$QpfMHEJrx +zk)C;Jt`7D#*O$;|2GD_iVwq8rI-X8Imm~aF@#ZQ~ieN|z$Z4Q1`N +zTKeicaXEnx;OZIL$0~RY%3fV3qgSUF>d2{@sC}z8t*@tOz2umxHUUEkEqvUn0MTCo +zp40UCn(DM}e4^<>19?j4Y6pnl(nH**zM7DRKZWtTO^iDRoJ)AcaDdj|tNaj}U)qhG +zexv$P!gb77&HzPKLsloxGT@FOwpMi&v$NbIZjWXM@`d8%iF=Q8fWWw#INjaVmC4E{ +z3gI#{4TgPw{ddLzue$B5yzD$fAAr|6)UD{bx(cMjO!z5Oae^4Q2D-(; +zg=VtQ*-2rd89~v8#}7#b&|z_}H+BgHTnTChED3+ccvooN-RTKop+6saXIHc;ay6F4 +zqdhslUmu%7*oc~D#)V|{mFyTkF6~cTVNbzsMYrc(7FJz&yOx@)mCfKsOS%wU-JjM8 +zTa4wj&juY%xtXuzAXbMkpKYI}XZ&^%DtMWq|K;*3fd=he7$6I(aA~wWrKd=)e9EKO +zBkIM0D`=_e!o58{JQu6-$!ldZZ{RS< +zv3i6g?fH=v&~CO}v5J&CbpB9Fr0=23enT?tX<(l(rcD@RB(kQc&~R}?dEacBemCoO +z{aO_Bhc|ZGg#*qK7auFgpV*pTXnY}X;`qp?R!T#h!nGvtgb2XAe1uyxPUM>6Jq{i9 +z)uK2~Ud|&2wk~&W@7-8Bj(ItDbo%8;Eeui}xFlfcm82{N8N*Wt7P4}Nb_-gNDjr-T +zM!L`#Q}+V`S%qE5R%@IbaD+t|PDIm7S<g_r +zuSg)-j8g8&eWM*!k0arTXZ;bv` +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 +z{2q2nvIiM6B~F>-DQfV0Jw!Ecrf4b +z|FQRPO_C(Zc_8{8zap8{vNc^ykF31Zt$S;xt1kmI*thNKArH4vlVag+5#br`ZeDKg +zaoZ$>AV}^K;GA6^AsC1)+)r{6L1aYJ#NxhUy&{PrIqm9inVj#>)<;|1e<&q>GX3DmP +zWLIGpUJL>e7I?t8$tIRWa;40gL}<6C4;od7fEq}S%2hFu3lA=6T&S)Ghr(|C4A}+N +zE~lohFPoI41d{$rCz8dGR~=uCX_81V*DYXFC(?ijis5Y?ql8<%(p73oWS;iV%;ca} +zv%-QT?zEp^ga+!JjpSR7C?f!t%i#r?pGD!{Q=-EOwD%acgRBDgNyBci0%Mhza^!FeWk)S7h!_SV +z^Tn{Rq%rCa-2NNjXlQkan+N;@XHxC75$m48{OM$+n3RaIF+@9a3{;|Mh|8u1Bv#8O +zo*v@ab*z^6AKFU;SdEt1fr+AT+h{r`W@@!epU1ds_jyxv`!%4(avVKn7CTB5{iM# +znpY6)`0^;$#Ek71(85%iP2g$Ry+v`COwq7!TR+bf5ohHfl2gr&ZD0}tAmr-+Ri`o- +zv85#ajrcZy3IHSa;>8I9*<-K81h;}oB8IKvn20o6SW`%VM3H#CdjQ%GSdJ-Kk`mRFEA*>l~v7 +zxbj!EFqAvY0s|u&b_~64e|G{d1GUK0to;owyRCWUV#ZOTyaWlu>{wWWXCO7Nq@o^A +z1lT^6N#Q7J=m70dtD+DQv$&{Hx&1IirATpgBQ~x(2@VIsVIk3!HbOs?25dV6gQ%u1 +zUH2gQUsL=8nRW +zQBvrIH_0#pW(sFQV0{wp7_8Q<;0l4?+C1ctK8H3MN!2|Uqdg<8-Dk^uAd^KumsBeK +zQ3^6c&c=5B2>{2ye$*eN%OjE!_#R=UW=2_;1u2Do)0Ty*a!>c%aS|=6j%5s6l)P-@ +zNa+z)lkFIOcQ36-{O)UGOC|B<>y)R;G$N6I9Ik; +zq_%S8bsR3^R4lXv$~kRVnwZUsy;ja;pC+09j)s9z$^KRnr6<{<@)N#t`X!eGK7+tP +z^-u^)D?=>W1@#(7fL<{$SZ +zH6mB~{@V4TJ#fv`_^M#TBg||}$_%7SS0xnHhoo6Md#FLg{fzn$ +zn?Euq4ijA}L)Zp%#u^>qxIL^_1GYp&FfE3b%NXr98Vo|n@;C#rIe?`6JizI3<+k+U +z@KV_7IN1+Ow!?Io`e{mAof8BP>cV_c5t=;#3IMI)5kvr@C++HzaKy7fC2o62>P0MQ +zNe(MU8Z+d=RjCPp1T7Z2m513E0S2^q1}uzd=4-Y9V*jfYtu9UivxRHs((dX2k{!FB!L4ZSglv!))ia+;E`*oihZW>CA~@Ov>Ty5`B*-p;&vvJ% +z!&;TL9TFiTl3yJwY+xHAC6c{jb$|=jE5T!tR*TkTVo+6Uw_}8=+XEwOPbbR7HtbOl +zw#+m!fdBWuwcpyXN*Ho@V6p~RYrP%@oE=48`~iY`vQou~oWmx|#z_bT>)!M$%jjo| +zA(5?%a8(v=Z*Gb-A6fKsD_2peCC8?!3=J_eZt8)`#>)D-6Z3COPewR&Eb5Ns56ikyHtsgb}fOyup45G`sZrv5FKCzUe* +zEHSn{GMtE}j>=9fu`Qd!JwKvx)wly`+M#46vXxz61am+!_gerWw2)lN7Edat#IZHK +z&HOedXF_#gEE#zsL=CjvckE +z_ll>j4B}`7hmv50j#%%EM#@5>PIy{W!p962YeX+9WF+9q3{n)8RbZkZHBin{7XDCP +zDyImKluDvtgbAd-q+iwaHC)Tc^!8Uivaw_m9DR>e_Z$Y>K3iC5sIeOuF~Dg2p4A#8 +zd?8j)7-h8r`(ZMY20g%5lMu)JLSS?}ywb2mdBe{dHmuABowhlAxz}brYV~WhI|OCo +zGbm!Zt50^;6wzJXp6s~R2w8XzP=UJhrVbzy;7Uhkm1;_!>z1}1%8y%9H6bT#78-ZZ +zQtDY@-#HdzTJuUC@lF+WECh_Q^XI?C?`ZA$38U&6ZPgHL#^%J`?nxGE2KCs&r2p%9 +zoHeAm{#vJSmom+S4-=Nmw=+&LwMq0 +zP*${sl$ixu0m;C1Sat>h11_zQJT_-o>~dhr&TQ%3{Eo~aXXM9~LC7{DfCm-Msg1B~ +zFqjWBCJeHXDS%xBkhTfyhv6W<$+tKnm?Qw*uQ;G=G0IScft$?kMFxhyXBEJ;@trfk +z47Rc0$Aw!4vQmiQ;-`*7WW^%4+av2L=FMPjPIWO}Aq&eXNw+61+Rwz%Smlyrl0-%! +zJu7o0y^6C&Y3?LI-bPyrw#VY;=c*VqPJsoq7^Lh|Z3Z2Pp(vK^&+Ouv>lVR|iY*N( +zwx&eE+iIvkBn^3(myJ~|2y`UP!$2U;ZD4t`WgKGossxW)kT_^u`C5Rn`3Ls-K +z9=!7sx=2=jFfEwjs38}3_hyUi@OH*km8v}Bw&TK^cmQ`s#w$8pUV5KdW_%roPar!V +zhIa7*VGZkAVb_a+S$cE70gHDDU$R7T8*X{5b +zZY0o)2^A`WcBJRDtAw9p^gQqAH-2unj$j;~hb-If9?wB;ew96MH3YzEmo0bt>%obC|9YK>Iq=Ug1^L+ +zUB^c`Fne_cFotF;ERhs+v;TXZNbqCmHxon!%!Vd{3&Ob{O +zmZav`i=bM}Q};^^TS}q=5ZhH+7+_YomvEV1;&vnUsI04W#Y|017xw8o;GafLWgf;v +z78z>lxD1&(&PP2!0kkf+0T#sBXr$T2m6?SxuG`;73nIUzl~N`!|ED-V7-p(+ceesW +zDvx;2aNS>%Ia9614UI{rGFLX|E9RpM1}|Snw+zF;UTHM@g&0_G +zKn7_*oP2x~I#iVq$>az#Gd#~MR9_0M@Hc9ff? +zD-NyEn~Ega4_ujqKR7*^FPo0jaq54u=QdPK-5g9O>BLt6p9hnMQ#66O%#?qEbU62j +z3qi+c-vpORWv*JqTE1lOvcS(GbSRpe=5t?HMC@S01U +z8D8S3-k4}Ga_MN4Nq=+=@0rC};>ic#FcW3)>&RXWG(c;Zzic$ky4Owtn(e7wI1^As +z?!RyXUQYrce7kf*N|JFKB+<$K?3eIF!sTh)M1JR=kc3gS7D57XYZfbck_yi-CaH11 +zumG~-S@y{+Sq|uj5c%~IvO6~=Jwpk4cIf-dar_g+#qIh;7+14L99&AtPq3Ka_co= +z`(Pm~AuoIar)Z*jk=5 +zjco#>QBRMuMzbG>d0V5$w1N38fM6rrxnJvrCv%3hvn6KD++NFaI|^aE-azFkk(HTd +zQff%w@Fr(?MPzDJ;rPxX(%{G{7sMoJ?X{~J)(#^UI!j)TeQV*$d8(cFqeZBAOpKBz +zfJy)4;n2OCAnf-Ue;|XFL*h;V!xahDcKZdaN)p+UMF5*g3jo)YGAo7T5_o7$8tq!C +z==;s(<;t3%!d7F2+uqk~E` +zWln?lh}B1+<#bVeFT^W87KigJ67Vy*f@}>z0S@iu(qgn1BP^V{P1)U3smH851UUNq +z);i-+Uj4|$-1%~u3UlwV!9UAZfz4^OBlfb6+*P1ljs)|c_8bN%w)pswAOyU+;i~Kr +zMjmmLjsrA%#mggDr^6X#;!!xcQ6BPV@p+&GQSU0jltL?2wG|NGwFTOduu!|%vZD{4KU(m_EhaUjR)}IUr7g+=c2K_I}V& +z`*xLIN-N7#IbU?2%om-L0IURdt@B>2z^E7z0X&Fk{Vh;Ay$4X&LYRlaVRKciyo$Ye +z%}vg;BzVZ!Im}iFsH0`)svb)i)#(evnP(N}h(Qu9S)t +zE4%R6D`zC_1;HG*{A_QVczyrB`5fe(#AW_89lr^0E;CNV0}zFFHibh_>!SXA#IR0qt` +zpsyNJ9C>ZTfY5HnJ>J22_FT}0h|0K!M!Jwh=cZuBCohnesNuD-)Xp9N8~F)zF) +zPrg{SC*_M^tb-Xgi&r>!NxU|7mkkQOBw>p*=KfrQPuv(qJaZg=$@l3KCXoD+z1w>ltDR +z7kml{a2;2ILNp}KF4#`lUy7qbin?>E0R(SCiIouwDU;AsqhK+4?#o#^Z*9-CaEYsD +z2&Qg^q@SbK49nK_RnF`gU}ygzbl1-cJb*OKsRJyxzyMxAp})DkL$xQ1_T7tG+iIo? +zabj!c)gHkXQE%DtoCL2(4Py11P-R +z0@%r4g&xju<$_iOimm4eI7Y;me_Nr2aV&t_vuPlV%xs7aAm3l}MsZ)wJ7oX}&HaEw +zG121`ySlfCQdUFSJX-09?{(07J56=zIzad}=x~0|1!kHey{@POU?2k^Hg`a}h%yTh +zQU?H2gNL+fsq3BKG2U2Cm{jL2+h({nbI=kHBUkEJ71IFiY*o-NUE>Q<-Y{3ja;L_P +z%#1d#CXw?PQ^r1_S{s7OL?(Qb96>z_4uS|_Bz|WZGL>+w?2PITH-jX^;*x!k5zg3W +zVA;ZjESmyR`@9*!=uA=96mO8N7brvti=$Vy9XF0~UB5zu1ZamoCJ#p78c63m7h`s)^Pn{-csr!xYeJ@|lyfz* +zRIijDSrsrFRnkJ>jg>_^B!Sbp*S-maH-P`l8B|F#e+W&Z&)Z`LxF3@y2}z_x#)8(t +zDg;SOWzb7yfEuC#u@JVIg0>6lEAH}G46I((>kL2%<;S{05)31w`w=%h&F7Y_CSPKl +z-7S+6i>dXXV{e`amx3&q(EH&JQ#xfhrXr08byG`!pPB|O)e*5Pf2Eu;gJ#jx4GbWr +zQoyc=IdtIF3N16TSa&j~TjZpsapctuc-ktWfRGgj{c5p4iQUAb-dRro<~6wBy1ygk}-!ugcd2J!WoN(|9>a!9mNk +z5DU8-ahZ)ckSrX^U#XySVCZWh@GL;g)*Yh^MOf7&M=KI)3lb64i=&SGnFZC$O3hcF +z(JYf1aP4=4U@%Y~95(HpN4rEunAP^JGIFa6JhH143wGi)QC76}wpR +zlPZJl$!t2Mf>FMGhICv=v+!-{&oshx!FkVCt%}IHkl4zE;FHDn_l_Hp!H|%Ba`(g| +z+QLY&t_~JJ;9XZZdFYrBptHMoefi$Kd%k@C|5ZmSVKW?Xw{Z7fcOF>mvdo{qzsS; +z0>QK!>ZCMfLpnQ;Ueg@bsUQ=q-x`2$q;Q+Rq)bErbW;@&D$7E6AW7Qy#3w! +zeh14~O*v1tDKAw^)1@fe_mnNysKj89w$&=tHg7V#N!*2%0dgL7xQtG-mIlBHwMeGU +z+U9XtGxdl%SUDX^1YmCDImleua;*bX)j{=iW7%BQw^8DNm>Lf{E@H&YF^sRzxXUi+ +zFWt8o@6qE?wQ4DXuZY|I!~jnCXT;bY*#erkKfo~HuccW;pgse$kYenAUO4j}fTbrh +z+9XFRm=}U^pVfF}dR(41xx4noUL+i=GD`sv3&wVgLT&E_hBRHNqP>k);?jk6Zezn; +zh+wss5sS>xYJ;1>j>>RoV$?G25iCrSM8M0IV59f7-ve1Nkp0--O4Xk50oy|jf5>5w +zP7h{?Pv1k3)(4L=L$&jqE1SA=6joX_gjN;lAc;RFDvi{PK0kjB^DkqcH?&ICFgPLv +zrZP@O9>i(i!h*OP>DPf-kJ?$&DiOn>CM7wx=^$uoaC~fWX|V`eDAR;UgKstyP~+mP +zpUFzhR&IR~Mh%CwVuPD$2zeG65647C;p6nfU@&uBh`}V7DIo0iNe_=&KW2bwy>P)p +zJkH((3#*v`e8G$I;O8W8S#zkw3&j;1$9QU~Sg2W8jYTClg%)<_O(uZqndAEeB036f +z|8P(%Q&NhQwPMi%BciS#-38sE&rq5Va+UkGQV`kVN}h9RFsF9z1fZa24M#mNn-A& +zF`>?tfZ{Y1f^J +z56P63k4QbO73oP57b3>W;z$+{fy06(^|)O(25PTQY8(_p%|?Jjf@W<Em_8A32)-H; +zpYAU$0o%|z^XE}oK8G4^)HXiW3=bqZh@Xvj*ow}YvlS1l7-_e8V^aWtvtRF?N(fQA +z9?fa3S>va+{vly#IpDl$*}n>=u+~J+h{ZJa0RQGjZ=M>>#xqp7*NQ5*?T8>v#Hd6) +zc0Q*Zw#i<+L)q!)C{JBU(I_OUii6>ut5{l}Z~$y-A??v4NE}1N2M1&4up>U_DYJMk +zlO}JCWYK;110ZL_w_wqM+`V)Q&gYo}8&`k^Occ->$G|)yV+kWsks%H}D%)SX7vC7Q +zP#go*)8u^NqXX)2s@$bSoO%IFQs>nP$lM5Z_F7<^Uvi6R22nUw3ph&!CTTWUw+7S} +zY)wFngDJ-(9d@YTuqfz9WkTP=|_za8wMKFm}f4o +zp&meMkz?tfal&{_QBBuy$c +zi>-1&U{Ne=Y&AVu_y|WjD-lbqC?~? +z;Fz7<58!aIp&Dl1K}+MlO?&1?V6c%k#eyX1KFKUcEFukBYHXk?$<|!1XYfo~jRMJ7 +z6AZd#Zosj*lJ^8a_DCXJmq3Sd#w;zZ3@~4~>+812-?o(Vi7e&BL#+=x`&dVTM8*gn +zSQ7qm5v=f0oj81w4ccIYV_LqK^bJHH&ifAC#zg>25cMD(7#!rp&hZgr#)%gmeFS%R +z5E>vJtsqWMRuFy}0d?}wTD)wWTCXf}m)B$0GAg*qX99{3>=j=?w6fYx8gllacQx=B +zwnw{n(ca}GHGthS2xnYx_Xl^f8oAqP{_J(8ec45uaIp6@3lXAI#q9NA9m^+ZwJ^^? +z^f^5ahr~pFHgW3O6MgE)t*LOqUK?rnu+A=HG3CDLBFq?e)G+Y)!V$rJT +z47>JJ>wu0cg7b?H$!l&su3$|AY)+Gd$;g^f!*~7av9S7cE%OplT@pV?yl82@u*hRa05P;c9wmA!ps^+xcz5sNw#R5uK~F80g}fX92B;^ +zv`*8$NRMjv&~A52Y)AuZdaU!%sk|*WAIu*n<1J>JhiA?B?2)U +zOJxxSTuIv}RN+)t0?MvmBl1424!tTlLxvZlSuwJHEfJ5Wt!Eu#GGWbGgu#@Z*p^L5 +zE!(MbV2|2Rs$_ChdxNQ|P>C^{s4akd7Cfn3ydR)5+_GX$A+a#!E_d6>Oljj)E3-u%(%(`<^NtOIQ9LCZj?(8EfjLmvM2B5~oW2FNr(m +zU?6OFm`!~-3~-DB?_luWGm!zaVfY~W<0IF5gm$449L7ci?ckhs$icLMTB(fnC)u`H +z1;zGc*{mr(4s}+W@{B(qR$THn +zeikGvnF~IqR}2QXhZycSD{*jn&i9wO3y=+abcq=WiJqo!WELyYO9LZZTn+1ibQ#Je`=!GIjMSO&klL`en;f}2mYR~}>zQ%n0>QHYKgC+>C1(1U5^q9^M=c!GM*TZczr +zrtnD}1iy~pe1Uk4?eA_qdw?A(Nd9Dm@!2`Cn>C|c%y(|E3A(!&q(%Um$pN&}#GaQB +z2v6=2&i>u+RT?<*&14-=fqBH-k~btlkan>GXJb*@=|oY(GuIE$7>+j6PMKT7ahf?4 +zQnXQfTL9xj9^eDI(wd&7xc!$6?GM?i_b^bMsQW;4-Cu#}FeqY%=`3Z+oux}IR&9|; +zbrwjuEbKXIo2glNjf_Cvj9TS_Fg^eZmH9?X=hpzky)`Eh?5PGF+rk0UpLN5_&&|2c +z0}HsxLI|Dt>A5A4IZH|Y6XxioSwC|VMBWw`tOcO3wCU{Tv9Jj><}$Y8#2k?ytx_=O +zutDt}#CPa|{ztB+V +ztY8Wp{G_}9?-1cb?OAMaM~>%@z=iwaEHPJ$+AbMfp~JVGu>-9KMUuFpO{-vLh`=WE +zJ&279lYOPE{5yxD4)5$)255Cok8|$2;YW?x-`7Ddyet)=X@?d0Mp8iC&PCURv%mr+ +z6dS6;S2|B@k7%7o061#1Kbk9%W8>)Hc6~45`wia$d@k%BWxnRdOvebE;p*8gf_5C> +z$I#tVvV6pyWLR+IjI9=CSC;@TT>tCGdJ4;gNxQ)w6Iy^7Usf7 +zz)%S@lisGckfd?8tYnc6X=V9jIg8F+fQ1TVQerTqzxo`V1UgD-Wf?X*MDE)R)LJ3T +zT^Y#jJirXf$}{^A$)Cjz72Yr26Gw~bw(RXS4(dLE?RGQ_5Ur`jqe$jLxO>01AU9|x +z7GqiY?_++JJE)2{m|NsCKLEFSA`hGkapYj8x{#^qkeRa({u +ziHaLOhD}nEq3N~nAhG#DzIZ3wnk-d(@aERv-sJ2+Kc_!Z<<>gy%->6@KD&l(twVa_ +z+qP>TA;D>^w)f|qxq6Q`kNq|J#CQLD(&=tcb8r7XQ18s?TS+DV#=B<^lgngs`S#mC +zr&IOl{;uW~y+G~mE)r(URkpiQsmiqOb*_u=N<-W{9n&V;Ye{BDW?oemy4SfnbW&?V{0)sb_0c=NGm?|5SJ;u- +z)!PD@59e%o?8QEA)`}b-Odx>dJ%*kWT(FZIQ6s +zHVpT(exs=$AODxpk6DR`_!(|%9miT9bEpZDvZ{WLEmZ4ou8e2*T@?;Rs%cdhT- +z>@BgNec|+YbM5eJoD3zK?x0=L|7IpDHTCanFVapr8b$uv(4Lj~%0W3USDv^e)m@Voscl$Us)TW1S{ObmG>`_RuJ2=?j +zXNecTolbk<<=JF=I&s6D-z5G2Z9;t@h~IBdSs#mHDs+&to?TRr4olkANd7_2`ZiNN +zC+S|Txr}fmJ*S#TV*k2hjQ1Y(AWY8LI8Wov3CSZo4Nl%$oaWZGbo-ZgZgetG~*t{hiQQi@FG&fWZX8@6@kjskg +z?-A-C)cD@VL^;@7XMzlrGKoaO$ld*Rl`DmzrLK6I*!;o$iJm0jJ{x|66!xiN_51N5 +zf1rFDBHCA8eSLFdX+HAxEj{;#l9u>IOzVkskgwpR^wljr`57Max9mW^<@)^=j;CmO +zu03*m_S!3OlChGc+Z)#EdDe2)V;wFxcc5tVqL&WREE_0MB^!P#o8gc~eZwz0OTj)b +z^0L|RYpycdE-&_wwViu?!Jjs7NYHJI4Phu&>62@~bcSE;I3+hv=ifY6+r!K{<$`IxQAluA>NRhLm7Ha|d<1Mx7c(5!<1^y4rrX +zl^6OXe%kk{+Y{Tzn@>(KEJSm_9zJ_@^?iGq>wal4@tt-LXdYHx6t>%~8-D%ja|in# +zbY0o-;I1A7U*=jM0)V@#*>nrVIof3X_z(tMCKB_^>a^!H4H_{7R~s|cJ#oEw+iRrp +z60Pj2zmMEsqMet0mNxneQ4o2OKtikjf>pzn<^K}RuuW{0i>y{+J*OsKXLgP4brE(f +zWmZnIe?mL#ljKboPm#-|4II@#ChVk-hB1d?&C)Tl@G+CPMvoCwOb-=%+OW2(&CfkwF7F28+qYJU-rqrRjAn~BnW;& +z@)e$X$!6ZF#B%X<&Z$N!Y_;BsW#EEjQof2v`&3is7h1tZf>!wYh^t>ul*Ke-YgzsM2GsNMhwod; +zLDbTP3o*YkXnwe!eOk%v@nOMfZq@9lP{tDQY<;#~_#^4_lGKDixWVJ^t4ba)@&6q; +z*f7uG3^Q5{-LeQP9@i6#8BV(j3)G^%Wh>LgnQ6{EhSpv8yc0>mtQ*|#r^QrpLnAOw9L8LRm$!R8vi}K +zF~O|R*q!#7Z9~2K4WHJ08IHty9FlH-^Q)WZdBbZ>rsZH^Y@*9e%-}7R(a@xV#>jB? +zlLvQu0%-=2+$7y+_xVK5>$f?j!}f!lNRm(8 +ziT51bd?YJAaUstAo+?J42tD}(fyzgu>7O)r)pL>blk~aCZ2!>XZ +zebJa%PoCZOa=o)zq#ItI2|s>qvdn?Al+3jYwkasl%q#^y12WeUN#x#4+qbecL(Lp +z*PbqPqq57(#qhbI0bQdPBZffEc?rEIXF)Ae$jqjRBfkjQQ%87E_vwlnvUI5<#BzhpOW+p#DDqL`CnR*jzoHyh!e!u630!ySpD`&2 +z&eNvJ^F@t+gs5tp6$8PPixCbrk!pdn+li`DGaD6@_72ElqON^%Jf#wt{$0Wr&aBSK +z+lfoSuoMkd?1ns@$f&8@6l~|2qq}!UnXJXAHxbyT<0ejh%Cm(|M|opIZI)@F7L|-~ +z%Pu_k-g6dDvz8zmx-62nU_~P8Jsm$h8I}EdBFly4!giU?^K4w#CH5vn3%0DbG*^|u +z#j6K$_+0ht%VD0p*ptr(O6x~`Nqjq#<~r@oA6C=Tvb@{hUEi*mtIo2+)5Iz#v->ak +z^m6jBxTpF`JinZY@_Ax{Fl^~M)t{yK4>OL9*u)^{|c;zN~O8;=KH3*AW4!NR&;D(F=hi4_uaQxyagb +z8I)rV%Nj`J-+X)sTO^yCX%#bjy0BKu74hx(X^ErqD%F4dn^&&9L{^onpTYgAg4kVs +z^=JR!5B}_z{@;K0OTY7H|KNvz_Dlc%$|y9cbWf<6C>B>AiMmo)lZiTh^(Xl~ckK84 +zb^eyn);mr|W6o#7CuM)_zNUq%hInhq_w#Ch>UY38#=-4^?fwUl?Qi$^E@UldVo^3O +zFcdVBaV3Y34{t#O*-?XatWa>E`d3%0vPA2>u+~s7+-$dtv&YAnrZ>{$*{8+<;MsB4 +zDO6x%Zj|rr8s`~YGho^%exj>KK7jdO@ +zFP}_fmu(ynWpyHi2($7wbgVx%hM|!qytk>&E+lQzGTw2%y +zk`Ui(&$K=?a@WelOO1~ASiIM}*-|)q +zA<}mAJaYa|MRRl7-br+cY*i +z+*C_d_Fm`-F&yG_xp$f*8Q7EQf>Z;^`7e+aOqAx%4p*6ucFYC8-g;BqJL!ppV0@>@ +z7f2g#)EQAW6)hj*S~zQ+N9_#$99{@I(|t8~h=O4M*Zz!HGofyAkQ2 +znXm~$&KtzX%#{} +zYN5M7q&Cc?gBLcgx@%tB;j_)-f|!Y|4S*)7u-9lTOq#PDSRk0clxdYIqn~r!^{Pqb +zKos%i3@4ggh@lRxj9w1$Vi4B+*P>%TnTIAMq)kE4Ts0^$U02#P8&2)ImB8EX3{K7 +z1XaV5(&kP+Vr&vQo6E+*F>Gn$` +z{PRbaH=W&o*qfxe%Vb&aX!ZjZ(Vrxqfj`_VhVKv?p$I(R)G;T%?x`>!p?$FZ=cS0n +zWc$w(wQQaT^6DAyyj7DeF|H3>eCh`Ybv9e@4P?TLL2Sj8*tjVpoS4}Kh#{NHiT>`` +zkysXT2HT!KHyd>@&Q7~LnnNq|+#qLylh5wk90(33K{kNEvvrN2s7Zt4zg5Ynd2Z>nE#P>iru{d?q$p|!2$LLXa0Szja{ +zA;OXIX{CKl4k0bS{+HaTMg49;oL^)g{gw9aQuE9;g*>=@x4&zo)_yhMlSCh!?0j(T +z*Y?5Foe!@4+CI4Jv8@l?Xvnu!YMa^cGD5?=_jTG2;r#rvleIcII?WrT-Hwb=wN$aS +zrw*E$M5+FwE^(r+CutcO6ubb~i`|=Ej?EQm>Lz;jwLAY!OyWlM_`Uz;mCXk_D_y_J +zyU=Ra`A+D*SC&KZ_|9M6`xf;DHtUN)rP!2N|0RAay_@%NS^WjP-!RaJ#F@nimxze1 +zH{wXhkrWJ!D#)Y6sTZZ1k(}8oHKcDZ)pQXzlM0y(I4ly;T2As&jPO&_CWGv1jR(>{ +zi8EeQ)6Nyi;#eddk)WH{sw|e`Xgp4nROE^_4V~G5K?y==4@O7Hf|Flb{g%xEVvx^I +zY_X1T{A+;x(!PjyCYg(oa1JP(R$VpKOeQ9osZEPZx*U%2H4U=np~x3g&QOlfS_L#n +zLGP{?@v>n36e%!7DM(_#k+nu*8L9}gs>}*u#Xn5~gUWF5Kd~Ls>0}}c9jgpxkrd&4 +zY5#+)N3W!JB#4HW;DDRM4rv6xLSi(dObUeLNR}xqDY~CcInE-@WE;+uXbCdr6z=?t +zS<*ySq-!hFf$cl)jAImDFozI>OkTj}7x!j?jzFFxj^H2FVj{6C-N8ND)u+}ka|g6` +z71G+(W?H-I(%RK7TDw}IwW|%ZcD0GtuC~zHm8G?-HCnrBY3(YcwJT3+SL?KPwUO4Y +z)@bc2ptY-YTD#gvYgb)byIP~Qt5sUN3TW+Wjn=L@w05;dYga3@cC|)pS1YvU8P20# +zTp{`7g0$FdgXBOT-@wcZM^ljy@nKHl^N?kD<+JUe;k +z>3i?;dF+iF2u?9Omub95{PcYCky_&)K~s#9vKlCgw@@Y-t|T%aK?pp%bdRT@)Zx051x0K3Q0 +zAsdj*CE1H~#l>XIK{j5#zc16-pc3)WqeGzH;BiM#>@<1#uhEk6pJK0k1JMcixY0!` +zIehg%6v=`A@lr>GXJ?xKIzGR3F*05J%NvLNWZQMAI<^N8$L5Nmz2$SkLqUVmT~F?7 +zUTj@)w|K|YoN&rJP|4_|y4RTphzq>-H{B+9=^-2Up>bimBBoY{1z-Ym8$DN-<=gpLwl}4>Uexcel8GNPuS%=g+D#hxwZ+JGq;hQW` +zo}QfHE~@5WeK$~M)&@(*Q5lp>J6BiVA>>q3EantkKeMiKZz~n}jyMxF#_Q}k9 +zsW}NNlQsh1VTX|lvzSP4XJh&LYz55>M3hr^ +zGJ092pyPMg>BiA(AF(0AwtWS6Eu$|UEDnzScph7`erw;j6YvYf*}+ZiPLp9s5;%e_ +zaNCeLlhGGApTcMn(C2|2V(kOl+`oU;8%P+l(ptNNLiQ?4O!)fBCAf>(%Y4dSBEuB6 +zD{oyk;ot`@M_XDVC!0U)Cb?W>gG?-)uQLA#k8t=(xaL{b!Zi6#kgib6f^B2Lhd%R> +zY*2!M(&B+Jv3)X?`O(3pcU+!rA2vI^9o{^V3+xtrdV9Fx`Asiv(Lj94{J9r?^sSDE +zKNgO;sD9Xantm!%gcw@;^jo+3OC0Q&Q{`R>^C|WV_p1*8hB%B?iNP_xiz>wm%$j>N#_S`H}spJ<~kcs+1ld +z^SrL?fY{DgWWAmHo{iGCM%{n0gW>r3`N@4g21NKgXFA+x|2lp`OyD-C)(0^&;vh)H +zy&a5`Hu8hpOvo%%xlm2dn7I9xa(?f;HxpUzM7LY(t(uIQCK@`CTQs6kAzIq^6mhyR +znA%!(4ull!iu)S$Tuvm1?OLNB-u>jA_aonsl_3JV@rF0kQ%~P{^6^_gd(-Fk&Pu?c +zZ(C`hogm!TK~%ik9GU~;?}z{4!(PeCpM+zKIBEe=2S7Xy0X}33;k*mMd9Xz!G63M) +z>49Mt0BQKXvfeNAay&xPiXfS3Lv-( +zMH0$^st(qwJSmnk9c}xS??uJ9SDUCURqU-QlGt{&F%!ksceJ;xw$*4zuZh!yRFy3? +zIv2e*s1zF};&#h_9^UK4(-%>3NE!__;4w{OR4+f`2DoRXl& +zPet6&hOX>6Uf=@&@WM|G$ygvsE9`p>4M?ldojUnkyAKhXSLNow6}-iR#5;VMScfkY=kVpUzA<|Y +z?q +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 +zzJ@n_QF&8dqO}Z8;_N3PVkzLnew#?Idj$Q +zk~Y#Y!SoUCr&5_4PAFFb!IW)VbvkV9FHIUR&Jwq|UpAMmmQMgFUQIL+wE5dtH>`sb +zg|?#01jIqBizEhkw!;5+k_t~<6Qt`)Eg8}_Hu2)?gtXK4ZIcWUq&Tc>X0Tj_0~#Vm +zxs4Bq%H%HMvKGZm1g+pKVrk-+PH=8w3?U}!bU@Qt61&_g2rhx>Mi%a-I +z$L)5LlZY9QC#j97i|$8=r%y6b!X9zJK!Rpp7y}IL$vvRNZ94|CjF*8)s#*YH9s-E= +z>CEhIzC8^j4K;@!H&zReT}qn_aqP$_4dzJ_ +zw$AR}^<@qj4zkZPr6xwCu^lHqHf)~Tavty?g7U>Gj0fB3m&EQ%=N^?Svq@+hYM&!0 +zo0!iA;LVA~x;&5C5kR6o8}+Y(NW;h`h9qjRBrUhK8$DIaG$$gPNq;*sUl6rg!dXDE +zrJqFzIs+TQ7~ClW3y<0jC0{`7ay9-sdTl{w@fJ_B+!n!Cw)3@M6FSzYftP}G%b{iG +zYzp!=f0j8JWhS+S4PEz%u`Ub(x5NVDY=P5=4&02!^-t$n^| +z&7_1G2Lf$@3$++nKV7s^i&Pq#DTuI&F)<1;#0ZS7Rf^E6opnG)^A;X<@?oKeGnmn8 +zbp*L3;^T|f@W?o@yy)biM;P0&7l%APanct6EDeM%_lPNpRRXsKTVNmqAU3wOE~3l= +z1a0~)faTCanp?u%JhOo)v&X3dES`vtG+;iVGbdM30G2>$zi{sFe&HXyb2zX#!E-Ff +z{4x5s+Yb#6(CN8-$RQd%o`?V!8Z2xE6vGP$SRi72>vKp5r|t!ag%8roh%van8QK*m +zMK#MfTM|1?lh}rEiAbB#Zc8PamUg+b;ue*%$}K2OKVy@ELqJXQ#~jd%b%dadJ_i&q +zgJ#jx4K_?uDRAG$EzUJ}ZXhN#Ei@KV2*!m<{@qK?X{$VMe-mv}<0L3PWRE&uc3&}0(zczk91-hj;Ysk0Ng7Y` +zwhx(CCDjqPCbExojA;UegywI{>|qNP{`U9O}{^}?Vr +zQ8~jtOM6629w0@@SX?cr+D@CB_@w)%!MkC5>(H7`vvz#yU=C}0*6OxyBcd{2y@V+n +zB|i3W2Pr^w-2{PINHO+5FWX_55@R8S$Uqg1_YB!evee|Gu!aNHZp$VUE>{czBxSJK +z%6R&+Txca>F9kCa`j35CQ+Jev(z0>-hQ&xF{$RzjBx_lC{v5X=OtF!&A{E?G$U{#X}i_rQmG|s;Q=TxeF3W1{&<6FUSCA`ABc14KvrE&YD1F#oBlbR@V +z1Q6Ki2+b;@)zGyd?Z1;ghc;DG!5b=;nXgpTinbt$vd&@kdG3SbskwHY^k|T^i+i7cQD37{^tpuz@|0kYW>;SY}~lc><(6 +zRi`qMlodvC+CFt91s`vs-=J%AsPe=crGv3N&AkXY=MS=YE_0r*xv{1CK3SeJR!BNS +zOFuG_muw7#JX(owei7LS_jZK<<=s@YXMRBQahu-(fe8+x8ElaB&M5_~B1l<;Mo4pm +zO~PK$8j-E_+FI*LJ}|B@F(1*f-C3u^qP#{<#N>|U`Ee5MiiP!P(3uoV*`6ZkT-CH1 +z&CUiHT3Dv7RYuEh9%Yh9l+@Be>NDcuC$4Xdh(*e4M=MfmiG3sOq_S2AT`r<|WRC9q +z)8%5S7S3OSs4SbvYEa_^2%FTgB36cbZU#v@wItOH@{}{X +zM6k@7S2f6dAX}*!q0Eh`n8}C4CO6=w$PX>$d?HIZ@lb0AWkaPi>GBz{^&v9su@>{x +z_T0KOMMj^o{>Z?sp4bA(nyk65LJ%oCbN^F#8piZDAsNlm8(^9Te~ezstQj@z-Bpi; +z-CJszm$WU9th&IrQoz_q1p?6s4f|RmYJ}hq{T%BtjaxudfSpg07}m0avt{9Zy9o+> +zJ^T(qXhRFc);x9N{*5^Y@F%95uH?W#7_$;<#2qLSlg +z!IQuSP +z22mx5@~S9E#X!5ieG$Cdv4;dVHNj=Ar8MGiv=3Dnw3972kZNL48rO!Ii!hsFQw`K8Z~?2Qj-ND~vlUG==@L2x{(y{{%pJ_J7a|9+$egQQ +zQ=}x|VNr60GGZYCPh+nzCsaf?t!_u#nOSH$YPaApVWYv?(K0>d4IbxP2251#)dhor +zkZMl#{h{=RW`J#6+Eqqb69&Xq9A=pNzH(-*W2PD@*=`G!XldG*1u>l>TmQ&5tEDF1*W}#|7 +zH@7PuSitE!w9g&QPtWa(<|guiYjF+%#H{BzU&JyZ9pWHBhj-Vo?Oi4>kx2OV7 +zeQvP@&64iMGI6fF1L=#TVEN*bJ=y({kq3->I*AL5yT%1-J*vTghBcSQo3byO6=&=T +z3tg>GvK>DR*+6AlTOW3J1K5mmoaTZFu1*S{g|Z8?5Zl49gJ_7T)kcrkHsAb) +z?6QIcZ=vOglee1$cYW*r*>)s=sGBr-Zd{D}Xk3+xGmFH!<|s$nQckYJ6Yai +z^FWTnS3P%$?b!!zJ=^^eOz>cuc#XNK#Db|`|6(XxKn;ho1)&6cfUg+0(A*b!Z*Tyq +z`@Yx=e3`EydI);iQTX}3SO(=;;Q?dl_fS1_b2X94Ff=pYQE&CWc! +z*RZ!BR>G9Srj`I=*RmEg +z!`<~%qX~420qPSeD5l&7J6TDW%oY+__`8Cjv@SRk$PdQZg=9i>nvfu7{KCu^m{UYkHfBI@9%6p*bt-WQFRr6} +z;TCA#2_oS0iSt795GWW&jBW1mxWd^)aBe|5tTDs0@sB-~ip-j~AN57-i%_{;8C}v6 +z0Z&qan)TZ{c=IWnq@i`OK%ozH|W32NID%G9S*eNOIXm~$8c +zi-6_Kn~T;>U(?fETB8j-$rJPO4gjODQ3}KoU)uuanKl$&Q`Rbw|MsP?2MM_vo&5DY +z6^}ZQc2Pe_5;LMKVu6^A#+2sfZ)Omkoc2}BN$*t}9FFa{^iL%c^6){-9wW;iNf0&% +zwI%JRBxRqs))9xYjI`<6S$wsL8dx!qK||&IZ-6i|hquiHE-M|FkI^@oW?IzPo29!* +z8kGQn9{Senscqjj1_n8*S%b+#GxF}7+S@r7(wQzHZM6`o8Z9u5kK7GaECqYa +z6eniKS#pFQ6RN~YhG4KaRlZ%}os1KK9~>i?#}y|&z52PQAASJh*Yem!h`4!NhoGT7 +zPrr|d(w*wPM((x@&HM(wg!vg;EmX#?L}Ui#O=dp +za@Sw#caS$;_jINCI-4rD_rc^fkLNz~MX$A>kZ#)oU>P0b%8o!i8%)KX^-Em|c+nsr=AsvNa958^0poMaBv-zJyf;L|b*hPb +z9zN^EMrgaiq$AZ&pRX$>Zy|kIuV~#?wl9r~;)0&(yNF~5P*z^w8KG@ooHr9BXgM6Q +zF+O1y^LlTb)+$d)0NCCYs%aACnNDoWydx5wq}9GU7cp|vNKWiT>~RR^&aKtoK3^`| +z+&x=K8^PxM90 +z^%K1);+^d(grcz06C2(V1s#%Dv6E-dC&8f}v*}tB8OGbGg~e0NqGvi>bOJ)}ikTUg +zWsf#S-D+NYzQF8MulJ}!CTKar%q7Z2o8v#Ml%Q1UUBV#kbx;j_K+2N6I_d}_E3R7~ +z@Sdo6)9D4w_k|bn>cZWf0NJWS`vz{yE} +z)_z>lN=)Q@M`Bo?hU?YdR8)ys8Zg1ItP50M&*>8`HFv)$5G+w& +zspm#z{fi#2&dU*P!0>kK@uY83?s6Gs}#6!VQSD#xS_cvut%Ewo6 +z&(@_7+9F@?snQ-gn}RueuD`;ib@ck2$q7&Ej1IB$VEXgL&e7=h3qJD2c#seD`3##{?O +zcyrHU7w>+HQ-iUM-1{1Cuix1mIHGzzJz@_Rs<(TZw(<)fEkDrHcV_VDIDW8BJrW23 +zFzMsSTF#IR%pMJ~%qjw4Zcl;jY0@UwEVI{G$EsHOY<+5M^Bc10SQQgwyxcw-PlTVN +zG98M7*W{jQ`lw=acGdG9n7c$bNi4kQR`~X6Fw1?wiQ%8py!L$Jq#M11=CtgEZ0tp| +zYV265VHp12rI^_>eT9fU_5uwqu?7%igdM30UVt%n+0@Hf;Wlks1NLqjG;p6EX&3nI +zM)vsLG@Yvb`zCg{UMIEQ(q1_Ylj^0d2R@%Wq;-3-xK^e0^(dB2l^T~WV&$Wj@1tnY +z?t)R6A!F)Jc+9P#Zgex*MKm#{L7?C4X;46OkTfyf9 +z1$g72U=%@9GWROEXzQC>KBmN1+_;2`cKp_e<$T|Q@d4FktRv%~#EEeT><{3bf`V~I +zG-Y&ZY~AH?;+Cvf`xHRTS=$&TDj+{t7ky^i=jNla%u4MOzRF5=6Z(5LLJbhi4j< +z;wDSwm4heAo1FXM>MCEb`N`~L-m-?k55hTGri$v3&N-<>%0`y0)mGqJxB3$ii8=A( +zvY!v4vmQs&uz{Mke;94gZ}H(&FCC2{AGu{`V(&B`efoy3;x;+9`1FlRW~)iH*UV)( +z3EpWD(MTV@`t0`F8@FvPgIb9jS0?2ay@2GeFYt+bR?dqngl~WNK2Aso_Z}ZA?r#5; +zjs~{Yn8}m6@^!Zi)+S_stx)w>KE-&y+6#kMaF8=|2X`0Y>cPS=Xy{^aO_E7)@?VhI1=jbcBUxFkv +zH^?Q`@~c(CS^Z2?9t4j*$EoX +zV0~R7j3wXsg10gs14i5-_HQUBh=kD?GmRcoABV$;L+pUJIBS*xT%Ewj+i|^ +zvvkgR-uAY%9FDZj$fU4L%yQbP;Q5SYBKf+ih?#13N2!`nJlyuw;ND#7ewvkkF2P3Ww8i+TN;x&t4<^)kpI~ +zB2EGbNy2p8A=fQI7>JWiFi@fK^JUxxh>pfH+~-$~mb+)?{n-<3Or+kpJwRyHy=-?& +z4=$#&T&rI9+TXBgud~8%2&LMLP&ey$d&eUa;m9J;RgflImr^F7>v6l{MR0-H__?MW +z9j%k=eT`dbtU}URB6wV +zyT{JV{wDajcU;j<{Gh+7R-mq3Id!dfJP;NAZ}StaO4&Ou)KF}$<@CYcF>(1i-B&5c +zjn|Ez5o)DZfmYhvq;b+XF;9s!pCR-*huXJp!Q&vpk&Rycr5_uiD-yV0u=cBIRF%9N +z_2FxC=x_K0SDXzjy`S;a_(0Fz{cwkxS&QTa)_2SgQ`cdSG1io_%VJ*^dt| +z1{rZi65qDj2=*+ACvVm7i=v0?TbHt$V3+w?M@F2b3BBl|mh<}X*=vy)l+jq|uY8s2 +z7|4tJPwe>;^NUws?G4o8lG71c9uT}@cb_`Pg+cyCl1#i~QpEAXNbzQ7z+4H@1C}Oq +zO?Zu&=3b52E0N1KCScND#l{uN)6Q+uoG<8@YcTM;Z_h-C%?D5w{sh~`NG-&`__}mL +z+OL|!w63QnrlC5@L>2^}UXQEHt`)eCV?+VrV;jS#d>(8^xG1CtI)v&b30W-lw|gzg +zMEnM2b{lWq)6H#~O+J`)S}b6gGzWi8GBp=}EMFe*C4SqLz3DtVC(RqYHMZ+HLrW%g +zX)cNtlO6VeS$;u63*rZ9BO9HbxGc>(UU4?bw4gQK_y~Aoj{SjzYHX-OhAi;(AWrtl +zeV_i>1aVcBkK@`w?EX6Q>YJRs_e$REm+7U=Rbx{^?rcBsR2wd~pWfR6upxsAi}V?}ZS?YehE*ZCW`Xxuv+-0LCL52A4CT<^90 +zv%%+`0x2hxzXH38hAWVkir7rH|E(fu4+m%wtL%p((gUg8Y_Zw7iF&3AR^!<-io3b_ +z&0Ea}^tl(~I^XGBeK90?6DBrxL<7zy9tgPy6N^?ezn;(ndpxn_+xc +zf#c@k+In?xjLQ=U(Gb!6X{28qK?r#LV6W9Lq# +z81HAY`plko#EsiA=kR06-Ya`(*^KGy2ipng&Zlpr3DL->Zy1T>4I`2~13j-$?#Z*; +zTU#>zcWl^z_=jFd;8bZi5e9N%f(EADjZZslQS$myI9 +zVs{-KY&v!j&(pZrZD$b~m3z~snPgVp_m^1MQKbFlxPkjAq`Pz=ZS*N5V}b)K!Zz^D +z`^nheUnaqZ^T_O_fZ;6Svu9!@GNFMUL(Rx&Ilz~b{@}y0F|7~CE%SDjdRu1|P`G_|`G6a=Lm~j)c&mFP92O1J`ZY&>8;A{lGZ8|bZI+Q& +zzA`9i|R(~vfsfnI(GLNaS)rUjO9=IDbY--U2LNC#dHH{Q6qYR^KCX&Pct(gcZPk&F$cUux&+(K#utRBs-f!Lgi|CL|CVdp9(h +zzv;z2mTF~|y1?u$#NV)+Hr6JxR62#k_!?hH(m+Cw5vIMgPr@h5xQ5~9Sz3?%?G2OfePcMH_S%PeG{AXF-#WIf +zYq}D5piV3!cTng+e}CDJ(U*&RwED6819P;-#e-fAmqZ*rhl#%*9PM_BQ>5E>~Q +zMx*^(0f`BthQ8<7F|Y464L;<|D?2DL&9vm>nG3sPukRpsi{oCdiwK&V{TFhUP +z&+U>9gnj$tLuy=8j}A(e;_}MtRxaaDg;f!`&n0YpVfSN+x}9%6*($-PncW!WysV^N +zwShWL7fn+bjgUibULPDkdHeX_HrnB>oLSs6r&G7;^;d;Ga{Fd`=63twHgDe6c4R8P +zWCw(6#ahu!Yv1Jaw|e~I@7lxcjl6Mms7qzyzi+l$J+n5xEp}+GgGP9-zugONg56M3 +z-yld>`iR(LPH(?syUVC(2+!Ij*_6(tCbF7DtRj6+3=X~IxyK^7#p?dr!AT_{PD5%X +zwkB)uBDK$8xXE~F=5}>hdGf)DgtOO%L6?v&>1Da}@k|WcQWM(2K3_dy<52+CA_a>bDs69 +zU&`byYb5C{#8|;gVjr6b1>CT_S&%*1Mk98MW|`@=gGY}@ZM_NUt~Ia#ms*vG0z=i! +zHq{MhqnjH%-iYs7Z7jXyqGVgm%D_Of-#iR^`HbDZdAEiE>fkM}Mywj^Hoese4!mE7 +z)7|kRdrI$rUltAQTRqYQ#B#A$RN8&A-0?}U6>ig3c<0WY1MHo{G$V>dSdg0JnCWZ7 +z!9_uP;HVNMX>ufYQ$?zN>#e^XJ-C0;o6TnZp@=14Ph~$QIp`p$s}+Ff^AIp2D2n!p1Al +zZhN2hA0K*g9>z%zXN`l4rA%pevyiAO6{iS3+^wJLKmJXJQF+e!Mq7-u%zfo0YDOZ6 +zLvh-nG!dOTl~{R1R403VLUnxi|MTzuvM>JdU;p_p|K^|nQ^-&yF`Ohnr3Me(v#CMLbWs)bVtcn4Ydu)6W=E +zAequ(K3XTKr|UHJ);dxB%o(76i!S7vv{x2QUls~6`-J}28|FV_pufP4h>tFxY^|wE} +z{`QZqzx{*jU;mZsZ~yA`xBuw++u!yJ;|D+fjUWHkkALGo{nLX#{n3wq_s8G+Pyh7C +z-~I7#{OLai;vZ4rAO5F*`jU&t{z%XK&-~o~^H2ZTpZ-JN*6+~k=ruq7oge?!|L=ct +z*#GaprvLvJ^xyyIOD{po%T@XMOSAqh=A2IrNy_Be|M2MVU43c@yQ&F1xl1s9<;7s( +zx0G87roJKZLF(xbqZPtuux2+HP +zW#Q`OQO)QV~W62Ql;(80Ch(EXg3+?2(H1m_>*~S}*W_?jg +zc!KL%CdYhEirYDdY?=$-ecU~OJG=_Siz_FLTm{mQL5izZ{<#VSpDQErT(zRkRV(9M +zwZhDm6is9P!PH5N+4IQ=yA0sb6nj-*tqIS8CPBL;%bLn +zakWvPxOxdm;>w5+S4MWY3WSEMKw7xkASPTL9>EnY7Bx*MmF?DgKtR`o%9DS}obsJ{ +zNgR!tPqxdN$eF5F?1=Xtodgy|i@Sf;6HO`Ww5DAum5obem=fn|s`$}U3ip)ix +zN}=l}cB#s1!lY@@`hc13%=-G1{!1lnly09UjD7FPgS)*Av_NFQ +z-6w-Vd{I8Kq@6hyLy_7{px=BYh>lAYW(z^1oQSc=OU|B?nF|-I^>m)rV;aPn!bity +zQ=L*FL6`NCovfYqU+;yY^AUeysQI +zusTL4*c#!YzDYk#Q<>2AR3#EW#Z5d>SwhX=w@f6ml*EkiQ!R$WN~D?jfyQ_W*^1A8 +zhoa_uP-%=GWu%F)_?gPE39x74S{iS3gmg+ZPZraYay;o@ie;a3>cO*?p7SBpsmkqtIuP6QnJ6tuc)V_&%PL+$R>|{GmgU7_1)t1^OQDMuY_U*!lB($nTB)&| +z%*WGu1;3arW|vhq(9P--my2watl-8#kR#TCp{b}=RaT?d6Mh8+ZlXX&JD +zR^`qd&L(YX2LlJj&1s%ja2q;glGv@)>VUlK8dsptt$SFC9H{=)+|(xrr*u=4T5U68K3+v +z`0!ybc9-F9eBx+ao%lp_?*TqB>?W%RY92*pGk^-X-!aYk_yuYV?uQ~ii4{jTx#I0< +zx5>;IZAVumJ(=Vkz1fzKrRLQ3<^$Ar$JiY3zR(48e0un7-ISqd8)T1~l{>x1$K@si +zir9P!p{C_ZdwMOMXW7BwhhP8tJ0E{Sk{wv7>{Bom4L5-Hp%jSF{7;=~7El +zQ>i;Erka&&%k4vHvQl%yng3Q|<2MR+Vu4$re%oB$xB?i;s>ojw)^ +z-RJ`wJp)XqH(&kf&c#LRyS#%QH|wtlXqcWADJ{h-QI^#o|7M)Z>WWxd(xkPvCU&!m +zzG?;MuLhT8LAAGCtobo6TXDSM;)wWl1AaGt{@ndx&35}nL;Q-=hvZAP!qKx`5WYC} +z@%XR{xU!bMSSw%LmHs3Q?)_!=xt~B(#Y^sSWVX8=ZOcUG8?Mkc<{ +z(Fvz$;>6-7!^#9~J|W%4qzXE_yC5x1lb(}h3tG`8eBYVMRAU0XomFDMGRJv^?AEya +z#Q1X>6Qe2L55XgbRT_(2agYKI +z7&Ru%jWjZI`5#aYW|N3D*wxO#pnL`JoBOFiQP;LJ#35n5uzhKg +zlvW}!KNoTnVHndYnrid*fq-E+!5^$T#J=Y?Nk&mkZ3ba5;4wD!r9kL!QPa-c*iRc! +zi@BKru8#X*5sgqqLXVvllA3VgDvHG-x9n{|D{;sU^+nW9-+)*TYzu93$eadiVTBlJ +zCb+D~iCFy<6K|oRA1LI&G7k_;LmIS7D5BITlOalr8bM}?+BH*a(+ERJk*8S-!*oph +zJO=|bY=j1iR%?_XWK2#hMe+)Z$4!k}Guno~Rm7AQ8Vkusa6G~XL<4atEj`rE7szOH^T65Miuv8IFP4_3ptGQCgaf^iuOKaJzl^G +zxUy;7hq*3IZQ{O~_K(^{oTR=aCwK2km+(b_$fwHv7JxR{i9KdkafBY2QB5)q{I?TR0P=rVwWVqH!_S +z7*sxBZ~*$wvO9A7E6B@rT(cxS3_e_s(?KvH)6|rClITxbFQMSI>t;9y{mZ$o2I-|} +z@gtF`vQ$l#2?RUEmygoq%<{HTiXgbPBF#J{&NDLWpETBL5p~-isVspG0m;_aqjlQy +zzfqNHH3D}wA4x-HvKR165p{YZ>$dth9j516WHzaWBF4*)rBSA)GNSrZx8%|x3G8WX +z${5C!h^&Ebx@bE{6w6lSOIj`>V9S@Z=1B>uh$fTBZEF)^y%W@)h#B$MNgCNym%$fL +zWHU7O5z?$^Hv+Rsuw~&ESVPTO?w5hVCW7P%#gT!4z@-;(UV1c6>q^nqG0$!7f!j0; +zXbEeWj;Kv*SIHzzOc6;an6#Sc1x;aYa?ww;g(os;5c!bps0K?_^@4^)<-&Dq%6-Ha +z$*C1xGK5snw7bzVa@w2evnoaz#0MK&7$H{at1DICduTEFBU>nF{;O!14qZq{V(gi= +z1IQyrYaToxi-}F@+Qk^GmA0WSA>9@7yd4I2_z+;yB1QcCakbEy?R}nBb_bvmx|rrT +z{g|W{hn+hW4-AA2h-Ry5V6x_K%$1fYHMXcklaFb)w%^(miFz*d__;6*6&S7vN}^3o +zQlvQJbJSR3gKSDHg@ii8 +z)3_p&hrhXRP8{U<{M>-B-e*KTu}q}ifU@kJf1s`0d>k#bl88&mscL8Vd1FqnjOL`N +z6-HMQEJnrH$4nB=DkUanB)m$g2Q1ms=tr$2MbKD{X1Mxdva%pku{narayTRcPWT;m*Wn)!!Y*QA$G%EcQ0=iQQ_><$B^nZ0 +z;v$UA4o(s>$wowW8jv)cn{A*@X((`fZGJ|EN2&D$QHs%0GbEj8lp3kA +zfWn*cV-3mBY6J>*iF;0?F%H`dAc=dMtwbOYtwBhl?!4=(frXr(OI#3y=uuo3p +z5Ui^a10ST=w8m{&r=%Dq3r?OxvlN8r8xS#sFg)^F@Wg61{%51N1ip8JtdU>dc@X*W +zUfi27YxExfLXK4VVjhPZ{0o1g4yWF`6#ko9&ZVcqqYfkK(~g>~pz`?&qLQnKrdYvf +zbu>-TMZ79(i+4J~s?eZ5prFoCDP%iiS4IS-Z5*egI=c_~V-_-pULr{v0 +zq|`dBnx$tqOoy~LCN?5xB>A;iBgb@WPKTXV8|0{2SgpjSqw=hW2CD@yjc$EoE_|8R +z+tm60x)Kc&y$G|;3wIZ9Wd6cWEjhibgBJG5&76q#wHXJ<#Y=rz#%PrvbJF)tsH)=4{qb|N@qEd6fXsD82|+VYPZ#|nPE +zXTuKrsLGr3zPbHZs2$g=Mz}0eYzWuXUbvFT`CeZr6BoO6p%%q +zlITTZxgyysbZ34Rrsi6|Fq)+s!tAZ3~&fU)}x^A6OVpsV4IM_R6NFN!uQYX*A5lNbjmo +zT@C_u)@9r`59>vdq;Z?TNz*Wk1nGmewuRF;YKvCxYjU2}ktowX3SY5Tsc%Erp;16Q +z#oI?0cn_2Fdp5E20L*#|JhDU6gjw&oDNb1X?N(woNfL679CQceWyrB+(TyGKR7 +z7^^%?)kzy5?PMcoBCW@Q-kwf`6+0)5rp`2Y7h{@YP+>OGWY37K+*qRF6oYh6&hw91`_r!E}jkb_XE+GOz7Kz%-FE +zcW;p??i_Di3we3Qr;9{>Y5ihkyJl?iIvWvkZjw2K*9u-hf*#aLIPoM%4H4vz-buG^ +z-#EK}zeit2KcwdCZV+;GZS>WUCbxpn +zspiCvmWXYdG8AArdhfSp7@+x@U=8&B=zFmzFdPS-f_@ +zH0M&G+`NChs&P0rCVqMo=Fj&JW8!#4eFJikgN3d6r3UQ=1GRFDV8Tf?b$;Pen?2_6 +zD1VW|Nn8V&uth)j;_eJ|LYKWG0N_$BqUKOOap&F7ugPI>X<&5Mhz*}|T@`TCAw +zgIPE2Revl;)bmPIyN$UYef-XQA3k~e07ubNQS}nIpipZh +z*yoF#FPW93RZcHB5QXlELA*?e=2N-zAsDp!X0^LZ%kW~FG#R0@qoJyil5dm>Koc>P +z?9;=5B29myjN<{pBs?wRMIlbl0qI=C%R=(AfJY)(%G%f7Wf+*1Ps;Q!w-yc*63Y(Bn?}vZJ3hiZKmZ)PSS)plOO+(w6~9m +zc?>R2wS91+X+|fhpGKS_+i5ZsWeU^1qdmC9>28wHYLGQnpYBbXc#LI!lSi|3V3WPp +zO|_u?WpbnE-WoT>Bp8R_(`ZuroF;deR=RE{GQ2K>Nu>pH@OVr3h_BqHUvIzqI@XLj +zWy&r$t}-*z2IIF+k?61E-5&>R;?-AotW}c{Xk%NB)qI5TzGIcqI8#$ChdBC4wi+HY+A8ZP+HxNLl&mOm8_=*fCRUbHf%P6B>-Rltcar&Jdd? +z>GU3r`%jmfWx~I}F;>+~4#lKi?4Ox6qBeF;llt`8@ur+0&~TAM06TF#n8?L@;S%MKt# +ztj!Y)FrC%WrS^S9-6iIq+(5k?ncsP~Io0!)A@aEh?`-5e80mX=pB=1>*x55Y@L%Mp +z-DH5uUBhxFti0a*u4;#{JZFM6)Lh +z2RPwBo6k$^nDO-A@Q`-ZuFsu2-WOAKbAIzI`|?4XX6bxzu`I`eD81~Oae_36gX-EjB>V-b=r+om?>cJdt!Xk_I} +zZ&};royUi5gU?p#BuQip7oUOvzxnv^%_kpx@Xp5DK;d*|ZKci(&O +z%@3b^{PzAQK-d=_zw_27Pd@k=dUEZ7TV-oXxp%+!@}f6PMsN2{oXL!Y0vRNW?-fE$5cPle$(Bg|yGAx9qm|0$H|P0} +z52xw0(HBFdaFz4f@%Y}B5m_TxesII(PaA5S)S%??;d2p*WJ(=nZ*rVTk5XApQX84) +zh8y&jcy`>SokPE!Q&j +zoWi4!odE`XWz+Zt%-iB}$C~0>qn2o|u4-HyPY~KCCfT+CTR^10>etibJN;2Qe1)AD +zNH4M1{08Z+Hu*{|hDB;Koz@?7|Bcj~gyIw-h^Thp8~H*ZzAt9u>7br1RWGK>h_8-t +z68z*Y-&?%CRwZ9r9qw}+-{j-D5))kEUQV_rnFo)43H6~rtA{&|7>(K6dTR7ff@i>n +z`kcH@WbYHR$zJ2bmWZ^KEa`dg6C4O-^&Ol(e$%;j_(pmQv9LF#_WQSP9rk)&JfGCY +zz12?q>FEu;@Yk>L1kSP}IhmO2_WeQifLmCf>^rO`giF%Z&^!ZZemNKC<4mpU^<}RJ~Nwbh3NjSd)Z5 +zt_N@8it1bZ*?-5z3K^xEZ#iPFeVJ&%m-D18@0x_Q_rc)%@h5Ng)@W&11vGav;%v#U +zS>C$k$t)j5qbg01`17j)O(I`0$;ubHiHS++XT5;qS4U@}JQqgRjqBK%8 +z%oTkgCgo_77K#|3p6vW?OFzMfi@Fx^_~}>>i3Fr!3?wh~bkBEohgj0mvr?0kh}Qg# +z5Zi~O=Y!*K(iRzh*o({|ad^p8wEW0Wlbs;d_FX18qXWv~%mzDPJBU@<@{e=}%WH)XAru`seZC +z+1XwCnUrqyge3^mbP*XjYVD^_t*xd+u&ZKZuV=h=aB6HeJ-ncjI@RWG@hyP?`V`s> +z6p!d^f0gs|8#ME1XB|10aXBs{{0Q8x%yX8e-%M8f@tTBh$m$z{Nop +zCvFLIl{dxP5;dQn@Z$HDp>ICM)v&>9&Otw{1XB?#2YoRiMPwjsDnXV>kL*5SWzq04 +zx4GWCOB^h*8lj}M97iUun+X+VgsDiYVZA%s3(NLa$I&@o>f5)CxIjE_sk~GLwh)d0 +zKqA5e#p?|`1U!Z`3-vZEuJbpOfQZ@%~8TYu}~?RP$T=dDlP +zdAlb@RF{Lz?QBB~sIy{8G&>QUFMA;|2GVLDKG7=g6`~^YBUYw~lkXs`;*uU{j8-;j +zc#IR`wz;rCQRETRDKUZ;pc$gFpCZY7QC6(+MVWhrxqE*FUFg`W +z%p2;BuyH6>nX1=&;J=X`+p_ACVo8hfj5H?6E70Cl^)@SCG&IfxW5!?Y#gUcHZ +zQtR6O=HlJtU{IO(5Iv4tgn)s&mUg}%dGum1%6mk3!&HwE`ZGSVrJWm-twWt9Sp-3s +z;_-yJa>`DUFC@_-8opDd;ey+{1oatYs@ +zp7ln_GAbJq4Ml(06h{QwpiU@3q)wKqwiUo2fUqD3-}MmHMR--(2gY*X4!B#Ges)D- +zJi1IdULn14snnoKvx(R`j@Eitmi+-q#(inmEix{HDD?)FbRJcThFeFtQ)bd*%ae`u +zj9Nk?^*lu%7a~d+QAkfC`3u1qJc6SH8AMxQ&l_GbU#Q0dk*p{C#D-T6PUZtz2vF&5 +zK+~PmP&^^c0X-ME7b9}r%Nv~z7rZ+5zKfRJ#X?*RDmBwMSRiSQZ(DI(!Mr@vh0RVNR^Et=8Oo=y6(u76! +zoCNH8y6BG@$cpK5T(DL^gK~2B?pO^5tR0liAY;6ywQjQzFgO(ntur~t2p-jPT&Tg4 +z#4`G6N+Zt&Y6qeL)8nqiwQ|0aAto~d9>26%{x%%1yuI&sFU1yE^9H>AKEN8o7Q+#- +z{6>;4F)#+dn-POX{GFMU6MFGf6l$uhB1Vs2YX17BkOzil`imM<*F#(*uv3k=npIjD +z5trluTiz*ce4=WZf1*^T%}4acqDp4831`iGeq-j`$_nrDnIK6m38@B%?r4fuUpK5} +zZ6H{_aLXOMc&ijRs9;y +zN4bx$;=^og?gFgk_^{x$_Q{(zzp+_KYOmll)NAa6k<$Jmbb +z@!_-A4{p%dH$HyvCT;c91jz-=+RhOkd>0cUarbT5wX6PE=)VoM_X#NzB17;h613o& +zTJ7YeBBOH8OTI54pE})$?Z#Wz?%x$_mg>tI{O!Vq(tN!)NS|jW=DR6v=9^X}&5@`E +zLwbC0+XZdA-D8tjG|X9l814LyC&|~<{DRgIj((mpL+cSg#&!Rf-akSE#X#3hve?ak +zFYeBhBtGww&{eM7fXnN9@ryJK-F=Eq-~$i?F= +zqMg=NZwgoOLM`P^inYSxn<;cUTG73!$pJLoePT78T+kZR@4?%Y#AywK3vToho$84o +zhFhoNkhdY7sABiT4U$FAYvDWWtELL}g13<&gO+-Afhf@024#i&m6_}V +znB1ustQMS}TV>Z;Mh0o7$2O@NX$Jv8Z8rLe@RWqIITVZZx@|hzXC_AU_v#g!wLsqfg+qZ9_8Cwr+y>!i;$Y +z&d9<0YxK`#yQ`-Wvb6}4aic_+_$0@)KZTaYf_-QvIhv6=HX#~j)hn&*sTm4MZ;H(9 +zY$ps>)p0&VA2v1pOe>-g6VjZ^v9UC1gm-PjNdtyBjE>G79`)w)ISsDO?_frqo9Ww} +zF~tMYun-`fheAwhUjGb~jah$V3HO;uBX<;QOXFrCXwSu%QuBE2Pb3WTIKeSoO{=fk +zJxXySTTq$DvcJ8r<_gM_s2WI`mt2by8kn_#R^%V#uvPgQQQ0o3@pLzS0PzC7G +ze@kI(mp3snB<6!5;$S?T@*0d3zNN3k&CKe{9t=i(mX!vbP +z48KQ9vTqIx2aA^w>@J!rqjwgxbF$}Tx{sD$IluvK>zIrYrJp3iy~C89kNAwr6k*qJ +zMGo`}#J#KAh+a^Q=8J+BrdHYc*D} +zfm}wK7V;#$3Ejdd%+Dc1hv?aJ_(|%v(Hol_sFU1|4g%%EKRlr)_%s*-u{kC-$;enO +zn@UpIlyo(=f8j!~tzurkg=2HpFEB>Eg@Er(8t)#>weGT%WRCRjoj>3>EKbEa8mAE- +zbvT&jnr +z(h=t7>^&6`4S}X2n}{J6(L#$Rv<(R7rWBpF2L^~gA6$tn9}Rpuwv7x__APeqj0$cxt>JwKxDaHRNWdxfGP3chzg +zK;Zm~pdpR9O|*wTk2HT17*Lc{CPB^75cDOJhRe+asjzYpIj4sa4)x&$htErB|6(iV +zC>>$cxR|MmhA5VaHEAN}r19Hh2z+js30UcgUS*{snU_dqf=;EQs>vd=`YvTXP5GT9 +zbn1dwTzY9Bl@SLqJ{E&?a^?=pFq$@Vp-OmY*c>~Hy!C*f1zwAz0ac7lh4S2`?*c?J +z*@W8R^5TTg`-Syhp&>AnYNcA3AT{jG6D1=)`GmAM&@dgwkS)d +z$PQPCx~WXZ3>ufZX|0G +z$tIlI24?G|iV~PbZR(y$irca=672EMYFI~{gPUbfr16%ZK4bE>Ag8=D+58NKW>L2` +zaipc>#*lED+hVt&Dvywc(gMs1*i8nBaR}kpa1*PgIdU~61ZziuljNbmGCB&bGR<%U +zYZIrfn$pLY!t`gVYm;S}$}>^XR}SlhNp>zKa?0*i?YRlDoXKR6T>7JuqXi;lOMVRX +z=(}-amOoj%m~Dx^r$`#T(KXk2{ag^^tZ(i&&|F~e0V&}`h(s}BK@!Wmbt>C&n8$Wk +zCm2}vdVXqrQC{F^bi*->b+deUuQw$%uc?{+!a*lV#m<=E!Oeufalq{Up78-hBGZb! +z#wyxlNCAZ)dJZ#8s@wuUIXP`uO#$;G>NEg*vyq%Rb=A81TO*iN5;@^F>R+Zt9t3MG +zRO|c!T!|D{smYFJE*BCqCI*h&QHEEuXqooY;ZDB_oQ=GN6K$OG`0ed}53$*B(1I@t +z+&7QT?%!h&>f1SM4}Gms;ht2#2X&(;fr=`)5lT=-2+ +zc^FAIxAuzlQH>{zEBIfPbD%~pPt8Yg3-tZ{$s#pnS+awP@c>Nt!DJd)0|@uIbs;$- +z{jg9-XKP0f_oQiGkVPRDJk)YR8%Q>?zw(J6J;?`)GVv~e!?eN?8_zv9Z6-AHp~Ffn +zh4nT@7fd?9Q6{Fu_l@0!i>K#iV-{0>7(b|tWEAY!&O)B_bCH|Y;A1gyyKF|% +zpvmey4Z8vb|le>4#WY7}l@5mL28UtAJ4xQ8A)MqZ`Gj#9}h#aH$|2@iY^O +z`%O(3)CHHEwZJ`HR8t92g^03rDEo>($T(Xasb*piHcMeVG;K=ga&&TH)WL~k0wKdO +ziGlev)h&y%e$&^y1x-ox=Bjn<;u{M0q}dvgxFjeO*{*Pv9b_0>xn7zY#+g`nfbl>HzZPA +z@t{qIl}vzRDMnHa{pYjgke1t^DJ(S*)2LEjiL8Dh2Qk~37*dN|WD7lZU251aWW<@y +zR@4Z-D{urGuAdA7V9~Y7YYM-mfrpmt=G)nPj;72xe6@7S-!Mh?XPTX9Q5arBe63KG +z^oyRiNa~kZMcCBBogI`R%QvQani{&qQ!|nzxa&MDGnF&#&y196>nsOpRhWmDH|@!0_fV@0MsD#37R@xZt*zIW0i%~6=>5@KiK +zY@Jv2(>J$H1^@h!yL(cS^cFYtI!S_O8Ve^eY?1h_3G43sB#BRq1OG6azK924Z&c9h +zkS7qk*_2-hyvwuNog+PHeJV(vdsg*+SD6q$VwB65x`e?~L{SdbV-h +z(4CXxFP~S;Oh(a|eiUkkti`TRaD1+F#do>4&e2+v!=@gnEaNk=-Tv@(U2Ub(Jhy#| +zV>>9c?G-yz;}`w(?W{_VK2oLi#{iuqB8i<4ZMu?!mF%(K4;{%ekKhbzDWwu$@c91E}BHdscJN_Wzl5Te6sT;;b~V+ijK{ow9y!U7@Jlj42XOm2ed_DCUGjF>fv{lMN43lv+BnCN3t8D8! +zZqIQ&_0LOM#4npiZ7n{8Tm1XmRnx(o)5*nv$NBCtYjYFLBf;ng~V|RW2l@j +zKm@%GwC6<^aaq351ODuF>ojdRoeik;1oMKOW1G4e0k^fp5azdF!jz9 +zBTF@(m#LJ!bkqnE$qfaixD8U9&EsfMyA$q^!o;_$SQg^CMgq!FeN=`H=dw +zY}4ACA2QJea4gGZO%jVRSHziFDBF;^l44#F>@8GJ&<;YRIQJVENfv3LS`eXf@&PGd +z%CN0wP}BFA3Uk`;(^}mmCdLhX0#wfjMv@S@&oSH&88Z +z>Ts*|vi0X;wTdI|v0g1%t46v&yp9{y>$q{Tj?3rkxFTK0m0|;Ku>mL7aeBIrYc@PP +z-JOd)jF#4|?mfSv +zG}Ax>i^=M`bai)WAYfV=jG%`V7ApzDJ~eo8lAcM@S?=_RWMDpCcFf7hsGh2{Q`!f; +zXo1=4%sgax_{DB+cFcImD}Bf9Z~pM5K7QsPQwx?MDso~HYzif}H* +z`!wU2x6kMOWs&mgR;JtlmoJJG`MX{iwHhr;_nlzwl>zYn{=fd~umARCPO!ag{OvaT +z{fn-{-$yNg?hh~arbyytZSD6%e;utV?Snx-&MiA_$4*m@!!Ov +zgtv@lj28dIcdx*-qr{DOX9$F3RYUytZ+GIiq~IT2Kzi~E!AX~rM!!p-<{R>H;o!_=Knl3FGRZ2zi4vDONg&$ +zleo=(TEikc>~0v|w}X5!buIV*z8(MnJ%{6%!-@m(b`PwVpWc1;(|Rg5;%8SE=s%pB +z@87(}N%(CFwIAK9@{|079O>Vb9_6zio^kly@u&TlZ$Eog`APn{dDYu5ysG@}_*41i +z_jgUzxlT5d#*iNMKisVUCeRScziSSDjr-a9ip=`;um8Mn<-f^W|I1(h`>Q#Gh{3;o|Lg^St-$Zt*ss3-{?A{>$k|AOxO;T-@bGV>ZbM%HX|GqwwK(Hc<1zMkZVxsp%Rv!af)K?hbiE{1?FGideOpROVQ +zsu?ElX8BXOxH{p8uVFEc_&<;?=t$pXA}r~Uyt@wap+mKQK|9j%-K(X!*O=V>ySwC` +zZoW!?noq;qUx=5$l(~DFpPs~?d%D+S%*3f~wBirD(!hN{;p_PF>%O*4Q0RsCl%4pL +zFvWp~!E +zj}qa3`cAe2-U2-> +zr7Apq@#!yV|9^Gm61Y@beEWwUX5;hnEMJ^n99ofJ)9c3$K5PyY1j#E9FkfBjnztU}guc`q958JGL*;w!x7f5q|cRC(Ev +zPt2|0J`cB_yEZom==uY*4k};4>Vci~{@=e578F{3k&<2HN#~#bWBKPM7V)>g{(ArJ +zm-lb({_>Z<{~cQ8A+-)6N{s)9d6|BA$Z5SV+UR~KqWH@{{m{zC{!q)#8{O+XwXcyE +z`;h*wZ@hp1@#l~FLP4RZaTQA=?pfnk!nn_C{T2T1GB0mFhRVYI_%L6F@lE^20)Cj9 +z^Z0r>zl8Z|Z1Yc_%+LJgUHEvCiL!7NlyNic36&-?A-mNE%4U;wtu%IM!$EyeO=2nT +zh8Y3xLVVCD +zd=Xe|Vz=2NX}n16-rgQf$Y>f{`KXEQEI!G6fY!^#f65*f0Wv6=(wY{cPu&wCPs_PheH-{V3A!OW~7ZC-Ig8+WsCqH3d`&8L}1~6^>s!K +ztc?z#o7`UQXChH4X#*G8Em!7}7ok&yfGsTzr`q>fBqF!Xu4w8^ALtgjN!8AmOFiM| +z2CWrXxJc;HofNJ!OlO^Mv=6R44}m-7(ilUNBm<&uRLSV;}Furo?7SJ?tKat@mq +z2eJV|WYL}PR$IaWi@kMdQ2T)=ojn*HHW(NDPF^ejKSW!MLVKgKee||A6n6v`0=2~p +zHk|F{j&JAF<%11thIICzv#@tWY%tELCJtBZw8rNu+;!uFaLdl;)4#!wf~aC0Cu*7cF5vbPb!4P}XJ +z=v?lROq_g0&63~5d$Q4JTK+Az?(smU3_&a!2~Z~ZB-#ruT(*ytXnC>CbedC20_Bb)b+7;eb +z1DIFe(ZNsB>Z4!lRtH#>(eqJLH>8suBI+5!l9;pG(;*BvgAQM2U@!FmJsJ$o4 +zuK5Q1SlQCQ9-2HQQw`Q0UKVzjDV#-ih|b2Yv5}W5Ml?!uNA3KJa4`8V{&K18oiGMD +zxpsuF9zl>b_uQ#D!0gH$_{hxK4n7mp7W}AVcFcAtU^$sBA=3*uPcr0jG|kaEh>Uik +zT8S59KXURP&?bhny?8-gdFsF`v|+TWEN-)PG1#_3fgX2L47$Y*J~=x$r|gtl%|x9A +zng;4zMzP1RWE4=071S^haSGkutct?jG6HdaPC3#~ppO`35=HMiPG13;#2K-HLB1V( +z;sI_{yAjJF*fucpTj=AsnAL&S_KgHO!=q#ca1jB1pfJteCyc +z^H|pvA;RQL4%EiVu@^OkuS7uSI@dKJZF7{xr}VCTu1jLW6F}wm7W>u?E(v&r1n0tB +z2fD88kWrmgtIH~|$Y^WSL&!ij``Fm?d-K2=WTR8d_bkd9Fom0H?HLdLSITXaM^FV4 +zL3Bi5M{#dN%Gwt?f}I*%0hueWNL&OEz->vPsg{(P37_XMKjb!W$n|X7)bi0#0Zlj) +z->N{f8PXACEb$lSW*6Tcmx08sVN*pXE=U`Q;|DBM{9vmpfnwJaW@kZO#JeJpivvM! +z12$Xg&RQOczUoEYGtg8P*+!Yd=D^VQ8zH9a$E^l6PYJ571mW7I?rwtab};3p^B5*zKm?x!OO@@#Nb?%lM!)+ +zM1Us*z{CW%FJKQab?2>1>|MgyBd{rvdqSb82_%qb#j +z@-ZN#5B_VggV@jLVQV9ih9M6myqZv(pp{Rp{1`KpcqR{=9RD@*lw?=fCqsdexUf*M +zps9uz0=jl+<7DFG?235$mK+H@lafd&%7eI~b+&0VBP!6M($m%Mt^Y#q)@|`XW}fPfHj4#4}_V^|G7TVM)aGp(dD%`H_Y@LaLRiN +zbEjGx))4_t#R>RUIJX~nc}yJU_{`z?6O_m83r8DrUr?uu-eLGGLI>zhz*RWijr9m#7ol@ +z(u3xQ6UQv$f*jF+sxFuHSQ5zrG +z-$}pEjrg`7fRmo`ZTmWD9f$ruGnhl&KfQKr8F +ziBp6-LD81cPR-e&i?_{(yne&&j-naS09+XZ16{&G#pwhJiX3~Tkon$=z2Zxe8VMIQ +zVXmq`nQIz>EiK{dw3>~BVcLhbRTd$H$FfqJaQJSdhO5`jj3skGV=$vlJ2aggQ+Lve +zy}MNNR7K)yWd~EzS+L-Clrb|4f=f}c7TavcVh=16IXJLqyON-FjTdb~9CIL(ID0jb +zXLDd%QLxNn?C4A=Vi2@O%^fDpCxAEA!ORwRAlcPXJ6pG2(J3=;_Siq3kPc|c2D_F& +zdEorS6Wr{LuvRs(DH98mT!ayi88qFc108MqU7%>ELR~8tEF~>mdMta1nKgtgT-%SC +zSd$$KD|luu<&GyFk&wiUMYfXoGc$8m3YNUKXnohYV#*M!B4E(Ru3a!ydFz)^`vspX +z?`?3o$ddK3p-GE>JMTu*m;s-ncyy%}D^m3&hnDUM?g_bWom2X<(*T-z*|;H9bK=z +zU*Sw)R^-#i5AA!i&O~H)o&3e#VzFw%jAFV>WJ(LVzqs1=$6HLmQYHHa5Iu2_*G`8O +zj|cb}Q`2Q)RJI@!TEh~00hWb(5@V9mQSt}6XtA_K?Xj>IYLbJ9OZZb3}#D9kRQ}O@x%QYY2C65_>EKJ0QNpS0ejXOyotzyUK5D +z;|)b$n?q`jJz~8@kTrS8EioAfdbOQX5aDaQReUW|3SPmYhBgFiEBUfB9oD)p|Y*d9lH)p>48Jq +zqKAV{>0~fCW)YfD+jKlS?RFDGXJ7OyRQq@lKo|_>RCIE- +z)^4g;1zq95c|cKYbz*>S +zZ0W6ldwRy^RfSNRD*HOVtD*yatEuAzIEmB`W7~P^wIbN;hcH +zur|S#JlX^ecUULez%1B~AR&hlPd0-?KKbg2NFl&|5Sd3EqyU=~ +zN2$yrfnPI3&s5ojdmRk+D**?CW@!AtkTp^a5Cs`Cq1J(zmi6_@^T(z#JwF0NkRSrMd4MtkpW(s2@96U7 +zvOV)oP;keP*3Z{qj(Q?2&4CHyD`^a +zy(}1aAy|;&Lr-SzVeexl5^m9^l_vHiZfiqnF$8;1FC!w(uK4Un<@*IsSSDzBp5e*& +z#7KhXU@}EiVOxkCa&+ZIc*c!H#T>vbGReq0svV!2fv`q& +z-!#lDfCv#D8Lw%|7QWeZ_5(lpWp^s(%nw>f+!kCSE&K;QNqGXB!}ZBHPx_xNWl&N)G(E$yi42{Tr3c +zu_L26ImE;*;s^{Lm*vEeV~qm*g*j3?*e)s%V7rD+=56wJ?(rbb8!q_EuWWRl*O6d< +z1`V(nzjl=-7K?N?_dPa(A<3>S1A0}a6nRDr5__5TvV;(_0z7SKRKqFX!Ho--uRXZr +z5!qH62P)fO=$f}5KiFGB+`Xt%@Fa$X)M5Vp@ +z%Ci_4#7PN2+GP!bTl`ATLY|OPLNHYfIj&+<*q4p~a_VkdW-&*bGbK_s6iF+0z!;c! +zA8;#$f!TsLXnx$s!6XmR6^~x( +zwwL9_pB9%8Db8$m86E-CIT&W_^qT{nCTfd;C%hUHQLcWSLNPl2#33KhCn%t8HEbZO= +z5R}Q4$!L8D8>B#v=)h#ZSeqF*hOO-J!;kaXP~?wTMY8l0H6|M;+aAUC;W}{vxo-GQ +zc1_V(HIG$WiIfmi=8;(0vFd|Zwxd7UeFt!JJ%TmcKI4e6jdqUE(dK6)Yz;N23u7G0 +z8)-P{JS(2EEfvXZ+tF1Emq`KS2+B&vn*(2)hlqZ|kD5$H2ESO%S$#vO{>D0i@}%5WsFtsL#%HNG2D#%_g3R*r9Vc5q>zpThJP3)2y5v +zI^C8ING2AB$(9!15*GHPS^ja8SKBVptJg1 +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 +G2Lu4P?zKt) literal 0 HcmV?d00001 diff --git a/components/resources/adblocking/easylist.txt.gz b/components/resources/adblocking/easylist.txt.gz new file mode 100644 -index 0000000000000000000000000000000000000000..8677476ab4d6e78896c47954a53ef8f21f79a589 +index 0000000000000000000000000000000000000000..8fb4be557105111afa2d989ac5804ea056b5a628 GIT binary patch -literal 132650 -zcmV(%K;pk2iwFo#sM}-!17%@zd2DHObS`vwbO5xyYm@A_aVYrx{EAsgA>TVY^?vKd -zZ11sT>uSUHY9;yVgTt->NsvVG0X6`#iWRf-+cy($c6U`DDPpBFT|goMfHnY0pa1-StyH@BBl)-F-L6_um@UvYgTEzeC}_5P&p1 -z(}3T6x7vO8wJ&rF->vq)*{r_%_rLrW(EjPxF+n9De3y|?e)r${E+dM5mkavZ(>5KU -zEkOJJ`|rP_@SGZ+GjorbtDC}-FEf(O64JI*%yhaTEh(s2{OV_^#+u5KQl$$d%Vosprzj5ma}KmL5>BI}^va?VAeaeOOsL8PQgM#wbL -z7!H++0ouYO{3<4CLtAwYdDa$~gJfD$>^5Y2#dS}w37Fd>SwVAh5%j;(=AbKpys)MOq+k@ -zSr0w^3rRSy36ytz0t3i0jUY>YwU2S*Z{YBL)o5NsLN7b}f@ZiN@mENE1hQ$KO^UFMOiIlhmZy*H=M$hsOs$?RY;d_t%1$CQUO>c<&)6Z8Tx+^SQ -zo0AtzxQ1R_LQ|cl#UI|1mcv;5$~@DKr|grAr#&tS|LBYkwB{YKp?Sf1QQL<~pf?3o -zXF01I89!h84h)NU9Op!ml9}3&C9NW`Y^s!t&H_bRvQ7X!r%DCDJ}G>@g6(Oaj9xhD6q=CIaqJ!c?`lK)@!e2h$`aa0y}2;1%H6K%$zn*o3DV2MDtWBA^CtNHjOK -zrTEOQ^oh<4m`R*%0%j!p(YKP4Htkzvf+_D?Wr+t7fwf6n`OaH|M;u8(&7x|HCK!8A$cQanYh&X%YrPdOwh0UD?0%=EwIcKZ{|9kmYk&& -zCO*oT651B5r6$dR@t|~xGo}PaWMDXGIwvRydRfkF21nBs!SjJj+H^-#`xHeR=%cdF -zQM@yCL1<_Qa?=-`(5pnJKwmIrT0~<)Ru*KJr^GRV9L!L|+ezlE(*;!~VWr^reuky$ -zGsaU=*C4j%Oj)eLHp1YQZst)a{7fUz>$yv4$TH^kOUIvnuBNAFKJ7PT08wEwxPn^fmiOl2(NP{*q~o`1Sr# -zr}gV4+|Wk~Z-R=2UG8C^Z9z)9f}-l{$iu>0n6qZq%nHq4up!jwO_O@yqNE)Ko6+6< -zEy@wy5g5&!nU~Q_(GE@u6M@=ZJog?(soy7}fn1P=u0!(0r_MfQtM`Ic -zJ+J_)3L&hdb!QvWu#hrc2AYa{iCF=Y(ju3#oxN!Lz@#Q^*DQ(aVwSbJ9wAIO&`wHJ -zNd&vJ6lO?|01mUbO8C`Ha5HJ}3pA`>2gN`cu)8V0O$$N2Xn%4k9#TMuE`z+y -zq;lp`rH8pe$8@Lzx{XhIRLzS`Qc|BPSqrQps@qH5Q(9++N}9ru5VZNmPMO0Pfu(Eh -zlzAzDdHn9*s513hj)sy+^OO?9`?y4{0~1ELnsQ`-j>Sv_Eo5$nHEPQwl3yR$E$pog -zvv4+yXY*&}W -zr@OT0^fD5{a&htXj1fDJGp-2Odn>sx8AWgY0ZMX{z@g<1sx!88*Xz}S?K>`4=GXn$ -z(zX5F81O{2LM~-$)CH*M!D;QNXE)o2+6l~D4IW$ -zju=R8Mgk1fxl6dA(njknBp>S|?-seK@ZypvsV0v$Af!bwy~;i@jK-wFf)Y;p8!L_0 -zvWJx&wI=6rCiEBeG?SL-)|x)lfP4>?75M1GFqIezMv`j(hXw>5=h_L~)d(%?I%>29 -z=|<29d7HLxYBEMMlq0aaX3{kSfkx4m2Nb7xz^{2zT&e%VByOf@r)MgGax!Yn08;HD -zFzJz`z+vr7Ymg-hn>NGOw@fWGWHvB*bs+P6oicd;j>&&S4X)#?wdET4I~4nv8@#4I -zxaDT*4rZYY>xlu9ninfSSJiy+>Gpcl&|r7N#AuV^**Xgcj~)(Ma)s0rLmcB?&H3)0e=w*9P+-B23> -zf&4&xF6^&`x9~a>c>oq98shVoo8lgrmF9ccr;ZulIHp`bbxKCb7n2%R9z#3$=04?s -zAdCvKP$eusfawzGx#^flv5HO_t;@FMGWu10Ch9-$Rn2*&8Ka#eRR1oKpUVLZ71)g8 -z85u3I?6kV5l$D)H&uYywbQi8*oMFeJy^Te*pAlye-%dkXuos^(c4NqEbIX#8c~PG^ -zyYzXxKi+&ME|@$By`w%EgJlGd@Z|#94Vl9_%ES%GxGz!*HONr{MCj%e%_QHMRv7)k -zxZ}>ITawIxv%|ZiXKiKyHf1)NuxdX_TGwVQ)2yBAx@iptwSHGU_-X4?#tmkWcmvWI -znYrr|bT38mVp}s>SSS?K5_HOYsQFblA{~L*6m8M;HyM1Tw1=)HVA1<_dTHJfTgr$~ -zE~SV=$!JdcT7@jqr=20288uIcv$Y|N02r=uxgk?fo$Wi=lx`CA=`7Xb1Ie?qfFS*E -zRJXyhmYl6Iq_MPfSx6iYJ4Ig>VcSi&88+d9;^J*>V5>j<99!NYJtw`dZ6?!ZV8mjj -z5$sy2K(!NAJX@^T!|q^Tvwuc6$UH(a@6G$9rX6cKvqrPAB_QSI`bg*SAWqB37b%tC(lZE90oXokH%rkGGgM&0V -z<4)58V -z8~4Q7IAF$!XOT?Ws~QeupXj&0qm@eRrcP9Njxxh6&dlS? -zq{YEkS}(r3r} -z2JAE&cY>XShKQWf`YchvXq(Vs*|fm|(ax`?{e}}Iv&yeHyMLh{*zoLZtLuObUti}O -z3k|t*oUxcK9b+-=13_j{TKbG>(WOm|1R1FUCW>8Z>Gi9@q4ovZz9@X}+iNq+({_^Y -zu4|tMO(Zo#Y&MqdFE(iXqA^oV`kEy~yHC2KiwMDHIt(H}64x5^P0E=oB6kYW;gL{@ySv}l+i#nm>Q2cDTe963$ -z(&ZF&DS;XpX3NeMlwFcIPTD~iC{*lmUsciU(!=t!x_HNK6fBxPt<#r~6EsRo+fp`*ty)PRgs6Xm8YNzyVkPB4PcCt`_joIV~q -z7;8}*4TT9u{YBI4m1TwTx%+Yj&~ApRHJ57krc+LDu|5R{MxH3u7@4P0A*ids=#?=i -zu`+rSqNprv)IEk=tznhCYZh@w11TSs4j{}5EfdHVtqAI3zc -zz_p8LJKyk`MX!~_GfRY_ld@(zXB^?vLLarRnwGog#~MX|N+fv7S^|c^f&llk`WFl-A8T^Bcr?M{HdIV&HedFx -z=*1;aZ&GdAcqXA*H8-z>Q8lJDoq&<*9Ul#uh(?jF`0+btLriD6?nFR{L0pVq@kQbD?Xd%e;q5|s^hQ{Pe -zA_ichX3LAb^~xI1g>gy95OuX8tV2hOAFT>rxhiKstSt`@t5{w$8_5K@7K}P~Z~^2j -z=}=G=JT!||D~CynAYc~3qcUF$NQu;aKxh(T6BIX*IMBCI9JS!p1qI6@{I@&E2+FQx -z>?Mgn+BK2T7)wfhQo;{ZBh@^!6VRsimo<_`G~F_IVIXW1dIie~=pMJ1q7L!;=1IEK -z-Yg)-Q2g2xNklN&LJ2HHo8V>5Do;6r_ZZw~dn8HDW<`^fc4JoJzO`cdY(Z#C(mH1m -zsiWEhRFk&TET60L4J3?n1Zr;YLE{8eO)GWNX5Dz$tSly3b)94f*U3iv9Inw2$(D4e -zKSvObK6hZRL^+jBgTatt`4|CIpN%#w!OxymKLVCwmEzGbsqJ%hBka{!Z4}jP9`i+0ym^e -zFninqR7S>oc?C1HHWskq*K5nThsnPFo6{-4F_lf!y$MK|gASI;Q3jk;j2$dzs%nx* -zt-m4^bi2H7fp-uOKv7`RtUxCObG!V*oTm2IKBXwkZ^avwcPum68smNnChG8bSm`C9 -zbrGf?V6yTp<2th`3(+0}n*?bA&n827U3$t-KVv;$>hhje9 -zjvZ-fJ=a!uUh}JYnpJqP*%St*;9~rdWWWA$MvWx)yhLZmV12cP;Rc8Y3*d|g4)Cv6 -zVMF??(>e>&K`WlWWsL-X4PJkF~*hl*+NyL>KKFOTy%EB -z@@y3Ef|BL;>utG|?~d(@$2p``#=i -zuOu7SPvmwc=!!9sEEj3x5KLslLnPdLn&~xV)%7=+z<28&J%qRtI|Ab~3+GDcB5hu# -zXRV-yc$pmF(mQZEcJjq;15cdwZu@lNpCVvoi0v+03>7nR9JLy&a>2T8yQDC -ze(}=b#x{uN-Ul7%IFTm7$V^P40^D*^N$dBs1SJ<7^Z>C4f$7bN411xeEA((Ob{3_n -z6?W}Yl=X8QpvaFAfF%oQP9D>_J;1s!S+gAruklj<`2DXX{0Bl_i64LUbIi8i?sTK) -zV}?h|7W#ad+oUo<)C(n38-14dbv@I2PBuiqZ=P#My$!PfHG(r`qvaN)B_(CeM@0!o -zmhnLWZkU5^@KF&cFkQ*yheZt71L;7?|FBqqLIf-K!y=vn>r^&0;!U9MfF_bVoZ*CHJuu~^~ -z?GiJ0c){l54Gx{xdrfEDt`NcitmZzobz4f1S$putr?x(|^Qpa09enD=CC(r7EK@dE(lXhL3@?U))NbBj_*LWm -zleiZE1$Ll)fPl>-($9bN$zMy*5^7MT(y|BT#wt|b{~FaR9eW02q{!TO!)(}rIc=HLubc-N34t_LGM>7XM`nUPf4fz?z -zcfEx|mpYr29#xk@81&J?+&s9HDZP1^t>FjNrRF|mOHB`fZ8ck9I)qA%b*h -zAaZ91kaucZkn>~f+z*q@Kj&`pE|V$FXO4<5zx?Gd@whjdYNR$fIb$tu=-M3ELD_iT -zO>%peGyO9ebaU!t%W(4rx8QWvUDbmdw)##2({$nwfa4}YiXlk`Yz(lFHtO;0Du{lP -z?tnSot#=9y41>N+C5&RlUAMF8t&RrAowQV%bAT`|=1Ca)_kWu}C_H_IAlBNQy|3AT -zd5nrf3(}>{(|p*N)QhA`5omj9Us{liar0i$6SY+bwx!5I)-1@J(2*Of6e}?rSSO=$VE-sz(KhAVRsO-Ns76D)7q8U -zYSW$mlMV*NqCfLNw0eN&&>PD~Y|c3aY!>Whn}UwoRK|<*SwQm~1mNvtp{4z0sjn<4 -zXf>cq2%E=H5}O?C@72E#W(-x#^*s#8$5LX8z5)%K7c%)jxpBjQr5XB}`o@&}g%l=n -z4uf-EIgr*O;%A;qq}6jNXl?-}5YT3@{{{4_lxG{YJs~?p5maw&yBe|@*Cr`(@HEZ1 -zJZ&?#?dCv*=v>k~ct&bgv`s+4cnPcEEGE2V?laL{XATZ?Gn;f>pV7!> -zGv2F2KrIbpq~#5pwwkfwt7(T0Jc%!jpt?7$TjKGmKQW%{JpXEUB}_M?rWV7`#qv9B2068y59=qAeyl4IRw; -zglRB$toex#AYi#V1I!fN7#Onm^)LTyKsw4)->YZVV%#3ye?m5QGUb&YXnO -zZBK?E91TW8>e`i~ -zXm~5e<~GE}PUVBrmJH@O)6%d=6$ZChSmciKY}OM|43^h<$wM73zGfL9xO65_KW|Vl$ryNQy{DYdkLU{ql*%;TGG%70G_7G -z0Abmq$|AK3DS*%v237GFcv}u6|L{A5j$-D=Un~}v3+imr_~Gbn@mn30mw@8-ThhpY -z3r|D~64XJ>Rq&vpqD^Wy@)sW=7BvU;@xx~p*Xi(J=ru}5=Bs6u3koz)+i1^^Q8TItthp?4TmB!T+3Tf% -zEdiUhaZDd$f*LI(sh&KtXl_F@bSiJ2;PClYkc28tl~3{fOy8dM3h;pcD5`bFr+Bv- -zj4;G_fKX?enuw+Sw60)*R}YbME=Jyqya%34r!^js6stkDHzUp-80+RKwOPEg41ss$jnSsTq5$#U8Djeo -z89g;I2R)i -z8_jd=wtVv7UVvqpV7Lzx#2iL)E9$|M2N>=F7yz$%p(7sg;?xftzou%gH<3Or1swn* -z!jumBH@uITZJ&qF#yW|%S}63>FD!St@Z(NnMeY2(5)2*hr_SOd5U^?zlH)XqY{&$y-gJ -zfKWRvTw7WH5Gl29CO}stdJw+<@fY?!6;Nl3dZI~tjK!j^^f9=|Vj^w~L7&tC-_|vg -zV-uioy~h%ntT7(0B_Fne_XLrI#fDo{YEKgu^EhJZO;0uAwd`w2`rC)C+>X|82lsbLf<^<4Z3$YUi&ZV#9hnwxSt_b5q*%*>SNp_ -zoe$~aMf~`2DF>k)%i{M4Z9!7fL>kk}hlqf)#n|M6ug#8@zOp;d&*=kv!&rg!O{Kv* -zJl@P!c&*mQ#o2leiU)sO9~ESkOrwM!VVc`7J|eU(wV_NO)_i}DfX4m!#ocM{Ih}I5 -zw|K^t9GR~g)dr)v(={K~ROwtFo^o_#=-4yqcj%z8&Ksd)nI87W8ryS~&a5-$32LSF -z+bf@&K)#RBrjqzwDN15oIN6ZVrn9$@Ene*C;r8S&{?oCjU-zmxKW`>#qlZp`?M^cj -zUicEVGim)nb7tMwW9ED#U;p{>vkNea28@V}jiSeI%tlhDk4ILE-Y`)(aS!pVWN2t% -zIPRryx*`bT8_R^Yp=pp!8gU%?oG+Z@oJ3AsYIq6kgkt -z@oS5x^;S=?|NIy7CsllH{?PtjQ?J4yCy$V!<-h#?Ys0<;nas$CLdKWlzE13P`T!#q -zc${Y+2)qw*^)1R;M1NxiyzBlMYD4kvYaP4%tiS6y-jOYu2l7mQtKhSURiCgF_i#Zy -zPy5GscTiQ0TV+n=sYLP -zuyHlPn*p1jyxl5P&gjT0YeoC%Eg+QEiAx>`s4xiAV7C_0KbVgz5oa|5}NABKq|Hq_q$A -z+J~q)>BL0Tn;@%)_`pL^p@Y?Ky_c+Ayy#(gAZ}B?R~FDg4fq?dzpe3jkM4OL+!%(T -z2Ky6M?PDF%?*zj+^A| -zQ|Y8Dl8n{$N2cop3y)QGpPCvL{f49Z6s4M91#Qz(>Q9Sk*U}?gU~;5p&sx)WQmH0+ -zhSN1VT;>Ui*%UI9w^{11DLlfg-91oG__K9BAm@PvP|}vd+Q#pSJR3V(sVm!gxU=$e -zd>2!Rkxb8;&(nFG1}F3Ta@rX0{S#udXUO%bWz -zy*)U~@+lt4n&+Zd@9V2?T6>79Ph+LybF8en+lM|xiEa4DECdjXI_LrcTAA$^MT4L&c2db=_9 -z*_a{HH{g7RavzgVdj5C$;IJwKV@I$7ubc;3x>-x<@tcDM3G_NpZLACmzlQVBZD;Tm -z#+tqvRUb9~pweq1c<|+Va)(wP&^eP${Zu|7;S#)t26(I4-T4@+PpG*L#9S;ibAA^p -z7WONNAJ^1dO_PA%L-QyKD_dCeK*dlrC;d9k6qUocWPiw3`s`8)) -zMb}zaKWdPgJ;A3sece_!Wn+oSa}NS&Ld<-E>j?(8ivPntb3E^ku_xjgGj8VE(Z6`^ -zO=<{+*r{>`3Ul{Vuh17XxLf0NVCTddH=n6Ar|99y57233|`pUDaNd|9O4h@LBR~C4A!st3!v}QxBdl-=3D6-G2WW -z+P%848*XGiLDSc0wVD3LRMt1iB-HC2zMS(;-JdJTa(+iwz_T%tfBE_++_wD#Fzipa -z6(nw0{Qm2|vTsBd2KgH{EHGe6_5v)*LVsuFttJ5qb@za%jXg)MjrZz3dE0I*h-^M} -z!@)%S=`Y_rDi-g9Z0_;B9b#rlepYE6#M8#3_ -ze@Yh`?^?`k2=Wsw{Qeym{2R6(oZk!srp=2Fu@wQ -ziNjlVlTVBujfWAdGOyVU_qCq1DdAm!h~~wb; -zp`TBCQSdwGl0DT$07D17J|~?kQ~GrA3=dHk?CH)n?*H$amTx}6fmK&g+R-O={6}#Y -zk7-~rZwB9vB1Ke`Eu -zKfd&&lJl0h520dJ_mzsYek8+nbSMbTv}<&9N>4vGL|q-2b>wRJZcx2=t}g44mNw^C -zBIJi5=O5P47at&3R?MFCLazI5G*h$Jo@M%@g?K3VNxvc{PEvPj<{OYd4!ZG(qdSk~ -zW9Gg^!@#O-pHY@^cS-}QKSfrg>NRQMg^zvr4J2v!Eq>8NmduBkKdGSa_G@~{(kOU0 -zc40lAiw~-QLnVxYH~PMj!=KOl$O{6PT|MSKjg4qLPUZr1&1bFc8A@rQc{4WnbCF*& -zeVt);K7Y;rYR!I)>i9hrgR`elbMPB%;rGqh@M}D5{-!`*l=uc{KSebK -zqH2#u2cN -zslQ5B>16mks=p3GcBD0jd+B}Fl{1$8r-Qy9yZBJEZt|C9!74dxSeBW~K1?2L{x5h` -z9@fe@i%&}-nKSJw)H*6GZTbkKHroGrmwdkj&;q`ym`sH -zIDoVvH<%N{VEkfL3~$)bw*Z{azhz4F(s=Uxr6Mz#nim9)Wp1Z1g!1M6DFZwmXFd~& -zVSQc>>T~NRz6!_Xk7oJf4{xKpDCjNa)6?fL4ekK^HJozq1elL -z%SF-SLlgK)3mz(2wZJjyN2Ynp-G-&$21_&-${nKXJ=g-Psr@u?q>m -zMW~DB_G*ObWj1f`WHCr)Rq2z5=Rca?KO%d>`zp@ob@or)Qooz#joh5w2urFXc*ml> -znnb^(Rkh8=p<5TWaxd!GDf>6nb=#1CXZ7&lZ>sp+|Nh;a^s3ZX8`&nT>~i(q_UPL? -z^wu@~ZMAsY;B_^)$%&jB?>xnZ{6VPCoB0oOvuuj|A|WAp7LLqRKS9u -zg8A#%!mob(#Xp#Dp8{L>hyVA#{|~4uvwVgIF-Qlnt^@&IJ->9n{6Bw*7t5`l7q6ce -zZ=M%#zd%p=n{&;9tS|+5iPZGl7X~h!HuP~JFsJ?tSgdJ@8>Ue3L(48~R*<{iLkG0E -zyQ1_<3kpe5L|}8fRzp$~Jo^J)N3`CW*71rldQ)Gn6oZn*^%m+Sy;8jW0&``;febXo -z+lSB|*B@l|V7%{3-`S-D??GwuqY@r>Y`;kF&<9`+Ly -zh=H!Iuh|#8EU=~uKP>WtPq#dzCH3iqW`gCD;+zYRWCdbPhsd7nMcMGEKz^YZVAQ&j -z=&GWkZGoQ16i`=su_^C_Yb**$-eb2+jaxzLALJ -z2Qc1_dKtrT*7Jt`K)R}7LYQ!XA5y5I-9S2*(S}Pr*ncsv_5%gI*4!1Ac35O -z(oWhR6ovlGi{ghXXqY4KjoY=PhDPnkzSY@(`f0gb9C^N{Uo -zv)j;p1le!$5$OfE+b11N%J}5I+bltn|*rB -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 -zF}$rgGLGsD)YnCvn{SXorv$0j= -z78Sx!DvF1J6pK3x8GSx%nzMy98EcYE@Gc3qx03|@($my#xGeY%u%06Rd$zay!NCaEsR -zj^=dI00YGe?An$U5s<^8v#turjM}d-sfC*Utm_=JuInDkfiK@OszbLXv{8?E%0Y0c -zkITjIE0HZ%<(NhU0~WvHBpMtJs&oxA$YS%M?(m{T(9~5-D8MWdF!TwSDk?%P@k&|$ -zLLKyCpm7JgKJp&b+DJ-p{6Q~hRlMl1EU=$i!Xh9*WMdoI)F2dqlfCw=CNz*Ee&blm -zzM)=>MHRsI*T>AF1Ddv^SEMDpd$bF3roNUeElY|v9E@lLho1NL5=;ZRB}G_m -z&1&bFaRd6ENYHMK1w=z|fq)WBY5T6=s>Mpzhhc083QL@96on1g6R-#)<!o=EvRsMS@zGETJ<56* -z+u940rpSswBu#O_(-naX8kocx&4YTLd%Wd%+Ng@ -z?UJ;>ILe%sLakfVNjm|65P#s<^H -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 -zn>-~|t|P_Fj49+mYa339C -zFN)XGP^tZTA{sOn#g0G@ucD0)1tr?CX)m6QfQo=Fg`OfYB{?Voow$fDUO*7T3n|`R -z-k>As@U&{sLN#Py^csWkB33+z9*qc3(;2k5>(q51bhh?VIF~i^7YpjF`_QoMaRoKg5DyA>VCb5%l%FUuae;1i(~}N -zyaxTl14kaQ637ipO^q;!*N$HZm=$BDp{1T##ut*YhDsGO7QZ?2mqou@<8;pphGAH9i#>} -zfeechNi#4DX{@pLe9Ta1$CHD2Qrq4n?~6O6aS^@FYjVq8dvOU5e67SCC?iBbB|XNf -zL^+VwV6Ws6n*kLbo||GQNYoc};Ub&FKa+tGI)FA~T{me1SdRXlP5|Kq>V4&$;ub{Y -zVt^u+GMMvPMlfyMgC+pBHC_kYFtDZbxKf1y6CkvwXWf!s?{dI0B$25G>TF%f{(8zT -zt7QzuhomHWA5}*>cMoC*vjduT5RidleSx^lGM=2+R3)ZE_ClJ1m=#us*U>Mm&(v -z@z`-WW*EVvBAlij?@2Y*Lls&cn=#r096JoW1_H(FwF49w5FX({MwIf%PlE-5Vx%|C -zQkq2+Fy1S1Ax-r3a2_v7tVG;J1f&HKHnU#t3336GbqWbUtSO%K_6zsYyujELgK}~=43m7a4Qp5vS7i} -zflxdGg2E&`qRmEq(Gra&r@fFAm}B2WAORf?G9tyJ3?eSa1%#*RW!#P`Nv#;guP;qH -zeCI7oF?ug1iLT9};lbc*pwT`pqY2de681-ce#q#6hr2L(FhWxLA|{xB8UsQ2n9m)7 -z1&+rncr?yJ+uBiI1lT&T`ek&t1}c9PwBCmD7%^jLKNS%~-=0JMKf>O1%TiQ{7JixU -zZ`R1lx@6VMd}AP>q9_XDWj+0giE9~QcI|U&_wFtNmKTH|t}`Cuu_KHMYRpl%V~7e# -zy@7+rMvscj@z$3BUBjUU8l^VPNP4CnqO_L7v{NEtUyU#=1MOPGz`aPx6swr{$&YV{byTiJIO4ZDk1u+(Bpq6j -z6b?hI-1XEf2v36W>l?OM2qQ{T(y{#{-+xsSMGJ_$pgq2A?se;@#9Lg!x67lT8J#Dq -z60}B0_Gq3Ve@y7z(1<2tGikM$ml2dmbG}925~Xagrz!Dl#{L`Wg8ns+fcz04MxaDF -zsihd&4?);OkkG67x_(@vn4YYLO?zI8X0xps$0^c1*pQ;F8W8&#TLu>(+QznZZM8)h -z4Yzx*gtSE*TiKDMMDZPn?bdWm)yK@&^stR63A8{ok6T8< -zGO0Y>+Sbt7A%8^jdD!T97<$KCv>@04&oas{N7Q9dHLwNwZAxI`vrL?@Afbo0oGE#m -z2ha*fd3v@bH>ZJHNz$U-GU_4=8hsKxWM5=MTbH7Pu9k8-34{qn7DSeVM)ml}a3g4M -z$hUv30;Eg6Apqw(-9WJ;5;blUZ`GN13Qc+xWKD8u=F3~%3%mQ-CSmNBs}2XJzdh9H -z@O&eo5ZQ4pdN0C&Xb5POc0~BB)jDP0+Ae -z%l;_=9*3tZ!BUtTHklG_gLu0XSdnMYiabk7IpCy(Iew#eE8Cp*?W>xFHNAwi72> -zX)*E7!>;7c3DE=&m7q3Eh(QxW+@ge}&?V8yis_tQ`Or-1#=Y9t$1roWylzSS4hew? -zOiHnjavSEBRH8gg@^-o4bkJ6mpAf$L14fi5LJ@KZ5m9o;AwuhJ^D>fHP%ICExaW-{ -zle8<~T8mI|oKGZDZo2Y%Wg;yfByU|ATpH;Gq28r6&brF*=TfIP;5*CGjCs>XIl1Kpmj3J-UKhL?-Ls^ZoNq0dEz_1 -zh&hqwNW#}5o@Nh7%%>UQak`%>$*rJ{eruZR?>0Um7hlT+#HYXcENd-)S^%Gct=i$} -z7UJrwZ$XUc=|chUz4d=_;eZBZ)!iSDbW*!(FDTC(QSpInq!V-!ZRGGR_cl14jl%Ve -zo43gAETMza9bXNW~McAbMeX>!ZG -zClJ31`;As~6iz3kr3~gAGkqeYga;S -zoLL-87;nrfSa1`Em|t}yT9YYdr=^80*cRH4vlT;MX%tf?!ONRbz#8fjq*;)vnFI$m -zgj~dDctHlQb%;-6(pXTu3MdkkH#M*?F0y?dz@&Vbj( -z2yGB22l2}?+Y5m4fn~(&A<${T-WpiuEqI^i))FH1LeUos6&Czr<%UZNA*$s_72OCZ -zIz(ItNMi}_8H&;OxOX5C8qiP6QF1Qztv4q+2__N3uS>+r87U*Z=|s;1E(YUr5ONy= -zXhxE5cOcaVNw=p3`(4QFH{!KBhH?xZr)^EugnkL{_>`X3%pwB*0It -z?QcD#jF(wIi=W!`wUcxj6f6?euFzxs6G2Og380VZ6qx8avQJ-oVTnROJ2ALjc9cqo -zc)nFhNLO?LvjVa@6tN_V36#F_MRale-s!+L*`g9+*;&{DxhhB$xegs7(?)7@S=-m% -z8K@ii8UWdm@eDDw_ukdgiG;(?w0UsGefc#>3�mOA~HP6T6F -zlH{k`C37sC;Z_C*&Nhu0P7|KYW|AmDHJRS)`aGh0Z|7()NM#ypBP+eq9go1XK4_}BPt0!Uk8y5=Zw_( -z_C)E4-bZhy?pIn!8aQX7yBD=UXYNrcfF?!omQvfkggnF3L^}}Do8;-|fK5UD%+r^> -z2rJ+5kWYZkC(<`w6uRn{K~Tt~h3BN|GsWRs9|bWLLsz_AU@yrtf`W25<&96l@zxcJ -z{0+d+Vm>)-8)C!?ShOqHnvQne!UW+sX-A(iqD46o*A4&#ML`*(0MSED3cEyzdL(dYgy6WFM;zodj4=7yhoB}H -zw4;-EBE{ZenH6-w6P8PMX5d}}4+Q}0;%5aJenr8AyVWU3+*xXQQzClg?#VFavoinz -zvCf|*+r^+UoyKE;S=+Dl5X+&m!8iRS0r4y@F_C`at@D6|zTKP7FM6rz%bAfUq$-L> -zBIPL*A&a=P2xX-nsH(@5$*y~Vit1g+ -z%JVoZ!@OHPuZ(@95e$bTU{Ipe5m9So48vxzz>IT<9y$;KodRPCZLV5*f9pK@5HFZ~ -zP-t~_mQgN1BF2>AOdW4T()x-OP8Gy-(M6*4j=)`>g9uZ3%(4w}_w5AFX};2>W9dms -zc?g1Lp5h)Ig1rUyUYc5|l+%ceeo~IKmt@;RCN1hfFQR#n#5)Pxrb0MQyrfIWqFq@} -zZTJ{r1DF(vdtNy7qN`}}5K}D(R!fPT5uGs80lRXlMA8}2p>X&UcDBZ`55u(R#sg#v -z>;P~cdTzm*3&vUPs&rFH5u&S!CDAq~of=`YVlrLH3sWQ$MoB~lC~fpfiHmop@n)z5 -zVUjSuIu1X@M-Qrh3RBjIi|eG-H*-?sCcfHYpFxj;a;8~6r9`N9lUU13+taHHqguftyYP|u45l@= -zbfKbil!p#xp)Jqhior;9APz8yM@7I9V#Z1$5R(DL -zeJ@D`T9M52ayx(E*Cd7Mf$4Yv1k9A8I*1 -z1x*CW95BA3$f9Dw_bA@zDA3tJ60V^Gsw20s?yuIP3Sob}h`EK8TGH8hT{;Sf* -zk3X%i)aUOr_NI==^nUIb^S!FSr|Pp$e?k}jJ-~&zB8h(+WA)Dg!|~Y+)uHy1Uigmz -z>pcAG-$_O-SnvNBu>Jb^>tp{jeSSwK!oLRS_t5!e?mvDu{~U1q*vHwJ-;=5S`4%5P -z%xBVnes{FtfBkd7Pu2gZKQ71u^P%eBKdK)eS3;-xFrQVWzW@5klr(<)9Nb4k|5^We -z)#dY}Mt!q1#`ww5Hmrg?jR|Ni*rfWzvC`K^z`y#I5+kN3m;h)4Ur4F&4)zXLwi -z{(VlrKHA@Z|M?6*K9gOiB|nyEfBbVm_xIQ5Pp>|He8-mk$AEbue)azGXW6HJ&clx- -z|7?FKMGx`opI`WQ{YSt5`Tm<{`}6zz$A{LxuXr}|_r0=zKJCwIZyELRyZ`(i_x8R2 -z=h9S)*n3IxxPC#JTwxXIlH3h&jYtrHKqQqMq7N>lt#wjANA|I1br{X1O|=?DfdnGv -zeaLZJ+O`+OgNsL_#qr8$4Xo#)nO1HM(3&Q3`OzFc02CLf%ZH#h7D1}DG~8cQV(lK% -zYMZuOPNNt=tos&Ue0HTx!jcnhDY;l; -z;wkeQ6?=Nc8pXyuUo`fxbWW~R>U1PQ~7@>vDmp5*ZX5hQ#JQ`g`&5^lw3 -zT+~~a&ivGi@+GVeAXX(K=vi+}&{5NfRLLLWeL&O2+I=NZoWwrR8FwE?{eaRD%M^CD -zGX@yP!+Hx!r(VF`TQPjC)a+GPKg1htCq~ajsD9Ny)SnNISu<6W>SL!f@e0T{)$AKO -z_&mvFeHWOVyFN|7ee3^yNa&Bh-~asn{pZSiF#1RJ`}4aNv!s9h{%OAd`Od3Ln|(4n -zXJi>|tD#EczyUWz>Zd7R@}tr9=-Nl~=Q~3lqi$+XOR^?;ngI?CouaM}OS_3THmW%S -zf^KJ4H;n0!NnTg3Hnr_g!b@>*o -zg8*eHm}0|pOTH^;1_bQPyt2MPQ=iXgo9 -zimgOkGFnSQmCX@W^Wr;^k5(aF7PS>_v=Ks|MeI213I?20-WfN}2_Wh5_O=!72YVWd -zwuC6&w#rCI42?8|7+V|xFeMgaP^kqjI>9iEU7xKUR%)S3gG96EL>qQee1KXdT^w#E -z3X{n>z?v?vq}=%%9rpbbeKu8AK7;Q?1MUz^8EhiU?E>Mvag*U77IYH*BFVk>mH}Ie -zHk5@z%M*O$YfS$&03|9Bov5lK-710_Yb&HUq&L)=aJLS#6sz+hUHe3aE+|e*YX>bo -zT(Sd3BXy&|$gW#?xye|h_FnvtD5N@GB}37E=I@IO)$lTUg$z^4vn_F)v~<8Y6O&gT -zNIe$wk5GWx1FUuw#5Mp_`MPZrSwl3o@3q~gSp=idW0#W1NO#P)K%NWcb%5h?A+_kG -zYkgB$4tPf21o6W_nw`ARE%cq**=OFQr%4k=4LLU?SJ>kDk%ok41bNESo6q#7l*Bn=220zrS!j|#{dDP@!F9*YiJyiDRKu_WBsQn&@U7;-<3 -z3UF|OH(SKY4OV=|5p@dz-oFTLIu^i$GZ7T&%3^pbu2qM!2iOO~Rc&lo6i!D`FQTNX -zjeW%|#bJE@J3NUz9&V#EZEj6cV)wKF2<1B^%DOY8>SEA9gv`U5vnGyvK -zui8aHebr)}A-S5DX8o+?eHG6&^`iTI?)`kZ5=?_F2-urV&~n@P%GNgXCT~gV@2gz( -zu410$K4C>=PT>^E(fe^(2vDspG#UPBgxb>v-lWz0)%_oQPwJRXFn4(INEfO7N;M!ZYSwrU#0)>FkLVt+`>*J*`xIv@*g%~^_C_*3GVZU{Rx#d13a0R}V(1%)%2DxBbUa*HJ4W11S -znmlPTYS5tAG%1R)7e%e;jDqNAP`XONj`Vaf$U_T5qHHBNhSJ-aI>GZtGcq8bc8OUE -zQJ^Cph|a4p-rq14hse_8o8VE%lcJedz+uQ=9)>h)#OxUPS(C7tQ;SsC45=87X+TPQ -zha+4JXdtzzk(2@FB?o)<0Il|{SFCLw5rm5{|_lWr<>DRyng -z4Bfh<8<)yIqWhHfNQg!$12|tp6d8dS0Dt8zP!uNFBGOs89Z?{orF+}kui^QtZ#M+x -zD#LxFi|lyVolpkM0_6KBwRH4t&X*Fs4P8d8fd%HslB;|>+0cPRdo3yuzKFDE)xGV4 -zY?s`e!7jH?u;f_5BM&r7Pajc#>BFAeS`r>i7{o&_CBMVk@wNw+7O4jp?}cwR2k+!` -zBP_z)WlFb(h@30&1^UpbZOcA%Op5Yj_v=!1YV8L5_n!t;PiL;1=Y6uxaBSBT`F5`1 -zTyNQ~eE@C;c^Wu(_vyP%Vx9E2RDuSSuqRbr{}C(5!Ihnjvg!<$X8wGn`IJ(a~g|rHV3C+qLSG1t|4{HPezARLN-Gb -zBoh86pC>_zkaE``z;uupg@QCkERpy^3Im73>t1gXi{K&!9cU{KdMvGN@hz5CftOuB -zTtf9FzKv)o8^|q0ZPgg -zsWhaJH+Wqzzu!B=xQDd;ga^uSFIh%C86arz -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 -zOl3qZ8{$WU_=}+7zFq#I{av4 -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 -z`mD;EUHvG2h7SO=)XP1 -zsQ}|4caiXpDkJ%BHE19@6EWI>cIV_p^bmD9R5d*Ps{Bo#RPp(6F%p+v@LEI&^|AqC -zRepT<2w02+!Xg|ZO6WYH1QH8ZW&>zJ)+fW(9D0j&m3tv1g>5P!ZZgvlU}?S8)3Gdk -z#*&WR4+C%GX`9qM?$g%Jxqf_0RVw6Jk$M~QX -zgx!+beGFVCn%c-}1t8VP0wb~|&f?~p6xJvoZ!|`g2qR$ano?ll)>~vpb=+tHpt~Gs -zUdj{^zltu%D+5?pD|#!gQU&Tn5~-G|HB5r_Ga=6)n$ZUnff<=Th&oEGPEW5RZBIS3H# -zM+lW@6GMU_1xggNn23UnLA(kM*d(SED8?KZ+R)idABt2j)V5%eHx?8paDF?=s}~5t -zl8srCUgR6mU7-|SHzsLO_=wP65yX1`5VYUlzWBD__Zw8+#g$GoBe%D)RC9YtQAAkU -zDkHI(mcmI&FC5M$=BhMId}0Vw7v`$X(-B0Y9@>XNsKdeBZh@ -zk1NkT%2$d3ThnK?S8L|2xAudp^~%$~DKAhfo2_c*xO+<~ITuuDHe}}>o-cEZPJ`DN -z)-WEfZo{ffdzq@*_w8+Ye=9W&ULU{x{&COmXutoW#W!k}6xyG^0FHxDwSiCjR#g^S -z%yl7E!P|qVACccdRN8zb%xPk4fzcgWWs(~nJgj~pe)9oHM3-Rx$BFy;K1B4mNF37Z -zOoGu}R)0p0colNjp>_AnobzRgU~dW@~5Nd^8vmWuO@zaj~cfHAi_;Pu*0PVgt#&H0`e`4(+(hh -zn~2H+)y5VnaeUojAZd5X1!=FCu5&T1Ir%&TalGlO7Yma`g&1-fX9i-OeTSTNAUH`l -z8T9!x@Q~$h5D`){xwDu=sT1v&FLxfz_N-_047-B*^N;Qkh36!_*i=eQadUe}+KL-( -zX7M2;T6l|s=p>cUIiSQ-#1m0J`$_6aME6LE9!qe`fnW`uqBxY&1e3gWOzm5XVBy!v -zK%}KaW6C(uw&*A%40_>$Bsq-~ZClFiwqk#v(r0dQ$?JnAs3ikxfNF8gCB6Opthi0* -ziQBShH*oXw=Ew;5TihTnkxBB8V*liVsxR7Dvm;LdO1P3pE-S_mG3Zp$2`8s_>koU_ -zUn$A=-H1WZqJP@P#bX?Y{L&A4%tk!K!|D93#r7GjgnnqNzdy}by?`;=3VM7AbGZhD -z?I0n1ZtH2|nzU^->29#iBDRs%eSZZ0rHS>Q#wKHEZl@{pP -z)a*rAA)2z+eu}Kzu<&66YV8Whi`G`o(L!Y_ -zc8hERr%~@&Du6Aj%U00E5DoCPqa`IfH%UNTwxwuMv{POVIS;TJ@)++2I2T?!3$;>c -zT}`xXu2LU7_=N;R926+?x7QrD!1Xj+l+0`aRRRBqd|8m7x?ii=0^iUU6D{*Fr1vT_g2_2{WIUSgT!bFHrUZM)2xJBJosK)~$ -z!za|eD;nt_28b$Ps8OJ&;pqjJsB!n6FL<=*gr1CGrzG)y(E&j60_Cm0BGG;6HD9pe -zzIIDMx&JZd>(!r+OZWZ96aSC5B-x5zlsi0N#ShX95{rtoVXJ51KsnN54!WFJPe*+? -z4mZXSQo*s;ZVab55MJ>HJa}wMun;k~fo+XM?prtHaf<&Yp1hQ=GQIu%{QmoQB`CDB -zf&W$}M$GyIL(&4tRj#U3s-*~=VUUXJDJf)fSR>8~2XJ}O(xk(>60&D?sh%igo6c=P -zJ*;bN&6}x<+qU^xhgB@q-ub{5J!(D{ee{gx*m_Y>xAphWG8{Sde%U8KZw#T@2KDo& -zu;o#^e_We0s9lFpaEC3)y0E4P8|ER)!|re=zAV_B1x!ph>JXj -zwuBUip_<@j)DqaV1$bK2P?E;xo;uTp(5Ox*Xd!eZ_5PZRKp#Zi>sAvnuxF5tL{gjk -zLE!Yzic%I8MAYRoZIM=y44vQNcnGBISN^yHAePM`=k{wqt>D;up}Ln2)Fp!LOmXqA -zQkV)Z(pP}M6@7ILptG*zi5AQvnN;!YLi8SvrYQA>01O-29!+%eQpNvX0={BN(teTs -zp>)3aR7fKI*}q&R)F8bep-$biiMUAMd(rWxdU@Zk$R95X@9BV@FV4e|+f3g>v`6zo -zy1x+@z(3K-_jFsiPV;2xWAJ)F9TV<7Z3B`I(sF_k+4?&WEzxUuGa|i^c)HC4#v{uG -zxRq*dqD)yk>DsjG)@>Y`)lQ4vmf?{*rfhTSrk+H^UGVtn&@G%S7h!HUw`oPH$FZ>o -zvYn@<=904Qj39FEjcu;mmQBEI%v*hgb>@jp{joI&m*uHQab?TF;wvFcE;0tYT@W$@ -z))BvdfB*b=|M5bbH{hyn!&+%X76E`tfB -zDvMFkpRATRn`_1=ElBGowM*1J(m}O@EuS`U5TA}zwt#HS+jb=CBfM;y)DktTsFeV& -zg-R0l-;nyj2Wj4Ny@(x@58q$LMv}O~N+PLW7*eF&rZMPAv-gT9N3D0om6qD==<3#V -z4eUD?ao6V9xz)_`9=Jw8dw8cy0Jpnd2qhmlk*_pM{EH9^5z)_+c%b~%j#_9!(mf6p -z>TYyqa|bVn$Jhq}x8mOS$HzkL>X)|8d7E*Cl7A{ez -zo%XiW#gH(muEeN`_(q4dsY(VHKb%e^ezyJ2Q8x}%j?YDPx*VR!w9p%6DDFvKisg(t -zS&JcM1gSq?EZamytS4!5{6NNQJ!O{moGGZ82L9S7V{qm$FpX_+XS_rRXLUFCPHn5> -zAa!S#gE%?8UiatkVYj8qkwrsiANyd;D5j$}<3ohYlHgIJ(0CYK8WKvGaZeMgnOo}~ -zd_G!+@N)HITF1yaIqn%Qys0?7y)agvv)NP*zRZQo!oxO$`o|Lz$nlZ*MH}C&lczc0 -zIRYq#O{>b_%z_%u7@LyVGP>JJfM@mLM4K21|CC-x*PCMyYUi54^Sruk_|4b1*DVZt;_n2 -z6)O$|Qd#=8UtPy*W>Aeo9`B8CLYGt`&6vo^^xw{C2sN?ji=c3>Nacn~SfL$l;IzCM -zah1l8jHq}vWv{5$ORZF-%d1zoQ_+Z8+_vwsC!u?KF?lx(s$|I_4*`PpYuBE|lotz+ -zFya!$-3P><`D2kO&rd2!@zMuCjC92Y3hH$5fCKhcMq0kgtV4trrXV8c(Q=Z~QqbxL -zXjm+_x*=4)>)Uw~l#wJ{k`$bl<4AHYvVTr*Y*#$VWn;_dL3wSI8AfzQOivU$(QOSf -za_#*$C%A%YNULjPLD#bjppUzgH!gnc3OWhYz%WXPJqI}mr88`)QVFx?^+ia}YexJG -zqJ{VYun9}zh$hi{%HyqE)xCeB^-7NjD~XtH`iOp -zV^RQ76X_tdH?#)eqJ4$gi5`#QYoaC)@GB5qrRfBBtU?kwnvD8HT{iIO -zuyX*&%o$$gTLr7a)#*V>Cz)@Klhs!CDs+uPM%eycjr -zUZFGUkfb=!!V`R2ke&iBksuzN8=01h+&oVZNn29f+_(mR<7$9}AaUU+UXo;xhl)`@l%uUleJuX!i^1s{)C -zCEx=NC0}NQphep726zlLG3=pI*lw2@QFj36o3b=*Q@r?dNsQA}&rwnm6(egiS -zf%hKZ{f=VGBot*)+ZV!cPZa_+F4EwMI4bicy80Pg^@I%NtPxjSNKY#{@>xb<&OuRn -zR9Yo*3-JXNKHHbRk})B-aiJCnA%D9LF~&ugh5wa`VmARXIk%1_BmHbD$Pbm({eLiNd>Lh!#YI#opy?rsIKVt&$CGYmP<0i -z;85Y$8l;Db@k#WBhXVz!O`mlRh3wLq>ja68;h?tb881=dn -zavM2$TYD?yL)}mOiQ7y@RXfc^;Xonvs{rLJmKg`F6+j{h8Gc+9sTxng7=`Y?RG7d3 -z$+cD#j(C}3s9A8x04W9wbqO}%p`^Z+GBuM3pciBkr12OXHS*O)BuPCB3XowayoMmz(=8ZmjFhBvcF?Uvr*%p%}+ztO9k4ZrJ{?=N@#2e7$sx2q5R^k}oJi;5zjX%4*U4`E?MEUSqQLH`GwfU) -z^zT-{!8z2jW2uw)Jsq~U{hnkQYqX9B3HtpmNFkK7B`(dO$wNZ;C_f+x#3V?%C@Cl=TVQp> -z_aW*5Y{=q@aRVp!IUqj^6BFXx)fiFxn}?8;nxm*$ieNH0+mCz`AAufrEK2+^^~m;v -zEa`J4NG0N(No!4K{IsT-F|6p=nYz~R-LWgp0tpgSCelKPr3;8xLHuIl -zXh%dj8XZ`i+2R_j-iM`TbHa{e^BS?!zS9pj5ADP!_9<60zr{Y2Sjuw6zRc0MjhFdh -zrm2}UAGJqa1z`hxs5LiYxju*mZq2nQx}U$mmf~57{`y&`KE{vy<6ZrZ&0(0TR#ID& -z*_cw*Q`bMtE`F+e1p)gDYXW@=OJ!9?jGj-~bNcJEb2>rLlOUrU(8_HyhbtnxI}?J> -zzmi1LHJi)a*}x?EWR=vKW4r1#%$<06T3)INtO|6hhs!vYvhTvK)$w$S2Caa^N+c?CMe@+mcRKzn84_!!sm@Z&sR0oa}X@u8w$=V`s9 -znNFLwndZh%-FD^6bh_=?9olKv1m}iq;)5lc&UAZceH(Y4UlV8vaTB!!R^^9vUHQQ* -zP_2Pi%di)ue<50o)PHE5(M}ihp&nwGs#Stw`!H~UPHM-afC9%G=^<1V7?^F~miHtm -z)BVlqUXvY1YyBh*4V@is4zbRTq-pakSj6iZdn;$qA<0nOJuOJR?rCEdD;S@}9SWb< -zvc;NAM>mDz?Y38l#zk4W+HDW|EK|kzs)O3MN-e^|+to|kR_hdxxN=#ht}$-XX>}YP -z*0ptO`nGQ`Nw7miM&;Bl!0oy=)-VvpK6HE!)CzNADjkUn&E8Lqe+*2FOF2%TjJ|Wb -zc8{P*fw&y)9r3}VnrZoZbp;uAo!(}CsIK4Q-1W5PXT?K?y-zc3(#CgOGN9{%-NxNA -zj8oUGbme-VY%?z$Bj0sLGcEjC`=#|Mns&U7hi*_|=tJ6TL9(>elIdxaUNMSYAVEfT -z?%rmzco(WftJV2+=a~tng>0Y@g?Rhm0eS)tBUyi-a|#yC7mEpjq`1y@%r!zrV7YjJ -z4e|EItxkk?o)y;XQhtcdBt$)9iEeRbpypzOGg}GLy@pSX2!-ksHSCF!8>D*Y8PWXDnIwcoUi)1UHUetu~FaO-`|<`(FxtNOP~BOXTc+G -zhH)X4V|U93)3)uxBjf6ZB;6#`?bsU8Wd}WdmF+`-b6o8+Gp@_TwYy<)hO4o6FjV6N<#KIA3I%w3 -zz4_dUd=yv9`0@VnapQ8-GiLExq;sTpl7#7PqE-E!DQDQ$X~mV~C5ow-RJ9F3H}ftS -zaxO~_P`089F2W&CMCsQ`CjtpEgX5$Oke+^&+IdbX=upAR2gPl8HNo_UTM_PVRd(>6 -zw(;X&ZnM(qIzQH9tp;9wYg8NUQvT%u2$DlR2FpxnQ-Ygs<1minBic%^sV&CsLI0nJ -zj%kNM`i*ZHL8IG4O&fHf6ZP80M+Xs0}K3*nZU -zNz{7KaU -zgd`-U)n;sXRk}8#T-S@~QF|Mf^|6W(h-${R7uTR~-*J2Z4X{TldDT`7!jXV{k!LIk -zN!Fh0qxRj!82iqpV=oBAWX(z$Y>0)RCdLEEfv7&f6FAy|u6f#J&2GfIj(0wS?Zv5FUz -zd;}fbz{fBIl3o?efm|z=)u{(CtZCu8g@si9B}9*Y%vE&&TztF^=|1>S{ -zCt;lg29cTAhh$FoQb}HsM19I}a+^^Hk6QYU)q{TVk+#t4 -z#W}vr!^o#Z{xCn(=cN7&hTn?reoCw_EGEzWkk>N4@g{!3on-3giMT$+wIz` -zPU%H(KKQJW%c1g-%e(Pr`A^sR+T35TmgPdsbDfQPu$s}6cH%ZQ*F9_I{r2PdMU!sx -z=+;mBH*&IiPoh~n`EefW{jz!V+iW>*t>2F9NK>S}vh(`cx7LLwrj5rPuvFDs?1$wt -z81)AU+iANt$pK)VApD5^<0H)P`|#V@&u08(`n36J{XNu;c7Kjwf9!sqzJD}bSf*dK -z>Gt$X_m8Fe6CZeI+UMt0QthT6B*)bTZU6mVhT4B$t^Ub@p5`alX -zLL4pE|CINj?nGip=C&?wTx&!vF<;W?lWb0+@dQRa5}U#4oD7v^D-y6YO5pP8%?EIr -z%7f$XuC0$bru+a0H+h*pjUr@`2y^vN+d6EQrOX47&xFCn -zET(wg#;8bP+0=svqA&*b=(z9u>tOfDy+ygn%oTA#JD}E1CGh9OSGy^&G@?If?TjXi -zj~0`i(xshHdz}t558Eo1LPE_m@rF-mbKz$KzxKxj6pkoqkwlMD{r2Xz^u@n=(+W>g -z3bOVO(U6V+k@Mg~=`7g->>nJRbf5@O3$Jq1R#}UDAdrGE4M{vg4(3 -zdbK)KpE;A@svzPuXaP}IpZh4*^j>!EgjAw4E(+Sgmv=|4O=8scz9)$~p`ML+w8v2S -z;n?QxxJp&}>iFo*$LDo)c;fJVUbZa0mo^LOf$fWLdGl>JB2Db36k8p=(SC1wePytD -zliMX;&Q{X0Ydp|3-m1P7_7V#UHeggZ5!q*;l|n8hkVr;9dE|4WI`*KL%%z%EiC3B$~10No|xandq54ABH8~RNRTA -zHOYx=GtoM$04zHSB1z`;by|>Aji8QF-h$+rvk0=07aaz*D40iroYsM~*EaK2ND_C# -zPfCP-aN_Y%l~}Zr&Ql56M1gQo7ZjzQHF3yHTd>qCXKfEUq!KzCvO$6#c+t}ry)JcDm)m+OO=wfJgHJDaX`zGKQ_`l%jSg7eMlX4=8S${^0Z*$m1C?mPPs -zVbtMgb>AuPR*hw#UlV&%{J&a|2Jy%cj9Rgyxn)=o+( -zxb|{Q@<0UDZ6&y8_%BJU2#0DJ0~|Cw;SMF!ODJuUw538km{TPTO7;X9nTB?vnG7

?72*}WSiozBh~RVa -z1n_SmyjPNX*u#n2-=2RYUF%j&oJb_2xiiAeaImR&q15$3NgqV^%A_>(O{IvDh$``J -zN+R?9EP$r~P`H+$>U#$&?0tiE@+5)9Rt4czi~~BGz65ZXCg^g5Y9xaD2_tda0)>zP -z$SprHD%_ELS@00$o2;c+HzKF1OrK*#^mhqclS5(!yloG+ot$D?Z{ofy9knOyqYyRR -zKDrqCZe}UbJ?OY}iIZe}7kbxC+tP2Gu;zOmYOZtO`yO)ldW`-UuT#69dCT>;pc?O| -zG1il>`arWU$jec?IhiJ{BTFZK({)%`PxXWCX^|a$RrQx?#1D-bHnwi~q1)!F8~P}$ -z<9_VSkgDTYHon@}AM@HDkFj4_0{v&O+LP)}DnIsksBX>6x;jR~@ZryDe;*`;#UCV5 -z{L~zYTEXzpb&N`kt-^gPg$fIJ3X_)S -z`AJ1UzwjITP=IL)=4BnkTot@mRF{xzy3{QrAx>DeK`V(MC{s;b3rB%Kbu50Qbc?X} -z!8F#;8xXgIbRf{;}+sY#}pm4a=QmNPLSMDuj^J$&j%XZ)}jq& -zMVk#mI0d7u2OhQV~T*DwJw6*iyD9(g}cL-vfSulFyz-iEt84Ft{d^<_C2*NlMEhYjZ2`M&kCkQDuET0;?AB}q7q_j -z3Fj2%a?YN)aETD!02KwPh~J$A9nB8bvrkk4hGv?4rtBXDqR|bI2fwM|1n%75(R{G7(oIP -z8)?UgK=S3BUJgjdw2@g(IBCD5;)+J0;CpMIUWq4e&Dv}`GB9pO_wqWr|?5~ywX|I6SbsU@h+Kf=9; -z3X!|!c(MFR)QG}z?<6%rmWEWT`fO^|j!deEU{us`^1xeMKoZuX1ZD8KBD|l1cH!o| -z38C(@6sSd4@z+NerWY8S(Y8Cb3DJJPY*HeMEw(q-FEfuA?N71OUy_i}e#p -z)sw2B0LN8=y=A=^RG40GKkQ9+J```A=@gskqsQ -z^@H?yRKXRc!>rnI7Pfa_idBcP#bT`l17tE`K(~ryG#F*IG!7tm0WxSkk4 -zE%usVIkGVp9Y~Om!Xa_V+1Lj~gm;nBI4Zq>If{}27C?x;ORCpd5{>##S8dJdK?H2J -zeoz9j4_Q^M5{dn&2O$Fv^`)KU7xDr+P+ELpCy0xd!HYyVNpZ^$65^PQcx_ZqX=-We -zn>3(y=PWaWKm(EhjaU0=2j3}}g;IV_#~?65Es9~9glZImCQ$&1GtP> -zb|?rBUMxn4ln1+&PHb9Rk5WVJisMZ0kI_`zIt~Qu0Z6kYn6O05)utD -zZ{IX>5uj9iHxTD}5NUXQ@OhCd1GTkDqx>RC5)~cqm(P{k8Acm}m&nbf5hD#S$n@B@ -zdZPoW5%bg25{nFBZ+qG>GYKh7n8F@CPx7D^0C*A$ypOK|kZPZ~8_u@vY4YyG5j#Ry -z-cP=M+?Hjd?be5dN6{!vvRJjPzP)M|{tGqwxd`FTs8b1-t~Cw#EFD3}R%a?oqof&D -zUn7Vlx+Y|gil4WrBz3>MfwD-lLI`lq&~k$849tkxvu2RR3z$> -zg~^4wXTYd-4>^>GXRW-A+==kGdLbT5tW1uaJ-W2QLcH-}p)mu_Ym$Wcm0n^bP};m8 -zfkmLEfC|SJok>Ms_Gd95hzA#CAaO3xe6@>!qO&FfAg2}^8jP)R0}U-x^BCDGGk02d -zG=TzWn>u=RSrE;A=9>siTBs_R$6G5R#bR{c1tkV25sS~XD8(sYP-H_k!Sd@ozsr`u -zk`Dek%4HH$;TLY0Kidb;!@hGUw -z8M)P!UKcL0kP1x>M6E|}egOpB%jac<@LGtT0u2{*Sd8^YhZulUn&qlZAMZ6W=UU48 -z?#b#%ounxR|&B(vEUyw{iIFz+*P8*M<`~BzVuiyU(yaSyo6Gz8e*GVoyj6}B?I|f)x(=Em(vd}giS<~%>8mr+M+_<~ -zxTt3fElY_GAN`;I{1gP*)Uom#9zZ`Qe+YfFVhl&Ay!eM4<>|9gJW4NTT121+%5QaH -zVIz1YY)LjD1Duyk`LLhBV?)wV{Ppvfq@AS6|B2~i9(vG8jOpYJW_=cT&?W6M5=NLc -zI#OvwPoBe_XNe}@m1G;@i`55{d^P`lwV#wmCDAx-;=j<=W>pmG4L-peU3sACgMt>VhIrZ?&tEMr`?28IEA -zO%)e_p9qL{IerD$MjL>+8bt2^iAu`RertmmSiqst3HB~ja??)0!dK_theVrwqZf47 -zHY6PuLY)v1{bqNejha@e($u-ko%y(o5cauYy_uqKPvc -zY_ReRgI!mIRFO16lX7#v01$=k^Z1Y@EWTaUn)kWc+m)ft?K&4OtY=pjquOsnw}t=X -zcjp;S+Qx-c4{l|bgh-#NSk+Z=K}P|_X-QfdTN||CIdohwr_X=>GQQs?p+N)glb1*C -zW;!d2>Q^)IS(v9d_6&7K?fq!G$>|y(Sq>z5#!s-U2MK9hA)}4gfBt_JU*wzYe|x*VO#V!vVKuxB0p@XtTfW+;6;ZNdNXH-qN#M)6XR6xD|@9|{$1a* -zM(z~K6LO1W3B?)!wflQm*ki&#Ig}@NGE8SfYuk9TJaP8`aTnrs0?V -zi*12};o*h3! -ztNf*pR=|ln-BbV`0i8{xqCw13) -z)~&9L!rRP+2hhP+vyEiDxe3@x= -zgDC%+AU>!lz){gx<69pwyp?*=>e3pe1RhtD;Ha#mj9OQS$_kfXi`vUh4+e?I8xvdX -zUt429q$R+i;B3dGgGen$y|d^uYMk>`eGaE@X7)upGl(Rg>f^xFyixRO8v*!B^+d_j -z6m<{8jYsxbk`R@fo3OPxD1Yu7;`As(Bg1xi+AQEPJx(~ -zifQ%MbKJDNd>PK3QoknewhlI<-ba~DhE@GZc3M~Z|00crhe`-wyjabNEWay}zhJ78-u^(J^T3aX%sM*;4| -zeSO)Xne#sYYr7Zyr^^jZ8;3v5zkYKLjr!I8*mM6TSBUxcq1$*ENfSw!lCPk8(^9jH -z=~$KqTI#74qWB$v186@bXWDPGgd#iuwTP&wgeZ|D6eaZfN5U9_n(;_g>-!37bploE -zwB&MlaslxYALeuyoZLqvlo?`)O~3BSp2ytX(4LMoq8~Nhy|z+MvXD5--=PZtML@d0 -zt!FVjPu88UeHKS&u0a$#$-O5Jdyaklu^@+ZU{i~O=SbalOP9B|37h_!f4wc9^mhQ) -z5tbBJnoZM5$LzI`M9Y$I=^6zisApF)(R8ET%b&|bBP}qAlPFD#l(|QtGkECcbArj1 -zsfGh#9kNZmB59ZBx-6tVi^zFbtggA8Udel}ySQZ}QAX`>fpIw@SHQ|hKiNb?Q7uM> -z8fadK2k!!9B;=1I&)-KIt-0$hO%U>t0rWT`s{Nu70`y^}ip;)2n~~`Sa(VDX#zz#DPg(kuGNaJ!I6@q*|9oFn^-e -za0-}19#{v|QE{vc&x=r&pH|XcN@F-Ui`H7x -z9&S`^KXJUgS1*K1@|~Kd59i!+bzZ2k&s*gPmSv_%DfBror>-@Qw9}?!WWr -z(w9JuWX=6eIUzzmW`*bnF><#SpUx;QM+%4d4g})X@@Q5J8Oh4{+$-kg?G`}tS(HDl -zMFm>=hlC4^rgFmW`swdHeK9Z>nx%sLh#TMpfz@^)E^^8`tJGCohY(dGZrHX$u&35S -zG78P0;={+I7EcRQ4=rf@*tK@ovt?9i-`Y{AchtMx)+J>^DIJH1+YW>wthBSj5 -z=rf{s-$?L^F-1h~`gT`?UCfJ@cGpa{3@^VjrCUxvXz?9%3_Y+ieCO0mvdygC$As@r -zdb41Z$lWEGcAMtBu3>h0;MRu>R^$H-L!wV#Tx7or=q96Q#m8FpyT`k9}jxxNd!K*$d_eXH46;<}>Z1 -zX~Z4IKq7kb)5Me&>Bs|P7W{{HXJa1N9Hd;5nyxg=-~=ScI! -z79S!B+z4t#v`KIt?y-ggs3RU1jribYnoL+oWoHTvo738j%={OR7?A?I-RK25kd7o+ -z;S!D#NSEaAToBe$D;3BxJpN*l>4QvgU2B^>uV%JP&=r;f8d?BEjzuM5Hm`cyo3mRQ -zD{e8FJT2qFgjw~S-#c+rsDY>lo>6#82!P&_u31<=f#a39;lx8_N!Rx5$A4%2tA&$1 -z-=zPe>eZ*`UE@MSpG2`f4@a1;4)q;fCa`#%8%+r@l4QYA=wQ1a)9-2|=x -zo3V-LuH!n7H30e11GPL?Tz7GkR9HqtFc56WBu%A7xa$K -zMcOQP1fBP6ulBw@bRWgc_%3+RrZ -zoxXN=hzHSDg!k~iO@I@fy8{5jYPiZn)CzL~{b;0f-5`(h|475al~&vYk~rI(kiQN?L9WOlvI@EnQ@^TtV@Wyq -zgAbw*YBVg831|s1;)@Ruj`^~zIz;#x|7ns;F^F!{F6RJnWiN@=ytIh4B$7Ks<3v@~ -z$LSsN>v27)fXJho#qb}r6b`lWbJjMlCc4($#sR--_40you6hZpKhGCa4n3Y#%^TPc -zi5MDW@Ky5|oe>>J_@D^gP?2Byc(oh(qP4DZJX1JPhchMVf1=KpvAd|q0$U?QNhHEP -zK!>Q~Q_SQeo+C6a2?;q$^D`g_1lz2dv|27`c0sKPe!y?hkSIoih8&js -zvzpOATY^4AEwfP^>w?;^7YK7rsHx$iqHmFRe7%lw9eaL}+$mc9CNS%P>yU)ein5!9 -zgT|xuU_3t=$L|x>fJj& -zuo}XN>AC!P5DKAA#XX*ZsAg2ndx+HAh}_JDgMjILZ#=E-q}dDQH#_dc>&(p4ysct^ -zZz+yu7TGv{JL!a*hrz9*<&C=kefvcHj^ab-Rf83%?!4T0i3jKRx$LV@x_3;$0Ed@g -z8v8z7o*`$(g}kS!%A{{Le(qBDOy3TZO}e92UBWR9K2{c -zW;r+{WR9qDLh{;3%I7J2P>GPcsd)y5} -zF!-)}OgM^prdox()iqdL4go+f78I1-*q0gr7u=$}u>6RG^l${ooV4y}FdMnjYj0EN -z>|aDBnoz@0kihULT@Ny$qu5l3Q -z+??L}Q$XI{dK@C@fJjRcpL?kglh!~1S&XueJEqi|^OF+q4odyM%E+*3E%%>q4#dGvrP+N!8o+&jX_|dGZYxdb -zHYHyYX<#QE!9j$xfQYj-YRT(}$N_BBn%hzDa>j}D#`qGXMQks`e!z|6d1ytCM$r)*Sx*op>dOc>Kx!$o4BY^~dFEP8$azvp_ek6qs{*CJeczVZ -z$AGe8noGS?A1z1~LlIv|oUSxHv#{oNJ5)B5TNR1D=&7TKv~>WeJjQAebzG?hm>guC -zi*K4a3BQ -zk1E>eqeB$fNqsECm2pc=uw-fzFkbK0Juc)8yNxG>8gOtCy~xb(gpaM58^Y+ -zxU{Mwj>&6ZW$eaRsuq@obY)rnT$*pv7la`-_o&5R#%q8TYrtu`hyMR#N<) -zJwoJ>#H~Tdq$bn15*KZ2ozt6onC*v;Lv2jWvL2glr_->VBuq=`%bwZ&5+=XSRxFlj -zZO69X8MZb|dm7_1p3^yU?sS+f3OsVeHPSRH+=RNKkkm5zhft4DO$cURPl(l~Us37C;r5C+aS|%G*bEJ8NVs0B1#Rq`Xd>?j0!cE|& -z?>@1@f)thbL7dXPaG@sjW@u#GXaF`Z&K1?u`6Y&-miX}P&BSO|gt)Lng9x^3IR!r0 -zR}=eSCc)KQS`+UFS4Qu;5P1E&t?3UE5m-R?YEea)lst+z<-%>6>d37D$1ZOaKlm#X -z?6Z~pxUlm(c;m!GA%Ny25t>dw8bFvzDz3R$Tpq@fRv}o99p;sab;pOGN6Ar!)Pi9T -zz#?B2xswM7A??){3n7q|9e}T1fUChnJga5twft4>b|RFHh)cyZM|ueDxd%_9zEDW6 -zZ-qigG?K3njr=jogH$qd=i*uGG#u4tE`A|(DsMHGGxA_7_Ok4V{v@HH^Sh)5)roSR -zAkdkG90rYg=uCg-bILVNG=G;Zqn3fe{wl>PB^mGLo1uX*q}-BJ#y%dT_FiBF5A%xm -zjb9H2<|e{YgAkwRo)2&!-4hxb#5YIL4KtqT7k*o6Vg3OLNG~;1t|s=I4>wYcq)8}5 -zYU7j!2Dga10yVUw%3q6Q^1c@6Kq#G;??5X$55~R3Dvhr4D@H>=ctC4Ni-nanp`OoU -zq)-hf2wvio63T#2J&$1;Q4O_!bdObwc^HHJ1=72mZ-0;I0DN2p_;LvQ>17f#pam2{ -zM`J?5g2-5nm*#8^*n)GJ*y#D%W3 -z@`eDm&oxtziJhHZeu(EbGDIU$AGN0tr9*e4{bhp`J}xp+R*+mo2Xv#`qQ7_NhSney -zi}TroU?P%iA-xH2V2ucZubD&{q<3~GRSws9C$4x0-;q27J!=6$%oLnGa=s82 -zwS+4F@zDgT71tol1lih;@qrNAqA(okWI@usa{VGQB`Q=7i4DUe*#2ECUUK=1@_&sG -z4v28ROK1=;f_Fo{3w$9JOMw;-Oa;BPno##U8%tCg+T-&HbuH9LXoKzf=!qo3cLJFs -zh{V_yiM(=m)UJShZBhfJUQK_ThTBRMDezLo2{q}9pd;pSm;B=+*4h) -zi~BYPc(8~W6=M$U57?X#MFY)W1kIrn-kwF%Y5tTtYC>|V(3teuvXEu%GBvoCMW+fB -zC{PYSm^I2bRK()jdl^yT%9cgGLZai@ZGPD*o;cvV6@@**XIQ8FVV3$_ -zkR~lxiSO*Ep2d4(riwmoaFE9i%;Wi1Kssrnl5sdh?GYEHb$(u3QwJO$B19p<7a;NC -z=mv4oxRzcQd3U6??2q0W57h=cJQm2^0lDe|5V9)&yZ_D3u;rvs^S%H7^Yec((oa8L -zD*ONQ?oof!2#E^7-YgOLK#ZEsl2!>45|q^7IdlC@+i?!avd~0_)4V;AQX`1ge>Lr+ -zT?L(rAR=%f(GzkSyj)&3UG6+V3a9`WzrNQ^yL%qkH5Zjcg@;k97LZ&{2x;S!m`~r! -zvLiKZ)t$8t+~fCH*qrkGrgS}VdPiDICl^O3Khk^4(=~Tw4_`pT``m=NT6#VnWeF~Q -zchU+-c`ec-d3C|ufeH}qQZj;+{dw?_Brs29!n!f8gEG`{z$4_ -zjUXW=s=eUNF7y7kK8N$hR=?1)k>H-c^+P^+EZq&j`-lbtApf_s!(X7lRcD6c2{tYC -zZkSoRXG?Ypu*eWUi%F13G)i3s2d2|i`1}%`r3>lzg-$?GtC#3=(gUk-B#T5_o%2|xv3Zx? -z3iMKa_6@(PCxOU_SFgd7ES08oavu({EbOYOv~-BE`6HDc5hdJ@GHr_=PC#Qok`eQJ -z_aS$<8f|L@V!j}w(v0J$lOEO1VlrqMk?fL0e+i;cH`)iWzx(B~+H1Di-PU?eoUcl4 -z1Ol_F1n)ZO@O(e7NR%YaPefYfnwZscP)H(Gp-xPR%hKD!rR$E@FrIFC7 -z)Ks(jTlCT**H%D;5ea-N(XM^iB8W^<+W^z&Z7(a$<@fkf@_83cZjaJH?!Dibn){Da -zNgvDGnDb65LTRgqS%A7_4EAUiQ%u -zsA=pVd#gYp-u^0OgSvh9KoN&h_VK1b!f3U;f<%VLZ7vy1QmzzS@e^b$eEft3*;usZ -z#q}3c__R*1#xc)!La6rdZ1okhDPBir~2AoF>++w)Hg( -z{ag;g(D%l6YH@>k3B$!6hv@e_%1PXhqKj|Y1AOGj!NTDX_W)Yuu9su{RW$5pVUuvf%a~`y5m}Za-PurB2(rfSX{Uz&f^S`8=2|HZhV+w(oIkwwu_Fed8uIG#yXW+S;iL`84x>n>^PxzxFw{ubsn`SKYMX?Cw2zwrLl>p -zAjU7$f@?W(ZY9OskPOR=VvS4Uk)Tc3(zaCRrZn@IHFZf(D$XxAGbY%YOfkE=H9^v< -zp!|!bS)8cIwL-ON7GTP1$N`*JjzkI_5xL7H1lQ8d^k%%SVBM;9WiGD*3l_D+%wEx* -z(`=%6fy*1Ls!8KBB*nb0(jlTco#qX7#X4S=p!MYu*7;^!1xi=Ssz%Z>70 -zDkSOY^8ORqq8`e+78k_fMUrU>JZiN4e&ntGxhoZhqgNvz`s;3$UZc}`cf7E7ftNuW -zL9GbYVcg60fCmqV4magg(>|S(Q`?Kz@2TAa99_Q3h5p=*nem=!SK$;}sO-U-P!A`}^i(6XUj-+*SN8Ex2r>A*bMuH0h -zsf6BwwOIk~I6$>#!o~_X`}{c&BbO|P$e|MVpo$eC%%GAK3dkXO<>f)0ufC&ntZEuL?Bgm7X1J)o5V+u_8GJoUy||+%+3PhE~3^uO5MWw -zEMBTi1r=uRN0nI>`7wnKwGoJZf<$`l;Kffiuky+56DEDIuci?BmEXqWist{p?|>AY3lTK+qq%KC`>(Il=~ -z5UqQGx+;{2e{`KFXcZ7g;E*gOxH`JiZCj}=v9hnGu>OI9q`WVIlMC7=Uy)t{VU$Ap -zA!4-j!f*_HHXK~g#$CEcf+L)VRMRF-y=kHsR~KM~oHcCY6X+Z@6h1(kX7Q*7rySf9 -zNfI>;&=pUCLg;-TJzILHJL>(5B+5REN;XlWK3qpfwTP~~h{WJeL7|`X_k$B4sxYwm -ztrjw)^K=mk$VFR=ytBy~(Sxe03h>Kw#0>Q=UW|F`&5~<5An?@@YxB}w -zLlVORb7A-IOAtBT>L~E$YG0_8KRv340x8mqZ9(MN{TNFAPKxF=KS{vc!?EI@VRq;& -z0TnSJU#B=M{VIOKL<6YCq!l|QIiKghab6O -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 -z0NRvcreMwjhb~<>vA!BghC&0e29@4K -ztFKhOr72bx*^^i7q?PT&Rlz95gxD>_HI0XOg!?k?Yf-!P537cE1Mz^Srp7XjghD#v -z1cAn5Moo=Yd@t-JqLmte2T8w&_pLI*KS6q?_jYoNjM{NBSvu#KpjKVmH(#SM!{J2@I| -zSQf=W0F`j5m7Ul(M8#TnYBNJkF{u2($6X1VWKg8M=4=q2ia=p$rw_`_$W}y>ZWP#e -zSofw&kl2NSLByGMnDdOG_@R9s@}S3>6AT29kwlP-{E*{ODM$Q7gHL@`OGT2#R&?~H -z{elDip3{q{JJh68aP>-PzE5a5>X_XrpCEF*frP3zBjoZo3}ly4&GXUU)u5AzB4&Dc -z__WYTD-7_C6;k?q_M~@`7QgJ3e1~HZf!Y~4neuM6yJGB^wvp!^P~Tq2Ri@M6Hus^l -zvY22xqOUJ_sC{81*_%X!AjJ;UZdfYdr7#Ew(h!@6EiwT57NEs3KksQ=z4|vlL0Sm4-^@ -zN*Ydp{Z4yefcp;aVDT6ymxl+MT8Hv!Pct+W6W9WyD0&FuHz?TzY~g2(IMO6(!S+zb -zC22_2q$){ncq6CN28@q&M?>^dy9#AAVm-uyrM(M~YS5srKSZ@4fooEr+06xh^T!mQ -zi2j8y_xyDRd^xPcGHEV@2Y(^1vv!2~Jl!k$$Q#4z4=i#;G -zOrC^U;4>s{zkmNFTA_8K_3(TWiw)g8t<5qB2TB55)VCQ;OHJb2u3DgR<3>|0rn@*#V#TLOU0E -zmq_~V(*;8`(v?WWP{-p!pz%H04AX>W?tWfwkl()#dD%uR1h$r4$uo=;&@Tj4O9GNO -zbM=K>`l3`|oJ} -zvx)acLO#iUIbYZj>3h$O1NrE&ovu7v8vjThS)dMA%j;)1K}gA7UQ=@!z9lLlezfr_ -zA;p4Z&-}P+)F?OfE^a32u6<0lMqF?$;~|_0dGIo3g~r@rl4?dQQw_3tYTlfXVn78# -zf8GSC&t62dWHZ=OiV_4mto^hpv8v6SM3D`skB#+Fp85 -zNpUigk}{unQlq>W5}-4Ui2NjC#F(R&NFOtjMw>11s`oD|8*AF1%a}Bn>#>kIksTgoucD -ztEP&=*RYV(#1dS-5Kgd^{kOQHcNdO26mR!3dXf49y-g?ZVL{89Bq1fm)ml0xq>)({ -zLJn$~?v247-q4;fd($y$<*(ro-9>&mXl|H!S)mv`?TrtzZq46&tkw4gh!_#hnwwlA -zqVc3E^(#Mu#9Z`>PA8TDq -z`etH}{Oi*E&=x4*sYW+_0w0Kc9LE=2%3rxK+yr%Wp4MEf1$KQ~xYRp!p=gUD8AHGy -zB%p%UIc|VCL5k4@;Ub|$Ki6z}Dl$^AG}7KsQ2UPtTMz)h3ogYDiHb}~qcnN(O_Ua8V0jiRDp9{yD#@RpdU|D(#I;$uz9jF94xPqtQh+Sj`9lA1ujXg7eWh -zn_7h;z(4vn?bJL2z9Kh(zJ}D}TaumSHlI7}U$oKhKt9P2$5mP8tt<%Brn4J? -z;_YJx7a&Kp>Iy-TpRfSZ0EHY!LCX=@qHU4)w@nmf>=Ufj;x;gi*4mSD>H%@pVxx&M -zLDuL%C%G`9lo}A#R{nyAKi=E*HLUt7efsO?f8H4<)G^Zs6%@IxRmNmIS8+&vtZ@k9 -zNGw6gs-`sq2C1haZSkhzjA4R-p`c13j|+{D5G5*1hj!n)u=r>P#^%v+RT$ue??-2P -zV;Lw}AiMSupXj4FAWHxu>*FGbvkK;kb{5+gD%kgcLwfL-8j?T6=OBHx@i0K#T(?9N -z4N0n&cknMQmCbjb#cW9;txJWiAnyzd96T*vuH%TR4K)k9t@X0) -zRqRt=gTj&^qL_~J55p8-?;fpc)%Jrt8Hk$CS`79?*h%YyWW_rjWi{}q`rJQoVhL3s -z;r|z3x9iZ0cO;p5IhS`Z`6BIbd-bv-t62n}ftZOkT>#5W1tM`noBsg@0eY1z$69Y@ -zF`=Stai;99#YQ -zLxsRZ{neCI12UxH?CPS24nUkp0t4bL#G6f8lFsu*2bE?2$ZKrRBd6ER-Lh(kQ?pJ1 -zb12FQAI3fnh3N2xgwIZ3$Pm$+m;Y3trY6mS_A|36SR@^715a#~rv|o=Mb`icL4xLg -zS;rdHoas3YS)m938y~4%Zm8O<#!%X|bV_`f8C1fdIg1=x7*Ko#G~msa;jAdT;`Xe+ -zDrl&25YKOo0UgNDxXQI;c|A$M)gvisCw=p6WWR{CcogdQc=6-v``i)N1*43hFC>;O -z&@E9!z{@UcfY0c|z!;ht7?ckAEpm47{uXJB5~42yJgdBT?C@wy;%trl{^Y4-lBQ9` -zup*_?L5-TMR(xORZafTXRQFvW@m5Sch}D3N0L_BPW!dN1q)*LQamTvKhrW}<_}#?j -zCIN_&@bBMaB0dnQRBt*LG2qU-Zbs?E>mjGqSfF^`-JJe+Oo4S+Em8#F2X$LU_ -zAhg{;xkQ4UzM4|Sc%O?$9`_)W)ZEygcQ$8kl}FeD;%Wq~%z4}uijeB#W?EG$P~j?G -zq69fGEJ|+A#!Pg&PWKU+yLBX)a2^ls*}t5-#Q16%>W_WstGVL)UqHL`x1sNMGD?bQ -zuLW`4T98^qKR=zOAUX(y)m~CP2bcE#xS*o*JWQn^U#PY+_l$N^cRCa)z;QBu%9DM2 -zVs`;V<|l9z(GLNKrGXoD49uGqH|Wa){D0u -z5S+S;F_~Qr0=+jF!i7m>&?G>KtCshHrd3HiE3}^KiFS%NL8KosJUCpggYltxqn`#7 -zzS$4n2GDke_<}1=#On!`QDcs9 -zqcUAIcis!yedZKZvddMWGP@oDW+v3 -zxrM|;1sE3&Ys@u}z!sXKb0p=rNO(c`H0gy|Nw0*(JYFBboet$OxU!9m_A%QaBcC>wHAPykgxs=pr|akJMe2|5l;8Bp{l(OiGM;U_=FQ0l4G -zEOC(2dE{Fl=J3x>_*+P0L8b*;9R`I#Ey?hY?nHsY1%+@Z4{T!AQ}P> -zo%8%OB*kZOMW^AjmLRr7gI6X?D=N}6giLELI6&~VM5~!ZD*dhRU3FH~kaT$}8^o1~ -zJ!){i4-a|C^u2N?sW3HK;%0|*RT;R{XvRw#QYfQ*O*3_eIDyQPh4~20T}a_1Zo(gp -ztk~x}RzC@#IcSjqlK&;5wa}YH3EC%}bR4U~t{<0I)&oP5RT)RH?DF;Tf`lNX8yp+y -zyJD#r5;nftZDxjPENP#aH!XIO?rs+gyrbiG^6GKGk3-}x-_s?*o!~;4RVqM43A~3{AKnv{BZ$SXq -z2>!#Qm+Fdb#Ar`yi)x#=Jp`ThZjR?|jLNfGmu;OKF9g!OT4Rwrqg_qQ**IW|49WMwt{z9dN~gs1c3wBuhPjpb+mho5X+<6FJkj?TLh4IpXB)oeN#I8(zOe~TM$uL -zi}Xra18^?q2SbNiwREw#T}{YV4Tq+K1m6Pudr}(kwEuQ92pOLkSlx?Rrl(wNP3o$Q -zmiK~%`F<6@q;t}fD1R<#Vj5r`4TdL^4!;IyRF^Lfm3l)QRaU_Ag4!rN$~bjW;esN(m%`)0QV!t%R`q^t>`GO$f&#i -zFGZk|FaOVjR^3yuY(MW%v4Ae%btwROQm0!HYCwd=&5f8^e8umdzkcx>l2`)ulqMlQ -z4)K~%>WrAff=Z;j_$3_6!7S`;dDBux9H}H;IYJ!?7IJ}?%k7#;_1&2YQ)xn?80yOZ -zpBrPxNx``%#6)J(`zf8J?;0`qCq1;m#=j38T03GSL)|xDaJT0too7Ax0FbwbRZ`Gy -z3*J1CN|F-RuWPM;=hQQIPp-U -z)4z3fe*Q)oMKI%=WZ;|q{!8Mw^9|tnrq#7b2TA#UvGqRbZ?rlDkE!bcohI6(IHsao -zkta}NlM+@L5PqJ+Gy{Z!-v`BFPO$K^lk4aWzU!L>A?}E3epckHmt5Yr25^mn9*z8j -z%%#z(RfGlRDm{bzs~J@Ya()~mpI+E(Nl2p&BrASBFC#vGtH_A-CAKoaWis%0(u&=q -z7#|XF0TS~?Oybs;qHc!KGr%zsL|#A!0=px=mY`r?mPd}{N3WMSokTcKJ&o;tj$-%? -zNkV;*;Ug#li%=wbBXR!68sJnj_d2NVB`Uf6O|Ou!ETvMSL82mty2u;?XSTidO(U}DyYnS?h_v>X>f1u8!cmlt># -zAO!$a)z$DALONp?x>iUIv7UR~*A@9E$@vY|DTs8q@F)Vmy@+<2_l?iJSd^&RSDTsk -zA50##to$yzT5W6M%ky1P44BkXAw0sm)f8(N$q4~s-?elsUa0)vI)W?`RcR#hMp#l> -z{2}BM^qmir7XV9%?W$OD5G-x#mxw^lNEOvzi_XXs7cPQi_BFfVe`8T)|MQdgP1^Hb -zdWNLP|H6CC*^EJ{V;&fkIg>KOZ&?~x!os6nZYUBoEu*xe=>W??90?p85fEB-rdh!s -zdRu}@Ljq#o-)V`tv~p1t?0edosz?&z9`%x(-$h_aEj44O$@T~Pgs37E6gp}1iui1cJsZs`~RmxyH)ew6|n)4O!hV}X@Ons^fR6hZN= -z5~E4&%Abj;y$OJ0ADlLFRHBnMWNJQZOy-g+sQdEBTFs?&ad*wItn0>nzU*qvQ!CI( -z^46r@(qS-(kJ_3e#=lPchvR1QwyyDPUCDv3+m&}?JMEshFDvLfJa-+SVdQx1sKrEs -zB@SQG4tDyG&uSozZ#V%$EZxXhQ=MvRt&`i#OvGMPGCM;G;>sV%-g+d737yH^3XItf+7N{35zlT5f>N?wz -z3?+Ib@_j;ZJ5^X^IgyZ3!js?UKcL(vnR -zX-C)h_m~%wi#SrP^y=x*D!r^hQ((&Di-%#{;=J$lsf>tShS^Sj8i%~Le(d>Tl6(~J -zLTc0e{6F&EY*%_5NfW$}=Lj^q1L1yrIco!nL`~1d6i{_j)4*Izb_OVkk|n%0kQ^9Y?F@9YV19s+=)-(ismXoRi~Hua^=yiR%T0la<_L|pnUHN0aa&^Bc8Vui0Hz)-7oL^V6=(gS}BTA -zd)ww^FxP=)pbG8K_CUh&a9Fq5;g%xNrnh=EgiV{0ww+8%iT2h+n=;~kBwF35Qg+01 -zBm;S=dx=}YDfNz0Fe0<@9)=b1L~*u8`A)ILWboDkCx$(<_M$nqCZG|cf79CnEJqV0 -z5zLQ$qT^u$2$ -zwjARU@n9a4m#(+FN48}x`FSY1C(r-R$zc>~M3HmO-IWL83(Fd!SAe7U#OonW5b@!3 -zsGkTNn(KrNE{5J7b9;S*)?S9X>uTN`!~m-&^hG(6g{m-1tv`2bgQuF9QRTf!%lxqw -z`I4xBk%9Jf))qZXy`S%-|3t|i-i6`Q(;0wi6-Dvn9~1yhfNt5+dN)Q4W-60x!aBdT -zE#$R-2Ogd#er+NoVQ`1^egyq^`!dJuFOP*u1~3N9W$>GJ@N$>%%7*ryx>91^`To2QwVsONK}Xj$Lf2}lyQX%~%%-!hSPN(8^%$%* -zF;PU`bFrSrB2c`4zklow^MypR9#y9d4@EUcBXx@g?pf!Wr8Xc#BhEXf6TWCw7;lMm -z8O&gl3-28$N@AEH%tJXaU5?=P3C7Ct9nsTtAR(xYg@Wy27q(r2IxnK|R4&62sD^i} -z^;DRy1bf1UJU7H9U_Nn#cLh>HB$&(2@v)$oyOHl|VGC+`H=`rp0xS4tiRrBO1c8ZD -z?`|-y@u=RD#ZS=^2C=+gEAbN2faLigO^2}5$|-lrqXFv2%_09zfCa}-Ny3M9R -zoYMN)nnqA=F-|r0r8)w=(!oVB7%cjM@9z3Xfk3xVsi|MCW`UvE@N1to@s;!BUR;R2 -z%O5DEv)~NYyDErUq9|8L52LDN==Ec8$_Z*u!g#kS4-y-+mJ{)>yntB@9nX}1#rb3b -zYP?mUOjaaW@@OiLBr$(aU^MYA_q08#%n-zNZ>afc$0{+PqSpxXyN|z_VVNgg)07Us -z-Sn#G3`3jr;6%=lrw^Sa`ve>WrVzT{0b>TijB~LcrI`_oVGr)lj6?hAy3AEuGqZ&j -z;`<%*Lnped}_0ByjauY1LUOjok8_B%*a -zfv?*TFjiXxIGns&4e?UXZ9*e#Z4|X&zY$%JarY;KPGWd(B%i{gQ -zdZ(V6iEPxaFqt;RBCDX{WY0{CvKar&A!;`lS$e`-mcOy4qx){ma|nMMNC|Nf3YL(PrX!0H -zx6?pln#r2(VhIQ|LKE(!oq76T>B4vJX`_(2ID@X7lyy^VM>NQ>7<(8E0@|eok??Or;7(8*1B7MZ3|{%1o;@a+s@9Ol -z*iTLjGil?t)S71N=vdxOJelA~TTu%2lyl=8$+jra8gh@3?}H@Tn`W39&G*t6J;T+* -zF{sfCdF>f2Ei8JBl?TBdanXsuF<8}O7cn!z%5wX4O{8>E6ilPsAa06Fi0XNgOm0?l -zcvbiP{K0ugDJVhig*nJ1cn5ffoBK`U?}N?wC>okit#H_wJ%|h^ZSBQ!*lrap_jHj} -z?E{pO)HN1}7-E6Q9EoFr3QNmn^jvpD%TS-H(frtbtcucgQNFqce?ee$g5m6 -zDIHo4j$dODBsaaJgZ_pf5DEu&#+lwepu5BxxevnZ$ZZb;c?#|K74%a -zRxOsJ3qfuNOjm9(SQp(x+zZVdNa@+YXy?=$dFu#wcwG -z6F=!~AT{M!H&Y=7t{-GH5MHmCK0Bqsly5RQ2krouS~RsT&KRn+k`gj|H$6O@ZFJ5c -z2o|ccwpNAqI0)q`EC3FOZwy(|uo>#7;si^pC5QqehtnFt&V8o6tnJrlMAn`{a}+b$@&~Ta$jws6mImtuAdOToi82$lUI_Qtm;E`}KPHx?OHQo%e0yPq(D1>P)yAs6&FqtQ-H~uyDX$HNAZ7ji3kh -zJlAvWr16mU(?rsy6{K-kEU}y&%w6hv*|3Fv -zs3uY6uuDSpCt*wuR$`D|ODtQ8u)m4tgg`hNn2!k7Y`|VAFjUlE$}4+`pk~?z_Ima! -z@G-$q)(C6fK2foP8sh#?^!s}^B$u@yJXVph9>Q}wd)NCJ9$c?>E3P)QR=kHmD=)qU -z2soM4XtK+V~g;HxZ43FGWFcc>1XwL|yy!Z}* -zfntL}d8v{>YVb(kU6-=)-isBuusxJ#AjvGDSe(NrVZr6b6D9~Y(9k6d-9^zXWNYfF -znm^4A&an~&!3ehf$ZMcY-X+?bEU*QSa(0Ju15O9;-Bji+3yReqbHOTizn(oQOUJyd -zx~9jn7`s(J@W;m4S@hq6r7l6Y25?Oeyyo7SN7FnOyFvSy( -zCUuT>ej#>WG7x7|IMBVJq?9KFq2&|WqGQL~ACZTqG#)p%g`c~DtX9E0c_Il&h{m}K -zOSlH<-yj0n?6*Rw9OV_70a9lWcF5i6%`d$0oOy7qOOfmmKSSwPTR`v`jwj|!d0&ix -zL|B0hG<9!(DQ%TMTY+17Ac8>eJVY3{lpL`=RZ1w(1lny}8jjHv`EyqAS8 -zAug$ZD5tcXux^Vt-zG4$u>6=mgs|Nr1bWx8Cu&CBDeHg*MLZ09xE9{*ViZeRV~zDq -zbsrdp!zi1%=9+ey@d3<4oj;M*I&5+hRWadwaU -zrnBgP4lj}K7AjnK2uI+4RA3Tp>0N`JM!lDY4SPXw+@B~jt8{t4Em>pS`^nlu2D>L9 -zTsA0ugI7lds64|349db^jRokzyg@O53Du4~=4?tB?Fz1)^3{>7@nQ{zu7d6G -zVRVzt?rpj{d&qfCVMDK+n$!6qmD!Yb)h3MQz5s*&_^rB6ZtHIvDsv)E?c7 -zs~$Q~ZZbC(ojI#={R^hTCPVN7{@$BCs)T1PD9uv1T#Ml`gY}v`I^(SagvsVu{|0Lz -zdQ^=v=VTAZ+ou}tgT-N=1h1L5!$@jf`<)N84n)vpb1W@oL1~rmn?a__qZtrM%hqad -zKr>{S|73;$h1xADEcs~>S3t#c8;nFrR+6FdZnV{pPMjsSNly%B8KeVI-V=1A5Ep?<*2pn8_DNpX`+`QY|hofp)*Do$QV!k{}g -zgJ$NEM+Z}o#M{0M%QPrkW$l5y4u+e`Eo#%4oOrsuc_8ACyVRgpKG^6Y9S1Wfpdk0k -zt%<&x6IKn0qJ;|&82Z+j1j`Y6dSb8JG<7vihJF~Uys9Qmyr+$6rVVUM1*}r1R1G!F -zx}<#PL)JX5pQ5&E7Gup%J9Hja!eFQO&AT2x&n4Pm>@<6obAkSSHXTOzo;ok^5a@%2 -zNcVjF!$>PBD8jBO*V$vk(qhQx2d&-aHDa}5#XC3JQ_1qIBic=uNsLX+iIYf^9;?Q4 -z70eCG@?x0A+=Z%)H_!h$e#v`NfAVa9o6$|c5$A|lOnm&?uRK1IItP8JaMy?zu;iZY -zqzCEyM%QVfcL(g4OrVRD4QaGUUCHe+rRjQjHl|`QB~5uhcaou@nYYAMm(!4OEbF}F)}Vm)y(k49<3wf -zQM8hlUFMF*#){M_)4Ti`>uj8gX~;cFE{ai;hP&lB)>YfnvUb-hd$4*)2Dd&(&Jdr; -zyL`UtpDvrJpk{QSI3s^z;|XO*2(F(lK@%|3K95HX&>HQbv70ds>=Up$oEHixo+D&z -zb^r-1wbSQCRd$0bMLG)BU`&+LrN$1Fl#V=F;tgz9=Q`EBi~1cOW@;4dMMGM+R9HMA -z>5Fo9%~YR)ey~?q8`bP>+R#yDojjWIv2VQ8cx5*xS=RyTkPBc9gq` -zfxe@O&`TcoP6R`b^~T{FPl>euE4gv*$$O4uPg*k|ry&R*tDF -z-7uxJ+0BM2orbcR7z5ehGBBnrNfKJ@*oRa0Xbj>^wwc4=pE48_?CQ?1Kp#3RwX=@cw$*Hp*`vjpC?8+SW7!X@NzAB -z3To47OOx|?)+5e5kReOO&`38%ELW{IiTe%MENNyd?r334pX__WT22(v3x)8guyJ7a -z4kF5~@jVk8nR8K1Rr{b+qz{*4Gu7GP>RwN^97LCmwVQIhnktg<(GjGUr5WeSnH&?J -z>%5yEdH(RmyFuvotj=8Y{M0ffNz*p&(0ghhr0A2r)5#uZIU$yia97InG)`d56~@bS -zoX``6D95Hj^N;u`iola6E})xFOF)oEKjLg4H9?IZGZnlrDx_Cx0}61|f!ok3_rU^e -ze>aiDJSE~WF?UCoyd -zJeo0|-IXLo=B~z4arGdN+F^uEvYyhsdbn$oH-t4wIgYMBY+%h);i+2dEaFKg^FvEl -zO>WXTooC`)(337^_cprCDnfHG;P+3|k9O`KxzlJS)5)UHS)UOXjz7T;R!hoVh~(5a -zo&q@yeF^e<+IOjGEDUU8w3#Z<^BlDkofoY(!73gC5}W -z(Yg47X);BgPh%rS!>9dCXUy$ld&1vLGJ=`on+TXmN$dT@f5s|uScq=ta=2`myKb0B -z4NnOe8><|H{l|iZqC1#m4Re0Uc`bvE4iY~x8R!@;jOF*drmZO5l_@wLH10o(VOu#d -zeyy;X%y}-dnv!f+I_8wtkAXjGJA(pB(u1TXYy>cHRm?KL# -zsq=!)AUHctTz#Dxwt?34v+{lzw&>1X`E~Z-N}w5>dabdlZnv9Xb1oiW1J`6UyTF}` -zv>jQ=z)aiqmARy}Z4OQDCXIxfxqWK?jz*f|a22!IkxySyo7y7l|Vj -ztiVi%?fqDd;mYnOSW}#Kpaja%T+(Wuzac@z1-IE+(BTAIy8KGowIe;^s -zV!G+~80czI&Qi^zG+@M$)D40hy3Pa3m{mGB{J>e|RhP8mG>wi_8?c!SD{G_NZ426! -zvqEN*jHVuIq5GAxY}0pC8GT?6~zi5plH~@iC9?MFy>u>%4Jj8Z|tLn{g}z -z1EXeQt{11ov+Cw4zub3+;}Xk^Zu7!|-=2TXKqw;E8Zhs7l1i~Ep1)e4V4Dau0q;Fi -zTY05`Lr9jnvYZFz<|pmj11~#wASxqdTVCx*fB*T$(gWvOMtG=SM&BSKDOnMTk1UR5 -z8dIyr9+@46RR8)PB0<^t`;m>+4I=lYbPYm2a55~Jg0twrK|t1=#qY|QJrhRp8Rd=f -z+pyZpnMS&|kSvS7cp+ar3e>+fxZ=p7>P5FBI(7VGODr>-MW-3bSgk=$zu>iLbnvmD -z8j92iW3PqvinmBPbq3uu(q1F -z4NwJm!P@GJA32yI>WYaR`9_tdi}N1+i$TRwYMU_^VY+CVBU8K*kLuKcUERm~2J!23 -zbWjzn5-epvA}ov<#W;P!B1~;EJfpVxe@8ANu2_5jz|x@2Eyt|UrJ%DHooTh$EV8j7 -z~FWB1F-XbdU##k_x==c~WwlYm3G5RPrG7CT7B7CD<)oz)`KKpl& -z?1Z&{`47JlXb*T>f|xzFa8B%@G>NW@gknv)Rs_WESegIrsfDshql9^iN1e+ -z?DOo!3n4D-3y#KWuAHw`s3eA?A6jAOlIV;8mh%08N4Av(Dn6f(Eux!5!nCr%5XZHV -zaE3=K5e6niX%;sRY;5XMz59i@gBF9LwL_Q>`C7&|w8WsJi@$oTHrxHeKYv7IjCm(~H4Q<Lw}~*R0NMkBEH`KUsLFG&+e;(|++}3$gnI&+n5~PtQU^poctaM1n5c -z)i_UIej6T(@$GmcWNK@W>>1i2dumA*`zm@ugq(Ie3=6qLO|PaQ@(}NNb@GPX<=c;r -z8k)7}sEOWFtXiFVVQtb{vAA(TtwH&x7Bt17#b~kUhpL*z2bV4i`i6CU;Fg%lyTUbx -zOxSn&r9KAdY4r9H%eY5H8XcE{-;29D+MpAyS9>R9&y9#KqMS)v4t4k5sq2eoFy9)4 -z7PkTJ$In9uv~n#T8+`)Ds?u0fHv0ZpU2U1`k?}z0*kOJjRtbsSUeGNmHe@i#mq_`L -zfuK({9={wok|g4s6cKu7>%8H{VGc?#RxHXe#_Mb&U61VkVvV5xvLaBP3$;{fAtOVtw>7Vv>DoftHR& -z)WSpYc${oF6R~94BE+M=*ro`g4@*4i@WYsV{>lo)^CiB+F&vnUh%4Ky-4kq%9MQ9Q -z&$L($I=*uw!aV|p$89p?;(?fr6pHBhSi(xa{6dYOD=%3V$YYzX5haO1_cuaES8_$# -zxV=_UOhH(Ui$B?&D%Ojr>QRX#VbMp|7-kdKS!)p3@q3t1b=(_P8%pOb^eo_URS_C8d -zGxY(sqMXv`vU@4QmzpA(Jsyv-Ug`3d*}w2eW7!yq7_Cva1AgIZq{ci|yRqFK+TqPb -ze7!a-wJC>3dDXCtsMDWy8ygpm<^_|*KLfGF3KG|17N6GA>GEJiw`=iXupy6rqLmqy -zR|`*dBKoQ=#VW~|#TeJVTEwE(&}KSv5bIzqs~8b0$e-iU`flLd=O5 -zsy6&Mwj)Hu@OIMf)B@>!06z1l*;>0oP*G! -z6>0uNnBW1Urcs@-LrB@pJNM#<3lw=!DhCT^9UbgW=I8RD8m~%Y9zU*M>(?KrBP`wA -z?3v|9Wx$lpxr8rnd!_bTR{X0>Vk_q!f9Zi0Ysi@&q>E*kCX1fP%Ug1bktrUy -zk?6po$8d8FL`0yZ_MF3DS~NcRc!c}=*l^U)*K)e{9$O11-(VgOkL;NZbX~pdk>w)k -zgc*kM+gV!fZju<^7K=j%RFtceQoPvP71°|AX9?L0ol3;D#vtq$T>WCHDb@-MOX+A_C@r|8 -zRaC=Q4M|UNi^FCF!R+i}lf*Ko7ZTN;Rh(X0xC(R_$_E-%sg*!bwK%7L(KWcd;wCDn -zEu5xvD^$v&pMeqiMcl4jc-~3if7mYyA}B227mMfxV2}y5q3VY`M9=;czdP_d1m}Jc -zYXr7jPGf;O3iEqocfc}OBcT7B8=YU8bg$1#Z3u{YVe8s@fQxrC{=?`bk4vG|f46K#ulb5ZClzv=xbV=je)Ty<=`m*3V8t+!MOT9!a1|AYTh^Kt@g=mB -zZV+)x$h0g01vBE!LNshLMq&dN_~8XwD*DWxiZS{o*5e=|Hiczay)!bp{c -zhwacre~nK`bTIoyECxf238LoyLgxgQkeJz;A9i2NasiPY)A@%Ikp-j5)L@4*J#_up -ztc5^hH|-fHFPTmB$7ZsoD24PF!A>()p^lsSGt2V~jO)l!di$@aVyM6V_rJaU?d`w) -zZTR2!%kTgGH?Y6pdb@aw$Cq8-Z|9%u`TFs5zTSWS9#G!DLdwS_q

~D2L~Kg_PUn -z8d7fekn+Af`SW(ZeZc>(@8^Z^g@ljuC%o}jNcaf|@0Wn^aUk3R!cXvw+xvGw_z2!( -zdBXSi8D9ST{d~P%0>Wp|;&u(L?YG}9clh;>^YwN;UqZt5a%gkCzaL0H9|uxMxLtk@ -zr0ds_bZm7y{9c6eeV`m3bbRmoXGnQJ^uYU}&DZTfS)L4pi=C|SvEL!(*@YXxLs~O;R`x61Wu+t(acBzBZeckH{MI2y -ztLxVi=dzPV#NIo>NPmCdqpXk1{p;%|&VpYC0rSMVS>4&MNxic^Z{-4xy;Hsyzy4{> -zFWKooADHb{j?*nGpC3SPTp$p{;k7vE?~jlOHcz>gm-5L> -zA72llDI`Vk8oq`scue~y``Lh_%VGz8dZJEX`|a6}9!Kq)nW6~7Ea!7{J*fgBb -zoR?Eab9!WG!X$YZ#t98RzCmmYf;C(R7B15!F}6HO*uMzssO52$HB=R#2ph7MjqzCU -z`zM-*L(&pH!8avGdSfU**%Bc9Fe%$Q6YTI-t;&}wK#tUPHZr>*&Icayd|34Z)0$2P -zmfkQA98uO;8h(StfLpztJ5i-H=otkv1BML4k_$=>!VhDYPNW+`a-)gJ!U514q#w=d -zc0aY-SsK@i*zXeJy1=bv6ps9@Y%Rm)uOs7@a -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 -zks{=aVHloel|sytG}t(72 -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 -zZ%plU4Wz)zJ>wZL$##1SNOs#s1R36 -z$nD|}v^lnq-PR=K9Mkun?}uN>GG);*sSH_KQunqnxr%i+c^kS@r9}G%v-k~7I@l(& -zKP;*aE@XTlO6K^u#dODP3mkQVmy^)Iy+auQ0I% -zH2*D|Y`028lo!iK&Qum_qWc^Ey;2!g72USHx2{;70+j#Mmw*2?Rvi8JvElgWbywfr -z4^EiiR90w$B_iq-%C47`-skr|Dbp+q3<_&;T(9p;6|C$@h0wmS2HzKveP2H-D;;7D -zX#2RyshKVlk2ff*BpXL9isB>Qp!+J=d-gNl)Fs;Brp>h$Y4=UPO|-$i{^}$duM@kx -z#~XCxqv-Bz%#t$N;N!g=uIcx8b$NWo8`N1>RK*?aND*!DeINUj>GF0%hkC5Rck?lh -zX$LEu#v3Fb(@)V|xcs@t8|eGTG|A~!zyCxV{1i36f!yoAFJrvHbh%IIkNQflX|zF7 -zGxa`Yk3w}tv_V#0i+=p-F05&y4e0HAe0=xjo{&7=pl-YQYxwxcdHg4+lsDMQF7KB) -z&hNiJKTR_HT+;Yh<(H3M-c_Z{^c8RLaVyFD``8yn9c=*I>p)VIq-_#y!0zP-G)Y>S -zvv`A|uTp+3D)o7bHmGh@|CRKqf|(g@P{Z1wSne;6InoM)!~Jk2=1%c|F}) -zo&3zYd(oh+=Ep;oLpsFYfsbYSUiC`PGApGrpbB2{>CWQs(3)h- -z3ent$M_jMp$)MBRw~5uZ_AmcOU>GA-G6Tms3T -zi_%};v{NMBQ7RGh_qT>I%i|pd3h+39S$IvV_{sy@snZR)rv;BsIn(Kje9U=%e~*8r -z8Gr5xl|MZn;ypPeRjtO$IA(2Jz|6NQ|El<0sgLh?gQ}Z5QNDi+I=cFAxBDpbOZt%W -z9PR4cZEV`>1x0i#HY-#X?wKZx*=eCUY12oVD -zSLQu`pQ3B?_D#p684T&aMiOuEF!iSzMR^;dd)n>Wlxk32)5|hCnm6)&Q7K`={2-jY7g=6k}cG>;0gTlzkMKHFU%<`(bC^t=DKasHuxe&X+t)kbEd -zzg?R;{uA^|stUHesl7+n#f{3Vnd;9+TDQ@S_m(F;nZB>}d&Q!2@|KIV7)gCi+pqXn -zr@w7=E$Mci}w -zMYBu%9cn&)eJ -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 -zNbu<~oBfr%byjxW&CWlk#}Jf@Z- -zOR>voBxPl#=Aotu75$4S1!$DKb?cK+u3aMu?%7Ar{)njBkJC>ey?+cX>EE49xNwoj -zIdY$L$lGV}Xv;K^jA_`qn6$IGSUmj(>WDF^d;!Q%&#|^dZ#VtUQO#CRZ)=*e^i#_@}-NU!b4cOC0Wfph7V>)c|gGXEoOQPZ+l -zV90JH5PBSawCYi5;}mT9HD{Z2IA06-TNgJlpo&v(LZ& -z!$+&Cy<2FMGTXnBEs1srunqYG3agq5%8sn$-<`hRHixcpnQPFAS+PaYZN{5@c6|2G -zC;gZd6wQO5gB-YQm2S`}bhu4TSDJY^aX+=W0O9WKGih|M>U*PC?E}*_C_UiyK}y$Y -zKw(CtNfHtES%#;92t4>UO&#$@lNBpf}sT|cjyy%oOwcq`h2mF4A(2O5}d+6;J?S6b!m4c+l1`S+yy9{gRB -z(zZINU=RswGf@Az4(cP|YBifSX&zHlb1aSgZ7ccPYx|&o8QM(`d-~gQ7&TwL$kk;@ -zn{_9QJABaS$VOiI0-ET@%%!Vi5ON)mw)cnhi-K>YNsePrGG*Up){xcI=GQ -z@-qWVN0Eq6w70G$49j!YTK#X2M6}W#=}Dvm`Q!F59n%{H$Ei8_(*e*Zk3>=>Asa7) -z>S!kc*Lv)QZRuL<@f-9fl23B#0YdnZe-lhEUJw>Q+yw(ZwnGzdiOi8&1=1ALAmY|| -zAZNMK9Q$M22=x-=Q5=_+2_z0_d&&=6OkkPJ_tZBx(Hj#z{Plk!@E$+W1^z=<_HcN- -zeM7X~)J>m}xJ4vdlgG{%{Q8F8+5!j^*$rO+|FFw3g0#eDZGLDkE^sThg*GF9@x1N5`w`0Y^-ZeH+@MP!Y+`%ftOY#d -z5t0(pUw8|-lU~lSs@qat57mG*`S6jQ6uQGe0ZB$OT!J^vNRuoFZ+<?Kp}-Ky7w)nc_omPn%H0z7?pPNRB$AwQIrr&=jV_>Oq#Tl1_6 -zHDf(hkF6@S=X9>VZ%%hR{?-}ILlGwoIqlYb+BmpF&bNrR^4gdvDfCF}b5iPQkXeFU -zS?*Gu?hdA9@{pGq5e<2R8D(vn;e;ynK-R?TuynIc*=DZijZ8eATbNUvWd*~D%tE^_pL=!HB8)TT6C1SFIQ=cX{EnJgXxZ~=GFm~-w4cKYd^f7v_au)L*Kw0av -z=%r!JV)c~P3RkN!IWnbLI2iVLDmKw0(f}(b96grfag4{6ltB;`x5%V&g`C0eEbKWv -z1)HH$oe3}?a}-j5kEn#i5N1v -zf719vT50ZZ@U4slFDKIZoSU|HUc#tmJhaYOC#0=W_lNb!uPhr+Ade@pg?`xV4X;u; -zIS{KH5A3~sY|Ykau~hwz)=*n2pV21#Ge4vFdE1P-x|11uZjryqQ1b!8FG+>eE{tfK -zbvDmQPNz}d!qFxjNbM)BMWn^9xi^YFwvxZ+T%QZ3R{{42REh97Z>z?t|SYH34N9fmaSC?n!)&9vTD949 -z%oP1h`U*~mCOn%SgH!iaGRSAG!SG+Z0$}(4iEGpFUAwC9U`h2J2e3OQ#_%xuGnfqA -ziF;99B4OKf!}Gb)cfUG?sF3Hyg!3LOzn-;WuMJsws$bsTJP@Bip)x@xV^Np&hnUnE -z=@wPHB{hctQnv4Hblz -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 -zm)P3L(cw0o1o{S1wIr&`s^D^E9GuQw75C -zEOZtG6H_}#E!~+5r1O*2$GK7EqmL!|C_HA@2dO;j9+^kWo(0F2q`GLWrM{1YDg0X_ -zSlLGUBZad5xUs9IpMp5)6v!?<>I*{GbY|-U-dZk@qLE|ok9GZjD7say^x+FXJQ?fy -zcZIT2b1Rj3&ca&z@xgA*gJiz^2r;fcqE#y2rWp_b@Cw*;KGO6ugcX;B)DaERuvNq| -zy5r`k4EEc&=Fa)%NGb&`kpjXTSlz3EcbIZM*J -zIhGZ7CXk6+%F!o9qs|#P{)?3$2&)0fRgv#L`XlQAy>MU$Hl9Gg+h=YA#qJ@Dx -zkOByU)AsSSuHc!ry$d@Hf=-F1xcpK*=(me!xJUwV!f<#Gr>Y^@dMq;su6L2ueS{T& -z$K@%>UVi8-D6~*GIf5ftdgN9&Cy6GL+?5G`@9Z)=V&^^ThCi9HI$GDtMSK4tE=|4r -z$^6;tHPLxtk1F25`|sr_-cP*#MI16pm18@=G^OUVw0`@RXYew;^ubr7wat~}uTV%i -z7e@GJ*ON>qyHH*dA2`l(McG7jmJnJrK?t&ACR=)I+RGE(-&`_?x)D!%4>zB)?0IsF -zZafSwJ@PaOD06n&y5V>_uE3j_BnY%4QsA^5C4;GaeGAYD&n?B;kxaZuNSW}H+6H+L -zeSDE=n!JNIxWtIRJ-0v@?L=R3$>E@I94znvcxqf_+>2oRDSmfG!+Z!$wr@1$)rBsc -zr@v+-5H)EK$DpRq%@7t_+ENuRW -z*xPx?2N~>Rn`iyeGqVJ-QUd -zu6eu@;#3rmcUxKN+~-c$0JXo+-g$MVw!R}%*i*bWNBy-3Cr=VU!NJ(uR!)gl7;Ka| -zaTI0R<&3KK*pKBPA#ak7>oc<7k&J5wUSIe-NK~C1AN1I%m9fhmi*1pV2JnIW9mPmX -z+*ymn?a?{z$diUrgw78^BNYSg2_%D6)${D%bJ9Lf2iEb^8@tne@;x(tk>qRXJ)L53 -zJ*@u;we_8xLN!; -z;ebufWASpG3Rac!j@G5FrMx^rrEsyn=>XygRXoy7#zbb)%!xaN8NceXkr%MZ6}X0X -z<@olIS8AML;Vj!1fr8F0mzZka04u>e(t*oen5I07Mx0LU@W?3!lXf|s$`9|y`*G;U -zow0pZN3$(9yEMTyKT^Z}7}d>d5jy0T+F9k03aQ2b;qu#x+8Qe+!V4gaGqJ^=ucyll -z10dm)0M}#qvZfT=2ToDuNs><@&O7!&QZ#=(Mxr^L*wWQ@}lXIX>^$XCUr -z-9CXQjMojFFjs-tP?b)H#|_IqP8ph$4iEm`c*kxmA9${3*~Q&>nQhGHuf#-xL;fXu -zX8Dx!lKe&Ze={+HK9Q#U6a)w!?T+QE-VYAK!sQGo#AnST%COE$Js}EH(+;wtCDq$9 -z=(Mw)M8eno0fDMdd6oPP8HE+O+!W3;H^_t`&PGe2e4&s+D6So`Ft^rt3rPHyHZFf4zUPK^+h?ypt -zPDC4?f`VbLr$3L3t~==sk|hYovGBs)KZ^}Iv?5vyMIPdPR*6!dyk94nKu4ak9=%In -znC{~&HJYLd_t#~sTLL8L3G5t7klSd*q!4*GQDx2-6qXf -zNx=*srVv+B>u7oU9DzRHgZq+Xjc -zwe{+FJU$a4``LD=O2z^-$Zh6SP&`KljIs2nrOyPt@}tH!&mJd))8NuNT1Oz`#P&KV -z%0N0GQZ3*@U5UlAeRabZIBTn -zPD}bcmzSaMOHGa2$k7T=iU61N^)NU=@80aUDSxelU_ZYM+~r|^d8vXFD<1NTYs1d1 -ztcz=}s_N`^tceKZk^2Q}qryf}1Vd0X8EU%2jRl4hxvCPXnx5*_P#fN1dIyn5`0Kc{ -zFAl*48}troGn_ZE&ZFSHxoK-7ad-1-4S6;Yci;>mkF=c795Y8X&6#8^pjJQTy)vw-xq_g##_1!wjUn%6X -zsYpCiVt^b76DR+~?I+};?w=L(U*1*xonbhbAWcg%4ao$U&xIhQwfE&T7?euCK`ylS -zmCtnDX0nrIXg6ka*>uQp+tkB;!(lZpEZ>3J -zqn>qJBPg5JY!r{Xo!MoIXUrWOukhCdNtt@*4O2U_=kYMDVsm2ck1RFnr6jn*zW*wl -zVU7pQ`dRmf*Uy-2$o1yb^H&kQ!w+}&(!L`dzpz~yGKhZ7=+&gQVJMb2s_1@xKUK5fl<@GkeYZV0tcQusX5S -z3mKE^#VC#dXIDLI*HWKFZg%qIomX*9TE{?pU}7QiTR=rW%T2uDJ|nG$6Er7|x(|SS -zb-H(JUhmEQ%ClnzlrE3VCP|I+O>~N_ixoPgyWBQqLn`_+z0_(fJ5#WUd;3dicIArV -z^3pPOC3*^le%7nB1P~$BjUF?YXk3v=2x-@JY;14_ywJ*yAL4#Abpr$eWxz+Lm=Mbg^a3v$_wvGeSJZ#+a3X{0w6=9y*B -zXtnW@>qib98@Ys5r?0b)UuWr?-F7DoZY6$`u66{^A|Y-VGmla -zi|5JKq&Pd^Vv+-gR-)5`3EbPA^^5N+XWApfQ?~5TK+J$WRG`~Yory?QA&hn2QNXZi -zW$Id>s}oZ26)MMqH8B=`8ByV96yS;L^1d4nGJGsZ``T-L2agmTeh)1JF&jL!n~${) -zAut9(MKMlCEoE`#cV{U5#}1*{B36-jS}S^mq|v^E4IEj7=`WwG?KGOR=Hs#7g0u%K -zKi{z7OP&{AzdjPDj7c=qMOtS1(E)WSX(O_Y0zX_Z*Z@C3z`wIwDn6|#%m;Ib(Nj0~ -zlR^RzNIkD65c^!bw6Bg#;~-O~h^6HdfF$#q@!1xR -z5j7vD4^0sq$@OM%I@6=A{TJcj#fumI*!{BK5~DA(2QfNucN$XO#jJ;v2s9KR7Pm)d -zCWigJ$j6U+cNLmnmeo$)ehMm^aaGuq^a8fh-DpPE^{G=)iC&y#VBU_xFJfM+EMf1wgI0ZT?ww`!D5{9@vT}k^6_{vyP4UaBAs+>%stC> -zxY6-^UMpq|PHcayomh>jIiGWS9Z@hIMVpJerhj_=!O*!*Lgvr?c+m13XR81ek#tsQ -zu93~8Q4#N%X~*rSIY)k%LVL3y<=I0x!Ja6Wi92Li+kq)9yKvFwaonzxSXvJsM}OHM -zPxAH!aKVT#J>DN5@B8E9ZM&tv`Q!Zq{iz=BfBK7O?;!qnJ3r{bqA43M;nGRFHB$_d -zDM>L-rs`O*$Gp~ca -zEbBWVWPIXs{kExO>VcZfbYl=a^;gT!-qLdNqq2SL4+Di0%4N!N23s*d?5KrZC6HG5 -z89P|h{Zx`r7ZaV9_eap)oxc?Z{M2&2$3&fss<%aF# -zAtS9sVxzNE=L0wG#xi?;CxNLMWcMM!yIb?Q0TG1Soh~%{@E1e&=C$a3|1jITS -zPpBTc#QLV2mJ0FOmd1=7dbA$PEXaQWPkPgznZQmXP9!=j8xn+l;gat7}s?*>uYm@~K7@anCAmMmn5GTUvA7cL|dU!1&OYLx4 -z(m>FX^1uGC+Z)J=KRpNP2&{H4i(UuC38Bv%qFVIPvjAL;S8F|VsBZ*`9eUp5RQ=A~ -zBN{jTIQ?oWJstH)bi3P@ySHznn*}o6 -zB?3Tx`01y|mtS+P-zVU*)neNmIP4MeQrhP;V(wp)p!Fy4^pDd|8+-s!orP&zH}}*H -zwQ|=BsBP4@5couD{tdu6ZeD)yj~}eWRR2_$S78@Hd2q-S)aQ33lmI3656$6|#je?w -z?!s5U`f7thor8T4FVN>-EPCQ{?s8Mw&@3_&lo+9=)*!LCYT#f$F}4U_IIH8fgrCQk_~f%L)8GOBt+%tc -zp1?$*cqCV90!KJV{M-yCQ< -z^0-K+m$E1rEXe#~CXO8Z0myLu+ -zZcMr%@oP6UEv+BZt!#rHbQIZUqxSg){Of?2?%hM|Myh2;cZ;3~K^hcJ!DZ~HC~l6R -zJQxuiFHA}DF$poXdkuH~Bps|y*ihzweP#Wi3@%KUX|-RcWVxTqJ=(yVDTI>-7Hl@#Q*Qm*st*SbI_ufafvaoo2JlvXm1h1vF_%d}AOY#W>T;dqYe= -zF-<%r`TJXJN@g_72WSzOv>O9fm6$T3CoD)6OtXSP?sJAy8DJ=L-mP5DINS_(ugDUM;YL22edimy~LJ!XKbQ&eI(} -z<9Ld9bRc12kwLEN1K{nI8K-_5nyC$-wU9foLBrv=RrcSb{<97qi2<}f`#++_?0YVM -zoYISvP*gjfCSRQsH6iglj@aV_GGyH*leiF~Iw?&IDZcc=&`7z0u=Z%jI1$qzsLJs>o -z$gS~Pl;|l@2o_Rg9&iY_wS`jKx&T|qr1+e45s!9%`~EKL_jh@|fW1xR6A=;1O~1Qc -zoE6?hJCg+e=CC@g5W#~T9`@iVz*lA^SLt2Q`bpITa-}2gx2U&H`v6mOWy6Idc1M~{ -zBAJOJGeku*k_N|u*75@2zn$Hi#JvO;*_O3P8|PpIVGS2-n$mnXc?4p-;Aml+<^cTb -zgi>@Pkok!oNOfV~$X%~qAy(dQtzS|#5x3lI+z?$nLb|AH*Yz?zsVA!fUsgB3=-|uK -z_Y+?cafyUH18&(re|aP1T(RUQ4suWXk_d^@b(SHGT^?)`C_%)5=u?Q+-YmFu+v>qc -zEBKNVH5R~Dr9}m_tGe?%Z0JraD7_v5bt$v&9pvn}-YkjD98 -zy8x`gU`n@i;D;JAL`D~}p}|S_jmr~Va?CaN>c66GwE4ooKe+jo*d8`F^uODe{Aayc -zFA!osb|g2-+YWJ#FJSDlt8E`413H)fD95YlzJ@NcypzA~L*wHPAsNZf`V0H_kL-$l_neq~-RpxJEwPya%MnKm;2 -z*{lzDfBbafh;+IC6A{r*#Ts7H_*_`DR-b(Nr?3C~tAG9C(?9;^*R<#w##1faMKS2b -z{3lBP*!s^2&Gp>QA42`G-IM_TT>aumAkj -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 -zo~~S(f}Bz2+zOuuXW}Cjy -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 -zKYX8CNpUOpWlm~~ -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 -zEzJ~ApdXqb>MfV3a`hTWYTU2k`ixKF>E;+* -zIl_Rm$OeRq2YhoG(H1j{8i1Y^aEg3(($ocx9}IBcLNnF%GQxkVr2(GalQu`5Gw;GP -zNP4=|w+qhpYF#l3k{W`j6%NI>fMduTe_glX&HCf?QbiAa8h9BA%A1vBSxNSh!02k& -z%lGZsFOb9!gQW8&ok_H|W@wNQygT-kQbTRr2WFb1Ew$hlvv3scY9Rw;zLo}JvQ^_D -z6(v>|FZBBU?dZ@2z#vGoB33fV`4)!Z;m5j<%LkuVf>~+4!R-KDh<1EGOgUq=?Zp)$ -z`w{0~(L$#`e>}C>25k3_^so>9@q?EBGYeB9!V^-KA;LWNbVEbJ7&erbJ`71rhpZM6gN=0#F^Z)r3WiK2PUE<;DP7u?_2L}gpPGY;D^W8NH!A}CmRVRV!huKw=^e3kMsnC~ -zjn^rh$4Ax@U=0SgEV$?$CdQyGQz1Z@1SZe}pO07joGC;!#@R^wOh+a$gGUTV5SUCu -zSvJlsbcw#}C*3e)Ze0MsR%___w@&RTcX%ghQ}_oU7F~)k263TTT8$11TjW_&OR!3k -zjRPW%!p=vcX#jgCiKuc8Hv}{ymd%L`{nn!vBe2npE<10tqgq+`Y_RRUmJyeXY{@k3 -zB(21nitbB`4KjwvViz$`KGuR!K@r)v~t=sW+ -zGvQix8AjC%il8O>2R?k~#P`_a64!YmBi6(yoosWL*U_TZZA#B%MOR4$q^yA%5nfM_ -zP}w5`uM!9}Dej3C2}gyjrbP7sjjwOUlKmK&tX`!WK{2DrxUAP`Vov-IBlB(T5O<27 -z00(e}oI$q?iKx(^q`~|4z;|?p8%2F#rN`*W-r+O$L_ktnQ~qA(dE5P%pXDqvrJvF^ -z2BhaT7K1j33A@OKVULEJ1)4M0(|;na+9F!s)P -z9;!!4+y{UIw6U=jCYm1tTEh6HhI=9q6To2FD9#gdkxK{dJb#X0t{@R2tdqdPB9S=6 -zvPN;i0vGl375Y|HR2I>zn+5INP>IKH!zL|RGKpf53Mpc$?5B{H%Gk(c30>%D+$u=# -z0pCE5-8TC6n>Tmu@!P+yh#bvM>FR+_Up>FUIla`0HWLkOqIN7aKnz5(*#ui0oMHs9`Hg-r(}ye= -zE(Ef0Q5L%MOmr06gBF!ImmE3J#WJ1-67Jmg&A84~V7$XVTfBKKt|0*XlhjZKLc;RA -zG%Im-q#sV6)VPWH*BnR8*}rqhnPe=7CJ!+?(}eiE_*|zjEn7_|Qa_1}Mjmx59V=kr -zH|I&iB&FpfOF%T9>^|w(o#o_8E<5cz#&h&$9(b606kMsr#<^riAEXQ9RRn7Da$fie -zF_NY}c|c5>mHPooq{`xaw*NcV^1pK}-Pt*_U^8Lq43XtoC(cjdMHoW7 -z4Qzr_zt+~bH_u8)EtqjTEl3X?ZGYP22gJF(jigMazR@LnIR4#6rF5aB33q{4?n>G*e%Ao -zDV#(@ubuAO8ns{n_+y=nTetiphBIH(ell_8ME6?P0i0oFcg_U~vxAfqhn*v=gL!75 -zYb^W}h(PGX>v!4V9kxRrSq7S5qvlobmzYMKXn4=KOSX5-?C10;7`XM@Knc-ga% -zU)Xge;1}^?NzmFyAA8|^3NJn|`4K0r?_6imVT|&TVHW{HDDp0cqBqBg=*ZQ=j?2pI -z0cX|lP3C1xuNQ(m?*>mMtfA#X#jq$W0HbYzASW2O6X-15dm>nIaT40u=o`i>+=rE~ -z%4R!iDi3m0?vWhhq+zXFG(8N9)@-3_d!2D!HzoL-0An*S#)Nj03oF5s3j3uxiU+}q -zADyLUE<^+6l2WP2$$$zK(M|ZoX`L+B=*zFnOZf{+Gx? -zu`JRa=AX2q6brplDRc!=;^4qs$U-%_;ddQ#HLBee17Ye6rlYez_^aRMkAVqaa*WQGf58T -z#WoJ4V75#nmt&0BWJl$BaUpvs$+$Awq}#TKnY;JCv1$@Ji|X-Je6K|vc5F`*N?XC9 -z%{~;Vg&w3Np|H3))V`|kkL*9A+mpVBm_h_A${A=eO5LA;ZwUYAl=hC_of}7-) -zYbq!_b`O^|speAJOWvtBm7v%HN0vPjUaP>>*dz|S4;6B0{AoZ^OnK2wc|>sW-n2K? -zG||o9>(8fq<$wH37ysJ=klDw<*A3MO(+E?-sD{Y1da4VFedqo(cahVrObm|&YC^=L -zTdy#~MJXG+L0_ie*op6Mr_d>YG7TJ6u&CYjHYQ$(D3uC*K-VS%wc_}VZ!wI01x%}^PX(kQK#dVe$20by~&&OGT@sW&y -z*VR_@f6DR6K#--Y56~N^Jo*NgK2g|uFlJ{FuT7U2L4!X4<&XI|;(L8Dow+M@DidRS -zb6`h^aB#Mw)bpGOX*)>8N5k{o3=3xB&tE!`t*;HOfj|kkNKSE`zGjmB6_=Ep)hN~? -zARF3b8yZ}85!JOTISZR<=k6@D8wCtgpr>^sCIxqdfl+3q0xtJ0l -z5Ykl_?*QQSeSx-~*pBAYrsvoG2)&YvX3sJy{B@Tvv3N3&NJ2&=h^Qms6M|phR#GVg -za{CtKQp&xnZgg~nbf}LJG7GXQz82%e5%6VX5X>jHUwh&c=#kk<5OxN;+v$gY+n7xb`=s+6KV^1E#|pZ(^` -z{pauemGjkXHm}Fe{`Kw(a~n}i2E@ -zl&egtR5`>ZZt~?Pi*4&-8wy)?&52~lsbC_H^z@BLC6(pWCs#5_d4IE!-@hFecgk_f -zVSuq@lX5OdAAs-j1$H@YH7H@1fp$g#YzxUf#KAg_*i#rcAP+k_6+(H!2-B0O4tSEO -zVt2&>qp%VO(DSh0Gx=e(6hps4w6#zDlt|~}umWxKh{T%FB0VY>@_?eyi7UI-ntRCD -zZqc-6=dExY^I%&u$r6}kkusfpZX1UjgOZH&Uh*B`P?8c8XQ*H*XDqLpm6ZKM#Tww& -zO}UU+IToYD)w^8+*pwFG^2}Ahb0qOM_Go~hUyy;LU_n2e6c$SN7wLykkryvo7^6FQ -zN_oqGDzWQ66Ppab26)Mm6OYbE7FYB#T6U54XwLj?B|q-g|w!ztk}9*5}V?PA*;)Nqt}@3a43f<$y>j~CAyt|;hB>^wA|Ni=FVWIE8qt==) -zTK4w#d9IuU_3QswO^7=yC(;N~8hO -zK#Ohpkd-A&AqlE*)CK#r8R;%8K8sBp1@MYYc8F9L;_h?IWnMoEH<#F7iMGD$PrWN$ -zI|s9b;KPZNq&FylctTuN6tXvWVh26X47n;Muy(R%kGc}WvqaOSIOCf-fNeWt+Y-`# -zpdC7q{!8%?W#lB8#qm#~DWhW90GTWaYKIatGAsb+<%F_8d<6KH&JK2gn9v)prsh?Q -zS#ccwna6iJ~$2Cg;8fo`F*}rLyiI&Wjb2bg+ol~!$LIap4P?B#q@Hbo*U(!C= -zF#uXXrN2wsZM$HLmGV1|{~^KM;jKv-pM*q50|qj{!XtB8Ha!YBdwC>{r@RrAl}j5F -zyFJ4IXpkUD;B;6YCD&I@ow{3ez>P(HURPn~qH3UI=y9Njg46FbLh4%8K!L9d@-SV< -zPCe81YP%zWcC5TV=mI%|B`066uQT^tCZRWiVF}Qpn%KuA6Hdq$T_1;~6*XYtPJ>QG -z17$Gvpwt1_S;EL9xi7!GxccSGX5+qu7OpN@y7GYXIGG?5naZ1Bh>&ai -zOAJiS+OcGYBMIW;8RiHvFLQLyvL0z9gS#POyl!Ik)XIfGs+I<)Jdkd&Z8#9$#~+J1 -z6yK**9OP9!W^(Ac1Y+@scxx&fO6+ve48n-Wy{p8MBqe73q{0ATDv^fbi=izmRD}w@ -z1K5cA5!DIcpE2qw24BKtB^-<1B<>favXrBx%cN}vZ)i9E^23iqQ1TD|3KKWS;rE4eP<&%( -z;YMm>Iqx2m4i(T6hD}FIwTkMY$$xnU8p7v2tisMHaJAxMARWz5ACwia5+l!5KKBhx -zY2SbJ%MTNn<%xeq^rnpO+pqGI4LbB=T-hFx_r1WENHWTX|MdYG^lReu?c^hBW^Z^^j!giP`!-X;mj1%_(Oj6}-)*3*Ptd;u2Lw^WJ&6*`76@I@kA5mHh?} -zr_~XA1>qY`Xfyz-9}In^Njcbs`Z1KmDsOzB9;h$Gv!o)M@$FE>*tYk}5Ao?cy8J7P -zayqAv(;n|n-zkPv)&k^L(0A3I1}K>x5c<b~v>eK9Twd4lwDFoPPPCt&x}^STj{ay$V|&nP5ww>>+Bm5r%>1 -zPC@eARmmLu<%fYU9mDX}qP9~vwm`#3+RuCS -ze}xk8cAPZ}(7meMvaTL1AS%O7kgn+ooKq6PCLZOeq7d<0b=f#&15W*I`pXahkg>6u -zeT`q2JbgcA#{2wXUu$KikMUATqZJ-F%wyhBmc^MZb>4;OQC~&gzAYp$MD}t&aB>8% -zH^|PbG|LUC1t5c_-o@s@I1l|d;=BLlhp%t&0=C2AmSA~Rk;48OaF0Tc8V^2Yb(A|_ -zCzJlVktcQJW#gg<<4@9>ispZ5=lUZmW!QJo_(t -zgD>JFp*Az_T9@TSXIB4Td*9kC$8nzdeSXCW4|msOPS2c~b9fafhPpXIBwG-f1RF&h -zR9~j2&-9I5-E(FR28O-a%_8;+yICY3Vi*etksX-gEo?(x&MwTI%a62k2K|iJA@4e$>BEMN?j4y`n-$RH@>i4@o%1i^MFDi%Kxqw#BXq -z7!one2w)VA6_%i58MpStShPHeIG9^BS5!fbSM?3_M24S9mx$VhDq_UDO^Bgr-7&&c -z^d-fY74UW)thCludq=D7DoAM&rih%#`fi9Db1gzSAu|+;lulFGP6pbIW-s43&@&+j -zJbNZ;12i~82WK>9v#HXj@)?r;Bxn%3kc4v&7DAw}Hu$2+69TnX5)~*7`l1*D3zL$} -z24AF6;zT7PgOeS%n%Q~C0cay)s`M;T%>=5^S`R}+q-DKO$WiDpq~XgW+VUP25W(}d -ztANacpk<(>sV}MAHIP$-Go@QY`G4D7@K -zh#Ob{cPH>PP+P~SLU-FzBIG3*_rn5KUc@1oivuEHJKcG1)Kivy+;N5y$}z`)7>9Gi -zty@SX_fM&@8jq@*OV+pEtm9j+C;3-R!*ZmFX|$u>)6>&FjAKs!iLlQ66|3D4g+*P03; -zMJ7QiLVwM^GNhnQg -z?M}aT?GmSN+kDgc;Pu2&uJ4VmUghjL?qvsVrq&P+G9E!j8i*8)5i5^QTGUMdvhqEZ -z#_03lR7|s-b&W2mE?7GFTfpJ#>5X&45p(S{u}>eZU?cbUgGmp|at;J-eLLYR$lo9%% -zy7|Nks=jgqu@qBg9Ylc8f3d!mu~}x4XZ@rY+$2ii`V!d4+*E15I>kysDvc8~&(1-YMiC@Sba_@(yz4{67wxjt6-1gYpeZh}4my~^S}NQ!09Cg@ErYykq4o5_SShP5 -zEtaqE3DA`hO3-Uc#C4Pku!&^yr!Iq=n`odyrI0m{I7S{~+5j}pZ_pj=^}MLR0_z88 -zQv@Q~1r9^?qH0PG?FV@}_Ul}wg=wJYvx*TRirOkb8w$0~t245Nwu1dOW|j<5Yjk-& -zMT1tWn;m|mdK|KDOvX379|>CNsn9s{Fm<(gjyX%c&Pp2sj)%^@Aj*82lz426JG4BE -zw#_Mss!Iv0ZVO}*6z0|f^ATr-*s|+kvcROb_dIY_ZrofjnW6W$?!01w2X=K$JLj87 -zz~4k8>29x)<3xGVY$4I#Z7ruG!)3d9 -zh|=^`Z2C*doT|ggN{G9me-a$$9K#)l+--u+yfvw#?du(=I~A))YMTjd{Xtf@#y1H` -z6drE*UV1*nXK8K516s#8ACxQW7@3c|brBA6{vKTh-^8sG6GWk4Kg -zv;Tg!P-;+@I%Y)o

to}KJ266#&dhyWaQnQ*=+Q#?xEPz -zp8=0CcWuBY&yO2ru~#-{zSw+^nvh4Axshlus}bOcSt#C5GBAjQjt-ynt^5Nc -z9-!3cqmK-f^!gy$D0ZFns8V%{r1Omn430sl&W!3s%2#oWF43BZi1;d0Od7w#* -zk!M!ZnTNJ{3mBo{@s;DNN0*N;!@Gy0BSKr@C40l8$(c2(3NTt -zF402U2ll8pWBe$pHKJChN8}nFJ=*e20*c_PYZd6gFKjW;c6B|*J75AK(+q5}GazvR -zJUwTtcAO<`xN35=O-b5!Oo3IH0raNa$7!NQp)L-l!1a|&MO6S_yl&FM?C(jE@)N6$piMp{;N!2n?)>H2V6q -z5fknI4TGm3HAqmr^O*_~LK1qC%gB73%i$e4SfTWs0Lz9(Hq>wKrKi0)XJ{(JaoAtb -z^A2)Q?Gv>>sK&&{js4|8iI+{th+-bJ0ok8qb|_5_B+UvL9Y{RJCuSvr11Sqpj__Uy -zv}4EYhJnVdkA~d0;3g-*DK0_O>Z5;8clHA_FV)5{Z(Kl9VNLXJlEyH&Yi(D -z>C+kso%@2gfbcHKulRH_P2BTIeV1grB9&$6axSIK1o^KMF@P_M^JNvkL30z2u2XK? -zk~}(6Tb&)y2&MNZCc-oYA~0McW(T0 -z&I*m8Mphsh;Mo|eF~qsXo1qbMNW77Z;C*c2%NK-W-$HjTlc0)D8ApJ&fM3O35b}jF -zeuZug_RJvxK@H%J$%~|jzd&mJtx)dFaR={~Kr%4(##chn{=ct(E1IXG`kh3gGi4BG -zUk%ywG`_2o^)?>MgNXAKnbE9r3T!k=C!G{VBcba-PC}nd8tLwi+9O4gk3o?PxQ<(5 -ziC3|@K7=;2C?{qfAroNo<1(w}fs7-9rM@-8Y6sc!?JP={n+S6hL=Te9+$?YLyDu79 -z5cA{dx1H(9J;EGnd{}PToh?8obSTqx>H`H*TKFk2wum~o0BI#m@mdyW&`DJpUq8`V -zf!EQ0)hI6~IF@LlLFWbk64kfR6cT}C@(Qi7LFw?2|NYB=)<};!lcAYOTokdk&~y&i -zt`7zvp`djO$iX!Omau`;P2SeBhu_*nW;34l_ycE;dI@N$`YAF`wSMwVoFAK~rG5hP -zte>XlDK$?;KMC!ClagBjpyzF17TJNy3ZSbX6R4+F0C+$fnA;VcwN2zrH}%*Tl@n_0 -zknf}gg&m3lCluSE>C6rRSFuA&J5)waXzGNVT1uy!6i&!_d+oHkKD9%QQ?7C9oVTCC -z3~*@L7n;_DCN(mtzzx;YBr#8>9kF?uwohiH6H`lK=3Cl6&Gl1m=1p$CL}}tmQ=&4d -zm1$LF-X_i4Brwl?QO^T`t|$6I)2@p>bJ7H4_Qtv4vt{yZnS7a-Nxyj+1hnwkB6zk4 -zzPyW|wTA$S3w5(uaD9*#fk>|# -zM;978eV;5v -z-rC5vnb9ip!qYVUdC^v88&1B&xAzzURlDXy$0Ki|t?~sMN$)1XIpd*;7lW`c9;;AW -zu}QC!G#a;#J}>mr!cPTbeL|jjf*VZYU@p=|*=CaWA`6Kst_t!HAr8)>DIRMJe19+% -zv&sT-<5#Po{K_lJXZ7Bzh?@_?Pf#}q#)V$C@En~mlhC9oXHR!lyE3sz6x!zmw^#8% -zpIfn{qLe8wCg{eh+Y$6bLH_p=k-IPZ!dcD<#TCu!^G4eyPm>eitY6Lhc5&r@OGCPiiW -z(X5NCo;DeSSy~#a2I-rXQx|-wj;DgH4z(kXo}m`3q7=(ZOf{|<&8pe7SQr!a}Z!xTUzapnqQlYU`n0`1VQ>OH@9OG+xf*{w$QkY{0kgSn9%J~`m^ta;%$T)Bx(RU*djAOpg^ChgE&lp@ga3g1e(KyZI`rSO{Y -z@Dt~k#rGWx8YOISeovD5hcR417jg+nnp~X4pDve_^v})1UQppJk -z-V@i{RDVDt;k;O+ujvMFAt2mvyd2ZsBfZc=k3M)4CDY$EnP=m#?&cx-VmV}OMYW5D -zbZHQkP75AG1+thGFkDM~*J~>c#aW!f^d&e{;Tz&B8+5}mDcGj2ExOOLDG@_`H{K?@ -zEgnPxRI^?Z_3jFyoo2tGt`kD5@pc)=jtuJ4HoZ?wc%vU!myV;FVEcgyhH+Iwm5clKW1dvov3-m81J;puhw`?bA0&Rby8aD|)uZn}`uNe$9{tUu -z2ao>t(F4v0RA{yS>;JfZ_$TYX{-gE7zgR!~@%rI+*AKt7e)u5;@2?;JnU3V=hw$&} -zb+Od!LccI=R{!+z|MxBl?6^@mW; -zM-SH@zw?jZ{4eW|?yo=o&idn@QOw`&tv~wi`r|)bfAoP)ei#4$_?;EK^IP~TYQjH$ -z6JGeI>mU5V`rUUq?Hx+{bp7rJ>mPh){qFbH?|w#U@7-Vj=$-X@57zH}x_t>EQuI{wZeo0DAV|;rhq#tRLK8KlpV0;5~YNxPI^e9`@D`zPtYMf2Qzf>j(c~ -z{osf2u=@M|_CFu|@4xwrV6XnW?JF6So_a -zc4KB$Hzq&p#vr_d8*|oaXOVToxJ|ne)oeuho4KNRBP!m^HSM;EzVb%YawDpYHlwB+ -zQF5~p^=2dL(~YS4X7zLTJB4nJ(Cr9JNIN)jUz)gO6SwBXom(fR6U^OjU%Htq_uI$_ -zX#@(}uev(85&y>X(FOZ@e_>zm59~clCC??1{0ez0=c_H(=#s?+2a4gQw%Tf6_;lb5 -zU%Z+pgG5}wyPsE!JXWgN{=P^jVyxf^*>#L;a=fQj=nRPGeIn-Gi2@kdXN_`nt%uo^ -z-xG-D`@Xk93ht31Bb2dyVeMP^z}``BG#vGhM*Y#~a({Gm49SzUfKs%J)+-w+mwYXB -zAN^ST9(rWy!3VM|Jn^pO7&os|IR_w5eI$&te8LKA;#RvU&&l#@+W -zZp4VS3HD20>BDCQ2(?f}5#>)An0{TAp9G_zm}|(IePt7fCPNOowbMMb632_KN86(> -z@hAkMUZ@NH`?b1V?lo1~n-D6mx)`!gT_t1-@&=l#`NUiNccOHb+=&E;v66i%E~X-r -z=FWV7d^oxmO73>mH$lc{uJ1brli)*DaP51uG0n3$8N|neX=(iv?o0)=lN> -z%VjuJexZI3t2CyzB*vwe<5$3* -zC6tE#QWFB(#}wmq+62OgvPrZ^MZaZe3L2U=O>oB%@eHH~b86IGr+wN0BJl&k_fb&l -zoxp;^n(>y3LPc9l5Q-kwj>He+i{9{RjUIv`#HKvJYp#;MkO+a2oJPL2UjVZ&OO)4f -zffoZCXlAJWW8?ig?ukZY_YubrX9vHT;A)+Y`w8B9?nHqyLznNYxMnsJGdB*seG}HW -z9XH7{H^QA|q}3&Xn+0!CmPw~_m}^BEcH%O07v#io?Q-T;#@Ph(98_!t%smBh`lRrk_f17vE@|CN5BSPD`jgCr -zazjIC24{uBb$~U1g%3`EXcUu)Zsti;VNkKq@|4#bM|aLmoPL(K(VPM5KQ^BZ>!2)--3J9T0I<2jpo&KH{A+HE>pP?dHTb -zd4jO6Zd@s6N##x}BGUa-EJ7VzXqVn|STSZ4=fFStp;*Ekaq0l&e%4Mri>-0x9J%xp -zo(T(FyqelBaOLt-pk~^_nwo6{6mY_eg{pw&>C&`ip{Jl}`GP0QX`wN;+X!{Ivw)cp -zwKbGUtbHgfNc12e&~8}T5p7v+xACH|u&LC7SZJI1G?`ehCH7&)Wr5w5rk4w+B2X9u -zkx$T_6*`00aTOt|#z~c$s0B_)qP@flI%FRG$N(8<2r8oU_!e@0rgISMwfIbzkhpnJ -zVCyh*m8v|RtL^6=h$9ks-~^W>?ew7rL^t$B$_{xODd?hn7{JmD@rEYkh@!T4Fd_X& -zO&)k&EG!X;fTyE&0rJ%k@(~g(f;1`lTIM{7>Pe&Sd%{3@)~BPUFAzJ}_A2(TtKC|j -zbcC}$<8y{Z&lXz<+&`cTg0=Ltd!6odXs=bGnEQ&;H^&- -zNT+iRagAsaO6E^afgbB7Q32(UPS3HbNu#406*jnp-We<9(LjaaXpEL-uPQ-yY1)KtDK8CKN&;qyYD3zn-8U`H -zYB`SxEXo>_vfy9EG`U)yhhCVuMeIN-bLR$z%T^IWSt=E#8| -zNK&2DF{otX>t(@m1)~X8xUPB5W-QgD*F)(t! -zicW(R?+&AR0_ul?Uq}}1KyL`c(`CP)R>z}jTC_QyQ5GDv -zV-(YPqVWu*6cB~Ga}DOUTDI_LPdaoOwtLP^ntR$!q*!VUh0Z)gpPdl{03J*WTrDut -z=;_G3=0xCGos3MgaUA0me-NXL@?=#AF9xP&ygR0KLYeXCo!<%Ha56E23W{M?nowAo -z#|$JYL`$pCFRYqI#BS~ROwL7VPT)I8zRi{(l4A%o`T0^yqD7&f7YjKR8jq|`UN^b~ -z5w}%}`Ai_Y>7$Dz*U4Uo4q^&22D$&gkjlSX?I -zpC3sdX)uUs&??RNSOO#`%wu(3ScF~PZD(R+p9XzDv&+WqnK9r^ssvp-ZtUIYT(?46 -z1x4$EO;lx1RDo7GK-}hKHq{QSX;L&*gAW1vb8CsZwL`Vd64#EXw -z5I72pyDsc;Twsep_>obr-`MF30sz6+j)fuCPb`9N?t-F17d;W9JP~X!h`;32E!y)V4=Kw85x81!~Ojyy)~7-6&dw6hX2usK_Oe -zQL`7o{XAEK~hUxs-^ -zIKR;Qjo(Z+TpXOpfl1APu(fUbrQZe%1?@p;CundhyiLL@zNkE{ -zZ!hy;a9%b(sNICpa-iPUae>^-Om$V`BM2)f)hEhr&7iCzKMA3pph`+pMOZcHVa<5N -zT_GskG89Yp?ryhHOd_bSCWlN^V2RYTRhl%0h$QS=SsWJrEXAqWZ*_HqfUY -z4y{`~I}IgwFRJ#aI2Ygd~Cps>j)b#wF+%Xi*t7Nv!T{973(kt>EHUrEB+TGeQnT}-r8vZ9k9oDKYn -zI#Kbb>bPlzj%&?c@alBN)P8lE<|<~MONMIQIl3&;$icmv=SdSo7cEuj(a{kXDw94s -zpTSLNDv>5WEJOHWA|5#3uAFx+iXBaA&59oP?Xo8(h;S=MTxX*+ItxsINk4VjjwS0|oQ$Zdp8v*1r{|#fk(5K3UI%RpPoDLX -z*vOBrsfvjO>wov+O%X0`oPScAl>7E&eOGltO>gvNE>d)A7n#rJiw05p0<|$W2x0mW -zrBVb&6%FtffB|vT#L4%Aek@VaUyx99x3j!`_NmKxwFEpsIH4r)5c#j(I?j|Ia%OnH -z03nZw=F;amB}iQKOYy`}(C9h%&Wi&R;zQ^zor_=`GHGO&)r5rTOGk%1<&F2&Xn_mX -zBKNIxw*dh`4g$43>Ckw}3eq3Q?~G|VepAix?XrJzs@jdy;Jn*gL#xU4 -zifNfb(O%40yd2;_4tQf^=b*C(ADIePjqmQvcbZk?&KhR&Ei;o{vb*WOD8_^A5Q+7U -z9)QGOz#vvJQ&vQS2fj;~mdn;IVujLhlZt9-FlSd8H6dim29q^HugOiVI6g6L^i`w$ -zw=p4uN+scb$+AL~BxqMfJPJU1;&E#T5f)bjnNjl)4&0R$kJ_R+dcIJzyN|O~t%3pk -zhDFU{5KsMWt3|J^xCl&BbpdoFsTe|ln7cdY4h~s_r?Xt)0P7#%Sz(TzH-k9oyxN8i -z)eV@|sn6CK@R3!ZWtGzc$oDL2hm6LfFQ*Oq6(Dbj_6*Wf6!Ge=+GS)oQ+P};RNUDU -zC7SsavXP5@REf6$4;jGx)li2w8h&(gHsXI_w+Z=YTKMot`auS@DtS++H!W -zq82k!_67@YmgFbGV>++rE(lDBa1O7xdEdskke@wtoRc81axfiWM7JqXQx*8}=x*t1 -z9*>T%n1)aVtS*A6V<@^d>3TIZpT9#df%Yglp2Q2%wsMhf`F2cfqC8dvNmJFdh>M-1 -zm3i1KIe|aq-wQ>U9eGi>4B}Er`bDU@alR~JMq4u&H|AyA1n8uYpe9_Z{ -zE|s7=yfHlL5!li;#qWx6si!H8*mlMNxuivluq^pqBC=bgB+;Bjjbt8eaoz67m+18> -zSs;}Z$pFv4JWB}o^1|a!;eo)qsm^Ry;Ycz!A7-GJMLXJqopc-&Yjl8zzI)KA6uguL -zG@2C93{X%&@Ao>*2$XTe3KvkNwr!ZWg(`__->FwB{~+CUC*;g33`$G@Y=$JXost6g -zc0&{(kWyHpI1exjh)|oO8Rz8jrPcpnLD%!p=g-Qgza2(g&$U9M3c&ET9xz)zx^w9@ -zc{z)jbGfZSTbU|Ql!ddBV9*s%aYr0O`VD+;hxzAyBQ{|R;=%A{Ac4Nm17D8eFRuEr -zIwu})<1C#DN~pld=YbNLh{a#xK&CbU9MP!=)pDnBt~~P6b07o@M!fXU0eLED?@=j~ -zS&282TPc|w4w%8Vn+M{Pl-#yH^kiFal#Q -zsH{MKW(Df06#(JHhDNahXKfR4E5U|FaYBt9@}0DxutQPcgkn21o!Oym;e?iUsEnM@ -z)CoDYlukJ*oRIVO+G%xtYKI!9T;tR^Z$E_@;Lx-$G_46uYGhI)sh=i^c{1&Y&C|4f -zG9#UsS`stg()MYtpK>#Aa`Poh6IYrNl}W8kt19z0Y2GH8Ti2` -zUW3vvANvAwXvy2DTNCqW2};wB_QUjeLhW?q@c0}>seBb~CZZ1?f-~Npn#7sdo&?&l -zI&IyWrfj%2)22Sqf*p-X0_|32Gwno9k}ymo-XZL!b`Y6&WWe)<0u4d7rK5{D(Dy|i -zB}KuU?8EC>oIFAJ;(Wmc9Y8nONize`oDLeoK~)OYqGcB~0X^+VMHj -zEIh+T?w*QeB+#ydHzu|uv#Ido`p81ruCH%x7;YrNDw~1+QJ-y3N9Rcr#61)ki%GpB -zQxb|D^BnqQ-Avs~KaKppwZFeTgWCSecI23fS}I?$TT;;_Us25Dj=~A<%hY0bYN>UH -z?aB9=qTbbXytaeR8JFABOW8l=6h}t_`8{L+Fi7K%#Q6rNr8bZT?u2L6avDYT?s86y -z**`kJGk<~53jO(vbuofjNY0|07Pm%#7j*)|qJ)T1caKZ^%oybkJR~D^0L6GW0%R(5 -z2xlBAgY55wL9%zlo%}3~ccVZI??#<26Ugsw -zSh``5W8HA)opC2T?bJW*rg!=QDv=xRj65htZn$>Cpes3H&@$Zc(hcXG@hLm+1Kq<7 -zcluLyzI@qfPt~cv>hxE3-Um918}7W1Xic?RAZQ*<*{Z=A>s?EH)JwO%tV0=fxz!> -z{PBF)z3T^jR@pnzM*EhrNADqWiUYf2NI`~+QxT@Q|A7X`j -z+(#A-9vxq?tRhg|f!;(>evQLTUCf%a#ucWHzcwu=?9)D6`tIqUFDK0jUK|DuAwZg~ -zcF1^Z%a_*Mq2Gas3(JY%%4~rK)l}Ivgb{k4<;R3Pd_FIne}+9hWqoPlDs9O8174C6nku-Kc2>OwsSvcAIYx@C;Rx_&s+Bq#w -z$pRU71Gx{*mg~wo@!?w^u$0X!lPahKwc9mA@z)otG|G}3T8BrMy7NGtl9Ik}CZ-^& -z%4uC0&%<~!3j$)5C>4AKy1v~3%or`A4ElA$EPeW>nL=yT~rytVXAntWM6H5S)R{j -zQ3kLElx4*VuT5qGlmTV0Q`0U{)nwY*N%m>m21*iPD5Z6fxspY`OcQPpPkq0EH)3WA -z(Wi$`Ae$gSH%B~l*dw{jXCCyg5tdm`O=L1(8xDY6os3%@z8$9$%UhsgA|oR+G)ga-PT7nS{|i&@MbzYBAP`SfoB^xa@qE -zsKnb;eWGqHov;|g7Rwbqy9;ZcCwaIW9zBDmu!6+t1*{EJ09i!qc&5zO;O -z5@Uu2!V~gAPkjg^a|oQ+8n>0R{%|p>;om -zE4DrUlcEvZ79C*6;B{&hp@&31ZlOf5zOGG~N$t-nRZM#IDPk?KnMx7ZYb+0F15LjI -z7xT -znbb7aRMwoZU!N+&I?%4jx28G4<;^wDWADnV9l4GnfZBQwu|orb!pF8_7tqvUO#7H+ -z9y{5BEFZ&Kqg5HN0zzCjtZus8ZO1H@0NnZMQSdN-m12P$;xbHkaF&-DQ!2WHW=p -z;Y@4r_Q_p|$Wbu&2lOzexrvu92F8=|&CN=UkY_B%_%7Q3H&X`akemMTkS~%?2T(LN -zk8O2dc*xglkh-ZmUM)ZBO`8 -zoV5&|$c|i-jIClJ*HwwW4DcFF7Ao4p7B9wN$|L(wU7xd1*tNMC-xD>G0-6pAE -z=;ftaYTXf~wpphkhEdzmE4(eeB((W9a>vQ##^(UhGD;B+Z|jS;rt)WOO49VU6xvMM -zW;BFWM;Gaq>7_A>G`jRRV$dW=uK9+28;iR_M{rfM)5xncn+bay$t2JV9d`oUKSi5A -zyqSA+c(@o{Iz&S3kciFiutE015IwTa1{YBoI1h`id2CjKf7_nlj4j6=IJ2`aj46yT -zc0QI7kulK_#_&cM!;IF%NEovc-x#S_W=E4P21v%##6K}lre?o2UfO1;)V?@qjg!nv -zg4Uv@waGEBvuv9zTcWlGp*pjzk{ko9i4$@Rn?&M-9%r}}Iw8lb%FmsUW7OpueEE)f -zlz(Q20;d+&G%Rr15;(PlPi;gN)plrdVuxas@tBc9e^voZ~nW=>m1oMu%^Gnmp0gEZe(nifd& -zHfh={OxArTBND>#>-!O@zvMP -zy$w~oa>u)J)XPIY;yHlt;$gre#vbM%(w6#42xE_lFf^EmRD3i%Jiy=K(eSWGSWkGS -zi2bvgWFwNCSpJF-)WgaKQmc?&C^qBpTww;2fbinjAps)hLL)2#=cb{1K^J+0Ys0X) -z&3X6Yplw1{(6!p};|dIfxHmYR!2ceZP -zndv|n>8D8Qr%9!slH5GirnoRqd0Qo6-&-Nk=#VgPkYazob(s_({BDj{o7j)0^ydm` -zlfC+Q#_t&-dYDugrf@hp1ZCepIu3?-{gq6>t0J$}wO|oO3xZ1|7d1wOHjP`^qq4F` -zWo1TXWkzLXMrCD2#XQxfxG+!o${CfFGb$@HDl0Q8>dPIEzR1dedCj{ZUu-#D8C@lm -z$S+pv3zpa)m%(XVr&IYwUL(t~2)!@ZvZLXpUIx=>iA@A@qgL_jFN_Yi#ZQt&6ru;r -zq9lY#$A1|t{!AM1F!n_>d~%jiHw!vJLxN1OGZ00*(~sc_v&)$jmNOOrYVd+8gyM8_)$%pgFPK*K*PKg -zS`5isQh<5Ps@zUkxEUR=DRiC7Co%{Nr7$@Ve5q4hHSlr|A-?tAJxsL>z1_-56ya?? -zY$Jyn};^s8oW8-PI?r!G4O#FNjG9?2N!LiF36&lI&tana`$s*JLd(L -z7%84vR7;QVrYp&SF=mrGMl=<4(<2$iOu^_IbmOFwwZ8Yu?0I}zmD}PC+a{3MD!E1P -z5#i|4;o|7d#oci-br$Dgq(TNQHowS$;)N8(O-lv -zB90{4NW8_YhyV>!gbDisv}nvkZ(JK_s;9Cs(3_B<1#GkB6sN2QY|t=HvN9caP8m#T -zcT`(9p&{RNMOTJR1pRXJ?H9=yCX!!4UG$YQWGvcwsG2*Mj(Suiw_G|a;6>c#W@&M2 -z7ILK&?6rw~1cWmfMdBC4MCi4$S)ctBan#;FIaGK!EW(u>BR -z#lD)4&2isY`;mk?T95LInCTg<2`k}w=Ag?-t17L!nN|?xNGh$m9q~y}YY<2p5T5~~ -z`w7I>suzsIoGQ(6xp-^f<0&N)em?y(5{e3SI0|&Cu#px)}(BO%s)pK|; -zjNsd(cyzqIBGn*Ryqf7MIS3gc%0fEB2qnzuG|7X;Pefg$e2q+{9~})JBfM>&Yp6xg -zMJF7XEXileWfV+cN0`G!G9D}KkVGX~`HU$)#;(n({&fidNK9A?3Rk#6Ywd7a-{u6By92b(sXR4N=@3>CBzce-oN9Pp+jR7$88xu6=%y^ -z9c|_R1-)WIMeV*aB7KT<=@)5!^4=>p%Ot#shc614Q!+}&0SE;5 -z`{Unb_2_L=@G{Evi_=gVf*_}7@LxZiAlOwR3bSN^Wh=sT*RkbvgcM!xrK`B?MR9z5 -z9Oybs+O-~DBu>tzQGU8`(_mGBCUN4=a=(*s*khQ2KHAPlXANzfw#mr4WP?|D`hFBu -zcYD`|qvPWvP(m(x@Tb3RnXAG_LmY%NnJv#?wdZ%+c-nC}TbwQ2=u4PA4(=^Z&hjND -z?co-bD3-8r3H%2lbml`;F|wsMt*DOG%0D@i%Y_O6g-6^z^g*~-p0%$yywuwQonbfr -z0E)^2&xdx{`un1g(`L~qn{9Z$*D%tqehY4`kX31@_wWf<)=0pcC60zT%+?AkFf -zZ+~fQr;)ItQo|-)idnc>4r(E1K_Ni=P#b?ynzj`lDLx}h9d~?n*sDM#t=P?Bo*VK4 -zNu)O7^+iU~yGyWcJu9ZG4z)vmskd=80$<<>B&TO6^D&IwpWj@^aiJk=_Dg`$eRJk3Ls15vGC87#uWskjhG>c3o$x+ch=(7 -zYu8+^7Nmtlys2Qe^y^$_yEeMQJ9jf8(k#kRq6aH$hyse*t?_QXG=5X33@`Um#L5g4 -zr48!Cy2LsaGn+zO=;+FE52V&fL)XW`$YH8_L*NLRChiby+e3gc^g8 -zOnI1GwG5_Ejqb_BA&@-r(?Ppv>RvjTIwg0r@X=ntp0 -zr4f}AYV45jqy>c?iUKDT+o9>q4rL1`w6sHI1t%1PmboVV9btLsxc)HvlD -zr_Oo%Da-(erhTDlO=wahlNw3=G)c^pX-90HrtOm%>BQ8MnE95rPjmg0n|YI)FHxGf -z(v+x7YGqngnYT&vHaSx#*>4G86<#X*D1H0ca(K2JzP!t!|CmDwR#u6ZgXVVQ-0ReM7{cBkt`7dA(=$#LnM1C#RmQ#^YKvu+T_>d$z2eEvskC>Q}R@ -wd|Xy~d*IrzrwrHay-T&jc#U?<>Ny+G#{~r?UK}|q5OAvaKmBhmKyJSU0F!OWhX4Qo +literal 124964 +zcmV(vKyP9%a{oSm#l$uamxU$GW4*g} +zFlkKIcSr(X>;yjh!{H)O5?jq_Nz{>)x_hzMzdgTVk(7F-*A5ogt_PpRV!f#O+hbF8 +zy53*^)J^vKF2DKv)jwUo-^qG!r~bR^Uxv5;xwF5j{{4@`t@-bNfAj8_?|*qjlV7B< +zN)O*%-`(8Z-`?OKen9_OxlVp}{U>2hKPc<2|JbWRZIx{P8O$F9D7|hx;k)bGo9iEI +z=SR4{z5DL|_WG|szelq_9Y`efaylXfSiBS!u-wi^QM(xlP7P{YHggEq~G +zmDpUH*0(8ywbI#D6Il^GG?<+BBVEO*G5!j+8D_7I8ZmRN2WJ#_K3`L#?AVEu=Uip& +z=xF(0eLD8t&biUcz@phtb^jOLOr6Yr7M0eWz^qm^lIJ9-5@7+>sd`TXQWMNN@*;E5 +z7&S|S`E~UqYxi~BRbk1eZ7&-o#!eoo@yAaGVa5YAAz=22fH)A&fCmaow^P;Vdg|q{Y@?C0 +z?DPm#&0DS8E{tR$FNdz#R&~8S8*~$)c{ySrxv*lVxHnKSIDtdm*V>GMXzHCB4bG!> +zmPwGa(?g?L})2FBbr?0{V|BO +zKLucD0{~U@f{wj#K{{xr@H!f})Nb4*VBCo2fq@TtkfmB*y{6dWRg#HyQ=@b(x(8o(eQpeJc+IgC{6HJ7O8fs6h$*u;7HoF47oEjK~t!kO9r@_&k0^FR2;y%CO +z;pEV&fxB+8{z`-)w_3;cJK2p%NPh3!^~ur+5Y(wEun8iW1x&ZGNw9{Cad>8dR>mSW +z72Su)hifUBYCf;yDs5`#HGo>%AgF9V&*&oK}Xq@ +zWDA%-cYR3@UK~Ajp!@7$Mb}5vBpV)WQK&coO!IE4Qt!AJKTNot*ztMH~W6Ofl55;jrX##6ykvbmVkT5JUAG?pAdhN7@*oG6d_eVE)?deA!-4XEG$99DnWJbPv4B;nFK}75idQ*g7rjLrl +zO@hb)zKW2I;C!3t8c|sg&o~yiR;?)9PWI$seHXM~wy9}U53->PLqxG65{&?8N+o)xIF7Z@pA(2SF^CV +z!cE9u6|FAD;ArFZc>U(xg1o(3AuNW*uzRxN$o>J^9n5^+nhwq+BBjp8fsvy*U=} +zWSVhfm6O;u2e&+GfVar%6f)FAVohB~IBZcCX1PM}0F-kgZ%|CR~Tq7n5k(aJQU7 +zkDbD*^nL{ImZS3Z!+2mr*+Xq@vuJd$o028h`@%));W5ibctJdm)sIa&!#qNSxlu)W +z?x5o&+(91Lsti-xrpbpxpKa^m3?C1735Ox9eYK<@K?k)P-wo11%zMVDW`IN7+stXQ +zAdcqBoTw5Ti@O~&=&;GCEJce8WWHDdfu)X##?DR +zw@eMQ=#aE{dq%DeK{TQu+>@x8OJlAkQKR!gn0`(pceBFInM*Xgx{uGo+0+_gP;kW= +zq+r6St_SQTPMNBU-oG4F({ehQ_zu)DBiF61%bqQViZ|Ask}W!89>(<*^Bf&6Xe_Qo +zBEcI5gB$W7UoUKI7c`4>#2`xb*K3h7*Q1no|JgH~mt>&q9UtP7(wtGfsT`+@uM`8N +z2XMNo!9`gL1gk3Ms)3&RmXmhwnNPnY55KEYv@1m)#Hy7}z-I@6@ +zvhI))GT11faCTId@kOmf+qi)4(K^475q|s>c$}lerYq&DJ3TeqPQ(J`@Aeg+Nj)v+ +zcY4^sDq~T$hD~Wxx=I8((88y6o4R^f7Y8HP7WGcJiLW@UE=g-w9%NN)KKQMA+l|u* +z-r0}Kq!3hxv^O|6!aC?Y<*Xjx=>ywGf=jX?)&I10Z?`t>~yhb3zOe)RT_+J0A%QKQ6_!P}gF={1EP2G#-J +zJD3*L`cy5H91)k*K1uK(#ZfX`Sfc|GCa{Gkr4ob3V?V#O0FUER+63x)ZAau^L_;Pv +zDC9r6oR|y2H37l}gu$lLPo+Ktn%c{8>c?fY%7}S2cs1Et$e#R}u;FP2zha9c{Q&jL +zl?f!>>Aq4z`-pQH0DwfqvEVZ-N*$(eG<>D7yM-;0gyQUxCOKpmeN3u|h2WOlEhFdk +zUEoH_9C1^?CbO5OgJ>Av2{Q}RYm6XZSA;a6cl(A%exaoru0 +zdXB!}3B_8*{Ktgg-7Hba!hz)sfZla#pR~Z}32UgsbXIIt*7g;YVizd2cFMnfEn`{P +zZPiL`;S>;U=Jjxn>fG&~Q5GStNd568>2yZgpLZJ1hmGl}mHK$NwOh*;G#L~*Cz0)f(x`T3ORtoHWO@y@F@2P9#1>mj9z-=+Gh3#-Mo69}9w?za_7-DC@8t@AC!+{<3y!mX)Jk=svP)OYmi2XW_8QB=$1*<&gzww+3bLaxlOtstix}ZrEU3luX}Pls$sOFVtuPj +zw@i3I?2>(PbypUZgXM+LNCJm1~ZD +z!3q(^W%A4B$R~OYx9sEe%Mbr2x{v7+aR*i`ru$esP>@by0zEUBBeKFSH>%yaZKn@BK5xknTSFABHm3*C{Nbt$QS-(_C4Zn|GQz@q +zd4zo_wM@0;@~Uh{#|6$iS82AOSe=XKPc{^1xo-Q} +zMz+%~^8(}`>Um3Cx^AK@jKn^Qs*_oKI=?EwHkNuwu|+kB~xbH>o&n3k{2G3aaLY($tA=2IXAK +zpsTM#d>*;W>>g{U|5CtiC4I$FI9rDomhIGanJ@aJhnpq0)*&IU(5sP6V?;}NwdqBp +zx=?&Q=iz5BFVI_sgU8XutmB-k+6jr^1qQu&X;QQctjW0U660`!M)GbOSZ}Rdy;C(< +z1?JdE)n8;yEfQ~WiB+WqJYzJHidmO9u%Hs*&?OcXe_`S;vG#Hh>JkGEYTPM%k)?3u +z#E6jXB721VIz;4`ct}De48cW~q>iGwIHu9{PNsu=#tbjH2N53Kp0g<-Xtzps7nj7j +z>sB2vF`a<_y2zM1`xyqk)nDSw>NAHu!^iN|lOHsa?R2?5on2Y{Al^Vgg*?9y6z2{y +zR3}#qc+-JG%@>S*>JX7!U?6zHMGqObX_SSqDGhO$1$q;+?q@74Q64XHX8JD6pJEn2 +zvIqcu<>Y~NNzCKEida&e-BeBaCcphQzlrZ4C3Go#uHlPS)sqDU(ZG&MZ`zD>S460} +z@`O*mqWK$B#o<;ZJtEM{F+=wWdYzze67(iPZxi$`L7NDa7fmnop6s$-%Hu=5j^61~ +zp~KgzzzDl%-4PD^fg*8bf!}~D1QU=`{Pf7bk!8>_UmngAsr(JnUHDeVQ|X0b)z;Je +ze=9H#&nI-ww{LEaZ*Fd~1my`Tud;h^?!F-!pd+9QA6*6xw+$i7dxFRjGNQ*4O(y|0G?RZN|DdKVyl!uv%wA=_)p(9Ta +zAY$LYIo`eV!!iUKc9GF`2q+^!8%!Uu1_Ih*9~o_kfHDGpuSMKz07!x2t{>9+O4|S3 +zYcz{cp!xlmNfKo`t}^X9LV1D$mwTj5miOS?dgwJ4O*<;%*2;KxW!zF3cM<@m_$`%j +zO93b%P+sL*df80TYVnn?SCKu5?{q$;31nz8zxhTy)&CKjcn+?9V7)A6Kj-+8b|A)5 +zn8#9>eU{~3efi~=kIfGhHQlb@JA&!cOhhr2hRwXWWs1$zV5DdQR#v(>mEW9UZvsXo +z5eDay%c&mY0%<1vSIUTJGaih-U~G-X#;Igm)2lC&{RbTB0dS!`u3!%PvI8<8PxK#@ +zW`p)mGDKF!GO|ttH=)gu1CKT +zPjw()Wu;{P?Uhp;g<%;I$z56XU*gi9ze8U?JVrB-Ba?h-gZtOn;yH<`TVrP +zS^l~v+3eeQWcnfovHNLkBIu(RXvF2v#0qgF@q2J4I;8deLZ^=$OP{O-0+h^z{nIyl +z7-l?06nn2)k6c#4Jm^|@Rj@lXE>z09RvS(CBGNt4il2;rFAROY&=G~+lKFi!OmRji +z*CW>5WAjso{m}LvhkB>YuWK%}0;(52?e`=-(5*OTbgR!4a$y}#Rvk|53oaw8KS>~Z +zBjLcC%ueIjd7&XsA9SzIdpBx+UqZkoXWq`p?ZX#E@$^I`DQ~-xs~(H@{=Kh4KJ{Moc4>>@DQ1BS@VaAj +z2MgTSp|)RKYS?xfD$Gv=mmBE3?lWihcb{!SpGEh2R)~{A+2UfeC+$;ie+gz4sw;64Ybr^1r7W06|J3AnjJgAJ!w_*C2>T +zqr1`FgsqJJK&EE7xDbf(+Pb8C5^_8qofL2Kb7Zi?sxx69>1iuO5@5##=v~QlbFDNx +zf-K`Fz2l9DnL*jf2v_z?;Xwy$kl*b^$r;IDh$1TcA)O6NZY4TK(N12@O?Lzo+6FYD +z40f`R@^Y3^1CrG_O=v7G=c4ZY-2lVQ>%|Ad&Z&C|kyshpr85j+l8r4^@V`ef@B;DG;d +zD(;-ExKrLFqW1cnTq0!0;q#W5XoQQ6>ZxPI1S+qtGJX^?rrr)8B=j?`Ea}#VP*9u&42fR +zRn0+vc&F&P!0$HOID0e=8%_d&AT@|uB9s7mwi08}EK{(qfFmF^(BXCNkw)Bb93iG9 +zDabp$5~&WPX(WwtZAS$cx7W6t=5-50#=bihSCEfdFcI2SJg-MgxU|7#mGf;fQ5< +zu(0Pxc;CkwB3=0U9c6g(0fzek44}%ZO!zlAond1iW9|sc-gGS-?|4Pbg;$njYiO~k +zx3%%vND~R&jN-LMzp?u8SaYY5P}ok6L|*;EdGzwi5@XLm7l?$W65rcn0$sH{b57^? +zd%!Q`GG8JBA-18yJg2#?@%8X>vQit(2m&D%j%#4JeR!i0jiE+PR!K{g6^I@=dz4_V +z7Majpdb@!nRYjY2f4(X}+ekAiyViL`p>!S+x*tn16k}A^N`5p%^2@psP-e=i6blpp +zc`slK1?szzym~bOf{=(o_~#$Kb(9Q5k}SUvk~QMxCEp8A)R8ho`Y{AiQMh+0Ge(L{ +zfGl;3YLYg`3-OXnwgM6gB@r9zWTRT;kefL&OhxX=tDXwraf>%V-D$Fw_YRmbh=miC +zYP8^Bwm(7Rx}2vCqh*q^Qt@iZ;7#ZZrmP)wwHu5U?6W))OLn|sjcCwzw+(|<&Dbb* +z4)M!t^TTv)1&8+dEWQPl8Hq_Tl9*m6fq)6n4 +zn7Iym%uiM)o&$nMWu`~jmq(XwLnb6{vFU|Y$F1z~BxTMVjMC;!1(N-6Y)rqnVqC35 +zFS*?{PCEIHG*bap4hp?j>LewP9T6YeuOqpRHIu%9gT(3-jqnaI_D1Q^4v%Nb&SHV? +zg?xLg9O;ue4ZA#vZ)))*#*LF45?a(MFUHHO8a=!b`1XH#7WGdZFE;jOMs0M^DNxI4 +zB3*S}N9|m+ZfH*K`}~~rW{(elF+V#4edhoymX7ru^Bc1>$z$`#ilcX!D4aMWPMr(| +z%_PU&bw&MBVpuo2dsxUofR3eaFbLu$=xVQggYz^oB6xbbpw0p;t4b{nOv2Fo#92VVthJQRWflpPGUvE2yvc2NC4Ajg%%WZW+Wn=gQdToxbA2Q!{H||ku&(2b<%AR +zIlT$~$f2r$`z~TJG*^S@A9rTlJBY#Z%&Y6z$lD}XKK7pMFyK-3$1XJJ>|+@zVY6%Y +zRtWmq2YB?~LBSqM36n=hubaw9N;6GPs{?HA_KS#WU_sDrR{G&$kU74f1(~FRBn>6P +z55f9g%^|Rl&%irRF_e#Ye5-n+%TaD1m2z^PdpxD7RY^p{7;pK9*2y9K{ +z9ql7q48oj%l^8^AX{MJ(-MLjBy})|+p+bEp7gl%!5(5B4+Lf8|*EZm~w|(;-HJ$X1 +zHncV=GaI2PshbNiLi$V?@xVh-ScKiKETgP^c@@K8ILc#v#Wuh}#P|aAV~vlm_UtsE +zlHyQ(OKU;}JvNnvjj5XEg{r-#9uEfW+j?5an*qyWQ_*N5Knexe*dWjg?4UfhyMx0_1DfWnK`FjHQp(4- +zdACSl2uB!9p`D_w+WNX^s6vhk<6_bB1+**oXAxFlYcQiF>)M2#(4jW7wU=ceQ|ZVG +z6R2{$VA-p-RvbwR`}r(<2KYl86rmz&AU@ksN%5{8YJ`l92xdM5z${PH4WRjXSw%#W +zvb&&rm~DN&*KvT{?a!{u?_vtl?5Pr8hx?cVV-K`+cnowG^MKK_CwJ6!l3d +zXy&m5#g(C3qR^2Jyg`O6y@8+=!_HxCkz0>N+zKG+ +zy;ET6^1^Bw)kRdsGs`ppv)+_Mn-_fiq}2{7#qB?;tVK&ta31A}r8CkMO5yxuP#$b} +z*blse{oJ+OzuUM1ix}Da&37z5%gAv9V(-D&#xHeasL!448FTz#e1f@WA~+~&$oo4S +z!DB_pY_#mj(EnL-8_rei(7cX`rRzc7qkZ)%or`J|VMFgEHBMlXfpch7fMr3^aQ3kXo +zm4Pjc8_5pw4SRU3jRs_#b9CXAbBkhaTkmr#f`dv$6PxN+6h|6?K$u`6R_N_)NCjb_ +zD2cfAC`kvR@fp~4!(wuGE0zggSQHLWFhJiE7tS_jSHT0|V6j3D5$NuQ$~u~{!nOtg +zppvwjAyuPJDPetBNwMn8s6)?9IP5)q9+$Ks8$iA9X +zWgfgw5Bk9@vJU2BSI<2hep&60qCQy9{Y4nwgT3!}?1Wdm7MMsUQYIp?ZqgNZwp;5| +zHGj8D@2&HWh78-7w4XnG!VB$>vKlh;;tv)`ECF} +zDTyb2do-k&Dci4H)8cTm;qQ7r2$Xb}ymu|ydsW`Oqmn>gq0(br7Xo+8X3AIGf`Vzt +ztEPJ3!bc}iB?ofjLN|p@(}cWPA#fh1xsthNazD1VD=MVGYqP3kr`DqH2^{(#w`tB! +zc#~*pvxRqoMdV~2Nv-#`{7A{ZYEkiJaG;9=RAlhCk+8B!?rdU-IolRe2mC|i=M+6P +z8e@eOYX%~1%d8?7AcV)WeYN2yWsanARC`7gW@Dm>2(rtV)u#d7L>5I^`FAj|o%fX1 +z)M9O!a?cqZomO|8f&SFmZOg(#m#BBL*eL{#az9*Lbwq1GHo`AforN>e7Z~$}KM|$- +zs5|!)G|t9tA?j^fGUcUY4}GHEI5$ZW!igA8H +zN_22@NGjouF0%$~2-{o&fC7EsZwmW?xT)FnH8&06iF5-ujgP8sF*62c%#eWFdVenR +zV_55L^mTPxc)$UHH@Pg28$`;Lb5S8b331g54jRUS-W$3Dc2%gd;$Ie``l7z*hCRwFepz1=75I+rMb&9juq1(JUZR?KdI$&7%ko3l?emER +zcP6;AHY%P14u;>_CLV2DsV+L0%>7W8mqtrL($=Juq385{R&Qr4(WSS8IgXAO)W6$i +zY~Rl0D-OS56F*@}gzAK8H&mYD%_y>e3)|{E6M0T%I>Clhlsq4&qEKP|njK+eMw}L} +zX+3sxF31VyLGm}fK{QZ%F^5HtF=sW=jgEu*b@@siZ`EIM)r3z6!D{FaNtzL5-KC +zoQh1BC5C{<_%Vb>gvs&LU&R%)upMIh1Kul)7!uU}EIbc>V##IkuOeI2r%G|lK12&@ +zl&3aqK{+1IfBg0HkDoq#{6%sl#U%wV`peJ1Za)3_&;S0XKD0m}Dj6CyY!&e(KF|R{ +z`A~AF64B))?&~FS*W{zu{u0{$O86_uhX+4I_|3n348&d72x2O~D5i+8GQf$*Dj7;6{%%={~?bJ!dLYED;vJ; +z{xxF!*wIt}_6386n~yi~hMq73EM|Undb=%6K5|-&1&{u_2-385C6$26pF!(teM(6| +zdTD>6EwIg2d>8s(zX1aIZ_f|@;fHU(lOIU}e(>G@{$6ST7z8^-CI5APnl0krnhF&V +z=#?0~NF2sLd^-pFHc4lwsl%}XYF|Sf%q&^|?%!Y(lZ|Vy_UzTZy*hZhOxP}q+g_}h +zt}JNTJ^5=Vq9yQYDjR%8;}|{DcDTeve4h|%N6MCP>B)fQ{p3V6$1irMj92axd6%a? +zHrPcJqym*~To6_DhvbRv_ewd2GDm-(_o)QgC(9I8q#DDPZr~r`G$}|dy}+L_x04sh +zmxIdB^u(V)T&lKg4~ptQwTXE7B+SU1;pZX*vHHCi`N>JiE($9-2>oyLciS@=Myt!J +z%Z3inP}N>Q4pcRx2%wGO4L32VQSo{@Qj7;^j;En6>R?dHC$yD_PqgU@Ojd@O<(@=* +z3rLiDL5yY0Sy{pMf^GE#4TCZP0+W&~5f~5A&QD2|kjd$C&?X7T)%xsD50Dri%87 +zqHmw>*6?ler>rY@L;KJ2L8Uy~U<@$I8}=_N8K!oVY2DSLxxF;B=cPaqent)_ITtqv +z-n8$##qA9mF)8W&cc>bQ{TK7~3|d-KF({JXIl_y3B#ekB9`!d-;sqpGuaZQUxSltUmJ71fC4uWNd>W20OD_%2l>SL*hod +zB#oCO4(ZTWcfOw2yQ(gngv#Ih<1X6oQg=RgRAO&g-X{B9lD>R +zwq3m=2izB@^SdmQMf$hrx}NWc4ouh#zZ?qdN|yV_`B8Vy10{ZO2|`!D7lcgI_8ZKi^5&67G +zn;2qljhy&B!!GpgBY*)lIth$mPkGZPH!m<9yS(oZMeYiArpwi%Judu=~`a~C(uUD%@toNEn +zg0|cidM3QcT|_JDu6>P&clpkb-F{5GB+TX{Tjct8I*&XGz0wpk@>3Tcu2-6uy6X`3 +z@UZK>G;5l8&F6h9nYSlov0nAR*=iZpag^%cFipW5>DRlrFN68c^TPgj?d}`O-ZK3= +z4&N3*M*80(Y3?Wig(&1{wvH;VUp*er<8ZwydLnD#h@Dc@VuG@1tsJw<*vKjU2l$OqIpnfzk{vZn6U=^ezs>Jt}E8?bPD53pGAX|jf22KlIx!bl;vcp#jg7GT_$I&$) +z7A!m%<}i#_?odLhpTvt)KYS6KeY*AG-=p|Bm12 +zfjilCY|ic5opKQ@T6~lH=gprV_4UEOyEd)5?P&ad|4wrJ{=A#|`|qE>&9$KZkQC6r +zek-26Kfm5-6wDuY# +zKXgUw^r8?`RPR53eZOYlPiNM;xO_{Cgv{D^;GTbO-{F_f>8Jkr+_Znea7l8iYxDj6 +zsD9No?Z@kt|Nh8-<`-`#Df*ps4`r^kPZa&P{;B_5qxkpN_s>5he|dxc{rv1MLGo99 +z|K1Q2Wj_74sy;s&(&(>c@V6$J+59nzuhH+czCJ%$!v7`J>(8Gb@89{|n?D~k$(4Bb +zHvP=L`~FMK{4)J}^IbJBmj8F?H7Pu;Zd$GX{*{CEHw~(%QSS$xntRvh_vSTb +z5gO3un4h$xA%5IszEf2hpfOj*oYj~lQHQp*Moq%5Nw7ot_Kz@C%dpCDpkgtx^c +z;}^aU*>_%_*)NE;IEiESUWrffaWHAh;7sOO{HSTwLEK8YyMeXRTEjZ4}RCWR$Y#Ridm2#^uIShB}E&vbe`2D&`{oZF~tNI +z*YYgxQ(x_u$m(P)V2TQ+7+Dr#yY3Q^n; +z`C-vCjxkD4dbZ0UN|ZjS>t4_vOGCfaoq5K9J_%QJ`HRQux3OS!z8Y$p;xRQ;Cf +zXGGSk9anLqv{;@F{jFVIf4o+;{)&t6q>f?#wybC4lf>*xQfTG2w#tNjepI0<$^M#9s{dXjn+bk(o<9#o(^7Bq$@0jH(B<@Dg5u@o1@(b|3?J)e|O +z`EpB1*}pw4gD0W%-$}(|x%yXYISUr}XIiTu%jSOi>YmMKhVR)bfM!j6Hf*UD`D}!R +zCN~V?+FAR(cH<~M)$i#o*>Mtk543yZdUmM6C#UB?2S-etL`&g#EIclH>TDFB6{ZEy +z>m5$B#OKlGije1mvW%gU&F2Zg*?a|UUymyVtj@w2PeRbwVkwI$F5-66?QXN0R(M7Q +zrPPnI&znC3KWlgU7477Z+ibO@1xqiw1i*zXICvAEj%qLJWR0GFb6c+IO_YLtlD;|U +zS2zgr1<_Y7#q|D$$=w9yiC+2h!QcS~PWNyQ;#4HxavKlRR +zVusI#7i@M57hf;p;-ZsYoQcyCXB9lU96IDj@T4^*Gm!h?$#YE6gRVy +zldU$9(h=12IVSeZjK^UQc +z%PT?z8jXsAl&-W^CKyR*m$>P7(SFz|biz_=#_ys#5PLJrwPQ$IZN<iYj@ksN4}1mR7V!Os(BvI +zpzcZ`9p+|YcYW%PFgxa)-A&K$NU{;rdaQyH#(sJn({4TQvLhq_dhqn$H)8MJK@LY?>j*X;+`~lE!;T0uD0AxN8br!rfmb?d7_!VC|6FYPz(@>al}70?cR=7Hh2Rs +z6fy@#6jdd5(TUrec!%@?b#@x0-dv@@fv?K}*nMSXDj+4ET=JITTskq%Q1HN=~;k5>Wj{i@k>(%y%Q0-FX9S$h4S$zJqFhp*@ric +z&$-a4mxYR22PCt|P;pW>C-PB@)7$T$>%L9Xi%&Y#7}vxScWp`(!EMzzQddZ7(g&fW +zpKau9yHY@;$@CLMv_iSL|Mo!P#u!pb2$J+oC9;3Iqh_VVjcL*RL4j8iS3nKW>Cd5OcQ#3SH!H^iK+ZTE5D2N8McqSnjhJpPuJCZOK@DFzdc8w*(5Tl~m8s-bh?k*VSg$JjX9nX*q)k9u8udgH +zvn;>V`yj3{-m4}f_oFT`Yd4Nb-NIW>E#xVbYIz|{V#mY7IaV6K_JQ2Q!Xm@1wO3q^>nWQc8v0H=g?R2!A$z71(kD!M)^TX(YH4e}IHWBcEe9^B>E>0PNI~FxOk{xVTVq(A +zC99uAHOdrS{EXOgqFqW`ULC@lGLv!dcQPZxRyH-Nm1GJ=!G^mEpO6TnwBCgs7c$% +zNS;4EbVC|%;yIrGWc6!Qe}6@-4Ju}FPnAiNGp-lMpmUwcjAs)Ga@o?70($1o4t^TE +zn6f9)#G)z^BZLRJc9HGu)o~=+SN%WGsvXas}mZc;* +zI%R8EfhaCSMrKrEsHxW-H5~I~cuMmq)v_jzV0x@S2Dx)Tr*8S;D0Hb_M<1`FY&7 +zfnN)3Bw_K!>i~#s{5q2o$f7v4BisYU3x3gV2cfAO%z?yP+8w;dQn%#Tz?kI=hqKPT +z@ZHl|Me#a+)KWuCBWK +zvg?slj&dTFpr({XI|d{iDDl|`Su`ZgM4zB4sa@c`2c8X +zRa-X%@r<*Qf)OHX!I8T;jRQf1nLd$uPLq}pPB0^UD*oX0mWPBg*W(d+@QD^0;ANHA4MBHMq8W!8lyGaY;PkMwNgU0B1|NZ7e!g5F){n=OmlA5xdx2G{qB +zZg4!tYZN!K0j(inb7R4GRKh3e1<`UglkbzxN7qiQ)o;sO^@kIL-0o`}lO|PQ7t|$m +zL&vLTTbGA2-Z#DG8}C#9 +z=qhF~d#05}%ZgUbH75J!Nt(pWgA73ErOJL_((&yzL}&AiQ9S>y)@F4F{UQx3kKm!x +z8m)+6qAR9x%g6YrD)urTS+7-Jtvd9)h#r-y-5v#_d$hVG9a|sS@yI?#(&WjSz5FWG +zcm46}?+^Xwis!7}KR*BJk00MJMpu1&{CcI-R0yJ1pPxV8xmW-EVLtx+z6_u0$M@fV +zepWv}uSHq?`uzFPeExjrd;Wg^`Q!7?uli!P)o1hb@86G#9W|9g{>}Hl?DDS^y=wE@ +z{NZOQ(rKc&fDAJn?^XfQLXb(xSQNK4PK`W?`nopE(utlc)dkU}iM^D;O0~3^>X6%R +zQ%*#-QO9FJ51e+TT*-LNIr18Cy_;4yb1^ZW>CvYM$&_$ +z7Kui$iF60(zL&aD744C>y8LkGiZA;#SOr@{4{?@`n7L=iC8&X9FNu7q$W$bC70Q^? +zk8O!?6&4#h&4+r3cKa-O%>00e-7Fd)jFKXtN#~KCBqB!R-%xPmWl0xOB=w&d +ziWhfGO2vkM2hc7}8m1k^&C3y)(}#;N%Sx?#?$o}_ +zmPvb9dc7F3a+vlY)BgHI%txssS5o6%ORdtOy0~6dwYDakp>FtBBiT}B_4Lnht?Fv7 +zhi+`Epd4SgR>$LU&Mz9t{)@6R&6Fy +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

PbXBQB|TB_;A!$x>;#Pyh!$o}Z +zYRfqRZBp^(ILzeMF)EJ)2Ajk_Jwl@O6=?Rv8h+Ty=D{9;A5f8$X#V_RK*qWT+U2ib +z95+?hpTB;pzgqDe)=G7n7Se;4K}{>pBk?bHrs8E#kGdv9m|wRJM>YC>W5QGqm3aIV +zW6wiUKjvf2$KUslo`dFV{Zs$__3LN#&J?4XrqBIOtB{HQTZt}yHNv!vH2z55d6AMX +zHATfwK0qE{zxnaZ!{`tT`i<1>C;g}71=K7EMS}3_8+Kd>9)Rjk6OT^)@E=@C_>1qt6(`H2@{5q +z>}W^=HH-{U(BnvYNSFhn5tDR5_%}fcJxQUGB+dI1u7miD)TYVk?3j!b9|gpgqaM-U@?@v#m_D)|ssSezW+j@&^^X6qnJF0BzR +z5G$BXhq$CX(Nwb$2O&bE`sJV()MX_8Xrp+I$vC>B7g5hApms=R^Hij$g +z9Br3`sOgNF-bkiSFK1Js05bv3T?B8t+qK3c9YzXRRGC(r5T!&IM8F)5HQntM&STCu +z8iQxPp7`nW1hj%D{rE4vcK1h{#Ue{gP)1uPLz_WJ3=m2GI{*hdR&wQ-DFwwkZHI*3 +z)aBNR0X0yC0suB|FZ2lFY^^ReJ(Iev59<)eT6`NJ9$gkz1Nx$&86{L(pEJ<60dz00)Ce=X<1_TmE@zQ_>cfmbgp)Bo2UZ^TcB;)qb+&wVs{3b +z#1v}cR~wwSVq+jmpMRWvVy8aZ$h6>#BXCq@la{b-I%V$7Tkq1z-Xn#CkP0T{iVSfm +zWY_k|Z6bA1i69iBb+q#GILVK|87>ZYjygvtSpg30OHIEUpe@n&yqWPo?Gp#0w(6me +zu`$!-{f(yF(bR-05_ZL%aEu0;t)?h+7A +zESC+J&JTE94VL1c;49_bRn{d&WYN_8)Sm5A*% +zQS7lHZ_(|()v*!8jnvh7sIDkn8fcxoF%NTdqG9~I*NH0aG3+fN&Z!rvawDVOoD)W@ +z2d;WS%w*D#oHZ^9;!2{gh45Lfq?_8+!&Hegh8hT(x#lM1V%uJSlLSEd!0Y4`#FCob +z2kUzr0a`DAT>2ISU7pT)@J`X+q!wXP*V~v#0%;N#tbnsj2?Ozky4>4fT1G;$;n)HO +z%vnKDdO6F1h7yKZX%}Quo*yD1HTqSWPK;y8>&DrmzM*?UMv(9*0jh}s4eAo}8%uHb +zgclVqJrt5;5qDxe_@6wp+eJeio|- +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 +zc+iATLz}a>Y;#lU*4A|4Uccdc@~ka+d3Qr +zgeaNQ`V6c@0wE6Wmj8C)TtiaxGQ~4M=OS*z2RkJLJG9xKC!I_=auqHus;RBDs@aTH +zyc3D*L88Km&hXf}ZMS*we4MS@WguJOAZ4iMJ=S$u4Q+dQ19ayOJ5;$EELVXiCSj(q +zGdLX)+Nj2w){K+>HEqw_ixF8Nj#Q4cNwk$$_kZepX)6Ko==<#p5b2r0M5F=G1jy{W +zr&mx9$v2w$Bq$*d9QRxfjxi;-gmh5hH;f1E&*l^Y3)lUSm*o+Ggi^&N;*o%tDlLP8 +zm?caQtPS|rj;^S-4V)s^fiyJj>*;N0C|_;I8g+QY +zGl`>SNP(RY +zB{Z1(cuWGMkXp$c6S49nz6UP*w}K?n$V)-Sp+xQOG#MI7LJ$g_P8qc*6Ts-)m%`)a +zk|?DG*?8V!|f-EDHw&C@B1) +z5^MIUO-{%dUtpKV5Jm11E&z&1i7XVvu*Rmo_?At;EktDOmnDvR3>{gW=61&dJB~Wh +z5yx(&#?tLKj!ee7oVMPG2bn}6EMJI-U$f~xAf$WTucMczPmrVpw36lofYjk3zb)C3 +z43>!8Gk<%rgqRh>yhU^&%HZt@a&_5Twj9jgj`lz+F~cy?~t7mfjSl +z*lwy&DX3E~dCPJluZo_sO(yrJ<@*=`YhJiqG%=5lJd;gECxJ; +zhUkHPRM8ZT<{uy$&;BoqbPcfvrl)woi4Pne;l{c8CRwbjS3-Z +zNDe-@ysjQi9_Sww9}}9+=!OR;iRm#+bFb32j%yGH0AtwJ%DH|VX7*}~DLRibo88>; +z^p5KkXbim&3BEhjP;Y@26YKrHPnK)DYVT>p^UmkD+NX`C@@fX88Z1{i3TmUO4#MOv +zN{N6aIfya`#dnxp?yO=j#BN|Ua53M +z)?rM<3cVDOp>2;6IwlXs&f1!d=Izg)fFh~RaS}t+o!#GRLum)f?h#!b-09uQr%e7U86Lo$5l4iOx(2Uc| +zbwnBff+!JYcYP+NFGSJSLB-5-hXQD1_CT22*~Qtjy#AYg18{l~P=_9x_30T +z=ivYm5D}RcOFiqr+49uUA}CDUZvrAA4;_+$IdxI#M0po;3{L9zxtc`!`KLZDa!W3RsWnMvV=k=*kyJ +zI+Ph4r+WBQr0h8RHnobaMcbrU&I9IVG}8Bsu4nEXDIm>(D5`YpO{Q7LgcaYm$MCk<~|m +z$`ZcH*biIP%=OAsOcKX9Qb;DL0FyN^m6Dgj?v5u$C~ePMF&rHW4kw_yIqsB*q*-*Z +zgT>rtKPVLYt4lDolEX<_=$imnBLdKgoE=FQxLKkJ0l6bq`_ggnkY0Wo5!0)eUss(l +zy(p3e3!tsI+vw?-($H3#i|+f}%2at$oSmjm;)c5=Ox@Lj$P +zkaK-FB%93;N}d#ND_o!1*fcN33R5=IcZvs+y7@M8VPKsRJWHEO@SHph`^0mIoakOp +zVXnncAOxL$M|R%^XC-$)BKiM>(Gs2X$sleT?I4CMCK7|Z?DDn@wylqyMO}W3X63J6 +z>-KT9{26OAOieoZaNxTiUIQvi^6QbF~!P&zEYagB6^Rcqre&n!CYFc^z&BymY +ze=GC;@xc_*Qm*HiU%#r4&+p&)XxjY#`Te{4^M|V+o8NzkZ(6Ep%8JxzEFbK`^3C=t5^t1`kH@->Jws9%$dm#Z9lbP}p7eqp7Ibm&B%{Pp +zqd`eXl)jw=W$6;q<0IdljOpXhL+Qx&#HOn +z#c5C_mUHyU22F}M7Pq_nP`2aihp|%Qu@1&x@iN9BhL6LYslB^C@Uk^yG)LTqdGjm( +zXzG+e5}|fNH9l_7kLa9#4Amf>6jNU0>mJ*<(%8;(?5~T;k|HaP9dknJd>j6?)N1U-b^}KPg=n8DIaSFB(K6;LwJT +zn5mmA2vo70ZuSyR{J@E8l6)bHkDZp@uB1Zp4OSA%W*Skr=<=!)b;^zIdF!;OMsv7T +z9D$g&o-PlUoHWTqBu5f65YeJLG8qFMcby4v_skjIJV&x&`x1Z +zj+>+$rcKG@d7`aDm~DHs^T5Qz(++Xn!I*ADBMS_;9ar?^)zztCN~`9H>}s-L`2D&t +zFMXpP?f&3I0@F?Fx{I&qX8quzQijI#@w;z&WJ0}ApbZ&Xo8c+|#9+cf#G#BETOvb +z5AJd$z?93B7*~a@u{*mS3ngABOCnsh^uRmnv^*0taD+!&zm>hj@#;j!q4RZOiSuNu +z0OoS@e}T`yyfymv*^z~HrfVTp@#dI=re4ndbWxLp>~qBl +z>fjXbfJnyUQ&I{`UR5zzN}Ak@2Lamvr^}(h2pZiY%%~POeVouf%0?VGi}%2}_%Z-W +z&GOyGA-Y~2YK+Va$yko?Gq_;I+s0;Y*VXmIy0?NlgthCAW)K|3ExU?yyZQF08eYjr +z>T$_P)ODyX6hF`rsQ^HZOJy@oD$ZF$^B06`C{0s5DSs5fJ~bTLc;6Q{TaF3oC- +zm}}HG5IQPkr=wAH5d}J*ksRDP9Ptr*-^X#|w+*kD`#R7o192NgwVimi>x%y-U62%0 +zjXy{M+Hsn@h!>o+5DcY!C{!`~>UH5jk=LkCn1|d7>p{@8> +zvc2G~B@vegGD7(}U)=JEtl7H{uax*w0<;RHy-IN78=Uq)Z+-3iR|ounBDtghaKP}# +zAvR3UvyPnTjzFksfYI?^azP$h)mfL8`;NMtu3JU?Lk1ww=l8ZvoIq|$er{Shu7fDK +zSWr`TQU&m)I%d%VF!`;?u+au?5+u;Q+(^bZ%i8+kaJH|fi}U${aOjb#Bp#0%4C>xw +z?(fMyHhK|GCwj8Fy~>E{KHNm{GUgd@D?iL&DI}T0Ot^@XGkzY-;m6Te +z4_<&c=s-4ll1W9z!~24SW$;ecp*=w2pI#y)3BUvv?}pwZ3#T%XfLAlX+j{UL0se_X +z1niB1$9pkTXj?14onFena-Gv8O3(mh2%SPcdGIGPgj5}I@++1WLT*T-n>Yd87~$fj +z3;MPepRquvq^;xIoKVkNd=3l(E@6in&2S2!vZ%io_MMN-t{G +z(f5}4zC#RftP65F4k}1<5_Ho&F8FgCVVkSey1WP}=qT|)j9b#XMa8`Ddn4Wml`NCy +zb2<}!TFT}SwJA*uZ%Y5?)VmzqPs&XtU4k1JX>4a|vb5!6>b!sjLJ0m$ +zFVK50NDEevKF@~DE`AKZ048UR97(FTXGG`{z%7HQ>FDW0g3kPsvOg|i+`&@uEc$5L^ +z23uK7IBB|S6fS_J--nfS>0=tFiLEAB8;C6oc|Z|S{(Y|Hd}Xqs-s%T$q^t`p1hbt? +z3N15}jC6L@(1sAaJp0G6@`UBwR(V-jAg}diyCZ2oEmMCb%o&_b_!bAKYU|XJg7nLu +zGMv613%(rjU0;Bnj38$b7zyGbj~~nFBq9-N!6nupK>84o$LB<5eLx(wXZ^6((JxVV +z*QRBwIU&Pr)fl(OSPfjm?xL+iRs+aOd5vQv9?orP$42#0cj>rb5zT({H&SaUa+KDA +zdc}(y+20nYg#mcKFA7vGrsL{{Za7T>R))GzQGyJipi5Z@*#T~!6DbmnF}e~3E6iSH +zlJuz)WoU8o>VU8616dj3_vQ+DoFBH(~@cu +zHi#CN+A#H$gS2!DnR%T;>B=aY4}Uwxq)rrDLEQ4)fZE~5<|E8!9(-L8hG?}4U3do) +zP{OFW+iP}=BVl%+QIR%?@~yAsvD0gly0{!ZEb#Rgn6=v-O3}=Cn~6|_*yZ=w!>wWs +zwQuhnmf`?fkh84RkfJJYJ1PM>N=+*QVaRr|HK%x)V=_Su10O1o#9?y-4NEe1S{ +z_2>sitWw7)eD9CPIIe&%*wnv>{rq3z(O-{l{+M4?^ULTfeY*K;e*CVgKR+&w8*cN6 +zP{>x8l!y-evc(!=0%uKUaaGeCC|b#Tt5I!OH?LOCL2DH4+Kus6sqHe9$^zaisD7!4 +z6;xN^Pa$apFtaczw1PsP?j+!a6{rd==V7fe2+r~>g5dK%>v%F +zQEu2|>pV~`D#D!#i~<3o1tMvKXUR0*%F>O`t`T(slFGN=Bo&WM9Vp7nR9b&y!%eb* +zU{%9gCU5Eo2VY~7v*kU4^BAX%D9h>c1$JpG;>2*E0))NWuW@)zT7ET^}z20H_J&INRP=1;&_fu1S +zewya<C)qZ4WjzNG~H}!Y*>#u4)_>*dT)I;Ycy@%@rsVUXIg|uku3CBTK_gwXTy@qb) +z#ZYJMnmJFc+Yc}9M2xzzJhS>keQN#5fc=gBMPq9I^0SDKRH3a3xbD-gL6RN<(4Q3! +zuS<;rjLt2UqcNJKR=C0jU&?6$3-AD*jD~}i(c56J#g8ACY;BNQOa{aC5e6Z^d^(9X +zY(3Gx<&`bJ#sL4mzE +zQCrENeE#QtK}nXS34yAPuq~mO(FGYbxmBrRE~X`}Q2kY##id9wfDv*ln^wpxy@4yi +zeQhbb{jZG2+kJp}McPgy_6wP}fHCce5kB1jjoIov6}-^vs^XVoVWVb*m0+GWlc +zY`U}_4YdD?XPgwkHey8h)os0Cp +zCV9yo0}Q{(nB1hzAdRWyCkG3+WF!ib~m~W +zdJGbvq)=%TqLM=c+R@4+K$7w6V#!izMHTU82y5T4wm2ll+@}@PmRi*<@xzkACVXZM +z4!Ma%)Ke`;gGmQti18A9YjJRLi6o~cpfa8(a^mXA)~}2z!Dj&8U*dFB3s7SkM<|>e +zd4>yy5|fML_}eQksK!MT7E7*f3G0@0}}l^@)0WI#Pcg!igR2aVG@hW +z;RsH&G=NMh6h{KUy>R`UefRKIq8VhvOcIz65O(m8MXOu$g;)}3pMZfp%ND%8)W{KR +z#o1ky)oYNU>k&LnLLW{wxLaCbtvQrxzyai)wA>EBo~6)I{z5#2_U@1;eCFIbMs@?4 +zWO*48@dV-&Fxe_4?na!TH9iC3;y~VtJfLgbfkOt!syLPuh$5dvHv$C88HS+YEP!|7 +zNP2kS0H$W#n=05Ujup%N@zK-suZkIsugEB|d01Hj`+e|BPQoB2NshR@>n5S(IC#-c +zaPM9$om60Al(hP;#f<_3GK|d@r)F?u=tM!CXnQCg!P7NffGiOVAy^=>trSpwoz!oVosxqh +zNvY(1;5gI^GBG;S3P5d;=ptfN$a_tu)Q{uN_|}VtA}&YwmERE6j;vEbsI0D|@uH4N +zgKR~x;}&Q##50AD1_gZzyB~|=Y8YL`FFOxH#h8yOxN#Bf_Gs3T8CFzn!FEAx-9mO8tu{U> +zZ{Q@a1t&r~-P;4?;uuPZmxW1RvUWv~B3+bqce0DgD0%Z^1t#w;jH`+DB)k*IxgsrZ +zRB;hzEMj4YC{oNp0Xo3#k_Rm=6$^Iz%MW`}O9}2%-@W1KmTp9d(DFwtoCuX_P|q8F +zj;mpO%+;j)?TQH%IIqEJx~|^MJmhNN4?3+cQg|U?6O;m8cLlT>Y_Wb;d8mQ6E>H^2 +zE0793ic_c;sv6YVf(Ly`eAx10FzuqVSc|a)&DSUVl@Yfi{+KpEDRIUf5n=Y^vRa<_ +z$f9rT!?A>pg!v8cpnzT!eZNye0LI)FAK<9UkzKgkOr>|qNcLrKBr?Cw`8tDr`06b= +zzy+`{j0d=qDRls1=2M6!H5-|vWF+&OB;4Ul$nwwC_rdH3gv +zrbIP*5hUP_lS#4Ut9Wvg+fsc3K91L-%&xV%Dv)#+YbgnZSCOx0VPV0Jv!i*aLXxiL +zJdT5~x1Y&9WeWk$;AY*S_Pa``*K-5wCA#0Ht|sGs9j`dyhV*8!26H6y1BgkjyVsj) +z;324?)s=eO_tOC~XB%Ux;`54Dyk;yJQ8Z3PO5lJ^aAN8O3fn=ygZ&h7f_(KQQxaZE +z6qX1hL46yyK!~!7?`BDcw-P6>PsYC1+dK^OnAtzG +zjp9jLBDugXv*m%rhwrq@gXIdq&9?2z(+YBITkbYzjz4S;T|XH9y*aveZN_-)Q@m8g +z_WMTP{d{u!p&C|0NV`R51~AmZnS$K@_vDC3kF9H+-@B?8)MiwDNPB3R`JO# +z^anq^R4+up^dM-67pEZ_(wCPm<}Z)VjjXqcc2fju6pzbOQu&H=Yt^9~F-SYzLiWOCMy-(+bT~eM4}-6+jQKb9D%sC0;g8 +zcY;WpY)gr3{WXF5BnN*B`Z$T;=24vf5;dBDQab)N5zw?uiTREqcK7-EXVG_rc7Ew7 +zI{nC+PHSL}k{U<`(X}K^SmIE-!3Qxu2$smBI6g!{Fa)M~QSPk;{DWKG#WkwbBymC| +zCn7DG$?o3}M)Rb!7YGA2`m1f59Ir$jrFNh$WkSW}%L#z%Cit}2 +zao9Ek={Gj-{g9^WDm2|TzIl*7nH#qbyy}`ME;`cU%v{%?ZI&T4oqsT4ANGo)%aG>1 +zl-e(xoz%9e>K_NMcNp5pUV9pRQK(LBXGB5O7Uc(4b+NLp?{aMhdu+2{J*d}_2gE>& +zs76vJX`2Ip!DOHYi~ZFd-DXowT#ep`HKX!N|Kh{^fX;wJ-rpdNNqpRHu%lWsowg>gYVPFZa%m3TyLk=}o*-3XA08D`Wb!|r)%f>+gE0jE&!6(+}jNFg7(yfAloZS*1i@T +z+@0p13 +zL|E31Q!`rM?~CZz?SaX>y!j+WOGjy1D#>ZTN^>YnfWl0#j!IPaA%x +zPMc5Pe^`OL+y)i268BI@JCn^@Ynj4c6*NFrZ)u64EL%(W;c*U?SvJ~ZZ45%{hu1=U +zt*n58p)BpGIRb-^7<|!ZQxLz^1uM3&ZmIVMJ*~4(4<5~6k~aSg@uV)|t*Z@uq~3P~ljM0Bb;$zwGd{x~dEbZiB1#z6*_=4l#C48~+Bi +z8kWPjAsa#{UTaryH^+$ty=0JZ%%xi3 +zq=T}-wS9efARe};_L+PrMj(vDYQ&pQ1$5{AP8ie|0*t_~7ZuvaE4!`@h%Q!(oKm1l +za3mjMc5w_PP<+}@;+m}-p&T*DlQs0(Vliy(QE#!S@*tF)$sUhQG(#LrJsr!!yK6cf +zYa;2VowiBMexJ5(&duXns!}1(%G7bMcoWUmsbh;Xk5*LG8G|nv)YCn#?^`4)>lS+j +zvbF{6i^hUv+A$(?TU6Vn&LQE1_{Cen73*?@T_4)=xm4*WYM451w6iQmeQNDeRY2!? +zB;C-S$?1lFj9z~%Nant|=}T&`p($w7y%byvbnoIwLmHu-o`?$P!I8X(SSJ|;r79)u +zb}Mvhbb3ohN048&DAEDiF5g&iRNxWCQN#J(@-c_SO05vG^Ab@w%Kopp1eY)^v8S~_ +zt<7-YBDHZqh@b&h7wKUuP1vn3VGzY4`gn9397)M +zjgEN|7v*u`_%^hs6lGOCkc#(>FWE5JVM5$TmiXW$xS-U5dnqY#?x#Fd$9ha`uf+5M +z?QG$}jzDTJ_!+1L28~~?m5hM$F9o(iosI&Bh7&;OD5A?ltKqlJn{t6iCDm@tku)hm +z34YlxjG;F5&VT>e@hz813s2M1HCx?x)h;ZsCF`N#LC#8ZMeR20kRO40IZmBjEAVBB +z5(^i5qj4RQASWbyEH_z_ErvsUaPHMGyR7TXERa-4gciIxwUwHX&)ImAl`o?#ZsC%u +zyNOJ?-LkbpHht<<3BlkiVeJ|5<{lixUIRf~l$6)@7(GrESk};*9cjUsTXtqk+?;qy +zTm(%AG{%@fuFebTB%3072B};=my%C%s~(1yUB5Le4)%U$rG!ft)Z_(+R +zwtRovQ2FDv6uS41x2r-yA*jj%y9G$D2b8$PJx%ijZyQHJvfI%PX>f$LQO>bDd?p~xCZ2UrPPzy+a2&`|P0B#Orq!$wX9eG&{CX0=EY +zA@+<@#fe{HM2gJu1#_c=|1$GbcJN(Vq;+p1tp`*SJF_uP6p@IxOxKY(&R?4BdZcZW +zHKQcP4*IrdA)se43sid9jrT%Tgd2MxSg918WrrUcFhdU-N#0%*{=B~YK|3ppQ +zTL%x=Ys&%#yu`Z6qi_%_m4I>mOc577Wbo+hWtG|v73nQB$JhuDI*}vkXd6;>7@evF +zQ8c;3J6sc)pfitvv8lz+X;qn0KGBMKT+-XmKVtYY{PKXV6(k?FF7UzzqNQqinV>+T +z5_7+jGK)BwN|KOFbVddVYN^~n+Y`ZjF%`pkxpk+CbSot$>!G0Li;Et{RR|HSyBm#G +zpjX}PFpucA&fhxhqtP^(U82-;Z~=mgT7CZ1zIq{YbX91Y)G5sms={_`lbO3_+PGS6 +zSI2GTWWKK6MjwxGTyE)3)2OFr+T&L3{5W0J!lz8lL4=5*dFxFxiD(Wr>dYT;F~dA2 +zv)>XJ5q+WoB6_2gZJgWA=S7m2%4*`(h?4&{o;A_At5kdi1`Sk6!Qs$p-BH4SNX*KP +z0@Pjw;98E8fM!3t;9=H+gcy+$O?Icf{OgihPLMrnn2twDl#xTRBJeQPh&#k(6C7?r +z4j5$n)EjcaBo`&2Xet;Y2sgiX(8h{}-e2U~qfiVnAfFHB^hjhCjoOk9ur(wlKcePNw%|MOrqJ|+&GI1$r48a-f$1=K}RW0BOi76 +zAlnH?+e)-2^H#}w!#22h5~2~s6ysRE?&BtQ<>kRnf%KzAy!8gGd0=mq5>Plxz6B_B +zO>PF;kkNH{jJmF(y%@-(WJ*0OHrJPTy6XmpCPagWuUqz>fkw$B0-94;#PLZ->OBqF +z8Aw{9pG1I12NQ(XJLzKeG(Jx`WfA6k&llXSEgqQ?!V(3-2}lLcfGqhH$u>d+ +zlxhxOk|-$^{y~0*5-tCU<9=OpIx~QXDEM99kj`W?->|n^AX#i%)9~8pr`YA{F}LD} +zaoaXG*I{K;;BK&wr9Os+M`u9A)ajAD>zS61iA)F8RQcc!boJV+xv$B{5Sk&J`6i6D +zpfpRBTE3g3^~H^JQ{2ZRhruoT|R0qzxd-XN} +z3%>5eX<8b^?N5<7Z +zyAaU!LR5zPdJ#V@N6Nrc{)SW^|9nm<#XiFAGKmcxPMnPKY8HG9t|aiHFi!!5gwwYe +z7cwq81ZRl0*QAqWxRps4xGjL3%vso|#MFGLw_3V4(m04knL+$&tHM62>I#A(3QEfX +zruKFW+=T~i2qFI_V!hqE^_zIzDXnc4-OMjMZFB0Up|W-tqG8tA^y#RXfzI7#w_1^b +zacovxIJM2r_n%Q!k9%WiBcODj#z5Tr`Pf%ITg_Q_C~dg4h`;1DxfrB|zBmGs6dcsp +z6dKbAU1_o1+D@Zq>w9q(Cj)g00w1{*rs5Dc@%{b#pO5b!Ke#I$X?J8}i!GPB$E5(nb}KyFo8^J-hW%JjStS39&MP`SOThMv{0+O5|F +zZz`-hjKoY>ByOW43As%bv}2}DM^o>r;|J`dE>--qy`AShFhYN~yWv=75)H5JbTbt8Ayu&L+22A>_C9Lu#b7krKNP2?)AzN) +zTVxwVk|B?466mBvB^J`P?Z6+}#NIPsw@vai>Zv1!H864AiT50x7__!qw8Wj~p=doV +z?X;>~BJ8f~foTZ%p#>PrPvxM%c=0t|y=_g^q5+N?eF82JZ%)y|IJy(b|qqCPC$-h`5D$E1C4hv^u(Rs;>BfdxfsCtTZ4Qc1l` +zBb<6X0?ri(^W%hwn`2tz3nz +zRDZ1Vmu^$nC94{!Fj3MqvK!6)WzYO~)shrwIyuMHg4oS9;tYT9YIrq!!r{04$#{;!^0|`lqFw9>LQiUn4u9=Q*H-9d|Nn +zI+th4vCZBLVF|b04CiwKGTSve{tcGue-TQlV^XbolgS6fAkIO$>^kuU9;G0_eZZ8G +z&~s1@LfZllj9RTv04v%1Di+~1+54FjKh9#DDd>`i%|qeqBE*eHl%>Y86Ne_ASQM)K +zLJWteKS+j_3Y{cY<6mjXYvZK7H5D@GiUY%bh(fxjvf|I2-i?lUr*)T_M; +zw|k}u^(ZRj(v+w|b^oC#xIis1b=t#7Ivq(Vc`cK#SG+1n%a0~$v>B8UzGfTKOsfEq +zMoJ?{jV}h;Ry=5{FSljTl+xgX6hc6*wm98H(9Y8+m%S%e1Sd+%u3Rji=KjS^Kq=3N +zXveyf?c88v#bVb4SZ(N{o-eM!2%jJT7G +zC?%nm`%=fj-*o`QdZPlST2P-eQ)eSaVJNFnyx;)-b->FeJ^d&AF>T_(=xA0kEG35K +zC1br0HD;4I7V@tTl8{CwiCZ6<=0vJ&Y$@i1`L$ww{)5AS^o0VXrV)TiT1gv`dUCr-U_E9BHlGt;#-SciAyA$ +zfb*p`J&9N=E)OSuYq$fcpkwq_X&kbj80p^7v`NOA;MhZS!~ql+)PDZbS@;2bO3{ba +z%KcU<9Ygg*)J}!j|4(0ztz;R6N~=beGY8fBvoKKzPR{T%oFAuqFoP;n-<}Z95*aS< +zr2h*zAJMldY&~bTdtWKxQKCh}EG)H+^}Qy=v!0G?6sgg{->3cTf?taCQ`&LmEL3(o +z2Ro@IUbufDBY9!^LR~E??mt2GjtS>hH$wnDt(7(& +zD6}-5^+ZmI2h;`sMJ^$7tv<|Nrc{s%Hj*qpXp#HWX87jurtc2J>U3Vz4UOioBnJ^ZkUo5!aBdiI770ACx|BkwY)|WG$+UUP1w$ +z+pvi;jp&KEl$Ss#HRn6w8MDC>%iKgWSJm<7NA=F*f*3ypU-GdmOojS%htP_)A~)vQ +z4t@g5N36}&Ly}+BFq?^~zXV*Np=2GGFSS$OFLSf+p_<}#W@D#eZiYu1g+!Pjyy1!XSKjUg{b{_h;v3WeZX{h-_XK&WA=LgKwAS~_Ju8rPoJ)1ZS +z!4tuEW26BqI<%la`1I7$B2nXzj;-3nC4rPcBby~-eJtRamtI3;kwshTO$ck0n!wxz +zET(0jt%bi_Mv +zA9g_sCtB>c{`{C^f*rh{>tVSZ=r*+iQr0F9FH1vuSLQ29>@)&i4F~GlG>0~i34xyc +z0qI$pm-aFTRM~WlN42dF-Y^Svh$w27mRb#nv;9&*5CL(3syec)d25$5$Qk;U%hi*# +zHYB2_HO;=_3-i=>Ztss>)#CA+F%ua9#CxR$xNJj)vCxrz!f&6u@z8ePFZ>9LZ1gv~ +zGZ)WUSFK;$1NGpTx>mgx7TnrZiybyDd~MhCJao8r(u&~cz)H&2`F1g8=z1p^oU2!|@%K9PN^U^V*irp6&SWuG^M_$|G +z@6kh-E}WRIo_!h865JX{kWOq0$ +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 +zM6xFk)`%ml*Sj=|w=6smR%u>< +zwlcIxOoJ+9T2kY3h(s--#A3d_GQ1a2$dfvg3)3WVr^fYl +zJn0Qb0ntWEr +zTB;m9z{;dvXpy>e+fI23Y*-<7CZ1?S_k>AwAi7(Q;R+x}pcsn42xoV1V;K5*5~NgV +z+lYreNIu&n)WF`2kIJnN6EEkx8!GP&8R!F_l(|7GvbF%hef@Ok#$oK-%n>qf7)GD< +zy6$|@02^REyqj6gWa8nO=t7e#_Q<n6`tJNa?H +zOnv8jJ*Mh77OsQm{BX?ca6J65@~fPo!R`zV=8*{H;O|6vx>2EF(`sB%#0>h}8=zjJ +zfIO#*Xk^LMBFUYP|p;Puj~1S_(4WE<*rwFsUyWO~etdTOea1FpjUoSp(_; +zATax-RfdQ<=E~!c?plYaL{w+_OW4)E1h(EtX>wtc9K0ZnoE3|hcB1tHELKVjD9~h~ +ziS|OnPfJ4PVId9VZ41%y$dqbK0HBrEB%oM1BbVNW>L2MSc-wp_sM_p^RE$N#E?ITr +zc^j=_<$wsGMMmI-N7i;Yimln5>!ya(Qy&(n(a=1(V>Br2p-8p}b8DW)>^Q30#Wy~& +zb4V1}wH-L9!^K+nGc%ZIW>UcX)U$ie#R273Vn4W^?anx_Bg*p*suILCsw4Wje+Xg1 +z#DQ5+d_3m$(VM;>|3RELW|gU5=diXcWYXNW4cV)spgeZ7uT#h3B(0U34xi0qV9zBf +z4f9MI_QJ~aV#t);roc+U@<@HlQO+(`z+z5F{SpdPCiNI~lbAs2?=qpVqSSP9U8cDv +zNg;%Mt_QFp+Z=N35EZ~;m2g7j`pl|*riXx4Ass-T;?gy17s*!HR=@G~$y!yT@=7Aq|46j!^Q{P4sghC1*GEI*C5?X1rsSxY}7#_AkYNqZ&qY_ +zP{-lOw)6YNXL9j40ag#3<8rrs!73?v@`yz#I6X|=5?SNR##N!+TKRV6t+n>kBK!wi +zE6t&e6!>bM$7;7?+_#Z5I}QwV8`Raxh&)HPZF)^z$H3}tAGcpXy`v +zrti42gWHh_$t_w~-6WJ@przd){y{k*mzV(^Fs+ZMs)ymdb~N2^c*E=a=pU$DkE0G& +zG%g}eo-blh;tkenu1L9Zm19luBCejd{IRJ-+^IWivOuh;#@k8jGJf0Qu)r};Jh`1n?A@zPM$ +zQj;v6No{!DdsG-n6H$XQBdTZOh#~5W;hWN4jrMt(J1VV>--Iv*NGAT@sa1f!fRci| +zl{R@&I^05diF!J0oZ6DWdL30G?F(uiJQt&COU(T>eMD%(QffOK;v!oYfDU>Mc6SjO +z_@$jUTqvAqqHM;fI?_uRv7Opkp^hnW4tu$A0LctL(}|FL`y%Ta-N+_!ojfg~3_QwH +zi(oG_B_!ZXyF6Cg}diffNAL3_V^(KdPEOZA-oierMnCER~aB8PHA_n59*@ +z_~c(4nTYNn6QUAexPZ-u(v!?0f1Js7b|-+csD*QOXzL}RAu)o(qXJ+S57`CW+LE5# +zun9D(sR{@a7gyr&NWu32P3z^50yzVyVgs0!_;eE7qY^*1$T2`!ctIOZ?4w}CyT_?B +z4=cVB`DGCp4CV&jJpyNYgH^(cE9(2&w|W)~0|3rIn>fqW9rq68Nc=Z`cvPvH#F9%m +z5g|^~IF&ka2f%aLoP_BDnyJmySQUgEwBcI`2I_o-E_K0(&&n-IQZT2=I1=RU +z-HxPHGvo{R9DznM%XLVUa?-$r1l(|cWi^eJw$sERLStpM&>PUST$u^YNl1grbq_ZW +zT^_{5Rx~XBQmV%KPfaS0{{Bg$|I-79{f}g9VbGef +zrp@i*S6Bg37E +zaDd<5NM@)}P5{tGFQt1lrQD{tk(rW+s~nNPCXS6p(<P)L%iAM}cOjnTtqxACVdH{6umI$(Ps|PQ-99TXh7y5vK-Hox +zT*|&A>0F?0)O9Q6Zp92ijGfkh%?1p}#mQsq{A#CipetMnXOQLBgnKMwFE61Rm)nnm +zm@SWZXvU2AJOJT{7r-$YxU*2>5GB}#381KAsYGa^NGDIF)a6);3UYUvx5xpOIIly} +zTzmtbjvd +zawRB?-P~J6Qpz{1Aau~x$Ry+`v&yut)D5_VA5Qy7^&K*Yxe(z{BCcYz6@&&!@}^Ejk8S77(-&{%JjYiNc#TV(DyA +z^&MyRkG4Gv#;002^DipNxMj}bm<65ed>pMCfF`c*?^PflQ2y3)LKsmO#J?t4K=T**lXI+3^zk{$6vfB{mY>`0_K +z(caDGt6mD+k#fTH+9MWoPo1>`T +zSgKOv3Xdu#12}Wg8NJ;`g6x6EV5qoca0XE-M6vLGk +zg>ZBrW{TPpV>#_wf&nHKO23MQo}R^@iG4)C--(_hdodJ?+EdV5Y{c6_-9t?bnL{@M +zb;j~Y><0Bwl-NZ(O0g*~;=RV+bZg!?X^04JA$y(qN#Cw<=OUA1zieU7qVmnyBi$tS +zLfQ_kwYInIz6q0b7}hCnX}BCEqx*$HJV{aVHb9EaHQFCI5QdU;{o6pNOULg22k%%PmWI* +zKo~Q$y_@tTDh#cI)k5(DjS52h@ +z7NDDJ1y?{q;d_gH;;yVG5E0b0v?HDtJl|M +zSISYAs?=iGPPj@OOEOdrGS%^MV<`dB`cnSGi^rec0fo74`N1dfAaVRn71N$+ereU0 +z>kfoFlpL@ZDFKA*kQb5i{@=SDrG#S|m}H3;{Q7lmWH_`faC*d=oZhA|eM1n$K}#z< +z*U_XJe>ApaBfWMgO~_F)yA`9_!8AH>40~un8|N8eduo_yf-hb(0Z3PNN}A5x65aqD3peH@NO{BCsn +zER?gj_$0LB1gJWe9I2=|y10u>6tK}_^6T6%?#7tNo~g&l2wt`P_-RA4_QG0T^w2eJ +zR?TdC7Cy_S$Kg}xh#4i{X(=`?NT=nqr~|UjX!1qrnpY2i!EP94V=1+nP>w2lvEcJ` +zG-UI&^buOf{v4m4q?-dcr`j1{?|q4{Iy(}e(4fLB(%A!iU*%Am?e2Fy>Cd9wf{IG0 +zFq^TVs#Su|jd=-UC0a{CNoPsE>a7nAX{t;?L7C1BTPJ9pJs6^LT<4<>MmUqUYM*LO +ztsS>|cfCF~zQbll@K0{{!(wuM2yqYY)`hirS$Ky?s$!JpaktY}A6HEFxKGFvzjom9 +zEp-PmpJvGwPsTwOkCWJuL>V;WPLbS9oclT+z3#?f?bg~PZUT=Rv6KUqV~v(KE5T6L +zD*>My(GMT3To4Bg0&T=ovL2#ol%qq*l +z9xi?72x~GARNlEhZb3pMZY{V;#h;LS{N5R)}$X$tBBQ^99GKz=1%m5;u +zk;?M2c2LRGf&e?qYZ66F3(kwa(_9q_xjObzVJ!^E5HcZhSRnla9-7 +z@b$EJF-IFy-6qZCsP=lb6+fiTLp%44+8LCD3>jko`3M}3?6pqczq9)KY=3aOU`CH7 +z^GGAc_5dy>i3i1ACQl!N`1orH8-!YNZ^`_C|4d>qTx6UfabHsslTPpH2G) +zsliV+gEnccs+6R@gcMPikOg2h5%x!AtBnZ**;hgFyAC8(NYpKIxziUSe9JB!O|y81 +z(4cb7<^v*(kzLGPv1HWn9pVc3EF7EABCKS*E{z^)bu68X5+b6*9^9~lud^{OI@Bl!Vy!C2PbB95QT}}+(ap{xkfjhoi*ryh5!)+_aFpqXM6Vp& +zIN9)AY}9FD3A`vV&*I{^RHEV#f+gN6)NadnQhq$1-tW>b!HVzV0Yob2Md?n&2D(!+ +z(sN?^LfwoR$Z)w4!CT0DIzA+ER67#jz7#Slqz6C(QR7wYtW-Knvy_#84wfV|7 +z=4-m%4}5OmyZo5_4Ml2Z$70L#)%gq;jc3LGBYE}tq71&=!P2`${NG5J8oc^Gv +zC5hN%k8A-0(Arqad-z2leNpGA*iAxBdah{dtnFE`l6kIemgxx9zz2jN9d9~{oMvx< +zMo1e&9XvTW!)(ZOgO9BsKv!g7pS8zs*PQU7N{kaRL7apN?gu!6Bbqil@w#LKye%Vd +z1RPREu+Ndt>AhX%iUes@U)7U{6m3}AGZ)|{5qn2sx;+{WqxSu(xE81%s!$~sw_`nx +zeKa|3{=riZ@bPe|tUjnF2xu-J&JqMwaX#`@8tZ_BH~kjXp1FghCUkN*a8Ck|qJy}= +zrsvII;IsN(I%vJwreRXwb&16oii5g9mX8~QxCrHv0A;W5B(2!veNq}LUgNC#qDr+G +z>Dqzw3jolyIQ#O*b3LQ1o&45|TF%ks(go@<3i>kp4Wxj?a1}K3D0#D!wrE5dCLe+( +zmY{j?!-N +zK!K4&s)qG~P}(s1r#x*uax2UI^|<=0aH)#Ducn{MKm+HA-!b2q3w( +zL89%%ZIW=X}!HQ~N2|u^m^``EQBXPL0pF7&KYP`S*{Ji9*9ow<@8)w>i +z;;i3Fzrl9xV`-P^>p3m5^J +z`PZ6F$FcG81L_x5WKR<#?}E^bmwxoeV;k78_e+Vu!CW2Uy3ve+)6kUkO!$RBBs~p +zmN=yzjvn4SzINERbBU2Ue%uD4aq(0zW} +zl+clOJFi{Gf`4D$#KAf>1@qg7nr*6-rHvj%W@@@1;i1BYWY>vQq?={#JcHyEvQHdUAX-~NZmDSp{j;lS9aQ%qC-W} +z={1woE|rd`dzAHUUi5MnU#t~WzY{surMfyW0W*Bzul00R8{_Osz8cjj&iLQkSt>f# +z;-81Jp*JLyBL^|!Rmo^2s|d^U68Ip~s)aG@rD0DRnJwpH#RvIP`;p=l#hWZ8ngo8^ +zTfG_T$X+8P(DHVNs}l(;s7g+D)yq;0buBb)YU$C2nengSmzbW83*v)CPLnk1!yzSh +z@m|!x;NWACP?N^nScd>dF0Xp){c^~}G#(#l{uN{OhI#~|8sCLB5KfuN*1QK)P){Hs +zZ6gb@nJL;Gp*7-bNgUjuF@hOwqe2yT +zL0X4ljvRUy8odKRklVzWCO(@im3lPJ1pFEPP~sfp*KQK*tj(N6#ACqlMVU6)6H(Wj +zl&DhV`Zkj2L}5XBqfV37dxXHD3<0^=ws7gSfY#B21gZsfzp@QQg)^d(YJ|9RK|$>a +znmJ6PpRAxD3lV~kLCQm`%vR4_ +zYdy4;LzOGbgtnVh*cs|SwB5Wm%_tT<@ewjGuqn1Z}y#;muD$Qvv%R1WtH)*+B*&5kT^Y4!yRoxv{!wHWh(v&%`0rC +zY!L;!hi(*0xF<_1={yXA5>l_`feUwrK6hjbUd_RD31*WxRtbYsVrYjH0%KQ(0U;oE +z6ppSitYMu=Ct>N}6iFo=uG50xG}v3ZoV-L3;VINAfzR;VqDCy!aZ+21WyW18#O4-w +z7#vC2Wwnnod4&*g(4QBmaO`ghj+jpDkjo=Was{{7YqK?mC(`Z9><+SM`3oLunMkeS +z^)YHo3N;VqNbk_QZfC+^7p{Xx&7D+j&Dup6$y&{

6%HQk8U+9Sdo~JO*P>0KLD& +z_DBsgF5F&g%gCt(v(dC|V#Nm)VMySi?kWqt69hmxPPTlKp0V#Y!Rj@ch9vbl#GmZr +z^J-gPFX9bCAP~aFPTp{LyrwLBQug8{;peTpkMCb8f5lJwJ%#KD3tanF4 +zrhkDCxo9OZfNZ=;Ug%?X#7*+CieZ^jjD}BT&p@xUQj?&CQ!Np87YcJl#J)~8zJxMP +zQ*N?2eETkoCgE3SARLcN +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 +zGD2o1EJIiG9wUfk;PY=GkWnP!HzyqW +zB0TUVacN&QQM5?gDwTUkVP?fIn6U%e7%wvt<0=a#6xwj+LA~~PAXY1$3T~|5G!AKB +z90)XbnmnY1!x^Fta_yyA7f>aY!G9*iN+A$X+!^(gw0{G>FIU(tWN^VV*rNDF${w_7 +z5ZBlO*y2UN9T8oL#)cw;L~F^0s4ruhNm7W~SE5_mTmjWgNOPfAfOSJk(I)%4Hz}78 +zqmUEw5{x`BdD4sPK#V=~fCxOiR?@;%UyPKDD$F}$EKk^T2noDP!!W`4zs7c|m9U$_ +zG=5=IM0vqw2-+f`MX3pSTsvK=A_x+Ym8Jg&_+d*4Hxp1_Q?WNyk;rSQ=2Jxx#sHn8 +za2&dgO6o~kZ~)WV!ow$V=~7#=RH5Og1V$p5J9Q>n+=7r)79Uakgei{(wr!A?H9Vpx +zQYwxnAr=-T*9k4^bmEJhN9OsKF*zX)Y~jA~uxg|eg}+}kAY +zYJ1D%pUT-zuXy~3himvxu!?WrfDYKJ%hO%UDT`BBop;PR!-hx^*(43(2~$k1J_rkU +zs%*Dxv~P3W4r~KVbvyT_Te2OPMq+PaHbJUVZjy2w3N+Dv8b`#zKfIu=M*`a8xN!yT +zsnlw&Ns6iFD~+^CF{;EK3ZE)x>m-aF#{o=;FcO89rcwYt)vBa$y%c&9!t|I|wg<_; +z%GBA2-;~1g8bP=0h6Z)A%ZXn$XK~h7x)PGS!6wN9|8LF}K-fx+1O#7na86ppT%{!4 +z83m~Atk`F#w9#S~>-g-11z`5Go`vW-D<&n>5b3ONvX?3_ZYu1Yb-{>Sa?<7`Ld~-@ +zJeuBG$pqBC8Z|=3q3mRY4R%7s3)XU8gj!-X;CV{AWRktF +zJWg6vYLW|+SlJ>TI_u!ntB<%5ntVqapZ*!7rV#K45ZksNX!B#AgMQ^T;^0N9TucK +zC@GEc^=+=G*FvG?h>WS=kcns;5CB*LdviI_{Q2i85bIilTZ?A{fl2q<6Nhh4Bj~b< +zpF)vXiR9)_Y6wFo^7sl`Yke~ +z1wBr$6N_TJm{j0ZXaylu?F-7(dC7T{Rb~vESI8wYkxp5y9O~B~wyY$RU(!Ha0FVya +z9&(gRCn*Zc{gEYjU-+D1h}E`)e;@KP;)XS#&c4uSX%|G+FXWO+P@4iID%DB!78d)0 +z)hMC7%YXZ63}CkXf4aZq%yU0*oR$FobzdLUjdDKutVb_4L?|fGi$o*?5vZp%<7$FL +z+Rz(gQoiJg(VcRQfE+H>78hczx{<6mlqz&OAf3Y3l2-v9x7B1q0C)Y)Qo|VDgfoNM +zNkM0kzb=Q?p@gUUQ%Dv(Spl4VD^vH3rQ)sv=N;cJpuJlUDIH(lXo7JL{jZZmY&spj +zP;^09BNIf+#WUq^sk{Dmrw;nuCA2}alkW|*YvAnyEfkLMGf|7$qPtD)S+C0swr5L!KuR_rW#Xwt5r;)K$;gPE!hG&Rg-| +zKw6C5`3a#IxS~IMqH#OdV|MJGSWv%RIMo+`IW<=FZzYH7YSVm?V%hHeb|vpn@oCOt +z%#g$@03Lyqpb!tT&~Anaikl)7^&H*Tm@ig0ah>-`o+U3qoe{yDjsaSamk^PWoK|v7#7}AA!tHVf&D`lIpi=;eQD*4o49L|DnFehU;ZIF}XWh9fw%*Hc +z`ifb}l?bTF^&{`I?Um+TluacRl-!!G?{|IG7bFT?mZZwGLf<%vVfpveCr`ZpxOM^ND;y#FtZL_EmOC-{15@~hJ2=hd0z+QCnf;cVt +zQ=Xl6 +zPvL%>Q^k@L;B3hDx%ez`Dw|FF`2B+n!AhH9J0bw?xsu`*9fOeVlpD_C#wsZilg%p+Bbm +zh+_)6tC!g}JfTOuI!=n3j%ao}2sUx-T5(1lHOT@fcz^u7M_bL}^!%~u<%*4(d4bQW +z9S$?^7rf7``prI)Z5W_>Ci|ea9ci2_3uiS}$2N>^J+7KuvpV#==EulaRjxi}PXC&# +zsqUsa!^w7$=0`>U_jvSN5^%0!BzNrmb<)x=+WYTF;G5YI!V-)igJLcpS_2Xqv@ug1XWGOf7KME2bioZD=wN@!Z9oE?OwUurItn0+>tUp^v?4Rn~70yA5(#_P5=yccKt=!b3p92~Qex!1(KA~)0Er+uSUwQ?-(+^Uu6amCrRtrQbl{Wbd8B7WGj9ii +z^#xsw{u=VjcV(fV(j}J9W+R(>4 +zURu6C%)#UAT~vNmm74kWUbN`vixw&s$Ero_%r!;<@L7GmZ)@y$GDA>aRkFRTnJh&n +zOpj3oZqB>UyElRFdn{v2&C2sNP4oNj-~NfYG0(%JCn@MSK7Xc>+GtQoi4mhm|En~o +zJIwRCba99z;W!w&&YJOJ@3m4h={X9UDEBZ0nN~k3T(NE?IX_Z&b%h%)C{~HjAr>r!x!Q$RMAi +zH)iv^7Pp1Z$Z6-R8Am8$8SXl4-ifM*^WKL}Rb)GxgYQi;+ts>RTT^cgf;8_3+$%dr +zjLip$!2amHS|7ZI$s#4zejTOIk{%4;x*vXJ3H2EI!J2&(SjF>$*pr*RCkDlf|8e*V +z7~aUXd=VpUQ}%vF1s7=}fYncm3srSA9MD5lt9$0+IM-!^1G#I@`f)JFMTP<_bh7Y{ +z0<3?9HFIyNM)gXgl4K(Qv+-BlL_^3=!`@DDSvR_6X5s{kHEy!%)8z8>yWonSc +z?+UV&2VyqdfuyAY_lwVmo|mAuafOxYg6t|~p2;KtPXB7|9V2np))W|MsmW0%3AaYP +z=FoBcO92*bq5jj0DnUibfjr3gI0PUUOh1kdCK4)RwOdSs; +z&ynDLM_faRH$gac)5O5i1sSV*U}TqQNQy1m)J}xQp03gJ-xaVV3=$!ve<7MDL?J4# +zmq1FCXHV4NK7<3_VIbcm8cX)B2? +zhKO0`P8g56vncy0yO5%%OW8NtI^p&fVVp{d$j+<>RFGilGCnTA6+n|dj{;Cjb`w&- +zJe8K-ptMw}^0eH$BS65G^o11dW4M#jl08IBxR(RRnKck?X`0@kIlZ(n&`;NYL0+O! +z6iWtSw`oc!yn6Y8ajIVcrM$?)iUsW+d#RH@M}j2Kf}?wzL;z1N5(not`%cTa2|LDG=%%gcZ +zL7}A`nAuPAO)qNlPJdBxM&UEID2%NEM6mpi5plP!%P#IXDq=vdQ2Ab4#ei#q&Kyx8 +zYLf(hFE7ip>)^@P>Ila6@&|)SNU#th%1O(vgG(mX7%*oiJ0rQYkwa~P*{1sDp+f-U +zA4mV@g~IP59lY|BEM06D +zNwKOV6*DhNTq*!~;mQo^Uan5bs0<)NnbSNj&Y@2vjURpJ3P)QJ4odnehjf?ET}`r_ +zK%SJ9`)MWCDOw0z)p>y@Q}~Ah7pVGGE+SaEk#fgT3|bTq6hC!_TcA3-372ua?x#oH +zL$U_ +z(?Ydk1E+1&lXojEikRR{&1)qgZ(lJbz(uB4|8ksNROI3d4a=ZXULq-Tu5*j1!y`IPg4vJOjBD*~0Ciy1^xx#(V|d3-+0O7j~@*03<Dn{b(Y^-1nmT)kmAPD?Z?*pVn7bd +z=B7cFQnm>Cm`VEFmj3mc1eL@TEi*L($rt{o+q@tQEWM&y1^zeEl1gY?dvHca38rs(Wmn-TJ8+07&sM)<>@o6UEB{~f3F`{VyCgPa44 +zAB5u{G-kg~ghSwhm5pT?TI`cp=qHZ +zIqb9t0;X0A3|5v=e!_*DW`z95>K=(?hlnj?doNuj#DF1YclU3SOc@#jue|uaT_5$D@XwGZ=wJACxzH3UH +zO9++@r+p7_@RoB!+u^0kuA*O6qdT^=z667$19{l7q&kGSjKnTGLuz`dhe*`a0xa)% +z$8zMN*YiHTC+o*&jZ@?1!ctQcWQA^O$IM6s73rYEHvf}w<=_$Fz06Kt_ocT)X?+^^>H5#B{7P1HUdsaKMj>>|n+pD! +z$d-g0j$bW#aUp9U$31z})V>raW(*G%3Y0dNBv1Eid7r#+!0%5y7F~fJp=VczYFmbh +zKh=8Cxj-X_7v$=Bp0&iAC9Xou&7`{n8Q`8vk|K}`=Vy71WV*J>O_xy+j&yh>DThWN +zBWbm}c+(w#wNKrEuvveMLe1XCmu~F54qJJjx1r;|#aM3Xcfai=EH}K9`V3`Nj#J^0 +zB__i$?T1%Jsd+fW_BrUEk=T3zf)1Z)9pcp4PB;iYpVu(>;!=t~N`Hjd5`WuCX?p|r +zMFr>;x*?xqO_Xse*-TM&bay`sfo97ESwk7oH#x;-01#&(+SZuQ6Tlcx=g*f51XQ}n +zYGN@tX@sGtpMBN=$uJBpldCx>yg#(ZzN_g>m*PM~29N +zx`RoYIKi`Hi9C&l_N8)W{+~szX+-jogtc_~#zNgOTY%mb+L};UyR;Ep{S-tpC0`aj +zq@UWiAoM%QGRCa9{l-UhVA}8-#rgR?g#x?vb0R +z$Hp(?E52>}D#+}ydD}#He)s+y&-FsYsJFdS%~mF{h3a66N#K^!Nzp^dBWlP6VUgLypF)MHd!NWLaMh7?#>gO#sBGRAFtkyKRW +z>!1&)aA;e-P=H;Dof+~m1{frLKqkViukjihZBHg4EQt}dPa(LsL$03N(d@RRIe0ic +zs%%{%z7Cr2cPiGl*jk*h2(}X#xr;Hr%l2vAfBN>fdt}+jA%%L5$zY;tKFWfe$6Nh*L +zoO5+Z>YAW7-AAZ}wpO}f68nkEj45Og5~MS56SArkD67(bBW +zk6ZWV4@B;E8Ba+&2k~}5(}jIR2pv*T70Y1$j{vt+j3z0}kv>o6XbgCP#iaRP2 +zWB5E;3a933WQ8`Pu#ypZ4V`Ggq{O?Xfeovb17RsR%_kL&ferAwD +zG@-Pk(c;|=$-?d9+@ +zy3FNSyt0k6atJ>%uGs8|jKFyM6es>3UL;?dILaDalLUeCRiLIJl<)u|IfVG8Z`5IQ +z5CK_W;(Z*Q9HFtXdlhH1#(yQU1pv`<8}0c#bV}e6(2!S9(U%Ek-1g{O>5jL>q6&g};0Y*4Z5a +zzY!5P^z}?qf4fdn`d?)W1c(o$fJ8ZfBQF+xe9_J?D@4*W(hcz^Hhjv!z$t?Oc@XX6Y`(`i8TyMemfqSKtMT{M>xY##gSYny@u4a2($fN1TxQ8cjH}=IU +zeYLmj_hM*@{ia{X)Q!39?fx_Le*nJ1dA2JtaZn9o{N95G6lQ44*+M!m?J&pA2q~Wo +zN*|mwWlCk +z4uyHGu119Q22pcIURwlw^rAb{_s!yCsa-G_sJ;0$TG9TfT);|5kNer-!RzD|0^^r& +zs;XZ^BW6|{AZV|tfcm2y=*AE~3`f>tj@iq}HLmle#|JzJS)Ej +zF1vXMq95Nr8z;1y0d_+=j#f*tl&ITrLi!6@Zejz6ynIfcf<4s#|0yUg_gNsBJq+j1 +zOF@F9mP%$IrT}}9Yy;Aaeoq&pVzlmLquZGFz8_Vb% +z?TGU!Zv}u`fm{+w(ZjAqm0YtS>ow4cG_sLbv)omt%qEq|Oo +z#%@LMn@IFR7>W`nkZ3EM@&Nvjn`?qU#?PE0EhlzD4MWX-fON+vl^=tdrUjZb;{p=n +z6_Y<%hE_IRD$x9>!9kbi9oN?br6Ck!{aK=enD3dLD1U42*=w$!b)3e~9Z?kgi&J*C +zUq7}J`rx#8c`aOHI%rn`vE>Xv5%e8t7QPi>rqMBmXz`wd&^JB=D7|N*hUhxzx`A9F +z6c0KBk+Jy-lqJK{a>OR88#pf{74CT_7)+F&twg(_J`SjN>?C1K90Btify-|eQobK< +zc@EqJo?&zu2D_P52JzN;UJttVjeORu5HWgRy|ZeEMZt&I3jat%3E8)3xj{DEi7kN` +zuxQ^xat5>eDX5v;K9^ev(M((sN92xgV*I8h{QwRk-W^agS^N}2ZUg5g-V!eg@a;;1 +z6%i>7;N$df+1vA&-BI1@vnS~f5E;)+H~Y!x!R#9e;Ns`FNT~tj*b`F+B1elD6d<)9 +zBSr%YaK)yS@f&d_f!!g)0a$Hf9f>~YXfmAZb4A8jIgLlxl;W4j)#*rr5ud%NU~qGb +z8C{I|oM5n(2Dw;o97rW;0n5@ +zHLAkBm<|QE7mj-(qK0MHAy%t}3sHUzZF%5mx7G*~=@QzxFFCW(|7zu}TNRUzo&2Q@W4(Ov81X7;U~MT1`MxT3_gT8=^77Ra7}Wlo5tUfVne +z1OUM!R>%Szzie#ZrOWwuZ%=O>U|`GNS>oR$Mn1CxgLTTf605wk0_YIU7KT{|b3N}M +zc~{)M*e&v-oo`q1*>1}))A%TOho84KyyEZ{f3^UgkXnGp5g$fkm{Yq53Iv#e)HtpY +z9qkjiGX%^Fb&(v^H%bub(})Wu5rQ2__*bGDCbid?T~S*6Dq@nOXCQBcSVDD1WO6kp +zSMScnx5X@k20?(z#Vm=&9jXg*b-`eupnMSzVzdoVSey^S=^j1u37!g*V%mUv7*bhD +zYJ2(U+&jRkKi`;VGYFyEXW)ITqCd1GFp;8B2~DU8LkdckrWc=)ZxtfxF};W=i(Jji +z_RH<$X|FP%v}7`Zj>buriQ``zRn{{=a#5S@Iph}ZtL`kCCkFKc&5S*>wKyD4^ewn- +zE6NpLT3h@9Q>P;&T_MB}5jf+dGOltUV~<}C6?7PpPVn=GriJhMVhKMCgC!GRZeD=^ +z$hOp0xX5&pMIs*)O>6+p9Y?w>Ld<`4e&(IG!#E*!XLd(X{N0 +z__oWaO%DA89@>EN?KcxPQ8A;|p% +zWM;b4;N>9Qh!|pqZn4w@j>e<`HM|yq9(wk~E6<|59Ru2)^)uT>vfb5)VwjOJ^%y5h +z7*vUP{G2hwa^TS*Mp|x6%ZVg6jG&+|jeq}=?L}1^f(ehI?`qx>{MEcmLtX9r^iu1r +zG$4K+c_l8_``vONwPxfzNrhH(S`I4Jj(SMZo^q(wu@$D%rP@g_l^eD!O9u)={70a> +zE3xb-uuH1wTFn}Wxk0kCh+m3lop}1|%V;V(5=uPLj+SS~CwTWz`$eo95n~R(88mVv +zK$sEtk;JL-=?i<4){)K!1c4|?>7#bF=D~_j4H=t%mtMgYK(7(`LfuhMV5WIVxh+U8 +zh}}wjRrdKza5#&^RsHlAQ?1vn2VDha(5p?87nN4xtM}b&K~7&G9hzjjrXb_S@b|j? +zz5FinAF^Naq~7nsSHr8zNo|ApD>`q&1QYVdbbBM>4rAE<`s?4KwYH0BRsK5SC99ss +zSL6DUr%f00qQ4hDI?m6$*;t&{FqeBeW;@zklBr>*VJ#h23*gq>UJY?quz3baHYEq2 +zi~R8gASkvISTvj$LHA~bWk*DyDrO;SB)G88U3{#YmL>^2Shx;l!wMBlDQbX4;r~RG9=fK+OE_UB +z!OfGlnlxl2X$V@EU|W9PizF`LlcnaIb5^3CShOEECAOq>s(SFONU92O--s8SIrV4u +zz;730mmZL_G+{dC_R5l#-P7@;B1w9x9w;3JX|$h1uXz#!roI`SJ<7eD+F*Nbo9{;$q>pFJ5_i^`mk2Q$^x{jV{## +z_c5=_vmf+0i8pB&j +zmu70>S{9_z&+@Nrnib0PXh~f9;>AMZEouDjhW6ytACW|b0Wd--R-fyAaQ0{bc~{lN +z&~t#@1FT)dJ|w;r;z3{N=gw9|-p)=W$uvN!bdtWBFCprrF>srpjrnk07>`NZpn-S; +zebIwOA*c528X$#B>R|%lo?*GaHTD$PEYzNHF;CisWLCKWem+8p^jRh@pa_@fhZ-op +zHtUI&TTEH*y4o$6xGML5*}B%PSydhTM777d?9*fP9qj>*+f)R+;$q`L!0o +z&r*btgk;Wk21^(dL6~JV?T>Ds(vNctk|Wa2oJ>lHY9J;)LISy@aF%USQ*g_3J9I0J +zVk75F*r;md}}wpEzwvkZQ<`{D&qt=377^%clwv;@9i- +zz}fSIhS90(+e*gZ&wK|!FY-jRD4QX-4}8+Y4X*Kf&F03c)6ps@*yuwjLB=#SW7L-9 +zNeM~bOVJ*GwYxb`M~3n6J1`rrQaUm@cHt! +zs7q+dlFR9K`4qJQvX93?K0s2UdXSkEf{H)@teSzIIX6k&w>Rl{u#qcc-D8P7PCNuP +zKr9Aqwqte#vWEJo?nKKkw}-}=Wmy3Tj2irj{9f2h4d7eli31@0WmZORU%EO0aNrzJF!l=!(qCe;@P`YXlBV)=H3)b329-Gmg +znT+f1fYjA!ib<|vupC&`1z;>j)tt6^zA{8pE&lC3>ehq#T{EYnatIDl?g>4F=9bbDFUi7KTxVPdK +zVyBZIIOZAlA#DT7R6FMQbj{+raa1xe(j(^u$9?}r+yyO4A;N#=c1}xeCVg|iM6Nn+ZZZ^C(^HXR +zt3jC`IF5QSm9bwMJkWQ3qhkh#*f%xr6kxt4B{^c1u=*(sG!$%I3bbQE-ERztJJRb+D)y{~I+JG$8{;J+m=X;mtB6cj{1@{=IU6jwTN()D +znKn*cPzxEU&AKpRi;~h*$H(nu%#XluTM3aGd{(*mZTj}|>WiI!{jW62bF^TGy^!&X +ztt~VXtwe5;2{e^qHzwq$_$f+rSU-~HA20P)+UG!Oe;Qsc3L-{ftm_k{k^cV%)A%9A +z61gnKY^?+r*@wYNroY9yP=G-b`LR1T4N1qd(6w<@ii!lVZMe2)^(r-mIyUk|$*~#K +z0djFY(gSz(G~`PShHNBc3Vg^JKb8vm;KZt|dx*%0C5_>GeUFc#BL#B-ag#J0oQ1)l +z09oB*UTxKXKI0%akhMj3-&D-}(}U990Ejzq9V|>U{$H-B%Lg#N)tyIdO;IZVuGiAX +z021Pl(E-^3t4nk%i2(0L)~1?O@O*cgol7r&nXE5=)D;+s3G|}ZtRdSo2agOWg^|Yu +zA!IQlC0Wo$KP5!Nv0@W=>t9Z^CxDfPzG;Y@y~9TaDvu1AWndcs{=VFhJTjH>UYIXF +zlD6@{Q^`g3@P~>m=W<@Jw|la3o7=CvfZ#UG70KrCtiz%EaIUy;a*22%>n?s)_nc02L&1_zs=&J$frc!o>He1`@`HD6dr>R#a**-|&2DK;D +zCk07EBvHst%HGk2GpcS|$)-8f^>qYPrRrC+djN_a86$GHT2P-aSL-PX`m7a(Li3NU +z@Ap@hqVk;}C=6^g}K4(fSnpjN5;Ak&r#chK4oL}lwMVy~u;qz;j~_V_vY +z2U%a(gRYQE8G2`nx80%kb5uw$6{(UeAFH74$Phs319dlpcirupk8}S$Stc2{{Y+*i +z8Zg_cs}rF0XmYjVr|$bl_AXy?oH!yY0|>3RtS(7l>PgtZ!eNa)Xb&m3r{R1`#%UoNgHw#?$yU|B>Ceer$ao#>5R!$5jvIoX +z>HvyWMSY>DLl!OwBEU?$EWrU~0QCFh8-vGNPA92HodlGjtgn4}c52ue<`>lxN|f8A +z;8DwPaGnX7IiwOtQB2+>gOFm*dPnh=tm=LB<|+1zw@9m67O7#xImH=AJ;M_%_UZO+ +z05X=Px=HK%6KO?^ffK5jW$b*b_f +z%rnM*oX_J#+D-MD2Kt8WkWmD()z_}D +zRlNd0iyblwMMMKQ(dPjmiu~3}#y1jsRrwuIf3IU8YA|;+?e@1JOPs)rjr{;ewITpH +z(XvQcwHyyc(hezx8#`F>1r_P|M?~9}4cRu0NcLE5RFCyGZ3QmPB^m3`s#!d~x@itW +zwW4z;^9X|m0p=Djc}>IVp&fNR;YE{$^St?Qzb} +z-}9#mOwGG(8E4xBuZw01(&ZNVrO`-anwDdq``C6UkXEp>B!6zty=;?YUl)Poc_WAF +zgTR1exqOUnr1_)%9;H56mT`<_;9@!28!ZBk;QLbntHM;z1?3Ay0rZgAHz!>FgX_g5 +zcJ!$l!|9bI9?)`)GrhQ+4wGG;nVKnUNfwv`Hg`y!=)r^Jj5gk`Vk}Zbo7BA+58)tt +zZ}2yt90qXw^XvCjeR)b|oDHaVzy=jxDC&`0*0qp5DSwC5KSYX>{^Df+wYzZ~uemIP +zh!{dfc>%KOzhtG_8Rn5NtPqC7CT#%HW6X^B4W~*;5w)sLVd#~3WIi_ZO;LQlWo@;I +zv(hSZ(U7MhFz`jOabMAZHRh=&ML`z-#j{bKeM%ket28sOKYmVKY8xP`TvxqzALL7> +z#~FCKfT9^_4g03FTzZHv^$`@6x&CFq`(WPOE@iV{X(PxqJ|7G6=dL$lY43O1Bs-eh +z$YL#$mJXSmuQ17=n~rh}`o#)x+>1(cMTV9|J-7ZXr2CP-#9$cY*{RbpPWJru`~2t6 +zb%x4q-`M+YIwrH6en?K3+~a$+_mPq&n8aT?WpmW=ol}OVyALryg~%*fqLNKWNtK%c +zbNc}J+R^H7Hm?kvirAd`+XXBfAcy}lRD!V)Jjb_-^2y8e-v9X9v;TxRmb2lr14l+-0yA_eH%n&-{ +zs?QyuIdEP~Q&Pndk_S9B6j)%ELAkg`@++s+Xbns9+{8x3U1)3cb>!C9jW$KW5_%nb~X<9AJW$a7U9u9ZF_3>W2lBZbFAwv=yqXv-L +ztj|ok1e~k>_(E!ajxh_P$4MU6JRy_#d$sQX>tc?bv@>^V6k1$ +z9&&$?MIE)5S{Sr5FleVpck?V`qiV}beZ9kwb~om?xC)!i-JExFPgW&+rS$JH|NV!p +zUY6}9E<-c!(M09@?(pNufmoTx+^=^J0=L~VWaK}y-TgOuS@>BD_rFLs#n +zO2ay~?O>JqeeFXxzk*Pjm7^IvI0@kxX(5g82TGJvve++D%jyVSKS_}9Q1kKNL!9QI +z$s*NT<;Z1OmZZ4l%CWc2u&!M%OsVBf_KTE9mv?{koj3*WI@CGs$0~aKy~VLkc&XOrj@sJBQ3dC+jW=5 +zsGW1$Ff5}Fomg|Vr)yGv&&jOvi#;>HCz(IBCmq@dA9w8!CyTufZcY0T(pH~A@`9@W +z^+*2S4(i0ddVYuNcAm_Q&B+LiZZpbbspBwoy|qIY3Ei;fahq+oi7+drTSxMa*K5Aj +zi7XB$J{z@uM25V786 +zL>ydxS@{&fy=YFtwOhsFt6`q!ZS1U_CnduONi&*I1yHkw^p0Csr+y0KE?2>Kq%A+s +zO3%})g=*=8yBooHooP!@Orv%7@Nl8zqd0D;t|1+d;JUi9k~JyMwwR`=xzM+78Lt{J +z_F@}SH(j7wYdO;Z{{H&+dgH~$P{4rH4_8p6B5%~UmaN;a)lMSv +z(`c%%PTj8YMmz*!p+8UF(IkhFbXg?E_WBaaIMwbs5t5R=@56u*ijS +zzyJJI;su8}W(KaFybQ-hUAsgZ1>}pw8%MnU+50nc@S}$uMkePY)gBO|P`^$~T|G3A +z;f@xkFdq}LE?jR~kqsxiFQniqTGbWWxEdi>vHgjRr1%3H*J%;RL1=PU|qwTL8xa5JefSn*;% +zA>HbVT-)N7UTlfA1A3H2Vh63r?=)X~SU|u5P-P+{O(#rU8ECtfWxe(_tbS2j9eI-> +zaLU(g%%XDGDqSZkc%35S@~dt{W=Rp=joiAD--pvN2{+Vr^}(IQw0EUUj@hU(&e5JL +zsW)ZotTaP{)Vpw7VV6;x`3j7BAsS+2W;5vCw~C6SJN@Bcf_^So@_K_^>l!^kK1cI@ +z-=B0Rr3PgWV%yv6B2fKb=u7LfjZTW1>N6I*&NPkPJ_+JQeU^RP#BB#|r>`>*%@BCi +zPe2Q_MJ{?{#AAW5W8ws_g`@;sWp?n&YT|btxhJ>$L<@MiL%q?@{p5a6c3VuJ6RFK +zAw+q+7e`5tthu(mZS8Xw^A8BvDWk|i&aqD+2V7MZNX_`3yM(N3;kax2U{t2#Qki9Z +zAGNq%OuP~vzg5FG$L@@wC%FLoIRz*jsKV15AeoXAK(H?3vA)BB*)k78O&TuOJ=htRe+l#i_(|hb`CzOTu0(`34{cv`_ +zu8M%WzMsXGVM@>I_cvn?3yRWb*GM+OW&nWl*pucmgYfh|m?cPwn@?W-uGlp;(^rR7 +z2*6z=cJtJq_{oowB1G*nM9ITII~D<^*vuHa`qh`4ng0I!AGvm-&A>`CDEFLNj<(^M +zW@_>`#kC;?Dw9Hl&i>I+jVhx<+kH;)noH2G70_%ntpYisX9Q6F=muQp2}H>sCmV=l +zNhh#uX6?zDez&7hvSa}0Fiu5@JSh$2(=l|E?!Zny`jT-{PxUPip{%|31ECfT4iOKVi#vav_Ib+JC5 +zhu}YN4GrlLq)A_A+i7nRQnn2cSv8SY`CW}0DSA2W-k^~NGWN)MSNeT(gJ%PJp`k3r +z070?ww}{i`d_ep*qQqO?18jt3lBw>ZJdYeyHGz;=c +zOZgt!7m#g|4W6X8hkAn(|3Mk0& +zVm$4{$><7}zyIc>N?zdWZ+DkRe0sXDkNn({`2FZT+j)FB3n4bmm&UnZt-aZ(4ynAJ? +zXL@EqDB?+vn4U4fUKJ06uKO%?aXRzNJu7Mir6ZQ^*x>;d*+DWC?;hsNoe*fS+mZF~ +zDBJI4-e8n0%)J;1fxiG$Zm~?7Q7qppwB8*58jVSzSOD;oqK|JB^S#{3Zxs9O5gopl +zC8z8=c_u^AYsH^OXKGeF0>2VOLiC*9V&uKBc)oI1L?DnDI>TsNoSUf=YXbVRAn-ol +zFwQg(?u;6xikmonWzu8v?bY|eMzNPvNepX$oM>eStfD2L)2JPB<+;R$A9WG;VnieD +z0rGTIwMKHl0S*{EV05yH8Xg{3_biLq3vw+!na;m$8L-En0ddFK7{k#W;VUtFxwsUqMn{{%N$laUJgv4xkh`OzPl%s1XVOJ+AEo0Cjku& +z%<`}akGO7l+`!hca|?8rV`VoiqC>4=T7+P9u#g(Bmo>X`OK#r>Biqn*v_xGoz8}UG +zGwqO@E`D9cF%iYyUeTV@=Cd%n87{ZYv_;U-#tHGms8*h)1O6C#a93+hK1}1BC`Dr0 +z$CYj6zB7{@_nD>}D2qZl8g3uz1=pIwbxM}PsAd&RFSCskX@VH^f3PKdbiUWc((zM@ +zOFA7X6u}pyxY~PE)fu|Rw3wKB@5Y!9f|dswj0PM3SnaqSWttDe=2>!}qRucO0=+GP +z3%YR6^++bflssRf=wciOnjSp#iC&$3kHXq_$=7iVJIT^1VFOfQD%8b<^=nj~Ql<$KuS5!tDDJ`d@^CfJAq%Awdq<(2GO +zMRE+wGNT3*5LJhQ1x_&i@XN>>k8HnF-3RK4#sqJ{jDBKKEFd_e61!3fBa@C(F8jc# +zu!-C~8bDMak`MVb0N30e8HOK{97#cdVF7!}bE81oF~PLMI|%l1-l7XWJM76P#MH4! +za*obuNZH;s9IZ>`Lh1>UhTtR2WCr?n`~BZP9eaFJXlo=)oCLb@nK(#qoR1qDNYtT= +zD}QbWOZT9jJo@Q|W^}*C?xHZD(MOQ}!=WI&l1qQ&cM4}ybO+9?sJ#sX%*{Ca|YJ`ntV)tzbf@Z*-9J(-5O+= +z9YB*^CvxCuUbYp^c<}XXB=T>^cF|LG0GS@d2{Lp1A&fpH~75ah1m(jH}0fG +z9AE-~IeCM$_uFpXcgTQ+({&E|;*c*OzYnH4(Iha`dVP5zf+b?`Vq;x!ViKYc1BOAv +zt`^tfg~>ce^O?%p4)H{Ey1GlUd|`Py@A^7Kdw$VBfw3{{fqdQo*-0kNt;;7qRi_=^ +z`cH@rj`QT@`*C&q&7Id^L_L$&k(x0%bp}p7=i!O#4%;o_rm$8xydCMI^ZXMqqpV{? +z2v#2^az1@=85JGqUdnh`NDc6EuSv|3iH|9sfsWLuI6E=2M#HBH3ZaEEEdHrdefWZk +z==?OQU@QsHX|5_zKA;`j#H38&+_y$e!4Pdjd|KZ3t;yPh$4f4>Sug8Lk7)y0XuJk|!d$`#^4Z$I+Y>*O@fNlCGzIe24Pt(YuHz7=KpK7H=;&`~`6QaoE*F&{k>B +z*08|Q8h<&3K{OsrwiGe8R=+5Bcg~rE`8X50aL(*jCSvejDIRC~45n>pu(>sjPCM^^ +z@0hPWqI#UbM6847IOvHUU##exFSEa_u)N;TI|NpsrbV@iyfvEXtLpQj=dhfKD4yTG +z>QYUSoAplbR2Npj*g6W7%x0t;^=y{v$?q_mRUzt9*jK$V>c)-$p%lr3D4Rpbm!g@v +zsG}k1!)(eiWwp+4E@Y75on_~g%dF

(_vUva~%pSO*<`Q_5@gQXuRa`q0? +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 +z)ESJfmF`Bp^Iw^GYAKJbi*O- +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 +zsS>$brb1 +zQ2q?0K~zp4|BPwaT*+21S~C`eGi&v+U6Y|DV=yO6j6aNml%(0Zju>k$OvIk;pvd(6 +zQ%KKf6lonpi`<4dGe9u77L328t8mn#bU@O3UX%k(Ws*Iau_1@`?#F?QoN%P`-%0i6 +z&?6nnl0G8kEG-`-mizhOl|O`};eNy8fc7r#qrxa3hL&^I1dUBY`aKecCl?NpA%!*W +z_D6FEl+23^8yc$7cMh#XB~FfFsAo%36jtyr+yWIBQbFB!qni!r1JGq-X6Nh_JF?A% +zoAXO-RATew(XzD(Y5~*4UaqVs1xb06^2J^#)%n`Tj;mcL>)GH6=dm;N@+Gw5s8|s) +zm91P(sy4uOGHuBw34Z$~=MyTc*Hg6>CEFU2YnjP7fWp}OK%*7W4eT9X0hh!+m%1dU +zlb?X3^{<=Gh;~F&3om`fbvE5J!$V$8zhfjfAqrdsp#6jorByzeF=;724~)zPE)5FT +zJ9}d+iu9u-w0ua=Tq~CSV0jURW3MV-@fQlhKE^duW)e)%`5eTVe+7QyC?ly;?waTUsZWMK##cGx+GrNgRQicL=N=>$H6|-9jzdy +zkyc_Lo9;d^s+@1_VtfW~NEZ#a9Iz>qbQg9s@KuJOFOV#yQr;3qP5a9qB7U>n +zQAJcElQd{trK8EU%os1?a`at{nQ7-hBn~@=8>DMk&I)L2z1V|iN+`?GKJg`R5&puh +zVgg|lI)4c&fRJ1{A{{DyPxYe}f_aPB1V<+7 +z!PcXC-bfQ+n%0lV8q{v-9MfvZ%AwJ|^VWCgE0PubDCI}WTDOYL+RsmR|7FXE432CJ +z)TE!gXo@4L7Nk@SYuxFMjOu|0EwaYB)KEI!l6GN>R4zRVt@a~_M{#|-o*KP#Y}IA) +zW7E$wJ14ED8qoeQfX{ZVNLeHk;Glff3YB4`Azjiawgl?>XBgNAXpQ}f%~-8%mkv$M +zJ44zYZO)|3=!T2AMv%QRI9#wjKGdM}Tqjh+$)u8#-C`Bj$@~p|e+`ZU>3FI0%O~T2 +zDLOd|PMsTRWUqQMO}KZn!7h`v%yZJ9wf7#f)(S_6+(}EufD8O|jUp2=7Y27@kWDLi +z(@ky()*>JdQ(E5HX}veodgr~+nWnk02`RX!LdFMK=i}v_({xSj1ViMYAVIT4fMdO8 +zN83Sn_+WI;yS!}fW#wxsYbHNPT>ImwWGgkWVIzpB#KP%!L56!@jVSrdHQg4M^!M#*i(_!v8H)Lj&wdS(*54;Bq2_5@`36QXJ!)` +zXx#6bQ+~A)C7)C7mui(QL~U?Dua28Xs~jRamCv!01z*^j?AP^OoymqNo&HeX`MOXL +zBbC6pnU6x=5H+is;6i51Y-OgGxDbw*5VC +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 +z7xzb$8kO#wcY^fUDQDc83)Q<`zhT%=> +zvF;Cxr!AEKG`W~jD8!cquf#iC`ecO(%w8a9_!<^F!hJ0o{a=Qj`?;JemLwkpjkSvv +z4~L=s9ZUS{ua0QVB>6`e(qKYonM(6w*y6v03?Sp3bc%~z6JnyJwYUr+|d#34HB+u48#{sn? +zc!BNQoV!4>;T-XgVOW;wxNs41iQ(Fg?gd6b@J!2rYi*z8Iks*ZK7E~MS~l1kpWs=h +z=h-e?P4O(lbsf_pud{vI@!&-Xo~;M2X9ofGeYS;n-SJ(W>{jRl*S2;23!d*=u0?gZ>)L_tBHR?g^Bm|v_uDWIG1kcx9)9?)PJ$=wk+XS_tcgvLe1~eYz&61w`zF;c@Fs5H((e-30d%fU^@HW=dol+#%un2H%AgqR+Y6Jlufys- +zi>=7!y~ecke$+NlZcWw;%!j(tKG;XCo)@Ik!n$u&zt}9^d|YC> +z3m)POY%5udOPk>dLjBtb1MHqB@QqkVdHtYc6+%1~KP2+39{TO#b#cY|T7IVZ9qj$j +zSNm!2>LW>_`Xf)CVStUj+s-gj1ljz|hN9EW=v>n9i7hIIh+J5;B=20-i+VQmU*H0Hr +zZV9Hem4rg9(RUBbypgFUS|svzzISoJov?pes2c>JQGQ;tik +z%L_qD;mX-Bt9bI1nNpjK7{jB=?$3lgZ+D~wEe~1zL=&<1!*QSk=F{4Yb=L-Uj7D88 +z_R}C*Br&%%g(^4fndqKK7q7a%TfZc~O(qy8aehS^Fp9^vH-O9=mmtr0<3#4jpQrO0 +zrYmCzh;4k2+h0(sYleFgvR4)6jN!WrFsAa7uIEvbXiNwoYOkS&56IekvbOQ7Uiay3 +zQ41T9Xq%P`nz`+3sjYMtOa%)6@=3*F2Q1cJ#A9b-kJJApANSN=jRdN-Db=oR`7j;J +z#PI0fQdU)%Ylx!zp}gC^x3axpD$ju;yAUvH+N9y9Q%9bU+c|WiuLz +z`s_5i`?c9NKOr>qI+~P`SsqEhIlR}UQjyF%sYaW?hTEUDF^gkzN<*3R{Vk+FEU+db +zp6$ZrYC&TycU6>E@wO?ha4;Wj%Q(08P&o*gJaB?y^1kXgz!GoZ3)-=N6*<|vf5r(j6- +z0;ZlLM%7->rQ?UGgT~wi#^zm-Lrbv$t8Bi3g-5kZZR!}87WPDZ4O0Y8>Cn+Md$~0n +z&3NAMexO|Zz;Li>!!ZT>+U{d_tD%R(X^LB{h=#O$3pyZL(dtG%5YqzW*O~WaOAo*E +zN^6q&x2%(cdE4$!)QV1u8V&ta-MZ(dN8A5+u>{N-V1m#hRLCn&Njs{?$d)*EAjO@T +z>(P^vD5eNq;@kSjBhPpk5xQcyq3LU7I_`+)f$@RUIF@g>h!h0-#ht6;_|isN?u;>U +z%!4*Vc~8L4WXZC<;_>4*9Nx#P?t)nQ1K|f=H)w09o5&c?j?)L9jSol^SRErn+<$KkK{WhOG +zEL>B!8*feeY(EyD;r~08BbM)B_q9$MhIP7oI2n|dMf=AI>t0yD-oM|!|N5Sa{EFB8 +zs{NhaQvDYE&;Q!a&;Q(h{w#m{KO6c#f1<$fmBKf#>EU~zqPht@pcm4G-eN=`c&DbQFfd9K3p +z9=4zbCUbgvdS~)4I;&mEr&!}2w2B@Voj$d5Th{ILSV;k4!z=nQs^@{$DA7e8UyVwb +zp+O1^gS8~ys3-b^eg}v~yP;-QlvT7wjoqO4k2Os#o4&*JsGU;JlNDwWq`>Uhj`{RE +z&&cVPoWr6NPyP9f8(QV&NNMJo*uF2p+-i%PE*heJ~TR7e#KGOJk9J +zVW#yEd7~Y7UPz8jGi{^n$x0(?Ji4LyV6mVI{Gk@4oiq#GHlxC@O=BkQgIUbJzs9vw +zbDtI{OTD$y-b-Sg95`lKJ$*0C)+WQ%M?#>g*N1L4J}*4FFY0lPbKzB8-Rh)3V?N@t +z2*bpzNIPjZ%T#sZZXBn+o`Z-KAc=&}t +zFOpzx_3#-zX#wFpxt%=R$|dcGWyXFW#=gi)L3Wm9=5y7gd@?iI@ml8KcHU6MPhOD< +zW7!dZwh)FnW<{E6%U#oTc&2GpKS*z2c@RoI1VkZjKq|H6h0DUcXv)0D7Xl)gx?x;l +zenGk{%Ns(w*M}er0@6HKz7gnStye)FkR#9XJJC1X@WSayjtdL!Jhj5%gPoF|*(}K^-ia7}B?k)nyvnytT_SU386|Mf%v8P?Nv_@4GUy2aCPMXmQ +zQ~S*tCF%GWy_^>4y#*#AU~%awj#aO1IV^!=L=OEGk71~|Zu$ebcv7G*nmC2~082o$ +zzh|N$eY@57R;)LcG1xxc4x)T4y*KvD6p%K`8ho#9Tip%3j`SziFxt7r7>pc;^e5Kn +z1U~DNJRMTfWm%IIKH?^>?W89yjBPlT|ETiP9Z8*aY4MVg2FQ=2!r?qMM)DJx +z>6V_+KXbh#y;W$hRWPUN+|)Fm1QC>A(P?LkdkNXUBKOM0vvj|-N&OMcQun1^ +z+MPv?@=@=`SQpTaD;bDPbv)P2Qdlq$DgH7U;h444^e{;MTEnse-{iB^C);lwoi6BN +z=V6lXFDv708w$7Uk%sqv>_5K0mg)a+W{dmKe#j#pjCnZ(6!BpZkz813mnsM;!|nYx +z#x>9rBVj|7RNJ<)hA<)8i2 +z$4@GJLpqlk{R^w%wimec(=OwAGy7okN7%Rfc>?A0s*r6*rj9+2-$c^B*@&)*{U&z{ +ziIZHo5uNs1dIG%na5;^KryUY33DdN<4dqDTk5$Q<+yA%sufMWn*?l1PJ^zY3RW)MQ +zRYvAHdCq-RqgcFM&3;JTWT~q~j#yol*zw5BI2o@Sk9-`Z3XnMi*oHJ7!>_SD7Dg6L +zX^0tEvd5SnNgjQW;g1}CBME(}0b#?y*#CpqZ>_a=?1;>B@2yr*w!mib_KCe?N92zE +zSbIHxD;(#vnjLm&d{D=}2|GBnNmoN3%_eBXz`ndQhxy2=9ClfDA0$T^j4&(LOVv*g +z@2CyJ-K*IPzrZiT$q?%(E}qObY>XCfh*ei`{l*|bOdTqE%QC-cbTeh$KOnVONz6am +z?$f5Fc|5n<`%UvBjhPXcKD944gLgFuE62~-5waeXRl6=cJ8Dvw0j()(F8QIeAk%7U +zldP<_jHx-_WX(L?(&Dhj(_M0Bn*4(6O|L25CwZ0D)`(dk72xVPqrE+6t4xs=cV;>I +zLPm81gt{)ro2#qC;>p!V7j8XUJU_g+c;|)pP>Hau0<&h{1uu|^K(|1zKa1nyV)|X) +zi4FEtW3!84$=@Im-|;yuY@2py!cL(Zb9~Af9qpJc{RH$)57zpnr+jjF@>VHSf{FZR+ROs%(h{lD}d`IUr5_qQLQH$-)+Kh +z7Sl8|Y0GA2_gtFh>m3mXw$Pb)Ohn+l*YLqLCx*tzxX#rwa_7w5`n64kWcP_YfXBlq +z6$_%X*vG5tW!(JWr$7D?lbeM2&vimGoeo`t7$ZMz5mTKi#*}-7>Af!Iz~5&(W|+1S +z{G26*Z+dVzcwGpSa0w!|e?Srs9AQrhPT}IKza|-|= +zl(Z<0XkT}BnJmMC$h3~tO0wM18W0kzK9cq}d+mgP!L(FGZ00YI| +z6s!~E9n*9emFYlF!aJhfvG^gO7;t%Bb<2t7)N&lk{BFK)?gBRM(+q2WsLJ+Z*qYA1 +zqG78dEYruICWr){zsHtWyDoISnB-(_YQ|j^?y98i;}yDXU&y`7nd$seSo@{?;Fnr= +zFLpnjtld>(uU4*I>bjG*_NvJ2RpqW4_W_N2bF)4h9XFkA3eTgR9YUI1_`o=FDN9n% +zHF)I^AtUZpeLP&%J*G3h&JOptyDr^6xj{~l%Rl%RXvi57k*M^JeZbiJmt6tk1R!EC +z`sd|6@=IX1%&W3s+p^-WDX28|3J){SL7cbiUE%u;U^{945pPq7;|@P?$VimoC{Rgx +zxd8vL +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 +z7S+4Ba^^z^xADcu+FwRtW +z91UK=q}3r=k>FY!Fd$nxDN~D+4ogcGB2!;tNhnE+B!&f&M9Ok58}=j>{~y}-IS%J| +zZ~4cap_5Cp;fOL$#1p~31u!&?(<;@^VN#FGYiYy0*ctp{T6DywX2;7nSnV9hqP#Q- +zUMn>nUz|h?sq-A+S$}{;>)4x}KM5C`TwG8MJR@d1sHHN8D$-{0p23Dkr$Gjbjs;q{ +zgMk&E26KjF@tnlQaF4OMw|E8g&ASIa1iV#kF7@B~_FaUU8Ccj!B+pILAt~uO!!diz +zr$e(>iaT2dpa0G4>C?Y;`q@nKD*tTuzNcWd?8eQ_GZy|J^5F<1d1t^m$l*QI(_K)+ +zJ6*atq^=+ob*L6uuY+EEPLVK>F@eBpvWkP}>69mH(^aBxxS%vBt=JE3Ky?!+E5vW1 +z1xPzGMJ|X2BB;peT{&ZLt;=HgsE$SOfr_09nUm9Lne5>v+YE(v(5yo}@podTInSrkY$IGh0QXuAMm~O1yd!zb&Trq2%#xz09ZRe$A=sX?TR7aF^W2UW+=t9YAWvS!& +z(rxx&)QGvDrAzz;t>J%{cn0Dw+=Bhm-!=mnm4`5K9$*qKeGYM9@39L{8f|FSU)%KU +z*^z#|GMC4S6Jfvxn|#!4?V$}`X!7Wji_^T=ifdNJNcXE$Tex0d{>kwR`Dq{UZv5339~f88 +z*$wTzsHuju>S9}UO~Kne-s1c@BA_gmNv|Fn@rSxO`r*-6ef^Oi((P}}{_;n}RD1+h +zJ*nA-``ORt;5tYq>QDSqDSJYI|ce<2lf<*ts<11!gMVPud2*axWR}H#uUWx +zL(AlVJV62JPiVC?C4-uA$j>T8!qMLJ2P^|gD?wP)IWAh5?cmBm*A4BxOgXhr{wPIdkE*MECnE*t)Xd0e*3*SR-N!PQkkV8 +zVAi>(DvMNYQrs&;&{7XlVPHwXZ{XA-yu>~uE`x1JTw;N#iD1mantBf&R&C^_MD>C^ +zHHmX=I+^>PAB#37=lrzm^^jWy3(00=Vr3D+pmWf`5ZGx7K_Hb@%#SkTN(0O32iZ7y +zE1>qLJ5$_s21YKuA~xvGiMJkiO8?@*1QyQD@|r#YKGj)+&=gkvGol~IJxIAS1#!Ue +z;+6r`82_>uvhOuB!%pb!* +zrXhtI7Xbl!3C9OG3w3z_Ux6d;!M$~5Xv4RdSh!T#{MUUUZ9ENSeoA^)-Wt0%5ZTy9 +zCRg-Jj!QXh(?Z;;vSc5tO3O4&YOc|)SY@HLJD!~rRd#H5GA%89b7{iectb)Oh)&j& +ziJzhlM(i*fT{KU^36yt{x!|DmwRwV5TZJ<|N_jhAeWA}?KTa0~n?21-Rca<_B>18| +z3>R2&EjgO|G)t|ks+FF<-~}M3t1N&f$yUGe=vTS|Hv1rD3q@Z}b|(9kM{ra5U^3od7=VJ&W+s_EE`7^W3E`(RBq)ohJppl+8H9lA3gp{)yj;~yPa?|^V}v+ +zc}KH1sDWpvAG`1tKX+`GSYJyH3WTcvFZ~<+ZKSVFNihHBfB($`OTSX%PuuJ8?OhNy#dVo;zO^8aK89R +z-G#8j5ZOhj&cp2_Ww@g4KirHVQIW{@fe$;+_2xNRs&^IANGi=^*XC!7E2lu({keEW +z@{#%fPo9##J0z|pRs_D?RNNz!1LoSIO@U-=KcLF4udev3tL(*7zQ93yD|g$vjMCV| +zNpt<2&zO)Ma_CTHZCsKIqcc*$KJ4NMb^5h3y2K`z+palku@2-EXD7+DmIB+r|BZP= +z4qUXY^WwSdVc^-F2hN8OuJ~&`m%*e=E7-i5jR-WJymt#^pN76vWT%Zu#QbrBr&7O! +ziIEiVM*57+k+`t~kLlL5&V#j&LBm_OB{B%};}}zM%)5Q@9CNI$0pPIcqj$=HpS$OI +zE_eSwccJUG>UP75Z=dfxH*%RPx5T-yoIyOVtSI)M8+gVM9gmK36MF?^Z}C;>fs`}w+lXM);Eo7uWd6eFSJaA%LX8;-&m+} +zA`~GKxd4aheR|JC3=7h)W!60xGNLg@xOIWP$wjl7aNsF1l@S9y +z-5>Lk_|q=4nR2IRVU!1m*E}u{amVtYRZZBSTf_sG++&VzuPk_s38|wWgqbO}?+zbb +zEQo9$M%);03SPv*DH$cL9&;3?Ep#@jLyC)6uSBJH7DsmPa&@KUg%}T?VHqx0I~hfOtxL~8&>jvO>NV}n9sp{{8w7MD(yzVY+#VjzLvMB6I2c`^ +z6Z9;~@OZ53a6D|TcKR1_3#(}>TlquDS}b2*A*9-!exfFb`m;qylbjDl>Nzqu;aNyo +z^cq@kJ)3`V=U_QFdwPjm7D#|S;}A#7Q?s!uys^)0?~LacRfno2RikQ&f61p;yJW|H +zmh`vOI5=xPAIHQc#0-_OXG$NC99rV@aGYWB{5)w!tBc6}f`mFad_ag^!% +zaGe`$Sr_lKxLPduTyQmcF9r2m^`ek54xReN_Fli?hRz}@{S^uS=>vOODdDb=W@1tp +zDq-Lv0uAFx3h)=o_!QWiy#c%+etUaiNbjok>8?uFr**nQj-ykvTc1cMKi$!Bd1&De +zd1~lP-?c3~8msq5<9%g^7s4D}2R0a&m91{NCRCJ$UHQNSG}x!%B)olnp4-*@2WZ@C%#YRG4qNtQ9A%fi#auM;Gq;nm9+( +z@}9-tR$Rj5dau`3tPgF#O_;8u%(Qgi@h7c2+B#NCCH9uuauhskNK|BvA~aMUHrIu~ +z%JFeJjI`9D)EC?0E_%ygN)UmR`e}u$%YM-hs106AA*|-WQVKu*+eK1V+dim~Z6AXO +z$13Acn~oZFL>AJ6Mgt~?_c_3hQZ2OMHKz*DCMfAb*XD)NKxuj +z2;~G2k=tcdSEhoVb_NF{t_f>|>APTR +zWE1X;g+}s=#82f>7sfMod-nr8FLJ8eT?8u~uNx}xDFe +zqmOl$-Sb=zA~x&pJc5(U&qN=EOMa41d@gbhc6SqY=tOkX4}^X`1h;^nw%77iZw6vu +z{(b<;;G&XeMF;z-7Kq>!w1ZL+G>c8DNn=~$H#Tlm{OY)93 +zJJAtcTD?=M^s=gT%aZ8fuGy{C*POAWdO6m#7aMHIMqjh@q>87{ht2s!uMG(oOltLt +zjqr)dR%rp|0Vp&ud8-mboZW-ktP4{MOIWKTD`C+a^`D^6Jtu@X` +zLtQ=3n +zjr%RuktOhZfi46RR+5WeBzm)0*26nIq>y`^$kxBdD!(+$Q=Za7(LEs64J5uxGTxiy +zxg?`$?1Xr?De*j}g(50g(E+PAwAY7R5`Rl1bOYF07Wv*3ftg!l-g^2XRpA6=y&9>sc@l&muL<1iIZ<#jQbuE0Vk^?a|7 +z;)-U9uE5A6+D65q;Iej1%inYar%Z&CbL9d&yRU2!Imxd9M>Ld$iNKA8<57idB(JVf +zKaakm*9Htk!jnoI&v^z8MG$a9IiP~{#W*-LjYpB9J@0n3JQU77S0MhzU041!d(bn% +z;?46w$m!{*!$RMDY=xWPOJcjaP(ATmr8JWd=JUt1yRK>3y-yP%U-UdZoggqugT-nk +z*vm6)g{~!j+E~0^6R&37hW6iqOWQOwK@Vo4FkvaN4V+Qh6ef$)Vsqy>L}*bw#8lSVOy +zuW#giGh!1yqViHe*vn!Gzba{SBQK`D#-@PNgj~&#s(Ci?aN9Yc>dx$P94@;r&Ti#k +z-CP>#;k|Zi9X1$al?19HsggSCng(QT+;tYfoj|I^JKm0fi- +zarT8W8U0K%S8(5tv`JEj0J3F^8FAYU9|yQmshd78AK9#O3#7j&_jcd)i4&?iS>x^e +z)J#J*1lBng9g~8=B5pH;{E(SA?at?%q?vWP(qDHG-|O<@w$9|^>MpcK9?mu^$Xc_8+eC{CICL|}*L +z#dTU|VCUvhmSXKm9tor@sna!ylgqP)tXZ6cMhWQdF5Ma4(qDgU_Nkodzrd4afiq@2 +zd51L#DLVylcj*@Vk3JMS9Y8X}ZpK(06ox+HWE2BFZj^W9P{Vmz7%Ac#3k4jIFwxhr +zfd`qz^Iz6_`tU*Z;XoqxHu1ODiqp^Q@A>yHf9Nr(e!*EeCVbXG+@gJ`!{t%I42eG= +zs(X#^%e8kU_siCb5hq={tSh36Cr_TZYx`tF +z464bJdzIKj<`tt1u9A_|>F^Gu^4*etL$9hnX +z02Cn6h(_c@M^b*Jacq|-tjuZLV+a?V8DSW|;@$#A}k4aZ=G{Vgz +zY?rVV1X^LX{M;j<0`<|xJD5ngf_1h{ +zF;1)Ql_~*N-QjF@6SF%8I_cPsI}Wd6;cGmvIg8wu`8k_r>Oo$)QqNpno^r4oZP}Wv +zf0-KsT9Msg;=zFEM9}mi9!cFd-Y~gzy@PDgPctI46l@qz_Q!`mr;hYyk-cPa&6epY +z+dWYyR)vdeKyis)2EVgJKh@{^X~-_uikshQ!}) +zxi=UIZ=Gai>*m{J)yDMBQYIrtJ?hiiAc5XX_UAhO7nHh#`%rdV7FAm1_f|4{2N>F4Q?ul@e7GGOaI{= +zcz=oXVbbjSO9QiQAIcx~@mqxvD;(qbH{-I&-*GR*9gp$giBrx)GH* +zyh(f7fZGAA-mVn)1U`*aYt4n2e^EAdZR2uLtW6jy(L|B;p*9MXD>l6yscFO^oMa%K +z54==`8uo}yz}LwL+G`+i$|au=$>Hd1^5R}itSrd@YVB-@`MN&>XiLVkDeHcH(3x7% +zK(Vch7Gain5j8k_o|lC?aC+hA)YVk$UgFCKC&<60oMDI1=xiT2o|&&UuMXZ>Odk-~ +zwTAJ7A~8WQQfqIkKLU>u70bfoWE`J|f}H60q3elWUh)T1&7C5vJ7m1;D{zAEjbVU1 +zJ)gxZ&_S^b_1pqs1&`+*CKfNzqOFl;1Z?~hVl7WD9fW(!*Lmq%y`ZaN2)pu{N}?$q +zf1O8rIpCqk{D&?8LfB^KG1Pu|GOcIHmY%Xq`)d((C8(ol}EgiKA6w@xA#@W%&UEi@YY9RR)!x;PI$p%SRg)n +zIM9qZ$}Vqal8ca`xI~P$ROQl`_JjD^f$FvJkk&uyH9R(>Cp3d|TdHVXjr^pC$v)8xlr?Hmf+R`W49O-J +z6RK_CLqe3q*4<1lH-0*5{6i>@o=nh7gmKR9DysbC<3O`B0dwwpLOd5kVKj26Pzw{2 +zESr5NxSr6lR14k&dWdLkdQGj-5mO)qDE7px+scCiA334lMV?1)CKv+f(sTfBHqBd; +zw1&z1l+GK#e>O*65`4QNHq;cc_2`|#onW094?Lf$DuaO0yo71<$iN=bHR=~V8>_Zx +z3Sf#&T2-Yh)rp#I-A7*!dOhsws4v`pF^K>vz>F__|CDnX;DLQJjk9(eY|1Q+Rf8=x +z+f;lTrgQ;)2AWn8&MT>Arw+t2MO`8+EdSDXSZg)mv`j+yxOHUetlS5J?qLAvF-wyv +z(qQMD`;Uj5m^k)1q;&y>usT;v<7B%j!&t7nXp4V>^57NM>)XZQu8f{74mZu6Y05oK +zxJqxOxrd43#n6XCaz?&kV0;0GB6`|3{VpAvM +zFUd@qHfNPI0(q4lL^PPP$jvFij^4<;>eBmL<&vhff+Gg@Q&38J39&Cpy@Cr0))BN*IH8mu!frvPqeM4^JPJUsflhm2YU61`{(&yT0AE0G4ZP2chgp1I>{*8E3&li*|K=b#wFl`IBc?lQ^pl +zW??E9Z8>F!wBSCic&nrRj^uzzh(uP5swo?8B~(VXwfJ +zaU*W4n&2F2k1VV%P+DwPi6O+GtUNrg~jGi`Mz7CBFK8zgeyC^P6X{ +z4&m)>{q*+OhT$Ti+IutrbzX>xFYMN_ZXHQbCgGiU@Y +zcr%mL6L2NTCHZF?BKMC!eCIEjBwtpy6)gz#;Kj(Gfx4{Vm##%ZKV057gg0P=EVC{gVgkpFU9kj6NeP +zNfwDq&gnS?3(k7bS+%G0ly +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 +zv}bIurb(RB!CMxdqGL*u +zy%E=)X_A+BDYRdp|BY2(Pm=@u0QelTbc?Ds41oYMFN6eq%!*iw>=>8aF$kC|xR%QZ +zJ;1=O*rR)u);7r{>>Ek%UBP#v(uia!RVAI@MZC8wVPz!{X!VcKtY>Z!(?PM*7nO&n +zmZ;ISx2LIOx3DeuzjdHzBrgm0@HyvBRY#ZnWx9@J712S*_*NWZn>IZ)RIiA2nXP;k +z(%Rc1Yp8WXRVS@mW#B{omXu!Gf +zQQB|bwAh$1ZH+xGZk^wCiIvhuHrsv^;80O4jpvNBfNJV3t$Ld_hRU!vtD{aHRd!oB!*^cB){I$@Seeb%OxuoA1dY~(n7*k2m5J|E +zasn$St%qZKRNgH|zv{cvZU-t8Z+KMJeaeKKgk&jHH7^qWfFtKH2n8GkL@7VgwsqF%+pX9aV+2>xnsBrx+rP;Y8?}Uei2e91Srdv920+L^ARHn +z+)#R>kQIM%?dwIZ^>3tGusGT=FOEcD?A14J7tufPT}Se1%FpJ{Ouh4dhSrms3W`cw73GlkkZr#L`z +zUF&=eobMG;i&EK+n$N7*&Q=Ym6xs-j7g{9dRMPA1n<*A8h?egP)IjPEI}!%${%yiu +zE+io;!wI@ +zb!Q9zj?>At#KCIB3e5O$K-KF#9lehG~Uy&xmB26kJdluofahF8)Lw32Qi<`E@;A|N~1tm_8Y&e!x +z!sw@reB^Eej)4;r^0Mfff%Mk7%z4wDDM-YCOrj2%yOIHnis_DiqEohJZ}N^`)LS3= +zZA_=|J?)87x63}1d`#1QRLIU$&TK%?w9W}27)PRR0DCN*TTPh9dIkNc^=-6^YoDyk +z7B;8|GL;HJ`;}44>ncC;-j>o@B^6v~57xCPA@&>7=#tx~Ssc+xV(OF*WHU=*`k543 +zB~!RdZ`)Q`8>-S8KAYtt9?{h)YnI5j6d4k4443 +z_Uh^xKfoF??^r0iB3^gBDl1k~&ZMYnv7gM?3%*#T>xrjy>a|BN+VV-Cev6B_k@+$3 +zg{B{+{kKvbOP1XzU8FUM11cKGFYMV(ymih%OVcoc4$w1?(+8%>%31}&^xlnzmR+|( +zIvaPX{M04QM-(=~5=N2!xlTIzZ{mrF(N*%3WF*VhtQ(xdAG=Px^&pmc +zro`4Ji$`8{X@%3ce|gecL9JvV?)u87)2O)dWXQwfDb|L1nsLPocNHU4L3tG_-z=gH +zt*W(?ByXP3uhJ3dDsKHZKQV2Fm_=8PBX=oh09!z$zdbIWk%ZQ!?$_Oqk7d!!y{G?; +zu7LBuqxfr}$F%|_peMVCP@uL_gp*A#bt6Y4u^-mIWV#7OUI#b<9GB2g{R*k%7$=$g +zjeTk;Ahu-}Z9JP%FQ=8t>yqr%>DF2ypn?g$lYC4Bg|OmQPptw;WT`Fv2M-HVRnt7l +zJDbp93LPQQhDI)+!h*V${>q?1cq-Ojr^K}ZeY1I|c +zrm&nYCXn89eRXXsn$kK{47p(9duc!=%93dkaeTxp(6M;V#SRQiQ=Eg_)IK(}t%BcS +zSF)LD`|D`aU&o1ez3s1)roUd*{dMZSrzrdDhTkJnvK>rfOL93j=!{*dc|%ZvcD3>a +z12%zpgLP->m{>MF$kx`VDD>A_kkgz73dXOb?W(?oxW219Db{DCV3u;*xt;VrndgpY +zXb7kCn@OJ5wPm@azUqycli?ZS-3Lw6h`1nFOu|+KIFO->KcB&VjZtIt|<^@aK|bgaNRDGW1YB~yuPWpW~t*)fPUAkEbnV&a=N8CJrl +zC#IdMx~B{3vee}3?#|Ro60$O*W7@eo=2f{?PYROTa&uJm2@h1c>iyJq>76;!8Am)C +zkp?$9*AuASt@?+nz60YJ4N){<(D|bJZX=4f9&ub&r<#L4ZkSd~VOd)?E=W^bo-egi@7=#y}S#7_Wif|eop^6YNrZ!5KK1D;OE*^_}JFpr2gp$=t1JG_*O+7_!Ua4ooz|sp0!)5w2I`g8Q$s=@Ol*S{oN3TZ;opUdcc^Y~`p;@>wGUj(k3<7a +z4m62OnMl7(LOYR2OfPyZ;2P6omm@v&hWBJMA!?T#HTvG|`6jqoTm>XdZPWYfE3aA{ +zzTw}y-j>_S#jf&AAoY8xDmwAQ>^ +z%j>6C%coaYo~!V{3xH($SE&XBqJ4N2X=*~lpB!3RXGFHe(WbRQ&eE=Hmi7QV`&F3u +z=+oFqmRN1e8ANfd%*fa=fjzm=3w7P0cVzVhN)Azg$$MMkE$DDVJ`i}4hS2;*0i;z8 +zgmQK=XaCa=fq{J=**&KXaFjM*M=LDTN@jQEG?PdkWJ-RU0Ew( +zim>?PbGLEPt>I#$907?{#lX)3x)%C2>OQ?sm>8}?%YBjxAoG+aMPnRrG*ieuYrR}x!#V^uHPF;lTiU#p +zYB(^mel+Hx=vxY;kopMFYEtbkhse{Z(C)5P15p%DUg$z&ik9eydAn~KtBHIMKzAi0 +z33K_TwOWEQhL3cZa9SOf3-vV4+nwvxCMrZ;Ch1tzi%JmDFIwlq&fvI_BR7e2XyqU- +z$*C)L1l??R$v$m18a3vYDyb22M)QptA#+|CY|+j_XK__%NU$6}g;7p> +zX*Uj`h$1$<(?OTI!=MQV^EoM)DrgHQB-5_FU!u2IM<Oa<|@o?pCO*}!7dh^H_`F%$L;3;8IQp92vp|EeFpCN^|-1eQu +zfs@pkCLNKgJ>q2gA5b?ky)KH>t=*QskQgeJiMeKH?{)Cqi@aGPX$+VYeHj_i>M|cx +z`0v^`ZdiIPQ@krv=p?M%JvO(};3Z*V+2M0lgYz@)Ux5G!4!Lcurxc8UrbTE~B>P1z +zgS^$jr>JF!89lMXSWgPbRC{=FHP9C!Q>wHAEiG4J3d??4_$L;Ns%BNQ`BjK<>7+@s +z!p2I@iWIg2=>@a1ufT??Zg^Vsu-lR``H|?{6ts8E2m_Vr+tWu|!TSZF=926leKgKqf +z2H!nEBA!&~VPCpOHh>=q(qMnFzMy*Uy12k8BcArkwF#^%G~xn#Nvug(R#9Qp2uPfX +zQ{2HLc3Tk**X@8v#H8nui3(IE@=k0ys(jbhxbG$ry +zBDvHDs_dFHQSMZ>;?*1k8pde#u{kn9^W)bP%@r +zqhEd0nlMW~V8sSfXaK2aM$rLHBbb>E*bSl8xwb9FTfTM6uV +zeVbVrzTNBc_-7xy%`2sy{0S#99fjC^K$xNxNWUXS3ie+XuXD~`cjMlpk*k|zWBlET +zd(1on?C9Dh7?^Shj;X8$M}qppQZ!jp=ypiTq`i_H)B!b2x6mK9iY_NrbuOHSNRC7- +z5p>d)S+B_qn@G;cu#H4^RgcK5iOd)#4-+U0JD>0%T3A4K{YKXk|r^6*HM-f&(K0N+dZd*j%WRc&YWV6WE4z +zNym_I4$8!?Qj0vMbdLS{Ox;HsP8q=80=!bGYm0R2d+627vG7+W#wikzgeyvPu{T{_ +z#;RB)W~&%S%YJ2!h`4HzoM=w!05oYlp03H}tcD`K027nPf?2PhFmGrNmn +z+|<{Ac?UJd@v@foIjfoJ+~(oyRdkxI%}D{=dY6W221vRDX5U=~rk!^8-aww)j#l|) +zzbj}vIJINf2(Qn5>M7Sjfh(r8czZny{E7JWy|RXn3FZjYet>xh9Z#tt*%pZMwQZOK +zCbBS*fH_576TP>#p$B!umC;xJb22acP5 +zP+!-W-oe2|ZuP$mXoMJJlD3k_m=6uPO#0qmPjD1iVZ!RQB&DHigxJUh?S`!)8crAa +zN?g7T5zF`rHZ4{PT0g2mMv1GTAXk#xiyWb{aK3~pz@+G_&w@&B4nbDqL}hnHTsV-23Xu`eRwTxqRuTSPTc +zAlUy7i}4+*RlDOp?5r5OQ%&9^zwA6PPPG +zs~F>~3QA-lSX6Y^!uhQ7UL?Vd-)6bI7aF~>VdzSdJCZ}t?MZy2k#9Fd;*MpMK_anT$*W+Xi(5MTt2pa( +zKKsUEd(i&|3Rn@uM}!kalk4YK8j~+4%Wb7a~sp!EW(&<{V +z?P|b{b-sOrHfc-|BiLmjmkRfwbx5c|Y*=})QMV;T>>ckPl3JBVU=%YNkF?!bhX$ev +zbqPUqQ+6u5GN5!~QJ=+ihTmaXJE`gcjW0qcNgXShgp$(=eAT5^^diDeTm@10naZFx +zK#i(O_5fYM^EP)ej4OoMuzzrVRKpR8*s`&tR3|PP9FWEpyW3D-;5F-9)y8IafE56Y +zf>COuP0|Y1f#$-Pu1h*Bod*t1&8_>?=vm5KDF$|tRowzoRMEMGZhs_N=QfJC(gt&wO; +z8;nFXKF(mC;9ux7yIjPar4d8kj-jt;o!q^WDd8#KieU^r&G;z-gra1$G +zcgz{{`exsQK-fB!Sa?HL&db({LtWiPU7cMr$#)b@YnYTklzmq!g5IdqW{Tm9}2U*%9 +zeWe(r*2ai%fDoL#e4;k4>{;hM3?lKav{>vsspyt<@X6rB?AdFkurf5aNA)t_hpEuT +zeFDq^UQ1e5KLbRZBJd<_V&#tj&nHpr?zACZ&+3^+Y+8RWcrpTu8GE&k-0pl&){Bm- +z7Up*nraiDjx=E~-@(u}Kw#2F)8%zCZuy!U}*+b*KEM=d}A*h;(|{0 +z#NVb(eoPg%c;?toK*U#wK>aL@KL;0fe}BwP<+v2*QM)$H5C2=M3wWrF +zAbn5he7WnF71)f@MFo9>cx|(&X@cw9MRv2kom8}I%g+5M?mXXJrN#4a{wKrc#gnA_ +z=HFW;#I`+|>~G>Sa%+ZobvSGzjl^Z&eQ9x+!0m`JN!V4>@K5P<2o2I`0C&uIb{0C2xu!d +zo-B9E;GrDFC3#P7t+qqB>DUlwCu^F1rQO|j_AN=XT~Zg06ZSE-0v@YO{EB?2G!`EM +z;Wzm$KpFUv2i7;DdzK@(qeIsky3a8Ga5j`h?@|`8s@{4SubOR2Oy1o#THKh)Hg~C^ +zxM`XPT%PzSwS1#t>v+T4apD{cajVRiG)CY-Va!{KG?m0lVI3x_Q}O_-IPwH8_Vx`# +zK#A2&n{Re~C)bBVb$4}l%`5$O*WR^v6Sy>165@v@F-hl>lK7SUC<@G)G1}t9Qz6kv +zLvSkV0KQ!<&ZUWAtC*EF6p-2vPd_rL?cdQZt8j@&mnjpaXkFQyD!6^0nfoK8W#Soy +z;PpW-T^pu$E>|$jdbagwZB=cy0b*(}4L#u7?c!>(Cyuh+;l5;@;A|u#D9G7Lk?#Vc +zx>leb#?*5ox&y8RKz>V=Q(wk#@i2K0&$W_#NhEwJ&=63TqSQ0Mhj4!_!%p}NW*)=B +z1A;n2xU|J`<*Yv%8px19E->;O(#@ko1AI4M<9WZAvUMP0gB~1N8+OBy2QC1@#kEm! +z>4F$T+o!h_6!-9CG;JeH(;1T79TYa=xt9zBhFQkO=Iq`4;Tpp>KTBP!v~2;ku-+&P +zl!^l+BB-laO8hMq#cb)B4~a#R&^%?Bc2GoYeAk3CoI1xFU&gG1pPYgXDYt0y-lau= +z=aJYuwr)AJme$|whF=GjN!ba&MwIsu0f18t +zY&Q{Yr=fG@0AxF`2=C2<$qHsbAqN2nSf06PEMKpK>&Z5~qyI!xwSM&*-~Zlb(gWd% +zI&=-V%!tt*m;Iieu(A`{=FIfoE&A$B@bp%LuUJnbBxV!*?6d3ZMRoYu=a+9Tp3BY4 +zy4#HkSd(?SiWFZ+<$_I;MvFVOQ?eu0r~%zuR5tA8hycXadfHO8dvu?KRa@Rwi55v> +z?u+PxnOxY6e4`0O2tGe408prT*ID4-pbcr&=LZ@cRd#>N8oB2=ppN5gbUW-NwBF +z`4~7tYO-G +zSNFSrtla(P{wMqG#O!Q3OW-WVO{Fnx>-0V^6;|QSWMx&PirYr~{I)w2C)iEcdi`P} +z5~aGowwg@v^=%~Fd}7uffX2Yx88(!S0cJQ-F7-j9 +zFlCs?8uG1igMG2#>cvP@y_Z!O58OC-^I~=P$vuI5)CZq41|9rU`b<4=YzvdFXw*PW +z6|KWvir_0wGn|#yAaV|kO0vFMCxiGPvdg!egNSCqTlhnev>%w +ztRyKcs42wZC`vl^2=N;q*o@1WC~~VxMeql_674D9Y#gL4F$h~b*sHE6h?iGIBA4iZ +zyVG>@5<=`45m4vU2nsxZt|xyki)u5iV&dNy({NJnmY-ka=w^679FRv}kQP +zH0@QUN@J!x4s4LPcN$gGDtM8|5BTt{<+wu!8e6O)&BhcW$yvIxp*Bdao5b{+UJRt9 +zieplU?g>1l#5vLq!PeTDC`v_Jp*#`MyvT*UlwHQE_(T@7s%^c*FbyIU8}A-X%#r_x +z0n#>U8`cUm(;##ZnJDZsq*Im#CHDH;0CcahT!zFYvYcYHu(P0f#FbQFBHX*i5yefn +zT9ujQ^~7roVYPh>F>MgQXQY`0#~SPYH7tqIc?DKiAZ-4X2svQ&c?AEF3ip8!s-O +z$O$%JZ)x(e4WU=ka26seEgL=B0n;ID%2lXLLG2e@YLO~t?*T__STllyEx +zfqRX54!ECYXLof*;l#wj;%X9QWry@vu~iZw_*5N9sx(5^nLlEk26r^rTrUQT={&!g +zO^W)uM&o67QFP5QTntz?oKMv6N$@2mlLcR)j}|pl8W2}Wj60qkxYOsw2Dup~84Ybz +zdSX2>Q_J+OEc48;81mw|7litIdp}(| +zTuI_8S3WXi91(XVE53KZOY^?4xP7KCj2)&^+~vSwhZe!v(z!)ftcZgH2hppg;;tro +z;=50y@OS@Q5P>HYHOW9n>N*-S-9x +zu(tyVG1MGeoy4#okZ4cdDk7xUr5xu{R=zU{EZ^rcFU}+>V0B{xqsip&k +z&Jop%@x2lNn^`g-N<@Z1tmp)!>Gl*6%y1&$A*uUJ67=vQV+ +zBgbO3k!ZOp0RLr~r;Zq>J)V&S&z4^+-9x#UtS$3VBx@2-0+O`p*Cq_2Y23YR?UKu} +zDgw?Nn%#_XKDwfG8LsG8<6Tv}j3+V4SiR=6I97q5kZmHe1`%?Xp0@xOSZX$~NdvX0 +zV>3&0fVI#U8R$m3wU9bxXw#~yd$=12U&~akzW;;pQqoGgv!X+AXPW*C+ak&VVFVF( +zY-cW06F;bd<531vx@2vq50Fv<_jF+PoXBYyaEcwvdb4_!byhp5E{Be}xG8SA`H>|E +zyH)fa2a!(pOn=tw66S6a&%EzA!>U+G)c(X0R(XIBH5tXFA|ev*>AoB=M%_cR&8M3b +z(G?Q}gk#lN7Mtkt4+Pq94LrCuQEug21?q`)rh}{op6k_WjCzo{Q-L0S2U9xzxC|@;) +z`dA+Dw{{{_OY`?l$%F7Xj@rp_M{wCU>Pxo +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 +z`_)H8eqgRA4q;bDlyH3F`bj3-?66c2{=Ewch +zCYo(q%{eSi=pfhPS=;MBEIL44?nQ*1v{@YVayS~(J@#MkZCog(;lSe`4e1nR_ZcX( +zWN>^>K#~@YP5b#J2X%V*GYx$Fe3XTVZ-JhE_>TNGZOS2C2BD;{KQpS}NggAxmZI!Q +z^D0wPO+N==no+MVKeI{jG=>&)qM8;+JeF?BgPb&+2gE{g={7_)XP-2u4fta{2HqenZ-V +zIsC!mw{Kd;On+=HEi`ev=4JdTOnV=DAN5ens``$p19{+W+RFz00jsz5XFln}0bcW9 +z*KW%C6R7q4hu`8SzYlVjM*7Raj~Qj`V^PTXuX^h@{Isk-L7tK~J@!MM-3wzG8YBTW +z7T_%}Ig#65+QxA*XpcoGCM&+PbC4*w? +zHSRkT_l@GdQ%PT&H12Yh_Lu$3HvMC1{}{>B?y?`W{NOH&et3$$-&J2*^^etkgQow9 +zcJD4b<4vrH_G$dyhwlV~lhNmy)B7i2EtkbwvV!^Tg=|?#B)EQh#hT{* +zx-{AIvxXpT7aT_XHn8vo>VW9y%5#W(P#Bk`K|W_)`WXgw2An{(b%^K(n6 +zOXz^6IsNTVUdHTx$Aom73P3)ylV~{}II2wDRf +z1}PixlCHYbnA6uhd^LMgCpn2}49CD-B*{hu6ikG_JnakmrZ+EC;(GYI&%f`XkpM3~ +z+tS`}DA==YJ$RQ2mW*}aBr)mkBbWzQ#Cv}5NPIqf$@A)weZ8r+u{EVfwYfj`>N3rd +z5&*^`WpyX}+i)VvPiZxHped&x7N7q^`{mQ~$-XwILM +zZ@jsA$`78Id|{Hb +z7Re|?o&iV&v#d0Qq);$ky*N8eYK+tk2 +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 +zFJ75+OrN+82zDkePkO4S&APIZ|MZXk*&qGm +zKlnh{*V8=fA$ZeN3Xj7?w|gHV*M!mmw*5C|NIaC(f{M0{R95wl4KmMz~efrb? +z;7|W2fAUZM^nduL|KXqhPyggUM}vR#r~f`R_^1Es@0|Yl@BQ&V{Nw+{AOFw(_@`1uBx_WYahQ-p?&01x0YxUd*=_y2Bt~ChNZvKs$}9zvzY@UYrYqpj +zXtn4DSuXC(F1S-Y{<{)ZvUo9Rl0(OSj8w_!K8(%94r%njKuhYO4Fxw73Fvh6#<6ZB%;S8FOaPwJ9JbnJP6tueEbDSFxdcpcY!sUGjy5fTh3q#%Bww=PWx2{a +z5QUqE_1Xt0pfoDZx +z8o=tT805!(3in#D{27KIz&j7>f|?MAaX50-tVV`yBPkya#X-YnX2fg=*xSVa5WWGv +zTr#WT&huyPM&nYX&|(Wq5`uLCr<;zQ&6BKgjiCye#JiZ94uJ4{_ubLTRYfAscuw>| +zV?bYBCHEHN&)nZHp`}KM6!IBW8OBD2eMNG;X^yi7-y53A_477K3alSm1@IDXW`_eY +zgE4L8eG+<76s?0i)l5?cewH1H53$XO1P3gPLzP+-v=F!&7-! +zbm;Kj_v*Us)@+A$$neA%Uw+-H$cGghC^bR{W&yT4jfPF&lv<^umv_;&MB4d5T@F3# +zpiaIX8AR2^(7=Im&;-*`H_Di=!m`Yr!!+PXnoYB*?Et|;(LSs=U$u_2D;9;RQw6-* +zkQ{thhJ)YRz^#;t!A60Nk!?HIv;~s2{$4#TQg-|B0BTw8|&}gq$_KLlE=`OCl +z$B9N0bJHZiVg<{IZw8j2+@u06@~!F%n4H`k*h?A({7~=6&uLwggH&L#qk?Ee<7kxE +zmLz_=fCScMFy2sKd7Gf=!W@j5{hEeOv$bSR?VoAs$l^qaikSAcn7rd{j&53xx8E|k6|k7*UH^cUf +z%Z*>rKP&xq*oFt6h8?P|X}qrP)0OwLj2z&`<$%v^+*ck3FQStjDG~u7jr3r)PO#F} +zX`Q*M0~RDxW;t1gi{9O6=$sqV5Bwm*Fz6{@vzPXnqDyXEHgweeOleQ_KxVr*Jxv*nqmo98@JgOslWe9jz3x +zNsWcfRV-i$B^&atxZ6%P%t^dh$Z?9`wL*T5PFPyB)QC@QO?3=`V{P*TfHp2ANQE6y +z%o)yyf-sDjb39rFtE@C_&}_pA4e0e#y+O@IZ1Cp{rmP9_oYhTcLjAHVTN0Pc%WNo` +z%&Z>(uc!g*S)HO#F$JS~~h4{bif8$Nxz6IMVD1oIZmOJS$%MZwO*W)>zj6{@&vk)p?g3%oxTfX3+A +zr6|dgP(s8m@<{J;_8Z!%NC3;WKuyoF!ww)xn@4y^(3>OZ8=MQ1@ycu$MB~PFCVWO~ +z`}#TmI4!2>K=8U#jQBdkpS{JE9q25kc^y+X +z=!|s97P2Gqm79AKF$E}rOL6Tkb2>SI!Uxqxpv#Ys^|J1J$f-YgE#Wtq +z7tW8wzN2)A%v;lm&>lf#C_YB9J4{RNR?@o6;im^<+sNg!y4#AlLNi|DS2 +zHobuF+KZc;&Chu0jVJ`GI!%zQcB~h&tzO1FcV&+eZ|Vxk4Xk8EBwQ%V#>T1f>h9_e +z7ZCvGW%eLN@T}Pvo#T+x`hlrj8{8vx7OQajIaT!AINBiEEw0NnW+jbwB~QdF#dC)p +zLj;!0OVPbK>|KD+=~<04Jt}Rsl_CeuC9~JOt!dO5D(WF>gu_8Bn(TNXD`Lr9igg6U +zVgS&QKeEPo-{3L9m;g`@W34{~eg$_zpkE<*b*^3`3gtIuhJ2JCvq}XBsNNz2j7Ja= +zcZ{NvJtl`v;+Kg`8$e_^6w-=>_GaS{8Xlvj;O5ddGSuU>^H(u%4 +zb3rAjlX#u3&T%F#;w?OK;f!14SWX38WuV1o8RxT=h2E1awp1|ZriTKjQWbWn3WFQpC^~}^3~ngh +z$ipFcDcj=8?NM{$+V`hTur`2V<#*Go0uM|piAN3rZ0wGA?@xa1*G?yZfzh(dVXl?U +z7fX2V{H~e5C*Y$~!7cglK1n3Oe17@Sm+`0W(Q4m*dMqM(MHiBU%&~L!J)@*P-PXOX +z?m}3NN&dZ4zsGr1(~rjEuEcdmG_AMVoDg+;jLlKJQT#rdRiZ#{65~8iP4mgG|8zEb +z<5{Op9&Xly@7fW~A|h!j$YdIzlICW1*Nk2-aQcj!tgp{V*wJEs{#)#-0Qc-8fO}>13qPrHWzV@2 +zeVlq3Nl`=HPy4Wx8YGBuO4QSSD+Khk&kC*Ckx;jL?dZxO+00*k^d76N0Z?4W0pkS9 +zLsdG1x!c12&$Bda=0r|uKJ4<;hPxm$h>S-y5BwvxX$f{<#0|}u}YDF +zNAWB03~NKbuv=l|w=bu#K8v#jTRnr%6Z-|W1YjR>m(qaeT +zqPs?#ab+_D#E{s0F$;UV8%W9@z4xXG=rQ)^jH$vugKiGUB{xO7u1(j_7g6Vh7J7qo +z_64xdH?s!0ukiXWF02S?x6f-%bwqRjGXAkC*ii0X%x%`QxFm)o5wuVY2yL;-#2CEy +zhF|5TI4eu~pn5H22Dn|OEg3@4GdG^VLUoy`j}9j0lyeti+2(W#Cdi1>Sybhd=D4+( +z{j#g+r45GwHdPItG3pn`>-zrD<5^T=dmaHvibo#!8XCJM-YP-~O>R$~*98YF5xWJS +zQOvt8?m7L9%a+MC-y9!Y($1cF>kk-08-2|bAMa{n}g=%qtR<> +zgQPAsAVs{7CfUgjj{SKP2bLa30OomcKyi}(`4W4b!_uM-MCr@!-!GBJi}RONFEy4qoLbg41rjxP9inm0utXx}UVfI=B2VcB7usmQo%`^oTRs2uZz% +zv`Fujx6$#V$h@GB%*+-fd!2u%kh^VqNB=RbHx9K2K9UoXt}Er@%Gk1U#j%=Kp|>!o +zLQ`n+b7j@StwueQy`*#?vmo{!c|;1R1O}NQe9+?=Ne>?pr<@eQ@Zi!1+>ccu&A^^` +zd}V%@fH>DjE-V-wLOyrqQW#I$rBg^BE8}CNo1F*lGTEV4jkinitOYoy12W@t=|1Ti +zIXk@5U_1d8(g36f>|c}4p@a`S?hN5{G9v+TGUq4mWiFjrHU|YXx4WgEr1^ssh9nXA +zL;~}6mX=_j=0xvWSsT<1BuPxNVAPFB&CMt5lUhY&uDFl&mb|?q1~q~P8^`j42OkHe +z*2#9Js6=y^)#^qz?L`_PpE%pqJLWZb2e{4+&k=6lM&VYcxXJ(t1ziT8%k$ft>!lcf~{I6XHi<{u%?*{CH7)T6I@G_oN1+DY5t|Q6cE)HcKh?!tMT-@!>vc~!V +z%}B$k82!mQ7wiBglqMc2?TTu<76xM25^f81q?AXRGDO;#7lL|_(<^8P`4+d|%^dGR +z%Vu89uRpSMAc~Z2;6vw$6mpgC2J8b;xVgB6Q=yre`8qPjCw4SwNPiBFLnVwHA)1XN +znI{K6b=JM8E}KUBHlu}cX>l+Yz;bZb(8?1zEbP|ud9=rI3WyPn_lAC{*UUHLVxW)q;T7)tE<(2S(LM&H&M$?7dr|3^l4wv``=!m+FXe|p>FAfLWKh}+N`tpl +zgXbDEC=GtS9rU{0`=xI1TsL^o5IaRVQOQ +zk9lw|!u(9HqIxa=MI;6p2iG{oSmv`(x^p_7iUuKl16jSFj5!IbrXs0@NL$oY)3LmE +zu_Xiql^rkMXFVOUgH7_5&F0cbkEUTO;l#DX_gsgSmXG`FH-;{t@2z_)(=+eWy|GbO +z?aP5Zx+e1%0wk`;eHvt;q8c1d_#+}(&PZ=H-SHE +zlNemMo33+n`PMpZRZV~Kp1PKt-`j*lJ09pv8d*5e^LyOM*L@~8fQGn)aq7bTE`8v^ +zqlq|W^J`zPd2%k_EQ>_u!Dhp|&;)DD6PwRlAft9!KQP?z*2vMxhnEU$q-C@fN&LcX +z@r-=kH?n&5!Py}hB2L@O_dKoF*)7^3TfxS-c)w+DtPx#0Ym~<3fi+6s>*3p+-zPS4 +z=4os%H&BgA{y>Y3X&Z%jx^UMr+z&jQZY`3+#rst=+smDSJV8uy?C?QlAf?@WU)i8Y +zItySlYc@&JKK$IEh6LvhnJ0U8_^f?NBJ^gqQ$dQeW~BGYN8Z`knzhw?%fW5dkZjgf +z>l;Thq^YE53xt0YuRN?E#sy&EaiVE{h`}C|iG3cHN9~2>9aj;rJFdDPzld1faRnIO +z^SbW5F1*l=Sm0sZs9W)1jed_9{9$?YJ=JLDt5JXI(fjMs_co*7Bf(%;9{nB(2ZJ)x +zhx&9Vf8X@0AtNRdiCKs?Ykscj~g8gkl4MSnxD5ZajU%{ +zY5t;Ndn4%r+MP0HX(91U#5NDLWiqc1tIFv7Q|}9Q1h_E7bWo?j2Z|m#tcdqnXC}^& +zVgYJws+gag^7Kpwcu*HlwTus5Lq&Gu(bmQ7Gtb5hp@F_8Ns1Rz?%Hw-cOlw2Y8yGX +zL;L0;Z0Vu-C~Q{U9U}Hl5nf>EPt%*Q!^Zn{`tHcAOAqz?#Fn3uk+{Xg>=cPny-~CA +zNPTw#IBg^LC}<|@5D*(F%#a_nRX +z$0lcvnRXCsS5T~watnKBR-0|tCTtVsTVS0@SS?#|+T=P7_Be^%oBHGwS*LYU&N$Yi +zcM~Cgc$egYhi^44aSm5jjy|$j=v=K!uVZPRo*?-~?DCs(&%Th*yvY}(>w?qoXsNd~ +z2$(%>aMyvfj@n2yOIvWUp*dv<3G>uf7_RJ45K&4iUJkk05XaeU+S=t`fhCZ5xjI$3 +z_XIqD9y|l|cNq&jnl^wOP#rw6*A9sjOmu5@$hLt~0SjuMBrY-g +zXb=&|(_<|H^x+#}duwHJUVAZkEL{OLuxr928I%XBiz9u7m{Mn$i9wn+fRw`F&jCwL-Jh +zbWsFkOc`B#baO1WK(FhJ=XTL@nhQMMijm_)r;g@(IT3HH_Bmpf1JjsIY8&rH!_Xo* +z0ROG9Q;;Q_s3kut0b}$6c7oFOI~I6oT*aDPNDiBm?-WCuE~fX`8v|z%4y)?w6_LGl +zr+y{n9$F+i)c4Ju)U;dl#hDyVBVVYuB%e##l@F58*Hgou26~TNqCmbg&iM-V){JB& +z0gKtM4^_dR%?WYh!xeI2*sRS7DxP!udr1c@Qg_ZbSL&-yr^vkBbv9p$m*?x<|GPjYeC*KZw$$!!iP&5(UdV`vPe0-e0iimm>Md497iHUnf1ruyI-xo)V>9B#)%<1=+;mNoCPaeF +zTGx<8==1Boo}m8cE|`yn@G}AXYYNn30s5O3h|dJzHwm;~Q-FOyVD;$7V7Gshf~>5~ +zg`OJ3n#5{#=WVPj_l_NM!lO!p{f-Vz+tNxmZ4-!X{S;MQ&~G+jE{kKX&Od3XWN*I> +zG3wi*+^<;w4wv&&W+LDWDM?$Ko-m@6B|w_*8fH7GgLDNhFVO9bQyJi{%0TjlW^bLm +zEVc;;2@^R>h*e&%FN@G`KOo*#hRb)+ocSLOMU>YQ2Dk)X5QrZbytjR8MdvYMepl(* +zP1oS~yX3U(odk~bk14*118_m>9&W@p7uwFdyR&Vrk2Qe@g*7iD|7<8C)*b6dS$>Rm +zhB}w5llF(WaAtipX|#=M45~CM*9&^b{PCRjOFQ+My-X<1>OcX`z7nzt71K97Uji~ewtgkN2m`7DOkQ;%d%SD%<}41W;bc?OspP1 +zHLcULV7(|~Wd8C?h3j`D6uLr>j1Gpw +ztM|sktMvwit*v$Ups(L(-7}ml=oJwhTX#pNa0dE{n9rN5tHa{S6)56>#*CK{EE52Zr1u=+i?CTn +z-N=z^B_-ws*;Q@Is+M2y&|QIup`N|FxOsl_Y{C=h<#)09{#<$kVyURxZ4wY+DYGp2 +z}FELnhF_NMNtTFoWjYL_$C`hCK1vmjxEBgJifTTn&R*E +z&Gi*JEo#qEQW`&&6InVO5;Kx@dzon>V~Bw?=XD?oTUsU@mMlQ2fF`3(cpgq&$20y| +zxR5i?roQDDkLP_C@{)r_maltYZp^FsentNuun$#m-k1mD_T~mN-!d7sRkxE%IKK~p +z0ejfJZ;9A@8Eklr4&0*(_b|ncdG}q|Kol?=IA;ZXng#M7u)PvN36Er2cnX`%k-;-} +zmxd|6UR}}Y6W-iL*Ti=X1AsU#intyi(=Y~(BUG+)Cx28<{-~VXsGQuWoZP6K+^D## +z);(_ARdE`O%4skvCpRi5H!3=Fw~Mc{GiY5SfS(rr*V<0c7S9=w=j%Q7HJ^BQSw;JG +zn{Aq}^D|AgBo_Z`_Uz{R$%GiacoiHh}hLeI>ywop>a83>$L+O9dd6h`#=xh`Bl +zsoQnAO6#VzaX)fAFZXqIsoovi3{h35FZp*&OuX8Gc((DL5gdcxUbhoQn)0&E9k@G4 +zOx7l1QB08yi_X!2k-khD@Kzpm`s>g|DhF(p`Am)?#(T+t#qc#~(Nc)svUNfHZ)JM0 +zJZtQQI$sEctlGKQIf(78vgJrv@^(=w>%IwAI+9OsZ;1Htf|m(qDZrP5*e}%04-2!8=MZ#g@1SF& +z@HoHmg%zME92M;eqUHFc4<20udxH-G#t{BMq0qklXo%GzfOQ`{x_Sirz_%aScWA1S +z=K|m%>*G1j4zqJwAO%ypYy4_DQ<6ieIpT27-2uXLbK_?TJe}^Cu`P##L&Jd;m(W== +zo6H>q%50)Y%)kWk-a;*ETH6e$MD2;;j9reC46lnUT_w%(<#%nAsdQqgfldzkkX}M>RIiaI6NkA0&hn6Im{;*g&J&Fx*b|^&YTqy8YL%zz@{P^1|!e+ouy&@Yv%Jnp;IR +zhmL=wWAo3=U$cl$XK6;?BID)7w4{QCB=|Bkd@ZO-pK{S#oNxU!GH9OnO}g#nAq{pn +zugm%=FJ=}JIVJJHkU_YdDo$Rp31|zmNF)i?l29m=+4K>wvmhs-MR&KD5UCHD5|L_B7xX>ZTZpEGi`5OM{qxs1pI +z`-6dE(dqnh1y1MEo$n+hXeARZX}(Qj1L4$Wh|@1uG@x-0SWmnSQ``sc%L%nK;X@5z +z!JxaR)1~_`%&47(CLAZvSdV2!YOD(23&;sf3lnk%58})CWAA)|z>%9m-1~9N#XFkr +z^z6tYLRVl#Rh>90e!(0^puqlm9RLZC_7YLTzRK$0(zQa>!QRBQQWBNoSCeD1>WW0; +zN6?MgE-q&#{le045{rVMvLs#C3SjMVaN>lVOP#HnKc2u@c$0)-Sx5G@v_;IlX7&h8 +zlk6P)j{JQfs2y&t>)DQ0hon9G!aMb7FMRi9aQ*D*^%>Q%`a9_vpw7UK`#e6NHeQaT +zm46fTN(dGA``Lo!sf#JF-Ho4sy!|+hV=SL${D5Y}cD0`(!J$^VpBd2#H#nf`eM(qX +zZw}fCXyRk{HJ2KV-r*kz`0?k9n+f#{_IBsb35o+&3(6GN?wZHq`*03Te}k9NOLz0d +z_3gx2IcX|~{3~Y|!E{;KRvvja$-5?vX2V0$9o6=@%*(jT64#9v&&BFSo2jdtvhFIu +zsXY&ihmw%^s{k$#aQ~J!EEd$)CP|yEA&zXY7GK6Mi}+*B^S507wunccy9b|wuRrYL +z#u0>Ob5H*_i&p^0NKNUsEFIZOn7$a8;0H{KeeaX!*!HHpy}ga>JKVh&69giq_nV~H +zABOj6SCJ%f7jBDibmM9wA&N7&)Ft<9nD%bt=xRE68PCEbslS+faJ{&_y&)mwaX|mg +zE^Tvt_~sgeaNp#|d)n>A7kxczT<#C|hhg;-G+#%r4tMv(5w{*e1!c-3ZCsB2rwZHn +z3L-{+3^p~t<8%t|?wjL53q;`oKNA^-%dE9n5Ut<&DR3o91dKl50vMXI*>s0a +z9k%HDm7IMlow`2KRW +z-ZsXrq!-t8im+~ZFsfJ;#B=0n1P}{5TInkQ)(wB`#VsA);nBIgfUrWS5j&y<93M29 +zwx-!er6Kl16@N*V^)I~9bEc_m-R<-1NlhYYE%{`M!jTuc#bP5uFa#;*3x7;ZCB(Ryu!mp6%p;Kb=>)5`~3FV +zWWGOaRyl(leH0O|Fk#Hf@LnaZC|aD=Tr<0{Mv}C_UVQ%I#qd<)Oi{%4N84lA7Pi@o +z#WT^|ZJ9`Gx*^;QXlGr6K~Zf@@bbIMpV&LsPbWylnZ&6|gVtD=dR8%~6q1K-p4}qB +zmSDWi;$(2BT7|$34ozqXF6j_x41)U*vgOTx}C=fQPH!@$~6L8I+k- +zZdp#REOHQWP<|k(BHad5(jWec1&*yu8V{bDt4Kem0ZWmE>|wO1(ay+XV33f6Zur5Zffm_cdq>+PV|?cOhSgXg-z +zJ9qt5xB-q`|6@h&%hc|w?V}7|~{^IT!h`OJ_4^kW? +ztm6*J$GLztVy1H^lntNkDUJOy$|1MHbFy@OlvyYXqvX+m)q)>+v=Cw +z>YLbBA-0uO54^aZh~N4^&#BtT7pz@tckpRjm+O*?4PvhD5$e&F|6iyprXnd%1pv#` +B__+W8 literal 0 HcmV?d00001 @@ -52125,15835 +52344,15472 @@ new file mode 100644 +elemHideEmulation.apply(elemHidingEmulatedPatterns); diff --git a/components/resources/adblocking/exceptionrules.txt.gz b/components/resources/adblocking/exceptionrules.txt.gz new file mode 100644 -index 0000000000000000000000000000000000000000..bd320aa3cbc5ed7736ad0c00ac9cac34cd6da341 +index 0000000000000000000000000000000000000000..dcfd516a6bbd13dcdcc7409240d9ca0b322e5270 GIT binary patch -literal 844912 -zcmY(pQ*bU?w5=Q4PG)S)*v^b?+qP}nwr$(CZQJ;Rv(7%ZcGZ0v)xO?a>ks2;fFKGA -zim!aj7zotF-N?k=*}~4&(Z$-tiO$*G8R)vlD(Sf0gZ#6{Z)E*ZSJsZPs?JGa7}v}A -zqm@sy?r+@?AHp1%cwk03DKwj)sj8}R_MUI<*$8ZWh6-=uYU5uo=HgsQe^MwA_q#T~ -zuUa}Sy_>%Gyc^tJ_co6wxjNswDE{3IOM=teGQF?3pSY?U`o5p5H$T%~HTSRQr`x`e -zi)TFB4{mOVGeDm2!|hDhn_aIj;Nd3iZZH4WZfAM(KdQ6!d4$<>r^6rPWDf}lsX%ni -z*0%qCjr!f}*mWuW?z(;ZYE?HHj?}sei=M^ZTSIq -z-2D13onG4XeB6Iu(g>>R`sn!6|MCvU$uI`XGY_k-fVKswP%2%Iv$Q*b!&GC -zvUz2F?N?0K;r-UV0k1oLxxL@-2UT%ccd*^4R;aq)3k2VSH&q=?-_Dq)jvqJVU2SD{ -zeh+11M{~cQ1U~@1&)+wC*RV@J@3%F-$ELjR7dQUjlZUP&`aZxNKj0SgR}P@|`}Dnc -zeWP~Q$M(AP{KWs$bTFf5?e~F5@cUyHR#*9}8q5DH!X9_RkNa~e*Jk=_Hby`6``J{N -zb@Y6)cSG>m_X)5YWcSm^Y~v?ryYqdRnUj6}k=x_w9ZVl{dozVf+OWk3;VWdW{l&<-$xIr#TU};lQ^z>o&KUTRu`7F;&-Bgg -zN;S%+(7K6Tz2%M`aAnriy3oyY`@t&hu!!~D9?PY;JE^-Gl5g>?EipNrIBFRfJzYp$ -zF^{dmd)XZg8&Fo&Y}rGojp++wHEP+~uhy?9DQim7;O}}FvSpR-K3hJtx%t8(xPXt- -z$gX3(Y1W!4W-?me+?{cFT{6Gd@Aa*Pvi-A`cS0jW5bL^3@rDtP^y;7SE>UW8(~JW% -z^hkV-5fP#!3B7g`HB#+mUHN-g!b3aL?!rT=_;E!(cG%{4B{NC -zxDdN$prRlkve{#~P~6D0+>1uor@cY0y3oWm<-aI;{Y>r2s%)=@Tx<3J-o-!C7X};P -z9c2}zkdx3hnRdMYydd*^_ucwjy!_bEKNQ04ethDP32R@g{iC^6a%Qg{nNN1qY^PTS7Gxe4~F!JJaYw>lo^>#tU*8Avl<(aif -z(5t!kNwm|!u7vKFEcej#w$<@V{^N;tbbH&w_%Nn_`0qvx^Ev3v=o48|=c=COD6V2n -zYUx1f>){>COB3+^dewbOP_=qEoY_08vogDXwE2Fc^mb45lRoDAc(*$?qzUgJ6$fDQ -zooQe`Y7`$6G;@_!;*kX?_~9jZ&Q>wD}HuBo76K#1P<| -z;$P{*e!;t(_+iAO7{dYIyIdI>eAIPDp`nedM($G{h*dBSb~q9saHWW-a60 -z2li)O^W~>W&s>$EAY{l^%-)=&76^=VU6nO>CcjO}`aEKk9f0eX^BuN$<0_eK9)g3S -z3b42W>*y~dTqEUvL{56MnSatB?ZqKBGlX^W%>?jzA#r#e>U -zX4jWM8#U>o)-yVt1x@&zxHf}Z8}&dX3D8WdRR+_^;5}9M$i0LjuC43H=DpYaC+2#u -z&vvh|vi-OMb1MJ?e#%n)`}k`Hcu1rH<1Da$A}=-bA8bZ=5b;`Vq^R|U3x8gTEO1TlJ& -zZ2&f-xY_+*{|b(ZquEV1us5`Ao_&wfl0VzfJzB1B*sjV*UV2R@K9B#ylWVfD(7 -z_!@X9Va`m2gyUHd1ZgYn?cn -zhf)x7j#_zea_D9f`v{v{;wsdBaG)h1B%sEkEbjVHtrAruyVm_gNkk5%?Ese=9&v@y -zIG}<~G5NT0*&pGMNl_vV*6=M -zTW!otAi9_ts2kK$JO)QIv>}w!fe<5^$6%8v2LyY^LsAdie(3&j$Z2Gs1L{t5FR?)$Tny}mbX#C3vC?zO(P$0j -z22nk#<8;(Yz9B!VWFVzmEk>UJ^!zYq5p_Es8CTedBEoj+QZ&}uhC^RGD%|=yQXq9+ -zmtjS3tjI`+sxzFIksBCUO@EDzB1tqKhW$a3Y@ve_k#VLnqH4|(vWxr&2Ypg+Bjmf) -zHerYDJqI7uEG?$Bpui$Bpm}n7b3k3pgIPT`1(a%sd~*xU2ReNt~RQYO~%{ -z+5dp;?@wEfu4^NbuiYkg3n{OG<{o8_fjoPzqiao~MgXm^rjl^Nrn!zegRza!!9JTk -z^K6LWHi+#!#kS8Tutu`@J@?B@Ind*U6Tg3x%#yxRC`w3Dz4$ZReJ42*B42Sp;eiXx -ziqI0gv*H!YW&Dmt19<|8Ofd^sf|8bL$?_OXa+Jt$2F3z^Y>t9%Sq}`abKu((r#V2N -z9=sS`AH7q~fBVCS5CXAyHvAEiDJWOX{Y%3BZ+Uk5h8QydNGBfZ3zSCQz~nLkWa(BZ -z(2_yxUCs)FV><(sFrthqDIf{ELV4ZRg~PY8ivx1_Z@kdTcT)2xHZD0HC9(PVM;z_h;Jo!Hc)i#GEeRQh*aT~WKTe`pNH6o$4Hce^<)fR2)AX)5&VgqzJ -zrF4{xAe+OLK|Vla{dw`PewpBTZD=R4@oXY6{%{+)uKQs^Cy+b71={P$94C`7Vq-eI -z5c_b^Oo-{8QmKN#3gnJJMD#v+3{T?JF04g64|Llw<8JRS0#0rgR*Q{ -z>oO6&Er`7=He7bbX<(mB+#<=wk^{&vqZ~?TAOfeQtcx7&7QWKgWERK_aZJsr;&=LO -zrU%6$_Zozt1ia8XpA1vX?T#oA42*u0xB3XB$l5>U*Ec)?Np{hW^$|#srGlq}CzTPb -zXfZSHjIm-VbAtEq>E#OM6r~yV)98JI;_021sV{g{#*U43i~8{j0^R -zQTaXgf+m)Dw*<9GO(zQxQ-2*Gw1AQKISp!(IYG|s;q3OhPngK?Ru;%g6T+jsD-Lt@ -zsbS_OXPY5-csI&@j(KIdNX-*2`o*u6|KO;d*N@VYmKXR_M$1@eewz~$5+jK#Q2(6) -zIv3Lcs&9X^h=?K0qMA#bi%H4>EypcK$!9_3{5ooQUPs6G-=6{M$A&i-S>)sO$KjWc -z_rOY_38ED3aPZF#&{3NV5;_^el^!)AJV*`+xOzyC2s)M;HMW>T;h;lm(DHifK!nsR3|k9B4yCwIS(QGsyc^DbOgu?z*h!SoA_+U&h_F3 -zKut`!kDG^~tGEElQA(pg&~BxJm`S`wvcL7(KM00Q2cvUZ)WUr0`GI^7{uPN#q|~t5 -zh`aR^T{VA1tf#3cub>`{w}1lJ9Y~RE>S1LgJc4{e;dnB@f{}?5h}20^u=6Qsg-T6{ -zJ%F-Md8sNu@bC%U@G1As>3ED&=z3wSQDv-`7K1+RAS?=P~3VDo_qoRXsD$YR>BCD*n86IXL -zH|p!-yyckX_Rl8b@qn1)WLqY=d%(N3I!0g0cN -z77t&)kOXi>z)8{Lx -z5qeuNw+PpDW45zjA1-JnOAhYoBa7WxGNrI2JX6$C>sC@=kGBDRDOfaCxEg=R97(Pm -zIb1Y?Wc;&MH3yed(AAa63}<9Cv_fSZ>?=?Kn_3yBUW;_Pf8fdcvsP&nHr_1SKig0Ny?=M9t)a -zcqvu6vSxLajQiFpP3l-^X{7kKIF4gja(Wu>1^?bl3h-Hkx>Qx -zJ4Y#oz+cn|DLd3!7&G+9B9NNSRXc&~2)nXK<>U7;gJ`cc`GMgeM}qxm)%tbq*16Qf -zFM$ask1}S&_b!Nny&@`I*fGibQb)^0EVoob_ue-toga|dC@JC2oeC(oy(_GQ@_WDO=gmx*VJJ8m*$0AowlF{PA777X5trV6c -zT&S;|j{fn9i?)l$owKWo6^QOaLC)s>a-n2XLLohnT$8xK?!=QyUsjhd!cMRqRfIvcW>#!O7TOI) -z3YhtWdn;X!hOI86%Shz=07`)wE$%}u&}x^zMnZfJuvGFwZc!m`WR3R)i(VtFo#Um- -zl5W=``-*0MS3MSTAI-(rm3eh9-aMjT?NWK^`MS`8lQfMfAtM1QE$6y}?=G2>(OZ(Y8yi8KG!JQ?nT -zx~DH#p60d%`*2m>%#2B%FX!Olo-bmB1H=W}2=zJ0DH$)IN{ArPdHKMbhlBh*ifmYR -zGW?r#@PE3VZ>OLeFHP2~3)vX&J_@-gReKgtWs>0b22=IbHW#_%o4aU!E+Z_n5&;k$ -zMQ0z%N66pwqq@mYl4qXdl{BLgXeXx9NCMwIN>5A`>-&L{uN7(h_Z}{dMexggFI~q* -z;-~46s{)6sMk;J2oJ;Zdr#1Mn3U&XAm1kUyYliJZxxGMHN-KT&BX6XhyCnBq%YdEi -zmMRf_`^n>AF*C7+_C45*JK`&8#7zJpB}D&Pddeo~5-v>+2a8$&sH}VR+v3cDDIG!o -z;3gNWcQ67`ux@-I;Ju$(2YnX -z36aGs)q=f)i_N*@x`FDsF5gTXA71{*#Puc5SUj&l^c1iyA5!4b3bI9w!QkAZ})zgheJNWS==|_so*_#Qj7^1)E3j -z9^8r&(I>naA8k>uR&Vr2)?NT~;nu?%doZKM??8DL)7_FCA~lhLF`M;po)lEsf@)Ee4qf6#hk -z^RdD-GY@CGJu)Bk$kQVEHfX90QWvWoZ&~K)$ebsc#74T|3wtZ(PON2luqSF1ZM3Wb -zMp(fynPpEGsjg@oW5RG*aJm-7m!y~`7DbR&>KNlBUHpa@x+?)*vPbwRE=R5Ga!~@dX?;gUrZU1MThS>dIbn^dD -z*4z7x*Viep@6&(5alf@*aaoSr&GED+{(GPtAG0&Imz#HbvJJJd$LKFI8y^y(nXbem -z`=N*TuBbTHHRVEmzo4D#a7#NzYfNtd^AVR1gkiU8*xWfK9CXA9mZm5eb(g)WUItbs -z>W#(bT32Oxg>butlNT{FCw?B=*4mFD%eR}YU!K>!UfJ3QOHpkP_5`ec?c -zWcHKc?2dnnX3UICS>jUi5_|5O?%vxt73lqL?#?Yf(UZP)xFrb515zA)?4XZ$`6Uoi9KPvrXYR}af9qUv&E1Q}iQu7hR%N~%SLxt~A$6iUScy^(`) -zhXBIt3F?}2+xE(eN`jPNh&sSNYZ68HUw|j<%(B)&A4ZmFh^N_|M}Q{p((1N>IM^lw -zx0k~5KL3Jej@q#AudA65J%>(>X|a#?fY}LMsQc6MJ}{N^lE0-Td&yknF@iWSlBGgc -zu_7+Cefz5ILgFG;W(;1wNbSY(S?1ZpKtD_+ExsJdsVM8*@0}!daP#X3mA+DtIqsDK -zB-={N)vDZl5vcMtT^@M+vtcu;>4^taKTcM7A!y|EiQ4u#A1sld`Dd$I^=Kax{kVk2?gHNGUdC2{{S0_I9Rd+S -zvV?4RKfD;ugQx8sW-lby0$pH?5|>k*mKbIOk9NjRGN-)As`I(T(;G2X|M(aEigyDH-4h3p2PCzt8=fc6JY}D2>21$Z%y4%`w+}`(queP15)NXI#+aDOaeH8n5 -z-kvh)Ut=BRzCFRlJ!pvQv>B+fCn!|V4RGLJ3Jj1ftTBHs%F{fz=xFQ -z*8L4FPrCp1)8!y8YbPAuE+$lTlmrFO*x|a2Y`w7S&-sq+)nNdi7}q|Ggrmi)5X;WC -z0$PmW+71rR9i9B+4y-r;p`K@HODEQ_RGj~#D6idgc>8BzWzP=)NPzhQV)z#H^!v@z -zt$Dt7n}b($W5?3_K+&B`yZ6-fJNW={pTq3;@`ZMvv)bp?1HID-c=LwtK7;E% -zOG|e8zZGQnxw-!seD@hfy4(>je*6-B|vik(%UdLK?CbiG& -z2jMGPx?5NZP{D$E;wb>lo#HqQ^2f! -ze{p)=pY3Rr;G8tPzfZ>E>~_1qFL$!)c6&X3e|Fyd>@Ajin{D?9-ysIrp?=cB_6g2B -z+FTc}L)2V<2pGG0*>h!tUNRnn>So++EIw9(a_3rE$__o<`Y7c3n`XaIw`NxA*WARU -zO0eG+Alf_JN4_W3Sr8Y#OfCb@j|T122@2sqIt(5?H!;nRe+F=+yYt>3H2!qkVec9QeMF)_%hhqtxX}1gc+Za>s{6MssOF=~b>?E2;ewK~7RJfuxWCdI-KctgRF -zaf>Ive!G^*ZL2xI+*BzEn$_}qdhOu|t|1P*MRko(&+apU9We16c)SmqxDUD94~ZBL -zKlMjM$uT@Wxcp)rPAqNg`8}-u`jfX-}ja7ul(*9|*_29onBsgam -zJ#@*?{Q!qR1Wj-S9lh0~hXE;#GZYAET2 -zB`T(wW5F*qC?^%%Z+7_ke8nOx#dbYLKIn}*yz}kL>irGEw4YZ{gt{b_msM{Q1fknp -zkuB@#IQRA0TRHl^52_&J`1)yaXS@AUU_XQ@_?7B;fXe0i>TuWn+3J2do4E%)ncth7 -z^81_PJq%{`+kYKDcHfPbi$8~m5IZJQn%Z1ByEmp6QtUpRYu5VgGh5VvQPxE}wP@tc -zk|l586;`W?$aZKxG+$$>Cl2xiXnVtTV6FNqfFPc7-|6E;@O^VT#L0`R<6N28Kgg7q@c*w?`19{4GjC~52Cz*pddi=5~GiE$@ -z2VeS#TWAPfe!bDOz6TMp^|c9)R~T(N^n^rfL!J=M5~=l1=>0#`5Cj{aPeW$>Thrs; -zQhnzx$c(1I;`C5CzPXW6PM;fsGT2qj)uJi$png1O9;S6bMa(jEk^{y{4R-;aqlt=FWX>mQvAGG8c3ie4 -z&=6HDrNwL`;h`CHN{OKNDSM1Zw -z4yMJ7$FJE3{3e8v66JYsNn&)9$d3){jHCr&_8il>Q`^M;5HR+0dD9+>d3reAJ_axX -zu1in4d47Lx -zSh!|VMR6_xxpT`5x5!=Cd^Q%6m$nHq|0=BIFRUgw;cO;{S>6jFr0+}wN=zc8BNa0mQ!AZ-RpCs8lYSuug%!njh;ANmzc*( -zH6v(#AKZm2wVPpU&x>p$8VZNJka3`jd2p90(=zSZR=MNNHqXu`vaX``@2@w#_;^hA7+Pd|h7 -zco+bQTcfJPqNa$x+i~weR=_*u)uGifYfLlLaO#oHL`5qddR*{qZ^c4u-cF4X2pgyH -z0O)zVztun1I}=%``F{WKq6A^{KaFRKrQoU=D-?Bn=^oFI*O&_*lQ%Nt9e}0d47WsO -zuTDXT;~Jn;2}>oKJ^Ty!B%4uJPIo3>_A+r#mli!|ZNYxg4PtSa0!+nu8LUSM996lA -z=Q0@zF-hdTkYL#lAu0^DfrS`MUzOKgy}||Z_Brjw~>&S=P@X}fG -zW1d}p>5v8kSRuUwY(Dp}OD$X9`V5h38C4sn7+v>P`jYF}Z7=P!DGBlD1r9a9>!WzM -z`AZx7D*00R2IV1XEp!x#y+rrmuiSoGuX1%v?zJVLh>fHyE!TF+B*o%Isn8q-?)0j3 -zobj{(Te-V+2~%HgR8Aj#vV4bE)m2irQ+xV=#|X_vD*h=p0Dao{>stD`W`#31MBhsD -zavyXu0R}@INIFq&2#|$wK}}naM=QHRPyF=Q1Xo%rHp>=%y+{YsQ1!O~%qdn6wQw!RBpXG$#dJ2DcFS5U%$oMb2;KuLQQzMPt -z*s-g$?+W9`o7AhHanCQFJsAD?mcv!#+FOEJK4EZe;H&2hP$KZBWm*w;6t;bKwwW%j -zQEb*4BE5Z%g41VjO>QqA-06eR)t-)(0zFt;6=_|^D5g|r17AjabXlXedPRyWOYfzQ -z-7dUd54Uulta6Xe#k7}LiB*BG2K~7o-QJu_)TZQ$1a7*tucSs!ySUzJDP7-BqxV4O -zW1r65{#rF={IRBZ5+VoRDc|=G(WSyFbmWi9=^&b55;UV<2UL8fgPD!2k*;F)3}eP< -zouw|VM6n1crG=VGh$Ucv0|FJuC#IFD@{h9+M+yp_LY?+crR};qwf=?>r@_m{!nHDWq+6Tnk+0JsR`n$en*YWe<=F5@tF5=0hO&S?{?U;g= -zGHwuk>RHJXGd=&Dc6gDThJXFBIdfgb9-S)51iEbg1S{|Dz{wH;vR|)Xz?R-lMhiLe -zfn>+|35n2_O(IEfa*K8jt3_4A^%z8di_S*}BsYfeRAWwNM?xo!;3Y^|L -zR?(_h%GTa*K(+WIu-67?zONt83r~_0f3L+>y}|Cc2&7z=6>nxuU**ntIFc!CQgi+8 -zQMBYw<5ZYZIerv_jM^GLm*^d?X9?w~LZ2NOx~)a6UFnz^x;3j|+ph1^3cFg`(Ej1` -zxF>k3B|%q}7Q!-T)Aia)5+NSwt(infm740)epZe}R_yZCqao*PIt2}NqcNt`hQX>+ -zTC{c=JHP{%bjPv!9Me>FtQ&tG`6e@U4&bX(m8LR+W!uySdRW0zc%f -z2yuR6jwidLKGT7ODOI(!EV_aR^?E|7PocRsvYZf0#F3V!btMSewP+JV7jWaXsy7*S -zco~3mHzwg>FymGVd}UY*XmhgZs)!i{<ewmKd*JIwf1T} -z#`M{ba^>P9ht7E;j8yI+OJqI{qw)=zj+W2wnMU0 -z+}$cO@Ho5gKcptTR8_;FM>H0WJ%zVY{<~rN-EUoB&R~;Y1CQTnhf~X|A0r|VqiVDF -zC^5)@ydB+QUpogw>No6A%M*Vy3msyNXm;lZ)x02aZ7B@;<8zmYk=$~Z+H6|LJd -z{s+fYgJjxDgNU4v!Wh-Bfn#FjZ0XqIx{Is-sv$WnLj6-lj-mcLRySpq0TDu -zJj#ehujbQcBXw(N$BG(ukHD?EvRHVe8IG*4pb{o3bz5z-mIn!v^a>8jjX{dHvNR2+1Q#G_ -zf^E&q54@|y+8mzL#9Qh7Z#nkjWL=4nJIjVcpvnX993aXjwB9!ytvFzwI%niEm?*7N -z$wRk7r*Y4t5;9cf)mc)h#GD?S$(nx1T1!3Kj6f&i&`&0Jxu|xyI^lM?Xa+Ef(?Ilq6M$?15z3G+MSi!s#fhU+dLEG!4I{e+Wv{+=fGujx5-vYI9?p(3k -zi`M;!ZL=e{8{!sF&R*_{qfq^0$TOoTfB&6EP_piAF?ZMJYyT=}CE&9jmh+}m+4HfG -zTDmzFm>=mMRR;3Bs&Yw5z&#atyV(NfTyzqdKoy#pQ1EP$MT|V3UIx-GQrV8uRpOZS -z03(v8qE)DaGs52gS6@}<1SrO$y>bvK#0QLS^FC@lXhTw7&;mr~BLEm?MlY#2+B*u3 -z+F1bYWhG@24$i3SGUf5*s<&s#Rq=T`AHS@)A{7O5rEIs%TD$?s5s`=_CM$B+ZPk35 -zL#Ykwi7+*##4dZAjoh4RCRaaXMS`>;0p_4Wk)x{Lg2)>53;wb4dIz$9Od{t+3nM%H -zL{mnqNitn7H!3u=D3D0phgvem34=Z8XH3&j84$2DT;GRRA|eTltGIcQj>Lv&F(9nk -z>hDdK3*;zHNV7gBQBxAC(qi3%mD;b$mmrs*xpY{8>vhDQ$~@e!!q^p?NLepenL4oo -z41KwX<|#CqjUL;Tj1`{y@;ndRFwz72d#9traH(*LwWUoSA*H>;tX!oowFFyYpwYTO -zTE*cCf>q-Rv+hYUE|yhUFqWDMe?8U#ESfdsdz(eo%e&g2k`vwc2AyV_bXQNkWCPKN -z_&G78e}4X%uBo`{;o+^HSgWba41~N&$n7hxKbp&UtR;BcP}YE=kxdIQe8vRAlSU&k -zQ3U4IMIRZ&Lb*ukEwXsC;**fvj**>=y9fe`<|~b}Tv;CK#iQ{ACAByIW1yGi3=r1s -z1jShdQ`!W@maRVO&}9S|sNY7feTf~Pm5@>X0Qd$ -z=;PbiE$%p(5L|z81S3}E0tu^a{ks~Iou(-e`0qdcq4a<>nIYdA!t#FnpCIH_i7mlc -zoov1d9(((NZB(c1J)V!midtE8{{bhV=i!5Y6x=Cb>m^!?KIn-;K)BJyL+ReX93^S~ -zn68Pir}`jL!ebT5)qlk8)y3!&B*hufgB)pDA?;Y{!iliR%i<_S-0NLlE8`dQ1O!o9 -zjZuEVIpdi^P$YkgX~Lu**gV^V57- -z4rPxN>!HHi*#Hx>TtTR;_6^!p;S1^SwU%Nan1($g%bc(8&zUD$n6KApPgZadVZqV= -zJ=C(H(L!pLiW5C=X0%kK(E_WhcNSlh4pZzlff^z=*V!cQwXDG&7uwd!1k5F7K2>CL -zbx=(A%p#z7B%zN^{N8y#yPB0%Bj$TM7VRHMPGxqj1nFl3-)>a+>lpW`SAB0t3E&yA -z3WV$Q>go{s_FtN`hMbV){2fA;W=V;fQEslD-Mm^Rov$yjicXL=15bJ+>)Ba5Kwkw_R_mPKNmz4^DeOC{`-{sTi`)sUxRqlnls5N-&_;3Mjv^S$puac~x}h9C_M|5vm$ -zF1vBE9eGRcsy(^_8zhRtlb}l4O+fAF+>UXNv^6&LC{q`SC!m(pi^)0j=O%gauJbQ-w5iqBwCP3QEEqvk$i# -zxw){UbQ2M}&H!l3GPTHvj)4&e -zZ~@BERozgF9dXZ2pYNpiUJ2(6{~s_<<$JIQ)%qfRy6x|hymsy&!4 -z8!#iP)BGA4JdcEeH_@bY#l*5WPSn9dF;T1|&Eio6c^Tm@5GG*rq@wVgv-Oo4!g1Jz -zt%uuxeU!Z@nF)&`alqtA9ZB(k-vzFEj&v!uOA}OD`MTo>L7O3FS8$1p%l;*E({czG -zTCyMAg?hCViB^X@$PV}CuZsq-nvxA+%0=jbv;`|ky2Mgi{=2-EL54NN)EE>`vo|A5 -znLHLlBa#!=6^c;a7YAX_uy>2m>RK0)u!; -zZVmFmW4HTW#Vy3=RXs?TkTq!|cQ-PW3r)NVRoVwrDafwJBa@5rQ5mE*DeiED6VKP8 -zQ~N6#WvDV(mMZGAxW3=?e6??l!X)4Jx_$mU{JY%iEDq4<#8UKKc(NFMP*52d0XMvV -zqYepxQ?sQR=TU8y+SA+%{EePO4`^HcaLmP@TdX^1bk*Y!U+ -z-3Gt*m|r5qTr~`Ec7HHaw?(=O|MV<-{%K`KFNQLpPY+)W{x|Ds=Z3ekHpp~G39`Sa -zE0?zz(XsRc>_{sIrDamg{_v9AndY}}v6LSdxDM?S0n8w)3@$Y1t -zvP^Ecdhtf)#8AHjS#7i0ZAizm6O$74YWWYzsfN6_P1pqc_jEF@h35d>qc|yaJpWEn -z;?+9pBr1Bttl9;eKmjF^8|MnC26mycJyB&ZFtpDb6}-3lESDCF{#a={AG5+{DhvBA -zTtI-eyyT7ow|K*`adQiLZ}F}?+<;?yYowBkuuCFW{;cQ5W&k8d29A+z2c&kf1wq*| -z+6o17m}|D-wUlll=QIVFGJxxyH9?rG9bl^6i0w2d3LUbMK&MWo;IK7KqYT<$N -zK}dr0QmrRPWARezoF_Hx^@{D%JoRU`RK68) -zJSvAP*%Qf=+0&GgEjNHJb$sq>U2Ci-widX|WR`7BHMnl%M}oJe>@RODMBmWo57~Z4!sfdH=pa3Eg|T -zJaUH3EzClcRe4HkCS+^YRzC|rPo4T8cHUtUQGC@=34#Yv35Gk=krt58GQPB=-Pa>Y;Ucfu2Xz)SvM3;HEdOe+B6?+Sn>uH4Li>#Dp_+vfrha(D%P>3*^z@Y#%7h456k9M;q`1aQi4J0`1<+S7!7~(3L;_jP -zTWB;VL-Bwg#7#wMPJF>On4H4C(lF1IiFNc5yMNaBIZ5OZT6d8SyGtMzdPJJUeZ>x3 -zY(rx2FxieNXb0NjRWbYnxxVrtj7y>0p_O@(ix57etD%pnH-5^cKD6RpzZNjv&QS-| -zAMUj&Th`Uqg{#Z`$!%7d+{h=Eb{CcwyQ1R7_CyQ?hPe3r4A@y#@=M?I*K~BK>sa!L -zm8p651z3H_H~(L88k -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 -z^ds0v6#FY_c(*T -zr<27*U~9H1wPdz;P+DW)W1xMg0#uZBugI2;2JAGX5ha94HZ{avNb%XlH)FQPch{>IOB-Uumj@j6Ki6& -z89LjA{x?>;Yl!LaX^QH*sOkvnSsoJflZBi!2c_%(>Wdf2$oPjotY+(AjB1Fs3!P*N -z+?mpSz;=ixRQ*9@7Nf695Y?J_S%K4_Z`DvN4ez8#7=v^)9jdPh1gK7>8<)fDy%Y9J -zcKtACZ)@lRCVb?++!0axtb-oDjUHg50u-_evFkpZ(`+vN5jFDncMI4dtg~mQz9PSC -zu(QC6_!9GYJEQ~8uT`|C%7vC5!>*V#e8x8ay;&~eHG+87ktB0vohqKS=UsRxjuEzV -zyT%^~=h;qJ)EJIZZvW%!5*^_lQK^26cH}a>Optmnk^csiBahp}MQ~af9gOkc9p2=Yt%I{r3-67qT5+Pi4PTxntPY*semU2H3XoX$+= -z2*==2XMb(%n&qBv+5PCofNdV?Ris{BX2|@qJdIWah+BuU(!i@|Q7m0dN?SjIP4Dy> -z^Nj28BDuey+LYNXvd*SZJ7wS4&Ams8;l3Vr>v}2h04K4Z0fFruO)>l#3OXvhzG>b% -zP#W2XVaOZfxTze%WO|LAgtQRfz?KS_wKcQ|F+JI04$J{$`hKGzR6c3$koUYm#!r)! -zo70Ok$c#Wa4o^5&yN7)#zBu=8kG|UOOS?rnGk~^Q3mQ#jwh0K%%fD{uOQs1-p$8l9 -zAStYi-X+Cgq-(z19jZf+*;fm0xMH99Psee6>d5s3%Rno?YcnA55Q^P2HgzhB~VR8e*FoIV2Ik_d~Lpy$Gxn|b* -zC~C9jJu8-jc)oNUE}SV;LnZ)JC{BA+jp-A+khOM7UNPc%fe*69Ti*T3y%eptgkO*i -zNtu#g#Do%0L)A=!tVa6EIyRa66cMRuL2f~k&z?zSX6Ni9grj{gTQ>-5ek9$WM(4MK -zb%8Y+x6G8JGO!cZ`ju;G$3C7d^$by46o&Zdx_SJV=X8xRf%2~4n0*BC-0D67sZChiTSqUez3ft881M@hqoFz -zMODsaQRN_d_KVFf_;LDhy@`Kav=YmoCM3x+i=e!qwQw -zm`&&(8wI%u3*zCdblCg>Feawtbg7jVi_vgeYeeT1N-A1y{6>1)M~a^%r~fn8V!cNQTA-FnK&e -z;)%)u76C@E>b>kz8&q}bc&ZRrN{ZUK;X%nzFSTI=GoI!r23tHa -zi*qcn_OaFmiNWaKS}R9({o*ExDd_W2Rd=!{r!QlVi#q0^#(pH -zzo5vvOi4Q$&kee9H7bM}&kxCryygiN4h=|4F;&t``v8$KYO0NTCj%RG7`dK8uWWbE -z3pHg(hCR680=oj)(PS4|TbDs?U6Mf2OsCKzST2`nxj^(3bz^*Ra)3t`v%G}Tdyh*- -zgfJ>ZARyNYFg%%lGBL`HDfOj2=8WLxIJ|ToFCDvtq9ZCFm588^3VYeVrF-t!V^agmoT=qm(cV2K-oBsL3rftP)u}Dn?!;TL`HmPVBEBil*Dpts_!FHuj*00ovr`9DtQV15vd5?7ky3(oKf`73_d=GPi) -zUT_lg;`#iN`VphS~Z5!Z}Mk!{iK*Eyo|(w0~G0lV@TaCEN3#P6Ji9z -z_5>5_ -z7mC`P2~3=}J5X1z;7kK`(BW2>pk;X;p1$`>-yq1g!&=SosB8diDM)&x7<ep#PBt>3k_)x{?MOx>i4%)jLLu5FF=BV=QL32X%|OnijuuIotsOSwX}fA~6{7 -zd0Jr@#2Xc -z|YA4B#n&+VGBXkxLa{Le~8D2ub!SD6HvId -z!^O9Vw11V#Vk`=gfV<4gb1#|g5b7{7$GywiljJ2=E8tnnTc`rH>pc&lNm#Q_z{%Uo -z2aVG}i(3=cGYp`y)+`@{0Kv~rMYm5tu!cv$@ryD$@8wHUVDPCdio)TQiJ1-qr|KsF -zmiuMJT3{W>5!|f3&JEed>1=%gANoxokYP2f>pK4!O%Q&%bty_yE{f-fk1W@icM1cU -zQB}?}y68v?r^=&&D>}`kwi9<%*8~?snQVe{`qoBPrZIus0SUvVzk1@#M5IbW#dAG! -z(@Lk0BMXgHP0NHHEN(TV4ips*@0&MNt`mbmdYk#q#4yqeyJO`I@>u9&!?P0Uo*we?cFDZS)AxkhTPncCP!nF6 -zPPiM=gFuTRqnk_8V1@4_*KB(Zh22?Xjgo?rjP5kw3o(?LNuLcp&p3@Q9omN-T=Qo1Z4xY!@(UA=iyk-URH}F1sN|-;A!dO#9 -z8Hxa0AcYdVirIZ1L--;@1eoImx0#QBOEv5wH~8Q>pAWSq%uo`09-TIDgjaQthdW#s -zX?-)d7BH^z&>|Mgi-#sa7v^#oimprilj`z{9V&~G+9L1g^BQ^ztq{IDNKG!1$5Ec3 -zu?=@&{$nJIl~&3l)_S(0EmuB5ek-ArZLwwSGmDHSK_4+HG$6ZQ1o`I;IB`9QeI{EW -z7cIE^Rxy>#(nWxX1$lW?Ij -zH8~AEvX6_@^|BbOE#8O)9k$u6uuSWlo|hb*Z`8lAiM39O;h7!nq=eIM*y+S;NI7UZ0p#2xGFz-8OOUN#J9JP=>d -z@%kXu+NQRG@-!NvdK2l?5?Czxz1tLv9#~}NR7s1Ii6br>9*WTkURkq55}))=&Lm1a -zI&`b8C6=XCE3@7q`$(QKL`1z}P^H$P1z@FJ^6p$S0618I%%?>H9n>qAx{S{H5@DPp -zj9Gk9NRNUcwo8dQ+g7>BeN@PB;iN=MbVMKWO{u>JJ6w8N@(d#xE%di&@Esqev(n5x -z#D+w5j(!X6v1=IBVm495<%t@D;T&Ro3zo1$M=uJtc{wi!Rq%5-r!UTAk~jp^lUcNDj&ydMQfwit%$1-Gj6* -ztV7m=`_*VicR*xyw76Yz@y+iJ;kKVX9PH-xQdw00r@=rFu88IsDce&d{drS -zYI?Gu>H{(Db?}jeleFf_6cEY+)a-3}@x1hMo*{R9?zk%^C^3S1@rha(JxxsGQR_>0 -zn>xV!GhsrGOIHF3Ra=DN)Lj;BQ?c(o_&O| -zPlgp*8A56Z(j$-N5~2n#Y6+cUd|wI;-NgH)(Zq1XqY)7+sf}~7{rhTQ$X_y8#Zje# -z{itZj^v*Q9O)0EjZVc4vzvVZOHvqRHs;QJYPB$qal#`YkqYd6M -zQM)qWp{LDc@aZHF6i~XgwH0+nz?l4Hvfx1CWf#6q2^MLVsz|Xc0~6n=WKAwVRM<1s -zAr4^a)vKm>^r$;?2#5r~v-1-NupgWIEsHz7it?1|)vkuejg?+S6U}H7#&}9&|LH~6 -zG+Wcg5o(`dH5?8~Nl1uzfip@x3(rKN1I-e#mZ-TMY+E47} -z>dA1(zRK0B`m=eBzt^LXHd%KHt~Qv^;Uin8{9$DpY&8}52f`NZWgpHw>>(OWuB|kx -z>Zs4td>RDFZn2IdX+>v(g7$eb3Rl8j1|AUO&+#~Ig;6rBN) -z8p0qh3SV^%Zq=$f3CsW*)pe{eRV$zXYx3D>L5oSry~FvebPZr|fI#%<3_o(D+8KyI -zCqKVtxhA9S0|$C25G!iqRI5q^bm?mOm%Q_8wozZJRtmbLmElu|r+p%Z?xSHPcHATP -z5W;1{zU~5U$>%R);wr=XWI;D_AZk{cTl3=yqw`y?E4Z(R38O&L=QLq%HYggZX+nO7 -zMW-#sL@gVVWRr{}Eg#DNNA*z#8O@CK_m||}s*AE%L*&`%2v#$iH7Ff67yKRAw&!7w -z6Bs_|eX(Wu*~R#;(ajCOB-f%X5qX+79wGaqWatTLNf9v#G0_-*Th5LI7RjilZ&>yGoJ$(i -z{KTsp!Et3Ae@|=7M3Q}*lM{hq)|O@o*w!+=Y?7PUnrl)z)?TQpQZ91Q3W$KNDVnjo -zIAthvOj-LW!rI<WOsH5(oa*YEmzhs6J;OajV;w$1gM2oTdBDZhk7)1i=-M) -z3L?coYIG>(3%03Qs5Uu3bD-h8Q(=n=7D05{rA6EynS+gY*s>=m5(LwiF$n> -z+|X%mU0k?BqN&}Sdmt2dCmsRfmZ2c$i7Nt467P{L^}4fiv&jJ=w$ms97ldbyj5Wwy -zn^9oJ;9-dXf`aHL;$mI(4k=)^kztx+8eeE&s??=NiD@V@Jbpq&y$!zgQxyEw>!k)o -z@e=-~U*ZFd2oMY4?Y8lFDYE4#3LvIH{Tr}41|$E}7EjWS6t}E_?y{F($25kxqyl7l -zFnmkn+6m07u;H;uyj7UaEL;+h?!a(`D;;a1$62t5JSvO+R?t+a=u> -zPZaJgad-_4QJVd+KN>t`6-{>2Ic}$qv8pFCp^mOhP@(gWM+KJT$^f#F69ghlS1JS4j5TII9ap7w}8gNXR$>n?Tn9V;0K1=X`6&LP~+~c0PvOVZ~ -z^dB6Wu>pSzpuaANj77VOl5knzhTW#at -zV0ao`nVmNpOCqglTiYVO5SbLa0>R9QcBZOz!Ito(_E%jKF>!TvG4oM!3gKzR09%Z6 -zl<0S1^m%2SU^`b)`~Qw3fHwa8|3BCk|I2qJ|4LG?|BmzjPs;!3epSbw{wK>h{{ptBt@DVT|2r76TX_op4>mgf`=tKOF{bx_ -zT+M$3-wyt#VV8FQbG(KNbqO}T_GRQ{#Q#|F*ROwD0F+X-oyL#?pX(MjYYTr( -zn2co6jkE6O8B!ZYdTA+fry$p&2xEOgKcl4hK>Dtu>Gl0MB2+ZNrts8ObC!D#)5MHS -z)^DKu`nveIV)_D-y&ddh>v-zk>KK;f8Ofe0z~;n1v;2-EB*ZKn0rr+kjeEiCpZ~@g -zjC3YlK`msBt6uW@gG^|mMkC8CZfIp4y!fH)Ey2H!yQWacrOuF^Y^W>l+v4 -zx!xH=F^np2+WOByK>xN`fA7^FIpFQY??Y_J)9oEz|L*-)_s2roD51lR|GwM8PckC^ -z2i!PIURivvWF*KUA>(c{@B{YO`@>Z8Q1VLepUtTf=mvd!&NORm93`}ELMpYm7bE~d -zRGYE#!m|^BQXDor_WtxL8sR?`e+tQ`#^1d!6{RE3ZG9)%CL+kanU3TClsHW3q-b$} -zy+NCN`nx>6?0)+_a^p?t2dp$D9Gt)WoS{?kRTg#`pWmLod?x;SA6NK3w*R>gkMsX< -z`yoy3{n)&p^*_AV|CV|(|K;>{^K;MmbB&Jf_l0Jq=D*$T!Aq28jsx|89^z1~JYguS -zixr7Eyty38dmC%g(mU)>-Tg$_}irju%yDs%!~^GS$tCa1nw}UAo}|%PVaMl -z_xr4Jwo5JT9VDSohLdkSJ?tx$!S)u40sU-nm=<2N*f8Pm;&}<-{-J*#(=0}Kt#5fF -zRCTW2E6I2U5Za5hlNCG8F$!Y|VDBI6n=8hB8=!_3dPb8x+rot=i^KTS0{5`2*2Y82x#%t%vrA -zJkUqYs5y1>kAMv(A!hj`-}Tp`_+V} -zDFcjOOrvlZa3yQQZ&J9SOrWUQ2lmesu3tYL>OUX&@mUmMv(R9xWe{p1=* -zNZdqSZMUM6QZC~hECNVK2hZ);T`|yPg_HN3l!HmpG -z5W>n}Z(6fW!;VLTDlSc|_b-o<$tggsDkV{)}e~qq>%H1(n}MYHZ69kBZt$Siwp*)D&^A)Z2Y-ipC_e7@{4+EriiESueZs!q52Me~wXP-@+{ -zzG_Tc=OIIp0p~FI@=zufx8kFB>^=S9p^+4jnh|JAPH9 -z-l`M(p+)_ME^`Ep-!nbZ;BUxg^DRGJZZYaJz`oPVD{C3^b2bx;d0gNM6N46X-rTG3 -zLQ9@V0p^c?(ljiyV8QF+P@`@MO@R%|4ThKHbTa9$mr~u{oaGU`P{}U=C;J=mCf*XM -z>g|&3alHQ$^5n-f&TpHzF4vf@;G2Mn|}w@pIsgQ^%x$=)3KDHSt&4LW-dq_mCY+ -za|!)6PQtsUi?Vj#O3GrPZMMcrONHPS`^mOCOXk2n8U*VlvV3t#Cp}AfXl+l?uW>^R -z`26%=usH~G?~uA*92-pN+R+G@;mDB#7Mp80nuK5`9#Nu7<{O22vnV#?F`;y1gC!*a -zrStkNfg3U22zy&XACkhlC;s9rZ)|eW?^Ighb+x!SO%biaLHb=1aubvUZPm{j=4|?Xx`cUJT6l6DkogpUFxc&s2eo|U` -zlH;jl#Q{kncKO9>f6{+?1?Ht3336=J2_!Pm6~hgvPuM?$-;SF6{Z -zfIZgLd=5ymoRfptt&1+Z0LGZHU_u~1(>ALoMZ0Jr!P!{d^yU??LLv(yY<)px0h~gB -znGAX$N;Ms8mi5s8D1SQpe=J{w*Xs55yb9OXn8V#O+Zd!V78F0neg54|sXX_`=soxe -z|EpE@Qf_X1QnCE=HT&~j8=>+}8J5_2dbsP%`TeJQ^XE+3`|fo%*mi3vZ@Kk|aN5gc -zWa|rEzrNq?0ol=M6Xchm2yQD-awV+J5(_&V7-2qYO8~U>tRNJHp6sk5CkihA9!vh& -zmOb!!!AZ*1)^=<*yZ!5~#oJB;ryu9x3CAhOA7hNbaU2V_w=0l+hsu5e%`uu92LF3_ -zml-Tf-N2`g{0%1;+)_sbyEwMI$ZnZKl{0POwWXC@GQVaC!3?|!+CRRVrY5@>o@tPR -z&IlX5o`NxQHKiML$jhjsHCHq+4l>@N_n+iN*3fbze~x3eK{nBZJpXE2Fx-0!X>LS1 -z00O|DnpYIqz6~~<9fBB?W806Z02V=d{|p)a;MAgFz)|;Jf|6KP^x5cy$l4`R$@MG_ -z6Q;GZH1f+K&WI`u((i4TRpwAA-FqhwnIiMHSMPPX6?dGn8aKG_`Xny%K4E%v94VUU -z_xff_3D%d-pB|rao+IvbO&_bS<-SMFdV|NDvFZ!;M(lp5ZVpntR%wfRml3$H^7~Bt -z;}HzadwWyGO(@p+bM+W_<3xcRhFN9 -z*cVB6bDSX_G09WjY3}5lO46X>jk@!|Z6xy^*H;E$&?tG|S6>wbt!d=uX` -zcr7l>?&1%14F`UA3Et7Vc~SMq3j(!JFzz_WC(w_2{MEVHLYgvb@BIpn%}A@pAmSEq -z^Z(F#e|ks$xPG?H>fAhabi`TO7tgH}mKK&Kgo|=rbBwXYi@e{wirv -zl(%@>0CnVMalU;=gcVzSjV(LShUT*H`x6ktEIip+jYXnv)j1(4vhCOn0?*3%lfAiJ -zR1`?OyQ0b=11_7A#i#Cuj-k?(SXlidLJW|NNjE+8FN8`>iIhug|K@g15Eh|d_pPkl -z=)nT<`Nn|}9iS*MdA2&eji+|p53OMnFH`t>Z>aY3E6hI#gG7-kPd)1(>l1NS(8A8k8R{^qYYwC)+_n#AFsNVUPqW}5M-&1% -zj`!p<5^IW|^YDUMq`Jb_A64S8hT&lOmXowrMz-vLNVPTHmX!J$T{g&eZ8daR&2qmp -zRO~I+S9s~TFR^2ybDFg&bLy@f{oX)U=&I6&uhfYd$Ea-3PjRacp5Ulucc3bGfB*!qzz?an=pZ6kD?dDQz&E6&(W{n_d5ewWU9W0m&%V -zic($zW-Sj#MO|4*sfjGPNx0AogHPO#Y7B2C$6gf}NDW=8gKU=@&m*s9eYbNKcu*wbpAku8FxT1M34fR=OhuC^k -z!LvYUOTN?0gD$z>x1h$rZ(dE?sA~_65%DHk-@wzE#-IAtw0?gw$_R%p9P>cGrH8mB -zBsI2>uEZ5Ru;aF5Pdm7f9fM?#whIoud0J<~nLC1hrhRdIJ$AoG9h}2OkK-DIaRs1h -zAguf&WXRgmG~UcmdC)Akd!t2-nA0$5oUK`Rv|a&2hXmb+z!J(*UDSbeegNbQBR(JJ -z1$oI+zUM{>cYLyaAGmdW2HMJIA}>m8wdmmind+eTZ=HE=0nY*jXv^ -zO%)XID*XVn$@FIkE^(b;Rf;+Y$^#VAdkSVT8nGovrKnW9nqr*46@El6gn;XRw`3t$ -zYkGlL8i{T6dwx9Ny$U>~N_uY9v)dM#l!PF_Wj(i@eW(d7zn}8o#Rsd7>?PlRV5pwD -zykAGL&T9R{&y$6e?O=H?5|M`NyZ|G8vU%{gU&+MWiqv^qXb -zuNu44QuLoLAPdm9>w)pgtAvl9bl%+yA7EX>cn3s9&H}7aeSgloUQg(;Q>H(Al7vKheS4e#0r8oE%ce}1+Ft&OkwqVeKx^rj+9>u!aic? -zRO-hd2nN*w&rMq>`bdyJuT5lPB^#=B+3VME#+l~l{8XG0uetvF^}F5$OOF2mLdB6>vRly8j=TY?syHoT$x46S(3iG(75mcu94w -zC$3&c>|D^Zt4YngI6C%fZ$Dh0oPLt&Zbu2~RgL_i0dGj8y<&d~qwyCaaF11S8&UX? -zaQ{Sx2Xc2;B5i>i>TeW%Vk2V5b4GYPDO*ojED>?H;>@i&>|8`DjC1eGJkKz*-16@# -z4`}tX>g*mGkR@d^;;;?=;?;kV(d2QCU%0)bn@K-3_B;8CrQ=@JZV} -zy1B+1Ez$A*$3HvhIBxG+kTk!UKn>g-YVB+2umY-^+@N`YukdokTb|&L;rr3G6aDxw&OG+Wv?0V{?vkGq`{*bvBP<&Io7TT4rN*QUpQqLTCa{)e^2W0C|i5N -z__4fDV588{fN7g_cxA2&W%)E`Q?gl=5$goZ8>$R`yucTFT?yt?b==*YEuh-J2ly8?~L)+GkAY_MREs!U?TNm{-8iv^#pch#d8CkuSsbao>=5r!@y#e^F3uWgo-ZwF)<9j~6=x!&C55Y-Xt -zM=tM|*4RhY(Lt4d*xjqM&N`ECX>lzFu;7iUV1lm*0Y5r-P=>~xK{n+-rdV_l4GR;=$)HR{-osz?YE>6onGRET*E -ztOD(t%#)M|(U -z|9tm}5UH{&l;+^P=<7~Y%{cm)2yzq#X|TxgE>=S6me -zU)8mJe%#itQIFPDJufHtCF}om)?oM -zu5mn*>)mrD#X8)x#@J~4P)LA_c7x*7HlIGS3g(9$VX;l2m2$>%fOy^{3qqYJB+bJ} -z->J{2zkh++xDis@yV1F66JYxL5Sxgj-CN{Jbv|l}_F3Q!XmLPu9!^d&5xjK_|3<(Q -zlmA+CdulrKOb-FB&}qI(?rrX`J$DnQZCYgB-oaT{mEBBucLFQ+s~BvNf1auRVC6#% -zLoiC%EZ$eGrtgi8|2)1s7<=@6{E6SCne1**tCa~}6AYI+VaYA7z99FwHq7X33&c7j -z%^c|laZ`j`?mr`gl_UjGa)86IuEdtFK;vf9-~$do_TAS2FZ+%{fKy_0ljyR-X@EAl -zMb~tCKq;_=GXiW`HICY}yBs2_TK^id8CRoi;~sO$THGgzaF!xVv6Nx(^UC&xc)ivW -z{tlEZfs0x0evtIYcY$!gI@S89E4PGl{0_UN&Y^xz9@m21mym4|X=-NwchqL;+K;z$ -z5%c+;tXBq2O0NQZ41n! -z_h;p50nP=tE*Z~MdbpT>Y0*fpuf%QgD3H)^GJU_X)E%f -zJ?@BL!?HN6wKiP7_Iq>H*!(LqTMgvl_-h>nH!d`5yM5R1$RtqUb2^u}M73jOw+OP1dv>aYL5C)am -z-Hs@~^zZZvynrVNH8nLWVdLVJJw|K(DR#Q>5P6At`dbOs*~a`RXQhuQa*qV^Yo(61?qT3pSEGzz@g -zCOLh{bH?g}sp>{Y6tZyjg37b!k}n;%(pwOTtUdt^_jWSKn6^ht2{ecM@N#mB)Ln*r -z#;%0>7vgy0U@)gN3?895Q)_ZjoUg;4Qfj34H!Lw& -z5y(RHzx4=#wovlU0hD4BjE#l5Ak75=`w{J7WAW6B8U50aQ)|>r=;!M@U -z>yLA9)P&3nh1DYOQ{^tYh2kz~UW4gk&6nie*ocGxb^wGqaAA2G8ytq5ACe8YbxqRe7ztLg5loAvmqQK@%ktLf6zmxi6sfo(31;6>baNR -z4#29b&&7Wh7inz3O8x$4B|tcY~LNF~sAc{$a^~*Y>l2e2; -z$CvC=4W;o1ky0NQ&_zS5Ey3-x1j6ex7|H>>HeOZcUHQkaeR3CGj_fuHL%<1S9wM9f -zAKUSIB#swKi7Fl7PGfZuReM(pjXoO*ALt198Yiz_=m}|!VRs6jI$n+GFKX)(E@DPN -zu2zw4Yi7&_cOL9)`|;J(c42Ns-4dN*z-pPXWZqJ??bd>_ROh@)hg-9^Pm)RTdtGG& -z-p!#%8BvhB&+#OOWJ;6lHbR9Tue1Z -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 -z#;r7SMr<|B6d=14?L -zlJiL$XAihoRkADqFli -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 -zm=9Ha&xD -zE%G1C5wX2zZLmp5v!Q0qDE0kyRum|I6ruQ#&;D66P&6q}cK`esoua(pQ$#G>Rb;@z -z5z>~N*l#Ed<|BB4S#C?z_TWKM0)0Twhmaob-M^+J0)^iY>v-6!X@kaLU^YN=E`cVX -zozbHY0nx#|-P|^c=B766lD;zXz}0X9qyF$3!kwLbBSM)<>K1gd79Ahjs|a^qMwas` -z+Hk2LVHEb-GV#h=uARFijOu`^ICv*LQKnUCNl{FY^K!m~kkBb9TLji>rKs7HBu_!} -zIU5^I5gE%{e6wY+UOEZQU=Px*%n_x* -z?E2`ET8`O-P(ibUsS=9M>~xuE*IG1>I4L>qevnxk9|z(06HDkz-vwR(^^=qKE**2w -zyT>`ch`OtZyAexDWn;Klc~%(4VI3EvUlqiAf+rk;x{4HNro+0d-dJ$XQK7=0=F% -zVnpk|lLFNzeym;RoummaEy$Q4GZ$7nvrEP103i3{WtKj41}Voh -zHWHK;@AzxamIWENA?~%DTw%U_9uE_c1|t2YUT#=)xK6D$!>0YaC`INSOdWzfy`9iN -zchW-zjPR@GC$oV`@9e;PlFE`qC8x0Yg6ys^*&ujb1(3SvT0zYEw1s})ZhX}s^yCki -z#5BdBA*tIXxOmge75Oi692)fxmxx>TKsEVWOTYBBlxY)5z -zK*Pn=Bb{zm+#PSs<}DZ{@&Xcon=y^EL8rq;=tul>K`Dt3$zjS>*;R -z|4O4}RZXraUv558jgbxzuuqpxAu$<6Wl!Vr>=}`0w&s{S95{11pQz1hMN_?p6S+T~AasLTc))>4e20_rF~o(==1Wy7SLQV9-%9K=Y-4oqo7 -z)X++qPN3oPNlYNE -z|41VGCeX`Bf*f3thxD6Nnn{&n$9!hf+~p%u8-e6TeVYN9g$X`Yu%zU2_go@GwxZtR -zjxJTWmD-&uC-lS*<-u#S`E!xBb>>-!cb*~wK^&&!5{{A3!z*2NT#KeH>5w=B{iB?=kl -zWVL1HtY@jM2u9BX7o2qbItX^*2GWfHJ48eAth*~2)O*|&C5X8P8hCXOf!v -zoo`LpSEyXtB(Q{B9C0JbQvkI-Pu^-9Oo~jeOZYI5+y+IZIB*)hAT?(uwtAfOofB2s>_8ki?Tn!HUtfB!ZLH_qhhji}_9itA6YE5yCh{7c9B -zICPz^m57A^Myp%&1&IOt9-m&SH(REj8TtmdZl7al4`_z#f;z!{n!Rqf%?4c4EqUNE -zV?O8N0EP9Rdzf7KpNC@zlTC$N3X(<@w?LEF010g56|-0&yb|k_NUm;bC<JJEJyID2 -zHNPt|g!~_I*Vf^n#umTIt~?geZXG*_j<$(moNMw}bN+VJT0(zw`7Fe?q~p3RkZc+J -z1m_OgT5Km#t+NNs8nx6?EfyYg9DEOdVm8-mw -zhoVN1NysosQR33aV@}Q_pPk^QV`K2x;j5_pl7@(N2)^4DDjyNP-s5DpRC-%^k;MYU -z3=(|A@s|mRFo3davR4{rPV%w)7Q=HXJ!ob!8Zyc_h6--73UjzUE$EgHQMyP*&8TtE -z3RLAn!+~9kI4b4E{^oZq|L}?O#9}+H#&V+-%yO6wpv-9=t0WbaRfJlQgd!k_;X>=m -z!j2}GiZJR^g=(I;Hc79UNPD~%qC9T|)sHo>yBG#luL0z>maZ?btWng -ziehE%fA2O4qGe}4!38ffXPe|1pNO42>?!<<*5t@Ty_c_$n+-{Dyn3%{L#tIkA`>4R -zr4axdtru_hZ~_`;Mw!brU%Ua(Nv(6lrrfv~x$%o5sxvbem?Y=}7J!V<#!8o{nH0D| -z?22D{mNj$8t^GtOBLMCrV+zY6zVtRy`CyI>D)^$_JDw;z;r?$t`94gb!cX{Q%*DkO -zDN$2{>th)%MFGhODKIB}ITQgRi1NT@51%kc#`Cs0ps}LnFtKV=fbJ0505DCWo=6wl(cPt^A-1rgV$cGkK;OT2py2Dw@fw#!dVD!H -z1!j35hd?1nmR+#8tV`%(hCUFDLVD<$4e{W?lv9r_R+I2f(7J&S$Wc3G)h(d&Dsl@kn!Gc+n -zyueP&ns+)$!bI6i;iz`>!emzph3At_C;Im(d0)XiZ31v_#ue}}&!)Dh8meJGCLUAC -z!qQv_aP|Qdg&x4f&QCu&HG$a{vMD3Rc4Ga+mJ?SD?EBBq%RGqKvOEEIUXoO)hc>;9$u0xiqed{;r+0E#BE -z`;nd&>zpBv`Z`Ea;J~94dXdgVEUFOp1;<77E<^WN!`)z -z9M3LGo5Vut!~$LcO_EBCnUIUCAw#H!1`N=Uz#b8mv2IyvKyw1m~ -z#09`*LaRbVj5?>!8Wx=lw5XoQMqxOd6<&}#49AE-DR~k9NhE#hr1k$sF)DEJv%4#Ka -zQPnB0G)=1c*gtU)2u$Xhq+*jMoon1k0iL-y0wcHdkXkt^9h>U6tm$$IaNtu*zlk86 -z)Sjuke@!7!h%s$<_(zs)94=81O=cvr!LwL}>J}SprRi(aKg0#vox8^(*H*N@@HH|7 -zT+-ad?5mCd)M{zuq-Nm73+ -zxar)o47I3Lc!kqPxXH6vRc7m%1v!~}3ogTQkVnn=+`u0G65;0{iFv)s=AmL9WUt)x -z4C^_LP`c!`rh7t7#R2y6YA-hV$IC_mKs^jJA1;wj41?45Wst^8gP0V!W}x2s*$-U9ca1S^xB6_*nvS` -z8KE8$6?y9IM*4UEpsps_r*C{!@g+;XEsn22pONK^!WKka)=^D=JNDd(fT?PtJLyD~> -z+!kqqA@eroB&CZDNq3h-NqHO(ARwd@Z^8|Dxe@88K^4`SvdYFV+lR(9d(f4#>Hac) -z=3t5k{((ctPg)AvQJkpcaM13OAaz@!dMo%={g9W+ugOWDWhE}tV^$fl8w6QN-MxA# -zp@%Hl%65HL$R>22GT_+Ffw&tcWa1aCOA%BU+*phGEH!PW@jqYZ7n@jvDeChqltRTb -z8PqBAZ5bN6w9he7xHl -zWEVI@-+O7>Yd$R0ZLi#D9xc5*R;Au(9$;&HB39izRlWSP{vo;%>-|W_8oUy_k)5Y1 -zCreET;B~9F0~7b)Za_>_b>q-)DB4U%p_vgmxmY-pk^#yWr<{_Id$Y9Z5kj5L3R0lq -ziFnuS(i{@f5fCF%M?V=%5eX!`k}6WRa4}v`NxW@AHRoDJjiSXkPi0JBk4C##T)oYU -zv%Vo8dSpsOc*@wcPdH%=j8T1b?)9dZTag@Y1dnNyGwl&vm{h_c}bg0@L^4WT5G#cMm|_*y&c~%z;AA;JdtHUqMzl -zMA9#wkoQSi5QZVUU1G=-Pf`Az6wkK&P$yO2&PU%bh`qF1%vEp9tVcIJ8?!wyd69H) -z>K$gnN1cahrJV^TT~XYH61=gX7kW*W`zG0tsF5?RgL|{*c6_lS%~Y1LPKj{~2S%`?oBa;5cu} -zzgYwZ3Tjt?=q9glH=1Y&gc11<(;6p5LR=xex0``0WO}E)dpxW#1QQJOFH{j#6A5nP -zJ|yAAsR?p>EHURS7tVQXg?o$z`!ZRsSC-&yJi3hu5JU(Khy`xR`{0@I0W);3dMJhv -zsH}hsNhZJW)S`c6+%_@Z;Xuib&BTliw?2POyFK?ar+iudOwvdWQNWHZqG6koY20R6 -z72be=K!Aw&C|sFOoa&3=S+Tb@hG(~t9mDp-FE4LH=2|4FVb-qks0t6+nTe9;w -ziS#B55!gIjaV7i-5m1CmRl`ZQQYA9 -z)X$EG2K)s>Qc&P!3pNmW0O1$pQmuDIfxx?GmDt=|%XH;vF~VjWfb2^}k)+$1!1$e^ -z%YBrI0x{FL%-4&G$yvivj})W-K@7X>=McI|?DYRBYb?$C-% -zkwo*}wSPl3q08)e2JS7bW!9;s!$&<*-~<#^@lsz(p?2bEeODIa=P>&_vtf2^*tGBy -z3tdXa3L}@9`TB3%v>z^2df*UDl#xQRKu8nF;4jjz>`H^-k$v!dl4Cpr -zkRvn<34=elQjJI1*-WbuCTJk0R$z%tjmY0Bs!VXCRT&23%6`ifky=IbgGoYx>pgj& -zAmY!Js{Q2s%(f-!qEKtga2&eFj|W-`-G)c9mO<8W`oe!i0P2k(!aM>MseMEy*972C -zLzJ^&z>E<0qnT8&GIl{prp}QUxPXg@$eMhx2++)PSpi7c`qdJ@t^tL4UVo)F9gCjL -zE0Zld=jm%BK#U$hFGrJXRE52F2~y2b(5>y_0#*vQ(CUEO?Dmh#=Pyxa+ur~-x}X`rM#eP5jy{a1xGySXRoCc9 -zHpjxleCJ{+46WVjoO7^{{`ETr?L}V?3-qlW+ZL@U{+kC;UDqE)X{cJlCoOfAo^N0? -zU?e5U&I1>Nv?LjFEqy{1*0SzGrtVu8^+Q+|*7xse7a_1+PneuDQb%Txas|__DFgli -zmazf?@yBqzkY%>xM6-64TwV#>SDu|!oDKV6v%vRPftC&zOs<;S*MWw4IHk1jm;Q? -z7v}3rQfqT00Yk**t5|}>OI!*~L@SRREZ)7dsZ5Otgf^cGFZ~A2Q?ToMkYZdG$t0a_ -z_kDlk2qgFAYlqT|cI{DyE8A#gvTOT;MHY9Lh)8X)0^O!2RkUI}=hHH*pI*wCTg~7{ -zc9zbmH5(%(?W6^@``oWK_u@+I|2okv+xu{*K(^38< -z^lMS^i9+Aoq!ynzG9Bq-3~}_hNL~voXG<~9c}M5XM&Cv2O;|uiB=~8%l=`sV=gYa^ -zug2&I%G~4xYSo@`V`i#FW|lQd@zlv?3{xT7CQJQ!{;9jG_{~!cC5rq9NWo{96eg`F -zUs=QuLJFBygaR-HemHgF#Nk8&b}1xR*eoiBD(P=&mB#HXC9GVNLylros-EfxVJqMz -z3Av8vedecq<`UiOA(Qj}liQ6pcHUvGXXBG5? -ztDlP(qz&FtgRJw!{V -zV;^?up4{`%YnWH;X4pIqr^U5nC-zNFAP>Dy)538o=DzjoYvy;m&->fcVD?Mhjpa!o -z;L>h#kn}xSV&A=a>uQI!a2$)@#AIB&yxrc6!|B7}`<8dxw;7*R(^!&}ydBhCyfuwY -zJCa#Aix4azETZYTWG6)N&E5rz{Rwi_h+n7kde4Sf7E!p3F5bGYeBd9iD~y&;!QiI? -zw=~%XFJfUbXP_ca0vZZ(vO>6?aG(2|we{NiXT)iz*vU2wz*^dHNlF!jFC~*gmI?9W(i4n``oe7>U3>yk-AoJF7c+PPI~wU -zWZg?%Ou?_*5M^F{U$yz0=G3Pf`lG|R8HsxtVLe&8#&koq@X-gNs=SO3G2xc<11i#! -z-XD}s%12@AFhLb%U-5CJ0@T>33YzZy$Ocgu!8DPK4o&`m7X@XygF1LOUh%{Fi|F}y -z0<>U{DDSjrvx3}r8PZdXtlB50JDYUF1`-b$QEg!5X}93nu1XA>SPGZgHK9tp$PtFcFr^S-bV -zl7%E2b*?in>R~o%7FI#*vo-rmqF{?q2Sv{M5FU{(zhTW%<5vTjn^qVHLh`+-F5C{@ -zByDryQOBN-#r(^;U<1;W5e-GdZEfzUZC{mR7!Cfqa89k@U2#YF4zddObijJpn~q%~ -z^8juNWHZtaa}}h`=H=}v)hEWP?;3uJ0_C4$zrea)<{>CA$;7ccFPGww9;uKN0cs61 -zX$)d7ofjFa0>T}m -z#6k@_ZHN;KZc+&?KGWc -z^D&LAJVIt^&Y%F?m{ucWIP7i}*c2m0omTcS^m92~;-i&@xldROHL%bXz2WugZxEi7 -zw*Go}M)A0ShQjEr$|R^E0qMV{^E{(*5Kw-vI;OH!_dFt|?LX?4_Kp?;O -zUE=hy%P{wa2G>#(LZunkcj$(7_D64r_Ljef_v|pVI4-+}xN@J`LW4g+zuIJwBd<3V -z6Kh0T<44t~c+N|Z1yW6aBhPY#?j^u{BAME&3|5Lx>);s$$e-;7PDr@wr>ZR=7S)^txCD<$-=*+Y& -z(;;|~mB`lYh-CKR$u7C6!|TWNqMqevHaU`)c1?B9^lcL@GoFe2i_!PIGZwW1fUdC_ -zzX<(baJ(Vi_vDBrW2Y=FhW?PfmxGAl-R6RE-QVv!-~N};xY#*@ttHv`sQ!xh -zE_NwnzftB+5Egzf03mkf-+~t{{Q10y?7ieX8*YD_e&tm@)+f}m -zBpcmWi%a&lPy6Aym_#%Vg1FDtwFNKalM|V^?Rnm&fY+QgW_3` -z;oH0BW~QA%Qj^@@!h+lE8S^$X1%C0{*t2S{T<%*;UFpYaCI5bZ_}+9hc5VAHVVA_1 -zXt!b^zb~##6X?zMksY~Ba3{e1uF3a5?3Di}8PPvDVlkTXy_~9Q$B8+Qljo0{7o|;H -zZ8wwvJ;l89$+zyr3f7B0<9#jNnYu>WyE$_As(h$Q#+$YW;O_Xg -zGYg5QBUj1XuUVj8r0YMyZm8Eq@V0GzJUS#{e)?_1e#=h6Tq;dUk@xFME;gPZG+* -z&!5Fh?Jhc%SL>Rv>zA0_Tbh8s&^c~ -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 -z{Rp0BPrD|5l3Vf5?7 -z<<)8q=QJs)zYuw-;h&jX%d%bFu@F65w9|axOZLTYdXVWfFeNb*Xw22MCd`DUqU+jY -zY)`)!&VEV_7mAi~`Ajbl&Ut<1@mzBk05_6+>dbIe8FH=vcNw>g>yJS}b18$-8|$gs -z&`oqWgFA)KvTeI|ustzk+G%v8l6S)2=t^?xwPbjy{a$IfQ=PVCpU$Z1aL!zL(fe96 -zgVfol(@9fj!&WpLT_NxJJvd5J{@xVz;s0Q7uhl?QUJ_CM&Wx(2zS{7nIrafj0FL`} -znEl0gOexx-tGc4#IH*$2SO=7W+*QzImx9*-v_F4xyYcS!4qB{kc&33G@_JgcuEkDG -z6#{xjSkAiIg0&OR!I?<2zbJ;(wM@YLECtKDgwnb|+xk>%#dEvGl;17AW44@>VLEV=7uftvJFo-uj>?+RK% -z`Y4-hOu-a*^3j{?&u%vhX*ad@C<+80taYPc$GN+Mm%){E;Eu#%X|j1D7rP`-2jB+D -znD5X~2y34^?bbmx_A -z9aC~vUn$IwfCHTdHwK#%lo4-Uzx$dB+kEKY26#@cegr(8dw(Y4QFqmu&ysIUUFYs` -z9B5DL(3)%aH4kx$*oHttz4- -zW^f%1g;)~vf#29k&fWbi5;5t%tP`t9pD -zNCI#th+stZJCydGqzpI?hr=&8K!?&X(y7Cs*(j{WZ&I{eS5rg-z9WDw&)E{3qC@$WO?G$uvg-iI(8cRHuJp -ziswhw2*Ud)Qv&Jp>oL|R6VPnN>pQ@@sZKMZ9m>3aK&6^n_0fvFlk@W*)Zc%E*?|?v -zcu}Pd82+@ESG;zhQOof}pj2m{IxUMdu1rSIERR0e*lz~7K!^ -z_v-3}&K_ocu3xaa?OW#n1Y8`IzivD@R?+m3QHZ^#87!^pXJF{B|Mu$} -zKYPI+H!P{aHE;jJ=szmo@jrf5fN-?wJaq+0vSc?4RyQoweGz>_fv#mC42v(X -z&ZmhkiW1Ea0!4lPj?@Es`Y@c8Qa_z2lUSl=UnF)e_F7?U` -zRNaF6m{gezdmQz>6ELH@UN9?`(B3azeN?()o8ViOn#jOM`>w^HZ*_!2dTawza&vjw -zoSA0eMarCQBouHnd)5&A|C@(@7}`JB3d`I~bIL%RVT&bM^w9-K7ig2i22OvylE`~9 -z;F6c1aJQXfUvaYv{%NXHbR%u9^f($v^qJ4`qxtSLXw7r!rQ7#SrUAXry^Z6zNyclo -zGZlvPb$i%n_43w$o6l3btpC8}fAz+8rlw*^nKqV$4qd#tdox?(pG3J_N!Pf4_j;y= -zna(UCdMQlgl&tct4no}pq4z=P4EhH8HVFM82>me#eP@5mGi*)r9$y}s$=+Hs(X#kF -zw6-r9t~~8Dw_D|!{~P@on)9Iw^(mZGWo}dVV>s&Tm$7m7RNh_E__|?yU_@E-EUN_dwTEDHjJS>rz -zJn6svdi13S#H2&*27gp`1({pS#GdWok%B*h7cuwAs@djztbyq&c{gbI+-LB3RCe4g -z_(wAF@0e=;E(TL*N^|F*~9)(#U^Ar=qa;SyRe9nwCXtcl9=|$w0(A{)N=Q{al97qaeK4C0EKp5)C^~V}FLf>Z8KE*d*|AUZs -z<-P`%`Wl+mxsdn2XFps1_S+J6IrGrGs_KtgM7~n1w*}^?wp+7^Wmb)M@D8At28cS6 -zHeqoYLEf1A^EU_nJ?OdDGOtZj!S;dZwlB(B=` -zPXRUuS|n3eR;3KYDFhpN6G6wEGnwn~Mu637y7Xw$0@j_>tm^NRXj71S-pM(r?@v{+ -zp@7_$%3Zy=A(U6Z86XpB-#m?T2JWxGLR2~;UTKS8ufjW4i${Ge{d?XBm6yM)^u6}7%Jjo3r_=C_RNeOKzxv~(NsXy%AD|-@ -zPU>o^_AU#S>)_b;tUeTCe0fDBd(j#{0p0@Q4e24}66&P?Tb{LrFxRGPUMB3R7PWcu-IH>!@4(8xtB2wB6wr>FbYHO>#r(CwwiP>&jy64xv}*L1U3J3?(HDwZ -z=C03HY*|ya<1yVqemNn}xJw2M`TRVfS;Dq+ynH2Z-WrD8SP$B;7F5{-C?-=NTw~yj@qm38{xk-l#h`|1}X)|sn^R0P3L@xE$Zdm6l=Swb} -zBkk_1*>p#KP}cr%?VGRv)BoJuz5VI^SAX|+pFe|^PV}<>`knfw1nfJA)K^paxAH2v -z`f|d2AEB@NsMI~i3X_$~?kF3``%)#(!*zAXk1>@%8`0IqSf~8xEa{6{#yJO6-Kzcs -z=4%d}P9NX89Rbhid)9WbM)+UkS!A@#n(jl-h{I{)*8~e>4!FlOqAhiQqR{s3|_LWYd_O+zI1QprOcW*dP -zvb)!Bf4ocI{`lqxfU09WQw4r1H~r_~YLj-_nSPn3&ihvG3~%L`5cpyuy{Y&0FWt}Y -z-oI7unme$R{ZB*5uit@EDwNzi<+o7tmOt_8mvsO0-QP6j&))&J>}19}c|!K{Sn;d5 -zM)#pcax85xp$Xf98n2|ss;%j--?eEY>hAkMf4xhz`oukxv>>JuN&})p7l-5CnXA!h#bh6 -z+$JKMAqLq9NOUVN|K5Tc+KSydO&NQNN@n&e&GSO%@-a(lxGcaX6M}(#{QxH!UOb&FFnAQ=Ae{)=>g8;pz{Xcw|OOQ -zMN$814C!N$OZ}nt9PQZY)DvvRKU=?8Z~rPDhhOb(_^Zr^zZf5(Y;09d?Qb4x>qmdE -zdLI7F#xBIvaO`Y5qQ={?UN<}U$J-rjs -z$)%XkjztW1iPh#)4^~sh2WNB!?{DYGvKYzlN;-K8JA9$pZeHEAZ;W{~ -zPiOczOw@@agSNSO)n_Uhl)5y3Rg*&WeKl)B^nEo$LiBy64LPsxYnc$D@2go4qVKC2 -z4yx}j$R}4b7gXP0h)@38hs}(*OBJYEpnh(3$?dD#q^VA={Bm0L(BA(2Y;SX_Rd0+a -zZ2x^m`SsOp#?r^zc6<9>+b3C-_A-Wsi7{idqIzz(n{ek7u9J0}EZ$@fMTae8TH34h -ziZ%p>nBzVZneuux<$M>M6HMptKd1@OTmxRjUJv-xc{Ue^C+^%_`>CD@B=40m`tgOz>PdH2K}|&3SY}yz@JvQ65~0{*7Wj=A@`k%(Q$qAXWVyqJHweR;yFYsmg)CrLNs-x -zdY3;wzdiQi@WY!rz477`uWr@1vRXU8P->Y{o4vetT8Q#e(fiAyjYkZ1fmwbDeXG8& -z`JeJKU~~JO(pwjB%!Cd-kqC7aI$1fNo>Bgge=PLa*76kML-z2?tH06bBYjt0CHC=` -z#WeHe5k>vW6|DMSJ~&M#{N&qF=ThYJyH5kYJeGw#K)kZpd@>|Zb6)9{$-*384 -zoALKxgGkWM?(fbTXv{=w$Z{it;jPGS<@>BV{fy2mMR%;@G70ZgJgf(+g^ZI{g-XKn -zQ9YR;QJ?7u->$#SvclVxS#732zx}&!g?fTPe@#9npK0~O41f4HuWs4ud|$ev3$!6$ -z|LxZ%*ON|O>vxoiqx>{#wlA6E=?)j& -zkLmoW-KcAt9nVziB-Ejzig|5q$}QDxHw203%1NklRF9#a+P(g{8MtpVJoDyMGvA!u -z{6AIOO^FHEzcf7m`445at@6A&eO*>nEkFJHdd$iy^Az|hSHIroeX;aTiv4|-yvyF* -zzsatuZh!dk%^Og+df2a7nGJvb6RX>=^#|kn8>#{D&q`xzp`Em+6i1_45yalSjop06 -zzW!&ExLUU$vRV6`l2!bzA=Y=hx-)N?eUu4eKMsnS-YWif5YIxH?cY+-ap=C4C!c&$ -zRSJ!c?HoMhDQbuJ@4vZOaX? -zfBU@xTHnPtbc?(X@5C(hn-4#z8VPSJqG7{3nJR;TteE~VhTUsm(zDeQ@!Xi?1s+m$ -zBOZ$i%v8G9?BK!W(@7bZ=>u}GncRa;{eqwBx7=6tvr1GOhN4dGhSK-+$JCR=T`Itq -ztUix8yTT$(#Kq+F3Fwl{Cz3-JL41`jIyK40YgCUtAT>lt`$V$lduwOo!*Cez(PIpL6-Amwo7rE -z>1?)z25cJM_IcM56~N@TYnV2naWU_q%sXsC&Q>{FDH>%p -zsV7?@St`g@I)s|>6w9PaeC08!3r9f^D#29(uGo9BjD*w{OG*flz^BDl?>2)KViFLRs}3>1UtMPezt8rmOgAQ6|3#^X -z*Yehx5}rA#d?v1LkKcUI*~Ff>3@9q?MKIJ;eH||IMlt;ccxI--Hy`d^>y3FY6SuLN -z+Qc2?V`!A4-S#z8TN6^SRDZmwp68ucsVK;{a+lnQ1N@Kj?|E6JGAVB>lfZhwlGjY{ -zt&w`@nyNoifQHo~lL~ZhGx*#e*aM}aq*9lSD~yQKsUPmpA=cC3UuRH9gUiHLRev;SzR}1PF`7!kWg; -zmnI7)sCM$aP96{VWV6LMK+*?)NAE31cbbQ@;8NcRpMM68vA;t6%&|_EJ@PG(Yjd!b -z@$8CcNgUf@Sqp3*EQ{dU08i^XdVbREzAksQx2vzQh9-2fqlI0)>uTCbw@%u08qd|3 -zu8y>{qNfKP&FAPkPrG4#hBX+Wvs^9Z=p{!JVcmnZjjLafM!`D7(;A+ha5clA3tZ`U -z<=vHVSEgMlcI6gJswto$hNT?$QR*z5xy7U -zyGZ!##q_rt7OeMSTlrjk>3i*Jrm8Q0>tXek`5V8aZ-KHmdw+K(=dC$;riFy<{Jqr* -z@7N)NJMCej_SD?TOz7JPyC?=6h(G1nj!+?~JAks=GcgSAv)Zw=OPW^wIzH`lma!u% -z1;1$zYZv6-2Qk!cet*{Z!6c&3Q0!nK@NhtpHfw%V)8Q%uiYz!#w3Bt9XkYENrD9cX -z4Ki9XKvDS3fudlE+cQb739}Fs1FF4{rlsg+#pu&*aNr> -zIMn%2CB}ck0BFS%u>JVh4uEOHPPswRXI2-CREi5mp-u-(h`t5i`+@*4qsvf?YXV7> -zvjCJ}IS=gnATAiW94;7zZe1`^{u3BQl>sDRX|Vzw0Mrr407Lp|03ek(0Fd4p07&IL -zREgsY65yRYF{jQrBv3lA*rbdQWKJdsfxCeabTtq{joCmH8MlCh0&}3qL^x0s7k8j2 -zqCP?WfcXeP#%_dcef>W{W@ms-!bS)(UlO8si#VJ=z)*~Q0F*wJPEUFRTQ>~0&d3_B -zumHXuv^1Zm>yUOs`V46>tg~D#<>)0}6CvG$v<=cPNTVPf;%E&^Pq>=F(gl|ETk>v6 -zIFe~kify^ICDoQqTN*w2^CZrfF<+{DIr1gPmK9q%Ys3lw!+FzgT51Ej%D~(G1ywMrI20XD1TF(me=|4(OsG#32H>YF -zPf?@kA?Bgt4IV*{wY^R%%lDJlanjIPn3bGbnR*|)<89XpzLPR?1yqPm11M3ozxi-? -zr-Nusbrc=mlMdy+n{CR`w$79zksZp>_Xwuk_n(JyVk2yU{5{bGLLUAELfg#=g!WMr -z2n7K~5c;ZT1mMVk1w;ET3x;lxSunICvtTGHV8KxQ#D)d>M8NoCl;KTZep{Eu_jiUm}g>_i9sfom|+5H*#p}AWj+5A*AwimPLrU|_q$D{ -z9;?2JH(+%Z;v1_LVDm;*g$;dI6o`bH>RWx-uLkNHB_GIz2 -zh>7^9hq&-hh7)khdwZc1N=2@xvhHqq=BC~^AMW+{g)%Kakq(Hr-DbGy>LaOu=9Vi7 -z(+zRvp}gk@aT0jAlocYYS^^+1*lzQu`?nY-F@SPP31n@K>+@V2OX3T@Tt3*`s?N~& -zM+hMoV@!Z(H&T;?)PH1Ns(sb*yx}VM8gKe?hpQZ_ -zs(#?mE86HE8lF*sibLN#Zwi)gPMqiu{|zYw;wCg5bQ8pClicbQ_*UGoFv$ -z5TK^8yrMnw2AE#}rxS4TAQut^;s9`D9p4-pRvvf>U9>`8aVF^`?{rh0$ib;4Y-Q5N -zO7aiNmoj7vz#*WjmO}JM1$)?$=M;C15F&0kK*)gJ2*klT10q5{8nRJ*)sh|eP0soR -zlw#iyf;}!1v5q$VDT*F>*Ea;~9CP4{j>1<%cuB%4IYmThC>GSBK{>gYP~MXL^jtMS -zN=E@&3ZhgpMbbUsl(8qtr6k(`%d}D}w)i&C1VVAP33L^EWDJUDLR_QanhD!5Sf;>L -z{*Jmg3f@-ft`c|D_N1sM)jTOtvDxD=_^O14kraTs61c0VSQ$4 -zumznpX{kvs*_z1KJ+`*7^^2`hJRRa_4O>spn!(ovuJmJhpCsItX;+Fzxt%0+lFdmP -zE%~!0&XO@KRgN4vlH(0=blb(f#@Pwj;RA>YFg+`mc&wTvI67N~TFEJ?a%Nygf2`Z0h)yRu`vi#Mr -zhm#j(fxqNT>PORq$L2YF2e#Y<}>=ksk -zk#^9u5wlU51`p8ql3szHI-bq5hO>g&6$}uxa~S}b*9`z|n+5>7Of!v+_dx>;T_qR* -zI5+74!BL@UmiTso4Mg`vMxejnwp*cFA2tx(RTzNiZid|oUA!5I>tFF10O%Tw-5vT2 -zWTfugIOxVlRaY5h`E@xW`A{7%tcD;a(Zwj@p^MQy6J3lxLeRx%_p6JMC>zvi1ZSc$ -z^0|)LFp2^acU(poLcxNe$yhLiZTm2 -z0#lAgGUYg2sLRneV5Xen76U?BU~GcYqH6&9Y|fM;1{*r^`F(|+whD{!uexkBZN(IhyOs7%5!iNhoS6U$Fb?y&X5$QJ8P%sR2> -z#E=2o|H5f6oOVr41AovQyUROTSK8kXU4{1dV;#WY-L$`#PfwNDBCg#&58W+oe8+l# -zjXw3ytCTzfEt)wqSG0|bhuVSD^xrz}rcvxC|N>r7hn{HYPC -z`f2W7$rg5EaMc}WdAA>bPU|6mX|=Evjs7#h4ydbxbn>P}*@-ks)H7q`Id8%qSkhE1 -zOIVo^ySb!K5B!OzERpX>s<%gRC3*LvZ=STyof|3L>*PvAb5X+oOV)`*rgxw10Y;H~ -zXCNH>1$L_u&*bALy755p`Fgul5ZLTEELdkR%JF(H8bJTRfXNDo!> -zqyuLN5zRi5@KwnJoyclk)$T>2U;CJ?)gAA5)qIsh3D$7;L|~#GriON1mFc$x=ni0n -zrW$m?OcjyITimnYs%b>)@Z(IyryC~Y`y|f-FoD$v>7jw8ya6g70OU0M1fn$IKwYRv -zc$qmh=CDkfv^$0>Xu+yErw6hni-gO^_wLCp7y#uvj`Faf<20Fg9ncKL)9%=%WXJn1 -zRgX6Y+V1<^9+rT73#fR?t8yo=d$%Fd$nKwcQ<11QT$BkXA58$D=!R#3X8LY<8eA6T -zh}cr)2ZZ_KMu}~A^dTp;r1P|qv2jq`Ak*o-k|&aQdZr4jKm+_0sL^G55t6=@)by{V -zdbL969JeQP10N6esTYrOC1?B4)XI5Tk*^OTV$Sr^XW;mSjY!)!{KU0}@dGQ8?46HF -zaME4V9|g3SA8#-ocsK(YC{IlLBr^(ja;G%k|5Rt}XufWBI)zM5BILPjDU%E?(pn$s -z&6D}51byFxj5$99R#GiO)$Iya!lp`@Yf=sL?N%hDPXO9WTW5L%+xyzaIgYMES?zv0 -zJ{5MKW*jEpMY6pi!vC3fb>^L$!JY9P7~5Cz-4fpe!9E9aFI-Q;b{epo;Ccj;@u%#( -zXVN_*j?Fe{s43HITVZ5yv5EDJDq%(^!)e(_*DCr3&^LLWb@S|*W5FzAMcF0W64|zg -zG&7W8Aq{}7@{xAO`rK39j+UO$%b$%=`fTf9TisF$)>El7+S5{$Gdginf3~I@mD-&C -z@-)_@qe2_P7k%-fFJAP;i@tF5#Wx?`=zB5pUYNX(MsELf&X9*HdGq6I8r<#xSMs6O -ztlHHgr|z=wNBL|#0g$)=#5ywB%BO=@F&usGyAo+-Xz{voA= -zv^68Yme~XDUB3m!Y!3F$Qaxa}H -z2~^XV01NGGx~{4+ay2{lsE9=kc9L%?cC##U;>kP>o_YC1ZG4}}2fNlh5@;`^&8`-M -z;uZB*&LXHwLYkXhQhF2^<`%H#f5u3IO3|0I%nJsm`YP!kRW|{OXgCb6Z!#T4vlF?H -zM`XA1x^IpJa+ezH(9M$-G@2&rOwF2%gT9OK -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 -zt=o$x+sL;jpR77;xr%rBX11Dh*fB`KACO -zVbA1efo<0(#y0o?z`p1j&XKC{fwLXrdrCXefe{dyc&aE|Eb0?&&4}op`2fIC;1S20 -zXMY9E%HVGUbUFUYK$oK{W5Wvj7xGOxzD2Lg(YMHX^{FS*%(Ldu)j4AwafME0ENG~6 -zh5>?Z`AHUHWnZSEqMkjJ45l+bkg!^`RI@B$_;zI?@`S0kihYR8%GlR3fhUF)6}UAj -zUjzY?ce*i2O*#5J*_3mibxk>97gLUw-jpL&VL2;UpA(6ACVhavak$U;o|PcHhz0I> -z!KLSjAuUgQ8-I9{;Y&2tn6Btg-Oj7Y7k^;bT&;!~>fkI-5hz<%=`VT -z?C0S0Io8XuR~8>kHp#U@j@_Xwjb&S`$=deA_AEW?VR@4_#5ESkJPh9D;6e_5;@}Jp -z9^c^B4ZhpppbcKw;A(jW#xg0E5pm7NWGE)nFd2hM{Z9&iQt^{g_tdzpxGh!fD`!_7 -zI||sSTwBSyYSmGslj@w5<)j`5FLP3ilPa8)pRMj(1!t=?TZwsU%TrW?<2rb!whLK3eGMoJLT*Dfx-odz+T!?0Z`VqT633JDi8CiynaxLV-H*TQe{o -zDs<25Vyt1c^qo_%XH4ZcL{GfS+o@N02YVX8bQzczt_ye$FBIIEc|EZ``2m0Vyi{X7 -ze~djYFUnNaFZlNFzWr9#{Q7Ud&cyNSD*qRynEvhST>Oj3{tb$6vdjSgkFQ_pzsO!1 -z8EV(?KW;_ScAIoB^6Zb$o%s`hvdbeq6j^zF?jp4ZkiF26lEbQr*XtO8i*yOvW1n#;Lw>MMYP -zRSA&LcP$%MBr-F9(_f7kQ3 -z^s%eJ_*0#4KD;w$QTohLlx^P(&*)wuqCxZ;+VxP?0Yz=FPdq6?uZQwXq@v`*?Opm! -z+@aR=Ixtu1JgaHWx>Jt4eR>!%Q%N -z<|8P7-nF;#aP*@nq{}y?(9Xyxa{B -zJfTP)Op)u1^yGUDt1asIKsAL0G47(>J-b67lJP7wozuSUs={<;&Wv99*A^t;q5Z6} -z*>ZIt29|O&VYbjl*JEj1wJfe0kE@o)Rg0WL8&|E1tM(jKEn#uh;s}y#f~*-m_dHHSp=J>&S5Pxf59$NQ$eLZG -zM5wR1BWw1N!l+_P3l}VJSfmz}Rbv+q -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 -zGZocG78QhvgjmOcbo~kC#33k%cxFYqZv;`ZOB -zKS0G4N;P9P!fFXMz5qw(fv?`ru|v}Wd1DP-wF$>&f}iJtpQnMZ{>V{>tRq;}3E}Gs -z>2m^ghXnA^(FbqH-hO&9{@eu6UCy_!#%huT=MMk?oI$O?<}jc<=!9XaBUIYWVX4@* -zBeK!*Ff++>Dub){JViUqOd%IcJAmRkDrU+I?TMGhYBL -zskFF-PKm##|2ck>nUY1}+n!{1f7}R~z1!3lHp|Hr@@UDtbCjHRbNZ&@V(WVHY+JJn -z2HJT5GilESDx6pqrd^$|-0n8A7Ql$m$m#JveCv~dlM1s=ZbrL%FV1B}Es#k=&c#tz -z(o*AQR_Zz!d3L;a*PsIi>OwWG+D?u8f}^^$J#|H`fPD;QbFqp){0GDYnM~$f9sN3Y -z(w`5XsCXA__njxt3B&0>y|nfpu6S__RxOUC35=TNilWzr*hiaA=(NGM5zV#0)?Gg8FhDC2X<^bGc`UT=jxyv -z;R;6laMYdqZx49uV!H$*d3r&Vu3&)n#FX?s*!6QkPU>4WIDDqN?k{(+p~hJk%njJk -zu3%akPhftCo$VUSunT08_+MMW=agO!*!c1n<32CAp9!wI$R1$OMK3_(bH7Xb0qo6_24vC-_TVM$pbPW_BkF^ydeIBRzDbyutsM;~BVHH9phhE%Gi7zt`T&JHfBfo|P}wtGW~g6K$8) -zmn1vb9qsQmviOQ_+pXRSDi(UZ>f2hrm@-KMo$t@x5M`HKqEc>u*)BQ -ze&rC*pJkSW72aFAp$JB5{=22%MOaG&RaZ$BiaQm@C0EXMrt4+3){GW>9V_UAZU8O~ -zn9y(THm0w`g)EyG{gh4RVGDb*BvL#6pzU_iGo3R_LX -zi;ZQZ7wKV)C-S_iw9|P&$o=4+COpjan01n!eOn5;l?1X2$Co?v)v-sExvg76wXcwHWB{DV2{bMSZ*Ln$O5;u9EE?V{u7{ -zb%eMTHx~~)tvIi+A^-WkD?kJR&&-`o-!B040Q0X+ZPT9%8l=jE5ohaRSYR!>8W^&} -z#*4M7G?jtpQ4zE5t+HIOG3lak=M{2nvGs$u@@s~3cFLg^KkG+?O1?xu_>OF5P8koo -z2MfcCKl{i09xTC~7^&J}tQz_Kf|~x8Dy5(h&+%eBr;S>1=ov12X(#GWIlf*oPY@H! -zIBk~pWK!XvQ3-*GA;;m!EaxFLO$Lp)g`4{J(l;FXDx&^!+rfR=a7Q;Ghp|V#Ycv~( -zDh9MQ2zQ?v+X}d1$?}K{_TI=rcW>w^iO$qlcEsVNv%dww;2FVNgVzm*e6jy -zPWqK5k@*6daVE4a%6kcI8M#zH>`?+TfH5h;t_)vqxo^7@RQa6NG=}FI%dGb3d*&~s -zXLnWlUST`I^_WHOla3mPo02J^n(Y6k;B}p|A9p6)N-GpkK@T`5huSgm%Qg_SJyiM+ -zTUE;ZPbq55NVdLx_l`fo={?;KrbsPD(**|r#vC((NOn)Lg5?>a=n7{>m%L^ruWDoI`pK@UWEL4zkAx!@7`6MM<*_?vybQ!cdKSsk$kZ7;FFrJH -zHI0O$mUWIy<+V;+>6vS*H@lf%+jzc?iA?w1TyVHd3SlN>zZoa3hhHt2?zh-h6eJh` -zuwp`eTfR*UB1*`)n0VSKtSCBT$<4Q!Hp|G9_9LqRpY0zt*J9W89(B}OeczVXeY^Rx -zIg+1ELr&y541P}u10`}HD5X8} -z;&ghO!6nqJ+R@aB^%F-6n7z|w5p!1M`UossKjxH%wjA*`&dNQK;fT6mZoEygE088) -zkE)VY`YMY;mDEqQ$i2?e5)@cfllaRqca)cq#gQM+ -zy4pu+Ba~dM~V!8@Q_3 -zt!f(;{X&7ILo46r-1O8M3al#WvEJfE*dlV@4%?K4GUgI=n=Y|rXwgQ>de(t-!d~3( -zbqA;rsz0;6o5ORW`8=HLmc!wcReo3M)_2kRZvWrpjtis*(#o(w)t&`ralT;TH?K92 -z4iB~^$DFU5<6Dao%SMGCN+5n0u%-sO$!UuCNF%R6BpRBK{lu)T& -zLiDg+@Ovw|)t!=K#xn*-;6QG|>SV6rcUcw-np1qpy+1aseskC*iS?xhZ50r88=Mu8 -zzuPT{eEys*@g0UR-1jn(Y+9&D;Ttt7W;d1=`TB759LP0Z%zO9so5~T -zb~p6X#ykCi1+ymXke>~*GX8y08J>?Z>t8T;*F6;L%rI*1K!={jEqY!0_@cS_L4&0+ -z6?$hut+Ga2DQBWvUxkPG%3`HnvaEWtTsooTXrlv}PK6D-S}~?GxrWVQ8uQCm-Z~Yc -z6~9S8{NTln-HK^+JbW-z?iMK_r0$=Nj59Q=`iYjBIfmOFh -zJAI=b*bgp94VT3q%n5gR>H&vUG*PQPp4FV9B$Patxr$YMr$n!agl_W56xff2oY97s -zW1aWV+6}0b`Kr407y08k+i40fEge(mAvr>%dHE3pdZDryalj(q4rD}CGf28~P4sx; -zkTk?&;U$;l@Ez{W;QgPfeBm)$6-}X~*jalCO8H~#Ph9W8sQp;g1y&nR_8pM}A|xU; -zyWu>WL!^eM8kE$^UU+0}7~kVbKbVvA)Za|Pt~rp=l%{{SM^JaZ59PBcJ4amO2c{ZA -z^ZngpRd$IVyqeLGAvtEr5EIs^#LR}*37O$Y5Y!SO{Kr2ST)_~#;M^XI;IXsEB0_Y^ -zB_hLT*H?qKBBJy6F0y>wpix2fd9qnF`;ya7H_u-s=&g7>OjW$$PqaEsvF=BQ7i=f1 -zs(snIw)c%fDrC`d2T{ebPT4q3GYTy8Nrx_thx(;s(V7nLpOTsjRGsBB)Og)cL0x!{ -zm1m)`I*AIVKVxsHjx{7ErL0BgL2*KymW;yY#NiV;*MT!U(>Slc$^KBvsZ>m+W>_p85NoeQL?25(q=rU}G9#hBH -zSS1%cHZus9MIY>7pXu*4-$vqJY8kzw2h+0XA<}; -zZ@aJ~M=o$h&2b$ji)ugMPI6JAJO7gcnH-;!yA62~EVb9*XNY#>;W-K@GClSSs$t(OdQeD~t})2Ii21Tk-Ft4s^; -zGW_TVq5Z=kvb#}XKl{4f|nCiF>oKl%k(E}wJ{>kg>o?hH>F?u_5zP6!-=JR|xWVTx -z%pQ9>IEC)qUWG7i8JsoLrE?{2=WY}F@-YBi9$ns*+RHZenLpwS8*QpfFQBq -zgox{n@oR?_7UF?AsuOxmL}MD3lW>QJK-@-#z?7nXVZmV2YbmW5`zdq)50NmBX8%oZ -z=58NhI{JDM;VSBSIL=D=Svx6J^jRh8hv>5$u=U_oJV%`EMX+$0^@Y2|%;=S+<9UZInEuJUQJj`VxXtP+$pGUeFGb7&0 -zy;ZbnNB5Tg2ILgJIy%4NJ9>J%6Bp@3t&a7%r4*kQwua(B`f95a4e3VBj)l3L6krou -zQ85NRz4-~B_`F8PQ8p?l8A(+88F9OjpC5R1q*$7#_Nj9?(1Mg!^D+l0E)ut5#IRSKE-E -zmsu}4?MecwEl5++dF#o>ErmIsqksQ) -z5GJt&GoZNqCB(=Ea%=;4pq00mo&!Q26a--uQLPtMsSL5>an60_=pLN;v*xgN-v<;d_6Nuki9XP1KU -zb+HN*8RRh8QBkNAA>=S$Heha+Jp(3ch!T>~0*VZSNZQj#?rc!uyp_O9K}DXdjhJQ_ -zHZgSIk`_kNJbWh^iTZ}R?HF|k!zo8H7(q_`JB!2rh-dJPJ0OlfSI|9L9JPV%dl0uO -zmXWK@dj*?%9&)rY5r}A!4 -zq^*`PSe)>m3zGq)@B;z)7@kNWa<_EqS4vX>q(2P(o`JbE;&MSW;>!}U+zl%wyt(DE -zS+)5aAU7qS=<$p~0Rg~u;xs?tBvFqau$Ops;l3W@d*QwigL2_MnPLU<_*=tx?$J}z -zbLP=jBY);mU$cGcQBh-e>QPwp$qmR#jO7L-ClYf5ViIe)0RAxoTmZksX-)tjQI8Yg -zn0UnjuuAmh02n8tZ~$}?bJ+o^iHz(3`NSS$Pl*&p=tYxh0TFXQWea_cp -zBRfK*vlZpxh+nSr^+_={&Q-hSpJI`mYi+X?(XQ4_+J)8MtLM#Q#gN$62$sjVT!-o@ -zYA)=ngRO|Q|0~Z`JCpyfJU5Xcx9PE{_QyBAlLJX4_yRh{(|gfwVA(Rx{Y!x^qe3mq -zOVu6bjm*)k)gjM$4TuLKZah0u`#dbOwIpjJSCgp;iJhsbvhp;dW2Z85c4-4sDbNaa -z&FIt+Ga6jUg0#$jKH`*ai)v>`pVlUXo@*glC7L#JiM~d8Au!&Tx4IZ@+eJ+o#E_t_;v>cDNj;SDht-gDp?8fK(@;g6i8FTi;O -zP||SmoK?kophWtHCNxwfMv{<*768Rc4ilUpj(|8Fg^Ib6Nz!N|ASK#b;2BgbMFQq(srX!kAMymY`m7F@(O)s6I$n7xA*G0c@}4TJXpS*nboFs -zi#=4VoS`akF~R^5{fl*d1Tr#0h=aSJo6lhX^q(m8;{ym|`7A_hopL;yHK*1ptO4|E -zKleF*ERkZBjLGyXTjnLZj`w*ZYoQB7%?9Lmo+{KqJ-+NMvwHe0LF>xJm)G`cS4p8q -z^7K@+e<@6WE|sUJZ7lL=`uSU}iyK+88>ezT*?7taRqtE(Xa)Z$AS3c0Nu%FOGKJ%d -zsp6CyoqPp9Nc=@-FoiH*)RVk+TSrcmH;Yx!uSuHzFzMd~1=S|-B5v;cG{Vkz4&(X1 -z*NJkca-~ZqCZ2n;N-D~#2I*h$F4FQ)SJIUv9hLOW^AwEgL>n@h;{|AdRK#7V-{c_` -z5ff#a%DuF$i8GL{DsrSKhVyro`o@ave%EPQp3}cBsE`%@ws|av-^$bpqzUXw-rcAr -zAF~$PGWPj#Dp95g5me;FI`tJYNahd)JwbKS;L>6y6nGKhk5D%u$dIUHG!i$IEwIFb -z!mU`iCjCtu;%-<1M-e6S;~#-;>mR{&Hq5qZg%IG!9m2b_2=dB -zD_>L0G_OUhCkQHkua(^DF4?-&xs!>sgR9#cuGmt#6wBs8B&f93lkBtvh@r_>q$;<> -zcobv)tQN8;mMoL3!nIHd`!BJH8rH0wO)q@bGEzag#&KYzH41x0v~Q_lEk^1^nX} -zx%!_g@kWgG`}?Rn<6m~%KeDwum#YD(leP2ru;=%$9Y1TO)Znd%<-a%LX+yCA_ec`9 -zuHZsh`9{p*5bp?<4+jNx;EsaMq!xTwc>1q_>cD;W?p@d5&ae;nEd+lHI*#N<54-S( -zt-1PTcR?7p@4YD%-w=QRz7Vgdi$YF?KT9e&cVuiaB%bXRMF!^*UZ%_lJPxTY^cL=% -zA&r6apSr-0MdQrx9dqp|eJ6g0D*;+T&BQ91(njm-D!%`641WCNJb$*B+S)nAn}$u} -zBD9L>_ZG8I!ix6PJcR0^8VZ!QasML6q(4`u=@-4qh)kB8%iepfX;vpWVv4c&>P1^L -zPTbix2dP>+D!RmZd^Ol&MZ?FuZkT4TP5#Vgq!$~@8d3q5#H{jsFkCkxRrKBU3EIRD3#q*7CQfPHYR*6cka|f?8h|iR{Q2k -z6e8ungD4gXHlq9`QABxy9D*^FcIHR8NU5r%V -zd!uKMsn+vQcjw}VX4j)jiGbrTU*cA(X!QK1shwS>0go)n`iTiT=wC0>SVp7kcB+2` -zr#AO;TYu}+)9}vU>0#WL(34waAXGAyu6-F4R=n{QprG*VBHUA7lX94z(Y9mlI>j`E -zqcuF<;U2)-l*o8v`pY{ViQG1hMr&rpcuY1g!1EU122fQ?;2#)GaYdWn!L@K-2EQ6I -zmCX%>5-yC5uMP(RN_~uGIFSFA?bb44VQ$jwp<@mjlbQdP!JYg`XYY%RE2XGFK)aV-4&!%2k$@_)Qv1GE~P6QzTl~+ -zB^J(sUx|Su5?HZQrEt+3(chE7yw9Um)rLCeROJxlk%7zM2$hN#BH4=|H652&f+vdW -z`0x*NKWaJ`rK5MwZnDqePo4Mb>tpVX6!Z0x$nufO_;?CP5((>;KGu54euc^&^zdoD -z$+7vkc^A{#a*>@t!pFfu9W+{ozwG+bzG5F3%s~bCUmZgwEJj>BT|P~LX%1G -z2rOeVvKHAv$`#~vca(;moI)Yw;5y9dRVD&uClQ -zDRbrVJpIUwpF&PHIphmpmFe8?zIIE4(~_YRL6Ku(8DYG%CPlRdI+z@~?unC-@SvRIA@E5xTcl7r; -z<}y%REy*Jaq>`$koxV|7rKbtc3qu>Z2I3P@P0xhvEW$zpE;*~S6m#rcd8K~kc+Trr -z`M!TEH!2r?rD(#-SieDC|891*XQME~5VT^M_YTu;Veblubm_Y?TuK1w*DBR^9J?yX -zvKk94*)Sf%DIw6^uKd#)RJ)YZd{6MMUFnAJQ=-nhXq-dX@= -zMUl>M2u^v+hAoBjWT^3Ec_v9JMEgfYol3fcLx=YXKq5B!tE0td7bjUMow>yQipP=w -zq@lyen=gre8FdS`?e?3Q@(y -zEkBsAIzOUpakR5LvQ$EUw&SY^MZsP;EzwWGpJW9GP*FO6?F{03n~->J2o$-m@E?>x -z=U>{QTBQ~Jiq<%TwUwSHKhW0}$#Lap$Q=tJlkxwOuh3Y)lm#6o!&g(_s5mP3rNCct -zQxlw6(mnF3s2phW*6(~X-}UKnKTe4#7<=(57lv5AgM#l8sn>jdKZ2yA6# -z$(@p$;zb6__&O|Rv*Xtsv|E050%b(`aj>@h*i}os?-j#7af&EdPYR~ -z3PkG&FLM>vFQ3g2@9GlHR@`fm>DU_WV=`#pjMViB+`@5IP=8E22 -zF5WwzRy>uBeyJPH@2dzc!5;`^YDtts(VaE*#xtRb06v<5uaS= -zrMi6EU%rdlp`m5BJuKtLirS6X>EY1YPo2wKLy2K^F$O^^M#4-d#gTX%Zla(3Aiixe -zrYT)pxI>^uhi7ElSntXo%9V*n_+&VlwJ4iG(c-|3PvnT&jj~*s1d7mPjbGDh^??|X -zT)%h^>X5uI-FjaRZ?#cWx;NFvk{C8oajnG8X_2w4ZGSnai?pBxQ)>_b{&_&KXWsE! -zmU-y5$Zx;3r_l}OWm!kb!0f0OJbVoQ7III{gp*Y -z_jzxp_>UFZCEY)A?=#$5%}YUd#bin?WHdj<&4<^a*)w2GDtp}5YTmK5_=ASvSDY#= -zW)}X1$W=s6eVGKBiKZYr`S!OA%bQ=3=Fup?1%t&y7USe`^~2j@toGp;jmeTwS#+(f -zy5_3H{NEVS@I8r)wnD`vX6t2BF0z|vw}h)E)6g2KZaq8hF|eIMb7UrTPou|bp_ -zAd3EEYZO7&>;xwZcRY)-$K>0g0*)a1kz7s0SN+2*E5_$ -z8x{mr7@}P^wBEnGTKI -z%r1MY>^lsD+BJsj^sz{3KZ%vIYv}f8$`XUAA^AtIhj8UJ&NUb=nOYCWZr!QJ%D(!S -z2{%V0=;XBV;zCHKAT_FMP*TCYw&;J%-&HAFXw?cs| -z_(xHUCFytw=^~E=@0q;cQ}=5u!oun-m%zc%-^I5byqGvygSvF}WkbR7SWUEi8pe;H -zKp8oTa73K^G*rYl_gO;Dp#4FMGW{qVhjgS$7^5H5f_q}WyA(okrtJfgwXHOnSXwb#njOy2m)(u&#W~bX$@qa|-E5|aOcy8kXkCX>Tfold&>j-wW -zew;8XXTvpox7%NS5PI&7Y_@n?Zab888?C|S+-QO#;A0ovWG_0~8Mi=@kI#GFK=<7L -z{}W(xrR0O3r*szZNp<(gpeKF#TQzmt!@VrwVY8F*y1OB`G%$+Yu(veEg5Kix?*;)K -zE9bb`Q;tD;dFllV(CW#NgEe_h$}Bf})ZUz^bNofQUdapNzF-Dev2Qs{PSKqGc0hd? -zf09sYt*b}J%&g1os6o9pjh2>2Ciydi=%5Jt>kAGGBn`P8e6T_wV#uno^jSGkR#hL8 -zR?4?z=9*MuRndcU)vJj{ig&2DgUP8}sQ!6Ts=6s0SGtp0ryb;zN~1)A8c!XRZ)j=X -zHFU_T66bDtgR>)7B9crZf5EM2*BcGWMqyzHmp$#nnznDK$~|YdvpuZ%`-e9njlpB? -z#P?z&t&oXTOKn2DVI-GgRPfOLgFTJ_Ny|m_XNfS@eN`its>zVs`?*+`+0Np1;igp& -z^MIqHqAYtS3WH`Of`aepXV@9%>|X2QK>nz9QEqvA4%h9W!E5nHnzs+-v4+V!CK2em -zesa*mpt1C)e;|AiDi%L)d<@xNN}!8~p;P18XA)BcQY-q3IMQp|MPGCgdRCD;tTZ)h -zb1&2bjs$~aXD$k(81aP1DE^E441*QRh58gxE;dDg2u+(=TDta=F7{T+tmQ>M -z*tia)t!XypjvK-~+eD`7E7d!n;@2~>S^F~ur-n$HQgvrDi}GXq>O`!iTrrV6Jg4uv -zplA^%@y@X_IdI)pc*9tLhNC!e;7J6hEbPCVqBDQVD12!>lZuw=@l}^IwF!E9jfZ32 -ziRMy#dAE4x(@v!(wxSIrfNv#Fz*A*Z{c_!#qRQYOnw)h;A-AMALPk;OCn-uHbFy!rU~ -z7?s(qwQuJWGHYslqq@49f^F0hc~TFl&E`vQrxZHgFbzBOcr|%$j8S7K$7*MiHJ4Wq -zVJ*JtvFkq*2X7=B3u)V=H^JB?F#HKJ=XMC{1Gx__VO){H-M7t{uusURSrANJr}%0c -z`I1719GWP87)O#-UuUl_Bz+sVRp-hrs==K4;8sSgpjWaWT`j6n2B~dZr?tyrWYpy- -zWd235C7imDp3}}H9^w6aOSA=5{nru+5I$AaVpmXs)kpoHPTwVA)J$cb``7ZK`7sr{ -z+(u~D_X^+h1x%D4zOn*`dmtT4w`#!~zB-zxO7nw(5s!f|%8wzDQ-7Z5loRb49e*nT -z(Q=#dN;uZ??J<(Q_*bQ?g4S&mC=19ah5RdBhN-Qo -zWsSkTZqY4v?;f(~*7DEwghgos&+Cm8q1S>+jddwvM#~r2vqKyVI_OfXa4^AHeTG>8 -z{gBN(*IaAoh==EMyHICs3aa&4CKvF01@dn+ez#}EVI%6Mi;X4L;Ow_Lc -zbIDBdKQ$X|{ku{ShE9XyVFrXX1RAk>jDsS`rCjGbRqdU1m#6uZw@akPe{{_|5=!Q( -zjtA(Oax5r&2!1gjZf3kkuX~z5?ky(a0yCkCE=qIQy_l~v)OZwAR9d~Z+w@JQZ(Z@x -zyb^sv+;wZHdakTQI-i1v8}VL|+6efoc>|srTS|}iu1N6ITNv5$w7tDW?&sy*8jN={ -zFcv&MUnUEz7S3^?3x||M#A#JcGeU#U!)DpQ)G)I;5~tmt6>y9!oUI2DSL=K{={>)e -zj>Y2^rfYt7c -z-$_(XGgR}hH@)!6{4&n_=t6}Bx|hm#9Joj^=^YjN?QryM$cLAo>FKot`5bP#G7j>x!-aUS{l^Vf%?)hD_;jG|Yv)W^~5C)}T1$x-}M8hb7~$v%JE -zmhEj-{(LPtw3$i}O>Ixn_|~DyQxusDi#sU_sCcEo`AO71UTKWC+H%IKI4Z)5gk_Qv -zkSjO*ctw=!>s7UNVfRmCCwbM=@OS96wW%YQsUec@#XD??>a5n!E+Xt%$+3=u%tA#$ -zrq5p>T9t^^+DiGd*AA^W-rvh!RoJvOA3|Qe{e(Z=Mexk2KxJ-kwR*&DJCTUu+iTsc -z_p&`+z(U#qbh9q)na1z*D}O&e&%3P>H@IA>-n@N+OFCNzYN$iqbF1RMl&|8CmZN_=bMJ?)nZ|lE}nB=Rx$urfG5KI-qFr+8d}Ap -zsJ2kC2j;yRD4jPZLKAxn9LmOfQw{ZlZ|AL?;0WLng9(meQLJeE^=$&(xQVQT9W-t6J6>ny`_Q); -z&5k2TJIS=gI0Nhj$I64tuasDX9`eeUb-S$Oh0BV|a1_#0b4tm5Yx^`H6fXN(s=)dX -zf%vNNTVp?8=R;v}-bYO;@|{+TKx17>Z+8o=f*u^+B75T;Gh7Mj#@D9E%1nHRT=8|) -zg0!RGtzCdu4mw-g&NI#%wK^qn^m7H7Nt0Qb9hssr31@<2lt>}{u@mtXz*HmaU+q1h -zFgDMWc<6-V2%1xaUcm((qQqj -z=)Kk+C1_+(B&B|n>Bbw!TpJQo0o_*WJ8_+XWazmvo|U85#`YjhkST=1KBsKae!T7k -z%cXknH#}AGV5qTEAZ4;rKDWMfS@=q)=oCo8u%mDZ#uurUPv;0=SB|jr^D2#@shTMg -zg)7HPjUeHM>oD5NZyH?;sk1?SQ6a2e8o113A94J{UW~D9mPJQ4-HtJ!QLk`PL0S0t -zbuoT4n?|0hl#znI*b*z(L}umv*kRSaGb{=7bXC_8{^Ofy>m2NmZk -ziTi5Dq&^4q?M05Wf{VDX1fRvfC7l7|^=&AkNbnJ&mQCmD17~YT_4pkTBU_eG=h0n` -z+@*N(iO>=q=X4MG1&QLVSZap?D0sP0DBP%5Q*AsKu9VU&!Hk4kPmL%eBRgAVcl0WpKRH&ki59R-vxV{E`yJrh -zoLrXL#nz={+<*gh%~xN)=gvXp)Ot)%Xuhf?d?<042|gGpAIyaitu_}|r&oQ}i}Gua -z-Z;|NjP6F}qGx_yb-}2Qnx?6@q+SBy@402IXub>gi0hTtug7!K^F9sQdi^C)kH+Uz -zUUMzd%mJc|n;&2#66pnN+!xESd3LY?!m6CoMTS;ag7os?O?4cM&bxTdMng)HQDmlB -z5)jgrEy<>|xI1Oo%%xuAkWXW2Z8GR@ohd=%?0SgyA;~ -z=m3857v}6*(0;CZ#DEpEyjs1oos@gtq-7~bh3zy`O`F}Bb{vKG%%Z{88eRPbw4I>i -zs&Ix~X^~wjnwTk-Cu;&uQiGXmf&i^nTN`XUt>k- -z_5l$8M)td-qsAGq_wh-mp{nU%aK0KKJ` -zi_*Qj_e%X^y%?a@Y+!%WZJSwPvo+h|U8E-fu9@N6lt9VaSc`5`wMt$vwy2KtdyKO{ -zP4(?+_qfknyj@04?7v)p0&^#j7WtI?fav30SJ~YNmV8E)_ckqjC=DHBi$NUfb6-~} -zoDiN1NM@!_&j3NGThfk6u$zU_swP9?MRwv*rO#(^CFEh1-5oaIi?;gJ4p9cu2LWD-%TUgss_L8zJA_n -z{YGe;i1^m>6a9WQj(n8E<3c^i;K%*5rkhTon-WE9fe=cm)6x@PMbMSB1Ac2Oh(1xg -zY-`k$p=)9;3a7+H3SVH6+}zElY3nEkqj-jDTntf;Cx*D54t%Y>2|&Uzs#wZYI}_Sk -zIJJ5b|0|rEwspWFGeJl+Ys@{B=oJTj#*j)T#&x)nj35;jN?oF0QIq4_8!RjGRE>(< -znA=GpZi{2j!Y|S!4uyv8%Qa~s4#hh_HZd*7l~O$Z#^aRVl?dw@HKmh=(7@ta&Nf|DnSNh%%-vk -zEhbVxK|JO2FvoG8{^0DYTqOa$8`ja`87IIGLJ+?9V}Neo7~8O3SiNVI@JWFZKghOo -zoH-7i0d5_Vt9!BBi7&FazT8bDe~W@hoYyP{)xxD7sm$d}vX>W6oV7&VU!EIt8?P2O -zZ{?uu*9$q8Y>XmtW+PbiK6sTRV5^i}Ej*j4kOCy=x!UEo0%TPo!CQvdIfhv`Y`&hRkNn*#Db9uN)DEpgl00uI{5QPnwbL)EbF=YlvlUsYv*Q@H& -z*QfGim&eP!&X3*w^qw6D-A;E-wKeT|piVA8Es&L+e}Am0jc0z^z3uWVM1A4`(lk*I -z3-Eyr4zDKZ$GEIG4%H8D%YoOdNtR=Aua#sGWRTVM^NBg}?E%{vr?=gsvt6t8wq4k3 -z<;wcd#(MEu=i~b8>ea=8oWdK1!0~cVpH*tZ$I5Xu-S#`9My00?@QLvIWVDaUO((JK -z)?jT-;&rIHuHKJ9lb#RRd6nDj&LDoO4%BmHj$V&8@7K>V&-C73h7L{`kE>5Qb0unjA4I&t#$H2hPTUNT=Q!P+9-=JA -zcHS>8t}hFC9aS%Oo~d!x`gVP^G<^DeT-0uNb$Lj)-t{=Y+9ms!>=zpx&}w6^zK~(N -z{119Sg}*M=bl*DR+b=%k@BZ!QpT3(?Ez{6{Z0$O)`rC(rddjvTeX&9SYj{j2?$)6w -zX}>>Qd=TdT-OH=1yPMZn7yBd6qMKEbK4#=MH*fEL{QQAQTf2t#!`LD&Xmk<(QP!kt -zWBq<<)MLXRpKfHL58v5ijhF8lKCbIeYr8`iYs9P8bwGD>=<4J&PHmN?fa4D^$@%eF -z9!y8Xyh16eRTvGw(4KUaHcU~+-gr!o)!iyp$@?gKck|tYUuEI$>j&SB5NeGR^G4hL -z{=4PlrXR7YYMsR4HKz6886~6jJLJ!YFN>c`S*~*xt_!roT&HUji}mLZBE+ZlE}{Pq -zctXKNP-p^zTYa!DAO2JM;pF(^d5?FZ=sH>m)Zi+^ -zbpszS9=e>zxAzMMWiGB&BkfdSyrHk!I!{@zJa~*|r$p){Xq1yN!Gw!ChN|a(6b_6= -zC`FXjD#~yO=ybHutiYjUt^}rIBV+w@TXTuS?^Pwec&=BWdH>jF#JUZ0X{SnXXC24I -zdOFtA6VP9TF5OYBv)7%dB&f~!qfz&g5X;rwtJfbqa9vhT^PB(Ak=qttZ5V0xmKBNL -zuo{ctaBXBnM(4VzTe((6wf=(PNBT6{u7#vE6m87O_4KEm{#i-%kkRu`%!`pIKXU03 -zQE8(@zE+Vgk$nBmOU(`LW@{ZIe= -zQN+JGe9mS67aA9nRERcRkk>N03E-hK1;x(M}8@i%`yJCPKgLq(4XkpCZwX!DSV -zM7c1Ap3~ob{z-OjANqR;^Ay1YCJ4dq2;l6sQ$jg^b<~eOL~bk^tI -zCb&lIv+tV;?uFZKi4|89lg^&Ry}mUcPCV^axLb^XFWvfFFV_CkV+{135H9%n58wWH -zZD0GNsMMOY!QaDldw2c4v4wTN#Q*K}&vpG%{4-orzy1AB|Lyf}-yN}_7arz~6&H`7 -zx$*RR8>XK8y=v~76El}_DkEWWYy);wyVoQM>EBcL^HF_qVZ-!_0CW0xv}(uh -zn0_SrBmR`tG9iKJ9gU}$>zhCSsS!1)?RVc04iM#rBFY6lDOosaN=e^nC_}`jbHy@$* -zdg&Z1Qr*pqSQf;NeHIsNWg-Ro34OIJE!PA(V_C1a*X!XI61`KYEp$FW%aFz>?<@(l -z&3gNCO-w|?9O0<(y;+loq@#?;xxU`ITB0s3aW?n)+r84Ay~Iy{_;(rp(Ng9*%4D?p -z`(J+h-Dlii|5G>`!C&=ZX^3;{DC(d255g3cD1p2o2^WWA_3?H^kd-VX+k$TWlk*j< -ze<{*GcIDg+JHDMUs*-tJSOSrEXl0j5w;K;xPrC;U?+;Q#mMg+|CYa_3%`5!jjfXS=Ffk7X4oD}S%7$UTn3Lc -z?D(q(J`2o<>Hqc*KR@`wn={kzFI<}TL+`zL?9IRXmw*0(TOaXQzcLVK554fr5{|BX -z`QR&GJ!om^!bfilCjO}P84R79Ume;>pJ9dB>tW^v=d8ln#gBOD71Sje(Rla%rWgPH -z#l>URU~#Z>6NrQ`0n$ER*gs=I3iF>Ju1kbqU(i)mj=UNw0w8uU)pdgQrdQ -z{^CPL5ap-X%%gZVrQoz%f?&qXXjr^0&Bbc|!-wz2DF>HR1?1+r@VLL5c|mHO0!R-| -zkpD<(+G912f$h&b`D?4`kGZg(<|(Wjt6biB(;(W+ojOnRpoJ)d`+Oq6@I=oRtA|8P -zp6X$QYbsgW-d4`i=%4uX@Aqq$zs$p>eJ9C_5A(q)9oqK6&CXZuE?kgpj{Ufi -zXYSs}>mS}aYFxU27G9>c2v1znl3+!jWxnK(?nGcy-OXOszy~I7Rln3cyTMB|n(XoG -zKh6xB(F?dV_Db69&*jM?l~mo|yY!{^X13gBCuK!adm~}uxGdI#r1TLvxa2+byLQ{{ -zzk%5>TLIdtLZCBtU|Y8#zXl}msm1w&vzZzlDUsVe$UZ}~AN`P);x^jYll9h_Zk%La -zxC~vH+p@{p(C%qi>z$GFy~=cjG*`*pUe+ecW*1~C&1_PqZ6mOJRjtXUZW0l>g*;gA -zTxFYdw8ry7aN?pu^v2cUb`dLYP7F_sh2y&UM=;s)QyP(PM5xU1ePU+YN&&6X}&=^H(;u@HgSUW9T -zbm9X0Jt`WHPpRn80;z@Qj+O<)U90?C+k9MfJG(o4S|?55)31+CDOXLC%L}t8L-IVyH@J1vIqKJe6V+;CI0LpaC*1ARxhi9gr8N*hrcEw5p8us -zD`=gY+&Y8uHar}lmLk5o9uIJ!_F*_QH5PDj1ho-SCXO?8CaQ}2RW9BgsXEFf%>V-& -z{=6e9BFJ%MWW75xbz-fu(yjvQP}~U9@w|_Lh>hBr4s>yF>o(SS^zwojeY1EIo<#x_ -zu;=i{&Biiabo6CNq3GOIfUJK@L{IwiBV4tNN#>G2E!yI^xVY6)xf36ciEGleJflpT -zW`XcX{4LUZs&5)nZuLp=QIcl1eaaSBkY>-FTSa|B8;R7Y6WS^iVRv+~UxvCfH>s-g -zb7C%$;2uY22jhh8{rxQgwfZ;*;%E%rj3xIHfI?<~ZS}gO>u*79#R7X2Qq?4S^p2_G -z@OM$h;GS? -zgWk%rBu=hhEzgC4X@d4Aj*$m5gM-BjctV`gsZj>fUz`b%cHmXz;sv2f6T4N5H*=FXj%fY#|X*KeBZH^+2186#1)#C2P>6+5XGr=x2Gb%IzQu_^>iQt{@^@~>oZ -z6iOeFt2u$t!^!O0Sd>Rdk?aPA0Ds;dfgvg)sI$E06MLf;YGiNu|I1;c8h9XB)_{PxY*p$U7Yn$F7~<9ei3K2n -zdY6~cNR}SpVN`gULgpeoGKSfl);Wpjj>9gr3}iq~L*ws%(z}1vvlX<*aDj2vr*_Ez -zBy|?a*EctBxj*1Cf$|~nnNc!ZzMvKz*{eY;w?~MMY_cxy+GT|j-tzZz7-wZ}quZJr -z8ZN<7$f2bnV^P<#yn1igjXVK)ypFui7KkK-ncFbhweNa -zyPOMGqHrjH+oCGOf_yPrc5){j&|5SFbIF;&iwlB!YQMjW7Z^>LMlQ=@+unNF*)V@S -zk~_veX&E~dqFUau;_CIy)e%mwh>_A|HK<6|mmT-ET-XY_FA~kPJEYa~pKg}5N-j3X -zbxyMjc?T9u77`?~j@lyz6p^u69C0Ud0>!}*Y9RUtrZ_^Tf^@aq=*lq;+bnCg -zMs=cCW^-P-Lfs{~*y?&==|f>uT_54;-BJwC-br5G&3vrYHhA( -zQ7HOqzGw#{+q)O?(J%ha+`qfNyZ*ab-qGR!HKTJR23mFXz0I+|yZ-(mci$8-A7jbI -z!6IH?1in7u%*`mBHZQ`?#@>JZ;`cTlhi@%S#H*!Ovq_3YwZ8brfB4-m|NKkvzkm9t -zfBBbx{^?(TnFYyFl(iK_g<^C>5WGa$qd7>Nx;_+~?j-C#T%V4==nk}Jn5Jo+nGH`P -zuygv)oyq_Dhd=!CfBxm4fA^pz@?roYow+ -zDo384%df1;bVhDZu*@LVQLWgA3#4>LxWA37}hwgeMG#?rB&SVeI?_cuO$+@ -zLy$0^(gCkud>CcJ92DV>_ShK;VW5Rx88fMyopr33W=5Y`+ohTl)G>%e4jt161h|0x -z&OK$k2$$nEz8t^br5)z7ALh~yb2(b@Y0BnMIA*u?t39aDD5(qF^XekF{#uV(jUV&X -z9?~z|*MGuL)A#is^>wMhKgd4iFR*x3E+UyBZd!k>NA-o2AEt$rU-5Blc)2zFdQV#Y -zBfrg0@h^@1YJAj}WYEV-mpHHD8~fZpAR_YzGIM|W%B#8jc>CJUo;6pi-YPVtsYJX~ -z|8h+qd6Z -z$@vkfo?B&pHI^p0vxeY7AqzX%<^vPDnBT!A=&H%(!nGgajhjti6*ft)XwNRxst5>P -zLRWsSq{GdIq?*w+I|UEs?S7PTU|amnSHhzxUJxus&}3~9mh{)b#bY(tt9NLp*>(Lz -zzwf^J^KSwXRzW7r-&iT!5abMpfBpTw)e(-DUF=DXjf} -zW80?MO_)DU=PtChFrE#XFXr>F`prG@^Zd1I9C=>*xr`gl+FOrLbMnxGaLrOh*kVDL -zyMMMM(?vLV!RadL6$(ibKy{)F>wj}ExHCxE*^z2@dsu=FTVc2#|Fu!!B>Ojn7XAN}Iu -z^`b6=<;io9GY~iT3%~KyleR7uI%Xd%av_a0M$M0qa3S07@F)x$%E6me<95b&Q*u%0 -zIuzw*X~zgM)GHL}%x5S}1}K7O9b_k(wnlyCk)=#)Da$^6ZC;X4>Rpgam#;Hl&h}0% -z${pzWDAT*;U#-Z2;57%FDFfB4&@5p73)6Vrm -zKM{0`LrGw7iD+>FVe)cwWKH>Z;_aJPE9Qu$@jW>my`sq^DcNRvK70Rbs%`yO+ScvD -z&s$Z~j|-H7ACZ8(;&P~kABiN*iu?6{{!4+iw!*^V`R^M=Qb-{;*mg?z)A@DE`Jg(!387d?=uak23~Pt-54j#nR*_U{(6^k7 -zhZ2z7y*{RaQz7_6Epss@RtyTkN1QB*5cEaDlla;e7wid%`g!zA&eOejBiI+V#fEi{ -zN{Bc@vi)O6x{0b;Oz&9-py}s+<{=qF&p~DFLtIoGxpd(sR#BLdJh{sNJXy|_v33o>F -zxX1rK*P9OA@uSk6BUq3Mif}qg?M9=`DaKP@?L?l-1_wgB<2R7UoC*IymAO-KypN%% -zQ`m)`u8A-FOu>(#bSb-jPq$j%uUfMwGpKbvarU=jD@L>`w%ZPiW0#N*?C?i)p!{WL -z8nQ8P0<}NlgjRtzub-CDnI48?979mjA3-8NweFk~-h0}C)=b`?H9rvxO#3<>mJ|co -z^RVf~Xj=(gr1TPYtlcglnMsg>kK^=}*liUH*F_5%vIdFl{9!|)Ot|Oa1}7Wb-~>@= -zl8%=r2S)HHqphKZCl+n;&J*apNPF%h5^!u_`J152oug8JIhwh)#fVSr^D>mh6ZK#& -z<9C=IoUxw>2Qs18+^vZ6~YzwCM%*q}c)DshW8fu@I$h}c~+UDDNnfV2_-^@r|G6N@u-+`$& -z7# -znGrKGTlOO(Wo(v=4Uw7YF)=pwy(aR8#C~cv>?cOTevF>?GXr2hg8Tb1xZe*@em?;B -z{Q%Ra!%iUh9CSktj%7CJ~zu?et%7X~%S}o#sZ@2>dT~QY+F% -zS!Jn{gmkbwddw><=(+(dRkbWsTTCz_vl>v2VxVk)vWsc&nZ8?JcWxZmb#LE=Ui+~W -z_i~lb5t3-$;-#F`%_s)ab)v~ku(%yM10u>(nsIoOdpH6kSmtbtrj{NF=9*vJuey7> -zhtZ|HYhtZW1NZT&JMHBWldpHe!mzgLoSftd+jS@eprf%2##9ySdpTwbeqxOiz# -zTt|jjAh{*ynI*s@&zM~C$HglS33tIjwbxv%97(S)K76{EuiY}4&+ALaY`kn~&l%#t -zvF6$1$hsXc&D;>5$h(8lXZ(cJ`~n-C*r`= -zr#knnJi{Mu#z=}T-#U{G2M*>zQkMwkt6qzft)ySJTA7boV -zTvQ1o+x&nT1`NEkdwz?S{F4hZ_k;i(`7UR_FMBeVgvZFYd1Rgo9?yf|&cq6s&t>8r -zJqR@QzS8--FMCdxRO}+4Kj4|M!*wpFXYSV{^5pQcMd7sUyPaJ$F*laPcJJj~c;m6( -zcTO1xUf?64^@&e-K7qkQyuMiA&au~cP7A#cd0m+L;t(}YUCE1+TYj^dn|Xfc$mu)} -z0eKg+PusBnd~^gp-{eI%^{60t{@{`SdhOdB9)JXPYabuP`MZap(|p0Fe(-}A?7ia4 -zn?3iD&+ni8yg+edr~3Tvqo{E1aGwi?vHN`ixcAQZWr5;c^9Qi1cht{*nYiuekDK>~ -zdDJ>iLIHEW7zYNH)WSln0G88yBj(|Qg9z^2t#ZI8qiDl?j?>t~T!Q*Y#M10%!HMHi -z`Y>Fv#7}+j;*cz6p^SrY?fh4>6%-cAf=_PUtuvJUX`KBN({+s7at{VXm`K(p;JiQK+N3VIG}Ye4Epcna8h| -zrQax;wR}Mz+d8&dy@&Sr{o*KjPeWu&SN;0MzqC!R_2$LDqAxpp;NT1Cc}BN2X`Hn^ -zL~t$a@xXnhp0+o0NP!)P{tGuu<&>sx~J1gOfu -z-A&&IcsRHSaTE?EtWwz=sr{JG;xiwFQvz3p&u#gP@gMgRrEXNx1*EN2jwU0ss*b0B -z(pDMufalD!nEyTgCwuPwG>bWm!ne`eALS2G949}%xp~4Y=C@a`-rz|4{>gnB^U<=M -zwb8`ceNF4BgUd2fo4Hi6T9xU(5M?X!Do&W;!+H-2uwNQPv+bX&@_zqG6DlnWgnn1; -z{eIKpqbdl9h;4h%-E>wB-5+Q2UXd7DiF|)o2Ep4aQH83!&BC|w3SY$6B2W0I?njZm -z7Ri_svW3iGR#*!Xhg5n@E=Yle!Ln2(QHt;zmwpy;Aw;b1MBqck)yIGJ5@^ -zkmB{HmHSfPTnqnBS?T|Z>iun-5xuOW+_zQRm}aY2wE=RibyTVihBk_a-lo^#^{f1c -zX2XNNlvm-Kt2cg5t5A<;H=dg6pJ%rFT5p6&Yf*?s82p-V$zqE2)_rRHwN*dgB6fd~ -z>@Mzxzaz$){;IUUGw#2WQ9oKgPu#WjpG@RZhWyS)?y0NX`1OoMb|bp5(3{uEDopw7 -zAh^lHsEEX?C~iy~UK4fJ{stlMZbd^&m!@f^vbVH(H(ka((pIe?qXDO=wuH+>N#xkH -z136AoriKNS#=msj8rt_}^jqaW@bc9}xH^_5CbgPtg@}Gww;OsA$$*jxANYvAif)At -zaf+nkQT%?z(*91yGhvritta=FDK0KG!NIO+w9Zzya!+5m*%2PuAST?Fx9x^0)bCu! -zL~*~*T2Z1;Wx3jxOk^z)S)^83?LLtiX*T;znER3#u2DftWI|}lkf6%i(R;UM*fWj} -zy6qLU^Ls;9EEf{mA}U)*_$)7;<;AnSc$OEZ3oGrfXrqzooh=Nd^_nBaXG3Q* -zo~6gL^zhPyPi20V7|#;pSzNnbomfoCc3ECv30q`*`L -z+&s&GXBqG;1OCcnz -zuTn;g`TTOu=a*AHzwG(^a?0nINBI15%;%TK`TX(}pI@Hg^U17<&qtqAd3lb{{X1o) -z|0}95dp^G$@%iP9&o58#xgRUkq`t^$jO$)d>^H@zLjsad@tncgQBWlyz${q}Ss!H?OQhv6S -z|BG45iw^e-=WqY+neLzI{=Y8We@lH9Q~Y~f%4t8ISK*uM -zmoJkaUcHLmycJ3Og#CElyuP~nk$~GzG0y&W&3N9oB@dv)J6c_NaIEyb+z?BcOmXA+ -zuq{p2maE%ppGum~&fw3o-LwT-WzpX@i}+*T71G24ZPp?BjcOtnbs~UwVdnn -z6wfAucKq~p{r)7deTqjmvqxS`N`s!_2~k|mo{^0X&i(QyaAQylhFoX2iy3uH*YJrR -zTel&7D63lE`tIg`k>{dST-4UGYQx3mHKSR$6S9NZAjh(`o?>pQ+y*7id=YV>?%a6} -z^q^41tI@hZd -zOZwi_(L1}kAHVzR(n+w458@Tx?#{L*{d!N!LOcd^LzGScO7SsW>!uc^$&pO--gX^y -z?;j8Y5TAYB8PPU_u`ST#$F4=o2bVw1WBp@PL1JYqU7Jw*xNx`52-(Uy$6;E9Dj`I_ -zh;M8sN4iv`f$7ZXtpfKNkECDMk1$2=?p<6z3hms;+H>M@vygMeepCrW{5~@6=kA@G2{-h -z$-=KGtHSQ^i5E|)j?f8p=@Aoq`%51*`~2(ZTM3!h@|!;|T)Rp% -zjw2*E8wk=5x@>4pWbT}~a_M&wZv!iRmkh3!UaOj#TyYr6==JrrxVj?SEBWyWO|DmO -z-n_bElj{#MA}vw(El^{LPOWuE)2;1KUTQcHx&TNE9oFs?Npy#ADy`fRZcR%{R>9Wx -zU!8ggoR4lkBXs}SqbE|vp&%rC@Cr{k+qJ-U6UC*E8u;k2yoZk-_DI|#GHd?y{<}(7 -zZT0AlTOJxDHuI7_!N{p7D%(Kw{b^kK+0S~A_wQmoZNoPe;a}&Ow|xA#k8v%iq_6YX -zFMY_#=BF1HRKJTvKp;GL`@`$kS6A0>Zb+tGy?l9dx;g4soyyDWAFtp3`0CA%*ROAW -zczyHaQ(0~#t%?*&{)OCfhKerM_Ep#Nu2~l!Nh`%f%Y4Az$5NLcvo5a1m&n-j6A)qg -zk&i$Bf~On}Pff}}9yR=M@#Xa5%fpMIy+4ZTV=t)bug@NU_8qrPucaTpt#K&R@!|T1 -zSMm-6ERXJ@;$&Ggx(J}m=NRK(ZEyD}#JG7aUWYft0MS+S!`0iT^y=Qc{_)3af*9_( -z3@}`Od4_GgQkmp~9f=pjy*n1+(ul&e_M|PmSyM-hyNH?tdgsy*&Wr!;=cgO%F(ZjT -zWwlHQMPgxST|yjIN0eF)RxrWIFCEw{j{LZR@$Mh%P~Uxw)%L~8bFPekX=L%_13rF# -zc*v)nU#M#W-5+IMJjJ*NI~1F!xqhlGXC6DyVNXO$Pd2h$TYI40$KEJ%Q2VpgOo7p)ta|>toy#3Pi_M_+7Kns~gScJFmzxUC*i|^ZaQ@s7Chg9nBD?h=##(4YP-}Y3bbt0Q6TYvGBz9;J^ -zS0yhMmjG4^J>Ae9N6~OL$(4$ounmpJMEhko$1)y@-FW -z?qu$V`uGG7m_y8;+nSHw`@O1AC;vywW}$ii#n1ZCHpNF58*{gR`3fxz`lYKfH*$W4 -zb<$+DZqw|=FJ-ivnLFW2`S$gjH*bEpc_ZKa@ahT8o!2klynI9E&cBiHR88+r6>-q} -z`PdsVv_|{Ysb6pSZa&=>XEe(?Yuy3Hqhyjkmf;Sngc;uGU1>hGqLw%^&mKcJTnD~S -zEJ#RNBT2lZWUAv&vZHt6-lIXT@#gVTzZ_SBjPN0PV(Gkn^*#iL>=?#yl_b;4RKtwv783SXIGgn -z%4n>#0}t#;{oT^aLrv_5$9UZ -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 -z{lpQi{{{WBBPURhfj94w*b2l6pP3P -zM_x=@>hdL>nL^klmfm@=s>qlWmPXoACLAvEP>AqHVBHr+c{^{}JwO9yDobz%Q5juFSxf(-Wsb;U9L0n3lXsEK5i;j@r9~3E(n>D7A0=^8>vIaY%LV~Bw;49Z -zB}ws+G_MGXHVn|(8t6ers`8d})+EGL@C(O%w27WYmPQwVRUK`y1`FXXw&qbM2#(zH^%g%)=lX(-A}>SU67e2oZnq5gK$) -zMc56iLS}8rp+T0L77D^lz_gIZ6G|r=IPg8P6=-A-7Ndx<-P(ils&G6Mk`(}<=B?+v -z;lu!vSD{nssJw;R5#EQG(OQ|Y0hqFHL&hXyRq0>_nT=p<=PXE-H+MM5qjd~kq901< -z`|sl^j2`TA4iR;%Cn;52FLxc?X^~XKO3J-7`gyTjSnq@&aj -zqRS+3Nd|WM -z#)br8JbN-@BLXgkntcQwLz#fy1o#&+gw_iRj{ueRX<&jtJhE|tG9s;eoLOQ3S^5+W -zj^V_l;zv$Br`{#uWMxfBdTSdz;5Q>RRY;^?)u7x45iQ}vGo{K&*!p>jJ->D3<9;OB -z2^|$-9|dlq$rYI~Rc|}M*}{MZSyGN399I$_%ev6zI82At%3YYh)*Wn80JpmLfOBTa -zF6)!a1fCA~-pBSlo4W<6lHBnbP0hfpZh}|?vwmuw2#h3$8t@uBv#(mD5s~c5Vf3=# -zLCXkhvp3G2PUgCW#5N&?WUq<_C+6_dOm{vxBfb^I&JzeJ|Gddyo|R4ySgCK7I4m?9 -z=pC$yTsO8;okfYFc4dw1GqThUfQ*3XhI9$gILP0jaSj+F#lxjqdb|>3E>yH7LP?yQ -zi%4Zh+J|jRA{E|dhcY<71=2sFZ#|a~xu$TY>&jsNh6h}c~`Yb -zVg~V_AP<7%BN1s!6a)-m6*i}7=n4)v(!h=d2;lUO3&_aA76>OU+X^z(**zqkX~*GC -za=BugT%iwQ2xG#kQ*K2<=EyBUnlx)c>MUEFL(%05A(p5c5g_s)9Zu1eW=Dw?Sh12s -zH~@|`nY<6AOG4GSgeV@7ib5yeFJ^sza0_|4LFi3}s)x8F@a{=43cAUvEiE=%NJ@sB -zY<3V6wXq21X$>4g*NJ}xmixrurL}jOUW0CRo+BBs35wRZ=$xo3q)^1N^iaBVf&tDu -zI9|LBsgOY9>?2NuOXSuIUtNu~-I)K|8g4&&f~Av^z$XM3t`sa8z5FL*B!+9j$(MWJ -znLe&e7DvP$`mVplfV>2YN5R=rH06}&OOe>JX_LgNc?6=g*K=vfVBLC<_v*D>>xx7y -z`vwqXx2vt=&gV&t(FJ5*1;EXW;q&z9e^rY$;~Yr2>3!n>4S~zJWM^7HsF;&kAvyi+ -z*anooVM}tcRl+#CAClTe2!~a*@DPA|(i|e<89QYw_1SB -zhBQldRFEcF;3e|oXaw`8+4!ZbcSjekI*FPOlOi4cGrZ%jFN-p -zZ3{igRCAOj_IF7RZu2??Y?ctY4(9?`yVXAHRw9T)3ZrszF;pC5bPNOKB5hzvz!T|Q -ze|JbFk(|{eo%zZk#L$~$42Sz%0t2%}*&N0c)J!^_V9z -z+ctF+H!+?QrVR--;bZP)6gbR=N-Rg$N@{GB1%OS^l+}=wbDLa2ALpG*L@H&VdpPd$+6(93ZL6*oZ}2Koump5|zTSCY!m*HmTvtg$qL0w5pz9S_XI;N`rmaBvn0N2_^7yKPn?Q3{=TzSky}I0N -zy!)WwfS#qMFJB5(aXhh%z?0O^~w7lCuvYZ(U5Q>{9O*5S{mY -z0N~YDhuGXxw@-F5Hj9P;gRPs}-|v*q_85HmfmPz8Ye_a -zE~&UoEu;Fr38B;afku;guoFu4s002)m)&pGlJy-sU$T2&!keYXoEDb2G-#}$ -z1^^YDo9j?mt^@+?X{&n(3|?es;y4o<6$0=r7Vz9Sj{v7Rvd^OIlT=M65&ezn1&PAE -z;w?9lxGlC($Sr#eF{j=WHc8~L5k!^J+L!QGS;GP@Viyq%y|1Isq8dD8q_bT@Zq0qY -zVME5+W}=-K!E$+=LxMxI<9h_9XM?af(F8;-`#I)tQe-2 -zTd1}qGsZf(aO|o}u0u56D>aTG&{W;hGAvQdPM{@K!#imu1ibJ}TnQ}c3C6~|`$%a@ -zn`1^{OppUHw7&D)rW1CjxPm)WQ^uuBOQ3y@hIm}1;ZNP#EDfZIv8m4l1yd9W1~NVn -zk(^G_fx5d<`k9UT-MqSc<6bk-X0U(ZND^EKpjdeHF#rS5DZmYsXC@jGz{3<6VksxbiMJ5pEStd-xD`#%zc&y{|DdqFw^jz(5LM@yuy8Px -z^N9(Y6)fv6@ -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 -z&^`?Hhr`3-V%$C1J1q&jamjPR)>#gTO1t -znY~P}K}w3{-Xa%qA1AZ`67|Mcmy^2DTv+KCm>mGZSKGSc=q`XkAM|Oc2{%9J0;_$U -z3eQ~GXDm=7&H^|qkV(sd7gk~jQVEhj2HGZ^c#mU) -z?9U<$972v&XX|;rO%ZY;DSbH#305s29^AZMdcvb=I?nwf_#O8?O>r-)_Ws@n_<9sP -z^t&oWj2@_)K4~YGaMS>T3?dM{6JX^OWKgko9L31`J_Bg1N_J-eTqoqvkSqRi)M08a -zIV`8qI`_8bIDINX%d@S>y;g&l7uGRP7WpDw9~pXVOQ=GrjyWb&s-s|Y0& -z2sSuRio8S3RAc<&B4bjdvbSYZ&fFq|RuNssyxl$rHKL_PXux6pf~=a-dZR&Wv_n4i -zIMgLlhOOP=v&)7|fVWr1wf6F0D%R+62}SMVA)G6RxM@424yW*ETK&x*>$=XZY1L=k -zm=>P5#LYK%?o*z0qOjr$0sOuqOyq=L`N(d}vSV1p(wR{^9I+8;cCwHi_ro!$fFDt; -zp={-au87Ljy|gmMOF7pvk#uWc^oMMN()p%npiy0qRVS_~QDD2Rj%)YXy5*)#UTxZz -zIwPfEoe07=tpgyiSu?e?Rq!S18w+&)@TiWYi&I+DVkpkblxEwUUq@s{3(5G~Rp -zoLsT!$5jpysSeI8>nnio0(s2Hm$JLk<~iDH&`ogAc*$Kt)3roY&dZYKHU|L#fTGV; -zv5U>#h@pKaA?koTt_30hYX{{Z8(js2sl=#=b;laiA;RrAXY2Z^(bC+Ir1CxQe0>AA -z`ry~H4S=|h6>EtSsdMy|srp)W$Uiv63pr|P+5_?+5?-RTrW%f!nL^JwHJw{1D814Em!&XWSl3R)A; -znxIQa&nKcliD+7I_p83&Km!L*38wdC*yu#vp(xpQ3!Cm}ter_odN-tT`V2%kK~>u8 -zX`8!CU?N6#EsR%ZvAXj*-L?|>r^@py$D(M7q|41jbVAg9UR003kkvWf5F5Bu+;5M} -zv4UlN?3+}L0y|t}Y66lH0W8cueb6XauQ{79<1joNMS&s=ZCRNtJwX71lgNoBa!%FT -znSK39N>{j;f(>@AmJND?$OBnG85f-R_Z-Y1CLEWm8!NBuH^_5<{Dw~j)UhQ1(Uy2d+z;MoPRug)Vz?v<{W8+p$DL3fdBrN5-j- -z-kS{J0|`TF5bUy`-R(tVqjDdI_T(AXT5fvXELnAx^x3B3_CE|&!9yg!cN$ZTkD{pvF?du -znym%NvRAzV-mg0^C*WZR+uHRJ&a)<>k%LUc9Rd_Xq)2RDk)hIEJC%~RX-hH<4?tzb -zlE5;MSiZ*4Cx9|dx_2?wan^*L9MTzVN-`%h3A};n`anrhA{9eLfd%QFpkwTR?AvxE -z1VPFUhpN?apQBG2kVsYf?#@Jj-0Z#gWT8^fxr+*fgA|H5T~-OnxlrAY667brQ*4J5 -z+V_gIdBO1up96zNyM^@^_%aW)qH$7|u_8LfBralO`!u6~h;~qlQ5Zi)Q7{_tJ2$P@ -z_aq~UD7jgJ$)=6B_|u3ScW|Y~q_=8k!Engn6`3RaspM+USrCw*PJ}MxL$7HVMx@Gp -zy9Kvpw~RB#1-r4zqdrTLgnC~VmHYmzwy_bt4H<%^g&1~O%w}9hNXoh*s&*1F1KKrU -z{oej|?1c7k=#gX>5>gA!MqBsWd(R0h+H3=#5ZSvMyfJHs%tT|&Pi44(5I(NncU^D> -z%1Y(?jD92eqjKlt;#AlUr3aHbRP0TIWCKYSL$3u1Cl}sC;~u3t;h0rp7uMB+^W!H0 -z3InN2jKnyV>ni-ZO0p-Ub4R#@Sc0vtGcW1J0Y0II5=k#D!u}j#@Ohqob|`i#yhSBS -z76rnUFA@smteZ-6b|CoQ=W-$8X`^}vB_atLi3>r@2}3ro`n6BiAo!17Gl?(f;YNX| -zgc(yIw`=g2fWIL_i#BGu!syep@wJnjO5}?jMYSnZPxQ6T>#$+Q0lE7XhEg-^`V@Q8 -zwJ~?)?oE2v<--*;@#=ZV~sCy5Y~^~BqxDgaW>MnKlQWEc -znd*7Qle4e94T7j^2)6{v1mLTvMZY>;pvZQA{pzKkjvJ=5eH16!2pNJRu-PR+-`USS -zmgKJp_&|#q0X&0#JQ3K}yNU{=1!oE}dgL<937!zpVUMAp9f^F?C{i2o}%03G87fXdBt`IWzY5Izr_jTPkLroJ6)} -z1m|8MIJRroKB$P1JT~)9Ra$gA9&%FpZs6#C(i9!(a_?4*Yy;^rqG2zqZ=#ujcT1se -zePz~Rz;#uoXug0WO!5|s#;Tw2S>G`^vKdDHyff7J6JPb@UCXpYmaKC+aNNeVR%U-~ -z3+HmB(xweP8`5r_9HK>yTY0+{Ij5$YEO^ -zcp%=JJ-zs?g)3l*9O&YVAs2Tc^}x-f?iJCR?q3-XSJ%|xFENr0Y< -z>ZMQchPM)~?_SK?mK4bT^+)1t(1qQ#OmzCDMQya_Oy_?haqG*zo50hxV?&wMI>gch -zzSarQxaNGvt+hVNkuS!^1CZCVb^7fN_zZ1VGR}htCQbpd$+~vjKifx}MqPVpXL5V` -zNM*0Haeic_Bd*Zr7pLIUfOF4A$K=Gt*0B-$kqDl|En4+hF-B%38jbdeYOO&&h^-|P -zxpYnS%b{TyG*#c>&6b;&*a-AU9uk4AC%5m0L2N?CUeOJB(8pE04--(1o7wnEnyf3} -zDs-`m{vDgG0Q)%i3DOsFpaEx^_)Od#TnzqLA?}^!PFf?&h0kv64RS?Dg3nvw@+sfh -z0{v1dw6{qR&s0{k5S^uZXxy2m(I~B?kAv_aoF7JK4_^7CDdUJ8+YN-^voW07}sCeYj=G@L&!($ARb`AFr -z+%D|G&uEHc=e(^-p8(fb7!L-xY#q_pQOMp3L-hT1ZSqQ0p;*v4rNK9>$?U~!iMfetSYks-RyQ=DJ -zbPfiV&tR|_KO$Bx70m9D$wk@cliAY8h8EQEY=lm9oRWh6R0a2u3O0z?aS5&_mcT78 -zAF%I~ZBI|JS@C|`5&0)5ErVX%-<3hY1z|KK>*!n)0OBg&GHAods*C2Hlupu?r3-+{ -zRImr%)nY&!aPI>nbJtA6*y;?T0@^Jr&wQJqgQ7Xt-Gmv(Wo^JfpEA&Z9Km -z(1Z)L4L5>DcZxc9Vv-h#rf&}wu(LyUHu5_~FX#y=R!D5@(6ui>2g@P)>7x`S_W>DF -z137ECFaCm1&$z!xIz-?LO=|>^BYaaFPL3hO606jQ)Bk_M-fhcq97z^^KYwxF4|8Q^ -zWpzz|4tSFoA_*ozNJ$V|zGn^~HI -zzpRb2>h01?K!+h%I)4zli($W==x6YF?Fg*o>mjYQj?n^U;MqC1Z>Zo~B*=|nz}O9q -z<+KQ!`8uqE3u~zJDF}MuJ-;sVS^`2XlU&$`oy)%{R-;=bHP2-1osuR>ysH}-GGP8$kwj~0C2vP_)LS%7wK_l|<@9CK0 -zRB~0@05;l=iRb`B&*jE&*+WA%46(qvVrcom5&`R1s@F=hXel$X}FJg2~&_dgZ?W&LN -zFMEL_6(#)rx`pkWAw{x11Gh?XLfN--E^fT|bPJ0mW3c*Xxh{GyX+!4{55t>eq(KKL -z#Al4P$lg>h53qn~S31v`A$qz+XV}!^ytyUbP~pT3!PU)xSV~_$aVZa~cbWr1!Qml+ -zq_O8i5(Olu4jU4OfKImq+W6E@MqE7Ot|WyjOn)kk4ADZ!MW4XYns2wpvXgU3Y=8i! -z%|xD7`Sa|9X!%k|VD85jSzJ3v2<44U)ry&p0MQAz3wds{@+8d)2C{qx#7YOM1L(NU -zG3DrwHf!#VUebQ8z^Y61(y4f$nsAfcjpQ7QYj#YzHpKCQDY8}ld(ZRqq{TMG&)k$# -zNKD8q$s!|IBmSW1fv~6EIQPl4ldEv`ini}PRlNfrF;fFadvQ>{lEtenQVs+kYyHWR -zv{02j6;)kQ(3_nadZb)6a2ACwS!?5N>7_QgBvxE~YV)($(|R6xYwW;f0!Vm}jAzbc72%e{zUiog<}-s!KbcceVL91)Vhyc8s;N8ByyBnP -z0%vm>vu!ggP3t$=&|lX*-44v=h*!)=BcotKNQ3~?bVc^G_2aMvJb2qV^0&z`0a#cP -ze-{O7C5XyxLxwex?9Ul&(}w|28|1g1C$hE4a{8H9U5O|^QprV^WGgXUDhI@jGPVHB7d1xCGSxf6Bk>xmSnjti -zEZ2DKll=clB!)YfmmUMuCux!ezKa9fEr0CVe6Sb{!T+c!qhVT|P4yvJ1Jhh{n8Xq; -zA@>UQRd(nfY9curPQNndM?OSc55m_R^l}E$+W -zsc}nXqe}5@l>^)~h(;nRw`k5#vH34dI}~k_5UGR`Y9L(&Q0YRSfK=Eh>B0~c`RO&t -z)(Ly1wKkT-iD;^{&!-lQ57JWpQv=RviCzm-C#Xaskv;95W$-9SnQNYo%r;+RR0>@l -zH#r%qEG{Oi^AU6Z$M>K8$r_g^8}&fgCoz3qQw6XW==CZ2jQXDtbcX-Kg$%9jH$Fqv -zIb6HUTmUuFGbS+1bFe~Aj~R}@5fSHLCha-GG^Y~n?%)5Tf0<&9LX$azdGEb2M_9v4BV=gi36 -zvz=wLO(H8)ee5-;>$b&v=;B&Fr^C1?EXz>_ -zI8GEnK)F0qBZE-^%T*;C5Yt(Q~F3g3TEb6 -zP^7y_v~Jz?p#|sO@NGI24k3Y@#Kg&=CLp|*UA62@s%h#5aCUnZH?g03f-`?6#XqTx8O{OAtfMQWxK-V*9qXMzv{3srfOn9V5~ -z#6i1yvnS65^yYGF#l#;rEFHQjH~Yj@!jGCH -zYPw%EG2qii5 -z(heB_PaY@2#zz;;GHr#owIMqq7#=7jWYw(Ko;w4(Qx-V?5&r%!8)PVEtZ*kVXb2Jl -z3jBP=a#Q2swy)f>z@wG5W(~@!IKbxG4>w$59Tqc+BdBBjAm1^qX?qPe)Ecg+X=z)fT_-8T=c>i7=)P&ASFaoV1$;v`mWH*i-j0OUrx#eOJa@-^CkFL!H -zPwN`o0@G=^k{de&V&3WcVRE}on-BSH5!#>G@Z~xz!uF!|~Ba{vs(`go*>?&>(R -zYKPtv+!ANZeT6~k -zW3?AR?*FxpcAe4Z=leMflU}blUSi|aPPzT4n0u>yIJ$43+=vh#Xhu+G!7=McLW02i -zG;+5;iPepdAsNKfHf$5~>nj%UkxWp#P#h&Ct$EdHt9149t^en{K8W?+oBc{tWOqjS -zdF0v;^yW?LcsfD$&-=v(@pQpuy+ax)2b?UvLSiIKk!&fbCsze)oG6vSO`^ML&|NG$ -z2oc4qyW>0q_BuU>z_$u_F{4a@_@Is>z!zg(FcR{tGp)x>@MBqWk=zhn0H -z{<5&Y{%#pxe;(d0a{7Gz`D1zgSzP%0*FM9)eC_&nYxN(uKql7mSLyQhlJ`rU-(LUr -zk;B{1{U0mD5$BiRVS;yidmZXiFF(I6(e-UfhxYa7`RzNF_v;#7e_r2S-@ZS_w{^O{ -z{XM*WetP@+<^BHN{(gP?`*gfL^5*NaX=gU{{&joGas1ccH`gyVe^qfLeL~U!A^-RR -zX_1B5-}|P(08Kg%5!tXEbgR6TlKR~W+I}FyEpqJ=K$;nxWb6fx=pNajpC_{I#RJkZ -zfqjZ~28(;oUwBlGQaI&x`C$ZT?*8+8=MQ{#3YxOQ`xSr4s3~q{ttHU#Rp%1rb -z1G}!KJX%dwR#r?^!F-B13`W`qlyIZT8`esX?xV8!5H>#bVqYd3@0|WLqP&jC9KWk{ -z6%!k>de{x5EMb0jgDZ9KN%B|Ne)-J#@}W1$qLqdLixsWz5Yqq!gNBK}_vlo|-J?QC -zr-cT3sxQfDL6Sx=;HVrX@-qO8D0cCOjxVYC-y1s68%(qOX6DN#{Cjye{2vbFMa28O -z&~~|KAw&N5Ax{_o`S}f0*02tka*lJbVuDkVFO9Frd}KD!>)!YI2j=%SOofaRS?#s)X=$s`rj@7?Na4=jFnTFwya13T&jg%;;4H`G$gmT10`G0 -znT*llGj0Fr`ggq~PC -z;}=O)u2g}75_Pap04Rx&kNruFTQkP1AOtd03nm@hEH}8!x)u -zV)9i;q^W7$Zb{-GTQpCA4gF|XE!)BQ23QKijMf@D@7zPHAj~I+2BCXadc=0t@}qsz -zIOeW5nb53rZPV9D@&xm&90UMIV`L(SQKd|aBRtuU8|FG$jg8t27-0r(6~(1{}7z{H5*Hpj)tJ=-QgGZCsI;>;|urZ&LmmKBU7 -z8(cfW|4yb+u#YsGe+Jh1N2R0g@b}sE&NkcLaSp;8G-@k>&g$HK0o~*iE99C$bo?Ua -zEn6H-H)Gt_JvFN`eCB9u0@Z}=BGDuR#f0yw{KxRMgE!2`Y%{h76M>D>gn)GZ92H78 -z=WXm%Pc8QXAv`ufsLDq*k?U*Kmbk?M@RPQ+>ej#Wy5(7clOY`p6#U2k7TDLojbzdx -z-UUH~_yr@37h+%A3)oOpal>HM!p@bm4}ViVr^H#yW>;1l!^G|1E*J4-7TdV~Oim#& -z4jP?rI4n>eseJ@>?Bt7<;-~1C+RHWTSTylrOih1$o;JSXxGJv=@{;`L+j{<6@{O0b -zNpMbwfa$6Ab3U8l0yj}lVTx>Jve~-aR -zPGpwx2^1DEKH^2OiF)6FyWG3+E6kGY7M*W;kc-Rroqv%FWyiAzv9{x#A@$pr -zn0De5Utfig^!;}vJ&?5wK7kP_MQF}3=CJ|{4Z#&XT<2K_hBEi4q4=kx?4s1y!Zbz#?oCg#q4G%^xJ2c^Jz^_Lz*y0TxNK+fHnw0x7 -zNZPHo>)U3#)x~;P^8R19#$L5r@^$13e5_`MZtHLTtp6!t+M#ZK>T2EkcwUgB!1XVZ -zyZqFrQ>P#LYJP@x+3b^U$=Mxza`odn=GXrCZhwqFbhcown_u39g9hVv`&l`$2M59WTnb%KJ8Oo6qqM|2_$T;jyNijiY1#vWT|`|c-*&&m$Li<&Zt~-x -zL|tf`lUfU{2gSy}+*I3?dmbP6(=Xe2nYz!2_@;c*bUZ>Wzbo$HvDO(_E3t(B<>gJX -zUw$Z7uwIMj-+!+8=H!8l5X7`CwS{p$MR_m~K5cJI+0(%iI2NS17@X7pFFN=vORWAlRWsR=3KNw6!Zl!z57r`7JzU>srWY-5Rth*yX+t -z>tz@R{#(2&fpbrVF-ZiX>PCZtocP;%j}V(2CccAB+3v0?8b2>c%yYooJugFV9_s^EPbb}ir95U8Tf3b{CJP!g0}@pU!E&YZV>lQg%gcg)V}Xf -zmv5=OOSYp?g+9n*1vi-4>~5a( -z+c105-T}+WNlH3D(}&EQ)*Nl{GwarIk^E|0w3Z{$vat1rCDJo@DrkPZ6b^Zgamlff -z&l_@jT4w%D9QUbqMYjzk+2J;nk{|ehWDJjbtr%K|BC#zBIv$hNdH7)f*1CDRxlt -zZ*uJxBUdgsao+5-Z3@>}Z3+*@e!`SX)2Yrcso -z{CWar(m~o=A5pvP>1zC4MFAERd~s9dFpgq^2?wj2Ax;4ttw4|l(<0r$X5!__aZFj% -zR-6EbJc_9HKk0XGgL-0oMlzbL-N`38gZ1!HZ~{0uOHqpY{ml<0VR?KWx`!Xlk~Is^ -z``gY4_OG13E*45*8~y$2lpmXA#h4hk)A6Ax@Q?3#+Yy9$#jTEi=g>!)Q=+x@p+*spxw -z;^cmw-}SL-(tZ2p<#O*3a>)F_?r< -z<2xF|6qf)|2l=x`AM6xd_fB%k^40Q7kh3m9&IEo~FsC2OFB-+LMv$uMs|kjy3=M~$ -z_rr%r_@lh5Q=8?V;l8~ap^@|Q*-Iof8YoU)?h`M6`3Z24(0+*N*ZsT^ZrfOj;c+>& -zeu3rJxd6HLe)u+SUmszYRCv6LrRW2Gffrsd6@nk^Wp_k~aT$l5zXhi96aSE?0WVs^ -ze$m$}FqoTew9JD@T>QWR6(;XiKSYn=27xMm6dnA!uKRqe -zolFcQgQy3e*RtyPzJBs{!8Ahejj#Zwc(WvHyvS>7XX{!p_%eLjL88j|Wwp$!yZe00 -z9AKthdI><%aXbT?Ikswe9=XMB(lQAf%d6}XhMdF9zkd8U#~ExB+GK}3{M{y232CAV -zr_CvXI?*Hu@$-k=*3bl-Wi*K(Oh-%JSLB5Fgp=`ONqhO`>Y{_uZeDO(xQ~~N<4vSLsx$# -zpFz<#2a$e^8yq&(aV4t%?;s+wyIuMnmN9UwrEdE}Ll+T2q&4g17> -z=S>UodlFn`BgBcz4=2hdYJhVJp${1ZV)<1MthEo$f$-4z-z0zX -z%yLa%cS87d#e$r(p!Km_~UI4>cZ=(kdrVGflt6WNR#Z5MDgA*JDyveB!T3U -zv#fNMds%e~M*WaKi$eJv{EAfgt%{W#Qou83O{&54yzSaO -zcucj+4n@C@nTTq4ltltXmuoUMeu=y2H>1-KBWXq(7`v$zwM9W -zIcim^gmB>_MsimIvs -zR$C9wudOqb6<-1ckB)k5{^ojkKJ^koo+Qz1r$2!_0KhuTgi<0!$zi~gjF~uSEBP26 -z0(=bN`iZ>z>4XM~(k%nOeaO)`CQdO;c3c2b0^MkC{bKRY6D<$Raryy`E+*MNd$4S`c`M%JJ;1NnLCAhta^o!Ge3DYAgDP})`fP8ct_3!p5x -z@+Y)zAX2?qeiuK$eW<%pg1&jji*)JF*=s75&TTeTcgWS#JagzAmlSLoNn@`FRh#?8 -zNEExAyzUFU@wH{A!FNYs-rRy0B==3__bPt=M%Qxai-&A@(UG$%j*s(w}4W>D#K -zjw90|>VX_(6JUzCJCh+g?%^R1?aBE;hPccvI}1+%@a{n7$3dt?X{W4{j}S`EnuXXqgWbzm-)zb5Q076{y&yId@Jk0VKB*+&60Dv&1HTfO%ZM;kV6bTJN^u!zuM2f*|#0{GHb;NeS5pk&b -z2V!fO%D`PF3o|@F++*y9(OCO?qEw@wko4;^Bo8 -z=K5T~hlj1YM{sI|NxhSV5;}ubZtkjJ9lQ_Asd)@2XvbNgLcu~g06YM|0p$5d3(u|( -zr*jK84uoMc9<>}g9ipAp{F3#mG|abgxal|FI}lOw^<8a8wvOFR0mbt*gp2lk!|3{9 -zvXldAp!INS3*^rODTloE$B&4WK6q{*ZZyUrE -z_&{yM;>B^+7K%(-A( -zZ+ZXQG9g!{B&E22{UL4Sz#6kdc*+5R``!{eBlNDLWhfH4kMZ+!c;CbF)tO-M%$Q+& -z)Ig(ZBUTo*q^|4vfpQ~{w~NEn*ZGq~z(q(j-0;*UqQ?!zWQ1_MxDSlU2E>_pS7D>k -zPF+AV#UHOw43vOdf6j-07=7HXgWmwB#ryVJMs&bzkU36(wL_DGTWW7(gw0boErG6_ -zm+0Qw&lfiesMky=;^)cZ#MtBKuYc%oC3@fb^}vv@MmWe~absi&m1~lyZR!vZ$!5^_ -zvJUm(q38tH&gs1dkYKHk;rp-McEhv$=<-0}Xg4x-;=YCt`~um$d@^vVjQ%`6|gz7xF~ghc=~4M}s&h#H7C!d~D*5N`!xkK6 -z44!FY;G={Bs)h&JNQaO9K)VVRDnr_b(@a>~g=B-lskEG29_($i4%PiTq`8 -zPxY{FSJYwj)3Ezhw}}}#g5C2+Njg(lVlJ^IL(WC -zG|->*etG|qDRcfY8Tc@$u1+kLd|I>kklX@bDB{evJbPfjQ=xj>19yd{rt$^N6*<=w -z5)Z@cpI}ZgLSBMi{c}g4sN?OGp~T;)tkj{00*7%^zrG+YM+08d^R4(War*g69Uoi1 -zrX3CtI~Tk_7H9)m4kd}=wS@J_UKi^mdDqbV%VmO5@z1+vaj5t;F6J_VGE|{H=f~hL -zc06D1M1HqGKc?TxDL(snxd&rFF#Cu=WnWs?rj%F(+|Rr9gE)1q#4kk;a#@EvfOzk} -zrx;gOM=t)*_ykA;Ru+`o^PfPE1THca`m%LK-UnXVJBMTKJG&lFyOrNGx3bs8Uqoej -zD}V2Ae^G7dw*HUzrey>HYRX1{zkT`ke}74Ofwfqx3HV?9G56BGRJ0oF!fEk*dA)L? -zfNLtRQf%GYOQyG8jz8`eqENcT=kJsW=Z}{{jEv#K+d@Xeh^?i@A~g@X;5Vahk<&>G -zzj-i}4DF*%rdWGez97X%vfuFRTqm4mVShifvvj%@{e2;3*B&#bAs^h}1=w)vz&2Ih -z=01Z_B_5dj%WKJQ&{oiH`E{1>)CYrGQ6vfDMcqjMwnPW1QZg71U^RU{uXhc4iV{)x -zrC5NTIp -z_1qWYH%_|Z4YP}W<9p0Rv9zyT0ynF&Pqm?)dGbGm)BF?_Bax6NPtD~DU1Io$!T -z012$Yl+W@#e>4u@>i?=&T8qR`|6}J2i;vYYB%mxFGQohjl2~qE{&aTJakx=|)uo+} -zvElzc{mTQj49o90ogk*O6a;jNfB*4r96~oH8jVY#7{@#BQ@ff94vfa;jY5P}OuZl@mO^7*p!8mo2Z|`EJ*x)_ItUX>>xKi6=*g2(!Dk43ppRr< -z9|qmj2>G?V9yGnfbr-j3_y+HB!eSx`w@Z}Kr*w3YI9f4Ug~U3@bP4zoffK77 -zpEXojws`c5@#RE@DIVbWA0||shckP%NJTvFCL6BT8~i1VxXTlar$t8K)!5}x6Q7GS -z&3G9X+mvpc|4xc^ca&33wJ~v|XNMRoM9fEl_}eg1Hx&SBg$N%zt`emTU)=L|BN?=X -z@WZa^E|U)a45<&#XY1|!Qb;ojh$(|DAK^6Kn;PFZgir&gEoV@2nhi)8h-;#lj6K=B -z5Q9Hu$q(j{%8!UVAq9-hc8nb@CjF_8ELu^IugIq~aQ;T!G)5; -z7y?A*u+<`mh(!dKg50BBH1sWuR3_}CSS;Sd2gm0p4Z4G@snAYQ8%5_&wk|+F$FGlS -zf-h`)l;1&F(I-ap*Wr$xzFjj&Nmks|N=j2A`Rs~QE0!vZmxE(oA-H%zxgWkNp&Ekn -zm_&pZPU|6D|NLmv)p(ZqkHH-s4Tx35I=%wRlD1Kx7Tf2kktRSQNo0;p2QUyM!|K5Q -zkuq`N$mTaw34-M{qd$Wv-GEhM9{{{=Bh^dw!hHV*>*?L2=nyF6vw9q=w+viKUHub8 -z)5M!&AtYpt=QO3mwpM2jxwi7qK#?>S8HnTa?gR{bjKJo0mtk(ySVi%CC|x+1xP}l~ -z6vDJlIUIUwjCaNyz>X5s%~7}D7FttC{h68a&Z=ve+~*^D)^Dkx|>z37uY6PQ0U_q>Qrp%CKSADx- -z%@P8pJQ|!LA -zZoih})txiOx&doS0zv(zEB3ilnrS1bV61OlAQeUbS`D@+IVi1Q?_OP7?lb1Qc(#_n -zo{2SarK -zQcux;G!0v8ZFMkXF2!=mJQ~+uuO#Evaysnm2EP9uqtdZN(SzSNcPOC({jPP(0z`nQ -z;FK|P{t$ZKB4CwZb5WC<31(H(08dV0#1&`;_q8j^x9t2r{r(6x&L>2F|1#Hwl5`kI -zHps91mL8?~6TQdkz-y{TY;`(R_sF_})vWaJ`s`j}lC2G7xfdu&G>@SXG4Ii*Z@xcr -z3f@DBGomqv9i6@D3k3T!A}F%n5XFCjW<@5AltoCrOi0WLGQY7LaldX^(yDM1i}O=a -zFcv)WrzY7x`lPkF!@9eX!nC5g^=GdzW-I8_oi{q+an(2*JGrJC{)jLvBrEuKW>Ib= -zsb~2}AvR-r(I)X$p@al&y&0fF@*4Wd<#4!HD_S -zS$wC_7w@=%G7JX6?s`EIK#U;7iCfHG5;|KGQ?R^@bV{;4G?xQg0*yI!pc%89?1c|> -z(=pe1Jre0}{xihKI7X#d2GMLmhK2^g6DWmPZ8hIDo7JI%7fz2@O2Fql4cPNea)`8g6XkKlpi{8i7rY29csj}3al-#&_U6#`9C4gS3{uN_^cyt&^F|2)CF*IrQn26t -z{s9b}obmZG&IQE(Q`QnM#-nmsTc?QNCP?^IBL|OmQV|Ax6v>h9CFL9B(``M*=cg5_ -zbLKMg+Q4>U{$HgmhVO#+)#^ytS};mI@`MZ%SEo8SW7l;K7)1vn>-6y<`AmD(f%o8b -zF5*1}cGA_6{8V8AgD@115Ib?y8`EzX>=t9G*;@F05wKK!u#dSL-NhfUGLM?GxF?8Q -z%iH_pyRqYYXJwGa;M0b`exL>OWqUf6bo|?J5aIM5U!`&6iTo&qH)J1mxj|g3Gku)8 -zm<&8nh66oWl)`o_VLuKyy)z9F$gw?br-n)z7T)NDk3i6I|Y%GW@gCupS< -zic^*$#5fFrDGCImEuJ4;t%l#-ZD)nZ{~$|9ONB=C;!m`JZW?Ub=WcAdr|Qtw>sZCv -z*zZ(r_IaI%mwAS0gT9*ADn3kPqRP2%di)F~93LZo^f<1Y1(zwiA`mP)Sw7K9b(v}c -zmSrI6kp&>-WL9A_wepK;ZHPIk8&G&qQ~vcNWbf7#fPsl<)u;Im86N7K9tG4fAGL>@ -z%=FQB&Ali`&$qc?N{*qCIzl>a#*w2%)Vm3~C!-zFL_KB%p3=qPFDPipnX5j%Q?Z+1 -zdRMdqu7>`#DOqMwA>J0}64sGAAoN$0gn&&!wMf>S83~~sP?9*yC2Tn|sqrSo}ceTaj-f@0+3I#Vy;HNTKC(D|RZ1^tS+ik~) -zFPDhByfOEwz!}k9QXsF!-|@pB+o<4^Gn(!nu?tR%{ovre6iG%k@j#_i2!w!;bU6d@X{@}W?WzGZiHxz^{Sd -zajS2LvQuDkCyoRO|Khd_{=y1wu>6mWNjN>E13|ywI>ZU7q|hO{ZNp8ZXggSM8>gm% -zS8YO^^MliA= -zysS(DN>^doO@ltf>NWv@gt}9pBQS|PoJZj*J-hGOrCK>dnMh&I7}UHp9-*OS<&Ib7Ut46;JxC;tVnhzNn}CW7 -zQh7rlUKWfzf$(KCKA-3Tm8TEjbQ5!n)UE4&I1a3+mQ!E-w@pCG%=x&UFJG%u-5)Zd -z$fsy2?0OJNI8s;U2ImCl>VH7|74ZUvW@tqZQp02PGt~KpLJzU1(Sg~HT5NaVH?a5! -zFsN?4?HK@O)(=b(&J{lILlW&+3vM!hvU~~PQ<|0Xs}n{2ROV7s2XYJ&qF=q)wD(o0 -z02drLTAf5SXIcr=c;9uw_Hn7uK_};nh;(2%!l!}NKw_*f!P0nb|AcRYF0tEt -zKsrXy>^J3C#2lt)-)+bk$=2f6)Awq9_J4}>{|Xj^v?g+LU5nV*kA{|-cqPaqdhRYx -z-4hIa9;_JkDc>3+4kjJx*C`9)OhmmgYcoI*aY_PxlXDFy?-}HPn!)I~wcb)oMTAcU -zX;EWlme6E{5)<33cTNSuZu>QcXG{Y@uC@gU41r-+OkVi!C-CtjJe9e2v^Es9Ie5HJ -zctCOMVe*L0Q-FTZ7_NsklD~{z&H|}+0F-xOoEwTiOC~##B1%d3rWcW^N)!}~7RJLH -zjf$dF!Fh(+1c=`e?7k&Ug+X91M8G0+?I$O-8@_(4rClO;U -znB@v~t{7B8aa!lg!+Q!GyGwjW*UdsFK$722JJl`eddqkhz{-qngHI+~rz+~8t16lVFbntWx1y?HlRyz-Dc;X^p=Q=%oWFm)z>mPMRhtqF}3;n60fM;%l5T2jk3R -zV@mM)WbqP79zB9q{5k|E!}FbeDCUBTXEFxo1J3E8hHt3;5Q7Yhz_lsUP8>x??+jzd -zpr$fTk|FDN+lwm>Ht-V#!fD2HaLZO}cgD7dDi>cL30~2a^Ic!G&GClk5#nK-O%5i0 -z#Pq7c#oJ#CG5?fh^!xCVoV*}?-l$UYL={CzO0t|dqTdmRWl8{-e*@XwA}xkxppSmVu31uW3iru4k&SXsvo|HM`}h -zgATr1vx}AEczH*cDK^ErZ7D@`2rL&Ts=I|6@Hlk#Pqc#BovTh|*1lf-V}a&~)LUR9 -zh?n6WaGWs|IXz^mU%l`ZKxX${>Uh5bO*tDgIGmz*t26oUZQWPmP2sa_tHRt%>euz0 -z5YX>+f*FB+dE}Ak?_|l)HB1ilXpS58bgf0^f*4sOc-4vnMT;C -zT1=YNzUez;Z(rZp(M}Tx6?FGx5nXPPOUC7vvr4x=klb<^j8g-1vRDXFPRMS@%RJR& -zmC4OD9`pgL|I8Q#FBbTBRML{abvX4+fP0-z{M(W#O#OJ`%|$JVv^rH4@}=O7l76Up -z7jZ7~9T?T>^zlV=+{4#pm4PSIlyqtPvEWaT7K5E@77q|&Ai%)+Mhh3*iL}aA+;IJn -z?6~MI@`=L=THPNT0}Te3Gq}Xk2??%(bEpobv(|&A%w{= -zBl~gJtj4R&kIBxK54htm4hE;tX-Muc876l#;Z&3K>z#$nxR7D#!B54^I|pDya3a)L -zBOUjo6(BH~D)l6F!RXQJLa*=G#E2bqgJLcez+X;NIk&r8U;pzPy)e1v5$hZ=z3*ZN -zzp;UA2I*m%PZc*?UU~t#_pwb?i9;xWN#g16jJ$CK)2mJa0vqvk?PM-TMhP@C8A;ZS -zBipw#3O3?@t*q%Q2y1qosuyqY%sG8BZGZ}GjS{a)GLf(&RF&u^m7<~ka>WNN^@g`W -zgWOw`CkgGs`p+w{K%@x -zx4Sy1^2{+xcv42|-vg@5dRMGFxeJI`iWWAF6Eu4S2MVOd4Rq?e<;B4b?i7D`Eew`_ -zX1}4*vJnoQ%o5(!P03Z6oTV~hX=VRIb}AuGwjCb)W$Lte9FQp7xpmP)TM -z#EAj8`fRxAT^-bBq&w(6{~xxmmSp78J+D>*C^wu#-a2!l`c&~KP)hmTMYK>Q<2G_zLt@W^2VTY(Q(Ly|y&12=z_jiVnY -zH#Vx+myc^ZEA+{@g;`C27%VeQZHpNMtXFU9bcL|GaLe(6wY=RIf%_WT7F&ZpQ_$3$ -zGn_2AsL^!5<=r++ppsPJ84TvIQ@<%=@}B?4kGdj!j&{e@2=r=`jL;TlN;^Csru|n1D&y~uIv%oXRhy~!OP3o1*tTiFmj%n!@T;QO`kD9MA5=o1SCCrg7T&UJo1?M#UY|%R!{Yh0&~y;x3n6T -zLjAmTm^*0pw~+hJcJm0FwG&DSa`Wlnpe(-+R-pIfg3kWCNlF!K;S -z^G~m{Q`z3Rt+ilG^ -zs9?}nD1zTHH2i@izEj5CdL6>_Cpxi7`iUW^#i@ -z#hUtmgoU!ET*uVPZ67j~MqmolG20asGp7zyI)-Wd!YXfX5y-~U6A5s``axk{-f^C} -zyz8SaZxBt1+Hp{NT~%(|zVXY*%jAz`FWZbdkX2_Ak}bn=i+bT#xN8DwpV!lk8__5h -ze9WitpYg|#4f<=dppwmoOf`LomtKc#!hlD((e!x2ae)dNzaj)W`kalVHM0k|QqS}y -z@3i3F9Q`Hlp@%}%!)Re47dNZ?3OCZp4>Pyb(_)6ktL1A2ZR!P{FeB2qTK8>f6yh$| -z4U{jh42PnxSA%=>rRabc;A`OvChDs3wuT&0OkE0lM2r9)47lawznX3}Sd0lfv}>cB -zH6{_#7)w-UVH*5UU$s_=-&4u8NST&j&@PjkS@ -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 -z9$Lw{mpuI#+U!>aNH_#6@h -zacfCQcp4KrdE#uoEmEBMLliI<`8jAL3_^oPBr4&G{ -znA+Rf*4L8K<9lBu+}6xA4i|p79%MKWoWWSHg`IesH6tPyRirVP!*6{bC=wA$v_tRL -zRbcNM782FK8NyafRbnuIEyQDdnPQ}l36|`(1Nr;>e;d!0S;{HO95)P!fL0%(Q)O5T -zN%o9yDMcDwm#o|;dqVBz1w<8=hok51H8z;4v6EIf#%{e|$Z0`sdYDN#|E?J=V=;8Z -zQ`gzaG%?an_c0eXZ9Z}E4A4<$R<=4leI(E>c+Xa~Lyuh6aswED93mM%s2r8^`5Js4 -z3yB~zD*niOLNewS22+Z?qgHUe!#&ICo=$+JR2 -ze6*XPf#Hlloe#y(6$0d^PmJV&Wv0G9@#BJs-Qi&u(!Q$R??kT(*+@|PomgGvKp{`9 -zhva)U4&yzR2Gd0<#cZ(H+QtFv&uj{C(i=I3%>z0msnaK4&XXs@;NuGu#$RBz+L@5+ -z*R)koVpH^0<6$>pTjfU@mrqjJA&-12rBRo?Q#OTDQ4E?%L>tmZ4y@&S_VaRz&KnU6 -z*zLktp>y{U0^-TOA`VGM+F76C9l0-TlGJp#e2TsdzV{YXNeF)4*+%Tl_j?5V%QJ8@ -z48$Y0X#A|>GuN>b&Oq-E7D%vNgQY>rRm2ksIlZo5aADY!_* -z=%n=DfPnY631hKK_?`3Jrxzq$$l6o%OSX`j$F6$Ug_!`~~3v!i`9!OYa -zhl7N_wq=(zwGL4lgLTO&lDeDD`BbCUYj%B>s#j4)!5%YGX;MLiKU-$&l{HIgHSu|U -zKWNB=nlL`^D-Eo!(%c`uxIyk*iyruWt?`N2I(2`&4tB*HFwO=Tu;l< -zI#E_NmJ-paAVB8AZxkj_r#>tYCR}%F(+4BC5HQ-6k>rkEILk`<1B{>j7V4(l?Ua}Cfx=dGkGDWJPnwW&a5r@!9zZ8~!oRV5NwtU$$pD6Ey746aC -z#478tF;f0{<^kE93?*t0k`i4fokeMyDCUE48#7efFFf-6p@3R&HeAuL52tpKDif^M -z)sj2j7_Vk!TOGXXUmFF=ySU)9J -zmWeA8oE+S9EVqYYUaV*`BJk&NbLW^!px7Mxev>8LNKU>+ky_t%s_^=kpcjYZPQ&Nt -z;X6E6i*Vkdj$WMrWOofw^WZ5#{)${}For+AZXqsL*gREP`e1JVdIDkI#U{D~f+vP? -zD%Kh4;j77w$`cJ+8a+9$OvbmY8=0oSNYInkemj@EGn)=is(q<&KMOTG7~wj4d?bpO -zbsp&F%8|GbwIiUv)w(e6J$D>hntP%K42+<=mGYuk$V}gq$4VX}q*#gFrtjh`CqZrTWLj0woB_z=o8{KK#$72&KJCX_+ -zYKR414Sh1XWUKdV`V{l+BXp_1chHEFxs8!OmznCc1~5?=8~qvag-NTKd_#dq?co53 -zzOA9MZ4aAo*QL4Ew$Id+o3(huOpa%9jJ7nxXR=1`*jj(lE!k%Ul&gL$}|>9sIvj_Q{+`3JljnRc%W3wqcy6ahE3f%m>B27H$%MHk}-~ -zF<6mE$KnTqf1_sPwbI1)lF5%Vj=Sar;;n*>8k&&<_Wk?FkKP|Es$vPdL&n?!RRd1{ -zTf`bg&{Nn{k(|X}b;V^Fo1V*VDh6HMc!^gRKNfugQ}Y!h=Zg;wQUua0de?0Yyhp5N -z9&l4N#ddf|rrtdNXCeR#%Gknj1p$A@T6$zP#cFdN$)S;Fm;VBBXXr8+YDNJQxRQ^` -zsWdXAP7?W*b(+{awO4L)g(}Zm2|2uSi9o>Q2fCb3f>klf;vn7)cV#Sj9VD! -zYSR@5AeIe_Kbp*D)2!@>-pb{roH-2Wl%*w$x{`yo#Jat2{WB{WF$4< -z%CTutt1GUKR;({2!e&O8%u!52bSC!qoo?5PmtD^F(Qm+^YhZMlNb1g23j}kt! -z?)ec&=>5f;3on33BZ7{?=zh-D6v+!?c^PbIC+$RK(Hsv?LZSyt;Qk~kjpjAD#2sy#C$LQtb324r|=*V74?w$u%gmnEmNUB5)OEjUR(bhrA*g%KBFbLlkY -zt0C2cq0$<(jT_Or)^^_20JWkzT@;M6!u$$h&&Q_XFM05J+H9mCUN; -zSX^nFS5tBEz;eAW1ckTR -z?i>UmrWbRr;Nnzv4rac*5PT*MS{M;EI06-O)m)5h#PVW_6qRQ8M)%x0QgWcUlxB06kWBV)IndjZ+;_TmpQb9yOL!xkkWDt^z -z9M$Up8n_4p%$y&o`f!!jA5BWXgmD%pEhgx+cK>w*QbV%kIi}%AKofWnB#L=44|j0r -zh7->#LY9Su^05TJz^ene)=E@}Q7%LD<&k1%iT3_7nnz!KW7ctV!DjOgtHf>76+A_- -zZ&$8BCEl3Y8o5R!EsJO=O$#I!y7?5vwx48?(-%WJ(`~x0O%@Eo^siL|3QZa!4i`#_ -z_u?(7CAe*M{OvF+1zToBSpc_$_-%#^GXs{evSq?8PS?njeeU1lbR?6o%{<&+xYa+1 -z6xyxMS>_u7f8XeGNoix?w059^&X}Law1d+t>U;uI{4a_ys#xa)dp?H6!h#L^JGdKM#Sup(k>hR=wWrdD>vd1 -zR8+PdwyRAUtaHDUUO@S0alU@6!lx*d1LJ*2a>;I#(>>9xlYAQFXv*ET4XvAWlwiK_ -z5U_G7Rx{xW8mlJl38~VRXmiSQ2tnGgO`M)aS+F0RpM7n`p?Vw&q?N!zSBF*=BLJN- -zb%900a66co(6N^&d81(x$nu8|OAabC%3NQIP{5e5)jhH|@*{yW{6+nD(+@W|B~V38 -zE`@ZI^|B6w%EcDrC1IRzG!8IJ$s0gJN -zt$!b7_8DX#ou}vi_iMw-vAp-6bZE)9@DI@=S}72w+m)2S?( -zheCowFV%uG_--#|1AIYV$f!}08WV~cP3lVQLc~MA<48myT)2h`t~);wNf|}?Tr$$M -zTaIV@sRo3<;>?ZjsAI~}HbP(%?rtaLahE@fy%{FU>hL0F_Ee@BBb74x3W^jsw(3#H -zm^@b*+6a~sd((RPFp)D~c?N@0#HR_QkKR%sv{33#?H;p7Je{pWVTvdN`zuAV%-3*O -zNyz_=;sSdGnMSUGijzlyR?$d78ogdo5X7IoA*6Cx*RIGjdy*X;5l{;0ZmJTLzY^3W -z)E8+G3zgrSm3ZZ*Fz*q{r}_Jc3wE=HZ3;aNTcFk$*286|(Di*aR{!_Q>Dt(gRK@2( -zEC41<%8*R8?7g`j{S$|ZO1nmd6_Qat_~@#%2>N~h3J6Cx1x_4V9x!h>!cc>x>1?wz -z$yfPebIFlFDd*O~o$m!1Ro4nX5828iQTBvkF>3ZKv8~*M@Pt7(7&=q5;X);3= -z%Gu$BBj77~F+Y3R@&SegZIKzpixyj>f6y$GvqQ5oi9JUc`YD{lk*k?Ch0s}zLa^D# -z9Amm_<&K(~a@cs?j4$N5!9uomcA0FnlvZg1Loca$rF-yZzc-yhDLTaT$d)P!ZqcXt -zRZ)byazjSgw8d27_I;8)tOw~Iqv{knx4ltLoWp=3TAy))fHKGWYsar%JelXcm?;j= -zney2W`jGQ#^3)BHZDL7tPV6#{&2Wf6PW6IoQqNgBt;RUWR-!3yRr3+T3eM=^yi!1R -z2=sSs2YMAL4;AS&xb+PodEs1GV_|529Kgbf33(&W=V=E&TM2W4-|H;poytF;>VXcv|q`z -zl0BO{=Yd2h&4)aoH8InI=_ErO0zc<5|4F4cBtjvshC@)`N{*0BS+a?t7n -zf=iMD55?&yaT|<%UPdp1LThkxCQX_ty>d(=vCAm|5IjJiRpcB2k5K-vZt~f}2H{fE -zBwzP%V&Aiq1-uXNCiqSS215tC1@ysDi_+>&Z?uJBgXCKE5&$--bTxN&El*z8$YZXl -z-^yKi%*^tcwlvbNG{w|#d`)-6)*>pJP59pxtx*iE?ewRAimt}s-$~N65l=jMe`uYp -z1Rl)&FRre7(L23ZBB+2^di${by|fyNSZ87RGWs7DRgrkkAxzA9Oen!M@T{Qm;>jfrF-sUH=#&eD -zQ!;of^HxAo+&UVPsw^O-%Iz$D%)GWv#KML -z3||tTR}2b}}Gr{AiC@tNASZ -z^VoCFLeBj@rq7X-rYhqLilz3KIE<1q81Ea~Bos0W`jv&55{4w5{tEc>CD0PYJhO=~ -zec~ZV$Pw_rJ{XlW^S7mLG-hZ)xfsHODNh(Uv2UrO#Ho$I{Gu9U*701ta0;wQjm?9@ -z8R0w#Xdc43?A6}NURYt9T -zI0J6TcX<4o!!>M(n4NhIx#)(>dTP^|l@BzT-upcLbWhsE!Zb;`>!H~beYEO@+N3OV -zwO2XK?C~d~@(7MHgDmHy*+@=%gk-q|4tT&yV|yF(ApPmDq_E2BFlOe)5bG8SuoxJ3 -z2oBL=XLl2F2i6PNtIF9U -zif0l$=!wb_A`5DF7U-)mP%m@HWm9S~OQjbqUX8(g3(=~K(+HciD6FNYNFosZz8E>n -z7rEFu2xC*uM%~xNe*+e`iQ?dHjn?Ljfimd^3rMXBZL%-d+3{$kTw8+%D|m%}%5}k8 -z5{E0@19KNZLck?J#Aj0@`da4Y833-=y*Mx%v$8}hWx7y|)EdLC!oeux;L1#xwwNxj -zGYLw<6U~W)hKr9PfgQ`&qS)_t*+Aq7b?(C56f6H-GCIP1E9F)(_*}j?jzk-x^9(Ie -z`{8Cy!!4aY3;|`ZIel)K%0I^kl}(Qhe(GnFIMNy%qOiNJvXF5BrI2sYjMNP8pq5vn -zIUtZWhopHS;0lDd##x5@yj*%xB)2%YLcQ7drt*U@JS+o`dovRG -zA%#)jCc%jmTJu6Ky(pyms-og2xnS>Rb)M+7(tm;0Wl|g4U7Egm+$F%W!ks^oxBA3^ -z>+JH6D?y^G0~-R##sV%Z8x!dSG61_ZL@4fGGQc>4v=7T2N(~JP$Bw5z!FoSU*Evgg -zrU37fsrvsiv_JoELt6mte;eA@|1U$E8uot-ZL0r&L!0scV`wKkFl)vjUck)%X=n>rf!O?yq5bs#Ftn`&{xh^g|1-3!LZU$`%WeZ+qWsNZb7oB8I%jHF -zYWGZp{dM15xEV@F^cYEEW1^vnkUdqm8HV`)-uC0tc`=*=fm_TzS^{^p-;-%xS>4;}C-C+uqcHwl7!D(+?K -zC^abkfYrKw-$I -zk~~k4xF5zBUc>l;DTlVi3~#}kK@{QV4II7V0 -z)HwTPgDn6>PSK}u=q0~Gox(3<(1}tMg%FFXK;?8HFyoQ2Npx_6iTQfLHn|PzTGqyr -zIT2-2pFUOt?}W4`{3H80`RAR~$wQ+i -z8G?Z~f1lrt{2Ir|CPl;$UzDXYR#kvEuyKA8V)bvNsQEj;j>O8Q-x0IQz)bt_t)apt~p;P2dSL^^Lz3B&JTp46)qF5hj-mszDE6`Oz**Atvsc`~s -z1%EC~Go%N#5qryz_3sp(ApL*KEwTZeH*MZvwwX -z%`%Z%Cr+MjlxK!6f~v?ZA`x$7bA#0dGF|6+*3pzpTBBNN_83$I_6+*0IfVvG>Pfq` -ztsQ#v#eoUL{)jNd`Z(}J_cKqi;&tyf0U<}L<2*n5F86Gfw91z$p*dh80(DlPfv!>+I(Q-R3KD4NotL#QL%ddASjR>1}%6*+{tDX$4jyx-#PLPJ4LRmbZ%)l%!RkSNxdU010JWQYHu23gpy#Lv?DGr7ymYn?vcil&~51FNla+_e5GX;afH7Th}f_ -zY{oS?YURdAieb&A$A<-RQ&C|Zmk*D0c~NNs~HSYg90f>@={^8Q?tAdYYt_}+Vup9EvD-df9rBF+z?iLHeUTPn^TAz`yZzsx^yBn -z6sJ!@8}IHoGJf&WIob%_SS>k`B}xK&hIdA%c1)KrB=@PjBCLei4!Q)4qPA*80+~DE -zJQi+Hmi7}lOBc1b%i{PlJsQcOY}_)^w=V~u;osP4$&cFh_oqL9!jJyhCVn%`mrX)o -z;Y2}`+KWo+iK}7x!o^Y&K$tHl!_$dPo(b^EY3V;g(8~B@W~BcYH+QKm>qn@gc{w`b -zdZa&jTrIaaNI@gD!|zCh)1J7U5JA -z2(Tt4!aKK0^{3*Nd=lf-HG)8}pq$2e$>h8WTkrwb1>&Oj7AvoILv>ARz`>6L%tFaP -z9J0MS2>A#H0`b4`a7EUfb)>~p3(~_i#e^Jbdb^~2DH%?*T5v -zHvdKFG^m;$+Bl1Vpv%B0A+;H=n@;8i?w7zPf`hx?Cc!YHQ5biS;4ng>g8n&k8ur#b -zHEL#yB=4aM=AJSH&KB>`KuTr`3OUp!n?h{D+VM4+l)kbu5a>UORsfm^c`Y-DY -zYV8}K^=;Va8Y~0;c5DqYKjC-gf@?}Zlk;!Y4afHniK4?^-Y&!~v~zzL10bWq-+&1x -z^2#Gle8?vo_6T6w2+_%&X&@$wv -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 -zok!f*IZ;tH6TSHQd8 -znTm`!(r|SUo~b?7ySXvb3z8MGx{D9%)w-Z+kX<@z4i&Yh$fO|D)jRt8PNl9~6aiKs -zt9j5vLpFpccOK`l{eX|2<0{eV0jM8)D`jHzig -zdb~s96Ss`R#0ljM$FTAW?by6`JCpu&Q;KK(wFpdT>XL^sa@_*q2C%{1H0JY;bW}%& -zFUl{HX2;lT9bUURI6e8z-H$hy0W%ZP0s*jgRJ -zM#3B+$}B4F7kfyG-;(jaoXA^O_X5XFhtGkKJ0OpvNqf4Gqsfa^k9R?1;ZJSc+Cxj^ -zl(Uj7ao0g@L=qFai{JtGO5{zX=wzRY9aSaQB8WJmq00HEi)Irx?=zMsS{edZC~EnQ -zwl48(^{Z~nRSIGE{Hoi>Fq#M?y7F7H~TK`Jnv*tf`W;dbkSrM<6BOn=QQs)PrNiunV6+Sfxx -z8Uz~Yohh~tC>kKas{;j)Dk@f^c`BG{D`SeXPM8zX-S}=WZ5n9^Yd7W< -zuxZS(i-v&D=e;h&!5P^E$lwgax{jOR0_i^hC4(t(3LOE~Po{S|U4bBqWRO5Kx`_8|FEeW>StwoC%-9SG9;x`-UN*8zDgU9{ -zjK>{=PvqXixs;fU0#^EUXVc>sdc$=>lQ2}FGd;$dB0BLwGC}Cu@F`a&6!d{ID -z@pN=XlOtQo1l`#6o^PuaO%ThuLxEh6Io<}m%bM=*KI$HSEXIKlZciyK($JQh)5c&} -zPl^9+fjiQegWqm0`MErF=A}(xkgDvW?Re8W)#A@8@k;zPo=k%l6rFq)SZ__7F>{>o -zE&#&gRy&!p7!LU7Jn$T|^-9tcL9b7@%3i%nPv#C~4WktpSrZ^9ir>pM%-qMDz?;|% -z-`3A2DLBDZ_u-LW=wVrKV24PgxHj -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 -z>_dxV6Spzk5YV8?2@RXRWe~zBVE -zy3a~hl&9T!*&?mo=N)*hHU6Nushm2f%hO1rL>+Y`=fn6VJtnPA%i&ni`*tQLY7rLn8hnNS1HH|Vs9;YqazdX#4p+gwbio&z5zy>&iLE!OA9@Z7*&Y*6!P7j^x=dVMnbNUywRR9&dGF@=tp!| -z&`_|>ENv}PM&<%cSGHju&uv157!O_$zp`ers*}>w;+fC1vV_y!fT3HBbcCUznxEJ?KA@wO@jNyCn(ULgDpF -z)fjLxRe-F>OrQRC12NzaNVh{<6voJE`<=5_`2r?gdAcGK#Sv_J?8rR}tggwr&*uo9ZumOML);Ao$?50>-F3cyM%~a6DY9}zAL73di`Fp?oT;46jhsGz*Dia}_{oB(N -zT=+HjKiH^@MI5(fD+a_PnU5Gz{P4zSVvru}&I@q&@+l-#`;wAi&f|I -zWF&&!X$AC+HcQ%hXi~u=-;LMESlrN$cp$t0hERZj(LIN(T -z^8Dha%wK)9|3sd2GDkrvF<2(rn#&Cubsz&1bSL%^- -zFQECP*I|^I<>sC3z4Xq<&3q`bLt9+HvTL -zM5B`xvpu$0f)%F!Ozte+Uz3|FbJEp>RVFamfm=LsV&fmqa0qHdr%O$EK8;f5K&n|p -zc=7e_Naz}p2T#8vKTbYtd!Dj41#t8L^`>w(xaNKkZWle9nh&rg5lX*Ub=nb67xwi3=B -zyV07{?5dR)e@d_WoH==qj($yUjbD?SCQ9;&#l$mZTNH-50YnZ4$at4HU4lotv-oFZ -z72TAZeXBTu$H=UT^5rFxm`&*l75p;CgF;q*-AA^)6izF@iPxL -zLa1J+1K+m7R~Bn@qDAv&a^NT^75-D#f+~a@h#DG>j_Y2i<=^Uc!(JMBx>^XUmObzxr&ac+sNPzAaemK53$YG2LdmwGhe1#H68Vmpg|ad!{UE3T -zsJ%KG;07TZ9Im${;hQ+Wqx(~w5^bRSu`88iCUZ7N2ck< -zmj`%WL>&Hm;&oh5z`i4j5rVA4DaQian>6Cz7A$b;L*p+`QzX(V)J1TPLUqQjUrk%^ -zaS`tRh@4KGJ_|g$crhs`^4A&>EUimWU}b38+A(180x|>;Yud+X(gD_ymYWF}Y`u^T -zr!RdT7%U-Gb?=xFK%*-J=2*C7!1vPy>#foogS8{@@QhSentvdfo0E~Wm>y#Z!Q!2i -zD?drBW*6YG5^dxYck_1oVY2C7rL}bqkeQk6x=4Wa4ryn$WR|+|lDTqUNy)<38LEvC -zjJuEP;T9YIdWn}-i;-m5u#Yt -zh&dy07Ah%Te9O1@#UWg{7jneUpCu*A8n4NAt=oIJT=g%Sb|dRze35Xbz#MsIzGOj_ -zT1(sjdE*!*A}NFN7%3~ex{s_lxe3@=^5-@Rmo;32qK#7W2imk_256-SoSXf_qHdGE*&M?f5To%%@D -z(6#EzP*8y%j=(~^T=KR1#Iln`H)qs9e63Z0Je-AW`%6*@Xegf}$#)99G!FI>GP9|C -zUgI&Q5W1`Sx2q;6D2A*CUgCB`>s>nvpIUXVP-kpKMaGU~{w?22G!Pt(Yo!suL@l}}$jBlyugx;n%_GDuhm%5Fj5J&)@F5-o*v_WJ`cdJlCq2J;;UY$;c>dO8L -zxlpkII#S%m7cKm~oa|ymI20Dz=82t81yWmb3?)?dw*{4XoZ-7uTKHRC8Dq{NJ#YW! -z%a6YXoIT8qj~oFgNGAU2M4Y -z8tXAYC59BbV`mT-&BGAn4Ok|f*{Z}7sv8`4rm1kobMV-IXI{ppS?V!Yh-=9VcXQpC&A-b%} -zDwTaA6kC4lKbCty7IiOs=5mIBJiwVMo>bk_K^poFh)%#-c}$NGoODvVMAbS*cv6ZR -zjuwF8KbAXOn%GOlFZDDOOc10Ix-kLREMK9{e@6#8zroo7LhacwGf8PQJaK_d`pddZ -zT#ueReyPSNAybInZ#j`5&@9gshA3WXjJwL%h~l5z-cO=|8cm+H`+KyayQDxz^?BzI_Xep)w!I5Gye6>*^hGL -z_1c!F>2wztz}(0QNESv@NuP0rCDA&a10X%Zh3ue`1mq~+sLJN!j5mp&F-grq#ii00VpUs7O?=TBHLfYzgX=87E5O7F>tTF -z=Z;xtmoAfTtEFoIQkrYi$dR0SC~dhI=)-(sjfT%7h&&Q=XItmXSJh*85HZ(0UJ -zv|TwDqi58A7)mEQR(FY4MCcyZ1+v3g-0gBeg8{r_$OU{+gBrBAbt83X2JMB^*X4gqq&dQ*SGG|-gtEyr+SzpFo%Vyq0Wo&U -zgarC`OXxgECPO?U(HFoo;l(n$hzgQX__y-dG0#Am_8RemMjq#kWH54jO(@W{yZ^5; -z!nOp;n(lDP869^imrayg4wWiI%TQZLAd&8I*$^jL4$GqtyPG|44-2RPBM6-W#Plw~ -z)w-vyjFX=Pbo(~KO-;dA>+}l)-+Ues|AGy5D7M3@Gbg6&7}3Usf_E5eeK6i;mqRKN -z8P<)p1$g(U0RV72&96%Gn% -zmvRQmr;qx54d)BF9r}_yf10pkFa_h)`Pip@j)<*Jg<~Q{ByEh?#U#IDTq7|UV<+i$ -zhri622Z`g&LS2S|8t8xCSLFXOg4D-M5MvH>!&eP|)h}rh@`(T07UtN}05a@OX%KOk -z$wqeD8l{8mvxsrKu%omLuyY-t>CV!1eM|cX#-XF(6^@0B^TC0)0hTGgY5yTM;&@OK -zu4NtIpIGOKx@!shOu~?n_^s0-tns+-4KCHsVN{<+D;*tVP}vmw>2%X1W44|*8g!mt -zbv|>@DSkJ&(!)t?m!b|R8#U8>`?Q|8wex~P)1+ETjq@MOy;XVA!G=PUL}}xyC~Cty -z88TfmKcFN)wxHxk^)9ZGq-;|ktnMix=Eh+FsTxe%ZHU1=Wx9SiU%^#g%&28$%!=OX -z!(gVxPHq|xb^O5mBv!0r%!Ed{r((>=%M#Rt7J(NdRXBN0G%A{F-`|p!>bR`Vg)vm2 -z7C9|eQ1puU)n0#1T7KQ=nxT#0U&Iaw_Su>BR>EINQjiQ??5zH+LAzNIjf(Ma)H2_{eQ7Cw_)V1V_?1(Pe -za3v~;S`{cyJ|h8<(KMDCA~Ga=y0y@T`>@YNPLzwneQvTHmx1=04k=rp#oDU(JaK#A -z<~fo!m;{3LY6ZkP)0>vU8A{Nv%&kTkDl0yV=o;<4S0(LN*r48A-rv_|;vNF1(-yz1 -zrL!c>+>?PyW6%n-U%KjKq@<|5Ef%^3%C{CHYpn@17Q}G1k4O=A?*2U2b^i!{CorbV -zkXeeJ4z=f4ykiv9a)u=FuJuO87m6ZrQK5NbvTW>9H?Y7JUp+5!Yj5~nv_9%%varlz -z70`#?5@z^Va$(eZ&1~9ZX`^{O`9)n>HG-PmqSH0u&1%hNpLe|@{ButMnQ><-t)Jgd -zW11JF8m6c;?JE})`G&(V6vll-VHO$ZE2O+)-;3Y)XO?f@nCbgaWNG8)^6Qo_iz6EA -zy!9)!WBY8(KuqR|%h>Yrp$})MUQ5=Bi%T9lc#s+2{uXUp7{$wSR+3&!k>!9vz3TX3 -zo_phP>Il6fLwFQs&lZ=%9Rrbho7&{7W}GD3>b0_)sp{B;5mXHMUmid)>A|63Htb;O -zLRm1Qd(BYiU^j3T;6MqE09O9=U?&x8&AqY^!b6I9dvj?=iQJ1i#i8>(R}bQe`}LaR -zxNGl$o!qrkrIsOsd9*<=Fjn}q3s?wWe&5a&V|$-^lnmLi#3iStt%Jz%2oq2+XGeNB -zeV?>&j9R;3hC$Dr9DBUfl4eL3vk`~#!6K6Zy#QPd!E;VDFSb8xy+Gs|Rba^p7gFT; -zRQz~uPP0`5HbJs?h+?P|o$)2LiS9gkl`S|_gyBHuRdA&w&z3iuz!!NmJIUujQ1O{5 -zgnab5`&O3pL5$#=$`-zTd57ol6Sp_6-DFQBQNvV9iDDW%ul@nv%1f{B=NR58jAXKdW -z?N_R!BhCn*xqRO(qi7c?SM0$npEfkH%{*q7HR7^}?KR%Dz{JEU1bV*sYgBQ8PD1yr+O()tJEa}(g9uc@+yqk@M+rlBXo<;!?NQqn!!W4E4 -zuDfSsP6cI(`ZdbbGSd+SzV2f|Ew!T8;RV} -z1$=nc&OaM)&SJJ)RrQZZKZT3zq-}C;3Un$f)jC#=$&oEeb!36oI@wLU8nr-Y|JmHe -zV)2OOHB1WEHrS!%unHx=HaFh?Y;Nt3EUQ=n2SR6`A3KiSO~pGEo&6I%6Rz -zymZ!a9IUyG18{oL2&fIz9_oqPGHZBWXRvJ1XpBLBFx?9tlhEb=;oMcy){@#|Zr`aH -zEtqH=yZ_=ABGopu?)D`0)zktoO&zqa;SySnQkvD|aG2o>I&q`%r9| -zm4V*C%Ai?+o28I^8N&#!-NuH2JqaF@Kc&)b^wU)v^<=a^3*mwKz#e!u=?bLDdl3!V -z)|3er34WV~Mfotg!y?U~y;Sg97JN&d#z5}%BO?(9eK9t#5q5uHvFtKmk?5Dp=?6!U -zGB~ny!6FT2qL^ve*3c{{oiu(f9XTBU8=aM~`2{yqj{(`dqNtJ-A4EXk8n^Ae+;EhA -zaxIY6cCso}oVr~I=~OiK$)p)boFrjtM;1OzY`{Tz! -z_2gUWQ*o4x1;RwETaC`6Q;XB)L`wQ&Gz)@>Z9PnJL<+{%UA!a{kz8da(kw|ZJPI=7HMs|c -zv3np&yp9s3EM8o6@+Y(?5maBp?TIlex1HSTDtIP&Ro?)Li|uXGm}+JTsxy4}ipwI+ -zS=#H`NYL+UL56+WQYYRzUZ*L(0Es-@PYa&A#qB&BePIwC02}A20G>7y+6^ZK+= -zAQW9l;Q*IpfIZ(wK)du_J~YKhqt_L88&{{r*f -zl4X{dk1SDxW71DagJ{Mn=O7i!HR6o}n(KV*od>y$*`<4|q#P=%qZxw|z@AMdPAE`c -zPTWMG^ucx*$MvrPK|_n`U9oCikmfm@luV^JKz#X4>Q>tD7gaN`C_1!p-wOL$2>mKN -z$+qIunAeOP!PL`izmf!0|AinJsN5mhGDvO%%yLt_BqMxX3#FW{(gJXS5R~66*AoOR -zu9GD<=2|lW%OW`fq4l~ZUS?*UZZ?|u{{gB%Rlm#sHd8*9b;#=NGSS%OWgU}pLC+(g -ztehEgOQ;ltU1BXEnmo!Q^Mf(H3W;3mV%;6|gLwm9hSX`=*Y)5b1KR?A{z&rxGq11I -zF-yo6@Q%ckcESogHp{<|7T=+m@H7yrCWZ@SA|&*8* -zXWue)56U>A8ECp4k=z{*h2Na$9n@%FgfbS)x}GNT9~T@cpTHIb -zzFu<%WoL@)!L+r`TtV>0TkUjCVMAkKxV-)&v>@9DUdQG=` -z%dXBL?$ZnFf$tl$Mb((bJUY8rY&(-Mh*mJ}10rY?ZB64{TJWA~7Ft-u$LT1%*0PmaX-jQ;#UFw%bUpnO0I-jXr7Q+}co -zNdstGC){}D8}N&2ffG6Bwz!l}@dIrTLs^(JUH6B!{(AUfbh=~6s)zFqZx9(_H?&B8 -zt_NXa;;Gju{TZIkyg#2Ak-9p}Cp8wtD@qP_>xAgY=_DZ$+YurIqETWmZlqZ`Em0E8 -zaRyg)0T(bdCwEu5k -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 -z+c$J5B@<3h8(7@4N?5Qtg -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 -z1*PYTV1*N9J-CT?H}*P9;`V_ -zfzVZF0j`+o6Rph`vI(d+9?M`dYT|@27o+e>m;(?bgaa -zZh@q&`CDuE?JM6eb^7-GZ-?x^y>9;)A+|WbyoV0n?c4W|pL%)yZHO-4hP1C=Ur*o8 -zF@L|V{`K|p?fdoj$M|iWF5f;6-;Te2`@H*pf8Rd8eEWPnzCH5l>$9pS7WDpcddhPA -z$M>tt7mL3tPO^SN{Q)ljaD@uV%;@j?q(B4BdM+XoXFKRtDJ~`SyJZajK!ls;+N=O+ -zCUBCm7d)cx$PWEHk!>$KAT1M!s+eamzxRB@y>g_&sl>~J`MXwa0sXHz>Pm~?bbnUr -zotJPqp&e-4lpU@N&)|tZ+@3Y;y72N~IawK5F;y8!D*P}QX>U-%jjmp>Rwi|CmBm3= -z_|%Ji>1@2S`_nk}8X|N2uGWi~*pP(AZXjg|)3fPa)O%kgeueFqV@};wZ<0wXbpvKg -zTHT?$0SX3n6Myf~S&^GZ0hdk_4cw`|B&G$Q8o_{ra+t_#02q<%;){k~Df#aW73dA7 -zS>BoWwGn^M&x-$HLtccx&kL>RP7@jO*;Sq{{`q(V>ou$cx}4(_EScb}<#XjDG98I{ -z^s={YdcpYKnkf;%KO9U4?ECq|_w_}Uw<0&HaTSDRRTk+~K>g1a|8iCH)W*uLOdD1N -z0j}!8lQ`;L0u71nZ9&OYbkbu~_>9|xwIswFC=FWl!hQh(A98% -zQN?VaceP18X^9?08i)w(_L0h{T}=L(22aAE`02e2WG=<<4bG>T$IM^rbfC#b0%D-W -zy2`mqaCr=dk0Axnu6mV{dZ6unUix9PCBvc#;3>xtkb3p2T;c;2_e`t<)G-j6^?3_{ -z7N~ls%UpV;v-EPYB0^8Bo$-sTMaooxtrB^#kO3%(kdN(2jpW~1eIeZ)(GtR869jy2aH;VI@sX?RHB72brR&1FUZc!)n-Xu-4%C&W0uM#IZ{RBHUQB6n;HwfZoa8ipedYe(c -zwq9kFIkKb?;3Zcm;$DpdkF6zKq5w=RP3&BF>Jn-)CxvQz{pri-iXQ|3M`dIphf$@B -zvm-oNxZvZ}n6?CG=H;^`>xy^Aga?dsi -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 -zq<^1IyzCzCyh?!lp^*eoavzw -zHgR)>0q5{~KfKR`FXdN_+AKeY@9oV1<(-#f&yg%@U_*JiPkjC56_6vLzKZGB`MeRC -zTUm(VemNC{0sGe$0=f3Ke;c;1YuF_e9`0f(+JHCk#SRT5cwt|=!$XYo(C>T~@XJs9 -zAzlN%w1mCW?<i!U@r@Ucgr859C3r}6%Pe;Y>mH$UV^vl)Hi6h&?}SB -z2L~_lN-Wnc-oBmebQ9n@b{+QL&7H3N))5_{F@8>kch90rLIy5e{UNZ|Il{ZVW#7@3jIJYOR8f@NVq+X_6k60}|$FSvSL2j*qkHe2MY4QXVqJ!I04gx!I5xbdgGW<)}bo -zqHD^M`XDQ@gL6N|4I4H!cg3;tzJu_Tu;suhCuGyT8(Fq#P+|8@yRs|?nk}d75+uI< -zy*E>J5EPs}8_*7Vj~l>p=OgH%cq%iy(U`28#ouufRJKo%@gb(_Z()x1+pYP6My|w@ -zjX!E&$jr_Y#h9H2@g6XZXV%CcUvk{l<+J#w$l^^lppEgYj-M=rcj&H2pgDDp=7yf) -zT6q?7-R!6tCCLDC#^{P_88pDI$XVcA@kAVDy$so~is}->E83|-1qf(mE_vmyw(Y4I -z`+elR^P+|9d*WOsBgE#+t8;1-V8E7!(1wH;v3Rz4$u2ZADa*|S$gcdEjkWjKfg91O -z;v|0Z$Z}b~?nL|Phy__^LGxoN%MJD+nd7vURGZgTAuC}dSfAK*@GIFPiL!gc?09T- -z@(Gf9&Z5#u?q$)28Qq8cS!8dSRKZO))cLE`nqo+YdK -zcWP~v!=nLSW+>`?j6_uCBTo`25M6_@;Y+rQb~EM;G13OWqJ+B6xY%IPnx15-Tps+f -z{B0k~&QYrVCFBqvF_PvIa40yp-R_N~jBecuSg@tPp&S^lhF#M5J}{>p4}v;1kTdcp -zG8gT>l~#lEYikUU#jil@qoK;1|G4a*PrXF&EQvSU=qvCH0E372QL3pZj|?c4(LM(m -zChypTgO7e)Uy*lTosdgWW@bRW4_O+=$cCrUmJ9GqU?xqaUkv^^ysLN)>unc@B3Mp_>6>>R>E_kO}*WB1GCcmtfW8NY-I0q9@W}u+@+`CQLK>?(|IiQn` -zDim+@n!fDH==kKTS|0GT(M!`t505_Yi!3V_QkKQhUu$F?d3^Cm(ZdbDK_kD0*bZz& -z?0`1sG?JYCkNrBc(fz^2C3zr&qdbHt^Be2sM!BV{snKUfO@ -zYuAEm)$;fijyCPeN5|w2M~*(Ul3d|9*|^D*nW;Q?u^k6H3PR4NfZ}kqejjMraVuBQ -z!xu-i0J_!>7h7?Upx+9k?oQ%LXuDQExr>aT@ZQg-k}^=E4cmq?u?wXOa0dVjkn0~M -zJi9)u&Mn;7JBB8DT4*T>q9Y@Om=vB&c* -zgkF2TVRWf6S;_%5(0aIJ2=eEFzeC>o_V!CMQ)s!U11wfiClZM+5yNY=9cVJo9jReTVJ>|3?AOcc6kgK;0xE3ZDmXOLL~=vQ4FLmpF9Y+bCy<9jj4EAE79-Qn31p -zgk4PjT_QAjcq87iMqPk)f3zIj1+gY>16hOh7G=j4#!%uZ3GGapgF8^^qT*o4S#@qJ -zk;`&st_9GXpxnsw+r?o(?D|O};36a%?s#ewf#!x{GVVBD+&d;} -z1LDlQtFX~%r+P3_@y8p)1ts9tpY!1#MxV@!@Ef4N_`bcC5gjm_c}^1$@R0A|mO9#$ -zVDr>XOQ0*~CAqiu^Tmw1$$+#n -z`t$gdmj(1yMD%){{VwC+pk(0-{Xhz$gT?ota_q`=Jcefpa7P(&2`8da%W@MN5MDkc -zsB2k{`MHKHHr3;t6m+w`6TKRQMF5Kp`E|{R8s0WT6V^6V`SiFJW-jE$5-fD=Afd4GRSl -z^?;5de_1-VdRX@x>M;6g*!?Q;#0(w5?)9T2om*H^F0u3>^K()Z6bpN;lmfn8m=9p8 -z;i_(FE$~q)8nvm&^La~pK -zx#`y6MDi#PlyldXr*bN`A&K%KS8HleV`_fH`JwN$PazGOY+z^fC@znWSu+uSNjq#d -z5p4-h^CC12^k;qa-+yGvoPXR5d>B-MClyORty!l?ZUHb9ab|lSQ?TD{z#g`O -zar*g69Uoi1rX5ajKo=B37H9)m4$+C?wS@J_UKi^mdDqbV%VmOm@t=3i;!yExTueWL -zT~why*T>*5c06D1M1HqGYNp%Efj|3rxd$UlF#Cu=%^%j=Xr1+-Lol~U{0UNXJ4KmT#J(2vq3zJ8~qIsbSmbjuh%d|Sw57_qgKW28Jn -z41P2E7CD{7@S6ui$N4Y(Iv%M7WVfuJKHX|qQ5V6@7i<5;N+7V -zyZ{?c5yVvGZ5}hoSJH_Q!Mv922JHnymtSZ3PJJ-A6-AOTUet~BZ%cHNRV9P*09MoI -z^Lp1{vM3RCZ@>B|0rVjW#536VC>Qo0CR_qn04WS>E5V9ED)ksU$t%$I^{_cPnE0DD -zZLUvMvxz^YkKEJ%Db;9Txj1^=Nk8h4>pFvVmX1^Yp1EsmvDX1Q+}6v4Vu8nykb(X@ -zwUKmGYu-~_B{$kNw}8cl$%8Rn8Uzp_B?K#R{L -z0MO~B@uAF5x -z4L4eom(uIh#G8Rxk-FPcF5e;Pg^ryWp~d1Qoe8tZnjGrR{JEz;!7iZg)}|;_P-248 -zLhh*?AB}9JIt!Ua)1zVXpy_-=j%EOb&7LG^$>>TnlW{7`8K@LKtLMN&(w1Y|z<{tq -zV~gDe2@-FYXq5*{AP3yU8|>l%Z7jn7G{(>$(Q$Xg2HRgiL6;#ja_APx^p%ab_$lm6 -zgf(6*W_^$mUP%X-Qp8}C;_aMUMU5u!$JCX>qc9r$^Lq*s1cjp#veD$Li?Wu?(}G*+_dS77}5y@p`8}Rdq)e_i|%!9J=r!Vekv_?79qi -zp!U$vh}=pYt6`M)H^=4xEvUnrKzwFa!#RX+2Q~L2xe!rSEr4RCjk1FzKRqb;(azNRvnLIfacX -zhCMhq&`^WU!BfB;0+Oo+DWon$Jq)t)r(fvv7UP)n%mvuHo<%?n5!(}@V|q(0P|IfD -zT~~`-N|NZ=go`9tP_zc_C!aDoJx<)OIaMH;ulcL_X$dxi^c^q&n@y=#Wr+s!gKJ< -zdCjh@oU!vgof$6C?ah&q*^o0^2Omw)i~~|f7N-Ku;A9t=h%EjBT>-c+>V|Fk*2A39 -z6uR4qis(>A-S_0m7ID2{>e_9tEZCCrQW3kkRe1=Q{2k!M%sg?Der1|-yPO;HQ4AHB -zJ5;t2W9d{&oceq(l;~ZOAFgL?%Y#8mkv8T>MddTVid~HjOz9;Z?KVPO4agXMFw?$I -zb#e_=OpAz(jE3{`rv$07Pg`09eAI5pN*+C|Mzod=wWei*oAZ@#4Jc`8k=+6`JMA=U -z7sM2}J}^qGPQ74^-d5eS*Jua{QjND?b3Ae+`|I~#$^xo^-S59Ba%_>ysJLA_+Y?{| -z@xTbpr&zn>%wZV%WP@jSn$va0d?6-x;LQ;yW?*g@HEawLFii_*`lD9k^qt$--^d@@ -z&lvj3e;}0|f!lX~;XNNBRQPVLdbZwg;y%SEu{NWRXC;ZtAU-;+{-NP(erz|BMms1= -z6V^vOcOoHFDK((4HR%PVeGkuq$w86mrXyEgs_h1`vLG24OemW5!A5rP0nt9cgf&5S -zNPN=Fe!u);>TEVsqV7h%;M+BCon6lJw%H41BL*w?^`rf+Zzfw1)Y#V=sFLD~{VIWU -zlJF8N-Ep<`l<#;<`urMFEHfi{y^7wig0;MFf85uh0+2}V9H!Q4vSCAV3%222LLZZ4 -zURJ+ME!cefqC_Uvm67+nDPB>ZDrTG7)`i5FP87mZXbN3lJ;|{;wwMfdSYJ~St1FVC -zia~ts;cSIKKX$HYKq3IukSPn!3y?hzhYV6Uos|=_Ak9sd0A*zhN6@T6-`iL!+W3F| -zFWDIWkYJ9N@m~P9|9?)ja0VAP3HFitzx3MjFGRkHOCd`N5j+=omA9$hfc2U8rw?15 -z!{mBd^8rW->G+r*WQP2uuZ>rq;{(rd785aJIDh^84Jh~*gAi5S9`dX|aG9uA>rkVS(PA7ibS*X#W(|OLP1dNbcLWJ~LX{)`EFIxAPsy_dYKB2GN1R?cDYrKqUu39nR1j%t8lNMo@2R -z{PG?i;a5%swg~{s;j@^#Cq+Hb+3A>b&5Psy&Jc)wVqR53OpRpGNhtUWc>I(`R#l^Q -zoi%H@IS5}KN;iDufJwghV(u95ymW?%8W54UHDC9(GFmsZtSD -zy-!3Vt8Io`MJzR0s_a5!uVC|D>N0D^oly0pK2l3EbXhGN3g#oh=Nite8|p9;oK#qo -z44HWk=giS7yNYIbwM}|b#dG+~q@)i92qBm_j1~AZ@SycV(ROk-ZV3&VGe@}kc*Swh -z4}zwe@`J)(7xyXF2Nikk)1cb7`1t`*li2$8%z6QDe^LTS!yPL6R<|SvyC53=tS+q- -z<+6s`_34j7tsq)Qa6S*)Mj;*)#zd -zg_46+5!{nzW$NRRXv(ui=4LeMAd0zI5j{Npm%cKdC}O-3&XA`l!3_X(RM -zr+nyYt=NkCL{5TfF0TdJl6#VfMyaa}iEv>8P(6cY(df17tr6oN+nj<yd0Dpa#=%k7jSbtLbWOrLQ@!y~kBGfc47HOa}?K2H?+Hqui6zCYpT{f9jW{+LNyKy(ZQIjaq-Ou1s0f@Pxqbyi&Ki>+mY?K`*F=gQGH{r}i -z{u}M|qC<+BJlK<{RfWj{7lSaixP@!wV%G30#7A8S*A^%r*Zxq+<~jH^=!8#aHPHoP -zS_9JE**qczC@2AFXH6CxET7ax(oaAgw#gPKO*2qahBFyD9?kbGOmv|1%r573f&8{( -zSuc(5S`5P&HwsO-v+p7#TTRftEXB&r9?&=t3k*|T64ZdE4JsU$Mw?EcvMGyT0OUX$ -zzXCmG{^~v5=J_lTKK%`h2Virwles{}icq7*X|<3FpYPBaQEUF+e-b$%w*fBJJ@2^> -z@mU%LQvzLU2p-s3{7eFUJtjrUFS$@Y*vzT6+@F(6SCMwv+gCgQzlG{0gGD_VB-NWj -z?y{;X?lNS%$8w|Op_YGy=I=|r4)|)&-DOlgM}fXknumokG-nIBFoEqq#*CN9n4LtF -zbG;xF8nhCk|ZQv&IZ+qwvL -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 -ztE2Mr=LTEsGf4Vd`z}4loJi|ebv~x5 -z#p*#-rF9|Mqe-CH#Qw(|kH^YnqKR9D#23AXYVxD&YquQ>cD~AJTII{*D@v=T4Ro}9 -zdYAob*lgfFJ-mmseEq}Z2{HHh)Bp4NQ!UKR+a -zS3VHnt?EM*duq=~FGf)`5-`{l=I3*8w8vG;uhf}Cq72|}T{uJ-2|L|8Wy3ud`pqq3 -z)j>&9%f6TbqY3iQ0MZ)y@hHKDVN)4X!Wg`E;yvI#fYkt(QVAdpklo>3)mm2hLsAfn -zl_$Bh*xd6Fd#aR7I!7JfIB~poY_(*&Ux_zok2y6gF&H$~Fd+a9#O69V!Vu74?~jy2 -zV4Ou36H6ralC-usp>kst0m2+z$=(m(EmFQ!ZcuiZJKp&YzKB-4kPlW27piw!CF}*r -zp&i7bm$m0?uO=2K5nD&F_F6|qQC$@>@!46H7Ty4<jK3NSr&`1;$ -z7WWIPCi!susDS#<7;mWag(vyY%@AG~)#-f1Tc(6T`&7ao(4)FA#rt>oI({vF6-{E< -zD{It{H$PzF9=5kXfBq~U=mOG_CIySC>Il-WfGC4MAM*T<9P|tyz^P=_fNV7{3NY+r -zG{Tl#^MuzEAGgFy>Uu-dAUOQ)^RB&Oq*}I6$1G`#7P%meW#Bq=^WCYjhj1I*H!v(2 -zc$~18h85LGwGgPnb8{I{@wa>TPH8U>XDiy6*bZ`_(}$n7)Uljm19xCiZ*6LEk>}i8 -z{kSEep88Of#tUH$Q&Cb5wEr-XDinm>eHQRD?fU)t{qdLGW|y`r|JA8}nm8Jd+#_H* -z#EJ`3?N^)rzg-3QAlODn2d#~i) -z6oB$`^RUUH5lLajP(48#Xi2NC{D_cvo)0vDMc-xDOfw6IO3r?S?aPW#P -zi65v(X{WLR0D8Dv2{hIaQg-qlQX*;b36&yq)RMrmHzONu!^9qIH?qqnJHo@?xEQ4H -zW^d7=S|wRRrOJ`rjAgqZ|Fw9iAZEOc4_msMgu74QWHi|{LVDV8=!s(>U<-3GcF?Hj -zj?m2}^X1{J7=n>US2|pD^EiJ8-ebL~^juPMt#Rz*P@lVpnmWd#C^aL`C-~F{*RJ_} -zG40Vn?(_NYfeykP<68UE!cy -zsGM25)*L8RTcc4;0*|@`XGgYN70O4SK>CsNKvtl&&Om*1T^N%NK-G>Em3@2wiDhV$+Wru`2L@Bj=V5z#NkgM`>LzTtFa%Op;L^8qs(sW`BldnZ%QNlcvFfYy -zp6&;qxo7tU9Cx<%Vx@LgHDb#cbpNMCSD;lf(;$gYi`6n{za+SSv>Kn-6G6);)3at8O0N;LA`hRbVWDBz-hZeu%R8SkhJb=RfHT*}~Bp2dY#TBts#My}Ba;!V> -zx^sRU3iAGjp2D(%K%#LN5bqd5GT@2vw5FHM%;9PuZ9;W#J;m}dvsNtYI-a+*mX3gC -zTlNU8w_5nr!u(xzH$9`oRZrj@UbQEUI!=3T7sfW-$hT5-l1f^cGPq)P$Wan#MWUq2 -zkar8|%5S3sU6@dFE_{z?q&d_rke9GZ`QkKw#I4dO0eb&mu44>Y0Ls{RLb -z+4rY-*9{j;pop4#*@(4dQE>)lU)G25UrRn}U?FpP64~_CF4=(=mmna1dQO0_070R? -zMs2eMyj%Ei<_lQ{IE-cRlo2XciULrBv8SWCrH-70{LNpovv$J*m+r@bXR=|CGnio? -zn){iRT1=6yTEd7yeD9ktfov$%GK`nf -z;M>oiZ;L)fbBbabmjf08U>(0$$wW77!BTVxV!dK)N(rEJcy -z*#_MTJ$qvaP>q{4Q??bC5A^?9XDLU|vmQaSa` -zHMY=YMVKtfknANfxSG=+cL=AbxopH}jr*x|!dG}iprdI%A~?zMEzSKi+^>3@q!m4f -zPgERCA3U0h&({;CE4tsML -zC~R#_x>(cOpq9Fa$dZa003_<(l73mjuSzFS^sqqTYx@Da@a58gq&rFldCxToguVVT -zS_w%Zcmv3wKvx`dPvA4vq4}(2Q!L|aZ;G3jZ1X^eQIgGc?nt^E&sQf@~Lh^(QlWH#wjnGn3N0pJOkRwg(0_sN=4Wu&Jwc8vpx%I -z$6;3Bq2qb}Q4pf%!m6>}4p-=uOoLXtw4BEKRkb)V*)YJK?mv(B;WMjawP$_wrWjyx -zFt%4EnM+%3hl75wZ@|ltCryX89X(~>Sim1Y^FF}N8yXGFGO`7{BPo}ia01WW>Mvxx -zcPJ(z4Wz1>;R2NiNj+|P&hZ)Rd&pF(8=GR7J+l5oF`$i_*=UL4!L7_e38&g3^^?Q| -z;1k@k{Z^W`4DVBFFj#f+K~d`tkegaBfmMbbHJoH&G2mko|f$wx-hfSVrh+8YV5$Eou`{$Ce>cz -zDX**|$T^^+%^k;htQ$T*bwUbt(=a;4CI~IZa|5~E%;V?ltvNN^;Dj#iSkTSMI2E*A5x_e?D(2Q)s%&F7i8#WXDs -znX(Ej?`Wfh##P`*chAJmKM3~MFCJ_TsIFU`rHr>P;2|0Q%qt>7S1JL&s16X2Yi~=m -z_$eWtEn=uEi<8^o)Tv(2EQ|zq3PodZIS}Zf*y}bFb8M~t#+lYUcJlRe^%7c^+#K^{=^A}Lwn1)Z& -zv~eqE#EIfz^XMNi2eXSMEK4!nqwd70i7Hm5wsL}>IWDQ2+-)kcPT>@^ln|V{4q<^} -zXCNB7GJ9%F&BkLpu`cGcUPq#c&Wx)n|1!S3PU3rlfCfPlW>+)@viTv|s#i%%D+Z`w -z0L={4ls=VX96_=nZ$g>IE%yvhcgUu)T1!7F5&><1DI->Nv00P2NIWI3uE@Jqg$hTz -znlIaEa}e7Sic!`lJ*dTnj}o~BX^FV~5=-UGcRuAn!Vlh-(g2aoie3V85~$s5OP*+l -z{X0~3s$ePbu)J!5Ta;s4wks%m35Y9X>S?mN+IAaVRg7dQ38|WgOyZ1?hngFI`zhXP -zy*5sDk$%B&y1~ZCA?o8}rq&?)7V;f4U1;J0g7D$@bUP&*SO_gB0`QN0WdwRv)6@jR -z-Ildfa%Y_p3?$wOAo6lWKNkBz-1>1b!YR~4r|8(3_kl0kQ%?{(Nw!fP-l|QGz>>2P -zT(=UXcc;zkORN~)j~8hyl8v3d6;wW>k~INWNIoZF!k}nBkpnBU4uFz-pKmTerJSzA -z2S$^XGwk(=w#gDp@w>HrPR1dk6gu?TPb-2~f{7LwTcog-x7KlgdQdJ#Yi|3&&nr7p -zvP97kn&?r4_0pyH2n^WH@_}TDLMm*fiMGCVs;Z*B!%@?%5-U-efQsK8a@dhcOxcV_ -zxu_Z>hSsADdU^>U2ql*zF%q!%+`iVoWBl7igg4zjOwYt`$o2ph=*F=Vzt1Zf;>Iz= -zt|{H1A_}wv>^CYa*c}fEpo};8)M*BG?Oa;{kr$&ml$@NVxxpFr^dNZ!!MNfQfbjuy -zx~%7Cxmg9LusG%WEkt6*C)58r=RjUw+b;2O3&qn2X -zZUItL)cLWdYLd@_UeEr}AUS5&8&CuLa65rIJC3ccPq6x0Xo@mfXiu~$u6|Lt|CU7M -zd^49a9{nLUO{E6re>GSeES66iIt-M1((Yx`^4VUW@d7m{Fqv?sfIHaE+%B1B05XQA -z(jeV8bc^TTI(bJYA;=7!JvsgvsV^Q-wrX^aXW4*%A91_tS(q2Jq7kIdXDE-ihAmM= -z`2r^Y(n2ltYCZ??<`cUZj)Vc-?xa9_b(u^pc%sJ7y_R?A@6IQT8;2!EP6^ZBh6D4|XRF7k_U -znu1R;lP=gJduNvOX#40x=I$?n06_ -zcuc_GKumPlURM}wJ$Ij=B%sJg9>a2%lMR#bk@rvAih2hjT7C-}Jn_F^o=ak;K -zK5VRstLGt;chqtWq8z3#a0qm*)}E3?#;qF07Cb7l*OJF4^JZo}Z*ZXG(GQ5*7|-HB -zo94CbO@4zof6k16K6ERvPb!WEjunRt>FHNRhrmXFIf50z@x>s43X8JAn7tY*2*bG@ -zL>mcXz8 -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 -zeL>e?&QrQ0*a#Uj>DN!=CzgxD -zkdqhfj=jedvc-^~)+OXYh_hBmU3C}WidjC<-h3raK!wi-BLdF1xrpD-1r1D*>0q_B -zuU>z_$u?^I4a@_@Is>z!zg(FcR{t4lRmOe&BqWmGe#h+X`^&=d`nzR({dxFyk<-WP -z&+p6Y&*H+rf9+@Zm#E9cP!tpYk2*6{r39y`(ymJPPcD=58pn2`}X(#`~7|U -z`|aD`r}Nt*Z@xa7c4kBGU$>_m$AA5ObNgcRS9M3W4+uLTfc{N&W5xc|Q>07P-a^Ak7R;GWLRJa*yoL&kNc1;sI%yz(K`2gT=kqFFYzo -zDV!p^{4oEmbz8vfYk|7bA~=(uwR)E|+%9Mb1~{N;-A85dA#8l=#lB27J~;hpba|1;9KWmWCMGsy4Y4~&S;G7o -z2iNO9HpyRM`{gs|{#|d9MJo*h7AsmkAgKWg1`QMcK9Un2$7h9*P74k6R9}+Qf+~$* -zz)?9&9Q# -z|LX?`tzjK7<(%eV#RMlLUm9PL`OKW6x1;Ow56tgvm=YQM)4_DWzF$xL*j@y88`7Q{ -zS3y`eC5X-q)c@@1PZuoDW2~IYv}HvS;DRmu5=Y%jq9M7x9Vpp~&S#7cpK+UzcU|HX -z%UAVn$HvZaTl#i;K@JANRtQoAJq?c+!OI9Kt6lO*EA$}KKt^b{k5WeKI`Qv$@gxmO -zA3n=KQc^76=v0|y&iu8_Cx&b!AqHBkZ=9ybx2S(n{+c55SWY{zT -zJmnk%O0RyEYkH#NUg&UuItCiDzHgzu0>SQlnd_iTmEJB^MCgUJGk%e+%9Sb*QKAkO -z3IHV$@~OM1k^D8AAEbvPT0%IDJVxT`V$-zoBM*!7BA$g!WaCA*TiSdTHqz9zZnq?H -zkS&@gz=m!#td{NId;=_nVMc2W(L480EC}<(p+V@Ll^(I3wftz`G>*CJO+Ga1T-)^Z -zCV8UMPjF%r-Gt0=gCt%SCy)4Iwi)efn^i`eqbM2yUh)pH+jpb4<7f$wC;$^{OucJL -z-9k&|q|ofIZ+%%^iGu*(XpBtcG^&(oafByZSC~l*Qw0I_EIn)=fHXx`R{U7*`vpl_ -zQRD3W7l6;;1YIcd9ej)!ZgX6W+_P;0G!vmcBF@YbYbpeM>{-W1vcWYH{&(?>f_D>gn)Yf8Wq~^&fXYRRW0`dAwM=i -zuF6L>k?U*Kmbk?M@RPQ+>em0p?v^J8F1B>=Q1BoBukgMGdL&a1@m>fe#4i|Uypa6b -zj=;8}q8rAm7WS{4iTHWF0SWlMtP50W(zV%coZR -z?e$wQo$3F6%wMDSLxwoAR6BgT$K`r;6~2A)@a_87;$oXQ|9cEpcp|@y&!Mo4@t%4` -zDC&I!^zw+~SC}Q`E&8|Dx&i=$Q5To;yZ#~<%D!g@l5IylL-w~Tk?lk&zP<{9>G$7} -z`asq)_#8%}ETOr`l!ps2Is}LGbj@cS8_GPShUK5mvX@fd3KP9}B&8n<(xe4L4dxz* -zhPkj8ax%(Kg8fjAO8={VikKi9d{x1>BA}9Gb#`}Slq;hBX=tBh8_T~@ydT)N=hZMv{_JP_*S&pM4d>tH^03V2R+6e!#k^ma9Ts%hm4u4jpXs!ctdwv -z@{{;&pS_27TQv*2p7n0mHX6ckeufu5;^p;6bW7q{4yxc`zGbf>_h|PvI%Ej0B`=S@ -z5v_`B}LT2qz)? -zTnb%KJ8Oo9qs+uQ_$T;jdx(j!nc5TMUBq5*zU_XCkJZolyUCA(a&@6?E`lvIAQU10 -za#L+n?s3oJ-eplSXbFDMHR$>YL%gdW&zq~18uwIMj-+iq4 -z=H!8l5XZDFwTE%O1bQ$QKJDLFv!|1Va4bl1F*v9Ho!{C#|MkB`_)Q18G`R;< -z9%<&?0bPs5%LE6M$?8_wlJ<6mfS3e|zkY;I*}4`oTF(Z}3ii4m!`ctyz<-N(C4BBv -z!Auf?sM67(P$&MjJ`#i{hl%fCYc@VqQR7#S^gIW=@v|Q~^JpKa%jZGh$DnCSP2$kJ -z(kv#RbLl%}Rot$t%fM$d@yB}{9lS3{{ql72<_7VIDxzroqV|2Kf;F&mE~VE8>m_=d -zQky}2Fucx`d+GDLo4We?-6v`?tjeLPEjf=y75X606%1i!v*SGHw_yUMeE^)3QuiRUQM)Iq1(OQ&5Hcdtlv`sNvYQZQC|0w(X>1+jc5;Dz;Iv -zZQHhaQt$5Wy-#2L57xIe*I0Ahk2}jP^h)T#x4&JY8!|nqW`gW1q!OPUt<#AFf{o$e -zuF;u-`{aN)u#LkCj!3u51Rwxd4>DPglGcuw_qbB+ym8jpK^G%3)Od@hd$Zqx(%>IA -zcNp^pr&3#xhc1J1`EbKk^*fxXl@FjzNHm_IYI3?owl*-rH_^TsV?LoPEtBap;e`MC -zbNA^JuEFG@Z`uHeg%9BE2I_~t9snmdIQcU&h0RA+0`b9Eq8#8va%zl1WdE%Ro0{QS -z;r#RqxSbc3GzBNssq6trS;{WB;Ee7gcQ>rE_2na6jPva*KbFyROYh8kcXnn`9M^Yp_z&$T5a99pkTP_0Qt+QhTkekv+LbiEi|cdq@@H6f -zkd2)FR>X-A#qA$-P@k#UF+~EU=BbFBOW9rLl@kq7$KXqgpN&uEkQKNB&EB%J!OlQ# -z;Psd*Uz;(XU`%9VlNJdF`Z~8l)${_Xf4dk} -z=oK=g`@YYp_HKRmKY?#(e4lZCYo0$J$M|p`ZC@lgfVwyKr9x9IyD}Hm^I+9Y`egRs -zeAtkU2eW0>xm((#K;FbB_0XYI}!D*G}A)P@XT$HeG_gw*kxda$fGfs76NN=l>D&nua8O`?{yVgiUHtO|#oj)uz=0Bg;=+9j{?d%=8s;)frSWh~Ay_VbK -zi%$5zD3qWP^e;}9@E+z51V3JyBkJr#=ka-Kq6%MAD#oo|1;zW#TTEt{k8|Zo(~H -zW>o0Le0j2aq`7xJTzP!|0`sw(pL)QlLu-vh2JVpOjH7T_=SV)*Ci -z>oF9ZCNGvRq!gOJ2+V-^X;K&E4$z|w)sagU?iYgkRYJo1riM<4N!}GUQ5Q^K%v$VX -ziSHeB`8*{_B!Fi|#=LhA==lLrkXBt8KiYC!18lLS8F}c6FX<6JxNr%UHevY(KhAh@ -z5};z?Yf*H%>92e7>It8FbRPwRQd8_Xp0x<5`LE%_v99x3asG7b?)0oX6`0`l@9l!e -zlrp$CzY=o6x`wIT6aaYH+*I4g?O%A~5gk(8kCHs}gf2Zx(k$_Aba}6!k`Xwadp>V% -z1XkTH#^V|sdXMlrH`Q-e`Rb<9cG7=|lrN3Il3?T8*baGBXDPxc2bO^AE!CYObotzF -z8j#tft&xkKj7w!Ps5ero|r9rInJbzDG{wbRt!+!$R3`oIWXT=rd5FR0E>M -zr-aB!Xv%yZ#awX0XF+3!O*!kqR9SrJ$2ri}4%lD%zV~DMW7j*<3|LGMUk@1W(gVah -zLBeDw7cZghkqfwORZxsqo3(>_*DzA4#@>9qiiXZ)N8Fk)bdU<+9LrVQ(4 -zZ_K|v#4F`XS+sLxrH)c3`YO`z8c-5dlI3XAe^p*^9jjW%w%yyZhm9$~m9Z60bLOF$ -z+97})ojG1WgI*X%bzxo64U~!X7yvMAoVdDS{xEx&1qb;li=DRrO7dq~G{O0^OGabu0WF;ETNaZpqL6w1YNpUWolURA`6EfW;w) -zWbA&Sx*-eNQpDID7_2xj*W}6Z-!u+_ugNpb09Ib+a0mCJP!E55k``P^eBd -zG>R9^RH_ckK-rvDim;~F2W@;dQ~I9*w+}K=q{S~+JdG6iu`4bsdB;zT$O@pbbrQK4 -zjyvH4MoY40#`GuLl -z`q$fvt>m%-zqm&rY~p1pTk{;FXb7lN+?Dx|M|ocYQJ`17Lsnu#s9vRP6}d7HoZ2Sk -z+VNcz>AYG2Wt0^;X2>o8&pxnB;qVTTf@Vn0E>jDx9nN4U8;*~h)&6`%N;Y$!Gn#G{ -z;e9a_Mcy~ugb(`cuUcj%#RcPlJvS3`yuG_RbuF?1OBOtm|5mv1h85TVO~dz+VP@>% -z<=oA4GKq}C#@3lM-JnukL5hBLWkN;9osXcD>`jkBH%XTT>-k1uS5x6@003nJKb+s@ -zrN?3==Y3G$*t34`*ZlE?0pMp|yW;AUrltgGcE~ -zM&)yqKLkfzUM^~N`9Tgy(u};$Zn;#=@`D5_t{k&M#mDOuW&p3v!6 -zw?a9NEXz@PIN){3a9efe@f0KSEY0nRos9dlR+6?qZ&WTR;8+-So+y -zZjUeO2kNcwwKy?5e?%AJbLbH%2kQ~p%@5JTFZ_si&F`=ctx`w3b;zKZxxx01s=wX` -zs;S9plnFH9mT_e3xp|J$k?Bx7EYAxtwh|DZdNcu;+g0XMQ--P~>R;r`IMG~N9HR1) -zyP$HEDl&M|g7Y2N?>Me0Bsh&gv$jp&I;VH-vC)V6pvh&PTBG3MwH_q&7oie8$RSCc -zkjmHBReE@zF;b+zF#M*6!*hj(gwg`zj_5edE_03wYD~W -zBu$~x(474Ss7`ALXGjg*qT_*O58dBq0M)F2d;htLQ{MifNO^%%mIp`4AQ9QQ1F*H2 -zwAN}Wy}v*Tt@6Y^fT=ZNrOF}hH&h*!(TlH2yu_3bY`QmY0n~y!inFdLo`GbY-DUylbkITawCK~>q9D+1>VViq$3{Mg -z*X8pi>PtQIwpmFo7R=f!h!%-WtX86(C}N`|B0!QMxHrZ%UmTi`tj%rqj0F(b`2E~n -z10OMFFL-zAJLc?6qV{@y+&=!+x_p@CDq_BPIk$Cwoe^QW)%9B@I5;9yUU~Quf=;H- -zc*-I=7EwdjG__|G#B@6%ES4I!hQPgJp&-t*V~qSuan6MvnTY|Ci>~=K1#~FtE>VGt20sU6Gj5C+gdu1-b`gpW -zt-3~*czcV`XtZ|W%p46AxFJt-5`{N~lt%dB@mseAjIL#{jqpiPz_!e@Lcd+KdyP@Swu(`1Saw!u -zI8w|ijW9wB5JEI*J%tSM$cb?J -z_ki+-or>N0IJeILW}%v1Vr<24N%9(vC!vY3E)&prXCodBXOsGamR1b%EzBPI;2eT>0b7@ -zA&m18$#bSGqEeBn0s`L~d=O0PQh!L#1Zpqt01|9IZ7C&CTalpqntQ<&0Qpg~3Yz3jT;s -zpP5tR&y?VgkMYT-vC88sXvy}+Oh)9FeK7j&5G9Z!W%rCB7~Nzi!&mxh(sn^l!Onvv -zjZP(e7+cYJk|=a%;*T|?EE1U!eICDs`tljLaSn6~!x~{XaT>EX4 -z`dLMLNnK`|SX$@Ke*H}kOoU?Fj3g-8{O~VL46o-q9^<$8mV?cXoUVYNQu53}luvTL -zov0juG}6^h|CK94=JgRVl|d_)}YV_;?_v -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 -zbc%y(#~8UHubVY!_Okyh}yH-yZ6jB(E -zu~)q@oONk_N1HA- -z!nSH7O}GnW7AvN^f*SDN{Qyjkj^0vWLu=NwT75RgvP0q_3hvFr1Pn^f9*US2dDf{p -z_XHWfelNSXJB7_L9osXXs&J_z33|!!9`}8@K(<+7`+gqid|FUK;CYl0fqH)EhUja5 -zRzD(K4uEHx1LbI?QRWyCNhN6fE1Rl;L-i7-bSB(Nco4!&+ZE;_6Gk`&N$l!7?8RaT -zrLJ}l3}En!^hck4kKJxC+L)+viS0L!<vVltyL4y6y8U}=n45VGN8;@^`+x;JlTMQf;pp}5i9`+xLyEj4E -zGi!=zF3sGHmr9(+Uy267kx6}tVA!4Z2A5=_Fr73QtwXmBsl9zgB$~(_Jgz{HW?oYD -z(DrI^`QamKZe-a#${})W+u4q4eFe@G)XgN9I(A&WlDg{i84se=6V@^XTxTU>rP< -zrj*;9MG-~Qy4l7~-gAxxK?&}|)?A=kw&ek!NUB^&;sh1&5G-V=-c*;DdwiyJ5hyrisf$LYclixug9-)2A{ -z0TGb-&>${)4A3FLy3EggJ`>?ul0SGHlXilkp0#A2XA(Qm5_G--d=Cl~z5f08FzS9{ -zZLP9j@vxSoe5Z^{h~)^7{yfvpx|qJ-a`~!uTM(-g_oNWW_R}>PoVS5ZffaBeB~8UK -z!}W}lDoqPa_GQfoGO;?Ies87_^^+0?@3BKRuJh!_VCau(fk`dm0oq&;C)l^tKn{*V -z({rYfK||lWZgx&bK0V2LmJ17fxf3;t(aL!R{viwbm*k(jHeCFEs9Hdit<=Av@k7|JOA{`5 -zj!)WvnKro5O3UwW6PrNddEVHJko*&bIE6@K@)EcO-=(Q^YQ1)^Nph*gmP^D>`r2co|0Hs_Pb({4YG#0UFxx9BiDS8)YoqrsT4jYQL{;jUJ@4z# -zZ$2T9(aj)k2f3K(Z^Z$l9y-zi51@gu2uQvh`)5lz@XDo?5d({gS>09N2>giXwxJC> -z73$)x#?(f;zJS{Z*PJFG5&9cD^) -zvzYVE^uS4SiIqfE0E&zyqdv@ivmr(egQMV2@W~0bh~S#Ul<6I?<-G?anPf0aKn01d9D+XbSScdAJytyWP;c-Cj?b|S!{>$PqF -ztSm5YuJCbOow8rs3?O*&!y{XS+bf=c_(`?3J6 -zLNaBz_Yp2^N;-S7mW5)yISHjJktST5&IR%9aR9;A%fiDf*tAmyLYZy&$4xQhJA`)z -z9ESk`u*PB`g3h>)T9O(mJ9OMXlfSA4GVz~&f#fh~yO}K4B@k3rLSdzQyAx)Qc$gvg4BPS!zZLNyPj5}H0;Hd}t=975kSmCx -zODT|u1%UV2d)(%j41HVND;thBnU2ySEyj$M2_>oeiz*Kt5A?SfK<1(c@liXBLB{{G -zxTpTx;+A;gS~Q>3__^!<<}@N@_ib^9{9|!veOufa-xjy(I)MAP#jW5NV3hM)_=xv^ -zS==fAwzySWtz3>n`LdP;TG9Sm+^E6!@{&5%_n-IPswWkpcXzq8$E&T8{g(>6H7rhM -zhn1RC+eR~4Xng!0b<6E?-`hqe?L-1B5?#yY+*2uI+i&P6?k -zRC|~WJm{)@<3KhFyxfRjZV_=wL-)lzi1JDRvHF;O$O$B|611kOFO~9k+ak$k%c7cgiF{87IXR_o`(3>g_#Hk^?$)R`ysOyWQeI|Y&{_T^p -z!`TB{5gxzQorap)78$I$LL#>rM}zIE`oaed=kh@pc2&1g#iG`P_~~0ceyMsvQ>*vc -zV)n{bA5G@x2eoCr(3weBCtI;fZz3(|D(?~LBYV@eUJz? -z1*_;fLU2NV(f+;iK~$-?@HSnBRt}yVyBKU7OBV1G`3+x*7mqse*KcW5B)xmQvXR)T -zYMoW|b1&3|hS6U`YV-2Zkoyh4+!FuC;+{TG__nx}lDh>0g}yEB&%YKoIQ#!^aYM>V -z?%Z(ntI&7u7&CvKiOp|*?FL?TX0$}5pFZ`a46R}g8;FnFU_nnjm>9zvu2&Yb;-k|; -z2lY|oLtLvq5JvDe9u=a0FLpp;Sd-m7;NV=?FWyo+A0p5Iw`ifmA&T|?c>1yO^9m~O -z5Uut!7p2TZPsV=+XyyW|R8{@8?ywrJqJANE}$$^>vjcZTUMX -zW!S)IqV{)Y{!YTPB1!Yx;?~1(_&+ReqJJ!ImA@8u*EwToH%BB5S&GCtsilp*(7_-T -zP!MOE@gMwdD{)4(R>2j6OSdELWn#?>AwG3R?UDnFL^Z`N9Y@MW%m -z#w9MMh|`L=@Tp0n#%nMM(k+9eym;ue5HU*C`w`1!f3f`38e8r>%LI5=d{p@_%str3 -z&TA6xHq2h+0xsOx%XCP?X};uZaN|-sCHprhy`k!X>U>EWPm>Fl{R#NgmeBjXtE;U@ -z@HW4I!tkE_vNm8)b%CUw99Q>GPdJYd_-*C75P_z2azczpMl1vAD)-*A@K~)jr8%xV -z3j`dWr#7ove50 -zt@ne?KT00)p@|V}WKDrM$Im;(w2w5!%iXvf3tAZl+WVaBX8g9{CB=LwMK@x4eacB7 -zAQ$*#iY9?I?Xf^UzjeBDy7)e8*UpW&?)0*5io*+ThIxU03smAd$_mDbj<+O}01DGYUAQ)EUR(X)aJ+Vu6gc -zFpEZ%U?*eD5L}B8V5S@{Uf^3cm=t+w+eQgskt+`%?y&a>aZ>QJ!)MT7#iN+QEFhBv -zq%@q4#zKT2xr_Imp|-a(+T25gO&z{F>0{bUji4pg(2^b+Qk;!Z{dnC{z<%GH6@ -zFe$zz6ih(Nk*8!5r-h{PWUiY*B70PCkJn*aLB#XfGmPua_#+x=nQRQ1OeOBZoN^KP -zzO-uDq+MEEyYac>nY}IartokR!&xikocT6zOXu2pw -z1&~={PCL)IFYrv}YdTOTWPrLDqP#VOYt>#pt_Y_$sk53$U -zE5wjD%V8yKUPp%&bu_^{+tIAtZlfPvd!Bh}Y)lf$&sFIcA?36-;@GRDlFnLL<-*uT -z5PXvXSz9aN8=l2aH;TzhESGIshq;v?=eT$D#Lm`k=a4{$JO|SYO~+j2BC&#W2vuju -z$w%u}s-#%mZ;Km9@E?o&&yzPs!GBrY9l+lfHv_CII=a8xsD(frjr05%XySib+&RAZ -ze=TlKvs^p9&^dGN0Solua8%mL#^dE-&f{bm8_%!};2g@syBgjz6Vfp$CrNAo>KNw5gu4gl(H -z=^Ec6Q9H~G)vR9;(Tq4|toE||Z1TmPV)zZ(18NM4D}2yEpu=c*)Q@#=E853{(FufQtxnwh&qD7I+Tm42`w1p#l?M>?O&PDny!|S17RH(z -z>6_GyB$cG;=yt>kp}1r&PIv;9xX_gRE9X7-p?Lz5b2SJm`i%k5n?$@j< -zvHfq0+vUG4?iIQfzi*2>*VFw!EpAFL4)_onV4OiFw^0aLYEi(Fp5@(5Z6mo5q0dA7 -z6^#r7f9a>aZsrw+Va)Lw_=%6n6RnkrzEWKZ5Z`Y;-eN^_@;OBrqsQQ&0c&FPDva|Xv0o4!GF01@ -zkm#HO!6E|l$#jE!`bJYU7UG%*Ph7fGeP@}v2e~B^l)P!hvH%0$I(AP7NwDX7&%u$Y -z%6Vh^phfBv(ln{rbKqBy{v1_!WFS;;wh1HcWt2ycsD)>|Ui%*;V!`@j2j*$H<>~Sq -z;PyL(!2QP9k;^^ZW}fDD9w47n%+GD+P{qI*DXtiEf{ktT{Dr!hf3TIVfM889RRGW2 -z7L>rl_$!jPk%9K^%98`?bc2;fMC-Pks~f#CbTvu_U}s^TlNd*$2A2P30Bvhm2U-uQ -z2y4h>d6_6te{M~Hk;cR^WCF}FUX|(B-4x|7WOM>?^4J^X1{)JR{rct-4-DF_5+cSX -zY}=d|qtYpA8>G=U`Q(W5r>d4xY5rfI&v~|{<{^lbwgu0ng0`l1 -zGNr)Xv1Wnl(*tydWoeB!~6LP@*E;&4A -zMUUf7=hfLB#@gew!RlpG)hQxr?bxx5Sk1NqTP*OGjCZtt`0?35jD2O9Wy_>;^ -zJL%A33`PHIaTk$g@wre6u&KWzxr`?+6hx0z?iSBfyaP!0dk -zn4^~h0+Fd;6{A16RnwGdV3jTwoY7C^tKYF;13%sk-^=Em_Q`bo20edUg?e*_y1W{SB2v>Bf|_JhNJ$n*jIc8ePYIUY=LVf?4R -zR8S$_63@}|`Kjk{e_6OJ<2atiS02W+*o1Y1i2af3VQ!F;P5i5*Ay5tUZ|kn)2HL*2 -zBuyDr04Ls?pkTdU(K5`OVPNFol%rWAw3CA+!x7(e`NsA!6+eY3r0qrvy8ooO@n!7v -zdyQ~kho10V`~b!J5WBR!@!a(6>Xwh(a~9!gB3=Nq4UGu6kEW>1(t2|Qw-UYcO4rZ` -z;g&It&8z!gi{1PLA^xs~ -zgEdbX2rQ;hR=po%Dv7(8Sne2E0 -zPjha6d{A3GP~!$x{FhgK|hN=00d=vY8ejw0`Y1J%d4WXv<($D^WvRi -z2w0~?vFSAtUk;tE)>2mHoD<|p4cfP_|WR^@2jn%lHV0!9CLa&ii3wsc9O>k=bqE#>M)chC4{Y68l!fQT_hv59+#9kNp -zO>u|p4{tck*AR?5w<(uNIOxLg$o33mVnwOs0vaqNUjjQSYuyg8`dledXPMK5ul|eT -z-c$UhxEr8pK6ARiDo`!|p}57X_Fyn-51C>(xMu*r?szdbzU@34kSo&6=CLXuesRts -zCzEnrFH^CMWx -zlqc_)_ekRt+hvPZC^G}l&;pQG2qol6U_nIH4i%#*H{1%z7Y8yI-~3Q&(>Kb>x}(^p -z65S#ZmI#b{&m+V{*knnx9%z1Ad;mPa=x6xn%@)_i5>v46%Tlbi9AxjDxU49vy0=C} -zNDC&GOdW@Z1}Yj-PuSm#)f1O)3l0mB9kEBQX9nFnfX5BrQe -zQX1m>6YD#Z?a{U@eHyK4UzUL5PkKbrVoR!U1)s6`OPz83k$r_mF&6h*;@12taXbDa -zaW5a65D}{$5&-BtvFYh#N@41T!oyHe2QI%M+Y}U~?YdgMWJXDe7&x^U^H;j*LXv3` -z*v3z5qG`FV%?Ud(YC3vizIW8|lSLTMt)?}wY;Q0fdXz<0+=t(?Oa?C6?|Ik)p -z@#Jtzr>aFt4ljS+AS}R5n@y^8M~N*HG&JWO&8_+c5YX+wiA22PId$LqdD*r_$B^mt -z#-M@RMY#5zaG(yAf9IQ;55pe1ZvPz+_)1X&U$a$GukXr3;>U!xBW#Af+~>FfDxw>8 -zDDUSmdkAJWKNooX0Adsq={Eu{b5YlZY{dIa6KjiQKTRfO7=JUs{i@9EcR&g2$v!eS -z@!K9->`M0Sv0`a?qu%cFxXtuMW2f~6{;2SJWn-#nzX$*Y(3&`u;0~1VI8zxYh!Tp! -z0HyR}vOY|uF{G~UgCO2wzrmP~<_e^iS?W^8Jl~`N`NbHT0X}F-%-tmfq5i<_5;ti! -z?)PxKPr%a-)OOhd^Z=Iu%>sFmgLAWA1tplbo)PPanc$e2r+M7E$v4G~_?O}?`xnJ+ -zsbwCKuVD_)LOXf+O>rlP96TG)nXJ>dFS8^QrhYBxld99?a68FUJQZ$8&l;|(;%`9O -z%cnB+$O5{?#jNwBnRYY(2gRK%PXA4D!}5Jo+|B<`+(%JUb%4HCI$Y&isdx=YNXFA< -zB?-+TEDDV;KrCO2^0W=sx`A$Y;k>Xz1AbnvvsgkY74g@L6*NYoHADA{0}7X>FsLKQ -z=Rz~9c8nC?6!$ONe<*GO_5}m_jzs&LVnc2|1zno~yULWFn&@lkS;S8kN1%IYBYB}L -zu*=SDVdHEj5k -z)xK7mBZN=Ry${_l6*57oV@~d(+Fx!x;N2g&q1wH00u4sfXmK5&x`eN!E(u_ -zN_u6K5UdLo@&$P&b~nfwjW*IB?Y0s02r%Z&c(5Rl&Qnp@Mg!iS2JX48gjA-%(jv$ -zx&Anbe(4LzZ1KQja`&YjA{aG)1&a}YxB4SrHJqy2w;Z4%`lxyTZ2ZG?@eT~!6mP?y -zE_y=&$9%3Y<>SfcR{m1y=}b=u~2LM4TKiq>>s6_NbNe -zya4meH9_U=nr3;4iNlQjNdI>TcvAJi(ZxhV!Ok#(I4JzitoU=+={YxXK@Fb+P6)1A -z)=?x3T!BhMSa;|3T&K6A?-=gO!Sc}fXyx-^v>z5sGSQE+@kcW~>PL2ElvedpXSkSb -zu%RVsQRLj-B|x?|3d|U!Y>C{y2m^J(KZgwM$+SvVTl4k=7MbTiUHKm11az#hbKx!B -z<7AF#r=up0SudKBSxf0&!(u2#x>La87s2L&#+7H)x)b)(VIw@1^t;rSIyLtR+^r8q -zsJSuXHEq{!}belsaL~)QqMVLE5_Fw5!=dV+o4tvbv9)1evuxF}gjlt~yrMSl!+rBAo*Kdk@r|zN=U)X(>nP~O!ILUS{ -zrGx~A>RIDLXZPtccQTz+WPtHHCRqgBqD%d=^c7?AnTV-jjiK7*^{~BP4>ToK#UXrp -zZ55nEkG5N=CgTEzXOhWh)3<6co%hL@Ef&jx0yY4Am-Axe&=r<#epY>26ea$_u%9|=ArMUp&~pq~PJK6Cxm>FhLZysE%OqeM -zAYN5@#L8ca+u)nxCdBuI#l-%mxWO;D!MzJK!)IOD?xd6eMQX9xx2U$3TwvPIu&iig5ANh3qSXuu@YB7=MQO#}0J~pPmnjm883H2?q^w0A -zR8b(F&T4;Uu5Q{;rFtEVM3qV8=XWf=fh*#A2P;kiVqizi$cZU}A_ -zn99sb#l@OluV(up&b-tyv^9NrC4}`TnJlv73g+ApbZ2-41U4pQU^4BeiVWjs-{d~2 -zbcBS<$AGZ&={WL|B|%lH#b4Qbf>;h(y@14th2bE0?;fv{C(p=QhIwiFO-%igV)|7! -zq7m2O7$*^cMT1l7&;UWL+nfhvK}M`6F#{q@EP**mpOhJ?d>54b^6s -zcPT7_v8f^c`b)vZ0P>6Kmpa;!v*HKsPaEM|eZPY9<4!aiFV>K4Ahy#E%>PH$J+SB1 -zHR>9UZL_g$+i2V-X>2ELY}>YN+qP{rwvGL?-}|m_?Y)1*JmxXSxaWB>du!C@vQEPD -zrF1^^)uZqoz!~TY8aRV#VN${qM^WF3RFj6^;fpPAN_yJn+wyO+j739+lEb>QU2p{6(qdg}_1SZgjFcsmC1_8PM+DrRKRq9-vDeGI#8xdIK@QPxDkJGiJp* -z7+ahYO*ovmqmq;C5@9}-?s^m@#BIO}ptwng67bp~8HJw{9tkY4I9Us4d`tZVat&^)^i(^VMM -zdt+lcP2S)tsgc#N!C|%K)TCqRvFNCVW|ZAhNxJRu2{7FL@D-(t(_9Y980(_^o~J>^ -zHU)N`fx;PcGa!dd^tEU2kTe6;ZWFICH}@CLQ>lTCm5IO3_-9;Tad`+6b6t={BN<2% -zR4x>Uu%V+<42kXC<#F<^%8lxp0{d!Y$Ptjp{Qlt26%i3YYPqM?fJ_P@pZ6I<7W7W# -z5D%Ry0haOb+bkR_a(f2wlL+WBv&30_LOxrGE9{pF-N{A*Ryn(VR%ucA9vAR<5SncX -z64qB@@k21W`i$kum!pqbOiowD-mNLO<;fN$(lwUqax~g_51zx_!8G}%YBgqvGOxtb -z+{ajUd-`j}b}4aldv9U)3$?JbulEl?ut$ysEScDiMH=z0c@jhp*q6mW^((hej0I^6 -z7_yqU68_ho -zZm8uq5#Kd@?(}FP&x68rS$$z+DGc>qoNGuiM1Q{f!DofSjJJR?)q0Q15|l5Tp(!|= -zt6_b&3AEZ)F}8$+>ZkIF`2nS8CB-OlAUkLC(%eF)W%~8o6#G9E!@-E1If|Hz;E{H)Gf7l00 -zypf`vk&hA*+n-u-@oO_wg_@O~zdVyOLdW9^T+VuiC??zBH1j)8FUd7dnc4+|hFazI -zGR5;}oF<$TBLiPxsXQ?mtUD%To5sg-!?P|EmhY#cvUp!Tci)L}Ekt3<0b>Z6rtk&& -zS=rgN0GhZhYr3b=c$9l^^B4aruA_a;{FcXQp$iq}} -z!JkLEUshSXA_2~#h*ml7nDfz`($I6e1 -z<`N0JYt)dXGs^#@x+6!UK8IaDEZ(8mJ^p4>^gJ9J))@%Hn`YaMmZ@nReXQH`Uss&;dHiwz3M_cGYHWm^)_?Sej4}`t?jt=q?GTZE&jS_lnkYwxhGg0k@;wAN+-VPgJyHir=~G -zgkm%HjtB>SQar7Xudj<|JY#f^qQ!&&`ygs>H0QHZ*Ua-wE3iv$AuEg~*?f(oZ! -zsLi#GVha53z}9AJK$f7TSkUYnmzrxdF5K#nnc3X$&P5~)D~NxjHqd< -zzwzPg_5n`+@6!|P*r_orVG#S25Kq^ -zg53qR#Xp+a5|Xgz8)~pufu422k|IGHnk@@548~-=-wVb)I<>@`TlUGJXMw!~WegLf -zJHK{bC($Bps#wX)e!jb`L}M7Gz_X$56L-fJqcqWO$OYoPD4T(Maw!T|%-f_Vs=O8;8iDiFLL0E;^um*6ri=J>xBcMQKwA;99k0a)CeAsYaT -zJ7h{q;D0Rcq6Mz9KNdItUyIwi9{B+t>=I`21tRTg#PJp`4dN-RjgFV)GGu5U6v>o$Y_^@BWICs8lgiGsfrIIDHJbzV+~2=HLvsbY`hNdS$@DUpf3te5*GvVU -zJ*0@x7!LbbsdCaljmKE8Xe%uH0>QUN#>l@nT@=a>2l(x0oXdTm$crT6=GSB9y -zW2Ol{8`Ih$@E&&xdGN)R%O&7@$uYBS8_9WtVA9DXo&n)OO>$M1hM3mzqYje=&VgGc -z&V9DtEv0A?*zoe6x9%N~Vsn=(5y1>bwAvL3^%|%a==GE#!PQ3xZ!vU6oNoRPk=TTQ -z)nV&)9xQk;LA$X5;=N{x^(?J4*vv(?X2`-hTQVm{sQ&i3`@TKLGH`>I`g1S)O9z_cYh#c_z(SRGYAEi>#T#f-m!iPThl+Vro* -zo%q+{76@60m?FaNpJ%s3y*;JDxQdZgm{PzaGpcl1Fe|gazp3~8T^v -z80Pdd`SWWEE#NCSa0bYl<+0z{bmGzW&8yv@~|26RElXfyh`5HG&Bv#6&*5L=AgfNlmUJvRhlbM#S9wFjEt-Cs4Fpd2AA -zATGY&A?ne={hE||ISfoq -zAujqS#DR}~hL8G;PUSd!*(XB7$zG=y3d#sWm%+osy^)^R=LU1X@Y=e>F6kr&hG*B3+oUD0=i!~PsdoaJe&oZZEj?eS*BgLW -zv+4O!E4suW!(D$VFs0LJ@a(G9_d0c&wA7?S@H@$&)$`fy>E`)(Y>PqX@^WmeO6P+g -zU+0U7cbbA1zh2FBRl8G&F^!x*}qD5G3cI(#HKkBaKx-2^g0TzsWb5r-@^Qca -zdMrnpHOukIJW;m&fmDPH$4MO&@&*S)5~}r<^IOLJ<1rB74q}eBE9JQs`cqpQ{xb;F -z1^Jqvp}Hw&Oz|m*_FaU6L3%TK`T(}oC#qWOMhmWfcy`{eKyOf3QZq1a>aB2wz^+o -ztBCm4UUkZ7{SU;A^&g1a9RP6`+X5i&&_57&Kgjc6h`aqi5O>HQh+Ab}8r_si5fT>M -zI~MABIcr|>BXtk*cqcd!34tUkrnz;Q)#@=OXut(|s+YX>I(LnZTqi&@HFfbkkrbg; -z>=tZ!Ix29X7C+s_yMS@rv?AwrlJ5?-*WK0>snw)F!qS9JV3i}n;KDTye}a37-6Mlk -z-u?wz&N4SG8rwR$e{6RTS!bL*&%>&2)YJ}5jHFw}I=Zt1dj(%Y##t0NS*^|aS3rq{ -z=}0iK(xO&QHEBp|$qm=HYi1ZKL(E5lP5mJq#C!lKN8;B!#Gy~$`O!I(!Ep%jgI -zI_4+%HVdZ^MW{O{4@uw}9wy17Wg5_gC}m7AOI?4eD=>k^ceYr|pXX4YJS!4C{IixH -z*lLFa{|n+C;)1f7F0KIMF0*?Cw~v!AkG24rxlU_uvi!xm5gwrPIA3mlozheTt%B7U -zCK?BahT2(nL(q4Ku*pc$Jh6-;3&t*o3PSv1r$V`rF;=4-(XbBdkF^4HO--;MT3Pi? -zV;2LmTYh!1RO9mzplx|>8!AE4fPY?h!9G~%N--lNUxs%JzxgT-;R08mBU&<-cIYje -z>v4>!hjx`*DDS=*)zQpF?Cd?*B!xY3ggI#zkryRkAxBKg;9*e4&+{j8JKl)NTr1nB -zpYNyM)2BYMJ`@V@%ctr6(o8soXp#Q7_2B!Y;~HLDBh@X6>lR&jc_>+M^!UUWH-G6O -zxIHZ1h{?fKZ^rLj|83jZ3ZujC@?`sN@vCMc{gV%ZMkK~+ut-U5zIh;Q7yZ5y*vG~G -zw@ES?Fnw#wVJirNUk_%|GtVbL;-)u61hF0x6hUcb_;t}w+t~%9ce1n<10@8IxK+gS -z4Rg50lO^C8CBYu=?DEUxE&yIA2|I^qS5~ZNZfm00222dL2^qQ(X(?j@;o1l){{Geppfha -zk-e&{luoumT242i5#ucpawnE>%Rs<>j>JzGsXNgYUr|Ghl%W1;jo?qpE_U*#o-D5j -zT*U)y9j6JE`ZS`sO9H*gGCjw4my~mz#|J&D_A}f4c}p!T}_1{#)fNxeU*vKN7bKK;ot_albNKTyq$&dcWTI -z!16k3|08j?GeK4i!sqdpf!qI3+z1TME{nJUNZf85bk9<6wNsnD6W=F%t4%sq8X^KY -z(zA9V%A8$3kvrlpD2KjZF?t#PBXN8GBXLKBaOLh2MCkmLxcy8o@bvhazLkvvByPOl -z0Et^`X~gr7#4YskI>5*b3A8=zN<+swoYAEtE`t^^*Jz`^(>Gi(<`DDY7-8I>67W@h+6nOZp -zK{e?L|6EOgkEd5e7RGqmwRb{8MPO_$Gd_a){U7C$oR8ia`*`o?dp$bNy^MqEo4t1yZ4)pg(?-CE&Gt -zv8x}PlGT)u{3~(iisJVDN8&E2cX6X3zrp(*Ye164u@~P^4#E0sy=XOIi#^&5AaP6k -zZG*FkK -z;?DUWi5q3W!OQKx68EO~Y^2k|KN7dcUy0krMWZwE{jbD*#x{f^hr`k>1l$UCQiqn! -zLy+URG3Bsv0+6^7B%Lhw@jG@$T=Xb?GUp1Ty@E=YXQole$sgaG@wMkfW5x-*b#po; -z6;y4O*9(`02D(PNG{UV$wq(t*y+#ZPoxQHzydYESAM}nmfGG*Q!CZon#ZlNqJ*YiHKFSkh0(tXytj6!sij6C=)zbM^M2{jr3o-qR=B>_;*~4A9uZ!QSSy4- -zp2CSRM19rDf~B71vZYZXA6x(QlhT+knqaJoBA -z_Tx|;Mc-RMFrd%Y-I|DBxG^1mdD|e3ylhHg#N4q5IV@=@+ZTU( -zV9B-nb45~xZH1z4Z%ZIAd{De!SUJmwPe~@mHSlnen=lgb!)5|OT2k36c6B}H^wUm7 -zi9BA_sn|LT0wz~D!)wfSR8)r#8S9v**Hh(J5aCgYV}md -zXyEgF4R{}Yq?5ZieAa6E7I*PF6x4yMp89cH#oPddzX&)tGTQpkV>zeomfdVtTzZiI -znDv?@)NT)gtcoT4oRt0*AQ5iUAd$o1ZiP5D -zrtus~F{%R9S;Tv0r0*c$mB2C+HlrV$j^TRQ>2LNCF-R>msrC*0%t1{7UJ)08&x@vNZRjboPc^P0SOu>S*jq0Zy2 -zIFz*kRp8M6JQzf$4j^s6`nt2$?6KKPUvl+?Br^l~2Ex#;s{|&nJoY6R={GY1j~8tE -zKI8|HBB*wK;CpVBYBeLrhG`1qOv{sx2#xG!g=cVQAHMMSH_C2ZjW-KCQkS*~k)RTo -z4rVEjs~t8^lrg|(C4-J*AT$&{1Lo7##6J)>i025tBYTr)`X?{4rn}BZ$oHxw++cRu -zRn5m|ZJr*iU`Rzo{wkw|7|-{;b6@Cy%`^kxvuk6iMdz5M#mVgkT`c3LYClo7n=$hg -z)yJ!pB(84RHc`~>g5S;%>~@w5SG;y>YkS5h?1`!?WN=)N>0a+ozalx8$?MG!U7p&$ -z)}S1SHpr!Efo0@Mq3<51tuIc4rP;7j5y{HRY^v`0Kl#Uj8%nu7ADra&&01@FXOP5B -z8-ph;)E6~ua1piE92SYWsv!i&8nAD`8SwE<9pA7Gy5(*gO!^Up!(-IdoUP}^-^q#l -zK#Qt|kPQjV$UwGuhU4O~f3qj6z5({Timl)8R-G&^d|j?-Hv6fKI9XL&30X*exQjyC -z_0i#EXNUBz!HatZ`@)E;@avGISu{iiBQm2#tx2-|w`Ea!9C3rlxYgz;$hpnq1!`$i -zti0n#F)#)Tk9@QKHQVqbkT!3b_{Wp&b|q2PzQDH_8{1jSP!rs@d=hs-T``o2=iO>6 -zO47o?vS_n9dAeo^@oGl#B}p1aAV)E|$AejN6v|Vh;J(sS3%JYbLI`}q?pT+-g#6WY -zWe)h)eviYiu-9%Vn#LskRO4xJCa6-~D*@9%aBwy5jjm<%_OLA@6JWurAC!x$LC1o= -zN9jLf1ze0<3a23TJX-aICe^23)GBTLj3pm9E6DDD->VEuB?pgEK;er@KS<^}+a%*p -zRmklM+K#J#=LT#+xUus*hqJ_Tq7f#=sDV`nq!FmLQ|ibUbcuB;PmSCl=AdG$Oj2pN -zCc19n^4xjJH;jUEw}xaz?|DaweTXO7uyF+jwC>UrErVm&^U=j-9EJuEf)>$;Ey&IR -zXO3GB64!VQ)IWr`udqp;X?@&;f4Z%B=*O>AXaLJJ-to=9_b&Xz!>NL7zUxH<9>ODJ -zzL8gB5~KvG#y=3HO3U?U+Ljwk -z$Gb~(XGH|&hp>AW<$tpm#uTGU_BrO?GsQ!tNF(Q=2cq}!Wo`1Tc{;oy55b%DNb)9D -zQ!Pm=)kfA!l1sGp9JbZI$K16L9IFlN9^oMQIi2eB#_NEz|0P4;a{c(P#0^{qkhqi9 -z!4-@(pHY8sAk}Tsc7<_V5&f08H?IK_x80Yt(89kGckKf};uifQaVr2MZsFsDUrhP~ -z^b}REz3Q?mnfqU(go@Da_rlO4kfK`7q25CbYfPkV;TZ9jr@{~R4s{l)q}Sl6V=Zsk?R}!AA$_NHGym)6D_oid~<5 -z<4I2w8NCiY7(U&t&u&xgiwVN$TQ&$)8|&fZF`4(CqwlM@m3!iHKO$q)DM$K}Jccth -zXCPhPppvcvQ~y-hE;dqTa1<#hn056ONQ~{|njUt^?dI|kp3m6^`#ODS?)nH@N!^z*453D@R8nSC@NeszR%4N&XyB8;Bo^^$PlLtB -zbCuyf@-C(Oz+K!OtQkjFXSX$@HMVAkTzGvI|4`h44Sy)^CFC_=iGHC&g5U~0YEY*X -z+VL~2@JoTuSH!N$;*-jE} -z?xuKu`WOkg;vh*@tw66cs!yxydB!I_w(8QHr`F-@0){!Wib%8m5LbK&Ev^7h0kk4W -z*@n>TOEC9dg@ET<{5V=J-3d_GxA_^7T$%nW90ADG@!O{g$kAolSJy4V>h4cP!(05~ -z>@UgeQo+3zkN}H&{a=e)V{HUmf5=?LQ9^R4JU*MBL@z0*OX?qsTMkoq;|m>yeNT4C -zn&6^thuBI@08_lPv@p-y_BMiwcCj^Ma5;BV0+JCI%c1YDj{SF?MCcY~BkFE+>U#(+RgI8yc_AyW+t3X(1ACye%16Zf|e* -zi0>7mml|DPu<#b4Ak}HD!^d-MzoImJ#Rnl?fy2>R%;D!n%h+D!nppxOFTZDU|7=*h -za87KZN5qbFBvGcguxQ@F96s2O^U*T8JG`c1fITWhm^pQMcn$aSGYnw31EmUym%#W(6F!wVLt8;h_MbbgM`t~6RXJjAIjod-Y6-%hyCI9ed21vxU8%(oDq -z_in(3^-?l?wHe&xi6@6rzdPcd1i|F%xgcpC{)=(D+5Y^Calc(=#s*N>_P36#Oj5y= -zq5J47kg-2rnEqcFcL)8Q8arGN0ONlDn)U?1xCQC3e*eX|M*$dj3I2aDZhb|!|6<%u -z1l`-te=u$lLIB3?zz4v%-SMDY|6trN{ONx%Zc;)xxvG7C0LDE~G*yx!;U^lVBmie1P)3NtdrfoERqyRZ60mQ;;$Uv;T1qNxX1`wQB`by#<@|hF0sg2uq&h)$r0OKY;OcmbM -zbN)mfry3lUnJ)9XfI@R<@2X3D!c8dQzEjv|>^ynI?B6%-c5v-PCm@#-&?)(CFt$|R -z2V8sTOEU~&ML3p2uh^bg&A)Q0pFw(wlj_wXTTT1nvP6r3-ZeO&DLx%cJ%9Ly^)?WB -zxRx<|iD5c=r@^&iLcs8-TMlJRfLwegbLyIaQs#~5+T@8uQIh~ycqBxBdIf}Zd3s4T -zoq!$}Ccw&%KI>fqzW?w>p+N4FB|Fe%nGy5oQ})o~qy9QsIrLwQTQOzp55~O}kJno9 -z`MbjmTPQTO7J1udtMh$JCw5bpZqXd%1Ji4~qh21pcChuQFRzYv6))9x)@T`;M$<#= -zaYfSasI~xwc>3#S9;2b>-vvmN22WQ;M0tAsi%L#0+)!FqX){g3$E1N+3GS1^moVzwA9uGRCs?41M -zZj{cg&L50Bi_>_RtkO&f=oae9{f$Yu?04>8jQa}!<1Q)xUl?~&#qA%ATLQwf&zp*q -zll?EoeN?>9cvnXEdB}JBD}$gs5VvAPdDg+awaiC7rgaU#UlAP#OeSI54eXL-K#L5e -z;+;&sbq;h1kz`*i7E-Ek>HFpjUzD5?L|Eo?(PijswA@@r58o%p{nS -zlgKBsC{Ve7pYjRHr#r0i0oDr`#At&@A=Q?5phisY21)M6wcG`^qV4@;b=;|Sifkic -zU;Y58Y=KLO5owYvtg3Gtkk>OHF26QsI`s>`lI0c*A%@6PF+238HfMDa80<_(37FZ= -zvSE@$WA&@x`>_w2S_OSwmULwUcFo6pR72LA19_V^baJ#(16TKDMbeE50x^iUanQ;CW6Ca*A|Msb2gehnuZ8hT-;CXny759lYKqKfhOG -ztzVR5sDe0i#)~}=H>Lvy;YiRHeTmAPAuABNP=ZV@^LrLIwDY?`wyW|&+5-%GV6lbW -zh38L!zTkG7ONLCNYyU6CJqW<$k)v$-rni`>mP7;R -z>C9z(Pxb4<_M+#eR2^0hqt~7wt*Jw!m`(}4ydUhd%P5o{7t3W(!J6HS^9@xf4pc)z -zLgJWTu{*;w3sKoF5C-4{6bA_jd|bhLXt!C9yBvU=Z3Ku3!XvMNp6I*E&?<}>Z)pmK -z8%o&-4ZU -ztt|U@^Z;#ls(7xO)f|O*1qhyjmTC9$-|i4s;<8srLu{*+(QNh&0&$pK2h{$D+bQd* -zTIyT|Lv&xT>1S*vGGkVz=`+toKjuPSuI+V=+BgaFyr{t -z6~QyVO35OV+!^L~wQ>n6O_mZN{nm-Bk_gbrCV^-iSJ)JCliKUd{6le~nO<}YtHl>!F?~XQRn@=&Nxu8tf^l>2TN6tK2OFrDVd+FtS(7iqv_C -z3cK%pxb+<(!SgN}Pcl2iMI@_D-k!Le+#(IVK3*h_`Pr&p?-3Wm>1?sln=DM+KrFM@ -zn1pXpEHE>O;Y6}5uK-e1>tr%R{~kg+*KR-DIDB4Ugb+xf+0K<`5kTWM!C_EE3D7o% -z^Vk=Nu8ZtGZ|l0sL`0@`S54y3xK#a>wHv3FHZxQgTVaGmfUo*FeZ?g(yTCf_crxXG -zKZB1OgG3#IGrg30=eye&U?Q}VEoqM$PQ$R^=%=P$4GmWaHSwZL(&iMzou$)@lfyvD -zZ)V)3Z-o<^nUM51%GpQ>yF(74InaxD9G_dCZ-yV_Xe=%CEcEZ|k7t_M651i7W0 -zp}8-t8}8#Ton>F%aBQhqNL;!?!*swcTy#E~D@4EvW7fH3D;5kzgl%De?1cIA7k0Fl -zd#3!Te!dZli7%rex#XhKR?MO{PFr0>?@N|LgHbkx$O3_?8G{WCSZQT`sh>c0{>)@%gNi -zuch{gvjIx68qM+9#iMtzWQCLAxC2#bf^r6X=XKn-uM_M?f+>!Hwdz!PN^PT@0({DC -zBTvx59XMiCdw>swUVFu)G2H(&R>02ffq=@}r#L4*Nu(e1$UwkuAtg<1H;X-&oFo4;6+Bn7A@_cp?W& -zq2aF5j72zIPfp!1N)|v;z1!2!sWkr9Xef5547~r6XB^>sMv1aENihQ#4Fk^5P>1HL -z<>6Swk+4Th@`QR~;OIF#emA~MRRO-^X??*{e#uU+;k($q{heV01ZyuluP?+ERO{$z -z6l(Bmgt7GwvgbiP;U9^+N*^X`{I1)4$YT(wCQ|<^ans?kK-Qd5r|xVh -z9ZR7L?4riU%3|^QPwz5**PZM3TZ9!u9nEMh;4ob{+c`Ty9}*IPQZko@g}KyPFIpy^ -zKWwn@Tix0{gnX0Le_kRP1ABW)8~r134>z@n10?RQt1@mfrTAVPxp<0Q%@eA7=#vY2 -zy4N?e0bBeP^tC?bf-EaOesxsw%L)z5Gy}xZF>wW!mXkeg^r@p#Kuc+xe_lMUG>dlI -zJca<;z?pw6uUoP*N`Ov6tQU^R7iuHedz0n^m)>%yJ5`H-I0C}E1K}idWh!51I%~Hk -zlPB_vJ^2Vg;>PE7$KjyvZDKXrcK;L4WI(WNpIVxeE4vP;PU&HVmRgMJ@^=f9Y)4NFS?NO>K>{2dpN -z27<~?geb|Kp;;+G{=L<}MUVL5 -zcelP~gU~1-IydZT8R_l{dR>C!7GsPrnSR+cq}*Y=N-K5jD~8{THaOrf2PaI$zov*f -z35a|RAUSx6wAFuq`pBCe7Du*4QHE&soEx*;>zdJIcqu5J_LB)g`IgM`6CNr|3$rr8 -zLana~iOykHOGDRF^F|~g^>BMB`GDZHeo$!+j_M)pls2AjHNw3`xwlmPIz -z6>^Pi&WUaX>=VNy7gihfC{qcdRKBTOkY}sc+RWMY2CTpunfaujCRx2xsi*Ev6s1ig?z%Yw+mo13b>Nw!a&zdwaUzXM1WH;UU$i;vKne*JMQ}hbf -zE8=8StsGa@On8C10)CMDiSc3Y&87)ow3K39FdMcF?dBO4BzpNDJW~CDtY=fZU>?l$ -z6Vgc@@9V`%jSJLF?lvYg7*y66mm>~s)6Rs3#|hKsv5^YSVE%^fUVdg3jd}6RS?rF= -zR9U;k_nqI;ARUGZDxM!^;p?Cmk$hSKm7?nL%zhQD2Vx2_&_Vr+4pw|ci``uMYLiEh -zvaQc-8@_}$-)x@|{_Fx&pghC!FoF((pde64HT)>~ -zAU;-%Ou@o=FhTdQ9+lf?;9Nr!(}cA%K@?8x?D_)_oyS$Q#EGL}ZI6!n;7Uw#qL8^L -zX`HGTDmXF+mgLjof82zNcAes5pUP*jfZ1%Rt -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 -z*6`AsaCT$@!Svmk6MusRu|L(ZD?z& -z3mx7G5L6sFP(;}o9ID2TB9IUN<}DWG4ko9&lmyn_h=u9z5_j3(CGHBljz3G>jQ<}c -z?s`;fDJyV}>FYUJ%`Yv{F1nLlmC#o#r|31 -zo>R7i5AbwynqFOA*Z}Q;%{*i|)BHCQclGSwByL`vzewDs>HmRBFis;$&Dq58_ceyvq1EWKx{;WxD`@mUl+80*4W)7t$r2@wx{O*Y -z{JkzTc+~!==8eAO3##plIW|mb*66rwRveEV42b1kttedP(H3H-dJb=QcIptly_qC9 -z^bPLGEq_pTTPofZ3~hIuSN8eCi@c(kYYK^pk~>J=`<_Pb3HqWArnpzH56|2{hM`n- -z=u!Z?{QO3_p*W!JjJGt@F{mVwyI#~B2@+yS<>u&Jv6R^wzH6YeO^ulg>G~DeQ0^(lS$@I-GY}vR{0;i -zi%4FHsBEp3xC6Ipue*8d&0h|E^RToj@}j_vuGC8rkSZMbzTp1&YGV<9=_*#V1(DhU -zDLYsEewiGv2jH%YBdk{jp%-WgrVeTTlf?v0`LG3<)M0;Zl6#$qN=M_0r;?C%~=2(#oWIqNp7R# -zhSf5yln8&=b47i>+I@Zehr|u|hs2G|dP7{4EeK-IR_RhqqICoYivlhp-45{{l0;iy -zMra#7ckWa9VKoMTeMurNbKi*J3{KCjVw>@}Qx -z#ACX!7UXunnH7(*rDZMEDX~6Z3{PWf!3<&p6JoO+>~Wpwf-r~4nQ9Q^3#<&DDl_LwswduS~0vmLEQ) -zuN}0u3Wx+!%=iuxFjdEwT{uismXv6WN_)N}E%s1R5YBWUl7Ix1t=VkCJ$QTSNIWpH3Ao&a3!t`ML()k=aED~ZGta(JFTVZyK^^0fOrfoy0e -zaB8=a8Y#=OQ%mT)hyz^XCk#a;;pM})ya{(MXAcE`tD2iVo@Fej0z9StBv|E}ZAj?Dp};=F`WkEP~W -zHzNZf;SP^h^t+ePcTGx}uF@_-t+#5t`X}AFvlQxXqb1u`W0|u^tw6g8sU)cY!lyOU -z8On;eB#@Y_E`XKYd?;^&pU;(Fo<(cHDO86x1+TbMTZhn}P|zA|iOa(?zEuwtu=p3bx--`)Dp -z9=06DTuCiMDd1a!*O{9fdp9(2aZs%(cIE^Tylakx@!sRNgiIv+>@}Q6<{HUyQJW(( -zg40*2fJx?iqLh3GORQOgLV)g-86GIe0FIn!z_go<2#)sDK7M^mOM?SB+dz#IXp$7A -z9RLFP$K<;)Bp+o?|NKx;58XAk<=`zk6tT7fwYbMUae}k^sTm0|s2*&7FwmPFx_c0v -zTDXbwcBlWz{`9u0Dzw>t8KPVt(9Q7B} -zY(uG?B#H#ewKZgR-^*MwQ>`%cWFK>etldZ}D;_FhBagw=aH7tY#Sdmx*0yu;&#KeuyICR1`0rR$FX2?vbD|Yh&zzr5a3Jx(S|Px@|wE%8%g6il`r9z-2bv -z`bn>1Rqfw&r7Mfpn#B(d0;UuB(hn*Er@5MEB2VxHQUxoOgBt%vC7|euM3kB2VdQwK -zYU&M_id`( -zP?8@qbIc~-!jX+#a$$nUn=_HRYlzn{7)o@$?2ZOeW>dRGsO+y)C{d0%(jm_l>J_%K -zx9p|_`5mLkyaq@fi)sU(XNYacZQS+_?1BJIGN(5B`4~r)v5WK>ZbF;;`_Iv%$@ElF -zcN>9lVn}CGP>WwI!ae5(h`&8#g&iHVejTmNxP3_&-D3;(vy?k^T$fP7!Zg{Y0ry)TIs0W>!B;^i7T{!(%ps4{P&i -z!(Qpx9{>_^D6-+OP-AFWDO3=Nzcu)64n=n`uU7#C3sGL>l#^Pp%BHKe`#7m_EbJ&g -z-!$B5_1uD+vO26#psjcP3G!iDDQ8$cg6zQVfNRNq(*}sCNZUY1iY|=8QyH`;kv~1iaZvF=Z`-gjA$d -z&Z)~crF>@-lGq(9;!T}86Rvj(GzAp|V4Of1L;fT~ES)0PU6n~Ql!2`x0e%7m6LbZ& -zWP?S~jc`O%Nk@}eSV9xbs5GER7$83buq -zkP;rH79I%TwDIcYY)@tEhRe%XQUPOdDcca8Y!b0mx$lTXg%~`u9sky_<4&4t=HDVB -zXsK?saV`r#GhjAxZhUn+`jJQ@Z|WxPMAMtja>@e)JX`NYAl?~wqG_LBX`9tjX7*rr -z`iUF -zJ!RH;lo2L*JTnc$8wGZsl;NY#Uk*1nUFaVUw{?vguj^5++=ckB6zNEFPj45@om>Xv -zfDE7uJubytqjbP2jC6@Wr>$w)Y~NEQypA9OCg!KTC-U`9H~y8fEGFJDus3HX%_N+hy1&?1&y1GzOM!a8lvzVxgPq3cSa9al1g133}rPr~kvs9lX3V12B;vf`po -zbK{WH^w9#4&R7fyrXS`J0?y$9J$Nh8_9h(tYjB1MaR~kUfAa03NsscI9A*x@AZ^^N2tiXpP`$>I>cu66QMa -z8cgvnRzX|dZoj=W7Y%@wQ-g=wQ<>6wX>*N`b5e_9h@oNaj4o1lGKR{gmV+Q10HFA3 -zgAe(&hS_=J>VzgJd5w!mPQ(XH&CB0SFEH -z{GB7dT1W!l?+2}-uvV+lgISyHMN{H;Tx)4JcQ+lf#@kqZCeH0aQ&H_WTrfgUz5-(>w -zBkjJS$3IQfHFs_Bf(EYPSbuDDk1g!>5Cn2qxcT2h+@`#cN@|JNgJ%nJ0?d==1XOm* -zniN0DZl!Mq_D;OwCw& -zHi-R~BZduc<-IBL!E#H9(+WYQ-M_SzEngK;A2PD!zoG -z`u@XTNmMs)z9?~w9IrBN(!4knmw5393AZ`?^kWHTLIcuX0pwR}Vt3e)mpX>_n$IMO -z!Ie_@y|n1GDL2FwnWOAlA~bhvl9Ha@A5^Bl076HBMly{_UrK{s@rn#8Dm!NmF%MAFUEXFHI56*rr!t6|!Z? -zS5E*Xtz)t^8rl(p48TWnFwyc)_(FzvujB91T`xG;D{Q)bwG -znG7bJaIIqjt7+EVGNP$a?B!$*lFF`5XY9$)A{Olf3<2RhnyAVsl$Wu%W&n_dzo^n) -zr&`O{NyzZU@p-;O`msNAsfuot{94xCaeC=XY8R-Tg8Dd_b>NDvC9xnQfv7WPSEex0 -zDOhDH#(Oc0o5YZHvx6D2FI+B5^$2gE{UF9JJq|kPi2f!BVmQE=o|Y&QKc<=o*uhEA -znprV5AzT-1x%BBgKG>O)LZ&X(SV@S8u+052tkx?hVB_x7 -ztbY~`-L|-IUqB~u4?3J@rG{Bj(JsAFUZq3(1+8~$gN@TSu02w}%T$=Tr2`H`<>o$4 -zQ)9>skcr_UbD!;Jjf8kqwPZ;FqiL5p9Bo -z&n}2W_m23Q93vD*bghL}%(!fX!7=jbSVG3|u;zi73fd1VIb*z}%jpH5UHPhFJ!3ajhhk8}y=2%mK -zV|eJc^f!e9V3ZxlAq^wjvSx5K{$}c|FHD1HBYz&72fB33O*9zU5mc28*nraexxbK` -zaiTsISfFQ{(*Gypi4YlRe=!_3QmCIybKv^ZJd-3{w!JEn2x^fpbu`S3;IN2p_hPzj -z^I#pai@22^K#}xbw#xJESs=uVf|lOJ5SqFcml(u;wDdx3+9UvB1nUUX8jb0`cseSK -z(KAeDV^#@V?k?vLt%z@fx})nu{DUQ^igtdA%mDC0P{vOi5>rjBAw!8q!WbN>AC(qj -zcE5x|k-zm%ttTdkOAXVE5J{>Lf8-wd*A#EE&`*ap0!JXgE9mw%QsXP)ALzE -zS)i|xrGHPU4m_vjnA(p-M|ckvqwI2o4@FFgwdq6l2gFVJA0ciUQZIGZze3zte?Z)r -z4-f}1jhV#51q -z6PQ#wpV40wlME73lAIvy&vF0{Z8NkuJZw^Ji~u6O4zLx@?UIJY!FYB=>7<9}`G9Ky -zjnN$E?aZ>H4*nzoQlxO4wHbA=*nq^=gJUU}JC?!X>3#czgxt{`gLngc`zK#7-wWBr -z7U7i=@?PHXSk3^<+iM{V9qsp=d2UMUy~UAAe&n|^u;R}eF-(l3XdQBOL* -zv5yMPPl(lwMyK_|&$SZz(ZFImJ=oa}(!jkZn>W57Ak7^K^Y{X(Qq$Gjtf!C7D?=t& -zNQ{7-@%lgxIqvsZl}1d_wYL)we+m&jX!ZUR*S|vCkpBd6$Nvf9hOvcou0S@2@DDB< -z6dyl8f!)c~?pR4U1oCifZ8q4E#mNKE(MDchFH>ot+ZGw&;*)Y2Na>)Z-c8y~l3YOwa|%uLD|;d3EyW-;$TlrD4Z7C0XJ0!0_5c<*7I4Pt%j+Ro -zIymyjHKJGJTvPxORAAE+MpI8Ket!!RV(bHpBtPn7u~-pSEkjV4VbXEj!Zh}$&}lCqEnp5R4^j2) -zUl47hYA~?F(&JFlAir7f?F78|tAKf4z>mVJ+_fY{lL)dxYrhNH({y-BH%sN+vap0)NVlABfZB4IkFZ?2(via$rI&t7+I@lGvWzWYD^ -z=BQiVYav?e7`$Ey3}Bs5ra=-Po%3%t26Co#gN*B|D}nAlxLk_r@HwSwCC=f%SoGmR -zj7QHSG1XZm1pGa6F1-A7B&bo;d}VAsoC>iB9s#Y+a@uh?*-iKL!^79R^=TXkGZ2M( -z0RjdqAjt2ZGo@y8(o(HrGEMRrGxs%l!gVl-Zh~h`U+{tXPhXZakv!rx7;%2T{9cZW0i*ZIU1H8!RmsaKZB%e>z`Xc?#;xc)7EY?^-CkekOX*h`Q -z@Cd=L<>)tv)_~!leED@e(<}&|QV)QaTVsLg(;SfB%UG=H>g2FFqFliX`~l1^O4WjJ -z9;1fpEfss_+Q1&WoiwWUCgJ>3UE6$8*KL*#gg7;W9>_zyTHzuYe78uXd|Kae0Qzcp -z@yrW;aZXmO<~@Qu;;Hfx@(TxcVOXUD&P%-&b97zRy_1=^Faa`!`{5x7G0)5amL&$3 -z-TO~w(yy>qG6HTDda=lFGLzL_Ei-SNXsGDbZtwpFCY=kTl*H^K9%Te&F}Dogh=|$R -z6hID2hYnO2wV?O&0I(H@p?;kA9a(I?@0 -zFkFlcqVaz;-?Q;WD96s}GeJ;XtC5zfu2$<7{U*R8WS{tThbr587M7>jymxh;2CCtA -ztW;Y^oJ~@g#%jHWZ?+%f%VHXRdT4ne$f9d4a#<0R2Czj|$6<^pST&){r$Ruw5 -zrkmMdKB7y;4GJ?@*!YnIg)I(sSqK>3t&R_g4-bXu{kve}sM1ft;Z4rsg=NOkgh&Ty4l8e4;93#;bRIYX#a -z=R5FWHGordokNppK+b)H_Vr{G+lX5r$%B8|)jVFO1c|uGq3~MAYNn8s$4V}ZemCFi -ziVA@Cqg4BezZG4nMh7P(qtn3k0G%C28v@cuM*;7V*(i8Y_6tCD{3iV2fZ862Dv%e0 -z)~;vU7gUE`L!wC%?o0o@E!?!w_ -zC3;_YU0&bUo5!)G*RS(5rAziOMRfD+!)i4Rw!?QL+X3hE{&C`-?JpE}owwitAmOK5 -z;QDay+2v_bH^4+PJR)Wtu2Z>Ia{S8%G?gzwFRjBls~&C~!Kn6a~cas{Px)OWtpT}4e3tCEnEgsP}qlSc#>_~QYPbp7by -zKU3TbE~v=Z@%hWRKWX%RoCC{U@iX?SYu<0tZug7WM)H$F03%T=@eq~)Km$X=K|QH^}6Lbr1ne!Fyzm6;Bj>oZo6Eaa$QqRo+rjrq@NydES~sq -zh9kos-Sf^JW&}gt&dFraKcBB*?-py|QXOI(YYYPB66m9=hrP%`W=>}wkHHTfS*5~Z -zK92P`^|o%2`I^|CH$q5C29*&OrH}I!f$#Y|-`4iW<}j#>zgesQ0BP}p?&_C+j5iar -zu?3fC%CE;R=rdg>Gy3X*9=K8VUaPHjTu<)Y(1{BWutN_(5s>ZMmHwy;tXZIY{)y@l -zXHG!euqH}b;JompslhECxKlj!EiNBrjE&RYB#r5F^8i_hH68(&*2O%t93*AP=m|#= -z==?^dv;^E|bIBRQmFt^TIzYBV3}B&Z*C-3`j6J;)2R|;bi27EuoPocWYumW9+@^#r -zIyDiq;dzvy#Y7&kg505`JLX#E@?G!q}dF&mv~spHN1ALt$Kv#=`u^N`;42At^S}zZd`!Y1-`MGG(WtxC1zMl}aXIwnIe#%c9ZjGY+cPR>lyO~(g2rNVo$n^nVau!dhL -zppH=uHITZOT3yA|hs~#z=piTMLHwfj4qN2YKkXMbD?a?UfHu>7=$u;sl>T{KLDzxA -zJ5bIhNGKQuFeZGY?MT9}%$6FS2S{<8uxui=n6SwYcQKfb(5KiNOTz&Cx96o6WaI2B -z=Otm0U)bN?KQIp(uuPV6QdT~kZSfaFj?eGC-`;HB6M*S2ci4SjwtUzz&M;v{-9(pW -zW0@dVnjP;`KHu@{iQ!qCr;2A}N8d4|&UM!A&+9i%47_RGKc_qmt2Jl|x#mE5Rhfhy -z?^ApheN(2-<=FU~8ZW%Z(f5Y!-Xr&z`0kG9*FrnfbMms-UVpwGM8We;c>IbvZp7a@ -zkG&Q;ggt0`K91%vW4XZCSEtRLi#XvW0nxTjjGY=>`?VII-7ouk#~|>v+<^3Kag9*d4W1^jGr?ps*dSx%*wTnbbHU>ZjRT-HqPaQ>L(E -zF~n(WwT5zM=)yh*c<0`E+qc&&x4u>I=S%dycJ5|9O*Dt>OsKLfz7JCT_Wh&|U$WeB -zJI1c32j!`!_SdFMmx7lxY+pJ9_bTqwhp^MlDTzViOpq%_N+*Hy3QX1*B$U(NIlqg~ -z3CViNtYl$45yLy4n_ek-Rrn576Y#(b&ji52gRMVxyt?dGWL0$y2TIAx%kY^w{O3Pyo9H9~ -z=8JBQfo@KJr?`v%9mRd}SBl&DV*?r$Yw<{KHyK8(0LnY=5UP`*er1EZxLF^s&>NsE -z0V##nw+KF)E^6G6S -zm`4K7b>4(ateYJtq~}QjrMoV|)xP)?TmJkOJlojsK7_9|?T+pc3u|Jl&s82fvL#fr -z^|i99U#pJ9^tNM5b)PzP`52i62Wo;vjKDZ3xstiOl7MY*5RIqVOU~6xH*M?$84b9sE$@Kz2+QTjDrUU%u79)Q}jM4b$Hv% -zLr+#_arK?Qd~@glt(6z?NFBu!mU^ -zo*~l>(h;Yb#D`kOFA!fu=~Z{FdNbs)|0&9dL;cq{BS#?QwfYqZyPo8a$d~ttP^5Zp -zKG}`FDHCx{up{sbj(~US{p!eIh2`(QU0nNzHtLK;!{<)x%%C4n*-d{y+%NwHar1JQ -z!X+nvjqUyhaXA%mNhNZvR@+nd7juJN?v;T)kH -zQyrrhSZ)L1Kz`EiIrE|EGDGRZ5@;x@CgZRA7KG!&D}zt59eYzHW1Z|9^7>#Clsvg+ -zO8>*jJeSA)mu&mnIXS!oN5b#!YJ&?os`<3;&?^ZA2e}K5b -z{{nH7{~hAq{r?SdC-;E_#iT&LU0w*Nx}OfmFaUP_gyYK4#DC7g>=}40%rU$7X!SSi -z`#Eu+dfA8^Qd8SLN~bS|XZP`Z{X-PT3VF35l>4o( -zNDb04U!!<}EMZMJB?=^6eZE4-L5R2xEp#NNskudz)AEb*KCl<9-jqAXwyznv0FRga>&+ -zH%NYYfBbIlQDLAK-ykkr22~r9+Owa4oA|234z;P$ocEd9Ix~AU_@S!$60%~FqdjE2 -z?k8tkD@XVTZ8q!^sCO#tm*EIOCr^|VY-mceNQ-pIzD9ZYQ|uf;F{8PT|8=e76?Q>$ -zgq+KF9w0I;i(ISr32V<2fc~KD2VW;ji{-HCv#j!7MkaHHflZ((XD>L23du|+J=|J| -z;Lf5Os>9m3BJ{-%M4G4>mRTqmKkXlL9jy)FAfq0bJ2hnoSbba-r2^m(HAZ;uq@}En -z^U{5c_FL|Af^XR%DI*Z}P`3wrE5b;2E`)c4fI>7mm78VI8-g|tOn^H{e36Y0`kZkD -zoaC8%vf1iYYnT7zaF_ir4)-^E0*(V3>a4F-kgOFi| -zk3qj59G?0q>NT5zlC6$COJ0M^x7nF>;O&ls@quDE_>J~*O0@2VbTq&0^h%~ZR9ztD -z*qAo!j{^_4jyoiQ5|SCKVm^O406nhpa0ONoNW<=|C=QMz+GjI7ATOAMmvFDA;~=^S -z1qR?b@6j1{av4@>7cBrSAW(CQcZ2KO8yh4Jt4ATA2tDmWn=%iPAZ&{&A1yH@eO4 -z(2`&B0iDm?kxs|A+^ne5hpcI3;6~@>*&Japl2EL9KWkNkW+!$H`XjU@bYg?+Q%ktV -zGVlUrC{ISvsj&$09Jvr)kVg!r68A9l*lThyCq}0D%5##MFqMe1h({a3JP1TrKvHQg -z9R6pAo9M3&x8B%a9B#vPH|67DAcQNN5}Opb1+V!M7-tO1y-n~inj?m*X7?v=b>25m -z@pyS50Gs^@_`1Uo%H}^i-0?4_P=9y0-4E}O_#L=TvVq -z4K{V>8iaMxN0{=v5%I>uAhh)GLJE&^*oGSaob)s-a0IDyeYN{V5phGX#6C$~NlhS# -zdx$e}6B`yhtWgCa+pDMtC^wmC`wO3jucoPKaBT*&X#4Rr^~Fy6UOQ!XFF&vvO&P!- -z7umejGK<6k6kq(8lWR=y2v^3v)&oS{#0<%gG>Vd)2YpQ!rJodba2V-}tB8yn}N -z7*C1C8hBUbbCPr6a8tba}2b%cc*5cX;<2ZfrTfr(~ -zwu~9+n+)lBeZ87}pPUD{lOsgO05iDeZsFkD4#Ffs$FN>020M+IeQMD7r)^O0i}$ao -zFRXYI-C_oCt8fg>jO%+3QBKKZP4fEJ7r5cLp%f;o0z&NSy|vA*TcRcRw}X*Q-nHgK -zLn}RmudIT_I}(DBI8&5uF3R+XykI03zk_i%?0U)NS>&|?-~s#wxOpoGHeCvxYYpWJ -z?Ps8k)qu-_L!7qo83|IxI(TJYzt6zO9j1JKscItD9J;6?*nP(874huUcammQ9|dHY -z_89g6KECCjC$xQkdLm4t6xN&vL@O^T2o+8V`zmpOV@^A~)`U;2O?$ZS6w>qmEEqoE -zk`v%zu#QIvUIJX7&1`A5QaoNGh0}g)N?_`bStvP+iHlLE6v+B-4mbY)(cyOQY1zE_ -zpdSm;O8b_y^Kl<)P5$L@vB@xk%l6F={vC!OiKNN!j5)10Xm`la0`ye1zCS_>Ov -z^SW704i?JND}WY>P3%~rl^|@b80sg+8aSBZTp|lELf+ycbI0NbY3U8K<$M0XmAzjn -zDHKw$F+3msie>WzTIc?3q^FAc?(Q`@2J})UbeBHmlVfKWS8)~WLjXDhx#KD4?@Y>q -z*HBE -zHj_xxr^#7|ka<9yNNm+Ejol3L8E;^ume>wqXa_lX3R$kB=I|%pn#p!JPOXi@*YZrS -zg-9-jQuss%*V^i?l6ny+#8kc=LC8S~G*2>aU!F6DmhT+d2gW#p9P}W&aOv@C^^J3E -zTw|cI4#&sRl+61wlaNC1C5Hb3^{Qrom82d6z=0 -z$crw7fckbGwB(sX)Reqg#Q{K=?%iBJI%)7Uc`9B}oiW~-&wLgf3_@b`*gh%557ClS -zC1_IO!q`hc!hpl3@^}Dg7Qin=dT`eFqsb6Z3KduQsc)%h`;$noBS`NUANC_|I%rIGMu -zh63qP?2JD!$Le({3V5yo!v`1H>_ewhJ5*6xal>5t25=0hxkGx~PvQFK$2__&BKa14 -zQx3%|!}-eWe+0B-!nVlVYF_K_+|4C%@-}%%b7c~E(zOK8OoP?ooFENYLY^jc&@GDJ -zROLOVjDd{pYc&q3$xjFs_d53LAY>`Pkh0DB7Dof5*SvNJjiwqWKNz?R>5I -z^Hs8mO)au9-S2Y%Uy=U28A{zyn_VEAu39x4p6#^;LQlEjvs6>9E{SwH6D|i%1*d?cSG_S*f}U_imvIij5k9I -zsz^M8&V2Npt)x>tFRA}EfXdwAti`339@fQPH8FNL+MPn!^V*_`Fn{_)hW!PI;YID -zCsAqbfDSl>jV3+vEC`;E;N`RPaC7hsIpUIG@@H{?7gvfS`g8$^yilsb=iRHQKXOeO -zp`C5ua?crMrxWC6X<`7J4 -zzq2MnH#ZP3zHij@NsHMJVA9cA@bqeDDod9b)l603sPPA~N$XSYpH06m{0W>}@x{*y`n -zNG(BVBW>&PiOmdTeq$9Sm`YSCPDzX>X}A7Iv=aG1-DHqyDz_QuR$LS&zkWSAVm@OV -z(uC38hyxf^@YD&%Rb0b9H!A}{#q_d4vp_(QmmT; -z?lQ`QKL$GHF>pe8y(BQ+1{r?Q0ppeMFf$W1E7VwE?7vUca_~ccyD9?7p_sRW+g|JG -zc@L{%Puznfh&E?B{R)sa>@a>03u@GtrOfQN0%icoP35+{VR1*ZxEA6#FD9toL3aQW -zSJazx@e=9@;J`mM`9C|{_)$xsxc|oCmi?>4P55_*yZG-8clf_`xVgLk;&2Q9!{MI&a=07vV3PmlaAyL$5tF%v -z?P6K04r8^g=8Qz@Dx&r}UJ2VwR8?fw-l9!`q#QjShz(mEC07Q$xN)tya`kUCP -zKuZau`TF|-tfPbWHaVT@%lyOPzVQ5$!#(%qaJMR(L!=6Sl^jV0*~R;i@;d&?q`r}d -zK~3dS(m*WORg%P^Kh`N3_$ADzHC06m57sKQO2mj7Vj{KX??F -z_TXJs5LsxTA#7!2%FgF2F^%H6GE4NkKujq9tfkw+X>m5Mq`}J0vGb-9kd&6TPSek% -zILm}qNXq{d*t!1%2m1Sl^#YG)bV!`u)YB8At7wFg@7vqo9PZ~oJKS6h|Lky|{mJ15 -z`B#VgkX5IO1gc{k<3+-kz!cYi&DD3C2bW0csfy0FX|sBVcYwT>wIJ4%RCA1gm$T|4 -zZ~O6WxvI$DMb4M3BKBfEJV;J_-mi1$BEm`Hwxo|b!Q6L$Y-fV3Wih}j}I -z_DTo%{PP>qB7`^LwK&u3`%PqN^NLh>8}@Sm{ZjkA3&+%{34LNTM#Z`-=DBN%Ngb#_ -zw0EUH6=mmgHIf)PB)!1UMrBj>4Q{M>j;;`$u?fkS5Pn^*M|(Mj|L9x-KoZXtTH2Uy -zwH&t|pz=hN7i&&WU#?q(X4UB>PqKe9I_$ZLQe7g8S}$#V8lf*m4i!wv9DJiH>rfF> -z841Q!ajVpSGFwn$fS~KiPD?l)+aZY_2f;sJFdA?RWHi-B7^oy>y5CPD=9omvufEcY -z$ZR?N$jTYf^y>SeJ4;8Q;mtKb&3ruf+4b2tz*;fcW(StS1o`m%(&e;$Lm$-h!t&+v+&!xP!^7b7tmi -z{ejwb)!O%ZDwWgC9yp}d_zmm@Bk`O@ORD>Jq==KrX9}IOM>}jZZ1?f}fzo=j6D6)} -z=_wxg31nX2R!7sU*u@NRj{9=B;bPx&E<>oLia5lN$RX~5N)%^hau(+wZO$Eh3uc83 -z7&Tcz-RYR$?W4H)J@X3$*zx(kjH^eiz!{{5=U& -zCO@mlEkQK8WcuW;G)DI=fG?lVv@}#&WCkv~xoLMpuFG5OVQcuu4k0UJ>)eJ7FqlK! -z+@3&}0lkyQ53s!w2D1JrNS{Z@A9B!!G!FxZ85hGb}#_11khA)S^O+B2Qwd%W8 -zJ|Xk2hVq^IQpA_Tje2|*_P4{GUhw5`OCK=py8jYDNoJs|!NDnsX~P1a9)vicfTzRs -zBXBWhP%54;_sE5kQQd%BiRiU(P+AKf)$Kc;%J^nElr66#?p9>-<1|r}!)Zc{c#gGM -zgB|q;sbYC8IW)f`?8zi2ZAXNO8@sZH;!yN6Q1Kxk1c9iYBMNPlDs5RE)8Q+tQ;v@iZbZqKuvHddzu*LSmA%cx60@_Lc<1qk@7Sh?r~1)j+F|&WA5w`}a;U&ND|$wO;m+;f -zQ6Rwb`@Q?gC0+^(J$VzXAvgP+Hn|&G^uB5pW*y2oJG)#fsXxz>bHl*^Ht>{rO`?|+NAet7 -z8`ED7w~XvZ+%(RJjSD58iaXpt4mW^df+F9U%dHNG`Y(t3Ya0XA^?w|0q|@NZe;n>( -zk0zeK9d10x`&_IsUNYam9Pa8|&6qET+m7p)DqP^p;qK0p``h8(#Vl1!I)Wqp+u^Qv -z%paK{;Z076&8n}6y#?O!c_N;@x3HnaXCQ6v3v -zm9-Pc)d-8#0I>BQ#ex={HqI>>{&4$V7&j^k|Chtv?34Jn!>z@zUQ9U~C>ai;g2`+L -z4P^wU)v8Kw0N*22s~pnN?Dy8X9}2@d(^n%n;_X2bM;|wf9rtJY7@3M&aF3tcvVL{< -zu?RcC2PC3ire454133TN?AYvYv+V@jIe#t|t(=!HhkK;n(aKMwc$Uk>*NL%0Ihs&sAhV%3+! -zZT{tObK?8$2vH^W739Dv{*obT(pG_W#Y)&Rx>QI|oZuJwO=GzXYz3dt0akaSJ&Qs7 -zyOuHJIFAT}ycT0LjY%qUO+v(arII;cP;XA^gzlxbWl$M{fW{MNGgyoZp<-Jktn$J+ -zHd$^1Q-cuPf8La+ee9W`$e_V`owD-&bbckcJ5&<+#zFIq0d9PIv(3Ez-g;**Nt^KA -zW&~M1_HwTRVPokzxB*^QkP7 -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 -zk_*n!gk~u;o -zufT2@(w&Cx!Uq!lD$?`|Im&;pUjZa0asGz5kHG*aM+G@;PqO=mf=Uu?me%+;(}OZH -zcpAHPjyiZ+HO}~=OwB&od+h%Mar=>fLEJBYLEI;GaHv|Cvp{4=iI5)D5)V9NB{5*A -zSU;zFhEX`FKw6r1%VFO?I?3%cdRs`msHFxiThJi+(>g}D3k`CE1- -zfH4&k9zyoo#{RIF?)=Q6|J5Ec2qWI-XObA1_EO^9{yz|R#M=K0aXYdx4R49AW0FB| -z$W@sehAjbM!OwL(14Is1KhUEa44}e7Z=u~f6|qzueJM2x@pfhYg}7nO@#dp3_VweY&d>Mw|!@C)Le#r?k^?gYx*p-DY8Wa)_Qii`;(f0?FEv8o0h`=mrT -z8kdtYsNp+N$5O(^c-qAhPoaY?l3{rzaPa%?J)&S-TA0nTp}H-EZrah -zyDIptUO89IWi{*$e!0g9LEDWZ9f(g!O@wR{j8eH77!04Pn?SBKo`?#L0l(8qlty?b -ztZ)o=2DN1i(4ZsfkmVCpuJ^TS`f|Y7loC2E5yHaxvR4Gk(J^Qr+cARe86|YA?)d)j -zRXQyTfAB!Tx5r%(*Lfy!SmCs1xmPB^oT@vO2JhtZN?dG}?xsD|>mcXROltmCeXrIM -zGx)YPZ-SvRvRtWcN1x4>0zw_H`l^)8UyzZd7)Up`uJkQr09vY+$QlcEz^%^)ogg-R -zQ9&h&Q;4Lrt(~9{eB&%jU9duZh5-ym!6kl5y*NlIekf`dZd#KJnH$N;!9%uBnUsska$HlLLAmK -zQ1EW!g-ZwRqn{?$b>9tgSMV5VS)PX|ct8#+KhnCg!&E^e^5kuO!^mFliFDl6o_Xd{ -z_0%0Ayl1#Z>#Ua_M&9f^^i|cct*X8q{|9l${tIz;^Mw2bai{+Sam$mslfL{7ac8<9 -zY3HHe_)YtTO|oiff0s7q)~|vdyOn%q<2X4hBjqjMPWlhx#?^8^RnYFU)&Xckh$FS0 -zF9uy`y#1uKiTLhnRSAnYP-4^!gm|X+BuB!V%h!3>{YqAgpq6DhVXMVG( -ze@+ig`d;jfk!vJb^ib)MtFdJGkf%A{9(OS(a${}yX;e01^kaVBNh^2|qbtO!Yi(c1lFA@QMQeid~lSfF2)!r?~kP1Who-y;sx#;5d=f2~0cV=r;#@W+APRTmfsDaqz -zB^x@(#l$G~pqsj!B_D$>I#j6|AJXp6GhtLuix~+9Q3VzNjQf@+c|;xNYuRd^>_( -z3qSR8us8^_o11D2y2>{)s<5H)L~YHL%>@z9sw54r?|6Dp4qrw~lW~V$IJ;>qCo3%z -zCd)D-F%bOVF_%(5(yV?DE>mzXM -zDd5A8W=VzGMsM%@x#?MjCHzNCRdz_{FJP3XTJN{_ch6e^48}MXCUs>MSA8JZuy4=5 -ziDo{<1!r!cvm_Ic#8sJp`x_7xA~zRhP;`F%J{C`atl(ro^zFIUbUa4HTdWD;H54&v -z9tOy!_@B>Cxt0#&_dDC|^wt{h+V|^Xt14403FX1eO#P@D(!1K?F2-=@(3%?_bcqAS -z<9}})$~i*CX$39zuq26!b{yNZl$8Ic7^p|f1&`Fl -z3VUDSTbyCW7A!_d-r$HqeRmtR_m>QEXa9M!-ffB^i_hO0s2zB~hkd&oBd@#Nlq!nk -zlWFuT-IXqH!iEz2xR3-5JnKQR8%d?)N_ycBYlW>93feCtx;`-t`^1fP1)kU@etZkZ -z${;+m$W13U13c2tp(0yqyCXY!dgbXV9ZQ&`il1|3dEqygrn0bTmWK7GzzFNR -zfzx|)m#&NPvKsbOnYfpD^Qd||uP>zbLEfx+1Mg-3>{2h!R*A0u0oVR%K8I$eGRY#o -zzhKw|x6S~4rT24~;!$Mw+nGh)oh#$)gC}@|H?tqX4$XTH;`jPsjRfJy9eZj@RDFB_ -zgHP-a66*xm+bUu)S~PpM{Z`y_gwCrh{Lp~Tp1ji9D*Z$=T!=yLkP0|)Bc7jaqbA38 -zO|fkG?JYTmFKHTIW!!i(mS5ZR0u6MYLCacnURDMl4qGxal=e#~;$do+5`{4fIa@Z(|o`WH30nbLT5FDz0(xNYD4)i -zr%#yEm5#($cPdXd`k(&f%34dl0;%4<5w2TyeP9t~ZK=`fQs_%ly%!U&j31T~vhcLV -z)N;g`)0YW&X7QoS9)a;1H7Kl}#NA>^=#%!?_3STQ|$GAu77 -z6`A -zL<<(K<9)$4vjW!gi-VD~w(4u&DzWF6IX13V&Ssk7YHz3G52f`Y6-;|~`D$9*?GvNT -z4ITrblb3Qv_P}#A#-x8HXHJJ&g>O5mcFCBjU2jo^-%bq;A65>^c)#{Kn1~AR4(p$y -z>y}~2nL{#V=Lb@WKC{a^-(a0)x9=uOP$|r4;nKjx94amUXb%}#@2Z5coV&A~qJ(0L -zJDCf`(h-u#Nt+nTQA|sDdE&(dKf1z3FQ9u-!P<>n7Pb~8_q(<@%R)lHT@A^7HjK2r -ztqx`gSB&2Oc3~ASQTxj}4>P5nbHF69O`Ilu;^ibsY8ZTUPQvI7%vviQa`l3@0#|f` -zp<*=hGGwFlK>h5uWMA|s1@6z2w=v?uaszZimZnok~qLRGhC^O}#Pz>~@E3KsGwN`Ox?N9=sPq%==Ur -z_7oBkvm%ANy*h3qcsEf5GJF-@i~uRAd@?cL2rtLaCGo9t9JH}T{lL?%navY7zbA2u -z$^d|K-+0`$i(Sw63$a=GL18J*g6ixSFJrPLeGe5#a7}Ibi*|pSVARijX>ijpcXguN38W(avW(sn<{^p0_jikI5c* -zkf@8!o+=jn7H64CkH>m*zy;HZ{GkjcnqL>^y?&!Na%g^}rr(v@2+!H3Mh{alWTqv- -zdSnAzAN9v+2^JGy08F9R4mEPYXAT%?Zf0+Jd{Ki=+iESUS_aU#$QJUJ=;=ytzqD^z -zX*Rgp(myi?Y@G?ps-DXuLx-TW2*ZyRq>kp5mv*y=kMM3-^F_aAn+r?faABX%J=Y;u -z-GvMNHH4b|TuDpnQDk@9wBCd7pAd#biu{#XnY8l&MCBu_Q=EJqulRtPv*8jsv?E0%fMqH|s2^hO%;13N(7oa`_jZoO3vCH|il@Aq9gI40V>Q -zn~9|n|JVm|%k0=cjXs7llkhi4IKUeC{FPb8Fuo9;at^^I)>!^2=9~B0WB`_}RDB3Et#Qkj{*!d`Z6{=f!ED*!HRB`%k2>3a3>ude0j1{}$jC)m -zeQ=P^YH;s;e_~U*OX&u3Brl+q6yLs5rYWf{V3gI4xdTor@Fa0@Kz-jq{G -zSFt$@nMORv>@J{Bh><^LR)^o5WGmA)5}ZPp>G4Uv{a`Vb8875%)*p=bYHxUL+`!Qfv8IF%rZc|F -zU5F&{WJ(X%Yrlhe{{GM#c-Tdke;~Ebt2HREhR)J5P)^dFV}i+hg&IM>=RkNSe6#{j -z9g(#m!I36%Xie=HqSk_2qb3+t?QdVw8-V$JYUnC^7q=;s6wWY(|J!Xk=}5rd%>(%g{2eo7)bfOqxAn0WYdx<8LaLo|n{ -zM8@TPp{lro;G``aR}`>JjJaF-dbAd&kpik~<}nbkK$?!IfkuP^fiuOhl5(9$Q}V%^ -zwAl?ZFMuub -zJhq5*n$DcxXh^tmFkn2T1{if>WUEo=c+IdAB}t7;b;SwZYWd4zgK^02?n!LYoH*77C8dQ -zrK5Gp0fuBSAaTyuzn6;3lXjh-2eaw{VO{)lY?>)lJ}oIT5_uwv-$SMD7GO@2^$Wmv -z(O;^_>YQ8nd4(_vSzA*3W@t8)>P52qSm$b?ELE$Xpx^{%?)*t_g)D4`!kfFDw<`)( -z2HF;W0%#P{8zXk`0PFEsGHdB#mu1+bAc_N&whSlf2* -zw94?ExJzLD*<@x)pIlDn{b8o(YV+MZ9+*?m3-)o^RXjxKyeN_9#W{%P8*OLcc#J~M -z#oVlhwmz(fdqNM+zOVyg`8#0Y4%(|hbws}L!c0-zMu`MvoUA9Z@_U0FgGh6lNp%>fFagA_0=0WOeM;0F-( -zU%zIFR988tpjkr%q>IW*6%5>oBH -z;Qpd8BdG5Eso5r9g;JvEEl-W+3Okq~G#ksRn&^d| -z3P#f$TvC=E{3tR*%pTkSUP?-R655t@+lp(rpd6(Cp%&QGXZW(3ZzR-4ajDDpv-t91 -z?MF~xK~lIiOl#n!bXTG|1ecK+HT=A{aEsf=PiFUfK)|H@ZsI|%{-1r|AC)e$&$Ku< -zD|6Out-*VOm4t#|-XY}fmI5eC84QfSZQmD##*SIT*mGCs?bP8~T`A~@Nc*s%ZKuY+ -zse-vn+sfb;+YC#`^Yqc9X1}95_9q~@A1%Lkt&ZXuD&al$f6A?Qkcq{Rjum{mVweK& -zmQRkKVG#6ku159xh%l!Zbzm>h;_r{`ReVtoZyY~)y%)adCyl&wZ6 -zDk^_I|6KZp>GGBH=jzWjLGbfAhm|Z_@Jo9u$Spxto`i#Y9Noq;O=0f5WMsqQpc3Vk -zlZ=*KtI!sk)k!{Vk1d}SE16@Ny2O|R0Hyb^#LN$QA$L%>J5VUNSYYhFQvaGu#3p$ezJdl{+S -zEG4piRmsO+ckd*2)idB|ie8!p5F7J-lqf4W!Kf1Fy=P_kR -zGM>`;_M$nVY1W0EE8hb!kB%iy9;}6Xob(CZY}C{#*=2JwYq`f4#hqZRKjZjCaU1+a -zal3XV9A>~rcq-|4sI7Es9um4+9rMsYLd7wpNs>cB5{>g^?@x49tx}dcVa?T!X9Ppr -zyPPm~{;6HQ=3Q-RgCqb|{vV2){EOmtGN$_#R`)r31W%z_nhTuOQ~;{QIov$yap}K* -z_wD|V!XKujQeKh*>*+G9%w`cXJ$bxuY}jBJU7Nyzd}vb>!p*(;JMy-k^G -zXwiVcIwYs@1}}yS%s!5LTN`twEBV9Q9wctM?!2u>7`K;|jm)VDe1*(90U$547e@3J -zOzVh1iz7v%@jSs;(zNVCBo(Oz0OrY3K1^_ -zUwqqCOK4M;nGQJ24io_->FA5ls2K8-obA2_-X*-0mlIgF=b5>YULao!cxz?0-H*w_u8VH7-=;s5_Bc8(Mz=@4 -zD`m;Lw#KkyK5F#o>8RVBFr|o08H4pT!IggH?6njW!Nm!F-Eo}><;sn&|Vobu6Q^HC;ptmHF_sVJw` -zNh`PMbzs-7pG8j)V_caoo?wySEowmhlf8HsQ_Xx~2mhl^i41@8fEH#TU$Z>z -zW54X?ghrD}-2gF~w1!K_;00W!Xn=ySjqYtxFU<2C)Kp#AT$=!_HR^^+?ya1se;@|g -z+k1QHJ2uVtdS1|R$u6NUl8D}>^VtbDlFX>~)wGS?gJC0PnhZaLeQY!eK|U-N&oaKN -zTo+&8f3wDDN@n;o;HYn0S`?!3T<-}F0Ad)iS-&Zb?0zhE;K}C6q|&OcwB3HtXQg*5Dt4rvgQh+-b(~L*-<2ZMz -zJ|+H@xQqUgxPiu4ktVB!r*2JGM4Q=RDFZ(3TFnV4w<>Ury)zVNz$1N+LuQc1%p6!d)hpH8dOmQY=cqW5@O9{QPB1C -zhI%h(Ku(!Ls0Ds2EzoqVe^AE509TaR0=_}}oJ8lyoWOL=)G*iFF&6gS`ik)xYKwIm -zieh8Ypa>Cz<&m>GSb4G|Nc9G`WRv)2;-dHklVP|i)T&OGZL%4wCyGO5_p#|<0yPQx -zoVyciWme2*|E|ChJU&sKU$CxEPOC<%kWDl1!Q9KXKd?YQjicQ8=|wY8Xx#P8ZA^c- -zsJIYQB(`KaWYsp0Q=j>A?cQU}A8@J1V*^_JlD#CyZ7k2Vl>KW-0w$hPtZMBH;pC@y -zvCzT#z*%_9ZO2R?QBp_ZX~8h6rirhZ8>y}l+Qhpx>;!Ah2yRDf?|Flg*L{Wh -zURV37j-%MRDagn^q_^0NZ`dVE(5kr!tc+8vp%S!v0Ee1g^&g=h8QRVEF2{a=uaELsH -zL#zH2>K4YMfR2}>%!im)0qUS9g&mEFPN0VqjL+Q;u*$Ym*0eN|$OvRE%`^{&i|6Q>-7l?o_oAMmvXD@!|N5~g1i9> -zC#)*cp1@|gYy?`Lc*)Z@zNZrF>)p3l7597C%;~^jk~L|)j5B>OoOr`rAf=*NDe2Ou -zPzzZ)EPNl&sUJTiSz%<3;f@P`_u~#pl;JftGXz8P+-gT^67R`3H^*+oN!2xvKUHoA -zZ7NLrKWRSv0Tzh5q;m^y60Q$Ad2AkJ&=(|}dK~4&&~nswPRBbv&{|MZVboet3E3uV -zKIelt=uSE!;3&dZmdAcUz(fgMa|f#mY{z@j_rME06xcdaPUG#>LiSA0UdD@>r@hXf -zu?lj`IDGyFd?w_R%Q5L57%}o4>5P-v!POmM_)UO3zfLh!{m916h3eP>dz%quRr826C`j#g|aM7&Vj!(F+wA`zwt_fOIx;!+J#18{eP`?nG6m;PP -zE!yz<=mV&)JUZ~B`~jcS`KnlBm+so4dnYBc*>=SmEWkQ49pOY#pZTB6F+T4N*sXV#EoXH~0sqq@*dEczq%+o)y(5G#|TdvsI6#mTa9wS<3Zd -z%kq;Ux&}8aJvXG{W`b@z0uD|S3?6-&N5hMmjUIC1KM;5N7sOrnDGi>76s-k|VI$sa -zbl%>TrrD~~&eaN5*GVWxAfeDV$zvHc*dcPhtV5tVdjoH~P;LhWeMm~ajcWmd;I*bQ -zF~`y!YXiBecvzg*gxdph=yG5@p)&inl;F8_l_oX$tnu<~tP|adSK>HT#R&<%)c;7# -z^|@M$S?4B2zLd)`1WCQj@M{HBc8m~VeJPXIoj#BKy$cP+cm2&NOv&akyfTD280zc1 -z2)@wfRgUg~a>Z`=z+{A`EgCm}U@925rkg;KjHo4cu=#1jOvveLlnY#4DmoHj$-cXV -zNF^X~jTAH$cWAkw$^c#qKL_z9vgmld>3iWjOmCnOaMZdw6jgJs;p;Hw8ctyGLK$v6 -z%pr)0eap^ -z9aK~%+3n0&F90zj>a)MzxQ3vEj9E0Ad|dSdSrQjzo1CHsX0MOOkF;tXhQXAVN+U^5 -z=Xm;GhdZ^`71=4d4ih^rGYu^Rs@M7~U(8FO;xC7LHOywEH6@1HfDc|NI%r?r;~@^N -zPV66tyLy-@8V~C1Tb%$qPy^IpJzs`g-3fwRHenr%l<}ashppBb=@Gl3#K=>(cUG?6 -zAJFSQN8`FN`|r)3(fbXcpw>B+>ZA!trJ%MGU}vhc0K(883K)J9`h54tte1rs;9Wpnpfok#O|so|v41qJOh;(ov`0hxdAHo3cJ -zT|yJ@3R5I8fMyVONR@;g?Tby{@}8Y?7>SUotNH~-lE(yjt;JoC`$K^#!yXl)(~I;9 -zHwcHICNh2v@Gz-qHLa0DE+5B7Q?e(Tb(@@H)9SW$@97&pv*x4x0*yK8z|@$EQ0b_w -zV`Bp3iCWTFJ8Itu{fPH=1+(lCDD!OC;T|Fb`ZlzMo|FDGdPzGfB+2nIHw@qhK}=O< -zqvT7#D{O&G|8lq`zZ`DD>70}BFNYiTKZo19z4goC_WE+T8=;fv{G%k&<^OiLW&d-y -zasG9jRZTX2Naj3{2kwzwZR!_-1j-V+Y4tDU}0vn7=hBve(B+#EGHOz);;0r -zThcw!#Ced7NHV{j{3ws|488T4Po$bmsagoo -z9Boxl#h&14aiKlHrl8R2I85Hf%K&bj@^9ZHOe8_`evE$K*Yg{g4daRJy0Eh;`IzwgUPRshYm|Y6+VGa -zaQ-}&SSAn)sF~G&L?GT=-|R0{TsEJ=6IP*#s1XZX1|m1xA|iw3?O+JQophIU1!LVS -zibF+sDUSrwt_CNBsUaFdA{R&vAC#lcON0k};RM^=0LXo?U%(fG_B8 -zfx7A5s#6BFDghb=oyo_{{-?K(efu=ITKyLArlZ(o1^xqEGBy}8!= -zgY~gzxnkR*`so5oYD(wZ^su9Q_pW$iTl4uCKhTofv7;JBGR@F40CxRx`K8r#y}en7 -z+w7z`nd$lF^mvcly|;&~3M)6%ok{qD`x!+Upp -zUTAL0cK>1TId1^Y6ymbQc_l{-@ -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 -zk-X%9Y4A8> -zKhKauv~MT6ecoEg|6trTe=zP4^>D|0)skrXfNwKF0F1kReQ_EL$BvbV2u?aoNizIGZ3_N8av7~X0i>R&ksN}1MI)X&J5$gt=5g%Xm&JA19 -zt61w$CZq^D4ymcpO3PQO-${`mpkY;Cq$2|JlMrm*6J0s2Esv%24{pJClxCAr^tcMr -zFO-IMi-p|zI6Ft%vN6juBcDwFZ0|?{U$uLD0-pe2+yw%b`UB&WD3$77@Hc$=7}b9;Zrp!k+_#?NF*>5XbRDgfZB=8Je^EXpcC(z`wdhk=z`Uh -zl>!lvsAT^O<6ePsfV$mit%oMvJ{CR}9t>9J*XmTp*cG{>e9+*w -zC*&sk2jgA}Ealg!B|M@v_oh{A?PVtQ%v_8=x%QymCzSy^KnX;^C-Wqg?BE!WIa0;2 -zBc%EVG!x*C<%@An+9D -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 -zWVc$Q-=lf+-lOuW-yjtizqEKiVrO -z;v*g1N~@#n2lrD)6i=G6ke%4>!*=Q1F0LH#+GTXgvm4d`R>rHBFaN*8-8+b< -zrX}|rGgLTLO_apU62J8G_?=pP?Db*D8;=?&e1FowvXUH!owQjW?Skx%>Gy%j{n&iK -zL^Fewv9=DD`&7m*+I^W}Q<;qpW7Ka^BF5n2>HCEQ+@D5~Bl@BDY-qJ@H&DRXs!jG_6WDj1(b4(QpHrX2rvd6U -zfraj2+po>+cySFRR=FM5zDCFl4WFJrFy6Z1ja^rSQtqj@#=3@Jo)8V}zW-bF4M`YbjA!OFO_SSnHSF};^n$_FlkD>ySIR+f<4BZ6)} -z^iRXge2{gKVo)Gw6tZZYFDWPWKe__bF6N?cm(Nq!6k5Y^@yZ|u{3d&p%R5GHwN@wT -zwig;H!4#K?>{N%Gg$rBr#m8JuY9^zp*6;h?{Phb+AYUC>l4#H^ -zfiJy&OaXPt+pF+65n(QwJq9UBaxw=f18DA}sPVHYxYDLZ!ksBR-=UYz*s(4lU%-;P -zr4zDdR7fk-=pm$kIxYDNZ6@|^N2vHynp3b12!zuUt=R2|Dk9K#?n7;K5)!`zaKoI` -zy(CKIKpj>bm^*0=h^=r@Q&~op3&9fqJ*ON@#$G1z0l{YckYSp -zE`=!k@@2sLr&fHRjy-~}YKnEltY%;Rji|OXpUnou!1t64?~ewUw#n;=bA$8QsV4lK -z3Y3CJ^reB2wLr(lFTZ6zxLei0x!M%7z!+N)+13j$DOg(4e-DMM@Df}pG>|S0FE0ChA(XE?u(hT^X~>ablrDs;%$#D<+wGv&uM8yJBxns -znpVm|j;6tLo#(v12Fv^Vh|e7km}a4H$}aE}^Ntp`e3IOz8suQ|kPJkEfV=ODu%DVK -z1x(h&Tr@SvyeP_$=aOc2s`4Np#I9L>Ay)-GZWl$qN -z6l@Syk=e`k{GNhSLXxvE$uawjk$tkV$Hb+kg^$?lB!Q32CnA -z((3(3M@lea@ImxE2N%C*BIppUX^^H!l{Jo$*YBR!TDfsti1ArklC`~J`BIB9VR$D} -zo(>TRz-(A6lT$F6kuxZ -z3lgRPE8HJ)J+U1l$(xzXfwyUbGViYN5;szoLYSL=f -z6^k2x;;}-(IhT7v?AXQst;tA(p%q|r_hE8a%C^*B63=UWTkEV?9GxJ}PeEnsRZhWW -z*S8KN93opP7AZelBTf~>N$>WMYj)>{MUwXgr2+}VJ2$3BY9Pigb2y|k9y{V86`xQ4 -zJY@)=*=H9VYdhk5B;uDY&@a!kO6vvXiOd-(svasVg^_4WL}Z_Wd3ZoW -z?6J%18PQjegLu9#j>D;?j%$Zoxu_+kDl0!A$a{W8t^)PD1x>GdB?w|ejG?rdbYzp+7t5>S%mxV?|CzJ25XHZ`Zi!Eo-^NJ0 -zoC+$DABIeJ(3dDS*Je(vvPgVf52FoX_N(BGg>)_>rKi(TaqFFZdzjL!$oobN2@>I2 -zUlD#&#t#HN-I^bGU70<>KokZzi7BMe;c6YdgB0i+$WN<>=0eYn!ZyWhPBHSUIUoua -zDWR-8qv55n8(7;sEkba%hd?Rr4ovaL%@XEn!HqG7w5LpQVuGRbvZ5d1lL>dw6y{ml -zEWp5c(u1zIap9-q1Mg^(QX>sLa5mP>cFc-@+1#H1n_DJ^$C*VyQ7Sqe`_~_v`v<`0 -zCf0A=mw4x9{_WBFI`!#6u-m@yB2?3Et&yr>gI1(CK;|)Zh{@3p9>vQ96r$_5ei!&t -zOGh&uIoMH`M9|R1@1&^6)k?4X9NJ`u0!gy~QE<>zaQ-g7gwYQl8&-}`$1h6(+W)Dsi_m(4vE3Zw+Ex!sIp)^c7( -zP1SqN+jZ)L{<674N3v6~+J9#MZF9c>Z0=3D6#;vgnMVf&>Fg`|za$DC%r>v{OyTeDXQU0d-2?~Dx -z+dq|~ve}ac#}cu`tUB|%-=0de@_rO@k6wDHLKNEwld3O%>Fl@on~T%}yo1jST9t4K -zm_}(Q&kd=2)I`h%huxsnQsN|`shX*&5}$q!$)dWQ0I+*1U{U(!gL7cM;|GpsBgx`t -zUY%(49}SsuOZ;k5NYUmjG5^821Bvq-x&b(M?IcVBWHAf?=eE@S2j_Mo0^rED`q>a-UZRBs&KO)U+mwG9_ZB_|8W<{bIzW>aZC^x$i -z8{MC8zsLGL_@iHQKm=a6db^~G0Jzrq>Kz*$=wta_} -zNu$%y2DeIAq54o&$(NOMK3T4gB$J1eL?V9o>VZU{v~y(mGBlogK&u1WMl5af(Sjf2 -z2Y1x<@0iW4e2YZug1#nHVtS-!^Zg_pBFrz^2KJ86{yZKlj;25NntakN|KQv|W6g?- -zwmFaf;M^war(gm^`R$z++Hdy=$#+hSou-MNYVpB5>;l%Y@~_2fRQ?`i;9|~5>^(jQ -zm|6KLDAeIhrSG1f8pH9*Z<($BqBU!!*K;c?r(G{ -zcGyhd6*Movp%0Fp-`oK>_dWe5k*$mf*_t^ne=t38MsW$6_ZM1`q@QAAY<6{f0Z0GF -zx$&KT!%$e@k#j%dF3@ieC$L%u1kl1AXyl1g5H;I&{`?!~F7$tb-+p8&`y1zO0N~uC -z|HipNX#qI5t4ciC&m~?5u+3D%kbj&H_nYbgwhGXxrc)P -z#<}l=$iJQFC`SCjxq&;|qgN<9z5^Ly?~7)+o5YA~E1k7rl_b>OrtYJs^a8Gj_tfK! -z!(5FDs^O<8C@q2Z+&8Kya%uWe4<7R88;+-VlU5t>i_9Gl4$TZR%PvC2MkWCcc? -zqdolUz_`R -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 -z-5jdTXrBTRiH`Gu!5-t*R&XM$$-6_k8I -zzH>3hf%T0&Ixd?X*JBqGYWbIT6dtQoJBf4sj<-7}O^E*fOcDad2JhsSKemP)HD5}i -zb`0(-=lsz{UUAGdrPRdJJv9G)Z=+Seo{T4J+^g4zQ*I#R(6J`$I}lP)exrOz9O%yX -zXBL`dH0sFXU>g1;39;nzO^z56G68%??OZ&A&2OizO_wV{2}6itL~4gEv0_7wB#9~C -z&x^hUZ5`IU3=E=An{c4Q-_HEt2AvG1(hH+j;=PsejXuFy6aD(4E`6n-y1w7!iaMoq -z9vd35L2V7mOu~`%O&xN?m+5x~thO2_B?h(GVig;t)WV{Q?b` -z(oyo-J9GoEx#6?_vALI-AvS!Qk6{|9O|eO@EowC(&Qri1r&RY)Jc-S*2Cz%t@H(6~ -zbp747;I?B0sNcH@B8*|{Nkh@Q_mt)NdwBhReXzZWuaaWyY7C&&D)+C1?KxKPT(vp* -z;KJN|gk=A!3oy!ez(l&l)MUwxziuc_nHb-(B(M>7vEv)KVX9Z9J>|}BZb**tGu3*4 -zs%+MLn*a5t@CIQnCn -zCea6BBZe#en?`d}NkB0MoX6_>1&217bl2B_qK*~`MHlHdk`!~_qKvOM92+X4VzOSA{RULSc$cSveh -z{@Xt|x848X+$d-D@oAbg965+9$XQ1f9vSitn|lD9yIneNL@hky<;wpck^$ZyCou2v -zD%|5b@jKES7I&&)kT0kTWRCx4*_dEj53)+vK<%$>34RluVlB6dYZWW?$Yfs&F`*iN -z-dOtaV`QnDer71c)%;WFS4i7Soik8+ggG3W(jWbyYX%-2SFdrU7SzcOq3 -zD12?Q=2+*)8&b?sTP00=%%fJ(zSItZ)lm%^iH94}MGpMQ_3jYb6p=nA7PZ)tGs@`| -zEDpwh)fV(xjF3|U0-Yls(iCVIC=(18d4KWOKn~+MD3LyMgGhHt0m`kpR%kBbN-Y!M- -zHV1y+1{PUx6mLc&?uhe`KPH^(1U?5{Wk&O5cCP3{nYNAhRapW$_bk8WJ&$l-%gYI5a*_HSgY$#vO>t;9)Oi&UW -zg>uXUwOSeXRprZ|+WR$x+1(e-dOtYFVR)T+r|iIqJm@R1PtWaxWk*=e8>PoAI`q&I -zQ4-)m&whX0x)Jc#`vG`val3pFbVwslmH5_%1y?{b^eaRMocpY^`Pz&UL=5=bv-sve -zJh#{%p8McmJa^&KKRh?f-#j-RphD8f8!^qs#YhRRUVPD)5~4wY1&2<7w-az|OK -z&?i0>C^1m0X=`*pdB--Ekm$nQU61@fXjHe(8voyHXG4 -zW|Q8PI)`F4KdQFjMEUxe@&TXePAmKQv=^FXNjPtR@tT1MO>o-I>puo1a|)?Cnh6@) -zG!w5QVv(dIw==bUH-a$hY#-SI$s0p8mgFRV{Zi*j?T(HuO~%1zlZO56JB_;Nz^@z4 -zE(c%TeY>^>%5&M006Y3K1nvd~Vl0}6bwSYQ*rDhkxosE_wd&x2-4tXB#`D5@MIvB8|N{I55lr-+jk%B?!cz6n4U0NA(9;3{hzDfbFMVkQkq;t&gR6S0_bt~FrB_o{M -zIj%m#Ntt-U)gI@l;hdQ|ww2f$#y|@3x-)YXt9G`a!E-}{9gnFqC&!RIfX}@T@VQwY -z<1{LJ&|+n!&9$Xt3ZKW{0X}y=z~_GQ1L;UI9F2SXMIH|}jY|>WW`c7SdE$rM`p^WH -zn1c+yN*vNwC*OuAi}!ZF-&g8fB7cXF0$NLW(ras~@Uku&&`&CB=XA~D6`}L;Mk_JT -zrri}*OQ@~jRLeslBL0;kGAva(%5Uf%YH_sWd}k9y;eA~D3?_yA~`8O^3a-2{q#%meO;9(1dK -zJ;nxD<|{p4>p|c{1+@&p5a`$okV>Eh1-IY7Fdr$s$_tKSPupVB15L~)U2{d3R_V1sSg1OCnn4?G=E17s@5J6&O(D;>t!8jzbA*E|L)HZt8J6v9v>X3;sm1u44Pd35F>Gf)rXr!>5a^)`v~KwF;& -zV?m%Dtt?#PCXtZp&=9mgj7X+?2yD6EBaT*L4MSM1b-!dWXeh}Rk#cs=_3Kc{!1X7i -zpl`7)(z=wz`JJN9)Iq=iqP0)L<4scvB~E4q!u`Wb_E(U`tPk-wRdRBm+DHB^?LjFE -zy--9M2Aay{QxuzogY4b!R?nGmDx!_f$Mrd?an)cbbowpBj&zNcdmnc#I#G-34}m#q -z?3Kph`Tm?UgHWeMwwGTpw{s3aM}$M?e@mg*c%NFUeuWI1E7c-X&1c3!@8&6NCArP4 -z(~FHzWRrla6vrZcL>5G{p%*tKExv5^uJj#xYL@=;N9gYTOXzNyj!vNR$x-X-k2cEH -zof{LHLG^=LwnNpc;lW21#A>`M14XnxYZV41W)O2KmEuZp3S>F?Ep$U12VqgFtg@VH60!tHx5;`h0B$81OL@l^FSG)OIQSOqK1OgQDa<9HQEuFS)ZD@c(Wu9i-YK3U5&YEr{=_OY=xU6K7KS@`I4 -zpZ2KRUFb3^8g1(5jJ{2cI)Bu$gu;bnd&)N&YftY%*vH&u6XI-;3w=Ox-Xz_B1v6bL -z(0OZ`F5CC?4L>W0kY)a5|H+K8+f8t#e8wWz1oXqZ|D4+0pm6#`3P~m>Pj3_ZP1NN# -zEa|&+N~3(|Gj4x|oV7EjIz&`Q0y=tKOLS1PsRM07heW;$52Lx0MRZ4}#aweT8j0NBa>&>8D<~#rPx!#AFlM4s2V*g0@cEu0D+*p! -z4FP#i8A1Q4O>6`(GbDlIf^Bptx3zoxd0^>de;`ghBf(&|DFrc=)iJ~571@Aq? -zC4(X5HIoebvirt!3_D!<8b_0cN)7xgFMmD~xaQMQIW*{#uxNz3#2B@ISf&+rrdQa#&XyKW986?Y^TIxKMnI(AJ1I64YjN -zrH7o5VCgZox`b -zDu}9Ma1!0T-k)RAvPh -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 -z;3`2e{R>uN{StnykfjV%-e#JP6w3g4sgL -z?zW%5wTR4m!()Y57^rYVw2Z7?%s96^6qUxZf|lHHoA8 -z^T9Zw^yh|K4&Jmt5>sm;FsHLXZB)m{HO4PqUun&^@4K(&uLPwie0Z2L*1P}gc@yY_ -zwy-?eEq5DZYRR2k5v$uqqOoq4_odxpGr|}y03a9+Hxat~$rKz^cfSv#V_`e@|0ddg -ziO{B!D!?yo!^eWZ*=B(3Mjd(fMDt#LdK&pjWQ5(JLaMki<2w866>&x<`1{$;*zB4{ -z(uy?vB|m{jYf+o2s<*3|lpL&X5w;Iva}W}fQy+`5$-Y@&ghH{@r}8w3>X@gI3OmDH -ztFd|(>8AKmy}$l>1|;<891jdMSeV;-%_fU+rAw>`9bcA?LY$79_8;`Bc}%KJ3U8)g -zI1|O;>x@eZwhpFK#{`+yC?SeJi44*;I7xm!VC;4$N8sAL>#ubW#mwA+wY5{stxay9 -zw$v~c%`zE%{+51Ru4>h?DQ?(ne|{i*ADR8du`1*DYQ~R8{0J3l*O8ZWGM=_@aaQ-d -z(is+qI597kyK~fh?&J%%lD-9BXO@) -zSmkqOw$0_HgD5QOj1p!4ZKg!2YU{x~TX@{TwRruM6=`$#)dPR7ZmWAW?53TaSX$+M -zzQRS`Wn*Tm;a6&j#Zr}AZQGbT5n-!= -zI);svySUUdZt5Fjj>?YqPgiE52_txR6XLf~)x5E^!yL!m2fWpFHKFNy%ympX-&15l -zjxS!;^o?KX;xC;$+3HK@UVPEy5`=+Nc*ldmm)Ej__*I}jI0wM?Zu&DQqP~6+fWXw( -zpqAsxZxXwB_f|f?mwT*Zewr8r%LW5J+r6QzbmT-(0@z8l0h7H@3noqSv*0DjOL(gH -za;H-f+Kyz*%jxizI2?BaM^}}4d~2^E|C7lZ2aJ-zUewGaT{3~lJv@97(CN9jHUpN4V;p`t1cB4LW3yRos? -zNo7_H1<5Y*)B0R*n~bTx$1g4C)gmk3(XYq|!cWN`B169-<^;rgtFdno6)hJ!E?mCa -zNWGL{Ek3%hQ?8ASg_lY-*PYAa#Uw4}I2MPv@*DSQ^;C_^Y?ifVEFAto6FBdtVRr4(|11-Tn -zPF0SBcroI_(4v4MqVBV -zo1SOd-I?WR0-SFUuTuOUxL4a5x8hl#O&xt1yiF&`_l)3By*)CMA&D(;tm -z;Gv?+5$S^B8&|bf)Bf^c^@%HW=S1pvu4#;_?eoT^eZ9O1Q�L=!NfcHTX6-R0#-R -zzv;;EBkoV(YPHN*r~ny-9U6?O-lq8z&t%NO+kjQT2fVWFg)x;7@OMHWM2|tnT4(>- -z>`ruV@FlI!;sNoK+kHCyK9qT8a{>+D2~9cc%%tz!o!4unC=m%m`I;(8xz<#9NN7l= -zSHSVP2``c=$tx^HVAog8h%p -z4YYBgQkfF{M&{9ntmx%)RlUBM_uB5NyvGf0b;LM7R0!!d{Ayo}GrBi6Awr7)ds)sl -zml{F0bxczy92K^jDsl6bc}nF;?}!ikdWZ>F7vu%5#b@VbD(!PR9rqW_9pVy+h7TtE -z7tQUPZF_vsb+S~FFa-1yt~e)h2>|2#Eg9G7o%qMv+l4SL^yf$Ox!ZGt_s#jRt!W^=4TOzoO -z*2ymS_GntJy7B`_=@|gcD+ya??;|qVQKLrsI`*w;`!p)UGQQ3XHHi!BPjCnfkrVg= -z>#w#Ggf-M@D}?@ZW5+MCl|%e+@x$tUQ9~>TD<@!qQpyWOPBvG}+jt-N=dL1W!H4g= -z&Z;JXUf9%**mp_?P&DY4`Ji{w!J39v#b2U+UAAMfllg{?DeI@t3rNp^7S@aKrH)h!a6fY*9EQptJ#&kuXUXxfJ -zBwtJW;6cpW0H_5G=a$ha5Q|1TA^)A|$!bQmhPm1-y>@y4VyCSIMd?s%JVW0hE2t8>k2-BVP=@` -zQ9F>H?+)S(j{OYEV-!IRl%Z@}FA1WM>rG%59o#0pU%24_e1aM;dTky22aYH7CSOU{ -zkBSi8v|v6?j}SG(R@9X^w$mOTIY1E~`t0J{V -z&#VoBMuhp-Ho2BDjo}{AaPMmm`l!d3v$Pi2H4N^WU*Pg%8RQzfKYmtaE?J3&Nq?Ha -zMzkHI4wBS7UdAvf`KP%uQxeIB?KoQ(uaxe16l(sqn5q1wo^683v48IQ@$wE>ebP^y -z(G=L)`qVx`W7^u5&lx!m%moKT~QLggs -z9>BRjuZ66LGBK6PmT-=tu7WsgnhvQnIx-neCgBu^^sdxe)hYNZ#v -zJ6QP%6RPcwE)lXJ8JiwO7)N##K9yC0cOzg@u=fvDp#^m6IxRq9m -z=W^-bjlJV -zkVyK2YdUOHkth>4;DnJZ>&O_@Jbui#KTR^P2#HL}7Bp^624LGxW1&=bTNt*qlxnY~{dC)-n7i-0EhCv-X -zcO(ROAvdDmA|`&c*d;G+zpZHo8Qma>`!p)M-!ZDa-<738rI6p4YWaYt025u$@JiC7 -zo5Ta>eM>(g>f3+!w7;IMI-|Y4tUxuS9vg?teIl0H!&<#$U2_CZhwdmWyN~MS4|7AG -zHt4+Al?SV!X);=+mOh^wlb3bFo~q~~_JaSdnS!)}U{;Bc&Jwq51p9K?>oFXfl|h0E -z#WHBH3)3BNbz@QEddS>6m4I1G1jZJnVXS;j?RE -z>)mZMQ$Y~jc4zYG+tKR{-C|I%RI_(0l5(RpVv-N-Niapp1SZXPgOkrxrYxSgET#3< -zNQ~TW#xuyF<9mdevtKRih&%FxL`o6|KE6eFov=E#h^ExJh-bT%VFYaNJaqUi*bKKT}Kdz;q{@ -zbpO>6pX*NBaSH>WR}eCSz8(lnl#)UTQ$QjbcC*CQ!tNYB(Qav+*$x>lGbn9V>Qvn0jdV^9-Nr7L}zGJULGulannwX^i4{r<5q?I8M8VoU~aT3VZv+PXt+0nxs- -zR4M%O89-qCr&hZ!0RrAE(6J=Hw)MgHKyTXUHl7IDyh+WMeFhfKJ}>?pnz5efW^0_W -zLWU%|9(*7=foi{`>+{!I?iPEaBP`A1`0<@$Vf8Pbd(P+}^o9MN}rwUrzt+d_=@`^e+Ri1p!hkQdNxB!sZKiq1O1}^})RF=icN5_J=4B9K22OOiseg -z*iLwim#FWJz`myGD!`Byi4N8PPkkxyMN;{mpY5B5ld -zyF=oXG|ObV>nnZ438T3mCg|n;I+sXJ4Ki6_L4QV8#vT{_ -zcHu?t98G~VPu^So#>PQj%R`<#tKS)RwsVbkKz+oZ@@)oNauv_VoOy%A5bVTo91tKo -z6rvnSzu;^>vQn$;r<1y1GB%f9?$Hrb9|}))s30H&-1@V0WVS{dkdd5@)sLwekB~WK -zk_H@|afqEtiWOgQwXV1xVGJ)ZLk4((5{h}S&E>@nR1L$6W3*%C$i--ZrB0MHEicw& -zK-o8G7Nl&A-7lb9*Mx)~ms_-Ark$#!33x7zcnpKp@mg`dN$=q3at949h1#Lt)X7kR -z$KjN)KzLI~XDp}P&7}5-*}X7kDh>~()R2&h6n~QxES}c56fS{Kmc_sXvmOQFXu}c1 -z6Hg-Tv_XX`t{Bo7?PPejOZB~8Cq8Vp!Qio?2bI*Bv;9a4ntPdPILWXzcwkCGLLTm% -zOA+SDRfEsJ?3JaxsI|wd+H7G!N^&AUj5Ch#%*QqK;(%QKOz_Zuv~1a1GnFRZudWr1 -zFMKbV6=slEXunt~=zS!JSKd`eD|0M+B^_<7UAxLc5WeoiyrkWCeo6?1HLYjrC|-wv -zutAjMExuTUq!x^vx -zpCwXmw%*{V@w}Yc>GR6luVVflpe$slv;ufzE;7n`Bj~flR)!^s-RiE7uyL@5-L0$i -z(Y$jT?Fkd0mQo>~srhYGt!zd&lB-Fi^poa}Khv^|Px{Kxri44C=T3VhDZ3T^WS%Xa -zNb3#B#1s{RQ&N7ANLTMZ<*ww|2j@X+T0bmjT8RE+^MS;oh>t5HPYhu@5JFjBo#!`g -zS@ZB-h;EkIc~nK&i4+BmZ#~s?kMJ~VJ+)j_-vJdbuwest0dCJey+>X_tm+g|ue+a_ -z7Uz5`+SrCdYz|Itxyj{#sa0@_R(?07ircl~`L%16ik%?kTv3}$Z6SnMV*d$i35X6w -z)^cPPjU;XCwG-_osYt}~UGI(i)~J+~RR37(El{sizjzg0$vZ>zYbaqcmwxZ)_H3fN3=yIwUmWE%iaY+pA{@c7 -zoQ#Q}$MV%%_X>v>gDd|M5GzHCaL)idK&pO61^M{pbL0Kp=brlVxm~b%2ETl6m2Pgf -zU*{ZB+B#X~hRA-=dS#`+lI6WUju+b=l;0N_mR-Oq=q|#%vwvAx*QOHCY^aV0>jnVg -zkOF)!Z>M$Jqph?zF&j#pJEFviwFGKpi -zK&0cb|DjdpR(kRt_}L;5X`)ZWkq -z#IlDW+Xj_PHg}EDA6@u~$eBOcjvw&QjEyG~$8@H0C(*|uOWX2hhb{CU(6+#TY^$P# -z4#-50=?c@wK2*j<$`hhBtSnjK2v{>~MrYu1YgZGY$g%MwJXu9eG(d~`%v|t)ORd#P -z;9?<}np@Xq5XtU7Bvm?obr<|A&LJ|+{g*Iy2;pshe?=WH!{M9d1O!rvSn7{WBkq%< -zIK0r=A^J{hOgs6)p{8>|d8rMV98X+bt4PEW4~@=mmlUwzec!Ny+yzmoHVRDmh``$W -z{2tIgC+M&Wo4 -zadl1e;+6L@rxK}dja1oagu>)64{3f8$+YV3TYNy_}SnG{;7mvTi -zUC583v@E{1KyN7#xM$cIMV2yuSFwLyAZPLh%7JbY%X~(7`RDM29aetqhDz>++Q~wZ -zl+UX+ey|oY44ze)$mtr%KFE7NUlt|;HXbpk^lb<8^>_0{-0lSSN;_<#|0xMOB-!wN -z%CFp%(XQ5VjI<=OnFa(*=-OPfFQ8k~q~0^LSyT)Sn{7#IKiT6>mzMxVnkGm3%J4YP~M-?3*VRTEyN!&%>rS -zR}h0Eq)ofp1S+UT8oB39LEM?RQJBbVBr@}Nx@ORVvJbN=57<_lSb|V^L8>#ON@WJ?MeJ`d -z97VdL$$&TG(=3NOIG2| -zBQm=0jb3M0okdrkr6*ypXUojtCx?ppZezZ4t%6==*RPm-2srw@a0iA^;hq3 -zJomSb);g&^=*3Tr^b+;<;|>G!SK|OPr-XSEAwObnx7v(;Iq9AarqXq+0RtQ}*ZY?A -zn0dSE{sYO!nepJ_ntR}gbEu83mw=YW@VK4!w!>A&_OVB5FBGRQq8mf;_kF$C@Sq%y -zuiVpvWuH0E4~srWyVw|Us6`3*QmYtGL5KA|(me-xvbM63gH+1~!Ad$R2+za_Q{UQ@ -z)pp_fX-0zxB>aT$7KWXAn^-(&lV~;VDTMCrhfNLR9@=U=@)U-(&RZt6PYe&{pn-S* -zMPQYL_gX#jIN4p@z=C!iYu*En%L2acbg=Pgaow8TUA12A&GoSLxl|yO(X9RjO7nvO7p*?vHByVU15IY-Ia)Gr~=kR -zgYZ?&)CP7v3r7r*^xApUh-YH6&amU41kjCdgYV#sr~eQKCCQi_4$z7FBohm0u5KWs -zS;;@K|BNhtXZ!?wK5l(Xe=aE(y1*T86hUhR&3x^)5cKCeCH&E~L=P1EOLPq%<2pM96QKij+KytOl@rHj;=)LweMbQpQT$OIxt@k6 -zR1o~IWaR#RDq#SA>B%f^3Vd*ofSX`j4ZeDAnOsH7@P1F;B{Una?$b4=IC52;A}*^) -zIr!i;*a1osCiJ#Q%{+!CK$r=(5HgP(DC#qp0gCWoj7$w-Pog|*EE4x4-+3tNHv?sZ -zZ#>K+#3C(Un1>cI&CEKg_R{oqT{9NqMFIyAIKvNB;8M1l*GYRs{*6V(C1j+r4-eNR -z%)(sA5AMrm(6N)%nJYN|UzD%+##9q(KdQEksi=PUBvGiUMJo)tl%C12KtSD*Eb0Z6>@MypAa>p;+*F6 -zWAGKN4a&r>wpv_+AVY``rZ1#lK9Cp`QIioZgnYde7FI*vca<$dsZ`WK6Ty?jyqNm4 -zq-{bsaAZe(xHYyC! -zY)<<>dwj0fQMq0uo?@mMZo2ZDre2+3zQ1kWHa<1Kh7(@~^&z!dzwg5AlPuf(grxMuq -zdG=56f6VxR=hJ|HUzX|9&;nPfJoRB&s|7(C7(mf{yE)=?ZbCV%R7a)9${CwJw}ZZ^-gaQ>HJwB#J0@4NiR28;3pD#YhKFw(vgn5)ca#{%WQawodfiaFSh+4YgsJe6H5yRG<^`xuiGtL9NR7l_)oL#ts?mMfagN2cs6CT(Vj(2+j6je6sl%Q=Yn+*7k; -z5%JLVYd^6$Kwk|f%+&oXX)RA>4}#%@A<-wsZWyjt@w10@N-sd)}*2Np1+O_EZh}I`dQ8!Va*$qS( -zMAihZsZ%$2k4vXduxQcCU2EcE%|=zQ#%$!AUa6HAt(2iyHD$L^YArQj;ZsN?nq8H9 -zQXmdZX`qfiIt8>`m0-CB4D3=B!*#rIdmGVzt!;j*48Ry^3nGlrR6fRMstfB|**5)| -z9HBDLPXJZCZTj~HA9ds+mKyfB5QoJmz~><5CARtwyK%f3lT->5_=Cf -z(zrAVGUx!pV96r2>R{p9b}e5=+B(5~=n?SN -z2a|%0T(NMim$#6ZNYzXC2N}DNEvR;dR=Sg3y;&J%bWS~80FUb-zY$@bi6g{A{nTk= -zEjC+~ZUF6<=^deWvDTpAg9}vrDq&e7y5?{M`laQ=ipl+Vi04;o2G#`t;Vq{_) -zRAetVF6fdTu9e(+*>!7xN-B|uW}nn0>mlRvGsrD20+_7#w59au7B9F`;dqIYT}W!KBNVo@#>);tzrLwRx6D9Diy+V#Of@yIQbY8~v9 -za&#jN_y9T}&aM+g_mB7tN{S;-|Ku{qWnDaOQ}2tzy!WM5j3+axVu?_2Q}cCGpT*F? -zR0N}f1Eo9SnP;1k@w<3M{v;Gg6oD?z|4B)o1?}c>qjam$g -z!xU$iaTV$ZOaKs+#Ork3T{P|)ADc_)dvTeQ{t_%{wj4rzvF1>W)=7*3zk)!K9h(s! -zy{EClq{-tEZ67{1<}c%$A>t+)17)Z}9!5tZ3yu!1aHX8P2i4NFN=TAQWKI+<_W8NY -z;eaK2r0NF+Cnxr>hLnI~8X!6>XdqZ;n!Xw(4dOv?`ydIh9}p|e7I=d7hVKe>zn5T~ -z^E1`U$0Rc8aFe4BE8@7t+J*R|>K1^;4ZjYd6;EL`DUpZ|s132rPKF8fxG3e^EgGiS -zhGbRARfo_k1#{d(tUr_48sYGM{`Su3V=ms&ux+4fw{Detnpd9G9(OviV59vxLwe>5 -zEOU{r37jStcforGPD^0^5~wZEYq+vk3PivRnsKPKMz|t!eD@pnIM5P;zVoIk=c^RT -zz85S8Z%v@KS)yfYJ0Z+Yxe#m?81Rwf=W=@r`c#R^cV%O$q({H9cT6g(|;c<2yKQ=~pK?>f1@KVr|r#O|b7XV^LLZC!No;e?2#bb-EJN9K5p -zZk97waSMF8Q_}f_?SfWj+q2mPOwgI1C0*wKj) -z{!~`eVBkm0WX?at?^OZ(Ln0_`jP(evep&Zw#%DSe9_b5C>d{JTE1>LV0pzbm9|EjY -zY{!^p!vp;lHnlEi=8F^%%hVdgOWhL*g>4iy`+`3)Tlhd*9Kh;QZsb8R+s`#-_St8( -zo8?mK$;7c+oC>KjWcuW_)lUX0#Mgj6)Qed|=%-G2>qReK%z@p9Q(bCkTP -zVuFfpS%dR{XF0+fY@|@hX#9zggWj3pGu>{Vcda?B+bdsdYg&9xXXcd!gy>|8T1n?myy%bNx73Y`KV=jGPCPxw -z#)%)-8x-BqG%yn9%roudS}^*hiTq{c`)&yY(YIljOhzwa`Y}y;I5w(owlGl)FEXk{ -zMXVkR;!R?mvzevE377lZX!(sN?SSPx89n&JPTn6hz$?@WS+>X#eCnRNgLZVXlU -z7UPTMlzaU#}4MxyB7qE^cHjhSSOZ8(so&M?UR+;*@P=}iGU|7Ef`SbaaufV>c -zYzw9%q5O~z{{kZepP-NLy(VgD+@;P4knM~o^Tw0>OW}H{ReB0IT!cDluB!?5m;b$M -zAJ5OldMv$*`utmNWg*?^LX*rHk#;c1`t$psSzVrlA<2#Rq#RHCi&MG36PYZ7>Anzfh5P{uh8EdQ7O8I*IPD$7 -z+1IdKzhVxl;GP+Oj-8fKSF=K~NB^=<6;$ -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 -zQQ6Kt8z`z{i8iQuI!vD*NOASiompTKP -z=njW`=VTt&^LgD$$r7aVOb}zv?(c&%%EmzMqV|$68ZNR#40Ht39yIsT=?$cMz@g_U -z7LfrkqiJqlSX_>BjJkYNGg>fG*>-=i-Aa)_8-OuhdUI*qu6M@mVhDq^Stq*o|A7CZh&!ujS8fP -z-J=#Jq$+jjA;la7!C=T+FwJe*iGYhD -zv%`$(1O|P55MF_)l9qaGvV$(Ce(iRegBO!Dx+u~1&ucXCl*?pkBM|Rt83z%~2Mm+r -zjeM=RyHo$IkTc*w#PpPrD~=Xt0os6V0EWb3PnUnG&otNNoI<8JCNLu|7Hkf8pS*%W -zd%)|TZlQnG&7*7-83ar0$y^YmvH)Z@+Qd-wdot>q3pNXs`RbCCkmha0diUR{5RDiq -zfUu=ij0sIZ1B(IK&b9p+*M-3p*RnpA&M0CAJC-hJ{`=z?LlbEdi;^!MsZGm+LSsE+h0yCuuBpM_pwSpbMOebN(@_ebUK#V#o1l -zT2W^&n1%9-TFVBF!B=wqy9?X|vvW$=dznN($;aOa)~4Ok{o#KyWR<=pak;{Ov8tWz -z_SGrq&!?{rYeugvI0!q7A=xK;Mvtmw>*NHq+$qDg<~urdE)>jDUkZG1rU=GN;W=8uPi3hEOSypY6xU+%&2&TI`4kP8KsD -z=$Mv6WJkpBOkIVGQelY|rb3P4ctax~(;gGMP-r{*!h~zc6GT8jdJUUGDA5|IzQ$Wi -zBUB#8*_BO51oAooLFBEqV>={@ZpA9A!c^8N0a{*?9@mEAK3D59tW)ONah9>#4T*V( -zq@g~VaGXI7>5+@{L9_rYZ0CZw8hqTXqKZwMb53!7xVig8+kP)GcpE)_PEt)7(AXEZ -zAc+}=HTRaeUy&%@;1(85BM9x7kQTS6$#&Z;>x(npkGN;Iop7WZH;<5 -zvlcr}TZO}{H}t#7t%Io;$3xErhrIfCld$nnt=V}sq7PjAh6HIr@{fPT3BuTBoWeED -zSBZ}gs7^}>FCL^arx%|HQt}ba&*u#a0eaWuxS=5Z*|D1d)22I699-*QfWxYqo)dkk -za!5*xx~bG06R82j7F{H-C-%LQ*8TD$KrwVKz%K>%_I(OD!+%TTYmk9$-^^-I;`pxI -zqq%%yo5kt9j4FBF$qeMjdrd4uW0E{>cuJ!^H|ixgd3lC1R-{NaPC*h+F!HET4|C3oIwc3MM50{|YaKdZbSC)bz?4oV+GOn{Sc!;cii -z_W#D6TxQ{pVO-G_O8)II1%yCb{&_vnOb1VO^Qwwg7x)h>_+f(1*_wA-+yy#hkV4rI)e`*>GUNErPLZ)PW;5rj9Ia}Z^(q>7H-BT -zR5ISI*xW`oBZ7C#q+H;_tA+f4AKiKyPmO**t@)#8ARKtLXX!1ZnzBX-MbsuF!2T}V -z8U>H?1g*44L`{SU{qpBBmK$$N8hjbP-gX!V7Z6I+5p3c2cHU>I -z9(UzjJy5EqAv!E4*j@G2K0HmbP-_cxXh|l3`{R3R{C2E%b8fQ3$Tx~LZQMkrAF;fm=)VjCFDwxd?A=@=Fftg6U4|RS@GoaU%e}0@YyBot -zhS^zG6wSKgnSzXeUjXqL%Iirc<7!mp_QdeEGz`|QVYY1;GfrAI5&JT!7M|%Vx0eRV -zi~HQf29@<3MCpkatDm3es#WY>kourLh5{A<*_|hv4|QH3d5LCnuA*)ilH_`6%Yoq! -zGdK1bd4}d1_@R~mZQC#4u5Vo21;uSe<5R*-b8d1MdTzxNbhP0N`h`($7k-+!Ha~oO -zy4TUV4U)c~6cSUwHUqk*ql#w`J?NA0GVG%hx9-cNElnVv^kSLPiKpD&33$XiF#8x= -zD&8aus-{OegmXHODTBW^aDr%XPexU4-W&K~vnwQFwNZvzW@(Zm<2T7de@Z!b=s8-T -z|Iv7$HPfIwQ^D0bIG3@z3L>MqTQ*5cfx&G#khefLPlTMj!R?Qy!SiKMO -zT02Y^&BQ4W`196`F_prpA`P-b%wkm$1o}Oj$}e{EUX>}cS|NRx75hmeCp#B{VcwBtVOzLWsC(>nhb=r -zHozel0wXklCNj@lvC0na*A}pTe -zd;l9Y1XzH+Oyo)OLgQ<~*A=KArhW;`vQ7~oYOgFT6*-X(#&7 -zK$oDpvgfcWa1yL^7{$=Q-Q=I*>^ym;787f{fU8rQ_BrW-E&STGB1ea3uWFU#V*x_X -zbdvG9s`cq8mo(M_z0OQ=vW=*(d2nwxp|!RPbLEas*4C^EC<{R;lnR4b-87D$f|x6{ -zI@swMvu?^nD&Z>Y(PP`vE4YJKzsEi@S9{HD39S2xme2o1m@rAo8GW6Qs=r)t(mbxT56p41F -zR#gXb2$#0qk_g?#UT&i8HhA4ENy(;@i^k?bQ6ecwqz5z<(;(Fs>NqtfLQ>hs0eE_5 -z(UvwFPu2dQWg??=_zy3hACyvmqhg;OC?X`#*i-1GVb{4Y#l*Kx5ZiRxWZn|eact07 -zd_4c*Zmca4T*{nDLV=<$j#hT)2e_BU8%rcCMqI@>Yv`#G!ru2yF|a=U_t`(idq2|R58j>4$JFT67A%2Uo(V39Y}-dB@R6j8P+%TpWc

|1XF66ti$$iA -zsa#dZnWxoo}@?mpuy>M2fVCYzux7 -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 -zy*!~Eq&}!QnajOSs*`pn9ZDopcbszNf# -z3EkR*?ZPn=O<yCVhvjwgwwic)uM>zUTWpV~GiY -z2n%ON6eW&(Plm_!i;Y`Clsa;@M#+8|jSMkbJNTDQKGw9w;cGzDog$@b{4QbFUJ7aN -zWA^&}Lo6#X{^okev*-DXlG>ifkG%4@FW{!H=wvud$miRCC2+n+#Vytl=m(wSSHBFr -z2B@S}(n@j@!(w3`Bh&9a)q9?NTBf+>N6{~>z#Pv_UA;qJya}%fGd!xmeAwtEI6`6+ -zno~B-8IKmL9xLoztMMFA3D%$Pe#J$0AhX>+#JJA$q67%HIS37dbv0D{rT|vMAj=LP -zTKPu$XI>y}MM=p|9MHDeyp^!1(vOj%u_B4(8db+U?gB_%sm9a9L1V?xM`{lJvX}7e -z-TailwwoT!+JG;S0Kk1=ABz1})<4o4@yBE}PdyIblI_k{s2V`Kd7Iq -z^$3XoELr9VZXr9wOd3_Bo|UoHA4no5Y`2EX6pLY*PT7iZL-%4|fNZ&0(mXOQ%6!cO -zHG|^eC~hp4op`$C(vcBYGBHDYmgxWh1oAwV&Rg0^KUiY+bjlVfEE3k{wvR$p)+E%d -zf*I9`Zr69#hC3dTCR}ZYk;X-f+t8OeIYMdWC_V -zl&K*{=~kx64)sqXXX1`Ze$sdLg7zm=7zjHHas%Op{2LWIb&9*7Gvkk8zfDF=?pq3W -zOR)9l@MQ@#gIMPIj`Yk0%TNlGl9PEEUyM#Y=3l -zmu`hc$^h~t)*SSMfbr4hw}pVI<3lnTlPT1U(^@ljX3Se?b(0q~S%&J}7YT(PJ&Qgr -z(Mh7ZXqv+uvUBUEmhnPmUZf%@Ww}r&l#yRO(`cUiU{0lRcMz~#xji3ywpwJw55~-#^Ea+;JJW7PIJyY -zND}s6nbMKT(5)kOv?E~hz+eT|K?dc4g=7QHNty@>g6ELr>{oTPrY8g%^0V~Mi6<#T -z>T$Lh8hGaPKP)*sg!4-IJI!^=%8ex<30S}6II-RVIMLJm!=niOi-MQ$?&3QC53-xh -zn)P*=`YyGNc{lHIMY2tb6M(;!6%yPud6&tozOZLwZ9W^QCQMv{n7ML}2Pj5|)iXxB -zCAIE>ekU^O5gBII8eW)8yi4t{E#d2?bA#L0+Ny21v_P|GL2Z-wU+GZ|b=xlX+P&k> -zd1W>AQsq-yk-3aXQ7>wZMm7Qs1VJmRX;itE6w^t7AhON$4qIV>Z5Eo@4+|z%mJWZG<^AH5$7nG7xyoH*0VmMz4sFZ^`*0SSuve+!UiHd`j6v_|+-`v|0W$9;#qNnl -zYuqnlTDM~~M~iI*Wfj|qe<63TkT~c>lsq>gm+`7^tH7PMYf#vUviMbaL~K1f -z_*mlSrcPm1BPk9U>?)l9_wPuyi+W6piu9k3L;$-DxhTg~1*jD!P&HY6dI|Yp-zanQ -z2!_ZYwvoR%-m0N&zbo2bO&?ImrS1$2`qjyht?|K*ImZ1<$-TZ({fi3mVK6?nQ=+}h -z@CEtKjualIGOE`Rc>rzU>Um)Ro5km}w{W9&xxX9qzi6%H%Df73V?kb4oE+AlnrlRS -z9l6B>V(Z+R23sjZaFg~yve~CzDxkW`m}Bzi&Al?hMrHl5NP6iTtEjBN&tbB&*X@{^ -z19eLmPw<(zF_ICKwM%B}8Q8^!vKj+aS%qv^XH77Z9n+ -zlU&{QBVWnvw)ji8fA1i^q$NoD2LXS~(x&@2R%6K#Ea8w*>MfTorm~{9$PqGm2EBhm -zm>Gb!& -zYjvQr^6Y{Y$roQ_w&-T}a69KCekV!_#|Q(KP~S0P<+mO@<_|}?V~ak^!S&; -z;jwsR;yx>qC;2B}6Lz`1+iz97PXo6W5_Dn;$r59iw%cki%`Iwk*&n*FH9=Q8<3O}_ -zKzQko`OVz#A<05!Km;BdxB!qdmW>*$?^dO#+tqKQd_s$nmRT&wlpvA|Omz_1o8Wi_1u;}Y0)e5$aNW(7USW#aXuSWrs&^+o9}J>V#*UI6=OaUEoq -z0+5!D1s{olhxno@dpNKGg!tzpbo_~LhVR+59@h0s2WK&KT%3-f$~!48XnfS#lhX_a -zgwH{8j9{=;bQ9Mq0Wn*JxfL{c!Je2^1!Az%;UZ+rij|tDuu0g=$6z?+f)1|X6`A$z -z?70CPdf?o(Fv7Zmjou<;9jW=H^%V+`0HbqAZw@-wXg{aC#53i7QRr+jH5J54KAhvuIG>3;0VU -z5T2jgm*)>=LpGv4h)zjd#}|L4wdZ36zm!$~GCj5~gI|oEKSyxAyux<6YL|6Uv`+hz -zkJkct-6m&)?gg59mV7l%+cR*J+X6R^Z0y&A_ninAwk`TiEo>r~&Qyp0+{h^~?xhHChDcB;oX8&~ -zLM@D2bzv$`9K$h~XwX(B)e+6oHla8L8$n}KBlFp)Acs0JHRT?1vhgLo=UbpuLYb*s -zucdPq9fcc8F?g#4v3@E!@5gizG=Hn|V6XDH$`h=PnnkKJ7>NKNH?au}dN~xOZJ4;5 -z^h|}-mnIh&Irq4Vx}?%SGIc`WHboz`6?)*fGJEI;oDBm8dqhNbT?bz1*;-*xkE3@` -z%nam&lM)*dmd|P@F+U>w>kfK3_wRJDwA+5r$ -za>!g(&oeCI$~P&^abXG*J(2Eze96@cad#q%)M#L(WwIMLTK;6m!UVH5(GbCDWEKgX -zmNx*XPCkY$A4{%*D1CRba_l;0G+cg==lRhvSXDOPFI`|>S{BUf&alZ(1@Ng^(>xUy|ySm+thUQM8Ruj>TU~y-#j~G-7C`8>;#{_vlMzgyt})9M7@2r -zzpt!JY}`$K7a96#hL(-qI>ia -zzDHlq&LFKl*8|Tp_=SbLfjxN4ux?U{Qe-N0aHaKFETP_hq!&~-LQJ2S7Hzvht{|=Z -z4NI@>mES^VpAKB94^&f9!X+mp#i1xB)#diX1;jmr5pSNJgIW|xyr`&W1_sG?t)@&5 -zb9V4XG1U+=jNF)ag@?h2i(i5%B-3$kY%6!XDDSJTdb6K6zAa`L%}Z?guEndkKv?+t -z^KT96dN{5hJj?eNEeHX-lnWSWz!xJxvyp{_b%OaKjL~$Pxrq(=*p%|w&`sS>4-SZY -za`RezhrqZYeDlyYrqQO4#?J5@o$cq~;^sC5JMpDBWcm{$WhQ%8dkGa2(nsjLR7=vL -z?PxL*6TF55ocVh3=Dc=yk6tem@iJHY*H%g(WkHqtSl!8{P|I3XUXC~F3&Zc$Q-30e -zZb|0i*L6{orG-zMM?&S;WyE@EekJ}~OTsiaEgY~IHD1d0gy!>68K=oJ2 -z7)(e$!EOz~SRMC -zHm380Ciit#uSi@3roDMshs&TwN0kPUWe@gUtk69|#4T+#HOI=0_KUBa(Il(oYv$BG -zo~P6;N{K*0a5uP$)HR}3EQWGS91RG9<`WO}yp%B~;x%~+a&!@rgb0Zn3DwP#PA~qF -znA-0Q6*WOpcbz*!RmBZTVq%WkpoYXU3NMDO?Z$+zFlJ=i0#MXHozoDwNb)#E4Lm!X -z#dDldh)JDJ_ioh12v&L`p-fkJF?c>Tkbp#@|#eB^SYjrAdn921K9I>4ov`33t_C%z=?B -z+?0q*i{q148fhrfISh=f5VlDJGI0E -zFnWpi*XB$g$;-QYX1m2U_S^(>H+GA*UwsyoJN^5`ivp}F{PC(c(CWuI=E2PoeS3Pd -zNBbvU+mgGeCq(azw0_c+6)FKe=PsX3xXXr5_xegMP#kEdGTbAYQjgBe)lR+V0jW(+ -zg_jfFn)4YQu~$3VhE(P5iLABc<|Yn+f0)6QRiscT&nl6=2`$$TVq<>bDW}Pe%q|`y -z--qiyT*7Gz`swmJF&lMJoKXYQG69d|SV(Vld~^ncGT$@lyDVE6IzvEF72{L)1l>F(sab-?t=F{4w%NKUjO@X#+wb|5&^p3Rj_G3g%NUf#qe(6=X2t6 -zR9kxMK)*4;o)=8EL)qDD!>ENrlUuU;=RsvdJ_6K0w7qx4z~r>~bKc>LG{iEb{5!9} -z>0;lFKN@01mMHoyPqsv(=VFd4L}l|*s%0q+r!(T|fuqo{$EN}Az~zcDwfw#0?_us# -zYhI8ky{HUhnPyI`Ly|lu=cppx_v?tVm5IOEFW|))`Za8^{AKB%;5@#cS?NC!q%e(Fb -zpLWHmetXPX%?^3_h|5fy}qReB=(H9nYR0Lk&wrl=W1h$ -z%)59!CqgZoa;2Snzx<)eejgqd=!G4bBe!`O8cB34tmuXD)x0Ajtaf@GSXxI&uZHK! -zdmN|Y07(=4F6(gDri%211wgXWo@dfcVDv*v)O2SG%Ri+MyDI{hCGvL{k4m%ofj0WuD -zQTMFk=^%#pGp1*L{MBt((rdE^f`+T6ysh2nMsMPMPaXjWaeN0BQ6-llu}`sK#P4PL -z)htJOd<#%oZhJzDfEezDr_bFz!|BUS{qx`b$49;Z(&2zNh}y$kE!t66PE+B16T!b~ -zNv&_^n9p)6ZH#^3T4WWbICXj>(h{bE8{hSz%Q1g!3S;GhOmWQyJ}D`zAza)&a>W%b -zk>7!GqrUK$E?t_h*$107ZOD8Nib8QNcxCQ$l-og<3T}bGdfYb{RI`naa*NMaJTX~V -zn~%=NtSd9!(diQBU5}bR3E}ryrgFVHj!U49H1EI;D5;Q -z-2A%8UosqO?UxL%+$L5No{LD*Kx_vQyoxN#|9{Bv(MdYikj-Wxp8t~Jw}JmlhI^4s -zVZ&!3*ZzkL-^|s!$#C^wGCb`6lHqyg*`WVJhEsM~;m!P# -z;VD4BWVoTnFBuNZnHc^{hJT?^p9}CBp&!KV&%NFBxwC|0ct$ -zX#PWnUuXZ94Cm|@*9Ai(>rLkKIQDn=CBw}>{+A3NKK&)b8J}AEImkihVCBp;Zkspk2 -z03CDt9ad!NsuBu*$?%zx|B~UNzhwBL#Q&1ve;%PrB{GBt?9S#2iaV%z{LmcBP0E8Z -z9v-*F+p&9;Q7o{+ds#t%}e>ZX$c -zmG{QOd!MnT1DUzST4uc4Ya@Mca|H>ndRD&dL5UNDPngE)Yh}vv0$fQu`02N27GSzI -zS-0MmQqfjp`;_G7v~~UHi|q|7c?z8H{>^D|^Nxt3R&e7YQtK(7G6x!P!)jIUuD-#_2R -zl9q4{pdv`|NU4c>o)DNHx^D3_ -z*r6>DJCdY*VQ|w_KWd&-O{F~yJi+QSsIJDS+5G_T;_iUijsMLD^yn4UF^?pX*E)4RJljm}3WZv2|RU*&qHn4HifqH%>C!&2PF=?DW8F7DV -z@>{9Ot`-6^Tx81wijFp_o)_S10-0aDng{y`FFbrEG2XWS0*mpybYvNr_&h%UK5Y^GcN^1$98usoU%{jSExJked~b9`4dv1;8IQcztA}D=Q?h3O3OWx -zY+@O_r>xuP#Ne6t7maD&-<%2)TJ55S&!anNo%P=YCJ<}qXiW|>pkxL|aV>12oiR1G -zO;lfD5Qgp?TIDG)2+rXQhF7hHEoc5=;!(+wG<*{c|1*dVRqC4T5nPmk8WP0v;{wRA -za&Y9p#la&#;x9BV+@$Ue{c>d&=sZ19mm-wTG@I3_MauJi4>cP*>m7Qw^3;jszM&Sr -zXUER$>vyq&4#@su{YrmrgS!{2k{}s#`Sm8?6tE>5Gfkou@ks1>E4~m;n+{^YB -zqh`>4YvF4nMq3|9V5B?bXN&ukf);xXfn+CTQ{7bY;_Lk+XmkJNo>HSrh6Zm9{+|Qq -zvB%Y*0UnkR_bW$=vgq5>s7K6L;B7zT=&nn-#MFYJrUV*btx9M~XdZ -zrIW@q;aReDCVU;AQDYeC+BT5{*#5%CLoZ>OP(rOs+zIDI-D-F2c;^S8Ni2jw7Q)ub -zV&*EVX~?-KZeHs70eikcEXFevw2L!0>7*L+EmkP5V=gp-RXtkFiD+sG@fsrJR4zwl -zHG52CZpYa3lEwjjMP^kXN?a-k-T3Cr*D>@ZM_g7^R+#FGJ~!p%r$MG8txW&J6(3wX -zYngoS2vcAkep~}!jB9rguXr)zy;k%Hr-(t$Y5VavG6jyp&Fw0x*>AfT8@aY5Plopb -zFtN!?F8%PK8N3}}v%7MPw}T14j$qH^A0^@LF~|mT?W>!J;9Ed_6mh1L?Y(t5p-qe$ -z0qYLzrd=%bzV1{lq^i@e4RrRY49Rq{+{zMs*a~xN^3MJ=3`bu8(c@%Qdvga_JB;YC -zi|Gv1{THIvNs-Wn6kM5fX%IkDRDr(?c!T$A=SA)Cf9>NlAmM91)i*70^MT*;9Qwq+ -z57Um?ySO1v7C2FjazLwMjwo19gN&jUG!$rcT!JnG!^}MWXZUlCVu-?Cg4gag&k3N3 -zS~87`8nhjdM@HG~)3k4uG7pMj_JkoPKGGZ2!|Q;rbWK7ol?Dt -z;Q)C;AHGL>zFr67ge%YjPk4$bQgjOusbBFceWPz;rw -zBSS8Wwk16XTAxVo!0Q5YBr}7^bfVh@EJGhYA>;RRb2P2G&XU*r*2>*0f61VIY=X*( -zXuTn6u)^1DQ};;X?(#1#k@4?%?h3kJ)UaDpq)uD0D8r4eE^s*jV3#0UGKd@2fCOcT -z+60Evlh%y%qf04eA4$gWmmoQvM4(8+N4>GZza#Y-%p?|~>9N$VL>~V()y`dttiY0l -zPRtmn^Q}kaQ2|N950aqgeuqfi%yct}jY20j88lp>YF$9;QhYMaBjB&cgh~%)C%~H} -zYlC=wA~9zuY}5gOvVoPa?u*l7Fp}~@8d -zV-{B^!(~(3z1b6-nx(-Z_arUxILIAiqCl(_wW-LE0urSlZL*plGz^k-`?YEN==F5h -z^(yw!U!qetgMy*_zB$T_@2!w0Q5vqTpEhb>qSrR;gqZfru*fllUd+es9Hsj`-U!?C -zuQ8s>ANLSt@+LYcU__~EM7l>_3qWQ%Ub6+4jH{-pxiEqNvvB+DB&FS2^#2I>cM)&6{f>(7?zf7&svX(vF+r@R3nKYAPb!kUU)TJoxNAH -zJX#&tpcU^+k7m!{-ztw&pw)`>yJH5lecllGCB|k()|)M}_O<(l9;gF#Ji7HAsp;F2 -zfX#ECY|o$%5BzckyWhXRB^eY$n@WMHuJfa@5VZ+{S6ta=jj~5@v1f-&)>l4Y^+CU5 -z2-0u(K%IK)#RZVNVRw^{C)>2(}rnN#F!7OVgqG+NChLsRCGG4({^Bo0*2k;v%wN(X@Ok}rNqusQ4 -z{%lwYR7<%@*!{d4Y>b64n}pmFV}e|J?5v{axnNTZ#*KPO<>U;!FjMhnje*rfqBo1e -zFqN|y7|TnB*Bt;J31sicz#{3bP=@(N#G17plt~N4V}_57?z!6IqNTxvGCq{|3lwCX -z^Ro}7u$F>L^j6h89OH`Mc17G`?zX&kcP1lX(_xy+AmLrlp6teRtS9O{EJ{n}QhpG( -zwLE_f1p#5OAVs}8*>TW6zdn7?zH5eUzgTnA(^VqC)~jiup$i^m5}9WZ01>D|W9TmD -z@o*z&?XI(rtpMOuKGA=EQ(wDqO~j;z{1NSlB@h3=;JF2>cVlOutBCyO;yL;U=!JsN -zrQ^{v!Nw-0{2Jwr2Rb*l=OM@MM9hdY&>&P>5ZM}tG*@ce76t=Bi;K9}L^blMC8&~c -zUMCC1qplmK1Jf@JAPocQI2DSK%VM}oYi{Xddf6%XPasw}hQ=PO^%Qb=W_KSo-gVUE -zX0)pa@^llmzGtLa-IYL-N@m(#hFj% -z_}KC@?QnwRx!?%0KpV(%s7e%{C9F@@x>zU4yN2dpP7~~k|Ga7zhl;mxGW`hpP=)$j -zhrwTLd%j$WythD0rrXPjK0CZzgRvo)eMF#gEUoKQN~{7N=)?L!oWNERn4$-{tiuC9 -zyzlQ*m@6wK7k_Ac8l(Y33(D>JPoPQyFPVyd*?mUd2aehY2W9OyV~3~R$~(=y>~-;t -zq>OLn`~LM81&6qI|M>24 -zPWe&5JC*NJYTepPrnmOzKdu%6QF@E7_mmaqA0LG<8N-KfH!>MUY%TQ`secfIUyOc5 -zb|*3X=D|=hv_oC2vG%b1h7^Znzu_yoW;n~j{(WX=+vQgD{X*ETJ!ectKDodPu;CQJ -zJXK!iF@s$totOd4_mbV9y`bRo^DMuq4+fW_ND{`2x{&_u7M-L`$zVKy)%5wiUNxvH -zN<`iJuRclueMkcF3^pIi8~YCvE`ck66o$2xV8tMnx{aO16=?f<*qr@K{LPv+7oe)y -z#Glej0r`>t#Zcz+*`0JbxYXYhm;W -z#PyivKU9uy=W^}>I+P%22vhE#{(LWR0#-F->1#!eCP26hgGZa6Ss*!}#b*)#=y=k2 -z)NkbR>ap!q6kILQ`#zq(=RZ6M)DypO%#cZ3w*>*rBjEV>V}eFUuSE`&D8~+HzSb$M -z**RXZUkxxa+m|@6t#gptzJ5gp{=i@Bu1FPXiYx0tE -zotk(vFe_4bd&=cEB)!nNGGnY*yreT>*jST8U70`k^e5;8)ZN+?g(^l&kW$D!mE*IK -zg;ZyyvS@-cOdd3yZ%D!nps?AK1hE*s6U}6#$+8D3h0p3f@Q}3S95yf@tkBraZi57g -zw@a1E117NlZQ>1f@qjiK;eQ%q=#S{QJ7R4zSBqI6 -zWQ14J0V)(R7^ONp2UAg_$?Gw7<#Z^F2LJq#f6k;T2-7#xQ#d`cMn!YsQk10JY7G&CZ& -zQmASe<@?RCIY0~Y@1_8ssnf6z;oHHz{Yb7flw}DZiD|RyU;%lw;xR^ugSBDLDV)S? -z126=jmON|nGh1!6;`{>{2r!AaqH%`M5OJXF;KObzyf-Z2W>`Mz^@zu}A?P2OjB6q@>YlVE -z!TVyfi{y^eL~+@TP;YLG&1Le#^c8-MzVK5sFOInP{xz3W*7)DW>fp(>`A!~(S}_T7cENR}jt -zo=vz&f(6NH;C}KhlilOY{F+k*vh|w3nxB?nGf3Y71F+eYdQ}=|;O`f5_;{nBhgy8r -z=Y@9E3E3;F{(?BNJ)LwyLTepz%e*$X*s+7_N_n^`lE;aG8+`b30VCuAW_ItGXOgk1 -zDD>h-p~#W%9STJo%3zl$7n+ZCny&!f2ninIxJFwQat~eQ&t%1KxeDPqcqX-GS624e -z`H{{Hm+1E9$jEHym92x1CTPY1EhCFlfo5 -zsg^kP`C6#KyCmOS&)Ak5gPb94%#VuFW`GsD+#0CROTO7{gnAl~G5TPpeV^*&BB_`b -z5gQo|=jTreT4G;zYZ35KoFPkf^spMyS~?VymIZFkSAI31q@_i63(#!0)2v+(Q{ehQ -z8L>LIf>Cx`bF-X8PEgag9T8-0hZexEVL1;f?=qvw$ -zTy+F)-~EI4yopfZySc2{dcTSL6raS}j6R-~EG>ih=(PGl!`uAWZl-;9P!o7q(rn$VVewtda -z`SwGJRI4i^?|D!Vx_)|+ZFOuh8SJpWrXp6C97Pp__}ati -z2!Vd=T(W>f04fqw7MvF#dmauMq%t}yCuTvKo7@7Fl`R}Wvj%-{qoHWy|C?;#|Nmd| -znIFT{%e(*I8C=RF*l+0n(v8c%5DF*W8@b1jy~~2;2jC~<)?+S^>F$@lHj;df3OvJE -zOuvlb{PpuUVBc>HI8;J=$aDR`V4^m$D|AwwFY<73%YB)Z9lQN93o00q!yHwS7*OJ$ -zN}V=&5KG&+DZAPag~SP4-OcLYOvo%(bWOS79M-upjk61mP7eGG621>3Z94}vp&c9%Allp!P75$bbx*2m1>%*be43mX00x_8jt -z$GGep6a)shY1>BtFC5fyI4^II3LQ=v!K10M%13yFUpeUCCV(l2uVTiYeDgqJr(@3b -zEspj(-5=J8c~A)_HEKoIpx`RtR#Q$`m4Md!tQpG90r&Dyy5TbiNAkNDOUHocrSnP@ -zw4iEkYM2>by(Um0HkdAHXrO@WupQY?l`5j@bt3XuZ86*`;-*PCWhWwQ1&jBRidieJ -zgsLZxky?$R%hKPFBOeJg*U)9%P;-$$q{2PP@R*Nq&K$F{vuK7_JEWUXyoAq3N~&Ps -z4+4k7Sb-}84_Z$YEhcx_mb{=5bA+pBS8NA85Cqbc>=VAZxK6P&sJ?4Y29>?V_YYW? -z#ICPrCjWo`lX^ZH+EAXix+U4z1#9qEbqSv+F*RHycf@t8r>)zd+3td|&tFyw*MVHI -zJuE`{-q!7tm0tAP;=0(BdQi4CLYB!uC)cWIMc0~>NCelR7MKM5CM -zI48%MoBW4uG{^UKJCK7m=H~Kr`Qc{NH_ZI=5A`q`Nh1-%?vmKrE~r!89J_Ob0gQN2 -zg8uR6G})NV&_RyDh|!QctyoQyy|F`^rU}3!l!U5^)}Ay2Q-6-6Ql2fcG~+x6Da=K2 -z=%MJp^pNpH5zl>p8w*UV(?>GBKky~oCoGbj-l2oFVkznqISHJ(ycQ@*?n$B-<)Jpz -z!PWmqr3?Z@qt~goMvQ-KbGkXXa=^B1TcKR9Te6LS6->uHn!WuljjMH(zUFN99#<9g -z)iXacw>vC9yMI?I#R)Twi`kp-r>CFmCKtM?KYH2ncCiZ3C4rnhkP$+$(sE(3DDE%^k&?0X){GEHV%G`(TPiVkFj7 -z7pTy;9 -zuUwfLeuY@53(eXB(c?lMs=qu3KL?%W>8$>_KpAU5YCD@pq?!cv{A{nu%?4#BMUM0c -zsJS-T0;OpNLdq~DL&vT8kyVBcl$qJlyiSn6b}Z{9xLu237~@9O2zT~fg#N0jvzKL8 -zx!41O1!93=s!K8&aIQg8;}TrcX;U^}5lo<;%(p($ZJy5p&C}n&ZUAaV+nEa_sR%1- -zoI(p}@A(1I5Vhw2`I9IKxeO4i?s?69iqFz0n0n?~FYv(5;%Bnq>ozIUd&zt9#%BJs -zA+P>le_$^c_87%6~AVc01az|AqZkHk3J(d -zIrj67pFAv#p*cs$8xz>-W6XFdhS^R;>DG%cp+VcwE8{I`uD47?1|KVH8b&r)#TNsz_2?C|hLQ9kJU&ym$+q6+F=@IkKg|3765a4iH+b;~t-rTupE=Aie -zVwd#LZ@29TD9842v4-ttw857bY-EKmCjcG*JlF!|DM>=&rEAdYiAA?eytaW@aCfcH -zi)qcABb4^1KzP~ZAx(O6B78zu28au8kaL?kiDh0~jHJXZ653T^t)m#rdJNWqM6M?$A&HZU -zN*b@KC=4ZaF|b9DbF2CUDX7mnp*R$h5lE!xZ_O*e!h|XtM-u}V4tloY!z}G`UsSF`aele!)5B+2_tl*^GuAxBG5yYLBQ(;dGf8AA)LSonFSp!C5 -z1~#v!>>oHz=D3 -zG*449-9$#(E^wOz8M*_b4mXztuB&SWeS`&cQiWSY;@^<)uA%l>rra;=hTM4JHt -z?NNuJD%_}rJ{>d#jl^X;X3S?+7$GoSZ|-~5(MZ1p -zShM^<7jl8~Zt;0T2?q0S9-~3ZNqdcCacTdwv*x9Wjqj=!QZOgs;Hnm6=ref2YkwhT -zspB}uX-=kSI{<Z8`j$(^Cl@99G5@h6Y66AmTPwu08}Ti5P4StH>gg$Cnnnh&34b -zDPxpfBEI(6&!U83e?kHovIuc@npU@R8*evGjk3=Ht%vOTaBTNu?l|29y|6S_7LLqU -z?6qP_d}q6v@i!F&=Gzr1ucz2=uS(%j6je;>pebRico#9ugakOh2LO7{U~=#5(2~d- -zA75GR+;O!|b}uQ`vFmO`wq}o0Hg9E_y*g#cN8W2OC4gAF$U -zAdJ5cqi(vRiMMDPCClirC54C!j6527WmgDl1J?+gTtMKCrnKzY>bR|6ru!z*EBfQ( -znfWC+mpP2cTwL4LTDnij;BG%OE`Iv}&-po+;xfv;E9t%+WFNLisD07x6fwQ@{vtXE -z8}Pfb4a5p{Y3${nyfv6n;u8SNGd9JwcP$fogpEo;=6^4xS!^qJhScH2xgleOGp-{; -zJEyvkt%Sk)EthW^F$JtE`UZ!3a(j(yZ1*YkF5n?EJIhT -zM(;E)vg5+p;9qmGZ&?5n10Hkf3Oi{XCOY>V)h-~rlQe3A1}qHaS)th`A-68Qt4cC! -z8M}Iv5F9c-1O{xlhtEAr&Wc2$xktChPBjzMoo_QO|w -zoSqZ$026BF^7C1}czs6e3|+qAd55f&&7P_l874ys5g7-E0t1h^ -zE9rd}sAua3bH(P9)uqc -zvlYw=@XA0}9+`1W*8@=UwN+9%BY-N%<^j%KY>z|jTAlqT`pv7$(VRxuh$tidovd;+ -z0S{9c6#H>ZW%UI$oINhTpTP!in$MRBA{5ptZmCL=A-RC9LfS1+Vp-v@^SmeBYha@| -z__9W{o_(|9v8I7JP^nxHS~@!MNDzLAkb)v>dpzTdhJv_}pg2u#jIb1BaJ-L@eYH>{ -z2Z_9;O;sPm*m}T^6zYEFD^FD5lax*c+D(YrYJF|$LAqz(l~@~NAvl=b$mzWNn@XMT -z>)=v&o@0>PQf_`hh^RvKRQA -zcO&R*A{6D!U~BvlwZFf$;5e~e00V7>3lD_(m2Lf1r_Hx4r%9Xy@h%z0430btz$Doh -zTX5tO6%+II4y}3(pj?VZf|OOK$2TN?oHqgobOvA{q?RNsYwt=V-eCw?^5BW;nkr)W -zlpM@}xtpQZo7=`L#CyVzUw<1=+F6ITzx8ZC5bQPtcHFK)UMr6j8&aOUr74OVw&KAL -zs>ACV0qBG6A`gWm{xE4l0=#s;{%d(a4v68_c91I>YZ#Q<8@Zvkv^KXx{ug8Z;H?lp -zaXG*E*~Aeob0cRO!*ediYwi$@J{(hkBn{Y2dl=f|BK|FpL~UqXAbKcOpl>@yE>Rb5 -zbGHf1MeT4_nX#3Eye$gh06XJC&(LF#SoU_#A<>2R08L@d1C&#?;d1R_8Z{F1c -zkjC5w0*&0;h9cP6>wE~LOgE4`EX<6PWas@du -z7M6mFVNpnKLfVjCblVPQqY -zI7bt$SkMoi?y$*|5;z=S!ki#0_fr@>=YVCL51mbcWVc3&dq4^37LG9oad1e@ -z7&C^(Vt@0%AF}6sdXi>oI<{lH%*dB)}l@1PC -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 -z&mn(XOx0Cd;S{liT^D&O)?_h6j -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 -zd0P}nHFXDsSNtqu)brN0F -zm@~`#?g)>>Ypi0qzb#=o$McxvKNou#u3%m|Oif=*Nf!7nj%K&~F}8VQF&KjXQBy|4 -zv^s_AQ?dr8x#lp5C0s)86&$Oq(0@pXQ8gE4W`aQ#f$wV4lh|PrxxhroI>K5!4vYERu3Bs6DZ-FV!b}U;O9g -z1GJnD$C+}70v)8JUFl2MmU2dw;@c_*xM>iLL{u)(oS_2pU+8tH)FdHN2_@7(x(eXW -zg(v~}uTj#4At>_GTacv_j!J87EQu4*RB4}2Ef^o9rTmxhn{yGp7N{;zi9{mDc0|kI -zQIIm%Je`?hzQ%kMx;$=jGE`YyOqS#$(EcC4fAuG8oT4n$6Jejk^!c7DYQ2E0Pn!>> -z{}Xr4@PFt@%i8|nGgNWIHD>TZZUoMSIPo&M&Jm_Le`tLC{Ez-+ -zN;L{i<_zYe^THhEN2m_8wl9SVJn>wMS|Z_4c5ffIA(vw9F5joCcq?Krv(vhRGn(Z+^qGxPPLmwJO@O+P -z!6y!LUZCP}5rlfqjNDzGgK;~MD`>3LAy&B?o?VK0m_s&ILhcXIJc+Y#*S2TqbI~=& -zm)ljwT9sNJ;~r`>S2&-cV9ZoT-`LuWD(29`#R9;Shvcsj0g_|s>xxFP_HuuK;MB%J -z|5S62oGbUzEbx|hHQzs$o3?M)Z3KdCi<$7|(pWR-up&MptSAn_nL^YgvMkldQG>5; -zU%ZDduH|z&jex?k9HpHz8zk9Djt;gI?gXEkH(R#ft=&$sNvM|ZRIt|XV%k_c3oa}N -z+S`&qx(*u~wF(_BxOlVqXl`#2vy8}A#84YuvnABA|4Id*5RF?47j8(vW9!Pim|D19 -z$~ia%vAm#1A4x*N%si`z#Jfc6)?FW35bX^=rc>b%639tRygAeaEcddimZNEW9o-J_ -zp~y!;Tsgi42ca=C`;e!~t^mz#xziV2)xG-ck|`BS((q0C(vo`~9EbS7 -z5jQE9^`3tH=FQ<~ep_U}4791JL3V~>LdjcElGl+zMju0CDu=<@^JIaGk@A^OkCWDy -zyg>`o9|q=St2Ex$idqZlhC(k+j>GM;AMa633#XI-aof?2bl6f(*R%xK%pp@pQEz|~ -zX=;lKjD-Zpy)VBT)EYQ6k3rgF0}50l8Cftls|4K0H+n3x;2JAnKo4P#)L!CbA42m9 -za1G?B=p9`W-bK(=#$sqdZemtwA^^9khaT|($qaPsAK)9hUE^9hsswF3%q9uXCla$}6BOTxS -zIA-%)#UhcUJRNvjCQ!G6cmO#pi@E@8zJ1MD>mRX_ -zEAp9xVeQrvA$bu>a^|HSG60_BO@xh)u9Rhh3g7MxDG@>IK=mN2X1(^@8Q5J~!1<5x -z_kY+RLos88D}g~nkPuMd=QEazI_|5L88pegWA_Vdqr$+H859(!30byK4Uksk -zYbHQnQ$K;^iYPS_mhdtpcj>Tz{`;8O-3Os8SFE@c%bHGb{uwv$zO^IzSr!$e8As{A -z%SYnML8tY-5QZ -zfrm>f3=|*9w$YCVxnd*-N~iY$Aitg`hGlmJAn=EuO)M -z1gmz}EPKEmLUw6B#j$gyBVB1^lHwm9REB2G5`$R8Cj(WRgBzN)0N{yj;uJMnr5g^| -zlMwwSFZlkK`X6X}Zqp7WTwDH@t(MY4BSi(p9V;#*2b?4EQ2zlYhwbeN@T0$artWK( -zcR*c_jH?!&h-FWN)~&c3^;EGZ!{`UvMg@Lws{9Aq#xj)|^qy5Ig5|ct4LMB)pvd@v -zwsG+xpV{aRi8g+qZC_y*4}5L>uZ#zvKfP&SECo)8(JWSLhckk*hxCRx(V#&2?I(r^ -zj$2GPvunqJr7kd60e_pa$8&Ii7_OZ^>DwJvkA?nd1wWZVdUL=<(eLmQOMf}Oa{z=I -z_;B9|j&e>{Z4^9%Jm;$J5bz5J<)b@i0B%Wrlydamn4HT@U6?|eAOiB_yP8*&02`Bm -zr5ph3aquACy!0!T;V>qseQOQlKP&N^MOAv -zVtQ|uiP**+?#JVaH?)XF`^;rc#Ny8uRU3~!UcGkllfhjBxx%jS -z71$~4wwPb3t_n{WsiHPYBC;l~=uQVC4m9&N_Tp|o^aE{Q3i55JqLj*+LM7v9Yr(6L -zSbO`9L}GQJ;ZJX2+Z7xm%1CxYFDu3W?x#oXAEvZWxtF0-m;tQ}BkRL-zzxMaE3@q? -ztW%38-at(#*4TYQZ;GY|b^3v}E#<3DFukmi$uOWLgFrpTHZeKmag;}4GOkmDexPj| -z`+7Oigsk~Qb8uOeA87mNysmK<1P^u(oN -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 -zG`1L}Io9y_t!rT!V9bA2S8rPF -z%txwm`Rlx6W<#BWRKbceG<uTc`{@{%f3Gb+mM_us -z;}`wSG>q;6Ws$xdQTG#9VETS3+J^Z4>cNE@YV^Kkk#1hQoyYlfo$2o+JHk0!hc%+j -z*WaE-9=S6g!+do>9DQ!hpii534m~b!w;4Q7p#n4q+u9MaEa$p6FX%a$m7A%0B`CSM -zgj!1kN3in|zI3!^Bf6xlsM+0?>a+}Y_(FVOYwN^VMdqJ^Tr;O%o(D!I)h)svrI}of -zMA|hLLsavQvi76MPe-839S%;H -zMBwXp2FQ)={$7;pkPeVUZ|vvZ39IWD+-k;^HbG<@daq@iAm2+fA2prb5m_#|62VLE -z9dp|F^yixnEDs$o|8z-vq`~Xt0Y+C7Q4Ls%wR?gdAH{hJtBbS&&e-ZiA;%xgpom{A -zJ%tPc^I+s0V|grZ`d+)P!s8T^a+6v5#yWu)5MAo@*?ALqn8S6X^yPm`Bm66&fx=ct -z{~{52Q|v@qHh!RAZ61KLWTzR?MR=RzyueG%|LO{WdqV%!5B0tVj9{oavbWm_py<1ghsd%kWX10J -z*;N?OekwZ24c_k$(g{@8Wuc>`mp -zk2>7*#)YF)nYJW -zSBkk_pzAAs5;IdDIGPkRIKh1UJu(|!tj(M^^^&|-`;imo^7z*-yWlSybbAdM9?ka* -zq(Uq&U(MpMBmXM)(AjDFmBo8ZJUyijyJYJr5BlP20VUSdYK`PX-E~rW!&A;$Vg~Ze -zBmG%9i?G2G*cuR3UIF+XVjGUzB&LeLylT|8n8hnWNM%*$5%uHk?7zlqzj^n!vV)&d -zXF)*%d84XOe^D4{gQUDVkd9rQ_UvW^AO@95$Mv -zYYF>|82C|YzHFQ=@VxX=o$aM%LgJH&YceC;R&qdC??Y`!@t9S@*Cos8ys&Y@9f@-++#Ia -zCcWV0D+0Vg^voko;Ez~ -zeQoFSRX)Itxd>BMe=<9NR%c7WM~EX#i+X^J0Op+0L4MOlG7k7-V+7g5E8neifxM)5 -zJ>tCHY(wlJ9jSwwzb98a$YSecT6Y3ufW*#ky$w(I+Fp|;47&0W=Yy}PL@F&)99G6T -zQk{ft&1Cfu^ni9zS%G8QFol9vV~m|s2&#HH!`9#CD;WbC6ogm4<xghS-zIsgr;tSaegHLNWX}Uo!y8;KL`(}ScDws>ckQ*&XgR@R!g!21B -zXUkRj(*OX%4K}fQB*TKoLMep66r}ymAMq>a>5~D@?(^=dR|+*66Vi@~&NrTgOrv~|;jSbo9#sV( -zFq?_0JSxNZ2_%o>{2<3k?{3A!D8=Szf24sUG!9io3|Eg(QQC;ec5aFeaT8E%NaEOSXoWr{ -zpiH)HMU -z8GU3=VX|P6U`S({uDnKa&>JtT^XrZ%&?hl3uGwatbGWlG{6q`9`^kIow9vqj3T%o0 -zd=C+MY!nzN%=_{4GtIa}-b4XReM=;VhPXo*x)#Acf1EpxkFzg)x~cXV2NLoFFNAg{ -z0P+k#Gbxzd8>f$EIzxLBHN{tFf6m3O=z_qtO7yo~Fzb{g!e1&x*MMiZh`GbPn3oaE -zN6@PGq9brxaz+P?G0dt~a;g^kP((Qib2CCL?EuLSWU#@$3MZ`yfm9x+ZTdfUuV1a3 -z!P*&|$@^cA!!1cKmQ%2MQmo)x&pq`_g4djyp@a$V>AZYl*H-GjoQ;sW7);i2nC8kh -zLlcFm$VQ{U6CvEaIoP7zHEM`}Xaw{2qe@xe7;MN%^?kR8y!2RD@MgyHXY~%Vidc~j#4v8gJ5fI@9bmpEaAs

d?_Ppz$M_f$LvIfPhO0wv^U7Vljc<9kPAe|#8gGPK)U&f^vMXve5y(ju6rJMCw7jw@TP*+w8p*N43pmaM?M+4>%y2-_ -z)|wJ{L79Z70uf;qEP0=^KDLOo_xl=%uk2aTP@9wTzc@G!X_!+!?r$KVX6Qg?n;4E1 -z1OZjrfNhEwPkivzLm*T7&j(FNt1bmY`*%MyX2|2@6nWn;-yw>(0PBUn>Yc40>#o?A -z3?9tYKPgv+pmF-I9u*U3Xs9XD)ZgMWSShX}u)KZ(U~D^waQl=8Rkjy2cZ-%tEtT@1 -z8q>jG4?Es^I0wJ(5Wyett@?~-uz0I`W`uRIkwu{Q-ASee>to~F|1RuW-;%>6BQ2$t -zI`%XZ;M@_IS#`)7S^5sW7VIRo&CZb$U6 -z3ow^%O)K(pb#DhP;-P;J=RZ={L@Q2K{}ntN_87!&S#3=x0_Ug^2IlX+vr`JBmMTp9 -zHTSY6226>Xym_D37XbpqsPf$K9^D0J+yo~(v|%>_E7zIgmg%*AzK`?_m%EtVOOCX^FDxZ>+P9?Sm3Wux$}Fe -zqd865?sC>onODL!Z~`e)>Ytl`UaP=T>| -zSjVZsrNJu<1?;%*pqjITeQL<(`_xR!WcBHLNT80_40?dKV*r}|AVr{IMc0%OXpAH$ -z!$sOPNvD8UfAi6ahOZJHG_6PiaWt9>!RICo=XhLVzdJzX-+Pa4OMAuS@Q!CapJafy -zc#wSzYxrcgCp=PZAT|E@K`!{hU&x6n?YR%&v{AfRP(3lfh5^qw(<0Uz~@l1E)oy=M0m6s0s>h`oT`c#f`>MpZ -zFDcS?;vWRT#-cL~Zxd&N%ME2jaJ1I$;or|Ioftz@_uw -zw??q74Fhke2Y*{c7w{DxT!q85^!iKF3Yi)&(j@++sNVVWk};~}h@w6_8rfra+)x+pBA(F-A9u(0q)lqR@}h>0pd#wRVS(q2Qc- -z@__g8PHERTr5h_*6!A%`FH2v|z-fFRFzBBRxigj5+<;y^@s)#^K-`8Kjc_zV1+s_g -zsyC?6u_tF&2#9KzF&d<`EyGdR8maxg5^-EIP}`fm$zMxxVB~AvM!D-l6@_zAcp(p> -zJ#OU4HsnD%XIkdGD;7OK?nb!o;Rl#DDq}p(9DIv#y+@S6C%YNlnK~NlMkivNOxlH; -zSwuvQ1kx?AyqWnJqu>8}Y1+bE+kAP{{C_WsZ} -z=c~%oQ+v@rKVRC(MCcBPedVg66k?t*T+YwLZu5(jFshfI0N^SLQlDbSGo2|@(2Yw0 -zfoGy@6IG|EP^&gQ&ozq*s%5B4dC0be5)Lpa0vI|i<5p&&R$ARQ%}InevH-{_Yy!*B -zJIgZSfMf@1*fs4m?0miXs2`t0eDg?51cs?EQb!FY`-G(48j~Oi)Hs?q-D0zZvjdZ| -zL}W>xRXOY&eCz -z&u*xCj&Ofldv%9d?L0i<13I7Y%yur(`cHeR$SVhP;rl7lZWyI4I()gYo(q6=>KZ-Q -zHMAje0x&p7hQ*zQlv=}d48_n6Y!}PU0PHkaW?&TWZ=uPavtz*`yOS|8nIfH^h9RW) -z3P=2#$o~C`uIof77;G(OvNc|dVuH&`Vrmi74ftw6RH!h*O6D!NL& -z5>)FRZw2DgvxzY;*+{je(#Z9a78eQn5~Pq|iPC -zSU1pO3|EYy2Pe;ZeI9=F1M&_R1aNo2&Jl(~CF&B7E#h7Mn9q!joKKq;V9Jn$qbwD0 -z4EZH|DUj9;cT$_3mz?h~A?^@fo6~3J(%|H34sxGf4TH%CG~1mV`2c&gZ+>6pn()W$KOgZqug>%>gF&kQj;z!4Jz7m{zV>t<)_Sj9F8_!R%T+9dq@>+G39ISH}*jJ^rI6_f&knB!4TZ-p5uRzT9Z~Z*J>ZfX? -zHbXCUmxspcQ8KHx({7h@L!-X}9!ud0q^;Rol>*TTVa{niswnqS}+$x1{E`6 -zPRJ)?k3a4<{*Sv20#bm5kmm*HHyCo6&ewP@v^xjjw<-|B)EV;t<*C5E;xsA|I796G -zG9G8-sNW9ZwI<-iuh$DmY3^i0%bkX28|pDQ#rG|rmM9Juk?)cuy&@}sb8fnm{RwqC -zm~?R;$5%RjY#E9x2qo$fYHTrVn|XnTrEHc703axlQgL%3p+xJlJ4Sf4PDsPV>QvX4 -zeHeo4^(C~3E{6=bwW?wPs8kKz{z6x(aCy}rm@9KLxGa{;7Pm*%N}Ua>t<@#8~Mj_?@-YR-RoR6 -zXW>YmT$iotng?IM1+SI>ekeS35#&bhy#8bkDkg+gnREf -z7d0pzJq-OfO}5~;U)gqy{t4bl -zV#VOm=C>r13huaA5x=$+{=m*TF388YX1`T%$u-DcWj@MOW<~b30&4Z+qV*Hx8)BsXcH8pg78v5iMK>L2QZL4E1j7 -z0F>h&bNel+4!j*kzQopJ_CMyfi5;W?gas0b2WP3=(e)DAfC9YLOqOs-|Lgr5C7{n{Uw -zg|jG3M7l-nVCqx050T%Tny0$oHzX#pO_-~JwAzlSuNvhC0>Gi;f`1j`ltaYB#y584 -z0S0lVe%hE88mMMNdo~jr5HI;_L`swx|9rgJX&Yz -zBoye3ayl_AXgQg1v;wv4_wml^%vQM&^x-O@!K`6}Vj?|E;@N6~hqMnQnv1?Ih@xlv -z*1udWnIi(0t@0G{U5+yPZ(5Uww% -zLFLEy!24q}bCj*?0rz%{-saQqJy*>Xgjw?m-EW>2GTL;~f{3M1Da^W$vgnd$ruuUD -zC#vMOQ@nR-MVQEi45C9PbkkIN27($fjo|@V4w|gjcNb8&u#iZuJkROGOe`$u!W_%I -zUi(B^G3=bAekGyeJV#YsrRPTqdMQl5P3*}~iTXcu%Tixf%6y!$TxqluRxD`5k>Y&T -z1X{-=U3wiiPs7syW$_m~R{}E8J_J&tf5`1mea4>w-VeDAX*g&vp=HgpOQOFGWOfa7*9=5oBr+Sq32?p+#!-m_PKYPrQHHBw*`o -zOQ5yRU(d2(0r%7Z4sNJxJNv5Ix{L-px7$$>FjnnRDuGE7!0!yf)v!v!s{ZYsKgBjN -z*=-Qyg8bW}A)1(wLgJ+%aY)hxDH*-#XwP`Hj4(xDwr+a1)OQH2y{JJY5af{pP?)y$ -z=n}B{_{nZzC{g;}qeGFJ(1IhcMyh65KE|90D1ZB$UO5D-d9E}}Grzv2*k^>_G$aF1 -z>EgIu?Ke$#3C}!8iD6;T(M0p4do=`MX_V+2Nnz#@SVufkjN4_dTCzUOM*K``0r{?eo(d`GVWP4!_*F}6Wh!pi)GlpY*zqyjl?Cv_mk{t -zzA%#9_Ic1eW{)C>aTi+E@Wh=ClAhY@TTO?rY)@$zeo9#SJ-G>Yp5dQQ709?E3d6+%8H`Pl -zZU}?Y(EdoC013~~q=z%9)D#`%_Oq5Jp`9+6UJ~_BGIB%>EMD1;?o^W(%M?QBce+s& -zfF&D8NQP9dq$o7WEPtMAyB&D*wjTY!_N2TNiD&AQRHc-Si<8g*^yvpR_3;~Rg&cACkngbK~D<%oi(=vkUI>5C~C-!a8c&mCW -z3GZ(ev6L!RC9I;rHNS4CS~uR0w+&3XG<9^|NPGKJFj3qcM@Vm5(z6!U&Hj3{_|l78^Gf{j69t31Y2L+g_!Ta9G3KbBIOUNO -zN4l6{?#@Gb#N{AH4evCkwu(RIL9>T>*jJ27VuIME+kqI_x$Ykg%9} -zy|VWB8NE2Z<`L}}HM#3zcec0=Yx>LGB%dm7O8oaZVBO0GWjQt^KMJvjzZ2T#!CHrE -z*e8VB{h6bgED^Eb*q9qxC$>!Ab`$Wh?}d_vj{uC>d8*#5eiG~S$>tb5q!mh>GRb)S -z7Jo&&t5mYO>dQIzuEaCu8aZrFHA1!7&ILe~g+8pZC1P-DtSmPoF%D-qcS1=wR|lI5 -zhy#&8Kn6Fu0ma%*TP(cuzu>m^LP^E5fi=&r7^Dl|U5=RLxrAit!Z~TZb#o7^ZeN4h -z^$)o1g#SXXHTIYNGb=LP_I#Jn?FZbRQbg_5=U0aCtXy?;<3}_XE@~bPZ*UI^#7fcc -zYtwbh^Md4GF8c7A>nr=rc}MtQ!D-t62i%^w@Z)R7XQ@~EA88r}|>Hwmbcp65%XcrzH^6nN2(FG<)%SgaCS$4P$9*P4N#rK&BrwU$53^q~Gi5T*d -z#*xD1R$%)HW64Vl!a!uhknV0LH6{3iH$Gmt#gDhm^^doG4mO^zq@8t6 -z`yJKp3$GHM$DX72yzWe-c|0=09D1TXwYWt9*3DG{Ac5JJ`9$9|D$=Kw8zA|wxBZw? -zi)BjvA8%Xv$J+dJX* -z?O$(u5)eM|uKpmkzQv%r7icGE;LPqty -z9=loD9C&HP8ktW`ai#WD54)-r`FV>BWgn94x2)E9{Ejq$CtD~cBTP#ylUT!hBS^Jx -zfdNg%w;V|2uJ~(wU#zk -zBQAu;Va}j#uMtG>y9i)&*n>jOL#DSkgJ6oG;q9GiQ9CKdqH8F+HZHZfYTi3<2l!v% -zL@lX!zDj5Xis$-dF+}i76l8}Zj>?bc;D3=Y)u{72xFgD=AXz9Qx#Vuh5Jqt96_Pl6 -z7zyIf&uJ_%J^zu&<~FCKaI2mM{*%#GUQSfWh)s+xHSk(Nw>W)t)vfF~%s6@I`xMhOyg$5;iB*RfwN6&52cR+;M(gjqImf+Vut1J%+t3O2L-1#H -z5R2hZkoNdKck2`P=ahj$^I9rS?R0hJsn6jqsbsN^i3Y=0*q?pr+vZouAS{W$p4cEP -zXjgHxa$1HycP_eVOPcwT -zL$++iA668?H=n%Hb|!- -z#{vM`E(-%NW6@6TH>S4WnKD6>|0%fH=Qsoah&d7i8F;Nt4X+h+K0Z`*R~ -zUvHcGKi;-rLl<7ECRgxDg{6DAe8BO@KZ2E7x -z{-`uRDqH`klO3b)(pRed?2EDEb77Oo|} -zycwnZr3ffgukFYI_VfZ;Rtdj1-b&|{!B-D?Q0Jpf5yKyCULCW8>0Z?Wd9LzQ778zq -zN8;~x>CZ7ygAPJI)s*JF>Sv9XSOLTOf+?Dc`%0y@J#Ehac-sd5c-w^k>utx!w?Ic4 -zbm_DGc-z5$%Nho;BN7(1x1ayZ+lGw#@wQF>+uN?jSms?l6dY2~uc?}^cU3;zyx{z;Tn{3X3 -zn>v#Wijf#$GWVdZ3eEVnQRwMP2z`T003K%`>p`fW34q(r7)pjLimMSTv!cr?vH%-M -zH35V>hXJ3^ZW>h?p1}N`<3$PgkGEYd6*>t3 -z0pymG70(mZi?S?UfBNHX|JGk~o`U@GwxM>k!;oTzOGKcKhpPLiqSJFjuyq|7XscgP -zRqH~x8H2NQXLCeEAY8aK9MO(-*?>z -zHoyV(Kiu}x|8m>?9(?|*u^Uy6K@Edjw=-_>0!F~ST6+pdDk#CTV{ -zRQX>_BUlSwdlC&!Ou=NLE}XdAEce~{K9qZKZE`v;`%fr6v3gN@B1!5`6B`y|S$Omg -zaDPYhc6!m^oB@l(k%B~2T);$Y{mFy)uJ1mcu^*uG`pS(Z{H1?56;CD=IFpk63 -zT&B3f^d4_x5{WFsN&86`ZAIZz~)Uq-HJQEyN?qm4X5= -zH@GdCuLF}}Y<5hrlYp8hPr)cg13~S@)G&`o`lQ~Opu@V3fa`l;`2XX!gZ?kK-Qu;j -zphNP*ZIk}XZ7+rj{SUVtB)abM!)?3%Kiqaa=DE!931Sgcgb`lY+Zy-(<+hpr!)?Q! -zL|I%zAM)aTW1r$rF%&KbzTzR5n$s*X9P+=A{=eKdjRQ8t+im;-&@$M)t>$dA&n#&+ -zx34{5d&!6oGhsDML06X*RSf*$mmZnHmaXMuToT&yy!; -za&cTU2%gEXjIEW>E%(Zods%aJqH{ih=Pm^zc_&hMQfYWXS*i}(?8QOk_xy~J&PO_+IWNCJ~(l>rkwedMclDCGCk0ADY< -zf4@KFiM7&6IGSE?N&|@x*@?bScJf}I)f6L-+TC3aAz=j;#61>an-W#yaQoXJk!z77&?IzIx- -za|43acwq-dx{n6lh#$>(NkGWdk%aN0S*J0urgotJ)e#5a01!yX8)ow~;!VlT-zL-s -zXnXX@T?!)N3gln;phi(%PBAe6?R+ymc>7)SgVZm6i062*^i>UDJpC!Spxlf;U-O~*L>?m# -zGt+WWgYJ(A(Zb+NO-s`q-2oLq0U4&G+GcH&L93D=T|5%5Dr -z=>)`Xw~6&*2u;g7%8kZbBH1!I#lR>^I#9+Ac(^Wk8iN&UNoFxxQt-ZFAr(X#O`@H6d!C{6(5B5}c|kA~aHtYilmM)+;ugbD8PH6Ibs5Z? -z{H$*PNsE2gI<1`Z8$}jDYRzSVq+H7DQfb)za%0-9+EPcs8opLzTu}mk$Zr#xi^XXp -zadv(Y4FC)Ku>g)HACFtVO!MlrLy#8@NEQ*txR5p9ho8NqK_)cT#T{rv=C1Y(JHLAv -zb0?@V<-#HOOV+g{TEcp6F|#$$YV56;Z(VU&Ohw4^cUkFkpK=XOI@-gA8xNbu&9oWx -zDdH;neP7p_Z_|evcJ8o%BH$_$?6h%$nD-2EqrK}_RjhEfS>{11m}|r^p;erBvo8^E6;qkw;?TD5!Uca9e!gpnc$~1c(HsR^XDz^e9G45OC -za==Q$Lm6r0@usYT1jfSzLd$h3_`lL@HvQ4W$G+H<`4+4wUN7oqI1Y@EJR06ejX$aGKPV={|aEw9mxU!CHKndOHDzMHjY=h)RSWFwG$ILo(68(|mVS&$2 -zJ{`JYt7*Iz@E*JwIRPR9YCEY$G*_uEzOn7D|1Y-fIrRp>{eQ6Sfp2UZl85aZ+n)Tt -zuH%IZ36mLLBq`!DxJA3x}VjvnWUE -zB4lu)H;bHbGU*8JKc`$lR($}Cd?a~XG!|rk;Yg8lIIx#<_DZH+tB()M;{N3tD6tFj -ziO+EK%ay!~%)V?^j=uhDJHLqy(@SOeusl-mV#L!{<2B7Ai+oLH_VmRRuwh~$AQiS6nH -zj}c!WMMBpqsm+ -z$9={e&K_U)4Mq#O8jbuPw!>lvx;+=w~S=gj1zx^jmv->xZB8c?Tpx!mYK8f;Qdz~BEZ9d!%tPUDf`cn -zZ6x&h9fBdo69s$d%fN5<*4L0ox=8BkMPZzbcI>!uxW>;QgAmu`a*x63xOchdT{j%_ -zGE(7yx=9|b9R!&>+KhZUp`;vO{p9PYhb87U&o@g)6bnb<@Qn9}l`|ykDBJ$z2_{K` -zCAIjnwh1Yqx5Y=5f5;2cKP=cEOU64*h8c%tp7y#t`eKwHHO5x{(x&Ml61R@XR|6HS -zoO4n7hz-yqFodG(o7eRQ$^@g%cg)5}S&gHwy0Op3ItsLsbZr{$vV3X5^<5oS%BR=$ -z`vloErWG})9znKWx5G8r4q`R4GhKlMetvo~?9j%OY(xY}zMiE^hRVS)ijiBt1|5`f -z+I+XuT2j0#gK3uJ9<}b&x-xB4)^_CA9sEvH-EpX4kh+RWO*wI6AkT0y8;YYgAvV*U -z)Mk3CfKq~oN=69|(d85|!qU%`+EJT$hV81|4dCa1)k71|NHfmoUk+e|QK984akfm& -zCq@3Xw&nj?+kz02Y9XcqgvG -z*7oc2a*X9deOzG>5DFcDKA76KwaxeYJA=ob%k|INUNcfw4?AF@0svh2q6GfoSgRh+ -z(aKGlQ6Uk}@K<+Y;Y9_$_60^apL%w)U%r8J(Y16(l327C}%5UorwA?{bsF=6|MI -z0uoGxjHXx-! -z7QX8eGVf$~sr0z5NLmIKmis^vV6P1XK{R|I5jk+eJ2&*&e&*f&ec*f1Um^1zYzZ&m -zTb03f^Ty*qV2uNOn&u7*l?%YxMS=xcg;Lag`263+mHvdv&G7u+-N)(R249s6^`vmUW+V)YDc;wC{QeEI0 -zk~#|zDT6-K!bg-f{8MowAbpQz#*JQB>oENA3}{# -zriy`b7Wkr!A2w>V4wPP`d*>CkK#~m#n|1MRZ6|Bl2%MbFU4V?9aWu8@^^Tfw;YN$=}v?|37Pc>z}oqf!q0QZ8zNQKb!b|TiYvTnabQ_VDFtSCo~3nGSlXwG4$EF -zWSdw8B0qMa9p5#M8m4pHV0S0T+30ZqfRi>PBS6*7#ribr>mpGFk>@np#U#@hc}e7J -zphe-k2Sxr`+xh>j?Eo2-kk0GLw!!T1i)RtsM%3=cUts;-z4Vge&vWC7Q}nn3kWN?% -zG1($>D0ZhzOa8od*n8vlznXFXkO`9vmK>#)%#5ffETZkhZN^O+H%h5fd%&`(fVs`V>unOCr^G`+a-SagbuBQiBfqz52ml2By#XsuR8iB -zF{;DvC3rm+SQ!Px@8~IJ!S8 -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 -z+%sn=9papvLH=ihQ1cKNjA(Mxs -z`Ce!{FVwL|UFDy_X`{GNLeLCF1L$p7*Bwwne3*}PR=LO!7{6C|rW$HPw`CPvjJb1$ -z2JiLU=5u@gEJ>Afl`b*JToHtzQCX4IXDc>E0KYh$$l^htP9N(;MfO=Pa6B$rKS%xv -zYXa5E>TxT9Ew*t_Py0YoZu@7?c!;_+3MY4CA_%8?%qa9Pwf(-jS)DIAskq?)t^YIs -zAGJM%UGZOPyX!yHHgOfS$bYEq_HV6oZ1Nwqjgk3HZ6D`TqJ2}_qCj(T9^M>$yI*44 -z1sRJP?=KM%{fHk;!`_&t%IX0$u!Dhd&3Po%#PN}Q!GGrA0_u-Pz|e^g>a+34D{b5Y -z(28vSQrivfRj91!yQo3hnm8fr2RxhHth5P)p)g)eJY11#kI^BzBd)2=z`99W?!;2y}fP+v1>L;n_tmb|^Z} -zY*EW;;+7_G@=_5MjBRKA)4grS(01}~dlpa_5NTF?g93YEA#!N4^ -zea3i!ouQRl?F`$p4}5Kc*%E7;{<7(MyhGgDL=a7>Z)B>8`iA)0RuR;{O}xS2{z7mP -zW5jQF#|vP%=4eEZb1Q6?+Eootinn+VNgl1TmDJ(bivbnrK$L)8sc15=Khd*ti9>!z -z5*y25vfUkh?o>^klxUye6!KS8{=l*P+<--K$W9T9FP=E(`YvNRyT32JVg6RavNso$ -zLlHbQ%Tp;(E;QBW;SW;U^13#lWILVZuo(F`oXD=+C$TLyU-6a&%tad>ag4LGgMHMz -z0j1I-+*Ob6pk$fC*akh?qS*J0E8& -zI@e!I+juE*V~Oi4ga~(XOYre)R;!-FCK1!0GC}l9dWeTZvVHr>Yg2#>FlT$Q_-*BT -z<7K$+^0rrY56D0wETQ3o>6kse13qbY(DZ9I`o{5;iIO1qzNfjR>2NXGI4Vi-9S5G0 -zQvamwFtfZ4v+=U+TC=tV(Q<*G{bRl0QbmXkNld}w2?kJbvx`XWsJPvg0ngxrs9*=b -z7qkJwzLvOFoy737u8tUF+&gz&!=jYA4<7UNFDqAfj=TJ9h=ts8Fng0hhbr(PKLD@h -zhBrP*RN47L3=x#qYGlW&tJQkMnFM!)>=Ned4}TO_&Mu5Ke^y_;5-f__JW|WXeoNa& -zu@?N(>Fl|CCm<``cyZQV0eSS*cbU13g&CTfLU9uJsH*kzHROYJ#< -z2uk_oZ{@g}*n(?qtQd%lhpd~M@9#`-zSXGBRn^2|_-|+%{~Ov?6UFiD`i8bOp<_(Q -zhBQiAMdFoggq=_gEf^w2ZEK}|EqKPtB$W4F?ts>aWrXa6v?;S|D{fOuAX%kL%+lC; -z!u%4$2;ltD&&Nu!=n&0|Bq{|KFq{waB_eEF -zM$F|(y%nMbO8$I}sLkkI!$pH8r-X#gvAJ|J7+)d~jZ{6Y`v_;hwz}R|{O347!D -zsEtpHx&lyUx=oM;ZPW=rhB@Uf;SvI=Pm+)l=iKX^P!ACg1yyeCW6{X!^kcTMP7&*c -zes2{>7Ygm<$R(dNDWX3n9{u9+!k^qQf>5xMdME(gq%x-Ml&%N0-ZQWBMJmJhG!y>M -zSGtV@Vs|z)RtnKvuepUz=a+xHRl*~73V65^n6aqOKWLkIo+|Y1Q&NJY`~COI+EQ}R -z$A`<<^XJ|50a5YPQ?||6+thAfxAz70d;e0Ej&`Pq&dJ>CEnq&oOa0 -z9q-GpCLtUAgB*Jk=^VXxDRBYJ7akGcZkx6ixx1MZ~iCDx9w4sSQFw+BXV_2RSS -z?hyLy?5_8Z+lSBZ_x0dv?&ctt9sfVlcJ!L^?>+v{u2%1wmvVdJ6J+8x9*M9@W!25Du&{FS!tBQTa -zuB+28gIZM{&|{e8%L&Am-K+{3lhZdzB2=-!XjB{A1tft{V6ezOH}mgsT&AE1Gtsb)OZiBO -zL4~n;ee>;8hNu2X+xT2v1&2O1#{xDC6SwK9^y$}E2MgCe95LvKS9d~d2YEp-FKe<{ -zbf0&3*sc|NxC{q4N4kR`M}#_9I%lXbEJjbx6& -z+aF$QS<9T((p%Q_!@UF&P=et(#XC1e4l9Da=JB4hP`tw|F^H=d`3W;^JnyvhSp|YO -zb0(O>qTvVFnS}M@sr<8^y2D~f`Zs&2x5dk}U5o?=K0y>?5=+Bfh~B7U)m!!HOS{w2f_$s_jN7np0Q|`7gAc`3-Gv{e!l#SpGuWPH{XlC*&Np -zVb(&%ErLk&5%J=ljBAmPjT2P)6N)HN0Q9YbdymEy&N#F?h@iUq7rTRn1y#AE4oap? -zPt9GGRRe+mwk%>~_831#8#wynE2+mxf=m6a-Bod#;04l%sHweao<96ZDogCN-_d=i -zwm~u}Zedv>F{~XlBiHM#fLM?TIf*96ku0EqJ+0NdBpB11M@n{|UTj?8Ud8_M;geJ1{Y$P}cO -z>5ycZ6l9*OMtxxLxn27sN7xK37!a2^WFat)rWA7>U1tBt4bI!sBa|5ctCV@FAh&j@ -zT7_xg0Pve>lv{rQmuldlaJ0?{^7s0@XXm|Q<;0G23}_JeBXsM!-iV!8U<0;?y;`M| -z{aS9a-`ue&+fU#yT{)LBGw^NsSUVv4Jr0EZGi&69*jO;188!qojks|t`*)`2jM6&_ -zu7XFaF=zxCUsTbFO?I(XHAj_{c|ZZl*GpH{SCZl0g%wij9Ja2bx!2pgd3%=+bTHFj -zYTIC*ZFoAWVj528(vDL{D~LXu$Fudbv1QqK@(V9uAzgxcZ;!k}dwo~bFU)<m}iT1J%4Mg#gIOZ;k3PlqsIyLkunK265G+FDreO%MT9F!z!*_whv^bsh+{s*)J-3g4? -z`LDVI-G8ENZ($1BjqO(^2#%ko7>*VgfImCNAFDmyYP_Xws;~Brx*z0!*K|aLydU_y -zos?9YFpTfwUP$s!7O2S&ozj2Z@f(ZdnV)9K@1-WZG4iZ-Hl3{*w=WE0soj3+JpIvb -z{B`KG5A9iH9DI3Z^HJfGjB%mB&hONC>BU1oOt}4uE~)8#I#)Ue@5Rb5tYP^m`LsU| -z$JgZE{`;koziSPD4<45$ZP%@4IV1dH3!v*Sgjs=S-~MTSE_8Z!6Y_t33Fr$*;Ewl(MCBq0LPu -z1Z+_f)xf_%_^sd>5!s|Xbju=Q&i2uqlj4Ha_oB1jSHnUA;ObF1g4T7$Dt -zqgBJ5PZO4FkV>wuqT1^rQGC9mY1cW?8aAlHx}#Xy@drOJMFM}(ZYGwrChMn=04Zwa -z3nI$BTXl*L%fKOT_5QYeQuv6>MmId*+`iCG&Sj5&472yl`tpKF%beebo}iw<0>Vn_ -zQdSK*YfFOhWV`d~7!vGV^N*y5Mk4FnceM?i_));6TT96YO0b8f2$@4W6ai`e)P@;lhpvPYi}PMH#v0=$xO~7 -z4*xFG>ZD52jfGy>C~;41*{K(HKc2ao+T2`5IK@cE$#&}|JSjWY&>gnNw@`J^a~^PYYZHnQI=ANbq4&V*8N7pM7`SoOA+AFDIWM{}i#C-lJP;oNbS@{C*-es6hxmq@VOV>z~V -z+i2O4960NcET7BSTht#G)ZL@(YKS?bB$&5LKI!j0+3om#EScD1^$!m58-eDVrqxzK1+tBBe{xseld6qW*=y{9S -zdgGpsYJ?XyfDC;G7#`v#^Sb~jIL%1jme;L&aFP0*Krhb+dakO^B~}SLmb}6dRvFJE -zbcElrRl1*3P*f5h4z5C52_hbQ^s -zu)OJGU4@TNyOCj4y`w7%~wBDrx-JI~y5pTrpT}``^s_pE`=BWH0jIDnG -z-?s*#FAQo+3<~NKDIcPcBg8Tunqe`e)3hk2F4o{@arV0E(Qvx}r@O)je%!|eSRW7@ -zdG1sFb^rxOHa2M%cc7c8F9Z%K=NzElp<{yK?q+%Vs^X5J8#Ci5$0(;0Kvd*xP@z+B -zoZ9^{quRICUHJxlL*wHLt4!TyFRmnJ&6B6mx6_t`rg -z(m`F;#5^m_0&DY1Gfco^`%BJVnm5%0nw8JT+umq`oiPZXURQ=I)cuUuJegN3s-wK5 -z%io9Ix(xFVr_A)Wt`l#?DA8Ok&pMUF{+ODs_*xPmH -zvQ7i~dd_ObMNIj*{!MLvzITV4*A+C$!&`g1D&f-5$}g?b^LH@MuQ#tCfk#(dC3`In -zKXqXc-L`IAAoU-r*L1getD`mYdcOsIj6Qu++ea^2%|GHV-;RnqvDMQ)@1mI+0j?I% -zd_MKIKF#{iXnJHea}}2!e}2w(PZDT%gn(Da5q!`=9SFeMnn@{W0iodfM{TEXx4FbACsilu_@_ES -z+LK-P`xAbsdCyP;v-&H_>d2C48YytRci{7J_Te9BWv!^c{;9&izG0dQuGjMHH%BS6S?L`L){i@@@=md> -zrSWcoL*mvxAsli8*~uj7b-lytjWp&I{Y0F8YR -zo$^?P -zT9jL8)II&ywgW`GZpO@0e?DFBBysl0v>ziW6zsWzu{l^ST=O{itT`GXu_gUnA%)>2 -zPxbkDwwq*HCTpmLb9-)&Do2_U`H;m{0Wui!@bmh6OyrI}#g*&B>0m=2p`GIBh#OH?ptDi>|5KGKsB0l -z8XANPS!BVtFgn^!KiGN{zrkrVR}rea#v~4-2DBBj^;q#@Nm!}W0F-XJ=S6w$Td=*v -ztOgIi?}G((GOP -zd~{0|hBNDx>`SEfvoyU-J69)JF3H||*k1bqeb=I=yDqo~k=?+2I?eB$$0=q7FH_ob -z{RBl_K#k(G%$qzic^y;%O7jKz7kf>;kaR -z1Ittf#}Fwfw&?6Kwb1OL9V6Hv9eMRzU#_%D)`4ua;1J@&egtZiLRjks#0R8$t%(#G -zi~{EJROI3Qk1d2p(F<}xJ;^jHW?d0J3$8DSJP)={)rgXd? -z%qs^f$s6u)Q*LiZ(67XbB)8EOHk}GqkkaYUf#A~K`Rz8>WtqT@zUKfTwX+;eo{;+PJNv(h -zS$QTc55O}-pRs2w!K1lSaRk%$_bcftFb+gV>|!Ehg+`Ms09)5g#YNjsuIXWxekai) -zaS+co*w*QwlGi1ve&0!*LD47-`H9uP6YCSs##1N6U!$l2BrqSWU2>1XS5#KsG`R$u -zJ-c2g<5!h;oz>xMIwH*FK?&427?V3G#*gQ1*PA3?PQK8)nbhNrq4kz=rVTS9gDy;O -zT8;gNf&`retT&raeEw5%(q9$nC+}8v0NBmd$%4CaeSTLvT5Dfxz=_jeDY_7wO^--f -zRENlJdbou6*V_&|#1F01qXKqGrTOb^U-5t4p?6ndbSQC}a_TymKyB;@F5%df<|rHB -z51J-LR>Lm>DXgd{D*pAh#}BnI55K+bQO01^RVq)pTI*XwH1iRyiM^hDf`fCa5+L@I -zGokOou_iJ+eFnq)(J3#FQIPtb#H12wttW{dzg91!X)suaLB -zAOIY}6#p+*XD^OSjTQ$i7=xRVgXt55(~867gr9|aUD5qo-7hnKL2=br=G=8o=a=DR -zS=EG^4M*5w=@Mlkh<%vG?&O$RDa -z68VVr&^@~)1IgfR2DlgH&~-QPXvOUW6T{X77IiyCS89V86I`W)xRKYk;Z%T1tQlx3 -zxSA8y3^|#P{OvjqK6H{GTbUjx20zZ=&4>XPQ*isF;l91?q-D%p7hGE5*kP~8?Cky} -zUK*Xu70{_j%%<~D0J -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 -zl=ciS1qZb2egceYW42Q!t8y#XwKkp -zm@*kGEb29`GZVdXp;C!^cBp{r8q8Aovzfi@O3<)&?;$U%{$e57&!{oWADg7r>3U<)???iZA}pf|%%F -zj`@SiDn&SFLG<@Bxj|&3g5dJ~Fpgw*DKCGucIrVspI?%i;0}Y2H5ex*8qxAet}`BI -zi-ScA0kai|Z8E2vtv^L++lDhlNLt_<2MjmKOPg0W#QSP8<F$7-V)ghP>q -z*oiEk+CGD!*BFzGmqJ|g0BNcN)Jz`9PSE!YTq}-#1A}E!o?pk~5AC};%ze}Z9CCDf -z1N%?^+0aa;<6n>b3{Lg=%*`T;rA4YeCxfiY^ygZf=;GwW5C|hjKgRcwi;r4^;dR7_ -zM158q%}p=S%7WdUpnjFbGKxE61$f4UT_Ia)8;WNdgu5W?9C%S-YRqRo^=vD;SN -z{Ra&B%rS!O9(?orra?Atj>oZ1)l$@p2po{5cnRpo2(J`MKFEA9ABP=4Ns6GG>Aky? -z`M|S_l^i#DGK_?@RFGjO-bfR0hwkcC=E_=iTFWo_*7`%RFwo-D47QSk*+Y+n_tDw!9ygpevhQhnN(K9A17FC` -zWf6N-T~b#vigPzY!jJZa{(s2fI%#x{W-f`olS(il

_k5R#pWG&Tu5 -zw)lrY(NFbO3l_V(mj}?r3}D6VP97ps5(^UYb6eCcZ=V*l#d-soSIagD*roX;Fj(G~!KcvS5TUNTxvFne4hE=rFH4H+uPD?Hr=yr>2{78kYcO -zXfZv@k+|r1nh>Q1f_zMU_p{kG^C(~7L9y#%_^XF`}!9l%3K<(=0 -z)GyRfctU`?rfXgS -z0ODBmI^WB>o=*;buExp4oB3g^RsYgK&Lx%zshbThA4EV0b)h!)E>whMAqaS7s9d{` -z#n*c5u!oJCb0F?}e0#+E(+#^h8UDO8q$R(ksH`EJq+l1e6}UPa*yr|ltrjRcSrwdYA0EbZ7xM1D2u-zQWas4B -zxBT@3K&YOnam>m&7bp{kRsFuZ#>2{g)Y#FmrdwN`av3@yc3@SABua%HIXJ!@V})|0 -z4P^|cK?Z1v94W|D2gDq1dKZJ%bO -zDFwymwJ!AE1a($ns76fZ*|9@8{9EtsIWEEoYC9z4#4g^r%zMQrdXGL6KY@p#yzrg@ -z9po-cC)vKvmb1JUB6vz0bCnrQOtMM`CSPtEEoJV&39micUU7)gbvn5wRK~oh^;_*X -zpgEvS3DlBsMW~K?`$vUO0~>Ev*kp`p&rO0R4Le_H7WX1Eq8@u0#ohYm5R!PfQNS8`K0h(zkmu@A~Z -zx2V^u{Nj==${;@6q(|o*^GUB{3=@+;>ZWF{lYapr0lN%jLt`x$Gn!$tyuUBQyA_5l -zyU4}o_mTjJ8@F=v;2UfE%&@N`p7+eAC5{kNpDGzows2Dz7VfHISf6#5SzhsQG@CQ4~kMo9XG=BA?Jpeh?>NrLr -zL7(Vyiv)uuyJU}_Ec%?UPH&-P?XFQb?ZplZs*sA!o7sV!{vKe9u7=t&j!fm7fpbf7 -zY=x7Fn_|H@M4zTH!cDGv`pAB5`3Tr&MWE<^R^*G7o7_n>@4MQaGtEU2g*AnTV79KH -zP5YC!M4{Giu582;8?8+x<+HI;2-)c=73=?k1&mXoRam*LjEigRZz&^E6vCCMU4us> -zKfG~>mLYMrb;VFX$3*x9jcd_5tQYJ}4DCCb3Abc)^R%nWPz{L7WfWN@-m`eVB$q&c -zA|s9^sDL*qF>|77xox&JPxQhy-8@_f;of|1J5Kx&_1ovD(7*Zp>Qbos -zUR;8>n$9iF-kD_dbe5Qh`E2mndc%-5McQ9WWZQtRhde+u*|bNU6_w2Bgun>^MXN;nspj!SqrH-) -zfHg>X0_l1T<*`jy8wte3k|P>^Jtw9P*4dkg0ZMCPF^aJ5w;PxqC!*OW((C5fzZN4Z -z^tR{Y*^ZF59IuG9%iQjb;p`1DE7nI1naPVm)k3?g&Z6}(f;5>w$ljB#%XGqiv7j9% -zgVHnXXwhoz5?A#L9cLG;ffl;Ni~K_H3CiQ5WZon`SgLYS7B{9bP>Eqfhy~>15t*Jv -zzp=?oJXVm@bc1gUxU^r$AuVte&i)WHAyKPWS97w3bvL+U>^%Ft$qdD#&oidg$uWvp -zHZj5ZogksiI7uVpOi&6ss9Z7%41gd8#Hvz0D2LCUzvhe_Ok*uT`^I92D@wC_Ce!aP -z;3sGl%ls?a9Wdo+)@sfvXzTq+8RsUZ6 -z?u&^-6`%tYCk$H1Q(rXMA(43D+*3boN~r%_E^P-=RNpW4zNa0Gf65|k51)m!h_Wny -z=W#9xVsrAy7`cYi7YJ4&SGtJN#iM1Y`r0H@dT7cZQ9~1~#zUcd%9)<3mkL_q*}1(Jx?! -zT={zZMn}iJxZIZ+e&Fzn%gx!YFtSiA$nfQZJ_t#Es9~qTt%@K_cCmwaR;4a@gL6P$ -z`O^2eYc6?r8F>yRex0@A~$+lu>+8sN*l_t*j0DfKU) -z4EdA`8ePd9z~THvm{r`QDT7$ZiDd&2Lyzt6Y>EIYxQE*TU?P{-8!@>}r}!i$U>f@| -z((mtOpvz%dKds>W<7@BUVzT)+C&AQVhl%z-JIE0Uw -zd~IM+AQTnSab(2anVdjqj$rx(g~`O!5myq#TL$QAcROMA>E+rliP#eW?V~g2lPnC- -zx7j!Q$2P!HobR%4RVp5Wwd)8wcHGczRb2AeVs3ZI#pK>A;o#fk&@~<)JMhgBT*&b+ -z{mh_{4|Df#F^7P!d@yaz0UM*L{kfXFBZyghYnm>vI+5=IJpvyCryuRp#aOe9KjVuT -zxQ_KFj=ugdJy~l+?@Pp=yuXICU-xNZsHtgn@q!ccharjAy2kmxz1cCjfajH_XRB>` -zTt`A^i6Punv|%jdy9^`aivtJG;|4#qh6aom$WdXUh2l!Q9-jx#N-hMgZ&(2Z$gSfk -z8Cw@2*+dAi@lChR5^2)QQk!rd$DaK5@GZVM!i}e}@M(8uh{A+)ziZaL7&-CAxThZ( -zIt0KIpHl4QGM@r`;mQHpkMu0gS;15U!Ziu`M!4k{yBPfa?fx6#F0cLv;m#5L55led -ze<0k)m_VH!J__F72sh$703Z}J72yy^y6K?5pm}gA12gJ-26*>q+C7CtdXb&Z^X`IEkmiO!+=GKD -zSdtDT*_QDQaBB_8PNu$`F_)lLL#H^lHHTg$9lDt0PbEPIjtb5IPsjxsKkB|&Ne!M* -z71{T`UwPg^n2Fd9O44;qaO{*g_>CaB-X0w5galD9rC*k_u!!Oy<( -zBr|O7FA!+Q`e_N~gCp_v8ATw?4OunIIK3xRbz*gM<2p?wp$Dri7zq%G$YcBzb}&gB -zkb62vN8yJ*LdXD>7)nLzKwE#)oYy2z!{povvvbqxIMOIs5^v20btj%{0s!)6jP^8p^-JvX8=eJfx+A< -zM^Ctn1)^b)F)Al}3W3=vfLe-j3!pcjI*o1BdRvG*r@Od$kDBovezFm0ov0KpYJhr+ -zRE5ofurl;d=9~|A0*fRXwd=WB-|`;?A0eCtFb?jg67c>OO6$FP8DEnn41_Hd}RG3Zw#%5i{TAmLznj?vn=7q#pqR -zz5w>dwTMyd=t)*ugtNDT4b5gTWv>jyzGh_Et_26EGdI0FQ6(W22tF~z-czunZ^l5s0w{Ssd -z(*zy>rqsNI2-Oi&h7=YGt{rzDRO4C^W;|DPkUV;=H)FL%X?*G$N>t46cLH1q?_=?H -z=o*h@)S;Isrntbf@+Eg2lYnD#IGC0aUfhOaWK2HA&Yn3 -zs^*sn*%jrx1VC5$0CijEiUsT@ePQ5N`y}UWW-%`3*X$Pjmd?Maz1XxnKQ!!sk*hAa -zi6y -zBMr7W14;tQksRbjq#c~L!J(TM+3Wlj>#}tq=<_cKGwQ}5O9&${@-Q-+#w<;c -zfwh#EDXPc(p{u)^<13El`tYT@7>z}OqW6A99{+A%)~yE4YFj7Iq{o}aR4a;tgqHy3 -zL+&5J#)^%?obcn&u0LgEuf|Ed@)Cf>A-2WRIlvH>jSAB-@m#!2X!$WKfxrCY>=M3? -zScfNq>KaN1{OyiOQo8J16?~Pz)h5}36EAf!$vq=m%4Fs)Qw^30x{>7ZLI{0_LVymJ -zDf>={j}MT`-v~wqB8ID8BBQd)GF*uhg7$k!$H$CM=rD<@6318q7iuQp+=w&y_r!zW9FXvP0Km{y|T8^u7K7`$i@b5#Brs3s){U -zyTt|@w$;c#?TAg!yzj0Z*QB%s#cx_Yhr3Q-_A7`A9dJRpZ(Oxt3>QoD>Cq7>pucyM -z;6Yp?-Vg?}*Bs^|zC#@#FsyE`?oZKAY!O{P_#4Gfclm-&$0ngH%;2WH^m^(6*fQ5kaoShZw+&-^rFiJ&%mxxiIz!Ni8x2mF6{wC`HQp%0Vw@x;aSR%9>Dgd -z;B`GCYYy2eKcEvstB6!Rs)!0or=ZeaE~tf}ZG08)a6~XL+hXf%62*jbDuZ!MiNhfy -z)*+P=JlVXJ_&!Y{ekl_L_a~Yyr5Xjk#$>`1^gDV~E&DRp?&HAl -zXMaSoYZ-Z48_bt_Maxa*3zXVJjg}2 -zBJ%x;iOj&4yi$eXzn5?xSiZ_RhsE${K?LIQgf?`ML9?em! -ztCUp}qSL%B6Jo4abkbmtPW*5kvGYR@bo*I#yw+{FAn5;{kFJ)7fc|sH%3Y@L2$djO4>UKo%jiubi@(0SP0ZpH%nq9*Bnk<)06ECiW -zZG}9}O4x=YtKKQepTR;KTHCDMT+PxlhawUrbxnDpo?I0!|&6+4dyUWs1OCZN@{X1V*p3ou&D;Z5eoe^tZY$Z^b2Fw{>W~)S2KUIf -z!TpGCf%mu&`dOcPh|!{_^RVb9qvM{_VDb#w>D>IJU&N}+qW{<6F8Tj5xXG9J4sGz$ -z&zqs7-i!fweU#sPa>5Ov6Np1ld-fG&;d{A!e}A!jBSXY!duoFib&3P4q5JlgoHy+X -z-q=ugU%}bG>;0MY?a&df(f1g3f^Qp-2s6_97kSnK&$jGC4-Jf~RF{m{s?8{H04JL- -z5Y=s(ZpwmQInS-#MZzj@`&c?nWiXvGpHyWct=i)aicW}=6d8?d2QOj^h-X5C#FL2f -zOvqvHfF@=uB?_8&P?)(5X6CP4I`$~l?r4yxN!o?u%Qfb3+JxSrAIp3EU2J}muuls0 -z-yolCTT^ekN%a8SQHSBB;ytS9>y`kYmG8}XK6pS3FP6dod@c95SoO(;TvUGK%^mON -z9qg!X)ddn>*ccb7B#8+BLH}OQ6ZuEoUKSWSZ9HM5c-nastg#gY@b>>8xT|-^S7{9~ -zcIc0`6hz2XD4_UYhmxO;(mC!B?tc1=POZT}YqsNoXO9N+Pw57C*<6V#n=qiXo5KNv -z-FDgVfHUSQI`DStHvxIGqR*9sAH@CG<{qTPg+?07+ZPoub!Cm(+!L7%cDDW@A -zo%R1FxKTjn{}SA<+buT#65Ow4*2Ok&fE3mRFJ;=+#x_zhz`Zdh0je`3G$@(!DBs(Y -zi>iGS`UTmioAxj0Lg!ysj;G17O2WI9AfCD`-xJ>f8C*8tUW;20xfs)bQ+z#Qm -zDHWns*g>PDYfSuuVAbeVol>R6DTyHza`unmp>U7~AE~`=co>?1`x>2Q#L{&fM*Osq -zooBYp_5hV<)eOdq4NryzS+P-fxYSa8L4se+Y2^)#zbW(~JET!boXl#xD$#4S_8phY -zmrw@5Zqt*flR)@CS|)21BuZ$^aJjtzYy0Hz-e!Q_`nZG352LH06`k_ViD&tbY=GCm -zxeUvX3{O-;$Z|J{|CCPwu4$CtaTf -zKR&>vj*1+KE%ZPefdbj{E%HO~WBZvE>%rjzo1UJQiYvCcB)@ -z7awq|R#?01rDeb~5flYh+crURJSszLLq<`Wk42>d1(*uHk{dyoI5mYCaonm(?T=uG -zL2h0m&5}B`l9lxGtBr@k03bfwiuYFgT_Zsz`%ufbXz>ZyakFdhTgWK^>Nd>|8QAs3 -zq6#Ta;L1Ic%O{8JAhVNnHq%MDihO^wm9ck3($9rJX?XBlt`M^@!%%WGO02Gxhc$14 -zKw!D5{yzk_Rk3H~y6nTcQGwmqI4S9&zqTl!MjQQsvTPYd$AFputJ{Jo|M7|p6qh5{ -zG%u9EgQhCW()un`R(#pAc}nuUYfm`>87UUn%KYcC_qmQ5Vg>ivr#>YhD!74%QhZzE -zVms#v_&Zo9jN4qJ&3c~#STyLzEz>pdMQ8VHFEx=yFK4{{DkRy>O68Y8vPXzM;T&Ii -zItHz5SnR@n`Z0D+U3Z97PJ2B?@G8+cFEa32X&P)Y`PIf4cA{-LjXbZo6aZWw%eqaG -z@%Rl-5o!VofR+r0-tMv+(YzE~e%~lR;awtjk4a}(CHjeg_P$m%P^Vim0NpPKilc`C -z%%(e~XY8>r-q;qu6{#ATR?&S*=|iQI9DC(`jO-B`ZGG};8mY&Z3A4+<0(p$ -zl;1i0>j_@DX3MB~u&rnc$>_(_d#^^9s`3=f$u!mOxs2~=)?)NN;fRM#p8MxqubYmK -zvRydvgUgvW*vxv{fi$R=71^veIx@)YS$yCi-dYh)1CPXTYHNDN4EQexRj?9xDDm%< -zg7Tb51lURL`VPk`$BuBRXeA8Y(R_>bkbP5y|%`cKPD3{q23bP6TIz(3PNLw_g*#JxE* -zubNuj`d!e(gS&_RZJh!6vd>MlH6*@9LtgRcasV4WV${2}7WZ>8YH?xUG(G{a0)V6%jy)H+q|QY%kM*M45N -z$DRJ_#z75(G)~xm+>QeiXPSl4S3tfVnv!CI2jn#A-b -zblcztfG`p;YJ_yumU=7aq7NdBVxeHcK0Gaz0wVowaBKfHxMd-vbwhUe5Se44wNeFH -ziVgM=v;Q%;1LOuwhlE*tFpRRvZj#O&MPCV*75U1FbZ>i@bd|EXk);%ckS -z(nmAaJ#~(e-W4>6a`(ur?qt;kS4}1|mKYc~DM)H3G9oe=<@1GX)0Bx-!co?v%eJX& -zaD$+9NASZkHUL^JCXKey9#H7z&Z8YS{>KCeIyx{d>^$5}X+AG@Mo{9{^@^_hM%OJ+f -z#I6z15wZ_~NB063mL!O*yv_ragcCx5ODsr~^BGT(dpHg2ffdr~Nn-Nl7A0Y-L@@>) -zkoXW}X+`z%Ew9_WseOiDTE@X^+PzW>!?t5D0flCg`pLX=Oe6-P3|h73Tluw+Q^8kk -z7F23Eagq2iJZ|!sU@tb?%7F;!L>$Pu*wq{Yn9ff5?>PJ!hDdt%fs38g7RAf1yn;o4 -zMzNVDVAqYj>}7eHWAxr726IQ>IX0MWy!Cm^b#tGS40=3G##LLy=b$8K{IQjW$kF=L -z6v&3gN91F*hhUUJ@SlbrwO;LJam2;5T> -zVUH7S2Ds&0vWzt`8KKvRKE}-p2xb&)GfGDK -z&x$^Ey*kgWnZDe=26qMOZ1Yd)?}gl?XncDfeuqw$z%cVsG~L%05%WC7`?JA} -zmT^M1>o%thuPl2aZ7M+AO|e^sLYm`1oxm+mu}3(5L*NGmeqUS -zXs9^DnVXQgZM8B9yMJ{#aZgaZrt0;f*e<|j&8T5|237th%D)CT9}0N)KL$54t`iuW -z%G|fXec%^B_AAfO?-T1)R?Kt -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 -zi)6Yq%CVKgZ7Q&Liusw5 -z?pjAjWsU3@)XHLB-oKmSR&y%t!s_MV1HF*uk6D!HJ^T#uRB}}QkYQ)-`uGrNSiA>J -z%d)_yq^iN>O1Te#1iQg0kDSs^BeK!%c}^7aiKZSk=HK4l_dL)Ul*^ein$TZnp&gY< -z2+Zadc~MF2gdM9dU_*w~H+gBkYlb%|b>}>i9z@&2buO20!vpAB{x!I9{u!1HKBj)H0kzp^?QW&PGj!i=VhptBPzYT7#X4;jAvY>N{ -z(f~<>ap9bQMa!-#{mw*;HAHVyi4WN$M#fXB*)vzMCTwO76?mDg=7gKO5GoAFgt -zgiC@k<+^dKZT*6W1}A -z`=hZ{;|Y1v*K)wguLYq=%j*T-to -z<0&m+*Hxs`)5ey$ViR$Z;>Q}qDz+voMear=amRr)eqvxM^+C^8mThUvAkPDJW;b`2 -z{L@tL%~)5vSz_O*jJz+ln*3pJkL{lJ_!f7u(N+Qyp#^qREQIFJ@t36UBr;oIDud0}>=k29SP$;m;DT7W&4WFMmF%j00d6F-cnb@-$tEK@c%m}emT)Y(ai=ZhF -zP_-X6N>_oxY6nF7m?{kHh|&bqFOVHpCm()KzGz_XH%`;g>f_erXi7bD*!{@BJyrL| -zSeRS?;%sa?V6Utw158f(c_R_OYH(x3P$Ms9y1HXH8JxT-C`rReGj|({GvdRaBI3i( -zUoRZmck*M6{#fgi6y``;~;11H;DKlMsjGrlQGMIUEUE% -z8*$Uv50Wj|5Tg;Y@l149Ie<3@j)az;wtzJAYA?;Kh7us_z`{Y5>5p3uCb}*XAjiDF -zxBut`zzjyBT!DbW@(b|!IU5L8@HNzpf1X3}7THdS`vBbToGV2?wX|cxq`^7Oeff3&$Xl~42+UeVgpLaOj%%&3V44J*5Kd;XUqY(qaWBt -z3|DTw0Cn5Ne930N-;z(H@le-p)u6m+$=?2~p)^xV8boc4e4mgG^o&2yeSppS`PPiv -z_`7PV_G^dzx2g^qS7o~MJd(i7nSj^e#dF00=NeY -z+@O<0fV6aMgh*U`sAm9V4SW#(J!6 -zI1ymLnGO3o2==SEClgDDzWH{r=Uzwk>Vqjbzf_lY@6?S}vwMOZ8i98vrf$s;;Z(ez -zkO?~0ydJ&ul`*32C#of3N}LbbJ6rR6WFVoYH>d%^Ouq49f0&Qaw41jFCaOs_NfBp& -z2}4Pp*94>LRg!pSQtwI5%UMWwIuc7rM>B${k+RcCX{+@>pD?xIcw`x)5*rc;xZ<%D -zWaFEYS7=UNtPs`l7t~LZB$Pb>7XVey442b9le;qnc+Vcg_eof#FB8{e!rNLT!V2EO -z-l9MV{EY#;P_Y}li4Pz;Wr$qfBUCpZE>r?i*MhC&y}bs3c;X??(8CJ~J6USnHz~Ec -zJkS3;D&P&=olJOF8R)x+w7DOw!9N`RdUoaFf2tWC1iy9cGwSN+ki~Ru`p4iNG?(PJ -zYNJ%$7czsrLfVY#y3$|e4<$$4#3>QbBNE^3V#bGLJLlft=f^34_pHV0YN~>g!<#@Y -z6=`kUX^>!h@r*+G*^0U|r-@^ecZBpyq6;=jEw-wU9<^_f&`jz67r$IJSVst2FQy%C -z@b!7Ab!YyTN-XgjYh0mP?#D?}Bt3{jd9atcY~?YoN96+bDXc^QnA^xOCc7+-;udV$ -zb$WpO%5#$otgJ{}MO~69gmj${xXs~vZN&}<9?x&8A$aAG!QbK%d+x*UjGeAXC?|4z -zD3}vl{9YOv8ZQfpo{94@M%N3=B^E&}zL4syrXvC)SHNdr3fXfwz2aXM@7Mtm?HQ2`Wc#d^FkCF?Y?gEKo#TWrv{2sB_I&9%gE8`&g- -z7L;57t5XkuTu!R&fhc};{^Z#4%xHM|)ST%>PJ>g{ct86@%d{+*)0yUytz@F7dK(XF -z(|gS6R`%L>mJuL)y>yw_>h7VwxbDdadCqyaL1Xvs`s10g?SqQ;^=YBAtJCfL-3j!_ -zYwcHAd04YF-jd?kvv9h8-s5HX=koXpk7@w%xMf?<-{t*@W1(cr`>R=K*+z1$<(gM! -zyW8N)TkG?Edc0-1WgBn5#i`x<-Q(ry^}MA=r+a(*``h#B#nsJyceGz&M#lQ^<>WDD -z_p!YFa~Yo1N6E|Z)4vl~;AtBBf`?&`xC8zN -z;U?6Pzwi0!nENx;_;qq1CF%-5+dhwk}G1!?; -z^TT&K>zF}V+Gwqw5Yl!P)jO=x`8so)p_vKd;7qzLz&Locm&y#}KGV#pneVFX$C#|q84 -zA2`nfQNRlfvhj~z(4eRz&d1}L?uQi*&UJ(WGL>1k5tT~Sihj{ZPPMWCEcx1)eJ(LN6;1Mc<3{Mzn0|^VN>mifdFxe`I<4|HwEY -zH4MfgzO83-8$fHAG}T$JWL(1*o`txH$0D||5wRbhMZ%Q>AWcrCt)_N@rAbQ=Xz1#B -zv~nVW1M)3kV2tZ8l^sPh7tLsnC}HE6p=BQ_I`y5H*o@B||} -z5sI_XH5#zZ*w;VEw)&Bq1_6p>XPm66K(=EsZY~lJOB;97li-AWK{R=k9~ON -z#nZ7hYP?SL-w5}~74!*djw-=2NdEp$HJjBv({_ya?yE9!r9CDcgCC{TmS|z5804g$ -zDu=wmF*u!iB9<9-EU6HdnWP{f567i5?k;e{rEBJGXb_0?xcN#vu4ZhfHcEOf;f0THi5eFZ-JXNRzMYc8QJY0EqGM$C=T#?``n -zN~h+>+QyAlg0cFCFL`OvZY@xcTWNnulQCeXXNIs%$P$-%VLOH12|L^>*n3_cra#i8 -zKQJ#9`*>!v_RZCj55w9gejLBse`(mqw6uulN+0`*mmgj#R9wD&(WK5k`0y6T@OKb; -zVXM|&_H6EZcDF-q^R)eO{*<(& -zwc(%z7|_=nG5+=s!u{L;yxVM$Ljbsu^x~|K@{MrcJiK3v`Tj+?F^S~zXRwXNh``YC -z{WaX%zZ&4+jiluTA7VsT<-QT_yln35Z-m=vE^-#k0cl_$69VQRggcyE=O2U{CN8R{ -z{6zy%`5WP$@3`l~vBiu&B?s=O0gbWdpg8Iiag*}NfSPAbt<2}VuCwGw*9mZ#? -zlL)8JHS~vz^d4WGQvV>_Pm(4z*K^B0=Q-H6ZfGH|>wlic`E{pt5r#P1le{ySUevm8jY*6ZAaYmwYmKon`hZ -z{_N=@0Jj=~CE|(zwO1G4e2dJih&sDnb=7dmx=(nq%IONqs7eRbnRaimz=APh=Ip>y`H~# -z;GwGNU3V9pKNWzG})brscRmcfveh)BRx2LBO(u(X|c+{=CivUANaF -z6ZduZ<-Rd8ufqPcF!gkj$tJGd=BpaJ9R#@FyC#&DET=_qSi!--+&kHenMY_??dTe? -zptg{1P4}gDM9kv!YsY9zz?@T_m2^5yBLOnmA7=$Cg)2AD4Z0r7ebaCq$U5oQ;#=2X -zb#Il8eupxq5oLYI&++vP!yZpc>ssyb<83dR*P{bJ7=*D#nx-HNY#!@v^v2$yGJ5B{%I7@M`9n`vnAgy*a<0^QyDJBV1U|I{1frC} -z7~ODP*zLHOcsEW{9$xv9l3$|`#KniaXX-L}tvh|XsePE=y}#%EMmU)722s7Atwmof -z$Z0CNYsxpR7S;T^M0`~mZf70@*QKaLCu}etk(M?y-UjT7Sd9SXR2(}~W>08#_Df9# -z3GeX^OtI90#;9@#NCxHHit%oH5S;dja3Kl3DvBiy<5PSrRq6fVqj3#MnD{y3Qp=Bp -zS6+R4?oZ4O-g)bE%6V_9Q#y5Qw1X(@5^2nrgDwgz0nG1DmLG -zQVife^7ahOE{3wyl)B)_D@1^`)}FS)1#(I5!MLb7khV{j)8ML9=I2kR$JY)tN~X%m -zyk?rT7!i~={1{L!J>!Ob=ED{}xFRor{DdFLj~`NaY!2-XjRVs#nxdk26?U`g=|brZ>te-8`rW@38md6^L?{j}@CLftbx!hS!p|SYu5>Jai=dc7T-)JQgel0XP%G -zt>k7t(W{R7(cZB;Kd_L%_a2P7;=LU(f0=uY-}wnrS?xnLPalzwCE -zYk?|{DobTpq@A(Uk+2pc+#sr9u2LSL6 -zPEOYaAdPdF?Bz$O)n`^b(cyT44B%=~YBay(;GGexmi~Dm$m}b)jSr;?c^c)JQW0o* -zvH%1>gU%DDFPx(5l{@e}2m2Xb)U9XcuBo@KjP%0VCtp?J2fO7p@AsHD0aGfGVc2hW -z%1}_eh3eyn?s#Qf9+WYDw<|%am&OdOP{k&o!C1 -z^Q{h*lc%*nCx*gR;jhAN#e48q;TFQ6`Bu1l@I>uAeZCd$*t@^2@!+mNST< -zwp~Sk&g=aj%JA{{H6HHP*M~w5RrPLdi=K}gX;p`9Qb}yC`fi;kaiZ;aOMua1=N3tr -z43oaEvo|BPg{PNwx(km=_U4|ulrJZ++dXbB*CdeF6k{aczOWFwc4QYw;!mFD5S{gzS69(~UW -zZYZx^3lCN8tuYlYxnhAE?jr)aA0_XP9hpJdUe)Pcj!9E@c+Vy`bJ4B1$gR7=-k*j4 -z4_)^Z9f-EAi#oP#+p5^MlZtKIw(X>1+qRulY}-l2ys0_YUTxoV+Ib((qqQ;m-@hM1 -zO=FQUxQINO+Vb>y5kXp`^cFX|FG9+%H}GA(0Nw?*+A}Gu-mB>yNw~@}j@cjIWb&fq -zE)tBf5)#Dn)dFarN@#fZ_~S+Z>679*!lL1wd81_naE-$@hlhNw(EsY-lK1wmB?kZ& -z@=`{+=ju3mc70e8CU&9>5JszK8e+7`^&?jQtua -z*!{%y6YY7N{#_^^tkVqgO+>ebK;Ndlj|o2C;TAYlC9PBQ1K}ftE2!dG!LO(Jd3jdq -z&L#6T%pB@}Dco{Tw*R-nedj&>%bB%_cg8n+l(w7xOSocr43-3&$h!K?spgj&Oi*Ac -zc+PVD2}O_3olBpQ;IT{{z>-@7iB$WjrKRar1|!J4@2Wul>$7p)BsH(sk}(v+Jlz&z^NWSzM0=(>p`rCgz&yCrz-uKrPJojk+}*i -z=7R5DiR)*XdXCX#xIq%;V{Z{z2sw83zLV!V-EHkBagCYidPiXdjhKDzj8*2=jxk|2 -z7cb`Vcqza{2Wb*)18T7|j^$nwr`?J>jK_Tl{a~J}@-9{ik{;xFy$5*}{R!*2CwYO& -zd_}NundNOrYA<>MZW3z_JJjUL^WGb38!WBWp2sTcDZukdO7@Tmx?f!*WgKCzwArw3 -zpx$AyX03k^wGxD>m`A46Dl{FDc#p34(4~hjK!x97!Q6Zksp^Z}wD>B%0OLfq`T7s5E -z47`G#Xqk`N<=a72;_fJc44L%6G^npK^&{AoT`3R_VP};4PEywTiZbSd*J0azUhq8| -zBy|chSO -zdrq}loFiHzZ%V~RE_wowtffSk8xN`jl4$-dBrmvs0#5?T7PiTVV?`oE+=fF+vaADr -zr0ifR{++1;MSh@V{CJN_UBU;}&7^vw1w%Of@J -z+|JzNME*om-wHSHpte({g5|fu9fT?}>pW5vCS(~A*OcIVGj(VCR^S$+fl5PY_ADLF -zozlxi*xGf$OF4eAROLsi`HFYuy=%b^7QGCt?6Di_rwKQU@j_08zS+IF6!^z7GNg4+ -zD)$JnZ2ri$`fXW?9#L2lX-f11QWyweRi8J>fl?9$c-m-kM8I@R><(eakYHKvU_g%i -zUOveKQ|(G9W|+|--@I`js28bJ%<&vO(wFXQ=L461>j9k~)82T_Y`eePgUO3_ -zyFa*sYXOM&d<^>OT#n<4GQ+Pmt8%=!x)S#z08To}6{Cb<9Y`p)*hoaG;jGRpW>W?Q -z_Y^iBk6*G2iS(*00xU<(#P{R@L)nxPjJ;NRe9Re%Ile!8sI8exNjSw4%@H5?;p!n7 -z6mVvY!eTmn$AvuYQ{o8e94E|nDSNjN2X#Ij%4r2#$&vHmK16hCvjhGj+-mMBFQY&R -zHy33Vsql-9%cU?PQApniH#eFS#Pi64uhx;=mrjD=0)mgG+n=tBHXm-yhn-cVRC@G) -zn3Na(TTS&#W^iL4dH=XynU2R!Nc;|5eclDEyb@M>;AtZd;M3>e(A=mv11Y}^EcN7n -zm;4vu{_~A+PXxq$BiufCrRQ5Kqd0&U_UE?fB63#;7$fdQ&Y&z54&A?LzWmg}tPUeC -zNVq}K01l;Jn%}1HfGsVh+An`Iz~a|XR*(@|! -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 -zWs3L0B7k6r2fxZJ+pF0;29p -z{2>J?$3s3m?R>hK8xI90H=+a$f+L99GQp@jtv`;@NTD04Gis+!J3?W{>PeKKi)U@F -z0QSPFa&hYj=}>j19VaFiyo8PYRo9h_0M~k7B>+8)(_uX3rqd=cgRUlN@;*>$KqcPJ -z#?T}CS+xol0MKq{JI<7OQ1T8F)9x6Z7_uE(oj@J_o0_Vw{J`qo`x~YeSjmeAHkqJ) -z)n0r#31$Me8g=0&5@`zRCugkBTo)K?M4+vu@cAkm7mMXZI&d-(SYA;9ax4gJ7=#K1 -zQtJqD_Za0jxec}YO>R5(L4T9mK$ZU`x1WUmOKvMf$tiL!TCmCdCAUw3KK~)N(-8iW -z+cAI1?FT1KkDo)|HeDydq_Pm1~Mi|H^cQgQrM!Hsg -z*;2~Vlc`)r=Rf=$RInfw(Qrw0y2-HpZq#h|Rqvv-vo -z7zR$N!SrmasT&ZkA^ChhtkcZN2{gWzD!K?)tix_wvx7TT@hIU6x!t9dPz0@p0`XBI -zmU)2Q!PiCbpd{Y)sR9Q*PTfD2@BF+7j|l -zzZ>%=qf5*oX3EkU+l2T$T%`dMSbEtn_03`<M*au)JQxoWHVpCFxryjD2R1@SxMHhK+ -ziEL#A-nln2D@&mP6r`jdvH}4Q>MS13kyhrd+qV-EbiT3CoS8|hsKogcWDw2(dL3U!M?=>va=VOgkcI9 -z*7dmWWM*;T7Z$2xJvrmc7X5@6rA?CIJ2sJjNw(XwhT-%3)Bu{ML^B>{UidMQIk;Pl -zJoXyk-{_>I@}s1ooq05sA0BlS38$;^FwhOO1AhbM>}RRK7~{`d6s~=Q(m6~)DS)$< -zk_K9&xv3t2L=z_>tyEeKMjxyaS8p;m!2m`L&7mrQ< -z=qsE^6zZ;b70m$gZ0}6QaDIurtYoAS`LSOFpQNVMYP|MtNb;x+7D@QdVCynO;pRgk -zQYUxA@%&Kv4W*`6Jd#-(mQ<9kRa3xQ>8)jq3D>w>%MUdV8YMmmhUd$eyl%@4PalKz -zQcfTnxto|~tOxwTr#QX*b-{qJ@`}8Mxg`mO(}qU}qx|uGYwuE=afw8Bnoy$cv(__~ -zV5y*9T>VcQ>wgSwpqX3)9p{35L^Qfoa?KVpC}i}InfKn?d?vZ{gwA}ZN4PY6xq$g -zGDg@2I)|Sv%|TkNMxVZ<2Bhcf^gbh1A7j=oS*jd{wO}6UblvpG_=01HfY=>`{Psf$ -z7xa;f<4sU@_`wgAQjeEaf}-FMI_Zj= -z_>zJ*Y{c);$~LUuc%tZ~vqm!)tc&c(6EXi$S6y$+v<35Iel?{Ki?f*5SG=%1 -z5Q4s11@7LHEDt1zt%1#-sQr_xDRiG?{6w%VY*740k6l*ollfYW*??f5XL*<-*C*+YYZz -zePQOKTgzv51KOYo`Q+U3{?J4ZDqHW|_?FOI*3Qbv?QGvP)4J#i8&hhcnMl8Z6iAZn -zV#o86Wi9!4+DGIv1J@x>&Xhr3aR@WA%SuEaCrbf6vyRU@M}_nJ^PO89vR(O#rp_~g -z-Rg2b-MzvLD(t6INpNgUjMKxFlHDZdYBj_xs!5f5h0ijrVt{mWG8Yr{u65yCI}%A#Ild2K~y^-aexzXQ?b>sPO^I&nNF%J -znrdyxCR0$R&de_n5lH6(nl>pHyY7sYMwmEo(6xDHdAh~hvpj>tL-;*^`7S-yDGCO* -z-or$X8Q3MaF@jUu%Z_^-2cjz7#TTb?vO9UaC-$tbUZ9PAG=bb-*tpa}jijt?S2V+EjykB1kz3$A`Z#+}l -z9z|0)VNW+`0 -z@Fzb{a8+OwNm4%+e(O+I6-)I)cnJX-RlLJF1IL+$^D;%aQygcng8tjJy2XS`AJVNX -z?xTg;LA_bEfgk`Dgv|3S2ygztkNOfEpnaP9G&Q2SeXDV6R#OcBRI7Dt%jixJ!aZ^zX6Hy@i24Qk^r1WsS2D%Az_Ua?Y9J% -zP7^YWMmf@VK&KE%Br&^!Smp`Vr{HAu%ER<@>Dq?ot -zpu(8%?y1K;$GIh6K(eHfphgw$OuqW~1&FN28RVVW&#fHUNK4ciV12u;H64!;@fNFs -zmx+ap8V3PHDgNiPQ?4b$c>PVT+r71g$M*d?XXwi0i-NgOGgHRzgWFe|Tt(>a?3TZW -z2VLTTe|5h%7R4N*V7CIhdsq%cG;kjuU5rdYJ}iXhvuwFpq(vl{=YE8SD|-`MTow4` -zm@i*1U)S_puy!i?%R -z#JWmezkHNG&qZq*jWf&WqDgXx*h;0_mWl8geerEVV&?c|wBQyk1WAsj4%2x^srZSq -zl!ir;_VtEZZDWnlIweS=F?vA?uyDTmQVJ$6tB7W`AXL>kq5~|E=}J1D=uDJUlm&tt -zQ9PumZRkTPy16nbb^;bsd>>WCUievtPw8oFW@>;e5{x7mQ|JLiGncfg{SH`g&wTCo -zjYp9in`AT`;cYuAHt_u35n9#{h20%gO(Z_~*g08aPyi?279_LEyqt?H9wWiIJ!C48 -zqf%0TV_Q+ywTN(@B^#sEXqTY39(zXd-Knj7ktXr_AjxFn4$KJ`fltdvd4WkcZ2V@Y -zpOCIO-D76;=0W$3yR*n6{Jm&L1{b*sCAfK+um=+Z>I@*nvDHqkCr9?5a84s0N~atp -z2T1!XBYC{6@IRcR#1t%s)8%f;;H!Tbz8S0)_-~Z#Zv*27aftS5m;w2{qf`ZR2ID|% -zAIwy$sg}~@qgOvG6Je^Cw^!kaN&0XfwDQCEcV;d*T5mT%lE>oH2vj%Q<3|}-3Q^Es -zuSpU^^h^QXC+gGYPS{Xj9TfmK0cUM1b|a`1yB%b%5hEmRZL$c;eTJc;U8^qc=Belx++8 -zfgaL(2&MJv5!DpyVKL~VK6w|lUQ7Ra)>%T|6}#5(24umd=~<_UU4d0+4AcHGpHDqo -zo@O35STbaR*{F-O!KV=|cM+azjAEI4$7VO>tO?5G&Fq)MNBz+wCsH3QksuVgZBIo3 -zsfWj}|AqBQY@GmoTe%mdMzv=(XwR{P>$XYB2M6lzD?<{6?L45r -zioF@{D^Jk=*+pok*CNm31>bCtMa3)rtnqfvp7u{I27e-pD`VoN1d$=gG;ekMVP9JF -zQvcw|LkXjK(+(qG4Xpsb=esNbeZT-g@8~rXNVnyi!yxo}7&{EdYf9q53KY;>FheO% -zM;Y8Qh?mSBBU9@TP`b@n;2EO<0#k;8Ew(3O=*Bbz?H{3lfzMlPIlvO~ea$qKhKC=$B!2a;gg9@AK{0x;uZt+6G<`#|Q(gV_Y;KJ=`9(G2x$92V&zq -z!5|?v8keP3nkQfn%77v=oe&?d!L$wKgaXlj&U|V)#RQHP$Y+bfdY|=2MGI@wE^Y -zsP*TLrIS8ElDr$#qH{*+YMksj-=UzeTCPQ~9;<=+)M>=CU}gfGR5f%uW2@E1_Sws% -z?Jnv->n4%>!8B1@CqmX&+~Tj8HgN=#3426TWkh$JqeMqe#~&k$w@+@iKF-~1Vk;3$ -zui>L00%paw!HYYhnDcXuBMMt)En;C!0egc4DzWHKyMP`7%A%0QhH=s?L$}ywvzW5=EPb -zh;S%~gOBu1XDm#$-!1JH3sQ;NuW(Yzr8oMZULE7Z;3GI!`ysA;l)%NX{D(4Xffo@ZhDUtyMpX(+oWySL;(y`gy04qDC -z@ZM&CA3JzLiwkI= -z3l8~qZzkaqpjxx@Y(*ov=NyUBga165Zj$VAFH>5(>!qf}HslrfS6(wia{gI})QUJO -zHy4jg1_Ce@dZI9bIC5eEGvd5fo!lM50fYM9z>%%LXDu!2=GT;Hf&oBsww36i+5K6B -zOyQwMaMASXr~Pav!as*w6wrB`1=6qcg;g0;h|q~=B(Fyq(?)(H>1?KxY!%_|b}eK7 -zC&3600yW{zbMe&o&x47S1NB7xN=LU~`wT4B*icg_xOccTlT=hN9RQ?3sm1*=^#(B! -zb4A;9ljGyo#TAyHut^l&6|thwNLB`UqM383(_|WdP_412x4C(@JER5@Bx1O3+DLtwm+a04gWx -zeCZ+`ZON^V3W=;VD@<+4+sq&Dcj2JNKiGLs7n=zqdC>L(_H)u>>H*+iTOHf -zayd+Pw43FpM)=x4!=k_qK~{j*;?ls{zhk+CKaTzQ1UZ>8A?A^3*u?lih*olIoev>BDHj-?oXU?v0(pGRg7 -zg;cT3U486R62&4@`0-a*B4)Q{j`m4%_0j-<T}5>XKqu$lV22C|+CAy&ox0 -z12XTi^tND%Yq08^bWZX{M*om4D+4!n$*}ZESMUrk>@1GBISR64eZnHH^Lc+?Sfx;w -z9yrL#(5ua=#%*+ghR>MMr@5_*(wGqva5>}N2mWeaIg6v>rQ#_{jyxEr2oXvcu+p(Y -zDF?xe`opckNC6v%7n@y>p~RhvP6g}=R#7y*GW_loQ=Ar?un|&Bn~gkY;A9|^SHNA6 -z+Y^7#)?o0>ZWC>}G@03UkSlU$|4FKAtCxlbsRN_gO#91%BU -zsUuN&jO2@@xPdLT1}L@*YN5AFk1l?;=%u|{aNHM;ah7N`1j#+*a(nWZEh?>#+R)OY -zxy4gE4=dCJtf{)>B!wJUVX&tMP_z8N$m4J5qoUjdHz|(UL|+!~XaL}h*F?&zs;AfF -zwHe7}tzR&MRjcF+Tu`t0y<&M6gyW$#0ve}3rHP}R5)bh8(v97e3a(@gGD3>eWLXA8 -zEf!q}gNr9Wqx?06-(sD~(j*y{`5}B*)pGu;(rY~OO04oZ49q730y=T9X7sGh27Q1? -z!&LN=Vvu!jl~kyCKDM8r35cZZ4B}j4@}ZQA -zQ87Q_p|mS&)6_+3j?6VvvP_8`l$HpDyh?~aw-mE9$YwGVE3xLbRJJmbqiR{7Vvngq -zrpO0V{V4GnFE35N?Jv9SW91;;Y(ZyYUIowuy_4pjI#=Q#i+u9qK!#$r^-yQ$RCZNa -z)fkg(h#(h`fxI$;jRDhPqD=CfEOv33+ -zu1hyB_M)(FI7be(B+K^bI72W>^E(NsI9U920tU)luhFSQGB`*YKy -z0HwIl>6tq6>jIs|l5DKU1d{@~&YvAP{yz?hTWyR*ujw-vQq>qcbLchH3Nbsps7rN3 -zNiBg=;+$mrqY!`Vlf9|zVFQ3a)op0mORj2-z{8MIYp$FlTNe~1?YUaMWCigHBRb(E -z-+3LezSV6t?ZjpQS`_xb>bCN~>bBuckt58-a$DNJ -z>NYEfz`yGD{hEK>pa}mSFqxD3Sa=kjd3vE#jj}Ve=}K4K@AiU71w}`Ub)8hXVu>+qb%{?#%P8Zhwg=tkz`x -zRk!h|8~#qi8P0jwQ+p7YfFy;|Br{wH-HUMQB -z*7B9eqVnEUR4NY8ZW()1GqkD=UT7d5F`-~%+74ZSi#6~q$fdRWD`&4D6_vro6mh|i -zf`LS?5&a*jBvi}rj+FBpSqAgUntCr{flUJjFHw2G{B7iyIxe(XxDSiQ?16#_kVa6g -zfgh653GRR>hE`OtbKXKNZl6{2F84?QGzd$H`#B7+dw|9jF4I>u*f&qBmu(5b5(3od -z0_$G>3vQOBNXc>Z0C)6L^MbiYjwrUg4Zgb=7zmfs8ua3vEJ#}!$;Oos#c5ldtmE@h -zfJE*A+7xTgv>^ecgm+9;Z=QAW;4Fol7r{UGXg`&$M#v@0s-CN+m@t}Qd?YygbI@cx -zeawL*OXvN9xgBMccFUxkpdUxKFilf{J1*IOK$235@p_;H*;9OB26F*+4 -zf2?N -z=;DU_GMOpu7gR#9@>0m>&$n6nu7H~EF>C{HYmY7CmykgOK&L9N$Ebd_1-BG`hObU1 -z5tq#8m+nvMh;xF)L%v~?hsS+dMg^0b*)%1GB)!ugsogqew0@Pb$6Yg-jPIyn$Xc78 -zGyNWgN~vBY&0$Z3!m`*ua2ws}XhaAkb=`wP`1>rf$_I|BsSGRx2#7pt+&>$wPF0q` -z!g+CX0&em;|FqAQIna0{>k-J}D-q$xX-6+5R}lj4hzJb6zpqFU(u3~B=?mFmcNEL* -z&*x?^sTqcnw6g(M@E_O`{LPYXi$n|NK**gW4LheUM+NXg6hK4e_3R>Azb!zrk9uqL -zl6*{X(!N9?r6hT|KXdgKD%l3P6cbIC3-#`(&7s&=B$eIijf+Z`()s%miw)UGv -za^OK-dSZE&9@lhQ(jXYzW1?aAV5+BjodVD)Q@(!kk5kya3p#zTr?E;t?CR|lzyoN7 -z$37>6-zTr6yi!qP(L_;|UmNP4GfK%>ZD1HqFqrZ0GkbUu~E|k8_Db+!mvGN#J;4C5`0i+q5eHQicNP -zh(b%Qh)?`XWitwo8O&oisKi#lX%9w&8cZ3KVSSqAU_TH?9(eGlD?)Cv*coz4yqz$@ -zMDhD0@IuB-GC>(G@7r{Q*)A+XCeEX@^D|2`CCOXurg?=L(0gln{MOAL)1fZvI4$J^ -zl#NCElS2%dFUjZ6rk37F2Mno4WaVI -zv-^S8lCkX(7NryjHf)#G?@T>g%JeRi$(hSu!>BGba_~!??olQCB-*?TW}wouTzpm- -z4R9s;6CXiTVlx;es0COu{49>)xWlFsg2zD5Q>8J$6ge#T$jx`9CTS-ybWh(KT=nD2>ikRMLVsD^E* -z`;F2Ik)}&67Sf1saY&K~bfLz`aWsHFE2_?}-=CPqoT(e-z%nAc!U-w$N-E+9;R|~0 -zwAaJN#mti_cs}JGq+^eJ0dza)K}=Ke?_Pkm4+P6XmLbi||7epj?m7fZ?7 -zG~O6#E;U15Zxd0Dsw;}N`--iHmU?Du8?0xqQ97mfx5RdV2V-xJxw8CS|I-j+OSfQ5 -zGxyTVjX)-uDUBL_-T@< -za5rxiNO$Ta4~nF@rhLG&G}lI5S~BabjOr{6My`?(Us0C9O}8uk$IJ?z2#qi*9O4368C$MtoJe5>2c_an1eb(uFi7#91Ypel?HNamXF -zVn+(dUz48L#z7D+5!Ou1l#wK~b1{J}^SgJsn3DOygGpAc=}nZ+6KfO| -zTh-psKd!H^fAK+V4%KcmzhZLhkONV_c!*P5D>eFIy17hWVpFL(SO0)XYp<)zLepo~ -z{YjNp@rM$^W0z+;#F!c|FGZsIVu0>Y7p3C2bwUO?)1&NIhWNEXN!U%1o}y#IbU24C -zos#r#cG!)Dx|U|;dv2b#4|vr32Qlyl_hy;GTmm}W$7T);P>U`)m_ -z)8^C?mXBwoZjAvP>plo{GKljeh(DAMP`RNh{qUn_vnnut!DyIq)oDL0ei+l+73K%^ -z*gn}EU@DTVL)%rLkSBR}6z&a2%C*$0F@aV1rkv+L)#ION?diKEMzNd#1V2aBp{-_~ -z9Ri{;TuL5uAPdX2P<*dh3idE(+o{+iGm5VPo62+cZgI+qP||v2EM7ZS#BEwe~*ee7|B|*L=pfM?tHr -z#A`jsZ~AGeq8%Tz9vMaUSUcK^Wu~GPq(Rt&AyroU`t_V%XzU#m(-A6Ca^pnf800c! -zFZnzEB_*r$S7Y8`l_nRF)yK@z4WFpw5}&+w4obb@op}r@NZ+XX4`T_<;*reIQhKVR -zaanjC#ZnxOFu_JG^Ie1E0=8y|qdeEc+ND`n{6X`O2~Efg@kQm{HJ|a&ZfjJ~+&Unn -z%tZO2ZqHcb@UTAiS?G*V5QE+b$U7VOrkYVHyF~0?LOR6Ecw76Z#1M(HWQcK-LJj1Q -zB+F^&Z~VaJgTg0j`(J`WS*2ALLtjs|<)Ow`ETwuGcZwVAjB868)bSJGmX%Q4!-}+? -z)pOU*0tK)k3B?tIe6P(*V7ZiIMG3sM#C7eT6@MZYTbQI<0m`Q1a1dP?1E_AVJh -z(xdYC_!)Cc;rxbrM0*%l`@)iit@ARR9ttx$yr49#g(lAG0GX=x#;mpVi{7Zg!l1zP -zl^plw-0|WOw)Wc&I_k_2Wik>95fH0Rj2+*LsWvEn+d1Cz>RB=nEp13=m~TCba6to6 -zZ>spiAy~t4FH|x7jn*XU@{02HdA!@VTcMYeYs4DuRET_s -z*09Qen1szW7wOLKl44gRoY=fc|F7m5+?urKEQt;aKHn8RZc9+$XTNzlF5_s{`HbUv -ziPA_)qO#=^{KInb0>NFJo|BNr)^7$YWFW)3k=~+Gzv2{*FDqxovNDdd21(Fv<0w{ctr-V> -z$pB9-`~m=WrL%O4A7c`Gkb9`_)jJs;BzEkK(T)Uze_ -zh5Rh7n=HZzN1RdoC<8vM6Rrd=g`oU`09+7KgK$#W|&sVL>)jMm6i^sf`J(~ -z_Z-~(x%+D8RWm>~BHE7hAR(Q#pbUHl?&`7OA^I){#o7C5Lnvha8ZjyFfY3T1aOaLx#B77C+w9 -zeV)6N2p!otJUw!L9r1(N2&t9q9UEkS*NN~oolL)J?r653rE^58CAgW|p)Scv2r9xC -zi0|AXwN+-X%y1<~sXL=QN!4uMQwH~faK_;$OlXIg6V@8dEws@|j)_n~0Ot0GdAfJL -z*2~y5<%8}CB2xMa$5B?##TT)$b{5#SeVy^g#{0taRf{Zd{nge!kGTB>IL@-*C3?g -zjTrQ6(cVtwVRwdR+leCf*3gD7-SNCJQNAfIC}_tQDCJsC9>2Pq**()30))f~DVVM= -za*w`7i18&E@C{KPG4J;61FZz+y -zWX7RHS+N`^w!(N^_&KK-g#t^#ZE4#UyE=r-xvo8QjT6YEiemfvX71K0Q^+aiGf5Jx -z6QL<9JWKV(3h9x_wh_zT=fiO{GZ#DBuZi9oJ-6XEA_3T?5f0-haO$e9$=8wj_Lq~q -z5DclAD-rP7ST|1&-W{*O?fkk0vA5^2uwJV7h9OVvpGw+(!tnk6v5mQ;l_V+QynzE? -zh<>QY!w{Gx`@32A6c!9Fei((D@MEK@rcSHWBlLZ^Fzrno6V0P8ZBAyI90g#(t3H3u7{VhDlSV%7?x0yoLPse`>BCyNj!-cP%S@;Eu4!11W4 -z6B|j)x~&>9P<2*|b9Owg4&FaIa$n(di(#bUsTsE}K5@HEjTbhDst`-Ka9%Y?XIp|p -z0^6!%H~=rXziL-4ZnjEZ44EJdlyB1e?}<4m-|?m*`6!Y^<5N|e^lVFZESRSkUFCyDd@Isz4>NTrE3-wmMPl_+-6dsu -znKiy%c{XUGg3m6JKxlLxI|(4!g55k~-*3pO>`6cF1(|)<^_c}n_qr{OO;nN4_ZfAr -zI1?VCkU$XKoN~*%#1bG|JApf8&m;-Izqh@C(NUb$-*XgOG54WQNdGp#KW4-v)mazX -zGIQB!u)sq5sLXmI(0rf}EDIf-F$~;&1e|N_bt}l5OGj9}C8nGUi372dHO#X0?&c!T -z%t_G=RX3ociZMc5WOJs^f&?^9f*uyVt9$M4XhH3)xwwU&EIXR8woHU{E4zpoxB6wp -zUECyW>Z31^VbK8jV71kMILnex>@T_Zj=h -zgZqjnDsyX^dWtYVA{0St*D)0Mh(f|Mzs^L`S?fZw_obp`Dy3CwETi+UR7<;cYQ}{t -z+bf?~)4uou>22iwWZ%HL`aVmc!ONrUPXUhrg=3?7O#X|{@<_*w>BGZUvhZ5nN)BDa -z-8tFj_u^zXK+?a(Dtj#$iQp%>{Eu#?Q!zo`u2&Y@M!t~wh)Emv;1Y`^^1?+m+AWfl -zY{wi9NlDGy(#O1+d8x*a%F7qR1~ID#^DL59=8;K~Mb8{|E6qVWh-EKc2!g&@@T7Z$ -zSK)74>pL{0qBUr(bl~@UrTP)51z($_?AfDQ!oEWiT)p%@JYR1f -zpI>f<(i)=*b(W@H2hXVnuL-<1*EW{kRQhAyL1Pi1o{OBs!^*}!IxJz}rp}&`V&GQ= -z8b`FKN;ccG&moD|h!-s(#hHEL!rQm7*GahUm`PT3xe4h|mx|O)s+!n8d-81Kd#EZ$ -z5pOp&8^O~%Fp6pDeC?hzemkxA&e_o5wPw8Pgn}%o7<~&FFk&I1Z|ykT*CW -zl2DzuoLwoik4GPbJK$N`PK~D;>`z@j+z&*^8{!>+htP_kITYR5K04d)<>?8Uz*+`c -zn7)frmb|6BXTD2Qqa7l1=lJ09;`7`NuSD$U#hHw-^!U~{`7UDCNVHvIgYIvkW_C2k -z|9*-5=~!~ZGB8pit))r|Oh4blU^CZFiW9rK>JwXjBt39+h202^y+|fo?XI%vcyWf; -zSYXwNnXiw;9Y82DHGAb8({e^==pfE(8h~$%GX!=1pfK`NhvEM@ZnaLSG#?c)!FKVnaLyx=15U5rQhnN%Yw!ef2yxiN5D^^dx}i1tU_UfcPj -zZu|UEx1#{+_B^_{L(%A(=zj5Eb(?u%;z{IzTBVde}bHaFgdT%TiFmo-$QtXED3jx)&nL*Bv5bkBZU@AM31< -z&axA>{G+bYLKWL0GWRE#^DvjO!|wiIEg1j^w>$YiHh>5!%xXD46jBz$0P -z$X*3vr&#nX=o44jq#{L694h3zU$jMJoRk#k68aB{La96#liPZfub?z?fOyU{sII@5 -z=r*#@L}Sl%^LKl_$@zG|uZa_X+0j7~4%TDr0gMmUw|m2jptHlNmY->Vd%a?xw_EvU -zzMMW{W|Z7?yUG~MP`fm6Z=whjVl#E*-fIwWBYsX&tVE$#hruT@IET=fZ#3Ok#Kii3 -z?XvO|I$PMrHY7EZb*c5yxQEMN6}Od+06eR-I$ESUcz&9eT@&m<4fb( -zGEs{FM|PngbUmrIEK*_>V57?u2tc=WWrb|uTr=S%vhlvLk^rhPvJyNsBP`xZ2s=5fFCinOR5a -zKQo}bdlgfkF-wN`LI`_5-QX?TpIJS9eYz%ikMpCw+#&UP-t^?WI>m--a25-iiDC{} -zcr?FF`h3@`B>}`OCyNwhM&7YV&vjStzl5!ynDNlMd{(*{Rj$xJx6FX^vNH=ko;P|f -zcu6KZ7N=#kXg=~Dz}liUeTdj5Wxd#+ya#opX65Lxz2?7OoFVWwzj&t2n0vW5@(mDh -zYE{jRGg$Qq_+57`P5kIiQIhqVl -zlnl+#V^#Cm&QMaDw%U)DKj`+qFwi!+~1MsHTheGUKyukt*IKLCm>{)a@-wy6T7zXwMaVL*iel -z4?X&r3X82)t$I5~_jaD_$2Ri0^mQ_Y3xcNt)z=K{^KAQ>gM;sPqini`7bL_TRGTb% -zlk%gNp>EEW4j>DXv^icbE^%i`1fl3Y5$9Ny_2myh38cD@mO%24d8O~ed1dm_mvSC+Onvs@Yvz8t3@;iG77Ai$|w -ze?{w>^&Sk^+)qE!R;gJRkd|Mf5hNyqeq8SQ@mzB{;Qq(legc@=Te|>r`{`!+3Ul5_ -zyFTKkI#2$uxvlUdBi77P4k=D`hJ{xPF(h&E^T!(Sd+0nY7{%PsiKxFa5kRjkxiT>>P?VGPRU9oG%Hyf?wwh1883s}T0se#H6BlJX`_8rO?)h6 -z*WZfUSF5xwY=lvN*@{-^lVJDUMx>58jT^rLf#XZ$a4;vLx3NAq|Ll}iJWz!n<-^2gk^a?$8WY=8J;Zl|+~A$|Rhot*`w4zjHQGrBKU{N(1Ga8b1$Z>KV -zH?7_eRI&zHNtg`JtHh!kzu1i24Hdy`Gb(2!w8QV6pi}(d2bP!mY8067c}$j3c#(yW -z4|{0k>xjw{BU!!IFLrirz3JYi)e>xYjmUPUCl=S3!MsHXg_=$Ew8!6b&!5^Gj7>i3 -zdhN1vcG%aDEWMDoMe%S$y&*LypN!l&LqSAxZ3OnT-9BvV*v7x+plWOFE^g%YS2}`C -zJ7(s5UY|rS0XOT|Km?a(U9*GsiWRi9CGi>9t!{X#d0Fc}KaNI-2W<|-x -zmE9=+klR4x1YUIsSC0g%&-~n@1iXXI0CKxIZ?lrjndA?-ea=zvhujuyrUj7OMVsS0 -zPo4mB+eU`MJTq;Tw_~H(*5|<+=!d5iPl^ew46m1`?e}qZrU0uf?-cv!hXt{@ibGH4 -zkBVF%SeOpyVp}XRrfz?~c^RZ4ph#6haX-_TOnv5S+kKXEi8ap`8+SA};-8ocG+qP;^=j`EUDg#@xT5RfT -zwffFh%)JK(W`z6YZy(~U!F75jyiD-d-=}h;xsiibomG0r9sR@aW1IIKrZXO&PgPDN -zQnOwkDuo!?9h^IpooB0jzdSR*lb6$2PF6lLI_@^V1!G=rcmF0G;$w{ix|88{pH69# -zB0PSy;eJ~w-1yu+nQcE6y++>EI#)P?<%wrPiR_7%A$t8?V}aNeY3 -znNKZ*_Vd~ug5ezS!>oX-yLadm>d~+BMQKS?v9ZQ8QctFv)E{Sa8mkZsMEJ|zB#uXw -zk~J6CFx9BqD1*R63&c0nCxiZUPuk9(D7`oWrG=H`SQTGc@H}}L2=KR~ZYpFg61@Un -zA1r-ECq_*wW9EKlbGS6iwY}|AbO{K)(iiGI-U>8X7*Pcd?$5n|C+Z!7?5(_BuiCe@ -z2Pr9T9|O#7M1Z-?p-&CQw={|$jI_%cLE!}}y$|_8qyVa07hpHFNW++%W?3`lC$9b0 -z1&mI9smdoDwT<9I?TJQMN%z4T5!=?zU=#%Xzs>EaM+UvbUNHa2UZ77m=P8v9&KeTw -z*2l7kN0s=z_U>8>^&gK -zJL9pxY@!zzCKl=qufD%k`3Wan8`O^dc6)LkMbR(RafRleF&*(4N6`Y1+jBc?rYT?k -zA-DGo4)pju_iX-<+sj0VpLHQBf~mzlrgov(vMkVoZ*TOCtZdysuw{s$W~XBx(Z3P# -z5;1$0y=rtc4(7yrH=j2-6iyN_$) -z*GLNG3`gJGOgZh;hvVf&_79q8qhe{u{xKX*j_er?v9!6XnT_-ESBl2G?J -zrSEoQbeGaRPu|I)q^YA@NEVa?7ZGYikG;J0Ti7XGO;|dwWk-*z=-=woMw7*}%aVu? -zew$e`wFxHU*n0yB9K@&zn%T*%b7wL?X0X%sT}oJ|gd6E!m;7vE>8uv-o*FZDB -znJdBT1@KS@Za1EhmaLLJEf|{M-3{sp2^?6CWjO|ifNF_+c%RN&89VleK2yu -zGtC5+<}Ni~G%amUrQR5ogMD$YeOvvY%*<0Qkc7hIH6nE)W0Zxm44N$xN?C6~uQHa} -z6pCQbh8N4ab_J4v^n`la0}6`q%C()&60_jp=xmsfS9OO*m7&%98z=O}YN{YBdQj!u$Yj_SYad -zA=y+!;Q|8&AHyYmOs^;3Uvm58pj7Q{acWqR9#LZ=?L*KVo>IL5iDUnVF}x;obk-q) -z;cDD$hzvyrF)S2KfzJG;zp1zm(D&{Hz8nY8n3LX{)+dAuq4fxqJ30#8e5ovx$`a+4 -zx?yD=LN&SDu^c;X#VS+Mh<0LS3w*yAN=GUe9<>Rb+#6ae*Kp35VhX*opZ@Y=uOU-e -z#prH@q&+}sKJQ~cWj#Ms-b?Govu6(R#0o{`K)(%>ccIxN#Sw8{TvH*Q$KCqD*`#PW -zVq}7Bt^16P>dC5z1mBb1%$nlufxBUtZZBrdPW+Y>!|?V#6enx7FHWo#{a)PrMEJ-H -zWF!FT)k(LzTJ>>tNk$|JU)>nN&Nq^Yd$?8#*_hbm-i%~lHwGEHDOs9HMS1H7qkOiq -zmoX~^G<**B7_st1TpdE7kH2WeQE5ecrECo+CK!C~BhZhv3DM6?$c;=O(Ez!opXE=m -zpWe93snFS8&GgN8q1DKp0FB8dRt@hkVFBGbJCZr#$1_ErpfRNy3&l276%eJ#NaMO( -zB7wTr>dxyjcH#EYYxni_LVmOc*uL^+ZVaoP!KXjBivH{CWn7{>{XX)&&w@ -zb-S-6M&vN1`5r5Y8EEJ*>7WC%lyuh-3bScC*q~WA%A=qkXLmF9uD!LBgXDuFWKsLp -z;g|n0x0C;x+mTBM9K;B$pZvezm9U#ejSVmc_1!<8H@$98LzijL0}??S>h+r8<-l=4w$4`kjWgA{MMZ2f(JMp -zrt5%PZ2kCbncA_zP3rH3H5t2a_C`e1x)0u(gQ;}|mbaOsoEta{!QT`m% -z$QJAt{077g)CIivECxGSfmn14<%HmG@D;xvkMm1z#{66CeJRV>qiNeIJ0B;K!p*&o -zg;+!6x(;yvD4oB6TZe(|JEO)3GAm$zdIjY8mVboE>iv4R2!L+?{0H5}{)=umaZDNO -z7FzKj0nqKnS70Upx}BR0K)3I^Dgo#=uiRE*Vqfj|G|5eRnt -zazGqaqwwucXX~|OUkx`JBQlY!lNzW{6>*%7Z08c{jY13^t`E7eL#>}2t;qtujra;)~;_uBd -z@K6i{D0B4{hc|12iqSaMvM>l5n<2XJJ;dIrf%(lpgyDtLtS?g#R=t?-H*#360crY0 -zn~TOHXh(u>a5~cK=-!PuD=E~e0=j(9Nsq=W;Yf9MuG(+l`t`)}a0Pt_8#)%}Hl?() -zF#aYA97sZT3jq%!J_1vm;T83!vmS6ipfbU^@N(zu&)J__#D+M#YsfCF*|5V_q~t%- -zzuaJ?N`AP!RDp|O`Wr9qpwM*m{uNJxwu-AzDC -zm_X(CIpf+&7T3d=Y{zfh4de{>#BuCAVPg^!t4jN$ZX=pYlO+<7&d5-E7#iG4QiZP0 -zKL8ct*f~g<`$Q=g7DotCj~TLXL_eIIUce2GMgiqPE`ySLZd{qdJM7%;j8PgQ4bqrm -zgnIao$uvR?hEup?;}te=C*)PYr^LuLYsNXJ8s3&`;lIefqS>YmLpY{J?%X^jv!ZS% -z)$LjuO(bryFq};Ddo3JZ-HR2D9S^Q|1qnDf7*_AyCiVsGVE_psn>gk#gT7|K%&+1* -zQ?fWP=uNFf+l?C>8aThBj!}sYNlpFsx&T9SXzTnM|Ad>6zKTcIm_FCo#m@BDuOvzMIIr9zg)eJ8Op84kT{r^I@ -zsYm~!+hJxxPImxwTaN-M`(hY?ZZm9tOfoF%{RiEaZm(lUF9)F8n%p|NmFbjQsgl3Z -zwEm#m7QOd_>w;*KNgSWDDb^p(RDDBOyzUx9Ke4LI=hX8L1Tf!z+|k)`hHSGV2FB)i -zDE|np588)SbSHg<&&oLUuLW#q&!akfybw)1S+i* -z=d<53d@B2*P^7(xURGpQ1amnWZ!2m`C!t$Rp2#VR^;=bk!X6WrZ3bm#G!s(r+@)*#0)ymJ{bmxXp`+P^NIGnGpW*54!FA -z7u`k%`Gao%68_)l_8IH{pxauixi{X>;a;uIenQ;Y5h71nh4gSHhySA62~vO1?cV@& -zyBdIQBm5WLwwnQdL1n@!Am$2EP{@;bWqQ~brVNMpe8cw>7JyA&&I6#^mn|fJ&}}XO -z_b4#eUm?~<-8To-oUV?vy}#7H&gg~)TqON!>;5LAQUgG@=djWTc-_UZ-g?Me%Srx0 -zw;vVL&C&trb~6`0Z0u#>OXktcUv#_iJ-C8CJ|BwE&-C_K|HB!8Zj(d#)^CgdLAOZ& -z=yqJ2nJx4Ghi*&!gKj%Fr>|Nvjg0<(=(bHJ0Nv(5O|trnZlnJP-Ol<4-EIY-+tUDa -z8zQTd45T9ESFzaKzvwn50Ns|XnPjTJW>`~3`-^VB^!`P+Z&kj_P{EqcxbukpR_L#S -zgoMN~vu1IIapp(2oh1x#_b(0-p!v9g_1I{!lyo_OIa}}gi*AFH{fllB&?k!c{s-M2 -zQU;*gvVYL+-9PAd4glT0`HOA?|3$ac6!}2CI%69F=r$PIT`s-2j>bKvam@L? -zFe-}XX|&c(O|t_J0NsxK2i;yf>P@0iCzPwI2B6!>VgI1p=#g~*bo-pr?>iAa3&CmA -z9?*t36#h;V`6_x%V8xk<;!dM-z!e@hvPLZpjmep7l$x*9otPcDF&oQB!?YMG%dWR) -zOn(VKGlw5IIdNDgKP}Kjn4!K~%Y79oOTdL=F0pI8LKI1hwn*bTqvT(7JHixzZm<1j -z0h3llh}I#$VVCGcaRQ**@c*LQ0l^AZrDTypEtn@471M}|wdMeHJ2SdLDk{|Whc|j_ -zAI{OFROGUUuOUt}(~JJWZu03-PjNB^GVU_=#AFuAT`#YNDe{#_Lj@b*(wv*ksZkT8!@@^V^! -zz-p!(!dK7it=jrD=U&Yo5S$BuvXOgb=M}Rnot*LQHj(rl#m|V7;c+sFT -zA=6r=kVV^5I+}CfZ!FK0p8MNZhU|__EURL(hvb15;BH~l9r?Zd7v22r?6_AJ60Uo( -z2AERhm|Q&cNGyfzEGbhq7X@JhrA5D22gCW8#XC5Abs5zi^thG0g&^gn-`fw@kh{eqyVbSGtYKv*ejZl -z-%e|TvHX(O`LY72O0XLsa^)BHO -zlck!(kVu_Q_d_MG#c?HlL8SWwaNFtq190=C_7NPRTrjgqj9g50tyH1khiLbW8&`q{ -z#=6CCiIfz<+efc{QpO9|{k-{lzY%^!i)@4_I9QeGD8WDTW)^wCd -zQuF&Vv9gpH133SsjPwGmsb*F#^)KRYG*u|vsPT7rLjqQ+@*p6@rR<|M+l)5!vo`!r -zDK;xgHAb75>w^zD{Xeug!!wOEW1m32Su9e-2U8p;#SQ;+*HN#@F#l*;k=pklr8fjQV{rG)yCa6$_FxVz6=gWY<~fFoU?!HFY`NK@@4 -zmv}`gp__(7LK;tw0wD%gVar}F@Hmb#OU*zkLR!sds6NQK@y7|zM&dqo7k4lG9)!M8 -zU0kzZKxlF90CrvUz3$}{w1W9ZWhZoO^eRx&NzB7q&=YNhFO@;XJ_zC&ttUBf2YwuJ -zYf>G>mtTc)Zf5<%1;2+{&d%`=yR35LhxHZYASA92qH#(~%~~UeFRE)OsfzXqa-K8h -z4}l6GbaX(b>`o40$z0U2h3vwkVNsWkjmDBidd^65ZBOfyrn1eC0QJI93B -z|9P>-qS4oIX)OsM-mq!|7Hj0y#M|r1T)1`iN8dgLcZa+}_*dWF$0>6K=-bGZ7Wf!* -zI=G~U|IxQ~5_$4VWF~~=jwXPty5V6gVIix>!op(Wn?wX#sed_84Af+T90S=eoeAy{ -z90OM7t$i|w0}ufE_MJI9qDA9|_S)u`6w(xofB|xG5^BYKeF#*@SGkeJlE6 -z156?ZXPZ;V!2Z519p@f8C_a8XNh}aB_{0h2%SH_=NGQSMQr9etc1lM -z6%jx&h098YxM|2Z@9x<}u#CO3$Hv77G!ckV?y}if%T{8{%vqzx$5$^{fk{pjavLm( -zQz=LZN9Mp>B@}H-gT{kF092-c3p4#hvU8hskdS2{8WRy0;*(~hi+K5*PJ@pCgX+lh -z*d+DC>?>2SZK>ULpI8Hqf`jyjG@kBBUxHe!PoX*bl2s`??-HB -zngD)#nDyzW@=F~oWkAdA%Uihlq3B64wsJQ@yT+FLB4f7n~L -zVZ-LVD8yOrmR-e(I -zP|VR0S*@!XGQnjmap{cROys0ua;MJn%Nt4VneskjfNDCY#>4}O2k_e_Du4Lxu;1%_7~!w+Od~|d -zdT#h?|MJ@sP8{F)+Qd&wKU1 -zIscH^-Dz}^Pt(f_p#|{UG25$54+dU;_-%pp8QSZ`9KR~ij=%giL6N}6a6xx4N*0iK -zrVZuIa=r8svSTP{%IEk_4TtIl994UWxzGTViMA8mdHS(nB+9|bqjHC7A6iw#5hR}P -zutny=(xn}qcCFA_a-d|xG>0$@6EGVe1I-JudSJY2#DeLHu}R?amY$T2r3Mfx=tjW| -zy6g?&BX;o+LUU;6VTk#p2b--bU^O&BHyARIkSF81;8NFRI! -zgO-#Y{@Uk@Mx3YZXZ!^rm&9I$VIq<~*|GFnN#r|+T^I|u;S -zN>WI^fI49Q>CNdkGLx~6(b}Q+hu@Y{u(bIC;J3Fq|M1&ZfBEfxdma$dKm0ZcfZsm* -zhu@y5n4k9Y-E3=FOPPh@0{(8?8K)CTzGa&0YsfdzT-K2tXlH*~X;RgkcCh>18!Dha -zRID`CSlm*-GTKopUS0L+l;uL=5od`Kp`#qRoMQ9Ly3EBGK{*uNKQU648>J4PvzRZY -zuD!Jda~aHrM8F`G8_R&MX{#wx-nCwy1Uy80rm%F<#*Al6491~zCPOUrLPD}A^{lY{ -zSA7Q?!q!?XK){G7L2^%~+jIZ^S$I-7$ky_bafp@Q5Z}-6grt(TaZgPFA -z741g0z9bn7qh;f4Q8ozU1LdbK3!|A=k|#)-3?%Y5<|Q02`<2a2E&22%DsP{Lo&d-m -z_tB2`vfT@@#9q<~ALk@EBVdtCaQ)b`FggyUkkF84#~|)@2>A+L5`mGz-d!#fzDQgj -z5YFvNBt67?r{fkT7&|=MgOi(qagH-N?~S_W -zT)yjpO_5skd-XTsHiY}bTB*5J1~mBYd4z2j$ojlX^f&V2JBUiCq#aU|r+kT!d!S6K -zE0MMoO7MQRZX~RC_>BjSBcFyN1a;^;6g9V}ys4Igqianmg;(04$EjTQxpISOgc6|k -zv-p7zO;BD^s0v&-n8Emx+lQ+@AyRVzt8*40HVRz2D#X7EAgsa!IjSa_rfJ}kNfK)_ -zY{l)jdH9u-Z=tH=J;o|@r1M05GuteZ*}f*~4RFKN*nIOAiKRwoj7q)oBG^^pPPdr| -zht={MY2D3dELP>ucV!`#N1_|G3e^_i#m1F#a0qQ<1>ZmYWm23-3nWTcJ^Td>BDlSD -zyg*7_sBsrfh~FWKA$1be99IW7o6EpJB*-+fu-34f(Y2+QTrND@+8f%=vusYz;4XVK -zh3f?GBm(h^jE`iaXs8%J^by7c6}XMH`1l+dTtxrJfzRgt*z*B9-VLZAH5x`2r -z=b0SIzM+OG#omr{$zwktMIWDo6)z;1tm1~ok{EH$BTZeboy;(tW@!*4t1 -z`#FQ={SUw0{fFPqooN;T@Y_j6cEA4c+cBb6S@A+M4YG~dM#)Yr(&eoixzU-3LS(A} -zoz^~wFS8Mh9`?!6|FWd)2`VO#Zj)qQ=-CtNBI|jdi@hg=B`?&EX`+q_@V;=5U -ztco;*3JS805O#ns5b!JTk=5uxPMpvj)BlIx-be)S+gxZrD(=r-dD1@dIiP|!?P2G7 -zk%fwT$)!muD7$<>MkwfR0sMC8AAb8r`~Ty&p?q^%hu5f%%mDoMCRskVCBEolO|rf1>4r8o`|ajwdH1h7^G;J@0wB?ywHUg8b=@$Rqy!#OK6Z%_SdD*G*` -zyW*)n#+dCK)Dw0XO#;M{NPrBr=p?I8Wv=AhdhW;3GG3}-?|+pZVP(Tzc)lwS^c1=m=5*tPlTcjD0R9nU(}ZaNuvr`WTh|` -z$ePg177nGsaN`Q?;c(7{Nc%n6F-e_qpUj6C>q8&XDtU%ahOjzFZ?Zuh4^o4^Zn}M* -zM8$N!h#7Pb||p0aQX_`m!%3$?dKKuGg2+d)xV0DpThpyO>MR_V-bK|oe~J#C-!2EcF6 -z{1l2~f~1>Fm}jiz7gL^;^#{%*j^ANgp^^h@L+v6_AGq@07$OO&9bOqNT&nlmQmplc -zwEvgiHq4y?CXf;T!*5Sxt56hdN!%C0?fN<;tU(oSuZ;>t?Z8-?i(6w83T#y+#pn4BkDbA1^@P?15RR(h9Vm -zJ#DTnrp&RVkh=K#CB1~4jShHE!0q7ELF@x<%tKeO4xi}so<$#jTmZoVaR(_%$KMH3C`K`fB5a?Km4|51%Tg9 -z{)gX=z;R-nM7Y-ZFTYKlsP>27mIm)}!WX``@N1zzlk<6>TbBpOZ{U@D6n>oSs@~Sp`m&p(d_oMGNn2ALJGtAF -zYQ>EsGza&b&j0e;+W+OZga7i|+)zgRejXe~Fg`XI8q%~eOXhPcJK-Y{Dqv7{_GGSn -z-i?ux|MJ`PPVz$k@Y_v_#Q=Vr;SawZ=~u=x=*(KpAF{;hTffMO5=yN$)Mr8guIUV# -zA6v;dGBp%1W|a3v^PhUZ0-Di`AaAa$;i2IWn -zoM#u(np%R8P-A@TA;2SCbSc#=^U8H+cY$6?QCcJ?C5R%XZPv4l=wz+@uK<2q2EcFs{>yJ4Rz`WPT0GcH -z0{HE#Km2z7fBEf|yU%qMYeZjld)uj%x%qYPEr^L*jL3GufD+^m=yI23}+xNXjxp!1YG=KGNuH@AfD*XTI+oL6a^zA*x#ItFs -z-<2Ewwr$%<$F^-79ox3m9d|mmZQHi(ob;Sad#`=|Lw%^LYP|RJ6!JaEm5Lf5Z?H94 -zpcN})cw$!gftZ#rU(q;56G{ES)VT0GZOQ0d)OFcf%>6AoQV`1S0gbjyCV^DB3}<;< -zy#fA4uRIjWaA5VqK*}xA{_!|7iY!x9Tn-zK*8v8^+JJ5V4(omiv1J*dgC`4CnBnF~ -zGBnZ_@9sC4y>;~qLck>75lwg`s -zU3oAZ0EFDMW{Huw|5fW-I_fA?^0&Jl)Lcmt;;)B4>Mc4AglU_FJ!)bAhg(ljaC|!N{DB1zV@+eY8yh -zk#_~@69u)cqZW9?VfDkH@V*Ud2{2`R<^-8_;a+FjoeXFt4%|raNP4}MjK5+%JJ!62 -ze36vBE7_<@zSkY(5Bz6XV^Gagm^rh}P|6bk<#Ta`x&UWdC_4okYPnJ -zM(ru%pH@SXjT5hz#U{39lM~QakjV&I@y}s^K#=a-P#BWc0Eh?igO&dB2XcYHRD! -zsa>kdrt6~wWBF-YfPO`!gGqR4R-_2Nl6JqB&p-9$Kxm5Uz$$+L`ZRx(2;|v;T@5}; -zeqM$WE%y)&=l5T7pe6w_z~@!@!hXiH4F|ic#uKMRa9}%V$GCv&x=F+e3vTF5DXFX4 -ze`A3I-oX`S21{bdS%9fY=hQwglqtEeNmb`FU5GGQFFHkQoI#wj9>vSQSB1vcO6$~i -zn`M^NzK4m}mhqe^*{xg5VQjb-wM;HZRAw4V>PD>0X+b^q|&o@@4h^V>J8|Khi!ndb4o`0Y@~OfsLp_-*(<{PyNw{C3b^{PrlQ!r%OM -z@aaKRXsFkGJNB|~9^}00{Xh6^xBuX`U7#6WYxtr*H5KK6q0>hahl-q9_W=Iz+ZVG= -zKtZ4oQ1`5snWS6my`hQPLrh%;6@|r72o;Jbeppe&IpeesKk)bLK4`g58EEW}eQ?~# -zu)#P3F(0a%^(2z|`wq)kr7`**JD#z`y%c}#-Yu(eZOJEqf=ehz3ZtWk*WBYGTBc!`Pdq+PQeF7SOjR9LfAgY`d?4zp~x4ZV9&pOcDd;F9U^1v@s -z+`rq{ubVRYmPRuicSg$Clrfv@X8xn3*}BhMX7J}&HzyC#)bt)MV%CqRl!Fh9vfQZ~*){u!e$aHOlsq -zDqkJ4+QyjNZh7J5-qS&N`(@VB*`HcMs;I%W1$#epK@dJUJ;%g#@?WPdqyovJNVOGj -zPt%p|nzVT>_bH^=vU!n}t+yhkN2GWxze`x8A(5*64m*ky7>R|@vLG11rB|)VOD9b>!CD+Y-RHJ^0z0QDlxu- -zCHs{szpx`@p3C17x*oxWB&u=?50_-Q|Pc1&YC_jN-1dg&hk`NE8H$ -ztb*0S9}Oz^4Nq0W$qBSde5mXLt~{#mdfGR*dgA1FCYDngAYtFtr4(*q)$kq5H7MUJ -z%p(|5o*eTsBx`{mfVMvCE1=0XqC -zWR>$bWD;QNh{GiQkMNJBBWJ?0>}bhFN`Bd8=c39qul(J -z*4zEZ-}Xdi7W|GqrwBi#r1%cxC$g?JLofBDatsoIhZg2>zNwGCp$!`6ELKf$Ih-i4 -zbc&yt9ETFX9smP1)~9m<={3N`lKbUvyL>p7RzWmPctyx5h}nF5)6F -zk;4!gtbfzfjV&!vZ1`YE}LiF)Pzek=S@=Q{nEy8q%Kho(%GRQ%xpU; -z*LT1{2gT#cIgAZJ;6+!BzISaBDmKQdU-`Muvhf?LH+(n*@WJ`hqa!v~0;0VA#EHQH -zATqGJooZNn#gZTQF3=lTH-yE4tKoc)5_k~k<0a<-&~;6f -zLK@(ti+9=1#8~Qz?Eo4TtBz(E4n- -z$lVi!o$% -zN6{@O#*T}qLn6+-D2vF19jDyAr>mB#l0{eAeR;m^IRJqolsMD&AiE)Rs#}1kf%nhr4nSw8E}KWr-nIB+u3dF4%4h-f~8f@}(%8dQc3>W}A6! -zt)Xe*D)x)*7u7k&Yh!}ii(99SM@9=JcLh4+h*5+61f1EOc2ahVIJ^-u*_zO=SH@gT -z%bl1;xm8G5ovQ1164H#4ttfR&GDEpzPvCJ=jcU*m?pv)yJGXfhp&}Qn^^|RuV{(YJ -z5W+*!KrLCD7J!VFYLB1Iq0IJ0p!u!G9$*@WyW@`*5u@5 -zz^-=T)|eZpPIyM-I=31p6syE;@0gcy3bT~Zw@dZAA*9JJEVU_dwXjp6RLJI)Pc#@M -zJ=)M57LCIstCXu!yd*RDlG^W<*vr56`+?{ke@<|msK_skTqHWiWx)cIE7_|Qff1va -zv#FE*eC-;WtA5?VQgB1#C3ln}s#AF|867;wm=jIG`UMzyZ-&5W#fs%AlM^Q#d)frR -zRN)a>ILd^y#lPuR_;90N7QNLJROtGytiN9pnUvoPe3E|B`Mld;lUSq*=}?G5sEfia*^YhiqVw@Pw+tyLfJ>E^<0nf*ZUf%F}8*>bgjF=V&97~M -z$0x%+T8pz#8f7yhDA${jNe8}3P2Q#+77}(EMLF8 -z$TAA|>Q+{#+%2~S=rIq{NO9P4!HMGu8BD!*|2SC9_%P=;Y`|UG=#VFMdbbhGBSf&dpVL~E}k%()|xKq*#cx#<6C9_@TmeAcsmFJNc?Dg8pOQkh2839!2_Yg%M1LbBzBx7rMN_UcWh9KN-2Xt-UBOZ*-zl`sYQg?G=?#O@@ARbVaD4gI9n9vkwc?!4^%2g)?)oZd6V!7qGk;#J~(d>|g -z#G2a1y#aa>PdWm-)DW5DAX*nLMVidb84RrH=rs?wcn+aVJn=ioU@t6zN;zzVOAkbu -z+_#^Swt#XNL5G&HxmTKh{SpgKG;rT42oN#hLu20o|(fN)?#s -z{S2dIehRkO9idHjx~#I0iLhNa_$6}IRMgYv*|-Bu -z$=KF5%+(F&J;`^~0f-leBf*)_pkCg3u6a|LH&tI@8VoK>dOxH+2@SMPY@4i=G4sW?I`hscq -z^F2Lm1g@$Y9MZ1xgvwKkYl57!Y7Bz_O -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 -z!)H7Aied3k(B~d9T6u_ZD{SqLa -zmvZOCKQi{fk1xVf5a5Vo -zO~r=H*WhN^`Tb-VGyj!;JHcBA)#K%8j?iNEQ_R|omVbpk+UVkYBIG#NBAa(MiJbEb -zq^xy8W*nw%T;J%<9-`hDTcNj2?TEP($~WRJsSX0CSCc+h9NKL}P<_Mmo&NbBmHDJj -zislWAjU5%0eS!e?ETUwN7%C%m96gD@sK-b`N&}p~qv1Bd3uF*cQ~S_7z6X%}Dsj+# -zL-(890?DShft8NJuyxXoTC24IVnNR5BAOUOva$sBveW1muj#HQe!Dcr0(}*)eKyn2 -z_EqLOf%DDPxwNi5$2}xy6D({%I;xmhN1u}6s}`z+6d9yf+^FfFc4i*%URSE6>NSfQ -zAd{C_qC=8ll9zs}9Px$0=XURn8e=oEVnAHtkbw|CoK(nncG?(_y`OWWN9ZvE4l46f -zMsDsn+%+8pQ6D{qK^wyBif&g(K?F8f -zIht!_miLp=eHM}#ZKjTf4GeOluP)urC{2UIdwQ0TAr1@IroDO|kK!xD$)^hZ3+e`+hkNTsebbWZ#3x>0a@G*dE;0p;zE^*wA@Y3(pj)%su2>rBGA&o*;Xlo7 -z?oT50kr*?0Lz_Wv;gd#s#`8Y%jt(foYCE=~`|e2JXl%rNOewcJH#l~^h -z^2qzDz4uPr=yuEcz0)D|C-rfd^@Yy++7G3kI^p%Vx%rm+>ox*0|5H5@x93v1Vp;yX -z`8SyJnq~6!gj(*Wy^}?kvET34q3?_zQ_BI(wmu%na9B~;1Fovj8+G4XU@>Xcu-kVF -zuT^a|ZxWwOa@&LHwOFB>@a|0)*{~YyeS*;8cJ}YZ?j%|YaTL0H-{RXN)(Y2GkMs$f -zQrdW4L|F(A!cKfxHq<>BT)p6k8l70~msEcdZ1$WmMFQ*HIO>qkX1n*Ugg)4z_crn< -zR?$MI%gO@GPe6Yr!OI?wY;-VFm^P*9c|Dhjd98V^x@Atkj79UKSM#XlxOn!tT$=6o -z;o*RsI#D_co>ySP#mpd`Zsl$jpVN``6j{K-xFWh_d#%1B;g{#$x+UU+lb#5zX3c4u -z^HQ*V>=&&Rt=&E~<@ziSjLvzB^|9|~7VRQhKI=HZ$JS4DX@-;D(bL-{yx#~{2i$A& -ze13S2vy;Oc2N4w6l+s4sQjP@rUs-q>jpV?kbX61df8om?)SdMnZ_mY_yPeO*Z(L44 -z2ro84P;%7fb#*e_>Wtp6q#@uTY3;zls5vm9wmiCayDlfP%=MK27rO1U>eB1+Z*;r& -z54t`4g>HMR*G1oC%Tp{8(|tZryp6aB@p^Md2k$&ncUqz|`&Xe7BCCCIX>HrC1SQ$1fl;e)wDX);V -zW7-oOn@MYHnfY5A0plc~-D4X}yGNa!^4=}PmG>0LPcjp8U5gaNsoJ~j8Y;s@RFkdR -z^qXDY80ZZ&5^s-6j%L9%Zd6$oQ-#+KVFN66&eX|PkW-@Xfr_gFsrusCly1|9^z1J8 -z&#mNTj1`0VIkd|$qNpzfv8ZeMrnRje6L!645}x2R-{()&T@1C|ol;XC(l{)&!}ScbKLGly5{4l9no&~32)M7Ldh|0lW~^G|d;+PmX_ -zq1$I)=(g+#lK?+p6-ZAlN(wiAzU$JY%lb)u8y%dmo7Mh$>&~zTB87j%ELqGaoJw_J -zKBDy7`SUebNl`eF1|LA95N$j_<%WHeOm$#{Z=zKr#&kkwdJxk`LOB1`$Ijyi9Efr)x2rP{{^Zot0 -z4~0cGI$@Epub-VD1pc?Wooj~iz1i;MMcEI-J#KnVmQg`3khI9vs6y`tK*r{WIraAC -z=E8f7dkQ~KXz7=_-BKtwh|?CYSV{2P6~hS-^wqXVJ4H-*VfK>D!OQob>UM?|mhPo? -zvw)`nfZQK-+w-65c5zxyEV(`z?vM6+#QM>k%7IN46n(*NbaoZET?(=^`>Gbq9h9zV -zC=d$<+8JDHGTlm?!K80C{gC!Ug<+PT$sZRs@^Vp=;-ZQ5+|MLtRd{?*vH;*_l#&Xa -zozM9sG_jY$k5`2nHKu^yeOEENKhkd(`-Ld23p;hQZ;WayFpzg$xjI-tKd!|#TtN(U -z9m;q0o^L;OP?AXNz1{6^dlOIeEj(Hle4e+He;hQ7r*OC%d$*p|igq;i3&h8so2Fv0 -zO$NNr-_O>RoPRXxE&cY|+}ZQV*}Si}obi7BX!u***7&1tuk1|npRab>{86`u|5mp< -z?>5a4=r?);)gm)YW-g6dU+bgWKYQnkJr|>QhzA;13a8Nd8e9KT -zw}Jnt+e&!z}xP49c -zx4P}#tqkE)mAZ~dIADU~`hk``}$4qcbC3x%QO=_k;64GxN=&X);j`k -z2sTLBlY(Dc!_y*%_{{?=JT4i<-3ZBjcj)4i1kEDt#zw~(3^D?jF5OjUCb-W2FJkVV -zy4Qr(V{7Agj!%z*`lpUJHZdY6r -z{r;8x%c^^8^vVW2oN709p6U0+#VxIqU%KltDS*V_HH`JaQrWi09$KTsD2X-A?;0r# -zM>yusm+M`eub&m>iMTgcZkg(&KfNYZ7cuO@ -zg5S`z`kwbh`cb`+Ak>&CU=d5LiQ-lqyX!27G_)! -z59}0m+wpRwjGN6&xd~1j}Kha9zGv+Lu*QH2%lk#_ayT-R;W%a<^H|kpJawM}N87omu~M -zw~hbhZV&zKZoBK*;mdZ;cs_a;I>_P5*{)H4F$x{3)_uu-Uls-QLG0JHO%yiQ>zUG`eM9?7b~b -zg}5OJH|2hZ+yewyFd$1pqLhRK&M_YA6Vw_Wyh7MAf>@N>TbCnekx#P4d^#778DMmX -zu&CJuibFaQbvi|l^rf>)7$RJEg`@~@Np2}UL49{QHl{pmr8!jbCF}r0p|OIx2Xo?+_28fQC5 -z+?uTYW=ZrUQsxujfx~;B$Gg6Nae&bhlMoFk7^?7F6GaZ-cKDNc4eu7%E6p3lVH<8r -z{L6WC^e|%GhE4C{H^fA4kA4ST3mri46OLK)6kib2vKubSQZSH?&F{>Cz#CX66Rljm`ahXYZ^`Ygbe-=hSyH<67UA -zUBq!H)mJvc?@vpKs)1hsGGA6!P}9WgG#oq7kvLFa+a6&IQ9YpYlC8GAF-991)*0XJ -zDkRuHqcR6(KlaY=-({nV3`LhsJ9PrY$7?vj>n=qlyO%|hJc3beZY~dSx#FWKK48qt -z!!`4V0)^fOxB>tGk2}Pt#$HCy7vEDEkhsRWWpx?PJPplm2L*4S`kFM#0%q4~8TUX@2&x -zjXgLOxH3Bij%xO*Bu7nFx>I-4#?42giBP4qgrvjgi}1>jKdWizRT41JV>{^|cU$a_ -zyN$p5_;}S3x?j%Ry_Npo?lztsdT8nI+rQoIrtMOhf4SRwf4SSYf4SQ&ex?!py7?Fs -zfQ=tn@ShAXO*-J6fU=Q~=k-y4yW0SNyW1Q8A9p)(FuZzjQtz{G6W`rg<9ir;*M0AmtTrj}b> -z{a|U0G&Dlaw`~EKab5HkYHTpUQ--F6BAG|VG(vZ@Gy5>b+j_nI(~Ipn$P`+Kz*^4g -zl6H{$*kMAu{L;PLR(LJ@Bu4k5X#ZFws1htZb7EY+7vOU$>jli}f5O{3Cu7I`=?Z-WF={h3D6bId -znYOSon6WnkoYFQPRAM^VOvIOt^<>v90|&L4m;V>MEnLHBCS{+2es7+~fBJs&L9BG} -zX2f)5Ag`0HPV-!6dQI32+9ltYZsYOL+d7o -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 -z$}~2)yE=xDQ_Np#`^;#^289~{+?DBvGz -zJJcph=^Vs=?q`1P=nMUUM*R;`Dw56i510IFLUs`LtfeRDzgTdiCOlwwfG3Ts{v&*I?g`+#0DOtmxCD7dm&>+z -zd$ygezq>gVC75U#gw~r*Wj-VdoH4L%iZo&T5$%WdkHjSX<>wjFuKUY7;UMQ!+NhV| -z$~eWov}&}zUvq2n-|Gu_%pFpb4wDvD6?T-h3)u9Y7zye055gtrP#zD9ueCSNlzWmW -zk^<2I`$~Zusc4(D=pT>K6t=wqELq-2jF#cTGIZ}yz-EMub|FE;WXAeiFr-;>@d3nL -zLsVNQ;ZXb%dqu3ao?U8Ws8^$6E*6iKqz*g`kP_JAON(yHgZktZ*?_e`I9kf#5&YjO -zkt2i%vHXR-KIS^^Fv*lx*)uSHW0siQ7f*NX?B+2TEIUO?Fe%N43nVFBHjwkyFG5rp -z-I;NQD{D?=c(v)`J*sdhX@dPUWJFrOcCiY#i#`==F<9Yq!(X#|Mw&KDmynW6$(;2ZwwX#5_7FPpUHQRgW&eCcMrERmnCvc -z_nS*0{$l|=6>Vwq#Ht2)ggrAaH|=_0hyTcXj;#+kc8`R+FdTz_>DIG;2cjSKc$wskg(5d?3 -zmCnf|+}UD;;U4nIprr|ukV5J$rKy*>2OtHy@@Iizs}wPvU^c(r&cwPQ3sP~Bi_7C9 -z@gF#9ZQ;o~*!m*VrWj{T&$AdKN{qic4>}$`&4jT61Fdz!390;6fcEw{fxrrvS~Ht4 -zQ^g=;ptZ~KT-=$nT0@r6rvl?vuhwpd+0G#FZ8I;@1FHNhZFBUxFJC!`K!V-d;uQ*X -zNq9yZJ6L?zR~%JEL|<2+-O+>Z?vx`KpD?@i-Fp$5mbE)v6?0@nTmnE?f^)}{O3*6% -zPbqvlx$eck+uledK4-^i9~%a%f0t7voTYapoUrR|yhSseb$Brw?=ODdpeF695NrBbRb4&fi6N~OGTTN)8x+jTmFK#U(ou6*hTmE`!y+82Vv -z#ZetX2>}!K6&SElYu!VrB{8h!s3gji#?#ZjAY0NuD2Y;F4S!kl=88ZH`GkZt9_i~} -zwb0xgv+1DC!ZOJP*8IuwXdu_(eZ{c}5?#x#h88nncF|-g>1EWOe#@o;d~}XUSrfWq -zS0lNrfTAL8nM-L<;fBsQ5d^~C4G!QDtB-VjF_X}NO|PeMxnbWTYfn$P)OBhh+-w@F -z1ZQWG-pOeqF1lsONb0BFUMpxlI8{_oSUDxKJw!-B&DaNW$^?#>34PhADdh@yuH{r| -ze=nBaJ`+E%?60()u(vMoM7Sw*nQ2>Se_Hle+K%(vPBtP?Esfn5`73Ql{gJlS|47?Y -z4OZzhJS63Rq-~x>6NkzTOhr%R<&Y@Esoz%^YaENgIHWL3CEEWZZAXk=a#Y9LDs}ue -z5B<#un`~X^5P@O|bm4=i`XEvZLtBN_Io~n*glrb*J2}{D0w@jRmMW#jE^*E<+j?B; -z3b>kGq=4+KXFw4PHOUIu>T;f~lAtlZvd9AmVh9ix8}IZ3>;s$p@Oc4AZ43BPza8hX -zWVBQ}o_u>=Ln5V8RTUQ}a4W6@X4->~n|u#kx-@-!*=%s{aaP0ZrYJ61+G!kF2f|XI -zYSH2j;Ljz7-=v781B!S=X)|uHL1boJWEc6=ekrN;r^TOWjC~kPLh$rsaRV7q{eq#zkqWv9t{T)U&(zfY>2kTG$>J_hqj_)Wqv>qD)p}jSP?Une$ -z50dZ)&RpeU=Ghw$WiYqCICX-fjhbqKxO>e4Ht}$YWJxFrw@znLrk@S&n1iQqdAxxT -zrAnm}n_E?N=kJ&$iFNlFhiIw2=Ud9v4Y(6fH)H&2chnD~rOMP0w7A)BBw;+xalS-W -zom -zo7{qds!-MWJ9J+0f}sM`i@iSQ`76A0Jrkc;bC!;z_b$B@&VTt>_Bt4r0D!GQq2oc^ -z(^`CL3?GQ4%#+9lxFy0EfrG=Lg+vW57km2~p(LI3Kfa(xs -zq>$qt?MUIz7=kI>ZUqI!Q0TlQ;LQ5AObZ@PG82LwA1nq -zpe%9o(~`oLSfS6C#^;gSQ4d8&9i=kD2U=^x*~cG9f=(2YeQh7VpdgqPG51d_!G*-Z+(GOc2klS2C`j5|AG`vV%*SUQ~|EzMlA -z4^em9_&aH~x{f-CY+r7O}56Gl9}= -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 -zPINKn*RS2Pa|;ktr|U<8!c7(Vum4Efmj98q -z$F4=r^I3_J`OR2drk=qftor3TR`+V$=Ko6DL;9Gk|CP3-{vT=kZ~$~YOXB7+|o+(g^8PuO%q~{p|t3|2mk}1wh -zjrAu{w0ejLhk`izNbhvS!jSd6sM=wLD^<#J#6c6+aNtU2XU4OuPQc3G&LM;HdWO-iOn1`vF$o32pi&!;@Z -zf;Mspt+mS%z`Kc6;~7;rDFFZ8dxW`^Xv -zUx?I>h$yoVk4y#vFcW&FFornt`T=Ild96CJJNTE{E(<3Y`b%x=5tJ4IfdPcKwG`>4 -z+*Hg#qVUkj-%IA!LgUi`i?zh7@emVMi%RS@2FW*c^s$VKxqbq^evSX}QBuxCOn!C!wzrem>I*^#pw-J-WWJkL> -z#&^fpKZcD4GsRp5+KNvbmu2@KHhn~|U*|$Wjt5g*oUr$o3@XA~=01KoInx?xEDM)m -zoWRrg&c~P$owRNgb~si&$_rAmiGPzY1hNM&w(d?&pzVK8(v(&OaOSxU3f4=FmS*M% -z10x5A95HhK$hjr0H_U@}zqEBk-5GBHakI&gVk{wFDow6wJCuL&Wo-6eh!Hu)_x-4y -zhdRKVx<5SY?|y$HrS`m$yNj_A_TR<#B)` -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 -zF#kqK9nyk9NGq#X;T18s{aTrQOO2j6<^=u -zQ;f|xIBsoG5Dm*KQ5R!QtQU8DEvL#;19xKu$RWh`2uDFDz=ofBQpv03{%dWgNq{&S -z0z+y|&Fe9osUbyaPr-elm_$=BT~)FR4~q}X!J*rg^dAaPCP_o5Q?2?jODQ3wH7Tfe -z>b#+0ZEccg^I>cb)^5wbFo$)xf~ej-&Zue*n*%ZfT;go7sn?ckSz$1^3K?tbEWz!REoApTIQ^-aG6*Ubw_3s?WG1-OiFN)A9Zj@ -zGl}f~h*KKgTAPCCPWvW@RnR~-GB$-@ww3~cK&(Wt4HDnKiV!6^*q&z`EF-CChO}

v2tq%>cR&T~-H?T77rE~b?9H;_8%aJ2vq%cVTDy(F16A#b6*YeniJF4cH0P?*d7S;UptmnA2z#Iz;9JAlx;IO(S@smJR;2_JPubHp!i?P7iuZD;()+MbZ%2>Hj_R{URUJ26+9YZOZDA8UJ+3jygL -zYn%MP*7n2yTHC9nBL7(1V=BNU3MUCotXCaTQKd)8FO4c3Oa -zMxU{euisavuKMg^9fqP{yfA)i1l^C^@l`U(8&mF!$#HkY$;QqS%}Dc2g8h)l7v$gV_f}bxK)8^H -z?a4YOzf*D0eM2X_aI~ma;`d5DR3}oXI|yC;yRAs&WcY1CUnDRIcA=wTB77FzSQ$$8HcPcNNS`rz&jcD -zEi+3zCS<-Q>NOr7aXIjY1-ug{;Kwr_r+KF3KDu-1%oapve&qmUa)!gCN$09n6=sNof86Zq6)89?xJTe -zsRL04)#ZH|=zd^h(l?5~lWxH>&>|#NytuKPrx_+Ul;TlF3Gw{oa$2%r>adJ#2vua{ -z=$#kH=J(U5nQ#3N>6j=F!jpt_?w_dI1*n&|ByZ6d7g+Z0w>_bV)%&PfsbHv8Y8f$SLChB0KRO$;1JVSlW?x!RBYI@2Os~df|-ml>U|{{e(h9kfeasyJA`o -z@^n+_FJhdrr6(U;N6IDDSJ$P?IIb~{8{G;YK7cSCPgq@p%XpgIR&TmZ@LB={!}jBx -z$SRK7wh6e0+p63AjMSoEV -z%WEA}rgQzH5IvEhA2snn33jLMqJ=A-t$h6Umiu|WRP8^r7@y~8Zc^A-wsXf-)?2Kw -z{Pm@D$htWmmtZ(6!(!o7QSf_T1s6!_g%_7~1KVx2Izs8H4?Q`fqWbD_e&sP^ldMX_ -zz$wD81x!z7(w?eWjZ?BhF5X33F1_hW<5`*YiX8F#Yb8i56V@qI%&pL%B`MN3%|R7u%M?Ce -z(!tk^yMoP~&$owwJRl*Hg<}ES@4P5CvBTOHTgKg>xKoT%kHH7rYuhv)SBZODOz_mP -zOB0-U(RgJV?Lc$pk=RUSaYBF{_CFN+`BJUOoPCobKg`J-grHtJmpNc9J4*n!wwTG| -zPM61)szpuqRcmoNBh$J{UX3+{l3?|85YHObcABesreL}oH9Q%k=7`N9*q#Z^p_@96 -zKn>aI4ba@FBbJz5*msOJP%TPJUT~Te%a-&BC3r(0;RCN7z!Wq -zOemL@4Vba+Si;0v;rTc#rbL@kv?~KPpWx}k&b#+bq13fA=aEo4AzPApkwE2XVm$98mz00 -z1HO64y~W8wo23XeU?apfXCTF)GmoUt94bvLatSC~QbtR~fQE#l=k>0WztIEe0ke1o -zNg*F?Y}~J1g=A0qe9|=%VpZt}XcN?02!~wqfsi5RXGI_;a($9?PZvTfS%Fas2Ls*_$USgzNqlV`vm}?20{TK1aXD;iA{Dk_hto{rF2?)x|Yt&)! -z)4HVzn2e(xyLZU)0%53Y4FiJ-80esdU<$1=a1rWjM)>UVf+E2zkz{lbX$Q<`b_Puz -z(6*WDvjE*VE;Zd?eKGKd?+|jwFIQo{@dCpi`xL-#Z{iyqCoElh=)_LMXX#BVSqh$ik%pAY)t{wP>LICM>fsx&#+fE -zP%9rHGjDob?_n~*ULxCRxtXuy*EQmTlkD%>FC{-9xV4qz^RDnNF}$}%v57h4xjWzi -zD4)1_XpXrQd_dvHh02DVwf9DgSXzwXJ7J53^EMz3#Ks=d?SCiKJYpSFa$5))O|`1o -z8EWEER~QH32=fS3I3!_w8nn4xII?lMV7pIM9E9?PPmv2Gs7WnyU4=!!f9=NljFPNX&pBZsD5K -zg?6SqoL~eq#EUd|YgJiD_W4F_C^qOiELVV^Vu=-Wmh^j&hJz4=M+kneK)*w@0SpJ_ -zE5PDGU_|(qE(g5c9uLfz;eZ^ZR;~C%? -zTak-EP#~ZRb2b5hNA@+JrRTQhgUp;MT_sJF$CU&xv+L{!a+o*gwL^C-r8tL$e4`^N -zi+m_!qzV=*Ghaog4LXLU3&$(Z6rI+P#JEw2qjVG3oU&4N@?wJv!cS4lK;c{Y1SI~| -zy);|R{08977iutfjyf!5owY{Uf{*HCw+Jux44Z|Gcm_NPF-5~}`YHbBOe9zI>WRFr -z?Us=wFl{Zw#?Z%m5QsMcG6FrKu&9`&hSMgwTDR-b_cI^fu=Clpdk$qaTOk0i^$EDs -z9hoafHtzG@=T?AQ$6n()PV@|rJhCPZV^onu3kqsXr5B5Q%)~zN#1_jLeH>0uxbEzV -z-2@U_0?O_eV0e$lH6}iM7l!vv;pU0jdimQ!ueCo?kQFpiMOfhUvbsZ{6(G>$fg3bS -zs=4BsO=)w0HEc*71f8lxMF!ida4XgYo-TmZfIEgyDVNJWsz_G=$!v2t$t2M9aGpsJ -zW114ng;Jm)&+`h8La8wW1uWJ9A->fCzl*#Kn{gK<_^;Y)3;SI;(fCmc$sZskf(3ys -zcit;1_5twtyQuqI75#?0B%}`U``);@+~H6U6t_^Yrq=|mRg<({mQlQ8r^Al+UFY*n -zeONspRoFpB`MS@55`i3Yr!fRXSttp8y<6|ONNBqP3WtrG-EEa}oqBDmtdhjvCSF!f&x{%28GL8cs0FKwS -z2d<9;z=}tlYuDD)YPxrfu@67Nj{FU?{WWIwswZG8zTui8_PTtKkVad!89hCHHCFU| -zTcT?C;O)>kyt}_XnmWE{=srHJa(D5&T)o?y-deN>P_14ooZUS~-+xWn)%d=T>|P#! -zwV>{W-H%^0^tN|)!abIy=5D8)yfqgIy}#XmJmHSNyTI1))!5b8ZR78+bLwn=;cfBq -zb$)){`S{xTc6WVxb8g|e-`{RFGGlvu|K>Sl|JuLKJO|J0rs7EG%0Kms^Zf{D9_hQd -z_EysOBg+mAb6$aKQ`wW0__PJJ<3rd*YjuSrn1qpKdI}J8j=h+fMqYi|1GGrz=Nse< -z9PB)%=cW>)%zA74VEC?b(c(X|@^70XVh_)4@s+SstYp96V1(+=QVYKTf&PK+=M(MW%|b!(l3*~8 -za`;h;-ULyGol+dKJ7$0=3fJ4v82Yl;ZEVgNZ0Uv%)1z^+4^Ma24}7=-k%9M)8P`^G -zLZPoGQaSYR*H=h7D|K*bj$saU#@^PE)FCxvUZ(65m+SWr;CoN(Vqvgvdj{Ov>tp2Y -z`N$<(p&_MxDhMk@+mj9c&ug@A$ErK-p|LV)Emac0>cu{KhlNfOtc3M-|AeX&<)M=s -z%oa$>Wm4HXFO}_Pa@Uykxt4WkM+S%j!8oE5i{IVmIYRvL!|cq4AP -z%LW@4BefPlZexsKNxGj@%P;)HopCz=E-(j1-rIt%pqiVnOv?fiRGm7NVKc~9W*NT)Y2qilt3>ZDmkt3{eFn3 -zs(z?ny@N_&;#W5LUJk`V3%SrZXEr_Xf<00F((sr70ya0T|xnW*{TnUHx9HC -zd)by?fqIHJy`S#k{4RA~!2J^w-C8wW=b9353ly~>ozci{r_amuG7Q#64vW!i>@bNe -zJT*;vZ!0lP4w)v2mdVSi)gj3+&P%(|N&d#*b-f9}%(NL=(kH5Q$Uvx_$}JQ;JsOD4 -zhAKbQB}f_uqfmJ*C3EzyT0?4K2k@C|R^5EVAFy>--#HKm2L=7U?IwE1>WQD=99Soa -zKO|BO -z6`NNZaEnS0CA;trwsp7_jc<@*-D19(a}IR@U97F$bNvyiO`(;;Q`&@k15>x%1=56^ -z_wq(HP;}i*eC}Uqa)THp&M0^v!#ItqZwb+LvMV{w$(Xb%20O%uYl8i&3vJ2$mOzpZ -z%}WCM2y=oN0m7+|?!Y)H7i2zvBI!%*6Qz!q^}d|RPK1VZ{4DEAluQleZGMJV{6~s! -zp*)|x?N6aQ4FaP=Ph+B+*DTin>9+mDYK-tM{(RPbpWYt*X2Cx9IuFN4Xe)u|or5@Y -zKSxl=Zkjn5$g~!O@2ZJajAd}z}q%-dm;X5Y=V_D5|G -zPjCG0??PY4q(hmG1N!fEIWZrefL$~@bA>ktvPBP0Ro_>=?@!+-@70uj$%Ks>@%yY& -zrS#+$yXU|zVKI3BWCB1CDCqQ^Zxxf1Q|$9e9M=G6=Fmc>(CFXu-O%sI1d-!=UGb~totlgCpX_EHAhv~>*{kNLaP -zCGy|e79TOOW1g+&SvdnGxSr5z?N(?GJY$nnHVpQ=4-oV;1OJDqd+h79-@gW)ZQFK} -zt;u#xw%ugcWZSlF+jf&}*W~Lr=ehU(Uk~B9@x5`p*805H{kb%&R61!6fZO(x*A=av -zs|MJjNZQive6OO;#Koa^KCDLoZoAnVLAXVk^Klh}o_M=|PdI{4;LcH(atXj~&zC&e -zWdUmwSk;ol=E+3^B~8P9C4$x*XLWg#tH^Ap0l4k5zufj3N5<`|OwwO&8}kalZJV5X -z9)c0#eLuffJArTNG8N~r1FkqL@gAV|F+x$t;2d8X!9i@EQRiU}n7nO7}m -zOaDNChWF*D_%o@-9q(#Dej_w3y(Sch@@w9WSD5IA9Pr9Acod}eS*+$aFAXQG2Kqe?=gQNQ5Rv#XZgNz6JV!^klMlD9K=bi9Nl4t*3 -zCjPb67g^CQTh-gaVXLqCaX^`vm+YYvAG`9z*xauKItKJQOLC6C!n~s(HMcJ1*LNw@ -zs{#L|2b-nGV~g98v4iUjn1mR_H)NnmaZr7eOVtxmx9Oju+QxhiI98KvuF4B;=ZIP4f$i=uUYB{-F{SP-ApUGw -z1uMm~ux?r`BhNNIB-K+Hudw~qw(s|O5a6~3}Qrh;P -zkklOaAXq4w%v{CuzG1msc8`0o$ZT9DoolFlgO@J!yjq;?>{dZ&i*XpQi{F2w7MN20 -zqCt4mXfNJ?NWZW@cbY@Q(`O48=Tn!d5=mIKh512HfbQ|ffY2w!S7cH!b8Gq@F=BfF -zP>2&+ZpBa7KAXu{kT~G+=bQTqHb-pX{Q{})H~Fh=2UiZfj~^1FG2WYvRAh$<<(YEqXK}F>|BC6SmEzo&E@*@WI*@}dyPhIS`5$xz< -z$fq5wDjh^;$-5N;Pj4NaEheg559@gNk)jd(bPug}@cNmuUu77!(^ejo3oh@PKk8Zd -zZSJj4O8+Umr))B}C?5cJeziIH8{B -zq~*unU0D9=YX0DmdcRe8A{$b3`};O!u}XmA)dVF1%i^wbS#CWJnJOih)iQxfc;1FN;$ -z+ih4Llm(IOiN3r#W^epNT*amOw7Wnh~Dmi844iz!649P3TqJF~ogrEN& -z_+%}lY)w!-j?TADARxtM@G-X>p7HKB!BNjabp$Or`*#&x?tT?4~~y30qeC%ua1e{?9uYw^#+ep@(yitoh`!1sh*h%g!gnA8=VFB}iat!m|M{UG5P86`rz&OzEb?H0GUCnK{|zuCI; -z9bXQ__B&~Dmmr5{uBL^xF%N++_x`3oT@T@EHA%3c>|8%|o=(-cGq5xu6cPDnOy*v^ -z`Rp#J2vQ9%A3Mj;%!qTW{7 -z4Z}WZP9lUAlibNT0qqc!aA&0Z{5~OCk}zkh3zSG|JqrPPJfu?8)WSv5UUys~>Y;%! -z8fApE31`H`KdpF2KD;4CJ(371a)*;>BC=I1N`0E-4zeFy{Us$FSm}U3@qxv`X??aY -zrGK~pwo7d>;h&SKAp4AM;q&2XSA0ga$l=LOg!(YXCb%;# -zJ}VlgVmh5#r@~^py%BL`ydw78RD3E_3~=);rYUR@-Q!>wdB=+@jz;2uQKgRBzsz?jwgXiaue8;*t!pi0-|AF?5q$o`Y?rH%7yf0oJ5h)L%=YHhe%_?*CX7aX(RSV_ -z=5%nw%pcy^LVQFJVXhs6gPc`@wOKgs`B^|$~Bf0_1HXfZc6rK}H^IvBByw3mk(~g(n -zfLzHaNWYAO`Xi6Qi4vxuh5ezt`KDm8N5eaVu8>b@gw(pP&RcM -zlc1S?4ffR7`OIF!EPG&hjuQbu+2%MPiU2YiocgP5KmS#>5s>~-wl&;ff?Pq_8NWDx -zqUS9qtjdRUCm>dqNWuF05UORXuGa&B@p?$D70I$)lGBL5A3?S~`D4Lyzq}cpZMVN{ -z`ldu;kuPpx=z1|)RTIvr@s0jfw!{9TY|lT+2&LJn^co(YX>(P9#cKbfY|8_bZHOb6 -z5C4zXVGw!Xky`T5RU9l8KqjTk3)+u*8&~Mr3*IdGs`%u-IRlFRn>HhX)Us>s)v6?R -zENgIYwWhJU7nBXpl669W2!lklt)B~8-XC0$OWEhLx#7KceI2F7(nr$xpV@E(#h{_6Vu+ -z1otD0+1MW}3;KU|R>+l;Uh -ze5c+@$i%|^9p+nxi%FW1Lx^iMbEA^_F6Wwe0ws&G{FNaABw(D^Oj!`W^+(UP`E6^` -z`QC0IDa4z0Ur0t(t9Y#CFU78eAQbMPB*rU}0{qVB`!WwWI`aX8T$z4hNg!UJUWkKF -zaoCw@#11D|4!Ix$R)QuxZv6hNrT6$J8ji`9yq;6WZCobByL(v+t>(xnS>&Mw@*p|S -zZUcK@=C&k0%Ul!RaM;3q|0I#_*UwMlG-|XTi@>I?ipOwa49Ejk#(3u6OdWg8x#Y*$@G&UPRq=Sdv!57yLtzTqV2$iW4g -z4a02|K;Wq2*43Aiv&l|?j{oBA&cYk+o>oTzHX~N_9Z<%FCgea%VD7&?s7_6Q4`o>> -z?-wq}I_qT_O2L$Xkm{|fSvb0e%xSUO;SjXE^>&{E<<@5(!xP_GCm!!3Z(3pQKPt;e -z7F2(dcDB2Gi+~0HZB>kR>wv<={PgF~d&Z|){&STMf(*1(P#_%!rdYZH7iHM`Fa&TM -z9Yhr4gaQFUc(nZ`-gbo_^zti~&)2*)2k(Sc0tF0YM{FJP^OD{zM7=xLH^1`8PhS2* -z3t;ahA`iZ2pA38Z*^(PvZ*iFX{r;BR`O|TI-XL)VEpcoI1ju~F2}e>~Bwc>8QmgFe -z)4Cus;w6I|W3u{glrEg03?N&a`lEDYHZ&WM?i{bx&*@o@koiTz1_GUdzU@lNRWES$ -z#@Im-c2DVkdRf5|?uFOQm8E{vHN&Zs#Uqu!$ToWtN`;owV$n#MV}>aaZ$rO7R(jXu -zpgOxuKysdIoh2KZ@gL;$ia -z3qZEbbZC_T$aZt_E$iT!ILqc^h6`GJ#u$i8cJ#%=pHw!~-I&D>OQ-4N9TmpAIYHlK -z&*u+v<)a5jHUP41kd?Z5=OB3|;t1`R7s|3Rf8*a(qV(7d0YJ8O?h#cm544Rm+OT!M -zz?{Od@9-YZM)3Xeqg&L&QNHr$l|lfir~h7pz1ZanIrmI|B5Y<-Xycwup++0E -z_=n9xQmmL@z#3wpRG!*g9Hhcj1wT8r1VW8g#^2)~iH?hUKtrEDyvrTP-48AhlVbc- -za!rKV_&%WDC5T9six@j*M&ATwJdd3#KTH?)ELQI10HB_Z7b(q@)@QfxhiG%&+PXk@ -z$22IG!iq82pR0+QuY2)jOpS=9bic15LS@EFS=9;$Jx+#fxf)d^v{>1q4m7Klr}$I) -z&D)VBVRR|G+m~#m-S=C?(l}EvxU;f{DQ)t(Dq)ZiU-MnY -z9Oe^lE$_Vdc4vWoMO5)YxA_c(zU`urZAvIui27{a{59(EKH+$Z&!2N_D1z7Vg1iCn -zzwU-V4f@IL!DIVtn^7vU3YA*wlv_Y-^qwk|eZqP)_s+_d$us^Ky-Uf$E6Bn_BwIn$ -z@SNtkaMh4%m{|xMT!+OC+dj>U=xlhT%@W^Wq3li1==jjX@w>EMB)kh8?wwQTbol)t -z)4=XeeJv5#X36wZh1Y!jp-=#=Ks(SlcV>n$3T1wq1_s2Pzd73fci2qeGh3T*VG|Ou6UxHu@lVw;VVVS9O(Pl>83NX< -zn$b?U+}gDSs9#uJs7vNDWA%_Qzh=((Z(L0{k -zWQvJKQB;kr9+BoT;k@6oL4*ZRC^U#ycnR+O6n#GEx<9Jp_Hdya -zpcDT#uN(gBCWWqZT2fZEA#SK^5ex5?-AfYdU6`_ClJ8$*dqq2|obcdnshe96HvO97 -zE&I=WE#mHmP^)(g17l(%RBoUJ=vnS(>&hN81XaM2fi!jIpfw*8*iHhkR6L72hUKjY -z|78hL%?13L{{dO81&Jua)@njzCyCl#U&gK4Zk{vQG -zF$=d=a_ACsR-cw08Ua&8-k@;3rpn`@Z8`ouIg-EkqXH06ZY2{j0~8?}t1Dk&n@3;m -zi=m;bevZ<|t!bwx<7=mk49Ldu%E4)052Ub|6S>aTd5-WhN1$uwVG6)tM>}6DQ2kJZ -z;7Mwo^`hH%hPW9Pw#OV{TP=_EJel_?Cijt4g_`L@OEyuE`>5%dkkdZEErIRzR6w;BibAOKsGXZo(dY6b+im6^Y0?h^G%Z`& -z90!h4Z2`!(Ra~&&*f?yZcR -z&u(T3G$oExMa3Bavb~}K`sFV7tpg!e2K1X4;bg0g5w;FC`T~g|Del0_i*kV9>Vhpj -z2tUm?GVf>vwSu~21oT1^|BU-2J$Nb$i?~e?){RS6E6PE%R{opsbaJKoyqjv94KwCY -z(B+ZOF=cDYWN)`GEsma+`p+*MMG^Fl*k~3cWkR -zDviD+qE-G@vU2KVUsGagJ|ZSMf{?XS_W98;z>H_ewBOM#I!Xd+NdW%DD#}CHVWXdP -z-%Nq5y=>sH#Ii!DlCBigBf;0yyEcBQLnM4g-XIJK6(xtYZky3Avg)s~tuuz`#dF-$ -zwBW9-_LfUGsDIdPTl?H@*@zo}^QHu%8vjw7Lmn%Kq8s4Zp?TpmZueW<+Xp=?AuX;m -zTlCnh@5fe)fUUG1kOY}Jg0dCcS}jQ%c!)h^UJNw-OhisGhIRLc0$I;l|ET8=^qNw6 -z^ak0Vmv{Oyl;60hS$|FE5SVCPTA{+bXk;rRN1R9IhYNXKUf~4^3N%+M3z7h-29Lo` -zv&8bbhQKKyWF?_C5G{$?0*{YlMCWP-cDFdlFHZRm)ZPeug}mpLly83dJUqGp!jQ-3 -zk)E&fulH+dQ2FK$^1>KcT+i?P0SP@Yt$q; -z^8Uc(Bqt8`|oYq2ge}qi`K`uNZ04A>O!3 -zuZuyXjXZa&UL{B-^R_#Gk~C!Wu$lU{G3lYu&jykzDNMOizABoMk9Y>kP~cXc}aXk?N|D} -ztUSORINa#scJRi`efAqo(7J$Yy=K#ov@wrEy;K^J!=TsTh_GjIyYe9F`}YpXbgPcs -zNRuWzIaCPqy)l^A^BRZ7yo~N&B!LbE#0fuY)5ScE0(oW8{p3ag>suXsmi)zA_|(O` -zS_jr*o(SQo35Tt1&rrFb3b?v3 -zprmaT4Y7;z+2Q)bAOttzaJ~nsSFK1z`YM+kI62??{nTBN>C|m8-UKpcx@sA|xODxg -zT~+Q(PTACAswk_+cTYOU(_aOA*N{l{P#6T=;knuRCEPPUeZAnbA2|g9$+kP);?2ak!-h@)$<%p41W`3P(&x1(az5~(E`Z;r!MrcGr8<1bt!Hfop6o1my{VMn@}PvIXx|JGU$CFmgPxX^f;H -z{i3^!cd-`Rw^TCvx4gfRj_5 -znt96FvTN{^ITeZvf;UTHP(`EOCH?}O4Ozcdg=xxMQrA25@BE!bC(nYU*f2+$xX3k@tN>o^ntZcc%9=gE;t*nW?z9+ -zgVwUFPiN*yiN-1(2K|r-h@o{BSxo;rXEdZZ_|{w1Uc~lH&M#e{FO_cf*bB-Nks}#e -zvq2{PL=G#3o3XZ-&h6xQM$^t<^{>C(0`Rwa0?FKsBtBGC+p^w_pEb-A;TG>=6h8Qu -zPW&n%ymk5)oS;r{Mcq@eMV!iGIVfsxM^bOm;2W|+g{xBxg?~}xuZ&rJ)2RtdhT~UT -zX4imzZp2qf33F4^JSU(fY-W->MFo@6OUtC#?}??DSavAVpYM_sz+A_86#*KtC=y_y -z()zid&n0TJ0nt$y7}Q}S4#czEan4qWX@tPvrB6=l#Sioh^xlU-B`=AB!e|_5EKk>d -zcvuuQ5-?`vZ!BYTgqPPS03I+UhiGw@K-!1a{!P%x-amh1u#N71&ybAVHg2{WN_s7{ -zjxI#d1t^P;2kAweTfUwIPv6RM7Zl975^Q5g -z%~@8s^n= -zncj(y8Co(^U1i=4UCe;0EW#f?Fi|TB(oM+w4!S5GDN2rnpP#M9D;SxL1AzvDVc21- -z6TET8jgv}d_2u^-Om(-F#aw*f=6^}<#f-#0Qc#& -zsx<)MeilzLP#!?HKwkL=;I{b-a1+rzCPuG5+Jl5aHp8Kf?7$}RR(}XJcb#Il4T#e% -z(DuV8Q2Iw9HF#|30^1;>7x4zMf)7(v_dF!1_V^{c@QH&diX*vZ&xG^#O%iGc;6lSyqbM>eeQCCM)Hvse!GVP-3Or}@TPcbuJfey-;s#&6Hi1DM0edK -z8QZ!6w`&oD?}geUbiuSkT|`BGH1SJk291U=yw*MtPqJzOMZF(PAOk3!>*liRYDn<0 -zkV!I3Y%xZxr{Bfas~s{xu-ie65IIu7k1CwNbq3(>%I2gzcjEYXk?wULJSt3tY<6!h -zl8oT&J87K5GZjJpD7V%k8_7;b4CO$UI~Npo;tm@@zQ`v%P#{Z6_NS0hVo2rY4(5I! -znGK1dQzLr3+Ia9jAZs3bmLG77i`7k>j~b%JG!zl2&#nJ<79IyNwlkl1&)? -z=dy%Ah*rb9Af}`6Bg52w01903Hm_J-201Gt;l004It0N_?{ZY7h%Zn>9Jq{#T5&sj%;TwjfD5GP8by!u2J7q|Ek -zQ%9`-oj|^J9no$!y?=(9KXI#1$W+F_T<`&Y&n}}MJk*a4IdEzYUDNpP&z?1A9aw>| -zNo2j`p!)SjToTiTyabWRJh7bI!kL=w{^f9);!|0!Ns12P(_^zdy;&9!HbzN*f81$g -z7sh0yoi#tpXK`q+GZ!h~H}LIJm6|uaGF+0Hwa5T0dwt!#ks&ZV+5hHaG&Gyopk*YUta$M=-Jh>dJ_Dz1< -zY$N`H?5jXPgPf$?%Hbp<>N?Zy)r&cfqs*fZA!oE^Dq(&r~zwUw-Om8d9 -z@XF^v071WdR^cO-*9*)dkuEmU?WgEu{&X4dwYns+okwSqP+Be?%%un-7QE%(Cun9n -z?wP}Sw)WbWSocEq@`;T<3A7!MI9No|T}yIrAvJ%-#@`}imcRR$>vaQ0UMDz7t=|PH -z^kfx%NF+odN?TU4^Em&Db91WL46SJ+5DGp$SFZFMn`gsdu?^*g-0-wWqI9Nbji>VH -zv>Fp_FD$5zyYVom&QtGXikjr%AW%6`1tcd&9UnqxMG~~124@We#}RA4lo$5cjd4-| -zbZf?F?rMzpWCbID9iDoBfnpC<_U@WQ&8t6_?%cYek7lQkSf*5=zBWS#qA0lFmEtF#x&Gp( -z+$E4>21LH2X)W8Qd1Ft{vOaH}4iKo#FIdE&m!zLBRQqRI$qnRkVSfp35TpMR+{%9m -zZpT1v0Kr`?1|Yce8xCku1mp<)k-7Wokd&lRk`G+TQS6xG>D+H5{AHJzy(AD!nKqZ0 -zE|yG8F!uO%-$v{LWqBayUbSYP!u4B7CifjN?kwF4SN|or(dy61S*x9bZ=dThf{85z9x9l?m6G4 -zK?0>16L)VAmyX(536sa{#$SSaA3$)Ifh_%p;3mHifdLTQ<$03-65M(wGcR=HQ}eAg -zZ}v2u!ko5w+OJ&P{}S8@e}LguQS9Yp)&7s*?yLNl;FfjbuHXrLhjLZ`5ZucVTI->h -zNbmn4xUHR*Hs@1)pI)$yJwZuzw(s}!eN42s* -zXx-yIoL%SH+MAEz8aX$J^K3Po3~qg1zw@+y?rOgu1Qj(Q%dC#1?lJS6BU$dKzRf2& -z!Kfs1D?K)~j(N)nx&H)+5B{#_+2sp+3+}g;z=io=KB7Om(Df}A)2U?jm&j&cjJz{k -zdqd;(IpAhgyGyvA7 -zvER^44{bCj(4mWlS|$p4!Bz^`7j#P-x4GbLsw3zUbo!i7YmTw#7Oz(hqX)2zbhcc2 -zq<>*>LYeQfqAm_1i=HW#CEXwuy*|r%{9I8f^U)5U!0;GRQ?S#{%cX;floBE%U0+ -z0%ogFI=r2`u;!s7W93T)+qM~dQk7@eQuWNl&+JU1r__Qz5T$P!oGHU&jC%Q#s(S!u -zRXE0mA6{AqWy-brKw2w4+jGG -z(Vk*(#!k{r4%1ZFd+|e!!uf^)nwUwK%RQq;P`OA+;@^Ti3DqXv49c2B+_qHV5s~f9 -zz(XI^hEb-tVC8u22|EhUiutyxdWtH+>(-zf9+2H{?-+;Rk(%nCk=Q6XpB#9dn^|U> -zk)NU_56OPS)vlrdo2Wc8bU)%;Na{0_Gj~{q$eavF!X>IZ3{UAcS27{2mrf5~$Zwk^ -zP1g&=Ktcf4kf;j)uwAw1~`Ds%s -zOd-8~kx#Sekpw$kG&igyNIoy+TfQT%l5lTU`%A+^YS^CB09vh(zRM7cr_%KH7E1tM -zB`5X%TYW~v2ERsa)pQtoVZh_NOgOR$re>t56eqgoB-GSSrRW}S0o_S`yP-oIrndc6 -zQIa-W3Ic?~SrSKs;t5svpc_M_C-f(GYR7|5kC -zC5^F3vC;JFsB5MyFAywvUoKk_w4eF*JhEop`_6^r2eh%5aMuSz^1%e9xuBkp -z=@@l0{W;NF`;QgEf&No}O`Wn9>~S{;`k1sOrUpSRl^MAp;B1n_edbeYc`#PAUQ&(W -z8^8BaK8vQYt`yNaOUS+=Ghjq>IDiDyFswN^SPANp9*b8KWY>jSi7-Bza3)I`3A?50 -zNSYe#J;m`C;jU!pGw}oS?~s!nO&;0~s4r?g1t8p#0E8P3rO)Vqqr3fq5+_170;e%t -zD_9+i=?838=TcI8<6eelABxKalC1|n2L?L%qRl~ahb5$VWtglqkb7+|A1~-(6?ZmY -zP-W-45HC_W=43H8cripPUfJ_+eVcZ$_|N6;h!|q>`B&vC#8S(;cJ(CluDFZ2@3B^f -zA4UNqMkbE4tXBSmm|Y=;4^`*Swwq>^Ug)#`DBOusQM94v9d1dFmaEn~{Cu4urH6_r -z-}X@xdj$g-CO;9X@k}MzLRjHxj;wl-2niAkvZ$F~p=C7({wmzr-hE?+?<2ne3in#b -zZ*R6+cFXeZCoLQUGolc5=B4vk$%+|JE2IHizN*ucPC6un8ZV+=t;GF&|Ot>A}E{9Mi618^M@mH;cQ|6UWRnH>nsW(HINQzMbUz3j#J;=8*d5;!r2lZ!LLy&>ZiP%>xkYD{EJX=Q4K#UmcQ&UOnj!T<{kdtsL -zppcGE#vi(Y8R36v9fFwrYTM7U)ekRif^|0=vM;tRQSI0D!&?`+;Awl#JX;zBAvZjS -zO4dD>pek<=rr_s+p6|ycO7i-p7%U}cd_h~JJV#k!0ErW3*q?qGR4&Q?+Y4RrgEErC -z`K3Ql=EM|AKJv`%cZM`cpwOF2KOs^3bzBc=xvMDvz!GbqS@4X -zss=)R-hRq;^J;yjA*kz)e2tB+L-Mh9)<-K>ezu2t;xMc#ys~0E{GxBFL=sg08UMFG -zX)Yi9{5_w|6W044M?Ks#@~GnbaUNhYAsP+_ls`9KYk -zV?{`-CJMzIyAmUKtXxMkBeS4ma=mdB!H=b}Y8>P7)^DQWrMO90b3`}aiLjH8)-Uud -z8xQ4PT7M(?v+63MiwEgFvJ~ZbZU45ZHy2b&Wl}*zg7`6C?&>2b!7IyyqdT+uJ5sek -zRHD;%t-rUowGEt7PKDF055N;I7Bnhr0s(DqSAwl4#wxh16T}l++(IXjI4#Ea)^m`; -z+6)a6SaH;ki*59O*k!^gxiz$yE7Hf)>f3* -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 -z{0x>!Y>^X$3|g=$!B9EK52SQu)7}b}XlY -zp2fLUN#*!DFCLc;Y#quk$r~0ZR@kK;wS`5wifz -zyy+!$BzNX?k<+o$blM9=dBl7GugSsyLPW?^Gtmy1*S=QfZ8skj%6JGB9nN~bE3*Ka -zNWgtEO)SZf*bIapcX~ioECnS0D;HO#6$TEWM7ZD@yOmGR+=5Q*}bt)z^`7O0_oVr7~FzceT1w=q*Dg3%24y9+p6 -z)0X`@j#&|rbP}ys;NcKhq6#%?wDTZ;m7F-KpPO)%#V7aPVMA0S0fsX!D@1LQ)f~AP -zPlqlbk1p0)T>^b))_LROCVBj`)tql)yHC_%1GOrlbDO1v2SR2dUQQQ`#`j1e!dl5Ds+Kn`O)Py(A;33L-*Hd@_Ec9PD-z -z)GUv3;+p_@@8USuTl=tZ{!alo4}b%1Hvz*ioQ{ -z7|#?H)M9FaO&h>b-1He$&u)|{k*$wfU+fcwY#25%*8k-3*mOvTb@)Z0OGcg -zu(WShE8+_120+|t`Pv$GFABRr@U>$H=@qc~o9J2shuh6rf*6p)WL$5W#>auY+88m_l#9C7qRr -zp$xX_@+J3&Hb(^tnD`DR<5$YsRmuk6AM357(^ghnlMR<;*5ACXOYqNWaP{xhDZr>_ -z|0{8aNeSw^_yMij*)Nvl;EUym0VMA40Es&lAaNVoA4yaaJ@t@w0Qt5*mT61IA@^dz -zj5lJ9zcPl{0wnIEv_b``b-~G@gNoRLzY;h8XxP*FIX;Bd%oHUxG~M0Y2-Eg3KmDty -zB4Cc3m(;aqz}}J;HV?ReijAvXS;{VxkbP^gPq?s~R46VTWE4 -zJ_s(z5fld42xS5o4c$15(Nj4i5&W?W5;|ukeWF6b3&o`&5lg>L*-~!NV=h_j_ICyG -zUyORw5>L3Lrk#5^bUk-?V0^16CeU#3xoUMm&aS_6S>HC^ju{2;c_s@h!x^`r-1-!# -zmJ20#eV-Z(eMN-aBYuS+=^vNXdUvU?f{=Ng8Wc3d?-K2XfpJ%21%rcFA=GNE(lrgs -zVtdXHjlsAcD_{A|FEsgG5J7H -zjn{4vcCdrH_epYedL0~w*LN*hM2GyM|x^iDe@d~mZ}CaK%t9G$_KT)zi*A7Z$@VV -zLkK3gFx<9SI=zEt5&Z3nT?sBl*fJksY_uHpT$>=1Rj9ZtLyUzcOIB_uX~#Y5PxGw> -zJeQD&HZCkuO%|;brBLJP8kbso&$a|pnIs}ZY&W_oBH-s+8eiq(7)y6VWKF9K<*si> -zS%Z3*k#Q=H5wqv>;>3BZ`a*SCk02z|JYAc7X!{ennvR*`u$;*N{lK@$PbBx9AlPQ* -zG$%y9qa6%;coMXa7bex5wUeq0e}1f4Y2T{TK{ilEcO``avOS94kxh*ygj{6Qqrc71 -zVEc0?!s>Ga3~SaM08Kfu=c3NS4Y@lWIc?Gh$R;W$Jm^oW%*s|^$XdYZv0{03eOT0T -z3R3b_(GqRbbM1I|HIxnIPZfAwDk(6pgkjym!I8=Sxx`N~1KkSMBB$IL9;9UeXe*$O -zwmZh`K%)2T++@W*W}2UplhyD6b|JM^>!DL75u~=ic9Y~FV$cimuQPpQG-$=%0R>*u -ze^VruG6V!43Mq@+DxyHN{(RTAUfZ%6=kPupgQ*ZLobOzE1Q)~g3DFKvl+BZ9l3^*u -zyKae57f-zTy(PF&WGXW+H5*H|vepBHTbN{GU=R9!`Wrr|RLa|q%bRak(4X-&7}ScC -z-N9&-Edqg+XJ7ET(j6AL0H@r>yXMF-ngUg`mPlvc6<#@X`3|x#I-Z^2YS5t_{wyzR -z6d|JtAU&_+r%@=B(untNOp^#aqsA$5%!RHioh0bAnA^NqY#ik}-;>;5bx{FhlJr5q -z3pVffFvTXYDHSbzIubQs4}=wxYsRY!Y+cBFpnU&ZZ?%!zSXJARlYD<#=_7r**Qz+N -z(Rgq{x4*QkA(|yILt1DUO=|P-?w72i{-<}8@@U8-N5KzL`@GJRp^wnjS+5bS2TQmP -z0NY{*gSp+ZTIBZ88GLK>dEq -zeTGIDixi9YW-%HMOVIE=l1W<_uzkY1hv|A;?O%%f*LP+illazuC~kkdQW22#d&0E5 -zybjaZhY5T4dv9~MX_OmhbmVX3vn_vvx9BB88AzRyp!lo}`SnIr_frUYK&?dy)$+a2 -zSX^+&0`8bv3@(OS)5_FH!-LOyU~qy0XC)G+Z&p;$k%5EwhdJRNikrDtsXi^`KNR<- -zPA&Gq55-MSN6_kk{X=m(2IOn}P~3D!q(2n*d;!1MN%VOz_6P$Gx>Ut~Dek-YOstdk -zmLH0Hr$QZ!Imt2U;6cSuUdsy+Mg3|=Y|?WRAN)^T2aOrlrtc3kfBt8 -z0pk&RRji{Cm|v`2d;#Ar5=Y2{#IXE*di~Vi0|AlrQfTiN8_JZniM6Rqa;NT$4XnrY -z5qJ*&$-fjg4U2mBKNR;pf~IEZ55+xunZ3szT?eK2LvgeCnEXR=`_iScs2wNGJ^u0P -zarv7#AWWN-y&9Ht*Gr*Vq(Qd;sM$tyo+BW+u=G-+R;25cNtfBXKSPcdmt_0z< -zkTBE-W6L`j`K4UsWfCRX{T%d(ruh*&moR>);g?i#M`=EN4pB&7J)3`AWs`|kbNvmAl?$rYDN)&V -zy*omN5*gJ$nS1FyY0pEaN%2D2$0Q=*1!y;K_ -zRFtCLt+aI^rq)a)ix~IHQoGF>%bV2kQeZTcki4TxvtHE;wJ!qeF~JEW6vF~UE9T&ga`GjZ_9#!!IOQJZZ!wg4S`LO0S1GNd6cjkAX-tLV#G07 -z@=kRi#qv}Yl$|AykpV;{8Uk~cJ$ -zTW(O+b|C2aR&g?KQb|XgYLcAlx^n+8mW-K|SC&u=^ZiP|QdBN)kabUomv -z$^~sa6rvxcJL)a{XnBMv^t)|CMLA?w<+n)^JWy6EQ6n!GEPSXlt<<_`rAdKGp@ym? -z*A2VogAbLjku8iu0yd9$!QD-8j}fJLZY8BTcE2e4_?Dy&rA|LW+g~6LNd)a_9N3`s -zvp#F8$AIboE~6|m(9G6)B-8-@tL>CNh%`<32=yeYdV;@3M2V%#k9;H!M^pp8YX#-W -ziD+@f%YwkQI85KBKsbn~DXbCU)xhzLf_Qbb_!}OFD}DHJ650MMuKXI(3&bo`DRyuH -zx&r>dNF=C1|i&>e(C;Aqy -z6o+JZvM?lTJRMNDOM$9@p>?ve0Yt;c1CsG+aQCbxw)CC|3+mdj67(>*1?6`+#4(9z -zEocR@GEu^4&sB`c4TVI86<*vRub!bjlnx#{Cu9W;9ht==V!-#vb>8O~QYi)WqreI| -zqff`r;A5ulV*d>J+z)6T^XnP+Rr4I*JG8>HjU{3PVC}b=jDGsDen>VNGHw7c@${$+ -zl5?Jq&%(oPWNCm5X!4p<;RB4IO;m4;BPOfFYI!rhfmMha_|+TKN`1j#ODDD(2}6evlc^ntgd7JlQY#M-cEIRw~XvL7?VZn -z^Q;+L4d*Y%4>rIvAv${y_*rlrE{`*dK1qV~Sm2h5Zb#ZR_o*jhsY-s}ee9uIRsY+-`2 -zv|KZm$mX;+V31N(xVO?tuYmw3`Y9kg52gE0qaO2jR}FB2l_fI9-RwOpFkIC^abW65 -zVfz&X)`;I~E}PN_t2T|#vqR0^F=32K>ZwKE&Za>m+>&$sSOYOTPWPtwZyM{DC|SXl -zuVNNfpLE0V&5b*ePCElr8O0NI4gYZ5(ZAU<;?C}t^hf{Yxc41?IPTM2Mqrde2dmvb -zppfoLoyPPfXmq8&;baAA=-vN -zudC7%OUE6qcu=I@gtG;d?3y)at2TV2CUxb~Za~7gYj!w7a-TW(ND`-qG%Lu0P{c9-8JC4qd%)HZ;>wQR(A`lJ7ZSX|2dlMB7i2N3aODJTs8*DUJm)O6 -zj?Lm5y+I3>lRvD}SZWStOk4v!8B%t6HUPfql{Y*!4KQWXevg&2*nMYSB#9wCfAb6Z -zhvUY>348Hl9lQ7Cb;a9k>JZ7Akd10XqxmW6(BkiqD?am`xI0Lf@B6( -z6qCJCe4%?pd)R}r6WpA&Esfcf5kqr<8beicB7j!PceqZ@RLLc6L03ZhBLUiTtYgisiPc!AJ&#u -zq{i*C6JxJGZ(Vq{Tey3Ijz}DXXKG#qjMfsd&=`S4#NM?j2r@Iz>fclaaBkFGZNtmRki|Nq+25~?sX||0`=?|P^mu>!V+`w$RF_%Y>Y_K=zZd&f9Tg0v11ni1` -z#%eppZi#Q~6;OjRy_#$u_GOVU#{%|teE?1xN)-%Ox2c=eZ|ZoGJ)_0Z_vV8KQoO4dIplUFv9X+F2R)Jho~dh?kR1@5L2AYX4W7Uwk5!Iz?v}9l -z@h~65Bu9)6!9mY`tmS2mB2%HJzD{WqAPz)RZ3~9lC*Hy(nOb|} -zEaqyA19(vYfVpkCdN9s&_gQvcr$u+~0j&FO<-xPWxG4&U?*)4xZ;Yg)li%k(oO)oijuP+(rp9H!R?J -z$8}xa1dONSsw$V#{jU{EGAZ=15@p=0DohUx#5e^z6AgAxaVrY7@I-0h8|u6LA^r~_GL -zlUH`g<~CQ(sZvpc!wu&a9V}5)6H&Gtfsq0lw~+bp4jAA1z&mHHbShCEe?V@}U};#f -z%J7((nIDk*8OS=ba-ViVyHK(`tw0F6fdyljs7;-ux}wK|VtiHq@diYlSa#sXXSEEQ -zzU&2+B%(!>!~#u%-;=ynXnJT1DD3Xg*&MZ@xtgP8kfC; -z=TZkWS>eFan-nWhiEgf6>y+z)hNC}B*nQ|_`m9c!LsC-v)?F`@+^rCZ*Re||WR?5G -z&dLc|JZ4Uu(?{z`*4L*)RUJ4z-y|rK=J&-`z8ym`3OTh9kS`&DJ9Vv<6hi` -z@28H>eK?1~*F#>J8{2KZu(ySYbGz1)yUWz4$Mf^kb-T&!nMyyOZtr*R&re3*PPsHY -zKlts~Uf=g0+T^Y0$K}4f-oL#}P_xrh;jJ%tj+;Zb{Ehj -zvsb8})_1sm4HZA62vM?51HX5xUIz-*gI-8M>&N`8TI8nRbrj-eXrsidftlF};nU8A -zz36DU(`VIaZ#1l6!c!hJV3_C24~Ew1HmEi}<)exUs=F;Ge`i{CKYl2kJ7N_%dQquH -zXRIf*h}aYuM=CM<+iCmUBlQKfPCt^}QK?H3rHTbMsoK;btO<+)gGKhWRfLSs9tT92 -zgNAidzC}_BYJ%18ALN)mY6XCyaIqH^ick5!B6k<_tr77TFF*AcJop{ao=>hhubbv* -ze6P;o=^j5mzkoIDxj*GG2Pice2ji>uD{e;YAg$->I$O8CuiZfM=ng(y3GmaW_ul&( -zQI}T2*FqcAp9U%gXUqIAvnaoIdk-w5L*Ks=I5T|6K~ -zM10((WXwUHh7a*3?i|t|g9An+HM6J^+n)J44!OOARS`B_=k}q+>pxPNnQND+BybHP -ze?io@;X)T1P_ya$iy0=(X$x+rd6S|4I6ImnbeI*3)0olnuhGK_pLr&sPjM}?`E*PD -zAIZ)556PXCB<9Vy9{tojMO8GFfEoip-!Amb;8y}SwJ*)%XCO&+nS<*W*beiG -zAbF%WFg38|-Y8nxzo6 -zxTgJfP#6lkW&3pCu?ZS7P)Nl#raYZ#J^W}j#;4aylFzvUY*e0@P>8y`d!tUDfAHHb -zZ54bc@?owsUia%9e*JJp?7?mScKwoeZCFhH;sv1=NH7~dR#2aA8$({w5+H|1yJ~w-M(T25Xx_yb_`A@r43Bdw!M(Ab4ha;Su{S -zQ_w!19ty)C1Tykq4{MH#FV*!s^b|j?t5i{!Nr~4>q&N)JV?KHp%n4a!C>sN274tPg -zUp%>S{<}gPQOOv%jtU?RRMk-{=W;Xsu%XQF;v8IKWS%?n9T?l~Z!I5&@q%-l2qIrj -zksN}&+sy{({TyzS6*2^dGmI$*NeenMMH)vVgEPD=c7!d(H9>v4#x&vFJ=)&(czMjK -zkNuI}o|w0X(2@?)=Y?td!@64f{3b)x*9qDCa&?aua7pt_>+SjW8+n-a)}V>++cqB# -z*b@YpVON3P>3Rmq#d-b9$oE^^YC>mb$H+i9`JpFFzAN?RN6Q$UOG|93_xHW(YAKrZ -zP^@!c+|cB#&1?0@n;YC3oXKN>+xgP)eJ~DkjbDPyk#L@Dd(U~P2h3&rYJzR06YmSo -z`6JWsnV#<^{$aNqmh|znzgmv7W*ZEHjp`Jo%?s6XEA8{6c=##ouFIUf5pvv5Xf>|O -zG#{SHSvl+a5(B4*x-SvO%V{T>EaH51fnl$?U6I;FI_o>Lgl(zLUJp^`k}`G;}Iep5Sz!sGRC_tM_)jsm=~}0$|}LYl&-r -z7;*x6G2roA?P%8a`vW;_C0vQ@NMz -zQlPB5G@jYC2n{ksBLDG%nA_k?YuvO2n~8SevHf0r9+vx!b}famsU-LdDWL35p*Ehp -zN9zhvDEV{Lu1<7)L&adfNH{YWXzOV8vD%}Fe&P79z)knEb1_MPdBQz -zn#!p@vqk{_YYr**tOTGE%Kb&yy{)pc!rSPzYh0+cz8oiuZaQ_jx%HGal(WEH*Wm@F -zyc*lH@%wIaOXjNSf)3jDI5E^Wf;dna1JlMV3n{$;5-A^W3G!l^a}ODOPN#7vmZ2FO -z?J)8AQiplXY!TprD|VWMt9B)w`!_|g1HNI(5vkbaQe)OyU}cAuk@>|fHU#r9t-OhV -z9e~PP-m`YYU|h=~SEbo+jOw!i_;-@74{Rpzy$9D^KlKkhJ|REohT+Tf4^_XdY%!v3 -zNae^cb`h_(!&mfpBD(j9q6Bth+#@wQ_yTuKF>c)y*$+rm4NtbFQyBzn{guPRr^Sn| -zV|E3YX3!>uuZ_BCsadY?W53}ky|>)9@! -z*9u&?6cXVT0A`e0BH$D7;0h;yhgyF9jh$3ns+3$Da5E)6RxoPl&WKIV@L7_w@GrET -zKb00mJJq<#A!uZ#A%viU-V>faI2E5;d!SVg&*SrWI^VQC3vV5`ndPNtzItLW-1_P -zC$vNc4R@(zYK+S`EUpO8Drn@bZ?1v4+xEg^IS1n`VGw13VNVZ;nat_1x}U@@i{HoG -zRj{9*))V)hMvwcG5vA)-+<7ma(oKt$FStj`XFL>zx*KwF6AxAcoF8-K{<{s?WC(js -zhes8i)wk#2ILsOlf_sC`+4P3h$>ZyN5_6?*IHk82kn_C2lNP=L@Adi6N>_s;4aDnS -zNrfTKBnUm+l`RktC_@X79F|O}Gk9wRI(?YIufWzl5RSV9(dKVWzgD&u@?kTA-m&@Y -zi$r7&1bj?kf8l17#6d@)L%RiQ!btJ{r#1sOI?$9ce3x>Zc4*Z%db=pcVnL) -zZ-#h#-5OzR#I;cgCd;h<>-5e-W5My|LqxbFzWecM+NBseu@Mj7#TkAkctOUnXS7OU6i-O#b;cLr!>xPh-lqW8Ca@;uEo} -ziMR%w)Yd&AE)NALs*=_!AUokR~)H0 -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 -zUr4yzZ9+!UJdf8hZE1Jqp}gB?Q*3+ -zAx-X=)u3a+Kj+8;>{3AD8FYwgp*DuqIi3j~s%?kb<#aD;HdRxdUU7&L50!qiiDi>hp$O9!Kis}{M0=SBr*Qea}OlQs%a^qG&?g32SU(gObzts`)Uk&(J|W$=#wy4IGmhp-+G7Jxl8lXd5} -z+3ae>vr-^!{@xpxZr&tNMdJYqvJhs}rMuj*!b-y-w4U>HY`h-W)~u -zZa-RBKjf($)1|;>RByj#TDzv3GKT&^xix`R6us;9{)2LdcWT-29&+O)@%4t%j895z -z)$Z-7{h-`w{I=)vfD$Bb|DxRS@f(5iFGK}#<#hCwdjFu@-U=kEXXB$@vXN>FrID*8 -zEiTmzCCDKyD49aXYI2TMPYa?!xJ$>%gJ*?BWrhfPo!o?kvvJ)~Xz>sNCWhmI_dv!o -z1B5{fVrGYfG!jlJqyieNe-K%$W}n%JB3s_`W@$fazt7{;KHt8&-4|ziZyJc(W+m&c -zm%odn()d{KEH4+V62^QJAh7(!XbwHO~BDLo#%6`8sOMpGayPLsF8 -zFhGH#H!~v#D)_j%v8MzR5vL=c8M(@iPF_uxQC5SF`P!ay=U=nYX$AK5?L5(K0;%uk -z=L~3g25Ft_j6ec&6{|LGgK$0Zjh7mDF$4cR#N|Hm)PD#LhN}HN%Gzj)X0f -z%fh1D=e=UlEt7IqeC9($rD4OYO>I~qDPe+6^f8 -zOCNrGNQ{H|_4Gg&b?ijS8L4=OZ-FZ*H*a#=G729O*qv{vC|;r_j-Pf!_zw)BE5v5F -z{Fc=xHl6iIS*8xYVKkV0H(X@y>cH>q+3dagTy8jAXR?6-IbWP4quF0LgK(Kf-*2#G -zLf8RLw;dn$%tSb*U$4^Lazw=>d+Wavb-6)ZsO%xB$XdD#q7@8aRXxPAD`{W2a>< -zK@%>0IFjCFAYKX6Z~#g%8}Pjj4kND-qwrfbaHU6R3N}+TFNjVetC5dZx#q8w(&srP -zgk>ZSm>p6iLtvBY9abTwGjCQm6j!i1?X0U&o{j6EQ_P42bt4@DF@Cyqqih1~8&adj -z^06^-lqYDAt`?a5YfhjJq147vf)sYEq+h0}Yd%VcWe&`i3QELtn==GT0paZpMb_&4 -zJ>L}0^$Nb(gUJDf+bm4juXas~QL>bl_xcKjG^k`S+Ry#ryJ$5j=c)s>2;?qAI$HTY -z+DF2R8OJ-z`AK};i(=>}rmzxTX7}L>nfYsZIjkDi2%d^SlKg;=D`Z;v98&^vm|Mm_ -zBQ-mXAailZ%+2Y0pjVsshFr&uW{l8!>4ju_vu!tdGuF$e1`=xaPT^?*8U`5`No8O$ -zHVE5nM{BN#@gtf*$cN0=O0BNxdj$d?IyDA-|F${VBcOgNp;)ZaWg#i=4Fbx-rJryD -zqCg>A;HFBgEvLM_Mi!`&we}?>p1Q`D4DDA>naBk_$3pMA46Wjg(j;j$Uf0!iGai86 -z5Gt}DQC`f0nJl5JmI{C?CgaYLhN6R_RKMV(Jf$)?4l9Or6K7uWz@ECaunk7`~YAKu#?kBAS2S61>4EdHX9z+LQVS5n}vRrusX%cujK(1n3aaH -z7>q~ELTzFau(kINdN?p9BDG4GtA#XQ4XQ605vcjg7UG6~5a*C{BEi|Sx03+@ -zaV>>h9uWdBXGOhN5}%U%1!8W}$?6#ukxYg&D*B}wMaY16^)mS(K}l+934U*+-V9G9 -z*b(V{*g^DoI+}dWda3vAgWZvZ`XHF!`J1MzswGmfY!9iMu`v$P0gzZu#-m_|p8a#@ -zOtn(!cDKR?Yx`mjx|XAag;4-#e;b -z`Ti9!+t|!JW&J_`o&z(v>BvX#c}+QG>SR>cr@P6!2AzyBLMc`Xt2UDohSY_*&L`ff -z@(sYGY(}ua9;Glrdhpn8idxS=2sG9xDj>^2lg$p|5*iN<3fYzSIh}-=RTNW%bCJ($ -zk60@vo}0|Cq)g)1QPo!I`JsYd3UjfEJvkb&!?*6=)R!f7e`jo0TJ3~XXIcs5IG+{4 -z)={bE0mrb@@H9YK0;R#FfDX(L!NqtjzxYpmMe(Z}#0i*4w*ed}eXYT&trqsaEn)p~ -z7{XuK^--s3Jq?(u3`-?W`Uox{4#$UsE670xZi|)iD~}!v{^{ufQ}2}T;IUY5d{@Ax -z#cK-K&L4}{+@EFWKJpfV)yC7)TnaT=x4Rarxd$jBThEU7+!72u?qlh-$?xie_J?ig -zD5wZB4dcAgs*?d>zy9|1jLFuaxMPqLXa+9hRfA4=7WUs0JE?4H?yy8W!*aNM(b`2<`M3j;*4Ol}`E-1+uP279It7Swff-`kfGo`+R=wrVd -zDg!|tDFH?3S`RM)yN{pXJ&YtvUU_tE&=Q)m<(Aphw%}vTnbq?*&l!|Mu$yN~!}jtK -zyMFr&Uzmp60x5kSwW~GLb(iqYfs`1&1RahyPt4Xp3YABRy^+3T9)fqoBe%I-=Bg#@ -zGe93RVg=_m!ApjwJ<)esZdI(j^jH$2I3ZBgXbOeO1d;R1pc|%kU?1CN7M*Uw`Iox( -zVQC~T2=Slb?DHQ}<+hW9=dpOmL5;c4sfIt+MiQ0hj!{!4>G$L& -z+_5mts|{ -z(}q$+TmO7+l)6)B7OyRE=im;=jiu^vQuW=%Cxa?mr1m5yPW&i$XYz=F$jRYQ&FYzt -zFfpsgLi@u382XJd9glgun|iDd*B^hLc%kQ%O)5Lr(jS)#0&+!{6U;E=jYIb!PaA8J -z{ua_75G!ntr!y6jSEw*H{&ia^3~gjQhfsyf!DbX=H~KubAm^|CsKTFFpYg*iF&V(~ -zNZ-DK>W$nYoKwD`s0pud?7#A3Y*^$n1>AkpCkCQ=AQSSN6?1A+S=RiF952h-*;;6Q -zgZ^&q&LK%naL74cv6kovyOLO}f`n+HcV)BTN%2~(TN7vv4gF3VxZRe4)1dB9bmfsqu{ey3R{ey2){flpJ-o0a5 -zQ(DF@2oj{%lppz`tHD1c3a-R^?j?NqBu|xl -zHjOi@mzIa2Azm-Kk*ti2LGVqXIdMz4X);Uv7+F9w#0ONG7+lh%}6>cE5>PyX_DMfH3GB6()?}mvN8Zq35mr*2Ig4 -zAKbCx9?gkng&BVg>YAghnQ}?{1_cG+pdFOUp00hj?m(nR;7!JwTZY|FFN1DvUk6bwa^ -zp(<5*UJy&!hZM&xTN-{}7%kxO2CB(0^8)Jx_R#Jy^4eQqK$Ejl2-|UE2lIHE01@ga -z5>9v9VURoMCjJJ>nOd3P7^501D);_u)qH`FG{9MFX=63ge0UtzG}`70VT6E-AP%QJ -zSmY5D#!NE^mN+{8E|e~flj1yvhN5fZ!k8=AgYza}>J@I(f{N#>q*kCru1^+YguwqW -zb&u_NKwFrAW2>=kqp{i8wr!_zW7|e!+qP}Hv5k4#bI#0s*}q|5>sjl5B=T^xk%#3+ -zvj{)Q!m8By9NdxR(fX~FNnIq@Wr)K#ck{`dJxF8-DP}bmSe~{dGI`9YsoW|jLATOc -zN=r$Ad0eZc49^;;`YDH&s#(0Qt1zzK!c0<5pag{4S*~qI{9*1m{QvY -z{%3E`n?Sv?c++z0i)f7F1Rs-M&1ZVoJGK>`VI$KJg4d@_Y7Fq$X+qM#WzKH(-QUCK -z+uIbH)xQ8YzMc-m5pf@zA0HG;^TUecd&=GT&VxiaFHI{{b?5K`zXC85Z&-DK3Rzi|--6;sC4K -z$x3w};w8;!^^Gs9huVJ`@(lekbIXY2xmTdQW^-OU0>`p{6wX -zDbyvIBHA(DVDK^%xmRS%{1R20Egt-l9om9^8BZ&#X%JEhjV4gna6?G6mOesh54j#6 -zTdchu@&tGL$j2TN1d$T#@GAEDypz7Dkv}nL!&dx$Nnv9B(KA&SQ!tLbbUl1m)|^#X -zwg}HL^pQbGRr5x3T3ZVX2>5UA~g}8Wp!R -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 -zuN%278BJ -z5DmHS>dU=oeWN6c6XkouOn&=*Ak$4fA>1Bqc5q1pSDdU44L{>xD>0X)^poVH=7qc} -zJ4AX*bDSwOKCNq)c&1B}VS$o4evz?>P&uv>otG~yA?=}~7Z^}roGWGIh6=eRQe$Fw -zi!<=zE4DKueZv#^z6C6wtmlF7i`+V@4y*`5zFb{c7muBC -z^Ydo^iJ=?!Emgw;ZM)+eP(YqyjYLw|=egD3XK?r{;FCEeI6c4f{Ik>?MDm%dM+}3k -zU!e~L+F6|mj^=&|*Pyvh%Q7p23*jIl0q=6Ec+3B{l?~{1jST+*1yOd}J>mm6q>(SsdA;ngBx -zuhtYaoWlfq5^PnCdVHd(OWfcLM9Ys=-w!su9)P(`5Xp@mRi(FAFP*zVxihjhizoIe -zoWq`}o;40P^Vi%SVk-KNxt+3GchN{7?6Jl|ymoYwXfdB$asWeJqH&?K_jIX0nNB7$ -z$aHNAFt;tb)jvz;FqiI#DI3-q%K+wf`+y#JAg8qWsa)W1^o>QL@1&V7l7~qZ7I%OTvbuvt=Gz_$Hug?b4xP!KZ -zF}yx16OH -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 -z(a5@gk^&5D{1%2)M`xu^V?$LH@3} -zvarXJ7mFK(lKKu-teYRueCxfUV*d+~U>9v4vb^7Lmz2z5bl)3Kk0%V~p7I6;-t>yF -zr*e|c%QBL0?9Z^H{o~nuV;^=8SS60Jah}N&uzvuj+@I)NvP{(YzTT~22Iz?E+!Bwq -z%Vzp=m8+Dhq^P+OU#vHDAf*~{{%#zFT5a6m%ntKrI}9EoEjVaP9Vz??4y&LA6*u6j -z)I*euNwqyNWngbcu^q3Bi02ROnI6w=Z-9v=A$7Dk%a@uXIRhnzgs -zu#G1<0JnYUHnG*!MSFhLtu^$N6T*PO>D~3^rM2aYj`8_mrMIis<@(`h^+3=pV7PRv -z_UHDHOpn3k^Y)d2fYa-x^~)#-AR0Y#1H5fLU4XZ}KCPF0@@gUx^7wK5GVVsJS8e6~ -zOs7|#Y0GkGE$;$R@3tI9`w)Kwn-s4>Ta}!rSzebSJMP5zOPrkstZ1YzUbL0a&O`4 -z_=WLm@5xqkwl`L=Xl!CKsEj63656j{=q&)vp59?lY5mvRMl{%0VtBNvyXpNSw?BCn -zI&sr3sRr=2Bf>TX$B>WI*jwzMvPpe|E>fm58Q41|&?~>gsaKdk_%%ULVt$u?H;b9_ -z+Tf)Lbk;P_Eq;y7M9;JU1C1UtAm#_{2{pv*8jCD -zpexcb4QrDUfzEtj$L`Vg{FSra^Ivcq5&&+qyv#j^Py8Uq=)CmK@%=Bjo%3IC+w-T= -zmd%K-r8c;M%ou7GPRZBmo?ex9_OLocjEy3@|CGdSa -zj~i0>@EpEz0ar!Z?UT$jld1Q(BT!+scqC9dSHbSl4!3P4EWV*kf%ZBT`cwb(Cl|b- -z$!NF?a=&6+BY{7Q)s9he&Kt0T2=c=M(o0WtBI>ytSqx5iiFI@9gW*uTwXQ=9@nzbj -zAS7g``guU|$V3Eh3D~203Galwxc~FE0olO?-(3v{!=A>K@G;LWOd$Z4RIDsl|z6RdaAe&y{I_+@mAz8p<{STy)8+gitfoJkrjaiJcf)*EOJRYT*(sPzhi)Iv1s -zZm%223xeWAB+ib|bih7i-|!&Y1|>HQ>Kn3yX|lQ!^^Vi{FR^&|D!g4^iW|z6AL*0) -zpl9y|a|&+HZ|6VFGHk9mAa~)h87t7=zFnVXr>ju% -zDY3En@AbLHnaBGZ_PMEi8a=P{;+SqUVQB?~^$b}E^$7Y#!~AZa=WwO2PWJSlA;QVk -zIxI*Zd1$nh+SmhnmRQ$xIr9~{Oa1{V`{|6Ncunxt&e07KN$P}jQxr-yz<_DrG5fi; -z)bp7?gmYAZ&Q_P1@tje{OBSum)*iosDPsHO+8SzAFF(9!;V2gNXXeCuz`&ng;sT}A -zh(fOcm0vVuMYl@hFh5L=#P)Unt^pB!SjECNw&;L=d--lV-lwBe#?a*z5>BboE=SX5 -z`N^&~wdm`O$v1Kh6RRzbb$xf7m;SiC{Q58X!jB;^OYPoRe5c7B{^6-_K-s)vI^_Z@>{p0(d&?xyQAOQ7Ey@}6wV-dj0Rp3es! -zCz3H;0HU!73|e}1q{kQ#i^#RKoSOgAOWuSufU*BWnL+)~ShE-rqWoH`FQ>`4sqgcv -zCKV-+h@#+~6cgE`^1l1DIFzmqT0O~+hL}b}_1Kf$vX%HeC-_lft@a%U{L??C9VcE6 -z0*if^zrcX@Pbu%8yU1qYiA-xtx^MPZv9aCI3Gc58m(Zb{`2w -z^jCWO{=ypwaLjH -zUr(L2YL&?mcrPG1S -zBrI`VdQS1O=Tdw8Ok-m1AAH|iSL5BkyIk*Dk32N9eQymtY`v{mC#mw}r=dXIC3MY^ -z$^%S;C-ogrv(+KL!1!$tnZB`Ud+JX`5S|~bUp7Che`NZmzjILPW2_w+uL)5I<=xt` -zFR~qG4-bFbkF%v0U9u2wP;Gz5o0cEH3ioucav55cq|Nj7@Ju*QA%MZFSl)Yi%CYL= -z^dKZTV78I6G02n~#h(a~TgSk^_@gh13#+INH}%K&u$gUIult?gYm{RDDUBK4;fu8E -zx})szw6C)O@2r?Y%w7D%k6Tu~c5DW6`VJq`$E`^GE&tbLw8gJa-EYWLK`k*bY2wc>^X4J3cSIh?bJEYE>64vavO21nrrp91|OpokwNstD-n0v -z?=(Ni1_tzMjPn`la;@JoYinrnhRBqk@94U9E&y`-2)+&7`X_(z19K$k7u{A8M_WpM -zIw^?4MS&ob+`CQZ4{-$qlPi -zlVu>9sa;B{;MZ+ia9(UQK<+X9fz9BY`uHrewn$I1CTLOS3td<83lOSPgAeq*>ET<| -z3so~@nD%C4G7m3DMOA#hPeKmChn$JcWG}NNLIel3zo;jyUD>B!Y%oPF2n7BdWRhj& -z{9!SZ{TW^LoECU?FYd!iuUVdOqQCO9ANfxj_XDe)or_4ek+!4t!Ci1>Wpa=odGwod -z`_?)H%!NIHq#%-)0CV4uPSuGT;p!E1aQN8KF+Q)_n7;9DB4-(#rtlewf^`NJAvqyOS>2`AELLK4kr(&#r5xNH&rfsawXJr^|jM# -zzw|-p>Fvgs>mGFJ^D#3!k3{-L^&vjqf<#9{3(~dmPWZ9_R -zH31=Qos~$!^|ga1{~MM}Lo`cSKi85f1PS%gq#N{7;PAMLJ+?BT^m7(-aTqK52=ehj -zzH$@syVO`t|Kq2V(?`#WpJk&28}2f&k>#n)4TiYTad44l%kPTotd8{?Pn*%H`?~)6 -zyzV{r4J2=0q-!yC9Lrxg5>(GdUR)(0tOW*Q2il&Wb&YHr%=t{(S_CUw1&uYXKv$2P -ziWp1Kl=yHK#$TSB3~DvZ8m_Vlw2)`0xLi;kbvUT|A6)%2<3>u$#kT`~A(2Hv;lOX$ -zg-ne&Mjyn3^Y1r5w4i;znl2Fs>fd)+r5jgnX7Rkaj&{709Kk&r`%_^lSKL?z|C-zA -zzU*Q9Z^P25Qg&Q!cMIC{*FMLR@N1yo+~;&oM>n)69|7hzja63|)w?^e%begdz}#*> -z|6}Q_E6R%=>E)oL!z63^3lp+D0UYvxnc%k_bvkgm(qwDl^?hL -z+-8&B8FUWUBdH>O5eB3=>znjU*4f~1-8I`UU4x?^Jl$tamUG@; -z?+tDwQuDr_)Jm|71~xax3~!HeIA&(RrnlKqZB5;GDWBdDH+#H1?nz)T#iqytePJOC -z*l2Fhq#t}uA$sd8Z~WRBZEh-5e1=}-yfEIoR-Wp*TVrZG3PnQKyoa0&2_e8pFeO$4lNr%qwmT=^Z3(wI*)`MgM`+}bp -zvyeED%bf|CbzY6{$l8@su`K=s=#dx0w-I7Y72j~JUM&sxsX>Q#k3X(8kUuG}P66t+ -zS&QA380ATa_apLXBE(Qa^V`7qwhsswX#+dcM_Ueiz8#Jf6AyhcGGp!s7dheb7UK5M -z#Xh>LM9^@EdN|(>hWjqKF!6J*?xR2;W{Shgi9@AHcxtdwTnXqw6;KTyV-KNfM_4h}Aa<>Q$Z{zAtqw(gG*$ -ztvz41_|8eq(dSV8S5mfB_0_K1R6N!j@qW5)>;R9{<+(9<+68Y -z6m}SJ6!%*gu!Paee~$ET+xR6xQCK>!tq`Z8%H$&PZyz)T -zldqT;Ktma*Yurl9{Xyd92f1c0~C -z{&*lHS2Jy)nBY6%!*N<8rAC>|qyH{+!-s(*Xk(-O10T-D<^Eu_u~So;MdP0|jUJd% -zNC(;FD8{-;5j`jqaQV~TGRcLPQJxbch4AHp-;wcyMAN5Oql63Br-xdC|ibh#0chg -z7aIN1N8tGNk*HlBFZNs*q(V -zhHu)E$dj(GC@o-q_5GogXiAAR5DlZ4aRCeQa)(4c!_rkbBOy7m;`x+s%sU$)xKT!X -z^7F>S;HhLaF-J=b=wI4fq;bM+SIF{UXVflAi!_+$bEAq=h#FJnpF&>nn1H%=j(gJ$ -zcukhroMHsUje`1!DDEs`SSZ*ay~V4*oA`Dh$?$*hHu67s8-iM7698{da_bgK`9>Qm -z4LjS`m;Mx($UaJAIcX`>@0Y;#6b;?rp&u$;IXrOD;|K=8+Z}(HPW3-zv@_I2nNk^W=ThsKsqMM_~q?gN(Y~`gcS2MU<^ZJ?J+l> -z)AE3CwSzXNbZ4eV%v_FYm+afeVH7IW2kCXkgsCOP&;kKZ`}euN$WMAkjmd{t2wi&b -z4F8$}_RR>18NcoCPI<>O`THZEomA!91qGZFyWJbS6zCa5KJRb_A^d7 -z+TiR2i`|g5-!6%oM$UK!K63a7zI*KjkpmyDG3il=&c -zd+~2 -zo$UvTkZFD{*Lu6ns)AsC52wCnlqAYFCad>K64N!6TqDnpT5(EIKW?@+pDL#+eJE{+ -zQA=Y9*X3dZ*%>VxA)&cYgwgDcIXp=((nRqK8}4qkCxF2)Ty!PAgwQ@2f2Ap -z(n;viz^u*-FmK|So_jTccrvKV{>s}Us~t4Q0C`)Rb7)4=IB1$`NhW(j$fdR11J@n3 -zFjEKoaEIJm$NZ)xs{CL#2xaJ9dpabf@~4Qrb&y17LLf3%yo&8*86lAu+<0jyoU!@v -zY_8CZ5EU>FP!I6I%MaM;D#T(ZShuMV19|*LTrRv{Ig9V{VCCN@o*Y`v*!j7x6>lGO -zY<@IFZ|d9(-mwNoJbLw?I2zU^f?DQ2*h|76OoRRi>3A59$%#)Bsuso5uMOvN`6q7| -z{FS%yyB~ls0rK`0P6I&RhOz7dMOy%!`YUf=^w3SFxsJ0XbphmU7b|W~fV>?gc@DLh -zn$-7K-p;>f|0{1txeu@X0jXFoIJBo9VR672!LDegH@n5z@Rx*Mgb$8Z -zIc`GEqBT3xW~^%N_!?&>QY#Yr-QxQ}WK%eRT`%lD3he*3h0INIUsYg2iQF1uBW_)%OMMXe?3@jL1arH=xm8eYaBcj0|D|v -zBkkL}wlI2P+fF8GVqF(XCw8DHkPhq=YxJDvHV2Iz|sF9>>ii{YqYIV$F^$F`G>Z9BQ?7ki(t&Z)ZpVXdk)*PP=Szj1BP9V=+&fP&2xIS_;! -zmqJj+LffagVCcFm`}|s&efkg#5qiZOr_ViZRBXI=mp=Morbk7sGbim -z8o&M`!{k~Te-s4+RTP7-N`%P+364UcQUU)Co0HL43t12PnbDkWjaOT|cgKl?S>-oUC#8(7M=$sGjkN3 -zMSV|4S%L@V@>?M1fQTog*ZmZ3Kw<2o`!A$#MTsh5c!4-#s_!3xZ8)$Na#O84ef`IW -z)UG}@&zWuQ*Qjp(+SoF2e61wA}Qf@D7{e -z;sNaVzVkM>H)uFrhYf-YVZ}G)ujhV(w2&wym0zS)GvDw{&+~CmTW_x1d#qN!mA0pK -z(R~n69cw>(e|yae7jC`(*2zvw{G_1F2K08m*82G>J&Rp6@HGg2?!>jHJrrOqYM{f# -z9gdx*5P{Asd!`tjF6uFL-8;QGwoZr7lJb2k>*x5^iLz<}gWpYK!VSA -z{DQ`r(|?r(E<7^LcR~`|9JUXw#|4@1E=iF4Q%t12?pwM8qz+&)Lsc~hHCXw)@tH`Cz}k|q6A;5SyR}S> -zplV|T|G?DxJizt5g+aUBT}P7NJl&Ej$SKWv*c -zuOs2`Q@*ip6nLAH`|F^^6hCJWO4s?{KZ<%GH5TGaYEfA;0nVAm@ko0b1pEY|rbqy$ -zAxj)<`6c#Uf7UDOIy8&$w_HE*e%=r$(7*LF3R61DLIb6X_a5%XAu{2j(>mpga6Sm! -zHcuK&OkPLcTKOle{O(V%#SNK%xaVfN!Zwo@?5Q`j8)=9Z7smvTmTsQBIgopQGhkh} -zkj=HKQJ&L<9gm#f$aQ*#lcaZP8ke9(qd%5OXJ6b?a6fpY{Qw06bZuo5Eht1po=0(# -zH~q9RAzsj|s$!nNB!kbKWZyFcQ&>Ke4AzUT5n;x(Z^#ai+HUlM;~}x-jD&@Opk`@V -zwv8va_JUIO>;(bpCHZZD3~ynK_)%65oz~^Nj$8lp0eyPhbT}HPLzKzabe+}@3LDul -zMm#^5Pr_Kum_N7` -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 -zlt#}v+vwe%deS)HBaD>#lBS@wX>|QZ -zc5IwQ;Tw1)77F05OevHXj*|7KWZ80qlfsGG+1|C@%CnPh4Ai~Qz`C9$gKWBwy<2M@vUUn*Lwumy?mec>WxD=@!R8; -zPu@*RmRnerOwe9ftoBB;%&ju!PW!MtG>-fUHz`K$9+x41fh+wRQ#!oQjd&Rw4 -z?f!*-h -zcfB$Iux$u5eDHIs>$7IrLLAMZR5si-9p)fN3lDTJ$qKr5-60Yx^6fs{wij%^PMTO? -zvgqNkI*DI44-mFXs1adtDhUnrwG_#3LmbVUtpug43X7*?oN?H*XB -z^EcsB`>s{&z>QFZxKqtx>-~fsfzhN^7E#20HJ&H2a*qvS|8I4=dj;|R_@&Ge-_vrJ -zzR|)DgBy)EpYO|sVu9_y2&Nvf(*BXR2YUH2X#U9C^nPrP0%PkInW0zNk%C#=D8=qW -zCpx8>sikH|3x&c^h#J01^tCnh1hZ5XWefa5u#$0{7v$=h;UcJT37bIj -z{k*x>hzMhzzJJ)vz#>Y5R6y?x2QVv~sr53{kWO=SJVBtJ8D%6v4Gt$ZWR=jg+~(9S -z;Z7e-)=SjSj_Eg(hVQMkVkSW(ql_w2I>Mx^L+F*~*E?!XiHYUGJ<5s9o!N0?ydtm$Mz@&g;D? -zPxC`W+#hx|C%{w~P9=Tv85%_!V;X>TpBT)GYUG&5Oez)z1+!|Rrx=)%5~#I=pcs1N -zq0`Jkv$vJlXR3>r|Dc7ynVo}F_ei~XK^rtwtU6*AgpCn+GVgS#6Id*{-U#s|y^bb2V(8zOvxT3dTHpcCD3xJ#$^wll;$qoI -z`SRL$By4!aKT1E7w{fx@Cd0K2W7TS3jJo@Qf&{eiX8dCZs38@0xk<-)qDF)$1?thXIxynt)fR{7s@BGdsk -z^50we`xAX$SZX?{eejOPrf4`zYK(DB^wm#aj1@Te87iso+4wUi^Y=L$vCPmcq)%2N -z7oLPGwDeC;R)n(EFlR#)YT@OCfc&nx`h!l0Vsf>c| -zD>V*>z$?;uI#|uKpkbrcQlPQ})idnXpmn)XQ$L=Kv^NB`UZxdpJHB7nR7qA~A5HvW -z1U^(5Av*@($&k;>3%sv{TZ>1eruRXB2eANcHWv-#46MUf{w#z-esXH@nC@z&RYM;*tJ{F^lZMPMR+ZGS%CF^^s-w08l6+SlcDx}^AuTF -zZV3u`PP$>zgT;p3CJ%o}XyG{@JpOb?!Z4i=)z}k69;T@@1}Ga8`HaWV9|pc}VJ;Qz -zC#1Z1<$<$PVZQ0mfcfc4Y<2nV0nmL@R!2yz3rva?d@|V1g -z`yY85?f;dxA8zi?aQ~6F5y<|Lw|{-f+nV3vLYSPRG@8{b<{Risdo2RrnEji?{CFhl -z43|{~lNrD+b3EYN+znWJ^HqQ(fcxD%)SFXPKmL-p73pZ%9(g))sY>D}6^GEtaB6Y2 -zX;&`PcP2)RDgd;f%f|G#`r8lA%!`YKzxBXo-s{ -z=AbfNuV_Z2{RSxCyjR$60P=k-$WL%C>?};CI{S(=ZpDe;kJhhY>d=99=T=d_rQ~4EeMtE_V(!9r?D>Y -zvO6MpbK2GPWjLq&xw5>L`TA@lVD~LKds{Wf)Wh}c_cqRg+!ux9L2OxAWkn>|rf=yI -zDd4{@_@JIL+}`~@Ufzc68l_J&K2K=)WpQG}FAy1UjRr!>AAZPwZq@{PBj6MT1uceZ -z3_%BCb4*z;FG8V~MuMPN4ei?$^hy5Gs|4ZurMCY{h8Xxwv8yNh)+aZP2h-k=;<_Ix -zOHq@@)GaS?M5t)K5WXj{zZ!SeOfp?$O`;1$fa`p~V|hsaCt5k%7j}?x!R&Dx6+D={4*<#kqpcV#nWAGTMbBGNaJbk>$Ktc>pmy$kF_PASj -z1MbBvsVPoUb&MfCxchp~@8!lkkxI;?K7sPS4(Hjc=yQ0mdwjTm!`onsLP!AXWnb_% -z<^Kh5+wOBH-Ru$$fjS`^Y&7Lszvjwvc)k%pI@QO#8o+2{3we4jsbL8|*-qx=fmj3T -zx(UxP;Nw!@Zr!EcgnVZjAdWl!Kj7_!FL?V`wU+A^`5$<@B<+90+to2*tdM8NNZIEr -zPO236UH*5(3jtLE);R%QmmLfwxc(KmlvJ-C;7DUa8kGtn<)KxYPWwqZd|I*c)sqLNDpm!IZVIq2*?uYB696AiddHvd3MAU; -zB%Do8xMhKn00)3554GF;vt;cEQ&f}TB}9{AIBCWk0ZTbIy9)7-=yxcos7;75ef}Op -z@o|9M(PgaYE8{pd4>M#ckEy~m_{`P=4Rn2uveL&87A>Z6(_WP!^0ecdn(lMVQabk# -zE!(2rv)^}{hP;ey=2B>=Maj!ak|=|y&BAa<1B6JVDsUiqg)JS>4PwnyiK_3*^N%ru -za@~5?P}N5g?Gp?r7ibezHWDv}Nmup1YrJE2djFuDuq?$2Efe^3Gd`X)egTa)mwfAe -z|K5WH%#Ay(jv97Qv??)?!efA}Nb)W0v?TOPAO -zw}b+K6+?S9%lc$kWO(z9nA@6}#^Klx$Ab(Tj57%Hp}QSlGjG7-pdCcGu=V@bjmD`)|&p`~9H9Gb6@tAhy~W;LB&Uw5yBa6AQdz+_d@3bGCppyC -z1!Iv6nu&xf(nb!fWt*4r(u&S2;WJn*!ji#LSK$KU%3dN4iM!gFujXxe_iU2XbU1v9 -zk_^6A7F3CVey>aec4k{W{C?lFjYd%4$b(6StJ4j7b6*;J-^j;(Zt}ly*qLVQ?>=m`KSPW^l6HD}`vI~dy -zPZX)e4I3gJWEAQHsKu!1l`D=(_YI|zb-IWOg@HKv$sB%*gQ@pEq1j_aC|AiD#zPa= -za^b|_091BZM{C|!@vc~q2N!jMLn}LM$M@Klp3qb~L~8u1NfMXTUA4xi9<*NK*l4bB -z6|EQSG$WNJ6-4;7Wj;fhvy?6rm)8fdahMO|Yx4JVh%2yaFFFO%)urH;bcx4Y_kRFH -z&N$)3CM`%A^tH -z?E)@!iZIZdw%)v7-}}j)$CxjzqcjS9YxFvEljq=J1}+JzGd0a#B#L*;nK1s#^0mT-^(MUP+&zx>yMeAfltSSU>fuauyPWmuC82tLG2AP4ES8EBy;^!~KD`_28K( -z;!%dykv&SdSZbx%26#FjOWQn07~zAVIG?*t=80Kd#>+jKBGl9=hVK5r+bxS>sRvoD -z`2#aIJrl`s|G)4y1n#Tk|Ax1{{(-l#{tIt^q_Eci1#ct&2i~s!5#(2A-#ZphF8kVo -z%VWBw(W}3C%hx-3iVZu?)BxH^OqrJB02DWILciDUPC-TlTU?Q`4U_^Q$y?(&d5wAM -zJq%Joon@5H+wdXGm>-k5Vi2)2Sv@WYS++`apVSXxfT+{>uIAJNbE#~_s0lcIUyO|A -zm&499u}6TFjZ;h{KXUCom^~aBK)1*Gd!MQ|+Z^(0mL<(dPQFT!THkf5;H)RUIbbFB -z{s4dT+p-|&5sdh=(|!AnLmNgOJcVQC}Zt|Yawqxq;vZdF6`-AMR2sO~!tx@#wQ -za2W9AcD=u@EKTP^V#jP6m(_QZu(;|>4>Jy0pPO1KMo-HjY~3u(obwo=PG6R!4+|A& -zVT0x@13R5K)D%`_c})0%7)yrct!d#0mI=LDz)x)J=LprkRa~Vi(Nd_+a>QS5=Fh0b-%{DaKlTabb4 -z`_9j8|I7|m^-+q~VC=-DDIdZeCsKr~s1txUj>ne%aC*oy8$@AUO_%kDu*n-QKEvQv -zV~W*)+t@2OQoYvf?`AdNj`~Pmt?jv(dXB&KYXeVoh_{kXp>B{^(SJCPI-yuL%!g$> -z^~0Dan?&Z;AH|u*25?RoB-J3yg?J=7Hh6N -zl17W)x+{;ZY1ITuGl~E6uqwskjMY;Jj=N?Kq^<6NCYFX<5#aOImsN`%zIYYHPnyFr -zO%YTs_C|u-<|$CC^u_L@jb<$0QdMlNio3!tNB7d8L|M;e$#}q<kHn_`2%nJBV^aX{q!d?BS7e2Ft?IvA0+0gr#oo+4PFpF -z5*=0X##F&0ze6iX6EqFcNR9QpJRfhf&=_Ch3N%maZwRI)l{d-K$0N -zW~!_ivd={E0Wk2%xU1q)uNlEn&P|$GGu)yU0ww+b*nDCaYC1Tpht^6iP_Q%rKdq=y=~u?9Xf6&IKpC?33b`z-^bH7(ro`fiRixf|Il+ -zoMs)<9iUfRbC<_n5^xO23JSp+d27GgZmSB)Awz%AQhzrY=OXeD@BEPO+z+Iqc?fE| -zf8PsG_79t!tjE7J)@v%uMRQ9uDkAGttHcT5JS1wfBNe@b%bHEoU|fG-$D~n;#_dK` -zp(;vb1r(OxBRA~#I5Pcuj}Nc_-XGX>b#0_FbYA6QNT`*UUy*H-N|JWmt)H`_`9uJl -zdQAAM+jJqxvBfVBSXhT%!z2qz`Dc@1YA<#NyZSB -zWT|7C?yHeiP-Su9(rZ#QB1Zd_-Y(+X;be42(Rd<7ROuO;@JtnEqyYp0+HoQR7`hH$ -z>fd6oTcN>fJABiVBR1pD0YRoy`pEq9%%S>Yj5&0bn+0)EFu<4X=auWY@sI>CwXX`8 -zVa^uXV}Xe1#hfWvI60kzm`{!cZ#n`P`$>DZflHk=2PDfce9gq!V>m33G3$q)c5=Kc -z(0gx^LwRFwTpBIcUw(Q|ck`Z-4t&Ae2{qP$dAe^pOu5io2m-855KQz4 -zfs=})yy=DhucC-6mp+jis@6EvmGDRzVsg?4T{p4t-1&RM!GoG&tO@Kb0Otb3Hu2`> -z5)9h0hj;}(p)8`YcgSyW>HsR$bQFt_yJdWcDV1%YEVA_nuZb0ke9)^rYr;W$>ALm; -z`=@i~AQh(^EggJ6E367ABaI7qr?WYJh-`mIBc<$ywI>_)oEgojs2RMd2Q~jPdiE&@ -z;%_HE*Hfd-w7o}^rwIC$0BHo(7IZ%>o9GAxQ)EvCJL@al>hV#n?B;?LC^J2uw3~PR -zyaQ-jDQ51L3j5^!wGYXPzV*~PXjve8doqv}cc#nn0ZQ_t -zXc4LbBqq4k%oLM4khHYXF2;$)*h3=M07ewLXF#BiL`1L9^&35#Q;?5Jzn%yA#*X}e -zn@?f%YUHLCO_1S_t+Zm|H_M&k!!)q`U@lmUVfkFkNbUidW`nr1L5@b8Mcdbc5eP}f -z6HgK=2Rk)V*1*IHlAaJZ9gWLDt53&dF`OgD)p;lZBZjUTM -zS6>lGBb^L9Z9|cy!Gc^TKBXbQg;Hp1=dHJw)`NbiN^0;3M=EnFAKjuovJZUy0A->$|@Xq6H{jG#)_LyE1g(*1h^94vaeYZ*AaF8J6bF%sap -zLZA5_Jm=^mkEhXgG236E`pTxrT>dJ=or1A1(D*wRS0Wsp}1U14uk-)Yuiw*40usd&Gi-_6jW&xgZ1gvyb -z9EvY^+Z6|B?DGHu?F-(v|AMzi0gWFjY6*b;fwxg)zToWBstx7vn_Q|Asi~RiJDr -z9s$>OMroD{S%qE-T -zmDo1|=YFVs2{75*0@#tC3O?fU8)#x0M(>B6wr0{vVcd~KB8-jamW3q)>#&UJJCw}d -z@HWiZ=@-1+_!qpbUc -z&SAa|JUn`(QD~PXxV?<2u;1{Ip75Z6l)zNL%h8sd3bo?Pq?z6^h5wr?XEry+atz(f -z+eB=;1%HOxHzem%;!W-S*VS0VPP+2JSrxv+;As!S#p{BVA(eTfCVT*yxQH+!Pbg#x -z^_qSG6?@SDhaNodk(~35(!hH4-0}QTVyXsfUO$4_8Fh+gvi+L~ZfX*z)oa6{a90vY -z`BhvNUaLWpYLF2Nu<~>2Isz_nG_a+LJh=u2kBae&(xL-oJdmdZd4xJOCuZbOoFtIv -zU(9%S-H}TSh@%O^gJl*qL*YsV_f$8$c5wo*9<+G?9T1Gbg)%rHuf?ho-{8St&0((Q<{c1u -z4Q^q_NarhZg-{+$JYL@Y8{US--KN+o#Tp^}3*LUBMJc^T>jN@NwNaH*6#0U;UEWEP -zV^!H6^ORK`F=Y4>`Me~M033h0S3Gnmy4QF0AG`dZb`FxtLwy@4*5FjGR4q|*ll -zy*u$A2Ww$A5vEVrfl=569PExXa{3G2j=&)xr-={W=XnDCg11}$z}s<>i{Vnca^b=T -zU+}i=x4+=+Jt4`4c+EsuW@dI!cg-x5g|&8T!adxcndhK!U6|K*5x$^4YjFcoeR$0h -zQwcN%;IYXJUty5S{^n3X;WO+pOGLI?*AkC*uDrl(^xwC;OthpJ^GqWdzRTrrQAVsg -zMCG1jMsZT}B39_!qQP{aNf}8la^s%P=~|J4mRluqIn6nUevF^`tRkke(Fqy6I*qiD -zPr?X7ZHPocKcX-bqQ2?JF~*R}H^b@|owp(38Vt9uW6*h942PPo1;DkC!Bi!ZZw4y* -z=bmJz5xF`6u69ag29O1|G6Q_GAW%FQ&TdI;GOPX<-kzAnVTApHw*~Y9ivEVT`J(=U -zw^7zq@vrH<1By^c-`?B8&a?4F8+ZX5r3{5uT9xVSI-gyjqezYGUd-F+yy#E=fwv_B -zzToXC^nc)Oz?mAC)UQILFL;~(j-r@)?hD=?hyNe&_WY#HKk)WoHasT^LiRuKHk{cP -zyuIRZ9c?TLp_=~D{4cyM{1?0}H~u%go#gQsyiK$(jTlglt!3h9OaB+VO>V{m1VX+_ -z(`v(xvu9-sd8IEb>{Y+fAfo0Yb8(j|yF$(b^e -zKlMC|qvSNk^&r-jhh+w5BM0k~g$Y*z5^&ZMA_RYtOq`KN+Jxa|p@IsAWygyjV$C0| -zp_$+`V}KoyG5HtXPT~F!ylv(H{0H7H_!r(bqQ0Q-NJq$Qb{q*}*!iB?W!_lcqJftJ -zv!aaT6IGV=tdY2W7D$K*P9UKa7I^Jl4$ZBSD2DHsC86W;BmghhF2*GM3!}QeH0T-( -z#83HNuTMh>Bo1T?M+U6} -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 -z!>vBwM_iw0P1*`KDDP82OjI__wgz!9nP81V -zTs|p|Tj=6`rJ~Ev=Rce_!W0t?-@(eoYaUJFpF10jiXj>057V8nXFOjKCG8rILN-lk -z92VlayX&v`u3n7RSpvC_GlC@ReNv@8h>UbAYy-H!Bpdr|3ps!?{e5Lh(|e`t)~ybo -zMYb~kAhJrKR?W{7!KFa~kRm!zc2gpLwNm4kfERBHw#V>@9$FeMwcIzyLpv7bfzBHJ -z6J^`l^hQ-(Tw(dwR&tL(n?>IL@vngf?MDAAms*f|hT}>Wjm2_%%jvo5ok&^U&JbA#WX3L-WEYJb-tDk8^ZE)~RWzHpA`4L00a(OF -zR>HbNQ?NLSe*|f16t$$Tu=G*!to5~>kG5_^5WtQ_w9ElRWwL{7FuAsRx+IJ-=-LAf -zhc&)Gi>R8~hsM=AsHB$Se%A{b_VJ4BIwIz -zgJ*(CkTl81wFxHZyF}xwxj~Mf3fCE&U!Lx@N#kXL6T()$qBf+nn)5TLbCP^@ycN*g -zZB}%vwFArFXdC_K#p24FjJ$eC6{MCZkt7%tkvpn+E> -z6^m|eb7K|S=1u6}6AkzTD*Ppp-?ggRduU#L^6Sf$+J255hnxXPn79|nA0yw?<+TBr -zW5L2*z(5eU&|>Iz!96YTbs6Pbp#_y0y42>lU!`1f)WHJrhi_?nMp=~K -zUJz=wL{-u9d3Ej%(&)paXFkAZcj1HL=_GTs9WBQlKu>{y=xLYS-$dx+w&vhMHX~fZ -zd#%*B7eiz{y->R+E87V-0?SM<52A%21)P79#i1A&K-eFgeavyu#sAG4Qb6R2^E0q7zMB$lUf5sEt1A -z?eY#VCVCZ<@zYz3d*3kP5$AZBKcAi9xCC+j7C5TQ2rcUc^m&|<6@pJaw(ZSuNeP5OZ_2l*wM7cSWe{v)l`0%3ny>5TAa^EQ^KYL?M -z6>rA%&s{a^ZnLe`OfUB)K7V(xKUEGR)e`IPI59Fi>-(OYf67D7!MWTktDkR`+y~+S -z{`O1gIxOSM@%${PJu86mzRB?D!dfjyOV`GdD2o -zmDmflUA(ikKS0Qy*2Ci=#zH^_GUe06yZ+AL;sr;<=2+saomPvtCv5l-)vM>=vO_MF -z`!=*0{$iUx)W+j?e+$h4C+DX!H~xn-pF8hA@HQah=YPQ43qSBSpRL#_GwYYm(4CIQ -z@+IO*PF@PKn>|ALOvx;0bE6pshm;gew_jjhOISKYRxvNbqUg}$*~V4cKk)XptS?S- -zDYT8#{I7z`{I-|YtY2AHGf${#Y}HskCuBg~6;oqKq>(m8_7NYW?zTU#XW -zhhcjl=Oyl6e~%OGiv*p-1StwTqL*pV;>h933y1FI&o2|`%EbOj(1~$d%5omeAFsj!5IWK -zYat?%aW;>EvQ8&{pU+I}sVDVr!=r}cQ<#%-yW8Q!}QJvJoSuGG!YaLH$YK9&fAW`^urR_2~*BZ6R!D^yd-SvH# -zD8cvq((a-bbfOPokOV2L6zc}ce%bJpN65Gk?+Jokdr^3d&O;|TmFJg?^e9etg -z7?9$$)+JpBSIAD@4C)LSI*;iD?$gm;Q8lyOtq@^I3)gHt=FCz#3+_R)1InC*TSnOn -z>qLGD9G{(?Uwv%;=AW^UQ3UF1w#h}6s2>xxtVFVo+OkzA;&~)@IJu!c7k`YAmW}n= -z#aH$dq}?ty#J5s++z^Pxz4D=a41m{&`Kwrq3Vg0W)FLX_YTSecuYcimeP<_u5x%hD -z@o9L=>K*!pXA-wzey97{&Y?)O4LKC?#V+Edad!tR0g?83IX6mgf}iR}2VdZc&C9)| -zD)RxUD(cDR{3?ZDZP0XR^Q!fO~a$Iw2@2psjB -zY{r%`m(-8>)Z~LS$#>^-`1%vq;?H_mK`n@YH^AOLZepJ;0Fz6s^bI+}+8Z~i_;?z5 -z9*`q7BW_S?=;4HQ=FqYvWWhcB)|HB_0+aG$l@z!NZ3tYTQP+hV0A_jJ<|CMyi{mUm -z*8U^M;M_-FZgzh2djOW?tJCV1pY3n_bVLPIwz1HKd1Er!ZrU%P`s2-R6=?Rf!>%L~ -zZl7A(HB5b1cQzK~k5Fu(OZdW#a6@50dtzWvKN)#(g?xcU`S5J38U2=JGEFe&04uAv -zb+4wIr6+&}TUpm2qb_}O3{Ma1vo{rY -z42}4H6*)#({UE|pSL15^;++isFAM73>+RIf0QXe>uD5zLZoal6{WwZ@{qBV!HFER9u6E6t&AWjf -zK3kXrKdFyv8$*;<#r%4?50A|>8B2#Roi|xPzixT$xPcgI+m?2(KVH94hD{`G^6)l4 -zZi=}yw0iWcdOvRD6r8rnq;Yr}di0+piMQXa{YQ^oTcu&L%=^F2-b^(YpI$D}pQyK6 -zIok7%-TtDJ=vOAzRmQGF9J2GYrnmw`Mj4+{cZ$c_6!o!-Qa(f{^ksFzs1Ar -zk_!A#W`^wB8X82`jpzhP^u^y8thG7$!2iwlw_OhfpRs2NFQn(DnU{v%?vOf{LYeRd -z?_MD-V&?Nhb((L6Pkd^tUCQ`1?w#4)Qd|cfYW;?YzgPKyy5J&__MH9 -zU4eo9uR#X5V%tl=Af?P!jc@qZ0PcXw2SuN*_J`F8sYj=*&(K4#UPdwB%MBKP#9>F- -zdm26WAV_d*8uZ8Yk)XQA`DiS|Dc`XiSC$6T+8hZO -zkf3t#yp@KNlOEqY*M1VAW7#@@RQE;_>5fq=EAz8V#)o;ob-}`p7t{JlYCi84Qz(W7 -zx^@tRQ-3Wd -zfoyZd;J5d(wpDh4Q;eA`2xLX1*VK+e-UDM#jI~~`M`wk?bGCZ^3B*RTWAUD`dr0HSJ-kr(m*@*kL- -zMo!i6hP~tUN13Ti;P1g{vl=yjl~+B;%BH|xSi9o01jk2EN)U1C;NZcI471u-9d&7x -zr{xd>tD_}b;i2~YbQP65KSClyqBu7VAFRx@g1Wvb0mCKei}N^0iC*7S#(DQS=(#Tq -zdEtemYed{@I-HVhh``v17CI3E^Vi_h?p8(LlYw(&2HZ>Gk7|A@;Ec!Rdd@nK&()+m -z9|^kQ)vYHurm^s$QEwL{C-KT&PV~I-q&gsp7THF&h8rO9B9ZK3pNu_LBNrrSKcJz` -zInYDP@mJ(Om?>1?0sl#_`cxT_zO(LRG?FbD-0A&3H}wKj22ZRt=c3`9>b3{PMaK^2{L87T=Dwu+2vPIS7Ny0d#Pa*x$Q -zr6SaLk%{O^>0>8s>%QQ_9KTqu@h8=O!#nfZ{l)PVy#g%axf|v$4X1$dN=}9Tw`XZN -z=-w(Sv~Ev2e+#i<@W-nH&^U9}~Yp*f9oJ -zkv|xeCx4Jn{)M@EDIEKU(J|1nX&=ZRsa(wI96id9?wTrL&~uwKA7WWG(s+sT?i|UK -zvMh||Sk;fP2ke1b8Y0`Cxe%-db9BZyc=TyU#b{8jY!qlfMpFHe+pz6`&Yx*#Ja4um -zfaB5ZRktJHS;4Ic#AhKE{d7LhX+?!1XWhCIFTSG8$Ii -z8Xl^zqd*8Z7ZpZn@JmfAm9?o=G1 -zv_*rW0bM?Qs+<< -z3I{wznqPqR2y0`gW0LMrGyvlncQ(&Chv3W0sm>ckhFE-h@2er_h1VSy;OMwrP31rc -z=hI>J$d9>oiajC>!I0Vywy3!KVRDV7e0NIe+(ps?T;Q#W1o5ryk4L -z)S$NO6zP&g&a5nT^$QOi50uipIv;YgS|44D$96x_-F-JagAe_B*RTo?(p$?=<(i}* -zcv?RttCI=?9RJh%7cMXu7ALq$x%$aRFE{{)KhL+t?%Lz7v+eG*A%o0tQL1p6aB*X% -zK9gR`&yn1N+vkxu2qdXKz7=RA&krArbGMAo -z?<-{n<$&hmKTLHNPB=$uw -zVj4@kq4MS$A)Hnd;~2VHkCi-(h{Om@S~4TCdbnkWR4_J(eG^N121N6tZj;cZGyP9> -zTkA*N9{)!13L2<%(uNRCWp<*&Skd14HqD5qR*qHL?ER{=&)iSC{T%|?UFc5%sKTUy=lsA^DLtNG^9T)bOb0md -zLd6M3WNZXIK9X{)+~?Ew;A%XVe$Jn&j1RddD?}8478cS`CL$|<&7ZD3mDR7Tf_u0U -zNPaZlj?s+mLUIiLpeRj=J;JbV;+0ggd}Zy?kE`=vyAe3`99&hL!}>qyHcWBx5nf!& -z6NhT5CD=eC1x|Ru+PRRM=^%myuII{H(-l$gO+5~mqLa8J1kmq -zG;!)mGH=;mkS1Gzy&_)?O|>q)*8hoaH~ts8y~0qYW7Hlj(0DRD|vtpyM5mIRQF_N)VwaQr9>cE1YkG}iW*;0&MMRsSmdBp;E&+VQdrC8-+V^}X#Uft(KYsq|b>cG?#p!Pd&Q -zayT_LF}k0H_gfJlG4%N5t9-r~5PU|Y_Zk=RH8A;QP*D9-PW|A5?IHVA_l3(Xx+Lb- -z`1bq8HVXFM^5^ZA3!Z>)hZ%9-c8||{Z?B0@P_srAU#6m);v2oWQBo;$%E%^_wGot^Xd7Tng+jPrFAh^Ro>K?DqZKHwZap?SX -z>GPy+FIA>>1>BH=VGJif7k&W7Y=2c)%{MKDB1i)M?C)m)w4>cwdtRkdgPg&3;44qW?F|a4g#I98(V`*V>a7zAL;p|oZ8NR5wu -z2>w!cPhX_=r -z`ZT3@b$6t*dkBF6$!@h+rV+4+;F6KMHVOy429bXMu-kk;>^8RNSL#@+7*m0*BKkT;oIj7oxvD*Q)~kOwk#!jsdt!QSu|IPlPE8Ke-DmBy)J#R`Bj=S{&g{DFn*GT(84}6*VnBYxO -zG;*Ms{cF?=h?*auLV))AC_vixHDQ!Rl+LZlsB;C;9X4YnRC|uY7|k0xnsuCqB}A@H -zHFpRMkemX}84=qgpW|JJuAJ%zMHo~JZsiYzVx1MK9J+Vi3Qlf6FWI^EwD4e@LhI@H -zs3nsC)UF<^3VCTC4d(#OECj|6{m~n2%VVO7jI=~-Ojy%1c}PuzdM!;5FBE^`OE~H3 -zu;#S5P~uWyZKu_HSo4cZL|vh0FPavra}bnw-UJZqInn|ZowZ$N^oj^cG?;upviEX{ -z*YbM56t(1GFML0RmyDuxz=ki^*YE(b!@0#Q^o%YOl>-bjDF&lae851K3mB<6XX%*=ythe0Ilw+bq*bdkq -zmaN+%P(v^KZzbnx;#-?MUn%U~OKTuG2M>|UUOZ3G|Cu&pCOxw~fbP+`Utc@qsjcc( -zU^A+7+%~P-*3Fzl17UqC0jn&2G3u2f$RX(hxpdXB<~`)bE8^=7%^sVS*s9&zQ}5T> -zO5?Yc)(4azaf4H~VqL2vY6tbX5f#E;(8xvam7!hrek~OFwG@)@+(f0Pm`7!nwZ5Fv -zpDu?YrDOq>qt82DzrK5Gl*a!V(9mRBnB{v -zP(S^pb&!E%-eyG%spKetZ}3}s_Aw(f8#9|$S|A5M`!#Nh8}^Y+h?&5(noTz-L%$$= -z81g+>VxKrrc-j2@YP{~^QSpn+<}*TZYhVUJr34Y{NkLJa$xr_FQi?Ic@HO@-q5(TXtA3o=zwNK?n!2 -z+FjVYJKzday!J?#XaO)9rEogwYw`(-ONn<*>DWY&*#yV`>JS~v!rl+hZ4rBO&Sn5^ -zGdl%(dN(-LW|#hYtbb;#HZMXH`In@*Sy`d1V~yP$6d3201n~3x+M!7>t0xE`NU?y> -zORFwR?0p!FHIob=K|!gUO3!N%M~0VcUdp3obRqf>r-^~Qq5!<;dtUSpvZ%=O4*TDShO3vJWcqeKg0U!X&;cw?*nuzho)V+ChU_pm6b_v3inaf}lyc5zmv({z5Sbk>z56SXu3q1L(=D}bY&QNtF;LI;k9A@Z1J -zK*~-=e&KNl%7YmwDFH#bXT1nE9P%*}J~&G{=1-Yf@W}^}KTW=dePiD64F@b)yV1_M~zk+@5rU_bN~8(?ZnS*Km{HmVV;@by&p6O3b%&+KIOJjV%`FI_Wz%%`<3G0X9=?k;U~&Z?ZyKQg`r2DzIX7c|a*I7sF7*Z6Rd?N5bspulOP -z!i>oW`W?#}*Y8Df&!G>Of^!0P5P@v9XXu~?RyW&B<-wLH4pMZAmJJ7xbYq`3oe$TyDVZ&%GVi`5Xh>0!6(Ad!t-S

Z%ZJP!cQ@D4&aGnhnx6p -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 -zK83vBPEomxlwt^LcLJAqcPqhLJDf2 -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 -z_Z$>Y|8UyDPdR{B%Y4Do`ethHCIIq -zHG)mvrsqzc0nH8czHSG$%ug7`T^+h#*F*Z<+^WpDTAaJ&pA|wxB8&T%)g6zx8&!MFnk$HQo7o;em&CI=iRy`^{_nZj8l&2A7rjx1WQhyRY5A!L*PtJ_$GUT)vH>h=hE&wG&%GB8Qx!Ln#hO90AVTCb|r(uF0 -zFCB;AUVM*SNKl!G_c?{-?am9H)s(S>oc8YB9NN*rJU5<&KR15sVU+?Z4h8BW)W1sc -zhO*&v>_vM#jad(4dzVDARZ_XD>GRP`RAis=-YKb8tRuvgpGp^Gcm`QhddT>D?!(i( -zKfn4WFf&bY>hd2Zi&?L= -zEFsNg1SGNKl(JS99iC5A9#36;Ihns~att0|#WLVnC;}NsUE+zC5ZoRaX`0b>S@cXe -z0++nnu@SL|`A(daV-XglMj6qV^%+%h52N@d$=uAcR=6YH${_Z$^kusd(`k8x -z^sNggY1=sz0t0H>V~1Dy`O7-?6rIJgUJQfJY%p6(`x!g9Hoh{f)X)=*l0f!(_fnR@ -zc9y8BE1kVwnSf83S>81$UEslcmFOlg)cW&cjz%H~Ba-!;e(pQS*CFKIZPZ}x!U~;` -zl9FqObaTsXd_AtLs1x%ondv9tJf8NjfQ_mX$H7dP&R`#|*;$3cd5Mz}jProzH`X)7 -zh7DkYLiO!wUjEc$a;so5*1CB5{YtkdUm$`re;!$^us1;kj3QdpMzly7Ri+fzNQ=#4 -zR}}Y9SrSkAcYJ3-CSu}+rzz1i^$O`i$a)8zIGjdDm>CueXB&`CIJ4 -zqS@(6G8h^|FxOXkqxzwbLKe%1sD_9)O&Dbi2St0>WA*s)Ul4cY%lv&(X|vfmDkkIu -z`Jk=degTugHVjs#gRJrslaZSrf7v*^z;CPA!^M<>&wvzv3o^a=Hqa&WQ?>D-*?0e@ -zYf#SwRYF-m^ETz|DeEW1%mj5px~3MWT+)#UjxRBc$9H10h{Z?(bCg9Kkq-&1UCjKt -zTNJ2@zW0D%W3+1=wVQ5zdJmys`J+iB-Y4Rxzu3WZU5&K@iaFVIomWiQ3gR`In5JQfs?Hk<%)lZa3!x3rYZO6H*#KK- -z4m{RprEXcg%H42JmAw&@8^k#!e^R^WZ)X$Mytd6ki#7u5pBvH*!tNWPIZRTf3&h!i -z$kEpmp9q|96-Z15N7y_I7FnwtIH}5#ZG#y5ERC)d4M?z*%>Q7Ly!5UhzJPU*l?ldN -zuZ2u`TJ)u09U~plp{?VyVv7E0WuZw&X4~XJ&y*g#3KYn(!Gbb56&Z&1%toyK#wXV+ -zWoww%Z|VaGh}Db@Oq-E4=|lr=bBngkE*u6T%;5Ve`b?tt=ttkQ4_s$?9_$Q3>Kh4H -z>3G2k7=PDFVxSbwOR1S~R=0tW`?LdJY}#VgLX0dHZ^BQ<;CY)LHo_5-|2fk;7)xd; -zD6Lekq)N%`_Jrq~%`0{zla_=rjzACbz~v*4*~~S&7^d>2o0i7v;a%^!l4P-d*Nr0c -zSz~HUc?I>lBkw~Q1v0@j)>nisq511J3iWxfo(`VuBV{C^^2rD+MVikvPV8;oN;!SB -zq>mUZ&XY&-d~)#gFc!%py%?n9!@5MPW6HL -zEwG5NSyK2loH0hFarq|=@s{5x=92N8nbi4E0bhx=s&HxUwbAROgjczr4{eKOl>`(E -zn37GZkauy#UIxYIt};Y(iYIDO0XbUf>)<5suW;C2Y -zXYGzT>mz=xd$=1yn3S*8pFocV>bo8lHE5=}O)1dgwHz2zESoZw+|UR*Q=^q=D`Wq9P -zBSB3)@M}5E%QhYK1`5Kk!`CKkCTxCM`6MrLBe-K#tr8({%$;Cyik3NCt=_SJk9ens -zD8?wHSN^0HrCB88V-;VESp$yc70B^ZmaHYVFCP7Fz6#{?Qh}WQOYi3hwvBjJvslMW -z#fpLpeY?rgN66S;1tt2T2+_W=uPzpPy#|ptZC5xzXU%*xxihtZqqZNl3X|p5;PpZ> -zM7Wc=QSQf!8$+G#N;1kYX2QKfB#J{iaIr>(iYCOB(zqLKD2i6K@^2E7mgj`1x3Al^ -zAlKidq@z9$e4X2#o?oJ?6ve_+#-nmnobTe6_a)X_kBB*j>>H~|@y%8PZQOn*a>Y}n -zlEy}q<^2nrF`d!x72wuie}Ae;*y -z)mBQ>8s`bz=!ELNn1+?^YJeu`@mfha3I6LuWwn|a<2}&|XQ3r?0=(Mo$ -zEX$`b+fL8E(xaVpHcXTz>Q0y$BGXMHXh)#`NAY|T!^rP%8}(j52>drh}7c{GmhHZz2CD&?d$ -zhJ8iEoVv8~+v)W;)F9Gx$u=$DleO&~^l;Ujr~|CFxQH$|j)5Y~7IN&MYB$C_hh`)h -z9$rT09k5*olOP6gzeA)G>lP2Qh%sY~FIbADdBa_SF|*~uk>7`_WX?#l@M+SztyZ#z -zvm|xitlJ8#vK;W -zj~R!!z^2`oR+QC+8Uod09_da~dmUiqInMp*Gew%UudqDgU&ZObvr$o>$h3<^Xj4_q -z??MH)hH=jK@vDgeHl@hdi6_d%^a9s0<+vJv=|iuEk-Nt -zz$_vCNF8ajhZf^HpvCA4MWIFB3~VtTGO*TEPu#T_cR&lTtC4jvOJ1 -zN#tQB0C6OTh^<|)yJ+cOP-H^Gbv72iLhOEnT_{yLlAl(h&8|i%s2PR+$r@aoS$je{ -z)t*-I7)twn`tu;7orY=EJtrlMFv*wN^45$!A -zd=N5p4|3L5ezUz$o7WK4h_KUX<7+%@0^`{c-ID>xrltZuA=_3Rp!pcY=`|ejXWZ;1 -zCproEy3vLp1feaIgG8=BG^weG*^OwVIx^>DojD -z?xIm|D)R+sg(OrOKxAgMb?QOL<+VktK*yoMYw(18l*d}OX$k6zm4ZqK!`aydhb{GJ -zGJaN%x>e!;+|22R4w1X3aseVv_Qe@oW -zek3u$Nwol)@2G2z9Y1;-*|`B|*ySKgd;r%m{PXXF)HR8VN~{7DThBv5iby@HgWk4f -zT?R&CI=o;9HQZb=Z?|CN_Y&1Cg3s(z8?(?OzY#Zdx8?|wc>N~3h)(!i`L*}6h4tZ8 -z5p`269>rC+vP^~rwCB<}d$3UL%M{qOeHMIp#6|MYQ+zeds_@Z2ikynVRHB!((};na -z20wY4I~OOWn@UU!E$;t(RFQOE&x$c66X>wk+4~6;`xP1#@h)_s -zfeok`RxHMX6mr=YpWjaIGdTE4LUQ0MuiO@Yj^r{V9{=2Qa@)VrE2sb6Et2DA9tXF9 -zlY-3=)#(=Gdy}J@I1%1l=S8S8u~obYNbdIw-Zgj!G3q2G#Pw-mDD`G~9dVh7mw+4u -zvf=yDlMJ8Fq5=H5Pt6E0{id69@V~3FJiT%hpHT>E6Bm7s*4WgmeCq-r>NOOEW7?bb -zc#DKjJk;x*_Ub7mU7oFb6#Gls)JK?S92vN|HG%j3OfZj-{hrA~r`m2%U!N1wIvWYm -zYlQq3|7O@5WAJdKL}{1Lei)M`jEy8I7F3cWhnX-JuQ*cYu%^YGW)CSZms#TB^n_~>|VM;@b8J`gC;aHm*F(F;UI&E -zeYvxeO@&sz+YitvAR;sCk4K&gF*V73@1kDUTo4z9ICSJH57Cl?E6n=@t!0LSu=DYi -zQP|A5y$;dRQq82&Pfp$joVNmkq`D+D8gSBBVVVVK`@Pm*PPRiCl{+m8+PEY@eMr5* -zoJ3DO5I->-!rr9zOkcF(q`myUy)hN^;zKR!f}`*WSf(F^<7cw(6dHOBG|1z_TGMGN5Q-q&ekn(=g{QjT&&uJU%)~agK#A&6&66NSY2Pt7wO`8#VpBK)eZPL_8@wd}*@4Kd-YDI@+d; -z>Lp}dFTxpCmCE5Pb|n!f$`b4CU!MUDb1`632LHVpNgqEQ0!FlAKUH1XnalGO%FDx_$iMT2?AQ-c2xi7a)1igyKT|XzzG$Yw|i^y}O&(Vug&2GR!7F;?M -zGNwNznLikH8!)rRmyCt)_Zb!ilohaxYv8`M)Nfiz8_UC~oiy!#P$uruF~*IJ5DY26 -z^{n9=|M(17QEJ14Wb{3R1%`g~7B4SlpH)XNeAxJIq;q`MRQ?J>hFT6pO!4ZAh74qL -zIWq7Wx&iIu07jBg8!nKuH_GxAgh~`CExuq#mN*9Xlp9@y`h9*1WT>&Mu9)4u3L8I& -zraLA#jgxG_!*>KCqjpX6rzE?FpX#7#48-oePt~1r>-vEN^S%JArR2h$8|x+7RLKGe -z&K{l1Gsx>ju#`{<Yhd)!GdmIwKa?|JA&`*SC< -z;C1;*tn6B@3>k=11B5TCWRnz`zWJS;} -zo)$d+^Sm>ox`^{KfxlVZXjb5o*15`Qp@GAGX*@^iIpEsd)B?G~XIkU9 -zTR8KvRWNz>WbuaAY;fR+?gSR#yv=iOf52eV8{>kb@3Fr&*;wAEIa$)gqgvp7FR7}- -zY;E!4sO->`E)t>ySsqV7luTLs#R^}{c{ErOA^V9^a0q!h9Jh9oWoLmUTX~`)dM5XQ -z0zACE!%h1e3=de>kD>%1v$nTLdJLH6h&Wl!QSV!%gWk>t6UWnq&=kpqgLT=0XXm^Y -zHia98^!DLHT2jMn`;B(>+8$+LoD*1IYRSe5-$7VcQ^j!q3O -z#ts`q1jf;LDF{$+NTY)nc-nX>WxpjtAvVomz` -zB<()prKn42HJLA!xD#JTf{aWz7$S|q=_i@yNxly4M(G#Z{E5w;+hhx*gR3S&$I`}4RWs(B$wYKjR({zjF|QT*lBn#mtepgD -zD#n4BcV)6?S+qafFe_T~==iie)a*3+&Y2q(VX?+5W#re^AX>%Dc5*cMk~_Pw&7lFIQ0B1Q}CqJdkG218wlVL%V6q! -zUb@Im2L5n9C_9+S?^lQmkPIr*)EW;X&0h*@Ec6_5#C;fm9EOsv*ETXf(Sdh!P3C;Y -zvKS8^;Uv6~R_I)xPXi73$<>}gU-Cr6_bS};#0wU_K|*D0nQf814ST22^xAn#&7q@k -zY`x4GLKB8~O4tdT-N_&w^z7qwizatBicYFpg4LSY%Jbq&{5P0($9p#~-qbiS;hLD^ -zu^mW9GmUMxVY=urq|Y5*5H8(xw?}eqL_!!HXKyUwY;_toh4mC(h$7`h%#jI+7FjK5 -zLNs??EvD8Q#{VQ;h2@g0e+4UrzXjN(G6e6x(MxJvAU8?kFXTs=PdL6^w({i8e@n|S -z*zBAgn1uT=gbuAy#>)AP*WfA+JM;Wa560lqw{ymwh>L=s1aCqw{Wf5Bsc0PKJhv!7 -z^JJNv&a6@dIIqWDkBC!Bpr?nT_Z=GmEr0|uB!+^~;4h=Fv%{WE8xR^Sm8+u%svB06 -znSn!Xx(>Ug=y4}U@!XN@IFUYWbO>f^4nLYR`lx@VTN7#0QZZo-YiQO=*7BB~l@gY| -zY4Qt=L1AcoHOT}=OfLGvs*OiXDq|-V5e8voag|}Cn%nH7uQ~G*hsERfUX8ldSu4ZZ -zvNcQ!JsQ)Y6+>pYFwvMUU|hPBIX@w=NNy|Uzn11SRezHNXXg6U|3)6tNZVb27fzi7 -z;S&NN>Z=CrL;hryZ@9>Ju+KuGYQ3qQzk_VeuaU3{7Bb&z&45*5WlChQzAd%uM -zHs_-)1~}j(cKrLEp7ouPYd2-Xbm8QcOqgXY32|4iThxw*8lsT#d6qiYr8tXN_apWT -z-ns_kMtmDE@`YIYQUf+_Jt7v0UC#0pPwEYuzmpzVU6<~_M}m!kKZCi=*D7&H -z39Slye(q-z^D;%EUa1iI{dn!OxSVrs?D~U8(2izKfkmYwTc?kKagcYvG5b@ayE0-O -zg^eqe7k!+65&o3O$@h0qMtConC`j^LojP0DONd}m3=i$is4GB@NnSjtMRx;LF$8C1STv|S2VGs -zLUf@VCqgCob3Y?B@ju=FfYO&R4p-5@-^GrlY8jivLYP3%oSKJ)i+d3#Z&yo4Wq)XE -zlT5O!0jImi-T{VrD~C|Hdqd_HAI4;5N+-fOkNuMx9qv`G-oRUf$x)VT<4|UMRKY|1 -z#%IURKb33T7&nEzwd^2hVEXtg7AuC{t -zdlI_9{&9P)u~X33Dz^hAz|fdTJ^Mp`l&Hn=4A17tbsF6k5l=NHI>;wKIxrs2t*t7z -zrsoA`U-w$#Q5U7z-Y+~p^*{@(JYWqXfDknPWWMH8Oar*UZSJc6BHr;)+nvdA{l%?f$Dq_Wzofo6K3n0j -zLCZ@cBl>m7j>7~U2d!8&emo40jrvo|Qg05s -za-=w+T0xoKbyb>Bhs7?x=^B9z68uK2;WT?qd@Xy`8z>QT!XtR&iznw7{UhIB>ubsf -zE!|u-0gvqrnUsD9ix0J1Q8TYUG@J=lK7*63N}otl -z?F6&gdg}fRZ=YzGbNacuC+)6=&h;i&lWx72nsa9dssD=WISu~^a_Y5oz*=c0xfQa* -zrCgM3P;#Si2S89`JM(k2%dn$-BF<$Nmtio}m-tMu$SdCaEP8EZ$IXr$gCCQ-bj5Ol -zkO!SCJ7t|R#Ip6Q7rajuQtgGiD}OtV3tgA~{y{kmt`xX|TUJHEDp5R%K4@M%o;6p= -zBw}y9J}Pqnh|qz~hi)#fY7UV-^n$L&es7~Mn+M(t@HS`SDxPE}Vs`yH^s(7G8ctks -zjA!6}3G%kE8zuwmYzyyN)muPP-<^S#Eb#fAq&dh48k2ol3o5PEpG7l#0sEsLM*R5e -z8mSJ?)np-pGxSOb?RTwrpIU|OJdsv0BM@L%7K>81&Th_T2}s7_PQT^o(?Hi1 -zg7lTM=?|p9j6kL`Sr~y`6sR~-6%=@#GcKNsWZ;@D)r-2ng`L5-3NgJ-T -zM%bG3#W7=l$AnIYS&jQ4)qgqTRrA(o6P5!B1goaygk@>u+FeXuXARn1_MAdHRq+c_ -zC{aQb*V<`s -z`V@4?P+a&~7eexL-!wHnx&h&Sk?5OCW`~5uc*EH5^!gPZxnS61gQTD8{fT|8+eZQx -z1wVX?vOO1FIOe8bHDQPR*k^3$ChS`fWp&8(v1$oT%ggI6>do5Qh35Az -z_7M+oBUrkbp>&lf;*~nCBF*^(-&@4)DMNrhGIz*of_Vq_O?r1rr_N#}TglHk$hceE -zU#>&e;uUg<-$@zylm2BmP!k?ndK0%TsA>gmHnPc_r6A?V_g@K4le*{%bPt(<( -zKV60wm^C4@MO04ZlZvU|uNU80MJZ}HpjDg-czSjulYtH{B&{ro>ANu!f4pPPwt7*12kx)KZ#S>n3 -z0)SOKmmo47S_WE05aAPfZn$MOFxwRKJFECs=Q$3R9#d(~=iyFH4f|;spjD(G(1uWZ -z3$ThW0ag+1&MIn{j)0vr-CM;YtWS?taq!+Ma_GN{kE8N($zzSk*7O8eMRZ;#nUGJ^pAiye0k}HRR -zfMh>d#Q=a+oCR7%mE;7VRRjTA#g=sQCsK2FRxy!`^rf8BomK1vTE+R?0d=Krpj8A- -zyt9f)K&wbOe`WjuU==q_CcY+*w6`fK`;3oE9`hGYx5TFRnGP8ZPa{%B$mGy|ap-b{a#@FXISi -z1QA{?MoN`E16W0BfK_AzSjACRD)2aXvx>!d -z-G0>5NCJ@oWk9Rg|6moT?yREPomFh*ORR?znqRcb*9Ta|A)r-UxU-6*Y+P}@KQ)h$ -zS+LbwfL2i{Lx2ou6(g$=fmSgeU=>Sa7l2k#*|drL9AFi9)EJ%!&jGFC5{RcX$0fij -z&J_c!VssH@4H3cxDTN{~MTSVi0n{5618oQWMY_-z#tz<7nr -zR2bE6l=|b|fCT`pViy6OgIKuMNiO_JF6HkM8P)J>{J4@iU|O#IO8Vm -z46uqY4_2`gaUZ3~j5L+?^&-G3+VoNSDNU>A0IXv7JjC%F1JEjt8O{m4hyz;1Pazgb1}e53I3^*^j)vArJ9D#qVg#Sc|G -z(sx#o=a*HS0$N3gZ+}|FeSlTex@_43TE(vzCjhG`3bcy$_g0Y(XcbSS={77l`bez- -zR9jjxD2$4ijP+DwOy^TvIW2@w#Zv>Yh2H4QGN^lZ57QoYXDZU -z`Q9oj-CIQkGL=vm)PvQ*BTcoxTE$*o|69Zb|MD``la~_E?|xaulHXP_QIid56*KOv -z;`*aij4Y<91X@KWB!fhV@n2SPY4P4FQUR=@!(Xjp*gvh}EYK>d3!ORKTg6R8pjC_j -zSj8bNQ|txGN2>^ZXBEL12@oMfs1)z4B73Ejz`a#;)wO#Dw2EZN8XtjHF%MuB#nSuU#z13&-Y??R*@KB6<2{)5lplD!72)9zvoy}xwDGO0IP`cH8LD(%D!DFsE+vF -zDvkoIBA8529uCC4RSf-Q6}2t6Mt)nxi!D~02dg+28LfC{6)}KTkrux;4`3CUe_6$L -zYL#z)T19LlrKn$4@$H>eB!0At?H@oz<{~;L{$dqv09LWqTn^H-_s%NP0Ii}Hz$%_A -zJXpm%pjAWySVieSt>VnRRZP3Liei>5n)g-_Wctx6uK571;$A?Q1Xk#uR}F{<5L#oDuX^?D7)k5(~eA7B;P)bM*cwuDCJ0amf`Ppg=HXBB%d -z09FwiU=`PZR`K(rRU}I?lGii5w~8y|S7-pM*!gG`Q-M|y24EExfL3v~qK}PL2xGJr -z(TsOv`y<=F+IRKTH#DSj6O?msOsapeik<(oinIiH*$-Cn>fS0M>KZ**#g2p1zgk5H -zfK@!zJRtyDMWI{_vENn^|K2Jx^E>zgt)j=BRiyvBRa_v%CsPCgSVfmeP~Cg0xcA#C -z68^G^U>@NqtJzbwl@C^ty$WCz`GHmu9AFg_zlNqzo!?u<<$J4$NbCW$iu89@@#Al+ -z=<+^CM0^Qu@X;!Q0IXsn9xLPbsLDI5*q_$*PphaAZwR!Ctq)d_`rayzKSQ{)imi`U -zF*Z*s5#rG*f&s0f!=F}>#d3Jc -zanPqs;?61_Kz8U`wBK7rmpiKniGr>E%PK-j+#)&wt>Py8gH@FIi&cz+y-xnqDy9Lg -zV*hWesQqXa{qC${nLF47tig>EG{7pFSSk-`+yJa%>z!4!`qL`HuFb7)2epVHLRYZQYiee8|F-#N+ -z31Ai3S%FrO?ZGN)0O;QDk9ulMUOkH -zIQ`oyvf2EyigGatk5+NQBdCK1_Lo(p(UO+{SjEVv$_kHG5z_L`Dhl6QMe10Ov -z;slvQcD*Sj&??3Otzy@sRh$4?MNObpJp5%9D<7?5yTRbeORwKnv8c1?-YWWo-dn}^ -zUslom?^bawr5I`kp)i?qFvg==lGk3Htz -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 -z2u&~@qj2#tQjsAgGJ@3&XiAbWx -zpTmu2vE+{FTCodF<7CCWdZA@n9=OWcrnFE4C(3X^pZ*|awcuqSwe -zW7If_q)Pu?zScIy0ErF1^Eo`ycwadKmyk&pgNco>+^2r<`f6AMB}~^V^9sGB3b|Ow -zjTF!WRfw^+r{v6ynNuJV@KH*{%lP4XzDO|dByAS74*ZbK523vUN|Nc`zUmO2dOyS{ -zz184<6|vT|y`%Yd=~L&JfxLG?()EVepwP`J&dr!B*R=H-UpIOWjx5sfAj0rr{8I-- -z4y(eP*>8+7`vqh41YnGm;kVCqbIA`;vbBWOlf5TfH7v=N9!E@3uEMX#u%ZWF~%{7@K=m+=|3>W4b?)* -zXN<80O4~^sfH7W!AW6^wFh(b0Y5>OA(U_G=<%Xk876iZ;F`h9-j%SR~qgrw46=P(4 -z#Ta`;0T`q0UyRZ08DpIODg9~sv!VYe@(aeui6Rd2f-%N(rc%CQj5q*{5ea}X3PK5` -zb@br+l2lKwn*lIJI{?Orf)e{1V}zpB17M6IxuI_+f4pLh1&aWTQNd&W2H_cFWO~II -znNg^pF-FXx4*8B@&3|OL~E*1)S#TeC|F~&~-jFB%W-SN}=e=x@NXN=M8-xy;A -zi)I~%zuYs%cqDq#8=9$H`Ws^;&I#`ZV2pW~vj{I3qteVo3;<*F24IX}6jCo3BZC7e -z0Ar+6i2z`X-n^z(&luwl0Aq}Q!5HfS7^4)n`X7wZ5`Zys>_!@WxbmfV#u%$#F-FwC -z7^D0jjPd*xW8`4@sbfV-ZwbH{cQXHCjMVKoCNBI_tZ%B7D>{bNUol3g7mP6nfHCsE -zVvHEZJ-9V~dk7}F}D02pHe0ArN4+mwIB -z7{`8NjAQXQ_OP}n&lsb@3&vRfZ;Vm?1!I(Z!5Htzin2=4UNJ`cXN>XYUl^nNE5=9+ -zz!;HIO*o!0#xV~oWAg)#C)0}gHf+W*8D!~S55KxnzP -z{6;SrqvQ^`+P^Tyod%|d^1zb+!Wb7<{=pd602m|5E5=A9oeBOgjPdq2#t8o}jFIvg -zW1M}#7|H$vV>Ecd7)MC_OjXsNF-F^0j8U?!K;{)=bOT_FD`Nc57-Q&fj8XRA7~`!V -z0ApnRUopmG0LEDR9~fhyd*0e#jB%`7T(Wxc1!FvZ#Td={FzyR&fH4C78)J-r -z#u!7NF-C-cFh-#lj4>F1F@il~jQkSN0E|&#E}j{HF`8Tv^Zmvcr(ZF~oQP+P5s97f -z-xy2zMUNOe>pxgoFO4zkz3QABMx!)Kg+P^VIxMz$}_8DXJ -zdlxYMiZT8wbhcABBJARPZ!7+cG5(^vGRtS8jN^I17-In#BkpgE5$G9Xl=y=&O3X=6 -z9vdWtRp;puI~h^CMgcHJm=}zZ=zn00XQ0~uV2m9v7-Q{s^1m2kNhD3jZ;Ww98?N~U -zV-$bJ7&|jdd7d#w*)Q_Z&ln@e|BW#!+mM+2PmEFSH^yl4Ul=35Q+{2n`^GcIsHbp1 -zG<0^%q>hU~Yp^foW0WGsYNON{johg_0EF1!GKy^Zy?hW3VrJKfS-= -ze`Aat4ZktQDged^^$*6V@fTy^$7h@#(H^yl2|Hl|%{u^T?WXmOe!5G6CsZ2(R&FZ^JDRsRnpE1UL`M!Y5 -zq%w@odncLXMNj3Fp0VI_qMlI=5=1GnD2jh!jNkuajN-?@Y0ntr=8zr$V^ny-80`QU -z~G -zF?Pev{|ClM1Hc%;|BW$D;=N*w@1HTooQb~}WAI;$aS?zqBK*Y|EB}QtP69B->Hmo_ -zw*L!bEPlZl6^E$4{l*xJeq)U1=>UxJd~DCRbMHSf#;xurRC*3Ri9v%Y5_)Jt?GJGo -zs@<2(lOYY3ka0@ya&%mjV!pr^*=LYCm@%5OdAiC}o6HWsp{Ne``{kmOjiSnYi>r08 -z?a!@S7#eAtGNM^NsCRUstE~w7)sn}Rx2*nA@k(ub&V7sKd_yXsNl -zfM>Br^K2qgn|!rd=BENhH!O{p+xc9pG!`@H`vqEWGDrr9TSDYh>ly@&U8pclzl*R` -zgFFKhBu`cva~8$m5WEQ77@=|$8|X5`P#nBizOyKtFXrH+=Et&LD^v|38~(?$M&=o{ -zR$25@l0EP2H%>Z-q=HR$QE8+68wJ2DhbYB(KVV3oh?6XyI`JOZGdV#+M&(ZBIOrZ# -z5y7$C^%Do;?rt`}9!>9{e -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 -ztkKvPCX+mKSPSwJknFf7c}yz -zEhM&n*-TRHd-i_zyjNaR`ayyqf!`w_9{T-w?Se`iO$Ao~HhJgWQq0CILylv%Z2&mT -z$JEF9=`$g_GQHpmR8`5nd1t52zD@j(O3n+9iZIebnC6mp;PA+sLP2`QwroH*`-Vby -z%gix!iw|5U1OwPYy9Y37J$oks@0F8v1pCZe44u9?pt4N$ShOJ{<+K^qReQC%?T15V -zyM@s(!<*WECa-tQX`xc~6>StHYh?`*8;gzb~d?;y!tt#X| -z0*sc*`WH%tv?Mbw_BF+p)#;rf0YchPW%OV{LJRJA6Mk2DS;{_aF(ZAJ17j=MZ~GQ+ -z@oV&fSb&Otp4Y+Iql50E6 -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 -z8ow9>!fF0Ug9i9nD$~FeDT6?K){ke1VyL -zkA5VM3@A<rdPF!PIvIugdOv`XvW^>@$3vido)sITNH9z`Nm -z4M@W->F8@sA0y4ah4wlpNviFl2l*xqHS(yg_s-Z0+9o+H?i_Hpbnu^L -z?TgBWo|pkY13}6k$w4WLhN*$vn?Kyhw82im`SM`$E4wghI>9%pV@t;nG$>E&#E&t -zu^DHnq%=W7fKSpEgRfldqm}6+J~Q=LcQF_*!5z+F#=@1MkS`uB?itGK$W@LM9}QHU -zeDAtj#mJubYt)AdGw9heAS*PrnT~e3?A^dRwej#!Bf;$?7*;O1<=j$oN1IMdoEVwa -z$&2XURH6d2RncNLxYryW?~VcAzisu3)a6S|l}@vrP&OPl;L(MK6D0M}D>Gj~IP+$A -z5=q|5eSpwnG5LH$Heg*p_E9AZl8^K0gT+`fM;0zuq@G(~G<|<2!-s!I^&7XHja4h^0Kf8@`RmN%_!nocn*Ua-F9j*)?8I- -zDw0;|jBd!nmPN8hLf=0Z%R5g_y|XAcj7uzMu6*)fUcPXb*vLULR_n_9o-tXf1J|%o -z{R4TUZP1W66l@R8+7bx|`Z}8^&9_Bz?&{(SewM4im;CN(K+qN0SptW4jTO^r#bGSL -z9a|4GHQm{cA6vU}aTZ2^dI4Qdp7x5OQ)U7Nj*pF5VffDU=?ujgCeEQbJ++GpTD6Q*iZK3#S=*M7qsiCLo -zz0{bh+|T6R6Pq?^>OAo82+=oF4Qo}ay3`v8lUbEckBM<-xlpm6Rl2ZbkFL~nXDc1d -z8%kHhGwPE(=L3!O@;6i(u^(y10-qXvOb0QTci}A*;EPEvyJHWlXS->CEvrWg48|F; -zOHDe4TDKCj3AXGKB<#aH5(Slt>f4@&6ZQ}(ESN2&ET~$*Qo1A7T{y42zldS?UaB=( -z<~6)7P^ve|_UuAnEXln}GSmQO%|5%SZB7RNm3jptp#CWj+k`)^6ABOM+!gxMUAfUNeHlEHavATT?F^JkAGutX7B@JU67}D!d4GKnAP5scQq#eOT6jQWS4UG+1<$SFu-qWjTdZds -zd0PrcOReq2Li^zK=)uG0ZIh{AI|806%|_kvVW%OQc1qUW(b0yL^JBw`(LKLLJ7*ix -z_f1~$LP`w-qNMM{Z;QY5pn`~6_-v=CV_VBr7w}-#d!q1Gr%GIQ-oZJec9XleX(=qS -z3PWN_;_%?=n^QH;YKGYzOzA|Nqi2Ym)YeKdOf`8){VZ1uaTEt<%C3R7^q)FVdNcE2 -z?0N}e!upeQ-lAa)f@u5WxWkFhFXwQ1eeis^cf(h_zQ4``?3)AiXZOoyb4#hkmUh%N -zIK?m!%nTo}no)v+^2Rna1^o)-JTp!5LVki=@a}G1D5%9kut?czaQ;h=>)e -z={2{*B?q>(l4y_f*X}};9~I?yvz$GjrkEaz5I`+3N1D^HYvUXSyWefKG^9l}7H$Yf -z5Jh_>q#oC@%i*(s5mpoOu>rRn=A!26tD_6q^5}L)rP0$Zl5~$6wRD=!ne)@w{gQ_w -znyNn|DR4v(hl0xHMEKUxMRrkRyX(vC+{#)-ZYsHUQO*_(hqzE6e-X#(bezo@mMY3;-kh+ -zZkxx&Tr=oJ0Aq3P`*BCUi2;Gz+t8h;GrDxC)Z_rQ)`qDs_!vBoLdAjb=?iY#vTx_- -zUBZt8=-J@Jv! -zASjKp9pZQ~FC*UvO?diTE@okv4GBSv5!mX;xKc23b0_m!vL>k$&H+Tesxog+;7Er+ -zau_)H%w34cZhq@VZGueK-|Z(U3}t_{1irG>V+x69yK3wmSQ8nma0KAE9>Lmjn?4O6 -zh2U7#`$_Sh-hE!Nc1>1y|7v5u5}XPY$gTQ_GCmJ^|Xju}Gz?1xzV_jy`mPj4=R=gpTn3IO7%$iZBT$}U7HVA!9j#@<&2uPg*VvCSckHdBWwGPfZmBFqY{YGk#&O7q7D4`LXvu}w -zh3r!tfwZnp2}`obwbB$hWLxMJ -zmWx?f>!_0N*{U7M>ciWkD5=9U9D4q*@^$#$o``RA6HMffz}HKStQ`D$g)QU2Pa{n+ -zicgC|H3#eO<1L4ynp3FpvC5+DPt|(s@$5{04M}v#yIwcUkcsC~pyEo^&W9u*=5+{0 -zO)Bix!b&e>Q=iybabiAToXUZGFz6?f#kAp0+q-h+G>vuCF@5*Q?#v1o5?zy~z=Pz7 -zKv^>Y!Mbh7R!Hk$j5`}#Hw9NJDj;7znn$tT@ww$hevy9NA*I?325Y1L*05Uo?e&FF -z%#Z?L0wOsA=V -zXZVy8Y2wAC!<5cfJ{8+C`3+B;iB-}+lDRn$PRRy``}1u2uU?f>2x5$!w{uV$P};dd -zCu;aQb&HYpo)GW=(aexY$2}qrU311)KP?*w&KYO{kBl#s1jx$Z+N` -zk321oiFm0Pf^wY%Osw^3ZYlW3w}D66fLcB3TaWyFmJf)~Pf~j2{_!#+(qUDd!}4pR -z3TbZ#22wFp^h>U16k52aT*ccf5sL@nJg{nKyw5e0#Dg|M=CF#jwX~pYu0AxFR@h!y -zvJwYM)I=c63~H@tfq2uFrKkj$Lv0*I(S!#%xry|%2R&NFSoYeKL4x5Tq=|0ayr&mS -zAQ|~y0h6B(=JTiz%SM)ZPFrZurHAcvj>{S^b~Wm9i68I=n&w8G)XO#!lS8ItdZItU -zu4g^_Ji_)O -zoo?G1wbzloJbaaD+QV?Fn*|CJ -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 -zW6XKIKQCB@yt_ycs&S;A^cn!# -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 -z@T^&qM_A -zfDgk~w>t9(KN#9%{K-%_`85-%{XW9u0}ef>$iYGdLSvIop#G{1S~yyFGLF(rq@l(@ -zQ}X1Z>;5@849MqUb(*oAGcX)zgwR!yYLmm8?R_&_S`52-`^JQ%Z*DrAO@?}vWJ$rG -zSK$mu<{@ruIFPq4w0+elm_#Q|_i1X{M6?7%?VaicQe_0al8)>7j^rw8)2xV** -zNxT;fvYkt>XD3+tjxr|ER-)pPyCaULIt)yNd|I8B_?vJYu)G~tFN0<8*7W%cX9^^d -zHgHCxsAk<^A$LrA4+Br=nayFs-Wscww>{=pB3%a*1%XCGTIERldItPsS;dSySpF~# -zJSJK2^K2CYB^q9x;r-S*hhFl0aN2!K -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 -zDmcwA@>@ -z|gO|Ey1#=*?XTu1D;&bgaU)T0EmprKmxxfUmI& -zDj`Kqin?>|JN_UCCez>)Zu=*4DTw;XPcMZ-u;m%BW2Yzqq|;J2 -z^Pzqr0TZPqmc!Ksh9fF(@pg!nx`CjV^^s*fnrSQA -zO*agM5T19Qjcn&ssHk)B)`7Io=)U~ASiGCGk%+D~@;Hr~n)#G_Nguhj;hEtf3fqW} -zcU@%Lr{B|~N=I-b@bTn@x@AuUnaH}Tj5T}ptUCGAtK)O@e_P?a6~ -zi^e(ZFZ*B935>-nxQm52af-*G#4CnXp<2%!4Ol_*bYphO`A10K+{J8yU1kI*Pzhf| -zRMn#UH}}zn!bA$|k^31NY8EjRZwSoH-#XJgiR@omO|LtAhR>zSEXMesg7J-%Mb2n- -znn0}h_pVKy>0zIl&%oy!<*nE!{Yip!c!>7DqsS-fe4+|57(;6?!rV3_m1zRf?5Jln -zSB(ngx7f2R+>Cq(x%4Z2j)!NOJ*kF7kQFdH&HC!qBbAzxmd8K_m%)gYqyKU_&dO#Z -zlL0c%8K&U`4im_pRnaqet&qAG?)Vl -z-UkEQH6!G%gr@RND&H#y{?WUZipte$c&NRS6G5G8_MrZ;A}yOs#GpY8O8yj&W@F(f -zusP#2j%CQtXb=(+fvyzNOA^~=8fN;qZjJlxwxQ$NedAc6>e!m9yFV>7A5UI>xZAv} -za}AiJ!7^posQL>`+2TKy=G+_}u3M$^+IEdS1iX1W=aV#!_{2#oH4X~XNQvtzehQ~7 -zj9YvgXKi5nnrk4H$6N|R?rp%FcpP+(eM%7`cjMVs*lZn!!1RT~ovVLd*{-SuWoNOd -z3*&&EBXSemD#hT=`DgN_)-}RWoVFRiG3qkd)N&b3>C?pJG5Dm_rE~3)O%}ZHIB(9u -z=C9{7w1R#Zacs}zGasOz2atPC&;ykV8dV}{YOAeN4UJAQ40yA{kE~AQ(r98?r!B!C -zQhASDMP^`_gZy~b)+H)71@22Qo2+pItEi8di%_a?E^;GaS$0zsG6QW -z*$vM8a%sFw*VPj`f?)e9rbouCIa#^B&t)COvb3AX7B|?t{hAsYo09bzEvdi0Yrqg< -zc0wY@?``h**X!aQwC=^12vud%Ui3S)m(d&_xroS!RgCHLPy5G?Y+ohg!_Is|Wysfc -zwC<~%!xV}l9_7p-$XHXISwET<{74A(8g;d0t+AK6h`Z?|kx2yVv8ak0=7Xw&p3TZ$;AfzqVFRRI!m3Y%j=-NWQs<)FSD2IX=ZK7%xHt0+; -z@esSd2xbdsNhHdAap8D@JUgg|7Ro4b!7AKBk@cec8R -z`~>sw85w9D781^irkM4R60~G4Pzdl1(;j%O7O@5iv#9T!b7C(!^dqvt>u={t*MO-Z -zvnD1`11Tj3wH@?iQ|aP1Orqew!HOzW28+FY;`ZzS4zivRGD-j-jy?YaarFO(4xy6?+{GsZ=dh~KOv45Q%Bw_<;kL>Zo5=Te-KCX$-fatm{0nd<$Y-qQisT*{W&UpdJL26>A6IcP -zPyPdObo_6KBdt7gOM>MO@|9#St;Nc?BSjEXTE^#m)Z}aXeU1#d#8!u)HHcc}wZl -z1eeQB%|Ou)N-5~gC<@d^Dg+>oC~6mFMJ}HTzsGrhB#cY{7vd;Ajab8~2;SC;w0?ST -zGowv?wqhj;m1u;CUz(`Z*9P{Ysm@phv4AwVhO2=FdvX;KV-NGXMz9h=seuT^g~t*- -zc%7yfLm`pcq=POl0sZzefMFxebfEQRh-{ecZJ*nUEcP_x;`jput&!$cgXHrj7PCX9 -za!Fn+j!g79yQ|*ckM8+^Jw@1`!J!>Rx#Q>QBm3``s`c@jRrb_dHn|Jz)9z! -zQt)rY@y&6w%lKo+m`4aF&>aUy{xV)%g<06m^>)TDZvAf`F=R*xWEa*6ETMJpLA -zYTIlRX1!wDY<>a3B)c%Kbl-aRzrLZ<^;+13{}3zxs5gIRy011MhH#h-S)MkUt^G90 -ze`Gr@R{#my8WBuluU?=xhoZMHg(7Z6Kbx65NDGWgZnF4 -ziB4e7JG*wBI`v`#xsbNZZAyDuooc#l)+~8dAMkZ9E49 -z9N<>+ErL+!P(J#q@<~2mq-m`kUlt{nNZk6X=o9(EczK|5m!Z5?+(4s497NfAY$8aA -zCodWHQAG(Ix3tnBwv@DNQ#h0uE -zC#ne4yS{wE_yxpC#tEtKWMFZPe=Cj)OaR5v6mc*Us|27p7Nr|#v#Y)Qh -zFHqBWW)TUK4zf5~$=u~&h?TtS0ECZZ$r#>Lv?}+!bQ-V-R8>H0nWib3Gi6FotLgjO -zPH>>dg8S@BZ?$_p!e4;PkY$8WmVdo~3gh-}7VamgX$y!Z -z7$QCP=Yob6zk)ucT^H*W1t^ZLNZfS*#qs!$;>ZPeZ(2(o*9lM@YyT*YLIjZ|0LAgw -zyW*IZ`Iq9@1)@y)9XyPcr4y8DYfsvPD#h|$aU8-L11OI3$c$&KJ4ZH@r^_NcyuyeW -zalaMEus@0;i%c0j`JRgK+h-_$ntV!~e<_ZrNF19!5K)Ko4V*5Ye=Ckr%VP8TXd!5-isRV3;`l<3X5$8b|66fP_;8)HpZiB~%mXNn4Zwi_#qq@46ytBjQ6>*2QjN!Gs< -zN9w9~#ZlE@0D0*mr+*HhID%aKr8w@tD~=1XS$U3Ls9L`j$J!iR3ANvf<0%$+{@;pY -zH$ZVzhW?Bpk8h%gJVg>zh=xz~^dE{NkMXi0KyjoUuM=330w|8E7plkaisMD*Z^coF -z`?uoA4p1B~{wR)i)=r`==-DYS?t^CkQXF3dJepe@e^KuM6h|{_TF+H$ZfOI$--_cT -zKyloxgmIm|9kz*2kVK_{!*(zsh54;GmJadLrlcg;ex_a6Wb5+=&-qJn)Gh=lj$veW -zg6_W+M>i+ -z5$8XOW97nc#Ssu~NKwIDRd>Q9e5*JBcIsE;$NN9C6^W%b2~uie2xB{!$#>+%jRp -z*@cL%9qOUM{#5YD2{Q1y58DQpy|CMc>WZ%Cp)76#qsKT-G>I{>MzC7f^NI; -za%`z240lf61p0L7<3r&lKyjS+UZp~OR~+j_+;w}u3udA?9Rd_bg7N+to&ZkJy#HHq -z%qIjWjwJxaFFmxHTK7t|56;6 -z|5hAXn$g?;Q5^9i0`~uWAMB{@lUjiCF)Ez{V2 -z)K}~#PZkEdaOf+~GK}zh<3FZg13}&uK0lNjXggngVSvsdAK5r4EFWm9GVof?l5 -zwd!CDd5zqU`_}?qWpUA$UzXYtYzKwqxH48M9VnM~VH`^y9ZDE7SczB9ra!S;SmQ~= -z!H)V&ifkSaV3jpkfpj(RSxFho!Khxho%SdZ4QLzV#6=2(>f(Af@Xc=O;3$+{m_*NX -zfLWmH#q9I)QjA#jg}{c-9z{7Pr*`^+AXs7>*i-Bd5a^Bg$&;eQvAAIj4$JSp5Pn&m-!o3K1&ui5kBUAr -zMP8B^oMhETRUeBx?nu*Ra36Rm$2?%i}YuxKqtQv%hAK@;sHJFBEpcDv&V59XmoeQ~dTB>S`VT_84o -z9q^3aW+8D(nQ};$1vohw)MUi}I2K#AD$$YF$7?7wm&s%fNS -zA3Tmu$k{~{y6kBM@(nugk2?k=NGKMUIE#ABJtI9in(Eg$6EEInOIxni27}a+G$Mqt -z)LA(CDzj`1MmiiQ0So0W6y(Is9;-L!B*meRDWx-*$FvRgQO>=swtK;LnlMiEr~4k1 -zpceKccRQ?4=*b!Jc#c3#K#H*1>C -z4f>{er+ia_;dok+z)^9>`Bc>ICeL@oQy>_|y7tQ=7emtTZb -zNy~MEFZM15M2w96S}`P)tQv+}E6K9I*pjXKivn5>_nAB_ti8i)Zzj42wA-c#KG3r5 -z8^T9=40CwwT<7SHPN~mX%OOMww4v0cvJoHywxGnbDMF?&lh8gay%TlA~vjST|>qs(2YTt9`2M31Q`J1;C>y;V5BOo>*MF=npB69TUuQ -zp80~SGvWd8s@`&P19{9(ye_)~bO9(wmL-Q4yweNgU*jeXB7@?oskP<=hR?KbLdUO1 -z;q>>VhZV*-O;>Dh2+i?LKVvT&+zY{$-WJS@$e9qL+f}zYQ{VsU -z6n}*nR2#+Io5q0gtVcAv{euUIXpB`b(h^_S5Bt~wVHvkvzv$zvKU3qixb9D>}OyL -zaYT{j%wx%0Nby1T-=s+@IpgnN=RJuP`=BMjM1bYE#-~ -zYo#9Tie#&(J3Z{#QNZywj&)74`BTWeKx)5y4Rh-16!!lap-$dRX(j*)??T0h4V(_` -zHGr3m-bq8N8e7dDP8^s4x$RFKWHUn}=P5tlVAa-bz1d7yeHI>&J5(37jTtxU*sw1$ -z-*g-a{s`~XgXvJc^*XMOi!o_esF^4d{we{x>C@WekYyAZVi9p9R)6qgZE4t)1SIYB -zc{13_c|N-f=|w*htu%Gg9fC@^HQv2k4ia)+YhW`cx(}a*}Xk!E)1SbQCzy -z(G0UG;rnHAHNp3>e0*ae8La~$w?)b3(B#&X^(avm+U4*^1NwVSd|=B|Qwo=?ys`|q -z$};N7qwn&3%2iMW1Pm)cwaSL;smfe2lQXE2@>Gaa)_LFZ`eh^Z8=!D5n4rfsavV*} -zyPeCwToWZ7oQhrXXC)qR=r57iHRP>BIW{bh4$LdP15JPbqJN<_ZqO5 -zIjmvNfCN?6N3PkD_$9)o!Y9}?3=Z!$VO*Zm**6d;p*vs38|rU6B?AmoI_?qrYwe7m{W -zslh#nq@AXkXtiy&pu85UizyjFu@k>h+%s}GvnW-qCC)=kwVya7%$7!xxC#TM= -z-XsP=G5I8`Ku&%d%9>UzrU455~lURQsUL)s&rzk#)0SB9e=}&2dLX9o(H2??X -zY5nXF)8!bM{PrD=0z@9y_Y-1@3`S!Hx3%TNP}yn(&b8~BENI_cpgd5hjP_m5Hc2r9 -z#y4LzHjRfj3m^ze{IrHLK|0tObBR2fVB(E{A{#XKWv-hjfzrpDW^eA|fzr -zaH%9X@S>Nonc<9rCG1_RF`VTs;M;(oMz*FEjj#E&CS!qKeAIzFtJ0v52iVQbK*JLu -z6su)&-CAkmULqUIUm-tTZ806e;cVH5pIr^+bqJO#<`>S3dLr2wbGDiPs -zg#O?wwKxrz>RIcMn1=*DCmTK{V|iY4@YJ+HEIA4iUU9e40G+4_KGcjbuuchN1o)y+!Y<*_dmhU0>(utrY?zASB)@Y4X~6*Vv!*0x -z1{Y#A@J#SIM5nLiO@Lq3f=sq6HAD_H$T|{oyx7DwMfE+wqUC1azFa1v=cxENT0eJ=?HdjbKEo~k6ivwn1buL2_goZxl;4R4dNDa@mI`UcNFcN`)2djLn9ja -zdX{11dJ)dVJ7JLm{`#?Kw}buYuIMS2{dMU8*e(jq-u|5Mox4uIeR-B^u__y}V+hhn95uN$*l#M=`9wRdL(WVll4ImO~hg%v#FC=|rko~xJb+bHz%=-diKY6)F?mpr?^ -zV9dC1uH9~Rt?V8;P{M5RnGW8Ovw$#n40qt+X*`Z7*s@^>GufOM(A>2&IzqvBYn$`w -z={tXZ5s_F91R;907ZW@R$>e)r_%Y$KNsy(XEX*5j#>vazuEo5ttwtybikv%-d!OE1 -z1}UWXj5R}Ol9Q6yg7@(#v^Yuk$Zh02*Yp;0Rb`)5P>B1b^v-G+MAopDj}imh74mD_ -zlrGL!nG8PmY9`j3j~;kq3mA8@V^>H0e4_B>P?U4Ydp4~Qj!h1^aq2Si7ng!x&((e+ -zjjSVgZhA5QELlJaJ!7AW9vtJRi*PZX#l4#6fs+YIfEt_PUe8o~bVf8HH?Km>@A+cS -zXK{yBbGz`prSI-&R39eHH1;WSh+X<1QRA{Kxa^sCJ3+xiy0R#J7I&-2?DPdT!s9*{ -z{@1fYr8EQRT6W5sOAPtMV{u}5<3l=Fw3{VFo4(^2FC+{LtB -zLx(q>$cv`Q7t3w!EM%S`VQdoGP^L}V*p{Zew?1!?SGA%NC%d8|ftbVz(+&xCN<2D{ -zRa=Ri`GuFbvK%s~?q{j|2cXcI#a2~|a9lJzF1%Rg6=Tp!RnT|@78sSnMU+F+{mr~C -z6_d^bs7)K+BXQ+9jn(%uQ4N&Vq`~rrJW-L8ln?yf(cZrO!-1AgibJ#zrZE*&{OK7bP+;W?cCAhp)XxH56ag21!ROW#8S^)@)TJj1X~q4P%O -zX>v+mj;IRIQZJ&e3m0`|$EUiBC`uFvo-)E(XgLTKzBPy6Nud%nJ5;BBL1PJXiv -zEyCDRDcF~7oA7Qj+S`*2;A`XhI-<8h2=3B1S{*kjg^^pHjzSXu6%+I>N)>#?W)Nj0 -zQ-0Y;4XJtt@lm1e*_hXaZFxNY@f+96U-ur{gmpELFiUYF|;+{&zSvHvp&X&8cmhmXVYwyo%C -zIvd^tk{|u*B)xXSOvRVK92!;Aro9l5aDD&abFpvaNRNcE%3}?!w{R!6?=mMnrIvS2 -zcV8Gsu{b?-VIKKmHW8pT`q^JE2Zk-?$^x{;@gt98jVNg^;lQ+C*)6VK8SRu8{6Hcv -z{YSMxgI!{{r%-1P*!&!O_;G|e`#diEKRKy>@%l0I_1AcRRy-6H4_2=D#52f`Ad;c? -z9E~!mvJKE0ksa>Znq?OOTB94%{??b;-V3taP!Ioit+A|}Js@^*p~WG5By^)uf3!y7 -zcdb!6eGpu14WKo8{-rf?0JO%@KwCkMUk=(#Iv82tX$h**vrnU$0Id;*%lb=^@f)HQ -z)u9wXYt%>tC2;_)Q%00a9eCFo7hmvxaw~GbYmLlq+eQGbabVwJ*Bl+Bs57`TW)ziT-GfeL_rOFqfk~M`V0a~NQQawuJEI?~iLd>l*QF+%I=KxxxWH_xe+>yf)!oO>cjR38&MN&)I -zHbktT44^fVn(I(Xy^$``Ydt~@fG^cVf2EY~W3}r^LWN4q6j9fRMLb)zA=IGK58d$w -z-YD|gp)%vk6TN$;rLq)NUTLWi*^`1|sJQxwQzk3LmW6voz46`B`ISf!eURptFf@`H -zz7$h#cPS+rXf){!BhEcbZ3&JmJ8A4HlOQ(Gtk;uPh$u9f$n7?*gtr^_Ck{8)bM1(f -zObtdIc+BR}??;3Jv`BgK!B*M{PtMd|JY^+)Y~Y~K^-Q}C8KrvV*!(u^0j(oFelwCP -z*?a4_%zVdzA1_0J@uzi^hlAM(G={}N7W_Ftc|1Z~L+P-HP-+9TEmld8!QOc#?t6$+ -zg{2HP_H!*`g!&_-&N%3!5rS*d$bN~?JlP($wVp32uhTx};l=^4?8OHLe;C`nFkRRn -znw70D-NO<4^m0X2Ne45<3&YrtoZPWFN6b*vLs5Ksllc`MLiRw+QY#+Ih&P9~sA4!x -zN5AedPZ;-`WJeev&9a7uD)CP|G(a3!&(2rf&&`=R7I4Dpi&-suJBq5E0&6|8_G!^= -zgXI%g4cu}lvdNhf7VCVh>yq4s4aH=}4-rjb*ew%0>n^{~Gk9<2yB|+2VB>FiW^LWK -zVh-OyDNV*BHqZ^8wtw=J6B;|Z-|{z(#H*#6a{~_Kar#i7ny861=2xuiRrAq -zBPFuG!l2yzF^?B -zB~7md41+{Gcb&wWn18WupL-D7v1!eN=gj-18LpLBy57-2$r6-ihY{*h(j1LwWJB5d -zP3Lt)A6ZRiimuxhTL?G4Ty$3Fm%3L^K01+O5?H>R<~OS1F8sjxEklrA0|bjXz=^}< -zI=j-5nv>KBbV#4;QepjatvB^x -z@80Kh_c+~ef9SukzN|6Un)kf)qF)lU*Y<*Mmd|-m1wl48EnjM;uoQnx<|T7?w!^Hb -zK0wAUf2AeqDars|@qp2p7(b~cG0U1?l8ePKcDmfA_`=}^`lHKCrc9b_O}*39zRJO2xoRR=_EtvuFj#WuL^tSy%ate-O&rdej<&^jW;D8w-p9@mr(^Nn`291 -z2@T#)Y5hbyGCKBamvAJDa5m=+Hl?!KOIVXDl$!ERLs(=`wB(VwFFzm{%T(DZTPt4XqBfv&3b`(QrbkjK8c1SWq%{DXAjp3)nT8WY -zFV0tw;oFXL6r7Jpn4U^aji`0kh2x=)4v;pCcL_z%}~OED?+eW*Ns0!u+SXDy}wb&wpROU -zA~4-Ki3b2clOULU6V1_~-#oIY+0hgmsdZj?Vt<9j(+Gxp^^f66zCpRk^AAC7_dgj8 -zWYcA|vW_Ko=|pWk-8^&3suJHrxISpX{j441!yGs;h>MTYKWj&Ye^WcUNdB%JEo1m# -z!y1)dMSMYKlyj^X2qw*T=?Cl>gDB9JQH2KlS3gwj|e2k^RKC;Dsp1s+s5p$!(f -z2>hP7NQT2+k~rSoBFKRCw}sbpT8LeK$yCb*>Lo6whV?4j+HYSnDuVwAB=UI|`lELA -zQ~$qf$1=m4guiM>y+3Qm5Gj7*KWaxvSM4&Kf2ke)%F|CjD3^(U*N#s0eyIPb9Z&lH -ztQ}Xu;T(R~jSyh^$?!+*XixfQ?HC+h(zM&y -zS$>7yC}#GS@Jl!m1((4nhW(L-ynW;0b{|diyOO?_t$_6T(bTtVLmFC~e&t4M;sMwu -z2%z56`);d8TNd2aL+PymdqACjjBhOw{+G0x*WI^BSsjslK5PrLFGGgU0xmyEvb@at -zR09xx3afEWN9V8}qkAA!vFklT%IgY27oGD?F7+Wyn-?ri)R2KmFz3_)a}MsNfo}}f -zY3%InnO&h2oijao_@j2D{YUMX?H>vP9!Fd_ -zuDK&D+h6#pH8TFGH9CH3joayflb>26N!6#;X#AJfNTgxG`46p;OsPmS86Nky);J!) -z{i!v^|E)D{1OK5lmhVgl{MH(K{?HnK{HZm9rvBC%Q~seff(l9etu>yJ{;4%8&Noy4 -zsWpD7VE&J^M&sXFqh8RTT4TWN{69lQv7eN5e!Ck -z4&_s8tdp5v{99{u`crFsO!z}<>@*!eWH44K3 -zTKq$6B(wUhHKJ8xnD%035$^W*6YqY5Rt91(-~$!~DdTQ&Ri -zwc$o*CI@unY>wt=H|%ZEVJKuK6iAhZEm@h61D-BYELLcH{+X)4{< -z;)paqfHd%Z#s#9+1&sc-_xEqL6RHEZVhvgwA&UL0DA*g_SUtbk-Yp -zBX~EiEbT4L!Ax6HkHnHIuNoK;8dOJis}R*P^z|$8MMlVLr$kC5H<$`asKVaJ9(f8$ -z>V)KQJ^^_ct57c*+|!F>V)ZWlLj86uY2Ni4ATnrFJTOXyYZ!QKfMgq@2j7(*ad41r -z4Szn=r%j5j*aZ?_n>K@pL(;jY7|$hZj$nCChd=DXIXVENq;Oxb2WL$AJWh~CS00G* -zWma3*)RH#UR5}cP8aQkv;eEpXb5Lz+190WKox|FM@YA_dsZD@yq#^@%WjtewkZan` -zwufh)`B||{D>wQMws}jTv$f0&cc2Gr_blF?5jo@L&Tnd_JFs|Yld>|OD0uSj1EY@B -zSs`ue5!Wi>2!My}W1JuAKIZ^72VTJZOL*#zR@JN293qC^qO4^Wal}myW~bL;r>mUY -z&Te1cR+kE^%GAo57lsI|GXCPFVcwk329wD$HlCvCjb=Mm$x}qYoAx<;>RkgK(Yxr> -zi9LDOekE)v27v5Ckr)%T;mjevF#y6}4zT{hC8 -z7K1+me-OCdMR1-)|KMeNptsU5 -zieni+W+Dh32sTip@D_>Tou|c)99h>UL=>H;XqC(}Pz|k-vwa*1-Qb20+Ohaxd)5mHMr@Fdm6@9(8Q0=K`p(iQ1XMtX -z$|6DZ`6>9-k1vm;DR04VqJ8gxhS6-*6Mta3waw;9t -z7!Ye9@egT7Lk7hIj0r+8JF-W(eKP>MK03ibPFjk-8;950>LrXO=X%YHlFjINbcufR -z`bf;|xQ8fXE3%T8s1Lpr->R5p38HUH*7FU!x?!j@21F@I7!lTiAvM-p^`2qvz -z5Rve!|0Fl+RFSeNue1^#RB&up7{NC@x9=ne$$^wwTxVME!#5a1N+P@`{axbMk`W}a -zo%dJ*)O)DovS4u7$jDB&4ys=< -z-KDk?=l~cbU@9B1AQd;IbIHLv%Z0A-)SBSo>Qu6}-d6zUk(<_RRyc-}(7-OkbrZ>TM7~Gpk%_7SJW0fJmo7e6>!T+56~0mLS`t!=jUpzB9a!JJ -zT@ep5NUG#V?a39pnRxe_Sa1>@4rf1hK9bUDhOnI#%v*HD{eewbP#gvq-ggHn;z3Sh -zU#TtnEgpxp>P=eN>J#G{)u3h>jG~Bi{Wq-qSbddJqjWcHPl8eC(L~Hd+^0Kjef5u* -zojT4-Rv1Esh!m}&g4^+LlQU7B>fFGa-)!J5m5Cn>TPRuhf-@+i4LIW!Q&(1{9Isq5 -zDE+o3!YoCtye*$xA8QDBvYVo>PJt -ze)@zDCZK&lYGPM7{75|Pk(=zwN~D!hFy>osG7g#>$dO)KT9{UZSgkC_ -z+nr{g$+r)MHT}wH)Bvt+&n!SH{FAXj!hU7Hnr|U!P6}DvVYbuds6PZQSpTF+U|aS3 -z=v@fs=k&TDDfh1kq2r0#B_`vBHLYNq`8hvF6meV6N)R{GV6ECkdYnbW^hryy1f+D6 -zb#0KDv}5F#nC~}EokN!4Z#CiSK0{uS)y?g1_~ -z*D3JV0GxblSpA}YZ>Hj8`IUK2Zyuih4R91Wp88^~dU>IOU -zCb&2;qUh(14T3R}S)d6hmMG5Q1zs^2!_{4JFoRWKE^b1OJn9hr_;hZYP2w9&t__n7 -z229^e9a$|Cf*a8VMr$cT1K6HB{Fe`af|^~09x6#1_>-QZvg=(0oZv35sWHKWuOR28 -zdL~#jw25pDzETpC^$u2aC?uWLY-{Z -zK5kSrVT#oAuk|46uA;r(y+{?V6E4jqPG;LP@S*_LE@H9ohIa5$&9AD^PN?2}wTo|z -zgHI2Du~J??QSI|Kkb3-h;g#x4VYQKux8TRh#ShX7Zoo4+zL+$Ckqjqk(+JBFvf4$h -zL7e6JNRd{)ghy0nfpU*m10jTq9TnZ`9Pd>8%0J?sl38+NV&UC>wVO0>a*tW}r7(~5 -zWe@p#hy-j!)!8gm@l(W5@zLTL#%x)3 -z>aBZTwNXt?SJPbiB4HGd+wPX#1idmgdU_lo<q7S`$r)n@w%htUnNH -zmc0P5#u!s3q@OMO8ykm<6i6xt07X}kvkN|6~P -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 -zW6#o$9BZMick+)>)Bd0&pHE2QP&?gp9_Li~w -z49U*e&j$wu&`X1_#aaB;ou8#I5v~(`A>$`TSHT`^-bZKeu?2H -z;IqR)1yoNfE$C!2QQu;TIKYTsOBX(L-H5r$g8BhU;F!v{wZmu>BH)s|bbJBloI~#S -zE%1={5tAuS>aPl?VfJToP7`}Ws485j&uFloGN%VvVo!4-0F#qRF5IS(Yu0A&!h0$! -zqq%EoI5Xb@4-0|tYF22oTpRs2Hum8#KIF1!XwSVRE2RPbS60LD?lpOlFv58p?QfZG -zRLJYt$^)Y`oXiCd^a -zqfmQ-Bnrhw$npU0uVavko}A96Z%@TWoIkSzq&f4GL>1Nbw5L)}q(VXQd))WYOagSe -z=py~W&cfa8BEU2X+_A@a4sRH&Ym5$ySUt4ejAy`5k{efqua_!7pW==jMye{*W$tNZ -zGbJhe_VaArWc>Lx#5S;1oq|N0L?=}i0=KGTD4Dob7&1Tgc?SdZHuMs5IC7o^Yxe6h -z@-x$E>8U#tGw{RMzz^tCFZ05t-PIjX-Ve#0b+LP?@>Xjlyqwe;!Eb0{NMHTS1z+=& -zu#XgjOZ9&m3bU2Zlr`afHOet?0vNg+kw5*G!CHbd-^wY$SyuF^=bJ -zj>{ABGp@RMU@g}P_lKYX>~OyN3U~S5esmb*FPY<-1nSvo3TIf&$GBY?EXJckwQq@R -zBvQ|_qFuz8ZP1Vw4u7l;p|9#SFvC#LFTb@+~_yc -zt(2-1)4}ID(F}t0xM}(RiQNE_vnNWc>?I*5DLiD=m0u2^HwV=vOgVLz5m%kYU^V-H -zdY_V77q(X=fcy(F9 -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 -zJa(CSs_TFi&SYis0%{G~&@2F_m0o|XzZY -z74Z`lQoZJ$=m$GmVeeJFzru+uL_#NJvoDgNsMiR|BQq9n -z5TB+Tv)D7%AP?>qh1?;J#1(#Z6NQ4&9_+k_k&9bs>IJdhuQegH3Ln$60`4odm80}t -zl|;4|2G|N)pa`sr%ce5wv#n~4xCk`@DsXtTnhj)syru5^i0lRK>a@bFFKP_KK(Y(P -zf*iWSVC@GD)5aFSQ<0%z0SzQjD5e|-bdU2vte&^-XvBYs$U9{E?33=H_3%XJZ;#;ES|5MHTI4HQkYM!5AWCD`h8vD3>L3&R`hQ -zW8o6!fITFk!C)`Bo!px$atqZSJD1k3@=kPN{W7RP;R7&Hp}l0pgv=cj%iV<!A%ld{1sIQ#snPLvVaxY>?g|?vX|V$C;9H~HY>WaD3S1Ls<@GI5m_2Vf8)_cT@H8&@RYqGm -zkCiEhKsKNj)7p_wuKQ<;*v|t^?eJzu#wAw~i!3hv;JzV1O5C|YdNl&Vs|c_i_2>v59(sA^rwRUj^(jl_@Q -zrND=0(|#rrppV_04L6h9YQH_vHF<-IiA%J~9nmM?ljbubh;N!T%P}CaZeX?N&E_w1 -zy=e(7oPE4(24s1}JC;ZQI~on^5-j@c^bxoZ-Wrp!8V`y{im?U4BPv9pJ)>ykc=l1M -zPNov5!jVXE2n|90bQEImu9PG+KKlpP$gCn6hWbEr^L&RP23FeZ4nzx}Bf7g4AG5fo -zi(tAp5Jm;z_3)rg{17?8eGNSd7EZEAiD$8OAk~1*+|psW3`Aa9&+4v00fZdebk&n4 -zT~4LoUk-8WRUxgvR3{=j`y-lxNRM9+wftU5f|&3%qkE{E0@@R0jy@Q0h7REX5qn;7 -z`6b{O9uij5-fTmQNS)N95hwo)>B?8PnNokbiCyUkplXM?!g`-|6HPXx;=w -z+ue**YToR0f#g5hP<@y-9@CLVf(Hlqcu6l)Cyge&6Ws0UzslRBZ+itS!f(i4ig%(B -z4}dj62zGzwhvoOSEZXWm91VeQSMnf&Ep17VJV4?>fa6!lg<<)MX-(}d0+oEso$OXNzC|3lq`vu@IOn@AhroH>$WOnL; -zS*_eTjD}dIer$IYeU2ytd{@eGq42CUFL0PrsMxEn#o!Tji_-FGM3&=3&d^2OiaK`YvnrJnzY~1Zrj7$`IbOiC -zxjue;k(4-ask_4@O*3GPk)RSNj^mDgl>=}b?6gOf@1EhZ&7rrlL$;r}2)&^kP#)u-3F|19)Sq(A*7~wsebINA`)l8`PGMxla0AB$QUhK!3u*P?XDN~-u*a1(v -z`yl05?L!-kLUn-GWlLl@P$^t1U;Th$nzzl;D%ajQIWC+NS}73oqB%eiMpq(1bf%#k -zo4J2-X-KcK&Cgnxu%EPxxWu7DTM#OLJgT8%C!zB|mKm9;r|P2y)>>=KiaRZ7%am0y -z=PlF@s}eH-oWZp<=G9!hv)>n@sT~DJ-u)zvZSJ<8kPqoXZVlp8W>{WESG;{@_w)u6 -zw0P9nU3+Q&;@_*;N42n=BEPGc-xySUSteZH%57KW8@aPJgf-)KKY{Mv!N34Mt6Ahl -zdh6)86Whq;X!6o#$CAY$mt6vk;cwx1We`w!*?-Ill(Ad>1&_pDqAln%0J@z)aBEqAg*&QkJKQwFkYL>9_YH-!hezU;E#7_(yUH1zWRZ5PpP?l -z(!h= -zSP}%-Dik^ksAW?{S1ri^J95rteftG1<{-$4Aapn5T_*=E*}*BUo*rzDmadK;ijw9A -zdsCogAy7$r^b`CTFZx-$@J`Mnm*E(YkUtjpbG1qQ_k_(`>If`9abd@qv~mS`B19dj|A(gQ^O1c&}$-iP!g~D0p?#1c-|kb0fGo; -zZI9#IN2Yso))Dff$G{>-h2E2ibb#aXJK6ba6E~qo&{DpZUR`hjxCa|TF`j2x2i-S^ -zyq+G22+m{zV!4pqV+Df0@y0lXYM(naN$^TBM%IngIf01Xkq5Lf-e6Wvqr$ypIEYiq -ztNW0x44`sM|Mby8TcRyeAQq6@Tx2=5zKd|hFxs{AJDx{An6by}CXJ+WYv+CvYSS=j -zx>Bdy(QEXLyr5Leksq<}uv6Jg^S>TIU16XA&p%kXsYb>ixG%laxR{?g2dN_5>4rAUR>@m>C -zAxtH;CZN^C)zq%p0dGN;4r91&&UpgEwRBH^UucIJALYVd^EQiaN2W2!dKBUYph>}+ -zplw(3B1U3|pF-mzib3(yQJjHAlmID(-Wm2~;va*13i4Q>s8=8X&yCjKXC!8-D>yR= -z)00Kr4)n5R0mJjK_kJKakYDphFihHXD&E9J>;`jvux3A$=!qx4e80G8Aoz> -z?VeV5p(>l~s4ZjwT2LRR -zft250oz_TeDeAV0NRUtHhOW!FP!70A57IC6!l5%AF)^Vj0xur?gaCf%*#3=cL}8m% -z?d)rR!uM;HE>e4~D)OQ!5wNQjzEcgITYmRCtn6bq+{yiBtww`)&oKGVekUV@a9%&% -z2l%eYc)=sB+Cz(20&U=ELJJSt>LkMz%XsL4DA^Ogf8tEO0Czl-68`2>T#Pvg^YzVX -zEKI6S)RK)lX%7a=1mE3S>4{}MTZz964)vw4KS_lB}}kR3Y|Z)s=Qg*`H`dh*%m?u9Vcxe -z2Zdkf8uLaiHXcZX(p^g*qVUzwdX}5MC&CU^4|cL@GGkr7S#>vGx~Uvr8yzK|-xM -zqe+8_EM&k%gQS(<7@7rFmzM?wLo}BG^?$cHM4RA%mgTm^uQKjW=h@`ha99)!DuSsq -z$`#BAb$M#q0V8u>c2D`7gZ=F#UgS+ShI3X3Qz4;!CCXvC-W+hAgx`R~DdJXGj=g$1 -zer*_4I8dTrNRLYp5K9lcsFO5JAN>h@H}%T}C3M5oHoice@d7RNL6T52tNwELlyUw{ -zyV(StqY`2o)uh6;%xlq97+DM_2vR|`koR?=J7Cr&sojd6{+$fRGuElKFN9baDGvZ!P>2z3NR*b8`ih7?=2ZN -z5H$lc{dV0?dw8}q!HtE~VnHpN)zJ`Fb}+lW&(zOFCc5)W_zV1?gFcsLXxime&o>ln -zb;4@lMApe=a##Qbm~d7snCg7j!Kgm%HZ8R$mAXduyy~e_I1Dtb*O+mLh^kLw@m#nb -zDXJqe$I-1|s662bZ4G|=l)4^VHWrdYzARweeTBY^>gjb{%P;Bh6J69GXo0^yYcPr9 -z_6C}ehB5-0RGe6P8k~ze2OQ3+_t%5IB?BDRsvA<;gVY)3BoGXNd(mMB4_ON0s5&e= -z5ojWxjOzKQSxCkkNYtzlHg(^wbU;=N?qsmV2r0F-Iz8CCGnk8)P+o+d@>SwFU93m2 -z30u>>gknu#eQu9a^Pr+y?zP73mB|(h9ZVPjEY_pkRwfRgTI@+9wWz56*K|%Yp&1THadfbkVykr -zFJT&V-t_qmHB>>aq|=;^DC|2}ZMWYqsMS=Yd~~x>G`wh~J1pu~_?Ip`;qy1Tp*;~^ -z9vNB9uzJ$-aBvcsJzJt8FKiTo!ZAVL78CaJA1s+_bkG5FRQM2=s=GZz_w)B9(!Y3- -z$&>H$b*2)GEgfjO6ingn<$cAD?_UxH_>P5V` -z#jEv~l?M~(!7egg;F~F+mZp~204UgBoQfM3YDcr<{M5_2NApF<1y_j2xQy@iRNITX24(;K?TQ+&$!{=hylVnTQZy^q(4TGmoAT8PC?-R -zhFG8!uL1($;Am&v<fo%bUWLFtt;t>0cXqlm?Z-VT0k>T`Wv{_3%rd>9|3&*i%EdH+oxKRNje_nqb?p+He>tq$=b|MNNfFWoTbYZusO_4G(wc -ziv%5GhsM&#&|Ly_w|C0+RZfJ`2?M*#uQq*tF@wjFe6p_a_+hi^mK~`d{a^UmM?&X3 -zRWF&&pWmL}?!3=f=x$W6b(I`^L&Lvr5bJUFhe0cyJEy;AXZe}Z=ZPQXG!Qmkg>8XN -zBHwJmQcA;`;f_a9vBjR*mw@noVu}xB&~@JOMKH~&s(5tU%^Y$K<<$&7=<4Xc7V%2U -zZpzC6T -zzoxDO2CQdLmy*^$8byAoXuSp&+%e~zzI2<&d17$c -zh{{*Pg{j_4`8qu76X4HgCE<~SSC}~p25{uqgk)xAW40F@H>Yt0nMmX?AJ<*WMhyOq -zOBovSCr`#P{oDC7p^42*o+e#Pm(xx;bV=s{G}upcc+~!ghbw(4=Xl#DdH$ZFX^7)* -zeT845e0?gUlUse5KWjt>sQo@vA^KXUhCUIt=o{yhiG}2}>@n^&-yIIP^A`8w5<~7V -z#ks5j>B|!M%9WogZjWXJ51*(aKe&EWtg?z#SsZe813)DM8^!+zqd;80P+exlvO#4L -zy>P{+63NI?)#t`>q)g*3*X1c|Z{Dq@kkcldY(J>QjaPcR57Ej~l+H=`&0+-Mw=v>1 -zxQl1&dJJWXUQQcjxm=`FJ`h!=ctV-TqAtm7*(R#e$5w)my5a_DQ54VT%x$^^V{T)q -zDL0V2uqNo6PE~=cgoE;+a%b&XbD-30oklgP-`nOPQzT~MW|Unp?d+pD6GVGlE@7B; -z0IH2y$h13v#4<(;v4kv+lo{yH@55=d -zo#M1BujM`Y5To?+}02GU?tf98jh}c1j -zr&fF)j#YoUP){URFJSit5<<52Vx@LgHB>js1E|`fE6}Q%X^_N+ya5L7mjw6EzNU$7 -zDWuQ>mA`Ki7+v-Tg4$*PfBwZ(n9wZimW)~9t -zF3keG?v%GfLEhicQ&?8nqOEfn5a0MA*SgJIxm0-~6@T>6CRF#<(=?7CR*N6_961{L<#xm>AgU1o6H&G#~vQ!YS)wHcvk49uxZyG@;t6{s(l~ -z&nKv(@xYl2`w8-_7F-V#F#EDTjQ`}%Tp{7ImhvRB>C!IQffffL%FA;Cgarr+^=H&J -zOTfE@FDIOkWq`w2oKzD)pjat(eD3qn-R4VCq4+;?vUbA)*Y3xGXApeMOuC?!R-?^u -z0u!TsXh6LI(vPfHxDl_qq~R5t4e+zUCFOuQq$Xx1_e&D1jCBxK8RyL@<-y#x=q{R5 -z6w?R_+mm1&e^^pT%Re4-?kUUzP-w8)DEE?!iF{&m^iUJ8LO-a7qhT8DSC5v)O -zVr;5SeUgt7H}&NM%Z2F!ft#}Lh8OC^g=vcE3>{20!cXF?B6XXkza_bvErEc{F$@l* -z2}Uzfk5vg=GPFsHmVaqRp{iUxCOgq3l;nxI+mioNXCZW6!RY@ea-Or0_&7jMQFjPJQUHJr4llSy(Vd6~oM`2hTQc7XzH506{n7^@^ha`xWwGZ<>9dw7@h)r@D= -z>Cz)1t4eLpQu5Nj1Q7o*ddzs>Oy2jXEsY}OfD3MSPSNAw)nC9430R8l2`V=Kre#(S -zQ=;VR6%id0$oVmW^FA`T?WCBurja1mU>wAV22}9NLMz)z98O; -zlS{sa%U!~{DP&Ayho087S6oBZC;i2is%}+#iAP`6(=WhOt`W=&`s|0^n>_gDGX`{t -z>pbUyd5}bnl2qgJEDn+ic%C73qw7*XCz4qtOIwib4*)e2=ebSuo(Fb``6vw?4P^bC -zNzj?6UgS|!vRFe}mkU?+xD3IZ&dz{LmFk=rO{cdS3JuC64G%4_~l7oLQ2xWnF*4yCxZ -zY#Ou=7#+`Ius7|;(5IQ%hKz$!O%0b$-YJhezm2ZF1z28cMbvZLW($uQpk31I<;v^3 -z#QU?Y@C{MKxqOj0CQy7BsSlODkyMAyZMT -zj!j6_c!Y{AHP4mqj|(R_hxwS^7!KS=xWEODG5_GF*#NjY@R5LdToF -zWhYCGj)A2Bqa-^jUBa^_JLHJucAkJF)^x@}X9Xbe-+yez_~kKHKZE)b{@ayq0ii=X -z^(ctqE6SWjgY&ws>!2A|2I6c73Ua21av7|u%7@M}Vb!2mplIj^r--}T$!LkznZZ2j -zvz<76Nu2HWQzrvqC1yC14rI)WobvQC?J&1;#-u1NH_rkBgfKZ{^s-drKI%@4tEf?V -z(t4zyNiVsa+-)k;PA%TY+Cp$HJH!bJrh)qW%5+M;K7tU$gFUe>=Cs~tq)aUs74%*M -z&TW5i&%O!Ed02w(SO7 -zrJr)~_{iNnWD;kD#MIpQ&p*Ult>xe}g#`?T(+xIe5K%B6GS>#_xR3yu=|Wc*n1nBX -zr`sv%!9uJ-6_J1KD?`#!UQ-hccUu=%Nv3s1P?C6SfKW_uzQ>jNP_EO=@uB3S`qrxV -z2{77I&loR~eWP5wHJe<4rKsM^bJO?380Y{$q#{3$>1{j=>|>`N1=B`$x$>M8jhGz0 -zjwHp(Gz8>(o^a{?81C~WePLEvNyOfFw4W{06u;Zb-^sv4)JD@a`)P&rZX|&Y%xNu= -zZR7s*C|!)!)L)a|SGK5RiK0O^(XmRn*P+WOwPtEzqvXHU0( -zsxK=c^}wvA?#`or)Fg?aO$2_v1_>aDEte}X5W)A{eyo4TX!DF$Tmu&ihTo9m0dUZb -zb143vB|GB5F$iy;+}Ym&e}Mf)sRgIwApw*T37q%(}USd -z3Pv6W*^wz=aF+$1d2W-B^O(kcpG?5oBIBz!^|u?k3K98LG3;@a-OZ+PPs3hIGRpVb -zb&mJ!n@tE!{;dez{Ead!TpIkjn!Hq)BH(T05@gCC1fAnC`U@(hf3hfFSB@obtg7{t -zmGB3NOeeP`Q(}2Dh|N*bXF?Dm1D;4JTj6=2$_~W`OA&23o=23Vi^WB`(oax7+<;xR -zk|FX+&_H`%#0$I?YE5D2$2vEo{H>SVnEjzaa?GwbpeXj`b^?WWTw7hAU5}eB2p&@y<2I+pFd+dMjY#tX0L8cQr#%rIU`{DuRs75D!mIDaIu~Oi|0HIZp -zMs$f1W;+dRVp8A*H~-dCt%P)5Nxb>UwuVDvz`r|2li||o4=~i2m1V350-1|7a+JOq -zb49X)F;w0C9<#!d5P9|1{XO)8Ay^b~7T)=|_^;|XK9g!Zt?Qh1io^C>(h>g4Bud_U -zgA(d=ASW*r)JTlPl{*WAZP_Q|%zBQuPeYf%lVa5Kv{aFKBHs~2BP99N5JQ(`yVui& -z;;a`r)n*ZIh;}zz{hWW>bpmS~sFQRdO(V_5fpbwE(ptR*xqcanvSdN-+`_KuXWBSd -zh|*UsX^#Y^e58R|=#Uc~tn@{M?1_nlxA9c$4MYzlh;bpVo#ND^r)Z=uoiA)M0>sxHFx)2kEr{%bXuWOWiB3e1ZaIzA%8e#974ktz{frUAM24LgC;h+9=n1LES -zqcSC#U{j3}1rm(2%mfYM{yW4AIH-HdbxSlDX5bl`o;V_fTmR)44hjE3L38mbAMyuc -zK&C#0WO4AAfM0=}BLu+f6$X9J-A5{kF!CA5u-wO#5B;ie5A8md$lX^MPHkgFH2e@> -z+moz2r}RetVRKGgJr9|@#g=0bB{hA+N1%gkg)@F}Srp?THKHz}O -zqd^e2A)eKRzO2wdLxY8%AkLpdBvgp4z)*|qCDC=eV~F(jtHeWKXTTi6ir~0VN}$4` -z^e|?x5`-RaZU<3;!`VVDHJfkpF9uR1Jd|VYCXt;gW%?q5Ln?gvaW-}5??5QauRI4q -zGqy!p0@DK&at(QP+@Qqc$Ist?`s3K2nUr4f%^Okst5MKNlL`OqW5xc4hB_B3`g$8^ -zdOBQRFBOeI3*QoKbX77OBs`HohZV!HLR-?2b}PH4*1>7#MBcbCZSH*91DLwr4!|X- -zK2`|Bm;Y%MOr%y6f#rUzGIdo*X&T-8v|Ruy7tW?7s+EY -z=UO>Hf?S{~nIs&fDEoMdFZZ%yr@Yd2M8hhpb8Fskcc+j(i%!b-J}hLJJG2Aka}F#T -zUBARssRHdMxK>6aTxEtX!NbL- -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 -zQ`~QkD8my%|D8)NUTKF*dbkM%r -z(oV8_9Fj7*jZl#CNw-oSb -zuI$_9#=uQ6(I|+*6!l@KO!hqoJVV^^!IV%j(sPC$b}?)LdB{eUE)oJqKFt}R4(sPi -z*G4LFvS^yCdpNa>@w+*v2|5x$_pTOLDl -ztf?{_F*ax)nc|Q7AMPh393mj<4%t57=`Bo^UAtq{UP|+HeQcRd?7zs!aci=mHB{jb -zTW%d1V35**C(t&}Oe=CyeA>b2<%n_3Oy1CuO*0-w`R3w{Dk<|sf3 -z#Sdx|PceZjZgo)&Cvzwb+f6R4Dpo^zJ?NWIc7%Ok?pjsbnGvc0s2)*8J^lX?&DnYGh7CFB?|p{Wb`_~D|m2nr`I -zGNDFhM%f+KL3@87Z$iaf9f)*YyjeZusxscMw{F{~c&SqL?`WtmmFTK-ZFYOGc{ -zpT`FwifFcY_z1_Rrtt+H_c1d~l?q*aW>gM4f~UT=mdL=+Ulg -z%pE!$Esy0+yQt7oj&e+=X%I*!mOGF&Ta)p*KFu0=ooH|ZO+syXM=`F|xA-1e-7J{U -zbLbe?buk?=Nf))sblCCMYsp8P&p5tzL}>*GwRY&N1!|t{Ysa7vFK#uvkfQ+36BD}^ -zUoGTAY#kf|P+oMPUXYs#lFV(K5xxd)UEi*Y1YPloMY&Vv5WvU*Pb`h83HreYtZMo= -zHh7fx=rIMVqHD`y#xUeAFEzLvSAP-6Uili|CR+Ph=nN#U25&vdp`VSUgWPZ}Nd0II -zd=tB-9L!r-R7cit2pJZtfShErS=QRbLEY+AMtF8iZ?bg)Bz~vgP%~cI%RV@&@i4_e -zYyZ^#8~uPhVw99VAiEH+u^g$_nXaX&i-bhTFM -zM7(se+Z+A)5$CRX&N%2}nnFUFgCPb-QZu(eJyk@6HAW&Cqh=;Aqh9MZ2`t -zv5Y}z2!dm3;hq}DCZ2Nbq`X~s_3D~{Lyz|pNBSj3n__N|{|4uUlDUckxsH6ysAY(C -z97JaP>j8oTkutAB4WHC{a)VM#KWJlKx+>*)JEv$2b&iT&92`A=hyA$binP!xB{XsC -z@HWzzEm?6*sQ}}OS?5v|k$~Q;DO%*%SO9aJ8T89Bo&!Cr$EUWvL@Q9m$pFISS`(0y -zN7B9lgp0KT10yC>oT4+)+dpK@OElL&85Qr2h9KV#)8+DFcmXMatPqJnbDKzH$RCiq -z1GV*g^hlHs&$ZN3C5)bjFB{1eM~hb*kPtJx)PpUqjlPD9VQ1)xp!21gP9`O@J~iDRt3cbGEM#*B|&CW@O$Rh&F9^$dWs(B)xe_gf)OC_fBLs -zUYJ-~I^;qC8*-Y6jvpw#kk)4Tckaa44bg&aA)fbF`XPh!#tLVG1Pz%4h6;XKW0+LG -zZnc_03At6J~VXTp>+E^A~e$;hLE{a=jM-kibqpCfv0j!4s}lp@aCQ*4t>Y -zA#XAu1Jyfo4}byM?VDoQ-;#o|;9?n8YFqBIdhoARCFE0dEp&VW(V`*P=yGqqUg0AJ40)eCC;^{EPC+1$omATag~-9$i3AcN7_keZ9WPN0Y3M7?2M -z&_2RveJSibCtRrx%}D5uVy|X&DZn#5V<4MH=ZSrlD61>ge~xcWS+%xWqZB={87@S< -z5+J8d#vmB)08w$D8$~{HTWE=e=ZK2jgP{%Jd?p73=KdZQs>GWUru}LO36RBrBfWOL -zgHHp|K(n*TB9w7=b-(3_Re0)KgEb>@8b-3F8v-Ejbo3+1<(;~GuzQP4`>m6F7>DLC -zXAi(8?+yJFXojKh@!*T&51*AkbV*^Upw?%64}au^cXe|% -z88E^ZnpAZP{QRlaBa9E<-a{up?Ta~n@w*p)WNpeG&;I$J4+l~JRr|TzC8%r2@I`y~ -zNPNf=jhmO}uM!N7Qr%fokZM1CsnSa_t&NwI1$_WbAquxt`*W1Pc#xmeDoA;J35?B> -zCF)}2*l5fE8uXc;=s)Ms&4;J!+jh+eRq}~14+nZ9m8=$uIgz_65yK1fr7B&%LXQg# -z@YmCAz%nQ|l)9D0ISd8Pou%<{2Ry-X7-fru+~&prP72CsdWAMVoX2S4*4@Qy-t^J@ -z?VH!HK^DAOUEEw=TwSd`ypnyC)G^75Gv~*2Pc*uYWqP=@g_n?CKFDR(bjRT2{6^$M -zr%=Eu0(=4azW$f5&JKrCpdTZk(Dr+J2CHvR()O&0txLCh?`Tdzcg{hWUq84qugj1g{ -zlq0kE$$zz|m1+@sWbpFhPecc4jYN%)wnT?Zq7dI(6+DXg28F#t)MMywDN5uS4pJz2 -zkcvL`g7gr3Oi{C46HlYKZMqN<`ksUO_7{>)mVjKX$?CYEBn9%B+j&s7I`al&OOsu7 -zdA#U}uda?4UHe6|@puuvo~X2-N=WE~+|4KhZ4tXOd`fw_2>RLFDCb}Bc9OPMg^}vMD*xhiKPe4W#g%@^h5{cHH;O;RpX&UQJZ?ucQl8Tbq#9$t!19n -z4eyjh12V{&+lvM~S!1b3B6MJn`o?;&gj9-9nyi4@ouh?l)u5=`H=F|N=4WKfh&N7K -z6O~TcFzS4hy#AmYg08u4&x?q9LojnA7etw!&)4=mKF-S0j4T$N&xXYXCEC -zm5=Y#8?+!L3!n%*P6gr=^}ms{N3 -zAOzwMjVVjgi^*lBDlQdUK%LqXH|M$b5O!F1>gM#YepIUO1A+0H+t@H)mVXLDHAJ(Wz(xKlDR;y~2J3GK_tJDiHz>lh}w~jf@fkpA^MwO@aFd$>C -zqe}9+TG6jKl9#GBwV|{jx}~+$Bg~b?>acyt3tRW{LKoJTS1L1#uhj&|j1O@*6|K@L -z!T8YvwG&#CcGyPB4bNd4E5ZD*m5p7AYu$Fo9yHWC4YjD#V=L4h@S)l=*M%IgwO$hC -zS-x{j328Aejp_>LsOMHFMaF@IN(&zKAqtCCjZ#>x+%%R>x!*YP^`cYqA93qivvuv-c -zZM|I^wCA1bXj{c*U4T%babTe*>z_Whc5<*F1;#VdDAlpTPAH;>J7woP -zIy_)>YqW6zfH;G}efq|J8gH+z%#T~UGp=p96m|bd7r(=(l3Z=sCNK21-tP1;agk6p -zsrNKjMkE-((LfPV8L)DzBYYhCMn&AzGob(}gG&COd^~C!?n7J!SSN;IQP<>#)ody> -zP~Tcgj6PX`KP5-UJvpEx-y??#NWL09oD_fl@?X!$w351L)O8{rm*iXh9=MjtQmbNs -zCjL~zI?+)RC$PcM--L3(r0C@Ge2LFnQT(Kn4UZUK{>7!D+e5lSs)~c35%ELVW{|-~ -z6&6t&<}LcQp9O-Amu?C_{m_h>*atmvIqsPSJ|bd%z`>WH=+va2eT0q -zvx{p#FAe%s*cVJM586$F@&Fup@29Jv&n6gGD*SXC)K3EN=RrE&`)L-mFN69`kj{en -z=0UpL1#1^8@oj-xBi@pSgdahy5X|8aW2O`VbD?jlL1-np;Q8ASgQ)?LRh=dREL(QCQ~*%KxOTL3cpKqXO2G#jJgCZ -z^c3kdbL-*D%M|6X3E2zdEiduyK1hp$;3t>uc8&@eH9&OL#3#oBv--A9JMCqh`Bp+6Iy?Y-VJy=DuDx?v#R8q -zw(G*e@6aq`UZNgBB;QY$CZ;q+Peh_=Oz~%0M-k@ZSS}}X=URQtVVRZooINsi0fjL0 -zHP}CV?6vvI;RkB0*6(Q!Kj5t*DnAt?_d`|p8xTb!YG|U}|8aA&Yk-YIM{i5Xm>ljd -z_&yU#SSa{oU+73BqydZd01oPnSc#9PR0f5ak6B~P-jtHzs>48lP4ae|%Qvbs;^s)D -zY!$+u)UO_TP+(_b7A2Z1pkW>4n9GR;U=_UwCKP+0e2W&DEj769fZc=tj+s1kl-_G; -z&fHz9OMEp|bm*t}So9{);;hw1&2gKuQUccwNKLk;tf*tO=0zWXN^65wAomY})`k3F -zE2l$7Z;ezCSy`>GZSz15g6vb}A#N(R@%&(~L{ -zua>MqPi8JWQ8d8^FAVwKshh=vf3pZ!36jf0B{-USEsD*7h!@#xY4K-#J$jfJI7Mbd -z6Du;;@{(aON)JwwbzTx!el%THaif60e_*(QU|7I-(= -za`Gp4v>^nJn>momAFH`kiUec?->IJ>xx2l%eS7gaz4!h)x%(Wg%OLmi^7^%NqPrK> -zV8& -zl;J41xlX_6XQZOXZSb)T32YQt#FmLUn$=(yaBa?&`}qFt%qJBypEk^V$}#iFj(eHk -zJY@x-Fzd|Fmf7>&z7bE4uM^v|f@dtYcYg1aFOQUvNcJV&)VxoEGIcQy*@IbLJJYSFE+ -zzPmJLoq8i%KNfT1%bH9Z)e=i$sdW3-TDQ~9(7k&5J$X!9QA^ocRO$7f;Z -z4gsA$Hhx%(z0lGToZ0xI$vU3=bla)F@)*1!c&1ISo@ZJaNbAZt>->{i{M{eAUBmCJ -z>q*#||Dmic6ax4wHyjq2Lr>=x=pj`5?KLYt`U=s#nSIi?EE%Cok^swEtnJY_t^%Vz -zKRtg)7ll>-gP&ab$$2Tr0qeY~=gz4%w|=s^#||3>2w?$UPjvN~S9f0#+?{M> -zCT`H+ZIwhf$<692xiMhXRUk=kJMRX|tO#VzHHB3LNq9-6OFZN-(rCPB^5$K7ce(n! -zySse-=IRROr@DQ?s>J;K21KeC3VJWl3<04x7>}Wq9{}ycD{>|^!}p{|kl6W##cm5M -z@lxDN6<(_JQqoIxUTW{ABIc#M9-`DsWnM~nsRu9R^&WY>M>{taGe6~3jlIdo-e6*H -zFmdjsyrIP&m|_o1alK%5kP&TzjCdVpv_XbQ!i*x!sDca-jQor>4>Q7E3K?XSEX>#k -z8C96k~g#vG4YPDWqxc$71O81KTI^dZd2M$pJcaLz{U -zpSQODHX9SIM)K@tgVfi@98MRZfQO*d4)d(6@6XuNZxf!+G -z@KMgFuVw_FW(4PEgon*&ULQxjw<8>rqdIZ~c{v)PEJit-FsB>gSU1`Q-Dnow2ow6z -z2>a1YH=|t;k}JsZd-uod?byWoHu2_>cq@^3E1r0*aIY2a(e>2BrqpXC^y#@S61r -zi+|RxJCJ(S)OmLBj+4^XAo -zd+GP?ZJ~<$sQ^$urK`LFR33mUZ}ls00FC!u;|;v=2Hto;Y`q>@ucl9{T5nR)+wanw -zqV%Yz^cGZl;Fca+?LWz@e{)!j8%tdk%Lr!9d$vBB2UdBlbadS>$h?8>?L%f`m7~LiLd87EQ1r2c+I5&iz=B#tOze-cM@#z`FUGEU-%n{yIJoSc(5 -z;^myg5jW=~j;Pd09C1=7am1uf;)s(vi6crJp;!7RnZ#23lT4yBPBMv?ags^goRduA -zc4zf-= -z-$QYH6DP?kWpCM4auKcAGkPdqt=?R$&VKje3mvuDb4DEL%n$Zyy$WMcO_dxDCUco4 -z%R(-TcVGPR?wfD_?ecRYRGA9Y%8}X^LA>*Yi`I1G=a_b70J8X-l_9>r6 -z)1Q)0HeN4m&a!#;{)_wn`0qdepS$f;Psb`p(`_dupyFaDOXnlVv5vg8>u>)f3;^e6 -zFYk9ncX$53;7@;dzG#6qlIJ-8^6%$07O~D^;wQ9c0R7?oLjy?jK5-(cP1O%GgKdD( -z`Y0+jjZ9Szs;uiHg}*zqtx_C_@(}|oczMvcsMda7%30U9JfXSuf{68MNE -z^Ppt$Am_4cIVA@(fmw0Eq&&ZSsYdWc{rGLp -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 -zlo`ULZniuFUvKG* -zCUnTb;ZP%T3DN*GJGLkFTkt`M6OCAf0ui!a^A;~{RL1d|F~_GDPq!471|R>Ss=I%3 -z>;L}Dh1<~BC>!QW&%1(rv>4aV_T)Dt7Qw#uW^N6gTfV_}Vu&yz`Tp!D@8{#2$&Mp9 -zhJK+gJQ`*==gD*McQ3w1EgaDqrG~c2g{Xf-W}K+|QMOA2 -zkTfDF=-q>D*uLvq&A+m;&-w}pA*IvT!-s3u>f8PuuSCo;Qh9MHOiNu~&Z&B#zli%X -z?_04`H=k66udBMKA4ILWWEe8g3K)Z8v8hE}HU@~Dm)f-fTog#jE??#x$aIZ#?(YBw -za*odq0!U1P;I}{5P$->vF7O+kU9g6p-2EG!mOJcOFzlH->{&4EnKSH}9rkQ`*t2lh -zv(c~txdcZ0XW_7C-mquhu8$6<+n|685n -zF@_?XK{#lyOb^wum;m%mT`4BVElE5D9zF0ZcAH`mwk&0Cf}ude*!;+Ayf -z4Rq^2GP6V -zQx8gRL7Eh@+=+&g1&e!_sA}^O;J9X0($?yrIW)WzUD|iXm~JbPcg)&@WD&~^O-w`! -zQb-N*8Y`^TW7{<7Ee^(#lz@?4M^3g>4<*QmN>9g&hPR?lM63o2z}%=`WIX_1(CrZV -zA5)*|uXtQnbqSMVSoF|$tgRjdy7&T7Gpq5#tK^~QS*>PWw7U+3*P?@V0cAUuXbT4e -zK;Vl~3tE64T36tE7F7X&%gCldL8YznqMb}%RPzsD(^t!eidDefQ+!xD!77o#TUt4If^)?B0{6s3*kuJ4TGrgY&+N -zT3Geq(fP&O^v#>A+Z%Rq!LFj{IelteU9PU+P%|BCcN(=$66M;W(N(vEdBJ+S#?|I5 -zL(|u$*RL`Z5HJg^P_&&oL$fKh)c7<%(Ju$gQ;xwZRT)lxO7E**qIajQnQCk1wKW^s -znz?PwbX&8bttm%S4TBx#&936zwryfLh=W)); -z#@HK6|^w(pLGa={9#jz@p~v -z^89mk;c@rm9{BX(HxT_?_D;#Sd@V_GnoFVV4K;Ma4y -zcjwTjZ&(uNwTQX=^p7+A_wLF1z)vjB;eW$-)~0!)=8xAJF$Bjd`Yc0{ESo+mgv?P} -zlA%!KU$B2FYG*>0cpZSA^M^#V`{_u3WMoat0kIcPKjZ!d5Za$6u*mkZ^3!KFu_NVR -z!~P2oT3ZjvMc+oOnyc$T90LIP^7i)i)x~PH)X;s9Pu9M=xw&3lUM#81RE9m03RZP< -zbfucL4BxfLMOM@iD;81~i|GWS8>f+xval+nwyN|!j<7L)# -Y_pD0p)linyEF$Fp2Vv|m_Qne&09~=_f-cf@<6ij|pPPHK{owF*BP0s>fs +z)D!^N)Wg`+!Nt_W(AzrNMAh}pWlrQ-iZ+&H +zYFATpQH!v4XeSW>NdOIy1S^vu5^D7Km6sf!0HDcSY&C{uk*Oq)NbjS=bMNhR=FcOW +zG*zyB?zi@GraAm&$KUTU*qoo%w2RgE=c9QqwSWEX&+qN9oSwhO=QlfD=nhY{ag4e@ +zIajgk<9lOhXXxpR`}^+T1NZjN-jw>|qq$wR^lc7nr()EtSCRWe#)NxA(^N&7=c`v!N)5%Ltfh@L-=2*~*3?>5Nis3hwd!hyoPQvi +zot=H|I53_erLKN{^4p2IUnkUV?bYDpft>%n2Q}B$qdH?`OEZ?iDfevrCj+I4Nsel*a_q7C3w%Y9^&cjr1~TYIO{*nC+ +z{?A~q$LHaabkjSG4-orlBHsUdNT%GE7TeqU^Y~d?vom!lo8G@~&;Q|y|9h(c^6zQN +zDgC#;z5jPZ-tY0MUH{wd&+Tuk{qHfkUH^CPQvL7sn_c_k^23^tf1Td%Gy3&5eZ>Cn +z{_%}}qgU$Bd(rp7bjN)H->v`Cld!FS-QVi>2fhBO_vhJtYwT3L|8LsowLY@ruZSA2 +z@B5lOc>DYN<6tG7-?#g3W2?P?^geFPh1Tk!BpY><8-v=q9YqKSkFAJR4dqHaSaMm2 +z)xKe!3ZKMJooK3I0FGcxt3|3F+cMsk6l-e@b&EqQGtHZ_opp2HbyqSotd%d#%ibpc +z%zMZ7Czrf-M}H-Qt=1*KlX^ir)-Lur-8-`+cU`>+`tEeIg(&rwYDu)3>TgS8q4Wf+ +z14yBpyS2sW)3$KSX)(s%ykcH^1^=5omLTinK}vDMi783Nr7R)#^5@)^{QltmJ0od( +zwTiP#GivnO6uoa-N+DZ5xpw2aKOk9$5(RPYUtp +zWf0hEixQcv=jIST8AKzS>4Dz{8E<0;{O`!&-kr*`!=HEX+f+-^pvI!>qQ)kD-v_3o@%OFvmFRFP0_l*GBpvP}^YAN5s8t?V`w)EqGHcFI{)3 +zW@|7lv7|5wp!7iEr(L;Q5mTb7if>huM1CunD5n^JMk4RKx=SJ8w^*qkB(13lRg8?Q +za3%&vbh14Ha=h02%Y*>y5ZW`q;3aeK4RB_Z)CM37j0RMVtSNzn#DbQTH5ctS7v?1dJHALQrFx*;wFJFO~o0tlA-RO%%Ru{u_aigx48g3ig9Y#fMXZUqU$xrzv)_=b)k)cmZg5D2g|528QlSPL8p&->MGfz*32? +zhDzJ&MU6X*QqUYLQnZLz!ql`0&>|oM)Kyp*Q;;Ia0SP=US}Mkpp-e75qeniAXSp@I +zLKOC!rR5WvJ>>mY7!i}hB2W%u>@tuupzMd>jWi{-@p5wi@T2tp1spSoC`ezr+a`tp +zQ!*Z5AbyxJ1CBj853T99gc%SJ(S-M~E?$)L_DPH6D)Ys8|=@K%u3eO46e!2LY%bZI()%lt86cC*IKD8US$N!B`52 +z-MnwYV=%eCD$685=a(D@l)Y&g1QwkVQIJE>FQJtLxbdNj;QmjbRyY&^W&k?EQYnOp +zmP?mCQ>H3ax}L!o;tQn1q(Q(=h^j$?0e2i-I(qs|=6RwXG19N{?NBeENN=!|d0R1-&W0X!ATE=z6rc4TA +zwHA4Ehg2lk9g@jDMzem$<}sKS7CmpPHq2JRi53W)bXGVTTt*DAn=}j$!0Edn60QuD +z7UTs&DimF?Wa{wcDv-zVaD6^~MIVr95Jnga64$X)Rrx)rB|@$R0LUZ3mb}Tzc-Mk! +z!sssxQNKa4?;5E6wjvjj|PUJ?HOyzK(m0c +zU?0`IFES^(3tw|--)c1#9i#>5C?qEhL%c->^Z-&y5No^^ld5AA{B)KzmIK6~dZt<{ +z@v>5bfrDF3a0NlI8 +z%tGRzHpIHjqL2u*tB74lJp9+QKejwY9*U-}DaDV;8MD=uIRAfC*`GTvljQ +zHL(?v_C6i?CH_WpDtN&zUXXc*eeHn5WIg}9M=Pw>di&{?S; +z6jsC;7nIl-6iGQxI(v>R?A21NKP?vmZ$uFhoWf?nL?|hFK0+k^BG(1M*np2|-9K9> +z3dY5D@H`2IR|O)Mj2IplaPggZ4FwD!gW~2D3uY`)&G`+nQ?V#2QT^O&B8Y;_hynfz +zAWDK{SC))P_{6G0n*;t-js-(Xw*nHQB?>UGg@sB5ltNB9%|#C|jB2*+lo>g}Zs#oR +z)N!SlX!3H^#yI8 +zCL(mqTIF#3fLOc0shoP;AiPOLRs`7+0|9pRw$wmMfRm`jG+&}ZyIh-dnbR$Um=je% +zgmFhgDJ(a{Y%Amt#C5U)xEH`A0Dl=B|1EAmy@iymp-mSx0Gn|uibD8om3G6A+~dKb +zcf#^TOBbD$Ucfm4YTxKWbrnn?!mhw;f^p;>k=boUsUuZ?(2>S_AP<0Ibj2m4<6Z$s +z`1<)?CF9Lb1?;y(0idQPC +zSQDLPY2Z6XqS6PPE+Nwkq=AHIs=N|)aU`p^x5GveIoL@v*R<%$FgBA-xj@*En +zh~08=i6e0=rg+`?NrR{bI~zlDgO%W8Kqbp1Y{o~X2#3wV{g(`rXMzimHVqfB+m~Na +z{4l_yAbgNkJ)Vg+e=n%bBex0z-E&2l#hX*tgaubX*{K%b58{L^EA!jQ7YYk`I`3mLT+Lv{m{T)$oKsm#?7337~m4861xN?Sfe)AUlJ? +z0;ZVLbSXk_@+%>fryq3kB@cS42B!=%(F^RNKnf`Vjw)$_0v-cy4L4rK)}3LJ;~_kw +zmEg{Lq=U?AYnkj>nG)`63!~d{FAEWnyc-o>hqfICr9(&qOmE)hKmWEkH^ +zz(g_g2zRs!ur5PkS8f`VPR4Kq74ZmiO-zg)MdCoqU{wXdj57`M^#L^zqGy;$sDCMy +z&jh^XOfieont1!CCh~$Rf^h8(-0m&*gH$|mbh^_}R>%(B$bc^+2;U*0B{SB9dBi2= +z+mNG%^zK}b+DkCj-A|vkV6BD~AT(cgBEd*C>Tuo_eU7@IL)^=y7IP8%qF_eST%QBM +zJT9SDwBB$zumQXc`91CPXO#&z0?gp3K6(PATkH$2z2`te3-xtDka=aJ4WK!60U@-9Ql6G7 +zSL*TqGTtj#$n_Q$k^*5aXacE4)dBj=J$oAm@r)qt +zGbS!?EW?)2m#QVp7AwQ;G?PS0NUw##>Pc0Kk8H~Z9&`f`j1_dgrsM>kXni6QjV2xE +z(k}z9bB2hjhY5&fi5Nq8$u8>;0x1bXOdlsis*Y*^w?>~Q&$`Ne;fsaZiN`aniV1@W +z4;AYo0f)|F;Y_eolp%0xghN6QFmqGf6vP_25G>W<=U5jS4|hZXIWsV56mEgN>ggG1^(U7+Uw7H_RTr6<@m&iHxu6+qp)&(#ofyR>wly)C! +zW)54d>`J{TCYRh3#yTxp>YF8|7{eNjm4R&~%r+{5q)MWC$4ZGG?$WL=sM;c!m?fo^ +zc=pU13?9y!$AMN*4^(M_xXgs__dv7BP?ViU-q*OaI9O0LxW-x9P>Dl*Pcu&p6h?si +z_Gqx=LMR6)mMVSLdOxhrkHwz8zlpmc0o1z;zoUJW#Rl?Vja`!M2a*O7O#!pkUG+(} +z5I&$X3FyXOj?>Ur#?|rIhfHCc$rILjW>F45!+{ECw#(x-;1;xLYlgtmhj!xwVy0NT|Yv+GwgWiX13UCUdZ +zMKb>sl&o!5ruI+TY;lqMShXAIw=y{%1OpU!P+kb{T)Se+!f?@CG(9h}5mS~wB+*iS +zE{)xnSRI5LnASk+n+U>{<`b`==aW4yu^ +z1)KF+i96&a>)ieMZ`lQio`|Ya-5W4KNgVL+;XT?McR&?M6MuBXV^UDT0CbEG1WPwO +zo@g-VkuMk}fv^D75O{k*!?%DGm>?HEHLd+hxy8Z+)lVMH){clM%JqtPe%RmMEL1Ff>`jyBCkgilN|zL_96O +z3ha+uUe4kg+)wSC%6$Tpi7eE>gasxbuq#UeXP^%_GH=gZft>w@vV3;LVVus-hwVam*`gXp-4aaO=Y@E_7*dVV8GjDrhrzd{Nr;W-2zqhHZAjx(PGXIPt+$iritlcH!8fxlj;15>F+wM>JJvF`7{3sc6p +z)y2Qn6vnZHNk-h-u)$hDmDNZNrUVCf{Q1F7bweevxi|<@t77TCH!re=>=$+xw}kKHhK~mu0W9PGu#KV)0Dq)WGP~;&PJr)nE_A +zY2!#dNk^7h`o +z?lo_qbyHTOmrR2!Ps>ow16~YQ0~4xC3STil$=m&qq$!r6fzb$gS#?IgobSXi!}}<- +zqZsN>7P3?_NfVM0y5s1TU}vUbfO$O%QVd*2-Pc-XOL-2GMbuvPg(sn2ThsWPYTavEh+XGA=5l$v#ziQiHj&`3~ZA~Oql=@i;u~YUi8x| +zCvO)gPQ7REg>{VCy{P?)S2&=?d@N6va6$Ivrnn;8FEjYiLf(lr8M?*f3UiRi5s#L& +zDpzA|#$(@mBkgAh+i6x@4Z`DKjz%3TJ74w~2v-WMEY@$~z>;jUXEep5C_^Fwfue|< +zz)aFvX}zo9M*&|Y*P@`XeekfXWsgJ`Jy1y~kOt>!* +z(Qs_zz_z|Q!={htz0#El#f~F7++uP>z4{UK1+dJg)ViZ(q_eCf#XlmuZ?Pv$rVMy1 +z7ChxqAGa2s*oW;H5>$&pZtFf1*U5SghG_ +zM#0cr>!Pg7KK}AEPxpeKAFahYzZ_>M`pr`GnJ4QpPu60beE%=`U&RM&@pqPD-T!9) +z2f)An-@q;3|3N+W$HqKDSFZaLOP=~~{nzLCf#3M?{f)`A2UD!jVFs_?EMC8PjQ6hN +ze@}7N`z&6+|BZUnx&Qy!`i-Nt>j&%CcUJH3uRLD5Bs<-IO)e09fR0Ubu9jDqJ10n2 +zgo!+*{gyI*PO=+|nv5QXt=;Gp&^-8Q1%I7Zd) +z4bJz +z&;3=#L<3?N#I+kdS+V{~mVJGZ6{uL{s6vjAui2v!em&r1`p-;N;B@HpJdUG2vnntR +z-={27tP#ezDhaU8?-zSeBFWW8u(7^QG$I~`zn-OB{b}>I7P#C*(fT@R%hHbg>D$VZ +z{$&sz23@^80cv}n+pn^jHZb$Sc4W*Kzb<#w{HgK-LQ3Bk((YH){ZbcQ`~4s3M>h{w +zFl?=OK?&aId(tX`OLWj1A4h3GU8?e#;0?}($*k1$4Z%N;6JW8Vz$)WFT;yGO#So}2 +zXAQIh7=n0fy@?nW?n!Z}QmeL#;!4v7W;GZefMIl-(gp+^;ge&1u7P|6vxnUat=AXp +z$#vp513_B6yWzZ0C(FdDB!P*>_9&yuf;B^SAzGH~3Fw} +zQcphCOK9XNA4lx+D?ls=>~bxZ5sF3i?q6w^9%xi367Ap&48^f>K52hdNb6NPpzG-wVRWKig{zZc{u$(@ArqOZv&nKyJp=mMIbuk4%h+a%>59j% +z>gRz322a{%@{y;KRCj*;p{Dv=aO*i}LlK+gS|8LqD9_-ZA4UK$Ow4;*<(C4NJ4(tG +zDbP@#beXn-+uS>u&U@OQgYZ{PLqY09HnGnXhsY*@udgi|MSZrJJ9Nz}#LjU-!N_Ei +z^ETS}U7e+rmos%+l&rh68jm-iWxmi_x0yG$3XUlf{(ndP>Ym|^KjD+Ry&v54pu52` +zd)?jsZ~6H$-`DMDfR$U+v3i!z-K7hAzpV@B?P3|{mPOgVPNbF8lDd+Y@hu~RcaLH`;+YS5|A!;pJxcM2C;w0UhyKTfc%-HZrL6!4m +zVdmn~BQUlwb<)lRda1KFPg>Cgd#2P;d#B94luA{v;#oR*mqQipTIOvg$Beq-=@Xm+ +zV%yjKPgmwgmP*Ywzedmh^YLV7=chWnTm8*_E}y^W>wu?%H{MR4@?GkmI@Iqi<$Ja3 +zuF$4JuLI)QU(~>s=lyish4>~r7xE6%;^Rv!UOW@xkX2{bT?I12nx=n|27Q)p-wknU +z(bgx%zSruA84}HWjMPK!QWKK*H7)5r_Z +zW0j`P*2jx6cYhsx^p&CC4$b}&-KX``$cqu*jnT>0h)0*`m)SxeCE8l_>l>5i7U*`oNZr$eNHe3e^#sZs +zatNI{$jnk$pJd#+W`Q?Ze7_{x;>J2(rgJEy^m{)#(y-AfNpwfej=y|UCMi+p$o8Hl +zkIgWhAuXo&!-X7glp%G8q>_zjLcGsTN?Uf%*iZfsarOf*)j6<{M%$<_WAMJ3%A3Y8 +z5oBxCsk_Mv`p@%f#wmeKUsF*8=SrqY6FJMN92r$M!*7VHBT?1;koZuo33t1+w{prs +zwCtqH9vQBh%<1RDPZ?62EprG(D +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 +z{c-=z@=0y~ci5_b`=V^a^h<6>9ud +z%RVK7YD3-Pllm3zI9OCKW%@k}7FI5dxv3WfTxQ$vb`2@>TFf?oRC## +zM%ZSq1-tht>TGvs8KO%Jv}tuc)Trve4k`?F(4#5?9n_fWAV*b(zQUkH-eY&(lGLuR +z8eS57Y4E;d1jn;BGbf&~F;j5<2@e=kc8n?jgyRnl0^y3fij3*ySn&6kQT%Hpot0Vf +z8^f=PA;)YY)L`yNpHXNHw!QZG`xYZ&w}a_>4u>J}$bWT47%9`&Zl?~5HirGq#ERW}I2N(Xc$M3PP*?O5>kC1Fn6eMK%H&aOIVg(YPiI*caFQia*rtS-ti=a#EL +zT7ctnWPwbe3w}Bkxj1$_^ts{@xrBSmG(mmnDJa71IP+(h3|9F@cnpH-G;kmGpq|NO +z;_!vX8WVoB@ppwIUI8n8DNWgOa6sfWP*`d_iOoOP%6ABg63byXFPe~Cmzoj +zanec1R^MwJYbZ1FF$}o%O9=4OKE)Y_OMMlw3j>t$iwBp%5Gh?A&+S~d3E;V-N{90< +zLoF)_tFWYm2N<%y7zI$d@X?(@j`<{8i3{obsufp>i{u%;TW99BeoypEWTvx_AOHQ +zZ?GQF$to$-3P!f{G7BS8_nTc&~uT*jBez?Bgq3EP&%9t+JSyTyL@xBvo1ge47gAsdsfjn8pGCh9To)~QU}2*A0?|G<_(y2eCsGh +zTJr1Bs2|%Y`3_2m@RBxuuMk)QS%mRPvSIy3QUGAc2dLLdb=yioHQMa>C{iNoe8F;u +zI?FbdG^I>qE(B~0(q`&^kw~u(8%&K{E}*G?5UGHMaWG@0@Gu}#UK;1~rqZ_JpZ#v0 +zK=tBy#XQED>-3CPOD2i+rIqhxf?92>9<>}dAcig57ynknTzpaZu)BCHHwUV4*+Le= +z?D$o(_4?>I9X!cT-gb``3m$EYSa!+)KMIuXuz-cv$p3~dbH~=OK`tggm|+PAbLw)t +z9>!ouZPBw9UFE&0GRI9CD3I^yxz0sI{wa@=&kNH+qixRW_v*N@jPR8ubByR-ar|WT +zNq`q8-7AJxc`39Bi`jD_fwW+g>9hBF!fSPru#^CnwS;(Ztj2}=j8LTW9972jZy`$+ +zIXA5hz^f!Isjd%^&Y$&$1_&~d7$+8qhr|vTo9Ee>`dkq<$Gdr0b+s!>ibv43N1n#t +zAgT+&>#~>dib)Np^iPLxFW5Rjz{eUcO6GHeabxn;c@F-AG?Is5>MN{Q4(Z}Db-}Q* +zi4ek3P3ck23&f4)+*TiC1c?Ybu)y%u<$d`j7J=rD19fJ=RT7y}P&$Skc8usvcaUyi +zM$K`eApx&nriY-zAPb3?$nXR|2^Pg%USt~|L{7B-r<#7yb%=WJBP-}6?x!4|eydimL&5{>Jg2yWvZktYkYjMdNTCof_F3T$hSr8g3 +zIT@$xQ!*2W0A1|sJNkmH-HV{F0@o>Np_SvjYpx9bB4RujEGSAL66QGn*R55vqd0yg +zT;AhOdvqYPl+}GMN|bZa0bUG*68J4t_c|he?v`Q`FzmMCsRH;dP>nv0R+8?*b`vKe +zBHYn&kqoqaI5%4z4ICg*+%ZIdXJE~J% +zDSR2Daxu8f>prw<&)P$ou}T31NpDKdE$b@!qOE+ji+cN^d2U==(;gDX&V=Yy!8zkm +zapfdRjl&YFaoHuj>pWXb^MC~D&L6nH@{Xs2RJ0htK?|@hfrM8_LP?II$GAfdifUtV +zZ1whr4M=!hF1FT#;$u9O=>eW)q0fOIm0)Fo2=!7{Af7>vKntcMJ>voa^^LZ~rkc~u +z&4ZXfF2t-4WTl{B!#Y3~a__veoT_)IB4ERuJ1nPAff0M1q5~&yWM{P1s9$TboQ&|_ +zy{x048mUo?19@h^aqfgqi(fpM8AoXiS-i_ky4YMa&9erXCa})+i9Zm5EQXhBA9yY< +z^fn+8!>8m-c3ls|d@MN&X-JgXFeNXhMo15XlK}0QR~e1Vl;cq%nFTY4Ss|O`$jXQ_ +zPYMnqn!RaS)RO3>i%Y{y%p2_rh%ZJ-1orV|B@pM;A!A|uL(oOFMRAXw%>O6iUg~9G +zCef19D%`G}1`q1gI2f>^FYpw>}9uJiJLbJ +zX+Hem`wFRC(WKEEB8qkME(2e)L_sJJKTx52&pho!vLGB%L5uC~j5&-a1>;ap16IiX +z?K%vKdjLH1CTEMQoE@gVvAToJ$rQ30;lwI#)Z|MviA&4TD6(N!;E&&+&Mh&F^xzBx +zR))QGZkSqO!g92`BrQUVm?D%j6qGfKu11y^vM#yL;Dg$F?I0a`6%I-`C!qJAi*q5` +z#YRS6Jh&Lp%>Zhw*4376eh0CY=oiu)l^@6PcV|BE2d1 +z6RaZ9>0Uc*aRJlD*UYo4wGDA)rX7PqH`N9;qVr0VPX&)_P}|i4Mp`;_6zeSbcDv}7 +zB`l96Q3zJ +z$42T)7%;rb=?}u>zLfYfQ3-g@y9yJ*Yy&h_SYjMeP|^#{tVSz9IZ|9o`Qs&DiW-Ys +zcKjAGDINCbKJTr#mZJ>8p!%!i42WQdSweDS93cS>p*gZq^HT}-qr&)i;Sz;|&ODrE +z{(6NdbseM7dYFcR&IU5*ilEwQDXNXcR0nQFV8@Q1l3WY(0TEio2mB%@@@4(hC}u!2 +zf0sG_BHC(Ki)0M&5N9D%3GAExFy>gjWs%(D5!hJ1mPs!EbAb +zvhd>0WPOM?2v&57liL8T;(lki8b>kho6tHMCZ)C*xd@FVrhm1eTu~GxEnm45+lRp- +zM0t?W`1796%gH(%=;V(7*JbKHsD7WT9uPCyzfvEiM?ZplMa6$5Kp5Y#PKGY9=5|w) +zTt1@F2qz#WLnLsb+z8>J-F77r%pyqk5TF-~H=ApMpDD1GXMrIbie098&xi&nAtcWb +zGs<$~lKF(&++ME~-ciBWzWKRKEoIfQ=_G$_O&{j};`5o-n#O|qLx+H3VucY6=YoZR +z)rV~W(U)!J7}yN1B7FLkH~T1L#dJWD(IG^vyFv_mo4Sz>t;sUo4FD^w>gUVfh83(l +zg?(rUK;$d8*&jU}bdUNFJUclNqG}Bv;pE0VCpfF!AQ)GUke{FgvvZp7XUvnqiOlTS +z#P1o3I(SsIC|`m!E(tRzL97w}0H0zg_}XRl?W+I@Ilu3@xF3m~ND=-n@}9fWlIVB^ +z5w0$$*^8COfrfP +zxrpCJM1ztR%WIcOKY}+9w&2u_n^eG6#0i5R3({qC7XiwVmGgZm2&t4%=6U^%7s(UA +z(Q-uINoy2|D;xEm6vnW2WWrVMVr@D?2I;K$?%G%|SA>I?`Sz#Z14Qg#cUXAF-zfOR +zd{(ru7;E^t<(8iW{&pc?&S>aq^;3CVUd|BHF1fKgm|U*15;=}h_XyDjHsm+-jS9fh +z2URr_iULF#hLyNm@5C`cTBb?VwUY9R&-0axk}ja;zz0Af2#tp?v1TXgHI!`xB;a4TGO&TvPnyhxcT~iRUyW)=onzIM^uE{e9vH7m8AQGd2E?&*lDXH{ifn>2M +zUWnINQx<4fsX{b-$%cqFD~xb#?gtJ?6%Rjoi8ueH_k|nL +zPiM&)Sv;f~a+dTCpga?6Z@~&TAf9JrHpE~AH^M-irN)3EEdmMwR@C~_^O~I=;_#FJ +zG0X?pzL9rBRZCyQ95Uc#6Lx}m+7ZXw8DMacnZeW`A^2P>8t>LzIHa#08#KU7t;y44 +zFOY#8#`3IQOsd&`WKF??B%3&|qQM(&x{VReiNK0DAKq|e&?8!Z1%1IJ#Y1~ESB^Hs +zIqLL|bY_~3eJCC2ee)7n3%Q?)Q7A`s^MHA7qKoX6BBYfcSO#9ml?c+;BB;zoce3=B +z?P476vt1k88mgg-tAiEw*%!9I?QVywa-)5q!bTS=mJ%U;SbzvUYa27}XYh&v0zrY6 +zD)P)ob!7-T|HUTq7o;J{MZ}g(FtXlJbnRY?J`*~i*}?eOWr7B>cG}YBIMNn-!&$YA +z5Bw>cqG17_Y9M4IVv&LGes4;}btvJhIg$m|_6(zJbhTuo|EOAMx?L80_|BP9u^18; +z!z%)t*qvFoMEE?m_%kZ4$R1bPM|8Q61e|dIDCyfZOB^2S9dsduhH~47g3^|L9tnc8 +z2GW@9R$!jNmRUl`#9mnY;td^Od-X{GAk0A)sKEK}fN^~INc&}98anxsSrBCy$0f$S&TWO{$2*_lTsk3E}g40rS1590`LV +z1sJzX#3zdA-Z8^23tLeD)vPl@`jWT~SxBKdxSVw7QC(fQ}C^|}#!O9L> +zm4RT_ofLeHzm3)~pD+VO#qWona^`0VnmfloLW`otBVrof0h@Se^ZbhzO+JKOBuIY4 +zqDjqQ8;TEEGQvVGI+tP4onL$HIum0 +z4I(BkX721l3IdiA%Ee*n;@D^)x@}>_E9chskuclw58U~Vxj7anArfsO#x4u+b~14l +z76M#fy6L6Jy7#bI_}*UA8-FV~O<4>-m|0cX&j8$4xHT|G@h09R_v#GP@%O1eLnllLbz{NmIa@zBGiN9wMHNj-4`32KvQeUdbX*icLHIz*5jDc3p +zBUWA}ZI5E<^@cl7R4;n|<;V>^S#*edc5HnyaUS^BidTs@E=D~8su1INU_67hp{E_Q +zhb}?{Hi(m>_jTm3l{|wAFtSt+MSIW|*SQOZ&UZsyh#K(V45saRZ6i4dn8!_iqIGlx +zo*r>iJ|1zp^nval%F7ljW6kNdSxxywhXM;+U04-pfo+P+&RTrk6JSIn+7>~9K3iT- +z7!6!dFN+=$@Iy{sk`u@(dHt?X6I8$1K%0$K-=>YlonU0tMx-bH~j{7GPS}n-4b3wqCnfAYT%Z24F0DY +zLmr5#4%c11PCTqwPOQ8Gd!B~E!3zJ&-4t+oX1Nnl~<;3gY(0wlR?B(?L! +zL5R3f7mbT+EeE)+G+;u=C62?gMTNy7E|FNa4-yMPoi0~YhxQcjOFyj5&##+@)F4nr-DRDx2tZ27eT_ +zL+}bwZNy5c{b$OD*&>7g=4N)O#6%LLYGI%#poA1lD(KXib~;f!Aejs4`grx>76~OE +z9>SS{aPWR%-3$HPCQ_ogQWn`d_FlL|Zn}nS+6^=ycrRO^gzj_pp1Ka^L&ff5<~BM5 +zNa3ckaC3e7yjfb)iXWrR-t;DtnUq3aw@;n-gv)T3jzY){esMBdioga`o7s=|ls#_; +z*s9w_=@5*tFY2y1+!M+QLSz&F)G+8$6cVxgK|yEWV9UdUAx-2$G1V0{Z^g#H5IOmO +z_t(DW88En*7C +zf<7fljf6{ZRzZRN81Gf8sLF~`q%Dn3IBXhQt(&lf^MZ!~u^q>SJJ#22*ZD{lI$p%F +z@0m=<^Id~eY;7m9JA@aB*+Cs{QhVgNo3_>IL}66Z#lz=LwE|i_gLA3yZCvp~Ks~0=5;535QR~s}cNzq|<-rcp*J*;K&W(Wi*xo1HDM@r=OnTM-v +zsvu&^U$G#m#BR|SF#skz3n>o>IP~f|FwEflTsN?oNZ)|MjkVQaW~y0@^T|AeyDzaUC~Y)?!p9#fk@E{L-HWl~J|vf*iq*1Ry$Ub3E_mIa5ADEq-Ia +zFrz6Ac!&ooK}mEEQjwl961mb03ZUEj0d%h`e>o=+ww*%P$xNeGs9i;63SHsiqQ=n6X~eP +zeU~jskugx_|E4M9_!I&14@bo}`IP&3Fy2{5?`z!i@%qMIi-i`hdg|<~bfAdBwh(Pc +zE$Th4x%~>qJD-MGQ!6`Tt>z+OczZ(%J9pUlsh~h1JzZvcN~MX({_S`TX?C{2H|P*D +zrs{!-i2%_odYv{vx9uD2+zfoEs65$)pv-(|ah77CmX(kcB6)HOyRs_gDGL~Y +z%w@P&^hCxQ*pz(<@&bil2^Ezh{F;{P?IwJoYb6eulK;cBHgNbCrCv|nP0qV +z+Ft7N2W?=c$zvfcJUX9Uo<=P``YS{;*C`ssgumb#EJG?Ck<-^{8AeAWxJ4qSAQZr7 +zDI +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 +zd~Go +z1{hMKivuq-nH%ac7)ME>zl)kBU~YV{fY9Y}y5OQ#P9su01jB|O9C1A&g7BSma;ik% +z_sj@6f`)66AMV1!g;QGXTLp#!3HxsvB>`r=;`8gIc7f}E^F&)1b(*t;E`0$I# +zpR5Ssds3i4JXK4`GgKv;X|EDugYL{Ik`+L3aEXIQE%Zz(S9LLIIxq^rMD>#l2B8#z +z6`&N*korZ>qMsd7=6bRc*HG@jleEaE57iS!QebPy9rXlZ(`CX7Rm-N6MW_j7uwIZL +zBomfY#f5k*wVy3eA(+jTStpGn*<)BV0P5D({scv>$wSxGe>>gUtvgq-h-cYLTBGvvW;iQu|6LiF$CBA?NjNolwn;&;w?Mh& +zq62KDp`*B-*bU~Gs>&Kqq8|}cAp%@^2@j(d@)X0Yg72;Ltb@PMFA^~0!?tB)D4u?M +zVt1@<{|du?82v*%xobaTj9#i3dTqBQwNWPr8bMDZlQ>EUQ!Ez%>j*!Xx`k)ng}-FZ +zfkdB_4eLdPzWmLp(uiOLoMBO!&GcBgZ}vM%lR#sqR6maEOAB3ev+ZA0%cOOC(VlK1 +zNzIe*bzd`JmA3KI<=V&LiEe@HCi6YHjS~4(&1JL8c3e*}Vg)0`&$zWInxOLRKoZRR +zBwx@)0}A`;pm>F!Kg_r|3@KA~s7B}ujWNft(erPrtjsEe#mlRqO&cCj5?gDy60<=KUt5^hyJf16S_fJ;#E +zE*<9`I^>wfNhVZTnn9AL0-xPFj2$bQa4zP{ddafqiw0q){f&>Wod&0Ifl}Th*agsg +zdb}J)GxdZCP^iEbeWP_dQlL71%m$@jbN${(1fp@$#VDIbf_W1S$~B3dLb%)ZG|ekA +zb&TC+nDHO$_$d&aFE~13{G72W5sBj5(Q$(8W!W1mvMq9|X2l7e#`@l!#B^$>q-F8g>6pJx`Q&8yBvB)f)&4__u%(oS|^ +zA<-%;KR57m_J%w42Fgu4UwJe1~) +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 +zsE%Okd`(f!F&ZRpXaf%W1C)(=)4&Yd@+6{ +zv?8qBNAJ&1kyAGAHaub$Z%VAN`5-$)%b;Yk;b%E4FABV?2PScyZ~C_q9FF#}w_I=5 +zM~z1P7O*qOWl5l=<*hjBF)!~U0 +zHTy*fOvcne(9z4(%r97#MPzQ}Ba4fdgGm#i&kph^QDk%7loZ1-Z0E|C9F4!rM)G5< +z5xeU5-}0gZ{MPV3F%MgN+!4Wy6*KQmaA*q!yr!G<8Z`V6{$kT +zgN7qTTIJ60a7KtJj(wxKS=!Zx3IbxHvvQtLD0=f92-I!7a!KYX+7XNkLq0oyiY@5X +zWXi<|Y*95JE5dbO7w;h-+p)AC@Px;_zd=h4;uvuZXek_2!m7g;oD{2WtOSHTU`Z<=TOB +z9%QS#&hPLT^0D~!V)H`(K^dK9;CUzdZS_moq5Ugs@~Y&`#K54dSgPjcuAlcl1^@oq +zCwqi=pcWCG_J$FJs;_(jYSskMRZ%>?w%F7140J-M6cWYNk9$xrVcJ6U +zfRBc5ZC#)c2G?`UFp~i24_*7yUS(?y4{A<>&M5lN$eZMetix +z$YmjD?mf7WH2wFM_J*xVP1s<;^^bOcSW3a6ACLJx+On_j!bWY|GmoDgsz)OSGNQ`L +z{eQJ%m+aGm=_1{PVyEvuQWDEB2F(J01=SdJN)mM4%}bP5)B`s7M6Q=s%ye|>y$)}L +znQM5Ndq2Hd&zZd+PLL6r*G`LHXb>P=T^266PpCR=NLlkP5*&Irn68Y2YD;O%Yb28M +zSUkVZ%O5t+sJtI*c+IYiq2uB#Y6y69>Nx1_SV={_Q~6PX9`wuO(JM+mTpkBVV@k3} +zwbg0%oUV!la@GKEpV{=Y(ED$o87a>Njf6ef>@~OKgK5sMph*c5NNy5xxO%gE8b!Ii~W-WFQp4OigzR*us1nA!6 +z!qWLUGT*)zbh|B9nK^LPQ1<;%=xb!<*?6>IFuG7Oi!h$ok|`S{BP$@@39Ko!M|x@R +z!Ncd%pE;0gU5FV+waPwnaEkJ5AgU7^QMy$dQSe?=7C18#YP2FtlHn0gGU{JNcj&(J +z1azOU*n0}0#n83>*tEaiIny~mFg76KRjvIzl>0+7Ygm8%qBdpKt>0DPncQ};P)4NO +za9N4-E@jpZcTX%7cHH_-Hl>DTpExN`loI#LS<8|N=0nMWIr@sQ7CpifHkXdYUxNeF@I0PY2o)l1;OuoJSJ99BcD`kr>Ij*9eYLq +zim_z2m2Nq5e#Ac4ABKOSEv(4vPXzPGIuD6-+w8iN!V;KdgT3y-C=Mh)8TQHnTuY(#gxgR5&15VT>9)w)Z&U%FwbnmIc=+2?=E43APa9^GIj21Hr?Wizc9}l38Hr|%)LCbTrH@k +z8bk*dj3r|kZ|B0?w<`PDR*QPY!Ajl~sBP|V0#VM2UFNN=hW!kr$}`Yi#LUAJ45HC@ +zeiL$-<$uGGZaB}z7M>NXo|GPpu+y1{veN5XNVMIzTX)obbyVWX74}&?NyrtR?d!}J +zzOnweIeu*R>j-=jGVs%xE_gq?x8Mw7DYTxgJoDf-D71d+wdM^dn6CVO705}bDtOVK +zKi!@iRKGb>V6!8svenm{vMFRZF9W5; +z-)fhZs=+|zV%!(#|8X>l$`wWTtKCrWG|Me*H^<}DEwSww_`Yuj-+fzD!Wg=~g^anw +z_6Hf0kw&{R^(8Rg^5m-Qx5~s-Sv>8L`0qv6ptfnAj6eP+!c_+^3)u4g-6E +zynxj%XW9(%b4@BA(t!7CB^Tgu6q&0;(-hUc=!1r**P;)L*O@`9F!$7gcIRdZ98*#? +z9$#%*vXg43_^2tOiV43z)FZKgK^!RR@yS}VMmf+jIe%O$2_}cb)ib2J{_{)}rxRgh +z+6#RFll=-rPphR|M(TFr!EqU^IXs_&M|vuhhziJKb-1wPOC#LXcrxG_mVLw>)gq)z +zyFudwk;{cy*&vgRFJM_act66U5({Jh2*61gMa42~m}{K(ba@V-Lc1Hn4EA;T+l(@q +z)~&-6Npbf!FD5{p6TI_lwZ31z?}OaPke%iHKIV;zEcgRWk+~=(rl9qa#q9jEYgE=V +zILJc3xL=4?0ZF)_E~I!E*XCk36LI+8|7i}Bco{;y5Igb^;v-yMi8MpiVoN;-9|-l~ +z&Ql7o=H{v|Fwc;~6%P%o&umi-3u52LDB}p@;UmbROSz%YDl?a=h5Ocn*HK{((0UEM +z5h2?u*HeaLckRb8H%;8XM!&9H*?m?&;hL~o)xYsKD5#Z!Dl#|o2_x8VvpMQ}5#RcG +z#M|*VM27CMCHO76J9U6kJkM)Qi^jlG0;07pXb7oNRC<#AkA!TT)8fwhs1=&W1d4Lj +z`au-I{L{7JpIc>sVxk{=Z&+FU?-Q7U{1u&_%7eO8ga5~p@i +zH)8<;{j`{soVvo-fy3a~x&BO_Oi1qE)0?urZ%W1~-^3P>hPA83KZ*33wzP}A{>5BC +zPqx(GoxcxaSAUiqgMi;n54o`wWxHaWZK#;=a+Tx78E^P+2$5WpWS04rVBPJpNot|I +z(V9{}9s^Cw0+0Soy=G;-z2op7=;S7hU2=4UoU&l +zvcu{%rvPQ3`gPMa_u9WCqtMME8X8`9!v*<|NvSC!jD1$mU1L3u%V|p9z`_KDy0^2* +z`k}=>-Vr%M%SH}T@|tsHJB~fRmEk|RBU&GaY&RYJJHxxX)0ubm>bPsm@S9I}=cl1d9o(L3%hrYkTq? +zK`-_<*I)naN46PnThX}+w<`{ty#eMaGMO0%8+`|IX{6WU#=Ujxf{6y5SU<=)t=Q9- +z{kOV$khwWP6P}%ZqQNx*&ohlK6Z*<$?oSs4tM26~b=wLFfE|!wkzPKxSi|Iy{e!B# +zVr^e8Z>mCK)h~EtGU^AsnPa<Xlo771b>2(tntK4#jCyh94jE+xDlEZ68}2^KUOO +zcQMM(D9!A{FzAh2bm?1Tm40=3iN{)1_BhaITVCH@JCTf~_}1d5=PJDh+YOPCt)M~{ +zPV=9ebLneaGP`^?n$DO%f5b9oz#}Sy`<$VQ!tkI+eZgyCJ>S<-*zTV;H12;`Y@N=? +z623+Tl!W>1v(4m0Xw`kOzwdld{22JqfBC~r{fBCG?}JKwHz==vH<)|kb(;G67{liv +z)y42GL9x$mJS5-n?%!CYM+{~4RX&?Jsid&GH!;-(23s%x#SUE>p_O~7l5_fa0!ODh +z4e!L^zqm9CfPxJDc0yoB3hJjwZwhK(65*>WC8_h_a6;e<*=wkvR?lnSlskQ#P-k>%}SCxLce*jqKe>yzij7&T`aYu<5fTjlKOFF<(D1vC|dxF7_W +zNO!l=^ba`im@VAvgRJ7=7cu>+TWCtDhGYzW+MQfU9>OczoCgmYn_}Jh6aKwFMco%$ +zpB+=+BY-~Md6b-~Kxnm&&BlxV-Fg18E3gVH +zNN%%G-k!hNGDdIxiNV}Q((Pk|b{XAn-uBvfwh3ZJoI0x`5vcio(uroxoM$fvk8=0} +z5y_zj{6V9OHZsvpznM@H1FakI`iAQH7i<3$^CCHSV4N(gGuxBs;u}A8Xoskw-d4uH +zoHAp^ua@na`RYI8`9I&9#9PEa=cK~gf=YGL6xuSsS|7~V3WnEu;XU&Gc +zr^OZi&j~>ytK%A{ke@N|fS4&m32yl$ye{ce);}%MzejX*9?MGTOuL6D??~QB6lOy9 +z9?x;>@Hcalg72@kxNG}*-cS9aa^=ASWoVe(U>mJJxSo*qYK4onomH1W$vDnQ?dS{9 +z*L5PB+^sbdcsUa-Ts*Yd>O*&-22JJCFOPq4pcgMv80*Ajo>7Ucjjq{pel-xEvwtxQ +z_r5CNF~LZ_FTJeYyr`_Qu^Pd>wL_BYglu73%ibUV`W!gj!YXgBjlV^Zo~7YVMbc+C!tnZZ8L>a_-~wr +z60z#r`aa?}BcuYpO7uvnI5$VV(A}W@m_T`S97LE*75H4@v5n{iN?Y1gBg$Da^Rxi2 +zB^Bu2u^w~MQuu6y(bx*+pd6-bX=l8*Lj%pNhK}#KS;M77c!?9zH9Tcb2|Mn#qzwI7 +z#sj}5JDFHi-}6g2@n1@y7ewdUbUqjDj1G}>PQcgZCQT~}y6))^B)7@eQ(p&ivr<$_wq72DT{+XtNSV8f6q;0j(rzhRok1#kD +zZ9)-lv%tjjx3oXBOFzchW_zo5WN&kDOhrQ}VlWn|M1{UZrCHyI3T`p3dJVhc5Em99 +z-s2*Q>nnDza~n4yjb2iDw{`@@{0-rPB`8Ii0ae;f=DDd-2}q=D@m3b_fgQiv_A|~# +zV0sgYBMYTWLYOck194prG}bAKbXp((K|2ElMl8lEKIL#N;6xR>E@V(NzL~4w{P;mxm{z#s?H~?Ks*LdKj$e)ihTxF!|M{Q;)rTThmq9?gbAI7okR%w+G(~n>;Tb6IMh7 +zW@)*pUWak(@ri06RsMa`L_UNP67M34GBeSA(kBDDxK>q@iL_Y3J! +z95kks@;~R+_gxw-k_#N=x{%}tEgb?}Vy4X5WAZ9lofKqk6`$jIv3bWmzG2*ram{vM +zEp%N|=OdY0R-han)ZKZ%(KFY=Li^(ZJ3N@#g{dJ8w!GDmJIYSKpJgY6_m2Y;nT%i> +z!){n6tKvW+R)7|E%5<^W(7a2uIve8XYpodh6O%jTHUDj=ykFmnqt@(B*=))i-rL>Q +zx5=$iS@HGL&|lR>hgfAHlzQt2wCy2_f+^@Zc3f0C!0)aw_8bGzk<;X~a17(EoNn46 +zxUHLIxd`=%g)6OxfyC$$EH$s*Vdf42(MF!IxSV|jj%@k-gEH{R +z5|ic28aJX6JxQ3tQD?666KdZ&j`sMZ*1xXZ6!T8~6>76G`!K{YmM`Hu(Oc_Pp-p2T +z@kcdl@+06ZkHw?@Tn +z#mgjrnTs+<8$U@!E^Zf&$X1fp +znB^@{IRI4A?mf#aw@jybu6e^hyoft0m3yDUN{~sY?=6Ddb&C=w{5fss{=`2$;;+_Q +zhb^bJ5xJ+$wd{sOQ?=@EKXN?@S+=1@x^_wW|2AUg(8juZo1?!mn)J;k$U^h!IvpW4 +z+5=<@dqq=JY{K`mib%9u=*8J#wE6x73ocqlv{Z~uXt49~l$x-b6QqIGeN>2!LRR9D +z$^u*8WvIL%Wc>-y4z&0S*xI(gR$UkT1@9O0u_O!8Jzce=g5GtTZofVAKbc&dSVi2i +zyBKs2+EHC@Qg+k5$*|1fgL +z|rkkeFIbZnO3v4;{pYcBGf4r?$uQd-Bpe` +zXd@C@?B7|S!0OdUD{r7APqz`b_Yzo$cr;Mj)GQY{ClSpjb4G-X$^;8%kZD{NoAtc7 +zyr`&qz^Dw5kCNFz!^&x*vOh_4c%l7c2@}$nugyiUiVlG#;uwpdfy1d87;vE$op&uc +zWB7A6H-X+hMGT50Hj&u~r%NV+5$>%ZC~3$5@(h!X9g+J-a!n?#E!kTsi(r}PQ{{=& +zukB_-e0JfC5o!z&h1B!+YBCnh%xpRHaQqyIK>JqsJYLKQx)OdlzM;$Q;zbdzk-0O< +z#u57sNKdL-AlB(cX%(ovITdEqK05{;IYX3Eh@D-}-c;%)ugUw=domTwjY42N_jJ&S +ze9cx8e%R|UEI}e`p<2f=9Qz-UYvE)HP(V2F1`n@`x#IXH@(!Ta)ca|C=@NdJsu1ec +zlbA*lrrtfpXwcjgVqN3*^e9&fC6SMaT8zW@>-vbXRgBFt#%AaXB1A +z)2EzRCPG|n8;q?ibI7SG2>Xm&Q|*aPOO1>j81S?p6#kh!;KB?LDln$7hsT&sJ7&KL +zG_%5BKURi_-m9sy`qxZtD2l&#Ph{4OFT5a~B=iprotMtW*P<<;f +zE^J{LbOXJW7Iq|gRD1wc`-!g)`@eWx`2enz1r}|6RfR%wzeRJJj6YWW=U(7CK3t8d +zy9BV~dk$9gqlRI`;wjYUL6Sk2;nb4KS@uzgZ~tIi1Oj|g%o6?sajMjiT&OL?{K|zW +zf8=BbHBsSzaOWZC5mXg$;nZUc0Uo8pYv!?Zt2!=0Ko_NdZ%8Q9``I(|Hsj8)%|l6x=+2^TPuQ{X4=c89+qP}9Dz@#U +zV%xSVwr$%^#hr6c-}~Oaefo~KdyMsIuem?(z1EoX`JH47tCgnPreQ*c{1P&aLo+Kz +zB9iM#mU2aCwYHAV@sRFFW_TN5lTq>We-JsypsOrQmJ9+bJ<8RESBtoReeQ02bm#xu +zYinq^Bef%vDc@J3*>zja;(;YaPZydBHlfj9hutTLfi+P?I5+Z_+{+WpjqZ-E7gKw( +z{`V8_@D1O8_P9*wCCQ8DHS<232I_CRIBuy6Rzs+5l{mR~k|}PYP>)2#wE3L6p+{uJ +z$n~nrx2;kWOO1pgr^^y#JKB-fk$&MDX}Nt3yT?V^>vth{?u@rgNgE91=iwHUUPFT9 +zP)L0zw?X(8=wRsfrv<_d+^9E(S+t;xgrp`G7?F$?d*f2>RTg*_`%?+wum3L+mx?zB +zP*gx%5FVlEBsAwKbC9QCR2Hu+&B;P_NHrT0k}tNVS?$iSe44c)z;3q|$ar5tWMv-q +zu8qhHw$)Eyd-x21wi0u-;e`|8E?iAjwn7I!!p(^(9m#qi9k);{h;&RDjYLKeo4Ikk;%_m +z!aRX3uaQ#H%;}m3P`2{p!r;0{nvIU`mLKIiWfknPjWX+-J)@;s%V7h!H8(JVr-$T~ +zHH-?x)^NIi_~y`mG`uQZEw$qsBG1vp>sU*B#N>KQL`&yWbKrxif-9!y91!AT>E4(N +zXL^i +zrdG2cUYOtHYd{tgo;WCP+1lvNI6>3pd+9Nhl+wSpI=n6f+ErLt^U#bu +zF4)4(t5Qi{SLbA56h}{7`i5}gjt&e(!%|c5bIB}~4fGonjY2k(|Ik@_uc-P~~D}wiBr;LSHz0uw~E0gol93 +z6jq6g5;WIQ3((tvma%A4tpB9o3Xlv@*XjdyDdt**sZegX6zChu{jU~RZ=J?cs(V(l +z6kbXMS=CCLrl4e}<{^JL2%9UYj~YDRE%sk@R3zf1!P#;dyMzUv^aBGCkQ!Xq+OJ9n +zHW>Y$brB5?MA@*!@7vVC&Xg+gPxf^r@3J|(S6r}Co^AvpOo409OIL!=_QFGw7zA~s +zZ0S8v8CI(p#U&sM#DCMc%;}8~GSJQVXBz`hG>E7K7ywn5$4%RvBtgcJu+#`X7 +zfr%FMsFo9FZ$e$M@DkJamj$CfPleDYFFtQsZRF>2K5HW%IM$y*TxE^J<_Y1}vFLNJ +za4ft~i%7>x(%39T`$~M9_H)s=caAM==y+8t>g(G+8oaeCko8J4fO +zVsY56C@JOR`!-Vo`ks(^&ONXT2%tLmgAdB7zfwu8NTo3R3$)# +z|KYHVp$Wpnc5*muknDX8P=Is6DCUZ{6>YQr3l4E7iq~O +zw6ip$8+O&)1rH|CaBhjF(ulk2m;*h>#|HU@4s4?Eao<(U^e9=icIi)s#m(0@2RiZ8 +z>hP2%mvIQH$QycCVbP8JFdxF?Fus`=vlT4TGPu``AD|Nn#SVsEczrh*1Bi5j@AM1k`NWff)o3mp|_s>DOJc}+sC>?5N`2QB>YdawBA +zDWKwQ!Usn>ZDnsQUCC@!yCwk5>MOm6cyGui<^h+2Z1$*Sv@7&wd$WADLWhuk+1O@t +z3hV`)o5$5wH0cwFy>fOgePk8S2nQ#q5xPDM@wL0JxTCHFUP~t +z*JeHzDx6b%|AoUvyV76W`2XT?b)5dg;d-{wO?zmKY$TT;sg-5e2t~)C-EUjx0;Y^yy&d+47REU4LxZ9u(T9E8^1$PiG# +zh^xlMeLI=-140P7*l|F%D6cToS%UU~HV2IMBG!q~inv{SjMw>^^l+=~{IAw63nYDB +z24sjUM>KZ;+c(9fNRfccFf4gtgZT_m)2YMAjYD^$u~zqQ43{ZLbUks%naF|bp8`|P +z|JLFPD7W5kO+6ed=#$LWZi@H)wzwWnec02HcAn0xyI~*Oij05P@`*Oe+S*wDX(;Ke +zR^g5203pb>bQ%k|-q>P#%atDtxtfSs;RHIAqm|PC>dAS%@I2sg8-SoAM8it00U2#5mQUiLJITh +zQ;J|59tpt^rNzFj%Mv+-wyE}8+XQ53wkT@0Hn~+O4n%_1==)L`JQ&`0LGI?Q=cEJo +zebQ}wbQoG_Mha;(Q(d{rQ#$J5Z88^oWOO9@5+S($GKzFYnc&Q#g`(_56~KE|EA+h! +zD$EPY$kH%%P}CIan}R9Sf}gWET*sPXZrZ}Few`C{BQQzmKoy`t7qvOmt#kB2Q=pkF +z!5{$6-?F9^lw2j_sZAec83R-5X-`R3J4(oyrcoWWZH}XFc6aP +zc~7eesTm|o*iDf34h6OB^7OHd6f{mZIfGM2@iqJX#0B1PnGx;%*CZFxAUF7Zyg}AZ +zKUAI7P+MabaVR8!qTV}8v+^i9YH!@5Ai{- +z*vFWgX!t)Bi4m4XegH2a*I&k1`acEG6;jpij8kL|vtn=X`8n&>JTA`t?Jg!$5g#0Z +zWbw{x3Q3d}WMD#KvOBWLw$qG3TPV-<`~53_IuN#^3K%rofMyIxeYMCTNCrwX^6T`PtzpMb?`BE8>Vf3lCTWyQ$kfd +z*LKk?gg7C(VR$jT^Xh_v-#pFEHNlCuW#l-(Ap;ta#Xv^>uZ-m^LB`ee2TSO +z@P?NR9yxh-;N1QXl1s+h;CWJzJ+pdQnahS4vE;u4xv*$^^PF(GMUYZrOJ5vj3za3= +z=d6aFcm#(SOf!qLFF;L*y#)V^%IHhG7UJbwGlJUEcO2B1SR}(je_s6e6#XLLv-C22-t8*S%H{tuC>#xJF@;{T7xg+MQmBW150=vJLc~AQv#6Ivx=0vd|^PTr>y~6~VP14yOXz +z!*fs&6sB|W4REEy|CPv<02cgTL@uf)U1mq`(q^3)Cy_9yLu`GKN_F+EA} +z>o9*KY=1i;zPR4=#uD8ZT9_Xh=~*um<~rI#%?>YZ7#!kPbLvMP9r-_tTtF=aNjdHq +zqAd=v8@0adf|Q6l+jglpz(&-&o_>G4ywFWO#p`mD17Vm3Td8)krC@#N*&rwyWG*U* +zV7e#%L=}2e+Ht26ae$t?%#4wacwdA*kkazX=qzft>9j0#B$8?Cm}H2 +z|4#Mr0}qOT*{gK+b0QX(!+8&jRJ8fzwd6-Xp1sLU$Qh_LWW;RPeuaX1HpCx)f;Mw1 +zr=#wGcTQeDi`R%apaPJX>cdrC%>W6l?-%7=Ks|HFe}d-yE=f|2xez6+lA9R>Beoql +z2*ijk8cRK(tTlQ_v_)Tu9k=8ex+{!WB;&wOB8N(pM?$BQk1CshBD@Iz0k#X^$rUNi +z$^_jG_Q}S@z{3%r(zOhv9~a~O4w^BE5ScQ+yC{(9Swdwr +zX8KwY5CLNCz*19((#jLhEX5?UzA#gU|9!T8^6xMg0cV1$hj>kvWj3j!g3DW%@>^dy +z*~%gkAaHARchTI9VTu-ysupRLZiCrvtG7n?dRJ4M3xbGXp$1n5qQbP+eNC(~GCh&# +zB7#HlB#0mvnD9b!^{jF6{0~=^au8b1iCvLJCg1ll;SChur6RzW(fw!O(2BYJvU>a +zv6rgLtk&XfqQpZ)&_1I@++K&O6&3lseP +zjILY}rQw@wUK0AhlDSyN15?T(NwH?&m1qCMSc!207K +zfHogBQVt(nyM(Nb@&rlVp18u@M}Brs2VM#4@aa^cZZOxnm)4Xa0shPK@jBiwW;wFZv^Nz~bV~%5SqX0O7Xd-9C)h1Y7|~#JJ^9x<7c&^ttkFn{C9PnR +z#xyaCZPxSWj|EfWBsM2(6kgA7o-1MJ6ioGJSCv&Jw_XqKt-e#qtSyp3+F{}dv^urk +z9!Q)-5J7MBl`!Kj@$|-Bq7E7XD-hRY^(rcrRnaytBu)bPSrDM(K8P_pl#EhiaB@E% +zq|c?j3^_VlNqJ7+QL`#WJc=f3z~g)SsU +z$PJ70t(Pr9OIP8JB5lp54fV_(Htp2co&S&M3KvEqQipe9qdhRLUQeBP$v!iqI57gX +zH@%=>dn~>(+Qz=b9t$@omKmwg-><}>!M^R2k8)?R3^V9uy@e_(`*);^3q#CKn4`|q +zp3)qVPb||Gfq)_$?6xH9^#@*(-A|AF7_1rXpC%-INQ5-4nkEcorOFyI4$_OO4RyZg +z-KB$3Xzy=I3tjMT5#s?UKUU0JZ)QjuO=itnRu-$R`->qzFVbs0yicDRRK=NB|8-Rkr6>{w<0b4 +zw>y9{X5mQmdn1Y@0}G?%qQ4k}rd_vWcS<4)cKXPJiypyQP76z0c`@1Ad$mAOB1a6p +zFnLh2DJyS$&@hY|a)4%FCMGR`LU;~?f##hX!azMN1>j7;t5{BMo-rZINemBVmoB=v +zdZ07$W*Ve^pMXYaNjpPa+)ECK+rBd9*HP7+IF~w>Ym9;np8)8L#oH9fbL{><0T(P)QbAxAbPAdm=k(#S=$P&H&jiy=Jkg>@>F7yMU#gTR*Oo)?2@jm&8PAZZ2*RGy$(aHU)?al4eZ^(jj>d$L+V{UZ6~ +zw*V)Sz1`s)P_ms@E2in{bDUh6U1hN5&%wA&z8O<;@Z18fF7YCuwLBgQ)b-aOiOlbb +zAmh6yFiZ5W3phnF-J@wc^B!TpjR#by->oY(AXn21+ZsNC+E%g!za7y*VZZi{Cz%)Zrs={I4b?ez)`%;?}$h$;B`{TcciSZZ4!b=HB;T +zdt-%rKnKX1gUNIfv +z!*JI8qjqPR2sJa=`0~Mp0v#XxC&(NasGCqB?8CH=0%^2bK@9S1zXL(CHp^B1gXiL- +zs6G7eeXivJeYZ5L+JtFC4{oPG)mNtSTGI~+9u6dy0$JW)I0}17An1;w>T`RU8qyn_ +z6sJrgG?}B#F+T9kE^VL+96bLZ9y6>?e(Xp5y#OQd`lS(rjNlbCInb|!>*CWG;VCz(!mO;3GM1c{(^bL#oeGI8cmgFsm6qCxnik8ZaG~v7yW*` +z1%pwe=xVxHsr!HSxfUi+9#F8gWPt*MA)SC!SVo@2c1l!cB&WmF8uONO5tf(~Osq~A +zH%So2;}ZE +z0U-v{{z(?}Po1j{s)%bEQU>ae5u@CK_}-9Q7_iZYLC+D>kHKRI72`un@g+I`sVT#6 +zj#sE}Iz%}=<3I6SngJ+hF*MQn$04A9W+cMn_Dgn9i+LNd+3;eC&JwXZR9&Ko4s8$=EVx>0!)sSp)&8wqmGCzFL;AcWx@ +zZBATo2p~sZoJtz~N@fGfhyPDJ7iS2Mp)qCPp{IpNhZ(UXT@+s^SxpPEgkn6RF|c8z +zKl;${#{hG55q3^{UvTKg?_GB50i65~82p!JprcLTis$PERSP6pDGoPqMA&R?f +zWq*~9+x$Bh$sOP4Df-dG-SgrQo?_Y|p~CcghDmS^M2E#wo*d{G^N<;ssu4LTWE||y +zGwC3$pRWI!=PJVuWEP&AST(zNaNiYGt9YEmp;mek0Xae|>5n_VGj +zrRS(YtSMo8cdV>|2OH%@04-XsCRoRC41NF^0;27n@ULg*dS>x`RNf^%xneOEa@0A; +zC8!UW>{BK$hoH_g2(?ZF?S_dOJi9W7q4+2wB>A|3jsT0voh%-VuVo{3oHPJSo@b!a<0q1pxU +zgly77RWUkO^nK)PHaO2X|BCFX3jc(q8(4j4vjRjG$4M=DuN8pYYmx4^6|V#B0qbwLE0@! +zcC45$5UZIHG4?cJ +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 +zl;E*70?wK^o{X;$t2enu97MMKnFz!)5iA +zLU*YNifz7>mgLjr-dBH@&Fvw?Xl5bnq(xOzl0{|{r_%Y%xFBmaI@u7MV9`fPYlSPq +zasJ?)I*j@?YLo$?!u9)AHV9g#&gR@hTL68&3*{;&oY|LjsBzLb#jn%9Mt>o)Q-s#% +z>-u}7A85m|^Y8ZOE9n6oazQ+b`It=h_e8O&mEe2xW@Bvi}w|)B`_uG8?dPqzi +z*Ycn2SY(~KF`V0qNeu*g_wqj@jlFjwT+D)f2G|LRxE^K5>JxD{4KhbA#Gg3r<`w1c +zI`H{rJPHl_4x0bg>88DJa_`WuZ@pkqNI#Hgjmyt`)ddG{%Krt9KSg?X5z%LJW!$Os +zVeTaF>wNTo5kq$8UUg8K?l=t>$Bv2{Y$cF8vr3wFDV7OKySTRUFps@xtuvTRL)A%7 +zMLmb_{bNudBOy#@|IkpEDL_gt@yD3FT0Jt|wOG>J`LIIdiB+>xt=mJrXZb+?^YN>D +zf8d1SQB7D1bGXrliKw}ZK68_s-akD1m{wez={%d@ukGE{x!;7jRP*zg*C +z1Iy~qeN(>Lji>g{UFv-3KLwM_mXrRo;V&N)$;KH-M+~Fu_J3p}qD!CX8~>->h|iN` +zA9k<5@I&v9B*|&Q8?gO*t^CY)!YuhoG{g2UTXN$#YsOEA?T3t6oW8H@fbq5|^&hJ_ +zn*jUwt7B|X5hv*Q@`0QW0~7DSa(?F0*UZvDbyxn6lmlU3<;4$QxOP&GBQ~72o#(GN +z_=Ha?g44rk|CEP$_MKO1$ZBQ)U+_JNGQXhE3>v6tkl6318g54L~;r>w`ls!cR@Xwd*eXv^FNXpv&S@%}Lq}LYS +z`pFX4=oq}&R$OMd$H&LRHY;pb0C{mdZ4UqJC^pUx^p{zfv@=E4ztoqt9&KZC)6I_i +zJ>^e7biMbAohvzTpBIkXHEtj6**Nj5s=WlEmDyt>{9n&1cLFjGEh`z(Za^ +zd2ozx0RD%rYlro<%O|9|jRoztrskDbH)mhuc_05kUo-i@MmAd?_AIuIEMcw~OCH{f +zi(*#7br7Yhm3p5A3_e!>PP?7ymSOWHALn!5k?c__(lMWo+-5?g9FhG|K}VXEuo +zd^_-2CyiHc?e78waJywxXV(aJ9gPyI=lh#dpW%QuNh5%9AWNaKL-Qxp*YRlXYki>b +z)S-XG{EQQ&)IL>Ze@P@a#c_dj%Qpo0-ni*Qw| +z6D?)Ah`ud`Hp7zaw8(mlzgl+I!QAvUfZ%g%_4WIzVf)rXt>P=XzcQ!ByV$rE?#coE +zPo*cr;0+o9?3P-{y`X~-OqGwO%3?|N0ylg-I#6ZW4?sxAXwq}8gckXTnyZol_ +z*D_+utNqud{^vHLFH4Hd4}6PdJI~hIkHcV!-;&+wbEMYG*NYaMPq3s^3Qsh)Zp9D{$WBj)Y9}F;3XTgo5u|%TgdT +z!3xF&!+dt{Q=zJ{o=6F|2#oMjF;|n&)2I!(5HU9zAS5&k2sc~CDXB>#3zq`JmqLvh +zq17mJcS0yZP8XybTfu788)T-I*$L`F)AT+He@b^zcUvZUSC24FIqC@NWYK`DUyWjG +zW~zoACy~S)gcKZNFli>F$}5?Xh#$y|RDQOAbUAtxkKD>6xL|6pw}&iH +zky12$2hU1l} +z%h?IT2!C)^<@od;cnKhn-nobqM4BW(sV!vq{7k6R8JCVDhD`*T9Y( +zm`AKRbI8lt);F6pI`qZ7z0<>{C5(f@Fn$SL$FWMprF-w>ONij_7`4=XUDN?if}mBh +zE3S1Oaf685Ukw#Nn4?@-SCe3b6b&j7a?#OhDg`xl-36!+;n~tMJcl3hY$#PuL2VPK +z64IN*@MTXMpO{@?O)Q$MsBl`y0{5c?y{M^(= +z5(2Z2GCnLjuD`An3+G&p3^p`1Gd2WgPX08-O?F@fpWsaYxD{}H0tp8)L3;c`?r=Gu;NcUFIU7dz#=0ZJW*3$0ym)k!6P%qQV +z7?Tl-x7Eds)A(nqF3MgnkOi7v;Ecc6A=i50{rr_I!pX2&6i#wmr-HXz7G7(9Sl(tI +z*cZ$|O4OUpBX(sYA#dDMHUq0$9o`Rb_{Am;cHUTeUJuJI67&Lx_&YVgis(spB?@YH +z?pn?1uJXjBh?RC)C3sp@frqp@{OR0?JN7S|bNsgL8F>xPUS86qN^G6h_GYwZQVBYQ +zo*&&7#u&~)=AvUPbxp8l6l6YKYX{7e?h(GUT8=SJ{xddcJb=Fz3& +z1U^UlmH<`X;3YA$ON455;ITh;LeytVy~ +zBHUpLPZ!+4QSPk)SFAYZl@PZrWdkQIyflu|IeOfOW`x)*u&eit-|N2QsYSYfAv+j_ +zXMLY=A6T3!h&Vkp)jd5Ux?6|~@8RMoktJT2)4hFk8%*s5mpaz0O~!A|0%`TO2lL$K +zfiXq7)%PUDG>~yAo^TcW6;#_Z-F#LRJsBeTuDJ67lP>2`V5)jzTFKQh02YDJx_6k~ +zql(43<#8pg4BcPP=Hq7fWdXX8>H?D?+h{8lqgHZD^dcqM)wgRyK&eyLV-L}xH$(aF +z1X3A`iX$yXhq!i8bVR)PV|0RGYfV3=eja&9^FwDnc8EBPWo=m%Uv~KY8c+e@(r2W2 +zn+8V9v6l_R&&X0AsV3uoQNViCME)6d+2Q-QrZwQytV4T=?;Tqfebz+1yn7t+`g7Ip +zHTI=+^lMf1t)l||=pgG$i;>-ty{SE;G}DZ?8smPoz0UtR>NURDSN?fa%CRIb^oMin +zZd`(matm~*K#6v_E0OT4f5Y3i0$Ff%farbSvHd};%O}6>GZFcjxJ)#^>{^hUMo*OL +zxNr#_j!}V7S9qxPn+N({{g%}L%)&`AkgUBIhfSNP_iZB +zwEQS3Bd4XGchxRU@Yg#jf2T${FK2IW`kXQG1CnJWFw7HM0UB4;5tN(KOJRx6p@OES +zjp_%%pah +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 +zdSuSvJgZbY6}y# +z%GrSmQZ}dau~(wdgwr?`EE;#M1Zd1_0*kh*CXP4TS2Ii4)mA1a#KFqrFuD)4yIY3v +zlm=L`bbGd%EiBnyL@X56TSWt=&4=lHmTJ(sx+sE8iCS4f0Hl%Eo^q4q_CPmL<7wCR +zZ+P~J7?4lhwZt{%iJqAt(dWP`XKL9B?p<2v5PKZN?u4$SMnVhuzWhN0l{KIH0oWt5avV +zHSd@3a(=2_{g{_upBeOrJ^1M5H)mcx)BNpC5TtInGQ(JMZbQw_j{FN*KyYsU1% +z>{m3O2RjIN-kikNdLHXrX+-a@KCM+IQY^3uK@m#Z^pN9^hTNdQJgluZ5t;_kme;D; +z*O|#uS3G>v*RQ^b@EUX#qigN59vC2Aos}kRai7-Ut3jv-!cO%K0rftx(ZM^|AKW39 +z{4i=^{tGPz+aLee>fhJ`=gkLOy#8Q|S08Nga^8Z4k^htC^N)pndiR~$$j_VMl(Gc) +zi{JkGJC>Zzx``}n=kK!dFa|MF(*NnRKui09fuNoWe>l1VVvDKlITjvq{S#3U=Ui5m +z&3V@l(ABUF^6oyK;^FAH8={X8_&3BFAc{5Hzbo?euG`to##xX^?EnXV@iz_Vs;vwA +z+g~djvWs}-vK@jnk2XL=fesu`{(0**(Mqx%-*0~VYnl%cv)F*Y`SxY=^nWN1`!_6` +zKse|zvb!z_yNj{oBB8>%7$(GeGl>-r=ldF=+>6l$FfD?PF%i#%mdHnu|BedXi6J&5 +zFx%)F*dnO<8c%rGB)r(kwl~{56)IcPR*0h+Aq6a*|i+{v&%lkg&738zdKi0ky75|C?E>cUuFs-#aHtT<~tII(6F +zn&MZV{TByYxz7lsKBL!~!omLgtlRSEpI5}?oUbkFx_Ku@mQHoA#bUI!bz +zJ>ex^!zyVNi$j8(sQvuI-rf_Qdx^L&`B8bd6N36pKN4HknX9o=n*z~}x{QKy-j847nF$eZP +z4vCdz$SjIt`3O$qBcowU6*{!`KoH@IM~U{ +zz+JFEI9j{cUebXLEDuQbJn=PZ4l<^Vx2Av#(`>Nnl|lQmjYY1 +z-97FwIvP5LM^hR)BuVh@c>C&AX(|n0-_&~;cZ5(%k2Nif*ghZjLkwO4g6iB*nA?<3W81OF?|Nh2C#vk$_NJSH|x73#7yg$T#) +zO|vgu$h^YAUIgQ(1Y5LtK0GA0P=fw%Y~Gbl&88Y#rRLPQLLE%@>d>IJthMA*tK7b> +z=w7ImmnRA&+tZXdbof2pLYawbfv%~9mb%{8gSw5uvLk9k-|fv)RB&wBcMs=YY+&)b +ze)QQ>2s{CMbI~}RJvHWwGlC$T8`bUVl4~Op2TX?l`)gSNz?4>GO +zTy85JKV8#^u+e(6AnSzFSvr&rDx3AC5c+>wh*#$0KRkAcE6tmEOsGj;FJH||rq9rgvL6t; +z2dq`Cl)gJxx-9%|{d?2Gh@@GR2YTjQ%_8T^wa>5uW39`7`|6FgY5wZv+pk__Z@+r;CDpPTPn*yqlj*

bJikXxSp-9W-RW4Gr(kz4ZFhOZb-Dm-LF+5E`#RvC3`whu?Hr +z>ze-l!pocE$G(~OYj3{D`)giCzHUtsPh3_A +zKQleTHv9VZmv-~^>o4=om#^P^^`Rp?KfGK!JHpLxU%h?(&DSqKZ{%Nac|45CVP0RE +z>P2q<_J1^R6(vUSxBq1Oe*iU)+-Lt|vmruczQJ8rBn%;R&xDU${DAF#;ty=vpZEi= +z`avJ~ft~k1@#r6$pZEjA{-^%HPYpqt`Kdqf!yxE~eZambYWKpG%^&n4eJTs!59T?# +z(COF{G2`DyPiBap$|wKSZT+vR@V|@=wI;k(jqg7^Hqpbdk9zh$^U#GGUksgX!q99N +z+VyAW{`6u?Om+UZU;F|39hzfDG;)u4?JSd@t?T6h({L7x{{8A!jKjWmV8kWX$@_tB +zO_2|t!5MaVSpT4wRA#+ihtc^cM(``?p@sDxnqBh6L-$6nM@^kEAH%phS1yCxxkWwX +z91Mz$=0E9`veNe_yG>U5{$v-)O5Z>54*6kyf2u2FrSDI6d#v>R$u5qyzJEeE`DE9{ +zTHikrocv$kC1;L1P$0jt=;wu$y!hfp+SbPop3~ez_u?PU_I3`n3S+c3+CR-#{_w?% +z++Ocj=4ui$E7M +z@R^INya`vi-Cmp%P3IrJ;|Z-p4N(yzEwI}CM^XhJy)x%!Vj7FtsO8IF(5%+UvMI^7 +zN{~%RysEh7?D48V!%$@>02p#kP5YSacAWn{59Afz$rEHu;Mkr$1|7 +z_!^e&CR+Ni>&xPA|DsOV)u5tJU+~Jjzpyf9g8&h41u0Fz}@)txE{puQC-T4}Xsl9w +zRXjbvJq&LD<(npZn8_!;c)`B1f}L+G_2HFDb}&0FUG-y+-e1<*%oc+UnBfWig8gfL +z2V=nY#cvpI{RoH|hqFGBE6~*?&B_m7&#UO6xmxI{YoLYrE`R*nFaCq*M~1%sB(jgc +zETB2RJg#j1_7mLdfBDPt^rCrsaa##miSC6P-u&UB9QT*CAgQSn5PR_DtU8ww1Nv>! +zzfZ!mzlCmi1r+k|W&%6?&b92r)1N+Y_&%(*|0`X_bB0m8`n$&d!#|%_WBv86 +z&v`!Vi$BmBy)(sc`*yJB^!b0qE2B?e+-`GP1I8l1==orY{SyZP;_*Z-ma?Wl{xlXZ^+kAFCM!WPY}qBGJ)A=B+BY*4Z+%-s@#o<#(fOd +z*+nwzVi_sbhi=WgKYT%@G|Jy*h684P^VOGMzI^%W>(?*8e)aOro7Z!?dP-pbh!1`H +z<+oqH{^l$C-Zw8_e)Ia(5BgAuM61j40AYCN@)yX@x|K9KXIFGTaU +z>ym@;yyKJ!82Xuxme%zz^1PfeWzjq1&(HtvbH^zd#G5<>pXnqq!>@loYg=^^?@Jm^ +zE908a{?lg~>q&yw&O6H80j^PJ`$CMTSIeT;%c3{SqPNSUFPBAMEsMTh3{nH%Ni-Ub +z_lE#hku%+VY7cCt+1ni2$-k-U{y&PtIwA*)v-)SRny3E*4*QF*@sepOwlVNjze!fs +zZ@qDPsqs}kUh1ja$z$R{Gx0g#Ce73#?crbRt{1THaU*bv^HNwaJ`sTq475(`%x$cZeSQ +z&SUL$KJt%y_w4vi|6}HQOWk)+i`o&7@i2O`os0u2)_%#{|8W{J_xnFaF>}BF<7VJM +zEc(DH)XpRI#V5{;-|S2(PSp>6`~9T>@OQ>I_Ufow>> +z`tEhKCfvb59rzJmx>^Lb9?XILi@$f%=XtL*tlwP!;YGi}ipqkb_l{MXA*-pS=R*$?&xkYS&f-Y1$s~!6# +zB6j}fu5O+=itXjvMW^wLAWY}qlu0hT5#a%Avd;zCRHeaO4vMd%N +zn!2B?pI$VfOYre$IMN7IUz9Io+<*K2w=rf}Ld9&;=;oy95R#=f%_4EXg7nR<)<8A6hD-6) +zx36BU)DS`1A%TVB?`4CbO-)62oiJ&$%91mHtd`sKY?tnMrn9qeNJY}xZYcV0r2$>} +zo$*Oc7FW#1wur>PHk6Xq>|m?a<(yW&kkHxPi~lOc{}&a@t^LCL49Hs*Vh<5rn!B~b +z$LXa7s$b9|%|BUzE@Gbepkcs?56tb;eA`S>x6X1x9&VInFLd>Y5}gB5QP?K}L0P#M +z2*|H(cl~^LL@#&d{h84bqd*%g=}+}@D}ctSjMzPUT6HR$9-)3DV&)5`n_tZL(bC~L +z^Ysk0oJ2>q7kbzc>rsR@tD`L3#`^4u>n#9JO*>rbq~Fy8v0_<$zR3oW@#->N0|QXa +zZlwZ&Giah3Z#uVT4WvhFNaJI-Zg!}mb2B+5lLIk70wc69V0#9}6NsGx +z=M)YnAQu7I8L(Odqy^YqxZ`fH@JoY*Uw!wDV4x>uHk!ZJ&mGjph^0AR2Qt%IUbKBe`%`KItcX{TH9+3-dm^QSmfXCT@>R +zX={XbH#CM>lhuR8{n@sDK2N*?QLMfTF1dAk`frWCw^f}XVsD2Cv9rp`Hb!{s1$yY) +zdN{0Aw5D-65a>B(@Ojvq$2AlMq>h*C +zuWp8_a{WU$@6XR;j@`rj&d=Ls=j)oqcM6-EH9iiDoSA{ny?tosUqj{2?1#&nGpFq1 +z^=&SK5P?{Ax&C<$Wz+idq1(;@yKv>fX*{^a;YO%h^lRqh3XAt}n6DjAH4sz}<>_*L +zGhdIWem94i$-58L^GbC?w3%t0SrrRV{T^{D*G^r0y4qpoP1BlkjSWZLLwaFh7sn!+ +z#&&+1qB^(s9+Y`d56qV>KE@Z8^l{G7&$gpKp076-xB9`&;m2c)-6xQrO>U>?KAPV^ +z(>rH*%gpYT*-bLJJEGfSc|Sxq!t@T9Vf_i7A2ItJmrt?x6kjhf^a@U%VBsm=onqP% +zw~p9!{N5B}PH|*}6=!&Gg83%6Zid~K_-u*6R&dr7OHJ_71QRWB&l1~A@yi0EEOE#T +zYs~P(6f<~SFg^X#^FBS{(=$Ci#nW@UJgL*Oxj2o{`Mac +z>Fb@@T+2Y-4&UwY-45T6I(+eF&RLD9ZkX3?kW0RrQ|&xc?rY9^M1AFR#xET@TG@x) +zoIAt31(MIafx7LSxB3X`c(Mr7Y5R%BQ=3j^9DY3D=@2gv5I^U)Cx>cr>h^@}cEIF)fRxd=Ilj@bDAJy;X2Z8Domn~#mV-<#+U#MLHxmop`2ANhbNRDasLUcQ= +zULgOmdLdP&Do0zpM4-N6O$FlX7Wm0mEKs7aSl}IBu|PSGbvmI1SE{$rn6K$LPzeHd +zd8LG!#dR{)tc+c2R@PN(R?t{nxsZ%Ul`9BrQoFb!CbbK>_@s6rQ6FpP0`pL_xa>mB +zW{&^InzJ)lXu?9x;`&03aEnWEzOP%z$bCgMU!~(o7}%yY#5yl-!;iQD=6Eo|d^23P +zz-|kCw!mOZoHfN#6TCFXL<`)rz%~o~vcM<{95TTg5uTW0h6oo#r$0LH(FtFi>Deic +z&ux5CtRIp?hAywsd~n)6F@4(UUph+n|$ +z!wLKZ{ySq|7Z!HbC^N0KZI^Uw4CqH)@Ns_^QShRnFWMhh#^Ni*XYfpAy5^$bE8l2zBcEU>E1g~#(pu|Z +zefR2>2+`X5;QA#`>dWV3ww5p0IxSxuSzo^JN6_*){p`zE7~!aD&J&GQ3krX%TCkgA +z)q;;2s}@3lP_^*t2^CApKvcKjyP~><1zA+L;K-u7g;XG_TgXr1x(j_SgaJ`qe`bCQ +z;MVd5@2BN!){`h-oL66d1{}*Xo3s#zX!$~ppydm`)|a1ae`Y)jse_c8c1x$&Rc4(% +zmqux8I>~9i1f!3@72$x7M|wQOUcCKhjDWJCI@bE#3qMoa*QJQnI4tt;g}wW +z=>eF6{1nKiU_AxoDd>*CI)dj2kRu3=KsSQf2v{R1jleU4%LpJNNSpzJwQawE&2Rhp +zm$;vF-%6MS(eL+3&6%t}2{jOPb_s5xRy3M7+>{vlzAp3Ht4rsDX-#^p+kSUiy+50+ +z#vfT;`%%^97gxN3ZRTjm)v7-#YA;l}3^9n(bahCR+I4q;xWU4kpfZi^SK};vjIrr# +z5@1PFHZgX0uhAugl6xEapC$?FFd%i<$<3{acaY9>Gvl`LIgIp*F~I&NccU +zL)+JNk*=Sc9}W+*A)Oh-?6Vg(=HvRK6_WTTUA^h+N@J$c45lX`swCugp}sm_*A(aL +z9-Bqo$HaJuhB+T|JjQrT@fa?w?vL)87FvQS^rqP3&niaxn9E?&-=+It+K>h$u96-| +zsLysNm--y3H+=y=%*%})4s}tTmbGTz52k>7>hmAI_{00bwx{3D-tWzBcs$>KWgcAz +zXWerRo-OX^yARJ? +z+x_ah*WzD@nEfl^fNa+%-qLkGNUl^X*VQ_CaT$5280_91-STspDP3N7D-|%X-4v(S +zZy>$-Wg)a!!L-?uhj6IASn_Bkm{ksR$x +ze{`Pu(p5umSJ$;Xxw2e=yviN{2O4f;cB3ifBMiafRoY(H9c)X$?+DUY>fIwYav_ML +zii7EGvTsebw-t5KIhZ)Ft`ls!*E+$+*S4@jM93QOvxt}CqXjHQKy`yd^t2}IF$Y_$ +zL070*ksJD&Re@fpTngv3YDM%TH3`F2x7zX07G_8ZDGu$*!4BKBvXAlludV38_Cvb@ +zI){SbqF)=Y)YxjZuErD>3r)ptZPTcHbu+2FTkU7C{K5k1a7DLP!zg)eNq01++?)WV +zt6)PQ(*Y}XOKYI9Y9VJEt3Jtnq!-HU3YlIS(`zEW7^16Siu@<&UJ-nZ(x*s#g0@FQ +zJ)-6j8Bfsfh;U;R>yhdz8jTU>h$`pEae)p;1n5!T9J?*?S%kqpfU`y{HR7ch6UDeE +z#x^m2i80CyhfJ_Wj3?GH!yFe(Pyh0~k0(4n)6-KN&h2d-FzEZ3R}3xl`vyt)q-uK-ssA)EBhI07VjXizcEW2?2lOYc+it! +z#siCoGJgER8vmGHX+1@rZS&Tea*ZqSH4DzgS1e&&D;8{%uUHtNNR?bB1AMpJrS~r(8~;=L?|Re8Y7wrh#^J= +z;qZs!9u9ao(%}$?V;c@?IGVG=I6Z#T12;Wl(?c~qM&rR*J1XPh7>~nv07j4>fqVki +zBOphhI|Azno+ChBxchIAc7wD}328(Rs@fekTAzr&_g!7$??W3J!Pg^ykJMAu@<#kv +z_Stv$A;vefqtS@gzo@fS6=>O>t10UDtL4wG*||>?fHr(P9>@6Q=vxwh-JV2nwit+j4;H?z?1fIytgpMBOC{UK*;f7G^|n6WWM9#3xIL|mgtJ!D +zdwrctE`jw9=nHM_alx4;E{7HO+3LD&T{nTpGYwA<2J-z?n5D{;cArkqdSwL*P$U4f +z>-9%EO5+&T3@TDv<&zfYMwzx*f4I~@4pw9B`iJ6^wOWtld#_hnFseizM<^S5yS_}e +zxqunU)ArD3s~zw9jFUHBcy~8!ceDkoxq!-3QCC}-dv}+X2Hii~wq6~2Yh9Jv)uahj +z>3W|Q=uF?8%`R>W6C&}cnhS*OQ^Lo#Kg?^6yrt*Y2C{KN+;pb1T@8)oa(dc?cAzEr +zy3nG}WfRh&!)ngWQfI9$4d<{qss;Y?WA6v|gq=Lwhpbj%t9mv2;9@b)^fKf`_+7q4 +zx}mj4D;Q=jSi!RQ^Pyavbl(mKM{k_}p1(YnpVJz@@+;FmBBEdqPU(FAW1G;?`L^}( +zch^gZ1dKC=}-NvP>Gy!2R +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 +zG=cUVA%ELE^m- +z+v}RS>zX}Y*X+9GO|M(t^mJ9T?7HR6uH4k@I`GY|+lK7AZ6KEAs%F>iR(9Q)$*wyy +zS#@2r`oYxKwoH%Lw#@cdw`{L%>8{*jYI)^KavYf}TRt||w%lKb5zzALxfjRaP5VR +zrq>>e^7{LQZ40h$di`!?*H0_IegO75YMGl}58C!hB8Hl7uA|w|bbCDzZm&OE+v~@= +zyB6P;50BR(GHQDLZtbsMf&JC^@u5hsZ+bltme;R9dHoiYPuDlSeyr8C7ZeA6xw`4~ +zKv-Q%ZIusKvcVb0(YU_pwbwp1y?zCn>*2Mz{%keZ-v!O}F!28R#cHp|+THcNcGn-n +z?)ok0uH_9lY|^z&`|GiGfBnVTU%#>a_2_N5ehY@{!R2uM#d$SJUBWQ@s-{=&)OF-d +ze%<);>-Idq?jYyap|SkBDcI|#V6S5}QTnE+L>%eq--AuRFVTkQ@*kOC! +zOt;tFV%sYht^cuYvpQ> +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 +z?SEq`cPwMKUn?`n`Oj&gjFpD}5T#x! +zL$_ulvtDDje(gs{KK89L!*Rr8`?>8qz1d#=ikh39qqd+D#xMjKPl)Y1V^^e{4(%U> +z-tWAxf&{NVRuAJeGU#)!dH-R@LL&34sa_c91z;greaHS)t?}QJ;k(T6pavWnEB)VG +zySoh6r>Gp#@{|I)z6j&?Un{@WkDyE*xl878X_H2d-299OoR!V8~di4 +zpC$qd%(17y^!|;SIf+!gq`fKn9GANPvM1iRvm+g8$3LeB-EbgTnd5Aj +zbX5nxyr(A`^a;n2BIG~5dcX^mcv%tzBul$@Mo>R&PP$!C08bwn0Xu1Y>jOyEdkN1{ +zdu{IVMh$eOm!C$@uQOur?>v|lALMpX +z&<$N;1SD_Yi{gOvN5HkjFr4?fw-)gZOgiQQ>-xYI>9Yk*JWQD2i;tFVHw>LF@Swt^ +zAd~N1ngZNa7F-%j*m9D;xvWPXqxSN6C+T51xvSj4&tQ55;~MMru1&$=$p`M52+oax +z(b=<)cOM*w6O=i#4|gqEG8Aqv$(%g2IQJ4d+CQ1NYx(Z|OKJrk(bMz)BEWHT^$)-k +z;J~{M)6+AgQjkOSY0XISUjZScr%+1CIpsQ;e?VX^5SjsF +zK-wpHEWs;QaJ?eif+{;H!DuEq_ZFI^FigGk9Ce$A*4iO>wHyAA^oG1irx{Qgm;y8j99eFe`1{7WnP2T1u@2&O;| +z6s#2T4`Y4-jt>L5UA;$p_Ex>I@EH7OJ`@3lt9x%8klBO6n3&-5060GWpRws)z%z+3 +z;Q7Q`YwPk~W$5vSRgmmquw(i^dgWa`{T{5|=(qZ6tzE&)4?@%HMmw)h+=n6km;lKX +zJ}`Eq37dG@r%@ +zV4->T+13M+ht|wLH0rj3%=SMiA2)!MuKy_JxAiJ#u#Db*WhX!X%jl{fSorrJCFiF8 +z!^J-y(Q7?q?IknG?KOJ@WDJ5K$h2%guMU;k5` +zle;PHE>AZ1(x(HIkrTyKa52gB`FzV2<@zs_Qsyt{Yjxr;ivl +zFZ8nA965iwplWYv~hjllTBIq=2(wGNvIM2YX?dyNuF6qjOfZPUz*76pwgfWFe|@mK*u$ +z{qJL8Rn+MB{_Yz4+0PrX2zxyIynbl;Cq!pE#^9A#XDi+A1V0QgHRfyZg8i@xIbGZ+ +zkM!jx)D)!&wKS|wGJ@9w?~pC?FNq8PWN&iz(mRI7<%p#ZSp_FP>Y<)r;N=@oKoS|) +zS}%)x?(6N_DS0-|$`PXT>P~nVOd8|OLqSR7oIcydxGa})*8SpW5i!EUjCdLI9!4}R +z%)O%hCLh;#6deB>^?I~@RV^G7x3enT)7P&SOBg{8&PHyo{;O~jcDtS2M(#{CJXeq2 +zd-@PmGE-bj`I&TYeW;WNnkQJ3y;3vctXjecbO^phj@HKZl({&~UvMGq2K-6iet5;z;X8?uxyq3L$dcHgkRfeQoaK?B^ +z>D-Gd&&aA&j8R&{2Z<}>oP}Lu$o1Byu>OH(Je3$uQZXX7*`Spby0|R7kBx0~O+5*n +z$QLTjIJe~xaoWb%E`KG==qkSI)6iCtgXrAl`%Sfwi7eYadpOvP-D1IX{vUKvlIH{?Ki;;>V!=uF5(}ysCw8r~%e5a42mymM+uRi`L0x(KbE0^pK>yvUW^o@(L$z2keAUcY +zIHu{ZgK*Iy8cO(TU4<^1al7&oQH>x8r%o_$>&rQ7@hU;#!ddTUdG8{|W)__)y7;969=W$8L3RTZr+&6L8>20H923XVF#1qnfhWdXZ?SjL +zA4}0n^AC@nWb6%X9pBDFV^|ofu^%E18uCph7>!L2`$hn%YrO4#xef=jf^zWd=|^0X +zp7H^9btSYl^&|`EiJ1uJcDAHMDL;rqk)!H5S5z +z_z-N&6WGALqh|6&=s)OdTmb_pL)OPt=s?Bs>rlEeL>Z_ZwjH1qNX#s<3RL_@`2JE-ZN(PrZbrMcD>GUjX +zt0XhnL_Lmuaha%QK%8qtbm)KZb=#mp#j*!_ +zIJ|MIdN`s@pS_eJP6{h+^?a^jeC**Fz6mp2vYIc%ZiWw5ZI1t2K;0MvuQ$cDHaFP*G2D +z*yX^3nxvseU(v1-@yb3MkTg$AfWoIS%EL$!!%(X3@)S{PKb^RcZ;MlnHWZswI!WlR +zHfR+lh2U`=%wPMVtDe1mARR00$}R%RcA)!wcVdW#2w9I6V22547gY@zi|)u4T4eB| +zQLfCGXdxO&vJk`?IiXpIPMsEsNd#V51ui`x1jhWyK97wOOfPr&CFRAi@;U4$)oGQd +z|KpQZ6M`;uQNusz?{UWRUBRLqq996rMdN{D(24iAShSX6q@i28HO<1%YKo+7zHphU +zRuO%fg;ibh@hwhCFh&NxOp_5D4zYavuR4{Ll&R?}FEi=&!xYV|GmDWAI~l*dtvI7T +zJ>}irvnubqG%`o{(#h`RHsk-xG*@=|gjy|lv9e$Z*^z|r%ME)x_}OePMfoX9l?DM3<#h_ +zczNVh_E3aBVRqL{snwf5PU=s@p4?6)uN_(C>VCIgZ#B=srMJ6-4J8dy;bfH_{@mV^ +zZt7YuLWcx~$AL$NS{9=8+=s-imQj6>P!AN5dVhJI$=5xB5r>Ln-IaY#O1F6LOr_Dd +zKhuuSlb446?pZ4B`dO-_(dW;;Ng;|$(QGc2(ojM56`PxQW(%Dm_Sj&OquzgGC<@)R +zea1={F_1mE?|e?IOOb@^C0EbZJd#;b=xs$EAqk}?pp0m4jDUd;0o1#hfD!6R6^qg^ +zX*PB1rw20?fS>rTvG}%jhnf7|=6DPLIO$!%{n1rin?|d2rroj^Z%NfnJ7O9e>7uN~ +zxopFw8JxTmV+Ep|1OaCYwePD(!=7VErH%eF?gEEbQGEWSisNkHbqD>xS2HC-772$@ +z9C3$hcg~GO4AE?r1MfBGTDFEQYs+~LO%`?@e7cX`2v0? +zvRz}c8bFEji}#jNmfZQz<*#pq3xwW+SMrl)Ya=V1a-TVc{4#FMkT7#$7AoMqxS~n~ +zl!z+wrOxZ#14hM`l51v|c7%Bj?G2>2lT#CK6vEhON-J)HQ)yNEn%HtUZJ9}rw&5|l +z@*Vz$B=N|S5lU16#V4gAED-k{BErVGELa#kglt(DKCj!cFles(@iDlgFeOxspNL&9 +zBIpnf*p@CX4q>QH2@qSEoL-FMx!F-o?!8X*TjH(BmTzoMh&m(NQ890=k27VWzRWVS +zolkY7FLJf1U!)#6S5a+%J7`Z8y72$1+?Db=I6D2F_i{P>U{>yXJGV1BECA34?dS~& +z0#c7pwxz<{p4<(Y9Ak#!i+%WM>TO6ABCk#_p1)=-ri8V^p3bKP0XkPpLl|>o0>t^A +zxkz8K!^8Sd^hLL$dm~s7>6qz1mtFC6PN-B +zOhaC)emug{uVaYuxBBwcrEiV_q?@}XQEA^4+#M|2c1oD2Qg`)b*$2+IW}T_)hr3e0 +z>AAB|ZEX(FXk^`MJmFwi?&-^-akg{2{KhEw!X!UonU@`i1MId4Xn!5(_de2>l|>ZO +zrm`evoDe<|1?9B+vGjn?w|0kar8nVrVq6cgBaCHi^?GT(jD3bw1@T8zF~AR9;gVP}aYfk*HAA&x8g +z5sv3~_X9$^p#5Dp2o3?2pU?iFI|Ys!rJc)uxmzDj;tM~!{X{o4oEdU^_0WswbLG&c +zCx6AzfTy?Ba7l2x#clTSPFZN~$7cb{V2~Ds1dIskp?FZLRVk6zApKMp+WDJiZlPW#jdUm +zzjr;C{Ha0H);a9NX>oJpgttK$*l28lk(}&fm@A{USY +zvaluE+wgd=EQZ=s5B*r)C*WaCkM}Eq&enSc9hI;Ma?RAS8THi3r;DaxJ*s#s0!tIL +zaA&RyzU=yk5$d%qL80pwX$DuDz7ksCkg$fYc-dIkWzK?feueVjRcp_v&4zStIwua; +z3gOM$u(<{VOjdaEwp@1xQA6eKybW0#LDaVlcivFbe6I#Rjxru)3wMr (!0krF?S +znuK5+Hq)84wlK{yFD{OF*RvwdnN!^w<`hRm@adW=5QocX4;BVTv`P>`#-eVDzp%vShPb@~wIQR?W40oBj?k&Ad@4~oFh=57GD +z?j^Lr!_?|*00FUG?wHdc9SaRPgyj)uQXuN~fF+A5g(g62lPO@d>xXErH-^t!+e3?@X6(tp#Qaw9WM>6QMhAGSTKe3@)WR +z@7|i#t7p-tu=CyQn9WrIKSZ;MZy+~xZ|XWXB~R)Uw|IAIFVupQKi&ed#R#m|KP*qf +zTt!CQzaya*uIIM%CEACup8N_Y8m$nKa`~QtQaGLayd;&G6}cpplts8C6`fVSDD?-< +zqdMU~zO<@@OWu~sgdN_ciiCOIhw_ABUcB;zR$iX6gmPZZ(gXmnM+p<@jY(c7=4^_W +zc>JVfBc2SK(Sr$nO{7U;jS6eB$YZ>O{`|fSj*mwklkl}kaA)FF3esczkL5Q+WIWZ^ACmKYTPwS +z?(*%XIBHYl@_4n6K_9#}CMTt}h{nBrN#6j&`K}OD6K=)k7|k(+l&+)2(wWROUzs~@ +zJ?ZNMQXoQ1Fac_Hb(WRBp%mw(dCFK|-ANSblId_Z+hz!t6KC1EV*tzML_agenyl;y +z4B&?WkzT7A3G3rZ@#n6F(4$TQaMZc!PxDE4HWqzYwFfW$hGL*&t;r)}tO8>&^TN16O^QDksLFC(9TVykz +z;ln;95^?C8ysJ+tu88p4$`iGK`GU~I#lww4xu5up@WhJ|M +zJqWZmbAg|Rh9u|hhcF~$_H8D?ige^b(}i(Kth{mR2-C8XxI#{d%6sswv36gezLt%3 +zR~eJ$LDL=kzntGU&0ib|^Ybsh%kCoA)km^A;OM2d9hA$WMy5uHjuB6kDme3sDyGvs +z^HDmRgT9ClFDdL>t?N;?Mmgf`(XNpq?Kgj=G82e!Obh3qv0=Qsa`_sy2*!baK6L}F +z4;Z6@KqHdKC}5T0+CchU@sL-fdF +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 +zwL> +z8W|P0GWBWu!pP8iSFI9en&tz@e8QAuFEZV)JRM5ea_^E>D%NjTH*-Bdx~(wI{i-k< +zbTVAUX9A-?nNFhN%xGE9MPr5$k_{gYSf-^02mVGlHe(kGc<27$-Qh!i^~tOGeOlu# +zt)*#!qUoezt6*mbv>b)J>%mP%%7a)fK$Wm? +zJ+QV)HbvG(Pw@N`gz*B`kR9w?Dw!iIILJ&oR~_(~&m&LpqNVxvy8!1&1g|vJlssAE +z5Ff#16qK#VvOZmTt$mRU^!=10tJMR`3=7jjE8_RLyLg@h@(GUM;?+ZAE7fA99W%X- +z)6j8ft$>X3Y6I(-K$5m*21c7?t^N_m+5Sj)%wO{+Q9`xc00;*fwLhMjwRI(4Oz4No +zN~wgR;1BNB7&gCYbh4aenpHTp*9^WF1JEm40;b#wlBd7I4gtM6QQK_(#U~m3!0mD` +zJJu+xL90*HZd~gc%q{csqftUu6GI;wv};byR-}9}L`VAGJCm%Kllb5B`45)A{|#korQXFwCGC_4AK*vHYEH^K?tjFfdcf*(IBnjLiM#tY=J4g{FZJd&cjH<}C(qlP6+7rU( +zQD({s&GykwNsG3-9`MS^!Vj({J}4aP^qE232&qf~0wxV+gq8Zso<=&TSpzEVq?W)Y +zvs6Y@bR4+A5$@Ev!OYau`(;-mrfIdl@|Ie&?-cKY8wBT`9P8fwB>oR8BShO_5S=@mdmi +zL(jt9gWXMJr|J*X)}3mB8{C%u8YKHRZ*ppB;_b)kCdJx{c%bhVdB#qKgY&W+HjUN4 +zy#v^E@J>7DZeh`A$KGFh^@4v5!}2pP)vq1`;jQk`A1Plw1VnjHqY2i#qRK+pT#q!j +zuMv^17svUHWB|C43YtL(MeDgfcMklA{YuMRLnzjjJDl}pQLvYbq-h4vXKuMWzs;8y=ozsWn56 +z!ZsS~?|+_ZV!1{}G_vaHreL0aGE02wgcni*16%JUH;K*XfGT@&zWj;-d+e(KUcNa^ +zgzy8&C;nVR`I}+o(XC(PgvCBatF~%?2rMixRIT&uz9g0MOjwi?PaOTwn?9&d%N=E% +zlQB(-;rU`zE*|L|RPvKK=@FRsBI=v{bp{xJFS>F%Hfz-5p~nlr`J*6N0VMVcbD>Ya +z^>NZK1gRffsXlrq3I0DYs8FFFesQ*yqKnk;tX11lrnyz`Xj5JS3I;NvRjp*~{bud> +zier4})Hw)fcLV%2VI9A0IX2Uv(ph4RvtU@LOLLH>%ka6)L=LH3)SVebmf!R1#R_88 +z&02VTM*IUI-T9tuRwQ#;>)}(=-w&Jb6G(395NhaQYvXQHy?SD4+yD6A3s>!b8^Z_+ +zXtZQK_36eZ{4E>CVoHm=w)TU~*nd>bc8;OES7hN`|M5quaq0CM1NuhjGq2eA249y6 +zn+1JtTBJ~z$|||=3=J&mCRhwI64jtA7L1lRHxbL0dhuHX87&R7+X}2%1)mmN| +zlAlL-qE@;3e^2fp(ZkWkOG*xqRda`w2XLZ2XC?s?(oyC2k&cg?JL)3RGainwv7-6&kj*gR>+ZL{l7(_-O+Q!5yq{{({S8|yQQsWwYl6}`nNTJ* +zH@0QognvcBK^UvR +zvb}@pvfLsx!tu|3ogogVV08Hkk__x5iWNqc%QHd1puQ$}rp0kA!Ic#3tR2l=SI}duM +zw3F&fY6UYY`eKKh(v*7*%PB`Ezr-2Gs%k^sxgfNYIwJCqJ!@JrNjgCly4DMs3ygN7Z1M-=BXfoeoR^s>Vf>;TjJ%Dl +zf`_h2*Cdmx*<+=mcfV}?)!}vyj3i0Ez*iIh$NR(Pzls0+-VMK}nD8I_LxPEa&{D{b<=aPW0$$=fG=c~4t7~;+C4=cLO)BZGr`&}sm-Pn? +zD|JGfy4@f(4vX%+`^weJP~Ex#MJDc_T{XUU +z&)5$>=MhBZ#X={qE71uzd9CVeAkYNSz{x8KD6 +z(z!HzU*55#LoF?WAJoac6En2^&7^T!&25{fMS>hbGWLZB5qi;1i6x;6wI|ac$O1NF +z7cgdIxLJ{_ktH=tgopJswP+;KWXWtjkl@w~WNntJSWK|@Y&+DH(9(K(%tv2}S7dRw +zxfE%_osG?*pnmT;sN%%A85+;%JdHu6`$B}9a#>APRQDv|zsrHuhz)D%M{1L;QJZX- +zRVhCs>*mTD{zmdUmY+O-te=@l7ZgtW6~$tay5;xdl9URRV?{#k6}n)sK>vASd*na7 +zK{TOvM<}k;|M3R&k`~KtT6|`Q8^$H_LnX>@{^1c8Woeenrk=bAq>SCE?f<^&th|%B|ZkAlb3gwxP7R0CRIP{lG;TT +ztdr-=IOwn|7IT*_NrOyp$oxJ}jLRIQbX1($%|5SduIl^xMZE-Fo3;J-P2bblU%5F< +z%3zkZ#-1CmQa2Kf;V**qiqg|#q<2^YyJ*08(~;*sVCc=YfpS>0aI0*Uj9v}G?%AeV +zL-8fg7Hd7R>d?eRl!8+z)aWgLm#AeNTWINeDT~N<-8{yVz`?VDI;Gwk;cX$C_{X&f +z+CGs!hS!Z4VFff;V=-q5np(|vuSSp$`|7qEW$mH!)dz@3IqUg3I!(FMnqsbuUU@F7 +zaqV%o3p8y$u@THG73Iak>|6Fo0m1LEnY755&l^=iX7X44^6^!xkVdS*w2^wmW}?0- +zT^bh-@2q?mCr_+DP*QSV>u=Og&b;_AbSu~8`}PX1gR~RYK)O`fD!C~Y^}QYwa#!|K +zk9@A7&nBele_LBd^$+x;kAQ{^rHT;Ol#`A@?eA +z0#-d2Ka0KxRH_zxYkl({nVlVZkI)PPeoY6bJhk;suP$2rxusHrdTzk<^hauNMLyRO +zbH43jP={a}((zi8P?==-cvgze#k}#>#;c{MO~khgkT{OqJT~F4C$;{d`ZMcgjoF5W +z@o5~pvmIe5r2iQE5_^(3^aV=dCG=SWZW}W3MU3pE=P~Q;vg`RWb_)H9ndXQtnV +zp&oDM?za8x&{_crLV_=$^@x!lVoXPgU~q>g;pv=_Uls97UJC9k$$}^%qu^2oW3w{) +zlcVsv2+M#g1s>qZqR;N`!-)M_!pOwL?@f2cgD+nDhtfU54d@fJ9TF;6am5)o`nuFV +zn)mfvcVgM;2EyRRR3L}H +z3E5Ag4z^R$gD)wz+Nx3P)BafyA4Cx`zs7u;FGISEQCCmhj6R?03ma14>7F}ERp~+I +zZehdhsr|nTC|k@n>FB2*)@!R2hN}W}w&Y4Op=cHRwNknG9mIi*s-;|JAA)VqxGXvD +zENLwpcs`MnHK4dZxc-&NxjC-VRNf)U{gtI&RcdWTF2|Us8rSku?eCz*ALoV|vZ9u7 +z1yzFG@RK-;%KV#=^dh-L@w~L8;9;fn34^y2;8RG|*$wb`bnRm&v%A|jZvQ$#<}crh +z;36)TVo=>rF(o881Y*{TK&Qv{Px2?z?+ss{beJT=!3#Wrtrh8W=O30Y^{QZNA%3oa +z47q2wuy%XRH1g-}*E^P_DAf_8Zy+7g%dNUy>orjap%|K#Q<{7XN=E8t)i!cvoJa3g +z_vBdIsqLOmo?59JA#umk#>3L4Wmx)Qt~COwm*P}q2IPl7dNmWmOf&lUHXSRX0pHq+Il?h=8fKx9s`2BN +zk}S)!j#WDbALGNx9Tik67tf_Z!!FL&T%s~+nmkJ%aFI>evtD&+Z{U`{Ok0g(LP%B&nkV&nmAIkW;Z4)KEH=zmCyvVZKcOh%(Qp*$6Rcg2q>8fF~` +zWmyFE+LtKSwjngGem%e&|T??TOcNm~^IHA09RNYZsrjD_0glMGCvJJwRk6~@x +zIT~h|HRT%GsJOhX#S(dsJHo3LrL~QYSV6%+;Lz1dtT`-d0{d}JeOJAE}LACnMu$5UNKxiI9gRLhu(_*LgG<447C>pM$s945Az +z)X`bQ(^wx=4_2YX#`Sh6AJM3~(Xw#soX&nUt&qa2`Pl;J?a^SVlW#;>pbcWSzTx}Z +z53K)lq!^PXYWXHT<2Pz5HryE~Hc7M}rkuf--t(Fb**TEEZL)GzC_>UF%Xo9eey37P +zOoe??_;gy%542zqGurog4nl9sN(GO1BLOc0<*NyrD$D8x(5*Zk_~|{4L7G9o +zsM7^FRskYMnbe9ko?M%5`?6JZ@{w62>I_R8^_Q}D^yG-KVTHB>t;tTqqJInO_l$pa +z(brqlkMv~`+AX-l^3N`}tqr6!ysTm&@?Qzb8LK&NNID{(PBHEzzU!*S`q%MBXq389 +z(oaDTb6iVp)zQ@X>s=T_;{kKLquNK5jY3y&+$mWJ-h7lEs*Xv4H|E4i;UR3F+57SU +z2dZ$S1TS2ffX~2A^CGs3*7ep_9E*~wJRP9=^1W-tLzZ=JxX9Cg1w;0H|4j;h +zi0&!>Tgc;&Cp>Vz|Fp-)-Tx}}CB~?F?{AcDUQ<=Z4j1C=oJrwW)9IUfPwh-NoRK=* +z=bJ3nJRO&?G| +zt-OT2qSn>jpet3!&*L{48rGl(Ypd$=Gms6A{O$_s+B5H@l$%9o8N~bwy3lG<+V~J1 +zeM0T|gi*phlyU_7U(szNu9|Cr%okYb_PjgGv_MOKbACGQ(`?&aj;1n+p|O?ANAl_= +zV>v?b8#Jq+9ZImcH +zhBVDU+ckwwh5@T%O9}Xdvv?=1(ZV(rT>~~cJwYav2nZ#roDm~heKsDG6B?!+#>s7? +z?9x|xXuGeaicmr>ZxdNM)fQKS^4q*f)jEi-10~PAqtDX7oG^(w05%|91S$6nm@j#? +zFPcDash%I|FoRp+F>{)KW<+D-{Xy_k8P%A#88%S&f9$qtSHm>b73kIn!CXNqTlTEj-d&ALTk}_s?&}1e{#>M1=|B#R}Eh0;_ +zjyx)mJhaQ03}TMmI+#0z*<{DDtSo8?Z?r+Ixa)gL6wRGFR$($f98iqH6QR~vX6)96 +zGbx`pop&0b-yQV3i~Ue6Vm{ik`>+(7^by$_iY8XcbH^24)$3Y(KQrmUhBO3g3v0ay +z6WS1^H +zE#=LZ;HDx8i!SG~$@i}xTMG>%LkWzJy}2lVs>-yxE@i9r+;L=bs#7j|(nout|0u0g +zNsVQ3%~M^4>Y?yO_qtxWL6-1M$71P6EEms-YU>)lM!Nd4>s(V=GHcZ`>vYK6NNq$n +zOT~@v3nUXSUbzFC;53>n4`tZ}^n;;Pa=q-PhVF-I9iszRUJ2+tSkzbLD9Ujy9)Gn+ +zvt(=4lh(heg1p1#AbU=gND`88BaCM#P-bI7b^99csrfqJf4f1Beqj7^`0yUjydP2G +z*mf8k9BCEJH&LDQH5-p5fpiGBHi+hgxXRW=;HM*v!M@oH>A +z)PY(y_ZOO}(DCu9_^&;<%0VoLe9y!NXJ}#}?u!zQq~cK*CXtvJ!z6$1FoRP*K-Jy7 +zgNFPZ+yhO2XGyuXh!$2NlqkLbvwJ*}Qb0`X(&dksP?TEWBE(IIqFx_b6m_i5h%kDW +zeDiYMl5}&?#?|%t@15Bz)}7HRT&Bf&@Z^c9Nd-KIHDHRB;Z*%H#O*}w1DaWvXy2Tp +z#7pBCtK@Lc;XG0Dje_P5s{g!h@t5s(bGv$Zhk#3)v!3Qygh-&C8TQJ5CT={g54 +ztJx8l_K4>VuSQ#T^*tQi0n=rs%xDI#c=8;!P3l@sC1&oYq?b-u=FGbH*x7iAWadWE +zm&go}0!1~X4fG2pD^z83jWso;wSsiRqf`~OtJ#G~yb4UpVJPm*c^^o_)IW*s9nS^JwT% +zl4WX%ZF3aBcY!36-?{q)eQI4JwEns|V7jrds=gKe^+h`*#n2}sJxatCc!gpPcsx(U +zmh-Kew@9xj(OB&XK$s_=95Jn1vxjeyKy_ut=l}F;~+D-YpL +zWP|wUIhyQKH8*@Sjf$MG*(VZ_ZyJW$RS1uE7e7dey|uX2v~TC`Au)u49Qkd4h+COe +z7oiln8eLQ%z4_VCzZ#7G740oO`+;4rIq`|C&m-+p}aqc9KO +zy?^)a{`TX$H;*UAqK{RPUefcY+i&i_eR{`)+^%R=*SAOt>Rlwill5L+CHnihUQcy@ +zdb+WRfBcmyL@G~w)&0D#KVRDudUFk*xa)dDU$cAM;xv|y%0j^D0nB#2f7XG9Jz`#w +z6xCG}cW>xSj+HhHQKwei2gmCEDplL>_nXhlo{u-`cHL7y=j{W;z-4{7f +zu9i&wpRudzdYeQynAX`d+V=Kuil66ii=RtbUgs*hE|7BnI=wcDxPE#kLVUhHZ0Y|u +zJfY2-O`(bVl~;G>{H<;d+6EyLPO(Mt%@8P_aMY81`SD*B9~S%X&%1vT#qmfRfjmDX +z(V@4W-kiIgr;qm;oiY~Js*!f8Fjzz6y3SMPD`)r79F#~s1&wnOmKbmmD_sTrhcwyi +zp%gKRjB!Td?1-*J<_Z|9%5-CnER3Y<+UoR>t}S|t0&96gVC_>D@we+H6YM8gMS=)45`v#!lA|I070u-3dye`*AcHhTAG +zKm7GiBKg^LoVVdG6h|Sd5butgyq59p23NVH1+RQ_)kb0yhiWQotx1o`BP~c>hsL+o +zn)%A=tcxQ$`=5XR7k~C)6A2^NK1kI5pH%YZyI=g7E+YLy@{8ZEP9()`siI*vh%t^t +zygO%*I2XpyIN|H{k?h=l4BwEw@#{|8UM`YY0}MiQ^- +zBwicJVTH0G!p!JpQwbs>kn72WGv5p!&FNL6j}|_;T^NV4&7MK;+ae-N{C-Hap7Jqx +z)>A(doQLAc-;D_O%x8CmidO@bZhyL=H`o5xB?@`~gf~3? +z`NyAJ+hzYGDs@fV;Lo7CeRuO~W0QCMHu=9k{-&;fNPYv;)Sv(D5C7N4KmYE820b&F +zS5}-42F;D97j&3<@b^`7-z>}=X6RU$X0z8xCzjdiFKzeIcW)NHtJJ;BVd4>6S=B_z +z{`vnnS +zm{0|=P1PJXyx+2(9jKQ1cfTk#&0p3v+6=n-{nJ)9?f;i1*Ue90vVj#OisXdmt3(!b +zI9AeeiaEg@y~4GKMVy)>+(g#b`l=l|i+U9!y{+ckBx;cTq +z{cp1-kBA`}k#oW@YuAa7Y1tBCTmRg1_|YPM`1^m9(eEr8T*sM=cYpTVKmXMezOVl> +z>h<7T{W#af+CGZ^n>&^6G|t&idj_maOnh(Wn+D&o^GhpU +zk<79IF#qEBe_HD1KMkeWKjCN8@K@jc!iIhS;`e{D(rpmjtTejXFH5S_ZU51kV*wd4 +z{XhTv-<;j>c4hjZ;oP*({r2|KkN@g#{`wi8UNEfR8IZGc8?J0&ujTu*TYfleYpLPI +z$AXDpv_G9zb^EiaQuYLu&$fq7xmi;|M~yF7^cC18Y3x{g_~@(u`>QvX?7?hjYZHit +zFdO*Qer5km1ToCN1i3D8-}@D{s&Y6k%Q2Is6N`Q#HvUtSHVhn2|MmRVWeHFvE1`U4 +z+LN8D{k1`U(HJ7uwTP2k`^uGGJRW-aU++^Rs`LQAq<%h(K +zuMDlr!?F#8#Eg-KGW%JYi>vXAAAi-q@P9jGKyIEh!~N%x$)(mQr1nlU{KK}UGgkcz +zx5xDxh1zoZQ}(i#8HIUcmCJjths3+F1?go5nz_<&zZY&ZUTAD_bk3%LoY@!$M7?yS<0t%uSad@7Tf2HEb^%bi^LdM9tb{>DM$ +zTm#y8nbsm&Xwnj4Md283@;ggXgsJYwDNkT<6L%_XHP5ayN%basy8TZh#iq9a`;o4s +z4X>G>EMj%k!-Mm$`reGT+Z?2Q7_frE>VKmi|j-2MsFhS3htQ56EE +zem2%Q4$eFPfzK@ps*h%BbgV>f15JY0TFfkFt)w +zmoB|BS*nIM%l>S&#shYclc5X*O>1>iA5A?y?H??gp3#jS)JjFv+RxXMHZ +zS!BA_O5Io1A^y#e_G{Gm8Z`o@ALsY#eN_2y^6lpAsT=>R^t5i^-?^L}Tdr4Kez5_9Ki%1QcS=^yO}6kuE;D7-A?o +zcOkade@;M8{PHK5YFQ>3Q~tDQi__%dPD|xV*qnKGb>IH5jQll2QRV1S0$<2Nr>7%(#Rh_Sqxvd2DI53;^6SWTy +zcO_?zrpBT#hn=F_P;XR6i(O23>C +zaz(8YY{=vd(fpjiisZ%Q6a>tZkC+%1sS?wv(&lYC$#ZrGQT}DN(>qy~gvs@X`MI!Q +zxcl+D +zJ+bunU%#8D!`Tirst_&{@Q*uroRKF@*8 +z4O7TmL?`+%yJeoU701(J7jmGpKu%rb@4wWCf6${Hv~`7nxaxB|rvMT=i{;1L+iy7G +z`8Un!tD8jbPXHb1WXI&#&NGzgj-QXkI7@RI-PW9;eNHR|9h&Ph +z5p^xgckgd+=jTIWz)mQ2;$T03Mi60Muu5dDdVj(qQN^{^JC~+vYR;=wOyJ<+A*KYl +zEviDy&=;fSQ68id^kx;oT(aBo?1ms=jX&Sn21b)iBj;(ct=BVeY#1+(=#H@?&C3pj +zsOC?sc=z%4-3d&u2$9lxHmHc!mq$+4KXVlHT`Zbmx_is#Ki|%Cm0avj^PJ`o@d?bR +zEJR3T9k(YGC<0?M+v7pxBouE>Km)-)WQr4DDu`Fho!*@gNv!c^c2Ja}B7|%gMf#@v +z_U7iBfn|7fWW=7!6UumeY%(R@ee>?)48=iJym)?tCGi4rnh+UM#MrcU@`wnnPa$Tl +z=4C$9i2A@Lzj$_?1w1)tzZ6j|qDY-MbcoP|>^{Bj3E7V|rWrw0q}gtsvo-1{ig`5W +zoh#J+HWzzc&uo1pjEcP~Kjn9Au1|^0h*xrQ8p%8%m^4z@&g +zbsa>duKJ($99itm=ZxQ3uZy4m%vV_&T(BR-Cgu?N4aq6_SO51{)_;T^f8PA!_s%7x +zk@pR|lg##Ul@x!k&0qcIhvYZ@Ll1?KP3N1>SM)jW|r>N+T4t8q3F?g +z(edU{-Q6C|7z%_wK5x?#>UR+ +zUw0<|`!D|fxBt)I{Pkb`#h?Fn9C`b)GwDS?iT(9aRM)A%KfT+$7aas)E|p>*>ZnyY +z{PdiEWmTplaC?Dm2C()5(|&vdm(Ez1hz9?c7>)WMT;S10bl};;O?}z_W#HsT=YRf1 +zM;p3VjGbWqMUe3ej@ggMVDF)qAEY0_@r8!4CXcH@Sa@@Y +zQTm(kw!g=3`|EpayLlVBd273Q+uQJ=%Vrm)W{>rY4OD2v?`_<8b+NhmQbS$!hxuZI +zgpK?1BXj|TUw)`B3k7~4JIcSn=2f|fWrlmx`b!NJqBegVMs0q<;aKry83Ut +znjeziHu8(%Q3%PPpOr2VsPzjw?%(4^=I=?({oxDm=KSz>*-oD|@2-MYXoypZWG?K{00z%} +za@T8-Lg#;eDuQUOhhB8xiQv*V=ZX@ipx3=e$es=K<^$$pcRv2-oNr5NdGXhiI7jbp +zJ%!}6`m;m-ld0ogpUBiMlG_u7HAiFsQiVuT$6x&Z +zPd6f}HkmO0$x`8CzH`r9?2P$Ozw>kalRsJAtY2Ow`6lq-pMD}rz1f)0t*F;G+J)Vk +zTqSbD8A2R4|HbdWLbtJ~0EnA|RhfSF^RL{OUnR1!vEysW-_9W?a~<5A+rg!YwAT6^ +zC&>IO71tW~9mC|9@uxURZnxqa@jiJM-HI1Xj(L0g^}Acz^WQip=8*g`YqwiOmBZ1` +z^lRCSJt1YB#dTZS#HuG8ctpkgmiA(Nu@>G;?jHK6J##Ut%0{D!nfdgPjZ1!6{r}eH +zrMHJL9!}?TIk0Vi_R@UTpZ_Wx?!xQwvTNkRt^Hj3nf&dir>8j>baGuY7ZEla5azxg +zZOL#GCJP)cX|jmHv@Oo{%JI$5_)bR~qqcMBpXnCa9u7!cHS;>vlUhvn8chK;T%`H9 +zOZG9k{qSk#UFic8W?vzT@5v6Ykn?v2dd=;J&D>C;JXZCja+^KgOjp}UqH%X$FY0nL +zKY707+=$zUnRh((ZCjTLB}pcmTu390QR5n2?#lK!tu^%a72#xoQqgD8TrCf%#a-*6nBnue7LH(f3ZXRA~@y%5YPs@DVBW5DYS=xhFcjh>^&3Hwk +zTM|hU_U3>V4M-+0cPI9g-xF@%ez;O9DxA#RZX`z9^v9URbes{C=m13dvJ+MaNQ<>|@HY71yMcO*~zA +z0(EOb4Qv +z0^!z}Cu)wc*^WRdMJ{UV7w|nn$agotp0f6>_v@~!v0pShc;O{&@+tNQCD9gz_xAXM +zf}|X>84+2bk7{fEH?DS;zzP$*BB|Uyw608H|M5sZMD5X6f+8|r$iZv3P7Vq)nW*6v +z_E;Q^DqJlq9fdq7kLJoUkP>lZ`~(T6_VS=y?Wn|NLh0BI66IxRhr3OjTNqHzClDp+&8YsKP +zKWdqaKCq%w5I(|WQAB_*BA$fTHn`xCBvC()u;o16he7gw8*Eqysf2(dBHcf6pv$@a +z@tAo4f^O`<%q$)0e8g>m7hTM5AlmSDN76>LJtjI0waRP@^_hQcwReC;gqFPe3{OM; +zxfiu7U(ox?58Q$kIvIiA>U{4BI&Mpf#BC$0q#eW&6_ajbQ9sz$y&_7Fx!xU7ekd+o +zp=K0Zh*5s7cD>Qz6#c1R9YmhXCY7af_08bNoC*I!mAPYae2$T*Q|N^rt_d&vOo5M) +zbS}I8O!rzpT(#zr)S%Yo#Cg0Ed(necvELs_Epau_5dLy74e1y}tarYK9PI)f +zUYM5AneMt{Ifg_@U*k=FZe1ZcK6^TW)(qCqoS%RNs(qbwTgnv~7)oeibgU#@q_haz +z*Ws`wnn@xB*E{!-*lm>vm$C~UvIdUq{9{L?Ot|szfujwsa}rT$k`9*#6}h;V-qFy; +z6N)zZ(F5p%NCWl}2skvb_)VhAy@OKU+*fhxOYbyZhOl^o9?Ye`hGAv0#{qF5l?x*q +zht$^BTHeQidq!MYRMG(Gr{y0u-2c2ZJpP_u1R +z>J4Orwxd5`K-hmbf#Nq&^*ZHlsLl-)xPi*nSJL`w +z*-#N1s9pnQYp7lg6{?X6HCCGXYEn>)MygOx`5CA?Qw3+F(u|atp4#%*Q&ReBNna5e +zsU8Dm<1ug|uSh%&)rQA`lJMAKNn +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 +zzrFbwzl*1$s +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 +zIt3N8{0$d0U1pu6Tpx*kd#eyIVht8dC(3% +zYkPf$)w+wxM^drc#$qG1HFunZyc?(4Tc%7iP`ijoN!_$W2}>6IbV78-l$|V5>s_0+ +zb?XS0wFZcsM(0uju;0Bw?P +z6HmDJBJx0oZSSE42nkUmnhnAPi3)9Xp5h`BTSE|A^9dk^4oK1AuG56}0s(+-9r*yF#a} +zg)73jqZO4Lpyk9M^F%Re6!r>|RBi~%#Ith}N1G1FTIQurBqXrz;Vm1$h=9vrx&kKE +zs$k|Gq*~HpX)_X0kc`5F^0=u8;z;D)1fLsw_@y;tZ}wV&i=#0;fSxJ}KO&4sgg(~9 +z6<{Dy4$5JFD#YH&#v~b;&XP=8E$zCFNx*S3aH<}n_ULsY?x29poQ8KyjsWE#t$V{G +z41q@`hNNkdj^fo+5^9MSHPR{%aKnWXz(>WhFQEbqI2H$57>1qP1YLBjIOn-F;o4uS +zf}z0D4y!a3%Gu-&GBUYrn=J6KJ9|}3qH^0n9oC8&6CJ9E>myMFBHd2V(xi1WIwQr6 +z-g`;#&}f-B`G>#nqyy5*Na=zx!Li4CK&0&ar1%^JVW{bti50JL`^4z03G!heh6L`^ +zSwZ;PlR=2(fHA^-Xs0lsvzOMe4yM*zEnsd}Ak!kaAX?5YTUl$l-6EdX%Fel_C05GY +zy-8MAv4dc?0M{(&(vj_*W&;n#W8^HUl>jkT53V&Wa7VO9df)1wTc1*$%u_O4`3E7w4Tm{dA8I@X!hmz=FH(P;#g +z*?3u-j*dI?G1|wDzcJvq4TOIpE8%X&8mu&Je%Xn=pnSnz%g{j+Bh(}Q7lio}Q{P6~ +zc$7^N*p8guw<8UstaK2-NZBV^&;}C~E9Uhsm7=x+)E?$~+(T>#2&@_e#ShesXzk}# +zD@U#&Qj-$K_j3$hab@#kPhY?ZY&T0{S9j&{!Vy*``Jo!use~` +zNxH*lJKH-5yD=Dx$T~w_LPzTSC7qf=vP&Yp@!+Z=Wl~reX-m1~>mn}-k^Hf-<_n{| +zo;PnEpbj&YZxcl;$s-Vy3^ICA8C}O&OaCIAUF1-Xl8*Vw`&j0#jf +zs)H@&U=hs4Ry{fjlJf;Du0e;yExZ@dNV`a(1CcOoRL9zhG+If}D{plT{mva8WF8i> +zF&#l5f{kN0j|le<{)Psb&2a68T_Lr$2V +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 +z#uK@BTbGfzd+;X5XHM1K`?Z5eTIwMJdVFB +zba19PR9ZWLVmKDjvGJm&4dbz1YWB`Tv-4>$lA6DRNLNee_TF(fYtMCX&zEp?{6r0$ +zO^c-KTsrdV|iSs%@z^LiSIBZrkq9!YigQWt5qd`;9- +zA0rYz`W81@Rs-X?j{Nad;$Y{2&vT;2l~&!mu^~Lza)>s< +zp$#c2u0k;_(3>=@w4QT>R4@$Dfh*2&b}S+v>S-nRw04xIX!5qUtpiM_pkPiaX`75r +z&BF;%sfMi@GGQ6CnNoD?Xw{2pAjK!aZaLR}QgGiVRz7hjf-55#!7INpBp7X*O%6|O +zO8{@)ZS4QuSWh-ll5*(ecVGn^zI@=bb^EvCKh!491z<)J%ZB}Ih;eyeclhg;;W(_5 +z_sDw++e$}dV($jTE8Y`YN4gBY3n>9J2Uq*hCRq3CBT+uqtgSC=ogXuz2t7u?WSd}w +zskf!@Isy6X>~0oE*{_;(gADWrb^_ROlB4N-Y;_jltKLl#?wxfz6|Pu2CVgaHC&!a@grz+kBGpQN216LF*G0gor@#wi=%lo)J`hCe_#@7 +zuc{}m%N{<7yBbWG9Yrj;CqRryi;^XL_Gy1u{-bWvTEiDIm?xo4ch@Biyv0cfkPlub +zfLH*b(6+I(nFL-V?xm9`#oIu2AA~u!C5s2^a%_}%U>2g!4{6TIE+|P37X{F$E2*;9|FD30j +zEoAKA>p-khYSS9Ko||{?ZYq0a +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 +zR|(O%NImo%+i!#t3R#!*?86_F`s>uzjpo@N9P +z(Fsb?yT(rt6pRG?&P?n1J<&)4N=}wwvSH#a{?!A=15Bw2@vYivFnne3fz%QHRdTfF +z=n{}bofuijyIj*yjEI%{bPMjt?pV(32ka&)kAs&a5%mxjmHYgxHn9<{h7`fliWqiV +z%&s3sNX)t-sCE=FgS2aa`a%D8=!Eoe$dP0>5>yMuMjQ7Vtmi0)n>ZoYBZDa$JSqS4sMWbmj=>5KCgK%gjr>u@j#VLkXvs +z7T5lK!{Gfq{p=9zRCtX_luQbQ3tuEDkiBjy&EA2)fA7l$ho_wi21?u{XgDsQ6nre5 +zU-d`ttU=;Ga?NagI1eWZL?lcf3OQYamkIa@DOz+e!yQJRo}G`KWLF{|>?o>Tp#sp? +z)~~}}Gj@`@-(fH{!=_L1NW3=TtlUARcUeAMKojqt7n%HBT983(_R@hP1n#S9lxkH@ +zCnCK!K?W6qHSOh-(m1jn0381DxCxLZm&YDLZ;7IjPC&59BM|fFXb~h1H9fDV3gtdH +zyNY)fve<8HIS9T2aEzdaaNOmNfQ7~8fpPRo5tzi8r-QJ-0k&W?4dj~>Eeg(su(!$7 +zGLq~Lx(v7VagJnB;@*QZlzo}%vB#6sue=U|Th|C?34{s2R#A(vJD#A(_VMP!dp{l5 +zO=s6T|`2tFq{Z))^i6-o~X?W_xW5<8r0arj0xr(rK5FXyc=_sWsge^^*hjajZr${<5ZR+$-TMNToaD)wvv;CoNjj;>qCZc#_Be;NP4AL6ShvLG{u*c*9x=({~{AHYEkTe|<@u9kQ^yl!=btw1|!N +znCa|KL~ec9ceC+u?a)wWwT`eg8z1Wg(YR)R$Gz1)%API8-Uq<1XYcsiJ>)Z_UCG!F +zVlyxbh+TGU`}wo|ZBs96FP%(otB+K+oxSIWS32$$f`4%eJl(MGS+7h^QtTZXu^oxT +zlcYte9!thZtwf^H;HcIb_=DJ3GLcJ{RKM&JhJjOs3~x5vyu?8uM{?%~Y%RGV8wQ~X +zDSO4SlL!61inn1xl;dPJK9VLo7BCgMyNa;JW-ov~&U^y*MHDn(PZRHndw_|-mlfjN +zS+3F=X)av5F(~AUBnhs!!r@asvjy^{R7h{L#eJr-oQ2>l)m`GwG>v<1CE*@~J7NF8 +zs^V*afKD|@?b6_aHrSo4u))rz)*fJxsnlJ|2kp-WT4Q@Uvpy?Mwt$a{+a{=sBU4MI +z*yQY4#!e+Yi#Gdq)*2RLfV4}vKQX(o2|uGL_Kov4Dt#chCc=1OfWy{t``Wv*x5N;6 +ze_fiqQdI~RbVh054RbQv_&$;)?SA8BPLT^1Xq@kX-4{ii2zpdsKSV}^oOwr2Y>!Dl +zIhuYfyw@y62p%e&;A=H{R0Sg1w~54^*pQUikErb5!^gOFVjHTv=1;hc%&~vX!Uj5s +z6L59wibC*(yyyvwur1_P{c@gnRduwtb5O9n2ZQza5s7lHVD^kmF3R9fWOLqY(Q^6K|7mERIz_|~M%v~}KW1}+&3h1;fJ@aXX +zCP8y9y9pzX^V)!d$Z0T0(suG6XC9^gx+GkHZI}@>vQyN#Ba^gAG<{oCz|Icd+3@ca +zfzXqrSi!OJh^&1Zt_B}&Km9F5$$3CJ*Fg4K4#8g_>KW%3NxK{PLen0Bhn-_c +zVo6l$uhYTu2%l-{l5WiUeH&#St +zn;1)G?r6AE7#O@~HHj?95e9ev`*oHW~pwN6({kaYC^qdykdHj@dKMIKzGN)v5MzEOp +zLGKQP@6=ySf8sZLItQZJ4 +z`+(TA05pOiQOG;{k&>ZGl5g@Bbt-xuHVk<1K91n7?BeNcEHknV$&k!21(y#VF`#s| +z(AEes0==n_A4uTpF(mcdbPxxNHAt0Ai2X@lPzaZ`vJSy8#Hi|4@nuuwWO-OJ +z2&PE*CQeuJv1nRsjX)XifIvze48}uK7a)|BMjrrIa`K|159$GyTS+F@2&HwI(~1vVm-zqZL$)V`nM;^Q^G=3&Fy^2RR6E#`ERZwHS^?N1z+ +zmYpyc@tOvgHMNlGt&?1J#3qDww0aAC>#0&A_JxKmCpP(*=YbH?>PWhX5ONk$y+b@A +zu2B=^9)U2;@z@sh|6L+6te~v62%zqgCON^k@{a9Jf0Ri;EEa~qe=I3u!c_Zgst3{< +zSj}||lYI#*5$+1wnjmyiO(aOe=0ouLp-zbPKzt2CFULSS_AVq!o7#(CWJ5*i4Y74z +zR>Yp1oZFQRPAlVz9eCHl5TNHc0Z06?>f5P;vxbcLkvEJ@LB-4jIwGQk(@Abm? +z81<ERaEOS{!OUsTA*T6MqH_Q4 +zYx}0q5e!X^8IFo;O|=P +z_;5g!NhZ97bqi$)=XO=eNBDxE4%B3fzhQ5RJh^q8S1KbU&X?MaE=TM{rZ9AsI+5@;1`(6g7wL|)7Ht*q{*=3ir +zN{-(qxVmsMAF0X!pu}+@gnFGBx;veNOY^{KgYu1Kh?{U59$1RwFfAdKhVGC0c_e3H +z*UUkr!RQ*~OVgRLYMW&qksp?5)?hxWmps!Z_mznYS4Bv==n?|(@GRP+?!_MZ@IJN`>M+9^=)l(c(556a^H02)|~6G_4tsWqUeId +z3t^K86{_yq2&wCu%HN?AYq>9uE*FK +z7q?Da$e@7B#24vB)I!!3(ZLjm@*-1u&iN=q4$V*mmvVBf+~00cM?m=4rXl +zWYk&rqT^P(qQ#^%jH+Nd<(@l77fU&uY+CC^-+tiD;VAv2r~R^^&BZl1QA006$zMg0 +zUdPE~>@mcy;Gyt|^a#L-Ncr$jFDKOly}=r$@0>F)UzN(N-f-Ckox#wH$#I-J;p0wP +z(!xE!142lscj9sK&>Q0 +z0FyaOK*p&@+ll}#b_NWTMkpnhVd5Y^h~@>{HK3#7?x?Hg-4nX{vKTHP4UrWl5pcJO +zR0{ck^BP#xZ;^T^>%z5cs1nNLA%u}#ah!U!Ck-*hr5>TUbNcEoj+xjY8(qjEuvPF` +zgvYWyng^oi-aWNIJylR5mnF@v&FC$u{4R^6_wT*BKR!G*dwhd)WMh-}D{|25@_BBN +zZZ^bKR3u5#>44j^0+sc05I~1zqb?jaA0JA<`kma+ihRt0s<-tKB6&}gyN}$m46(#goYr(i`ahQ@xG_nN`z$9F<1&t`0CqeQD@S&X`{8DU)QA>m +zoovprJh9;F^PxN%7UI*pGN)5r5;r^U2jV&AW)n`pxmi}u+sj6#b6h$tMj=%cqO`Ed +zGI!zX4U)NAXRRyHgh#$^E7%~~KqdANJWTj)xcUkX%ZpNn;+X0#kye>-^3a`fg$QhF1Wu0>vS)(flD@XJ +za-MZhYH%^tN@+ogxth2H-j7jqkN-R +zHn)9o?2$8jSjcp5HpuA$i@)Qlq?T<$fd$^iw&I%z>WOqP<_%ka(bp)X5>9Lk>lNb> +z!uqy^dA+)%t_CB6JJen$=yD}z4r5@S$6hRbnOLtYJAQ^(Q&H}M)o6>9YhDVmQ39Nu +z$vXt&4iJX>%p39{ZNU=@e8iUMK@9`q&zxz%-`~?g6}UMOE`gRZw6mxz(z+Zw2n~dT +zW)qA>&~cBtJ;)>&Jl(CqPOv&nGuiPC0g-oR{UEurv6l}4x7f8mWW%RO~# +zPd^phFx)*Jr-+u3F4<~_yC<-BU3(0HM>KL3BXg!e8YceJF+cI(;El+vamC6=0@|bS +zp(}8zP=Qj}%6v#&&P|N5HYWIY+1xamKFUL3a2?08_I0a}v4*FE4oTC{K}*TSUK5%k +z4Qb*OyBarsjYRzquCJhM`dE7xz`6hHNV|DzA3wh>g(~cPiSe>;oTXEqer#Cxw&lZd +z`-YSo8pQ|V94WKFm~EFRLE!IcXtlTOtE&&nI2Tg~u(1y9H*CO%GQqVAiBWP%Yo4`f +zHg@;I(!YLZ52D_09sM$e=Gz&YpNHmt#NE8BbzF2#_7D5i2jbZcr~MWt=W@Wt$yZQ} +zXe*4{3a%%&5$@u|rZU)(bXO<~#RNf+C~6BGT~)%El)_z~fN1zxx4}Oi>0<1G=Wd~Q +zNn(pnA6Z-A3WRln999~L&uyG>gZBdYGmZDRu;db#ly(`mv;u(!i?I+cYErA>QPo76 +z4WNf7z&7F#46h<-+4zQQdCb +zC*(GRgj!!b9;tBZ4OCYP1(-3LPwd_NhM0gYd9GXv;IPb!_S&g#2xkoMRN3vwYPCI(GH(g`S7MHhM2c{hQJIbiBUN`)u^SIF61ye!P#9k}vdT!IRK& +z_IaE=^5w6sIAZQm(g7lWeuvT`6>EQEpg;hP>5z!CVSA@ro41lwzg;hFKRm*n|B88EjwOz1Zp7-8(>e~3MIgoYT-e=*F7m3q}w}$B2e_1jB&%~a+`3*b&^w@zG^>f4c{CmectXG +z1Yr<)3Xv4SV#9t=>QbVJRYUruGxR{yfJW$+4^u|sE5zT0%_B8P-}_hwPDhIE%YBl} +zzRvt;$|HhoNFj!|SQ`6WC72#7!^b=*(7u#aFzO)}??a~Y#-R*fn!r8fmRya0tZsZpn9x_TU1>^sqQe%TGe)jgm|4`r5 +z1V?P*HX&rVff7%f6GD6u+l=dL7pshGj-Js7?j?69b9?6!+i_?KqbM9EYN=CSO)3)! +zXHF7vGyHV0yCes}fg^UwM2;?1N>Of|OR+ +zI8*-s?lZuk&WpT3CPoCedA}H1vjYNLCZg&HF*B!Fb8Ue8CR8vYZLpT?{?}z1MfQ=n +z@qJ*QZ#Fj69sEA9-qOXkOOAu^7c`bu!aGZP_66@IAF;x@CLkRTN_i8AG#+_x}Q +z+RE@DM`J9wny{NBF3FH$!b4SfDIQzo4RgtCgKrHY0%M;h1WD(+P$9GPc^jpzrxxx4 +zQFu(DP?ZnWgsyL`w(Pg4;C_-M&bl?9*Db^fbQ#i-fr9@yCD=#s8wp8=copnKhzBfT +z3=;b~SO7qA6*mM{ReW>hvkza{dQOI8E#uZ^wQ)Xi?Nyo*FLSbuuRjx1NQ8rGpKn-H +zs5}z+5Y$}KKvnOT_CB>~7V22U`rtA(P5QGJUplXCUK{8o;q|WW{w956@EHl`%n%Sg +zRS$aIG}&+z#AW)w_vK@5Z$gyJ*+{EKYplA~8!_rxjpkqXCL5RG?_4;O6K9t35h!fH +zxYMciO|_)m%>M2Xf8$Qn4=D11qd1fD?0c(&o*EvEGI3i1@gWS6k$*CrZ(_`i$-_mt0TIFH~~iJY(UB +z_4Gr=ZK;e81#-#g4j~PA*#$eHNV<2I%McNrqCRbK`$Ylr?C%|^67^5SQ@VUP0QOP7TdvyJmY-`$Hc?1rP^hqQEm?UKE_ +za@o4}TYdkHedV1jcf=$=_;QrrX)weQ=6VspE@-p$_`6^I$IB(A@=gDv;&>1dJ?pLEP)EVBmShS0 +zX7CZg%Z>FFjOyO`Z}01{I69CV1u-2+H6ky&qC5x)FPc%N?Bd8KaBN6#GQiWX!>94# +z{d@n%w*fOgbUKpK?L9jbcC$({Uz#^}XnpXS5Dp1f-rh0TIwzw7cnI(~;#sE?wUsT| +z?wy!WVXr3=*(BjUHZU$nP^Y?S@z9*d-y; +z2oC!zr$g8b!q1MwY9{`KHa+z$--ek$*g$y8VEYojYwvF&5u7&S5QHve8C*Z%US$c_WZPDoz)1{8?;z5RDqa?0?&JZv)k=qR3f3 +z;BEz5B0F$xogZ%8gP`8uoNKoiqDAjq31z$qi9hgt@45d17qYH1+%3T=Ucl>P=$61Y +z0?^huWP*PonXUhlbfhpn>IDg|h;-!EJWPYRh!VF?HYs%Y;jcVxeo)R%5gA)TV3Tmc +z17ZEV+%q^D*aCCe9kQ!)F8Y1!a(i^*XgII~N71_VpejlKw`hjH6@ZYRWGo)d1+BuVC +zLaeT&(2;$d+yaSsKXhVfx^FD&vjvFZ50blTr--PJkR>Ma#MlmG9cU&m-A?%Lo4VaY +zp5-48s)&e==bq76u@1{<+8jq5E~Knq5;m#lcI~yR +z_b>LF}d4rth?GO-MjmH_cgRM`{(<O +zjlO;FM!$FQ>ui82{3VTLZJ)xRpE@C)xQ7>BNkP7~ngm?mh{N}8CUzu9`gJsWKev4A +z|M1nPx4v!^A2CLCM`0U2G<&C)Cp5$XW-18ZMF{M2Md)rn^y8l^A4|>m=e9(a|Jfdd +zH|-GXfl(V=@{-%N#Xw27OnW +zQ==ip$zYvmKKKQ95Ru#w>9_FQu)A&SR17bdbFE+a^4quon)_B=<;~-rXh{{$_e3eS +z0uRtIMN|lWxMq7uh`P#E%TM7`d5=FxYCxk}w5e@x9fKL@a;JH)CoX<)fC?+`&VGnH +zh8+r2aaVA8P4HK)NO`*}l|%%Eof)Y<=sdzNqFg(@8x7Wp2@oCA6#TdGLRWw3(2fx8 +zUWMCqzR0@i{_MQ9_`C3nsos_rpk3f-oVDdH^2x-IWDxe?ZZ5SA-?u$CDWVa!{vu2u +zQ@o=jwN9yRR_?dN2xJBV$?KzomsKX_$Bd(T2YIE9W!l-J2tkzSa#GHdn_b!O8~{ +zhzC+zju^6pHQk386PreUYvpsP)b$Y&lx1%Uq+fq-Wf>pY)3}WzS_x0RI??0Qu?EYW0<4!?3&mc2KpWx6+5eu +zKfWNiTanM{KbxMu$x&s6?ykJM)Ps8zQz1pOOudUXDj%BITOm#3dhO*I$&qnU``Tx{ +z`+hegpW4lrF(E?bwqnR9i6I`AZApdn8;2BE%7w +zcRo=zdkt`$g4l}S1mg7B&A_@KE6zjiNC0u=``%vrz&Rv5^!eXNfAX4TZ65dR!e@6( +z5S|HZ9}8A)q!c0;XKKlH;Vo7WCKT*}&kpBEn&gf|6ZZz$@w!!)B#`sTIjyv$wbV8W +z#_}P57QM>n$gjv1emA|HR7T*;*(Mbu`kv7M| +zu_j_`cl3<}*1Oy)WBDVoi*4i5X%LZiUR7M|+(Mj|Kw4M%F|r9d_+$Fpy(G>N*-Dit +zTzJr$b63L03BqmK`sh&BZao!n%9j0xYkXlg9Qus*a3oE+6XcVFI}H5^%f+^BB6kPp +z=O&$(6*oZz56Sh|{Kt`cc(7AM@+6XGrTvBE0dTBCOemK~vB_bOCmAtusIBC~@F3tL +z2-joe-eV_fpxAWF@ZUZXY8(rWVk#WEz)1<|M#I%FHox0mLz08pwIomocdI0e&DMH< +zrINO?+|zbu_5tx4q+qFq;3zkjtijq0=yxGeY&-Yq#PXJzA{!7YF70ahj>yw+3t+S0 +z(koouph$J&^gDfr+=mt#N$4wEG_qUY#a?rz(lQC8YL9aDOrAOD98(f58p+CD8dYuf +zsY{|LgYw!|9Cr!JGkvsIHX_ktK2cGPLNRwOM1S^Lac9bjFp$l_{bp&7et+0}*w||Z +zTl$>Ck(nY|gv<#D5JfCIWr!KKI?$m#aQq;PxU5@BC!WH=TOyg4Z_ZT}QLHBm$q0A#Hyke`kgPbi1kPJ>>->{9BB%62yW^}y* +zzCN;nX9LF21P?JISg26?F}3~-5Ko9la<&I7a2pCg5}qfj%DH}f?84;OXZ<+d5_*M2f&{$PHHW +zlkD38M#MqQH;}DCDg{FsZA|HXFy7sM`-z9^#a`K>(1c*6balGLo>{ZTRFP4Q?@?T) +zC6}@f)B@hJX2W%*>G-XWS=rhob8Ot1AwOozRlE&1iFSAD{~%hk?~yq8Es$?aw2P&U$X +zXB~>mOo-Ip`HI}v52LMAuz^OZt1S@vLsAa<^ycQ4G*c94u?(=ci#E)Vy-SGjx?CK% +zWG?foEj)@HX|Hz;iYf3v){A)uub?gb*GM4}4=wzb%8+Nv0hRrnSmid8 +zBg(|oTw1!5gnilfJCe}o@N#@nOS=Jevrjl07uhng3}_ARZjm6iM+`}xBGJy(+h7Q^ +zIiRF+?y#1*)$EQ;IMZzy?>Buv+9v4AT#}O5zx`nv&ViK&hVVcL0`}b)z8PWenmY}J +zB==n3->WeU)6gNoV5c#I_E-W9s|`_E*pj5&a)-2#!)S7d`s#j>1l$ve)DEXsu=lw0 +zVsZ)Lcyf0LlNFFN15^Rfm`RgN1l7s#v& +zxV57u2ZL0bXbqZY*)$2dgfH52YmZ+HC`i5L3Ps#@d7N1Gxc%^n`7KHB&9*)wNZ3j^ +z&|DMIP?)=g6q4AN +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 +z>J3A}CgqeymYAq*r~;14EIInh%_3Gq@?IW +zBn`s(gs?xc$Tvu#frGXa#m$rF#TMPKaNWL>%7bzu{)u_rSpqocK2Cq`d(jsz5}!xCoB#m{NJ +zEg9Y$#NPP;9_tOs`{Pf`yF!8tL2M8*hZOJ4{0%17B1+B858_1(FFlF!oq@TS4=6Cj +zXkAKhjoP9zgUgWym8u3b74AWUGBvS)n?gUgs&(QntYT)_ +zJakPuTPSZX{W)^QblDEQggSGzj1z^JH+~ENBkFXgUFkohQP>p#lA!hBVygxy+7mgl +zKTXHAkhx^1NvN?Yshu-I=N1418fp>c-h6FhBK|T7T4>>m2$;&4UJ-kXl8J=3LDBA{ +zqqpNKxz@arMjW!;$lBKSwKG44G>>3w@cpSHSbT!!1nf2qedskA7V^M4#Go-oG +zxtD0Tu$+xm4dJT{kRsordW&)QupX>zX_`$4+{bkSu@=E`0Ny&nZh^E{;2I+C7xjvF +zu<0nIw01>CO10Z5SGHSa>fp%&I>zUb^G +z$fLDY-PPWXh%n^RZ~+O=?6(r7SY4s^zBQH>+oE;>QDBhjevTTXUqf|`uJ)P@Lgjl| +z2otzw=0|rrE6Zcg$tTT_^Z;2J9cEUjPQ~6vvCpgpZTNVH`XQE@fBli2CukYSvDyTf +zyChKX+B>;9`w5cEPcpqk%@L%0-;jMpaQCj*Zq*hY53HlTy8&%}Yejo6IZ~)3vB89|Tw2^I(D7sV7BNr!&lwLJT$0UxNLzMQXz+Pt^hjdja +z3-+q8kb!WjM#9H8a6I1x#bTS&Cqh&qx)ETdd-ngAPwc7)`wnR#-0gd@^6`2q+K +z=-4Fe7LS^5TgT!)O3pCJYJnrPGBKl?P$Z>;*x373Cqp1I+`DFmBjviGuCzh9SGBzY +zAtBvX^a>_LE=I>`alJYF{Wo_?-Z@)7vgKALR9UvPitC;dOZ0a#ZEheJu;hsVFWCBN +z(R<$AO;;F`q)?8>`2UmkFH4RqOR^w3@4sk~JGvsslbI`5t=hBxlH1~Vkstv$5)P07 +zN__k^RWoxqBiE@Ov{dcAGa~o^9Paj1Qw`8d9Ux(8soi?1zikm^-zN}QqYpTC?SQE1 +zEl*(pJv0`cK!?;6K75P8RP*@(mt<#XmD}vV3^*BzwB~(Z_u3?s&FIKpeZ91Dt`{aD +ziSvs}8m|H=3?+3luyc@etNH*xsE*Y~jl{2Mfa3>ZcA^%>^miX2P +zfOH#nEnJaSb1g^{kA2udx5!F`!g6!zh?fCQAoIc2fg&0FL8Xsde~|rPx<>Bs5z7n; +zb;AfsU`NEP-nKV@-9t^O3?WU4v5V<1ePuJOpr=jetRU(L;?B!qu_tE2?kY|pvFr1w +zfi5uvoA*=p51caeecT6(NwuT)=J=~$cluE;`k>N+TFIQ9b)q&mE4Klbv8G@GwpQvji_YTKAQuL__95 +zEfb8*(-ciYk&(7*-R3}s?!Z{Y&1HcC>)b)Nuz-bXvicwRWDgI-yeXaTt!$_*9G<;$ +zo&k7CDHN0#v@zoB +z*r+0vLC>(w&!>LG7k#9%p@IbUDFH+-x8>~tap(3AEn`Wh`8-`(7Ll}^PZu&*$`6fb +zGftr0>o8P>8@14!D$Fb3x_8dROM1xa$3_HVmt-m2L6zG|Tga}Xu2!a)W~gC{)C +z7h;yW8|QACqlw!NK&Ezp8CjClLM-T<;6Fzyp1Blo)+!!q;9_4q3!2~Qv&3*>n+4q>`W>eEo;2*Sv$|G +z0b%^L8>7=5y}d=#DA`84Z7D=tAnMV`E4xB49=KfK-0XMh?~A?T>NY1L>e;qmq +z39w!{24aQ!I9}wRTpEln@d<$Z8HeILyOs$(LZWDp`QKA?7RSn+AtgC+ZO9nmjO&h} +zoikv_QNp}^%H^9zOabePe!wB5+@4b$=|07aYk7zp(@@Da8iz|EGQg(jVMSjA%aGWr +z(NfKuY(L>Q_}5&VTNc2?fOolcg_E=n6P%&UZ0&c3{PfR$uze-=!Kvbj9Z;155Pkp3D{h_7Ds_xiE7(X7`C_x +zx#-u#c^tKbt3M433I&dwLDDoi2nN)eW4CYD?89!x{tksH8%b4NG7O9oIWi885C%+h +zQ~vv`RnOKB#*NJ<$@|afU;zpj>?AH3@qry#j#ZLhuk!(BIui}AMlthwr}=mrEJ9(e;*qK(8Il`F71C~r63YsIoyS1wUIQD& +z!M8P{_3WD+rZo-Bfl3jB(9+R~M}h`K2URGNxpznRCZ`~7Bq)572O}&6M;zA?3a}Px +ziK1u0RtKBr2t=8AZ3%K~~y%K9<{&vOh?UdrMZJc+7VZ}nR44rmCCXteeiWEO8wFsKqT7}x9W(@_D~dz60<8W^>| +zb3cORrh~Yg8ElO|I_>YL7Stzp3SgkEaN&V4-;&m!bxeL_Ib`D8hDu@04B-4 +z*n&NmsF;|qcgWUj0OhJQ5~Qp;RGyIdaSRF6&>5G7kXn+kEW<02c#qj+$%7{fZK|H( +zQ*toF>m~!UH`l~0#CyVzpT7-1?PNshw_fcH!EQsm$Mr1awem=DAmzzhnxb%GD;|8K +zP`vIDU_sa}@=!?P4^tT=?n}?>zm^B&12Oa34ss`B4TEz1BxQ7pYjfS@e=+?JIt%d= +zr}OJRnr=kP+&G)Y@SKaOn>+NQcgGYUNdu(Q9)|X~2#d>;QVERVg$7VOqla#<$emI2VKsyqt0R9_|TCRsCR3mxCNAeu3;Z@5C@0U +zj9tdiSnO{e_$Fu0hbn27rakTBsq_i~xs|f%=L`)hzY1?ZnG~%O%vqd*{NFq>O5JwK2fdaV#CUY%;#?i$`xLg;@oYXHymXzHrMX{ay +zJY9F-q1XRV`8s$fw&32PW +zVotbd30>a!5=cjM7WK@%cM>NLno7!DYx972CT?o#$o-C;>-yJvt@AL7vGwZ=pSYL$Vm~ntpz(> +z=(p!JgUbTG9pQWK?fEgc1zGyh`RT%tkXCOM=o+;qN)y<08GZgtpUVyyQ5Noo;kn8C +zG-uzeoG$6QhQta;!B}Q<7BSD8)|mnY<@tkzB+MaXxivKvxzZo +zHps>(F~E6ZO*1d72FPfL-o=+78prmxXq*j0Ks<~^z~hz55SrUVDH`nnCvh&`ww-0G +zC{$FV4B}g0{Q)5LQzF~-!Wn)g69PrW27dB*G9n$@^LdFEL5zE7w5?}3AWC{8y+ +zRU9#dI&8u;;(`JksG)oU^ZdGs5K{D3)m-iiY^vowVx8rQqnu<|u{#GuFpM{vI|Yr6 +zWP$xnLYm8U$5y9p@tIP^3Za)6w@^`;%i@%{#4LV>sqXFpCdapt9~_3j0}A!{JM=nx +zuZwBz4`m^@8xp;BRPMI@9;O$jPvlMNwqm#wRn3r-X@?x5y$#h@SOZ(=u`kDBDNv&M +z&XzssBaS1$fLk>YCe4P+viL-%?T6V61B!Pjym$^d06=5;5rJ@h=fsw>Hifq<&%cu1 +zwHWT>{*vGmh6}F@TNVzawN?E>vo9~iGr6xU8HbTqpIU?1UV-K@5G{3T!P{7%9M!SG +zrqtKNh8Nkb2YJ7gTmqsSS{p!JADxLLkejcO*T`G5x +z*gZ-dmWJ-kyj4I2BrLkq!ska%>U#GnIA*m{3RljACHHEWA4 +z3j4fnfMKD*FFxTB7+>}K?CnIf5=i}odiz5x$%l{T%DckHfxi60l2hz^)W +zAh-lA-~pWh5t(bYxQdu5cED2;vg4KTZE&X5QK@-yz3GH;!MjRs1kkm*7oTHJr1h(MpH$Ui^`L6ex{&PAM6hgP|6`QLV`Y-jbg4q( +zi{3*u`O)>YOZ$SIuS%L$`SSRRlBqF)k@gaAvR@6G4cw=P_fWSyYC>jwloA+d@P^sn +zL7KxXspYh$LB)Iz7~;c&aoNUH_-H6)zUwqo#cN3RUQ~iF} +z@+><8IqZnJO=BUkzKpCvjJx%;=HudJfpB=`0|DNuK18vn_MG%$6h$KegAHQ7o`a)3 +z&RTw@&KxRb0C(%cA;O5*>E0kF+#*&TlsC2PizzUgApZ;?t&ty(5^NYYl`$oZ +z!Fwm(1MVGI4bUl-0MY>E9o|)~WtG1q1+iFpl1uBFd!A#DmGVjFsN)MQj@OQ@mTdPc +z@#gF?r-mg4gT@+01fYS~T<1p^0vha>J?0P?XOYFk5{bP;tu0Qd+*n0`Fh^IY_XBwC +zsNgC$C_Bs@?|cVkM5|rM2P=jP1w5@1_6Fq84&rc;wdZ)RCKf0WTSu_=T1Q4vofR_i +z*;$zu-TSq(eTNE8#+Z6{Ps^5O2I0_s0wydlsRo}@%KLwI6T +zr{mFGGb;?*rxN~vA=R}hZeQW+__g>|G>K)eteu9u`2iF6kbeCA{d@617x0cWF<4Yp +zci{aBh%)%|F3*3@LC^33oJtlB$X4@Y0mD8-Y25$3J$PeN1QmtAqVCaWo#eN5FK56&I%3?>7B^x(e<=5RQ%xS{u8%yCArM +z^Sp*FRj4pkWTQ|!E@ulJPO|q}CGZipD&IF*5&Vnl{pAGc%W~u~c?&~{CzjZZy5ccY +z{S>qo8l@I}_yk6`c8r@PVG?a4^-=)oyleXs10-iDOZMoYRh{Cl!K#cqQ>2KxQHc=^ +z0#5{zVQFsN{-H)&R?5fa#t5WwLRB0Qelsl8fbw(mu*sqkNnyrNJ;5AkNvp2>h>&=m +zcQm|SvAY|+Mvss0DX+SSlfcK#l+B5Cmn +zl_GQ0lEAVzBO5JYVvn^O*=3U*;o&zf1}VJRTePTFNtRHla%4AS**?gBEgmX}8E?CX +zE!|bZ-KTFdnrs>&J#9Gj#4!-Cg}E3zXw+#(=w`$D@^DrR!N{X49WJ_goWBG0vEEdC +zE-|{?IQDU>N-hA{7@^<3NcY{JRo2V;;cZ`?NiiY{rkn-@$x=s=T+nCbuv{LGL@szX +z<%9Y8_aT;$#gTIc`u24=jkZ&qc7dE&(b8Irj*XmyUK!N3huA%km|{K;+tW)L8m&`0 +zA?3mlcwK=@PsddIsHaBkm(?uKw2k|!ug-h=GWgg%yDy-*v$Yp1wXv$vwTwZxKP|cf +zt%{ijNqkzYmO=X^!Tqb%_{5$FT1H(BRQ?9uxqhoatZxSJ$M;JA?}sAU!Ys+5#qT&3 +zlm{>mps;@p|B*Jyg?LtRMl2O^HsZJ(>kho`oF9jRyuYBQu&m&aXdDK_JBF4FsA4>= +zxyWYbaJ7#%p}MyoV)>X^E0%Q~k84~@M?kYJdxX|oEqrWY{?59ao>AheCr}Ts+LJ~d +zr#;e%v5i+!t`wc5l3Atvi +zvgBJNSju~gBvrShJ93HkSISp^1n=H%%6Xc3hv6yEzuj26^O$}G +zq@)HGGM6WjO`q+O4QO!*0=k#y1PBWd6zXf#HcP;p!iSSz$TGlTEQ6NhxX&xD +zZcMTa9B@F}}IPn0%GEsSh7mKKalP +zxG@;Ig%|3@Q{F*LXXs#x5&i_K4n70DQ2VyW#ffIF|an(k7w24^^q6dhaq@=&~YAmSjlwk{Ddg>GwOdQ`B5GVzkEX +zP)6Z1JR;E1WFHZnw(8suj7#^gBw{CGBq1zq7%!6{XdWJu25I(`O24P_6nA3nfw*W^x@ZV6dc6wZp0 +zmwpmJ{QKlFBlU*vTc<4znlP4dN!hPwPSN9X^{ADjFxhnWOi;0bD@H3X^Q-A4t2d3rDORUS$c2$t9gap0fK}Z!#;gX`o@}%eDpKBqg(X-n2ePhS9R +zaMXuBw19r_fT3!+qw5NhUC2C1bdc%Xfc60`nTk6ZI@aL{XgA5fs&jz$7HfPD&Q`L= +z5&AnhoH8b{K~HPm3a%mRlm28&RUcIiftI44-UCy)c3@u6Yv1+UW3q-!sH`s+wR|h2BQ7p)N&PgEb^^eg?ND9FlKn4ZI;x6|DUa=0%tCCHzjPJcE +zZe9}31EE5Key=(WNDUoxYMxA@)dU%tA%h5E%Tj%4X})<2S{yC^+f4aXx1s2_%SPjr +zmrYE{1-*`dwsK*}t)Nm7c8RluZ1Sj&g57bL6?o`)o<9mg^jugq*4yCAgcS5osV*%?uZ)L`dp!&2x^=uD*xNrkdCk +z!|ajuABq8O)XYXp6nAcA4oW!H7O9^kCIF>i%Jy5C+A_RPsl{XkK-UvbSon3>$TX9K +zXmE0nm)z;w;%qdEtQhD*Uc0+o1!(jv0bZNtQq1XzHEQLn?m3kGf1-B-=N*gBKfeF4 +zQwszd&h_Q$L%{oblNCM>`LupuCCvEq=o;BkxRLJbBj7ROsf^byohRv5>o!>cNSe%yl +zIssD44h+4R8EP@MMlLn>;L*+l&TqqNZy}WzR}tszP}An7V@TEyua^!

!HXC)xz9 +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 +zj0XX-oK8JXuXPjkJ}?q9bU^Pz%fGE +zfRGc1US~J>-GJ_EmMbg$k0F#b{;OkZ;g+Vhz>${Vnxmj3_FgWxU8q1`!C!P8Sr=uc<|!-VNGN@JKauuNwlH(5|S +zvkfTeh)n@e)kH$6>W+>bXK|rDjkg#uFjHo$jEchJ{jmcAAfa?uWpn>AR~0A2XqKiRGHau(db{*3B)+?EbpBv=7sGx(VbCD-+7VdE*F$4z9is)z0Jd|0 +z-{8S2eyw4^*bR;4vD9$oln8k3-9@Pnb#5-YMJE1KI~lnMX?&)Dyey9W$%== +zi99cMiil$hra33+oS5_GFzFPH(?C)kduux*{9^u}G(=@hjFFi=T(d0^U_`J(xDg_q +zyDJ-!n14^l6sMB3+9t8lc1%PE7>q7AhRYrrvSFwO)*UNJav!KdN!45MXa#e&{h(%=Bc@RzYDmi~iWFD@KN_Lg7cn{~ +zXrb-IcGXAsm%YFtixU2R-othdlOoxk0br#{q3qi^7dPH~x`oA(FD;@02SUugMR2Dr7QOkHog%iUBS2qJwOR`7})`&kSdLZnnH%@{w?IbN+y`t@VPv!4GOw824(O#UGuVnFR +zi1ahQ?sHi2+f50H{$*DCDR=Niv36;+t`YU`2tj;l=|Dxdv|8HK#e$4BDYC +zvl?FDb-`s#tx(=z=j9Oc;-A`5$-wcn~pkYJ~OxmlsOeun3JuiO1LPH +zYU&PHulQ%Sz}Z~JklV~k)A~&|^yhU?_X9&Z;uSN}$hepg5+MLJfss9J{WvTE58if; +z{B3ef02Y=E;6=e&nWA#rkYPobw!=vQ7_#H9>a%`z&N2;UhRWVzx^oHza{`YL(wjaUq +zFCMpns{F?4ryVlro9fQ=>Lleylo{4+b&vB_q*9@A#bNctY5eN*UzB)X_EdzLxh +z5gv)xSjBRG*}`&-$3DsbpNwL-gL&yONqw>>S>U@k!rk)6uFVIF!4Uk9nlc)u)oE3q +zk~J{RHHS$o;SzGMU|(g2{vj)pqv7-`V}9gA#PuM2%|S1RAy;&~iE) +zXUriAw2`8ArBAV2N*q;+Z>t>Ora?3kQMpBPh6>Vuquil-lY~emlu!fdDu7cLLIvc+ +zMoAZjpvX_JLAFlVE3LJ$Bu+$ArF}lNV0@64@}FXG&QJ7SpgKV%5{c|-?<|8yLCRe7 +zbY$B38Z%Sq^0>*#P-Ss3S*DNR`#-+_>`&IXMA@hZ!aj-V^O`D>y@0V#$%obd#G*6& +zA1$88i9M5vDn(X!rR3U;39R)+jWY +zGnn_@3v-ktp<>Y5z7;0$#B(ib=?I6iwS8QNT#B_-zMu6bLx9H>8?3bO}zD`GFR)4GF4n&mz8nT=*nlN?_rKwZe{(+zXp +zpyF{6gnG`5++Ci7@jZ|~XspyBR=FFVU5a^_T@F=5?hhe7iLs3d6d%DkL)0X)RMl;-!C|*8-a{AH +z@-ZDoN?}=!Qqh?WlI$c$2PuX-!RO}9mh`K&w4Sg>rkhQbmVsoIvElH*8 +zkl3hI=y1W$o6Sda{p>K`h-^g+wNW@*Lfu_nu>cgJackki6$yCPx>_%$7Otn74lY3~ +zFDTPT5>qfU&&nd*U7~gCt`9B9_l9rNp>PNZ0esvQHJ4+ +z$IXscavM29yPFF+UYE-dD+#%M5VpNvN0XnU(&rY$u0|~MqC$23sKwEhYzOrAy1l}0h-%#r!+dNd-c&rQ!kdJ;foxmCHMSre8m4m=A``A +zTm1Qpi^FmKw#a@NXj5f_j19$vlDDEHuOq9BK8D7W4}&x6$p#lA<#V7OC#`RJgBGT5 +z2Igg}w7aeq^%vq5gAuK@Ypj3)jfAtdHg;_T1sA6NFV^iHt5y?=8h%QhuY8bbRl(kK^^Z +zJ@6hpM;4nLS7f`_h&_Ao&gQv_MIuRgI`FnkpsocO0diOtbphD?e9hSFx2}>q@|lBS +z?bib#c@au-=A|7n0G@`r~){73lvzig19 +zn6bj0z@Q;W2q>)GV|O6izBc^Wwr$(C(Xnl_<8*A>>DcPnNym0NwrwX*)>?a=v$6Kx +z=N{vEQy-wls99D2dClK-d4oABd-gCt0+YVG?(hs#T`CNBrfZ--0s|F38%U#70wzIy +z&5B%DU0N#8E1HM}DeZ1+)`_elc(@1?q +zd}*)P@82q3Z*+Sm_>M8`x4q>JAW?TfX~?+|#zf<$jwi)iyn`e!R@p)tap=t;3bZFd +zApfOkI`C(bSLGsy{FWp(meWL!2m0)>x&|rfF2OORW>kLPq5SNiRdL8x5z99`an99k +z#&Y($Z}ffn8;QFPT8JHJ1OZLob) +zYM#eju;UTOI62wdMFlD(8yGr^u3rSwk>YZS^h+HyEb*~Lbt&BN?XR#%y=bxg^qr-4Pb-j9R4M6?79dtypd;rn3v_!AtvUmmV=$(-f<87*KXRnd@$+v3jj +zSr7omY0)EMckmp1U2W*xG#5AVQsqXIR+k77ZsZo>6IN`Ny@t#prru>D=obwT_YY)y +zcT-j-0U2OUcH%xyCGL!s;d;p1UpU+$1BtLmL>lj%O}~MrU$HYZO(;#41iAeN +zlt-Bb7n_HpoClAy? +zZ)O3h4HdVmG5`T02n}p6ZeABa6kvgC*+mS$;NpNm#-n4~Ei6ijd+$Eq@Vt_1`>@l` +zlUOJy7qce|bg%*+k{0M~(koJkN-*dcMQabKmla%O(C +z>0NK*POu_o{ZuWTsEt`_j(E{0m)$OJa2B%8mzRz&v>2N11b0S4XVdr!6^U3Q+*n%B +zpoL0(M}!mh9BEB9;QX_zGn7Jg4Y!!bfLL;?gM|Q*Rh-;d-zo&Cr5AM#QFJQhnJIQ4WP#z}in}{U{Fj +zpYSflw(WVp)M81N+2RT`HeWF6BN@P)%7VQu6)Fz!JV~IEVZaIn19*0gqHs#!%Fcqv +z*!OZ#?s;M907fX7Fjc~WH>YcOu9Y{qRV2 +zzxSNt7Bn@q1j!es&Zct*mnqJ5;KOPHr{=l@e4|l5oYLZ`8!5y_fc^;J)iRrb;4+lt~WU3_LY>y?|gUnHz}m8J{mLMy+7RF +zuW?5gPq5Z~b-UU--<~nLDrWCSH-4r}%Im%RJbCzjUf-@CjvlXvGA3h+vX-V^7SAXL +zuk?I3wE34_RgU6r0d2qoUw2@!h@pRURc8PJvmEh=6!g1JRU)ZN9e<^NeDQ;58fuUR +zurRfcuSMs{_cRXi$sTHChnE-y!J=Bgq&esH-BRR~+L~M13wg4uTmf>_gPu!5>luEn +zm~X4t@(|)?Xr{!gf~(#P;#T`1jTzY% +z{`EK);hkaaW&b>jal=LA^jbBeB4a(oWcW3MkY +zW-r}l+fQ>%8zlKGg7A#7h9J)F6-UfCvlJ;LmO(bjVkL6hKF&Gm= +zGENz$475nuyUPT}Fp^JIStLbx5bSyDggE>l{#gXMNjZq2;Bi;3y@QPVAQTQf#~2%T +z=MDXYYVLY4strzBe(PFGBqU#vbrn%SrB>E08pfqg0gxy%H27X1cD+c#F99!JA83!^ +z9@#hFUu4l1!$UI>;fBT*7lpoN%lJe^GBa0i+eG3JOPfyK9qhwWk$kr41xyoUAZ7)d +z_4S-k6Jb9=IADsGn%9uq>S?;u0>^1FBhh@JrSa&5#653T-rf*-EpW^}fJ7IKJm%4` +z5%bI{Lq#kjp8^X|*D+xIY#ig9L$j9{s=IHwKVno$M_78lV9NT!&Ra_-EC68BJW^(t +zp)AqDA&^{4Emaam2^99Og3lWN8;hu_>Z|(s3#g=~;!gV`JwQ$mB$whYHU%c*>V7ju +zi`fc@Ihl};NM;)80t)2gue!uI;{Yr1#|=qNsQWn6o5^mjj}qrO+;_gV^(E64?g>G+ +z05KcVDUGbplvak9VURX*X!Hh4he<^Kk?Gt^Yq4ok=%jI!Y;Hx34oSLkZtA5@(gz0L +z*UMnca+`q#eWDtNbcCA8oP439bCBpPsPa8s0+b;z3e~3)GDq*qWuzt!0H2vg)wO3| +z0=H3NU~)6A5{k!|51l|gV1f9h5I1fS +zx(uBo8yK7>-!|>OQjOT1a2C##K5cVnu+oQsnuJ4v4PbuvXRUf_X}g(msR#*>#OeSz7Jw^V*{n=qKQAz*_>Stjn%zWX!QUkQQCl6%A%iTWYOr3ZNQz8w)h +z78FzSpX@4_60>rAI47PZK5MEU^#@SCsb7-Ordlz;3kr-ucEu(r`XI@KGO0Z4-6{1! +zEuEH+bfPjQ(Ud#2W0z_pUdjuv>CEI +z1NARQet;qeEWtpY^gj>N(p5n6`X`9yA&#Ju!2FP4C$V1_dKFKrXKaKodbL`Gpq4{p09E= +zm^OEEr2e+&`!RSrBrLmjW09HQ$R8}*w&?1;V%^lL&MdwDakBoaTy?ZJ+RJZper(G7 +ztup6sgH)G$Zd_ic(i49Y+L5FAT{J#5=h^xAR#XC39uQNrUS;HS7ISew +z_$V9#v)}r(x5iPzWShF7K^s2Hbj)V_OWTGgW^%x@)nZtFJH`7R&9>1J&7JpTyvl|p +zcIy?!uA*=BCB{6}S)8-nKjewn6SYOWt!Y|O*q+wi{Wj`QYz)!l-CU;bTL1JBC(!<& +z=D4L&Q>rs$J_sGWbN8%OZiM?PxIzA6gC5M;y+~gRtv3q?v@DDAofJQFBB{gI*m=yJ +zvFq_(W%9B8rSXDo=OGQ-m(I|=is$4$^kjW<1X742bot=Rq5rZ5vj9#%*+LJ0kNk?T +zOkmVJUg{;$E7w!w3n`x}|G{VVG`Q%A&`Ktb)}bJU#QRy%a?$F|V{?wrlGxOow+IN= +zUPjRlrsb241N>ye1cX)?=`FpTUHsd%uwcNQCeO#a(KtIfym6pNkxeOW3ZTLSuFbDiT&@QAv)}*gwko-#4r*qB8-y7G7cgaJ- +zF7&@PdX`iTOhPl=;#|5`k4|NXzX(|HO#<B&+y1@2x!0Lh%OHtytu9jvene#yzHC3#@>T%U%Vm5=XJw86z5uNM`u +z&`RQg-nd>P;;}C$JHDa?8h3z^f`k3kPIypi0+}1O!#7`b)#%5@y&Ccb1Oz`e@>sDN +zb@pV6qES@v#Hh|6Uhh=+^4cyGJ9Ku%{mtNx)hl=l&p2kq>{{n%3rChnC$l=rn_cLA +z&F&s{EN<1yN`9Q)5FgEjHlENOTZn7>NyZ~`S@^B>=}i*BukOszmFouU)|3beFtcjT +z2z$pAKwzi>(%kIAxz#6#hIyZ=6V>WH7YC|VEo!?RRQZW=LCDNZHjh_s<^JekO9sE@ +zgTa%&bh7Y*7l3mpQBk5658z$4emJUk*_ky%Rq1!rypcy~Q-GeAh>aKSsk8=o;RMLT +zM}WscZa%+Cz=E^PtWA0ShP$s)(TVi(e4sLFhFoHm$fGGs=3$iyb;1Yu?GL3Q-wR4h +z62hUBX-N_MfjUpW3gDFNuHJ#AyVT9{V-Y`nwkW=KXX6w%y!gpUJ~{nb_qDCc!N5@P +zW*ZLP;nEk7?Vx=J!aQ6ZQHE|xZ0JaE;P$DeT}sn+bz^f@eGSImK8F`tgD@9nwI{{} +z^^KGdQOeb184Jy{n$&At7|;}}541V~Sn;ffT7c7EZE09R%e>bPzy4YBF +z^K(n)Zx1d-Hiq(%lMffl +z(2fA&7L?kGU0qM#t!XA>gdZ+{Xwq|N41{9$w!nSI*WO>OzNEZeUk#FBH&ei#8u^Kyzjij=q@8J +z1{|}s4^3VqeuPWnDyf4zHrK^Q>qYg51YvDVrWA|r~Cn0q6ZGLyZo}X((Jw7OILdNh#)-;{t86j +zuFnI)|7#R46k&%6j@uX7eh>VeP!U+SKKL!KS}l-)ea$=#oUrB5FM;awCi#S#{=|(} +zd8N?T(|WbSA#raT7YR^)ezT9H +zx!@MJxFEOEpbupFSQ8+!b~S35ruJ|tn8MjD(}sbJP`Kj;#^z)_f63!iy~1LO#FnhK +zL<+-M{OPqkI!v(sBCAJ)cYkb)szO>3(UHSe2MNgwL)t#bSY4O`!M0?XCWw@jURT=< +zd<;x@Hj?yw+CR=ip0U*hNG0}~0s~2zS1xK8ng}5DgFUXRwO-6iyqys6s})`hAgvXg768xpiNwZXyK^M1xi0m;jIZD8R+}g( +zda0;wwm{HCp^kQ)Iqwzo4m*NU&P3 +zMvrnjXK2Xbagb28cZ!8&^22VgLlOIUes|NBqDk;tuU13B35}^|^(w~zEs1-MO46k5 +zJLMtCREU1^Yn)Tbdx<q)`o3uF;MPF1UQ3p&ZfgL2!AZmhY7~+>qkQ@*R7O;xyBG3 +zFMv7GoPi!!c)WCz@!va)2THy_H(u|9FFE~mZafyOBc;=$1Hq-e@!M{yn=peLdCdjF +zYhyW>I3oSF>+1g^X5*Fos}G(b=7c?SQ69~WiX)g-xc`g30%PA~#5N{Ec4!RA8L(~5 +zwo)*LIGb%YzcwbTXxK@ko~bIiJvAa5wvb +zH;UF%!LN4FwN60qA5om-;wRax_~N=_l`Awg=e7)xms!T)gs-&KXt`z6hs +zQ{TyKWNk}u5yzo4SJeo=pCTo)4SoTrW=UDmLKCmce|%qOX8zqt773rp@gm(%lbn(S&q?fL_3F?6JaLL3F)$`B=E0$;peoV%6$KCg*mC{nb? +z01+y4?!tM}eV162;OS#GkCou{zhquKHge0lKNLA`a7%LW1lS})d#%82EhYlB8cT1_ +zkV2}oR)#SR2Q8JQ#1H!`P%`+44bc6&Bm>Fd?fSSELKWmyIxA6-M8?4{3aB5T}_i%6%EZjjcrUY@qa0KqdT#a?+JvoJhgU+>`G +zDn%}|y6{rb79hYiXlx^$zdOnzHOS%u5iP-B=`DQc<3Y*VT;?2D1i-GiWAyrHSUGn~ +zZlaS%i*_YeB0slk-a;SR-%9{gH@Q8yqNImDEQgyuale0w3E42_1}2#_kJ +zPPoFzCiTKK=_ADn6{8)EvKDZAip{MuSvokts!N;$Jt!bZxXU`6C!hi1upG+%lsKpA +zF#&w94PWdA*0~dlfHZCox!?fMd3(-@o9lu|@Em`6BH390aWw_)Uu4GzkvsOa4pUB) +zf|R5B8FG=bJ)E0c#VDDip%L&z^!j0>chHHbv&jT57}!tCV&51s2&2%NZzB}$TXl^r +z^7c|<&}ePLnK>CMdO{xOBnYnyDGl>~&1v0~F}jq&PQWKcQRwHH665j$gCJ5ZQNY~g +z%QWp>rZdKcnJC?(xp5;kDVkKw6~MxamEEO}@GJ{)Y0HDl&k0_u29g__LOjjpmzqiI +zMRE$;Lt=U%BjvBHIgp~vTrqh7D8iaJPF?`QFVt1Urf*@0z}ymeFRyN6wzlI3O2RXS +zPsQ>0S?p5E+=3n=ju^n9EBQm=l-Ss|m6gMeX9RdpxnZv~)7?fQ?vu<eb +z`np^kyDP(1bK`=NGB{X~2GLc38$Zsi$+hWab4KVIHS +zl`vil07f)(DLDk;^edH)o#*EFsX67&+!msPbfIknw-4koO4DKKsdC?Q2o#t0E~TVL +z?4)e2+t_V}_~QrkzCCjRdyh_3d@?zHz0w_{(Z%|ofWZg;1VcbJ1fztMitWiYd`l;W +zStJ)&>Ao#8pFpqsA`KjB*Fe9vn0*M<+`%ixYk%~?O4iT?8pQCe7UzT+KK+BfGK48U +zV#%rW2~iSK`8N=cCLe^s>LkFTLqWQeO8|t6lZ(=kB$N0EeilBcnQz&kd-t#8mn43P +zGN@hFS#b}3x%WMk8ZQ%7gR{1K?BgA$E?4M^N9!XSFDo0n*sYZxI~^97J%Q<6Hy1jL +ziMpDuoFxsewea^&g$An_Ortn?+e;v84wu|4Dm$kf!Ac}}n6%vnV|H`u$EH`V(XYn= +zJ(U#kfmeC91-@E&0hyGTk>EAyd^rzoVDh42B`;SuGm-!u(m+=*Y&au9Z$AU2H=ziE +z3~Wf%86^twjEe0+mpk#|m3+gxG>jbYO4DUuDSdW}z$l8vfJa^O7qf2jU0bS%)y*vU +zcQ4Y?2GBflbL(t6WDXJCU?AfT7U?$7#PIpGA2i-`>aNbTCv*e?kxpR@M&4#G_@Oet +zslaMHYbxeLD$xF%Q@o~zHU_JIlmPP9V`m$Kh51QIozk!j93q(Zd5d4$9#$ +zH7BXE5Cph^c=UQ@6w2Mn6NO8p7{oL0TzD#9;?#A}g=Jt`$>6A{6pmf)^brU1`Ke49 +z%FZ@MtC4(lNU_OqTTc6Nz?)#7g(04tqm55L|0yt3O-ffEu|0JdK=J&ruT!zb*t`c +zbQ>|-uXiB-7MQd+;U^P&icg*HBp~uqhO0Y(2rNI*^gx-)lEs~Wpc4l+ +zXnHfpj!^=IB_NMia}QXk8uF?<<4 +zIyu|2S%?kovoA(<)vK=joIWRaB +zcn{>FvE*{SCUCgM3*`hc#twOEg9&+2M01YTQriE-@J9qm^z5XXznHfw~8Wc=Y$U<8T!R5{o=c@7gNuiR)grwV~e +z^;7wi1teR*Ei3~-hHRd +z6>UK55@C>axhj^`IgEc6rE8xm@L)4-I$cMD(`b+u50h@%Zah0~34vM*9A9=S5?DwK +ztr%#0QyDEal;$019-x`N%)ij<#9+c4YVAx!^p+yuR?B%U+_uB8XxXNU<`>e<7sR%- +zG9C~aSGXEoQ#20AE~c;+oe9(@ieRWQT&k2%2m3P8=oBw{lueyH{3^4>WblAMLYowP +zRF`o8YS&8E%iI*>9~ObmSh0-H`b9Pw$A?g*sc4AUOPCXrIY@zhx{dV^k0oQVE?jgq +zSXm9uB_y=itC`haRsxdJ5vORmOBTf%+=NBlcYgGSE{32xCymG19b&=~3Z}1*oL@bo +zjeXyr#X0#{YhLc)Nh4_;F;SbW%shdtb5|IJZjh|dv(RCLbF43|1)`h1G#IlRrV=+){1bWLHr_xNK=qPx%9x-PTf5vjb?7Fo0|)EsiQ +z6Vx-N2Y+^~~lootKkE~>eGMVW(d)$`q$1(7FzwRwVZ39@pj7-ytarJWu4I>T(@y63 +z-MUYIuXEJAtBoar7Q*t>3RYS2s^2F`fJ@R167Jl#;V$vQP3HL(3yFf6*u5(}LJ!o+ +zUGKfQQW%sVZk1D}a^6^2$Pt=uDH0GvUrtSY!AYsBm_ucnvAkf? +zn<|G=_r)A4OOJQBc3BA>)>S=639+D=RP=NowN=<+WKqZtCdICC@7d`~$ +z3tCnZ@(+S>m1F=D6KL_N3c-yP4vOXTk4OHGn2(c>XOb>Cb6+2&IS;NrZk8vl_muZL +z-#6b6bgsUSCXlBOc7o9ld?O6=lcn^y!sZ +z^15gP$KeWhaND3rFBu{x$#=)nD9s#Zut|FqBW5EGAD<7<_D6DJRMd4mCPIMj3<^u@ +z@D}CjC=k3zXL{yIqpqxb5fd^;uYzS{U=LuW(sMF-dkfDdKeLTI1Tlk{b`9KlNQeD! +zK3cW1pIq!k)?YFA;RCUGTNYEwF*9g2XrGmZTi#1FS_zcG1KV#TxqtzLdlb(igY-3X +z*3jihr-vXkgPv2fsF{B7F&9W#33ldqzDM7;MU5use(rTM$}|D6ahf07Pp#KraLqIM +zdn*NGYPkjGaB4{)E2RD`$Cx0O<|SBl$Z;}=%mk1_3iURuQrlL5{W@(+Apz$mmL#bf +zl<$(o+R(!FMGsGk-)px-s`H`X0pqgWc`A$vV{SPLR%zsiBq&fnm=Pr`Ej9q5Ya+c; +zAy=744upp43d~~oH!CESrJy0*o_$_W(}i&E@2#FM^645J9=CtWtz??O}Z_ +zlWRdK{1I%o7sip|A?58q(>6NB=c@^;L+;*xU*mCPrWGT<5Hjs~vd}-U^2z-mp2)0o +zwWtMgwhCnhGBm@pt`(e-6E|ZWi}yNb$2?N##-Dsr-aYXQ!Vok<>_ig}V%@>eD~yAt +ziy;67fYH?fGiI**N9gq>ZWRa7$dFmXHz`IlXJKA$}{HrkN +zA@pwVg;kVsmPkDpWSF&C{#*;=ot!@~6e7vv4)uKH6UGlDefj +zSpWrsohoI+kp;s5nnZ +zJb(BjAs|F_X!^i~ggK?f06)(}US`Luy>uS(Ex^+%t;`sh<2ogakPTUI>mpEhE`##Q +zct_4sNx6fGwR3og2*Yw^nT`Wjt;QOh65hsFD4ncGsaTisEXM=~G$(gU0#@fBa8Ou* +zRwJf=`6zG6KW6^+wtOqGzvY83b087fhjjuZ_w3#iy92`MM}L$Vr7XwSRij66+F;`B +zJ^3_+>X;?!QCgsxVa-Inah?(Ub;mR@zvxR|TMlAL9*WbFcxj!F*N5VvNj@8A7$vYv +zmxUSI^~PZfx{Wf*x!`9wohlN)87~lVfL5D&@kg*8Vd!ySPvbYBme-Inw#lAq!NG4H +z)R}ZsvskgnllzFJf`X_5+*WnJ2%ZaA;(dU^8)O>=9MSnS~0>PRVZ2YW_fQ2Hq5iEje1nBp2DR8*LE|^lSaU%E)(=QjMN{cQgJsy +zkWGc|SKD53O^O2ow`vPU00@b5r$Gl+go;~cdO|;4I|R&yYTkT2XIw(Hz)scLx=(tC +zPR>xIQXOiVUv^Jyn>ikyFj5`^#WU;$jQ3IRk!5SQ9@meq^X&jW(k60X(i{&HRIj5r +zQmY0zq!6y~E|8FFG`teCbjbs9f2-+nOZongiT>PciH9~Yg(I-r3vv&E$(+q)8VbAmq?G8aJ +z8-^tvL+7h==qZ5)C|)e<*PClSo|Umb*K@|584s8>Uu#GyJ%V@3#%wjJI1 +zMYM6E4D{HPtIabJKB*#CWR$BuZE*K#a{&7dabaIcDZyBb!8}F% +zdi%%o#mdxL#WK9%8mWn(X@g3l1Zv8m&Zj073XSn;Tf(dXv>bt}HF2@BkV5VCiG8a- +z2569$K3kA}vx%U9;rE-y@&>810vD0BbB6*x{9bzr5?@FLwygzIls*YRM9M8(zG@17 +z-aTwz#Cq}4x>(d`Ehc_{d{Wrp(!l^JnHjD;<2L`rfTA?RuOlc^YaYBr#9IPNr4S*? +zorurZLiY&@dBiEx0%kRGw$8oDT<_9eA+_eDWsoGTlyaP4r1X9X8Gp&LZ-?=Txlq)S +z)l7w7hd$=HER&KpfV&oh6J-Q@M^b3}!*5=~Q1v>WCo +z2$PF7Zb@+uzA|ac9rzMFncprPe(hMUJ_k%G$i2+iv5hCNK3`zU2*QjAc3bNEj2hcd +zD6$o2Ipn-(g7bD9a!*6c(<&}Bq&B`7tVd+#8h3t^k8VzpjY02j0u^q{hv=?nmty?8 +zJa{VFlBBUE4e}8;W#xL^$VV +zjUx6h_9e(L<_e2~lH1q1Sd^jnN_et6|0GD&xK +znVIP895QKTqWJhg`f}w8Wm&;6K`nB*f+(sln71%1uU^OEUU6TjwCE%ha*zae9ktf+ +zru=L_VtJE|(C=pPa{?XsaznGU7nabVI&Vt(FAw@g_nvH9kHH;kujhq5Ynhs=?r+wA}Hvv%+SXz(eO_NWtMbWJ+$Y61PF4*OcMYU%1X_2 +z)%&if+^F^sJg7herUh^~&SNnB!s6L-??m`9x5n{x7DpERD}ZYQFv4(r0a~ljLF5Og +z^VJwE_hZ2@wyH#xQ>{>iuL_Ffos6zz5)Qqsw^*wKNv-OY0xdzf>XD2%`421sJ)>0FVm7#5TVC^AI6&N^{LA%DIHf-o5$ZJ)AK+U~Kf +zqsc|p!6Q_*Wj@ywzwkZaMEH-WXHr9p?=#Wjb7A$9s~=Qx_Iur+SSe=lt-UHeGC(ZP`Yea2qHoMof1J +z)gQSh36wkqw>dw9)~s>4`ebx&o5VxZ$eV|W5fq#&1Tigwx>u9_5%OyFR(5B568qP5 +zOpkNA;<=6_()rbb!yqL1B~&of%`0Jl>dCvQIZjFywd^S} +zfHZ9G9<#Uu7y?Ol?=v-VKp873uSECO^ve#3c9Bi&l#pt_S*R;e*jvNK7Y!RQ5p3YJ +zdAFJ3yE6N@g(@yhl}V)<6eRwNcd&&D@Qb%7y1jng+p1Uwx5a$eq>ze|M%}f|L}aUAGl!rfn%V3djrG +zzDQ7Pu0?I%_G01J-CN}B@GtjB$B5BQ7dy+1B{)-1Hz-D}Q}{XVBk8s37iW+%ydllsWqZ*??JQPw7SidOXIx7(?%{ER2sx0*3l#g)(lcVK$kamf< +zASB|>JGfif_dp$p1p%{pFbpWwcblUTA{rEk!Nas?ipm}gta&%Zpu^yBEwZlGL$pNFEuqhK@MiGN1}jjaA1K0U*OyBBt+QOH=fk3=g2>{q8 +z2pT@{DY^c=!swcKlo7>DzFj()F+h6~h(YqcAMLb7q`%LrLwHLUm;${fj=*HT_9n0| +zCP0cHW@3moa4tU3q+d6z&r^n88jnXYL8%ZvCq4i(j~#QhqlL_ra2?s__0(0^+!WElHsLG76I!Qbnm{NXy1_cyH>uM95bCZ92uZih@ +z`&GWI-5SX1%q=Ge!t;1ZhV5-&lWzr#LQPX~$N)a$tV+`ilYL$@j7&U)uiu-gLH(eF +z!F%YKjq4H(JQxDkAaJNf+)tYe;tcze8o}+s2uswL<{vuq*;koGJE*XDDv|=P+*IrA}IR_GZ(W&dOv5X +zSW*rThf(k=C^~^=%DHNVfOw;-FVwCB-%SdULy`gJ?Bva~NDC10Su<%{YlV^gj{P|t +zH(^kYQ5o8-AX%d6_(qK}Uy|ffk*$;{AA2=rh#)!jib@||50nV>=KUx!JMT!~aGz5C +za;}*H-p=fxq$KX@cB-8+vS5`Jq8M4JXZEs1WRGMz9wPjJofn4cw0g +z#v&m3B;ubf^+iBFt%n#`RLtt8`bt19yxWHM@kFSLw;EF$?eYv_!^v(kriFHBCT2n( +zJvgx5qg>#ygjF%UyJ+rpRR9W%J>y5H`+B{c +z4hBblN6^s`wn*)&#H8sBu;tx+7_soI*hQLbq{9zIcCj$P31qAEG$U34G2vUfPLOGi +z#xBtvYYd=m10Gn*@8ZFVD0xT1R4WJYF(9#^Fr7Co}Cu*I~ +zY?1ddsm3s~?!iLE0PHf$VBLc^*SIe{4v4W+D<;rxDB+v|auFgr%BBF`9&`G^q6$b_ +zUQ^k=qn^GJ?FHfqjXcgC$~Xzcq)kRfCC7&S{5c?$)=s$Z^mZB +zKW2)d&@Q~y?=%DmfHfKe5qQE~+?m)w*{9J@EQ43K`> +zx?IbPL#`->KB7$`<`4eU!Q(o|WH22OcxlbaCUZw7xY?MoGQK2Le?cXw^N#)+1L&97 +zUR>lBW1z7+KTU%x#H7mnB?91A#cvW1TnpwC8ur_MFV4e2_RBkK!JZSE2pL%n(m6%w +z^dG9L0L9dv@QP0UMma^og94-0*ajPY+H!fQkP)8l}OaN7Sma1eEc5q +zD{b;Uj3*{-L;`B54f~bPI!)33CUu45bY&%#YAu`ETsAbI%0!j7#d*FWteo>;TA>Za +z#xNnw$pnNpm?%HpdTi0~VHvO%tD|gFUoEbuAb5Sy~gv77N2Al}bSWC{keb3pT$j1&^ +z$W$%bLct3G3BnBu(n0G!$z{sd|LSbR1^wY{!(aS`v)!`&hqK-MugHm+ZzAH*+!uI&DplW`xj^1IVOoo?l))K;omyjW(xno*+&2IyR&`uKhAdP +zpUyTZ-`_ji05$*WY`6WRvwidLob4_2Y!cc3b++yPaJGf#=c)grv(1q3hqJ8@2K|rD +zb~4(hv%L%XkIr_P&R;s)Z~w*F{uTM}o$YxKtNf^cbhg!PKAr89-<|FBzjC(oKmO9$ +zR*3&sXM4B&Z_f7h%b(7+JM!<&Hp>r$M+JAPo0mc93Y+JXqfF7v-m9wp&1^-3{FAfIS@(ytO~Cp0 +z&Nk!eAI^5{KRDaO*0d-f0!jbX*;a`8duO{i*2-yBoOt)|oNev5U8DbTwhIBxe*Vqb +zR`&gCXFGk3$_AW^_&+(@1X_RZY^NdqduMwb(Y)*rXB$%o!TSI1Y;!LB=4?-8{;#vG +z{hPC$s`u}lZGFBrdV=2n2WQ)~_0!qz_zPzn1>yhVZ0o1};cPF%3>p7FI@__xfA4I^ +z*Zt;fd;aNc`^W#IvwiUw&UWPgI@?g%e>mIW>1kpAj-^!B!Fd!`bGP_}$rd?fH++_G9~} +zv%Ru{69O}8t*?w{;ji3W&NL>?aJSsZ3@QH>wj{#jk|w$win_5(%F{V`4?yV%gm>< +z4dwek&Nhs-CPF$UQz$|s&3s7menwMn|MYd&c%r-ucDPTQHH)14QeT1g)Cq(+HG1$W +z6cwsL3WxL%S`sMs}dNOK#2Zly9(llwU!ZktuU+kMELkUH~E793Z_B5N-7w-7_2e46KrkG1W +z>v5^0avXkxrg!Kw+uSI~abREO$L#&20t@gKc@7>=k3EOH%EM$C$M7^hzGF;@ja%1? +zI2@?%=LRa-#63$I0>#1=S$8Fk(*Ar&)Ra*LaOS-V4AM)9l40fy1tSMf8_n9Joe--Z +z3iqSiZD<=+`DQ+ewAo-m*PofKp0C<@oGrZc@c?4KId0_sJotd`TIHwsbGS>}TgFY# +z?ixmpnV}M2o!SYWXH`tbHM&qmjxUHmV4l29Vz!r-2;ZJ_fJS3NvHxatxzt$GoF+}i +zW1WdJ{alS9EIewj!E5V-=V-&(L2)$;E@&h35ck%6Balh;wAGL7S`QwFGN&62q*E6f +zte;tQLVsDqtdihSziM0&AJy@Lidfb2ngl0_%kt)4?I08mgS@!1Qx0IQPF$GZtVnyT +zc3M7)x4HQS;&z2&MQdtrPfbLK8>OX%7PJ2D=SiWFGDTJJ^e~rT6ek`ej2rW0L5%g- +z6(hXnv+$YgDGw(|ZBy!9Y=m%`MWJZ)>0L>k@O|Gb($buAm?B1zMNO+>HtQN5Z!y;i{erh`!KZIX?Wjg0xvwJR@nBQh +z*q3e +zF)$A^{H6I>QyT^Jdc*0~zz513cO$H;_-sSU+3MyFiPSY2{Ae|y +z7k^n@2jUcJ4`Ln~$~xeLy845?zj!jCF~qbjLvYDFI-^^FRzz=0laD<5&lIkrb*^d5nwtu1a!yY^d03e&D=zKccAQEd~SLiAS)b1K +z%Wuy1Izr|KTx|f5H35GsQ@^DQ`XI2t@6Pr?5yaM~vyEVi;PIQYjRGEr^66|V)DaSY +zI@@c~qfiu10M{_)NxwVWeV@)Y?ckrzw*Q!kax;(zs8Vplr?YMEz~n7;sS}s^KhAbA +z>8G>pzWC{EgT}-lt%Jse|L$zxy755?sv@i>JA%ete>&T}C={0kq%j@8Ioo&S@wswk6LC$<~s$QSY_TBJM2~ynT@6Psc+21+arVPJ3+tMP4-ea%W1&2akjEkVN +zbT?6cceV>)ps&D16Mu8Il_uje()EM=MSGG!w8X*Fk?hbBvRm>jBHjpWz4lrhdq&Eh(YcPR*qsfH2N9gqD_R7dXKYrgx0q5ib-MP4EzUfR+U4C0{DKt>4P +zbwVPONzf%jGBL3PiuJU+nJ=tJd~|v2eyu}_=-{7b)4ZqjX-b|P))$?V4w1f}g}O=7 +z&jUq3cdsICa%tk_bwtl+ZA$5xq+U_26Upk~_>3=|l-ge)VgTgs0S_C7%pHd#+jyUN +zsfxmf-jtLgQ7fjQL~P(9t;MCuE!B$4mST|vFXY4Ic|sC|vZoL;BF#U@{7@d9A9IE6*JHRYhrE^kb03iXsL|sF>4hjQN5To-s@A_5ps#yr^ +z_M5}GP#!qi+Kch>hU%I!2(>`mdUZ3a|bH+kmKN&(wTP +z;90ZAYBIP@Zm^s5h+5-)*^jQWO3p!T$oQ~_L&%Z+&^FM8%0y(~aD-rrLhzrE1Qkxr +z`$i=OxO#CLp{{bmObv;ElqM!8T{L_RhKOBMFc;{r2__h4+SvUlKxUI@X4cK975)G5 +zb`Q>BcJ0EqW4p1_IE`(yjcu#3?KEy|yK&OkXl&cI?R;r_8_%=%o_D_g;hMG1nQNWL +zZ)cfL3HD={mO->at-$wsxne(pndli)z>d2M)H*$vFt}YJ`3y=QMsK9AJ+1>9 +z6gfzOP+^_kEaz74`epJLQSvdm`};ea0w7O)q4|1g=|0VWx6KsDl0Lg{RR_cBOiD$i +z?~Mg%In+ +zKi<6usqp6rM@0!P|kh9r;^v5@emQRP3*W +zAa&JmaMg79rFtSWZMbzuuBX31o9b;m-q&gh`%K09cCyA2qPLW$ZoWy4C4}LC?y@F6 +zLs@b1mqM=v;Wh;4_Zor-_;f#|Lv3>YnPQL;^cx8dF%%K6Q4k2y`Xk37^lbh^glQu3 +zJHYPDti=$%uP+Yj0iRwna{J!rZ6bG$iq}K;9j?*=dIGDA6Ev66lDQvq8;VUvjtKd0 +zal<-KltBTGg>7QgKR|U95WoH>1j$fCa@vVmhTt>14l3Fqh^}3-fyolgvrK@js+orF +z3jOTG^qHzxQNK(mTxwh2kjv7FcW;bwcYGG7%bWSiY%ci`%=#Id60paZ0zj6c66`H% +z56a%2(p*5Bg*TfI%C|Ey25+bk+3tj9ObXG#dK^JeI9KSaDYKToK6KIKQ|VA7n +z?-eI@@1hecoy(|W0j=@2KPnP}i|R2PZmsY|zx!0Czix$)Yc@g9vN#YNY9kSk2wPOF +z(u-i^2-h(bQ1^T|v(@1 +zvXxGetn)+*B-{wAXO?H#^5Ic|_feTR9-_I#-Qs)-NC2d9ZrE#&a%1Od$3%bLR;v9X +zpCF)u&qs|27bfEjtk}RVU!UKSa5Q~2648?%1TKY*`-crchsukB&tomr_i_fZ3+F(9EF~yo` +z1OUM7m=akm<<>c*+&g6Z`8}PUKzkxcsd=1YZj)}J5)jgl-Bm}Bqlh>h(0WFX4;Ot@ +zU{bMtt9JD6-M#>+=Rp|L?=47%BlM66!koH&mzB;iN%+~$mv2Xht`ejvsx*aKdX5nD +zY0I|W;NxVv^GXN%I;2m^uzfgU6q7^R_7(ROghJHh~)5!P` +z$XPfD&zD9!?ue}8N_f{7*7g?w+1oP?FE$~Uw75+j#x +z5X0q*TvRe;e(D@pj=f-+SHH>IEqQy9p0J6A(X#GW$TC5!TESQd@bY;U5Gg{sp{Sz% +zC7~#|@-=gFIi?o_5D5Iuwt6PCA>@cyGH*rW25a!4c(sgLu=Wi7LzZEM@2a-HoL|c} +zQz4hFa2C(@!Dk3R@E!nMrT3M=1@WQ_>pW30Nrk)hwKBqi_!Y_`4AB*$Hg|^~4BLFW(>WCxYYjkc2r|_acRvRq;w54&s*1 +z#X;1)y(L_Ph&)}Y4i{Z&&C?5(6EiihoHynm$pVHkj>qaSfQOxi7|`{o;rZ7!owmDVfRibMos7JQ#n=nuq}8<3l1SpkRdW{?x7e# +z6?@@@jvj`fr@pBgb!X@)12Dx9i?`n_2VN_bSFPzx*avVbIl!z<+k!effSBfs8Pm^g_)B>atp~*yH(CwJPc061jiSZ4e&X0Er8~bj}lIg +zP42U`yM2V0tQV%&>zpi!EcV3*ck{Hp((F*y1D}7B(c`PnX`9vtaf5v=A%er0j-gK6 +zpAu{`+BYr7q=78TWDkC-^vIyLYDTRGV_}&4@reZM{-Po8!J7{EEEwaXzL^9>5Q0|{ +zNMBlw2X>qnxFv_kGcy|r0Q85j(=6>0b=i9J-mfH4WbD4?_p|^ezK_!vf;G$vQye=A +zNPGuysh +z+7Qno5*V-(`<+EneV7T`NgYISR*>~dU&|^4UJ!8m#;opR>3Gfw)?E- +zz)|F1p>0+a3Y_1dZNIfwXdCU@E3_T=3T+1fCw_;v5lmR|#D0OctF!(LZBIsjhql?& +zgYo|gZEtuIZe_Oo4sF|`$%5$*{by*~#(G%$pP+5sdrUcn-=Xc^@YBb?L)+8M01Z-o +zJ##ODMc<)qBHJI(HqrXLK@>1V{BO|qXIBu(XjTmdjPX}!`{3`;HZoP_m;V#AEn4#z +zXxn~p`YJBd_Xo7iO7{wF!eQ@;umP!i8&U$&eXi(m7QAKgnNay$!2$f`v(6EZ8NQMNM`>7wEd-z +zEq3mAXj@G171~bt4sF}~4sENwLfcVO{|0RfFPXa27{9jgXd7<*AE9me@6h&} +z{A|?SKS0~8&p)BuRdG%%?=>qZ_qaK^FKk`-ru3^55GX$gGD;?{|IfbH;A+T1=`M0dWE*7 +ze}T3MQ~n9s&gXHZo%l1ft?}QX?HH-=&~}*tJPrpFh{un=@?ZBEHHoaG9o1f}8XnXh-+8%j@ +zwugWWWbmV9N#_3yZIAziwsWa|hqmQL{{n5Zd(%wjti*tM{)D!3ZVP~(euK7Af&T_= +z+y4pLM*2cB^9!^c%>5JEKKv`Ro%$2nj{G~codmxL_X=&twEYTgTbqA}w%-ypj-CB) +zpzV~uL)#L6g|>}D`6@8lX8!IQ||l6r~U!d*#pV0Q+^S?mbr@uklVt<0RqyGwRvtIoUZS(8>3T^NIGqm0KE3~Z=`6p;w +z>i-OF7tj0#ZCA$qgtpiJ1=?0v_Fv5Z0c}%`{{n3nZvPH#PyHF%77PCYZAVr99omlZ +z{|Rl&bsc6n{uSC5{~g-ar~VFY=lwgh?eYq3XB_34N5xX#njMKkC+b6$4+ouyhpl#&v)c0kt&^BW~n6c{L +zp=}Ak_#P<9W%~$)Q@oc(>nnYmbrN@{ABSa-UIgHbK9Ojk9Zxv~5Pk@xaI=NUH7h|v&v +zwYWCGMZHs0bh;HCKr_>dincI#x1#rTA6d-UP1&zHOs$FRv&;!rZ-NMmhri1CdRCun +z={srqgaB)qwhJ1YOtY}-i~|Q_MvzYrNY9dF8xKVY%^puUcZm8_zVN1kP}oU$q0T^n +z7ec41QcB^|b6JDNCSEUlWLVT!)n7M40@UuywG~xq?_Re(BNE?a5Rhg+5}{)lG+wsu +z=LM!#>?y~Fz00CjQQQe)nXi9KoZ$bul2q}C1q$lZ(})!%1&d+1#1I`avZIciGlQez +z*mZgdT3Cxg08+np$@OAx#l1ig_oRVHg=9YTWF18(v|p_Z83VVWtkz +zEltO9MqIrSL;L9&ak~lA@Hjnw?%CcFZ#s4F=*s=^*77NOgYINq%JXi;gI)L#17^)h +zgkd6_VQ*og{C?o&IeacMAgN(zLYaKa1E$%b?C8E`&ceRjA-?Hlrny|HBrXr<4k*1S +zG4tVGjpv~CgP>!6a(aX64R;#arkC|oNDdp%)!yV@Kuc13CM?@Sj;qaE2t1o+jh@GO +zyp^Nyvw$#yLHmn=2YYFUMcTDW)s#HHY4hH;hWP~i^iW6liKz5WnukNGMYAbNX4mOt +zjRj-c&O40dgwXgKyfN9mFqZYNzL?o+L|2++K)8i3M3T^c}f< +z@XC#eYd=p{c4ev_A7nIN+k36MlA(*T)WE27x5Y_De+xpU)a6yCyP~$-|*>kO*Tf)zlv0vq)0IVkRw|`E&dhb9l%fJS2Y)+~9VK&oR +zvG#pIRrR}^ULxtoJE|uA1Jz#RP#inPSp-j*0|RvMXSJqxbPhB^oMIqZNn*b1nYRlr +z;Spc4Nm_iL7LGILv3Y2E*KFGsnyCdWagTtz9yqBU(HY|l`lyqXl2E{_Slsi9p^oiS +zF>lQj!B24m5G#o! +zNocq~AN#e#esCmn|Dc;Aw5_X$90jB0CtSR{Yw)>fm|g{myXc4A4@IlIisMw8~f_EFW^=1L}o +z17l189!GY0KsKM7&Bb_@*O)+PoR^MRyms-H|KNm)pn!_Iul}*mO+0hv(y+K_LtQq +znOr2|NTF2ugbWk%Yy@N^!&YDtK7)f&7KHNXwdXN(*j|jVZSd>Owvr|ID#`xzj_YSz +z+ow)ZZ<8i5X6zY2LbHAIGc-}L9m71;y4>RD)Re_DSM$E%%ZiT5%$s$VMTA681Q?NC +ztbIQ$$alATZtSZ-S2;Suo9eF571hkQ^jRO()xu|&v+XM!07!4xEYPMQA@E?V^j}<; +zXq0G~RU9OvDZvkrDcE0wc38+8PwX9|1A1~Zc@^DWVV}Qb2CqF}exk3&(tCQ_HUD@f +zq6X>tQgaO7S^2oeBwjsxHiqNQzP-v7Zv*OF-H`xIHtWbBRL6-~aqYKo}P|l(vuCk +z(5Y)DtS69fdv2PJ0%w}m6?u{!Cy +zw;omsx7>7{Mvoj>#G^Bh_&iNr4OHYGoh{HDDz#Wz+whE>G?XOSt?+OkF7=LIrhCQ~ +zfGSti++NT;T*G788vz=gdxSOAc%H{U+k%~~b8$Mwg52d9BJuVG1<)j+J3+om-Ln1zT8`izpMa=uc_gp*%o(wh99Gz0( +zR{e;?S^6P@!5a_t^JUL@h%j9-;-l%k$@(@0@bKEs(<$4VXR?$1Ny9s%I?EGbvXdtF +zYoxv`Fy@%rht7c&4IoB{CWbE +zgSl7HoYp{riEh7XUh{rJkGGz^Q){E)IfW0xJk4S{M00P}4Xoc29^izS?}AS;&^fob +z5~w0Pj%Z#N0mNBY*V@4ETQJ9Ehf&*&72EfPFFT7?E_H44ysKak=iPOxZ+o%8wTrC{ +zJB08(`(V*jxpTGgxC42({%|f;<578eG?JR&*NKmaW_$1w~FhNR&OWdVFJDhKP0-s0-lg8Fyfu_HL2 +z;&Z6LTWo}xmhvLIBz&P$CxxoFMU(Bkp$u1=bhlYKK**XO((MvWE$;yCcW5x>u= +zu)+-OY7kn-A?4e;MaIC>J$_b1HTG-12vc;+Gw1$tfq{keVs(~xftMpg|a7N21a>)R| +zVT_-+^_v2>DyP)!Gu1>@EJ%2p&PB?nx%I#;1oMKUANv>vnB2JouP0ETZH9fOdu(E{ +z4h1TDK2jAhm*w$GwhMmcF5g>Kst`fya_u;DvammgjB**S7*{zqnDWNB5_qPB;=FAIiDk`6dIF6A&^n>xvu#tUh?C1t$Cd+$>DNWIJ(o!=BPQ?j|(g}Q-#*?iYGxH$YS+-~GEsbbi8g#1%-kUNCJQV<-G+?2V +z^US0h%-Br0X#d5Bwm8sK#Ajys^!Tj+PnvoLlil``raQjtMcUL7mr<*rfp};>kpZ`i +z+md3GBwu=-e1K8vp?X^vNc{TL)fO47bYkW+;K7Z1*qy6r&@`wpodN9%WOR9$vx_Vz +zuur7xgkmt>ScjD1EX*<@ZmzYkwIM$59AzUmn#LP|*e0zX$0%O{l>_y+ +zp&p4iK~Vv=#9u2k!{@-Jrlw6tsXCb4S`U)}2ZbjMhu~;9j5YZ{2$-q$;u=82w$!&d +z^SO<-s^ZIY#XS{5R#sso8H0j+SM`ny71=^FBl2nJ(VbiyXx*>^g$AzDA*f$N$k^tWk{Kr?WFZ9I&; +zJa&}5>#mYFQH7gbOuTn=8f6kur|6xT6`_+Q(Yx`j2KdUXAYT;MQ)X4=ti;WZ>R4y< +zIWu+>DqXHPnKRL^-&W~@^^{DMtr04?L*l++bln4pY$zyoSYa&{#clvfZwd&IH(hV7jW-IIBJ>(p5zYdaSBcc0+$J!9Xp6{ +z(H$|L;%o46!)nIT!*2EU9Y*7Pm>EuEqi*<)DFoWlo&Q*Fw>~-eB=5mm3_))?_%odI +zK{y@{F@s-R2z#3@iv8QjT_n0D;RSD!3r>#%KyK!VmSvV*>QhhTQ#WvmeDFyLq^#3< +zZ?z-_;&^ik_r}i5gJ}mF|JicP*h|D<`gfp3Bciiio0dqKeH~b5Vbv3$%C#Z`-!u?R +z*O?=jlr3c(%yeLg)1pR)bJ*&DW2p1m1kRj%*q{VAF4zp;_;8oHCZFhPU> +zpkkdLBq1_2nfv#q56(R&m*2qU?g^rDHG~ni3rT%_fGBk*2nxWyPMcIu@)|bJglfvu +zUkk!6x3EF7GwCuB%1F=(8fxa4pWl#I`2q?tl4XVOZ&(JM7zfLcZI7-VHvtBSF^FIU +z{gzFz;BLO`+&lHfZM7NnJB&d8nd{rb| +z`s;IB6bgB;e)zn^uQkxlkiL}`Z17x~Vg>uQ%48Aw;C9G&1M6w~I!mSb9lLotH$|Oq +z80*RutKZ +zP4yQrrtWPu7M{!0Yw{evXxPKgxLsRkbfzTjG#>->-;BkrGFtLa@On-^Y#oG)Ctig2 +zwFU4IJL#5hP9)g}Z=wPSAR5(d(Sbf_08KA+q2NJDNNhnTy|XDLC&Kl=;rW)LJKqG- +ze7_UME7SA9kr>n}16eEpUk;aD?%~O&9tMV-zoT}hvwnFI%g$ZnCc%Nd>P1cViE018{3zH8$N~+|3F&c!0B(=d=b5718=zfsKy0 +zun_9f79*ZO(MZMv@^1#GF`V(p%pSue1}jPWhVnOiaz4DA_%MUTVBfpkuw;1fyy5mjl-=JZHYa*nD@^7O1WH +z!NIr2Cv%{z(k+i0eKGj07&^_q@O>>Ydv9UXHz$Ciy$k17Q(Bdnzy>@XnpBX{Mk0g} +z?Tu{pSsw8^kWv6y^l3#O6kqv$I)^BwjH3erHnxP@WG0fCyu!K8^mP#n6R#K(#;@uu +zE=yuOCh-UCKK60f0?%pnre@_cfb5IY1D|xgdmBqnaH;63II86g4~-OIHu;}N^C|5h$HWK}K5 +zQ*(C9^s>d5p?Mpm=O4VDgbG3%?lsbbM@Ym;t-8q@WOL}fZJN54l)8bkGX+3c*&MX7 +z$WBslbl|AJ$}*Vhlcd+N7-fJF9)<)j&^mwaxy&FjbN9`pZY+s2Rx|HQBW40hK_l1J +zIZl-3?rb8WDy8OlB5g=W|dPxH|;MjJfD{Lpxc^h#obOc3Xv+@OezV$2Ql5;P}%~xRh +z8wu`c_uEG)Jv3_9ojML(-y@ogjDZLYHoFl0`~GgVM`UJ_cFZ!=O732WksM%ga$VZ@ +zXAZ+9S;EmbdWQpRGU%|+cc{LCd<>$C*$UkFpvefWE|4$62rGoXxN2{)T@c!xi^I}z +z251i=L#yI-2@pxJPS!8;3Xgl&H7#Jm1n{_tU_1!ZG~xl_Cvh<`BMTEyD@nnP +z`EZs&))^`>hY8#`^6T-&`~oXX0FfEYV{nKF!WB8YA&$N>o3Z&tCzu2H0}MusNMMqV +z@Kbq^qxeMOC2hLn5>qoCg@|9*H6rs7Y^VYO} +z_J;vU=rkQ;6)+BDm6klU2!T3*{g41NAi{=scFRooL}hC)K_t19RYO!q&DTw@_B8{Qq!UmBsVE+KPJ5*f+T$1779xN#?{IyBNHsuH_rTdLM4hM)sF3NZ +z$2ocQ#75^+k{oE%T~cdOdYm?c=n4Sv*SQ!Mg*fBY6ExXJr|eZAx;x4h=#K@!h02Og +zpk?~5tfYRQrr9^+K3bM)jKGyb@9D@8g}(u2xjo$iYVXDAJX)q3!PZxh+3kww|4LYf +z10@7$@Kvr7dZ>qe*a*PV4HVv5J^KhsMF0(uaq7&pl-~(1jje1hHkQF*aXoSk>1p~9 +zBN3LZ(*AS|WQY~tUf-Hx6h_j)JE(V^W)#KiAw=HH?gra}QQ(brJyWtO7 +zCca;DaWHqL6(t{cxRa5&gZZkfqz5eLA|{e799RU1kqvJ+UsDiPni>2Nu{<($?eUSE +z&*aeHLx@-SJgiFJ22jzM%7*~eiHdJScm1_sF;!K)7Jx~q4oTH-bfMJo(1{iEG--t` +zi;m|^89#v(bcd(g*6xU2@05AQfXV|mYQ0Er&c2P8v2JvzA#DR|z#(L$DR&r4?4Z5u +z0~^_9%scpe$1i@|mP{x)*tSS(GK)^6orF4k>8Khy;rQjuhS+o0pnFv58MxpOVzK1` +z`s5BFv)$2ts`APM<%XO)s2ana^PQMF*x8u%6+CSE1)+unrgxV5gIm^mK +zBzu-~P_0t7D+jg_(+aeHVHm~Z#?RM{9~kC*GP+x)d1H~a4wWEtqCdrJ?;R_uN!^9@ +zGx&yZYmnPh|7LVJK%~9rM%%Sc_Dh|%<-@y#HHRz +zFc=Y#G;CtUY7@ZRg;g)U--HSq9rU=m0i?8IjTOic=4EqeZr0Iji89&@##4;8XW&)~ +zp!Ve@#dr;Z+6?KC@XB+qdP^(NjWC`+4*9JU^(lp=Tr=PSgQXN+4ZDBeRmC<=1oHS9 +z9ZxUJ-9Rq0rh6DXXNQb<=jXNCyC<}a)pQtsd3)F1%I7wNEX{KA6j>a48{5&b=E3u@ +zCx;}csf6Cla40DlvInW$s$|ZT+@qzYRH`6;6u+YrL;E(8n8eqny80)$gT;j6C4&SW +z1hGpZO|4Qxks5u2Z8@l|`)or6A4YPdp<&Vun6HqaeAN>uK8EfNEG)5S +zl;O&BkJFH^c#V48hnZ-?9ykQ>uY;TwAnBN*gh(@2X;#nVFjW*nr|qYUxAyVfoXMU} +zBY{comZR(S+AhX1NKCY)jbB3#s3XsBX5V0mr!X?AwzFQ_MCKcE^ZZU;gb?Iv}ASo_oKq-3}OeHnke6P&+U*>SGgxC +zqASzwR!w~IAblOVo3o`wOT&4ndidI52n->X0uh!?AF-&-dIFO)@N`4K5SroW)8{I4 +zv=Fk^%hNdEujcSg0UOF1Go2|w+*qk*15H&o!>1xg(YtohiDPgi^nw7MoKc-s$ru00?nU@)U$UdG@2Q!D!tJ5 +zJR|Ny@`;QM)dzx17j`Fi02gcBie=H6du$V(H+?GJv8#z0M7w_2*M^|P`1pe^)st9o +zZ+7VMz^hU)nz)D!uHDDni}6&wYjQg{*@ej<*&`+#nlj|ws-ayHF44hdVoqS}oUAVc +z{ekS*^OKB}>Iph#1-6J)-b~lVzMqwMHow;7T(xPWdj!SW4)M@3NG975UOUq7wSH&JOD05fA +zJg2XixWoc`(mix5ERiMX$m9C~6n{H7tU~+g_Bk72KzPm?Ne*n;kwujK8e;u{V8FHHDLsY8Ua +zUOq@(4%7PO-_FG}h@Ll +zY8m4nns&t$$kKpp@vEjC`cu>9gEgMdXty@0+5@3Tu6Wh7^?uQ`y-(}aUx#Pr@0zxJ +zF$9xIiXwEuskQI$PffcQvL4pzcTF2}$C>d+xDM_s%G;d&; +zeg^P}S{M(5dZiyBZwXaDP*_+u5OIV%5E>Pr`iz*glIMbRI+f8lkna)(-V|%()VPWEEq3-oLX^T1if=b;#;XNxh{hNA}3rtb);*yhb3%-SFdp-`#_^k9IydT +zMB!%~MV0h0xtp~KIo#L)?g1d$naOCxkdSDMd`+Y%8w_?{SCD*0O#M2=O}DW#t9U^9 +zhb7@Zn#8^#Kxts$HMH^rS{&S?yja&IBDRPeErl{&3Mwz|;SB>w<>f%Q6JeLKA;exa +zv&jSju`32&7!trLWkI`f6d`&41=P^Ek=cDLEQ$=LTR6E0RY03^(K_)iQdVn{2w}VD +ztI3OikDbDE|CM0ybR_qT>73`&jrp#HVlQ~naa09nNOKS5e*Aad~AX$ppBUv +zYOCQJF4+g>%;J9eC#DA3Vm^k>>FR3yoy)<6LU12yT?pvzz=gtRLDz$Yry_Yfb*=j2x)&6RH +z3C?RB@TIr!P>=^wa|t!USiJ|a)WCy3o`T1UT0HSx`|jb@cZg6jkPX9Lka`~>RJtrI +z1K7e(<VvhO{dU9ip))(66&}Bpa-%6UJ;=YL3UM +zbM(d=JIEFsex;vc>MF0_~aEnpR=wHU2eIH +zJ#YQr^)zRE@d}PoIMk`qh2t~}2D_GU@X2lKU6I0R|_tfvB1L^PMo-XVF#%yIBvtOajJgD&6qWW@9j|5A&p`& +z$)Ao(|4H~T>KcO~8KoOa94ci;lep00njLU1O0+`AcSfd-QNJZj9n_zcrHyj_0D +zw&iM9O&OnWFeyF8(w^hbgozsStw)85Iui%VgTRy`K1n0Prlx>QIq1AE|F0n=_ +z7dhp7hq#|n8rv)w6D)*=Qj5ucIZ`L@H;I-+MpHCUot{L%R@tKW!x_QE5aV!5W^WhX +zJOe3uvhtRNOn(m3}QkjpwNqvc-!Kz +z5|;Hz$CDojqr$@4AxW{;2FnsUPk7GAcUnWzeRje<-Bps4PnU8y){pQ4!?h#&=e! +zBvR=!BPAI!s~MQs#3ls#sY%#Ui$*1UBgPd+OuiYe!qosR)%)3AR#r}Q^dSl7^U5z= +zYCH){%;`iYJlVdW2u#6 +z+vGT*P8BkH2ZS^5X*0&l(ZUBOv&i3^Td5B0dhB=+l8et@>7FnNk +zd9DkJTQdAB?FY(?zUriGZ_rtf0=~1&l%qHGGZRezRkYg}dFhaS{7cs^PaS2aRLXGK +zgK+~Ql`WweW``}cu*LCc;xdk$7ZI$Jq$~RT##<8Va4}*=Y6PyB_OTgQy@Y(|+WG|$ +z=4=Pn!ol_Tuq&v3Rsb2+*&=n?b;`pI!vte~Hvkfu!@!-2<5mq0bfK7#F6TA6Abt6s +z7#Fm?-CF?f#Gd8bI8BB@Zq3qtHa`a%Cd^^V)8iTi^Hl@Ao$)RA^>J76klTbh@0(RF +z9FW^AVI$Kb;Si|S2c$Jg)U_a_>}C*R6CACMWK!${`Da`^wvjM)Quhsk9fgeZlE`&bX`lvw_dz~vY*_{e +z3<16JR_E2^6t?vI9F?T&s_?wGl%KX0`-{?n8S@|Cvz{@B3S%Nek7>+rNx-?4=#B0xo&1MA_ybgsvPz{19f`+$Np-E{gyMwMG>rjb2;_!M^ +zE&)azkW0m7UZo94UCzQ<2K7HMLd_9Cq5kM{WiP$ZpI0pRA{vZbA;$0_Ozq~<+2BD +zbEsWsgtLYL09#B6erCj?9$4QzyO087wpGRIU<$URP +zn$fKYfB4`dg-+c>Z>FLhF|BA1H`LOEFtXWFp^x3I?rwsl>k69G!&^03fMLntZ6n_U +zmMp6UkEN+!i@W(GYY0hZVQdZ{;h=FeiyIbAmJLlzj70d&ca4?nZlpqQDA4=xxSn}f +zj95UuB0*71UYz!zkbdPJ%^3zzFzZ~j`xKqOq6sffmE+S+p@~zVS0fp3jw_BS;|?Y3 +zS(|%XYI|VW;XM@=Pt6F?znS~z_t@x +z64JdPvsT7zV7O4cLZcS=&^g!Lac(DIGGH9kKl0Y-g*!DXP-w^c@F4=%TIYLILoe9-Z<==R!>6B` +z_Q=*hXxfo$KQ(QlziZm>FA{EINP*~o(X>BpMxreIs%gvrQPaM&=av0M(@vU_ad!Ui +zn)db&O*Bs)2Y11eD(6q;2HSMrJYT6MsKQ!&IS4}&@e{SVl!gozO|I2^Z +zv?rH-)3ot_)wBt^{;Q@fq4Nh#8_D3$ns(;O4^5l#zi8T46YT6nR0~U)S8}onAw2_{2RDaX75dldXe$lksJpNhJwplDx1^@E)KWW;lGJn*x +z#o+&4(`G~L&Hbrq`>9(Q{m(V+y@~IdHf_T1nl{UKOGy8nfyJznoo +z)K>Tpn)W2v|3uTqkNBx+N5DAg{x3D{Q@B5B+UF(THEqRTHEq?%KWo~#f7i6%yZo+c +zn<)LzwBI`=i3R*c)Bei)Q`3%7{8iJQ!2h3W+MC(`P19!3`c>1GF8^KA-X!`LO}ltf +zH`wksO^(si~QJrr!4_tS_r-t?Rsw^JDh+S66U;PM_xA +zns(W{`#+ktjD}>UeUIVMU=Yt{b0YT9K!e`(rsy8lhn&TzZJRR3?9c7XhUXxeQ5 +zXxa>T|5MY({#(=D_xoQp?FQC=Y1*4||5MZEvH7=}_F&L|YTBbq|6bFMFaJL^ZGnHM +zX(P)0PfdHY{IhXD-R5DU5u;sarBQGp1Rh)9p +z(+|BcKvZyjcg48Y2E|pJdw)-0tso9lwuX!2pTNUFpRZX@fKHp!COS#6)Y~|rt>*zq +zE*47O1bdzQbO@&SijzOkN(4ksZ71!crmDJvB?{A)k^9eMAMnBeE$1hM#F3q?3}MAs +z7EnvGiAe#nb;cgmO;>++NS6*8fbuLMNvk|Nu8c6m`DX-EQ +zVc;bSMh>e%lq8#}?KAQxkFN%hRteej_fDXCFa(uqfMqBq<* +z+^rR?s&gD9DuS@GJ2bTJp-2CvX(P#%qzBFXWa2gX*0lGX=%dr6_5aqi7x-1bHSH^4 +zoMx5tm@}?2fx?II^XZaE{y+V5Bg;GrklcT1+Ho?tMBkb=IMZL6b^zEVBC2@GUz#?y +z44pIy1}u!mx-jwZ@o<`su&W%eAJI<-V-nML#(~ZYJ-RKosd+m)p1(BhtZz+w?l$IU +zdCzSW(|7qDXq3Z~#QC?T?ftRad+2l8wxBxZ@&m2Na#?A_^oLJ0)A`S0^u}} +zHx_?s+8OJx!BP)yM!Li;^5mHQ<54_tgIdkGCFVu`5VVkeYZ@#6(zHJ{^mpPPpyH7J +z(zG${6U^)0gE8JlG>qdK!no>=6AYVtNq*_1RKafqUKSjDYueWm|DkCQsrr?;!DoMW +zrJq7t8B8UiLC=rGzU`H$@p_y&q8IRt_n!XT04FW}OVh^QEXHNK +zQAaHPN7EM0`_{Bg;8g~=efLz&XaCl;eZDpA9^FYTY<;I)z`rzYKN`5wRfr<-7V~5! +zP`#))Q8J%rzp^4X+rKq!NTs2T0-T5Dzcg(^ihnfi)o0gV-I)76$l`dxvW8rOTc6#tb$#H7NMOIc^Vc>$Di +zxzdbn<0$b{Qs;EB3V9Y#Y7&s*Dt?umWsH!Zs);O2`TCn>sfuvc%BNWJJo3~*)Tu~bRK$O#zJXBJmDCNk#w0N+i}kRxr@5eibXpN +zlu#e0o&*HSw&e=Z4B{+AW#xU%a=yTP&B<0KJ3`~L>YXX +z4q;K5u6WORoDU$i$p%;pI|?MMK;nPIY&OIaHu0FMX=?RaF05x&h_To`C`&wqNX&t% +zVmze!0(fV}1z;;C*Z{;XExXzP67AYx@z5oe{?t5?tqO@#4PGtYvSI{>$Q|2^dZ{6F +zAWAg!EE5Jcb~Ii#6@wq>H5@+ves(n!7E3Cj4=Z9tg9r`owfE9R1i-MPH&}|k#{6g% +zDx?E_GIxKUVG`y~Nip~gCBzU48ejxm%A6r5*^t}y3C;$?ZjPkO0O4Nv({-r{z_>i- +zqg7mSy5t^H#Af8@sBX7@tAQ_F{ +zth1No5=h1peSpmMqsS&FAzO^rZq_;^VYx{+Ph;gTdx*_f9XT&5>iV +z@P{?a5cqSm-C?nwmc~SoNF;Mg2G<%!JumDQRN}KTQ0;i31MKDysU1Bk0C3~7K+&H{ +zoM@*~RdpzAJN%^5I^SXvohXiMIWRAEOOHVXk&tGwts4!il~=B;U(2O*5!VK-N#UhcKHoF+~V!O7!rN(%Vyn4HUUcFqTs`rjv +ztf_0r_ynJ>bCb{dscjSKZng*x$t>Bx)FS+4_;wnjl;EGv1fp0Rq}$f`q-+IGC}8SS8)W2=bJ_@_qY5!#qxLFWM0O)|E&%8OZR;4v)@EZoJ6vYY(`lZBl_V*zPX +zG8Yyl+*5+lhrvZzF`wCsccrh-Vq%fGJqBl3Th3VVWtueqhvCk^0Q5Xg(#=-DhQX$U +z#h9I|4ukcL1h5C8^xF&P1wuhJ^rv%YM1~KtXAgnGenb^39`%T~qKiS;sY)=DnRSza +zA3;M%klmSUrjPpoOT(ycAsese0O!4G6i@}~2P#plAgGMON;rIey*Z=l#(qmtT|w6F +zK(O)4m5C6Ief~H%AN&mRt3#!HnCKmo-+6W`H34F2!PCjF|1S*ptr={E`U-JlkR%59 +z?7-g)H?Gh0LKEQX-wgLE(1J>&)?k&nYJA?Du!E2&*dv2mgHj5fK~Y^Ne**DRh0J<7 +z5PL`4;~*jUs6KtM5^ImE2Z1~y84HWd;|a3%rQx8MX~A7ckm4dScSt>Z@J|0x{ij8{ +zS30{4EzftSRgHBcu1K3HYY_WY*T*yyF3bA#eyJ}NxeSb +z#qA_>X!q}X-12?I+@->30WR|%e;wvC42TTF_qGp>NHTY;QA1qDeVJWgxB>aq_=zh_ +zi-^LyobVQcv#t<#{K9$rn9f6w-|oE-YdS{MuC<5IbI1eRlY)V1A^C5(&c@38E>a9B +z(hHkd5rX+}x`J^1M)fN|HBPS@G;ZA4Zyyh;5BdP||_Y +z_WX*l2S#g0AWQ3Jr6sr^n>&@(v+{g)r}5BUqqBHrOj1efBg=xvtQO$hWPD4hSBrQA +z_PM0vl_i$e1$z;bW)QfMLxyPn&{ +zdPMq50E`;o;HWBQqOe2`mG}yqI4gS +z99{q(U&3}>4NOeb9EGg=9bvs?FBn0w8r*V^vf1QI!pBJqW6}}DS-BaRp-0f^vV7aK +zl9?)4QpSeidJtQ=3DQohkU~UlVWiVnbRD$#bEk%$R>soGeR5ADY&tkFwwCY{qxpI{ +z9mrdC?7?Kr>l!nq*xved{7E>sB;1VtA6hUlh9I74N8dF3+Y%0L5Sl)bt=Pbe#C@`( +zB20t>!|K-9NmWsfwMBB)+7i>1?@kaeu%UO_^ZzXUG_`0kn?$t)^D?2n*{# +zsg#k{iJ~w&oU?>LFPL@=%J_!Ts52@cV_ik#e0W0^rW2;VO|_D(jv4B{~F;oQ_ES}6v80z%h$u1lo%r%Jt%MR(ZZo!<#7!%I3|(P0I=rh-B9)! +zzCHDFOV%UB8UckTc4Ce6=`DFOz&NS;2jS+roM#Cb5gCw!%WR(8xy2_CYYQAmwm42L +z98;M%B`?>av4pX`I>gH4HrW`g+4}W^VYveqMCtYcUPW!#1dv|lB4d-;qGn9X9G#Yl +z-;kBMDc8iVpt{LFoyyO-l#T0b9kyvA~H=3O_rQobq)qjbV~q#RT1{-6{BuS74% +z5pgDxy;f#XdY&yNdYQhtrE!4v#1}J+tSXYeff3x2g*XTz!aTfHz{tU6oshu+cawdX +z{2vud{bdt&D*p1H+|&jrx6y(5}JjKQ3fEZ0CHpIvZ2zkp_$}b4LBtl-z9hU+=L;1 +zdTsQ1NyZVbWcg|p3gn)zv7#_*d9(!%#?h&K&}*Z0CR++0A;R^i8xZq@lMj$ZHjZea +z(7@3Go1?KUr24qE36}nJGqOv%34$Ucg>+*E*8A!CGEm4t+g+am%-g#|;9FpO%#RML +zPz;NO80;g}+`sxfPot&5u}4}QG$!$tgoTk87!%IrTg13!6=_&}9JdSrD3N*0QF(i` +z0#0|=n$fc!#aP$k76U(qm0pHUp9wgNn==kNv8F1_95@plSij_t +zkT_tTU^PC1;CInDx(URs2=IA|-vKbpxU?fAJmXbNlc7d7u#BOzHU7!cA?PY>C|nX; +za4Tup5eC+%H6Wl3xJZrKwihf46}n|Kq$=!-xk)$`Ru%0K9Q*$PwD&n#;Ly46o?x5>WYb!tOR>jByx5U}llrIP1(gx9Q#^o3u7ST%^-a +zKN06OxJV={s978GjtGyi3Vg>L%8eD$^pcYSo@HT(hDDa32SJTrHPpS1ToU>>?mI^#?n4C)H)%k>3-y13tV2sw`j{im7ot6W=Q +zmu&8HQy-uerT`H_qB?_d3B(6l7mgUSXh;G-BxB4kAPC1?IUYWX1P5J+y7vaSI>$a) +zlgdaETf#J`i@Q?LJ^zM;FF8MZySyc!1yG7uk^SYUq2DgZ1rv3_U6ycE1<^Ed>3@e5}yzG7wPmf=)M +z?$Y>>o}eJ1AF`?t6b}*$Z|8*2)5X7I>!u-vF+E*<&2&rD3gnJv^m;UCrR3v69{4T3 +z7Sj5XWtqu}^RpyWUUcHg{ajRfaau@^VIO0?)++bn1_+Vd0I#lT5=pvV@1mYWtHGDi +zZ!gXYuVk%hn}EH)sl3VUOKueZ$-j%Z=7{G%qd9g9mmv;UMiA)%P8`~QJ`cFayAh>M +z8ydxHm-A>xF@d{X8PX{sbq0oLn)Ebn%oN2cY3Gp&;7Cv?O+R7kA2uuqf67X4=j;kA +z^vH9YQ!5j!Qefp`_w!H}mQ?|vm0RJS_)lM%W%P7mo_QEeb9qD~#S+IM_q<7!4Hv&q +zZYgrNq$Phjx&#~=H2@7RX3x+Mk=eo{lt{g+!cTzS(nSBypI4hU)9d2(J?fkD9^UG1 +zmRnV85Fl%d#9$fX4wE_kVb3Nyf;R}*zXc=-PZT_{Ng&Q22i=c%)wqi1(0@{m%i^-t +z^TuTs9P5Pd2wk_j)*HSluGxi2@-=!C7c_RE?G3N0+7z;0Zy!d?8ZIxFC?4Ag{Yjq? +zUhrl_w-RU~3|f6or_Qx%GoAnlG+9?`nI;0XHcLJooagfvJ=sPaxb>s)B&GzVzayrc +zT_;v+zI>JOceQ?I%7hAz;gQnYoy;Z8=}gva#8y0bE8*seA*2C~KX^vTsaca~(!i+K +z{@JSR-A}I9H#L?ldf1qACi>Y$oZ)Z60!zi+*6&=JcH-9@@H;7#G@yrXVT;(vJ`Buu +zx@z-$)E=z!#Humnc}}Q^pT5v2yTyz}{|pt +zzKi1qJTzphCsb3{L%!*h?4doJo^pN?(u{-HFxI_i#5y%tW^SKmeX$9c0a+DvL}1Cq +zX+QYnTg=cz6~Lrr>m7#XLg%eTz9^db>~&F~=_n^RHr|c5zMY)i8RzHw;NVV$SEgb2 +zkA|PMylp`ie52~JaZ9msLU{a!b-}$S_Xhsqv9|;=(eaDP9lX$UcwmQy +zh7B%i0YS@RBP>!jDF8VkMWO|nGz>w1KoC#B45qN022XncX#lfQxCtj0Iiorp)S_d? +zq^F>yLG)OTubu!7$pnbC01VAB=sP-_w(Tfs9-XsoEq16Qi_mUL>L|C*x}oPR@v!bp4yy +z8M597?mcB?1H7NgxuOMmJWVPF08{n4Yk}xh6%{2PLzuc}TzL0SZ|%)X8+s_d>{P|z +zVa7oz5aV&Y2&UD5sMg6zQ23Z+_fzt7#)WWfmQODg8o&FA2V3#nfe{$IkggbX_<96W +zLzn-oX0O_o4pP^$RhI4?fVXXPpz$H69XoVg45F0RqGS}FZ*X`S^89)}PQJBs+^`5N +zvh)=&Pc&yF{P@deNv~h^c1DxF$y9Aa9NsZGi(we?-Uj-&J7smLcn{Lu^rTC)ec(Fj@l?M`JlIxiHTG$ +zs_PAF&=gIX8|G>XQ`J}l)Ru_hKB)kYxP6^_m`di?N5Fu-#y>S)d#rsb+LUB8@??x8 +zLRQWNov6ohQ>pqt1~`n69_%YiC_g@N>x*=|3d>}ncNwGk9K?LEC1D|i;NSz_Hlbfa +zntTTQ@MLpw$uUB_Nw<8St`2x5k265>XE2#mRgc55hZ_86cmNol6sY*3+=upN=1aFt +zHT~6f*r=85^n-aO*fqH&tm@702r{Yp-jK+;G=c?FwDAy0xi`FEeRNguq6KCoF^rWi +zrrrJAqsz15@$-6Betb><{3iXJ%g}aN^+KX=Pc=vt;Bg+oOPe?Wz!~Fxc;V6clWdW` +znBsFK7nDYBjTz73Qc-5)_&{;Jcx`v>8)rI@P#Cd;dywK6(aeCqElsQv;yvF(?UaOi#OK)#ps`Z0B#l1X)rOg_DGb9GTL1_lE +zKRk4SW=uAbJGCt7@w0#ls)hKaBwAj^d?C<^d5)_EU_M}q?nRE}xCffpgeMxiT1NK~wry>7y{}kq)Kn6O +zABEgZD;lg4P-41`pA!|)Nqd?xWiH_of~ilG;3xKZ=NE}C0xoi))Y)FXDB*(e(tMpP +z#S0D529ORE>dBGw9$8X&e@r~uMO0@$Qr%!o&LYV^Z%93=h^8ajc9<&H%%%r{6i?t3 +zI1!Lkb8EVTb7R=_%-y$6Y|v +z)E?eJHvhrSB^nM2;h!0V?eDZ-m5%B?=jOg`vxF@1*^O?=jQ3~_!2apGJ7d>Bw2u2P +zR(h(;DWa9)6BAM76K}E!Vf|wt0ZG=64`IwnM4x0;Js_~M-D+v#Bb}wZF*UXL4WhOd +z7Q;hfMETFbm&}|f8kzOzWgpk{x`TLU--mh?Qj&X`qz3A@@kv=;)C_mxAZwYrj +zwM;r4)J9^uJxAsSy}i7Ea~Ugui!%1GD^j)t_QekAFNBRqLU+onZxQ$x!ENJ>&|!gZ*eK3r8i;FvIRbI< +zC_7f7N%l!ZomIelGiQt;A{KUll}SNAmD=6(G7u9 +zp=adnJlM9GsJ{qu`{xn5jN3!G#vU-vlSJ@0!95-GO>keJKsXhD6WoSne-qp^6`42T +z7J_98z9EQ?H8FtXp)ucwi`=hXdB@+tnL+F`-KRrTHcl_H;+m^rq1laH5n$4CXdj$Z +z)+LgZyl@gn1YgNB1+p*^?l)V3m16FZLpN$zoOU_F4FlEfVqt*TsGlWjs!zhZNFSne +z>>Ld?$}~^!+9Z~Cc!iX*$V-nww~84U-z`AUo?y!Nw5%U9u{RJT>JjI{cY4#kcfzLL +zK>*d!v(!6Elk+SY%|I^uc&MZ)r?iC!z)p+}%@9ibO&xV@a0W#ms!M^NlT{FW0UT2_ +zG8Tp>?%9nmN@1k&y!}*ySIM&~F(P9_!vD>0?CLAUu$&swWxfGsSs=F3Qxx +z6!4|#k*|YS>h$%a;x3v`cw^@({w&k7sdEQAfZ1eT2`F=+v^m14e>ZufOEi| +zAOXHxC*y|i)|?$^EiB9my;^O#+m3YCy6mFCcDIf#VQnbJcDT6;DcT4j%6z6k0Fgg; +zrZu=92qkV7Ty|Kf%Vg9mEUMz-wZK$%F!+Y?26xqvIC@dsBh!cTFNU%!iXfFfXf2{<+GREL8Q;YxL1is`Qk6FiOb(4q_O +z^?B18bV_>HfoEvZ9{Hq%K1FNr#$->t7o-u84E(Dpo|8Zo>MH(RT1D8YHgLl{_*>|o +zFo!(>zd6xcaKRfSI7ACTa%mGu!%H|%Yecsm!>TnxzC&Yz(W4{Ig`dQK3*7K+;KiW= +zXx{?&52GY=k@=3`=V&_V7ti%jO6ia`u9?ZpAi-|WAlAxnW?Yzgt=sBh1Cyq* +zvnw+DE8p9$hrey%iL+ds_62DwokMb54dPU +zti8*#NnNudp5*GwvHV=Iyimuut!LQG=(y=~aq2Z2y8>tIw76=qGI9x&6;#PVa +zULvzYGYMy?_T!5CbB$ts&6(__lVv`^k0W819U?6)Z-M3l);nGljtRWc@)6F}&PZ4c +zKXcLXd}{$py{M8K;k}qdaQ)#UVlVbVg=o(Owp;3oU#%?HBs5EoHyfeMRGtoBix^`E +zwV-QtG3Wc(GAGzK(l6T=YAb8TenUSpUj~z_-3Epyn?38XTBkH#>=DN2?kd)ZeyMX) +zq5;LYo;+PTM4;s(^oia9cXlAu!3i>ve=LpG`Jz(A?C%vUZo>vydyJot_dd +z^8xcA+|n>BD!*h64}aW`GdUF<(i4u2ZZTv=%Zy#sxw}*t`Ynl3<$Ali#-AtSg`ra| +zoxe0^o42vL;u8(fS&CoiX3+TJMg&T~VVOTV)WJuAj{X8Wy5~NrT-f_t;FkOrxD$WE +z+&mLkT(_0AIj3&UL_PH15pWPQbm8Duz#EqM7Slx|b+`Y{*Oz^93jWP&Ndq04K)X%` +zQvPDO1hZs#Q$Bif6%4f(4flqaGeO3$i~OWJV>EUYWY>yo`_eqT+X?GnY6n*$w@k}r +zWEtbnF+0%?+=d#S3<*mfpV(MOa`6BKNC%1R?FB8p(uVq5Z3=7>>ap#re-&o0$2;7a +z#N)D5hcuK&;lxCy1j$<+7ojh{f55qhacx~ucF#EYo&&UFvK~wA&Lq2JyqI_UEyq+$ +zba%R8mWnjT{)F97alNX1yvLaSX4oAYr-Mf1W7gs35bVZ8L15-t@ZwDh)LiF4L#!Hl +zQT(2%kjcMI$0hUU!|V|pv*W=-JDJ(YSw5Wlvn&IlpnfA_35rs*8L!2p5QEG +zg%oQKsa$4<$VVnY+O5s7kp;?od5z?uLxGjdRIypD;*xiJg&rgJ5#mva9-A?7^BiB* +zyDk!iv6R^z$$zMI-7DIO>OJOsPB}i*|IahS5jlndJkS;IG1~3CBI31rgub5nY +zHqdp$7xXVxJ8Bt1gj*QMVV}$b?kczMFd{HZdj~TkGzNHw&cEPtT`>6AwG$=ZAyHJ_ +zn3_(+;4O4U4h&z+oYwCIk^SuxumxH|#sL68ClFbtGz>1?0#=Q?7aeJq-rHCZH!1?3 +zuItE-3UgorGMJp-*^yVGg0yI5Tb72;TGB|v_Fn;xp-=?-TGaUWlvZHJJ|%}XEM&w# +zjqJvr#q+*;-s-pB*r$^k;rN3gr=J1NhbdWnJpuR6u`{-%a~d9;#i9~^NppcRDC@Ba +zQ6r8guV{o;#>?>+<8|DWQswTKkTWMDk(-6#fe5;0<-z@L!48_kPPi;~g?sVU?`It`OHcCY~L&l8Jb_gW_+0tE!S74Dp4+kbFV5 +ze;{em6Js8F6@9BTCa6J-gSQZ=j;LczgU6Y8 +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 +zZm7lE&Cix*)!g~ZsWj-Ohx*%U_U +zr>l&8DN+V$awbrk+MJ`cY)zz?=QSNggi2^wf++satNo!6zFroZ6+Qw06maoq8EE+K +zm#`QGq->OAM!aQONdSh1(8ALdyjyD!lc%Pd8r}V_*EEH>Y1dz34Je +zUwaME#x|hwI@&p3;&{Kl_^`2CY3q7q+U-e{UDKhURhC@6pN|(N?b!2GvUz(-5ot?0|a@~5zD$>5J-Lk7lxh=R&9$pPL0g>vOh7fb2Pmf +zvM5Lpg7THo(&a$X9$;GCmL#<~>N_)%|9(MY>Mvi|NsrO_b=)B*%2r`-`0BVp>rGf? +zGFsDhZ>0D*8TKdnQ1mO`Akxo+9C7UrTH}uxC=8^=J48QePp4w$0|!E)XQVNEC!vvn +zi-~1Zb^5T6`E_TNt>Kn)ta(tdX16tA0AuU~dlp&i9B3SEjNaPPnF-;R;Ow8&%cMQj +z!NyF1(!bnv8u#dmq0ocBGNIt#20SW2GBB6&s$*&~u4yT>E5`WG*vw()*on1q#n?TH +zu0^|^c5l$HI~?*t_0SaNBT?*!%dtSy2B7Z9P$bb~@SKd=OJy1rI;96l%PoVt@axhX +z6r2d^lxtjRFj5=0rO4UruuC;DR*9iuOK)Rk9AK;#VH7bS6`?9bfu=nI><{siGzA$u +z)F?PhcZEIt)(*o +z1716vEM?x*-`{;=MXA2rNOgViyyee?{qe+}P(2g;GwGnX!^M#WMay>tTnVcRvznaz +zv)aQ)xxCbBHH4i8A8RB|jMby1<$Pz{%@+p`m;Ha&BFsxTv9&4>(zn584p6kfHO>$p +zkzF;b?Y{-labzFJ>JTptXD8(o>IT8{1{ewOT%mm7pgHO2Ojg0g3W4@$0dr368#igo +zWPCf^SW&nPq<#I;UD@$OGm@C!4mT0N8qP8wR)GCU+r16auWyI@CiyidG9WI*&RNv+ +z0y&|!B5LEMA3(X|nD6V=J?n&tSUx(s +zK|YK6mSvA0+;T$D`?&YC+adKv0O6+d>u-l!n1PyymSUaMA}#?SZ@5v9@)U^`va+=U +zRYbx{b{FfQgh`_>5T1t`W>+9zxvp6(!dt#Lz`;(@*K(yvVnHj~U<1H~7N>dW{G#2W +zN=dCPZf?!JzHGT#>m}6%Z)XtzSWO(+TMjXBuJeM!TX%VXAMT{X_R=VLMBa9iAi>V` +zj#}){5RznH61*Cf2VF{H5xQM19f-z)kd?9qkppS|^ISy9T1f^7$gfISd|-#x_Sc*( +z4{%!UIzOVx7TV;|Yw3fDI-5kXeoh=b2&?50QrtkN=JW=`5KB_tfYEkmc)l=$LfTyI +z0>kJS48{x{@ihx4yIbDCe1DInES-C5a9-sQJ0sVEI^&DF(F!T| +zbIi@ic7*UW)X+<>pfo69i3gm6f!CW4;i9le!hPbRA0Qt^F{-29`K?(G;7u7ch9O>_ +zuYs*r6s>2W866nGg_=!e`E|!^i)@F5uemXo^@f~XC`;S;r!jBaH*;{xU~EZ0 +z4h4XiUJN`PWAXc9vpXpp`sMx>2EN@aGj32*^8fg{$L_$|YysD?Dzs3w!(t=^(i)7>v}0l5oH)Pb>>y1(ulBg{E**JAE1xnbHn|g~ +zt&a!?9L1V&Nae9@c&ykaN(u=yV9u9Lp}VC{fFCdHAkN6-zd1jbXmb24+0k&aeWaTgWxBC;kW8hzXm +z+8BDqqX8-2ukemosSgs2Oih@dfB3X!lUsOO)5*b)tuWJAQ$Mt+w3#iQJYvqkx?$0h +z0VH$)=XV+|MToG>nSK{sxvLPdxLQQDvQ8l<&bPl-_p$ut4Luo_{2-9iZY|-eVS^GP +zKS<)~b%@UP55#>IQuhsUXO(MdOQwB8+{{G${4V}Q-w?Nzn(sOhWe=Qxt!R#m^(mmj +zyi|4{fM*FccL05A3}y4GKe0U{|Mz?SW$YYt^5pS|t`BcxcoiBc +zK?G8aBxZFa1vH5ZQ%yviWBDzJL5ZADo;Py-cZFh@Zjvg;KoBRU|7SpkgQlz951b#k +zuuw>@Jk2c-qWNE)bu>4X +z4uB`D)|M@VH0PReq_}SlLALS9lwrSl=P}v=W$_UPQUb~_-US-tto-6G^aaH(uMx(f +zBR%_>CH0*KD*pH?^KT33Qos?&q}N8Qe`g0Q)qB<2b&P`kLfq3wL%8U0?WLOE5O-`n +z$jmpyy(TxxXTSXoabwXlsKl-n{e`%X{|DlBT*4Y`!@$!`xezcF*!PiR>kb0h`-v9w +zBH0=%0<9M5C7=x0N?g9xZ$60Zz9J2Co^cK$6%ghCR7K(rI)_|HRw;dSwbsW7vGXS`2H?O&JiS +zqbTGyok+iE6pIJFsvmC2oJ_*)C3+gp0iOzDzA!Nfq~2V_CM}jqA@?!H +zwx%+VBthk36>?`I{oj<&VxiQhuevySJDKnvV%~ypCYQni%hGD@EoqTKB8?7 +z#I>q7^1x{8=NdEnOS6Jaa7~@W5^0ZCze{pt92KZNH77gpLXS0m{%Svoj{lpAp{cx7X(`0X%=w_mb6Au>rsBTyy +zx3;{=W^+uE_2U|vknkUwJeVFNY7n=;%W#?6+S{Q`jhU;v$IHbQeG>PPu&?fuk|KyLo#8d|``*q8zUzDec2{!Y*(nx16~^W$9>oz;J?LAoMuE +z3`5q~U2o-RVTw|pL3)6rg&eYU#)B^n3L@iPwxmK(hsUxASU4SQM$mVn#zXV65)DQa +z`i?(R#@LcmftFA{{Dm}HyTCY`){(i;p5WPv@)B&Ar_uyn{6A*rBfB6{@>*5$+tXQB +z9S9t*t2wxusr@4W?G#U-$SiP3IiHXhX>s8NCB1TSt$!7KGGnY#-R{4+s{Bjh{*l*A-M*uNTYMz^?hnc0 +z^zvG0-NB1_hNDYdpI~umari@kW~3QY1{WZjAF-xAl_mzr0%@_SfZo~x$#M2+zyrH6 +zxSS8>2NWo5zQ7za2QCc0{<+jzBD&1~lBoypL*#2qMB7WXZ2>r=(KN+qSLJ&!XZNIqe%ki&LWB2Pp;aLs3lmEB257Vln=&RI8hak}On{3CJq{!8N4{gg40e{!);`zvw#QvA$OAT103 +zN8-k({3~%A7JW(;J<5qT`?ju;>9y4rV~t_R*6VptnBUp3z1Kj +zIDmvxpaEV{3Ngjmg9Oozp@`b!TKGT)h22{m)^uib(*8oFo8iYz_Vve+U63Ld-Rz@Q +z^&@bvt;n&MAIhzzM3Iq^-{C@dmS(b0q6IPh%% +zx?d%DYhrD%z)ANAZs%a*Dcp-5JfQ!o;QPSAd-`-4#w;V-YY_wYp*6q}n7~Ot1E~0% +z|7Am19uF +zO+K6>smNP*KqUm|4nuP|j%kc8f{iPxsmbr{5nEKR&Bfy0G)N>9t>Nwo<_J+eEvEOJ +zIq2X#&3ub?%hCx=kx@(!SC4at5)O2wp`SEccX9F|QNV3`cM@OK7fJ%`?6mO>W@P$_@P +z_VFMO&H!$qpS@CvULF|9ur`azd6ZDCq}UG{Kytn8sV+%zB3{cDO=qJZ;_o{@hy5N5 +z@**mI@nuAFY#s05Gq>6a34!lO#OS0V$-2i(^Cy6Dn+vs~((!@a8lv#+`FfNDh$Pet +zL^6A*;3dcnU8(cnZA5>fKP8qy0d6VM`X!>o1QxBP;4idO5Jn^&5gwUd1xgMjVHvA^tGwvuu>krO;v@6e>t{ipOh!_B}1}@;YQ0x+VJtqwECi+}J +z$uTjwd*y^P4@qSlNODHa48LeHM@0}@D^X>%wU1dcdySrEB5%1)9=^jSd?_wY6&-Ze +z!bLB@L($5JIS^GDpnSfj>H~l%ate?BYwwXaX0xrzOxlyS&;cm%-e6M~6o%@Ir5h+< +zvjsc@&u1`&8P>V_)pvhQAD7*cnTA;}6C|Szo1$n1L;t&h?`1J{n7CQ^&ImdI=9mk+ +zS$3>Ye|Pje|6!_-0G6lrI+iuSKmVb)Oa4P~r~E^4$Lzh2jgP}s<9SM`-bQ_BXDmMZ +zLrk_}+qCN(c7wtKy|Pb2r~Mbjtsik~FmZMUl`k>-O>uir{~wCmHWQ^+`!B^E^-Xa% +z;UUgBe*{#@uJ7*sjzkfpW4O%ARsJM4my7%W5H(7o~S3CfNUO?Ls$$a(oG#$>$rB3%(zq~|79wh +z`6w^Z57T)7E0@ +z-QH)yHd5%1YG^M-#KJ}u0ik+2xdEoqYHEzI8+E7>tOI)=+y+n`F1Pp<9!cyb +zn8{?1@)W3Nb?4%c>gg2f$4e#q3C-0ih#3^qN{@2iWicU>e^K0R|4`h~|Dm`o{!-jZ +z-xT-UUy2)2s)oP@1G#_2;4j53ep=Eun3?xYac{)@o8m^PI5NZhhvKGI{13%Vg9wND +zAh8Ix6P-F4ASdjf&UAA6a3l0BZS?=B>d5 +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 +zfW`%Ulq8uQKzyN-UHCUWL +zKu3!NPk;mmZhM01y*{E0aJ;2IMx4@-+K +zPssmZ+)D&!|BG?+On+nCrhhSR_1mkYv{zm7jv2USWoW +zbNprL=(O??aSH` +zt9B$dQrEn{Q4>)BbmThpcRuP8El5FUxA*ZyTA5l0SJ6>47-mAwGcvS6(I37s?((wn +z!}|fu#aoqTK(&u2vDc+8e!edb5t4n +zO5Nh5x4TD)C(mZFFvPxZ1R{zdo(@4RxLSn=o(&TAJfwsl?zgbUI^3O*+A_$@2@%!+ +z0duEQ<~fG2EAB8&-oXX3JpKf42DZFVbr~(V`VlJL#djAUzMQPyLstfhzrVJQ$i+*t +zT`vM{VxZu}lgYVv<`IgpFH2yBL<`=>o8-HhpFh@`H4r2ru3OA$=FU2P<88WdjESL# +ztsYlE-nvq$lv&`OSST=YFJ{V{NUU+6skZvN`zWqMqls|$M?Ou5O +z51ebhEw+NUTY&PI?atsk*HxA6Bl2SB-UzM*_Qm46VHX`SnPx;NGcNgPs|!yts?yv1 +zbwDcK+|rz)fj)8u8b+V0^-=kVrL=hN$ogb=uhI02`vP@w4FPC-XwGOrl^6^6^gq#B +z90dxkZ0sN^t;szRZ8h9>bqRPrOqKyZ4?-TA4`}?*^7OsrNxgjCj!mbdA$P&N; +zv&pT>CX#HpClM|T#SfhLA{D0fWt8*^LXvbxlH{}?XW`a+f;fjCtt}80yJ8I2J@mm5VXWB^IeQVrd +zl!_*qptyx-D)v7et;bzM%;|O<0y=nPRZZ4kXHka5vk>E3JVuD8AT&x_Z}7GTwJMi~ +zC}^SR(Pi0I(D{WMy`_b*_ICvzjf#HI=l~${eq_HYIR=IB2T@~xZKw?usM*NK&~Mo2 +zYLFx@t@_6fya5duR2@$l@`Y>h(fYE3`W{Q;yxsGDig=x#7*dt8Sq^H|jv}Zl#sr?J +zB0fAeocKhb^bg+cdJL5lf?EU63*wlE4DZxLi41?JAF5b9x)f +zYhVoM=9uHqOd@w{jU5py6G9aT{d#ZM^&m+t31|@!w9>F%J%@vv9W!*SqATw7uf|=S)k10YXn*ZYH6V#hTD9vI7UgOznb>@&z)cAj +zk@r9z)TRpr0W^Lf9u<7W(^UQ7HvjG#up`q9m&kI1RmbBGeaaEM`{eOkbb~!~iv|3fqjw0(~jFsT+IhjYCLH~Wkh|JIN>3@9m)RgJwM8&|lR4Bbf^M4DIM^4DS( +z`gpIIhx2@R5UT>>&nT{|W2Fm#6f(B+Nn$y+v>_k#PPU8ndTk>osjk+%v-AVAkfS0# +z?ZiGcH@@VAU(oU(HPP6C18BjyPKuE5MdaJT3WbkU(}b#vm}6s)LBd4|^9j#29Y_OH +z4ajhfPcbpdsNENzBO+3GC9fLr?y}k +zO3<&hLx$fPcgnQyGJdPXx5iEQc;X7A;`Wcmz1SpgB2q7(W3H*aSz!P6t#QA6YuxV6 +zVJpnZ1gT$(`ZnJhx7%^DgE0^`(2d^j1NBj6;A{rv5U`W3JS*<6 +zwNh?PNC8vx>(Lvz7M~mcIu$H4?-ZElH}j_QwvZD6Dgps8pHNB<8*wC+jA{NmI+#W2 +z@k5Sqww#rDdu`|uH?m3s;!#XUyU8&|RS+*}D;?|u+adXQ?p{*k$`8z-z65xWlckT& +zl@T0AC78!PDhxEgv8FxXgGJ5vB})wGb%<_aoEhAjDH;ebVmdVhXTDVkj^# +z<8Pt*j^K|cdUXdF&M2Xaj2HqqMZJrygn&0>GN}8WvBr*&zFo9 +zJaN#}EyxRBL+l+B*2M>8l5htSFY6GgORU?>=o3e|qp-fOAgv$N6elVEIHdWrHFL2-Z1r1^jq+ +zDPlwTqpceq0D;X=<%Ys{h#qKAP;F?dk7i(Y;&<>b={Z^w5BwsdTODyI@L0%aEQn~> +z^)slT_M^kQq+qlc0AqFA`8d{(GIcl`9^Lr%YWmEzAxCrnLMNG`%cME1yD%6IhX-!s +z+fU6%fuz}cQ0xHQr8R}BkyO=w^&l0IN6q_Z<3AG>#W1iF+-<;l%MY}qKvx(vWKXk#%`&m1!f{>6jFMQ0W49h#LM@< +zesgsBzQ2ys4fC3++76=Gfh_2gBReP(H}Sn`)^_LRjtojxI@#YVvv=uIrURf{g0CD` +z7_&>d69&Lig&Kt1r}v+$Hc40dC=GpUt9AXGFG=74E{!(+tR)8mj9E?mEUE>|4QHB5 +zg~#^@SqcdOJTQcnC`FKIrPf#eB%>@;$WKK*zSUJewIc$zD-#i_u=MzP?8yW0u%bym +zoP)o-G-?$UPq_09l365>cF(5_p06z``7&y@4q=0#<5)1@s4;cA2h1WwS``=K9}2N1 +zKEhaS*lRgAq4z6La8||{+Dw+L;E;d)%3F_}i_PP{z(BBZVU=vQkV--VGkLFgq`mQC +zlQ)}0%-=_r8Srfd~Hb~yn~n8ws6Sef($ +z!!^U`w&hbZn#|T>%n*a&NCN8xzDar{zH0}=vMi-OCX5{MWZ1gUuI6Z;(53HV +zozaj=sdy1&2W4<~Qph9SRqr0&Y+ZuSM#4H|YI*__nmZO!pY4xZv+e|F%i>-Bc^qoi +ziGR=O_KTc+tZb%~HnZNWqzRh33G^CAhSw~BM^)D`8DBFk&Rz%D8JJsJ$+-SPg~zj> +z6602hw+Rjsivo}b`~nO7+t-Sib7Q=dR00&P8Qz!UNs< +zv9;_9o#7izl2Ua2LKZwk#SrH<$$MCVTJQm&?;~xEJgSr`FgS;VrO<&4+E>XJo2j(k +zE`yO+&7G!zBB7kL?D@rCR!|*hr8IVc6q_P(v@pLJgK#E}n7sgg?6nXjp$U0A3!=-# +zsxR!^MIBXT!>31Vc&!}qAR{(o#tm^zs<*9QxlbAj%|VLb7^cR3?1NHmK$t|-8!fkd +ze-x~k_dq$vbNR$S=}waaFb5G2oG*u+^_I)nCIJ&K_oL>em5SJjqAUq?lnXq9xTLo) +zp374|@T`R%d-C*Pbn*dqJ%iJeZ6Do+cyb*xBxlUw7r^CGS(2 +zq5=S;cMzO)a+$-qDW~Cj6X@sMj19anX-N*!1$w1~AJSKdmIkGd(gwKskev{JV7o5v=FJv{QXA(-r3Fg!X90OE)>@hvt=} +zk>yLkgThXj)`sZGqS9i7F6(k#O{r?;5sHAO$|5!t2VroyVh#l3G3^+l^bMy~MNmY> +z-i*L8`2|mk#1B86XrW*uM#bjDVikb!Wk06|6;w}YAB)+u9_>l&g5P%`JLfe*0K=MZ3cMj)g4aP8 +zC!#?_naHI83&@06yC8IQ;oQPK@-xAkpq30P#k7=Bww`mWY*|W6=(+tx^aw7&jp4lc +z2Lg<3HE=+(H_v{`5`$(BbQG7_3k*d?!U`r>)TF$I?9ZCC>hZy;#TVnk&g*Qw&5lES +zg>hoEM}wnxy2wRyRf$O?0j~lO*+TDHC1G(T`WFs~qk&Ad;?ffHOt7xg70q>w9kjbI +z86oAR0ra%hewKB_04WfKU@QX0_Vy73j@Q_W%-y6rwRL&cwHT~fz|az@=$($RP-}Fc +zK$CvS1Z;7STb5L?Q +zqHv3(aLm9vC~{EMo>f~>( +zvV+lRIkpD1#?Y!?6U!o3ChN1U1O3;e7^Sm-P&chcG<9l&TS>mgI_q$}CB3a8Q8 +zX$vMDd3_PBfqy3b)g|?K9VpTr +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 +z_)}%B>{LcVp$e=$46O�W%bDOmx#-V6z%uqQQnxqMrYQ!5qT?`cN6>O*v0}n#Xmk +zM28VQ2@K{oE{4T1m$765i*btv^monG`nG0n6d{`t%`ALoegy0v$tMG~UPxZ=V6~{L +z3fP|^iAe)4v9T`Rx5Sh)M8j0dshvSk&8*GWr3)^aO2hI8k?G3?0#*P>4VN=nOX$-J)oB-De!MRw+2pUo4DA7)t^t&=1_$H`j&QUgU^Up7}F4|eJI +z_eI)`uC9Zv8Hh_<1UzQ;DnJ$0HbGkqQ{)=h^um$kG46ZK1LkdLcb}95fR&6n)om`y +zm-X!Hq9gr)@Azw{dMb|T)DA-j{lXMo9QF7hBlg#?Qad}lsj;iOwT6~+!kT|(^6L40 +zs_XipqJ4fgPG8gMwRdf5z6{gEWwCrME_HV9e<&U`FL(RwUq3p%4MRB$yd1ctZf|bs +zhP^I~Puoc?bkm&3cYkts`wZXu>hzyYpRJ#rJqddV2j|t2N=ta+Vk$VdxcM#gEy%%fE8Ps^eqOpm|pt6Z|NqE10 +zp$|VKTboC}CdIsuGAdr*P_gd$xba@re2!@LGJM*eTjPVFp^zeSdq5J&#I&jX!=+K; +zJ4%xtuhS*(J*h^+9KC*R{vr+#R<8aG{mm0X)@O?cGQ>&448Pn12?tI1JOmhaa=)-I +zm_NcG?dQxj3CWk27`SJcMatHM_iC^o-E`zve?UjLdk&f=T^1_iz8&7J^G#097QY?L +znLou5J2(|7JI{;aOXP%^A^JsZlMEkyce8<{@iiRyJm8xz&yA5+{8puSprtmb!DbRI +zCyV@7`*62T7k6~6BjtPwiiH1o^R*PV3tdF${-bNIF%@S!1E=?pjUcLPgc7yhVlxgF +z*Radw`UNNjI*1#AIKn;ihTc9M7KGMCf}Ca^cp4a^V7pHeqorE(m-tUI3;FkZ4KT$d +z!xvGqsR^gUY8ze#V04KiXi@u5@Cgm;+n5v$!(%PqtXURww +zV(I5|HhwCJ4FVu$VoX@9@LT#P5%+3apR{2r)JQ2Af#DlKAw^x??y%w(o%mcNrrA+9 +zfHxS~v0(g_zS)3%#-8DRwhdBl8UzWVgK3Jo65Y0wT$yMBOcl(IAKDxFidfkuAMn|G +z!Hk02^V`0sS%!@rJNOO^W@9qH8OvptzwK=VilYoZr*HgI3QbH=M(y=kcDf1;?+vSJ +z093zgym>-^VV|4ItI;!O50)uNGo)5fM9-LoAiuC*G?We7k)yS;5zPY-fha3~$CwyP +z{F&8aO3NVNbz)o7>C%^5RWmc6Jws_w@?TXu@B>jjL0EWzi>T&X)n2#}1h9Ss&WN(K +zLvPYtnRHC~R<++696rBQ?UNyU$G@ufm+4K+*+O9hB2oUVM?^nRNW$E(;(t`_`fpX+ +z?OWBZW&5jYL;u_>(`Fk{`M0Vq@U3bCa%F*#mi>>aUH&gs+g0pa)!zC4R<)D!Mp*Zh +zD5x#JRqdN^RolPkU#d2M+2+Q#svXw5{d4^NA5|Nz0Ti&=D3<_oHVW>2N@gHP=fsmQTtZ4-)-L=HO~L4+8cjW?N4APw{KM&*BHblRv3*} +z4_F>v$qhm$mf{4Kvk4LkS`my14{_%wLDILXjr*-?#|g`QtJ=b*DIVg`o!_eVt(8$A +z-uquwn^Eq$jaOmzGF19ss`l!`zg6uu`u|b2w-02nkN&FK;6Xfr0vLA3n%}B6!Q1~; +zwO_wg?V!^CQMIf8qiT~F|6f(R?Y~rQ#&1>o<-b(zsee@MA@Cg2|5CN5u>PvrSWYvR +z8w_Lhn*7Bmi$3BIZFA&!c*)If|E+3&S0(?d+B-0RRc*?@s`k~ls$Kivsy6<=Rc)hh +zRr^_N@7KRn?Q|{?^>0PRBfR3 +z|5CN_{#(@!X8M<^eS-@f@vUkXe5=~j|KF-M+h0|C_N{6={I{wN4qo}gwd;RX?bOTC +z8Pac68`MI6`yW+1Kk2Wkt?;dC+kC6q#ytP4YR?tdeyiFNQWBW6->NoEZtP!G8@ZZl +zy2q>@+W(1N)m<+RqDW(J5@vU{q$j^NdhIC-YO`mobwU@dqW)M$$_B=zcZN&pv|<|1 +z_H^vbO-|Wdy+9~hixEGX@?IdD>bY;ilIw6nKuerlvDTeqX^k3LiFC7HGD?C_oBlj4RtKOS}q`5XiwJ|~P +zYB0_Ubg95r^R%sh2GWigH{x}z9PJ!z#c{(IyIsHbpISXb^wW&sHc#)jhgvycMtGaS +zQ@(D&Ul@$uvEeId$Nmx{>W=eC-D>3y-Zde<@K)iuAyYO!SzRfj5~vA?|MlyjeARCn +zO#ymJ!I63=p8*&fIaex|*9oxg48d~wLvy)P`|fPl-?<+3&+K@1CR!-#jMEzO?UlSS +z7p7+4z`ibCb-z_QdBO`YJoN$^X#76pf58}|!xoNmMkdZRJ5o~aUPldL3imhUxd +ziDPI&ZT^O`Wo`*Y6g={qNjLB_f5`DG9DP+{{iiO*)-Xy;5%}Y_apfl5g4AtJ|L3dI +zqMv~)zsfo>R?L~d2FpX!^N)c%B{e0Qjf7t>w6_<}oejojo@+a+v&J`ARS>;=5uQX% +zFd@BJ6Ugrjyx1B6eY5mLjG +znOR)66}rr&<~xI0)ARFAQSMMdsC_yI&r)G)0NIxZkjDZauqw7hH>Q$Jwz`7+hh|qx +zc^~>PQ*TVrqD)OOz#r9I$smgqTz&Q%#6xyliFegZ0C2v#l1IMvtEJGVf#)b=4vmbT +zMvh=eyF`1C_B|d}Smj=(%_;dI;xw6n;9?NqwxZZ;KRsuH%sm +zBDTeQLQ30sTk}ms^!3A)F@D9yg(b +zoO;o&=0X32*bmcR=&sX&ABzX`btNC4>vZR8ZFUZheAQR4>MSQ+KE7-1@xM>_zQ&Y( +z%otqU9O*q?MEt>KOT?Zr5$lSD0IV%{QOQ)u(+vX3hO{RSJu?=t1+0=P~|%s0~TF?(1ZM0qYriu +z`lFGYGJm!F5`?WwkTZcF7R>I){EJ30tPwFCm;1!aUw#5aB-9^b`gK3=gy2?|Vt8CmO<>^rbyh&Gy&b-d``1S} +zBo!X-Vkz2yU*LruCPnarz3h$%F)rh9@VCHOe&QbzHQ+^SI68g3f`z&1M$0^i&czQL +zT4C~T^+WU>ZVW}$WI>8u-2T>2cu4UDce*NUV +z!-PWX&9MOXc(WvH?BunjGk7f+h8aHXAW@CHTP^cy?mqJ}2bgJ>Xacx&9IwD;jozY)Ag)qSIk%H!r}>5lLvXg3D^!)7tKw5Z&1G(;_`A2Smv+ +zn{I}&oF3P7`5NPGqu^u8gCUF!7PB$$+@h59N=AVRL|2I=$3fOh2f2QXI~+DubS1Fz +z0fX?AwB^KC&ZwsQ*s-{2a9$72ud=QurYh&`5+uL=eKd1*68)P!8}JMIFdI;D*CXhn +zL@Eo%&RDElB;IkhQ_e||+99SkZ()JAZMRR&xJO2?Fht%?;Dylw)S6EYp4iI3;Jn~9XZSJX=hGXKs^QMLPJqa$85#ki)hm&U$ +zNx<2K(1rvIv3$08sV+1Nxyj80h*$p1*4l^ZK!WI;aFRcHX1Q)(cf$H~#e$r(p!Km- +z~UI4>c{J;kdrVGl}`{lh?MM+MDgA*JDyuz#DV0Pv#fNMds%fdM*WaKi%cOM +zoQqTfF0z#zwt#2OnpA~}e7UZt?HNoXNWPwEvg9=XPBV=1@tAa%9g2P*GZEGE$cqGu +zIM-xs{1SK3?nbd8M%s{86h+q^7aJT}Q-~~;w1aP!f7>6$bCjxR34y~$jO4Qf?g_zd +zclg98vs8< +ze{(rJpL&TPRFY`6(Vsvl0I(hAL@Ar1gfZYw#+)4VmV7i10X_zE{Y2jVbV3(JDVTxj +zKILef6DOM{J1zh&fr2!(ezEx1@@^72Y_~%KieO!(W-3}mgmsN9<$Rar?DZGoYe37g +zhQP@;BXH1~f&4r*5ak}7Vr)F<6j?x6C;_W}CyZU{0w^=C{0Xfah*|HJ-^CB`A?j|F +zpl?3#B3=4x9-E4$bDd1p9kTW`&m2U@B?X&M(%36P>E_-Uv0{^w*JI%jb7N^%S^9N5o{=H%yJ#jir!3@VY%5oKCLJ&>bp0!$V+S29G$ +zJv`*0Jvmdz5SO`SW8o=4-wg=9{N+?%gn&;XL>-4tUa(!lE&Tdp+;~;#$N~`X7^rTS +z4%K{=s0=k2DdgSXsk=y(GyfApp1X<_Fnx!*sRk!M7zYUoHe4E%Slm +zx03p23d;PT0x7#x*Uo7rfaG?9`$lbime|A(FpujuoYyZFcnUa%J)y?7z@TD?U!CF^ +z5T1ySBm)F)uuTGya?a~v8L9JL+2|aB?9D!Wbc&)p$Tg1hO6v-UP{TP#v-~4sA+nY$ +z!jte6SOAnW<=but%MYxrt?}b%4Ab!SJf=4EtG=r{PA)q5YEcCs20D?Jy4Fb|SMZUv +zuDNk6Ox{_o=dwqTZH^|1%tS#Iw-4L0qasCtbHKn#MUsCfxAo=W_Aq5_n-g$ +zhhLY?W2tzw9I&}DJ@0U*YmT^7u&l9a}l9=75h!Lt=6^-dB> +z=v-F5xr>a6@IEY;HZtI$4d;V0RSV?>@Bjb@kmnyQJi9)e&OO{XB!+2u)N<%_h=5k} +zOD3$`FyF@Err&&TKu*cmH>DlfGB!5_8P9zPo%Vdg=$c}(lmlv@<#6c@q|XCUhrIR2 +zkDrp6LbOF4V77`ndPsDM7+&M&K$CeMzqLRan`vKfI|LT^KZI-tIlmDL|M+vwP0LtdH>roAy=kMrMQ3nVcW@z +zH71Aflmi0yy>IM{(7TS7p-ALD#?Q~;eGki5C(^+yV}|Wf1C6SUSXtDPnx^Fk%8fkU +zE)J7m*H01wXCcvW!&94xC^r<7k;L)hJ}^2P5ND=cg^fl#)q#47KlV@&lz>}*PKSRO +zeFU$8-vH0W`}SH!bii!5IZlAOL#KmV>ZoIc%~Llmfv%jF=-%4T7dHy%*i1a)=f&;B +z*yHD~f9P)|df(gi#Ne<-ILKmgV`L7MYm%sKY7h{~X3+Su4CU#e=mgi!iM|RjVXcqh +z`}=0U;aPq(X~=N28<`q$U&9A}foxtr8Q4`ue;%LmvVgv75WQY!zfCweNLKhl-;sjo +z1o17Xz`BwekKvIc*-=JZ!ii|qvfRi9gqIHq>ROg#eyky>N_99V8LzDGM6U*65kOZ% +zB3(102CPk3_=_Uje>1k;p)^6rtVh>y7C7q(HlM*oE+p}g!`_mEOB2w!&g6fOZL{!1 +zj#x7}+c`yHwIYxWs>JHnoOS7Osw~q2glASb5JPj6nI6lI;m|S+uD@v$e+*^_s0Cvj +zqSSQly?ot0T-w31C2nvw7Z$aZp#CvA&)5n3J +zXN3xtq3^?GCamp30>a?*T245RS5kcXnhFYJM;6g*!`;I#0(w5 +z?)9T2om*I9DzS7S5ph!e6AOE-lp?!bfe&D+;i_(FE%2U87uB&#g;|UX2U20Z@6NEl +z{0M-0kUd}`=@p+=S0&XFPpalDddq1Z>r+;nSj^mvp9$^mQ3Q#t-xkuCXf`fLeK^`a;Z^k;c=?>{nSPCsr2J`Ae0 +z6SF0s)+9(Iw*VN5II}&?BiQd$(BAgIU7@L4{(`DU&NYRNhvD^4FsB$R&q1&Lxg${2 +z@%GAE;%`)@>d-=!!}zLSUl5nG0@vyFR(zN^{dA>{kIi3G4=2c;Gp-;Dw1F&#xHhP(~Y1JRjAMPG5Cue&zC!q-!0ITY4?1x&pux6 +z!B`Q@J|a*#mfH0yB~}3+^kMxVPGTz=OxA;3*5M8y-uv$<(3KREvp-Zm6;gqz1?Bei +zCr~DVpG?KSY@Lz!fvfh;fm!>`rp42)ZN_DkTuqY6XfagTIERr|5RF~Si7~COmFSZKkgPn +zQM$y}@01&)M&4+giQND{`2x{>~EiB8g|BrqPpYWjR$?;4a9Iil{z&#sXG`j7hLBsI3!>j1%R>t#Zkz+*`0JwFfmwlMl6;(E;T|5T8#=X~x0dXyk)2vh2x +ze*cl-1gvVv($|U_O@M$I29P$tvOtnRi_atg&@rX)D8I<()#2EwIJjD(ANzRzn*Z`3 +zP%r$#F+(nK-4+Be_khpGA0xCnIxTXbL^-xV^VLpe&Cc-u0d+-OZ+lCD$L^af@{>TXXte}|+OI$vhY +z6^oa2CJY^Ga;Q7=`yT%Wjexpao1#$VhzXJksi$&$RA#Ga|tpdhi;KfUuk!WSmV`f)(08km2`j-MGQu+(#`=@)M(Ov +zjBP$83Zub4f5aeB&%zuXCPLm2qToFEs|op$(rB2EQ=OuFHT2Y7Y&K$SoJF8b*14b!-mMf(*PV!6yne +zoJ06_aB$zFD-I=j0!U-p%sSXW?zMP~5h7uA*i#B8G1~wP0VpQVl6*~`go4&v0%=}x>=0!@)7wf4TNsL%46h03_?+joUzo?1s=uu8!`}J68o%i +zhR_gkpq${t78TwbmT)sHA9Z`g1yD9(kYYE;|%?p +zQw6g2n!lPKmS8hT-vI-#*_3isI%weU7jpS{qo9LoeA4NKhSUl9E35v3K(aoad_qEN +z9db+jHht5wgX@ZUSQN?Q#J~+ce7S%b@&H4-cgz#nSdkTa@ug7aNNa~e(S|bECC-KB +zV;ScwfHz`-yEv}Vc7?2=tNoe0c%P~eo`WZHYj$PjjGZ6xOmK;Iua1PwhHlw9_-KM= +z9MCkfI2C9HXSKjYWcC*b2*7<&AZ$yw9_ECm(A`c{M2j-&zDJj^Xx1L%)oycT!Iqeo +zirCGqNJGFR>Hq;|B7~FlEAg4z<@Cr$F;rmgP-#Vsj#Djh?9#nZi+72BxE@WN9}IGb +z)J=L+lsE&d*k#v1iJtS$ZX;CGfQ-=xGwu6SMi)!Pw20Wq#&CZAl%Og0w53JBN0Ejk +z+0nsjG}h9gsI+WwbH4Je0VORhvRi;=r=4c)f|vr=2kMB`ITnn%+p2r^8Vw=Ap7G=7 +z+#D&A{rT%3rTf&t?$ZdO}Q`HuUf&#xkvGBc9btLXeH +zSj&6+O7(%fAo@M=p#kFtqPn*Hzx8G6U9i-XA`CbqP-x20!+E0n>?zeZr#{j4T?+*h0XA4b@(O(nF~6vRFV$sT$!3(H_V@iD_ZicFTGin +zeY2wTrGV1^C|RQ*JBq}%^F=fRq(a6^?JR|0SD)SKO*y&92>yifoSh#sF+DSO+SZJ4 +zKQ;Fq*7q?k`v$Fn!L8o*5x^h^9UV^88|XsES4J>yYBci^?%`)j3$_Vx%i)<#;ggvj +zSnYVssRG8~e=kU@ +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 +z7(FUulwBge`qEVEaq457(eDW(J$$A)b|h&% +zuLgwi*J0#NH?;W{O`~KR9k!(qae=c(Bd_ENL4M$Bf|E-P+|ag`Gg}<}`ZR?&iC)n` +zAJ4=i1m6ce8Sc%X48uCr^I&^>I_6f*yNY0~0Yxih3-Yx}qO&=q%UQK*x5QV&_sH;>I*ovW><$Q)m#dKYCix7r`R=)CmSs0Q +z%j5K%h#xSaW-ec!bdJ|YW4*(RWL7fGJi_VL_q5K{QC3Cdb2oWpiwfy-z;u!-(J^KxNaZDqDuxQG!Uu!NI~n +zZ0<^rpQP;B`oZL}`6PM&6&)-9mY;q|B-@dPTdK+MTt +zU4tO!HOF_5G?UtvlwI(8=}PSGZWA?%mj0AbI +z%h3cpOp8$L$1&yA7u0a}X8H99Hkwm?zRVb*uvYL$6_O0e4QvI{Ziy1}3V)dNy3s!uSDW4#*`%wo~XmA +za)%Ge!3?^)8LqwRH)bK;6TbiaZBT0GCE9-L)qWt@tqA?-uR>lej}!+|p1h?giY&I` +z!8hv2>mC6tgzX{^g(Utk5kf-1^t}FSc|bl8Ew5D!$pT>165-rVV1U@G(p17)<|&=C;|217*h}j +zhg6MC!q8akZyxwV&YaIz(kxBKc8r%0EcE48s;Xb(G^qSaIPo%_AHa$&0q5LgWyUMi +zHOm{t;l>N#`h;tEP&bap+g+ +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 +zuof-<){KH+19={8n9(Jas|RG695FQ{#+q +zAi*~L#G5Vth&L^KNt9|Fmtkj%OoB~s1I4i9%^5Zu%tczsT+TnITrOOI9Gx`APtdlN +zd4SE{qv~PQ{Gx)y*lxIeI*z42ue3=h??Y88uHL%h7P_nmlO-9Fy(9)#bNb^385K2` +zl^CsYKb2hg3XceMGzCZmCn>(AxqpP)Rd18DqT}$1N`>izM^ll^@cY{oyP1Li{`jG8 +zW~hb{DQ>0ssX=b$s7$E?z>i0TSkT2T6`WFJNrvR?wc}?n)R6b^+Tjy)cU9_i>6VaH +zMd2(fdFdws#D7d4Gg5l!wl~_+pb29Mm+bv|<`g|HSC3jb3X@f1&jb}4xMH;O64jbs +zQW~a2$<-?&IwX+tV*=-WWN-tFZ}p~;IK|=;4CxqomEo-909e&sW6WY;?a4+vAt>cN +zSeSy2L;kjzimSB3DPjq`E`B9-Y0qOS7_arseAB8{k79#(%|ez+f*}6eX4omRQ|APb +zp1uIs;HVFMXaW7;0YlYtNBs)DT_`?DbdZ?cfc61Hnd&?lI@aL{XgA5fife%OBbN9c +zoUP3sM`&-Pb4r-R3O%iP&$x!HPx_NBRee+?v|6%ydJ9bD+JJdMul>+-lLp^>#(*wy +zjWG?(i|t3tf5zci93&NRJ>yVK7J0-L06z&Kw2`TU!+`4)r>yrS2fPq!I@JiMqF> +zUzYHz&zauYZnKLQ)9c05T|$7dNRV@Qh`so`r0R +zWqj>Tar2UU9tah3^?TK6Kx*iiQ}bjJt!_}184`#Pwrnd;EzMUiL5rj1f14?v$~t8I +zcG+m0^0J9ZxuEA6&{ob2xfN6j!Y*-^kWHTDnGrn>vjPtt&+|t?h@K0p#(Fzkp;Iyq +zTJ6$u8t+%N4s|_x +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 +z6aj3h#J&c0aodKh?$)TWn@_cO2uKwidOg0SgH +z#zj26&clz5}T`$*GaTG@#d-l-|(P! +zog_@FY4_XlmAU$y_pdYbJF4|Yw&twGFJ9%}oHluQ&(?=#ZnAv#OF)mR?;ft{p6_JS +z%uNAJt_Gr78hmDw-yA_NceuG+6G0w}Opttg!$KxoP+1{KUU}|Xbyt_3c(n>zoV_S` +z3_Q!Yp}e*oJ2iE5Mpe1w3I#5>3-sxb%bp*pvchycJHBx{C(c~q$B16cL^t7~v}_A| +zdl!+bt<5n6ITK`1Ssp*kV@O#PU*SdpM$qyd@xPT%gSUdePK(K;c4~M-_AHPNrFOwX +zo7@||3Fl!fK;$xeF#|dT5$;`F+duI^`h5MuY*F{ZxYo!@{M|{1$0ICX68LO*)N5y- +zju(&!=@_2jwI%C|fE|@20~c)(8U4j82Nl8M2HfVr>j^PVJXFk=8Wig;x{DsT1fqv- +z9T(9+jAVPZ2hA;N-b?r}tczS`oQw{g?w&QLJYzhe!yRzA3VOH3C&DK|lv +zm~ChczGdgWLDb#CA!i|BOXm6Y4GzIRqHA$ +zzPO^aGBeXH8{$`hKqVW1D9C33Hmu}OAu(?*>G?4nJoR=el$>-%#>7;6K%8?IWyShO +zkp!fkzVCZp!ZM+XKp>U>^jnd0Hjd0Z{87LTE +z?YP!3Bkq_x)ujjDdZ@}v_`xBnjquz^OIYqv2EFl{f3}$uddvEcS_QHNJ)Z9^ +z3nAIL5IPY83sPrQ=#)a+ld(3Z0$h&Z_iH@UZ8GRsmcSN^Dm4?vnK`hKOsf(Mi +zsr{6PVdQk7!k1L@3Gdi@+ky=)Y7tn=eLKY05Do$J@e?KbddK`iz_n#WaNCY#_Az3~ +z>Va+L^PwUgVxR=lxX3GHAP~T+zRcHJ3JDD0bEC0ge%oQuYlJOB`bF8jb=gl&@?ZTi +zQ_cmW2N)b`&A;ygZ6T41Ii8?L_|X2OjO%q@CC!FdP!2boryx2-GNveMr9M>lA?yJA +zPAv(M?#T!QUV%9@X&6X;zlCDhD^oNC)FTC{cFU>Xv`6dvd3Pjhs>Ltm*5py!9UMRR +zTm`s9qFshIXbaQB)i+X>4ZV<6}4^4 +zJx4+DC*5*0f7h|+=&39*G><}(L4aPr*D*60?>FVw((mKhNI!7o3x(%^*@wuwjO@7* +z2szH*2;t9$Qw4&X#%S__iU7Ps5j-D9OFAF`v!p^fZqVJj-Ju#UPVV*hmG_CE`MUCo +zTC{nTW_9vDqcA88wZkK*Pw8*jD*kdy^?A6DC&>#2SnEmqX*_wmyIcysnbhRjjNtTr +z3_N^u}Ae_fb +z2W8UtLdcT@lfW)O8!hy!ywwd2`S;vdh1=K7G1^VEPnDzIcGKOe5tIN7Q>owQ>SaDR +z`^V&K??f5uUrm^>AJF(&Ins+8kwKLvtCBY&lYK80%u(*jRJd% +zv@>NKU7TKb4AnT88?ocOdPI~G^Xd{Qz*rL7OpVbYtpbYn@gL%cR_Id#e@Uet+rxIPjDpO$E +z?TJ9dptTkyJRJ_h$zd)Jm(@JCpD9)3aR$lPspfJAM^#Yd?e;8LYojhf;==%_|08nK +z{2!5fhJG{n?Oo)KAt>5AF|-zKkhv@**!_XkBka+kZzs*5K7z+Q)xvuVc6I1iEV%Ks +zJ19FWMYxg+SFI+D%T3ZE1XFeCm_5t|yUCFqIsTol5f%vg1z(tD(--R4*E}JRoa@V0 +zQsG#;ahk*?t^HALz5E0Mr%FIArvQgZ4#+JgWGmN8tB~2%1z4M5SPQ_Yi!FN&G??@n +zSS{EI%}6v&WKN$V(n=~A_?PS}f&LAG+T%4efv@{x>CgkWN%ubLWP2lDOHl5sc+0Wf +zYJyJ@G9CD~IvNu*5ZxEw$(FFSkekbCpY`6W`BbNiu@rreIlep#VimOdd<;(S?6slY +z(SCiT(-(1~Eh3U*TUQHW#Qk7{&+%+JYn&pcz&m4YW!2MWMYP$OJ29%o5E5M#yobG; +z@I3zL+pJxVm(CvJz#MukYw03<>p8RCH1&-X-3KLUNqnjkk`A_KhY{GIPF7@im)CnP +z2B(+Ti@G%@yFwD +zk=yfKAnzk +zrsYt~TJIZWd9|$t)DWe331!z#R-7nHlmqb`tv~Un_o;kN$pvSpd&T8ztLiM`Q&o|A +zuXTJ-5(6$o`?`9a#g_`={TcOFt+U7mc;yNwxXBr(VMx*Xi0wDc<&zz{_|Kh*o%fBM +zMQB6l-R=Q>Sbu2b0L +zCI#n&EnN^FW^V``bSeyS!`GIGIsVXYTaitoq67@@Ydvzz714~-n!9RG{_q&1&TUNX +ze?;zEr+1NCV5^dw?6=4bUA>Lb&8NI^z~g63ikkvDW;tv#r6Onl=$!O(4m?0po&<7N +zcwOw*cOmc}ik~sy^_abQs=mOEgd@q{?;es$0JKX2T|%&Y8VPzG50u=3A_&sACRJk) +zE5I`}bp&1MI9D|VME0r6pARawV7VN;iA%%M%ff=8MhCCr{2_YgpeQWfDjiq(_yT(s$f!UkA|ReMvP +zErLv-7Yvv`Uqu~DGPT193E(7UzH}mc<)&?Ss)VCOGaX~i<}K~xicpO1y^}(i+*Hm8 +zl;Y8KxElkhfs6iI;|5uB`7ARWl$ixYnoK +z@{72V;bsdV2FRCwcjQB5{?>-Cs45fIV|Fq5lR^xI$*+Q2eINK+71fR^-F7E(-GUo8Vdz+^cX60K`?ZSg{8s +zq*QNNL*&N#5V>vMMQ)~li`*{)_=^}J>82B18`{4`Ztm=VMDFqbEplJ| +zx5$n6TjU1#5V_suKSXZR50QHdX#Sym78Cw8f#t?iF +z^}3ooelX1M#OvXGSa}aF*yU%6X>Cm@`OS`G&RE4LN%;AdV#6(7ywj$zQ(w2&4#?RO-#*#ntAivr3%?|A-Wn-q# +z10l!t>k<$E+zb0vGjF=5eEufzg;O38ccgeVNvns5Ry9(!bvzL?O;Lx^fOU})9x$O8 +z7$hYXL1w0E%+w~?QJ5z@2gor*g37=t-6Cw3bQ8MX^>8ob1ab9BFP1Yu>QP>P2d3H} +zSsR$teVDTqPEH>9vk3lJleJ-n7B%WDkpXeu_R9+ezv8L6WQ1=F5v+RcE>Ia_MS-Ba +z`SR9*=e{PegocJuBfz)}=lBXF1861u9AbncHHLGe^8G0@mViI^?%*WFIs1pmP4`FS +z*8MGV%YBI4h}C{ghJgnZ3$*OQ7{NTtTg&N_PO0>|p~JYYj(uU6DcE4J*a09?yJOq0 +z#q(@lha6g!Bv9>A7*8WU1g5xttE@iTH26eH50$jG4QrJ(mhXE#?l#<@{+r~c`XIS= +zNp2X<_T4T==lsW$=_K;Cv@zUd%XUz2OAH!HthE^;e+cE!2Ng~|&gbEjc|{HDh1{~E +z)->IamtyoSp36u=+!!9tfRX^o)uhyJaRDzoeimgGPkcJCn&POE>J27Z9Qhc#MI&hxfW&K|Y^}*wC9b#yZV&?60NveC=^GN#_m0c5?*8$sxaGz(n%o{!MG*q(p3`7V7rFd*HSt46a9 +z@*ndxl^-@#rqWncS4=4*zS_@mdKHb%-1Csdiou(d1pij-$?vv4NAJv)CchALD0{zTxRWZH`!}Nnl1q{ +z<9HK=I`%j>0onP5<=J){{a)b|0&Y5KEab1_-rjtZB*8xHwGv%1yc92aHSo@!WtQ;) +z+EdWHWr~EtnC07oZbTCWc#AecO|4X;Jl+}=TAy6{@2Vw!m}=L(NczRwzdKSI%(cr*Pk&Csj4weH`td +zkikH5daV1%h9B`Yw4fVudEx?wzRgTQ~hK1gIaKd0LcAG*3~r +zZuWk?F^bn9`xGcthA>vio_dY9+JVw>(Ex*lt*9-K^O;tlc;0Ajw55FQ6wVm9ri*@_R1l_4WeD`?BX61S&aX>{iKiLfUT#u +zewF!*kX0a0A2eB?z2%qDKbb$iXsEFFD;{G%U>wA9e4L}%DbXak-D?2&LX+J1v)Wt& +zKV>_^UQ(IG_Jmi1M>)5Ig2kh#*&7e@2|xqbuy*j0Bkd7%oLdT}pyO05H1ZO((U_}5 +z#Im@M^6i`8ofK$Sy +z?ohAENt1%g54`KepvnLV#0v+F7dn`cg|#MgnIEgPJ72X3Zfph-)nabXOW{uDAA)4* +zmWJT6;0gGAL#ts&B;y17ELXSIkt1wM+^v!82<|lqsAs>ii;|zo`aRUm3VsvW7xN4{ +zhoQ&T%6Vq7R~l_=!VnMBB>7&}qaezVbc-N{k-cjMPV`IYP&_vf7(|9P#@9ExU%%Cj +zyvO-q=PhzC%Sb~nn5E$ay`Ma6=6$Gn)`9`Vqz^Yg6`w*`So%S)32&z3Gv23J!&M_UU*Ws~BkyW8k +zPWl*xoZ=awoq5T+LrJGKBoBK;duydUU3ka6 +za>aN-Mli@fE+wx=OflqxcTWwrOmGgzTLqpYLjrmNwI^vR;#0ph!Q`e}WN}@_Rfw$N +zCh#Jw=5slsUCrKJ6<3X<&aAZ}ONMRv&{;`(S}O6iz#2lU<~wUc&-5AMyG+s4Dqz;E +znQ+V$gdh)D)i`Gdg89hl?=9dPEv6mEaeDTBZuj4yk3?F+W+-bsg9Uh)(x4O+n>CL# +ze-+eSzJVUHTy(TRa0anI++SJ(p4Deftc+c{wV&%sP4OFlrg#RQz<%O62LdZx;cs<% +znXkfrEk^f}Gv}``8kuk}aA4i-ovq~-qYiER`QxB5Sgu|J$sQ@^6ycSU)^S;Dh9j=xcr_xhVrOz0>gCNp8AhabrtR$YVjEP%WF$ +zRp6P)Gh2zlc&Tf*mJ4bkbM`D+$I5-BC^JTb?Ddl=)u0cOJK!O^rmg%r5O4yD5sd7E +z4B$E1ABo5QZ$?b4ao3ZXs +zQ5z`&4jB=s2CrqgVx^{65-xjA_9u)}QN&^O;UQQ}bEuR4WR22jwe58$q~aq@8C1dy +z)(#OnJ*8vQEi6J3D$P>*gLNVzGk2QnUUUu7?O6i;N-Jl2V +z4U8Cv1F#?loaIYiJht +zwWB5Q&+e;5(Yvw;Xp)M?+e1zRI?w|{tao{sK8hB4Etzpw4xz7ir6_p9^8NXG-#)j5 +ze?jb(8uLZ=1?awqD1@Fwqs8pJyb7A1fcK7f1#4JT&5U2u~&hn +z2n5qm#*nXaI;QbmE6HiKt~OH@xaY!>)usr$#j~zZzBbBbRUx#AZ#gec)g@?)$Bv%$?t>Y=EIMc;_L1n_vSm;A*x=u_Tr=a^7>A4A96xW$86+(klaJi +z=j1Qd8-izPHhC*QC}1$A`PBd~5)BDdiY0r6KS*wbcaq!eo#dYQO>&oi{UEs|{*c^y +z|020@F<02pgK|Bsc0GlA9s9(k?#9JKu3q{tSkNOFT~`w7*9V54FV}$>C&yvy3Dmsiw^1 +zIBX6;0iW@Q8O#G~v;;sYX=NMu%7zR3v231wJCSThl_{xut%kaDEQ0&s)eP^+>%|Aj +zo%=y@8%HOLeqY!gW}r$vND}QpnDh6bvbX{;0*Ut>Pqem28TwY-fE%PAkro@_Eu9|1 +zFWK~@$eSm(g@HvPo!6_+SIge#)oOx&XTxQ(Pz$uqv~S0tRtmVLM4jz1FqQrx~TY3f~W%;(uuGgoeMVJ>?KY6M4mwMBv8-KyDs(dHn2i>?(y#gQWeHX?7f#obci{_UG;A(#@Q!-Q@su +zFi!h%n2^rvz#_Vuq=|wc#s1}ZTWfuHY-m-=4gfv7Z7n$C=7EW^j90tEw4%s%tP}z@ +z_|Ix8x^lhCJ1-}QR-cO=T`?I1^ecAaN=Y!|vDK*Z*O5q*P~SM<183U7Si%ErErm{& +zSvmDAPg8*tk-&2b@{nUdfITS>w04p|n69{jPXgzT*8zBqP` +z6R?+D`v7W~OSz)ip418qB?ydFfh+Q@9~(uh6a>C-zvVey2>|L{ +zC1VSnG5b1~7PBZK)%dkg<|SIaituR94eeIJrGO*mc9m2}UcD3!zDZ78d;Ju%5BSI@)!ER#HZ0eht;H*j*IroAe16rr1qe_R^bj`t*dId% +zXO@cXF^hnw$l&7`&~kI00z_gC@MWcU3J)F7!Og@%co%3|kOJLnojxI~#V)N?I-AAf +zId9}^rP8^zJOnrv7OQ(8G+ETX)gca&wk!M;%Ke(4f$^E_B5k2OF~95v+88k=JiQ?v +z*m4sNz$fuSs1(t0!1wY-#lG~KnHyxyfRVA??+nE%d@C)irE+o%qqgB%{5+W0lJl2Tor-lu84w&=y?tVc-KD5vzAUdX?%+7p(%{Q{t11<6*V_7!tdZjss+DI`tC +z^8^`eW=48`Eq&s6fWRgG*Ylb;uACtV6krI +zM1zKW6~i8HuC +zizBr{`OTH8H6)SSo%H|-5NVKuzXXmT=@VHJ;y?2pYfjcI(gcw*D%<`J<2j7RtP2qYh(8yhhsfBiN2C?aAI~mhVGqeUf +zp@jZ~YJRKY*CcP5%j73L#&$FK#QxJ4(OCUmoYAUupW7f~KP)fZNUa82RG2=AHH8y2C(6igy)}?2`6RkR +zW_4$_ARJYIj=?%7*Cx52!dylj3-)^b5>93?c^e-mxCrqhP>(P81!kkW;|ynwL<%CR&dEf^zBYvytnnn=dp2FHM~!4}se~ +zRJ}>Ypyt-f>r+EzA5D1sOa1;2d!C#th*_3yS$?7hqY_0 +zy^m%3#CB)T<+N5e)_`~yHMUQp5m&v01W2lWOWSdabtjwMP!hXPj +zPE#HOJYlY%?5FIeY2ri+FE6}60Bt^}EpHP6vK{!iwlG9#E#)eQ1(1s&BC+giHKzxM@(?fGIBcKT +z_^rMlEyzoUrK@^s3q8vYKC-IC>&k^l1Cqo~p#7CLX|FfLXBzK%~*VNxa#Fq7zJpW%f<7Gw;ii&$;o!k1{6d$e(Q +zWwcPOK41%|-WOa5nCSDOl|3p&!kKRknb9ECw&u_DvVi!TJ@;A2UH>nMYY>I{x}$pdZVD?B?9S-E?2DZp2tp#zhIZIn(Hl}prl}LU5U3Jf?2j1#oi>}X}iO)$1PMHdzvUm%(q*Jp9s{7CUiB1y~gC=#UzSL +zA}>OP(YeFVABiq5+N_(Ndd|;%A4wimMNyKbYBHz$p?z1TU+4FHbAiW^EGj(|39k$U +z3=78a%z5OPLRz1`%2b^46Hw68RW914u3pvQ +zYX6tWP4Xdf-!`fhvowY(dl<{nJR3kok`3_!i&^ds27q7(OB+i;8eXh~-TQigs{r>& +zkoq$51%!N2wp8DT7w4x|!P}oPa2!QGD^W1{f#d8+ICQyEGarBEO}dfJbud@mr#Ge6 +z8wkLJkai*k>BSfDT3dwkTjW+FsyWQB???QX$o+Kd4Nw)Q@h_2EhBa37`)`q(O>yKO +zk^2r^-2?8)!oUxy#u>!2%Gn5IUY!s*D}&i$8#Y#=qla9O82$5I)aUY}g!yXVC?N)Y +zd(ND9k$W%(s`yvrWw4U2Yb?$>%yyVOZj48pi8sb~S<)9k)zUJhHlLvXh}=T3Zr8wM +z=lZXghxb4Gfit@KX7csqm2tZP&=8C-4z)9XWd>xv0kb7i6UJ5?41))IMT#t?TV`Ik +z@9ZA9LTOc*VS$8fa@(#@iIf^c*UQEan8iVJsDo7svTkNzc|a^~cmemuXAVMol<3N3 +zC_(#CaaE&xu?+dH{*TBl +z)B0QFPI?!)@igWs&aqxb{)k4nO=A1>HiGX4Z +zqZFJCgvNY65g!3bb~ZYAk+DAw(b@?jY_VbqBZZK)aZ4*43cPA5{vp`?s|zI+K=yN5 +zBA+3wva#tEA#XfdmK?=rQ5r~U560SQ6{*u27vff{@5F1rq9XXAZ12!$N`>P|l}d4z +z$JH93uXO7|pbQ39T^kEpC7PZuq(u^>iSvtKLo(UGfEwu04Z))*&mq>Wq;&Bn{0TAK +zoCznz}?ok6_*%tg)1GPuX&F|y*V8FG*SAh*1U+{IC5EeAH}7eH +zMLv#a0m<_#Dr<8EZ2z^=^KK4Hqr{S5!;rKoa+1!KuGG^3&>|+>NYF@Xz2&%{LOl!C +zJV|V+q+NsQsB(_y4aiIk3`8wZg)`W3`$!8IADhsPq7t=DCK} +zCGM$I10ML*SxGFc3PmCP@gPF_HlXAVJj1iROspDRv^uU`meYt1j-Njye*!<8cKBXQ +zEa;Ta4U~#lVFuWAYC3^xpfbY7KYUlC3AmH=e-}ns_UvVtML9QzHBGjn%EIUm&Cva`&U-3iy+d8w0 +zs>}5f%y7W^ID<=J#0DQ(^LA}MJhU5}Ie-YGZqMC^L+qIfqu#s?$o_jWcglQDP$O)we% +z;D@B(Lki}?LC{JGH!j*4VyBgXY@blo(x3SX{!PwW`4^b>-7Ce0b3Z6DdG3J@ivf+g +zQo8SNk$W*d{axhN`VhGrBw0R0?oioDNCY$j^0~!g>m=VVu=p|ogrfi<4ELFz1!g4V +z0W9bnzOydQ#bv*X+>$N}CTd$V{}H*p964*PB8F#`9Wm%XL~iz2tb%XP+n8mj7j@mS +zD%|uTN~TKnDBjc27|(lHi9@^09j)Rr| +zBXU1|a{VK6^Sq1P93LWgj&^&$Akyv^bnJvGB-Yz);L%TvSU{{`fDdzFG1e}$Y@)kVR#uBh^05%%ulD1Lp_Mv9lDO*A +zqILe-^L?!IWQ&~q%VITx^>Eb)fbJiW+f&uhNr25x58Hbug2r3+kI0RZtZ(>7`nSj(KcfHrB{#h7e~H|s6&uZ4|1EOAf}y^P+))@6`kY@iA7DO2Zoqeu +zoBfZ-t^O`@@APaVD?`nK#}pEUZ8y>>o|=HYUGIjpq;~uO&u@y_DROU4ZD+`V1K`Dj +zHQ--tQL>Xzet!z7YmCn7mJ?j=J$Zt!UT1EeEzlHDK@FhqDL_7R^J4WHIRf$*cfI^mL_K(Q@dG=l8#{0L(ef>w|29316{1Ca1=b)SEuS$ET +zhXAWfTL)5ny>a_A|acUfUxR9UdJpt$Hu +zml7@F7_|FYYi1hP!vQ0hQ<$WLo1Tspuf`iP+~g@iiSG&KlgalXVs5f{b+$Ag6-A;6 +z$BdaIaF?)0Hf#>8p(mb%Y)0Akp@QO-Z^7TyC;;qOoMHrm^<+d1`3kRX`f+r|^s}q$ +zS$^cp*#>AFL!%@sZ37U<-zVLSB6%xw_~nLxI_RFTE(OUhLXxb@Qx17dh!dRN#&k=F +zL3N+-gMps!q<8>LDuo=V4;Q9{EN-B%(v=+g$q_1ds%E(72S>9r%YxleLyX*D3PET# +zEQBN-q$OwfPhY)@-1sLfDF0LBMx0Wi{Sdh+|A^dpxAGTUcL~2mZq5HGa^L<-s@$~KQUeZZ4qP4C+hkNSo0HhPlWI9`Qx%ld52WOx=ZO(mVk} +z@!irx%7pA69UzRwOA0!p=sc4N2h!+>!fTguDdS-?{B(E14+h=m$L3JKF7@J8Aj|o- +zHtVxxx#V`r3o^_XK>XpiR@!dl2?wh_f37FS?~yMNWU2CYo;dWav0vFcfv}_TV7M_g +zsqH_-8lRi;)8vfd=!~pr2T|2A5$>xK)K6QD=~iFl&ElX9BC^0p_e54o?yd3vVY9P* +zJsnB0UZf-GSv(Cloxq3S9PtR(43UqetT8sU5mm}=B*;Y*EiIa;7U+%RQ3k)CI&-#R +z@9rq}eA8pI^`_r&in*GSHDQkGs2P7gwNl{4R~UIvF7Ebq5G|4|URJbBcC~^K!p0OD +zAX)PuHDMMDzxTLTdd=WlUdWg(=-ZbYC4t>1JCYvLq(giV!&7v43-GTi6-NqSo1dWK +zoO}+55G$#we07z;xrUk>Nu4|;+Ds!bjz|0t8hD-h7H47d25|+aNz=awc@@93@C(N| +zazlV8gtmnd9bsW)p{OC`6*n(sAgAZKBn0t~U40_s$=g$NN)cYAR)ilj +z2fKF)lB4TO$SZr5<>$DacQ_JHaGv;K8diMV2Umv$vKifWtF{yB#rxlPhS?6ZMEdc} +z<8Cc=fQcq%VBIY&*|AoK?D8RShO&n#WTHpp_4H_y!vI4^mdYQ +zmnV6u{9=LwR(IS1U$Vg^Ug@)eiu4-t@YZohUjPCr+C2Kn{^FPxfo<6#Op2NDY)qY%B9lD4to}RR2BCbd}X%Sk>=AkYxoNT!p +z8p((ct#TP5nFi+1tv$s2+^I-%+*SGni~&=GZ8e6UtHxuL39DdF_{cCD6is^pf$uH5 +zD5wyS$`(L`^=k<&IM38vTAF^%T3wAaZUK>BbjKR7haR2Dvc|KodyYsV +zQc*f0NCw7GK(WrYv-1TdU$^Rib*0xLg|_odv#2LgcsC|Z4rdF^2|r8T%|d;U+@M=% +zkL9E_&TDvhIT6#}RwREOCZ4^M+-7#tOw>INlnWjpVA-aRe6_BG^^G%PnwuQ9%F`#? +zYd40XN_($yq#V3l-b}P +zSnRMGc>rKI?Zdp2+^LxFB)8`xlbswM=*>IHZTyGi79sLHG6U9ht!(*Cav#f1EU#_7 +zliaaw>3V(kkmQfPIofDn6iPkt|B&1y?<9AJt6-J}cr{mneoP+Mx)oNV_r=0H$?YzF +zndIe|fAVe5RQT|KH$9-o)R9*;{t!qOq&y18UkW`i+ffM+p^!W~P(J&PYMe-A{%Kg^ +zExPH0lMOnw4QHCHS*_TDlk-&oRajp$K6p>!PaE5KPVYLhY* +zdbsoZZibiG-?8yiQ-pZx$hY`9=^sDovPi&gvWP8*@NCEFm&+MlQ7Kz(plKHVP2CLs +zhI-;azUehyX#YW<)_94ob%_a;Fy(DpucBIw$K@zR?p(YzS=rKD)2k18JDc3tAPwkT +zkK5s=QM&KMQJO@6)8-USrq78KUPd4RGRni=gXvO-E8lYIG-Q@B@LT)fEwzol>lCFJ +z0)JMv_y*RLQ2hb)*o!1@y*t)|E^&rqHw6p35tV%o|MOCk&Y&4BHQRlo +zZ2;@)VWadks@!!{QQpH%m-H?S@D&nmF*TYwd}kCk^f^*BB>;az631qJnp-iyyXl)c +zU3Nv+($KIBTu2GOn*rrFvO91Az=JOWjkqZyu9(u!%)*ccT7!6+`a(Yk5VIY46b4xq +z3ZX4`w_l!;Gy9>+sKCSQDMe{Kwe$9nr$-Qj2TFJsxv2@O-bL;vpSOqG5Z!36vHZDkx($fzZaIpr{1GFcyLtm3LE)%~Ac@25 +zBXc{?b|oet3ePkByomU1f`5tJpgoq+wVF!|_2<$V?hb!M?w?(=^$mb6zeVm1pz$df +zof#WV^@QWxm?N=x7%Mk8b8~vBAt~e6aMgINI(~aw7_0l^71cT%l9=&yQ)6(zD@es* +zkZl5?vMrM*#{cN+|QzSuGVxL+V2d>WjzFhR&nH)S**h(IW!9i1rFEo~vab +zDv;J?8Q7?A)?=K30~{MF(NBC#0=vFj$l!-O#Su0Vg88#R7TzsN@y$xo6aIS{ +z?LtUj^|pl)6SRE=jKOxLL(ojCGKKG!Ni(!ElO+`iq#Zs;?x8KNI@s8lSt5B4PsFVT +zy?_VB3h;6Qx_TL}i8rS^tWn3LTjj}wZ#-Ugw(Qz33Kppzze(<=hGH}1^JbFYBzM5C +z#t)KPwYjgBtt#M{&d(BC1s;rTIQrajx?j~0f>O_LB8>p3sY2!JKy%KgS#+Nih1|h( +zeFzvcnCR>ipbY*!d1G&g_&~poJcw27VcF<oL! +z>M-g_6^~%rpBCgQt~V9b56D-ksiz3j0iMq0!t`QzzSiE%lEQuS#>BAAgg=`|{hXO; +z;O{H2ip?RFHO&!7AvorQ<&Xec&$#NF9!-uarxKN)RBCgyWKW6iKIa<255nly098sZ +zw}H>u1%MK+?bw`B7!8j +ziUZi)8Ndqo3bQsRStYHOcM7Y;4FKH=f^*x>|N2}V}X0`)Yb`PF7i!e`vh>BoRwZJ6gX5TSq- +zOHn;iUHJL}V=**(;GGG1Z(yi0f`(u~!Bgx}b3~SF=YqLrjx7H=^o{H5_x?1IxzEF? +zUP~n}5eCdVL?vzqrZFR%LIdcW!a_`-idhLxGGlIzDWTy5=GkR38TA>6-VDEVnT3p{ +zBjZxJwd!aftA#Fvnh=Rc@@p&YF;L^?X~_Flar@hJthO)kIa| +z_xMH`H;I;F@1TNQv~u^H9f@?*e+vqf@}b +ziV0b(Tov>{U(5ncvigtGvx8W|&;CEU?t#4zZowXQY&Ev+G`5|_wv)zoW81cE+h$`l +zNt66y+j-MIXJ*cscm7{uU)SDiuX~lpJce}j_C+ASdvEr;L?;oiW&@cN>E@lTQ(>^{ +zdbI})#WShDHE3gWr8o;8AR`WB7#oX0QVxzpH;ry8Ga%Lq*r;*sq$zl|iFh)A^>OEjI>^r<&d_y4cG03 +zQOkU2Vq@h8#YXS}SFvu{M423%#IFDW%Vf0iR$U*gLIU3wHTN#S)77^&ryz~vWKa_@ +z;{$V{TBDmaD@>0ku+U(RUSqLY^2*~0j5teKM!%ak6uUXa-&=yK>g1=$4uLKPX6)IJ +zifd^P8%;J5$>K(aRarpUbqI%`d>x!wNDPpa8KoT~mQ*Ks&pq_3E!pJ28*feMwz~>% +zzTidc2Nh*f0u}ePcj=BFs-ROu7$mWL8;ft0PvS*GGgQRQ%)<64)Mm9a3~JT1+_gC> +zVr!#EQoNfst1G$VxgSZ)97S-7r*8;W0K*{&_)QKWk_M71PnQ?F`$0N(ND*cmjQ0}_ +zygwKR(RU9U%5*tz-;Eh6)Nr4@vv)sRQ=bzWjhE-)P+8C+eQ!420q4_BG2F^SHRF@fotq5fU7do1|9^Zewjw>8>rD3ax? +zDtVv?l)yI&W4#ue!vkMPTW;}pHZF1?SZVspeEq6Sg*NNaTJks~t^n)ySx}3B*QFbg +zW;T@~?gJGy|H+u9!V)bL8YUeY!|if*bF3Z?N?qw+#rX8=Q(9m(g6Oa_;$x1XN;$X!V9gylJgCsi5Je +zkVTZ50ks@RVMw~SONq{5;^dbJ^khq(dxiIpJ@f%Q8OM;c;{@?Bkge6a +z^JM;EHUe4*;Y)star0Dk3iTfnOT8@1xa4(#j-y@vKjQG7GkPUHQz1R98xjKIYRKP~ +z2p*j1-_LnPO0z6>F~G{?ccHTKDhGKrGCirG_4XHU5plUv&F&{r?4V-HE}%WZ?1OKj +z3pZdb5HnAdP+%@FKHQ&y=t>6ci*fS>$f&-nJtuY*ttb>dHje|_V2hA^Nz!65E46#W +zxW+r?kPKB8f@Y1a23c_?(hzX5N^~-S3V*%DHa-dL`l*Q{y(7Y+vUZ>ZI}G`q>VpdQ +zKt{9%yc|WDIBvB2eD13oYT+bnj5v924HIt=eN09soC-Qd0{9Emz{lCk%)4=vbYheT +z;b}rDUrm|e8mz!e>+{OkWoimia7($fU>YFZXbc$|=G*-g +z(gD1;X;F5v3AlRX0y?7?C@)mD@>i`;LcC^T=kzmusRW~>EXv176&vs~^g}$8^dZzl +z4Z`vd&neJkN?F4+AdT4nnKU+7!^VQcfDjwiOTY=-M42^-J +z36I$xB(gx(XgvN=(`VW;wJD6Te9eR}CTE}#9se^8KK_(c9MTeo-G62(W9p=4=`)2z +zE(hS;Ro!)^iY`t2PfYuvwiKpR4~&ad35CEGZ(8xCpO_66lGLLyEr{(~K|6QyC;?N7 +z>@M{O(I8*0wA(NgqgR(yBhU-dGK|hcDk?KF&tQ{WkRnR5Yl;pzFs&d~#8WA|)Ul~_RQzbu143oW?Z{SLV4nqf9G^WAUW7>k-d*8Sl$ +z<`hZx{gF8G`xq}jF2NOlfwN-q3EkW4(9rK~Z!O~P(9Bt7rr1@ +z)QX5@7C$r>%PM-4Bs+Osw8ZQ_wf(xn=MhKGz*RHuSf=FTW}Mw`3)di)bmzKkmdULK +zrvr9SM|TEZdG(TAIk~8d=e|x0@IFcgC362F<*;9L#tf9bAR8EkSY2S^0IRnY92iFU +zBeywLr9s#89PU)MX!}+C@rBDTD;gHETjiO3M)nGPkOBxXCw2 +zOyDR^H?4KxH`<8sxyS;>?IRNV1Hz3*H=W4I2L88$C-)e2QUDaxr*jEDOnlmU?SbFs~ +ztbeDu$81dd(-sCM5LnY*kzCqIngs0dt};ElP$Wd|2^?MW0S&I+@YH2qB>B_2spCuW +z4)4ax+EkU18LP}HBWD1;q +zm#+bZD2J32^M~+3RCg6*hg}78<(6AC~X#EH1b1p3J#!3rQl``;E}pF*2`2mJ{Y7V$^1Lw(4fd><|V +zf>DQ=V7m*)Y8o1$QKw=Z0doRCEG^o!LeZXuZ(r86FB_}-=oqt-Y1-<93HP(A3CP)P +z*1Sf|B4*!ZVi}eVzU&`#1dhqI0C0JDpgWT`V`&iwHZnhNs9hJZ* +z&=oRHiOcwz_|S$H+R)q&P*`z)d_iVkQP^k=e&lkn&62o|H_1vHkJ}1C8S4Qys-A8` +zV1h9)0Nl{$%yqh2mrYW&Zugzfk7dZZ4ekcLlhln40d(bZT1b%$E*tZ++D?uI| +zJB^E41Z5~)x^5vuQt7%iMR~(&m?aJcmw*frSEHH^br&S!a8cJ0D&-XkMK>CF36N=z +znMXIq(L+#zQ?ade)w@zeQ&?0oZOvItGF-3j;cy&nSb2-;=oWd$F!G|!;BvarC4J0@ +zZNs?6@+aa#O0|Gr1F-s09EbxC&dTh%3imV;$krJWKWQ0#ZZ*X){W(={MjmLim22T!_A2~wTDtaYGL7K|=RNV9;InC1txT>n^6vGYeH_>H#9 +zT`^$zo0QCcb@vBWHcuGLE#(yqyy*pDf7KM77qv-N@&=P~Q~sj|i#fc$e=@vc{cOWa +z;AmfBi4&weN;Hh*Z~comMCgdi+)~fA^9v>#)r*vsak1}vJ&}H}zEtXkIa^Vc>huW0 +zvbv4yEwI_KbirUv)f9*>nMFd!kQG%w +z?w(;~n-wl=%KS-RQk^oRwn7n}>(Ffr_XWVsWA$x3n;1QN5 +z#>J-En4ZB4fVpI%W0N#O6&qqwwXt1T4-^#+oBX|t!i+yU28JjL9s971kE{gT7Q4?k +zz#(;X28c0#Wr%=SPw}RQ-6@wn)%0m30YXp*N)e0~{sH4|0!pXi+qERkE#bU?n0ZT#qS#6P)rI>NDZCT` +z--JN0BJI|8XPU|MYnv=&uoWp0gy!i_4mD`{n6XQyJ+QUKDhCC`+s+wFek&K_6&7F~ +z049i3jdzl?NA9j}sDm#TgnxavEzuyz-MLqqbWLN@CcUc2VOSHhcU;qW5_PR&J_0%n +z5ZRaOGVZdtSJn!G!VVHmA&y8Mv7KYX`Nk^}#E2VW{Ge~fyP_>xnm^D~e=aoIw2<1z +z(xp@MKHD%>CZBD4fzk#Uh*?6az_p!xb6`2qUcbGg +zcF&)evol2b6*y@ZK&p#Q5%Xx+jCE$2p(2)1K#2{kdyN2CcinB@HHVI&1VWLP!N5pu +z4^Ezx%v;sndaiFrh6L`N!%Q1BP^Q{Fg_3KoW=y~whOs!-2wC9+`W{|c`B=B{02|+! +zKkR;`2gDbE;*>wi9?NXlI%Ut~Fw+b@D-(zm#=$IINriD)XQDtd29YB1xFyL4b024V +zGtogd)&8TBdg|f;d2jjUtD4q3iq#h|nwrsY>H=K(C5Yn{qP~uNP%hN~la29+bTaM0T){%%G2Hev +z^VW`(-UVw^q)pKtP`($J%h8N5Waxz1z>&B3bZ8HDX|(QAvvO7p2AVsl?l21H6yBFD +z5RGF@4atoeG^bdqc9{Ph7|rm0;W-N`GEgYTDWrayX#u>p6cRGnCb(tsfq<$^Oq8gu +z-`#03mLGj|%jE>Hi9d7H+N}GujXZfdqjh^Zd;p$Pb__G9K0KjRgNRon5sPYzud?Z3 +z)D~VKK=$!NW*8;kwOAZyoWZdn92w}ZUEf9N6Ti(O+^!?|1ryq-^>09Hc>O@jU#RIJ +zLG-UQxy*|c=@Yt1p_0SakA~Vj`fV}GC7g&Q1;4_NZ(>x`jehU(+0f@lhm&F^$DLF| +z!gd5<+A~hf0W-=!O?p>*L#-2M1FulD6Llh+IPSal@Qw5(e?A3vh^Ft`L6M28%Zja{z}PrA0=B +z&TEN%S9Gz4yA0s{NN4k(WbQmq4>M;6E#BhmPgEP2eBS-K+GBI}tDP~ct6Q4jV~L;h +z{F>bRCgtO-#HbIyFE)~$h3<_bA^Ha|y3bS22NSo0n$m+C=1bv5Ox}V`lg<{~YSr}8 +zQvAb5JL`S<&~+V&-nJ1Fvy;~Q(#*4K*am|0jgs2QQqhe+E@rh)oYQ^@UzW#PUd_Il +z`R)|oQ8U-?0K|rFy^z;6f~~WdqmXDE8Rwgc7YBKZ4aTtsb)FLN#i|*g_BBibf+$zl +z&xiRiz57)yw-%KK%u@wh7wdpN_!4n91L|x&ACVJMe82(>{(j7<${zmNCd3G0U(+67 +zjy<1&i465Mp>AS4pl;U@X)+76a-`W@;Rzib!|3!WKIMdK>|zjSiEqTG19J~h2eDp{ +zbh9Tfe|CB$_q2Vdy}B+wJa&t56TzT&ClQlj`_hUvKeO=Y_+`QopwS|(?dq*6%h50R +z%9kR9u`r!3xJxNecl!?Qy>@O$Y}I?;TZ!SfQeoSnw_|kY_-=E(n;WZRo{?Y;`wJ>) +zqGv;SJ<$`N;9;I&y)=DCTxe9O`#TSQUh)>&!=?IhWK)v5(8u*P`6>fHDxW&T(9H#3 +zvX|qv0K};2TJl;yW7bdJ)Gq`r3|?!yedQeJg{_#G^FDwUwiy2ROP^PYoJc*hwS|(m +z0L+1#^0f-sM+BEjf^6L1M0v31>IOqJ!W29+Ubv6H(#X#mU^=*~p}D+7B?^^y_~=(; +z^jvg&bkTd#tv1?Etf+ +z^_WrQ7EaOM&SGL;Dsg3ZzI*DRfMKDX%NwMFjuk_DCX4}hGB9n}WdXDp;1+d(mL=RI +z-@VG@a64W*It|Z=Xj4dBSJ=;K=80eoEa4^i%ALlH&x0rCsFCT7yf5_HTkghcxwf3sm~BJ*L+ +zGkGO*^xJ+Lx_HAooLdXY`vsQi1%$MRR@O@njO-?>a7l5w{>)7#KAu9612Rp+gcqP1 +z37D`N9bA%h&%Z(31XmfCM^;^^fPq)0Gx_2#)N|_Ei(d-&>kcpQ#JIADUF^X=xZuf; +zmqXq10rV{X`k=P!eM6g{i7PkVIv&2HXrwgVL+cg%=WJV98M+O9g%`zx%d@UlJu~0g +zrPX2GBRspvHUU`Im$l&bZ81Zb_f&j@N`YUcIY^w#**#WO@U3v>2+K>b%@5|hm1lij +zKcW|dOu*tH1F%;=bRQ)$_uwmCZc4TJcdmJlf}@^xgyn1E +z!)s*lNAEnov!U!GXHIYNuq`+FbU7A5p83M?P%+#YpVKA2ygrR3v2G2bdh_}5gdu&} +z+zZn$9;{L|`Q)&w-Hm14m?g}D(E*E7r6oXXs=iVIRLSRr99J;=jFlSCs+m9seBq_{ +zdM8_1Q|Dn9P5uOthMQ47W +zB$By?7`29?Y9Y<{-FGP6wJ*y7T +z?y>xqw|)D4&N1;y$u-G({x!}B4&;{uk#ld#-gAV(tbS(S^uBp%n*edXb`tQ(^%DSe +z6s(hdf?w`A1SAgt4F@94EVbF48x*?l*CQAQs(Mwy;>fUxqIe3hvva_eUbH9J$+zB`mY|?Am4@aupJ(zBg3W$6) +zCUarlZ+mC{z(LcVM!-X85`IabIU4G`TQJK*b(0U}khI67b%`Os)P +z2d-^Z-Oy~C=0ZZ4smYx+qtI8-6wsrc=YWigh-s+~cVMSz0U;c;Obn&$C7XlL!{O{4 +z^dkdKLdobkC+5hzM~;w*ltddE0KOwWoQ73wD!j=qdQqVoJq#RSyBIAMLbxhd>z&ft +zc5PW6jbG9XMqo)H9b~tI5bLj!=%H@`*X^zzNhX|(%A9B^gim){o|)+Z+gm%UzPht! +zt3cu01bt+ZgFn^JsOZwjC^rY_m$LpzqS +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 +z2-MbQaa)kJ$Lnci3T@Oaqpeq=a@w}xY2p@ +zadwxOutcoc>m%n7uXsJb&s&jI4))61bA;hAdK+B$dQ$^02pf`XFpIQspZj-c*zhyi|$U;SdFELS>I1qb^m{s33h1CLPNm_MC9j6OlLWXV-JsddTUR{BT{pyk +zc*B<^rp0yY4h_}#H+3@jY$SJs#7dmw7B5-U8;ClKixd*(f%p?W=9-Anch>1_1n{%dc`8@L^9MOwu|mS!=uaQDpR~ZF9(K(`h&#{%%|P +z)V7NtE77`mz3@*C#Z#u!U2;`NCr40;69AvuHsw91!5?j#k-#jo- +zdszH%aj5j&s>D{G%md5rA8q@avJJ7gc)8$Q0W)JVwe9umr?w62=0XSKhw3t#F~pRG +z^u79U&LQiMwhiO@N87HQiwpSFw#z=XZIPVvKiW1dhOtbXuPfJ>8IT@jYk5{1Qsha3 +zXMY_jE|x&~r?%}VW_oW1p?snkdwCGuWAye%+s@;k?V!@$0#yg(Rt+$D3L75EOaP(F +z!rTAVw%hu-Kmu0zBj&v77eRYJwe6IlQK)TWzfW!3jSOZ{A7d)mf5(?X8OuaP;8WX1 +z$*9=9{YTp_`_#4_{%G4HnUo=dQ=i&)9*>qXp`sOI;?LP?U<5a!274Rt*ZA&+a|0jR?f3K`qZ}lgywX$I4Pl~y}f%^ +zNze5;>zzKe?J|hMFJFd!{MEMY5I(hSHqq}@zcv0#+urGznEKSV!F3MYKDBL^zuNXv +z*k5gX;7qV>E!2tJ=TqDE$JHs51;N}1!M6GNkbtEe +z+W=1-{Xg2a;itC!I0rO@k@uLEHS-LcuKY*a<`H5^`$yZ(w%PfkZKJPP1L3YYWk#%j +zYTJD~f3!wyM4tADiZX+{XRT}jHn+V(u>4@f4+0u|x$e`(v}pW1e0UZIgn +z>_cf-MlkTGC}5Sijd|F~tv!Koj%3BhoOd^j81D7i(u%Q8_F`-SM6kgQr%uvAHFS8{ +zzp7Mjk8pGUR#Ts?jSSi&acHdjcPrL`2dR`)3`jp+B1FTAFOa-f50(0rE-k58T+VDI6n(;m|- +z08ZH%fnveo`#hZ_m#GFhn7k(gkpP#h%o6N}W=a8*6)`7GEiw;^GGtfm^k!u)7?_A5 +zLvq%D!H)L+u5UHVZbyjmVmHIi$aS8mg%($2rO|kND;THs2ul8tT1Re2S**RPXxU6} +zWC}!#d8uegL#2CX63$mRJTN`gllkXnMb->z#QTC@gwI&O|61;U8cQ}Mpx230S6Y^Icy9JuhB>5ttB_ww@VU9tzFI01Z8$FQ+ZH=L>Xn`A +zToeV(#1n~Dp&4cXvKrQ4(4KjD+_~zv8dM&aU@e`m06l2_@s!e~~uOU8x%iPTw#u{qICkDJT?VT1zh+~SDy3>jRJFV=k%!A8;~dKm(EOw +zUrm_7MAZwKc4k|mr7h{ro*Gq28KNQ#REGX#^qf|`D-eRwO4Z*&lvi6s8U5H;eD1QV +z=bcaqb0^RWp$J_X6F7xu!_5na(^_Kb2rgoA6)fLt_@S#~*MaCxk{>og9%-Ze%Yv&- +zAP`S!y~#i2n1p<4!Xrh#6`78ujs65_wJw*{bu%8Io*)p408w77y=5F>o56B{^9{3( +zk?_L8@?@XD{R^d01SBiQEt75DlA!L|jF2=YmJ!4@Mn62E;mDHB)GQHYuP##*Y$u$q +z+|77WFF%ewj&LG#vw-Q0LtuLLJn!&ZtHjh<+>}T!k)#*K$tTg>oDMCwuA8P>1SYn=?XWw9V+xXCxG*ios3I +zjXJ#J;^HashQ(fL(1rCKHu5r_;uI|w7LbZPd(0z5{GHH%C&9^D%#kM$AA*veDn8-qIx=wWx=CD_j*a+n=0xZ?B~#8xtH;fM`WFvo3k%K7w% +zAHOV>bl3_=Jnx +z1%Dahlx2ai8Mfc-RBN1ZX9Ji5E7$atVW3|rVPSOZhF_;1x!l-B4YyeeJ6^k%IAupm@y684O|u#D2qNx*_t)z^a^#Hew|yD_pDB|z=Q+41I9O6;DPlpA!?r;HTdi$9 +z3N83~$QS*TZ4=3p>G}opQC=u3|2=oygfjZCKV956a7SnHFt1wMXyuKwxDRIJ%0(^p(bKB+V2Fel@ccj%JqDU3Gp7pkSwbI?GJWG1S~?|0yqQaJ-las +zGLkHQ;?aphk88}7Tjo=fLi*IUqyJ6YCeE|(`P8=SreP8wi(x*sZ42FhY1@uOf3)p_ +zZZW8`KiYQdKiam;)<4>|%%`>uCHOree(&G4ZHaxtaP6jGxW@m`wr}k`3DrpSB|f$7 +zSqv_U*O|Boahv5o+IIDSYTM)gPi-56{2y&Q$ogyaA8mW1oo!I=KeTP*|J1f2`{&I6 +z(YC>khsT>DfCN9aZDpB%Y1_Lp|6AKmX8d<;`|*FYZD9p@od4FggD2Qs%09JipZ~3G +zho@h6{?)cg{pS6FmLH(V(PxI~zxV!^wypg1|JSx3|7zRD&C)D?wQUx|Kic-jzqIY) +z5*!bof77=2{%YI$B6dN2a{x%2Lz91L+lzm+ZPib0Te{DF`j56fUb_VCEgzyG6cE4NuRYX8x;-ToiicJv=@n{xDzw(a5c +zpW5~okT*fX@ju!&?7wT`8hkQhif3$6To;m4HZCm>vZCjAQ_-ElJSrO(RZF{z3H8rZ= +z)044SPVLFt^8ePhDL=JsjGv#{c4F$MwjGl{zVTPvuK%lTLu7qw+i(?usDHHW +zTV)`&|IxPf`@&`m{zu!!{y(&BA^Y>c+IH#Pe`?!_=bzd(5zZfNo9mCZEd#wUht={| +z+pgUBqiwJL(Y7rd%fWU&we5kMY6zEq)3zTiC}{p$+eUQw4{dwnkG5S(_o;2GfBBcT +z9S9u;`(N7j=!S +z%c<6pDG>9|?xagq{OY1V%mY_%&*`faZ-~YilWqjc_g=!mwOf8f(F~DPGcsl@U*)^$ +zYzvl8Xr8=<+UD=|l`UE77S-JnVfW~4047ve&1 +zuYjS_dXP<^roTTtlq!~7vu^vRXZrxToK&v2FSMg>)rOqGZSI7-%K|4{<~i3-kUrZe +z)D~alS=Liwgq`i!bRtu@sG;|Lzb(Mz(=6H4&(@k3yYK-aN1ME#&zwd9<28XO3?whW +z%B#qBvUQZq*?H9(o1_TrS*6PqaD_z~)PtN^i&=u*V94bH$=ioTbOeJmsX)Jr<$HwS +zrJ~zls#dTV5xJkD~2cMq3f`L +z1mE&h%L2o)hF>(nnEcUeBeLPvP5|uFBEq6bd@CAEUob`rw6}9#cf=!w9%(k +zEpy!kU~2VDUygNTcU@2<>*SN@!<|hFj1fUn%N*1~gww&9`^I0pgYhPj`r2kxfpf@f+cLVsq~nZ%bhtu)r(ed?%4!}mlSQKm)HPfa5@lkDQ2Lo!uZvyWy^ALk +z!$2a)0p|ya>VLy7;pL)>F~3GIE@Z<_>JfqZ()@-$Oi`?~_wBe@vGt4dRBXcc5ZwGO +z_(e5!P_4riV-$FurM$0r5@5vNN5oqAGyzzPUe@VR5v6Y|K{1L&BpHX+$aY*0rABGq-Q<8{KilF(~9&gC|R5HuIkfJX_u8#$!goX?2hT^2F5 +zo6|i*o#pJ~jlTe?qvM*q!Yhf}e1A3BsiF@~O4mN$e;_Vy;rT$tVVY&726hP3u+*v2 +zbHb}wEz{h%DvH)}M~#swy)djOK=xD0hx%PyIRVAGHb~u5YS@m$2wJs}uFDXUVP$G( +zm#KuSw2=wYa*su=X-CBjS87)G0`~_=epf; +z+SctgOPV$ddOWzD1)4rnx5rMnSjdvASJwPWj*uUUc%(TiB7H0Rk%BKQTX_sBLPb|oyVtR)DrZMp59a@q7V_?km +zbtI~^>tnU#_YZb^EY`(~XS$ho=GcMg)HP>H<<$c})=-0%>?J4dPFf^{8ZW|Lt%VTE +z`-SWT-N<}%QvF)Nse=O7#u1H)nuRpsA-HWD9S#vpXzpL!CU11;iqmw4i@NSA6WysG +z1<=`ZtND^;rT-mtJ +z^ej)bVIk>E(!^B~O+( +z<@|1KF9H~*1_|VBFYO}ewJhwf*vLI)bnTpnPeiVAA-brVHb8YR36#IuSsKtI8%c5>CHV}L%Y!Xee&4!sKOFvQbVgCy!q-I +z=Be)U`t;^`C17?L&qAfHtRjBt4=#fB>Yj4YbC6r|0VGQX3u|2AULR;cQ1FHAAf2K! +z`>~ZXyL_1@9is2I>rBRdc$~$m&{;wuljfekN3!3^?38QCFn)iN>sD`V;ema>?lFck +z#iCFy%*>RD_ORahFYY1?cMi+B;X#*J&@8^!#-eBdDo!itoQGvVR0Ge!{^`gR^xZ;7 +zK8r4gb!vEgQtsQ7NO>}n%Y#DiOykMJ&GLwzONNf-%&QvY$M+p`9)}p;BP1GnnI=8! +z=Z{nBR!Bh!E)H|+Q0Gp%Q!v~t +z*5FGbg|HK2(wX1u;%Tm5$`#AHzu7@LtK>^?Itgbs<_U+w!3X2BpWIdu(#oI|PHE%Lw~x +z4O!+dS(0q7uR6$fhEXdz4jNc|uC9wpn7ogcu;tkn7J!;g{L^%JI31Q8+=&IQwO%NQU>__m+^>uY$)s)7R~yjgAP%rwoUj;>86VarAU^c|*e% +zB#fdMkhcz*JP*pP5<6*hCw2&QvdDvu`-8I|v5w7df~VUXM=JjexmXjQ6t$rtDNmp9 +zAV)r^@r=d^j;J_gvhV&jE=cGkK}p447owxOr?7fZ<)x%p=rnnNYO)39C9itI{dwj^ +zg{z%5r?-!Hh^Yn!z^U>Ti34 +zx%d~fhvZb0Y$TY$fLBqu%)k^F(&jXEsq7kO`I05))WIrTMhjtvnn62hNizsj7NfYi +zcS=y%YAN0I=S9W|EyoCR{o(fovV*44cl}F6l;o;mQgXwb@?gqiuKFoofk5%r}UA +z@;Tn^wGIdLZ$Lx!L|*t|bK0T4nXnhs;a$)4U} +z&YHHpAYmn~$&o7Js3@d5_lBP6AB_bSV5khqq_L9OXK^qlwqJm@XYGLkKp`OSn9b6O +zH#Pf$wLcdg&!G8-{aTO7DyIpbmcGkT%jH&&yl +z_Vw}{=dr<{x7{~9V2LD3_q|+xnt{Gr&=n}cjS(lN=8 +zC5GgiN%CYQG<;#w=qscKOG8|p`sRYK7}VV*U)7titg@r@OD8EU5l3ER5-F;jY5D?b +zD1R7;1{u(X_ReQ`b@QqVjvEpRnJ>W_VsrHo0^vxaBKC?#S(~2YZ8WeMISZ^TAEG;)CP!)d4IPL!%Z$1 +zuEY);CRt|W9RRCBuk0A>E=o=aCYQCl3k!k$viq9Sq-OLyD#4^VYeXMq6M)MP3OnvLO-k3Kq>S~?oaL)Qy0c$0xO$TDJ4$*#60vXgBos26y}r2r)O +zn>THY>?Un_icynL0<>j0{Pm2o +zO`N`%bfF}%x@}M9{)6@ni|s}w|R +z_*?J{MRC@T?B1hzoPwiGR9iR~Z22V0gPiRr!!wm@DyAf{Dz{|@=CpIAnvk%-y+)6% +zch2Dr2UFQ)95~R8j3pcg6Kw$o)YH~1uxq?%tS{L;C?Hi@P@n^}#8NuTqQ-^zk1AD? +zvUn&A9~3)^-|C346WdI0?vxLLVbMv73%jCxR_plrX^n$4B5Gr$VQ^epZU8>t)UAjQ +z?F}gR^M0FaX(h*~b9}oge*=V%1HuC8x +zLzmu|L=@gqXBm8V(&Sg#sjzEGZ#yby2GO +zP=(TFm~b&MQx&oBjK{v$J1^a|*A>1858%2Oy`hMg9+D`KNfZ)qM;*+gpd(LchPyh@ +zNU?x#Q%G(VRf5$EKe+ezCpwBXdgRVNS7E9Ux0-a-1g=GYeEQJY6^&PD>00qgW8S=~ +zt!vQ;(591#Rl! +zEGE^1jD#e%a@bW9=b>&l*o>uxy#XK!Qs%X&58wsl=K% +z@z)-k`KIS>Or*!sGO3W{0K59r(WK~=-m*w4W;ci=iNZ_&jDi&X8B-}MnHNdj`%b8I6uAIx#s4Q-pQ3ey(q+IrsC`3);#cwK^ +ziD+wgDp$Cf@0=W{U|$?!-|g36e@Zt@Kwrq#S`vZ8C@f2HQ-mPn_bUij6JkzXpuZH8 +z@3bT`S_#_zaOHrn2^c0u+iyh&kaN~M6-0qjHfP_RWJ)=eI%i3AFSdbHvxJzi3LfI! +zVvfPpOwnO33fw7xd;<3~O%OPLjJ{@rt3mD*HYInF?U0AHBbtL#=8Pn=2RbZI#HlQXr&o +zdz#dWNj~BUc9`iR`1g{)s0YMVP~WhYcVzLsT^BA0UMcwXBnHsf%P=jVJY=$q3VU3) +z;I|dU_A-2i%b`v)KlKF9%tb~k_s~>Iq8rnOnH4u2jr0f)iZ8!1f+e;iV#?C6KCU!7 +z=IyL9j(0)*w;cQ1d3T}JyB8pjT0*}+6f3t4oEnFB`~tHvgK#t645fCXKDaB +zap@!^6K5wJuY-Fy%!c^0JRych(5~+n(*RLPn=b8;NwcQ^tigt +zc~Yfse}X%By!>@NdAHZfg8}GE7>pkeL2!tzNEJX18KQ^W^(NL8qS#1NF9$#nYr5ND +z5JzPVSF0(;Cs|T#2!SkW1Qh^BGy~@91cp_==W>dWW+o!PE5gkKW(%4&9~PpQNmqWn +zBj38KzPW^)(nVW}xmTa_T))OF67}m2EMb^yRVoKLTEF}RsR9HoEiVpr88|bdz7W}} +zn@E=3D@7dRew2nq5)`V)n@NR|DhZB|LoUI6=G<@|azzR6s{cEgQ))=D&o`CmRap#D +z9hT>!8T>U?hwy_9j&5O6f+3JbF7|hfFuwI3(AZ*EG*0N8B1UeBSqvM +zJ~XG`CIt+gw4PrK2wA}wg)Ko^N}#E8k6rWm%)6+>H4XSZhK5w>6$ +zKG+X4aUPhSd}_uay&UqD5Jf{&f>IR4fuAsR`htp*v^g}aVWlE|Ca2@W^meK&g_#wm +zuV*aGr-(mmo7kPZ%Gi>HL{|@PgscUor0FW_hrZY`sDwT}ZL3j|5j|Ji+IaM1d5W$3 +zy)eG^$MFcSUd9L@wDuy|lR$%A0D*BXOBHh0HrC{4K%B%gc-jMAgRn(bi1ZgNiTmk@2Er{T?gt-S&CXPOjKc%qa)?%;2tesc0bVGD^Uht$Z*7;DV@iZ +zL!+%Y0-&(&Q1kN^UBg4@B55|t3(SYM-^nOy=^7y<1vzNZHKc0CD18A@|QAz=6F^vZOF(z>E(V3d+wOn +z+O#NiX86=Dx`|Ra*Mclg(1#1R3jXGy7HMxZmut9Iw55G`8BtYQJD_q5&5Q-KfbGa76E +z;tlukQ)aMaGm&e$g4aGb91uz^8Vw0jT%ghmss9%Ez9!t_bus3ZPNQS$voKtvKYjR2 +z%r!bU63G`^A&bKc2H)1P)qku((qmeA*aH@AOINSe{#j3XNVcqgLm!#Vf}ds)R)CdK +z&x;c*!MAL54&7+?l{SxqM;Yu{Q9;D1cp12sMj5ZMLf^`>?So%AO1DPzMgibf8Ybqm +zHqTD;XySqIwQ54*;kdbUeQ8Bcyq}9b=QJJ4U4_66IcOkF-ymKp5ZC8L%N1P6L3rR< +zC^e>aA160%3PWfjnC6f(mLxqT59v)W17k)22jDuF>Iu5c@S(@+=oFTa%7@bxg!8wq +z#{=ece%GMQ!y3BlpFg3~+Al0g7ZdKZnaIjjg#!77$>YcLdVL!%=Gf +z?$V}~0&G3q>5@i?WjEO4l-Z!C0OU5KD>@29xDm1N!eT$M9f(eMaiZ0?YOMujeB%^7 +z?>^r2j+DNc3$IJDtNIN6=SiFymE<13EJP$45aC6dr-UH2&oV-Y_(UeBN~@7zBU^j%T3UfE-OWej}fBG0ufkgo<$7Wx-nS +zQNEGHj2K;KSGQ- +z4?R(;b-yMMoSo1CAv5zj?1BgI;hA10`8|^bg|)J;&Q*Es+*)aGI;FJNCWbYd%=H&2l{f5YU$&V +zff~BJ6Ry$>iX~8J_FV_Gu=MW2{=OLLmr7QBMfGyF!t+tO=jhRPvfSuu{q8Bv&O)=G +zU^@O3ajsqjwdL4rccP}skM0rTqybkPZSOA{D>ZI(Jx@*!+TrV6nEdb{SlR0!y*-wV +zc}x>9-&4CD`xH>V??dzJ@aW@%YNDASevPKM;g=zWzQqw-S{L!MtJs_BFis+n#)w3H +zG!ue*!mssI#98MD9UjxWt+QBSJ>;kjGIQ}sa$^+!Wu)s1y9GjLTkHn%?IAazCY#1~ +z>UI?0?Z(5zc|zg#78wZ>d3l{q|2blTKmx<1h%qjmswDFlSb}4JmCukF(UyWE|6o*o +z+f>z0b!fH}@V)R#obRzee=+EpzJxc=Ze8OGhzSKrlv)6!w~~iUEEAQl +zPiR7gUOq-n;Ei4AEm@OFUG%CdB>d63=2J-j+lyO-DV1oYr5u*! +zVB#Tw|F6BDHoy4!S)dhrIqKqwz~!<$pq>HU%IsUhI7dN$+)$W;r9rGu0KDeB}1Q1rKU=X=snKfYdh?$z~V@DL0=~#)aKwJ;EJdayf1Qd +z^#RRlpXr^9*qfymGn~nXACO>GV57INab(0#nn{+{7y%~as%M8s#>Pby!5rsmknagP +zt|736ICS`S9Vz`*FfqUwMeMGi`@A?a1Wz5Har>pG^2y1Z>RWhnKNy70^4OzkBKIU0 +zL^&-Ac#)M!>_B5@fXw=mf^6y)giNtXeM~)!i&9pBYA;XHB)s~G?=b*JmAsn$t#CT? +zKz@9KHf7B*Vy6QIZVAaMkuxFt<@PqNeie)@tgeKGB7emS4o5}|fmcxxwz3|dktk|u +zALbRfAY8!ryPu+RKQjx0!j&65FG@LaL&8%r*_OkR?h>iAEMx8P#Z*tElL`XMPD@KT +z_ +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 +zX`x3 +z@qT$fwZ2#evTc8Y-4d5p+FHTSbEA{mNr%sdqA&M%2S=mMW7^f_-fyl?*U$GS`mc3T +zpSU)hHkbF?^~31m%ggn{Npg4eV6yPKhZoaXf6zL&l{9=QT(#Z~PzBc9E1kX&4y>r=ZchxW96g_gk+Z1T%lD-wm*gbl97$ +z6b_7$f`YkK$c~%!lZ@2q;boWDH3mSJJ>7}? +z?tkf+a_TZ6;D5iTkw*J?dVVut)>QvV#UJRQ`;EzE9cG7I5(30H>;MG{+eG7CCo~6)H1`Tcc5a +zz3pGd=pItr6GLgCkOhYV^@)Rcn#-IMc~6^%n^{AkCcqZLCA4*{HC=v;4IXesi2gxR +zca^t7UD*XmX=V6A)tMLkm2?<}8Kt?L@0y4tm +zQr%pvfxkG>>qP+(=!;1Gld(>ww*tp8tarBNg+cvUtUdgCj;#6@2PKCGP=|QwiWqaC +z>8tSlW(!-UwTLwBhq(g8>(sH@F9|qJ;R5l{$Vgq~*LZygu%BsH=lBw)1PF^15|Gog +z{pUy@d#}F2R^uvE0G}$HASK?sKvlJ(`ZlV2kM#0FnfeF!m(6RL-r-i*GRXHG?*za( +zfD{9#uj@3^L64yPv1nyFD@;qSbAf#z3uCCsH=m8Pz>-A%)bXlYRIA6NniT%y*>Hzv*%}O^vzrEjp9jObrMf(mGQIg)g6znHb`x*)(^WkaogJQ +zgpcna<&v>}KZO-rOeJdlx;OHf9{b-a#V!qLn}S@u_@5hHy?ma33e1Jz8zb&-Rx +z0G-nn@GryH*2stuuop|!T#N=4j?ofST$%E+F`CXAYbg1%Xk_a~9&{;~V?`oMvKC1lb~c_#h4t6_)8DVV-y8y#2+_N)f|QEzjOCiE2e)ZIZn%wv&&`f; +z;dTlVUg%GkE1OPMNZRLrrD7;qmA2rohz2F=DwYOg|;00MY^U`?0bo@_;3=V{j$^kM*lWN5KwC6<=PBe7KOF% +zjv9X5FxGa5p`?rjx0`>Jb-{5!dNs=B4t3FFhMM~Qc)ZGz4u1O6%aU#!u9e{e47sH6VK#zra2G<_$>>&T*Xe;GPVeb@84+AGIBvc0jyW8L{k +z#q_4pbFJb$xeqy+m>l^c#};yYAb04utjgGfJwTDP&fP1$qA3v&xrUnpK*;HSXZaxR +zQQBn-M)>BE1rqa +zf+&8dt+h_{vKQY}CS?pV9g8+F$wPr^xb`xA$^g3QPy>_9XIxcggt +zv8NJ(i|{wz`f7;K1gF(ti1ee;s*}mlZDo0k9yk;dBD{NIfV^n1xsvm@inpX_6coqr +z+t=1`i`5)Ag-_g561oEcsg7b!b+U}ia3&UGTB1w2)=JG{B@K;G217(LuTRvRh9_!6 +zCYCt2j7zZH52J;6Ztv +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 +zEGqMXj&qHgCidR?q5x)$>uf +zJ4i_`?->ONI&vfR;<6tar}z9RpD5EjMV_WsgU{%ofQStB +zUV}W)y`2iLN8wF%ZANXgbB@t$mKe>5o*#QC`p(fg=xk3oXTkpzFkasJv4O^sbs%Z}Q$=mgvaM9S);CxRoFQ|)L?e0#TV%RP!06&6p(;fln +z%Nk@wvpD7Ye{0+I`~T9mOC>(FZEYM55l8gUKecUqp8wRgfgO19|IoH$GX7KBE|W&)^R^TuKW*eo1^6qZQJ!9+BRL`|D|m!Hh*f{6~DFZU2^=wf7iC%{?N7y +z$3C@f8R~y&+Yzzb|E+Dy{Y~433j4dZU9$eEZP)%o+cqivt!>Lx7XSnM{i$tx{V#31 +z_;1>_{=aM6LBjt-+eWVbL))JFQ`_eFr?#D-@ISO|qpIK9c8SfWw(SP`scnNi|DkOU +zBK@IlSNx%E!`!f5wCx|-_RW82+x*5t#(!wrM0Nkrwr!yP(6$rf +z(R1tnsckbDP0yM9scq-}scnlf{MNQ3M*gO4$NZbNt@^2LmjM1xZTk~!{D-zZ@SoZ? +zC;6wgedHun`Iojm{V#1>rscP`4dL{k+BWROziHdPzqM^rZbi#~)3(q4rfs8?|3lk0 +z=}YJI*jM~R+ou22wxMMgsC=}FVCww8{;6$a|4rL={?xX&|3lk${!`m#{y((s-cM~C +zU-|!`ZKwR!wqxFtQrm=PivFo>*M4f-ViW&|wjCz@scnN_vHSm1+aCL^ZD0S^wuxvy +zwe7s?|DkOY4gN#hE<;UC_=mP_{10ur>9@8`q5YrQHo|Xh+wTu;n>c&Goq)=b2Whmd +zTPM*1&bZ)DZTsj?Z9C#`+ICL(D(}i~ZJXy$ZF`sFAKEsB(?7KB%71Fxh(1N^e`(u0 +z|D|n@{iSU~;QXO&%WM9jZ7YC&YTKCqrEQ<6eQMjO=Krp3*E##3FxK~fYTKd{|I)Tw +zg(C9*(zbd2scj>M{noaRvp%(LHH%GA+F_GLz?pw(+mt2$(zYQY|J1fy2~J%8(zcoY +zFKt^|&vqMh=jJbMTgL2f+BSC1AKEtJ;D2k|2QYtX+wmFyTic%gr?!3im$pq*_jhfZ +zdGhbtcEKky{4Z_$hsifV)4#Os(U)nY@aObeVU)uJs-`aKv?Eg<~ +zJL+%R_Lrppm$qH?hqgWRFKwH%;@`CG(U4DV+o1TrwCzR0Keg>v$lu!bo|6kg+ +z#eZwtwhF(s?ZuBh?-%Zm<}42959N(_?vKHbvYxvSn%r0K1M82)kC$%j-Z{y2Kd-vC +z>J+W_^2q1#OA<;bV$SvHbda=fJft}*?)qRl(2v%m9;Jz_ACbU7(Kfs6$*c-C-d-P| +zH4j*Q(2Dcto@pO2L*fcVET9tC&Y!(ER$+)4ES_q07BK5Ff>?hnNb!z4veW25hm~}y +zkJW30&e-ndbl57lYa^I*BYKg2tb}Ar4kE`YYlC`og{Jef8EHI3$__^&rR?ekOH=kVZVArDJ?^d~ +z#7}s;$*Axq1pR)wXvzvlhBxW!Wem{IHC;?9u3Jmt21?4`iv^c5(_co>Q1y8WQXX)* +z&UJVTrUvh3wYMKSR^}?4qi#yGG)sZohn>Y*LckhJU}6&Iu|H(@Xpcw?D>(N2x~^iu +zs6m-mILv2=_SGFUowaUIyZT)blL@Yp7zTxCMa)yU%*7vFWeLrq5gUX +zwb7w{icTn!A9|ntA^0%sno<#V+;l#!bqKUieme-7)1*^|DQQf$TXn?mezZz3gLR&4 +zVvv^`BF%KPCT#r-$J?TPrM +z`+Ips;B}G4yiEir!hu}0c{ATn%@Y{w%}8hGAnQ4RqZdO)pHO4etg7qAkn`+E`t{{MjS~HU!Xb+w;~A3W#V0D1+?7fgio@JiId9z! +zy=s?EwfL=Z*KE??Mf1&9@hczvjy)qiDgWcoxiHa*VZDrnADT*Xe-X_$6nlAovFIvq +zCSO_4W+V;mGH2GcjITBal8pcrwZJxD7M82OdsI8GK$ +zetA|^)6>t{L6!*M1uWHT-A{Uxe+lbd2CAiyH7w9Pe$v1%?I49zHyy~ei0}HbC65?jDBzwR}kI$jso^_mP?fiW60>Yl3~_Z14{4RYle(YYNNMoYjm=#l4X~!zEg@)<`LhxKm)Ez6q)u +z>wdf6=+7Uk7e~{cd93L2j34TdnUIn`KZg};Rpo(zfJ)G0Do^O`Y47a$l~Q+BgyIag +z&~6N0wqNcF`uaJ7iE9`IWY=y2k!}`fk8NfR&{^D-c$ua*3IH7$P?^fRoKRTgiX4Q3 +za{|K0EUZEds&bTs2;%Uz~5v(IeVNoO>$t{q{m +zGfy8Cfla>&O9KhJ^a+lJVyI7>NWankc>df&>GKiNw?|O|`{|?8Srhvu+V_6$*O_w) +z=R<6vpzqS%kGmNOYjdcXs?M?}M3~JO{3H5q{?RSZVHV{b(ko^DRkfSqlQ;v%V5HnVKEh_wj?7w&{B8m`Bhg0>0XT|2+e8ZVtjz*_}s +zAANtKAkyV|8-#=^vK3u;g{?y!zF0gAU5_#v3bSpte!%EpNzWi`m9-iO@-g9^+SLiC +z%uv{ldz*HTIY6T*S1OZoDFms-`G}LaOSJ28XfeyzQdYm{u(hwH^O)zQkXMpu&ogBi +zlAE6C4byulPCQddvg6`@z(l$E1KfJLc58U`*e35D;4{rU83y&~2)_9ydVBP1VQG_N +z)&(wfc$~TBCt_Mx-S@A_G6-i|3=MIx_fLwkt=@6;w7CH7lx{FQ!$Gg`58_A!2wAGvAc2)MEH)X`7VopaZgu`4=Pwt3Y?L@8|7$%ySJMN=%&OZKjbB`#eux9&@Sx6V=6~~{$%jV +zBgZ+huh9H>9O~M7d){2@aU0%KuUoBMr990Fmzo!6k9w;nq}AIGd!b3VJt(}=-k=;h +zKr*(*Zi1MWxgan$FWGP?>9TgXglh>``DtRyuaBfKCzaU?&}vJ~?T1@J;r)ynP;z(& +zd_FumP1uAX@XkgljxrOx{^VRGBe@b8b-r+<1ij~>j}(VKb)24mLz&PkugC_B1hB;_6F5$Slyc!c-A8Sl{JCX0vk{-)8ZyTUd4MmrJB@&G?``lo)3a`=bHsZteHMA(L)zB;uis_vW8YYGQZ$nCnA9Q722 +zm^Fi&BR|Rwa*C^9hGl`zx#mw|B8utmw6!x-$=vMzY;Sn3iSqx_y#M6q>fQ$bFXtV5 +z^jKC{lTqV0HAifMAu;yCEO5t06KNrQM(^9?QYEDO!)9JE3yv{Ba)a>FqF31@s0T3d +z)n~6oEsVCK(7OOqd#WaiEr|+E34X^|$U&Lt14y;v0K7FOV>JN(DI5u=aGhH;pf%nF +z-Cn`)tw@K(R>jIotwBD70|F?y&&6PJ8*=I{D5W5(4`oO~!epQV&<)d%u$H(a$V?u0 +z`WF`&Dek6qK!ujr87o7}#OSB63x(8St}V;uwkxx1|xW^_O)d1UiB`XxWFI-y*h;>`4wY +zoa*QtN-&u4FM$l}a_N|3SO_GB<*h=$H(6ZWv5)5Zp^o%l?Z`gr(1)}X@%WuuoY$;bqhW^nUtVUq%%~lyL~(5NM4VQeE5zv +z*=txW@Z@`yTgTY@iDO$`lU1H4fRHwi-`g}sk8mMtF6*rgF#$ps@-{WMgcl3wmkVG%ib$lsARO)Wc +z#j}H;Y>G|fsOy$=lFj)jqQG;)brw!s`w3;?GNK)$~bvBgbo`c#`0uKLS +zzDG|>NGjXGS2tZaPUZ5DnrmU)bf+Y1jT&lC^-$|s_ty%3Exzq=AoA%6PiS{;W~_tO +zLa)MmafKO@%&mJxK~I^3<*3f@1KNQT1E!lV=XSEiLn&BuLG_`s5ukmfvBL)>**z5b +zh~{+rGDxS1_BFTraX5y)xlHh$>x^t{WiuNi7pV)n7x(xQ2-*6n0zo+{;d(8VFD=3s +zhE0%-yiFbJfeoYX6RFa}eQVzX^Tb&~p{!Zulfr#x0`6N|0K5i%DRZ5zU;>kthymn? +zq$1QMRof4iVo%abnjRNc_P +zI_^fUV^$t|dzNMS4vYXQF$=&M>C2hN=~85$HB1i99BFe9RQ5*19q~F*q}#GH0*e)o +zHRYYz!F2;KOF|>02YGy>Ejer`i*Gvd!VP7%S@d<61G@~Sp;$@?}Qz>H_K3mi6b +zb*lu6-vF6_(G*N;FS_{SqXD!o><*BhX!4U*#r(q7>4hL;J2%8C>2_9C$R! +zdVb~3+Bf|juy;z@eWRNiZ1dh5Nv>hHxbc&TGCd@gGZBlWFx~H)O9dcM~1mMS$G&t%(`|9gtB~g<cpz^?VChPK|9#D!(ktyVF7RBwM$pLlxc=z$);7TwI2B+1} +zZE>GQhgfpMO=CADuJ +zfyOWjb}LV^DQ!J;QgsD;K|0O_((unqZuCN^!oLkj7yN)?A?G+OjW;mG7F6M+HG|~; +zxOHk25yZSv_*lusB8-DjM(d9SHqB?#@vM-1^ivknu`l*GSxyh~L6m~AY3icTaoYLm3P +zJZMc@WDO3}>PoGsc5*;w4N2(!Xgx>_L=xmk4aJ~bx-X0H)f+tQ(X%7LuM%0H5Im1* +zT-)$-Bg1Y6sdb+h)q~v#i!;LGaFZ)69$bdxpt8Zen+utZ#o1T4V!5R<;2RMCjs^J( +zi1)PpZ2uP!=Lfl%>@NNW#K+wi{RdFNnE54Ee5#csJ`YDu*krT6Hw8agaEB!jn=4v? +zWQ|7d(t3;mx1z3jo*v&**8HhI%#NgKX$UGdDXSSQWD-cLPZ*ouQ+bnc=yR#JVf!58 +zpUfvaH8^x;onga%#Q2wt9a0-)vQ-cvgH4**>U+F`Dd4lt)~&qzYI-~G4o}z5c$y#^ +zu3O3eRxt3r>rdmnI12$AHVfSxNXEw;dTcVwfED8BjwJ5hOFXrx$PHnnUj>xi)o!=u +z8dFsuE*8b;Z|Z&p#yc$%ZafPjdL3;TgSXA{kWjsiTxww{vk#~quQ~V5lD*pk1_zu- +zw+U`#{}&MN2L)xP=fimnI$BZ@4$W;UJ#^63Q=+*-JfoJwJ|ON3-{AQ2(`cJnr%<;b +zhCa7Nn$@o4YUH$zh>oOGh3M#S4ho0TK`rVhX@yt?4{mG&55*h{%Y?@c?gpmh!u=CY +z@%Uea_*wC`^&5{g9Zd3Y`n>gk9hq4g0ofcJhp;DB=~XpY0V|Fxq +z6acWzf-nj*7VX$BaB?G_2@?$YX3q64$36hS?*lQA-iM98-?rLNwrZKb4(cr#+J-(z +zddOhVeqykqA!HzV+)& +zGvG6%0g!pcxxvtrT{bt8Ho-+a5(GYY?|z?eEQ*B)thViFmEANJ#(u;=lSF}`r@U;` +z?M!!{0YpA%lnA5G5Mt!kN8REAA+xM>hXCj@7a;c1xqK$0Zo41&>16lR8f<$#*mF`7 +zA^i`%6kZS--IwY*00EUJyn>^@VOF7#Df^femi|`1wruVX$Osxl`9tNaU9GB~Oc2)i +zh_w+DKda-pVJO}NKKmYnDlG+caGv>r!4tVH)5J*+c0Twx|MWctVwY&7kb)d8Cffxu +zz@hNV`sg>#zXPsooz<(0yMfWn +zgf7!J@oOy3`~v~ZEz&|4$v2ibm7NZN+rt=4W+aMRITGBEEE8KFpa<;)%$?1IPv|&- +zs)opey23AnT)UTeZB0+O5Ur5v>dUG)E<#OuB(@xgy6@p$x4Uzwq9 +zgnuk?XZC+A@oc%jmUt+lrrBvrLSIMGG8dT;Di4Pb6)p4K(ZVrH=FndNkD#A!_}_icv!uU3SK+wxWPkq +z>C9hCTsX$;+Y(p&w!|GKoJ#(+#9zKGaj7@|KUIRMsxPF9>lHe6=5KA)p0iB`!odvhST)r +z#seyQMk-)7H_4j;R1|qX3oxJMc2B_{ +zwy%(}Fp$CRs^7D_1Go&ZF&~K^6TiH#t+b*1HaQ<3l}gURT*vXLwi}hIAYxKsi0kY( +zS@MX*h)Wle?IfuDJnUlmRR+p +zrkJS0pC61jD;jR7n*b&IT#<~-4g_=4y_*|B&K2U1*s` +z-2af`MSC+kf9`|+lH&Zn7Jo9G-r#hHss^fZC8#}(FPQfy;8U7I?q8m!vIc;4_^D?5 +z^%PV#{1&P3N4KZixW9P7dHT@oD1V-@SD28#?DC2dS&gvBx$)fCN2s{S*GrgTf`n{! +zT&_}ymKsAhOvMeF#hwklztY>`w7y)m9Xt?}c!&Tp#gLE7hFGv%`hD=y+iDNsQ?5Yn$LLWcpfY@lIpMj9w?wvjElm8Kk$-B{H2vAIX~NK@s4j-SQ0ynAns;>hU;7<gdqHAVj{spb9pk4-<8Q+pXhW^++zFg#MsBj{uCBL|Nr~ +zXpCE?D|7qLnl>uWU@w6F*+v6HJ^J-^e?(#*a_n{ksa^0>h1HUB0AJioRiFzCaS|*Z +zctdq6-W)}vC`}~wM-!tw66y0A7os++S|aZEfCvF7+ecKIQk6Io`(G?KJO8WP*)VjA3uyPo8Ok6ho`BBYJ}A +zBrBSEhJF5L(qAS6wSvZo9d-jnNF&3F3pDoF6t6cidq5}PcQ%?+4c=3v8QeYyKqtY8 +z#~$b9+(Gg`HyaW~5q#3?4lj3CS~I=S6JL(SQvvE?-S&$aokODcrRGUeY1V{AUe%?p +z6;#*v8(C4N3@@TX{MVXAlhPc3TOiNyU+74^9sSN=zz+lu##b8-`Aa0fVR1z1lmCIm +zJACio7_83o8Wu5%pE}_U=K+gXV{>bxUGZzi;R<(fJJP8z#?1L+sGaA#LAg}n#tv@8 +z_x(+kcvEzL;Tb?`U~`ye+ir!-nQ;x6qYa1sps8p$ULNK+PQ#5{h7MJ>07GL?A +z`2Ur~kN(Qywtr=Da>9RPae^Pfr0D-Gi&y-QEIzb{x%9uXIG)!3k;Ng$d&~Zn#hnbS +z_7Wp0MaW9ke;4BVFH5>S?c=X@!0mW4s!E;=_(634Si4EQ#I#Ve9Qs3V%zY0cNkP3~Adm +zkDvlf500Xx7>WEn7l*-RkTbOG++Z~kQy%VoYDy$4mqUc%_ZS>BV0Dykxlt}8)(fJe +z9D#pix@wz}0gY1t*tVGIUtHW)edQY$cbHKRs(kzTAu$GkW!o=?C%e^v?hFQVc^6)W +z6>lXCU56)KT>i)nM;9|BX<|{a?!{{)b)Q*xYAqP!aRw(5Y1@+|+bOv|pA1i(Me47s*Cc5!2|`a8db~6Kr&YXFOD6%Ul;r +z9{w_arWl@y6C{bd0WF&6sg~y9){`B|e6^)|Xyd+GgEyTfd;>-*08&{AQ&JN=f)Tdexcey`;O_L#Z}XXll0 +z60(on&`f+VtxtKR=l?*1%PM|P=5=HKG4j~yoo>L!biFkt=gcI;6e(_xH6RD;z~q^C +ziiHQ@!;RJNPpW6Wolq*yNNj40!xxYfTpO|kubW+M=};uq6j)9PWhycv#RrN1>3y3L +z>mc}4F_#1;gD%x(O +zy9l*@a)9LA%SvVVi10B{^&8Qn^tHF~n|{b?~2F4r_talsPm2EbNCIc$#cH +zZoOj7%j4G3-e`IIxa004G5L$FZqCA0ncygAH=tFS+p1IS?2ZAb;)Um=DrfGXg;4Wb=>{y(b!>_#Y*-UaB-@$!>X~FgC +z6aaRtPSJwFdXr*?{DpTm1K2;u^|PxJG3g+OZ_EQUPshTA#8!ZOg*UWj>7<@jPC&wO +zQO(>6@T#HlXg|eT^VDOWGUEA{&vf$=V^I9rd|{vh`*kiM+YNBi)JW0|Ft$9E*4y{v +z!3Bff-+nq{#$a+D&U2>b +zfp*Ucv^p9@(Bv;EvP?3GR6CN#D|;)7u#NCn8Rz?NW!!xFUuC?Uos?mPzB}`h?`iFN +zb%UTmtV35CxqDa7s!EbExlyt$z^B@_dn|@bCZrLE$9P-4TbJ*Sw|f!`6Ly@j7POs+ +zA^DFTQ1rwp-G03*IVmA*erf6sP$Gl`Po?|h&B}r+U5l=v!GAO3H2*g<9_dH1W=mo) +zcFkLW8vg@8M~+*6XUUjoP8u$^XGCE21|6r%lsc>&{aEm4TbnlMHwO;*GyPC;{3MLU +z;-Ku3BjMvKpdGf{rJV2A=X-qsGy-PSOt7{d)42zyl*3j#ZZ>ceIaMZX}!?M<1GNvcJ@e#&RlY2u`@#t9@ +zgtN=BvEvp4F`y=?Ob!~GPODTWtiw27UR*l0xX&<9OCJ6@-IgR@<#-nZ|GKP5ILC%Bn&rYyEjS+Y +z+DVQp>KtXB<0)JOvj=9jTF0>nP?!B-9f$c!{95N$MRLK@4D{#JbC;guMFzC`9o^}A +zy*UzH?Y+}U_lqEM+OS2`m1G*crac8L4U2k6>dUO|gYrc4a~5|&IHAftnCI$4`Y2{D +z1;DR2CX9(>a8+xNEs~7J2hq^)jw8R-UbFm+lO=mb238N90 +z;N{Q0CO(;P(0To}!`Ce~;6lWjrlQy6qpZ6JBwCGg(S!sfKn%?c$0%SZtc5$qt1LDL +zk-Q4;R=5Blw|b47iC*#ydwG}r5aE=Ig^C%1aO^H +zA(leTJ;cnv*7#L`Lcf_y8Ra|UD7V}$jUah|Jmj}E4!MHz*BY-ba0Z@d@HGc>`D=|w +zWv_l)6&1Ucyb%S~=YLuQe{WW;Tal4mrSo7LPlh +z+b0&b=Rbt@X3|sjDG=cD>dRfY%W3vxB{VUHyd}fs{iGpl1$kQ#m!!owvB2m +zC&ejL*Hqms*ojM4R#|XncB+q;FC8Yn%x#2Z8fZ1Y{(K~Nqk7h2UmE`k9Xtoi3I?x0 +zg2&VY#?c(}ka8kOg~lI9*Hv^zz|kYcbuHEtltkxh6RQi)B}tgab%wQs&zl58cFLZTPmvn=kIx +zq|wQT;I^PB;}u5Id>M$d;_3CZ?-^qusT|>bJv`H^NSTetEBnyE5)wJiKf)SkW~FZ0 +z8oXphiE{BdwQI9fv8zCkX<{11jc7b8+AdCVTF@(6I$(T$t|Z5ioWc}^$%?2miBgK` +z@w+9#6H6f~N>ItxKU5&A{*b|i%P5pA7d958@NpeB5-VghmckXuvxq_0jAk@DCh^73 +z){g2IU*2T$F8^}+1IzH!4knXz39O4?4LCHLDn#y`cPb$iYsjvx)J#a6kRHBztGG(f +zm7Ca?@o`(o6mz+a2^O@xGtMsidf#XQcCxq#eC7;d5FHIL8a`#wScPoR;~E2ZgLyaG +znaSPA>qeG05n9h(vTsx7)~U{XJ$S}*wv*?K#pUTdovXD{!$(!!=ChB3z{};q5z?LF +zds}a1m|&P&0D_Y&@lG!sh!$PMtm}@-K&2wKoSIME2$O>*6?}|~|2#B~3Hj9o<3Jd9 +z1*jhwu}&fL4?&+5N2VwE0#iPPLw?q_XERW>g|lFdEV|eOWQq0yO}0fi&(@N<%&o@s +z!3r)WvFkTBuH4)Cjg7BH{ez84kAXcU_p} +zAQ1<5!Ej&)nf0C$n!;OXU?8Lf_er##o(zcC#KoMK +zp|6Ow|7zoM2`b;(c$qQ172bQ&w>CbJ@&3Mu@K+lrdKux8(J!J^qFW|vW0<54ab455 +zVl?>H#&KgY|CFgnL}lkvj$D;sfnQ5-D6$KlSo)-jv=gq%u)lJAHSU3wvR{*&2=-d! +zTo*HSx5Ux*SCcnDzC&Q9xTbIxpuxF&N?o~ +z*56h?_M?)jdLCr*>g6T@py$E|IA>))oU4Khkc&4})-R-hU>zk_z(-`4B348=+OpRH +z;M)k%F3(SZ;D`A!pblgB(FDv!{0@E>Y!poS|P*m`xbmhA<0_nm_S2x&$c +zKU*0DR+m>70&Mhz!8MXe=lAP=m+XSAcH51GJ>xoS11(rBPvw!idVc7Lk!wZ +zPQQixxQF8N5E^2?!p>L|Q``sKD*Dwi*;o}fxBz&gs0I)baIs1`K~)r1g3Z_S`$w{F +zl=pafM!4-JgjtU~#ccj4^{>YUgI_`-_7OiO+CgkG!G@NkM3C`&mjGE?$uXjkGR3p| +z!u8b&@(!~JIyLw4-K`EmsJK$1<-8SG^rxyIi@cx~Bh +zIFm6#HK;hNLkyY6%9k$5Y3cfm*DU#hZ|hBk>nCO?CJJd3Bv6#EYggO)uQmiyS)@Y4 +z4Y&VLhQZDH)VwP>GnDU$2%9zO%U;}1xQ2B>!QhqcBjq$Tz>9Wj`UdK;tzocd7{51v +zY5u11yc{vZW!aa11%~f;T#cW&!n8^$sL75vCOGQ}^~A54w~XmHEN9djfLQA`;aRCU +zL|#GZ-=0tjNDDQ5&xAix7jl!8PMKQd<%ALYM;sS2t2+Q1cKJsfk9r84JZsk}%={L| +zi(2d^f96Plic^DLW6SXB`thimo{YdFluL^@PxiC`;#QW0r#=?qbSNakz7XJf!eSs( +z0P=vJbAfy2X@S$NwS6yPvtoySxc_fkDR-Q@-Og$q_D>4Cz|xJJyuxpGV^{RKkQo +zT`G>?136!zFf6@#I4VMgsE8d`PxOaEorxjkR&nZiECz`yKu*lSDlQ$Y19^>*k*ia+q+$p~Nd!9WV8DCm4p^o@9Ee-(DX}aW3YJWJ{CL4_ +z66?OHxrNM*L}0@|?N?}#E6qsnM{utPNY0{5G@@0Bufumg!jA=MP-B-ophnx4)!=uY +z%WL8&HjVXm2_p+TI+#U4h+hZa2|=K0rnUm!->a9L-%NB^#Y441a4UWA1zA+IoH;s| +z3#qK(Hr2=qiw}Q+ndm%ly3r~z#!z=~Nw&vZ&CQj`IKot57))Zl{oos=rQXp!KpNX^ +zmo4rBt+W=$g|Q37*;vZ;t{OzZ?iNjD6PmS^QcW0a$swCV`;~f`GnAnZ17ijgl6?lW +zz`w6x>;vHv7~7c#v4%Aw7o|Ko;Aw(!i$7!JS7mZ94}r9%wy=Xr8LEjomuM{4DXO^#!wXw<1lh#=m6F8cw+$hVf&wtS_P +zh4<;-#@^2uCIEyYcR4mJ{cer8AdxNFl1Y36o_{UhUeg9^2XseJWW%fxot1zs*8Q2c +z%2b5?YUn$eBI{-c(_>#?SDNAxR!{Ru1YKh8lj(_N90>7^s4+89L=Y!e0RekB^IHI) +zVbta%i`xSZ-v9*YiVO=}`gkN8kdh5UA`|;_!29yEHEaBy8KC9vdQmb#vuAeiyi;4gT;U%;`C4AgYe53K^f} +z6opRlvp$09A_!F3)a>)E!NMFfM`XQo4zg?E$nq~o+q~OjtRi8bXB-LgUT%4hFkop_ +zQM{8L-=wfdF8O(mf;fsI?IJtN!EiL8e@cN_KdY@$VY +z9f}`nM@s +zh1P@4T<8c1zAxPkRxB?@b0RBAi1qosm-_(2!wpI&M;F( +zBAK}=ear!qyeg+W4*!sI6ouHYdJRX{`?yC-P*t7WWZ41Wg~0TE8)8#U?JmR727)L| +z>DUU3Ve>Yj5M;*wsr3Y83F%?#5kf9?qR;GOzv`k*cKFfy_$IrD@Wv}1m2O}*1|?uI +zPkXb@xPdYnMK};b%a4(`dig}2A1Zo^02zNUJ@U0#>_mfTH7xh^PYPIDXk$bkCQWOK +z9=PF#u>bVHamQ6w1!I7uV+HJxf(cUqWwX)b!~lO0kD!}`*$(2Q{Q&I^#)22$$DB4! +zub68wp@(-)UA_jQ%R*$RcB1^1;*DF&!hycBNxcmPWyWLT-*vifU##Az?EFoRPYwi4 +zmtQP$qZ370Y=E<-TSOcvjKuJe^fbA(21S#MPE?|&*#r0!JCmb#CAU@!k(l4>H>V1V +zhQL2>Cs-0QiAFA9MsT9r@gK9PU9m*6xNNfka&wChG94jC*iGqgIn4{)rS=$SkCzk= +zXISwpw2JsCE4ku(4)E21P98EIuA8W)E#lSY@Kt)Y;-$iVg+FKmZn-N1mIX +z4e3L=T{k-J+r}FLRaX-O(m^dsq9(2d!&nlgW-~1p!UJcs4%_m`8Cfc^G&%lsCTV>a +zC!y1ctLS&Ch;i(tf0F>cQpPf^<1Z3=u_4jKz$Muj;3J5~A4)QCG2$xy`J?VY(stP9 +z@axa@+9Q$K=fEE8^zVPk@vwi%aiFlczHf5e{$FyOtUQzb_m(#0nKX^W`hXGZ|5vyDv%!~Ev>1; +zkY|+5v*c*d@$w7ai*PfPP&&|xW#z+!2|ZW2#aNj$yt+pjR~4@VtUc-J4xf2LML% +z|A!pMy~Fm~Bb*$PhWaMQWvNzqd_JQ;jl)@>WDa2tJDz&6RV2tU>l)Itv&>=oqxw7}C#5X?*(4od_i6$6onT+Nb>C@8&Ev?*d0YMJEP7l`HB! +z2iy!_9y_nU%#Jg0hxaxyOq(MfN`{n2Lwa-S%U~;Z(+0`OWFm4+KGI8o&qu(dat>9w +z3^q+Rz%@x0`VspkBqg^?U9Ra7EJfRT_{{jnxLgI}hygTL)G_G0%OaE^dA-oY(iw2` +zU>^Z=yO9TC_2E~f>zFh{@uYhKhmf_#zL$%AirPE;nFhLfTY304 +zCwsyY07tc(7w}_1%x)fmC9GW4dChWq**fBBdZ58eCges@Jt@!1$s~Z7Yh*?sd`I@W +z#l4Q?!^WCpfHX(5Q(;+iD}uo2g1UJVd)ZFv=Lshd7Q|*JL$nfFQGV&1O3hpv?x_<%p7?Gm7E>DTFcT#rxQGl=1PpW^vbKvyIj>A?VMJ +zogpW3Y(XH7u&{U`8GawSHj9-ItKbN?`keGZ_ +zJEa+`Ky~D5pN(Izh5PLFUS@DQp%^Pm2Y#zhPf|-I|(|FwTVe@QWlao9WjM(?=>-G}YMWd!K4+W!^4jB6-1#Pl| +ztgn`4P>#tTTR>~d6vo2LI1lz2s2F}m^Z7b4u+#6OWz+>zPf;&08*Csr +zqNNbG6ssr4{zV8ek?J6O?0cJybvS +zMX@_1&&%t1$kozn;lY%`rz8V9iY^98&d#TyrJL7fTsQbkq6nENs@e_9^-P{((>v_} +z!q|Ln95*de`6d5o01oPiRsbuXc9Zi5EwvGxm+_wJ$1}f}b_f!VyID9406AH*-a#?6 +zX~sW6ww6ML!qq(T%EP4^S3Is@E=9t2pG5B;x~#+UR}qgp`snAEd*Bf6~$;Ta1rJk%Qax$D~51;6<_B_VeQ;RBbp;VO>J1tsN0NZ~FwfG8{ +ze%<482a^u=9MML@&2$yJrV$gAV0T+~A^8r$t*zXVeTjI1{^1rQDC&^y=7tAQdhQ;h +zKIxi^1dW>%qBwQZ+#j!OX(K`GfhV27Z;m9Mn2^f6V@INU#xkkoHXA&cF;~4gP|vBV +z>JG^f>fx`tN6zp%M|}I;7&TMCW)CUAHMxzS{-)c;dOC(bXvvD|%{b`;I`b~=zVZ+6 +za#xWUE2VDiHeN?_A>5BA2G6rS?wDzU&HiEI9Q*)2g*f=?!QmbxT5`hR&_;C8z@Jk7;krSv~N@KA!&N;L#BPrtj4)KjQL~z0M+J6M5ZJ`y&tl +z5q8s{+6+vd@h0o=y?5*}J!QqH*BA+q2jAb!pa^)L99-oD_&0}cT-;)c@0DU^8o4cI +zow%D-nvF9oRrS)f!?jvL%)s4knLGEs9;5qK#5TU8b6M2LzK&( +z8Pk(D4w(3#RqQ_v_U2_W-*pXynFe_rRYj_3qizgATD9US9LM^f@Xa=+iyUt~|sk|L=`%pIu0r{8AaF` +z&ehrTu7q;7SeTj_{r9*;o2UFmAz>`fap<7d+u+p(7dJPR#o4hR!eE#(FE3?ac==P&E_$h12w#v4PZ_xJ4>ErR~`r>Y`sY|zWYwP>%`tauLFA`z5jIf9JPO6+G1ORXZ@w(P3$eO2}tne7BD{Cdw%s+*bN}V36Gds^G%LpCw-IS +z&`|%7;}=N(A;+hV|3i*X{3XZ3{+k>xaQP28zV$CT&ihS{(^~#7IZpK-a=fyfTk~IX +zyvP6lkmDm*i;{_#d9}|7th^5fTclWc8K2Cv?NNWpai<^1ShaD>IQi82KF$GUE>{w_ +zYRf(^<1Y?#=|(e>eZB+Xs_+n&zWxGz{l6ZM>xVY#1jUPjz&uLfN6ZCMMCrGSu}N>4 +z03yj)>_9!7N71NH_`9H2uzg$*sxd%r} +zq_tFu0cqEI>Fnn_h%w{V*8Jisj>`v+uQ8e+SC&X*YrIsp8p&Lu)@Ga5pdIKTCIw>% +zkImiMM}E2>)UOg})eFKi!Wsp-ypbE%SEBwJiy$+Xf4|iLQ;auw5hWX^c07z`#zU`- +z4MaDqfqs=a?0AbBxn?*7Sv9V3P=If5uR5c*aWPtE2IM|K2bQezNwoCJ-TPT=@5>1$ +zS=(uw(+#w8>6Lnx?UlGmt15gP*1+TwtNcxlACvzNIli3rmmJ>*KiLUQLVzQRj%{vT +zX10Dx{7a5c{f8VU)eRC(OIy51B8ICKxdU0Ajt*X^#mTVsEubGatH`;VQ#n +zXf-VmvofXOTV?xgczoYO0$tW|D$42Dfi|Jd$6qV70rp0{<~sF@>* +z2vN6`O-y?S#t4p>l$$VMih7%yy>W@9*+>RT+QmnOZ5fq40s!{!*f4C-L`IsZYojwL +zrZD|d{Jc!i&3?L;Ywbp#2En*uR?tV-~DF>v39C1psi?2+w_Mm^wGvN!hRJ`D($Wt*HQKT-r0M^ +zOOAMEiEz|TCM}9bhy6V%gpEobH_scz>2fO~b))3ub#ajPK$G^&yjaM`E0?ZkubsFD +z#v%E6=gsp)(=xQSMl4_C*iF3f`dG5y;{Am>ZuZ)RcQ;h56PtsjQH|5NvFGqjj&JdP +zSF;bxZ*n~2iwBH~FV=XlNI`wPc_3mJ<)IVM+udnTEQRETrnUK~6$mWA4=wqD>x&R= +z^wJc**LsLo2&kFv=AxgnvkPkHBAHUcQhkE +z_&6)7HcwF(TByT~y8sXRG#@k%_K-LtnjT}ccX))bwt#pEJd_(#= +zg4hmp{+59t;~X)&QSp1h7Jp#_RE&`RNv+T?1zv0E%K*ABOt#!Hrpn8-5>qyz{H?Cu +z47I-VmpjI_uFH$QRl1Ij&S>4QvR@9}2Rhh?wqI*>;C?&-0^frU)mM8`Ku=E9UoTr< +zEL^wpN>5&x7y0YaJ#&{0I$Nx36|{>}aZg{JY>%Z2NHs*d+m0+uPP$(+Q?FY{wK%7T +z$(4&8(MO;hgxX((?&EacoX)TFYIjWadnQ>06sI +z0jzt$h?xsO92NOCLZXukq7Tnj?G@=s@5DZ9rnWmKWhOmKb(`m_qJ0>XQ`dts?d@No +znG&uEdz5Y|Su173JgXhQ;jsNJN5=AOg@p{Fitokt;uFCQhmP>Wxx`ebtQRb9dCF~`^@qeUN>|v+fJ3|A5_3b!4WS5O;sL)M;lGv +zO&9}H>(7peV~z(JO=8+lKB}_Vy#m|3$%1I}lWF?9k`#&PKd+$nD%cLHoT*|XDf9w$Cd|cq`gHj4%aKn3I +z|38%719M>ezV7?j>e%Yowr$()*h$B>ZQHhO+qTiMPUf6z@3rnZ``laiMU47ajrx5* +z&+}#~-etH%D`yVmn7go8!ND#M>B_{m^QNs1YIoZEr&kFb$V&q);F1RemB<4+s#U26 +zG4kX?$apt5VfUF@a?vvYRbT)CgGJEAL4wI6&P=;nhgywbVTE-fqnU+jNT_(u^SP+Y +z=u%_MEC;Kpdd>a^`qDTZ+P*?BD0rv +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 +z8U}RNnMi(pfdD^l +zGUwJ9=d53F7P2Zc-UD{0R|BvANw@tn>X+;Jo$anED}&QsR}hw$ucZzTMvAhCH*WS_ +zoln;pLTA>m?rAnQG393g-Wb1=gB$LWoVGZO=v{Tf6?qY@K3~&?x{VRAfMj^cGmRuq +zuPTCaacx@}C?56gP#xGlLZ6}_kTw$`Sh;li8&c+`FO!Q-K{J6E;pp!J_iu6hqRTH_ +zQ*4hQxRdlLi6qBCbL8`iT-}9Gv?4v@FvFncTO0>dGH|$#YIWt +zS=UnRrq=u~alCBzzr}HKD*9wK8UiF+g$E>P_o@WKHf>jUy|Ud3YcuK_c?s0U+c@ZY +zbR@Wfp4TqU{>R6kKBxSTKB0N69vaCU_wIIH$n+umiA>OgJOW2Wn*KkB^SR{UR5Y{3 +zYL|nkM%%S2N4XwC`pAp4^kWwa}U{2JtKr@SKY7)xB`(+6;ZS_Dz!NPDJv2 +zytRiP3etQ0;XBsVP^Cy-3+0mY`yAX3NK;%d4ELZ84j$mP>np2IOP##+S#WggXaAs@wW24v-?B3H+TJ&cPl;V +zhfxVR7U1XO<@(nL@hR+*K_$tK_wDe82^#f|D_Y7z^hG%$&jKTAyf3A@!o>Se>TK^p= +zIZxb2km_;TE*13KTWV(EeC5eCw0`?z3O&Zl0T^vhkRtd|=^e`x#s$S~4~(9Uq_cmM +zpWk?Oy+<(*`bHR`I6Cc_$ZIn(hgf=CuM0r=>Ah>Wg`9FiNZYh-vJB9PHe$%Hnin~m +z3p^4nAXNZz7z@hYFn)>$bk1u0Bw&}Ysr6`+Y`zs)h1bkBn +z#jEVkcPd*T6=tJT3*kr-z7`mN(a~zE80?unMo0ihF0+ku_&XPE+Y2RRE$Z207ToUR +zZZ3!gXkNRC7;&w6KY*hjH!shI0V2b~;n-yIQQR{gm5OTh4jp?Pn0iJ{tadt@$M}t& +zA5k#xzP$>zHkK)xbyWMa^8JAI3g0^vt%|(7YOt&t@x=+}3y!M5^@L8%#adm0bI_TT +zj6-3Ak{n1uk<9E1nJ*6E-u^s%o0Zb?B?bc^3lzELs?e_fY;Ol +zzRWKAjIXhOi(1xvfMPpfF#HU*j+N3qbq>$&8xm66Uo=<($JkAE^nntF5hQ!1W +zz4MCjWXFNZ@8#V#h#@ltlXPzw18>kl+Eb<7-GZB8zU*oUZSvdka!U^Z+RodE7%+&F9xf{(^s$>{w5#*K6T!;QZkc2tiV +zBs52p>6+m?zA0n;R5d^-GdZv<%%Zs=o#Ku01&DW{#{2~V`vZIoa?477w^JW7UjL#0|LsjTRiRMBQ$nu~G+9*zOc6C|ZG(qz%{Du-Tp5YQN*X!iCRZ@=9ynN=X +z0_xm>x_gv*ewaQy930caj>QeKt-ruQ89!7jq&&R8_4_W`Ylrh@%KZfBN;`D84<=y~ +zxYFQ%apShAqjCS@#_`qviyKepYT#&b}! +zA6#>BocJEc%DVBREa6Er|KY}~CmYXKdz}iosKO5H40gcqy0m&ATK!WuIge6}z6;gP +zX9Y6*gGRwzvRoMFF#B(AeE0=sCo*P-Aj+aao513P!kdKhU)*@5PAL{R*eSo&Q$Y7E$OZ^$M$ZhMPVJGq;n@uNkD4TAB +zYK`k!>NUhig@n$G%B~P8AUOD46GFCeUdFf%?HQDJ@-QeVoJt%&@^_Uav1wm)N_yLc +zc(tahsNuob1=nbJDJ0Urxp8}o90A%FlX-{-CVay`y;AEei?hNC^wfkbb&MI=yu_xV +zot9=lZsaovB%QvwaSn@9IVla67Ixj2C7-w?)KzM}`gxgpX8|eSb713vvkfSbRjWmA +z_sF0ay~*cy=HKp7M&2Kv(Q_W=dQWe>O7u-5#!4GinU|0?zShGKladwMj^=bQo^`$T +z?9rzjhTj9~oHs`yNQ`u>5tuAskSRrhf^V5B`+qXcI<&+Q+*0ZPB!2N#aR4=6fA+ca +z2$kGuYcE-L>JEB_$r@OR;7v;;CGmSWYJCXy55J44&hxC7aw08>{QGvTH8Acaq)S0$I`@yf*up9E@Pf1msET{*s#Wv;0TWym2-Z~a`5nC|{QdEZ +z!%s35UX!6`Onegk{(9v!9U~ZQM$a| +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 +zFC*^MMIZX)fVK@^z8U>k1()JtO(Cs?LEq +zEVhw7qo5#HrV`_+m5=AI44bT>IOPy({b5}YNx9|9`M=XxSH1QuZ>n4Wp}eo{PoYT7a7Z|wuor3Y +z+vAzc{lKVT4&`%KNeG&)JL@GFEHK*L27LKo0B-5+qlSFE_Y2;$H1@{ab8sw^^FNs| +z5-INvL^&u&;}*xt{0(QY;*xijuY-?;-hCjM9bR55bUJuA&tbBV>*CC;UGt#%sY@C; +zq;UZ}_z-Ja^{AtO#D6R{<;!U8W%f>xr&-MbfP@9Trk?uir)@5W9 +z#p)c#k2#WH>O_wL$f6@c4`jS8GDFzwNd5sMr!Q3#rw6T0t`a)3W}(ez+XP(rg#h9N +zmDsx8&g|^TyYI;0jGMo)$KbM=PT}0-uMVh#aWeLkG3wL}K%%Qjg5np59H=<%&c@&) +z+d|dis(0RYN83i~JVa;+!`${LjVO{WYao9u-kXw&u3Z0W+u;-A%8vB?0}FpZpT^)% +zWpM@~))R!&?C%oO0nG0@z<{qEghI0ZQ)tLvyM +zX+i!CF}Vy9co8)yhHt&wNcX?>ZclX0zxD2DkKhIY4}m +zWM8;Ubmrd2ULcv$;KJ;TE12GnYumEaY%&+fJ$#zGeZcx%#FgFO56g&s+JHF1b)5dh +z&PY9gRGeoms5^~3J-zPrOxZHPSfMGAn7Wf27s2g*#}Bp~MgVAnMk0N6cU8h$T)~kz +za9O2gr62vp2YO%=(m@(FRiWx3PXTz{pY%Bm^>BsWf6Q$loUwp7t9}twCyIsvlgn<+ +zArHc8-tK@e?m9&S{ONU$4HiK3PHDgg)N#}KYUIMl3)x+Aj^V_xKuv(B^ +z$&C2tz-q81cJ`g&NIxcW9FQhXtJKGJVc_cxI~!;(!qFsU6;o*s=T{(qBT(3)KfSM? +znYx$a0o2{-iW)_o;z1=lnJx*ZV51Qroq4K^^-ns!3uP-B?LN#loMUvL3U?PIpRSsw +z*+#&=@5a^<{n(U)5>*RK_V>y`=nrf-I(?a##5eK?Tu1ilD2`&ceZgOf_^Xw%d#G|i +zZ9$$B{MgtEjLsN>hPB|+zh}fMihyE_0g?JmtXR0Oqqx7nS +z$ejCfg>$|9k^pDT#r2hlb0N`~Q>dFO1fhIR{MhWaU|}mz=)H{~n4)NSyO`Qk4hjwE +z>I%;FN`1~r_l}!@Ay+uz3(9UU;+lS9S)S?ip?u=G*fEI1a-*5}pTzQ2YCLu>h;k^v +z<_p+PYirVkq3pYP#Ez~%Mewg@)E5|^w!|~IOex5JS55+NrM8ro{v73Wt_s&VZ=C8U +z8(OMn^th=)yM7BbPCkLq<8NoQwHWb*x@ULtHGl@j%qj4w;gcm!%_x={i1j7RZ+uyH +z!6y~oX+mXk%-zmfhM|Feb`H31Z9X2}Ks7oQCC!5t6wv5Y-Z5TCBa_yfH%@tB^rYg{ +z6H>3l3OXjap3m^Cw{I&r$3&#W2fa_8R3G57(Fi7m$(Y^h`|}4jFUGRqSN#iMKjky +zQ8zdo&>8C{47uF^!dVUEdbTOZak +zcepFVyAUz-i1RiO3X*w7z)v05a +zRD_`?yE+i254!4%u!j^ppQR9(<^vLY7#VS^-Eq +zYhSM5M#YomLlfg8{_OSNW#fLCt}~nr@x8ceWtl1^64a_oQ4v>?qB}23+k8cHg#j$c +zy%QU{K^Lg&z)RBL3^*<`cM0)nC*vz{$FX2KreeG8@oY1~VZFSy?&tnR9Wp7CQV2g7 +zp6pF&?UR<+8C=5NTPr)CJD*|P6j@_qKtnnk7BH9uK^9#0`?hjfPZlVhoN|?!lSv?3 +zMl(k$3>wvaGpvs-B#(wg&HI(7+;OS@#dQYW(Q`xC;EBvm4YQ5$UZoJZrt(Av8c&y- +z{cN*%C*`3|`$rDtgvPzfN0p}NCjIK137T@&Qn{8bO(shc5JjxYtKth!URnmdKlQ+x +zB12F=hGa}k6HJ(XhaPKq^l;B<$=*OlOzgbY=F_a7m6J>bzH-Ge8b<_K`-n+}eP8K_ +zfru&CuS$k-3}*i21N%W`b=%&?Wfl8HEe`YnGr6J(ncRFAr2W>IN6ZMP9Qxl_fk;P& +z>PY1c+5`S`00@J03`1Z>`Ctw?Udfhi(oq)hz3$mkg5Z!DLujrdIAlWu)r?(dPpj*p +zro=J(kPnZ+YH_sLy@|gAtARaV0*Q-Po+|t=W;$8N8#Cc2&LsS$rH2?zU1=(UQbE`9 +z+?)wvZjcGEqE}^H3GuW3fwnr7_~3qv|_s@pH0 +z?#MCMnqlC>Z`Bw7%F!y@XXa}g8^;>}&UNdxOq18M_8BLI&B7|UisPT#Ui*E^ek7#P +zUG@~KM6Ci(@uTwl$VeI_ljM=t#Fwuv~6C}T{ei6`*tDaIv)L_ChyCUC7oY`!)u=ZGPbGVD;fVWwo%*8#z!y*S~O)XcxZG`A%azT +z5Oylh1d-j%r^RVSuQKa)w@?fws0|kR +zAr;2EQh@Ry@1_CfFkf!TdV};8F%}oG+sJuujAcQB9 +zwl-9?9{WD1k=r>&adh2oyIijPkG{4OVE{o+uh*&}oUa|Kx)fFHisZuDUcgwSG6;l& +zqq-Zf&vKMPrM-V$|HkdqZ(G5JwLp&=gBH2cc?x|SKDbMKI5c(lsatacU&LA`5Q}Oj +zBjiPO0;KFrV$)sN7>TZaGQpo{46u=iB`5KVHNcTV^!l650*gd=S6vi2pNvCT5+1wa +zR}PE;q#{lnxSP!L-8r5VyYMA)+5vlyI9*Y?;kv@{YL8=U-vARHogMt?{dG2PICz_n +zUO{MYURfJ(uPR?cZ}xB3Pj@)CAleG}2A9M|wIEK2%zR;*5j~6+xJ{4W<`)E7;7_nHl3=)`7lr!5P72f@Wj7mIA`6C-;^r;-ak$m`i%P)0w8!T{6_iLg{aMcc&AR|Sm&KK`g +z&yY2q^pnapHyUnGLB^Y6l_mp;9c!;AqvNwns@I9aSDqpNhJ7{KNF@|rh?IyhMQ|aE +zfsu4Lf23tzt5e{iVHLrTL@L`0xk=a0U5U?550*xa6oX<6I)e=3lhklJ6b%@-@5tYM +z2;1CrVR8!?Fr#Dv6B(GKW>e1V>!oZW^2)(2%p8LPIN7x(o~a5ltwVZ<`4kJ6EkRDr +zPXbBm#8@?jL~^g#9HB|SfPnwnF^K6)?-ULn~#G9AM27NDKdK5FvuAZEiO&efWjb7W-U!@E9@w +zJj@U;_;rPAVSyf3xD-R4r?;4=#d+#1-0T|WfCujj_XK}}err(x0wAK;^#2Ri{sHkH +zu(lj<>%fpFlTIaUZbyd&WhDMPOYxMfMxzf+d#-6pbQCg-t%Br>fKqDPPx#~IlCD~5 +zrGn^25Io~SX=@9?Tdt)~7qZSuC?`E)`}x%Xr+@ +zk!LO7Y|Aa=(9on(ZOMtN%8nWbaI)#*hlWk#O>N){=ef0;NN9Oh4}FKZET&V&qZsKB +zi_U1Jf@7QnR4PM@f%Aww;)y_B!C34JV}cjlM-Y2j!5{V0(wtLJ|19V3brjXnIGb2K +z@?PpVrOmjj5#lx7QpFFH4)=EQRx=Xxpklr+XT#Ge!&j7;U*hjQ&n4Z6z?^t;$|%7{ +z`P+tURWhzEqpF+jz8~Oea#qS;fZC5A6x>NQ9;{d_6Fj))&wG#3G=5$RhtjjC$ +z-Z9-T(H9kyH9duIb~~w-=m#(+E5S!zM#`v)+5a}R@BepGyQ{?DZ&UkGoR}ikTdF-4 +z#Ow3@rS(LSshF(DZdIQEVCgnIQHn|bC$GU3xzLRLy!mg5+Cb|WzEjzMliGE2Y^hgI +zXR;b#D=x)+_Jq}gC5(Eu*{WKbDMp4GDIa| +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 +zhlOetXJJO!IwJ}VuZ +z{vi5I#LUF+XZybF0UDP(%bZeS-DG!4{(6Dh_f`4n_l>#A-!A14QK0JP>}_)t1tL#c +zAlUHKn(g+W)tt*{5RHT}B5tK68dpHLrEIM+NlZnQ61e(lles-nllT%7+^to-x!1;G +zE#z@r1paQK{#3FYCOs>ze6Cz%K!1evlH};iHi>faI)4{0nfGyfCrT+wQcPw?y@=gJ +z|COZJc1g#Afk`gHJuMI^Ggf9Pf*_N4&>Ry6eX27B7lrVYCLP?``foj3h7IB8-+Fdm +zNq<+X(YKy00D}$sm!6G`44U<~o^5`U0EooN`NJ9LGNSxl`T{=XbMiXCi<8dghQ;H| +zJ_K=~1%bP%FW@S|kn7N6AS<#=8f^)z=jFjhI~1gx5K%GrYQWjv$g4C0Csa>%n?T26wbfxY?%MDv+dEZ>He{^%NxJ#?0Ufe!OlJi +z{kF4fdgRCp3dS70{;{)B!V?t^@psK^Jvx<`0HHl_^zy^wcFA@_K{zVVgHXoIqVhFY +zks3dxaKP*OM&W)RD_-+WG&TXg<|KiSI&J|?u0-fGSZk`spXEiLgv7yEy3Uze(b0@Z +z5qpXfiC3-Ww6KD*I67UH3&X_?n@knd`R_f0#XduTWP< +z`1KpEe{#6?^P=uEg;q~1qz--vCtPHi_Ex<}+!|TMNctGg|08!AOQvGV7>sEt49;>1 +zJ)7aYkuz+3+;;VGEjpL$661%JgX37SnWPc}5DG}eBh9V*Z(GAj#JoLp7fFdc{{~&E +zFC{>jbITvEt5)b@oSygEd(}V{!xXJTCsvn8G1aK1_$!mnU^^xlyjR^S`GZ;R3dy3d +z>6yIC;U{2f-1K)GYRT**XGL?h)EV`v +zrV74bl7Ims@$d?I(Tl}vL@7!nL|VrI8vyXj%7Zs<^HE!|V?pmR(VamsUI{)~@qaS& +z+vF>SPC3(E4|4$ymYr;`a&%a;gzi~6!SX(gG(N;9DyQ9S60a>dgEpNanUjj{07(Oe +zDEXt{CwY$YQ1d?kd|ag{kw+C%dK>MDpL5+Pp#t6>RwU;vuUSx(I`51`60zl_wJolI +z!=kzb$f?PbWqZ_fBj;t{IYladio48R?HtQ9l9&;%2s3h6$pZME0H~vDr+M+H_wAH2 +zRHjd*OuHc9i}1{LYm81JquWanEHG|)7c5(S%ZniEc +zd+8b@(_7N~piNIP|KjZ)*u&7;HetuMZQFL**tTukwrw?yZQE>YH)+t= +zNi*5qc($IIdFS|!?^mp~?seVg6&b+>m~HuC5JPiS?e2}Dy(Y*vS&}C5nk(W5T1yk5 +zJ427Uvy*NlUniDu+$$FQCJbsft-3tcVMvaY?u)TPD4t^oBSRizkAD?(5Kz2m@*|-c +zg2+=0k(Dh8Kc@mGztJ%!v+`NN9k3lXB@6A_*EFqkMBTk$4 +ziJ*8E-;b8vXH#PhG!@~F9nWZHD*_a(9t2%XgWoE +zGhCD(8Z+9w4_(RkOnlrmg +z7cMQldBM@DxNq^WH1#Z?=IYqS3u~Wj^Vc?B^RB@o+cEB*A>F~;mtuM(y6`+CPB3Wo +zz{0ZopTIy>K3c*8580T}eEzsRv6QTFaO?%8qT@ClJKm8(AvaEfey4wUMIW(nq#{1a +z4D9(CMta|=R`J7x0)scF_~Aend+2D9Sr(Yk@v`O`<_`MxTM;3Zr9srh=}v}qH~?M% +zWM4Ew>6-Rn7|Dw#S20I2$O4;lbdwE2GxkOdRZZ6EM7$^ouH~Y!_%U0Pg}P +z#mA|Api1{-7GP-*TT_4^GXj|tgq+r-=F(-G0ix7t^=IJWUvLrKxbr1`CpdMx+ +zCcDCBIR&Au$(zdg+PY6c;bfC8?)UJT9PLm>?_g@EP$7-CrdnGrzs}Lpq(t=|=N_~j +zbr!*9OY*?jCd5DE9Bk{er(jmV4OEU><8r+r_dIl17@F{<^JCzUfe +zl0h+8%-yb&7ipxbW)V&p$Kq2Wsd+w?Clys=kr+ES>y22e#r8a;cHQDo{})MX2kpF| +z@vsyz}W<#zrfjKe}S`=gMPxD!r20DzropHtAB>G +zF-CsE*+cC=;q376f56#B&va0WV^F`s*_63|g|m&Deu1;2-r;P(U*YT->%RG?(Z}yu +zSnqK5u)w2@vC=!7UHuMc*W(VSlsOl%{u$0*d55zfUf$vCxQJijY}#Mp?D?>|ok-a8}}!iy`178@;5je=xXc8xn%wi +zID30Km;&&z`hO2+Ut~HW{u`Wa&^6@sA2>T@pLphK* +za5k0AJDgnwfb<_YI}qF7kx=G+D&QDoK862JIQu}f1n&O{&fc~B8=QSu=X_v9q45*W +zcKHR)Harp}EqsTwk>BBL%3tAZ#r?m-+1pV+;q1bs-{5Sfhrh$w>u~!}|Aezy{sCu~ +z9x#5-{}s+2k}|$I)5w$`#PQ%z2XMQLdtoIKaG?1soXvV4<9P5da5ki^O!S}N?BaJg +zn?~{-&c0aq1I|X2dxx_d9RDkv-TMw_n;X8v*)=$3wvs@_6aa>bc+G>{AW13iSH+z +zjj-_toE`8hoW0;ZqGrG7_n-Y2IJ-EeU=x7+%b(zEIm_)C9x(I2z}dFH!`XQ6 +zaJFZ7qW6E`Yzeo2fwM`Ne}S`Ye}l6dE*YBt70w3LE{6LXoK5r&XNyGt24~BQ{u`W4 +zlEcek@>e+9?f(pCUy;4T*{Wkqg1^Ao5+7!`+6G(q58n0yOBsHuw>YpK$i$_MhSGvEpCgY_dP#YjoSA=gtLou|Nn)vP2S<`;h%7J&Y$6I%9?jL+bH=LIJ?S+ppVw! +zzrfiJe}=PJoqvO~M}CE~clrJu&Zf)%9nKbX{WF~X{zvjRINRk&hD}iPWcti=KCGa_Wlo?T{ZnzIQwSs +zC!B4*_)j?7;Ws$@o2H9g)!*Q3I_Uqv*$#2 +zwuFs9-ap~&fuz5}*>2?j-@@4-Q2z#J|Cso{gtKRwIx#c<1ZPA3pW*Dh)STpy{|%h| +zO7tfRk8=U>^QufW?cRQ&YpYu +z1JYRKnO$pyhS=fCz2^2un3%)ScKwppY3l6cmfNaXLFD +z+iO3!}xe;gN`nNvQ38OICGNU$ZP;m-d^6mKF1%Z*1?eR8it(EwT!&&1He# +zhfZ5PExe5fM3YgwNSCwLs-AYey20S5sqT^By2+J5p*6uNgxfPo0&cU!{Gu$|7*v@UA53_^i&fp4uSyYJyLecxg_|g6@xd-^rNw$Ruy>5IyC+AxDF!^-}YsOL-(~ +z)&6Vud32{mW7NqA`h(Ua%*K-MP5qDN0h7?S$4}+X=X>sgaIcHqVtrSVxiZ;&w+k;Y +z)|D&d8;Ocs4=u-MTwj-bel+k8$>LI^oqTO}-OOuh(N{5T43m~DUW+4iXtd|z!#>|C +zCgl&`x?9m~St(Obx~*VuZ<+-NzGm*Ig{42|FW~%wd!Pk{_to@{$|2UpwvaezTjT2L +z2z%B&jacGo7Q^76clnYNVrhzS-chsB$_u_6nhMTqbj>;Y#$^}QGIzdP7iRuSs<(*- +zgp>15ksJ6$l8+;s+VgEpEN#cY=klyP=hFS&ddqs~fSLV=*1(mP`{EhmQfF>5vYj15 +z{`99A(8hX`ZT1MUia_6h+@{bp2<&`bhRKg5&R5p=nqCz?Q~c6CI4FhC){a-^`CEB@ +z56zhtnGVx?dp?iG*qDmh32FwGu<7X;&pTvO1*I8^ijSKOYvi$?b3QoA1tKtT_5eBytsoV>2?e!+j6B;UJF$AGne +zBZ|1_D7!l*>L|oL`TUvRP3*{#8%qswbmnPF5f|LYl}zZlVD~geD=h&D|N7%%&;4uN{XBBOcH=97sg4RH{_!yxh~{_J@4+7EqrG+SNEq@o;YzreT|7W +zJZ|-ZbQ5qEO0;UI(;3`yO;XX-Rn#jzB#IwTh&px7v_=hRupY=(*8Cy2Oi{pZw42Fh +zt*Hj7BtY`Gg@Wx+BNA}PTfH(?_i~+4y68rGoZDwQsrl@&cfm|vInUlO8Oihe +zkdxGttAJR^U5YBf-`ZSYyx6Y2I);0D)&ivH;gQMN!#qDDg^Q3|Y`Idf0aG6exu@z? +z3ZF|@oF5{=)AV) +zBuq`;j53ikh@L-7H9CusbYr1cvWneMT6OA&-%Mm{q&GKP5Kc4Fak5>x3r~rUJ9UTe +z@hwzsH2K4EuZJqE1LMa(<~zp@QO3!7VWf7QQb^$OX+ +zGm2d^z0&S)<;ecf#f*XcY8!S}vwwgc2U+#JRv524!bfwig(q~&=IGLKlJbCD7I9;B +zdYw$L+#@xQg%~SuI``wK>yjzib0p)vT!VpdK$)jtgKphZ3^!NH^S7n*3<3m&-!crM +zy1-ba&W6;w#pIcNUuISMwz?~yfiG!%-Cz}IUA&w`b7MH&?u)bpbV8kM|fG=`|` +zHTOo=cFx_vOXN#h#fCT$XW;RLIszaEkz{`O)9ZU`shX!7ZlizNWK;;$?7`X;Ra^B74hfZj3oPx?Q5hVll6MO&aZVe7M?GA=y%*(%^a<|hprnc +z(rxFux_354=1s+upisou}2u$A=y%3b_YG(E~p@{=qE}1 +zT#?~*8;HLni9LB+!FM;+-ut#pIh{kvdks9Oc%nS@E#1|0bR<{16-WhddydU%k+I*O +zxN_cfJOHp}ex(XI;Qv0o{R!8ex5TJF^5scfy*h24G1!?vmpbz6!vcmBP01y0G-QON +zUqaxEdLeuhc$FtPr}3l3BPoV@DuF2wKMlrI>;ZbTff{kz{LR9L9%V59{^{o(Wa1b3 +z&4tp*t7*Hf&1kuP_vcg61bEmEGTZy`)b3Xh7%?+jgC}Qx+ks`a6azOc8D(972WJd{ +zs!n{LsI_6*(*&qk_*xY29{P(uXc57Sz|K>D2u8ZSn(Jl&1)m*!B-ZVZmdo@{9v^`n +z=b}^G5qu)?Ig6$u@X&t_w7n&wg#2zF);0=%ESo +zxNxT}pE^Auw?&U4xY>M#$_r(etQ(5#XmW|D0-dAlPsJrU4%bx~?`R8!Z=3)$S^b#e +zhle}NT$65C9`c?{S}i6|tf}o7qthSZ?0tE@zRuFGkv7}Ixw>%0RwRuH_sC?+g6R5y +zj6E>T-ddRt$<||LAb=5`(osDEc?n5AIh=5JHM#KdbN)sL0FG!$9xO0jd8w!+zoU?o +z;k0bzO$|;Q>hMJ?=8%U+&fcD7)cuFip)7FWRV)@`!td6%O^bU|gc1X>~{j0O&rSDq}?B@s?@v;Prwc(?rrv^#Id|szFCnp8nY%i?@ +z2#)3~{5rE^w~p&NYH+u@HECHPhz3&F4^PI)fF +z2A2r7fVnO!upalu{o6ylQr?t4c8$u{QRaAmPqe)N1Vt5RIgH$^%ePO%sun7q&vey)wQ^k9HbYB-&yGx>^H{ECnVSMUo}bty{$oG=AcGHY +z;OtujD5t65iDBy)EFR&?UPFqK-;yFBxjxZp4uvBF=?Zc9Zl}HrPcv6Kpg57K`Zt>U +zy5pnBCqiGe;2};i)Y1b@RBFy5KhvoUrNDU4)~eJq%qVQJt{nH8eU`VxP?Uo`#xXi> +zlvh3zBC2J1G)NSMs?p^K!tVuJQNqGe4T7Z;%bn3$N_8P--+`lY&M|O>OP(4*PvI0Tu-_2&J?2iK#1-8`N#Vfyo&~!*1R0u +zO;dTwUXVuITvXMMnI}89UnD^c6F$^u{{R^R$os|sA)$?890bV81hzv^vS05Calz<* +zLVmUL8M%*qtQKbGj!<+jjiZfa#U79e5~r~BHgb?Zm0f&4?t423N^hIQhSDw6W1CZ5 +z(zS5Pby+upF7ReDD@aTerf}dQ%>H3%V8z`Lj=`SH=MkVjAw<<%ZvBpZIzNT2vD}$9 +zf1F#BN9_*(3pv+95bx_4^lx8sftThq@!GhNEp&VRA7sZWF&Xt +zbl*US(=526vGsuA3MnDituPDXny?loxM7*r~3rZ!jQhTu}plUY1p}y +zGVuJA7Oz$Wr-ljeh^?`wY)*>nKq!jSFIn85QvnjzAirZbUaA`)^Y`#n@!RR}t8JHV +zV>H1)OZp2ABJk5imo4 +z0uY=^Po5u?V)6`_&eCqqAl6kjQ#ox~`}dI1VCtIzOUj +zzY^GYCiS!xMht%6*L(h#HiK=6gWLnZ$!to8P;hO>flmP<(cUP9s!Tb2YS02kiXTDE +z-Cv++GF^>R4DCayhcPt1m0fTSwv8sLmk_$L#sbF%B-NMa0j(FEL(}3l+tc!N*!3~w +zmfu~}D91t&RWg*iCddhaSC36T@nc`@fxX04R;99Bp@l19159yqWE+-0nEp +z>`YNIMD-V@2!9q1tIyC?&`u6{e*u}FR$lK +z{^$y~Bo8l-RXnWE65PgoYG0$N^yUmHv`TYr6w_eXLg`7wtiJ*!o{v}`-K|?Zhz#C# +zfO}B}U2g-AR@6=~K737JQLppkN^LM>lADAOH}c9hoYL-R8wQvPuI6M6BTnYS0Q=5^ +z*R2%DRwieP!PgUbbK=W|G~7N(IEeN8lx56(S6o`*_z~|YUEThBUK-tOb{2S?R8*Y*=UW +zpz8`Rmr&^fkS(`|UJs$Orl(vFun6j2TRP)maB0%?!;oq&5cYPGXVy_Q?#IQXGs)LT +z8=B9LyCQ&F8KuH6T%(y7o-a?Y_)nVQo6SDF444&&aCK_y7^Q*-86*~&Tp%CnFj=}P +zguUG;xOy8Mjj93R)J_Z^epohdT+-NT=MdqXi4@DMFWL3e$4!ot180pLP46k{pv|b_ +z7A#$#-eZD;OGD`%fh!>3B6fi%i>WT|GV(~4aE*mYav(%&q+qZ3U0e|gYLC}VPqP}W +zlt5333*ww`&z1|Sfn3bSQ7%Q55SlVCzwYv}{>cH^>s^r(5YAex;y`ja6qx^bzMK$+T_)`Rtw; +z1@=_GNx$W5G?wKn1;z(MRg4@-n!8xRLDCF>5y4SU3y-sWu9UEO*CU)?TIwa}_;HFg +zc%c8{2YH&}M09GN>f1UZ#j%_3XVOb{Dpcnq!gl?j`E&ZP@mar#8!u`;sVtu^h2i0p +zYV%NFt0_>-IM7vr6k)ysH(Gt~x}`xb@l95iH;42*`IqY|bsQ?6=*ZTnZAj&k=|{$g +zNZjdW?)WWQgy?V04o=g2I^TQE;3xQqFm|0SO9sU|B>ctj$ft}?YtA_*43dC +zE+@c{tV-Erb4EI+Nk5G53QbC(y?gB{;d?zSnJ+MOv9l&5(jQj&sfH*Ru5FvW&^CTf +z9H!fyAqnQJP{u>eQ>}|&P_%CA;#dnO%UIu+zrNn74fWMKUvCMIS%e^WeH(Py?pT0P +zdGjk@pa>}*#@)E(sLhOuo%N%0%K1Eapr$+tIv<^VSiww|jiZI&q +zRj{uLIwrf!x1988eQ59gB^BJ?V~0Ej(<97M1EGfph!5X43SqCsEFPG2tQI_@+PTWY +zB}O$%6*y|*jttJ^q^Gc{dMn!W}7%G9 +zR^fI>f@fcAxjbBG`YS})zUV{*FQ-~{L?Wk`$q+|+wlZ?Sc|RmDJVXn*XoK;{d77Dh +zC{~EKz&LoF%)!Y6&2~-nn8q>Z2)#HXSn>IgiZb>DJk!;X?=<7hqj8BrtkknwbATda +z&;*D9WG9Bl3YpFW-T087b*C7odI`5@8)VZ>WwZ>`}vcA||n9>_Uz +zHDSAL`IJcf-PBj+yW`wv`{AD%v1>T-6e`;7-a3htWWiOYC^jaP!J{17s5ypv5Xi2uXOXj}XTHB9yySh3%Nr3gGFgk0>WRaOdZhwuuBiU$?@pIzmL9 +zK;pr+Lj;M|Q0o6Y`dLaQR`J48232g_@`r_wM!+P2H!w_(iQ=*HV~&5fuGr#UbO5x` +zPCWwshXS}GP4!!JnE11uQzRsflQ>PXnpPKH?iRZ6(2wyvGBE4g{i)C;_^xs_p2Ix# +z;mRNL(RHD|MR&MRppYi@%G}bj;Gb~h0(LOM^9Z~))Lu{Qww8Y166L;yI~V8_)xXOY##9Gyy?Ez3}S%?_Q+D&L(qP$uYTJ|j--vUFFDnsU9f`Y2na0E%f!1TexqI3XPRC=8UX<* +zm!*D-zB|n$b26!6b*#+t`V%P=)s^{f*_lu +z17ypkdDUagm50pR2X-_eJ-$PCaIiX{vBTDPeK8*>PV75Q@uEc?Az>@1?ZrnSd}LJ} +zm2N58Wv}M~F`0$r`1>rB>JnMhdTHyE1U)HoC`d|{;Hm1IeYLaFNHFe->C&);#*gxY +z1YIt!n}T`xo=ao|h<;_gNuYgs}t%@*^{t-X+~RcokT +z_}`je{PHEjcTa>bPu`XgwTeiVLyzCS*p7E2Jd4nU&`^P#)hRu~bwH|LW4xFWJs&7w +zzw(*_=j>1nX%E@GJUwD_oWqM?P{r`>3;Ouc$ww`tP?v6^g|n;e>6oYt`*5H6NeJ$@ +zh};r_&EI@h@RwHcG52iNHto(wpx3u;SAQQy0UktjQK+W%bFmlmxnh2$4}#=~9Y67wL>y1`x17+wEybl4s3dx@_PeO!A$I4poBYqi^_sQ_f!O8bx@RZaE1;-rFdbOG`1O73ZgT2%O|lbm+g +z@9-0_L{eEEo{d!+RL&%691a@>xw%<9z#42)evVPD?<=n~n=11Sf(FAFGl?X%%bZd7avs+l2mpdanNqN+Y=%QAuqYbkG@5yO +zZF(T+R}%W0ui +zEJ?vnI6LnroDHR)#biI|sf8nAKw~1-?F_{VU+f?pQX7gPSqE2cORbzydL_n(1-h#N +zg!n_}o?u&c5lV-c<&%i2qiCZEfN-OE$VC4uUmDu`Dkke9D9p`Xz|H_<(%aS-2JGN0 +zukU)@0$!HmB@a1{+0-PgkqvUAHEb(JDlQxB%HCM)g`l(_&sZIlob>6ICBMH +zuviDhr7(|frMK$h-$bfA%zO*B;VeibB=oI%Sh1t#t#>q9zp}hQ^~#caHG&2WlX5Ak +zyTkdwa&^sV_B#51UGUR#VT%>ZhM>A#QBNEM!z4e5yg`14EbBlc=3vB<{KZ0YM6XkB +z16}5mSNeG99mC?O#nE(yKV4<2Orey&;c|XPz?Rdhz=o>D5k`Iie|rc7}kNnV)E_KwvT9^ +zO(4DPfcKu1PqI*tD%sM%2beoDchs?ZxM<{%baoUx6H;+(lD*YwK_Ru%dkFYKlR}zF +zZ9Y-(dpqSmT3N&rop6(91*t@W`J<@W56+KY0dl~owL>Nxrw*~N-PACI9qr&7;%!NgokYa!o(9yf;_|8 +zB^x{>o6gpjZf+zICRzsJwZ?Cm1BoBLF|e(2HevuVZ^5-q#3nK26)Q3DhbU)aBNdek +zsM4V+XvWYq>y-RB@wF9pt*7E0u}w|-n7E)KKcu8p;Hr7YNJyu*A3jT~ba_yWueEVJ +z-L^qunHG}wex@yCNFfT4|yaaLod{pG0lRH +zpCINGrqUr3m*b7BKXkF<{6r^{s16f%rMxu@%kYEOkHwBFRI;Q6j!29a%+JQxbkkkiJ9!NHOOCPPOp1zuf=P;J_2hhY +z3t@$ZSEd$W^NLero^3jKx5}J~8epylj7Ssb!4~1R(W|1(`b&MN=Glt@ESJlnxK5E3 +zO83;w(J^kA+aOGxmbfMEz4%I_Ew|t+@MMbnaQL+oc?4`QsUUY;6UWw`zyiDj@nZ;I +zf>7Jjetc17>xXJuagqTnh#~mifdlMmuzFIZfsEA77mL+`$Xw&jZ~WHtD7ZE3-2ox~Qz>BHz^uJ^9gBJ;a#LxN +zipk|73G6#)ZsN^Y*u2G&r5I&Q&m|imijO}!X*4=-+(A#*6wAqu?s$9weqd)Je +z&+IqN3N>N3t0fdkt+gsBb(5)5&{d3Om6sA;)s7iMap$lyCAd5=Iu8Vm>_MtL?*M(m +z@tL|Tg@KD9HiQxeF6bs0Xe!rIh1f=9T+Wh-mnMs)r*lEJWN1 +zdSJy@uIwfCYpR=6%V74!-D^leGAz*LB52k!mzw2QTy~jK@>GKbUEbShNxM3op-C4S +zVV^a9La_G_5GAfYh3YllKK4zN1YVyFPGQzOTe>xlutDl9AmqbKmkS6?Q~#D@v+mI% +z3$b2|kA?2L-lOLOQ~W8);aq~qR&*is2BOinE&8hHbAoOtoDh(nYK*^HK3@#_BY7&A +zu(%gcp7T&X$8?pkQ0#kuuhEbD`MAMa2UD?NX)SCf5stk!L$kwmG>0Sx@mz<;VnoHB +zwgP;+BckR*FOfFc%iS+HyF)BWb9lu9D*Hbi<`k}ip1LH6NXxkf=kriGEs^XmR=TQ)o6s7n#&RII1Mc&hOw3|j +z*k&coC`xL%!#4z;In3vh?b&?Hc@Z-uRj<=fcaDSd0Ka1DIDWmz3d3i}H=)zbbq-%L +zHLdJPWL9CCq>Z&BECEeb`8*072PX!^mRc|VgtNYa>MW#A}ZyO1pC`+aDn0 +zZ)gz5A`NE?X#REiY>oA~CiAjQm|-kLTG<4qFmE6zD$vjuuxCAKicfO7{x(q1;9C6Z +z2Q!zNUp44?7`1?xzGwyuzcC~4e&Col@RQ|U~up3Os5=cZXQLsN!Hnp$Aho{G6sE)3K?)WF*AMj}+& +z@P30!D&hxn0A&QDz*+6fc*Bd0T&J=vnX0MWj#z|iTpK0cG2kdPM9mtfS3%pH0B^q=6mt +z6cPyDC|UIGF$2*Zq8%Z*^7x#(6EHxXYwCYIx5N1G`Mv&aq2PrQ!4NpG5zitOtNF4YZ| +zK4g=6PM-eT;q7)LE@?!~-O~YfgtL^Z%bSl}0B%F!3mQlUqNmfSa +z%bbh7CH{~omyG<=U +zcw|_T0?FxKfr(Lx_0i5B0cW2{?6uKR)QNtrP!cg +z(fpAR=g4IJ2$3!gC#62yQOs$FS3nWx8bCUUC96tXs!${#r=v2Bo=Hb{hzF+5o)bVQ +z0SA>KHp9;se_atIt9Am0Su=2~VULBOL`5LdgW*_Kj(XfSLQ9Yj6I=4YF`|PN{9xS3 +zv?PTFK!o;s*ct>Ztg~$Llcbt(^Inlqk3GEYmnrl`wl+2a^S-_axNB@_)4_o8?Qd|I +zJd6PifMgSxwGRBjvw?JnEAodJwq8dJPy;Qj3hO`;0!uZqoMC~&7DIG~W;A!~@Lq|` +zhkFSul5;tCmnb&DcH&r5&0YxA+ZTbELa$J)6r5kF;tfo3JQTSo%^(F{@0^;Hg|IH= +z`&SCExk(U9=)#D>rvwN!0GXRp1on=0iM6~Vjb+9Vi6zHuQm~d}EOV;35oS6KIh@veDrWD)7Nf^ns8iMF-r65SK +zxFS8iZgPhwf=iPgR5iNya3iy`IvY6;PdRg1b}qVO3@$%8hrn;%?t1gro+9A_;+naF +zF~M@m>GKWK$XV$N04F8MA{~{IIA15FvopyVHL$&5!S5GAtS<(*(%r0GXY?8aZpB>i +z-rv2Xtp(7$9!)svi;0ytLw$G;TYZAGYKx-wEsiw?kD@rS>%Umv_s*!dRgp<`(iS!V +zEz;YrOv2dasVz>w +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 +zat9I1>L?(iRx9%ZS2EWHly~Y{F +zJ;5DonqgIF=xPPv#Q9H+pBx+v@F +zE3Ncs9pkv!oJ5mxl}E@4NRF3OS=xQWXP9&x3vY<5c-=5=;C;624PEG%2^v(L_2-A(lQn8L6|{9jCR&z# +zVGb>3!pt)Zm2_pa3KB5O2n?Iu!nZquh^p$ybRBN1k82lUrY +zGp~{SQ1f_H$4CY3ta5|BoB2WeY+IQ9e@(nNd^cn9JZ&WQb6bw)dxPVJ9XF9@ZnLgD +zNE!*C?+PwCBR=z!l`j)`O<5SXL?E{0Pk7E5Opzy1hV^Aug0UikKl0$qR)pMS5isDF +z_&BG9h~oE0;DL>q#)4v8e*DoD{=q)H>*o95lUGdihwP{I}gaK +zir0j!uZ)Rsmy`Su%)PCKDr6?I6_qg4GzI2;?EF>>6h?+LBaqdv%f;A2hG0 +zCe#TWwBwdEqvxk_cS$~fCTD2tbL3U&t+&p2QDaqA&yoz!NywrL>FRC%#E9OEaS0Bv +zU__KJp3@IAolGr&u&AX#uu(grn_%YETAp{2OwL^K5EgN&nTQ|f{D3McBk{)@Xa*`e +z%hhv*(GXXnKhYIjE;fTvg1V0>L&4Gu2tycrtp6nA;eHGaOfLC!(|O5zI0!)CE*xk{ +z(zc{O&IpN6$$dCzOYIhmOpt?V^#x<$n9ie@cV@dWjgbll%@({wfD<9$7gmQ2)Xl@px@Dlh9-zzvb1VI5O46_=n`+uEq)`wW~e5GJ9iLII%1i;Eat%5RJ3Cx1MGaU!pB^&`Q9}Q0NPBp8R +zvnhA2I7tG?;Sdl^b38_m@kl);LT3i<8_^)DjN&GWLu5o^Xb~FOI=_2I04OQP1uY$C(d +zz|%a##foWFuo!_+@J;5CFs|1lwTo-78B`lKt&@ +z#-VbOik4HWCS2sdfMD4Z(YpU|1$_Qx?<`R*H{k+?st^HhkuZM`0F8VOWB<5jdc#y|JR^Pa;v%kecRP^*WD# +zKTYWE(+Yxn@Sp3lfs4dj%=}f$r77NBr-!0{<=Pt58^fr6(=3ZzliHkU?-{r!M&XhnmloBo=ByaQutT-*mKIU4JpDjf73$ +zZ^0Z{s`ADCPN3YajF|RbFM_rVha~7>r1aacgqYuDBwt3(@n&$ns{MSDGsvO0CxXeM@PKD-MyF)xHV6^nhBUbB*Yb|Db*; +zmqr3wWmQRGj8vp^wLD*JTm`sP{v@H94KGF4GVvS;Qu*2&%}aA;-+uBh1>yZS8gYr3V-Kw${ +zO{`?d1tnzn&^)a-je@P~P*M~y0!g`0-%HoRZ(J&gLb;wPV>(Xn0`O98;&evCm?iUh +z0S{oXoN-z~j_k +z>9qE2sf;UZjdM+3aj>5boAaN&`Z4Z9Q7lYfq`|@v{4&bMa$0Qr6JHrR~SktIH}`q+Fh0Gb7S&pn8=GAnAc?<=Tx55%a#PZF$2ORRqTB9|=7 +zUAY}Ev1fvE!i~F8H;&&>ywZL_ra!W`DAy8qDLhuB(SCnpyf@O0B$H|&c-Pjpsm#FX +z?baI|Pv6ge5_h$GVTuNV=tIC11?g>56;yx`8y#2crXOe7yTSSQNsB4O3)+p^9{HKR +zw0uJ7`rWpnvh4j*<-3d%m{)cyQ6s11D6pc1s9@lBmXNB +z?$J1SA9Ew#IZTxDZUa5RiuX?O?bi^t3s>@I=;2{3%{butqRe#yKa&%e22ALN&vM*6 +z4XsqsM|`Q5Wf_O8KG;dTE6^t%_boI@JR)RS5AvQEpQr|W*9yv$1Hj^nhh>&^ahSeL +zKEDG|Q%ED+tAYJ_0p{vxF$oTbGp*!)64`zuw)`5>3q&M@IcjhLx&l7yT0x&0pVQ1wWjn;(HgCsRP{k8+BMjB&)FPFOkwAhzQjhRl$7k7JN=AIA2K|6S~d +zX%sG)$Pr{=*To=)iBthX`zU1qB*(p2a1>%sp|$>AELW_qb-1o!CwN71-0M~S_6b11 +z_DJgfyIG_m`1pzA7k+ObfAD3FCtb@??->)<>`3ci=$Xz^O&*Mil=ZR=#IPgf#I_R- +zPnk2z9j-m`QzA2%I=IWGU0)K1=UBknd^v-ce=E@w6Gt_6TcO65Q0{8kA?DjCc9MKfSLHm`){3?`+Le6^3{`S=IoZ?&9BAgam(5a?DsFx>DbOK}uEO +z-byRH23{TMr-1A{l+aiP^XOklQ43E}K#}OE!(q +zvqR0^v7v|xKjikqf8@5r-#)B?=pCnf)BCr|mP3@xV9QrgQY#<&l9=Yk9U!N?o~iJn +ziMj@b%Guqh#9!&LXLo<~OAuEhFf0pgT7uh8a~Oe93LLC<`#~Yyl{y6JOVH>_1L5cd +zXz0!7z!MZ0nB^>qreq3S&TF1oA)eo6Zspm7K^&2gYvEV{*Sjt%JZh=7#ZqxQDee>z +z)Zy>}``f3?Cz280k`ugiY}5FqUo>8s#yU-%c_h|TAAWwRBRPj+ZZ9?R%sDqH^21E^ +zK?v$)4Vi=1F@Fi*))q6lJ*M-1ZC0Zp`>hl?n-4EsAgjTeLH%L%x)a9++kB9teWa+g +z@82gIq5cz%lfOCj8>hDB+=!5{6~1SwbwWSEN%?sraAmRVP?#lq?iS1npV%!@fIQ4@ +z`GPV7a5d~4NP*C@xxCx%%zrl%{*c#fu&PIU(<00enjl!8X_xc +z-ZPTV&%uGcK+kNI9@vJ;Dz2C?Q~pjh>A=M};qQoi`kH|~8qeyEVUhRK{C?3PsoiY< +z!(wlzbuwFOao&+&XWndN2&V0^)!dxSkG +zJHgFX+|rm$9x*iMuQ60LCjw}te22RQlz@FWx!%ET&)V1ItO!PAnWRUGFgjh-VH$*! +z;o;Z=d*j3&VR6kXkU{~nfuAHon0PbKF`U88;S`icO&O(_d)Qi9ksP-}Nr<`r{NT;O +zU&p=fb26?Ua}a6qik@r)UAE4sOe0N5Dh0Ni069xQL?8$?Q9$>fiaieQ^0k5bL!8TT +zlIqHVkYJWiVy1h>3%Db(C%p2q6QMy?b<@IDBnr|6tP)(6@wnz>rtfA6RLa-C{cREi +zvl@kZ1p)>uAjlt(JELxE*+Z*pI!p2#GH>QCgX>uK3m~`hCkS_QNO21W5wC~X@=9ct_go)rlA~VibDz@hab)b +z-aPz#Zb+gl%+rXL>6B6mm6Rj5X5NN)>{?uUE(iAOb4zc}X{nZo2QWxuI^=1t-WjfV +zV(MWhygvyI?GL84st<5tM_@Cr0W$B3ZI1ptfS*I_Z?hvFM=t1wI3!u$WtkZKfY3-P +zgoTYl+`<_y4kHrqh|p(1f`J^e&_nOqB;CG&JNYw4JRNS0rjm@w{MIdHh$QrY4e@YJ +zWH`0EX4QS}-{dytlN{G)GSZbsCdpxOL1pCTtZ+z$eA39Zc-JABa{!(g2lkO8G`bK# +zTce_U$t%9xOim^6&@9hZfP(1CA5)c*nyMr&pmh7ZjmU(#Bpet%Lg&%l)!?!A)y!47 +z++rB#R)+^B1w~}Nqn9yF%RoBg>`qYuX(QHgz7?o0#oK;;RTgQs<(3P9c2k82*+>Me +ziNJw>frWR!_I`T{Yw;WQ#g_5HgTM^(C7SlWKi}nvI?D#un>|)m(HM)k60h``698mr +zQK1oz@a%n=pDEuo)%4LaWT#O7sTU$R%C5mDYh7)6jhjZx{|txHs~I4gjI9hFlWWc8 +z(Z^UCA?9;d8V*xp%iKp<0#o7sHUyg +zn!R1e3iFfK&R4rqzXXkY@uMu%F?-m3b%pvYTc(alU14ulvgLz1+N!{fxx#*7BT53V +z0QAO6Cyc7B|z{$7Un +zL73=beQ%D5-^3(6j<@2Q&HR!fgrGpv&Lu0+FPYG=MU$W;1p>_k|%aWC4p9u0Zm|}$Xvyl43k0)SVt&&FO~yV$n}Ki +zrn^8uErCRn4Ut4+@9keJOaq7`W!QJ+eDxU~S3OF_IqW1b*t@tGR>wT1vK(xtZC23Y +zx@)WJg4`$~wL$rsFl;Y +zf;L*%T5rl3-zZA)C$|37$Sp%z0U$S7BSimp+yp;>DPbw*@(;FG7KZ}&y7rS$4+aZ(Uaqmr*5XN`j86kG_c3# +zQy$n>n;R^Acj-2{wWWvlw7fkva6a?7E)ug{%cpm|oICWp$M2H)V`7=ku2uER0lLUw +z%CFhgj^3kZ;q>y+4u7@hbK|RC5XZsy6_?DtwRJh4_wnw29Z6>^rKwiWFK4UU$hW8F +z>+$&T^6~NA$Xly)VtspH{kYc7?|SR{`tmxpwI_CDow$~_yVBE8=vuF}6lcWm)5qmi +z|6c7-bjj|7gWv$aW)?L){jmD61xe!IxM#nepd#Rn4;Gvmc#{w~{cSf`89*K^; +z2{>5nNFG6Cmlv$r-HGq3E-MhBpLuu4g@c +zVzisAAC{D^ka5iRq9-CUc7pQ?Y!QutCtKHq^L6DxZQbWxx{}*srtx3N0sqwqRW}NY +z|G@2SFXx>7BL#w@c|l;F#n6K$eQ{z8dwDqIS4;p=l#Umnfz+grYgpV9*b)t2=35iu +zFP@))OnC4+qCFp7a~?O%(YPL+!_z%JKE6I9*mHl%V|Gw#GIsb^?birtu>z#73!6+| +zeP6qQq|qIGxDw!}Pw&0=w}M8k_{)VhsQv~jdS}bLFSAI$4p|Q@qeJBqTIvLVWsBWZ +z_A^~1*s;q?{xMZ&EF+FeZj%oHfLKlR4^I4;i~*ECN|`sZvyc +z7w(*q;`KEwc$to2Qn^3L1O8MFHVx99$W+kb$vubk7RYC)3!FSy+-o=kNk +zR{)2`1VD;-SI<)(|G`>`U(`XYDaanhExLDRJ-;yJhJ|)4!p)R9Ivi=++V)0ORa9QS +zX)Ccupv5BN|9GjdPP^WB3Z@P<5VeGab-f`}Mj%Zd3YPDs>N)7TbXVvz&rnqJ%VM_5 +z$!31J@*rH6uPmlJ2^_Fj0W*EnK$&v?0z$5(h9MDS7^wYJ!eNCMz#^im>ZN|+ +z89JeXA1db=oL{c?wQ=Jm>@h*7Kw%5gN!9Qs`m79ZyRO=XXbXF +zO{K)~e)7O!DtXBjIwTn;dFhuLNk15TF86_`F*XA$21IoZ83>G@|9k%9QBibsM0v3; +zf%1rFneuBHnWInj8dB>Du&?5>>gF4|Vk--Uy<=gJZ{YV!ZowN;Ui={YpcX;kkGSoA +zD|l*!4cHO>W|LNtvD)IewJWFMsL5fjaVcqG}fp}#-QOzAgBWA0qC%OK=b +z^zb^LA5Wjrm|FmB*&(G^SGG4`p7Hgwf=zFiIGVKuP^dI9 +zQHr*H_^8E@bo$*bhac1;@Mfz2yTz|#E +zZ&VWuzb6cZkYxsAUK)@rWG57_=B8?1Fx+K<;A20&ReoH`G~En7@4=`qnZ+ojuM`p{O`Q6rA;=`o1J==2xVJ@B&Yd@V1y +zv9xonFaU3MqHLU)Th#{W{w!{i1@aO41+*zSNfLS_c`JJ(oHM*ERQM6OTHNde%}|`a +z2lOqz$>eYuFUBps1928N;3-|WwktEl+a;H@1?!|gU;EgXOXc;FoyFy&&BvGBXCg6; +z-5#Oe>$WfF**PLiqq~sTTr4x?(z4NQ>h~vpBe5H+OKj+^^!O(R-lgi=qfO%GnKdkp +z$9JukNv$T$J?9)KFB-E@>tU(N%4HOocy1;HeCGVXNP4D +zo^ZW?;PzUDM$;q354hdu|9hUevkrcymajl!4(HYT2i#V>`w!d>BL2OjIrk6T4oD-C +zeE*AK^gnQWT{eHgNUO=)8#)r2=E-|(!X=xi+LCpMMfXb)~`}u)IYPfRXlM}N}*j`?kw}K^Lk%WGb<{+|AE_YCfJlp_qd1~ +z2XtX+%8dy0iWO5e;SVG +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 +z2w8-2 +zD9GJgMSeerkZQwDhy~!?zOX%hq_4D!D(2fNXd!8%XX=n>{7C%cqr7hm!+iEi3f@r~ +z-}ZLD=vy@c6{Ex)pd>ZK6GP59)S{_Ec-Yxz3bER9oyQLz*in0qlmi|* +zk7`RoNmpRze)R%avlVM6J!8JSrx)>TQJfIK=Yn_;qPg%Nk5}~QM^wR^rN_-`hHfCm +zPZe9N_PJPa(?lFN818uDcV`Iz{t1fM=18FJIf>#n$I41+G17a4!n{Kq!N7Y0`SRmHNNAG@oPzrEgSV%?s$6CTjWEKW3 +znpYJIJ({oX9C;sV0ZVFX8n*&W$#PAtK{A5Yz~dlBCQ@REwW>T{uwn@YlI@=#FI-S2 +ze7>IJA3iShUM=$_(YB15$ZynSUn158n2tb9DOKq>(=ovKH1sucIGi#WbR#5k-5iA> +zBQyMh!D0i0OdC#DdW%-wf5<+c)ft6YlfihC^dsQF4Osu>w@Zslr2IlxW7M)ix5qm~ +zUe8t-Yeq;bMbFDg_m#hE)Lx5@%(YI*f}G;zWGyUM_GH1YXSDzwv5tm^`74O%uM8$# +zkMcUKp@{(YY~};=c~J7j7A}*wFQim(T--}h_^0pd(8`*1iSTB!ci%c|ZMDwye#08H +z2{9P;vrEutO{J(7!oo@_Qdz=9UKiIZL4*EZAyVFO3r1h+S)Jqfff7rIm<=hXp%|!VhwvBhF +zerbga>#ClkgcxZRRS+TIeR=f}#Lw4KqrguDpz?bRdYUfzxKY1lKx3 +zdJCl1*5V$4%n3ERvqJd|PD(kGLwikbHzH3{kz6jlDOby)A4e!Zpt-rzbak_D^pF^w8002l17VeVrL$CYQqi6q1s5`E!Slgp?jr>5 +zmB05-2*X6gS|kVw=n_evam{WTyRC_u!ei}|IDEc4bZ%l&QXfA72tsH+fEgHGlP-m( +z%vC#WxPXu;yxBD!7u=hGyr@!&+{?)Y@6cWzRBacg@{1`SU!E4ydpAz__EfT|386<5kP!pO;A16l!eL+B7O|<$2BX#yVRH=d80 +z;kR~YNv<(;n03?V84^q9@m1Kp(8HfgXEL`&AVliFu+u$Zi!r-{i?;GER5b|w4A15Ui!4p~LG;OxE;*eCrHtKwRy-5_)&Yx!sCkKA( +z9MMs}-7?KJ(UP0r=}8eBAeTgHDG0FZoY169E(q2kAUzdqT;zRh@ehHbmFcPGD|S~e +z515SUKaJg$K13iV;v@LQX;HVleOk~K>kVXHtyITrm*JbhU@5kBYpNaJKK>Gf0REi{M)Ca>DOdIIZ +z`m)s~hwO7)iO4t)^-qMdtzs}7x&{172~qdoU+oC-A*u9CN06;_e$>APBa0PNG6fTC +zJ0OrK8sIwkwd1$kr2-AFYwMbOgj$OCa?B+K>qfPoR9|YM?4YvnWnU)+nJ~VBm=v0R +zQyRrxO1-vCH_74vQAu08r}C|oVX;n-8?CXhk>CWbU9bVo)^2JQ>UE&&d>h=9D?4|9 +zIpDr<{~FwoSoePoZX#MMI#g`!AA$Pj{~FxJ-v;+w1~z2=x4{h*@WXMPRNC;r4Q?UT +zQQ=4)8q#gN33=dt8{FP1Wd!o>zlmG4yFSmls=XWVlNyKf+fu%v+y~PEqGgz5(o;Uxy7AT_P}d +z?0*~FZ==0PCBM_M{x!G(V$Y$e?bBgO07L?!lG?Avw9|C|F}SCSlScnBxLM@B4Q|+= +zzXo>`l)QD2{m_2AFG;u{0cNbA=lg8?Erzh-8e87C!9C=5cR0nf_aB2hqTH~E6g7aX +zc=@M{r(rpQ_R#)RKO%W^M&OHM2iGa3d=b;rWxqc0;MUm^;uhv!v~^!mFy-uRC8*hM +zEga`Ds#+

M1Es?b!|p;+q8qS=hJ1ecbX0zVcY4|JUG_tX^gr&j4xS{cCW8W^gye +z-@?y2qNTTd7FJihf*LlQv15mF__y47a-91S)TE2ciJrf*iFb>QcNcvmyaNwGdEqq! +zI>Es%32r_)-mOW{@p!nUR42Tp4A>U7 +zpgAH>^Vd;uM=DGDg-A_ycaBKcAh+NN=cxEEVN`C6uIBRH>Sp0yE$FvSfucAGOL@xo!5qd>u&~W+ca91P-ACx*!u$hRymN0WfTYS8AV~y +zuNZNzeZJ#Ov`$EH>C-*O|0<0eB_<>ndybp#=ifm}KyN_W)m$ziJm8b*l8O%T?oY>* +z-{j--e~kekOkA6N^i6R12(hmvp7YG2A&wALpDZ3rvT#!*S_OeFd1AO1Iuxe9HzOc5 +zHKaM?(UY$4Ci8=IzgsVdPu8C6oCT>`$pIfrl!({WBw~^^iMn^lVIG5XB={+MHOoaq +z)}wnlVZda{W;PXTN%OGfywI*xdt)Uh0DOo~rD^039Rw!hnnl}BWyB~s!6p=6cL6A5 +zDT!I~^O8D+_0sKG^N?5p4B}6Edd}{A+ld#Bw%U?smvIuTmJ?6hO +zbC`p&6+Fpm1Nz2NdZ&GlX+ztspptQbiUgrqLX-{TNA@D>H~JAHK@#alNfC59Y($iM +zYkm>@tDdeBu@s80H^PHbqWvffG^N~?W2L%z$VR%rdpl&TY8^24P +z_@3AckB$*Mu9eHXBCDaq1DT4iQ)~)BGv)$Lem_$-iBcvxIU5bH2glIW7s~czL!1IRVtfNkjfiMdw|D~lSbI>|+l{7# +zn2g>mNRqqM8os;GeXH3NI7zq8cRwM&U&;xn0UDwl;;oRy3X%RCDeS30%m!G_vLl^}^5-d~2>Fd|vR0H-%z{4c{T<^0WX4=Cr400Y2(Gu$d=-wZeV|1jKH +zY;XZdwhzVL!nxhK45DemA|1XG4yKP6ah}Ty$D6r7jTlSH_=6$k_=SQu33|GXtVf-* +z6HZoMdpv7jh~2(0aK?Q%{D1d@5_Z-S-LZ=!o-*^)N}A;DJmg4T2NKotj=$(=1>hes +zi`d0r#>*!v%6)4x{DGIo4vgVT7kqwTB(lZwsc9W*`g2W4(mxH32u7(VJC-`gbxb%@ +zP_~2os<;^T(r7$#4kXG8?3DqOVitfi(wA{V))z(rd66?zlCc~x^+@U>nOy6}WY7G03r(5ZtR#%?t2j +zCDc(4HsKn<-$iq+McVE}Pq@WS6jL{lQz{o#hG6$S9<{?7>2dwx>VvSO=ekMb2 +z5;xE__?i$dl-Rponm>s9iQC80t*+`mh+2F&UySmW^qJ*eoc?@mKVE;r5Y_N?iA_#kLri00=@o!&j7(+-DI +zdbh6PlSpieMrprBK0NF+qxC%m4p{hsWid9QmMh#e^5(h#gVBY|5>1gD5ueN^Y9tQE +z2CV@u*h&lbHql5bREo$5J3#i4f^J6a)IE|$fOz-b`Co^-tc_JzmX2o3rtUuu_kvSh +zJ2U9PovBGl!e57bX7nG2o8n)GTT{T-<%xE53daIV3J0H8PfsYI_IFvWKHri@TOX-R +zX&xP<<5)xJkNJ|q=9a>J`nM#A$G=5s2 +zg(UnqlPzOOLRtA?@WOt2Wc#0?K4K}9Nix`3Ac`wFm;=I@ozC&1`s#Kwh;8lg#4$d{ +zRHvyPHpJ4G%!vtq77qchB-iJcW6p6nmlmoX)Qi304bGM@cwCq2pFaBQBpgAeb2c#8 +zSoV2?PBJ=qYl8q`WaW8ubBg04Ck+VqMR{X;R^KJKV&VyHH5fSBrmdqTfRaHyIeVYx +z*X|6ge=sx$Ak7AO3#oUYY@5udkxA(;5VyP-e5AN^hsH^=LQg4e7PG$@A2^CFF%v8E +zLLJhT*N3`oHo(fEv*mXN-|S!s=B|iNk=_BDKP-e13Csy!rAk5D)sHX>hXGC^S)_&P +zGV=-x+>>^K%&;|e3GG>;1MTWH0OD37gN>|Tj*gguyP_QJTCIsSh3gA2kK%WNF5-pC +z{UWK;;)K1Re53i*?tM(6Ho~Y~v|2HUBF{L~-hAPn_Jzs@QL@d1#MF-{tTlW0*bi)~aa80C*0A;_FdK&!&_qA2RJHc7z=4QCUF +zRRmltg)&4(e@l=*hbC%qKRanDW27Cci!5vB`13X$2(GN@z*f%Wio2Gig%8<}){U6s +z%3SH@izhlBdTT-(`DT>9C_3}t3`x#?_zNepO+6UP+##0ifI`BsLr#s`oF_JD0AT9@ +zQB5W+n!9tNlqNheC-uOpwi`a;IOicnsN6( +zZARg|PV +z%hUf3U%NpA?&sc$2HRfsnY;a>YIKH}Qd+o%2Xs;PRkbmqn#ri&?gxIVm2kIS-P?H8 +z7*&T)&!m&U`;A8XCBF_JMCk!1=iqOEHzZKZac7C8w>7LOoreM$L5(0wqja^aQQeaT +z!lDpYQ|=rZ!1H~ZVxWAhQFTT^cJRVZEV@3gJmro_A1`k3u#S4`YWh!PcFU`*CWn>b +zTOHb +ztpd($T_ek&!<)iXE3_iSO#t&H3yx)H!N+1w0d{IPoU^jm)F9h<3&i9Q-DbJm$6(IE +zMCzJ+F5CEN^D{4zx9aEo+LgXorx&WqCQ2vV{eekRhW=U|Y@NXMCe@NN4_!Is0}D6C +zRL%i?J*F|LX~gMD7+tqQpf;B=*Fl)CFOVz97&HHS|wNpe*Fj4rHv-vveb&V%1g(y;Woyg63f&A +zEhi7_s)`A+&9Njd9k8$}Na;xcx7)uwT){>QIkLEkE85@rxZums#)~jOi@;hu<*!P21GOU=SHS+F8Yzol7&O9_~ +zJYjI^6f*t;af8b5K|!t3XdC?(#7$u0mhcU6pMOK#_)y;vH_11|J#q8@K-`PAU3j}? +zCR?_37++3A=2t$CH_ls9n!-{KYu*xlXVBlPe?{&%415o6x-k07mBq|BnaQBNJBe^0 +zt`V>B16ivMvk`L0Q6SJPZZDqqzaQBwUV=CrhT{O&D}RJQ5a}0t6jyXHr$RYIsWz(Q +z&9~DQb({LXBl$K6dUJ`^=q)P_CeVRZXS%|*xacx>XD0xQ0v9;DsuU(Eea0d8>mSI` +zRF+zs*>aSYQgyE+ +z$}O3MO8vfmLO*PL6>m|5F(_JNYO51Og|aJxaZHKBAuXDa%1B>q@3a6OvgtNu_kY0I +z=cE&G(ULV|?Jac$cd!tC{uTV=@OaG7=0M9)B^D@-71%XqG@XZSBrrh)bB +zxJ;!#hR2$(@L$9i(5vtJV<-8YO;5NK590O~x@>jV6dc+0YM-Jh{#@YCfts2y+V8h{ +zy3CxF#+^)Sq_4%<=N+>7WmRj$J^*&vouR!}uuC=7%JF9BAjthtMHYn?hgpA +z7fS&fxZ!1Z&3N(p@&51;yC#Q3!!=AFid89h&=%h4bHL*YUt{j=*2)FmHXBrL2t +zR$AQ&{Cc;Wc5f4E2^~s7wk#)&$qyXq*#~u!YuqNn4OTPw_lUUV4^W~lGn&m_+1)S_ +zmi%y6$#ou#=pf-zH9T+7APw&Ri8#8jrdW4!U&qx(uQ0&4`UDb>`{^=i=cOFE!Ax>_ +z!HtssP%yurKqECwOU7Ty`P7sLd-eh#v#vsaA?}4KWUpHXhvtzyKry{uS#DmGe;{t( +z7}qpsruMAbR*Y=nh#1$6x+p(6JBJ_AsU^18{?uVI|3KUT02^BsAgc-A6LGz`v-tl9 +z;yho~byrL2ZY +z&iWb)v>bSjxJdXY&!%5L182)4Ycjl_;HVjI3>CBD0H}^K)Y!p|=)S*6{I8U3A3S|X +zHEed1oa(DSvxdyw2FCq<|D?q@C(C{82JzIUje$$QM&vuUwNYsH6^5Aw8RDdHRVg_32_UaAWTp1R_t1rW +z+P>^*N@fj<(C3c4T1wby(cW-7Eo=`vq&iL(?vHq;{EbQ<;EpR##jZ;z +zXp%Xh-<$EFg@$qyAmg1CaC=>8*z?`|MYqItC-qu&fYda6ym$8*0D6G_{9aM3#*nT{ +z*B6#(b|W#ES~gpm~Cy|k+c2H6RDh%ZAjH9v*(qBwhBV{h@Y*%d%M- +zlQC_JQfTeo^Q{fqA>Wol`o{oG3o^^E&uSu%y +zif3X=sSTbg59Bm_3q5*U@Xyl$gH=9BlVjaFgijPj98WO!;;J*laIu67)FG$pNICfg}a4DpH@Fa_>}&H2boHED_u0txtB}~ +zgG{SOMcsA!ovvOZ*)%<4+NeLrku9W9^$nt?f~0SPh3ieGGg`8wL^Q;;X81_AX0!mX +zbC^YD=U7qR0i<^bDRq>*2!WndZ`i&$VoP{wo5jm+hLkDtcQ|QLJE|d&N-z+6h(T8! +z-oL@;Vd_gqVZ<3k`4ecPIfXsn^L)w?v{b$mtx{Fs;m{18V~%etUB}gySZci&SCV}(5qn!Kq^rq-)0$mu2yZT&`9gJG`{ZEau*Aj8EI>U#1)RfUez&n5Kx2hvj +zn9i3-K&@Rw1I!e(wdka;z&=J!QHpK%;7&~H+tBDRLsaS2Y{B@@JI&&j!v6ztOa6tp +zDa!sA#EqXaCx`JLh&z)V8o6naB1`hbNmgQmPgN`k8UWGBMy!i!MCfv(qmry3%WyZ>3n{z1I6Yhl6oy-m +zg;Ejo;}nHEL&VCe>8KN=Z;0EH8jgBGg_bWO|G+1m9B+)n@P9$vN8b?lR*Wa +zAa;iRG5-IBxF7z7xKVchg}9fiKN!jN7ercJiV$_}=$cdrQYEx1{tMzJm3nK#<@yiA +zJ^KxDpHae$BmM(%C;kg@8@B!nafkf};-)d1yqQU8jyYCPVHu$FF#HIySjW3>?gAtXmeRJ6rxt_6ECEKeCqQzBwmQ;<*lZQq9Z|v!RlRSCd&Y)aW50PFu_pt2 +z?vTEMXQ7|EXv9slUuoM#gpowC>PtA!qsZlxucp`gX4{cBYNL$WZQiRFZsg9S6Tz+x +z5$ai}5x_sgLqmVC7{t9PG?$7>z3NTC#Dlww?sbjc@S?{}q$MP-T0>rubt!<24szg3 +zaSM9Ncr$w{@>!E;H~tMuABhC*j}wpsvQ^x5Nb37=q)EblcoxH1GRdSL`{Z^K4g6lv +zA@Nb!SA4BhhXyRSS=}W0)p)KV_3_kYjO7CpYn{Vb1gP`AsFwYF75*QmHhFVFduix* +z$)3VAib#c=8(pQuL##W6wbKZT^NnIe4mnN4%85E!3m)sCeC4`%QzX^(U;Z0vlyl1# +zw}IHfnuCzndJ}rsX3lv)pKn9vOggx#3kaUcwyQK{Q0v$Oank5^A*)5N_Ma_OV>xEZ +z{96^AWww=CSGt9Y+Ky`m10GCwbB?O$#7RQIQ%;=dgfkqB{vvWsh_tjTb(!ACkmQ)5 +zJyF`lbUCf`k1`7Nc9bUfVY?=C0QfQB@ngi}4lH~5m;DgoP>V&2p1-qGX&^J!ttdLA +z50M*k;4`{md;ADZ@zL7oLdqnE28p<8X$~8-!Sh3BEKwKUjS}3l`Yi$-!EzCeRhSU# +z$O%`8)oaVs1j&c3v`#c7!rFIT(clI{&qu3WNv(Uh2bEwl)hFi*# +z2AYi0VfhTHGQTi+*G1wbBT!h7ui+{#TN%3=1c^DONz{pZSM|BX2qJUvoM15_RWV_Qh%T?|AslfSlDr1x?}mp)BxNHhT-c1NAl0zm +z0)_X>m=Rb>quV5|aA6@@`UYGh_&EsxKHgUBFu$6Pq1W1X>$EKzy!O*ay*N^DfhKTx +zJ~Y_uXRj=B1lHd>&Qg0|PI9`qx?OTQJ(n#K07mCMA(KosE=Ofhq3!4sx!3!K6DX4< +z#o#k%5QFGwfYER%i$+R62kV|Na5tECbENG13HK&BU*;Kn4@O`-7)R%%itNt7uf*OS +zsgjr1<7}*t+ely3^jc5gjsmY&7Gy~F*?|!O4ZkVw8xVqHY^CjQin~P@Irn3<`kUew +zuB&^;k1gGAAjYM-0;nYtpOhraB1u4UGh~E^Gn@c(a}I|7rnt{x9H;-GxP7m7fV#^T +zAipVY?1i5N@=B}$W#o^ZI{NgZCVZtPe=K6wiN7gs$Tw$BKXcB1C~gXkk~)305;!Kx +z$tt;)kGOA&n<1Iue1nEXN(ijThgp@9DrpLf13lrJ;x<|!Tvf)MfV7fzW#E$nbg98D +zHDi$WHM&>ISMhKg3^kAZ~puzyF=*5S&rTo_EvG6MeGOn;~_*E63M7lCKb +z&SBTa>J@CyK5P4+4h6A46kh1_6ixKYCsIQAe>A{>+e-dU-rtzAx=83g|HZ#H7nU +zT?@QoD7rlZ#r8lx&-)w6y3T1gs5d2{OTdLsN&ow_R#Loa1Qu6q? +zZ*P_Ug@)KEU!6~R`#o_z(u{YfFntr^wRwmtBE;6JEdun(?1zp<82!n~Y +zrj=B{Mf@b{rY|`CAB$UudH{da@D(VW_saZ)OxO^*T(6|3h|q)D-IJlxcySI4Tp3r( +z&lo3-h;zEgnc5?M3x6^@o(La7ixDJYG|$g$z)!&aRcVQ!21oa|E}yOEt!PefUIv|U +z^(#=Etu?ruU*9G_Aakls91Ykl;d-Jf45m7qIN%GRKO2STo3n7;7BBT4%7@`g;t~FF +zcM_R|t|35UI7z{RUBK))o=(^2?O1JeYJ$Se02UxMI+Rcva@fICr}DWC8JTsh>mrym-Hi%sMPGIeY#JC~lLIJ|AEEWB9r +zxA>{j8abF{Jr*lY)E4rNuc5!mM!J*0Vv?W~0>>2>U2@{~(@?@a40N+qmO4`o@ZBsA +zK`1#>qGdeA^})cAMpSN^i>GzG#LuPp#-Bm=+0D_ +zT3!7nVcf0q4Y3b-SmSRYELLo_92+406(~5%ee`KYixw`($w!@QkF(LaTo;fCR!&Uf +z^=1+YNT5dT6^}GG9;~v)QiyrG=&r@$c>zvWR9}i(&=#%;2&K9*OV%fM6MyQXLbz54+Rt +z;)+r|oEufMmyavc^|I8cNjO)W2(p0EyDG@#lJ25+4Q;S5!e=2N9o9EKf%VNC3#iWY +z!LM4j0@P*lEJYj#8*t~|ao8l6{2VQtHlxX?Hz`?!CT;?|#*X6A@#9v`(oeuw#fY`d +z3~=D)(o`^HyinqH&8NV)72tV9L?o35a)(`Jg?$umL@c~AJWR|264gx}YW0iVI7XV- +zI!}pzj5mAuN#D!^)QQqreSyxBOp>IU)_ar%k4f9lv&sCHQl}pI2<&@9PcBC+qxWrO +z1f_)T7LvhRCmT$)Hgv2d&_9pHVLbcu&X!6*ZrW#6fZ(g9+{wCfL +z>j?M`Or{hh;^Ro=GGe_ny5006MpjP~R4}{@`DW+xUMh +zZp5``#fbxSxxW^7+t3AW2}Jb)5-$dUHSc^_zCGSNH)|NdttlYQFQ*_w8ll8Gd^Z!? +zSdc~)Ht_>0v~B5BKBu|7=9O}jSg*x_`2PB{GHCs{SNwN)ebA#+D__S9)UefbG(W2! +zED&4^?%hy}@)k42=Q1HxwOl4@Iu9J=hjS`#NwWjZ@?-1u`{y)!i%V)k>1{GOp`F&sh!Vj +z3Gm#9&;q)=25cZ&XvYwQ(W7?)HAK+&IBLt&JOu@8RiJN()x7m9vjVl(G6-J80n&= +zlDu4C`!DAl0OADeaKp>4;=FC!6i;HWdw3Fn-To`ZbECpbeUI=tGnb_kutpxr=ZGIe +zR$PN|C8?75qDec7xgl<0=2IE=$I*Zs1{^y*^dLh)@@4v`B(qJ=(NqORK<<}T2?&HK +z6iGef1ypgGolwxn3xK6C6(*v=+Jplb_(Qnu9c=;6wPD7daA-ou2s;8ZI&K#P!{Q}=F7u9$e0Y(*!WHlV4g|pU5g0l_J*_VKI +zE$FukLH>X_3lUus9k|p&qfk^j;I&B%Zvlw%?Z#k0fjO0=IYP_BGkbCeCmswn+V&$6 +zR%&*(d4`cxuVwPD2z}->A^AJO@l7&2q*Cp3WQ0*rXH4LAJy81(wLDraf^-UxE{P1GcMN +z0<0t}aQEf7ni~ErPncjp_c90XaK%xK&^tmiur!FxNr3lUf5TKFr&Ipfv_@A*+)CZa +zCOl+Gg?=VcK^S&7&^RE(}~^KEgDK;|*bbsY)^n-c8j +z$>^F-G;0{FgtZZ~@B%3Ol$R-gcYEa9_oShqYZQp0s=6czyd5k$9gGz51rW;YPqqrK +zzb2l50;}@`8&!u>1fRCc+)c~-wOUcit}gc02vklpBT>BTC*CV1&l<-_UA0ADv%H|iY5 +z=4J!qwqIbstR1HSP*I6>*ZVid2^BUG^reZC9)mQQ3BZ-W+-giAt*k1dTqdY!h0^?5 +z%t*FQtn7EBj(6y#dlLh_Qp7T;=Ped^u_jSJxnkcKxQY>tF_5C?tiwT>@?WvfWi@2I +z`-SAa<_$8@<+=_fev4I}?L3TcSH?M49KnevUy%y5>{me3#a}Z!lsJ!@?EtapSyuGMkC2&b_*zQpN +z@CJZSe?@HXT_sfOb$H82htuWD8F7~3M$>T6bxOrK-qY9>IH0vaQw*LaX*y#8A?ipt +zxMI)5RTRT~fh|FN8-WC=2xz-(*5$|P*yp`CQB2|P)9?trgw4-j^TmJGU<(wD&PR5z7ct(!k4= +z5L!aksWQQ^kQ;Q9^edUs-1dBp6jccGPG1#Pq0hpVwg=GWO7M-siVHBwzEQ98C2o=G1Uae6VO+YPl8f^Mv3)8OB5oJs+NnrUgY-SG!$FV(6+ +zQ}~grAPb(1pM+L%0^CZTlKRsw_KfOdW={KrZ|J$ +zHeButL<^X`;{9)FqbsW8Q3HA=d=+|1CIsKL1h0^1Uu*8JyfoC<((zGj|({@1IPp +z!eT>D-rjgq(HFm;w%O~J_ge_pItDLR{M}h5l*SRoM(6yRjewj+o*`oT>Pmie9}YS6 +zYIm^&t;bGb-%I?#h8U@rjbo&B$_BXJcOo-(0gZQMeoWHgQQ=sRI-FM?&C_we&0XCxz&Myj*S +z#l){1UXo1iET{ltN0T!rrrI$Qy-Y9xqY{#Gr(-`&50gSDlbbdVuF240hD6qXDQQqs6xl=+{4e@bnh$L8}>7m*eu^3 +zDiZ;ZlLQWv`2%D3X<YNC)o +zyUs|5qPzQq7Jist&itM^%0y;}10Lvm1CTY63Fx=)RH3Nd)^j6!K#!)$Do|IDBAn5% +z$paCO=PfJfFMtf8d{HmA%j%71VLHqRejqJcsI42780MQtYQO{!o53TERf%@#lQIL~ +zhPH1RFhHgC1hiSt&mML7g`3Jg7XrHY)(Ft`gW~g0iR4>}T?R_F%U%hKk%_~O?96=- +z-dYS$Zdt@wl*uBBd}y@4Wr&iWGuU?)S+($^QOaZ=vO};lShqTyDg$v1?~>En?1s@{o&yzOT_Wrs&9BzQbwg9 +z`g3!k%LETFL5&g-vxjTv!{kKas=l<1nj$@xxV}sPeM3dxG5y&eNxP(n +za5$vYyI;IEg-Zv0wiip&M!wfyhT|?{du4Zn1SH7h8qt%7!8_9LlXmw*X3a+5SOtkD +z9^x1lK@f@aB3F2&TpZ7I{3Xt50Tbz3Yg7U0KuQ1+GFoYYs!9*^5mOtMN0uQfr7nSB +zJs(>^Hf}L#nfmzI3Z{X#q;Z-uvEmV^1h^()ri$^E%8N6|d;Sb%NWwB>mAn}b)WIeZ +zQRE5c9t(jVWC7rnip}^#bQr-kTln(vXKmZfOf?vNBaFtt{i{EyCo$4IJ+g?Hn}zm6 +z8%mq|$>P^p2v6w2X4;4P(C}rX{ljo0-tk2G<&CTVdG^yJ_>E(aQAZz#ET(JYGgMeC +z)quGKpH(ZN>Ykt(j5Xp$RL7IP0RzaEL$4mB%20^1q)&K@65KAdL_R>xu^ +zlpNkTYKd^m{C0gf+p}jB3Tq4M_N*q3P3|G0lz0bBqFPL44;^aH0HK-ELs1TyO29_n +z58Ws>n7${YeCzg{O_dnpRhHNSwVe0k#z;C4hq7R=GTDkF+&|UxR3|Xv0bp*TLzwKc +z7>b)PsaI+K^2<++E-+ +zh$zRgdngp+n|xjx=^D@T=w1nP(MDJEOT`vJ%)XH7ET+T!!BLGME>hH3g>hdDr_=yNy0PA$bV>THY|!j(GuB%iTm%}>kmg#V +zxD9L)e)CE$fK@36NEZ`myC906?W`Qzj_LK!ABxl6$f>Z(8gHi$Xc?CIvpQ2;vK5SU +zl&@n!t$H`vor+%TOEUa~FOQtYHdnMi-p;NLcOH&DF9?UOma?nw&Zc&Ix4IrNJ`XIC +zn>8rET0raS4!hLUBs&3Z7Ffr<~~)g +zDg55+`s{4;ta&LvB|2l>$AQ0vQyGpNAOGBB1qCx*yn~O$SmSFR)gv$6qRzhtCtN37 +zG6of8^ox(|*hbhO;=I2TZ0d03RVSsBtDV%fyL$N%Jt_xPJWum$+{a=A_4-Xcr>X&B +z^2nre(+x5iY1OYs>c-Z{6^!K7>tIb^Cnz*8B +z?J4GxP{e%4nyw|VooK^?_aB{e3@JIv={Y&{2$<%keMe8CREB$|G4sl$n6q_n}7C%465<8UjU-eZvaFGASjr_@xdDWUZ=gywtS90syv4 +zA|?0f$`b6H1Al6$q=-Qq0Af54^IGEhG6^XwzpI|Ufr_ci?VZ1)`A%(vWRl&&R79d% +zJ7`9(*INNGA?5NCPL3m5oPv1Th)syr^%N4kUm4cHt8eHcTkEIy#4h$yq1Xwrut5GDd +z;OhO*kr@&dY=r$fzKEDlC-qSm$&;&FI>@ObY)XN;Hc#U+P4$*PhSb-S*DHDhl1v%yI|6HQc;h750i6%{L~Bh)!rsJnoevt-N|ms +z2^1O(n3m?uwFm?oVdxl#Xe-yb+@vn04 +zaCAZ}AEldSs){%xry`fV#4-KP+G@OgY>6(pdAyXCbnk~+e4-)`V)yG4Y)^mJHi09W +zl;4**8tM4m_y%}lNzC4WZ5jFPd&*#VOTQ< +zkSZ=>^Y!Tjvo>3L;^lge?=w=5)f!&Sj}jKuHhWJ#XW7`cZb%_7V_%PRe7e!P@Pk-w +ziQXAv-JQ4*UGG<4DLAd=r5;?7&hnQ-+h)zPRW|A8$|h$fBX2$%6dnuuVau^J*R?4a +zZPZ;4^`D#}mLYYorR7c*dv1KcA(pyCaqkqerCYsE%3m;6?doOPDktx^6)Kj-Vzl2L +z`aaRS94B=t%5^ql0$BEf5wZq=*eeUHz4#{+g&&?v+AIG|o`}8IO>OorC{OrTi?psZ +z!UQvB;O+#ayLx{haK|4G4=G*Kb;YT~dNg=oVY7iO#U+Vsg$DN{%bi3I{-lH({5{2o +z>=IsqyOy`Guc4~xU3(;<{hcT4K(bMN1^D{jR2egXX)+?%8Zpb6ec8>v?Kx|$YrX=B +zIpMsEpw)Q@jZU|DGiD6WF1OgieVw~lVH{HVxa3k>M?q6wlY$z<;9m$TPD`9OMa +z*ccF8HoWj7pe3wP*>djcA38mHubSPxE +zs`}Gs&XtRwyld=or#1o7kg_)L^WZ?LPNx%@Rh4Gt&ZaBb(czXC48mwNX|5JNF9^T`Js>W?cTex(+G)2Smz47ER-FB +z+>Z-r3ONqj=SZIz|9l_v5g?8FlVyyYRKEIu1jlxQpl_#v@H9+BswWd_ER +ze)4N`4}Hf<7%0U!QiV0tBi}!KkimS*h0G9`@~F;TtLAqeD`g|eJgC4$WNAK+*2a9| +z(N$K-cnwR)YLg)krqXc$7wUCj>V$O>c?XOG*#i!IWRe_%iMR1K2S=QC +zRK(&e@hV!=W{sfxp|sJ&nFK=Y5qdH<$_o#0T{-Zu8XspH~Mv%rMWN@Z_&s +z@E3X`cdYn)nvcmML|rjnDO;^vfxAY?7p_X|{~vF6!ITBSv<;i??hfgaPU-FjX({PO +z5G16frMtTXq(M>|q@+{2yOi|32o>XgYQFjY#O^seyT=|-C>w4}4(8AZlzJ+}#;z1j +zz8t_*fa}+>!&}Ir2Zck^l}h8WZ>c>(HmknU8h@vCxV5PJq8x3myEi2X(?@mCZtD18 +zPu}ne&Qwd=VhUl2ka+@S!~y6a%?LX5su_Hw=JO|%7wpb2%Wdh-5+!Js=mWsO_6FSd +z_W13`c;Vd0ftEp$h)R&a9U;SN?Onb2JSWD!P;n~Oai5`uX$NdzRVdRwGa4qVl9fbC +zcHckEweyY0&(KoQNXw)0K|(uv-UPbN@4NQ+DZ{(S%xfL&fllnu9LUpo;dir$Ba(-y +zt*7Vq4rk4uJPIl#*zjTrn9VjV4>0`&a;-z?CBd1U%DSa9Qisb=fG}BvTrVmIms?T&8bn9puI-ryOPsG7^Eb +z3F&v2$q%rU@w88JC1SiCB;oPfo=n0A9=NCInY{cma+1%$SW4`jpQc~e2xcI?(V^BP +z-ooXpeRg-`qdCT%no5sGpgWm}_ +z!0xgtW1*;C27_o5>p-06rxT&w{QC5nWY^(0-WP~`1)Lk0X^1t+$lK4TUMJHkVY&vC3U4pxPgQTd@PxRX?x#rfGQXdn9@+S*4qk&C!a4LurL;LzMg3LUieB +zl}rqWlcC$zsRYTFX$zq4PRDX7xJ2WY>&-(`^%2MKJD8_5v(+56scSE_F=gtkzkE5h +zGBiCOXgVALVNuh(Jd1U^sO~E(2V#EJDylurw;}bN)7$BQfS_K|>r#msx_Q2>)mS?) +z5iG);aC)}H(&UP;SaP;51&xrgag@Nfaldw!j=p4thJaFu_#44+SZu)X)n)X6-~jK_ +zKAk#A@P63yZH#d=~GweH6ZcmAdxn>DXjF5W&u3 +z@9(qR>pj-^lgQ*>)<)EgmA1An*8*l1FFwmvym~joUqSqNvrMk~b3i*khySa6XS$%! +z!z~JHd~#F`>p<|*jzltbeTovgu&_vLKPQ)uf9uG~IaFVUea=z}8_ +ztHKhmKGuX6NaWdMd%bpot{=Ov8B1KQS2Ko*P1)(2KOqa4Fnb;8YYb1V;vvsY91TC> +zp@kIgVvMx%dyhxBrhJC7WSQM;(Bn<)1AkgZyf={%bu209*)8lwn-%$KtGN| +zUOZkIl_(D&n*StdA_U^2#;aMcjF}Lhv}^>@M)TU(d`IX75#Ni)9Nnqh)SpK`n-J6SwY?vlU?=%Dz92PSzcp5bI2hd=O6_9MStuevH%cLOaK +za;AG%sz{DMLa_+-cZ^BNQ}bqKW0``Fq>WnR!>4dLNTko?j@9fEUgu7VoHbhf0HrN+iXW@#}XQjDwBzi2^7Q6lc3S0c4_bYGyrdG8sNg07ArDiynEDACmLf{ +z*K4P9jJase-&y9<9KcRuHJIRe$<2neK#-(iF|mQB&L2m0R^Uznr@aY6Nm6_X{SMdv +zsddbkb{Z!n2X@Ip_8q72$5)(hWWa~>Wpg$Wuw4?25z>|-yky8tx6#vW?DvA@-%E6F +z@!CV6MjJa1H;iux^PK66kO&(TKM{QWNNqbl0uA&N#3^$o=h@lQgTg^JZ^;aMmUs*W +z#ATvHAk_B0c(@_kuZYeja{VYwZO^SH)tq2TUxMn>zvdjpAfAczmw(e3iCL7Z3)|#Q +zsH&sFRR#pc{iShnNT{-D&dOa?(B_QX`ewJM1Q@f{0sD)L4&nPz1u8?+9SFOrE6VvJw^4(j-r#JpXMD+ +zngIM7Zr>rIzi*dnahL2zC0$_o{wV7YJG6YIRaI?Ub67bGOSNw;YiQ4lt@vuz=krC- +zJto$KRX1@c0+d_ChU!*3Y#E%5EAfsn1j;z$z?e|MRVL;vdl3SW!25wS&7$JJ8IBz5 +zJ?&_w;2S;kNDa|RkhOCyIWh<&Vp9WbVJ?L9*y^gsE>H +z*VC*`4$I65vD7*6{j#;BcePZRRs&&TB+mV1%`mH&7WKsFgc#!(S>~R1C6JvXT^>8# +z+h+$x!^J-Kw7WJdSVA;G=)4q~?9NQg*(;A%ZRZuj?AX9rybDj<(%Y9*ABVre42?Um +zXCx%3S|n&GK^HxdMUh;$(0)h-%Bc$X0z?;-h +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 +z#T31^77;NE5=xWd@(2{PB%Q@^c +zl)%74qe0JSY~na#H#pLUKgI13$CvE|t-73zeJrQL?-*p{lqm8{s#<~uUkuV7oF#4N +zc%8v*lvW!A>i3-1NbU88s~L{^iXWU1>`Bb%tCGfd$_Y8*t>-4h{^rna*DfMH^8D&F +zP9gFu89Jlz4oL)2W8_RsC)JwPiz51@F=|FYLvIlbf=F0E=1^F0BkFuSBRg%@a +z_67`q<0Pqn%wthcv|ys?+D+^chEF{3PdN79b?=A@d?M|ON7i(MX9wtJPTkh#>@xc*|eKrRbxP3YjWO5GTz|XkS-cDzWqqu +zo8c=rcs8wo=`EhEyO%Wwz_WYq@NA$MCZ{_*dwwu9kU8-Oo?TgehiCKO;@N?tK2t|9 +zMF2c|=MK-NhhHC0E4DQ&*_fwtxxuqF?(uAh?TyDoTtHGcc=o2UFqTSxjxXG|8bQ80 +zJi8fyXLG3j#IsH9>F{sy?0^FRo*mzq#Sg%_K7>CfVMfc(&Coo}D!Vz_UjI +zcy=`a&-VU-XBR=1{=l=*ap7D5cs3QiB^w5d4s4de4?NoxfM+YE;{{{^@N5Kc*r-`@ +zgy(7)>!jt0eJQ<0MFiQy~nft>g2!N$-J#qoGX||vKJD$BBmhkZ&&(^)ivnPPWghKD|Y@d5PTebHV&vw7Tvx#o; +zY)4oCp1s(y-0DHL3Ba>sf8g0@GaT7>c=q-0csAiLJX;TdXD_2tH78}A|AuFO`XV&} +zz_T~*@obplUwF2>ni=ICo=s?hO&I~ev(NAFZ1X!jd!H>h8O%}O7SGP(8Hobm*-=@1{Tc((5^JUbXo +zUaU;;4$p=k_=#r&sd>fXyj$uyOiw>Zi-GRA!L!o=cy^`LEuKxgxLU^Va*JoTaNpqB +zu4OlPw*N0Y+Yf+egUj9G*)UiDJX^x)7oKf#i)ZiN;n~M+f>dY#JR5s)`!_tBS8-1G +z0iIn0z_VlS@NBwUJR3INoDqO$`@lcIv*}G-Z}4p8@@5uK30DA~&GG}!F1p3D!?Z}0 +z6>jkCqB}fW_8!kZ2H@FwT&C0EJ`eG1^i?7zEnjaq|KIRz)ao5iQA;4Y8$4TWkhAi2 +zr~_PyZJqjkqa)W30)@!`{3M?{nhi6j`yq#-{y}`3DcbtCU +z*(n=TSGRa}&qF-B27qTnrT)aT(cl4ic3}T4o=y4y&mIHd*>Ue5;Mq`A<7>;ec(w+? +zJ)Z5U=nq$le1~U~R!LSU+~C<={{hdgzrnM^yl?RA<3I51NMLE+oO?Wb^C6yX;P3#? +zPQyK(`vcGR2?pTVG9M#lZt!gQmjFDw_Xf{qxWTi>ivf5x-@ozfp&L9Kve85K2cC`f +zC7t29L0*BBAF)CP0MAxv@i4OLd7WCZ3Ba@cf8g2tb6(+XWF$9uwt}P`0MD+t!?O+d +zg-HQ;HnQ$5o(*Xih99{YJ)&}hXNT3cle;txFA8-QoSq5ccc7Ula5&rZ0-vyr{;@N5WSP!&p) +znj1Vj_Xf{4yv4KW0eCh{=|AyoMqU7(T{z1Ue~V{d-r?EAKk@9%8$3G@fM=WD;MrEf +zqeZuPHjB>{{zo1!dVeZZuy00+mMEN{Tt8T1K`;wCI7;+X8?G%$t|9Z*Zc#|HUQw+S^Wl! +zf8g1o|HQNH@A2$3lY2b7?FXK1^EaL?%6Nxo_y5APhyI0UFZ{r>YyO32f4af5{d#70 +zC3_#>*&l!4*=cupcK;3yF#Yd%w%G$b8)|_CRk{5Eo{i9xdxK{~;rXgQrGMkukw5Tk$rn!z(jMU18~{A~1oju6Evn{b2LBV!2Di@q3(ppWhO+z}&tCZ# +zo()X)0M9KC33`Q#5go9h>zjZ#_Y*yYQc)WR?E1JAYr +z;MoR0@$4{^7x@qI>9>a0uk2{S(h7 +z#r_k|{>a?p{kV_@^A9{*;sKsbR05iLi)W_}KE$)R@9^yGJ3M>koss2x5xvw{cm`UQ +zZ|xK_pi700srAYJsvsLF^43j3WM`+gTFy_u@eanOs@nxx_HuPK7LT2DX4$;bReic? +z>A{pD&}(4C`iXWBW3(Jq&m$KK+&S2}2Nf6+d><-?kvomYPEOFW?6izZb%&@1jBXw{ +z1Ql2%~Dr6p(SVz%JbqhvL3VMI3L +z`OuSP-!$bL(Smj-RAVvxWIEB1xkVfIN3;2c)GRbc=9Ood>OXqaYCx^Ldpw+t{^b)) +zOsS@y&G1(3`#j2YD-x;Q2>hfHayB~PWdYCAeYhwo2X2=0P3c%;`XeG6B;_CgpNNrkkCzQK{t90sen+P +zm4KQ6fqulJ>yL=oGt?i2b>)*&wBXLyrZUjDV90#EB|0+qeH(SRF|j5%VYB)wW_299 +zOHWMtgv$_R>!=y0tyELaoQsPd)~A(*5NaReggB6=axDuplM)9S%i`PN**gA??bso# +z!>T+vXpJT&0{nU!*XB&xt2pn?O0@EwpGkWTft^tRnFd@sh3U4I<_A;h!Rb6X +zAh6kMHuDgqf((Pm+u1Lcq$|86qw;U>$<)$Nn*F@}iZ)7!O9bCqnM3DEl}6cYNn2uM +zXA({f795T_7P1F~zI`%kI-*JGOBZQkhWKg(CD +zSjjuaJ(=5pNbuMA5cX0P&N$FfgKQhTD;>YBF|u+^yo4Ns5?NEM^jJeoP$3ze>0nYK +z1Y-^;f0-tjN!gCr;2BkHAg?<7lRMJUwwwHiXAVYOm2#Phw!nr(uLXPqx69A3Y_p_glc1-PtGE$=pe- +z<_7vtx;#U_xKHW#+6BVTcyc#X>9wn;*gKpqt@^*()K1L7tuJ=fV5bDE4 +z*Szu6$;H{$1>uK2wqoP!!q!U`TNZ+RvE~>4=$JWEC2Uu(U!u==6Jg`yRj{!%qFo_jE_V`$cPkh)^PET6kJ$RHtl5Q8&!w04-k<|yVBv0Hbu!q +zS)jO)#r?8t*)FPaEY+z9V{spabt2`w*_pHif+VdPzU*BfzT-G7C3^j;0oKWR9`)z8v39_li5H +ztDXL=O*-TDjXbkE2l?}`pO73LD6nQ+(0gyuWJez>wlI1`;})b~?z)+UjKt2fCxiG~ +zGVPssnNq<9gl`TfxJO192}JU-jd@#gd21X)cY;i<;g)&vzZ0wzePV0v{26kcdb}V+|a@N1TpV;gc7f__pG0IoE6^M+|IUwE@NSbYt+$b{{X=n$E{Mp;Os^;{S&$jI +z?&)(ktnZ^)=@1x9(G=k_sXGzyCbrNZ3At-vP_Rg7o8}{IQq3RytSRclo_n;$xyWG? +z>ts^`v0`b?6iQi0h;)6qBza=aOl!02j^{*<3&H7)ecD)uFOk;nvmVF^ht>AA@eEJg +zOYzgyzC|GVetAonDi6b(5j|yXH20xUtP4Z*=q|qE4+r4xSKkg;x0G0NDRXS+^oW7R +z4uYbkU$l!hc8)0d>#paFT18pH&ZebMr{x70r$1{deXgoZnrEvs`*m}G>uc#jzu$6_ +zPPu|{^E~h4nmWDc5L3O=Wa#M8lsDJVqUzn!@1hg?-&h2U*{e3l|pN`WeqVOPzeiiOvmTh#jk +z`fIlHDB@Vg%9jKMBnzT}OnB5fp9pTo*dRI)db%TPO%52CX%$*w&BH>krsOdpOHp!< +zNi&P2b9jq!zf`C4_Hn1-kFmn}qDI(kRb8YL$87R&_H#*k?R!?*z`KSd +z3@*VeHRB;Cw&@D?Mf&KeyF7OMrgN9nHjg9|eGYk*v#B@VNtvhj1~RBe5Kl_!+py+- +zu^yCCuvZTl!l@Ec_Zist=NF57C2SM1sF`pfR+D_fCPBl6keWvx$Lqv`E&<%sAoD&E +z``f^HY+ZcgCS+Dk^kVL-+V}=02?QWM0(5cMa!oJ|{1_kV`T^(Wir3WyrX=K12z7FC1MiTZ +zJ+(y`)G-LyYnjy8vGq9>oy+l&C>k72s0udkI?v*pR2&sk5sV@$%&l%#eheRnc|7%! +zhuw6)&lqkUB^GPAxqiaE;*tU{Wl}&9c%1oo)FfQYRhqQiX6`yGQ8;OhtDO#h8|BEB +z?FCENi5t0qal)%`DFtm-c+>ZaK=T&s1ioM`NufO+(rdGUoZFxD(n>2;4@jj-yfrov +zrX&lV1BKpj@t8N>L&N_g{qxcxKl~ +z@OT>23Z2jzDt&4-w+>83AsxwDCB<11(l +zJi71G(r0R8#9P(9qDxV+GSWTZJa0X!?2NkJr70pg29*0)98$gw9(tdO=CtmV!UrRG +ztfj^}HoX9o9Fae678^6{)I^O!0jK~I!&jZ|JE;g$un&EkQ}5fBR#!&lH%YR^X9zl#7Y`ppxjWN?7iCjGr^qKE4TRIeI%)mfSZbd) +z8zT}ONL!9uZz0y1WLO#|qorHm@gWv|lkrGE5!Sk(PC}v)l=zj8pFErNa<#hQt9>a|?sDBK3t}#c#}c +zuOhxMcTdqK0k7yw_bevyaW@qa*q{6KFtw>5D(G_$%RqgUV@#@#VNd9f9F}-EwFSVGN9k0x@r3L`UEY!6B>;_ZL|_fZboKVHyd9U1ISBmddlWlfhe6G1+J3p +ztVJR3D=VhEE%llQwk^(lFBB;qF8vD~qtx~eoZOK?FQzAbtWBTt8iW;flti4$g*Xyj +zLc-Oi`BJ%XeFIIgl9W*4Vp`vOjae-U9B~Fy&E@KBIa78agc!Tdf5FhiS8Nx{&aJQu +z*TQbM5w~+nz{K_K@r1nMI8}v{1kIXmSjk&O`nuuU)12I5kGJ6pe!3|bcCgvYPg6o?88l3Mm<=U>4`!e +z>qgSVqr~-{NKL27X`dsl*a|&{`!g@`o8?pH*Zvb)5@44Z8XkQ84Rp4PN?uPi+vG7Y +zh{vzekLpvDu(o!v%3|j0N!oJR~3@ +zXqL;G6NXh{ul19wVGOgRpvYd_Nf*jMGoG=$B&PqCpgoG+==W}{oH@ETDJ<%1QRb`r +z`4~~gFDWZunc+^pTWJTOx6A71*i@09=9;C*Cg#M2kjv3 +z2CQcEh&h{3p;8=XSqaqZz-7bei+z}$&%S+i&mtthtUv*lGS+Q!LPt953L=? +zu0sB7Ng-Jc(_W*bRle;xTae@xQyI71BC8;y_dZlP4bIiXa+t+vd0ciS$jD<40|*_- +z)E-{AwDBqb;JsKt2!(hT^);9S9;<~@{^#vy>VjMJem*C!>rQWvl*w6@A>+GtE +za+wi6e2rK=B>$%sFIn1C@0ydVWiO?$H~jXFF-NvV@fEvY +zL^R#@Nx;~UqU6DcY*$%9q7101m)&wSj!(S;aMm?QOJd%~^qub8Xa$cczidc-dYWMv +zfYWM}@dPU>I~psWMojr6!+k+5DMmHW#s9mpJdXIui` +zjEq<;jkiqS*2z4G{Ix>c`19rruGHMw`>dbB>o{C6FrqdQPlHmX!9vPj@(!^0<93$T +zkz0CeP}(4re#y(%eK|ws!PGG?w1zcNV$TRJtP{K{Z(--P3S&Gn?7dzIY7h|Q(FQ5K +zUKW9BFnKW(YK3Dv2!Q^=ZP#X9B(a(gm;D;BS2oCpYfiksrn|YsNLg5Qv$Ma@j=U_A +zpE-VGPyKCsIk)T}$@2|RQMgc8jVIEJ(1NWNH1JFMz#jJ%<+cKiBei(9ur6gg4V16Z +zFWn}<$>hj=`ccXPX5M4lK$;nOb3YOCp0wjWg*Y@8S6UY5Yd)|679Tb9)=y^e+Eh}= +zk4S78Mze0De~-0NPBd6P%PMXau?3&!?)D*>-xt4Ab(})&Ii0e)C+!F%4w`W;<&3*T +zhMjA?6!xhVW@641$Z!)*5jsY%F&sWn50B~BGP4B>nzySy%#@_@{5c*^)ZUIzVpH%l +zo)-)f&9c7;S$p=xQjCVU3rvrP^BOvno|C)YUrzbpuV`8Dw(zVG%`8O!yRq +zJTstFLwQ6$T-St&TPq+`(4yl+Hn%7@>FAmkr4jT+gVtNGcRn_YS#&YJl`oD-{D_dDq}t+YbZEE^yX-0hWNOM4o}iDEYW4b_ivsTq9hX1jr#vsSHBUgT0|ud{5v)kB$plONZC7 +zRpLxwyh7+D(Zomk@B$Fp&R)`D0?AeLqEqHmfy@gEs9?0JeBaT9hyLEe8VM#Lf#xp} +z=ZYCo++qN74Y8Sibzb*zexvqmn>1aRcN=SUdLmb*iLzK|I@ox5mj*7ks_Ym$ZCEQZ +z`bqY2$Dtmmj1~`Ke0^+;KGJh~H(w@kf33E#@{ +zmm~Cr_|9c(UM)FtM*Dp*090AUa-CF0<%C6U)tAiyer +z>IO{4QSF`AtY@8WlJJQ=00XoZX;(4_VxtHW-NO}G00X_z?Fq@GHBrPtpi|jpk3G^0 +zZK)_S267LLc9hSXH3FumZ%dxNK3kdSl2w!F)98J%vEhw#`f46@+~)OWZVg +zGv_erTsnF9(fO0Dx)@d}E;nJZC_`N-Au%c6ZUH0ettT83c6~7I4UDDLh33yb*@bbl +z*(*llTXa&8lfC!!zB0r`JXq0DEsEmjdTXNgT;`QG#|NeL65jX|%X;FRbIv;>Hx)e%eOHxa=0+AdGMA)9js$|-#d=l7e|HaZ}qfT$3_#Xa!ri`X^*VEp;zrUKe2avDW&7Sh9V}Np3tNKX~dl +zZ4j;X=(z4!uge%-7irsw2iS!fk+3>7h|y4vPW@A+AD*Q1yr+|-OT?MB7ksHQ#tURd +zLpMxYMAFDtr)A?w5=JywdbrI+WF%uRGUC0k>htsDQEj!pEbZ2tK@9|e9yw3Bczc>0 +z6Bn)PjpF0fiE?T3T!KBv +zU^TIb{j52G(M%)h&yq+XGV0*N@i+5{LVrJ4o1%gJx4aptq +z!1L%68$Xw9knm1lP;nJFE?A-&k1n`Ue&veNX|DH}T1t6Q2~#rK{zjpj)W)J_{_|aR +zJI7ett*xRA8H+U(1;&mTwvShQJ&$P@o-LysE!N9sH-Qy9sPSOUPjJr62zat-jA3ejd9zv7b+Se28i`Fg!Jopb)z#93IDqq}sbE_C +zT)ReBbBnQAu9%i*xe2F|nOmOlv@n$+eDSeFGSYINCH8ZXPLB%Jgn$N}Q +zCb`wKp&lFF=-Hs;ITk8%3d#UI`^7ccPd%Ier=A`4P|uECgGj#7v$xvs^lUC7|L6r} +zV((i$+i3l5I;R0UK+hiO@P+xIXMf5hzjnUWvnQy2=-GiV06jYy-t}J3Ztegras$V@ +z*Ru~jk_P!RVutrI0ebf3qkBDjr6U>b%{Hq9QCV0-hb9XTQGJv(r~^_3Xi0 +zJ)6(F^G?q;z0E^lX89J)7uHJ-cI$QXO?e8=z-5qDh)C-f +zdUoPJ^=w@v0T_UuO}qQpM40zZ&(<1c^SINq)7O6K*^(0x^0#`n>W!Xl6nNZ?ZSzpi +zmX6P~|4q;Kk-F2f(VfBH{#(yhyw|g_Z}e=NLNtp1O3!Aw(X)ep=-CWAf@_?p!T>#6 +z1fXX(-RjwJ5B2QbpL+K8S(q?z_YXbW<3`U$zR|NK(jVyA^Cq`?c6aTap8e=f&#rKN +zO!`pIHfsmy+3Ui|EU}hWKlSXk|5neor!Ahm(X%^YZ}jXJl|S`tsyjU!`Inx3VK~#R +za;Ik(%z3`O)3Yh>^=z-VKlSW_$5iWm_j-2F13h~^^MRhN0l6zauG~7~*%#Pyqi0tD +zA*BHH>=ySQdUo=io_%Z!T~pR8WgmlW0noFVf9Tm{5A^Iy{u@1e^EW*^?N-nB)BBHl +zwl~usdNvSyc>Vf*I>DWut)O8b3%La^etEBFYms~S-0In?5A^KgNPwOl1JJWG?(}Sy +zA9}XMZ+dn)=i-f?O?jthYyYih2Q&fnY!u-;J^OU+cRl-H=SI(_1nAj8_jhrsv-KC!K>MuPzpzT)A_Bbb%xzV$A|J1X~^Z%h|%lxHhd*0~T;)wt~+afP)?x&vJ +z0|C&p^>6fS&>KDb;7-pbYn2fFp=SgAp=Sr&=-Fm7ij#lp*%sHZ!w4dYKlN^=t=(SaL>8{*YgK +zwjYU&a2scwgbP5=&KLe$&qjgv_4+^Q*{y%**<=7cTfwj9PS38p(X+z|lz9Mp_B!%K +zw*=^&p1p|or=ER0bgO4?+uiHgOn>RwtDY4Cf9culYk%q4G0xKN_j)$BQny>;REG*< +z1c9s|K+hg|9fBJ6;txH0qG7@RUwZZod+y8wJzM8S&&~tr*?C((_3Ro-fSwKUpY`lG +zfS&E$3DC1cI2qlmIw%ul`Y%1Z9s;0e%Ol?F*-$v5SpU+qONYoX{?xN`0eUv=4?P>> +zpL+J%q?gt2dN#-ZK+m?l(X)qWhgAW3b{UD+f~Vk5J^Q)m|5?utYRrlPamM(mXBz^e +z-s;&_KlSYI%n1+lZ0b8bTl-eeX8oyW7YtB11N7|S4>x*tz+ZZ{A=lbxfSxTca<69> +zH+p{hpXk|8_j+~(>Pleo%>VIZvI=(mi$f6)>a(Wz1Op&lkW6vsXz7X+B-cv +z`ENZt0}|&(&u00lXG7iU**%Xw*lz!C^lZPs_3TG~>e)4cElJq?tq=8Vnj1ZPK?s#& +zC!K$?kclv__otpMbE{`V-0Iny;2nSH*@Iy}^z384yplm0H-Mhqb=7pMXJ5Mht!E>>e-J0dbY%W(6bMZ?)2=jKlN;c2YNQot)86^_lKTM{kxux +z`9seRl)KTh`2l)%=`THd;DMg4`cThK_)E|3_^D@~{iSD9{ibJs{-tNn$^rCj#wdWE +z?fGv#8|M!_+xDTJ{o<#dz1|^MzY7|8r)LZOre}BE>e+HX_3XMIdbZJDdNwzK@?U!P +zVLdy{KlSXozw~UG|D~SI^#1=xJv$JfXOrIQ+2TPD^=$YXJzMiu&))ej^z2f(hkADX +zy`F7zey3+I{0BXIH0p<*9Vhot&;FeGr=CsuK+op+p=U?e{Zr3wWBH+HkN&1-hh_br +z_3W}=dUoKQp8Y=HKj_(0@5G(%^lY3TdUnAtJzJ{scRf4uPS5W6hn_8WuV-gH#`RbG +zQ_uGQrDt!51N7`j!~d*jE8ghYkN<<7jdr7FpQr)!Y;8~FTRl7U4?Uam|7$&4p8ln07fSs1diKUKDc66YXG{O4XLH@^*=C>sJ-g+Ho{jUr(6g!T^z5Y@ +zJv({8~xO?vyN`{?70rnlM#TP{n3EOr{FI=`$>sr0y+ow=NA5!*Ozjh +zZqPI0kMI|@k%ax9F?@6)KCNuFC +z%JwQgN>Cqv?8aOwKHW6CCgH4NogoJEF5XYUzJk#5F%qXu9 +zx;{{@kTLg{cgml?Pm@Yu?AHzTKKv=VbFUzkx~lOD +z_Q$of{e&0i0x9p0aYfEOZ9i;0B?M<;suRlqPVLvD@Xvapwd)nIj&NQ9eF_T#!Hka5 +z7c>;9nWPR=2bt?9{5_IJ{P=mybMg9m-*0aZjSMsh>%Ya;ASu!M$x7P +z#`s4W*^v)Sf-BYKTl1K$OEX?d=l4ogy&6r57w#Dleq?(7#+?@5d5=??D@8?ayJib( +z4*DU5{b%GME#Ko=(s^okMsB_i>wD40-wQb2HjgftvnD;hi`ZK!Gw71~w<8&Lb9!5h +z4Gn6yg}-OZ7UhT5ac9IfHcX7c|;7OVqm_Ntrqu`m6nCh`Q`yCoA}Kwa^%|vjBc&qkmE2cji!ezRTvNbu;z6+^NLAw7xdmu@*k2 +z|MI0Zbf@J$e+rveo*574VTV{gQ9KP;*I>fIDJD(X=IfK&(2)+3S-``%Ao}a^X!9)P +zRp~Q*{fh@qaxu7_^H0;PhrIR2gv^pk_sOjT-)DVv>Yvw`FuOap=n>+iyN(MyJgIcQ +zCM2m-J>6}R_amvgfTIMS?$d@L%UgD +zY93aPFXwdMBfj%vFD}R8-kUv;6x=oC-L1^m`Xg_9=?Hj8n%i(Ns`iX1y$gOL{yW(m +zbG#MC9f4_iwW-0vl1Nt#{!0(d=WqA*FH48F&qBd{Bca}qH%EngbP=9>R@g_LBKg{} +ztsfhOH<2-p7Mk#Jis}sPrm%6@n{$(`z;CDx=n$@D@yShhBsPygbM%lXzCIzP);iFb +zRa$|ppdFjfK4)+FCp|+QNbJwb7>U9J<+h7dqv1U?&k%KEK8IYZNj6vI1-A`ChB-jn +z$7_#O?u~ZJhYJulT`M5PBqrvX7Ac6c4G-D%6oxCPCc6#kcLzK%(A%aY-WJtvE`hCV +zzp~6H3!c0~`(UV&xt$&6*u^G=!>S)+D{jjWOUrWuEH&0&K=6kq?!vAf_X=c +z0NK*kE=)7#H|RYTcK|0OB*r~_O5oEusyNnn&6cYUh|ZQ;&1u96ObpIprHah1lxI7; +zQQ+KT9LDMrX3mv7GR(eIaGvU%MOt7<*7lZ967XOAmN4)hH5nS=L=3f1oVi6S?r(;8 +z-)X-?lKk1bvRClY^ajLE?F61$y~%c#aw8YS54rrg=e|SC;iYnV044V7d$_S)gD(a? +zrjH0w=nl+ADl)?P@`#^w2}|GmCGobe;}7AsPcB7RX|JLy0!#W+BMFo<7`gl^2BLsqy`^@>9eC +z)U4Pye{Be?^^7%TMw^fANDE^6N(|z=`9692f@9S`8JyApqTu_zxdoHf68l+a6C-~> +z8aIE*j>XR(jg|WCN=lF99T~hbW>VC-C@P*l1h#M|<0oC99F-#hiOBQ?=CRYgFdj8?K;ftb)W%Xs_r0=>+R<& +zk4^Co^>FD)=vSWpj!e?To%yK8+Z092bxS%u`igV?ab0`m=Xo|2x;Zq&?wH*la;KX7 +zv6C6O>dH41rI%Zf$s+&87TyAn?Ul&e-zK2y@;5^=$ph>WkYqTOwgK#*_KiRSSkjTs +z;F;m6RG|hk1Vtyo|B{;AWJP3OzkTdTRB~x`)O-xqHsr&F8(}znXs&OD*_*C6}V*b+7Nw^jvK8*!X0Frp;wC|6Tu* +z(0iM~9E^Ov*;PS0%*~Jhcq7B(J(u1jiF}tdF975R+paA~bAc}v1qWvW5IR3G8Cl%K)Eiet@lg3bre^2+*!V!%t +zKdXQYp@M-8&3zsS6?-Y{tWd~2%H8Yk!pw`mzgu%6VZox1)xAQd^L>T1kCWFMdN}vl +zhG?mx9=d7G((LKIJJU58@ROLx-`_v3!|>AH#qVVvaeylUzH +z>bZpv$GRyXy~ys?_3zts4m80N-rom@E2DRBc_Z|IVS`YBw;&Qh+v({k((|fby5?98& +zMw{r&=$L7d1~gqSP6Z&r4PmNHH>?UdiPzjDqiHZSa!=Ojk8?_UU0GS-nAXpnCF45W +zyJoGE6h~HJw~<9$3?~x^%dK(L@ET3$X5I~~r+MLRR#AYhH*aAt}+dSNFYOU1CG3dT{wgXy!PPl0t$MJp~+ +z+lQ3KZhxbCg{kl62zxNv+^zi+L*<_gj~rB5L<8RKD9ExU7BwUjxYPcdHra%OUVy_S +zmEiU9x+}drP<-cN%};6;e8ta?3ts@8R56{yaM*B*`Zk6s(~&HK8IGaJ85+8g&u$8Q +z(V8^Z`a=O2!_+lrcJRU~?i#SnO*Q)CwzyYEhNW9mHXF_0wS;|o6aqPIjck(4BESiXAT|=j;N9AOar^A#At4(wf$l4pmKA;$ +z@Lv9XkHptu`cb{lCgk1%DzxKt!19PH2wzE0Z}&j7Om_YQ`g{8!E-UmQmGuJ>VP;D@D|j>!bFZW;1$sf>)1% +z!Gwhmt|_YV5ucJ0KvJ)upJ4$SNj3=1I@g$wQ9+Sc~wGOu;Y +z0dU>h;Cf`NQbdA%!z;Jbp#Ed>~$q +zegmU?3T@`kRgHLAdRj&lRNWv@c(9MFA5$jZUVljgxFrhKM16tW0sLIjAd7_~5(fOp +zF_|1@Rqq(ML0&NWACcXk7a(C#inYLe-s1`#qOuIJE?WVLK-%XP--h;cCpsh#Yqwn? +zDFR%QGwRGyKbKhQlNNMR?hASl^njsKNI_)VFf{^~VGd8~{8yiLoec+MOGknFr7hGR +zxeQJf(fKv(kL1j^_=`LmK4^9OyvsTi0=g|mBAw4>)~tRd%epYC{2pCe;C4F2Nky^7 +zk}#@)P|5T(BZ-ia)O}8ON-g7_$h_*3CHXssPK8B?;IW;!Z +z6QLK}jH&#Vbuii(=0O0y29ic(J8c{m)8RWRMDykGz4oqrJ|2`{cTQ=H7Ps7jP65-Bo_DkhzE^#=Z)fJu_vta+w=R-l +z5`w3e+kMwXn-90v@z|3ewsqo7Vb*rnMljyjKPliJ)(`W}9s>Tj=d$r&g}!))g1eZePzSE5ezh# +zCis=0v-MU2Iu`C95e%8Gr0GTup;RLnn&}lc9Bb`kiRqN&zZqhIV*`>JDDz;otFEDG +z@LC)-xI66!wR53gZfa4VA!MuQ%YP@x3!2s5P3ag{20r`nvcv*{+OR_>QL0mb`+)8 +z&05T`!BpduNv#!vX+D)U^S^P&IgV=ebo)q}LiwY)_^ti=n?^WCYUman2`qDL@nY>y +z!Mf1B$r?s^3^I362HB4YpTelp(*%t3{rDEjA{$gWe}<4?iniE=<<1 +zLcUlzcMX0$mN4C!h8;2-oI^^l{A+OmXU!KhWp*9NsL-2Hg>wqx={?$c1VEs%~ +zIAQr~6Vje00|e%n9xLmOXS`rcATt5Da0-^~Pmx|*JXxH5^`y4;tmJ4-$$4K4oQE{Z +z!5>b~2GB8#U^9&jH}OJ%Dg(eaMFV2Kc{;&R$%K~!7G#x|g7tm7%9^sYv1*DxcNzec +z@ebgK@LPRrjY*F+`l7+ZLhZXsOE@NHz}CH(1m_CI|$2wlG +z@~6huyyh-XDrLD*DpUgoEL>5S$4<6^=PRQA1A%An;0zUSRkd`MZWg8p%)T4xlwe(K +zT-(|5ZrUvYeA2*TN~z;w6A{xLt(p~*oKWS@)Kc|zqa0yNy0w1k*(hyntOgUJkHl6D +z>#;SY>|+5Q?1Nd`?`u9r6Is4$FkYDQ3giY-{8SQNk`@4r2=)e=DZJHd<+AOkUY-0u +zR$l>s1G21OsNe_AbM<8z1aks)Kb^qy$__4*^9OgzDi`yEfkGXWdb$aw#Xxlz?yFwt +z9p26)aq)iwXIJnDT;Ja>9xbFJ@gx!tpI$>(+~A6g4fXBq_)k)*(})fLa7ZKoVtayM +zFOMV2QH37r*oUwe#wWiRhK +z4eZJvSm;ie{FvqPx%Wml=v+B=zlnM>^YIsKj!<&FJ2wLv2-3WT^Xg}+tdt}xfv!%r +z-UPDRRrga1z&YqXf%!XYdP*_WRK;k&W?w+WfmP9xHtuuzV?k&cQQzuaM7P0p*TF-L +zF1d_COSi`DGCbGL_vsSqJCl2!TYCPm4pzNicAazk0k}+w`t^9fKl%EMy@6TPsUqL> +zyck^-dzYEBEC(;_zus{k2?MSu>lQDzH>FD3wc+$^(Fo@|htKR#B2U}V1!G_igwjE$ +z!w@$oVMQ)-hxOTs?hutGV))$aQ(&%(WlPsR)p`j;#2WYPq3V!lnHc!;H8earQ@yVz) +z|50SbfY)d7=Dq$6>k)yZ@O*GWDhbdf1#}C;iaZ|tITa+e3q=rYU_+|TAYP1TWM&Jx +z-hHKJ_JQQvP_!gcYRP&#@{pd1rJsQXLyZnz!*wQh>8K-CJ3a3+y2C^mP4hG_q`l#h +z9!GeCfwVqdqti_T!|T#|k@&&4w7>ButHbY!L>#j}?Y(rz7lj?L0;~R^DNhucKsCgm +zaH)nm4qhBbnUma$UF@a08J`OR09Z&^&ZDDN{T8gSOcJt@)J_3CeFr!C48qN%TrhIeOw +z?<`m*TvJj?x(YMT)(c?G +zTCAJ&hWYZI-pR8~(aKNAYjr0`_t$SRS;bcXZ4FPBnJ~WzuFZrt)9PZi&&7qCI^xj5 +zaMuIBJF5?o{G#@)uOsi(;AmVUtk4xd`S3%D&)zo$LZ;FE(VK5YCEzhv4#T +z@~5=qM@9ugPM{f)m8;276mE;NajS3(i>IimP@(miH?sf}+$p+778G+Jle#`p{R{LU +z&~7&cSo5(KyppKWsV(`h0wGM7jf4r6!J`NT%a*o!eW!6Lk&9!^BSQTIN52ck#2$&a +z))t623UP!JPTKk`1x?Nr1T@&2Sv6i( +z{1Q@;7if8F7Nr_ogeAR?{$z#@yr6|=&3|*cM1{oZO+H>YhIqv4`FuZ%7jv*yKi?w9 +zhtS$!A~u>Dcz{?Den-uA4z81y0{<&-JEi^~@;31Q%G+i5O<1MZ+MyH4MR}=^LVB<8 +zho!{!?^i!LU7;YTou%T*ly{ZQ(if6t(}!DXW7D%CvC<(vW-sa3M@tVgt|rs|yRd)c +z?eW}ygbQWJ@_MUlbA#PkG!4zkG#D#itg2R +z+|)4PuB+ymZ#}4g)IFi!)4^Ow17Ud~1*zzpWLpe0@wS`J& +z0k6s=Yg1K4AVW6AV$m!LXOBmcQBw^A=0z=UDG^#KrU+`_%lZ~2gul;)c8Q-bz%Ljj +zv@A0MPdqrxA}mfSa#Mkf3TnXdakQ8`jlk{}1-ZuCTu8L9=kJ7_@15??@2?r(F};e3 +zPL=%6n(yatj)00(kawsbh1=m3ooH{cIG!|QUT2wp$Dfxl8&Ao9(wTCU?gd@bRz-;{SxK=uPY+mQ>3|T-(Z2#falFZ0y?_Fv9 +z@U74kFo2mHsa2NT2u2?Qw6AdiHh|3AF_txjnhG}!#z!=MP;dd9mU!oTh4DbZ5>!sS; +z`^G&?9|pN;z{%!{fvU`~P~|{5%*FmHOJ+J|GV;|iEvcdNkGUMI3D-OloF3eCxM~F< +zpuvtx1A{l#EdHOhefAPU?;z@-xT6#5e;~@Y$$?^rSO=PjtTU*UTnX#dYTe~r(u((G +z%V>*e6$|HnYg}SO9RfQXW3^FJNzx*PDyt_(#k2(*?I-;x+zUOKgg**5i5IsbBj|t+ +z0vk>Ul=8m{H+|bk^CqZw8c!BY$NoPGH?qtt&t694JBm=?en+#h{OUgnx4FdRo1<~} +zH@>f8zZfz0uRGNh67UWJC?A#5<#0!Z0iiqLEGeEJ!Xn*uCCvM)QL=UVAmY*hc7CQA +zFPHkN;2AA-Eo3nesS>eHdY~TT6w` +zIY~<)=@FD(x(QgkSfW4BpV3ceQRrcwUd;OeVn$*v>v1M#j3~De4$KM^n>6`U*ij|t +z{kikwT?gCO1iJmw1tt8DTZYmlW-fM9a}v8O0e5K%510P@+|Cq_#|S4~0;PC32v8V8 +z)CAB=V8o8X@rE+!;ZL@jz<7;O%7JcVjU-X{Q^&eytQxe%mK=!1dH_wcbj1>*TxmeN +zO|iEWd(8(`XQhlG#$d9$#kMyg`h}f+Uw|2L#}$@P#u7{jgziM&+>&l}WVm=k6(pFg +zzl`RGw{j&vc0~EYa!M~}b~J-&sLsQ +z2u69vg*T;zhPJL?Vk&gs$?vnlOIJGVN)uubMior7x%L||p@M8wS5@c8^tU-m7-+~J +z+BS3k1~AlUB_o+onKfULpY{@?uZz@*1t%2!%n_6$a4p07SXREEh_b=~jOM6EEVi@Y +zV#fEmTmZ=-Yj1J;5zjLvuT-JFWSUi5FECeRu7qFBNYUsO>E#%B=Gj7qmV@KjuXznIXVW +z)3r|l0CA;yT<>RH&nJgIF~>;88hc@EtXJsP<&cU8R?YF33?ZcbxImcr6#oWh1ob_f +zqT9HL$5oH(v^k5{ti8qh?!37*WbmjvoUl|-{t(>V{}9|=|0TG=+T<5fGkxq` +zDwF{JA-HuwP79vm%6|y%w#A+1pt~z%@rpihOrs5AOOFX94F2cnVDedP7E<^fL;58z +zpI-bmOwB`9VvHYxJ94@6`dl|t`9B1AO{(hXe+X{8e+X`fe+g~~N88|nkwaiV7E2*Q +zOkZJ-ulde9R8f>Q_Vj-V?wtRZ;FhZ}E+IqyA-LDc<-Ck55LJE%Zet|M#w^m;e+cdh +z#}ek}t3gGg#+`}fAA)=Chu~iAN3~d54q(1r4aIeitW-vzW{Zz;KHCFfytcxn2>Btn +z_gf#q*B(ps{w28MSfesPTzUT?xPjexloQ7h=26g%G{0xnSU-WV)*rJVg>eNo-8oR6 +z1}|20L?}pHz42J&Nlf+cea6517lOKDJNz8VTxaocd>_wc`TmOFD{IPArPnv;{^^@~ +zxoNbPn+GGh_H28-B*n<>`ZcLG?mcPP>bMDw231C&;eaPfb<{fmW~#qqOs)>K2~W&V +z)i)8jY+^Dti{K_d1j2OBPL?QXTy&Yy%n_H*Mc-`iq>M1su05}L7V!ETfP{Z^k|D7o@>-MqmnLMToS39 +znxRhq4ullU#*ZDEwOrg}cEN7p{ty1G2>2iCECK;yO1;Y!D+=Y11KYu>0vhTAeJCmqX|W51^g#PUmTpblQwKGMROan;?+)d +zf|b51C=!p-x?@gRw6@-0?G7Y$s<-mMsqOn3vxm)Ng3Z{Tnh8Zw8*Pe7Lu5`Aw3Xv9 +zl~zJH#>o>XuH06}BsSkRQNm%P2au}odq7njA6fHCuQ)g=!zdwO!oC8%HkI1;5b{V2 +zt63`XGGwto&wI#H^jAv56q&+am)*D`kON;qAdJRadl$@AwnwbnXtL4uv4AukS#Py9 +z&)$F8H$lQ{nN`qYq|Gjx^u@i5TGDUXM1V`qF)8UnSM6#f_Y_c6q$P7H^(x%Z87756 +z*t@`Q+-LNmuB~SiIV)Gs&fTYg?aD3`m>EQFg)W0m0SOwzkJO(;aStr$r8)jO&M +zEr+HnMTATwo_VYe-B}1=dR&cc+Y3Y4tguKo%v)%J!=Qt>vD{76AWVT%L2-1Lc4KlH +zv(_woXz3C?5>HVtZ}&zYkZ>k0z>R5XPb_h_$dl|=?6A;%H~DRR9?0sW9IpjK>_%2Y +z9}z8goUvV`8}rO{U|5ZFrc6Kt5_ +z;svGsre+2rx*<{si&Y9;GT7F9`mJwj{;;=D`-KC>wmAnUHa-w%d&XFr*>6c;u?Rk) +zhTN6SS|!G5wQOsUrZ-0E@F>dRfZ4yKv5Oh?_Bbee$k8|)@ytFoPbm0eMUSDn-x={x +zjU_CNmj@cozQ?D2sa%Ji2!Hq?vN*lIQLA@y7qWoKfoY5}w{Xt}=b=q%DkOsM;>Cej +zS1Uvo^2-W0T~fekZ3bySSnYGeX!bAVzF`IfiH#CiVBuZ>K}``}ZLqx8X4Z8INsNoi +zsrbSK<_m|xbP@Xlj%+5K@LJ6`JOtlF>$8(H-kclO9^=yilrPR9?nJbmi;Sm +zgWL!c{s`Q4djAOAO(1r0h>1kWi*o-6-1=9h2aHe)mwjGfu<~Z|>HB!8C>^%_XT}%Y +zByB@&&+Tl%=hom2K%Mln$zrA`3oh_+UN*_fF%WrB^&Wms=o<&(9japAkUsZ+9hplJ +zRe{DweaJg-WO}!RL5F-Uj5NFjV9g@$Ys_lfGLP?V{2+pxBE-rQjKyvBtKwXxlGIgS +z&bhB7p0QRb;JT|2tIT#T>?`Zc;FKd!gHmE-xse+2h!%6j*YRRs$TI%{xTXIAxIxi> +z0B*?|G|NMRc&T;e$8Gp3@DK6)E3xi-;W?fkfID%kF|}%Wr39M&`JxNS%IFsez9}>Z +zUa7B=%Yx0B&gZlfjH1@~KDt*}xs2VT<`tYdD6Dy-D~39nojiRp5>{Hu`IVA9Ackj> +zFFY1TQ;!mx-xQgk@P7bqh4*(W=m=ykQ2JTb)*JpbJB`#_7tPO6$FxBXgzE$Y>AcYf +z0O5eH&~VL8G%^aS +zwW#pj3JAK-5cK%g=qt9`PrD@BGtjY&_c%^FsvMeB!V?WTc$7j(i!8 +z;MbvUkxTC*b7gR58QE-q0Pa%5_G7s0{{q}w{{guBckYD$1-KPoUfT`!e*kXQ-wOg|uN1&((d6w&_x+(qqdMDhqU6Lt~W0=$^mQZ6nL +zoh;x-_vU70DbxU>G!0|_0l3Sjilx+rS`JWz_+6guGG@@1Sq-uCxPAccL1r=JDs}ra +zo-Kn!a#DHr-XIP>)vHo^kJ%$`uD>{cW#DmT{3TmNBeeJ-PqCf|!5!?yrx2Jzh7Eo1 +zd)YXgc)2ASn6J)xvm&YyBD5%CeWu6r?x^+#H%`3)j+#KSl&Hs}%*w1%*un>7$UPoG +zfi2ET%FSfWT+HI={I4kENZCCsCctl@MEP1N7i;7L6O5_@C|!pMg^Qg6Qveq2%8`FNb-IiFHkW3t!&B^Mp}r7Oqo53 +zM)z+NGE_ +zu#l+oLk-hqHiWrvH%`l9uord(-=1L$BmV#WZHor~|M9n9^;q~tg&t_TLFU+-dqfVb +zF@W|BtbhD%<&eQmJjtQ|!`~JZWEm&u23^MI|Bt^-m$jreujAwPz9?0nVAd{Mr4fyd +zVjAOq-Tuh@jcbp9&=ZclIPhP8dy1mhA84GMW~QbB0`>pqZ#yA?2>t%?w`Z4r{Ov80 +zqBiZ{)-LO4xwtBo2p-`U(5R@b)Upyz<3wg@+cEI;tliO1|N7g5JNXl9?mE&|z7)`H +zTXCl}iuoH)o)~&*jPY!LHYE3CADD$?OK=^-o>-Oj3}CJEORI5wixK|ux1aK2nPC8c +zZI{H^|Ko2brZ(e~F~Lx5=ilse7{dcZABlnVyUamSo7h0vspa^RwpcL?j(n2#k;9PmAXU)2^D#= +zy-d30O9W2{z^sfrfsp&HR&yI(stUK?Nri=5xK{^-VA(UJJ-I8ih@-DA_8@;C%cMEF*3Ougd@dqrC0=o^S*cn&(SNAv=XNiCOZ4!so^%16f)qIq= +zs#95L{9IhhzgwldX)g6Th%p&DzxmWWzofcl10g1%5|}2 +zWaN|j&~;BqQG52oNR{GR9z*oHwV6XBM%&KvJce+iqZZXy@A`esoaCx;zn1Tz&qR`R +zjG0t9_LPkoh?xT$RMQWm81p9nLJg^C*!MN9s5&lbb7BnsQ7f1%n^ouxztvWM#tL%L +zXZVdBjC`!5L0r+uuqR*v5N3!0X#`xa5Xd3lEycP;HqsP0+y!5f9|$6O5XoH#5yEhL +z9#zxsedkJ~30dSO*!4-6a=0L7f26Z_&#&iWI!5V&drrVrbT#E@a{}DZu4pHecm|`H +z!&G5l>fc^S-^!isDqVzy_N+{kC>gF=(fQcW7f5-ICxuKm1 +z#$t8nk>>UwdTUOy&|QY{V7uzi@L|J+0?^of)m>Du$$3E>I~NPusuwiX+K?^ApiJGF +zY!MMimqO~c31|C~jMYY%IPlB01txjgrQ5&x+DAw5`~LD>`m9qF^lZIHi5@es%Wh)? +zXLOex4>*oQReDRW!sTcco+`o1!N##<{xZn#_{3azREf@H)u>2%4|wHsvDGzO?K7*d +z9*$SS%%yKQCw+2lXm3z)xxErSV;kXPfSMuW& +zbHSGhLbg0K7aVTu`Pn<~`~mC~@C#OzJY_u?A`0UD`oL)QX13?>%xHQP&EQxV{W@Is +z5DZ8zoUfA}pVd$4TEbL3kHl!+4WXjQM)`ontqw;5L9jz)Or#-=Znndp{XD@{fg2@A +z{h0X;LVv4RX&k{z2vDoy9nBj$&D{U}qqu#Ft%^&z#Uy1{CKwY1vPE>bN)HH;cj9meNaC|EH-~&(-FInXnSU<3NEBjks +zsBt~mtJaWRschkwfgL~GCBYNAhG)#JrJ+AkoePLnjf*kLk_I7iZZ@j<9&DUs_W*?u +zF*@T@^j+y`;!-Vev@nB#16RIf0{qAfRM~gbZ3u#%Tf*BW%wD(xZmd|R=@WXR9O(xj +za=DfKW_SO}t<`OXInso#MnOpDDHTIQg*!pXY7gH3undM`<~}{O7MqFu_Yb^?MW@38Jt}Dj|9fV* +zvJAn+RiR(5#meZdt;4r+Aq~~hfuj)6yqky$4x-P(%%aDg(|zq&0icAzusly6g1JOR^@m@aTZSuh +zr!M7ov}mD_c&F{qaBom+8>pG2GP~PQ${^cfVWW};Ai&m66$qAc3TSJSv0!;#SzT(lS?Qp$L+;;|#G6K`~a45}| +zO8-`=9b<+y79o!f`@~CGwC8n_QwFCx1+ug|2e4<0YN{idgvbt@N#%SEj*18sY>oIy2F +znP3xM8r5k6pQHlb#VT&Yc@P_;3}KbOzEZKgePO@jS;vCiR2@XAQ5{(KTXD|eIj|~j&c3xztZ5&~`2^39w^8{9(|P)&+;$lPMW!e?)@3!M(NNCvTT6X3_*hBs +zz)~O8&JkwyZkA%r8zO}Wqnm+5KqH`7Tq(0j@%s&%E9*!&0T9aYoWm$sE2#irN#ESa +zwz3%S6W8-9<+^ODzB~WPek08a;|Rud;qAm%PZ1eDqvC`?A9n41&k^@hl<~fYTJgX7 +zwyrYGfAwvoAAP&3!vW;$(>BU +zy8urzp8_(SV2_W%M5U#;8>Fmq=QVU@G-UU%(n;sqr_(zf9$|~Ew_AK?ql3R +z=McCOj6FSpr9QK~-+vute>NbSY#l1;*%Rb6QqQpPq`X#Oe)R3!|LWV&|JAppaD!=S +z?you7p(55;{-bXb^`KXUu184&WG-Q3U%|rs=-V%bk#=X*!F1t@(Y=h;*6|XxXEu2# +z$MqZorh#qZROu71CrK0G&~b%{BQKEa&5ZE1Yg&qRktur0@sI1UEpj7uizmsfkVoES +zlF18PsSARss0Q^ULiMSGyOy#&JNfYi$MuMXEY_in;JJH<{xM|NVY?(FEzHj|_I&3y +z398!cUIm=`Z@Y8KB$w|`CJ|ecy}mvl@@xxipMEGU3LnaJYz=H=1Ax0D4Fc4sk||KK +zep0SXl6F=SMMif +z>B->`iJe#~RE_C3M!rnXGXz$PQq?_HSdbbYNTO)-5D^XqarBYi?Tm$~_PeFoW=1Mi +z&$c8$7u9uP$Kn7`by>k^_^aVrKPOuz;tr2ivfEGSyCJ=#p}B`r7oyO`X_H8;#VY6(y5^y<)ZJZ%t+r^1#9uQP9@`@C%|(2m!LKee?e3H*5Isqlzz?`9G%0jf18-%d1=d)|pC +zJ=p2dtcqlxdxg@*T|YG~wjsaJzw(+1lJkBsQai%(kA-+-G7x~7&@+WG#IZ9om@((I +z>g3)K4j7b{RibRb18Z4vH@}?3BQyY#i=9Ld^`2TWGKGga!EuvMpw5duD*rrgaX{xu +z7D&JDH%?_x5ke=PvAjN6OdI))q>H(3vUP;J+qI0teS$h31S-<4=h7cB%hNQadt;=k +z>bS@=rZ9wN>neDfDK})CoKU8Jm{*?kFKqPrN)1o){Bprw`-sV!pA}YpPawjcHY#``YmHU +zdeYeahWb`@lZ|O@ny%p9`nmz>gmRcKH(YO${EYy8y=LA4xN7W}=_f|fZeohGUHc)q +zSu1+tHn;QB!kFXAO+%oSiAWw>k2yxnDz6C}N~*0R44y{c;D`KJf8bTp2(A`JaMCQx +z$VE9MWIs;(sV6PWHO5Z4KSRc#{40sF>Mt(aqs)nc=Jt+pzTBiE*O)p)RAB9KD{iS3 +z06ICOy;2L>5ga^qqE%i?JfZd9um;!^m+DSmx1XW^^4oN3xu099nba5V%_B$1(E6;o +zE3AAR#}Qd;29U(D<7q^EIaujBF#P4vb{^hr`fB5aI^ndtmFSrUhMu$iXK|Dqc +z)UwSve#mI4uK0x<%4}Z*>KZ+6HynAj7APr9i`+ON$M*MTxdM?lT7rbn9TF2`|SvFg4IuapaY9)6Zzya +z%N!>eq+aE~M{B@;D|6P#T&>*edLwb#m|{FoQJQ6+B{;;VL;MpdTYo79B0@1^S0*6w +zF)%e%b+?KxdPn3Sw~->QQ@__A9k{|+5=%ud`whJjhh;TkMR$?OjpmQIWB_0;cMi>& +zkR$Ex?5Gt!-RYOh?6w9Kx_&C_AC*Nq3x?8_nU#MZ$4=D4WN4ZUPPG@_Ew4Sosq!9) +z{N_>Z6a(gy3knw4S2KRpZV5C%tYRv3MKQ#_y+|P3I1@97d-KCsK6SYRy2CR1X57PS +zaTHCb=w^Zc1hk=VBkJcycjEag8`2CdoHuyeUO7DY(TcLFmA>Ku@x+90-z$NpKUZzJTsgb8Tzdo +z^%0WGmBay_gPs6`+O(&GhJ0aKJ94z_pzfz1IG%UBe?>h1{xKl8VEx-~)ijQn=ENIt +zuFCpwRV(2gjyhoDyU;^4wYsMzz{2=T1GzTn&V_oX{B)N-1 +zqriMs+L^rHF=ECO1WeiNmA@X2(4=u*Tx*9@LS=4sFYZh;Jh@Dobm$sx?Y#G)*m|H) +zUilG8=v)B|ybA;YBz__u17gXu8h>Jk;p;Q&K* +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 +zOO^{C`44nnw`L->gN{)+908VTO{ad3dcCu +z&RXzAn(zo0F$0wNwXp4kbq1D|y1(3VKgS9IRb!ajSWk$5GU01>mP|s#iV^M|IWbus +z^dCDUA6{^qOF@bMi*M%^)(i>i2Z6i7{_=hWVJshXDI+KnL8GO +zS%t1amOR#bInU;WQ8LAuC~cWt|8IO7K@$r*<@Z1M_Ql)mr+K{mk9Z%F^OOvs`bw}> +z`2WDSul~WeKf)1eFSv!ofAi{_S~3OUo#3M59P(K)IkVt%l#P<){6tnh%!w%_v=tDg645|i+> +zy37fOZ;?w+^>Dy<0}ZC1+FzUL2Q9n5U$C&hZ{tmuUkwq6?5qYj +z5Br1kTxC~GEQ-Gs4ni_IaS=~Hkek+^uEpTknmM+G@fjLcf?yQ6*!}s13F~EV@Q=N{ +zqW<6PZ7b1auXO9Jt}}o5nV!!LFB$?dFy82Bt;npPf7#pI@mIxXNdLv&=2>^e%n4{c +zFkIn}Kw%H~)~mo)k87aJ_GB?mATd~J^)gS`8@m)o-A%bvIRilofmL-&#hPu#78UCG +zK&6}qe>@G`j)@kw*XA2y<$fE|9LyARna&efh!Exeke3&fW5~JbSi6yPB$u}S?nXL# +z=6a$|N!mW!*YI_Va)b{7= +zwdnQs5oj~Jh@0M}f|QjAdfg9@j0I-=f|>-yl|k43s30|)*3Uo +zLyTQgMPY`@?YAEX9uz6_qjMR%CeCDnYrCc;e(#I>B|t`}xnK9w{oVGdBWG%=o}>n< +z$HT)e|Jd7tRW^TqppiJ@cO@g~O`K$m8YOphTcwtU25GW5kZ

8zY8LkU~?~d6F!8TR4m*z(hd9!Rm0H +z^&HLgU;coc2@LD|8ic})!KL4XMZgOQ3j!0)Z`@o8FshjpMm-#ey +z!7wH!$Mdo_f+h@xoUTDmBLpBUc0yhlkwN-_bOkOFEr^Uf`C?ev8xjdDTyhg&I-yv| +z(gj3r`=XPn*g`CjTRbZ8=#Q`P#ouA%wG^@*EmePKtxZVPWD-Lv$}9NIArtq>q0{Z@ +zhvO&*er%F7$Vk-evk&w9i~Civ^J27^#p<=8-@WhKuDj^)PIpy_g(jBvF54wLKkBV4 +zAatJFefxOBM+LT>Z}2t#2*%7mH>X=HeTf67b1V5#w?LlKDuET{PJ3!Wxwfe8{;fWP +z6LC>cE1plK&Ksjh9n9RyRfNSSh-TBMCn?byUWVZrHT5_+BKX;g4bkh%kZ37tMwSJv +zHXt=MylKplfFB1DLd0!ynCzfKdOg2!8dCWTZxejcrW3%=4`I4}@@nF`Up5`-*9LPj +zYya#@h-DJ6NudzX`Ed?9*dRniTV$3?_3dKLH^f&tHXntgXh0L;a0&#E>T@y2$ZIVC +zo&9H)cBX^~G7NE6zYQ|vgkkE7h`~&HP4#j{(3P5F7KIaD6N{H^R!4^;CXSsK@3Y7_ +zhuVx<#I=m8f~fequ4#M0e!Jvxpo&qU)~ogfWYSw;Wr~5-?aPZJ+(*R;1lP7Vm}ulWF~8G7 +zd|WjfMxxblHz~XDeYb|2LQzy1y7-kee@Ov;`Pzt}IWPN;jD|8v5kDJq``GDW<_l#o +zssuaR449-kU%%kdJ32G==XdgLi%nBz{qVu3t0mD3HDL&em0YMgjI}M&NAyHy4&wY9 +zqu*Ik-SU!*uP2dhaUhdz7P*_Z!!?09)IfY&D$t%4eAKQ~U%>wXg?O8k$mv?ZS5bn` +zw!;Zs+Hhre)s-Jdre#JmkCFoxjkG=SWTG_yE94iZ6-Qiy6dRuMV~8{1$-?V~f^M#O +zh@K;(Cv>lktNpr?_JyXLcyjxsPI(2+4g|f$el9-TYYQ3!u}q+pKPb{!Lk14ompD*H +zI}BPfdC{|Pm_fP6$dn$xH2I6|-}ZI@_y4uGnY_f>aL|^zyaXzo)8HzrFTwO#C#l!7 +z>xW<~4!oT(`d_%LZr(Zzf@#?ZYuX-vzcKTyNqO|;c^7C~8GpM^hj$x1751;q>bS}e +zlenF{%INX;*IC^OHQ__cX10`KHYH)R;U5iFHfeY +z`}HiHOrG`mnSTL~F55BpqV6`XSO$LjdlR0jI|&Es6rH70UTi$&mox9M2KLl_ejEWO +z&o=54ZzlN+`rZZoUfv%jcbJW?t|oWtjXs5ljEKDNZq{1R@qNBJ1c5xC`&Zd#(Aj-e +zJWT;&3!tQ5&Y>-1Q|DJ_W&I%2K15_qCj7_Wyy+<)eqy(Lh=l1K;AsVMu=9+s!sm?( +zHi-)>n{Q-8mso(kVVoggJ>~UXR}hpsPn_KjzPB$sfR@)op324U5(F%t=B7If782rY +zVjycpYF&#FJI+FR8Yp@;%(S>vUUd+{ok&$X-6F=me0YM+CQ|*A*lw1BHV^ +zME}}OQ70U=3QtmkN4(b{1}uh9#2fdE@+uryf#9f~?;$5MSHA4v^UdKaG{0N!O-jA{ +z25`O;BOOo-ud_F9vQe|n~r$9}!PL($o3Lo4u>(`vI0RE`~uXqoe|WgmN7b-jb% +z`Qn#JKz+Hh5H?&Lq3^74S8hdwm5*qmq-j%A_PPTb+pm$NzOBtvv)!1oQQ +zJ^`#{9G#%$+KSk5iwCVXsm%4$d4_K_{Wp4>-2UFdZy6?qie6)cV2COY?kk?Mi4EDN +z_$|N*j&UTRu3r@YnC}vMXJpPR5j|P7!j+MZ0pjOSG*4v;FQ4=$#ZwH4#2U;wv0ZIR +zQVotKp><2x?sTh6j4L^k|>AJIE +z>T%WZ`KgUsNWDDsEV)dlRV5-C&8JNR@*{IW#qcBLjDi73Gu_7BS~PIPsw;^N4x +z0K-hI7Zz7?Joc8O&4Z@4tomZt7GOxU%{mX{?B_s(Zd>RbVgp75ZY`z6)uwngi2`*b +zRH5%TpCQlX+hYGkmV-L(%()sjhsBlZgJ>n;foMf{bhbf6fR|2=z+UW{WlO!oH(ZB= +zB5Me*aYVLuZt}K$YuH2@5OjG3Y^{{8h_or$!nN(4*S0P+Xwd$7oXjy34ch&480EG) +zmK2;3xP=oP_f;Vfo0yuK=f=$^ctA_hi1&>Vh)^iHd(jv-3#)0zv;x@G7n&V6O +zW2$^@(iMoJeeVCxZ?j9Aq5l_t8z>x+NZ4&6WtrW`nE_*;Lk004{Py?lkqRH%PHdPz +zjYMLaLRHcFM%8UYjE_P2Ew!5MpP4I+vv4^GC&mT4!k<6;d!ZaDQjl(#V917;aZI{V +z-_{NLBZ^}1p{gxC>vH^`v;W0!+y9&2zHmh~vTTe$n?1ll+b +zU<*@@E*aM8j26i%o7uiz+_l`KMo4-)B&8n+@1)=D0Gzse6hqwjAQY4to$_@ZR-T*& +z^vk~9Sp5;!VNdq^$sE3bL`QeOHJ@+CKhn>PVqzW2-mgft$D^m%go1y8jW8NuWLG>P +zc1)5Z5t{(a+mAQ%&ft#WBlPuquij(zY54O9qgn~C5Gr@-hFZ|`pFiosN{j-f7r=EU +zchPa8)xr+{5|Q-%b13@riynC%#x!n;crk$j6HIdcjB$78tUm%6jscc&>=|YxNQV*z +zW8*Z!uxaAnv>)}aw5ERc2bz-GF)DItzj3$XCMLJkohAwdHQ;SzVI_Xk*3X(2=dm8A1u2XJWqI_9`&%ub{q +zrQK^8%h1f9oDLE{tQfX9)u$XI#QFjwXzL@^u8%C50=G6ITlM*T{nLfMY6D%9fCf1S +z%wHSI&;f#>16WtbDz7e7^RGS(pSQwaW}XLyWtT61Lx`Qkp(R^(KYJaT^m1z>DX+df +zoX$04DUGCi`;Sa5k9*&1^B=Cz$_P*Yb{H=A$R9!S!s&mJbxtb#^F6$Z8%@v7F=hKN +z_yxwPouyd;)>Yy{`?h01n +zY51J(ckNSm{=pt<`WpK(++OcfcC^**zZth|W&7S41?;@7*&wgu7pA9v+$GV@moNO= +z#W?Nk{3A`<=L +zgkWOg+ex}Zx55oOX)o;#2hps`DXu*41Qvhy2bSOR!8eT12lzFWQQBjUhk;m;K1k$QIN)5T9&kw4y= +z7r#rrq4}4UXTz?O=59TW8$wbFLGqvlklrt+q91iAHwcFy!h6Ul)Bw);i1ua7KkI~< +zV~rGv0);hj{QTC_L5zg(K8t+ro7+@{v@j+fq9*$U;rdQ#(#sw|Xu~l>&6Yvd#tEn6 +z_zR3!eS?i7@pQK6loytnP!Ll@ZjRco0kw9d#U6HZWya}m^UUc1$1hGdbr3T>7$X#@ +zQC0X4aISk!XM&>kO~fxqTo(J{nj8U!Nf}2$+`UZxRzw%*m@fig@5h{?m9n^5T3Hql +z_YD5!3^A)7lDNCf&(oYn@e}L9~-heoPK0r*QE+GksUvgS*$9ytK@~lnDPCgLwyV +zSoL6kc5fzrviSBv%Qmjq!uJfPDc-s!z%w>t&GP95IQy|mbGs5LN8*5-ipq7A_} +zY3)F}H9KZ(RfHKsH;6wa4B+?ZAo3&v@+O^ksJ4+G`YW}D6K8uY?)r3B+nCBTu_E*p +zJPv!$S1OqNcz6RtJ9)(Qp|)8x03f(C{Sq4N?kPg#1_pn{Gk2$FEGpwmwk*v)bLKPn +z6?4GVm5BJV5JC@S&>px7@l^waCqz=Mn|X+E@YM1SEw5UyzzYV7e)I`WivWX>B|2rB +zk{n!a;B{L0Z73kO$WT+Pz?Rkv1>?w~4}4Ap^01D(p*kh@a~`LC6gS}z`tbmxb_-cU +zb|Qc9@zc%iqdzC8s!^6JCymI>=G5T^J4)yXsZ6({li?&+V&lZuVSMJfX|TDlaF2Tv +z#W4`&j}!rZOc1^f&9j*gUksRJQGnQizVByKE7vqz0lL24{>paoaD5x}{3EY8b{c8} +zp@N0^m+uy{)*OqDr&0<7^w|##z9^R_e2o1MzQMUkGxe2nu%Z4?gfh>V=vO=j)>eG8 +z4>HKP_eW_x*uby0bL64s_rFj^>*~z_;fIgH06r}c?$-8=6kDa?ifY2bo5Ni2gC}PH +zZ9^d=){al-ZdHHf^J69zz6BiO`k;L&rL%qR;O>Z8YuOL|FTf2pMIpAXN36BQTzwwD{` +z(V^1IPm@A62fq1;7%!Wbp3x?E468;4eGIYdM1gPN9}`cEN|#432JMn5mv2YqJ@`6V +zpLdCDtsoD-(*izCc0O(H&KUaRwo6o39<@Ff`esNByCb3N0VH2b3Se{GH`kI@drZM4 +zJEM=+cKCc>k=4rI>+pxASIUY!^RM&%XydN3?^CS_R!5WH2iY)pT);#as#6kkUh=B&G4rzfAZ;w18 +zq8`?2{TzFdpf`KcYAf1nOUtIRY?G5sD +z0s=#7?x21B@XQ%-1IUj}&}2g#$R9I1VCpZ?fig=$*o-E9$7h&0Q;OW$hoTfr0lPtP +zDc`G!i$I@I40kce`A(T&Q!Vn$pfY?2R>th5-w +zEr&;L>3)Wh9NX;(!%<_e}#@;=M!fWa5_hwbJad1e8ay);rNhV4IH{H(==N{Bf +zoOJ{E$)5D8jjP~R`&sB3y!lxWrRx+k+M%a(6nDzM7?C! +zU3clJH5UDcv^P1PYkiN@bke}lf2g~_0*tI?Lo>sF=vp8gIXDh>id{bDN5D_Aa!)s0 +zbl4vcY(plR)12YoVbnvBP)NoEZslYgE@=}!gj{#L7scN5Akx=hT=s4cCDtSmos~%4 +zNkc^#@@u!N;9aPYJ2OFUCh~`M-*yRLkaNEjZ>eV)(jWFkVe;#=liaXcgwm=v3ornJ +zN_MgaUV@meXi{X?usqN<06_r7HooPkTXhOWlAmi@s*)>ntkOUQ@vW6AO@63RGF+c# +zBj5w?dP*n7mc^fW<)KM1bR2wqg`F}j=dkatyU0(VY~3QVXlGPGqLqJwEVyWr6Bl1- +z$iO{&-X)-h;ZV3 +zxi*MW@0G~b?~g6dYupOBjL)CQAY~+HoEK_3?5*D4%b|C6u@Oys@&&u7m7|AFb#E*3 +z%%}&lXwy<3um_+Z%O+Gm&}ik5!1K(fhD7zoN3T(K&0toP4+fQ~IaGc);yz!9CycPV +z#@Mv%gC(IIOSzq4#|AQ8(IpT1>`)fKENjM?{ic0AL$jbQk7PK~3?%J^!eEex$#G?G +zf~v(Gn>7pjUjlc>0aH-Z?nM4vSFp^3<%>aA@SDo_VhI1m1niTA{N@!6y4-d9Dx#$7 +za__@AUMAXA4#0>ZY!z2xY%WNuFO&j^EVDrn!`5odurR^JlbfM +zeoJFv_N`g@+Rfr +z2Us0KW=TBb&RIdm@}lF3U?d+}?k^}(CdM9SClNp;mTiOHG)@mE2IjPX2&nY+G_vxB +zEblMxFvVnSj?*XH$(_ORs2nI1>wJPXqTo(oPRn}1F@Q{D-a0(x0-=|e)7&?TP4I*a +z-&VuVimtlOp|J@!TPna%u5w`I3|1)6X`i3hD7SgRsIKhO%(l^@IH6PcEQ<={)_*#z +ziK-U%^BN1pFQDz0Fw+ifPEy*vQAkGRA#}d$|3#1Ls@91g}zPz9%o3h}$ +zgjxn9uOjh~A#r|**dwarc1)U^P>mY@-ErmjJ$nqFr^bj)f@T+;xJN=8xcw>(QH}S< +zFwFEV;kK=(n?@$Vbl8K7UPjZ&91I=X-fo61W9XEQ-HWx +zV}z|M;JDx9<@L8$RtWq0k4ZHVY>uvp#uY_j*o<*%_D?!(XyOk)TOx2cJYIMWn*S|u +z&-@R8J2m1(=>Gf1p)>?4r4g|mf0IYdcSsE76%?lRJH*hl$Z@sDis0psO2#B%Uj +zo<9e>lFu?@M^@I~QAY>GCROz9SH?>u;>V1`{PA+(jvI#>%JkMUDV|p{_($Nb{||wC +z=3fFg(=Vr>#l5rt6u9I6EpR)jhy16&eenMfxcmMkaCiMLfjbT+%ADQWPbc#ATE#ug +z?&#hST&7`p^!j6^W9x>&i4_?G$&=g+IFJ)Lxh)sT1$@Y3>_ +z`&0XH!o-5u;sFk`P&rW?MtbtyS3k20?~qEPg|P&?#yWS3sBwft;dN#9NF#g5chaZ| +z)b(UOF3)WLL=!af@HO*78n=?EAe5FI5+$}h{s+L_O!E)GeJ1uVfSd4t0NlNg)qY## +z{{px#{{?WT6#PYy4j4I7|0}?)D)#>$;QnlCsrTr!*ZO||+~xYFonZ=HvZcxl=bdUX +zd!DU=L6xt~U8Sx4(zNPJW%5i@rW`y;kEdss2pb!TAjQyY;8X$I*ER;HQzyfjszW3R +zS_=#qZ!nqJj))1k$hRWA3J%_M(gyf!>Wdx6c`z +z=zr2%K5Wfq(sntVPUl4em*0SAi3*u_iPgc#p{J)MrsJcOvB=|$AQ5CU_LI%fkNlWb +z?Sj`T)~C9?1)XF^c!Lvz*PqlG>TyZw1zKO5pfsoMfmSp(+;sFF#|8Z+n@d;BGI#Sq +zEBAi%LJBzny=tSQY4tX5;6pQz%t?^zB5C5XMP7_1{!J^xe6riWxxbtU0R` +z0^(yk5eg7AD`sC6@KwX0#Djow+G +z7KAif@XmhO-1vFtx)uf5(bcQjZmr9gwd*JBTw)cebPXL{{eV4cPZx`e`!kpxt`LE$ +zCl@biOEk30UF?*+D2veN&GG}`qFAX++gH1nWLUas=Q^eieWt0QFMn;#rwjALpVV@N +z2)&Fne{&ad)j7^Mo6gBCzrO;2H1z>&HRrabw{CyuoBVznI#5dk2)ikAED6*t3e}*+ +zje~B;63T!22_+~QUGa8vhejE+O&RP3l?@C0^=bKw(it-8S3?_G4Ni$#Vk3Jyn1j(% +zHG4pGpU%Q*kveDgv)SvEA|i_-B2-#z=t}N=v1ex;xwe&!@WEAP(g>FC32B`}kHQ#= +z7Xqxq(F)TJ7F0f;{-f+?zU|G0#*Bf8FIowL$<)WM=cVm^M-CSpcT&=zE3QO-Z +z(f4qhPgom~TQ{ZL?`(CbI#?&UYeSuBhx8wa|;wQdm0TMo)M*%Z*EXPrdN;!#Jfgx0V)Gxk} +z*1Xam)F5USy9EV{R$q>m3aw!Lt~ZQtzX$5T@av0X$a$@J|1t`(tuIK6N!;>aZW?ex +zKkRs;zM27J*R4DCNf;5*OH9&*8#v2!dr?{P1Nlz_i!ts2h2Zsi!Xl$wc?Io!9 +zEav&Q{4;mRGZF6nD%zj9VBoZw$Njl>gieBeNe>467W0}H_7R8XxD?ittC{oh&udzf +zYy9kUwkNNG$GN#EeR-FvfTSnxw^I;CncnPE-!l0@-Y_TVok#M{E|oO0AcV5%^3a$4 +z`Iu205}4%(#&T!0=7)ZiAf?-i@#zDdieY46OMXaqjL{e@1!b_}#tkCmKCp$kdYHzE +zShaUS-w0Bxm_njEneEgR!&DI +z<>-u8H=Zs+kcVeZCA4@zy&thEDHe+MfLuZlLH8!o==ctAKk04?cl9THY!Dt<8}yH% +z`!wx>wCUbXZ7f&-#e6d?wrm55I^w3XkcF#HPP~y@l}Lo)oz~(anmyDBzA*?_wi>hC +z2g3V@!Zwi;hJFD`KBspfwui{+L{%S2tUWSyR??hqh{=Wp>_1qPW^Ph}d9!EKMq_wPyp9eIt6$WY#5>lwtDz$p-V&uGrM{B(lmGmv2p +z60`e(xDBr5@o-gEMlvooyqVd2wEIEBwicLYnz1AxFH-~Fye=O`QW~P;j8-paK}o5k +zC;Z%b%VJIL-;wH71ig_bKV;rr&tulGn3N)eE#N(8FOPgJzwcAcRvGa;;6oB<8mkXA +ze6hYp1d1QUFZDNgasgNjHaSi~%$x3%Plx>r5pD)^OXp++cbd#Ku*&pv%n&Rk>c%gA +zuNwr)sm)D>71qB)-!7td_&@!P+mecfU!AI1PJYl`s{5hYvA=p@u{GcC6))});|Z0G +z`f&C%=jyVXcn_J8qlp2P!C!TY4OQ0Lt{IMTF`^y!oPnk5jwtl-he6v*`8ve*=1-R@ +zdw25MXf0tw)Qaa%lguMCmh6nh8=^fc`OLd$5N=O +zl4sLCIg(t8Zioj@eS1M5KT)wzUqtu#l+1Sh-k#Qg?smGcqr4HQ48?aObvw?r2C`1b +z@M}pi;zgZ2>^=p?Rlk=a37_BL$xkhGhN}5=mf7pezXvjuFl^PV;c|@xCmPpRG7vnq +z^VLyfC*z7@MEx!wPhq4VDQ7@qhkQ*6dnP=1nfVy8%1 +zM?P~a>b{%CE^dP9s|C#H>{TDg+oy4VVbhv_-WfC$dTX>|Valmra%8CTrNuYTF7X)*0lrCDTkx7b9-ToCMtUm?$}Uv(pvp_PGE?e_TQGD6Q+;*=!!ye +zw^u*T?8e$}YC^3Fb;7paNXFdAlF!`LMnED}SQPkoNW2!PzuTC}qO%1N779^W`Ap?Z +z$Hgs|7R=1n`a)l9MR@BK;?4b3)N=yWcUBqt)7>pf=gwmR^1WvX)qmMz83A}2b2T2*lBPj;(q&#q6uS0>AD +zflcNMnf>%5Qitv`>{RTMtQF5c9oS1MDuiNPS2)>JbVwE~6V5q)ouS7=m7uex$?@@% +za6z2L@YfMJr6$WYbnu`_MSp5AbS-uaR?1I%dBeG=wZXM!`h?H`6p8sCyXd{09m<;1w49 +zZ@sH~{A+NU?qmtW1zr8$ZFmn+En#j%qriW8)E_x@G!X7vd-_L_ja9* +z#*F&J5HLhh)eR~K5ESoEDc%kuW$nLpA&!aSySd4By*sm?;#+>cMEYc;N+d^_aLd|X +zU@TQSK2CcNfJh10h +zQt?V}rBr-21VVG&Z+0E8ZEA>FbjruYP9$}dDA!jOD0^S#wY!{R>Q&!4zhgN0IBR8R +zjV0&{SMRky=$q$b?kcS43#E-V +zRnH)E=7cWx&F=hGCxzH2#;_D^=@5MEa)b0+KQF{6RO!zB+gDCu#BcJ}+$nN3(Ga`< +z&t>yQ(M4I4zekiy`q}ou3p}8t78!uv{rPSSi$X#ROHYnj_=EO~JJ%Td6;qsu4mH|e +zx&GLNowhOO7HgW0o{=)a+Qu2DfH)`tyQFy@$z}KTABfrz=*QG|TJ7$+WyKkj9)O* +zJLT^L4NJS#lQ2FBAAWx*klD?wXHZ>D!1Vm%aFtV8_@imId~PT?tnqy;x+z;9vZBX! +z%`BWkBb;YPMZ+_qj8l6q8*feU_m}uY3+{D}t=K-{z0>Rowdg1WO+UNlJWvS02$byJ +z!bR7z__?PmO*bTS0Pq|e7d&7SjY9ebCOvqX*C&wpYk%%Q|CXE~w~2bo0+PH=@LGIK +z=NZxK9Z0Y?4d6LUb=i+#N2$5W9|<{BUExRG7jXY@DolQjSe@KbXmo*!hN6sml2 +z@my+*5&bY7W-NE)r6LtJI0}gY^M;WSCv;n>c99yn!DcR4V!bC +z*6HAKV&v}+CxvRF;BmZ70q~OkohQ&*?R=OllyJaZ$siV6FjWOd?$pvamgMN$11Oow-y1d;8Vd3xnOUPOt=?ZzbokQf;N1H> +zPTTiuRssYVROddIHmOrf?xrX}jkkm7M0?I(ry1{=N@S^N%~bhy>C*n1Gd~WubG7A$ +z9(}iT_w>wO=N)kLI>;C|bd#uv-Woz3lT+zJfJ_U?OoBNgQ~|Z%zgeC`Z3)^xNq%la +z#BKf|PdmX}jL=ExUyju2ac~N%kF;0A70Ws>RX8JlohUQv7yp?j9$Y~l#m`*+D-Y+h +zs~RqRsBX3xDsBkDep`7>*g0qJ$pxDQ`8U#f*nWM$)`@h_ai|=;Ev35WGQDI6E^%Jk +zh3vM-fj={MUk}87b9(rTTxX&Vf>wgBs5mGtMfJ>}bt!?@>JY+t_Bn)n@S6#QEv1+L +z{CZ6dE*=DOQ$~R$(Wtp@bX<$U5*IX^JG2zGBNM#7))7)yIIg>Taq6Q8fv*?I;nvZ^ +z_C&<`uRm+_(Ac|Pnrj%m#Squ!Y9<(FifOUK`OsDF#UTpM?~ +zM&tH!iha5-%k)8LH@}NuyN2A=-FQpFLfttM6^r)D`o^2P*nG8AAJ)diUsYkMyPH!s6(3XiB;mDNCcE-S@1+@Mx4JjDfFagFIVD +zfzbi7g%i%=;mU3V;**n--Fk)m4(JfELlQ2(*ARn_Ol1u(1f4fRalxn8A^=O1K;Vkh +zG*21dmv7!0LW_IOYV^}dTJ=|hFljJ?ju#KVVzpjpe0#Wh@wuDGBvZN2`I&z{ +zpAxqyIfG(qIQb&3FJlJU&Z?v3yW;Pl6CbIGNz%uSYBetmNz9aWE4fv=ZAk=nQqY+z +z(4cMhj3Ivh7K*EpN$hX@+?%!NoANQOPCj_awQKu72K96->y>Z;$xpfpuq4Y&HA%XS +z>~{02It%`@WZs5|FoX4571@{8d(&A`<6P?w@}zrU-Ce9E!z}6l7W6aY<&<%Y;T~Mv1gsS@=vfQ8xPqd!^GUq*~C4S48@y2llC@5A5Hwj +z*15N&{w%2PGZ%$6fc4Rjiqxp2N5sCT$cN%m3V}8V?5pHht*{kJYgZzfe?DoX4>!76 +z$y_MvhypC)B9Uv7y=O11u +zK*zB`aj;zb{hKTmqnTFX5_%LUiICLHJkGTfLF$gWyuLSbOV5StQodBNt7P80_N-i! +zd27?@F3x?#L22Ocw?Dk7!p0KQ`n^K*Sj@B5xdSO;-`J)ZmEB1zAX~pJ9f0;jQ-Eg2 +zF744IVW>Lr!wq6_lVX2l@gRq$IX{#KNEP;zvdLsgN&gHIcZ+)SoEAE_WgT5EdoC4$d>aEbAj}Bvz+~J}_bqTrBR$GgcCd<&8lv6J;YXgOy5DPoMLXSH +z1k*NQsZneTJL62!=+4}lqK(9F+TV;+2G{o9&v5Op%U=AlNyJQQ_mZn9Z~^$*^d(zp +zlxdise6zj_Jy2XRp-y%ZXKUR2M0V$y;HkEdg{8&li4cvEFfY_iZKLG9Csa}RurZ4V +z12Ar)P@^7UOV#0cyfOy>F3p}N@iS0iwTidoD*;sxWi>ub3+@|>>W9`7umwTi`k{3k +z_<_hZv4qi+9gS^wJ)iWxJA%;7w5DfB(xR9}y`Hq6;HIMBc(sI7X~Xy!8kIv(Wx%dC +z91V~$BH&Ial+?x55@JDfv`R92Xzh*k(&y)T$o`NLC_)P+lK{%0-ZIcC_nUB24wVbq +z&`)z5be>xVkQ8$x`++=p4TY(6{`(WoAlDaMST(F%BBSJImu(n=IozP|Bwav5O*?(E +zS0t(Vc&Id;ZI$yMbypVf!@3Avr#kv(lq=Z3<*N=NHdchXU(3}!q^k}v=N)!uzZk{6gtm*l51qX4S)oI>OvUHez|2Om9)KV7Gp#T8w;)xo)Eg13!<$7yJboI^^2sh7`@z4Q&l)cUhR$ +z^jL0(y;zZ4K{uoRZR7{bM%aXVpYQaF|=HOcEv-FP=%>d +zc^MCjp)h%yO{SHkJTjtYl1t_^E&3v`j$1_uAEY|z?us7_YFcmWc7nD%cfm7?V!ZW{ +zeS8<*8ovq!qpYos$~rSIL64>Hqx^mKKo*t&iN!=IDfNvuj>w&NHi56)XHncron)~# +zc@IkktSiEQOq75?jeRJtuyJ)q;97AeM_GA+A^xokxx9q_#~#*casD7%#k(BO4VN!* +zzc(Z35k@TAKJIB2P;t+B5!T3mKt#8z@-}l(XAAd0p2QE%95%sl{Z_O)WC7U`?ty-( +z;2@*gG$z-DM)hR3fD+_kV{r`&)@Dfh!7A1@L`{P@8aJQ_>;b-Q5z> +z-3`*+ok}Pj(%l`>A>G~GNJ*EJf}|ks=K+l6TJPS+_x*}{X70Jp5l2k(A*llsv#0mz +zo9q>DV89$sL!%K(i2F!4Tamu~y7d@D3Y(!&&0c+uK0T+z_`Yfp+Pm^wn#{^dQUq{7K#&~;X*6({=VtHSQP3bfc*rZN +z7FWatZ~>!hWFLDSXGm#{)UKuYUA=`PO_>u1FUc=3-2pEG>1iRR7K;_K7ZNcyl9yj3 +zgmtSI%PR_6R|tH?dYiy4x@vPLAF)57ue^U?&>ea>=hvb)L;~u9P==5-SYDF8*zJH~ +z;+zd3Vo2u7gjYcMBl%S+HgnWThSg@86iW|zs71U;FGMv%@pPG2bpKNU9GXaD=t#cO +zgv)LvtDrC1st8EP_LxuJp6eFijB>%r@z@hGYV^x`v}k#aYrq*+qndsaKH1n_4Z+Pa +zHTg_zA!mQM>AJ^emTW_Mh?_htSwmt_Ne(uYy|457fPFr;!*pohWfW0oqF@?>Dt05R +zSGO*Q2{ETI6k#s2ZJZ|E#mkd`4O|EHRl+>4BwpRc$w-ST^%HB_rs=MJGw}%bOKMKj +zbn6!od$84WEvoGY7)8%1v=$F@q^8{C;l{` +z3OFD+SYmzi-qthvh%=vKWa|eVj))vT$6D+W`AlDtj8pj<%G`2qme^*tq`y@I=_Tq|XA~93LQA($udjPS_qgs3Ex}&swW@*Nl+b>~v#4<@Ei@wN=vI|5W +zS?MI{D2@_r17;1G&d62Bek*!*!T88TxpYy`zD%P7JO>mx*{ZG~B(Bj}KmxUDGyY52 +zE2&vQE?39aPyP;_%~G}y)9)*`v&9{r)VmDYV-pFkl{=wU8J*PU$Wdc_tSl=hhEI){ +zBz6sRTu-&~%Bh^MF&E5hKz9uQ?XFSi*V0LqrfmyAFEyx#U(f&GWTvPn^pQ&Xm>VCj +znBo~d_*SRK#Tk5@v`dS-#0$4;KUX3Z#w1x**bxN#>%0{wKXzRfiEq+347@>U5(h6_ +z_+pBC_jOIOU5FQQC9|e`?)pa}`iG3ugRKI3Fk6Ex&vFl}>W^7pwn>?4ZVzwLTIS}X +z&r~Nm$9}h*w_fApZ3zn7RzzjlWR2|*@FNV +zyM^v4V#RBs4y~CWs*9P7SlzH3b29z+!NVV_U)A($3|Gt~3rE1O+3IkLV8J~9_}t_> +zF9z5Mz2U4bjM8vh5?C(G={U#~&h-gVXP|*HwsIF%%c~9EwH2RP5IZFpB7~^kSfZkFUu9CY;~VhgYEMhwPg2TW^D0s2)i1p^lu_pB;P$bQikyo2-qhFsW%%o=)5NqFSV0Ur +zSk)}gr?&TzlhCP7qo}&_ub1)U%l6S_{noxTf6(#hm8iAOzL1>4qIVR89PV)0+i6xd +zLRw#Jw$oRi`pRj*cn((_Ye}pSu)D*ew840JoIVxGlU8ePWcYl*M=sNIQK{cC1Yy~S +zxwRIiS0ls8>0)!o-+fL^C&}^*-yL8Eww^ILSx{Ke1DzI!#n9t$#sA|h(y8salT+ph6c7--R|B+*RC72+pW2Ov^f +zxR;?^L2Jc-PCbLV6V=$g3sL;cgJfqwb<%^9swlu?BA4mgE|fcygVgTZRE9rgDw!m* +zB+-f{zk&lm1@gn5a=H%W}lnSj%W+oC_ +z+s+~sbVS`s@)Lw}sv{LO5P{2Av_5?}IfHUD!rw^g`LdOaBQ#OeFHDVd%aZ1ej>KLr +zn2R_3z{T`KTREiHR0$=ME>z*FO0BfU+-f&PLhlKyKQWMg6>op}DK(5DRZK!27m?Qi +z9>Usyp$`$~$pUiI0$LkS+7n@>(>9Pt@WQsuM}Z}9ewzA7m9yP~}_ +z6}g7U{I<5pRl=Chi!<ydN%jQ|(W$1QE7Sa4$PuYoGa_o|c!f`F>eS@cyHZoC2ECZ}S|GJa%y^lHOd-(%M9 +zCM{nZ%0tlSs)NV3`{Tx)#yx5}+5r-rAkdQtVjOTeEO{%2s$?$hqg>g-WBMR< +zKGV4n6P>`#l!Phd3F~2k>~l4^OwFYB>f?N~xQ2aXyzbD8JjH&C$n&20eA-6U5IH4D +zVr9q|BZyp5U^)_UDqJY;fm7pcOHAU`G;ij`0 +zEN_(@SDO9sp-|D9Z5K>@;}!Bs$DtDd1|zKnVG5;6Xx=zs^hcxYE?b0Kc6Tx9 +zwb&R9&isfxu?T)?o$wy3%aNr+hWk#lc#!ZL9;>erjrodpJY9P&pWIqA<*6c#5cguL +z!UyQpkoNHviIAVlAJ~%l@V9yWU_MZ0E1=4ESTP_5nL7!MmvQbD^UPaTmdM)9pN){J +z46s#@|0F-t6FO0$H_rmNuRg_@eEea5ocr?qiJZ@th;Fr_S;rb*MMIN8e7J?dg&$1( +zY(~)C6C8~}nX>rQ@gVEqF(Ul*97LEsL2-Rtsa +z$R?8?*;W#NCp~=Ij2Pi-`4RzcGU2v(=(FfS_A^pc0W)^7T@Ucy+I7md`3`wwOJA>&iyJtuGQ(j&im!Rr6Y3 +zb{|bU(4D)zlNE9!ELQq-Hg;Y!VIrDDHyCwD&fJhP{rT0~yuwE79&?1H?3qq8SCOpT +zPtQp>2T$lnzq2lnyQk)%V3CikpUbo$;z3b3-+`VRpBOxI7IVr(E>*6JJW1@6 +zMu^J!nbeO~|8*!wcn`H&0p37B^b7n5F+^|GkL-P=?sFN|HK>k?D}Djg4fX@8&y-yf +z)Hp@y3_c8I}^nHR<-@eP0t5Y +zSSTt5<*gQB%ZU$S?~J8Y2~`ou6LKBnJKfBwWuBDD+O^`ECZ~M4aemB3C +z=j5sO%L6Mn+e@7!i9Ab_FkLtPu0a>fIqo8*MKDjkvuV9&PIPc1<2%N4PLh~oXo)jr +z_zt9FVS*PH+m{PJ95i{X8Qsa1ImoALZZR*GxD~;&i1De45-7O0$VaUyM(HcnPY@vl +z7=>_p+B3T;Z1` +zL-vMM2Hw0My^ibe;^W^h=B_a2BkDUa)x983mewk3_Vavi*D)MLDSK0g&ttNt-a)wf +zm9Jy$02g6|rRqrwDRpAHJy_)EKBIB{D=G>SguLS9b+CA7N#1g|u@meAkAa#Z+El|N +z-l{uc=B)6P1^wWSv9b|Cn1V%;^VlAUHAL;|?`l$Y@Sl|}nKeKs&ht<)JkvQ?Mz@G? +z((uTLFRaSGH+763t+~OtB>z%E^~1((1X4XCHd?&qFFb$4K{j{llOD +zeSkG>cX&3)>vEfd)`Q^K;kpMlX>vE3y{Xb^zSL2Q`W9Q8ci|*i!3KHU+nm{i*8!0z +zLvJpE+)K!adIKQXDQA3QfEX=Mm(v}_bR3JFkxhgrUpi4x7!4j2+&!1=HSE;gx461H +z!HOP$!4n{wu6-(hE4yL*E?r*@#5Zzj(fLe~IJbfYv6l3vQ?clVozT+-Y}cFEL38Z@ +znu`88vH1-#8_aZNusvI +zcUSs;u-%aSDi}u1o39J!UO0d_sm%A@HnbA4aVytXS+i-NEewS-?-|cg=%`TqfS)Ix +zM+xLM%+%4OgPN1X%~_wx+KPUiHuh3d=GX$7lTys`MBTeL0=i*prJo$*g3xX`VtB<% +z#Fom4w`|PdE)zUV<72C_GrRY5WtI(7qJu`%p0K=fRuI}Wv@@aC{&b=KclPp+tB&6}>q9K;W)r^fBx>5L +z9@oOJP1holPQ1`}F;~r_qN86zzTUZ`)9vCwX8ONSNGNQaPp^*8Rf<*R8yTa_=gKu! +zagG#?r9(v+v4D(r4(MR$iH$D#E-%P@KI^zA8S64OXd0Zk-{E%Q4cN`A3qI1+r2`=q +zw++wLe-d6c?WOcIrrUtX1h#y5Mn4ejBP8v+9(j0Kn-a!yMVHK~U4L82x6g*#tgjpJ +z{TBz6ayj%n@1SYS=*5jH22mXk9nvZE1KAxMTo+)TTwPwyHnj4jSfWZWtQYABqU&?f +zkfzVC!@;KPcU*5)(fRGDVLMhIQ?S5Fc1Bo5L+PgBygduAXB6DtGF +zm*I(1p5S_jbodR@k#h4Zqg>%C)p5%N3^;`rkSJ_#>NhkuOx}9JEB>(ITE{RMwu!PP +zCJDn?L=es(eei0Ny{23nTc6{inn<=a(P{9GEV*rR!v#v6sPfe_&$2L3_@pK<(8xBv +zDbvNru3USAH}bh^4S|S|(7MAEie*_>kGUn`U)a5HDDutfAU!RHu~ocq(H(a^q{k?a +z$}5P=E*~!f95{BW=uG +z#=-;g!rTJ=`7Pt_lNs)|^O70iU0*cI93ghnqSl(?ky@WytLPc_+Apo5y&qtGd8MWh +zA0{;i!A5+Y=8w#plNf#WBH12fWNFFSC7t@6(-A*&e5td+XZaf01m%#`vTY|82xQfX +zyO{4azOTrW%t0$eFD$98@aqfuHw|m@FQ#tXOjxB7sBkz@kAmN)oqi?o0iDy}iz*e7 +zATDE@nyVjEQgwdGY0{)-NKP{?dD1NWjho4f`sPa^nrds$gnL}45F;pr;+7*Bq~UqS +zLI3HiFt28{FU3ni$;np;3k2SvI$RDLmu@?P%bbvN?1H#x!l2IH-^CQ4G;b1v#wkJ) +zau0L_rb|;1of@(QS;n%mad75l5RfqvV99EOQSbqbw0CK7`zuhdoTuOVJ$r*38pgQN +zR$vcGCvP#oNhQyb+E+%{f_$`8t*g{xwu<+uiQ-zLvf&zOSN+Sv(74NHqW}`925Asc +zEI9EVp6aL{H7v9~TEcg^;wB +z?y&P12^8uqo!!kAyuCg<@Jef7q1U)0qm5ERht)&UDz0CF5&xLur8l22|9##c}+Gy2P1DV>q1La*~&m12&m%+o>Cu +zv~G*$Bjjh4v`(}_O_&a`Z)2SO`DO7gZ>OHbDHMPrTuVNa)hS52#yE`rh-H?5+HAwm +zhD|{&#yc*GAU9DwBKA}}?FA9LC21}@t~%yQfM0TotpuSqny +zx}H`>fxocSJqb6v@+X$c(tUaMeZkN^t3VGwKV59RuuDYwskNtKjzE{~j)*JKSi4`N +zw`WweYSGWM+RtbAP1FZ}(Ts=mm7W1-ZG7!Gh|5kw%`(?JjufO+^NoGCfvwRRJU^;8 +zpKwvY5J~{eF>$Ucf-oE``hwNqW~>E!bp{6~$f^009+$V`4q38`nimx9f@%Eyq8)fm +z81E@(1;ATFas$rJN|J>2kvi}?eb=tYA_W3OgY`#r&(Y6Tml1Qof?5NLEuO6!Yr>NW +zyHcg%KvZYUd_NI|&{DZNI|?)A7sA=ZKQ+FN-z73{o}-f1mjkH{A>W#H@I$$bBy7L? +zGF%y%94B!yiVI4DMH7&ylDs(HrgmsoSZH3UP>1KwgAh@X7$UajTfuAXtjK~##uF_N +zgx>vLKy;MZ1@0zyuB1p=K9F-^{rL4h{$AtUGXcz*Q=;TCtt{-6PPlm+S}P@;Gh}?p +z7$16he0l^isN|wjy-CR!t7lZl;Xb1}IyaUHep{8v)y0Qd&-nzYlM(UGD3@H{GG100 +z=E6^zh;-9fsbTjlqzid{oh)5_UcQEjb!9L5+DDAJH3Ur%cls>T?2&+ff!ewGb;SouvQ1EOT;t^Ywv^jI0STBrE>%MO^>9masnvxMTFNJD?d8EvPzcQq6e;Zs%y>tX)BEyG)8^|m3y_n0&Uc7a89}x#+3Z&$KAMylua7e-QTyfz +zkx0;B*BZ+x+e*qnIph*FL|M7biFrLR?h~S5%|t +zSc)_?x}t6UN61t^%C}M1Ftg1C3WJ3mGSRp=bckcjKuP&^Xa=>5Da-^<$8OvwGu+Lb49O$=*F63=1ve0@jSW`3y +z4tRJq_4v%ZxGloBxrV>dj7dJpY+I;LWALP|9pRN8J7zh4qoq;FiW*YHDY +zA%Oh0MB7j!?L*~ReMc=q2^4smmiT4u-a-j8#7V`;maM|rk{Yel=JG`Br%-;`iwUDK +zCJ0D2NWKXdA9JG9LKc1q@-Bf@MgODlEy{jP#BL8$?9;OebDs*+v#2L1OD|^EF=)&+ +zF-YT0NZSNI1hcCge662}<{Eki2j>h;>Fx4dm3TfH>0RHgbFg2&9%O6ku5hyxg;PO6 +zQdH)|Mc|WZvl>K$A#axSH_OI?M=CB&rp}hnQr?^(e}%yYTxz-spUQ+ +zy5JNGFkcO9IrNRh4|x|OZh@YuDXi|O1bBWn+C`}}`MM-Fp+6*eEn_lwSH!T1eKHKO +zM`VUb2DeL!y>;=|7C>ABt@p^4(tNCW1eRX-be$f0x+fZvAP)p1kXduddvzA-NisQd +zJ^x}9!=5wHP`&XKpA=boNv|axF%jyW0t>xyu`&4Ah^(Og9EHaD%VSM**M2+aJAG%& +zZcqO8aiY^jWc9%h!de#CF;7N7YMks>^*f7g%M3c6-t;+Y`j5WWDbgw*E70EyxV&wU +zkq(Bgm2osBd`a^oM?Jhj!ZKrFKDUZJdbL*$`9!+2W``^t)oBHfB00waXP`*g%*M=L +zZ{)`d1Vs&0BV$vf57yFP(8#4vZT%%Sk3+=BwpKqF$rwqh*`UswKQ9-7!g|fX5jaeM +zQ)RI5a?QUi_({puV0{*PRsnZV{y?TS5l2OgX;$#s5qt+B&R!fBPeB=3nMO(d+9d3b +z^^IUTo4Aah$jn5T>q2T4R*%Y&3F +zr7K(<#f9S9@qO$v9KrXsbili1DLiSY+N=e7XzQ*Q3ThQ}Z#q8wPvB%yNjCjKVmsR;@Llb$ig +zXR$pT-H6#CU`2w)!gUl-q)VyT5Q3m( +z{UiG?(w`%uTO}3GhunmgQ~8_PXrHo$aTc3=Ua&5vPY@>;zKDZZ-S}k6mq5nRtgqAu +z3LP_(t$(Y#--Q^TH%YlhQH6=mH|wWd9z7DpByBbGDXSGUbXBGG15*N;pedM)YgCxo +zkQ4fPMt9puq2CT`s}+B;vZ4vsf;){%C|FVcvG>;yFH^X*Q4{!j*-|$8RbycXE%A20X3S(+ReVx8I*weDKL7Pj*oK7zyfqtZ)1F3-DR?QufEr_Q_1di4P +z;QP&3wyNXROXKG4$jVWu(9Wl~ktr-V`MsZ1GGo}8M%jZT>DKWaEA;h@gYGCOV{+He +zU-aD$1id{Fyh`!YMHEc&Ktf*3U%YyPPgBDoWJX2nAdj(|(bSpf#$F2^gt!C4`xOH3 +z+GyXSi$E}TosN|H(svPj_nV4$*G;ci2A{z2C;K$&AgT!wsl|9cQCn&o73#J!NAFa~ +zNePi{j8SYF&L82HLB+BtB=HJD2zezS3_8$gQE<5AI#|9W{H>4++y)gjbA2(K$g=Sl +z*E7B+f|^5KAst+dlO8_%5b+XZRTUmJ@PPQc)97aOryZ*isqEoR3QFPl-dFZuz#G+O=;o}Mch>1x>a75zneGq|e +zh-w3$n0k;oNjJzwws^&pcC>R&PQL4XOJtst? +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 +zEwjS%9l*^tGwlqgo!G)d`IxJ%|8O%>_fPG +zZS9VGH(M(Mzpxhn3w-5jIYcdL7QoH!0lL|9KsTEdE7;I~2VXgZwqxe$>&fZ(3>QPH +z>PVb0fSdgc;AWS8Jro4E*;g^9BdkegL{E48AKdJG;p7K5`;GOEs>w=-I>625`WP-# +z4t)l6v&{i+cDCml(9NzE=mWUfA^HF^M(`g;x|JCpu;AYPO +z-0VT(Nsw(=6iBnK6B2j~%gv6n=2Cu}>b|?DOAlcHFj3 +z%e|W|4sf&AF+Q6s0^ID`zufF{fScX@+szLC>1Lb!WEGRiW?y>1O8v-0Z=!fE7RAf4JE_KsUSNA8xkT +zA8s}*#-DCB*`u4SK_CNkv&#W)Ho||q*^)pvTjbu&?!9-jWy%?4)})Tb~aHBp2XjUjW=}l?OK)zI~rAapznB +z;AY1f&4Dfq5{$+@&oW^42+$8A0JzzT05?18PdB^PYN9|t^|zZX0&uhY0dDp_?s>?A +zn{5kpvtI(-Y!{%Lo&4L)CcowZ2e{e7MT0;$+XaG+9^hufF1W}7-0U5In+@()kFB9c +zKzHwEze5ez1iIO205|)|8AIpd+m-AYK7gC8Vm4y)%gyEre8PoRL;ms6&Bl9lv*9yq +zkk%X>6M$~EvZC3>5+Db-*%KwP;Q%+g@zKr30=U`EzuoLC +z@BIfi+wb1Z9^l)>0J_@hN-1%JBPssJ~eP20r&-p%Iyhnr1)?`GSw+5dF2zx;Bu?H=6hSx?ZN51s$* +zW&={if4bQ!|8TRhAKYvzfSc|A;ARin2Z;dO?4&>3Y@z>`n;iylv(v}q?%izd-)=U= +zgPU!J3O@YkX1CwF*%1?Nlyu%SD|CbRZuX}pQ<(=hoAtrXCbS2-*`bV}lE2;T%LZAk +zUv4(ry_@X@bh8(MZg#Y)VM<}Qg%I2r<<+x)6F&pxY;1v(6}|7 +z05@CJ;^+@I+i??1n#>^^{-4PEX*sSI$lN&j%Oq0a$s_5j2iM}((8-E6Z*H``JfQ8c=rcst{#o1O9C +zW=8?s?BEACJL+#YI|ATlAG&2O`ymxRxY@Y~N59-`5mIm}%-E7lbOf(vlHHe1_qb-E+7;E!Oh0C2N&f4SMnzufFCJS?Pi5V@ajHvAuM_S%D+ZSvq| +z3w;UZgtGd>%_fiXe{{1W9^7p6Oh5f-oIl-c&j&Yq66j`A-n-cy05`kur<>gibhEpD +zx!ET`H(MQj`_au_jI3q(?Pk}~5bFTk?5%hZu6s9|;Fp^n0(7%)0B*J<(9Kprbp3~$ +z4OzV*O|*_&H1N~SK74Sq4?zXy45;F8sD}{2bBy781+@ovfo?YJgPSd)5NC%Ca(wS* +zhXLK}IFzgZcC&B);b!9j+-y82*1AVGd--DRwPCkh!2np7jKhob=LSGGd+Nc>mU(cq +zZ~t(!yFbi4xY@V>{_ii?|%cGmE1aPx+HCe_0ZgvO2%^m`}*~ZU~ +zhJL!)O26D}`QL6f;!iib3Fu~b^1XO)v-2L^Y(xW~n{5tsvx^D9;c&R%RV37@U;wBS +zr#H_J^Yw-Eb!Xf4v0$dKzT5=i0^x@06ul|k-)=VQFE?BCmzxdu_R-CzW&pU^rN7+l +z01OvzfSa90JV|co8Xg8NyJK-R2dZ@MW-9>Q?67+`8zl9oo1OEwn>~cg%?#K3Zd_tM +zVD&FIo0DPhUv9Q9z|EEdL-*(gy4i34actVcI{ +z6X0e~eHsF~*)UrF?Pk*v1Kn(ipKi7-P8HD2Mzeuz%Y6OlW*6PN*_{t=HtnOEy?*az +zoBwvRYq`*YZnn&Sy4kNyy2;G(-7%MHPWT{MMaF#z5EU&S-E5)GD)N83*%okPERf?h +z%qKuMy9eARuiMOvNH+jBUht^ff}-?DsIGHOTXT#d@`aMxH#|_-yj9Rak-yyRhG1-N +z-;ZC#CAmK^-MiT%O_D|TZZ_=Z%f{bscG07o{fsl}^3lx}xOcO??%iye{od?E6vg{oBokJ-BzXOMbc8-2gW`{=ePqkw4t* +z0-&2s@3KeKX|VO^X3ziaW{-?LVSaG4rT%uav;K6m*Zy*|pGE=P?67+`o9d^V-3xTH +zuYqoMgbwZ3Ki%wb+TnXQ8zK*s{@%@A69>airg?C)nUDOY|8}!29^7o>pKf-?|8}!$ +z0dBSf(9Mp?@wWb_n_c|iX2SyA?C{@icC={7zuoNOKiq5vv_IYKY@nOn_tVYJx_7e$ +zieeDq?;hN2*Z*>}wf}Il`Tyx=-UGVX +z4i9cN;q!Yp+wsB8evMN4Z#P?kwz~%CW)D2N*|9)3dl2Ym7yrx6p7_(vHu%HM-u=_f +zj;cfCe{{2_^N5yzy4eknZZ^g0PdD51FE<-87F+h-%|`v@W_Lci*%XHUp1<7e;aE}S +zM>l)t!Of<+ce9!QbhEqv;bx-&-0ZCX;byD;|!^-)^=6z|EHW +zUv72?(9MQA?)v}O-2TAvkm{t&CdJfW@}<#|8%pne!1BZKsP(&Z#R4B +z-p$?sy4gg?nWApQSS|tw05@A7;AWdWy4lGOZZ^*!Zg!T>vS2^J%^rDlvyFeb*)+f0 +z?0{cx_LOJ-Pd7XEZ#SD*>Cw%G2)lQ)sUO^IOMsiL@^3f$9O!1#{pDtBaCN*)UI4n; +zTYtFOcqDy4-E7xiZg%j!n|%&+v%}fHWG0dU-0Z>MZg%`1ZZ<^Ey_;P)5Ox0OW~=-! +zH@gGiW@r1J{B*Mccc^~5*|raE_NV`Fv%fyN*@OS>W~cpjv(+BmY?PTl-E7T&xYby&}s?ugo{i +zIzPs}zMp?x{c--|Zq>@4@{a$t`-9SFPp`tDiAYeYnzZpD!<`1Pyn@0bE>gz)?-qRr#VcLK&aN|n@6N;=F{juXSJ +zBRhy6U*f>bh7AZt!b+Y|T}8fAN##jsJX(IAKKfQ@+durXsY4+}Tmmh3v9>4T@Jy1- +z$9I{0$imKKN|_a=f_1a7BLy{s=i;O85Ek-e5$SS}*jXsBT^0p|5H{bo5N+u+gdy$8 +zXZp8#B9pt49j2PlWWF^pxefR8yK#kpGIup4lEVY^UTCbB}J81`5xj> +zn?Ng3GGnpn3vQqp=w=^CbGsjZmvO3V$`p<2X24x-{s{+LUOC@m6b~(z7)i}EtWe%-Odl} +z-U{YSbk}Z1uR1EnzPYssaKIl&U+Rv@%e3L;(>N6UOwUj~S_(z3P3oOY=ImGzqT}4i +z6)bH}Xc;-!DerDq+ZKsV`iieUmq?;KlAm5&pbMT@6WT%G%kk`Y1k5@k&e3utMNx2j +zU4Lt{3+e+#Xz3Gm`Di1^$(ol}gONtgGmX^V^MXz_di9{<=E8R63WDQWizy&`fEKAz#DVTa)&B+vMMWLso>HZaWwy5}FG +ztXjF0yJNKfG1_pbT6D~`W;g3Cmj)s))AyhVmJF(#=8E<{NYn#oX^Ly83;&z9vN5r| +zXVn +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 +z^ +zuf!@zv!$*~LQZMdC>eAU*BCW&>RKzNty`J1ps6>f$Aep&ps_Jl-l1ITbfqu#fPdnS +zNokDy0ewzX_DN+f=_HdCNR%n!;T!O5VLNW&7Fnuw-1?l*`O@~ps1QiUsaU!q*lN;^ +zQ@7e8zZ(y785lEv*3uJ_^x5v4`m^#Aw@e0ss*U)DD5n@NowEIC{ndw8R2$Cd-%#!T +z)1(Uks*Mfv3)S}C_*66Z2dcgMcT_vsNl^Ybs_j21gyr_XQEkgtRGXd(fNBd7{{z)7 +zc}2BzYDW9Dbc+5Xs$GnS`|TI1?f(a=4W;q_0@coZLA6z~Ur}wsX#lDX7Twdok@;_^ +zHjL>jsx6h5k0x6EcT~IZ71e$d4?wl)0jPHQ3#uK$`oB@_kcB@{?dXa>Q0?5w|A}hf +z{vFj$`xjK({T0>T{a>hd_zS9ywD51J_6-2l7JostXKeo~s!jKQq1w!^sJ88&sJ0C9 +zZ&Z8Y@b9R$QuDu~+Cu+CwH^N(sy%>_{z3RJR2vTB71fT|i~YY*?VaDK_Rhbe+Lte= +zc3p10N&o*wwJ%>#ZJB>XwOxOs+RXnzwX1)l+V%fHwP{O( +zXn}72H>yoa^mkMnb;BQkYOB}&4b>JBkevDx)#h)bqW_I*PyQEF`=i$7UYp|oiE3j` +z{2kS9_&-qX7^uK^zff%)jMD!PsP@_`s=e?Rs;w;Zf@(YdS5&(ifNJY~|BY&&KC@ie +zNJo)K{$#wNzCU&%Bx9i|vA8qH_#md*X-A9boz-4f?Jy7d9M;N4)vE +zz;211h!4?sG)xuez>z9;ru=t&!RvcqA5%Ri%W!6VGNC6`F9}ACmNV9L-q0rrBC}mr +zB3txjH((`sX%KY#&?Oi81r2UWei%1t`~a${?eBZE%LV)c1T5$dyJiUGB>!YH4Wkmy +z7IR>QisYgM6+9EdFx6UGjH*6$=1)k)|&HG#+h +zH%lD4AZ`l9Mwl5o2|xlk@Mdg44iZ%23F505habPm8z_c87|um9pY&WG3!r<2ZJ~Ct +z((}-QwQ+lYiwz~W-0&FW3xbNZ);yGh{yqwiO$ip3;);9+Porh5A`*pNFy;02Dc8t1 +z(nXlG;8HV!8x-Q&u4^(^jow;wAK +z{6;$Y7Ij}2O9Cs<>7J(|{PjTH@V%18$l^Cb>$MMxJj{}PmOB&`=F9bo=3;dxADT`1 +zCX7FT^p@oh&n^qPTHSjbWx|xXTC`(!~TWu +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 +zIhnwpKtK1G^2e3tDFtb?7 +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 +zK8}y__i`utDVX5o}}+@D=LO3l=f(VDhsM +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 +zl+`<*TzWgM|HghYp|srjF>f;^K{S@j +zY}U>-(;G#y=t_x9bqCq*ZbUnbN8=4_gIst+F(SuByKfy?Y%0B)yWBU%x8ENXdEb^% +zCnB+Vc1n;-6Q(0Aym!t(GjiTnZHuMzLPTq|Wy1~Z-Up^>J`ri7hqR4&c#{zBy==bU +zep}-dT)!rrxjm*>GPJCXI8yMQxGX$pHc-*J&uV8GLMX)U&J^1 +zleWMo7lAJdqKaomne~WV*gc)e`F&BagwlirLuIUS3%3|L5_*42@iO!}nG10I8?~pv +zDR{6_j)CJfiX=F`D!m)Vg9MJH~!^ULULIaA{@~m*`-T-Sa)FKz*DM?smcy+Dc~Bn<(Skx1GWp +zG-{RL}5)dCyZGG*?SK~*;L_)f<|Esn|w30IEbu +z@zXJ}qiW=yx~G3LX44ifgRVI0!825XDL=AKh@~}Z27!|}it|~}5?%?bZs3EyagUzo +z^X;O|a4OIE34%+*)<C +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

O(r*P@Yp?y^TOZf7ti6E06s>$Lpz8O>uc8Lk< +zCDhR)LTHO_G6>Q{X9H_o2ip*dGGYUkpuYa~xaGDuRu;@vnCVG48d-Dl1<5O-`0cEa +z@0Ih2W8CzN*m-O&loWJ0+PMwiRs)mMF*fLhnwAur+(qPqu0XAZFRx)FHtkmUed59s +z_h()oTy9_RCcZy^C7}3O8~wf_yu{KyW}&fPn|%RW7iu#NJ*8e{;Niv!7ueX}$eD1> +zWj2hQ!1r_+j>68wm4L?$0h3!AZ1_^Bc6y&>GpH+p>Y2uRp9~<<#Shxz3^<@CBvE^< +zW3X-AtveJLp={tNP5_WAP7w+4)O{BonD&-eSLWZSw`Dp;~k+(Yt?> +zrRtFJ)K1}3Xgh3l(mQ3@*Tt4X4`qFA1Ft6iFyfyk#3StqO>%4B@+K3nT)w+?GxC6ZKACFsA-$0{Jj()w{Pnm4va&p{9AzE{} +zJbI(7)vcDP3^lA3ElcD~Q_;ERWm!A~fAvgl__CjLK&s}2ok>gEREa1lG?)reB +z{}?e9fozH9y+I0~y2Z#Fr(I?y6^D4;T48uzw=J1f&yZyyuW+ud2* +z+RCGWP}zoXR)ca959%%0otU_4osFVhGYox(MHW$xy*sn}G?LSD=2ua!5wcgKnu#S< +zxC=~}2P#vwSLFUcioI;=>Z&9|!yd>{B5ZOIv2X`S$Xn4%y}0P^0sG}2HIkph!r9*~ +z0)TArnq9bL9UNit^{@vTE1jkR?GgFh#8Rk%f5)QCK1y7ErA?=Nmzx;VKMD|$ekQx> +zBJy#T3(8cUaGr2!%o^ZDZn^9}9Xwcu1TuoYC;igBzs>Hk?z>&nqnt69m*e1@Mw<}9 +zi-sXmDB>no}!Nm2*KXiNgpHcT?ebaYUegm$>_rWo<#gf!>J=RfqenJYO@l*(UvJ6C#6@zkMZK1wrXk=9 +zLai{azr$1Cza1MHf%VU;Y>y&IDcRwce6qpc)O=00p9=&t5W3>veBXB-1?~X0cO*NO +z9nNDFdY4tBp{-J#6-Ye{`A!u{2j$G{@*3$uDj)`K7HdHm%LRqVJM*3K%bZVn*!%8Z +zdixn$9v(>#rVToqtlaXCH +z-DXa-LLF^ldMb>*4}Y>9Je%M!~Erk~7i>Ze<&BcE3OdqEXx +z4TTGCpB%*m)Vy||T}1WLmz@*M9im<@`*xgf+dkw1J1XgKGfN~P$dGB8Lxg*u-mtNJ +zd`t@S0S;oI3o-v24_KdgO4}@PGP`Ahq6y}vx6*mJ9lNEXGU@ylkXR`+thb@eQA4;F +zfY!NAC8%IBDYW2#^CRw)bMsQX9IeHxo=Q0#1{I?2!)VwMc5TwF`am->g(s1J*=i;e?|pE{@{KhWDYgd +z+2=Uh@r83_P6{iV0TgVjUv*cE<;rM|v~mPG12{rQv! +z3)_aU)NJcM>m3GIp~$ne?^G)gxNMlV%w72GIQhQ-a +zw_)!mLI9i>awTs^4cVM2GsoJcD~xqu+{oiv+*2MyVtt%nK>jDI!g +z{*)MWH8b+HljNFg6@vpO07bz +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 +zOmXYZ$ZgOB+LPCMp26b0W$rsPHDtf~HR +zU*X(YCCfS&g#{PjA$jh7Tj-h-$qq?I)Nl03YCFldpuB`idgu|S#e1e)bqW#f6Pi1nL0^zrN_Oghfc0O#sCU^9 +zf}zorT^Mm2(&?(QgElgL8Go)NXW(d!>*a}Y__fM%6pWBVo#*AD6441MRs2-mq62n- +zF`Nw~o&t(!fXibMnUPTjvSw;+=UiJ)$xiHhlXPFT(Ar=8;<}gPfOCdmy%u%hZ8V9Y +zUQ(CEVvfA?dm>LnFVzWu*ieVQZ(2yy0A-3mvrsEU^IwR^`Y6Fp8y76wfdUKg{qt?Q +zP;RN9EO*p6Bmz`(gh~6ua!{goY+E(5;JR$(Hq{??ry!`Ypdt#haIe16T!Y=L#;IuM +z_obo^#JXp>q;vAmkqTBLM?y`#olG-RolHM~h|fZZqe@?bqCbO +z6frk^tD<%i6oHr4mpQNq&uiiNo=qe94`pGDQ7UmeEVi~u()Aa11z72g+(Q;29a6ME +zrryp{r=nmJi&Ms4p*LGu5bHN|)yQMh4b_rRw&2?o#~PN;(m0?`{3>M3SA5nsMKaKh +z8_7f)GluuA75esw3W`n}k&D^wBNk!u50Hc6%f2G_$;R5)ekVBcUfCsU=yCZLkr==4 +zFQ}1Ge!g&w*jw!P3Hn!LV`mwQMQ>60TPJ33;4Ym5-5)IwVYvQ~1us_R$MZY(e|85?vS5eoPt`2&=A71%k7H{xfBgKO)Nv|v6uh_2lZGR_cK$P^Zq<8*bwxAUuV;eH +z$rjM3V1tjkGYZ7sw^(5PLmX3rOw6r>^gppfO-a9rA9u< +zxoki7GcXeZL?uDB_W&rar1z+Y4eyBHY7Vk2a;TbtGwQ7?8 +zkku{S5f)tM+&3RjDHGj_&tq|<+y8mzMQC&e9|vK9y#cbDlsToq6*Ok?3zKD!7Y#KD +zLS<#zF-Rt~gkX*D?DhOocRaN!N}hR|K>JT2*1W`wZL^runZ{{BsH$DkyR-?&JxrNx +zUs@gg&_}9{oCc69|3he)VMd%BD|aLWCFI0}sq1H+6Lq6W0j$@Jy)*j$ViTCBU6w3! +zIpu0a+Rx4trI&!QJ&1SS^n$;|$QXdh#g=35g&hzweX6?p#&@~&9`=g~vmey<*!1jN +z`vgq&l{M3+5tmJRi=-2n+;n>K2v3r)uO?T9BWx69v;;tdT5ypEMqIJ3Y%qlzcP9N% +z1{(=->q<3zDt2Cg_)+B1U;=<=3;E++A$0{NK{S7>(@(ie={&nQ%X$So5aD2_@m`U* +zr-_}mnF4!Iv5cK9*~hcu(m&31^WX+jpYDhC&ceE8;v8pUeJxy>JC=Fb?ZxK8vomC{*mCa$@C1G=(S_SH9`+a +z#fpaB%xq4g0WX;-Z*`QSSO#y9Nj_vH{E_d%{f@hXd(_Y0n8R_eUh6d0Zd&oIB)Wr6 +z+RgIfP=G{M!gLjlZ;}+218<^~w_1LymKew$6ZU&m_cSvlWs`sOI7EKiBr88+S|5DV +z<5^YYsL}Db4-kGv2qt=siKqjax>38Y0PP7xS%n?_?GaV#N;)mS)>MMFDuaPksAh_@3jSW$bWInZqFX|sa{@kb4P#<-r4-cs*b8>N+;KjaPH~&9 +z1Voix4g|VKBv%7ElV)@c{&F0W_Nm3b;Ouov*(yBA#U=%oFm?OOMnxb!khC?fhFFE0 +z$&7VL-uWOGV9wJ0t>eA6Z|(TWo8v0Qsz!x>z!m}Y3Z_3NP@Tz~@c~4U>~T)@8_;mC +z`F9hUy?m|Kq*ROtZTdFo^W4@{xl)I)li8QEZ%3VV#TGi)fhq22hu&Sg3ssff=l=cC +zi05Z#zzs|?Trp(%SME$QMQ#>I37xj2@dhXsyk8ZlDzZpTxFHB8LeZu;c@)k^8nakv +zBP*xaLV<`Dnu=QKCexBTQBG*;bc&_UsreHO+&SBJG(!ppXw79vIYS5!LBW;AO@De_@lxg<4KCfvn~19eky6`utr# +z;1`8HboO18CcfG*)E0bcrPfG61V3>`CYOoTBS$tg`3$;$zI$3tt3uszbsvUpPLAl~ +zS7g@=r}}A6pPvF8RS|`dab1o+Njo40TTkz-Eo*dT@8jvpAYo(A7?Q8qT4ol-6JlMY +zjl8N_u}jJn$TtO<%nnQ4flj&kzRF!4Er1A6P$kzWVi8C0<0We%ZTitjo6xDuE(KRB +ziS7FfMF>fiLDGcG`7TLdbx;5ImU>ujXZd}CuFF%z#x4Lcas`O +z!lMOwQiRP^DLR&3Pu6@C$a=m~<2wqk&J8yEp>sQ{y}VyIUAiwb`1)&fg0w80e-7|a +z1aLn({<2?MB>T3!2SogOII)5nxc9h+$H1is$!^~YAE}5-ZFA}d{eX7oPdW%qU;>W7m +z51)o4T(&Zv>o83MhHo|7F-V%~+Sl3@7A$upe`%ht{Wx}Y&L2Mensgxg|#X^$wb|><2IyB*b5B>^!P-uZ26v!4w6lIu6OP~ +ztw&(3TuKxdB7@e2FBPW!9hnRRMZt)8gg>U>D^rQV7bTbGh@JB8(GXF2d65%AM&hbJ +z<*yN+fv4|6{dt+9?pe|=Nup7P+kN?42Sa<~iUm)6hx6!b-(?Ui$ +z(Tvgg>hn%e^3Y0R31Iw1td?neAK>ztRG{Ie5zv5e5fDC}tB0iio$TvfIv6ylt#jqGBUx+lqh-4|7J +zPL#r-_5@38Le9_;+0w8U(;5wX!Wv5#scPIHh9G}>V%mFmKX9s;dA_uPHyYHAWWAB| +z4gTE|Ls5I(RA7;W%TiVO%kMrjzc54)ODvgbG67e`D^0xB9R2ysZ7Xk^+PavwPpL~$QsI3y(AgZ7h>NUha +z<8f2%|GYk2G4|noWNKTX8+IcDg%qmPOQ%JBU)zj)heyBvZ8B$t=a%+gy(=w2WL|mt +zB{0c{lm}6vUA36uXrEW{jN2M@t#h+^5RPL~@NZ|!cY{i8>_DG|=@FAJy1}y=uzPZL +zS{o@=#0eLW$+6cT;TAWI5)*&Oc#qLY*KHKEbAq>eyWLcaBP5Sm%r-QJe7=TOm^nKp +z7TPWm_ij%`$304CAj4PJXeS^6JP?M;5v{*A0=_s5`$v$>31fLN;_3_!o8$_%srJV= +z7w{#%Me{jxv~s85=4;UL*GHMl%vWtZ&@wU(8gE(%MZGpzNj6W~WLD~@4kDztC( +z4}aSm&18{_jWFL^q=`XV^=W-qE@G`dkx(^nF;%(0pJopmg2yJPJ4elLZ30O1=^aJt +zvv1(2W?B5V{p%z$`G1qKC*U|!fd)e!a^FmxdcbqcEo#k+10}T>5A!GLUUH8cxS0H? +zH3_xzY{~=EeuB1#F}Xjj5|$q}_D|?qsv+j1q?;bIxx+s#UWlkKiU?}na09mH4XDFh +zfS>d(I&(W_Xi{93F9p@-0?f^qfKaA`RK!ydHuMuzE5^w<*2qb<&u(-86Vz2lH@uYL +z_h_cUzY!Dqz++=j1M>r}dB=Q;b)ptMIG!ezfSKxPkGF*;?ct(N9o%DOJ|>#qQ!;h) +zLH20&*4*K`u5fJV8UaYuzaB}k8vnXH#eHt&>yw4jEUwb%(D?2!P4D) +z{r!ikt3EU!O_na^iKpZnrM;Edi>aU5-PJG#p%+JV9thWF7w)EyURxRGEId!n@Y5V5 +ziohkDnW=!8D!2~z7(7Wb?Tr`;MdCf4#MXgKkXwZt=kAC3c#~KPcyHE%D4CS4p?bue +zlJHj}Rz2O;BYdYqO`*od(2gGv9C|#$Z%dd)s$fb?BSvOXl~CMGka0f2VijR(xyX6TNidk#PsnB|!UHeKldn +zH=11W!<)!6{XmU4#VgKwF30UW0h@=E_h5h-X)Fz<+T@aavGp}Utb_u=`_?WMnPi-1 +zbz!=ME?KYF8t!}rxCXu*Fdl9|G6K#u21@3S-T>9{aiJgmqnU_OC6VZq4;G@>pL}Qh +ztzc%9HMqDzF(%7Kt}coi{1#LJJ<9R0!0Jg79Moe-jc3de0_Q?4d(397pB+1b1q@3 +zJN;E@iVX9``0SA}dgWY0dWMzLr+i!9%%?$Bj7^p4gj@P-IEOO=y23ICqUv&8cMJOf +z^XX3sF^!E$?DX|PmR(dJSup8f9Fp{o{$Awsrw>mVSK9IlM?zeyDG5)1ziS7x-phO< +z{8THbsI9!27P(?C_yiFD3b%+j#|g-oR~j3rJeUIj=zCtMWqN?ej@(MV${<*hHnZsl +z(s&7vISxfx)ZCz%% +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 +z5Y|M5XM^A6imi~awo)N0Rx_zGU +z5>S9sTNvP!-3ZD24bW?HO+Z7I8i1fs9vFOy0B}yWu +z4eLm~H^>B`Pw-*vre1j>&hrtyGEc8%u;( +ze|E^rNLHlBSF6B>O9Ot%qg>G4`D|orYEWT&V)cGw0zj;_nzTaUZk_jI)%D9}T7DY3 +z+;pn;27v;DJX-v(tZU6qi8JVgZdtfmGy_Ew2{TYA_!m48y!GA?Mud)O;hU)JkGlD~ +zMHFQq5oHT%!I2CBsZczOr|P_$^F(DydDZxeB$LMxN#@Yen`k3b$U~QTQ~LE+9MmH% +zDP`0R8G|Y42$}I>dIN9}Tx|qCdFHUh%2=jvIe3a?(KYci#amZa`0D~xwTx6LpD#eD +zz{{q_N?2|!OYzFjOPka4m_;9zhf;#FHQ}8Q8NAt6dExjc(i)CKqICqLP3J|TjeX7y +zMw!204Hn{D6bhE7yX~b@X)t5OLcpIyMzGmuauS_em!(`)#i9LHCY +zVXR%_ns1MWvpq24DC9V8Qm@=LI=XKCxFuXJT?E`U_MJaOr8Cm<)OQR%HZj7DGXpNp +z+w*O8J$PN;DR}0J(TZE|w)WI~NAXbp9`LT*j=I=-&y|V4+Mj#PcTFO~Div9e`*u4N%Udly*WFfZXVY +zwq3Jh9^cky`cO0Df3CTh+-2aL6)SJ`amjpRqN{S2@WP>Er&YKZrM@)dy~xSF^Wfs5 +z4#vgw65ZPFNXNXWtWGJv7kw%J2UxGiIg_h|QmrNH;)gX1i9z)T8m&d`6VJla`Q0Tx +z`**kXj|Tpnt9K_nua2y3N`*akHa2U?8(QeLM*$Ldt4Gg?r&h=A$nN~^{AJHojqG%7 +zYhdk&oQ+p&)6&xXQmKtsMtH6GqPsiW{$RjjtF;_g_~Xs(_nY?br7)2n8K`)P)(QEu +zSSuKB-Ima>G9@>ONw{kKtmC?0zi!oNUquwD6D`pKkznzQ32k0RULfT;12oVyzY|cW +zh*T&a*0nplhK=Y~fXN4B<_Enj7BJ-R)H6$}pk%jAiWiOGr%~s8+GUPy-@b!jI9s`} +z)Sd2%6EEuP?++=Y36e(+Y?rw8MzLmf=}@2j>Y;=|_@z5vdvCySEp0rbJ7pRoJ?wVzr1(xCh7doPBOfX5D>rl5Bj +zm~-@)bcVf4d>h-V{QRvxvp7@0ioHVViNE+`gLvXC +z3+{3zZuf30ArPlvMOvN7+Wp|PwVJd23tv1q-x{QkP_8%!4E+iCti|kol*OZduRyW0 +z7WkyFi($LHzIVm2Qh8p}g3d~oyXQC<$8(*ECnLhmN(jMK&4AxioGyCw7+zsHfb93H +z)E7XSFK)iY;^1MnOa@A~4+YLuZS7~{8?|Eq;}XCJWl~$JMbh)JcWxPcE8j0=gZYBw +ztaA>#RpOIHVM9h>+x~1LM>E&C9SE9 +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 +z?pKFydCzJ(qTNq0HIkYTwpUgG +z?HPMB4=LrB2)Sm07%v;b4cbKI%5GswY>0yc@h;NOG?KlCt+MVK^9@&m@yf03vmJKY +z%|$a46@rI~dFJNUl+^OTp+>T8i2{sEVX5Qc9kSkHX}XRF++z(QNyAofiWFYYm7cu4 +zwC#r&h_7p(O?@+=?R(R+9$7o8bTYDF0+=CV@s4-ji9>@cNg`H7A!LC0#-h_GK{O%e +zCzaK})s=OwqOv%GHEu>kJLZ*j +zYUgO5uZ}o$J*V-Ej;~i&GA7 +zWN*=4r}aTNO@*(XTqUxht|U|mR}`8^+a_Z&nPu|t-k&^>Dt^B+U_R25PfB}3dtGHr +zM^X>oCf}K4<$~7kna_Mt19<==BeMaU{KCG3nv5V|n!i0&Kf4L6`DQa*K%r;;g!2Ak?Jcc9Mb@tx1d<(v__DOx!8Yk>=acqw$7NmQD +z?9<;;MXyX<4pWfnybEaurQxC*La<(e;0$!U=p|=WLL0Anmv!tD2|-3jRlCXWLkB%! +z`03VYH?#?nwc2^Of6m$IWxCUgRx@j((hsdcQa36Oi%SnAtD{!;goiQ%P<#`yVL)ED +zC;N{N(PtnQPNcV|K5jnQoh%J%i$6$G$>QZ6PiKlgzUzE8EhC~>)uFTe3 +zat?fX@H95rc6@PjD>Ps7(il#hudW@oY-Pg7{ZrGB2SmFRFC#?abo4@IvF^&rF6~kw +zB1CPr1WNaZhNuUtUu&^BZ^VLmW$V^6Z125ot=`GkWMw(wQJC%nL+RdY>2G +zXaUu6x?MzZuAynY=%%->60$%P55{4AYz5}*$N5)rDL6#wIPkR7VcO1LBjz?5!gbSf +z?;~4HJaIJk-g-~foHJ)hEi;jQOwVX^*TC|CvRg2@_6q5#b>MOark1j0eNTNU*ZN3h +z3j)YSZd-_kQ3y1`Rf_kO(nb=Ft^x{!9EHrj?ION*(X!oB!qlW2i?HJL9P)BOD!}wy +zP0Wg|%L4}T0?mAl{<`4uxGJ^4&}SLS9`EU|kfOvS7%na;V4g8UKMr +zu7mIy-CJ1G@63i`2n!@hEzAcP{QhCVW!*(xpAnhAuxtb2hG2!h&P=N;EErqA$GWu_ +zKoj%xdI%NF&cqhkAEP0Rbdw3vX@37GiL~_6k3fS2&o#2e<#TvC{s7}{R9IDlJ~1c- +z?%^t0{-@>MRc&jyaACq0GB{7-1g!*M#0df%oT$QyPdH*OUX_%Prh>qWBFijpIK#y5 +zJX^JgV_g9i%)m-aR+{)CM3*YO-B2E7?3P^qF^N_{0YH1v;xeBoMug}*sq*j9)|Kys +zWQnk0Ea$>)sGt}(J!CL)n%qUMr9iXhOZ&0vQT*iDNPAwKJNgLOJp{mkC3aejaSEFT +zamvdcS$}{zgqKc)8xZd!IKEP1C$%OH`ED}pVpk=eMuF4dq%ZHd>uioV>gS21Kj=^3RfcC4Z+=DwCx^W)9e?P^& +z9$#oxqBVk0@?k?yfh+11JDL#xSv{9L20_;!^ +z_pk|&O)8kPoo3EHjG8d!4U5sSMTyWmgmjnU*|<0sC--jB4)UAgSr%s8XrtZb9Oz^_ +zf#Kd&rA+M9Q4rLqE}cw#pi5D!vRIp!gV-`zjcElz1V$59A4;^xidA2!G!DgqYv^m! +z=yNE>1$y_50Urzuf>Um*<}ud})RPc)$@|m`8=)~#$X0hAM<4n#H%Xs$oNvvY=ti=C +z+&{_5Zot;A1dD^i7=^kH-KeJjbq3 +z?*UiIsf8H091D`%r_-Y#a)Iaf? +z4~KYaqEEfvL>ZGr8!KJv{9zSN{^6^&4XNfd +zGzW_AC>AU??^IB#;Z}3jb_j9!zPmLf-_6QyCzUNW8jzw0P0EAbsK;o_f2%p7n!!N} +zwpO>>$epuBdI3w~)83h>Mrdhxd4Tl&RQe6+NB>UBp}orihP*{%7V;hIb=bucu5%}@ +z2#X5Lela+egT~N{MroE=-^}ioDShUSj +z%3K2z)__|fNIHw!(es?F$6QW}bwAcEhmG( +z#W#Fr2|Gs>*+E}cRW*>2#6sT6 +zATvi96cETp{>HP1S~>4Mo{TH=+UZaZZNnx+D3}kg*S*5p0VTw +z4D`@GDtulQ$h(5bO7RIT#g}Rlo|F`F?A!R>{)|n&kNkNM-ciBFPH+83rI4CFQnk6o +zu({bFsx#S{Gi#MVGa-li?3n)C&9dPz=qas$YuIC9IjQpv^C<&q6-_=-*%E&9DG~{9 +z5~e+O`#zv3d3iY=WMZfZ6K8A1K0;<+$}B$PeD6WS;n1kB>b5(Z6fGT>d_6|ek*HYT +z8gfT~qB$itZ0#4@(7E%NeU%h*;zw)|`5mq@DB5TOO_;3YPF!>=*7!E1Faz(>ZV_)g +z-3!6uaayyz8I^}OoWi*`Tkn`T;e*H)f_sm&%BZ3{ +z)aEw@D_Yr?R-4OY+PAl|w}{>&$PZ<1)_(`hp!F?(25(}en#T`kX>}74?Unw@H0cZA +zyQ`E{KAd&=qS^*At{HIuqe^aN`Pf{X;b_WL%^m7A7MI?#M>koEkR$}6tqB1neKzBxPGsV0Ip8}O%Q3H^L#~A|hICj4 +zwi6+l^!^4OO9=O!Lvh2MEz1M0@xyV#O|l4tq)27T$2upNoi`k}-{0$blc(QhdfmU2 +zVYg*D8#QK(XEjuK;WTd8Izyy14n~A3<)qwYC71l6&_vvodIaM-89CFB;QKnyS>~Be +zL*KjXpuI(}FnEfoZI$9{3qE-E*trQ+@V@3?0E9C)Y|}6eJ|gX7w-dfx!+*5ui9jaI*x_RJSc#EmI7| +zJo8`mVDSB7-sAL|@uZIuwakGp$S8%bQT7``WH)l^t90uJoJsd6o_5l37-G3?)sk5> +z-_*ReOQspw$?+p9AxFA71V<(T{$XhMyRvb_+CfCBrwl$D+I^VMhW4^Bz|dAt%|tnh +z&zKEeUk8Q01$Wib2pG7;yVA`1qPG5_Kl;hgcHL_!lm{5vF$KX907Dz#z;|f&C>#_$ +z8QRP19#{V?5+s-vhmbrlB +zo(%09B`_>D**t$RfT8XC!_aPe{|(}e%3p@IokKC+v!Pvh3^25VTMPvNhIWip{R@Dh +zeX{%0&}NfCN_Huq0M +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 +zSEBhsZxJNo +zKhR{V(>%hpHBr{Pt9?d0&XC?J&I$5fcgZ_}SS}gCipRCTt=zk{Wz)kuje`{@(Z~?? +zowz!yx9Gyj}{f+k)I9V!fqn +zKvhNMQZfrn=<_;~)W8kpqaiz04#>P9R+XWY!U$(|R5YTuZEIio#s +z&4ZvSK2U#e#-#>w$EtjsSk+DGtyB@lY?uOM;9WqzSvgYyiX-Ezab5pRUfzZUw{Wv? +zy9^yuxNpd`@e~HQr{i4l`VW#PILXy@5fZ^;{%m&PC+@yCVkn!#Fk?;@K~D2sB+cjX +z&>QP-oFbU6(NJp>Db|Qlm3_wWhhj$SR&fjWlZLM$+jnld{5pWy-WHX_DqKKwkdxlFdzh>b?WMsO;Q$_}v}PNH +z7I7Zzf@JsPL#=LtYb~DZSHm=ibTy%T*U_{E;;%bqR)+cUn6RIFqZ(HWlm$(99n+Nj +z*EO-O5`90guwi8gZmb{b +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 +z42Y%l{-415sQ$N{o@r=8Y5UMc!sWdV~ +z3n3SM0z+%Q-5SeI%q6h_0+=?Fcv|JpvkxNWOA&#&A6sN`?I0nPH#Su#W;y}{C)zBx +zY%`mcCuvqNkmWNFRyt4}K*x2CDMx>_S#x*vlJ;u_R$Zc(PQ?S&gq!4UBxhJ$uVc!! +zA&wSIk*#V-YP&;+6Eeil+>{eYOvo(BA{$sE{-EfAu&3TQ@5!{2r*QR(w(mVvyaN|8 +zQv*kPaY(+B#j7n+4g?-+{mGKFP?bFuRa{cQo1GeZq+B&{28AwJYvXR|r8c=PkVf^+ +zXR)XCJPyYkov{wQk*=qPnFE^>gW)CyL@5EFIW3`(1N|h)7-orY#vK|J1;U0K56I&h +zP-Rz^<{UGahPq5-c!8JCh!|Kpl{?Hn580X=jBIZfa03Oj9y6g|b?!J+tYNCUR@`6b +zVnS%vc55Dl5l6M|1Dj2?#qy|R$exnmTRh#u#}egcR}9HG06~&E6pUX>UD%Y(||;IdEV +zR8&+>ww~(UqCl#tJCMBMpVH&H`&l1*FD`1%;ktz%t#}nUqVQP0Ms-^ +z_O$imumn7K+d1;L$uR*~SdxAh1#2aT%56i2HIdBE8En&s0Z<#{x1J}mwW+$>Ij_1B +zO@5@3hc3xhV!BqyH(_}Fq<(j5jk8&x)1Z8}5~~dNlHTHX$fU=yrFb3LjjCtGY`M}K +zvYYuo6MWl#1g*b#+y>h58>^po$RKH|JJYL^R2)$uAbib1FXtc4y@w96 +zrrP)g6DnjkLT@N5aZeWKo|3_rC7IBHLkIJ4o_PXJ`!V%BVUJ+QaDtJTdqM4ibA5_G +z;r-%2PamM=bU4nKLlnp%MeRzT`nFUxsubT=IlxVWXe6R?i{=a!m;b`DL%}8qkxD3` +z2GUgkjV`naNP~@%E(}4DpI(D(ov>G0Yhy{Ah^9*Wd}_h?AT8xT_1~P5=(Rv~f=VP3 +z+0))x29JW2x#sD}O!GCyq|oJYlary!;$pHgAMy5oeE->>tZ|95Q4fTD64U23Rq%R& +zT%VH9r~e5*XZSx{$j;h+<1Dl68=hT?d6-=eRYdL&?L3LIuxjZM +zF1hHM>U#q>tpHU}m1hM7o(*T#TJY@+-=;(15E95qOq?8Q0wbY}e!Woa79k1jza)fp_7jnEVmmyXXa{KISd%KRNI7e~MEr?x>T24gMDIaf; +z_Azp|7<7jAcFUfk8IX;*F7OnhwyO^xx8=@abXNE3qmL$7EJ?$g0;VPR +z{BV54|Bb&%DXq8o^A{I~6Z&nD{W8#|um(vQiU}oeMM+*qA{l)QjfouwC()A)E=I~n +zKRr%bU-AYmOn(}fm#xz7x>l52h*uPPadDh+m-Be*)U4IGCoksK8iAaD4IYcZFyJXXi0byC_Ih~=PDM7B<1PA+cJT=7W@OqVOi7#VDsZS +zW3PX9mE4if91Lr}9tg>cP?9q*?T`WRm7h9DuJz|UtaH?`kZD>G=4d&B87yrvF0w0nhtDKjW2P7|_h +zp&B5q$k$AVzNU-4uZQO~3b-_?+~k%1^*x +zmW!dibSj-Q>2fmzXreHsg+=a08&%&xr#J1Ju%2a1RH0ieR32Z!Z+Cn~StVRP<|mV`Y_xkb|fvXf=)!qd!a%ubu9Oo6-P! +z9OZC}$E;rX0p7SqzbUW%bQI=H9~M~dQw2U3RQ%1WN?KNBaRn~pzOWM^pCmaLeM9e! +zzHI=FaH}({-*}EN*4N9)D>O+>f05fAX|DykRB`4Q12K=q9R1uX>Po-=idoYz-*VNc +z2i=-SAvz^MW+n#&qX&q>{nZQkh_-;lf*(!s2f#3_k4Jjwu8uRScIZ99y~ov02oTZWDF$n100k5OY0fV^ZNG_`O(s+( +z5zrl?hbC@1Kz(vhRX)&`^Cc;1jS2WJ<)w-8rZJ0x$EN94*Q^3t4KD{DD49mgS;`ph +zQI07nNLx$nR&@Nf4%#2oRv45zR(k>D{a@>7*BO0wzMsP|>Gg`^B{oj&l-rMrxwlG( +zqx%NBjR@g^W&~Xp9J78T?x6`hULbgIMpq*{?K3c4w5EN3Q)qZ{Bo{rxRrVykC3}PZwO)JEW0Pz{%n(Bu26n +z$(Djza#gU#iP9L{B)Xdh-Nmwl5K*kUJ5EKyMv}r?X+R=y)_casgDOTJ_-Hr!*|sV? +zeK1>~`rz7vzbfM3^EFo7;97t?GdbQu%_W+YdK)UMAX|fBEP{(w(yHc7F;T7tyN4IR +z8gU+mAL>rsctw4$AW5`sB1yAA@iAx_VGQO}4g1ufSkFCnPt+(G3`&CrdC12aIZz!` +z&JCGw%0VgYdm3ExlTlz +zIBSK}Rd)fdnB^1g%~#?CRPKB*`rmw;i}?Lq(7+U#4pv+H>h%|#Y@@Q@z&uc_GcYUq +z%ayrd_1~dZJ>1t%LL&M0J7#b1FAMwY@0RiP=i%)lr?1zaKbO~^#f86r?KAw#*RF53 +zR{wDeWMM6Tl`d~DdB4>8?e%XTIlTSc|FJ?Gaenz7CV02E*P%Z3^7GpgUEh{;XkUMx +z-@apczpml+=k@LN?fYYVTc_*W-^1JIr?_m +z$AA5ObNyiRSJg(+7vvle@{ga86AK((4_MakqO&Dx5`;5so$-j><1#;BG)bf +zq?y4<#$NDn=DvN`#@TnL3(%E=t_otEMHALq4U9A@}u^}mk-9X9`rf1W;O834>{0iGI$DF#W +z-XxP&>ITe~w7Nq`0~8GECjQ=|(;PRC0xq2<8n{z^NK6ZYG=c#KV=yHxzuw;VM +zkk6Hm$aEwo(aYYp=>_9^Yorij9-MeiV3?D-Zpk2l)CH26=`@HnSW=n=e6TnlBAt3eYSGmLoD(;#3 +z2B>489P9HIiYt)mPM5j#%1`O#Vnu|WSUckvS&NjZ0{tZNU?Brg5+NVklN!mtv-(21 +zJEA3o!^mUAug)e--F&BJabCnDvxzLc=yZ##kHSitn%eD_1P(GqQwLbz4u;jT8Juo_ +zsW9|tEurzsJ#-4fbaH4Ax@W0JOlM6$+L?wSRlUiAW|eE}zFs9xbovQ)Y@(Ww7;X^6 +z%iyFIU-UMkd~LnTD05^#4r|+O;3Wub^wGaGP1IdrMh2`pcOgJ&ffrh1}o@9k#AsO +zM0107!1tEaizFIc8p8ihmQk>eRGS|Ickx2#Yx4k;iRx`=s+w7~a@OG= +zs^he>&$8N;(Z=v_`;V@Zea!qC*PTh>BU(YD^9+X>iX)}BpALjcwc6mJudNTd*`}8qr6{K$l +zCTRP&dz{a27vb&5{oC~~*~L~<`g;hLZX&CUcb_nMagCkg67{|Tb-6dgN0=ng&8oKN +zxB~Wq1{as@J3o;NWwo;fp|)e4A@SShcy?kFU%v%+^!+^&9>`b*@4kqXAheA!rj`OU +z3}G93xW2PC3nk7`L-3DBUO_1@nPHyYf6~K(DrrV5gKY}Lz?_H+SsD3}U^SGF(m&Os +zh~cqzR~2{5+$b4VXL2_lxy;8O`}#qSvGk6j{J^x`^sBc484=wh(SJ{8qZ7o@9V&N0 +zH*^PG+64Ip`GT1V@#Mwe$t})I1KopDLZbG`5hU_5i!j7j-a`CG`LfZe4?g@$+=wPm +zIJ!%smfZ}2e)|qn8V$4Gk8ZNRZuQ;DEv!*I3$IuF!9qG0@vx9f7UN1xX?&nYY +zFn(%Z!BkeiyZ{I7#SJYxi#cwZIo*|iOZ +zE1VwTg?o5@eTf=LbL8zQc$lAQSCM$#N&VVd)L~x6ZIFk2Tnog*+#_e@f?rf69T^b7XJd2@unF +zwlBV%>Jc9|pZ3jWls;4C&qXZHg=^g&aoPG>IdKOEf%+T@9Z*|qhJmA`#M1i_e6`)h +zL|7;7fu=4Zu2-LSzhsZqA!3uOnz#lPHCUFCBghx_u&HcqDIJHofg +ze>5JCP|ADRJv^2&fojE<&`(}|B=hA{af0QNJ^%K5NjE1CWPlK+O{pym(<#P-X7F)) +zW5^y4roS;D*~MU;{#W{G_4w;A|KmStW&AqhqdxB61QVWDRbO0^cd%vs@F)lm3FU4F +z1uHNa%HOHEP^ +z=HigcmPkjv3Vo2r0$wn)+08VipP}!hz5|kz0+jVUrZ<>5ojFS2XT+_oBI(<>XiY_; +zTw&u4OQdV=RL;D~QOIsSg}rHFih6Ry3?b +ziP#1O)sE3}Jp8ivz02Q_Fpy1e=ksE)Su2X+1k$RZRQ|6+;&yvqfIvJlN(hvMTd*6S7VyqnubtM4e0}vmt +zkOWo(5UI0Wg0Dbi>%Wv3DP5i%1>{y@ItEP*%gL;p#KuVpq0hgge0aam>XgDrC +zdeU^a#U~JZPSs1baC4r{J4v?V&(eaO@o9@^Lovl~xFXd4Ai9khHY5NyGEnekd^myv +z38H?2=UjUHvenkfGN1}vTG7{jqlvG&2g&x?KNpq}kR5bnr2Y4@cNb7FS#(a5EDP(D +z5;}-)vKtiR{XE^!?!M{Pr^3U)f()i|if;N63^An}V?B|AXa4xmM#6u;E&Cn*EMGkP +zu@pN#_(s1TQ}7~6K7zd3en<%v%)5y)S?J--=cdM?}Xz}^;lPjx!h$;Md0%FoY(pw)3R}Fzbf2L_i +z0Okd^I{clE|4)`omeBU$&dsL>)xpB@^-}ufhgX7{+csI?;GXrZ+b8vWZ?gd+AKT3? +zF>D?M`?t%dMN!-Rw_n(=blHp?(XH*DbkcuLCth|BcU~nx{?bSSus7M^v#P{R97(^A?e5n$wEl;yPPeWX#Yc>@ +z+N01fKDWEY<+YsRfixAI?=dxXnfTn-ue|qp_C9LX&Q%)AU+$0KsU6vRkkH01^7WG< +zUvbrqDJ(r{TbVn@TSGAEpvq@78Y#K}K?nI*y$@CiE_)*}W&Uk>6U3}@kTro9GkWx6 +zexgAPYXqU1ew#qJ!jN!yy&v8wMk_wXH0~aKD@yzrgWpPk>x|+y5B0k89W^6dvwkDcXQH@Wl=tA$Vb5yTe0_ +z^U&{n7kJ8V{2^WgzO;nB)9))Nn3Ha>$b%?cykK(*gLlgxqP}p0Fcl94xND8ShF*fV +z>(n>sp3p0k&<6)E@k%V$E#BTvcDf009lH+u@8(Wde(Q*i(CI#>N;->JpXZ+^Qj5P! +zuW0pJxq)a+qt#`fZlx26fnX5%;PYA*ZQa)+Zyh=jS}%eHu*91sSz;&OEuE=rM$=3G +zZ3~I&;@x7AS9AB?mMOqYyW|o;q{DDJHdCzC@H|p^+hk={Of1i`iyLw_GXMJgJX;xT +z5?WV>JpA3dRS9RJ`lj_Lf;Q2l2l4tUx7Am{`WQ_b2%XUq_hm65j&QPl%2xahPg +z+RY0vazqSTPvE?mmb8{NM|d~({4_}q%K?#b^q`wzEXT*$MZUy%TPfg};$R3}gRN}H +zE3`-@y^>C#)6i94$z_n$%t4|bc9f0rEO(!@gLeq2 +zNT4}&4$p?-;aYhXa^38x8OO)~w#De0XIZV^uE=TKT*5>gWxWj9u!`yu!z+BLLInu$ +zV=j3mqqgm-8T)4*hcXF>C0Da#EyA(`W}mehmSRUs>3B>J9Ua}Xxk +zBZ;zm!|Zr$brJ-UOU|OwN$zFQ4jA2s{8?m*=ipYPvTu=%WWNSHbLONfbl%H#J#EgQ +z>p9IeJia7=hxO4!irykdPhSYHve(iKc9MuAWjl*w$WE04gjbQ{h*Xb +zQDPWyB%>b=x=P-H2L~SwxV|FqzB-|QqEySkZXdEVj*%Tqqb(Nzlt49_O1~KVb9h(r +z9M;<|4n?r4QZp8ga9;Ec*=s<*vV_16HzR7$oPoR^8;EQVP9-+%+!UEW +zm?`P1`%W0TR0U85T=@v48;DbH7T?7ycn@_piqkjk_>vC&*>_Ea(y30S>JFKDnrAkg +zEbfBY|K3cxVr(7mw%mV +ziV*5a#HT~w$rsjBpoOR3hm}{AmMj1PkDe-aX;DpkiOf)g)YO>PIFOu9*uIe) +zpTsxu1;)kFw6|ejcdXURjGA +z0qf1yUpqxh?&K85dZl#*6sTc8qgnm|z7W~T70F3>3M>H9nR2$<&h!IwYfHTDjbR!- +zp8ME_%c8&P_Je~CURq=Uh;>fnq^@a_NEE#FtZQy;|B_!;%Q0^eq?&_C95YZ*1?}CY +z?4XEH;2hAJMp=m;^qM~G%INsyt6CoLv(Zb_&JB+~?~5!empYck(O+w19eI55NYRuH +zzd<9vhS&~lL~LmOgl`Q~892*iU?#_4{QUaQKRjL5cco&`vcRUs^tr>GTXV#vf=!Ke +z6k}O3x;|J7AZ6ErdeZXv6<;>(N-)Rd4o8kYw6a#=IN7+#lbIpIC$^pQ|lNo(1v|LnRCxS3}wmp0Yr&eQzr(BivmFi%`UKAL93S +z|2~K1)QMd1jF@42)IcL^BUTod>wG01aOM*AH$1hG$Z1e4QLl^gX_Q{looMy!WkL4m1d>hl3~9K^Q9@Sx;Wc;x{6FnP*K>#fc33JVe8h|!o-cKrQe`jdDLTSQ}S&gn? +z&u>-}Y`%kwSxDd^i@hb+mIk0xoyq*}>uTLNI16Stc&X{yFLJtjI5mQ0O5Cv7oLJOWochP; +zkhf43^5^c27Hne-9%-Z5BZmU2eh11(hqwJew+b05L)nMZOjy~4M1#R;w47KT-=vuI +z+5Hp9yaRrTbh5awWxs3}2RJOTRWJTWPYE9m0h}Dl~y6Z3PDC9Mh3G5Ud+2!#uYb3&x +z)ctBL&KBTQFUrwCf0ldq{*obcdbt|-FsPz}{1VdYc1x +zg{H3g7pem+ekU;WEvf=%(yyJm7Idm9(i +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 +zqC{2}FhaDn_iO;<-o#|RaHh4%vBD&hwE`=_H9 +zFw<3gNPz6~qWNCFHQ#JQhwgJUOcG)stL=C~X!v3mbT{QNww)+l8QARNfF2q18P;Fg +zmYO6;$R)utsf +z^|xDZ8bx9xmRM%E(2ow?iX)@|-r_RrjU2rZVecTywI!H*%SO)yQkz+vsO(sqOft*E +z?whJX4V%%0=3@8iN-EqihtGkrge=Z<0z&KwEL!eS;@aqJkRQ($iRauiBePO +zBXBJTBYT@UR<1>jeT8VK6VF-$)8o<|s<=D_zXt8+X)OafLkp`%a68$KNc{*Z_}N;M +z!3IeuWsUR*$hua^0>yCxM#@kneaoeJO}aum63wh>o)^fo?elUax$&CB)@!07!yYSh +z8zh8#S`I41L=3CUb@!DIn;56k2^^*GOg)qSUr60#>$p-M>E5K%g|>y<5CCzS-Omil +zR^2#hP7T|(!7AyX*lx=aV2<_f@(k<6h=R{uu#y=*AAooO@?aB`mm~p+C$B-QCl=je +z@zPpi!QQn%A*MES4p-Wr0s&^{4ryYOBLNgTGeBK%fq>h@UM$P2i5gOplcEpr&9j-TOtW9pa>`a97G6Qge>%x1PEF>%XskbG5WRNO9*ii7BhC +zqP(eWiC%u$hZTMSJx}yFUfCkjNosb?1(I_P1PScIdTauT_O%Su!r%*4IIjIcw!O(0 +z`GyZ)rdL!Ox=jL$A7=Hoy#m4>qDi?6X@ZMQT>sK@u5^Sm$Yf%dPP +zYEX#p`Z!7eNzA~e`IPntHWd0iZUZ`^>OsqJeCyYZ`=}>-_y-+FV6VviD7aOei(sU37%oJ +zLMyX|2Ev0VCWx8GF`7~$J#Ck?O^yt=10xH!EemW{=M1`r8H7`#rS?D@d$=R!_2>0g +z%Y@p(;n6Ew7qIcFt|?+hao|s#!bXfWc`g=z9>~&-67p_ni5=vhD#=U2lahchDNHO> +zJVA;y +zU9Vg-qw3KnNI<=pp)ay+)LfqyDuPDivhEW)Gz&Bln36Zwy()0&HSH@+;F`5~FkQJc +z3BWZ%{B%}NKZjT|{lG2cgy&tF#|0@EbiBEb2Jt4XHj>As{@bpaw<z~~dk5qZXo-}&p3Bh$rR*3a4 +zvLval$qQ+YW9Qaq;5LpR)-oPy;9{FS3!2d{3^vusM} +z_BTNxEKY^FBh%@7E$9>9Sa7EQP0fJma(c?kA@Umk?{;bTuMcv&Simx3I`wH)RM$-byhg09m`NLafEk +ztXWNEiMKsTXY +zKIt~fmYxcK4JrsL5WKPs#0s@>=;Tih4Z4*01iMGepV;?EB +z1X%w(Ea?kp8A@6us;6m^?I+R(e@)rCWdckLc#~3BSV>Dia&u2!?F_m*38O}+zQRx* +z1>uA5G^d4EPyGW%$$-SDFKLZ?hcvr_sn<5hvf*Gm|V) +zt&BQY2E8QN_0MuYJSO4+M&!)p^hvLHc{ElVJV|6F(%e!{7o1vB38zjY~MkVDFJYTvHo4Z-Zj3RY=ke@*U)JasPW^b0*wC#k| +zN#A*ha*K2Cd2j00*$id|c%h>!kIY!6%N{uS(lV*+5rM3JelPv0`8_MDE4C?^Xv<9I9oISdIW2|slH!&h>%z-xTFdRhU5m;0%5m! +ziFt;I})TG8i+rUx4k)<7u5vWMuH+W +zxiG?<(ZO*XA@pjlMsgB4q*YPw{ZPBZj}Yp1q&tt)+>?+_CD~1S*>Zh#>_EF`zZG8_ +zjUhOg4di&7`(pn*~QJGBD{Z5n9EnZZ{7qtW{QT7%`pRsjsOB`(|%=1Oi^pj5sNa_K&X!{Mc~>7U%@Qf=ewySW?>+ +zPrOANvc$n7^)yws@F6jnL33BbtyhO>u7lcZae|3PZ&rGH&r}yIWQT8yW-=$S%l64xE8vwgQ@PEr7<-#UWgk +zi)l{E6eCJX+bp%Oo#%YL?0`hKjzww;z5G>6f(V{{nlXq#N+EBNl8vE|JAwa8s$8*r +zvf+tCm9?l*Wz>mlH}NE<6&Ee8%L_FEnTO7#o^9`q_{qJ7l5*EtJm8(lHZ?Y+dB@Ck +znQOh)sUO7H`gMj6-u3KtKe6oM9RV(AcLsJ1Sx{j*`!0}dp+f_dl(!b>sw9{5n5Z}s +zP-L(&{}Kn##t}~#KQ;!++QgS +zjJe&FjnNkHDw~U!Z6}#3iV9UPgZLI$e_%y@mB@7M*sia~IQc4IFH`tAnXPQh3sQDA!&m!`YynCi4G-ae{WA=DD%777Y*nV%Bpm^9ANz}?(I +z+W6AlgT)ZIKp_%;gDhw3c`?oXAuZ%~L%g?!0^K&>!}vs_iTp^ntr%_uP}AjP*ddE( +zuS4+;YhVdIws{9EwMaDH+0qVrkHY{k;8u)8M6=*B&)$4#^IfaDz#FCIho0MJ-` +zL?B$-IEST-O}5+R>tFfpYV`4Oeu?u5!-a2#E$IW&+Nw;U*_S8$nN(Mnh{JfQPf0;c +zuR!w{h?Y7f->m~smg-PpQtFi5gI^zP|NsANo6FX+TVA%k?B!Zmu4UV{-Ii^;@Uy3Kj^YWX>!g&6V@kf +ze2rH?@jT4k8;aGx6K}V9D9O}K7Gvh`(gRjQUp!fs(Qg2i2_N^C$#)%6ZcXHdc@SVD`77$y8Jt6LJtnfFX7fPm-L4?mSV`MnJqFEqEJ$S~ +zld`LCD<(;!)o&sod-zqm(|VjEHUi5$>_u0K<3L)`)6CX4Ka)weoKUG5mr1E|?84N{ +zHY$%fS{3q;D=r>p!%Vuy!=^~)_~&^^<>oypRYnw&e;d|=uDXm2J+|pYDTUH>?Ro8# +zI8xo0v+W?qsej$yZ%%Lhpf_4?Ei+7rKK#vOFhuNgzagzcdr`l>t0{yD9m*KCGJnDh +zcyI{Mx{n0|-F9)6!|P9q6)moBtKPui3zbQ?*Z%N0E3EtReW7;a8?x;7{pF-h( +zHEeNuk)hpam=>-1C_uHRuu@nf)3d~!mlw)RE +zf&~xwt3^=-3WM$<%JFaF2Dqn6!9jGVUjW{6_**FddI#UiQqUkCzXot9$H$x>+xg1 +z3h#qo%)o60s=UQ>4SW5A<;H9C!qsa{bIk&hKy1dDgGj2PF;IJ?E^F4Zy=Tdb|l^Z%<4km=kn&jS&Qxygoawt-TW-cBqKGY9No%EnhFW +zmWWE8>p{bkj`ReHjQ@ +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 +z$4q-EVqnjRCfDjD%e%7()ta@A +z^hJA?Z;|Yn6A0TA<0Zh}CLFRUk4iKbxbk-N*ymrrsrF2F^U9wBJm+p@^J7z)E8oX9 +z=e5gc-PU&kTki{#AjN6cj>r++Gx%{&Tcco71)>y_XoJ1p7tHqxofq5dL^3?vBkP}r +zcFSsF%kK^{rLG+#?XxH9wuOhCPeXfs(!y(R2rd +z0cK};qhw#j2&s}V;my}d#;0^w?L=o}s-@p-E%dro68kAVY)?QW7x~1CtSTdwyPdl5 +z;3I7Q#DpZ=bb1O*4&ZoT60{Nz-&AeMl%!i{UkLRNu&@WD!ReYf1(_x*`53ew=Sr=*Ait2; +z=EHGdC)Pj~vH}~$kYoSKZ0se7W<8?aNC@=ad~RQ4u5){OvV-i?Hu$@HehnDW9dXs% +zrl1DvnX6WaE1hQp9yA1^@YLJx5+Uh!H-;MXm6E}46Go6i!S3iv@m+7dx~-WPZH%Tr +z=5^~N;JPBCepHbmkD3cDrhxt)4Y1VL=b0aOaa%2BLMgtG#a2o25P@M715q%h7_fZu +zRkDX +zr>k|}Z!NMO#s$7R^~=ylYA0$#$V^>OyK2|cA^V7)*r_Ru8df&u7!VLrt`2DL +z^Kzua;LlkN@g;PEqZ`9hneMTur+DE;3n);vLSvo1n=@*^bi*enwgU9+yvdzvG$q|n +zn4|!G+tNAV%Ee;3wo>v%-<|>J+j%z9ie58lC`oAOQ1dzY^^{#|pX`_KEwr{r6g#+(b +z9)^(yTVpd??RZ1j;!XdE4=0>Zqb;c!Hy#lnBMQ*Bzcfqw&1V%-NG|j1nye@GBIG&* +zNo5{+tApvQ6O1SxHgze!?Jw>`!B$URS;EnTz6+BA=-Y2vBVP3F_osMCFZ%X~PR^BO +z2Up5HwecB1-_~m|0&*NEghJ|KDuQj_>9gCfmGr+7G&CB4J0d$&c +z574)5j%Z`lTySxtNqu&`T?OMuT+5oKs<>yorvm2z`nG65Y2S;!4M9Of*zr@}#*kz- +zjdbhU2k6^uoYQXJ0RVkl>_y)$2k6_M=A@!qbF)GAFrr@c?L6^gC1YTsTfVAh#9;MN +zwFL!QbFOv}Q_GGe4a7o|B-K!TydI!2UKD49=&+Ny4l%f(X5$fd69!pyO2G`JNgI;U +z^TD+8H%-fzU)l`E)Zc_$g25Sc;x0vrqXl!f0z?Z5daVU%{sy!_3|Tr<``! +zU4W%P+=jf@bTQT;X{aLvr8?en{*SAFWOy$cpJ(Ps*N07sD5R8|q{ZWSYMJcB!2D +zoqCi521n?_u!J9;xc=*7_%h7<`d6Wyb=Q?oYg~ewx->KlF%+y+qB72YEjzmk<4IO< +z-8{y0SBhnYG`!E?E&1=7^GfAmcUW%(YbCu%r4gV+;gNzKLMYDHt$>64J%r<235^IJ +zn4uxRd}Kg07v3htico1A>=)ECWG}|Ag#gKH$}>dPUnV(@$d`eZEx}m^=`w4I#-#z% +zUunAP+G0z=AedYvu6+}=G31yScxQ{wez$jB0}0o)?_wBiJ;=dm5x9t2f75si15At) +z+e0`Gr)RK{QGe%OFv8AQQ(_h$1nB^XUF@Y^BV`{dXClJwd>?E!4+r?$d4)meIYfKD +zeZ}S&2^Ao=0Dl`YR*WQ{(g^B?atO^bw+`G1minV6C^pg{?d2eGNga>`5Uo+|LFkI; +zs!SHam8;Qjf7_?3q4-nIJ;Y8J6ugf)kUa*QF)wK>)E60mzb#T~?S5GT@V7fv7(Lqb +zKnOa($l#1}a;sS@T))ELw>TU;UnvrF+r1z8SY}}8C~D@qwTL*qBYp0|BXB+D_AShX +zYmI5;9eyFqmt;@>cCi5cx~$AnE#y+0>`(~yv*TVJld54t7qpPkaK+Th=*-i2+(@X@ +ztMt<|y|4*LzWFen0}a+fL{V5YVl8tybrD+kkA2a&c(CK9<>3u-_CdsXD*@EB{nMGa +zu;28fDvMoFWn)V^4%fk7zfDbEf2f|Y`jR=V8cDcF9_6R5_pr+v_8M#n0B|c2sgH3w +z=~Agq;>JRNpGU^C>Srp5{6#5>Rc$!eqccV7ZsV`RqTr@*8Im|;>2KR=loo5g1E&Kszuo`UreS%%b +zpq&tk`;++mZ#k$*{li*r+PdjFeY0oHT69x#6HA7jV)F_YL-H1GDW +z;GOE_w<=8VC}*(~(LLyY-?pltf+Ws2*GR9)z$qr +zH&^Z7mT`^!v|T&2R2JvC3<9lw(J*^_M01kB)#CAd6#2Mxa2AQS%pgGu^h<^p#P@HeJ={d)E&SA0MBvR(to(uRpkOKiyw{xcTV$K0|kfk07Gq +zt&WGg>Q%STN}G(VdieAGN5?z8Ggbe$v+pUn+qVhI<*<^lA6sN$SjJ1g5ff9@`&!4f +zDhRe|_O2ibH-0D|fr&H*p}={5PDJ0R +zYY4LC-Fy*bv!?R*_Qc)(O&M)Z^9TVh?x3L%v(MM!HWwYLMX()=1o}v|9qpo +zp*sJOb7xxniae=SfnBdYcLqNhCsR+3{p{vd+F9cVG@Ct^iT1R8A$<*-JY+Zy%D|v6 +z5MIaw^sT11ana8!a^5R?$=hi`y0~XI-%D=^*tSG&AHIyc9ttlF+*?yd~GRP5Cz?YuNWwD)>l3S>^j&U-KjNkEVQTfauG6nY|M6eKLRS2Wb! +zeEPK5Q`!vX +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 +zzZ%*;c_O{@c)2 +z_-$yHYyu4J#RsjvABMJ^#V@vb-4DAfEp;wAr?OSpL({CjSgDw3Xzf-xt0Z+S$?n +zFtn)^e;V3KYX6^xw#ol8wD0~jv6$#p>6qMXxsc{XqUej+J$t#4DCmN +zq1}u>`R|4{Xv&_5dz!;P4ed*qUxs$|zZ=@!s=(NP8rt_T|1`AQmH*4o&Q$nmXiIlB +zWHRj!8UPG!1f733v`I-{3~iec@=v>Vx}Zhsis +z9n191e;e8}KMidzKhTBWhIY)0p^fJH!_Zy~Da-kXp?%2qVrUlt3~i?`Dx_jBhW6gy +zhITFoz|gk*)6o9%TGfaBI>uH4c@V$xbW|WcFZ4!b|Jvf-U1lfNP+T7 +zKMify|1`8uxlJyA8rlN?WoWDYVQA|i{L|28VmgXvzxZKjLv{Qzw6g(*wjBS9p?y(z +z-u8!~EnQ9;{bFd7h=JSvFtqi=LCBK!J$@M4yhmxg)&F5=SN}A$U49$dr +z+H7GjhBgj(>^}`{Q=uP*HqncrP5!r`T_hqw@Lz_u-=Bsy{XY!tDS)BPBJ$hNcKBgv +zR{;#|r=Nzl!Ro&l+D!R>8``w!|1h*I;Qz(YMs56IXrp@mFtqFbGPDU(|IN@&crmoI +zssM&|Au_R1>>u*Eb9ke;y+{F1p`jMv+$2yi=7JaVDoF2kh +zWY=1j^V#1Ib5X(A5WS|rLG%*a!lsb<;v2>@guRz_!>mY_J~D|Cnu4^^bGadLoOo_2 +zV;MFCBF?DlmM(m}lcjbMFdIchJC-W{4 +zY%o@+R$>}&QU65l9oEtpMl?}h0$l?n22&6Lx7uMyLmk!IiuBGllx}C)%)Vr(Kn%n8 +z$0a$&eJsOvq$Ed0YWK>JV)@FXU-Z%+jg+D-Y<2G$LnGgwxCI+5jm{mMW2Inw!os-MP9NQE#7x^yZ0P5&o`0uS|(w;wo#pQJ&vmNc6pv_1(?7JFO8 +zH8=C8aXj*afk1TN@K$eXK3_z1cd?&eEw@ZsG7!2PBx_$o8JOUD{&l9YuF{qV1Z9IlxVaRyc@eUN8tPqC> +zY?%-YYY41qF4QX@Pxim{>L%%yo91 +z7#L%^*!w}eL`o$h=G;OGU2NLoVdk1)YZB>>V}3zjAnLi6AK+pBYkwBKoo}zoYu)m0&_p1b7Zw!56@W$x_UMy +zg+JC?9B$HJmD~;)UV1cwA&xYJFSf|bMw>X6D*af^?HN?Tx(XPb2B+O7BgLhqRhu{w +zU!m~m7NCsp7ITdz8o&|m0sZffzx4kHy +z!)Z^4vW@$#u2w|;C?>?7;66Dob#XGV%AtgXp1@d<@f>ic8GrAtFLr|!ZO%bXwx+P9 +zp#jGmPl-rmx5e?!^&EO3g}q%pRvel=xwjhRjaIF8vtF_BXywiBZ4p6+GN1 +zq+%Z&xjCFGpN)F|x4n~@Vh&TEh8Sjyebv;Fpf1TlM!xHj)i?(dX6SaJ5K)o3O?JDs +zePOJhO`+0pCZllqyi-><^g&DIAzP|jZ?Dz5@}}9m7FZzMgUXwFK;}>tIya^+%(WD3T4q-q#cil-@#EZ$y1^Ek19q~mtNNeL2%QKm4E7)5sm60Y;|%b +z7tAEkRHY$A_S)~-g8qixpZ-}0f+~1)I7mHmpIFGNwz`RgayIkW3J%TjqV1ga`Aq#tD&E$F$8H?hf%>{75VU +zushGLE->ZR2rl0!Nqv^Jdh#+PR<5FoR=Cmk+ty2ROP;`AJgP;Z#*g~)Y9?kk>Wsj? +zhwTHs{nutA?h@prd1#u|nGH2*D04P*;j%tBme* +z?^aYyp)ajBW-Wk(@Eq*s`QAgp9w}qD7Z#Ndu`YM11_RF`&ksH&)h)+-c-4N`C`(Bv&eCn6@**B@jj67$xi +zD7lz$ijen~NI?+ZoqIRhUm3=uQ(>J+!i0(o4rz5URviqMXYcEdMAHi{uzb;0AcpMn +zL3)c905Xm3GVYpH$Z>~YT?Mz#j0q^iQ*q%fFFwo_Mgk=)_a@>;i~_J=1to*NtzeEoSFI)V{Udt(huiAm#_Mmv +zNAF}N=j!P*a__QlW@&3!%OJP4NqmyD9PBD!bR1?lZKZ4o%p=8nWaHnnw%wrfIO{|yrB!^?}Y2nh8h7n`8xH0OK7}O8-Rq?_2xo#>ER|2IL!RxFWqof(nrFj-6YPnRZzyV +z+Batl12*v_2mR~sakQ?RzJ)M@QKTW1S}>bNdt-x2O%(u7$f;Eoygh0_rrSGWOnJ5l +z+Kl}i95E-^p?jwPQc}hfg?sn@HYS)@r)xCjKhP)KMof|v?V+HxU@GbpIf$bgcA;c#2KWB22WeBl^Fk~PSNM+8UpLQu9=3tF3Gw9%3$1YjoI6Gkz7ry +zbR}E0w`NgkU%m1pu{>g11LkKbk?Bbh6IS=Sas7pUm6hM8^~NTf4U$g9*>q6KrA@ae +zVU|UY5HsyPH2@hnFA^#2d(JJDw0AzSsrbO;LeEVvMqwXBIRnRn{hx%#yPE +zrYcdxW;CLvJfgFoex+g$Q!+;hus(l&W*XSYIF4eD_q06s41p-RkC@N3ZKp4QT#Gc>Y#M7ophh}4y!vY)Lr +z8ElYuQtn8PfD~+%EKnRL0HzFL(zjfi*Q7VJBkRlp=XrrV+deO+^mZwRVQ5zBNBCyn +zHc(u7CxXzo*x9nN!1yk8v(+BR@ng2{)d|f74 +zv@c;$TG$My)>N94OIPi6ncJs7fPD*zOFE0XGRT!ThE!lxvD>*%c8{4x2|+FX2-WXX +zln&5pu-GL)J-dM3n99RUADV529GJk$AAQDCJIq!hGP$0M2^Fe{o+z(Lc)ccGGVHN3 +zw?R(0r{$pXOa!#bTz6mju!(Uhpukc3&Qvw&|Ao|AwvH=xlkQDAU1(d#5CI*hss7BM +zY}JjE=G3-r8?2HJO76BCf$UiCF59qPj6nF@1uL21^8vgE@DDaYc}WtGcqSVxdt%Wo +zFfXk?7F1pflw)c$=WwO{DG+UT?vN%zITB5wGXp#Z7YMseY|OG;zDYufmkwj2 +zbyf2r&=KyC%=Abp8*0i1)4gA`^dU~V3VNkfBDLtqitB0YzyAB$H&@HygDiJmlgP5# +zD$1V9mgu#ZeOTca(DOuN7jpb^(|3+;aq41<7s@`20J+p23YHeyEnWFzi%9oAfV>*K +zv9YOpcug;H3LWUaGWP^Bq$cp;Qw*k>&kuMcTSJT7W&=jR(a@tM@B6Zsrl4#_N9OAD +zsTp&fgA`kp2k1e)^$EG65RFeFK7MIj`3xhHZtPSHoQ&hV +zc@1cv@o6bJAqTK5U_zXQet}si<_suE!>j=wQo0jSRj}<>T5PWZRpp +zk#G3$WqO6Uq4gxN5@J?w+bh8BA*PhOkS4^~#Pu)zX4NlXr(Mq;LF5r+JI|ZM9_R(T +zsWyf9u8*Sxs>BRznonteV0WR<<2Il@svfi^$G3jnxQ}|$2bmV+N~W|~uaxGde|TE9 +z2WbQm_dVVG_Tr4so+aitbRD+R=nELjhu6_ev(4K%QCG7~HW?uQW|mf-0| +ztGY6UXox(BWrDDI9HS{H($jXS+vLb_J1`P)+p<7?bYXBH6bJs)FKonElk{To=YcHUC?W5L{@6kOsgmp@JShqIlJdkt +zB^0C>v>@W-*vKN~PEWs0kB1)OO&%#Pq#!_jhy#(*ZE1Qy+qwQj%2GpZhK!UxoQ8TumIM$PqUp)P2gF6%y_U9&((fhl}*-K#Q}UemtP1g=@X2h){H +zlh9lvL{Vq;^mDv5(+}K2PORRgd0dc!LHnEgXb^SM(j!S->c8!(d8=aM+oFaj%t3Ux +z>INAY4LjkvzTmTz%`i3N6iwT<2O_lryvTy28d^bT=l`9}Sp%7fBWQAD& +zB1@9$n!J$yICgG*25#dBVlCsL1}?VQv!KbXqq%HX*0>}{8Mkw!sFqD8QCwJ&7+Kef +zxX2=-98W4Sh0Nkc<9U?$W#9*^` +zMJAa%zBt=WEWx-?>7#7o@zwiwWGM{$2mxeBa>QxVw7iwucpEr1%H9^V?6T^^zTWn! +zWwR5M!{St!J2IWV*Mg?;jn!xR-_#PAE~lrw9AdvcD}_gqWihFUru?n4yNF>XLcr-h +zfY*Bj6MkpGmXzN3`oe7IhP!pzdkL}jO;;nLHG7=0cngc{byJ3rrh;EyP;v +z%$gNgmU!Efbe?Ae!tiT1CZ`)}db5U6GL3edQt-Gy(4(GL+6uvR;A(-RO9|Xiqn0&W +z?3d+f3UK1RqFg>4iEe^zn*D&t#Z_Ld!ux@_a +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 +zdp!D22bC#i!;Gxv;3iiSzWle +z$P+HO_R>dJ)B!{?j0Ca) +z(Wt>3DCZ@UZjuObhbPJ~kW_hLFnkeJxv^-{J!^{G0QFnGC4Db{oAdgm0c_QGU +z03N|2h6nUV?n$go#$G1HsucuRpandjF(4vi%^Ft`6SWTbX+qj~#eM6YVRcYSo|JDo +zVO-cJnTANDyq-sR-FJ`CCxE6oc;AR#z5=O-CmYc8q-Bt4n{P +zu~@XI!K=7sc!dGIwGhi&U8+knzL^y)VYdw7rq^?0Qc+ypMuyyFJJ@4QY+3@yg9h#4 +z5h#c1c=k}T^7IGsK*(M&nx+?+3gB|2-eZHc=@Ll#t$Y_BLkgtzRIPWYYO=alv1lDg +z)@UNwH8KCu!sEU&Nobn2K;VnoLoxc&^|4#`88crMG%fSx{uLEd;|eC)E?#B68a5la +zPj~O3YI&4|%y~!QXBc^&CGKKYdU=Cu~t)?{{ou>uD;h7IOc#G~K +ziaoXGq!*(o8gUq`0rUCj9qn=E@(bO}p-u*Hw+FyDBm8>k{`twP?JF`OyfX_>GWAcs~E`%cE5 +zZM_;;AVq8y!P0Xb2}N~g$Yjq>inQ1b5K6wnC_^O|GWM17spykcw*!SlF=5SiLe(T5 +zZoUhk{u9O&YHBH>ZO2ilRYq_}%lSwPJ)?HclZpo(SSI#lz0Q)3O`()->(x1{HC!d&VX +zWGB@^APdjQWgNwC_wJR_P9Dyhl`%0LWI@MoUv05vI>j39K%ib*!{RK@xjO4{b3{J% +zt|*Nct{R4-WE-geFp;VegxP&$@H4IYef|3W$8NKY>ly!QLqAO%jYp~xFdSmWg`xJV +zP5*@wO3qDS&j^wS0*Nk~5Vh +zbM(-xPIlK|Q^uVsQbe~=@evIIPXv--X|B!wtwvi$%G>3J2&D0ftT;UUs-LO-@jyEvuv~_-2cYKAcQx2ixSl$ +z!4fi6j_jr{+Xng9?5={C@w&O&&|SpcefT7!$)*v~)rLh+90LJc=!>z1MwxcFZq}49 +z4`)FWj6Ax0!$mcZ{db@|)|-ltIYyTm$2<<@vAL_MZ9IxnGv0iHPrY&NY~2^r-WbSz +zI{w|!ftzDAteGwV2vAX4C}T*D@Kru$#pniaJT*?WNWonMp +zt6w7f#xhYBK9=HqeWP0sEc#9C(BhJee?vFFsA_0}nwu%^Ti_*{WYUyrf$R!{ZVyTvTexDETF-%fM7>%HBc +z)fdp)+1QJf+L+a7YWkqtpB7z#R#{Jj1U@xJ%b@)d;Qm#se_~GrC8MSUDt`mtT)Pz@ +z)Heh8`LodfeJYYIOcETL|Bh8bSpeGs6!x#~Kf)%t5RWQOkEI~aMm8?Tx&yB}rN^Nl +z?>F=mh85fqmBWB|$Iy@gMU00volIsnS9@y{vU|%RmXDFOVp*5rxWpyj2xzutj?j9m +zg^xAN->aY~zJgD_JEeXOzjED@KQGC4o#NQmSkTJzeQX +z-)`umS(Qy|eJE&pMx&?Q?{>jeGUb~ESju;cAXTTNZ{*_bFO;qR4qm<8lDm6gcUO1Wu$$dqV3X4Tt- +zQuWpx5*S}yT1-wQ+tjx=ET24RaNOt&UBeUk;xWx2hBMq?vKIaoR2_TW +z_*K#0PV=GGBNM=GH8xKF2F7c{PrTXUYrJXVOT1Jgvf#2S`*v$<5=krsynZD`=gt(RBr+T@Wy)s!206!iTd_h;XRB%d>1sM{v*N&e- +zQ$t?EYx{3-+f}L3rBgyi6^XMf<)udgh<_j5XQa;1ZELioK@-LlE~)x;%_(|Zt{%B^ +zBqpoIo(VEG*oslgOT21&NvW9SGo?b5GXV3H2zi!NL@DZ1T6sRGg_5b`gu)b&@IRmiFAog8tg2nQofZx**vg +zyJjInB~B3kwjOpW>eM;gqlYg5HaO}-A6h^?xJOg9+|gx$xGvZD&Rsp_LDAUxn&QEfGKX)#g&;B2TKg#^Kzj>>>c=iQ1q>}RexFxS5aOCc!) +zuLl_vn2MWJ6L`ilRL?>t#XP*$rZ{;?G!KLdiTOS2)FU)>%&F~U;;pWbkLeSL5VmYB +z4^7QiFHVc2<$s$gAImyq^>&$P?DDdXNx7is5l~jn47nv#3c@b2mJm%I<&m*E_LBk+ +z9nbSeLWnyTMveJ)Y=utA)N8g&(`me46^av+4Fl}q{$s!P&m@dhALZVeSb+J#m|lfM +zE_Jc)4*J2o0WU-9H0|qp@Q{IR0e}5W^8hoiuhcP1$QJO9#FTcz3OqK;zmV+Sp_uSA +z5UM7I3uGcB^thxx$467%LSj)}SrkL>k<}lv25scb1`8B-PGvSqIMo)ZpTs8smEfA} +zw=%RPc%M>>$q0b1C!VnI%e;|kCOOgI(k`b1_7bRaLyO|Am;c@_XKRn=vE +zdSZ=gIn^z>vi~>cHgMfB`TY6w(^f4IXjs?X#hZZlg)=h8LWv9sx{ +zaB3-h49=dk0h)eo=GTCKF(#RDHX@!UtH+#2p|VhM)zy@!&vZ6|{ZlL`ujP%i^CWlE +zp+o9+JQQ4WVslV|eG#`c1Woo +z)uGZ9M%vS;j6=r5)6Q5=RE|LC$FaApQ0gSz?k#&ZhqzBKoCdxt%oa0a8uRGvQL)WR +zf*jhoxDSYrQIa*ej(o9#2S=jl#iR33f}h_nBxq7=>iU3XijFX`ac=f)Vt--l_uky +zg3cUA)q?x%4%t?ZaU;vNyjTE7j#MH?;tJAR=RQiENH&RqoGG|mQ-xj%R2?j((tM+N +zYFmA9jlug=LnnkwT(w!|WzEO!VAM*68Z`oQ`bRK4Yg!s}O`ecrkjpp$JFEeW!^}=d +zz<>W-jpNI`syc$~5<9jFs{%Af!K4#I+##{48#!Mt%Q9$;m7q84juc#L*E?7ql^5Oi +z81WvJ{L~s2261E&-gDdz`bV_Rbl;JYtz?UrP}x>LGK3TkMAt^IEf~<<82hIw+PIZ7 +z?nK#SQ}-WW2a`)B%yZV@quYtG6BSHMt$7na!(6gA`L?OtI@zY6*@WQib?^)nJ_E_n +zg#lD$S~l+9iFL6}>$NM20L^Am-Cw$x=SsXr$Y&5IVRl8`AZsC#sd{F$G--e&1^~?f +zPU%zGhXFhr@*`ww+;UIY>2{e^mTu_=1tXvmFecE74mQ&gCy%GN)&;58icnx_7t?7Q +ztrcROL)Oju;0|i8;XMa$L0F<$zr<2G`JFd9kn@ALrA$C1wBjxSF$tt^);Tq`!~X56 +zIh7F=xMyBe!7a+Z&g;ol!$1}T_)L#5Q^G1{`pgOtL25Fd+JB=v +zS!u&wpJ*K|wv>Ihl;b2QBC?@R^ef{=~{@DC`>-Z?+#(?z&Iwa$0K7@ +z^x{M7QU*D_I1ogW%aRy~*?X)X%kQT7?GnPPP9H{SvTw-r037JT&J(}SGall^G0?8* +z+#o3mzys_zk}H@UcX6PMI{46r1{UsISpl9Gy*Xr^oT<6O8ujoXdJ@6t;v%r|0j;`B +z>BLy}-oT@iMmA`Z9Wl?i^D;j53}AV3!`_VYbdzb^`oRm*K0V7NHn+4lH{7}=d99e- +z^ugI4e3tZ6{&>z%L_pZcB1j}ba5_g7`Cy0wA{d2dzmh9rRIQ4v6h8=LDp@Uw1k1}m +zEQgXX6RKwk;zSbJ48a3wvq7Gn!NP1f9(w~VG=wR#q#q!AxB#tcNkXws=tcGRsFc#p +zaB2!X-jptuGe@81W$OM%=S^f#EFFT-2)y8R_Wdi=*oApd-p=HqWMi4rmpgUe0yhQcn +zGo<`W6*W_evR&6 +z35Yyj>-)Xf$PI#04d%it0~cRq)A50vYAyTLVi62$2frj7;j4*lpKsMbadj%tk)Nc~ +zlzVCt?}9zDEB(y8bGPn?D#0bisHgs@!HHUx;RxEQ68vUra$&vY{e%Pbzb2Dvt}gI) +zS1kP$f7@~bPaMdSbRc21kag4s;FLxeXHj7Xj*Lv{hBen51;$6i&wgbm;i(iRc6KBb +z1@amf`AqB&!~ksH3GH^E2jQh5)fE%PiE*uZOob5@8^?Xh`iL!ySDOy3HHGu^FO`ZF +zR#z4h{Zuws__#I_Pc)W}Fk~!L!j+;|_QunFLNg`MFFWf0EHyab)2|L)PoqavVWKGr +z*2gGbAmKN2Buo(N-$7kKKHd71sieRN5DWz+S`1+Qx1%=1{RinxQYR&2AX;MbSxDXn +z_X+q8q(uAmb%a6KbMq!jVv4-$G0eBIPm_L8fQQx_PtV;)7@OM49B6=Ob4_~g6w({r +zhjlh_^xS3gqFVAnl*aT05rM+h(ovAe=vBi|gGxo_T6F(pTFtDd2@aq4NQ!V*RyF8oJtzm{g9z5B@a@wX!F~h9j92KB#aAAKp!`}QErEUk +z&IXs9-1*W>O@IKRd11-%wE5VxgKjhPq67n5>ONX3v=A~I7g5^GjS?u~&(ULE^lmWAZLnX{|xpglgp +zDTx*wG$`A6$X@Pg#Y&l^bB~5u)+9cNwL69W>MdG-R$hNh9atEm%!6UapmFOL|141_ +zR|++|InrhCswDM0GG9-0}D9DvCMq!j^y&(ciUe2GL)x1!K1B?MmaWZh;o*o +zjFi=WCHvkDd|8vYs8|MGrV{U9-8+jvRTRUjU4(-+8=BP4z4<2oR|eo?mRvmay7aEd +zXAOi9>}EXygfkBxx39&hvZt1G=22Y^0$6})?0wr +zPRI2mx`9|v+`Km1CEkg$Dzudg>+Bh-HA9H40VGGGH&j+Z+i!L>N&CvQ +z{F9hl@BiKkpVzhwo68bQ3{BxpPjHPF0w3=heN0&{M(Y6p_?Vn1f~PQnf8|0zMDdao +z2)E0z=S13GZOZ6-<;e^xL!z>~R`3Tr9d(6VeNrx;Ahb*`rylRNjF?9f_oUvz*`sDm +z!b&iXCdAsl0vMuAWnpmj`srj2!%mf`-n8$0!h--=@`(u6Om3pZkYy4fXn6XAURUuP +zCR{nP+IUON|4gIud|FcL7q!Q +z#u!uDnD_rkyD)`+kxR^z^V**N;<(mfb!UM6>!`kFwR<&&AOJSLya_^o+iFQ^tQ+oR +z`sHs^Lv)`r41o@ffe>_Dpe2YnDvu9AjWBTU$lUfy;*(>|o8mpP45^D~G{;vXddLHb +z?JLS~4F#kwv)0PIAYY;C#2l*C`)lgS9C?|A2|BnFz`UL65Uk9HTzY=$nnA-agW%2c +zq18E4ztdGr=ufD7!-VNGT8A(tV43znZZe>@W-CzA5t{;{s*!|J#SIlZ_ToZw8b2{$ +zV4}=c85M=c`(p< +z{^H_s8<(*JY9HyOQ&@&`MFP`EIgyRAFzJid0RQ>cS#Y94o6C+6Ya_Rzu +zQNNIAq&q9{W0WzX_PDd-5G5lXOWk)~PREu90Z}q8B+6t1(9BgvWL8HR^?Gh=NP9Ow +zxcP(GT@3r}gh7MQYlmYcr-#PUGDLHj0c>Xjzrll5^jh73q3J7&Y2h~Wd%2vsZax`P +zFLuw5Zd!6=s6~=9>#$S)iDEUHMMCq$%HAkz6M0^26%of2Omj}cIWgzeVbUq;r-7t8 +zwpMnA`^ETwRTq^xF?we9aLu+vfDyqC;YNsb?yhV^V*Y(S#yIAr)z*oPvg1m0fWhce +zVK}d$AsUux2X5Gsn6N^gd<}X5?o?;<6nT_01m{J<3=|Q(oB{Yl1-&wd>C}aUHEZ$W +zJX*q>Wk0BxCXZA@5i5M*ZnU9O!%etX*iHG4uGV-AV6ynXsnq;qvmj{^PwF_u&JUk;}M`fQ6~XrYv3$ANV9~244)yg)&toAR9vUHChw0nYif>G!hX%b +z>XzuKQ`vz^!c9^&k_{~`-Z7@!5c>?q$Wk>#wtYj#CS-`8smj}t7?4?zMQX50_Jgbj +z!kT*JBq-xf(!#|v+CKMG{tm>%3=JIZ#g6$x2Cp0RDMa(Z?#;wk==60Uk#uo2G$2^h7z{TtAj%H_6>4#X +z9Q7wbMn8#vGwcwo$PhN1cz_|7z%9GhG@F`1JJcjr!w$QALd3w*srF&o^AN4c!btXJ +z22oHz=`peU73YjY#u}!osb%|XTv-Uk+Ga^zF|tuDd(UE1X}&x%88WBD`Ien-=3|L+ +zvkN+A9DpD}9TLW`sV>Y=2^zf+Zj9%ayYrgse}+f-CxPNtqJ;37e)p*vu`vOlu~&f+qf+$Lt4mLD>q +zKQ8-vJJ6&fyJA8b85a{=A~>KXFtV>(JM?qFgSVL@pN)n6U1|>+rtk!4S&biFZ+=_bhR~!#$E+V-d^!HihLHkA0N?pNwL- +zgK2KjNqw>>nd3VrcMis&Jgw=HDxqRi_@w;Bx+!oYa1r9gmXx>f_;%0`iHDY +z@`l%63G*Wdk*x>rYjS$o3~AeYXrOVbg41G`7Bj_@mZ6u~zP<>!spGr{pz3iXo9-!%TY@9KLFa%kAdI>Uh!d_^ujVW;= +znhLG+sRiSMw2=Q4gL8hO*96rGDiKd)U-!l$cqF83YaWk8J71z_3RNCAISHyPTTGJa +zBl!N0^Ply}5|=0w^?=(aK7ATfMY3lw_Hp%Q^*^!bbpQK~RIT+7K0_5eT$)5-09n%0 +zCos%&utZLaW{$vK5hr6N|2f<==M-)3KmSWV8Doh=lWhjm-g;t=k|b0NTI!d?1fF=x +zMa>Q2P&T&rOP^A)Hp;g%--Osv)`8br_51)JHuWWVhP6eogy;5SZa#nofgsyG)m&`M +zfz@SnppS2f57oY`T}>G(mzb{G5RCCshQDWPdQcf@#5>?g>?darunOwB--4-h^b!NL +z=cdBw0lO8kmub_wfk&F@J=B?vW=?|~A0|Lu$m-MdQ<|W%IFVJO|@@Ab-$M +z=!RINYIxdGY=_xpQANc55YiJr3!}C^LYI=R$-i9BG}fYY^JoE4qq$)7=`$8hW%+Gt +z>sv){dN`Q@c=3<{HgZ7nEbjTUu-j&@q083tJsw6%VNs4!(U}dB=p=au +zYYaDn&uurG*I%^_r`RN9%Qvc8>u=G4td#{9n*$YYPAXl7m4#Y`4rlzl$$V6oj|TmX +zh*rc<8-=q4)J^w{8K4k_TXPpK2*8`#)q2sja5>d=v@DU)g+l)3`8M$96vDf8> +zZp4J2m6J*2HKXcD3csYC18+F?Oh5XD?`k#U32zByEE7`*frTo;NzCRL4dS3xy~%^; +z40_YuYBBMLbxnt6OvOIgsHgTarUyZN9Kgt%+g6wQEa#C3tR5V>7__+WbP +zQ>WSKpt&t~N~1HoR~~IN^ +zQ1xVF!dxs9a3KfjKFfrwEP(-ygsGt(6TAK3nvZ~MAVx*)=#=%&oUYs#LjiIXvqBRA +zxJ}u2@DE6Epi6%T2hrth*V0xc^rNAdkx(29ukI2db|~t}5;xG-SvaP#11(*m6KH#2 +z7J*pSNAnbW?(ozR!m6-DMwh1dw#HUMexs9geD9C%vBI6eputH9NbvI+%T4XK +z#nKEKr5@wa#gkEMs>vdH>rIhBITFZ|lxQ@u;Yz&Ls-LIuqz#2R=U}~w +zX?3iuk`l5J^#rZPL45Rw>EqSo-EdRtKo5f~ZrL%57qWmi;?W;Uaz7rKIn##)%KNnd +zxeGG>wyR25RwShb4&y$v5+O&D7>s*E>xI6p2d8kYJ*+>tj?mWE%F4?GN==NB(;Z>2 +zIl7c|W*Y-Bk6BawR4eLA&woL$X_#&)Yt({!&Akxq5+F^J1A~FYxuTmgPR!b&_Jr*{ +zF1|v5hz4mfC^Q53nE0n{e&K2JP0Z|Ss%7E<-JyVJN~b-fD0`LY1BW@kvaXtA0=`R0 +zYNGsTNDASxs+z?GtUz7E%fSI9(ugTa8NxlvG6f%LZGqi_ir>~i2!uilz4FLvEr22b +zOBwAtqc_sGQ|L#%UfFnwjZ-`2_M>3ztvceUzJYrqLWQ6jz@3GSSq}*<0t=w +zgnHgV6$|2$vdURuK!I-?8Kd#{xu}tK%)y +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 +z*0UE?3+pv)dLZj*Ua5r4Z9XaMsA6R_Z +zV{YDwq6gMxUr2Jc%=-gDtf4C`8Q47pMCe=d54%!j{q?V+?b8OQJlB&SZRcPV6af4` +z_|di!qU;$$TaR}ejb%Y3|1!YcA}Wbebt^!f>Kq|WebQao&o&d56ji?zQ9z;m^LuXl +zgv?hE!bwo)?t$;(HGM&3L7_I+c?UF&TAvMNex)!d#(|X4GUJDwL>-&0=$IUqT+N+_ +ztqP=4rLdtNR~3PX%R`421Ty*{MuMj1bn6K>E4Y97n3EBf^JWpOg2z?;y}|U{1EhfazbuYdUs+HQj%6pq@Bq +z&us8%q_+n2xR8U}1%dNLF}RuEu&aH1y-%d73l5|C^96BQ6TQ^NSLD4un}```Q()-% +zI;qk#znBH1Ko(~=C;*$)1|~tMQf>l +z$Qe#TJwqhK<_;`wL944ctrtj*J-+ul!}C{jL17d^cI4$>>r?sS$)*jnetNwu`&y%; +zk+|%rjjImt≶5A;ozN*2Vu(82d{(MJH?Z>3Djw7;<4`{O(Qt{V+tU`^PSu&e3u9 +zW92&8ySIIPE;0VvA{~n(KKOg{c(JJB`e&2zO0&yh{it`wMIRHs%VBr-1t4bqacbyg +z1&mNb@BeLX`L|8Nox(_>e&uZCMUm%RupE`KJA$_!g($$93>Yrw>P|cAfFiDBcg+12 +zfUEO&=($2yGwFbIRQp=_3^RXo``|%G;a(^UX67}6=eJzi&86lJ6u*xuJM1}4)-mI& +z+8eqdLKZ_N&*EJS)wVg}3K +zw%^ccE8OE*{V~|^pUi^uMB(hg`tp79YI?>ET)%e^Z%OuL-_?sbrsDT~d{~9pPmkAJ +z$Ru$(6bx=q4FkNu^`t85O+MTN9EP_wFiblBbu1VLezXb;)%9Elz-^BG`)vw?=+TH~ +z*N^*V67hocyPk%%d09@tE@msUFx+XK?5I6`gomnp5jYSc<`*K{afk`xsH# +zwnMlnIs)XSb<|LlabVN!0=GrwELHj}BqZIFJna(0!GV%@8>}NvKjPcNrJT0UO-$0t +zCtp=N7rl1&aTc|0WVcka#k+P(s0Cr+qDirRL3^a1BhvTIi$3P%{xY#0!4A4sa~Oo` +z@J|w5WAbg9!X|q$XxZPkFtP1>`^NF=PM_i_G@~;8U(k^Y#$5Q>)GIcg1eGgxIIOf3 +zX_o6F@Z8;50e=2@e()U7wIiYgKlZiN!yL-#i#Qkqg;qtOo_?vD7u81cu@pF=9M(~v +zO&Lg%T$O?+ZnFV;t{cSHC*XnHgOIhtjs|k(I)EI~-?%>hStSw2fnQuW3xAl>4i9aq +z4NZR6rnt*FF_AS0>vJ3(>y#uJU{lSxpLsWsag4*987;*-4Ta11=sDH=t|sCmx8-)6 +zgkE>OWlyui5nJs^uA-X?(wL;~28*f>xc#GsANpl63sDlhGXO!g^$yiVl{YzUz)Epx +zaqp3Hkn%_Q$R)C}O*fgLPRuWte89j|$j7k(#(WMq@e<7Mn-XhNeQ5i3!V +z5G_94-)5LunW0A(AZD6BGou^4XZ^lsVvZ<+US^#&gdQgEuEW7K%?0m`DaR1)3DZtG +zvNR)?RSBs~DA9^X+-u2KiDK(L#_oJ=JnJCRbe78JWUozDyuWTlf9P1~U6JTj9^1zy +znhZhnxLs7xH|~zR@;EH#f{E_E4@Q%gzj)ahCimxe7+BGs1tdsl4iYJ$(Jbl)*6xTm +z#k;ZV!?CPGG?jn!EcI*~tmI*v)XETkw0_zU%}=S+yHQlaKth?7tmX`HDSa +z4OCH_n`g8QP(a2JCrUP@RI+eT$@6%SiR8CqAtCYhdWMM}hPg~+ +z^J%biGJE*)rG{`n+`p?m5iad8BS^H=E3soVjE(e3MY*@lxfnmfuh{oYv_*`%vl}_A +zW`qpl;g8xOPtkGR?W5(0rqO(s{V3t|t3asm>wH5O;LWNzV{Q-rt%Z1SN6xd|eWfFQ +zYzNES&($bZ-68_{|FCw?I!O;~BrUy0C$x8ZjFzpH?78Ky2S!adf1T|B07Z4ajYY`O +z%&Yiyg8Q^DaubojI-oxC4hjZ;Y5dW3ER>jCU&t3pE`ssQPzrK8xI>8Tx4uOQHj-mQ +zU7fIXIZpCG&bI@Xr}`9f#VcOOFqR5$k65=ye57ri#*%y|9NFO{kW%F4l$E$^X)`ZYq3R4@uNNWr6`}q +zq}gk9ahu7}z>`v-wA~$#RXoUk137X24to9=08Ic!RQR8P;dpGSinbSfRd*#%Do2Df)#A}%L~nUQcXLE!nQOfC0;ig4{HPqZ=vwg+JixKT4exYXL~3x*@x-8|dWIf7J@P=~t4F~@f6 +zXkvOPwRUZ*Qb^8nl +z(SSwPU0f!WhfjHH*|uMQ{WHXZ-(O!z<7hJU +zUBDK_72n}v>5=>FDhOzq<@=JbR*ji2$8EyuL4TFG9^oqrFoZauBL`g|?X6`(bvY`Z +zP7fj&bhpQGOh#;!WF*f<=+LqS_>D1x`=TQ#5FPp%(Wb}AZclO}aSSrdm^=j5UK5+9kq_8>*Gk#&mVS0%7*#_okTA)+lT&qF$QuqEA;!(o0_shiy5cJ&D5Ag#P +z8hSlvN300cmUO`ja){u9EMGDhgUT-7Y~ku^GAO!T>FwoG?jNv-MmD4@MD>fWH~j0^ +zhkok^NC({>yx1p-9*Iq4P^**v-PRZ+N|r4AJ;jm|(OpE^=H7O%-VXurhdb?K+k~He +z*eID99I!XDHT%4%_XM5)jfWkm?j3NG|IifJYqQsr2k4XM;yP1%6WT=%w%WX-uSn@) +z!A9Iq99m73$Qc55SSs2Y2MH}lguci+_4B49mX>zYqQuUunH8IbFh=TE7JboUEebD_ +z2YO4!+}y?1saMK^G1DjptO4aLgJs|DO=6&Uj+;10|1JeSQ?tzK`|Qf{A(5@Y&OOMH +zX~;qz?@~2!1H^T?3aW=&LkzOY;zbs&PsxRvi%MEydt+|5a0v3Sip>X8AQ;$my~O0) +z5GV{7WukD}a!_KlqL=?L^BmEug?)AUtb+UCgh+0jeT^3e(wqdbEbQ|OAvKDGPZGWE +zv!QCZ6JHuRD$rYIj&V}6`n7?8FWd#%lH}6e0M;2d!M(8faV+{^xR^yEntggx3S8h_ +zSy#yP1=`nmkhZB8|~nqeXj#j?0%re8xh06FN7du5M5VApl3yfZ9w0vm+!NC9 +zyIB#B7?Um68%91V2kkw5Q6o@f`**2~jh*aPeuBcyVhbm5ZwRG{s*rp#82hoTj_^ot +zEo=UD&MeUQdaTRDo7@>4aRu!VMZa(%fXH8a@a;tPatKe5>ps5rb@%LqEEZwI0|wn9bEE-YEcl`fXW)p*sZ4C+P`=n4KG3lYN?V! +ze~J`J0&t5$a;TwyK{jLwtM0hch<)N;{6 +zR4$ocq16d(rhi{788+?GIk`PoCW(JB`#ZW!G_?>uc$t(n +z4j6b>*y_@wdV}4FiX6RnPOT5_T}Mm_O#G$BHB|K41s9_lm_Zs<6a0S9+y|orj4!PQ +z0h)zr!-==A!FL;MJ7Qb%%fJke{X +zI5|-51=dw;yl?xe3L@5o1 +z6=TP-O +zh+ht%1_?gilZI~^$fAYchBg>Ay8xz6auD>j~ +z7Z}2*hx)h(Z?1oLmhA3cL>RL2jcf*XzXCK%GwmB3VCKhl7}~M2ag-)y#~?oiQ#W;F +ztV9-v3cBj^cnrrgj^A=+z^n*oDxP*WB27G&IEoNegl^rSng}~G#-dOT>R=1zvEBiZ +zjm{FzaBrD)ke(8DhsDRN(@aAPxat@s9U$MR-9Tl*H8GdHt%b&M5*i=>QY*mDnFPU4 +zT&Glm?|%_jZ(!f{&Opf$vE)@oreCPo#L#aq(q=fTbkC**Aqa9hKoxOG<;b +z&#up5Cn_zKc6XVxZC$L%MN-}S=*Mj2Y7D-2({-QiEoLC2Vio8svrx>tTCERAIaI~( +zHvFqJxW<<*?9|=XCfN^>g-_3>*yuj*H8A%y0Wy0+RyGy-BjS2v#2JyF5!h+0)Xp3^ +z#5Qxa=D>zq-lrFFBjP@1FS4ll5h&&cX21It)7}!9u;1NLw(i_L{zC18;==mjiJ{W+ +z)Fe4Jf`}tf_UX;M-<(^-YTU^=CP5Z@Q2?>jD$!HWVYi=n&qjr^t#^0~G(R6x~AUs*b>SBUX(lw4m +zRBL+!70q7Zg9|CX{biVe@st0T)DVgD>TgU%$D9LNpGV^_al^lVe*`5RwUdp?m;O3y +zruXe(OCqGgag*I8b-W|6!Fau3;gDT?cGAW&<>!LNJDUAr66Nak{{eyd3i*kcw0^Dp +zLzo~}Lc<}ha$)eR0gul`k+n;-J6A(wgfwZjI2whY<;S#conqF!PPg6GlAR=(*Z8;y9RBeNr&Oyh^UV?y}s03z;5!`7|ao!LAkVvC_%;oh~zh=x-EP)1ovvsFuhm +z-!)(8o?^al1g^_R0sejcGZ}=_G^d<~@(2o3;H~d~?hzi2y +zDZFuE4-F_6`?6bSxX+smb3YG=?z&)enve4=Xa@c(b!qq7`R!6b24!1ev`3`^T{IN7 +z8?a{H!%!7oOI$Mq9p>2Xl&JOR?Gf#Sm*PSk!L00NI+eXJ__h|a5}&MMfq2cFt;)Os +z@QE>O3ofj>1Ggjz!qZf_4s%P +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 +z5Cb9VnHAg{XPnGyC3#&76CKBq39g +z1%qLJ%CA+)771gElvFtvMNk7Mn}HT|b}t|V5b6G#gH|q>BPq4bxWR@I`El_+ikYDT +za=q_LLnSK5VYsBS`2og)CA@=1!(>Ds&J_P8{%x;uD%0}-t +zex~uH0X_5!&`n=RG&_;=G#!H9+-n +zuE&Yk$FAF;Y=*kzsidG4!L|f@Tf;A04|VD^K*9UJyYT*4hsFZ2HtkO^NTS{`wF);9 +zj%jHaDh;h4J{%(3B9y;-VpEA2*B&HRkzps{uF;fiqmZYe|M0{HEc8HdM29#4#4aZ| +zdHDcWnV_jO5QU}1sPSOPkx<%HNgZRXy=T;sxX>`0M*~o@1Mp*Rp6G%NQ10<@QaQ&_IIs~!}9sSFsQ1uS>odSB($dG8BD%qjPO +zH1|EMzZiOLyEnZDq*y2fn+`7=Qw%3nhAK3A&g$j9>VGtMN`T`3Xl~BHZ3+?n8MwAl +zLgmj-UD!!fUT~&4jgC8^42SiV+vnf!iN}urqq&Fvqq%`I$o|pXacV^-CcQfay7j;* +zQwvfFO&3h>;luHV|3`C&E+vJM;~PW`^G=h=67Z>5tAfK5CjCcqvm*JpY-fadD!%=E +zBM!;)LeIZM7+muPZ-;Zm0~n54AEca!jwf`pikM7j34SY68@xg>5!qsTQIXw8Ou(Vs +zmYzNc|Se%ZRql +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 +z?-LF|n5KDv)Ol6ZUhaX( +z($)uR`#O`LQdF9Ng`3c*<6t*x(9)(36UV`4%Y2!30|ZA(Z3+*m7eoLyPFH<&YmRk{~ +z%bMlE$dE5WV+#CO7ZtdkrdegaY%a}T$YLhZylzfb8^ErQM#{dAkKqF;vnsQCh +zNPsl^B*Ap&(?*%pJh^QOw!I)_q+<==D^dSR9A*W0VVRz#ChsRk)9{~n8LECMQ696Nr8l)brLEM6R#2IsQiaf*M&OnK$&^Y_<3`C6 +z{U>u@XB4le$OC--$=m}4|733e5%s1cU9$gVZZh@u5?<#AVxhJVQqNa+&AP>5PB_J& +zpX-^0+_5KGqS>UkARv_hatL=G;wBn|KazbBjt05FPU-bsBYEGDSxR>5f5G%$zNvTI +zhW-!c<}jhxR?7)oPk%Q4T1|?^(Hd9F6XVF;BQ3kSMdU?01bCKi``8m05YIYw2Nx%6Ab2k|${0DPqZ)W}v=GGYu +z6!yK%X8Z?pFE1eGH*Ns^e_(D*{K!Vu<_fW&M|UjCy>`QZ@3u2lwsNX6CvGERpq2ZW +zR5{lniQd`Da;A{dYzgVL>v%K2+`Yp)aL`{Yoan%SEdoDzYtXj0-!yr=^iZmWK|w9reOn#zLQ;YtB!_; +z)!_{o^Z~2Cf{j4E2=p`N$WxA@I=8lz-xgT@)`b)obm$L>w2=4FeE7_JSNs_VYtW6I +zKi}>5w0nzUY-z-1Wx_Fey4t)?%E0wv(odOh2MKft95wFXdII@=u+Rw=; +zyR1jfta3>6>I(I#i{9@%TGxQOyn|k +z2FUZoK`Df&T(_hlxJJI!oUy~y8rt|rgX7f*mZXsVRW~@M8vFo7j{jut+kY~*9@mjW +zcI9L#x&pH7TIxi~QmG$->4@hwPI_fH%h@?>Abi}% +zTm;4(;tjJJy@#tlaUHA|WfTHREbg2@0ja7orRW$BAMiEByJjk+)$S?IZb))ST`!)D#!n1T=b7@t4RXCHZvf^!Er5=hn*`O`qnyBIHPIYiL9%9I&Y>+2{S +zepe~wWY}UEDZUbp`TWfcZQN)UV4%P-a$;)JB+r!9wTlSxZ*b_JN}!PcY{Ta>-_z=M +z=qvLJ%w6Tg$sjj_^^`nOb037}^Qitmnmdv$;Xj&NjfCvEql|k@vc`e9vBKUq+W2Ms +z192pf!^R?nJQ}i{1(H0+CT2+y1vOB{QT9a_djsXSV&#Y#xX>!ArPiC<`UG2Yu$7~8 +zLcDJtexK!2R1Madh{56iXznzidU+S>lc!;v)(7==w86_UlKuiV1Rg4P?_9>RhPm?>H +zHX4pB8YjPO)SKKZNr&Kw|AS61le>itr#=^&{g`SYJ9cKs&t*)@NHqTP;@9`NF-b0J +zMqqyfASll>H}f&oJx&`EO28Gsx?mahyI00)DGm?HvQ%M>?|oT27gS=zI-;HwsP(FE +zE+R7%Llv;3A`1C(#kTXsQuTtO2Qt +z1ou9tbsQgsj*d0F3!%1WoE#H7X$0-#`=!ivfZ$c$WUjwM4gme5xo3cn-Dq1!lY6Ev_voc#DtJU6aJC>E_|- +z9zopCVfOVSGt;ZT(}S%ps*mTADK2wVW>CbJgWj(Y<~3#=EjjGG8UtfL+BWNf^5n|jzg +zQBwEBb{Wehnu0I@dZ6!YW!Ey& +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 +z)0%Z)uEh}8QM7cs# +zGS}g;@`|_U_rBrHNFo8nA05pbnH~IS?78H|6@OK74jF;t!%)E-3525Y+_#y~Qhi-Y +z@iTJHl2Uxqd*&GH!uuvHx0{*fj)6KOJdybC+Nj!U@;XCx#$ykWvOyJ=FM5r{I*iXo +z#~F0+J9yjBsW$6r!KzG>M59^7kUN**`^v=_wIji|g&@01ndflqPb}Ve%<%w$)QR=L +z+lckuP;T_nyy5avAnS?5L*$Xd(_`6+oIjz;nU;3`1H7&Fj_u6 +z?p>eH=#?JY>}G~wky_oqC2QUs&qf+l;1CJP&7)Fy+g+edOk614L+sfP)% +z93tWad-^YFUAVM9r2Lk5>|AAj1i30IJnaMw1yJ{VwgF?rzu4ZLOpIIQ_dRMWdf0$! +zC&R<8n?}?7ELFCD)37L<1Ur(^4CGIHm;D~;S%P| +ze?6=QLoLZl^Gq%=Lh5iNk;OW+|3M;9mCd4B%HlhZob`t>gyv`TmC;-5MCcgTML``^ +znnY59+2!#F689JLg%*B+Cy1)^F;tLAXN!xFla_F0?(R^C@D|rlNoWu0aof-OgI4-2 +zTCwmvL=VPHk9?|p)jhI2AxSHomZOQQyUp<*%^@#`+{j~3KyE?rg;y8+O!DxT5!_Fj +zLVpIWrrEa6ELm1PAFYc8yTV>vDwrfg$_Rod=sCAxWyhS>>wpvfeZ7`W0z{Q|FsZQd +z338w2{s(dkPSD`>)S${?iQkC{Q&wAbKWq}NT6*l>$vnO8I3yKi{SV}(ltrNbAIMGG +zwlt2CeX#BFAIL3f3K0U- +zy2$0_^OFzVV+c~6@A4{6yq +zOzA27@(7U!^%~#Hz}sq@x~-W4nc?q&46(u+g3xA-y7-OA2D@)(s<5EouF%c23I=&mT?7>!SQeIu~*|)1p|JSILo_==7<01aSy!KLbV_> +zejI7hvQ(!`LuKCRu0|)Rq>#k*6x~YiY=^0}FA*;D=2OSrd$@s+eAH9T4m@Sn?L$~$ +z^Z5UWO`5Z-i?+mc%wP4IEpsWhX>y7e*l&fj}&`}*l|TV-2feR|wMHUj0s-|78uPoTs2flZG3|9RXDc2+(M +zNq7CnWzp3WIw9>5nPKQ@iss6C;~4*%Ni-UgTQgQ`Po6F@IVjTfPST~c{UFmIbkEo7 +z+#lFqoRHotR+thpSNU2roJ1LqwyUTT{t;*KTG?Q5L1#7ZX5CX4eccTp`n_>AbT*wB +z$Qf1XxN46)h5dZgv-_p>_F>D{^aEKK(*Z>`=jcP&pX`xE5G?)FI) +zBI6wWxDC7!7cz3uyJ|qygxzNDkualCXk1fQ)viNY=2Mdn%lYbMUf-$fi9r>ktx#$Q> +zNxmCZOE;;upAD~nn9)}2R!T^%4z4p2zmLe3DB|k8!l|oxQ74IJohP|e&*b%_C5{co +zy(%KWPPOKktkXG-=@eBy49-V(got02^s{#T$5lqC`s!n?*RzUrat>y?4T5ssS9s^2 +zuMO3^FytZwOn+cNmAwAOohz98upJ&ouZmblP19lqyyX!vgkMAeWH|i5_CIpOn--P|2 +z-!3P10KluOiJf}jhe$q<%;$DOWF+AdY+3N6bSk{Z{&%ibyDd15Wy+U+f-|0PMa +zaoWVy`6FEBkUm_)GL!tMx5Wv$B7j9zM<1pf)U18g6k#9XY2uc+{ld@W$A(hwD1xj +zWg(O)-lR{Q|8qtLL7;ZAhn@_meBKchm=#oPezV$}kbd)fc6bsc8O_1Gx|P^CEDlF` +z-sluEdOLn4CitYe*$#zN`eP8MWqY`Ks1|<6O4ZA({3OrX*)hIqb>%m9q$-53dJ|NF)n1_$^|pEUMrAz0HPxf9y|*zm;{R01^oXw +zO6++=YcK7fp?9Dn26Sv4P3f3Y +zD=D3ODqz8{72879T)_?6t)VIN_NfzC{aVK8c1IrzWwS&>m3XYVi@K~ilzA;Pl{Iq4 +zD%Lw*FRSMr!_Er~#m+hTLK8tubJN6UJA~gnWdq!(;aDe;nnSow`TPgzA?_uWQSkl> +znWek$@2Xa5Z}Vw$XTRUq0;-u@KW*;#V75l0Mp=YKP9h@kPNGQkCE^s;!HrVUj8`hGXfUG5wkXWHHcI~>2;}c0w#scqGzg3C`(rE7CtM&C-kP((E1j;T +z&@Fb7ct2YWQd2s3(Ql!3YJ`6)b*$~US2^999~C=NfX9Rd-#8CHa_>?{`$h3eGE)Zj +zi|vOWt+c{C;Bs%V0b3eE4h@H#tN#6RJ!s-j+x%1LI|#%|R4)Vt%2Y%q)M$ixPXbUCmO +zW9bD{xfB@iju&VB(tEW42;=$s!q=d^5%hb6wzmTbDDoTZ_HOUmIFn_zHJ+NEQhkpy79(>zg`9f&8WE9z}^{CX)pS#C&Q8q@45|N +zShDQcz+!xgaKOE{^)C!&VGbZI+MSpv`HZFKt$6i1gvXJdfFvj8cWKC= +z-JOK@BW&?Ma*wj5yBhgEp%xt_M|A{oJz}*yMM3?8CZ7*}-^Kv9SY)P8o%?IDO_&=j +z;sA3BDq_wf8`wzi7yB>tjJNYHY~6eckCm@{ox}w1513`Yh^)rRGsiwW?5~!6PA~4a +z-fqy}Q_WeN_n3m7c6tOq&M{HCy(LTL6FF^H+T8Cm!5@JC&vTpq$8%e(*S4N-&~+{i +z>+69&$lLxHx9FpJmLdDseDd7qvD>=@cb +z}vLa_Ny`sDBBTq1(ooSPYi!i3mIk +znMNze6MH(TOFQVeN95!Ww81|T;RY-Iy%%q#C8FND3GacN(f`y7%>7&wZjd(}e9O8Q +zN8^y=yg{=uU^b@XD^${Mlh6Fs#zZqjqx$xNC-OOz7`0I%{>HR=(errzlic^ipo{6o +zy&%Ra1>tK;g72`vP1`-Yq;C`XGungIz7aQf4=|~qJeW7o_+?sX9Uke{7VBx-K3_eR +zpR1Ou8qvn+MOhEG{rrXFdTsLUhAa~P3fZlf%ed>exKQypJyCx}z)qzNYE5qJsZl65 +zcDG99R-po0-*i^?=|X2thXD8=wiIE;q3Uu*sZ0q{K+-W%3|sS>YxevGTj>0D$h6$= +z@eI)g>#5uWlCA4p|MNvzUv5_Y>XZ}1Ro_pd`^SWD_7&h>GT+<~v^jcw&!E793^64{ +zVt)DJBuL*pSPOs^yN1lc6h3P)^CW#4YNfaFkJJA5H#Pvq_yg4x+SM1nUbLnsB5`&n +z^uqO3v8Q?_7Mm87*H?5BB>5|n7O)e%=^|`Q7XK#kVCr)W!l=q*_;stbF;t+cRcbBy +zxtQ4xS7vCOQExfXZTOX)Pi9K)`=lWp482PRgl`6i`!l9piE#b7as8o(>lcB#bl#g7 +zy5p8Y)VN$8?>Cu>7*f<>lL438k@K$XFEKQ)5NAlVQhV(JVf#G8XpA39<6CCx3LjRX +z<4+2E;J(+`omaux%ocRXSj5#Qi0ct1fslAen#4C1I5|wX-`Z6$uj=pL=Yq1!V~Rn}aeLH}C8r_6 +ze2Vsu(D5mtU;XezD8+(AHVC8tl78eD*wF&=?+xiw-!Toa5 +ze9{2i-oFtQuc>0Z18b_tn{v|q35AA7&%7)>S1j;}z5%NqXUfe7 +zfYlPj0V3*CJRL|@&xs?{-nKG^=yn^|R69XG?^e1h&5`U?;B+$PZmKD>3RU+7i8ygH +zAspeKo2AJe2n-YH`7NLAo@x2?Gbya0M41Uz3MK$VLk-ir+6y|^*gAytXrkohGfCGn +zK02B?hXsFogwa$deV#8Yzeo~g{Redef}Rm8l4g5iPgmZ%ust?(WB$7Grw2ivuG~QU +zey9r~egJL{QdVBO;493*zCi)HO!#0#S10~OVH{hYpnu@aj-$Ux7Q=PfppHlZ>z_=V +zI{G=#q1Gp47y8TAx;C6+jOn_n2WgzLqI3yMy*`G#TeSJ3an- +zXxJD6#;n)9o$yA7wbX(Gv#%-HXBXB16X3~0mL96NB4oZdiCV85!w@p}WrfOj*^xqtG?vhsS1$;VG{L)h1;n+dxgI$f_>|FgQI5WVM3 +zM?P1W#ZJ+3bf**dZ;f|0TiPTD@JM +z5@v=k9br#!ifAMw_bK$xJKm7i8%cwg{2&^#lw7NkVmM6?f|87^gH_NED-J*tdH31= +z+fbR#6p}uJ^Ib*GK-vHByIqG0QEU#}l*d&XkAwgxA@j3b?{>jQ_1HHm`&)8nE4Q2YGbEvlyKW{>MN9GH;SvSmV4eHQ%a>cJc6tRna|-*o=2RK4}#xUUAB~gDxnh= +z-}$_s|M{=Mpt~4Sexo!MXD+BUu0nRDB>nvZ;%1zDSpW5n#2Y;iP8mcu!@P2tDVXfv +zVJ1GUH~XSnUC^;tP`&`D*HTKUGd%Tf9?Exv)O1CwL+x+&2JkY^!X*)Tk@j> +zB1b=PGJ*vt+q+3bXvQy=YlCSGUdZGF{@U?D#;-uD`2LLy)<&x!c&1~--)dZ0{?xi- +z;ac|;C=M_yr;nWLUS~eFZWnqvF5-JS7X%1kn-ESuxC-YMhZO4UARVadl-c +zz3J)?34hcq-DM2E3#(jIea@tU5rosre!by{Fy&;}@8J^lXI=v?az+regXyA09?)ZF +zTcFNoQkF}1I)5YlCD0BayIII{?3t}K2 +zTcvU$heiapK%#Sqn6CdIZ_1bT6(w-0|9j#O`ii;-Qv**`mrt%cOTA=Zh`6K-cri}! +zlvb`!c5S_=ut146BXU(u!h|oDF*w)TRv`eorKKA7=h=gsdZTJ2b@`g>_z|&6RL0?w +zIX0k}(EoJ*+WVFV)QK~x{Q8Tefg#(@t9^lcrd<=Gx-rr0yTYGMczej%3vD$^eX?GO +zsWQpmN4lGT$Jryap_u%Y8=XKFcva&@Q~P}-6o+xRX`wln=Mu3aj)tV@0221?V*wE% +zhou0x7HxthK{@)O65Ye2IwVlPU#|tM1%(8)Oehj1@=vI12nhJ3V{#UuPLbSc;Y~jL +z2uPnrx07!OzS_46pz3+HorsUJ9sk7Ll7n+|N14|AeI?i71@7;$5B`I@9A-^vpTf0A +z0WIA8aY&Bj_RHml*O+3_LNQu{u2dcmO~+T1dNsGgF(FiE(%@mM^_2}YCD@O|&>zlX +zupYsUauPTq=(`zZU)wBm|M-Sgd}|eoOdn1oL4;#pUA-z1=8n +z6ztL4Mlud-`^5=bFYF%Aas=;>>K+5)rJ`q;plW5InRA7%hZB?9n41+S)V2HY9hiam +znz`?a?sF5un6Li^-)`oDwgy2<(bjC%|KqyV{^Pp! +z)#FG-Rh&Ezx>&8#Oe@w7l3+CgzWOU$KuS8xgd)mhx2*GkW +zpETJ +z9(q(f9$MXhP3&FRk-zKlI*-;fjdw{J-uokq$GAeHwn2c2F=jRU)P#0_T6BW2GELb7 +zH)>Lw`1iHmwfC=H&j^rHAoM4KBW%`%a<7JLn&6gQf1Q%vNhp{zunmJ_Ev7o4jW +z*M(tQOcGp)t1z|2eiLpsdv%VO7ECLH)Vn*O8VQQcH+e&-v!{%XBzZ{qWsn`L>{#^V +z=a3Ul=Qgx=0&~0=vJ@l6p2NZ0=H1#dQrV=4jFB((R}5uJ4IhhH@JRf8w)3D2^_e}3 +zG6IjrHA;P<1$cP=k8%QbBBQ;3&4SsEPW;{c+o*vJWL;42;F)sp~*AQJ<>G${e7rgu3v@O!I%Noz4L^uPcxv-$(H5XxC*!BmKN8FoswiU +z@ZQ5K;{8y@WIpTyGF8I)=@+X<@x$H;z1e?WH(pG@_erHTxbpwJ?%c{&p>*teRKyhY +z-})N9L`O#~%3cBG0Z0tf7SMtQGOnLqcXsr(!g^q{t+j$nHa@0p;V0Asx|b=NJRO

;kLyXV}XdEns!j3MtBfRuWb`{(Xlzx?kW6Dbxbt)XYl%kE=xl(C9_Zm +z{2$o;{2;Hn=d9^=HY*-ANM8j6vH`52eHY%e{j>Pqzx_-|WC1Qb&^_fL`%)nP3So{c +z{CcB5@M2LP>ygq`?fh}TAzt%zYt+oA`9_5APS{6MrCRXD{uE0(^ZBmdVM$6peQ?W~ +z5i$PPAB8a~LZ!-|u}sTIs|^WzXZlWo24n&&%!L^)f1pupuk2`~GDXwi2if>zltS_& +zk6)gun8-oV{x}O*6QI6=7QW2mY76)AAmptOz6apY=fy +zEQ3hOd&JC%+h1nn*Vi9;j%&3iSIA1854mhO&%1Ddz6f)eQ%#?o5g4=d=b?sguo9jl6yeub;s^%CD|w1?fmNU +zkrjALp$ZV%&nil4cS45xM7xjo6FCp~S@jRZqTNn{kL>fhv-9?GkCz~*Q@f)})&-y{ +zFVA%>c8RUz#XB3#oyMBt{7U^LcWPVTdN;9Pbv{hEH*J)xa90|mb)cK6Jle_)dnD(P +zNf|hsVulq2sE^{f`4{t^&qcs!M-U!uJW@qwnADm$>MDm%HWt)Na;41K%P6VvO2@X$OikocMN+A=do1HJ8yK?9@ +z=9nMllo1n{q+T)(4ezjbZl7v*q*JmY@P}t?!NBxa-TfuAWq3kUWr4m>D!39Ht7An* +zJ1$$%X(N6Dq>_Ho-Wl=YLPVI$W-Sql+YZXWd#n#ZasNjcUx#Ry6S0S*Mgd<>=D`|k +zj(Ovl@V88du2_wnDmUs_ze;w#JENy0wx@7SPa|I;RX-b>uTDRuwM0i>bIjd?@zQpb +z-h>;={*nx|g?YY;bdIX3(*zTh#aD(w9Bjvo5ELRWM+pCP!D_zm!wA*_)yT~q=v54( +zAO0!`?TP`8BGPb%C~e%J!rmNytH~Lr2av1v%zv`o)g01wLll}*eU0+MMup0`+e!bi +z-7G}b2&kCw-YJa;;5qSqeYE?2qJyW8+v}AS3r4_F=EQocnQ>-aG%A!D6OY#7_ +z{et#NJ^wg8u*;PvpiM7SJ>EL~=TGKRIrE3y25H7_XRMH1%E{XISQ=f`YPf%Nc^v%0 +z%H#F?S`=#a&()`DKaF +zC0UzVNvG)fBO*ah7b6<lAY*_f}5WGG_z)`pEcR}|NA)m*JTbRQFK*Y>-~ +zWFj{sW_7AoUb64t2;$gsFF5s%NiA#R&@egCtfFtTh$ET+x?F$nIptqCsB_{X@*Hym +zWRk>M8h@&$wuI7PrlSvy>?_CJiHe~N%^^)b*?wg%+$q9XCN(52J^1{r5gNBz&cXsE +za>hZEo`75<{VM~_qtr4i=QiCLmEP7ic?*h5@RG}(&_ +z(?4xj8bazcukRx}>3=n#JIRB}gBzt-!}dHc9TJ04hoGss3d}C8tYHUd>4=3oHL~ik +zkC54aLpvw%u|v8K7MhwT1=||()swdnm0xW}e1-`MGZ7_$r|6}X)Gn__fUcjC-;s8f +zaHp0xv^LA1XqK(+Zfa<3PKRY?s)KBvEIXWaQiTQS`LUP%guJLIHDS36>$%Thr(Vg( +zU=_ls=9H-Gx->UX%`C+!W^)j@&cos_wxL7)0};o +zE)P%s#B(b^T0B9`rWfIbSEki3Sn>FP+7L#Dp4ECRSvo{Oe;=uify#5jYsE}GWdH|f +z%1U+nlU75<<6+|Kx()=^Sl-~Gz7mgvtW!UYfAZ|eK}O~hKm(Zv*kki$;%t1>Zyl$; +zLIt;3$?=@ZRFMuzje#p1q?71YlfW_!Cs=cU{GdI +zCo41gwUu+)3Apz;9M|$6J7t*j-^~%=M~Gs@+NK`^yNJ6PxWruU;@gD~bEJQq@< +z0^b8d-Dm^ddr*Wg0NboCGXn-+cedNW&IPLB|7u~OSFU^CvERtsg~uQdwv7X&`dLSf +zz{6@CfL@l2e$kivt7RmgXT@jk3AFmFo +z;D>XSf>!Cc-H5aQbbzOi*O{Od;!L){7lr7`2hqO|sL@9L>tJ`|4`&xHw^u~_DbbyX +z`raSp&X+Nfi7F`zlt3`>SC_erg`Yu!?;YME5UlYEj9Pp@e|=avYy{tn?)F+Pl%?LL +zREq#7q-It;hi_YqZrkMRi1#b@+rw6^F +zgWAU=ODhkv=a#>> +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 +z;6$`5b{z1eR)*yJgs^c +z12-%|L4(>{;0$aD+s3<@8uXEfH7t$LT1DwVy!d?nE(ee@FK230xq6GHytcwCh@RQ- +z3omiGUoWGLdZ}b5HnAyLx+s;B^GQ^8(1$sBQCBba{oHD5n)9BBo?$tXfn<&cI +ziDw27u$Or>{Z>;7%jO)TwF3Q;_$boD6n7&BRYL!vR$?&<&w@pl<6CUZbm9=~kVf3$ +z{#=FAsqpkGHGt~PRo2@tjsYCI&+dT0>#{nck-z>0(Ap;aV&FXfv&VT^;k|W+Nc}Nh +z3gBJZ#qv2n*|PWhY6kd?VWmXd8A3l$0sRX>#-h_OQ9#~1--S|T^7%*cc(X{6mzlOg +zO5jqYWudLrH(LMIi>M3GjLIuqse2Tgy{};`{^I4kVci1FL|E+lPTk6 +z)C~AmboV??w_kqS%|^lYqY=x`wGoR`E0S_o1}~2)azI0$3DX{E*_r>=T?3ka*|ClZ +zY-OYc#+C^en8L^+O{%MGg +zS99?9DE|*}K#sqVxP5y11?=$StTAh2(N7Qls^&H&_uK{0#I%EAlPx+#iJO67Hf`c} +zjs{E#=pL4_u|{q`Zgl5fUIObT#Ge(6_{8a*Q`qrVuTMx>N^qq}x+ic;7|{v7<>Xss +z;TAD#DXI?Jt(B*>htt!?_ppE@do-8R8W5eRsuUu@Aj%fB;ut=zQ!Ads9;5!w`-^7W +zRMvPsYtKLh!&Q^+bZYFJ9;`L)rm@FR%iE{N!|H$Hgec>RYJ#FU?OY;le29}yB{C0U +zrnU@;5MTjNVAf^~WDZ?@3!pGKN|wEYWNeWCfKMaujtzV;Za-5w53urvNv~uhFhgF% +zX>j%yOLZi}<|D$9z&(EvoGzfLPX%^q$m=5#9_Ywcx%J9o`)rRo^i|NaA8%Cjgm*b+P8Gtch9wdTVMxzny{ +z(G)p3crRx>Q%gJ?mJGADjRwnQ=AG&t13e@XTdQ~QQ6MDVUpLh{&t0+TklJ35-n$)p +zC(2h6n{m%~Nju!m7SYM-0ycZ0==)Z=Le10C5853&%QX^{wtpKV;|19kvZ%90H#%Mn +zWDQl8nWP0PA#rKEaK!1;DwRr7_&UuGrN^{b{<;PegyEN6O`DE|o8%jO8h)k7C=rpq`b+s_P1J08OGJMhmxuT +zVfbn55Nc$QD}~X5r%1A_`4n1qqd~J=fu!J9BcVnm +zaPn;pfEe|XEs{j5Vng3w4wKlaZXPc3Ph8GJ&fUOaNI5BB6x>o7hg2e#JTSe4XRo8U +zBk=~@FmLzi$x#>zgx5fV+gJ8WXj`8ylT7NSYNUR^Nv;L0MS{XLuIjhjIA3%qMY4{O +zUN^;>aw<;^sBD9d@knz?66jVy6-(%>TgXoqUNIHtn6!H64d`KoHh`p9ql7wo_`%vG +z20sOS|Jf|0Mj +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 +zF`5pl9|s-b9!h2&s@yc>0wcsfbp^Ifi) +zrO^rnOCV|ytIL<|rI|z@tW8iiF>I38%OSO=hUkDSfF6#pw3J%wwL~~&X|G0ki_M}U +zYvh>FLvLc=`kUva+=mo@^ckD5_L62}fH@V^{APFb0%kS$DcGvE#s(pw6PwTd_uo%3 +zDy(4Sp=UYX2e4nhF}f}cvrb>t4pp6@aVL?c&(g|1>XZq7zcW`tMMdr}KzYFu3M7T% +z<352^1ew#g564>D?iAZ7UbTQ;tmuZVMW=?{3J~+#0&DJZS=}^H0md0mypSPVM{@pE@_7(Jt~LiNQQLho}x<^4mGqKADOHu*K~fydU%MvD;Zli7jK( +zJ#A(xADW5&_G_j8_f5AaaJ5squonZaps(ylerq)bu~u4`B)dD4-;u4y(dgaGI&j^u +zaH$^W77Ut=Lws@^QxV%EuFF0hj7OMr6C20`m^}hq9CUX6`%=mk=U2=Wcw%%uZ$WP)jxKC#fUyRP; +z+poWVTlC@Rhst@v?!3=lw&_>4p{j(0}kc^-f#_+vKGQ=A7=#5l=g~oWKcSj{O>DL~EM@=XJ$$0HJ*M-JC)HRe +zGyiy*TQ-URGcYCK@e6m+{hQd3wxuYd6t`h0{V@b_3-=}T>i_qZyv>V2v;RzlLIU! +zT8k`zXFM9jc7sxyi{stfoNLR8x#cPz(EAdF4<4(uS_-8ap&dC%ILgl6);IltjM{iW +zds*zGQ5jVrWLbkN>Rfi95y(|V-r?AC`6Lw4QH*S&ZI?7*xB+6fYHLR43{uX^P!p#H +zq>1rkPu%so{^As?B%z8Di#(tzZ_X;0MJ|lP>Tou4n!KHpM?q1n^-4`0C_R1Kqqbi{ +zcOxNmg7|U%Sb{eL1k})co?3CAKKbFf2=EJz`_OOH*;QzKd-u2v=%DtP)0Vrq0@K?8 +z)IL>m9TIu)-(JFpPg!U8l_M36+d^$ak$KZzFcBpm`FV^LYbn<_-L&MSL2%XchpvV` +zZP8qqYuo@1>gEA(!Yp7;0U#o<$Eyannm?@4&^KfBTuU4XI{Op$Y-mn^L7^@%<6;o5QW($M_tl6HCdDo~PzRTkD_HzmRxhmvQxU}38dnqx +z>F|nM9~V4N3z1gbzeO +zPEx-i6W;$f)3@DZ?I1;9$uT#y5sc*luF4suKwy4l$^P4~-}E^&&7~L{oF~(}U>U*| +z5a=$P(#zHQ=$r24#A?RPKbGtZje)Mh-pXp+a!`s)0O@0XX-)+UBrXX0G-D^5&vv-@#_N2#fnTwydm2IAQk=y;E0htcghP$jE!{wOsN872 +zhc;l^oVN5j0!+(R4jqvW{C554r*T;g9R$hJe6RzJx{){Z)~zo%qvAwV0Kx|3 +zNTcLKj5rLQLn#M5rOqopD5q{G={43lWtt@>ssm}-Jq(G|d{N!5Eyu%!k+I$b}Ce?w0RppFmSbRY5WdbMwZo4!l;u$3_W}C +znMrtR{r}_F&4|BrH^?`htTE79G6cO4(j|f1B3rrT?r==yJOMkbnM+LOHg))A!?rW{ +zHR0~Pa=osDrZdiXg8HC3bB#ZMW}_^1Mik59AE@$m*5@6p2Fg`p4oa4#=A-ux}slgOclGJ2P`4Yn91vk2_wC2 +zfC?t7K`9YV;R)VnsC^QXV9wqA$IAp%3SDgSM)pf~f^-KczV=BousC*di3)yMqfX>c +zn5Lv;um^ybLE!`_g^vkIB9BYr+KPN?Rj6f{Q;F0 +z0G$D@(!*%25V=iMLu~s?3MOA7tHH{UMEQ``jN5lHKUTTEmr$-e +z$3T7%Gio+}u`Q0J?;)^>TGF)J`zTA>B$_LL``@yYiG;-#8*PeY@e>t(ak*wE5~TG8{n($KQIifL}Mu^ +zyoTO4A+S>@3ilxzMl*~UA-#;`nS=^YoZ2ySSh9MgR=c?i_W>YXg02I)blPh}JI2I2ZgG0Tj>Lmjh-LKz(W`H9? +z_7$R(>Gzg&heIf?p=aCV>f1579VO&QceNVo=@^}1=&uS +z%|%1si(PLV<)f2j^Svb=&q?H{5DAk~SUEIbdk1)19eOEnNbJ3fXP#|iH#a#0MhBEe +zjWZemVG@devI5$f9=r=~<`BtFBU?WaVTC-3vnujAjUTgPN?uLq!6*EYO)QKmwMxja +zgBbY))Uc-tZUHmXRyDDG8Lo4Qk0U}*9=VAey#RM +z9FEH&7E@Ikrzc2f5DcbPg+hzf&~I8U+v_uCfWn{IxebQSCqu&Jk0WlmuGC4qGMy`x +zFg?B;(KG_3f2%i+$v__vp8(|On@U4^3wuJ#OUz9-4b4CW)A_Jr**?umzE27G9(Dg& +zpy@w*aqc7ACsu5C)!yAjNCqb{g{`5^bWBVKy40cQ-?y094QupbuE!P$w^(ezF}yR> +zdYP_84Yn0Wv^r;s5(N9?_#WJ7{#j3R+}9W99;lCZeNlXrmaJabwD0V!5C%`SQQ +zqacP$DZOWtdO!WpD3uL5`jX>K8Zzji=P2q+dvfeQwD0f0#^#EscEcG@xixNON8dh5 +z9PdpIo(1r>fjx=86N@+!((%?0@))K?cJrLg14^DcQk?4bVY`)6jaS*S(1jVSA_k0- +z7Nh!&gNsRfT_+Duj2pa6wUXU*?${vO^^qIWi0^-CEZ~P%$eE +zV>yc9TPsT95Us3WKvIdCjqX=GUyheRO571&q9cY9u(5DK`h=uw%fyBGB8WR*;)Z_u +z-G~|xtb#M9^Wh=PYXUBF0I9$phyy+Cd4Zni=0lP|qsX%ugXdEU&H`-eW+~9BFcNJ{ +z=Ad5OWlJXRoQNyyhfVhI0z8T#S%k+0{EZ}H^5n|rLoAUGOxi%+48TT3HC}c2%Wdq_ +zdGbdFzqSz!5uV;%OQDAHp1!~=RNEcgC61vnv%Dh2%p?$K0<9P7J*zS5RplYDcJ80P +zp?wgyA)bXjkSx0ed5dh(*&md|9ufp>1=vZ9&9s>#N+*hxih*1NwDsITs81$ioynMW +z4&&IUdiJ11a#0jn-K?VYqQo=ypukEMJ{>yy +zr`?IzjKN9$ahj&k8<=4W)gnj9!#4y$i6XgCz)*wUrF_7FwIYrQrOm+yk$-NjzD*al +z64A*nLL0GA6ZYn1KWgtc#LEPv?A@KZJe&!^UUNnz%e0$xJxOp4gf4Anwq=atnIoM2 +z=XP8yX)HN{3VK)l8}%}*Q>FpA`12cRxh4sxv7x=yG@cTFx3v!z-XuUP;B(~S*)d2~ +z>Nj-cMV}MwNrFxr9BC|`RNe%SsZ*w;?&}4-_L6?YUHXHzfP9Uex7RV)- +zymkUCX&GQ|Cc?$;UdMk-BNC82g%-rdLMs&;!fAu8vTeB0)RwVnJx3#M_lOZ_v?i>Q +zA<=imRDvAw(VXN=QRh)&LNCuY?iaHCah83^@UnpBP)B +z+x0w34(|(&Nkt5q^-|_RrA-!nk+M&%J;dA4rt@NoiNTC^g&|(oxyA;leAEgyfo+2X +zR+dx`+@=Ys)=yYIP$ehaFXd1N1T^gdjvqBq#|E5?4wr=?8kc{{L)Dcgf;nFDa+Q-J +zDcyMHAP?~zsdHSfUw67+S3}=o~i|J(v7( +zH@ChmO4_W_U*%0@?VRw=bw+_2qe`IQRRSY@3rEpk0!=lR;0`t#Qm`rvG~i{R4Jhee +zHufV>v5aX9U!ccal8JLGhsLiTb%e^goujE=FnVZp?IiSND~trHg-v2_JfKRmjPTOcORuqj6<`q880rc3N0?gX;$bEvrqi5g*C`uu?#;?MPG{t7O8$P$V2iST$BR^l`4pW^SjW14hFfxn-P +z0-LY+n5v31Wb!$5;=?R~631(&>Zluz*UH+E+hB`>aVsfz(NEKMHR(iUdnCdyQYYh; +z@=JN@Mg)MpjySawYPrn9rKl5-ob0 +z2{EIyA7bBJGj@a@k6TER9)w%ORTA^W$4;*4xzm;Ei8uvZs!EFgEh75IV2P912InHCrW^KdOXiaWJ1{l79EXM_w +zQu09Y0?lc{F9vGFrBt#BT2Kqn=_EKRnk9fHG!Q+r+Lgq#p_QPW5KA=e-6-@c+7~{dU_NMZXd~zbBy!v= +z`H*xi`eFfogWT^Eu-C7CWh)H}MmhReaz%;#M+@G4xV3Pdam%HbJIR(`M_DUZjR+*J +zYZEc5jZJ&@!dZY)vp}_F#xp>m!i~g39h%oXr*3GGwY7a1)2IyMTx9;}o=)?YLPpLL +zj5E8ae;jE>zL}bG+9zpvj2SIul?QpE#<@Mz#J!|uB$8RNPJ|0xD +zB{S?N33-MC3J?W8Mkkp;+7lDoAcBIncP>KgVL+2>fQ)C4>%kQajG@oPTqA0?a)IK- +zqNgx$*$K}AgRCly$!#KklLMFxl00UKjm2v%e6q9L*@{V*R9KV)64x}Wvn^HLsN%=g +zqi2(z3iwScNUWUo9?wK4 +z&z)rDhO853kg7_Xfo=n3%Z8)UIwNL7jQ{AR&Q)XV39TVFAU}O}f*OnWN!otI-eDonpd*Gq#RfT$F~?aYNJ5c~K3uB|Pi|_E;hTQ7NW{0QgG{ +z#2(ZwmxPeo$qx6{sD33tgt5Jvp}YX3wqeukLojkm;5Z*6AhB>axLSf&e!}L}ZqByozhR1$CM? +z5PK8ngC4T+w`s1U#$YSR$xyJBr;*|eU|Y!U6P-2DeTA`l$YBr{jcC*}>gJHsGo$_s +ztvm^>aC_S$Tv9QW23ZN@G3cQWlWapnr9QGsjdrEzjjc`5GUVKHfeXDRSinrDiCOjZ +z{79u_T8vuRijWaD0zm490^w*!awnLyag6>LBFvk_4?E}Y7W}Kfsa1blu3~3uP|59! +zH{q3@e;a^T+hU^sq1=4rkh#ZdkS50@T;-YnXuTFUhZ|Ao<|!kFF_967*)*~Ku=k3yYBqg+yXm+#hf}0gH +z4Vv|VtPlaBy-|;8-M8S&>)*!nNiurbdCSo>zG-U7b*?vz5?VHYfJ{Zc1B{fzvyiVD +zGcbk0^4zn?s867t>qM=gy|l?w;{r1yf0fITJZ(YGl!Sk-(?istYH|{7InIV_5LXKa +z3Z=E)ncf{po4jfp;+Q&ums=}l|8$n(aJlqzC2_LPjw0O{^aOlr9fl=CNrdF&9Bxji +z1G)#XlC#za(O*g@9;|wd*ZJ+Y>tJ$pq%#G?vc>$x;*zEE%`2a&gsJ)-P|NpeXso8V +z&k=PSv+X(p*kB +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

    K;y4yqD|-?I+>;zNr_t|w5!5eM=_T5 +z5R_I<3;KxsXF5-8&g}#fd+njU1azboO +z)DA0!aeQneJyK#gA~lO3btJn?nXxPFt|Y)A`+z7NK3v4&w|~6%@!e+O0bpOYgj!Qu +zMG%R&M2&>wcnllj0tK&)V2>)smZ}UxkSJ6Y=KwzG0TQs(ZoSlR`;4mRqu=CZ_69H! +zBWildQy4(^jfE$Gd}Kld+rl=fyf{s&M3!=!5{zM-YG#s_bU)Mly;{(r|NK<061^}9 +zNmid%YdbAg<&k5XxA)wtK4tSqN0bioB*Ls((vSIJgj=6s1a5OC;DnoTTvDfsQ-T2N +zB(ldDgA7)*LzGi-P||{dlgjT*{%ow5;I-7x)b;vP$!Bw7oRtC!(A?T(?QLj++c1*% +zw;(npFZyW*-6AV(#DE@!zc}Yh4=0dN1a-(DXGM*r)=1Y|HQ60LVi{wX1m$nQC`Dsd +zZ$BEq`KTCGgpeA{G;!X3vo=M)HWGOh8nvh+h&z9Qe=g*qL6I6$e2)|3mljUu{gnIz +z@q20dJKTX89JFA}U;Vhzk9yGul@`=WGC7h?^fNxpmQ7`)T=I?I(@QW8n1%iwuLSG5 +zBFG(Z)DNgh4_f7c(VA1>fqtRcH!3HnQ60wpx_Z)(U=kD(w?eM+_9BXMLaY~6q7=x` +z9VqjhyR1EIXWl{Y0c11V=!l_Pm`)GG8b?mwTG>#0I6ZqEQ5}ZkRiucH@0FkkG1l-Y +z^_m1-#VL-G^6s*FargsNuinl_Bn3(bb9)_5K9fRYRI}5}DpDEr^!xO9=tq31HK!%2XWfyqK2r=HS5#Yx;^ +ztmJ<;!$tDkYX?NH>DXujOYA<&m0%4@mkoS}M*3v~hUEvkkd)e!1`#C~00lipLoHq5 +zQlxZje=lezRh3mamMQNG3@8cd2y=T;nnTP|$6<=&WIR>MiWT=Q5&N~6M+U6In*uHf +zo@e9WlaSWiCx|ohV#Ni7zx(S`Bl(RDJ@OaI4vQq#DjsU!=B{`aG`X#7+5#!6yf%AY +zDIyb*xADTNM6@eWgRBVjf2~Ym$FoL8()Mp-M8JT+Dp>8OkV-=MIf0OYV-|WTrfCiX +zqQ4-{BUY%Tu=xqoA9{3XNuqUi$zYZA*;0(MOT-7h;i80Lf8tP~BfPTHw7Qkscw0C% +z$`%1n>(PPdd%GP|#|9A^Hjt3kaAeA{7e)XPTpN}i?J4oq*BmLYr`T_=N>TMHS25X^ +zQi33rPHj*pvkgk=Ua;ufF0<~bp^r$!hr8{4t{B5%dK$ADA7&&f%k0%Dqf>vYBNP`B +zfV!Pqh;0{~r|Wz>Qp56vcvE>&ZhZsHJJTrHM#o-^4E7R*GV)5UaPGuS>OIY)k6GV< +zip31taa}*H4F}d)Ir_udWu~0wni0-)<1fl2ZyFar-zD&w&fdEJDEDG(*P!Ay!+j66 +zZ@Qi6k#sCZiVtoPjDVNzj$!TLVmh%vb7~L!?XD1ne0D7px(BdMIV(^B0K&0yXGlB* +zt_>L@oH2mm^QzRq*f#(Qub859J_vAxpswf#{ELptb{pr*k%j*>RI-gWh=Uw3%>?YO +z!T$*So5W`ib=da2$&O1JP{Y5b;@q+Tc2%T!E`6^3NavoSTFGH$Fa>{%>t3`HP +zxWp?=nB1spvC2MWU$Hz61O +znm7-GmT>i_enFui&EZJWH1<}LL)(xPAjyZlyN)!*K(o^I1l|&$^r8LX2vzWg^6^h? +zf)lIAOzTt0cz=!#7VzbeW5wL#2XEN8jJrT4lw`D|GNRV52zrwnns`d~;{F +zH}=edw3eyA2`wF+c%X(xxKE +zk_Y@qp>AiobBG3G_VFx +zt~W11iYc#d9NfaOQo+>C=lq9dpELMLB5`p4fzEYQX}eVw6B6mH$-~L<-%LdKL0JcC$zeE0)qFw`%qc%G~(v@B_%ND3xiuvyw +z5POGX3KH+0J`C+~5&GB6i-e*(12hmx>?I5jdVXN*61&=_Zj*eMWEy9chUKcnE+l`+lVbi9WAVgku$bdEV%TZ?y$)-&#m!M`anc!+dz>TDeeI!pldjW6vV+HHA74o8jJnS1Ha3e>s|Z^W@$XOV{l1o%v8zc5uQr> +zX3vB4pdN!-Oc6g2a89u(Gv-j&EblB1cTTg~{U;3M&H1}#%sdrxvGOHxnh%QkK|Oj; +z2k|P8mTt-z^8mL|av(e7%I}a^;=n0cJ{_Z^==$8E8zPbjR2RgN180Di9r6wNt#fFj +zNDf9H1Ir~!W@bsr%@TSj8_`bN0i;>ySfp6#o%955 +zUjcwMK`|R`kPAe_6J3^pb57HSiyAq!t2ai{JbT3NlOl5*GDJm8&)n;IkO +zC9rcHb!b5Meh_2p*9rc-ZOj5MV%fWrg%MPwqa3I(Wd%-3<4`}MP1K%tDnY6WOkdfi +z!)p03`#PV2`)*Nb9tZU?7NlIC0*B$SOF<3l(2FUGv9P$9FDqT?_qrS22mV7(lcjU +zRI9H}92uH6dJCP7B(KCMF|4Mw%bJnyb_B?1h~C7POeJlAH4Fjq(0+~=G-GwOR?!_& +zVm`&eK^izdNY^D0-HJ~qDFb*dzR0>4dP~YDAW$- +zPL+sx?%pM&xnN=-sBI}FZ6%kJtvc_aLg&Fqcy^Ga%_+BU`zRX+f#U>TRBxn50D9jP +zjeDE7aqhe>rnNtmh1_mP^cL$rg}7qys9d)>FZ~>DAb`;MY8{?k$D<9^S6BmE=yT_{ +zK)avibob;zAr=fU;EwTS>&}H`0feHBlZVoi83q*Z9!asTi#-4|mLCxa*CnAeS)0P! +zmFFM)Ytu!(!9d*-e8O;1PBah5(b|?oDe;p;(<#O8S(iT6GreWQ_6jtQoKY{}w|bHh +zCJhZXrM{k8Iyt-bAn%7#h5?nUwE;BQb+zaAbeu#PUBLD&2)KDL=0vm!{<)q4a#`%s +zsfP`5sYFf^6&C`7_Ll{tK~XiR!@UR3REjaQLzq`p!$SnzMFC>F)pL#JoCPNyxQ~}S +z0{2k +zYh>Olg=x9d!t8g^&Zj05r<*IluHnC +z-v^*1k*KCbH;TtmdrHP|IAIAkq%FN-7%88*_{1P<(+pCsvRu +zBePG8WhlGIW~@@esmNkRXa;Ak(#S3c?bppb8WOo;E>5n!wvwyn(&5vGhm?ya&#a33*Vfgv@(>U{+W10h&1n +zEsurOFtb2%9_ZOi(ImP49y~LBAQf_rgIy+&0X4Ibc;zx$OOsQPZV`A}t6cgAh +z5tx1UBwD0D}kP>PAs?H~Tv{>D* +zd{(-U?9t5IAx`g#w#3qVtW172Rlw!cQZ@R~^|dpm5?ptxe0hAepiD4tZ{vrYkayXy +zhRp`<)5Cj^kDN6jGf4zsl+Xp-XZrUQiBU`GzG=^*ina%m!h${(v@<0}&(M@D-0!Cf +zHdy!{_CMW-+WTLQ$%}lto1C>2X-mH^9*{7Q!;YBRZBT%eE(;ars^PGn)^uLHED%nw +zd?3JEjR=d_Q+rN%bobGNb6LOY^U)_6+f>W1)R}`m6yR=MI7ApTcDi@U`diev#*C=g +zrGD3nMbQ^4^9P +z%B4j}LfIwEk{&!l->0Yp^+ZGWt6S3AvDK38ekI0lY?PlF1D=F6$}={}$!6wc3Tevto#A +z%7Wb`kV89&AW+$q@WFY~ydzkbM2|eXxk4sB+W@&MDJhUjzQQO2M}&JxTJQcj7Ivs` +z;Z1HJLDeK5jvp0J{|VzQPjd^8A@~$TiBTQTd%Px92DDEl{K=ZqkL~@>7%|1KqDd@! +z#d%uO119ca`}X^4)pwyiM4eiRGY=(I=9xQ1)+`835 +zrY(^o>P96-Gzh$sK`WN#Jsuxwv}L7yTyB_wGzMdHK!o4)*jtI+0gT+7EGjj$cx9C* +zt-A69LgHyU(D3@4!SiGAx*c1u*chP6F}IMk0SO1M*phfdJxV*36#&rv%}SuLzM_#I +za!zN(Csc~eQA+~L-i&Ot?NBi!{Pl3E!~PE!5HWj;7S-B8|JIqaI&yu@9VXuw4;93W +zxAAUEca?BAb3nnS&i!=WdRfq<>Vm%4y8Ws6yK3gyEULoo8_N{5SX9_Q~coU1oA +zKbCp64aI#N>T~x{Q^$A|rKUZLnc!0&T(i$re)wo0_v!reKnG!tu~ZdwtCAD2wE(g) +zHz`nIX2r5XWf8q_#itU<$Wqn&#&M*?<1WYLA!~2mt>lo?CY(HeaElwU^mZGfm8Ynk +z)8n1l2*Ph;#A|RD&(`%A@)*7BHtKS@N~wGys!Z{OG?7JJlG(CNRHTo!1RrI^4cek8 +zp3jNgbO}b?#!^#iAU9#{A#ges1+E+p%7x0AwQEg*QnfW2)u@1PorX-2n2DQFdcl5Y +zAI+&C>Z9wzFzWzR9g~u2a{!5Dc5v%&t}Y|Ddu9WIWQn>yQAgn|ELU#sujGE;e?P?% +zvN)1wpx?g^r_pwb(=Lz`6w+Laj*Xmyjw9L_hu$PnnV=ZMZGX)?e=R7ru{5bL6et2H +z7FlUSZKV;hgB4G$_&yw~zB+SH^e$h(?h7=8Z0*HL?W}63aFhp7rA1euRWZ{bi4Tbb +z4B9UV?r&|$6I)YBp#~~{-y|^V_6myHW&pqaTIv6NQzRRtsDj1sI28bV`QWp{{x$qZ +z+9VeeGefg034YaP0bX}Xk3&J;U(i!nR(V8Q<1irJ@m-E}oyc-2^F%KG=%Y=j?yaYZ +z9J}boa9+hC6pnyq8_e8I%;Ul^f4T0aXS6Sr(pV=z9j86FjIo`s6t^roN$5Mz$IrnP +zvqO%OK%fI9)mI56c^ci0IhySaMhHI>G`(QZ)9x44qNA34iv&w`d?+W7l|sakOSBIy +zfE6=0wh{3-cEA?$)G1hH;?B~Y$Mh>8&yx7{n`dKUV5bwz`{K}i^m_=Wtc%$^`Knv& +z*?*u3)mHUS&}HAB;Eu)xCo=2@*t2SoJxsvt%la_>laIMT!)49oNo3QxU9tl$4n~wu +z&j}C~ASl$=sBM;jcMBiRI3ddbhp{-TCV)V(knDKh=cBpKU6!HvyX>spu)wAJao`yg +z9}|@>xTV!-Gn~N0Xd5bUZ-Dh92^Ma|t1kWU8LJKOv%xjxfH|ZnW}){>7ORAH5LX%J +z%{k>k-L~jcG^Z%05gfKB!8(4iSxdK73#~GkqX%Q~KTTiF$FSnqoRb2UCpjlQ}DE-6rjC +zNv>u~AfR&$g9B}X(M;5RRR)&?ZPKFU@0wAlELV%kPIL(+d15X%cO-tX%)jg4C>B)7 +z8y2E1`BhPgi`GMJMkZ;A8b=z^cg0V9vBmH6O$%QVr5Xcs*x4eZcAwtz9G0>j>6VaHrMPD@f0BWpR}fZLf<^f-w17tlij +zmSWEY6`Ma3Gb@KFQF8T)hz<#){FuOb9~sJ76l;2<8R7 +z_CwE28hrB^1G>a@p3}fQSfWNrs&RN02T287&(Jrc3sXNPl3DbYwjkRd0BR=AbDQQp +z4eS#0ksCT1$of8$pfgRq$fc-ev4*s+7q0Yi34%GDjRBbo**P(q&V{?q0HYVO+9tw& +zS)ZyI*MkfSDm5|n +z1U~0FG@q4hie-51O>y&rzgcy$pxfeAryi-HV@}PJK`3E7&`x#`A@!c>Q%m#BOVHwI +z`9I8*k98Z0e!FZmPI=kHq+HPF8K@+j4Y?ImD#9*}=zl%yvrwPvCj}lBdho9Wp`@_R +zdOKX9Q!+UfH7$%!|ajuABq8O)XWA;6p!siyd4)#>L-Z_F0%(@u-|glH+Gzy7Vam0Z{EOl +z*^?#+gJ_lDP!=8i_Q^P-SuxOsyh7)ElR(9@;rHUKjlsm00GMsl=?|kIP^#kkT^vVU@YaT(XoM;Mv27^y>he!sH4QD%e +zgKTc%-sV_h{<3x~Srr;f95+2%i3m;iCa8EJOO0zuJnjZKOjK{WkSOGir$TKqQV0Fm +ztPU)ue#H*!rnwqbeNxRYY_QdmY% +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 +zLO$0S6=Q5^v!nZ3bn?|0W_8|e>KDuqT2VT+ +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 +zOg0jVW9ijhGQAh`p +zCn>*?OFF*y?c@A>?svQg&ymF@#}(P`HJZ;3EVOB^Vv$Hvo({Y%6R2xJO@JJhMO^?k +zpPv)<`g^S8j(p~zU%T~0NM3}JoOx;c1b`>K6Jg_nYiXI}!k4unX(EUps4ryItk<49 +z1G}sioc;)Z|C}IuK4ZD5Bh(FVkE{yJ+l^@bC#zG6s1q9X}A$*eWj=CGq;<5?+@`g+qWt` +z0fSjChW65db&jjc&GcZ9!ju*kISw|(zJudk!CG&y2~W10C)hN=U)*isnR$=g&VnqY +zgp(g_Eb$}oaI;DW#rtf>=)B6ArXiqc6a=tf;vfyEPDD@c6%bfYOrk0$d +zx8C##lre#ztV+5IT*hNzCqh0+axnUa +z&KrGu4~F4ZXIS5Ojxg5O$;m6^N==%P+Z}1I1-cY?<`@GpkHv`n)GF#qzyFF^(=gpq +z)u;m#n@1r!B|y?92Lz)Bh{FBV3;Bq)fW(3yQRN;;8;E}<0fG1LNi^y@Sy}05tbhEJBWZ&c`FRso-f{gIi!aEmv}5hd|6bT|Z22+_m|T&K9Bli6mdH +z!y?S*yM)P~Za;g#FszR!@8IC`fB5TydX?A)IgWpw$p7}f{rCUjpUgn3I2h~YxCwUf +zU#M-Yc@8x?@R%#R`lcdR)CWn~$a1MIhoLsvBb=Eu4DR&%uRs2Q+aTUR5ssNyB7nCb +zYD37OIb=vfPVB=FgBZ3w>5MR+&y&qs6{iGz*+#=8Uz-GYa<{RlKvAF%p`B4!$B&(C +zD6R{_Qe0y##7jSY0AAQJ$X%}9tWT^AsqA$9RwKyMJyt7isco))c?kwAI$IFZTFBYR +zU7+4>%Y%W|tv(^l{OVru!@R9Umg9nh02uKX@52I|_!e#UL>}yWc-v_7*epXi*ZU!I +z)|G0W?+o|wJsmW$pu|MGLrf+`ut$xa>G(svkCfh%7S2j5lf&) +zRuOt`Qvr2MgT?YtI>~|y9t;XN*y>kStkik~K}~bxqw}-l^vAh@QEJF!pfch5UEt12 +z>I!I&$UW*pUn^QXa!A^R$X>zb&6T{h;!db8Z0Q=iewUD$9KB3J>xKMl^&$@cj@cfJ +zfO#xLLdD#GRMvlSZ(eDWNi>nM9wD>R6~{q82>mM~ +z`-#W1xX*q@yc2Z_0>GZd&ri}`OS##%-&t-|>rC`ibrsh$6h{5C%5^D?8xlWzUg|<} +zix>R(ZZy}bXKLC+y`OD8KB*9=_a@;6yMOE(THnsOK<|lH$~1$-lsSDfRiria(s2Dw +z8OA7Z=tF%4Ti9XE!@5MF>vDOK<&|aB*a@bAaIXYp9bY<NSkaF!8-=6lJMpq9aY;n}?jh-b +zme?ZUTVjbII#p~(0U7Z}k2dkwUz50MUf$>6swxlNTvWW3Uiq1(km1$_08M=W$s!MqwDbIdOeQpaI&VhA^v6MdD@!IJ8#Uc9Q0t6OEj~TWf%2w2pS}COR +zL5GUkM!A=?tX3|p8aK*NU;MgsY(~Xk1|Y06sy#9mzi1t#;OAv4M4B4O%}T +ztQeyAoi>kCe;Hct}jWONPj#-km*!Z7T=QT2Q0U +zv=9g|9;P+HD3QVSQ|^Z;MuSuSY4(EZ>+==Vsa*oqacUm7W?|F3pksiTqiMW40G{ge +z9W@=b=70O0JQ#8trb(9~uEwHZ!cDbxJWW)8mb +zw2hI=QV5hj3aEopYc%fEwsB)I`ySKRg|0(wxE`WS&J_k_Z*JT)8E|Awhk)1GaRg=W +zcK2L5@h%pG&$7c85qXd9H5BngR~4~~{>N%gz_FoH|T=2n#RS~KS)tFWh#m=*Os +zh73Ue(;4>Ah`yrRHlgk4Yy)B>C2o<>t_o`%#aPxuPzpU1Mfwww|4ipeX#WZB_u4~y +z3Fyev?qwW_20C+bzeiLyH7zhh8{6$monE4J7@L6VsvTA;@}%LBGci&^G>URd5L1#} +zrfk-gc3BeSkqtr=8y~Ks@!LP%`}l5?`~a*kTSC66ts)jhT%xISkH@efE@0#-`)oa{ +zVnV9QUT6d +zzES!?jp{J&*VU7Tgs-6XxD|GlR~b>1lXAUiAEiKs?m%hk+-2=yJM#{D4`9UEOq4!s +zw=kU^h?&KaU$(NL_HcUkI-+(A$EzR|9r7!h%2A9pd`i9cNq~Hi!1i5MTz0_l2k37d +z3xG%pWE1B0I-Gnag+|=wtZS$ul|fIxPmjl+)~w4$DiYL(1Q3}7)wjnB6MU-fNixmn +z>2M#)OlN|9ZNq6qn}&Tj5l}K-S?J@uR62k;iCc`7{O@M4OP+gem*_Pe8%FML$4#N)mtvcVSf$$(=7dq^%qo`>GxlaSWiCx|ohVg&^&_t&RJ +z#vB{Hjhp_NptqHQiL!fZ{veC +znZQ?~23e845~kPd*&-w9)5jR8Jh_6|B$fp#0Qd={3LLl4M=_Cg7!dseQ6sTIErlIX +znEsGZ?kCaL%{ARrnrO>0$}SNfc#^9UhJB0Eiy0%9ou<{TGP$@eoEl{xDp-#Th|;(F +zFy*CRuiPYspqpbg?62TU~qH*1hV;sYn~*+Uz) +zy&SURn#b$#UsH8&Spd5!XuXs^*EG_(=crb4SXqo7L&KcDAJ1ly6Bn+r$+OJ5`IDBh +z8>48&56c$<@!tN4BWLr+nzjYC{A8yb^`|jBEH;+NXe*WECnSHNRWBCFg530Kk2jrX +z{C#B~b8y-Ej1o;T8_2wtpnOT5NB$=uJ7ZtD3Mk;{9XL=Jwzvto==a2V7_@|||4IuA +z1>OZk(ljQQHjJ&Zlw=?F>AX*vCoMAH6S!6Y{f7dG1zI!MN4fn|pYg*gvD05GMu`#~ +zEa1E$pNhH1FPz9&ku{N#6x>0@nP_;8?h~)C(#NS-kdxv2vfgGznzVuYpe(&;(^mE*)J9wc%}yN2XV9`GZDx}W*Yp^C6# +zd|vUhhLf{eUq4@|i?eyGjgch^Z`;$K#lI;MWnT#ZXmW4HWbb70rxNxmj@at8JRP88 +z1OGyR-~!UEM^4a*x|Kz|9nKFKfTcwF_k3neaXEa$fwUlvqhp9Q{)pP&-};Ji2nN~; +z7jFcu+xkZqj2LG^AD))?-6g}Az@+FBb1o=gj>}Y>0VUP|>Va}S`VdVtebkb6M*2vhL{M66f9unN0t1q? +z@+h}b$m?ZGjqS$L6q};Z;=u>OyLv{BDPGtv@=!?P52NkaGWqhqmj|GBkcLa2Aj@4)mOjw#5DfVvsl<04A1n->X1 +zcLr#nzu4bEdbj-oIx(@UeHoO$Nz|LpCXewEFV&+E?o!TYxI*JN>~qc`DW%~Oy=%B4 +z2l^Y3%;MU`G-@R1$=kYSrLUeb4})wx4q*JI3Sk&qS@XFdo +z?5Q+qVMUCb(jCeJ+gMxg0)L%E;A=s}mWbkr%R%b9LNRBEKS2b6$r;TQ@h +zm^h?vh#5m;vA=oXPq}l+nIvJB#$!7MSF6T+mOLJzth8^oA7mNz7}R2l_=SLTidC7h +zgt}&VXK}c*7c$!Pf`PPjQ;rFyq)K&XkPnH|d{Ds;BHeqwh&S0e6549-z%r|Pc62z`R{MBtbtd0}E +zdEPR(4D?hC-*a!zuemMAav6MBJ%EU!iF?y?%+H665{H%NUVUA6_Q`2h*@5`GrC7zvCl9*!yAtd(lcjVRI6{=F(5rgtaGNWZ +zFG5Z``KsR%Ij&a})90ef`0StcgfM!by;+UVbiEGea$GK3G5WqF=2pAynsF@_M- +zw$zfklFP|ao%hh7^I$YVJILAQoZI&)%E3Y4IDsD38|e{n-w#Ff-sf$cFJ2eZ+8@e7 +zZZ{-)i*3pwt{6ND=WWh#KZiRQDRe+v33k@;=tJ`z*1#6}eDPPH-7gxyd-kA^7X}z` +z$5gd-=fbi8Lea;m@ZhOoK=JOG6$LLb0YKyQVI)P!DsZwkmA9+!KZxF@t9*hD_DS#w +z!$n2YGH^$0TN9?l7dfeOil11QKGw5Hn~=0oK|8n(VsTbALKcqK+qBs%13BhPYIgCy9zHX+QhU +zg7KqB9_t}I5-75AjG-OEvZ@*$BH*qH5Zk?-TQuh^IPt)JycT3Jd%SzP=d6XaUm0e} +zLWMXJ@$zrQ4b1eg_b_Wta314$sscxyZ5J_JiB=>mwnRW@_q~g6y$0I}9Hu;U*pc7) +z>GZZrqUIAZ)ti#=K}Vj7@3Ts0o66qoU|l +zV7O)%Ij#uM6=tn@tA5sJL=#6GhDmHjX5EJmg1;eP02b}$PJIuO&eJ)ug47rTekNN(*+mXxlM_xw +z7BfOKIBSz9dpY61Zay^K)CCtjdut_E&834uoCsHvv%NcG%Y*S;*p61BCj4`78-*KI +z_$5)LjWae%13(nRqRkTn>}Z~``4uUPvn@}Kg%^pvYhlwE+fe0Zw?0ezxAYL2hyq?ag +z$K|3pI|l#9R$qD)S8C-GofU?=&P_-i4#$*YAgaQ#t(z6jVAGRnYt{?TnO8mQ*0d0B +zirZiC3O3y~`Z$wUd@C#1!fqMDO`k_e&XoNHJth|aM=^m(xxDOeKmYhHV?3U(1O^^2 +ze-ICZ>c!+DB&7jvvyXOUuNfr$t$jB?hnz_3M_qjWM~l^Ire^f3>uYC(DtPW(`SSQ`L78CQKE^M(A)j(y4Vw+zr-%2TFF9L6W?WVR +z7-$T0+4ol@Mm;43r@bgN+8M}V1-dI}XG)A-peb8;JWf@8u<$?Z|9TL$_rDyI7y0xw +zIfEsBw)MQL#&D*NR2e7poL~Gk~;3emqF9 +zQRs9cjlp{--UDtb!S(a?4L}O+ejSZ%wXE`|q#zb6kMd{{VpsMEv!n;lkW!91P){^; +zzq%!@9a}9_-2-E0+qO08*tVTiY}>YN+fK!{ZQFJQ6&n@Xs@Tc*uC@2Q=bS$=$LM3W +zr?<6jjs59y6M1+UIEYv_uvd&S$`f7(j*9kA?WQ*_{8 +zczQ^i47+s7-?I7*E@E;_FVB?iwX5`p!RR8qDs>^fz+5fCP@^ewRzI2$g5AJ2m|bir +ztCWdR^X&pQQ^7DL$#;xW0`CW +zPpY~)Ml;|~*z_$?*!T$|KLU88u*N78$~mwh=WL$8h>X{%X$mfaAD0Rqy3zNzLRZn0 +z#yrm;i=8J~{r&J}w#!W&o~2@fxR=I8jGacN|0AcgrHH!{14PY}fS&aC%hNR#>P%bN +ziW(BVbKyz7aDOdo(K;>0YUd+6Hk49s-NQl3*55+P*j9|*R|P!KkmMZBEemjg#kw6r +zf&Q=X-ea?E=`R~$7DgwhY9BD!a7`zps!#jH??siraN=mt_$}-PDZa-v~{nb +z>8ex*y(v~U1D25iuPPGD_U~{y0HN8MdKFEUBQ0r%PtW6o0BM7{r>4|u(`2nvkiN29xbM1yV9Bh%YWO=lG#g;dGf_L%gpxo2~;R7PAn608SYQ> +zIUGfN^nflYZlGmuW!0HmV6wEeLAouyesTS0S_rUl6!L%~gb5wZx}MFQHK6a83pAOr +zeaXzguMhql@eL~ZZee-FAeUNhc4tI-y!lbi2a3oEuwHC}cO7D!%faW^((%wj!BD}* +zu?azIn%D?@JYVaP=RM8Ga#%Jo7_G~{e}tfJPDE>#W~#!@CA@&tbX>u;)mY$@UJ}#? +z3Oqc($N$lfi2GV%)*oAbpAJBd$uP+vkrL_I0NkVx5{pgWM +zu@*b|kA4Idhx(?l^d2lI?`8NSD?#_F4xM%mtu$W{krY9iZb>K%Mq_S&No33e(2o;K +zR2lzUKbB56Gch$RLc{nwS@OT}g{Z8I*yi~z@liYxS_-$SeIlMV&pbo_Klbr{>BlRjlZpXt +zQU?>(8yv$@H0&(eA~tu1bx6Lgj+hw-O@xdyn+^zYuNfAeC4P)~5ka+bzo}(12Hp2U +zjPT=tx2$`S4COegOXsWbDAwc$114t_xSBJ1R@RnVR_EsF?)E;#9(s+Q%@5 +z&Ii{{>tAvuYsT>QW-;+20lyb>{T(9?H|KlJ1o!E(LM#R$aQlGsYz +zq@2mqCy}PkF5$*hnQSBHS;GT=t*n?)#TYq`oY7>­w_DLtn>Orrc`;|?rJ7b_hx +z!gRHdmxa|M=rHotq6l4%^prUGLKgo7dBV0s4Acfsw_APqOh-u6-9?b&Tr)}kHj +z^<1VRW^hpos#-sag&%A5A5?OXg4<4mr$j(TC^v(?g +zq)`%dgi47oQ9Pj64%hNhAJnqYJTstA`Y=OII~%NP+K14&$&+0iT&Q0AvQf0;q5mO} +zC%2jU;XEZ@w(&M2jyAum6Q@cY+J=M#I5~FB#*)j*;LF` +z<;w68{}qsR{}GU@{|HFdYrv7`8@SPAA%p@kPrX@4%l&qi%%s?CTmb78JoZKr7-cbH +zv#K|lv;9qe%-*Qk%RAE>(w(5t-3a#Cov2Yogks;`yid~nn&L*U;iuc*KtMmKs5F!| +z-#iLk_ScT_*_0!K3`ond(cdEiYW6D+PlA?kC7vx?*aG^X%!3-W;4Bj?nc=YYmNpZ4 +zJ0L7`Uk+2zj0@dZ1&RA~2!qX#>6S)bJuAv}rCml$`v)UPpyC_||1Ceu3GEesGXawC +z%TsPTOR+M;p)e<|+vxGU13UOSWK4_&`Fi$~(dp!rt_YqmRauzKkDHX=IXmJj+aNRy +zjU?+__RXOqa8vYWj|)mvXo{fXGPHj&lD+H=JF`7+d}&3*Fj5Ufjq`}TK`6(QhMTla +zTB1pSFDgT0F4q=d?mWiK(QHhTmDmspNz|wBOWqHDjZYi#mvNYbKEu;z2bxUv&q$%W +zXeFJ`ElmFopw0Z)Lz>eqf19Y{)sIroZqpC}+GN1^sC}Md`oY1*A3hD4-DF9Mydu_T +zCn`YBxP(^U@^g4P>-sC)FyeDh=pul*8(sH&pqmKE#tJ{=e1d8h(G3`*B*zXK*FY;@ +z_0qxw*d<>c|K<^`n7mH4Pty%>sY52L>a&+s+TD~F9wft=ol5od969pr?b%5W-WT=< +zciv2kw!_Nfzb>)pRmVV9g^~0YAFn^9txnS_!`D0(vz=Whnu2Zo>+<;BOp^0v&-G9? +z&V91fEUpsRgLQ=F;Y|5PqIEn3!tZ=6&NZPi_nU4zWvUqu9aJn?rnVdb75$X2qiP>h +zyaMpxiU~B~NQc8geZ99%(8_;Ynp`SgJ|O(9l!TYeI;fS5?@Z>*qacW6gL7cm3drjzt*7pS+p;Vbm~$ggIA^>{7oxiCuCRGj +zlZ^GOBu- +zB>;#}R-UYvb~)o8{77l7df!5DWYHvp@DF}$P~ifvr2;!?5b-S_!Wo;cmn}ZLAdL{@ +z9Yeh^mcQ_0pBN5S;<{m*qvg0o6`oGCgl?vxhaDFp;i?*0vpEAQg&W9fURpT9f@rWC +zV<^-=NZS~{!(aEoM@tI$Ign9E)Aff|9*tcAx&arZfvs?G*}lve*N(_oN0@E#tpu_a +z=vGOj&*@Q_QLBSEtdW$p_F{kMmmR(O2+b@wt0`Q5=U`D%)I&pxzN7E=S>0=(r@(^+RA +zVtsY12EtlQ3JKS66mxEPQ)85aR8FrgnOZbgeW{+;G50VLVm0q{sCDN^|VHk +z2ow4`O3`)mDb#U`u)1U8;;UVHU_0QbzmS@0Epqx +zpi%ypYla^VUomrHrr}}?3V0RRx@-f{b-ze=fPYuHZoR095ky?!StOxy#-l;pR>EJx +zB^J#5Yhni?2$ORa$tQ?-=ofTKQDMd&eWSUjO}~_+u_D@up3UDWh@VxAh*#WcV_O;AaJvR4 +z*Zdf47IfXBXS9+6`DTe~@gblyD{XfgrIT#jDX(J#YxVWs%@d;!8#7&M@Q4KHky2$5 +z5SUZ^ct_HGv>H|T&$x?>QkS{d96GvHB=h+z9%sL3$ntqwfR9`dXmRxVhb=M%J5>e} +zTZ>7>zmD{e4thsvO45qZ@&Al6m6@&BAflzGyH0z%I~S8nii>XK-u#+n(@+$fw(ckY +ziRf)*seOmz*(_ZYeAS`-Rk?t*a!*3ZdX1$<)Ave$s{wvsl8QIMsa18q4Eh7Cdrcu= +zpLVGJov<3&TmdsFE4!4I->lH0 +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 +zLmlIR#4oa44xt_n#w>F;( +zhHEQl)Q~v8(xdEg=_#G +z4r56s)*A~4f^t`UTPnoeRIU>>g5-RN+msmhn#_+_Mk-j%DDs3G#_Z<~AnCT)VskpU +zDqa7?tH3^_bKKJR(xCHuc-xBfnDj;BZ(i@gb!zj&TVo8pY1lW=2&t|a8(_m?egUOH +zC7&+?|HMaO{mGOQXTudO-5ODLYIt!7XO;`wEze5}CU)NG?9;cjt_kR0$8Je?sT6Bgy)AZbcdVZ+X@DHR4{?@t*d>yin#XSmdP%u*z4Uq3Ua`BYB5nG +zw^aTT>Aim^zSDAsy?(4STucS5diZo`LW}O{?PbT(qfO`4fdqDTpttrIi}&6C!S)HY +zlP=R-x{-?~<0;;pjeVkERz#|hhQ^qW1zbD8Tuk+6KY>jlShi?o5YVP>vEu=SjlR|2 +zFEm9Zm6;>$bfhGt%Cyi$mpcIU#0o=Jmn7H%ZG$_~(k`NiBfvTje;JTgmkd6Uj>-B> +ze{4Zc7vKe3v2u>{{koG+^|LH%TI!=X_LJA_qAezP(IU0EB~OkGbs5bwNVJSv9CAq- +zBw^sLpOauH%rThOrTlW8LLle2`%NVh{ppkbM!erj0=HY7;Iq=P*;rebLd5X4Gch## +z5#HFbiKC6VdU~ng{XpN(sA0>Y`~G +z;E9vi5w_k-qa)u?t;gtyP>!2Wv$6$Maq?8s-_PyQRXa$qMnjK-xZ0)dO7U^kF&g(%1Z@w +z35W|DP`;VSX3ZCgjN=E +z9oKR?uN?a+ys`sqj~B%#)-sHV4(* +zPQ1XB5hgQr5;8JQ!0gP7A*_Ee`@%5Df3EYyInUVC6{7LnONF^B;YcQIn$9_7wjJgL +z*MX(m5$6sAgc05~Cp1b0CK@jwNnNzRZo#dNJR-2Ct9aDzg{POS0KoHkFg;@ +zJ!3NTQ-%P<=C2?2f*}&FTiJ?v=lj%ttdFrralzPPW^@xkcsUqRKyQfSJubZ>k@ksy +zw0nbf0uwy_1ynD14Xllb7%%@+lx>#;D;dTQE`Ox84E0vOpv*)J$0DxqMq8G{6c1hh +z(X&s?csMhOiNPG0a&x(58wnnUNJae>uRfPQ+{D@$NEO|zk@QT^C%5FmcJ8Rh(Q2e$L-rUR6T>P6>`cmQI2 +zT$N!Q&pLymuY?hg3Xm6@_z-P(qcxy+;b^a43kAp+gsR68D4 +zbMs&9xU8K@jS`<^i{Y7jBVjLVEL+rQYY>06DZf{p6)X5iXz-tj +z6}u9o0}LS-&n*J1-vo7KLGL-xNs4dn(OAWF=}t)7Vlo67`oEgnZ!rZc)~UZeW&5G7 +zvWFKD?f%@U_g*x*8sZ7rEik+g={pUWqBb-`;L2|J<*izq)2=q&1!(q`@N+lWhXU!)n|+@BO1?_s+57 +zoD(%)Ir>+(WvI1&SvOp_jF#XUt1OGAK|&N>d*6a=TK>Frlz65CJso?w5F6;MPVXWw%L+n}0xd4HG5+pqB$bhbr|!(VD& +zdHq^nTp84kMA^y{bAA?zBzMC`o_ZPuhkQD-Wm(;GR3G)XZ5yjP +zg;lM&VS5*8M6}jM!ZljGt31$OZ8mQ$HGxqm01C~`Y__};nA^Ietu{pdU`-o6?cAv% +z@{dWNw_09S&VV!V95gSQ28n|!WQR5f384J(;7C{-esr30@6ze@6>i2JgI<-*u;`3d#{-%`?P82VD +z*t)tO%y=)MtZ@j0cxit01r)NQz%n&Tnqnf=8}EW^1ijG|T?;lqv}mo@_nBt%9P&wf +zVO0oM>a^FRn?{@w|?)FNYbFr9$%!}<62SssSE-tyIo;xHT +zODyWZLrJu6Wf< +ztII0q34C!4iU>nbSU;H-l)}_wW*Sj5IOqPj{Fo4|QOeHYdoE<%6y$39I|L(fS;?k_ +zC;J2U%ZN*2C7-zr)>E75LplV0vrNfGU3S>dI~cU>44lVg4F}r6$fhR9QBFf5eKtds +z`Y3gC!^pHSywCOSvEc?7y+nsIEG842maPV?V?p#)MT@}cu}E9O1EYpH>a78cn&5C< +zD}N+i(`WAR9 +zm!MAV=~E~K6a(i*{i$ZLUUvTw-VI +zgvwqWzW=0igBjBqozgxuov`zl@jO&DP@2n+ZaHZ7UpW}fKl8?)IqJ}D+h-#S81G+_ +z6c-bE-z>Q*M#YOHuM~5R<^*T!HjBm+U76g!5_{AcFF2VjALi1Kr2$hs0iJv>bkrm4 +zNpV4}q5g#%As3M!{@JQ3x4_p)dryG#0(^i=f*ys(JDi4Ep~jb}eQZ5v*K`p{vJObu +zOz#1bzPW4aPJK0d-4^LoPYDY?*)B&rkhhIIsv(ewMCPx@BQnlVq$b(Us?&9!zPG6d +zb}8BZ4~4G?!wDTY1F`(;#Kfc5Np5>BtdY!GaUlcSX%z$-qU99OAx480j@l5nrgGE< +zT5DnOxOn1pLCdlRQkSQQE~N$-R%WOfBcXh>xkSt7hqIV!|Ky&p5zmuEo#=g} +zHS94zbq2o$bD1H?i6MwR +zLt%P0R$NsDaF;Ga^amJ54qJ^(rE&|^*N#JLuVM-OEHhTY9EKH)VGfqA5eHH7a5<^m +zyQTu|kyx234jwG}8(0fkw4GAHPG)7*P`5fS9Rx-kFi1Ovo?bd9r<_%S7FOoPa3k!S +zl5@JHWkdkClk<&|l;6kiLvwrkAQ`WPeLKDEhR3^cbUgVZOKX;moG?36ro@Sh;wGHH +zgG;Aj;r}4#}W1@vrH={d&q-{=M1D`&X0^U&Rl8g4^E?x@7?p3kKB&Iy! +zeymbtrJG_ACwth}Z*`x04tNo%7<|O;&QfHPTv;=f@c2DGmyL#PdW6w)vqtr>4mqr{ +zm~5j@9G0X&%LHB&jyJdz%oG|HYM#5_9=FDyH_`DY0~?GXqD;ol=t&EJ->4EiZ^pN9 +zp6$JSHS;;U@kdolA9&7HyisSe(oE(y4D%xgPF1`?95i*SqKjGB6l&78yD$MlfWi^w> +z{Rl@Or6ermn!>Izp8_uo<;q5>E6vJBZctU=7c6tm6*z*ynfqWiWdqZ5W)&hA^>9Ws +zMo%01QpJ^LkRzIwdfzWZCFRBotK5MI)mfujB|R5ye3WE>95ct0c1Y{Z8+RfoMcAn* +z2ZyFg*nQK5u9-vVG_5t_tohBJt5J@gZqtHug(=ix{x-~Cq8E*$hDoIA&VI5G;A-WnID)@1$o3U=6_{-|fS}$>z^-}fBc7+nrjv+|fOyy@3?H@z@VRlT$ +z;c4715AqxErYVn)k`Y+y9M5!%aZb({g#vvTlKSy;lt7VDsk?=6|FFQxid3u7Izyx1 +zDt*anxOp2V{m70J`xDKfCrG~BA~~CUQN)+6@EhW%)rmqxgdH|?=*=^t(zgBIj~fol +z{PZaD)1howSdfwTQ7P=M=`78mp7IYBM`&DZwIUK*+Zaj0U7y3T6u*RKe(ueFf`E)% +z&`{W^b*GHG4J{TV~SM*QRh|JFoPa-1lhbzaK4HIF4YjgZ;X_mkB*4-d;?d +z0o0uFqX9Rq>~kMP_VUv#t*g;bt3T>ECATFZW*fuXs&1aE5BVF5y$HPX%k*XZa8OLP +z9$+dY4ATv7B``m`nK6cwwkPY>ipmqQJwR_nUf}!An9}@P?H +zWpmskKJJr|TYYby6xefH{Fsb&V)Rs^+G3jT`wM}ovhWcb2B+Ydg}{J)wW)xxS)WMw +zf=q1)j*|H$6IA$%evh@&E!-6{O_qtq9hiWF!AeZAXz47Wm +zBpt}D6WxWHwUd>=o52ayOI+CJI_{_sab9~1vLTRGrEt^qH$e}r4y~|8lX@!V2qMAE +zT*j9>9mYm0u+axAz9mhcIT9lmOVaeGk^7(h;S=UrciD(UB5&H}fwzK$U%O)@4Kt#Z +zZ%{cGCz4?^acR2kSBi8rn%D=!Rbcf}DunQ`0=eG=@v-^178$fIz~;%ZFp6cJwWPNX +zD%+bmI&$*mwH#~wicuShVyiw6jcOwED6o~rrA|UyB=pZUR@EG&6q$AIMKtXH +zFw~_t%5ZzDa;vCWYGDOa&A +z_FRVX78;ppJzr|j0e&o6W(!I532>j4-2sWWxy02UQ?$Rmi3!X9o}BNpnP`HerWm%w +z^hz8yB*=l3MvD?shf$4ISP;wu4t_Qv;MaG@P*zQwctQxr7Gxmw`}%Ab|K7Rr<_)aQ +zy$kNeb_DlB7r3)9U|B38X$xg}$LI3Ki)D{Q-S67jQ-*$4SNFTX+gGV1`>B!vj0ktU +zDJ!Do1LoNguDi;<_|b+|Ysoa+=z!9!_XJ^mWS$OXb2?jVXs0D1_S>`VD8bi()4>@0 +zGQV=c#N-}li#5WbVC9v5Fa+5gt5q54U7}<-1Rg(PGG}Y?Nj2s^XncO3=nPR%VVg_x +zIg_4e)V>WdquRhwfa|DHw)9TiPrhC(0M%^?#3>a}&qBt;oC2#JBa|%?q>S8(6154f +z#^2ykGoSg1e9xV``+|vhssW_a3Ywl+euIKlc6-9i#$oZJU#RGjfu6>3G3lZdkaABb +z*OIwHA;34veB!ZQ!a5|(UA=e7kH2O&08~sj-7k=?0aHQJO-`Z){pc9hW>k^QpiS5^ +zje*~Q6;-Ht5dI3s>)i?%Y&{|J7{lnxnKMpL?FH<8h4_Sy?04rZ9ibjEypZ#=6x;)@ +zLlOX%39@tP!fi6B_9);{8irv}`oR5ginfpYQc{$h6yY;x*bubG8v#>nN$-SVipyTy +zq&ZQCU>SoJ?d^&xf^78hqojkx8a;sz9WY8hFcC`sK&|Qdp(Mx^CU;k1eBY0^ci$Vd +z^kaaIN>N*M0mE>HXfZoX!I7N$pTE +zTEsiDeB(%>mRQ$$9mYLCQI4%jjcDK6Omfa24S&0aiQa487P#{;V+uJJF$%a`~hMk5yUFi<_bdLVKO)_Dh>$(?Gk*FTw$I(IZe1r5!2`XH696}G-{gCPDqd$Rj +zp1BbI@l7!kwl~Mbt`Y@lJOfOQu~txqH&d1(Ru?n0?x>z6x=cwK)v8}Jjm4r6Za6e@Uqz!4O!7OiN3f-BRcRmGHvGtq7JEv +zwQc?V`PKD1I(;C_S#l<3P) +zQK@fq#Y3z;&n0Aq=XsSyG$qd@EE^A9t8fhCim8dh;YpPk63(fhLaAdWW9@xTR7z-`(Oxc +zgz4gD;vnyXV2}vpkP&MqqA=0dOf6eikvY4T+#!DL;y0v{xHcP8ejf+yLQG8~)VC!t&+qP}n +zPRDk#^UgWfT;JNeYS;P=chy~EjJl5Nqyy$lT9hpBWdXB$96}ou0S1 +z!V9heA%p=vAQ;eId1SG8U9rqM3x>&-+< +zk<*WP&B%Fif!`NH?jKh}R;|vPjcHgJ6#HYw@O>(XGjv+=#fyn*K9HP>X*UPatPg@F +zA>}nsb*N8(SYmkoOEs^X9pU3&Ve|QsXBb^Eu!Ar>qfi(fq$`1S#dKhHZ3vWwTSSJI +zBx>wr1QoW%gc+Me8A|20wp(1hZrq{zTbokco{Mx&4hJ5{n73u&~fc4PMe;j4x7$i +z?1@Kfvfy!nTI`X}2E_(jT(9) +z&7RfcEFzjciv*uIuWp>&8y;M{ZrZ(Z+wUJjg%=79?lssQXj*r2r<6;D#8#8_6%6q2 +z&{It(bG&r8Xn05cHtY)(G3N0exPQ~nlyr>J+ui*I84&L@{-`*S&TtLOo_(nJEImEr +zvSk;=DPzr&Lc=uB;{t1i)B%$NFi +zaLyCveFMcO$X)@lzaZQ;)h)Qy$t1)G1MZY3X~%EbHU;wBSnAb-86O%)!WFY?gi0{A +z*LH~`?Q$mY0A-UVsi1+>LLf_cu^18YAWUmaHputq4Kj>6U_&ZPidNPo&f-*7LKvl? +zl5|6nc$*;UXpWhvT@4mQaL?(8)6D&CSYai +z+_;>K+8@(fyCWlYT)!}dnL_T-F=SrX=bpa)A&DPz^Mu*1bv^tRqtA+izqBL^mi8@= +zp?mbCHTBt=TRZ6?o3aI}pmnZ{&YbXAlI_}1P$9opZVIl>H2#Fiz$`PRyh+6!H>v@l +zR1Jluq)Mt&RNxi13*j|HEfIV5RX655%?tpI6I`#%!r**6HJUTBuArRueMZSgGi$_B +zRum|Qm^e5tyCL?pB7`X#Z9VPvQ*`r_6{8Xb0Zi1Vf4Sm#m)+xXI+Gk1a`a9e_{+mx +zu^LuXW%A?^>kt}tGnvF!N9Um3oLq5HCILBJGxm!awv(1vi4`pcKrH9p>>~UoO~Ufv +zra5{aRwD +zWfY?4bm98F(BfHN6IU#|hc#Ld5CESM1HS(Z_Kb#4vP1IVlpqrFu2wV031`!`W4!-^ +zCCHCC1x-wxk3dX&avX2HF3~4CP>C55idC$fiKP4v3VLYR8q!pa-}b;0*iIzK6G-Tf +z78S(dT2}{*bS@6b%_5cn{~nna`B%o>FZe%{8=@z}Aow?l2BhGQI~ZM$iO42Y?YSNv +z63^X8@N&XWh6vouEdAW#X4Bif8|R~ +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 +zKhX9MRbF}7x0uPoqdDGx81fZOau+wWvD9P +zP+WFNUee#;U1~ntgin8f?_M{nEgSWEaYe&eHDQ-en@mIg@rIgS*#=fx +zOvEvbRnrwEY|Iy{u#mv!y&z~wSkpjGFzf(XCsXaa3_79cib`34fwX6+L+nfbpKq~< +zfW;}rFm;}%61K6qu$a%Q-eW*(N>$D?5{13{I0JZ!OOF*Z9^^u%sVKxRCn1Edp9rX8 +zW^s!5Wn~R~dEX2bEnC!E=s&~;QlXB(QG^+eeQ^WXg)Rg!`r*i}R3Kh!i7t?jM=tR4 +z_b%#u!bK*X3BRCGs}pLg*r9IYsJxBTnJs~W$a)FeO^wU^9r(78P+s2Ja7^%w0pq;+ +z(TR?Pkns{>sc(}?p8nitB`9663&h97&^h@FBb4!2YpQE)$tsBdJ8s$cJX`NdJ +z?b(=F$f6ms{BXQViQN8L931Sm&kbH9zK$R6V5U&YKil9V5LK=w=n)koz* +z0qwb?JRG54VJ>G|9HjV9a8}c|9-L` +z8gjPCdtYHz-PCC`f4o_M{83^iR+R{o0*~wS<2CoGIgGuY#ST~Kg{<(8NB4!xlgNxu0#G9Uu_WbN6#SG~TQ6VVEBJC}X)FZq~h5izk1S +z@ficlL&g|?EOc+16E?{|DF6h` +zDJV8H^Iv0ukcU2vgKlAB)`EoU5qndpeD{5#)=1dJJygsB#4e1l%})kP#f-CGMq_7p +zF+FJuvZOQMmwikGok63zSzfNYmrlv1+feUie+zI*b}IYLaVzwH<07L#dk}Yij=R? +zM9dNp`4OF$%g?cvxB*Rmft$}41a(J#(?7M_4*r#RX}-vpl)jRR&SU?!C+&K8v<a{SXRsp2 +zwM!A2+bi6pE&cpuddtGjp#>$-I*UmkfP&?l@_SzwA&Tbx!o`XOQ;@;(JfHf$xxo$! +zzDvV|M_b1s@LfoB$q$6^!$w%@I4FbXk?v#MaSK0FRY8zD)R>){&Q+apen*W!3>rCS +z1?M5HsT5LO`xSFq$1pEBzWJLh1{Wo29Xk)><{I5WrYIdS^NVu6mo-=nfk^4q@KB&* +zIYEBg#18B=$#fppDhB4;-)^|0^XT_dqmReLKYziO5mL-1?OV1$*frYb#HdTk++Fgo +zoh!c~4R0WKZ2e(;D^^4eK4YDX92n*02y--;!MUE}f|Cr2gBqRW+{lmvb41i9GpR(( +z>rSxY`3~V#-_2h&_col27{P=XMZbg(K1dwKt6r7{lz!h;5@p@=D+=poaGnZ{|GvY9 +zxjp2-f4$1WNzy^DW+kt(M3ap_7o~<)yhLZaT8Ye|Ztfu16?9d{9l7_7YKq4##L|nf +zmoV4%?`S!ruUn+P%=a{MkvN70GW}9P(Cbje|F()h0$ze%%g5vnHzXvzaepL_J4c(# +zaHxURtVi({7QYb9^NS;SJjDOP13}0uwJV(gu$ORtFHA_=a}Y5CuO1H0q%XtmNSFAy|Forgpk=qo1Z)Vm|h!2 +z=JZ=9;&s?2E{(erSJ3$qtmZ;(;cLlBQs}%U=w0S~$|Vw%vv#tNNU!g%>&L*>lv +zD`9D{roGXj@NNu4`Zv1)wC$V%yT^^5=A*|7sBNYTV6>Na +zbv7S9L(7k!N2v_RUqH&iAfgY}8Y`2lSY09W^>c}Zf*!@*_r=ft7f(e#7^obrn8C4A +zt`2>g+7R9VX<#K#KHJ&df||>%!6xP`G5iS6aDVCGD={xp!}q_Pt5aP!U^tLI;p$u8 +zDACxHCy)HcwSPU?Yh1-du?yrt^yrWu7%I*|&TF;hD%nrG>9h0OFd*%Cz56UFU;b2B +zG0}up#$6q<(Kbv@NM9jt4Rc;%sWy;bk>D2JK}L5z>87g0142XjVJ{EN7ICXlh7nKn +z>gA4EkO&i_SVv8M^lsK2Gl7e2owp&L*W8I`+zgw#I*_aV+M0GkzIhSWM~thL3uw5m +zPMJ`z>nTfpaXR}u>IVfbuEorw4&d5=M35tCGtrn!4crBqb8)^e2*6*4P1tPa=NYXS +z72mf4XZuZ!hD*7U?$$NNJzD;v9Ws_a$ct`Q6#$H3Rv?f*9vW61w>_v`F>P9``Rqj> +z<=n{8CANO*>d2eRI%A;q;5^5brWOEO4hs&0x%yQwyZ= +z#;vi-BYe@W&QQkpWzrMJk!?Y_wjE@)`p2ygo6Q*TN_NxnC*cZr>x5_#^C8-6H?+|ERnGJn9McDhK9g+YEU?8wpU65?63MQ+_ZvezQbK +zun%@4THAf74!x|k#BY}9Wu9rI<M8>I#v>Y2~Izg!{<&>1qu{md?P8}X_E%MZ60Apf!|$ctS-~<^%eeo96)F%+Tw}k@7vlL7gF5E +zMTRvTyQ|x%E=tI%n&yj;OtS7e9rH-8VqvinGmUIN@FuG +zBL#BrEYutpriJw%h+&jRH!XB-H1Uc=H6OKch|-u{_)XU%8}AtpoN{yx$2fyH&V&Zh +z?Ae_MzxHI6u3HC9lFUG;2SUqFwmBmUUm`YH=#8|T^Y%mG+uSLpRnC#?$%z`Hj+?lh +z5!JK2&1t1sQJdtQOCpmsV2_46tUUzuErf);KUt%&_lz%il5tk$zxpvtq(cYVpgGDi +z08i%pIOeg}wDn9#<Yjs*9&gG$3YR1Z;#uti +zU?B<@JNuL)uqwC$;gLr_H=_5J7@{4rZTttpGgCfS=BI^R%J~B-Z&av{R-9NmhxYL^ +zHJw&JlcmxiDCgjIVAzO*{KHztwk(0B=8FUF%T2Nrn(Umm_-xsNri9U%l4rLeq04F0 +z1JdRlhYQLIiBHl)7v1-9_}NEAblzNVB+w9fcac@e(Pj3^te!mf+{OOl!kb__)v~dPyGyF|9yr`*=hS-B?tMLhzidK26 +zV!9CeUqA{ZpZapgT?L`{A5`UrLk_BJREPWHk+oEI+u0PbB2Bs2cNE*U=Z`=HcPK)X +z=K|XZBsk-g`MthbViBe&>F;lrC?PBS*IWX>R*%XFayRli`4FTaWk3 +z4%pBXCwNx_Q>pc{h=p0j(9(>$v!cSAEt9Rkr+bv>ohLv5mkMJ4-zE_ox}C`pbnAyxB1*vI +z8L4<_3$dd|25|iw%MER4Y{ArDO`XaClrS<41vYP8hlWbDWc=Mb^g$t;tf`ZZ +zrL%Xskxqsp(GdM8j}#*!6^yQV3m6$*`d0{CO;Ru6uqIf!h1j#$#f$+zu}|hhjrdGI +z1+Td@jv8_f|PSk&yUHoyn)v3a#;YmVFo!fes$-!)m6<5H@W +z!m!jD4&K7!lR6CTm+iQCj!c0!qkhYrg-!e*q#?M`Bc`o$m)u{Ej)f3XHIp2Rz2dz9_^|=MM +zw*K;chEXb;8{b%shb)97kooPrHv7GyJ$Q$flOkF5t%)#RTp%TUA=G&Hv*pmA4R{dF +z2{2#jd#TKUq%`}uS61C*e|@Cx6-SQIWc~VfiPQgbiFW_XC5|kh>i**r`5`$ZKrH|3 +z5+g4Zovq>trs|uXl+=(M|5RTL^IC{ya)oQ(PTVpXYHm{e(zj`i0ZX?>FuY^5Vr4EL +zPs?%R(cu%;Pgq0_F3vbOF-rf;3#?#@vaEm33LT~L?o0p|-q!Qt0#8PO1j&y--g7${ +z8q`oLAm+PxO(7E&qGP9fX?%;wg`~MAS~25LIvtJ#+(_ZEmWHrVfy3ntaxeccmMC2F +z^_$^eERmsv+34DpheX|v27AGwi=4w(u&BZlr>3;!u${D=sy#ZG{LhfE{}a1zL0=k@ +z*#&7`$$<$n8Wvum-yB>303Xo9XFg$qaeN{B!8{$v!;*1)>z{DJDeaprkLG1B&(=8( +zc;%IavlJ1fl>P}r8VGj^!0$mr&`@eRL826g@EdFh-R9)VK`r%D9vs4M{pgs_{No0V +z%UB|csBzbOk?FAFtG)X}JOD8z=;so{Wiu=K$u`jHnK1CFaaQvm`u4`)`T5~#pstk3 +zU+c_eetG+xzx)IW7(llxlIX|u5Zj9NxW`}euvFK$Jn;)*L|Tqmv~F4SxPGdgZAc@6 +zok>dZ{me#?>D-xO+GZ|mNI83cD&{y9gfthJSXd@P2BBr(OKHRccIuVNA0G^}z#|*q +zGCJPBW)CsMqrXNJdDNOx%n6qvP)R`;qruqo7_Dg)Mp%DQ*{s5;TXyRrjuje74|bxR +zu_LBN*w=N=IkMEx1)TG@@ePwkak1TYr~6aNulTB0#D1_)t_j^>fWHeV`nK`;bL2;U +zHx)-s3)PfWcTf?{zf^@e#36)H|M)PnpbP^bH&x9jLe#H-K##6s&}c3-$sf-cqv6y7 +zneF`7qe5EQ2f38}l(kJHU=;gC6Z^+;@%{%*#M1wN(Zn)giqt50`M=U!nBb2oo|87> +z+#Bu0bn+2m8_&AZ#s^Nd_A7Yp<39lLyq*!UHy~=Y)^tD>P|+(n_JSp|Fw_ZZNkg!r +z?CQ89h?=FO!PO`&_#C}@h^=wFYkZ +zNo&|rey5w%ZGQ$PP~Ha!QkV8Yif%8wq%edaW4aK(Wg@oQw@i$+kN>l&)>J+0d`Z;% +zJ2p4Z4jj)4p0F68umud<(u~Z7fR*|ovO3z%8qI4wdDBO_i?d&KPIny6G4BC__&ozi +zH_C7F>0aPI{2fqC=srvIFnxbJL%9ASvKh7hT4$}Zf}i`K*oGpZ5HRo^HQZ_5xpv;3 +zPu4VDl?K1>1!ru{=W8B~ZfvowkzZ|#RAS#CR)efw2L;{jUkotKW}XE|0J$O?G#oM^ +z^tGFgg3e32KC*p+j3{ZI5k#M2FnY$jzUIPf$_siZ{yy#D^jj;?xfbZy^9iNc`2$a! +z()7lmgXsUW_}?}W|GzfT`oA{OVBmk-M2P>`#0lVkY~qUIKQ^(20obUN@g#?Z{4d8b +zuS$QpB@`*iqn`&o>h9oP0x|J(o5S}@c#R-b1T7lDkM++8fa;<>$rl9I@ga6RW4ihW +zXXo0!bp7u)mTiYUy&0IQDiiWiFki{rzAs<%x=&XPISxvzIWP?Udz+EeAw#1U6U#(8 +zQjA63PIyj#frNCP2P`!n-@jlzUZ#O7SGr9NrY7as(%G%s-L^~y!c7g}t+t8X$2Ljc +z2t@$gk&px?<eQ2``^4~C5`*0D@<`1S&Y#J|FMY!aAGGcS(Wo)LZ}F=v6E=b2ew6# +zzqih;dQ2MXou)ui#WfP-F{;`QQURk%&_<}n)5`?*3C?l1t&p;#6AikH!R6k8MKoVTntY#A4YVJj +zvr-|?+9NHQ?j<@f2Cn?C%QAz-Ks?&nlnnnZ!YXw1;Hq}G@}oX8@Y +z2Cbn{LJhuFtJLmFGVyk+ga+R*QQ_EvA25$m-L#32qf8fNR^vAencItc4EmPj(M(@i +z;9bcXQ`R@~djAhh1o|&bBp3OvBRaj{gp7HNTAQ`pizhjneh)KowCSdniY%h}uS|vq +zWN{ntGH9H$;>Q40;FCG2`jHdxM}ZwiOJLixx$RuRsgB?Vd(xQ_1C=mx?MRHU#^W=A +zyjQ^dJox^S>JYTk$g}p;Is0mnN>vih+@|j$YLuekZgAb0<%mKwBF8Jx6CkGNttdu> +zOC^mA{1mnDBO`r?G`O|Jj|O%OnU>GNhq&rL#!g6g%m%M%klC(Nh738;F7J6efkD>q +z{W5DUBRiUFSXBgC$g@?lO(yUXZzV1-80uz(bhuvJSDt)e=6>J`?E(elT}jB%NGI?m +z9wN(#$8ojQ>n6%C1e3|#5H3%>(rPXydO^B*pHK-kw<|kR2bnm<*?YpJ52f0(a3r`6>58x9Jz{N`EwE +z(ty+Zgo4OsuKec>&sG{uQkDdW+rQX +zDVLr%-H`jzrx9XDyeaJ1bQI?{RPemObDb=Gx=s5{6Q67FVt!1g?;E4neHc@cNxtN? +z=-bB(_x}IbM45S{jBlGrh57%ri6=gVyX#|)BE+SdzaV#NflFA^TG)R=(tA=%?91G1 +zUFjbdr~Ltf&TmSixrw2D9w4NvDEb@^17N5kfIl_vUAhk)9ie>Rrnp|ZbR_YRZ<847 +z(K%D?*S7)qoQtZc_s7IN|0EU{Ok}F-|p>=QRS>xp8CwSS--cH~o^u^7| +z*7Jx2UMyCLA!8rvT>l^+s_-7a+)~+1q4`4s!@2U`c~PP+Ly{eCfL4ZG2d(uDgS=Uk +zrWO3LS3mm6at%84D8!4#=^FBb!nVqtxN*V_Y|@kw(q5|eK=0?REu=|6lwtj*7K_u< +zInyA%0-=oq#QPf|uXAwN)ei6g?RJN&ID(#`rD9asYGXEimwiX1{arLK%eF5jKozuQ +zR+O7`VC8pRS6ULeJo$JmlIsRQc_mE$fYg_P7L!$MTsN~q{E&uby++T!zeKnu%@}4rE-*DRs2j;t7U&6|>G3F+(7R +z5ZIJ7s6tCR-yqqf4W4jScmpGFDfW@rFYSR+n5g4zB +z#L)jm;wJl)fkHGfH)fK4#A8>|{}@GNdyAyNa+0HXV>xDXgu-%|Ym50(4mEd_Ya*)e +zrC!q4*gtg`%@b|Mqr93g^BzuKJs<`+)zmhee#e?ELk>UFPpp~x0Rv0}ZtGUnS6w|W +z#~fIjyLzP2Jh0E)q7*l)IGWiu@**l$4P`4Vuy;@?=b`?z>kmx2za1gc(i1Lhr3$`4 +zRmt`Y4kk$|GfuG}?;m@&bO2Uq5dp(@mstwC2TmxGDnO<};%n31dbeQvlu)@zVsSLP +zduX3;vCTyohK+udl%IzJH%dgIk!J%xr&lBlCVPK>pL{p#>{NOT-ZC-?f8 +z|86?7j^NGwvWX2DZ`MEA#K5lBwkT%9_6?7hU(9E%MF;-O4xub`!v`O7F;n@?;GY%c +zmP$NcRwcK>=?)N%iu5mi<|#wyfXX4P^{T-PWkEy;_w_rj?H2ziLHxdDbw-vQ+BwB; +zD&`-sBLxi)y0GNc3H-M4Ae%;0rZ0WsLLH3MjEybg +zsKY}uUn}M|pX6qgp|$&Z?9D9t6^be?UPCOz#J7kZI8 +zVBWNlxr80m?`}EoHc6|XKOa#OPN>1`sZTIhB^+56o^&a1fEQk1m}&R1oqn1% +zEeU`WpzH^r-)u#wJm}Y;1v^C}eaDRM1W@>cjWzvO#A?3aMjaQFORKW0ZEBW?z*%Oi +zMVA`GOC;BHfvbCS_7ffO2j+qLdloAELFZ1&Hk(wS6vV51;`Af;tYa4t0ialqs&T!~ +zi$JnAAytsDzR&x@GjHfr&g9igt!kD-GKo{hk+(CC#3^cQMp4%y-7ZM$T0KbYHYZz& +zQs^U0+c)v(^d&93zq82pcNlnm-Kn5j$;&0drids;B?&&UAn5W>3bES#0`X*DWRe_Q +zt+T&|GN{67rqQ#6u213Y?4KxuYL?k7afn<*f_y!8suFo4cz|L7{|PKchX*J+?0$j| +z3G8(c2f$D6ODPd$q5L%G6rQ3!n~`sB4)lq!=CjKWwT-FQ;jr!Y;lFu>38Of`gh%k) +zI58MhrK_EB9}`aRzU}=v4(r&1*G#tN^)>b1>6 +zF}+U7Syn{}Z=btW$KKtqt(n%#<;;o!`Nxd2?Lcx9_}BAGp~mIR$*IJ#EHoxT7?8Tf +zZu-rDb~c*%1$DA<`DP*uMM +zV*R~~2_wXzVB99H@HA1=P1p+5X_mK?F~xK6Z7FtO=O~RIQm~kjft8N2PU(-FgP#*J +z({9Y6d|S_U<1kKd5v%bEvvHoc(A)zBK})IDKVXgD>Izr1OYcduK +z#!K$!J^|QcO-LJ#FV!yJkSZ5FfpA8c(8i>l&jl*$2J@uIER@~k-*Qzs`=g9;S<79C4GCGY2%E}MBY}0dNoNc!JIQ!Ehi6tbcPWM}Y?a+niFs*&gC-2erxaqUrS%sCm{K()Gl!R(_cxo!&+hF9 +zR}fY1!aNhD|7{eP|EEzrBK|*(qBw>Zia#*QKSuF=g`?$Q7vKK(x>VP?f^Oa*(r}mf +zg!3v6RAl;Z;)-0pX1_)wJT$!h)g+NXs3Dd|)3&(lFX5B=Bc#>Wf1Mw#0d +z%k7oUR}tI0D#mbokB@Nn6(bp~#ccFp?g*28V +zq1Ei##`(j&0p1 +z3MqQG6~($8S)J2|z0)diDo`NTnsdsy_}H)tb2~Bm8^`wd64n4o8O>eNbQ75!Lr=L*r@KQC`q~_|%1*HCTF;6x^mrnLiPe)< +zYBrD}$GgApI>tW#_9bEPqMuIu!R?blgi|aYLv`hu9<(>`mh<9 +zwnk0Tdpq(3E+2W$WNn*=F_tg9w6)Za9J(x&C5a8W?G~8N7*WH?i_6xW|05K!{;!1M +zq0$^VWM{|&ma|xJ$E1?a&bBSd_B-8qB+cm!EIog>d_BIGCn6nDxUu{>_->h@rM>Uq +zFN;|4>xl2R;z?16=4iuPoW*!#Yce%HbXk<$wc20-uC2+(n0TMO%VX058D%!bJceZ5 +zO0WZbUXP&otio{}taM^F^_8t9C)69pj0}jo{xF#=rZsoy@q-hmNsNOw1?ML_BP(2R +zRBfsP50V1{W$g$A>!B@MA+5a;?ov>F98{TzfPBRyHpOmFW80PdI{iP{LsJ;6z2O&w +z7)iRvJE7md=N`f_^|f~}vIy~7J+6K3O@8$PF+a3~ +z#O%7MOBzwR5r3vrM((~gp?Q-v8uGkz5}o0dnj{cpuu1xxio=%d83ZK&u=*9$FHx+xQ{x}>{SI9XiJT(W@Ejm&>#{q#2q!9PIHHud@J +zb-ZCrPgDw^$1@{~C$XaXe-cIaQmw21K@|Hq|2I)oZq32|CW=l4|C1=t-2$3fUkUl%Dpl2oKQ`=7|EXhS(>^{Y{=VO8 +zC%va})QnA$;0LxAiT1V~Ic|T^X2HtJAv@$fNgYs0(DS>cU@C=X7AV@DoOOSdz~VM= +zia}NH%82ojj9i%5=e+iPueW?E6_r8^XPMrEC^-zxJ&uviRs0&(Nar`@o+Dm@pR?A{ +z1l*MTD2y2d+bW*IitF73UUo3;R(0-@RB9q5LBntVl-E?Dq$5Rseg)L9#U+7a0mPP; +zp>>ZoPaV6W`2%x}tNSdhAZ!~=FJD-NXGRrTThE>vx23dBGm2m@v13pA(+4K%@?GL# +z$Lak=DGS+3e?!E3w!5O*fIuDLhnS}dc>=Rj`Z{uG>P9A0I{Cb0pBMCcW&Q4Hc#l6Q +zSM`YAB?Wo0ui~!)YrjK#A%y5t*gCLmk~`#-+fXZsE68oY1%84thk2HYY22~UM1Xqx +z&Hrd?h=vUo4t}|QgCC?JT_=SKK0o4GOkO3g-s(Y`80c8bV#S4SoI+l3??x+m`1##d +zJT5g<7HJR%@wc**Jrmsk3W@rh+nMH9-lS&ThKaz~Q7EfVCJJi&u69IK)Bap5Rupw} +zs1lGW^{Bl>@(YYP0C(Qfw&T>MAO3|K@+ddQy8XnrZJO_VTd5r`@YXmHu9n{@P=l(k +zcR*e1LNtv{S~b;>3>U^M3;c{7LmU~0z_`QUhyZonDv3e=oRij;X}GL*oME~YLn()q +zZy(1g-G#;WbFYUx$O1W6Kmgs0o{t*8z$<*B-ZJKCZgf6Bu?LG`hCi^gBQ!&46kMqy +zAkW8ssENljn1p2fFQHz-XwIZ&2FI$E5 +zlY&2()h={(;|QV~cf|{$lf0u7qiWe{#&QT+Rt}#wEepn2X#0`UN8dClcf^F4Cb?H4 +zM~kc|hg5w`MjQ)mknA-@K8NlUvMBYizy*LL2C!;&*FHEeP9BYFt(4=%29$Ws2rB-K6f3O6ivNuiZ@!TtI=06zn))+t +zG1YNI$_Ak0jKsK%%~JWn<+R&>kmATcND;1fzgtigI1~UY1UUHm#A#ss9NBX}%NMav +zWDHsyToa!hxCytiqx1yv<&hANxwMr)hdV&oQ%#BRiCI{dCnjPt?3Fm??>O~Kk8Iw- +z^c&q#A>4lVAoOIVcd;B-5#&u$n8c+t`Xa9dy5)+F(e*fY_6Y$;72U!@GBG@XtZ5id +z43nvstxY*3W%Zw0_bpxD2PFN?S3~F9g_NRU`C2b +zfnaZdls#lGYvwUfy<=uUs;Y`eEc@SnVNMnv+n*pi?cSyQ4Xq3(?WaVsnIxY*iMvB{ +zA`9XD3t~&dow2G_QhQ!^eEJskP+#b^MC$>_9Ze!@KiGg +zmS0h`#zfrxM~_9}z)?_vDCQ&?TuV7^ +z$-=E-(A;uB?k_}^%bZ*F)1G2ACI>?mV|&pW(FsC6)K=ttRha9gF|DR27WVAR9AnvZ +z*tX711N)r88_q%~q{P)@DhQp+2hY|tLiA{Gp_MK--?{knOFEaH6`$JzJ77>bCnFfl +z`K6)znq`y{@zycf8Ho*_rvn_qtVnfF#~`r4-06*w9KUE-Q$37;G6twK +z2d!Rn?Oa{J06nBq6I|1uFDlN#(p}&n_%wO^6S8D8Z%l!A>UPs-pPvZB4@lwSScxnj +zAjfciy&I)+hPBwQ(&a{f{-}ig{W3mgBUwHc4WI!Vl2AV-z8P~AJafJH*@ZjHEP=VO +zfHAC_GaW43WA`0ijM?hT`mQ%>{N7H_#Y)ko*Z*)$7 +z0XmIHw5sQgTfsI&+r!8_;ZNpLx_H9}ZP$y`9)DON?nf^Nn7xW`hJiejxX@Wlxe@{~z +zhz*H~W*K3V3ePxdO$lBKtd(fxwS00fK~6i3!NaQ{gb0aS%9|Vd9`YYMXY}>>$!K-W +zwjg0Y|I+t4Q>AImPxASxsiRkX{c!T4u3?8!SSZ*?r+qSIL4cL#M6^DiBMq_oCUF8O +z>B0`!Wi{#O9=EylX$O#J&bA|c`??WT*c)7E2g-Mvjxw_KzFv1$Kh)SV?NNf#g$?tB!nEH +z9Jri9;C?hOEz$pcWa*P5q&ly87lUPiYB*ih$+qP}nwr$(ClZtJpf=<1A_dY%P +z^cnpV*0(k0oY!-69WTv^ +z6m%$c%ZII&d;jnHr!|!Q%8GIV%P<~WKEtJH&Ek0m92l}2`|A|e|@bq0)FV2?nn +zGJGA4U#i*TT#coZ!34SXPy_vyqB=Lb%JVq^aM}Od0?OJ-_v6lE>aiU0NU@%?ohr1O4nnuo|2dDJvo7&Y>rQ +zN39S7&u{f{a_Dxz=v{Qpg1=W>7Qb$&YQzO0(w`KL`IDuk)Ro6eRl+q6LTIzm6s4d{ +zn#iEL9JKjH()nJn~qk`I>+0zx5?$>G$pf$|)rHmGJW26_TF&r7V^- +z8taFN9OXX9ITxqv#>94Q9hQhm{A3o#1i3_yu~VtsL5{pRM3c~};o|XBpPx9;Jfv^R +zlR{u5$^B>r-u%*#B2iDslxL(TAXITt;6XUJ-ytEbZI8axA@$<1i_aX6(=@TY5U*mZ +zJ6VS$pBt#F&QyIk__wk4ph9~unQK;S2J+Z=zj!6k+R+<`Qv#XDq}H}R4@k>pTY3$_Xe +zqJfa9hsU!7sJH!iGq-GDzhVc(anv@MsU&7$4MEuMFc%O}LN2w%0-xc5VNgP!Jx3O3 +zJI^)c&~|qMQ$;o()kO +z%1@%B?;GCRiM?1v_UrM}3VF?Kcy;MFHbG*qAQ{gTBDsBsi$zS!fm3xAOgT&o8+vns +z0@|nHS`A5N8FuW{i}110N0FDj%eEVU-HNf6 +zQbqJcwU7qNgZiRIpzsY7f{D|!pwxCXpXlp}H2?alm0%BkxO<5q*>V$@Z*7=8ztULXRuc|Ay^wpH3p+HLo$59_ZfR!OGeAg +zY7t8ZBF4U37-IICyrcy12((j~MQ;WvBHZG3J|6blFJ{o_iiImPIwu}*(eeqM02e~) +z`6k!GIF%+kH>?7+jOQrdb6Yd@oKNcY%JPUXCCB#Yw2X@wVQO)H#HM;%;^Fm-*11|g +zbdr@%XE@JvM3~H=8@+9)rNh*-GS~Fz>PlIQs +zIGRw{#QFSmRMx3Ib^q#yvd7bacyx+?SaFWA?0?6Ka2nX_5H0^3R($$ztVsNW6_x)N +zR)lQ*AFOC(t@WEQuC->itBi&D2P=vKT8slF|HF#j|36q!=D)Dw<_}gJ$L2@!wcc +z{lBnc(bE43E3(_9L*uZcXx*MEvR`2LV*>#=$6<>^W4D?14YD%dD8n)YsgN!gVUlaS +zs8R}pmj+{TdHCX-P;W&NuCIeldn6Q2JGR$?wyR7YGkbQAy6`ga5XG<&`J;Q4A-jUL +z+d0`7-2H1Vo+&&-%)wV^Jfry6*gdy}(f*7J#P8y$b_A8inajtA;`VE^+k(w&$z=?G(0P8J*gk +zg(d~E!18g0OO;G%&182se;y8Bk6^iTUYA1XpAV1$50%td%KJk&^o_FVqx@U-`O6Fd +ztQ0@Jv7C<@YSvUVpE8JG+rQWf+3hEd6vbO+_SNAG3)J%^Zz6*-+PP>Fd1+6jwXlm$C_1%m<8 +z;8E1pxdv5H)(oZ{@NIN=M$Yh#M|~sK?!#M!&7(RGLVS?fBnLP=5e&XgGS8)rD()ka +zxbhR+^>!Ej6dIdla8&Sb)2l8w^5J=~JfY|LLF;#eY^J7??^KNL$tcay#!oBhXIr;z +zSXf;QhxIoO8eK(xOVIR;UMvYBe6pd&sc-KxpH<;?F>%n6j7(dr$P*DDVbtd|^brbv +zGfb!nUVyzK&?q2Dv#3qNYtsTm`o{F1Ww|KD^eG;uB%;DWhIchFo=i5J8o=40OE79* +z^ZPsB>P5*MX9}=fNT4lvgm~fgJJOmb+$Hm!{tM|WIFB)r-IDeg%)sh>Qo()|7ot&& +zzLvNxG7j^CzrTo{;wJHFG3U!nm$nI7O+`M@6xzQcM4xfiJZzpDYVfreq85+Okta%(pwhWoc6K!z; +zIyN%>Go6KW9AdG>!wO$9Wr>pOE>*&htYrK6H5>UO)%owdN>N=tP-mT3*B^4bSND(Y +z$bM~e84ppDG6FGljtpR9tG;gDY?#pp>8-7aDxcb#AHZXJHP5*H%PYQx##DiV^1bgy +zWX-^^yI*R5q@HzgbJP|Exgbv4xMBwx^ +zJ7(adsoH0*V#Ea|kKydf$4vd=9A1^nSEE4F2K3xzs2R^;n;bLKnVV8s+%2^9O%6Nn +z*%C@=PSX=^W{o|t;0gIs?7GFBGw7U@?%D>H&&N+A +z!%yNqphZ%pOpw)XDMBhfx%N@#-cPAXTIaJqOHMDnp&>t<^J9HI<+7z{AvbW-HJ0N_ +zrriCMb<`j5c<(l%iYPk!arWiBbxEe5f)ZO3h|7r#qip0%9YXupFR5Er86Qf2mIy^o +zk)e#ks;~##YPoh+LM$L2V4hS_3MSf)G5FSafDGy#SciPrN(=PKFc6Hr4YF_zGY)kh{Oud +zSh#95g~AStk(;!Q>ucO}-Syom0V?CMr-DS`1I%@-&@s&9R7J;e2cOZKFy`+5{b?vZ18sW6C+(bK#A7v}LK&5% +zBxB1IO@8$Koa$=^u&Fz+NxN9uqDb-`Uw8SrvCQgrk!CH-u8ncJ?NRK+U;)q?yY3h^r{CR#q&5D4n@T>CsQ5mF4ECc?sPDJ2ei02@q7}zhsVnA#ZFEY +zT+{Br29Q)RQ<;dd_}k5FWvXk5K3_1um-IW(L`>-m+KH=yUc|2tCz{Q+^W}UUyA6lb +z{iOOO&4S?eeebG@kjJE;0GBu@nT%Wy!OmsWe-|znYzE6mbw15v&+5f18pZmtQE!;ZF{G}$JJ?I$a{8Lgam*f0bQtSlfeg98MF;+s)9|#M|R0sf# +zZz(5=$Vn_FEUhRgfv +z(AZuZK4q1|5<+M35!7opIR4tC`vVluO{)y|Ti&qAz3 +zW(R2bf$M>arIg@eB)f@KZn@Na+^nGfw-m +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 +z@BI88vuJmunv$%>P40f1LJ@{$ +zhti1io2+?y(n?duSciZJcS5Tsf9e*S_VP)b#=WT@?Zk#v$G6HoLv>UZloWO}GQqu= +z>=g}(M?qw21mR$=a=;i`zOwM=H%AEX2~$256d3|yosytXN(u(V-LWIY9@BRhZAj9T +z0WT{zoz!S@&2&$Y*eQToo2Mdx)bG2D?J(3z(0fjHa&#Rv<9>pP+=D{g3+LTu?6#+a +zeD`Wr%zv13Hfw{MdN7#8D;(drr`KJnN+mmL2qiv>9Cd?mc>^_R+f-&E?kkA6dHC)~x^##S_BlfBH~}&Lgi|J$lxu8}`IO +zi&m52n@5s76xmN^2>!fIdc+@dslkFrQH`f2o;VWd$%Hl*l*M_*D!SpoGk&fIZr{YE +zYzg*QCOO)@$4f%Yad?eSZc|}$LxPq})OklRa3+x9?ov-8)6r(PlpGw~{{X~6$+k!| +z&x02^!85njzQ;{l%F>q{s(m}|l%|Cuw9VkQOsAEd{S*6I&wq}oiMy$ +zWKC(Sy6YQPC$0JhBIqJ{3ppq(KF>%ZYN^>+JcPDh;uw*umddlj^gR)BfMSNrUZ$gO +z_e4r0g~@>}@#+5SJn3>Juq$^03(Tx$1#He}bvftnqCKLs6X0em{-5LFG^R~bu~S6h +z!-zk{4{%uf3hPJ4%PGeTV-n)bjCoR{2F8Aw^9Y&jJk@}`@@^(qA@kdZV9 +zbK>qd`B$UN9Ae6TuD+Q4}I3dnQB8kXRT} +zaNKQ`ww&x0 +zVM5D4>8Q^p3GIn30TD<_N$8NP9vb=B?ofBF}nXSe7 +z2T9bQjT=#21fQ&x=Qvwxgs~1^(Yb+QNn`zt&r$Uxqgd&;LhqH#7CISDoCM$^MSd5i +z^%Ys^J-6oidaWYj&Z+{r#-#FwfeSntIDE!00JH*%a5k($Cw#5+WabLW6g?Hv@*Ecq +zpEo(wIuWcFrnd@a?Z8-vlekw&B`_=ZADt>Ny)QpCGj$+xxz>2Odo|}t(c9u3q;AE@ +zve$-8gIzBUdeX;b(GW2Gy#7d<0|haA|3nFwmwoForyGcH0c)5Fxc;?~j#!9hHi7yh +z9+k1EKj8lM;tE}T(v2Pp^KeVcXh$@WTt$KtLm%1^miS;H;}=f~q_>-}Rh2SltI|OQ +zEmGk@+^QH35)+} +z%@aE1Um}=@!{rbZV>{>Nn4S7KOKNboXf$-!4rL~eW?`nFLuV{R1j0(rxL4VT0mA%j +zsGPv36+w`bu83JlLFBbSoR^PN0tK;m=(XzhX%^9^cj=uh)EL~}$lGYvYL9_ag}9Xv +zZfFCuHw8kVCQGa1Wl>La23Su&k9BHN8tpg2#C0a50+k+`pIV@`OWtNr$=1wq1;80}9l-1>Ln?X(YI>3(yJ0W*{`{>)u-Lc;p# +z)6gi5$~ymi2ytHjo@;IAa|Fd!5tOr3!iZV?g`vkMqaBVj&vbcxsNLj#B(x-AEz*pF +zhJ3aXls_dGT&lc=m#6DZl8&)sOGR|}0X~|?7v<#!2WrK%fqk~7Em0u+*qH>c%sL!i +z#DbdTa{BiWB_G>(_@cMUEz{Ne=iS4F@0z8~arI$u$r%t5T5E@BpHmnLTFJ%@%O@{4 +z=&YVl{2agKzYt83thP%!XucZD(!_j-<44 +zABj@&K7a>cM5MNv|8+{;_KBZkVskpM!r72BZD$Ta;10RLe`RIaIkX%Zhmw1~w +z3^8D9IAm#uHoNkKK0)1`#S-Dzu2k-YUm=i +z=L9*jJEEXygYT*@Eytc+0i+5Ee#Cz?v(b3WSH8{>ZJ{*WIxSctHZ?R&KB~8|F6zh= +z_S~j5Kz{+Cgw>d3?g|iY>|!VBnwl2B${h*F-yme4TlR2^nnK0@;u_M+`^7Pg*ubV> +zlE>Q%S32(!u~-v_q_n72856w~2qoIY0NX8Iz{t-MGWw-5_T_PFVQB84Pc8>3N8R8M +zx*b+0(BKz?+1UMg$7A>U$|hx`Wl +z<}U30H$XIf7c%ag$cLXW+`-1lG#ebDfOpY&4%M4eX_D1si1(s+)&kD9+|p-j$*ds{ +zq^S80Aip>BPOc3w&_dp*oLRdI%M&CGvjLp5zP5gixb(>HHJlUY-*Dl5L)WC?I3$5k +z;*gj3T#%33Xt_+yTj9|Qyt48yLV@N2W+If7<`rennDqvwWN?G%%r_a$nJP{;MB=M!l&kw +zE8{I}Q3u+g@nXLUq6Wqu*402-EPJ^1geBI@vWTw*g8YMTo$ELY&A;qfA9e-oy4 +z2vQpQmEccFP0rV7c_7+tnFOYG&B`wqhL#$9iXfSRYF<}C-MA{SZGz2Kh8pgxMc8#d +zs~}ATemw`|;&m`VOylb=%~4h#*H0jDS)@HRO3DZ&u`o2l4dtC*5StkZzVQU3`L+AK +zkp_}w=gk>feo$zO3@wM1YrAf|zlr{Df6#=*>`wNj&6s3QY8i00u*$NV5C`R87 +zUyeQ_+@nh3AR%8`qv=DE>DTh{Im3E5Z9cK=)X_22x-RuYuht)ORHboF)B>6}W#jP5 +z6+vqeQm6<_dCUdZVOg)n;oJvpC|$&2Oc=+tb;3fw+@5>vln(YmlfZT{s`SavlO)N0 +zP>=|L3v^!oO_gIn7Odt?eksdYIE$esch+91(fXy6WERLH?=lI(`hQ;09!y&$XgmRW +zTpcm6lKu0ilGqOXJ2e}0{EZNMyMoxPq(dKqiQ4=35_o?x&3m2+k>4&wI*DZ +zGO4(b>dKT}DG8}xBz~{4^M)h9ruRLf*5=6k;97Q_juE)vonJsPVtoo$vU2rrtip{R +zX^14MwPB}md^53-SugSZ)@1Wt%+W&>|EVP|0`{4>hqGiQC&iAWNgG^^i*O#5aCL!0 +zDcT*y_2QJ2B&o0oLlcV0W=<7%|I`h;z{Ft;PlW69!IgF3$yn}stwV6MuKtjEOj*9< +z^Z=~gim)vQ>Xu8QSER6ZRKvrb%BM!8YmS%oz8it)M8r6|0c}X%>q=wf1z+ER-l=41 +zy)tWEBd$mj7$R~$HkEYmV>a-d;aQcRt2C#&Jt}j50!bZV_IKsY`kZ!;2io!&@};)T +zIO3*(D=(3YGt%#uW~ZWG-@^|M|2@_^Go?=rJYp+3qJrRPRt8z1#(-O1_9ebR1W$8m%5i6F-thdrZzcuaCXdpm3%gm? +zeM7jod)_JrIhhu8JBkwK0B!V@FZX6+LY_n-5FC~K>q~%Kin?hxPR$%edRAD4DjXI*Tbt+?I4cAzj7jBN%O(7*zp4E=3X9N7S=7}p}1n=rGjRR_V+`p7p&dA +zLaD#HNQgmhHnx3A#ya)wdjs +zS)mDwT7jFD?XPP$I|W{GDZ6ZL{J_tY&Yt>%!!5gS{I_GMtrTvkK>9Eh99ZM|dD+}3 +zwhR@&=qv@}7`x@{ +zKd9z2rPLnnF9+|z!}bM75wFct`OGsc!M1@TWPgQ>K*Yi$8M*}dSR3seS?ayicvqHw +zWgEw4>eNkzlz<}_b-|a7G#ZJx3gVdbuxd*yIgTpcv4GYDmRQY0qI&l3rxjC}$cNan +zMq$h5fdhr-3H$Cxn80dp9GTeTzY4-(yv7Dz*ckfyeH^HUh&34qWT2IW? +zr(cB>1l~)-q{{42%yRWk*LDl5>(~mPI&PUn#$yy~FI*fEUUq_fHdf!l1Z|K0x+x4mu +zx9u?PWod2xt0g*2Bt!*idQ!Iroax*Pj%4o_ti-mdgYSI9S2gf*vEj-&ww_Dk1f#JT +zRA&UXX+wg2S%Hi4v1pjEo;IpBW?LaxzJRb+39 +zYo!Gpr#m#j{imqN`t1;;)mF#nv*}O|Ge>kBX;is7!4;qih%rY#j>>Ji%sYt0JkrB9_1dKgF +z#&{|+>;91ugQ3+yq?Fu;6%GU_oSxnNu|bK6_gp5bu1vmo!J{TOoena4%bIdqrutwM +zNYGAz69g)v%pd-9B1@u&Cje!Lh^LHxSc(nZ_)({D#sP^pzZ4rXo4#{@ASR14 +zp-|(OwuUI5HZb~0m5~#B2;dUdy(IZg+mXw)*XWxL_%K->JG}{ZBrOXSO7Mna!BvQr +zm9&{%b7uLPNM_7hiX2QE&lx|BhS!o?&8}}C^$4E2YV8zHRn3&mA>UzJK`MYE7bVBs +zDS4I^8uHYr8bZ#oUiVpmW|E<13t~lg@c5h{*toySW(!tdvd_fu0g?YhoOl*OgQDX> +z?>Fg=1r2y9g_0h9mQ5W)SXjkd93<=5crf*t6q-gS0IAm-=eEo^0xA$}Mcv1bKTJ)* +z%*@bh+w2&S5UFMgNFDkMJY*Q~#a)vW;V^D815c8>+UnCC>p!34vEdevjLm#dy?*$M +znq9Tuaq(pk{S=v3iHJA$%vuB**{Bo`G*R5;=spW08Xd1Y#%N?h3#7;=$L{PC{rZ8# +zTVGE-eQ3wEDVJs&xp#A7cl=ZcS!|K{ulewk&0!#{lod^;^}*MpoOaa8l5XOz>T|hK +zc)=dad^?2Yh}01Tbl9wiU_%UJilzbP#`_LrRYeILxLm96F9s^sr@o~UoB6`9CF1aW +zX*i!AFi3m|`cx_g_>q?_pK9MxGr?$8E#Os{klnZgz@WM4LGrI065;)R25j5ht@T}h +zf4@(WZqU*L0>Gqt$Xt$tJj4{?ATe=vxiE+OV_4Uv#lZE8UnBV7pa~Ru9;wPX?ly_D +zk7--pxl)rGga?(b&#hP*Pzd5G443vv+tVfXvV%I6OcO5~&M_~SnbJtoU)A*6AJL2q +zS{)zlMO{jLgnl-Mh(?p4+id{VK@p7 +zW&&6Qg*jtXn*JX6bFg>dk_gu9Iig8LktibV3$nMoTL5~^9rm3;|!fUeiLh{n~+Mo_SVkc0m|C~swlGpz9umCpF}UY31wNmnUWYW +z7X&QPjO6C;s)5ZI%iOz*{rTQ13aL|~krqD+QR3{ED(M)-AD9*k +z*Y)4siXK|TAn7tah4jqY}wbia{z8nDdkp=(oRz!pj5DZa*{) +zn-`YcNq(OCcw)uG0z%%POUFx!^6@Des-)Btsu|I)Ov}TXLZgktj>t8?dO|}>3LKJX +zy}ZQ1hPcQNsk@OK?e|t3yh>5NG}Sn!P{VG@ii^I|DN?!H!b_Ab`sa7u$`LUjs$MHW +zw;1O}F(o=1+k7#wk@dres@?1R&jnPGb5fYl +zdTQkF!_AH$fF~u^EULO~6SC53LGX_Oi2b&~NB!Ox_2DfZqb7um1EN_Zki~>%7?Ie+ +z{@$?B`Q=|zpwZ16rvX}+c?5(bJAS4DvlD-S!%Yv1dW#W;QKY{kCrtDk0{MVW#LNNJ +zs-k1_xaL+8PmO^S3_9Q`@;p`=@HBy{6T0f^vo-%D({3fbtYt^8vlg&`!(ce=pSXLq@^NEixZ2+Xo`X +z>h^wrEaHuRO%-8B+U|rg>O~XEW=y@C;!!=b{zmRpo8Q{(TVC9I_b4|5F?vnWE38b| +z!`}-B;iy6nL19dUZPi@oXl9Y&Buf|#Hg`N(#06M+asi;_r-4g2^8)F}$Lea?erX_` +zR&G7bBEeXD;9JEsN4R3}#KVKvO3+sY>+&vn$BKYb_RnY5b7E{LsS#bNlS +zd!fX;Vb&q2MXo;W%ZZt%ZPfA1YwIeqR4GoxqTy#G+_?5qwW +zxZ205iil%1x_mFYJYENej!SE*8o^1@e8uA0!8vP}9T3LROYH~eTUDaA_h +z!E7x!mV~e$UcA^&Fb5nBhP+mu5g4eWd4f>5q3fqnq4BrgZafgS?W#c~Y9CzFBMPoC +zv#$rZJ%ep3`3yAyZst!PP}vNtGbrtR1MG~229&|h5V^FhDllGZ@Ve}iVcszC(NnQF +z5P#lE^KiUkElVWzG^VR|{K5~^rVWkQ5h*qMI_}$Q+Lfy04R3#nzwN$rv|gp(S!o|$ +z_{{?zJm*G&dY`{Os-MrH)>J +za4j1w1)W3L*n39)9uy7W>i`I8Ny5rxJjNVvWXmPVb?S{$t529jG#@RyzBPkTEO4QG +z=(>f6Jk)#-nHLSuiT`U@zC$)5Df1BCy%``kwMB7qgPEX4(ry@Gx25{{<~T5qyO%1}aMXO!o8Wdw_T?nP7tLrhcr-FM;T0OFT4 +zZawYH#n8LvpN-JzK){%$!oM2L56kGN**n$}P+*YNH;vFwBJ=yT|_ +z{HrA4WCFO#C!u{hg;|D?z7Z_xYU?5x64tu5&Q;!Gg!PrL<)vHHX5$y +zT~9gcLoDF^auAtJw@vi@VfR4v?1bq9rr+g2Ba!2m9w+78Cmk$YVIflrv5;Yq-;L-Q +zwuw&njjPgQgs&U&TueFZmJn)yt}EiP6{m4kw +zVx(DK{zVbhq`ru~AL%6lh9Lj^L=k1ShrbX@9ob99G4t*))%si6VcdZ439anM6rP+a +z9DW(KF6FR;&hvtuN4*81jl$!I!HdTe#J3Fl8j&RTszP+wwaAO4^=s9`nvfdDAKoe3 +z@#VsfS?lo%vOFSE&;oGh=sjBY*{FBq?i8nuAt>kt3jIFmr$>LnY8S032Iie<5TR#R +z=g#cI2v_?j7dfh(^Kj}oO +zH@7j`>cB}t;ES1bA3^9{Q=mWSV9*TCDT{%nz1P8%U`^afhikPF-lON`d|Wa0^-eU96A +z=4CFF@}FDx6X^x$-w0jVfUkn!kW8Z2kI_ZUKTSj~js7faUiEGYQ7Po+OA>4RI%GA# +zUd((>R0a;vra94i?JJD$COkXj!l2%N<-~_#v7a)R289;+iOa-rG;6Mne!UU2%6HYO +z@UHRZeEX1zTVfRQ89?ysM?LELPZJTC3c|IpF$bf^G-9i++|->tF=EK8e|p+aO+uH) +zoy +zecTaK+=@#9hhNOaZ(H{F!s(2C_xL7Vs=9N;ZYN6IGLkJ~S0eU{@&s0Hw|-JKfW|HAoY{_G +zNb*xcp{j0gQDOeYitIy|4{_Dw!(-1TfUa_U7Ys;W%tu4{1~7`Ccg}sO&a(4W(U!PL +z<&Sfkkw^05aZDurt!^E`n~al_HRuKQ00G3# +z>?f@OL%k1v(4lF<&n=pw{5(6mhXG7AUqv}* +zT+e>)I*_R&hNCSKmGng@_Ni{`Pd71b6QMROUPNRzC=LR!%sd7gt0*_sFS<4HrzM1g +zr +z)-5;4`6ObFdfG(ps~N7kP*~FY%4wu<*k0O(vmTqFI%w5CkJga-ri +zM49}&f|z8=872Q#6&oRU?b4#x(uPQ;zSYKlw0SeUd>A&M2l*~6i3%}yE?F)$f{}8Z +z)<=|V3)-S$Q(@2lmctyMzkOyh^f`|ZJ91*1VGkvb +zlgwzQ(tflp_gEtDskZma1e+HVIzpMoptSjp4lWgoLnF@zTaX5rrfq@}ON>sSh2~Gr +z-3h?Xw)?GNX(*l*RwDA(%c8$6KIIl$_)+qRR&Xk**9ZQHhOJ85h+X>7K!ZQIGZ+WWcJ^R9Q>*7yC2d7g8Q +zW9&ln{MtsQEdGiX5zuhAcvbOEz20J5PvN)Ul2GssGH0WQhV4E}Hn9&eLMWUdW*x5k +z@KhuzNtzz)LZHvwYeeW0>?yTY0o|fvRrO8RTvj~S7|)e%r7tf~czri`ZJlmBt-&U5 +z>JzLwl6e!4{` +z4`=zR10uy*0vTinT3O#2@J8g)_*v6MeyXVlqK~Oj?kw4G8niqn%KHHGJ}5N-ra<}O +z#K^h{VKhi!vY=2ALjCCa)tTZ%Kc3@v)4h+Gg(P;^$`+n}7EB!{@Aj0h3l(s8=`adK +z?S0S1k?KkjenxghRak0>A+-L8h$i~Guw>}7mBK~rUhRDR_LhhFevv=LV)MK#Fx;QH&Y8XgQ%DOy9|s}6_-qYvh79T8iiXmp+2nhRL9GHeK8F5a-@4k;OE +z#5T-kz$c!Oi9xR7U4Z3fv1zsBbRRR75Jyt*!lyH;io26IF~wL@S5#{QXIv46zLC)NtuM0HcN)r#i}esnSP +zE46ax)r$PFW1T5K{krkSAkl;F$TM-CVf>f~Cl_@*?&36QA`BwuD5K9OA+RdORTu`^cqTL*kj1Tn;yfi2K +zxRPHd*w8$$?Xv^YUfts?HQ7tR!dGK$i~Ca@J4(p`1E?7WkquyY+Dcl=2DD`CKVPnY +z2+RdE-lw5>t%#zpQM$ADDJ +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 +z_gT5Z4>ID!=hFmB{Ql)iQgjS2>>y2 +zkqFHV03H7kBY_Wk!4=FD!(nv?LW1VT7Ho=1b}!>Z5OftH(l|}% +zQ)eez?U+t9X!spUZdWWOkbJWYVB(QJ_+Dn`IE>TUqH-fxgDj~-Y=PoE5OD_`Qkn&r +ztunq>s(XF-+4JaH>lI)|4rZpa{>O~0oL-m6*P?TD>|;^2;M6dZ;2<63N&SQavpY3` +zucWnzGT2dJ@B_j?NQqR^F1`Bep +z_&ScPN*jROyHjMcny0WsO*`P%S90qZ({-Js@!sw?F9yKWWLlqiz7RlEZ=HBjL`v5U +z-|0T_$;&JdUSgslRDDJ?kZ6bB{A4o2@uKPHF{-vE|6cxZY%_w5SG2bG-6i?T1mqru +z0yrPWusaBNjtrq@ohrUN%jl(VG&&iwpbOc5)kh~Rh0i=2=IzU?E +zbjGP@$!IGIZ5B6PYbLKf3|`V2saD^>R5+F*Zu3QcM2*UF4Fhc?w!R9MxJAylkt?!^ +zw+!xL`(vCg`F0(bY;-FcS&gMB3?u79tQub +zZ0hi~@)JZtQv-KvKX)cdQ;8(QG#+&?%{7>cB~-*^(wh-TQ2{vr#dQ(uXDcfz>}Vh@ +zkqcD3BR|E{NXvXABRJ1#$?`&84K}e_Mo(DTeypQ;Hx>|}fDAd{^d +z>3IEGun-nMdJi<(uOe@y7JF@0adU#3Pd?*HASblegsv4=E+C;}yjgwlI7Gv62KjN& +z`?NQ!EG>yobtnGGF)EPzKa8Y5Fo6~fX_k1TEyX{KBs`KyhjFX#(TZ-WbNOFJa?5R0 +z=nyl6gcZTA8W+2&_S|nlkbOTP;j=a1lJwydWEFP +z#5pXhzrt@cokIy)FWMXe%xPo;C5GXvz8y{{@})7z!nmK0_E20sDUMMy>CGse0xR9mb?X8NxZ!?(UU8h_HO1-_9wvuPkx{? +z?C=&cDMicPFDToRh?}wo?wu2n=FkgTbrZCE1HdfgNOL1^6lP9WvH&PM!75X_{=>eK +zZJWiO#r;>Yxffzl%x!HK$F3brl7mspt2R$%6}BJ5t=ibZceimbHpGw~1MHKKE}+El +zKfO|1yGIp@?36FMrK;|-vK~I;7cs!$Bh92-4MsgmeN3rK`AVg6b@H?#GUX{j1A~f> +zt0KIUjV`Vi0FM!m!G4=$6QTq`)R6;}H^z==(nOP`Bzp=-XoK%}{6>*vhvO=Jp@1GB +zR4g@o>=BX~ja@cYtm%M?U<8HwT=eRFASlN0`pz&Q3q8MUjkS0K+SHPzh?HI2TS9F{ +zLATTw$?BYekbX-Cf8Q{a>bq|PToDdN^=`!qKRa*dP{ +z+_O;R<(p0pTT@~Sdk}?&WW*a93P=K-raS}h4*1Vxul$G)+d)?k#Rs;lQn_o8;Zg_2 +zkMy1E1b6Jgok348elv5u!G%M%3G2;0!IKaFkBs%Y&aW{J5+@kHfZeTu#$u>1RK^2D +zamzZ)*CKLHb*kQ!88I0R=2V?zc^X*JgWBpcJ(*}EwY53W))u8d$$!bZ%xZ}%TatcW +zEGmBS?=+dH5|J%kduR<7lf6d=f9J5^*3CU{#A5mB{jhjyPcOD;vuq^}l;rz8F*f8iIvIq1KFpK0?ASPYcl&`qy+dV<6cu}Z+-_RVMnqP +zVm5Uj?loM{lgE;t)I8aG()icQf)n5?sk$Bt#si@{EJPDengpNP3kdOFDs8hMC +z#0V~k%4a-mTCy6`FLSj^mxL^@Y=)BJsK>(}5F3zSiA3@4oC4TsWD2EINr)L+?~@axPLvYWWt;SqIc0?0)syk4ipB!qP+p${T8Far5Gm8V($x{@Z(7G#a83c{K3m(^y#yDS1}u;E|Som_uB +zuZVBFdW}UOnOf{OUYO;vDI=NmA*oxD#xDz)Wi^;7*|HEOk0OTjkLZcSvm(-Qq1=uO +zqSxTN();XrMDKq8N@B8;XA(dznkc?`L*jKX9j+RqzBYJP8U+%=; +zMSc@wp>{Pj+cV4bY?Xu##T?cUCgv +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 +z#=7stG6E*&@_Njh&^f +z&-6>v7?^u^8H~D>YDe|!IqTtyqtQisq?l!e5gxZHQwjK*Mz>?4eR57$wVmft#bc@E +z!nh&f5H(bAm1WQYXPS;V3>3OYn9+FeM7O^c$_y$Oy+xn>Dqw7)cAO(9`S$DFK=m`E +z0qY-tGV{fq=m1aNFaf^eX1mH!V{eST3c+lFlv)e`P~J<*;3H^Pz7jOQqjdZT7EuyM +z;+rB2(s8WMBh*w*Eu5t&(FS`8Nemk^Q`@KD?etm;jQD=cR7Pj#09x7#TJBS^$3b?p +z<>v)W$ZL|bt`?i013CTM$Tip{sC2psQ(Aab>}PDfAszS%nWp1!qPCM~5jD4K^QeP9 +z?Okwt1vW%~R8wFl7)hOlhapAL+b|WJ7t`oms{on*2$ay}+G>9V%A{&#z{cx*`b8*B +zD4hbKOLZLG#?|O1Z=k0PtQnikN9H{)zAq@&cR_6ar#}_}f1x;3+aer?C?v}LN_>VW +zk);VZeS(gBP(R4CGa%l%>~SrWMFNl(lTcPMOpf#sl+2em@R{ +z2kg$V;k>w`#InCB`Cgwhr&!+qm!M?&Uj(JpUxG5}V?<})g#@u +zeH<58!3t(XaQBxE49SG$G8wI-7jcRNrc(g#K`Wfp53o&eRV7C@6JMRw` +z-;+n(ubx*}!b9>nv@B}CI!WnSy_rxUbs%{bcaZIFk4=3B6)wIgop*HJdQjY1blMz) +za~fY5(T;4c_+#Ia8FdDJ2dT(b2U& +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 +z`TVwFna>m&Era=j$y9)t~ik_lYR%b|cnu?Lh6 +zmGDcg5$*OsdrWi?;Odv)gfq`5rjy*KGBS`pBAn+`?bC@}nci}-eT^cB%AP-HGDpOZ +zOpu?jPwH>l@YoI5r2?t=%Kd|Y2%%%&fZ^Un4Gew{q>gI_gY@c81q!4%8pDF8asgqa +z^@9LQ04U$3TF)?>M+3LO6=v2T*qFEF@!I9*8F)*3Qu2oS|B>rj=-0m++iBJw;DNV33uLAzCl=+eWvXnmnEG1fk+#i;b +z5+Z%wtkv$^e`xXH;~;_xS<7mR9YYXbL@7{30Absay`s9?rQs^}~B8n%UOl?i-9uXPKu&Xy#n}p3M +zwO;h +zJ^?l~`aYr@`E{8W%x9zKWo2}G2Zy9;lx0Dr^I;aVcR|C51wAp*Z@yo|Q-RB}m5^nJ +zohSPJ27^RByoD&7(z$LP10yDdoQs}hfLw!@h7LennmpGv%ci{Ul1fGxWw{_>3 +z7L318dwP&hp_C9tiJ;$tfsayeMgCd@+5~IO$a1dV*G>EZS<0yO75+P~2nH%VQs~)(Kj!#FIa= +z(KzL;n+|aY(^$9cyBeNG&~|td +z&ZwRtCnXb;CmwcixFWje`dO06BBQe!xP~VmO2U^;b)Kvd)3qcN@qOZm!N(`<wo*))hujvre4D5ngNN&B_RryBR{ +zX#RYs=BESHnq)HPM83iWZdV2v#^``nQ$+Qa;6lvRD*d2+y0y13QdHW{8k@W)$ke~S +z`P{J!|3_@JH~AJbd*T72+W*7XKeh+5t_$0CY}>Z2j;)TJbc~K|+h)hM +zZQHhOCmrWWk1@wwbFTH??+>VNRa@1y)w!QX3F7I`gDBxC; +zXSM1s`tZ79U%~}y6QEIGQ-YO;h)V}4jdT-a1m+|%%9EdB_A0ehWqJ;Q1%3fc=}gWt +z5>MkdW0@GWqxzX_ZxXLDRJq_T5&uw|2x0IStjz1iJw+%nW(svq1}Ym0uoxi=mP1i# +zwD^eYKgI!|&}30u6Y>xK0gkG=s*s;@58qKIRvjM-lll;cJHCJ>B-<>v;L$9LwR`mem=1`uLG_*3LIlN>3cA=UnBrUDnKB` +z>rE_SSB)XMf1slVd)*9h+K}k)LJLEs<(;TWNPXMkHJVXPlJ=FU1nlV=LHuCp6+odH +zJiXCJ`!NB%3K=4iItUF);K|D;za;Peq2nFPD5O1hf2E+isHQb;7oX`&3ddeINftfi +zg=WBv9Jj2`-aLdBwE}ZQvF_aX1{Tj;8O}!QD}qeR~&Y+g&5Fnu2PP +z20)0{f+qnYNfWZqr&y}ALODD@T~VB;j$6mJ%Vt$>#i#!w6p7On*x%9(a9T#qM<7@G +zxcVcQ$(~0z?W=w&Hjz<8Mw|&H*mwSvu%0KO?Q-BPC9`V?@sJ$Z>l^Cqj?syMOp#XR +zU8flYv^EEd$MD&hd!0NnEK{~YQe?S~(nuMaApdFUc3;apD*wZDhZI&WEe +z!9#f%V=+}9773H`2A7Yzn-3h#XZRkY1qAyt8lTY;+w%@fiTf3Eu%Fdc!^g4-Y{~0j +zZZgYFJIshm6Aw{Mla{#OcTVuy=ahxiUkjv^Gc4;>SwxJZr!E7EGIsa5vTLT8H1N!8 +zBwZ%@cB4A<2XZscDOobx1$lw|Px&Qoc&)ZIU>KO=vTeM^5;K!hma<+~yatB7qyArd +zGRpA9Hm{ajQS3Wa?u0s^z|WgW#|xduYP-(f^3|2ka^^^U_drC5#b2kc+?lcay`b)= +zf7!|Lp7I~~HZ{!$XKrQUZPCFA?t;qxbR4<_eHs|=tKx?8#fwB#OlVSp^_T&q+$28U +z2_Z9NlWSQoCYjLc796mL;FK%&sX%;rrRWD5R&L3p_nw&;zayfoQ#DY;nGzMy@%TyM +zG~ybM5iq2{{8s8iw>YtMaVRsD`v|86s>ZB--~)dmY@W7n{@YzV5mdFE?J?)zzIzrY+{&hLl!--$fiJ +z<3wfx6W)`HGd1Z57>N<@XX@z7C6l-wM& +zD1i6SBkhVELZL>n%Nia2n!YhE-h4`D+|C2J@nJ)v3=d?u5kQ*KlZ8$BxK=;JlQG0e +ztURiz5T9EIIsc1Gax_>~VwXR~sO8uRX3s(qC8i_~LW{Ah;}oN5mXHKiA*T>=eCols +z#CeSQ$EP_Ksx?b=&Pb|Qtyyl&2f5b7Ss+H$ko)kbV{%ObbWYCEg0~eWt!7UjG#v9p +zKo7@<>xc2oa!9#|B=U%?Um?7*Enm2W9We7@3a=w`4dDM; +z%meOucH%3XtOh0d?901n8*Be6R8n`3bX3x;Eg5`klDniUR+@SAdus%XQG}zs0zg2WtGe%Nn!EkQMfnY_{Mi|#YB#e +z^{IX7bEz+P*<3+?h8lE%XvSCY&6h&m8wQgE&I|U``ZtedXJFC>3Im}Qf}+HWecGE^ +zI5c>2V#S)cd_S#U-E}JugAA|M_pV1yWb>SR-wcdA+C*D~O%W-)6z$%+r5m7-Qno`r +zyt%-TZVB#pxnNpoiq6mm7F`+v%USv-0&Uywc9iKJFoyG{R}LL`;P1bQJFLQ38QpUM +z6LF^*@s?Py*)tc2$jP+~5`$t`lM0q +zMimUE8O_J{Y$d&DM0HjWjw8`vO1lu^(8J@yL$aS`l#Mxiq4*g}l|AY$UYRAeluHxd +zkPS1E&CeszCr+o{%Xl~QHydQ{{zpiDpYHlkA!!%i5Dd+D%dszQU~SZFQl4l*g1W%l +z0n6#{osh=e0GY(?O95&C7=ux>)njOuw621f#wI`Ly<<4&S857vw*%!pwKc8-M@EOE +z5U=Dt){+HbRHLIL;=EV|tiW;nJo%%r7?5RiY-7KzW=~iIx~4#{rnJRRM-mLWV~$!# +zePuvwSEq0^d5Y5Pf&+^waz5BZx=(B5&eX~$3JVb&i7V3N!eW0qPUyR#eGV*V`nxFB +z-#9W%Dwe$!*q{O%F}iuO=1e?2ha33VXy9OpnWPt4V%8OvI!&-tYjWNRD9|G@N5wd@ +z;oD#>UBEK$^TZ{^>`OPC!?hwc9BFYoy6PdcAyO4e3M=YJGR+>8RAFXaabdwH%4fp{ +zVZhqv4G#){j5oTzU%JHrvBU<_I#R?Yb;P2?xSO$&M$Ceg@2`M`dI-|PK@JqwmI{!< +zg&wC)g@r+LxD{2b{DNObu7!TPDcc(AnQM$Kw~>Ac6|-Z^!IIaK!a|8yg1fIIpDEo6 +z$Hat(f8oeR0*<%`P-h{ZQ6Q!svBnCO07_2nG|Ts20rZ2vAVN&U5pH+7>F@WBDf;zR +zj$p!ii}AV#u>w(X>RUT1&FC-JAASI5=M+0;O_5}D+PcB8D>Y~|S=h24(#dQ*KAHAM +zAyxW^Biz^KL7jh@NKl|ZCNdiYg6sdci45aqgleQ^q-?Syint%NL&hyE241Tbxi5~O +z*sB$Izm55nb*%=JkWTyKA$=VGOHRNq>7JL^n&Lic4*7GT^Iqnbj*Pm1MO`c? +zBP@s{I)7nQ?1ar9uwSQ~#BIFfn7gab<^*-L?;QK(6=FE3f*3Hxob +zZPG}X|G}SX0Yr(Ez(-{|tX^Q-!>pAPh4aX15DU;Xxa|u~k<9He3~^mo3LgtM-b(gR +z%@X)83Mu)ALK47!QAix~L&i7#bbgo$j0^*E28ryNBbfwWwY=3{fQ&sh3=(L*a-067 +zxY(5*mf9WsBzuxrO5!}9BGkSrmQ{XxEcnBOUrTErurg}D>6bCb7Kc-zH4RV$%&+P$ +z?;=VHw6rBUa7EGFj_t{H;9v3N1pb6AVf+w)v>`+Pc96Z0-(UXU4zhXrv1t9;OZq4$ +zqWD25f|BTFBGmR-u%BBU7Ed*r>%^FSKZ#l@*6TyQi*}zN8l&hrn~Kn|8h4QVP$CM; +zGcOikP_nDV^b_9IQhqvnywMOnDc!{BXQBR!fn?jvLrY>YWFQhF2?lFA>r9;8IM3!P +zmFrQa?oC?2%CLc)NGyg(rgW5_#IF?>5nzB+H81RMdeFhe^;)DB9Nw&!E{37S9^U-g +zzI*#AqUM>qzBDA* +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 +z;=;w%>U0P)7|=hMalhdUGoB0$PB&Ma6oC +z5fsMwqRM@Ba#(z~+Fz70rAjcfLml-r{V;Nch%}Zg01at-SoCkoC>L&tL_S5j2Bccp +zVe0qH#QQJG*dYEz84)DbeXjpd#z=_@hakhior(33Y~yI?pL*y46$~$@@tQrQUke8j +z`su;vYhjArKS?yp`0&6DJs^ZjtR#B1`WS)r=$?M3 +zNK%7+FMO!!;DrW#^sco}i@muc?nU)8Y>AndXlKfp7S+~_rWbPvb&D`Q4L3lUChsLD +zV1Fr`joIwYoX(U8`>~algW0UZl|@JMS`a84Jr-;7^j3y`#9OPQzu=g53osFZY8Iav +zw~S?ox{IE%%Ad@I0{e9Tq+z{R-$5l_Q5K&s^rM}Su+NFw +zjKwg2@EkE^amN3N6f#`19rt$Gc9dk%hdV6sd!MBC2Sv*EWS6lB&=o1YmpEPzby~5LdZ?G +z?VQaAIdI#~2LexOX_C>M<~v=i@qvc>VTb?fkmWJ9y~LJ_-#f5oN;xl=JIAgyKy)QN +zzJ8gF$vj3aI6nU3Q#s`(5w#9&Q +zUdyvpU9^~ALyx%OAPDj0;*P9gga#U%-7)8_LHf*KCO1Qtse;zWfwW5DTBPt>2q2^~ +z`=W?~u&If+;Be)rzETvHaJ;T>zqP3na;&Ci)M{kwKyPDkIENol;P^d6tMl>shr`UO&a+6 +z-${eWeq0iRcXWUnzRASTlTjlz3e`Eph%f0jGDr@s4DAE)k_p?44{c^kcRLZLhS_cp +zc4+O{QX$OPaNXSGN^@nPN|0n#89qW9V9RNtPu0OoH(7HbASBTlpfxq|9G~FI_4iL| +zMr%H~CGZA&t`g)Ah>Uj;ivh|^Brla@svw&TUBJDSl)zPztU8k-+x_!qZ2Vv^P!lRX +zos9rwxidm-g|nEH#I}fIP{NgEJNGt%HB>=sX-?O8%C(0``S$s|##BElXhQ?%U!v#y +zmR#Q!icbt^i@}zAj;tYV-I~lJx#-+YRRW1rr#He=8tYF`OSCdeEM~Pj9&=?JnAZ_? +z??tda)7k@2;?)FA>uwYfB$p}$XPN`~enw7%-yDlPt;!7`DTy>)4=(OGFN{0wwd#;c +z12Z%Hs)$!w$-+2#6Puj2jv{d~$PDfpax|Q{2Sgg3EiHQ#a+~`=IJ-C6seL3}e8Q8s +zUabcSsw?sn7r{t>X7??hsx=gSXEYDUkH1KSFGnm-bHz(VP=!RSBsGDv5Dh#__|@R- +zlJ+{ig9h6CB{1tU2Q2D3a8LUYYsp+OTP7Xx)4CvB2}a#5$sZY7dU^eQkF11AZVShK +zw7~9XR2%Sg`68x+4R&~@)JFpL<$n^!slNy#8)SOhs9Jtk@5)^hzhb13$~$RfFF&w0 +z*lKswr4czF5ZGACAONV_1nDo1COgTuN97@j$H~i?dHNLA`c@}}$68cTpoO4PxU8JG +z;__yzOffexU#{3x7m7Y1`bsEH^;py1LQ|H?1X+|U&M_HiXltAI?sOwpNT*F9On@ZI +z53nD!XeO|j+4hlb?GnBji$Mf&)WMX+(qTY-mcThZ$^1r8Tv8I?SLrA +zQ@>|@2BWr-^0o5gV`7$W826WAi#b$As{KpMND!4B#eic-kw_7C9vE!;sn6+eoHrQ1 +zyXEpPPl@`%DtUZY9>`&Q{^qdTN8^ihWLk7uj6FFwx*9XC8}1)VNvS@wHF#!r8$5a= +z4x_U#IVd~IZnR{1i*JH!6o@&GScaMja17SYC_V5sq)~cNwOJ{Hu+LJU%pyQG>%h^P +z$v8QSVxe>ET}J~tE`ziav=paV7iXt8Jezz5bbJ8$(hbFuS`zRLo;@x|tD|OfvbOhP +zR^lmGKy46XTN)kOa|+?-wL30E%syuJKs_8?4U7W^_!;a%8C^kkZ$YD_5*sN}Ny=2} +zA`+fkRw!j&9lrk7I+I#}cjxp4bF+vRDWfdNIZ3k9&S)k=p01yRA+2-A7hw!D`a>AW +z82=Yx1pE!`_&Bmj=G=L+NiZMfKfH=C;nPrL$zS5x?>*)Hi#eCSn^sX4tlFUud@B +zI2`l|)~*ZPrgH0jR0Rud-0HrDBpB&68m;}+#(als01b8qWlE;@;P=YHs1Xs+uhZ53 +z05kj9%npP%oiLQ*l&_j4g+gd`zbZEa&?GKRUCeR}vf{>Gf?ro!+rpr5TV +zdV}1tRbe5{l|(MCfvA-Ffq>Jzcw=yCbMkzIFcbA+=#wt(gBmWNX^Ih|gOxNTj@aQ5Bnf!}ctXSUg`6JQK$SX3q*DsWLD>{XE%O$K +z@~BJ9sNDmR%UV|a0h`VMX-!?uI>cAra=33+eh((b8ZaYJ?cDKHtYQyn7H@FfB%&6fk2Ls*-u$qyCD^#T;)C`9 +zg3wPRh3}=lX^!3nyY@C3%{_U)mux3{dCX%n9H+~RoIPBrelKLtm9DfKSN&eTBnLC@ +zMMW5?q{dX-^hYs497GL}{ko&@ez +zd+MIC0Z0^npeT&shsa4M0v{>L|n!c)M9+B~;) +zONNd$ZK7Z-MUy_~BM@`r4lP@tGK^*GqX$Y`*7&I&BOR{wXCe_pk2VrGgYRGlX_rv` +zm>f7=l}C)DpM|SKiLGN&!7HbJk0DMbj$R7}iOj#*ZxC}qlVe^*00Rs|bS6}TAx7p{ +z>HvLn)L+}wwb%y6*Q!9sfMl?}oZ){YgIpL-YNUGFQZ<%~di-FUS^>wNAIYXQG* +zZ|T|gOz{GR7!{|~aeX(pJueD7HEJ^4te94>4td!i6hycn1ubmLniXNK*qsiNupu7# +zvO@k{+y}zIomt2gRNS&JXC+wIBB9%s|Jy}uDhY2Ei(rZqvkNQBt`bJw_w@bYW19$G +zwAqQrbnqn~6G10n?JlodU+;=Jsmui<|0xhatB{c4@&gy-B{%p}mMh&`vPp0rLt=|L +zEwRWRmFn0WUFx>jT^LB0uAJDekkQLW%Ys^}T +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 +zu|@Cyxc89~najW3;#2g$-C_>6$mG@Z8QatO +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 +zyH6JF*iM +z8@>(r_$)Iag8Tbb&cyfYtX|~Cg`&}7;dj6)V=5Pfp7q3@)D(IetT8K5Ilbd18?Ok; +zZ*gd*H$Dv%TZIX@!2o}>il$xl?MO`#!^c8S;9L?YH%lXPHXD$fLSLU_37T(i^;v41 +zC+@^tup3m>n2{T&OSfPnTEQAgQ3bxOeziF>*CNaUM}Sl4&^Ab>>xUss{i5p|8abV= +z0AzMb%-ej{(wqzWldtj(OEXY0XTg%?L;R|3p2jKpG@`$_-3@e3`dv#D_iQ($_ +zH1v$nsYJs5UG2eiCU&A@&$Cnclqs^hATPq1*lT$7vi*c*HK(NTBqr{s>h@GV-v&JGss*4Otk2*4_J|SQilg1_QMNj!e^HO52l9d(3@2c7 +zDe5aj3;0HyZkd2r=Wjjo26hgZp9w-a|C@CkJ<%>twUOlnVnT~ay_cq~dxWc&eP6(xPe6duFC3XcM`}c +z7Vr}DJlD@&#nvn9*4~-&aDw< +zJl;6IyYX#zt7THvs7ygD1^bL(#(3@}{t2@JaI)veFt^k9l`Q22y;dzi_rk-jjcy1u +zFT;)G%mb{I=$V_^^|I^wK%9GOpko~ry2=a|EJo_KdY0@^BN&x>S)EJueBc{vJhq6| +z$T;3=telPUe3ddRP3Y!MwLt_&g9&-;F`C|^JoFg(7C(5o{pvA_@%-p9vQHoLh!yLy +z+J{b0^@7svcp-(D%f=xX#|;vw^yoUU!e(Xap`dgxgT~ +zk)josa&`2@239#gzc;nMr5i5s6MW`HQS?q^pYQiWVz;YU2glcJKBBl?ViEJtXW){# +zC$(vx6XRX8_XO9Whz6PTi}|h=@4V1j?#`i3hP4ZO(JtgLJ|C*qp6WA^Sl1dAHGZcX +z=ii2*HQ_xZpF`Bg8Y3afyVYE+U{*GtVV-A-KLPB}Bs|8y3xng@J8_h}Y?QkN+CJLl +zWjWbW@N(svElMW`uLW3hrS%Khi%B)eI8U0F{7jtZgd|xem_;wCh%SABIiw8KeBZoa%^2y)l()JQ25No3Ov%Ci49UNvd%fbI8)Z;eL=s(>b4&)ub}j)j +z&^k@q4kuZK__pSmxO-9P*SPSBT`r=#3P^p_O*=hPaW^>aa1g6_Q#(G6o|ejDvFU>N +ziRGv^ffEP!cAoI1!N|Oen3ZC|VtAgG5#EmV&-~UUvo+ijawQoh&tFOgYuRT?6C7*n-Ov^5Qw1Zc# +zqky20ex@J^C%GY$o+ExzSicZHqhDF70nQVW`!(!2Xm61f*`#L3 +z^9~pK0ke2)^D3{+&M^CEO`ChphMv9w|`DDa{v8nN<6h&K>i!|RZM4r7m7H}DtI7h|r*XOfAN&WjVU +z_I!rmLTce%ZEYmjZ^Bb8BNmud!9-#Ll4cE*`3s*wIsjHa*Tdn9W(2qjuJ +z=bEW<+bn*2_u7++g$C5rv$4Lup4?SKshpBZusi7R>W2uUv_Bxin1Df`(pTCK4W9>y +zFj|#|skOeuOLTO3!`07>q>|Q|2Z%5>?mt8r5o8`Bj6q<+GwUG_5ypFLK!h>g8>u!%G$rVLbB7I|&C1uE=FxxF{Go%ojPlEZ}(z}#_gWq8!RXmIEyYjqA-HcZWJad~Ud{a?6F1RKB4g%0$)ByqX +z7q>o!e}~xvGY~2T5fl8rfzYRWC+X^XkmF~umGo}fJ#MyX?G9w?|nwtBUC}i)`-Ny3lr?s +zLY1MJlnY6MVAz0FR7Bk7u#|zTl!J#fGc-XeF{NF`OO&LH2x&FVfvVr*A)d&8u*{w^ +zt+9Fs4^_&V)_kw^3B#t7H+0!<<36f8EU4kaDU|tY4jr+9iJZ{}$@ZJqRg;al5FXZS +zCwPz?R^ujhP(c3|TPk +zFTBIOkY_|X3g%+8Jwx78>eFW_$xfXt +zqnE%1wzP06iK?uwD?4u^ +zbR3%MdA`0RQZHUwX$gv}lURjm5iN+M;akdomtBLoD<6=pvZBY%QaTRXfU7|is%Hb# +zd(Lynz1VHlV+l+CrTDVlv=c_^aRj#XalC{^F3dEZPk5 +z3?CsD1%-BLab3^d7(<4U{75&8F=!*Udg7;mfNIsez-Wr+pz55J{02!XG7x5_jvKil{=LxY*V2^d&K93eUPQm +zM_}t6Fca50Uh26sW~|dO +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 +ziDHp^6#@d9UBo+|%aiJO~S~RGg}X +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 +zor#bbc6J=Cu9*VQJ0 +zI;p{qpqvVix&I^N5t;ucBJPVL4%sNbFV3Iv^a7&!Yv5OhflL&sJwxC`pTS}~a3YN0ogV%rkOdb4;(koOs_}_o+Iv=J +zXheTyRK}3(zI`LqycfjDRbe2oN>{dpR?7l*C-HsSk_0y#J-fXXJoj{NA5%I=x(sp5 +zP)KQc_zYE507ov&3kzMVikC1?1xDSH#av#jq{89bndrN|!d=&k`+tPpQ)3=nyN2u7 +zZfx7OZ8x^<#`ZQHh!HtBlW_x49en*8j3RP=j7PAY?=y@ojf}Mzi3FZ;EZnS;4oB(f0a;)YwK*<2x!gyvFAu +zuxysX&y_(hnYO(UvB~EOQ(^Vo7FSzFn9)h&p9o?gp;GEa9oPf$$kn)nl5VcT^;kjQ +zUk}*j@;Pq%(JRDi62t7F0#V4E3W4$=x}@JgA(tcD$dcG033xxfXwcrLV-mGe^J6s1 +zpv@mLicSZ$bn^RA39c7Soyozxrrzi`Y8*7-$f;!!u%&Li4r$DZ2%N#&!W|0niqykm@Pb7GmkL+rcugoSu`p7dv~r!RpPD^{2x_3g&z%J6i%N2m8Jv?@vSrdO0QPzB+L6 +zI%6pcl2|$&xVkEp^*cyQ!_&K}!IpDwF|_`yv&ii|9MePGx}O>g#pmnyi+4NB9bo;H +zB*(AChX*`Fvmx#>H~Q5y|cr7|N@ +zn;LmmjI%dOFJf~v9d)J|?K2ee8HTsI);I!D6I2Jv8Eg;+d?#B1O|=v*dHRxqxHt-Z +zLW2)PMh0!M4w}VpRe(UrY0E8(9%`}qL4~OHH3RDCb#y|`F0#nwAU%k8(79;b(I-(t +zv7pph)MM@)>CDkozt;J9;W08u*0gAca!qHcGW3wsB;YbNsC~u)4ceZe* +z+C+c`nI^GNRc;(tB`Qdv;G^F41;KqLwB@?mD{mqancJYWV;TS1AJh6I9uKvP*`caW~*MAhp06$hkV<}ViK7}3~Tx;)TcYcM1MRw8O)Gm28G>N*@VBwdAq%@T6FNxS(NUqiC0 +zMp+FPSh2qjQ&`PpnU;oxaJ2afPB(Ob;oRiI0Zq{R1=XNOHA2A6)(`7$7x~Luiy)09 +z7ow_?i8=1I1SrnSq%jX21-Ec?qE8LbhT-^a-$q0nds+4xN!UOu(>F*-j$Yhi&RMp6+pG^CO$9-p* +zA{cSdq~f{=KVoTWJ8D`t)Yq1jRC#K@;L3I;a^y}L$e>JiKyj4W0GRNOYm9B^hdT~m +zf>G#o2HnCe*{5#AU3&g%|CIvF345M8gYb(cH?GbMrnx0d1H)U7W(tTIg_Pxh^;os$ +zSR11W@PsSy{XLkM0XX`UYJYYZ4wp#HwuZgA=APRb>8}A?T4OlHlBkewb1>G^E(9>i +zd$@QbEl3P$2+l0$Cx~;kRAt6J<$QMPbQBNONpm^t2!yVg;H0@V#Cm%>ESi1+`;M`0 +zGn{*HsmU+Dx!a3%eH$qHDbw)rq$YIjplSjWS03BAERsW+)@F|=wT=O6}!+YwYh0O6tX$a4=kX3fU{W!hJ&Kqwds +zc&Qz~RY9|n@XEgf%rC08pfr6^jwtEE3Go&C8Q4k`SzJEzTKXB9a%>G@hZ?`zy!p5^J0*t;7Id&9=dY(VnKKN2recFvkg?hL{(K^kqu|8VWR_EvdL^2Tq|GU-d&J|h +z#a`u;Uz4$sBuqxS67y=v@Tp4(VwzbF1lY?4Y!92Weg-cL_8!iqMV*{yEN8_l# +zj3m5yfQ&#d0h`jf@TjIr?OCG>72=T#y`7W9UQTjMCo$ujH0X3eZ9kuwv`>9?l)AK` +zWE0-3V!N+%S)>F#)D|izSR73XS$?BiwZA%$Hd|GQujb2pRopdpal#_yW2%QGrnK-n +z!5_qeKy8O8bAN8b-|X#0eaD@oD{%WEq=?sMz*g?C20a53R8Oah2~-6VVM)*-qt&4xJLrB_xo53YI8hUGIr)LZ`Rlv +zClplnvcDx|KqOQ34$sw?d}+8oS~FvAxO~N&?A?2H<%?7Lx4j`SorUWmX8XHn!}GdAh>BRW(t)6 +z4fLFuSYah7kq%H9O{&`}r$a11#l4@V7Z3$lb(ks%!OXSE#ZDEn5Swa1`Shfqt5W0R +zM_3#h{vxF7oGm0;4KaZUT)TI&k9WLM>UN_Y4iM!PO<1Swim^7F)YU9T=!37Z+vhrL +z!&$S~PN4U#J=uA~`#y;&1a~h#t6m?JnUS$Wtz`!xP$=LHbW#Pc9KI61VQ8vtAYShZ +z2u)*g+CYSdty(_!cv4DE!xoBmERGQTHqB*UDf>*r>zR(z&b2B{E8CT=K0wDP#&g}A +zb#c*C6|sfR%|cX0V0aIk%=` +zQV13cI&T@bNP2fygxt}T*;h$~T-uRlTRqon7{Q|xgg?&hYhQ8L)>0+zsfcKxcjv?_3;* +zhxM+_`Xvv~r=5u?>r$*g)*SmLBGVzN-v!abffBaMR+_H0Zx5ab4m^n7IDEU*Pw +zn-95LdBh>h&>H=?X&l@1ezqra +zu9=G^*ui;%>S=`;jwzxLwR44KemVEO7OFa|dJ=j}osWTx!as2Jeg9xj`-OWZ16*&z +z%n<_D>I?}Lp}Nk#rB{;fQn`*)y`9-qa)*WVGUV`_vKjhS-C8V%9* +z%;}>UexLo;EQux45Z}U89&Hm?Q@_Y>OD7h^qB3;|#hl?ll-4$`>P<}MLewl_<*U#p +z5j7}79dzBhYtxJqOmZyht9ei#scXF-u(s>8c&R$~_YwPVxjjtGm>;s53F7hAPI>ULZxg8{lM&WGrLViz3l{M +z&)(xqQhHiHs(B?J^*o!82|WbI!6kc<&4JIEL!DPK(0Bnno~MoVtgQb{Y*r8*=m)3| +z+po`fxH}la(14dL@<+k73D&5tE$Obrm +zTdJTgfuZVsAxG*HQPe@X>$B2i<>)>rz!FwDL3}UlD_T<3AtJY`(t@3Xk3nvl9G!b? +zCM-8FJHU*0M*?Flg@DJE{EIEi_@V~%D +zaRAt;+IIaI_lfRT_hAF$E)?)RY7YHOgCnft$n=(C4port78CI?>wh)zVy1Qqf51d|GL!%wL)L~eCx6|DI|~% +zozZ+FkD|Ke$A|p^d(UF4YV3CxyOkrjzHyOs3VAb0o^nXcQHw%bT&PlRIgNuPqY2j)t~eDV85GL`_JEB?esBnWK79+ +zR5KzwaB^g;CYqa*f-4MW9MFa7I4AY}etjzNenAF{G@!LX0#^A{%49$oBD%twS9RU@ +z!5xITx+Y;gqGuUppNn*_V8Zw=>x5{S$&uCVc3<1}30Y~C +z{RCWV`A)3Uaawq+toR)7$twwO6?XL8C`MW`LPcjUza3ZwZdkUL%I!h6IQdXitC9E| +ze97FC)9UJ#*+j9#uPFR$_@oY~y-O_f5bEL?i=X`fJDwo-5W$82mV@$y$B&7(zt-Dc +zaYGb4_`RZ)V~`R-BvbDlku0#Z44^djZ=Vj>q-Oz?Mm|ExZYrq&9En}{hsBzz-(vSF +z7qkZz7p`iX*=w)E)UjGJSSJX>MIIJXaajns+sZsTIQW&v!_rjedw0tvE4=|`UX +zEXcm98y|Aty(XBBJ7GURFr)}xabAYHKk$M;dj;7e%EdT~(#C5}PdN2tD0_DB`(gR8 +zuE9iRpzX}D`6uS8cL}wtm)ubAfqD5|zV0;{a!%RNV+nw1RQ&OWX)FRTjrkJ*rttv4 +zG>(K9RoZ_Y8TbzNhiSxB#)`4v1~82sI}67dLc0{`#-YR6s%pyWTbqbAB|@Ui9B>8C%n<1(Oj{G^Wn)Q;FBfZB0Jz*l`#2oH2g +zht&C485dAH-mG3Cj(3c^0BT3dOr+0_G3F=ecdkpEGRFB7lA$Wy(=M+5WLd)5s?I;vKCxkR7XqNWFooGT5oU#^GCajKAcIH^W_D}$y_jE}(18K2eWHgk_oWSJyfJ3Lfex-h$4?~#i-x&{HCazRg*Q_^ +z({Oj^5Xl$6pD-3R=+2!fs^%CR9(a&c_oSR3Dsx6b)od~6_lW*sXZ#BDRR?aGD>_D_ +zLD7k>RL@jZqufD#?$GL_DQQdEbP@1PO2;^K|FLUgk*W?dH~+N%noov%%AlmO`BQbR +z`abj!3LRCZ021f2EI?`O=#h!L^@!Tf=TILz5+ePb?o>S{FGM9^DTjM?tlS*lqj{HDye)vj9 +z+65k|ps(Bh;qTnM(ygONX%}X(;Np5!`r}~{by8VOTmv_E-q~dhw)U6(m{itu-baHW +zd)=uWq6n06sEPBD-SZDcVy_NPQ1Vsvr0YnmHOuB7mrXIc{p@64sLy-k;z)T4f6d1{ +z)50hXz<0Gm%Z*6)W*i=F&+{c_vf7VJ`Ad7b(F +zOZIL-{0L2f_;YU9Jg31`d${eaaa>btrUcu>3WiaLSY;^-6qgK`-QZ0hH_lL`t#A05 +z>PO2M;)&*l7d0(ZN7u@;aV}ete6|>ahnWXfL-q9+;`&w{$v`g6}JMQG^+ipG$w&S{81V+^q%XSy8Ej-R({tY#}IghAY(43kALIMNf_)! +zdpP6L|B@xRr?A`&zpA=ap!OB7>l`B_)qM}btzbTn?l+TDLa5~jrp>H +z4f|;CKmSzV@4_;((UrQjK5%w+U=E}|X~unpr6!bphfCZ?s2mkwuTF!0R0p}WP?vq= +zJr_-5o6R5B07|0cj7{&6!I+I-<$7HL8Tdq2lAEIdS*rIpc2v`vbp0DU8vcnL&oBPO +zj%j~lNB<6kk~y^hiXCw_>tiuqA)&qKPpD?aN)c&fA<>dyzjm9fZW4!Gc~{!4z^`5K +z>L-j69Zn5!qn~mjqlGy#@+dm9*DFH15pLxgqe$T4yzNX0{f!-$M**?pRX!kg{LC*G +z+{zWonj8KTJ2oi;W(OPqvE%Pb;w;i2KYG3C!?)2$KQipu{dc1*RJlPWP5N%H)TARfSH +zrvIQlkMKetD1%CZ!ojccUCLcI7uRj%+9_(VNa1hns9u$6{Yl+V!VZWXt(pR1$Ws1| +z9U}p;;}{@ztbvqw0K|?(Gk;>oE;4kxhW`~i?gSMcLIVS0#~h|SKT#r8UDRiLmDznYDYMWK;?@QoEe}rmCJ1zG8|)$?Zq}pZc5gRT +z7^msn$td+FcKk8%Mm)`$+dB}8eI(61o8E&@waS!*A#ikq@<(a>Yy8{$q +zXpyk^NV*PAM7?4(iRXN!v-q*~@_2-<<)#Ac;~*rvcRFKxZ%jvzYopp?M*cDojb|Tvpi~^)Lh-up%9dt{tb>9mZ0_=(r0AgNRejhP@7n0o}&GEGuP#;9x +z30CKJh|Oa^!|+C`p`&o`1 +zt1kax8q@y9j;`d6r@eoeMoB>I*px8(l^%>cAdFb%Fy>lN>Oy>wq{g{ZN75%>7WmY3 +z=;(#TWE@3m-UAIMlf+6Va?uSW#5*}&-7fmcDcV&Rs@~^0Gqq6q0+eUAPobJKDQ{j! +zC!JwdsME<{nXO2nA)1CZgm=0iBj;1)*NR(MxUJvFiy{!`hi>?}V+U#+sjG~G3?px? +zphhW?%;b0zVPz_a3V7uil=Ngw0QtG4HnePI(1&+1am)&CWG$n0?cQ_xF-)JY(MRN#FR)cV4p*PLcmM{+p8_u|w2o8#=mbBpI$Zn>9gu +zv&&p_XK1~;9Y0|?R9)3ujT||S>E*khUriUIQEGzZkihB-BM;_U%%6aqTcMEh_92BM +zuWs^jgN!3Fp8Z)71a~+4W`ecL;i!EFB^O&JLpCQO7}v2UAQ0}> +zA2BvW6`h$GHHFeBr}hMtO{QL^gv#WaNQI$4--i~$rT{c|U8eA@PRY}DmSfPuA-w}& +z=-zWBo!}XvTg2q|Orl{=6-z?w|*2yufVofZMdckTN +zqXk>vTLNOoO(m+@!+)5@;{TUvL`4t`f2{#){+DS?A}ufEfmO#6^U(l7Lv*^Tn%NgK +zXE2=wiXCx-qfh*x;^2*W<6T5<_6>LBGa2S&qSp^kqp0jVI9EE@ybRrRI>MTt5m;{x +z!97GiU?osR4GwMwy&L2mQ!2D)#qL=><>0vbO;lSAgPk;*a@n8w(0?#NQNSOwg4lg-cNJtsU&e@NS +zAoWu^x$XdLscA2Ptl<6w_ya8Vdm&1-M% +zi0wxzz1>w-gkx6tzBkFvtiU->FF|t){h{R(`?R&iWa0Bqe?arvT`g-)n%E)c0)&s_ +zuT>b~wcva^Us}L=Ejsf=ukKsX4jIpARoRY$IEJkNx8H9S*i%L6=y;^)pigsMV{T)| +z4@?YE^WE>ox|~FKo7rrcm_o(wr*=O{>3d}0rw%Jd?nh$|?x*a^g#-P_Q3F~n5wPrM +zu{bmJ`N|2oEkU-B6s;7Uo;E9KnLC~KAz_0ax;+E;=J*M(K0n!XyU{J7KQN-jHe$&B +zdtOnNSDqU3wxay2hJhcQ+IJTP`iagk2;bgS-_cTHNW}UhuxT}gq7<&UJS@6n!C0yk +z-YN)q(t1e=!3sOak)-I7%it9{#Pe?Nl3k!z%DJYN5_BLarMOyfpUp_SX!Nz}hg +zBjVJ*Od~*u1u%`NwB;qmQb}V@q+s~1qI=E6|Hh7MbIclm*zs+A{69>inLz;mpV*Q7 +zPwW^#`k&Y_g8<|H@D;X{sG_f +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 +z*fecq!hQ?w?FO~jf=;@79Devkx|MQw +z=J*$H;WJJYPXqqVUn3iND#e4Nz&KnCL(p#ISkVpNYWoabuMUyX4nQn_CaM7y~#ds%|%!}DQd*ddVnMC(~L;MZ1pmDU(py(C>x06za|O#8SeB%9*iNoy$9|i +zGHdlNEj0yQx#j*UXn)Lt@5-b1##iA>cTFh5INGgVBgNKr(krL|o0HHzwKWZ6v4(9< +z(%t6u*{Sz!K~?Z3JIklQ1aeN@EygXZxAsqA_c1)yd>eF9bcY>7BqCHU`zS$zkHiv} +zjntEvw>Q=D$3+Ep(G+N(mq47vITz<>P@eGEXcOS85T_xn3dvJQDeKX)l}xN6MA(M; +zR?!>%k;E9X{No#OWoz#n9_*?EqwCMo5|;hofZL9f;h!W?I4q`DfYfo)*c@|n`*G%P +z>bQC`4E#5B{7NLQStgYT9DTiV14P%0oG&O0AFMKhp}NyRiAu!;3B$)A5PZcw;`Q8) +z2>l#An6~uwm(oRu)2ag5SX``X@p7XbH3>zE9GS4?Nt&J*PtTM{gXOc +zVApm5Qb$h_XwdZceN3Q7u3Kn#c)&hnQEMH=qj`$r%8Qu=#BgfV4C=D(ytLMc=^(7d +zXYycs+-0JM+?E-SAieR?T2&Bf3xsCKs~83AY%zjbX7`AJokrn`4PVRX?ch0}!2X`U +zyn$q^d{pY{YUNTE_^rrr)lSVcly@EeJpwJwyRWBiiqc +z%ravt&7ypjVQkiGvXM+ylUbQsW@`J_#Z<`r~|8;40-5#EmX|ywnfl0~$qbD50%@U(fcuRZ9hKH_CzBSnznAnx#{u_Iml@LY +zlLXhx<{2RXp{$-e@RnX-Xt-bV!$QwSTn=IK<|@OX&nmqf_A81;S^TaCd)lY>La|E~ +z)fwZn@ef1XRf6Lp;-%mHmWKmfeAgfl3}-55mi;3$V8X)l6CLlHSm +zgrzBJX@+qIV;u1N^4lY*9d;qp`xGucS=4u)rqh#~zop}kK8OKRJZ(Vf$Sy>uv7!bU +zWMe_;R$tNkw{+}~IztDPj`2>XdY-WOPDU|-QW=xbe@e%4Kk$7qB(5&5Ju{Kse{`D-+u*y{4g0{t-> +zN#cQY6VWVd#A!`_QA4^X=*Imq8aF@MHCKfjN7e3c;e`~u>#>z&F>GjxL;DrK#Wmrq!z~5rKXIk4PDk$ry(BDoiGsf$aonKf +zsZnw%UtgwSRGMPb7YXFDbO4M-3>SdWc!mrx8ozD;j7Ex>PL*0x^FG)PF!shhpd#mC +z<}Od5B!l~R=+i<||E~0K7%z9c-&`@0g5!0XNH{zZ4}OXt(s6NWE%5jmKN#4PQlI1q +zkiSn`$Z3#?6x^6Ok?p{%@Z_Ckz-(5i?;Wv%$;(!nfuiQs&f20aTEp%VVDmLyU}r}& +zpQG1T_3m{*$OnFjlw+IUehT_l(!iEVm>u+3k92BfD@B`CJGWSPn_bO^rJ7>0kNayG +zD^LDwkuQR*^afKgeH#4Cl$fOSAnRZp^DaUU>$pE4;)*3MK +zK9rId9M4Z=pA*xOXeEA~#4#pwsjx}<^Ltd~du$GYp92S0eK +z_i{thTN`Z&C!V*WlNjM#X+B`DZ<}RubBQl!*%zF@)ZCbpTFr=3#?NZ|3Kt`4y5#!6 +zJI@2N_-%1e!~-v}jr!0;tpqx=WUdW`Ps!=HiieK2v+oJiQeBj6)gI9mNQ2{r$E8^# +zi;dS`p5^+U9L-1zCs48mH!E+S5(csrKG;n!G?5CI;&IGCixsgE*Y1}`5Sf|VO);nk +z9ub*jyCg9YQEj2oXa$LqqfLV$q`;Eod--uJ1fdM6G*178VSM=4RsH=N`VrQ%2oN~| +z9B_8=J2p0WiJ`-r*$Bi&FzKvh2)XIC;a2YG2cj%J_A=bh86SJlHF(0%b{09Ax>7vx+M@ +zyAOZQG@vr_X!7Fd$=FRv7lh4RDqg?ZDN}@SE4SNbqz`RU|^$SGz +zFb@N%bZDG<0rLkfT?qP<&H#azxH?#x81!?=+iU2#QlSCUvso58Q6}&Yc`r9D=gt0< +zCB@4AKvMZegM|F)p(6dvwh_-DX_RBRB1Lr-_&uVxz<}B1kosFPQ5#I84vY4Va6Y}U +zU-Pw*Wg_t@nE)>I8u%+$8?W024WGeewzb&B|-z_dq0wy +zn@etwyOtzTC0z;^;ysRa5-*`0l&OiwpYCCRuW7WBS98)n;10*~TTPnGOWNU`-PQ9d +zXz}?v7)iw;?eP6Uv*056Dp}9CsAejT-fKKIeA{X$hW*hc7z5P=iASaq5v5iN7|?e) +zMnCifTYX<>v~4vQ>l2LRpvj&I=-glSmit|e=&%c@axlhHb|}CNw`u8C8`tIMOrwxhRx+Oc0TbKn$nrE=p_u +z$n5YeqmXfp2B$MkhFnuBT*lYh*K=Y)8LQHuC_J5kn=|jYdj69wV!1fwvL(vCLm%5^5Q!cmczJ3J(?b;i#RMc;3&I=3I +z5J_j&8u3ex-hf@QVG0E&YDKH9v9WV4G9X1qBMBB|h4*_Sog7zLvWchl9d{(g{lwSB +zs2v%NHnv31gKJRAPB$&cLNeGDpWeK1oaIeoL$6ez@p|j&f +zfd3G>i%)5?lienVAc>pWgRBrQC48QZJWT~BRS)`?X2LnEwNA6zm(^>EVUs~*b5f)r +z#N^FsLX6l^Ia>Z|0w+S<27F*_VYP{F;#sum`RO9~ho2a4^1WOQWU_+$gf~w%h&Y17 +zHx+|Zfgty)>JK(ma}2;N*8bWb<%s)Kr#^=_s#$(|WkUBG(Ct-jl)b&ir{5tU1J{Q(v4VkXWm#62Z8utUf#3_^1 +z$%4t6-TRw-o!RmP8bw`Xz=xY&F3MMyH(Z^|qd*@0;_ztu)JdJHF@wtoT|-9Du!EH+ +zUhy}-_Giapy?duVQCBfH(I1W6mFM;2=|95`q2>Z*C_f5-u$c#Ik1IujXDxFU{i|lH +zKDLOdGL4U~zCnBe&W7*#5jH_Ku{xDi2Ot{3Y{Y^9L}Q6JfM_iB86cyp_)9cK{v{f{ +z{t%5SF_UZmAsW&C5{>LIyw-n-#zo()jsW#PL?hWhL?aP^X#CP!2wMyw8Y9&``ry_7 +z57EeC{g-Hr#03zI*#99K#V?{UftfP?5RFl1 +zyKe3m*c8U%WW+}OLo}NIB^t+>=v@9K8kPSS(fIjaL?h=PqS0ubghR@k+AySsoBl7+NSZE}1+wCAF6;)%-oyHq*0X#@Hq(I`Gy?`~7al%ZuWF^q|kCfMa8Qy0}7at~}oAfk->!&Cph`F@}RpVNZ|_61ATGgCc=e)sN?9{96t87#0^N&KiK&{gCXunZ~CVg+Cje(FD({-CZ(^WqDI=k?Mb^C +z?{0(bEHQ!2@V7PWDW4LeaH~{w5xf_lhcx6;*R72XSa3+excb +z&mOGEaqCjNZ>22d$$b#k{5z +zp4b;+<|xWTdVL`fmCifz7~WxOd{pyy)t%tHM3rN^p}|bu3vdR-Ee3uTwvQ4eiy`1& +zq7f+~vJLpph6xz#pF-&@Ow|;O7gcxc(RtK+snPRe2W}zQvU}3mqL>9jiX;81{1{(<5e$9f0e#+>BY#pvsM%a&tQ!g +znw-5uhr2)I!0LXuYDv(3u4E;zE<}-xKNtNDt9V(q?O-J`AG5RzVdvgf6?f#>J*XrW +zKO2F`$683O(6?LSjQGf5OF% +z8@G$HkYQ5;tyqg@&&|KbKxPv|biIn_?E#2REwm_^g<&~iu_H$BE*Sz>C;`X9?LjIQ +z^dKG?A8h4zDh{+CLTp+29E(uS8phVIWupGc6=XmR$FOloS>m$gw&PajQw}j*2A1M) +zX1plux(v_p@BeZEf3-OJAi&r|;iGJ=4bG?B)U!G#0VIL|XsCLSjI1ZKBs!4R=Zy59 +zIKJoYno92MVbvurWWy9W2(B0e!YDH)2|+q#{CUl`x{!n~lY}i3zqzJ42o}S^Nr#^@ +z`5&T@^)JyVac=xgG$!{%bN?k8X*0ixM(;6t*BGyotmwtGEv$p0y=&{*5l=t*niIh2 +zVw?1i2Yc1YiU5gV+t2wT@-j&B4pJ%nfRLOP;=RDdIx`!uVPU3UMN@e9qJiS&r7Z$d +z3u=w18d#V_W~s4Ar?!q(!p)!{JHrFP+%5XG&vpVyn;H1$cWb=L`;HV)+RSBNC{OOI +z%|8DUjZ#sebbMp~n`jjJCK^lSHcs(AXg>AcR*|m*fXL7cspiaWrX0q{cVzP@{493B +zX*n~Hmp0p1T!xU$18QyUYdEfPMx%d4>UOfNud-$7?E}~`jAP-|Z&pN$E);|gN6X*E +zw=)x!oDA_7m+~vA)ssHv7q}{hTxg8L{zbjL5)BW`R!V~b);hiSkj4h&cT+(fX9I1v +z+YA;-UGj0~xy>%}GXXf8=vI13ZpWJ&)dlUqbgg9Qa}TGT$G^OJnPL`xD^;3$RM&`x(k`1=rb;ei2?y$d +zZJ9+R19SwrX*VN{mnfVz-{eSQ%+F6!oN8bSsh8FP2XTT~+& +z2tnBHg;A`3QKOT%nf5bgD-Vo4{KQwE^qH4|4*R>dfe(%r3 +zt~q!9-Tb9nFA=*xd=5PW*GT8^7gRet2}JDC*Y4+h$$xM+Vt>Pok0N*`;~C#D<2fMz +zsdOvk20M^#O0kRa2VGpYhAD=sc6IsQ<-`!1iv5Dd7`rPyDb6aeQlciBM6S5wG1FZW +zhpL>iaV3xw{XvkEwJj_Sx;f?__XDS$>!h{awQDsN)h3o6S;k&;nD5nYW5bb@`$wf6J4&p*s0@cXi@SRfJ5bm#j +zOeE6z4HL@`0|4ZyzbhzRrJM9MW9~164M$hVB+b`k`__V34C}KEq#yqfTfy@3G_%Mc +zGVqtO(Mft+OqiR0co|pAA61bPs(AiQ`w{=%a0WZp$mp#KNw)H4I1FD53T!+J8C}X- +zsFe{d^)(=yuTmeZ!nyvHqh){_eID1$$bka1jz^U{^K189A3A!XZ(2PY_)x&JOTI%N +zeC@&QZdFo-_)`QlThq&gpEO4xBQN|jb6zcNdPVw9VaS+_GixQM-1YV^%vcVuu;^yf +zZuk`Q4KohSE%4}L8HZH4l{V_xOq>s)5jU|i-yiGlmk`*fj5_Ma;ynC}^j}L5t4R0D +zha$7D25ZPgg`8%j0>~;u!UaPhK%; +z<5gm(^dc@&Wf~OzZK;YStZjfcan{$h;Rw|-w`<7g7RFk;HWlmkW29+KT2&|!&>z6Z +zr%Oc5p$Q0!V5-c&UNyRzwVIscB7X{u#4Y}&*OI$kBX`{U-qC*4JoTmT;xHn3c&=fc +ze6$Z5aYmm)!`E&@gVP>Dl0dKS4&W3amh^7t#Le2+u7lcEju|r(nr{Wnp8LpRO@;#c +z$zKsiyYL}57Fz)%5aA)fFvw1LnkP@E=s_u}8h;fE3+w|}(vh5PToTKN!z|nGP-U9z +zXj-o_T=n28?(|T%h^`;;?(=z5F93IjUUEd3N|~HiGW^SH*u+nv4bu3+0rKoz`H0zeq!_?-0Q33(zBnBh;N(=*%GS +zNl!UtAA0A#eDWCcAK!m|5*`P2B#AE__Egljq<|9fT#Y?gn`ByJMt@Kbna~o|4my#- +zx-~B-%OJ2;#}gOsh0omBgH2q{57ZNj#Br9}dN(4?*P2Ku&@Fvvd;FT# +zM27El=ghy;sJ?5zf9y-aB?#xZ)lUji)83P*rdWCEIKi^BihV|zU8UvY60H(lvPOg^ +ze3?$Lly-rVcoDbUGh-VjG;N8(I-ieD`H~|Wwk24mk@I>zlQ;#>DDQkc3=pvA5=t*B +zxBR)8SzM%-Lc0~LKW;|>B3o{;@hG(-*Pa^;Rv#>Dlk94vv=96A+Lod||IDAxCcL)_0_QVok5Q)a@fd68Y=p4R +zLjgpqF^-tY;fBSD3fgktqZ_Y}?_|GAL^CX@_k)M;vI@fV*977x!L;)Rb)@j6mrM@P2>S^6@={cOWFUER>}{L1X+#9%7oXlF>jslmrukgqs+^R|!M5c1H8hhiPuK +z+Zns8ad?HMV`fkv5#_zn!{vKg$&)v3h8hfPz7-Yr*NjCshb~E|aJi#1d3<%VD +zQlH}!KZSxVWfUySgU2@+*ULi^yMY{B9F!&Xofk{EGO~C-fu9Xn<4vbapvEGO5g@^05n;UQHA=`scuul{|4<)Cm}r@w +z-@7Luqwl88+l|iuI=$DcbY$Z}sGwu`xcA~@e+b|j_nI!5GpO3%&fY74z9|M}P}B_( +zf~e_v*IP0HSpa2rcz+t)|aOUZ6#OOVWRY +z%3*b^>D+EJqI3KbE(Awli@Q|IHyl>N9vQgmpH?3hBvAu=`iULSezr35WdoNdqz`UV +zEAlv>V+KE{i+l|)4SMzovlqzROWTffX>t9dnTHuy`%q9hKI9)P3 +z9=m{kTn7^GBycjebDCPac<=ngijAiAwo=$T1Cke9Y!X=rKX#`3NI>n(VogXF>753_ +z+;PiUPjs|v9MwT&&jS0T>+n9e@YLPD6nkok6H(e>McI+6e`P_o2d9G5KUj +z3Oay+>}-jUu^1WOqUz#ZEpfdk()NSI``CuGSGA|m?2BGNa9tKk6yp4+-XFv=fA4lY +zQ~0WqzRWy74dd)+Mz-NJKNxRz)$j^A1P=7t_AdSDDyD0msY{1C34}K2 +z6Y;f)$FsEG)yuDQ#ws;z5w3yLX$A-D3n>?$;x)}9NdUMe95NgKUofNfJ77#{)6!4e +zd3b|Y(wlohtfoBo=c4L4e@Bo;@$Q{Kw?RN8*`6m%A$sd4`z~BCPZ^?4o8K%9Jb8eL +zI5P~m%iNo+S(AihWLk#t!=Wrm2}}x`hA-26Fikp3HDhs)DZn}px8OC!HVkOfcKSeL +z3WhWM=28pxQ{EN9s;dZMA{U^!I%eGwgA~F-^p3~hm4Es{28_*)8--jG%?RKw~x%{ZgW-4!ehwrY@P`H&j +zw8Ji?@ANjcE?f~f_DE;~qjFe1+mA?t?h?X_3SIC5yO^C!x*#L49Tz&+_}Zc0NW$a; +zNx_3^s12AGI%vqI4 +zp@N^VEU}Y~3nfr$VXVAt_d~{T_-Pr_+Nn&wR +zf9kh8u$49NR{Y_7ECzEyln?gCy!_$z5`pWh +z2)yHrwe%?t>`@o*@3Z&1o46V*-?+L$fO<}^1eBuZ3*CrIH3KvQcHKeyIAPTdREj{= +zJCRc;)uegl3~XSSAMBP0O7&C3t);4|9~6kMN>lx{sVxvME>1^yZFbMz{CESb`%rfQmFFH%cSux +z>Q1*Mm$JGIC8C|d)&90|m@eNW!4AhN06!E*87aDnCju;`UDyxch8ID>$`}3+9b2)Z +z2E4!?0O%Obhjc^2Snh^MB(KSs_CQDG*X)v-P2N6&wVq~EIBw#+krpe23hr&U(miI( +z!2Mvkbu+M8VuT@P#m)`C8NKmyPZ!D8TC&Pq_Y$_4vc8e`>ubk_D*#|LO-QUZu{0Y} +zK8sdt+dHg~ahFjuv(_uIBxgfSG8?vb&4g0^Svdd2k+8sYCIcQi%_Anf7=TK2T$?3t +zJUqT=z^y0=EJr%`wQDdHNK`*B8uJf;1#}#{$^A5Ocnm-v6%w3VfAwYR=fvYsGY*s) +z`w9_CRg!j`1ur7%g#1D7U|p?C++37=#|sb>K<3AdFh&H+1r79^_!TfCqumgc-z$oT +zwd^S}tnd8}zbl}Poe-}Z44xAqu-v2!>oTBRJ+ij|{H;BDr_`E6wlr5T%kj11Wy`0T +zj($tHlRUYgtDof3WqR>kc=CasqW;dc0}yC;B`HZH9m^iOg(xN#$Jtb`86!XIM=WuR +zu{8BYrQ`IZ2n4g^ZZfp9zL0I*HJ>=n{ax}P7>G!$n4A~3+M4vVWAJ$Gcnc929h +z9pm#k+eLGLAB|r8k`sfUP>vHyb|n5A(>s6mc~GRg)%*+I-CB7jhq1{BEhz)d$F#`c +z)leeCUc4}|1Tsj0!U&%^gXQM8!vxRP8m9ZPP|N@0GA;~T@%`&E_I|sJVr!~pzi`O@ +z>oT5@eY=c_|BuT^@$E8RD)Bu@tj8#jphy45WlT<+wU-D~v-Ex8OZ&%V3=bt+bS{ye +zHC>zW(x(|HdOGkzp!hIRElr +zm(kvp$I$T(^4n$1d~es4#QE|6cNqyApD(f>4z5kxbV3|CXp<}5U?KHx=~&|A<(qif +z%->F6Bn-qYCfD)^_;W2+3Bh9@>fAhIw^ewLUv4Svr%(dH0b$(u?tI9Rm%&L6H-Ia{ +zuY)Q3hJoHJOVbKG9n_C_n6H6{9tC+(INU;M$n2^-2pcEdK_<-@z#XJ&5A=C%?Z8cc +z{WhxK)LL+Sx?mi{Re-W}1bctO=XD9ux!M67p#E~ZiNo$2St-I+uDATD>viacb$Ep5 +zZPo?MKwJf8mmlpS7FyeGM8ZNNohOw=P3u&bM +zDgquXZY1muiDOmLpnxc^S{7Vr;F5!DK)tZunW^dY%AG;LaW`LT!g4E=CPyKmfl9B# +zAoiy@&`w7=YXKVY=*yhZ#7|ig3N48aF_m8 +z^+&;^;Pmf-_d2;C%aF`*Ja^oEx3W6X%xAO*?XXzlx#o_MtQV#{Wg^sNV+#FDO=KVy +ziOpNBAUxgVToWim!TQNYo3LS1yHeu(;y5nn*t_T$ogX{l0Ry9&xzBZ%{ouf2L){or +zcK&D)YgJGsiW=6}&=5&t8A-Aw`CvrHm7|av%jhURM_h_%1JHbtjDZprB0$?Nj>o0D +zmlT@qqDvF`{o_Hx%U#ZV$Sl-L?TI$A1%2?> +zx%io)w$ShDs;eb#?<;bL5v<2BCq+89L5uWJG{hQFOikJm9Ob`oVeXrboxAM8ae}yi +zRo5Gs^{5vV`zV@dpvH)spZB6l=}`FZkb-{yW#U^!tByJL*ik%?tMDL!??Sk}oy^<@ +z#Rt0?Dj8VV$CLk#%KfTc+)w$l&5(#9DGA)u2&NGyYs0-M +zTC;aD`!kdMi3pL2Jh4MB^1(v3F)r4ME{QMh3X|{KpJGqgqW0ubL~WXMeiq@ONfGe} +zSw5E7adH_Uv4ri{=V?0aFhQlLH5XYCMyO2Xt%WyV&J$S_mV7Fy{Vl9eH`VfaHR&{c +zOcEA|pP&yJA!RF4?!mAU-rpt~`a~N2k^`9|SYOF+MZDr0Y!rT4rnEf0%%*l81C(~M +zOmw~`yg*`If3KaYMBYelfLO%!>F&?x{Iy}>zS35^FQ9#Vd!5*h;5K{G +zGKA?c+{O$-(?sW!lJ#`~KC$NPmRTY8kySeE7G1s^H*e5EB!@__5MG=6+C8ddH8Y;W +zyh+`c9o+Z>SdEm|6df4{N6A5!emK})1;;sP&bC=9`D4#ba9gb2n~kN?>XhwdRAs+! +zGB@Zrc=$IpQM=n8SW`k#&A8b2B-aDFeSAwTxR^cK=3W$mhC&GWmNcGCxNDb9gEZR5 +z3RlZ~sBGp`ZuRG*{G-A(H!Ys8$Pqtfzoz2oL?*Bn3NYz~PeKTm^(#ZvU)$@^104uP +zZIbei5!T&=t$sO8|0JzPdKY|Ait5`sK;aJ+EU2q(qN}f7K$W}2H7P#sNFBhleQz-i +zYV#ht5HB?w<$d{uW1t{-PF2_dWWl?CW9&!+{mO6-`dT~1%`)Lf7zn_Le{h8;6R+ty +z;-NQ+TyKE3qfaE+D52V3M`!947Q$<`Z(gt!@fdvRTk;wUOFwg31rF!LZE}|B>)9=y +zl6;y@YxIytmtwE`emTa(Y$fTH0|NHRxbb|}LC_s(jfd9;QZindqL@2ccr)V}mOjFS +zxaR0e{p20GbjIrkYm^FgNXqq?qq1rsUli9^)S|{Kp8KrCFdGOb|1d*ImT4ayq2RU&O$HtMC_%<5PuT*fN@3|EPdc-wTr(jdrjJUf{*ok^b!y2)rY?Q2rZU2^Zsh$LP91~#3YlyT2qQ6*5S@JS| +zc>+3Nap_pIXq5>oFvgXAxb^jVj-1~IC4%9RbnXrCb_l-j0NGzLuUaXntnA$~S>NFB +zn-+U!=$XlZr?dGNka+Gh`=Km|em^g^rDd_ARleIIln1}|RO8t~jV7QmzNX$J +z4_|_5k*)tQOBF1g5&74%D^UORmqWv4nieqsF&OijunsYU+Qh;tF`;GT^1@y`bBuY< +z&PPf}baG}8@?v>iXTLt!%(!T_@8|5v*T=#>q}HE=@GN=b9+Z3K_mOPxNv(+R71XH< +z*Mk##=CzcF&~u*X`ts#H(9u%a +z&BvV=PBQ4od8$kPLBz$;PkrRFSU^X{%$&M&%#OZf)eS!Zsk@saS_Py4KOP%L3Ls1A +z(m+s@N}-O~G>U{>hZd5pSorywjNQ5E*V}lE@A;Qy1o?+$9JmDgfXpke>8GHXLX6;F +z;AO_Y0q_pZ_9N+S;z);0tz6`q$s{)jN+s_C8(+^$&-X>{n7fsWUL9whffQu`JUBP5 +z5{TSCLVg@8N$iDj0Ftk+$~)n|(7}@!2MoS(7bLJ-Ie1o^A<+#meIkY;AFdI{Rkr#} +zCi3c1jd=xWAt4cruv-I~z*umdzYd=SW8c<$B9o$XUs0^vk<~qY*gLHPr2qzStGOVL +zi;oSju&@`SyK!oNFJbv5DWlm7hfu~)!?+nzo=Cv|CBNWM@6mD~Tn~B>XUHh(gla0Y +zW8^K@>3nwxL|2=mR@n)XUF%&jh8jr+_3$F`FaV(xRh5$V0z?>Z`nWjP?#-W=t__PEhE=jia +zP`$;5*}c6lF~=2ilJKF@94UBb=mUm}SV+gDlHbm@9ntnX?L`#T=?xYgU$=Zcu8$Wy +zEkT5d`~~Q4nUR%)|Dcd%Ea-KlDH{1nQK;rR#B9ndJ1Y)|H?$cUAP<9K5?OQ`uCU_= +zXAaXCM;$VbPc{Y?n2_JKsS4Z(j&S6)BVa6tcC3Ze4#wC^!S!(vWg`6Y6_c1`yFHC< +zSMuw0yAH`UW>6S=!!L$0lC+O^g3)6N)Cb~85dhuSLn6lYbNfDL?Al*aNkb*S2ZWL!~dy0WtAr#AHnSSuq#WHamztLct;t5Xsc~3r5KX +zi>q-d?PE}-42%#hhjtl41427j@JbC=r+z)M!3*Fy6@A7!?TPz<>n9naRY5OS&!5fn +z-wq6!wsNV*jD$-4ia!ky!;fMy`vfF@Lg1rJv8^iQNZJ7@STxTcB(kKqnBSdVz)(I6 +z*@DcpuXncP_v7oMYmt7oebQGtto(=GT=vY* +zXZC=H{F2nG2(XixkPfTv9hcvkR8XcZ8A?G@!6|)QP-x?ta~12Vf=?Na^~9)K@VV7Y +z6m#AUS;in&*3yEodGKg5r7?Z5WFh<|UK;_oFuJg*1>{3ro~#mR4zc$=KjA@6Zo@ubEGsE$A1H0L`5w^u)(yvhocKln8hHo&A;!CV0L(SskB(+1% +zkK|B^AfxCu?!O#bX*`o4Uvf|FbUSaj#M!U5YH9lqjC!yDJg~6jE#XF#R|H?&t|xE0 +z4=mfq4a5ibSM8+NHAtH*#R-;&6vxjtAT{aujkTS>&J4`lvRbcFBwIq*6P`;-7 +z)6FN`)`rt;a+wm8S3KQ6Ji`Qjyb|eBce`CXI6@6l%nm(3Z;uS>gQgoPLF*t!3aoOW +zDX?pUlVsu~b2$1tve)$``TukYd1l$-t{*(E4S$L#R#rIL?G?3L#vk%NQY&=-A@>_u +z+Mv-!&SZv&X6l+X+h$fZV~@GjXNfD<6fA3KJxO;bpujs4*YdO6!Oup?b{wdtZrK)K^Y +z!G#x~< +zdsGookEaW}n;F^&!j#(;o&h^J#M=Iu&8k|zm&fH1!1uV2?I+hiuGsQQGGWS>4f=ej +z?+BN~E|$XOOZs}1^Zp1VvxpIAhS6exnVJC6GviZWk^mZn>bqgfZ8;{>>g@4~ormC-=To%R`i{AMu>f-xA +zdAcKUlp=nVb3+;f97bBZZ^4O*BrWRql1K7KHMdybt|sYx`F_@7%qM4oy$r+)gK9_) +zWt741-QqX4m~hDgKwFj}*0)a5cyrWzzz9e`yV5CFpXaQnS-C88yCMK28n4{wRz|mS(T+j!gMqg +zet{jxKra?6pDau(Q)f{k{izy-d};|SOs_sGo@z@edks0cFNP4{?s$i1OC*~}N+fE1 +z(1A?0lIlhewbL0Kw%8ais?-22bg6n|4gttV5*GvyJ_w)l$YXNy?J|PY!9p&i&FpY8 +z^Ui#`jB^3-#>TwfA%_;dfQ2ad>GiB}cN{EbHyZKSTEF!Ha6&ss$M9U&14{?O_;wi~%l~m15f5tJzFkJ~e_Y1V|G10`RQN2nI^Qm1 +zKbK$fx65efK=bV~7Rg1%UYteZrfr5-R?C`D8E6 +z)!m700cB$}PT6mlF`H)f+hxrA*JVWib{V;`@Jpn1Q+!lRYO#^G1a1W(YLLr%D1?BG +zgMTpPFUJaLrQ+j*3;XFV$yN!?0W*cR9Y(z`)NQj~%0`#XB12l{p2d@#RjZK1IZ=fM +zHX~+PFc|(Mk;;9z%$z%;vGWlHWyO}?{4BkUWY@=^xoo}p9N8O^(s^@@Wc^sdz-(qC +zVYWwf_yl-swO10x!&>fp2$jdTh%*Ane|zBCfwmJOPn3h*UEl{(Zll%^mYDUAn;wVP +zZ=br!^1c)d;K^q)!9n$1Xv@QXQ)FOzu@_#H3F;CS)J1A(9g_calJ~B!C&8Uo-*3WN +z!~Nl|+~jc5L@Mf}x$9o)Cu-FcVVd&&l_HFpATb6|lr@hYHy^7sQsbh&!;NB9rG@d2G}46XHOKNZ +zcb<`Rh47fNPk`7S*e|kefE%j`k9;N}G8o$<5fBznEk5XWeCeQB)$9!@l|v}dAbcN= +zoFrqu%{SXo3K>{+AJ%a$js*%@~=yKMA!6C{&=t(ZW=Vkj{oIuWk-QY32LOin`cE0KEylfE)yG +z-C<8@E+9Wr2NxbXG1C0s4)^ARoVyzkSMB+4fU@SJlNK~|&Dd1-&)N)y=2*WD* +zRS0}$OJSW#1s7|s81k@|P8KzzX&B{dIsFWujY=L^Wzv;^EwnRT9-Nq%olzb43Mh1qFL~f9Oc*m2Zn*I;V$nniG-n?~{y0pbf)ujH*GU@_B`v1c+ +z@`2BjJS-KQ(ixiY)j-9iM94zx^C3N_0MCH1@?fuivy8l1?Xto^KL24Eqd+qjcv^*! +z?TOaHsQEiv#1%&x*!D=v0?Hq9>nalK@*-Z7Qpy(2Gc{AVZ9oUsD!1#KWjn1@v1T +zoDOz62!vquS*o(Uk#l|cTm<9fiim$Or5DFiv-C`Qhj9~He8?vp9Du=>7GKGp=3iJkY6EuF8l*-K?wZSR^?noFO;>8fekn%6Y31@T81rL*!A7d2 +z$mtC15kGC_k>hgFnr5gS61lwu5fV6Jxr8B{%~Zzl*lSckXmcAlo)2z*dX~<(TqZ2G +z!C4OoNVBIeQwx$U?LmPSJ=+!2rZW+&oKLxqnpk3s#z2pFPY8Y+3FxKuP){9A`xfGc +z(ojk_t!Lfx`28A&m@yGQLy9mx>bYmOG%;nx_KXOo+Cj`vbbcRjagh#N^aewR%^XKM +z#^uZxZqj5a<$*+(ZaX(;!JA4E0WVUGs$U1t5=>dK1KefEOIPE{k)(9^0Ku7K=-HC) +z_2cRc`^pd@#xS~|4h+fcz2hzP&g~l}S_6k4@kT}+8yC)t4oom6uc{4gO>Xwv9Ti^xx +z82LW`zbfM^aKT@dv4qWR^vJ+!aM&;9JO@Frz_L9whuC#eVcNo!) +z_oew979-tv{OGdV7}weN_(Qo6#*Hjp$+l5le} +zGZZka8;%(;SKD&tI|MqlAto^L2}`ok-o_cl&AKWU*(z7NsG6*veti4M#Ru>l#%^klyRIv+9Qu|Wm?1^ +zR>@0Rx<8lUh0AHLpV}Ys*u412jB9FsY%OL&FCs9Of>Fh?=fu|jMj1~jo9JG? +z>Zw5|WRhlsm*X_+;~ezK_Y%*6P7Wbod%&2}T7PlDv&98#b=Gc8*Y$lk#9qS()fq1pJaHo6k23K^nB!;>W1QH*En$_ZYD)+QNjk5USV<5oFl4h-vT)z?A}NZP +z{v24?gi`zEyTu&uJ;{0i9hYJX{6!h%#J*9+%Kw8h +zK76B$Js*6V|3w)YL;s?TMb%B_|3w)!_My1{K^ZTZ3(*9>QN}cAka*xLUB&BS%BA0r +z0>|;T$i){VW@JT((w=Nk=Knz%&Hp#bSQaX#oU|Uw(R%rfG9nZ6W4(!dqm1s*A5d1` +zC?noeO>*l@jrg-op;RSBhr2BcA}IFeiI!0oZ!)nbP))*Gs6%ImfZtoV3P}^0$xq;1 +z2XZ_R@0Qy9x`L~7Oh>DTTOUX=VAUigSC-6 +zXfY%9^#_7;jVBSH&#(^NXm(ZGA7d(5s1r5?YVm?$AEMA(-Yt!GnFbNTX5q)eb%#%@ +zi$lhQK&fZ16Td7R=dwBx-gP68OHwA>z{nL^V%^FF@6wK)Fg%Q`z2nd=&m=PKmcpL(XdcvX0L@d3 +zNu4rtOVeR0N+~9euVlCtDk1W5X_oj8Zr~ +z|DcQ*e^JJ|h}C~lM%e!wWo#fp`v+x|{YDuT;Vek9wlw}@7iG$#!jtktXMJWX$5{uuTH +z7?1-yf`iRWBSHNRND;E?58$>-}Ic +zZ|#)!_2MIxo-&^JHDtRVt&8^#5?sm}3C_m?;8ZLf@T#PCi3>;UPYK;j7J4;r5mX7y +zSEt$&Xy?*jTiW=G9E3`d)xejGSdGSWjx&^4a3%u%7op{M5;)A +za2SNFFwpDHTrM71l;QZLnS)el)g)2ivn#K;+1Z5^B8razU;X +zL|?#FlMn?ojVYRS1CG+I+ia7Q1{lGhEKYu>p-y=`X4JC@LVqT}xM+V*m}McU +zW)8}b+V0fc4xoaj-I)tPdRB=Y_MFVe +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 +zx96h9#SmA>euUftkF0* +z4Y0C#MrasIauP4`rhUPP7+jdbR?%3-Q|_wL`vbY3qdDKfppzBQu!7?zkMQ7@ZH`*G +zq{0T8H0dE+hJtr#b>wQ$S&i{LqkE7NM`K{#k|9E{?4d|d5)<`3Oy`b +zFKZ<Y%C +zFVIJV5;>K_9r-84pJ=L)nKxGfCYvtU#fg +z#|Z^Bx4XpGWXicC=P)hqxG)-G*FDS!2DLvvS=a?dVnYETatCW%i5w=o3dn0Z#KLgq +z>k^<2R{8!;Pb!u?1>&CWmZ{-LDVWmLPN9zx=y5V!U?q`jj-aLq;hHPT +z%70OQT6YQ$w)7r&Qvl_B(hWUwXhw-Ab&$4^V&tl0R3|5pnwe@PEJ+7u1}&L@k{*w6 +zARjf=fR--x`}HU#j99}Bt7DOrWSe@HMipl4YG~$dFt%I72F27YOfrW{-AaiFC1VTi +z|0Vg#=wmu1#y!3(V*6_CA)-in0(%w;5CCTC7q72T3#s7L>a_hxWu+d;{1Ik8hH$&r +zM_=sdg0lDP(iy;NxCm!p7&|}(r@5tvUX1R3y-*F9lUwYVHCN-^;rIx}u4Jmxu5ZJ3 +zMlaLzerGZggIwt+{o%E$*nDTP(dZG-t_}JF;SL0M_|LOKTtDM5w6_2j1cAf#uK7TX +z3OFjS5sH=echu{V2!>_s5g8ZEJa~&~)u|$;?1*Ww!x7<^v}qkcQbxaP-HkgywVk81 +z9|{j26kItDepCCt&exLk!+JVU1XXP58_rDnLBQOuI$^AdCb=*(Y7L@ROz!k4A4|JQ +z50=O`6bnOpdk)Tnjmof=*Zvr?(<6D@#C!;xHL9Br2+@C{sObE|yawb%LgBBnkkB}O +z;Ah?@w90Ym+>Zp{i|q%j@YQ-gCLr#btF9B`XShxe=zB&*q$vY%N3BwvR2wz~m)Hk{ +zIMt?%UxrO@5VaV&M&%5U1dL~MDM0GQYC-{A;kFE7Xnq=d5xh%y(ZOdXgZwlnV{Zy# +zWB_^UFn!Bkfg>zxLdid57im>{yZdHjmlaf4&k{)WBe=Or+fm$2|?*&8SNGOPes$RkR|r6etpf +z!UP93k*_F5HxFuR65ZuMy?02a#PEWtqJ}8$O`K3f>mwARkG=)mGe)Qyf{7Q5dYSS=~19PZrf~C|9+S8am{Q-xh +z?^N-MQ^pd}{3jirgcJA3D6AsFQ^_=Z0>zgMb{c(IC4hst`hnA0)Jg&n*_RSAChF0J +zb8<`kOg>3k@p3IK6cS2T8m$w8CVg}(I;Neea~^#@(uoeE8$zEy1kFu2u%oYx(hTpf +z${+USWIi;%debT;JIK>bw}nCY4RrWTloNx)SDkCi8D6)3`c^FoYYgM%S +zoDVYaj`T>%>EzA_k;|B3OJw +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 +zTGL +z^ZJ(LD#|fc!F2@nhvVPZR=S$YBW(Ak{KVt%#EW8EBigRr+f)X+Q&o4k!e3MdLU)P{ +z`aps?*^~L$!09~O!gW^Ily6#6(k&Q=>g|ylb^m}f9hjy6us)rwF|gGX7ajFzIZE)c +z=dd>dyPQ-RuderuwZj_XRJia-mmm1S9HT`U@jo +z!XQxa3E?l08b~(T&T9!PTHPR9kwj`4k^9yTU9=sXZ{qz_wD36wV6qPthmZX^ +z2Tr`fD&zySl^B}FN@@FY1ijf|>sD<79$?-42Og8cc}bx^A5-<{^RBfLn1BKxCgX@W +zU(3fT(83>)wS?Oan@}%-eqw=8EBm%-VIn=^i&C>&hfC|RXbaGBk~xc6j|ThB7_Gue6&JS0fT1mk%ijgX;h$TXp80?m531v=S9wWZ2*(zmy4W_VZZC+3}FK*X!ci~-!2>vBkN +zT+QvJb%U-wnOy5hqJ24j6F||RpwPO~b57$(H+QX=^BR3 +z*oGFkQYM}yOoaH_kbb$PytwRf0uAK(k&M?!T+PkmTiR_zG{JZ88Ut%hnSd~#lnmZ4 +zyN{m!2PwYCif)Ql4+wo}*bLeX;0z_Dzf4X{SoAtb1zUlwI}sS8R75hykt{tXaMV(- +zY+bXaZ&PAL-~>2#iY*A8L*;smJKAIIoR*k`2*{5FY?XS>3imuX6ZMN>bpbZFyRRwG +zf3Jb3y3-L0vGP0-ll`>7t01H)ehdau+Ve@41?vDJCn#~_metV=wnS&kpP4C8vVRu? +z>h9dC;^u-u3hNi$ue*R(rV7Vp6b!i&;CH1k)W;+kaP^wDJ=Kf7oMoaoDq-qo=aMRV +zPPpv_9ibXK9@R+ooAM3^I%HG*nHrlBX@{B=!wIym$+6$7xR|l)fVGRgF|Z +z_4CLL6dE25-BqhI_g*$q>s2Eb%0THn708v@oF?5JZSb;W%?Kly*={S;kO)_I@ligV +z{nMtV(&8o1x0hf^5;yzk#KJjHy;aG;C3Sm(-(sK~L^<0*SqfZwM?R}a?5VP2BYwlE +zF<%vwFS_tN5)pWi!UgNg11XO4N!k12mbF^EBk=?Mke9t>mLc85HrUE1J46Y|TE{%T +zP(d;wW-m>gB7LL5JTU=33+{OdyH`2n;TrdXNk$H=3sBHnkJx-1pkvCL5)ZNCb7Ijs +z2`rg%faxH+s8!m8RTdjGwHE98nm?lcFI9xiAwOs{tLayRM4;0VH6KRJp9RUTnDiJJ +z%`*DQZ1N9PJo1j@LA)jw|A#6HIo}Ui&izXj!3@DNOh~?|B8|`*F*?yVRV>N;rizXJ +z&IAnu$$^Y+;hW!7@nP^pG3t4;G*$64 +zYqMRlEtW$Df@+FvhqhLW$XZF!n-W6eHD8$r$rz*tQNuJz8fVTRRog?_7sPl}*%phw +zNhS$e>O?jD3{a(Cc4X_OwBLmeqE&w@4YdV@;1y$xM5&0Dc^aXRzo{b3zf>{tAF7BZ +zyaYwbD%nR^^Gy{~n_ny0$3Pxv>nhB1#egfFbN-=<3jb2Y3d(P)IGxa!pp`TCO%?m{ +zzNw-HlLB|E*HkOhKGYIw9th3HZ=fJf#rH@_ +zQ41Lb5N%f`v^D+Z>lJT +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 +zY_EjYnm!cpNoS)(MfZZ- +zjj8;f-A&`l2T;t!UsUnLp6fw*l$swpG2!KcsM{p#PC2kE1hr^zC{9-6XPdYZ+1*z7 +z`x)FpE8g^GUoKSp4&9~gi5zPXB8he|ULbl};fCW1NQCX2;n~PhzSn})ht*GlkLmZZ +z5UzL!u6}PHY#GNmoYH{$OGf|tHo6L*`w8Au233EE_d81Yux1qmuY!Cc6! +zFf*Fw_1$Ti{IEJz%tB=v6v8G)2qWG{cP(s-JQ?=oy_K6PGc`?*qlixJHqYh9A;F?R +zomZ#IURn4|TgjmP>im+6*t>n1Sm{u-j=@$S5c`blUN!-#Rs;)zT!v98>H}Rdo7_$A +zQ7)}G{n^tun-U~mG)`)rzYBR?D8z&q2W8=Yd!58W#FasnpWj}31(2Vrg>^5k=pwQ> +zJnmcz=*xETlL&VKOOUcJJE)Xk$Jln07=Qu-mYe+|9siivhO|-2gx|%#rfiR{yf&b( +z9!D2HiVZ|;CNygh2sc+BIuPj|Lwu5DuOkhOCktB!WflUiF7Iy4;t@V;;jr!K*&hYyI{P-eke)p+(b#M*v4--Mw41 +zO>X78uFOzX7{8tNUq=yT1%$4IK#JTVprniV{L(_3j=gEK2%B4c4gR!Xuw+G5kBG#o +zS{AYtHU_0-cEbCxjjJhd3Hbb*v6=wEOoN6mH`b7itm3P;QD){tC;Bs5?5cO4kN)p6 +zyoHbLjeTAu;vEj63U_FK1Ln9qguE}Xh +zJ5S7aNfs~#*!Mos@Z^CGZ}g2B4b +z-}<>5BT3uGrmIw>&Q4YIvmU^Qkkq8o*-Ov`JFFcQ>VA=bykn1*4!Y2HP4DtL?`eWv +zCl8E2SX6$+l7BsiPLM%_T6}kw+ +z{fhgLI$T{Q`w}!o7_MkYGJs8^C=U18Y1?e%sFYrz~V09jm~q$u+br*#== +ze?nfEdh=Rcy|Y`%_xKEi-$zb<0Znv^Vqg8Z_=CyEW{i`7pMR+2!Uy1>c;NPD#*>bR0dHy|ynE1~wP +z=BFgFbrElT4jj(5l8g>EUe)n;d=x7C{jYdAO*7d?skCNKWfSprSjLG>x%Z(LZ17a9TvIA`Z`%MM|G+bYd!{sSi4~c69FP15G%No+* +zANVTrQx8tM_uFKnBD*j~CD>UEvAi~WiIT6J@6H8&7PIV8-j{s?c=miTYp84=8C^Lx%b(#SZSmUUEcUq;E +z1Rkn1qF~T_t>e!u^!bg=VycTtV}G{_l^0&4tY80B^;K+&<0SD!1ScRgZ}guiCs0&# +z1fkJPd$-{a*BA<%@a=#@qi`{P)R!HE@2d5~Xp`5b%++6<2E~r@a#fr+e59jfg)uCo +z>_TA?jf6w>Pi)%&-Tod8d+apF({6cn-R4hV4Vzg)Ws02Nfyk_+=?;nc?J{~=c|>MW +z9J%C0Od#MrZf5w`<8A>Jp6?Dx-3)7HyVCc?XWw)3NUFb_z-TvM%j+;N@xExCBzi4wna{zb8fELH&AfVkYW&7rVYPm)^4J)L;P(gen@CP=Q4^lIei! +z!aRi-*0`|&i^a*+yvpB8Iy^>$Ko&qUH%I1}`y>d^(+71pk84MpYqv}F)`EIW`rS6H +z7OO +zE527Eh_KES%I(`l(9oHINzQgE`DbgI?~EApN7rX=O4u;wN`h?Dx~3wBOka>#SBw$6 +z+vm-k0#| +zx;Sk>*L&SbO6KSl{A>E#c6VV54;*tuVf^@Q%O>Eb*&mlk@R+8W@*`B{hTm51YnIqs +zA+}Pbs*C>Fc#>{nnx)vbMkvQ&*jbLq9SNy1tdtYoquxZ!8E0mW67H4jFB~IoLCxJu +z^q*1Xx>ja)wv#`$A{L2*7T#K+-cexzkyRuJwgc;8j8|6(DKBu&K;UiyMa!74ebvF& +z+r#hG#b6Bf05Bch1OBfE=3)8lT=js+7xC;e&xvJQ%*WDMDsxNTY^#O}N(rz?8C6fX +zmlRN(z$1T0o-o)waPFqtR%UAH!vYUoJ$~O$|5d^W@|@%I7aSj=)Y_(eYhe$($jQo|UX-*^J%jHq +za&)<9pcdrt6AyE-(N9fdf`02yjM7nXy4NQ6-p`oI2x@o2zkWMREW~3s?`3jXDIwar +zKotl?yVqKKtqo4RLN!+Ee|0Lc_+6rk1t^)H@7#HaEr6)Mm!0^?Isk`?YGQL1s5?%& +zORAZ;;lnfjfk^@1v+s)ubtPR`mo!m4n<1iN!jlrMz@#GOAqntbB$%U{*~ou0&x4M% +zb5p`nBAijTf<s6O +z=tIq>uDeCugO4atcmlipjYh%2luFJ_KZBs`{*VyqX^@M5oFtB`&7nWLxN6}qkVXyR +z4@-rnihX)0o`_Ol*FkVcG3;>4xa2#T`l(t8D!j$dx~RaUlqiZnKrR+!aink^bqo3k +zjoSe9sU1RDwawP4#}#7%Ob+O>UGOzrLKk}_S1LeN$jl;AsavviSb9Gf2Q3QV5qiAK +zxm&oxFmY9@J6Jm~!NZ?l<$_1QQk1+iPFD3?mJ0*y4@TIuy(IT$CkmZmtiVhV9m3m}h+wC<0tIIhjBXX4Y6=!_4m*(9Tl#^`CP` +z&8NIE(5LZLMp3*A9MT@5xjbO=HwhPPBv)QhN3GVi3mPRb6D?`$STSK|TU0^bp!3ME +z!}yuY2f$JHSAH_+!O#h_@bO7DJf68X;`0v4-dh?ib)#S4Q4Ea_2<%Cp8NGeSyDI%{=9F)w(qdiOiPrBZup +zm{}(ypkWci#R-ep4aWz+%2JIDG>OqyuoYeD*2qx`5m98TeS$_@gAr^bFDgFG)?X~L +z$|^U}U-;*PQ|x&8O!a4u-qju1a;v{n9gSdJj&glyhh3`<_0FK{uxh|r}wgN>F*qiR^`Z1Igg +zM`pc|{(6v3+r-WT`(%3XI0%FiNy(J%zKfhl*(!Y{8TZ8sfD#AA^F-P(7qGrHxmEnD +z{y;<)s=maqzOsE^(@F`d`!}_)=Gw4$sYp$SE1v$Z{%6El3$^5Px5#bg}9b-Qti@?GO3o0_DxMa?M4sR +zS);gHr08dHsQRe|p=9lTMBXI78w1}J$a`jt#;?EcyhSxiETg-?0JtE>K=FrLv=B>6 +zZLeCM)YED)%!9D<2#W^7L3$HL<^w|q8)m^yLe98%!&#xKEKFU!b<_1W+o_wt3wRYT +z`0_R1eGUXL?8+-^?1uO4rgU>+ukI$>ut;?vx(P6h#Z$+MY-h26kL?f%1Sa8OP&amj +zIl)I!=q~}5I01eC4*-ooa=*EQp9!~88B{=tv8rvE9J!YhVLUdLo9KK*8`zeuqDLh; +z8J7+Em52N<1-=F(F@5oB+wA~+<>HtID|mbmD@;{B&~eGX_NA5duQdm9R~UPrzCJJe +z9mv3A%VA^}$=l7uXbo4SE`I}JnJ?Kb4VOO2k`68GXBnZfnp!`uuL(V2o0G{CredDmt1zrS1HD(E10=cHvLq>p~RfUIq +zVAeJ3f91gavBlZ-1EDolV4gav5Bg;e?zXUw37=C5O20+uOEvG`J-lsQ&V4GgBGnTE9 +z2p6`-DhSu)-)OvkvC(gC+W$jdTNN}Y +zlr7nXCFh0knW>omm@;WxQfVb>LZRFW85s>{O#q}EbC0*SM&3CQ|9z7%8+i<>C=#Q{ +zlgUvqF*2K&kVipK6m61(EgZ7=l`3J!k*aCKBTGc(`vX1-94Chs_q;RFe@PVboT0r6!V1^u}wFFyNc +zJxctUuGisQj>}~$UPA(y{7a2wR8+CgP1-&>rIJ{ZTEe!7N>KM&w#Y$by)52d)VP)4 +zdA@u~oO8t_LI5Qm;JqJ;&GpGiIro6CBD|rf@Ug)DTB;`Lo?MoB4-Nc)(f^QOMGhWf +z%Lyc`o=7coo=G#F%z>m+EO}UuJlsJdp)=ZSHy1J8J-bY?hg8PfoD%;&h>zVN-#d5! +zG0Q(*yd;M(GPWs4)$H2O7hgHvM!ES%ADZt#42i1&+~}hn5@PHwSy)X=lPHtrNC?Dk +ziSlbjDsqxQ7#57;qh-=g)}->4m2KFt!C}-QSWU?Sm1IC7cZ_sf)2{<-+;o-4v}*K= +zwAYzHZxI{Gk^nmHdQ32)1XvbAprONI)N2zHkVjX?n6SKltY?1U0vZl^P}$)Zb#&q! +z#>ac?_xrEx?6pT&y)nguN}@f4M*@45zR`i{5?N7RLI)cv&y+;emB?YKm>sBx7%la7 +zZ|4@BJ`ZQe*8FttS&clACR75GmIaL03|+1up5W=(gDWtik-VpS&WR9aY2~v`a~?s| +z>3hczIGYGL8+7uics3WT;Ro`wyOf_lvW%30)izHr{yE-sKLm2YjT3t +zHO7sf3DDF9@d6N|%%BphkwC!R+<9uadrIH#ku~$^@N%8ewQn5|MNy0OZlzl!X=$*o +z*U?IX1hW0XEX);`r7&PpIi#B0oA>fA#7D`A-kpBs!SKzgFd_Bn>$A5KA5V|;n3YrC +zTwTYZvR!Vze4?54TvPH%nz=+8mt*pNC|Kyx+XA81RW>RfKQ>hPq76O+x~Z3ZVKq!+ +z3yD_ajBVFq&MKh?1HJ8eop0PhM#Qgna2DyQ-=vzB1?*DVdawnPS4v>KNr9xq +z83^0smGWRPTuMEgRS(HQNdn$JI<$P@=po)1m6%%XB#L8W=znarH-FPIl*HKau$x;N +zG1e(dTLOmx@0r_%^>%TNRWFORGQ@4dFlF2f>(>~N4670*+w9xuV^LmEuFRcYO+Sa +zQa$+qcgl7Clq+aJ^UIJmA9Tsl1eFkd%aA6?WtYSLR2xn&O(4xl`{JP!BRU+0sow^L +zTiGesBkF9bZ`zdbxHAr=H_Kknlyz=%9llXd3+hoI!S%TkNS+;X$y&p3SdVQwubEa# +zY??865kzaIPwYe5wWv{b(b7F?tYeXstTV3vdo$hhc}e1+5M@}xqS~9$s$LAX;;`-! +z;=RdZK8OV96m4q|8wvKGA(?=>O4s%C^$pfKq<|*+^~geZ5p_u$EZ{X5bl!5#lX)6o +z7?_%Ma6lSeuG`iMK`Pl6P*SW>+%1y&L1G}o{z@_!zZ&4_4bk;rArODOD0$x^)z9SB +zI#-F!*s0RltWh4?UIaDErc@H%==Tm{n+q7?<_+DulG*}U<~x4U;ssSZyvws>92~|c +zP%i~T*JO2xz`^7sdFjJH!@y-!!8Bu6u(0DP|C03`p4;cYQEAHJ%Cm*%5PUjAoZLN% +zA?&pc+eYZ0k#Zm(xN9XCBM(5N#P;*AKmMrpaglIpE@Z&KI7pmV6tE$7oS7@cbD~Er +zr^sn$9XjgvwlEUX?I&(D5e{LGgs7qrst%8-1+!$|V+_Pq}FGS3bDM +zBzc1traq>Zv)=(czoGh%YuH)dV!#qnq*4?u +zv5-n_5f{{5;t2sGwZHPrER8lOSW+GgT0RLMSj;5)V10(ViD8qxUM{Ka8lnRXr41gA +zu(Xt0>#amMb!o3fd5g`WcUjpb7-`(TrF+(?!#Sh^na|jSH9={0stRiUvO9VKvzq%H +zY&BbFgOKvhXSw&k{yN2|u!2#Bp5=NUz<&9`xLm?8>-1IYP*s&9Zu2ayoTCc|v@!mS +zT#3R$QD^Zjp+Hh7K28Z0!QikD$J*NI6x%3XwSrzysB^74HSAVED##XCa}O}*ndw{L +zagBV#3mHmC{+-eA^S>OeyCxS!(76GPc99oJ3>Gt&Hkrv9BRaMCBn_knOZ0~TG0rc|G=bwKx`hP$5cmh{Dr6O=t8E^%C6+iN4UsKtlBDRGy`yDxY9E~;Zh0rR#tuM9O6@H8GciT0W}Qf+)NGGNV(+U9&%mV%*NYNaiYZ#$G%C-cG(*! +zkDFa0tf4=*g0*EG6&>T*mP7Kr;k=0zurE`kyvF7=x@pksK&|s#Q3)f=FlwbB_K!%3 +z2^%^PmpQwq?Wq{&1(T!2LDC<9i@bA??lWC>jNNP>FjqgocXG;O>F>-pN_KiJ0*t1k +z7Kp11O#&y0k)bxQVhq|G5+sGFY*0i?sP=)qV~x)2kC@l#1ed>fK)(XmsvWqDJbjly +zGL1i1ShH{OACPGMi^~e!wB&kebBq_{U)EB)ghxkMru~i@H3rE>=lA^F=cBvLm!d*} +z?7Z|yc0kHO!t(Nj;0fxl7EBcrCJSUY8Dqot0?`vIIgtM)M{hS^aP2urC$fbvXT{iM +zW$!VuyFq_~=ql`RN{iFRVi2_t4Ol(EC*mhyNw95BZ$qkU^$v6=idbPLimyTYw&>>Q +z9|h60Jk(?MvJHg8QA_|Edzq^cx)T^r~dJwzUhthI@VSL_D2pl#! +zJ{EMzmmuCfi2}+oY?4P6oB!nqpYIiq9VzU9xH`x6N(@P%q +zlq~quS9-m8x@$qo0015=JBs9_s3Of;9MVfX-7Y_B4dIg0RsobupMdd!Zn?$Gp^ +z_KJxp`^eWZHms#URYXfp8U#0qUtHQtJo>7+Ft>OCTvXSeEtmz&DJY{^pNyA`<`1hh +zq;7O|2a-&Uk|5(uE+GSz+s00jBP|~QekKNV +zo8~WRx{L_b@YIi(gra$*hOm&*4+2Pq^G!At=$f2> +zl-lhyy=4uiUF&>0JA+ES@f!j3?sl*4=rBka2G@jNrswV(V}B~qdI;dKUT7Z(?TTfLs`S?gQZR3S8iF``Hz_VL#B~9KGVz5QGK%=y~kih!U}#CN#7eI298teH1zQ#9C7%k{NmebVv~L&M_iEi +z+}J+DT#~g7s_|_SN=dA7ojr;|B|$QVTOOfYZp)r^Lw;yF+*fb>&Kl0UcdW}WIXmzM +zfZoPN)S3fwRr*jq9(?ov34_~RmQP|J&yQq#m5tbE4qBRD0SQTwEmnI6@diEQ;vR4F={A1FxlWTyY`t@SW+-aBZTST*NaM#? +zF~Ri#1Ls+Q_NLt&`XZhAy`J~R9|SD +zzIp>hFdOrVdlq&i+&V{5>-|>X*7x`vHlL}IRT1_4uug_Wzs--SSHkk~qNVKOkzTm|54K$C +zAc?fy>Uoi~pI)X#=EjN&9f(3PV3AgvR5jtVYRpW2t{O7Z*9NX&vNDu%;Z&aB6SByW +zumtn(=0Dzspeor$4&TUmDNe96ePNWudkq|`YbTGW_?I>6Q2vC0$`RxuSsQUsL;4KY$w*VO`%HUTZ3H^K^g*7jCY|B={K9*C> +z94L?fCb0l=JCBfHeC&3Bj0H4D-W?EUWC#dQx5t$-PcFC2tI!nEG16b15i}%T=w}Il +z)1Ihg4}}2dL +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 +za&ap-eJ_Ap3D!(|x#R?9GO%~+^-6IyC!d`O +z!8F+OS&GQ!G +zXG{9T?X;*Wf}sVC5)PX*DMGyD{C`KOor^)}y +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 +zWN}gv5rp8e%1ldG&}X*PtP36(o?)da%R>8 +zvmr*Q9eahXF)!loovw=Oqy}IDe=;2R8zD6B>%OXA(>mB +z@g52QyIl(dhKz~DB1w59*d>_D7mTejoCVIxq#!Gs0s{-PsuohrjaeyH@75BSR0r#^ +zW&IngIV4}Hc$aFV+cRYR$BewC+jH6m)5sA7vsQX}&7l%JGu)ww4I%P5my)S<=uuaguXY3VmGa0 +zLQG+f4@hK*!ZLzddAt{t?a{j^yeYvt;6_pF-mg()ec{nE>`+m4U6RFJICn8#x66BF +zeWY+5M1|m$bc(lXcv-*68|;s6BB75t1lrOKc{Q4Lx}n}Qd3V>M0`dafMvfh=Rqp@xj@s!>umscEJfh>;*2l+uvBh_i&dYoVj; +z)-eHgtso-oVWA9&W-xkFCdw>S{M=mkWiF{Qg!RZe&NN=!bD*{Xz(4 +z8^({!6D>9Njmi+{3wd*q{vYz%tf0Yy+>~8ta-OK8ITe$S2`5JrQY%ps3Snu87;89d +zhEmcpw|HwQ=$Zo~$xjq!BacB9g<=#sGg=BNdZx1%bSemnyw0R>3y1jtQ7QxW;Rr*kh)$VG#0wMJ5wn?r92{b02Uj7wWIKBQS(fv +z4O~gwiJt43to)GE8X#emR&%CH5*4L5h;y^b3v)$@Z!Rqgey$lU*wq&&8!jOOSJB^X +zTgvp2wTwAyp_NIy{gCj`s%}xxACto4wZ7&<$xoqeyM5Z4W=URy0+{%vf-)-HK^L2} +zwKsAmvLv}wZjz^9eQkO~1|qBJ=B-KfTd1PP=858*7BdYFR^VHVT>spWk6j@X+*trI(jOZu$svsNWr$HVckRcl*wWw1d6!8GH*$ea-cvM7K}ws)65>-lgw9Uwqd~o +zcD)qAa&i}_F#{60VmMrzeiiuVhL%oKtI;B>MATo +z*)~1^dDI%lgv;yOyvGwx@M9N8o(+DHM<>RHyd7h|kDsEmmmXnu#VkXV679}i0(h|G +ziZ;xt&>iJXXkbHOtfGiI6H`nTvkmnSCAePB6O2ErGo?o~lGkvKIT6AvseG1UjKhpF$8Q({<0WDC2brNto=vFJY&a*K6c!_Y +z6+znA)!dO7ZyKuby~C4>Ke=yxzl&%{p7{+V$E>N{~R?->HRZu~`zACToynGl1io +zu7&YYw4zrda=CE$W~7>s6t(-amJ}Zkmv9+{onKvD#p7u!?R@%0HS4jaWHUKqiZq&S +zuzo1`?9tl-HCIay%5M(~s(fBYr~%!SO+IloOkxX)R{e;_F2$UgLJtn~mTNnn_z4;c +zxpU8ZM*e`c$e#Kj`ZP`8sgl-%-Y~kP0PdXNnBF)7VQXAc95IGV$)~*XaXV;Iz}tI+ +zmQOsyh$}`VCf7~z6X{=nOC2#I3EV6rEvXRdRT +zy7bB7De!JNoUBrp;9#*THD0@zD)(eMgHWUCy{G8na@j>x!I~9qL~P%+{4D&Kke-jr +zWB>dh6mPRoHEbxzyu{Dk>w +zK4Xl2^}A`gEP`g&p%l7=+c=NT^)M14#<(IwVPB(b$~+2(@k$sJmB3>J&|9;ukM7gpe +z6MwN>r6RgWe{W!B2UgC-f2t`1P)x)G<9^i$=l5D2?}fxhT=AVP$Yk2b8B@3wNjM59_9w^6yWIipOlWB@ifO;UokcHWL) +zf(?sxe2Tuy%PI}gG(+mIas<98&$rwu_HQz|zFz1CJx)3o^sp53J3M$=OHnmWe`x3@ +z?{9J%alMT4bt&$P)1}T%+cP_!kldZk6ylmvcwKL*N@g!%Jx6;Aeo@K+si>3P^7e1d +zXI#o$>=Zi2MtD?nvNGF9>hXA3$J~p>W$I?3tq}O^J~UdD3$c!ctp(?91wlfM +z?=aDna)y_1?;Q;ZTGQELlU@5Zs-UAHP?OBopzJ@X3*SH1cQ^hyM{X!rk69s& +zPE?dgC|Wn%N-(#SFbD7uX%qfYDSF-L~HqDni~Cxf>K8dhx!A+SM+h) +z9UO5$3DiGv22#RvIV +zWL72iB~&d6V1HOGy6bWzwFajtBh<1rP>sA8G~Nw=dh@Lb((?_MWWh4!>{I{+WN-4E +z7WXZsRl7`E|0sEuNI-l#i$O*&;&%v93kI0el_Z+ILc3x1i^51>Gv={oNWh}eX}ac{#BE1p+QykXSNTba)3#Dt5IQXa~ooy(lO24jB00Hk9R0E>|dX +z%J&FYiLEnsV`H$x?B$hktTlQDzX5>9NDsWsjN=1 +zBlTK^^Bznta9OK7Z~zyJc!H4q0gNEP?uW`(x8$isELt&p+lgGz$EC9lk)oN{2^{sM +zCY9k%NohG)jwF +ztEpHFfIp@Enuy?`92FP0bMkrOZF%x!(~(ZXTK5Z;1;5tqx{@_VDv(3JSFnU2W6g9? +z)i*DF0i<*CWF~laSL$28p=<(q +zXEDQZ*y)krgr6d;a3g5VVj6-gPKPmJBq3MWSO~HjJI_zAHp-=xi>H8``~<2wO$&0Z +zFVbdqZ{{1);}7IEFJDf+jito+)1m{`q3lDAWQmOfu7E}=+HN$4)xtv-iP|V3k}PPv +zi^RuUw^;d`_>t#Y37iPgN*5@>2AqLZ;XC+(`jKN)z{jzn5a1+o8E%K|#M_uT7BkfB +zRP7%%N%1=#j~(J((iFx|XS|jtPJXFb$UWbijF#x6(4|vb#1TA73wkaFI0gKPje9Ko +z1{^SMIYjb(c}W)?E7u2sfW1qrH0z-*pfcH3J=ho(WWw)WfLuh-J^a- +zQn~I$@fMN-w><=}P{mkKnv6_~PB_?aNtDC5q2pA{IGjY)_(^U6ve+Y-LMlO;J|_o! +z&q%0A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 +zJ}sd$2923?bryHCrPH_k>tE!0&Tz1#) +zPM9=N$YK!;u!I;f{iFbsr3?2@df(9bk;V66>+Yaj=Kl%3E>cT}o{ST%8IC_R>0*Cx +zp1`0yU{$8aB>`+t;tS+VsumXdg!8k*JAvoMc^5A`=%cjpVyMS3`{E^2!z+0HI|%nn +z{s*~^{yH_{!i-fBM>Ks>t+0l$|6&FFu|{`|v7xEh`s`j+JBF@Up-CH%&&x>BnsF{i +zWX}p8t~5`{I4y;lmV$O%ICdqo4_KMo6On+*kO{`OF!we>lqhzh1T*uahU7Fs7K)A# +zXEPe@&^nYKI4yV7TzCBnX +z8&G|eeo2f*OSo~<^K)i6)Y?<#tcWGGHkF_~`ZM2HWRU9xrkfTp2&H7Tf}x?5=!*CY +zYmloh)4qMCu_@Ow(_#D~b%IWjnAeX8g`p{$t=EK;s_fD +zeJHT}zA1+gYR84~go2;J{t@@K8reSO6P>r^TWVorUrdHDBfD7q}hW@;g_m7DoUN91Y{&);Y0z16buz?0k@_2}A*8P73aOCNnK +z5UHl?2G>MnU0Wc<8zIf?SY1)EbBvWG(LB&xsCXy{jdbT>p`ItLYEVC#;0)|wtMwz9 +zEH%)wW@`XXByz0pg+ihy`S4e|5K`LtB-=4Gir+(G_xyetl^Y}WT)K+o{xFR?1cRW` +za$FnP9wfhlN$<@RAB}qyo%XE~j>JTqgUIB5Vy?wToNW>@A{RGhgI@GG(MiwluI!OA3>gO7RRp2DI@+H-J2}J&CY*%Yi4v+5Wlk0O(kCr{9ST`I!Sg`#oA*Fp@-Ze-u4 +zd=OtF4(mi2z+A3?Xerd7c_YbgWsm2R2)p1PE4p_+OjX%z1+tr7yIR6b2|o3zck+!c +zv8a|AdSbFbv<|*k+hAc$_tK-{Ml5cg72FEjAb!$ALoWU#7#<$AC;|CQOt`#q%$AQ@ +z3>rg~ki54J(^SqBqDr^0)d*ZaoXcexIP)yhrfW5jX7G3w)KN+m(ub8v;M&CP*VO_k +zu(YXVyxq0X+@B#7-6r3brdpxJjflnj9x8zMeWsU$tq3hPnjdD!BsgQ{cVOf7#6Zn2 +zl`$`FG@5F{Aq3&=vYH&!hXF|e*c0ilO2noncOssK5v!{_0OKMyG#kEA-_=f_(Q$!U +z@+#S*q|vXWPYP@HVOyc{m9(ALqfu4LLh!fsNF0y_2;y3lxn(uIb~w|F83|4O7P{11 +zdE_Hq0}YsrVupjHHwxWjJ%V6Nt`XY-zX=?2kKF@2T7P$5`hl@sVziL?Q)Nt{MNX|u +z{k+T~TIY9gUoN_;+V9eJR@YCq1ab@^<7V{+=pBy8b2FJ|Aq$)$YvX|%P)=vC_hd*R +z=_rtFZ_vtw%nJA+r5L%C&N*7IfEm%zGzkfAfs+d{-Y}Ief5pEc$kQq2pyU|TvhrR@ +zFXa!Ud)JH3HdB(7mV6nT4M%8jBXKKyrYW)F(fg_73mSt^`UDs#kUX5_<@v1d%C)JiM!atsqa)pTRwRpN%GC8mOcXzU4fT$Pw&o<(7o +zEp{aGHgd@7vuAxUgsUgWWGQVB%zMj#2=vGi5LSnQX^DR*06047%%@7obbKGB-S1Q`T*j{qjVqw`tfvu-n7SOX2}qf@yM6n$P)`ECIVKO)bQQ>Ad^ +zu|>2o4Sjxjsn?h#WYj~ZjLb}&aqLRw6tVOK8M`l&7Q3K?^P=+VSa6MJ3Wl_T)PkN5 +zcmdwC7`Lf*=A?qBWvwnA>6oiDja?X`?1IUaf1FD-tgGAY?p{ +zR?M?`7mT3zb0N>sm*^SE$_Gt%wU`{_6e`LE>@(baPkbz8v3Y)HqHZ!q$O1i6%-j6B +ziHu4n1kf8J7;pmRB*dWEMMyv)x+RRth^W_zx-ek^{em +zc8%IXX~Xd@&tW2o`g#dJa{F}3D;Kl%u&@hXAe)eC)zS +zrU?>ARvR~|Ekhlu!Emu^(PYY-o=u!Uv*08fLY(Qqd%G-wc?`Xo_fi +zStg|>#kEeQu0DGBDB`Nigvg48j`S6r%2|)?tmZEDu1!g3g%iDYtduG=#TN0DM0YS?iOa{EB2d +z5Aq`e6IPT-I&I1^NZCrst1n2&#%jEN5#2L6z|J1@_Ddy6athseWOx(@=tt@mrUEsb +zq{S6986_Q})Qbo~1QaW@zdWf`%PQi*IZ!LrCekq_;2_xEs@h +zaE-B1l5AnLWXzQ?0-RD2{7^2RO*^dX7BCz}3QPw6Jsr~oNjKIm#RKP7;3CnYY1u|* +z&)SHhdkJk0^A-whOpEX@ymFWHN-0?OWphUMuOMV_-wwdQm(JLDUFi}#N1}QJb2oBQ +zu~bk}0UWbu8*h%!+c6A?<%TK(nG~`Oo9PyQv~fx}Txq%_Sq+ra_ETo$Y`>);#OJEs +zG_TX;YlDR>rM4oIuNU1*TH!KHr`K%no;~+1Rwl6|UXl==Z)BYZSm#~C&cJB-TM|Zz +z#2GILTWD3bpI0GmY<*q|huj0_Q~WT`k}g)@i1426CIJDEOMoT0g9D0l8h;r-(nj%} +zzoD}?cTt`U{Zx+&aY!12A@M+$98b^T^{1!H>NXACRJq2UqK +znIXzyrejn)SR%vb#AxmQQ)gnznmy#8ns%XvJ6b}wYt`4glQR{w+uANKr55YWNiu5Y +zCcuCF`A$CA;!B{j)-yXrAhy4k|IQ@tY-XoTsu+jsBx?^+*L+NoYPOuBiC +z1dY2{afWU=*0a4xgvKrV$1433L5Xnp)$cZE#9la-97IfPG69@X(_@)lZ&-t31J=X0 +zb#>N&!rh7HbQ{CiX!=Uz_GJJLR5%732$$Vb$saIGW;KD$pBf8#iyy_n=drG4v1K5Q +zbbJL2VKqqMu8`?XNc-Bx6Re+w`!A1c@M^3^%;9vA1;Exgu3C))3k7CFECaBA2mP5XwWvqIuOL +zxu`m#7D5JiydrUvA7adc5c~DTKnpIjVv$&L0xY;nxhp}=c_6K`dcY@!a@9J552(KI +zE^|S{fJo1ZJc>WGF~OT&#;KW%&ktV@i>-}f&yqKuyao!yYYNONgQBhBy1AhqD~_VW +zYg)?it>k>yP(L&IKmjIlu%ox4@M453+-aeSTZ=I5YZbr9ghKlSDvRuZRdgGy*5;^j +z|0W?7x<@FYW+|VM%Jk6;;N!TE$7)C^zmkx2#p6*I7NGMXvIDF{-N5yRSa$n{mrtpd +z?34R0!9biNkrO2+o+Rtu?uTsiMh_Obh~5)28x)=KSRv%5q@siA`4X|Lf%e8cgx}br +zPH9ueLO4J>t;CAcl{Im1@{yknBaf7=!lrfW>f%P#I3|X$5+)J6GUXUo&<{ytHmooe +z3=FR}=pu4uX&j5z!C*6AS($SQ3J6^&D_;R>ZG5gFY4-_XB0-KT^qnl3EiAGAw|q0W +zqlmPKJMyoZTruhaxe8{MGLGZ5DeMPf2>};@n!3KnAI5%O^QtEp)xt5pjX(=eyJ$Of +zqW7sjBT~V5qb~ilaiJFNBIM=sU^UI$e^|4=qL7*z{XaeK<=g<4pN(xgJLhw;BASX9 +z%zja^firav47|hWeSVa25aLi>VILJBzvb=m!XetXuwQQMXA%R>Cv22}O8!topXVl~ +zd~6;2bLXwAp3zGe;fpuNFktG@Wm(@_|C&ny^TxKb(R +zEU=n~3!jl!!&T&sm&?h6!p)YB;BUjZVlqjfY4i9JzfyKUS*#=00TvA88u< +zHEM=a`ZUcds0yQc!n>c0=p<8P#$E*az0~Z|7i_RcXCYj(f2_)kCGli0w#r3Ldn`|Z +zqUrR7&}kD-x_JRYkeHyjzPW_Ez_CdKh1_ihnG~@?B}mlrmmAKuY}T9fU@Hr0OG=oE +zm3L6X2-jVEgQS&yXmsNnrI4HR3% +zySpr`3^;nH;9yY1@vi}QT_D=8Yx>~Wp?z%|=tq{8+l4)8mc14*MV@{a6O~1KK&#FT +z&P|c%A}iW*-q$CI<=*|ky&14NL4GSPSBQf3hODoCOkt2UkSpTK=F>+Q%Ls-L%~oS{ +zvCOU!-x>uFDHKr4&J`}UrRyfEIbGnf32wfwJzauaKtfi@g-hC2{7OO%ES>{w +z-K@y;S-zE`p`9T=L{t4*)?DoptMi9=68%8;py_ +zM|IdCKkopRSw_R%oH%KBQdlrqP-_nzx`$|BQrauVtS+a#>%zoQ>Teg)cSPc=3+dO+ +z&{lUp5IX4T(6=0QhdzlI7CYa{zTNqaZ(s~~ACSIoDDibv!eo?&{k2~aB|uJl&S{$f8OZ^E?%}rqh-a8 +zE|VGtiJhY6Vng}dPrb4$IT;i)4Dad_uusuQt}pqK)nnjP2y*^1Lo#U!Ec{C)Fz25z +zWW4>8^2VK)R$rtIOb=muR5$EX)>2I4w;I!Sh=!kQEadMKJ{H8XOAB+;XtJA&QEP1T +zxJ>Cxs=a*Bt58e&aUnKA{FAo@LVP#jE{Bc~kl9fSFpdQmxpLJQwY+GTie-+mT(F7M +zp3qTu!q1BNY0_XM?ZKc~@ldcA1l&P2DGu2v){Wa?%1_l#_=oAkg5$xeDb;FxZWAd8rr+tG9e#R|tjQ*klo+axW +zZ>2e~ne#)d-$xYO4|~wUAH>b7v_gg-qP=WnXBD)FuP=X!)q#J1`@9(^bo7R!Kw>gA +z33tqVeOZcNRzpxNBsN74F!+dvTeA5f(saufUo%`gvGZ_>D{*-#L3$G;Nk`g5!H#LF +zFMaZYG^l-h;bqQ%u?%tmqFYKo$N@JWo2#Hx*+_$yS6YKs2EFR$;;ngzJuwBdJow$V +zhn<*2ok~?aBlN)w@149@G}~1V??D-*)F6}MCUH>EI?r3j3Z4$MS#>GA1vQ_Ju%2nj&+QvEyuSl +zgy3H}NEn%UU{6d4cT2y&QK_#|u)6nN>jmvsb~3iSQkkdu*BEKil%XM2I&>-rtKiV$ +z7OY1s2lvy!U=?NwW0Jl6RBK>1{UO0msDrQ7QyI&J*;5mp-rbGF4J<<9zmsz!P?|e(1BAmZLEHmQ;IgR3){1c +z&V7t*ENsT7*#4nWLZjy6SFg4tr;hL1LF;arQR?TDM06QD((N&h$& +zJd>;@vfve!tMtp3Zl6v$J@(B|OO#n*N`0^^n~w;DbD#BjA&~pp!6`#(cHUGFmnOp7 +zpPzdSM(_I5%ruiP_Z4~6*MG!E%^E~##It&1_0cH3grjS@rfRVUF4Zzq$yT1f*A$bG +z99sL*ldjsn_59>rc*q7r^dNo;rtx0QeGn=uEfM#)gGcb`K=r$93vTJ7oV}SiH4!g52WkpaQfN}=wLn1tADlkxQPOZ6Ast^ks +zLf=E=yv&utcwL*i%zf(Pl*RPH5YAh#&j$l2@|0Lb33-xWMwm)FaAiU~aM2KL&H68L +zm=5gOf*0Lz9wFHXT_}>|mJuoDODvt7_#{~xjEc3Gd?T7XDzqW6aSAq)z@HI+t)s#G +zfUYHUSBxr#rV~;QUCzu= +z&W@%F=aU%d0j+)tX8cGqrOC1dl|^08T-%KOw3R +z-6oCZP699bWf^HssSjR>LVn`pn(w#7rS~2tyNXGOsJ8f!lL>?wDA4J8@CJIU&e(0O +z#LB>1AL8bPUBUBMC4E;Ko5{p2V0>8tz|4R9o|=NyEc{mEVsEsf&j5ol#x-d|v$yju +z(t2$p0*_^pqdY2WVP;;fFJ4|NhWf5V(h2xw-vQ>$GQ_Sg^+Dpqk-HF%yAUulQj=A& +z^EGqM5|Xq_hjB5r#laETc)jnycrr?vP*rM%;gJw4jGM0>RoL#Y>GN$7rm!O#WN~P= +zlycd?UE%ze3Am66vc)Pc12LE9{EGe3lA1oy%Y|xpivRO&SoKbkhn;Z&ZbFEJA)2I?ZptWZ3YXLMO0g`sua4zu*R{c_ +zoGM?JB9lDn-?Ff3AGYP8l#g-7svDgqzwADblUP2czMwT{OxA?Qu7Hj7VonUd+}DZ0 +z=_o +zE8A#s2Q2tq2HvOko6{RnM5ltB^l-6$TOxqpQq{;-&9y)-MgAvCSl>E+bI#s?jA$H) +z^r5)T4mi^A*YCu^2Vt5FGGehm_Gp6%6vr5xGBJ(X5y;=n)AfROWu}t%PHX060nXP1f$u3i +zK``wV?3E-u0=GAKITgiOz+&ew7QWv}>w4C^>5ivM<_zU^v=a}(GbTOi!i_~bago!Z +z1Pvha64(}s-@<(QK6;l*bv;0LN)+&=9TmQ`Bg$XxsQw@ASk^JXfJO6|}jzm{x@BJV@@BV5>p6tQs|7gdR +zh<|Cv7DT?8qA%_El~elCj;#MnJN`Bb^pXJm(vBZkRBQieM|H*jXh-P(YDap-{YP4{ +zZgkOqYeylCFYPEQ`=uR+zO>^efA~Br!oRd5;Nc(b2%b5K_@y10{%S`R=l^QQfxLSF +zAOalQ{@>aW;!8WSARw3c8QmWL)s9ZHDdGQ1J9d$oxv?Crv*k}!QRoxRf$N%g|-N_)rg +zo`}dU1J+`=Tf@z&o)nZa6t;obv}J?^VTiYW60|(y?z%JpXiu%{Iw9jA=)e!u>%GoZ +z7Da?FvQDj#@T&;P;VEg*IDCg%*cXifH{D6NEswlVWLb}EDi4<|B~%LA@}i3ix%=Lm +zX?4=EhUo;*GLhCH-4rMb;0ZUKws2$JUBV$9Y_|Jazq&d)eu&KxE2>@P!NMAMz(e45 +z+sv)u00nmP8tlyob})HZLPB!hWtx_i-cSgg%84#0pYZ#Vx^8M!!eF@I@$@nzIoJ9( +z_s-M}(I$gm_D62VRY@@I3+sb<@HDyBL4YW`wg3SI8iL9=+dvo`f{%GEF@|3^DQG~2*@ +zX~#{9wYC4zj&3;rXvf#of3&0TXl&{~+EKLud8F}wv?JetwIg238^Zr+NAxf4h#V54 +z1M(m3sQXttg42CzN4PKTxc@KhC}sRtJ8~KSK$tN8(vBk9UOii`o(?C~riw6RU3p%RO^}AYQ +z+l74VfFyGQ0y%^6AInoQS1Kf%DsL0hInLGyW!bQDAW1&VMI4%MH*CGqjog5Z3$k0 +zz||v^j3p|4kh#8bG$W1?aC3DcZ3UKlOH43mdV51vN0 +ztPRbB4km73Db*1+{L8OWM(dtwwP8P%8qjnGN&!Ph2}))2h(=igo#smV`aTiz%*PfQ +z2acm&_^Ps<_$1-mHEmEpy^CSY@<~`I5gWxxvIAq +zF0dk$0`%K7=FO#k;C3w0dIi}hab-fJzBF+#cWIx2_pXD_CC#<0onPjTDmyx5q74b$owMPRw +z0VA9l7~q2Iv0s(+m=ySs#GvZ)+ctW0oe7<>+}4Gul3jl(Pb>9ys`CWtfO{RoN8-cs +zg|=M*d--OvdSPI>Un;`b=(d~V6!tf9a#3{B3}!jUWLm$o36g>)Y`VN`myR)P&KkV{ +zT;-#1!Jya#fxQXAQ>|IjIxj$VBt6E~2lm0gSJmQ{__yeeE@57Q$v=&4&~-c`=^+>D +zbx7FboN(l^S$NBG4wEB(PV8boA+zMo-kg$Ec1vVP|4e+o#~>XR^f)%vjC^&+5Q=>o +zACqy0BK5;IQJdBOXl&#i?@n_6)aX7Wh!l2W55#R<7azjvrkJXhwni~;!h#N3qHloG +zMTy0uLJ9{rgSFvmK&E1KEG +z4Il6n%d8c)$WOLJtzyM3lco$CoiG$n}ropH&<|G{cCag@FGs||?~7MS(?%}c*C;;d|1dbp!VdrXIO^oZ0-J(xv(G2h1O +zH)#nbSVtjI_PoW*VB(`(KyR$12XI*SUXw%v=mh`(M(y)2% +zy=}=TWDD0GHpV)3=_7uV*~FVOdmUxA#=dB^=c|#L40wIm&=g>TH=i}+qvONmdJ@LV +znwpyTT$?hy1^&vj-Zj*laI={taTd5WgfO38Pi;b_t4kpd+rz;$1?x$cLY(F)ihA%V +z8^Hi|!NW#bX3MgL5YXO}t$0fR;Bb*2JCFHE>_+rWIZSfMoWswyu@YU{70GUwwe3Mvv{aTBsreHh +zK4Hdh9;VGacN};k04(NAIqA!+tK4D+za~$Z9$f^=YBf?Wts0rQb%wGj{;WA7H4E=s +z>aGqwcVyuP3vpcJZ4Y`uSV4-Cv!jO%K|v_;9LK%F>M{Np|9)^sNak74_Utip(pwJ^ +zO*0sbDaHYDQ<)gU;5CWM9plqyBigf7_2!J&qo^WLLU5$>FZs<7NL +z`C|k$wn)7obyf-dX +z#cVmXJ4U$0=6ymSR6QC;8MK6omc3z|n%NnbIRRAYZC-1`}br?K^nN&=?UM_C7uelY_6yl;Fu&^MbACnO{$P!2`!Mzlo +zDy-452Wx~SXZI)=MBG1u2-!&StZpcIb}WgMYWji?p_k)$LIfDDO(!)K1ekr7BybCk +zhIS#Qa7&n;xprc2PtlTX!|^Y%k_kc#R(ic!X>7-K{TkXXZs_FgH7b_;Sc)&t6ZirK +zGhrU~Sl)I^*RaJ~gr?_^43{u`|J-Yr>=3W3md+J8G8=#avz*~@{f@WnwXA4O=a@}? +z)@@8lPerT_g|kaFe9#!KZzTWK*zYolxqJ$4qXI5PdOV(ZaD&t`1>QZC_2Dd&*D)D|kuEXSN2PfF*H}?LuScyy-d7H==ONemLdF +zPWRIJxOKS~2!G6iJ|*9EJ=oOrN~R+ILh}fC-M9D^cYvuXzF59S97`AuZ$G*XHASAH +zve+pI_i2;snK!1K0c}c##gAcaV6P-)~{;jy)_2hELS%=5Ecku{R|IK7X#42H% +zD6P;68Fv$t7^?G7){{+C=jS +zM1uK+d4nch29o$9`=#afd%)IYg(EmAJpb~~y};j1VT){axaRLwY!y{d$Qe%Q>1)cv +zpj%i05_KcVA_ir5>|cdQDFKBFw87m5_ieq)OR{Y#1NIPu2C=hTH=7P!;3T5n!DOF6 +zRz>;mU1*H6jbgfeP?P`j2-N>=8;;=APv+VCt_zq#C65MaTIuLyP|O#ISDDnphNZyjxLb +ztv0Mxe6_xbmS`^{wC%K;nrp0NFMjH++ecJQU>{u8DGq1-qI`%7q)nbAJ$WqCa7AhG +zMvPPxDu*jkHgi|`2@Td6bV~80aFZYqtd}{_uC0|u>@HmblP01O&*nwTG4D~-C{Ha0 +zFvGF|%!qclL=fue!~%9EGej){w24TKb>i{Y|32t^ysfKEz(fxMuhy?g&@GICVx6Gr +z$Yl@Ur?2bP!)bvx%tR~hLpD%O`A!2ZxFhg`4DMBigGJ3&klIN_SbO#Xs3r)mY$ +zlqbr>ymEp`7%A>^O^0+OJ>hrt;9`>jGhlxC_(o%&p!54Iq=}c7Ck=3jv;2@KF^m^G +zUo6_)&1S@%U8Ao;pF(a>wYm=4Dm8t)Yxp{fcwg9u1fPDZ6DNVVz2 +z!he!NU5XRAPQ;5Lj#EvYlCUZsX;5nn}{S~uf}Hd;AH57?WVYPR6Km1`$0 +z1S2%D@#Ub>Qx9WXd#U5rr=jtw2}_gM464fHz&(kqmFpIfIA>M@ +zt@j^F{P@Li9T#0D*>xSqQ1ckLQL6~aby+X>ad1h0>51&G)}h)f)K*JjQl0$^b15>Po;ikl4{ +z(9|>BaI*iSU_c1^Jc=QM%ebRvMwl^U+6997jJ@w@-F1}-Z|lPZ%3pM5vuH#Fu|g`Q +zS;{;q{itE-CQC<&118$UK9$!Aw{6wydCA{tHfsnlC>}{TPZ(n9yfp8@P9rODPi4&j +z@@pt4Q^r!$n$n=gM=vD15+-xGteOjWc^ha&0L_&E&FikeHWaadCE=9Tr(rUL|AGZ) +zs7qwoQj3)Wa8CM7*U*t3+?zzjIhm*f>KA|-w|`aJ#hA_sc%!0>FNX;>Qx%D!nTLuL +zJ4bM*ltHccf`_SBO%a-9?f95Psguri)yDQGf4d4fl67ELF25D=F@k;5_~Bjl4~vo$ +z{DJvcVEu5XIMKc%H>2RV1#Qp{KHc3UjxuFL7-)U5P#I4f*)J-`r83-*xbn9Vd6wf! +zv#`PiOuf2WDKm{CmoxR&pb3-4bNAJVbZ}?9J$Fo8a4W<5K8Hy2f2h0br@G<>&-1uD +z7r3~?#ogVV;O_435Q4kA%f*Ac6Fj)P1-IZ3EQActGrK+0Tiv_Uy_Bm9X7w96dq;}i|M^dMBw-bV5hR;PW-6#s2B28zFsi1-W3swF1z{d@Va +zyY&(1#wuDA55{5%Ikr@zQ-N-q=nON3FS6jM_FJW3=|bEXA1stC%%xD=NqQV@IBJ@OvoFx2aXH@?0s*M9U$*Q2U%U +z`Z#f@v9f+v7tSk6-^NT%lhHusmAH +zVg8#3Rtb9_!&}7T+1V2O7?HI3^A^Wr=Bm?AgSi|M3sa)z6!mWeOv_E4*2r2 +z4`l?)dxfKM*9l^M|K1pLFq%qFcd|DlZEr0z`uVU?{uf0Nk=)&|**4h%nLB>pXZRn(?tO$kch4*x`T# +zTv5pxnC8NI!YpN&zmKBaGrHNc +zpe9Co9asqvxM|DQXA=|U4K|g-#3`J#iYE; +zWXy+MeU#8_10Rsd=609~;_xd=>>ZEmO4lHwQ)+t==%=`RKzcn=+w=Sv>^+3d$kNFR +zxxSw;dO{Voi+)}nS6q5=0EQ!;(WDH1d5MrjfwgG#9a9ngvqqz9<_*XM-Gp6T%4`JY +zEjzZ{Fp!)|? +zzCPPHnJX0HItYcRV83t6FW+y;y_*4OK?pQrpMvX))w`(?*kC4AR@B4O%NN14Kd6=Y +zv$g2>srOWs@FbWFFa|FQ<2fQ$)J +z2l?Xf(U=grlCut`-P=^J)2mygQkIQGL5g1uJ5pU}4r +zNXPBJ+!|GoGDsb)(8owChpdpAh|rQ~CNGY*vD%seqGCkxMV$lxpgcnnVaii8#x+cm +zg+>|CtWy-9ijJRH#Wv*0d`S>~5+5j7z;`Fcg +zSey!xSI2bcGfL2&H}`lmRt-*>c*ka>S;kFEanu_*+y2%);2lDaMfo=B_RKwF0{*6U0wKY?40ViBcb&J!;wUi=@v7({OCGnl +zI;YITf7posVMey +z7U~>~lOM22y%6u&XNDUG@flGlc1Ks3+JoLocjHBE09;>UiQhf0B(^?1j_t1EN{e*B+gFUJ +zNJJ^4cf>^3WwW_g2U{(DjBT-D|Ag)mc8?`Vr;!n}ASS|_ygWsIg$+D=D_Dn~XtHl; +zox>u&6#KYUUtdSrmK?RxS;8D49wCZJ7>8e5xrh2_MH2iR?qdwa+Z2Zs*N#oH`ZuxT +zr+;EcsecDMlC2D{{GZs-^WVUZ@s0ljJHD6xe}Ns7#s6d2@woGU#*WGVz>aJ*{}Xon +zW%Yl>j?Y{FHg+`nAK39gQfcPj!;U@wf*m{lv)D03=U-t*zkiJ#e>49JcI5mo$Bs4s +zf*p1K9qf2%^uL51wf`45-f*o%x{|m6=gX(`3c2xQQ +zId%kd{|k0B|IcAZ>VJhDRsQd=BkjM&j-Y>y9q+jQ%dlhq|A8I5F8@1r~0ndqO`QGDyaW5<|<-YTj8EwSU~|F+oiy!AhT9hd(z*irT0!;Yt!vR@MNkeGei +z`SN@pc99@0HdN6lrO_NXOm+xk%+o_riZkS>tKghg-qNFH2W(B@pH_^&^ShsvinV1b +zHx-yX-|1X2h*fC1-RJoCZo2KTu}UQHQUvopV-Q~_XRuZpk`rZN$nr22F)1qTx$eRfUbx(?)EA*IYh;B|c7UglB)v=I8P +zs9naYHd1r#d+BLF56p!~Lqsa&JQVIyjQyqF+(F7=@cY6Ek)NCpH?KjK5q`2*mV`5y +zbk(nh3nj>a;yX$TcnjR=3bun|98IDw&RbomWv^32>p+H=Hnf3rp`}C2qTMoqLo2p1 +z*XOPu=SGq~5Be>1_x)ae!A$}yLS0sqd|I?QxW!^yOEw>Kh)mwcqtZP+%U#@l3}r0V +zT&9xEw-9vv9pcRs0O41cjet3{E@K59lgh7Br(V>S%~13fYpeNFCNQMlbcWAG2Y`v* +zx_J1-Qk7MJB@XMp%xEXD;v08H<$EQu^Y=-*;SD-zdY{S_m)O*s1Og|UH3EjO#cg4c +z!~-O$)}k75w#Cn%D}zr%`72T|)CBbQRtVAyVWQ?%X}QvvMD37qr#JX4OJEY9H*7Q4 +zs2X2NNd{YD2dj%QX$P}B52<9NBP}0z*|r^aeO(ZJ;4FA{e<6pWzA5Av+||(F2Pk9g +zMgTFhTZld#>dh+W9pfwR#NCUb>mqJatzw!tSU6aK))p3{T;Up+6i*J~Y32jM7kuWd +z$nfHAme|kjO13$`@5ru#NVP7$lgq7*Src%&zyr2*a`e=*@GkKH3rxbx!SSE=#JNXF +z?sBlq4>=}~*k5QO77y;tuc&a0(6MaH(1m^Vj*2z9rA5N5S2Q +zf03*k&l4A;FBB24Iy{?bdTwr6h;Qs-69YtQSgw7)Zkch}B(vZ`4eHzk};Fk +zHFqqnI|kdYOXrIa#M)g*HH*Gg#ShKxY6%?l^~U4hp%d$(A_YB&P($WpySW+XZn0F{ +z`vdRUUm_brPWiokuA1g`P7Z| +zpkN#U08?37|FLABU~G9XSX_?@*xC(gTcTZ?e{C+)Ahc@n=v_kXZB{eHErdpdM40Kb}WuduDrcd +zGUrm-;%@BH4x2xCW^kThE3e3dOB49a4k0z^T~6b^DVzJ#afr}$Xjz4MHL1jm#gNDS +zn)qYOtn=4Iu=t&RL7lBVWq~v?bf2c}^&M!2l(g;`BR6=Q2d-s}>RL>T)Z +zrI=b-#btNTC$7^8`Qt_>N+U@XD5$_>Y83HEydfYrnwzmJcjB$ANZ+N@qE&5JBIE(` +zi!kfLW-5P~5+LC%U@V##YW9M*o})wckFK}J1~Mqa|1;%*!?+%Lv3eHT5k+%!@As2G<#-KosAUiGV^Ld4_Kl(u^19=@l5V*y +zyfi$mbWtVxXcgnz8|tIT80-9mD$}Dcv714fuZPH8a0~|Fo!Q=D%XBy9(jYizZyGRl +zDvM_nt2fGJbW`F=P6DdivU^9j?o?0^D=QuJQ@0>@*ZC#mxh`Tl%8xg(3Q!Xw$bd$X +zECimmgK88$)-rkPIWE2&K`C3LvK=Z_OTsNYt8(6sNrQ(sckh*_UyUE|VhJ10fU%A!F%mw>I6( +z5kM|IK2gU=)g-`oDsu-v*-a6Q2gA!p=bSv{d9T4^h=LYf4)HZOaqZMat>b!SWQB_) +zixoIK?ahzbNAXgeblcfxCGZpvzs3t;uypr2St;=IcAwfdn3RZXzQV$Ct5!fXFph*V +zO5`>OMdL3KlR#O;pPdAnDui9G=9q%euV@JRkm?vx!ivw@@=XNPhbFsoF&R1WupCm5 +z;L$KHVgaPydU{Q5HMd=GlKHkVV2i4)^rwwT>M8@82E?BNT`FHjvM6IDm*%3!+3W4b +zcwr<$Vf0BnRi)sk18!IEU}1GXw#RtSixr5K9ldf%Qr}rd3ps)f-)u8F0si@%V_)b| +zEUT}Xw8aEsUDd8CObxUzf3Tw}wq2BoW_Cq6F!dm>IPz0%m%*Nq;(x{g37FQ9?6554 +zn8KCsJ&^~-K;Tz>3tGgZXLr7bE!cwW91LLkaKX3 +zOO06quw^{W5o2XfuHCQvD?Hd|f`1xDlU6)=1!g+VCT6yHfL$zc+O(}nd{_&g +z2|UbdGitO+=Hn_RE*aDOhU!i15nRF3-|eJd`sLV5Makl$Ne4}@ekkyaHt;EiMf7O) +z_#KH;^2L +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 +z?(#7kx%5MZQorJNWn8(?Ef97Jxl#wApf(t? +z&o-ZdqBt$ZZ_knZ;Akn0^0s1&01+v8>{GWaGpX$Z4z1GJwe&1Tz=hCwwyaP56}Gdn +zxs_Q_^cJ+tZ?0G|7~_;w$&}T +z%fvj)77R~F*Ye8AGTxGlmdNKGekps6Srgrk>_1|rwYyB3r&%hdY9)T?s(X0RHm<&h +zM#MZZ`AqhbKj(RP{Cq#}63NX +z__y1^A1m3nkWv@ZvIBOdxgw>joZnY5I#F2m_&>8JUnIcmr#cUuMA2l59l%7{|3p;C!(ly*zI_iqnJZ@ +z7Q>k&`xz7C(H`I9o0uRLDH<1q05tUseVmXt +z%0}fi)5FVbe%WIj_8ZK6k{=l}3n)t031sWcj;6La(@?HT(q5$0l*d<6x6lxag-=9j +zPv>ev?c4K84i^V}0hw-K`6e2(pql_GJd}t}<-4%pj>3Swg}62vP7lVox93Sj%i}L> +z`e$^>4#Az&gnxyh8`|;9$ri50hmuI}DF1$S1*>=*L7)m^*(VH!29l0-jn%C*Zc2WW +z${zioiTrRf%b>7a_WLWnQ>1RsI6f){6`LUGb*WgQQ#?_YRD0S*P;wEq^F5JgyIq1W +z@7U-W?{bxOmdyA)1dVOp{K3dLXW$#CA+{nyjlQ2r_?bWrPe3t?E2rc+Tdcp5!_D(SWs)GOH|5 +zzio!9l1)vj;`^yaoAayS$8njNN<7^g2h_}fwdE+_{Ob|%_+EmmhQO8y*{t*rF0(_r +z)W|Z@+Yg)QL%IZB?ZEu>V6(17XG*fmJ&0QBZ*WRXAx8wFzON{W11QNdb>{Ng +zkju%!Bp(8ix>EW(F0pUw>B-7dQ9VMUe0r+bZ?YB}c1!6zqCYb}xMYQ~q_$u`p*hx& +zRZ$tXa-u&^j4AypSf_4qL-nZSeVR*dY`us1yt6XlV@W<_Bg5n}hvjfJHn&E7Q +zFfh>1PISZ;@n{`!49SSCB!~nn%pEs_Gmu1%<37i-mErW-cZX%z$C|xnSzy%v;wn6n +zLjO3By9I2tZC2FUW>~yC#w6j=73D>d51Up8LH|@*G;FpVd~k=Q)@78gKX%JCQU5-+ +zDElcu$!+~4VQUIWYD0Ou>V`FO8atem2@WoAEyG|i!;Mex>xWbHAV~|ghLza>y8q_) +z(c?uRf}aEHQEo%e{sx(B-FG~gn|rcV{V8U&@CpU<7)Jp2QwGe-x<+iyWW3@2hQ?`6 +zUR-QBw=!IrqHc+k5_ZG1{gxBk_dg6u?eKth$KqPJHBIOhbU +z5JmHEQNb=s0O=C{RNwA^zoCJSHfMN%MWq2+6uimE@)zE=Hoi|W-`Hk76mOwd%i2F) +zf8B;2qFfmg)!DiBrc_KCPaNE`fPyj)H7|Ry9T`&;XppuYv`y3GHp$Oz7c5^7$W0#d +z-Q##R=>ny>Sy0?>Wx%&3;F!>x8Vcx +zor6HtqFRf%X(J63JEgN>z`PYsH$Sw4KUPp)qDDyKFqr`eRt~n;QvKX#=Sh>pzh4RH+-k+XI83~Ha_>uX} +zOg*=BgN<#62%nMRDC79k!@=7;{k9Y^P0z)Yv}q(Yl!AuspD1{0NU|7HBbiW0FO6B9 +zTbEV&&Gf#nE4T`PM_(hzA@NYs6#RsP>JO`!AEh!TV?T(U +z9R6#1lB*KB;!k;Q5svbrBmR$4BNN6Y{NqKZ6;}Qih-pQaDHx)%oXy+eYU&N>Br!R7 +zG3Plks3iAk0&7fKAM&3;2m^!{{`-8Q2HaD=!p7<7UA}H!L~qUteP^l$ +zXig|4%?A%dNU-t#`m+a%`Sd@mtv)?<4g3j2Hkod`gFgsX=>;nKQgQWrdZ=bP5Q;5$ +zUv}Saj7aJQer<##rPGScE==E&y_%1klvchDYa0eIYFYVlsrDQdmx0@B?VpsRA49zJ|SNZ2sLG*WJeP~2!%5j38#LWm5sB@I44}80$19T +zAu*1riwUHfJ-{gGZXGqn8ihvub^7c{E`R-H1CHTt+>U)gt(57b$Vj#)ipF5}QDlTr +zbJN!`sXOJqv_71?5AzQP!#uKPEDVV0mNUh*a9=cHmwMYhTsWud^X(Z5@q9o+|Ab02j>PR-B +zg8+Gd*q8L=b&sIS$OssoJnTqfRQ!-A%iy)~#N+r?K52M->!7Y8wrA3<&)lCLFjGcU +z0KiRyWAfwV5?qVwkkL>dy$H<_raTZpG{>?IiU>t*2n$tW3{WWUoUTrrLA0|e79PRr +z;~gmjBK{kWtsdko25iH8)WKIoW8}n=Hx-P7PbQqUE0~P#1u{F`RpQdZ`jDL*9BO3g +zf`cI9PYCexdMsWf2bNd&4XgPDUb0#6qnJld!W9Nsr_F>N7 +zD0wl<{3*+dRKYsm9cd_<8&)Yvd2B7=r3lOadcb|_&M(uRN>OqvX$xKe(zywtwZp@% +zHV#(sb6t_=fiEZ`se{|GSJbjp^8v`g^nxtR)Xg2;UO&^?9$YeN;-im53H<_;dp6iH +z=%>xx@)c@_LXt+S)I^kh&{;wjvfO*KjSsL*c*hf#d#!Ic&R%=}KEL%ES#dDa{ng~c +z%i{fZCQ5(APu`>g%$fFO& +zYsbCq$_`%-1gXL0X)q-6n0^C(;@UQ~R4$b6c1(U{1^P;?L>d#F?`+$=Wdj^3f2qav +zD{W)~$>hpv@Z>9r3`K2F2-@NRm^|`qVDa5>WW5H?Pl5ipB}(2CqeoqsvgR1v0+P>~ +z{TnfdXk>@S<6r~v*x8zfQq8M?$Rr;iH)oF%rA;8fsNL+$5*eD2?;ID*Nj5Zq>?9`$ +zCZW!sfPy%6S;4Ag`DAn0{b3?*5z{F=m(u#(oFi~Inxb*B-n;M@O`k^|B$jr-Qd~Sq +z-?;W`BC7gE;X0&?SsDnsn +zfFZ>)nF0nL_df4v&7E$l2mi=3s`MlncGlzCO#l;%mP)PJ*q@i+Rv$XV(XVk1g)i#i +z`4QaHO6kq@%kqNsk#`9=QlXYD>vV7{8NqnW&l=L~ZdK>Dd#2#7F~fe0Mrm6!7wE6{DyToSZ0KZ6O3I(Xt6JU(q(yU{ +zgQqe!C3RnQ)NYcsx5$`c_FsUVO0*SIjs|ugS?Y;t$k+0Zp0fNNSw84eS7;Ro!cm}B +zjX!ZN@sT7vm_w$fhlVlt +zSuezzHb#|p+{)1by466+;_B*1{8FYggQqLdxozFFdhq}kAe0;RZ{x`#ob}Q&w7O|Z +zc$6>(O)zyq)HY?q$p>Wdh!+1z+YPLA&sj?e2gn!Qt%gIDSTT`R*23LvZ;HR4+}&@H*5;CVI7Xm`)IL)b;|f__c#e^whF;2qRRKG +zCu&oN@7VVGR{2y9`QI-sT}IZ)6H`PBp{bWkLa>D5twxBZ?+_@%R#9>aSWl}~k*(&9 +zUXp+Lj$CA}s(CLEkIe5A-Zh5u(aTk{8PO;u5$^>H1tVIjxZjoax%`HqK +ziHCn5&N)1Ey9;dNwfa7&Ta$MD?WfVuTV^SmY!enEj>k?gSkq3jPT%zd2CY~89=atZ +zE)Nfz%$rCZD_8HffYl=k1My5EV&Ia2(q^L^%Y(dKXQg??+9A=*+0~RFf&mP?}P_%9N|2SP3>LBgHF8gLmJg`lOmqku9yVc7?Lim}-e+>*tDZ{>k(rNIY~| +zx-+vgE9+BS28rFi?kW5)mnB8faT4pLx6i+O&XE +zv>JN;SA+3ATk_deZEgqeL4DmvHE!8X9rH@-bZlD7<@|G>l5_pqf{%tDg8P-$yth$* +z?GJN~oS_J0IfNBPH>WH)roERR+AYCAv43afO`{VHe1Bsv5x(`E{G(K*k!G>aLQW=z@sy-!mZgyqc$&0q_JbF|NfUvpS;5@4_8`l}*V +zKHc?V%b%d|S+TSTp3;Tw#fwSUAJNle^zljqO1WPORG +z>4B%RKfxP5-^!jdrvEJGtM@Y5W~=q3k3;0XZO@xm;|B%dcW0}>Muo$tA0m0M<<8$j +zK7XJ^?G_uBR>*P$H2 +zdLumoxd})@gQvWr?*r8$!Ngb%fX_6QYdz(b8R+WZLpvNye5|M!Hs}*a3m4sNGoxJT +zL%=^Gjg7YOCLD&6XCK)r8M7%0mrFSr0ow|L8hB*&xx1uq%;gm6T0SvAKvD*Gl|uJN +zRq>W!m@_RCZzO_%$~Pfzt^e-|zE?v_X!%=t<`kpNMoUUs0I2(oP$VJ$&(r>Y> +z4^7bulhaYG?FZ!26z{AhaFw@VGAnUuE?IPC1s^uw^*mfziYk`6^kaz3G%*%q%CsIZ +zmR2>BJkLqLfQPG;-m>t)NF&x8Uk&4=pfHYeY+7;7z3W4%!GeLv~l +z;<&A1MYv&24Hdx+1NZZM{1uYQtQps&sAMG +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 +zlH+rSoxZdv_5hBlbkz8^(n*x|UgtV9E_y72Q +zxjTF2-r2KXW~c0(!y@%vRx##4G>26nt3X<>f-`=*eFom6{o|AQ!%n{fslk)rX~9Uq +za}&AyBgS?nFKT&W7fjh#XOF%jPQ=UNGw!_67ZP~JRuSpRY3X@cF#qg}@9I-kzC^J@ +zrgJa9?fy@(@kN4D*r~h>1$Os2uIeVA-Hj`J&$>SohN;M&`a9ApS-}DmHyi`~BOiMl +zS|x0m`vgY{h9XkshvR0S33~net8SNv(|T36;N%i{r+7}o_m(Bcp&?Gw#JkDt>W^>7 +zCiCucsjLLS#Y^!I|68*)&E5d{ig%tIvh+o%{mppe8^X;Gq~6zbm+1B!BHr;uPem&aSzCQ9VP%g$Usi==CJV~%(*$NZ=E1t4mFO9#>xkUWzm-x7$je7DpAayZv +z1}v4LkQ8$GS^2cttZDcC-|p-|DGnf1mhpb}%LEhL^C#exOi^nsnN)ooSE?M@)ho)+ +zPf#4pWSO(7^J0X%^gqGIscUe7588bL?^Dm8{@$1D!G2gE8Os8fj-^is-8`j~Np7!w +zTfeK_)o?9V;mbdfUy8}>k<(XE^=cn%a&3))A>;8;tCWw={>s#)E8F#_=ii+yuv$zG +z5LaM#GD%0t8ALto!)s#X?w%eeTgJH}n{gC8U<;K#2lW*8Vg3(W%R969Fk3iTXLP|uwf6;Eleqk?*?n99jzocty=^wQ> +z^d&cJ_|$Hn#aIZm8@+YA@x?zL$H80!y}F>+vdpS473II!{*!&`j7yKU9)HZ$ejqR< +zGi8SDN4<|;-bJJ6L-Oypd++|H1N1rtZT?hiW@t+A#C!CwD!kKqq;Kbk(z$ee>GJdS +z{ZGB|CeFU{rgg9)k{kp;kTl4AsQH-@bOLrPM5c3KMsk>ctFgB-6z2y8>B} +zfhJkoThD97O}PHvDD9YHYUOp5`#Prb&OE0-Z2i9UM&6Bwfw`vw98$!@VwyC2m#?3% +z&l7A`RcCRAzEmu#x)5vi+bh`r7S2I&`nk9-vL{Bie>TX`tt#4QWMGQ{u8?ULN4FN@in_)2UNw5yL^K_h?t$cUm_ +zwn5+bpNu^(I7`Z_SZN2j>^6tix|6Low{PUWe@*VYGP!RzAa3CL>)V=UQtmUuEU!iF +zO3m2&4fAdqWn=Hqb>cO=_x|dySFqND!H(yoo-A8*Mqj?<4ayCaE8#QNvtcRK%;Z0d +z6B&E%?IIeWP0juiuw4~<<$3sGHHMk%QIv4k@5Dz&?eBo)ucyoUCjPiHIkH9Y{LP$u +z_im*MPY85=4wb;#m)>`|EDp(pB;A9v+5vAKChDui#h}}I~1&Du7c7h)U{lb8Veq5z<|6stjJ8{i7PdiPFBy@PAu)Q-cn +zw;|2uxD&m`*Br~N(e`=5Fw_`CElgfUt@v!*OoG?9Uzx93Zc4Pj_Wod-z{?u!V&q{O +zQ~i0NsU92jwtxvX?)W#*Ch|;%ZVcamp7d!+mm708UwCKm-TnOOZm@;x(iGtRs`|o} +z9@9Un`qwemBN^ydZkn=A7XO}{@_H7-w|9C>q-O%tuIsPA{Ni5OS%R9O;yoUnv2u3j +zIGLQ#x-Qh_MUOlMXXrGt7UI58Ab +zD@JsJ9rcMG>OwassxR{a$AMeY-5S +zhzG1+)lzhfmX3O)mAYWEu;yyWU!U(Pb6@vkSohAe))J0~e{G_oZYfAf8Q*uZ)>6=X +z@d5thNklIjyCEvhOuX|FmzJ;I59YIrGwpK`CPVuP5?NoY$G9vsow@C^TC@NLUtc{~ +zwi3Qe*0p`8t5g6}62Et|uVDONo@>Z$^p`_Z1y24~74WT%$4h}}7@DqzYl!7<$Q#j+@pi3F_-1vgLcq>=VG=s%$9g&PM1xx +z@J->e&cdSh2d@1r)5br`(Nj)RELVaynKVDE5AlrA?XA+8x%(ggc!O$mT$;S{dX-0= +zWnA(?_gNRCgl{?CP3drjOKYrZ?oSc}6PkMEyMjGAt- +zenzAyDuoOzX^MF3XdO$X6KMt6_d~3%wu9JA+CDGA?K4JeuH$5PJ!fz3JQ?{Q#o~w= +zvHA+;d?`@n97Fg(yx4vGUsj{-5B>Z5Cmn5hlq|d2fdG@EXzfKx5#QeoDxI~q#7h}n +zX3BI^G4ZjJexzP5$Au)(t87F`=@s$mGnd#QPtwD#dTP?MS6rgb*PRQgA+D3$X`7br8o%4RM(Da9 +zfonw62iA7dCB+jq6H1B|oFX#3=_|6d16- +z(EoYgK2?a#W4`Id6>*S?kZKfb9=V>rW^cT +z$mn~r5P35f6XoOZg>+1C9C5sGMPI#dxzYdjO3=IjTBPeN2&uE}I9S)rJ7>)2Tn8$4 +zq%O{|oo^(R_VJEc@BzY!8<(+fF(@d7hG-PiXk~QbGb=0534UF%TVim=rNTMf3w68s +z4)8i5w-jrnS_x_aPNAwvnru&tuFrv9ghMGPDgvwl-C+t&>UoUD9|%+g0&~c@KN9lR +zWa*a+<^2o1gyz0MN6|jH-j~P}ZZf`aZ5FCBh$MFcQRqy0zpF*%zBmEW9j($CH3ZOGrtMF^9(VJRA74Cb+o +z*L~&V6-cVqF!Ks{UkpW=p@6w0FEd`?I}vh>4ND|pu^)OIOdad&Kj_*&&fr$xkA1n0 +zpKogoX0rNC5K1ybhP6`i`-eZS%ri#j&=(N*(cAs(9o30)3|h6<%{x?nJc#M}J;>@b +zWteA}b_e{jNWM#{xd-*|SAhSaHlat_ktsQsUi}f!=W<~=>~6u~8~%%My6yf*+qdFE +zg}#`{ER{d54xE1ZrV0@I53dj8++eGI%M+~TjJN@t!*+zzgYCE2#))6avDB%RM!ez(x_T^;7el#-mEpf_HZ`M-5cGSs6LxCUT**Dpvd +zIkx<}ldAbk`_cl~N#JoxQ2p>>=QOWV$_9^eLNGzg)~PE=EJ9zZ3TJ8jG1CO{qD}&C +z7@GRs{owN1R0YM=bkXH2uZoj|&i}AY#`d~u_nVZS-m1Yy4EzALe{jFb-J4{{bTsL8 +z)y5#z`9;zJioIY#iLuGBU4H&!%1CUo!ff1U!cQe}Sjn5IZBH9n +zD~w8qzD4<}^+9)FqM%o?2g{V^D~L)l(td$F>mY!zohu!vBoRf5tx8w2<+qvV*#D(; +ziEkIC4GY_sbUsfBw=ecPCR6VeYEi(7T&Yj+Fr%ywn;)J7 +zyEcA7eKh3HeKox<+yPv74cnz0{ao)L3|2Yaa|Ie*o+nV+0F +zt%FFk>Z`jAFWcP<$$jGU4E~#cS>hT^9%TiKFooCwWvxAJ^;`ZFXsQy{N` +zr|{mNz3#K=1M2%BSJUKNfdxwd>LBBoQ%jmGdDC68!|q<=@i0$)>+z)3tIt|g%7=o> +zh@7$#PA(*C(aTG!ap1Td20@}B$l5u#hL=@pZ4Ez0Er$)xf!_|f +zwuOOJ=0qBi6w2JTvL|}7a}I1Av^M^Jd6T?zK$zPG%(Yc{p(l5CNd0qbrHIMxIYPmX +zJ&`h3TW%i`7&JKxKv|vX+|H$7$-8|x1QaIp5j`Fht{#A%1db(Y&Cc%0{Qn%PZnpXc +zj0cCqn<+-t5kXl&EvjA-L?U9wXF3HQi@@aV43)E@ClBVmN2`y6!_fSUKU~) +z7zCd|Y^u+-?GO>JmU_oWab+J0v#%|}?o?1_!l4NnX^%B8);%-QlU`$n(w89zshmP!sdkSNhjAjY|>>0p2-vKJp%!0BQv8t~qP(YXn&+=g?0itBhVRmd=V!$ZU`+s?Ngdlg|F +zfiUZ`wVf$FCN|=h)h{|4q!_|33H>}sG2NOTcSS{Oct49sr6Q6Jl)}McwP3|)~7nXLtGnV&p +z->wc?D +z_LgkKbq0!KKe9B#kh*s-{G8`;NppU{z2agyey&hJ{Oeybcb7$b8q^)eS|CLN1)0j? +zKszOi_M^8KOfiV{(r}>3M5NefEr&*HF3vNz4L>bk3$Gr&|Az%qbvO1;$(c*t5lw?0weJcA +z>$;r?d!%vk?|a>+pWbtl$%{o6MKkEhx$SQffC*Gaee? +zp@*DG^>mO?@Ycj|^~zAtb{OafG20e4UY8z%(Ul*|=%0#kGZYQ4C`% +zO!Z6`$oL-enG~FSXW1V*Z;Q?mj#SL|a||c`8jhXxFXw`nUlv1gA8LxNRi3qr=iIRP +zarzma>FKTY46$uLNMY@%AKq}0!~jDmaW-h(cBo)#6&ZYWHjjFemc#fbiP6nI?XZN$ +z78cPr(2W54?h$D30SPk!ph>?RUY`p(*`e#BM$C7++(ZNiQl0Qn5-_A7h`4#C($hr# +zzOS69v(?JOnn$9UN+8AdJ?TcxFyCal|FJ@Oetu;x^}ta8lc!%ZGKtpOpu6Ru$W+0P +zJA-wscX7#qKb~r3S+j?2#RxsE;1u1MEQ+c!dgS}Mb-(NO7=UwcmSu$gu9fxo>#; +z;hXj|)+v}zk3vZY3Wv%@?d{7{qct1LF2yC#IP@SI<()}Xnx&G#qANn;?k~U +zH_zC6mv7xQ8=u>z?H!j$xjv|TU049W=0*3L`g43v?xx`kyj;w1b{S9Umg2)4sa;~M=2Qw$_TlB$&aqI~RSEO5mtjkC$Y`vFI#mx7 +zKuE-zP4ch=t*wJWkoQB!Ghh^rQ))EiUsA>_V{i|fyWIbUdw~3c!|_8%+jTR)%3*0P +z{h;$uO&uqZVF+mhvllTuul;^s{ca$BbDwfdA&TMf+YLCKbqQD+J-z*Uf+ +zg_A+x%)9#As2siVfQBS*%u%5A^uwL8ATf;*LhmrWo3oyFfR_SOl4sj6r^u0rtlihA +z_(qK=o%l~E+-dO&kk#+0AlnSFU*oZs^xZPmRvb4xv$LGAi_1jao?9GW3||C-2ac7k4=O8dAV{G@1|*H7XMXK0EGOb=)h^ZT#GsDEpjCdn2N9o6NDMNTn-{ciy^joD>jKYJ +z2DJJiprxTcE4Z!?<@{^5ZOXp1B^zYu-cX|I>Lev7r<4*j%^&nN!l!VCAN?>Nj|mCg +zGc2^vJ0N#~^YQ%Mj+XzmG`9|-S}>M4C~N%qR^_1u`__XcQ7*Zi?z?lS17CHZT#6d` +zq=rx0;^QPC=-x^S(!TGr97;dH0`Oy>(v7|OdT7cCN@GFv;g7*^V8uPS0;p`7QcoM%A7 +z?&7>b9iia?YfXh*vFcYczrxkUyavhMh~ZfDUlA|wAd*v1li=LqN=qkmP%QSZSe_A7 +zd6Vw#LR;iN?iAnRRzd-0zteX&X?v60Hg3CU%OEA3+eS<$D@Ux5ns5Q#TRCcDw{63F +zX>9R#X{S*hH|nmKMo69c!Qz+9P6&uAt4X+G%{TaS|6-tAY(TT{Q0T+FDc`0etT*T8 +zq60jZ(k!~uA4+Qbs$k2FY7~VysLp2fFY?RABK+-YioQ_N16U&xf8El1j=U*>wgjbp +zJnWwQb|Z|eaO)xRK;c#|hMbeWf)6*+uL(NwIH`y0#kU>jq&vasI)?v&w0wN{$*^eh +z!OEK}ufX9(T3r8`{UBt?wJBB5SZe2ghMEs|k83^7iE)CT;77POS3b5Ki^+2~v$UDd +zkwk_0=0E5BK|cLf!A<34@36C)CqUsIT5Q +zX~6hD>N1kej#Eq31ni)H8OCsUWh@sHF{qsaN4kh_B*Uk4kM`dv`i8H)QT&KHP!Rf$ +zK(Z4)d{FzO9#nfVjBtY4(_op&vtySTA`h--R$Ie3y2gp-b|~;H_l_2=AskOn;^;aN +zt|A`Ml%RXLD2t+XCPAMcVEVO`iNt|lyVD>IXoC{w0U_5bWQ<0KGq!%mQU+*cR +zShfBHgV4F->N`bQ<=L_~1x90wLu(J|$6PIatMB+5J`jn +zfi@H(Bl3C`@A=JElZl|fpQDvN5_DE{tq?61%s5dAA(yLM28V4Q5W(}FOy|$mTu>~` +z4kzu1ukEozsfpkvQ)|gD(3sthMRk>6fgv>U3Vy=#NFlL!4eG<#ctBa@2GAxff;Z-# +zTs$8@=+}a6NPGY=20hpkkfI7+)m$0>}}1>uU6q* +zDx$G~{s4wKZQ2I}&2nb4#JEDooS#e*Hi;j-__zBRbpyN+JS8bRnn)W=Q-3Z*n94P! +zjeM$8(;NJIn4t?t9I_XZi_>ICOR3|EAZj5#6-qiP-1-cyN`$#=!9)o=RwpZ8lU0ZH +za8%1V`fkSo_1M`7Xu?Hs$-%^l9vO%=D^U3o%8eE=DzOI;QkoD1s2Y7Dd^SmNLZgma$HQwL3c}TNA8py +zcwQYDYo9S+v^DDHfK;O-w0b>^4FIx0-8vRx`dslp=~kg3c#7EbdBVJ+R^)c!5x*@n +z69q^VT0*SHQoTF=;0htqJ5gJ^fGHRqtIw}!ln=VtN6kyGr*C*+LE~K*>KJ2yQ7g5+ +zhcUA-ZNX7PBYiv%n+yUM?xLX7FR^xI6gOsr*ZFfl-}6HN^ptbL0NN4!`Bc9aoV#X- +zVKgvvIEH}X0W{K%oFo}vesjk=84A=`G+f1jZ{4^hHN;pY-Iz*;3G<424&>tYyF+SZ +zyvmt8&rlEMD2>Bn01-}G{plVP3!svvEyKE*DZTuy$i9r>wb%%3%9p#KA0S}7Lld<(fdaX!%#e5g^FTk?Q5R}`;JSO +z?yXVWRgl!_rI;4s!tpm#(sADzvXiJ*{$Coifi$q;X({&s#!xlK%vZ)b|Nb&hCWb-A +z>|Li~WL~2f2PXqs)d$OS_@p|FyH4A`b>x+-1*JnpcQ^cUycik=jdYLc+Dq0Kx +z`92RJos3;!h4VB)xsBx+JhD?l1gc^2;lHkgCI=8Xnf;>}i!&!H+br{%5kyNsyY&8~ +z#?QRjEzBK%L3;9ej+=9Tmu14S{p$YPj6)b4%*9p$k8na?w4>DuA6V@*L%&trvh?g% +zIWk(8a@+2xneXp=D$+d9Da2fFs-yFrF*;|!;{J-ICn +zl(#;&+;gZ;C-k4Y_=>uTo~ZXt^5!bt>tl$5i*s#S;K9t_I=6Z|WW@`69;*Fev~Oyn +z0|V>R(v&@o?k6YaU9(1%_*Ldq +z1?QI%nC3P>{DDkvieO#W%MgScq2r;P^>lYni^I^hXGnrYmr!HO +zEr>MTywQj0%ie-PZvK7s$_eN|m9ZEvj9VYp|FM$`PCENa+fs5vIklQosc*8F=R#Rq +z6X|Xb2siRdzT$AEzIBY`%I1L>>2bh?l-m^kP5@ZeBDR|(15epcRW$8{>YrO5t0|!3 +zGMhhQN?}Sn{4M_B;8E3k>Au603v2WFgqsICqtCu=7J)n_ygaZh!^^m#+}WG>=|LE$ +zdiBOPg9I<$SDv=gG8>}`kMQV*rhtloAO{ieyJ1jP<*4G)FlFV4OPxpIY`1w;KV1Bh +z+&I!wfiCx84_($P~57FxCZo@%NiBFtsCDrCR_lmv?Lc8v2@Q+2F;O*&3)H?_{v_Ws4v78KiioG!anV~Z#&L01PP8GsDOW8fwCnaPi#c2- +zmu{el6^Lwm^$5J;f!gg1`ZX;bws@hfEf5Ef^@EdYcrb0gM0<9U{fvE4jl)|@wSk5d +zf63QdRhAXWF);Yt%ve^13!fVjGTIOS2d9`E)*~99=QibA!lk;Z;34lQFOM=xvz|7> +zLw?__i|fmjtH@Img*e+do!*zu%6vM2LVDP@)mt0V^z-g1ZYsZ*t0>kwPwyLp2&SQG +zT)7?{m&<;k`QG_}K15w{K;n!H`eu7Go9PCY&>l8>o6MY>t^2uLOHih*>{s7-OI@h!8&e|@@cX8hIY94he +zW4ViwWbiwxMovw3<^5PGsAHKihoQ^C6@X=p1Rcu^Y|uCw2(Ta&R)_4uy+|dA_sJ##nhE@ncV6#R+rk)8Ad~Kff>{!MnfM8PW!jU2 +zuxg?IWZhXk##wlJV`W{V#e7q^Q#1G5xyMNusl`w&-k;K)`qluUa&uf{)ZDZ0y|-h0 +zg`~XJZ$9>?xkA% +z)oq}v{-X^!`+k+&a!|KrtUCE<>>~OoA@H=T}WS4pa4%q5& +z%99ScQz*qr&32@K@e8@+*!s1nz}>wWrO8b~vI1&8JnEY0E)qx!&;NeFw$rPXgA(*s8D?60QPB3FKZJdlU +zyduQ&Gps2QQ8`nwSH9U8DD?6?IpE+{#NL+6_7NU(KI2XE3O4Jd&WlFm0xak_`Sm7n +zMmTUId|!teB7oStm2^d7>{eRkXTQ`7xv=lhun?`KfZnP$gq*K|U=}J*Eqmi);123t +z*iRk-)h5Jc`21Tac`~#x9eGc7SB`|+DOkLQr}KwelidNc`A1riY3`s>TIxwjZ98@n +zNLi%UiP`5Jb<*4c!p4+E?`fa;{3POHQR-<1f7nw#Z5n%9?a}eBgFAg#s5yfrp&_MyABH93HNxGH6jJpuon?|5@&*gW +z(0l6l;~_`NZo3rEh2^tB?=i?@Nx^DAo}U)>rX^K!on_38?q6(lYyvKr2uG7=RJ`6% +z1FYLNL;k)4+26|LFhIq|g959j*B@g)4f~4?dwpLs6&_scg*$jQjJNwwGFLmQLhWrg +zj9o5o-hIY*&kVWR5*M0R%Ie|cFB<@q_O;7)GJq773Y+5mk-1diZk6Z0HU9VI_T{v> +zN0gdW&(h_|WsrW$<-14zrd-g_X$vK8;AtLE`s)U9B&i589j@AE9&~^-+n=uVw|!Al +zUe3GtQYm%m%gy;0En%9LFAJV(Xev$0mpt0(Q~UB~XoUYEH7!UBzgouP_M>~iy=%PJ +z+@LT~jL%ZAq#?fnw<1kWGkCg2me&YwCA!dQa4vL&9XBH%9^3hv)QR8s##p1e%km%E0azyT$-$P +zRPU)4U +za0Ipb&P^&RRLoYa?5*MBbKazW6t%yan*F%(z73>af)7|vMw6b1k6UxWy6FF}*B +zydX6hhI!^eLyT9*!8WQxv~nmmb$6JCfO^!6)b0a_aH8$4vp5`T>Q-w*$2^CZ07I_& +zmeWl3mTSoUOvW`e$_{48X@Og={q=6S&kQufFH?y@12GB{3mFix+bT~fr6aPxYgGzx +zg)|O4Z5%TY<%?8(8`ZcoM#0b1Nk`kU#KE9shTkQQ)-WPH_N?V7h=1gIoP?M(BsMnE +z@c7ip`VaaTo%f+!ED^VI+|a1$q_YnJ +zVeh;65e8M+(QubG>XUO7d5}=zHtJ&x8i;Dqp?{zou**K@u^Z=op?pznA2xU|(BJ>A +z5ukI!Dc_a1{OMxMGhiC$)O1L3=VRroj +zEPdo1rbjS(lY9(!H7-Og<8TjR`sAR;SvFJ*9!fai0jfa^7->j; +z`9XO2J`9R`s<~UtEvgk$1-b9(%%6F=OhV@47sq!rpxv~mRcIYkdtRY^It5Dq!sy60 +zsx6JCkv1J?8E4s#gR^U3Y5?|HnYbd9$=us6qH@r^vND~BMwYw^y^Ll<)q?)0|xQ2%1^~S?npg4b4rTO +LDIkFN#;N}YR&K&K literal 0 HcmV?d00001 @@ -154805,7 +154661,7 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow #include "content/browser/loader/navigation_url_loader_impl.h" #include -@@ -992,7 +996,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -971,7 +975,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect", resource_request_->is_outermost_main_frame); net::Error error = net::OK; @@ -154828,7 +154684,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #include "content/browser/renderer_host/render_frame_host_impl.h" -@@ -2668,6 +2672,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -2672,6 +2676,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -154841,7 +154697,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b void RenderFrameHostImpl::ExecuteJavaScript(const std::u16string& javascript, JavaScriptResultCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); -@@ -11319,7 +11329,6 @@ bool RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryInternal( +@@ -11259,7 +11269,6 @@ bool RenderFrameHostImpl::CreateNetworkServiceDefaultFactoryInternal( GetProcess()->CreateURLLoaderFactory(std::move(default_factory_receiver), std::move(params)); @@ -154983,7 +154839,7 @@ diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_ #include "extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h" #include -@@ -461,6 +465,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( +@@ -462,6 +466,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT); if (redirect_url_ != redirect_info.new_url && @@ -155052,7 +154908,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -914,6 +918,10 @@ interface LocalFrame { +@@ -915,6 +919,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -155226,7 +155082,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_ur #include "third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_url_loader_client.h" #include -@@ -445,7 +449,7 @@ void MojoURLLoaderClient::OnReceiveRedirect( +@@ -449,7 +453,7 @@ void MojoURLLoaderClient::OnReceiveRedirect( OnComplete(network::URLLoaderCompletionStatus(net::ERR_ABORTED)); return; } @@ -155235,6 +155091,441 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/mojo_ur !Platform::Current()->IsRedirectSafe(GURL(last_loaded_url_), redirect_info.new_url)) { OnComplete(network::URLLoaderCompletionStatus(net::ERR_UNSAFE_REDIRECT)); +diff --git a/tools/eyeo/generate_interdiffs.sh b/tools/eyeo/generate_interdiffs.sh +new file mode 100755 +--- /dev/null ++++ b/tools/eyeo/generate_interdiffs.sh +@@ -0,0 +1,150 @@ ++#!/bin/bash ++ ++# This file is part of eyeo Chromium SDK, ++# Copyright (C) 2006-present eyeo GmbH ++# eyeo Chromium SDK is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License version 3 as ++# published by the Free Software Foundation. ++# eyeo Chromium SDK is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# You should have received a copy of the GNU General Public License ++# along with eyeo Chromium SDK. If not, see . ++ ++if [ "$1" = "--help" ] || [ "$1" = "-h" ]; then ++ echo " ++ This script generates interdiffs between eyeo Chromium SDK releases, git diff ++ file will be saved in `eyeo_modules/` directory, created if needed. ++ No upstream changes included in diff file. ++ Module interdiffs supported since version 115. ++ ++ Usage: ++ generate_interdiffs.sh ++ ++ Options: ++ --full-sdk Generates one diff includes whole eyeo Chromium SDK implementation (include testing & CI files) ++ --all-modules Generates diff files for each module: base, chrome, webview, android-api, android-settings and extension-api ++ --base Generates one diff for base module changes ++ --chrome Generates one diff for Chorme Integration module changes ++ --webview Generates one diff for Android Webview Integration module changes ++ --android-api Generates one diff for Android API module changes ++ --android-settings Generates one diff for Android UI module changes ++ --extension-api Generates one diff for Extension API module changes ++" ++ exit ++fi ++ ++OLD_TAG=$1 ++NEW_TAG=$2 ++OPTIONS=${@:3} ++OPTIONS="${OPTIONS/--all-modules/ -- base --chrome --webview --android-api --android-settings --extension-api}" ++ ++if [ -z "$OLD_TAG" ] || [ -z "$NEW_TAG" ]; then ++ echo " ++ Missing arguments! ++ Usage: ++ generate_interdiffs.sh ++ or see help: ++ generate_interdiffs.sh --help ++" ++ exit ++fi ++ ++# git has no diff support for binary files ++# also remove any internal CI files ++EXCLUDE_FILES=("components/resources/adblocking/easylist*" ++ "components/resources/adblocking/exceptionrules*" ++ "components/resources/adblocking/anticv*" ++ ".ci-scripts/*" ++ ".gitlab-ci.yml" ++) ++ ++for module in $OPTIONS ++do ++ if [ "$module" = "--base" ]; then ++ SUFFIX="-base-module-branch" ++ elif [ "$module" = "--chrome" ]; then ++ SUFFIX="-base-chrome-module-branch" ++ elif [ "$module" = "--android-api" ]; then ++ SUFFIX="-base-chrome-android-api-module-branch" ++ elif [ "$module" = "--android-settings" ]; then ++ SUFFIX="-base-chrome-android-settings-module-branch" ++ elif [ "$module" = "--extension-api" ]; then ++ SUFFIX="-base-chrome-desktop-module-branch" ++ elif [ "$module" = "--webview" ]; then ++ SUFFIX="-base-webview-module-branch" ++ elif [ "$module" = "--full-sdk" ]; then ++ SUFFIX="" ++ else ++ echo " ++ Unknow option: $module ++ Avaiable options: ++ --full-sdk ++ --all-modules ++ --base ++ --chrome ++ --webview ++ --android-api ++ --android-settings ++ --extension-api ++" ++ exit ++ fi ++ ++ repo_dir=$(git rev-parse --show-toplevel) ++ mkdir -p $repo_dir/eyeo_modules/interdiffs ++ ++ OLD_TAG_HEAD=$(git rev-parse --verify origin/${OLD_TAG}${SUFFIX} 2>/dev/null) ++ OLD_TAG_PREV=$(git rev-parse --verify origin/${OLD_TAG}${SUFFIX}~1 2>/dev/null) ++ NEW_TAG_HEAD=$(git rev-parse --verify origin/${NEW_TAG}${SUFFIX} 2>/dev/null) ++ NEW_TAG_PREV=$(git rev-parse --verify origin/${NEW_TAG}${SUFFIX}~1 2>/dev/null) ++ ++ if [ "$module" = "--full-sdk" ]; then ++ OLD_TAG_HEAD=$(git ls-remote --tags origin | grep -o -e ${OLD_TAG}$) ++ NEW_TAG_HEAD=$(git ls-remote --tags origin | grep -o -e ${NEW_TAG}$) ++ else ++ OLD_TAG_HEAD=$(git rev-parse --verify origin/${OLD_TAG}${SUFFIX} 2>/dev/null) ++ NEW_TAG_HEAD=$(git rev-parse --verify origin/${NEW_TAG}${SUFFIX} 2>/dev/null) ++ fi ++ ++ if [ -z "$OLD_TAG_HEAD" ]; then ++ echo "Interdiff modules are not supported for version ${OLD_TAG}" ++ fi ++ if [ -z "$NEW_TAG_HEAD" ]; then ++ echo "Interdiff modules are not supported for version ${NEW_TAG}" ++ fi ++ if [ -z "$OLD_TAG_HEAD" ] || [ -z "$NEW_TAG_HEAD" ]; then ++ echo "Interdiff are supported since version 115" ++ exit ++ fi ++ ++ if [ "$module" = "--full-sdk" ]; then ++ # Find lastest upstream commit for given version. ++ OLD_VERSION=$(echo ${OLD_TAG} | cut -d "-" -f3) ++ NEW_VERSION=$(echo ${NEW_TAG} | cut -d "-" -f3) ++ OLD_TAG_PREV=$(git log --no-decorate --all --grep="Publish DEPS for ${OLD_VERSION}" -n 1 --pretty=format:"%h") ++ NEW_TAG_PREV=$(git log --no-decorate --all --grep="Publish DEPS for ${NEW_VERSION}" -n 1 --pretty=format:"%h") ++ else ++ # Take advantage of modules test branches design, ++ # top commit always contain module changes only. ++ OLD_TAG_PREV=$(git rev-parse --verify origin/${OLD_TAG}${SUFFIX}~1 2>/dev/null) ++ NEW_TAG_PREV=$(git rev-parse --verify origin/${NEW_TAG}${SUFFIX}~1 2>/dev/null) ++ fi ++ ++ # Create a list of changed files, it's important to create it for each version, ++ # some of files may renamed. ++ OLD_TAG_FILES=$(git diff --name-only $OLD_TAG_HEAD..$OLD_TAG_PREV) ++ NEW_TAG_FILES=$(git diff --name-only $NEW_TAG_HEAD..$NEW_TAG_PREV) ++ # Combine and uniquify. ++ COMBINED_FILES=(`for R in "${OLD_TAG_FILES[@]}" "${NEW_TAG_FILES[@]}" ; do echo "$R" ; done | sort -du`) ++ # Remove files not supported by git diff ++ for del in ${EXCLUDE_FILES[@]} ++ do ++ COMBINED_FILES=("${COMBINED_FILES[@]/$del}") ++ done ++ ++ #Create diff in eyeo_modules/interdiffs/ ++ git diff ${OLD_TAG_HEAD}..${NEW_TAG_HEAD} -- ${COMBINED_FILES[@]} > $repo_dir/eyeo_modules/interdiffs/${module:2}-$OLD_TAG-$NEW_TAG.diff ++ ++done +diff --git a/tools/eyeo/generate_modules.sh b/tools/eyeo/generate_modules.sh +new file mode 100755 +--- /dev/null ++++ b/tools/eyeo/generate_modules.sh +@@ -0,0 +1,209 @@ ++#!/bin/bash ++ ++# This file is part of eyeo Chromium SDK, ++# Copyright (C) 2006-present eyeo GmbH ++# eyeo Chromium SDK is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License version 3 as ++# published by the Free Software Foundation. ++# eyeo Chromium SDK is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# You should have received a copy of the GNU General Public License ++# along with eyeo Chromium SDK. If not, see . ++ ++if [ $# -eq 0 ]; then ++ echo "Please provide an eyeo tag argument." \ ++ "It is needed to find vanila branch to generate module diffs for." ++ exit 1 ++fi ++ ++EYEO_RELEASE_TAG=$1 ++ ++CHROMIUM_TAG=$(echo ${EYEO_RELEASE_TAG} | cut -d "-" -f3) ++TOP_VANILLA_COMMIT=$(git rev-parse --short origin/chromium-${CHROMIUM_TAG}-vanilla-automated~1) ++ ++if [[ $(git cat-file -t ${TOP_VANILLA_COMMIT} 2> /dev/null) != "commit" ]]; then ++ echo "Failed to find vanila branch." ++ exit 1 ++fi ++ ++INITIAL_BRANCH=$(git rev-parse --abbrev-ref HEAD) ++INITIAL_HASH=$(git rev-parse HEAD) ++ ++### Remove CI & testing ### ++CI_AND_TESTING_FILES=" ++.ci-scripts/ ++.gitignore ++.gitlab-ci.yml ++.pre-commit-config.yaml ++.vpython ++build/install-build-deps.sh ++components/eyeo_testing/ ++gclient/ ++tools/perf/ ++" ++ ++sed -i '/CI & Testing module start/,/CI & Testing module end/d' components/adblock/core/BUILD.gn ++git add components/adblock/core/BUILD.gn ++ ++for path in $CI_AND_TESTING_FILES ++do ++ git restore --source=$TOP_VANILLA_COMMIT --staged --worktree -- $path ++done ++ ++git commit -n -m "Remove CI requirements" ++NEGATIVE_CI_TESTING=$(git rev-parse --short HEAD) ++ ++### Android UI removal ### ++ANDROID_UI_FILES=" ++chrome/android/java/res/xml/main_preferences.xml ++components/adblock/android/README.md ++components/adblock/android/adblock_strings.grd ++components/adblock/android/java/res/drawable-* ++components/adblock/android/java/res/layout/ ++components/adblock/android/java/res/xml/ ++components/adblock/android/java/src/org/chromium/components/adblock/settings/ ++chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java ++chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java ++chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java ++components/adblock/android/translations/ ++" ++ ++ANDROID_UI_SHARED_FILES=" ++chrome/browser/adblock/android/BUILD.gn ++chrome/android/BUILD.gn ++components/adblock/android/BUILD.gn ++" ++ ++for path in $ANDROID_UI_SHARED_FILES ++do ++ sed -i '/Android UI module start/,/Android UI module end/d' $path ++ git add $path ++done ++ ++for path in $ANDROID_UI_FILES ++do ++ git restore --source=$TOP_VANILLA_COMMIT --staged --worktree -- $path ++done ++ ++git commit -n -m "Negative Android UI module" ++NEGATIVE_ANDROID_UI_MODULE_HASH=$(git rev-parse --short HEAD) ++ ++### Android Webview removal ### ++WEBVIEW_FILES=" ++android_webview/ ++components/adblock/android/ ++" ++ ++for path in $WEBVIEW_FILES ++do ++ git restore --source=$TOP_VANILLA_COMMIT --staged --worktree -- $path ++done ++ ++git commit -n -m "Remove Android Webview integration" ++NEGATIVE_WEBVIEW_INTEGRATION=$(git rev-parse --short HEAD) ++ ++### Restore components/adblock/android/ as this is shared part between Webview and Android API ++git restore --source=HEAD~1 --staged --worktree -- components/adblock/android/ ++git commit -n -m "Restore jni_headers" ++ ++### Android API removal ### ++ANDROID_API_FILES=" ++components/adblock/android/ ++chrome/browser/android/adblock/ ++chrome/android/ ++" ++ ++ANDROID_API_SHARED_FILES=" ++chrome/browser/BUILD.gn ++chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc ++" ++ ++for path in $ANDROID_API_SHARED_FILES ++do ++ sed -i '/Android API module start/,/Android API module end/d' $path ++ git add $path ++done ++ ++for path in $ANDROID_API_FILES ++do ++ git restore --source=$TOP_VANILLA_COMMIT --staged --worktree -- $path ++done ++ ++git commit -n -m "Negative Android API module" ++NEGATIVE_ANDROID_API_MODULE_HASH=$(git rev-parse --short HEAD) ++ ++#### Extension API removal ### ++ ++EXTENSION_API_FILES=" ++chrome/browser/extensions/ ++chrome/common/extensions/ ++chrome/test/data/extensions/api_test/ ++extensions/browser/extension_event_histogram_value.h ++extensions/browser/extension_function_histogram_value.h ++extensions/common/mojom/api_permission_id.mojom ++tools/metrics/histograms/enums.xml ++tools/typescript/definitions/adblock_private.d.ts ++tools/typescript/definitions/eyeo_filtering_private.d.ts ++" ++ ++sed -i '/Extension API module start/,/Extension API module end/d' chrome/test/BUILD.gn ++git add chrome/test/BUILD.gn ++ ++for path in $EXTENSION_API_FILES ++do ++ git restore --source=$TOP_VANILLA_COMMIT --staged --worktree -- $path ++done ++ ++git commit -n -m "Negative Extension API module" ++NEGATIVE_EXTENSION_API_MODULE_HASH=$(git rev-parse --short HEAD) ++ ++### Chrome removal ### ++git restore --source=$TOP_VANILLA_COMMIT --staged --worktree -- chrome ++ ++git commit -n -m "Remove Chrome integration" ++NEGATIVE_CHROME_INTEGRATION=$(git rev-parse --short HEAD) ++ ++### Create Base Module ++git reset $TOP_VANILLA_COMMIT --soft ++git commit -n -m "eyeo Browser Ad filtering Solution: Base Module" -m "Based on Chromium ${CHROMIUM_TAG}" ++BASE_MODULE_HASH=$(git rev-parse --short HEAD) ++ ++### Generate modules ++repo_dir=$(git rev-parse --show-toplevel) ++mkdir -p $repo_dir/eyeo_modules ++ ++git format-patch -1 HEAD --stdout > $repo_dir/eyeo_modules/base.patch ++ ++git revert -n $NEGATIVE_CHROME_INTEGRATION ++git commit -n -m "eyeo Browser Ad filtering Solution: Chrome Integration Module" -m "Based on Chromium ${CHROMIUM_TAG}" -m "Pre-requisites: eyeo Browser Ad filtering Solution: Base Module" ++git format-patch -1 HEAD --stdout > $repo_dir/eyeo_modules/chrome_integration.patch ++ ++git revert -n $NEGATIVE_WEBVIEW_INTEGRATION ++git commit -n -m "eyeo Browser Ad filtering Solution: Android Weview Integration Module" -m "Based on Chromium ${CHROMIUM_TAG}" -m "Pre-requisites: eyeo Browser Ad filtering Solution: Base Module" ++git format-patch -1 HEAD --stdout > $repo_dir/eyeo_modules/webview_integration.patch ++ ++### Remove webview integration commit to aviod conflicts on shared files from Webview Integration and Android API ++git reset HEAD~1 --hard ++ ++git revert -n $NEGATIVE_ANDROID_API_MODULE_HASH ++git commit -n -m "eyeo Browser Ad filtering Solution: Android API Module" -m "Based on Chromium ${CHROMIUM_TAG}" -m "Pre-requisites: eyeo Browser Ad filtering Solution: Base Module" ++git format-patch -1 HEAD --stdout > $repo_dir/eyeo_modules/android_api.patch ++ ++git revert -n $NEGATIVE_ANDROID_UI_MODULE_HASH ++git commit -n -m "eyeo Browser Ad filtering Solution: Android Settings UI Module" -m "Based on Chromium ${CHROMIUM_TAG}" -m "Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API Module" ++git format-patch -1 HEAD --stdout > $repo_dir/eyeo_modules/android_settings.patch ++ ++git revert -n $NEGATIVE_EXTENSION_API_MODULE_HASH ++git commit -n -m "eyeo Browser Ad filtering Solution: Extension API Module" -m "Based on Chromium ${CHROMIUM_TAG}" -m "Pre-requisites: eyeo Browser Ad filtering Solution: Base Module" ++git format-patch -1 HEAD --stdout > $repo_dir/eyeo_modules/extension_api.patch ++ ++git revert -n $NEGATIVE_CI_TESTING ++git commit -n -m "eyeo Browser Ad filtering Solution: CI & testing module" ++git format-patch -1 HEAD --stdout > $repo_dir/eyeo_modules/ci_and_testing.patch ++ ++### Recover HEAD & branch after script - usefull for local runs ++#git checkout $INITIAL_HASH ++#git branch -D $INITIAL_BRANCH ++#git checkout -b $INITIAL_BRANCH +diff --git a/tools/eyeo/snippets_deps.py b/tools/eyeo/snippets_deps.py +new file mode 100644 +--- /dev/null ++++ b/tools/eyeo/snippets_deps.py +@@ -0,0 +1,61 @@ ++#!/usr/bin/env python3 ++ ++# This file is part of eyeo Chromium SDK, ++# Copyright (C) 2006-present eyeo GmbH ++# ++# eyeo Chromium SDK is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License version 3 as ++# published by the Free Software Foundation. ++# ++# eyeo Chromium SDK is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with eyeo Chromium SDK. If not, see . ++ ++import argparse ++import os.path ++ ++# This class reads the dependencies.jst file distributed with snippets library ++# and extracts from it the code which is required to support xpath3 snippet filters. ++# The extracted code is copied into the location pointed out by output_file argument. ++class PrepareXpath3Dep: ++ def __init__(self, args): ++ self.input_file = args.input_dir + "/dependencies.jst" ++ self.output_file = args.output_file ++ ++ def run(self): ++ # Create file so it exists for sure ++ with open(self.output_file, 'w', encoding="utf8") as out_file: ++ out_file.writelines([]) ++ if os.path.exists(self.input_file): ++ print("Copying xpath3 deps code from %s to %s"%(self.input_file, self.output_file)) ++ lines_to_write = [] ++ start_tag = "/**! Start hide-if-matches-xpath3 dependency !**/" ++ end_tag = "/**! End hide-if-matches-xpath3 dependency !**/" ++ between_tags = False ++ with open(self.input_file, encoding="utf8") as in_file: ++ for line in in_file: ++ if line.strip() == start_tag: ++ between_tags = True ++ continue ++ if line.strip() == end_tag: ++ between_tags = False ++ continue ++ if between_tags: ++ lines_to_write.append(line) ++ out_file.writelines(lines_to_write) ++ in_file.close() ++ out_file.close() ++ ++if __name__ == '__main__': ++ parser = argparse.ArgumentParser( ++ description='Prepares snippets xpath3 dependency') ++ ++ parser.add_argument('input_dir', help='directory where dependencies.jst can be found') ++ parser.add_argument('output_file', help='output file where to copy content parsed from dependencies.jst') ++ ++ main = PrepareXpath3Dep(parser.parse_args()) ++ main.run() diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec @@ -155249,16 +155540,16 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ # This file is used to assign starting resource ids for resources and strings # used by Chromium. This is done to ensure that resource ids are unique # across all the grd files. If you are adding a new grd file, please add -@@ -651,6 +655,10 @@ - "META": {"sizes": {"includes": [10]}}, - "includes": [4980], +@@ -667,6 +671,10 @@ + "META": {"sizes": {"includes": [20]}}, + "includes": [4960], }, + "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/adblock_internals/resources.grd": { + "META": {"sizes": {"includes": [10],}}, -+ "includes": [4720], ++ "includes": [4970], + }, - # END chrome/ WebUI resources section - - # START chrome/ miscellaneous section. + "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/hats/resources.grd": { + "META": {"sizes": {"includes": [10]}}, + "includes": [4980], -- 2.25.1 diff --git a/build/patches/eyeo-117.0.5938.0-chrome_integration.patch b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch similarity index 79% rename from build/patches/eyeo-117.0.5938.0-chrome_integration.patch rename to build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch index b2eaa7a2..76d8452b 100644 --- a/build/patches/eyeo-117.0.5938.0-chrome_integration.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch @@ -1,21 +1,38 @@ From: chromium-sdk -Date: Mon, 21 Aug 2023 18:20:41 +0200 +Date: Thu, 12 Oct 2023 14:46:02 +0200 Subject: eyeo Browser Ad filtering Solution: Chrome Integration Module -Based on Chromium 117.0.5938.0 +Based on Chromium 118.0.5993.48 Pre-requisites: eyeo Browser Ad filtering Solution: Base Module --- chrome/app/chrome_main_delegate.cc | 7 +- - chrome/browser/BUILD.gn | 32 ++ + chrome/browser/BUILD.gn | 29 ++ chrome/browser/adblock/README.md | 3 + - .../adblock/adblock_content_browser_client.cc | 322 ++++++++++++ + .../adblock/adblock_content_browser_client.cc | 320 ++++++++++++ .../adblock/adblock_content_browser_client.h | 100 ++++ - ...adblock_content_browser_client_unittest.cc | 198 ++++++++ + ...adblock_content_browser_client_unittest.cc | 203 ++++++++ .../adblock/adblock_controller_factory.cc | 67 +++ .../adblock/adblock_controller_factory.h | 49 ++ - .../adblock_telemetry_service_factory.cc | 68 +++ - .../adblock_telemetry_service_factory.h | 53 ++ + .../adblock_telemetry_service_factory.cc | 63 +++ + .../adblock_telemetry_service_factory.h | 51 ++ + chrome/browser/adblock/android/BUILD.gn | 68 +++ + .../adblock/AdblockControllerTest.java | 43 ++ + .../adblock/FilteringConfigurationTest.java | 418 ++++++++++++++++ + .../ResourceClassificationNotifierTest.java | 135 +++++ + .../adblock/TestPagesCircumventionTest.java | 51 ++ + .../browser/adblock/TestPagesCspTest.java | 51 ++ + .../adblock/TestPagesElemhideEmuInvTest.java | 48 ++ + .../adblock/TestPagesElemhideEmuTest.java | 48 ++ + .../adblock/TestPagesElemhideTest.java | 48 ++ + .../adblock/TestPagesExceptionTest.java | 100 ++++ + .../browser/adblock/TestPagesFilterTest.java | 101 ++++ + .../adblock/TestPagesHeaderFilterTest.java | 51 ++ + .../browser/adblock/TestPagesHelper.java | 121 +++++ + .../browser/adblock/TestPagesRewriteTest.java | 51 ++ + .../browser/adblock/TestPagesSiteKeyTest.java | 51 ++ + .../adblock/TestPagesSnippetsTest.java | 51 ++ + .../adblock/TestPagesWebsocketTest.java | 51 ++ ...ontent_security_policy_injector_factory.cc | 69 +++ ...content_security_policy_injector_factory.h | 49 ++ .../browser/adblock/element_hider_factory.cc | 63 +++ @@ -30,47 +47,48 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module ...subscription_persistent_metadata_factory.h | 49 ++ .../adblock/subscription_service_factory.cc | 66 +++ .../adblock/subscription_service_factory.h | 50 ++ - ...lock_content_browser_client_browsertest.cc | 122 +++++ - .../test/adblock_debug_url_browsertest.cc | 301 ++++++++++++ - .../test/adblock_filter_list_browsertest.cc | 246 ++++++++++ - ...ck_filtering_configurations_browsertest.cc | 460 +++++++++++++++++ - ...ock_frame_hierarchy_builder_browsertest.cc | 463 ++++++++++++++++++ - .../test/adblock_multiple_tabs_browsertest.cc | 159 ++++++ - .../test/adblock_non_ascii_browsertest.cc | 77 +++ - .../adblock/test/adblock_popup_browsertest.cc | 462 +++++++++++++++++ - ...dblock_subscription_service_browsertest.cc | 204 ++++++++ + ...lock_content_browser_client_browsertest.cc | 125 +++++ + .../test/adblock_debug_url_browsertest.cc | 314 ++++++++++++ + .../test/adblock_filter_list_browsertest.cc | 260 ++++++++++ + ...ck_filtering_configurations_browsertest.cc | 459 +++++++++++++++++ + ...ock_frame_hierarchy_builder_browsertest.cc | 464 ++++++++++++++++++ + .../test/adblock_multiple_tabs_browsertest.cc | 160 ++++++ + .../test/adblock_non_ascii_browsertest.cc | 78 +++ + .../adblock/test/adblock_popup_browsertest.cc | 463 +++++++++++++++++ + .../test/adblock_snippets_browsertest.cc | 80 +++ + ...dblock_subscription_service_browsertest.cc | 201 ++++++++ .../adblock_telemetry_service_browsertest.cc | 256 ++++++++++ - .../test/adblock_web_bundle_browsertest.cc | 426 ++++++++++++++++ + .../test/adblock_web_bundle_browsertest.cc | 427 ++++++++++++++++ .../chrome_browser_interface_binders.cc | 9 + - .../client_hints/client_hints_browsertest.cc | 12 + + .../client_hints/client_hints_browsertest.cc | 9 +- chrome/browser/net/errorpage_browsertest.cc | 8 + ..._page_load_metrics_observer_browsertest.cc | 7 +- - chrome/browser/preferences/BUILD.gn | 9 + + chrome/browser/preferences/BUILD.gn | 5 + .../prefs/chrome_pref_service_factory.cc | 11 + ...hrome_browser_main_extra_parts_profiles.cc | 26 + - .../profile_keyed_service_browsertest.cc | 31 +- + .../profile_keyed_service_browsertest.cc | 42 +- chrome/browser/resources/BUILD.gn | 5 + .../resources/adblock_internals/BUILD.gn | 29 ++ .../adblock_internals/adblock_internals.html | 38 ++ .../adblock_internals/adblock_internals.ts | 43 ++ .../safe_browsing_blocking_page_test.cc | 8 +- ...subresource_filter_browser_test_harness.cc | 8 +- - chrome/browser/ui/BUILD.gn | 16 + + chrome/browser/ui/BUILD.gn | 12 +- chrome/browser/ui/prefs/pref_watcher.cc | 13 + - chrome/browser/ui/tab_helpers.cc | 22 + + chrome/browser/ui/tab_helpers.cc | 18 + .../ui/webui/adblock_internals/BUILD.gn | 23 + .../adblock_internals/adblock_internals.mojom | 20 + - .../adblock_internals_page_handler_impl.cc | 97 ++++ - .../adblock_internals_page_handler_impl.h | 47 ++ + .../adblock_internals_page_handler_impl.cc | 115 +++++ + .../adblock_internals_page_handler_impl.h | 51 ++ .../adblock_internals/adblock_internals_ui.cc | 47 ++ .../adblock_internals/adblock_internals_ui.h | 48 ++ .../webui/chrome_web_ui_controller_factory.cc | 11 +- chrome/common/BUILD.gn | 3 + chrome/common/webui_url_constants.cc | 5 + chrome/common/webui_url_constants.h | 5 + - chrome/test/BUILD.gn | 26 + + chrome/test/BUILD.gn | 27 + chrome/test/base/chrome_test_launcher.cc | 7 +- - chrome/test/base/in_process_browser_test.cc | 17 +- + chrome/test/base/in_process_browser_test.cc | 21 +- .../filterlist_that_allows_resource.txt | 7 + .../filterlist_that_blocks_resource.txt | 6 + .../filterlist_that_hides_resource.txt | 6 + @@ -110,7 +128,8 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../wbn/by_scope/pink_subresource_loading.png | Bin 0 -> 775 bytes .../xhr_result_3_subresource_loading.json | 1 + .../test/data/adblock/wbn/index.html.mustache | 157 ++++++ - 104 files changed, 6042 insertions(+), 10 deletions(-) + chrome/test/data/adblock/xpath3.html | 23 + + 123 files changed, 7677 insertions(+), 12 deletions(-) create mode 100644 chrome/browser/adblock/README.md create mode 100644 chrome/browser/adblock/adblock_content_browser_client.cc create mode 100644 chrome/browser/adblock/adblock_content_browser_client.h @@ -119,6 +138,23 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module create mode 100644 chrome/browser/adblock/adblock_controller_factory.h create mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.cc create mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.h + create mode 100644 chrome/browser/adblock/android/BUILD.gn + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockControllerTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/FilteringConfigurationTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/ResourceClassificationNotifierTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesCircumventionTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesCspTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuInvTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesExceptionTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesFilterTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesHeaderFilterTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesHelper.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesRewriteTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesSiteKeyTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesSnippetsTest.java + create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesWebsocketTest.java create mode 100644 chrome/browser/adblock/content_security_policy_injector_factory.cc create mode 100644 chrome/browser/adblock/content_security_policy_injector_factory.h create mode 100644 chrome/browser/adblock/element_hider_factory.cc @@ -141,6 +177,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module create mode 100644 chrome/browser/adblock/test/adblock_multiple_tabs_browsertest.cc create mode 100644 chrome/browser/adblock/test/adblock_non_ascii_browsertest.cc create mode 100644 chrome/browser/adblock/test/adblock_popup_browsertest.cc + create mode 100644 chrome/browser/adblock/test/adblock_snippets_browsertest.cc create mode 100644 chrome/browser/adblock/test/adblock_subscription_service_browsertest.cc create mode 100644 chrome/browser/adblock/test/adblock_telemetry_service_browsertest.cc create mode 100644 chrome/browser/adblock/test/adblock_web_bundle_browsertest.cc @@ -192,6 +229,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module create mode 100644 chrome/test/data/adblock/wbn/by_scope/pink_subresource_loading.png create mode 100644 chrome/test/data/adblock/wbn/by_scope/xhr_result_3_subresource_loading.json create mode 100644 chrome/test/data/adblock/wbn/index.html.mustache + create mode 100644 chrome/test/data/adblock/xpath3.html diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc --- a/chrome/app/chrome_main_delegate.cc @@ -215,7 +253,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #include "chrome/browser/buildflags.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_resource_bundle_helper.h" -@@ -1756,7 +1761,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1783,7 +1788,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { content::ContentBrowserClient* ChromeMainDelegate::CreateContentBrowserClient() { chrome_content_browser_client_ = @@ -237,7 +275,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn import("//base/allocator/allocator.gni") import("//build/buildflag_header.gni") -@@ -159,6 +162,26 @@ static_library("browser") { +@@ -158,6 +161,26 @@ static_library("browser") { "accessibility/page_colors.h", "accessibility/page_colors_factory.cc", "accessibility/page_colors_factory.h", @@ -264,7 +302,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "after_startup_task_utils.cc", "after_startup_task_utils.h", "app_mode/app_mode_utils.cc", -@@ -2065,6 +2088,7 @@ static_library("browser") { +@@ -2112,6 +2135,7 @@ static_library("browser") { "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/color:mixers", "//chrome/browser/ui/webui:configs", @@ -272,29 +310,32 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/ui/webui/app_service_internals:mojo_bindings", "//chrome/browser/ui/webui/feed:mojo_bindings", "//chrome/browser/ui/webui/internals/user_education:mojo_bindings", -@@ -2086,6 +2110,12 @@ static_library("browser") { +@@ -2134,6 +2158,8 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", -+<<<<<<< HEAD -+======= -+ "//chromeos/components/kiosk", + "//components/adblock/content:browser", + "//components/adblock/core/converter", -+>>>>>>> 9402d5c48c0e8... Squashed commits "//components/assist_ranker", "//components/autofill/content/browser", "//components/autofill/core/browser", -@@ -3340,7 +3370,9 @@ static_library("browser") { - "webauthn/android/chrome_webauthn_client_android.h", +@@ -3411,6 +3437,8 @@ static_library("browser") { "webauthn/android/webauthn_request_delegate_android.cc", "webauthn/android/webauthn_request_delegate_android.h", -+ ] ++ + public_deps += [ "//chrome/android/features/dev_ui:buildflags", "//components/image_fetcher/core", +@@ -3599,6 +3627,7 @@ static_library("browser") { + "//url:gurl_android", + ] + ++ + if (safe_browsing_mode == 2) { + sources += [ + "component_updater/real_time_url_checks_allowlist_component_installer.cc", diff --git a/chrome/browser/adblock/README.md b/chrome/browser/adblock/README.md new file mode 100644 --- /dev/null @@ -307,7 +348,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_content_browser_client.cc -@@ -0,0 +1,322 @@ +@@ -0,0 +1,320 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -329,7 +370,6 @@ new file mode 100644 + +#include "base/containers/unique_ptr_adapters.h" +#include "base/ranges/algorithm.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/content_security_policy_injector_factory.h" +#include "chrome/browser/adblock/element_hider_factory.h" +#include "chrome/browser/adblock/resource_classification_runner_factory.h" @@ -339,7 +379,6 @@ new file mode 100644 +#include "chrome/browser/ui/browser_navigator_params.h" +#include "components/adblock/content/browser/adblock_url_loader_factory.h" +#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_prefs.h" +#include "components/adblock/core/configuration/filtering_configuration.h" +#include "components/adblock/core/subscription/subscription_service.h" @@ -424,7 +463,7 @@ new file mode 100644 + embedder_support::GetUserAgent(), + base::BindOnce(&AdblockContextData::RemoveProxy, + self->weak_factory_.GetWeakPtr()), -+ adblock::AdblockControllerFactory::GetForBrowserContext( ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( + Profile::FromBrowserContext( + frame->GetProcess()->GetBrowserContext()))); + self->proxies_.emplace(std::move(proxy)); @@ -739,7 +778,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client_unittest.cc b new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_content_browser_client_unittest.cc -@@ -0,0 +1,198 @@ +@@ -0,0 +1,203 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -775,7 +814,6 @@ new file mode 100644 +#include "components/adblock/core/subscription/subscription_service.h" +#include "components/adblock/core/subscription/test/mock_subscription_collection.h" +#include "components/adblock/core/subscription/test/mock_subscription_service.h" -+#include "components/adblock/core/test/mock_adblock_controller.h" +#include "components/keyed_service/core/keyed_service.h" +#include "content/public/browser/content_browser_client.h" +#include "content/public/test/mock_render_process_host.h" @@ -809,7 +847,7 @@ new file mode 100644 + } + + void SetUp() override { -+ RenderViewHostTestHarness::SetUp(); ++ ChromeRenderViewHostTestHarness::SetUp(); + + subscription_service_ = static_cast( + SubscriptionServiceFactory::GetForBrowserContext(profile())); @@ -819,6 +857,12 @@ new file mode 100644 + profile())); + } + ++ void TearDown() override { ++ subscription_service_ = nullptr; ++ resource_classification_runner_ = nullptr; ++ ChromeRenderViewHostTestHarness::TearDown(); ++ } ++ + raw_ptr subscription_service_; + raw_ptr resource_classification_runner_; +}; @@ -997,7 +1041,7 @@ new file mode 100644 + +PrefService* AdblockControllerFactory::GetPrefs( + content::BrowserContext* context) const { -+ return Profile::FromBrowserContext(context)->GetPrefs(); ++ return Profile::FromBrowserContext(context)->GetOriginalProfile()->GetPrefs(); +} + +const std::string& AdblockControllerFactory::GetLocale() const { @@ -1068,7 +1112,7 @@ diff --git a/chrome/browser/adblock/adblock_telemetry_service_factory.cc b/chrom new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_telemetry_service_factory.cc -@@ -0,0 +1,68 @@ +@@ -0,0 +1,63 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -1116,11 +1160,6 @@ new file mode 100644 + +AdblockTelemetryServiceFactory::~AdblockTelemetryServiceFactory() = default; + -+AdblockController* AdblockTelemetryServiceFactory::GetAdblockController( -+ content::BrowserContext* context) const { -+ return AdblockControllerFactory::GetForBrowserContext(context); -+} -+ +SubscriptionService* AdblockTelemetryServiceFactory::GetSubscriptionService( + content::BrowserContext* context) const { + return SubscriptionServiceFactory::GetForBrowserContext(context); @@ -1128,7 +1167,7 @@ new file mode 100644 + +PrefService* AdblockTelemetryServiceFactory::GetPrefs( + content::BrowserContext* context) const { -+ return Profile::FromBrowserContext(context)->GetPrefs(); ++ return Profile::FromBrowserContext(context)->GetOriginalProfile()->GetPrefs(); +} + +content::BrowserContext* AdblockTelemetryServiceFactory::GetBrowserContextToUse( @@ -1141,7 +1180,7 @@ diff --git a/chrome/browser/adblock/adblock_telemetry_service_factory.h b/chrome new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_telemetry_service_factory.h -@@ -0,0 +1,53 @@ +@@ -0,0 +1,51 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -1177,8 +1216,6 @@ new file mode 100644 + + protected: + PrefService* GetPrefs(content::BrowserContext* context) const override; -+ AdblockController* GetAdblockController( -+ content::BrowserContext* context) const override; + SubscriptionService* GetSubscriptionService( + content::BrowserContext* context) const override; + @@ -1195,6 +1232,1578 @@ new file mode 100644 +} // namespace adblock + +#endif // CHROME_BROWSER_ADBLOCK_ADBLOCK_TELEMETRY_SERVICE_FACTORY_H_ +diff --git a/chrome/browser/adblock/android/BUILD.gn b/chrome/browser/adblock/android/BUILD.gn +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/BUILD.gn +@@ -0,0 +1,68 @@ ++# This file is part of eyeo Chromium SDK, ++# Copyright (C) 2006-present eyeo GmbH ++# eyeo Chromium SDK is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License version 3 as ++# published by the Free Software Foundation. ++# eyeo Chromium SDK is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# You should have received a copy of the GNU General Public License ++# along with eyeo Chromium SDK. If not, see . ++ ++ ++import("//build/config/android/rules.gni") ++ ++android_library("adblock_java_tests") { ++ testonly = true ++ ++ sources = [ ++ "javatests/src/org/chromium/chrome/browser/adblock/AdblockControllerTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/FilteringConfigurationTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/ResourceClassificationNotifierTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesCircumventionTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesCspTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuInvTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesExceptionTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesFilterTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesHeaderFilterTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesHelper.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesRewriteTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesSiteKeyTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesSnippetsTest.java", ++ "javatests/src/org/chromium/chrome/browser/adblock/TestPagesWebsocketTest.java", ++ ] ++ ++ ++ deps = [ ++ "//base:base_java", ++ "//base:base_java_test_support", ++ "//chrome/android:chrome_java", ++ "//chrome/browser/flags:java", ++ "//chrome/browser/settings:test_support_java", ++ "//chrome/browser/tab:java", ++ "//chrome/browser/tabmodel:java", ++ "//chrome/test/android:chrome_java_integration_test_support", ++ "//chrome/test/android:chrome_java_test_support_common", ++ "//components/adblock/android:adblock_controller_java", ++ "//components/adblock/android:adblock_java_tests_base", ++ "//components/infobars/android:java", ++ "//components/infobars/core:infobar_enums_java", ++ "//components/messages/android/test:test_support_java", ++ "//content/public/android:content_full_java", ++ "//content/public/android:content_main_dex_java", ++ "//content/public/test/android:content_java_test_support", ++ "//net/android:net_java_test_support", ++ "//third_party/androidx:androidx_fragment_fragment_java", ++ "//third_party/androidx:androidx_test_monitor_java", ++ "//third_party/androidx:androidx_test_runner_java", ++ "//third_party/hamcrest:hamcrest_core_java", ++ "//third_party/hamcrest:hamcrest_library_java", ++ "//third_party/junit:junit", ++ "//ui/android:ui_no_recycler_view_java", ++ "//url:gurl_java", ++ ] ++ ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockControllerTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockControllerTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockControllerTest.java +@@ -0,0 +1,43 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.AdblockControllerTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class AdblockControllerTest extends AdblockControllerTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ ++ @Before ++ public void setUp() { ++ mActivityTestRule.startMainActivityOnBlankPage(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/FilteringConfigurationTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/FilteringConfigurationTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/FilteringConfigurationTest.java +@@ -0,0 +1,418 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import androidx.test.InstrumentationRegistry; ++import androidx.test.filters.LargeTest; ++ ++import org.junit.After; ++import org.junit.Assert; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.Test; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CallbackHelper; ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.base.test.util.Feature; ++import org.chromium.base.test.util.IntegrationTest; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.FilteringConfiguration; ++import org.chromium.components.adblock.TestVerificationUtils; ++import org.chromium.content_public.browser.test.util.TestThreadUtils; ++import org.chromium.content_public.common.ContentSwitches; ++import org.chromium.net.test.EmbeddedTestServer; ++ ++import java.net.URL; ++import java.util.ArrayList; ++import java.util.Arrays; ++import java.util.List; ++import java.util.concurrent.TimeUnit; ++import java.util.concurrent.TimeoutException; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, ++ ContentSwitches.HOST_RESOLVER_RULES + "=MAP * 127.0.0.1"}) ++public class FilteringConfigurationTest { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final CallbackHelper mCallbackHelper = new CallbackHelper(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ public FilteringConfiguration mConfigurationA; ++ public FilteringConfiguration mConfigurationB; ++ private EmbeddedTestServer mTestServer; ++ private String mTestUrl; ++ ++ private static class TestConfigurationChangeObserver ++ implements FilteringConfiguration.ConfigurationChangeObserver { ++ public volatile boolean mOnEnabledStateChangedCalled; ++ public volatile boolean mOnFilterListsChanged; ++ public volatile boolean mOnAllowedDomainsChanged; ++ public volatile boolean mOnCustomFiltersChanged; ++ ++ public TestConfigurationChangeObserver() { ++ mOnEnabledStateChangedCalled = false; ++ mOnFilterListsChanged = false; ++ mOnAllowedDomainsChanged = false; ++ mOnCustomFiltersChanged = false; ++ } ++ ++ @Override ++ public void onEnabledStateChanged() { ++ mOnEnabledStateChangedCalled = true; ++ } ++ @Override ++ public void onFilterListsChanged() { ++ mOnFilterListsChanged = true; ++ } ++ ++ @Override ++ public void onAllowedDomainsChanged() { ++ mOnAllowedDomainsChanged = true; ++ } ++ ++ @Override ++ public void onCustomFiltersChanged() { ++ mOnCustomFiltersChanged = true; ++ } ++ } ++ ++ public void loadTestUrl() throws InterruptedException { ++ mActivityTestRule.loadUrl(mTestUrl, 5); ++ } ++ ++ @Before ++ public void setUp() throws TimeoutException { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfigurationA = FilteringConfiguration.createConfiguration("a"); ++ mConfigurationB = FilteringConfiguration.createConfiguration("b"); ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ mHelper.setActivityTestRule(mActivityTestRule); ++ mActivityTestRule.startMainActivityOnBlankPage(); ++ mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); ++ mTestUrl = mTestServer.getURLWithHostName( ++ "test.org", "/chrome/test/data/adblock/innermost_frame.html"); ++ } ++ ++ @After ++ public void tearDown() { ++ mTestServer.stopAndDestroyServer(); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void addingAllowedDomains() throws Exception { ++ final List allowedDomainsA = new ArrayList<>(); ++ final List allowedDomainsB = new ArrayList<>(); ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfigurationA.addAllowedDomain("foobar.com"); ++ mConfigurationA.addAllowedDomain("domain.com/path/to/page.html"); ++ mConfigurationA.addAllowedDomain("domain.com/duplicate.html"); ++ allowedDomainsA.addAll(mConfigurationA.getAllowedDomains()); ++ ++ mConfigurationB.addAllowedDomain("https://scheme.com/path.html"); ++ mConfigurationB.addAllowedDomain("https://second.com"); ++ mConfigurationB.removeAllowedDomain("https://second.com"); ++ mConfigurationB.addAllowedDomain("gibberish"); ++ allowedDomainsB.addAll(mConfigurationB.getAllowedDomains()); ++ ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ // We expect to see a sorted collection of domains (not URLs) without duplicates. ++ ArrayList expectedAllowedDomainsA = new ArrayList(); ++ expectedAllowedDomainsA.add("domain.com"); ++ expectedAllowedDomainsA.add("foobar.com"); ++ Assert.assertEquals(expectedAllowedDomainsA, allowedDomainsA); ++ ++ // We expect not to see second.com because it was removed after being added. ++ ArrayList expectedAllowedDomainsB = new ArrayList(); ++ expectedAllowedDomainsB.add("scheme.com"); ++ expectedAllowedDomainsB.add("www.gibberish.com"); ++ Assert.assertEquals(expectedAllowedDomainsB, allowedDomainsB); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void addingCustomFilters() throws Exception { ++ final List customFiltersA = new ArrayList<>(); ++ final List customFiltersB = new ArrayList<>(); ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfigurationA.addCustomFilter("foobar.com"); ++ mConfigurationA.addCustomFilter("foobar.com"); ++ mConfigurationA.addCustomFilter("abc"); ++ customFiltersA.addAll(mConfigurationA.getCustomFilters()); ++ ++ mConfigurationB.addCustomFilter("https://scheme.com/path.html"); ++ mConfigurationB.addCustomFilter("https://second.com"); ++ mConfigurationB.removeCustomFilter("https://second.com"); ++ customFiltersB.addAll(mConfigurationB.getCustomFilters()); ++ ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ // We expect to see a collection of custom filters without duplicates. ++ // The order represents order of addition. ++ ArrayList expectedCustomFiltersA = new ArrayList(); ++ expectedCustomFiltersA.add("foobar.com"); ++ expectedCustomFiltersA.add("abc"); ++ Assert.assertEquals(expectedCustomFiltersA, customFiltersA); ++ ++ // We expect not to see https://second.com because it was removed after being added. ++ ArrayList expectedCustomFiltersB = new ArrayList(); ++ expectedCustomFiltersB.add("https://scheme.com/path.html"); ++ Assert.assertEquals(expectedCustomFiltersB, customFiltersB); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void addingFilterLists() throws Exception { ++ final URL filterList1 = new URL("http://filters.com/list1.txt"); ++ final URL filterList2 = new URL("http://filters.com/list2.txt"); ++ final List filterListsA = new ArrayList(); ++ final List filterListsB = new ArrayList(); ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfigurationA.addFilterList(filterList1); ++ mConfigurationA.addFilterList(filterList2); ++ mConfigurationA.addFilterList(filterList1); ++ filterListsA.addAll(mConfigurationA.getFilterLists()); ++ ++ mConfigurationB.addFilterList(filterList1); ++ mConfigurationB.addFilterList(filterList2); ++ mConfigurationB.removeFilterList(filterList1); ++ filterListsB.addAll(mConfigurationB.getFilterLists()); ++ ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ ArrayList expectedFilterListsA = new ArrayList(); ++ expectedFilterListsA.add(filterList1); ++ expectedFilterListsA.add(filterList2); ++ Assert.assertEquals(expectedFilterListsA, filterListsA); ++ ++ ArrayList expectedFilterListsB = new ArrayList(); ++ expectedFilterListsB.add(filterList2); ++ Assert.assertEquals(expectedFilterListsB, filterListsB); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void aliasedConfigurations() throws Exception { ++ final URL filterList1 = new URL("http://filters.com/list1.txt"); ++ final URL filterList2 = new URL("http://filters.com/list2.txt"); ++ final List filterListsA = new ArrayList(); ++ final List filterListsB = new ArrayList(); ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ // Create a new FilteringConfiguration with a name of one that ++ // already exist. ++ FilteringConfiguration aliasedConfiguration = ++ FilteringConfiguration.createConfiguration("a"); ++ ++ // We add filter lists only to the original configuration instance. ++ mConfigurationA.addFilterList(filterList1); ++ mConfigurationA.addFilterList(filterList2); ++ ++ // We check what filter lists are present in the original and in the aliased instance. ++ filterListsA.addAll(mConfigurationA.getFilterLists()); ++ filterListsB.addAll(aliasedConfiguration.getFilterLists()); ++ ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ ArrayList expectedFilterLists = new ArrayList(); ++ expectedFilterLists.add(filterList1); ++ expectedFilterLists.add(filterList2); ++ Assert.assertEquals(expectedFilterLists, filterListsA); ++ Assert.assertEquals(expectedFilterLists, filterListsB); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void configurationChangeObserverNotified() throws Exception { ++ final URL filterList1 = new URL("http://filters.com/list1.txt"); ++ final TestConfigurationChangeObserver observer = new TestConfigurationChangeObserver(); ++ Assert.assertFalse(observer.mOnEnabledStateChangedCalled); ++ Assert.assertFalse(observer.mOnAllowedDomainsChanged); ++ Assert.assertFalse(observer.mOnCustomFiltersChanged); ++ Assert.assertFalse(observer.mOnFilterListsChanged); ++ ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ // We'll create an aliased instance which will receive notifications triggered by ++ // changes made to the original instance. ++ FilteringConfiguration aliasedConfiguration = ++ FilteringConfiguration.createConfiguration("a"); ++ aliasedConfiguration.addObserver(observer); ++ ++ mConfigurationA.addFilterList(filterList1); ++ mConfigurationA.addAllowedDomain("test.com"); ++ mConfigurationA.addCustomFilter("test.com"); ++ mConfigurationA.setEnabled(false); ++ ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ Assert.assertTrue(observer.mOnEnabledStateChangedCalled); ++ Assert.assertTrue(observer.mOnAllowedDomainsChanged); ++ Assert.assertTrue(observer.mOnCustomFiltersChanged); ++ Assert.assertTrue(observer.mOnFilterListsChanged); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void resourceBlockedByFilter() throws Exception { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfigurationA.addCustomFilter("resource.png"); ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ loadTestUrl(); ++ TestVerificationUtils.expectResourceBlocked(mHelper, "subresource"); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void resourceAllowedByFilter() throws Exception { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfigurationA.addCustomFilter("resource.png"); ++ // Allowing filter for the mocked test.org domain that mTestServer hosts. ++ mConfigurationA.addCustomFilter("@@test.org$document"); ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ loadTestUrl(); ++ TestVerificationUtils.expectResourceShown(mHelper, "subresource"); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void resourceAllowedByAllowedDomain() throws Exception { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfigurationA.addCustomFilter("resource.png"); ++ mConfigurationA.addAllowedDomain("test.org"); ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ loadTestUrl(); ++ TestVerificationUtils.expectResourceShown(mHelper, "subresource"); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void resourceBlockedBySecondConfiguration() throws Exception { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ // ConfigurationA allows the resource. ++ // Allowing rules take precedence within a FilteringConfiguration. ++ mConfigurationA.addCustomFilter("resource.png"); ++ mConfigurationA.addAllowedDomain("test.org"); ++ // But ConfigurationB blocks the resource. ++ // Blocking takes precedence across FilteringConfigurations. ++ mConfigurationB.addCustomFilter("resource.png"); ++ mCallbackHelper.notifyCalled(); ++ }); ++ mCallbackHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ loadTestUrl(); ++ TestVerificationUtils.expectResourceBlocked(mHelper, "subresource"); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void noBlockingWithoutFilters() throws Exception { ++ loadTestUrl(); ++ TestVerificationUtils.expectResourceShown(mHelper, "subresource"); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void createAndRemoveConfiguration() throws Exception { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ // Check initial state. ++ FilteringConfiguration.removeConfiguration("adblock"); ++ ArrayList expectedConfigurations = ++ new ArrayList(); ++ expectedConfigurations.add(mConfigurationA); ++ expectedConfigurations.add(mConfigurationB); ++ Assert.assertEquals(expectedConfigurations, FilteringConfiguration.getConfigurations()); ++ // Add new configuration (twice) and check. ++ FilteringConfiguration configurationC = FilteringConfiguration.createConfiguration("c"); ++ FilteringConfiguration configurationC2 = ++ FilteringConfiguration.createConfiguration("c"); ++ // Confirm this is the same reference. ++ Assert.assertEquals(configurationC, configurationC2); ++ expectedConfigurations.add(configurationC); ++ Assert.assertEquals(expectedConfigurations, FilteringConfiguration.getConfigurations()); ++ // Remove configuration "c" twice (2nd attempt has no effect) and check. ++ FilteringConfiguration.removeConfiguration("c"); ++ FilteringConfiguration.removeConfiguration("c"); ++ expectedConfigurations.remove(configurationC); ++ Assert.assertEquals(expectedConfigurations, FilteringConfiguration.getConfigurations()); ++ }); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void cannotUseRemovedConfiguration() throws Exception { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ FilteringConfiguration configurationC = FilteringConfiguration.createConfiguration("c"); ++ configurationC.setEnabled(false); ++ Assert.assertFalse(configurationC.isEnabled()); ++ FilteringConfiguration.removeConfiguration("c"); ++ try { ++ configurationC.setEnabled(true); ++ Assert.fail(); ++ } catch (final IllegalStateException e) { ++ // Expected ++ } ++ // Recreate. ++ configurationC = FilteringConfiguration.createConfiguration("c"); ++ Assert.assertTrue(configurationC.isEnabled()); ++ configurationC.setEnabled(false); ++ Assert.assertFalse(configurationC.isEnabled()); ++ }); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/ResourceClassificationNotifierTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/ResourceClassificationNotifierTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/ResourceClassificationNotifierTest.java +@@ -0,0 +1,135 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import androidx.test.InstrumentationRegistry; ++import androidx.test.filters.LargeTest; ++ ++import org.junit.After; ++import org.junit.Assert; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.Test; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CallbackHelper; ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.base.test.util.Feature; ++import org.chromium.base.test.util.IntegrationTest; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.FilteringConfiguration; ++import org.chromium.components.adblock.ResourceClassificationNotifier; ++import org.chromium.components.adblock.TestAdBlockedObserver; ++import org.chromium.content_public.browser.test.util.TestThreadUtils; ++import org.chromium.content_public.common.ContentSwitches; ++import org.chromium.net.test.EmbeddedTestServer; ++ ++import java.util.concurrent.TimeUnit; ++import java.util.concurrent.TimeoutException; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, ++ ContentSwitches.HOST_RESOLVER_RULES + "=MAP * 127.0.0.1"}) ++public class ResourceClassificationNotifierTest { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final CallbackHelper mHelper = new CallbackHelper(); ++ public FilteringConfiguration mConfiguration; ++ public TestAdBlockedObserver mAdBlockedObserver = new TestAdBlockedObserver(); ++ ++ private EmbeddedTestServer mTestServer; ++ private String mTestUrl; ++ ++ public void loadTestUrl() { ++ mActivityTestRule.loadUrl(mTestUrl, 5); ++ } ++ ++ @Before ++ public void setUp() throws TimeoutException { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfiguration = FilteringConfiguration.createConfiguration("a"); ++ ResourceClassificationNotifier.getInstance().addOnAdBlockedObserver(mAdBlockedObserver); ++ mHelper.notifyCalled(); ++ }); ++ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ mActivityTestRule.startMainActivityOnBlankPage(); ++ mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); ++ mTestUrl = mTestServer.getURLWithHostName( ++ "test.org", "/chrome/test/data/adblock/innermost_frame.html"); ++ } ++ ++ @After ++ public void tearDown() { ++ mTestServer.stopAndDestroyServer(); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void noNotificationWithoutBlocking() throws Exception { ++ loadTestUrl(); ++ ++ Assert.assertTrue(mAdBlockedObserver.blockedInfos.isEmpty()); ++ Assert.assertTrue(mAdBlockedObserver.allowedInfos.isEmpty()); ++ Assert.assertTrue(mAdBlockedObserver.allowedPageInfos.isEmpty()); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void resourceBlockedByFilter() throws Exception { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfiguration.addCustomFilter("resource.png"); ++ mHelper.notifyCalled(); ++ }); ++ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ loadTestUrl(); ++ // Observer was notified about the blocking ++ Assert.assertTrue(mAdBlockedObserver.isBlocked("resource.png")); ++ Assert.assertTrue(mAdBlockedObserver.allowedInfos.isEmpty()); ++ Assert.assertTrue(mAdBlockedObserver.allowedPageInfos.isEmpty()); ++ } ++ ++ @Test ++ @IntegrationTest ++ @LargeTest ++ @Feature({"adblock"}) ++ public void pageAllowed() throws Exception { ++ TestThreadUtils.runOnUiThreadBlocking(() -> { ++ mConfiguration.addCustomFilter("resource.png"); ++ mConfiguration.addAllowedDomain("test.org"); ++ mHelper.notifyCalled(); ++ }); ++ mHelper.waitForCallback(0, 1, 10, TimeUnit.SECONDS); ++ loadTestUrl(); ++ // Observer was notified about the allowed resource ++ Assert.assertTrue(mAdBlockedObserver.blockedInfos.isEmpty()); ++ Assert.assertTrue(mAdBlockedObserver.isAllowed("resource.png")); ++ ++ // TODO(mpawlowski): The observer could also be notified about the entire domain being ++ // allowed: Assert.assertTrue(mAdBlockedObserver.isPageAllowed("test.org")); However this is ++ // currently broken with multiple FilteringConfigurations (DPD-1729). ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesCircumventionTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesCircumventionTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesCircumventionTest.java +@@ -0,0 +1,51 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesCircumventionTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesCircumventionTest extends TestPagesCircumventionTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesCspTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesCspTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesCspTest.java +@@ -0,0 +1,51 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesCspTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesCspTest extends TestPagesCspTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuInvTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuInvTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuInvTest.java +@@ -0,0 +1,48 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesElemhideEmuInvTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesElemhideEmuInvTest extends TestPagesElemhideEmuInvTestBase { ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideEmuTest.java +@@ -0,0 +1,48 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesElemhideEmuTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesElemhideEmuTest extends TestPagesElemhideEmuTestBase { ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesElemhideTest.java +@@ -0,0 +1,48 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesElemhideTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesElemhideTest extends TestPagesElemhideTestBase { ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesExceptionTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesExceptionTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesExceptionTest.java +@@ -0,0 +1,100 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import androidx.test.filters.LargeTest; ++ ++import org.junit.After; ++import org.junit.Assert; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.Test; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.task.PostTask; ++import org.chromium.base.task.TaskTraits; ++import org.chromium.base.test.util.CallbackHelper; ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.base.test.util.Feature; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesExceptionTestBase; ++import org.chromium.content_public.browser.test.util.JavaScriptUtils; ++import org.chromium.content_public.common.ContentSwitches; ++ ++import java.util.concurrent.TimeUnit; ++import java.util.concurrent.TimeoutException; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesExceptionTest extends TestPagesExceptionTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ @CommandLineFlags.Add(ContentSwitches.DISABLE_POPUP_BLOCKING) ++ public void testVerifyPopupException() throws Exception { ++ final String POPUP_TESTACE_URL = ++ TestPagesHelper.EXCEPTION_TESTPAGES_TESTCASES_ROOT + "popup"; ++ mHelper.loadUrl(POPUP_TESTACE_URL); ++ Assert.assertEquals(1, mHelper.getTabCount()); ++ final CallbackHelper tabsLoadedWaiter = mHelper.getTabsOpenedAndLoadedWaiter(); ++ PostTask.postTask(TaskTraits.BEST_EFFORT_MAY_BLOCK, () -> { ++ try { ++ String numElements = JavaScriptUtils.executeJavaScriptAndWaitForResult( ++ mHelper.getWebContents(), ++ "var elements = document.getElementsByClassName(\"testcase-trigger\");" ++ + "for (let i = 0; i < elements.length; ++i) {" ++ + " elements[i].click();" ++ + "}" ++ + "elements.length;"); ++ Assert.assertEquals("3", numElements); ++ } catch (TimeoutException e) { ++ Assert.assertEquals("Popups were triggered", "Popups were NOT triggered"); ++ } ++ }); ++ // Wait for three tab loaded events ++ tabsLoadedWaiter.waitForCallback(0, 3, TestPagesHelper.TEST_TIMEOUT_SEC, TimeUnit.SECONDS); ++ Assert.assertEquals(4, mHelper.getTabCount()); ++ Assert.assertEquals(3, mHelper.numAllowedPopups()); ++ Assert.assertTrue(mHelper.isPopupAllowed( ++ TestPagesHelper.TESTPAGES_RESOURCES_ROOT + "popup_exception/link.html")); ++ Assert.assertTrue(mHelper.isPopupAllowed( ++ TestPagesHelper.TESTPAGES_RESOURCES_ROOT + "popup_exception/script-window.html")); ++ Assert.assertTrue(mHelper.isPopupAllowed( ++ TestPagesHelper.TESTPAGES_RESOURCES_ROOT + "popup_exception/script-tab.html")); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesFilterTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesFilterTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesFilterTest.java +@@ -0,0 +1,101 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import androidx.test.filters.LargeTest; ++ ++import org.junit.After; ++import org.junit.Assert; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.Test; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.task.PostTask; ++import org.chromium.base.task.TaskTraits; ++import org.chromium.base.test.util.CallbackHelper; ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.base.test.util.Feature; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesFilterTestBase; ++import org.chromium.content_public.browser.test.util.JavaScriptUtils; ++import org.chromium.content_public.common.ContentSwitches; ++ ++import java.util.concurrent.TimeUnit; ++import java.util.concurrent.TimeoutException; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesFilterTest extends TestPagesFilterTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @Test ++ @LargeTest ++ @Feature({"adblock"}) ++ @CommandLineFlags.Add(ContentSwitches.DISABLE_POPUP_BLOCKING) ++ public void testVerifyPopupFilters() throws Exception { ++ final String POPUP_TESTACE_URL = TestPagesHelper.FILTER_TESTPAGES_TESTCASES_ROOT + "popup"; ++ mHelper.loadUrl(POPUP_TESTACE_URL); ++ Assert.assertEquals(1, mHelper.getTabCount()); ++ final CallbackHelper tabsOpenedAndClosedWaiter = mHelper.getTabsOpenedAndClosedWaiter(); ++ // Trigger popups which open and close when blocked ++ PostTask.postTask(TaskTraits.BEST_EFFORT_MAY_BLOCK, () -> { ++ try { ++ String numElements = JavaScriptUtils.executeJavaScriptAndWaitForResult( ++ mHelper.getWebContents(), ++ "var elements = document.getElementsByClassName(\"testcase-trigger\");" ++ + "for (let i = 0; i < elements.length; ++i) {" ++ + " elements[i].click();" ++ + "}" ++ + "elements.length;"); ++ Assert.assertEquals("3", numElements); ++ } catch (TimeoutException e) { ++ Assert.assertEquals("Popups were triggered", "Popups were NOT triggered"); ++ } ++ }); ++ // Wait for three tab open events and three close tabs events ++ tabsOpenedAndClosedWaiter.waitForCallback( ++ 0, 6, TestPagesHelper.TEST_TIMEOUT_SEC, TimeUnit.SECONDS); ++ Assert.assertEquals(3, mHelper.numBlockedPopups()); ++ Assert.assertTrue(mHelper.isPopupBlocked( ++ TestPagesHelper.TESTPAGES_RESOURCES_ROOT + "popup/link.html")); ++ Assert.assertTrue(mHelper.isPopupBlocked( ++ TestPagesHelper.TESTPAGES_RESOURCES_ROOT + "popup/script-window.html")); ++ Assert.assertTrue(mHelper.isPopupBlocked( ++ TestPagesHelper.TESTPAGES_RESOURCES_ROOT + "popup/script-tab.html")); ++ Assert.assertEquals(1, mHelper.getTabCount()); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesHeaderFilterTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesHeaderFilterTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesHeaderFilterTest.java +@@ -0,0 +1,51 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesHeaderFilterTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesHeaderFilterTest extends TestPagesHeaderFilterTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesHelper.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesHelper.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesHelper.java +@@ -0,0 +1,121 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.Assert; ++ ++import org.chromium.base.test.util.CallbackHelper; ++import org.chromium.chrome.browser.tab.EmptyTabObserver; ++import org.chromium.chrome.browser.tab.Tab; ++import org.chromium.chrome.browser.tabmodel.TabModelObserver; ++import org.chromium.chrome.browser.tabmodel.TabModelSelector; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesHelperBase; ++import org.chromium.components.adblock.TestVerificationUtils; ++import org.chromium.content_public.browser.WebContents; ++import org.chromium.content_public.browser.test.util.TestThreadUtils; ++import org.chromium.url.GURL; ++ ++import java.util.concurrent.TimeoutException; ++ ++public class TestPagesHelper extends TestPagesHelperBase { ++ private ChromeTabbedActivityTestRule mActivityTestRule; ++ ++ public void setActivityTestRule(ChromeTabbedActivityTestRule activityTestRule) { ++ mActivityTestRule = activityTestRule; ++ } ++ ++ public void setUp(final ChromeTabbedActivityTestRule activityRule) { ++ mActivityTestRule = activityRule; ++ mActivityTestRule.startMainActivityOnBlankPage(); ++ super.setUp(); ++ } ++ ++ public CallbackHelper getTabsOpenedAndClosedWaiter() { ++ final CallbackHelper callbackHelper = new CallbackHelper(); ++ final TabModelSelector tabModelSelector = ++ mActivityTestRule.getActivity().getTabModelSelectorSupplier().get(); ++ Assert.assertNotNull(tabModelSelector); ++ TestThreadUtils.runOnUiThreadBlocking( ++ () -> tabModelSelector.getCurrentModel().addObserver(new TabModelObserver() { ++ @Override ++ public void onFinishingTabClosure(Tab tab) { ++ // For some reason TabModelObserver#tabRemoved() is not called. ++ // Let's wait a bit to make sure tab is indeed closed. ++ try { ++ Thread.sleep(100); ++ } catch (InterruptedException ignored) { ++ } ++ callbackHelper.notifyCalled(); ++ } ++ ++ @Override ++ public void didAddTab( ++ Tab tab, int type, int creationState, boolean markedForSelection) { ++ callbackHelper.notifyCalled(); ++ } ++ })); ++ return callbackHelper; ++ } ++ ++ public CallbackHelper getTabsOpenedAndLoadedWaiter() { ++ final CallbackHelper callbackHelper = new CallbackHelper(); ++ final TabModelSelector tabModelSelector = ++ mActivityTestRule.getActivity().getTabModelSelectorSupplier().get(); ++ Assert.assertNotNull(tabModelSelector); ++ TestThreadUtils.runOnUiThreadBlocking( ++ () -> tabModelSelector.getCurrentModel().addObserver(new TabModelObserver() { ++ @Override ++ public void didAddTab( ++ Tab tab, int type, int creationState, boolean markedForSelection) { ++ tab.addObserver(new EmptyTabObserver() { ++ @Override ++ public void onPageLoadFinished(Tab tab, GURL url) { ++ callbackHelper.notifyCalled(); ++ } ++ }); ++ } ++ })); ++ return callbackHelper; ++ } ++ ++ public int getTabCount() { ++ final TabModelSelector tabModelSelector = ++ mActivityTestRule.getActivity().getTabModelSelectorSupplier().get(); ++ Assert.assertNotNull(tabModelSelector); ++ return tabModelSelector.getTotalTabCount(); ++ } ++ ++ @Override ++ public WebContents getWebContents() { ++ return mActivityTestRule.getActivity().getCurrentWebContents(); ++ } ++ ++ @Override ++ public void loadUrl(final String url) throws InterruptedException, TimeoutException { ++ mActivityTestRule.loadUrl(url, TEST_TIMEOUT_SEC); ++ } ++ ++ @Override ++ public void loadUrlWaitForContent(final String url) ++ throws InterruptedException, TimeoutException { ++ loadUrl(url); ++ TestVerificationUtils.verifyCondition( ++ this, "document.getElementsByClassName('testcase-waiting-content').length == 0"); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesRewriteTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesRewriteTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesRewriteTest.java +@@ -0,0 +1,51 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesRewriteTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesRewriteTest extends TestPagesRewriteTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesSiteKeyTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesSiteKeyTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesSiteKeyTest.java +@@ -0,0 +1,51 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesSiteKeyTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesSiteKeyTest extends TestPagesSiteKeyTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesSnippetsTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesSnippetsTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesSnippetsTest.java +@@ -0,0 +1,51 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesSnippetsTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesSnippetsTest extends TestPagesSnippetsTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} +diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesWebsocketTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesWebsocketTest.java +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/TestPagesWebsocketTest.java +@@ -0,0 +1,51 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++package org.chromium.chrome.browser.adblock; ++ ++import org.junit.After; ++import org.junit.Before; ++import org.junit.Rule; ++import org.junit.runner.RunWith; ++ ++import org.chromium.base.test.util.CommandLineFlags; ++import org.chromium.chrome.browser.flags.ChromeSwitches; ++import org.chromium.chrome.test.ChromeBrowserTestRule; ++import org.chromium.chrome.test.ChromeJUnit4ClassRunner; ++import org.chromium.chrome.test.ChromeTabbedActivityTestRule; ++import org.chromium.components.adblock.TestPagesWebsocketTestBase; ++ ++@RunWith(ChromeJUnit4ClassRunner.class) ++@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) ++public class TestPagesWebsocketTest extends TestPagesWebsocketTestBase { ++ @Rule ++ public final ChromeBrowserTestRule mBrowserTestRule = new ChromeBrowserTestRule(); ++ @Rule ++ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); ++ private final TestPagesHelper mHelper = new TestPagesHelper(); ++ ++ @Before ++ public void setUp() { ++ mHelper.setUp(mActivityTestRule); ++ super.setUp(mHelper); ++ } ++ ++ @After ++ public void tearDown() { ++ mHelper.tearDown(); ++ } ++} diff --git a/chrome/browser/adblock/content_security_policy_injector_factory.cc b/chrome/browser/adblock/content_security_policy_injector_factory.cc new file mode 100644 --- /dev/null @@ -1868,7 +3477,7 @@ new file mode 100644 +KeyedService* SubscriptionPersistentMetadataFactory::BuildServiceInstanceFor( + content::BrowserContext* context) const { + return new SubscriptionPersistentMetadataImpl( -+ Profile::FromBrowserContext(context)->GetPrefs()); ++ Profile::FromBrowserContext(context)->GetOriginalProfile()->GetPrefs()); +} + +content::BrowserContext* @@ -1994,7 +3603,7 @@ new file mode 100644 + +PrefService* SubscriptionServiceFactory::GetPrefs( + content::BrowserContext* context) const { -+ return Profile::FromBrowserContext(context)->GetPrefs(); ++ return Profile::FromBrowserContext(context)->GetOriginalProfile()->GetPrefs(); +} + +content::BrowserContext* SubscriptionServiceFactory::GetBrowserContextToUse( @@ -2062,7 +3671,7 @@ diff --git a/chrome/browser/adblock/test/adblock_content_browser_client_browsert new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_content_browser_client_browsertest.cc -@@ -0,0 +1,122 @@ +@@ -0,0 +1,125 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2082,14 +3691,12 @@ new file mode 100644 + +#include "chrome/browser/adblock/adblock_content_browser_client.h" + -+#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_commands.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/common/adblock_prefs.h" +#include "components/adblock/core/subscription/subscription_service.h" @@ -2142,8 +3749,10 @@ new file mode 100644 + ASSERT_TRUE(ws_server_.Start()); + + // Disable ad-filtering. -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()) -+ ->SetAdblockEnabled(false); ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->SetEnabled(false); + + NavigateToHTTP("split_packet_check.html"); + @@ -2157,8 +3766,10 @@ new file mode 100644 + ASSERT_TRUE(ws_server_.Start()); + + // Enable ad-filtering. -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()) -+ ->SetAdblockEnabled(true); ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->SetEnabled(true); + + NavigateToHTTP("split_packet_check.html"); + @@ -2172,11 +3783,12 @@ new file mode 100644 + ASSERT_TRUE(ws_server_.Start()); + + // Intercept WebSocket and block connection via a filter. -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->SetAdblockEnabled(true); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); -+ controller->AddCustomFilter({"*$websocket"}); ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->SetEnabled(true); ++ adblock_configuration->RemoveCustomFilter(kAllowlistEverythingFilter); ++ adblock_configuration->AddCustomFilter({"*$websocket"}); + + NavigateToHTTP("split_packet_check.html"); + @@ -2189,7 +3801,7 @@ diff --git a/chrome/browser/adblock/test/adblock_debug_url_browsertest.cc b/chro new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_debug_url_browsertest.cc -@@ -0,0 +1,301 @@ +@@ -0,0 +1,314 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2209,12 +3821,13 @@ new file mode 100644 + +#include + -+#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "components/adblock/content/browser/adblock_url_loader_factory_for_test.h" ++#include "components/adblock/core/subscription/subscription_config.h" +#include "content/public/test/browser_test.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" @@ -2242,6 +3855,24 @@ new file mode 100644 + .ExtractString(); + } + ++ bool IsAdblockEnabled() { ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) << "Test expects \"adblock\" configuration"; ++ return adblock_configuration->IsEnabled(); ++ } ++ ++ bool IsAAEnabled() { ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) << "Test expects \"adblock\" configuration"; ++ return base::ranges::any_of( ++ adblock_configuration->GetFilterLists(), ++ [&](const auto& url) { return url == AcceptableAdsUrl(); }); ++ } ++ + const std::string kReadPageBodyScript = + "document.getElementsByTagName('body')[0].firstChild.innerHTML"; + @@ -2400,52 +4031,46 @@ new file mode 100644 +} + +IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestEnableAdblockCommands) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ + GURL enable_adblock__url(kAdblockDebugUrl + "/adblock/enable"); + GURL disable_adblock_url(kAdblockDebugUrl + "/adblock/disable"); + GURL adblock_state_url(kAdblockDebugUrl + "/adblock/state"); + -+ ASSERT_TRUE(controller->IsAdblockEnabled()); ++ ASSERT_TRUE(IsAdblockEnabled()); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), adblock_state_url)); + ASSERT_EQ("OK\n\nenabled", + ExecuteScriptAndExtractString(kReadPageBodyScript)); + + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), disable_adblock_url)); -+ ASSERT_FALSE(controller->IsAdblockEnabled()); ++ ASSERT_FALSE(IsAdblockEnabled()); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), adblock_state_url)); + ASSERT_EQ("OK\n\ndisabled", + ExecuteScriptAndExtractString(kReadPageBodyScript)); + + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), enable_adblock__url)); -+ ASSERT_TRUE(controller->IsAdblockEnabled()); ++ ASSERT_TRUE(IsAdblockEnabled()); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), adblock_state_url)); + ASSERT_EQ("OK\n\nenabled", + ExecuteScriptAndExtractString(kReadPageBodyScript)); +} + +IN_PROC_BROWSER_TEST_F(AdblockDebugUrlTest, TestEnableAACommands) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ + GURL enable_aa_url(kAdblockDebugUrl + "/aa/enable"); + GURL disable_aa_url(kAdblockDebugUrl + "/aa/disable"); + GURL aa_state_url(kAdblockDebugUrl + "/aa/state"); + -+ ASSERT_TRUE(controller->IsAcceptableAdsEnabled()); ++ ASSERT_TRUE(IsAAEnabled()); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), aa_state_url)); + ASSERT_EQ("OK\n\nenabled", + ExecuteScriptAndExtractString(kReadPageBodyScript)); + + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), disable_aa_url)); -+ ASSERT_FALSE(controller->IsAcceptableAdsEnabled()); ++ ASSERT_FALSE(IsAAEnabled()); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), aa_state_url)); + ASSERT_EQ("OK\n\ndisabled", + ExecuteScriptAndExtractString(kReadPageBodyScript)); + + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), enable_aa_url)); -+ ASSERT_TRUE(controller->IsAcceptableAdsEnabled()); ++ ASSERT_TRUE(IsAAEnabled()); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), aa_state_url)); + ASSERT_EQ("OK\n\nenabled", + ExecuteScriptAndExtractString(kReadPageBodyScript)); @@ -2495,7 +4120,7 @@ diff --git a/chrome/browser/adblock/test/adblock_filter_list_browsertest.cc b/ch new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_filter_list_browsertest.cc -@@ -0,0 +1,246 @@ +@@ -0,0 +1,260 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2513,14 +4138,16 @@ new file mode 100644 + * along with eyeo Chromium SDK. If not, see . + */ + ++#include "base/check.h" +#include "base/environment.h" ++#include "base/functional/callback_forward.h" ++#include "base/run_loop.h" +#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "components/adblock/core/adblock_switches.h" +#include "components/adblock/core/subscription/subscription_config.h" +#include "components/version_info/version_info.h" -+#include "content/public/browser/browser_task_traits.h" +#include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" +#include "net/dns/mock_host_resolver.h" @@ -2587,17 +4214,30 @@ new file mode 100644 + 1, request.relative_url.find_first_of("?") - 1)); + } + -+ // Unhandled requests result in the Embedded test server sending a 404. ++ // Unhandled requests result in the Embedded test server sending a 404. This ++ // is fine for the purpose of this test. + return nullptr; + } + -+ void CloseBrowserFromAnyThread() { -+ content::GetUIThreadTaskRunner({base::TaskPriority::USER_BLOCKING}) -+ ->PostTask( -+ FROM_HERE, -+ base::BindOnce( -+ &AdblockFilterListDownloadTestBase::CloseBrowserAsynchronously, -+ base::Unretained(this), browser())); ++ void NotifyTestFinished() { ++ finish_condition_met_ = true; ++ // If the test is currently waiting for the finish condition to be met, we ++ // need to quit the run loop. ++ if (quit_closure_) { ++ quit_closure_.Run(); ++ } ++ } ++ ++ void RunUntilTestFinished() { ++ // If the finish condition is already met, we don't need to run the run ++ // loop. ++ if (finish_condition_met_) { ++ return; ++ } ++ // Wait until NotifyTestFinished() gets called. ++ base::RunLoop run_loop; ++ quit_closure_ = run_loop.QuitClosure(); ++ std::move(run_loop).Run(); + } + + bool RunsOnEyeoCI() { @@ -2610,6 +4250,8 @@ new file mode 100644 + protected: + net::EmbeddedTestServer https_server_; + std::set default_lists_; ++ bool finish_condition_met_ = false; ++ base::RepeatingClosure quit_closure_; +}; + +class AdblockEnabledFilterListDownloadTest @@ -2617,21 +4259,21 @@ new file mode 100644 + public: + std::unique_ptr RequestHandler( + const net::test_server::HttpRequest& request) override { -+ auto return_value = -+ AdblockFilterListDownloadTestBase::RequestHandler(request); ++ auto result = AdblockFilterListDownloadTestBase::RequestHandler(request); + // If we get all expected requests we simply finish the test by closing + // the browser, otherwise test will fail with a timeout. + if (default_lists_.size() == 3) { -+ CloseBrowserFromAnyThread(); ++ NotifyTestFinished(); + } + -+ return return_value; ++ // Unhandled requests result in the Embedded test server sending a 404. ++ return result; + } +}; + +IN_PROC_BROWSER_TEST_F(AdblockEnabledFilterListDownloadTest, + TestInitialDownloads) { -+ RunUntilBrowserProcessQuits(); ++ RunUntilTestFinished(); +} + +class AdblockEnabledAcceptableAdsDisabledFilterListDownloadTest @@ -2650,7 +4292,7 @@ new file mode 100644 + if (request.method == net::test_server::HttpMethod::METHOD_HEAD && + base::StartsWith(request.relative_url, "/exceptionrules.txt")) { + CheckRequestParams(request, "true"); -+ CloseBrowserFromAnyThread(); ++ NotifyTestFinished(); + } + + return nullptr; @@ -2664,7 +4306,7 @@ new file mode 100644 +IN_PROC_BROWSER_TEST_F( + AdblockEnabledAcceptableAdsDisabledFilterListDownloadTest, + TestInitialDownloads) { -+ RunUntilBrowserProcessQuits(); ++ RunUntilTestFinished(); +} + +enum class DisableSwitch { Adblock, Eyeo }; @@ -2681,7 +4323,7 @@ new file mode 100644 + + void VerifyNoDownloads() { + ASSERT_EQ(0u, default_lists_.size()); -+ CloseBrowserFromAnyThread(); ++ NotifyTestFinished(); + } +}; + @@ -2694,7 +4336,7 @@ new file mode 100644 + FROM_HERE, base::Seconds(10), + base::BindOnce(&AdblockDisabledFilterListDownloadTest::VerifyNoDownloads, + base::Unretained(this))); -+ RunUntilBrowserProcessQuits(); ++ RunUntilTestFinished(); +} + +INSTANTIATE_TEST_SUITE_P(All, @@ -2706,10 +4348,7 @@ new file mode 100644 +class AdblockPtLocaleFilterListDownloadTest + : public AdblockFilterListDownloadTestBase { + public: -+ AdblockPtLocaleFilterListDownloadTest() -+ : AdblockFilterListDownloadTestBase() { -+ setenv("LANGUAGE", "pt_PT", 1); -+ } ++ AdblockPtLocaleFilterListDownloadTest() { setenv("LANGUAGE", "pt_PT", 1); } + + std::unique_ptr RequestHandler( + const net::test_server::HttpRequest& request) override { @@ -2727,7 +4366,7 @@ new file mode 100644 + // If we get all expected requests we simply finish the test by closing + // the browser, otherwise test will fail with a timeout. + if (default_lists_.size() == 3) { -+ CloseBrowserFromAnyThread(); ++ NotifyTestFinished(); + } + + // Unhandled requests result in the Embedded test server sending a 404. @@ -2737,7 +4376,7 @@ new file mode 100644 + +IN_PROC_BROWSER_TEST_F(AdblockPtLocaleFilterListDownloadTest, + TestInitialDownloads) { -+ RunUntilBrowserProcessQuits(); ++ RunUntilTestFinished(); +} +#endif + @@ -2746,7 +4385,7 @@ diff --git a/chrome/browser/adblock/test/adblock_filtering_configurations_browse new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_filtering_configurations_browsertest.cc -@@ -0,0 +1,460 @@ +@@ -0,0 +1,459 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2768,13 +4407,11 @@ new file mode 100644 +#include "base/memory/raw_ptr.h" +#include "base/ranges/algorithm.h" +#include "base/run_loop.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/adblock_switches.h" +#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/configuration/filtering_configuration.h" @@ -2835,9 +4472,10 @@ new file mode 100644 + } + + void SetUpOnMainThread() override { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->RemoveCustomFilter(kAllowlistEverythingFilter); + } + + GURL BlockingFilterListUrl() { @@ -2867,7 +4505,7 @@ new file mode 100644 + std::unique_ptr MakeConfiguration( + std::string name) { + return std::make_unique( -+ browser()->profile()->GetPrefs(), name); ++ browser()->profile()->GetOriginalProfile()->GetPrefs(), name); + } + + void InstallFilteringConfiguration( @@ -3211,7 +4849,7 @@ diff --git a/chrome/browser/adblock/test/adblock_frame_hierarchy_builder_browser new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_frame_hierarchy_builder_browsertest.cc -@@ -0,0 +1,463 @@ +@@ -0,0 +1,464 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3232,8 +4870,8 @@ new file mode 100644 +#include + +#include "base/ranges/algorithm.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/resource_classification_runner_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ssl/https_upgrades_util.h" +#include "chrome/browser/ui/browser.h" @@ -3242,8 +4880,8 @@ new file mode 100644 +#include "components/adblock/content/browser/adblock_filter_match.h" +#include "components/adblock/content/browser/frame_hierarchy_builder.h" +#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/subscription/subscription_service.h" +#include "components/blocked_content/popup_blocker_tab_helper.h" +#include "components/embedder_support/switches.h" +#include "content/public/test/browser_test.h" @@ -3404,11 +5042,12 @@ new file mode 100644 + } + + void SetFilters(std::vector filters) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->RemoveCustomFilter(kAllowlistEverythingFilter); + for (auto& filter : filters) { -+ controller->AddCustomFilter(filter); ++ adblock_configuration->AddCustomFilter(filter); + } + } + @@ -3679,7 +5318,7 @@ diff --git a/chrome/browser/adblock/test/adblock_multiple_tabs_browsertest.cc b/ new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_multiple_tabs_browsertest.cc -@@ -0,0 +1,159 @@ +@@ -0,0 +1,160 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3697,8 +5336,8 @@ new file mode 100644 + * along with eyeo Chromium SDK. If not, see . + */ + -+#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/resource_classification_runner_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_list.h" @@ -3706,8 +5345,8 @@ new file mode 100644 +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/subscription/subscription_service.h" +#include "components/sessions/content/session_tab_helper.h" +#include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" @@ -3737,11 +5376,12 @@ new file mode 100644 + } + + void SetFilters(std::vector filters) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->RemoveCustomFilter(kAllowlistEverythingFilter); + for (auto& filter : filters) { -+ controller->AddCustomFilter(filter); ++ adblock_configuration->AddCustomFilter(filter); + } + } + @@ -3843,7 +5483,7 @@ diff --git a/chrome/browser/adblock/test/adblock_non_ascii_browsertest.cc b/chro new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_non_ascii_browsertest.cc -@@ -0,0 +1,77 @@ +@@ -0,0 +1,78 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3861,13 +5501,13 @@ new file mode 100644 + * along with eyeo Chromium SDK. If not, see . + */ + -+#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/subscription/subscription_service.h" +#include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" +#include "net/dns/mock_host_resolver.h" @@ -3887,11 +5527,12 @@ new file mode 100644 + } + + void SetFilters(std::vector filters) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->RemoveCustomFilter(kAllowlistEverythingFilter); + for (auto& filter : filters) { -+ controller->AddCustomFilter(filter); ++ adblock_configuration->AddCustomFilter(filter); + } + } + @@ -3925,7 +5566,7 @@ diff --git a/chrome/browser/adblock/test/adblock_popup_browsertest.cc b/chrome/b new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_popup_browsertest.cc -@@ -0,0 +1,462 @@ +@@ -0,0 +1,463 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -3945,8 +5586,8 @@ new file mode 100644 + +#include "base/run_loop.h" +#include "chrome/app/chrome_command_ids.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/resource_classification_runner_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.h" +#include "chrome/browser/renderer_context_menu/render_view_context_menu_test_util.h" @@ -3955,8 +5596,8 @@ new file mode 100644 +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/subscription/subscription_service.h" +#include "content/public/browser/render_view_host.h" +#include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" @@ -4129,11 +5770,12 @@ new file mode 100644 + } + + void SetFilters(std::vector filters) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->RemoveCustomFilter(kAllowlistEverythingFilter); + for (auto& filter : filters) { -+ controller->AddCustomFilter(filter); ++ adblock_configuration->AddCustomFilter(filter); + } + } + @@ -4388,11 +6030,96 @@ new file mode 100644 + Redirection::ServerSide)); + +} // namespace adblock +diff --git a/chrome/browser/adblock/test/adblock_snippets_browsertest.cc b/chrome/browser/adblock/test/adblock_snippets_browsertest.cc +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/adblock/test/adblock_snippets_browsertest.cc +@@ -0,0 +1,80 @@ ++/* ++ * This file is part of eyeo Chromium SDK, ++ * Copyright (C) 2006-present eyeo GmbH ++ * ++ * eyeo Chromium SDK is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 3 as ++ * published by the Free Software Foundation. ++ * ++ * eyeo Chromium SDK is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with eyeo Chromium SDK. If not, see . ++ */ ++ ++#include ++ ++#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "chrome/browser/profiles/profile.h" ++#include "chrome/browser/ui/browser.h" ++#include "chrome/test/base/in_process_browser_test.h" ++#include "chrome/test/base/ui_test_utils.h" ++#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/subscription/subscription_service.h" ++#include "content/public/test/browser_test.h" ++#include "content/public/test/browser_test_utils.h" ++#include "net/dns/mock_host_resolver.h" ++#include "net/test/embedded_test_server/embedded_test_server.h" ++#include "testing/gtest/include/gtest/gtest.h" ++ ++namespace adblock { ++ ++class AdblockSnippetsBrowserTest : public InProcessBrowserTest { ++ public: ++ void SetUpOnMainThread() override { ++ InProcessBrowserTest::SetUpOnMainThread(); ++ host_resolver()->AddRule("*", "127.0.0.1"); ++ embedded_test_server()->ServeFilesFromSourceDirectory( ++ "chrome/test/data/adblock"); ++ ASSERT_TRUE(embedded_test_server()->Start()); ++ } ++ ++ void SetFilters(std::vector filters) { ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->RemoveCustomFilter(kAllowlistEverythingFilter); ++ for (auto& filter : filters) { ++ adblock_configuration->AddCustomFilter(filter); ++ } ++ } ++ ++ GURL GetUrl(const std::string& path) { ++ return embedded_test_server()->GetURL("example.org", path); ++ } ++ ++ void VerifyTargetVisibility(bool is_hidden, const std::string& id) { ++ std::string is_invisible_js = ++ "getComputedStyle(document.getElementById('{{node id}}')).display == " ++ "'none'"; ++ base::ReplaceSubstringsAfterOffset(&is_invisible_js, 0, "{{node id}}", id); ++ EXPECT_EQ( ++ is_hidden, ++ content::EvalJs(browser()->tab_strip_model()->GetActiveWebContents(), ++ is_invisible_js)); ++ } ++}; ++ ++IN_PROC_BROWSER_TEST_F(AdblockSnippetsBrowserTest, VerifyXpath3) { ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl("/xpath3.html"))); ++ VerifyTargetVisibility(false, "xpath3-target"); ++ SetFilters( ++ {"example.org#$#hide-if-matches-xpath3 //*[@id=\"xpath3-target\"]"}); ++ ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), GetUrl("/xpath3.html"))); ++ VerifyTargetVisibility(true, "xpath3-target"); ++} ++ ++} // namespace adblock diff --git a/chrome/browser/adblock/test/adblock_subscription_service_browsertest.cc b/chrome/browser/adblock/test/adblock_subscription_service_browsertest.cc new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_subscription_service_browsertest.cc -@@ -0,0 +1,204 @@ +@@ -0,0 +1,201 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -4418,14 +6145,12 @@ new file mode 100644 +#include "base/test/bind.h" +#include "base/threading/thread_restrictions.h" +#include "base/time/time.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/subscription_persistent_metadata_factory.h" +#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/subscription/subscription_config.h" +#include "components/adblock/core/subscription/subscription_service.h" +#include "components/version_info/version_info.h" @@ -4556,9 +6281,8 @@ new file mode 100644 + // Using a custom subscription URL here because before test sets + // up the server then SubscriptionService already started fetching default + // subscriptions. -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->InstallSubscription(https_server_->GetURL(kSubscription)); ++ subscription_service->GetAdblockFilteringConfiguration()->AddFilterList( ++ https_server_->GetURL(kSubscription)); + // Wait until subscription is downloaded and stored. + RunUntilBrowserProcessQuits(); +} @@ -4862,7 +6586,7 @@ diff --git a/chrome/browser/adblock/test/adblock_web_bundle_browsertest.cc b/chr new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/test/adblock_web_bundle_browsertest.cc -@@ -0,0 +1,426 @@ +@@ -0,0 +1,427 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -4888,15 +6612,15 @@ new file mode 100644 +#include "base/functional/bind.h" +#include "base/path_service.h" +#include "base/strings/string_util.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/resource_classification_runner_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/subscription/subscription_service.h" +#include "components/web_package/web_bundle_builder.h" +#include "content/public/test/browser_test.h" +#include "content/public/test/browser_test_utils.h" @@ -5093,11 +6817,12 @@ new file mode 100644 + } + + void SetFilters(std::vector filters) { -+ auto* controller = -+ AdblockControllerFactory::GetForBrowserContext(browser()->profile()); -+ controller->RemoveCustomFilter(kAllowlistEverythingFilter); ++ auto* adblock_configuration = ++ SubscriptionServiceFactory::GetForBrowserContext(browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ adblock_configuration->RemoveCustomFilter(kAllowlistEverythingFilter); + for (auto& filter : filters) { -+ controller->AddCustomFilter(filter); ++ adblock_configuration->AddCustomFilter(filter); + } + } + @@ -5303,15 +7028,15 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser #include "chrome/browser/chrome_browser_interface_binders.h" -@@ -40,6 +44,7 @@ +@@ -39,6 +43,7 @@ + #include "chrome/browser/ui/side_panel/companion/companion_utils.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/web_applications/draggable_region_host_impl.h" - #include "chrome/browser/ui/web_applications/sub_apps_service_impl.h" +#include "chrome/browser/ui/webui/adblock_internals/adblock_internals_ui.h" #include "chrome/browser/ui/webui/browsing_topics/browsing_topics_internals_ui.h" #include "chrome/browser/ui/webui/engagement/site_engagement_ui.h" #include "chrome/browser/ui/webui/internals/internals_ui.h" -@@ -1032,6 +1037,10 @@ void PopulateChromeWebUIFrameBinders( +@@ -1043,6 +1048,10 @@ void PopulateChromeWebUIFrameBinders( media::mojom::MediaEngagementScoreDetailsProvider, MediaEngagementUI>( map); @@ -5336,21 +7061,15 @@ diff --git a/chrome/browser/client_hints/client_hints_browsertest.cc b/chrome/br #include #include -@@ -651,9 +655,17 @@ class ClientHintsBrowserTest : public policy::PolicyTest { - // Force-enable the ClientHintsFormFactor feature, so that the header is - // represented in the various header counts. +@@ -653,7 +657,10 @@ class ClientHintsBrowserTest : public policy::PolicyTest { feature_list->InitializeFromCommandLine( -+<<<<<<< HEAD "UserAgentClientHint,CriticalClientHint,AcceptCHFrame," "ClientHintsFormFactor,ClientHintsPrefersReducedTransparency", - ""); -+======= -+ "UserAgentClientHint,CriticalClientHint,AcceptCHFrame", -+ // Disabling AdblockPlus because the async implementation of +- ""); ++ // Disabling AdblockPlus because the async implementation of + // AdblockURLLoaderThrottle::WillStartRequest confuses + // ThirdPartyURLLoaderInterceptor. + "AdblockPlus"); -+>>>>>>> 9402d5c48c0e8... Squashed commits return feature_list; } @@ -5430,17 +7149,12 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU + import("//build/config/android/rules.gni") - -@@ -34,7 +38,12 @@ android_library("java") { - # TODO(chouinard,estade): Consider breaking this target up into a different target for each pref file. + import("//third_party/jni_zero/jni_zero.gni") +@@ -38,6 +42,7 @@ android_library("java") { java_cpp_strings("java_pref_names_srcjar") { sources = [ -+<<<<<<< HEAD "//chrome/common/pref_names.h", -+======= -+ "//chrome/common/pref_names.cc", + "//components/adblock/core/common/adblock_prefs.cc", -+>>>>>>> 9402d5c48c0e8... Squashed commits "//components/autofill/core/common/autofill_prefs.cc", "//components/commerce/core/pref_names.cc", "//components/dom_distiller/core/pref_names.cc", @@ -5459,14 +7173,14 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse #include "chrome/browser/prefs/chrome_pref_service_factory.h" @@ -39,6 +43,7 @@ + #include "chrome/grit/branded_strings.h" #include "chrome/grit/browser_resources.h" - #include "chrome/grit/chromium_strings.h" #include "chrome/grit/generated_resources.h" +#include "components/adblock/core/common/adblock_prefs.h" #include "components/component_updater/pref_names.h" #include "components/policy/core/browser/configuration_policy_pref_store.h" #include "components/pref_registry/pref_registry_syncable.h" -@@ -196,6 +201,12 @@ const prefs::TrackedPreferenceMetadata kTrackedPrefs[] = { +@@ -177,6 +182,12 @@ const prefs::TrackedPreferenceMetadata kTrackedPrefs[] = { {32, prefs::kMediaCdmOriginData, EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL}, #endif // BUILDFLAG(IS_WIN) @@ -5509,7 +7223,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" #include "chrome/browser/autocomplete/document_suggestions_service_factory.h" #include "chrome/browser/autocomplete/in_memory_url_index_factory.h" -@@ -241,6 +254,8 @@ +@@ -249,6 +262,8 @@ #include "chrome/browser/signin/signin_manager_android_factory.h" #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/proto/merchant_signal_db_content.pb.h" @@ -5518,7 +7232,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #else #include "chrome/browser/accessibility/live_caption/live_caption_controller_factory.h" #include "chrome/browser/accessibility/live_translate_controller_factory.h" -@@ -714,8 +729,19 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -735,8 +750,19 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(ENABLE_SESSION_SERVICE) ExitTypeServiceFactory::GetInstance(); #endif @@ -5552,7 +7266,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro #include #include "base/ranges/algorithm.h" -@@ -192,12 +196,22 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -189,12 +193,22 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, SystemProfileParent_NeededServices) { @@ -5586,7 +7300,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on -@@ -542,6 +556,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -524,6 +538,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "feedback::FeedbackUploaderChrome", "sct_reporting::Factory", "ZeroSuggestCacheServiceFactory", @@ -5604,6 +7318,24 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on +@@ -570,6 +595,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, + "PermissionsUpdaterShutdownFactory", + "PluginInfoHostImpl", + "TurnSyncOnHelperShutdownNotifier", ++ ++ // Eyeo services: ++ "AdblockController", ++ "AdblockSubscriptionPersistentMetadata", ++ "AdblockSubscriptionService", ++ "AdblockTelemetryService", ++ "ContentSecurityPolicyInjector", ++ "ElementHider", ++ "ResourceClassificationRunner", ++ "SessionStats", ++ "SitekeyStorage", + }; + // clang-format on + diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn --- a/chrome/browser/resources/BUILD.gn +++ b/chrome/browser/resources/BUILD.gn @@ -5617,7 +7349,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. import("//build/config/chromebox_for_meetings/buildflags.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -217,6 +220,7 @@ if (!is_android) { +@@ -220,6 +223,7 @@ if (!is_android) { group("dev_ui_resources") { public_deps = [ "accessibility:resources", @@ -5625,7 +7357,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. "bluetooth_internals:resources", "browsing_topics:resources", "components:resources", -@@ -268,6 +272,7 @@ repack("dev_ui_paks") { +@@ -274,6 +278,7 @@ repack("dev_ui_paks") { sources = [ "$root_gen_dir/chrome/accessibility_resources.pak", @@ -5778,9 +7510,9 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ #include "chrome/test/base/ui_test_utils.h" +#include "components/adblock/core/features.h" #include "components/google/core/common/google_util.h" + #include "components/grit/components_resources.h" #include "components/omnibox/browser/omnibox_prefs.h" - #include "components/page_info/core/features.h" -@@ -607,7 +612,8 @@ class SafeBrowsingBlockingPageBrowserTest +@@ -608,7 +613,8 @@ class SafeBrowsingBlockingPageBrowserTest {kTagAndAttributeParamName, "div,foo,div,baz"}}; base::test::FeatureRefAndParams tag_and_attribute( safe_browsing::kThreatDomDetailsTagAndAttributeFeature, parameters); @@ -5836,7 +7568,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn import("//build/config/buildflags_paint_preview.gni") import("//build/config/chromebox_for_meetings/buildflags.gni") -@@ -235,6 +239,10 @@ static_library("ui") { +@@ -231,6 +235,10 @@ static_library("ui") { "webid/identity_dialog_controller.h", "webui/about_ui.cc", "webui/about_ui.h", @@ -5847,30 +7579,29 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/autofill_and_password_manager_internals/autofill_internals_ui.cc", "webui/autofill_and_password_manager_internals/autofill_internals_ui.h", "webui/autofill_and_password_manager_internals/internals_ui_handler.cc", -@@ -441,7 +449,11 @@ static_library("ui") { +@@ -432,12 +440,13 @@ static_library("ui") { + "//chrome/browser/share", "//chrome/browser/storage_access_api", "//chrome/browser/ui/side_panel:side_panel_enums", - "//chrome/browser/ui/webui:configs", -+<<<<<<< HEAD - "//chrome/browser/ui/webui/location_internals:mojo_bindings", -+======= +- "//chrome/browser/ui/webui:configs", + "//chrome/browser/ui/webui/adblock_internals:mojo_bindings", -+>>>>>>> 9402d5c48c0e8... Squashed commits + "//chrome/browser/ui/webui/location_internals:mojo_bindings", "//chrome/browser/ui/webui/omnibox:mojo_bindings", "//chrome/browser/ui/webui/segmentation_internals:mojo_bindings", "//chrome/browser/ui/webui/suggest_internals:mojo_bindings", -@@ -457,7 +469,11 @@ static_library("ui") { + "//chrome/browser/ui/webui/usb_internals:mojo_bindings", ++ "//chrome/browser/ui/webui:configs", + "//chrome/common", + "//chrome/common/net", + "//chrome/common/search:mojo_bindings", +@@ -449,6 +458,7 @@ static_library("ui") { "//components/about_ui", "//components/access_code_cast/common:metrics", "//components/account_id", -+<<<<<<< HEAD - "//components/autofill/content/browser", -+======= + "//components/adblock/content:browser", -+>>>>>>> 9402d5c48c0e8... Squashed commits + "//components/autofill/content/browser", "//components/autofill/content/browser:risk_proto", "//components/autofill/core/browser", - "//components/blocked_content", diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/pref_watcher.cc --- a/chrome/browser/ui/prefs/pref_watcher.cc +++ b/chrome/browser/ui/prefs/pref_watcher.cc @@ -5885,15 +7616,15 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/p #include "chrome/browser/ui/prefs/pref_watcher.h" #include "base/functional/bind.h" -@@ -12,6 +16,7 @@ +@@ -13,6 +17,7 @@ #include "chrome/browser/renderer_preferences_util.h" #include "chrome/browser/ui/prefs/prefs_tab_helper.h" #include "chrome/common/pref_names.h" +#include "components/adblock/core/common/adblock_prefs.h" #include "components/language/core/browser/pref_names.h" #include "components/live_caption/pref_names.h" - #include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h" -@@ -66,6 +71,14 @@ const char* const kWebPrefsToObserve[] = { + #include "components/privacy_sandbox/tracking_protection_settings.h" +@@ -68,6 +73,14 @@ const char* const kWebPrefsToObserve[] = { #else prefs::kAccessibilityFocusHighlightEnabled, #endif @@ -5922,22 +7653,17 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/ui/tab_helpers.h" -@@ -13,7 +17,14 @@ +@@ -13,6 +17,9 @@ #include "base/trace_event/trace_event.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" -+<<<<<<< HEAD - #include "chrome/browser/3pcd/heuristics/opener_heuristic_tab_helper.h" -+======= -+#include "chrome/browser/3pcd_heuristics/opener_heuristic_tab_helper.h" +#include "chrome/browser/adblock/element_hider_factory.h" +#include "chrome/browser/adblock/sitekey_storage_factory.h" +#include "chrome/browser/adblock/subscription_service_factory.h" -+>>>>>>> 9402d5c48c0e8... Squashed commits #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h" #include "chrome/browser/browser_process.h" -@@ -109,6 +120,7 @@ +@@ -111,6 +118,7 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" @@ -5945,7 +7671,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/autofill/content/browser/content_autofill_client.h" #include "components/autofill/content/browser/content_autofill_driver_factory.h" #include "components/autofill/core/browser/browser_autofill_manager.h" -@@ -334,6 +346,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -341,6 +349,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { optimization_guide_decider); } } @@ -6019,7 +7745,7 @@ diff --git a/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_ha new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_handler_impl.cc -@@ -0,0 +1,97 @@ +@@ -0,0 +1,115 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -6040,8 +7766,10 @@ new file mode 100644 +#include "chrome/browser/ui/webui/adblock_internals/adblock_internals_page_handler_impl.h" + +#include "base/time/time_to_iso8601.h" ++#include "chrome/browser/adblock/adblock_telemetry_service_factory.h" +#include "chrome/browser/adblock/session_stats_factory.h" +#include "chrome/browser/adblock/subscription_service_factory.h" ++#include "components/adblock/core/adblock_telemetry_service.h" +#include "components/adblock/core/session_stats.h" +#include "components/adblock/core/subscription/subscription_config.h" +#include "components/adblock/core/subscription/subscription_service.h" @@ -6086,42 +7814,58 @@ new file mode 100644 +void AdblockInternalsPageHandlerImpl::GetDebugInfo( + GetDebugInfoCallback callback) { + CHECK(profile_); -+ std::string result; + auto* service = + adblock::SubscriptionServiceFactory::GetForBrowserContext(profile_); + auto* stats = adblock::SessionStatsFactory::GetForBrowserContext(profile_); + auto allowed = stats->GetSessionAllowedAdsCount(); + auto blocked = stats->GetSessionBlockedAdsCount(); ++ std::string content; + for (auto* config : service->GetInstalledFilteringConfigurations()) { -+ result += DebugLine("Configuration", config->GetName(), 0); -+ result += DebugLine("Enabled", config->IsEnabled(), 1); ++ content += DebugLine("Configuration", config->GetName(), 0); ++ content += DebugLine("Enabled", config->IsEnabled(), 1); + for (const auto& it : config->GetAllowedDomains()) { -+ result += DebugLine("Allowed domain", it, 1); ++ content += DebugLine("Allowed domain", it, 1); + } + for (const auto& it : config->GetCustomFilters()) { -+ result += DebugLine("Custom filter", it, 1); ++ content += DebugLine("Custom filter", it, 1); + } + for (auto it : service->GetCurrentSubscriptions(config)) { + auto url = it->GetSourceUrl(); -+ result += DebugLine("Subscription", url.spec(), 1); -+ result += DebugLine( ++ content += DebugLine("Subscription", url.spec(), 1); ++ content += DebugLine( + "State", + SubscriptionInstallationStateToString(it->GetInstallationState()), 2); -+ result += DebugLine("Title", it->GetTitle(), 2); -+ result += DebugLine("Version", it->GetCurrentVersion(), 2); -+ result += DebugLine("Last update", -+ base::TimeToISO8601(it->GetInstallationTime()), 2); -+ result += DebugLine("Total allowed", allowed[url], 2); -+ result += DebugLine("Total blocked", blocked[url], 2); ++ content += DebugLine("Title", it->GetTitle(), 2); ++ content += DebugLine("Version", it->GetCurrentVersion(), 2); ++ content += DebugLine("Last update", ++ base::TimeToISO8601(it->GetInstallationTime()), 2); ++ content += DebugLine("Total allowed", allowed[url], 2); ++ content += DebugLine("Total blocked", blocked[url], 2); + } + } -+ std::move(callback).Run(std::move(result)); ++ ++ auto* telemetry_service = ++ adblock::AdblockTelemetryServiceFactory::GetForProfile(profile_); ++ telemetry_service->GetTopicProvidersDebugInfo(base::BindOnce( ++ &AdblockInternalsPageHandlerImpl::OnTelemetryServiceInfoArrived, ++ std::move(callback), std::move(content))); ++} ++ ++void AdblockInternalsPageHandlerImpl::OnTelemetryServiceInfoArrived( ++ GetDebugInfoCallback callback, ++ std::string content, ++ std::vector topic_provider_content) { ++ for (auto& topic_provider_debug_info : topic_provider_content) { ++ content += ++ DebugLine("Eyeometry topic provider", topic_provider_debug_info, 0); ++ } ++ std::move(callback).Run(std::move(content)); +} diff --git a/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_handler_impl.h b/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_handler_impl.h new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_handler_impl.h -@@ -0,0 +1,47 @@ +@@ -0,0 +1,51 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -6164,6 +7908,10 @@ new file mode 100644 + void GetDebugInfo(GetDebugInfoCallback callback) override; + + private: ++ static void OnTelemetryServiceInfoArrived( ++ GetDebugInfoCallback callback, ++ std::string content, ++ std::vector topic_provider_content); + raw_ptr profile_; + mojo::Receiver + receiver_; @@ -6296,8 +8044,8 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/autofill_and_password_manager_internals/autofill_internals_ui.h" #include "chrome/browser/ui/webui/autofill_and_password_manager_internals/password_manager_internals_ui.h" #include "chrome/browser/ui/webui/browsing_topics/browsing_topics_internals_ui.h" -@@ -435,8 +440,12 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, - // print dialog. +@@ -434,8 +439,12 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, + // after the host name. if (url.host_piece() == chrome::kChromeUIAccessibilityHost) return &NewWebUI; - if (url.host_piece() == chrome::kChromeUIAutofillInternalsHost) @@ -6388,7 +8136,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn import("//components/captive_portal/core/features.gni") import("//components/enterprise/buildflags/buildflags.gni") import("//components/feed/features.gni") -@@ -1159,6 +1163,7 @@ if (is_android) { +@@ -1206,6 +1210,7 @@ if (is_android) { deps += [ ":persisted_tab_data_test_proto", @@ -6396,7 +8144,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/autofill/content/browser:test_support", "//components/back_forward_cache:back_forward_cache", "//components/browsing_data/core:core", -@@ -1537,6 +1542,7 @@ if (!is_android) { +@@ -1587,6 +1592,7 @@ if (!is_android) { "//chrome/test/data/webui/mojo:mojo_bindings", "//chrome/test/media_router/access_code_cast:access_code_cast_integration_base", "//chrome/test/payments:test_support", @@ -6404,15 +8152,15 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/autofill/content/browser:risk_proto", "//components/autofill/content/browser:test_support", "//components/autofill/content/common/mojom", -@@ -1864,6 +1870,7 @@ if (!is_android) { - "data/", +@@ -1924,6 +1930,7 @@ if (!is_android) { "//ash/components/arc/test/data/icons", "//chrome/browser/page_load_metrics/integration_tests/data/", + "//chrome/renderer/resources/extensions/", + "//chrome/test/data/adblock/", "//chrome/test/data/cart/", "//components/test/data/ad_tagging/", "//components/test/data/ads_observer/", -@@ -1956,6 +1963,16 @@ if (!is_android) { +@@ -2007,6 +2014,17 @@ if (!is_android) { "../browser/accessibility/image_annotation_browsertest.cc", "../browser/accessibility/interstitial_accessibility_browsertest.cc", "../browser/accessibility/page_colors_browsertest.cc", @@ -6423,13 +8171,14 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn + "../browser/adblock/test/adblock_multiple_tabs_browsertest.cc", + "../browser/adblock/test/adblock_non_ascii_browsertest.cc", + "../browser/adblock/test/adblock_popup_browsertest.cc", ++ "../browser/adblock/test/adblock_snippets_browsertest.cc", + "../browser/adblock/test/adblock_subscription_service_browsertest.cc", + "../browser/adblock/test/adblock_telemetry_service_browsertest.cc", + "../browser/adblock/test/adblock_web_bundle_browsertest.cc", "../browser/apps/guest_view/app_view_browsertest.cc", "../browser/apps/guest_view/web_view_browsertest.cc", "../browser/apps/platform_apps/app_browsertest.cc", -@@ -2682,6 +2699,10 @@ if (!is_android) { +@@ -2733,6 +2751,10 @@ if (!is_android) { sources += [ "../browser/chrome_for_testing/chrome_for_testing_info_bar_browsertest.cc" ] } @@ -6440,7 +8189,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn if (enable_reporting) { sources += [ "../browser/net/reporting_browsertest.cc" ] } -@@ -3514,6 +3535,7 @@ if (!is_android) { +@@ -3567,6 +3589,7 @@ if (!is_android) { ] } @@ -6448,15 +8197,15 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn if (is_chromeos_ash && enable_extensions) { deps += [ "//chromeos/ash/components/network/portal_detector:test_support" ] -@@ -5804,6 +5826,7 @@ test("unit_tests") { - # All unittests in browser, common, renderer and service. +@@ -5857,6 +5880,7 @@ test("unit_tests") { "../browser/about_flags_unittest.cc", + "../browser/accessibility/media_app/ax_media_app_handler_unittest.cc", "../browser/active_use_util_unittest.cc", + "../browser/adblock/adblock_content_browser_client_unittest.cc", "../browser/after_startup_task_utils_unittest.cc", "../browser/apps/icon_standardizer_unittest.cc", "../browser/apps/user_type_filter_unittest.cc", -@@ -6466,6 +6489,8 @@ test("unit_tests") { +@@ -6525,6 +6549,8 @@ test("unit_tests") { "//chrome/services/file_util:unit_tests", "//chrome/services/qrcode_generator/public/cpp", "//components/account_id", @@ -6465,7 +8214,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/assist_ranker/proto", "//components/autofill/content/browser:test_support", "//components/background_sync", -@@ -9917,6 +9942,7 @@ if (!is_android) { +@@ -9998,6 +10024,7 @@ if (!is_android) { public_deps = [ "//chrome/browser:test_support_ui", @@ -6522,14 +8271,14 @@ diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_p #include "content/public/test/network_connection_change_simulator.h" #endif -+#include "chrome/browser/adblock/adblock_controller_factory.h" -+#include "components/adblock/core/adblock_controller.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" +#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/subscription/subscription_service.h" + namespace { #if BUILDFLAG(IS_CHROMEOS_ASH) -@@ -652,8 +660,15 @@ void InProcessBrowserTest::CreatedBrowserMainParts( +@@ -653,8 +661,19 @@ void InProcessBrowserTest::CreatedBrowserMainParts( void InProcessBrowserTest::SelectFirstBrowser() { const BrowserList* browser_list = BrowserList::GetInstance(); @@ -6540,8 +8289,12 @@ diff --git a/chrome/test/base/in_process_browser_test.cc b/chrome/test/base/in_p + // filters in order to avoid unwanted interactions with simulated network + // loads. This custom filter is removed for tests that specifically verify + // ad-filtering. -+ adblock::AdblockControllerFactory::GetForBrowserContext(browser_->profile()) -+ ->AddCustomFilter(adblock::kAllowlistEverythingFilter); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext(browser_->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ if (adblock_configuration) { ++ adblock_configuration->AddCustomFilter(adblock::kAllowlistEverythingFilter); ++ } + } } @@ -8161,5 +9914,33 @@ new file mode 100644 +testFetchXHR("xhr", "by_scope/xhr_result_3_subresource_loading.json", xhr_result_by_scope); +testFetchXHR("fetch", "by_scope/fetch_result_3_subresource_loading.json", fetch_result_by_scope); + +diff --git a/chrome/test/data/adblock/xpath3.html b/chrome/test/data/adblock/xpath3.html +new file mode 100644 +--- /dev/null ++++ b/chrome/test/data/adblock/xpath3.html +@@ -0,0 +1,23 @@ ++ ++ ++ ++ ++ ++
    Target
    ++ ++ -- 2.25.1 diff --git a/build/patches/eyeo-117.0.5938.0-extension_api.patch b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch similarity index 96% rename from build/patches/eyeo-117.0.5938.0-extension_api.patch rename to build/patches/eyeo-beta-118.0.5993.48-extension_api.patch index c90e6f64..5129d2b1 100644 --- a/build/patches/eyeo-117.0.5938.0-extension_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch @@ -1,20 +1,20 @@ From: chromium-sdk -Date: Mon, 21 Aug 2023 18:20:45 +0200 +Date: Thu, 12 Oct 2023 14:46:09 +0200 Subject: eyeo Browser Ad filtering Solution: Extension API Module -Based on Chromium 117.0.5938.0 +Based on Chromium 118.0.5993.48 Pre-requisites: eyeo Browser Ad filtering Solution: Base Module --- - chrome/browser/extensions/BUILD.gn | 13 + + chrome/browser/extensions/BUILD.gn | 9 + chrome/browser/extensions/api/BUILD.gn | 5 + - .../adblock_private/adblock_private_api.cc | 621 +++++++++++ + .../adblock_private/adblock_private_api.cc | 674 ++++++++++++ .../api/adblock_private/adblock_private_api.h | 328 ++++++ .../adblock_private_apitest.cc | 984 ++++++++++++++++++ ...browser_context_keyed_service_factories.cc | 8 + - .../eyeo_filtering_private_api.cc | 770 ++++++++++++++ + .../eyeo_filtering_private_api.cc | 772 ++++++++++++++ .../eyeo_filtering_private_api.h | 360 +++++++ - .../eyeo_filtering_private_apitest.cc | 155 +++ + .../eyeo_filtering_private_apitest.cc | 161 +++ .../api/settings_private/prefs_util.cc | 19 + ...browser_context_keyed_service_factories.cc | 4 + .../extension_function_registration_test.cc | 10 + @@ -38,10 +38,10 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../api_test/eyeo_filtering_private/test.js | 460 ++++++++ .../browser/extension_event_histogram_value.h | 7 +- .../common/mojom/api_permission_id.mojom | 6 + - tools/metrics/histograms/enums.xml | 5 +- + tools/metrics/histograms/enums.xml | 7 +- .../definitions/adblock_private.d.ts | 172 +++ .../definitions/eyeo_filtering_private.d.ts | 249 +++++ - 35 files changed, 5347 insertions(+), 2 deletions(-) + 35 files changed, 5406 insertions(+), 2 deletions(-) create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_api.cc create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_api.h create mode 100644 chrome/browser/extensions/api/adblock_private/adblock_private_apitest.cc @@ -95,15 +95,11 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL "api/favicon/favicon_util.cc", "api/favicon/favicon_util.h", "api/feedback_private/chrome_feedback_private_delegate.cc", -@@ -826,6 +834,11 @@ static_library("extensions") { +@@ -827,6 +835,7 @@ static_library("extensions") { "//chrome/browser/safe_browsing:metrics_collector", "//chrome/browser/ui/tabs:tab_enums", "//chrome/browser/web_applications", -+<<<<<<< HEAD -+======= -+ "//chromeos/components/kiosk", + "//components/adblock/content:browser", -+>>>>>>> 9402d5c48c0e8... Squashed commits "//components/cbor:cbor", "//components/commerce/core:pref_names", "//components/device_reauth", @@ -133,7 +129,7 @@ diff --git a/chrome/browser/extensions/api/adblock_private/adblock_private_api.c new file mode 100644 --- /dev/null +++ b/chrome/browser/extensions/api/adblock_private/adblock_private_api.cc -@@ -0,0 +1,621 @@ +@@ -0,0 +1,674 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// @@ -156,17 +152,16 @@ new file mode 100644 +#include "base/no_destructor.h" +#include "base/time/time_to_iso8601.h" +#include "base/values.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" +#include "chrome/browser/adblock/resource_classification_runner_factory.h" +#include "chrome/browser/adblock/session_stats_factory.h" +#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/extensions/extension_tab_util.h" +#include "chrome/common/extensions/api/tabs.h" +#include "components/adblock/content/browser/resource_classification_runner.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_utils.h" +#include "components/adblock/core/common/content_type.h" +#include "components/adblock/core/session_stats.h" ++#include "components/adblock/core/subscription/subscription_config.h" +#include "components/sessions/core/session_id.h" +#include "content/public/browser/web_contents.h" +#include "url/gurl.h" @@ -183,14 +178,17 @@ new file mode 100644 + if (!url.is_valid()) { + return "Invalid URL"; + } -+ auto* controller = -+ adblock::AdblockControllerFactory::GetForBrowserContext(browser_context); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext(browser_context) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; + switch (action) { + case SubscriptionAction::kInstall: -+ controller->InstallSubscription(url); ++ adblock_configuration->AddFilterList(url); + break; + case SubscriptionAction::kUninstall: -+ controller->UninstallSubscription(url); ++ adblock_configuration->RemoveFilterList(url); + break; + default: + NOTREACHED(); @@ -490,9 +488,13 @@ new file mode 100644 + api::adblock_private::SetEnabled::Params::Create(args()); + EXTENSION_FUNCTION_VALIDATE(params); + -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); -+ controller->SetAdblockEnabled(params->enabled); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; ++ adblock_configuration->SetEnabled(params->enabled); + return RespondNow(NoArguments()); +} + @@ -501,11 +503,15 @@ new file mode 100644 +AdblockPrivateIsEnabledFunction::~AdblockPrivateIsEnabledFunction() {} + +ExtensionFunction::ResponseAction AdblockPrivateIsEnabledFunction::Run() { -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; + return RespondNow( + ArgumentList(api::adblock_private::IsEnabled::Results::Create( -+ controller->IsAdblockEnabled()))); ++ adblock_configuration->IsEnabled()))); +} + +AdblockPrivateSetAcceptableAdsEnabledFunction:: @@ -520,9 +526,17 @@ new file mode 100644 + api::adblock_private::SetAcceptableAdsEnabled::Params::Create(args()); + EXTENSION_FUNCTION_VALIDATE(params); + -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); -+ controller->SetAcceptableAdsEnabled(params->enabled); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; ++ if (params->enabled) { ++ adblock_configuration->AddFilterList(adblock::AcceptableAdsUrl()); ++ } else { ++ adblock_configuration->RemoveFilterList(adblock::AcceptableAdsUrl()); ++ } + + return RespondNow(NoArguments()); +} @@ -535,11 +549,18 @@ new file mode 100644 + +ExtensionFunction::ResponseAction +AdblockPrivateIsAcceptableAdsEnabledFunction::Run() { -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; + return RespondNow(ArgumentList( + api::adblock_private::IsAcceptableAdsEnabled::Results::Create( -+ controller->IsAcceptableAdsEnabled()))); ++ base::ranges::any_of(adblock_configuration->GetFilterLists(), ++ [&](const auto& url) { ++ return url == adblock::AcceptableAdsUrl(); ++ })))); +} + +AdblockPrivateGetBuiltInSubscriptionsFunction:: @@ -550,9 +571,7 @@ new file mode 100644 + +ExtensionFunction::ResponseAction +AdblockPrivateGetBuiltInSubscriptionsFunction::Run() { -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); -+ auto recommended = controller->GetKnownSubscriptions(); ++ auto recommended = adblock::config::GetKnownSubscriptions(); + std::vector result; + for (auto& recommended_one : recommended) { + if (recommended_one.ui_visibility == @@ -618,11 +637,17 @@ new file mode 100644 + +ExtensionFunction::ResponseAction +AdblockPrivateGetInstalledSubscriptionsFunction::Run() { -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); ++ auto* subscription_service = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()); ++ auto* adblock_configuration = ++ subscription_service->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; + return RespondNow(ArgumentList( + api::adblock_private::GetInstalledSubscriptions::Results::Create( -+ CopySubscriptions(controller->GetInstalledSubscriptions())))); ++ CopySubscriptions(subscription_service->GetCurrentSubscriptions( ++ subscription_service->GetAdblockFilteringConfiguration()))))); +} + +AdblockPrivateAddAllowedDomainFunction:: @@ -636,9 +661,13 @@ new file mode 100644 + absl::optional params = + api::adblock_private::AddAllowedDomain::Params::Create(args()); + EXTENSION_FUNCTION_VALIDATE(params); -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); -+ controller->AddAllowedDomain(params->domain); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; ++ adblock_configuration->AddAllowedDomain(params->domain); + return RespondNow(NoArguments()); +} + @@ -653,9 +682,13 @@ new file mode 100644 + absl::optional params = + api::adblock_private::RemoveAllowedDomain::Params::Create(args()); + EXTENSION_FUNCTION_VALIDATE(params); -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); -+ controller->RemoveAllowedDomain(params->domain); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; ++ adblock_configuration->RemoveAllowedDomain(params->domain); + + return RespondNow(NoArguments()); +} @@ -668,11 +701,15 @@ new file mode 100644 + +ExtensionFunction::ResponseAction +AdblockPrivateGetAllowedDomainsFunction::Run() { -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; + return RespondNow( + ArgumentList(api::adblock_private::GetAllowedDomains::Results::Create( -+ controller->GetAllowedDomains()))); ++ adblock_configuration->GetAllowedDomains()))); +} + +AdblockPrivateAddCustomFilterFunction::AdblockPrivateAddCustomFilterFunction() { @@ -685,9 +722,13 @@ new file mode 100644 + absl::optional params = + api::adblock_private::AddCustomFilter::Params::Create(args()); + EXTENSION_FUNCTION_VALIDATE(params); -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); -+ controller->AddCustomFilter(params->filter); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; ++ adblock_configuration->AddCustomFilter(params->filter); + return RespondNow(NoArguments()); +} + @@ -699,11 +740,15 @@ new file mode 100644 + +ExtensionFunction::ResponseAction +AdblockPrivateGetCustomFiltersFunction::Run() { -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; + return RespondNow( + ArgumentList(api::adblock_private::GetCustomFilters::Results::Create( -+ controller->GetCustomFilters()))); ++ adblock_configuration->GetCustomFilters()))); +} + +AdblockPrivateGetCustomFiltersFunction:: @@ -717,9 +762,13 @@ new file mode 100644 + absl::optional params = + api::adblock_private::RemoveCustomFilter::Params::Create(args()); + EXTENSION_FUNCTION_VALIDATE(params); -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser_context()); -+ controller->RemoveCustomFilter(params->filter); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser_context()) ++ ->GetAdblockFilteringConfiguration(); ++ DCHECK(adblock_configuration) ++ << "adblock_private expects \"adblock\" configuration"; ++ adblock_configuration->RemoveCustomFilter(params->filter); + return RespondNow(NoArguments()); +} + @@ -1113,7 +1162,7 @@ new file mode 100644 +#include + +#include "chrome/browser/adblock/adblock_content_browser_client.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/extensions/extension_apitest.h" +#include "chrome/browser/ssl/https_upgrades_interceptor.h" +#include "chrome/browser/ssl/https_upgrades_util.h" @@ -1121,9 +1170,9 @@ new file mode 100644 +#include "chrome/common/extensions/api/adblock_private.h" +#include "chrome/common/extensions/api/tabs.h" +#include "chrome/test/base/ui_test_utils.h" -+#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_constants.h" +#include "components/adblock/core/subscription/subscription_config.h" ++#include "components/adblock/core/subscription/subscription_service.h" +#include "content/public/test/browser_test.h" +#include "extensions/browser/background_script_executor.h" +#include "net/dns/mock_host_resolver.h" @@ -1163,8 +1212,9 @@ new file mode 100644 + ASSERT_EQ(api::tabs::TAB_ID_NONE, -1); + ASSERT_EQ(SessionID::InvalidValue().id(), -1); + -+ adblock::AdblockControllerFactory::GetForBrowserContext( ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( + browser()->profile()) ++ ->GetAdblockFilteringConfiguration() + ->RemoveCustomFilter(adblock::kAllowlistEverythingFilter); + + AdblockContentBrowserClient::ForceAdblockProxyForTesting(); @@ -1238,25 +1288,22 @@ new file mode 100644 + + std::map SubscriptionsManagementSetup() { + DCHECK(browser()->profile()); -+ auto* controller = adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser()->profile()); -+ auto selected = controller->GetInstalledSubscriptions(); ++ auto selected = adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser()->profile()) ++ ->GetAdblockFilteringConfiguration() ++ ->GetFilterLists(); + const auto easylist = std::find_if( -+ selected.begin(), selected.end(), -+ [&](scoped_refptr subscription) { -+ return base::EndsWith(subscription->GetSourceUrl().path_piece(), -+ "easylist.txt"); ++ selected.begin(), selected.end(), [&](const GURL& subscription) { ++ return base::EndsWith(subscription.path_piece(), "easylist.txt"); + }); + const auto exceptions = std::find_if( -+ selected.begin(), selected.end(), -+ [&](scoped_refptr subscription) { -+ return base::EndsWith(subscription->GetSourceUrl().path_piece(), ++ selected.begin(), selected.end(), [&](const GURL& subscription) { ++ return base::EndsWith(subscription.path_piece(), + "exceptionrules.txt"); + }); + const auto snippets = std::find_if( -+ selected.begin(), selected.end(), -+ [&](scoped_refptr subscription) { -+ return base::EndsWith(subscription->GetSourceUrl().path_piece(), ++ selected.begin(), selected.end(), [&](const GURL& subscription) { ++ return base::EndsWith(subscription.path_piece(), + "abp-filters-anti-cv.txt"); + }); + if (easylist == selected.end() || exceptions == selected.end() || @@ -1264,9 +1311,9 @@ new file mode 100644 + return std::map{}; + } + return std::map{ -+ {"easylist", (*easylist)->GetSourceUrl().spec()}, -+ {"exceptions", (*exceptions)->GetSourceUrl().spec()}, -+ {"snippets", (*snippets)->GetSourceUrl().spec()}}; ++ {"easylist", easylist->spec()}, ++ {"exceptions", exceptions->spec()}, ++ {"snippets", snippets->spec()}}; + } +}; + @@ -1516,8 +1563,9 @@ new file mode 100644 + // Map example.com to localhost. + host_resolver()->AddRule("example.com", "127.0.0.1"); + ASSERT_TRUE(StartEmbeddedTestServer()); -+ adblock::AdblockControllerFactory::GetForBrowserContext( ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( + browser()->profile()) ++ ->GetAdblockFilteringConfiguration() + ->RemoveCustomFilter(adblock::kAllowlistEverythingFilter); + } + @@ -1870,8 +1918,9 @@ new file mode 100644 + &AdblockPrivateApiBackgroundPageTestWithRedirect::RequestHandler, + base::Unretained(this))); + ASSERT_TRUE(StartEmbeddedTestServer()); -+ adblock::AdblockControllerFactory::GetForBrowserContext( ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( + browser()->profile()) ++ ->GetAdblockFilteringConfiguration() + ->RemoveCustomFilter(adblock::kAllowlistEverythingFilter); + } + @@ -2106,7 +2155,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/font_settings/font_settings_api.h" #include "chrome/browser/extensions/api/history/history_api.h" #include "chrome/browser/extensions/api/identity/identity_api.h" -@@ -69,6 +75,7 @@ namespace chrome_extensions { +@@ -73,6 +79,7 @@ namespace chrome_extensions { void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { extensions::ActivityLogAPI::GetFactoryInstance(); @@ -2114,7 +2163,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac extensions::AutofillPrivateEventRouterFactory::GetInstance(); extensions::BluetoothLowEnergyAPI::GetFactoryInstance(); extensions::BookmarksAPI::GetFactoryInstance(); -@@ -78,6 +85,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -82,6 +89,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { extensions::CookiesAPI::GetFactoryInstance(); extensions::DeveloperPrivateAPI::GetFactoryInstance(); extensions::ExtensionActionAPI::GetFactoryInstance(); @@ -2126,7 +2175,7 @@ diff --git a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering new file mode 100644 --- /dev/null +++ b/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.cc -@@ -0,0 +1,770 @@ +@@ -0,0 +1,772 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// @@ -2440,7 +2489,7 @@ new file mode 100644 + return info; + } + -+ raw_ptr context_; ++ const raw_ptr context_; +}; + +template <> @@ -2538,7 +2587,9 @@ new file mode 100644 + if (configuration_it == installed_configurations.end()) { + auto new_filtering_configuration = + std::make_unique( -+ Profile::FromBrowserContext(browser_context())->GetPrefs(), ++ Profile::FromBrowserContext(browser_context()) ++ ->GetOriginalProfile() ++ ->GetPrefs(), + params->config_name); + subscription_service->InstallFilteringConfiguration( + std::move(new_filtering_configuration)); @@ -2950,7 +3001,7 @@ new file mode 100644 + void OnListenerAdded(const extensions::EventListenerInfo& details) override; + + private: -+ raw_ptr context_; ++ const raw_ptr context_; + class EyeoFilteringAPIEventRouter; + std::unique_ptr event_router_; +}; @@ -3266,7 +3317,7 @@ diff --git a/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering new file mode 100644 --- /dev/null +++ b/chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_apitest.cc -@@ -0,0 +1,155 @@ +@@ -0,0 +1,161 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// @@ -3283,12 +3334,13 @@ new file mode 100644 +// along with eyeo Chromium SDK. If not, see . + +#include "chrome/browser/adblock/adblock_content_browser_client.h" -+#include "chrome/browser/adblock/adblock_controller_factory.h" ++#include "chrome/browser/adblock/subscription_service_factory.h" +#include "chrome/browser/extensions/extension_apitest.h" +#include "chrome/common/chrome_switches.h" +#include "chrome/common/extensions/api/adblock_private.h" +#include "components/adblock/core/adblock_controller.h" +#include "components/adblock/core/common/adblock_constants.h" ++#include "components/adblock/core/subscription/subscription_service.h" +#include "content/public/test/browser_test.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" @@ -3319,9 +3371,14 @@ new file mode 100644 + void SetUpOnMainThread() override { + ExtensionApiTest::SetUpOnMainThread(); + -+ adblock::AdblockControllerFactory::GetForBrowserContext( -+ browser()->profile()) -+ ->RemoveCustomFilter(adblock::kAllowlistEverythingFilter); ++ auto* adblock_configuration = ++ adblock::SubscriptionServiceFactory::GetForBrowserContext( ++ browser()->profile()) ++ ->GetAdblockFilteringConfiguration(); ++ if (adblock_configuration) { ++ adblock_configuration->RemoveCustomFilter( ++ adblock::kAllowlistEverythingFilter); ++ } + + AdblockContentBrowserClient::ForceAdblockProxyForTesting(); + } @@ -3436,7 +3493,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "chrome/browser/extensions/api/settings_private/prefs_util.h" #include -@@ -26,6 +30,7 @@ +@@ -27,6 +31,7 @@ #include "chrome/browser/ssl/generated_https_first_mode_pref.h" #include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" @@ -3444,7 +3501,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "components/autofill/core/common/autofill_prefs.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/browsing_data/core/pref_names.h" -@@ -177,6 +182,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -173,6 +178,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { return *s_allowlist; s_allowlist = new PrefsUtil::TypedPrefMap(); @@ -4063,7 +4120,7 @@ diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/c diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -3535,6 +3535,12 @@ if (!is_android) { +@@ -3589,6 +3589,12 @@ if (!is_android) { ] } @@ -5382,7 +5439,7 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums --> -@@ -35148,7 +35151,7 @@ Called by update_extension_histograms.py.--> +@@ -35304,7 +35307,7 @@ Called by update_extension_histograms.py.--> @@ -5391,6 +5448,15 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums +@@ -38452,6 +38455,8 @@ Called by update_extension_permission.py.--> + + + ++ ++ + + + diff --git a/tools/typescript/definitions/adblock_private.d.ts b/tools/typescript/definitions/adblock_private.d.ts new file mode 100644 --- /dev/null diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index 94bc4e17..055ad664 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn --- a/services/device/geolocation/BUILD.gn +++ b/services/device/geolocation/BUILD.gn -@@ -162,7 +162,6 @@ if (is_android) { +@@ -163,7 +163,6 @@ if (is_android) { "android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java", "android/java/src/org/chromium/device/geolocation/LocationProviderAndroid.java", "android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java", diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index 4f7f154c..56182a75 100644 --- a/build/patches/kill-Vision.patch +++ b/build/patches/kill-Vision.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -296,8 +296,6 @@ if (current_toolchain == default_toolchain) { +@@ -299,8 +299,6 @@ if (current_toolchain == default_toolchain) { "$google_play_services_package:google_play_services_gcm_java", "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", @@ -27,7 +27,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn --- a/services/shape_detection/BUILD.gn +++ b/services/shape_detection/BUILD.gn -@@ -110,21 +110,13 @@ if (is_android) { +@@ -111,21 +111,13 @@ if (is_android) { android_library("shape_detection_java") { sources = [ diff --git a/build/patches/prefs-always-prompt-for-download-directory.patch b/build/patches/prefs-always-prompt-for-download-directory.patch index 979cbba0..d160240c 100644 --- a/build/patches/prefs-always-prompt-for-download-directory.patch +++ b/build/patches/prefs-always-prompt-for-download-directory.patch @@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc --- a/chrome/browser/download/download_prefs.cc +++ b/chrome/browser/download/download_prefs.cc -@@ -282,7 +282,7 @@ void DownloadPrefs::RegisterProfilePrefs( +@@ -281,7 +281,7 @@ void DownloadPrefs::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kPromptForDownload, diff --git a/build/patches/ungoogled-chromium-Disable-Gaia.patch b/build/patches/ungoogled-chromium-Disable-Gaia.patch index 7315fe08..e923a088 100644 --- a/build/patches/ungoogled-chromium-Disable-Gaia.patch +++ b/build/patches/ungoogled-chromium-Disable-Gaia.patch @@ -24,7 +24,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ constexpr char kBadAuthenticationError[] = "BadAuthentication"; constexpr char kBadAuthenticationShortError[] = "badauth"; -@@ -272,6 +272,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher( +@@ -260,6 +260,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher( const net::NetworkTrafficAnnotationTag& traffic_annotation) { DCHECK(!fetch_pending_) << "Tried to fetch two things at once!"; @@ -32,7 +32,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ auto resource_request = std::make_unique(); resource_request->url = gaia_gurl; original_url_ = gaia_gurl; -@@ -326,6 +327,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher( +@@ -314,6 +315,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher( base::BindOnce(&GaiaAuthFetcher::OnURLLoadComplete, base::Unretained(this)), kMaxMessageSize); diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index a03e8ac1..4ac0e14c 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1459,8 +1459,6 @@ static_library("browser") { +@@ -1463,8 +1463,6 @@ static_library("browser") { "profiles/profile_attributes_storage.cc", "profiles/profile_attributes_storage.h", "profiles/profile_attributes_storage_observer.h", @@ -42,7 +42,7 @@ diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_attributes_storage.cc b/chrome/browser/profiles/profile_attributes_storage.cc --- a/chrome/browser/profiles/profile_attributes_storage.cc +++ b/chrome/browser/profiles/profile_attributes_storage.cc -@@ -989,7 +989,7 @@ void ProfileAttributesStorage::DownloadHighResAvatarIfNeeded( +@@ -998,7 +998,7 @@ void ProfileAttributesStorage::DownloadHighResAvatarIfNeeded( void ProfileAttributesStorage::DownloadHighResAvatar( size_t icon_index, const base::FilePath& profile_path) { diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index 4b552980..61363478 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -6,13 +6,13 @@ Remove translate offer License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../xml/languages_detailed_preferences.xml | 43 ------------------- + .../xml/languages_detailed_preferences.xml | 43 ------------------ .../java/res/xml/languages_preferences.xml | 5 --- - .../language/settings/LanguageSettings.java | 41 +----------------- + .../language/settings/LanguageSettings.java | 44 +------------------ .../strings/android_chrome_strings.grd | 3 -- .../core/browser/translate_manager.cc | 5 ++- .../core/browser/translate_script.cc | 19 +++----- - 6 files changed, 11 insertions(+), 105 deletions(-) + 6 files changed, 11 insertions(+), 108 deletions(-) diff --git a/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml b/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml --- a/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml @@ -81,7 +81,7 @@ diff --git a/chrome/browser/language/android/java/res/xml/languages_preferences. diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java -@@ -50,12 +50,6 @@ public class LanguageSettings extends PreferenceFragmentCompat +@@ -47,12 +47,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment static final String APP_LANGUAGE_PREFERENCE_KEY = "app_language_preference"; static final String PREFERRED_LANGUAGES_KEY = "preferred_languages"; static final String CONTENT_LANGUAGES_KEY = "content_languages_preference"; @@ -94,10 +94,10 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse private static final String TAG = "LanguageSettings"; -@@ -106,27 +100,6 @@ public class LanguageSettings extends PreferenceFragmentCompat +@@ -97,32 +91,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(PREFERRED_LANGUAGES_KEY); - mLanguageListPref.registerActivityLauncher(this); + mLanguageListPref.initialize(this, getPrefService()); - - ChromeSwitchPreference translateSwitch = - (ChromeSwitchPreference) findPreference(TRANSLATE_SWITCH_KEY); @@ -117,21 +117,26 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse - return true; - } - }); -- translateSwitch.setManagedPreferenceDelegate((ChromeManagedPreferenceDelegate) preference -- -> getPrefService().isManagedPreference(Pref.OFFER_TRANSLATE_ENABLED)); +- translateSwitch.setManagedPreferenceDelegate(new ChromeManagedPreferenceDelegate( +- getProfile()) { +- @Override +- public boolean isPreferenceControlledByPolicy(Preference preference) { +- return getPrefService().isManagedPreference(Pref.OFFER_TRANSLATE_ENABLED); +- } +- }); } /** -@@ -141,8 +114,6 @@ public class LanguageSettings extends PreferenceFragmentCompat +@@ -137,8 +105,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(CONTENT_LANGUAGES_KEY); - mLanguageListPref.registerActivityLauncher(this); + mLanguageListPref.initialize(this, getPrefService()); - - setupTranslateSection(mLanguageListPref); } /** -@@ -172,7 +143,7 @@ public class LanguageSettings extends PreferenceFragmentCompat +@@ -168,7 +134,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment * @param contentLanguagesPreference ContentLanguagesPreference reference to update about state * changes. */ @@ -140,18 +145,16 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse // Setup expandable advanced settings section. PreferenceCategory translationAdvancedSection = (PreferenceCategory) findPreference(TRANSLATION_ADVANCED_SECTION); -@@ -234,9 +205,7 @@ public class LanguageSettings extends PreferenceFragmentCompat - return true; +@@ -237,7 +203,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment + return getPrefService().isManagedPreference(Pref.OFFER_TRANSLATE_ENABLED); } }); -- translateSwitch.setManagedPreferenceDelegate((ChromeManagedPreferenceDelegate) preference -- -> getPrefService().isManagedPreference(Pref.OFFER_TRANSLATE_ENABLED)); - } + } */ @Override public void onStart() { -@@ -274,12 +243,6 @@ public class LanguageSettings extends PreferenceFragmentCompat +@@ -275,12 +241,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment // Set the default target language to match the new app language. TranslateBridge.setDefaultTargetLanguage(code); } else if (requestCode == REQUEST_CODE_CHANGE_TARGET_LANGUAGE) { @@ -167,7 +170,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1895,9 +1895,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1930,9 +1930,6 @@ Your Google account may have other forms of browsing history like searches and a Websites will show text in your preferred language, when possible. @@ -180,7 +183,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc --- a/components/translate/core/browser/translate_manager.cc +++ b/components/translate/core/browser/translate_manager.cc -@@ -825,8 +825,9 @@ void TranslateManager::FilterIsTranslatePossible( +@@ -832,8 +832,9 @@ void TranslateManager::FilterIsTranslatePossible( TriggerDecision::kDisabledOffline); } diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index 9153e29f..52869f63 100644 --- a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch +++ b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch @@ -76,7 +76,7 @@ diff --git a/chrome/browser/media/webrtc/webrtc_logging_controller.cc b/chrome/b diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -102,7 +102,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -99,7 +99,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false); registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls); registry->RegisterBooleanPref(prefs::kWebRTCAllowLegacyTLSProtocols, false); diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 1203aea4..dba70ecc 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -54,15 +54,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/search_provider_logos/BUILD.gn | 2 - .../logo_service_impl.cc | 16 +- components/url_matcher/url_util.cc | 83 ----- - content/public/common/content_features.cc | 12 +- + content/common/features.cc | 4 +- + content/public/common/content_features.cc | 6 +- net/base/url_util.cc | 21 -- services/network/network_context.cc | 2 +- - 50 files changed, 61 insertions(+), 798 deletions(-) + 51 files changed, 60 insertions(+), 797 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1038,10 +1038,6 @@ static_library("browser") { +@@ -1039,10 +1039,6 @@ static_library("browser") { "page_load_metrics/observers/foreground_duration_ukm_observer.h", "page_load_metrics/observers/formfill_page_load_metrics_observer.cc", "page_load_metrics/observers/formfill_page_load_metrics_observer.h", @@ -73,7 +74,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/histogram_suffixes.cc", "page_load_metrics/observers/histogram_suffixes.h", "page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.cc", -@@ -1944,7 +1940,6 @@ static_library("browser") { +@@ -1989,7 +1985,6 @@ static_library("browser") { "//chrome/browser/autofill", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -81,7 +82,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/profiling_host", # TODO(crbug.com/1335199): break this dep when favicon is in its own target -@@ -1968,7 +1963,6 @@ static_library("browser") { +@@ -2013,7 +2008,6 @@ static_library("browser") { public_deps = [ "//base", @@ -89,8 +90,8 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/headless", "//chrome/common", "//chrome/common:buildflags", -@@ -7694,8 +7688,6 @@ static_library("browser") { - "supervised_user/kids_chrome_management/kids_profile_manager.h", +@@ -7789,8 +7783,6 @@ static_library("browser") { + "supervised_user/kids_chrome_management/kids_chrome_management_client_factory.h", "supervised_user/supervised_user_browser_utils.cc", "supervised_user/supervised_user_browser_utils.h", - "supervised_user/supervised_user_google_auth_navigation_throttle.cc", @@ -158,7 +159,7 @@ diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/br diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1119,7 +1119,6 @@ BrowserProcessImpl::component_updater() { +@@ -1121,7 +1121,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -169,7 +170,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2918,7 +2918,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2916,7 +2916,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -177,7 +178,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5104,12 +5103,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5131,12 +5130,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( } #endif @@ -190,7 +191,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch if (auto* throttle_manager = subresource_filter::ContentSubresourceFilterThrottleManager:: FromNavigationHandle(*handle)) { -@@ -5632,7 +5625,8 @@ GetClientDataHeader(int frame_tree_node_id) { +@@ -5662,7 +5655,8 @@ GetClientDataHeader(int frame_tree_node_id) { } #endif @@ -200,7 +201,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) const std::string& client_data_header, #endif -@@ -5671,7 +5665,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -5701,7 +5695,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_listener), #endif std::move(dynamic_params)); @@ -209,7 +210,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -5717,15 +5711,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5747,15 +5741,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -225,7 +226,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -5779,20 +5764,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -5809,20 +5794,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( } #endif @@ -295,7 +296,7 @@ diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/brows diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -821,7 +821,6 @@ static_library("extensions") { +@@ -822,7 +822,6 @@ static_library("extensions") { "//chrome/browser/devtools", "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/favicon", @@ -306,7 +307,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc --- a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc +++ b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc -@@ -115,7 +115,6 @@ constexpr char kOsVersionTag[] = "OS VERSION"; +@@ -119,7 +119,6 @@ constexpr char kOsVersionTag[] = "OS VERSION"; #if BUILDFLAG(IS_WIN) constexpr char kUsbKeyboardDetected[] = "usb_keyboard_detected"; constexpr char kIsEnrolledToDomain[] = "enrolled_to_domain"; @@ -314,7 +315,7 @@ diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log #if BUILDFLAG(GOOGLE_CHROME_BRANDING) constexpr char kUpdateErrorCode[] = "update_error_code"; constexpr char kUpdateHresult[] = "update_hresult"; -@@ -600,10 +599,6 @@ void ChromeInternalLogSource::PopulateEnrolledToDomain( +@@ -622,10 +621,6 @@ void ChromeInternalLogSource::PopulateEnrolledToDomain( void ChromeInternalLogSource::PopulateInstallerBrandCode( SystemLogsResponse* response) { @@ -412,7 +413,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -628,7 +628,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -629,7 +629,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -434,7 +435,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/ } #if BUILDFLAG(IS_ANDROID) -@@ -322,7 +319,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() { +@@ -338,7 +335,7 @@ ChromeMetricsServicesManagerClient::GetMetricsStateManager() { cc::switches::kEnableGpuBenchmarking), }, base::BindRepeating(&PostStoreMetricsClientInfo), @@ -548,7 +549,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -801,7 +801,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -819,7 +819,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); @@ -559,7 +560,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/new_tab_page/modules/recipes/recipes_service.cc b/chrome/browser/new_tab_page/modules/recipes/recipes_service.cc --- a/chrome/browser/new_tab_page/modules/recipes/recipes_service.cc +++ b/chrome/browser/new_tab_page/modules/recipes/recipes_service.cc -@@ -51,9 +51,10 @@ const char* GetExperimentGroupParam() { +@@ -52,9 +52,10 @@ const char* GetExperimentGroupParam() { } GURL GetApiUrl(const std::string& application_locale) { @@ -629,7 +630,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metri diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc --- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc +++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc -@@ -123,8 +123,6 @@ void PageLoadMetricsEmbedder::RegisterEmbedderObservers( +@@ -124,8 +124,6 @@ void PageLoadMetricsEmbedder::RegisterEmbedderObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -666,7 +667,7 @@ diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chro diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -431,7 +431,6 @@ static_library("ui") { +@@ -423,7 +423,6 @@ static_library("ui") { "//chrome/browser/companion/core", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -677,7 +678,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc -@@ -623,11 +623,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -621,11 +621,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { // chrome-untrusted://new-tab-page for other external content and resources. // NOTE: Use caution when overriding content security policies as that cean // lead to subtle security bugs such as https://crbug.com/1251541. @@ -715,7 +716,7 @@ diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/b diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -140,8 +140,6 @@ static_library("common_lib") { +@@ -142,8 +142,6 @@ static_library("common_lib") { "content_restriction.h", "crash_keys.cc", "crash_keys.h", @@ -759,14 +760,14 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -6444,7 +6444,6 @@ test("unit_tests") { +@@ -6503,7 +6503,6 @@ test("unit_tests") { "//chrome/browser/favicon", "//chrome/browser/feature_guide/notifications:unit_tests", "//chrome/browser/first_party_sets", - "//chrome/browser/google:unit_tests", - "//chrome/browser/media/effects:unittests", "//chrome/browser/media/router", "//chrome/browser/media/router:media_router_feature", + "//chrome/browser/media/router:unittests", diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn --- a/components/domain_reliability/BUILD.gn +++ b/components/domain_reliability/BUILD.gn @@ -1338,7 +1339,7 @@ diff --git a/components/google/core/common/google_util.h b/components/google/cor diff --git a/components/page_load_metrics/browser/page_load_metrics_util.cc b/components/page_load_metrics/browser/page_load_metrics_util.cc --- a/components/page_load_metrics/browser/page_load_metrics_util.cc +++ b/components/page_load_metrics/browser/page_load_metrics_util.cc -@@ -282,9 +282,7 @@ bool DidObserveLoadingBehaviorInAnyFrame( +@@ -281,9 +281,7 @@ bool DidObserveLoadingBehaviorInAnyFrame( } bool IsGoogleSearchHostname(const GURL& url) { @@ -1602,19 +1603,24 @@ diff --git a/components/url_matcher/url_util.cc b/components/url_matcher/url_uti return GURL(); } +diff --git a/content/common/features.cc b/content/common/features.cc +--- a/content/common/features.cc ++++ b/content/common/features.cc +@@ -178,8 +178,8 @@ BASE_FEATURE(kExperimentalContentSecurityPolicyFeatures, + // parsing the signin status HTTP headers. + // kFedCmIdpSigninStatusEnabled takes precedence over this feature flag. + BASE_FEATURE(kFedCmIdpSigninStatusMetrics, +- "FedCmIdpSigninStatusMetrics", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ "FedCmIdpSigninStatusMetrics", // disabled ++ base::FEATURE_DISABLED_BY_DEFAULT); // by default + + // If enabled, limits the number of FLEDGE auctions that can be run between page + // load and unload -- any attempt to run more than this number of auctions will diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -462,15 +462,15 @@ BASE_FEATURE(kFedCmSelectiveDisclosure, - // Enables metrics collection for signin status mismatches. Also enables - // parsing the signin status HTTP headers. - // kFedCmIdpSigninStatusEnabled takes precedence over this feature flag. --BASE_FEATURE(kFedCmIdpSigninStatusMetrics, -- "FedCmIdpSigninStatusMetrics", -- base::FEATURE_ENABLED_BY_DEFAULT); -+BASE_FEATURE(kFedCmIdpSigninStatusMetrics, // disabled -+ "FedCmIdpSigninStatusMetrics", // by default -+ base::FEATURE_DISABLED_BY_DEFAULT); // on bromite +@@ -380,9 +380,9 @@ BASE_FEATURE(kFedCmSelectiveDisclosure, // Enables the IDP signin status API for use with FedCM, including avoiding // network requests when not signed in and mismatch handling. @@ -1661,7 +1667,7 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -2783,7 +2783,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2846,7 +2846,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED) diff --git a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch index ece7472d..71fced69 100644 --- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch +++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -97,7 +97,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -94,7 +94,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { false); #endif registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy, @@ -29,7 +29,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -112,7 +112,9 @@ WebRTCIPHandlingPolicy GetWebRTCIPHandlingPolicy(const String& preference) { +@@ -113,7 +113,9 @@ WebRTCIPHandlingPolicy GetWebRTCIPHandlingPolicy(const String& preference) { return kDefaultPublicInterfaceOnly; if (preference == kWebRTCIPHandlingDisableNonProxiedUdp) return kDisableNonProxiedUdp; @@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d } bool IsValidPortRange(uint16_t min_port, uint16_t max_port) { -@@ -782,7 +784,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -799,7 +801,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( break; } diff --git a/build/patches/webview-Hard-no-to-persistent-histograms.patch b/build/patches/webview-Hard-no-to-persistent-histograms.patch index a68d209a..32b96436 100644 --- a/build/patches/webview-Hard-no-to-persistent-histograms.patch +++ b/build/patches/webview-Hard-no-to-persistent-histograms.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/browser/aw_field_trials.cc b/android_webview/browser/aw_field_trials.cc --- a/android_webview/browser/aw_field_trials.cc +++ b/android_webview/browser/aw_field_trials.cc -@@ -49,13 +49,6 @@ class AwFeatureOverrides { +@@ -50,13 +50,6 @@ class AwFeatureOverrides { } // namespace void AwFieldTrials::OnVariationsSetupComplete() {

gwPc~}r1EkwlYXQ}rJMSNzBBL}k?z2D`rVV-wuuaI7M-d?84q^ukvn5=x6M9$Z+ -z1W|2#XHFHds5u?!-Jyr~sLH9F>E&ibiTL+A#VW!s=3Knh(0Vtr$=*sZ)BR!)u0vF< -z5r7ZCc=GZwTkmf)%@8`{h033g%(DsOKpNI;# -z1$J!jn@bt~V<9{hZF!2!nr3bCj@iG+?F`_5k=sv5(KC7&|B%~e|01^$K}F)L`QVFE -z9Cr+v|4nXRg(0@3?4XKSH8uRQAm9l%3QYIFNunhEA-5&}gWT5qhuqfvhuk(pkc;^t -zw{8AKZs)CdQDgst4l}RC(e>X~)m1)-M(WGs3Q>$^^`JxZ!z-VUNxZYgh`>GImrYF* -zAt8m-S4-C@cMn7gdJ@P6!B#D1Iyr4UeO-)uAqrA?l8evhBlRCWZ0X|7-`)Ho)T9|> -z$t$BCB}z=aKlMD+!dwbx69!uEhVxNvQ-t>6Du=*|ndp#DpRHyPF_7Bgd9Lg$S!t?e -z39w?^>vudvV)nNRemSj9@P({5d;K9gf{%6g?<0|5$hLUIg4~l_vB&o3ziiZ}v{A9Q -zRcVLx;eZBI@kejWZ-S3sg(j6o3?uiGWd>WoAy|PFO(d0|W%HdhzO!@PkEXG`=TCCT -zNmkl52$y@QB8xrAYKuAL&|CR{|8gY$IKSlq(z>@a7LFSxgc~t7w314HE_Em?jgoj! -z(A7+lmYWGt8pchbxN}*V5?j96!~#VQZb7O(?E{u^eC19nlHuTJjG=^q3wsHU*wlWr -zgRn$kSjSe4k|m9#nRP~xVti5>C(9D`xNgT51{?Yb0bw>=*t=$`wK`(kL6?cGkq4ye -z%K5CWyz{wa+XV_~WKuzkmoh(TF_8Dv?@qpCWdbfdMkl8UU$m;1+)zYPk)_NeH>h?+ -zVVDI1W$ywbbel5-xII}&{*6hauXeR<(=KaGL$TU^U?I|O9H9(rZJ5-{VFDq(Zcaz? -zuhvx~Y&J4qE-Y&(e$OSn>%u|^)$dGT|2y|5i!~2Tk;_i?$zET6jILY37838-Kn|s3VERQoINIr-`0SQ-*Z7jtlf>U -zzjg3p@C~Bbt|O+Qq-;Q61l$lbP(3z4qks+;{gpfoOj*hsXvgDE0msa5Q=zyzCG63U -z>k8T^9a_2mQ$RnyvGPQG0g%qG2Ys$xf -z^Wi0c*wV^}6$xky*IiLUX>En*-dG**z-V{RR(AbzAWL>HrIb!Z -z^HfWj=WaX|;M{={Gzg9kYJUsH-)rr$OGHY>NR5-bcRLfZx&5p>MbDlH_=7;olgecr -z;-n*W*>|0pT=5b&_cp!$W_7r<1Ze{5VVsN;GpC+*fXnr?NKuu6D1d76_O(Y{I@IY_ -zEqo94dbn_AEBf@n*k%SA@jum9_vD8*4!^E2ub#->zp@Dj4`>Y&t4cDF -zu-BuQG#EHA4wWi<9F)D#0V}$sgFniF+%{ -zBCsQ&REz~79tFb1o&QGYFTP=V# -zc|GYxG&5oZ!Z(KC#4Yqzw4Js*(D@#7g00b--a<=>q?ERL(z<~c2ZFI^aZl1ju~UpH -zMZn2SxI7D%1Elkg_kzPluWwgi3s@i*5SoK&@5hyYel~+nMC1TrSWxS@6HK;NPt0)D -z_?mFa@3DltjWLkb9cTiOjrFVs@}`xir_;NYFIWK_?lB`3({S9pc?j?!?AO@PyD=>? -zP^`c=2-jL#{_gys2m9>TA@tpI_PuS40Mnc+xxpDGg1!aJ -z0?PJ0E2a6q&>UsCC^4JV3JNSP_ArqiCdftyJ}S{r0(7M41k^|Vih^X`#QZt5oUe4v -zK@U@jI$M4f1C63HahFA;9xwmrkCJ8%k=>NwE6+M+B`LJO;zY0`b^xGJ?JuWOq~+O5 -zjtK<+zn@tL_aV(Ot6&oH8XAa6uCw$uCxjm54AdKafNC -zPNY(&$>ZRGERRHFt&HY!xFky$YT7F#b@uq_L)_15E;2vkk;+}MrX+VR9|2y=Y%XF* -z-pA&gGp%^mDD#KcKc2(jcb%`j`x>p0aslbgUcp>oIpz;IPwVEd4)}vnP~y|hDofHG -zGb%fndYrO#t=a?s{EazB0CgW_0#foCx(2)of8QF#nQG -zCaa6UwD{8DKf+}wte$}#bV_=*obJ)&)SY*MjX;eLgq%F0G0J7H*+&MOwy-nwegjif -zV4H6o`|#KDaoHQ4ZJP5kLl$1QHj7a-^1mO-G=tKBjh{p4j-nT2iM_O&E}cgHaF -zAE8bOU~CO*U|a|MiEX%VxF*&VmMg?Ch1&%@f~zgcM_8{wk36QhrQvV!JtkHkWc*gP -zQribh$S~gOwB?=h1IGb*u-gNV6rIynb!wlft4Mtg -zcS$9WbxbrIzRCve-~4NEg%Zu02Yx35?Px1zGFho6+_8fSAy;7!NEe(AyV^cjfdeFU6 -zUQ*DyR^T2ZJe7-d+XhG>_H5Qb`Rv?qFzRACs7rsG7|;i{1~z}}cU8{%paYVra{-Eo -z5s5nkP8s=khFdizWBhHd)qb`#(-3KtWs1l!NF!b4e2rhi2!a4MRh$V#9A9E$hgpubI>-rB -z<8qg3?>Slp51ID*MIqF@XA1N*=`Ul-d?d>fe$)%%$}vvnRiSELQe%$ndJyXQR6WLM -z^b51wTMSNImDqGgDjArC}T^tEVJISy3KNrDkFd0jc-YCxK~3U+?sq^}Q@ -zIv(mTJhN$envPPsBV40!C0>m>8?SxUzZW+)O}K(mk0*bnYv$8dn3E3x$Ri5fre7tK -z1D!$cAkrAS3ppMnJg%8snkrYX3)+`x_5l|HB4${%v_&SbISWW4H|(d})VL`v32M4K -zcAo}2^mj_xf-Kb49u|l@fVR4f*<%t2?)-K_ZZN)WEtH}}`&(c0n*b&&c9+mS+Hp6_ -z%CE3~waG%Tqz%Oo_gbJFLp -zRqGu--mb9tLq%k!edVM+fgqyEFF0QuGf7%-W>~5tuRa8PyyT)BO2#)xS(b^mP}C5T5p0r -z?Zq&Pr^VbPz34&<5`(&oiIqmTrV-7F+Qkgvc$ghqT@DcpNbbMfrk}iMcN4TmOL~+_ -z6FuobMUZzh0P|R{w*>v6hRT@A0~lRyd%Qba0ZRZ*N{|Gw2y45#OIm8L(n<(XDdO!- -ztDE9V -zWT_GtoR&5YB8PvdfPy(Y5W4aEtco?NHuEnS+`1NUFA!>63Gu5jrWeneq*k%xg}K8& -zMVE7vx-vELMXYiA*R60dMP1ZJhs@0pwcLS=6R#P@XGcS#eTq=1-b`381c()7G&beR -zGYOU_VbgLZB@S9HCGC7P`Zo+RfnXdMM1Ci+}Xjyjc%;dj?N?F=;L?>P+V -zAE7Igei15!93L@h?a@D9<;+L%WH(zF8*z^Y$mRL2D~&it!fpmIcQ<1WYvwvRJ?$R_ -zd!7j^V%a^g$cRcZ%zhaXsiHx2zEkX&uRp%Op5NnlPSMqve^oJmusE>bwTt&ThohpG -zu3xi#`gKBG3ED@&!D(R|;nG9c?(ozaYE!GEQz6Nh!CI)*!t=Xs29ffk1qT -zY94+?8ea1t{wJNy$78CN7uf%AI=kzCPiIs7f1@lSO -zH#)mvOm0aS=>K;*+wtOu&W8J+bT;R|>1?$BMrT+4o6cVTZ*=z2k`NR?_WzmAX8Lb* -zHn?NL51l=!^?#$YbMl6M0qQ<|ORx6Ya>f!%0`F8^e8C@$jgDvL`r_P>DH1`V2}%j_ -zes*MZ1}T{MG@6%oG7~uy3ij0=nS~Y_@^L9K^;yy$LMxh{#q#9p7rp&qQ%vAnM)FQZ -zWpA&69lqCi-!FJ+`L!63HY#h5yexR9FY|T;w1NpY9x|TMY&8|2l!6uWi%4UElw+gu -zuu_4~6Yx|#5?C`}nG5)F>)9}x3qX}yN#*GljwE%hpJh{*2V{@pA8>n75guJelanTG -zgg5~@SN7Gw_tPhw)WqQ+JD|r0U#{p9rA(KAT&<~TxzL#SIA6V?>5|YD-n%4yX7K4D -zF;whaMN;Ai+=luAw-*?f_|7U2-%VL3m~HlZ&Z_QndtmqsXRe?zF0C(zrEIEyIsfm$ -zZFS(3-TmPtC{=BVaFN{Hsf -zu@m)Iedp7!4iuyB*q%@mP#xia3MgeOPEWJolDnBI`DpQZ)#PYdQ*CB=G6%8^~X_H8DiS{&Br|>gHYDvGp -zvo&iz%Pi8+9qPf3J@tyGR3FeIbqGE??v0wU?jBHA)xm=AjW=}vtT-&od#M|H)h{1% -zN$nAT)^s~>PZyakT>z2wxdG8?tgr(!-A5Duk00$?SwP6-p`^)zd8Y}mmQJAm)gdR~ -z01!yX8&>la(oN~jArE>3j6KH04ka;56$)rRm~oVsQw%RA#B0{~==3@av`z;;c@}`sB-$rnuqfXmvRx3L -zp((VDm4x&$3#Y!dU&W^WF>XjCWp`T9T)<$@9>Ys9l5C|RYw%<$YF>C@=;0=$%*|@H -zeE1Edo->+{Y=m;%E@32p*wvAfYLVC<4}mAhA2EU0!Gv3Hgu30wxx-IkaAg<=@&uOp -z&GX&PBIQa`MEY$Vsu?&E9DIsCwf_n2v!Ah#qrIYAxS-q=+M1>>1rKq -zKii`$Hd<+fw;ZUu_|j{^H)Cc12vt=${b7&S!S>zDqU{;(MC&1uVuhQis~08fFKrDl -z(ilI2$$~v1sxhHE&Qqo%rxS>k!`mmf*cj*OGqY2Cq|@?M6y398-{iv`QOZ+aCrN%T -zphA_u)>VYoRSOdWgCiI-L-UV{@dR@!JD7zwMxsO6C%B}-2UuUvR=hKh)bH2TUIaL>n-4zRD?ZAl_m -z&jl(-7u|Jc&*BJBefFEtjJ58`q$md=`VNmqrawgZt0kkdv1x$P2(nY|i^RpU)~6Dq -zR=4x@w`vV_Bz{$e+n{a?!sp> -zOwi<3@(vTj?`51e@A~K%@y&(Bfi<_yk(`ez(A!Z`lo#UBs6hdyL$4G^5hhH8_|**%L_zsY3z|D(4ZjuWQ&|Ma%O{_SnA+Z#0)`t$zvyK3D{X|DU1w+;Va -z-ge1fLHb6S;k2`&F=z?S+ObWCJ~2YwWIuCWt)UINh6>-@KWpE -zlw{h$_hc;@H2`Pc+u#uWv=|v?&TuetaLQ3*=Z{=QvIe7kXphS)M^uB!Mi6(KOlih4 -z^5ycB+Kyv|r|%;h;C5W;nLK{}%Sj-=P-UO?H;9{_Efb#^V!j%E4RGd9o;EQq*Vt@T -zIhqjupnCF7e&lM}LM#NjKh@OJj6?Sm>lG%77Bq@7o~cZ?8CRmSK9QdX&ECYPJQaVP -zcNN-l;6j$OM{yqXw-;&DF3JOruJz%OPqX_#K$LW$ABN6Frq$Ou&2R}`W^1M-@KNvH -zsEQQ590_nz{uf*K)SOw{uxmTEJGO1xHafO#b&@M~(qYGT(s9SOZQC|GSCTLH{k+dx -zbI$r!#t#@(qsF;#oZHT8e1D)x<${EbQA*II2(nQ3DN1Bvp(9_VA{Qe7Q-A;Ce!Xl> -zSNO14U7Ux{tiJUSJN~i%yqHXtIxB1zhoje!hYz{}%kM -zDeWR2UWk^z81m=EEOn?@RR8?gium_PA?yb(g1w}BKM`{-?BoYkyG%^N%(D~-Hpz*RtPR}zfE9ND+7w}w#Tu=?d~U+M+# -z{(6Fg`}XB+doH;w*w(FuYrl<{StfQwDb`sfo3{m0FcK$Kqils<9UR(x>Y^z4HsgEG -znPt0Pp(2KU%8K%WyQHwu%TKTehk_8)#{n -z+K6iR!2iB@G1LD<8zOBzZX@^^Yn6@DQAoHR5u7T%`c=&h{th=VF_Z_6jk1;&mMXK- -zlFW7_?)=B=2{|u#wGlO?82ehq(_}*&V_fw&{;p-B+!du~=2)c~H)ItB#BsHlUfvFl -zRYn^s-s>IcQp%Wak=YzSE+*+fZg9Dw(wKPnzK -zxEDwNLiV3R;jx8N$H%4X20!RZ|Cn&gkA_F+OWmG-jCV64Y08V}>269UInh>B`-b4D -zi>W4)Yw}QO4^!y7=@ed)d}TBGpC`xqpXa6IMW0ro%KK5 -zcA+I=xuFn^`u;{q@-~c=7C@AC>aKyhUMAhc7 -zJ`e_iZfFa}S4vBZRB_KPHBYIlKX`K6X3+jYOFk`r*(8Z1NFPkv{IL*SE@EOOFlJPk -z3KFE{!h=SJ>NEZD=VRXev&F(`?y?^!4-B(I4)_}X^WDDj*ONHl2VZ2=BFYv7@b&l= -zHUw?n#)FJS1S1nz8m&(iqoa7SWQa|UdS&2csVE^Aq@w(!X9U9`VlEpGQvCV2v(MLN -zJs^@f6(KQ%<+!KT1Cmn8ez8fe#FaT@kKIXdxn6Hz>N(x@mA=S0w3IkF63XiDwGzy7QIJgZ-T{366Ow{=$}r)76%1kfNW5$b2V?9fRBiD=w+M_l;R3 -z&xQ2Lxy%=FN&WJ+Q7^_XA>c0m^|s;c@@dY@zP#;HZam4|58W?sdtPs>#n9uAbvZrr -zXGO1Ut(Kt83AgfyTvJ)9CPrGde2jOD`TUXa!F;*ToU#z+!k@j1NbbUE^=dhsTbnj -zBvlg&J{)-0rp!2$cBo{ZZhhTP3=!;k-F?Z^3>GPJrCN9iuI@p*f4uFg|9IO$-@`j^ -zrn(1nqb^^>B^oih8+D-ir+OV_q+aGH@~0g;g<;)s;}dd|<`+EASkHq5>hSg_TpXGS -zhA4w62Fs35%Vw>0lDA<@$`gT@cg`f6M8AoVJl&v8Z -zeNvSmY^>5@jkK8>=Y`U&xRrYM#?!tvY3}ZiDy0M?_d{Y9#ls(=HMUf*;+BUn{ez;I -zda&MuTsgbnBxwSDS7+ZX3ww8S{M^&LGWZMO*c3!+X(S`TV7s(QMS{3Lkxs#`P6ZEm -zDKI1g49m(!O>WM*3F=99g{Up-@M&JbSWwiiMC&+z$oFgu^SMc1(;>9ww8trZbFzuVm;p&XN;%lzDdws}&a~Y-^BOr|Xv7bujy%O91hcPr -z6on)u(?m3dC&gH`o!$S%lde6DhtKTA4$;Q$A?2K>u&47x*)5VK6fW6AlmU11%O*e2 -zY>-9F`>*;ON$oeISR)B1fU0y}Ux6F5MNJqSuag6`N?`w%=p}om;~fK(Dk*=G8e*Te -z(%I(=X%HJN;MGI2Zd-(OpWwypHTjs>s%wc_&PWHOF^c10(K&eTk|?+P^KSf4TzazN -z?Ia#3H8w3|`uFsm=`M{6$FefpKdN2$4g83)HK|dQdBHW{c5W)H_!RsJ!r>VGwW11> -z3GQ_5MN5Bv?+fQ}ukKy}&IqvEmNQj8j)>f?Oth+d#1rPuB+0`ep(WY#4y5{M|4|`4Wi2pH -z=BPm2yO=U=c@0>~^<5^qhr~xvdFpL3ojv(WAviuT8Uq$niMVOJAoSqXAGz2%0Wz*L -z8+eIls%6pn^;*4f7}pKnSdvNw$O`OZ6>&K2BV}Xrf)W?EDEzLGnkuzLzvF{Ds($5k -zo}v$PX(Nq08G}UH5y@;y9lPX!>OId|6sa(sRlbyWi(o_$?W0==EA&|7+BsRc#iVcD(L5Fsa-Nlrx3k+;j&13ox@9B_>(!#0(}yZ#_D$4a@Wafvi{HVB{J23zJNM~33=jJ>j*ZPhe|`D)STU5_T4cLaFkWyP5jJVpaUbnjRl!FJyH0B*Van{N3izIkRSByY$!;g0Mzl#B6j -zRa?InpI2ABrq_?TB6Z08k -zQ!011pQp1!?OA@1i?&l*pck_lkMc9yw -zPRJxc|F>cFRO!xX=rgco!Zs4VQQpOv$b<2-Kr6-}d4b=x&U0*4Jmt&V7H5G}%laR0 -z+v&^O&MS-U{ExS-gj-NYIW#gsSiPD8LrvO3vH_DYvFRQoJ>Fev8l@(qZST5b#Yb5H -zjv$_j*KdxDxLRw+$K1ap9-@ACpc@ZAqn2H$W~Rb;lc_1gHY0xH0kwmSxG;uaG_R4k -zRCLDhqalcA-7lVD5_O&$m4p2NLkzAmfGB3>A{smUTf>ZpN&8vh+ql6_fCQ|+(3LTt -zluUx%bU=-2q4LvZRy3ZY;AWr6D0bzCc6IcY+}cd*K>rOT&gu*(+^vc!Lmk)RIyn8z -zT5_zrMNy7}ifja7sJD4XVPB+5P(>!_pQJ9po@x&Ej`l=g-p);u@SOBR{!g%KwQ$5p -zG2zm6XM4aI6$@jIv!;s}Mu||eWSAAnK><^b^<=ZI=_*efIj1nlyoI1r1<>nBWCrk? -ziuu_zn!cKVJmhYuM0QACD&R>x6C>3gP=7~02?tdN2pg7#E(bqpnPNFSiQ}}riZz(? -ztLiD2dzkzEBQL}0*G9|%ceI?Rd@JVwO)yQJI-r846o_e)`S@%4Nv2vaMJ8r-q#2-L%4A%YmYE#f!{-Mr5YU8v_B-p=(jVJ6ocCfQi_%9ebM{x5G^_eHB<<08uI|M9kS -zgEL2s-Cpee^|nn1#H&!tf`L$aey;y`+osU6--!Ez&G=n&s$rh-pA@7B*mH68K*zG8 -z&c;WV)JApDr8(T8%QS&(x;u7^rUUjC#n$g6cz^f5T#P_ef`7ejdHH|6?T(S0CO`a? -z0BA=(sSi#bN)ULtkLv=XDt?t#`;l78LH*;IpN)yldd&llXq2E^?~15Kb`GOR(1|imh-{DXuxv2gc+&(!ZgY~Ya?Fe$<$MKakLjs#b__5w*m -zi_R_TNKNOggn68E)|*O^eiSGMeV>)%1%~v&@+e>&M?CISosi}uavA9AdnUa5z9*za -zly~UHJ(VVgPE96pDVwX>jLuz-zOBL2qY!LGUf>dagn&`-DcK@+NeP=EOPvojrw&rc -zXa+YD5tGP>Ad--45NwxStEppaDw7paBKrog>3tz)I20=0$;v+I6m}1iB}ZGG-_nMP -z3rcD|Ivpvx=b$W^IduN@D}QXyq)wVB|M{y(xtd$)99gG=9O8>Mf6Sqd?*nR*n;2LA -z87Xf0BBUq1u=cUT_Pw>gaU22)g+jm-te+p6?%)CY5GD)Vnbx8%mrUMOa`x)>-v5C~ -zty0B`)sp$T6YGdtTC_8-(U(qsC-PWlVGi|QZyV|V$J?&%gsQ21l1{nV@T1>^t|g8) -z^*P9iuHva}n?QQFt-Ad^mRe;?BesvW?v59Ht3P&!j4zK&OBw@!rjP8u*Z^G;QFs$b -zlN=`IQTFG>ut2`i7%;FXb%%~-ANM(7!yC<_GE~m2K}D79ltzcgNW4|&C+;rj!n;HmSZ^el-{&TmNO0%g(HJ5Yg*aK -zigws>d2NA~a=w2Qz9%{yrd94N(3baSVqYCTMFATg -z`KnATk}85{(DY;`!>Q+gz3q%IZ+n91%iAtK`l2{hWtU0*s8r1C24!<)#vT2gHE#RY -z+a_~r3TbQaFaf0&-(Ttrr9-=^cCRv!XV6n(AkYiaGC(PbD=Id!$Z?lwYZpIX(kIeU -zzD5)(5!*#U8x|M-(v5ItLDR2Jt)qr!xsW0_h=tYsmOb(pm=WEVu?<> -zt-mu*^kO*iPV8Z#J0`}B1s{*Qy3wz&;N4}&k99wSC8<@02YMyge+f-lG$Us&v!R06axEj;xY+p4me#xJh-r2Iv7()G|*h$ -zuhQGD;Vy=VSPye3>Q8ZLE1~GIKuVX7f`iCXQPcfyL{HA$_43p%+8t>6fL*ouO*s#D -zbR?`*hhj$-YR)$Saaju#91hl1ii2|MF9~}t$g*&3)YdG`nLdQRIei$E8Ct#QH_#RZ -z0X-C=_$}eM40m -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 -zS=pV*Kr*Z1Cjis~*FUIp3N`YFhBLS -z$P>icuF;es&S~A%7U^Iv=0;VgkhP~OK12bCXxK1EF?`vi -z@G$V928-7rw~6f_vSD=oqUTVFiw@`56n=xn)lY9n6a{jSKYRzsA^}oG^J93WF -z>yKNCjKpMceIz2*`5A|bR}K%{4Y~ay$Lc#ySx$@!asYn{P`z223G#({>7L|A!$DQS -z-_mEZfWY>@`qr5up))+m^3i3`E=dXj#(P)tVJ9u&rTh(8!!S5|tj!nn{E$=a;H9bE -zS-8 -zcc8L8dFL%Jh&>7-GN{>KxGB$QS8E!5yeKdT^TK4uX^fo2wXw -zan$xL`~J&muzu-2( -z9|9-wEc*}f|AN~V!$v^hAY~(oOxyU$_^IO_y>V|mW)cy+P{01IZX(kizN&87d&TXO@aZyk -z!(q`L1Lc_U=B9wUI}Xeg+xq+ZD#xmJ(ohCYuc1gk6Ev3_4j9pKEwwl -zY6gD?>a`Z1et^4A1O6DKHKhZ%cJL#n`7q{?@*WNBrMyQlpYrd#wqE5wXB!#?iH8$e -z@I#L&&;GiU2V>t$(4T9BiekQNnR>u5@en(0>zY`GY`HfeNRU3W`1vAkKi2}>k8t?e -zELI3PX3Ewgk|h{^pL_e|ZH(Nn4;sIm17%2eNXc=pe%O2yIS4ahHQ+YbK%B1wb+*`2 -zU$JUX!>U!d9i|Hbr`TD_z27C0%xyd0;S#pL_4Q#O<2B-(#;3|#Czdlgu!(E -zwk1CPcUnL`k+g`L)eGTwNqw)M!#DK3=hS43yTa@?+74#medFN}?hNCCLd)@?MU323 -zkja(T;x$mls6EPJS9)v(Va1a-&%ZF%{n?(j^4Sqb3Z#~ufz2nd9)`W{4CJ@*{ae30 -z9 -zMx7r(dl<+$xBE>vzE(7J4CHy2{o9fU$+3}>B*SsqFdYqxFA^AJ;!S`JslWDynn2|` -zhCB8<`-NY!qe)n-(KApbaSA;pO^!Y_zLksSB{Eb%Q?_@5u??De(MhAZ0rQ1=F>39{ -zXsEV440N5L?{>Da&l_sm1F=s}(F~qom0b4kPHx^P?15X^j8GFI64&{vUh91oLTbx$ -z2BpIRTd|-6{pzKpoS_xq$x(RMykIE0WnEx)RbdOipv9#43&mx;-P$Tz){%lZ?#Z-w -zH{dgY#`S{*=Y_efLyW(umNU7y*JUsA7s?6w(7kOjvQK2atAqy!Ly8xhTQ*_ -zYoy2`V-RHU?kbg6w*Q`8Hn3fGu#g{)60Y*SyPKF%3fz1CzUqb9`R}VN0g-N32?5d# -zAJ&5~rWLq0l1SuUW5`!073-YbYk3AZZXTp{JKb*KT=v4jc*GjS^F3eiczB1&gMa%< -z+^<RuX^IL?lxuH&KS&|kc`b_&{FgKtI$RvU6q8$z$@MGIwNuioP -zQ4g4ZD-sWNKu_I#EEGrqn`Bo0Y<~W;1Nor=d1_?M(?cM~gRa~9%Dg7JJ3{tJ<6~?4 -zgK}%e{+;MrVH}2VAt?sL|Ly7W^CR&A%Jz@Ox0~)4)2m|NG7pZWP_g~jJMUsi(8KQr -z#Vc)%sq&7U`2HIV4f$@7)7vy8Q$$RmlsNt2j_^2$WKAim(Mf_QLEAsOBowJwfJeQ` -ztPOFzu%?&BuR-WUqkjDruB}cfq3`b#Q*);p56__``aTobQ2>`GoQqpKY>PF@E`E>iwlu)iy>Jg0YIP1EruZkI!U -ziQBGtaohKXgb-(;x!e}i0%M^&5iJVQg -zqTH8DVN<37XiNu&7cofH27(%g4q>(}2&1LOtQCv=0sDonhTAqoRHJSPcEu -z;m{8E!>(N44wvexJI;;pWqv+tx@=6janduFk4pe%(zXInpuS`mzppvi;|*2cjG7Kj -z7;%1RK?LN^YS8rO45V#;irUu-1Ih@dht_MM$m))MVK3ZeO-aOHkm&#-F}H>p}T+q2meRNUG{IsUX>T&$~3$z1mR2<7W5#jsMA*Y;j -z`DvM=H4VJ=U77$@rOIF}G&D4>jWWj%xE2w7mqp^xhLEyw5!R0zcwd8dhY7DEu#3%5 -z31LLkb?_h)Z#jD9af@v|wrGBt#FN#KXmTy(3aBfpTvi?d#jzS5bz+s8*NRtbSkB-F -zL}rjoh2NUy0Z<=)B))N6aEvHl&Spn^3~$~K^F>1^$)@mo1!=1)F^BZIqqWB`a9jF+ -z!0ljULq_7@4Uw@gaC?I3Kj8Mjzu%&}G-&*2s*q=w#o -zL>qFvlRllHugzmR%s`04IO{l>ldu|3s|!t}F!K|fRT8rlY;s2&GcAJt18fqcg~=wU -z7;tVpWd*l+DK7CqUFe|ewixBmX;QFeUroP)cCU)so?gxmA@6|XWMF~BEz`{!+NwW= -z@k$*AH$g!AD}u$ToFX_%drN`#?4`2}tlbJXUgey_Ik;iA8^}j;9qdNY&>3__Y2(4ZgeXnW5C1*Gb_{XV5|1UYKo-ihF_bq`o+9hRq_ -zAXbE%O+$_-mKb^Iu)_pbcUH6d+_G5=BSr~+xDG_(q~S>-;sry<&-Zz~D^@uFonkkr -zK7i_+!2UbtPpm)?xbEq{D?mj0{iV9vs_DzM796Dd!&w+-Ng*;$EXZ5^k-ux|S5z^Y -zbD5L{dtS)LNlNk^k|VE%;}mkx9)3EgSR~=31Xa_Z{1WO<9We^FJVeH0ucXH{l89h; -z2#2VuG+=JRuN!D`X3wcsa3$Hbv(8bv#dz$c@Fcn#(L3gwI_u|YO{t5ru(FI>mbe%F -zP8;Z!c!P$pv1xNovwfTP@XAr7WFdLyhk?}%w{+L_?yMUQCrsMvnx<1R8WwVZDc^?$ -z>nrczrTxy@Xmo!WO{%S-DY@mU+EE~=KEc^o6&=EoO)XwLgU;LSooL!v%7}YWD_BaZ -zp@}Df5&W{YnGO@^ccEVuAP!QFtcIC|MeIX}gi}P#OGjlPl2JhqIyQzGo2MPz)y$&Y -zu=zP!fAjhNxih^I@fnAO-z%XIovV#+Af^C5?T$9@!2=-|N%r{vRBfN(u|5hBOkdSm1osbf2eq}D{dC@#CTjnMn -z>-}BHM0n7j7GwROmEQh3PO)$()(By3%-G%;VUIBNg}ddK{fD9qEts=&tg#PFZQa%FL=uS9IW*uaY$ -zFhl;f{<_BQT5qv~)d366Y;l7(iU?Lj8a_re&abB>!{*>{YYmlpNp=lj2i4{2h)VEb -zod!=Mc;-oM=RUn2_($4Srf6Fr##9IiY73xJS~XTj&{@|0mQt~QeVG5yuNj;CC2h~e -zf=9tMKb85lh%H+s(}wfF2n`Kd`Eo$9zfK!e)(M(l$&XB`l4{K`tbTtO?>EgV(DUu-D6y8;XigX-DUHrB{=vgl?GZD)Xu&wtn2eWy^hoF^XAeu -zg>%RVt$PFNj-t18n;AJ92$MWxU@Tl_M>}bM%&H%gGxz$IiBMt)X?HCG1<@?708UaW -z@p?r5I!J*bIHD~mZK$*Dsn1+`E3v2S?Sdf~h%;UU3w-rzGTr%1gQfzWS!^frF5$UA -zZp!fNOq2)$_VBkyynqnS$0Jeq*If$~?g`*MlRJ0hLjsI7*Qo0y`obTFr^(g600sV0 -zk)ShGU)p8gTIZcJ2r6y!N -zP7+SL8%!@ct -z`e31jcM(*@3sbAq$cDOYU7vVb!-REIX}^*n(oF=)Q1gD*6I*^*ql2x=|*vW;fxXCM_ITDv%{tyXxvB7#^mSCC6qmIGRy4s5f#EHh4bIewmG_BZ(H@+a* -zO04|+lD3nr%lT{LID@{VZD6;i1Pt{5NZY4h()Kt`kCioFPiuNUK -zyEzAm_cW7FLQzoV%6>`P=WDDMUB?T@aIjOP*5Awjk+w0+pB2;#h9<4V6}-efh4y6! -z36D%-(TsdQfb{IOD$ZF0NrAE356pP4j&5_&N7Q4t#EJzF7-4XF`@PaTnAOR)-}`G& -zaNUD+bwL1nb7IM9$2-e;{Q{lIVpvvYh$C*6_Yn)pd3Cwj9NKpAo~l>ULZB2Yl)8D` -zlOXaq17;^)?2g)wR#J=Uh*S4qul8?sIdkic*kOO<7UG;Nw>_0jII^GW;OMy8#oC1F -zndRL_6~Lc3B5bqfYn(+hyMYD=WV9vA!KXEM=L@@yy -z#6$&4K>rU)D^Uk<^a|ZASHrz}cDRzd))Zv^+WMFDju&tFC_BTsJV0%_V(~`CFFDOi -z_tkYvevt0aK8j!o0i1)eOi_p0@|8`^7CEoCw8?e4;t*#SOZQMI6dr^YvnAiAJ -z0#=5&F_clLeKE>2etwD)GRUbFILsA}8)E$>WEB@4w*KACOs(sBT*A|6|Ath007l`- -z7c1;h6h6*bRDlYUYfzg&(1qXQ1M+Evmy}8l8>v~>TStYtiFUtsWGZslD9Tg9;To&F -zmJ2p(Q5w#UIu`kL(7@SYX%StqKQc=3a%M?HYnHas3~js`&{{Gj76?GfC5Ql$Wm8$B -zBF%8Let?4UrUYFck-RQtM!&U_^^(tnu{G#tcFBm!Bq5m=`l?5hFr!|@PXMK9@NCAQ -z?oG8CA4x>o;Jgo2NgGc_qR!1Px<8&d-MA`tgXukGw9T~bG0c?)DZH61h`#NCN#fBCe4nvb$IVRhie#=>ze$qUR4p -z_zeqq!3_R=bPrBAIyFPvyc&q=#QI=0`POySNJE`Do6z~!+j>xsNnRAK6f2qC;86uz -z_RPX)nD|)Z5!73m$XB%LYZd(~VtPA6v#T$p0FMd-oNK?qZVP-3iyt4I^1}OyMaIJB -zj3vUQ-1lifstH%cL;gcvAmQ)0_HU)-@xm@zOWE-qMS4lm_s*XTw^gX0C!7~LEu>X@ -zI`Nc*Z?(Y=3CU+6hb42UOyF628BFR0t(l*9bX4to4UmRHIyiG@6lFALuA33TV+(0tQcd?%$K)$&Y&EE -z-8fSc)|ThcR_HU-Vj2PIOC-DDQQ}wXlU=*zR@ur+mn9*T69R5kn;@825IN5@x?xHi_OWe7 -zfyFwUK%uKYx<=xH5cNsc2ERCEPAe>UE{g{?)Tj%cYWQPyB+=iTQR>sU{lUs<3HDf$ -zB`Q429YZ}H=!^|E%@J3lIO)VB3vRVY%T;5f!4Q@71Xk7oQPox%gW-BHu{k*Y;@EIR -z51w92e(k)Z{%KCWwSL}pK9}5QkC$ZoVSm2`sEbhqMS^2N4$r0sY8d@ -zU2`%0l%(~$auV)5!#|(OQ1C<*2MdWZ?wTXr5c_3<{pWoEs-I!VKBhuxDLZfPk{737 -z-Od}H6AdpjbHt3To;VI~R8v;Vl|thWI?R0&;sOJ)BT|ckxLF$`YwIPmL2V&fG~m -zVjyyINLD+);Uf&s^flN1Z~)$aWlVcw8tbHv=*D%zpCexAI%OM6&l&T><${2;*X0B= -z40+?wJ;>F@il(`R^nbt%+v90Zf#enXV;cXut>lC@JeEy}%IRP;g0UNY9-E)dtT&?A -zm*q2dm?i*tkgf$wgLOgvi85! -zwp*)n$nOR?rs(K@_)0@`5quW16}Mm^mQ -zzuM$!9S(VC;F`u2{W79gQ9bU6v;U>G1vyVXM}H)*f2r-@|4`eEx<4ZmN?uH3l%<(x -zCnOI|Mk|{PzDJM%az(ohO*{Z6!g5^^qp1b5_2hZL1E(>#oF5h%3N$uNaE^uZ1vDwc -zsM&7$qThDt4K9EZTU14Z2__PWkqIsq28_o^>Fu3HWqJvID0-57^nLn7AMg#Wf}{%L -zHUw8ARw+@f`o7nM3mLXroHUr6Dgx9n7VsPkgtMA7EeIxkp{lSVa9LUn$b}s{S8?SE -zfQ&^Vh^t_1<8l+Ly(`y&3zIue(bfU8<4Ts7d%d>;pc=;cFah(>nHPXXPm45}7`QZ$ -z1m6D2&dX&lNgdzk-J7Z`i6x0&_N<3%QJ4lC?LfD~-d%-n2*cp!)f -zxFSVji<|g!aWR1{35E49XinS`Kc(4u8(eLaX(yOpI%9k2AK_FQc8{7@a1szP -z<_%96`e=3v3?)cZ7|Z8ZN{WDKUP*rNSQw4nPW*wJ#X(J3nAS1;T$k4+Xi4O*Q2Ke5 -z_PYTL+lfnhE;2vXw)S4uKi0OX!qNYBgf$p -zV~;_~vy@enE~(#x3;gCZ1M*o@)$f*Vh_p`omRS8xbj3DT@o`(YO8z9U3UXc;Yx_hv -zbn+6UEOZFGNuD#yu*hkp(9NyuAVdYO9Az>)QWjfiA@=&Y4h7;Z`c>*vu2Y1wA -z5rU0CYl}gML4ocXzDfsBccUxnRLx2Um7ElMWZc4y#()f#={mN=3<4J_Hgr0DSZ%l^ -zI6z}w?!N=OYMN#n0l84nRGrhV%(;H7ZLoi=?FhuAA8UIm^}ns{FzZ;iiYaVV+wHNFnZ=1;T&R)p)DTxPL;bL?T2`D}&-|~o9f>ax@MCRnpqdOZFR+ed -z5AF^jPrd~PG&n1XvL4sBF^{DRz@d&H;dHhf2DyXw<8Ppxsg(+jGO7Wha_`TS%y9}y -z1DrLN)K?3`ZMhLhF;&9r7LG3`LjWmK_iKFB1TI$d^{p!Nd_~lx^FyK0O -z@4OihcZD0ZpyK%|sTC-Zo#bZuI=~g)jyp`Va_b>4=w`(LP -z&N2)g^owiob!+qS@CKUksrYdbw6Kt7r%Im1LI#Db{=CV;E3*#`x4wu*Gj`}P+4X#u -zPrYMX;W-u(H38^;+N8z+kDaC&B}~@rR^P(|>>mi5LbLi;z{a<;frNaEg69dcp_Wwu -z?1BM+;|SJC?;0$E0zyx8y+CuE_3b|nY%qYg3{L=YYE;6ew(v!!4Zv9g|5)28m46Tv -z|I6C8|JT|!drl7iKh`#8wbMV=_F%fv>N{WdQ8zdokRit=jH1K8)^<2Flzm?C-RM8o -zwvhOLtZn-LZEfSg^dfATU!gqwSldtkZEc%L{>R$h5E3=`v9|Y+>Yp%+Tid}gaJI#K -z>@k4gDF*hh53cqlR`FZB_5U(Th^bv(sa|f64?K)NAAk8unNl+<2r^vu_k%Be!0?il} -zXjq^GwcGc1R2~M){G|tvt!vzjckrqD3o_is+y+3_Rp)XAFZMS@0rVj;5^-vM+xA6eZnu@o`tm@TlvZo3+zUdvQ-*m1kR4^e_o}-n@zp1C(D-`1l;@izJ86$~I*57H6F+v}XO)&X -zCe!MiDY{DOQn|K0T{c?^5LJTen-U@apNuSlAliX7C8p4ROzHUeCYVTr4t@5hxZ#h} -zQl>$iw1j!>&F9%b8yC3>0+otm^vGz6_7T$x$G*QKhGOPmW|d5*n2UnT2YrJo8uq=7 -z%c_ox+FTd|77BY4a`^@B$osAFPgo$X`mAo)A;?Ecn#ko1Is-v-00@H&NF!jz1z=8j -zS*g}-va#hIixsp@6c_hxfT1B^-7mr7`reDz_07n$QUr&{XP5A`Bzk;_)YnjY;BR-( -z(sH%e8sMu+byfVuA@{)bZFBmrU6Z*IoS}vJfaXIMhi+g5bhNI;x*B` -zke>9pXXkf76{ua5xIP7Cz-W4&bwU`Z5 -zbD+L~A~v-mOi9%)`@gMixs(kPZVn?^YfZ3`Ah63*Op4SqcUXnGyF2h(fl^(DOjDFJ -z?43KwpkuJV?Z)vB%}+Ysv78A@)n`6JDp89;k)r29b>hgqRS}o%(gGV6!4 -zuu?E!u&gi;{lN^Kve6A7%xmg|vjZgvmaCGvv;CC7e9RJJO -zzQ|bTY+^nti2kl^gH@CltIru -z5o!}=H$pKxR@`mUn!!9*>IK+TdAYE~C#-sZc~5PYB&D;?73=N@TxLV~?c@D;dM|)( -z2iwB1rnKy;=NT2j=Q}4TXBV0ynFb@i@@Vuc#3x#8CDAJ9#&d5!*ed}?-iRT#_ZQ>xQF?HS@#1xzn@8~U>6RODRx@r2=hS{TwC -zbwlQ{$YGgVr5O$LB+Z9ixSS6-X&Y(R9V;HFh6@niQUPqKcbCNb-_}}#O;{lPl8`o -zw+ez2?(4kPr&UN-d_KQtjprdwE&B7xV*~tYCk9sp3uL&3*s;e_!|Dwo#PD=Z?Pn+V -zKX57H9*g&!B4$m7YU6}`tnn<*Fyj6!M6>7aDB){!i$4!GxPdw5#`(cJBOGDCTIE9n -z04X=1onbfm_FH`K_l3)gMgQ;IM){(F|f5sUKaKH?BS7VN=ZdA!zThAfB2pBAX? -zu+N7zxfH6PyVaO1hTxkid_q31DUiCUz%n5&eg@7lT;xqyCbOAf_GqQNy+TGcH>?>L -zSGPyj+?el)0s3GdGG$5A+4=zIVJxeOci<|Z1LfXh -zB}aE|#ymR_k`g_%=NL-cldE`5oR`(GyTa6?*k(h`$7O3iwRiY()d#RMyRuXLZ;VPz -zl?hDSr^PI)xyl5K#NNDNBg`5-)Q&BY6y$oL3>T5q5QN;;%!A6HF=oFyDS0*DGTe(kl+$Bds)BlRS{ -z1pW(p5dqoo;T4g>_p{fGIBI4B8wcfAn>}B^vZYOB-~M#(UntiZ_PrpHrLCzk>e6V7 -zlRX#XZwy~nlA^FQ#&q&TnSAS{*fV=bAkOsDkO*i56bs9xHYxt>A@t;(@h1NL>R|Gi -zg!)Ak0IV2V8<|!YlHw!VAL6b{rs_L$pBy(bY%q>s%ooB={B;sh5wj}N7>wc9KKG>Y -z5Jj4yw~H!}H}$jes=y3k3x>)zD893?81Ket$s_#5n;gLWeqSHj50n{7DDy2BH3$Ib -zFN0EK88r#`jL#@U>TMQ{+$I}B?B;n$6qb9UC+rp0=_;_2mRVZQUXSFoz}6kiM4Z*j -zh6|VsEz{IhwlZ~$v=hDz`E_ge934GW)aid49q(V`X=lBr%9Tf -zx4Xd_&}x2FVuJR9-SNCJ6i8EyB0IIND80-veRqWwnp~ma<+jpN%Ia1y_=E(9p;8p%6dS2gYp41V^q!>#)C1Pk#o<4K4 -zC@pBS88!@EDv<3m^AOF<9^fHn9lWF*ePLdib;`~~LWjvKqs!p)WJDGQY}7^tgqr0!&n~BNRE9O -z?3wheZvaJybJsknoLz(}hbX<`l1TYi+Urtj(EW04(yh``N6{LgT4VH=B*K8-It(|e -z%Ua^)>^wREHqK){JZ&C6kAA7<)k&L>Hu|01Ps9m}J>mhc!1|c8{A$ -zGnf;kWsLitjuqdA4>O#cLBU^u%gk_-#tGuyQzZ5FS6>y`B3Wh``zheA5w9HBTv#J- -ze82OUxT`+*#)AAntV`&9rX-B6(Ka-5JLygscOkP?M%z~Ti1{KKMP{ao+zXV(r)`(Z0sj&n&dMPFZO$slXF5V4v{I*xubE-D6^JH2{%ut3 -zUAC_9ux?V|Fg8v`b{MEDE}+%QaG{jV*-lDnP(awl+cr|0_*(J -zK16Pm#k^5^+@eDdH4^zZEbztYms2-vHBIy)-lH#LEkIOIZ70>J_8QeC+*@xKAiZ!7 -z3+|fhLsEbdpx@`jI{>$xISa%12-;2TfVOKNBoAA8cl^axep)z7e3@w|v@#LNW6Kfe -zu$kJnu&JV~b)>=5$Q%5iKbxg#0cj+6GZQ#zmSxm}JQA|M6obioC5#Q`&(4}*9Z=qR -z1Ubz|o3(Mqs2~dm=ZH97!TxhJUjizy&WM#;YB_*U4r!0oymllfZ>?CR_abjt-S>Ce -zdXLNS-u>~kJa?l&-mbP@6(2}PHM_>{eZ2fRx@uoEe_YjUY__mjvXb=f^v=a7+{}Yj -zR14Tg6ytcb6T -z6?TUxR4>asz>np95g~GWzyPCVA>Lc=1mqOgL=8v?K36NHIq{H*t}*w892yAmBHN!b -z^+k_t;Lt&fh-zel#*3brsPud^Bddd7M(|%3JUbt36;EitJRDFRrr=O*Y`H>>KW{uw -z<58qa44eaHXEb8Pfx0&*kdJ{eoxCT4(4G|1ak=F`1%_zFxDV#y&J-*liQieM_Tz7F -z8kpITRfrHmEwC!6lE@{S#i!FJ8L#fKO9H$?1|3bUjeNPxlqWPK6NRzSpAlafHS5Th -z74cMWb|la?HB{DYVe{?U)mNIgnA@|mX0JHO@GbVx<|lZJm#FMJ3VtJDE&CI%@;Y&U -z6Qt>PyCZPr_1G4rFdgvKhLOB74~G-ztb%;}@yrvL>ZAqSm;S?}HK3q|M%CP(AJmzn -zjRAUv61lZgN4zB5xjacBm3c}4A+vYGhR)t!uJyEBPQbrx|3cCgxFa$-c$GbXgPKY6 -zW$?tuw3$v)|0k0s!zA5aKLYxth#JH_pF6#E?Hf&5X`41IhehK!%Q=Ok3~$2>ex%7W -z7JIena1e;Y@c@kzN-chi>yyHTh?4}&v3SQ(7S@z<#-%1v>N#ZhFYW6dR?zd`P&tUy -zV9ThB@szmr-qIKvR!r8<_U3?9N^f@KFVS9N5Ju=MPB|L@QA=>746GPb}A -zB)s(y6~K%F{kaIjuDqJRv0408=UkSt$@%OS;*eF%=eU)zV^LS&6)*mBzId?E1t4`2 -z*R8hT`^1`Nq1UA&Y6A$wQP5ilvd!4mVSkxPdfta&<+&kg0y -zeW)S9YL044$CPL)=N5qYrh$doNN -z9H(!b+pVdno3+J2iSv*dOlBhK*v65_<4S^;Q2#EMDeRi7-CJPWpb*jKrDJM-YIZjY*%F{fhq=wAE_X3{JF4@ -zG}C@ULspYm+BYt0bjHk%)tKspxmm6DklsYgn -zT_ylT|Aoh_bFvQ5tJMOE-=zLsg|1iOLKV_dVW+2`{_$$-MsaOxz^+( -z7e-Ws#id)7rw&&Oj6h@1GOkT&TiSg38KKcj8@gcp)z(s@NG@P=BAG-LB~+c_`u=Vy -z@FdVEzx1f(8Xha_RZwy9$hZv? -zZU@(27MT4HDPg_XN9QMt9k9jhB;KDYmRC0G?S4kF>8l1~>nr@R`_1ay^y7Y!03x6P -zaTvjG5W1!v&6#%{_l9Z@l%4SVzqSE6u#j -z<2Ou}u@%7H9k~O3amQ9x$=4uhnMX=#n8Q0$O{FNde5Z&UzObY+U8U++XF$PDd|TEa -z(WJm*b0H;p&0UdNfZCMDT@A2Ou%(9=`*TZ(U!}<~GhhlUS;Svqw+-IgWp@{(A{d8` -z<=}k7ETO|wXf--zn63JMU+8d2YhqwFv>^shnVrNogV8JUz5-ExFNxAFSn3A3-$%s2 -zfcN`5xXtwmq7^0FELG4Li7E^|EVU{2naUuIB3}s2PTMi!(m*CGTWxMf#cU8zEE>>v -zFx%gj7;^I|D%lL$Ri^aTxZP;YA%3wqUEFK2D+pzSIUkUpvK;2LO|JGkUm+RAE#0?LS$_Mx4j9|4%YFZsiI -z0A_G=fU=rQ62Va8SuHA=vo+2$^TYT)eKphhOjIG4XvcSZgQtFSN&v}EuMHx9!j*s1X4zC -zq2U7imYoXmBPS~TD}hp?Pnr)e#&V`h_h8@(c(eg@F`J4w=1LtYouhUL$J4cl4B^E< -zUxjn#c^VE2@j1SzE)W->X~gP?IJqQ9r8N|U(W~Y8fizj`g33EJ%?iAeN14%40fi9o -zCMrR(OTQfjy2ABip!B-36E55oCfvjLG<**^A=au{$B@#{1u6|;JzO^OoZp9!ue(1S -zFN{n{mA&u9{Gmdn49HZ9U+Sw--?6Evv?`RD!5QU)_Rov{K)&pp17PbU!H7f3lgtPHmH<{cE;%Ilmu;u&nXmZ}hu%#or|y{V|J8#>;!>fF&%E6S)ddvtMw<5w3NW4(Jf-TJ&4{a1p#%q -zXI&WyxA4>OwItF|y*bK$#nIyQ4*8ZAjEpS -zDevFfBjhENft^W}pp0WFmfuA$Qyutk0twupH)&ITrC^XM>KS< -zE6+TS{l-)Y6)|zE+=X}NdV?x@E7ax_G!N00E2XpXOld-5p7Pcpo&u!{oLeB}z -zp&tJs0f;ub86*)rm7}mcF^p60$ePZCj{}KAg$}b6LU}}4v=>V;cn^YF9~E5N{J;eh -zMokU218nDPb>T)|KWX0d0_*x3fiQcZv}PsT!0cBAsp;ud+l7a50{3x8bGNC5>jxC% -zH{`Wm27|ZgIgBG1nt99-S+s>IYhWoZLnQ%a)&zyJwgRJJ4Q+F|eOfS>i60cc;LnY_ -z--SPb1jVMx>W1H>%HZfv-1zN;Q3_zdVY_whTx@gj38`fMx@r+t*GKh64Lxq%J(^UJ -z`L6&2P5)mZR(I>3G;qkw|ESSn!i~Dj_(>=lOONW=KJ~XoB5w4=5P1PpLl%?`*LL?Vom+Sy!V?_`mB_IDO)a2^>eL~xWCCOIXK2eR11BumV*z!J|^wAL|q(eJ+t -z38}0MqbDwQGi)LNhy!u^Vh~O@bXLO$KD@Y!Ig$$(*&f;{W(z# -z*BIia%EBOPX~RU2J{>2gJB&cg8N`8rf|G|Ni4ntJqtNGeS&8QWac;w19V+qtwZDhy -zM#`;h@TO#89F8VL_Xd==421EL2j{o -zhHA6zMdb%>Xjlvu`?NRUO&X=9RfrQVwDk6y)FPkCi;Akd@PwV4^+BT5a>p4;r*3Je -ze@@!QQHLPqEPL8e{@ep6mXpf|SAs-G8x|OXjRmY<7AE`-SRh1Gh*11fGLdltX*-%5 -zgc>RsmK{%jgw=k$ighyIbOz2Peeni}J{OU(#<|QV%?GcJl@nuii-rIS%AD8Kwfk(t -zp;WzJ*`>0jdn!3(rs8sm2bDP1aub{_(=zH%aWtNnw71#4EhLU~Y_cjX%>f{g#DxN* -zJGHGwnAGAyvL&5HEKL4+C&`M0S!`kfD}?LBuIGqd?V2^3)s=u1kc~%Ti23+6(tg@t -z+j&9oKE0PUZ{lxhUzRnmN{?uOvXWbm=OBMQ=+qHY=!U6k#*+N%4E{3jCOph(xY~pS -z@xGyuL@>Yth}cuZ<9-bYkNZ03UGpd-pt?GfKRT$DN#vM~a42g6%M7OVd>Eht_Ca$F -zd0pdQsSVERHY82o!o(!HQB}h>RdY^*#Lt5Ox15-Ijl6<<@8-G+n7G9Az1(=rcq3_2 -z?q9en)sd@?MeN4x_x$xf>%Jhv-R>J;mUr0YxvnF5c4gf2<-e2g6;0La7kQ_&5~M)N_;bxuj_Gh -z2yQ=&)5(NK3nF~MXEkAwDW5OnBel}cu!8%o-bZ?%+uJn;_bIGOBHn-MHuNzP7Je@H -zk`bf}C!FC0kIN$0cnhtmY;GUCrJ%Z(Lo>zu7(_44vtWUEJ0FN(pe9K2TJKQIiFy0Y&9X1KfX^!E}T3#Xq?U$c>VqIRnM=nk7QDS -z2k}l)JZ)7b@dPx)M~bidjT|*~!Zq|o61PjQ}VY8KuEo%Mgt})oopfK3V2;gY@16P6KMdt=S -z0Y{_53_t1?_f&?L1)BSKd&c$jVcF$6Ym7im5#8^dtTrn!T-5<_aO%jooh(92B#pAO -zrsbWQb+qgJD67{DIO3uj8u7m;6JV0Ai3LF@{nX$IcWuLO`4m5x<3Hd%Wq}Emt## -zo@ZUa#UndVj8pc-{YPxsR~=Cgd>apRm${1(nSE8eWSFW!b>x4&m|WtB^gHOk&f<2J -zFUpX2kS^3t$q<5|m4T2mW-76S2f03)%I83zOdf7UM(|r(aycv6K1Gy=GKV~5@Ol)& -z7TCU}rg$b9aO^wO?@BDHuS3$qyI -z<;TIl?M~pN?0!V^`#jpS*Y2jR(*s*mUL`ORX3RgRq!>LPp(=>WXFTlRiT14P9h7** -zDIJzP*V@VpIn504Sf#qGvJ(9aaTm=;M;{Jwq -zOs~%+6-RMCCx(hoPXZEpA<3zZ24S$C-!l<4x3i1&GRC{>Yw=`=%J9l4b(TwB)7b%= -zf8n#fA^g5mVVO{vRa=lTSU?~FL4Em*TK|4_X{HPQ-r$zY-DPzd$={@gkx3U6bjXM| -zfnEf#5bZMk^T5iAD$x@Di`W3tPS~-84Vt3&IepV7e!_7$Qo6R{6aYT&7S!%9?(B43 -zDaItn7+?+`k{et`O!f2N2u_5jDJ|PEjXW}iaIVXoJ@M4NlstQuwe4GH_uz41u8J=Z -zSiLsPWfAcijzVfCW)EfvB`u93``X4En5rA7l}{g;cg-eGe=*?Ko-OqBgx7&9nlT}1 -z)`w*~5hKs9B_X(?{EQ_IshD2|pDs5q40{pa -z1IO4dTAW5_0;o4J-luZn`zgglIvrgh87(f;V|#s*TtIlO+!^LFGF?;b!)va!BKVP!T0ATmn(fQW1QPiPyxWh9MB|)Wii5kNGszKBIZ(a%lB{w$Rid_#_$PBN`K! -zIErBu@4`w_S86U_EpS2vC|Z~?;_^;_NPr5LhVy7XiS22FvqON91rQ%he0(M&>aV5yc-=5mu2=eIKOWcJCZ9SuV)Ffhc -zD5EKXeU2(MLlKTx8>DTSV4H(=K?sT!ZQODmePW4yUKRpG_Dfzv!$Is~_%G({o>p2a -z`Fv@#3X%3Uf~KerH?LUKw)V6Fh3PnU`A0~yQk}4i>hYDm3~0TBR2C}tvV4kFVC`Y( -zJy;HSq4;NVo9?2u)dZ3aHbj#3J+mGSey#D -z%ImP{c4LB+7hYJ}07;6*Ol3&0y?>KVb}GH`T~V`k`o-M`UwY4K)Hx(2wJ+TDhSBB! -z0P#w72nDTjOW0XCLFZx>#5umz;$%I)Iak(zF$kW60cw=4_z0}&Pbsw#LqL*;6x!E3 -z-=+qOx+^Gi+dONfx|BUjFOP{?9CSy!LHkpx7wYjx|52xd6PD9$SZ{{TiKh((X{;iG -zm&_uV^6R3#=8uB@{%Wkg!S8bY -zbhUcKZx)bRx>Gy7yCmJFclmmHv%}}~esBFY3gOuMxkKj0c3U^>ZDDxAGY47~bEzC>aEPPYH`?T7z#=1r!zfJ_mN=hucSK -zw}Zr+f{|l-^)k1KyPh0JSbN?3H^}7W8)o7kHvk7^?(Lr4KyNBZ3P`cmgEdFux0JyeoV! -zrQr*Xk?&k-9vuQN;g4agCT1GGrqUT42&Ex*1*eow)7#uh-1JKPKyA|FbL!f7Ak%1= -zW6-btvj|*9s|))b2JC@&%SYd!L#H_s-@SQoy7%qp6F85x1gJFS0H-QrFLzgT -zi<%xML+!cw&iCE(u@y?0(94f21Ag)TI`I5Z+`1nBy3hjEmytxw#jfz(IoPdJ&l6Yc -zNHw2=D(P?4bR&)9LLU)&@Z_3jOwCoq$mKm`BXs5xp+uv%*nAn0z2Ee3`Sc^{2G$@H -zLU>}~*=3~SE>y6Ml2^_I$pB;KZ}LfDR!R?U-|b0ap>%tv1auUtcg?Ocjc2_QPlAV9 -zlMsSwUIhC7_PFjcV)BmW3~-e#*IodoyguiO&cwxJlLe6H9P*zl*E__@J!wJzg_9Q> -z5M6PtHBv25&#iaFMWIpD9EFPLX?Pi}N21dD3zSZ3p;rhnk3@*?iJUdDo9tE4lj9F* -zaQ}!ANfjNN?7GjPfrIWqeNBXQ$BApys2X8Haj{D~X+)6qEDs>tLxDk~HTW^MJ|zsZ -zrqxM@6Z~u-LoN`8nTKiU^Nc~i!tRDF&a<*?Ea^?w{aVR#)Z5@Zl -z0DAqTx!!sO(;ANGEW}MB_Jgh6kp1v15}qOe*%F!8<@9WnJCgu;Vtp#9SoS@t_~z3yj=M1ktv@X!tJM -z@ZbpVI+*}7;vMnc1Wj$RM9*?cQ8Wp*Hh15*+?Zlb980Dj*wU+6QNh*C^XlUi+xnIR -zTpu=zC3V2m*@h3`<^eMGL56_yNAW4G7LF`?!PYV_Yq^LwnUyt=NysJ9ED7*n@O9b8 -z@J($H`-Hj;a}yYHK+Jrwzt0yAs+1eK{e`kR?K4om0GmMVm^f>~xz%Dy%OK#*@21AH -zrSE_pT6oy3tkb+dJN#cI5Zz$@B=zvOuHj?@^ca>Mil1x6JyUGl?AMjS*lvZM{^Sh#>4)bm7tz0;hnjH1&H%Fp&Trdp{sneWY0 -zWPZKyT>1|>s03n@P`pk*KYlcm;Mv*zrpV3#G*UiaFHv28{M2H|JN@>Zz%OVL3AHtD -zbbWD+8-G2c@_s+qU4N_|9AtC)dd8@D5{bmb7d0T=N27=OweSvhbvPS?Z;(>aY`&Xw -z4g~{KtfM`1{Sl>2p_R*9+JyT8bGzLI(u`dC@Q-G1M_k(2^<EyijOeuv4SqEIJU~NV3dZXlC7OjeghC3{D8xqMup|7EPH$jrf-nBC+JK;) -z&TF$G%ie^E_5Fr&(uHL{njW|QZfk}=?|gWAa%X$+@{Vfz4iURwNkD+-WTf~Fugc2 -zyZ}vpx80TtNP!PJKd3Se$JsXooJoYi0W_;MYa?1&^ -zJ7uuwq}7<@4POpT59d9)?vkD4wg+pKyVb1+b8;us+e8!0%?YK+x)}ZS&(;vwvw1+-Z9(T_P@b<|ZQt+aoki7tMe+)|>isM9NkK`32@S -zg{47Ym-900ioUqq{S0sK3g0PySzjEKN@yD=N9%m>e1g~JOv_Bi>HU4*R}*YOrDs&c -zlO(&0ShLbYw?ST>WiDcC(v+F*j!wy^ad}YK|0!-GrT;5#%fOTM|A^aeKjJppe~H`O -z|F5{6{g1e<@sGG|{2y_9@LzE|;z!(mcMY!jlavpcL(cn;xE=c>D!PF?2{QSQxV>hN -zkM!T-w&_3Ow*NokwmBar!aw5n(~r1Kb@U%`J66x7So+>8??>DQNp}%)t&?PagfrKs -z(WP9;m;VvB(|*KlIR&B~DF0STK`wiSvKR -zbi3G+bYr1cx=23IS$7&lJWOO~WHdKJ5lu7FakAZc2u~@EBMBf6`;_VI+W_0Rw!jxb -zK=2V@E*9ug7cb{4T1N#g4I6{vcddl&9Bw19Ba}4XzxAJ4y}1cV@&upRz+Jj8v)_^{qn@s=98(L{1aPJ{A6l(C -z)1xcGOzAqI?HLgL`Gd3ecH -zK;_0N>jl}%!LLTP%AiQR0&by3L5(;#gNN2B+XA#0KwgUj~2 -z*(yN_N&LwKQc)>1CJ8`5z0_?3I^-ofEn}N6jmmwSM<49Nh~EQyIc6D~>kB-tl3>T4`vbB*HoZU_=Q&X;(Qf=&dXgKud?{!$HuGHFU7gXm#kLJ^=ZA11 -z&Vya-iE&2xVC2J<3$UDJAa<$B2l;>-Vy^q{ -zyh^2hNu%K|kxU74iG;xg;a-J}y!FjCI618Sd#)sD2p}vr&p&AH1KXCi7E|k+KxFat -zQcxM(?Wgq&zNhhZgH^0~@p2N&hwF3`E7cmIhLxbE7y*i| -zx1lT@&77V$(0gWDp#-2oombeqAn7)f;lAmJqm}BXJ_A9eu -zQ<8===<7x!9+*Q)dN=azb5h>K$io-6Ei893aS(b2WMc~AsXD8h4o%7c`}6ZEDL2z( -z5CgY)-eDf)XgllK+E;S-gPs`z{Z@aFnq<761sNbrmix;eQHNB4xoab@m&TaR@BYV9 -zFSW!y;-TiXf*JI#rm(}qO7B5r6Dp8xrJNfkjW)gRalwG1ulYD%wB`xChf%J~bxxo7|(6<7(sdy>o3K -zoX9T*y*<7(-R3C$SiM!n)nrsvOzJqkTkyF=yK#3_ayBV`q3=(&!Io3&X7mX-7CT%X -z?eZNTm*hJ_LSD%8)$bm}S537j{riq(-#`o1z(9_dpEsQUm$(i8zr=0r|0Qk{{wr=v -z{D|9y|BBnI_F=|9;`Yk_5Vw>5KgDe?Jx8r<+{)Zze)$!&?Nq-%i|2=6e`Mp?mVLUG -zr>MZ11Q&v)tu$O>_4qy7^=a~-W7PpnIy4elbq^XF=Ur*j{4u*O2o&8u>NJlQdA(;$ -z;27rVhCoD4IdTFfakN-@rZ>*nV$y?S4pm$sg{S@=ZS(u({6EayQ;;aomL}-5ZQHh; -zdD6CR+qP}nwr$&a(zbCDbE>MlU>gt$@j(Oj&dqwQ{*Z*xN*j7lJVPU*)+oGyr -zHifh$FtmXJ^TOb_cd|BCmVr<#85Rhm#l%-sPC~x@;&1gu-QJGQv*6||bbu2G{AR!b -z6V?=qYX{kI+pBkr1iVz>heHf;_91n-Ij3UpnEPCc>-0x`as8l9YnrVV3ep~CdHt*T -zXMG84d6xNsa{NQEFqs~0$ZGFOf^HHU&bt)m%5y#|8e1%pwVdOFy$&PlAiMpSS -zt`1I!ciLQ7aZsN?So!uxMD0QmDrmDA^=d7W-wu&VaAFB_geSjkO#)s{d;a+M)*L0} -z@LLiLPtPJ3se8jd@DiZSRVMKF;4gd4c3&z~}nA -zhAx+@QG0&)_dusr>Z2{ -z_+iJ?lvzjms@S1&{0B1y^MWArgv>sbhD2c~_mgS~R*a#vOV5qm0f@k(%M5HO*++g4 -zdj&qc!|O)jggK$Fy%aRJI7zkuW9B@QZ -zd~sm__)G1+MEJg3grSAqQviYq*?Ng{CPy;1^*)m6(f -zDs>F?Qsh#c{KlMhAJF%#dxjdqd+k{bZ00ipzPViEc5$=RY&Xu4Gz2s#UMhXaqf$3O -z6u7mYkTuxjs&=WnBiP~yF6@%??6>X-bYGmoGS`b8Go=@RfL@tqvU!Jzfia{OSEz(` -zkL?&)hG|J_KKlS8H|?Yy*1tM -zf-l<)IW?Z~))7-_(1K!9-uZ7e)sGoLO#J2kV{|hePM(ki9XWfw3fOt1Z1=#^haVA- -z9|J&gpkwtW4{jP_)E(@sG-A)5ts5VXQfN%>=Q9jz2UAGcQ~QRZmn01Hi$6T#E|(-3-dQOyKFWT_6zzs^<`tQ -zkn{do+-Cgm;wvcGk@@JE-?ztH9`1)AgMDgGgoV|3io{!mNc1EHBXLEm*xpp;<9owQRRqFF -zn~xRb3rz}50Pq0x10KDLLC@8~mpMVZ$%Yz;;I-gz;ST1md?tQZvP{1^v|qCGb1^7B -zJnPtqwZ`t~B#b<=21mVk51k1aHYNjG=0Dp)k?F+C>^}1E_pyt}LG)Z( -zU_y!59(#Lc_1+zNSjn)sn@%_IS{5j>BvwUhDXzVI4{#)&vqKNNuX`kq@Q;c&Z$GS% -z2~NO{oJikycVM5M0vpcoP%|i6kk#pDAHlDShfDU?@|z9w!|=JO4cY~mzx(r|DeByB -zUC1fh-zJtwthepf9O@O>pIrV-I%2{UeAV{lDD -zRC_SMe7SLZ94t5u9`Zsn)yKD%P)b6_UKWZ;V>dzu_YI|nJCRs*R`x-*WW6RLMX8dZ -z(`{_)3x`Uo1>j&41x|Ru#-&iO$&iRSE*SbwGb2A3v&cdq8JvP;?@N{U4smwiKqKjm -zJsUY%OIrRnC+86@OUkFyYX$Ty3)oyUU5s$pAidODq##$)KM3;7r1#e8l`_;dR+a&)YZrA;z -zxc&QI#ck1l7PtHVP27h1AL4fKUvc~V-xs%~{z2TX{3~uh{S~)S!V>h -zI*8!EirW(Zv$!2L1=4bm=QeX7e{ZEdZ35y}F61*CH=uXr-n$d=X&VqP-IsFc{c`UJ -zFB+o%f*3H_+f1iO*#IS;?{*39@TrNZABlI=2nP>v-}{qWsjWfQ@g{s&L;!oHA#Xe9 -z2PB6iKB0U+wTkJ14`GR)o!D}F<;ioc>btZ(rHk%|m~vC|+0*wW(_66h!T&oe6;ZmJ -z5*zUQ<$CMqQECypdPGyE|K}jCBkiT&VnrQ2Hs*BdG6e^;Sji*B@N!j`spr}8)1gg1 -zY>|}DuPm9vuN$S(7zV$W)|e%FT{Dta@iQOVm-z#YGiUfN3tV_&p6{YKx+UxwTG5;2 -z4{Y5m=#a+WKTEVB-kNfb?MycSM7k30?~!&7e -z$DvsOa(yMClpeJu3t**5I+vucNx-x}TAl*;EB6@nY!#rWsTXosiwlI}*4piO -zznpYRpu5q~cA^PpTr3b=dZcB}?o7_d`+#NpLMD%kc3Ei`Ryt}$7w_={Zldm)e8z$b -zjqYLwgGKd3!Ob+j)+hEh;DxPCq|h-D*%`%A?&SB%xM*dQw1$}_vosz{j@@`aOn&`F -z5=04xPJ}7bs4*vS%AnaZj=T7#BLp@Ef~vW7!xn+y!EPJGWubH9bN4R6Hi9bCmJNWQ*1(3LDuVRvlUs-#ElvF)$B>A%moat87W3Xws|E -z)zpGK2JH7cT9Ak!GsR|+3Ln8!CPJSlo;e2+(UY%cB;!(~EDbDAL` -z02%h}!BJ`D&iH|@EljL1elH1(Z&8X)8X){K9u`(Yg>nU!sE1z@Ik>stpPi#!W;?7| -zLT~QyHv9#X&_*)ACk7jNToi&hRi04@lX^C5&XA;Z8-P%N?nE(}M6x*{T3?E?FO(yd -zPa#=?4oK_GSUZYx`coenw4!bwk#|Ypf~~qqj1HtAc~)X@>SyNw9*1ucFd*rJ7V~UE -z77-i@a`(1hA+MpN(xJyi>T&MgS^nSC(%Q%t3T@@IkhM`Wbcr0Y{CcD&dBV1b`0W)G -ze52KV?oU~1TQq_drA1sLB{anoK`+@2qNqc7I5_6zf~$L!dw&y2l^_%(65SMFthYZQAbh_m+6Aciq8^1fF8ohYRQv|8Ht=RS2n$-^ -zI!qL^tk#->E}1;kQ6>(D`(gRKJN)4s!D+kPrkRJ-RZu+dOX3g5t-^#9gfOp^kAxl@ -zVjnU4v9Sk)an{VcgjVNCzonHvGpi7CgUm#&TuqLnaogOD+eP|Vy+logtF3XpSp=Ek -zATTwup;&^HH1vrY-=LL&_j=2rQXgu`@yG8i6=jv$T!61b; -z>-Z`!vjSJIx2*OD=_byUA}(48jGhH$wAxe_Q5PF(idY+)aq#;|A|QEfEE4S%F$u4p -zxA$8*uPzoOHe1^}^*+=9lG4&PYWbU%<(OUvrvt5l_lB=TphnkiReHT(!4e8)+&`{u -zUvnmYJ^#_0ysrq@x%E>RTqjCXaOiSvCGQ98#3g2-Z*X1k7+`ps0Gm4@DZPw-7m~i| -z&mxwc?%!sxT*n~M&qR~Ga?^}iax1-eB;`Ic8J$=A29CIZ*zWxUefy43FzDtY)Aa0% -z`bx -zqeB*bE<#8hQab;>l7v&m>$0F9_RNXe(D|F95@UGnX7(4vlhLgwC<%~!NP6R5H^9cD -z{WyWi-|7n^^rE&2q`YdYJ;)5!Q%_7#;q^DXH1yBh4=sH>!`06(Rqb=?NwTqv{s;NE%Ofk9?8cveC#`bqO7ATLGbS&eGKgWvL27Kh;x%(8M2BY?$ -zANSZ4ckrY5RAszJjD7-43YF_95*57|7M$)Ux~9%!zT7pzkzz;XVyL8G%AaM5O)|Mt -zi!Zhtv$i6HZiBOKO`+2VXbxS2z6rTAI!>d~{Yf%lBi}MVZO=Tzs#I+R-WSBHh&|))`)Lc<#?rc+^5F(fE93&=iV4#I?95ATm -z&GrN@LkbU%@U|T>pG;otTkj$d^YK9%SV+HvtLSc&VBjO~Hwy&|?Cu|d!N?dNFB3ul -ze7|LE@MD}QR= -z@~S@yUsr3QU~9llbcq8qteqX}pmd#gI3cC&@h#&eM&)wtSo`9FGq~}$6;Mdl#`02y -z2@FCJ=z?uUo^Fo6V9{HRxMphq_D_JFb-}-8uap<FOog%oqGK53};Cy>9 -z#=?cE)e6MJ-4@P2+1kGdXem*tUOY**;3$GD`rJ(I`lgO7HI5aXl)WxhQD0Z6`I+X3 -zx3L)btzsnQX4CCEmqs7aLrKW}#!q8}*|0@&DxJ>qQ~yHt3X3#Tc!XwL?iK(-_J)nW -z*OxzVObn1GGy+ogGV)hXLyn$IK}iV+20dGl7JO>-G`(9( -zhA6m7$s^d~mt4CE1if3JJ=04u%;b~DVR+mehWn#OV9wiS%TF3qY{wa1;_W0>{hn<~ -zHd$2g*2S;|wWSEYcdLkkfhRQwtb$9GpDl07k74$j*-{cb+IPW~=#hvUMmqr_e6<-m -zIRr`ev=U8&5|iXeuh7R`Y%rO3oi3b0Aj}e2s8m+TvZf;&|CDkm9GZ$0mhu*MtSVuUeDD<{~W?Y+$(v6Q?vK~=SN4Ra4r -z*H6Dl%mVwgieKXxS#y3%{!#})Hm847Yje*zEdqGet|j0GkSWTU27OQ#!DO8+521N$ -z7ZebwdH4I0nGfCu6IX5PKJ6Vgvp|uyaiYa{*EhRo&bWV0N7?8t7JS!d&XMe3B~Pop -zxNK~ja|iH+4v_+j@?;uMWe?fbSLxU?8F!6K5tR_6{ehU_FQdWDU)gJz^7oVl^f{!0 -zhc+^gMRha);`WQilzV32jwnC!q$OiHBl0ZhCOvkU>^8n@XlxUdYd<~A2a*A4p45F+ -zf3J^mu*@fr|DbYa#rz53(M&BBIW87U>!W+(4G#B@T~hQjkZ(Pim2s-vdcl>Q0M)#4 -z#R<3)hex*+S1Ur`>(M9X_U80|1^6Cdqo9{SLaH+kGLfU{Bt2=F84H}W3UQUTI>9Mu -z<_9gDk%hNlN=9Bl>16IVvJYwAnjWBeJTN37wN03>g|ga-Xs8|&@C3l+<3@NF -z!pXOC1O)+crUBiW5q_#+M}Kt_i+F*f`y|Nd=V`DfOf~%||v28qLGF -z9)i`k{S;KCl{1-+6ygX+EWqI6A6io4dRg+l{T~3_2o)0lF~Du{KLgz47%42esEYpp -za0mXE0q&1~0=W4Tpr$pd{;L2tRmgt_xXFTRfK~ni+?M|aa0map0C)Dk0Ng151K^hX -zXMj8B{{Y~2_}>BCc>gu^bh-IA1;xeI_?t0gC -zrCX)p-e*M!?Sz0!J0%Dv8cfbTmwuSWg?)C1MNFv;*I)b^fWDEWB1ChZv%@b|k;e%e -zj?dzO4JGkXyBgtA5A~NKZ;~1k!B~`5UV<%-M70Xfa{oxLI~q%eO>_M9C|()~<&tYH -z%5&ocNhEX?6S0+LcvQ7x#$c>jOms0WU)g^Sa8o1x7XWVY{}AAw|6c)anSTbj$^I9B -z`|B^jE%849?%{t2;7$NT1|skgE$oo1 -zGZlM}Mzn?Zj>VKB>g{2)VI>hJQ4e@|Y~cJ4gJ -zIqzU(gl9O$qTCoeMz};CQ=j>%zK}l9#N2wtyyQftHLo7~(~54E7Fyr1ze~GwP(m{- -zVwP8|1-ku~BqlQ-99q~z`K(7`yhiJ`I&oTav=+~SfDX9bTROjpac`G{a;Ge{{Q=J$ -zeCxQJUuN_wlIJ~PR%#C_$@J|`l-zR-+zFCR5#-P|lz2zgPpai$jD -zosc|qX^m_W_#Qz#h&7#VRFOceNXs<^jMjFr_LJ8EPpszPN?s^v2$0w`fkh_HCy?Y! -z!&aNsivhclPuOsBOkpJhCfKhC3`}q_FyPz{N!0a`oX~9tGN;O6Gfy)x=fX=L#ISOkx -z0A#FT!5jsXn-|*{o!vQ(oame}inewb-Ph8>oNIkme>Jeqhw*5~PCS6jx|+nv1VClM -zL~stb2Hx0is}v}IeU3Uhw-Xj2qW)-W_r|FOkZl>|vgBT|msi-WJw^=gSP-Tqf9wKuM&a`T5x}u^>oc -z5DkjNc2|+tk`e+t5=!et5MpZJ-^C0FNOfpd$M|tln@Ugo(N$pIV)<9%U5{d{ykcjn -zRolX8)k~{GP#o_U-G~-O(m?p8knGr{zKW~!Ryew-Q%w#P;W$EcPZs$u@e@6{0NJUj#GCA>2 -z4qp(-v*~aOiZUi^hQPdT25F7+3d2dtewJIszn-xKQciv5o -z!gpqyiRB3Q-WL>6#ow-qJ3vza>J0In5WvAzV0J|pG_3FP+{w&l!z(S)$armzDP5pK -zIa0eU&23;R`;un6V~@b+_ow|h>C5rjh- -zL&oZEKL~aQ?!((cJyS2|AEj6MN9H(CD4*jLkODk!Ep4bmS`3T9nnl@O#f#*362#(g -z0E60tN*`$g#S}%w+4s<;a#HF?(@=J4R2p)hdvxCPi@nDFx}fU$ET$DCnd_ZN7s)S{ -zpOuO*DnF7%_(^0}qsimofh>>oV7-Xrin=CC7|ym|K -zl~?35%P&hDo>e+I9v4Vh*!;BOiBBT3*Me5HN*dRz=4 -zB&_*OHP2!xlT22B&UEpa!Iz55P*}YUJLHt~YBAfZ!Kt(80vmxEALuZBLSvZAUekmE -zHfwHY;Q0Zj5X`pNwDIY$>Em)RKHt3HWr}RHZS5bUVCerioN3CZ4jaFK&=W;3$P#;P -zx4?lN>hF%>Z!eu?!Vi**ZLtg0p==j|QwV>#% -zrm|xjeO-CVYnW>aS&Va{-p~y$R3E~Q#SQ8MYXay`RxnH2Wo(V?)74Pb -zWt$Ou^2|&^@+CM<5ijh@+j_9pc_Y2pA;ol&#~fO(c`=;7zJ8k}5l<#;n#sL{^cH** -zCK$@Cy!$H1F0B5C9kW58g7%Y9G7W{)Rbp^;UTQi$KSy!#A -zHT;-F@XVc*d}K07TXSvu@zb+9S&T~z -zclXS`+ts?oxJxgB-7Joim4*?6WtD*l0CxCiiRvz{EF1l#zE+K -zlnN-Avs0u8zu!viShYiN!{EmKl)Icr^IC{col%=&+ajf&ogmB=AuOtzcg&NuK_FtC -zE3jpaiz)J=IzD1w_FumTEyTCFL-c1ix{s;3A -z)}Z%}1ho@$5V?p8H|{2LLw}wx)8j2Z -ze{425?I|XBb;7)`9GxcQkTFHd+9STzLd>pM6N^nw*~bHf}G*{gbIoG$AM0{&;uFn%zr=U0?viZNsgm6$7Y -z>UGfP+Cf2J`hBa{`l1f$w$BGy(Zt`>YbjJ%4hI-eD?O?qNVLE;*p@As9^PyOA)2Ri -zalbHY?44U4?^0&u6sc$`+6X`FW1VMtnGx?-1*RR}Kp9`VYwS&w#VyPcAN~*LykNQ! -zOLYhx0EGO4X1URLz@5zZbfihhB$4NSq#S8tLP@380f*w#A>kNkCc?>1bFS5&Tp13J -zPkkuIk(fW`ELzw?9v*9|Sb}dha0PiZR)9LL!V3)exE1(&IB5?d@)25~mja4MrA?5R1n=}@K28CbFyO~R$J3iFCju3cF`}%9 -zC>KcC*Bg#16!<;G+vXS6!#J+FAk>4D+5nZ1HOxwgI- -zmawU^cBV3(y_Ee@%U5AsB8ZTST46HpBWd?*!OB}l7Mv=t3YgsOXJ4~Jg?OF;`2JKl -z|M^lT(Ml)fY<|Nn3v2{90YrJJ+vi^->p+;Jnhh@@nia)KGujDQ%XvJMkAG!ui~{>e%LI=#n^f;S(#Fpq|7v#Jb>CH9GfUWhD53o8=PD43PkGNHlg?;)mcoI4`f``5A^o8?W9ZQd+0vpeBX|G=VQ7r -z=#d5zKZ3wT-EjXbxQOaV!TZ@OMr;)`f$f9JtF8V|0GYDZil0E5k6)ylOuIhNujTD2 -z(Q4AD3se0U6CaG9mf}J%G^RB21ev_+L|AhNNTANNQxFJf1e6P_Wj3k)tiiM--EpRV -z1Dc?+XoPx26o0H}+M5~Hmtx{0yKho%D`pz|b6*^HGHfu;Ak3G74t$N`k>RsS(rAp~ -z*WPy|@nA*Tp|^`lkhcwU@hZS{VN1qJHmE*xv1lKrD9I!ICEM%(e!tJRjx!~eGKx}% -z4Ff`e)%&OvX%+)we#09|k$UGPOSj4P5ZieHQu*cKsChf}4W=rr#AS}Qo7W3DO|W%$ -zGZ9DKx{-2befvB$?VWUEBhB -z3&wXU2PHkedhdsPLVF_yXK4E6sIu;$^x63V6yi@vWn6DC&oa7O<3S1KTeLB#AmaCA -zmyFu|2G?7xLCxk*EoP`d*dvc81JN}3MDi2IhO)a7lW!k*F+qo}&=7MeUzMlV!e{xc -z1W5h1Os+CN;KP=E^4^UDt!}G*sX}GqW*BTOV#4&MCJM+c7J?EKKjEWAIS5BAC=gxvE0o>=4 -zWysEacbmt*G6OTiKr~{5!p}NBa}_h;2=I1qjR4)*SQ4mINi-3k-Q)5J6N)v7r_1jh -zuvI&eL$`y}SV@tMN=pAl;{WzKVI+D1v(qN4g~eh(v!7V0Hc8ys56em}m?ru2fQ#y(Pgur^6rLTA$|k80Fv&9>J{tV12I~-p3s9YY$L(#Zhbx^`JA}E%A(CsU7edn2QP3g~_>k2zlN% -z(NE6XWz0~yB -z#{7c7>T3o_j>p9>x?e3TEX5;|fc{MdUMNf;PJCFvOgV1UCwGQ$z#%ou!$}N1u$C3{ -z^J3zFhc1K0v!prr?N -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 -zU`j;1$qF#k8uAf;Z^Qvi)Lw6H;*Hz^Ov~1 -zzMqGwhPaFr+4~u6Kne^h&oMs-_*t)bxvizVrU~6XuCLB_p -z1c5Nrp?V?BnFJT=uHw~(ibH{1j*a~r?+aXv&Q&%6{N)FNj9IOG%&di}bsK6cMV%)^ -zT!q8{+Bv)$STKl;isD-g(g{{cObY>ia+|>4d%{YNO>j)N1_3utD!dx7x*9D -z`@=h(j;(taSu0l -zU$+{!7l%CK)Y|2o#a@w2?rq9YGllZ^*TFo6V{$c;W$|k=64{h1UCA5X{&;#-eeZ2G -zTGv@qH?p9@_YgAgMtXUhzcQk;WZZ-Y=pGvuN#F^=yrNbcB&=*J6lm9r>nUD%u~icM -zO)Y1tjEID~)8fkCe||=tyqV4wFlT+;hJC9t{pyd4vpKow6+*NjOF#G2)O;V1dC6Fy -zY~B;;9k)d+kE}aIF2E?X=I@UTe#BSdZF?b9JP)Mk+pC<|p)4~Sc$5<)f|RVYkCK9{ -z?ayWcI3*L;dXk^}>t%y9_cJF=N-1B;5kDATD1EQ79yUI1iAurim8`*L0F1Fr6JDHv -zrsc+a_S^Y4)|6A~vr0n}7oTvG9jDHxs-*^4YW9xFc35k!|_b~`&J@qiG%Ig#M6jgX~-F)83r&g -zRuI8ir+@^4hjIpfAcjHlEyduA=tB~53h{leMktRki^g6RChu^-@QaE|dkB^KfZEnH3SPii_A-Tylp3j+izK8U|$3s_@9b!>FRyEYq!6V}HqA?0UgfO2|%Q|cq^ew4u*}g7CcJ*hC0X-cq+e5}wk(pqi -zfjXEns9)1o%3ded!hX}Um=loje=k%miV~_4eM0Mq9|-{~?!1#-Q8a>}VneJcnMuOY -zgNl|w9UOs8KaVim6A~p|KRX`5ZB;o*T36ohl5`1hMf=nRI9J!UDT`ScbA)gGM>w87sy4q4=t$9`|lLiDBoki#ly -zAR8H*!mn9NfuJC6BiIIupWJkc79Z~}F^*IeSGRInH{&8N0D=`x#q2kRg<7k(;-(u| -z5e-s#JkXAVo>j~)P&QJazs*z?W117Wa|7RnfmxcsEm}}ZSSdcE@n{ZY+whyGpM+Z^ -zhhqgkL=u9k_Q#2uzx;}xh14|XZqRvN_%fll?=KAQ!+)*MDJm9kHS1TaP@wqZIy(}> -zo@Z;&U<{-BL$mhlmel4<`@q0GDcbrBAmpvQ0c|7e;u;Xm{91C1i&;^wjpA7(PH2+p -zx5EA~#lXspzq+Izp97^F%pJ{%fV{oCB!LCVhrB4@TE$T4Fk$}Ebvqm1a}oynTsw6~ -z0n}2SB(ZQag5v`EUh~OTO~VzA4iYwjzXfw%naVfM9|H5cq1Ecl -z|NK_E=blGmX0>ldKRu?_=-wnc7JzA7&7+ZkR@qQexF;Ry-KZ!Kn^XZNS2{~WOVwYavCc< -zf>l~+HS*q-3nf&O`O4KShxzYEa(eN*Vo}$XHeY$Tml)tFUXY3DW?|f1^1`4 -z2rhFDrWU|N_Sf^V@nyv~EmU!4C-5@$cLuFJTN>j5Thn5*?_}tA`^~wpzKB@2p(qw6 -zGO`d6NIn^TV_6M;80p@?)@(wbOe|#oVB${~g*vsIvMn}Kbp%PktbP_BjQ=J<-!o4_ -zjm*matj9`9{{wMKva>`h(o&1i1f3{ -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 -z1Wg|K7X!3@Jde+tncKhNvaw_E}4LrC3y?IWj -zh-3LVdvKqMmATy?V%JWC8I@hN+oUgM?_xCLkH%f2cdmn)H$FxUyqg=7Z4r18%3DRu -zuWH|!Lq`K(OI$v+e=Lm4J>$~{ed@ioJ7RmM?5lPZ`D0!M<8SY`n#4ip+5GP_6Zs#M -z$fY5?<@8l-uEWF&A)UAWe)}`m9_m9*B26iS{GTfC)@~n98sFmvi?grZrP5a&ekdBA -zxoUpyMLV-?Pc!HwykxF@1b`ZBv(umot^|U5f~p1fs=#iOtitw;Fi~loYtrDA+oto) -z!iUg%c$`|R5PQg+KWpyxn{~(iqyI`h9vZAE -zqC~&kmT6X_>eIJi&VIL@aIELVX{;>2E)oeSfI9SWT>a+Vgob;tLVMk`&R0(6V*O*K -zjy~V@nD&#_aqY=$uQ}`OkOv7_pYq7xs>jnQq(dxCi8Wa1qgQVMx5I^@d=0{e!n;7Z -zTS$&+K)xXRY`8n8>)!J!z8GQ3naW0Hu|z41f5Hz+EOXWJ{ln7OR`TVnm9eRMUSbDx&g)0RN -zJJa#K>xXsQ_CpR8lm#tUlp|9HC@5Smd0>9$^!6Q0>w^FGT5ImZ!-1@8F1*8mnZm4% -z5Ii=Q-R-LmRTC!SsNs-f!tg~;Hbpeq2go@bx!6I6Jk)q?6K3jXPHOi?X?l-E@T4c@ -zUBKSQ#>E%nquG_AB{L`<0OZS4oU(yAurx0P9SEP>_9gc_Y4Pm0(trzjdC3w@BQO&& -zeceyl{`4`zgFlTTl??N^I2cS!?k%LykBV44#QS1<3nDc(>YQATesXgATO*iQF~< -z&j+u4S+FiuawoRe)enpO2A#^m`GF9;mJDtd_G}pciQHLg4#sc+ec*Oz#E-QJmHBPQ -zwygSE1X!}ZhrhUub0;8(k*@89xgix>!6b2Ivs}TeqBQ8c?WNG#4xW8_+^t6<>a-ca1_^Oc7(-}_|6$E%) -zR&-Yf(V!D*7-!fmk9@Ka@Vs;w-J^}3=+*`FcIacY>vw@8edQNelrP7xwJ%yJ*HhyW -zet25hUk_`%tsvm5-2QJX{-48R>so|GgZ*Zx -zQ86&7{`jZ!lhr&Rpia!s8Izjd82F11?sLztS6g3yN?}{ET=@1+#T!FP>Bl`AASBs%HIHPYw&9En{|N0v68mj=;oo0JXDQj?{T72)ZGa(14Sl7a0A7 -zUUp2Wj`#kWAVxh}$zHZc&1EU>a+v{E0=A?|Ek9+`Du`_`b_4%JZu5|8QFf)2r7_IGLd)RL*AG30>e}Eq -z)@(zR@KW-dDQ98)eWI_-boy`Sg;U>uBKN>C3}MUNfE9a~)s^G(|1WYc9%4)U6S<$; -zO$vPp$ESp~##5n1zHmp(^mb~*sL!$jz(gYIAZ4^eYW$G+Kb>^<8>-T1gVN?OLc2@p -zdHkIP+5S+*jmm}m?Q)Y&^V(sSHh -zGyX$%7muFn%o=TrWO9Cqg=N{VcQ7~Kmgf8Oy#$JX`jQtldSi}g7hM0Y68G&;Ca62y -zH~kw!tMB)IlRq!_E;RT)W;RW-B~lz|Yf(sts(zTRI*+wD$6}DDlPh^k&6R`25rRXV -zIZ04cemG}MF?Yf~&TrKsa0s%W?LGI(IX=;T-A}q6J1r>vl!InJh4FiQJ^E~ep*ibN -z`iQDw~zu=un2s*Ps?j`{nz0Yr4w}jk?|0B6)r{*+B-X7y2H!OrMOsXak&55-R -zThdjd*7S&ZiYQSEI$RtnH%M_teTFYR?cE$9lhtRN7KQ4}R*kTqM84>L61dLODc`hD -zT$^@7@Vcy)(jfecH~+DlF$591fBJ`dbie7~>ZA^vbm*y5z57jzst%DdqESugrZiq# -zIQ^(t(frTk?ucGI={gvTl(XSZEW3BTow|4MQQ?)S>Pkyw?ujF%rUP{ocHFY%C;NXU -zH-WU@zAYzc+#I;V<}FcS8aR#kSJdRFm5$8C;9I8{xXv9Z%6+7&#RFr;)n{D=3=(;i -zdC3v<{>=yq^f3LEo6tHbJrMHYwD$R~Ak!!7w?D5)aH4u~Xpe|^{H5(**n{Qv -zXNr_6ZegB$Gb|Q!PSS(n$*j+~#P%+Bu`NCilzQflbjrlUw*i^`FUYKOv6=8Xk3+gs|Y$&f#V05s&(F#LOOt -zo)>bKCwOT}Kt4{)@|g^2xz6qge5z<=s9?7%%p$Fg4g|D4J=on!1yLtzQgH->c#YrD -zMCc@7H~jg;{Qa_DMn4uU+ku6#FO6;OS)!T{L+9ZBSag2jCxFVI*2=fMaGHZ=pi#xG -zCN~8lQCHq^w=xbHE$0>Lue;x{|7R9tK3KewoM0n4Q>Ep20p2JJ5icr0Y7ts@kNUUZ -zB!B%@RY|sw*^=`}-FT~?0|sYjl0N=N+A3yc;lzS?GmyZT7%h#qGUXOS6C{=8c#Q#X -z3c03s=I{dxaq0HK??Pdp_o6-9?nDk+jQ$r$C?93Mat4Q#FC2f^>IgjL;8D&>kHQ6v -z|IBP?LKanJ-Ltt&n~EcqBT}Yv$IG|-+9#;N`ythnpRsHJkiu& -z%Uv5)0x#bvN#=sM4k4C)Nn2=qRErz|(zfs_1YI*{6R2@R-}n2B-8YvFm~?5;DJZ<+ -zD)$Ily@yB@$VS``D)A1}X}<<6kQoL@wesUT+GX4IRGauwf}Q_RZo{xc)0clJx2RfY -z^Z%jTje*LJtvx&cQ0}zq!~GDxu@Bwxh@9Gv_`+4VUT;cRa#svmgKaT!eowm!5m21S -z`H7@L*$LsQ|4?qIqpyD`_bhU^3*wL2FeAbLq1?g$q1-?kj_HiL-cv>c(pRdtH_gp- -z`f*Ps-8)C5qJ?~iQ(bXcd$Sl^%MC&_@H5Z7zlrt!UqG>+DyJ=#;M3Q|@_1-^B;jjR -zT=S-cUG3j?NX(UJ;VA&+p(Km>c~Ww?x;?{-fwl04dp0|2fr -zaMKIqc|#<|5VlI7aMkb{n<~jiJr6*Sh3y$BBlhbL8KVN56Dxc7s-7VJL%BWoJ)Lhd -z(-9+CmVONhm*iOwu#XDNq5Ow(f6M3eU-_Oh3^@dD9=LhQ5pWx_&+$GBwu@wk$XHj8 -zqp~afX@Tf!G7x`R?d$JQ92hY7Mm0dy39o4rn3+3BCFd5l<{~)EV2?c6Y3qkI;^6{ -z0tVga$?g(o{7J6? -z!p&(}VAC-l3e7C_oR`9Z*wZK?@X4H_RcG6C_bzLW6OdEM9RnNqn#(B=PwhLz4n;Ia -z1vzuNj>XKL<#C+}_;8iVgqEaN{Gbr9w5pW|jsPSUBfB5YNKh8b&hcKp$!JUCM2bYP -z$dwd}32|G>Z4ch!1mX$dEA{ts)AOj8gaOivouO8;Nw -zKC104Se`R0(dUg)VOp{<&`k!tb+ZlppRlstiEM_-r3PCd!yMVb;5 -z+pboQn;j|8lUdeNDqMHkNkm>L&1_{A_BA^Pjw=qEN|H_#@ar4gO-qL+tFoa2%Iz_7 -zJUYQDd{L6%pIY`a7X`9eO9e4O$RU##u^aR^C#6DU86eovoXu=;MC&#*Iu15_zvh?8 -zzXjdIXICP^a`xZoGgV}hPYN{z?4dE9JiRDr?igvf+&G0IhpB!Q2r$X}Kzc77R&!=@ -ze!7;&C(H<_wDY{?v3L`~w*=8e6pB7;4ZWMz#<(T-RM+}DW)rCczkX@qPwJ2TW+liJ -z!8~`thq_sR_U%IRvI~x#wwj4}yS#Nq6c7C$%FVvQp!5&rrYhw4hjPDazZoTlc#OL?&$LxF{q>GGnK%>C_a~zr64bg12Mu|(+o$6(z@dE1~4r@n)GsCWq>oh40U{J -zO;NiEfT}9cp{m&d=f;Pw6hiBihs_YT^ftX6g&tP-<`XR3t<|Ye+@SHqM9)5ldz+$% -z{b4V>qiBfzL;-VOY(T#IkxEwrr4@pVRpC{^mhF|A%s?Nc~a& -zl7*{>+LC`7SV8mC@BX~Ft%eTrK7fwLfs1C~VB$oq$Y| -z7Z9vU$Q1PIfa=f?4c*cR6Hpyfv{8I`9f{cHA;_3P#L{#|@%u5&isOT}MmCg9f9Bu+ -z5h|e+w5H;S;nC1#u9R3DMeX=qDsuRc$$8vv@!`C}mtEkzVIx(_Abw6Y9|6{pH(()>>{*UFBsZ&~UzyGw> -z!7qe7_COC%sIgj)xVX0U~q6WtCIJGLlo#{nnfVa|bWok(mxq<~?$_1$@x?SAUg??uy?`-t%kR5L+BO -zyHitqUM*+;ijTn^9nXA1URydpW|vWn_Gd)0qK3Cx%;cl2Q5tQ4hK9zKR%G*p>k!6w -zUL^`^39XC}`sx3I-kWD~shrOR>a*4WQ%P*xE21dN7zJsqby;m=o -z@}RdZyFReaY#Je4a^&sWt;b>t4pzPOYv9K}7k?(vYpV)wPn89)3Hw9%wBnB@=UrRk&eap~XW~KJXMoZ|trOX>!qa -zp6@3vB8g(|`}K2#UaaZgU{QxqfV=MZnFlt8)#)0&)!O?9oE?QDc7A(wGj0|xyhwrF -zQ@w&I4|@8Cu`~1zzLPQ7-*EZiF(ObE0VjO{Yc~1*PS=^N?ZTPBqWVWDtN&c?S7=5n -z^nWh5yIAv^GuHoexmjSfweJ=VFQE|ykk^iFn=J6iErxvKKBUP)e-%PKwtDjwIq414 -zn^-B5by?S)^nk -z_2Q2in+tC3$>3P)qz55Orj4j-&9>D{+zyuNNSYr%O0U>ZP=RM>6kts@b2C5Uql?y9 -zu87_!?{ZIKDo4+%#K;yNS9ocvZ6l9|;-O2ZiriQcR~jYib9bQ-E(9plsSA>TtVH~V -zpG8mP(}+M&#>h)UZzfvNvIm`<#ELJ}3h8TSR$RVA_QLx5BLI9d_^SW@{C-vVeqY+H -zho1u7xr{;k{LT^3RQyYb{__=c)(`l2^Zj{RW^BH^1rm5+(#(lPKzyC834gZt6ZAg-+56N -z+r7tz$CFGwCg#4Y(>-is=p2^RpLc@akL#cM(W*YCKJKSnbpqZff$emgEiU=aE8{Mm -zr+3?Rp1kd}gp5}~75xVBEBpaor=D#LMDbT)DS9H!M<;H%umb*Ik66z%0XGF-JbpsK -z&C%ZI-hcvz;~&Pf83wu=V2e0na1`_8ueG^nW_O -zzCVUB_u3&l@-|ps&yeF^?hhF&$|LYH6hn`v){K)ASxBbBoqXQYxn!CkzcT{9#`{;B -zs=k%Bj}*o^2`^`rKN0=r`>XO^b8yxw=6V*6=p(ck(w_+v1isb2-p|bJ={WeDTjxkk -zp2=dh&nr%LP8J5sT|iTM@%OD7Vs^4jtr_jlx)pwRpAP$eLwT(`?FGCbe;2(LSS?zC -z4A^R+r@LhbFbAj?_K|zie3giN4hnsp#`FU<0#K(n4uMmw<4v{4 -zGW|e~JdZE(leWL(3=R(kU#4e^jNi<40R+PBA*&ZRx!aGch%?$O=&dOSgDHOkjL+4l -zO4TnB>7$2eSM1XR-U{ZgKTk|~3$RN8TyC$VhbMoX9NM=E+(09L%b1Y%mx>%4$jeW+ -z3KK7y70lVsB&=5f=6E*}0E&SXc=|&3O2HRkl9DO@d$0nZle;{@+sG14z`Z8_eH#ZW -z;!>Wkq1R6p|36HKO+4`tl?y^kW8Xb#jEpvgZ2M0k`=43ie5Cs0Nf%41xx|X0Bzyf& -zIu5T`^e@QQAwBh8pw=jBl5cdTkc=Y-#N3ijRUrR#M>DKR9|<;)n4Zd;Z2D; -z|G@o6QN6j$WT#z&i<_M!f>z+n@L@&TEM8?%rC5M~CxGMC;hwY4M*@KZ!YAMrYRnq^ -zNGssA4st}mTc-ZN;j^We-|{r#G{oPVAZ5fC14g7TU@K!LqyORk#^4K>!m>?UFTiJh -z&n~&*f9qdF`%ZbXZ;{Ju_nq7`2%q=G!uQ2O&aVJnp^uSg2Dhs;CE&FA-A;gqjO%z= -z@a2PFL$KEo;Jq>WI$&^u`I!{ZXgkzNOokV*fs9ivP!e60u2%lGt-yFg(76vF6pk6a -zopjS>$VLZ7d;C1b34a-d5Y*q&T+0h&g_-2ld({)F6@7onY9Xs-YO&dm+! -z;in(fzejZiFQM|pQ2si^UA*`V^ZPgW_IH9maQAcgTRHp_@P$4{GAR(Ffpu&kIoy0b -z9_RT9f#eL>l1^{}>^_l@=zo~OGNOLJJfEQjfDa5-qY+fn_5%G*--2gF9h{`u!7Z!(p35LP-L80l^_x} -zEfE9LFvofdNKRE?t5!-D5;C*ku8t_9%P67On|?By__A)(T85TEtQoP1eIt?zU~8;= -zPF%k}wCkO`VF=HX$*xT(1%wGmzbO}w`Q-{^h#C|Iybmmo5?4PtCP79HBYKx*_VaZp -z0SG#Xru>+^V#YhBBSiN|XDHTH4-R`%1Yyo2YxxGfypSDad=+7lLkCcSc9mEk(&_N&bH>nm^g9Y;!EO+pC=w(5(zF^4j84b8T9vk+F82)H -z;Lq+etWZ=yJTx3TrOi-rWXg5jbmwp4ZtzS&xHe(vsDYEAeN2_t2KWg!M^4|vae9Kt -zfGSFLUqjjl&wcY2dS_{ybo)}X>Go|QA- -zgrqE?6$H{@zzZdC#JjbDKAMitI+h7i%JoqE072l%nJGeSL^NcQBWE3TCu*{I+}p%Q^;FHtbz4wWoR;)G1l8*_9z<;FZSXeA$j&fT;ZTrEs_AnV+!btH(;?)+2M@DfYDSgu@Eqxdd!6BskMm+p$ePj9+QcH;C{& -z4`S_j#|%EhlryFPe;+R96LD58-y|3WTzp8+0Y0s2>UMUti-vU|5e!Wan2`w-Zd#A0 -zEyBjgVu=9Y(sq419r_?4V^|K38E_p?K;cSL!k~IUQK@)J-cwJ|Im)WqDk@le= -zEWwOycjA-4NJ4m_So6i7 -z&L5O8z9_?-(__$q6Nf|vkC?Q8#N7*SVR6gR0U!p9B)o-u%-x_*JSPV3&E|@D1eaeL -zH#owhrPoV0r)9Q3n%0+BAVI}T2!b9E7NuA9izs_IekBl`io9Ziz?%?Em>XgzKu6#m -zGYpu7if|;#$cK5upD_9&Tpcg|LSsP~;!WR}xBw@ctwe88eB87R3(l>IfH`o%dpA;5 -z{7hD_U2otIzqSmXs@4Hdx?kx8Bb0{fo9tTZ9}TQTa&OO8jJB#i|5}^4d8nA{KySNg -zJufHC2siQqQCW$h4%sub69<%n6Z=&qe~T+S7Y+gj0KwGR*;|H6OiD81(fA+IA>GKN -zLj|4@w9Wc#6xq7Nk42Br|7;TW06HYF5 -zznUamgm(i1A`E|RJ_vk{F{5_UMNZaOA^JxmFLhu`v_1J3ViQ6Y-LB6W+j?euRAOG% -zLiNb#n8`Q%-1+9`)C3MU-0Z2|5e{sML0l1#sd*bbBoHp`0M -z**Q<&gs4`VJh{O`;22UZdfOy2v6oVGr3kz@gh7b#8-K(#4Q3EJHZ<85^){4^8YGnn -zw?#BJ3ycJ-QXQ>_Z`fgy)viUrsk@A1nECXge+uiJ+Q>rxGJTWd8Ixo3FUlZnM9sFb -zt!cxSr<7zi5mwxf&%)8JhSxxh(0shOcSw=q#s`!vE0QzvKI|r^tnX+^9|OH*vBR|L -z;=~X$KkzXVZw*V5;W(hAd;+I@!(Fe9#MQO0Xt?aedOt*r_J4M6aO!Sp38kQ2{=(=8 -zNhF-Y$$kOnvU!AraDnK`VzKcsg(Ce!hehq#zVvu%vLR$zJ32b$nHv=w8wV3)WnPKI4yo5lc;iL7KwOFw^vF^=+~IT>r9 -zhgw~a$Q$)3>r4J_*Eh-eSn0PzWTY-?@C-#@3pTd}BN7gpExvvgn`S}MhTi{D(zY#}KXzB$DkC&MX8m(6k{ -z*f0XI>~t!w5Vbr$TUF4;lq@R<^obDdo~E@ix2C3^Dfxy)Oh6_nxn621-{%xG8LW9( -zB*UU+e*NrwK -zX=Pt`B6X;Sp@(yLPKj0nYv8NCQ&iB>MhZM{<)W49X%F-)Z!~ZOezc2-n -zb#r8>;GyJI{=y&`B$`BPIlxBpP^R?{ -z%o)QKp?4s#=cxXULNAV`{RJESx5Y22<&Hw0J8gnD66c(kOgIoyFi0zhKatDznLKdF -zkWuRyF1b}l##cuUB_$y5xV^dy#LaviY|po(%L1ZxAS?NYSbzp=45uDHQhvJUP}#NtHfH1Ah- -z4?4{a5%kDIUv5t-UdbCH975lS&L6+Q*Rg8yAbkC(x@;MJiQkjK=dUQUjh~Lt-1Z1H -zW%f7koPdCj3{9un<5r1?OuyjA3U7SHWx0s8kFfWR`(+-Lft2n0Q-}2CzIRKc{56AN -zGosjT#t^18VY>hP^}0SoQs(lN4giO7qA4+l+uF6{a8z(r(JV_!y8#W&A?`;!r=NDI -zvJ{*_#9jGgCe~EJiD57ku(8={snIdTwR$WR~@dzbkt$1x-;i>Ifi+NPO3P9d7WZ57NlgZZ;6d&H-6?5EfH#?q^CPa-^ -z-&T%cQ0gOtTuQ5x51uyjnq;&yf)-}iX*&#C!$f&$ccd^h$JEDmE>Z_SeE%Sw%P`nTn$?I#cipV?U^ED!V^Ap6xV~? -z1NQGYP3^!;IxbGtCX!Zk*k80KBk#hkJimwiTX)!YL5|wHn?tY;0g#_tUVSncQjwd^ -zh-LN4+sn43sS`vNa3zomNk?sj-SbU&h}p*oWRL=QuxvCzA&fR4Bb6DpNo3lX@b6zu -zStIg!V|7UZ2d?%_H{3`flk%V?d&!fWrD%;uL1*N=J~*QUQ5<{0UfoE@@k5G4JrHQy -z{!MwpdLOP?rpiCmNS_epo#`#<(J<@n1B6!}$kpsfOP)Uo8ks~&8k*tY@Xux)}(emQF#fQ2O30nqS%k8*m39f!&iF%a$)x~WwYa+s?C9oq;g}*+H -zG8v8jMDfTjIlH{YG!KqOs<*vbV)AlrH-S1_SsndJjH`;w9xM0w;kN@ClTzuwsG<8XH(I}k2j@S1L#u6yIJi(TdquEJJy%F1ukVu`} -zaZheUCaBmPr6H}u$EWfk{Ky~VQYY$kWT44Y25@BSXh&tTs_c$u7@Bm6c7FOlgl!9e -z<%pG5+JN;Sq(1A>B8WW6U-k?dZGZha{e}oX9V4cf -z!$miPB3!GaA*Ym=UAHD-t;~BgZ%zn&4FnEyxyu7rX{(7(Pq$f^Z%SgVgZal_1}xf< -ziwp;KkJwRIS^H#~7jlR;5<4GiBuf#;#79oTs3NboRe~uH5r#`pEBwHL&I8@)w@L)z -z@XlJeT5ZSaI1RNk5q+^JyH;M=pM4_HE -z>s0nL*ln5?(p2komg&Lzc==Q9d2miB5OVuuo?2qLN}({~yD~JnpAyKZ=CW0hz)*?> -z6D8Jd^*YWkm>?srZyn8g{Q^^zlyZi+xLt1{n#;oh<%f5*@}kSc!Dq}TZvpp7me!RO -z9B0qDbWFdTte5l$fj2wJH-4>Z4~v+OUf{}yDA#6t){Xj!Vxy{!O?0h5&FbzLQ*=8F -zCs6~g%7qNA@*6y$Irs49w4WbaN(6|SgCOz5KbVCtr8Oi4HMwQHf!maW)HX%~BWKf@ -zwoZ{4On98Oyk%rs6!Ud@bYW}&P9u5J;6}*&OwVLJfc?na7~RlT=_Pt7)*5|1JyEr= -zCQ_K(jLk3EMA_K*vTg+OVYk6u0`J)~g~TyLTdPlq+WH0a)RD&V`=H=8DAKC|m$!}Z -zIz{aV$gWba*5_xfZ&y-YF3CVJNUPyPLbZm~8cQkW9-fjPnhH9+pVPt@;C{2F5Oh-! -zp;XJcE^Wq`7gKih(WDtd<$!jpB&`w_5)K~P2_cVdC~k832*rUuOqWGi({_%5BtZyM -z%ou}Fr_Ak|-VB+=S;}d+s)r -zu4vI7qF#YllMzdS1B>mKcLlbeCMzm=paWY8DW{}wR4937>tmZOTfAzHH`L*#Q8#8H8V7GBz$vFxL)K5^F;AHj&_`kBfNd%e3nM}E3LV$pN=}3vT8|t -zY+i`0`-jR9X>}JdPO*Fi(?O+!_qjLE4)IpE!q!;}zJ3S|%yU^Vdh6+L@02!n5h0la -zSuM|{?9dC&qA}dGwVm%I>kz1 -zu)pa1TZj>bkF3m^ml1=t9a3)whNMv_QOG1I3fOhf2xFJ56hgs<8V&AYg2$EZrc7&? -zw;2tBBlThpjaWO;MPZs-?zP%Vk}cw(ie<6EZ0rK5 -zx|xj!hnuUeM?z!r*J@DWMV> -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 -zUuXL#40mv}N*4U?cX~c~x@$oS6Z20K8g#=y!L -zT^cJxg8qZ&saN76*d{McFz0Y(j=0;#$cYV9TXjO`V$2-$rJ -zBE_7Io-1P`U`jWh0D1^sHJ*?MB1y8Il@>jJ)5K;O!<6?=-oqWG?LO^?V^WQUGV_nk -zShEpUP|(ZrF0>iUD;nf(O|$+4cYA!%ESLRcdf|`v@uF2NiI8o@0rMe?L_TsNyAPIB -zZHlFx!1zei+aQT?UvL9HXEp)_SF;43wU}tWn!9;dCJ( -zbb|PC{#b%H0|b=Nd>(3XpFa8Fxd`wJj{DGG)Y(;Ne0%q}4(On^nA4W4I0Msr0;qi` -z|u51%rR?kjsL8rPZHh9dKZHDe-5KJvcx1#2niI9#;kq(N}e@{dyqecG(K -zFqXIgY}CaA;DlMgoB}{ZV2@V~ZZ&_nOI=&_(Q_?vAn5E5Sd&voK;^QqRco!;FKnf1 -zAaVlga*m*d&^xs09!tY(wwsgYG%=vdFs^CHcf1WG*f4oSAg?c8ca)9UnAu;^fC>o_ -zs^O_GF$qP}NDW~jM?VN470x%=RAAkz*drjNwmVJgUV~}iWB}|L_R64APy9vzy}RAZ -zJ30&!I$2z5-<$bC>Gb6dcI3gpa)B7GGoUc+I|hibo$g~9s(T^NXX;oShG&#OvCvT( -z-G_w#wP37*KvYakiI2|9QIzrnw1v`#=7nhrmvYxqx;xTmNWR{mMIuDxUWP2SPrg)% -z*Z~;3`yN&jOePnCT|MvRen??FE?;INLKqag=s+Eu(ow=?(@M4(i`U`n>gDd%$i0IUfhEUW&_*zJ3~&|BC_0bny%Zb&Di@(p=7b*i?g|(KuaXErgWCBPZk1uZA>l{jPhO~bEzzeBXtk{zT -za=}G{U?@53gCkDw1FESI#29S~3;LJyxMol@=oHB_*DHUPM)`gpYSENwdGJYFs86gT -zr!38>fPusXK_6!9WbxSw7vFducQ^1e7IjM_s7s2o*n5F8LXmK&@w}u9IBhC7dR#*t -zFl|m-dhP+HWh;k{NC$pT?fq_CR^17LWNE%yg|xL0l3dW!(3=Jm7Jqr!^+XPcy-+7< -z`7hEYi7K@;Xg*QGm(Y!l{6?IyFCg3-xS@UeV;HYPdofl&$v>2hcfyo`yFJt;%z96A -z>gQq7Dq2ZcZ5~vKsWx#Kn6~d*s~n|qR#*pqg5xcEYp*9xi+1DY8(bcBhin^-S`$9a -zce9ONJ)t3(ig~%6t5wtUkQlJgH9j9$>r1?Kiw{&mEf0N?z-U|i)BF|}AflsRGzc_M -zR<}~kONH?SU`n?362_36f)=_<@OYPC%W8Y=uCu%;*-(+7KIAPz&=8Wnz}DM6PTT$N -zpok6O9%{Pg{QmO98-;pK5avqwV;)ncnPZ|(AWgf5E|HqN7&cwvCP$VsN>pT#_wuLW -zM((%BM9U_5PnDcKdI=l?0}oVKk1LUt3Kc7D-o_6MT&+tQzr&J|+v+G`)X5-*et7Yb -zNqB1g|M}Bm#9z7^BMLXM=Dpo-YSVEdHlh0)nMta!* -z6%1B`QX-tp6TFX5`y?j8oV)ptrwOPOy4d86te3+H(jB1q+9u7wY}?5xD)?oNI*~tM -znv#;i9so9-!U<3c?-PU5e2UJ=B -zbOyLeH>1%z6|4m=Ip@J?>pHN5$Yr7$V#{ArF!>R=8>|dTln-gmxO@@wW0mV`4&^%L -z7|0J|M$P6gmdUa7Ed(}EOIoHh{?3VfV*Cy&qt3JfoJoijS+LS65-+OYX5%S324^(L -z707!(ZpdHF%WccF95Ekjsb&rkYLHoFL}KR=5{!@S4luER2xk78z>Cgd*>NBVDy*xQy$~qiXa> -z!hA6I$t|iID;hy~?@E5}hjuI5pmOD7PwQPf!_`yZ{0tH-II+4EvI`57r?u;rIH4o% -z?zV9M$jyz3%l2E0HVj!AI9C;aF`I$`0-%7-oLte<#MhBEe -zjSn;c!Xy;`4gcXiaoLQ02Y5bTSQ}Sv;4?f|KY+|8TsZ~OT -z9mL2dpoTqFa5I>hwyKHkJK#D^yloMJ^2kkOE8oB?aR%U%SAcldf_A9Ocd}>@g#(lzemS7DWw_nTSIH@M4G%DFQ1o&_&`n;ioL$7-t({V1 -zjosF4Vlh>vad?1q2EkxzRVcJr4gI3!vbEgf0Z{mnom*h&d@>|7-?q3Mb)}QUE5klh -z3De`t9!(=q`qz5lm<;p*@c}@NwkkBFx3DMFJjJ8wrlA?AU`{@4n72<4CEtexe7CZ_ -zXK4C+E6%-V`^1XvuG+i02ubH8rm!{CnU0C+KyP)(`u8;^cEcRKnCr1c!YyVCun+GH -zwVtMHQG>0;5zWq-F6#hd-4SaqE7_2s8ly-cUPnvft0XLL@#Gs|J3lzBfq)b%n`W21 -z{E-pErIg;YNxh!7tCY$H9ev611`Qc>({mK{sXf`ZAKLeKU}JSgRJ&l0r`#HsvZ8Mv -zC64zd2loPa+rXa0*Tf?Bgmk>MojitNlGQvO<^d&79Vt%r`mkK`sm8M`S?I!aRuKb6 -zNsCeK!okI)y{?moJH`#3rdr8vI-b}dTJ@0|(um)GYAoQz9!(TOElnfgaoAf6OsJR@ -zhOr#Q@TCcA?85>fhN%0Q14ldQL8Esfwgl# -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 -z;7>IWdr+67B!tvXR=BrD^(O%$jP=|(PXK}5U -zpic7wVsGMn&_g!M5si9AU2U>^ -zM$~_yl_#MUE^oPoCKXd@kd;6lgC6=Y$u`s#>LZKPXjh8fSlbjWL(b(WaG}=(3wY3J -zVpcspKT;`~7Nb_SB4mV(0Fb(&Ksef#TnQ$v9HZZd2=gZK!^-))3IA#@YSrJSv)Gvu -zRC4R&O?ai}UpnB`mYC>&C^sKDWbUyVq{$Z#0A23Qz|A@%FS$pGB*amC^t-W2Saz$- -za`sF>LYvb;i&;VOe5Dw6e2HhOvpn;!wb$ata3KoaJY~c%CNcssyGFwt99Q`1vo;zG -zAs80+Q5E`ov~dUxZmcsNoBNm{|Im@Opa4k!^P#76Mou1USN~-?Z>P>JDWRQ2vx_Yk -zT&$RB(5!c4g$NMsjk-+ybG~4d(6adrWGeC-V5ICG -znS4!u08Z!o9-;mFXP@r?a!zUdzny2Cmf^pbusu*`!|+$h5E}rgWXBqg>gWdJv7TCB1Ob57dwmzFaqh>04j)YB{f(H~2$U*fV$+Am&+V9Qi -z3X1?DWo=eKX~{Qj&v^ -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 -z*{f4VxBgN_s4gTBbv@P)+|GDU=kc_tBZw&!} -zaxa#42|8{w+}BY0qFad|N!y~Q0O1nB3fL@H3~YCeX~hE3seSCXtHKbDy=$4!HGp}_ -znSnA85Vn;&Lt-LuZpawni~$ZGXQc2q#-I`=+{ghFTRD_a2t -z9NhyO3d0sRAs2m3oV!j-xcXN+p-_-!aU^N#TdT>TZAcoB|9i(o#pEA=uBxikW#5l63lUn^B7Mjaz&_|FX^RWTW~3)xzEF4+?7qw^U)XLWRqZ+C4;tUuC1!<%xR@ -zY!nAy)`-^sAI9EvM{=Y|5`3Qp7*m;*)!p-J-(&zIX>>B2SMhKUI`ZLHMO4+yJgVly -zq8s=s<8smtJw-*5Z|>~%rhz$-)-v@gp{1h}kF?*RJ=@-mulfDZaq?hPN=LbVt+cLW&r9D -z<=^X>^uguujVIEAVVWEUtno+G{{G$;+(al_|0)KG2iY$1Zx20n)4E*nEL9@;VoP%6;0iJ)_+`&B?F)&5(obuC|xI&x7$=T -zAra4-M4Vjzomq(YgdabRkC6g>;Fj3`b_tr5va<3heJiWP4#$#mNUBm;fF{|+4LQ)?z+Yz9E~ZfwH2y=onFqM>SSsvbwt{OJPR~D`MoFtrZJygQq)e@+?bhoRmJ) -zllm!)9&|Z#N1e(@oa{DWq(+KIKnbW1=a_;xIHYEb2}5JCzj@$KxpRXHAi*q6=YEbZ -zOO3fIc|1Z?Y2R!=ND=BWsKpfV3jyaGi!x&lbA$CcwDF~xybvfLe`rRav-q8lTU2virukppLd -zmL2j9`Kt41qeu=`9|O!KT4rWR$;}deCErL(5=8QxrdN7b;)yQJz*(nx$3si#lKNQa;gE^1khxR$4!x{FQ%QMi -zZ65H=#7#|+6caePjyyE5`!I^J_2&eK-aciK7qRSJ$;1dc(n&5(GJ-_C*AZs_;J;Ojf((0pX -zId15)K=N2@HQ+U#`|p*kz6ml(rgQl{&Djqtr%Sr7A+Z8dHmG6cB4&Q+#&{fc#XiII -z^aG+;e57a2xTscNoj5WyZS)pe9Z6z|QDWFkZua$-Ko!C@V5+s<-SxXlFx7lEaXeARD>9M>C)=}VSIe74VWpcg&R)~v?o -zaJ!AydUoBO&A*Ql${_`w6ETE3Y*TTd2DPl3j}+#Qt0c*yK)spEbA?S^5?Q0{_>m>F -z@1wYx11hznxl<)$Ub;^SX>OPr2x?nOSzF2F5un}=MdaR>eOfxNi)rl-Wg)j461~NGNFlBmJgV32&P~6BJ4hgO###qxx9My{ -z^&Qs07W&fpE70y|N!=rPPzVMC40vFK*}8LKT>+tJ*4?ajpauK -z!gWb3P1dIHcIEvC2its;PcUG&1fMWmloZWFa?7G@ZdpS;`j4ojNRs`I<7)v7C -z1P9$f5xFdQ>GZ>fxKuJHiHZx6LHo{%@t~+W)ZsCJYbwPU+9AxVs^K95?xFy(-|MAD -zbIyVj58S6)p7Ump_ZaReYavZjf?2XqA$YHEf!l}q&Mra0StgIzNWTqP+PQ+mGSv%G?LelL?7XtAs2^ -z-Y}~x`4G*LgO=yYYM5CdxexU0rErow{{XI;A&?F@$v5AYo~I?*1295q2f-HTO%{;3 -zW{amtW4zFIK!gw-_Puf#5U&k$UJhB6({53m9fSXKFE2fcE2U(K4*0@drzWIMeq-t| -z5LMyW*4-KG#ikD?TUjnVr%v^(Thl_kDQnd@hz-i4ZCFsH+>#u8&f(L -z^q5%upTq)9XU0*w6E5UQ8%9qDiE6N1R -z{xN;Y4f&MwYS?VxK0Uk#0m)SpGLwV=CJ9}@f2QBxkQlX;@0*V-tY~K-sVwNOpq(i( -zdWNR#;qkasw86svaQy2*)ZYJk&R*ox)8x#hNLz+u^?-zd98SdC?xO;vbXlk}SBtt)K -zWtBfA1+iFpl1Gb>g|bIjBt3YBVMtL2>WPN#SGT0KW2+_G`%1hyd(5d}iNT<$tT^hd -zG0+SN~#l#YcjR^tN7Qs9a_1KOt&{$yS0=l=O` -zteE0g(Il3$;#{q1gNb|CfBf~wAH{~Q66P(LuD6a5IwQ9L|9#5-pP6p<3pf?8b!4lV -znF4W+Z-tV~POm3EZneq|iZ$idHDD!DfjXi`u -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 -zJ1cepAL6%cgha*mZ7h!MEMzof#*^F!2t&Or9 -zkO#0*K>e9vqkMci59wNs_=svSlv-y-qfOI(m^bXO*JUE!QoyhnT!GOuff4NGru@&kcv7XJkTt2uutxZOb)J -zU9!)_@FB79W1K`5VuF(6A>TKGUGs6Ek_j0-hAi7!nvn3km$Vml(UBmMaS3#`&K^?F -zXZE|4VoM?`%noP#!U-NU4r~&L>}q=3&4IFfp08!aDjGRITdhkwkd>s$-PY3=Js9T@{PftYqYpMBF!1`ZSif+BPAfO5C~}FI -z9ddX*5-MPLu9>#S?_^>DRxeFWm8kv|*9Lu(b@+DW!4-)e@p*nf<+EwP!?i&G{G>T$ -zYUSR|qliw_%GNG$SFNSoIJ}^rb-oQkD?qv!0>*FFK`0@DF-6M|YvX<8tui79{#5SO -zcY>ap>3M9bU%IC==_`0UC)PL61(&kR;-^{b%PpX5JLbt_`dP3#ONF6c`{s -zr;*}2hePO~p8>;;tF5sY7zpqq+5uX2R0xQI7`ex3NC1?k5hUKhArJ0&YZ~^ZtQ0&l -z6*Y?gmySC2-O)vIPb$LmE*KfUUh7M)pkeNI)%U)h(Fh-@uh)%AxUi*<7-7UJW-9ck -z*-3Sg?^;KgKiG+!m)ITo@Bg-IpdL5(p#nM*rxMJA5uRnujO)p_e}P9nI3KIOj8tgq -zX-N3SjWIiD{pM7$1+5W~29qTrBAtadHGr0YKU~H6)S=9$9J-52bg1hmQGbDa3Bi9> -zB*PAK8gMRymng=!^4CzJd~KyzCiFfhU^{X%i^q&VgQ1M{Y{};Ri?OP_M6NnR%P4R` -z+n}ZlyTot*Nf17MH=r}&wkus@j>v;~?8U0u4!e2FiGj6AjOj4u)l}lTsGO5fYhq-O -z1+=TvD-UIy=C^>6DHiC!KSTT25io4lV -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 -z!ND9(V<8UtgMNr26l3^8ZRhK5QWG0CwTpU73` -z{NycjAJL~Ik_^oW=W@TeH*pd0txp3krdgb9flo9SU)sx79m-aNRIVsd-*I8%VEdep -zg;+E)b$q(iEyR!lUT#h}N4ueaqbWVOlKPPOU9}&sHS#zh%)2Fzc&~OS`XSm2F#BMf -zq#=BoB^ZDriM>p -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 -zQc|3lS%wx4D -zYnRdk-BI>zb=ZY5pk+H;Cqg`z+D4+v){6J%B1GoVsg=Ev{hCC5xFzf2&z*>(`#s5b -zfNiPzn=2+*kI9?TI9)m|VXi@;~;VJI*7dFJQ7E>fCYtecHJ -z^}^ZAVmVl77%-Su5RSCc3bYrxw%I|L*X&Lc1oaol^U~Cb>KO?AHi*`$Oe-M}PRenNh%l5~inGNzVO9{U9;d4F%N&BG -zy;=Yr*pRddlD$F|z-GYV6PkEGZ`IfG3&LI9{XtX`z1V$J_`k@bTCYy1~k#mZ{p -z)%<>VO@3yjjXprLB33yYmZzix*+*Li|C*MrBICDent+R7CnSP}?sng7P?yvt(JgWO -zW_yU##J)Xm_BkuVv6PPB3Fa~rVy3`!$+AlghFlbBLMZRMw?*L`Zg#?l|7~Gyu8H~^ -z58dr$@@|ujuxwi2Hq+fa&L4Kc+>T#*6#_3}VO@MS?R$VhkaaY0-UIb7-Q~;Y`~BU{ -zbJ}*@@!Lv}iQeA+k0*$9sJgvD#h2~k&!W;Dj3^2uZWHSW=MKVFpSvMvmtb%?kWtXO -zy$NxG&P;Nj7<faR8?r8BR7ioKc2iB9=dQF -zMgy9OxgdY0}rlZN0Cr|e6s`}rj?_Y{&c -zo@mhhrMzt?itHo_v0x6lwZ8C92qzf(DtKfd8wu5*@|o=t{$9+~DX3JDXTj9G$>O3Z -z6}+x7#I!y*mo51i`0o}OuIvLf%sAfQH!vPqs63T4qMynaDDAcH;5?ML?CVH&-tshG6?SqJ>z?j5UjKlt@hWOcOHfI9G)ncEa8+IvD7_SF+W`zT3|Mk=}m(!z^AyA-cV2axmBi087%2oek$jSV6 -zDk;GbMB?IxM;Q3vK%{oAtH^&>z~fIw)A3gwmJTH0EkdO??GALhC(L1-Ls7oQ3*Wy~DRi)Kx -z8>IDWyDoBZq6An~A?L*`>Uxf>(eV`jiIhcppP77{-ILVtnI{e82A8b3C6Z~t-uCCn -z_yQJ%_@!PR!+E9Mf7YbQY2VNwQ!XGC<_RJb!iZDN@dZJ!O>M6T47uR?&>og3(@YNf -z7qUm6unA@p{=s&d85!!ILZf^i%y~U|!lYJ3u5ogHN#=$*|I+2a<;KEjkWAH1P6?Nk^a{Pzb1JGbGFtyq+u_!4yC^ -zBV2BiAX{%jpa*vvv&BC;s`>xyI5a{H{C9&dP~5=UB~B4Z`I@n8LXguiY=l5f;pF{D -zVv@7nmYp&5>Nf!SuwgA&035}`XK0X1xYZ#q32GSWIv*DTnQfPKm`f>25Tn}A`#B{7 -zQJfYYVn-7^pe7+uu&P)mx{aNQy3=rYmWCqd;Hi$w(*4$XrptzJmvg;w^$)W%M-f=0 -zhrAv3*ALG}bl^&Y*Wt;ORXy=SQ{CEy7?rG!OFjTaTxT_&Sq487MA}IhSkp^g;$o55 -zo{xbi)6aqZu>D>HYV=~O5kQl)#79vQ9s#r{)<9gaYV&zGhSPvw3Q-U85Iyc8FN#T -zPB>ZlFWj!>pJTh#zEr`IKHRN-WYmQ3`-GJGLL&*7n&bQ9 -zH^vd%oHnar(+F?^p&cyw(8*G>MR-tLj5D`X%|7yN>i3uCv{K*C+Ls6CQ8C -zy8YA3HawsBt-cR#d=3EYEf_D)gj -zvm2z9X+i@e?5C!a!ab}8-gCJYW#`HZx*Qt?xm&;TEuu8^r**k*Hj6vj@cRK$+sOp5 -zlYT-L3B~BiMow|6J@=9PbeaeC9Hwy^Fe$CL>sSC5ilZ3hQf`gaHgOwX7chb9HB4KqO~7iC&t0 -zwPIun4-I8a92bGpm$9a~B7f|WRCgo@voEVAqy)h`us8vMBeIg5KC5z}$BHBQszXn^ -zh*0z{RjNqPcJx|KSaDcfN6Q?T3dqH9mxe%yatswc%?!Jp05q}5ADa@dicR^a&Eq`# -ziAgfDV}D(>JnO%#N2>DW5S>Fhf~@Y#YJ}b_Q&8N}L5{o7f=}A&EGwJ)P}vFN?XB%e -zUb{NsG^c=IYl~l}Zya5+uHx4!xvc^FD=})M=~7zPrGY+wZTlwU$Yf-&rENG|zGnFr -zIQqu1v0$f=8bG^&mS5G)8(WMI(CgvBrBOF2f(s%~{1Zd0>m7^d(v -ze)2KqM5nE@bovftN^s$2FUZ3oZ6m>r>vkPhU0t%Wm~Zfv_r3gmcoGO81I5*l_|>Nl_wX#mo=nwN?d2L+;%-hILGtd3PxnzXTB_ -zK!DQhBi}LG&nn(FTLBJ$-~ILLWXhIebU~GhX4ZJ!t(0@D`o`Rp^Di5r`G1%kVeKJ` -z)37>4cPOJddZVklK~;4PMVcI6B7=uvraJbY7ZfN_~!XoN)2 -zlJ$fQa~M2;D8>_p8Z?cXB8dPmi-V(%)iYC{0pbZGx=-h>;; -z+FE+Wbi%We&WjRNHF|9Z`AF)QQR-TJgmtoPf5G=7d<+Jz0GhZ^wJUXwd(~1NHFK5 -zQE%QwT)ug@_x=GLPXC5FYGXm)r02Hb7N7N?rXeariF=Yx(3{slqiq!Cs-vr1%c&Mj -zLpMA*wfu1vV1M3rIFm_qmMu36F9C9An4r8ll7A9umwdqDEp+#n8`$&dChCAo(^o~C(r-)ym2lBNdy -z`+^+Io~UvzT3PatpE#nGU($;~I?u@zCZ^MZDE0@kaoZ=tk|1m7Y9ucZ -zW0I=W%PpNbU5mp=9z`wF6abJnEnD0}Cz1i*nS4Y+x%|X}V`A1g6-V}lHQAu_FO;Sd -z#Ee1cKYjt`xXj%&(OKg?oK2Jt-7uUSM(2o!cuZfsm# -z0F=b^V<9guzQGZzvl;u7uX~uXIsSmV;fal!;OEnqltV5ld=u=rjC-VAWBAlT;f3D_K!E0OvqmdlzB$IgqtsJS2&V4ORGU7mT2*&5gK -zNQs7BR>@13rJr`9z1A~kW{1cKf;DiJAKKazp1U~L;r`#)dP3T=0}&w$+xH>-y{Z;3 -zyNc;gz`j#p^tuqr#OP4H02UnyuW85JG$`8sY- -zifvbtif!Ar?WAJcwylb@^RBge@9rKwM*oHRWzKQW`?yZca3)HUyINyo%8UsstAIVb -zi2`b=rWz<}6np5lbyD|IM#x0bASQO!m$07ZQ}6r8=S7ww`3AeB@PAgRG<7A9U^8+% -zh{kz=??_1>yeF;ojCC=;e9&aQ*N$dXm{|>t9@*pJXyy>(o;-$&{~5c}ZruiBo01{^ -z*_m^zhg12mqw}QzMo~h=w;NNSN%~E};bK5<4Q+!TTPks4)O7sJ{^D(FEuBJ%ql!8e -zQAd`h8qo)IPs;(IqBd?PE6K06&u*+ZeQ-E-`7VuUxL1vxG#jtsJr`dhVrtSemHG$( -zLmEt)NX81^{Bzyg+H2gzHH=&14~srvKY9m5S$6Uf-fKP`;qCy}v4L=XdE>{|=TkTs -zuy7X#G!7NSfN!n%YpP12h!?Mnk4xV?%P7#?HYME`WdVqomuX+AQf -zZN<@l$YS~rStJ)dRQtb^MT`GU785Lg$l~!2StQ=uTvbpzZ0HRq=C}w>mq3w0BHB3ZG2{!JvMm)i=RCJt6 -z^Q+)7=&gKUmTU-SrtmxAtgg#q3>fZOp|00Kw-6DdzD^#hyvb7jK3QY+lzNgdV{Q#J -z5?hwza1%&l%8oZWvmi3!`-RK9FipluxUWaoofh1hUG<%e9LT$(Ws-%Lk6ld$U-LPZv4 -z3{QB8rS-~__>kl7nW7fSLov=Q$QVeB8DvSiqKl2}^MZ+lqG0Xu(Q0#yP-v6h>s@RN -z@jL3+ai(K^FElReI%d&-b}7?>Yps*KNVK{7Z|hN7aFlK`F(}2U{r$Q8K@0}|8s>hv -zqxB>ZgW!oQp$HT)Ui9L167LC=nRDk} -z6WbF(7>}z+K10Mpzo1i!3Nv=;8qPj%dM71}768V(wo8fe-{cGl)?Fv#J8K!U)~BT{ -zUg&yS$fSNtpG7|o9A~z95-@vM(+v?xo4tiZ3cg!)=F^yR#UFOlL8%>9(GlcMcBVhM -z^Z}O7zgJvidp47sTR=*Dpp>SDY=Fkhdw@6Hi;NW^x^#t+2vG` -z%Ihy^Vl=CTpp<^LgH-Y#SQCb4OSiwLhfpTvP131O9hF~V_eTDUkKXganThfA8z|{W -zBPTEqTBnfKzZ`hHHKd8#PI3SBeWX_4)A4d -zJ`K<&04$tAu^O{@a&_98%2j0A%{5ChI}~9TRsSU-W=a0!QI~R>f*9(is#~hG)~|Mo -z=Vf<}Nk%;!!7fM`{VNpWB%Au;#6ZJ7PVq~ewW@);)GW4>CvIIM4lU>ZJKya5ZTuJa85MmD;6yn97 -zX4;=plhq3Tgvq(qogwu*DL67JucxTO2hq19p=N~6N|AFuKnDDX5BB0-+qTq_UioU3Mu3vS3R_>l#W@X0hXdSeOEF6A{EP*8#7^-lQYrWO9D{2m -z7II56cL`Lxt01fSnnF{c# -zYF#1WiZPq){F)2;sM5j9m6A8^yp-wIN2qz&`Syal;h@gBsv;c8#LAYyOaeR9W4aaO -zrb73bpocBUn+_S{;q-#J4FOjrB7d9}XGl&iTTBRMHma!SA1%%snI~w5QY8J?q -z{%p?G%DGa&vxo65dG;afD__i)UMif_)bqAi%?wICd4(MFDtEk8FE$|1a&=C$A=)a< -zkuN&yC^8Mlvwwa1CjHXvzd1sl*zZCp?**^1UFE~tMdRtH6@%1|HdO!IIx!r&%tJ3u -zyiWPL)xbB``W!HxW`uxXg%F!{#U4Z@j-`GOK>|cQ;)|_rOZqrn9a(glrw~t}$YH!# -zi6h1n)qAVq^NWxv8F3kCwH)EPWNV5v*Z9h)rB~WC)(M6>fQ+_QA^-jIq6`p=khXd= -z73^~DZsG|An*fG~0fM*H7YWleJi0&!{Ez&!4w~N!HU=!j4 -zz?e$47_pvmTu56t{c|z2NYk=DzoX$kyW0Z -zZYZ;cDPP?@jJ -z#)rcgQls9uvdbg$BpWKgBuXB9acO=nJk -zsj|w0sx?QdE0bove%BCFTN_19+Bi?O(E0%aNc*Faq_%$Tggt(o_{dGDDr;=;vaiSR -z%mHgjs^SiqB2GQUU5rYjkdZp#yMI;~1x475gU2+cvVzKi*_#7>%?dV8{^hnMvz*fF -z29H%|G~ZBAx0gpoEvD6x!VMz>SMRG8x0qIol82ycQnJzT9ul~M#A~D6ySe$pc`r$o -zaD~mNZiPPHo~`0|FjcCfNsAr0BrxGR_j?V|g}xqp8$e3KElAAoR3-LY;L^++IVQaZ2p*;t)-tN`9xw$1(cl%a7te|H|3elvBW2wGLl!Oni!8?7kjwlx -zS(N@SvIzZu$YQx-N#bJgf0IQhg46K-B8$!s|3elr{tsD%N;KO2AF`N8{r@0~B3b{N -zECSr}5?sRBqKH>dvHpuJqWm{myv+R%S^V+v4e0+x77Y$@PEB!Z7v{|35QheB|2J6_ -z{6A!I7W_YCapeCZi%8axM*l+=*V6t!$znV9|BEb!W{#P41LSe}I`%IE;yr1?sxb6`(p -zI%jX3Z}R@RE3%dQ{@Gs^<31F`$}CPEBnl-cXLh)m|Jns%)0K_)x_y`iL`&<@7a7oe -zFIL<_Jb<(GByW&O59hZ|)ceF6UoDri;H8{#MZ8nkI6W2ZYo&B&eO`7&KbTDq+`bd&vsd%KS -zP@+LWC0y`PXI9Cx*-DZOBj}wj5<;;(a>I`pqPQ(z5Q&3o5&nw57w;Y|NBggply=5F -zJMqK!7`-s*e%&yK+nG{px08E%>waXlByz|A>Ptcn8-C&VutH%BC+#?60FdGUU#{U` -z=Op}1OrKD&_o>nUF-nNM5_ro7-i;T|`j3DlNxu0G)=8DpF=$#*eLshGdWyQg)s^E4 -zG!&u4gYN+h56I*^(=e83%3(U5>?vR!_8<3!(B8ixUo*nIBNxtTvS3O@N$n<@Y%+T) -z7gegBYA3%;h&f5oBlIb3YSr&(cM8~8bIN>(c{QL$`a_t}sOSWGIHCC5XQ3E*PMYfG -zdVsvBO0hS8v%#jM%xfbcs}Zdmvy8b+lqB9+pwRS|QZn5-r$&@t-`EM}7Xb$sbOkLv -zdH54@z<2D-%;y+REG6WV@G1q9x3jDP%ENuHUxs(Dt6w6;ZZ*G7+7$L>r)7K1nW9n%(o(PJZt7M;xwuNx4D-vlx8 -z>y<+_i|yQ$qpv4sOPpFEZg8hF%i@*}NZGw2IT>S!gP&n6+H+!6`` -zy`g^x%uHogzt=9OsMw%X96>f$KmBG3t;z;Z%>pI1lcM_-njNhjjDShoJ?6#wc@st@ -zVM1e67CpL#a_;_z4m=MjS_c->6R=zFI;AH|_o$@;8B3IcIe12TMwOOM;T`XuYO&RE -zAp#52vuE6ahCu9}H8|KQBG>23P-?}OIXt7}8$c!IgO-$Xa067n#kuB$j^^8ZsP~D_ -z5)LguLr9*!5>Z1D{*e%XP_Soe@H&UzW4$bky^V5SEbm1OhEah;!IZgRgamnYK9$3Z -zIh(oBjgIQOcIgtPV)Yze8Nw0_lzGKFAEJc#DI>!-&XRT8Hg+d%N2+n^;!M19;f9+c -zEo?^^YJ2l(LE^Ib&Kt10BsLLl!Cia-Paq(EjS)BLkB%Ru3e)dFPz1LqANQ4+5X2;e~&fl=udT}V8b(|)1d*! -z%U{c^cnfs7kpb%`U3Y6&`680JM?$%21Oq4%Vl`2;5T|ju^{JLHSfk@DAWK -zF`^V#YdxbG{2Xo}J@k}O$%V(Q=id^8#LA~D#5ZDpeG+oeeH~~R^AOin1_0GHO -z)y-xB|6(@G-R1C|EM{OpRm>C>v&c=>gxLhO<7?Adz2!{7=jjU;B{lmu;&jz5fSF#n -z8aojyv~n~ZsZ!W}8Gy1b?;6`nJT}r&i?hTO_^nCoPYJc$J@sIPQz_k44IO74S%M6m -zCTip84X){(orO%EmE^w5cujv5O7j>nPAtvpahFXqxq74nPb#I&_mhmwm8>8-bkb;E -zfU@s#Y)rA(;OsJ7x73+$leTse!BXuVYT(LzK=E!CBnaKrud=WE;`0(jpe;EV$}0*Dh}+$UO3=(fc!##nDm4TlVis_bgjxmEIPCMst}Pbw^sd -zR#hpZIw7$Is;4R$J(iXqHZKe~sNe|37V6sFr7hu__Hn$;Ar^P!*7Rqcnfbr?)C%4O -zMD%*7NljD~wf33vYPgXcGDsna@637>-eC37Zl1$kK;9q^zj3#F1k097G2ge5UNsA* -z_D|y(6CKxMRp;u6{cKbJOJjq7;8Tm{W~}o-D^LLeSUU+adiqgr{?i+kXaWade1uUy -z3(gCEu!KW)`7+?LbV_Y>0M+Kl)GFK%TlKG6B#VU)cQ5W%=zNFSHzerV%4bului& -zKQhrQNtSSpQiN*d53v!+NIikxTQuH{3h`fl_&dkPy*|;|kd;<>6w#xk^*%XLq)1DC -z&E?)iljY#PL5NdRHJh9qn*`Rv$I-Wl&0L6*BH|mr2+s>)DtAjuFVSuG69|Z($wEJ~ -z(5|=|Tm3nocb;M9;@bR9JtJR-x<_+NMxEI!yu|#$r1j$Xm7Ss_H#fX -z>e`@x0%!E_8q@s9bpX^@BgdH^Ao~=K)SySQ#49si1XL5A4k`3aFsFY8;_ipyY6C2p -zwZtHH*Ao~pNPX}WesWWkm%?04=v(h@HL}OJ8rZrMx1;fL|6e{TOPA#;X -z$sJaox))Aa+UM!mpWQ80vsa{UJnNKZ{JTxi832=k2AWcqn(tfek{c_EUtFa<>4T+d -z$@rDmwjZ}Y`xm!B+AW-y_9D_Kf@{zb5s|?*DvN?!Ny{Y#>Mj`GV$JxbF$d4$&y$|VLNV~@w6E291(7kD{OE2%jihbUl{tyb=|8O2oj+Ppc=o0Z -z5dCdWBx%H0W>IlCC2k<$T_V}*X*%zPuX*wbDkf{8n@>DP^XZ+?JgzJjCN%XsYT{TJ -zk~$ci3kZp9H>%#(Melh3FGb$|FkGMPe!lIK%f83Nk@Vj(BBR~eEjMxqOjEPwa7-U2 -zpC6q_yTSb*o%o_WXKNfvvLb(kesZ4vtS`;Hn1DQHx^ysr!}~sR1yNCU=Lt-2R`>;B -zFpMf~P}>`DF9ulh?&d1U0aP}?>^x=M|D1ug0q2Ikd)Lj^VFlTi8&myePzXGaK17@K -zT||w@ABEP!j`qwsRl(<`xc*y?jtdb5+ULz6Frg^zFIjG!t2X@<=WMQua*`kHA?5tk -zklbb*`Qh_%SLlaz&RA?lqPM4Fx#TPkVbY9_7MIML+52-hf&w<;96jQ3cG(bB5Iqfr -z^Guo~qEmvkPcNO>uprL!uplCzMEAf(Ob28D{1*DnQSxX_wi%Qf7YKk#Gie6TvpqVa -zI*cw7k?$e!XMz>6buQ%|OfTJ8@0ID*5=lYIVkBW~2P!eauUHf06`|217Bc)`LzZN5)^v*s&gEt&9~5dvvO*(e@0LeE4mL&i_tH;Q7x*oT5i>|9w)dboYA8%6~o(`UYT%#QT*uiekbrQ`yn7tKFcH6pfc1ch?b=w_!D*Su`l4yugQ -zW+SB^_;UCCxZgTXC@0xvy;UrrdOM$cMr26Azk}`BI}};}bijZe@3Sx7H(J|IXntXqI&UJ|#hG3w{MtAQU0A*L9u0!+=x%*G&}1zlz>&y%r+nZh*V#e{8{Bpx -zhGsv)8$C95ur^drEfQSl>+y*gq|96h)ptrL#I#+PhgJ7D9vWWeLrqlq@}v@q=oz?o -znP$jV2TK|eptzltyV$$G-KS#c0?QL!B|bUzjqj(_ -z;#L)0@)HhbZ<~3?~oB=Spa0 -zAlGm$rSi(9F(5AE{9Ygh{zO@rnJG1f<=)gf{xjT$p@RPXg+`HmCP5dLzQGI-_5+`W -zZe&MQWX1}X9X~1*9m#EYY`{F&*`0D_{3~#}sluhe#LOM2`PfB;ojrC>HgJr=)qkP` -z{t?}p{)-ddg9SJZf_qwchze*DDhW@MRy6=a^503;kkW|s*KZCu^1q^tkz`-F5MsF0 -zUq7z|3u;9-b0qWsB8RxZ=+@^jYx_dB-{X&|c+{6lm%xj2vUoChF8cOanDBjnKk)Az -zhKvW>-S^Fx841%Fvqx3HFR0U -z@0?&mNpyQjBRK$Pbbg}mDRGa}%y$xgnS=P*9!w=?V>ES)5x(CZSi$y!%UY}p-5l*W -z`YUC>MUG*YVBeIWR)DbLs)BnwB&{sK*^pBQ5bqf2i`1{KVdy5k*1Es -zf;oitr^qt?Hlo2j3W?|i7RBdtQHHj+v02%TCRJ#ySy?AAo~c_$OFwqhOStNV^uf)| -zz;Wm1WV61qnMw^nU|OfOYulb%&J@lRKHlKX*YZthY+nFqpTmRhov{zmn|3H$;+F@J -z%$p64+v{nXoutQ7n`;TkXoHAzMxeU!1K+%W -zDh>r(_Bnu3ds#SCS-``@19%y4CT||ihqK60+`9a=kW2xnGW+r=7a4bP3mn}TQ4`{P -zfAxTZM#XnNv~*W>Vm|*^#v}r;q@qYg(!jyLwSP&kdrGHTXB#p>W&>f3SY?7s^4c7b -zbk;iL(2O=oEfC&6{T(msInXyxgyVwddtHs9o>hm1+%f4q3_PJ{^hS1o@~tXA4w$~l -zo9r4X2M65Xxch*!pTwLm;*7t6jT$RMnchp1HsZ#cf@Q*IaL7W -z84#%)QO(RLMFs1nt;CqOQBH{`?8L$5v$X~|Kt@C{H+(X34#{hle}2pAbEenlnXL!v -zw)O8ka6AY|sDLAwsNkTu>|iH_@z(3BTDmRQf+}-T0yAvIvtwAeGyF~rAC5_^*q+F& -zR%g=)la?~i|Lti^Nz?gqTcIxVR72|<%|ifBBiKJkQ<7hE_{z#5C;`9Hk}_-AVO80$ -z%!j~+{D)Stc3dS9Rg)f!+rM;Q`Y`$$NaI3$ki|~sl6&5Y(M}xtBUfj(%J|8?q`cK)po!R1zk27#>12~*=3b`qr)EsYJ` -zBbD|5#`?IRv8<%{8|}M!Cx3Ed`;H9_h~5{oz%|QZh*W9|WfKK%n#O6_aty-ER6A}- -zMv2-{W-_{-EW%C)TDCIqYF>qV#2R5uW8F`yar7P_iB4YZSCV|xo-KcijIM8!te3;3 -z8o*%$Q?ZDIvP1DY0;evLd(9Y2*!-9#Sn%Mf`%6d&EH_#OfrcpcG2@GtBkxL -zd^^C>*5=NU^Ah}%Y~=qrNJ|isON#tf%NXQkM@xKGw7=2*h$V&}j)H0KP#ZY`9jO<~{nZjN(j4 -zWB=3q=>`%pA3T^i7%&3qIEXd|`kCt0I#pfdTg{bccEsxc_SSXzTM&4LFF0NfAlDir -z5lT=#u>+)BBIAZTT!U{SHG=beA5sV#lWKIUyB9XqAbsk=cnmr-tW*FD-EO6%{2Sfk -z9;HZ9@vE$eSR+{+vUXO4j|;Dy3|vui3L3;bpVs0w4SCmGjhh5N%~l4-$dWreMFklD -z#B9>_D2dx7mXtPWppGv@KiVZJAHC4|5{w*y^_e$}8Od4|aXRN+5yvhMPwT}nn6zav -zV-lex9{#&7i}XwZdjXuc8q0^QAHr^-j1882-_1P`ba?>QZMcCAWxIb_6Fi^LQzDfi -zO?3Pyd2z$gBtMk@_x)2HAuxK84(CWvIyfzx4OrW}=&Onr!Q3CE>UiQ4eX&$g95_(U?02pX`RCHjTSMuS{HU@gktk-8yQOf)SK&e4PC=ycO`=PtPU2Qw -zt)Rz;nKxTv36DWe28tt)d?+9Hhv#I6%>6j@o+275suM#r>njGr(QfXsAvkA@_aXu$SK9SKwG8^IU@Xk}U!vwZ -z)aewm5emz`D$3gSKUqe2(uN}s8A(eNND89jIhcbw8K<~Ike}wF3+@-yKS9*bfrzX7 -zqD%W-x!is5>0bv1(@3a^v4azq7}c$iE+NlqHr`($>G&DCl6(Yle2us%8YN8pQd=b4 -zK(X+Gok~ML!N-Ze=5}U -zUSyB)UIV#^&Uhkb@V-GY*g7;@hR`E>!KFM&GX2Gz%^>_|<*Bu6H0PD2K#de*1&z%z -z+ZqjoJ>u+MH+V;XOH(s>&QiEr0xgzU1c=Cf$Yq2uPnCl8_@7BY*Y2O|B>*VkC^JJ(-4t04Da!<1tc+CB -zUf4S&rvgOtU=Kzw=PwyapSL%>=E0GNpWA}tVfHmOd%J7I9Qyoolb#h+ud9;@q|rap -zkrahw7z3qx7<{8XSyg*;hLN((odFMj?Ucd554VV$DZ_UFb0V-8M&b+Y_hcON$|WG -z-NCuH_VQKDW$nfmS1jJ+sZ{WWpW!7LO)l#dM2;LNdw|)iKSI}kRv(@0jYK?ptqGLW -z?nvL2Y;v4d)SEN?ss-K@9`_GaUuekP|Fk=es1iva2Byb3(D|TPwQic`v*AVbar$~% -z)MazzrE*CVe1)1aoHkHXp@yoSTuXAWrF_K(mU%h^HKG2zr_z}9JKjoLL~ -zZkTTSx|wpBIUx%VOiGr?rYPSHQhze4Ll1S0MY@?Hc<_JIr?9pTT$QZ*h6}WdDxYbV -z`G&B@5A`GW^rfdt5&AU`0qYJgj$flYkCg*~1yN##j~6G7`H2v&bV9NMA{{{%(J8Jh -zAPsj2=rjWArQSV*pL;SOM)KuFFL~A}a>(e?P9)=m=Sk+tBpVmmh|E)8OU@;MX4izQ -zmj{P)d`+zTCc^3dfv3;b4f`D*OE -zT3@$7wj)&mKlAyp1I20Tc(m5<49A~MEPqWfgw(PgQce1}G)feQpsO!EWCI(I@*dm! -z^-{PxqSjwd)(8Q5K;)>GG9Pm7WYmH*6Hd^aMN(SgdRn%zA*(FeD&SBU?hx0Q`|8~5 -zCwTV;6F~vsgh%k+JTo5BsJWBuq{Fm*m4^J6MfUU4XmRAjsU~wH?ib7DtfZtTjHlAS -zV@o!(X#0y@+l7^1nd^(g4SyQ)&#~wjrV=}Fo|3vv?>hfvx*IE5IuE9{fct*EDd&5H -z{bOx^D5Z@+6!WtwZku*7tgQuUUY;mki}azfo6mVLRH^chj`*`?^`cM(_1${Yco^w% -z55ratgNOQNIO?i-VVLrDO{Tvn@cl|m77!L3)E2>c9tY{*Eatu>t -zAAfRPLpfoS{)sc{W^*LM9Y*I?SI;QU0hExcf?pc*@#JolR -z37~zB!eE{5*^TQ=tfrU$-o7~?H`FUIJ|9JIalsN-$f~)AL*GClr1bY6h2!Y?Swmqk -z-Wm?22R?VgJyx}FvgCc#+b6$|3VP$loA4$qZ0=An0M#lHZXb)`bJu!K3$8J#hGB>x -z^q#4Wd9esW*CW@`_pA)A{Gxgtsexr2o#11B#rEA -zK`K5cb*RZD#pdSGcG`MYX|6IbjY6$N>LQo(W~Ke``uxMo?tPtQ*f0s6CdW=Kn10+6 -zGq|AO;p}Wj#+BW&ZSpQiWha60>t<|39bQa^wkRTb7~M71U8qCys+N~UrVt$_MQ~9W -z)1nX3j3u03Gc(W5XcbVKDr40datb73Sr|%6OIN(?Nrx=2wO*;TZPZvcio->2a_Ka} -zzsbjN#8niQKC>ER>t}YUi?;Y-iueeEL5lQbP`Qqa8zk<3+w^U1;O9CIViRmj!H#|XD3G(Jw=dT3eJ4fjnD68(h-{s?a>G`TbFoZoDAIpGS2^iD=maaP99?nwoBKQ1@B-f>a~(dC4RF-t -zgBF+`@q-2gS&-6b5kl%Ps*wsI@w}iAHzT}Wmk1cjswv~o2%*@5420fa|6z>}BC!+> -z&CZ^69H2FMwU-iKHZo?~s)NrCWWA&kv4wNwj>5YCcyz7$x|7v*a6@0vsKa;A%=$nB -zxi}USmkEFgu8CKgM?O;-~&E^PseZ} -z&-g>H`&OsEfSsRkFDX)aQ_5Ah%Vy4+p&Sb2wTbANS)sE4;vr6dLzpa_B^9X))P+-c -z^2Z^cW7xPG1&s7gVDY~9fj?mkDiL;>=O4F#LM%VpMW?3L#_Z!PJ|iz6Hk%GT2d=Rg -zMi*?_-JoM*>SW*X$*kb+W2Y}(fB2%aPDd4$|0VA~Nd&=hp^5wZpj~MCdYnl#7IIh< -z4s7FrXOKBm*zUM*I*A)b1BWxNQT&Eb28t$56Vn?|A~9e`$wo|KPQ7Nc`lOWe -zJugyf0#h}Ws+RQvW>)#xi{qt`sE%zOb-{6gRXU1EPogxUH4gnH6ROOM#b$b0>(^52 -zQa%%ZAf+YGgWZu78^-vgz_ZMRxF(tSFwd(EOPU7j=vKVhC-n96OTo^K#t8~r?!>Q3 -zZ4}~-@IpoH$b3y!E`Q-<&aIJ}L)QC3D&rqk&n5#X>l6uDSK2RyRYc21dGK@)+`iDg68&;k9i>o1-i1=!y?;$( -z7iFyk%YVsb!4KrCR2>uNgmFnEX_^F9cyU(hVw_=zF6~jXhDRtVqFHw_tb8n`s=8^LPE(42UkrW-O(%cLXhI -z1ugTgIphM|@B03MCgeBO+0>BF%Yj^(H+Bqi4J?`QLX#C8ljxZ)H=+Z7186(V6Sd(a -zHFjU`ucfTtv*`h0E*+V(m;pP(Nb4^n46BMigsS0$nmHjuF-yxO5FNsPE}X7DAy@V$F*0;Rj}aDgAM -z-D)pS86~kKR=TcRcgVF7c#Pg47s7q4h&^*4!yK~pWbiXI$le=cq=U*??~`NZPx$~J -z_CUtyF0Mva(q7SeF(CFS5q3hd!(DaMa!aWx^IP#fBKNM|eabPL6LH1Qi8~dd)N}$p -zHG*4vm%t4Q3c0 -zvN;&6DS`E#=)i4KE%x%ZLwrDt;WUoDq5xrX#(>kvaP?9j!42>Yf@eO{ -zpc<#PR>Yqe$#@8&-;=%W_XW-*LuYd(SFrk$!A9UYfFM{sluO|;74rbjUyw=4H%QDa -z$W@sMh!~tKNYeyJ*Tb0|pL -zc~W={mh$c=y`<%#5BO7kHi3d8hLlRoyLTsWhb#VpC)I^zE2ERb%bAW;+jQa-eHDM-?BsN&arZt=BZ~iI0C| -ztF+uijhs~qM8wunegkrp6B5BN9d%n%rImZC_1*|lRod|xrLS)BIDYgl`B7$LZ(e9S -z$r4G4TA%hkaF+<+>Yv@Jp*yoOfs9OH#E0fG_3)X?F<%xKRprfY-n(LoZr!8?l`K5z -zrOS0cy{J_vx)e^ANbG1t1*8LtQY4i?9D*A%1uVe-do0)nNDJm&%r4qi%F+xv3?!N9 -zoIHH)Fw<~>6rsuZv{4*>yk64tRp}0Jr(=?0YTWgUR3TOzgrZLn1U=@1+)0@XRk0X_ -z8hRXiW8o4%CW^LFBuEJmC~5DuSJXS@{r&xA%(2YC2Y(-q2@BVh5+$G}JJ>8L%{T3t -z4ve?lL`LqMx&H2CumOIUar>m#vfZNOj9tnj2#n(9bWFu=p@fzbXyAvlM0#O|=mgkm+#i!oxa -zIwWeSIZ;CO5H{$N55@ca5A2b3Q}c?yqck*In+plX^FfJNAepJxdCH~t^^AU5_hFx-`6 -zAy$(0`#rU4x?R+uh6WgLc5-R^pd)CT109`!(C(alyzLHd3 -zMkDm7l;Uf>wl{brTyC}^P1tjz*{Qit(USl-#{%cqE>ou_KgY=-sLtbMh@!1EtgPq` -z8%QV&RH}$fAk6A#mc}Tst^hcaHUXxh1VL-`aw<+DNS8~xvOlayfnNEkG^$2JNUbv4 -z=F%!{=nP3J*AgLYk9$;%MSUhQ1}}HIdRDgfz2XyVI_kQ9V;Y);qlyPy=kVOb(%Q+2 -zw)l=%B*sM(JL@FMqEZl_AR^`Aj;KG@JJRWXVGR{n#laak_4+_20mnd@qGlo8(cxJs -z-c8XO6}jM3es_H!EpMRQjGgcUR#~i!mrd>@szt0K5}<;PM$ip;%&9Tqz2)FbV-r8l -zXr;}~Wq5N~Mz1)U1WE2IOpazf@bR{6#ZH@ni0kj@b3Ez;w>FOuurL)fSf&+$U|J@D -zMb_6-2x65#kliCmS)CqHVbw>SIWzln7A~1KiUCVO7Q!HeYi<25@^(ci0rhgy$L(G^ -z29r$+at8Xt=Z|+D;$!EUsY#U|VC94G779JU`&zK;#Ht9d&;vQ`$U>h4n6v%#7V3s@ -z><`D*Lo_C$0WU{>9Vz~9H@$$;HdfxgG9k7x(C$NKe8hw39TQA=e22liONIKhBt7io -z9fK?(#cSk`nbAC*6 -ziP(JBwK(!Dig-WzQPSQ}!J-y0UUM@w3&+ctt$>r#y&$YO(mckJ^u-qDoV&_XFWo8U -z<>xdU(IWK@1(JaLco2Rpn97Yd^^S4SVHl}5_Owdkj}ZyV8LSYZZC}_NNUdO-iCQ9( -z&_&EO;6roHW>PwghoZSM7yCj69jVg=y1(i;9klEx5RohwD5Lj9skyi9LgYMVgoS%l -zFT|to)TJc?(fvr>bRS}c-P3e-Q#O1YQsy>-uh7n>2QCeUf|3=^8T%W!$Tm-Ye`SzF -ze$d$quFz(nYur+=!K3V#DGlbufDeNN&d)K^B*}v&^MMtR6SIEhQzYw;;yIw{>h1pYbH=8zmnTtr^6s4iTicl>u -zJ9zU(g?0UvZtxI{QdjRFbPbjOy2q5(R<@5oE;n9{ecT&W4E&cG%9uMBufLAGj+w#$ -z#>S6xeBl{(llOOS92lC|vk^>=0u?iCT6t%&V5X5|6HR)cr(-IeWt%feO%fsd@&M#5 -zWr!>?0p=~uY<>`}$2K8IxR>^P$sI->TSZFmPyX@;KyFd&FuycsONQNU=vY%ND$Xx( -zL=92j$bM|@0pYMr;0jMp0{J7%E*I(_IiXVDA!%~{>+LE0{hvHzFkc*PC%AJYo{~mi -zQlK2y2FMv;*lc?WxfoZBe@Ku7WZjd1XpthZep+^tJIL`Gg(#{z!VW_$erk$Znqi#V -z7#Cc+;`XR*$I~z6h>oc@&FATN-(0M|@0;;U2uERb5(pFE@1PoD9ga{?1PWt9|6v>mPQIhf$I#J6=oFWKg8KM92Q -z5;Jk7!bS&M8m!52z3&Ja@GO8v`AM9^q>6@OHG$y|YCU!#%i96_lp!NvfS^LHMtL5P -zKty>*$`OHKHQSaX;9yh@Wh89r{77}^`>aNczC}6UioG5doZ-m+4$!AqE(pa?@oG~^ -zok~Z(WLxRHZe)um4TCu3FY&j3G>O{PBJFHI~V4F9$m{_mWT@>^dmgXyN-OpCkuQXKy*JYdndHBm2!Z6wDZ&rL?c=?izAJ*d! -zbp-Oe0@5vHC;FX`lm%Ir8ptjb&VVf0;||ZXIN(g2ibum}0A~41%dAds-!yv0b0ec`ywn -z8Ib?!N3!2gJ^)hXHwVw`YY`HrmZ^X=S^!hQHKQeTPe47@;02PFMwxA*fbv-s%|_B& -zcWt1JnhX0-A*iTft)IAyU&-7=lR7J*f%FJF8O=N}B8$zdQdkMPFL)xJKN#Iv)Im`+{KWj}tHrSksdeBBrzE%w-OXfuDQIdMF- -znh~XpUDfpkE?Lxc$n}ADo(E>pdvQ=?jR3+?ZFDR`7L{GD(6QLJ0BK6iO=OnAbJu9QSzm -z=$zWFkKn5_xO$f%Qry6@hz>}aLqfXZQi+%2M2G98!|+gC*_MXjnE}??o_;JA4wC!2f(jX*^Zx^BxVnU~I>F{cpZ#uN7FNF<3c;m%tN<~J0 -zFk5LP%c#al0A5M#S^SiHs5`L3nioJu4WY7{GM`xOXRSiO?VpoB7$F?U! -zI_a+8VrUq+Sd)4RFVq~t+EMt7waz+NIQZs5CG2AtOg6=)710SsIgf22^_(ihXzS8^ -z7dKTWsfc>6_M|N=dJKJH;dy07n5GAncsi0JTwS)2=pl;qBr&F(Z;Dn#2*CwM{Yo0# -zZjIQlrihZg`a-}`i2Yh+iaCigo$9;Y?z7?te22(}U?-!=Y*KDaNd){-YndrcW1U?s -zZtXfameMGDb{|*}Vx9CqJl|$dp!y_d3;L -zty2k$qlwW2w@5SVCCdNQ-a;$yoo=(os>ArVtozS@M=}-9HR&p -z`O>>DqC_4td}qin^@+u-f$T?h(!{`p)EUV#DHo{*^8ne3WUA#!TClcn7HR-*zzwS+ -zZ8%JFVqxY2$JDNxU`-N|D@y*5VE;6zgJ7Camw74$KjpJlv+lO4{W{|E{gA`lX`8qM -zyySkH&JFR2_T4bZ8$|myY{v30KT}3{*h8)`O%$=ncL~@n-?nClT)XHni#QF+)tgs5 -z>w_fZz-m`pfLL>;<*Yszlp+j9dEJx?c)3bjqDQ63ZPw97EPX?ZTLPA~opVm~6yfG~ -z&sCMNF{2<$Bg|&SeY?-(;=L3Ifr_|{)`5`QB2?>WR$KaFj3^83QlzF4{k<>+dm)+pOwaHbBAhAn#UgnOO>l# -zX5St+eqn~04MAq69<9mo@5BFs$FeX%8UBGT(60LBqko9rQ(L!a54DS=mc&-EeS -z!COT^5ZojBb#H@+D@brvG&D^?Ty;);5x9~U^0=(8JWUO*W~Y>v3ya^dc=hE@b_Zs4 -z+R~Cb)SRu~@C8$Y%6@yHGlOv{`@`KqdGGfS=8S?eO6G228dw5D_t=jrz>DsQ$a-_I -zM}&Tt;Qlkyh(H -z)+H0BmXlhhjKIO`Gp|qZXkY1jw`iizJEet*CfUTB?OcP<!>v41{D -z9wJ;OtGQr@Wazi)`W9^#t*1X5P%vr&-MA`ITIf+@u_D?)!eyVbIt*VGp63XmDxLpo -zM_>>H-H0w(;gq#$MGj{&useERE$lmxTT+9v=LkH;4pJn?%zI3lO|hW~f=35RI-f#P -zDsF>hj!-3yEkp-=3MuZ4^jQoR9P>?aE00EOCS_CDM!?%od&=^9k9@Lo38s&FDy;5B -zg^+?>4AjZMAt}=1WpYK{O?1f*v8W#p!MsoQPtFhsorOOOeX`!a5x}tA4^SoY-d~UU -zuYRRxuM{vFeLZl*RlY#`iH=w2y0KS@R}zPtH9He+RZefzh`M4N3np5cfpNNR&yKWS -z?#%#A+?w+qM1ktS)C -z!q3UXg-e`}w!$28Cd|5zm9!Ihberk*s(0yxeD<`V-#iG2Q&iMs$+auex*O6p%e~GE -z^(dI2A+go6ws^#lF=Je@E_GAV5u%R1;k@4?h3o4{IH*&-vDcsRx1>%7&sW%6QC%a*Pc=zU0!ZW#ZS$KkW<9muO -zr`unoS61G#8v=`2@i|P7n(!U_osa>w_hvh0_zCG7q+%$0R6S*rROED>YTDfEs7!Nd -zx^n<^MLvP@5d7X@)@iwiH;uFAHu8-~VNL~X=E%qx!KqqDCdg6rk82TJ_%I|m-q&)N -z_i0-^;b8Bxn9+}Bv@rn}6M8D3h2LqzE_P$%#%Bw?vPT#5p5)|B$rf&{KZDZIS>faE -z6H}0Yqq>#8S@Jg#P2zqjJLAkeKG?4@|Nc~1LB8C+$t+>9`UXvb{tP##6xR!Tkwp!v -zfs4m*>YPYW1fiCYY%yuctQ*{>&80Y2 -z4KIItDY&+;w*DDqL_YsjlkqV&*PK{0$2rn09?D3pZ8Bvi -zB%Yh$V+eK%H>{k=8GtuEt3OVgx_Jmgy<*syG;z%1#82C*^3b{sMSnHy$`l>TllbBT -zr`1cPX=upk&%Vms*E===G8`)CAa4PwMdBTzESz)@ddJ`_P{;%38?VcNR4bwdL1m-3 -z6up72m<`@0_lA;Iy#DOzUmKE4UbRl@*^@>5E>sl4%!6_W-`$R4A>+P6l}}t%3-lAZ -zOb+Uwo_T@6mw?sr&S4~9eU=!#fhzV#aN=m(gX?QHfntb&<~o)bnP>8<<&gM8Pnh&s -z^0!`}I`khvUKgaK?e}BG;I*Q`SyU&b5hxc-{dVjdD(HoB=(uwzI-6UANQs!;-3oH$ -zZZW@Mf4%$Ej0pN|I4yRaNa{y@@#l(Q_VEnmrOAvJ35J&iABw4jRqWlIV{+@e>wrXf -zU?W3y=sbo^4$rgOT4`MlLXJ{HkX5Gh8&7f3W>9ju0-vTa -zS>4$!G^4!UiXM%NO?-}p^k{MWaHSy&)}ntl6W)_)1aQ3@Lf6?YxO>#>Yc>8=8Lh)& -z5p3$Rk@vw(^ryAI|E*|7gnvM#NMNxSC;j>1Ih?`JiPp(Pn5@rN|GV_3;LrMEKP*g+ -zZtS3>c^CICJ!7yyWEoIpAYt3FgR-XkFTgrBp(H_!Z*;L-IH9B;naP_~_v%c~H5@Kv -zK(yA@ljgaZFJBP_{Z()@`AbqYUAjBuQ2h8v5EvTne!687HKqa${b8xQ&t) -z6TE{j(aTj^7Qkgyb&?(QMA6%{S4{;Ev)_D;3EmaWd=O?dq_hGbuXR`T67nmGab9P5 -z-9~{Rw$;Ci3V4{i)sy9JbP0E-#L2sU<+c~3Gb#-5R9QnV>BN9+hVfpQ?F|g!nR=W$ -zg8RaTS)#V{r6O0i6{Ch1?bN>3Erts=f!YH)_DblLF)uX)B+{HXKvP02>^yEmaDzJ9 -ztVG+TlPT(Yu1BQ9$z#|kJvX3e%uslWC&b2K4mQE7P=*hDFh(_6*IXwtT^=(*CRaUY0z^_IhB)UA&rDe*BHwj*RW2jc) -z2M@*KWM!k4n%g;D;99f;ii3>oH`3*qU!@G{$?n17%|5(WTi+Ps=St;Bi=`uU{s&OP;QmxEos4PQYCeD4;rMYTjat=if`D&~s2zgn>0hsuLN -ze6WP_E=Fu5FXQOyxeqA#T^0jwhZo2xtJ2xyxA8hv4X-(kg&sae -zN<<#`$LUh2vcY -zZP_9bPLs^$RXC&F4c$mO8Af4xO5g`rgLgKEfnT((JNoQI!`X@VDAcwrv5 -zd?3)?p^Wirkt55AAyx75?JVcXi(uF0prb -zR6QH%RLH+gwp9m=?cMc!PELv9Ul=q?-;*SZsz@xaEB1TFl5X1kyv&ojm^UJhlB4`l -zKCfnlltNC}3ZK!{nSh{y@Asl+mKBvvF`gpsY%|7GtmkH%2*6rI#Q%d`4rhJ?o*3sTh|#u#`tS>pSLG4d2v+Da9?8}(CZ`3^Vx -zysGsnU!o#NWpxUHMJQh!|D+m&<-ik)j!h%om_1)&igz}!D<1yaG0uv((~5-DT&K|< -zuDG&we`XeQbzC=pOHjyxqFF-B1;b}|6vd!j<4BJ1Xi@XZo=v?t;joNPykMH}3j8q^~4>yJ9 -z{Zk#s^vAr&3s1~4Yy!h3Y&gSDX!4k410j6Uq|Tl#JVXU?2d&UwYm%O9MOGUDvxDzn -z&KZcn{DL&e^vYigQ%JSI_c8B708x&@3u482U++{)YD@N!aUtG76g@u?;~Z6>nMIb{ -zf$l8v(TrKmjL6xqq~lXlTIK -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 -z2n$>*<{5c*g8~Nx7DfJ=^?G?J@9o-Lp>x> -zd;mz894fy}#Ui6=!-HP69o+eiU2mb0m>pt$w!f9eL3vJQXhrA9wqMvo$LE|9fWMQ& -zGJRP$=jMLnzI*qmF<-t|wUz`*_Nz#Wi2^)SNUe*TE279K)2y1oLr)k?VsJ-Prw;Qr -zP_^E0Gj4tz;^v1y1i`urIDA*6szsEZXou8B--T}uokf3GR%Vxa+;5+ft*Y-RdT5$ -z6rUZa+DZdppDvJz4vSs#)-bnPYL^yvz0NpzutcmbDG(em9w17PvC~p!0Gia+o<7=S -zbr(&y9LZ>pjys+N#B=E-%ajPFi6LB2-*2>NjS5K=?=_lH*X3uY;k6Tkj9|&Ix{GP* -zvX?S^r((jHnBnC(Ws8j*4_2Q+8Qn -z*huxCLAJ|)8Hz$k(C+tDM$XHE;)KyFS9Cadu1}w6KOuVt!$NJ#zY;V~3s2OB4ZsY)9gkV?!|HRFze3d$3xu+V~{{vrShb+Y{d;(nX}>ti;j0B -z13|n@Dq@$`Jmt_sYg&FdA??Dg>F*gG~ -z79`?<`%V#a*06ujr1;s!;K=O`<&lBHv>NJYvT!(bNL<400h&5{Y0%t6j$FlJSW-4} -zovOkY!PEuDd?#>ti>+9xJ)v|wIYsFCN3c&x>c)Se@MHI80c;^>SCiibAR0c%)cRWP -zK+AjJC7R23FIR*@;ND+&XSRCAP1e4y8vbqZdyplXq=RoQaLx=uyGe}^U(G0ofiEBt -zCEF}S4{Sc`1of2(PkWK7!(x!%s@ga)rJA+&w>RtNt*6u;5tOOs0NqyhT%|r-%U<0j -z@?Q6<@fQn_<2f5!BwXl+d?O}&SG7v(^bhzY9t2>yyARn8H)K~ST)G{0EY~h4sbCKr -zL#&J}R|i2Hz2@~L7$KT*bVX%4r49C^7bO7E;Dwk`e3M&wNuDj$BzhrTo|mqL-@_k#BmU@#5T?FIuc{K -ziAF^DZ9Q}0iI7CffZx~4g#Ku+ZPHxLCYJ_=cw{q^!Ygxp@}lT_-1Eh0D*M$92>7nv -z+0alY50G|j$OujktdN(ONL2a;Lf0X9#r=ixyuQ^>6YOT%3hfq?8a!=Bbe_Q&WnT`{ -zlQ%ZP&a;fd#f2AC=At_|6{?g>eRLr0vwJSr7R%^THEoYzWPDc8~ -zhr4aq-zcL(ey=}j-3&)~hGwaPmqEQV?ekRMGs*b7W2h)HkgZPZ-r*VJdk=|AKE4^F -z@b(L&DEy$pQ`1Hc;S#06wSMh*lD+^Y|K;fDHIps%c0Hottz6EFF_pI;m3E%2utH41 -z-qfQkOVCd*9g228-wpjzqj -z1NYTwB;DgQSUpetw7cB?_#?cCPzxB8f8)L{Fm6<~`_`V26Z#g#S4BeoTj^lT>#4g& -zULind50sqgDt&hZ^9cUgw0iw%j$BaBZZHQ%jv+RDOJ+kfFHzAT+_?Rhag+KZv<=au -zDi!ByJ!JC)K_g3Qwc4)Ob@10@4g~*Bw5W@<2qwQgg(h?ZSdTPaf#JgsrVDGwJ!d@( -zUWy?}B>uEEJzqshBZqzD6^tTPUobnz-MboqgiP(aU*!W@bquoJL7nQX<<6wY}X;&3@7MrED8Qt_gQ@RAKK8$O^PSM3F^n=r5x9 -z?cYRE6*SmoHUM$T48^yOLuhlTPD-CKebEhm9yn}498p43Te{|6nKrGA^l~NKJE?S#yJRQhFQQm?`Y)o${z$!2`7i=Oe31Li=hvUWqLL9fDI)*m{g=S^ -zo8Wm@BVCu5O1JXLO2lQ$H1!#!QDEB`0aA^kIK{ZV!e#WMry_PKi=B~1O8MdZ)x`!OT3 -z#7YC#7Sz)~_}oaJX|063KA8FzhsPf$j_ZucGV74C3D -z_HBi$ZGV@*N$*UwM@Pl5Xas4rUS?_uA3bDbngMxf?lZKw)({sJcMX^%e%|uf9D-R9 -z2p6`9owj!QPBa^+ebgC%BA#Ki=p=Mbn23VP;X>3w-v0Hy0_zApxp-A*fiS?U%Q4~7 -z`4}N)^PG@LqgTk@Y25ha7ab>!ix)izSXnYgL^PZn2xVj;na+t^pmnOj@;LDIgA5UKkcQ$-x%@5wWTq;0lCe;UgTB{nT -z#BVB((t|>R=yclx)Hndh*z&DzDAwpE^?9liZ6NkOSdqS-=zQ@?H^+V&DBRE6FyWoH -z$?N(8nGfi^&1k9uv_XWMa=>jb-tKL8&>}*Bjxq}y?AMyU93fx#zuJ#SxECKG&!2T9 -zDU7!h+HTjpOYH;}kO0WZI1+B`im^(J(OvSq%LKyaFozjS*cD)5b_n&d*Et<*lsiH# -zdd`Y)8T}?rK?ZILXHj#*G?vN1`a>@8pW;B9V_HBvw -zewYscb%gYBjLKB|3`%l|Li%fVt!&U@)kr~dSkzyR>6XA^$ripou -znx8F3l5#9?v3d^6oRI&?6N%FQ$rHzu>Hgx0vH#|Y@&7wdOn@}~zwty8lD~Q4Q+(|w -zPsErGEggZ~DeBm;8KE$e!Q_^6ZqIVa0-C@5bcg<_I3&Q4a~q_HpOydR6HD`VXHN;{0!)Sm`9h{^=7>CI8bW -z^8MQJ=Ai4}YQ@QKpgRr%S-#8XjvE(P*Mmxm}<##-G?II?0$=GMAObR~ndJU!G+ -z8om$UnKcAR4qRk7k+;qs+*x==OGau~_~cKwh&pwi0n`c;)McP$*OaqL3&N<*0v1hy87{z^Dv`Ufe>!ZS2p8#KZgok2QaGE}f0 -zO0)G9=SWU_JbX>^DP*4dgA`-DlR(RZO)t%BRBRMcduD6k=R!LZozOgzbJ56U0f!cye2dIwedp21GQ|tV0-&R--lhqR8=-*0Vx5=PFm&_i(~NbVVplNk}xZ!IYq0Ws>as^6%qSmYz$zM -zme{6Ye)i?>xI{Bt6#uL{Zp-oOE%XRA$p+g^*!+wzvaIj_z{Lv6%+Od*4kImGq7GWS -zY=vv?89i!yXaVp1lEHxlyZ4P12iYDB+s9u -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 -zv*m=@8xhoh&seLt)l=%u -zY*5Yl{%fac=yxP@PJRg+%OEK|G?AWHVwJ}5UHd|Ki#6o4Du02#n`(S#e3>7wTyGx?|Mc|py5B4?|CSn -zw^d({D~h|^GMX496D-_0%ysxVxt)I}kPvG-z_%Nq2`Yp={qS*(KoXQg#Y@1|ZtBf0 -zHB*`D`YmlpQqZ#N9zW+QwPm-vU%HA(X*Rhw^xlz85>yPHi-3^MRwdLg7V&$srCWnd -zRL?KlO@n&FYHJXPy_f3pIxy46=D=0j?W=y-JaOU!aGPg4Y -z=p{{n0VWK{IhiT^Z4545A2Et;&MP+ks(Akx-jxeEhi4ucEvHE)SFozu8k`F*l>|pl -z>Jm0H4&YA0-nAA-MZp5T9r$^4TVB!l`isv+0hH7rJw+a9WU@F?olJpS -z2W`SzG+EUJr2Ex2(lH#K+u*3kE8D99Kid9js1k|y>1S@SK|#k#)qg7Paq=fe$r?2T -z9T(uNZCFi95}%VTKNs_dqRxOBW!)$abc8fB{ax?26;X@Qqb`cD6(!|{PVq}35c0@_ -zSy%(4r0r-S_lV&}N}r>k)J0+z*_RqNp)xm44|cSlsuYcKa0g?@4l!TUlV%Ze5S9bX -z#oa*DdW{~g{cFC<m`?YgVF$2kOQf&WSS0c7w-yyls -zkhU{%56)0W@)9+dZQeID(QC{U2{YDWk@fU2WxcWB1Ga(>y5`F3mG!P7Lpr$n?Kv2-X-4TKGE~fjYc}N)BC8EfNlzimU6QwoXs)n3eD0d3zR||%#3q1T3VR`+c&9k!4 -zpT8|xJIb`7hT7$^05DLo12goDjS%8!-+qR3;J^`MxjiVMzhtj-g+M$mVaLB)Qz!Tz -zk7+9cmHeikJlRM{9$gyt&zxB=zLl1?pqxLq8wF>iHN&AhBb6csVe>B5|L$cWl+NiR -zyKL_?KRK>5TXrp?B2(+!X`D3I@QkWUbAwG(g6EHU%B})Y#-ynafr0G``59fD!da8a -z=4WSMV!hGx#2f#vekVKrc*Mdl3SUV^IiL0&&<5ey>`;KDjhl148Q3&l)j}*^LAtW7 -z!~B|_j27NQm?phvLWnQc!F&quVTm6`E+Q4Of0$z@PX+1)R-Y8T1UYXY%}G$=6|?+& -z^0;ncvhUjYC6MFCHS -z0Y=MU6HqytWa^_bExPn}i>aTT$Y#pfCW2RKA6?R(<8Y&%MCNJ|GY@Yid&$I=ojd%X -zZT7+DP%{Ii2PlL~OcloZl{&hvt^{w?UieWdtV-Rwus|3-dC;&~oP~;j0etROpm1X8 -zCn>6k0`};aR4&@5#Kz75uDu7r4;eRMe0;wFO#4HyB(Qt{kGdAz`&dyn1Q3>uS9URji-@OyteCp1ZUO;cQ -zOPECb0Hiz~%Z{gZ31O_$35+EKRNz`;0LbCj$|mxL`EE32@}>9jGq`vT{-?jVb&Q>e -z+kgRUQl6HICtou8*0*hrN -zH;`61h{U~}_R91sc25Lq(?TkI=8OFAW5#R9*La#>Of;@`oajV(Pv;RGeF%RPIbc;# -z0f+hBlDf;S;TF~}316^YF(k4P1rpvQ$DV$8HRk&M#O6Q%!ffpNtSwHzc!vW(G5kV^AWV)0ho|Bg6S_ATZ;f)VBI;-3@?<#$sD{#GrTy$hFm`?Guq{jkszgZVi!3U(5N7ZK`i(3VQiqiy^)1a1YG5<<0Kw -z8_c5(Ive9GN@5b>{ICDdN1Xo^0{S21ZIruwR{<-kb9j!it$l5o3bn(Y;mWjI@S{Kf -z`1Rj-R00bW*qAvZ0=NL8_GBEPLvl1^uj<>|IEryP+;wOso=1~y&=px+*@(kP^mUMz#dSegUTdr&*bnm;@O>R4-Sy^;_C$h^Dnz#*HKH&*O0^P* -z+8G+wH+OI0){21CkW7ud1*+$1=2vV=eL;`;-6`WA%f9Vz^Y|p>2Y85I_#9UNy7y=U -z9?sI^r@#hZR*f}4G -z5Xy*(#gsWyGNqg~!qO4{2h|kQlpJh+%)+6vTi)ShIdH%X_PB>fBI)PI&xxv`J>Miw -zu>mW4y!i+w2NQpxkk4y9$3$C2-_Bv_D~UK+&BQL6S2VhVAbCQBdT;2Z%}wHjtQ!8Q -zK{SO>*grWSH10u7-JFMqH7L1Yd`!Rh=U>yLu`T8RF`ujFFp227?#O{MAf`cWSR|Ic -zz)5wL_}EmcBxwGyz_J<9pjstxOMDGPv5M^|@FBkSXxD!KGMS>5^>eY-DbOkR35O(& -z-yj>fT8?l(v)95D&V9L!77bWeEtkU)N21_6`cTW>i1Cjt0{}>JW$f^}|ARkM -z4g%U?(|M0(Z@=S;G!f`QOT?&9fmizER~k!(TN{D=^tmCmGdi`-`v>yI&1uI@zxht>|yc0xB^vpHP3Q9o0DZ0(j -zS#X%RmrbD?sC=n5zoJL{Yx~lu*_KWc{|KE+6|xTF^#VN08G0Yqk=Z}`KB1EFa1x<= -z%&`Ab@*oU(j!s-5nS6&L+D<{0??Vq&6B1A0gVdyiYCBY(bm6jA--VM<;6u$u(g!Fl -zs#zKC_hEN+Ay5~@A|LB9%s3(UqP@<;da72Jxp^Q<0+~=pDdQlD?Eg -zLuMma=b>eI$#?Z;l~7?F{M78jOM3>z|MAC<0#vAysppKeN0)Ds=$g>|vbi$117vjA -zFHn6XZ@>|gWTJpR3L}0c=^Fa^dgMBZg5Q*4TWud;5H3Boq6q<{KYW6II&yk~M(wW2 -zVgp*l%CY{1uwfkDPueogLqFPb0w;j0`I&0BC$PmF=*kbsPlLEg!ZKo@U6MlP?(Xa% -zI$Js9)`A+{(}K?5IFhy`GKfTNm~#tDD>WRoPooyDg*IO{&A>g!JUm{_!lq?K9{@2& -z(|Cpt+UDyM1sS#G|MeHCF61>#!7fEyjYYw%F={Wy13QbKweF+pT_gp!d)B0jtux__ -zgc-G9yYf;^A^R$?w)^y=I`7Glt^rm=igE@ -z2NP}Ach&8cF*HIBU6?TMCCO5boM?A91Axd)mt18|-Au^l$hl0CP4KaDwvhs6Sz0Z1 -zql+A~df{~0!N}Do1WI28=s@W)8h2{@w6jqCi0R`(*P$9*kI_cv$^uVw=b_2KB%=ca -z7S^sK$Z+>Z=65i9!t4bbIpHhWc7YeP1IkB|gv2pN7#i7KxqGj_oCI$iHP1 -z+l9oLsJ~;~esn6GtPc428#-w-T8K`lDMnJ_776XDu+>qFWjzL^meZ;}BL9WX6NhuZ -zz{XyCXfFXBY0Dj6B+)=;F7B_0vZSU3W@ux(e=DR*ln!GPP(-!MN^u;Y-AG$XAV;Kb -z5#)~KlqoxQr7f0(I%G2t^~0wNS^W9mpF{k#fq0OAC -z6n^1a`Ttln`p!1Pfyst6%9m}%m& -z|7pF7VQVDvD0FI3M-X@Zh5=nkMuSQW-u+B%;)Lqcx|%15HD-Z&XiEqdJWHZS|xfVI?RgZq;1n?nM;ktXOZ#L@AJ=J5c&L -zcUgPb&U}JC0~lwv(P2aPFr6NVwGN-YcXFWiaC-JSqC^bGt8fvW;VY35Vyxj)nl*{K -zic=gV<=tiV;_xTvUcIM}ND90T=JqbQ`AiCpR?TiRt4L+g)9=&ssej^I(YfrCB0+sh -z0FgOI{dl}_wP#_5ZQy=7P=|`knM?mV&sSu0h-lMD4#xpX8YT;UoPSEE6(@0vv6lbc -z3>?XOuWb;0remWCECKv1SAseyJvKld8tIo^7?vOCLQ-l^E<}`IfEM%^4Fz?@Op({I -z`=j8RRApA>S*FAhua?+myocpi|0 -zPeNL6e?gp)7b~tH{oUVpjSM(8`N(f5LoAY5t9Yn^n=i#)(ByWmYYVujlH2Tgr3g<% -z-o^*36WOjr4YDH80JbuPUC#y?N!Ndj5di}Nt6;UCLM{p6=LA*;&RXcBn65bth<<}$ -zk65FY!VV}*f9TPsC6m_8WrJ1LXG<~4E)gF%hl>)1{Szk(9p;strq!+7#@oWFQML$p -zT8|63zPI}^UDzc;*9J1u8jegk_QD(>f@=fRqemsa`j#W*^%VQO@!(~LQ!{f -z2f^)v_;j7`N9tO>v2Q9_%Dry^d}kUZ$LQFLxxrqdP)1(K70wrNllo5c=(E;$Kw~k8 -zcHGvN_2R%hD_4IwFPScI?>CiDoPo^ooS0tJL?<<5|x2s|4y -zMmS@j!{=4$fpKnt7G5z*=cEuI3PD}bFZeetmF+&x*CUJnX{cleZ4d`JV5A8EUc&$q -z{Wpov9-6T2`H&sgG^K|Bnu>eN0@zLA;<@y>_9LBpifSc?mBr{V(92Qt@vIj)ap4;4 -zG*zsdKWQ1eHl9-auzVvBm+hZ8a*%y2rc+tV@9mVM{xpV%#l{jDZMl;CgnTa);l(0Z -zklVkS<4sZ>e_x5o9CfxnqeN581`>58XjOX8BmWf)ow2W61r%`f4jd>9Tik?P^n2nw -z3|hj~ulfarf;5aHNz>R{O%82C@_-~C_UT&Em<7#h*AvJ~0M&>7hr?7s9?I>Xx`ZiK -zp_$G{lkxjGI#@uOL!uRPk6$>EvEW!DWhgj&vNO@}8r>&eU*~5c+(g$P$bBth5Jj1k -zR1x+ps?yGKb@*#ArQtwMr9Me8$0M$Dyj(~Yp>me9yyDV(-J7H~c7j;}UK!}hmf4Iz -zBf-shHckl+K{r%EHV<&_05SXFqOzBdBx-dzI;;Tav)@S8E2kVyz(dg^s9POlS$#nb -zXOGLTXE4l0`vtCrm)jo{)@oj<+J=Q{mmjq?M1@~vqt)e!dkt(92S3(`){}3(*z1iw -zb0Do{>UTm%M<*U>yF+`nyBlNU8Pg1!I)E{#ZWk{`STb9jt|K5i&VAxRBA2wSNwnkv -zKT@dsncf_N2P@{}74vHNHmmh@^Oe#vo5$LiSfYNmJ^h*e8xQ`muS5ydsW+nqt63I* -z%3-f!hOJ)9(*cq-Fd+np7a-kwqy(K&VJZlnha{V`EA>I>y{4_#F -z3iN?oV*Ar2Xco%K%A?$JA+M7yHDVb{Q*>a#iU%JA-Rc=Rrg&ky$U`BCKa4hQOYF!0 -zTpqwkL_b`*UfyJAU{G#|(Z^+jZsj5WOJT18$x)Y`A2~~JnQ9CCEyWP{9k9K_F$IZy -zPd7t*T*Uvi^CF?>&HxQ;5_^fogQg!SyTq<`soNx-HP*NyZ%sk@;wtT!mxEFB?0MJ;3=n(O_{4YL((MGV -zA>Ke%RwjT~);3~CVMhxqV&tH$6$`Gtr#o!&%yVa?ls?sy`YDVabUAZJoytfY?KWhj -zMv8kt3FsD%Aq8=8NbL|4hQ?xl^T3~S=Xw`Ff>|1m?HF8^8iQ5xc*LmEzS(||Bh+J1 -ziz(t40?sKGWyT!pn&q9v;m&DbyMMtz-krp2#^6&S87m(Wr}?0u9~7kbbP;c|wRBTP -zn+Ld!G6dNjSCWTB6$fI;a(9fE;?n09-4KyPpt>NA95@5C?2vEBcb!NZMRL&k7-BB* -zGBZm`ZkG5%If!=K4#3SWjzx;KKK`aHK_t&%xfxT!IcV*)4Fp@)Wc -z?*}oq{+uAu+r}*NB9{G9QZa&$bd(DfrmVtAc^ryJbcx^7ZY7vi0qiT=bXYB)XkX_O -zIVl3SHP4CyS@OIka2Z&p7`~_8o?mlYkmWMiJ;Ovj((1kLIB)2~K=N2@HQ+U#+g}T5 -zeG_JqROj-0nzQd#PM36DLt+J_tWd+sMa=xttr0ouihYLh=?6r?_(;#3a#5|mI&oxZ -z+UPCBI+DZ^qr|Y9-Y#oKdfE{nqak`1Uow^40oE`C#6$ZzUeJv7&00kd$cgzV2d8zs -zZ9BTtt?(@?F0ra$K({rq5X#@!37giC*+TJF^;}{q;JW%W=7E+5Gz~p&U{G -zIuS#t!!{WQYEa9n`AlK{xLT4d3e=mqJQmp0Ik7d$j_+AQ`#y-9*`ZQ9m^)QA=K1m| -zAdXu#>BIODQ!-tb5_Ls`h}hD2|%=~IX+29N4>o0HSe;SLrE9kSL5+I2j-P=ALtu!TNf{1s^Tv!w2x -zJSYT%0S4SL!))ETuq=R3baC=fdNRX+;@vZ;)?H!`0FC8G1j1dCSemR&;qA)%4-&TN -zDxYA;ZV5hNxF{)_r{rjDOSY8wBHMII@q5;#kM&Hyvf+3Innw<*7Z_Z<$q18%7Kc)Q -zo`O0#yY(RNm-2=Inya+|G}(2v=k9czL>XPc_ALmwc`@e1wh0oto+5Ht@Y4B*4RNV# -zP7)OtB7^oX3+98O>QIMA53;EgV`zskud0TJ2)K&^#CC7y2F*DOPCRfQuX)g$J>I>) -zr>uoMO$lbnLWMXJ@$zrQ4b1Pb_b_Wta314$s_I3VZD++=iB=>mwnRWD<-LpV%pbZF -zI814-uqE&F(^+hlsmy0#iZ>-SgAO=l-)EK1rq6#51VFpvQ6zSs!BEo2oOw6MyjP0T -z@}z~ozAi(_;e~5iR0U18Rmx9VqoMl^B6VVF2&RHAaPa>2PoZ7c;;BCYiI1t>`* -zswr`fVmlg7$ruhNEWw7frB@6iCA3$lysZ21LGU+p3cz?>-zf=-4^ZdC3Q}#1_KCI( -zWfwV&bxJrDS)$J|KVo$lnpcrI*5 -zBT*B+9Nb3XhGiN{RB7XkjnV)R#jt1t!T>v(XKXp*waaytUo~rsBMSSx?to#T!4Kh# -z!1(HNOx{jJE8*B12}-9&|Cp6H-(veAe4Uy6z=<*;5o(o?dCwbWbtRvonRC$cTv!b= -z3nce}p1o8~lIQP1Hq!_40Vnz9>wM#BN%jDgP})JT1$vVOWUkraDbgG-#2pYJM2CGZ -zoCd^e!R^_-`6lcfa|Jce)kK#(HS)voZaM!5`siWT*I}AisIJR|j3VX5Xy~$RV -z3(v7rJ?qxA5O0dxpYaMdnl}2>l2?2SE7-tp8NyAUN9o3t&jmdu7XL>vfxWVU+24Nt -z{H`TDp06IL}kg?O9mS&Onk`&|N`0Q)2WCP1(ZZajI&Ah5upy -z$AhT7|K*sx$fu{tsY{Wz^!wrg2?IHth^gBK1xV?#P-dx%*i^=pFb40Pcn`QK4cE=rHvlP^`*pOn(Xz_#l7d*QJj$a*=t9{e -z%#t2FL*J*U1NB5h_p4jd+OgG=?R_QQoIK{#u*6`{lvW&cSaMEdbweM}V80%73V}(A -zfMQ~a#KwdGYKx$rnyex~n4=4J`vts33X{nTwl3`|2LB%AwsqQte6V7OXUd}8C6Gfq -zh+t9Kl=Z>M(!3+slx&Z@ySYLpKHC7fD|so9O1{G=1LuT$Nm?KNcP#8s^}@TnK!U1C -zJ{-Slp#BraTXu5`&ms5}M2S%y&qur^X$G`UCH%>{($DSlpJ*|~ucApTXT`}{(*_gw -zu>JVsx8I5lT_nt#Ghc5Lp>#%a0e*eR{vVld_6s-_uXSXrnW+MCj<1E3%to&#K5ntf -z4vID;0Syknd)>8HOyMS7sAG~eMvGh@)9Wt-*HP!woEm!ww$GP8O9yT70tFlU7~%0U_}; -z9cXyHW{~|Dyl%(QD-H&@a?C9xfk48+YqlglP><41Weosyf4357Y;I`ehn&+{@d=e8 -zbJUW+vNt0KZ97yE3IBRH-(ml!tB9DrMT=^^Km^z6vo0k3nlBiCUp!P0Gv39AE!|DR -z-An`pn?fU`w+)w`I0gc?5^3rJ>Xa>JAV`)d?h|z$-okPv=>E>|_w$caEFp^{c?SCP -z`*0dSAt76Pu~Iv$8mb=U0aR(x6=+q=G)Uq@_5g$SOM?4* -zSCYjxlv8Mc%HKB$j4pc(S#2|bKYpwA|NT%T8}z7x#qYQk0DSr2v%>y0{72d(4-zv? -zv&#v77ia-qcS_r#An$MJDJ-jO(bhT)h;RImYuzNqTxva$kU#op6RLabX-dbgyfK_N -zu?U4DpxFjJcN_D#Fw9@ByXhV63%NAb2~fxB&MjkX=NlC+i%t^y&hzp2;ELHHM@gX4 -zfs*RGj*{%gWyc)N_5mY=uL+u7Fz9LT3x3g2OTI;drD8tR6v%QR;>ac1hakX;nHxKZ -z*p3~rg*AgU1pU4^G#~vQ!YS)wHcvk49((p5XhOAB -z{Ws{cpHC1-35dZ>vPp&vBFQ8NKCdzw*; -z->W~{(!<6(zm6eln27u2!t;iw8#XzZ7G^(~P+9GH=wIUHcF9bwm7DGdRNg&j)z=Ku -zOBUsn#Mrc(x?Vm?+|-v3EN7+<1a8W~8(ydvXTB+>GjuS;2tVnwvfynJ0GH%ywgduV -z$1pe$C>YH|JyxZ0Nzf)OTK=IKg=%wknCwKCP?9I+a`T1kFP8aVE^rhJs^l#T(U$zG -zvcy&Ep*ACv1VxP~4e7h$C%)O@&-t!}FNso(hB@qPkx{@;UwIBo*_>gs!Ca)3%;o-b -z$|d6h0!5*9jGv%wEAs%GjoR%XrnTb-)neMbo1drSSnBgin}qT{R3(wvc0Vt!ID;-L -z!emK?`BotY -z>>_yY9^1?SWX$Mh`nHE;cyGd7y}ZofBz*vWJljASwui^9aEwKgAvt^J_!$f}ls&vl -z|5cA?(dp77A*)J-&s_4-zXTBfF?!5+;7s24s4a~w=zt4ucTUmcVAo&35eZm|?FlM2 -z|DJ0!w#-? -za1%Y|wS7-t0Bm?8oa(@@)b<#vmN&Ys5Dw^2mx_s7$*8}&-Uz%D9qaG}w43C=>O4RT -z-Qx@5tvI>xYq;DcteZl@B(~^jO?$yLWPQ?~Y^my2HJ5mFMLqojOywHEyr9p1=)FmU -zZ$4u{m$=Sz8kh%F)F??cF3;j1setDh`gU}6>gPl(Pl-RH9UoNK! -zkf?i0`eg~fYMnsQ%c8R3unRi3N2Y}~4csuk%#%Pk>tBPFkQ9Q~gA58%H8J%BUUL)L -zS1pHP8QyzSJiH)rR&gwdw|Ld5M{4MpQ}bj{OBfHdlO04z(WmCr(tP_Cv^ZM+Pc!9X -z(}kknE(eWMUN$i)5A-?%<%F{#w}MJd*rl=kuV-@>5>)-9z{5fm{=FcSWY$@4hbweS -zCgg{mQ56%sE8PcSwNp`6% -z$FBeWTRI0gd3~#aSwgmecVtdwC)~huxBAPQ5EUW~q^gPG0+k3!J#J~v@fn-Dm)vjj -z#-O4`P!l>Kig+mhB;PN|`3c4IyI -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 -zi#?7dVN_xIx6;TEEreY31&povc55sv{>H -zys@b|GUFK_Na1!N&2-kDq*=j0md`+1+llG`IxB?5QFixQdw?INFOt^tCKrW07(oFj?zQmZXKc?5U_ClLF%G*3cuRs(~{s#LZe8 -z4@)n#$tAJk>Jyz`#hKRo*q_tvjCSCabiFmqB-k7o3^y?#N*N%Z5F`|GAfO}}{RG9@ -z0~!_u!iEPA$m9l4W}CIsIcG2t#YA*?g_lo=7+5-$Lrgvo*_vF8WN#L52L-eq6X9Q- -zPaG=NFjWv=2Ygxg6wTVWra_rP552Ki9+eC^QxbfOr(3u!v%KtzAsPoDNK%J_@q4KY -zCsdL~AC8+yY;^j-4{o_eGQ%9V#HtQP91#3X^?MCtog;Wo02dFE@l0vtBHUBhH=a$< -ze5Q9E|V2Jc~oi}GOSVY?gX~EgdR{EKYgw!iIRym=6QyNLp@b)WVe&mmc>p}RMf?m!? -zntKlsvZvbk1yd?yIl{$IR^py4&drj-*JU#y1cwf$;XU&NoCaj-n_-V&&~O5hIrW0N -z6ZblcL*e(ue`X(`<#agCIfW>YOPaMSo%L_2dQ>aEt#*K$2GK}F0slZ}!t3_+2f-hv#RaMW6BV@aHdrds=aYQeaXmhxwPIHxRnFHmJr -zi9{mDc0|kIQIIm%Jf4Y(zQGt3x;$=j5>#1SOj7P69{+EjpZk*y9#IbJiLg&%`n0AB -zZZDAS8p>rP3S|80I-xA?Jemj==E|=VvA*I>I!k -z8I6zM{$2lNoEsFH%o$9_#S3#(DWQna+PxJfu;Zx~wM4?9Y;7O6K9yo^mG8OUgxpc? -zf%jVV^8rAN-7R>9^@3yx`}VQKzkmgSM%yFxTx`vO)n#^|+qce7mBZ{@U>U-fIIjB; -zj097bzvr}iP-SW4JD^VNCnprJ4(fK?g9&%^k^^0`Q(^W1Z$<27a$0v#OS8O(KC>~; -zX_Dj11gHy%equkR11cUDL8#}<$lYZhi~@p`LPM<%u}r*>ia){8L)0Xa -zde!IAfYxqbyoWBX(y4K&t -zP_lLwTz?MixFyeY6E-$#6*^o{_9pYu-u{Xhc|^7%hT2%2EuoIr*IWP!(YUp6;f4e} -zb}rzHsfAk>*uf)+!m;mfI7 -zj<)r4bUQ$sB0ma#%i*s8-Q76aaus}kjpSapI|dXJepWtAGOq<)PqO+YIUPj9bI4LkKKXRZe0y$Jrnb+SQvpc`l$g*Lx=>{2_92?n$a$bw{{St~EstyIs1hXf -zFy2Tgj-^)*$q=t->d6&1&{u98)7XKjE-?&TdSDiTSk|q1i9L6C>Ikh>SR!Lk(|6nE -zi=_O{j*a$J#}UgP?_fQmNFRV)%o%I?71GJ(1k`~=8hS=0q! -z^RL&0v;G-tc_W`W=-117A|x+DNzS}KU -zXIWH?W*ij)vya4^gL&iYeK8VkqTX4H%{j}{1}f7h=`_5EQ@_&F^_k#JKlhjTob5-Q -zcEDhki=n-AYMnFd@-jVWq%ft0MUI1wvhN^zSFqLxY{Fk`H&3u>fWNrg!k&4L-0p%b -zq=b`ST`ch<@Nl#02gS#1*XZLxN*T$4=F|HCP-#zt#d5zlDzjj-Jd}El=XK5`TT@43 -z(R*(q1xlMh>ZHW135P5B+C}3$g(vN3%sDOVT}-QEWtFFpgQyv_Iu8<~KTR^P8y|+7 -z(g1oG*EB*W%W=+F% -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 -zVO9=?1TBs)+ZGb54!H -zDqSQ0a+g6j^ht7m&4bonE9Wr87%RL=Xp-vL3349-R+jCZqBf~LYkA|;N96Oh7MMRT -z)<9h#|E91CjJNOb(8dGpd@d#@*E-BCOJPk*WnS1ia{DV_$F{4|Foo=rQKs|k5Ya$n -z(}+4}w;wFIX!wtUb$z{6$Z0(5$2jQxL%}MTgXnA_W>ivCxB-&9su@>*BpD;IhIgaQ -z8;i6~NXWB#tFvBp9fvP-g}_tI5hZv*(<}@u40Ctlj)Wjq+bcJ>d#)EW}l9X9y@~MMZUM&j*q1Iau=AY1=$bh{%8n^y?3Va -zIIyIh054M5cm$dU_;sgNV@YS1iYz5$>og^=@?vkGLJQBd)48V075AZ+T5}J3K~VkH -zI}<0jAk=zY@`N=fM%9ptBrG$W55q$Juxt#H784}9Hz*yYa}KZ9YBSt@&?PnvmWmCF -zqae6p>fyc)c<0xp4Sp(sn1Vm=?kB00dvF -zp**mZKYQce0jhf`APvpr$BCvohGV?W7)#FgzxH~Xc}P7wc)G(tdQY!~3uBY2+)2x{ -z1GNM5JjAA`x#jlE%}ll8m%b}XI+7d>kD@HKRDl&Q_1SeRiH!X9A{}9KeJCdO?Ww(k -zB((rwq#?d6^qNvpnmIzsPKtXVH(T)Flhh|uz}zed;nTBX)|Yl#M2LwHMm#r|Bo`s7 -zx5>JdSbAVilU2(@iM9BsD*2yX%eDgC)ZJc&`+`FrsIVt4;LM%Yt6pSlG&P0Uvqye~ -zW{KGR87S^GMY1Q0 -z^`w)4Hf=Ddcm=STp~vI+xIU&K*#F?j-GAXoEF)UHEGN1s6Lb0h0ojetFAXQbsc|Zh -zhX;?=(7%$!&>U39d!3`B(%wVUXioNjlF?!AT_5z -zn=kYjnA2*LtkT)Us3KK&9jX~+F@_{h(3G_dj0z+ATpgSnZi7-ww%EhrGZ`6u$B)@j -z%cS(9o*=2#Q?Wjs4pbFaBuEt;3ew>@Z*ZSm{f^D*zh8$J1Z}4N%W*)KM7|=8D}Nc0 -zsU7OLJn0<02Z>4kA4amg{U1h>5HPgF3ScBhNro-?OL3qq|7=z?zRAXZ^C@urQmtG5 -zVfUXSNtyGnBl-A`Bgt&5^SU9u7%Ys9gi9)GE_?8gBiXFA)kg9D|2UE$mh9;NIFeT- -zkl&O^x%8`1nt$eIvh&u9s&otF=Jh%_^5(P2-w38ESaJkjQ{da6MU`N}Zd3wY9ySv_ -z$T2EcVB_@(?R}>Q$1`Pn2-2|jdr=5*b4iZEE-ri>V~)1caGqAqWT*_mqL|keHMgeD -zppc1_T~fbJl&+_qFs;QAH<`FQYRw2K?1L5^Q{o@3Nyl|}p8FeAvcD@|1(3gXpsycF -zt#0>b@eje`W)1f}8%K^v?3toPrTi}>`HQi^CkwXh4fNIAb>McqahR-3TNHAq4w#bT -ztaSws@|*3?^7&R&zLgG*mofu-gZ|R0qo1B8w$u;~hHMW;YRRpwj+Cu68K2+tvtNr_ -z;!79RJ~wNM;df?c9YkZQpUVekC4={6mQj8$IPxIjNaN -zMCiLx>7kltdf?t>y%+-Vxyj8V>6b1Q^1b&Y -z4;6any{IX&O1v5~&3IB6KoqU82!aqpz&DzJZY~LGO;|||ewU8WLs@`Y!p^^C+@tSDYF@+FzZX*mlZ<*v#OrBqaf*YNj-7yh -zNakFdcPk|&s!Iud6sd_3D9F7y2@ep*r{hguEJ+*G6h$-RudB>~_t}KfV8baioLoCz -z)+D#yyv8Gt%q$NZPR)ODs34j4BWYNZ#IFjOXVsf4+p!TOk0FK(jOvTUvm@g1pxjLe -zqgUg(()%2EMDLd|6Pxb+G7TUTPn6ugCH6X+30I5J*ciINt#k?!?v+;6&8blE(G3lh -zlflW9EqD3O%OB)b6t~uy%;S=97Zk3%}Rbi)nPdF~-o5YQ?ZL>qc=^1mnZqHy^unJ3!)v@CMhg%n6)m7M9Sf -zl-SP-aTQfTYBPEi;p4LT5SBTB^t-wjaRKHB-=fu+Sk;A0LALn08@+cAh_O3_oQ;6(PL#cMnG>T_6`=QUMbNL0?pJ9Eey{69!p*te4-u5Dn;Lc`&g1` -z?`a8QDc8e*&&`xSV3^)+tI(Q~?Z}rej-rje--#YJVumaIBeg51YoFHkz^eURX*hK>r0H^+CuKZ|Fyc9j(vy=RWkr -zvlb~_AO}Wyolc2WR~A>Oom -zpMp+LVQ#R4_j`Yzp*P5bQoOsYS{f8C;}sc$&$BsJYczL;*#$F(EAOGcPF;h$kJ@!{QNhYiMsVcA -zLVKNsWx7KCtD1DAZ>DitatRCb+|G-aw#1YwE!$275%%#7zlQZ*83+|Ry94*2$7F*< -z2smCfZc?JqQ)<^8=Zv{Z-hlq0woyoTJW#9#ii6%#zx1aD3;DCd&wLEC;egFbiS3!} -zejxt5c6osIV^cF)C?dv$!)eYbT(*;#UAX<2VBZFOX&X&xiSokbKUs3~mHAED79dL+ -zvgb^nnK=e@-V{6}VI3PjlBzeF{PONcU@FUdz=rt-kR|c|%96PR4SIxv)?lhA`5=*S -zc1Qm4J(mud8|@;^px=wr(K~<;aWtt#o8w(}5~4M3W+AKiVivvTHfBE%#RTdhAliG* -z13(?(GCcR+F|sHObCj8+DEs5D1BLE~uB&-PrkV#Kr44SKdF;F$w&L}Ni=z;AK^70y -zCd+0I=G{-a24xShp{Lq-Qs4MRtz8IuA?js99Fy?8?CWiqB6L*i)j}|b5b=knH6Hxh -z5uz^F{26^S5dgX*%V^r-L*Bzko4_Qz_RnXXqt#ewCKS;)E>N4pAYquG0RrH@4_?Hq -zxZYJzJ~9#Wzrv)e!Uzmsn1#27hk+v1S%Kj$pw!&2yK&lwOERVJwW(JGZf9+AAe~Cr>kANEM#Ioxd7NlgKLKB) -z5k&uOHRbf#5L8tY4#}tH$GO_=1#$LgMpGy$&|FToP+&+y_V$xC>b5H!2x6P+7O0vP -zJFS4ba=?M3aGkH_r5TBo@((J}L3FP^5au>I4_2DOQ?+&8QQv~V7vIFxv -z?tAc5ZBRt^=mTqh%j0;@`K>EU6SDdZkA7)?YrOnNm54V?$e^1`1`IA^x)aNX$tCj6 -zUuP1hk1E -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 -z5Wlk`2Q9w6?}eW+un1tMor?CzV5_ -zKsz_;@4AHep+aU&FT{O(W_+};w3evBsb5egvdg3Cg;Gx2W$E%q+uUDTSM8IFk<)f0 -zd3;~IGCdHO?g_N|j&bHLL<5nOoC5?~8r)!dq7n>|pH)+82eu8kX&XyB|Lu}j`sj+L -zT1xgH{XywS2wYZ1Rh6qm4FFMw9{mJBlptn}e<8|gcm%;q(0?IHz%0F|0junDqi_Fh -z03lbN&wmi5oBt{Rq6BU#l9d?mM~dnD7ow~JK$LC&K$N^re<8|Xu4<)QDCsBX*#Chj -z&t0Y~Gq;q-;BitF{567ifb+;P=%(eZin9Wdt9hvjp`5wzQ9YeIQf|%3?8F?C+hsG1 -ztsMSHH3~FeZ9&egPSn>H>p!33!)!z8bKaTOH~?zS`$5Z_FST~bq4*+mE>6Y1;Hgak -zyTozOhs(MW9qO>7Rvy7=t8Af?mb#O+gSeKqCtbyPvy@Nr9+l;3=rbL2v{I(rd-@GK -z(0>(5()Wt{1W>?`j0LD*d)nnY6fLdsHxcv`wltHyjd8`Bb#+vVRh|wB;B{QA9i5ByU+@JK$Zy*yULu2$*;6R~3Gtm3)WTYklWBU&Ch+RnZQ -zQ1?_e^54FQra&5xuiDN{8b8_G{Si2>Zpp#@wQvF@t8puGwWuNyTHu4j^@LNYxG9{w -z@|rF1&A2w6??RPiOt!zn((@3@#5*P^3k&N(j>Vful4EMJK_L3YS{xiJ-M?oGx3JNpCa?J*UZ<)>B2}ezpeI~Ck4?fJKzP>FK8V_4G#P4H?*W=x6{v& -z#DO*O^0~~7a5zS9(6$&@u%d&2J@B=K13kF$aEUU8cr}DhKNpC+@<5(7*s8c5#gO`> -z-0WUy*2_)Gdzv-OPIyIHS*PLc2aZPC8Q;{4B^6Oo>gf$pxQV6_;#5)+=*-_siF-B= -z+9zpsQ7GqXPqoLpv$aysc11E(RGl6_*if*EbkFTgz6qs~dV#bjgG4xXbqf2xMXHfC -zQ;-XQMmUZ#V8dpPSr6dmfDcob$rp5s4oS(NZ14g>s$oZasaeiDCH_*Kc(DCw{;=1T -zmjS0kumBtL7mdv#BS@?k)2HqI5&zZ&zPkFmb16IR-N3RyIE~WZVg##9oPPbUc!n;Bgd@K?E?_CQ<{bO)3nsYB0%;-;^(gyTFe?(ivP|1S`LZR3(1<3zel#Kw3a`=Ve -zHrwCHXh@j4u20j}g=-wz4j;!Fy`jSRSYA=*6K)T6PvZ352rs+!W+^#h6W^W3j -zeqtNzBmvL64+$~U(<cD%F3fVuHPEN0@} -zK}u{a3t^mg1rvnLiQ7|s%ryR0v^J6=JUIalx(xn=d^vqaS}{Uxe)R)}R1}t;=qUimi_$-pFXY7io~K4+i}$HGX@5&7t8hLb}G;OrljE6PUoYb0b4~%PXa3 -zH+p6dQC8lBeZsB~Yr|<(#bQJ}s1dhyrUM_EJ^RfO^tPoZJ9l``Co!Ku@%gQi@?MD( -zSvu5O<{kot0)9s~P4LoQo$v*-O|=8@YDWNg2Ak6cA}Z{_^0CL0QgRNqKy-d_Ff+~@gL~kEzpmj0r -z$B9TvJY2h5->!)%?k4g{Yh%}iI2f0FXzLxYm&NaX1&tTMhIK{DJT_5ID|(z4U@+M)FjcS!D93>>i0?T)G^ -z_0j_D-b6<}PY^jN5u55&2_bYl1uBT?!D8PaH~jr7ff(8WO@H4~2PJir`q$4(=u-3V -zC>BgKlsVVQy|LSS8IR;%pA~mn8@N}Zd08dVSbd`6gk~$FX+iries6g(5F${aF+M6G -zpGWKnd41~V(Ie;9^#4brtT_3rQBJe{|20ape>KX3Gtf3dkU~#@Mp=B_n+UK<%*9|l -zxjZK3ntd(4jk(yl!69j}`}qrt@q_Xvi>QV#M`Ne=8+cr4nk?d39FZeiSuoh%F1Geg -zj`oc2OXf7^noDO2s2>wqDWq^lG~=2Nu!UEIfQEEyUB6!;6w2x~!8*v`^__R2Hu!OK -zIJD}$wWV^dQivzm!Fht}X@wb%DWDLwafM}}mit`^RUTA62;Ha6$3Ujx@4NWEez2!Q -z;YrB=*Ih9B)wL>=dEbunr7)`cK?dLYd_%XUq`DXPEX&~j3N+H=vlvkSiqslwBFwsD -z&iY+vg1tS+oWS<=9($nF~(N$h@vAHA4Vi -zr-DVeM1xYqqzGx)>+q&|8BHktM`=&_r^ozWXSjc)a+Ex3JIQ`Z}# -zw4St%YU>O6e9n~O!b}6Q2n(LaF_5t(P^II4EFy?W-kyvCTfS&zu -zve6s{_ud&94CO5~s(ZE!lL`EA_fX$(zZnTVDJ1UYa$+W9aHr9?s1K=om -z030QbOwK_0gZN$#|AC8i7^e;!*a|0Z0{+FZdMd?{0v;c6F+i&7r -zuX)MOKhtZH3IQBtT`hp4To7e@#Jv7}$ye&dla2DRlf62asB>_HUSH(wOwBpv0cr#d -zdpePI8$-C+#96BRJIVJG{$jzf-JIAQDX$Hs3gl_*^dPXwVlz*{&nd%rP}5(g@4H1X -zVz=K-r3s287%Xr!cR9U@+X2L|oF=RBLjHP)VsytN-h9dc&12RDSfMDw{^%*NZLK&S -z`X(8rPaB&kJ)kgPaV_i4$T&U>q6@vR9^hl#Pvz)n_`wMOW!0UrBW;(|GV-}3|26YP -z^!19&?J37Nm1VQuQ*`8ZG_GQHCwo{`y1836+OC81-J+EC5zd_aFtFp}WxeKW5C_>W -z_jzQJ61f)*smWzu5MQZ;Xlw~7H!A3N?IvF|`GrT|>XBi>Mal=a%&rS2>@p^4KHM$(`%ciW~yw3X-90brbzw)30u*=IL)0W%0@H75Mb?QEQ4F9~MX>r-m14 -zEl7RBjo?C+dB3zg$W%5Ke%AiZI|_DY>B(tv@yc4J&=p`5e;+=s1$ycd%L0Wyf5hfz -z-=~Qu_;mo$#81yj`GePw>90+Bu7E9u5^`3_Au(8pAhOVNPvH12ZwU3q3N|$-v5Nv& -z;oatzjE_;y2j!>|q$$qO*ZhhyX<1GS&6}O5F6FyJYFeUcLSdPvlTrLm4U+P_9HL~f -zu<<(BWjl@DsV?;l^nvI>q`R&y`zA3h;f2qI2f!(BTmPvqW3(%R3&#lY#$+PTLQ1Va -zijQM)@sv`_o}ME#xnxo_d7-_5ByBslT8$wloMyuYEA%m-68BLuP7JF^)iOYT6OrSC -zeRu^27QyZy%Ptau2-;)xpbfn}vh?XUA>R)cNGq9BMZDcW!j`%Mgz5>Xg?nW8yo6i{3O|1B=1u$72C -z?ADB*{EuHc#P`q?4N=X)Bt5DZ4bCPjrZEeL*d6Zyv1KW+W8#KWN+RBp2wcKiv=ps& -zctJU%Lk$FL9R~CjN(pE}wGkBz9CVLtbE(J6&#Jic#Ps0PYmD(kI1QbN7Jcy2L;k(^ -z!ZN(UILdnj{>i{fqaozRQLC+ik5N1L1>UC@b`6!e$kRBy0xHDdQ -zs!m1ctn!tV%Za(S@&NyJYwJ+pZm>&S=xC -z!-#_;gO=PZlW?Rb>n;uJu>!qm^|1bKc4;3E2&E>sCNpf!HE33387lJ{zHD)XHhgv( -zEx))il+C%^hZ(wH{K){+@63Sv98Hl-D(DBM8ZSBi=IX-A7cppx-u<0Ar7yDB36#I+ -zjnB542h24{qsXT8TRsvg7qkivAjyPq6de~Y&@+2iSqBL6$T$%9po~5Y0u%A<0gDzn -zDTgYv^vBcWO|iNaPl@E`rWMG;7%w01`{p4$i$qFOCd}9L;D2k(L|KG9%1VFsRS{Dc@II&uBVPjp?f!7vniCy;+;oOb1F>mZo{qh_OIaT?Vw24O6xh -z=oXzz3Tp7wIq6VYI=S=nPvC|(R=`ScLZRHNwtDp-YNV)^61yK^K&40OVw8(t8p1xn -zycGG7Gkwyya{gYu-^Exg5pERgoo-5`wlc9`4MQ!!fDMVOT?k+`n_-dm63!FEat8w? -zKUof?Q?dhKC)MM(sn2$;Qgvb*BFr3D6hKZfqyQ@4{7B0_EOX96!)EK_eFx`B-LVYG<20(XMm|g6bbA1rDQu#W8ESJ& -zzAP)aa;jR02pQED1cOwt*?>bo2i{QlU5NF)l8ZI+?Vl7b*JbvUCy#pTaX!oO+%6bh -z2NB1nqs{H|;e%U_M9}PqxT8nLYSw0IX+@%U_C3ClgOnBf=<d{o(~~MJvU}j&8H53k4y>O-e(7#DCW@_h)WCP`f$4jstDc?Lt@RT&391^tXzhYM -z=|UV%%3%h#6(G8thJh0P8(n&?4vfFRG+3E`bxgB%U!sc>YM7TF-?)n>!m3}C9ec~# -zgMtKG0v|^nJAVm6H_x|d=F{F4kqITB$tcf -zbM({ezh13#U^Q(x;g2Ax)}1mz1PaPA54G$()5z|9a&Z9gT|d0^S^>{+|qmW2=Xke2T2$&a_@*_UnFZ7yof%8G{9pP{Ok&0FPa@e8JB{j$VgVtP@T8*Lmyq2>;+Tt0$6xX -z2KPIzvwjgaky#gLc)EayTvh9j42;?lRu(~QxgB^j-o4AM;42kDwbR@(QJF&uOk4(K -zcY7^LkQ05~Jx?QM3odm=_b8w2R)AN!Uh~MMn?MX$?#jh@wHtrEEzHqPtSGV>^Pq*z|EIL12c-YbmiVZE -ziOv(wF2(gS?`u4J7-~}RkLZs2j-L#BGI!9t7p01~qyvR7`w96310FZZpY%?*c{kT_ -zJh>fM$vk%F6P_W4Uct-qr*eeSa|9v~5kcF5uj_y{e!DzV4s;nP%t4jJ&kb^c<-Pts -zQ`2*HB{YYq9okMi#ONeM^@SRr=|L?@pB=I2xzq_xsOx+(L>Y$N)%9mkBvsoXsaaOKFFI$(4!)M1a^PJwX1z^J~-BFanDU$YokX|P->oB -zW8P{Hc01mzf9gtdM52G{%Jz}l5kasPz2(~R#K&}Ey@y*!`x-kY%o%$_kZ~pBStjer -zeFtgZN^$*FBuQ~th$Vffv8W*`G0|D?W9kN6LvTW@C2D@H<_~PL>T*@-Px$)j2{!V5 -zv4&SC&!&;A#g0eI?*EA^W$K_`(+)zuK$lED9vgG*6*4QK=?6#m<5^tTS`lZ#+K%qZ -z;8^+}3g@D_Q__oVoghRv*@^P*agR)d3}TP7`0J_Z_zH-S^CpmHtJl?06%HTD*itBr -zs$*N3E^9E1Xsm=Ft(*6FaFsXm*Mb6I?MM-5>g%DD7m$oW8b~u;kz2Bf)_$eZW7_i5 -zQ-L8rTQ{iPM>lVHaQ}tvkaR){?Hfs@7O)nuf+v^)7nFvR4YV^VinypcG!srdi`060nVdhxDH*XBQLS*H!EiIa -z+FP`Z(-*&>+~sbC5@O&f@5Q(EQX^z^ivj|c_Rnqj{fR%$#0g+25heG5z^3uuWm;3l -zbMxh+18pZ{#=Cw(k#yB>fIQ;M7Y= -z!hGm8NPBCT+;>36*$@esLA-0uL=He3sx|p&<%#ATsdM)=ViK#RU3nxyB{V2UGCkmW -zuqcp3{;eoc{->gBViY`Xg@+jXr=lz|F>zqb{->hUG#MYI{994d#IVo)91h|_KYHNr -z>Vsat56rH!iK%R>Wm6MsCI98}%Up&oc8<;7x-w83gI)!-3h4*j~ehq%TFfZvb~Cv07u98 -zIxKt=+^&`93T4=i(bIAY-G`5q*X=61>PujijKh7D?^B&e5W6j@~pX;0M-QB`=I~!?m -zlNGW)Zmb}hh$)&Y6Bi_zvF;%X36!bfhr?qC8(!Y5M0UyP&t~gk5?Su!FQ^xIc$6+? -zoqG^STd-gUwkyxOHqJ$&L(5nP@~plQw!}B!P-Er-1{ulFvE-AWj6JONYYH-{IL?V_ -zNCj1hYFWfInm;-27}lC-G|~lQemztA7%TaJa*kG<`5eoqn1`3Df9sD`0 -z4fTeH7aTKo*OG)z0YZY*FngLsEbtOLWW0be2*P8FgPnWa&HD`MSe|+3o@hXx)iDTZ -z%!XBMv3R2#YH)jfrUfI7l#UJ;>eg!1%LP_e*0=bGz>A~Zcdhe)#I~4>mhp*{&5zXU -z@rvHUd;yH@QS;x`CvgIc|3)lFtR;Yw{mT>omK{ya$9>u?ZH-)W^;zWQ1ydrC4+{1p;JcSgBWL5|HC(J1$C^vah+t`F=d-}(>_ -zjNK!CBj5{8-^ODwOc2Gy*iI_4bv@pVsK>P_+I`H2AM+rI99RKyyjp~ZV0KBTnl3Jo -zPMUC`fWYb$dT1kOW|Ja?ffu=0VofEpRrr{i;;`E|V75T1-L(lCVUGYcTV@K3257~%88`xH|+O5ZZ+)D#r0aAGOB@d%wm+m;uv~mE2SE$yqsjG`~xRx0_`HEk!;vzHi>qAhSiQI -z@uutsM2{L^{DvXNt#K{`oD9g%_T^?ak;PGjBaoaD7Jy7+)tXI%7ld+Up){0at|Qm0 -z$ny&}JLL#`hrynEV>Std(sg1LBKx|_TrBCd{=Hs*Ic!n-i-hw+ugB?d1VXssd7IF_ -zn%m?<1oy*vRwEhjj~J1&nZ{KXQ^1x^xc$;%P#LO(gKsUEm_@iw;|e40igDJg^>IE* -zmYIt_*nH;MmtP5PbXF?5%`WlS7aF8w7cm#VcVwP?^pZHoC9zWLEk4YeD=~s=IIF!w -zJnV1N5u-r3oi?$D#e&|=CCK|~x!vD=e1lsMsPZHI_!_D8zUnSOz=Vdg<# -zLX?`};U?vfEs3C;NEMKs9^PM -znPoF$ajSG;w@wLf#TYnjr1}}c@!Au-b_^2M?kVzAd-OTt{1TVf>>*Tw{PUI;3o`r$ -zdP!R7giTYI*ddBbQt$Qp8>0gj8OzKX8ttXWWSoAB7g*jb5`}xb -z5tO&>P%E;Lo9t7? -zDJmy9t?;$c)fIS&L@XUn55)**dYvLeQB~+S-T;U{ -zm?U@dLo4FXzN2!rspzm=&Iw9*A$Tc19b2*$#@b)(*)Fc?W^JIhG-52rAhUR?3dBx2$b0W;gU6`&ZA$vebvfas&q1I&f5;i -zZOI7Om$BB$+m~y?e#aT?|9<#M`(h;6BP3f1{4K-}(+O|IE4`$TCz^>eIqA}j$_t?( -zR()7Z;_1zpxotqeMfp=p%IYD9aDJu6Ir;S;E$Qa;Eejg#b~IjlrESxEIyWUM^)gxh -z^K#7A+>4?_^FOs@KL16x>JS_y^Jx*N@CW@qYlmw%B~+>m6O9`%K6|5zwNDGpFQ?H~ -zkJDiGT(R>W3;WZL@JfPpAkds2UVDPa#-%&!T~Apdo*8dv!gBR5LC`OMt>n;OD`_Aw -z6k9iob33*6cvB!9(76@Gg_fyR?w^8<8EFttL#uF)9LD3uOf -zmqxQ{GWq}qvCK!tzbhf?e@IDMvr%|rM~;;N39MY;$cCUprV_*#At -z5}hTIUn8%;&S;IaE=}61E9?|V#4-8m`Y{W;p=^R_PGwML-({R$fAujxr1s3pI$?45o#v1Cx;{B3>S}|O0`ra?$a;N0 -zM*1|yX>Q+TZWYy*=uKW}nv>H(VA~i067@nD#iapXY03oDsLyVy=p5hWP(!O5_XvBG -zdQCot%7ado9DEnr99kpz$`&ZAx7jPYhmP_2wQyKtntz$V+Z%)UMePI{>VE;r5t(jT -z?50r-MLK>-P)``Rop{e@k9AE6#TJ@P9$Yh^9-sS{6N1=}lQMkyJ*zU6r37lw+Wfi$ -z@sCUE9c`82RtK{_67l$=`BCq$I!`=0)cb#YWR8dr_5P5(67yc-Kz5cS1x|1p@0Lid -zbykJ9_M~z%=D`|AAX -zhzUj6w;Hc3cd@UzdeK1dXXW4r)FR3Kl13&HU#c;K*~7u!i6#kAL%&D`8~oHLV);dK -z?8+_l#(+Op2h?f>NlzlbOU9^lxQZ5arTqp;s^x$9502cxJp`{wZ&{+>pGQu$>?;zB -z722Jj5EOWNIkmehkx(P#Vc<)`OK@Ur?dB!&2%@M4uNeuM09ltEU90aAydRe0Ir5*H -z--O51@kVfpx7nYfVs+D8_m;V|o695YgyG3vIKXYf{CXt<3WJmo{|v2xVw2^(pMas= -z1G*hatd<^m@N+Lh+r{}lEeN26f6nB+4nciLNgmMIGp!ooxRnj0|I*I<4~$g(3nN7= -z|2K@RGdSam1es*AN&0UX$q#HNIWSM$)e7VcakazRZPWxj%dz$jy(o?Um_qx!sP5I{ -z(P=F-2?T^s%M*2U)I?07jk_StyG_4q1;3xPs8$aeVg*+%!**b0DlzAeTC-ivNAEdr -z1Ke?xK8>6Mn)!uOQ&+`)+oz*nnwC<{nqk1)hM>x6#v}sOncb^4DmH*>+lPoLRy`Ku -zC{QA)+Pp;cTOVt~`f>fzd-AtyVaqNgZ-68l`sB2L-brq3y;w|)`|Y|JW1U4p7vHzn -zFI!hPBd%R}7^@{O**~?Glc3h+aF^%2;6@53Dl*%1;&mr1kHnRS=YkO$ShHs)Qd1nn -zxb(IMnv{aXC(N^Msi -zZ-cON_Dj{_1iQh~5tW*#-a_rvSXnv-O!HbMz`Td+;FAMX2Wre$y+<2P#y?7;#J#GF -zae394h@iGK`<#*-mU4RNT%kM9CYC0WXdm}wLMiJN5}KDfE`^mz$|renwGldhgBJq= -za@QOuzJzVcZFu?W&SD*9uTmxbmW_fRDloPwMMWIW29=_16q4o2mZgf;!3uBLuLcXN -zR8&BmFiT3?HSJa3K`;hdVxSyfhQFHyWa%(u; -zJ>I*X%N5#r;})I6z>5K>MLw1{{44%jQ`+^u^2)mJcPJ1qBzitGaSeBiR~he-uPMGq -z7nnFJN`yj%WEAj0S;Kug8`8Y5l^u+29>6*(7*%xX;L}u;@0xir!!gH*RjkE!E>uv= -zO8}k_^~G8F!1~$=)uTye5jKm84JoeUbJ^S8rlnD`A4!2u -z!qe6o|By~n3w-5`EsB(6wPOxnlrWhPbC@=MfsWl&uBe!w1^1S^{hJ)qY?piW6eAbl -z8X{n4RBR~|)CmBt$dB)H(|2s$HDx3@e7No)`>I9Wid~ivWU>*<_L?{9+u^p|lKCZ@ -z;&94rdq54&fnG=2d=2gQx1lV{X^)MuOuGV>6xB6v&v)-gVdPg5eOdvJYbR%z5vo5L -zQh$8J5IoC7*?W5r}q5O3R< -zZc91o>VIF<#zSpFvs|sIEitQOXvY9scvv`g_d^s;DkCH_>3T` -zbLaN^B$m>OLg1n$y`EsIJAzFMCq$eG9ibM*7NfITi1uiN7d=SV3lNDLU$WfNzA_+o>aXb1vc8Wpb>21-0P-ENp -z^rV+2$c^&aRMxm8;8cG^mXes#+-B;|jgz^t8Ua?!5KgOi#5Nhe?f&(1 -z24W_?_nvi}BA1qWPK)_i#T6L?qoRas(-TBPLm7}hV{3Od6?kQiWHs35UE!q*IisI_ -z00ur#2wZv1=3*5OLKHTNHR(k@>4a5%I-zQ`AgNVynUW%+n4OP^4t}2QXW*wP=S4vj -zP(0&Sbs{?J=anIofkPAJPIx@bDXL{lzsx#cS-||#YgPP-ASr_;qU0uhls$vwDaply -zkfyUf5hRXhB`O}570F2n=fG@nxFXO`Hks-_2(nOjrJUsX%P57oLZr$1u+R-?xo4rXVD7 -zUF2;z-fy%{SczB-n56oT6N0&gXTZqwig@fcbuesIbXRgrBq+w_!QKnlpeJfP;ln;D -zE#?44d7T3W@Ry3Zq9viD;UK_lf%_sj2af$dBUtJ{si5EMi{PM@-jB7^8Zb}V+)OTo -zsNb?iz$Q-kL<7%jS3nOi60zMFgtOz<2nMe4G-&xcks0a*RH(+JUECxR;@#EXLh_n& -z%C!+ge?swT2om=?#S{}Fy!Eg4GEdT$u&2bxL%(1U164-k+8CBGQ2G%Sf$QkX3a)uP -zVKHV(f7_WuJ0Cn@T4vG0kn~r?+{u(JoF_AI7Gtx}C7-G({Xs|hKSnq8BJR<`Kz -zE^GFJ&E8cEgcnz7^S2Tqk;8;){?|b!uYTYa$qKlIjb6!$%VvjU3-tTh;i}G$jkY+j -z8KXvIl4A9r`n@AOgWw`dku524x+Vy@GDj~YD!Jqz{ZWv$&fVsJ7367*X7~t0OD*Nt -zhYE~rudZT?a)JH)-0G2Itz(M5F6-f?P2`yKO8Zq?qcnui|s9&*;z -z!RPzT+P3bGfScb(>jw)TWl~e9jOjHsr-pTC6oCzEA{62REc&6$-c8g?T;Fh-M5Tyj -zq3BHd6Jsg=D##-AU$k<1QmtsUGTw_|cW6HUDoE?ZPX$Ss)DFD=M?vB=X`R7Mzzk(| -zAPddlW6TZGLunh{FH^Jysdfkp5k=@Dl$&BHJbh?8MJW$~#$d1(@y?uqB~eMAQ??S0K=Y+SSV;!s5`UY7d>_~IWhg-nWu!=RV-S%znH9U= -zF2{`gY5_F6G9@q$EXI*EArTUOaAfr4PlL|lolMqu(`h&;H6aw|8%rWM3lIWlpv?Z# -za1tKdzWy=irwWOFc@u`wy_b~2hJfTw3XF7OyRSTnWaSv{>&aeSqz6)WhDE$SK=DT7 -z2>Xt}eIW0Wl&NX&L>`pZJQrX)a3NxgcV(y7X}{8MeQ)W4^*1B@pai;eQbpj&xP6CI -zX>VtTr>_t)nVPzZhiR)3PhYFm@5^bqq^K{DG-#i8dkggc^eX{;3AA01+R?c4>l{)> -zh?L7}r{qlRi)L|@yOd6p5J`x0D|bKz{28&XhWaZ5(ZhauQ#%pa;# -zA=Ui$7aNA?2^nLLc+p@;$<-3hY*9qUT3r1Jmz`loED+{5W44*X%=d%nnWD8x;r38L -z%oI*#Pz4AxQZL|;D^dMqDeRDWydUNaXp?g}jasV(u^Q#j=69K*m%~~*1-qyOKbB0L -z$-%t0U+AB0Vh^F5KK-NTIF2tSiL2Ur-m04pon^ITAT_`GI|q!3hP4c+)6I#3iHLnF -zX%&sas1M?fb-* -z;)njUxtb_xBuzfsOPd7(bP>Ng8<=gxQ9X>rDlQ@~#qMKj{ra@&xm3KZu9F;=&va2T9c-16j#9NCTZ7Uv3h&FsP@4Wa -zWg(AwV4I_j8!&2KW$eVVC_^O6PB)a> -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 -zGEDeIt5@e)1cLc(lK8AOfY8sneXKon -zVe^ZIxA*^WkE&6h?y-{XuY06fp2|}C$33e5b&tcJ?hymQ+#$aM>eD?+o*ZfY>mEb@ -z+dWo(x<^vv@huo&6K-nSKkl*d(>;b&liJeqMi!}#Oe0$Ge0hIWQP2iHs1O^%HD>4i>AyCs|W90{r*MJ -z5vhAh56JdW4yB&7_mFC!UtK}@5*5rhr0LPJ$L{}r^Go2yWEhz;t|37f4DOe>?EoiX -z_-CeGZ5i<7h@{=zRW>)=B}2TaLzC3n`7_M2^TSB!arkWVQ>6Hg=qNFN=L56faeLj6 -z96Deotgdlgf$uIoi_SkIPR@iCUY9>7A`&Ub%h>#ePE!+3O=n-bBU}SMP+pME{mC6? -z@4D;Ok{?4}nSXy?8Xnml(^Wq!K;(xfKkb<9bEeJ=VAl~u1 -z?jP=0v7$d3x+-0D%F}coyNuUT$UKWDBPGrbta|pz9Rn7&UXHpyx#NETD6 -zNAR+ye2R!l&o&yxI-o(^erWT)CS+*7zJeKPr&fTou-2)(cqlsOi)3 -z@6K<)&uU^3-d|QZt@5)}?{q9o#LQ82KB -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 -z@)YyWfSWQhvNZy^Jw3<#lDZoIFpa2_ -zFi0d%!ShxaCzsv+>=FO&_ZyJY^9WVNQEH?h*&Kc?kzc*Q!Of^dOfxBcY9Kcqt -zG#BJ}NMfiCv$P?ax5{p~(wf#JyEn*h%oC9V -zh<`2wX-?Z*k#&0T$}J0An~kuMwDz^U@xEy!GnIV8q0Ce -z++emW^s>^-9F#^S1p%Q<$84SxIJ|`)R^wbSJy&KvN})a00%^yk(^{R?&{+v|F_)!2 -zuZz*w@FB*B&3p$Mp6^~?bA%scvr+KfM+@%F)-N&|=WJ_-IL<8xIABQI`PD(1nndU| -ztuYZU8e~t{oFyY=SvKf{EN1Q_eI>fk*(&L^I>lpMX_Jy%M<4v{OTGCSBymj&;G{K7 -zyjirCqX*P*SNMdxIXtH!O@Z)oY~hVa20mCwl@-)`I{kWk2eiUb=f3vgYi`pQ(pv_D -zcS8gtXwG`#%7emzDmNh@NEBVTZfX%pkd1u)n`VpZ5>*nAfHPUsmxMS}2j%S{>cpo7 -zJ4nNz`l(%fl+mqq!rXwxqspDdHYu_hy=T0hA~1;az9VGg3@ozMUEr;Lt4TQJGbXRq -zosSak?wJ}BJoF59UXuSkvzi{6Gd7#_-_GMgn%O1H-_B!W`H=IkH;xY(O&!nHYuq4t -z^N8dwai)--R>MuGd6rwaBT)Am6{92Ih?F(IkB2dWWqx`TxtUO4OiakgyC^XBr8pMd -zP!GBL@;~gbT10$%2OV3u^L;p$d{AiC&v5V^1Z3pmb7VBZl9lt`u_zu*zhhYV2Nj0x -z$0X!aI;s8K;L_N=Q)QMmbuE^g1tBRPWKX>{E`fXq)SG>)A!EtZkI?I-jPZYs^nn -z{|QN$^PR@$?V7fmug!v+1IYRt=x-0dq*b>HmKFiCc?*pEsKAXYw;YF&J^VCF8>;j( -zY7g3u$*oCzNl%PCk|#4EA0CHebQeok -zEN1djqSB8O6qiWJ*joCLC1?tFSn&*5)|zwinhXkwt{)YK5U5zJbHGIYX%2t-j$8lT -zcdTsb+yMA;8O!qC3*pFUvm@Za=VN>eu^}! -zJptPgPN`6GtT#XoOrl5g1FBWOi{8YBD|3|g=^~A|*$QF`$U<&J)nVC4*A^N%`=`IO -zaNcxGH{pFTB8|YGf~(`FEN0|vgsx^$tmFsb=rVcTs4pU0wdGL>gi#wkt)1*IbXpQ0 -z8k9fj8#6vU8O0)>(g|2MDFRV3x4V$Qdr#ruI8kF+u)L6MMU?rT4o+ns8gD^K&$vsJvXCd9s*q2DoCiGVjna*<10b+HwBJQ^R+rf)}kxo5>U`QFoc|% -z>SWymfGVTEYN51m(7dlD>jE>5+H7#yN8q+MN*9xz)5_{M-w*=tqvLC=cnwLnU -zC`)+`)Jyg`IyEvz6-{h`^SG~}&68t*4r2WSxRaN~7nZk{ -z$euS|3S3cGK1PpXG*RG=XjYlY?Ia#xYfQ+ -zHi-S|OrxQ_qBzf#Ys*Eti!+<00sPCl@@QqPTZ{vq7_Z#5cZ$+51WT+2b@&6Bipfv} -z@_^a=shRJym}}tF%qj5-ij?4vu;5$zZ_x1^QbJD7llDF1MJz|IPBdWDWeLO)P$0QS -z%EU|xp%x>QB@z^e^c^lr37U+*-o1K0;~n{qJBRQZF$#5mJaEV?vU?rEB^h;Haf-wrbwV@tTa5;paX(L+WM;XL~S1HJ|0Odo!l?a?${tqkY}2 -zd=6z~Y68Ikk|<}Qigp^xtB$WTK52TL2Hr;$`WExrM6P&jT{rbxHe&p^;3irr#_2NFee_5N{>i;tW|5I -zPH%B9`~@GG*lhJ=*6!Pn^A_(^4}J_7J7?Bt!88u$;KCd35SG6i6Hz4<>E*t)U``evhXWh~@y$bHnQ)J)9Jf-=0wh$ldAVoT9-X|%6w>%~Pjwa6ZSpepX@ -zj)8c->$(kBkbCTAvt1FV9pv2;bipk|nsK303>Aqc^i?2f=SN_ME9kbgNse#rEE|}= -z%J+~;%`hVo6enhYpOn1i6yrD;U5#&q_j>!o; -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 -z9!3>U_CZB;jK;8i)fja=oCoCJ=B%q0PwX@ -zobfLQ-ts;Jhm?Gg@u1g6BrlHE9qxBukbqL78S`5lk&Qm^6VvhVDlf2wnpkzr8)(OK -zc?gAaXTQ{qL-^2|JRt1B9(v+cY)+F{tR9&_`iz6Q^dsV#SF1psl5;t|m!HX(@iKG! -zSA#bi-BnHmxEG5uHw-u5;wnqN(lA -zB#gaewI;rCGBE(WM$~nY{6t@%*O>FuYn&!$@5EX~cYEeq?uP*I8V4c)USrr#uhFa( -z=rsy9KYERZl9G~2NqLW6V?5AnyfJ+88tIYvHuaS%U@h6fw&xk-}Y5zWh6d7|R%Y2^KauikvbpQCVr -zAa~(<6N^=f97U*deZ_^vAaz<88-OT5)lMz2;{}2ig1JlSKO$8Jqe6gz0>Q;|2Mfz% -zMSiFDK{*OPci(O&Q3Kx{^*Exm$*E1^x{9u3U*$a)|2W<{JY~z#%d)vLuoMoQAFsu+ -z8nCO#;(b{`CFhsFZ&DOe$sUCB?8=kB=vx8RRz5`FstyxoB=@9&%5SAHtrqu;AuKZA -z^|LEug`38f09z@G#@LUrIl8AGSJYSYa~sHD8uyy>X4A=bTj`GAYiG%0rt{W*Cq^+^ -zN`TVlQEMCBQtkF47g9e!d2TdI`%|ZA#@%?$I_nG6IHkFfOVLxna47vj?d`X&hmkBP1X-3D^{3V!jLrB -z`T5Y~P*E(ip|H5($mAuaj8k@*O}rYmt3N+POirY3O+Z3$?2aSaCW-O$Yeotqt_>IJ -zsT>G+PNqc4S@4k?*NZNS$_b`CaGgY3*YiVL6aG{VC7kAW3-o!qp1J84DOfR|1u1!l -zQK@WW9nHc&ZBmt%Ai5xY;=qoGzCi!3UsXo#P=FsHc_RGLz&+nx&T%E+hwZGKa$*N= -zrTRLosudAlm!g(oeD<9^Kx`Bt+yyNy0*H;7UEWs!v9XNgF8X1l3Z02t4KN@qVKpND -z$v?9|r3_v+fie*skI7^Q_2kuZKbGB9uj}g}xUWOPov(-6S$aXV8ddk)_+R@j9`bpS -zje+3gIoQM*fOK&xSbJ$ZP-DO|Y@24IQb!2_y~f%8@o$nGK(A53iI(Hp4_7p)>z7NB -zjG}sJ4RZsu$BQu^_Of);?aAnz3V~ds7LaRPX9RGKCqKEy86emA1>F2M*Vup40^k}y -zHY`FF{^A;O!f2OsfLvqal#n(;d(azG23bh}*C^$kR-_K#8dH&5GI(_X2YN!Q9ygzs_#Gj3khsxc -z*_fgY@tw1Be^Ci3PooIg4zv}47kDN@8c*?yeNO7JqV2mfm!U<=9 -zBhkoWb6Jd-YwZ2swY}=!f2Gy1RAu@Ur8fdkeoaX4{B?b{)4`D*H;XzAYasq}pE90G -z5DZ!2AuDWAn5f&ez_MqlOa>RrCJvFvy2wT$(ujH5l;K`f?Uk5bNg<;x1B<7 -zK%Ny#MP43LdK>q-Xf1ZAYrQ6TySTrtzW6!^%WIi6_Dq(H5`U{eGZt$55fYP{E;6dO -z9?emyx1(zEy}oqu#aJER?4{$E+?5i#M*}8Fx<}MWktN=QG4QpblhF)@NvfHouK0YP -zgI*u!gx*9Sa{UASBcg1Qk(^G -zuCC_iT)|iuT`JQdpCwf5Uq-v`F_b~O*v!;{g`@r*hKp3Zznh1EsBSm)=M1fBr -zhi3`KmTAfL=g=VAj -zuk$CAMuy$bjLA@Zk(EA=5@C%FNYU|@650`IwGe>f3MdV=l8j?W&y40E3f^PginnuC -zkxTMz5S?CGAmi~Zo)&eFP!Ja%aUOerO7r^)xD^`a(#*xa3@D~x7`Feod6y}vtZr=zN{-r{SXZ~Jh+%?%2*PLOc*^c@>Ukm3665tX7pQx11UY#7)W?who8JdDP- -zbyh@)pdrjkVpNyvYBc!+2JI^lk^2G+Ua2`G8rn9#7#u=bVfx%z=-e18+ISyUR$&8739;p*YZ|yO~KmN8IE7 -zobcN8UC2Si!ujESeXb^V&kM+1)8}>dRNDoc0ePDn!Y`-eD;98$DuuwZ>?GkUPwQ}l -zET>yy{UR3!V86~5yeH%Ht87ckYzE8uv_5_$$V4K(#zB;P-7keoD21CT)`ZiHdtp=b -zVZoTo&cL2Sgb+T-2<=VB%eAD)6|YG~Dc-|!2iJjWhMqN6elI){lB#}=)$ZC=U#<~u -z(dG}A{KyOSi!bKn^edEv45;P@t+qJ8=P_Asg^We*-|8X|*x_^wlj2^5Hga!W4;MTL -zV95y3Hm_bI%xOyI@+((4BRK3CMXQ;ZOuu1km?*PvuB`i@7LcMrZId|%0k2xX%AAn) -zHKIl=uc;ue6lOq&^jo$F6-u}xxs#6=ci&zFac8sGeZ{+3tB&+Zt*Qbiqx?96%g1Gv~%=^k6TtVbhY=5XG^uEA*dKquKl4RO3Y$wC^vf@e6*T1b}K} -z22hQ!ep8K5FD|H&gKE)HU9%gfB~#n@nac@k)~z3&XGYWVecCl-`=CF-(kf;^V*cX_ -zuY5%GBQD-DvGn*?rAbX04i{RnXs*ewJt&7fOYD@!Q9U<$R!`h|Wn(|-O4)$^LE_M_ -zgPWF?R31#9Wj&Q<3R5&p_akDq>=sVsMqr^sKpdAQ^1r-zZ7@p->r?(dnu@!TR$tgOdHKz}I^5=#qnJ=naC64*RZhNw! -zetH4P_<2{Oc*yuN7_u|#3s)do2oCPd&~E8eZR?w+Cn&XAGfRwe5N;_TQ< -zu44b78p8loV>a=n?%z~n$iJyZ>A$H)IWU8)QFv9O%b!$Z7?5h5bXAk_n;}0V#X;{_ -z@;x-(-;zjY8GbHFNOPcHoA(u}L5$N~gD#qo2!SrEeY0?h!rEh5iK93pdOi7}hC0{` -z46Ym&EohCHis8eJPA%O>ywA212$_YK(BCHj-xHcL6ttJhrT%LHy)f!VTdH?U_!`fw -zLE&$hD~XYPROxtAA`RIovA;EclG(q}3>Lr&L-p$M(7rAu9KTsy{ru{Zbc0c6M|Q1X -zRSLd|le-JcmQA^_O40e`OTrIK&x-FBaL)YRF(Go8`=ad7joXH2v=iujFVDcSo=d|W -zo@iNcZ+_71n6KlQXSxaBdLz(VzM6b|geOyB3sRrB9Tu@*HQPsOHVO8cLnDiEV9?#w -ziSItqf{x>LB|lQp!(hDDL8cTG{Ds{ -zr+?hmS_@?piu;Xm-crC*pYamFH^E= -zB$*u%6?`)n1vIFxxx^tw_JM~S&pyGY*~edg2EY! -zLkYU56UKE=FClwpXC9<^ml9!o^v%5C0%Pu_HZeI_sKEWjB3(9V*cF_UhdHN{^JUi)&6u%65fQmN>@2bW;(2Q;oYH8mcd2s98MgP?ghz?F)9M$6sY-kysw2<$3&`bM{2Vs(+;4< -z;qwNw6bKap#nm_olVF0=MP`h`%I(`9_}9B%k1?VerVjRbLYz5||!FL58n!drJUJSpiFz@dhb`sz*9i^9s}ovY9x>7ZAj0xH(K -z3&A{kv&1>A=gW?LC$>YEGKd9*UY**5NdD*YHXUb)SP_i?2nXWcGN0G<&Q -zR5##VfAqn*Zp%ji&)9GX;2GB%?HTdg06e3rwkKpysA%h*ql4@#wRQl{ct{*~8}y53 -zWWa@p_E9y|ruvbYMp_6-h6UgmV{L_YgtN6pt`rl?^40-7BMNwi3xH=FC-;^%A#mBY -z83XW)P-Wp-A!pIY2ZqJooliU?B;mB0tduB=DZ`9h1guyDB1q<^V#T?8a@g7ro8{c} -z3h6`{T|3@1q?VlW!yEpq8Kg!7=wKtR14!{%AH0b)4K4WL!8kl`Aii@LeDMoi1dT%k -zsR(k=uMWUk?H|)j#SjcWcYf`5$&q`gBjEy~Hf#$R(!GDNmuNtyFV$;}@Fx7WGpFeu -zKE^cyo``3O19Pr3WAKVSH@lL=QbNJh#Bii~zlI;`hm`cjt{8%k81wT8tm-{8?Qsk~ -z$w`N_Q{T$ldm$H*<6F<~!W-}|^l0Tn-fG6S%*7(Et8rIL!(47J3BIX?j`)e_h3re> -zo>>(Zrx00aQznTEV`s8%AtbKke=rscC3DdE{L!2|O_pyWy6P6(S6?b2N4w-((+jxt -zIw}I!OM8*PPujaq&rbZAc?8hkZFSMXS2oV4YAc+bxooqq&69kiy{Ojm3J%wdC|M)J -z6uL;K#!5LtkHw9}?45WQEM%S_xdvW|+|@et(9hGP($ -zyb6|ABe#qcD1(xPU(Y%9n>Pt9XM+#%Dcziii;T%8;9)1%Oo>cTVr&T~MpN((Rr$rN -zI-!=r-^&uCQk9#Aq?f2DEEHI>vwkdn5v^hsXIe4Y%&K^~Jnoe|?oxtYG9Z28v4WP= -zA;}&h*r+hx`-bTgn%{Bh`*Rhc7J1eXYYmZlksS1ALbGj3E9E9&qMGF1CTO#4!KT)M -z87WTfKk(W?N7N`c!IP1=T(K^zqcPi?A<-=z!XEBV$IxF}YHRb8ZxC7r>`-ge8D=E& -z7N_K1SrnP(d2#3fX6@doMW^3;T>6}SD7c@+Yr>Zjwm@IsyInaYZi2b_3n-uHM<0f`_(qtoAQ+}SfxgB -zNd|cRUnM1_Zx3@7sqT<2r(Ejo1yJ}>U*V4lvNO!~k$k@~o$I5cZnSG~8#rAtmgH59 -zL++678W4YN73*(&P#`8;V@nMJO267rwr_|`yGuJvdEqu1W_=*oa^{UWUJGZE~FO- -z)?y^?IxmkZ18mz$E7u;NM70=$#n~^LSKJm#c~a7N-$O&Fx=O@i2A1+}()Ihn?E*P~Ww3CDMDVcej6Q?{@&{6n~p` -zp4+22-1fRh3=2*cUN5f|=>v+6_m7T}5twFpC_F6^Wz9n>wQB}$!oW6ug2N1N&x(p& -zyRy -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 -zlwZT4L_z$^Ai6KEABgQ2@ -zI{Y38riz3HIOg!=%X!*TWhmBuSfQ52;4J7$HxDX$XzboyME`c(m`#2D1b5h~l^CiF -z{4NR?#md{a;b*tn{0C@j@zaR(2d3~$#*u4MU9@a?Ywo@)=}awKx-tVkuRU_-Lh_q1 -za}Yq*I;yforPXQVi+hM$x~GmWvS(2kI4vQ$`3id52fGQ&lmj5Xzljju95PnjJ}iZ|?TdtGz~b@4c?1F_a7tWj4;I*<|hau -z8*o)t|8g&ZmTZY6vGV#BfidlGhz8 -z1aCF#zPZ@CB#qscDbat3Jnoj8F6on{`21MJ)`^9*RWQLW+eLta0q- -z%=1^YqbQlgihSxsqKuw>N4v<`ppdJ# -zLmy-6U3=;kEhX%mm4zkw1R~EgNdvk8Jwj=YATW3bVTsfsh8MZ-i<-MCw{?!+w)4R5 -zeR!VmO1J*lAboCbJB5GLC3XMiGx`h@K3A`i_&MJ&XGS*(-gIo<pukoUJO}s5oT- -zE~IcJ8+@uCU~hBl8_PDoA+63VYJ(uc-G~mRhWRmM9vX>CCMq=su=`Ft^0<+*K`D3V -zul3N>3JFa4^wze3O)Oxt-=_QDiEec~T%+>34{|k?<9CoEujcd}!5kt@e*~;O!iMi>?ZRyS~2k6KlSna|NBMUxi?I}K0iB|*l{U$#u#03vTRP2c= -zr>S6BMz>H|WE(7xrq#`_u`~*CgEYMwHAzi~?fsEj^j(}stXL;6K-Y}*`07koFC$Oy -zQ$#DGpsYdaoXWWed+aCqbJK@{WD#Y)2Z>RAd}9U!PyL<9OOfNVfr58g7p!REiu9D~ -ztj^-qNPabI!8BgmGrm)+uLt2szJ9tkr8kFnT@XXMZzQpFUyaK=7oS&w3bIMneuvkn -zLi(*5VbHzM?=&oYa*v1Xp3%D!?tqh-oxBx_@r^gTL~aAobA4^qo}5JmiTxAN&&0Ql -zycvXVP7M3yzYSO`kzfQ8Y8z*0+u9P>&m1nK)#lBV&jg`R^e}MAQeHZ}gT1LN(N;&y -zBMz!&FQdYoT*r9+8U3!Brwk(-Fe_}sVSxK#leGn3DxAr@jwUo5_5L=Hem+)bu-ZNN -zgSYAZz`JQtf*JOu2{!~~gW@&gs4p$ddTSiH(t?CCozDV22N_#aDcJVeFFGMz#=?$S -zhso8JGH^drWX5*m&Mjn9DWa0;*Ka=?-2QZ=M!OZ5*X425dn&o!?AF(a5W@;)4YFrx -zAympqq~d_Qz1hM3@TT!oQ%M}et2BhU=~6?TVp}L`nDiCZtOrwsc=I`}V&)DPmRa-o -z=N27aJDsKWX_~eVubPs2LIXWY7BIQM)%;r$>e>>B(4$^Y_FRNOpRxtYraZIMYn -z#8WO2gQ{I4=ckHIeYfs6t`C=A=$$h)dvJ -z<%p=aWGt=p5e;-xbb?%Y6UqUKXJP~1`f?x2qlZ{J#@wVO#?@%qwAu0&lA(X0Pj#a8 -z3Uq2)P4_yl6pxGG`B_WO+)#aSKuF3E&zJ&h1W)Z*l-B4{WHJ;orZq;XpmvE!YSwm> -zXbf5Kw0y=bAFK)(l=?8ohYntLlq0F;cHZMmf#BW^%3G)bNAf*fgfgArGowC}~x0Z9Iwi;+fhm_`07jCmKgo^9tAdqwDCqa`A}_|!Ur>Q1-0g`qySjyhN{E9H_?Ti-|%g{p4WGtNL`Tl+%s0j(p) -zCt}a1)^QiuI;x!|l?)f27HF2TXHv#oWAW{M$ -zrU+;qsr2p#qk*lXRa}Gr4Ef?fPqz!8bv$whvwUUt2Ia^G2~%?Dnw18$j&i`(5tZ|2>*xZRBC-kxXdP{!Z2+w! -zmvmV^uyqVzw$n;|mO`pMW86A6Ast&9DB$FWNr&$vc75bA6v%{fYz}^4P!s0FKmIBJc0u7F -zv30CM$p6(k=KX0M>4B}I*RR&`9N0Pz09(h8vQ)si6;&NT1T=BWIq`YD^cF^pFCqmBamm51@MgZ6;=t#0^AHV+T%|=V^eqVA=?&! -zfh?XfQX>1wGgbq6#=9#X3Lwwu4B#1isekc|d8RQ3e5J+jas)}6NeKZwqxcK5oZh`> -zL9-J+KY2!yIa?b1Sw0}oSPkSEgVt8b2p)Mx`MC^V#-BVRhLQ_7fM-0uo>2yGKKh0Sz%vs6gJ&Gljk|LP@QmoBv6IAXT&j==iDdKup3yg$3dl1axau{p -zSq8^h0C+}3AkP>neE+>pq*J=#@R4Wqd*T@*2?0Fg-fx}}6v#8WerDg6R*8XSlYitH -zb0mleA9=>$J)Qa|p0OLiGj=?Ccdko3Yz#*54kW2PEf5^QGx7m=#!S(SpFE>aB?y3L -zO!z=zA%qw8#51}8c*emC-Izz7QS^~#1ji8D3kUFwj#RWS4nbBCyZ}67-QPST43K9` -z2JnpAoF2YFp3!gkI6UczXUsu10q~49K%TMa07aGdYg=ok)*qfx?HA9uH=?}un`e}# -zg0lO=GZMd@ZTQJE@>l=j8M6R9V+DX`3fAfs!k33^A1i~ZF7(h&_&dC>fbl?Zz87ZH5#-L?F0f1*z>I{>A;u&Rs@{D^D -zR(?#)AFcsBBkUv3sQWk1nDWRoCO-0v;z@~VMO9Bcqa~1My!ne~eDlOJt^s()cEgWR -zk31tT=caoPct#ExsFbJI6p&|x%$EuT@{CPSJY(j+ct%CeGMNh)@qhA+?!S0OFD1We -zQ2s}r(JVRH@h_h7Zdn|_GgkhKXFT=#!!zaqf==lto)MDER^Tt55%nj}sQVYsI1J<& -ztsZ$sbi`jgV;g{Hgni-}KSB&@k<(4SUEh1+8BM-M3qSFUd;p#?iqP8!z%x4k;u*>Q -z;u%GNJfr`AVDG0>>$upjRSp3a1MpkDrbo4&*j6+X6BPh6i36N*Zc;XqUAeF@A -zGyyzg>=%|iNm~HV7%=z5Gmhc$GEV_`M%AMrdH~PJ2ILtD1YLjfj6p>r7qUNj#vdr! -z$Xz0T@r*Zj0G`q1k!NJ3@chX$ay;^kwg8^d4hO(9GLUc6-1XUON!$T>#g -zyrV|MpFATckY_ww=KGsx4CNaYeB>D=0(~EOMqvQY$UY?Beq=yx=}h17k`@OmfJCQ( -zfloV42ic-MD@mgM(uUNye+KXHJ00yZBNprf6Z8-^cJ$$G_tF!4Mg0*p(wDfMi@Q&wU_`)fhTl~Ntyn_VgPg*gksR-z9s -zJ8voLYKCMeNJ4$~C!%VWw}C#R%cIZO^>3eX5qbEJ?CGhUnF{q`9RUY1q-^cm4y -znNc2n#utx1@EHaE(`U5)%V#ug2*dtQpE2X7&xrFcpRr;hEL?bJ -z9q2QziBtc}XGEb5Jc~Y0PXYt_jG4t%v0wIBq7sSg0X}0aOZ|WNjET_d_=7O6|KT(4 -z{PY?306ru8ADFn8PI1W`rkfd3gM&An0gHG -z8TZpl7JmDT`hWS1F#osD=<^>wN&4gcF` -zENcAkJ|o31pV8*YX9PPaee@X_|HEg*uN!_Jo&v{k^MyIZAv^;PRF6v(DO&`|fR$)9 -z`QulbKx_fp7&Cdq`I2w6Gikn4ornZ2ZQ<`QPlSDrEPRc42G+M5mgjt=iVZJ6wyf$m -zr6(pldy^8yhrp}o#qF!fLCaowQ}e#x+aA;n!URT%{#!7g3WpYV3>(75+bwR;-Trtc -z&=0=NbJaW+AcbwksO-spB~`mM(08t=tLYje4EZGrxx#8r4EAO6UEgdB!BnU%!{5nV -zaqB}tHMG?WxO_`n?QySM{nF-piSj@hZ1X<)qBrM_HY#7^7eMI|@c&SD&;NZTdcXH$ -z+qP{xX>6yl**I0v-dUoI`?^;e_^fP*805O&ts=N#4n2o -z?mygx+Rus!zTwJVa7gV<86DX?UZfk0mnG548=!;!I&TvouQ0peZaNtS|JEUmjJ?T_ -z(xVyIy>!^xV*r6LSb6FeansrS;85Ux}lW2)?RJ(oVs_~85-1S)VLd}nL$DEaB~I9@&5uN_&NPZ5tTHWYqa -z7Q%-zJFqY=(bSr@eC`?70iUR>>(Rkknj@+v_4 -z)|Mz67_^PUTJ6^-1&XyuuE@KFF8TIJef}+g_t7rK2?8Mvc!&7w=a)(X7{F~0RV>5( -z^`Osk(KvmHpxI#M?QWvuIT|W@`VW`2o!q*-DBRSjaLjo{?H)7pszDU!kP&8ju+B{@ -zq6Vd($|xdMl$2}QdC##x$OCU?K{qflD?y^Qh}}a}e!ITTE2NxKo_v;p4CiK7R+4=` -z7|gP$hhwL=vApO^(&X?U7k$k|zJh-4WP57sTsS75Y(Wc{1Ov7W2^k{UcST)vM?7J> -zB)XxPfaEvXwVu_Hi0oF6jm{K|cmRmX`r0YVFUmw72CP3mh-juPSWo_MSB&A>*X8MdQsLDzRZR62v4$vzwR -z4MAnfl!sjP1`?Bi$g60c93ifigf(c2bG$skAgEi4>)r{sR`Be>lA2#jWgQzR -zi89KMv--=jT{~1>c)Y{SThh*+E;p=tq0z!76{ -zJSd?*Yp-wxLg<&X5>!?;i@fEKS_=cmyfx-#If=>>cxe1G<*|#Npry{q5UWkY$80N0 -zwwx+KH1UH%I*xRgTb&CaWb}$SLjuPd8<0I -z8v_?IX=b8^N3?*RubI)npBKnw;%FpeKWVt(4bNiS$x2-vw(yC;mq1WXC+^xbK{(Xg -zXDh19Oq^W^t(>X-LK<8{Zrku+{#8_q5`4-&9@#f6KpW<4JcWBT!viN11b`YI=Uz)! -z{ON>fL~dS=nA;g|$ESIRRe3vm+1R~zD5(zKQjIw(xSwsh1YZ=EBh=nx1=En%|sh -zf1?f{bIA{xhCh+rWa9G5=zsWZ_QqykJ^__slmi!=Ac}RFFu1y+_-4?N^HwsV!reGC -zLs&GtU$dT25F3d8C*hAN6`f%Ke+iCKyRpX3gKg#jg<@%r3^yRuojJ`%ZZY-swfk-LFp3xwjz*hrLstXk8Pi+I#lzUsm4OV-VG -zGun3s98;k1Uu|dFg4x&g?VWB1l6{y4hyU3+ivMmMn=bC6|Fdliet^+XZ=uhxGpkJi!hKU>F) -zkJeFnJHsRzNwlT)`FWUTQ*u>A0Jp^Flmn= -zLeDj(@AL9z$A^jx7G^+ag9NPdrj*8r&`*4hJ)`QfB{d=!P09fEy0W#C+mo4n8umj@%5&%=?${fD&row((;)^r{yT`Kw0r2#+^?R -z-YR(iq4pD5;UG1=o&1J>8MtBbcG8E*I5&2iU#SUr2s~ry%xrY=NUNiq7f=*=891y0 -zYHt6Owg+|kfGxnWixWebwTIv=aK%Y=$m_$**Hh_fr?@JH6Zl-x$k|7QAeyH4j7aWZ -zR2<-i)3b5ZYm<@=UunlrB-ueN<%cV=1%EqNQTG1nM&*=lx8&4CZ7pN@aeyZ3vkdkj -z!azQ0r0p9I)iLFo?B+q;`sR6Shws)OSCTwQ_|+Y2Co^^E+*a>(HhxTn2Z#jiemW_d_hB&EBcRJz7++w#{>Wws= -zi4CISI^WA@mM@W-VT+95PJa1zMo`1|KBt)qLS>V8hJ?jfk1-bMw*Khfw-6Nc_F|34 -z-Z$>(R>4%0_ZG~on1&MSf@-e{PJS`(%P~i?tz~9Pq^?Hy={v}Fufo)_B -z3XF->k}p3!cicwzrMruXjJEjJ-S;qJS@Kr4!h#g_Pm_X18{`4k5>%gSR*-{WrS)*{ -z<2f97~$vv9Ih|Hcqnq1S*zY7@ITDd?>}B#aL_uS4c^pp18) -z9CNvJhB(qP;ykVoph`n}YZ+#_hkoWh!!2f-NhIwr(>-eE?n#g(nkq{=Gx(8&_167q -z0K=IO=sH+oDq569p{^KTaT&-UOp}Gf+I2hfW$e2abAEEf&sxrCl@^4Ccu1lC^gWvB -zVTFJQDG25TofmQYJ$pvD=Fv{3te;IlBejve_VjQiIzB3?*t9GSYzcbmiF|4DX@*;y -zdq~~{Jw#Dx0oSg~;S~qq@W6d!x`#gmpwcE4RL$lx-xu}w+F}-2&Rag1Ck)J5gZx8X -zsm}4TTDjfotp24jQ?iESiG1M8#Fi20o&y&^zN!u~kHCcQvRA5WVxOe4`F(k%`VMqI -z3O#k2AQIPttkg+=OQ%fqm0S2u4yS^-v)-wT_u`fw)-0(QvxLA{&Brq6`Y}5=d={n` -zXcRq4XRg31c*xPv{Sb(}kuceNieve(yfC$(r5xV*fu=Kjql2;6Gx9Cr$=)M9Svz=` -zg1&C^tFKf2Vuy|*m2I%ath38`QS0p-+L-buaZS9e87Jpu*vc2XVX5?q?AIDYj;bSD -zL{TW?AQPv3+lN*~5|0)xP>Ln>_=_;?Wy|{3v${y#9u9I;nv+hsXfocsmzl^1IvAy1 -z`1VFFY#;@Al -zuVK%feQGEn9EM-=k{`Z8NxMNVbsFMMCAlyNART9?d}9`*wFDm17HU^te4KoLlf9l5 -z-$z# -zdE_LdS4H0Ou13yhT0|XNqCv}ZvTrZGQ*XpS_mW94!(S#C)Ngv&>6*`Z*NC33COYe@ -z*BBs|I0-lDWy5P=DggZv>5L7p38RUFtmJKvf6TwiC_$<_9x^_AY^<6Uzg{V_A1 -zb8I!?jB7lSZX)GyKRb0=jQuLe_1UV7eb4C#+AkRb(KVo?I!-tYZmCQe1Z6H4g^>RD -zuq&ph|)f1VWoW?)_V?tF2XOL^6AG85$}!n@?acs -zA)^O7F!3rnaa1cpem{<*I<*MQ9zw^sTC39jUDS?%{EF8M-x-O$&0` -z#`6YStKK$EsSZeqVN?*J2{?XZA&tXhb$?wIo^!>co6mOy1K@pwYRvrvmg(eexgwcH -z2j8GvaP7bH_us6tYbcc|LzrU9e1WIvzOzOD!EbZ`?Y$E%d+Gqp{q$9^FgyoTax+*$ -ziX*aZ;%8oQ<8Zqz-Rhz-?@z_`iXp}6CV%G!h!_=U>PugswN6QY1!T9VW2`1UBKK#m6#$1fvBb(&X0&H)u4v>!+dA5UJytEn_ -zZK9{1sn?;&saFh#h#ao8r@ppc9*@%3ofU#SZ}}(pOlPg`4Sv?)S}L|#7l*;IMJ@|i -zJoodv+O}G$olLQSCI@N@VP0{>hTPVz+w(gn=kvhz0Wv8mzmFcg3rOye;(MJ6Di0y- -zfG&65!V~^7!}v&~=g`%MdeshrEW7HJUK!k-IV)M2W-KQgZ6Ra|=^Qc0uFx21UOO}l -zy|}c;Y!pepAEEkF^NkfLpgf7atR|oTz*nRF1^DcT_Eqa(HP!}cOhC9* -z)<#fzH_?b(<}(~!rjQGWf#9C-**7Nb&wDj$zJ-&{m-<{O)g;<0{yI$~o41^!NdeHH -zkSrtxvT8eLa$tE&j3qd{r;EVUcpt>93~>r@)B5PTNm=!-7&}aLfnjw?bB~4<0!;fX -zt*F*=zl51$p-7Sfj@3CAPD8}rck{7b&E;E5Ti+-gW>6HKNb^(Kohd(2ITNQ?IPP>y -z(%4EJC}$AFPl-dg>wbWR$PfvgL)Ye*XOR?;snM{}OY@<4azOqq4F`wBToc-lb1;}E -z8shRbtkZq0(-tJ7UuT?*5(x{CU$XVQJ+PQPsRn6 -zo11MwNmhsa^(6fXr;-~@-!ePiHgP|N24K`yX_=wrY@tFg -z<6ewGCbJP;k_V$#UN)b@awQiq&tQRJpohQ+`x`zZ7n)g~H{5Grlw+A2VPz5rbOnQU -z#tck51oqZUf-eLb@^*b^hbh%Gaq-ZN)mv+}u7&XBRXP>O(t7aReZjOXJ}I;9-?1Ij -zP4_&%9xcWu*MUqUf-;goAI$qQc>;W3i%cZcj~Ixyx+%&HF^I-^25gDv+tnP91>LBO -zt@;uYTl^&jwmAvau#P=3?TAYZcPX(vS7M(HI|+UyA^62d+5=wF=y_+pVHLP;q@NjH -z{pyj3E!o}EU=!eTE<<~)Z;g;&!c_B7&FDSw`uYwg_6{)s3e!TTaVjKr-ym{X^lP+n -z7`y=F_@9?XaibVC%}SJ9`iZ{YlH?ptBqK&(ctk>y0hLNft@mdQL&lH_Kji^}(&Y#q -zd3(`E1`M-cQ=x#YA`qG$9mey6BY*@;R}h{)-lY25h?7`dI?NH5I%z^FU>%{R0~upv -z+K8Z+vBD#IDr}njD@ZL6j>m-^RWFRh8TC(1JXuQIH$!d-j1U$c -zXxGooFVcbVe1*(f^51#e73_SwINA-&>9k2N>1`s_kSd0Y<`1!*BnsL99=s8BcT-97 -z9Rv^j+5XP3gNj^0#5=7hbJD2$3Z`y>DuDc`3p!0xw0lEnRlcG6T7huPjP`h8P%eU1 -z<|fI9qO~iwgIh(3xo6^m`xxxqz9vs%qs%gh=u(MDr&?Uc(FAiz!FP*I496IWh*?iX -zB_xyugg(?;GKt8JX^R)5yv?<`_u#e$8Vf}d?HX8_3D{0n73NoF@`E{WKoO!aG-Z#QMdeqYA?)UGf`pMtQSICNs4FJK~F}$}{Ka -zmu5Ht8%UGU+k>W*?>3#-(!Xq^ -zxsqquzz#{T9bv>z&w(>?ywJ6?It|TKG+=)G0-e#fd~9IJh?P9Sm6TiM%;mo%#076iuhl!P-}T&$m! -zR_EmmL0(N(@A_prCVQveCN^NmU8}AA$euRq*7GTz>oBZ400@FF+f5KH>@)!2c;To1 -z$yJnl+t}~5UR7>}znSiq0Ot|d_!n_j7#?3=A}W^#f9&T2K7X^iWKixx&6_F$x26DA -z5s8{*TLzXEkFP04h(AIbxk2B&kO*5vo4#EE872C(xk@1zn%JmBl`Pk1F?Kk%MLOO_ -z3$ShaVWDV%Hcdc9Fc*P^b?HXga2ewwyo0)T&_B-yq=tkOMof-6tE6Kv&TP3W)~y -z7B5mz5Jgu+F&nzQYEHg%fs^9h=+yKwo*ea2he!Why8NlXylfp^Ro*?D{6%AHH -z6OIDNH7Kp&1`k6YknAWXVnVDA+ks0IUd}D&1$BSShCjIGHwHC*XM6NiWoE{dd -z61zo5m``}L7IINfjMPoxXF4kJ*vyD|+5w+KaqmMEvHcB_GTTwM%C*gi-2p1wevUoX -zQz_KUL5{hEk+)WHPkryiel%aS1E1P*p8QKVTxFjm%CWYd$>a<6bP00!>2rM51U(Ee -zExVmtMNf3)s3Pn4>YU|+&y9V%tWBzbX_euOmZ2vJ$x0~uPr^HU<%*tKKeq#b$#yp* -z#GAUpKYh^vpQA44cmxNNA(J1aoKp&jy_aLi2my`#A$iq)ib&GSi&^|ZNgFM!o4l#O9< -z?^Q8oBCiqrt*q2WmCxIz_~uiZ6NIx0<5Q1S@&E=(`2hB6MSr@Q2qJ|0>MhS^Q$Umm -zLC>NVGusy3j7ldpD?RK`e%-wREJbC!kbN8ocL*y|!yxTGw?R|9J6dUGXn;Lfo0qf2 -zQ_siFH8Tx!eUlX0;K0=Tl9kU(6dMWA2wIJN{ -zqws##t@Ve8ssToS!NgMKTc@EPH&lhJ)IKTY?P8eGgFi+fH_DpK`W_k+vw{g>XKvko -zVRd>_A*P|MXO|9S_PchVKm`n)cd5^|;qScK9)-~ji$1|OSwxs!%h)elWbl^rA$mK$ -z-Or`dJMeKkV+kKYf$Pf~vKuo%(T^?1OViJ4rPwH)38`h<~2sscY%a^|VEW7+f@u9Nn8#0`2*flcKsFA#B{oC%7u96PI( -zoF1Oymbpj*%iW#Ex}1}o05~+eteK8n_tPP-*}9mR*iW~7*;*7E%hCN+0kqlqnt4sy -zWcLAmLP4(yCQRP!U9-5kr`;k%Z?4l<9iPH7hD%*45Ywtv3Tn0T`0CoBC=%sTNZY0_ -z@%uP1nfk_YTfULUf!BMo$ -z9H=lb98`HDALZt2ob)lCi0@A@hn*yTbPnQb_COO|vc_$QjNv8i6%w#tlqM7>@RbZb -zKm7QXtaQFhvOTBMa$EKn%CNxq#m?Hj -zaO7JE_8$A%E}xmNI2*;*-^oE-amD%Z -zGq*kG7h#FF2`HR%%c&nIesqfa;pT=N%7N)~A*@#W0j${?W@qaS9Q-N@A(fwBCmd%7 -zkKGWX@#?SZO=qb1*+-VVi0MBu|3{-_sWZhZ@)0jO4?Nb_(Mf3aGFX8aG6 -zavH`kLca7m=GSv&ss?M&o<~cbDRs~BEiK1aw6tHnb(Q_0lct&H$w;KacbW%Z?}drK -zcgIQ?WP~c;BR4JA&nyPv(>L3$=B%hxv4}gXL0}|g2;g9N^StvD;0kh1Fliltj8WjC -z6LC9fOUxVYsP -zp{Wm};A&MtfXBN@C24wI|k!S=4HIq|3a5}Ql=WZ=7->BB4^wr4@X -zdsh$*-hy0nRcw23FLc2hbA8suT#|X8AbNmbs4{|E!9zg{ -zq%u)tlcu`xYd4OZIEzkRJO*>=bQS6ZSt`MAis17~>Y|Pm)R3&PyC#gWcnu$gS*zP~ -zw{(iYoYPxSZVi->&@6n7!eNK_E?#u|vUZr)I-W$r<9F6}C;3%qq`Ud%CU6V7uo9yW -z4V41cgcIAi_W@)YmG(aRom9e()4=|mdx)UsJ0oTHlBww>b9Jk*kN*+PnZ0y)ZJ!ZR -zJtDj$pAg{=rGZq{mkBdbGwXW-oNqPg26U6;GTbofW@C4`5EA*@k!9zUV1Vtd8NPJ}K`Z!ez^r-|XrL8bne5MPD^tlSAGG?lG6Dv-X&d0?z2q_EjQ$i< -zE-gY;yLHdzE*Uy1b!*0Ma~s0antqcIG$#)Cim*su>UB@z`Us6k%soFzK$&^Lr^!yX -z>g9u~x!1VKD-p|9MW+NQc8rlRLA}Gw$SU!Oh;KK`W=xe9F|GWQ&!}tX*ZnT7S(qA$ -zPwAJR=K)a5@_6@S?r{CN!#_$IGNN^dE%zi;f~Eoxs@c-VhZE!N#kuv?yK9yGC5Fw@ -zuFG&ZalFV}0Gjl6>JXNc`s(TN^8*M>MdVLf)G-CqV^r|jm+f(bVR -zWQKCJ&^&~jXt2|C449`sn*j6eE`!6gQ17U-oOkT4I2vCRgh}|97~}D&GgCvZX>~dR -z?B_Dt>0O{l4u|jh0dx=BIsqRC*vfTt&1WJi`$Z$Xc-ja(Z{T%tzL`r7!>B>4@;h!` -zx)a!Y>5EcP?{c#6y*b77dedHNtY->2lQJI@rPW+ht__B}$5D*0lptT=wM` -z9&-;eO>5+IsUks-4sTd{fbiFssk|CASU12vNf%>VwbJrg$y#6Vw`h+mW*2Cul^YCB -z19wKCdWA^7U@?LhJI3waqO#gwBgkks*|P3qQB@aHcPS5Hp;W(y7MVH93WUVOWaM$c -zI79VyR%G~|OPZM)U4eB}lhWvu!N;hn{Is$nf+7wOOWE>motYsWr6U1EyRr<#pb4u3 -z^5ykrKGg{&ena5JqwM||A{s|iyote!XB?#Tgh1XD5YA}_{D@Bzlc8X^mRAt=9zR?1 -zbYu^4RS%jYpysdUqLTx2-SUH~VrCFQB){LvaiAZer2EFNoU^%^!WZhUc=GTDNVi|( -z0^ePHt-Ls5lEi{Y3hk^Alr6>k+DC>w0Qx$Y6X<2?3$=L6-k9UTUL!b~ou4#vzi~tr -zxgpx~j)GN6l#c48vSWSah~`?WngCnEeDGaOqJ+Ob{vzrQA5eJ;df>397erT|^`cI$ -ztoyj_0wIl#iRrK1o_Ve{s`dIg63S5dEEm*;#f3A;mvHo?VBP@7pUY!6%!n9YZ~9s; -zM{srbbL{d7FmSMFVJw%x?CA6!RPEQ&o+GO6ET1KRIp{(@+M;BH9=Dye)XvH0)mFQ6^fym5nlSV_!k|ZVZUerGh%5KPUJ6|8ERexw7?$>IjLK}voQ3)lY8gHC2WX_$QpyK%ROmm7GeFb!kr``U0k)7w1ez7Q -zk9nx(&ziuToVeGU -zIW>(}>-`k9n>kpV(vkW3awzlQOM{#-1Z-_s3-P5&UdPmoj)?>cpB4C&PL>!ouoInG -zT%UXvuIoL;hBo1i;;|U%WgJ_;T?>jee2_8|yesPr!BC+g4p8gi>JB<@hgXuQg? -z)dxS+uz=sdiZq=q2{94ABiwHP#2QhTERh03a2t0iVJw%^Z1*Ebc5qYUw`NCC&LAzg -z_oj_G@$f`Qo0JUTO{EK=%Jm__EzPSyv9gTSnj$gh%1s9^{v&*_JHwl -zL*@Q~a$8CT-T%H9@x^TfK|(xnzPpPmSU8}O%erPM5#inEy&AhSDHGzUFRlRWvy6CZ -z3CvC|QGLD{uYxa>wLeO2^LV5uchxH#j-0CtqhjT0wpKW5S~i?!9WQ!a(A$}kZ|@X^ -zDDz~WDnmd5PqVZvyHsI(27rY!?DWvG>ay=zrpBhxU2pHKC}}vnxjOd< -zfWJHj&PuoLVN5=cU8NcB8F(eGKLc;j2S|vB?_J`V -zLS!|oX1KR(Tei%0>7jy{Sh&!JXaxx+RmMm0S8EccqR3TPA*IJVrRaQL#!1Pr2wU-q -zbbu3LzXA1OV~+saoH-OY#?eyU(y)Ekj6l;c2b&MUyiGZ9%0-<&$*IE2xrHI>(};>i -zYw^>6T+tXvEa(anxu*7e>*?@8AB-bCy94hhG^z6~EwzMPJr{WTn^PO$XDpj -za!Mk_IMS_ME5+8b*CwV5og3XUwK{@ezJOsx-P-2%++qA`L!J33JtL~X1a!dAEyFEt -zya+`9<+*39_9k>c`w9a -zq#*IO!NJE}HBwzt6IM8jPRXZ!C5B8(7_SZeLe&rZ7quZw`L|0kbvwUXUW}@3gOdjZ -zIrBbf&~2B=$e$7zoMs~{oyK)3gA+_m?Z;W6aWS`$Rg;mRG|x*-7!@KBHHvX$pjhjb -zo4}uaNk#kuaiEH#7>hehm8g`B5YXK9yrEWIqJEw^5u%)7hccH|KISdJ?pI|=Cl5!{ -zCVr*Kr^k6tEgNT#x+w}@NXwwVcAY?PT%S4%87i$w5RGQ%j#?cVmjUNA3fJYkwSjDH -z9mQu_$l_DdNqtk*NC6qBt_S8nt5+tALH9V?J2LMmRiv<02j@DZHs%nQ%7XR_gk!Dg -z4!p)%mozOi%KFqVlhYs)XDN}2)ZstUJaC9iUTO@kTycYXhs?Rf^8^uMZmf=-LCkJQ -z#mY%iJhuz-c?n#Y2CnV7O}%PGooWg6dK4I)F5qy(M@HVk%GEc=-z*-|eb{t`P#mmt -zgaHS^AiCFqzt2dSfm}|oi$1`B=^GiEa9NP|Y{}9_W`g5$=W_G7T9tU^vb#;}cIZ4X -zUN5C+c_Z;k{)ocq$=s15_@!iT)q2SYoLe!o1DLmqGl92E&klxNaG6Uwj0?MOl#%Ie -z2p~z2=B<%aX;8UFQnV<7-C|89iqmo^J4w$}b>oWmSZ4KCl>V7*h!yABb-MPhS~d?6 -zad#~BjVq?mBm{uWTY+vza&JHa#{{?Vll-mDnCK~pW&s^xg9m>b)EDQWa0K;75Hu-k -zdCOf-5-X#JWTB?aWExjoJ@U|FPeVeBMS4ylWS{qPpDL9t_q!K5dR8U-CT(0#2!bnQf)Z+Ex^#?d$_Efe(tpqts -z5#7zd9MTG7;A*SBo5hyyZR7f9j|Hw#GZc%4E5CL5)syHz7mRlwM!qi#f6sL)(phk^ -zAjPoi`LL$0xvMcWju`rbd0m#%p}Y0Ib-=P~w{rO_3tbo!oQwbLFHTphIIPFlkioI0 -z$qwsRdylNaT0olh)p_BLpPP!^_j`z%aTS509JSjZ7b;bB%wJn(W>g<#(~@S%_=zo(Mup@nUUGbcv9zwevGQ2A -zZ{jb%Nw?&~Cy_G91psa=tQ|``RJ%qlIALm;N!|A~-vPS_`svrN1ng=*(HHZHRma?^ -zZ?j=23bRYdR7%Cl9Yi@N!l?_NSXNMjT(u7|AhWMSX_mkm;8`fNl=&5t&4fOuR(TqT -zO=9>@ibjnB -z`225pGe}3m7lMbPX@9wAz(yASRF&=xB1aQK%dr=-3H=m)8)tPup%q9Q4Fd&|LGT(F -z_|V|^QU+Ec88zd~?KDP@AQ1X6xUi19N$#PAv2aH#n325`dG%dX?*V7gTEkE-9rB&9 -zAYA9;2ye7Iiu?+$4aYslSSTLY-DY=P=`Z -zy;CmNA~v{{ESaCBhFjR32A9JdhDAv=omD%T0+vPBsSs|+bo<4ogs(pKELMb2WiuJ- -zq55RdX2%NG@WwKK>Wn|MXsNY1KcluGnWC4)$`v+F=t#-wfm{AJwBpO+(BK;$G6%Jx -z;SyO?4!JxBa`)W5F|BW(HC+QvA!o`$q^mXwPJpUxFTNdFRdZRp0%e%3?aR^h)p3Bu -z>Tq)j_bZ_x*y2K+x51ICaLFIVb=O%Cm~pQ?-a^QXoo&cK-tdS>$2i7{iHPV)^v9@4 -z2qkn!iy-U~j><^TY>@SoN3Hi-UMfzVTqvfI$^|^msXjiTQi}N1Mw}cOrF-+$-%9z9O -z50nx32GsE1DC5*0C}Z7Dw#<(5)Mj7puY5svS?hWTOn$(#W -zHvdK$vrFg*_*L;KT*bPjvT5#P{t8vYOB9d#+u(KBlHK#2=)(@k>zicky@w&{V$XefAw#aQSlr& -z=Qqj-I=Xcbnxgs#%INrkGD7WPXzqNVjEW$j(nq_Df1r%eE?s_qql{tn|2xX)_b-$& -z?oX7_5Y&G7gyhg)%0reV~j{L;peJC}Y_lC}Z3R_41!6 -zBYx3eC?m*kl<{r?%CGzQf1-?cz3-ve=~?;C%*U}wU@;8sL*u1}&ud4btMvi0B?O9$ -zyd{I{5Gu`bDBN|)?6@7gl$xxk`(db>{axO?l?tJyDV_)n502d#mC9lRjWT8o3nokt -zPZdnbe!bVH?gV)+zfr~?NgpVql5Q;i2g*26@(0RD%>6HvG3ZZ}k=QwvlAVb5H_9ma -zFO*Tp{7;mT;)S|9GQO5BPl=0vnC?nP1DC1-6 -zA1I^6UnnEqzfnfOqZp;c2gCF-eOGYFn -z03Kx!;5Xx-LK-ft_O($xG8eI=&<<$&yOw*%iR(0e>F3Z*X4VVl%(PUQmve1Vn>#5N -z6drG_KR>VGU5MqR6-6XBi-{ANEiNSn?83Z1{)mJSg$j!FQvLpx$bpd4t#KMLcxqh{ -z<8w6hSrI7zy?p3kEhcVoDrYO=8~Z%TyiUbnPM;tIp;P$UMvwB7`!SFhP1;)0Y}9@vx61??Q;TF-2I^ -z!!oXD0NqUdO^ra}rVgB6<>t8=4^b(Ard_ITp9{A_Sce{u3Tz&L+QJ*d;W01J$NUYf -z@~7U|+p$UCw!54YsY6Y42+2Cu9Yk9lLN6ePOvKR%fs-=+*IIz)u-0k75#v5C;tk)x -z>C4@(FHG~?HHjcb%f@d;4yMXadkG#ih9z$ZSbHj&@YX+w?*<%yr0~4^8|m>|^lH3^ -z$_)1tuHLewwN#s6Z_Y8tvcEq^E}D_axxrr`1t0#Rv8