python311-msal-1.32.3-150400.11.6.2<>,}hKp9|u&^ўB ItՅPqTq=$UhRJ|vACWfRQ#6%QrB>׌6kQ6j 6dJ <֭vὫlxS[K0sqa5&u ܬ^3L,=ؼn[^Կ5ZCZ#4%jWM}U&Y9IxtUo˳J"@sd L@A`>A?d & Ytx @FPVV TV V XV V V\V VV!<!L !p "5 ("n8"x9":%BtFFtSGthVHuVIwVXwpYwtZw[w\wV]xV^RbcddefluVv` wdVxVyHz4DHNCpython311-msal1.32.3150400.11.6.2Microsoft Authentication Library (MSAL) for PythonThe Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect.hKh04-ch1b9SUSE Linux Enterprise 15SUSE LLC MIThttps://www.suse.com/Development/Languages/Pythonhttps://github.com/AzureAD/microsoft-authentication-library-for-pythonlinuxnoarch, \)@*PS--99^^=j=j{;{;mm++;;))WZM  6,22M3"vc7kkS{S{ z z$DD:J : x"P%AAA큤A큤A큤A큤A큤hKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKhKh 8ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508b9e1c9b3b348a58186dd4fc69c994cf26c0ded0d91ebe4bd201e6f7d05ead8ec31bfa662badda8288ee5215a555dac020616e5a128b2e59cf35b09f3f833810cec8433510aba47d56b7429ea71e615a9020dbba5348b048c6cc83031c1109ea5e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a6472d658cd44b8018567e9d27eef7ebb389662bc5d9ef1103d6ff6418e27f5f93efe85959308ca385797041e5ffbb106b27ff3cba317df208cc5e186228769253ccb8742238c6a6203f4890035f4442c9bb11252a8ad191fb1c922c65fae840f9806253c93bfc1743afd05ab4fd3159036c523fd912764b2c3f0230100f04884fe9a7900f66e342d2d33aaa44bf7ae0ccbf90fcf4d19c2910c8fea9fc664fc84fe9a7900f66e342d2d33aaa44bf7ae0ccbf90fcf4d19c2910c8fea9fc664fc82492aacac485c3da66d4f2bb8c6d0d4d63753cc4b7a144ca688f175245a9142a7a3fe7f4a4d56c5539ab74522fb29924683ae5b36df839de27b616e59ff48e1bb5a46bf80fac82fa2481d7a628317917ce736caae75badc1a1871d20905afc4f29e0044f5d050ad763c569456531722e834d7a604d8a5b86bd3a81b4a334cc8fd01bead7b006240b0463545ec6ff78229e229f7b7c12ee7a04d84e41ff635137d01bead7b006240b0463545ec6ff78229e229f7b7c12ee7a04d84e41ff63513702b63ba98d77ab6daa935aa294ab83d6340751eb60a37550cc48584e7092b3f902b63ba98d77ab6daa935aa294ab83d6340751eb60a37550cc48584e7092b3f9844ba6fded5ee98b8c4e74a93b4377eb1986a38f60b64f2e4636d4c52b63ac4c1560253f4cd55e841693db334cfae3fd5f175ac728368707873137b73d779beed085d3d60364a60b10be66a831f263f6c618da95c019b9198f79a70ce1491871d085d3d60364a60b10be66a831f263f6c618da95c019b9198f79a70ce149187101b2aaa3f06772dfe6c007f0f1dc851d07c1280178905d1e5c3c9c7f7caa31a301b2aaa3f06772dfe6c007f0f1dc851d07c1280178905d1e5c3c9c7f7caa31a33a94f82c658de3fac58f94c18bd4a734686cbeb60c1f1753a271e6a4fdea296a3a94f82c658de3fac58f94c18bd4a734686cbeb60c1f1753a271e6a4fdea296aed8b5567dfba8ea0297649a418da04d18add9e3d3ea72edb261371c876e32723ed8b5567dfba8ea0297649a418da04d18add9e3d3ea72edb261371c876e327236c51fa616d1a75d43a8367e2aa35da6d468f926da270d7a35d2991ad1c5a39656c51fa616d1a75d43a8367e2aa35da6d468f926da270d7a35d2991ad1c5a3965ea5e59b66355d22af2fecf50c596af07c64f7ec0a9e7ec8b245ef2496bdf3ebdea5e59b66355d22af2fecf50c596af07c64f7ec0a9e7ec8b245ef2496bdf3ebdf683263374fcf86fcb7e8e1295308ce079b163920b48fb68077bb87d77b1a5a2f683263374fcf86fcb7e8e1295308ce079b163920b48fb68077bb87d77b1a5a21327a0ad585e0fee08739819c9e836a95a9838c984548fe6627ce119bc821eb61327a0ad585e0fee08739819c9e836a95a9838c984548fe6627ce119bc821eb6f95d99fabad61eb24ae469a3f04f1c04fc3e83d270520cb52ea7d61c6979852bf95d99fabad61eb24ae469a3f04f1c04fc3e83d270520cb52ea7d61c6979852bf067271ea741ed39be65252e786025b420d0fb5de738b1a9120c83606ab93e6e4af69621c31c32e71366e279c9547a4c7728cc4e0f6b0d8508a8145cdbffcdc7f6081883b8455f18885fe9622ef21576b7b1c588c19abbf0a439f1f8379956c1f6081883b8455f18885fe9622ef21576b7b1c588c19abbf0a439f1f8379956c1b74ed98bb6a760dc4f300798ba6329c746f518015715e8493c6c054b497eb8c5b74ed98bb6a760dc4f300798ba6329c746f518015715e8493c6c054b497eb8c51fb9e1f73957e633d127fdb02dd7c77db97a72a3734729c76497d41524fabdf26e22355b6644576bb9710a6c17524adb290bbb24c229a45989c80e6b6910a9a0813f3a98f868c66550d1a53a84ec8e70c9d718aa5bc4358a84d45670f8105c07d2f76d089344f0a9b8808b254c69383f9db4fed3c906cd8d9ad4b047f1f3c3022974d1817e737d1b8da917d542cfdbb92f2053d378d2c7360b9ac18bbf5b9c1924ca721486e53ea22c4a9efdce400506a37e9053d115e9c7137c65bccd0b20a32b67bbd843f7784a03bc641cf4e598d6bbd0c4998ee083aa71a1be17b707b89950e2ce229fc14dcd79c8a0a75c6c7a1d4573d5ffba68814aeaf950460a53a92dfe8b9bfb7ccd254a6dd4a4d1b7f5d433110c4ce8c784b6508f36ff54b14754779acb3eaef42126dc2a7710e7c72525474c2a62a94266de9879e65b2dddda35df60ac74000bcc6c8d41c9da74a4c325d426b4d0a8891ed9d70f5045e8b7babbf960ac74000bcc6c8d41c9da74a4c325d426b4d0a8891ed9d70f5045e8b7babbf9714c0943245792373c3fd12a617a2b3b63dbfed617282a2474a279e87156a359714c0943245792373c3fd12a617a2b3b63dbfed617282a2474a279e87156a3597724e27df502399e0d15b0de9fcb16fe860ff205c6208500b8eeca5760bbb3667724e27df502399e0d15b0de9fcb16fe860ff205c6208500b8eeca5760bbb366b1d30f93af93b93b582515f6195c9b382ee6ea0065e48f4826323452f1a86524b1d30f93af93b93b582515f6195c9b382ee6ea0065e48f4826323452f1a86524fae8d37bda50e8f66739437bfb96d044622bd7af9fa7fe746bf1a1c1c00e852a1af7be0c37491dbe77bb81bfdedde4c8b95f2c0f4937d2fdb37f5bb62ad485b986301b1c01610e0dba763483949a59e9366567f08ddce446dfe2bde64ae8341886301b1c01610e0dba763483949a59e9366567f08ddce446dfe2bde64ae8341808b9e261d5095b9f1a09e28d3ba813bae24682e0b1201b6db35df0a8c75bf2ac04105b5af0bc9b7e34564a727be6d191682de6e5035835ec786adb006c091195768038f72cafdaf49aaacdc9b539776128879040e79ee3c53b151cd45d862320ed4321a3162e753d97149fc4ca26fc23400f0045ab6649cfb694cb54904bc7bde12d32597cb3d6ee5aaa65e45d52f7f28fcc218567497ca897678315490e591537b678dec6f08e741fa14402e93051f31cb7bf5a18feb23c847d3e01f8976bc8401e13e1ab9e183de6cd0c61aab1e50f6a9a188ba77babcb2269335002b111d178f965270800d78b3e9fbd29ac19dd028ca2400318cb56956a6e955dec54d0077d9cf2ed4b4584357d849bd06af5041a057fc09a9c2973b3d474078233d8ccc40bbc13e3f55743774363154812ff839bf9b45e8d992455d6907db55e75152dc5d92e5e2b198af1f9259e2ac119ec2d76191c03b3bc26f1352a127cf9cf64e32c41f99d8cc11fd6f103f2f1a6b4831623552fb29507b4527c0028cc7de7237b68b5bf87e5328b7a25137258622583e26eb6948dafb555fde813483414cfa8bcb0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-msal-1.32.3-150400.11.6.2.src.rpmpython311-msal@      python(abi)python311-PyJWTpython311-cryptographypython311-requestsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.111.0.00.62.0.03.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3h@g`@ggVf5f'@f&@f-f@e!@es@e`@e#@eSd@d?ccGbb<]@a(@` @`\{@_=__u@_Wr@_H^@^Kadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comrjschwei@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.comadrian.glaubitz@suse.com- Update to version 1.32.3 * Fix a regression on Azure Arc / on-prem servers (#814, #815) - from version 1.32.2 * Bugfix for Authentication Failed: MsalResponse object has no attribute 'headers' (#812) - from version 1.32.1 * Optimization on cache- Update to version 1.32.0 * Refactor to allow adding new field into cache key and/or content by @rayluo in (#751) * Warning when obsolete msal-extensions is detected by @rayluo in (#752) * Add msal_cache.bin to .gitignore by @DharshanBJ in (#753) * MSAL will use env var MSAL_FORCE_REGION by default by @rayluo in (#756) * Allow MI endpoint changing through environment variable by @jimdigriz in (#754) * Revert "allow MI endpoint changing through environment variable" by @rayluo in (#769) * Fix document for using SystemAssigned managed identity by @jiasli in (#764) * Suppress a false positive CodeQL alarm by @rayluo in (#783) * Pass Sku and Ver to MsalRuntime by @Ugonnaak1 in (#786) * Try to suppress another verify=False by @rayluo in (#788) * Supports dSTS by ClientApplication(..., authority= "https://...example.com/dstsv2/...") by @rayluo in (#772) * Add test case to show that OBO supports SP by @rayluo in (#481) * Enable Issue-Sentinel to scan for similar issues by @DharshanBJ in (#790) * Support pod identity by @rayluo in (#795) * Scope to resource by @rayluo in (#785)- Update to version 1.31.2b1 * acquire_token_interactive(...) supports scope with the shape of "GUID/.default" when running inside Cloud Shell (#784, #785) - Override upstream version with 1.31.2~b1- Update to version 1.31.1 * Bugfix: The Managed Identity detection logic on Arc (#731) had a bug (#762), now fixed in PR (#763)- Update to version 1.31.0 * Integration with Broker-on-Mac in (#596) * Change Managed Identity detection logic on Arc in (#731) * Managed Identity supports CAE in (#730) * Support Managed Identity on Azure Container Instance (ACI) with Resource id in (#741) * Other refactoring in (#740)- Update to version 1.30.0 * New feature: Support Subject Name/Issuer authentication when using .pfx certificate file. Documentation available in one of the recent purple boxes here. (#718) * New feature: Automatically use SHA256 and PSS padding when using .pfx certificate on non-ADFS, non-OIDC authorities. (#722) * New feature: Expose refresh_on (if any) to fresh or cached response, so that caller may choose to proactively call acquire_token_silent() early. (#723) * Bugfix for token cache search. MSAL 1.27+ customers please upgrade to MSAL 1.30+. (#717)- Update to version 1.29.0 * New feature: Supports Managed Identity for Azure VM, App Service (including Azure Functions, Azure Automation), Service Fabric, Azure Machine Learning, Arc, etc.. Comes with a sample, its configuration via ENV VAR, and its API documentation. (#58, #480, #634, #674) * New feature: Support reading ConfidentialClientApplication's cert from a pfx file (#684, #699) * New feature: TokenCache class has a new search() method which will return a generator of tokens. The old find() method still exists and returns a list, but MSAL 1.27+ will not call find() anymore. (#693, #644) * Change: Re-enable the username password flow to go through broker, if available. (#712) - from version 1.28.1 * Change: pip install msal[broker] will now pick up the latest PyMsalRuntime 0.16.x which contains a bugfix for being run as administrator. This release fixes #707.- Update to version 1.28.0 * New feature: PublicClientApplication and ConfidentialClientApplication have a new oidc_authority parameter that can be used to specify authority of any generic OpenID Connect authority, typically the customized domain for CIAM. (#676, #678) * Dropping Python 2.7 - from version 1.27.0 * New feature: remove_tokens_for_client() will remove tokens acquired by acquire_token_for_client() (#640, #650, #666) * Performance: Throughput of token-cache-hit happy path is roughly 2x faster (#644) * Adjustment: MSAL no longer attempts to validate an ID token's time (#656, #657) * Adjustment: Bump upstream broker dependency to 0.14.x * Improvement: Better chance to remove accounts from broker (#651) * Improvement: Cleaner console output when the http local server is visited in https protocol (#546) * Improvement: Reduce a bare except clause (#667)- Switch package to modern Python Stack on SLE-15 + Use Python 3.11 on SLE-15 by default + Add Obsoletes for old python3 package on SLE-15 + Drop support for older Python versions - Switch build system from setuptools to pyproject.toml + Add python-pip and python-wheel to BuildRequires + Replace %python_build with %pyproject_wheel + Replace %python_install with %pyproject_install + Update name for dist directory in %files section- Limit Python files matched in %files section- Update to version 1.26.0 * Do not auto-detect region if app developer does not opt-in to region (#629, #630) * Support Proof-of-Possession (PoP) for Public Client based on broker (#511)- Update to version 1.25.0 + Deprecation: allow_broker will be replaced by enable_broker_on_windows (#613) + Bugfix: Device Code Flow (and Username Password Flow) and its subsequent silent request will automatically bypass broker and succeed. (#569) + Enhancement: acquire_token_interactive() supports running inside Docker + Observability: Successful token response will contain a new token_source field to indicate where the token was obtained from: identity_provider, cache or broker. (#610)- Update to version 1.24.1 + Includes minor adjustments on handling acquire_token_interactive(). The scope of the issue being addressed was limited to a short-lived sign-in attempt. The potential misuse vector complexity was high, therefore it is unlikely to be reproduced in standard usage scenarios; however, out of abundance of caution, this fix is shipped to align ourselves with Microsoft's policy of secure-by-default. - from version 1.24.0 + Enhancement: There may be a new msal_telemetry key available in MSAL's acquire token response, currently observed when broker is enabled. Its content and format are opaque to caller. This telemetry blob allows participating apps to collect them via telemetry, and it may help future troubleshooting. (#575) + Enhancement: A new enable_pii_log parameter is added into ClientApplication constructor. When enabled, the broker component may include PII (Personal Identifiable Information) in logs. This may help troubleshooting. (#568, #590) - Remove temporary version override- Update to version 1.24.0b2 + Experimental: Building on top of 1.24.0b1 and includes some adjustment on handling acquire_token_interactive().- Update to version 1.24.0b1 + Experimental: Surface MSAL telemetry as a long opaque string (#575). This behavior is useful if your app has your own telemetry mechanism and wants to also collect MSAL's telemetry. - from version 1.23.0 + acquire_token_for_client() will automatically look up tokens from cache (#577) - Override upstream version with 1.24.0~b1- Update to version 1.22.0 + New feature: Support CIAM authorities in the form of "tenant.ciamlogin.com/*" (#520)- Update to version 1.21.0 + Support getting an ssh certificate via broker (#515) + Support B2C's usage pattern of using client id as a scope (#505, #530) + MSAL's token cache helper can now be used to store tokens returned by App Service's Managed Identity (#519) + Switch to a new set of regional endpoints (#513) + Test matrix covers Python 3.11 (#512)- Update to version 1.20.0 + New feature: If your app uses MSAL's acquire_token_interactive(), you can now opt in to use broker on Windows platform to achieve Single-Sign-On (SSO) and also obtain more secure tokens, all without switching the log-in experience to a browser. See details in this online doc, and try it out from this sample. (#451, #415) - from version 1.19.0 + New feature: A new ClientApplication(..., instance_discovery=False) parameter to turn off MSAL's Instance Discovery behavior. See more details in its full documentation. Also, ADFS authority will no longer trigger Instance Discovery. (#496) + Enhancement: Use provided authority port when building the tenant discovery endpoint (#484) + Bugfix: Fix a regression in regional endpoint which affects MSAL Python 1.14+ (#485) + Enhancement: Tolerate home_account_id to be None - from version 1.18.0 + New feature: Optional initiate_auth_code_flow(..., response_mode="form_post") to allow the auth code being delivered to your app by form post, which is considered even more secure. (#396, #469) + New feature: acquire_token_interactive(..., prompt="none") can obtain some tokens from within Cloud Shell, without any prompt. (#420)- Update to version 1.18.0b1 + New feature: Optional initiate_auth_code_flow(..., response_mode="form_post") to allow the auth code being delivered to your app by form post, which is considered even more secure. (#396, #469) + New feature: acquire_token_interactive(..., prompt="none") can obtain some tokens from within Cloud Shell, without any prompt. (#420)- Update to version 1.17.0 + New: Define some Cloud Instance constants and the usage pattern of using them (#221, #433) + Enhancement: Lazy-load dependencies so that the start-up and run time will usually be faster. (#423, #454) + Enhancement: Bubble up token refresh exceptions (#431, #434) + Enhancement: Documents a simpler http_cache usage pattern (#439) + Enhancement: Expose authority discovery error for troubleshooting (#443) + Enhancement: Actionable exception message when local machine time error is detected (#446, #449, #453) + Enhancement: Actionable exception message when username password flow encounters errors with ADFS (#456, #458)- Update to version 1.16.0 + New feature: Introducing a new http_cache parameter, whose documentation is available by searching http_cache (dict) from our API Reference Doc (Implementation #407). If an app utilizes this feature, it will also address #80 & #334. + Improvement: Prevent concurrent interactive flows listening on same port when running on Windows (#427) + Improvement: Detecting Regional Endpoint from env var. Also ensure the entire regional endpoint behavior needs to opt in. (#425) - from version 1.15.0 + New feature: Now both initiate_auth_code_flow() and acquire_token_interactive() accept a new optional parameter max_age which is the allowable elapsed time in seconds since the last time the End-User was actively authenticated. If the elapsed time is greater than this value, Microsoft identity platform will actively re-authenticate the End-User. (#381, #389) + Improvement: MSAL will now automatically utilize a backup authentication system, to provide better resiliency. (#376, #395, #409) + Improvement: Previously, acquire_token_interactive() was not able to be aborted by CTRL+C when running on Windows. It is now fixed. (#393, #404) + Bugfix: The http cache feature shipped in #379 came with an unexpected side effect to slow down the Device Code Flow. Now fixed. (#408, #410) + Change: Adopting cryptography 35.0.0 (#414) - from version 1.14.0 UPDATE: There was a bug in this version, being fixed in subsequent 1.15.0. We recommend everyone to upgrade to msal>=1.15.0,<2. There is no API-level change in this MSAL release. So, all existing apps do not need any code changes. Just upgrade, and your app will gain the following behaviors. + Behavior Change: By default, MSAL Python will launch Edge browser when running on Linux, when Edge is installed on current desktop. (#388) + Behavior Change: MSAL Python will use an in-memory http-level cache. This would improve the latency in normal cases, and improve responsiveness for invalid requests and outage. (#159, #379) + Behavior Change: MSAL Python will no longer use env var REGION_NAME as the Azure region name. (#394, #382) + Bugfix: MSAL Python will no longer throw exception when your app excludes the profile scope. (#387, #390) - from version 1.13.0 + New feature: MSAL supports a confidential client being authenticated by a pre-signed assertion. Usage: cca = ConfidentialClientApplication( ..., client_credential={"client_assertion": "...a JWT with claims aud, exp, iss, jti, nbf, and sub..."}, ...) This can be useful for where the signing takes place externally for example using Azure Key Vault (AKV). AKV sample included (#161, #271). + Improvement: Skip unnecessary and repetitive region detection. (#372, #373)- Update to version 1.12.0 + New feature: MSAL Python supports ConfidentialClientApplication(..., azure_region=...). If your app is deployed in Azure, you can use this new feature to pin a region. (#295, #358) + New feature: Historically MSAL Python attempts to acquire a Refresh Token (RT) by default. Since this version, MSAL Python supports ConfidentialClientApplication(..., excluse_scopes=["offline_access"]) to opt out of RT (#207, #361) + Improvement: acquire_token_interactive(...) can also trigger browser when running inside WSL (8d86917) + Adjustment: get_accounts(...) would automatically combine equivalent accounts, so that your account selector widget could be easier to use (#349) + Document: MSAL Python has long been accepting acquire_token_interactive(..., prompt="create"), now we officially documented it. (#356, #360) - from version 1.11.0 + Enhancement: ConfidentialClientApplication also supports acquire_token_by_username_password() now. (#294, #344) + Enhancement: PublicClientApplication's acquire_token_interactive() also supports WSL Ubuntu 18.04 (#332, #333) + Enhancement: Enable a retry once behavior on connection error. (But this is only available from the default http client. If your app supplies your customized http_client via MSAL constructors, it is your http_client's job to decide whether retry.) (#326) + Enhancement: MSAL improves the internal telemetry mechanism. (#137, #175, #329, #345) + Bugfix: Better compatibility on handling SAML token when using acquire_token_by_username_password() with ADFS. (#336)- Update to version 1.10.0 + Enhancement: Proactive access token (AT) refreshing. Previously, an AT is either valid or expired. If an AT expires and your network happens to have a glitch, your app wouldn't be able to auth. Now, MSAL Python attempts to refresh some AT (typically long-lived AT) half way towards their expiration, and silently ignores the error and retries next time, so that your app would be more resilient. All these happen automatically, without any code change to your app. (#176, #312, #320) + Adjustment: MSAL Python will keep RT in token cache even when its usage encounters an "invalid_grant" error, so that the RT would likely still be used by other requests. (#314, #315) - from version 1.9.0 + Enhancement: Starting from this version, MSAL will be compatible with both PyJWT 1.x and PyJWT 2.x (#293, #296) + Enhancement: Better support for upcoming Azure CLI's SSH extension (#300, #298) + Enhancement: Better deprecation message for get_authorization_request_url() and acquire_token_by_authorization_code(). (#301, #303) + Enhancement: Better exception message when using incorrect case in client_id. (#304, #307) + Other improvements.- Update to version 1.8.0 + New feature: A new extra_scopes_to_consent parameter is introduced to the acquire_token_interactive(...) API (#212, #286) + Adjustment to previous version 1.7.0: Lazy import webbrowser module only when necessary (#287, #288) - from version 1.7.0 + New feature: A new initiate_auth_code_flow() & acquire_token_by_auth_code_flow() API, which automatically provides PKCE protection for you (#276, #255). (You are recommended to use these 2 new APIs to replace the previous get_authorization_request_url() and acquire_token_by_authorization_code().) + New feature: A new acquire_token_interactive() (#138, #260, #282), comes with a sample (#283) + Bugfix: Now MSAL Python can properly access those Refresh Tokens which were keyed slightly differently by different apps. (#279, #280)- Only build Python3 flavors for distributions 15 and greater- Update to version 1.6.0 + New Feature: ```ConfidentialClientApplication``` accepts private key encrypted by a passphrase. (#232, #270) + Enhancement: Provides different exception and messages while encountering transient error during tenant discovery (#263, #269) - from version 1.5.1 + Bugfix: We now cache tokens by specified environment, not by OIDC Discovery. This won't matter most of the time, but it can be needed when your tenant is in transitional state while migrating to a different cloud. (#247) + Bugfix: We now make sure one app's sign-out operation would be successful even when another app is acquiring token from cache at the same time. (#258, #262) - Update Requires from setup.py- Update to version 1.5.0 + Added support for setting client capabilities to enable CAE(Continuous Access Evaluation) (#240, #174) + Device code endpoint is now fetched from open-id configuration, if available. (#245, #242) + Fixes in test cases (#239, #211)- Update to version 1.4.3 + Bugfix: A side effect in previous release prevented reading some tokens from a different authority alias (#235, #236) - from version 1.4.2 + Bugfix: Changed case of messageID in WS-Trust Requests (#228 , #230 ) + Bugfix: Removed content-type header sent in request to Mex endpoint (#226 , #227 ) + Bugfix: Bypasses cache lookup for authority alias if no refresh token found (#223, #225 ) - from version 1.4.1 + Reverts Application Initializer will not send network requests introduced in MSAL Python 1.4.0 (#205, #216, #187) - from version 1.4.0 + Enhancement: Application initializer will not send network requests. (#205, #187) + Enhancement: Improved handling of errors in ADAL to MSAL token migration scenario. (#209, #208) + Added changelog in PYPI (#203, #202) + Other readme and reference docs adjustments (#200, #197)- Update to version 1.3.0 + New feature: class ```ClientApplication``` accepts a new optional parameter ```http_client```. You can provide your own HTTP client to have different behavior. (#169) Please refer to API Reference doc. + New feature: method ```get_authorization_request_url()``` accepts a new optional parameter ```domain_hint```. (#158, #181) Please refer to API Reference doc. + New feature: A new method ```acquire_token_by_refresh_token()``` to help migrating refresh tokens from elsewhere to MSAL Python. (#193) Its usage is demonstrated in this sample. - from version 1.2.0 + New ```nonce``` parameter is provided in ```both get_authorization_request_url(..., nonce=...)``` and ```acquire_token_by_authorization_code(..., nonce=...)``` method, so that you can use them to mitigate replay attacks, per OIDC specs. (#128, #173). - from version 1.1.0 + New ```acquire_token_silent_with_error(...)``` method to expose conditional access error classifications (#143, closes #57). + App developers can opt in to provide their app's name and version for Microsoft Telemetry, so that we can understand your usage pattern and serve you better. (#136 closes #130) + Internally, * Collect anonymous telemetry data to help us improve MSAL Python (#103) * Test cases cover ADFS 2019 on-premise scenarios (#142, closes #132) * Switched to our latest lab apis for better test infrastructure (#108, #133, #134, #135)- Initial build + Version 1.1.0python3-msalh04-ch1b 1749798889 !!##%%''))+,--//123456789:;<==??AACCEFGGIJKLMNOPQRSTUV1.32.3-150400.11.6.21.26.0msalmsal-1.32.3.dist-infoINSTALLERLICENSEMETADATARECORDREQUESTEDWHEELtop_level.txt__init__.py__main__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pyc__main__.cpython-311.opt-1.pyc__main__.cpython-311.pycapplication.cpython-311.opt-1.pycapplication.cpython-311.pycauth_scheme.cpython-311.opt-1.pycauth_scheme.cpython-311.pycauthority.cpython-311.opt-1.pycauthority.cpython-311.pycbroker.cpython-311.opt-1.pycbroker.cpython-311.pyccloudshell.cpython-311.opt-1.pyccloudshell.cpython-311.pycexceptions.cpython-311.opt-1.pycexceptions.cpython-311.pycindividual_cache.cpython-311.opt-1.pycindividual_cache.cpython-311.pycmanaged_identity.cpython-311.opt-1.pycmanaged_identity.cpython-311.pycmex.cpython-311.opt-1.pycmex.cpython-311.pycregion.cpython-311.opt-1.pycregion.cpython-311.pycsku.cpython-311.opt-1.pycsku.cpython-311.pyctelemetry.cpython-311.opt-1.pyctelemetry.cpython-311.pycthrottled_http_client.cpython-311.opt-1.pycthrottled_http_client.cpython-311.pyctoken_cache.cpython-311.opt-1.pyctoken_cache.cpython-311.pycwstrust_request.cpython-311.opt-1.pycwstrust_request.cpython-311.pycwstrust_response.cpython-311.opt-1.pycwstrust_response.cpython-311.pycapplication.pyauth_scheme.pyauthority.pybroker.pycloudshell.pyexceptions.pyindividual_cache.pymanaged_identity.pymex.pyoauth2cli__init__.py__pycache____init__.cpython-311.opt-1.pyc__init__.cpython-311.pycassertion.cpython-311.opt-1.pycassertion.cpython-311.pycauthcode.cpython-311.opt-1.pycauthcode.cpython-311.pychttp.cpython-311.opt-1.pychttp.cpython-311.pycoauth2.cpython-311.opt-1.pycoauth2.cpython-311.pycoidc.cpython-311.opt-1.pycoidc.cpython-311.pycassertion.pyauthcode.pyhttp.pyoauth2.pyoidc.pyregion.pysku.pytelemetry.pythrottled_http_client.pytoken_cache.pywstrust_request.pywstrust_response.pypython311-msalREADME.md/usr/lib/python3.11/site-packages//usr/lib/python3.11/site-packages/msal-1.32.3.dist-info//usr/lib/python3.11/site-packages/msal//usr/lib/python3.11/site-packages/msal/__pycache__//usr/lib/python3.11/site-packages/msal/oauth2cli//usr/lib/python3.11/site-packages/msal/oauth2cli/__pycache__//usr/share/doc/packages//usr/share/doc/packages/python311-msal/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:38733/SUSE_SLE-15-SP4_Update/77e1b9fe6adec02637d2cb81c1efa458-python-msal.SUSE_SLE-15-SP4_Updatedrpmxz5noarch-suse-linuxdirectoryASCII textUTF-8 Unicode text, with very long linesASCII text, with CRLF line terminatorsemptyPython script, ASCII text executablePython script, ASCII text executable, with very long linesPython script, UTF-8 Unicode (with BOM) text executable  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR=P/_~>gutf-8a1bc829a923809af8732728902faca65e2f8ba9871d11e0a1b09e53ea3fc67d1?7zXZ !t/K]"k%4Pa K6)*BEQ%%XN9^KNl[ φK2gD$ D~.(F6]9вˍVAj H"P^G> Q|)O'w%Ld{)8C=DѪgX]/ΘEݸ1\)l>f$É|( VB1/r@>DZ5*B)V&9gBXBpM9F.{-S8*kB.l7CI}&!h״k(\WY6eˤqπo,:WeXdÇGܟGQ.xfE6ͳ8 23و,s!Q=791#V[Z DnXnh:Flk?^o5931ѐC7˕8Ǧ~HjS1DTH%j{{OQvRK:wR1 GNѢ{_,xY%OsxUu)!>2`]I_Dwz8\5TQĿXcO\ &25P$K!d;k҇. Pq&53 FKdB-Bѣ{SD.q 7>{Y:.YAE$>] VH\ϣpS?Z\|V]DMr7:ӆX#d3 0CZWp~&|)gdmzրcΣT 9>]گ"Ew2%jg|XC}t|aU6x^7X:xo\~bS GVy뎄á"JqъʨG1(jP9מHr1gR'b/ uOi|72Ynn ILB̦\CNal'o_B6ng,ƃ(˧LcԪzp:9cEeRCxc#_P5qۚFj𧷠B= W" C?gk+ȔzoFI>Wufsu<8^K}ᱝN +덷@>.?aP!0#I]~.9W/t4Vt SsՉ%k\'9;7W̗$xMvA~@{W[%vDMƀyHm{W\ l,Y;@3*G_|{*K1оO4]p^D6e1TDgm.O$Z=3W=M}ѓDQ^Uka"wC lS3^h:2J ?=NVvKF2w9l_q(LHk&0EN[O~ d?" ı-?,z aQqױ$BE}>KSV4Uڡ(EL\YzX*!k}拝t|_NQN1&bu%IYOblS4 a;_ˊY y}S_;{p+`p"N7W\ǃ)]%)N&? 2blW /U[3@msKfp+";;Eҁ QxjJu'Ih vU},2[ʎ5Oz[LIs\>$:D T@ Kɧo' 6)}3=di.JvrJZ25P3%{>E8h3}5$,{䐣6A"yzt=F;|L~^ͭ& 9P,oY_jW%TI5 ~ eb} a_]*iA% lXѿ@qD m9wz1o!.n'zi.r&&Pjw5=9VFgUS }}_Xo =+]H Hl` gLCBTdgk|e%Hb[dco8q>;J2uyyTGJ.H{mvtcĬK%hg#Ox:w,d{;\wkp\;sϵ^,!j/>o@(5b^ra H})u\{jF8j42;cSCT'&OT~l5gJ&ͱnۨN{rg_ TbcC^0tB}gxtCld},/[+l{Y@͂ȤS}9o E ܈=4uPgaAvr||vs@ 1JJeA[ѫa袏6A$^&uK{D0%IGč/- DxK (s\<ꆖS6F <y9Pbm2W#7Hw,s[<0RRl{Pr$ǽxuykBoYOѭv:iz 9w{|. Ҡ-l q3)ܶMG/8['dDsyk[Yr3.BKYChɷۤ[dqjĂI##l%ؒT؀%I*+չI#~! a77؍M4§(J;q@ ed5fL5sE$v,*2QA (g^_ZK$ZSF k̘Ty*pe 8IB]?] dKF1(ż8C2Za{߱W=fDp?Ɠ' qsDGdAe[rN9/p$3(/!G Ak6 %" BCd:Hni<H\=Lo4e=H1tq_WN &]0[7vA0uM0z8cscD`:%dT }k,&И.듀R ?n^;cx94 -m9c(4ne#$wcKuO 1u`H3RB FWh.xL+ZhdTnͤɗME5y^$bs&mͪؼmI a2b;љ\/dد0;cK;-9;ro_F yiZH_ͲO.KaX) FLU63*7k!fEḬdZ)Oܰ-?J%Vͤo@ h8YAy~sǝ'z, +E9AN4~nB#Q],UwgTȁ-JQۙ_5#axLlbew'&lcT!Dz)ijxgo)UDVXtbKUg,DIfNFX#nFP+F}۰|N2޻G[2[ 3KXqb&SY!VnF8A!#Lnٞp@laGؒn, "6o)ӥ&e-IhZ ZZc;z[DjnN>2K=0lecCx!9w3 gƸcEoxBG3xTv$;poyk=+vM}sk;6s/Ы~w0h{K(-TH2Ѽͅ scdZr`Q4MieT1< +M ՋƖ@Sc0ios^!P[G;e' ?Aep!!.p{'`jTUm[pǜhÑq8 ;4( W֝Q,DT.=;_Z {qQ*{fsw]LNǷn2 jdB[|Vz#8L/e7 o>&ҥA[ /TJ6iSf,3Q.Sk>[Wapn*4VFBZ|,5kTi;GsGM-z9Lc=˽Wm?L)Kz!q 'Q ׿.Aʔ ht`rzAcb]6r'<"?¢9Ȳri**h Xƶ#Q)GOI&E'aP7UΤd -EBpBZG=̒ bֻJ+RhƸnT"J5Jw?R^jVT)v(NFu3%HRvZ6;W-~S 1+X0GQ3t O?ckgހ ^(!(4k3+U/MA bDCZ"hNz5pvJh0| P--+]U3gP TC)Rt_QnC2*UC,;)l>LMqV1D{k*MBԭ=yLubUl{^^_7  "Gd;zƝ_+d*ZjQ>F .tŋy.4cWiI@!L\Ŋ4| }--Y33+BkDݳ/qlQ4g+=`(X:RER=-ޓ6 쀤h,X _Xt l SȄn QQ&KL9~wkE#G?[EL!h'fxjCh=٘ց'S#a/vsyU+0Qܼ$Tj^A d~N)zE3Ugo"ǔqb8jj)ǰpX~Y1& Y֗ 'V^L4oGY%[%9l>%y)F)5zk}ߌC0D½[2! Oq{cgbvK!QtU88<؝|cEfS,u G3j6h]m%AMDua]֕xA_Naݻ+p85אmIZJ^~ڵ06`83o~8ɳ 9glȯ[TYYN}O,qp5EA7C^k YowL;D>$q16=Zz'%[7?oS$McyȆVbY~2d#b4`y3a@TA={]7ui3Vtp'm[n*+W q?CqPG 6GtVD F &S9+G5q'WۅsD5ȹ:,KM^6[r͚/$]ɩVY4NCپx]&t/0&sW HHlRpЪQ:kALTim֐ i>\J缇_oĺj|=C*+M"Rת:8  l$ȷDƬ6yN[*YSBAFx1B|v2%h^g\[Aنo!~JȪ7H-,a,. .l03ͦ 4ʂM?%e#%cŷ%}W2W RRBnƋY%\zx2áڛW v"OIO?CArSƶ,iJ`ni.zLXŪ!-E:w:,L/g&#+ґ9CZfzW_gTUF =7ϪxhIњ@pτrE8>qNfG!1~ p4-iܟRњ )jv?U(~Ti dj `sjdG,9 =Yǖ\qgZg t.Ufvx3A;u89:+}+z9ŀzbCQ,V՛~fvO/䦳%Un4kJ^cdhTծaoN-^K/D.ToLc_"|Šd{rۑ#)a΀-ir?$0UtRowi0@`L]O ݾKeš"Bj[_EV l$}#)g,BMû):<*k rvJK+%gl 53cϵakLoS XǻTW ͓P?[y$8Ash!);._i֡uD|:'&Hk^P.wMK~o[XvS^b\Oc  <cbTwmBQ%2DqUB0J=ߗT#,Dt<"b8'._}撧&SK&yhN8`%&>} '(^[ ?}v6bj[C6/Xi}|&WoQXoPӄ蔏/'؎59bK2.8)}d-q!? . : NuT}ͫEu 8#||(׌ǿ4Xk~Xe\j94DYS$4;bU$ĮE:,"lpFޟ %qB&+鵆7Ctey<=ԆhB*'hCHӮ9sLLnX͞Ma[\wݚ(U2HDHW}QƈGxdX i ̘بDȨf>pKmMe ij(a x]2)w. [в[//gX^z𢡊s N5%/í:l*gE9"CsjBU@n#u#}irg˹rFz3>cy~Cߖ9Y.tW WCӚ($\v$T۫ڧ2oT#_a;vsx)1 .|a87BϛFeQlD=Y?zWay@bv 2  Gn0Vqi':E&OP~"`~,>mPn ./7tV%kdVվS}V/ r[.X1B>{l]f@P=R2nbu O$Nfo2_.f g Vzو1M&UO@BOf5{@Mr_)X8<K"At --hn(?z' O؎Y-,KC}љ}[@~~ ΃:hpߚ Q@JR5e&0'<$H='jPr6)b`@ 1xCgelAno,ld? >^p^k)4bQl-?" t:&q rw+Lf}%S.7v'J?x-,SkԞ_ϸ:(:2-Y_Ntb,kwN:-KHQ76yL3 1o Ԉx՛y,~tiU*ZnѲO]9H=Gre6]"rTױ[r4;bXoL2F*L^.?c_qZPD[oWߗckܘldx]pamUbG-.͢f!m^g*&<JpQtpV6{nPgh\, bh6t0lmIe+d#u ll RJBq؂9f"Dcj!u9txL{ug\u\F#}NhO`sXL`aevG`ywƋQuBHf|^wy*>(AZ@VKv)?1-,1Gon?_FIQ(pP#wO$j'iB ?CRqJxp-4/yJuɊ(6"&1(_<ӁmF{#{,sC>M7DKۜOSS$` u^ݗj"(b?,?pC ^vu8gA_pH e-v]c R+f6-V; \~H<_%σϹdzо*tw*j/o=vIN l'Jё5NѩG|ZK!螺D<ىEx;aUD :/Q*+E[Y_W z卥ѮɊKպt=ptP֐O Q_Y K'ol ?0O|f8/5AiNՒjZ~Э YC+˛@!LW媈nk꺻sEmT$V- b?)NK5JGuSW_'gsPkW^BSkX,S4uX /DMik7ᜱS`ܨC1v%ya|O}+==ToU^֖o]QA<+%ߛ&D·ֿ -X(kY}OK:hzˁtyH4Oh/@#3fgUMa.3'|jfWӯgLJ/Q/0:Dr|z4:*(.P% 5m h56wag*ŪA +l19RJc>P1bEBTCa{Rs7 B0{,MqJ-^$,HHLLwLLPMp2 "'=${Wzښ=' |AD.I*-˱ޡѓT{it(OZt.vٟݓs4:z `";=,D7.&qC3- Ty[ܝjLDB4̚0DL\pyKqu^g=Oa25'u"f :#O$v,otuR8gU9_:j \e8ʃ~=qKZ8.c/Um5nn @0s5:͠6u29pòʊʽ[]\Ly`(M{cΕgWoYuV^!Gaٶ2Z_:iQgJQT!k]8 Scwoyc$舟V?Wfa sѸ*emyԡz+:&z_hKb0( ;Dm<%GcmNoI />ee;˽]e]y< ^gFi #%jI-9*L ߿x~M:bf}CW{suj"Tb0tlR h)Nc[lOla,5 Wf4ߎ i|-FpFBWhR+sD ?̸s$#"u>Շv~5XYfwwEkޛoF1-!p"KEw084GB1mf2r6g[DtI̼̊m*}ίn6b]> mY39vH?< &^Xǟ{XBwJ,5لK oVh!^DKx}E&R 7 ,M8_cC5altv5Ӊޜ $Ln~9y𦠿̓6lA|q`NFFC B*Ʃuᒒä%F?7)Njʶb@X b8Fh^z6G9'_;a 8BՠmY. g *Nąc#?Z@$CA>4/|-L–>2|CyAb +7>d8} QtCϣ*ݾzBq2"|d^ |B79irоUc8E;0R~ Q0!èƣ^iq߸fl)џ &8-E Zc1mkqlM5J%\-i zkuU+$K˳ ܮ4=fowHӼF3ֲcCmXMr{CzӀF9(VZ} 1Lu!h9Kw\=]LJ:M b&C5qѹٙs8ھ )LOQucln߿Eh~qLigUz DYڽYֺ%»AjwTx)m Ԝ;'YeP16dxa|+hZUEfT^-r.^Uz_Z4|@z>zn&fA(bl66CC4r'_?#beQe;嵘x>nh& d<_Цyk1ŎjJǮ">|pe%*7M*L()7A:Hî|ٳpX&o9sMtOƁXP1uU 4|{tYbQfTo)'Oሥ٪S bW͝ ]&\UW֔*1I+#%HD0IEC{ icg ۺiMBdSEhm¤ p8=͡_ AK,4)gBPQ/:Nps:Oe=!CH֧&\I&AQoEBڜ-4o%rwıڵ+="ː+@}AvIH7!~^/BF"Ň(˚ jJ;=1:т[?K@Bw]%8oLF>-$;|eF Ni{6 s|闝pvCA,C))tST*H/SS45߾H',m䂗tY*Ϝ!h"0tKd6yHb@O\׬ۦr.DH sU*hU'<45ZU9N3 -}GУܽvܫ_%]9[t R}ۭGS m(2sϜWߨPBȂ}?{2;VqNȞ@cFi||R4 _vLgɖ`prai$ppc L^$?'+̊7sn@E }+m%QC $| g;@Қ.*VW++mL_] X>E_Tgu7LO((MDD3|m+\(Քxd".Nvi*{`~{n2TSpMMf~9@&Zx)J+ Ĝ,>*2Dea.nЀE?"efMmɻ-VǶV_'ה?!O]א]`F9:A-zlGCPYAcs&;@uv[NG^܄,8;RY4dUӞ [4zcvG >pLŞ_ٝԛ1G%Vp1sЦʪESѤNr;qG<6J@XN. 䐜#Kpz"IdfE{I #lD|ZQ PпS.m}82pюg+ڄ \dl.v y^tUz\PfOwTCI=(~jPϙ 7&_HՕ-*z^RvKo{˱*'`/|ҧ0fQNR0&9d n$`[ޓyL;%c94oN]0.N'f#}XR޻j L6[-"3l|H]KcC 8œƒ'@r~}E٤:JهjH ͑3K.>2pU[& v6zZ.֙ ;_ta5 NNNkN 󮜐)c1n_%&v{(p+] y}0#lٴ;ۋzl&Mp'QSCG^vJlN2 "g JᲾ}BcpW":JQjLJ+Z:H2#|s8>{5k#Lpѧ!F}m)dr`o&}6`HһJBd Pj-i58 rr LJ|'& P Կ!Óp&2>9`mmu %͕ص>^[5-Y~CW@ lEIupYD-]a˄qHiN2sJ77.K?j+7e#pʬ%;DHb7׻H1Or+B.ҸQ0wcmh~ڼ\M7șo?8fgP9Ta>%_ O$%!ߣveWŕPތLQ L72] ~bA:屍\.5Aq$i m vy=Aq{`}rJ84O5NBF)ByH4kx ܨuKi1235lZUOEi$vi"LUڔyMO_sX @2WYzO[Ms${IʡbԎ*cnz OiRQ<қPHwK7'E5&Akyڕ g̷?zq݁s_M$6X%T/MXspXW@]3;2q󟛉]Au ~9c#p.֞+}?:Ap*5=v{Rk^r;u.ؖ]TET֘5iK_ r<<RK;/&_3c~%l;U|Èb:Xww4 5~6(: M۳&+h2g4Ekt4B/c/{uτ|dm44%au@%a] 1m+Ҡ|=4?!IL26_3w0]ޟ,u\#DxrvFb>Y;o$bsM^E\t¨2܋ZC23⁽qs~GRWX?;n f(~ ەinOISwɞ&=p{ Юr7neX)6K iGRjjfC$IWK],$sv 82(!A & gTde.E7'H@<}p00:v upN42%pAƜ[9FUTI! -̠6DTҍ ryVJ6bv4wMjh]\C,~Tf&̷ua6,]J`5N<'\)JEu4*nr^ؔ1CL?:Z1}@ڀfvRv/R䮬Rpc8\%INɁW!NAdlV o2fN YflJ'S4!=W?Mi\C[ƞzOy"+JdA-^BJneIkVܘq: 3=.L|ְٞBf6VCz>}|"a\NP踏k%pmK ԫBi\h̆3sWzM@ %D QwA8>6k 3ۊh: >q;+Jzg|W.ΜKTu2s?0c~}ԧ)QqxAQDOO}9[O[g'@v)UY 8ZmlM7SfW7row?*?Tpf 2SN< Nm%`&bkU]trx~~;b}_aVB̓Sв!v5ws*}~b8_f!DM}{jG[@ K=',>}7[3.V rkGP~ PqRL]~Y [s[|avwn6/kʹJor-l#~¦e$ퟱ}>=@'so:'A<_n Ĩ;y1GB!~O(+ I$?̣lWyL& *_Ɵ]-]aĹDZNa':bTuUY]1<YWB76jj= iػ>"[+GHT sKޖ4V_0A;Q\_&͑VD~ Fܷaq~ְEۅRQ]7Gg\YmFZo]^(I3ilA>zCMteIRa])&yQDo`jbE݁1MJ{^$~{X$µ A q4kU5m8fٱr g|AI۞1ݜjMB*i[P {HU KO;Ŀ.s ư~i^.*:̀.%֑S #0&n!r`9 cy#LJ"@ 8 ~k"(3xFXhޖm w fh;G)q7 Ld LPT>I|AB:fdtjxޒ.VM[}Ӥ#l^_UA8Y ".9"?\]+djs_jwU6J݃+2'ηvЄ`!+j6eoXtli"s&`ې"/ 2>ܘXdvMB7I0dFhAу"4t4@2Ow--]꠴2y0 Wn U(H8l.}euJgOٳl&Q9g{y1OYȹa}W2΋0Ӱc^Kᓻ3,9:dO<[q麶kd@3ɾ3Pܿ<"RV!0j t[&h5$k#o;1> %LW A?ѭ*jxPpFt)Z|^R4"a0R۵ʺJE=s5e񃰼c,L"qRǦ][we܁wC0>Ta:'@&Z zFU\?ѨmZfٔ^[ ;0C⢋+ zԚ6GӖz\uDcBX0o@ Q'?ءY&b>CF'yF2AmgE{si^M}v.Ĕs\W'xcZ|al5dlg,U#wAHn/$-#7TDSREwl͈]V?c ӮWj|6|69bƇB*ۙtOL$kI哨w ׍[8Gڦ#W]Xɐ,f4k}|@ i6rgPizG~By_9b6Pw" j,}<ۙ- SYhM1@Y޾$~:ynI0OCpe mojYZC64TYF5AN5;n6Jl;LjnEr]`r\d ִ!Rx%R-R bU5;z~P:& HR@koteC$,T㥚afVRQZ ;bGl,co IuiF>6VM4[&Oeg\[{>H?YFCYx#3GPnOYlFZ9 ?Ntf2vc7z "qwh,nx[MCZc ;uhm{\“A|`@OT >M9ځJohkj3Jy\6tKp5rӎ&"wƘ l8CVUtr{AjF102|6)_z8ñ&v! FF)呰t\q&i+a/_#L]]] )I*O}V{( =Gs|-ԔrttRwM$D*O]M A^f7A˰XW,@aP}E!۸vQvQlr"^Ck*:>o ?::qlVS S)u)T| "eV62PgA0ioGPpF85e{L,έeľ7W>x,A釱#Zΐ3M j]p`{_ds'"{TܒՂy >Cbb‹A-qFL (;7cFF,. {GgJx3ƈuXZ$;K0JҀ=` pt|pFXR8EʆPUE; jgVӑ20u~dA &yS#o4!RI& >l^g<> D.8 =43Id:OP.TW-;bN<@PNl Y&5x > c!d{HO_GYqD)D x(!tQ٤,j8X8(JW\# I()ђI(r{s41&"zDhW;=va|ƌF4,!|ÓU7w2/YyԑXs;P$v( !@<m+慝C@@qsT5h>;DH~ONE.뻢O `ec$\PhgxUvA&Lc,(A>#[NeW4˯}!49B^Q8dæ]l&Og,J>T}W*1' &!xa(wX Yd:ĻS#uKOe!:%.dcu0gϵnѼw}#!i&<׃B)|:3h@Mx!`P;Șz'އ6Uph  LL @GYf)k2A.QxȖmpz6;8=Ll*x_+Vڃ&7X9wn DW:6 CSFaPZRu ^O5z:$iZ3xweE ]m7>mtmt /;"ӀKC",6 -zZ0qz,Θ#]=9qѳuZ&p2 ^Fg*.lam}uRw2ݤzxޕ [mܧ$zEM_CQ$=:xH lfYSR#_cl&㰖8P2}Z\J,3]LJf,=.akdR ""IP/}CrJ!wv Oaݡ0蕅AEj(m풏|nzy]OXole2;~4$>Ԫz *UǺ;u*+n!ԸLx0\^(ն,6KHնrz9 %+o&!vU ?j4sy8$-;7)Yt݁^mj8;qC3T-8zC\k{G': B(n#{.ZRBrXm$ f|qs\*,|vY wZlR U3Bzz05-\MH_b9?Y̍|oՄ)>,6 پt8Z?N'G䞱 ;wwwtnDD@ 8^M&RJ9B/ #5&Zf^חU$Wyooݴ|-Ma١im*+â#G5ӇrJwmۆgm@}YIGq_ ^ GW~ +D|;v&PYȝMTBzhu0e(RM-V LPe!'OdJ%>w5޾a$kl|DWێ ( \ )%ɘn˙cU.ʌ0$spIKlS*jG:f؀b0$ IDf]֗RGr3;a5co@"m6|J}2"KE%@Րd?w=II\Ejlz&W?Zwwe8hI&٦4=[U㮚P$iiHm02ǭO}jrm@9T'{] /Qͱ&G& P0Cqh;"ì2(_s=z9"mQmaJg}4+x;:@ &]_HB^ *ڌ ٧}f|c0Ax nj_ģr"aV҉oy?/kNk4xg%֬duޢ5-5c Š `’;1 0*N9"G9S,CLĮ;+5`Md_ErvgBr0(D>YjU|ul; c*ɒ}\Q 81pbY9&&Y`;`8ÇE-i_{GPrhRT {A4՜RXW4 Ȁp@AIɡcfj,Q&< 6ƍ,^tR<9.,_ j_|&  9C珐#A%v6K璩5Z+F"_6 (۞JƆ@M=ݍHWMUJG:&Rl~;w:6> YR)ӨhK\&j܏Mp*p7*)iin(0"uQG{98 8Q"WWL _HC . -9|t6w V&]R0/ewP.9}ؓ{: n'NUAQ+k\B/A"D_zQ߶4MG_}Oi3 ^#yB6M<@NbD`<:kO85@7nX vQΣaIbxra*[|fw-alr_qI/f VOy8 X nhUTPe[A.#"NqKJ$G)~;*Ӫ 1i!uBR̉9fB <.JQcvs6Zr޺8-\|#`ڶۤ~~u&U:Y^kD)MqKL$cï_fpIO=ҙfxJ(?gҶT#^'ůG;2'Ѐo3Gt`cG}Р*XXDOnfQ6tF쉂J6κv!s!'t Dok Zo 5!0)U_Qӿd! M]娱% a*d)ql@z쏑;&j>"_Ǐ;&ZHFf%]G2vdtBS2*`zHdn C]g"ǎ#Ʒ ޞhlQTi!ɸeIS6պBt} «Q=&ijJM壪`Gt~}?^B Zhw"4XtCJRaKGÉGFV9M $ sYَVO#]ۀ.!3䔟3rL<OiڕF(x@ ]iK#e.w9 ,ԴɇO/O[yz dԵ9P-^y(7—kǃe:=dH':gsWu Iyn.Ay BNsL 7#V*(x߃aGfExXl !p*Q|y?5^2{tcCXXsX4ZOt/„{0{4⍹[jFΜ^ʵ'mM&x\W=Yԣc=\bJI7UC>i=y(ι% `kO(򓡗S4zռ`!FQ ٨:iBP_{5Q 2X?K(\G*^dj_Md +#P@ՇՌe򧡯ьq$iy nMvFU87]0G_xDl. jQKKgNHaf4ΏV .6VmknkKt4lxq]yT7% POӾ@ GpqoO}a9 {ݺg -6P< Є8W9iӞ|zU0w+o1Xt=3ԓV7HlAm$lxO}vb޽RXUgb,:V?Y=^#O J~Ty)/ɣkj.(uiEq_W! z%y+uq:"2^1e]&X'Z\<3;;ojG n;uiz5—C=<.S*&77jʑxj +*߆;J@ݻqPC Ď ?~+T2\.0M/0D(K]VNaCNdc8a%ibR/1I< ?j}PqYGˌ[Q&~zKcuĪpkʟȇt#MwGԝHۗTuƙԷT%ӄ"W!M[\s ;z{>~>XQ;LGOvG/d\MKBzCow͏迀C~)$*hQ}|3/-_b>O$F$"LS4LS2mH_+9;6 JF]7k r Q0l۲$ hx/%eo"wm\F.PU/B膴/ϗp ْv9m(0e]YU&P:A78wƑ)a#ce{!eNtߑ_MJ}L)'{ӡWߋnU`hZ,ebB=ڍȴ9xll&%_)n^ED:XUhܺNNYmډwMD &<ۆSKX*Ikz?*E] s^72g SItXb-oږD cW\VD/j+h%6oH̩ΠO2}^CR!y3D铟:].g7=$Uj0\ eL4&*^ IW| /0IkDZ_C(L{(€c 1Gϒ9$ǫ^⭤.Btwu np ))KMbՠ6㞱cJ(|*=pFLJ`͹/ o dCLqM{GXM= R2{TBG-Ԃ v2uasMH*:+]hR:bH0O=jowKj HKx۰vx&vUAyCvH#N{#Q<܄X"P@$oEmkRh fG9Kaᅱ0WA^ %p!'b;t! BW6k@i8쇙zǵ4UFɳh2xh)ϳu kڇIlO3|jpə3ه; "Z,{->&*jB,$\:A?[q?o$,OW)bJE%\rJ\?SlQssȀc>''bO&ygJ5VrЗG? -Bf@ G\یTG#TI} ݁|0?,5 2Tƈ9$!p&>?VF_.D{Bbz8 w~F0RGB*'{֚L]mV3Fq4@9OKԙz\3,"Kˆ&3I*>֨Anxrk•HZdv%-nȕl,g/> Cvx%iUMGkI!#yLɕ=}idsp򊐋Gy9R.cd)Ќghxڝ7 :{x6[K6m֮mIˉؗ]_y$t<7FkBWWc*; ǬwLA;ݵlwiJVwYf"N{)KiV@۶2)iasdIf.!*a+ܘjahZTa7P=+kN{TbAY|*)7xAil`r`ܳˋ ֥ =g#;5-|U$Dh/mK}a'S4&$Yؙ/b ~E!0?JG=>%ӗCRНصtK0I=FeU毣 &A% ֏יլt˗(&#%4 ^J?%I(H0^ߡ2?2gK& Pf6vLH1A!hӍpI˞S,@ܚ4 `֣ȩ#- ɅR g߳U7C)+"|AYu! x*.StUJoJW|8u5#Ek[ΑK[Y/ S -m:'p۵O 5:y45F }BRC'qjWMxb9jW|og:K.UY֣.]r&i[V~{pU1Ɨh:l H<"h p+3t}{ey@wˉy8ù_vAgelg|9>+άeN )Yh<$%1q\ǝL֦\wa}:%s;ա^A>T!p?-_҈5-Ρ*ĉ!ùNTuHc6qt-HCS`7ݧ 3Pg(DA= Ֆ碂ny(,ܜ% `ü-Ï4|Z)ة?P(nB?8_E<'D`S1f׺(.53QT1Kn=0 MӑXR +7)#H ".b1|'&n*Uz*tňq"َ&ΐޕqwq&+aXKu=)́ أ|N*5!rD/eA%9R/W+n1HbIٓCLS$Ϗ9u_脽Mi_HC/¼.vXoF6PEJpp6w4SS:zfG8Ə?O=W:-Q k4+P @i)WQ%anpgX=oV*xd:ᰰL#(:bd e`KhVGظ؈a~IG'_R YrʹUP&"(C,z@BK/=#{wJdK b^ė. sIYJsW! (xsP:72uS?OL N/%a ^ w1[uxa-ڻi(s `Q3 +腯UNRj^YL5/. kOamU;ݿ: EǖȂ%[rgO_g~sgHLŒXTl >@TU:B?M һ 7 aG!Xۓi qV'MO,!NKYL8x- sƔG*;R>ZJp֌㑸R&!DAggAs(ku"./^Lig6 Ro*q ]3 Kq'g =kA87:i2ZZ)⹶o JА -K(Ɍ`T탭_K_I= &5Kj۔[!][/w:_209BltMGvwg9;`%SxMuQTl*3;\9$nԻ-$Kk/ga(񪏫D:A/mk3]dk -|sxIY(tdrF9CU%61Rp{_)WJkx|t E`;Ie(z` `3eeb"FEd̜!Umocp\Dɂ&eMܐ$(v :=`L-ӑ_]J/ςȆ@\ ${p3|j8”1z?aNb \B _ˆSOUpD?$\z -}YT|4zKSz.C>WJ5WwGS¥ʠ"$Q?tjMٸV_2.#u D|$Ld5K:j7\:LaR|kZa]tl 9*%<"&Bl,tQTS4c4([]맔X5SeЀVlJYr՞$M4^7@S짞4~3M|hppp?5bpo3usR0LkE":+{G jkJO6// q=c U98P HkH&0~6(f0xaQ9W*Yf!5 }z Bw*qs%7<6v[^'TzkS͙# xғ=>D{@0DkA㤳+_#}j\zEf!G/yۡWWGTd:EmjjհVBPVN.ի~$W23Үux^t}}u2Cݥ}^ز{Ww]&%K.uY)RA@pf?cx t&ٗVeROCRCKZb="f}xO^m+GY4`|mY0e/FґGJ20kR|\ JwpցvJB[ug"-Xڨ mLY`gL/_-l'r"a`i!\dI [EmHPoX䞠]6掱[Dzp_d}LH'x`a0_"g0zEkW=oRV5pRZ*؃bڄ]q&LpOS ӬP]"ۃbSajkOϋtQf]&R̒|7ؔ2}z1RL1O^Q$Tx u:mY4Y+ua~x1_C7M ^Ci.c Cnd=Q4M?Y*PRS, &}d㫝fzA4Ymto38ڍ -*zZUxs$?q5KڃP`m=jyO鎮e"A΅[)4hs}}ըа; ‘6>nZ{}.+}NaJA<ƹؐ]+酛La 6pcq-!n1[BgȅQƝEk€B[yPEd:p!c+Hf*FO{0Կ됫×fdELeQ'jFo% ;r2js i(`VX -}j9dݗ &)f9GKhlңR-*ăvAWcX !EPǣzDU.jݎՌfsU" y~3>p&bqFAԧmkGڦ& <>IꁔG\YsMVf hh%\X _ήJخ։L@)gЧ֥)pɦ;6KbZYh # DJzpBP@7e%㨒a jF?Eכ.[ONJp͸'f;PTхxڍsw7hCk#=( GN%&{@ #9exJm}ـF+m_ИCYb87oC;(?U9k+o+W8'`vDe %w$z#[,=+!*J} IKI ('AەGYJz&#,@!LEx+\^B,򽠟;!/cEFlk(7m׌;E֜ ~Heo/ebn!6iJ}f>rKL EѷqSًOJE KԣSjSmԦȿ -@ǔE+ _,(ʯ|&rh[{mʡc i-l4W$~sXl^X}ƹbƒAH)TB@ԠOՊaQ1&9)ʆ*<g4CȅFi Q^o"f>Q97ce`dOQ]Ziw]tnRH4I dӵQ00Kgc MєUknv\nٳ,XUۃO[L+yV]/(+@=;ܚg~bHcSƸf&*0@r[΍C(f%\dӱ`K{=!l_k 8=p$T!IAvE{tGҭ\:vq<,mKܠW[`soapnPϕ3UU>d7&ȃֶ /ʨ*Qe78>ɪPf[䄰#ӎif!nS&g8C{ 5TZ/3sQi~fi=U[`"9ۯm<{1e̡{8Kq9ECNo/pݮ=>5r~XwD8lk'X*4})[8*JY:RŇG'߮Ѯf]\WJL=sN+ ,U6+Lr_1> `ҭ-Ԇ_碀`/-k9髵|@/kݎ |+#5ʛcbIMj ]j'9 <ɼ H +M)ܼ#Z _ey;սt1cb׫ J^@֓t"Yo@f6,5yf8It]WS9vr/ hf{mAtFu-jK+AT8\rY.jn69ێg3q(2Bj -)gѽR [m"/Pn,5%&v65h@c->Za>t/ /OlL,Xmܵ=]N9_%iZaӇ9"i>Sܙոdqk%(@$ 8g{G\ id\ ƣ;F4FǺs2@8/7.C|m.̤z0 =u~ Hm$C() Ml WECQT;(3o [zNKg&S*A^I5σ Έ]r |jlQdv7PIBDRtg|;) C"Y^}pzVQo6Wo^}< ܚN& ޢ5ۣe մA<;H|uAJH%*L"iu8qE3^#9 _S%+XUuDL} Zaxp|!EѤiM) ݥ_qlCfz:ІfG`<[`dh6iXli]- &M f*9OmҘaYpē|Ae!j:lmU^Q#t1) 0h+s͡t`rh ErʄRyP ]m1ML.]PpZ0жgmtn:Gթ E˛b| Y‚4\bn좏M!1CS+d}ހ{" ss@cle8#xվњ?͢fЌ 'bJ0I%>y%wxd>b!ލυ+jTOi /!|ou %[uBպj9U0GkQf*L)ǹP&夒a\}yvIö0;mnk=ˆ$tC-#@ O-{cC6jx\AdEg&Zg g"`]hҚc 9W.婊MF>&0ղzA:蹹GH~~:8͑^r-ct*_vzQIi9 B۩:QP!nqV|-{9=:"lUHiO?Ad7quȩLI%?6QWnocUM<#PyƖxILV ?$ QğD o6& n슂O5em$CqhIG7}͈bK&O_fgg3ɵܳ-7P35꣟k6k?I2]Uʩ;g &v&us3<_QB T r6Z);$P#"';ER`2X0ޯrƜ8\Fr:rKX5-NZV="Sp[HFobpvwI42 $:\4OU]:]68T" Ϗ{`/:ԅuN |7="Q\?{uy_SJǠWʾ4@;.G]b{N} T2&E-^h4 Ljm$Uֻt-6iNŗV ]m$`Jph>J[-&U" b#y[^7Χ)bJm(Y{0f)e3g/s-$:3(~ 띩7XI2?I3UݺZ0b256 4?6CҖTwAݫP[޶u;4=ZB.S #gLs6kP$?kDJOSUnu;OyL;4 I+I{7' R|H:kR(pM4|ޔ`1uiV5`8I`V$+ި`,(W>R:B J/6=1WʝpkfD紻y@.bs"}-H0<k*2g\AIk7M?4EF7d1-{,_]aۀ^bUPZYؒ:XK=["o"d]l*흛 ;Bƻ _`xf.rh bB~\4oqSr%%6<"YZz-#k'3x=n;EpSUEcգ,zbkRO҆6y: YlZ<]N!ƪp1 C$Π@ZjXCR2[(G?B)E1`rvAfx0΋[/ u4h5^N Zc폺׬<|mʝ(\I9x "qFX~kPւ nN:YtSq&a]E`o0U Y=OZ[1zEc,^y64xPzmf2uİ^ɬ $i9Qsd7irrg/-X,̍$w5PC0ÛnNإДpW\M)V#p/EۻSsG:2l.tUFuJ1ZОX#.< -Vi\`%QYնBe"WXHDj`+T\sF\oŮ.IUDT@R6 1t l 씎z.W>;y4*AgVq3`lisd譖P~&d8wyK%ʉۨ7oRLGV"xWN{rЩ%4x?􌕬%x26tggU +/4ש6!quىecCۥ%b`ܞ[nQZZxj}YC$Du,lk5- @Z`추jeYNhFq+gZhe&I?LmGsҸ௰v׈}vAS͏U}3sߍFFsP?R<'`Ѽz,wR/ZB'  ~}CYoV?jmtQ$ZikVS|`񬨙9*̽56ԩ@4b,q26gW}-9E[ ߮v; (3MAΊT rIwW5S_[eO*'\ϩzco—.E4 _:9侘O(VofÍ޾~y̽䖯wMsxПt'ڃ1{e?7y G-݈I]6 h&TC9nqIĤe)$[Ѯ}/P/ Q%wIvºP&6+ϵrBn%n߫IrA K|η ?k@Db$;w2ξSVk93]TUbkF܍˙a-@؈^T FSjHbnERdAE5ǘeW\. Y^ X;bJLk)Pl[2}%%P:7W;0lFq3P99y77a#sIt@:qD9Ex`ua\:XRWK"䱖|赞SFO3ζ+P_r"Hд~!Xi^t.^|l5|8o j Ne.'uy d2}'"2%$jS4k{35t֩: ^a|G ׵'ky ]J< Q 2'Ejig4S lӧ|ԕn*Ը8g R: 뼯8}pj2,)UI!3Vnyڷ2Ҋ?|웄zX*nlIggFQeÑm(`&+ҷ 6r:!Z;II +("?Rض0%LxARcT۾'hv&x +a9[׎.leGT>c&KGI1JK7 8s|~%p1?7yZy['5F VL8D85fH9C$ݠɄ_f1CW]BV{c@G@}A,Ĕ XB"5 {p9iŕx jiD40zJsn%~Ѯ Y AJ'McRɇ"6v].Uvw~LunfjMTgG1%CH"XP8%q¦ yOSK&c: s5%ƣs("]oZP3A1"HH!4[/GG;I]>(!&Gjq.g4hd)ўv.)cO*PHW3:g(&jGVP_3; ŵY@ҴN 'p?bo8(70QsbIEAV}9$eo-o]&3I=zC@aii4;K[ ]qɹyjiW[wJH-XunclqU4 L$ z!`RAq|Me1Hl-\N mun@*|g D1e(}#c0jgDOJvZ9kc-NWa)wh=3w ZvY?Rx$YZЖuzc:7| >(_`t 5H2_STԴ3Jd}(|id7{,s>F!>t1ӆ*ZSj(qwY>П9^.x(,[IϟqVztPo63F8N8)Oi3>vhX*-%/#=ߞbP UKY18DztL7|L5ꌴ-;Y>ҊFJy Vl~nJ]!=M4+H} k4ڷ@*~jJJTW=fk&O!AJե'6RݰZY8 t͝=m?9p#SQFXط,/bBjծɆ_K'nɓG ;}11'd_Z u$pujG`&GYfN镬99wQOUs蕛?PrN5CxKʟX# ظfkDD@ T>#1eo ߭deU1cCGm0VA `_eCؕ7Rfsl1<T.HSެroGZ?eQiG| $ҟ#xW(ۜ`% ,'y}n9j* `I,;睋U mmxb{M\!>sh!@A\%"!&b +9JO$УMo בUOU5wU7l2O\9=VjC0 H &xiS4NX,lE$#~zR؍oݸ9y8p=5v4(`E#°915 /$ ߢ&( zGXSTʸ%ņ _Q,3D j?DTxM4Y䵶Z\8qw\ibwXĿ-oĝ=ce\EY@T2v_WzԸjbxR5Nޭ^.٥u7q<޵? NjX#z}TmK6 3I&Ro٤pvk@':]} ,;7G)mF=^~陶u}.~4'HJx z:\<̃V !Vh76-kݧ1O(7Hžm)]JNl:GNlM ~a>_q;|$VL(D"G`SƮc"6N-żʴU3A%EL۰\5&?ӡ|&V_1~>ϖqG*LƥbK !,NBtO@2UjdQ ?tWWdrSShUB$]w Sg%^)=,8!dv0e6"\ 1a"*%[Rn̚ߧ{N+;; Wy%[]kx0>xiDʂSb) FjpfCoQ#𬐬ljF:dM{Uڍt;x?,ȠV(f<)?Hb::ǻV:Y UpX/bxy8 ?f|ZНC)t>qӧdV eaAMje?=5ԟ$ >f9bh/b -Ђe1B(>jL\oq*J}9ٌpr(32>/[S6]6c.m0z#>Y}՜O0ƙ2 0[YE>G7o&״X~L>T.|՜98t" ;8g[7(]NOtW e 1`<1Ni\-F}:i;VZ,c\G;ѰT樌Xhr>bXqXc+33hR&">؂Gp4(L9#HNe=1bڌ?K V/{# 7Yf\bL?0<"YJ28ؿy ( D"*ȣk ԛs!2Pg0KXWByO{Io5]*=70zTs|"E(o3'kBSņ{f(h8Z񹜛§n"Lp:aXbD#^H&w_K97x˟ʮY3p:ĆZY!Shy}RjY+LN\?9OsAJM5/řiClRyBn/ck; ;kHsgDzCmo߬럛H*`Q[/T` >Vܰzr[ƠLvDY ְk S;z)Gh4asj1oRb726Gs<$##O?? '$M+!Dn6ZTI~ ؉RZ[]4#ҜS/aa{=֔6(WdHhZ'g(AN0^I.ܗv.yb 4MWQz@af1ٛK4oœœmhw=NHNDHb#0Kjy[Hdv$#0Pޏx.~"E3?s*jYP:pH)Xfgí^E6R1VAEWT+% qWa :#3 {!.A;ج"3R T 9<hd"4~ofq H YhԸW:O#ٺqk{+^0K >^GC(KjbS`>wJF-%8GX~z!%ݑZhgUz`}J*yXwPSZR#nN)q?{(30NPx 91Fa%/ZlOuJ|ƺ )`LXͿraz풔t^h \,b~ąlY2@ur[DxPCEğ]o1g}HLfNN~"eٕ6pO??O(Jw<0 8<=][_D;t{(ɯ} s\e<Qr{Rj 55\sSP1ĨPlF}opi|Ődj9=-qł[FGy{a1ɻd+ΙR7>W:z^^8gAOKt֊Ƥx쌆cx:-#si_+s.bfԲ>E?lPXjOQP`R JፐSrh^% 35JI J8$߿'w$jr1PweY4ߘNJfM)ĈQ%Gx7+ (p(NbJ!N**wDw{ k^(\ {Ψ#|'R^`}4wIs>\2VsÁ=:uXȬ偏ar]|wU,%GvVtj>2DYG!K>B ҙړQ{*? i~-^}.x1/''*z%|jcdQ)8̶a:HC}p ρe`4Lady%ruGOF85:C`8YiOa؏XW<.&(aKdI[rczi46J7 tf3bC JƉ=9ƑT)ע o4JtbrV6yƕSW[T(@ _#K'D͓n +$@΍2D.M, +T#K61J65h}x)TvŪltsF$^tohfČC9ok5cU6ؕX& #ہ?OUZ E%4!4<@,fP<rTcu m,3 Ӑ5kЕ)X://#D! L.-n/%O}H@'%q?}?%׆SG}+=#S6T/XSْJ" ^:\uu^=e7̪2y_kl,VtINǕz M"}`<Tވ뎶=ωU!xESXۏ4u,9xl<*ƲO:S2-6Lۻ<3 }~s%\MͰsssZ3Ղҽ@n%j-@]vi^F#d^IgyXjSa4 8b' pOƤq_o{^qTO|Ro8fyC~u)Ζ} t6lBZfWoqaJ&l0&6mQYxfP';z? =-rk!f;U *P3)LuF[='!r#̨&/mLd m ڱU@:b]PD3+C! X+C>95 1gi^R%#'7yؓ\Cyn3uJ>9Ak佡T 3Hٔ:}~8[%ӭ> -i4JUAisYOĝҭn)4+0a;=M',tB{h!H= v뙆[W5Oě8=.v ,62d͒?ǔ 叞nerZ3[yXvb8|XC6mrD~3R';Uwn 8JXSM'n9@|] 7͇I5?Q)&rA[:{\? ɝG8ȸIl_Q*p.OƿpZeΨnAb SD荽;֖ ap _*#iJ1)R< 繽/uBߓ>qY{҆a|:)E` Yn^'BO|F:._#6 9A*ʠ=p^\W0-2CjKhkw`^Mt}$!oU|wנ6C .3э.xLq&ÑJYGql ޞwJE EDa pL|g.^x|n*(bj@aį :)/U.+qc^-Dtiy{Q@N(H$"&g!.D;Q 2Lb*O*B2O25d5s6]s\AVnL`b]AN#~IXfjSM#D:@ʻ&M^N\V8yƜu/j{SxgT{)ʺTn6 >&AH2i^hPT\4u8K@3C{1@!vR#V;12 +O`@.y(lAh WẍQ2uL3I^qB8:}IʫkCkF9:8.Qu>u0 vy󜆮*L`[9\"9"!͘%d ic~ȍחvSvA`N6%8?Q\>0WpݯAܚ1Ys2ph\l$F5>#;{ᗲ/z,OӞOJFX cqN K4ltCHN@ڔ|eaxؗc<[`sjl[TL%XpPpqaa.OasW"b)[rar5KjgF %'2 !Zl8!31b +-ϒlc8=WẃJ6&J<2!OBjkZo0"]زx'a9x^|p|v{c0Cu KڝG,} 0 D # Ŝɔ?*ۈH;roW=d3;2Wȩ+<ܼ8>zt|Q}@b|sQ9As1J =*̱զqcQ“:\cs?E[zT kd4a錋eG7[vJ@4۸DEGәCNlOYA޹\6NF{IQM4h %og,Q Z3pxzE^+y焊jؠfsBNm>TN촅=j&剴w@;иA. S>e볛\Z/C_5ۛ, G{"Jwye2ANZ\/H(^_ m%>ʃf͘8@l2) {[=u E\(B7|zDݓ\*(G40OJ_8P$VHzUDEhp$eQj!f x~gݾ8=. ߒඐ%_9t7|%(؄HeǬ6 FS77T2 nt|}xq43Q_s%<3<7 T cD!PX7ۖdKz9W#^10N 59@lѾy U-a"E )KӇ]DJ4QDY+7YOyI޴oAfb#pYf7G!=)痿&uXCe Gz5;<{<m6=BF=nD.SQg|˼J QzͪH6CnIw۳weZ?e$> 9|5$?=VS@3uHX(3K`t% ZehKӭv"vUrWK;dbFwoD:|z2 þvOA )Jf +ٱ14h,6V(kHw#μv8 TY LE]HHr0*c0+ 5쎽 k| vx)HQVXQ[#_BM~@V%xnir@yh$V uKaKIrU\cw=PAu}1aoWA.{ϿYMB[t\Iu4 NH(8כW/:XU1ĂOҏuZ&һP35>XzW_,IU#F\:,qcL,5VwYF]1U0pMݯ_ P ֠- Z.=n EssQ1"% 5H,0&5Pdgc1$j6]'mieO-dMܐ(A6Hr2Nep7۽R}0G<sW&{\?J)Gc?w&t Fvvf ZA>sNkH>ozǘd` AtkǣAR Vhu5A8e)#TWTLdyRFۛWЍ.>\x!(wI(O*,苆3&MA[ s~8 a/hݡK상3on#D)1 Iep*LqҫrhK yִvjGW K9P "F!}`e؎Rkܸ(KF{3[M^'. _,To8VJ2%5ʣu(4eAg _FH^Ĩ2`#gSSD&e,e0w~KQ 0y/zBvCt+*D8\/7W:(R-6ysYA39~֊c'+D &u6N:|T>@rD˄$"jNU{~ ՓUB: s wS$$F BRXwXuF^ zvBi,q$Z%cuMϝ`tr;<['awwX5"l=J(!29=E&kbdhWiCeu S%th讋oN/'KZR )Jzq4^B^o˔eZb%[nh91^n6Yh赅06@o2i/SPi#ŜEH`)Q6Һ݆i.<<*HY4UDlֶl" R*%:(_Uܨ. @sQ\uiiN\K#Yk˿ԑj-<9VT~ߨ+>69v9G_@$X[?.uB 5O2ߴX|:bo ]/JpqL2f"fhlTDXv|4qM?*xGAl@6]үaA{~)(1@M:إ[\]/ $I|$6 /{i?Ŷ@c>[ŒlW~/&A$Y|1N*A4 mwrne ft.ms\5՞|uTg|bQH_osv|^ g[Ƨ+OL:p:}_~M$mgw}_ֱɞTΙÊHc3@:=68]mɃgF(+^r@HF=ҌfF ASzxvY1_En+I9, JlӜ^A?"*?iߚY(ԌgR_#ʴ W8u̶ YZ