wp/wp-includes/class-wp-script-modules.php
changeset 22 8c2e4d02f4ef
parent 21 48c4eec2b7e6
--- a/wp/wp-includes/class-wp-script-modules.php	Fri Sep 05 18:40:08 2025 +0200
+++ b/wp/wp-includes/class-wp-script-modules.php	Fri Sep 05 18:52:52 2025 +0200
@@ -31,6 +31,17 @@
 	private $enqueued_before_registered = array();
 
 	/**
+	 * Tracks whether the @wordpress/a11y script module is available.
+	 *
+	 * Some additional HTML is required on the page for the module to work. Track
+	 * whether it's available to print at the appropriate time.
+	 *
+	 * @since 6.7.0
+	 * @var bool
+	 */
+	private $a11y_available = false;
+
+	/**
 	 * Registers the script module if no script module with that script module
 	 * identifier has already been registered.
 	 *
@@ -182,6 +193,11 @@
 		add_action( 'admin_print_footer_scripts', array( $this, 'print_import_map' ) );
 		add_action( 'admin_print_footer_scripts', array( $this, 'print_enqueued_script_modules' ) );
 		add_action( 'admin_print_footer_scripts', array( $this, 'print_script_module_preloads' ) );
+
+		add_action( 'wp_footer', array( $this, 'print_script_module_data' ) );
+		add_action( 'admin_print_footer_scripts', array( $this, 'print_script_module_data' ) );
+		add_action( 'wp_footer', array( $this, 'print_a11y_script_module_html' ), 20 );
+		add_action( 'admin_print_footer_scripts', array( $this, 'print_a11y_script_module_html' ), 20 );
 	}
 
 	/**
@@ -227,26 +243,10 @@
 	 * Prints the import map using a script tag with a type="importmap" attribute.
 	 *
 	 * @since 6.5.0
-	 *
-	 * @global WP_Scripts $wp_scripts The WP_Scripts object for printing the polyfill.
 	 */
 	public function print_import_map() {
 		$import_map = $this->get_import_map();
 		if ( ! empty( $import_map['imports'] ) ) {
-			global $wp_scripts;
-			if ( isset( $wp_scripts ) ) {
-				wp_print_inline_script_tag(
-					wp_get_script_polyfill(
-						$wp_scripts,
-						array(
-							'HTMLScriptElement.supports && HTMLScriptElement.supports("importmap")' => 'wp-polyfill-importmap',
-						)
-					),
-					array(
-						'id' => 'wp-load-polyfill-importmap',
-					)
-				);
-			}
 			wp_print_inline_script_tag(
 				wp_json_encode( $import_map, JSON_HEX_TAG | JSON_HEX_AMP ),
 				array(
@@ -363,4 +363,144 @@
 
 		return $src;
 	}
+
+	/**
+	 * Print data associated with Script Modules.
+	 *
+	 * The data will be embedded in the page HTML and can be read by Script Modules on page load.
+	 *
+	 * @since 6.7.0
+	 *
+	 * Data can be associated with a Script Module via the
+	 * {@see "script_module_data_{$module_id}"} filter.
+	 *
+	 * The data for a Script Module will be serialized as JSON in a script tag with an ID of the
+	 * form `wp-script-module-data-{$module_id}`.
+	 */
+	public function print_script_module_data(): void {
+		$modules = array();
+		foreach ( array_keys( $this->get_marked_for_enqueue() ) as $id ) {
+			if ( '@wordpress/a11y' === $id ) {
+				$this->a11y_available = true;
+			}
+			$modules[ $id ] = true;
+		}
+		foreach ( array_keys( $this->get_import_map()['imports'] ) as $id ) {
+			if ( '@wordpress/a11y' === $id ) {
+				$this->a11y_available = true;
+			}
+			$modules[ $id ] = true;
+		}
+
+		foreach ( array_keys( $modules ) as $module_id ) {
+			/**
+			 * Filters data associated with a given Script Module.
+			 *
+			 * Script Modules may require data that is required for initialization or is essential
+			 * to have immediately available on page load. These are suitable use cases for
+			 * this data.
+			 *
+			 * The dynamic portion of the hook name, `$module_id`, refers to the Script Module ID
+			 * that the data is associated with.
+			 *
+			 * This is best suited to pass essential data that must be available to the module for
+			 * initialization or immediately on page load. It does not replace the REST API or
+			 * fetching data from the client.
+			 *
+			 * Example:
+			 *
+			 *     add_filter(
+			 *         'script_module_data_MyScriptModuleID',
+			 *         function ( array $data ): array {
+			 *             $data['dataForClient'] = 'ok';
+			 *             return $data;
+			 *         }
+			 *     );
+			 *
+			 * If the filter returns no data (an empty array), nothing will be embedded in the page.
+			 *
+			 * The data for a given Script Module, if provided, will be JSON serialized in a script
+			 * tag with an ID of the form `wp-script-module-data-{$module_id}`.
+			 *
+			 * The data can be read on the client with a pattern like this:
+			 *
+			 * Example:
+			 *
+			 *     const dataContainer = document.getElementById( 'wp-script-module-data-MyScriptModuleID' );
+			 *     let data = {};
+			 *     if ( dataContainer ) {
+			 *         try {
+			 *             data = JSON.parse( dataContainer.textContent );
+			 *         } catch {}
+			 *     }
+			 *     // data.dataForClient === 'ok';
+			 *     initMyScriptModuleWithData( data );
+			 *
+			 * @since 6.7.0
+			 *
+			 * @param array $data The data associated with the Script Module.
+			 */
+			$data = apply_filters( "script_module_data_{$module_id}", array() );
+
+			if ( is_array( $data ) && array() !== $data ) {
+				/*
+				 * This data will be printed as JSON inside a script tag like this:
+				 *   <script type="application/json"></script>
+				 *
+				 * A script tag must be closed by a sequence beginning with `</`. It's impossible to
+				 * close a script tag without using `<`. We ensure that `<` is escaped and `/` can
+				 * remain unescaped, so `</script>` will be printed as `\u003C/script\u00E3`.
+				 *
+				 *   - JSON_HEX_TAG: All < and > are converted to \u003C and \u003E.
+				 *   - JSON_UNESCAPED_SLASHES: Don't escape /.
+				 *
+				 * If the page will use UTF-8 encoding, it's safe to print unescaped unicode:
+				 *
+				 *   - JSON_UNESCAPED_UNICODE: Encode multibyte Unicode characters literally (instead of as `\uXXXX`).
+				 *   - JSON_UNESCAPED_LINE_TERMINATORS: The line terminators are kept unescaped when
+				 *     JSON_UNESCAPED_UNICODE is supplied. It uses the same behaviour as it was
+				 *     before PHP 7.1 without this constant. Available as of PHP 7.1.0.
+				 *
+				 * The JSON specification requires encoding in UTF-8, so if the generated HTML page
+				 * is not encoded in UTF-8 then it's not safe to include those literals. They must
+				 * be escaped to avoid encoding issues.
+				 *
+				 * @see https://www.rfc-editor.org/rfc/rfc8259.html for details on encoding requirements.
+				 * @see https://www.php.net/manual/en/json.constants.php for details on these constants.
+				 * @see https://html.spec.whatwg.org/#script-data-state for details on script tag parsing.
+				 */
+				$json_encode_flags = JSON_HEX_TAG | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_LINE_TERMINATORS;
+				if ( ! is_utf8_charset() ) {
+					$json_encode_flags = JSON_HEX_TAG | JSON_UNESCAPED_SLASHES;
+				}
+
+				wp_print_inline_script_tag(
+					wp_json_encode(
+						$data,
+						$json_encode_flags
+					),
+					array(
+						'type' => 'application/json',
+						'id'   => "wp-script-module-data-{$module_id}",
+					)
+				);
+			}
+		}
+	}
+
+	/**
+	 * @access private This is only intended to be called by the registered actions.
+	 *
+	 * @since 6.7.0
+	 */
+	public function print_a11y_script_module_html() {
+		if ( ! $this->a11y_available ) {
+			return;
+		}
+		echo '<div style="position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip-path:inset(50%);border:0;word-wrap:normal !important;">'
+			. '<p id="a11y-speak-intro-text" class="a11y-speak-intro-text" hidden>' . esc_html__( 'Notifications' ) . '</p>'
+			. '<div id="a11y-speak-assertive" class="a11y-speak-region" aria-live="assertive" aria-relevant="additions text" aria-atomic="true"></div>'
+			. '<div id="a11y-speak-polite" class="a11y-speak-region" aria-live="polite" aria-relevant="additions text" aria-atomic="true"></div>'
+			. '</div>';
+	}
 }
<R3Q!%AL+|в/`L\iXt a z x&oFʦb1hKDzkM>+qؘ`ɔ{/IG?q ^3WFp-hv${v`| KO'Wfu%b}1M%(:ˋxx0hkt>2ئ qB:~J:#&v|6D(WC H=RU"Vncg,{Ea$G;KKQOp!Q8\kL~\2AcDJt_ݘ!EE#Xy)T5}gxQXf,1fm#諳hP-QCNE1yB(V&'#.A԰#^Fl7Me_YX|'|V,~鴐o;ek9)وRXM< r\_dՠ rrZ)Z mnQՔk:%ְ.y)W^UGKa═^݃<uqP[:u3ۀT;ieX.`7}NnXC z{C\9L`}m 0Y{L=A1|r;cn*d@=ߤ艫s E1gD1fYؼ2eҟ'd$V5J `G0ޗN?5y`!ô\-m,!"{ )gȼbhX&ygXWM9^7; p># Z*Z-nzA " ᷃V)rm+uCDAgr @f'gn`܎!|J)կQQ^~I w1;Ńr|l+C94бڢEq{s⣴ @T\^kRk]>SG,e-Iub+^Y'dv7|=hbT8>d5A51ɘRA0 )w$J)9hʬX ̭6;6iϋvJ}VYkn5SJ1$OLᵃWI}tPVj-^0{5ayHlctmm +KW͂ؾ_@zzU P /h|fbxHkUP, e 3_)oܿ|lKI3̬^5y"' t.$2b:ł f`tf"K欪DeNj<>(faA n4@/` ^ J wQkddƸݐ ߰L$e]2N~~K|{P* 2<F’r??855[=R& p)|[*ź dUahk1/z5}Y35Dd4EP|%u1\bƬh (re3e uYְK !tBBI)X 'X^FuRs1 w}u㽰ut*@P{c8؞&]Oxj-#=8'4RCoF=GHpt,P4,""}⍺f俰3ƃƢ BA閸ϲ2S]9^Q&ZbAF7=Pdg\c2SokSr )!6꫃.^"WTmĤޫGE&-!FݣT_T nD\™h\o%l7y8ʋzU3S/_SPoT:ԵceEç;aƅ^L:mZ_ J*lX.iٵ6P Gçol؁.S.c%0y{=`|ނVBy[n܊C`$e,~H9R|*-̽U&{R o`N[2[}m"naEAP:8]_Bˌ}KJb* Qsm穊5'Jll/_1꛰睔9>*k$#,Z-i:fKaa|#{߅ 2%8}DI`빫d@ cD9: |j +2:|H܄I!B\zs5헮q"0dLӜZAi{y%)̺ј ف\KBHsى`;FH9r |LG C-@Ö tR,tT>QfBa3[`4 ĕ>=1X V7+CEq ]q2{;2뚦 Ց0_DWr&u< 8ocƻS XmԕIU,35+ݬ^S$>X,tJH)|OO%,ܪĶV.5+V;!@nr?M IDZqzE~M|K|$'jKJ9]°8XwmHRvvgԊ *kz JZ{+W^\o&T2Վ`HT+W`Ɯ% iZG"gHn`۔k$qIiADԒ#aپ -̛.VoKO>ڠG ~OŹ4-i1a%@+5~ǯ$!St?c~P6ZVyy%Сٜg-Z^>.5pT*vܜ{5 祢͖!Cr=ng5"duu;4;\Ź6WR2(U wM6Sw%SD-"'4y0EF5F9Gk_%QӬ4a&ژC cjha %M2Wh@R} 2Č衉Õ-Y͉-mD[=[kxu_C{D {I ,0?;ga c}Gu2R.0oJF*2n)IG lx|.2b N$4QcS^2aRGx~ϋfD[u.a !gL==D^uS${DiZwd#U>-:> uhcVS_OLͷl QV,`,%\`KfK [,3J/-T =1*cɜ SUf=P競cQK@ǂoɏT'iJ{"bݝ)\/H'AumDG^tBwy9i#hRF&3f$^ݩ`=>/8~E-S |㫢'"'nVPү~xj;G)&Y8}O\£弑K`^D7ϒ.&])g--Fc J# 3o 0N0M}]̤|aj.FEeWlQnTXw =i |Ve+MoQ O 1&v s1|}]X{6k^|?scQYa!pzao^6roiSCBL5~:U])\kGy\ٽ%k Ri&9l"M8!ٞ9ѠfjrG, ޷i$v^N"~H6}*0`gmB.N!qGX$Eܔf*0Q~KQv ͹Y }q7BkRjWűFKyܭɘ֯O2pH"yܗ@_ԍO?(Fzk>Dy-i$y6/B*#cĪ4[@0uk?o"F5D4_ &;!f)˼=Xq:ܳC)B 9 7a6e¢MXJD mHz4fӍ"S]KK5:Jl8W-,-֞=F_%""a[$B1OGܓT3t}w_R?#rj@xtB29Dk?CYt\|=~֐?2i4n^uLvv^X":3\iJ>EE,x~,Z&SdǾoǿ=Ae؞B` c ٽiC<=@^"ɡ{n?d|5l%MKne݄# 5COVHѥ_VcaPA$-V~=L/T L?D;|ПT2P~ DHvBu4nӰ,tPÏ\ 0;'x]sy 5dBQ%BvI />(}x˙cKW ?Kk*5]|g爃ɟea?iRP2R3shDG7nB(0%5D]XAl~e-}c! s %4dqU*+z}B5W97 Q%sd@OWc͂곽uܩquR|q/OrN\݅ 5(hא *Yo9\qbf5MvVS%ս} 9^ʹ\%!cu*_B,H8V>y]Ntjf4q qNHWtg{H+)&Sgҋm؄R@)JaKԑ$T4< F?cTS՝٠9"L#‰]]hRj7>?bIĝj g\i跂y),_p|/e$?n5~n|5ទ6-tpJi\ eKžpХ*59{!띞{~/M@B-wNjq< wt H>WnIr emL*xGx/ WCM?N۾i읱䔅{f Rqy'PUn̰ŭ gE?yf`Y+s)tQ/_.} !r;y<}Np;:_!<ƕHPm`明Dԧfu5?G?࿱>MgĂȧtv揩CGgӀ'ʦ>b5%]Gcz Okh9{@OE%Ӊp*"KX^lWF,bD (mu/=2CW^q~J9b(=#C)i~ndOp /N;%vǢD8`ת ; Fއ׸@x]-㑻2p4G Kf;(1 7y6-AQkFc}>+64:E,®`pKYih.oG[`,`d.n)Qs Z"T3+ YH 6AǦ[wZt6aMbʗcqx 1G񳿶}UjԭH_k,# FU¸{=}w} [>3\GQ esf0>>S@yBYOmɸz~l',Բ>#c,oNvH1p q@$g~E簚W%GJ6e^t.);@gc֕;聡?&*>1NV.kB鱩󸏶БbxhRslX|G-o5.T/ԛB E@Ɠ|;(@qLd=<Z #ܖ-FߢƋrd>pv4 r O1 !+7Fjf4ɰ~ W7Q G_(D;2GPAg Q EhB Ef@>t5Ӣ`6rG|hJUJaRKg\ͥC3{@SPW3Ki8+^uGL ~r;B\vnj[h"!.(0t.Y"ceDr*)بAfRe!l=ܙ;F)4RBWYűMwי^QL$퉿z]?Q5ZO@ܿS"CФL͊*f LqQ&~bP؜[Umf6cpЅNxWB_@Fk3]u(Y|J?bIxP:: `IXz ؊@Pߛg9X{ OR} α.]" qtr QeN;ݺnWv V 6`8T?h]XPEgz%dK9K#})GagT+eˇ,dx '&S=7Cw#4nʔtw~viw0A6%_2&TEkVΐ g1Go3Gg!kfYĿ*#w*'\tvRCy+>dKN;Cz3wƶP3V`Wr۹'Ic&_jXO[fEH $<tO0^|r`g7/gw**mG O+3~" @gCt#ׂdY#?=7 2//Y{:MtҒ\lf@ފZܘ1nϾu?p5HC!HSdd\q;JD+2(圛W.AT P\<ѬwTl9J N(I1x;o[7J<*3 B<g4~ie %8@9 kߤYwr-{:gYbWm7;ʼnOA|ɸd:pepEC՜e6)ύ½(RLQOLI](>VwG*(P!vU ς(X48,jk7mԗ̯btbxo5rw;m ά€IE0 5$H~L߉ҷsMX:FU'sYzmtDUY~}d/X[[ڇ12S2O.JHXK\żh%+vP*O*ėD$/ff\n݅t.2}Y#"=U jAc(` ёۨA+XL67 ³.?E-Bz:ԃ;8ruNw<v@Bo2̂/"^T+BmU Omͻ|= CFV٪ #UAnR4 vx,ST !Ѝ, A/S\5X&0IOeCNPN+Ws6?mS+ >\PMWP_O[2\bLDB6պaV?q^@ꟷ 5`Aa;T$QlVW:Wc%fRP%wA( QT^o[vNj@@н`u>TFR g-N邃N>P8RvN3AsꙅF(,1Hx<̴H5'=HXk}"8k~^zRcxXR+*P}`až LkVN2(Ns` tMi˛x0\aJҴJbaS0Iy_'68bRZ#<MhPHoPt}C/ᆾ0ki}e)4WZe銮}ڸ3] U.$ z[ ܷSױ%do7R(_"NlPn,OJ^ri1]W3*ŰS^jbMě6#ScNK`0Rwm겅'2Nk#;PQc->}!Zs[  p2rdlfZ>.HnĴ!M邸B>^pӝSpGCӳ˯K\ {Gx٠j#]&JK}ѡ'YUQ˄VNXlj@iDKm~~$zDHiZ0GFƴ&w7%ܻEyc66aҠAh"'8IȞR**0yxor8mo}uh4< KnpCDXV^XY:_ކ"_2?{?.;D.,K9I c@{8g}e#3&:+Kܺa2mԲwcuY;D}¼)3 Oh#_x,4 dÛję!UFxzKUDP|xW^= 85HMX*Jpg+)7,m_RM,]R:RR.pRs(HCjG_{9K6`=V HɎEYY"4%7ۙ jnr̂. 6(; ,L;H&I8gpM @BIx4}[-V0l\P>zFg:קYK7I֛J!{}v֩*cVٿ*A$y<1$fXueZL=ߕ2T9tZɝkT֍Do+G*G= -v(tH͋c E_[r:eq懯qչV;q`ʠvEUڕz? =IGͯrΏk2BH D蠏ab;09p6ȧ -#Lmx^+:yE=ۖ­,l ݚW9̸z{4]G+޲ԡ&[|p#_I& /l 0|gp,98-|/Ԍ=8vI!;nTⷷW܉9rX,ސ-2mH3r_[F `jJhm̗"xoXcOS^Wݱ 0HEzb&)0u3iؽ~l1kqyRq>)Ml[3S}5&4/Wj qΝ4ΒIWfh'Ys+\( $ԓbܝg71D4=dHӯ7+d^+'y3|ѥt;'5XLA!Fz$sqmElS{^UfUBO ˢHA!vJGьa7,}ZZ]RhQPs΍@h$J+2tFst׆TQ3-e4ޫ8¿,J?H:$04\T kNꟴ0u6xB±~D7x 4D;40@GJ8tu^}Y!PB/ Vw (8TV|}o_/ߢ=ʌMى良0uȩQ'/Z} r fCsdfZ m} ; 5P ]<ҳ𳀍yW+ФQ&.N&Ϭ74i:]{Dž8͌2) ES+!P1pPNfW4HwѲ7jQN5'XC2$iUy[ v=8 mU ̤=9!Ts?X{ynoeU`PymUãEZ2o˖ e㛴=j kIfE34<ʓ :6h>O_9sua$tm$ vuѓeZQѪ, #?Y/<Q3i길H,\!yӓFBKk9#O229 E#Q$s{F ǬI8`>6oN[x|xMqédJ|ʭa DʀZ_SRK't>a@\# $䶧;TUJZmW[ += F~ Q9@ tqx.pr$ X N]}\,<@=@=j\_]`Ruwzud0: 6b{2p F76pFe .iJ8roxIC$~-7*K<.8 ;5o ?x?^8r^pw~-RBq 9.Ӂ̲NZh(u> j̆kxU6m-0ɵ١D],_(` -Dl>e,3̄KFz]C}NH>ɳ *E8UA,7-Lp`2n xO:]-TGK8 2^$m}_MF|eSzRG hì 2x4~±J_cw6M4|D%1z˸pxt u4AaQ[v'o굎 XE! ߰Ta{QAjQfpK9_$ȯ#)-3R\mW^@`Ibé&:22gr l$ߺTn`>ZPU&N?y$ѯfQ)`L1s @WRÏYajHcB Ч)| ST@'&Cѝrz,Hc'SyH* ldrNvpþ*y(?<648X<bLMXvj G ܎Z(͔X1֕@ktEo/H/Lo0:k1z[ChVkJKXMLMRxT8{_&kQ!]ѨPdUgKo2uCDjܖc'܎lO%/ƇFYŪt_Cʠ|/)(d~ԝ(>(i:4xEF~ JMQDpV>h) Rdʼ}{Kt1*ZgnjolHف/v5Q#?Kӝ$Dtt( b+j(y{^v#&ͤ:>۹+.xvNXfbj5JKV]7 X 1E%ځ3e8JidOD-t`2d8aphQ 4bbĭ%5uL -J&!;t<3*j }+]qT!76jվ#jH`Hm!!2<jӘ蒎R,d:'R&Jl wp ! @ $p*Qfyi" mW k{>u{Af눓@íϗi~?Iznc>ٓn- BܺkH9$VSN% QHי5s>׻>=Jü..l4%Փo٦SD݉p\7?=}% ,IũV5[~wxS&l ~/&:f t rI.,7lԭ9gLT7G"r Xv^1XXVs Ƃ I? K#r:=)x<`Wou,by|9 zC3fo',\90Ⱥ P8O[dzeq=R3G+#UfH Yx6b&1ƭf#i!TwK^B%i*܌Bۓ?ۄWKx[{ TTcMfew]䅦/]M4eAQKiG<6b(@Qr;::ɐsy#E+:~;Jz }Vdp{?.;D ^"G̪gŲsWÆXc"/W9>%73C-Ř#4)yQL`+ oy!B̖+eP7۬Gm!U^7ݾ C+do 6HKGX1q^xm(tZ5p>GAЅ,_?{qKZ')#G{ɱDX` r`WWkq9Gh" sNTp 60ܖ|J7;u`{%#db iA_m $in&$!vC .yG Qv`!7³>|U%bwpЛԷ{De .ۉ(}=`ZpJF"lZa=(ͦOQhQN$ wN qQt? v/98ez-K[f*#w58(ywe)m  h>yq>Jiʡ%a+{>%QY͖#yP['h1tG7l6|0&xFAfDczN?c"ׅ%i2$uteLLrc$S:pHܨs7R0--fJk|mL0 IK`|-Н $Eř/IX/99<O1ح7NRrP2\ba>H͈CBEUX?083@@O2Y2eX>G$Lźefl/XS&-h-r,q㵯9zgLn648py[ph?z fA=:T4E7u`vdk[0N=w?r5qdɩId9mj^ j% f 4<ߌSވ3 Dؤɂ;Ot">d  ҍy*Գ2>a&iJ>P 'BBH%żSSqnG/N}‰5Ju`%n-DS_/3'^gFi(>fBH3+=,?)vtUEH >C:jr  MXA9jT})l9J />yZHOt"CoQA0$_{*۷ar,q 1ťPhF3y ]XQ9dTO9{S <3:[Semt}֎U]C x; :7c]zIcy Ƣs fy9[Fm2\ː"*8K,0@fi(xvU2 jnM/fs8'}@"_hZ/sC6}}bYA5lP\-WII12P1x6X ud23@^uIIukFzKi;l't,@A(w{:0,֧;Z,[۩[{7~T(1 }ÒlvzCZ IiEl6݇y ǎGR®^[_NrGqCjD#s^Dn=0ز#eg 9) Bg ԯlut8 </&zGrSO p3<(h Ujv wOZwrbxft4hc}5r=w($*rQr@^%o F"[Er89Q5[˖A j%mezL%8nz Sξmȥ8"]]soJMKx$n /lh g;QfWp,pSgh'F\G%8??9E0FKű9-BF1-zL&poi61ENre9klyT _@{&Cs7g97CyxH ^KZwTH6#fRLPOzC`ޅ82:`ȥWas[(X0(/A0?C؎t| \t=PipL%H"ʘYSAwGhB snҢ4fvEPçe/Tf$ $gVߋh%f LHnq V-lPxbIZ]S1 tk{"9BTqM|EJGKsQv`'VcW51R0ĪSRY{+8sYǵx,Lz[FIVZ7c\2b 5H81HD f!7D$-{1i䔚@~ރxޓC%}+TRK3L9qgw{ֳix/W63+c_4|!EciY(0 E@f<|r5'uIgNb>#^x&5RXɿn=Hb2 8>2wÐ%!X(*'a\{a6/5an\8+uJ+ܜJ\0O+"=_<wiJXX\} yL4ۡt2gs8_Ki#0B2PpIndDK]LFgorYPO=UW``#+(tqKF1|{X 𑩊 8!쩔W>G0Ek .DBhʽSI2gG|kDb?}),zz%x\B6ȅM^ _^b-IT c"vL&o֌6_, H%B5x V^f!NjB+0Sr31Z[ W5 #oW۫%~C3Sqh$[ί} @tb$Iyl2uGr6p|"?`-Z-~F;C SH[ /땤}I'Г5٩fd,ʹKs3xe?!rWI3HX\ 3@-ҸD,ẑՄOD/fgKY#'p5C2w~ d&AZ9NiV)!vqJ|دzrʅʆ@XwCf*AV%sTy.gw^B@3 tuwTABȒc<lOM_&)٣21L=?L&D#8YYG^ a EZ B x_ nGO"O:nsʸu>؏8dpm i/ "X _+}w1}ZO+=MF M-|&EU@˱=Tu ֭uX-/`M4K݃h`T 9`^z'*3 [4K{b!}OL-ޯ%4І=?&7W%_}Fr:D7.u _##ҩ!)6+Op@T'OB%ofoy|V`!A g mi%0q@3p^ZbȎIToKwK G*;?igc'W#kȰnVJ Ԟ0)z)#XNyw)YO{LC=+`=k'hm (0 `eL2]Q\z#w6|-jwT8OdCAF3d liA0} eGWwMZƎ;ʺ;/CX`xAA_BT),dLtGg6YS^j4M~ۜ?,؅tndjPxݜDuLsTAm{ Qq рg n.t+?IaP lk-S֚mB>VơL6,IW8Vy;-H@Tޝp_=. 7E?+œv@h7^N$F5Z0hI/ȇ$W)(Y86vrzFNPEE=`#{ղ" md,^K%ve#2Mh:=U$Q`mI'(/7[30`1'sp"j-}[&Ҹ|t0Zu(ZRe[Yɰ peJK{Je3!1(ȕQ"Ar9>Py;vq!m!RH}c;JhX_c$Ok"=LFz7q%~لV {4ӂ`b^2w|sy*4 4BZB~e %[ʲy.,ꞤY>, R9^60! PAyYMO[呈UDbZz4ƪμB^TvشU_>941KV"OOBzM*O^Aŧ A4v pY1 NppÒr?.n t?FS_`aj$ne=9w /f|vzuqaǯ0 9`4I/vD֕zrќв Ơ˙'`=; ~R#yξFvݻN33U)1f@1bb񑱱Ct[F O+-v$ dC7MImsƩ$=)zC&J*e.7TGdf?E[i9_&㖙88)CO7JU),դoAJ9#gtq 'gh>M yhN~dyb;3aYN(ݤkB9[諅HmE*Hi`FD6.'k7WK,JIٌ1  NclI#..OɣjX hQ0_}!) ~Or/h-' W;sۀEM ]#^\ ,&z5cAdwB4@h9%JvŔbv2&LL\Զa֢:r0(D?7F0 +ߔS7;~Dn!t R8tۄ#^ͨlwAގ(8`#+XКFD&CdO)nnUdX1ht(R:"A9J.ƴwGB;ths\ËVOjN z$b'Ww?Hd|TnfV;R8\*zeאgnnTSj*R:גM'2#!&&0r±7+sԶ6%4v $;peQC0û%FM6FQ ~,.!eNl+A*`8Q,t`$׫PQZt%)V[_?W̬Lܔ舤'EH8WppFb$;X)<ؠ,BJUquDɱ.[(t*pmf4 !7}(CTMtI ־##K0FYV>ʳ̇OJdE9"[Б* P_j;҇܆r5'K7Zd:阥y(о8vphu |AHsM/>"mtx b(h4 @T"] I]O$,w6P|#o&~h Q^ ܄  Px-|mIbRJɪdLCu?1GI#MhY`Ⱞ54_+ifU`?9ƌ#r"$1A,BI9WϗEj~~$)j&25w |I **ƈG#bNvYOϾy)@'%j=/ָW}w4&iyz+wLsK DR=oM˺- /9JCƊ:i:_szN0s _c<y t“̤i{ ӂСF C@e*<,xX%B̰?jTE%!QϻѰht&FBBWw>Oyɢ P 4rtJQ]m MXs *PۤuPX"sU],a<Ň8X֗44G>}>EouzB\a xY:ؚ&Gؕa>;0QGFJvi[VIu9w0JtZ!bE>0OΟy׽K:q dapYxs'U&COHeÌ*]8Ǖ7a0Mt#`X7&ǚ%hzT>&6I;[i3sg.!qYqkkO[8CF:,9/]?T"pO颋 4@*]b5p44I#}Nl7d맰c_N?^w7" (lRg=/Q%- )Č: d'4"uMuBGog"|!p`H~ʥ2{LiAg'Bj'$?hLYJPr!}EZ_s+xޢ|Z"5s9B41~2}i@/JG5ʂQt!9%$ ί8@gLK0CDX08/Q\-pKՐF4:t<#nzE 1yl6NHAH<ƳnF̗<\1躟ehU=C>w'X@eF;QJyyC(f2hGd |00%;5%AJӮI6:]t4?뀍`NzZ k Fw,)N6Ѝ:; B;>f?"߫m4"͜|<6>[ sjQ`r#t">/-zX ((Ļs4JN',6oRц}Y}+֌ yLE9oX<;|A+%Υ; o/7zhlð>xAa PeBR~m3poپ1!ЋGLuޮqa6B QXMǖSs➐8ঁDJz 8ő$foC"YiPM UT3+ށ~yUk<5` =zU}XPEhtnջ ITAZ~ף x "p)Z1#.G\|IyNJ{g5\!Kǣ_+ =.D_hiU77}4I(ep#5ו;r{Yx̴'9hnЃn}+ 273渰YBdֻ'D=tND(?#xtxdvOYx"^->\+0"؜opM>Mz?~?Z:.:̮ig v пmYn5DzøaZ#y?4<3g0muUr۰y] 42#/(m^uBfH.#),r&,[aœ2ꃚ_RF(|xFNM;81eIg; 5"sW z.0FpMs pq0( P5Ġヸ/2ª2".G.f" ׁoXZS 4C2 H*;[,n̰ePBm&QUܑ#ԝ(,%0,O` y䰂8ۋh0ܿ ;5g"lT(%WL1f}*]QXWrmʀ7z^F6n׸$[o.~GKO 3d$Z l ,m|z.g5jJL|tūF]7Ng5 U_Z U I .X ^媳Av04[^' ]@PhE=lGd K2ɄN4[F%|ʿ)m0Sh/0÷8H+.@[sEʔ",$$T^L‚R+ߎS6;u JQ4/7Xw0zwڈbѢūeo׆[-xFkߚ#h3%y֡gKtqЦ~͎V)06]߬A˘_x.Ld# @sIhFګ0o<1gy++ wP)Ζ~[TH0L ^88]*AcΒjkbÜs)F 0ΌF}A=yCZ爼GᓄĊZN JuW &((Q5V4ɺ!<d]?T*ؤ9p#bIӱ9}qV}+E<p%dJ:i9q<'P7%z @n7% iw<*Btmq;=j{ Kd8jD]u ,'v$mGEXQeR~œ`o mjTԯ9c@=tEswZ l*%1KБ y@ԩ~bvE`؉@jsHh SD 12zUU_ؐm%1.1;2`&n_MYM(͉嘉ɾhTPj}DZ"drPpMݑIqN./ƩBِ%3165־ p6TybШ.X ^lq,-6˟|+HI!O. VRi#-X쾅"dYy ݯ̍zt%@#@?[,zjWV]:HV7߭⦩Ry2#u*\2ȽL6d)mFr'g[h+31)TIcd$(LbZTsfld5J=fU'jު4dfVNhpTc綅]\CcȔƛkHNǮL[k4e3lwC&'AӞu}LA:i욊)󡦐>g:ـ7ƒNS?ur7*}J€|6A@^8_>;irocvb=B|FQf 6,wB3/=f9 ?U 8 !P}Vy5m*S6~ 4Aq'u(DHWm Ҕhf,M72ُWrM읶>i-Jh2+ I gMV+pFx'8+m=В)kɩ$k<ʠ2w=qLfF̈՚ô(j+8z4[o__+bIGP8f@?mØiϹa 4'NXAzIzMRhaxSoQB2_J{^%-ϧ jL(^Ӯi73ήBJj~2n^`& !I <m9X5?_g>Zjou;NRrύotfP*3U5&d 3C|nO=MNrK5'm]X+XYF["*Sp/u~tzR/ON[Xfsr|M6AT$WK%[AJtNNc&sI)fS;%: ˊ##qDvۿq/CP {fC`ؓ,)ӕ6Kx"l.ؑഛh>h9b<&8 y~oQh||H%?S/ǭa]/}NuYG@:[3hQbwML û4N\&rc@f"&?>X gշC_L?`d/ eAOj_LևS:61MN|H~`+[&M\IHg|ҒaF?Wn)ag|hn?V}`v)̰DǞyZk HM >1cܥU)jQwUD LK$?[RfkÀ0.-ջknX pi.8,͜XHyD}!nAk)"Y Vs\nΆiH\DOۂ3{D`fúO.w 7pw+pRS>x!ݚf_I_zY~,d+/H}v=[;x B=W:][e: cjl^|ynS,"ɜ{w*!!j9 b(9y>&\.^gA|C!nIla-%kw>`h\p<%I}h9 "F [DOUeq xh!eyms23Z,Y& 74v.C@XS#0OؿǡanR[,3^Mt 8(:ff/S3x6K{WUi @s*WvZ&YS7NY̹<fD{Y~$yZ%rZ;w &o Xc"92pO=pS +gTV}XIA+ 3{5e`nՖ\ )ް\WG;1*w>ġz" )l6 ײ\dG׵4:j||=̮();[ < DzdƮq-l6==,&ܽ=oz@$P34NxQ|z`6tiaƴ'vyѮY3s62l$=&vC3Ӵ9{= AUUMef?%eOEct8n 58ȏRdJyFtsHVVhR#lu/C#B]\`r?~k;B]p ֨/$UAĂB`ÄG^C#lܼT$`~Sr-8if a8+Eqɣ0i7?-trFxnz,".MwHU12 I? ǻh>{ WͦЁ=O.Uʮ3PI!źi&€pY,y?Aa -WmpP%VLۊ4{ˆDi4kkf4㟄u؈OEXDgŢb NTHsſZ&kG++7X{ 콑򄝁lo (G`Ѿq 7EEpNZH,W P"b~U6& Ń xLOߵZ>Eyn{ĭLeC0D]^(eh%`3f&,w@x ]MImTK#.jE T+|Jy<v-H.nY8 ²9iOStAjBc4}d/dBPtxXB " kQ1k[*a9;v!/7% -mrTx0“9Q:&@kfq!EW'wBQ9P4" OJgY X +܁f'ֆSLxh8HPj?Amiyk߸݇4Β>J`_Pu ?7 \~m(SSu#ְIhoi`ytYUc~Ccc&pfo6$2ҍ; 04 6!Web&{#=\|7ha?c}/ͺXX8™P ,cF?"l#rs (OLb1-|f*qa]iNK7 #hǢⱲh$E=opf;"%#`bn'/  9]E*: JF~G tWD8\P\ b(2dk MA51R6|oNg=nboІT tGx kCЗ2lΠrw W͋;~MMէc>gj1} -nz' _" %7Eݮj <[Fߐ ;Pty&)Ӹ/D=4+czGK#/|d7kZ:խl!9%/$(Io۩pf8A˞ש]wxo&^-[yLj(4h0SNӟJJ˳2j1D0>3M?nU=el%:C||p2s/ 0b`½x7/7 F.q`,FbЯ%Q>62tZiRkX]zkaP!]6Nm A`8wL7a6WӐҍݔM/=iP^\T|п,Y/zMʢx;y:[C=#lRb|;DGGv1dCkTkӷKm &X3$+RX $S(.!֌5G",8C`( _/'ΐ^/i'=MɕN*iВkmvz+PW6maS44C|IL·Us-MXU2%_ @N n
#X܂XŅ>}UGQ-9yw>r@{pB.5< 4~Z ^x=<V/"ҐIӛͶA[k̛f~,РT_Q :MKaUNʔ`+:Dz!>iW$uCݱG͠9F٢" #BeH^`ln$͉)')jNƲR0`(3#[5 h,ՐmWzlgε%[# 8>hc7؋y1 x|yWi )4~>9!dx1GKe%6SFhp k֝oƝ "L&Z2\ˍe[wbB7 圾*{RA1 ;wݣ$5CkAxsjiq-Gʳ8ڹ7xăjwY$˛n wKA0tMC)L5eVW*= '=ΑU<82W_N9pKP,Y#(@n؊>,D(D(Y DVkei? i zA8gI֫0pC,v샺6Nƥ _1uʫ+H&Y!wDw{M%P٥wMy$͢-\?O@ά}HЧcx K0`܁=[Ɉ`p߭{=W ]$˗* KJaˆ9,ۍ)r?w,i1=GDMj?>GV۰ߥޮ1U_Af0'?©T6ä3Bw@XQ|ܔ!4*5L?|@WAY8 @krik 3 w vN+ ņؔ1a0WFV/XtF&sηyQMUA9,X9Q"<<&xDhL!F;$HHUwOhlJ2?j_hq\cԌ첸hPomV! CjML3L,j,g g3BbjtT1S|,|024{} 1Uj;Hxh_ֺld)_I 5T$VE4% DXM oooF[Hߚ'Ȣʜ$,\lr4a t i|qVAzJJ,4:"-ÐRmټ`JFV\ 򐿴q8_kdI4ES\(ǧItrqT/=6>cZX+N\2J9nۖ$wQdnRy?6wÿ uRcLB[i.m5u}'več3 Y-uk >iAp½@2 77tpͩ=% :)'cFiV4=Re=p׀ꃾoS9!| њ+M]hP2c NűoSFmuHci`xIJަ5v˃S$ѸƬ.7Y"0IsW цD'(r8lѐ4$,hV ##wg‰) SMEn=낗_iS \/'A,} Mh!zYK|96*ȡc;|`H_B}$ixÏ1|`t~:"7}}>Ak HG oj!T6D&Dg}v77LJ#M N;B@uW[ILe3)N dm-IwNx*ԣP djPmu@[WĤ?"_#(%w,$Ie8Ğp%oK7X_혥Fr YOu$_ԲLzkv黮d:$[[s%jGIQyD4>m'/C#$H (:7 ^,\D{4P/OI"__K90Y~"dU[8S4t R 1|7o6R }deAifw]YZjmٖCU}in(O'KY |N*3h=$kWҥpDElm ~zDƞɃE~$Cȕc; PgRo\rSҐDĖ_g\yF/,p:Hpu1#`Ⱦ&J!*WjQFTpLCN#CCD yrr* R딸˦`mexꢔ4u >ƥcYX"4؛Y풨n*?ĉ.,/~_V Fk<TP*CKc\fZd J[0|/[Ęa,D+y5zg%b!Y̻?|5<],TDUfe[yKՋ,pL"QysO&'C8<2$tmPjՑEj[B\;reZ5GXC :_Ʌ$5j&\%ւ< aqyRokFh&1l\ &òmzdWmbki> 8 n?i>^ |)5)~~\j|GjH\6bRVw&ߝV8ݶ >ܓIGRgFŎ rMF5F3Yq/d.?(/) RD?#)v32ʔY$s)o(0tVb׽x+5 `q' &gD4/'0Cl<9}jj̯I:!IH盭*H+$rU 1eR+B%OOj*2;#SF:wu2CYl K))`-e6 `-u$stYgF|v 9wB"Ǟ8IUը0mZRt2ruAY*thJPo΀kA,(u?;I@yHӯd/qTA7yxR"f~&'!Ϫ JxȄ¨`5bk0AXGe(3[)zPufJ,/ZN tlݔ,'\ƾ7:" ?Ō2Sǹal.Z7Fu7ߺc$n[kgؤ#j[.qlWhEu<!;JExNE@SiA@\X@sAYމ]3|\-*oBp 9EիR8.3$kg่'"2?pdLrxQ9aS,zNæu_OdjP(~sŻ*~"`=BI'P44ݰ5YvMرaDiؖ_9\u5fy z&ȎBHI j M4b'~#XEl\'5=%v7P @PWQP,[>K&.v~JҳQ19k8Vx`WgpWp}T}8 U:7xX?d!6a٫""Щ= e⌺.2+ H0ZgDl4t&})2 F)P:6AVޯl1 c:J4t %ֶY%(*.Wɡ<ӨWC8Xd9lD`!fhۘhu!r{M/LMSܓՔtL f7װr̨AmMyl `4S֏3Wh bفnx)xz,}qV*{*|J1ax,!Z|-oYZ !E|y򨓓ޞargU܊a _/x޳,u:-3A6?#e֖P/1B  ę 2_^~c*Ym]&ssߺIn,ILD+Uq3+;Ό+VxXNFP9$NJ_?x7'qFWyrlwVv Z4m~f4Ih)()[.M}2pJvL(kpuV8a愊ۘXЬ x*)d8M(0V 980'w{h8˭ZN][tb^R VA ǯcbm H9A$\v,Hc)ʲ&0>{6t[ީ |?+zsIGUfq 讝6jZ+c]VR 'eX~KtNaRtl/=Z;,*8F-ԑrYFOɔ* q8}\wJ~L L`\lTibczݑI5=BIFyxY${fgT1W yusl̺Y micSPDmNijTGBpCFg0NVwDuX+u* IOSoғjbBqݷ.cg-F:JOr4eXx SUb6p(f[HSre]Fji_) =@4ɖsmb,@tiTuŶb )3C+H[s('$5]@vbbX1EPhF&"tALn` juU3$v\ 5~h'vu8$~zP zoJ/ZӕyׂbA zi.˲= F [w4LDn힌7ͰdKL/pt݉"tW芦w 3#ĸ_%k g)U tN@\ H)h A>RCE#0j} HJY/U,o hF[IEh#4 j(z7k)SU)#f-G,wKi#G–T$ZoĤt- A,FUQ6 " hPs"/&D<7$EVύI;`Dn:I|E>1|;/qnbK,r .I툥p;64) fI1[xrT '2}w;'1qCu؇d:پŀvɺV\HGwCapm 'T պUkdȋ&B@F`0u`hFd]w !Ƨ'$&n40SnH-#^ hu,NF=f@ln+` ٟ?ڍF "pDi:?`y\ic)( 'jn zCpCexj){c5Ž.p)M8ZnCq i IyZ1@ԏ*A=Sv:uVoCg1%jwO[^ %cfP EYLF>7پ`a1ݟLJdu+|9?zW*wfz-5 #hK_d)g[ro9"c8w @U!y WPc* ("F^bt-. s]E. uZT+C. X@8q5TTwC2SCǦ$ǹ?AYmb4S>1Oiߕ>^ @Nf7_0\ -\=62ܶWNxfO؊QXmmmkm@T `ovBrݡN Ҍ%T{ *q@2_J06A!܁)~  , Qm sNme A D4k.,b7bpz;vIG/i6-558q m5C>!7HXRDX%b2>$(*pœYu$"I, sԲ?*k@Mb2 [arVA Ѿ3Ɖ@{b"}S$ L$1cu,-)%X-dN?īłR jyUtݦa ƣRhW1$RkPq4\Qr LtN,>{fi(%SmDmL5}6uMSگ'dg'v$ 48H3\S\myӓXҮTO!/=YMI1iդ(?td;A0x=l4 DkY瑣9{H؇Bxx .ho㹁@z|MWB$]YIHB9lmXE'#Mn02!~b<|Aa;e7FF^E"w},_CaA@'5#N/ l(8Ypۑy %:G6l[Ξ70bxT+1_өi5")7#lhW,QѦ?Su;աZ&zw]xklBm(^*O]ZNTiAcRQ<Er ҧX:.!gp1 Ry ^L8Pɗi_&H@( BK]R}?lDk2c|P%y3y`%S ŝTSZbn첆Hwֆbdg6O+׈ث7j"FM&v~Ō"G!ͬuT6n(W 9`{Da&0wh\+=6Vcz :Dh ~E+ͷ(Ah?)BFs>'5\aUA1H' DZN _h5w63@!>_;u9 S+6ԍHfdxE^Tqe*-AUHP.֞B zQ8!BPܹG0 VEj!")3 h7F(* n9[tƖxU,*."nDEFb@~^ԣ3sü{ =FzSC@'UEO׬kr;2#ݖ@@G-'ښr͓}r6=hpMp hSB0΢I^;klI̓yL"=ëM g -K S  )rˊܙ@h5MA~Y^)uH BiU^[ڔ[|B)'{Z jAi}fg A~Ajr֩iTg?wwQuRC> -[fyai;>uy[[g?(1qf>mVB|2%FSs0eڱu;/ )Byd4S6aBRҖ7 8:3P#ENhJشr8+qՖ﮻i/50xt 3eՄ44Ub 4o&! JL3=OK#B1%!mkn񇂈t9P2JD!TJ-Zq>.!FPBHΤ\5GsQm=CêlK Dr lW%%UڧmG)с,:ӎwXFvz _5\IYPbIUUZgQhi;m&/ipjUx@9wч‰h7fbĭ#Ih0=IsA*xlJ  KC ļiRWVh4`^PLZ5 $y"7S,VwZv7t)=Ŋ$\Cb|g MGnj%=@r;Ӱ .U5@_`0Vakγ_cS vFR]B[Wcah^"JFGтZz):s-ǻF;0Kî/:i:lqr3ӴCI!]α7 j5KC ضHRƿvf7qTM4=pA((|*}FU7玞0MiQ^񏪝j[ӤztP"V v@2uNG8 [%K.wKSu] wE_K~#ص^F䖇ʵ)3bv=Ӫ8㌿mB^Po/Q9< ̄=[ɒv]:EA&uFp0Nx?UZ&(]KR8=E霵4=P)EW9fX,dHU y~\ ]\v\-h( ˕22>1RxI \W4r FiRǠ @81Tf{ 4GY?Q4c89@+w\1V+p\lzpix&OBo2t\L̆0.I^@fg&9 p'yTK#(#r+le"xCgL֦P[EZad-7}8H$rҤFa]w@Wč{uZ62@cqŭ|Ey*ήu*5!4lBq&dіMHw 0ƤjI&B17%Jy*-σDQ} H_|T^B~-@,~Ldh+~Ld*ޭ Ɍu^!M[A8>-9'kH %/1^ŏ mW1XJgM0g/Lgg[jt;U!r0:Vjf ~\1NSMBRcKie,ʉ3zC";8NaݚPo Dz<\R*bJ1 5`$w <&ɢfmUW8pHEvד ^A  :6 ]yPF rM)?W1 hHFӆ9Uܚvj2II$R &P'wBCz+pr+ܔIIzJaïd-+,<׶cEv'Y  sjE698 f< Xh4m0@H+3zN 1R$ o AȪ*:Ch X|Iu,2qp۠eݵ̉OV@d&tp_ )]3馾08uu qTs=tzC+HB`=ҋu!Q| y5~]a2}T\i@bu'Phˁn`HOݹElPo:@4%(J%o,"v<@%Pʩ0k :4Moj7Ĭr'Q"K"C@ݗ%<i¤58k [A;o8i=iRr3PvՉ7:d &F!}ɱcJCXH0[?H05킒rXH"WkfZ ' H.3`*攄vK yl8pygGl[4Sz]W%GOlV_Qى9KJӂ^BP3RF\钶ӆu<;h'8!6kz6b`Q#־sGA2K=DB0} Oۣd 3gc eޟ5 ڰR>vx(5Nk(--Ь"ٷ| Z4u1JZ6h&z g WxC(Q)P `-?HL7cP⬱ ՖVdҌ+sCQQ:hg~FjyKT0QH"NNM%3Tx<Jz ܂}ِ0rVCޔc!Ĥ8"K/Qm Dg#"9!`n jA379Gصvzck+M,҇2BՅhH'94p ;xnUYi&G8Ʊc9 'oNWI@^t{R.L(y %2o6@ Eŗc< ;6䕰FHJ)ʗ·^.! k'IE]u"DL=8 +ǵDcQ0p-Yvo^T൨6u: mRa*ٛK0N=vՋ ճrczwGL*9QAtO5Ί qŀz/w"^T`w 1:o8;Q<$ *kͤ zY>$k1AY&SY˸# _|}~o׸D zhѠFA2 4 Ѡh= 444=@6 4hѧj@F @h PɡiA т4M4Rv4 G]"ZRu(y Qw|x\[*`2cV'`{.`<n/ p5kWY!INR^ژnrS+6='{Ȗֽd a2h ?*BWcc%fϨxxއi( le i#ri$a*bO, ֯*L[:j(=ުI+E;/?waҊM;io Ujo£ 3B *47L4g{^(cIP|wXvFZY m!H *