From be0c34509ee66f01536fd1815039e8657bb7ae26 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 19:55:02 +0000 Subject: [PATCH 01/18] Update the Swift QS to feature HTTPS redirect URLs --- .../quickstart/native/ios-swift/01-login.md | 75 +++++++++++++----- .../native/ios-swift/files/MainView.md | 2 + .../native/ios-swift/interactive.md | 59 ++++++++++---- .../ios-swift/ios-device-settings.png | Bin 0 -> 19489 bytes .../ios-swift/ios-xcode-capabilities.png | Bin 0 -> 90010 bytes .../native-platforms/ios-swift/url-scheme.png | Bin 18365 -> 0 bytes 6 files changed, 101 insertions(+), 35 deletions(-) create mode 100644 media/articles/native-platforms/ios-swift/ios-device-settings.png create mode 100644 media/articles/native-platforms/ios-swift/ios-xcode-capabilities.png delete mode 100644 media/articles/native-platforms/ios-swift/url-scheme.png diff --git a/articles/quickstart/native/ios-swift/01-login.md b/articles/quickstart/native/ios-swift/01-login.md index beebee7bdb..977ac9eac5 100755 --- a/articles/quickstart/native/ios-swift/01-login.md +++ b/articles/quickstart/native/ios-swift/01-login.md @@ -1,6 +1,6 @@ --- title: Login -description: This guide demonstrates how to integrate Auth0 with any new or existing iOS / macOS application using the Auth0.swift SDK. +description: This guide demonstrates how to integrate Auth0 with any new or existing iOS / macOS app using the Auth0.swift SDK. seo_alias: swift budicon: 448 topics: @@ -19,29 +19,38 @@ useCase: quickstart ## Configure Auth0 -### Configure Callback and Logout URLs +### Configure the Callback and Logout URLs -The callback and logout URLs are the URLs that Auth0 invokes to redirect back to your application. Auth0 invokes the callback URL after authenticating the user, and the logout URL after removing the session cookie. +The callback and logout URLs are the URLs that Auth0 invokes to redirect back to your app. Auth0 invokes the callback URL after authenticating the user, and the logout URL after removing the session cookie. -If the callback and logout URLs are not set, users will be unable to log in and out of the application and will get an error. +If the callback and logout URLs are not set, users will be unable to log in and out of the app and will get an error. -Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URL to **Allowed Callback URLs** and **Allowed Logout URLs**, according to the platform of your application. If you are using a [custom domain](/customize/custom-domains), use the value of your custom domain instead of the Auth0 domain from the settings page. +Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URLs to **Allowed Callback URLs** and **Allowed Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use it instead of the Auth0 domain from the settings page. + +::: note +On iOS 17.4+ and macOS 14.4+ it is possible to use Universal Links as callback and logout URLs. When enabled, Auth0.swift will fall back to using a custom URL scheme on older iOS / macOS versions. + +**This feature requires Xcode 15.3+**. +::: #### iOS ```text +https://${account.namespace}/ios/YOUR_BUNDLE_IDENTIFIER/callback, YOUR_BUNDLE_IDENTIFIER://${account.namespace}/ios/YOUR_BUNDLE_IDENTIFIER/callback ``` #### macOS ```text +https://${account.namespace}/macos/YOUR_BUNDLE_IDENTIFIER/callback, YOUR_BUNDLE_IDENTIFIER://${account.namespace}/macos/YOUR_BUNDLE_IDENTIFIER/callback ``` -For example, if your iOS bundle identifier was `com.example.MyApp` and your Auth0 domain was `example.us.auth0.com`, then this value would be: +For example, if your iOS bundle identifier were `com.example.MyApp` and your Auth0 domain were `example.us.auth0.com`, then this value would be: ```text +https://example.us.auth0.com/ios/com.example.MyApp/callback, com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback ``` @@ -49,23 +58,45 @@ com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback Make sure that the [application type](/get-started/applications) of the Auth0 application is **Native**. If you don’t have a Native Auth0 application already, [create one](/get-started/auth0-overview/create-applications/native-apps) before continuing. ::: -### Configure a Custom URL Scheme +### Configure the Team ID and bundle identifier + +Scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to [your Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier. + +

Screenshot of the iOS section inside the Auth0 application settings page

+ +This will add your app to your Auth0 tenant's `apple-app-site-association` file. + +### Add the associated domain capability + +In Xcode, go to the **Signing and Capabilities** [tab](https://developer.apple.com/documentation/xcode/adding-capabilities-to-your-app#Add-a-capability) of your app target settings, and press the **+ Capability** button. Then select **Associated Domains**. -Back in Xcode, go to the **Info** tab of your application target settings. In the **URL Types** section, click the **+** button to add a new entry. There, enter `auth0` into the **Identifier** field and `$(PRODUCT_BUNDLE_IDENTIFIER)` into the **URL Schemes** field. +

Screenshot of the capabilities library inside Xcode

-

Custom URL Scheme

+Next, add the following [entry](https://developer.apple.com/documentation/xcode/configuring-an-associated-domain#Define-a-service-and-its-associated-domain) under **Associated Domains**: + +```text +webcredentials:${account.namespace} +``` + +<% if (!account.userName) { %> +For example, if your Auth0 domain were `example.us.auth0.com`, then this value would be: + +```text +webcredentials:example.us.auth0.com +``` +<% } %> -This registers your bundle identifer as a custom URL scheme, so the callback and logout URLs can reach your application. +If you have a [custom domain](/customize/custom-domains), use it instead of the Auth0 domain from the settings page. ## Install the SDK Add the [Auth0.swift](https://github.com/auth0/Auth0.swift) SDK to your project. The library will make requests to the Auth0 Authentication and Management APIs. -### Swift Package Manager +### Using the Swift Package Manager Open the following menu item in Xcode: -**File > Add Packages...** +**File > Add Package Dependencies...** In the **Search or Enter Package URL** search box enter this URL: @@ -79,7 +110,7 @@ Then, select the dependency rule and press **Add Package**.. For further reference on SPM, check its [official documentation](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app). ::: -### Cocoapods +### Using Cocoapods Add the following line to your `Podfile`: @@ -93,7 +124,7 @@ Then, run `pod install`. For further reference on Cocoapods, check their [official documentation](https://guides.cocoapods.org/using/getting-started.html). ::: -### Carthage +### Using Carthage Add the following line to your `Cartfile`: @@ -112,10 +143,10 @@ For further reference on Carthage, check their [official documentation](https:// The Auth0.swift SDK needs the **Client ID** and **domain** of the Auth0 application to communicate with Auth0. You can find these details in the [settings page](${manage_url}/#/applications/${account.clientId}/settings) of your Auth0 application. If you are using a [custom domain](/customize/custom-domains), use the value of your custom domain instead of the value from the settings page. <% if(typeof hideDashboardScreenshot === 'undefined' || hideDashboardScreenshot !== true) { %> -![App Dashboard](/media/articles/dashboard/client_settings.png) +![Screenshot of the Auth0 application settings page](/media/articles/dashboard/client_settings.png) <% } %> -Create a `plist` file named `Auth0.plist` in your application bundle with the following content: +Create a `plist` file named `Auth0.plist` in your app bundle with the following content: ```xml @@ -138,7 +169,7 @@ You can also configure the SDK programmatically. Check the [README](https://gith ::: ::: panel Checkpoint -Now that you have configured Auth0.swift with the Client ID and domain, run your application to verify that it is not producing any errors related to the SDK. +Now that you have configured Auth0.swift with the Client ID and domain, run your app to verify that it is not producing any errors related to the SDK. ::: ## Login @@ -154,6 +185,7 @@ Then, present the [Universal Login](/authenticate/login/auth0-universal-login) p ```swift Auth0 .webAuth() + .useHTTPS() // Use a Universal Link callback URL on iOS 17.4+ / macOS 14.4+ .start { result in switch result { case .success(let credentials): @@ -168,21 +200,22 @@ Auth0 You can use async/await or Combine instead of the callback-based API. Check the [README](https://github.com/auth0/Auth0.swift#web-auth-login-ios--macos) to learn more. ::: -
Universal Login
+
Screenshot of the Universal Login page
::: panel Checkpoint Verify that pressing the **Login** button shows an [alert box](https://github.com/auth0/Auth0.swift#sso-alert-box-ios--macos) asking for consent and that choosing **Continue** opens the Universal Login page in a Safari modal. Verify that you can log in or sign up using a username and password or a social provider. -Once that's complete, verify that the Safari modal closes automatically. +Once that is complete, verify that the Safari modal closes automatically. ::: ## Logout -Now that you can log in to your application, you need a way to [log out](/authenticate/login/logout). In the action of your **Logout** button, call the `clearSession()` method to clear the Universal Login session cookie. +Now that you can log in to your app, you need a way to [log out](/authenticate/login/logout). In the action of your **Logout** button, call the `clearSession()` method to clear the Universal Login session cookie. ```swift Auth0 .webAuth() + .useHTTPS() // Use a Universal Link logout URL on iOS 17.4+ / macOS 14.4+ .clearSession { result in switch result { case .success: @@ -199,7 +232,7 @@ Verify that pressing the **Logout** button shows an alert box asking for consent ## Access User Profile Information -The `Credentials` instance you obtained after logging in includes an [ID Token](/secure/tokens/id-tokens). The ID Token contains the profile information associated with the logged-in user, such as their email and profile picture. You can use these details to personalize the user interface of your application. +The `Credentials` instance you obtained after logging in includes an [ID Token](/secure/tokens/id-tokens). The ID Token contains the profile information associated with the logged-in user, such as their email and profile picture. You can use these details to personalize the user interface of your app. The Auth0.swift SDK includes a [utility](https://github.com/auth0/JWTDecode.swift) for decoding [JWTs](https://jwt.io/) like the ID Token. Start by importing the `JWTDecode` module in the file where you want to access the user profile information. diff --git a/articles/quickstart/native/ios-swift/files/MainView.md b/articles/quickstart/native/ios-swift/files/MainView.md index e4a147f84b..e62095b332 100644 --- a/articles/quickstart/native/ios-swift/files/MainView.md +++ b/articles/quickstart/native/ios-swift/files/MainView.md @@ -26,6 +26,7 @@ extension MainView { func login() { Auth0 .webAuth() + .useHTTPS() // Use a Universal Link callback URL on iOS 17.4+ / macOS 14.4+ .start { result in switch result { case .success(let credentials): @@ -39,6 +40,7 @@ extension MainView { func logout() { Auth0 .webAuth() + .useHTTPS() // Use a Universal Link logout URL on iOS 17.4+ / macOS 14.4+ .clearSession { result in switch result { case .success: diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index 787d69386d..7346189c5e 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -43,43 +43,74 @@ If you would rather explore a complete configuration, you can view a sample app ### Configure callback and logout URLs -Auth0 invokes the callback and logout URLs to redirect users back to your application. Auth0 invokes the callback URL after authenticating the user and the logout URL after removing the session cookie. If you do not set the callback and login URLs, users will not be able to log in and out of the app, and your application will produce an error. +Auth0 invokes the callback and logout URLs to redirect users back to your app. Auth0 invokes the callback URL after authenticating the user and the logout URL after removing the session cookie. If you do not set the callback and login URLs, users will not be able to log in and out of the app, and your app will produce an error. -Add the corresponding URL to **Callback URLs** and **Logout URLs**, according to your app's platform. If you are using a [custom domain](/customize/custom-domains), use the value of your custom domain instead of your Auth0 tenant’s domain. +Add the corresponding URLs to **Callback URLs** and **Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. + +::: note +On iOS 17.4+ and macOS 14.4+ it is possible to use Universal Links as callback and logout URLs. When enabled, Auth0.swift will fall back to using a custom URL scheme on older iOS / macOS versions. + +**This feature requires Xcode 15.3+**. +::: #### iOS ```text +https://${account.namespace}/ios/YOUR_BUNDLE_IDENTIFIER/callback, YOUR_BUNDLE_IDENTIFIER://${account.namespace}/ios/YOUR_BUNDLE_IDENTIFIER/callback ``` #### macOS ```text +https://${account.namespace}/macos/YOUR_BUNDLE_IDENTIFIER/callback, YOUR_BUNDLE_IDENTIFIER://${account.namespace}/macos/YOUR_BUNDLE_IDENTIFIER/callback ``` For example, if your iOS bundle identifier was `com.example.MyApp` and your Auth0 domain was `example.us.auth0.com`, then this value would be: ```text +https://example.us.auth0.com/ios/com.example.MyApp/callback, com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback ``` -## Configure your app +### Configure the Team ID and bundle identifier + +Scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to [your Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier. + +

Screenshot of the iOS section inside the Auth0 application settings page

+ +This will add your app to your Auth0 tenant's `apple-app-site-association` file. + +### Add the associated domain capability -You need to register your bundle identifier as a custom URL scheme so the callback and logout URLs can reach your app. +In Xcode, go to the **Signing and Capabilities** [tab](https://developer.apple.com/documentation/xcode/adding-capabilities-to-your-app#Add-a-capability) of your app target settings, and press the **+ Capability** button. Then select **Associated Domains**. -In Xcode, go to the **Info** tab of your app target settings. In the **URL Types** section, click the **+** button to add a new entry. There, enter `auth0` into the **Identifier** field and `$(PRODUCT_BUNDLE_IDENTIFIER)` into the **URL Schemes** field. +

Screenshot of the capabilities library inside Xcode

+ +Next, add the following [entry](https://developer.apple.com/documentation/xcode/configuring-an-associated-domain#Define-a-service-and-its-associated-domain) under **Associated Domains**: + +```text +webcredentials:${account.namespace} +``` + +<% if (!account.userName) { %> +For example, if your Auth0 domain were `example.us.auth0.com`, then this value would be: + +```text +webcredentials:example.us.auth0.com +``` +<% } %> -

Custom URL Scheme

+If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. ## Install the SDK -### Swift Package Manager +### Using the Swift Package Manager Open the following menu item in Xcode: -**File > Add Packages...** +**File > Add Package Dependencies...** In the **Search or Enter Package URL** search box enter this URL: @@ -93,7 +124,7 @@ Then, select the dependency rule and press **Add Package**. For further reference on SPM, check its [official documentation](https://developer.apple.com/documentation/xcode/adding-package-dependencies-to-your-app). ::: -### Cocoapods +### Using Cocoapods Add the following line to your `Podfile`: @@ -107,7 +138,7 @@ Then, run `pod install`. For further reference on Cocoapods, check their [official documentation](https://guides.cocoapods.org/using/getting-started.html). ::: -### Carthage +### Using Carthage Add the following line to your `Cartfile`: @@ -140,7 +171,7 @@ You configured the Auth0.swift SDK. Run your app to verify that it is not produc ::: :::checkpoint-failure -If your application produces errors related to the SDK: +If your app produces errors related to the SDK: - Make sure you selected the correct Auth0 application - Verify you saved your URL updates - Ensure you set the Auth0 domain and Client ID correctly @@ -149,7 +180,7 @@ Still having issues? Check out our [documentation](https://github.com/auth0/Auth ::: :::: -## Add login to your app {{{ data-action=code data-code="MainView.swift#20:31" }}} +## Add login to your app {{{ data-action=code data-code="MainView.swift#20:32" }}} Import the `Auth0` module in the file where you want to present the login page. Then, present the [Universal Login](/authenticate/login/auth0-universal-login) page in the action of your **Login** button. @@ -157,7 +188,7 @@ Import the `Auth0` module in the file where you want to present the login page. You can use async/await or Combine instead of the callback-based API. Check the [README](https://github.com/auth0/Auth0.swift#web-auth-login-ios--macos) to learn more. ::: -
Universal Login
+
Screenshot of the Universal Login page
::::checkpoint :::checkpoint-default @@ -177,7 +208,7 @@ Still having issues? Check out our [documentation](https://github.com/auth0/Auth ::: :::: -## Add logout to your app {{{ data-action=code data-code="MainView.swift#33:44" }}} +## Add logout to your app {{{ data-action=code data-code="MainView.swift#34:46" }}} Now that you can log in to your app, you need a way to [log out](/authenticate/login/logout). In the action of your **Logout** button, call the `clearSession()` method to clear the Universal Login session cookie. diff --git a/media/articles/native-platforms/ios-swift/ios-device-settings.png b/media/articles/native-platforms/ios-swift/ios-device-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..2c4f13d3b42f73f2b4e6f6c25c2f29fd3c57239c GIT binary patch literal 19489 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 aN$4WFSV5`HMg_<*B}L^#3WVN%`hNg&{LKIW literal 0 HcmV?d00001 diff --git a/media/articles/native-platforms/ios-swift/ios-xcode-capabilities.png b/media/articles/native-platforms/ios-swift/ios-xcode-capabilities.png new file mode 100644 index 0000000000000000000000000000000000000000..40fc700acfdd6481b9998790005464229f34766e GIT binary patch literal 90010 zcmZ_02{=@7`!{~h%rL_+W+J4)AZvt5O$lR*s7Q;QA&JUXLe^s+OO{qGBBiL5t&}X2 zH6)@W`=0FklI{JDp6Bsf@g*X)W8@`L)-bI9vi=Y)9$%duiA8)txy8c>|iE zk{5Gd{mMOeo>>=Mf=j-lB*4=TaX`vrG{p@3}6qorxgzgQtjz+FOgkUKe3d5gG z>3nRySKxDq65CSu3+t;R-!nDSg&L+@ORcRBzHLx{&VKvr;@INK!r4ikm6S>UzsW{* z;V#h%>T`VSH4`64|2$W7<4GrvA6fOQEv)p_yX4(rA7f>5KJ$56==b{alDO%uPp&mP zie44%E}*Jc|6U@e^k4ChYnVQ;`G;<5zuz!#;nMMFaqGi@ZG&FC!54Kh^@S1}PQ?ycY5rtMoqA_-d2O@U^1lTR)dhEgQRg(nM_Qq}$Lj9b0`b<=H?2xL)dm zgocf}sJJT;8?tx3%bc;TG6p=hkkJV~-G9HF^|x1f8`vU7HmMAwLAdmxYFLv*k2@9< z&n`0ivb(v~3K@@g>n?N|RqdLND<~Pya=TV%*){iUfAREnH~;eOT~mL5ma12^*qpzp zoGayWE%{YV(5XWX?K}Krs_MKdMgG6~`LD7{TB-!f<;0ybrCn_|B7RB?A0ECAk?oc& zyZ@dE8^C=bJyJc%@yM%cQmhOn@Mn+5zbo$N=?X^obG>tEzmt%ZaP#KL6DK_K*PRRv z4UOE4HfS4}&CkCkYeaf2beO;VYT=fnTllt1^X6iX%ZUz)MOEoh#rtQ;{c%ApfiK@n zsQjtU%N;6tk``ZtW@)#3cFAIO{eatcW2b>t^Y*N(GGZ68ha9?h?R#`(Zdz>RTH#2M z%bVHU0NsMw-?!Tv`~)|OtXlHCJMD$fIp`GL_EuH&n|rttU{s%zVz_uAYq;U5y*+0zF>ML1oQ7-A5jL8c1@4k}TspqhEpk%%3yuZMU=>V(l zgH?K|o!#Btoz0ycO|d|WK3_{7hJ|4;LvE|d`%4DByJxULQ&?Q<{&W03UyO*^=SJ@o zl&*~<#GsjtwIjOcDyM3CZ$3XxAaF0tF9xGLuX!9kuO0AyK+>&dSb<0!H^vHpLrwY-cgWj6~Q9G@&w$}X1m3N}2`gnD6 zT->hFfR1R@@h1LjDPIYr0;+#oC(PVbRmaFy~O9^wu3R3-~8xl%-K5>*aqxAt`7>P@fwoD_L zsn!SzRE3UR8romF%?9#s=H}+^Wlo{U2mLcrvnhLaUimp;o#~tzbtGz^iDBaX;;?^9_le#CPvQvF`^sKE%)tzx&+=l9wCZojX zwyUj9wbNG%v~RX)o_N5I&d2Fod#Ao+Ps-UB;u_W^n<_;rub!Y}qH zi=IYrOz~_?1r^N)L5H}wdEUNzd*{w=lm>FxeJ17qe&39Ks74(z7KZ(tot-WHwm(E= zW@h4klfJi0uLOKRKk~|9H#28$%tpHTwYSgA&ibwR+G%{QuhY$iG$9XY`*siTy9cC8 zrv1B4RKPFF;4OT#)<<_!Os{5e1|KTBhMC_&a(}Jf6N0w-N#Z+zatj!>R5ma*H9d0V zi0|Qp>-tjx;sp9xiT|FKfo5GY(NtP8m4>tZgX=XkFg*D2AnChAz8>QChGXjZUH{${ zO|lpA_^lkp#>jFf6)o4hy>`nGm`C;T_AM{`Kco;NQy37Cv2Fj}y_7HAg;!r1mN1*& zIl!8jSH2^e-F_>RFuZr)KK{FW(mSN4ipBo#in&6Cw2b2$OCINlsjG{8TEA(e_J?aD zC2&M}nJ1fA^yiqHmg!Vz>=&-r5;QWis_HPyJpYse)WYY19QJ@p5{Yg2P$(oIY}J5F zInC`;En3tcztOFsZgK^)ia4Vx;7gY-u@uPn&&t5gB&?GF){Gm)aVC^@%%xs*V_H;V zU~!Cqxb!HvT{G0Q)0|HnDgNc>%uNA;Z<-Xi@BbRKnF`q&;HF4J0(^XwfxEx)R1YQy zgzlxP{VgpmBCpjS-nd`p9nNyr%_#Vv7?A0Mj`c%0Sbc`=!srFkjKtI;f_~Q~lmy3O zmV5_4YW-hN+2VoJIA|rs(`|LuMBJH^rTvQ=V-4$EYL{m(FW*VPW#<4-(MiB1>0|UU z-?cGE9l&YXE8!g|prS`nP?B5={0aiG+R>Abh+jmLW;YtckobE%WiD!%9Q&lNe zI<&guuvV~4#M<@}#heQGyW>j^@z#chhM?vLT@F_;W0!ci`bP~0 zVsxK_05?ZOO12%f5JNrt%*ZJSj-pvHcXQ#Dz6lf0kZI4Mtr(PXKs5HOvI5Rdo#jfn z)vQOzbDePrOYi}J$M}p*ga}By{y9LpR<4mQX+oo02{_;^n?9!K0cx)^_f!=6s9Xg+ zhcosKd@jhywBg|3z%A6()sdF)D0(H_Co%_6Q%P>_7Pa@al*gMg9WUWN6@yMYPo$8P zK_)QX9b@XmLvPDdCB?RdXId_O)ya-e5DhNHz*g?GACKkwAeOGr%s0n} zyqEc=Okm7!GgR7rz66PjLPU*jQYm9pS_mq~${V53f{2lKZC+Hvkp$7`sHkZKZL?VT z^Yjzp%y)tNr{~3i^(F8WLZb>P^#P*8G``Jt%+~?FUj{5^`A2wL$j1cO9g~L#~e8?&HR);6Qe^Z>y<3`d7>5E z>aGbJtW6-&kNmatxoc2Md){4KeBDvh(RZUSx;FZS_G#iokKUyU?O~>OqA_w^9%+&# zH1d$>FG5DRQ3rRRo)PsIsm!M*_=y&!(33g+KEy2R_0A*WsprW^J`}b=hu^>bh;~;j ztU-ZV%UFJJ|H0RXYI{8V?Cm^0T~gMV9ozHYCm^oFuOdwMh$+Ki;wlQKXASrK?Ieh* z`wuXFXm8oRonpw0^II76=%Y;`M*L`rpjoisOhNm8)aO*s#qE+U-WcM>S*x9jhEu!_m?mp=~C$#4DTv%b( zu3ZRGQ9&WAv{dxt;{1I2)2B;&a^tN-4v<0oiFqJ}(uu<$%P>#`rSKgIE$TSj9zMp& zC{;>`2&_`Cu}4UnkD<=jGoNJPf&36AT9Xsr?a3;5<2}^H)wh~sc{a->YjEoz?uGY6 zThs^d>AFzWCDQh3;=$DI2hR$OF*+r#y|`X2WR$Ef`5c-U8JVd4Qv3boNs2z%`1EPX z>&7-V6Aho$|D&r4crPviTw$D89X8IS{4&(3NVK>;KjQ+khWWslcKt0oy7-1B^!|PR zQpd-XS(!s&gimuky^=OIgLDrLXoVpaY2(V=<2yu~||^kb^Z{{02*7MCy2JR?*e=BFPb6AeKUq>+iP;>2yc=$vo3LeOPy{PbbN zKhN(o<7C<}{uK)*VWLMjj5((1Qxw{+ibvm=@Q=iDcqL|`JGpRW>`H@8p+Co-jcn+W zoU`ahy53lvrqU@hBNauB$$`w9CK)`YWx;*u8Qv({UE-xsRHbsb*F!M9CKWw&1Z{WbZ)L6&7dxibm%ryh!vfN2RNrErOS0v5-Rz~j_N z#x$50)Z2K(cMDeM(%8n62jil09JVz5G7~QGL#Wbd-2}{=B*MsyoO#oQgbAj zJ486=BL&qvi+lPkosdGl6S7(xdRzSk8sh!@N%LE7ZEnB4c6ySjwZsuAkk~=XfvG&Zh>Fu-S=hPW)IW22SaPG^tUVgk$GU z65nwQ6u9?+4~7Y;!z6|}sG2y_Tqf^j@>B(HyvDST1HVv3%HE{$#08$0LCg{;To2N= zqj7DYiN@>mCYUjMN6OdzL0tXnE^fAi9I3EB~)$OgY=BY#x^J7I^$bJD~*Q{ zjp+4_9+yL$Kw<8Cl!Y4>g((4>e>t3QZ}fx z96Wo&mA%eya&vb(pLKK`iio_q|7J~?`qr&meK-O5iR2NjYW`L1SCC>Sf1IkOw#E!b zzkU1Ghs|B;*RNk9hTC%!*>tvJ#~RrQO3IIbiVu*cZW5C6zoPcWqxCT|TEWA-Fv#(Z za`M#FwjaV%VP(QZM{>fA`@8oZ%70hlHMW#PEF4zmW3R{-BuC5aPM;nWX_dGkAbdRe;Gi_Yy_@aZx^qfaR+dY7`4I}lN2k-7{ZyceZQHh$ z*tfQ}*47$uO?WJxt&Wr2u|ugz8gIOf(E6B-O!J1KXrAUYzEtG?Q#F1Te&rla0`3|n zYYz36PGJs7O=yxbgb}5y7kn>_wFs8!FBdI-dJ%e6Z*-qz($rukEJ!T3pW>FV+c<4( zM$s*OP=Ap*dF6<6RKlVBDzBqMb#>gnd|H18ZaKJ7p-?DjN#yan*DYsj$`K=`FqU~N zwd32{xB2-pmr$UmVf-LXt%!^a)ZAoaV-q>sT2WEKD}8*atGJ-R)b%u70&k2Zv}%U3 zpc~VXfynwQAK1f|7WdBM{0ii4w1jUc=ANMO?WXTIy(ETg+*IevERiD7oNVrIDMv0 z75iyxqqksg+_*vC-}>Q-^lqu1cp?usfpGb{Hozs|+5*@2K?g`my0Y@mRcUop1f-Gi z5wxoK$&(3G%F(yzFcl^nHmqG3K^De7ig?%?=77JD1&~mM4ouEQnuBKVnho@S5WH} z>L)^>YO+S473b~5Q=%5+o*-FG(Um)Q?;7gqlprf5Jt#FbwKQ#8+mx~)h(;MF#PyV@ ze$^`z2gT!jj}d?BABW)K0X(a;WiW7I`>3W@hC-yw5!ta)9nb$cc3}H@XrfJ@3VSNck=mcX{WVX zW>|gu%{fXnOl*?$zjY}4_w2{5ySauid{kPJRMBmP3W`FO!bEew+$XrErsgw>$RoDg zZTbHGjT_>}X3mz`u7g^9+hOO_J3l+S-iUzDD9{qwQfV)BXxC#TKveK@4reC79<&S( z2yJ2T`v}Ia8cv#?C-wG=RUVynT;au1-I@L1FSFk&%I~7Yc6_*ao?2DC8U3f1A)i0G z9oywfkOYw{lf<&iqMh^}fohjSEyE-%7Z+h^SA~qNC`n{J;UR*;K0FvuTYx_ch?QZ9 zKD*^K=mHa#l$5mhGc^?$TT>4?lX)KSMgD%)*2%3lmX@PuKZT&*-APGlm`ahSjRMD@ zG$O$|v}zsN-5=a4HK?QCR)wWWsl$A&q?)VP(>n{%`}jkS=2dnyxAT^%u<_;fffU6I z*4mwV%FU?coh=6Qml7Al;RUjO$^cstU)mKYM$z{W%toL|RYvqvo|jLY%XoQmE5XS* zM^(VU&@iAnD=I3gsSN(;HGa7oqc1a+^FkaH;QQ{hSL_~$6a$&mM?~OUs9qE9gM2YE zF0^2?Euex>Jed7k2tJ3lOdtTmHXK^v8XFba*%c$_op&XV@jCz~TvS=G8Lm`g{o{f+ zr^N4bpY#gdKVIK8YV*Y?4&Ah;Y3QDJB0!;QrI67$^iXX1;! z$%x+CwnL?q?rIbavrM^k@{NblUlG}lc6zTY+##ve^s{1R4V@WB2GP+mF@rntfQzX8 z$)~gL6R2d16P8lG=JK%V| z&%&u69D;}L3?XX^B|in2+sYypB_(`r>X92Y8cQ>`1r|w(9ROz2H#pulMK&=x`E)%5 z?rl6#4NtA65He(6aD?FWw_*mkt1q~?sJZt*@6jBPIbdg^5Y8y@!<_csotCd52m1A` zl65pe56F-sqDB}rjYd7C<6dOMPhK*EI8=jPXkW>Yk~ug35#Kyx5)rbW+}PPX-VmH% z+(Qz@_yf!IxY(iCQcuhk^g$k}!@WpsY%J5A`B*!$gD3bE4802uh8NeRjUI)CQpCi9 zWf0{L>INKJu)}C<0%)-ShT;YNma*>;%1#Vr<)rkA3XLmw@cLSF2?(8%Qe?DVT^h(P z*gC&2eeB_-Mjlq`~HX+6Z@$>=Nrb_ig)gime@;tn20>R{)u%62gh@+J_K{WJe}Vq>+178kh8@7$H$55bSqzoa)OK|iUmbh2gXtum7a5Le}zK6R6NxY zRqKtk-T$WUnDEjG^}6w0EC@#>^cv+C{kjk`VL0JpCZl;@P=E?GPnyV&`wf!)!6QrGyt!gwWqEd<)4kARfW%Fb3LmR!ihL?-QrtGP_2i&-xps-ShRKzR z{e%p+jP5CnJ71+U_8KZWwR3;+2_|1r?593R(NK;OF9DG$3Y_i(pA(f1f6B=T4Grz1 z`7KUJ;!~4k0W#tT7pu>ap>2!6hefbJ5*~ZW+Z!A9!3&X5i8tfBvQ!->itqi4668de zX(FH2YMi^j%Rx$ohU|VCF%*NmKB8k==MxV%Lj^6+O0*DvN)u@GvGNhc7SCHn98II- z0S=jv1@51=x8&IyAI+)RRlx7`0OM^XG82Uc%y6YwE2gQb$sdykGHv#ncdLbgL3HbT zAf%1u=-Akt^0;C(eBi(V2l&>rEWon0Rl-tzNMm&`V2lABalH?^3>!pRAyisr4XXV~ zFM&9}>^M>1@t|0sEF=U-ZQt7X8Yh#l=$*osN#G*rCuS9d;e56|UB7X}ruWC3OT*sys` zpSQhq_c%|(w`w^K&;zHl3GawNm4(2S3r)FA+%FGkIjc4cCY!KmPzSh>4nM{}IvtJf z^F+{l$4C@`R2&;{gnmM+>q}u{VUTg?JYrR+FJ^rb63wEiC@e zuy!QRwL@3Fv>Gn>D094F+#!`42Iu=NsC(VDKP5_q^tA-}iK%kWDyG|Gw)sV|^@N`0Zyx$alA>LC0rf!({B+x>~Y zgoH+Ar%R%3f}&*X`_fpx^aH>_QUOiRPyB_m5~Wh&s5EOG#0qKR5WqcT`3o9bv_Ai) zdT(~)SqKga3u-U7F)+5t*#PZ%gZiR;NJEcaIR%&@!VSe=$`$#Nr>@^2tV8<#@t(J3 z14<$noLv$x&!-!AbT;rj3HDDe9lGQAbSv{4BI_hez`DxFDoh8XY4Fq9jkGGUDNHUp zVM_7X?HHx4Bxjrvjg&88ap%!)3eJY}A=)*)5+5cfw{tbN0bLH8)EtHlMz)Vkd+EY5CC?WjMP*^et?c*)agm&n@)a#>9Lwlvd|iS2Y0B1B6N$;6vmo zT)$wFayu{9DG3(_@(Q;xdl;(i6RaOu{ki03<{BUSCu2dSS2d`hzvsa()v4|ji%ysc z8&|j^Ne_xuubL8r5j9lniEM~#&?slEXOv=aZ=@vLsj=NY(tTzpGuR3zOv-r@??$Gm zOR86Ceu?+c@j+{Q$QdGRww8FVII}inIMzD*2^|*uq!cJ306#rt)u`qf zR@@PAysI;u@bW|19iB#DnrU&6qYd&FyWF8LDsSH3=vEO5)W7ulxnL^?j^hgaNOrv< z+Go3{;PRmlKKYMxKK0+CrgIYmDE&yk?}m9 zv~LHFZ)@O1s1rWS$_R4q7@Zrqig4Qp7Nj>fl_6RiWCBV@=wa<@*2wy*$ z-H9cn%0zQ|gYrnzS6r+?#g?PW^f2Ee(ciPo*0f=j6CAaIR+P)eh^e=oJNA&IJG0qH zPr;lv@e0WjS|7>$BU`Zy+N>x059?lg7x$Hb^PZB}*C+OmT(i4u%o+vhUPS&fK-o1V zHp<{}ynFyqhUqc+KJ|3#hyylsT9V@kMtp<-5wf?y!RWMMLV{mbjA3-5U(iCwuc&rj zd<@<(X8GRvl;Ho7AK%q+oJ>2xni?SlcL=~(Gur1U+QUKyjT}XDKwUm|ZkKUHFNzd` zD*A#)6MPKRsI<$RlnKC(=zfWRxca|zal~Z|OUQH)R{GKc=_|E;_&$|ps>9@Sas5nr zXhjnMr}wqHioLY*#09h=;Gw!;2w4Fao`a_kJHn48!5Hhl1nQa74}LKLia?_ji6KeC zDH3Q`Jg}>Y^}@!-$f+jj<43oXg~&o87hEn5zSKN%OMpN1=TXoKmlN##*Aag&%jU8V3vklXKVF< zF0#z}4Fp@N5I}#0pIMYppJyyONrje(cS^ujY{6o}(J!nGIlz-%s)A8-+P`$EMWx)4 zXJ*J#j)(q!W61&(&e!p+>y+Idh$-^v1A43mb%spw#wwY!z9A11?3SO6+k3z%tn-i_ z79f8NkomWPg)Zk?F zH}CDqlH2*wCZ0}UbNVVweE#-%Pw^}I!`HwUGu76A?iRpJ&vU$C4>dFIIZ_Bl#A!|d znHg^f;7o}NJcq&uvSwMHTvp)+NDVde2{tvV;Z##H zeMWoL0eEGk8@M;?a>+sH3`FR7yVrJs^B6K+UxxYFs(-q47nx+O1I-rmD&YTqYByB#nK!CgHIixUkmhS6zc+=*1>BM+b~=l zY=ZftI5>lgGXbY_<*{Zk`jLNA9QvJW`-^c0;H%MT4D?(S`g;{h>vF&sG8}>+QAkng z!5KELlbV1eIl2RN>zO8UFct7>`R+{KT@#2)o2~h#`E!8{xveBeorFQtE5i$`1Vh?e z;C@Z`GF*(=xDWz@=-UfcU$swss`Z^qArsbYf&-~6vlY1g?Sl3CO#){f~rc3he~ahN^asZuH%wGTRupb@;F_uAIfqh2HK}a zWH&!?uvO)&hO@LSW#s%8fm{b-M0o7N@&x#b*g0ma4l@otP=lH=39;_9PPR_IwtUU^ zOz_JY+32+V+1rDs0+()ys%#w)7&*yyurbh0&a>mNd3aoV{R`T4Ipb;$zA&@!s@tT} zy&1IbfO*cKXA+myh!GdJ8{IWoKFq~Vn$&*O0b6EKQ$If6&NKV>L7I#~CzS%$QsgOZ z@-ziLS{ypW6dtUAdr4?5aVU_TrTDb#XnT8mk)S>fZ7Do(nVbu>y-k?Q3xl**LaBGj z@Q-a{{aOk)J+?MsU`OuHNBgB5F~(nn7>>0x`ImKhUZ586y<{hX9v#C(^~Iu5Tt=9q zi9~Hp6EFv6@hO|Bp_YQ@ycC9Z;x;~jXY3IIF3iA?7|&G^V{qxv*v_$CKV{w+g}zmT zvW)s~(xKoJo|<5YFp+*~7hRl`stWLnF$bwtQ=GVuOwSUgOQ2p)AQv_tkc;40ss3s% zLd}KBY4FLg7wnA^G$QSr1Sqj6GEu_T$=D3!r~l+h3O>8i5d$9%1!b$&hmB1(S_D4L z3wQP-7a~=W8WgAs4ls!htAm~y;WQ;0%i@gD1V;Zs6d*!$Wr*hD*`Yd=Ej1u&!AD0b zSxyVSU}ca%VN#8mPx+Pkp2{542IsGr#J}%>WX+Mc|IP(w=oGy1cAOFkBN%~8`o7uj z8jKnPnvv3C28!6#bHUP&+^@2hYxs0CaoCE(00td)fTv$L!g5%+kb;s@iPog(Ity`z z-NcPiNVrVZ9*=NUdR>dcQGRef`};JE2lCpC_G$=h5Fy`E5io8_VQY`sj z*~j*!W8kI;46%@gz!$y_9 z^MA`Oo}c)}3y7_k<4yrGkT?NEWT`@uK$q17wI~<)+zb3+9zpc`5$YOfRdncAN^f)7 z%l5OL&bOU8? zr$&0b21N%M7C6o;Auut@j;A2B&=U zgi8a0*CKrV8NoY2w@D^Sl8L;$5*PkK2DuS=N}3L3-vuh&_V|Q)2=wDUh$#koZ#X)C zi^ht&Q7*)4+h{I$?kz0;Vm(PPmM!TsDpnJ7wD3kt=w9)Ep8zmvQ^ap)VSplYPTb^> zr(O9cNSzK-2cSZn9mX_IPYYA*)cc>KyCmCLB@n&!wrb@Zza_Gn!8njn5o< zjRvEKxuO@_z}TIEL{Sk!5KAJ2O4laSy|M0(S?0UigP8sAtxmsE1nkSEs3`0u36>qw zR4B3XH0^)#tbiqrc86g7HcZmve;)&|=qP_iW`w`Zi^3?=1)ymFSDA33BP<1=0q_ij zxOQCm-BXsCJd1OYyCxwI%3x5ubWc3CgL}nMC(gt7nINJ8Apznod1qPa$yfzh*1699 zAmEt7KpwELOiuOq4>OdS!-=x0LpJUHy^qi{uLjQSWJVi~LWInaS`Vbl9Ep-=(w9-b z)v#4t!sZ9HJ~XD3KBBG8{43Am1SNI?{XWQC6NgY-{UD*TKF|lfmIp$os}YIz zGO3$zfBQuU?RT{w;$;ELO<%YKP?^2feR%*(H_xZ??|k0S;7>XBSfx!3sP!Tjo~!mm zC468pb+&6T*Or|9_shag*(x%T*8T_eSA=cRNp}L;Q4cmdu;O6(AIH z?6tgm7z-cE70OdEIy4t~+G#3NP#&y`(Dlj8;bib{EHnA{As3_xK3bQt@Bb6LULPn7{@$0zob|xPUeDVDfL8@_RYTYdDHc zhlCZ3VoSoIVy~l5eL7986vYzRHUJ ztE|bpSe7s#CxNKD`Lnf+2z%jjmUHe&d7mWzQKo+HlKfjU+7hi`cc+rf%7_( z=}P?cGy%|M{H4-g*IDMH0L}F7@>037O(?uH21CnqrMCS|1-9#DR@?upX3ox=E_Cr+=Fib=p zUu#7=tpYTzo0s;vXmK1XpH2y2!zktm%qlo6F-$zbs4kYt4Uh#6Bv1-13v@)Zt5k}V zRFz*Y(-Dj!W<95m|NP!!C0bna{{4GboBftwS{#+zC-oQ86-3;UH4Hv}P`|)iWouzk zcx~3PKj-kOm-36pz(kZ&@)Y~c`~fV*2kIlr(+zYwxN@yfOJGo(H2%GNZ^+N7F174M zpHb=E?!rNHRWj?B_GGiZ4OE5$&=mJ`Yk^e33P>2S%}eZZ@uS;?GAVVZ>OszF^S zgWq0#D^5)*+ViWi)%e7T6E-I%PF?#@7ay3xwc+nYwFsJP$+GNA1;bUYOES^XTL_HP zYJ}D~6-~^4wId566Em!S4BT`F;BAZhpdI*(ek*0&_+Nj)7;`CXi6P7<`eyXW6DHi; z+`M@kb{5`l#1p3YKgdq_4X^={`*4o~tOK-9Of|d+8m0^Zp^kT_2k>Sdw71dj(C+16 zG@t+_{5xuEITKZw{%~|!nkMFZJR0>uUTF(({8Vw!_2^&(T~F|70;}C*`wpt&4?;e( zSG2c(qOMbVhRvkeWLqn6RWg9>sicdDhDYbK;Y|yZSZ5GqfW9-VQaJTEnPNXvb@uv) zYac|y-*>ia*AhOs7Ia-*nzB3FhrImxI&kJ@ivK!q!};G1d(xhONPQCxR+sUqd+Shw z=UC5YIfqmSEOLf3zsBCnayR{?Mxo-~o^z}D$QnOPChbnic2dRQ-K~R zuwuyBo81j|*ekL(Oj~RM=6}Qojy)-mcGK%x(>yU!1?PZ8L@AKQip|je&B0Vr9ZDRi zy3GA33NBS9WV5O@OdwggZLr>}A84?V^~Dv>ZE<*xs6#&R_s9+4FqAZw$K0Yat56OT zh{B62*w){F&gB$WdUW?4{O$H~H$~0iL;^~ZPswl>!d(^bkjwn|=-ORAu??`b+4Z2< zG>8f%X%B}B*!m3KHVvG8(9IYx{rlsMubF!SJ=meC_vZX1lK*m zOcM+!s0TkDoqs5wI%E=(elDG)?)tTa?3YWk2)n^n=vSzFYBgOkphnNlw{PEm z{kr$yZj9)nz_{oKrQG-LeY{6pZEbD+wfqy-0(u~SJFtNt7axyKjWvorYqnu(Hy43U z4JivrS)Y6E!*@Jb?T_EnaqwaS!X~iG#>~p1=zv$=;~dRk$0^zIe3ixXuu8$+{>NZ@ zyDEJ%47Hnab3K*D4MvmEz;IW2htaq2}r7oyh}CfCnY^iF*V z>W#4_F1{q3mMs)k4Lo{i4lJ{YYoJ8@K0NOE*uCa@?AS4-wc=jrVGVf2#YOk)MxA2m z*z+hRmVl@)1gT50kBv_9S`w>*R#a=tdj}elRi(%0-@XYrc1f@GjUe&6_My4{ja83V z6M@09$$bcMHOu4xUJ2SPM2vleM%`7n%WFTRaH%-d-ZFsmJdF+9@vQtkFrah!TrgNE z+UOG~&5n4Zv93HctBh7m`=u8za;+ThYJ2&nL{9Nw_OEpj4`xY6!0?dA;$*<2pU+-> z^3*4uK;u}i!I7=2KC2bew!qIsc(B+{gFEk5+VBjCGOmj*)$z!%hb?Lz3VUAu{?@-G za!}OscW=BI(vQ-V*Co=8`BQEG+oyrfe#DSp=Et>M=G%)ub(a2iEtUvqh^q@sPhEUd z{7h+JXW2@;|9}LT(JD1{fApS=)L4Doy3}N-c*M`;U8yPokofB}cT45>1@=GartJkg z4}O1|(pm30*!P>3%xtB^(%qrM2_MDO*ZvsAhGbcA0??~NDj=^6f| z)!!P5Wj~({N#zWR+ALvn(qDe8+fMLVU;aIKeCgf7K4%l_+TE>}g1pI%&FvEJ{5Mv* z8|oTvdMS3;E`^G&(hi-nG~KR5cptb{=rC68E&0xWsa!O0x>6uzqhj{gfnS#+L#XW= z>ysOIx^6WDF62!tqo~R`)3;4+?4CjCY^;&Y7?a$x6%p!M0#kKQ{Y{?3*zU7417 z){GvVj6)Co{$0uc@P_@Os`msV@~~U%-w%!SYq}qZ>SxQPBd5o9SWN#6TKidoUH<-D zUDEf??YqBh)9dbb%(6{%y*HTG9^0e-^ zEMl`gKMXz9e*4zL9W`g|mW^+3iG>KX?{a0PF_nFj?qX}hP`UBa}(OvtppP} zvFt6~!dU;+eo+BS`cJ+69}-l1&PSJop^M%I{e2!}aO7CxWJqk($>&C3*{#>wr+cMK z`nJWbegwRv5}i1>jIv$r6VTo7&dxBx9!WOcl}!9wdfINoko+9HJHk)f7RRPE_E@G?FdQ9)E(7dwrzwByyVESTX&i;oc(uw<~zRZd^IlCttpm9X?#PrXmQE$SJs$vuQ63Nq>cTh+eqXX*O9 zV&T3M_C)VTeiH{YJeZxCA8%AuSC4KV**X*#R)L9%XBfasAiC#mZGEQM;;E@%7_tvKzkc8%7%E3%7?W!2UC?)B@fCf@nG zdY=FBI|qNb|KNe-PnwZiJel9W?`Dd7HT+(F1!M{7K|JFqJYYW7mG^)o%fh@sSARm- zDl%E1TK6PC0&yMig(~>Mfk+;rQdZxhZ=Adl1ds%SSnxEzqPX04?T2lY zo&Y~TU$5G3{8NT?t!hGxgrJZJ=PQt4n0rfFFK>JbsQe=-DZN!#CS+fj)OtUZc?0$6 zqracMi8vIjNvh((Nuuiebg30)QNdoQ8tzbZp z(x@FEk0^uc%WpIREjqx4J{_>#Yhm}Hv2CQ1GOo!SZ9Ton;i*Xw`DxS;|6baqTMfYt z_4Ui{yi31;mh_wFAx_px=tNTV##H3^D5~ce$5ukZaOk0B(drwY8LEVgj911_P3IOC zc9YW?=E+G-3y_EuBwE$6p?)vPMl-V(fn97r5jv1dK zQYl(NuR)z+txGM!@0?P-Agxb-{y3Y}X4QM)dHq1K9~KbGPg3Zu zfT>})&p`m)EYY`3UTg3hi&-w-SeuzzAG~W@6*qAe3tpAlAekymP?-(u6I7buyvE9} z24DFr3}vt^z*p7=FNI@0rhF)wB9B!G@2`&D`92G#YIgDlENTIGlLPz|0Ay!j&|-xN zV_O-BZznuDbQLqW{kVFh6{8`GEdDSZW9KB$JIbmmqMcxuN2lOT!1zTVgmpvF%itEBY9uAz6YCDhTT2O;Femx#ys(W@*VC}k*RU~Kx^CDeERW7x1RD`+ z*K#4a6+kze>F0ZP6^W?%?)W9HBdk+o6*MgnBo=4+zSKC!@XVPz-_6xhY(VQ$7WDd* z%_eCAdJTEdr-eY*bD)5J$PA4k7`u!k>FJUc17INyz$@Kz=}J@3=L{|wOsxg%6jOdYO#23w>!H2bTwyCU;$zjlt4Gj(Mka2Y(RQE!&15tSr7Heo z0a%=eCX@vqG~hRuCI}WQM<zfdtT$bR?w%y-U*MSD2f{XxAcK7C6fxa05H@ct4P z384wYEgEf$HwtgpEhs2@d*#g^un6Ld8cx%t*->CBp@<(+Cui~@Qp4Bd^ z-?r~RC1|+?`}tgs+0z>^D@FhM-ccd*Utp6DHYm?1Ya(eG`ueLL@u&CTQdKA@Fed-& zflyFWIA(F_`}~0|3w5FXc{gw}{XsF+1pdJ|$JwUx^ap46Z;w~$n@r>EE&}iErCeLs zmQnmfjlA|&a^ME5xJ7D0lgVidVw(iaFc)iZ2ikmNzH>xQFu!por?xqOZfuiNdCi({ z>G9JqlQcn(-1`h_g8`x@FYLmxfNdJ7Ni+erNdQ78@uOU9+GY1SE0M)`)YLaRr1L)y7{{QJJH)%hBu?##|B%e4QcMAn>ck8tbB75ep zIG&#SpC%tv~(_K!yfBy;h{PpViWGB~yfqgy!XSK(_71oAgW1@K+emh8~ z@0cA-(}(v)pt-Ky8>tb_K7B^Dhw;`IdNZ`i+=30XqZL3kEcUOLXMI}bw54f#^H0C| zzi)qi`1N-FYF?%Ij{CpHTXH&!vfon!{rbNDX-3#8B_(SzWtYOHPN(a`pHZix(U;_D zLxfhXP5yk7R{t!I9s++`{QMdp<#4VHvuIgyWir{_F$+&n_plT zz1=kjlI(a?)cLd9*23ma(!+|o_cyJyb+cL9Bz!=tEk&jS^i2Zv2^%hxm?A18J25`` z;9l`_#&Wt(SMj~#)r_&V&-*@0tYp8pwlV+U^QW&@;)kmDWZF4o^LEy`|Hj!YqdVb& z_c=wdRqRousn{S(@4pnAXN|ku^p?77ddKuO0lcL3`gK;DEK?%9ru!a_!ZX(CXJKW+erO19Rut=Yc+02Sk=msSo&KDv zd~4O^mIUBX32YfpZc#Sp0w7g!VZmGuyk=Sk_MPqFnVu9r3M4l0+U?T&%j0rmkcl&G zIjl537D`m1dj-uUZsC;CYjyI^`^6=vthT4Kt>w;xlxi-N39CCtWWE!!N$^jH;C}-q z7JsVH3tSPXi~Yo>ostS~!JEu2OA24A43EIk4};FfAqpzYK6!Ea9aCQShD=p}$rxFWpJplv)SObt?W1`2q6=-irgP0CatRCRNU-Qd;WPo!d6W zUfglW)q-ulD`RUCzYlGUjEvOhJov45xTSv7F@AP6zM~F%U*Yv_Ha@>&$Be9tJpX)J zT`k;c?k;M3ia+VmJ!hAToo~Ubuj=Cx(9LI0=FAFS#!%ku_0karB;~1K^b3FjjIwW0 zSX3Lr$qG^mMVz*aXu?lBiAdePUF_}drOqAa}+HA+#hoP1`ZBMQqe}K3!!P3gP!E*w;tgWt)_0`qmy4rshNK35I zj(C9o7-OvC)sM$h`UgtFI9js)pfB#Pt|ExMFwi#`SoyqUyS8T`=h18J)ei<@cw@tH z2+(~0whLGWsPBgkvhA%$37UuRQ0>uosjnCqfBRPDd|PRZZubzInWZ+nW_eCk?5m@g zE@JFo@5!#)UWr3frayoFW&aD_%)6KL@YInmEpmkfi9Ek1FW7g*}|q6K&rA5lf9H*LDLY;B0Ysuz%%D7FY!ZDd;2#q^@t4kSPQh3@121y% z0>Tcl3-iu;_HJQeVBp0MzMcaq-S-9D2X{Z4ZuS~Ks(&lt}_FeIFHPBCnq{gpf&7ATKi-{;K|$D0g&l0bSy)!AY$-PSZ?XUfxdbp&u{OH%^q?moB% zE#(rYY>uNxyVOqwB)RP`hFF#5@nzQT_2v|km3fCnv0w)98RaSGpKev?zs($~4ac|y zt36!kELQUa|I3Odcu5y_oUtC=xF@o~L&)o)S->vC?Y;gLzmf2u5)f0n^gA77eM4^yqxd`6 zy7QWjK)W~Az6f>S_W2^*<26@xJ)oMzZ;ly~5gDma85I%P>)0|=$aZY9_vU%)^L>8L z@A(TH_x--F_jSG2^)=h*{R5?Tm;Uz^@%;A{sUe7nfcm!$Hp+N0 z=mV#CoxHoJy?<92u|iS7is$O_LGVeKQiE0X*g+Vv{_o#be~6KDt39)Gvp%EO!Ax2! znIQw<<)ivc6*Tjk>5)4m!^0z3qV-bdm|)`&dTniq;yng_c&QY!YmY+#41c>eVi`6F zQAyDMASpo8{~vdB&TJln<^$lqIOHTmS3FfUYwG1o5Z&Sa2X^{iTeru}&F!PLMN@O@ z5zC|buO?%Pic7ms;kzn!Phf209!)^oEPnldL%va&ABs39Xe*JIJEN<+n`w0-){%}w zp6AMyR|a?SH#r&AoZjUORe#@h^72Ao5)%s*`Lw~H1s)Fug)JdL{*S6}f&#bk}O1iN?jjkJ_2cW zedeXb)L{>q=W?(;j!{QP$GsCt{zf25BfI>cr0Kj9#3R8sO#_rVhD+{N_viX;4dT~D zoFV*o*)LxFl9#8(P&3JiY&IHs_$NP-{yH5Q!HS$S-72gThVRx9%*I8QK(@S7WGHqbSHVjZc-sN})Qtx`3DMO{NGq#V8si zRj$?lsdS)C#I+Sc{ON);zCl7axVgCnzX<-iRVBGpTUr|Bz2Em;Qu&0~b9EH-_~3g% z{%LJ()&G6RUw0?@RdTB36>=Fj1hQYI57@*Fmx=02od|~yUA2nW8Z{APX5Rz-9vc^t zM9@3sNr}FA?h#)9j|TZiH2z0~A6|m}>s8A>ZPwSTu&lA&{$}@i^r5*U+uRw*JQ+lQ z&=UXXgqN>>^^IOe?f<%5S4d*Vk~-pq6M8YBjDkct+xnrbZIZlM9dyS_g~bT2ttM5T zYhdje;gB3zG_)iCV9aZ@4!A-qO))pFE8SYFp z%-&3RzaV^HU!SD%8HOy!gd90cxebJ*G7jSqhPI*P>8_~sw+a5P%h}bBm4p9+3;QC^ zR>v5$n}S%`2|@&PTAXb9gRFm-mTI!3afTr3XQ3gC{I`SzCv!Wmz%3!l(m%KtW^0J%&-b4XXbmBi}UT+7t2CcGz6kW%39z*e^QxuLHAcFIrO)8Nqs; zneBHRvVm*k(HhSS+vtcaz6i+m1bSP}_ATmrJ&k^G{$u#goH4gC*L*pd*Ka)s{y>SD#O9SH74CW$-f90e zkx*+5JVlSkYC+o%j^V|3;e1zY3a01Lx#?)g(eCb!u!u-U4+lR45E+l%Az1Q3rnqLO z+4fmh97KHu!>Uy1O*Zgny&9(=^wk&}5b(~D_*{#Ti~0YJViE9YFmSY3LVLfFET9lg zVO~L=exeVJjF^*|EOmTG5>FeSvAt!3hrlHyB<_p_{LpX|p|LSduTu6rXtzWYQyFjw zkD5hz1-Q8U%KAJpd_itsqC{AW$tir{;#VQgPu10Sj~=PW1qLxbd}stpM!R5pEStQ? zX5WvIgtFN-e3IZrNPBcFl>fHeB;1yL4_U>v>zJOb6Mik@0&= z3FEyssdA5%3k^@=qeNzzu~D_FHgD6h4RcgZtP{GPki<7H{alylDm$lf(%#mazh<@Q z>FI&6Iz~2-dOp^MV;=N9@b~dAU&H($h@k3YsA=5ntJ%o}Uit(&R)K``Ni~3nyzrkK z%^5R80XrYy9(JAk-xZnH$tgc(WtmjCG`GOs*e+i>tWokY5nzhw(G5@uF!DVb98BRJ z8ejY>Q*{?5+2IeJI&GMOMZ;NBS&_vx_c#)(;0)78(^R+}$RLc@Z*q#*LZ)qtc;-2q zK$1=(1r;cc%D%fo!rej2O*r7}0gep?;{Y2ED9mbx)@e-TTn{6V5k^vG&v*dzQ9us; zkAA1oM$vo`LuGJqVWWUvRw6|Tk3nP2B?(Juh=cV~mDdT5Dt-Yghb6#5w!ODkR#GMZw56&gqY0}UM_Nn z?-JY=s`_!SF^M`Gch_%lpY{cJRv;FeQC7fAsoZXRG~Io2v{&U@`Dl7=X^rCoJM2C_ zv%s_}su~AK@QR9xSFbFK4QaOo*~p?)At2gjdV2Z<4hL6TclQsb5|XievLlzhdYVhh zfzMw!xOuoAl*)qeDhqJWv;QBs;gJ;5jtr!^U{PEdLAQd|{Q@3S3a9Hq3VQGa{NLf% zhW9yX%D9<@0Tw;tSx)`{VjVEnTM1f?lmq7Eq|sZ@$3K*L+2XcfsqUB<3UDI)%5s(V zH)wyHGg?#4&qew1?;r(1YdQQ(+M$dMmVP6ur0Y_mE(5IpWWE0%v_S%`*&t51ln)N^ zMd53p;XWhO!)fno1$anKE{V%43KbFI&s37}lJxuHSqR0Ro0P6!CNn)5Lm;?37$W@Og5wX?vVVM7K! z_UdwYX*(bozTKxLbf}$+L_pFBCIq*7m4xJ+eHxE|C|%6yd1G44G?|Q;ngfmpi$%xX zD)N0!TgQP<`Z*tGNg1r5WflIGqYfT#2W5PVPtv-AUIhAY``DYTNsVd{pKVXUG7p1LxEz>ffGO06^A zqu~GOh0c+v5I_k9dLdy7szEU^I+uTS42&1w_+v6Q2JKAO`h-X>Fit|OXrRgg&%A)4 z{k4{6^!iano!@MGzLB}->Mfm~Tksn=TA`~~p{x(Cd6qrI-BDD@p~c(ftCbg3Zmv&? zbDbSgufioq-&V?l=$-ABg&|k#s>&*mXLEg1RZEM!9H)RYd+@;K=~FTxpH@@ZBbPjQ zdpAJV2NP8s0hY1 zA^EtwT4EL$0Fs;orIY7D7+JEV4Y6rc-+}Hbg!QFh5W8@^y zf$yrH)5)Rx^~@lxWDzhPkQ@^g7Z=-;Kn<^6D?V85yNegOaNP_H#+S56i~hSez*y*v zi{}Tt&D~dViC)ul+U2XWpVrq`%x@@yKg-kO>+8#K<#=_pCgfI7*T9OPprF1GnbXoh zK1AnM<_&EC-ptLYOW7Wj$T&Y0+MG4Mvh;qUG`hI7)=1%ppLm#Rm}=eqEf;(b-U)JtbXB=rLfpMD}drvu49{+BigM|v%4O3sge%Uj_-CtLdFO`y$`Z~$yaQlgOEhOCJ;luW} zPOKZa=$J74KwuN_c zju2a~+}8>9fRjp}dSSPN+Gfe#5 zCEZHb<^2uLl~r(%K*Pagy&Ke@I^mTkhV{g`D%N3~A*y?T9+x>D z6R&$rRQMX)R->VHd3;AN6*gc=Y|IazngQ)!v1<`9fV!LoQzD{?JstyF0w|F#=E}bi z!G^||!dT!o=Q6{r%HzWnx$Vz&OYK|juwSYn|8(YDR7gQuB=GytW-w#+gzzb9SY4k= zA#FUngN&3^Gw)@hE$tFs{~mBH2z?b?uUF>4B-L^o;_V8!SejHrxWXPeICM|ldM?^C znkIY4^>Uk|m4e99YvQjW(*S^Dc>?_YM0!eNp!)yg0-B(ii3&wKOdE&vj7PcY>LTD{ z4Y+IK+H|2p$>lyJUdYqIls({8-h^~efd1@qM}^Zyu=y*MCCXomB4!mRydEHk2ba!> zqu~OAg4R}6AA37XVb9Jz+nZ^u2QYA}m7*msuIu_{x66Id@d{$2tHtK zu~t}{_waOfhxivk;Hp9Olb5bf;)W_JE-#^K`B_kqt>c9kx4nC7U%h(uJ4cr|1U{p4 zjC00Jo;Cn^MH@3esb4G+cpdUMJi=$w<_}{_u5<>X8Ztn9*53&Uo-_G9$#KE%M%|Q`_1;? zqshbj0;$ZM^{?nU+d5NHSdv?p_Y2AjWKv2n)KmwYRVQ}i_^H1RBYvaBH8JNBp|rR- zVME#wq5_$P{$H5O>w4%zE*NmoMFP4|GH>|}>UuWhp{C&zW4~%R0=QKOZ_4g1CtUf} z(>>5PK(tIHTIID4*JZ+eHLZCnsJW15i~Al}P7-|lQ0LaoYL}fTKhkT*Yn!uL6czs- z?iDJW6ovr#A8w13p%p!+PV|(K5q~qeV z!$+H-M9{rXEemxy?gyyK$xFO=;}l`e0gi7Axhc9R)`?d zqo1R5wLqxjcJnJigH7_ykYk+~-H5V#^xxYOE&$mAPJ+e#-xuY9(#r>G0MIyKF!QTD zvZME{lC6%Mou4@G&p3euv)Vm|bIVseG8D8xAZ~;#MKS~JL-hVrW)~)e7}nP3vZe`S^l(&$3m1(GXjC$M_^`iT z0xMO{MkJ|sHqQM=&8boWxNz#tfEdiyInS7Hc)zK0;1Ne|BVVO^u_&EJt18Cre^phv-<}ZGiGUp0{BsJXHl%Pj)PiE95_t^3r;$-E8| z9wWBX8|N&}h>cZoqeEeJ5!VWO&Icr{#LkzO*7A5F^76h;(fm3PB-se`t9JWhYs>V< z<9&rD@tV8c`Zz)rxYGm@$tf!dKy}*!1vx57Nl7$63i5;u?j`{%575Z$aXjcC;~azV zlN@8trOh;~Tr^7OFI^nG^p8{Et!KY_#kj?7osDC_8;!0C-Xi+tzt?SL&8TRt3FD5P z7#P2yk83|SSTL3V4UR4oru1w%PwMP!vhf)(0II~C$9SfuvZ^ov)7`oRaK}bsi0+Uy zM4hYY`hwxNE-*!65<#BaSEN~2JIkP*_Y8$6qv6J;i9&cQQ`!0;Zran$Lww&r8Mv4; zxKf2OvWB6|!qJ2@s-({#8#Imrh)}*27UIO#Mr)?6cm7EUa99f1WDA%sd&6NoihMD8 zoMhrv&0pEqI^ZUj*kw6-2agr=$$cg*Yft9JfF1ht=X8^t(qTkklQ<6;qTJC0aCyA< z!0NjuC@)b($Hvaj%{mMgfBdeNC-t*`tT~qW`fZ;E=-@<0Mmk zUp4gp4QaBjTL<~RcgpQDuYf*FqQ=;X@!tBB31vRe_oMI@P^n2sLjHK(_o6S#k&uY> zddXu}zx^4}T0W3z4T!uSx+K?cOCm#GA=OC0!2uqoRHO|985sQ*-dqZtDH6_TJ#exf zJ<^a3bGYCABJEYh_6@eWtddu~wLEqJ8@lT@3jN#+b$54fxS&^F=hXNxq^723ntpnL zBKTaK)p>R_e#PE;xV^pTK@KjRV&QMem-OQq-v6mJ{iJe{$jhtevaO9zRj%_fay_CT ztCBwbn5cUls7xMf^#;8c@n6(ZKJ1O<;pLTi4v&hW_FFWwI~q@w%m7Cp*uc>sRsjD| z7nIujTU%REHoM!Yzky0!$t(9Wpdjl7l1DCBdZEJlbd>S42cYCop>qaC zbSvv$+h!g>EcCJw`kI=E8jgBSYOwdv*_t&ZU%}=h*SsKN~$^+oM_7C^+;>x#O zGgBRnTM>r|{)<`30k*avP3N|3&|VGf#9L(dFHHE z-m+9K;*6KzzalGqNr@%vV;0yLkY@5_d+Y+oL_$0}-e&)oa6z8lU!&STGd0&bg9Hj343qL>+uc{bOWcEpc<&IQRVX3FL@sL_@~NmcWLziVG{AzpPsBK zVZr_E)EH<>KrByrVEN%Xs0{ZL3wt}y#+Pf}2SfC1`?M|}5A=#E7x1ERxr=4vBO-wZ zTA0)}WkX}X2>Np8ts6G#rwi)Jhd|uDLTiF<|RrFRNZS z8mo_nB-=jj@T@xm^tmG$V)Wgc?`ubYJ!$n>uUc|8oIis%die9`2pZL~a_`?2x$myp zv{oY<);OPO-_rTJx)R?NXVl7(o}$syhQvyS4wVz`ew>ZH^h)aIZ`&ufZ_QFddOAa0B2`ek?AboGn2Vi79ntJy)`t&`>ODZ0uBjLamwpZhK9V)% z^0Rk))d*_)(qM>{-Kw$|cC73)S4;p|P7~BN4TvyN3^d^zgE}7#>01ug+vpJ>@e9Q& zwLO}qrSzS?d;#8M@7|IYmj%gLsG#ts4R zTnd~gQ3NC@#gSiet*zNtL(xarp%&|D(!@K7}z*2tRSF{%C!@O0*?wyi6gmw7 znmAx<1)*WINGS$U*4v@5NB7I5Tz_Y2kJlt5zCj(gl~XZfL!KN1-kphQg?f-J1Kopl z!sCAu8fPsJZ2qXL?{V;vZSqem#5-d>j6TqOqK{sYGBAz)#*2ka;I!I_ybNcI%q6WU+Y z4UAHsWWclAN}4*wcn(uJ!|FSXR`}-iZ9IDf46mYDJr|LOLVdzdc@8X^)5bBCb@U- zo>v!85wj^fkLsczA(3UX(#~qKUYikcX@zU?A44SU92{Csfb(H*XK%9Wb(J#j85Td| zvU*%GG-OB-7W<}feIE~9Q1)|SnZ}yt=H+!>)E!!Xq4$QpmT3JKh{LK+&8VYZqEvF< zS0G$dl9uKfM+4C-@8EcEO#RqW8my#mp#L$E0&%s&K9|dZ-_(1qOSNokb_Tq{H=5Hm z%OAC`b}zAuaLqbP*;et zMB{ac-iN`<2QVN}^v6OJHv{rRjC7wMQ;U(Qp^lC=X}}D9mv+aOj?JlKz&W@!*2gi`Qn-MIesw*IFurkQ=;~U)UX^04^SL?YY}V}b`rnG8qN%_aBx)bot28-89YNHb zM5w9X#`TSbouxm$Du0Etb~&%8h*1q&0|77~?%16nN?B3exW_IUGxHZS(Tc}9nz$R^ z&o6X?ucpp{&y{yR=~hsKXh=h1sZ1=FC%KRJ0=*`~{PA*M0}X+g#%}`%uxbm_k48U9HxcwU0Ar&P{y*W^7jVv19YmdIeYV_oR?(FFY&|7|CE3B-H zszaLLbm0b^MR4c9`q-!=(I9He$uDMzeZ3YscEOU!+<; zx5M2#=$yAY@@;~qL|&JPtqNT8op4QG8xx}12RdfH8}zgntej`RWmR875~0gJygxuZ zo<^K*!pEolu776&@ukn0PwPi)_g^>$TthSC5=I;E(rU?*CQpAK8#z8c4tIQ`jD}pk zPBb}jcDgr~PrtvybS=^nIqHl{x8{p2W7H-<@JPpL+%-~>SQNs`_T0KL`=&cxreSYU zGd=4=+jz3#TWa8=sO-G z`K*eP>zi8I9Gw#Ye{XPQgEFqx#0bZhm|iM70oJ3+d%^ zp|Cr8hMl5ON55I0!0heq%N!?4E1H$#reKhU0Yo+2d&~k($dZB||{Z4$;px z0~V+(C-Pn|d;66vt>oIBe8lZ!3pOIEykn)L zgx#lY@%_XUzHO?oH|kngLzw1Gr&HHhJZ+iGK&oxfP`!Q^Upu)JO}auIxZk)7efEse zADA`vBA;FUd$|>Qnx4ruehS=)F{#ghY06JwokofG*R`{wf-{-9`3)LVu}_$mqlvQs zP*|znk>K&4zoaD zLlIkBzn&9-P&5=Mwu!lD#-7W9lnG5Dff*`bX^XhBXFEBwrnz&X>lGCLYoH<`do_x1 z-qRLPVg~%52|VU3BOgQVq3nI9;W#Ykz$mf(VlYh8T7bQQF+X@=O9L$P6bIyOBBHw zj8TiE;ELcRrQy7E8Izj##t6oZCowOiY$2uSM$a#^`YyBfL@ToUu3qkmoEMg%_SNUnPk(FbOzq z@a`INHNLq%<~hOGF}eM@Bfd3LHuq_(tnz$V6V$~ORlK`M^JuGl7}zv#pa{pbpHFww z9BU&LN7NJyI4VC2tGCxYh`Gj?mW$4)%zkL^SJA_fWT}Mcr`=p1_nM~EyIN8kLh&M= z{L1*tH>x&flSKs2juk(#!hlT%@Z`ON)40oc>wFd&IxZZT3_4HHY zn>4G?+Nb?cOaI-9p&|_8+y%$9s?Mi>=n&Y(9E%0CQqvv+nkFvVy9mJy%rlneK%;L#oxH zPaadDsIR4ijN~K^Wr>KD zg(O6`iZRjD@37J!2#3e(jns5c(Hi~ z$yF)E=LBr)Yl-Y}`~&-cR||M(CXBQ(uG3k`5g4E8uQM7v@2gB~9h;!K$|v6+1P9%e z)DIhlTHo1zab-1n7j#RF^7mv^T8M5m+uGXpGDkQjXEEJFiCQhQe6yA^gM6A3*PAFt zL-rbfS!!JmJA3zzeLq*6VU!hB2%;su$%bFu{jkyO26@V_@&|+|E9q_m6rrd-Cp|!5 z6dT%g(HWl+qqkFbZ!}wOzK3&hY%!8VEW98eCjD}9PuML~LE%kasdcIjmrYowik>+~ z^j;*WT58ZXEg~wI8u4eFyu3*WLcwK)c7@qZe(PGOT}oQY@@t#RRvM*)^1G*b*~$wZwukWc!1J_3sn9H<{FlVXpFAL=UVgSA({i~7 zu}F{aLnehI7Z5^;KU$pD=X=t5Plblf`j)oR4iy8xk?9Qx+`wBjB<$&>b1IFP1sr4v zp`SH*@h?71OiW^N#&vyjBU-V&G!!Czi?rDfvZ-xLyj+@GGvl!P53nKJ@nQGy!1E3S*LCjiW z?z32pT;ZiflKA~as{`D(=_%S5gYvVcfenF{ehp|(o(pbu9(W*qrojzmCDJJbOf@xJ zXLSh3pR5)NE6WqVP$Xmjaj%=}91T;ZY7^}ia*9n)q6@X=d$ZN7#WZ3YViq4B?lVL2 zywgL<5W?NUq8e&0Vgq}htzA=x@NmW$7zDOstgUn8xQF#@W--^BvpjPu_H-3CLY*DO z`40gh^|eH13MW##uR0Lr+cB&bsZx#h-OWotL)gpj0!keFf{7!BVE;p1EemoS8M+H# zf_fgRxQYcpInIfo6uf?hpfQJK4X699%8ygnXl9b@jOFd3VNnQD%oJ8Hy z-IY&+x1AljE6cn)nCw09-0HDhk$5T8PmVf*X%RlA+F0Ur;lAg+NDCrQ9VYd1i^V&y z?nj(dITbPJlSIH(Ev=xky%~W#$J;#l?eI&BCD1fPK#ARcu8SLIU>M%QfZ$jojqA~@cIEo;Z zii^c1KFqIqgZl}kLT;&}2-Biax*)77B;FrL@4@$;iTmB&*?xDvCB*&pt>Rx+RjDF{ zR$~t-E@)1$g!B2&v{DWa#Q^Y}<{ODHFS(l9b#^{koV9_}8UdsEqwmS@(M|?TMmm|2 z)0-FCFK&zVx{Yaq_;9{wz0iPY_`3g91=rS31lPIFPx)U;1SkhB8_LeYm+dBB)*CFl z?^opkD@|Sku|+Lz)@<2zL5K2d1YZwHnv`$SxBC7s2F=4DAfii4jizXO&~iNJO)OZd z^rvL^28z>vuJTaMyq^SZ7biDVm4?PtnxZ}3y*t}jZqu1HLf=pOaKor}bndJVn#anz zp1f^>KJE3os>xpV%p4^u{OHYv7OpqfqMux3ySvP4Aa40I3gL_!3JfUu6Bw}hW8BAU zGf5g8VYW@f>(?3>J=qZyrQB~on*TWMJ|}0Q^a$Vh z_6hYk2Mq#C4H1sJ?{ryF(IfyuJmNx+z+ikIPXa}H-_u~PN_Pct7y*z5@+Zq^aN%&S z{9Yg($UyRO#6C3vPN?L0t6Kao%MPKitfLNuq@*-gRXaV9>P5g?T3Wf&Cj_iAtH`|z zrW5GKQuQHeWro=-iB-)KbT5||zEg`)Vb8Y%;i9Qnr0pJH36NujH)v;At+%^-iBPp; z!Id|EyNsk8Ux)|@G#TdJ>zZ^=i5{?wpj!Aff5Azw6t6w$Yo<`e%`$EUH#9r}UfNf< z3xAJYALPaa0TY^B1dmfu4K1Q=(q~_yywt^YUs`;>`qQT$`rrjDJl#|t*Lq3IO%->o z>X(a)i$VmPK+t?z9MI@ffl8%vN&`ZM#llN&qgIK~_sV^X3rRwTT*AGv%BOs*GP;ux z)-sU~1H6}Y3!lMB+(Tnd?9s=M`*YI$<$OAADvp7L!iAl3l3hL)PBKCZ%6kdyic<7n zb<^(JNfty~tiWK9PpyU?T}R+v)kI`$q4P-n6prqSIZS=z(dpD*pVf+awLY8#nzK{a z85f&*US@FWL}(gwBG~nP6Fw1}|U`dOTSX z8hHelB7EW}ekt`>n=m?;Qv2qDmmN8>;=b%@2kiy?(_PzDkQh!N0!Iz?L4LP&gRU-*H&*5TnKh8=82 znp#?03{-I+J{6wBzD+;qv6SoH%dhAd?p!29J=sB$03UbqQt9$=iS1)iW2*eXtuC2$ z(l4LC#LZ?7sP{SH+`R;#E<`Oke{o@0RVFxFsVxvNe=hR8E6xpP?`Uwgc% zg%W+w^8I2DlnQUuwiKSP^G<=3F0{(vzG7m6XL&4~Q(Gwi*WvJs6wgLi1tNj zIT=_q_N9}8PHM)BeuQFf;~utdG05q)fBzKGDZ{US_$WOKK}{vSfVm~fXMS|OyUrGk z7thD@d&ih088QO-+;q24h-Aeg#@rwd z+nPH;_0YLs%W3iD-zyE~w-N9xkbk80w0sjga?u$Vk(?CL^7>Kw(epjuLJv&&%d@#>!iTnSvmAo;FOIr4oG|_MGsyrbpN?u3?|1`Yh7fh6h>xc&88s z&lniEe*jiCyF|m^D66)fmPQDw@C9|9D4cBn-ZYou15-f^3j>v2j#b|+o!rH84+!L0 zS8NJjBR|~9j(|I@^*HY^ZC z%`(2$j$7QTt^*DdiV#KNHTpVZU=O*=O@)n+ZT=I#wZ-{ag1qe$)Fg&#u-sc;-?dm% z#JX_sZB!&VlQ2=eLBYk-CP$z3F3lf_K@e`3Tipo?@gM?Mr;dn_^o8ggD||00$9i8nAT}p=w++A9uaWznf@C%5T z+oKzi(<}Erx@Om;n6jI`xZeR$?umGPUs22}nx&@aVf<|84;T?Pp`iA#J+%c-KQ=Zd zE~HAKKkf1ef4_R|`{M8K+Mw;TFrQyDok4WWM-O-V^j*QZyQA!>ZMYjFG&!~U@Y16PfxCGJerwDG!?zsku37Xpyfx5 zlam*hC?cnTM-BP)GGg%2dYM>5?CnoV>DAXH8*{FCow{_I{fhD&_f`+%1d$>IwEiDd z5!0nN&B~tEWps!qKfkv_N!c=CK(YT(M5AXsrN-&@4OI8-w>Ime75G-DQkoklAw4Y; z4huulkPXtkgMv*KC1fzLB4Ym?v-4YFK_)@St@B-h?V5|MDD5~Qtsvv?zlnX z941e>v_2UwNbI?pwzA30yxA8;jnexdfQ{&A6nP@rb>jyF;GgY{Xh=QFw0a;bJhmged)Y4skVTMY?(4hnCiRux;DZ=#l=95kqR62FbM zI~LRX|GvI}gY&u1QP|(xTl_s0qG#-aPc`{BMRC$PF+=y|L9r1aMKmGlr>i)pb7IJm7%vb+KdIUwYpL@_1bZAjr{prck0cj5G zj?P)0lF#%F$FApQeo0oTnHR{-AFIRY+w8)A@aqR7|B>@vV8P$im5zH+Rxe?Hy?Xc@%kaBSWXgPGl&5QZ+fc@xqF%f03`;1-g!F|*FhK7cK z_A$|a5gM2fMyz4Yj=1mtG5d4n=c3Pa+{b`47go}%uF8Nod)WTTH!8AQ%o{3(lK06G zKXIK$$p;u;wU0pbTs3mNQTb5aDN$B3;{luxEqZy7WG^2`-cXo|7`Qm>b7IDQej2ld z246=zJL4K3sep@berPc3Q$wbP+n7a%fJIWj_mnG8-XA!@`3T(-o)%<{$z}ncw6|{D zu2(0DGyXj1e7v5+5l8ZVfVSL!K4we#7c?07(N)>V)O;S&hQdy-Hi?#&lsu6-re>3y zaUq8KZ80!0eI6How+(3c@Wf6j+kxf5Z}3&g&E^=CY%uEd@X%)_sulFvm34i>jwWLC6& zeEn7$>`%9Et7iNi$*X(o2GMI%9=vD;XXr%8B>^rC6oKEJf2SW@)QH==vG0SGFpy~- z7l-RzKHWQU1i;>!(m84TDp8 z^>WjX1TXo7qO*`^)LmwAtHYiQI`%#96oX;g21YiHt=DcZjEaJoYp@7M3r(vCftHQD`2A9KMo)cip&@a4;D)mbe#2M65}J>b}s ze6IBIw#x2M9t;XPfA>lcIKM|=Y(7Avt-nXIA{cwBKYqXb$S*j0-SZB>(nNXg7Utju zpqV2v^Aod9-k!-jw*v0h!=4`3T~NpV9e7M}c$yeQ{fs*QL50icekdRBP3l}TZ6qb8 zNra>&&%;5yzpsxVEB(=d%{VIwE12&b>(bG>ZaM5&_ZYoo#m?3Fs=-WD?;WHtN zDp00t*uh=4ks3YT*!O(xY+M9qViKx_D*#itq)x zxUL^o`1E%U6}NEmHbgc-v9xcnhTf?jI3(qRpuUiw*EA?-fMAIv3?5E-akmaGCx_`F zXHk^1*SYXOd;!xv@Mc;2qQTdPkrXgQ$T5qo`t-|}bfR}dqZn628XPG!ppLXr?^Quk z4>1`PHU+bw0^FZJXJF5nM8tK)uq&zQXlE|>8v-|a+3X@LdQyw6zM7PI0C4y_LamT> z*Ku0+XrOnfcVK*Ayw_o4UHc|9FyX;CKlWOgxEU^*d|}`kspJh#^&PN65^NzBizu=A zF-1zB@Zs@$Hb3S`Nfo)yOVnfckwdC|4tFT`6~qR<>_Z#;IJ+&`8))b4o2p6(0jOfyi;(er0n^zpz)9{)iXds8Ug|cHpVYW$eZ?t`7WdQVBOU&QS=}Rl ztNQ~D(P70_J*wgSQ|t6CywR)@Br#=P2f zYGmuAJv6*G#1W3IP$D49VVgM3^H+ny$m%fdv;NQa|0e=B?~Ky{SaL8KnHp6pti3;$ z!V)ZqhD3L!UE9t_Y=MlljY5HAQzBYU6St!nwpLx#Gv!e!jYg-#&CXdIIs86fDE&JU z6xN>c6=QdK2J$FYm*ts4AnWo^<_p*&R{jiOwH7taC;Tqh_*sFkq-f&Di0|AgZjJFD z)OobuHAM<=M*!V*u8OXtR}V5?1ls~-{U>w3414zsb}bmr!h_+%LxM8qU>nm@T3T91 zys+hq)CHfvzJ4d?znS<0*t*$^CwRLwp zl)dw)w@|qZx#CldI~&BWMnijQTszl3l1#Ogc!l2Zw+>ACi!5M162;QyV9uG6_BPspZ;*u`%Au^{?OLQb|YxYed!My zSU(B}wk@^?j75w@CyB^V9x6hk5#a{NQ1~aCr{D)=2t}w8g|;9?&G3SHoNg76W2c$j zvhSszubi-5yfM7=_b+HHBASl)`SmU2P6qeCaUyG)k%t~(gF(dPOaS7@`v70|&TKmt zQG77mJCw;pg}!Gb?|vvLn?p$1|3)s(#6<+bzpuy|>a%ol3jVthVuO-(Au0?xRX#V4 z=|%sGG@xDA=Oa-5`zc@*LQv*M2;3#8O+_>qQY|srV!mDF*^YO($Ox69aU$S@I`cY1 zLy10UDa+eS-&ick+&O201lMH~gs?rdZ^dk_u9<&e8c$D4ml3{Hj|2f2h4!txueqg? zyqUD6b&5x#$O(S5N0_tp16VCD%+HRTuz;hzxq`bs_ZM1y3pgmi(F%i^HbCVVumfN} zNd^I@k^J!vgj+>a9M-Yarcn(09H7$P$Dp>emo!z($cak~sywU&>kso74X5c^hDLOM zg??;kP_-WclRkR#D*+c31@-S;NJ%jvu8LnNup;B!RQ6Z#xqIt-mq@}wiVaHF)YQ~n zyW|aDJqs$Rj#fRcSPId4V?O;{X?H=As<04pMGlMp@L#bEk3xDeB1AnoA7o%Gki1cl&$&;_UmQojOQRB zGYINk{@?kDM|xc#+lL_3_Bn6hTxmcOY$CE;lm7TEIexMrKVK^KR!iUEihQa0Od$RM zmI-LkwwX1KCu?cdKb;S2B(jKJs8Th29jh8vv%#3X#@HHNj8nU{+yGepY_5WKf;c^sQSzluo*EFT|i34RfHQBMPG<(8I~`ggK__EST+XtuaPxSEQ)Pa+mX5pkx@9QxjIyMX@>@Zp2W7vq!?m+Q;9XoMM9tYO{~ZCLTt z65xT~^n!o%d4pxyfM#5rNkHzCQxWJN#wF5OtenTR|MxRmp`b2K?w+mO3pG@M5(Akt z%{Bu*#|?jR)fHmo z0y@JNg2H*46*{Tt>nC`4%`(pJ^SGg)L2lvpBV|%jGORg_7-Refed~O8n%16D+&L9B zTUG)WQp3v`a)$i#lBwah^zdd*IKz;gt+6|y!Yv@7ors8Py|>@#HF9RHQzm&qf;D?; zY4!7$0wZwwHS7~1uIybWh9(qUZBupC>Hufh&Y?dRUU_dD%ZzA>eZH1Xmg#u*{wcm~ zFrG?)?eSpU$B!QauPwC&gMI3?@t)V>(Pn64_6Em^4V8yNaB z>?JwaPYg8l{%*L~1w2OPlEVD*i=p>L8P2=)ySux=ip1xS#4q5`Z)>6EjvfvB(Wha3 zet!P$%j6l~Y8D_UBZt)(kYvkvhk$l}oJ)^t$|tL~Yx?DAxYi|`$3UfQNj%At#K+!J?-9!9;C%Q;ykCAqnLva+e&3X!;p zNr=)*Vz(9CxJ8ifzqC6IqHrd%eSWHSE`|uF>zP!z@;>*G zK{Xm_PQXw*`6HH9z6D84*lj#myCWNHnNV}I+x#NRH8YX({~_zk!=ZZr{%0{}vW!u( zH8QCzWsA~e9TFO%5bj-sNr zg}K6m7aK>qy0ij-<=3)m99NDK)Mo{-$N+g+vSYH$vME+OLzP*)JM99RkPLYFL!XCo zMYHeI6OImz(4o{`JSukHlYS%cJmc7Br+kR8g6sGfkZ47|JR8DC8$e*c>g~6~E3*#inQ|^2iJMDwpkzaOmew5Z7b>X-JE3I@`4Gj$6 z?U`;=6Y!26pAnm zEu>clBuG@g28Ix&Xz2SL#D24%k03!}l_F`7)+vk=;I{g!2bfNNbS4Q;mc)|{?viWH zqPJY%5#DqXfI^^yep~;Q2TvsYhps1z3JHnWxwu^9xY-|Kpp|5|}!pz-w9wV&yNMz_B{Lj6Y;Sr7WRbh(y91v&^w9P*%mYYlF zu-U!u$BNp&k*($nEq%<0F&oGF1^7?*xcr@U5%SXDa{>;jviYnlgl&2Tk6TS6t-m2R zGuG`XnBpXC(;=>8jLB(64h#a;&bpP7@+XSKNd;qlEAgdB@4Fk9hvijPfVH#bFr9`> z<7zL*8#tGF8qlydG(3b6mv;@=??_R3VXmQL>!_BT5aHyiOE~%#d7U-A>n`st$`Vj8 z0`zq2_S7l!MCHF@%S}?+d@%pc-y>rfsNhzgfUyP%h&6KKBkB3>B>`4McqP%*q|zi_ zTl>AFHQSQd;Xbm7r!%&O{Y5qADf3&EK#{Ag~pMdwi@!RdBRt7cqV46Lfu<)MEOaWWuL1?PUE+ zChbt^vCVcZ^9dd&C)g?N(Jnv>d!P&ZJPWYW_uyOQN6+KU!x|!3K%NRjBW$bmG{gZG zOSvLwp50G~3ZqvZ(zm5RJR^_GH=kRxEYi!(%6)I=;7}AVpXN9H^EUc1Bldzj6ZfJE zN)1TLYwPP*RG4pqJS@=Z<-?dOlUR%tNnn8|b<>EZVX%=#-~AE*O*F+MUkna%Z3*eugR{++?hQHL4>@-}t<{cTe)}Y4vgHVf!mt2&j{zYE zmaq*$;?DnvaLBew2T&j;gsbuwp`+VUK-F4|xQh0k_5 z+342zlT6_L(GWktPeYEgfhe@Fu&}YQNCiNYz@EhWubg5SOuiNxqD;pJT)~e$@SFa1cvP`czY1UQ$vr>aucNdGLVrmJY*8 zoScn+nRDsAq)vwA>pA};NV-F4N-x{rQ(YE05_Tsj6d3%$?xVtXC*$QFwIb;QJqT85 z8YP@UY$0QQBV^^s8)_tlMTm z^ncgd+PUR>q04AB=*5htSgG?;#l@u_9?vsHK>iDq;2rFp<$dR^ZrwVHQ!))28S-@C z5H@)vdoJlMv;`LW`AOQ;Scs-pZ5aG-Ky>t%7U63X9=MmeGvgI@NeMSul(*t#Rp?+z zh%F>XemxB6wMNj3pU1Hg$@zEcBjgQn64C)yN?&H5L~RvEtucZOL8#K47u!~5qAjcG z!|M+?6AmAjkrzJm0^F6X2{>P9#Cd7+03LN^oS-!p?9!av|~Sb z!<4I?A;3Hbmrl~6s!OsxQaISNL)^I+><2-sNl_q9uXZZJBy~v2em&P^cXiey9a$_WWe)Jdn4Qy*3b)(GQq-#_hfdUI-- zfIJq7SGG6uFl*GRLp)6`*$S#lKE=qSy+k4ceb(1mxO*^bKJ%s)Z&T4R$d4%|B}oIo zR+&vBr$rN##c3{<|Llxq(ex`^Cw?K?@VI&rta%431%4j*C3Pu6ulJMkh@_v~ktd$3 z0z{UHmN^ErSc~Sksbd8lv4)OaZUPcY&xI-FUbqFC05~FZ+{Wk(;|?tobak#)jU^4L z6w-AH27N4yxk_`55G)tO9}WOPFCIbro0wV1`peLN{y;BAW9}^1!euOm{pHQ0Dt?z){~VlVTLt?htGO__ z_LUVd&LNP;Av-;a$9Tk*-t*))o5+y?Tkut5(_PRply(laqEyvJeY`ob7yFpe=OS;2 zC!MS&9Ul-y1{BnE=#wT_QaD1e8(RM}7ELLV0NsH(d*Y{f(Z@U@IW3)l>gQOs`>q6L zW;|4rZnh@@p#|-LadH#3h0t3`KWD+$1c&9XiJ;I%m2|93qfL(kB88<@G~!y>wy9 za4<#)MI`fDs7Ly}axYRi%0Ph8>Tj&BEjmUbD%66-_Tx#6>{EnLA>@p?A%X5PT=3w3 z54yiVpvZ!#jD;(a7{yg^x-hz^Lm+bkv4Y0SZ`}sZpJGEd&uX%7Y5rB1crE)7Ubn}9 zr1Q^FOgxMNX^OH}K(UUE9izxjKoI`xSST1b4uP|+3ZYS6qL{f`qL{H<054<&_cphI zLV39{8d!|dUkutmvd6zbX)}!!Oo5b@6Uq-VKzboekk#A-!ejn5&j6wXhbc&tQr+{% zNlX)Mu+4vzRWDfK$$Sd+Q0H6htDBEP$fzUchKexQv!kFf+ZPy7Tk0Xiowjs|BGOCS zM}J)hzjck1qFWvvjFH4Qd6Sir80n-~aljl22)cv$Uk>>Y}7M3}1*H1QvcyVsTBaOyKgI?p%ct~B74N6+XJhfwa`eM^0c5Wh)cQ2wV{eT0^7 z(XJ*#_fd$td%O%jetvZj^bs86s`q)o(~d_lfu6OrB}9!w7+K9dXo8zlNIaSM6TwGK znL&Ar1?+`5nkES>5kY5fOW>45D6#$5cKMo$LT+)ep;%4`Vp!|W!IU9V_6$Ih#|o;5 zRIcQik=?Nf<*&kuaR`2^^2?8sbJ0KB$7JI3ARU|qpA$z2DsTwGANPFOMEX7F_QwN2KDuzU*AO1vu+((fZOz0@QINb1E+O+H8=Ps^;*251WKXwQ$ zS8ghnZ+WkzdPvh{goJYa2D6{}g&-oL}td^~W}Om%2UZn<)nM zc7S&9ItyfdFLwZ2PWlvij4qz!feUkh_PFz-R{i=2h2Tm2+?6(Ap!7IFVybC`R-mzE zY>3K2OEc!i?S{JIw?8P<`l@HwCG<{8Q$BowcBS4E=(gUAz30|a$n1YbDCBDbPa8Kl zGBX5W#fyRSwK>rQhpMMjib3Za$sb)!tqG(96ZM=SnZ=bvr2P0S<~i)oC8lxyXN9c4 z%i@>QQ5lg!*Fjd!=DU;?^YaDN z%L-|mZ7=y*|7(&QGnMQ60>RXMP1X6&)OA$mI~#@dI)~2cEkA8TIseGlO58}!Ig;^n zQZzg@1a|x_JZSOGV=x`G_En&KdsD6MDB#oqpl>)8B-_)zT07N3lF8%8sZ~W=2G2DCqy}hXocS-N&w$P6;;Rc=`wjDimB3xb- znFTNG1senwVwGjneJ+-c+cNe zi0=r;&LQ;Hj`wKw>aXOk>v`3CYc^)oZL#26>Ezzds`2&N!+9H^sRS(LJPx&T8Gfg~ z)9VD5pQ0^Dq31}0t9QHeBUbZP8pS~cwE~oky)xibCL}KP(^B!JvEbp~M~6N_nM{9Y`sxc;JT02V7qrR1-!dah}nrCRH=4S{9@BCp2*8SOv>0J188LQ>>@kYg_ z8)F>x*8{Uw(QK!s^gK11)-zMJQTlzRI>)hlxON^KM_Lqw+H}@S8>+)dUQr}n1R5hS z!KN12zKM)^ke=xH0Sm8FNxZUosu;ySrq;bfyiFKq)xuH!*>UgqL~iL~t~e66cxJQZ zh*!rl!RYG{uBofTdl6y+berr ztFXVOiGA7+>E3cEdrDD{FAiNzxQ&eEde46TqB~OKh{&4X;y3kSmRS^bNoUIR3h$EW zrI0Ul!>dWh7$^8e3Vg}4Xp{3;saz&fcmbp1pIAT0;QIW_@q~7p?uNm8RfMP73C~1- zRE7+=KI_mjRngtoZpN&RK2xM4KjYdPaPf7)C>o5U$5YD6jd-qS0GZ17E5) z194C*=!V9U6>U05bu9*p}f#&VpCzK zZFX2Gvs1y!k^1%6%7<<4LUbLRMd7`3g@t=JhuOZ$4|e|_{;N-Zi!Z&Mb%;JXbdK_^ z_nTKJ9bExC zy2i_%<);rfI>0k$PAo7=c~HM*JB416SXeHhu=hJ*Eug8>V6NPI5=uc+vp0_I)hHai zee>a}3?*he@?dN4Rq@50)dVxxNcSCn;BdS;z8F!ZMc8|0LVAi2RDse7apX_TAftXL zaI(|lQGvH~dnI1vv6DH(Z#E(w=W^=?CG@7)bn($}_K#ni+&ukY7fwSfl=MP3dGn6w z=^`hoxUFbnFBF8b}5;>iEab>*(VNc@RB=DU{ILDPx6 z;NAANYWc!BVrT=kmGYk99@1E+Pq6WAaA6<)NcAvFR78~}x%rbK!>QzdQ9zf}#E#I)6Yh z>HDtLL`p-`qUY4;{{Be|omojBn1tMdG0!rX6U6DR(lN2)U}*=uqgzKN|DK6Rb7_-VC7%R2(G(e3a#7qTxM>PM3F;E}sv<@O2j4q81B_ zDVXwpv}4cx){q_dKr3L(A#i=k`$Lg{%D|QDOl{LE3exspC0?>xP^KzfEii*E)~}z3 zdQ6JS{XS*!P0;{zdVk4#wDnG~VZia@6^_)^m>--frbQcsA9L3W=b?Wn+E zZOT)b43BYM8Z|Qw-YoI{qVz?%dHZC@QG&`BH-Nv??%0~>Xkf#SGq!csfP5~`J}I_dF&1vZ)RfrGSnnWq2YL!>E~rK-3Waox8o zyA=+$HA|vMRXU+7L96c#(4W&qFK(Ee^ULWu@$98iR{qBhz~dq-NpFXyQoIgd-~WBE z|G3m6nS1m^LGwge>P5c^d{9z5l=Js?UXY0E)x|IS7SMrI9~EJ-9B20Hl%)q9SBygZ z963ZsyDB{ZQz*t;9{X0kDnv$6<0CFxA+6|((#E4l=Uo?)DhA`u9SsH2X6RK-QE?3a zqkNq3);uEWC)N`M$ZeeoCZ{h>{2($~naxxotut_U_~aD7CVQ^ZAX#4#$|W?DW&o!uU|kU3i=iUPbp^24M$C?^2s&2l+2Sfq>TIZZ}Xn~ z(+EE+xWwGbaeC*C{`TU7JQg1vG!YUi=EaK_JxmZa4OHsa@}Nhi#aUUNLfJmf))D@+ z0JJ~;f5vMzkNb6hNd98#spAlu;M3aw+cxIeQ11N0K0s^c-yVUTT!`@ z`tPUBWpa5y2Dp)RU zyP__+_}#Q!>8TKjKMR4@F!LF_fF&LO_IT{VG2npRz=(am`f?ZO077Tjbp0?$wHa(Y z%Hoh{iGjts*W=~l=YyIXjU_`dhmjvgwWV?BK~Ku_mlI@Ljd93?Y*b#=c69`tzs+>L zJM-1T)bZe*Lm|f{#=>cH1|@MGvwW4AS$NfNO7inU2nj;X(KYok^Q}Y$e@>dCg3Mcb z7+m6^B;)YJz+1ZOZQ+pI57idIxZjO|1|@+mPXWO#7L%CWH~lSXJ3kwQ)m7W(RnnP0 zgc&^%Ju%5X)|;!}#cIA8jRY?7JVh}Ls%w-+{&q_)lF9&epIqI5-@YQKzW*)y)Jf5 zF1V~ricaO1TsZtxUi__73VRKCrojt=T+tLj_L4qdw%Xh-<9+wN(j})iYwoIl$3HU% zYO@k1VNZUSsj4{w9Pq|k;)A6-b+bZ2($+p7fbFB{_bwTl-<0R0=Gk7^u-cH=THQU% z?Fg{2%*Tw%e##yRX}{fW7XRP|y1&?Gy_Q?MzbDRbd&B!y3(Dzv6*ZWthdr_Hy~xGQ zTXEj+42KGx#yj;#eL8CckgJ}3+{o23@YbC49M@^80e7tA`9CR)nKbsXM8Uhr+hO6` zhM)fU+<%cVCXc3_wuNhg3%5UhOcqT1_`}qGSXrHb;^$k7*~LQ?v4ukiY;X6&)eo%+ zqh~cW)xH`O=2C{?ar;ww!S4I$bU=wAO~b|}VQ=6;tc>I}_cItn0w+Mc1$RUDW8mUn zol^PJa$C#oEryIfO7{~RTV_e%sA_qsl4BybZHm6*cEMaFb3DZ)dfr>SWUKO9pQ=lA z$&HlFmbnG-AxDovXSv-%+vot~OmfRFf8r#i*WQrHJ2m*$`G^^z#3;h=nuDzj_V*!s zCVsP5ANnW+Oq8y=#Go@hYFu^ZOAC%Xqn32W6i34+Uq+3`gmnTw;KcVEsTIe|?#r@T zb)PgKK%(XtFWR~6)HcIz#R2w>)=shYsSgHl@NKA!eFDo(y_VOLi5S@EP0k36|stww=SNoC*7E%)zqQ}oROMd({tABc_@u;@yC z5E+|`PK=B##*Z?6{xL(x=S2{y34T3i%5@DF`QmPr%wbHUM*DfGM%<@WIIWvLjLtG< zUNrkNdF8OLEuKLC<0Rj0Im9LUSO|k>Vg(2%sX&UR=@)M>HBy!}UJ;j@@8_k)yV|UL z@2nKZ`*R#_{0bt>r-Bc<_tjzyvx9q8rN7Ow{QLr4Z98o=^vGYW<(&|nG#ERN%1#p_ z{Eju7CyWNJBb`Q&e`^<7Boo}1ITC(B=;qCiKfeQhwFsYxw-c#H1tku0O#us2x zR}LT>Y7Gw`ro&f+Zd^@rE1hv%X}@WvAmL?2A(7G#q^4PTr&@GE_aotHIf$pLedkJD zT8(Ay-E!OFFu?^GvA;amEq}r@9Gmrp5${N*D~Pb0QDzRkKe03t@FDTYB2U55EnGmQ zOUnqwF121LGWL#G^)L3&dDe7@*iTa-#pvU!vHH0` zpHN}WH4phA5+unu`6{=)MC`GeKVKw2XrlS~I?+fb78C!QGp>-=kVi0x+|FbXS+FPj znb4tmtC-bD*HacpQHY(Lx~XF<@_^~>Qj;KG#2r5tR7g%JGg}ndIEYjjfAhiNhT0X@ zs4w7z#B9Yuu}HPQ#AtO7{qz=7=SXnO-!mXV%{7Ej2i-Tw6rs$Ks&0Zk4=7Q++8gK4 zk#Tc}yG@P;u@L~S+@@wr{fvzR`lpZP`;wAdRi!d+-eG>GG)SxBzdS23Gzkf-L0yx2 zII zIR2isTf}7fRnSgLEt8X4i=OJ^f~Q!ii~XL@q8Buz7DU?fi_~{|Uevbt$J#8F9>$je zy2!=mGdn7gN0!%?su$sX#GRhIw_HhjoGkA&7;w-qYtB5q1jaOw;dLr~a+E!#3HpaA zljN*pND?m1WWT1%d~%yne@XXPMI5}}Q4ZGhKb!``HJnH-MNc*ESnHal>=od3r=u? zxt*bBp}X%Nc`Zmmwn)X-cty%o7YRhrcT<9q?N+`Aaq@d6!dxkZ)Zw=auh~S*%Tx8lYjV%XBy|F z84zWkn&A1eDxV9dUn=?H-(7?1;NaS~5H@m;C{f&32-uX1g@&AHgy+h3r<)?n$02;+ zP{$rTK0+M6iD$~_Wh8~pk_JZiA^I(*>8hwExDKv1DkPU7n@8~rco?R(CTv_h3;riun)M*quu}kI;nh;SyU0PB2@SQ7-MeT{!_pZE} z{lLx!2dP$O9hz@YdOb)0zcBvT7#aRf#FWV!15OxYWVNlKMR_D3h{T%IoXyT+q!uvOgz>zs(0 zi1r1e&gem?V^s6{_v@uFKC-|!hWzcC!#260C+~+j^|5$=O0tbUv0!+;t#9jfj>EY@ zM<#_M=*n(?tk$6Y^f(rIj@8H$-&I^;IV zThlD*qO)Hj$2Hw?s~MZA4@Da2_|@p-q5zo=(G#Ah_pE5-|4m zxNesNoghthLtX=6as=?QnY^HQc;w2B1xOBsuZ&^oLB z=$TF6dRyw$O$N;LF7=+h#isrfbBJ@uxFN>zM6Aax3=vO7p@D{ zW&=Tut@^=vpI)wWlEWjHGnEM;r-_t#Zez=7Q1${-Et-J3!cfkP=+7~;>Gk!W{%#|y zV}T<8yVbA?Ug?0W-{y8YZjX_wD{>FvvQI|kJ@61ez-!HTouPCe^?OA2?c1wI9tYII z>ZnT8Lm9H6fPs|rB<*mX`Q~!R1#EtePmLD9 zPXpY8*Q@0q;56(wqC1^+M30LJ@wWybO-K%6!KbY+KE3c`C-V1$v)q&=m+!ZnC8Z&X zLk7k_dXDryyCE*-5P8WPRE1pc){{ck{_O_RE5#6E@I4r~x87Nly|nNAoArwO4`Y=j zsA17Z=&vBbs>7eDo+N(mJ0efsOLrKUrRMvpFRF1+56Zh;dvyx7CkM3)j(hxSianMr zebUovSdC=@^7cW~L!N{eFYb3+yL&d)4j~BYaY#Uh~E86EfAk1Zr?WCbFX6X3u3TT_7XA7^|zLiVw=g0XU-^OZS%$ zKv#HoE!TBw76w5?=oOAPk0}%t}-y+ll6% z^p4b(@Bv^g0o=>azMr>rj3ngkDu;Z47@~zfSnEId zF@bYZLBO;5d3(#G9l#_p`Rp;5;yn_d9Pqna6=-4zpE(mcxzZ0}vW>_w0L-=np(k zqy(5vr7bY|PlxLth*d{DNA&qOHB!nt0=zzC6*1st zdsPkV^0BWhFMo9>Bkr0=SXocmSD(SHk0(lDKTok73k=-b*$}y8jD2{JXIR!qg;tIn z08(Af#XNZr;Lqwc_BxynstXEe5MWuofHFA4$fr(m+uzRsp*ct1cadqfmnEl~4%5CW z2_f*JBT6l#pjV=39c|3OVCtl>PIkNO=?!odeR^@6nP}~C&uzkg3tp+x z`!4FxpF6j>SbQ5jkz|9>VdXi(JZ`=sa*ZW%h>1^7kofx9MQaB%AP9gYf+X^O zr~HEVaq;Oxop%=gB0u6!E6x zWe5hci%Sb;0X}|Q7lU4Uk>?nDN}?c0p~Lp-VQ?&|)e|U=+59;a8DKbFXo}5uCgRQg z<~{sykDd*h_w2){GZ_mg!qUXF6nlv;s33cV;AB-Z882gU%j%9nUfqiBXFMtH+0E`Wzy8 z6$1P;_&$SEeGCtWGPQ=dC6br-yIQKIoG*=_I2YZr-oG9~>k0r6<^`)nnie4)er5N8 zZdrPDy6Kzh?0YRBp2%(g=12GH7*DG}Y5+`oQzg=BVEJ~gb6+d$wQ6Hp5}Yn=Zt;7O z-d&hVgWT?LQ3nTEHLM04blktKrEH6Gj|J0}8(Y?D z?lW_N4G$SGyP*^U2s)ESOalsQUygL}rhjr@nt*I>^!$9L`^+@O&W#}Fx&F=pZ%*mh zTZOO6Y)@J4X8aCYitFk4DRT&xg%du_83m|@uOGAX1)BGE6h8j&E}?z1)Wht2N?`ud z@3)^z-6P|Qoqrf#P&ljKAw#1Pu>x)k+iKeJ;BnVJn@9Bn&yJVB5gje}&7ir^{Cp?c zJ6n*^@Bz4g*!!#S7s(hau6ABvAUP80l69hIRFh!mZyAo zWPEibsB%tQJlelqGbVt(#8COp&u1&nBZaQy*izhk`Oftj(SqJj3;jT+3@>KY0WkmQl)En9cv?834w{~V z6;xtb!By$;?;jhc)&AZIZ=c0?O1S^|xE^7envyszfhMqDb~YV(eD^xwvGhv_)8P_E zWrxmrzmQgq;X19?{`|t_1Hs!>*DwUcjY4u~=%K&J8-V?FVA!H#c=PVv2Q<8r(U55R zKwMR}vcRW$I*WX?``SWntqQTa3!MH=)6XqCEMA5rvuPzS8Tn42cG5yGSB}^^!DRyM~~&=_w%K# ziN~ZjslG@s@|2elB$k}ojEl}+Vve7dTlbw?FQJ5kcD9rli2;^>PVB)+=c&^4XSeI2 z%{p_&4*PmnuW9sz$^ecuzg|o4`A0A;IkyM&wd=79v ze*sUR*n3WgY-o46m-A|3_TfeWvZrqAz$QoTN^+`}dnZ;Gt1EE9=0f)-7{O zoNa;1YkKMS>_i*{mmi?m2t$UzbwFVD11osR{1|d_5+587m}B3Z&Iv03tqb>l^>)qD zOZUigy_q>9Z^=|qPW^$7p#YT#rG_n3OEwQ& z-K*Rcc5KzD2FXDe2=_`wsP0Q5>{i0xhJdC|z5TuM$8dORylxKY05VileuK?fYU%9M z>{^C>GB6;Do}$>k3i|WDPu1=Udp2B4ogLu%|5|TmQL==@Crt>+m>|H}oi}=@v|vZ= zPd<6X^q8-F;PiQ_s3o()tz4(KZ)YvLepnZ+U7fg)=MwMRQAfm9N;#yox1Sq-QGmaE zO?pIh0`jo)q}5Nwn9opGlGLx@iALs!p2xzQgR{9Y8ykaOK!a=O8~hJHtT+;m#gmsO zAYbNxw6&?u3=PYk&|VpS*zmw{rw=gm`%ABw*9=kWSrooJs;+&TS0Z{`dmcD@p8x$T zHP9ct;9&GxvQ;m8w#;ODB=6(w)X&>b{%Ft3|ExOUe>p%&7JOT!ZV)H^bK1NjDsCWR zP)<1J)vwewR{nwcc+lh>Cl-`rss1{X-8K-FXddqWGxtkR?WDdj->>f@zIKQD`0zEA zl_qD$Q`_tY%I8{l&dGU|H-N!E>do zRRNA^re4fQ#~%glTL_r&T^1zMmbMZ~{dcpi4&?s7Z$bUK2z0q?efoj))t^SHm}%uK0-M&}H_$V5Cefkk`*4qi3yaarwLIhX?17KB zC*;vxui-lHZUpwsnR=m-VJV+BACBd3xUl4?+ykx?stwZX+V=L&+$NQfVE!z^{r|vB z0HXb$HJpi^Q#^`i|A%=>TThS9#G)%8f~?dWR8KI2bEe3`WJT#w6K;V$-*&|_VDWQ~ zy>kobDwPvab>92jXm%vzK{?oB&1#NY%R6K{Y4)WSE@Zuu$?UuK8;|DX;@I6s>XqyO zV*QshIo|X03rkDN3&VA<`Bo^T+CPOyfOJwI78gYT=UqwOw{Ip-@j+@5Swt}ZgP+|y zDUGW=!Vo_53nP2?{;!tEv$o1uLcw@iW;Yq|8Ez9LTt+_Ixw~Yj#0|w)z)!Xr@%T5z z&)*xm_Q1a;V7oBEb*0X8KuX_XsNxzSZ%y8&Ah#kf)rIS zU%8jzxy0c<|6`VWYZYW{p~z+47J#Fv*Wr#hylX1F$e zoBUM#nm}b>e`p$zjU7Y-tvsG2;LV?oSy)6DBuPO-GF?f&i$k+1ULGFJ$-JgjrCz2x zvJ*C620uwaMx3zbiBRMdln!yItF^JW(&=YwbshABUXJNTQc02x-{gP{Kp#>da)#tx zJc(rrEL6~Np!b&rxzEwX8FH+WT-wU)qL*CrbEI5OS5NPq6wRrUe!W2U;>FF+7GR0w z&Tm#Q2^=UbG+d-?&%7Ey`(OLYmeW?zc7Z%SoeJdF|b|PW-<8Q#?>n z+L;tWBs^a$0g!vkeC}L%H}&GZU{GtdbMLV#YMxcIoZ(|9{Op?q+L|4nBY9qMWZ0Z1 zdznkGXi#GMGZB26ciH7I_#@klpeN|#^0riZ$S zsm~3=ZY}%}Us3&!qaJ@2svia##r~bIK~6cqnut5Kr!IkAMa^o&7>(94pk< z)dP$XN|ocgmk_v}e|AoGpZ^T>`pUzHD#Tiln0p0wt^)U}dvGG3k(gMs0fzNx$Sv)2 z+Mj$sHJXkTxpZnxkm_D5Ijsf*y@dHPcAt=bbC9l}N(i7(XsmfIkNF80*lPaK0icn( z*t$t44IYWhj{$Y30*0WDR(CAhKx<>WAor{5-=I*C_gbW6)lk3 z6*0veYq3Ihd+gcZpY6-LQl(!U4de{k5SH-YjJa{_-H@N3JyLrLkMs>qwi8%_lZS36C~~h*aiyUM5=WCG||$z_Q=}ZMZ@{@Sw{Ta zaNSiYJ-N1y4k;NG4aZoukaLzzKx+#y!N*9XE?=K>8>sW&69l z{G|0Dl9vHXT<^c3T2T_jg1n5o%csM)vt zB4?UpNMh-yt$%0)Al~*s-E4Rk=ZvC#g6Q=POhX$ycXp0nVe-!PM-rp`Xg2TWv)j=if(sdJYkj7iPJM? zKBkQPqh^%~{8I1A-x%DEeds(fb>o_bbkI0nFyeW&Db*jO04$5X&VSW64Q%k41cm?s z`?&$vF+t_+#lcL^&1!;f|6mwf2H{GrQ4Gh&ANkH?V?Iyoc~UJ8kZJx6r1kUHN0MMK zw<^hNxmo!hxwXr(?wMIx&C`y)OG``k*Ub?*iU9$YmrlRwe5842`084S#o1>;oyR>z zM#{>b9R(e?zeiFXDxEf6{*hl=+W&RNtfFzdKBBEbhOGiPBlSaa_va)tW7Zf~f>-77 z2u@X954M`fLog8BF&&cYa^d{$>#rl6jVO@Ocg9WYSr^ zTvC}VSU0t`JCh7qZVz5lXD9tZu@mTl3=q4RsiWiza_uxwh!yKJiRIjgNtPOKc=ALD zJtX6PqcMgTS;K+;1LD5All8YN@jl8q8_?+W4Jg3}IaqjZrp_azL&^|6XOa&vgQwriKjoNUUKE^pQSb0~cYqC{?zx#xMhwz&OgzSCz;hw8>AT;9S0rM}OQOjdr=sq6`^>7xFtrNOTA#I)i z%UVmj6=1X?cF2{KpeYs5agrx(mI|nF7|KBlY#I_W<~%{_7NVmCAd1=ALd*Ei&^Wk> zr2J|;T1y!MQW|t&N*;u*W;z-HE6exABk?`E~M z`Rne9NN;RodJyF`Gb8ZbB4|=!_v;p3O`6cXohcX!F~W>P+(~2~`SUbJ-W^+V^P2NM zm5CckSFrZ!5sCDAT@!dB7UQn7=L^cpIv;+OOrxjVM|`>AcF+X4oF*g>((40FZ93@r znmXvCnb&YXUS~iLr7;fgBf?b657sXOyI%r$-a#hdpS?JsK+e4-2@pwRpBi6Y5Vz*% z%>Z|VeKsYXRwYZ;%+SIWWjGrvf7ftti(JooGVb$zakAZNnWF1wu&jjgp6+6^W1-b3cM#l@#1r2NCf zzsQ|buKxE|Q9ySKysY4T98Q-uG{7@sRA_GuE(Se!A{;IZz&nzmc+x-jnS{}v2ks+{ z2OMD9#V64KmQA~b4(U-nG!ZDNeB}At_;H9E%|MSfj80(Fl#xt;l>DD}0{2+sIDhK@ zd*mC)iAZoNXO0E@+W&qRWk@lg&rHuk0CVlXZ$d|46vB2L<1t5L%$NSp+y6eWQ;dU0 zNE-gz^7DUNBYjY;RSyN8y#L%JMwv!dPgM{(?@EsHSD`i?P&*H(n+Md3j(<7h|GZ$@ z+8UT!_d70$7`Q^P2M0jlb>Janf2QVOB6wdx5=|cc@^4q9fvE$u9bjFd$B@*r1`HS3 z3i{7$bTuPDC#gYgPXNE4LQ>X=EnYQFkdFAb9VWDPu#wpL@FYpbF4|WBJ^uGAFc3fw z|9{sl(swwPvXAqnRqwEv>%E2RW1u#Pv|L+cFqy3o@1Cjt_ zeg1tjEfOCJ{GayuEUx`$gm$42g0x$zFmhqVU$(&h?Pyj8Eie_iW7zHSq!yUQP$+`Y zx-+$Xfi|E(Z9RIorlK8D!i5?429+7QaHlE@4$>R%B~@8L93ne;ywDMkUVbrj^EuEwVwe83$Ne4xM33|Nxnw2!5we|A@D zf+u1wo>JkGv~B|>q*UMOq?4+#gT~{Pcglds|PCN8`s>{Ql?iC3N3;!Ow z15%vTdw+feQzv*G?CnhkE8o1K%OvjpS;7%}9&V;u%D9fxb?i;ICl?eHP$v%~yFh3C z-nKi>EkfrCroUr8@CRlmwzUdVN(M}K%NpF=-S_6d2JFmb1`}=LWPe4it{-f72H(F) za^dIkDVThpnOa!(B`H@(P|#=dr}sh5AWirb)az<;azv!1hjs_7fcV9@ct?uNOnvU$ z>?|g7ZJ=hqFMNRrq`3>W!3UOaXfptXnBDHRJ#T~>hg|m{qx#WZ6R=pGbty)Y0zc2~hy8w5uZVp>fi~mfXh3iK z9=VTNcG(|ft-6_(1x=I-=;}LC>!5>6AiuUq`3dMSo-4bYrj1bGNx$1{0lMhsv-+bP zk!!$#k)MyxVwOmn@TWBK1`ikBeZZnnBefz&E3PHryz!3t|D5E`?y^Bs>Cpy&WW zua{+?E&nd2EVqH0K1bJ75jKRTc``9_gkPN){EF854QSU;fN|~oQSj~^fA`^Y)Gcl$ z&QdDB8!wWQtYn&`us5ektm#&ilapJi+DtXsuNd9a_!h{dht<;6JvEYBP@uhjYkq#7 z$b>)6;k5umm;bZ@#mqVYM%(DsREVAe-h2u`Ej(aLNNNPQV10qYfpE%zd=ckyo<*J_ z+q9sbwMQq|cVtB)reA3RE2kB7Qi4k7Xn1@uwKxzItj4+PY*ssEU<>tGXnCuuit?nws9}GL^wHzGJD_dC(p3Jnf2=@we9%SQvLN zt@!NX$t$nnj~J_*e&~5vU48ZR4F7?Ly>GOExv8$s(1B6q^K+IFjj#X%F`R_NFHjxU zjx@e~9l@)EC3Wj_lmeG$$B{}y(**Ep7v$wlZyTGM#=6=Su-{n+^L+SVn~M!CJ^}~Y z3Uw>52M?Ljb?Kj=A%{|*@A7hpnw~W1Asnh`tD&AH`YAKmZ%&oR2!by2YU@*wcFdoW|?+VUwxYu#+##$_Z1o(l9{DN zq7Uq^PfYWqq%iJwu!@@xEdMNo8j!QPGpd5elXqU4hPA78ejOCH?0&r%bL^R@v9(Ew z?V80$qe83bE%&Jpx3+G^&N>g5vj$t=y=!NDLrr6($fmR9W+r#?i)$>$O$t5Ux7Q~C z5iNlFPK zB@IeQNlHqJ2=Ddt{k?1P->hNHbMJXh?z8texNJA8K8oqzO-;R_-}i{15Wa^w;^SW} z4?2Phx&b9Njj($mDuzjc;S(TSJoJAWcr{b`n7kAH=2y&T)s_{|y9ER<@%g8hmzSVj zruXO(0|RcAbTH$g;$uT|KE5>y96X1FkF0k<(PyM<9D9a;e?Bq0vZGo@-%})YjoD4~ z(0*{LOgtSleoqvNy~H%LL*4cpdMD*p81TyMBM8NG?2f8XV^yKj`mWu5oh` zKmTZJJ0vW;rkpS_r^=AnVHvsx7@bL%mv62%<(}}~!CCE3@aQ0N%^!pGM^UQy!-Gl3 z9xV#XmaN(&(2(^geZtrdrOmgU7arz+Z}H&R_c#&#&L+sYy-5hRS26Az-(5GbIW+;V z^5{{PxZfk$_{+EaXN^UML+z&@%D-e@hUi0?m z{Cp@(9Ju!r@0-hnpHwt7(e|WQ6tUymQ0)ZqF4iWxj=erxo_qIbYouaefv0p#WG71i z1)$xd_?MX+3>6pu>6*G61dqqGtV!e{xVV@|M*wHsJfl2ablI{+FQPZXQI_6%U{r0peW)0Z+Op z3$GaPmdn>pXDy7@2;$EU&c)%(xA3(X1jugHB)}X(r#r8A{K@f%8(DrSn0^8@*#Uc+ zieMk{^|P-v@}}5FSsG*lF-n?aZzBuIA0HwVUZ43|RzUtK*HZYrk#pwFY8f*0G+` zBJnR{Kba(&1#Frx=~VAsy;fm#GgTg6y?b&$N8E9B)*|FtJ)I=Jv#ok8Z1-EXl+S}9 zz*3({B0!eV2!H`pp!IZ|!mW>IAi6-?*Vk7Ee%A!zJQ4)KZf?@JzYOB8U2pkR-)8*! zbCdgl->srxaN>qLQI2I-{VNR%!5<3hZ?;S4N@q2ZL5(a(2mwGr*y!qzQ{C#O)~}&@ z+)eT{pg6$4c<(ylgI3ex@13s6xqxBb!yqYkrn^Hr6_uEj< zX5+V1vt@(kT3M9`cS3yjAKvt8MwCsmPb}a+XC{wPlVoP)61G~!HWq9@`gD8e)(-X0 zO9!KHc&Rul1z!57!!7v}t4f0D`#?JBaDn8Nx6|*RJwCpjm7Dvje@XM~2jmNUEpt^;t$v zRXWdBZ8@Qs1x2GiwIBNx`d~$Ys5jHY$!t?$2)J zzhYuUoVj0xQ^(JXc&x58(Mn0HmEPwIW7nTFC4A$u*sA$f2&c1;YT?VP%PEet7nU1a zS-ovU{CC8bm$K~0u3#Y;$~Mn~t?_q7HKGjLxmp9J*ow^BStrVQ;o+y=eYE-KWU28# zo1AC00;u>!8pvn6-H1JVo(G@PY5$rG|8-G$`L}zAleHB0KJ*3BW3Ua&r9FPAt;gUr z(_jXh9oo=hadXW*m?>S*LnNhIT~XwT3}3bk?RSa;;uOSAzYobjP7dR|VdP$Hakl@t zJL8T~?1wwLG;@8h|B}<4Yu4&bZnodH6f|4tn2fyz(QP@RE!S=EVY-@b3()eBc--8f z)0hTE#v@sx9>Z%-ybr!795JI^En@f>TTiWSoG}_p!QtV zbpkJh-5E(p#HDBqga4Zv*z`dRu&<4O9bCgMITZ1hH(mFB7h?jie{cHU-V&qL$Yl@{ z&TnuS$AVhBOY`%OUfKPNOL+f$x|ykULP5EKa91Okbh;Tq#`e!>Stz*vLFtT{E?fuQ z2K1e%I$T%6>_3rI++ToqA6pk8{%N6S^|T&>7O$OEyL$drI${0{$(wswv96-^($@a9 zxFppn8?bupa`VYWk$s)0m@i~JY5V{IX0{0iLZrirQTeqQ;Tuoz1NXNi>RuNo-e|)uEFA0q1CJ42YPe#lFyE;Jd(#VoK8U6r*T~G-=ib))6+NywmQ1FPFUg@XG0_ zL{^zo0%=x&v-60i<$vVN@!TV0rSVLY`1M;y5|zsmJ!=|y?bT=7vTi6(W5=P>J;KQt zcp`qgb!}MBrP}cUuB`Fv?^pZ6IX_BN-U_KtX+nZ@Z@uGg_1trcv>f6zJswQqHgW&+ za<4HP|B#rvR8SHrefH<{AniV1UW0TldYcB)2cfsjxDAgs(B;b0`b;jZ-QF-&(X?rGM@MLNvnP!^V068^(=z-k@-NF5K2DgB)5bBMI|>{`^`SNJWW zz1U`yU%U3qg|VOGo6ryp(^$Z6XI1)!4}t%QaD^}|X{US$3x*XSMk4kf(dOu5na z=AFG_I;P8Z1|C4uNDZvX{KFNOKV-?sL8y2$jClXw<|kX{BL%#BZP=F&?G-+g4ZoFA zIgj0%uda49G`Iu9eJoLmX_G}jWNY2YV7C;M%KTq#LG(so9}BGT*%4%pE)gP$p93W! zitJ@k!9Y?oyznC>uZ6z@C&46i`EjjfTw}&9z5&x}bkrEB@UWW6#0x{5BM!V;p=4Ga z{@N>&b{xajT4GTylvW>xrMSuDxu+(z`r%GY+g#UAK0|{dMbkdyv7E8>M)u3cO{8*H zWT~5paV&=SuK0YTBS?$n5M=5A%~X+#G>$X)YW9pny6#%9u9i9u?sSA$lZ~mr;JEUR?L~ioch~HHc#yU)nDeM`}wG zJ5=!MQ)H@#YTaReVf~jObTwAyR5zD=cod~bEa>5tIY}%TQjv>KN}-BZ=po7GOY!{8-854NY4(m0vSoB2yq{%ad1n!>iEp4{O8*y7U8QHrV6j?q>4X@!U z%z`6@^U307FrS%I4P{?g>~IMTboDEG<*s+9T9SDz{;ARok@h9SyL=vq6}S5RWWT@> z|I;;~lqN;WD0^>IAw$%5=T;Hp$;YeY+^b#@#7{S0)j|2jx*avdfs=;UMf_^r4w%DP zeBNZ*&)C?Z3$b3r#evzeoxbpzwLw*^?F+PgoQwL(=Db-+7FwOmrJ$oQW)$NWyj_&` zgIQV#SX7iHm6#Y^zL} z_(vlnLbl{jl+~1HLJ0k+f!n)qaxmy_D9~R1l7Ml#Lu$}qYS3N(c4aO8###a69)FqF zqhr@VC0^cfTL(+-Vi{KNm41e=)!qNaB82jk_HUj)%~h3V5CQao3GFeHitL|V;kR9> z*L2@SoL5&eV;o^2Pd%2+gMY6dmfd#b!`Y$5NLth9S(ifEH$6jSPx)g`rd0fu1&pQ_ zAs?d+ddKn=R~m!&7bLQi>8&j_g&9;rdbr+on2_=APC!A*pvzytL|%3V@Nna!0BX1+ z9mcf7N3bzZ^&QUvKjXzs#xCqDvc1if;h3;o&1VyFBNif#AUmCe@wR(;d%Ku31{Y~T zFDMfq%*B^`_W?wGwCvf}R*czr^TTAMBqS{MAy@|oQC;hKlzF}XVHFdrf=4bPS*wwo*ADH8rKD3Q% zOV07^lDj@4EusRhvvgCsJ&NKTjB(FU=^U-tVfe>b<>ZZi@Jaf3l_mj7NKY5&Ds3(b)Hh_)wkkjw_8M2>DGsqx7hs1hDD(J3wjnXuR#F|oRGgiEi@&W z|I3hH|MrAPJN&p^-OY}<>Uzipm4uiixHwPM8)+x2Pc)LVCz0XReftGO`%XVTy&SY& zDH`ghXDe!{SPBN6`oG)P8O$UX{y+)IUHgmQ}Vyajgd0e`b8@>O>0|k zZ)9-zym<7Y=Uw+NH=Ro4DT#r6K5=GcI7R8Vjn$p!k}*4E*oc8Ck-L0Ig|c=0f@$mR z+=Qz~1PZz$&N$hIxVJvu>QFQ<)bds`lj~wm@7FbGsrVHBz<-BThE=lHH*GLeZ?jO+ z*5MQ@TgOs3Ew07R&slszF1x_|L9Te|?b`Mxkt>y@D)Gn=XR9$1|8>y#P4B+h!F%16 zDVGJ0IoTHcdsSi}YZ3W#HnYEx8~)}k6k}5tqVtU^=<>{K8#1IfZ?s#5^06U(b9q-ef?*EmR5SYD4Rl8Lx@-!gx;&nqH=Oo>1}#MXr3xQs&&i5se3 z_@3U~M#B+O_r%EWl@-BU31K$wP!>hV6)@}+y&2fOE{Ya+vCvp|?7&I}av2hrn_nDQ z$34e}5lgCyun2gJh*-~URU2_c;w)=*kMK9uq&iEhKEiqbyE5Bo-p5U!UsG`#HV;_a z(nUzTBT%#bfa8>>`#XxrX)-m$p+NpfemaFZwO-)1;cj@1lR*qrI;qRE_*v78jSg2u zkCSs9_4;+ecqM*h%`KSGq>hC%ZErZNIxBMU4J{(?k~nIjacEn|e*!vJ zw1F{er>)_k*1UZ~72?=19+&nhW=)fgZ=I9Qc$D*p+~gfEBha&Zz^UZ1P}yf0(TnPe z)^edKE%CcAY!f)$;L?|r?F)=YV4^AC{$8YusJ9P_7WG93RJSbpJW^@K~kN7TMY9_%| zZ#?5X$%9tA44Z$e#l^)H3Yc3jFJ|2}4;w!Da0p*p%HRy8Ylr>h8dSB+V(9fpxYS&mc2b2Z(P#@&2oqzFNv z>$d^4P%PNg^b|%Z*60bjVzst)#``2KtNf*Bvh0%{0qE%Is;!1<5Fj9U9D84LrS9z0 zUZ`B>1=b6g&SDi$7AR38^5!>ID6P$m9}%xIF4#o(kI3BTlo7E-VZM4TG_ks>ND;aGGtG(^}E?NiwJIvo7 zgmC|)k~Y0CIo}#reECuPk=%;!^Pgd)KLxUS)V>JU=F%@&RwlKN`DR!a8mL&O!NmbT z`l(0r!60Xujj24XoCdd!RvuAzld-Tk?gZ3M7Kf_6ZTN5zMPxV>hr_=Ll3=s?p6%Jc zDR5g~EzxY2sw4n~ZSP$narT#gTu`#=)F;dOQ!Y|EUTKHVfHTNlySD%)ok`~$IGQEF z+Hdu=q1B}N-C&NSc=Ppuj@op%q-jVvJv$ru&AopE7*^7>Qg7cKwmmt+5_kDVVGa$v z<|CfVt<&vE4z}m9NIG%Xyc9+X=uJ&W>x)PKXF5VINWEX4NKhFR#^=4bB6$2EpzK?{ zz4Le3pChE^({}_@>fiH)6&Znq@_2(ZA9f`tV;t<+wLDlQ9=wE|f&-2{P(gSe2DZlq5{5yI-%3RP6B1LHx?q?rdEt~+!G zfv)+{Ao@*%mDIwS5`S)7@9>l0HsqeK-CPJnhE=NQ&lq&eN&-J#@AG{;Uw=>rkM$C| zX5$ZhgOmKuc87kTsKPiBN+$2dM27x`nJIrt_@%=JooXxUj}nxhR>tcptx^tX7D#Vx z_1^}^aWNd)JSTM3uzrggx=(5gQ_yh#CMjRsRAWZL&uk1?*?In(wb?`4Lpx8svTeEV z4xPxGf38OrZ^~Q}!mnuN(Bt{Lm8BIG>d421$SW(XaOBh(Q8R}#r*I8hw|Va{;t518 zFRhYtK4#?7wDiw>^4i`%!b$Ovr!AAFHB8<3cc~^Qvlk5}^A*Xee?G*sL{vMkBi*(k z0?aJ;+1$*hTUVU-sb|)!*)3kE;ce;Q7HdrA6CXUwW{Gk29>pw)ekS71l6`>1PvvFv zw?NuHSoi~8)FZVeQ} z-Y>xO6@X{t;Z{OO! zv-8}#7~|G*`&4_psr)oTxd3*xbj9M?#n`E>ohpW~^p5~f^V_da{QKlsY{8AsnAk3l`t z2hxBT(8d)!F6ZX!@Eo6jcrmptw42u7wX0-!rG(dTF!p^U9yfBZ6;3^P0Uyvl%*VJ% zb}eYbp9wzBN6Tm?jj|+}wh5+UqTZ|bUV!o6fs-3PR=>L1A8eC*#61N@AKSh@VwdkW z@kHBEx(b6OvcY|{$o3t{AwHG{010V+z$5&`+MYhM*k}YnLGVn zG_VK${n-IZ0r3kW5mR_aIw6G$}0&uL(=^Rr#{9p)&J?9@946xJa<9i{8Wka_QH6LSQ4y zM;nhy^LE*H$$?2I=q!MbjCHrr-%`wUTekBM_smw5bz5GcfCrKgN~5X?!x37Pf;b`B z5Ux*WliQ{o0*4dngzZ1Ok?r}Dr9GnJ;}9!pSm1=LJzFRC3CD?>RKjzZkPRfpBI;sM zAnf8qVk!qS%kK5i7G>5Nd!qeqM=b=Fq+c#`OT1i03fs$?+8d~Z$tkgqK`(?HQw}r2 zwVWMaW%zw*H;KU%2jS2VA3M$>uQ(#F0{eud9zMu7Ee?$8bGqYiDX;w#rq185y0Q_|p4A0!0skbU z27`(Ddq2JJhuR^R$!&mYzeQd$FBJrdu+_BkI38{#&uSfQNu-OhcZ-ojljfj zR&@`Cabl;{g{hL~xr6wh{E`;u<}5y8Up=oi#FeOm7wjZ3pv?8OKQciXz5N3Z6T9<0 zktwzb90-VWjooqB4t`@lhYz}uyD{d$oMMmyLq&^u#2xwqANkv$Tpr7R@VV&^H$u%p z)R+;x6|urf_8DK5yrdp7(Oe=0Rc01cO@r91%UoIXKG&y*_`E&h5A}&HFHv%`t2mm@ zz6z8c=JJqQ1n?{hGBqCg$8!2QeLCAn}_Up^c{e_U=4kNGn& z!{9jlSCENpC>$67X8HfZjsvC>^qM1ei6c>- zteC=WwDQ|w9Ff5v`eC6`M9a1%^c_)zP0wb}fIvbI`LYpaz!G6-LPze}T=>9;EaFcW zIusUIp}hVb>Zrz6+Sbu+#Zm*QP;Rx5Y3Q#*U25Jo0C=WYxg)=sM6WdXn7}S5re4() z?}UdMS2<3Tqu}e*FJ)Yj6v9&2+#9|6-EStLXi1*W-Y>>Vji@WIJ)oO`l>(+Pknem_ zp)r_-W3^)Qv+8JpsjSYd+oV7YPU{0JRh9g-ykaLp$#^)#_T3Ry2te*sFEw|RIFM#( z9^Ti@$h$#b$BsiYCZSl5?`UurL^pdv49`p`3V9X^#-12vJEy{tD*4IlJhz@o#b}F0r{1 zGa1OKwLHq}kt)Op;~@s8mla%R*@Jy?>-$Tcoo8HJyT&|)Z5lWfiy#s05ZHnug2+9w zBuSXC94dPdD2zg(UDS(e$>paD&EpsW5$$g%t;L$t!74W@&-xqXBc~}PhQt@w0By3~ zTnCZsARMH!WRmRKI|lVgY4)yK=KW^^&lVgj=J7BablYXGPF^sZiyyAD4svbLwzExr zV0$RZ{CARbLP=!wj{m5C^s?1dHcjoW1{KJjM{)%aWa0RqF@><=7SI!kn4mhB>s+b~ z5Odb`KU*-~i+kgbXXCPqbgec!9&A&qMFV?t)zx_@yHw2`PYEXEU z4lnNwFQ$gN+?1N1q1ZIORN0!99#f6xP6==Otslk5E&3za8{CihYt506p z-LAq4YCCm-G1PswEGdX0|65jln}SwPNDh_&c_`KAL`&$n#_&{BF>{g<1BUnMT>HbJ z^jKbnjhwq)MmOYo*T2#_x3tKLoqovu%ZrpHA#2=B7u-hG*wi|YWj0E5v~oPrbm8d6 znAF~^ao&m}ZW(yW_mliSlU|J|>m01iWkb^X#TWj1Z7Sawu?3}k)K;qIatzw47UdJp7=cw5q0Wr3EEh7gH_u50eE?>R%ma5_QQi*w3HK79iZ3;VY< zzp-Tay(MF2#CK@@=J1Tnj$&MyCd#b0wz>UsV_NQNg%neS-cqQwxLT#5Fa!`zuoOIK zHr2xQXMQxJ?91UGJ96ATL0t#S?F;~~kfENL{sxT8w><+Sh&p|)<_9^^`v4r?+?pCw zd0P+uo#YXdW>ctzu_KLjcL>}U4sE4>npQkY7W((@*sRGE$LSPWv2k>vJcf5?@pj5< z^9dA00Di%^ywqG=G#c-|F%$;Bkp_uFcIa=5SAnlke) zJdNRc>)k8;f!cHn9g0@$(D*jS*@TL|TXwthLevdc*x3<&Az>Vmg!A{ zOY<7*qR`1&;-vD-02Guv!UccP+)uo_$7w5d_#g)cTTPt#u>aau*q?Ow#440X8N|`S z_m@&@T6X%9OJH|C{7!xc19C$XXHa=x#ZngL&#kzLO}L^_V^@3BjI?n0*Vjlu)GdFI#@(YAt^ zxay&>NTRNb)DJq=_F;!m5e?M$v9qp(Egm)~SHnpQ=@Rx&ALDV^59A2TbtzSfW+8nn z;!^GTp`C>`pO`-n6JR6VX%q-iheKv;sKHXg*pmy2JTd8mRXMSkIR!k+d#B}0LKRNE zl$bBc@WcV)SxnbL1arEGj%sL1bS4IA8rqwUqHdn4&g1DDL|>epHfhe%(f~lfR9_;e zk6cS88F;zx8c-Mxpy=>s^bCm7;I1C82K?tl^mqKnHBh!i+#Wun9ypBKGgQ4Hw?`aj z+JECH8o5QeBMlvXIHl$%V86fTn&w^_FDb{{9VQiMp_qQptMB=GsE0vwA}2Pl>IW|A z_}JTreP0*XcZy0YzqqRBiDB#;%efx>%i&T8%gZG8$Ix`+JpRQCogo&}>P(W5y$M4_ zVbT{Bp`|;t3V0DBynd3*k2u<}?D0nUwq-x-z#DD;yXr78^v>{pmdLR!=oL?W_Kfo< zZ+^$+XdSygk^4X2bq_pV1QC8dtXEjf(5P!^VQ@T0K{C(V7taPC!7O<5*C`#Y`cpX^ zTb`^CHUVq=B5y{_SxgtT62l!)R>64aHz6d@gU8Mc`5DI_vt3IdpXFpJ@UrUu!UtY2 z`)$ADO&q7w!)Jn27*g2_$jltFXLeDJ$^{1uRK`qUHMdskxm84*iQ^tZzg|{w=kdBc z3P(PIaJ!2?Dr<`TdLlsB{Ep|`ph&+DqOxrA{60y!IX4j+B*;C?L_Q01LoaX< z#ByTUJ5L@42g?SR4^mu*21gZXz07-?I!GfPIb}m%MtfIE+2<`IS+V8vvij4V;4y;n zN0WAZ1S^LpZ{suz?QmaK<6CQ3vWuRYn?jGtbbp4%LcIDPoEk;j`TqLx@U54NNI>3} zbgrngVct8!ER~8}2hXVWLyB_80B(*PC2r)H`Og;h0aJIJ$tO!4L9O$-TcNZry(!pd zQKNdfUBXz`IBBArcXu~q3~G}Mv9*K={LuU_HeCxtB$YnkW6=!*K8*q_#=*g-VfnLS zom9X1g-0~k@xzd+so3AITsHeLNMpXFe8q5C87uh^u-f7}s+BIzQp3$Nx|R6Ka&Z|) zNHWFJal{|*MPfEiT#FM2epqR;6j5RSCeF-tJELDr_xOwVoOq_GHTU}xC|t|I);bPd zn9DGUUXt=~3Vc7Z&-rt)1%~!B1vR%m&$lDW2Muay|K`7hRy!>%EjsOHqSGqNM3D7P z5|_p1+M?+-eJvLk^H+>Pe@=&7CO<`ktr0}mWwSkSZT=@nqux_fNH%nuC=w<{5nmp= zLLKzyOjOL5l;BqXErr>)ziBA=*d<|c`5UzH_n*!6R-zkjQJsBbl3lSYFdU;2Y+PuG z&`Y-~6`*&Bde<*BP+)fNV6x#vRdq5cO*NarIZ%*ktciUn`Kw;;p>Wtx0oAW90~P-1 z-G6Vy$?bcvDY7FeSw8)TY71hWo%$o>iS(~@n|D`)Np8M1_$k}h`9KmSy0MDr$aoTq z^~3&q8Dd%^v1g@Ht;zUUz85~M7S+Qgj7;h&$$6B^wr+|{!11@|LNGrjv>`<3xEEs2 zHNRDo7@?JN;kk&BQ3`0ru;Pa?Ban%3W>#cAND-!Z5Mwc($kTBsi4YIU5){^X3H+#< zyy8z~mIhERH0|B09qGTa z&sbgFo6z!%9g@e=fHVK!cWH%?l4yl|9j8>dLoYbOBY2m@1QdJ`dmB=~C50BRAAWCS0_2yP!L#FEzkWm- zGZp(=S+QImg2`Q_Nh3zx6kT@zj~mp{nsA1y>LVTv;(MLJQ0qQo4BZ0z-$T=d0`m#h z;{z~CrTUE#4Zh_P01+39B4!k7_VWG-rq7>q$GCTZ&SryY{Rh!4*2I-C4lV!fmd%`Z zgW0u7Ilp%~H8Vuy5qVW|ffqU!LcTaLrEHoe!_6HYGx4#-O|2q?O*!un8o zX#VCu17;Ezy_DKhzq_D3=T^8=XNKoaDV~rb6SnMQ3Dda-N0?92b8CF@_^`0B2!59j zKnq4ZQQ?{QG{(SvUCL)4J_ya_c9I?ZO+m=@ypKxj4S48IPY==&G z9zVp>!DvrN@T^ddSMI`RAQxwPd?fuQ_oipAX$ZAj`_b zRD-8~cVmgTETFXI_uBvArX>A-*;voc`WTgHWq+N2`w-8ji0bvU<6rLwD{xgjeHN?- zJd$}mQhCGjc|tyryQ@Amx_9Jy<23=mbU%%N%MB?4}_QtL&4EVJy?~N^5%J| zuGNv1mF0K5@$6eGPNWsJ^IU~v#ZXUC2*Al1R+s|p`~52#8pnx-hZQ~9l0F&2K3^_R ze_D z0h~Auzj2n_y(JB0G8$JgT4@`BEb=h|urGOAz!h1cb+{c0wp`!kl#*UAzBg+F^k>h% zwNlj%YG&Ra868bi#@XNv0EN06Avdjo+2JOD|7#Q}6#`EO{-!&Wdfh8@0boU> za_K!VOYQCL!5E4XQ3vh;tQrj@{8$AWO7Mf)k4v;&EKMHVO07poda5orK7rrce;I9*eoI@jD_h|rHUGme-uP+rE5arG_MM}i zexoMo8nmSE7UOALd(mexw+g3zA%4Ug$JMVP93q;F z6IyER))=w1;6EpO$tY6OW?y+Nt3JC8F6Wu{7J5?Kmgj1@vOzy?Wu@}=KjEefsOaz_ zNh(EE5I$ym;-g@Zi}R==_gpmiWh5Z^_qY5T2*AHoD=g}18U24wf6|E8>72p<9dE#S ztCuTh6e_g1$z`!F_+@a8u)P*mg62TNorFehi!#7g*5As*zS9x($MnGS+%_ypXI^9P zOMSXjF1akTimS6sxjW$KO4CaR$YSu{hOKi$u7Af-aZ5LEJ6LPO(;| zlh?(EKj(yoRM->H9GOG{Ph={qTNnI3SgGaF$RJjB)5nr?KQ+^7gD(* z<2lA)YIrCtNk}p3w^&$dB@V7e_DmT-1$pPBzw_RN4`&wl9e_OuVxHKw;sP9)t|~{@ z&g~A7Usrzmk`TEU1|gqcBBXdEnNyi%+m+&}S2X_xxC(Zp&IkR|l$(E7XKxYv6q6NE zWl52N`#mu&_RFJD>lJ`*3)OPi4z8JxzPW1}5OIq7Mp)kTga8$bIuDBvO+U{+j&5(e zlK=ogsSm(#&%R9ir%9s|4waeY$Q=h)LeCd|gEx(=y`fjqE6@a~NLRg!*(+4=kC?@0}0e!i`U-Dd1{NdiDL#`!_TTU-)G?D;mAvPgrMlACK4=5)%WzE69e z1p|Nik1@0Cs?8HJ1{$-8IDn%dbZ0V(MRdE@79P(E4$EVN=2Jd|kbn}_}M z%TVX2lk}=6tF^Fxc0T-a`Z-j-%HG0jBx$;5*Zk~~xp57J4Eh&}+pBs?88924SKNPa z9MQ6qj2W40Iuxq8G)&trO){jFW03Y0Anvn^oJP#;VsEJ*E{aN70p;eL%SRWZtmDw; z7>PQ-l*1_Ld5dQ*FLz>VMj^R!N&wCCOJRM*LJtc*gF`cvC5jJ0yN(L&(cn1Y|i zJm6tvn5sV4toMwp9IkxaR}QKP!?fJq>(iIFN}u_cc7^PbV+l7>cX)17R8dmg3vID+ zXS<+`lTntRdO|>$nAD7KZdm)>?0U^*0y=gAa99HSzP?I+XN53n`?8RqFBv56sF1CZ z(FU^gY8KAI*>Q`@8KRf4&53B8n=e1&u~l0QI`Ni_X4w5KK`VB}cKcFza-@y$5& z?!PQMX1EYG#q)|S+b{4qb!1EzdekarL<~^+f{I5>On;iWbWvOb-Lc8+gRgV{?%Ef3 zGhEhJsn*mahPN_^Ffelm{_>&=MGb`Eyhwyj*1U_NDd(;b zP+ufk92P~ZgZ&ZuMV!BPLm71>|E;tpr)G>brj@EJ)TGYKXeUTk)lla@g0=!FCJ#9>-S1;a4-jZ&&~ue%)83kt|AmE?Gy7fG|Bd zt^))h86tdvx<0GD1o~8$^^PBUJJ*eous)3p8;jpd_iAfj&Ko5HL*sgGZEkqpU=-ed z$-ebm>HX7h?zN`9B;V^%rjnLBQ)L^Y28wz^Em{<0cZxfSaj{H3$RW^t?jN?S6lH-t zdISL_PZIpHrlDsph|HWc6kDglC+()08-Z?$eo^hHeh%Ov|7_u~E{PR%OzMmu?S0LA zd*_3{M zRC%K9C!G@Ep9xbSlFSC(ST@-IF8f6hj0{>TSRl~?(8}9!(3kI=Ds*l!m7<7xp59Tp z|E%he&->kxRa`}kr&%j@$o=QKwG@4;ql<7dxqdb4k5MG6K8ezZJPba@YLRH9{{!UV zHVyZCENa>otX96eyage^DL|-!h?8riTAOC=&(6P3YD(Y9cCVTJnOVe;u#4ZbOmZJ4 zmT^_=Z|o@uP;{KqLQ5i&j<^A=?*A^dk#KWk!-bP(Mehx~%jUgMblJvJ$0>qBF+7Xp zz<)P5f%}x(9UXt(Ypiq$A$1Ui*vg{ZEJcY)7b?aX^MgiET52(22VLFQr#cSNrk!q!n2%q~ zq}Fd;VJ$R>^C6bMHDnaP>Q-YP;;Ftt?tJ+FVOJTCm{za#@p9EJV1NKpSv^;{Av=Y(eABGVO#V?g8F~hCmT);o&+H51C`C|9dUt65F9v zR8o?(|Mmw-miEhZUD?9AhS?^$*YJ{VfI`B_rLq0Z6Dna3AT9j_Vep`pFz9b z+O>Wqb^c?r0hfd|umoD}tI?Vw!@iXjr@hnS;R2I4a}?4lS48F-=Q8fOdf5m!ZM@!j z``>F70Y>tP%L%yU;s3fyAT_d?`humN#!I465+UF#It!dYN^}5D1r?W2fJHmAih}#; zU)sn&J8W-E+kM?E3D?2&{MX;e?guX;o>Ef5d4e?L9!}%sS-*9`xt6h15VdrC#+lX2+I z%0a6-5{b*!t|>FTt#dn1&}qXvJ!6_e>d7Z!Zpt=JFvq;X)|2dN^!hUiy{@0?^a4Lf z-=I@h=Tlp0HG-Ex{JALRAEIAD$BMsy)S{8>Xtn~}H6}YOtP_^uo=|>DJ>GN9)Vqj0Ke9Zm7EQf6 zW~gMB216-eE_wD#C_|6LpWf-$e%rw%zy`6S)V3g_#`KL|JuPTMbY{3R;j+QIP>$E; zQYK#)MJF{XcOK$p0oapF`BEKN4j(N4j=(SNw)BY}|)iW|lU)`4bQV4VT-oAaUX2gqH8X|AR>N_16{rS3NP?>%UB3iHB zmV_P1d<-U6N=8i&pGAg{UW`GTUpL=YZAX7Ss(Js3P^$0)=t7T~^qIX)r+V2?7`iE7 zIyg?SQ}NS7DmS;BkC4gir;%FBJwzU>6bQ0A#V`>~`W<4;0S)AGlsCtu(Y08d$jo(6 z5gm7sHJNF6{izT^yP0b3-EGL5*Q{WeM?w&WKg%eHt^GzlFFthJ?v>Dm9%YC%q1WEr zw5Sw7P=d3?Y(aAWoo&V#bd<9h_qUj}B1OQS^q<}ON3>56NhIUIj+=&M+5&&OA3w&8 z=10VU^hbeo)<>vd9%~!j%%pc?Jy!1Zk^X3Y_8{J~4{(E2zqLiusZ&n*fJUIY3oK&nKWY zT9&bnePlcA1{nm;M>0g+v7Iu#)AJEffkG*2YXJJ;k7? zl1gBf_NlBYuNWJH7?cxwlZc+_5{2ZMyxhmCu>1^a{B7CDI-8RND1dtm?=&>KM+W`) z{QB^$2iyLva(%BNh}-|AvDMEyUXzAIv$0+knmL6M_u4Q}4IWe{_o|KCbKcI8o2^&_ z$<>UKWm`R1w6-xz&{Db2=848tdVC(HRY3p7(-(N0kpFp{i^>IjZ%d>32#?SfF>?Sc z8GF=}-l6dTcEpnk@&~&|C$Z`KqRbYQc)in%r|WjMcsjb=_omGBI2)z;k&eHClUd85 zknHkEWglw=MEei9)KF2{S>i0VfaszDedFBU9`AgvjITJQANGs4o`MXuB&3=0JcvJ! zI1@&`{ba{@_(TX0(PVh86^~?AT-AXhq4gjR#wzQx7vaqe; zL#e=!qu}!QcG27jvNA`|hpsD7g&>%|Jm8s|Mk8Oy@ z(r#ot_09(}X3Y3?#-UuV<4tALccF63V;L6JN8VO1rv7=QIY)zq&mK)5?3V28?VSg_ ze$F^XDj^KQ?-~w(rI4v4@p39^nUP)W;|!;i9??pklj4gT(^GF>{>=SuHOh2Pv_xI; zMilMS1awLdKpSE{rVrqc>yFX!SnPw~eDlBHtPy@V#NYXpor_7@x5lP9qTmiDrbDBG z=jc)>6fnmCBqGEY@6w@0ST|6MJ|$Rh`Rk`QD&Cf*HKVXpcjA6ewNRh%5$iQ)?9xK zQ@-y_ZDApX>f%78m1`kw+SnZz`_lLTN&9b5Jr3e5{QcoFWXSu(i)PA8l#nH?!8K@Q z%298Ys%mnb$%QHd;-`yRa6L8Da(`_{Lu+cSW za09(-TI1=zuAH%zsyT3-@-iEb2kYbI83V&pGfBJLH@B7Ooo_lQ8vkEg?;S{GANP-+ z;=`Mozem}6`D@&?=lC6|N`2LA-9u~l`y$xz;W_1dhk`M910nMYxnc6iT$%XwMo z+~h~cl7tL3({%5_t@^Fl^_&f*Fo&U+|2m6nhGB>YFu|sP=!RCDM1YQzH%~Qwb74)ZA>87wTxWPy%K*d;7oK#vTEmF7U6C}d-me$3cl&eq zgLiUwEvocd9UIxVi0`_DJk%jEhO}o-9wy(%&~>TF(6^myZ$Hnr%qbJabrHWnx=|d- z*5z#3RhN}@cgGc%l5NPn-2%9^8(4Fi!6L`_IVC=7tT5qB=$3P@VlwL1d^fGk`HAxD1CwyG zRCN!OOI)RTxR22;M#+c)w~CeaG$e3Vl-Qm*%MvtHZquXM$7Of{nYaQt4f zuiCYb^0c&c&k73^3XXjFc-ZIaoaZM6~4O`ee9;@+0%BWcQKl|It6DJojtOsc2Bwao34I zQY~Nd!t}|uu(0xNaQ*M+>k6K!HN<(oP`q=Y;*6-sevQrdwcM`3ULOg9CW8_>C?6DZ zx~MZBQZz8DyH}Zv6hW+id84gCkZ%jj49;&CHY}qt!oy~W{nhIF`=_5vxKlYPyaU{9 z&v(8@*mRpNb+pB)XKd6=zw@v1T&jY8mO5Gvn2Qd&DECQ(Tt|iKUB-ZT?;yK!wx+z7 zjnhv83k7ztMVN)wI(3;#N41(HNDdK-=>_%Q<~p$dyculCZG2x#{FuPuLDYG=Y-aQK z?=!F=A!WUaGj4`AfgFT7AYJ<&6{Q#1)Y2lQ>clf9zP=?lTy;LVc(uLink2(&gSRU8 zvM#r!?h!GuxzKw}>wEE8x1@^jkBLr0T8{c>3m9kJY=TH1^75rky>&5qcRTOnX3&z+ z)0tY6Hf0vy$uSZuQnyDGjMnWF9T0}E?+GW!*DH}Zo~ks8$@s#%)pj-lhs8z|D*Tx47COOPJD7K6*PsPKzU9#U`1>@RaKx^U`rhjzm9$j!$b zjSdlUH5`o=@(99S?)ZG=1fH%KXn}+QZ|~2AcE|iLP$z50AGb}s1gdiK61YX(Oq(R^ z#t}E%iQ#j$BdG~&U6VcCPldBR_4V~%)lDM0FK_`B`)f4>a+6R*f;jSg(fB^d!SiZL zhCFWs{kY~J=i;O2(pS1ua#)>56^w38I&u3&xuifxqkxp!iA-}Zd9Jq02B~iU3*MwE zv@ws{Xg4AM#Z?yMiYP}(WPN{PlDr+Jha9mzo3uY`%^aD72XH}<@kzAnRG*D@JBRtq zx4c4!vy8bXVKF3h9)uj!7F>*4aq@1Uslse}`wAp%pi&IYlHLBDy-C6_h6crR zP!_=ua+8rpB9Ac$Q4Rx_lNrIyQFJD#x_E z^ljFT8|mW33(Sc+N0Lwz*fvDCp!~nj63#Of;~hUFgZK%nULK_N)!$ca3_rTw5_{^G zJ;Vc*J*vap&=`>8> ze^QTYkV!js-{5fUD(wOU!20~4vPEMUsi=Zy-NN?!O?s;KL`!O=jcPP!V>z3Y!$m-w z*qe{khqR2qO8@eyxghFZmi%Luqlv}E#ksk;5V7g>KEn7gq1rN$1G0-A<){lU)x-Ww z6<5S01fR;2Q4&VB*Wv^ism=lhWO5C2YHARkCt~=rw)hGp+Jx-$$d_Wio&LmA)CDA8 zT(&F#K>;0+)-a}JSFXtNheXn|e8{dxeX6_NM1N5;R4ws1`!j+2F~yl#fY(yvF96+X z`L3MHWrnG3xQi%VOOQ%R%N^*+|HOjXlDpo_@{AAn&TnlQRO605?|o};7xkbM2OEw! z^?V&jS{7kqK&z8q9`SM(@`yY2Pau(H`?Vr&l2WW;eYQ97_U+6CNU5KEC5`Ob2K_;) zNBw2q`xbxhKxnL=6i{d7P{c`Z2^@<{xlTT@!foN_Vr9P1;E|}&*3_3C>K}M&E`{PP za~-~xX* zn5eErAL)Lhry(@RYgUD*hhR?GMh}6SscU?z<*+2SSwN+!l~9%TqT6nGs1> za8)$|Fj&D*l#dkRp|hJC#w{DPS;QK|DqN2y-OS<};cn}Iu6l!bg`P8*d7?sevYB?; zi8kOH*CnD4Ar|by{8*UJ?Lb6jL&lTTV{Jz6-mjH?Lh0x(o1<=k%qsAKI8;^qlpUQG zx{>jOwQ8l;cC$dzBK4CAgyfmmxp$VYZwcs*?QCz#>v>LrAV!eU#-z4)#xd3?R>)&| zsA?p}({qL4h(n4(1DZzx+jiu6ACgvA3+?p%?+THcta(q3AA5#*!$j1Y&=I1%Abr+C)gEYu*DD5lb*Gx-rCV>Q zn;jt;+t}3N^J!o72hYRu<{+iz@D5K-&zK{o8H}ll_fYpEp%dWhW+IH%?r?TcUXRFL zJ?-Ey_td4`6%Y3(?(FS%Wk%$W9zGQO7Wi{nMBe<<3pxEO#cGWL%kq?MNb!6V1N~hx z&4fB%G7>Tl26;UY1}TU)$TGZg`5j`s7F&^ursVPtP@MX%mmbwpEho#}MS_>M|p^W0tDgl(YRKUCrHb2gA? zKNeBA1+^lpsvjT!MKMQyK!E&p<*e<_lL7+ zbKOL)`I^Eb3@#Y2w*mG?m~P5fz}-{t3y^n0SL6v0k+v58fYyov7X7SM z9Yt~ZIz)~?7&Ym$r2ByR6pWa}2d`n$0{W1bHui&c#CitZ9DTI*!>;2)4fM=Fes5_F z6c`2S)JSv74ey6QSptUbOSjLOjy^>i;TQzrg+U#4u<*^J_|Lab#`cRGmQu{ZDo2Z}gzr3Azb?DaotyX~c>3l{Ty5h^8ybL&W_$+!4JF^6+ zuka+)@Lp@6}T;+H5BNl9Yt9sxJ)H=}l<%J+n4oe?j z1CUvOj>eU;|!4X-Kg%^~hll{Fr<08Co}HNa3i)R43Fbk-3Kk2yIj zNY0xD0Nu01O7BU4-@WS{$b-^1a;b!{uONP>=NgMRro#m*!!#l7LsxNZx(CS-$~z00d5_6?AYjaa!~x=NskywV@-v^3fTl;-`)@q+R= z-CxflBMpgs8oLf8fWW?{U;U{bt;-vR$t9kqkbi&5b9a5NFeBkot%+lK)ZRf#MEkOy zLkC6R{K$W&A4-8rHX-tmdvr1H@$_QCV_N?*HwjlfTj?Ppmgv>kYABcoNu}Qjrn)i; zqy(QwdYo@8Cig2HzpHg>NAcTFAb9p0>AdgD-~v{=<8u1v6!N!>Gx9ai6KfAGkKOs@D$<>x8rWOp$p0B9M`1exd|Wv>xz1Nd z7z1b^9iP>Q6j;Fwc{~GSzOmWd2k4CZMaJMR4B+*)to{Jzod)-|#RTGZXS{;hm0JO; z2Y2h=e|O*Rwu*nA;dnb2Zdyc|h06li3(RJvK}Qgb`l3Xe|6GHY?lUh?C?DeAXAkN( zM?T_jk3HO>8n^uVQ#lONw%}5L#gI9P=6Xpvcbv@E?#pJqrV_ig@Ll!DmdV>2DiKlC zc)l$4O@fNw5F1y+AXK&m(M^Et(B+}tXmeNqc&OC+fjT;x_Wt!UFkK_tkaT+E?P;si zUjak*26XvmgvJyKejL>U_$@URRbTqm0a5)pxV12hY-0H5o;zE2E^%V0DGs)mrnjC- zBA2%NqABCx>dpgZxxps^x8m+xotNpwXF z^F+?)x=@jKAoGZ;b$>A7-tgM7m~>tqDRBjbO{iS^)X)58n#y_b`P9%BmvVo@(i0s% zBde;md<=3-ea>Ibo)*WhPY-H`R(;5LpHu~&ca{(ht1(N^-*zy~nXBVl0z-M7 zvu$^@DPlv$^^gv^Kzb}eZ(9HE!?oyYirnoQjPO(MuRl4J(ftc!&&+IF+sgegRqNE6QeXZ#?hD$>j*pNKGAARyIowa~n%g z721*lzruneUdC|%$fl8uxNL$J6j#%6ztt9Aya94mg@<>1(mN`>z2$uKq{R+qev0Q~~YT2u4T8y`ieV-^zXJ6fa)FP(X=l5j`j0)TPQK;v8jxB+cf>eBc zvKReyxzm(Y-h0sNo(io+QInQxe~h%SuTw^b|Sn^OL5keUClAE^uk5CKf^CJ1H9` z2v_JiQ&Wx&vWNf*#y)IZ8yHAuSL1u+N9KT5Gf@iA{seUa8{=h{gt?PI90AkdyelG1 zVjizKL00D!ij}!F2zkhc(CT62<3h=-yToiM+!%CH{(xPjV0Ho*f)sNYw->eWcZCc2 zVmtCpGOnMJ39maAp?qh_&_D7i2a4b62H5n+H(BWS!XH6Xh<7Y>JWkv7t5r($zhfSg zK#h>Xp(WMaa&ffM6}msP?7n0PeBJ$Mh_6}ohhl&yZd=&!3h3zQ48^|*+8az<5*5V- zaa21|;+c+gk7BXc1~zTp=r`s*F}Bi)LRPKM?~P78k?_V}OIGgQjsVe^mKWNmPMvbe z7*%Tuets;b$of+h>mE^qJI-th{6LSnk{=6srT}6%q2l@9Tc^(Q8iICGn&kk}P&=4i z>P>O6VZpYlHkM8K%DaP)C>ZKS1tNekA$*7w&XI%Co-E8(zkAyQ(IsNI2P^>GY8z63 zl1c5R9fX1N+;D!E) zKuPo|ARKmeQ?-;XxojBTxm5*W!XNuSXb;J&avn4;aDPolrH%C>`kC}a3f%wmB`~`P z4|G!UGxR=I;j_q(t{bT@W5k_LNXRQj`wQr%TA%Rgzk4f|lHxb{hxB)VEDV#@>x%pN ziG((y$B0mRklcF*rZdWjM4egGIJ%!tf!DyHH)l3HSwk|RDyGn`hJmhAFY9vA8j%hH z;EAnT(J9oBm#;&~tyyD8K-p=;(PNguA0_k%QR};qQbOSF@0WmMQC5zEAdc{*Dkz0r z>Nfv$Y5K?b*wewpU`B|3iN;-9gJjmO(6e2uM)%6ixwW`nA}J=TJHJCW1c3J%QUNsB znp3GH>V>XQG&rtS!)v)kMj{Ae;~{suiv~QXdC%_v14ZLb+?h}|0k@pcM-1@w-yu02 zNHWOH@C~}CEu04m6fuHaVtdlRV&6GXs zoSvP1a0-p*e180zytvD#+On+Zn=7^Cmz+L+5gDm}{84Z)9jWgeDJc+zM3E0Q0v&8| z{?=@-kEe=1edrYj%J$Xv9N=6G>K34D&lgwFU1N)0JfG2?r+a3aQB)|EsAX*Nu=6lK zKiYeIwb3N+Dp|(EN6N?777fcI`}yuJ4!=*U2md<$_Aq7pE(rJRtb6YoILwl$UjKCu z5a`FTiB*!{ik*29ZKUl7Ncm$x421812a&{S%_qoE<2^Py-W)5l?>)c+{6ATQp8cQ4 z!BmPn{<*r2mer|nN$LG-UBHjUiYN&-krmkwe#vxyt!98*SOe@G@2?>cngfA=w~@0n z2`EDS?)JQQLpM?USulqqP;2v}*-nT0QN#!H?j_5)Qvj`AnH8%nq}rWz^foE<(7Pm0 zFx&MS+@4dA!@M`_8V9MR!P22XPA`hfJzXaX4|f_LX)-q5ppaYu1MXByc4q(X*6{-U ze2+HsvB=moNATxds8;T?v&uNUV3)fyHQFWf+L*c0ZTe|!h|7-e&y;o!(3se=gkuxD z6uMjvpZDMxMbLo@q&liXEb)>ZuDsdZ3YGEL9${`nU6|}g*L2!6^pEO5xp%X-Il7Si2qJJ;#EYmN(`r_HDl>QFli4`ZcX+iL!S8!B@PHg-y?JgaK%8q-Q)TKc3*O; zpTuDE>EzApgINKLv2*3)X=DoMSdcRk{aJzWai2{r07%iI@ zEJmcoz4^>hP(3Y^6ZqpeO%h6&UY;Z#%EeR=86^`_+(G$(`XxVv4WN!tVc* zE+F0?_Q@!=Itr#ni+KdYProJi`R>clbqE&q&8&I*sc^CW%=i>a;#S|>HxW;Hjn8&8 zerJW>`Z37@oA{)vYQ%kCot^I)*<+3a?*txp1N4PS_>wq;xq$#j#L4@KACDcF2Re1w z$nGNNZr;6ywezpeR4Z?Rmufq&XXg9}Gtr+~v_t_pmCvUB$NX&ras_MoIZI_$G{1EK z7)Zyu$i6oq*Pni@iS4@>A@x(7vJ52m?kmm=z{e_g%h}%noudB&fWr}?2Np%A&d*6$OwufRTJPDP|!O~q^mOU1-G)t z|8OdkWI=u$+Go!oFMZMD*wcdp^TQGgt=>Dj5fnr{X+7B^wJATDjqUvXs=n8XV%s2O zM?B{vl_8Mp_W46LyU&h}xZRrYsu4vJYR=1rd2x4Kdk7(x3bCAP9D&A}&)A}s#m~wk zoO!Qb89P^Cpr=j#>Wak4Y~!L|5Tx8sK&{MKmqqR1K5z*lj|=P#gxBIDvm?$ryct)= z9^&MOAhPa4r~S~V0$i1)Xk4`F5FIn;5wFTi!?(zY6xaVutwKIS!j+`~q*Mb1&ff0> zv5+Gip;OoI=bl)f>0+<~Hd6l0A6i$a@Nfyw^;W*V9zh0Nk)b;~AB0|yt~Nfpi>2k^ z6gP)zRN021RpB=d%ynfl7bqa!dOX758>$_>mJj}1*AOeW7~9enDve3+ck%;IMI!3e zZuO-g-SX#5DhtiWS{q*veGH?)BEH_sTmS-}NVefNwoj;bnHz*-cLO-@Z&BTH6Unt% z=99Y(P{b-vz2OKOr~!%R;Pu!k$Dg5+r)r17rQ}rt@k%vsOGI;fhF{&aQ!c zO{A_lGHZz1ZkqJDIZ;cOfq>Fs_}K-K#cZ;}P9tyvF&`0xxOe9vBG69Lm+M=h-7_h= zps2Ph_rB08@s=H;xpyP&c?bzT6$LqK{8^0D|6JgJ8REr;`I`HzNRUuC1TL99SI@mD zfMD;=b*|kR9$xaZltlI+hh)u}bVAL0*Qoe?n>BeUvgZvde?=v;xKDihK0ECgD9Z?F z#Rmx0H7>Y7s?MnW!jX9jjdp?s(31TSTdV{YdiS&x(AuL z%pq;ywb?ruuoC|38vuDBVWc5JR!64B8G6v{d~$4&!$XZnr_d*-=tOAFpo+vvWU_p4 z7InLK8o``)BdCxXTD70&J)@o_u*bsw&yt?q(NgiTJgtcO{ugvzsv=6ok34L4e_C>9KRZT5{KA!aa0?gE zT=Y1~#`B4t+-aJs6q&FOizj%!C=bHhJjMG}lZ?gLXTZ=^R5{UkmEE2Ab1NZLI)>e$MnZGBAjPdS)^0`pu>`kimV;im( zQXr-jq{n=1>0BYoLSDEeh4$${iYK9&$oVv1;G=(nHQw@Ep`qUh;r-HMF4Ez2+VRn< zqRK6OBh<0{syU^yS{b&22}Fx|;E-qkj1JG5n^0ZJ%^$`#)Wl-OhLR_*y5iagxQlvx zA*jopchQ&R$l6kGrlVt8xF-}XE$fl&T z5fb+?EONF<4jcU6f5q_50ZZGM<~WJYM!z|7Ra|DhE5e$(Ura~O8hBw+da?eP?pId( zgzB)qTx3VOCXR|zUr#I9hedcoiC!0~r&h<5cC@{g7|JiMznF6o=jT6Dgp!oHnM?_c zM)T<}LRBrM8f&v(*Fl9)7lMioSJGlnx=!}+GGXZoRqL9}PFD*DFZfjX6fb{|qjKC; zC{kgaSfuAUqt@cR@f}_A3Cc34+Z((#wU=HXQkjGxWszij;@@53?}`&iMuE4bAD2#= z=|e9Ig~ks2GW+#vdoYwyybpP`9&>SP^foTCx?+3N*22n%ndZ)Pc2V=W`74P;rZ?3- z4hh436~LW^>oOo+|8qa6IHr$|P_;=v+Q&FD{DEu>Easwm9}`#n4O0SdOM&l1V%164 zm=ch_VmW@bczkxZ>$Mk|(pvNLV?$i7%4Bwfcg6W!*b9A+)jZ8M0i}4$hyXPx6)<*b zM3}I@HjblxlVWvugmc&Wtte8SV6=R_aK z)+HP$t0o!N%PGy_bvhR>b@!m9{JLfWM1!2+BCrOfyFeLbuoOhXZpY~V-2sRbfsbp4;&_P6X>`74_P z&w^{1n&`^pq1g6crS!s(Ka{70r~_`1_-c8UQS9p7`4|kWtc{N_VLm*?xNKezs zHj%AdJdi>tC}5l$7N1JF+1xo{pT54kGrt=ey}Z4-zCP9UQFtHi?#6?WN^m<0#Uo`l znrp*^sAA>UsEw_PyrABTW~KYLaz_w%enXC*QGUExbN0Bnqp}4E*?X{mB5~4-mcG~1 z)(~)_q(wrSO%VVeBH#^4YD=m@gw5dJkc>gL%ZN+e2IzA;hbmj z)l+1Tm%rsUj8f3_e>p%@07z}i8+RsceU*{&8u?->kcJh?6&+Z7@wjaLe(*@ye1#py zNnAze8l2PP&c$OI3(D;5;gex4CeoR@0Xm90Uju15$1iaB63-J3(zG=&xOxlhuQAo) zUn;tFypw3e)TIW;i@&7$U&E)#Ylwmk?h3ZCzHvgm!2^mT*&xj)PiCEhFSe+DDq`Z| za?`fm{FMx$?$-_OBP9rrwW)4E4s0=tl2Z=4f@7o|MeSf8C+|FbKQ^_B0V{tCKNm8k z;{CL5^N@9Kj>z1=YwyZP2AQ^>Kuj1JExy zjH!P_$7s(%Xkt>CP$^Em(2qDrNLdA7$}PtK=YB5V$CMV(?7L7HaChqo07u?8vJEBC z98nr~5OUgL$q~Oc9xQnV-D#V~Q(BL$q8(`FA?DWC_WwVx$tIxiQ|lmBanBA^Rtr2@ zrX>1zZXbX<0Ut-EA@p&pkvdD*kkZUrG&k{TQwJ~D`}fQ<`&NST`FzQMm!|H8V}I!?941BceO@4O z0C$ixAV{t!5_K{D2Ae=CN1p4|B%ZwRm|@ik5DjSvJ$M(8;_BOjeIB{$Ue$0X1hXFF zdw$8|4{9rT4^q}qPX+`1<)Uw)6g&smC~78AS!0ijx~OPMvQQ2sdG~?7r`g6XBBua- zA&*b%az(HrA#&KnA_~4=oZ9aQBmsqE>6DizT+QyDZC^bo&7N60QdR0U4K;ge^k5o@ zSMKlc*)jvjiO@5NH^vGNaeM3RjEk7Ol;7$E$qk^}RlR5U{o_L@VtDeb05XY z%>Qcj6oUAcUw&k4$GI1OQ)Y-Gp-K)=HUIsw)DU-bFGn5z%=K5cM&&e73+IT`M`CaF ze`DAliyQt%Tj9d?RCLr&6ER=WdpT%gjO!>XGMoh7cVYV^E+qX+5-OuxVTgWw5B>~y zt1AOhdPhA)7GA0L+8u}b_b(Qt#AbvGT-u9I!nhF)eqSGAm%^`ebMbWAbRfH?i7}@R zq!S(SQ+sMZYE(K$BH8p#K8QJ$@~-zR`r>PMgf1m9jSP?Pwd5q?Nz@%d&;YVs{|}c% z+%gxScb$%3U430~<%B(V{NG!rSOj3LNxY;U+I+}`tuiNSNe~|)_PG&sh5+>i1bDUi zKl(n^RWQ3X2qe7eUNg4sFFFiQh$Su;U5NY=UbZ7?n26zS7=*p9LJrv#x19hY{rG|Z zIZua}LH{W&u$rX#Zx^Rni3{I06f*pCT2L%3g2_&zG$V7N@ zH2`D%e})~pgvOdD@3+YP3zU2#sK*TJ;{Aj0Ppt##%l~#Y{Rt{M(rR}Sm~GM9Xz?hnKM$$F zpC1rEaBt;*?}pz)Fr|oX<2wB(MMzxnzyAzCyMN1W?@Ym$9)OPiTe!a$cBhOyLD-OR z=>7QiH$d29DKv0n@YZAVH*`c^af&jCU0$<_(O>A|2v9PP)_4w zr8~}r*00{wC290qUdM$kv!C9Nqqbk2P=CC;yEeBgkm2!oWW&s7i}C^Y!(sPR#WmzT zg{P`xKRhcnI9tcq?8r5YZM>*iLB3?axT7Q8W&g&xfX%*9!;7`-+_$SW+j47hp-R%J+qGu)w`#B5;L)b_ zem!{ZZRn@an#2=3Z;()^7=hrz1pSi5^>q`6QQ#=f7FYD{; zQEup&*u`m|C-c)ZgT=~rv7t=HU47V*>+j>%woFbH`M5qOb}pZ47ExBh_^2SJ(dgx?(qFYsKl#qR zOv1#KA2#8opZXq|B(OzG3SKP&`atLJj8lstJAId}UY1KtOuNF--k!Ggz|7QKc&*an zSAJJFyke3(v7_*FsP&9%R7J)n7;%Bb%nN6nyL%D4hb*SC`C<_V7Y4fV`<=-xB#R6e zEAdUvRo0oPQPrPop=)p7O4~4mQI;4v<5aFxYXo9M)J;Z}Fu4Y3Nhz781e0E4J$7+_ z*}q@HbsC`4qR1QG8Q~5R(y{(5IsL&FlE8hv^OkL0UGIC4|0Y5THz1wR05Rf2dUA_lPKFCb5s2u z3+bOzD()*X;~!Ur!&6N4&7+sw(GM!kP>P+W+@Tx zU9xKFn7OhUiaK%6%4elADU)&mgoX~;uW>YJ#wbosb!FN{8)vqfu;+q{0vzp{+)9lF9c(V?buHd;6&|7w2F{p|1&r-Q1BWXrDAjd{MB>0KH+&)TX~U3pKHD>Y{e8KQmT=kSSh5o)*o7}9j_H(6H*e+(IO9jT03T;_!#0w0Gel;J`F7F{8s^{=5jyidJhlIUiUKXQwMW zm#wXBpTT??AkwW2egLr;g}ok(8s+Uc$#t!>7I^JFBXO7qsJ~}cUI^;qGrU|Ea$Jh~ zo5xl~JK=MD`27cZdU_eB2^-zR=h=JmZs9*)@Rh#H9>$osYc6p|pJ52_nB)xT!&+yz zpseBQ3r}lnH4Y37%?oAkfotqs!b}<_Cb61dFJIqe7BiL9THR(%8Nq{iXPVN5lLW_` z#FH1UUgCuW%j!Zb8DI2gVe=3Ex4>N}g|l#Y<(IjPxKwoJLZhZ8a} zxrz?$(+fYco0p|EJ$QFUzAaHNDb*uSX){m0-}>?_EB=M7QKi1=*ilT|XzdmpeZ)e? z9vNnrF0r?XkA#q~Zlt8}DZN?qH~#PIA4c#)uiaXoa9nf4x6EJn87k>F;wsRf1dMY| znq01CfYJczmF|d-o&2*GisGZ`nAKq+sKT*KoX$dP}R7#%t|$Ed1Vwkq;7i>X4@(R-Jl zl%1$h?(>pm_io(JC(lHkD`HeSnwQ&WguBuG=9KqCFDU-|>{^qshm%vA<; zsfDPN`zyuaBok*hA%HIyUpk-l4dnF?J-Bv;_m-!&h2(R1YPy%#^U$d#izAIzlU-e1E~BBJ zFoknfYHoOuPG=lk*w?s+D*6G3Kfk+C#sTA{cDXjt>bR?S!hMRl7Lss}iPrCzrJt8- zM8b6kccZm~!xym|Ha3g&=!^5|x8&$5H~wxCIw|UCGc4WK*jv^)VXhA!KX$!@1MJPx z8`|W991h8!q>JyZuH1OAHS#XsQ=_EWcF%2KZ36qKxH)j_ z=F;a>Z85{*s$>dp*flSepbXw3Hgs#ckytp%Oeo@xobFF^vvWhtR>EKWcrEUXbs4zw zRvP>1u+b8a4fN8@=n7?DMycZXnESGTBl`S^BB@#PNgP~z3S1NWQ3q@rO)gh>8exNE z!T8#@`c|=DW+5q;J2+P2G)MjHUnO|CU30 z@L`Js5oBE5d&boX4*eiDg2(f zsp_aedsk3UXw=Vj5+lxWRMDO3w^|z5A-Vm?8rMl4_*se_RjoPcal%7r9S1#F1s(GLR~gOl{U=?ah3ys8o`dmzR zwm@yVpfy#pJOXNWZy zqcflV(-d511JYTN`cE^gnf^7S?qohrvFq=b3?HFp;QA&W`FrhPd4#ftnciz~ofbQx zlr-&cJL=5y5q5w36|`q15g$XG?-Ty7fjhD|zD;3Xia+iBDT_NmS@)j)?_-ITM);|} zEzGJ%W?}#K?EQ7*zj0|H`PZJb5ESXZ#+R|~Es<)fa#-je&;bAdmV&&D1^|Ex1OQ$IynT%*`Q&iY z0RSM~t0`;AQjs%qa&ig^3W|t`SXo&K3kwSf2q-El=C_Y}czCR>t-)Y0At9la<<-K% zLK_#Yu!t}{ zJv|#6o1>%S-rgQBFR!_|xvQ%yGc$8vU!Rzmn2d}JzW~3nv9X?>p0u>If`S4!H}~A^ zoPmKsO-)U2Z||p1pB5GtB_$-6go=tvd3pJ_Z{H##Bcr0C;^N|3TiZH1I)48A+1%VbH8ovSR5U-ou)Ms?$H%7# z((v{5RZ~+73JMAh4J{}rSXx?gbMb0#@3679PDx2gO-;?t&Mq!4?&|8An3zaNNGLC> z8XFrM85tQI9OU5?uB-d=^73M4W@c$==^ge13^wnUF-Xo&1_lP8pj1puOk8YYQ)A2T>bl-xsHM5RoQ#U1oSLbzwWHl< z6$K4lEh9rcGY4DO^wg~Ayo&CB%W5h*em-A4zefkgW%TzAZf|d!*?$fVj*JYC4Nit6 zl{QjSFntaPD=a9cl7$KHnZVzuyvzNfP~J=^o;b=6YcFoJ&><4gt!bJ4^k0=lDBz0Oe>n zR0MCiy5ydoD7kXcx5ES2>U;JmiBD*XE`(&M#f?8koUr!rlw4; zB`!;o0hKzfteen-Hk0L6dBFNNhj84JD9`s(vX zoZ{7nM}h1P1b}PTTCPVApD>1n7j~!#5N1yyJayjY()=PgF!Ba)eQaD;^I>3Ys&eE) zyLjpYFlzImGsU*^y~;(o+nCD~uk-dX(VRNB;#8{@FL7XrSPNvVis*ROy{Vlz4z=#0 zz7EoF*|EDpo7__V#QW-NfFr-|@j^te)zUd|d{CCGy8QgHx9NWQodG&hVdOk}TzA_C-;xGl#IMc)YI?NXtw?G}+yy^H9`|b+ zqmSRf_oQ+ou`ML`y*fFej`m9XONS-dvX6m@;!fi>{DXk61Wo2GV~Envw`o#DD{H6O zJmCcg&buuolF#Ct9;zsE-a$4yqnACu!9YLZoJSyJS2%rtHr35(lf=LFMKZlFQY3HA zNukPdnNm}K+o7W~!d8Q;$e$4acy#y)iI#+ePh6HhJhMU^c7jv{QmW#2=h_nkQ{UM; zeb8*TU!rl2l(}EI<-Rt)`f%bovmbE__B|A~X=ekhqcz!usldURL$p;NQV1h<>*E@X zZlABCZNm-5ik3vLy?LjwET3_i98*aDRn9nMY!z+XSKW(2D3@OW0Jm2t{8>M9LN`e; z3nYM~>{*TXKCn%pE7_U-gusr7&3V%WV}XMwt7T)dZJEw}QDW$~xCbOa7k)&LH*65N z>%)Q!+h-r-Pl6648;C*3pH7m>VJ-UdTeU}WDUN6k!tE`T(6$bmSAcbe0sL)}F-0;pEF^b^T8-0AST4y(-2bm<3O}!bH_8EO03xzKH1XrqI4fr62tAy5}{c7$gP0AFE#KM>IJo z^N+}NmF(~H;^Jb$>2|j}yY#|ob;I#n0D#5bf>2co7{EJ{v4oQLf(K=@B#(}_cYP_ z(v#4@kC7DL;z5H3&;BGVB1m+&0(Z=sB260^aW-7g4NiT-UUJN-@a3it$InF{4*)1H zpXwBxx)s%EFpp_Yzy*mKZ7%&=Wi`&;hS-qn&wifsKFxxErvh~Gc)?9vjWTU)@u0BB z+GWk=a@Qk~NB{s_wD?K;C2_EyhmE9;!JF)pFEqKn0r1tf+<1i*tN6}JqZ+yu)Er<~ zU3}i|edXIukHB1a#nYSp|0tdzgu6PAR-lTc>cnC2QPlMQ1GSzH-xq2RDdU8G2{|u{K9ZFJHz7|3gfi> zKWf2O0q@Fzy7sBor}`jq0RZ545eeN6c0tDzpVP=p3km?Blk%mB0;(XHk>i0#h*%u% zn<=2Fm+&?}#sGx)_nG*jUv@6+k(sHB(Y|6X{w+41DT6dcgq8p!X z{iEh0l^69$;6(`Zc+%(esl>z9*T5ZX7p%&g4`IA~elu}}7WxBR?WHcR{-3y)ms-&YGc>9T}X4N>R6S(tc@WN3P2(qHWjxVw7DSQojh=% z+}dEo&55XFS{?+nYj2CUtrdd2X5ybq`GgStk?0UOZNe76>m|;%xdV<%oqYTliv{@l zaYY{F!yyU*-OXjiyTXA6(YCbCSHR|_vcCVcVEJA}lNFGD584#*c+`F%WbU7|Hyvd5 zhY5ppZVT^!u#_khLbt-XeSnnPE;=xhnUn=ZOu$!(D^(Hg_b5cZ@bGqx!m{g%L}#ag zw5zy557V6H=32;T?1(#7VA*+ifJj3m4SEj%xVf%MWc<5Z_9Ip0=aAIC?nvwi)fU2% z@6@%WnqoMe zJNWti6Vv}Eg-U2&*)f)U{Qvi}o?GhOJJajN^LjA6TsjS)gs*irH>&%vG#0abB2L#; z`{uo}oY*L{uw2^V8@=Sb??Zi*0z8-L0Ht?YoC_i#^Lk@%+g#iA3PV>A>W6n`lHbwA z?#JQd*I+^DVIX1E#pB4fo`2OlGokP3=Z#P4IRdTERaud(f!;h~k1Gsa?r+{d-u>cc zhlH>Ac~;rLM8&+r-L5Vzk@bG$eYf9iZr`)T&ndn=;%HEE6b&~YER+n^gJ2MqhkRXN4;VzTVl(nyGzK{=)~u8h=&WwdOc3I;b}ShBRRsA3u_%nPe6#l%}EsnlvdOTb&73}YCK^~r2ydT{5*p2gOf_H&WHuenD z7jvO+5cRAUkTOmwd5Y#ak}+~@#_HPIS+l>4oX4n`*SMG`m)D=ikL>muZV$f)$@RR4 z&dAPtMJol|^Ks1aSGhhD;C;R`P2KG(a;R}pAIs3^d1>;eX#1jE&jN`HVS$uKPpecJ z*@BfkE8j>i{u95yI4@H6xHC<+t?+|S3kHP`>aP8V1JvQ50hoiP3)CgD^U(;3Yh+b( z5zB_9hJV;&t1~DtIqkl{;T55*m=C^%R})-Eo%eBfJIw?jIX{3C;e)_( zv=vR*OHvNr)XU^}AgmWslF+de`7sa&*Z$9uDCF|0SHX`sHe-(COW>$nqRzd);;pI5 zwN>cFE*N%c4&i>n>7{bp!l7Cvx$&*RK&6QYPV)6hzmsQvHoLj&QyflPI``xxV}r!@ zQ`L~E3V0vkN==Vny+`R^UT9}&9YQ9&T9KlEO-EbyhkSlby1PriFp)pdR|?N7tR(-w z=G6Kc0nbZ|0VDxNSi@ZMNjf~m?ZKuHyPiafI9n^+ZdbP7&R6`~VV?IB-lzZePx8@X~ z^f5E7>BvJQpMzUjBlo`V=;(LP{#sX9IKX9N5JU#9V{QUiiamlrSw z<@Krhw3%#i!uu`tstdLw4L)hd`e6w5nU>B@2Ds>c-8oADKZ}j!7B5Xd-Ln^pC3 zrY*Gk2m1R|!F&t@sfZ<+@EHYAt_v{|up;$`<`-%|!StPhNt4Hr=aWQMs-W)l7Kv7c zHxzX5QpR-UMS~57T+ za{DzK8J3lST9a*JS{z=Qj}n5L_mY-ydx4$59Tiq;9z-pIc>P!5U=$>e`L%+g-z1yD za_WU_*R>Fh$94!qaXxfvg57aDCH`XwDOvHY)QR|Yo=qQeMsQu> z>BPLSq&vS9Q3ZkE@?n>p^M%~+KZJb1RIh&D;=BpX^n;rj>PU+=D5!M8<%dX1%C=uY zcEYPir--yx-%abJLF0q0;W6Z*zSoN7$-k5$ca0Z>#R7gC4`1`W13CC0St=U8WmoR2 zE(s+ZUi+hgnjrq?*N+!z#XCJ>!I#104>L+A1scvrxxW?2GP_a5r7rdLS^@ncCsn)pR319FpQ>NqKUu=?{A8xsSsovAo~hPGt>Rjs?K z9*Rdlyh1-=`#nDJ1FuRF*5Ztr#MDT>7Q+)!%xd+yPhp%=%XlE);>$NeFIb8>6I7Vl zFBAvRi8fQ_`u;PhpPfSO5$Bq?OzlA^c$W0p67EE%{^j+$ehmJRc!X_3kb>WQr?a9l z%Vw%=6a!wM;#w2srO%HeHh6_O1pnG&zAbQ~Ce27(EJi#7r>Ds%I6ZTY=oPPg_kWnO zLPlv$xCuclfk(`*64=EjG|$xCNf#O!zxXwuZ#MwRvBINlVc7TcHhRGR;}MMph!d_9 zSprc}gk4#m?z-h9wRM{bw?Utc557S2iRN^4E9iGO`@wHV6aS>%k3~ZM?%Fi)Hq9!( z*Xm^#_k@@(5aIXKIdAeHqAf3}8c$8_r^SK1&XdYSNZR^X*93hYzY())wbY15F~Dm` z&ZbK&G47R{)aBl*I*FkTWu4qO<3i0pH|H}k6j)oO zCZ*0#w2)iXrt*`IK~1L~&ot-@0AO=?Dwm%dc*78>8F zdQL_{NyPaT-d^Ei=wMEP<^9iYiY}+`B0uebB${DPSNTy;>BAxs$B9mvA`Y2)-7*(} z&H5DL$3q)-vNc7;JM#6r72QolV}U931(FXr*(s z4*U)TBgs+2=zn$6prV4S2$vU}!FMzfAMUX-Tw?smad8j7J7*|{4v2JfL=+zAK&BQJSRDSE7+QN=Soyw+66xzaBi6^#krBG)^dT%G}=k*+b9+*06~FLW5TCT*-DB?_fu`L{vXD& zuxI!@=>cC03Z`_}JHhy^(KeH&b404s62L`Aljl}`sj?BjQ>4-jA=j9HP;ku}`{$iQ zikTan?%dZnx2yy;f#Id%IuYcpRFEPJA9*s2rb64pXI4m?{ z&qW1!H|w4>q%1WUlTgKCve7|`aol*g8w#}|4!H^6OKCMwmeIlewOC{%l}(0O1%j7l zoSg|QREJFrnfks-KS?=7o&G&&knJtmj6xb<@}$)K_B&U`%)#LuhVr%g0Gk4FRo)}0 zgoE`(S>3XXjJxl-JO3~JNdp!MP^LONvs(Lqi2C5okeCx?9%_%lv4cqhG=O;O>=8hI zGO0FjfqDbcnX$Ebt0`4m;ob&t+wNJc6{B_~98%@k>V^v1mvT?A=P!UIX8wZh@H1v)6xg)PI%@Ch{M# zF_0WSl$9R!05Tp-pI@RDCm(zT7Zr^afmPFccdjHgKMx(Ioiz082RFvx&)#XnKOcTE z7{K4+0yW4rvR#k~R1=AId~uZR*U24!olPJvR(WpeL3*SvOEZ$fF_zAMOd6 z{l>27j2+GVL;M|7)Gsb4fW=NV?B}C6r%mqU!NyZqki(ffd1_8_5VO#7xSRKmsNKZ5 z`v1*FBI}Gh5$2*onE7WQE96ptt?VFfVF37wHhWgOBd`c;V=A8QTI5D@T0f2hQ`n8) zSFrQxf%N0I@o_Mc2iNSrCbv#=;z zvf#{+cq#~}a2Y4Ww_mXje_-(T_Q@@Q4KlM_jGy9QE4pT^2egcBip-0T9R#YAQ$b1s za6zNRdlK9J7F8d1NznIOiTK-skBr4QOh&F4h88*Bp*f|vSC^(8FFR(jK_-V$UMVXr zPz^X&r~sX}=?xJ;;kGin%qkG{#ME3$q+zNI4!{HaC^6E<{>2%}NOB=IET zi99ou`&sV{Q5vu6o&-hlST#HBsG{fIg9fQ};nSTfO%{)XSJP0tfA{=x3S@?R+fYOO{x!#4zur)RZK!Z;gyK zcS(wzMcG?6-LsOcb+{7tZO;^}rfGEhV#Ap&DCr@1`nB&=PNlFs;H+X#{2h!a#v8xxX}SicmtW>98P1a18xw){!QZcvrouwyxmR*G1zVxFYLSck?hx_kSXaCFyvyGXHd2fH(^KK zmlSTXc)(Gg2>#bJgd58^wT=QP3AfW-3(D(U^th^6CF1Gb}O^;}G+P z6V&}FDe#bc&BxDCaFrNF&w`u2GGa#nh~62Rh|^fJCSiFmy1QkSU(=)t`O^qI{*Ru{ zg}A}L7G-qz|BpCGIdyfOh1>I8e_>3+zq@iQPhD7duMtx$b2#;G~E2s{E#2gNC+mktw zIKK5J=;<4@63t!2?3?;Mn2t!3U>PoZu*c>xl8^0e(U)lIV(53lOTgc*8VqS{rijHb z5}~NwHU6Ct%2hQurm7+UHdGyG>&Z$8f+HWd($@BCE;+XidQSa=p-o`?tw56&O&bFY z0A1mvVNFYf&)9O^BFF&P%jM%O zcQ4y`iq^gUC987Y!|<&-9f_=1D|m54r2)*&9J*x3BcnKNlNiqppSd zDXtO5hp#n-yBMwu_u-dwO`!#Y!sF+Q-d=E4J>A2pQ~C#@O);V2A%ZXI5Uaz6e)fyl zw{7$N!a=i|hWT?oe2lxNOzq|oN1}G$*mXM;mlqnaKe@n2`m}x;oy7~N0CCQ=p-=Bw;~2p1w4F|sH&GR>OuhynWUl%MTa}J=ztvc271{IU)aO5v zIyVMCcKk~`7#3&v%e=6HD>YPN2qy(`L<`5K`?U&RFxiZ6JlX@JHXWNjc(3gWD@4~m z-SVM!9(&ir13B+K@7lme+k{f=O>40}BE3Y34er52#M5eBU1OKh3!FV^4{y}w1FA~) zRAX^r(sxq0{J+u>c{{U?m1vlxwjmSiZIdctf7n3n@O$^^H8_<@^!{7wpou?z^Fb!{ zOXnb}@gV5i*an)HX~H)UQ`^AI*X~|tV1~!nK2K*{9FunOAD%J3D5MthPX)QEPq8m` z?qXf}HWep4<&p_(z5?0S3t59i^W5{4TW#rjr*-K2NI5*pI!w#xUBS0I^Q@O_q;^d z9%)yv0S4m>_AWGDn2leI?pPcwd>-C;H&g~EWPt;7AxaO&@h=w(8h`Dwp0DZzw19JO zXLhy-I6wnDL=ooE9|I6;&akJ>$9VJV4`ub9&+KD{cdfFnz50AFtkBJy{Hd}2nfP3v zKgG_(hF7<`eQRkB59r5yy1<;s?7oY}{Za{z0JI*;So-3^+FU^uAfM-cURVaS;qk|? z-`>yq=fK=+x) z&2xLPTmM>c=rtm!yk{WIgmj!ys0IxZNyzl1v<#zg7`i-_`E>6!K zd*ybF;GVSZ??9Gh7oF%jv=C(RGl7PQY--4yznEza^d=7HWi22LslOxW`fio&dh$94 z7IgDpI|JtWT98x9b;mnLsi9{A=`w zI`|&(!3A#%I^yZWf9Ta+uy#QMMdgpGkywYt^zd}eFROik;^2YUpv5GjowPuvC~isX zWD;&%Q0k=2|-3PA!4E(D?82ALU4@jwbPY&(er!?L-s~9`K zE%jUrd5h?XVhi^$CP`#5-7Ur8gCjchB1U^1jBM!@y?vPdKV4n4#xCok299O@1RE^J z1f=&|1Uab=xcS88Y;)k$jVwR6Y{4t8-jFhvd@rNgD}5i;rZ_jH)xBLt3slLh0UHb~ zJVF0~qXgNflqG!$>O1{_8Cjzg|WrrGM@>pw5dAP+Ju8Oy339R1?o=jyp>G{^-iPUH$9oP> z2inv#d*7qF9|WmPuBu*XOC{`}3(`4sdT{u(f6H!Lr4yj^LNN*{M&luaHl7rpRe-oF ztpe_o`yMhv?>jj3fufb$IxfZX$EG?jES5Y0q?sg2VXU*~vlcnNItIG52up~Gx&6#Y z6{B(O?Jo$+tYXiUKS}5=ZdP>R+2c*kbT#dvXl{0v66ACYq6wGv%2?9qpW?vJdB}Fk zIW2!y52%KhH@nxYUU{x0mpqL-ABywwo!O|q)-1kvF4yYaaK8S+Y1@Cgs_CtZt1IOk#qITnl**zX~ z^0nZ}vZI@LR|cZN)b-v&+xUi?Lh5Z`VThYjGZxO$C7X46)$WP9(oNNj(`3D$64|UR zSxE8zq9KrN&Gz!~fTJ+7xME`=k1@xBSpgn7y-Ek|sO5tU={HYsEb-4%`}^>vjM7 z5uXM64zhEY)^l;}KN$3P`8tM348nG{40?>bXNB?xjfJ&c}qXMH2e!tNtONfT%yW*L*OOUplRS5P&hYx&mK;RvieT z^-SxpDU~ZXXk^NKACM?c=QwlPMg=HW$Ws}E&nlz^)F*^{rj|+KcEur!_LPIs$WYyC zK$j=EOM^*s-?e60O}Rh_y^~`mli#%O{QIqseGw1p>3s{o z=u~uWoZ7mu-8q@AG?EihhayfiCY|xxBA{8(6gkmJSieI77_FP4HpS}R?nr)(A4dL} zi<7fqT8-lpS^QFzA2J1oYzor%y~(wNC~fRt^kv-0o|#my zN6jn`&ie8Pkek9Ujozv9iVarYjxbHAj*1GI(T2Cw`$7`$<>4<0+#maR${COhzTN=w zpnv%U1sRtCf*H6j4bqw^al4pgvHT4tuOpnoi=WCq6^8AKFkhZ+P^hg;)@}T6tK?MT?7OE?dRIuG!PXK zUhhrx{IdrjMh^Arg33jzd^QsS7D8~Q<&2qtI0qn{94#CNaNLG!W0~SVa_t<$Epm++ zzDQ~y)9WQVNJ9dCrH`tje~l*aMVkz)(_4xe3-Iy}cvXZ4#ar$`=h*7jjA0!9f(61+ z<@mxO8evO%vMd7(h@yCYb9EsN#jf}o z6$B^xHMEyAb@k>IuVauQK(f)Cf;7{81S*H$3V~j8#hTvWEK-)`pSA%vx ziG0j%kCpdFJ6B*um4G5UWzs&N3;%W=F;jMI;O?D(C{7o8hpI&DZ+xIA|I-D8 zziqD6-T_|#CZx!tYRQ5Q{PlgppWq(Z-XMIe2zuY=Rp5@z{(4g#m_1DJ^W9c#^!3=?Y9?3zW`?Zxr z2o_W(d|Zo{l{pl;!CJ6DyGy0kiB2`zxYAkYpFOzv^e3raYE_l@2B$yN_6Vtsz@?tN zCrgtCkUK4REABVw{gq)h671kD?(E#nFNPQE)T5c)1gVj!(@c;V{<<{)#OUoDfGfWZ z#f6o&R}+2+T@C&`Bhuvlw#bnW$fsra7@Pzc0rlWl4^uBDBoih)G zeA*rogxSg}!$q3M?`jQ&aCurV^=FMy=1&wPyiu-v_ObuiVy7}*9WMKV1lZ!A&m6uT3lOT`n zCa>fp&gy>~tM*QS_!VKu@QO2Ab_?pqcZ}NO<&ywSR+n6d_<6dqp6%ejlbLm$3%cttgd-2qW9E(~4zGG8G8AVwTTifbaMT_dJ0)~ORVBKds5_1A7>0XWyGn@Yp7v z`^`4&U8`ynF@B*tmo|sPh~ngNQfS5=ALMU#l`$#ZqM1`-iKy^A6vR2J{D*Xkdc*`6 z%Qjq(+Vl9R_tbYm>>(UK`0cB2OSt+muV(QJvzM7_u%dZJg8Q-2Urx4rwf2bl<=xXt z83C!zfX2$wpgx<6qQIz(!`nDpWId&{5rbOK6&WC%=QwzEr+i8V|Iy56%_MROPmI68 zKBPu=(d(ABnFE$V-9j~9F=WWfmU=R@}{o6NoN<^rIdQgw zRoMz7@!^=!4d|BC5G7C6r7pOZ=2RRCpY?BL`77`2bzNx^8^I~2dey5ibm8fAd%0QN z+-%m}q?xM-=kuyCUp&yAmN0|{7`N2AmgWUfI`x8B`rCgqEDE)v8RX%mP!?9la`dK!gl4jA9q)%P%%d%YPkEU*0Z|_#iv5|%pv`2l19w)* zUVWlaw($5~F+5Px-n-3%13yTv7F3UlINJ2P!3Rb9UIyBvG>dMj2A8GMvi8?_e;>ypP7v06Jp;+%+XoW@3tK zKFK!j;(`D_LXfyiY=9YVmTWomYx@GkFf>4-ngoh=Y%%Wpp#KCy5dywI5=1$-x&%rD z13-d~>Er7@d_Z0z!H-vnVl@TyzX13fKnX3f)mJbQKr0cUVE|mRCHnQqIrDhFKk~1_ z30S#ei_qo8Mz&I`2d~nceu2}-Y_W_D57g!U`+r}=ZTn+eVowg+lnF`$Ur8XL|IKrN zTfKq{IfwiOW>P@_A73F`ecl0ofSW(m&$Z2o+q3ckt7;Nw* zgQ!Y8-8BQhUWB54J0k|`tGpV)<7S&Agw)a=$*#N@V2*$b<4OWE62XCI7&#iZB_5Nx~TXrq_ZrBTpno^cPz=h?P34KVr7OAKyM#haJMS zsw2k#X@$sQ^KR#5HAoVHLIMH>o&k@@y?x~ZL@3C%?ZIBL9F-G_=83eKx0MmlS7-(w z03k3~an;iFtj6X_czPub zyT2+V<)$J1b_nU4+T9Oo>mRx#a3V z0iLasgSYEdy(@rOfBk4Y?~L)05ryk75meE5Y4;O@?^8-~Rd&W>A*AE*>HERck^nTQ z+E>!SrOoU4Am(5pDZcD+{ornU7h`czF}@5)p7{tDg1^Bf2qxY#_9>flaCR<$kFrM8 zCga3R=C00@MOa^`pAxjWqI!<>@|6<&f5z5 z)w5`?{Huj1K}((+{HFt0$cw)2@~wOl%fDQqDbv=&A&fcI;+t6dW81_+?X95>h> zep&R1RBjg-UcfzfyRP_)X)rT3(_h&m-~CZLWv9JN5P^>%0v{2`>H`>is~41r2LhOL zMZ7|go|~jE&kWdJc{&iu0KkPtypOV-EAq19jOM>c1S7qTlf*>tud~!dM2NfdJhIcmD*R%#XHV<}cJ_Xd~1F z|3|IUdFQjS>S=NNuU6LoEmyVJapIz)TDq~6aWDP9?Uh#_yWL&St(kB*eev$Fj6cE$ z0X7hJpTWKy&OR+3hz@}c_{N5rh>c%Bk0oyKBV4(?&U)Vn@%KM?zr!CdyHd9z z5i#KvcZ6g&co^2e*1O><1$-6q_alnzCX=Q&_Hmae?!@=8L14geEComUk zNe((S%MbcD0m%1|l~iXu%oU+cNmGqn zDQJL?!U(&fYw$8v=we9{#oJ);B8iIC)i>L003cub8`h{*RyoALA@GM7`m5c8HltI5 zsW$*zDs-m_uFdcvTwz+kS4MTS;BlthDtc-9tdD@N^6F-<4+uEInZ?StUm@B^h|Is2 zd3EXeyz9&TrdIAw`!Nn3AQO*7iVFa|k^hE;xO0V6(1r2_aRnIx2@>Edfa&+ER{)8x z1oK}3fR7UBP7(kB?nh+)kBDn8KmNbff}@|oTMjJe^X6?etCLywWO)4)gkmBlS6|FG zM_=ZIXVMb}lUN1H2q(w9IOajHa0i*u1nLIwjtds7ENNcVfA}1e=6EBVpFRVuprHpqu8W`BFmNp-KPZ@)KWmv4vLIL_mE zN#>jDVMF)hU~I4TPN(OoK%g{WLLA}AxoKNf6(}EJsE!$C(ZI^)ndf0{-{V=f*QV#x z$_Cb4iuwuGOY&*=x1e+#kEt!2o2rK|E~>K(x~mw_Y{PR@fo<+G0;X8otelPJ>lmT^ z)f8Qx*Gea4OvY6<|Bf|V@0?T`!Y z6Q-@4x1Faf9*UXV7Y*z$EI9oIIhI~%fO`b7Cqn;SywXh^)lb6XF-$D5>`Xt)_A9mg zGL8W%?g8yLT*^W^*1vm0N4;cCPh0b))9yk$?sXUDKt|+n6fux@=&ry{zFExG{umKZ zgf+NGxQEBw#O#yKv7#>J{Mf-ioaco4{#}z)m6*1q@sWNVmFkH^F~9p=z7@wbXP1L- zp<_04xCuUb3BHzebsIFuJGv_mvlP@8hxetGbnQnEagClU!WWPiG%AiUf{V2`fB?iG z*rVRxKRT&S0XsPkilab#9YmZME#-5p@?b}#B*@thTrQda3^-y#aTTC}}$qU1;(p5S={KHQwuXWN?pveJS)d82Q zKN`=uGdn70t2@@}T?eH{Baf>)lH(}ncN+3tzg%#5Oo_C~8ShKO5*s|C8{U&ha9|LaOrl7VNJx+phbyZ^G4+kUVHmd}`%GOm zp#M8FeQ!J`sO!=EROseUV`G|QKtOMn&(woI;XJ*#D%9;_?3k^d5uMhk%w80Fu#}KNV}6Hr$_M^|I*;Y=8Jp&si8?=5J#|HVtz7Ehk zwWEL@dG5&Ui9)^1X8cp_yNp{Z8tQkSXPM77tbwVr9qaMC4;iCWzuB&=2d~WE?aS5= zb;;)=+19h&kpDJ^`P9$bJU|JFGqmvCNJcHxfj&TdYh;@IFR#M$mj~i-)kl6aqRaG* zmH8IQ^sMyXV>MfxI9{)RQGMb`pMxtOer9B$jJCxiu4*VRA^l@^kf7b`8pM%)S(r7* zL$9a@JZ8Ij=Yr1$_&}n{x+3D7r&daatv8<$mrm>S_V!Q6;c)BF zd@u5q2PK27Uuc_Oq_=+Z^dPL+kh}@==m2Fb`kdvX!453LaqU%U5qy+EYSaGv9>Ha6 zgNLx|YQyTDqENdc!&xH{^j;M@owm|5bl~WM{OQv-)b?QtT;1|=Wt7bYK@C85`IHcR zXdj<(Z4Q>fSM8Oz8(E^QM}TY*vU-)B@;L{4lhp!ug zZCfON2wv@F;NUuUz#=DQzck$KIpIezqaqPWq#y)gJOq; zi7sm&N3PDZk?{ZD5$B}6zUw*bg={;@!?+a^RL`~HL~B^ zLyse6Kkl}i?`rpM_j60VQ!ECF_tvf5cl%8BJeRdc7HRyrQ#MO`Y1zenEJ>@3zh8d! z@%@F5GA3uebWDzYo-00M{ndt*!fDcvEAPeB=gM_HPyYOT!e`&dmWsE0%FJvk4N_V9bLC7e(JAH!tWB@w6hEhlD@Ar znWy`&O1?JEraAp{f6wYqVz-l&Z-|}ev+F36yRoOJY}L1E@646~lSvyenauodJ=Nqx zOpof5_9t8Zdkdv)ezwqlUVFeLHG@m>jjJ!|_kPrQmdNsW=AC9iIsa6T{Vys5tFAWB z=uAJmaA$jF%=X%kZ`!t9)!&!8zwzVQi4*U5e4Qe`x0n6=Gx?nx`5#Arv~j*CmRcsc zZf?rg&mPkuwhD-yU-s4{-YH?tt4peK-w&STm!ENd!m_;QvQyYM-4NaQerNB?TM_4! zbjy7fq~(XoEHCoj@8mA`+~sEJ<;g*(6A}+O2BwI7&sjP1&xUskF3mjNaw6s}H>+F7 zT-#S#dbgFmP9B^V+xz^tyH@Sftm*G`?v`(;4-lGuGSw$mE#3U;>Y1s%A6J&9*JjyR zELwAStwljq*FKPwdo^0m>dbj}KPl)s-yemjjXX=$)o*>V|GxE`%NP5EK#>!HOAjuo znfK&!ONH0WB`h~S>V4D{QMoeV*V%xNKKo6|mGZ*ZceTHkf2nyktwwleQ^l(5vsz7~ z`(B(VY3W~~zH?H`Jlz_V@C=#$`-d|PA%H1b*&o{8btSOZ0(3@cMVj~UGiy{ zQGT~}U81_$*`BvwIzFwOm|XVE_e1m6PIGHb#YJLCAl;fDh59=F6^gkw3J6{_+@!(P z($Ud35vbqArKCrvi%C&wQF2P42#27ctTNC!9UU(uB1Kr8TwIQyP$CliGPf?zIb^`o zlK6$~o0!&~$pw<;g5TI~sk&ZiW#O)w@M!O=`wz7F_!vOopZo3kj0`?2o^miG916O| zzyRzWd;)e9fanRZ>jUhPoKT&|P~aQg9``GvJ)e`|!{IQyw~P!mrPrRm4g3|cm6hSa zGfsx>z-|vzEwFb#!5cW%V#BBqF6z%Pqd2b)cqRZEII!B*LIHRj1B1Yq|E2a$tZ34x a+y~k&e_oYjUl9HQ68CiVb6Mw<&;$SrOvax8 From 6d2985e12f07048695aa5cc8e666cc1321e13d43 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 20:28:51 +0000 Subject: [PATCH 02/18] Fix typo --- articles/quickstart/native/ios-swift/01-login.md | 2 +- articles/quickstart/native/ios-swift/interactive.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/articles/quickstart/native/ios-swift/01-login.md b/articles/quickstart/native/ios-swift/01-login.md index 977ac9eac5..4ba858c754 100755 --- a/articles/quickstart/native/ios-swift/01-login.md +++ b/articles/quickstart/native/ios-swift/01-login.md @@ -68,7 +68,7 @@ This will add your app to your Auth0 tenant's `apple-app-site-association` file. ### Add the associated domain capability -In Xcode, go to the **Signing and Capabilities** [tab](https://developer.apple.com/documentation/xcode/adding-capabilities-to-your-app#Add-a-capability) of your app target settings, and press the **+ Capability** button. Then select **Associated Domains**. +In Xcode, go to the **Signing and Capabilities** [tab](https://developer.apple.com/documentation/xcode/adding-capabilities-to-your-app#Add-a-capability) of your app's target settings, and press the **+ Capability** button. Then select **Associated Domains**.

Screenshot of the capabilities library inside Xcode

diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index 7346189c5e..c9d8f0a41c 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -84,7 +84,7 @@ This will add your app to your Auth0 tenant's `apple-app-site-association` file. ### Add the associated domain capability -In Xcode, go to the **Signing and Capabilities** [tab](https://developer.apple.com/documentation/xcode/adding-capabilities-to-your-app#Add-a-capability) of your app target settings, and press the **+ Capability** button. Then select **Associated Domains**. +In Xcode, go to the **Signing and Capabilities** [tab](https://developer.apple.com/documentation/xcode/adding-capabilities-to-your-app#Add-a-capability) of your app's target settings, and press the **+ Capability** button. Then select **Associated Domains**.

Screenshot of the capabilities library inside Xcode

From 0d413665cef53be8ae0869ac60ce53108ff277c0 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 20:51:35 +0000 Subject: [PATCH 03/18] Reword sentence for consistency --- articles/quickstart/native/ios-swift/interactive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index c9d8f0a41c..fe08f3e9b0 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -156,7 +156,7 @@ For further reference on Carthage, check their [official documentation](https:// The Auth0.swift SDK needs your Auth0 **domain** and **Client ID**. You can find these values in the [settings page](${manage_url}/#/applications/${account.clientId}/settings) of your Auth0 application. -- **domain**: The domain of your Auth0 tenant. If you are using a [custom domain](/customize/custom-domains), you should set this to the value of your custom domain instead. +- **domain**: The domain of your Auth0 tenant. If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. - **Client ID**: The alphanumeric, unique ID of the Auth0 application you set up earlier in this quickstart. Create a `plist` file named `Auth0.plist` in your app bundle containing the Auth0 domain and Client ID values. From 88090b7c62567a4d861a69e45fd0ebf25f36e886 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 21:10:45 +0000 Subject: [PATCH 04/18] Update the sample instructions --- .../quickstart/native/ios-swift/download.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/articles/quickstart/native/ios-swift/download.md b/articles/quickstart/native/ios-swift/download.md index a850e7f1cd..7e03f466df 100644 --- a/articles/quickstart/native/ios-swift/download.md +++ b/articles/quickstart/native/ios-swift/download.md @@ -1,17 +1,29 @@ +## 1. Configure the bundle identifier + To run the sample application, first open `SwiftSample.xcodeproj` in Xcode and go to the settings of the application target you want to run. There are two application targets available: **SwiftSample (iOS)** and **SwiftSample (macOS)**. Change the bundle identifier from the default `com.auth0.samples.SwiftSample` to another value of your choosing. -Then, go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URL to **Allowed Callback URLs** and **Allowed Logout URLs**. If you are using a [custom domain](https://auth0.com/docs/customize/custom-domains), use the value of your custom domain instead of the Auth0 Domain from the settings page. +## 2. Configure the Auth0 application + +Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URL to **Allowed Callback URLs** and **Allowed Logout URLs**. If have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `YOUR_AUTH0_DOMAIN` with your custom domain instead of the value from the settings page. For **SwiftSample (iOS)**: ```text -YOUR_BUNDLE_IDENTIFIER://${account.namespace}/ios/YOUR_BUNDLE_IDENTIFIER/callback +https://YOUR_AUTH0_DOMAIN/ios/YOUR_BUNDLE_IDENTIFIER/callback, +YOUR_BUNDLE_IDENTIFIER://YOUR_AUTH0_DOMAIN/ios/YOUR_BUNDLE_IDENTIFIER/callback ``` For **SwiftSample (macOS)**: ```text -YOUR_BUNDLE_IDENTIFIER://${account.namespace}/macos/YOUR_BUNDLE_IDENTIFIER/callback +https://YOUR_AUTH0_DOMAIN/macos/YOUR_BUNDLE_IDENTIFIER/callback, +YOUR_BUNDLE_IDENTIFIER://YOUR_AUTH0_DOMAIN/macos/YOUR_BUNDLE_IDENTIFIER/callback ``` + +Then, scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to [your Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to the app's bundle identifier. + +## 3. Configure the associated domain + +In Xcode, go to the **Signing and Capabilities** tab of the app's target settings. Find the `webcredentials:{YOUR_AUTH0_DOMAIN}` entry under **Associated Domains**, and replace the placeholder `{YOUR_AUTH0_DOMAIN}` value with the domain of your Auth0 application. If have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `{YOUR_AUTH0_DOMAIN}` with your custom domain instead of the value from the settings page. From 0a56c47c5bed6e3ce52a4739f0f64e40f1543e77 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 21:32:00 +0000 Subject: [PATCH 05/18] Update download.md --- articles/quickstart/native/ios-swift/download.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/articles/quickstart/native/ios-swift/download.md b/articles/quickstart/native/ios-swift/download.md index 7e03f466df..7e665eede6 100644 --- a/articles/quickstart/native/ios-swift/download.md +++ b/articles/quickstart/native/ios-swift/download.md @@ -4,9 +4,13 @@ To run the sample application, first open `SwiftSample.xcodeproj` in Xcode and go to the settings of the application target you want to run. There are two application targets available: **SwiftSample (iOS)** and **SwiftSample (macOS)**. Change the bundle identifier from the default `com.auth0.samples.SwiftSample` to another value of your choosing. -## 2. Configure the Auth0 application +# 2. Configure the associated domain -Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URL to **Allowed Callback URLs** and **Allowed Logout URLs**. If have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `YOUR_AUTH0_DOMAIN` with your custom domain instead of the value from the settings page. +Go to the **Signing and Capabilities** tab of the app's target settings. Find the `webcredentials:{YOUR_AUTH0_DOMAIN}` entry under **Associated Domains**, and replace the placeholder `{YOUR_AUTH0_DOMAIN}` value with the domain of your Auth0 application. If have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `{YOUR_AUTH0_DOMAIN}` with your custom domain instead of the value from the settings page. + +## 3. Configure the Auth0 application + +Open the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URL to **Allowed Callback URLs** and **Allowed Logout URLs**. If have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `YOUR_AUTH0_DOMAIN` with your custom domain instead of the value from the settings page. For **SwiftSample (iOS)**: @@ -23,7 +27,3 @@ YOUR_BUNDLE_IDENTIFIER://YOUR_AUTH0_DOMAIN/macos/YOUR_BUNDLE_IDENTIFIER/callback ``` Then, scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to [your Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to the app's bundle identifier. - -## 3. Configure the associated domain - -In Xcode, go to the **Signing and Capabilities** tab of the app's target settings. Find the `webcredentials:{YOUR_AUTH0_DOMAIN}` entry under **Associated Domains**, and replace the placeholder `{YOUR_AUTH0_DOMAIN}` value with the domain of your Auth0 application. If have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `{YOUR_AUTH0_DOMAIN}` with your custom domain instead of the value from the settings page. From 507e9e7248130c1c81ac1f8404b159532ff25b0a Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 22:58:42 +0000 Subject: [PATCH 06/18] Remove conditional example --- articles/quickstart/native/ios-swift/01-login.md | 8 -------- articles/quickstart/native/ios-swift/interactive.md | 8 -------- 2 files changed, 16 deletions(-) diff --git a/articles/quickstart/native/ios-swift/01-login.md b/articles/quickstart/native/ios-swift/01-login.md index 4ba858c754..92edd478bf 100755 --- a/articles/quickstart/native/ios-swift/01-login.md +++ b/articles/quickstart/native/ios-swift/01-login.md @@ -78,14 +78,6 @@ Next, add the following [entry](https://developer.apple.com/documentation/xcode/ webcredentials:${account.namespace} ``` -<% if (!account.userName) { %> -For example, if your Auth0 domain were `example.us.auth0.com`, then this value would be: - -```text -webcredentials:example.us.auth0.com -``` -<% } %> - If you have a [custom domain](/customize/custom-domains), use it instead of the Auth0 domain from the settings page. ## Install the SDK diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index fe08f3e9b0..352516bee0 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -94,14 +94,6 @@ Next, add the following [entry](https://developer.apple.com/documentation/xcode/ webcredentials:${account.namespace} ``` -<% if (!account.userName) { %> -For example, if your Auth0 domain were `example.us.auth0.com`, then this value would be: - -```text -webcredentials:example.us.auth0.com -``` -<% } %> - If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. ## Install the SDK From c688c60fa5cf1fed7ac10ea453f72f29412a0a95 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 23:07:55 +0000 Subject: [PATCH 07/18] Reword sentence on the interactive QS --- articles/quickstart/native/ios-swift/interactive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index 352516bee0..f22a271a28 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -76,7 +76,7 @@ com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback ### Configure the Team ID and bundle identifier -Scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to [your Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier. +Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings), scroll to the end, and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to [your Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier.

Screenshot of the iOS section inside the Auth0 application settings page

From 786a5642dc3e4dd07dfa6f0e9fc20694e109883f Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 23:11:49 +0000 Subject: [PATCH 08/18] Reword sentence --- articles/quickstart/native/ios-swift/01-login.md | 2 +- articles/quickstart/native/ios-swift/download.md | 2 +- articles/quickstart/native/ios-swift/interactive.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/articles/quickstart/native/ios-swift/01-login.md b/articles/quickstart/native/ios-swift/01-login.md index 92edd478bf..82a95ff63f 100755 --- a/articles/quickstart/native/ios-swift/01-login.md +++ b/articles/quickstart/native/ios-swift/01-login.md @@ -60,7 +60,7 @@ Make sure that the [application type](/get-started/applications) of the Auth0 ap ### Configure the Team ID and bundle identifier -Scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to [your Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier. +Scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to your [Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier.

Screenshot of the iOS section inside the Auth0 application settings page

diff --git a/articles/quickstart/native/ios-swift/download.md b/articles/quickstart/native/ios-swift/download.md index 7e665eede6..917721f9f9 100644 --- a/articles/quickstart/native/ios-swift/download.md +++ b/articles/quickstart/native/ios-swift/download.md @@ -26,4 +26,4 @@ https://YOUR_AUTH0_DOMAIN/macos/YOUR_BUNDLE_IDENTIFIER/callback, YOUR_BUNDLE_IDENTIFIER://YOUR_AUTH0_DOMAIN/macos/YOUR_BUNDLE_IDENTIFIER/callback ``` -Then, scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to [your Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to the app's bundle identifier. +Then, scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to your [Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to the app's bundle identifier. diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index f22a271a28..b089dc6ab1 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -76,7 +76,7 @@ com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback ### Configure the Team ID and bundle identifier -Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings), scroll to the end, and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to [your Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier. +Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings), scroll to the end, and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to your [Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier.

Screenshot of the iOS section inside the Auth0 application settings page

From 25a6587faf6f4038a56db649266e4dec28bed3e9 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 23:16:47 +0000 Subject: [PATCH 09/18] Fix typo --- articles/quickstart/native/ios-swift/download.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/quickstart/native/ios-swift/download.md b/articles/quickstart/native/ios-swift/download.md index 917721f9f9..9b919ee490 100644 --- a/articles/quickstart/native/ios-swift/download.md +++ b/articles/quickstart/native/ios-swift/download.md @@ -10,7 +10,7 @@ Go to the **Signing and Capabilities** tab of the app's target settings. Find th ## 3. Configure the Auth0 application -Open the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URL to **Allowed Callback URLs** and **Allowed Logout URLs**. If have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `YOUR_AUTH0_DOMAIN` with your custom domain instead of the value from the settings page. +Open the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URL to **Allowed Callback URLs** and **Allowed Logout URLs**. If you have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `YOUR_AUTH0_DOMAIN` with your custom domain instead of the value from the settings page. For **SwiftSample (iOS)**: From c487e5ab813e29f861791a5adea78232328aa638 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Fri, 23 Feb 2024 23:21:04 +0000 Subject: [PATCH 10/18] Use correct heading capitalization --- articles/quickstart/native/ios-swift/01-login.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/quickstart/native/ios-swift/01-login.md b/articles/quickstart/native/ios-swift/01-login.md index 82a95ff63f..a466a5dbbb 100755 --- a/articles/quickstart/native/ios-swift/01-login.md +++ b/articles/quickstart/native/ios-swift/01-login.md @@ -19,7 +19,7 @@ useCase: quickstart ## Configure Auth0 -### Configure the Callback and Logout URLs +### Configure the callback and logout URLs The callback and logout URLs are the URLs that Auth0 invokes to redirect back to your app. Auth0 invokes the callback URL after authenticating the user, and the logout URL after removing the session cookie. From 99ad3db577f698bbe09b02fcff5cb801a8625764 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Mon, 4 Mar 2024 21:23:36 +0000 Subject: [PATCH 11/18] Add notes with more information --- .../quickstart/native/ios-swift/01-login.md | 18 ++++++++++++------ .../quickstart/native/ios-swift/download.md | 5 +++-- .../quickstart/native/ios-swift/interactive.md | 12 +++++++++--- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/articles/quickstart/native/ios-swift/01-login.md b/articles/quickstart/native/ios-swift/01-login.md index a466a5dbbb..96b7e6805b 100755 --- a/articles/quickstart/native/ios-swift/01-login.md +++ b/articles/quickstart/native/ios-swift/01-login.md @@ -25,12 +25,16 @@ The callback and logout URLs are the URLs that Auth0 invokes to redirect back to If the callback and logout URLs are not set, users will be unable to log in and out of the app and will get an error. -Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URLs to **Allowed Callback URLs** and **Allowed Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use it instead of the Auth0 domain from the settings page. - ::: note On iOS 17.4+ and macOS 14.4+ it is possible to use Universal Links as callback and logout URLs. When enabled, Auth0.swift will fall back to using a custom URL scheme on older iOS / macOS versions. -**This feature requires Xcode 15.3+**. +**This feature requires Xcode 15.3+ and a paid Apple Developer account**. +::: + +Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URLs to **Allowed Callback URLs** and **Allowed Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use it instead of the Auth0 domain from the settings page. + +::: warning +Make sure that the [application type](/get-started/applications) of the Auth0 application is **Native**. If you don’t have a Native Auth0 application already, [create one](/get-started/auth0-overview/create-applications/native-apps) before continuing. ::: #### iOS @@ -54,11 +58,13 @@ https://example.us.auth0.com/ios/com.example.MyApp/callback, com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback ``` +### Configure the associated domain + ::: warning -Make sure that the [application type](/get-started/applications) of the Auth0 application is **Native**. If you don’t have a Native Auth0 application already, [create one](/get-started/auth0-overview/create-applications/native-apps) before continuing. +This step requires a paid Apple Developer account. It is needed to use Universal Links as callback and logout URLs. Skip this step to use a custom URL scheme instead. ::: -### Configure the Team ID and bundle identifier +#### Configure the Team ID and bundle identifier Scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to your [Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier. @@ -66,7 +72,7 @@ Scroll to the end of the settings page of your Auth0 application and open **Adva This will add your app to your Auth0 tenant's `apple-app-site-association` file. -### Add the associated domain capability +#### Add the associated domain capability In Xcode, go to the **Signing and Capabilities** [tab](https://developer.apple.com/documentation/xcode/adding-capabilities-to-your-app#Add-a-capability) of your app's target settings, and press the **+ Capability** button. Then select **Associated Domains**. diff --git a/articles/quickstart/native/ios-swift/download.md b/articles/quickstart/native/ios-swift/download.md index 9b919ee490..763b558885 100644 --- a/articles/quickstart/native/ios-swift/download.md +++ b/articles/quickstart/native/ios-swift/download.md @@ -1,10 +1,11 @@ -## 1. Configure the bundle identifier +## 1. Configure code signing To run the sample application, first open `SwiftSample.xcodeproj` in Xcode and go to the settings of the application target you want to run. There are two application targets available: **SwiftSample (iOS)** and **SwiftSample (macOS)**. Change the bundle identifier from the default `com.auth0.samples.SwiftSample` to another value of your choosing. +Then, make sure the **Automatically manage signing** box is checked, and that your Apple Team is selected. -# 2. Configure the associated domain +## 2. Configure the associated domain Go to the **Signing and Capabilities** tab of the app's target settings. Find the `webcredentials:{YOUR_AUTH0_DOMAIN}` entry under **Associated Domains**, and replace the placeholder `{YOUR_AUTH0_DOMAIN}` value with the domain of your Auth0 application. If have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `{YOUR_AUTH0_DOMAIN}` with your custom domain instead of the value from the settings page. diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index b089dc6ab1..0548cb691f 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -50,7 +50,7 @@ Add the corresponding URLs to **Callback URLs** and **Logout URLs**, according t ::: note On iOS 17.4+ and macOS 14.4+ it is possible to use Universal Links as callback and logout URLs. When enabled, Auth0.swift will fall back to using a custom URL scheme on older iOS / macOS versions. -**This feature requires Xcode 15.3+**. +**This feature requires Xcode 15.3+ and a paid Apple Developer account**. ::: #### iOS @@ -74,7 +74,13 @@ https://example.us.auth0.com/ios/com.example.MyApp/callback, com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback ``` -### Configure the Team ID and bundle identifier +### Configure the associated domain + +::: warning +This step requires a paid Apple Developer account. It is needed to use Universal Links as callback and logout URLs. Skip this step to use a custom URL scheme instead. +::: + +#### Configure the Team ID and bundle identifier Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings), scroll to the end, and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to your [Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to your app's bundle identifier. @@ -82,7 +88,7 @@ Go to the settings page of your [Auth0 application](${manage_url}/#/applications This will add your app to your Auth0 tenant's `apple-app-site-association` file. -### Add the associated domain capability +#### Add the associated domain capability In Xcode, go to the **Signing and Capabilities** [tab](https://developer.apple.com/documentation/xcode/adding-capabilities-to-your-app#Add-a-capability) of your app's target settings, and press the **+ Capability** button. Then select **Associated Domains**. From 5792521a3e77bdd20aeeefd56c7b868ef88c3b93 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Tue, 5 Mar 2024 22:42:48 +0000 Subject: [PATCH 12/18] Add extra information to download.md --- articles/quickstart/native/ios-swift/download.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/articles/quickstart/native/ios-swift/download.md b/articles/quickstart/native/ios-swift/download.md index 763b558885..87a55aadfa 100644 --- a/articles/quickstart/native/ios-swift/download.md +++ b/articles/quickstart/native/ios-swift/download.md @@ -7,11 +7,15 @@ Then, make sure the **Automatically manage signing** box is checked, and that yo ## 2. Configure the associated domain +> **This requires Xcode 15.3+ and a paid Apple Developer account**. If you do not have a paid Apple Developer account, skip this step, and comment out the two `useHTTPS()` calls in `MainView.swift`. + Go to the **Signing and Capabilities** tab of the app's target settings. Find the `webcredentials:{YOUR_AUTH0_DOMAIN}` entry under **Associated Domains**, and replace the placeholder `{YOUR_AUTH0_DOMAIN}` value with the domain of your Auth0 application. If have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `{YOUR_AUTH0_DOMAIN}` with your custom domain instead of the value from the settings page. ## 3. Configure the Auth0 application -Open the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URL to **Allowed Callback URLs** and **Allowed Logout URLs**. If you have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `YOUR_AUTH0_DOMAIN` with your custom domain instead of the value from the settings page. +Open the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URLs to **Allowed Callback URLs** and **Allowed Logout URLs**. If you have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `YOUR_AUTH0_DOMAIN` with your custom domain instead of the value from the settings page. + +> Make sure you're using a **Native** Auth0 application. For **SwiftSample (iOS)**: @@ -27,4 +31,4 @@ https://YOUR_AUTH0_DOMAIN/macos/YOUR_BUNDLE_IDENTIFIER/callback, YOUR_BUNDLE_IDENTIFIER://YOUR_AUTH0_DOMAIN/macos/YOUR_BUNDLE_IDENTIFIER/callback ``` -Then, scroll to the end of the settings page of your Auth0 application and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to your [Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to the app's bundle identifier. +Then, scroll to the end of the settings page and open **Advanced Settings > Device Settings**. In the **iOS** section, set **Team ID** to your [Apple Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id/), and **App ID** to the app's bundle identifier. From 63a6883805198740b287f6e37f691f74058ef7a0 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Tue, 5 Mar 2024 22:59:02 +0000 Subject: [PATCH 13/18] Add note about associated domains --- articles/quickstart/native/ios-swift/01-login.md | 4 ++++ articles/quickstart/native/ios-swift/download.md | 2 -- articles/quickstart/native/ios-swift/interactive.md | 8 ++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/articles/quickstart/native/ios-swift/01-login.md b/articles/quickstart/native/ios-swift/01-login.md index 96b7e6805b..f26d570bc6 100755 --- a/articles/quickstart/native/ios-swift/01-login.md +++ b/articles/quickstart/native/ios-swift/01-login.md @@ -86,6 +86,10 @@ webcredentials:${account.namespace} If you have a [custom domain](/customize/custom-domains), use it instead of the Auth0 domain from the settings page. +::: note +For the associated domain to work, your app must be signed with your team certificate **even when building for the iOS simulator**. Make sure you are using the Apple Team whose Team ID is configured in the settings page of your Auth0 application. +::: + ## Install the SDK Add the [Auth0.swift](https://github.com/auth0/Auth0.swift) SDK to your project. The library will make requests to the Auth0 Authentication and Management APIs. diff --git a/articles/quickstart/native/ios-swift/download.md b/articles/quickstart/native/ios-swift/download.md index 87a55aadfa..72e7243cf6 100644 --- a/articles/quickstart/native/ios-swift/download.md +++ b/articles/quickstart/native/ios-swift/download.md @@ -15,8 +15,6 @@ Go to the **Signing and Capabilities** tab of the app's target settings. Find th Open the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URLs to **Allowed Callback URLs** and **Allowed Logout URLs**. If you have a [custom domain](https://auth0.com/docs/customize/custom-domains), replace `YOUR_AUTH0_DOMAIN` with your custom domain instead of the value from the settings page. -> Make sure you're using a **Native** Auth0 application. - For **SwiftSample (iOS)**: ```text diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index 0548cb691f..8d9e24fdf0 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -45,14 +45,14 @@ If you would rather explore a complete configuration, you can view a sample app Auth0 invokes the callback and logout URLs to redirect users back to your app. Auth0 invokes the callback URL after authenticating the user and the logout URL after removing the session cookie. If you do not set the callback and login URLs, users will not be able to log in and out of the app, and your app will produce an error. -Add the corresponding URLs to **Callback URLs** and **Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. - ::: note On iOS 17.4+ and macOS 14.4+ it is possible to use Universal Links as callback and logout URLs. When enabled, Auth0.swift will fall back to using a custom URL scheme on older iOS / macOS versions. **This feature requires Xcode 15.3+ and a paid Apple Developer account**. ::: +Add the corresponding URLs to **Callback URLs** and **Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. + #### iOS ```text @@ -102,6 +102,10 @@ webcredentials:${account.namespace} If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. +::: note +For the associated domain to work, your app must be signed with your team certificate **even when building for the iOS simulator**. Make sure you are using the Apple Team whose Team ID is configured in the settings page of your Auth0 application. +::: + ## Install the SDK ### Using the Swift Package Manager From 04f87af21ea9f8a1120a80a85324f7a02e91cbd4 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Wed, 6 Mar 2024 12:10:14 +0000 Subject: [PATCH 14/18] Update articles/quickstart/native/ios-swift/interactive.md Co-authored-by: Steve Hobbs --- articles/quickstart/native/ios-swift/interactive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index 8d9e24fdf0..746720d677 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -158,7 +158,7 @@ For further reference on Carthage, check their [official documentation](https:// The Auth0.swift SDK needs your Auth0 **domain** and **Client ID**. You can find these values in the [settings page](${manage_url}/#/applications/${account.clientId}/settings) of your Auth0 application. -- **domain**: The domain of your Auth0 tenant. If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. +- **domain**: The domain of your Auth0 tenant. If you have a [custom domain](/customize/custom-domains), use this instead of your Auth0 tenant’s domain. - **Client ID**: The alphanumeric, unique ID of the Auth0 application you set up earlier in this quickstart. Create a `plist` file named `Auth0.plist` in your app bundle containing the Auth0 domain and Client ID values. From 6b85a78087ac82506694497ab5928df84302ad14 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Wed, 6 Mar 2024 12:12:34 +0000 Subject: [PATCH 15/18] Update articles/quickstart/native/ios-swift/01-login.md --- articles/quickstart/native/ios-swift/01-login.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/quickstart/native/ios-swift/01-login.md b/articles/quickstart/native/ios-swift/01-login.md index f26d570bc6..098bf2f4b0 100755 --- a/articles/quickstart/native/ios-swift/01-login.md +++ b/articles/quickstart/native/ios-swift/01-login.md @@ -31,7 +31,7 @@ On iOS 17.4+ and macOS 14.4+ it is possible to use Universal Links as callback a **This feature requires Xcode 15.3+ and a paid Apple Developer account**. ::: -Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URLs to **Allowed Callback URLs** and **Allowed Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use it instead of the Auth0 domain from the settings page. +Go to the settings page of your [Auth0 application](${manage_url}/#/applications/${account.clientId}/settings) and add the corresponding URLs to **Allowed Callback URLs** and **Allowed Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use this instead of the Auth0 domain from the settings page. ::: warning Make sure that the [application type](/get-started/applications) of the Auth0 application is **Native**. If you don’t have a Native Auth0 application already, [create one](/get-started/auth0-overview/create-applications/native-apps) before continuing. From 0cef9e9f97d8b923428fde072a85fc3cbcfe2c96 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Wed, 6 Mar 2024 12:13:08 +0000 Subject: [PATCH 16/18] Update articles/quickstart/native/ios-swift/interactive.md --- articles/quickstart/native/ios-swift/interactive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index 746720d677..0e71da676c 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -51,7 +51,7 @@ On iOS 17.4+ and macOS 14.4+ it is possible to use Universal Links as callback a **This feature requires Xcode 15.3+ and a paid Apple Developer account**. ::: -Add the corresponding URLs to **Callback URLs** and **Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. +Add the corresponding URLs to **Callback URLs** and **Logout URLs**, according to the platform of your app. If you have a [custom domain](/customize/custom-domains), use this instead of your Auth0 tenant’s domain. #### iOS From cf6329dbc3f2cc5a7a4c6e0251ff740b2d0c11fe Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Wed, 6 Mar 2024 12:15:05 +0000 Subject: [PATCH 17/18] Update articles/quickstart/native/ios-swift/01-login.md --- articles/quickstart/native/ios-swift/01-login.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/quickstart/native/ios-swift/01-login.md b/articles/quickstart/native/ios-swift/01-login.md index 098bf2f4b0..3bb225c88c 100755 --- a/articles/quickstart/native/ios-swift/01-login.md +++ b/articles/quickstart/native/ios-swift/01-login.md @@ -84,7 +84,7 @@ Next, add the following [entry](https://developer.apple.com/documentation/xcode/ webcredentials:${account.namespace} ``` -If you have a [custom domain](/customize/custom-domains), use it instead of the Auth0 domain from the settings page. +If you have a [custom domain](/customize/custom-domains), use this instead of the Auth0 domain from the settings page. ::: note For the associated domain to work, your app must be signed with your team certificate **even when building for the iOS simulator**. Make sure you are using the Apple Team whose Team ID is configured in the settings page of your Auth0 application. From 2f86392e77cd0e5fd19cff8bfba5b25fe64c3f61 Mon Sep 17 00:00:00 2001 From: Rita Zerrizuela Date: Wed, 6 Mar 2024 12:31:18 +0000 Subject: [PATCH 18/18] Update articles/quickstart/native/ios-swift/interactive.md --- articles/quickstart/native/ios-swift/interactive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/articles/quickstart/native/ios-swift/interactive.md b/articles/quickstart/native/ios-swift/interactive.md index 0e71da676c..bb4f426849 100644 --- a/articles/quickstart/native/ios-swift/interactive.md +++ b/articles/quickstart/native/ios-swift/interactive.md @@ -100,7 +100,7 @@ Next, add the following [entry](https://developer.apple.com/documentation/xcode/ webcredentials:${account.namespace} ``` -If you have a [custom domain](/customize/custom-domains), use it instead of your Auth0 tenant’s domain. +If you have a [custom domain](/customize/custom-domains), use this instead of your Auth0 tenant’s domain. ::: note For the associated domain to work, your app must be signed with your team certificate **even when building for the iOS simulator**. Make sure you are using the Apple Team whose Team ID is configured in the settings page of your Auth0 application.