From 041d6c63c7b9f689e5787c978d22f9614dc1e791 Mon Sep 17 00:00:00 2001 From: Richard Bloor Date: Sat, 30 May 2026 06:59:48 +1200 Subject: [PATCH 1/3] Add use of declarativeNetRequest to Intercept HTTP requests guide --- .../intercept_http_requests/index.md | 183 ++++++++++++++++-- 1 file changed, 168 insertions(+), 15 deletions(-) diff --git a/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/index.md b/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/index.md index 367848c98e2c1c7..1c23a8f29f5a52a 100644 --- a/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/index.md +++ b/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/index.md @@ -5,21 +5,23 @@ page-type: guide sidebar: addonsidebar --- -To intercept HTTP requests, use the {{WebExtAPIRef("webRequest")}} API. -This API enables you to add listeners for various stages of making an HTTP request. -In the listeners, you can: +Two APIs are available for intercepting HTTP requests: {{WebExtAPIRef("webRequest")}} and {{WebExtAPIRef("declarativeNetRequest")}}. -- Get access to request headers and bodies and response headers. -- Cancel and redirect requests. -- Modify request and response headers. +The {{WebExtAPIRef("webRequest")}} API intercepts requests by adding event listeners to the various stages of an HTTP request. The extension's listeners can inspect and modify requests programmatically: getting access to request and response headers and bodies, canceling requests, and redirecting them. Use `webRequest` when your extension needs to handle requests in ways that you can't determine in advance, such as when the logic depends on the content of a prior request or on dynamic extension state. -This article looks at three different uses for the `webRequest` module: +The {{WebExtAPIRef("declarativeNetRequest")}} API intercepts requests using declarative rules that specify conditions and actions. The browser evaluates these rules and handles requests directly, without notifying the extension about individual requests. This behavior makes `declarativeNetRequest` more performant and privacy-preserving than `webRequest`, as extensions don't have access to the content of individual requests. `declarativeNetRequest` also doesn't require a background page and can block or upgrade requests without [host permissions](/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#host_permissions). Use `declarativeNetRequest` when your extension's request-handling logic can be expressed as a fixed set of rules, for example, in content blockers. -- Logging request URLs as they are made. -- Redirecting requests. -- Modifying request headers. +This article looks at examples of using both APIs. -## Logging request URLs +## Using the webRequest API + +This section includes examples that use the `webRequest` API to: + +- Log request URLs. +- Redirect requests. +- Modify request headers. + +### Logging request URLs To see how you can use `webRequest` to log requests, create a new directory called "requests". In that directory, create a file called "manifest.json" and add: @@ -60,7 +62,7 @@ To test it: - Open the [Browser Console](https://firefox-source-docs.mozilla.org/devtools-user/browser_console/) (use Ctrl + Shift + J) - Enable _Show Content Messages_ in the menu: - ![Browser console menu: Show Content Messages](browser_console_show_content_messages.png) +![Browser console menu: Show Content Messages](browser_console_show_content_messages.png) - Open some web pages. @@ -71,7 +73,7 @@ For example, this screenshot shows the URLs from loading a Wikipedia page: -## Redirecting requests +### Redirecting requests Now use `webRequest` to redirect HTTP requests. First, replace "manifest.json" with this: @@ -138,7 +140,7 @@ To test it out, open a page on MDN that contains images (for example, [the page ![Images on a page replaced with a frog image](beastify_by_redirect.png) -## Modifying request headers +### Modifying request headers Finally, use `webRequest` to modify request headers. In this example, you change the "User-Agent" header so the browser identifies itself as Opera 12.16, but only when visiting pages under "https\://useragentstring.com/". @@ -202,6 +204,157 @@ Then reload the extension, reload [useragentstring.com](https://useragentstring. ![useragentstring.com showing details of the modified user agent string](modified_request_header.png) +## Using the `declarativeNetRequest` API + +To illustrate the use of the `declarativeNetRequest` API, this section includes examples showing how to redirect requests and modify request headers using declarative rules. + +Unlike `webRequest`, `declarativeNetRequest` doesn't notify the extension about individual network requests, so there is no equivalent to the [logging example](#logging_request_urls) example. + +### Redirecting requests + +Use `declarativeNetRequest` to redirect HTTP requests. Create a directory called "requests". In that directory, create a file called "manifest.json" and add: + +```json +{ + "description": "Demonstrating declarativeNetRequest", + "manifest_version": 3, + "name": "declarativeNetRequest-demo", + "version": "1.0", + + "permissions": ["declarativeNetRequest"], + "host_permissions": ["https://developer.mozilla.org/"], + + "declarative_net_request": { + "rule_resources": [ + { + "id": "ruleset_1", + "enabled": true, + "path": "rules.json" + } + ] + } +} +``` + +The `"declarativeNetRequest"` permission enables the API. The `"host_permissions"` entry is required because the rules redirect requests. The `"declarative_net_request"` manifest key registers the ruleset file, which defines how to handle requests. + +Next, create a file called "rules.json" and add: + +```json +[ + { + "id": 1, + "priority": 2, + "action": { "type": "allow" }, + "condition": { + "urlFilter": "frog.jpg", + "resourceTypes": ["image"] + } + }, + { + "id": 2, + "priority": 1, + "action": { + "type": "redirect", + "redirect": { + "url": "https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_second_WebExtension/frog.jpg" + } + }, + "condition": { + "urlFilter": "||developer.mozilla.org", + "resourceTypes": ["image"] + } + } +] +``` + +This ruleset has two rules: + +- Rule 2 redirects all image requests to URLs under `https://developer.mozilla.org/` to the frog image from the [your second extension tutorial](/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_second_WebExtension). +- Rule 1 uses the "allow" action with a higher priority to prevent the frog image itself from being redirected, which would otherwise cause an infinite redirect loop. + +See {{WebExtAPIRef("declarativeNetRequest.RuleCondition")}} and {{WebExtAPIRef("declarativeNetRequest.RuleAction")}} for more on conditions and actions, and [Matching precedence](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/declarativeNetRequest#matching_precedence) for details on how rule priority works. + +Unlike the `webRequest` version of this example, the extension doesn't need a background script. The browser evaluates the rules directly. + +To test it out, open a page on MDN that contains images (for example, [the page listing extension user interface components](/en-US/docs/Mozilla/Add-ons/WebExtensions/user_interface)), [install the extension](https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/), and then load the MDN page. You see something like this: + +![Images on a page replaced with a frog image](beastify_by_redirect.png) + +### Modifying request headers + +Use `declarativeNetRequest` to modify request headers. In this example, you change the "User-Agent" header so the browser identifies itself as Opera 12.16, but only for requests to "https\://useragentstring.com/". + +Replace "manifest.json" with this: + +```json +{ + "description": "Demonstrating declarativeNetRequest", + "manifest_version": 3, + "name": "declarativeNetRequest-demo", + "version": "1.0", + + "permissions": ["declarativeNetRequest"], + "host_permissions": ["https://useragentstring.com/"], + + "declarative_net_request": { + "rule_resources": [ + { + "id": "ruleset_1", + "enabled": true, + "path": "rules.json" + } + ] + } +} +``` + +Replace "rules.json" with this: + +```json +[ + { + "id": 1, + "priority": 1, + "action": { + "type": "modifyHeaders", + "requestHeaders": [ + { + "header": "User-Agent", + "operation": "set", + "value": "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16" + } + ] + }, + "condition": { + "urlFilter": "||useragentstring.com", + "resourceTypes": ["main_frame"] + } + } +] +``` + +The rule's `condition` matches `main_frame` requests to `useragentstring.com`. The `action` uses `"modifyHeaders"` with an `"operation"` of `"set"` to replace the value of the `User-Agent` header. See {{WebExtAPIRef("declarativeNetRequest.ModifyHeaderInfo")}} for the full set of header modification options. + +Host permissions for `useragentstring.com` are required to modify headers on requests to that domain. + +To test it out, [reload the extension](https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/#reloading_a_temporary_add-on), open [useragentstring.com](https://useragentstring.com/) and check that it identifies the browser as Firefox. Then reload [useragentstring.com](https://useragentstring.com/), and see that the site now identifies the browser as Opera. + +![useragentstring.com showing details of the modified user agent string](modified_request_header.png) + ## Learn more -To learn about all the things you can do with the `webRequest` API, see its [reference documentation](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest). +To learn more about these APIs, see the {{WebExtAPIRef("webRequest")}} and {{WebExtAPIRef("declarativeNetRequest")}} reference documentation. + +For `webRequest` examples, see: + +- [http-response](https://github.com/mdn/webextensions-examples/tree/main/http-response) +- [root-cert-stats](https://github.com/mdn/webextensions-examples/tree/main/root-cert-stats) +- [stored-credentials](https://github.com/mdn/webextensions-examples/tree/main/stored-credentials) +- [user-agent-rewriter](https://github.com/mdn/webextensions-examples/tree/main/user-agent-rewriter) + +For `declarativeNetRequest` examples, see: + +- [dnr-block-only](https://github.com/mdn/webextensions-examples/tree/main/dnr-block-only) +- [dnr-dynamic-with-options](https://github.com/mdn/webextensions-examples/tree/main/dnr-dynamic-with-options) +- [dnr-redirect-url](https://github.com/mdn/webextensions-examples/tree/main/dnr-redirect-url) From 006c4ddc395d2f320b4d18351ad961b6dac890f5 Mon Sep 17 00:00:00 2001 From: Richard Bloor Date: Tue, 2 Jun 2026 11:35:14 +1200 Subject: [PATCH 2/3] Update instruction and image for Logging request URLs --- .../browser_console_show_content_messages.png | Bin 6597 -> 0 bytes .../browser_console_url_from_extension.png | Bin 17197 -> 81412 bytes .../intercept_http_requests/index.md | 14 ++++---------- 3 files changed, 4 insertions(+), 10 deletions(-) delete mode 100644 files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/browser_console_show_content_messages.png diff --git a/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/browser_console_show_content_messages.png b/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/browser_console_show_content_messages.png deleted file mode 100644 index 4c73025d2c5a2d92abeecab2ada0fb5f952b1d4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6597 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 NTT@@7OzjEmKLGXy(og^Z diff --git a/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/browser_console_url_from_extension.png b/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/browser_console_url_from_extension.png index 66fb5a496611da499279abc2df019d90557787e5..42d7dd20af9ccfd119175fbf16e6f5f0a66ffde8 100644 GIT binary patch literal 81412 zcmcFqQ;#lOtRCB*dB?VG+qSjGwr$(y9`CVj+qUhQ^PP+H6Hb$+SxvLri>6u4^Q=fk zc?ozJ92g)VAb2TBQDq5D-v9JnWYd_nSe!jndK0iLbzrH>{|FfTOZ}0!f^YhEw+uPUI&&$i} z>+9Qpy1##LczASqdG+-4bbWnub#-%neK$8Zx4XOh^z?jnb@lZ4n46n>bacGBy88L~ zeQ|O5@cNyfpMQFK`tb1Z^Yh!$(Yd*~b#ijLu&`)hVHqEvU}k1sQ&Y3Hwq90Nes*@= z)!jWaGvnak=;Go!K0bbRb!}{Ha(jE{J9~b9?&jt`IXQWEcfYi>yt1;In3QyIaJaFt85S1i<>fsvFj!Df zI5af8zP^!>k&%^^b#rt3^6`Cp`%qF+QdCsb+}u)GS!G~gn39sRyu30pIyyhUU}Iz3 z-rgP=85I~9bbNfWwYBZz;|pxKo1LBW_is&0OKWs=%-iSB_RdaUe}6@SC8Lo`ww=BvmPFvYpWaQ=NHq{)0MqPK>9lh3W^ev zQYtE{=XW2^uV2C>QeD7u-BN4=vwlA-}<5Bi;GJ*xOg95KYo7x_9a(e-@hK!Hw=tSM8u^2{{9Qw52H&r$Y_|n{6g7H zJF%^I^+RWmkIxiT)MppBEekINgAeHqyRnt)J15VaR@2+(A0ke3;1G}@jkm6u+ggER zrukR>3%78ly}+8=E@|@$iRTN4?`308(r$xMl?Q%#n_*N?sG z6CfZ$ASqEHRgaCUECX3>E&NgY8+atbp%034(Q4OJD;{lhog#Tr+twf8X6=7*(``}Q z6>N0q!8ql$=b}NHMGaE1%(hU(WtFH6EP+L&VOQ){3U)z=a)uOzm8K{!V)3R4-A9>~xFp*2Un<JeG=%QXy9Dv44K6hPwwMx_zhj*FIf_U2$- zUX6bG8vsP12Km(a%}=u47kl@Z6>l2+07xO0X~%Gg1c!I=F)PhT~wW8jWgAo$ExljPip=r5h{{~I^1#DpG%rZ7|wT6-!rxHbYFH1-Qvr!`0 zNjwj=CVExeJ}67+$CODSS(H1`Q&ur{Gho*&IL6^S&4YQw3R!xXN zTD`VCO~!{okVa04uMYU(W?d8ItEVh70=8X2Gky{VuD=(vw21}bl{_d=qeFb-!W!si zgt;kQoX2e#C#}J5x2ZID?s>!Dwd~F%yTn}7l1eV9qy9dL5LC*IA=X?CSXlrNlmx!) znW621K?Kd?Fx$Q*f1;BPTsnv0O7!)fdy5RKr4UQLHWx%flT=#Koe^$9xHkrC%4sj1 zG(>FP3bKPH!YV5Vllx&mp-_P?+As_yh$Yjbliw8}v`BbG0-A*m<1gzmk>?jZlfwW` z;Gx9{xm*dDotHTH0x&jSt)TV}{)9*eCY|9ph|-D0PJ9{B;Skwoke=^%6HRm|ok%qs zvPrS>W8#G+^yH=s=tAsk=AF1A%F{GjSj0e7vZRI7fs)Kt{bCDDLowP;MhubOHmot` zWE8K!GRHeTkxcdHkKhSl| zOu-W~!q48*mmnR@g$&=Qv?7Qf3D*>88le2*$KK}boD>!YLswyb+w+Dj%LbB{@AJrs z{{WbkFWD^^l{i(2R2QupL6GhdUPqLkDi8}%|8p_!y28g!&8*|(7H$_GJMndfS*DH9 zFD{n#ui(>!JxmbRS^!|%aZy%gfAJ)UE}<@~wQV9F5w?2y%I#&SXkx82|j%EDgvTyGBk;9ai@F>0)ZHu$+(mWBSE$MyR)tWf^`; z#TAu8h7h2vH4e;fsx5ZK&wjQ|$3$BpZ^$i|2Y7d#JcqG?P|wxRpMAY(_g}30`uut< zb*8Yxs)JoJZ<_gQ&6OOiB<`#08B}r`z&*%g{aZRju9)p#NkTo20F$Iz=-bQ3PAbQ( z$MR^{V>FTGt0Id~4z$$JkeCv`-Udp|`ME~9WRd*rgPM>al$xa5x&5*H4pW9R!;ugh zTB<|gaKgK6yW+d5v7Kqb?w&$$dMog1WMVSN=^YX(@LF$Tbm7k^#mC0a_q4MfJ3GO< zsMZ0>Y*8P-gj!B;rc7?lC=OnqQXxFb{c;S*=``O~go^9Vs0zd0SVBd*RHfw-0ozv3 zfS)OGi|C1ug~-jxLFaNdOo6KkvJeLWK4ZHJSnyPS9oE8g(~MaPMYqHDx)xiZ>^u znNJ%d6s(i2uelR2zi?GQ$oQvG94E*+oPKBHRQtE5UKy=o>!CTr?rS=4LdEisT-r z__CQ~>Y`nb9bX%7@{X%ywB9g7p9F96D&#ZGXlk#1=4Us&Vrc&g1!O&9g2i_l&fmkR zIQJ%&ujj3 z+c7)O5_s6=?7?v6*)5iFn566p%iqIdlN0`Gu@y0Y?zI1SW3=1hzQzZ7c@o=ybd(x> z2J1NM(XE3|!o2@{vj;m?4?EgDv5U0IK1Jh}md=Zh*mL;hcyQfeab2+M!3o-nA5%9| z>*bif_#F5I;IUSzkGY+C!aepMF8Yy+DITdlPZDpWl2ArL3{3oQ( z)$OiJ4Zt!&LqI4)H!vz3FwS&g91~~GPbbG8M=wL)9Z@cQ&CW98W%5sqL0x;sENv_# z&0_rY-PpD#(zUfj{ez#MO$7Z1N=e7Ea^oY-(!IHPrQot=BdFZ>zJ|ez&Z@fo zI=ZO4rCO&$ni8vJ6C)TB9-EykgY$7;JWKLV=3hpQwuJLOL4G_`Qf&4|vy;iANpgpj zZ>L$=-G6zu3P+Z$?@Ae&6tiESr0>6ZzrU~kdE-Crje!q0*@y^4$kM>IqA~uHdshbX zuNbNa<@oXfno;QGpwDH^*6eJpK6PhkU$mLSghi>a(9ngYBE9q`mD(vFx#-_ zX=H^1@aCoq0{07o{HxYg|A}#hx9WdmO#Fe}GKd1~LU6Cd0JuO!7X7IyZE#?^zKpC+ z#8=~Vb}Ba^HTK03Cu1nyjfN3QYRIv1rPhM*TjV3GO@%yZl}uBpOw^QMl6Rp@W9 zM@vZm#4p$|;SsAlHX?>70sC7aCBvL!2oRlFW-<&FN znJTQN^sKHB3UVOr2{ejvpMeWkwV|0dvD2jCrsND*LIWH!vH>?CQ&vU%?-#)ALi zy9$;PJDYL!=Y zb02nt5I=P1L+XGQ{{n4s;#xNOg#ePPc90mw_aWpZ9H=Us28p06f|U*-Qi{yb;2B^M zVx*|B{g|?)9pJ!_?@K_%xL618b3l)b9=8$%0ddvKMyd^B&UXBK5V7k_N|CTlZs7y) z9Qms4`x;KvMtOiYW{!f_w*8oJQG8Q`2OdYzZ&SN7hSyrreRCZx+sKKWuU5J?oSul2 zi}Ud9X|I}n#mh;-XYRcD-Fv-);*wS$myRkoOD}`@{wDo8^mix@A372+nQ-xiuRBxX z@y>Q|J5n-clX4StvhjUO=0lOtQniFUERlCFA40i{eJmE%$r2xISqD=r0Yy~w!auD3the7cMPCTRR@wVa}?TFagOtCTd1UhP$0o)LjI-9(OXa~8J=8riiad5 zJq48S6r&O|8!iWuUgGS#3bL#FsR4~^ zHZ-{J%RAV&*_D|b=nNLrmn-BFGqD8SJL$QuNU9#+@36OX#oNE#`Ee$|#s~#4VS`25 z&ZS^rILTZQhQpdz=*4_FXV~RCb^F4Sl9HvOM5Yki=oH}QqO3-4WouXy4W>b6Ql;cm zVW+T?M8j#cVfuyAy~s_dxNTYyF~ChT#tvxfj51(ckYf#CFb~m_Y`VhOgf!w3XwJG| zIOWDnLMi6UIJH=g(1fOI8d^LC;E*`9G;@A($*wJO;kIVW6!Jcf&Ao-dfc9Fw7;ntFqLOe1{QcDc?VTV9d|=h|}bg8llTj5MZuMX zlnhDVVK#YAKx~C*fjc(SUvgq7L33h(oL`U_fsiTp>ga1tymWS`g1+*|MdC>n8_|An#U^c2XEpZrV`(|q zS>RgrXH<398+n$uo&Fm}wX;SOocAu^RxK9!Kx<2HpoF8S+iAX^*a?^K>`M_bP;i&A z(``xxG?d*L z)>c;bnw>4R*cD!Lp&32m2+V-u@V36Myh>oErbDFWQCo%@>K%_B2e4EFxpO6q*+zns76+3n9OlWAquJdIobTT_osC5z>w z*RLihtKp!bU-C`1Z`vpiM4ao@LT@dzYc5xfgUMXc^=%h##aUFxM9#(p%JhEihm2Z0 z1EHexH+o6a@>@yAt-#fmfvk!aKIC0z`JZfM?D~X%fuTg8P*5OxXCP`nto!i=1;_Eh z{r$?wDKRj5zke@l*F}}fP@oV|+6F`J%6nMvnVD*ilNfy&yS=4Q@&8PfuDcOzV15Yu zVxOAL(xFBD7G*nvethyi&2nMhbUXC$^*Y0T-;c+_OmnnJsgzK8BxI!%^|C3tie-^r z^O;MkJP%g^QY>I)OeL%T{*AEa`>}2|7d6-+dT$VMQulxBpk~0wz%vw(`s!h$pfMwC z$oRz?Fs-?XD!39(`g?u~+3M1u-A!5jqsyQ#@ai(8c99j;_-3P8zU0~(DGgzFzF^uG zkd&H>@}edkmxC)QyRuw@dB9xVOi9xqSPIGUO7tZ;w;i#Un%BxkbT~hx&@? zYi2TqoZHCV-2J4hVD#U{&C)HT;eStU3VKCh`-@AZk&EB{L-*T|KZK`8t9*jri#l zh|AEJe0RudrqxkacdmbU>|-RXm0n+1Bvy=dUfucg`Vsd}+SXSnPIk3Ydg8o0d$Z#0 z)ji!=ZTR<+LI~(is^kw`*1s?>wYCCe_SI;pNL@8bKgH}S4XmT0mudxvL{TWn4*BR> z%bC4)G2J>WMRT%0GZ6}vZ?JLeSuJ5FA7E&83aL=a&vIX(RfAQFj+I$M>>@=|1=M2j z;8vn=mQKt^VJ~f86!$?UvsRs?lsda)$dyle>5bXW7fPz2qu^Yd8dP-_IyJ^1g+Rv*Mc}Vok!j<10A7S{wR8RUFWD~$3xYg~MJ^hw1 zehtURCuiVYqm44+qCCGYSQKWLMEhR^sI;EedH}!8Vh9e6E#IozYTou2s9Z9*{a;e2 z7gNyc0wRDx+in>K!bRb4p|N=fv3k`NZsb`C>~4c?V6Y1s>4S-ZE{|*yCaJxuZka6?xs zS6A2I`~A(zdybCNwA`=ltBOzpCTEr6=q4S!;@RuZLon%4N-J8bc8Xg|(Vel)x(*nx zKMM^k;YdtI|u)q07V0}5=_`8 z^eEI#w8)@VJ5P^D($S?vBN|Sbv_l(7wb*42d(8L}SmO1zg)HxXRZ8t_JC5v8i#I#e zR6jj#JgQWq|62XWsud$!@)TvD{MA6oPtc^R&bM3|F&h_9ZGkn{F#wTGjKa^K(bEV~=_KdS>B zl?0jONDY0vNKNvOGCik-&R^$XyLZWp@2ISpB&%={^jw7>Pp<62q}tBqV(@w&g_D&sRan^` ztx8Hmh;6%}BW5AwrZu+avHxs%!IcY{m*7cc)xPYFvF^{;F)p-N-)mG`I+b;OHD=5q z&I?$gRn}Qn>A8iSlf67G=p)nC4f!1cVw%{Is~ z4tdJ*j56Z;zA_;dD3ffiJeSw-G zR>*&vq-I(<9G#4QH4!O zgD(w0h6>6Z5iZdbJ&)6Yy(8H%T=7rwxj21%RxQM`@sqsOi@&TngSbjP;uU7Y&UjrzfNOV0{&OrlS0uu~ zf$=KKl#uB9ha?$sadk-_hO`;UF&YaJEx(9H8#Jo;nZc1HJ+&8^2b3=mrIMK+gG~Tx z_~Ft|!1G5_6U%4zyYDGS69g8;$7ogx<2KlXq9Wn4n6Z%Du=5}MQ=obWlU({!NBJlV zLjyj z>_tP%>&IsyV+=?lK^2yR@vEvo8TDxBqOS)J%4GZdp@m0Iv`hj5n~x$2%%PZue%D0$ z9ZB~Nyx3k^_3Ra>-`x~g7Yya{wkp@EkgAZIXSS8O&YFPy#gp2R_q_>viSO@leffED znw1g#_R(J00-zm*$&G}`7H3Ob%m#b2mOTEQ$%zdhp8Ko`guXOF<7%m(i;*ClblM2> zj(8Af+zaF~1h_nFopw6Sm z0^D9}0G9Xm{kkYayI+QKHG|M=U^3`eN*E2}B>m9Dgd~#d^-IB-B&e-IfWn0idb}YW zpox-(FlL<%2FXn~L+n{p@)q_$6%X_9gXVP$HK-(}hgMQw;})sFfe_Qx)z zTZI99!L{u^P*>eKG7&m}Jb@Ml4u+PpP^l(DKQ;5flg(Jm635sJe~Z#amL)Eu^Hul6)F3Jlf^2%VY~QBbK%RiRe(q^ zV$4l>4${|`T*CG5=WI1Ht73^&u}F_@Z1cSMg*7!$Jv;d&k+V?_e4Y-UgX{vt&Sa~r z^N#OyV&9;8m!`A4)7jK&ZsRsBalbcKh&q!R68LWu#Qumbc}!|*Xwqt>{D89OiVIVk zLvIHRhVK43nd8K@KHA}|YiOWWgG7gIVt%)D8`yfiG^5mmQCFGtaI%jN=ftn5uH0U* zwR*%fj89u51zAawunig7p^A(nk@ijGAx#%!SAE8Snk?O0T8OH2hJVpCMB6Z?2t&Vk ziQ~_t?(*iT29IDQHczlx7MH<*5DBN@RO#Wl{*+u{6T!} z+{Z9sN`3tZ0v7!YyoyGzAMUm-PT)nfhFzP1GBb+$1~Ln zh@RDo%wVXw{ef)qO@ZYtos}n+UjWk^E+oeZ(mSm9eH!g$_){;#gI_;UBuGNGEWf>` zQ3wG?^_|)(a>A(GGp^bzcv4&fzWkz5(tg0pN)y0Bl_^sQu7(ex%~if#;%Cn9&`*D9 zmtcPV$1YK;%7;N3hgIj|A@Hu$SYg6`@pzC4xEz@I_n%-@CKqVh>(HGv)y;f#Qlq7V zDV^v&F%3J9IZ79C)f8z<;+9e8(X)Qz<^~SB_u|@{FAX^J37BoXe1629+Hx;X$?49{ z@XI%pqc#+NfCCSLt35WtjS4WDWs<&Gjkq}kLIP=9C~VHivXV!quTA(MVE;*#z15~hE|MLdXoWpGjq@XTOVyAEmtZ2A8UC%T6%aMzG&6O0*Jec! zl`f=SxiffYj_uq7&6G}s156F2L$r!CC*1*Gm>>HcWm?l2V~y-$p>$On8`6Y^IZ<4=@{qZu&|9lXiKgdl3^TZ|+CTFy)f{u~qvY4r zZ6`AB-V_bwJ>NYb>X36&XW#LYJ5Pmsr*L9{^azFCr#u(#;)=KIFm|;thB%$^=0e+QW6%IgY{P3&! z)ofi`R~YJV-$H|#cZMe?Su%*Amo05nw+k6aB20pjSG-F$gjC@5JkW>4vk<$75AO6! zZX9+_B=7Y76D|#G3v5_9!y!J_=lk!Wyx&ri%f_P*agDX?Ckuh&On$XSyUtJB2x}2! zC>Jb?uWZ@ciX=&uok!_g--M>rv6_#ITb>oU3BJ*DRXS6W6iSFn|5ByOP{B%Dr|a~;{$QIy*4^%Of1Er7JP9;nZM?XutnMf4 zDZFypb}*F{XEIwWZ*o^ISJDxft%$99?Fmyp?$Doda1)er$k$Yt3oOW=J@2NZYhx%9 zr?#A zaB^goo;7684?nWeUFDC{u9sbBI-+J~MoS+wM$C5|U#<>~0VWLRl*R~Rin}cko!xD1 z`+kNeJD}OBN@Cw>QQTVzs+~>_(*E}Z&nl&|2xhESTgmy{&J`>KuGD>5S)21`{_C9^ zt3%DK`Y6Wi&_v5nR6Ru0+K$$$V|p4^O#|wY_oW;o+Lqcy3-X~Y!83S`!+zTPe%Pk` z3cumBuY)^*@65Zm`FrU+^}k}hwAq-&E!=pUnXuda<*{CVT=uhE@5fxTO9DL}THbM*2 z+G$_@brw$g5TX~x9PNfheh7E>pEdlTn0nkFw8UBEJbB3V%oR(gpA|i&iSg5q9W6Ku zvLT4{Yj!#VIp!~a0Lc`&A1yjtEk05{D}u@92)@@FDT$Cr@{o-m&$(F~QAy~Bi^U2V z;bOjiz(nbvW~p1XYrP!ht5l^PX#mp0eWiDC`@FR8{h@SWXMZUF{kf*F`!DT{g)a7~ zGr@9VyR;8}4Q-@4e)LQ=Z{<_tnFh^k!UPK*=VCsr(k<>qu8_sSwn+JDSMt&h_!;Su zFH~+#h`aKfuZwcj3v=qUA>+O~CrijQmf`tTzz7Zg3jSk-Ne4SH?k3ze`TC>rO-Oee z*I&;c%JHA$>FoU9mqUNQ_e%wPKRS@U%3G_d?;kH8(&`U2qAV#E*^xtD`fa8NNWN%b zo3x9-yu*mA?S(uzoEW_)L1G}e;OgAG#R%gzl z7iJ+~8bg}n?u3Tq{@s;`p{!1QNKb7_smFF_3T!S6xMUqy5M9P2(mkj|71o$>fFrC< z+(`kD9HQ|4*kB!3vDj1}i6bc3jDGlJ+{q32yTeg`pQSiO@?@$q#2otY-Q5oIQG@g4 zm^mAILS9V$*e>;luj9S4!#f_oK6od=$q#`4$M>t{zZ%%oSwslXo9oS1vz@K{bH!907fi?{X;n3l@HRpo}Z9QyE3lm|jt> zYz9S|?X4D+xb7y2Z~?Kc9K#N{qXBHKlWQ%QwcJ9CDZs%0BI&EBB+tebF+m7FKvx|- zkqTpZiOSua=T;F2fiz`xs`lu8oo%-2x(7D6=a(B-pAMu>Ib&9GlNSo< z?VTUp6lLtqE^K)Es+=>s6$3Ld9988~q4PiOf>relCdltgcLY70cr#5Rn|^rxw;Q~^ z6sGMGMk-)fdlB0H^%_kpBXdS78;J-ErN4?1tL4#TYztMSVANIzJ3@ABUUy*Fom#k^ z!aZA~YUjr0%3#sXv#qe5y^>McngYX+^ot*rWMy!1l}H%g8IIjdO*N3!gTtKd?#M%5yidU$1-LV+Wnp zfgH%p;G{c=0n!z?h?8WugU&L|?CJX(K8F8>=Wq$H_2K@qgVADM>4%jt(+ zJJCrNvF?u?T3?|U-p)6^NtYdK`xxm%4fe>FU(+Wh#vqBn`rT=3&NFnJW%;HydyOA) zNtkHgV3zFB&!@C!%g#SqXbrAJLp0K+{ii%bxl=6c)CRp!jT8bQ;66N~tiJo?1k26z z$0f?S57rgP`c!#sqocwpw7E86wKdnJ8*`{Eb{(6$ih9rn1~g_}PC&*^P?{8tSjo9o z`gDZEyfOwo3@R|G5Uw)Ay$+^arEu{N!c;!&8C;B^gl)F&{qeLz4_9|;sln;^TOPG! zYq3|YIJGpdgC6YXYgQ>T&jdP7UZE^FAFZ$29cv0J5Mg${hc2hZYi01DiMBK%ANp+Q zLSs$f;j+nwM*+G?6TCV?r)5^!N+zo3(Sm$H%;^g1@yoC;TbKKx0=~X?%X5ZJ2Yc59 z7ohSw5ydb%a9(}tw1k9^#>l8+4iCTM@o!^qoMDe1x{}pCRx36quU{@s*8`>k_ATr= zxelFY94}l@5*XS_lUR%0ISz_vsjiKu5v?Z1lUvZ%x5G6EvVmO*KbfO!gzKEN&UgnB z+Hl{bO=HgBjPB1G@|Fid6h3l}s!op4#%=zkqz}F%rz-WAcwVVo*4y(#CovCXNnNvb=5BOr z#5^jFm9Tlm5xD~_&hx$?$cfPbomI`g3P zG=}F4i&Y=jOd}i$<9QuE?i3M^PJaWsXkHsK|8+_{7oF)0S&KfFzEvhN@O5!1P>q?AO+ zd+jd^_GA6WHsklh{JuHaJcq15{Q)=0Iqh;Qn%rGGBaL-^XyWCeWiW3dZAqv09&tfHYqW;77wLOcQ>)L#&UFj0Uq1-$(QkQr2ZMH zOk2S$huPYs+xdko-w5t^OIOtFTA)P9BJQg2DaTX1CerybC7u!|T)EZ?uge&D6W>Zo zueEQcZ=~=$VVK6X2@x_I9w|U->s{Dx=vFfh)n}?PJ1sN7`P9hfo^SOl$p+5X3Hz6)LyFQIYk&U*?qxrjbTCnH(kUl)v>Tp;?#IwOtHR zPbB{7-clq{=o~*75Q|N3Hf??f-W|uNGnY8Oh*WBtX3i=cUZTwM|ZCUZgbO~ z&J~xHI`&(|HmO=Zbg7Ulp46;rfu?9fr)HI4MkNqE5Hl;-cR)tft`kBbv;4f8>g70U zT1J0njM>7o!)LX7Ov`@u{rD>~CG6p!SPn$^g}u!`lZndhORVxK#9qSm3=QO=7V z-lXT@_ttz&ht;`f;IFfxZ`SHQF?hZ8^QyLiQuf{^=6p)`D-6|)O&dD2R|vnfN+?jX z8;st<0tkpr(*n`4Xbe!p0QR}w*;xPbZ#&_fs&JETp7H^0!bB}|azd|HUxh`d4ZTd% zo+4`Y(}3bhIpaBkHKb-g?xmZCO8TrHSBK1Riz4Msjx4^FwWNuQ_6rAUz5J0>2AeP0 z0=z`FyE7%3^I#&OJeOhQiu%`V6}1e_4vl=2cN6N;)EVc4niDr~Bf>_}mToJW6~pCn z8sBhxHMrT8yYzgqT+@-#A0;0GEP(9hQS*Z6_$ivi6TuUuHLe`=IH_zHmq$tBm{0i>fCBl9Mrm*N2}iZ#kV zXtOP>LbQP6gZ)ui8SmDib)Xw3fo5$&eT!`p$P~s~T6_am)bLfi?=Ef} zbInENZ1v_k7E~dH(uu+#&Cv+ZWm~7uKQ^>^Dw!X=i5A+e*1+Ivs5I|&>K$Lzo5pzy zeCqyQi`#eg7r2CMVPqWgvq2hh;?MGfW8GyMwtnuldC^`M?YI^&fZ@Nqy;S*=T<;0D ze5mCWBe*{l>3-0GdS%Ld00MWqJjM7dWvknjCKgx2-B(>fQx%=7c9k#WLeibbLe9&6 z^?1ZiOsx-zhIs|_e-5rQ}vlXeS6}C~#8QbbjNu{g;V$AcL zT$p{EtPh+wHfs{h0}Bs)Pn|FXR%M>&+d)uwqU}K48Rg0JPq<4GZhlQM+1yYv6ucmA zAZ`<;_!L+`?g`pc0C-evx19OxQ-AsG>KUp-o`vCEfaUicgVqW_lDuw?b zG|CO|oMmB1U5lfu&?*1a{UZwfv;JHlH{^asr=#FU!!0Kw$C)CN*bp`+w;)hp(?o~< znk1ItaEbjnR{=dIUs7mtM4${8f=!W945z;#L0YUE4y(3v&wOTzmPTy%I4ct!;N_!- zEyw02p5KwF`JAuZ21+dw2Mrl4|Y_+&wpHlOW{MXulmTpWth~Z(8^mOnn9RP4m^VA7ztp&^Bu?u+h8ft#24yt&q3KAf(Yw^ z?jpiWA$uZJDJ2dlfb15Y^Ag7e@}apB-hW*g2{}V$47~Z6GmBc*+DK@nNmo$Z{#h+7 z*3((d>Z_~2zpJ*!`+~woq11PpkI^p4Yel%y}|TX_N?{DQp+<`Pq<1$sCEq>5p_z=@`?? zAmLVV7QDHd{ZdBrCVmD51Foek1>`ej6sXR}hmWRx1t{bKAVhtT2~f^lokw$itZ8vPYKCxym(LICF#lG?Z1t z9f?EAqze@rW;lo4RDIPr&?DLb8??)VtOxd1g;*~&RnOI{&;(PJh&rF_k3Ghda91*+ zqjzBR!)`g;DQe}FN#p-6VpJ_z14P}`B5wPqw6)|_9Nnfvg8_Ou=7w7 zHt{=PziOhSn{uIB@a-`s!O6Etv9v4L5_oD?E`xj>l?RBJAIIZN&*XqpZnIWv$(-a{ z`Fa9vR&Xt?xqZo0$;4iv`X=#uzBR#BSH_dc0JKO_Z0vR0(@*@11>_cI=)>QbPKqBBT06?LbccuS$S=sWBvp7*kwWEin9_#+UNDPF zj*c5dfwbg;YbmimiHYy;KJa@4vPADWSG^B@ru%=KOkv(3*%^5gu}OG~0)Hw;b>SlL z)1UL{4r{kM27)&rLdT_a0jH(}1BJXO0F4EIscbzQ=$|al)mN2x z$BO;FMx~^ghW_!MwX-%RMO8qyt)wme_oj}0j%z->|5(gUe;tlOX%!$QvlWpRpk>d= z{@?c&0A|b~cY6!J$>gr&P+8GThJ9*kEHjs(LmPw6vSF8x!+L_FjYFdV`-M2n1NuhB zj-XB~DeHFqq7%d8#x}J^F6qn&11=!P$K9sO&%IH-rIJI?*jfAzqYTzK<$lS>c5b6w z-IcLde>)cbf$#~%cM1Y$=G4z!o*$+E|VY4&Kw` zcB)QLSy#uLroQU4u_x%Pq~*BKZ!8j1eREVE{azBXNS2-;tjh0i+S>Z1ucg-O?MIplP^?UNnECgwbD$eW)Nc>? zNxf>!w*go_*Zxwaw0!bLXS!57E>?uXa)bcsZ;fqX13PT?$koORrwX(tb^cf9%nXBQ zIUK~`(gZ;Zp3Tz4KLR(EJ`}w-37D2aAGTa^@f@=)AkzuP#4{B9x zy<(D;{XGBsc`6S)G$sP^Ajf&CC-A)k7df%6F-1JS=CX)&LNv_oIW49h4nWc?{5vIp z3KZiJsGI|V04Ey3qA%oA9XJq}KM+}S2y(M<7BOB+2Feep4*C!kEMJf&2N>9qmh&F;CE(1dt%qt}GoMUs;%LEbtZ99Ov8z}LH&0arpetdlVKLA!h zslRFTww$&ZRM`9MX#dgr{!Dej@ox1q+L)s+B)Z+>t?lkHs;2cpADMhn-`smqwsAA* z)ODGpx#_x$RBYUTUZS(ODpj#G^g5#@MW{R8tL5hu ztAmtnzqV{}!{vug2;0n}cjm2Wku*gn!BWJ8dA+_cW^-UmzB$;)1>r~-n}~$@OK>lNWsk0aP)*m07;Y+{Vfg-s}k|6l(qVgmuR3mf(9_{O#c z<5+?=l`u7XcfB!WzFOpga6q}lf5Qffn_Qj8n3f^eSgx_%ctLJ-51Z+sUiUqD({y>x z$hh@sN|nVt%#@w7Jd|FbYsTnyV_p3d%K%-T>-N;06q7(aM7xIV^pz&Moqqpp)I91M zd2BX!r97oaEDw_QU<2zKD2eG0xm+ga&^Ux_IDlcszv^F{2m~gbfr+qpJunltIo}2Y z!8rhyf`N(oiAZqD;g}4D9f9CVkn($1gHA7Bzz;Zr-lUK-=q140XmsA|aCi+fL5E|O zi!?zc={S>GeCk>$dd(CYZ9>Uic1*eRzh>ZNFZukB#EWa;$n1u zeZ?2z3zCD*Nq86vuSe#hCIYhY@5zM_+pNR8=#A`6HWFMe{(%j(N|B{he9})F z#PkOAJN}X)y>Y~Rnm%J4Hs;vr^N&XhX_L-*gjo$(rOHa@kfZVu=6*jblj+GSsUg4iG>?RHDA+5Yo6_v7c9 z*C&ij@0k7dhP$qqu`1i$t@@(I^Y-h%drEJ*Mhi#XItzWaV{m9J_n6su&Fbn@cU2W! zdE{x;G4w0fNM-K5zW=j#tuakxdz_h;bA~cgghgQ#2!Tz(CsZw#24qcEu5DKfl}EEh zdHEhJy2Op_rs=L9kRnOx-aytAbZMHpG$H0T(GS8G5)u;$$qgU8e(;O& z%RMvGO3QPsBrD$ekq(_RXU?3?IluEikN^LF1|F!&CaTq=`Rx-)onzgG4Y&c7H%=2= z?=JIPgCI7x9yiNr;ASS!W3Y*K|FlTt#1rFLf1Fq z;+eI-59=E^zOmTwJ5qm^hMrXtZ~1TwxsO9{48qxT|aY55ud8 z%2b_nsfu)s#Yk`@sN%S43v|Y&m=a?wOfM*J*GU=*+AcNG zd1pI`Mq|y_`m`iHt&x{EJgLk%kW_JIf41TLY(+v$#@X_FjfBovz={Q0f2m;qnbx?5 zS)-O{J5N;`bF#Cv(&~y?nPI~@TueE8F26ImvFZAWPC;yJJwThqVkV%?Mwo|en0d%- zvss6%&^9NY8#1HogxO-2&Pg%r+qYJNKyl~X_pM^eGQ_NcNG%ou`+>l$DB@cS_10p+ z-v9jA!cgHy`{dBj)YMep%%F`}s>czGFNJvjx_DqG<&C(J-Q4{Eq1%sMgz=KqxIt6J zs9RMC1J|S;2_`{x719RO-KS}ZN{YfLjPQ6MrO_Y;Ni?1Z-^3Ft6%&n8s!$bfW#Xb3 z9KR?PP16J>VJ>-Sg7QcSCV^HB1vlmfmfCUgME$K-71a`;Kds}q6y4xyt zEDm|DZ+MCZ#zOF9Y@!4#8*hw_j`rL(b&rmYmGb@N+`lF@9nNc8>q4lmVQZd3-t=9L zAT|C!Amta$GTqnrxbN}w(~x=*aivVJ*Pr^D;|Acj$$%)mP_0%V)YO#dn~oim$>itM z%jR%33cX%Udzj-#&Im~;Vl%65C^sOK(v;v|LBKK&{m3G;-bL&!sH;m%<;EM3aZtsm z8g8ghwX|u|E{$R5KUUE-M3M@DJN&H>Y?}n|=ytFO4f`;M>)+N)#LHehu-RYqnmQw& z4+L%q2oIdDVZ3q|H{S5u{o#DnaM#tR61XAYOW+2xzOgGX-r%V-vb5XZ=gtkm&xn9e z;f8^877h6A+_bby>{jSgsU!k71biYlVgfd?JayE;*5Jn9J{cfjYxk*?{yAJe>l*=m z5fIQdj9*RHaC0CI8$!_vSO+V;->x|p_m4Ls`8YPjm*%NHa3k)jB7XbkJ{7ZZQ&cohKO;eNxIuD5LT@^#>Hma_XRWjV0c&D=+;VtU#34C* z@!)x?2%NXvh>i&!ZxAc7S{Q$bE&mM{Gg3mpr{jz5Q+>Z>UnZGI76E5r_yA_D-t z_Z8W+m&hr2lHuJ;GM`V(3&bcEQW(y?oAeTJ5{hsLaPTE@L#gpYxvtz`=c#!68Ns7V z-gR_zv=wB;gmMFT>QXpla>a7n&kfXBOBsQpFsqoQ&kyUzPCxmX8h(+2+u7)s(23z# z&=RNWXu?$2`e`*(b2j%J!ncnKKe}xJvF$B}P2dMK9E>GOYdtxgnefZuhVrjJ{kW-I zS8j0j8$5k}M(nI~bs;?Hkod>q@fR3wKuyw-yBu;k=wdb?x9!n#m4Z?42Yef8`L~Bo z5tk~l3AWJf!tWH&Y5RQ+rK( z>&lG~oso?us#0BhR8dh;(NLR}kS|x(9IfwSDi5x3jnK4&lF%{5Mec>;DF+1Md5Qg5^nU`*MK78ghi~Y7= z?132$)a`x&Z}O_VsBLS*%032jI+iD3gpS8Dv^=K;mUBL`aoTb)TitAS=Vw!~~Q3 zb8nrftCdBe6H(?P6Z)|zNzc`D^%vrRDD!Y!TJ|wD#->FEx5{`?^H=o#OEo~@(lN=D zolTKPd)`DL~Sk)5ssIO-vjfH~l$S2OM@N#+b4@S0<|F@?E?kt7K| zV{Ul=d2YvZSkbq$x*>QVv!WoitHx*Y`^d z##fi?uIvXp)={j zd9&L&xzy_6CvHfXfw?NHC!etIYB~m<|}CE$RV5U1>2#+}8j~jWg7(H_k|s5CGZ&k^ zT<-Q9bXuIf>E89+!42;@=l#9^=l_uRd7bSa*#I)uR`hT*7&S1`3WJb5v_x5%4#v69 z)x2%rqQ}K)c>ELD6@0V~~9sWqS*XJ0fu}(xcYe%l{a>l47zSilO(Wz?@ zUPibzP7sbaun~Fh959&&MJJ1wn7J#tJKvd<(E!I`iZhL%z;)LXjRq#qlOY*D?RE9g z-EmFJ7RxLle#vZ<%V%Zmdh)MJHd^OhTa)B9)+$M)#8r5cFZBQCj5N_Q$2+lD+I?g8 zAAs$zKqcf6OD@@%ArKAA$`m=J>H5e<>s)UUN2mF)V#41ZaWfL-C!|bd-6_h&))1ux z+K@{&kX(Fl(>$GIDG_7roN|qgS7)z(AP}zDC_f{#o__!2$-&-!_4Vts)9TCDZ?R9i z`{ftU$_Klr?Vs4t)(Is|`ZHc^03FBz>1$NtPs*X;)#m=9p{}9Z^awZ%3mnl!@gdAJ>H}$4$P`3!Vg}^*sC3BC^9H4% zPY>dq!5FwRfot-0z!ahLq+wHn0!pA6i&JMOlg7k|BNP@p{aHFNCq~#u4u{^8wg(#O zMl|EL2ZIjB`$|79Fc+md?!2gC5J3sK#;u4925YFmVsfS#KKFUDA-=Ayhp|yC7P8h< zxIUp}$Radv19Scnd(^4wN#>A6wRlK4sLh$a@kvgAgft~j>1y`GLzv;;2y0gx#D#e- zT60-Y0Fu6ps$*xb~_$!2vbRWwAJ z{bz`5%xc;6x=&SSqnVk{qH*qJdTpHz(y-`vHioEmHmrU(T^{M>$CtJ&G!bCVBs0S3 z#(ZGRpPQ41`%n#ky7L+vzwDJiv2k{Q^?vuNkG|i1SH1tXdU|&D`m}og-q}U@MYVeN z;L(5n$VM}hkIvQEsF9jrZVVP@`t#O#WC5lI#4G3kL$M+66U62++Rc0j=xbD-L^(w6 zlMGgD5^9}|h>w>y!l=B&u++xPTd+zuBo@shYoMk}Re&0(B9ZMSoJSH}3gJsIX?n%Y z*W~;+SA1$q7?M=Pu=rN%q};q{jevcIozXno=NiaUrok0>uB%Z~#d^k#hyCNBIvXU8 z$j(=P6O);g^A4V>_jY(4Db`@YEvc;pY{r<4s;b#oDHKYytFA4T;T5b$l!T9akY(oS7-j z3lyTAVP@W&97$TG!{1WI&H7`e-PfU&ppx4bk<=EJ4tIRPZ0!I1+hgqd@xdh<9TYym zmWk03LUbq6jPDnZhd=pLpP4h##HmQxG!AEyID2gDmK1zf9xld4fIw=K7mDcib3%hp z6)xKFt>~U&-Mzxu*lIrsd96{i6C#HI_ohTR;ahA^jm962159?_2FVE5*f=Qv*#41? zXS=@;4jxtC{7}89p5CkOUtCn*VWjN6C|~S7d35lK(8vaE;SM8t4gONGy3y^;dr*gM zmKIz23ZI2bQd`V01Z((`g;IEDEwZQquO&GUnU>$a4ZKU8v0XJtK`krIcQmtbsoVGd`>nY0xH=jJA@ z0kyV5R=)AOP3o7+#=)Oo{rv0W$4@af9@N<&bs7a-gqg$Vq-n+^3Gc;C3{J!U;-8nJ z&Z%sYTUuI3#NOkX?xi9$EURa?5e=0TncNYqWEGcn{ECg%fwbPOR4S1YKEVh?tu-!e zk8@pmeo&Y`0&-K!mZZQ6B`tk9DPvtPHhJU?r(+QJ9^AXQkG0~R`~QB4r)BSBD)H=Z z2fJryr+csNRo|A&zrH!x#l9-Pc(+%6^2w|suBUlQw_6Fuw(F~4vjs-Lt(z{fUUxeW zfpUs@S&lMUz7KG~9*t&bZV>FX>Hmj~u3Wm9VU6K+BWY-_73S2CK1x3aDBf&f9hGfp z_4=NpkrvggP!VomV>08yieKB*WiQ^P6rV_~Bk4%DrO2j2VHGG>cap~B0HR`AKqxZ` zQ`OQ5yIvlh+WaFMBx?9p^CcUkA?QR}lc9DmWLY*S6QsqMKWiH@>(Z%SF{m87&PLJd z%y2GU^xM)1%_|m(El|&pSkD{xgL1AH6oWknT-Drj7A$KeF+eIU^Vw0LBK^UC$oR-25+l=O2?smIrVK z0yAJ4gt}YNwb7!~A1#7ikkEQAcdZI7+N0RQ)wY7cYHM9#ZRNJ@KQ->If0$G~vWc0b zt^R?WF-NjDOre=Ki^PGyE73L_E*yuP-_tNWp<;9r*l1V zmPr%}hi24IKY;G9l$Wel>+w&%E(T`g+Gb}FqSNVH>^gr(J6EpII#u^BG!6HQoOT(S z#zyCMj15R^bHV;mRl}f3qcYiL{F73JM5MLLT)IJ>+WJIhvXAl`$~*fy3dOo()prbZ z2VRWZiaXnNH=8aS+w|ax{3ws(QZ9aNvzIS^rI1S0i>ex)P%4$E6k4s`Z0x8hR~x05 z;8C@>#Rb2qZ0P?yKfSRv4P24i}A}TyhOTAbtd)^>OgpWk5ROE)P*L=>ZP-g+svt@{3Va zQFp;4w%1*75>fk+)TkkjeUPYZi@T1;j~v7a@xY;qsbp{|bL5Wvl${;*UFC>&z!s~B z{AxZJU}iNOCw2W~Hv%7cqC@;V6yYOO;=x9m6;90=syFq)HL7ocrw17(CVk$a;8^^8 zSZAoa=ZD2d144g_v|0)|G|d&$G`c& zgDT?l&sp=X#8}qok^ge6A-#md z|C{_K4QI7Z1;hKa3}qODk*_U;dNYQfD+w9)B(C85n=3kfVpGt^Nczd7SE+9S0=u#C zu~{9H-|ap|JzqZ~%v3)kCB2!)sDF4@`-8l(Z0vQ6dcJ-}Xl$6NxoJ2b9BICL0>7)W zlMQ5tPKqyu_?%{Ya^6PzQi!u5>Q$PH-d|Cviay9&CGs8e(GDHzeenbv`}Z@_Ab5{o z9aZZK-pzz@-&NU5QrQRPXQYMAe1F9yen%6=c(289Kz>GA*yJWwP9g1ELX(Ff$flc22`qt$Z@!#G z9>0K>Ux_U`S9mnO2lr?$HX6FN6a1*(0yaQyR8{OMRWB>{Di#KouZf)2Uy(TpZZ@*T zc_3nr{}A<-r`%KR!_UYrY;bg@#5k zvQr-;*@$V;l;b9{TTjG}Wn}|P9%ga@;yge$dbEu8ABq{;W663WPd_6W{8Q1{U|r}Q zc|uLo>?(GAl$DLK`RN>GJN{#OlTsf`0#JjL7 z8(6>_z{o{K$V1QPOn@x=P{2N@ZfL9vp7pJqqyxlNzqLX|z-1uv^;T$N}aOdnNPCu%Q-TuloQ-kHn<8IJJo**dA*0LlR4X0 z+a%vEZU62I0i6w|qILwXG<YrqmlMg|MVVWF#VkCz}80SZv)c zahyxWQJ@$(trY-O=4g^zK@a~h*|0>Xa6DkKU=~XS^^alyvS9JjYYE|zj2>VnM7X*ubJoufP_MZ+wUfj++?AfNiY80xS$Atz+(0pKs|gFzQ}i z08N$(3r5;aX9M%D`c`LWSAA2VW#U%=i?bmZ=qwlze&S#hojBUtUFS?@Z_E8ALr3Ps zpS+mPM%mf9#xsp`=Y_QPMk&pYI%5wV9C0@I1REvk^#=34uta%6tKmY-k%#@COPvm} zvs(J_v^l-rSXn377@H0TeOqhz)Ye)sxN-LxKDD_TTwlX|^DC3n>$q=g6Ay;g0T8}P zLUALA&u{sHQ}f|X-~6*+aBV&4o5q71bU4N~!*0)3oDH~JM5bu*1Xcf#j4zFc@#yjr?hP!3mT(Ui!k0XcSMV?v zXT!4MBQ}IX>+69q9!|0`IpxL(K!SmYCm0M(2A4p|rZxrEyxys(C5$hRZxFFgMzLsM z5)Xz!U6R7a!qm#FXF2>V6b|9O&`K!52FuvJ-6go)z-_->bh~)8w=$7J=RonztL*KW zcBb~qjZVjJ8MdRB9%`A@Gxy|%wm$21J14;glc#CBWh=DZYSV*4vM)a)BpjTy{*4qi zAgH|eKh&LHY}$4nz&#_(fTgr0Qrk4mHA_R=OWU-)ahG-1FeY8^!kVR_qzhWoQlczP z(qzE8=4gr(T@|%xid4+;QlVLwJp8awl=JzXChH{o1<8`72>Y?pNwfUI1L8H6PP(5B z0Ym;YsdmxrCm>&J=V$!m_wo0y%@SlI`t8Qx`7U42H}~H>>+-!{$Hsbw)lTlRKqVBB zPAGtsqpwGLHz_g)Bo?I#)k_7wUdtfk;gFC?SA$+Y^d|a&3C_FxnV+) zMmFa9yO!o2HL!u0y}oCTX86W>XV%-YG1=YWaGbmyoR7FhJt*RKVyMrtG1N3a+}3W3k9^OmUNq z!~NwMeWXi^R8`nON2bC?o8!|}o#sG?`)~D6OzK?d)fYj`a;9niiKk9)AT0~`Uf!{8 z%f{WUY@lI>uTLe(+S)gC(sj1`bR^gl@I7@ty$}74U<5-PUe}Oq#6HqbpwoDQh8V2T0Ijki#Lyg(5^>9uAS~AQ;-BCE@ z?_CKv!>_u|J7y5?eDCEd8%B5Z@huF&zJ2L(W3?FWe(p1((;F81neEuBp;qYje?hHWmeHaeaM#k(cCz0!OmIDM>P)pd^A!W<)wC2&6*N98@1d zN`V`$QzA|hEF*FPO8|wXSw#W~z%bJQ&@!~Js3cYP-WN+umZ{oQ#yjQc?bUgk&ZaVs zhT+t;M(*paDhS7*9u36y-S2!4PR*}-faYa|gBAlVY-OXJrdUdrp;iG5Eh|!J zlMPdA^w`9;sbj{DH!VM%aP-&AV)ut9dL7ZO*}2tQ-YM6yH{MTHr)EdO!D#Pn->nwc zf2MBM{0+0U>&JjI@Z%q>X1y=IkNb>N^Bc9ic!MuK7w~Eq+hCs!y?6EIDc6SMFISr` z4bcBaKk)w!Ac56DJ7iB z!%Yc=p-84sn9c}Pa+=8GGx^QPRuQk+R7h*Z7oXAl;%Ji=DzcjDju!Q_)TO@Bj^0NX z?*01jk0Y3l4MX7L0nF^X;J_N$hztyzdhlYtk&S=(T+h@2!frywCWqVX9%u78pYu$( z8GbTj*y}xx4F{b!u<-q>t-&$tQE%`P79KlDHqr?OfE=5O$?Fn9Q=PpwN8wPvdq*gefRs~=N%wVt@4K^zjG{t7K8Bv23Vv3n3y>=4{ zS7A^-&=_ueR&9TS4^`A2ue0f`*}2z^sW%qKIe+%GE{3bMayU3!m*9h)r?c5~jw0w3 z6zW%PcCJeBnU)Bg^>58@WMkS3+(45y*+AiFnGGg`I>aXJUA0gFLkwobYQYeb#TkJI zY(|Y1D`IT2p{UJ>SqH-L4_6#i>-Q zM{C8BE;w5+RAg<#Ez#cT%EIZbkz7rxuyOo~ibM1GX~R3@#ZeQS!>DKUoQ@5|q|Ipz zYp|(IcV9ez{(NQdh@pWE1Z~hyJ6EMx4>n(@u~DwxPy@JW?V*KowZE#^`9Vc0w~)WS zW#jQ|bt%%YGF0heP3hQ=m!pXFCL8|?2e``{Ty%Y>iY zwPpmhtU8^}zK)7n_KT<)fuj-6CwFOuR3f?8#v{VEUBt& zH2ce5o9eJJBXG>_ux_NOMRgGsZlrl0&3K?TyOhs zgP8qm=bpc<5aQpq3uMPG+L3?k-etBEsU+M&JMHto>|K3KT3Hsq``*6y29$XfNFY@k zMi47dLE$ZeB9N2{D#({$BNhArl(e-dAJMu_3y%q%&)3O_L_w_MiQ)iD}aGpGEv+q_j=vuevwkz5C9)_uR+f9qv8n-21zKj383Z z!~J-ik+rz^w)n9K>(_4{fvZaZx7SGH~ZGfWbxg}RaQ*MEpOia5=>iV-K zJtK;)S3&>0a@f2>C9iHiN`d*Gj5G2<>&2ZeX+_RXYAcHjkqv3Y4X>AmGda5Q%&oVoHaSreEE4_)Is$0A+V{Ag=}D8nD2Bv| zO;A(Yy}4dW?0k^D{K^}pU&ue?INvAMFAPFly{ z`J-?~-eYf2k90{7}j&GaQswc>Lri?f9Q)HQFDgm5iGsKT36L@(f`V9|Gf%SGn+M4E@Y-?x^T+x$h& z&s=zTI+6SO*BNkZ_P;-+){RfY8QB^a|G#c*q*6%}0?3xGLWBtBRgr{29<$OWB(b{n z#b}k?RgCUFzPe0=+*6T5VYCj~Duu((iCsrLZj2`EVj!$1tTa1?^IB1Ys+12jX zf#eg@6dVCU?(}#*H=Ejeg8;koLpZ zLICQV7NYF1#te!&?1e}+jfQe^6fE?p-GMaASg73La#=yxr~~W@FHhbHh+Hhk20)F+ zjb@ySlWDZm}q}cld^uCeU1$p|Hdi#M24t9mZNL z)J_JJ93vC!wH@Dl$sQ~%zCCq!X&!))rGfl~iIK?Dxycdm-N4+yu@{eTfw42+jh#6= zHwNA=E=?tBoSB>hAhI|)0WN)?f9$uD|C$BAeg74>G;;x5nf>+O@9H-`6=y`W%}-S- zhjzGb$f^AR;_KwPgC}gTS5+T+YzINm+c>ABt%9TwU?>e^gM!A5(?)Q z2ZT~~x618@>rNEGpiLF;eKd#hqL99dnI?QO=JzSx1GL)XBM4N*X? z(6*3{^mx4F6(Q&Z-31wM1_`;^NNOzvhb@53bA_7nWL$RDMFmtD_Sv454#s#b8}glc zv^aO_-p>nfBUkT@(#*c#LtV5R(0dx`~tN6 zXl{N2{O}U`_WHpK{{cU}JP8h7x&ZRe&&YnHT{mhF zpzq!rEl|3g9$SN`tN^JI&~(%E9wKOFh)Xfi>fbs|uf?=)^4?p`$t5v1-xGWmF zlY#d4kV|uH!%B>TL%CvVgCavvOe>X&8jQGF#>rN7JyRK~P4RxKxdY!7Vp;fpe#KyO zh;`UU!DtXX?cU=xJE>hdO&(ob35NK_a73vr49WOD>L|zM z@a2eO(|Z1Kt-?l@7L78wy!QQIx)V6;py-Ywdfc$zqmy?l!vtFrbOT5y0dQD>!IDnX8x9{##a3wyP zy8gq=L2&+b+~|nw1^_du`wjM*p9sxqey1O< zSH%@fXs1AC0fSK~Yj^J_t52{IN!g%4zT3kW?en=j@~Q?|R@iAStM%BcYt<&}9ftf+ zpuJygKGBFty?8dy?2C~E)d(gyWO`1~a#2Vnl?FH!-ErM3GS#r0&ED9ND0i4BGm9k@ z?nM@)b;XQ?lxDQ*O`Xwf%o8_fSVMlMz${gC8o>~wtk)YXKOSprin@vz^&w1=CqAke zwrE^Jl`>j5R4NPeL-m0@gKFS@&SnLOLO)g4p~~LZD74abd84H4UMU;t^yOkMPhAU4 z4EX_F=aPLo$`?WyIZvx^Td_kq61-4Q3yH zd*hdHzPdJPUWKPNgv5*xY1Xk;KFF&hf= z|Ht0d{OGzEiKq5@xY-6`luQ{_&l>xWA1x8?(Cs|!)2O4s}Ym7+?hUplk9fPK7# zB&1SvQdCO!V2G@0&8wWW^GB|4-)Q7+eVD!2v@8lFwJS2FPE z6q)xb)9!JLYdYSh$hsF--s9@ksK4I5syQW#^;CV7ilFEKbn&;xl`HYMxiW@0Z06ML z20>92*_un`u_`p!)HUwUX`R`nOJ&~X6?E15XagHa`74p~P!$#nWjdA6{= zeh>NbFJB?Zi{BtOooC@xzDi_vN z*x|7hc44>eQ1@|PQ=vA6LQM>6%24Sq2Foyu!h^|_DvL~t){?%E^`?Xv6n5rz*=ayl zdz7XbmYG>LuryE#)QZutzvX**5i)NyL4F%`yFv9TqmuKo}sF?oz>KtsERTQj; z+CVdaqN_CDYSv)4@_N{MI|DTX4!G0(=$l-~;GB2rt9y-~R=ZfPEi?FdruP z?CZBc{QkfBtjoO2b-t)bfOYHpedmogz!~xEoNd}!QOt*nj?W!G+c=19kj#(qejz&v8Nwf*sndx?V62HRmIOgEDRB6Ypf#BkN_D0?d5t`Y zk*(VJVo9B#Ke8&;V?LSOsu9)?grH*I((p;K6|fjzRg%vW>*v`?u_Zz=KCxXws7;hSHH+=XrK z!nWX@JAXc4-q^w!!Cnn#get@t*)fGk@ElpPjeQ7{k%c%^g+!2rDcH+6hQFMOi|r>= zP6!$W-TMndpfWMCC!{e^j$?0$2+6_uTfKH;ch-p)UmXa?{4)|gl^N*> zh5!EJXd4(er1>#ZCH`C(Z#oOmP1M;jf!`#D2V^_5&*K}@UiTYEfHP9^{q5LBX14h81elKFa-kPI8`d&JcvKE%X>TqqMd5z-ap?Xg zB6@6BhYP)~awPDrC+q?*-PU|b((9gyaN~;(&xH=VmMD$wBe#v$z!|}JRt z^O@H9_Pm)S$Ir{7<4n8^J=H;>7I&H~jqRhJH*CWD#qmQu!bOVqsF&uAeQbk0iB~tL z!YW5Y$A!U|zkxzWvsmC72gHDsw&z_6KJp5C;yT@9H__ZvrS8yW#ifh5JfhA-cVTVNY|?=?L3wqbGA z3^`9Xu&u7sfX;1%f_fJ>kv+{_t24UvvEJ5fI5buR*a?$k=tB39Bc?Z<^sRJHhN{fY zu}nSzi@730a$_VMj_8Bl-lQ=*5Y%tBO;%^La-$29)*H@OcZN@8BHr+MU%NLPlawZo zxAC0n2yjM9wy{kPhGv-hnGxP=3_Zd8g<)rBco#Kv2S-IV%P@?c<$c!-Pqg62ro}7E zGQ2d*hSCMOj2%Rw6PXc$W>3jBj@mYk2xp{Z8{6d3C=?2p5r#XYQfMk%ii1g|Iv{Uf zVHJ#l04v$Xk=n-p0%znMw~hU9Mt1+spryh4|93C`W;i3q+cwmmpS+v&-Z3QA!Fxsy zy{6j189Cnb#xDu{oum`TkoLn;com!x{yA02FD~A1yqi>7Qx(n|hu%+BbT3}Q87ZyP z-_?8ZSH&3-{Tuu4Q7_rXj|rm)6yM8jjjCUzYcQj$NF1jM?hgqHCDbrY6odJcm7|#S z5Vc6kKog-HSzKN!K~U;-UOq?>MPGDB1?3SVvcckJ5&A>E$?bL#BGt1q2Z){!0ea3n zd%bx>*fS!osa{%KunqhGoRMR18`SygqR}L&>cKPf3VXn-hL_rq4dK=zAl+MyR0PuES5x%byaqO3+uM9N*Zz~c zg`@xJLHJa6pNh8eWTy+>|8DDq_$Lp(Lw@(i#~<%$8?Lv2Gg7jRLF*`v;9SgwRnD6w zXj8j2X)|d_s>Z3q$w)SdOUHz>e-ztpCVHmoO}4(-OBqX7%!lJk!xb3C!5{BS9p$Kn zJ!k2`dZu|EKaSgs7n(W6BTf(C?k(rdT+hWr?$-!WxPf2i2 z8>-i?HOeCCS~RoS_fz4mg?*-4R8rpoCS)#PZ zi+*unX$!V1M}rW^_G<4Iq#(UHliHqM?Ov60)r*9gcixY@5AT1T=b60x#%!!tdtJ_K z#MoN~#YUGD-21D-2(jT@`=CqCv%_s~jK7E~`VY2CD%}P*9N9M?5af{b;fC5QsQmzld-`f>@AKyyPXN9jTNZ6y z8F};h?DG-WU7KCbTi%$4Cvyu==9Z_Pz~0oW0|w8P*)f3Wso5{##xVlvGgTypooc!Ff~v9@l*Jk`S~ix<1-BQC76r;yQIHHZxQX2iThIYG?j zBL+OjTgL13^)!m&2CAJmd2vT2vh~FC9+?pwvyCcK6(0okYT{f|tGtbE7HM(6tdlCGy)OM}zergpM_`~!jg(#QB$*1aBsvd=w<*$5dBx&Yr%Yr+<&*Y6iyhSm z21oHyu2E)<`bGIo#9KBSU`{uoHdUr69aUfSYn!nmv7-mCo>X1(D6He(8f2mxURl#$ zc(K<(ILKb2mg)o*nl0%yjW9=xJHn)JntWS_@$EW<`*2RjkD-kLSIO6dUa1zO*&`Lc%oX& zyM#GYeITw(F>jlOU^L<%@01OugEV53iai5h~sau%I zi;psjk$k4E11~oyFC0yxYtPN|0qWS{AqY&7&%je4?a-z7-ORwrw_*c>pm2k)&S(-WMB1YZ`C=Lq#91*spaiC4t^@-!g~8ao($;S-is2*3mi$UtpV12!ESP7 zHG(JOJk583IamuF0Z#B;6Rr>T{ZDv)d3rOxa$_&Pc^@|SX2wQB;dxklEaViS@J!xp zIQ00|BX~5u91h1}{k7mA4hjC_etdfY9$p7{cJs~;@Wb^vc=_zb--V>(`k(QsJ}PJA zlQu+0tyZlxEmtGbTC+8hW7cD0MOx`ml?EyM%%6krD5Tbd{p7`TjA0TiP9|7}WZJKy zWRme=Tq24^6IUZqmikt>Dl99U`>ws5ORyZtMaz9m5~oNm<}0TYF^ow>X^u{EB!)-% zB+oFy0mJYd6T?tE!CNpUieqGy_hEE`7siQF7AC<6eI;??J4>qn7|!8Ip2X;w(4J3q zg#Kh9lSvGvS=vHIlLzfdX5wp>Ws~F}!_tFzk`YD`J{-+bLJ7`BnHWX!$)C!FO2Uki zd^AC`d^yR`9K%HEaw@qvp1MSHY~)_*fZ>FC6dC=xKUErgTSPKAPUA72<)chFMzahi zOj@uA%VK=Xd-INj!{N<%C>)B%L-V0{D84CtE&cvq_O9nAktL6Jy3=&JdkiWj@`RZX zVNntJp+f)>&;$h>Q9x6GLyVFhu!lg z-c~R3KWyG*ZrjxjD#|!Ind|}iYSUHU`hKgboBniBUDcnuI6J$zxOn~Z*~QuGO-9N5 zUHr@#oxNt%oB!pEf$hcS=H?k2INJn%NLU6MSYT5PkzDEI?nmaLDAd?7vL&$rIBAt;?&WS zQ3b>D@}s5XqDS#aOZi>yN*N_Dc@6*a<1P8^UqAhLm;Ch4-|kBO_g(#s`|^yGo>TEk zwjsUA2kjuLfOy*iYCUFwMIF_HuyrC3?g_YoOEl4Qjct|H_u!O5=+exD@#p}B&Z zUcL^G{Bc`;`NyCCxI_N>%bm&C-Te)&-C!^NulF}<&v5V6ZV(8pX{&=}4L7)@V3{;7 zlX<%xZ?Z{ib!^yZMF(9isC z4(XVTFx9OW1zU97P&G0t#N!eW>eE1vNoqVJ|0itB#zZ=$t;6rw7nfhtgiXIT?QgXa zmAss}D0dsvhEd#f-BEL-^pr0M1wD&!tW*Lu<%fO!N~(o2?Pe~?cWP&6_dQ%j~N>^o{{g54ezmQ7KH`_e9L+RnO&axFz;PD zPNkw`b{<@NzpqX-h|p)sAE4>uNk1o)u0jSM%h zBemc6Zd~GWwINQ&IWg4f*+%iXB!(@zhh`JY-TuagKE28>$>i}+hGH8JU(aYnO{nL( z(M3xvo|@o&He{YB!f0c{hw#s75v*BCa9^G;F({E`4r46#M)p+_k=T^+LArMx&sy5AT@1i!sz7%qPnnA;~Dwh*l6t8SY5>CZT8_^ zeUFnGj2-DdWftg0w|lN-EELi`U9ovoXq%FNwynXe*ONSY1}@2Nhg|=(F*7G*@AQ&S zl#qOtjmbM!XysdQhWlRSZPSyESbx38n($IRGj2a@VbG*^>ANjTGc7?TdfJh=O<1RI z9b(t=8w*bEhO!EJUlQ!37vwH}zc7(gJL-BFY#`x&4MHzC+t>x3V)?mA!mDUz+o=ux z?=Va|X68^s%nD_L8^^=pt{}G#U+y@>_Ze}M?$ab4VUN618MUD+t#jD{&&Hmlny~Q= zJR^Wifrp|vQJZU685^o#lY0iwtmBfEA*;o_7gg#!@-~m)^GOsN5Q_t%)R@w;0#W6%KAeXHO?(jiMTdMa$gb{f1~d@XPcY)z19hX&7yuYq-+wmc8dME z6tWb>sEE}Z4p0%d|3$6?gYyXilFei!MQp67a{Y^wjX_Y*f)|B@M|W2ozd&yv6z#jg9&- zT@Q?DaA=7pcZT;%<^jc4Qw?S?JCvRH2vB7`R}cb?vz zG>v*-ZL<-c)4Op8?$>O;M&*qMECm;`n))gHW2F|c6$Tn zZGGCy&c99V+Hsg3^g81`T}G|hG?QqAXWS~eF+CuWzDVS>J4+J+GMMHO&W#3T@mns7r~gAI_S-!%bs5vd6>Ke|s13koKVPQQz~SaC+>Q z4Ga8IgQdBKjWVGX!K2lqRa+!tTC!Q8QwH~x3Px-;g^g1J z0XE>D*_5_5Hl1~`DQyvx!e%2n_er1PEezmh!Oj8CA)zyLx%T#w* z-XVGj&jsPU!P%!)BKAdyJ8ysvw3>EQJoZJQNmOd$;Kx zn? zu2wzbp;a`#ksNLRTUhiUo)Jj<@qGYiupw&H$e8f1v8YB%o7GZKGQ zI0*6J(WAn_n6hvX70%VL@wIL%4*|X53MssYoEcbDKB*SI?hSg|>=5^jg1~?-dXHNk zbGHN4tl-aV-*R5ivN?|Txdc!V`Gu4lv$TFKW2E}^t~~$rj+YfQ5aRuhz4MQ0B2DA?d+($(*Qt|2X;MNd;h=yH14X7y znU)`IQlKrr+5)wPVzIUbCIYtf$5~u#76Pc$kc}HID5vtnJzY_B?~3cK8a@2uE}RKb zvxbnE=>Fw@CYwu$|J=0P-maW_>;L}Kv`_m^W}ZCXd7gRS=lwJz^7;GuRH~8f<4X!L zM@OVevoGSpC@r*B{(?a4z-k>+hZb z@c18(KTuPB6lVlfSnqv%?b^53!bN=FU#|W6-o3wn(#8%CCHYjKr-gvxhI9nvm&b~T zr9uo7`yCKAXI4NgcYEsuu2sp93a7PHP(%kr0#OSW`#p_jh?ON%K>v#jDAbv7In-e0 z%uF7VIn@J^%uE!PHP$1rInbSKCEWf4O=;`Hw-?uM&VP!u7 zvX=6>!40&TQ*s56=a@lmrYs9hPpc$APdf%2vStVzjb+@AYV+hXtRJ&>X7Zo|;Djhs zRwneQ(zvf|I;?9j$VGY!mC+ZYeQ6#ARSH01H$QCG=b%eL3}hW_=G4$qzpYqvjs`e} zDE-_1T{}I8+4yv8&F~ShdHu-d^*3`D!OgkT+nkXj z!*|YbFLS%V*C)WauU?+N56+#q37)(<4?er`rzh{r8_AmL<2WPc4svWh+~m)|{oP|@ z#`uL#>l-_6bV&wJj*dDk^ss#AtEhi#D|MR4D?4OdASop36;D0()=5Ll&Y*K9yTbmSBqIm|vo$3@JWU$N}{S z(nD6lpV;e5+uh9)0arNcbz9jQVG}dnO6+4~Nau5U8<42dl3UnO9n;rn(CMTw5)voG zQ02^_v-vV6;PdB(Lc-plmKB#WRl_@@#l*ePh?zt83fZn0|H%T>s(t>NNQ7RYAe;_TTsl zynJ;6eD?A@ICA3Me5#-3aD@U4{nb6{5aQyr-g>E!kZL|}Y;4Z8eCns#nKw9X93ILs z_S9uh6+7+iR4=wf;UjdW=TLR0&12T=-G+DKu06#H`Oz2ksF`UYywP;J-0P~TM=G`) z5a<&ch%0SqAVG9583JAg7pQlmp@2h6(NAE*n;aitq&`)aE?GE#i1+l4~j zNQ{t7q*?aXhM!Y=)grPG$Vm~RI?M%VrP>UPiY%$bDALV@s=BR;+K__vIrFE`3HO1n z`uU+=0P^gR?+s}XCT^p76Cm43Dh8`nYEz95j4*uMMK>w=GE$7j3{BcPZS5ZwppE_w zZ)zZtp5jxfvR%dQMAn!pd9o&}h;$1S#XDBp*G6wm{y4h&ues5U>FI*kuSbu}KH?I@ z+1GD27Z=}Lnm#`KX!gq5^yI?&tvlP=KsKKu*Vor??FWzVb06=Y{}Oz8{~S1T`8+st z=9>o}nx_)}x7YC3?)&4Rd_juABP#pE;Q1eID0>mm70FdD#cUSKKBtH*LNcScYLFmR zmc1r}SsvJ?B4>C+&TN6#N&v!`hIl2m1#O=k~U#p}`A) zAw#5-#EQY769R1nAf^~#oC8AxiB@~lma)48o!|%a3oU4=U5$uH?m0sr;zX!w48tH2 zYK?YQHQCg?oGr8k(6Nv=2D9@ZR8lIfBeyMB$Yb;X3#)J*(1cM!=k5yGma%PZxLFXj zfq2sn|6V#hJo#vS`1Q)@_W&YKH;!XhQ|z``09Jp1m!{XRjLxR`RL6%o^W5T(Nj}w0 zxNv7}C8dqa|9o7K(gwKv1$Ve_-dR&6*TwgIT+hhQoRLre+w?wdNGY{8?pC`7vqH>7 zlSEBT$t3jcL4C2%Q|>lUl(c=^lyaGn&4|SL`J_*XI2m_fjMi4TEp#8|zuk+BSh*+T zgbIZkgE8zUqtsChwkr1obW}%%a(S$C#GqE(uMmJlsdmM`Xog-F}}{9TM&v%Yp$9rQr7!Vqi&2Ph=!aJeU)Xt1H}wU`JY_$G6oG zn?LNnz|f8cGNF*O^tef0d@7XF%?4-kwH4g0+{5bmEN$qu*VwE3hVt}@#;B(Yk{Wka zmX8gAnOg43M4sxqzJrwpU}3@$W1u6ij?__gEe0-g)u`2~EL|2?+_}`pkPea+)>(fG z3Zlsx3bC_(i_z62uv#yarsgVQG&iPmM@a=H*RI}qIJ@zB?&9ReU%}euvp<}jom~Tu z)&ZEiI{6G4oxS>R_O31_k?oFCCIbO#N5KRGgWaG-3n&6Z6cND`a8Ox66gJ_*5fxp+ zj#0!}KH5v7aZT;qY|@9jA-T7Ev+FkZCZ^k@*)(g|w9&`D+}qTZo11L1xqWH++{CmG zoex0QRjcWy50!sr&iv2+>kPu*GiT13-+cA6*PPc+KmPPjpK?C_7d2S_A=Q8EfAi5( z>Y9r4qp$z^+b=kO{M%1CfBw}ke@zWKzW(B}`Hecx$cM}gpsBmHO*G|_0piiSGC{{^ zBd@(j;87YzxJRf}V#7f7vCGV9ZIm`nSltn0tX@bs|@jxVxd12h2 z!U$WygLQ?MtWji|I+?uH8^V>|WIj|3g^Riz=|A>(i+K6?UdX0#=J1yoWrPQZnOaV&?2vBz+hS7g@c-O7INB&39PMnBc3$t4_DhfUN;|)JR@&Grl_>F}(#Fxj-o|&O z?`Ve79#P^)|0tDqj`k^Lhhh#7A2H0v;o*Mi?}vw_3v;86GxDM5HvoF@2J*OEc4mVq z0Cu@wlM8u+61vd#LHaPOh!?*^^v_s8}+We^()~cJ5(b4BiRCD9${@(uH9<#H>-rmkvM>{N6mAqRy z_~ziO>a^9yMb}jFI?l-da9*6(FF%>G%$A?;K$ba^*Ll zzfYfh`}t+`?I)M2e}2)txTKCV^1*XM#6KgH)xO#5EmY#u50CTDb7`MlJby;7r-Hh} zJqumeW?sCvH?x@boV&!r?PC#pq`qE~ea#<;1Sm zgD$(Hc9`i&qQ2wBm`}14vpr9l840l!Tu@}K=Gc@O-d5bWYpSc`jGW|#s6H0I_#UoK ztFqb_3!~{4TqD7B60TQ28Ki?o!{!mBg+HH=^-j@-wyiai?<8f~p5ufJ3U4{hE*rLH zYybpY&V=35GK>z*b*5r2I|NWeo!pD|UXxj&)ajh^t>qhaO;vk-1H8&@s#EuHMfLYK zU632lY}-OIY>gQeUVS_Tg*~?bZ_Mqb-=YknL;l39c`S?bvj(tTtGe4(OqjM~qKA3D zd_2D@Ywms0z3Z4=RrMQp!8@xiOGf$-SYw#J)1?t{ zRN0Ph#oDCVAzXPV=C-+ffrh{n4}>YZw4iIcg`?B9s-=a#kWycez8ttQxe=*cQ(XsV zr20;?`n>qX{f5)0>1lpz&x_oNLWF-S6&6GqJM;9~TW)bcKG;nn@ewZE0{|3no#xsjaH+EH{)ZAOu--Hf7kBTAKKqup*d8WGfpnAMcth@vRspo}aIs%D`q=n7>< zsT`lpZLcC!g)z(;k;iKe1fjxE1{6_2=+cgw>G<~PZ3`9Jj@Z?dubFCqX-MrrDE~Q> zjgQ#Ph#57SX+xu#ZpA{MA05xAwV-B)#fTzvbc+@$IOTv^R<|iH6y4l*Q1&Q-pmy!! z_)Q&)Uk$viGQS}b2^&5>_)=W&H{Sbn9R`=nU~oxY^iFdW* zjSV>AHn7&xN}zcY6QLTU7K(Cl+al|ytzET>t14j&x?a&$d|6{xB@k6qjA=U)ImDc( zYh_5v99@Qd#?XC(#v9kh89ABzgM`pWfBC(v-fz73>3EkQcf2P%uL3okH5FX~2+{zt zAQ_i8bV_$MoRJ0r$b_ZW+OY&dAb5jvivZDu=X&lrLYstGnPjtvBY zFxVIj*rIl9-j${ z!4F#S!BCN+^1IB|vYqH#Y1gZEqw!YH$2oaj+@Q&fZ(a(9q&< z|8{vf>ge*^FE+-D|BnoPxm5_C8AizeK^y-OXXN^9h>=lf@%rcUbG(~>oe%UGH?*|i1OdT`Kn^39iq!ZBh%1T<(2N!rfgoJw=7f{j zLkObEB7lgc1dmLyNN^yU7EXnL!&yrM2w_X)b2yt8LE@dbZ*n(tgENV6NZ^dBB11o@ z<{BcSqyS?4e@-UO6a*l`#UajNa$-RT9)TGabzx0P9+Q8w9|tJKuA&$}*DC^~lLQ#a zcJAFy{{)~U%D5pw2@C}|PB4MbWp;oGCxDQwtV->u-%i1C2f^O(nPXuRQnZO(RhPvD z2aXv5Xwt`mZO0xI7#hST031tP^-`RJaJ1sghS-9rhY`hY2=nKZtv|n~#~3+OvICNm z-`TTi^fDDoai4J|Pk;m}x z&wmC^efG;gJ*!Ujf}9cX-Zyt{A#nBfrOxh^?#}u7KSVWd)T!26gimEMhzAL$!7WU1 zi^DN;a|`8LQrgL#N;;2<5wCR?C)FA{US;dorZ#`9DcKgxY2mue!7|Jhb|C;WFmm!6 zGSaGus_hcG-iT4QCU{0upNq*XW_gN68e#AViuusE*VNcR`5Jc=Z;!vLrBwU$beYh6 zw+y$^!&WNWEr%Y9W$jJ7P@^xy6if7=Nuyc%AgY=7P4mXQO;0>GSZ!FFRfc@w{&4o7#AtKj+r(s-zA&rE zKIqYB^5WKNGGx1>WiTn-EyrT%Lei<;RbRW;=8uMQyBq<=U@Uyy;>7)Txs8S52OSnJ zN1cj#t39;9m^j?gT;r){wLzIZ`@Mr))jl#N+~=e)hn`Gt2$oj_)$VYuMpz%mF^&6> z!Wvs!Wb8#-ho2_P4X)ViM1N~05ftGDk?ckyf6&g6w+>fRn99Pf8$Q!mR^C3TE|L1$ zMPRp>2kWdoR*<0H3fh`^ydq_kShpl`2WuL}6PL0pcB#=;QE78iZ}nyX2DJ!rV6p(w zlsbcGE6b-UZEG;v{4zV(RWHCK)#DBjD~*R$Roe7eTiiJrNYj&>!j=jbC}6ZvC$rhR zEHT5zNEOatQg=~SZ{`!)I3Eh&p^=rD(B;)nl9%VZ@xaAymQQu!$oc8c(c^*6-wlk7 z&J2BW^XU6)+L&0KNASS)&OPAdg~I?`y>b;?y>JRlocxG+emtK~^+KGHYm47}{q5}a zRcds8DrsS5d0_b64Q;H~hSG;HCpXhjX!cB+vt^m}DM*x_G@41Vs;#Urr+`XX8?VaO zCs^YM&s{Dcl}(6K!w>pnot9F9E963?K}Wzk3lEkAxpZ26?G7m)w6D2-k56R z$H_Rb(PL^A>~KfJDt(Wp1anq!3d%&_=15>Qc$ z0I3r|hZ`DhX!m<3tt_9)ascV!gi}Rk)bCZoq^vUlD9jN)l@0cRJZpqcCEi>%4kR)_ z_PNisfk6rKS{6NQ=+xO!5IT(96s(Q0gw7GH83mry{eWtKvAdHW?Sq^A;+G?Y5>ZGPj*mbgT$* z<>W)4JwQN{&E8Y19ygRT@to)SVA9giq;Br5@dSfXe$+V`q3E^u<;Udpza?~U$tiPr zdv#Ui-t_E5WvMPnS=?K?wWjrkNt3PCaP7URaKFW!$0^m}Ktwn82(%s?s(Q6Osf8A` z$d^;6QTQZ14^$sZ^gdBml_$QwxZf}6=(pC=6@3)~DO1r&r>l(7S=sHX2AOxfwA@~; zQPA2TY)w$KM9Ye$K%x8xdsiEiMw-XT5TG#2Qo%%5&=_<<1wjgkLmgfcP*JD637X8b z4j`z6;(@%x+E8*BYp>FnG@CYT+UstwyE${_diOz_c5QO0%_Wy!lip^Ndb#A1yWY2c zxi6QPyAQ_oH<2`X2KI_N7Re> z6Gc<^|4IC2fE-}3cvrd( z!ERfA_Goqa(Z4nxKY6i9`|k1b=8Fp#O4w~rZ)`39_Rg~#BzD`EFaEsz6>alB*NUme zceIZd9^BZV{oyL@*FXQ$*Wc3qe)Tij?|*akceG#rz z$Jc(wV)GvA^*yz1p4Gom?}EH@o zrI91O(HA#+hL!F$dwf(S8aEW0;&5cdlk?{6S;w%{oY2~(ig|e6mP*2YyVMnl+lqg} zp0lthega0)O#zYFV@ta_6|M-3*>;-FtKt!OUL^^-BssA)uZYULaT^MYwNYF=r--`S z?KZE>o>`227snnj&5ghZjHj0RX(mBy($%$MpH{5B+7r(Vc zx@ODSe3kLDFRtI&y0`J*&V$v=_2<_!*E3fZRv$e3Rp#kJCbRMA`IXGmtw#&1o0-kk zds}xFGM{g4WWK!j&rIg}*1|^S%FE2g*WbMSJoEJBMsfRQA+!1N<E@mK)JWdIBwn*p$k6$S``3rt=MkAllXiPd%qK2Rqi@L0-R+l)%Ldlv`hal1kxraywp`_6eiV#sEm5EJV_79Eg zAAj43#Q&OXLwKF0!69f8~*28G)0qV(r{^=#{+Mqz4 zW-;31$LTz6U1@HFKI9hyQhAbmJiKSX<8z(}kHz%twstMpWUi-kv=WeBQ|Ds>Qf)bA z8eIxzFB7O?o$^b`xS_|iYYdK5+d|j-hq@@#Lkef)$A}Fj9(8Ps1iq9*8FSCf@@pe% zu1_8c*V@8XFZsKy508%2thb&Q*#|;P)ASSBhUilEEX#6s;$mIOVT$=@jD|r*F$=7} zpNurnooN@gsxo2|X*SS!Vb!spE0RT|nFb&gTK(L13SL^Z8EOXysC zUl@0gF9vMWY@cRNw%0goG=>$j8{#ICkWHI1ID6ovZsubuHYl8tAEnBJT}YQqbrBZ5a(EaV7=iqltUobKH>BBk!X=+hS(GayON~gOHFQg1 z5B=4N4c*@Ha{#B2CCtliOPqC49l78S>6~^>aV>ph-!eGh8FmI1FT2>iOEJA*&U=4{ z9aHN$YBij8-OGol}( za7GS^jpL~v@3ur8MnIc`1I$}(OT%=#T%euh$!!SSrC|9SF*+xvgoNf5O;4wzX0gd* z>H^Ygy>7_Vp_2D4wuRDNn#6g*RLya|XQh@+2SOOz-{DCG*ZpTou>lvP&YuF7Kxq;& zTc=%bw^-N5>NNtOE<3!GXB}6!3M^ypd}y{s!3DD;Om6S#@t#I`!l#AWR#eP_8+>?s z+Krg+a>F@!%;BVB~@c$C}uU_m`G+tM58F|MrBC^6U*GFI~0nbC=x;EVZ(jdeJh5}aF&B2j2ojCoOSr1*iN zct|D|Ay&ih2y#^65NTNtf7X;LiOfyQW5CVa9#7s8iIc z`XQT3A5eTvi$*U}Ad8)Ng@uLCJf9l!Ju=QnWt@t7H_aGfO=cOOUiYGuKo zfXg{5wd%PC8WIkE!eLOcQF}z3kxFdvsC^cW-7Zj6&CMEuP7%IW-M?&`~cW*;t*RX%#u{`<;T*VW}_5P%x^=83xC1x zvXtr_d{2jCukG0G!eTBJFsudSK{<;o_RY7{PrR3@Cb zmaujFxHKT%pTkX0HF!(fG8!|~17|tk^IFk~YVzX4Z3v+9a{sHCMxqD;m7cdKHL7et zy7#2a%ItU9>R}`&oXU5nZ@BC%{S~YABP$nP*{+mo^)#U+b)GbmcD-8$fTZZntE1-s ze1rJCpf(Nw&e>yQ5j#q$P;0;xu|Nvg)D4tfov&M|4j0J)q{;=Y`9R&2vgqr8`qbV+ zRnk3~3nP0npRGUn$jyxW`L!OdylaAk-#oZ@Z|CUhzaN0}_dm?1+Oz-0jx>I5qRROf z7nfR|NNHn5>B!P8$*_HYBR%afc(VJ|L8_iGc5_8?RgSdZ#>li^pF;TIrxHYn?S7*{ z7yGbsrE0<`%$rd(mDQV?kwUFSNzEiuap>VV0+q-M8~rrDaBA6ih{9BLLk+mEgwkiR z6-mQ7MM_U}QVV6lOm8nE@UI+KMt&#{>98#09KJi$K@nII!z_DcE+n&fD|V_BhD{w5 zvyF&2!nmCUan$(|78KAIT;HbUt8*lQ>JSg%W2QVtjR-pgRVl`06keDO{AxG(c1uK* za<@7NMdU87-GuQ1Vau|W>y?|qW@T7Pby-MFFwojsG*<5*Ov{Z_9_TdNESOEBGT~&0 zAligID+vJreK=Jaor`mwre?B3Fh=4ok6Fc%;Cz5KS^c2Z(gKEtce1w z-)4T>zUz~tvzOLJ$Kc}UlXr?YzI=Y`@}tMk!EAEt&ZXq&LooKk?AQ;bc?#AKFZ5^<&OsKFYQflM?DDybTb1NKl0(0W?}6>_CYZ^0Fc$Wyf& zlX&$<;DKS0q++fq0D#O#qqmu)6kVkRqb5L}6RjsOP9pAZ22yb$s1f%S0j9VPurarT zp`035f=rbrczsZfQTRj$FrcP<;0VhAy1b3|$jyV9%|^ct9#ho_t$Zq>Y&Ir}Fln=pBnCv%J+8r9vtGmp`V(;=>+0rn^~mSBUOI6bx zlL7UZ^5LM5Nt7I^JuIdp?S(M0&|>Hbmkv5Btu5+oT7!m?XE3xkQ40+8it%WK29+4- zacw9rQiWRM9Fr#8jMRklVehbyU^+5skipzN$lh$GQ*cjag4<{k!o8LOpMch?WmJ#P zNf4;c!sHB=_g96(o`|5GrtkpRp!r*W-;f(ba0(E6D3negjj(%N-s>){sEQy?AW=r5 z!V^MVPetVD$qIk~g8*S&P(kB>RPb@P$U2l^^?^+r=~&725b%V_ft+m^%J3Z@_kcvQQ;lrheKm4t?dBrAk2&D>(u%obG|(mbk$>R^+sQ-EceLpoW0O981ELl z&?9v1TsNe}jLXc;J_Pg;^--?7jREN=d~<;SHlz%oL4!4)H()idxVlP86@sQi;;9J% zJs8_AK;r}T3~>nny(Za0CR&=%V=j!ya~rFU^bsxt6yf?!P}QSUz)tc>_4zSnr4%o zFM!sn)xIA#>6_EeoqNwc=iHeaPq^pKy`Q^ysQ1puqG5R}GU8OABv}uq^=TBAP@oLH;OIKQ^jNhe;TcZIs3BseyN}=AUjO$$Uv1yG`}Q?>_pjeS*nai% zpC@j=o|ssF_0#tgFCM>oz5QU~!TZ0xeSCM~#ZT`h{;>Tc_?Opj@4lP(=IO+{r+a(f zO#JY4ed33`y?@>K$KKx8=l*V77-xhhv48t=<NHU@1Z#@T(6V}3n!1>ZEMu0Utd_mUBGXH(ecA%0 z$LiCW$O`okw7$ckrESxEZOkz_>7h$>ot9}eM*pW8(z16)HtTUL(;A-qQ?YNx2oi+n z-WtnvtSxz1t|vyl%+hq8%{D|a9rQa;FX>>K^$=QGTw4T;e(~(#!_`&#T3vm{q^l2~ zJo#~z%{?q6tH(0Wp8V$+m&$&Sd-(I&@y2CvMtDGvd)W0~^UF$GIM-~G`uxLOEPe?> zZz_&X&49%iO=9{c#;QuFq)@<&J`D32*=jMC_A#RQdht=hF!QBi1}mtYCY`UwDoTub z`$zh8UM%*d>8zCIumk{S>HD%SK*8RK<(yaO0)1LgusZ1!~Fb&Z$x!17der8$cEr$0;55m=0o!X zAD*%V4Z(nPM{vDMs6JG)=Q7o&M8`zh@Z(?MD+1j@9!H-^AMM}BpD%vF?czvq<+_t9EKWI&m_Jo;zf&h0!=d5ysK+`B z^7oan&yYl588#{Q%xafgV;(bRQZ|m;=yeKp?vAjt+%AWV_91Vjcxnp8CbORMN{@aP zOcBIamSH>~wj6XaKvg`xVH5^QqRECk9Jf#<;b6bOn|7Z!49tRL?NH2-VAdwhYqL%` zwqQ>C>~(de+*a{Z=c!Jt8To{7&>O}Dd?AN3a-MG_6FaCOk$7Io_x6JWUZ1)4z(1DI z9Nft=10K*iJ}B@{MHdF^RGneCgec_$@#hHd_auo%%;B}JC55X--Lc%*K7Np#b2Yte znt}UuSETngH4uNW2~kC^hxeTW*OL_s?QOodY?SV)`cM8z1||XW@(hM_3A+Z=ALc z7wflL8g{CqY9QbS`$DkYlB`H2<~xuWE==J3dPL5ZFQ1^FdQPO;ZSA@Mddm* z5Sd<#EKbT`EcwO&03ZNKL_t)Xy`tnJzpQm9S~9nk*cuX;La^9spOOLTPQ+;S8Ax4R z+F53n9+E?PVgM3Zh#n0y4A)Jz5vJvU5KH`uJ z>(^QY#H0ksCG=fF(`K01c&6#S#pMtgiWT9YaT!JhBWb-jKMwT3Nyl) z3_cgc$Hx0`P0*~>%(_NR83Xk&8{T~lo>FQu6x*tqSH|%stG5O>;Ir@Hm{2Px{6zNjeKevX|H1L9zvgS;%zQU1Xtfq@&wCX5a%$Oj zwDa{|bK+Qw#f;A05nu`(9R=Nmq-#*X`Nav}_$-`}A|5V>Gjdie4u3=_g2M1=>{Gd? z%3hMrY!N-#2!g=e9PXL(R2Rn?q5o0NA>_tX=lBLkUrxNi?BBTX*)+VuJQa8T22C>C zmkCdG1^x|^^jG4H6wWl`d?Ww6@rB}3{nq0Rc1$J8uQlWY7s99FQ^K5YaAT@3d`$Hj zI3qyGE$a~N8_aosQZ5$feB+Cb#V>&~!s8{sTk;oUaqirv(|qH^8gF4K3ZUszI!RCh zo!2!?za4d+FuDjH7e_~q6_IiQ+D4ZphKv5ZvFAIVRDyUdc1UH}zsDKltMG#Kvwv)A? zbX|6<;3nRs?g3D4BEjUTx$O}YbZ0wTs(Stf41X{{p*6q1r`+qY=KuD zldj##r>Yli<5ThMOm!$%7wlZDITc0G+P2*v?P*@{uWACQfaGPr-zM3?r?NEwu-^Xi zzJtO4pAFJ&1|tCg%pKchOmenbOmUhc;m+)dHU)#Oa5rj7_+spPby<`s3rTz@dwOy1koE^>&;Q zz=-~3-c$ltr6?s)!l|0pczR}xd)nAh6iPP&*!D~-Vx?>fdWA(?Qg2Gp>uW;+RAFig zpge9_p1~tDYZylHaZzQ(4aypnY)+w^p5t_%xW50zC40Q$QkYCmtYNnM*1^wza(b#Va*L`CsHtH3C@#RPZ;v`sr zk5^~@a_hib0jguc;xPKaeTSxy~{ovfK>!*HNy#?+(T6^^VclWP@*;9X= zJ@L&?v*4GFqc8YWtE&JU*;qXXKEGLg==_8SsEppCCIPZpH zVeSyWQWI;$YFzySemv>&NA(SAxNfE#1_eV|?H9|r=vr})_B4ViOei} zBw8FLiMR?fJ6OVUbuGa&nV5o@#Z-hvaV&kqsjSnA4_eCg$(aTy?J9(fNtYHdhl+uN z8m|!yMdv(HsZgg?%6;ZZivx$^rc7-~oIePF2S@wtLvE&&G_{~%uMiLo;Y$LQ zOMvQ{*X0NzYy=Ynfp~Ldf5ZVwT}932Im-l6r*nfCiT74HT{Uz}tB3r0ZI~w#Rv4h> zWO)3QeHZVqt$j56&6ATk&PerxwY5{LYa2N})v-%iv3$97^!mMzFFm>S<-^t0`+03V z{d$W}b?F?q`4|G#XU^URe}8-eT+Z>S4(-CHdV9_Yt$tylhCaGt2?|8l@S@bp%CdMb zC-zNkbRt>fmQn|530G)~Plfb~*+ySg%;S@FC>01NpZdfW3o0sD{S$16ZBQe_1{FD; z#?8|RlFMpxYFLm!8qD#j$QoU`QOu^x>uFTFPG7K2EI1EZd+}13K}T$)FxG%}2pQ^y z8{IUhHTHr}r4ud7D3!T~Ug}fBhY6tpqqAWsmg7^|M%hS)@1NuNrE1s|nwyxSPZCVt z!h8b?r75g6qG;0k^rle13pES_R9M7v5Md1%mm)yUry)DiKYeuc!b9->7uos7_g9v{(ihp?S#9jfr+OKOo7cvF_k1Is zP;kOG_91lM+|`ogHA9lavAL+uB)m< zoKHmJ2zeEDrd3={W0L*99}deRodq=$%h>+Jez-_K0)w7)7L=BI;x%&TD2c)1K%dCr zRF;Q531^SZ;cD*+N72c7-%L;yNYwR8Cu6pn!kjYwEGl=m>8*1%Rk7aM7vWPn z1~*a(c}E9ujGLr`o{%KY$tn}#&*&CMBCrayVW;?Blp43rO0P^}S@$5>zSc2!n{s z#m)1n#)whYdz}C(H0o>+nVnR$7n43(S75HDUET%iucj8(X(jpqTP~rTaA!D(sD|eX zI`ze2wKu7V*SU%pxUcN{VC~Vy?9s2EUAp(#k?Zd~xwm+I+k2dmr zs zOC9ufpNv-KOgmZbO{K{{g=sxC%Sw&M${!rB_u>v_KuIgXYPRF;`-Fx4~>r#XE^8Fd(J)g4#zvgx%W&ON$aAL z8k^23u?!`84F}A1ZV8)*5&zWDx9WBEn!z0(@Qa*NZfI06qaJfktDyrnjT9OPf4ib7 zlSA|7@cL?%J6jI*NDJ9Zb2e+fjl=C!q^o#HAeD?9bU%&q3r(fK80e$h!-|v3%`u=_B7oRdW zPyf3A8|c}c*PniW7rOhqzuo!nuh7?fj~M=!tk{c3(4QYezkdAc4_`sQdi-1HAFp2h z3Hr;cS6{vJo(eo~aEt$cI6W2cjo5P>6ACMPo_1}&R2F@sU~Uy+m;e!d#E1DJ5g!&~ zVwfkw#3&yYq9Y#t93K&JLo!JdI0H1voJf4*IYV(AhOx6j;F*VjVwevzc$QCaA`HTw zNPx2l2~e6r0L}avSwR+Mi`d#sDb8Xz_nFyQ0{UrIOHPcbOfqbmlcfogQ_Uds<`%Gl zVUz4Zb3k$&PB~3Hp@5x$CPAAl06VvKv*Mf2@mxn4>iGuf7|EJW(p;Yytu)sx*Et3u z0=eP+dhfyBg9q%f_kcqm?Ct&YKP;W)0XV6{^1uA=UXI$!FXc|JFZPW~=NVyq!&JSy zYvS=scb~NRi@tHS*k6rd;xyVIQj{o8VPu~@N3v9eMKrmxu5v{_KayARop7d7cMB3x`=z|-8&|0g z^YTUm?1ec6G@k%_$l!B}J`C{C>`Q+O0p$$%e_h~ps{r6f$gPV2`R2mnTkm?_xZ;`- zXmhg^uG)RNvGH`%fO&sETl9^KEA*x31eem(*EC;!evmGPA^i?SJbbJ`ctQ8sC^x^J z2b&y7b%@{RX0z*bv%zgy?M0Uawxs(mbx8z4O9}L2g7?icvbKVuXe^*J+xKf)y4r(d z#Wf@6{SP_4aSA1+dCLl*lajYb+psvT&%S-^WYs75Y$L13x18egM548O#kv#_=8Kw) z)$p=S+#TY_qGe38Jql(%=o&;%_2p2x9@o7Fr>s}#oU9b$n_ zK_A;mDkx0!m}}Zvt%oZAITG;Q2Q8tNr$Vt7AFs4+$Mc zDQ{tJ&aRG5?oP;$;?eqa+HW|fW;bP-__U>YJMG`s8@zTgY#9RchWMVp99a&>h;nM6 z^+?c7N)TkVLkz=eoywd@(REAih1-rEW8B2(pSROgQY~1=v2tU^A{HiV1u(ze!jHN- z54)G#Z&p-p&u&X>Yq-K-Z6vCi{Qi})mgoqwYU?%5Py^)nux`Ryx0c>k_wJ5n<`0z1 z9s6_XhJhn*S5ycEiEiLFDO(Kfjds)Zt-+3I&_{eRs5kA(Qt?Ik@FsE-=MC=t;<=o@c?#U_Hg&3cbi?K_SO6qHmP9jH&Z7BEVd=+J_8r z30dkL??3h(4|b-=X5Rd?2}UL)2;Ai%R4Q}SJ7}y7%LQ@|^Mr9bAcTVl8YI~|OiU1_ zv|VJ~QHVpndlB)tJsbcJ5rU=|nYITrfuJovFWvg${SOfE>Q#LGk zeB9JhlZqi>ix5{6l}>M3D;kQ&=a1bhOTC@34udRFKkr+M4d@Topnbgqh6d{(sC<^_ z7ZBRT(y5l^1XS8AhHwj(tTysSEo8j$9(ogfBNCjfxniD?tZxX#+`Lh|rz-5-vRw!v z;hh-5j4}@vPK}njQhL{5YsXG~NH-nE7&h9a8((dtOI=4Imcq8CYJv|B8^-vXQL%V# zH8X>1Uk(az+lIW%T8ls<^gZ?9R?4e7YPE(-cb#~AIqXf8vHC6dd|M^u9b0n~Lv?s3 z@6fr=a})aBQS+g;j2=_^7gDx|ErS&E%oBgD$@3iC!W&&WG`qpaDj(5ST5at#1g@Mxmm6WG^;+B5E$%WeSN5{q_xCe&sy zC_o)wJYtZyA5}$eHz_3Ez`R1!o0g~yE^2#L-=@(7JpoIdynS?XMm{XQ?yCAYpfsIxjkO+6K&D#TR%zz7w;ig1?U+iYBy6g6Z>=iX z6Obw9Bf;J_f0#1e+~28+c}6~{Z)n-jE_Dw?h)<%#B#kGRk_1k2(PA(k>ruAAu_#XKV)+&9D+15&9J zdkajZ1*{(cX|)uSepJA1!L9?+zJlf}s|&T~gGeM|&nF~vG-i>S6LxitRB#i0<63z} zkYb*ZJm0`B-Mecf?>JxLnn^$k#jaz~B{(<1H?Egwr05&@P-*(vPl|9upyECAjDVz{ z#XKV?^TyB7n+eE|5Z*J-2>d_x&i<#VEREyO+?#tl?X_E=B)Ak9wyg!)%geRx_6087 zCI#9;p>GxpVoRmvC4kcc?SKrBkpMHhCEZn{K~P83jb zocRYfF($-cwlBWG_%b@#pC+7Nde6P5=e8&3d!Ogr^PJDwG#1~s8;SA8HoNUN>Qg0R z)YuRLSKbsNg;B!s8%`RqDXn3IpO0v0wRXLP7+rEr0Y?72+3@ zAw=5G>P7fCh!d~8xa{W#FOq3<(e=xlFRj08`{c{d0X@5p{~B!+B(=eM4jTEz0S7#f zr%KF=H)iJMZ^w+h)-AHO^3T}L6tvp?20j%pvD;;t2M5q`Ute}Ei*@q~>SZ4z_N&r1 z7y2Sg{VJR9CQ|8mzK-5aF4ed$*chRPE#K8ogN-HygQW2|>XsClS&Bk-APPNls1z<^s=`ye=<7YOiz|yk0 zQbXFN%%gLgGCM}z$){RLejfeLt0vfc=l+%C3h~=_@4&*%(-+_T4)=pOBb(!?xCI7@ zY2fkTfo*MUNsaOv3~J=S8Ltw(^=hXP6Q5dp6j$*tKaz-&|$N7Bfm zA`HZJB^4Q1Hj`GHsqL}h9A$F>hI+gl*g3#RP|pAla`r1@oy%tBA;v;K_(SzrhQtvS z1awph;;Bf77Ds@9oWhLQ9Y&k;eJUMiR7mmB77$g(3LfT4!-1H_LsqmUs5lT`HO}6t zQF#bsVVv+*EX$fMDe2=ID@;HJGIJnWC;}-xpoP4`dcYh*YM4yROL^J8%Qu#0SSQE6 z2N)i^gsy%ye2z7Bav0VxOx)pJ z&0L3tXQ`ErYV7PdpQ_txs3g2=Ql(d6Nb;!+b%JhTZkL|pw>o_#jZTKMK}MMHw8B@Z z9xa~`@&=ePG+<{AC7hIyVbn?3gJzwMneWpgZkn&J<9q44HaC$icUtnb4F+!QpDgl} zfZpfM)|7v%Ln&7}qFW<%fQ<&gD;GK%<&~}iM&)9>gAt9{##k&6c`TQtx{4`)T0J-0 z5|r@e%)F2t1bZ>bs0?|1^KuCgsv?Mv_s0x^h5|n+H;M46M=0Hm%(XC@;HYAI&E7b0P6$IJG;FgtQ%{lxj@K9yCiH}*RUs4~}F=Ibqr|ZB~)}QlmlLW@o4W;77eq)hIVU`Pb?xbMa}j zmetmi(kD)5axfpQKiEwS#rafMZAm^=B;B{sud>KDT!bdhr^;pZxW{RzlHx!%vvH-B zFs$|3EuH)5@`};U5O195+tYkd?UE@0Ee``qS#U%_WsvA3blIg9W|>3k*DXR%8w!}l zhC#HH0JLiw6HJ@Gl|bQRWOq#2FFWD_BTA9VYOShUN}hDcIJ=>)K$d2y9K*qG>5L zwpsR>YlC@sRHaq+@<^ksxQEo{_a--HL1V9mTVYK@<_A2joUB4NxYq)cf^Ih#X`WL>3h+W1CtE6P zO~no?KFgT%F9v8QUsR>4j(8D{sw9;x(o_N?0qAUCXlD)FA&qP;JBas* zB>hBwcn9jh*II>;bSs5mzGhVAZjo1MOu-zVeNPad><;F=vKuE(u1u|b|Mc3_$VbO_td1=| z8(BKB3RANHH*OtU{d#5U{NEFNsz>+6R^j@E^#r?Z$Fobz*Wt%2M`O}BhQeQBV~$-n z?=Qf@KmLWjTO04m83AqZOd8Vs%|tt@yXw|`*Tt{g_Njh;iercb?L}mtkl&zp?MrD5 zGG7=6=Qq0;j^B1zmGi{=F=7W;>O9ztn6w!Xn$j&iu z;QjK^YQ0ong&{V@fqJ>r#+F$JJ?)H2_B*wT!u`D-AE#CkIhficShF2a1kIE;r0nrq zHCenvdY4U9?piFHHfXZg;Xyumw2P3^4`+yFRl9V_UMrV!p)RVmJY{16d3fkl5gm1SBja0#xG)Rju0QN{)()PF0VD zUP+U1r$dU;AMXb)sxDNODnkUekSd-G;@ypP%0nf(j` z)p^=pDZQkrysn!tuxp9y7UO19Tv<%f1~i~EjYx-<)}!T2ll>z2j}EmaNIPoLyIo`6 zsXjaV`a-}(nO;M2ynW0SUN=CUDXuRI#}$2DMHA4pgYtHkurtxP%~5BhxRValLX}P2 zAe{9>lDJ1#>Ai|T2vcaejf8^CNGRGog!xQ1qeZ9pqn-K*q?I$F#GwPUp`r$eg5f}(3k&syuAD!^yGimnDKpV-GN*OBENZ>OXr38^G{QjMf^UenBZbV9B-WH>=5p? zyWI?yO*oDnN_kYLB^iFg+EDZuUh^33s`lC(%PnV@X|)d?9;A=XzV|Q>oxPS<{YC!g zR9L#-IP#_n4bFu&jh;E*qj4GEZ;0cK!<8d!#c}48H8>2JaadWpZyP5<0>e@a9#q0n z73b%Y3W@e)nZP4iyVF1lzgH%%UwI?SJ->k+8)rnllAJ5DK3d%@lZp3KN5n>%ZX7?_ zg_Lea23Ja4%tB=E%OLA4?uw5f>N=#82hXwAqM_^!9pI~8EXz&*q)Lp9w-y_xz!`x$ zwjPl3_Kl~eMzP;GWGr418EWOFXmvj>8+F*RXe6waq#Ra0Qebbysj=6hQ-v{Rq78+t zSLI*FH%o5D*^SHEA#$)eC7I#Z;RO0_8mZy2^$%gE-#>%buU8^h9aI}Sa3v&d9HIwN zx8EL9rs&s#Td7F}H%B4`$Q0u)t#EU*^W1~tKAP>Rk@pyWVo6lit zk=u;+7Js=ag5_)IjHTkrC7U)FkeQhV)L_-uTHNu4*m@#GH+Fjd(hAD^4dMCt6{7h1 zMWm%EQHi+d80K;J((hB_9{ZR(<<__zOw|PwTPSbvdIuD8Q!(Z&528L=1`Cv2hBV5!BfGK8o4(iVs|ta~!;uPAle)8m(hTj$#uLhO z3+pQ_otrhJKU_mB5f>heNwlLozVS&iNXub;6p1GpB@BoCSiJsy%C9&30?vAsr{Go6 zCN=j_KG)RFj!z>Gnx&DEK{x9r9QFEvR!8HHs^qY0G|?-mX(7*t%B4${NUIB8TXF@a zr*~XBuTC@M6JsOKJ=IBZMoGXIS$du_aI%kq9+Q#Q@W3N`ca$E0YKuQi^(zb!*w12*LvSOW7lU<2W(`8Ux=DKH{ zZ&5bP->q}c#5>I$!B8`u2vEbMfwYfBcEYZITGz|#VivMUB9ong@x)l2Gc++eLf%b! zhuqz9Y3)50EAU%v%A!rZCPo^PBR^i4P;?}x97dno9E=9MDY+J9t8lH;kB2?g zwIg=v0Nxd@{n%*HoAjnM=>V?>x$ASQ0;AKJOuSwXnBeu~@{GlE5SkOO06~R?C0UZU0fT@XQX8_r5}|&P@{GkroRK$(4Kps% zyFwz)h!`8kA?yc8Zxd%kj13W=>Rr93dQ+ScaV#$4Q@zt;@l)fBi2F7jFE(Htv@Dj( z3_E4ZaL-NnRz>!@z0i!&m`hB)_k;Px!|EV=NhM!7ZSRck1OG#rFu zmretje<0VjV)tT3e%<2vnmyCn+*Dt8o=e$~0l1o}tef!d363_yuBYbAvBFkeFH+=m z=WPH(@WlfyVN5eI#-1f+ZT1{4o@e7zAuoTH=ioklE~M99 ze*cSH`|O*~e#div{OTD5z4-Hs!(!t!I3t;UgWuCk9B=Fw_1L)8mtAF2SXI)DK*L6+ zQeI-mC8|rsFkCv)1LJj)G(MHT04Xm2KYM5UlU9}n@Tcbn2(aX;nCJpJEZC}e5iOS> z2!aX9i;5r$8mJc#P>C-^d6}_}l5Jz1`Vumo#-uN9s~vaO(X=&L+suyHwA*HrjXQ~* zHMJ8zb$0)NCX-3b?1#NzGqbyy>9*hdh1_s+;pWNt-RF67?)e?E1+Si{7305drBTV> ztV8UI?0LgBAK@}9qdQQB>U71qC~|}dguJ@3c1EfJuVDyPRwh0W&>|FzF~D4{F5;gb zV`BEASIR)VwFCp3IUr8;QpruS zvm z_?91t?EFOC<_I#5PP)86y7$w5h=72CPl#sP2+QYXy=acWtpU-3ujTKWrvf-P%4A zIhhN>poKhTi!LXMKafCwCmM1AKCZcItJOH0(P{?rk$%XZ>K7u8GRR0>bj)@rRfcGG z?3(M{`b2>3Qn16zaWi7nI`EW5V6-Ytq|zG^$BUTFG7h_O=w@z7huKu)8R8}t+B$Xq zPy%l;br+;vo@ljHS&l)l0k24kJ$kJ?vZ|tL+H${-ISoaLU|gCw-Qcg#2#~rFgDwh~ zD$%Mhs4P=k>+`)1U9Wt&MNMqaif0QV@&=9be59$#OG>IZ$zrP1Kn#YUe++ycC|-_a zMw?eh1l@+=1y$+l)qJ{mB!O}CoQs^v?PM;W^ksUb$S%V%yR0%K0FMt;bCH?wRdrYx z)=aec`-jb$ff;S$=tnko)^GIeJpOLw!m~@?o_zV;&eraOYin@r<*lB_f4sG}G(Gj@ zjrHB@^G~MlFTV0q_3UGJ_V(6Uu#$C(eDm}pxbpj+|L3QAOV0>>UaMuiW8?K~kb@Zb zQ)04G6O1@KF0rf}E1uw}BDhTDIHfY#w2j9L^!W7!UJ*B(<^j*5!@?nsrjy^Aj^MTt z8)DP>1I7|%NUkXuD73^*DLL)>G8SoCRTd)eF#E`4qQ`&7D4uc(>s9F^fmq(ej~6il zAx;rlnpt2e!Ys3?OycI60t^mS;z{5QA}&VA)bTQf9!GFKL9@Y^=u^?ncu=kNM|st5 zA?6HMzvz_l8-i7$I;DVhmu^Dx;xI7L;?#FWAgMA9_#Bn}xbBkxkk$Fx@!@PIudeR*Op{LOB&#eAF!ym%#Ia{1i&5~ zw=ktin#;Qx4+4=Mf)f=L-MmV2sA{1x)3$98#_a_7hkvZ87N_Q~?LB#U|H3ms*#5!% ziH$59SwGd|f1tIcz4Z$>a(=4mDf;V`$KL{6+TTJ;i)-uf)kB(ykNKI#<)t7Z{D^slU<#J5rq+1JTGXwES(or#9 z6Wr#F{6UP|{_%d^WF~oLL{dSP9az)S2Qm&$B7I zC{rNRpUou+OTNQ0n`(B$gw&^=^)rNgKC^?cxY#5p!YNWSqwsl0UPwd4U2HN*DY1HG zycudNeyplKZ4EdzUc})GS@yK03C^45Jd6TUgdI>@T+q3!gFz?h1C$QwU~@U2CUN39 zBVmlzgq_L`ozpVo=^~O6`j1>AKg4&QuBmR{*n7FsGe7+)Y|zQ#!S3!Ze7OhkWOw7> z#>wRu?l7u~Gi$@!_KzlSd_!`9P({_P=MQ+)_uJ-z%zw(0m8Kh;}% zM$l@UkFsk$FvQDx)TM%V>o@*4NCJCaA=BO^#NHpQ5Hd<)1q@EffRrah-E47q+>f)& z$G!M~E2U7R3?jYUa8>W!jz>g>b4~t*)UbQO5Vs5){BsI}!61qF7ku(wU+St`Zcv<4 zcvCLD-laHako0=>dJ!3K@TKJbh$Q7{@W}to-nGTFk)7emna&I|v#tRnVPV4}lK`I}sgoM{0Ck(i)Xs=Z&b`HIZNo50 z`0LHLarQ6%<~6i#LiP54SkrbqzP=le?{03cbAk2E&E5F+=4L#5Kh z8)Yr>*&Y!$zR}cx^Vm2I4z?({;zYrT04v>6nfU039lSUpem#46N_7d5cC}_na%l3~ z{qM*oebVdFA%$P&OxsdtCwJ}(7bnV!E|-FaYT$HmK)4jvnq7L+EBTdpWg zlVo0A>YwB;;F-)jR;dLM!=?e3TRLef-?aTi3Oe-= zd8uqO2rVGLFQJ85&G_-);yJmqf9EIJ=7#O>XElF#VVmkoJR@lBgJm(U-%(T)d3NL# zEH-TQe4FZYDT#|O+*rB2?bNCpM*Gy$7U$=9Ljbp!YDV`B1f{lA$<*#Z*BrV!{;o|$LGWiXB zu^#Iv0z)M@J8WciT4~3sVk8v8dM5C@1_}v98*tDdvtouoI|^=kjkv8+yo5Uj3qh|j zQH|mR0osZ{M`LZ$L4$%QQ~;BVF?a9Y&L1| z_T&~r*mmq9fX!Jk8&f488W>m@=}_0$CRS%H?hb7uftG(=fH@W$^?_1Ti0t{s9*dF= zgSdLd5Df~-4D}dD#D32I;>fk%VB1vCZ*XlY^b*BOZakQvCttYRMbgjh<-Fg>h>hTM zI~iLYZjL%-14TViQ#lx|Y(`bDWHfl{>kb*Lp~B{nrzNmeyyh#+uUu{n$}~|yp*qGrvoq|A3SW))AG0VWU#NQckZFA4Vr_lC5Qay%km zYUi<$Q*2zFX9NM3&z~1pt-M%WeX(5J%&%?Ah>ZeU9g$p=0FtDMa@&@X09K0;FI=t$ z2$r0uW;9!3v+bo($k^u<U(HYU5#fXB!0 z@S8?kT1=~}rcqW}78ltg)P$d>LZdBmIaJGG7@lFEg*6|`Xeyn7wX-()B0LzNTFI(M z56v(_%c3cr#?Yc^<{d}Q`>C$TGlG&NieqGRGcDlfQ)R?PerH)(nag#nEG4(nf%?kM zvJ)y!&6y4(W{~4ZnIoRi^x`}=a@?lkc}8-M4U}Da&rQNPCD=JlZiRcDq^qk=+b;}7`!R1M@pos>@~vWEjoE^9^g)8iluW= zJr_=gtVlXiPc|TCkFKh0cZ`2~5`*z;S)zWMUbb}S?J?imvnRiOlG;)HizmNCke~kH z7uniWJkLl@vC-c&1WSaZ076J;c&MK2!N&sxKn1WQXd%lzh^Dy|CTKte^!-?Wu$M+L z0aTMBJk3q$ut)&futaRPQheCAwY1-)JAky5(q6h zEOG(CZbC<4KtRAq`7LJl`-g%e`2-cU!F(wK00Fzll%OUxcOK9}FrqBN0JtVV=%n9Q zB{*1vaF-A;9lXcUiWB%E?BXl}X)`%%5!l2=;r-bUfmMz`tb?NYK7?Il0@I38_yvOd z@cTfMumU0MiwfE5M3ETlW9+s%3_(RCA~z!N`G@lnln|yr5$s!Y86C=>Kix+j?mvDA z(?7oR!9N~9`vSRk2Ou}l{cFgFAH(PmZvf=kK19R*rzxHh@UJi7)yGhE;~DbVpML+h zCu{)u`|o~@eD;@rU&K#!b)J#K{Wo}QT!amdgXgv(9HkEonhtZ5@80d|t)Q^SVw$DO zOmdqb6i#g)O8G|R1;gQ2wsGAflhJBWz7+IMs_)`G8@;fmH5qYGXOU3)Ca*}ZF>#w6 zFL_8LVQr8H2&T(8Mcq=%$YHH-kA7;2wY3M8pA2=!=7f}c^qX4lsiNA^e00vfII^IW zJ4xV96c3Wff&<@c6>$7io^aE6ZBVTfG1}!6Kh>Vx=jd5A*(3|v@C-^<_=b>)FoGpa zvGGpzVi%t9DHEm4!TqYI7JGv*rZM$f!z3`bgtdMu=JO*i-kJ3B>@!>i-70^ln(_z(&_*L zE1gBM7~3i|c6TRjZ0$^^e(bn9<8~*-bz_>@YD_k+iL+~}%_f`7*gqTpG}%mIxSB;kobo-gEAAl<_i+g9h9($PRmf*;g&CbOT-~)M)b)jM-3< z4DvN<8;FR6VGxFxK!HN;YUS3JuhT{THg5>)EZD=w*x1ZJ9uKd5@S`V7^W4>iwTX$P z;U{2Xsb_v9v9tl^7gF<|O(xd3GfO-CR9Bx2gD-m%k8gnSr(Evs5C1R@zJ7WYeEj!M zzz2&5^HaSG&&YN#e*6sgZP;LO_|jA7lY<7KQ!i^HyC7;@-PWwvC`A!no~+!kfn@JQ1?p$aMzR&Xi^c`GvMtrp{mAU`aYV2CBw$1ES50K zGaJe#k~~I+67@;+HEJoE4Ep+-DB1{>g4kz0>HBPnx~SNm6|&aXLoP#*;cGs7dRloV z$gh|1NdW1jpK$!dz@d6H_ry?Wo^Efv2!oEw0pcR_J zTvlTn$7XM8hW^=iqR$s>u!cH))5d!t+m*%G$=^vdR8N1t)S{|MlyE;6wvfR7F zPjz>dNJ*?M{1kjXj+>k7PZz=8#(xI5pML^=!+j$^)lqpyUU`PQ%`XPn7>RVt)nrD z7zCoRfkF_s*As*on|Ugh=BGNvV`P=8?@22N!Z4+yD}<1MNx=xW(A6f%5WDu0f#E18 z!59^exw|e>EKE`>nk#hD)KjEJZQ&*ZAVx-YDBo7>X*Ug8LiwzA zdaH;*YWJUe;7{{YX)e*Q3NrR%0DN7bKx&d&EnY&%g6hr$Tmg+j6|xn@Ps&K^b(r3W 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"]}` [pattern](/en-US/docs/Mozilla/Add-ons/WebExtensions To test it: - [Install the extension](https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/) -- Open the [Browser Console](https://firefox-source-docs.mozilla.org/devtools-user/browser_console/) (use Ctrl + Shift + J) -- Enable _Show Content Messages_ in the menu: - -![Browser console menu: Show Content Messages](browser_console_show_content_messages.png) - +- In `about:debugging`, **This Firefox** (or **This Nightly**), click **Inspect** next to the extension. - Open some web pages. -In the Browser Console, you should see the URLs for any resources the browser requests. +In the Developer Tools console, you see the URLs for any resources the browser requests. For example, this screenshot shows the URLs from loading a Wikipedia page: -![Browser console menu: URLs from extension](browser_console_url_from_extension.png) - - +![The Developer Tools console showing logged call URLs.](browser_console_url_from_extension.png) ### Redirecting requests @@ -204,7 +198,7 @@ Then reload the extension, reload [useragentstring.com](https://useragentstring. ![useragentstring.com showing details of the modified user agent string](modified_request_header.png) -## Using the `declarativeNetRequest` API +## Using the declarativeNetRequest API To illustrate the use of the `declarativeNetRequest` API, this section includes examples showing how to redirect requests and modify request headers using declarative rules. From eeae3a632e0febc221f04f8245f9979dd6607cff Mon Sep 17 00:00:00 2001 From: Richard Bloor Date: Fri, 5 Jun 2026 06:59:24 +1200 Subject: [PATCH 3/3] webRequest API examples to MV3 and feedback updates --- .../intercept_http_requests/index.md | 47 +++++++++---------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/index.md b/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/index.md index 4fc55457c7ce688..acd32263c63e72c 100644 --- a/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/index.md +++ b/files/en-us/mozilla/add-ons/webextensions/intercept_http_requests/index.md @@ -29,11 +29,12 @@ In that directory, create a file called "manifest.json" and add: ```json { "description": "Demonstrating webRequests", - "manifest_version": 2, + "manifest_version": 3, "name": "webRequest-demo", "version": "1.0", - "permissions": ["webRequest", ""], + "permissions": ["webRequest"], + "host_permissions": [""], "background": { "scripts": ["background.js"] @@ -74,15 +75,12 @@ Now use `webRequest` to redirect HTTP requests. First, replace "manifest.json" w ```json { "description": "Demonstrating webRequests", - "manifest_version": 2, + "manifest_version": 3, "name": "webRequest-demo", "version": "1.0", - "permissions": [ - "webRequest", - "webRequestBlocking", - "https://developer.mozilla.org/" - ], + "permissions": ["webRequest", "webRequestBlocking"], + "host_permissions": ["https://developer.mozilla.org/"], "background": { "scripts": ["background.js"] @@ -144,15 +142,12 @@ Update the "manifest.json" to include `https://useragentstring.com/` like this: ```json { "description": "Demonstrating webRequests", - "manifest_version": 2, + "manifest_version": 3, "name": "webRequest-demo", "version": "1.0", - "permissions": [ - "webRequest", - "webRequestBlocking", - "https://useragentstring.com/" - ], + "permissions": ["webRequest", "webRequestBlocking"], + "host_permissions": ["https://useragentstring.com/"], "background": { "scripts": ["background.js"] @@ -202,7 +197,7 @@ Then reload the extension, reload [useragentstring.com](https://useragentstring. To illustrate the use of the `declarativeNetRequest` API, this section includes examples showing how to redirect requests and modify request headers using declarative rules. -Unlike `webRequest`, `declarativeNetRequest` doesn't notify the extension about individual network requests, so there is no equivalent to the [logging example](#logging_request_urls) example. +Unlike `webRequest`, `declarativeNetRequest` doesn't notify the extension about individual network requests, so there is no equivalent to the [logging example](#logging_request_urls). ### Redirecting requests @@ -238,15 +233,6 @@ Next, create a file called "rules.json" and add: [ { "id": 1, - "priority": 2, - "action": { "type": "allow" }, - "condition": { - "urlFilter": "frog.jpg", - "resourceTypes": ["image"] - } - }, - { - "id": 2, "priority": 1, "action": { "type": "redirect", @@ -258,14 +244,23 @@ Next, create a file called "rules.json" and add: "urlFilter": "||developer.mozilla.org", "resourceTypes": ["image"] } + }, + { + "id": 2, + "priority": 2, + "action": { "type": "allow" }, + "condition": { + "urlFilter": "frog.jpg", + "resourceTypes": ["image"] + } } ] ``` This ruleset has two rules: -- Rule 2 redirects all image requests to URLs under `https://developer.mozilla.org/` to the frog image from the [your second extension tutorial](/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_second_WebExtension). -- Rule 1 uses the "allow" action with a higher priority to prevent the frog image itself from being redirected, which would otherwise cause an infinite redirect loop. +- Rule 1 redirects all image requests to URLs under `https://developer.mozilla.org/` to the frog image from the [your second extension tutorial](/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_second_WebExtension). +- Rule 2 uses the "allow" action with a higher priority to prevent the frog image itself from being redirected, which would otherwise cause an infinite redirect loop. See {{WebExtAPIRef("declarativeNetRequest.RuleCondition")}} and {{WebExtAPIRef("declarativeNetRequest.RuleAction")}} for more on conditions and actions, and [Matching precedence](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/declarativeNetRequest#matching_precedence) for details on how rule priority works.