aboutsummaryrefslogtreecommitdiff
path: root/advtrains_luaautomation/environment.lua
blob: ee7628dfce2a5bc6a07cf34141931d61852fcf03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
-------------
-- lua sandboxed environment

-- function to cross out functions and userdata.
-- modified from dump()
function atlatc.remove_invalid_data(o, nested)
	if o==nil then return nil end
	local valid_dt={["nil"]=true, boolean=true, number=true, string=true}
	if type(o) ~= "table" then
		--check valid data type
		if not valid_dt[type(o)] then
			return nil
		end
		return o
	end
	-- Contains table -> true/nil of currently nested tables
	nested = nested or {}
	if nested[o] then
		return nil
	end
	nested[o] = true
	for k, v in pairs(o) do
		v = atlatc.remove_invalid_data(v, nested)
	end
	nested[o] = nil
	return o
end


local env_proto={
	load = function(self, envname, data)
		self.name=envname
		self.sdata=data.sdata and atlatc.remove_invalid_data(data.sdata) or {}
		self.fdata={}
		self.init_code=data.init_code or ""
		self.subscribers=data.subscribers or {}
	end,
	save = function(self)
		-- throw any function values out of the sdata table
		self.sdata = atlatc.remove_invalid_data(self.sdata)
		return {sdata = self.sdata, init_code=self.init_code, subscribers=self.subscribers}
	end,
}

--Environment
--Code modified from mesecons_luacontroller (credit goes to Jeija and mesecons contributors)

local safe_globals = {
	"assert", "error", "ipairs", "next", "pairs", "select",
	"tonumber", "tostring", "type", "unpack", "_VERSION"
}

local function safe_date(f, t)
	if not f then
		-- fall back to old behavior
		return(os.date("*t",os.time()))
	else
		--pass parameters
		return os.date(f,t)
	end
end

-- string.rep(str, n) with a high value for n can be used to DoS
-- the server. Therefore, limit max. length of generated string.
local function safe_string_rep(str, n)
	if #str * n > 2000 then
		debug.sethook() -- Clear hook
		error("string.rep: string length overflow", 2)
	end

	return string.rep(str, n)
end

-- string.find with a pattern can be used to DoS the server.
-- Therefore, limit string.find to patternless matching.
-- Note: Disabled security since there are enough security leaks and this would be unneccessary anyway to DoS the server
local function safe_string_find(...)
	--if (select(4, ...)) ~= true then
	--	debug.sethook() -- Clear hook
	--	error("string.find: 'plain' (fourth parameter) must always be true for security reasons.")
	--end

	return string.find(...)
end

local mp=minetest.get_modpath("advtrains_luaautomation")

local static_env = {
	--core LUA functions
	string = {
		byte = string.byte,
		char = string.char,
		format = string.format,
		len = string.len,
		lower = string.lower,
		upper = string.upper,
		rep = safe_string_rep,
		reverse = string.reverse,
		sub = string.sub,
		find = safe_string_find,
	},
	math = {
		abs = math.abs,
		acos = math.acos,
		asin = math.asin,
		atan = math.atan,
		atan2 = math.atan2,
		ceil = math.ceil,
		cos = math.cos,
		cosh = math.cosh,
		deg = math.deg,
		exp = math.exp,
		floor = math.floor,
		fmod = math.fmod,
		frexp = math.frexp,
		huge = math.huge,
		ldexp = math.ldexp,
		log = math.log,
		log10 = math.log10,
		max = math.max,
		min = math.min,
		modf = math.modf,
		pi = math.pi,
		pow = math.pow,
		rad = math.rad,
		random = math.random,
		sin = math.sin,
		sinh = math.sinh,
		sqrt = math.sqrt,
		tan = math.tan,
		tanh = math.tanh,
	},
	table = {
		concat = table.concat,
		insert = table.insert,
		maxn = table.maxn,
		remove = table.remove,
		sort = table.sort,
	},
	os = {
		clock = os.clock,
		difftime = os.difftime,
		time = os.time,
		date = safe_date,
	},
	POS = function(x,y,z) return {x=x, y=y, z=z} end,
	getstate = advtrains.getstate,
	setstate = advtrains.setstate,
	is_passive = advtrains.is_passive,
	--interrupts are handled per node, position unknown. (same goes for digilines)
	--however external interrupts can be set here.
	interrupt_pos = function(parpos, imesg)
		local pos=atlatc.pcnaming.resolve_pos(parpos, "interrupt_pos")
		atlatc.interrupt.add(0, pos, {type="ext_int", ext_int=true, message=imesg})
	end,
	-- sends an atc command to train regardless of where it is in the world
	atc_send_to_train = function(train_id, command)
		assertt(command, "string")
		local train = advtrains.trains[train_id]
		if train then
			advtrains.atc.train_set_command(train, command, true)
			return true
		else
			return false
		end
	end,
	get_slowdown = function()
		return advtrains.global_slowdown
	end
}

-- If interlocking is present, enable route setting functions
if advtrains.interlocking then
	local function gen_checks(signal, route_name, noroutesearch)
		assertt(route_name, "string")
		local pos = atlatc.pcnaming.resolve_pos(signal)
		local sigd = advtrains.interlocking.db.get_sigd_for_signal(pos)
		if not sigd then
			error("There's no signal at "..minetest.pos_to_string(pos))
		end
		local tcbs = advtrains.interlocking.db.get_tcbs(sigd)
		if not tcbs then
			error("Inconsistent configuration, no tcbs for signal at "..minetest.pos_to_string(pos))
		end
		
		local routeid, route
		if not noroutesearch then
			for routeidt, routet in ipairs(tcbs.routes) do
				if routet.name == route_name then
					routeid = routeidt
					route = routet
					break
				end
			end
			if not route then
				error("No route called "..route_name.." at "..minetest.pos_to_string(pos))
			end
		end
		return pos, sigd, tcbs, routeid, route
	end


	static_env.can_set_route = function(signal, route_name)
		local pos, sigd, tcbs, routeid, route = gen_checks(signal, route_name)
		-- if route is already set on signal, return whether it's committed
		if tcbs.routeset == routeid then
			return tcbs.route_committed
		end
		-- actually try setting route (parameter 'true' designates try-run
		local ok = advtrains.interlocking.route.set_route(sigd, route, true)
		return ok
	end
	static_env.set_route = function(signal, route_name)
		local pos, sigd, tcbs, routeid, route = gen_checks(signal, route_name)
		return advtrains.interlocking.route.update_route(sigd, tcbs, routeid)
	end
	static_env.cancel_route = function(signal)
		local pos, sigd, tcbs, routeid, route = gen_checks(signal, "", true)
		return advtrains.interlocking.route.update_route(sigd, tcbs, nil, true)
	end
	static_env.get_aspect = function(signal)
		local pos = atlatc.pcnaming.resolve_pos(signal)
		return advtrains.interlocking.signal_get_aspect(pos)
	end
	static_env.set_aspect = function(signal, asp)
		local pos = atlatc.pcnaming.resolve_pos(signal)
		return advtrains.interlocking.signal_set_aspect(pos,asp)
	end
	
	--section_occupancy()
	static_env.section_occupancy = function(ts_id)
		if not ts_id then return nil end
		ts_id = tostring(ts_id)
		local response = advtrains.interlocking.db.get_ts(ts_id)
		if not response then return false end
		return (response.trains and table.copy(response.trains)) or {}
	end
end

-- Lines-specific:
if advtrains.lines then
	local atlrwt = advtrains.lines.rwt
	static_env.rwt = {
		now = atlrwt.now,
		new = atlrwt.new,
		copy = atlrwt.copy,
		to_table = atlrwt.to_table,
		to_secs = atlrwt.to_secs,
		to_string = atlrwt.to_string,
		add = atlrwt.add,
		diff = atlrwt.diff,
		sub = atlrwt.sub,
		adj_diff = atlrwt.adj_diff,
		adjust_cycle = atlrwt.adjust_cycle,
		adjust = atlrwt.adjust,
		to_string = atlrwt.to_string,
		get_time_until = atlrwt.get_time_until,
		next_rpt = atlrwt.next_rpt,
		last_rpt = atlrwt.last_rpt,
		time_from_last_rpt = atlrwt.time_from_last_rpt,
		time_to_next_rpt = atlrwt.time_to_next_rpt,
	}
end


atlatc.register_function = function (name, f)
	static_env[name] = f
end

for _, name in pairs(safe_globals) do
	static_env[name] = _G[name]
end

--The environment all code calls get is a table that has set static_env as metatable.
--In general, every variable is local to a single code chunk, but kept persistent over code re-runs. Data is also saved, but functions and userdata and circular references are removed
--Init code and step code's environments are not saved
-- S - Table that can contain any save data global to the environment. Will be saved statically. Can't contain functions or userdata or circular references.
-- F - Table global to the environment, can contain volatile data that is deleted when server quits.
--     The init code should populate this table with functions and other definitions.

local proxy_env={}
--proxy_env gets a new metatable in every run, but is the shared environment of all functions ever defined.

-- returns: true, fenv if successful; nil, error if error 
function env_proto:execute_code(localenv, code, evtdata, customfct)
	-- create us a print function specific for this environment
	if not self.safe_print_func then
		local myenv = self
		self.safe_print_func = function(...)
			myenv:log("info", ...)
		end
	end
	
	local metatbl ={
		__index = function(t, i)
			if i=="S" then
				return self.sdata
			elseif i=="F" then
				return self.fdata
			elseif i=="event" then
				return evtdata
			elseif customfct and customfct[i] then
				return customfct[i]
			elseif localenv and localenv[i] then
				return localenv[i]
			elseif i=="print" then
				return self.safe_print_func
			end
			return static_env[i]
		end,
		__newindex = function(t, i, v)
			if i=="S" or i=="F" or i=="event" or (customfct and customfct[i]) or static_env[i] then
				debug.sethook()
				error("Trying to overwrite environment contents")
			end
			localenv[i]=v
		end,
	}
	setmetatable(proxy_env, metatbl)
	local fun, err=loadstring(code)
	if not fun then
		return false, err
	end
	
	setfenv(fun, proxy_env)
	local succ, data = pcall(fun)
	if succ then
		data=localenv
	end
	return succ, data
end

function env_proto:run_initcode()
	if self.init_code and self.init_code~="" then
		local old_fdata=self.fdata
		self.fdata = {}
		--atprint("[atlatc]Running initialization code for environment '"..self.name.."'")
		local succ, err = self:execute_code({}, self.init_code, {type="init", init=true})
		if not succ then
			self:log("error", "Executing InitCode for '"..self.name.."' failed:"..err)
			self.init_err=err
			if old_fdata then
				self.fdata=old_fdata
				self:log("warning", "The 'F' table has been restored to the previous state.")
			end
		end
	end
end

-- log to environment subscribers. severity can be "error", "warning" or "info" (used by internal print)
function env_proto:log(severity, ...)
	local text=advtrains.print_concat_table({"[atlatc "..self.name.." "..severity.."]", ...})
	minetest.log("action", text)
	for _, pname in ipairs(self.subscribers) do
		minetest.chat_send_player(pname, text)
	end
end

-- env.subscribers table may be directly altered by callers.


--- class interface

function atlatc.env_new(name)
	local newenv={
		name=name,
		init_code="",
		sdata={},
		subscribers={},
	}
	setmetatable(newenv, {__index=env_proto})
	return newenv
end
function atlatc.env_load(name, data)
	local newenv={}
	setmetatable(newenv, {__index=env_proto})
	newenv:load(name, data)
	return newenv
end

function atlatc.run_initcode()
	for envname, env in pairs(atlatc.envs) do
		env:run_initcode()
	end
end




Lnbɤl@M?%|5?NyO9일JmlTk~SNu0q'Zpty;76GȞ~w;:X{s1?w#tfcGQXG9S?px;}c;=xc:#Om>rwi3 N9txsvspq'2,SH{(ӿk>Xn߸uY!Crf him74X/94s2Ņ\8[N3s"E_rMSS4n`5.[Z~"ڭm9''58sh!"$'{YfKZlXE!'6c߾X& AگȃJ%5eaj}_MJ_ZfXqr<1gyQ2{!l.|NOsÞ ۈV -05ooK!󏞄$ȲLS$BDaI3A$d(21#Z=rO: ،SMKߋ>LojjXgΠ>Y̹q.AQP{_߈,2)Dn5-.2aؘ[*IJlc ĤHm9`]~!k6dW3pc0665zoG!?+Ė0?? ,<ɲd2`j q< ՝YHV\Y[r2njdžTIb-V%Y97q`)%$l3Ad4RRifRѦRXT[&lZ!3Rjh6 mZgn E v_9g)ܛSTDC-C ܟ 悱c+>Qf=HySHXF6DZ"1 333F[ Q"ej P j""";q7rwu:bU1'55\lQM6ٝQgW'NDJ8+m7MEVcC-rG"ۙ9.6{kI_ߌiI+>2gٟyF",nJ6 a'/`-.BӋZc L9 a!ɨPAAee9A0z]/73ke_|a`pCmqi " &:Yx6WiU_>P,;4힓3^{<K &u Mr;)䙟7i3'roYqx%M&RFvO0˾m W'2Jz4V2J8%:Y8N?jmX\kyrytc.`#nuՉ%G,诪xA wZ7>1@hXoUA0oL]tߔ-6F1"09z4m%*/lWU˳ v3ɬU** c66-K/$0+LnYm\WF4j+-0i4h_ NSI@Paw\r7݇ڋ+ ccr\E4Rꇃ{i/gimrfy8Qf?xTT C/3;;?v'wygD:VVUO7sl0ÜsVe~u dŹc+jsLdr0NNIψuEPP N@LE9Jdw@5,lNH@[+jڡp]~1,z*7aLΚ?o@LLov.2ff7 ֱC2, UË2^y1a *D/M~RtU)؈ޏAܫtWBnx'0MM ⸮FvڊR-ڸHA.m8NvxB?74YfCwo7ð5oIqOڌ`޺7q]I#;_66*)hi}6j'9F\9T|%9w!ȩO>Au*߰ªчSp0LbZmᒣN`يڞuS1S+`G)+pG0iOTd?$VtTs'0WTM%oʉ*tHd٫iW! 4#9t Q9iYm*[ec/ $~]ĥ.GvHa.Z`(,3VU[Q|^i HDA,|O|C5Q~\1 eeYP+*@?^5}vIVrd7fp,pR c63} 2FL0c m&Qv /_{_IZ_Ve_~ZW=Sqk_J*(x' Ċ-n͡H@q{U$64hđQcE~5_7Dje&d6fa?.o UE]ہ]?@S)vGZw_3g-%]kYn]n4Rr9 !qx:c+Ҿ2~yВJd@u>ĸ]Q9wx^.u֎ u{tO*mzƔfqeڕO!$=']ۮl]lK\J&K[k+uzaWoAp8# qRܑΎlsl6gI:RԻ# go{:~<{O~$n&l碒tMiȧ\&Q8;Y'_y(NOҬU,y~oPJv0F@ʆd6laT;O8t;u)$z4$uKMrABmm>o'(N"CctvA) n`NPv{IoU} V¶s_oÈp(6):f9 2gC}ѸI ؍K3_h`kjLXr$LIy xvyh /x*B5IIb"vSORQ::yC¯1n>6߭\/:Պ&' Zj .2kP`MmSPj GSJ<[QWR\d$[L, `g3}N3pȸ쎭U]Yp]kCLN~uޫ}_p?jۚ!iCb'%\?L? Q:b<;`.%z}"^j]:Kܯxk^vo6[PaA<Fy܁Y,fT M&QE\C[zqQOhJW>Xd(|dޫjC"Lɾ `JGS:k/ЬM4 z=HLLjkI*Uz6xn_m5= >3E!#:m][PQJd|V>H(T4?LAk=wޒ9I|!CKyiL5u]ozi-Y 雔cS'c͝M% 80+-Lc ճo\rp\ d2$^rv^XS E.v`E]rl#\͠ɨ5[[T>xZ5k,c,ҭL h fnFZ8n3Sid580'8F pM0+pᣜ-yt~.>I,TK"ڻbIN{V֬椚im>yk|%'RI9B㐞1;b8r=|‡IB!|{W'INF'w:ξ%*Dɛdmdf>y +g3#I/|ykmC4 (3BH*[k Y;=kjj!ƾہ9] sy7b0z0' IroK"X !XGw}-_o~4I3HYmʶixG-vm<9sfnBtMtoUKɎ44/fּ Jř|MG0V=x:wti&6zЍm.vyu T^ͺ,FwA.pnItt@r!R@D|j] \INPQ# G^O+Suu~F)0{(iBczYBE Yl՚ū$eU*؍QDLeK,eElIQ6ca$ BRS͜8Pl'Jdo<|$`_{cB,֥, `p›)N~LRZ*=Ç͏5 )G6Ӈ8ΰw7Zf赶=#BH+e7UdӍD^67:WYy' 0&\&㾓#ԜiipCp0-ȪMIdS),2kB(PPf(RLRU] rDFt@8"88)j4mOCG ؚbki숛2 m틇L>1܀/`ztI=_ Y ֛8ErqQ}ja!;c5oj,b ;1^vT\.6fDp IJPǤ c6Ż s f˅VWr\Cy2=iUJ؇瞳.\e;}(d8VV([֪{EM> hpax#:? M՘Ȇ{nےQ6r06Kp&͞1t7J8hV\F8[cWY@8( Scb m3 ;wdgnI#x9q0plf*Dž sUt[tMi@*BZ!F0Wɞ ob܂Ua\n@2x$0XJxoqv !`@a1o怦«XJae-]UɂgM5L<O|####tu%)ۍ7t=1vyf#,J%LؒQ %Jg 3 $ 3M4ր}ា7^'!kea[EvqM˧;(SϓlXXXF$b,,,/^h_#='8&ppȻ(&MSTަTTn1.rp+ 0l0ЌfW f%8f7wMy9Nk?4Clra0ҳC47o A,pòljUͰfp!)=ZlPsCe om`n&T;çWQ)bNv +_ sg7{|gӕl1>9rc6\vG5S0`hV:?-`7FM^KoT%)659\lɨlQzB0MR'sg8E8[vt:S>Hg\E{)L;+9=D7 1wwWwwp*$wW:36[ 6bm`,j 6i.)s6c)M3պ5xo&06S5S9 XlnqG1`'W@OЂ΅IJ"'u A۞b`8p2[cA;ӓM}K6a5FlYfD--,l6aٕTe3LU*Y34d7n̛qLSk5Ru8tx\ٌ ۍf0a7nn `t2ԓ ѣk7#EE~ƾJM7E;GlXQOZr Mh'Zs2>@&7SQCtI170GD95U}lBЪn] ">H~͎@h 22$1$daW# <,=ٌ ԔRZG6؇oMpG''a4缝Ygq襝bgNLpI͎aܣ{"nw!)J:aM99 z& Llbp*Et^iZc+yIE1Ǡ7&l6N)Tˏx”u#ÑW˞c s!Zp6[ ! =b$i8*wJf$Pۆ$B [ZK)W\a4$,Qd3 @b vȝboZ-{shz&ɥvAd-!DA@ fy2tlo$!bW}n_h&6؈/ɘ&RIfdhXIJL4ʃ67%~P,`t'Ѕ&8XrVZ"vM H28=赑Ȟ$S̨*jذj*I(vvxUVwdmuƟ4M"G285Ui JLj8N<8^vuv^d404Zt(k& ^` aiDy0sAhE[1dYccO 3+ìk« 0dHQ#qfGwpG;ķ1O@ͥ]ɝaVBގ6Z(}53]*_F{pEu7;q(knp%J*Tu!m ltSYO#c"nm1@mp*|_'C~)V~;'@7 _/vosyY8xam?ꀸ^Y&t3 2qOz,6Bʰ ^%3DZ}<_s!|!'O7ղ ځ !nW,8Yx 8yq8,{@U\8ӯ,ƣ5ke% bHPqί2LIh"iǜStF-܁{n{8ntdfآ8 bht|>4!^]rpF^Xr`hhE_YYJB'&sD㡱r6F itwI]p>"?y$34B7DI]ՕWg[omfcX &d<!`czCh " oN#qh YtuERyTsnSluDN)8r5&{v"GUnVnFhRt9&f7;)N$Jr')xSTSō9zs8{G@96#lgpU 47`7Pߝџ ѷďdG&r)F~0&FJfd9@`:;EW-^'E.{cv7Nul00#Y_To /CSUֻJ_Ŗ^e-Ze,rَ*2͸z>(_^k<*7Ǵm)jLlxdauo;co*LI& jʼn ꎫmV ad 5VZB^[S>p ݦnVnMT@Cs_:h\4ݷCM> 4TApVrS-Ф7݂T78Lq[@Cpp6XxL*Y}`UIaR l1KnÑ)E`A:RI[ Gߑ֯hf3/^slcMUĻZ>#E0ԍ,J 4('<9Y0Ewzeztr\ i*n^w4/6wG$MtyM;;!r w(D<&7<4n:70EP`yyv\,_M#!Juo{.VCQRyOX.X6Dmv@ -sq:чZdY{Ɯ_΋'.#t ^ ,@@fW+k|reWtNyʭ\s\{|GVp?V9Gqˉ5Τ%_ M` M O xLbes@@ Cyen#7f/; eڌN.o`xAa)l[f_H-R+nnؚơ!wz_ tu`TͣC8'm $V|Yi$`A=51MLc|qfLl)2CJI4 M4i% },-*]4+:79[V/cnLN{d{3{1A=ݚ3Oyߞ5cH8{klxl l l,aPZZo;92*lv>l !stde}kWdĆB6M}Rǘv]yKeEOa@}b13螃S2z=1b&Lnp]"еŎC*8ۇ-г 82fSa@{!lzq4 Hm(f޾8݁VkMC bx93FvȪՖE3B,"ʚa d+ E &͙3Z^ߡ߅󯥷?Jqj` ASI60+g}G{m7D6dܳ7`2NS Izl*lރrwuo e:s@D'~jd9 Zl8E{`^tM6VYL&2*dg$HmFRbifT$bIp om{x M\aZYnr#8j0ɿ#c>q?xcjB͹~DE!и׳[nE_0մg)M\ mT "+jJJk/]g> u04X9h 5iZO5rNI䞽q77:a_H{mjwnwq}-oh3DkJ*T9PhEM-="DDW@3 >`&M2v_[[yl4 g: 34̈-fUJTfWÙff`4 $Br""1cn9A m&TT# F4f&-;@g|&AS/j+ILML1(,(ñ A+Ai1ȬQm4xfXZh#arF*NXI9kfǻrgӀ)N]՛7P;r|y9&A92A&wЊb9]އzLqҦEa]UEbR#q VfHa0V0XXF$b,,,W.4=zLj`3F e.]v8vCƝ"ռ#:lv9]ᙡfxd p26ŔڲMLťs9!83 8  ;&`߇Lns0AfQi jګ*XJx7P=%,Fh?4`U8T ]07}ʂ!4Mm 5 97==GLR"Bk# O}{}G8 NgjJjm95Mu#Z߃ Vmb!٭I=ٻ nLcN!0m6A7zjLmv\Ie1Ti;̡֩7"Fi5z;`K&MH=@}F) 76I+(/6Vqz9`1`Uވ(jS0a[v Ӽku\glku ~inFf0& lC{4 `' ]-\04r9,:0~93#u4nMľTA mnC&HNO$&.oC1"o疦X^$&ZY,VcKu4j %#74Hjeu]1WzBU&.TDDDb/Rc6)l ` /5WpbW@W$!mOOz۸jj ~0)܇XNά)85Bpټ ĕlYyo^K4H&n#5ILTɊ)g2l;G )a >`pS @Ӑ_޵I.krcXaD6'`Z7@P TFԛ!kD|m@۰7gh\x0b;OO'mflSmrt!t y3Ⱥ}NDhh;d%O EE%BJV" Iަ %fREwJu.hCT6zp+Q55g q aQF 6 &IJ`䦉ѳ|VxyNgjխO2 I o }n`X':Fx a4<¦ ꋡpəlΜ&fIL0Lc%}532f'A<`f?ZVY~R',\+% )a<7F͗#kp4;RjI&J5dɥi&!B'Dj+*ɘٰL`|qٗ§jTc`nCXID,m7iJ}w"OLfl8N;"GzD"GxORU`E0[v&q(;!92zw?ڄx1Cߐp}Q5avy^I9uo-ON*1n%+W?LM,K yD  "aT|:`eJWXpuPyX#_]iy51_5*I'<ȍ)I"|uwj|_LԒ"$TZ?Qֽ:Nx@k*3[{7ޡ!PZ6? =hAz\Ml;G~AN;H}'.fpѵ ޡ;'|N2#PsVUU`j0k0Z,QLXtCp?{nɝ>俭{1?,hVsFyg9`@X, b$Ŗ4w}hЭվ GNJtS|,rFT^+q?=>N,:HМ_q, j&vnN y^YUg c:zN@5M!"լ&0?gVגq&40_ ^}dc6*T殦y$fѡ) eԾC,P8n8v|UݡUѸ7m[)JUR[---+)L nZlp<%.e4Ne@O;5mͱGy5U[w yϐ'GQ%wY r8c`kDI&nMe[uBȥcT3ejQh)j?pD&ݟ's%÷P TOX|AÚƫRD s|7q9&o$`85Pbt?e! <͔bZfڱcܳGU&iTӂDΔij>ĚQbݣͬIZIiEXdJT 2DGxw`?PA͑C'>aP5e]:tnM;6MC>Ⓣ9'=)ފQQS TS-4hѤa)eR,۫ii4hhťhF-,C EMc?hcU J\܁憙kK&Y?UJeKQD%tv?œ-)w9r;ӕ1nhn͙iշL,schWsCܧ+m9sDߢ'8jꙌҟ= pBRT*OINDS1PPr$3"9B(UFE11Z1all,,6UFL0 F,,[0ыjG&)HF 0R`5C0ن-͟)SByRh cFFK0i`g?Sp0`p_%=G)h- +#hؘٖeXv&w;뜸-? [cmi֛\:mW1CDoN0+Ze/o@h_-Uwzvն ېs!ÀUAF5YTUK-G@t(v!=Fnt釉.i#"vcrfVyR|]V8\aq1K(s߱=x{/lȘBY^~Ceއ{=() i L Ӿ IUmVa&#ryt~KIda6V kOƲOn: ,FDC5buL*W P?xHSǒ砵+mtJpdޒoI9g+q7)l|7|>|j%DٶƎaa64pP/_>Vf.I6p{+ЃD)SB "!uTrrIȗgcS 9XMNzڬK҇R=BqsOz3Mha3>&&rZ| {$1A1dQZʶEմj“ѿd'5$ޏ)7 7ϮrE)Pre6ȧhrASi8ۿTcP-/]aIg*&BB`x8}$=_H5)BW.KKW3tMYUĺ>1a5^rA24fm~Va՚F;7I&m|g)z?\m܃uZ*}eWGAX1̜'Wr&M!OP++CaH Elf"0xU?it$ 'nb덣jՕ2D$!]|{}I`3$HR`0`4+꼯<̑""d[yI OI7K7Qٕj;>utHK(mR[/F!e9Ugu#7?$MV)o#6Sӣ9[kČ[.Xk6ޙ#(;CFOzik&# o ~f1M#Rijd`T1FMmTz2vS_'?7&n~q5G9cQ9Y'Nvrh}/m_sI?H!9q(' g5[fȊ& 34SJ̪fKz{?lͶYa1_%E%oσEmۜ؟)G<~pbYb=Xs($H9wqXղKei$rm]r|u9xH-%%:+W+֔ b?t {Tu<~? hc,bK,,A}hH>z)lc tsr=p{Nqщ Nr2I! n0t#4NbIB0a2nRRodYP+s0d\D|p' sĔwE6$m媫q6*ݟp/NcI֧U󺏵@nee-5}_|Ճԏj9.ɩ4?5~r_L)f&7+eJ~H\T[*)eHXe.0:1|IOϚ[-~2>#4HjYsìgJ}d7stla""fr뎉3#hx4o{$~!bDݜ2lC3AY2:YccOY p# ;O' >ݙE'4>O>&Σt8FN/-M#؊/ru4XE#깓 i #10ʙkyT'gd4 mj%_U1*Ra >~ehp4|$JQF³b<jb;1ˎ\G :AN`F2922IIi&6 fX aMɚc0#9$3n4*');9I !͓ГNygL=r3&S&yR=hM?bG60RO8t/O]M'^:\N9h:n:uz}m&=8ɘi6F2~F 0~F ϊrW#4Fu9eNG zC%)t#[Tdckܓ!f9#Riyh1%yqNl2ODr_#lVLwH?uz0:G{p3k*dg$lMC[~Fq}V*֡!m͌Ms?N-[kV} 1AL$76a6 `R6͞vV[=鎂{!rPJl)y?t=NqtRuF(8Cc2e,'"4Nj6qLd,V#Ol`vv ch!]Yku"'>mNj=F.*n]4G3,!})UO@bp?AVTL5^*O#!UiUm1gLP'F+}شD 247$Prf!œ6S_??%C>=SP:Ēhfb#v` њ~RzxG1q9ץJ*T e[ T!C ~a{^lh׉{R̝i.m<`'GVd-2ȁ Cj7 N Уa [:6-#JvKˏZxuW9[}Fo:&ij0f=U^8i:W(uIR%8rG(0r#9RNWwZfmUV 3&*d4vd>jl:XO })O'>5em'|up=U?naVGϞ4 GNO4mV{jtxLTFշzwy'6@G F2[m$;rʎNZrw59I}4umN}4&? 18\&'NAPRsMjwr)> mF53&-'ͼYA>Q?JYg6 G\H\q RA?W$#!bp JNk륎Hgms0lxA'z__AS֜4,|Ojv?mgm8;j3Un{)~t ۘnq\yƛDjşz!*hFf3I<1^`x3ɛs3p1ӵ.)(#:0⼇`<8=ta+'Tt̩L̒ª_20e R { P4hW0Rg+i+TJ=ߜa& {op&I3&if`9O,j0a2s(c399#N]2W0U3d40Rf4 Xs׶Zcbu:H4&BlʚM8np){4P *0>[̹KEݎqvΏ?/@?cRR|]t{)Tc߁X0l?#/KGD3-?md()bd2J 2+4;Jix$<@vx8?-6?"!jmMm=~Bb) RʖSv~ضʲq{cƎ:B)w;ӵdž LR16s>dMj7gv2*aaIEBȱbśde7YdaFUaVC )ECV憓' 54hÅՆYlUhhaXa&,UFhq+,-Lfeie2e5WfhՆZ5j)V X`b5WF+.0M-&  .Yi6C%)J)E%0RŒja0ln012-iJRSRRR=ɉ2J,)aSU)aa LU`"eWQ&6jZn2Xbe- L4b50NGC X2 S 0ѣF&[aF+Q4jաK 3H*YL2LFƆ,Qee)LYeew?OjC@SѶhh'ɖd?-iƱYaepG@̞HTO8)ڼ*Qe>rAG'((YXh0H0Xh1   CCFf5e,yc:x1]NtbՕXƃEʖK&))),RY@KDA FEQ26 aMyJV00M2,f-ߌ22Y xU-_'d`D>Z ` KWg5dzڔSPކFzjSMsr3 n35MSTf9x7c|x1Гdt_ 1e4{_3yE3hUԚUfglrӜrzf2y9й33Zʏ-Tb)og ws#@XD VVoww(w8NPm ÑN\QE(0wsw;9˜7ckk$^~~GFTQ ʓĝ H;)0΅Rp3Ju9R܊dQGJg 3™(M~e$Mi!1|Y~;@8A;A!&ōQVt({|ҧ!ՖwadU[vq [V,IC=&l?@Od{ Zr9A=#Zgx#3?s䫑S#q4ѠLLZg޸& E{D0A 0XHqjiBn!$4V Í `*eL% GLa@f4%͝]13d6dt|Zd ܓ,9UH AF7KnQ:7A &m g7bZ2abƿ}.h,`Y[ǟ7V͘{M#ý"V;݈8& ZLY7O 2$,K ֵ1ݱ͹5l vV0ְ:82ĄOPPջ6[`CZDX Ԟ<8ojQkpmjbݓҘϘqD'fsL$,!Y fa0SNLVz1\1ɴ4@4;;lŵ趀,X{.A8Am dѩ:厤N*Dxp"aRKf 1'ӒBRű}gV:3)L?y9Ƴ]^=Dwta7dMH`&adT ʊINUP j j8cMgc]ƍFv-)Y)Gl''x`%))IJN}@ 3 ⧅TURUJRR3!S@mTQI@NT2R J!s#3I#v~;Q!MOYn,'F)GvRFLG/ dN #zalL0=򁼊@A.4n?pi9N98a0M QE&٘l[ ,0dȬ;fh )ufdH,T*g3 nQHR~K<`Q*+%m\ܫ ,Ȑ4!)Th&׍5l$lĞDUܬff^bX5w넃jp zZޞ@CDܖ2? 01FpGIabfLqy΍J\'=qIwZ`r\xxҞ7N*a5?@7]v`mT&1(p/4a @47jнp< 0$AdCC+H 5w\]aҵ~^_ -{|j#'n8cP`K;?g~|1_.n>gFi' ӂ8z=H?n"z| d\ĒX!6'vL zC"Ŋ"|&ghz'3&.AplO ffce,mjc.۟T3,VS tGf: slp~y8'#Ox񢨕I|)&nH+()s hXEaf`5QG vwG:'Cg4k4f%Fk\li2|!UI$;աU͠ hKnG b'P`QBP !FHj'VT37\upXŒ Nt(9& H7l;IGRў+Yz>U*;1/}L2lsԉ 'X|<6޶{uVp0͙p9N^q'wenwo\O.Lʖf/-oG|6l+n5H;1fS'*|(pD$ !52l1զhw>.sXYdjJ`w^֭\5E{Iꥥ9?{㜜+ bM5m7YENM L0a*THq /OXa7"j>Hr=iOh6u"H`]T̑_FdC1Ͷl|p.P~0&x0je ՠHXԤĮ$8k|$C@h-ά%i4Zx$-x+"A djYΕ34b$vخtUUyߤEEn:7el3NG U=qչ'xsLfʸ0v3Lљ1>1sQ9es£ "`= IHmlyӌїyC ,4ܟx{3wwUv{dRQC6JRD5RC~#l`GE%oFi۹#NypE-IUv 6GchDi!_~IgN}^k3X4Yi; BU<*,~[ cs'g~y)ŸYR' (x BI̍K[--Whg}18P|F^O kp"x]v>‰T]D$ؘEL;iQmԫZuM i켫/3RRW&I4CM@QrD\U]Q Cބ=\;S085^y *ɯncgA7IVJ[T7 QaZP˹SV֚mBX0&AI4uv@e0;faؤYJ^-qF4/y<B(Xel&S7Voϫ",i@ە܎$^p)e18H]"XFD5N}}q>f~1xdzȮ)mX\;\ڱH,=+Hv{PU|?4T>M3ܔta5c 0yC9.ISIcMs'KE~ (ɅEǧ:z9=q/7OX]"cin]LԞHJB`脠~aCޢ< fǧf,D/͎wq8\L͂철,v '#1`rMVXc(D{$I-0[eƪ }7kKjpw0ycNiY JO΁Biȥ;3Q;3̦-rnGVN::MK$s&B3lUUmeF` d+dN?&ѵEض"8>=d&O')IILs BTЕ3g--l?~Xl_Y!A`](Ѩ8dr|@ךƙ]aJbA;,0Fq N8gPU`T(ZfNu2zs-M <* !,+95U mU C6[v`{$W'AV3XZ5Z]Gf.b,YM* /J*&Rn}nDkf'd Wlf\ko{%-"싂rXG6OgYzY;yaY`]Z^ٶe|[l9ȫZ'i(,jNxq7:[gya%YiRTr ;5&m6t{hr\)ƓQQQ 8W}vLjiJa ESvk4CmQ %y lb"6Y/I"dfՖO.f7"K Aws i[00e'G]+YaP\)Pn<(Lޔ4LdfJb )P$6L+".@W~DJU@^BXC,];FvS[7Ymbv +kv+M WIXzh V.΀g󞳡Ɯsu0 MK^K"3wmEIKj8XJb5ghnb19~W0:2i}?.ߘȯ?_*_iVBXYdYZ1-3cAV6O"Dh Ӿ#) '߶sIWкvojWll>cYw AcvU)EYP{PN-vOm{w ;vd"z]hW< 2d,׷EVy^X-g]*v)=Izѡ|Akc_护o^x(70%pݪ 2C8ҧ[(v¼U4]nBL߈sVD'kx^/|nw[.Uh2v;jlYL: rk3B;U$\[DMuDb`L#K` 3a.BVˎf&if y86P4 i }1g|m#Z*ǖܵ73u)H{1N<etu5lq,7 ~> @gMӁ!,K8|@N83A͝M_cCL& 9 )7vI$.Kpifqy٢$):[I_CA]QMQX45 19n̷8auVX"Ru$Îy5]Me2ڙR6L,Mݕmr`jWbg@4*#^2S k*im86;`gs Jc0G:~T؞} asfNA6d)RHJ3wA N0k (s|*T)OpfO#_< aU˹eUmLJA\2*\KrIfɯN(F>cvFk) 3q^,udM77 fݘjijjZL͇z$}hE "sjQJSXRNntLZr %U4p(g)V j̞^c5џjh;}5M R`,4X@ mΝsؘ)SV$L cEm+I7撍yWiZ3bavײðLmd iB}f36q:vH| 2ƞ+)2oz^Ũ5TYe䣧2C1s%1T-Y$!-!NLIWg&" RtkڬЂ.mVxH;]NY%Z jLm ckosi//aç!I&=-tmy\Xf8 )RdRg30d13Fq-Η̈́aˉƞmd~*s7,ԝ`ΨRM%^2++E4Ufyg) 1~߄]{kr H7՘i;2 VW<8jz3#?An75L޼Lz:=9Z E3 (uNӒͨ zL<  404FelEbŨ"mF?Z|&~G"RHE,@iKǮss;EI9-.0ƙ%'h D ɼlXl ׅv\ELɭφ[T_52ȥ%UibMxSqtb47sɤ9ə8Er%;wO80bhq"9Ow REz1Y[m9rߏ/ͯϫ߸_5&@H@хKUي`ɖfY0scߙ5IRZKZlaSȢ?A,eZƼW㽦t5擏58ƻΏM e՚i0{ 2 z18G)N*Mҫ͏F#MW~^.A%($me(R"JPK;9Ie4]DETKeh8leSA|4~KQj)0b7rdybf9S U0o:>},䫥V%ZcS4S=f{C5qfwzMzO+#O$Q~;E- ON2ÚN!UaVfjgja+чIӐr +Q? :`ӴKj=j+L8LM$@I];Q㳪Hjp&ksKahM C 5 ;&`p:erTpg<2, 4%)'-,/C=kj>A7SD\LKS\r)Y d*XmBlVnn,MN|aN/XۺktM#Cr\se7 eJT EΘ1OD(Cmw,QEPsYL LP.ᆃ VALҏ d: :1I#5frȵYfԈ2rVI$&TO \ڊK7 kSV=8| %avS N$/q׫~GԆw~S944 K21GũikG):K_dN84?C7}9YÏ'Y"ZX@+NjNk%L cR4^`8N&-|ikDe@^0̉ص&L Cp4IT^MԒL$pVj[AbTKˑDcU>i8`寈`y$9NRġ!:07é8kRY-5+fӵn2ωI80f`h5TDj<'0[W|"CentSPCf[83K,*-2g:;xK7;p#Oxe(=yʘlz "Bdj<j"O^I][ݳx) TK?5)=]s4m4U*nV䰁I â@$L wjܛ\j,UVY)&3朷~g&od3'$"?  5fUE&6,LtF{1cUflhK)wL` sCOPwt̆I[jтYeQL Tdd`RԚǒՒwba{wllJSf6fS|>w}sOTmooAIm$(/!s Po$EQZ@dJUu^ѥZ;-%'em%pF,;0 0D(v[BtyPDhjPh4IYRVUJQm5Cb CHIT %IIDEUe1fQE;vp ~ cKrJ$fʕ@K.LD@L@10ՓhI 2O<$ F`ц $hiRT1X F= 2+XӼ`cWlJI`fLYm`L(d`ʮH"ɒu^UK2R4Du0`H Rg^TѢ!RVU*U*J-2Y,,õR.r*Eu]U@yF؉4;[)cYRg V00J&bo#,2e%2006 P;iƵ5& x|#8g?TGieeEF R3d5 QJ)8 BuA:C:lҦIU)G)dkNcVi}]ӑwJq_/Qq?lFaf6c anQ@?@<Ǔ4Fl(|)FƍaF660`97$rjhFrz[y^^RJR CfuOWV o-UKݲ߇|qI>dO@lgzqS,K^iqSYژXLD>jl0Ƣ1l#$X< &bozIgB_edWz^{х9Vlf3V-[4&Blޙ[mvvi3?524XvVLjjZT3ij-ǀz"6C j5MXQE" Sti4Lۜ9ln#-KVPi1UvZ#"Rf%U9垨ڊddaȓTlSX byÀ<8;qvkY|{)ȍδճ" Nq~Uk,cX,ARvT9AXЊ0 uEEAĄ!$6#3xB N(Q1"JHJr_Uc^-!elJ͂ҡQAnbM;זwmx! }%3jd2T5 jvE)Q* 92svlMTj:h3xh( &B (Pbyv?ֳmZׯ|N^xъ.n,)` Dk&)%*D6"(6,%l +.7 I[$T`WJܓrJBJJXGf{{gU(gߦ.L @)4̧bH j-LIOhS('QZ 40fpWx;8Hmh W^IF&b23]Xa˴%,@!'4䜆PO}{Cywđif J C,SЩKTbUfM6~ rNYZ&aj84 R0j5^ZZ9EG6 ;O6s[o FtaCm{o$חek"E;pmuCa@L =2]E/hɎ!dfy)Q\&QHb"32!h%`!kk#d5s#tJb 'PO)@a 4A-σoi.u[\ʍSXcGI뭹`UY9"%%q!UPVjLe# VbJ7 %;&N l%S^rSDL=y>/sڐKFECIjiL3a r(=lR)nɡl9Lͯ9 sD,'խc滈.U<:tskVŢ2{33³Vrmډĝ8T9y Li.1?sF'8CRk[mG0R36ç@ӛ9E)[5IRρ`I d CPSXy3H{?h$Nt"嫎O`G\<CrQkxZ7K3>ՑqJN@rL։s̮&Lf5_B.*dM&̡JRV;Sj~Jknl[TIR -U9e29rdnc|\Ԇk)ϏQ;$.&oaXJ#\XMCkUFoJHC @S. %<]"04?ݺj4i%2gZREV mtf>ֶS4!:Wl,kMІI1&eos*-82Չ[Wi~ At)e O3qT W1R%ScA6\7dp7n.Н7 uƻ&EL u[* h˾zތr *fUpτ4G(X_ZkcW,60* M/+#˪֚Bmقǯ(@f$ tNL̍Hgs孤64Z3j,{< 7G<0{RPrRp:ҍTj⻚pCNblVò? 2=t^E\-Rʱwi} g8P 0~/"Q)JRܯx"qB F8˹*ê#IInMffffyNj:LF, T̒  hXJq^%J0bt*f3 h6Ms.VElmm3&rdN{;p9O,ycʼ,9:&9<:;8:6q3kE<I(ya-sY q?5xg5YBO-Qdy hÑ,p]x4ev5ZUhq]/Y6NqM$)]l2&!gkHԬ,QXɒ#OU<둉joѹ|7>203h@ dI7'|$>=uc>Dؚ x;BOLܙI (9)L#TvK$b'3:[%k5gr}{as We겭XFYY-=_߆PB la CR%XEul &iHIni-1T%QHN We]>G3m?.ᾶ1}7^2mak-me XtSzN"AVҔm_KW6>ͯ[\f}]V-e]i\˥֞rdl/h%b|VxH8=0"Qɡy`PDFwA7 $O2% ņAv,ҎA )-hE52b68j[Z*垾m0Ltڷj N=FHOZ@c;eZIPC @$ ZVYkc2wꧾy&9aCۊ3RZZ$g+$Ƌ$^z6}#Ŗca&B-`L@H4 e47(s#R$x<+e$M )N$L۞eFT +!,h ArbVΞTZփ} !RvOg{I^Ѣ  ބ7SEԒ%X1DbP 'pw-ڛX.  iL3;t,n%7ʵj [ t32&pYQ +Imtұ+kVMiՐqtUChiLV,,gƞP(z yv*zصRo͡ "~1IM&ˢhb&LKͦ-*U6uQJ^+ ֫J@R$3SeQWns|kӵo;q5Q)MxP>{w{ U`Ie_%uY"e?]^Q$>(`B.2ɻ.-fhľe-G{hCGJ?&]m,ԯ.|#O)7Zlad,u#zt祓o=AȚǞC6m<9y!Hb>ګM3-VZu5Lj`FE1)>n$[{>;>qliK0c"}ۚC6<~32%3ʊy7RmL'M_l$ihhU~Hx j)KX^wawƷxw $9S ZhVY2qxlV\YFf&e+>yr/5FFJ-3yæ)JG±UZ?Dc͔h6إ5 +˯h)LљYdZ3\EgV癕K!cXg=L CBBu2$E`8Ņ`i=s$g'xmUg3LOP+wHO@L~),q~?DZY2b ~h h0>xQ3f94CԛBLpgJ:7<r#,lyc,cQEU+#Y"Z)&&"s:1%o-{*e6+2B[ dPck*Cae 1 QCl$t.lFrœa݆o߁bw$dd*iԫNL[`. iw e9v*%OO,:N't~O!zB WL2${LYo"""C+^VoPS BvXTCڐ"J+4;Q)nي6"¥T0(PKwtwW}*UJͱHJ]]۹T.[Vx{=3W4ą90ֺCfPa~M05s'ݐ"'<[٠ u9T|Vp LsbPBbc20NP&捾d :f=e]ktp^Y&?1[8Zd~o:;!ڌ(,Z!]Yq +C֕/ѧ;x&p%j8s &vDVg%La4.iZڂXEbq6Hcy]٩R]G"VD3ɤD9 ,!˧Hۂe=ϡ)if\w|u&8dL!,!\pVhVպm8lFq$FZZΙr]OTw&ؙ&2|q4;y{.-Ɠ+pJ~V6z9Cȴ -l )! h8[.Zėv^.iqC1tWEAF]9b 2wYuwب*ZaptUfuݬLE6vjDk?H;O#kU$n`PHD%1e8}r)c`2zA[2160-%!1IO5`}sJ|{khkR _WVb>Ub  +vPYdHc-aHe ]:,I0vT|KEAvo)$`7L4s37)_;$A(j;u!73sh١MѸatE a|vnB'󫠺ct!? 4ښ? GAHt^dCxI 晚- qeikn+1߉)˩Dڍvc$'@tlGtʵX&hj`&Wega2TgJ*)x{˔b:LH7wD'aøH$>4eCQKrw0G)ho7W!BH=-S6PĤT] :_.\C*Mv-6^WGZz3N[Y,7EQ|9$Y2Fmru5YCF c E}ic#(_ޏ5HJOˋطY8lnP, M$q9&ib&IY )Y _r#T EAQrIԃ@ݓ3]{'ʂ$'8$i+-jʆ9Uu,L=rz@++$F(`i- ƒdYPB#m I-+#6\w_#ci%"ٙ XE 5@VǨ%hA`U/F"#m}꟭{|O~kڶ|{/vm0L{竵ȿ%ǯ?Ã0y[V>UO&}eLed&8ns"Bص eC\RUE"Y@|l@9r CI!.|dȐ)*HůdV"!(xKlAG-C&#m\_F}mj%ԒGP|K?Tܻ+I~" $Cjj-XdR3SH} 00;gaf3%$&#d˺OXMa$@bVHa?)j9 nں]]xWS0B15a$[.MN"HED2S, LBh}F}EMMlI!mI4!nn2(; k4k Pg2 L1WGs2^D 2Qzq`P HY) Ш`.&6hicwf_HT%^m/\g$t +]YIi iA a61ffCBɆxm+NͮaUu1r+wV# C*yyQb &k{2 ,~!!7 B<Q/ n8Ξ&O,&&[K,UŤI cIJ?hoPy5 ,/8Դ1URիDs=') I=.aPqgn Vty: 6O;`ܞa?S#ńʚ4jS\n/1?''摇$d551xsF..%\ ͙c~I^i| kú^~̈tbzG̞ x"w4%LPLN{ԞGQy>1 -ؐIvFZSudY2IhS$H礉ŝ(#dU ({+K$7TY3\03[iIzmh(i-sL*NJ0R$ZpJ"1cS>0(!DR=P3ګx90~‘ 87Sm6ԀU[RkbbS.1XTsC@MuPmy֚L?Y;,U_QeX*Ɋ,dK!(PISz3ۛF12:~3㴗,BiȀڲag7ÑԼx;й溅l* ]48kĽq۸`i#l*R|5_l1ק* li*~6j,ێ;II7xL0?m^@6p4؍9)F u6z.ϼVRʵV[aY {jիSMI`lh9fm͐03BҙphNZ>G wC$g׆իJ ٔ;3Ku')1<"͐ڨZ쐛t)H p8 >dۑj[m*zpLo %m7ի2u.59ȔbX18 >ٓ:QTVbG6)Ls=S^D Dh]{gowꝸtx(dvZҎ3(\E?HwlGI2X2Ć4a7[a͇}[5 h8oFVJQ| `܋A,p1Ô:$Lhڏ;CKً'%ՁnAp`PuaQz_d@4v!DCY˘D&7 _KeaG Jt f:F9J6#iIwbw!fSyL@+и\_&A0$l[{Ze(3Us8'0P[uٳYYfy{#?ؑI'=)r6қ[fb[ n S2qџ'I[m*bt2taZrKQ2Z Sb솃AӴ|b$j$Ω7 >92UVתM>|H45le9HݢF[@YO``iI`ۧ1bdx)&d^GgƛȈwK}>5:Q;h#ޝ'sTcnNK**G)dp6p,§4N:l3aZiŝۯ2i"͍-fTRi,&X2JHŷU \SaQ{3u\HbG$~Gݒ6ǯZ" CI}sCrL2d{3 BƁJeSY,3Qsk ~?R+d'"T@ mLя19-kjvxLDz"81#fLғjĩ w5)=O~H(j ! Lq p3xw1l ͚0`e9)$\1+lUif}U&ȝA0`;|w=IX f)"ObhnA)#pXrxe,g<1z$,5f 63J9i7 msm HOdOv8H'sсdi6v)g L\1YaZ蟘ɨ̭ uf2`͆'"37ڛ(3&V7bl 6S6)l2zVgvC)n+WO?qlcslD&lV P1pQ(*>@`hܨ{P.bj.&Y֍s|;OﲽYoTWS'G[u3Wt\d r=jVb`6V0"q…b1ee6bcvԶ-DJ9ɜ&RH_F0f˖; #  ޗkI!PԄS<y MC,;!<# Ct?Cc?D5)cU_l6C)&"G"2Cѝļ?E*ڲ Up.fRepjJ3 9`g;i4Lq 0͢`r%G=?tL&gT@/~ΙJ*&IZ^1|: j")Ro]1t?vN~B5ѱaibQY$$Jg' BQ6 ᔖ# G YɦXQDfI%)31h̒J)*V?pNhj xfyFnĢ"zW-]Uˋ.UOKI'$C7;=~7GX6[{o#wcRjyx̎%OX~1'',$ daYIb( %d1Q"YQ0Ȋ[HO@:@ggfcM0_ i-SEJRսիa ҍ;cNhV郶@aNi8fQJzx1LMYbNj?%խxh!gt"7rVMl9C'.r"9rTs2NM5 YN:r'6xp.ǹl,9mb +oW1U9q ɠ0RdWz)I^K\\5B{j%Y)I!JI PpTz*0LL dΝ,OJb,3MS1b$DUU0J}Gf.5Cf&X49ZZ{C&ʃI0jcBRbsʽWRLp Y߸!)>QpL'0ߌE pI8)I838hldd7tuNFeaC 5hX8 Yé%%߳B{ݏd'OD鏎~mK?Kx#޺'D94$T*>uwǓ2My~؟0!pOī,2a0>#$˜NN,|{ 'މQ'' ?>*o@`nK1<.4(>pNJZ#',ω4iRӜrdHpSVb]jbXՖg:dg?۞RY2ƣ&;GV];lˆ~Xf%آ,Ce(Qe Ub<p3#Ō+a0i5w2Z͔͡G23O`: > ~ar] HT\0%mBr20.oQ rZq9()5G#D!mD[20p>X٦x~'^~sT#ҏEyhXi‘c̪Te]vm4f*u]R*iZ7iv3M4vkY%FQp"O=,3Ԙp4q9E 2C85OFďYjL##P#%mS:~e:~4>,?,6Y 42ahѓG-99MYeILӓ&&եY`KT44  VSgE -TكEVJd5hd CPaņ&L#ђѣ dia5a0 eŃfE}eI`]҈IJMqȟ>"DAΏ-ΫtU̹2ݚKw5&(i)I]mcSYLi]6RI&ҖIiMH]43#*\I Jbm $B6,sv]7S3*s7.ۦ)MٵRpRpۤWnݻ2ndWqsu 2.Im1b6Wwsw\&1*HJEL)b*6GrXۦ:2ՖT[~ >. n`{MɃ~')0M< BURKX)k7 T厁#} Xhtf{CaxVg17dj﷉&mG4L™ɾ=姱8Z"'-qa;843wyxȫJ蘁ȯ )O=g$pkf_h"0M֠ 0mvML6'OQdt8Zz`l򚩿uҧ}Mp=ԉY3'roo T)2,Q{T("<dF ޶̧@@:rF&H!IA@}sۤ /´Vs:LMq߬Me2 1ͼ8hGlONE5U1Z3R#IE6hl7>lv;'Ɨlih\.K ǂ;~4w܃õhI7c;n )9bn<8"b03& i+ZZd6dp%b J0*F "2R@p2)^]ٳd^MҘe bRC1,If6TeT6mFS&8"M0*U CT'<ʾs(TLiAU uo'`[Ymu[65]NP!#=յǶNqq'̓'Wj8ӟҥzsjRY$'fz$Tpјya@g'ݝ)6e2KjESJMiT$bBHw' lI>d?Z(xYDS݈75giz>be~.b\{vpC"'a9?a16&LK1,K*y uG<'>|tf9JlsG Nۇ';Yg# P2GNgӗBzd#IȖrV2qn#cGl$&aj ֟,;\ӊ.,ߗ`ڜpDTq xD~Iu7 r9;m(9iSp8 I*7p=jHI{nkrL-mirѬe/bA~v:x6жRec&Y,K%11e6jT,?DzqиQ(q=ݓW U -a qm8Vp gf Kbkl=)6smͭk]n61 ']iw8юm77"E֪TEHRluI<ϑY敖1D:ܼf2#<*0M|_:ZjxڲX6>y|w?q;Iޡ=8 WiΓ~pf979nNl%)-QFdY,1cfj2),-sESggS+ڪ,ԫwbC'=7 3%[-Q2}p5_;R5L}$u0Cn|'m;CH3ra>ؔJ'ۊQg)N+nJTbqF[n+>Έ:4v柺>'>qꇳ# "kGyXpR8"NE|!D "9O9!!v n3;9IХҟr\gZrrHu8;lySAPHc< Nxo~$~QfIxDLx (|$OC<wk $LOx7yD;75]*||׬6s!N;\'nh!!\$0ؙ>*@4鬆6ըԇ(n䛱ލ~0ޓ )m$[L0o Zp$u?SY)=?P,}ѷGO_{KX2 ~ݗ *l!$򘧵'ķg9k,/9jrvN,qc LgrW<8ԜόFafI#r܌FwyBvI膮wRzAwY2ȃ=yx:9>t u~}\e5yYy^Wv(Yb4D~ﶵV 25Zjh1UJ3Nrc;g1fڿqĥ~zYVmU1}0IY a|sHH",ziU# ɛ+@ZeZb؋m^VۤRmlRLi*ɊHE&k[o}{8\uȈ&GGK$ p[J2L*~oҰdQQqϦxPP" DtJp0pCDB CUdaUVF= TJgIQYʥ&R'C*թ=͵?)< y"x4L*7Îr2&çUt0UYFGu?2\ZӈFag?8scv#dcӽ=誂 dbgpib4%:{2P y(&yFߝ ߷&$d"7"8 Moooр6&Y!Q}>GHy~$6sq23Jb<-eǼo޷nƷKDԓPCHhG8 3q>~!3#ɓNF ͏ 8?][mRլ11##pJf2UVFZ="J/rQIM3DvDXq<2MG T]׹5)[&cM$NLaɍےG& oLMgt?yِϒ:䤑F5F$>zpF tc'=<>fpFI$mߘxj8~==W?T{Cgf5fs1gO"jor㇛B(5鑘nSNtGцԖ)Y ݢ~{m_(fL=z"qBVm)U)NXʳÖw 9cLDI)9Brbl~Xe)"FIcJK H04d#1,̅2EI6IkQArP>zCH> xs#掴t7#432}՚(K #H~Ÿ|'H^qaavg93)f{b#jqg7%)Ԙ#,ގ0;Af)=RP`XYe'DW?_Om:լWZXw)Q þ cr_)lfrQ# !hum j5j&6jVY1mP\,Y:J'I)Ndr*T4͹otZ@?}60j\~ y󬼭Y213Џw˼2nI?,^8H352K5/GIMP84Y#Y&g44:r''@䏙1$%Oh=)5'q9< $PM ,A lLKJGϝjq\FS6W_;fy^CB~IXCTåZs#'c^nIs3BoICma+j2uQ ē$-0'3φwI˥x6即$|35q3eq3yNeixգKbxg+14OJ:0{a3%9`aF۵l06CD2Lc$r:hx5VU]~{II81|u6תV}>ׂ0.b&SY$!?>394C%RU(Q,dL%&IM+b*, ~hrN(OAؽ_SkY~hbIQ\əL>a$A'|{u)Ov"'<7CmrKp#=ad 8IH 7ui?RӉoC3)`Yi L/%7 7#A]6ʸWиJmF;@G!:,T"5G؎Tp}SVk3O9Q#; \LG@{a>Lє2N%GЦri3"<< ͉l$AhgVJsNN)' 5O"FM~:Ȝ)$EH)isag:?|_?JkGYc9DAv=+f&8z~R(MgU+ܘ)O#;ң@ߦ`2e6#85IזYlQl(ͫbr>in j0Þ܏vУdD}k &T靪|=Tw{<㷏'y|f >=Q'O0|7pܘ ट3ڶjRFt9ї$bs#iVSΑhQwW:j&<:u.8sq,&"q ső>x?Or'z$P=>:pt+HC??IɖB5(xO uSD0T39?@C63egJݴ~AjR=ԭ[ojeX]= L ?Lsyo+eX[1[J61ЄC:;LըFj>Fp݂}Ԑ$oH2++ymMs{SNe#m[=J>fIN~2O> do5ӕ6+ڜq=E:S S Y?휥Zm'NDjM|remL|SUipիV{hk:iُ6ƝYNJIqكʓdUv~ZX7ōjg~=)5)3rG e>Jfv2& B AxgymtuaYCM}J!6B"Ddܓ$Hɓt`jf|IRr"i4W.yRdfjKdY,c%K)YJfbԲ¬xq–5.1ݹomcGmw~')N@u#FhKCpS@qJQL ``ȦH%-# V*aBn`ä0\( ffe&&U.q |oOo8BM0 IIS 93Mgo4d0ն[7|Lj?z긽FWyCȧGI݉?Qz#8lM ffXbSLbIMRzLs*T.NSJS"LE*P̌'Tuv)~#)ICcim+X`~hQ|R# DtGFm&˾ˉ˔9^XyNTr;MRdOi&bwA5'$Frsmh?7SZN {C8GZԶ2a>JjsI097٦5ѳ8E*RSjJم--iia2utgJT;30"vvٳ6166`l#q--M:- &--&bŊlv<:4ţZ:6hуF-& I*h6bbËÅцeB0lыiåhlyGMM)2Ds1`[m[m;PlaNij3:bi&c4 s)/s q: MbMk]of_|=d5{CڶڪXb'#fQC֛‰jV,g&~rp)CǴTߏn?hՔ\4ڻ;2r)&mb`)#$wfi3Wee5vYn&%&&ɍ)5x4PnNNT;CލǸ-UIÔXx*5?brc9Rqa{s@哈(rxC׍l';,䍡Hqcf?j:yGΠ@g;dt貧w2!9QWRҥݚ,JU\00u3ÎwRfiY"lm1VSH+۷LfDiX)f뫆nnuYfc>z|{k? o􃪛{TQF2Ab>pۑv9_t=qćp)00bm߾Z~WHw:v⮛s>d>3n6$;&$ySٽQCLU)JG4rPs!t+"aE#X,z``g?st7#_:9g}"ʟ2:h6=:O H>i,5X/mg409I'r)֚4^_ƴzMQ&^>AhyRޞ3 R;QLF CpQ74\nF2MQs:80mt]-IEIcQMa! "{QPxcAal--mLxp&(LFNdumOmmOBwt귾|I tXl JOLAd% e2=J?G0q0ϒ9bjl?clLJ:&w@۟tp)B 6 5i-BCAogćJjNyV?@D6Uo[_KkǐvI^zYm|73LɃ31#[C흨hQ ~?e+(1n I'CyYRXaNef#G֙_X.իʵŐICBR})>'Ѻ3sPȯ,u=ۃIMWV)KŎ$nP3$,[LreǪݪorUV=y*s>./➢{Dqx|r|#ՙ-*Ah&sȘC LajեVTj&j&j&w~=BTj[m 6FDΕ5K)u53,3KtOXn,$~Is3B:d'@9T=8ϡ<,T):A LtVf9,{qGZLK}c 댕o.2Z[EզFNae,e#cF0Ie3‚r=pBv|#,bƴ^퓞s]S0Gvyo<\yJxlSˍEQc %QOg&8 #Ph.aM3}*U7WVSy)߃'nUk:_/1W%)C$J+>)-6'? ~tLZC6CM:.% B79>a̤Y@}G)ol(C##vGw9?d{1FQG(9&'XwQp&d>SG49cُY8^4 {Hh̔^@}p(Ϫ-ɏ `5ds'-˹M\9prHӺn׸z9M8C$oD,#\{gk.DWK >۔rE| dcW]/Ҝ;V+V=S)fMc\.Y7Zq|(&jeqqqKgH~9f=3)O3╩[33%̷ 5 4vmޜN!!9qFrqѸ770)=xግAOmUpq:H a.Mi>G4ED@xTittr#vFsm;?<#q%g]HI^dG~9>Xp%Wlf;9ŕ+:"}Pj i#솃hc4kɬ/Dm4$LPm6lP$ZpYn{nlֱz# 6nh1ՇŎke_?}ñA}ǧ31m;0n&*TZSͿ8Nu,TQԛY31d=|zM^s0ΓL꜠L,,C SvsM9Gy??> y_J*)m}p *iO'OO''&b|2k&6g<ݦ4 3êS3XѪd RdOhl !kSF֌!ӛ 0)QRJ1*IeT$%Mɹ0S*fd{r<85D*#zÛfLН;,ئڶ6Ca4ϊ0#)xڞ*sҜ-& p)3OPTwWrYRʙĩ:$&*'xa'#-ם1s.<_ %::êc2aRac$jIxSgK8cEAƑuկ1|#*N!R|2C23=^ڍ qNUt۱?`GkΝs;ضn3mM=[g?IBwE>wqfi7GyM$ٜti~?GyZIae)>=j=SLhM\PjD{݆ofuDq6gm tm ,DX4 'Iңd<>'t?#L;l7Cr6jyϿ!&M&a'}:'DM}vX}aFy*?cVYW^3Nv6?oen]w?h\0Vbb>Ji|8䆗Qjի]$xb}qj9Nvᗑ{[,U*?mc;=ZZW qG( l~5cj*f~fg9c$wVgFK(e`3~UBpᄠmldNolɹKqJNtƃ8')~O4-ZN"nG'{iC#,yXf͖2&iJ{'~t~ì,VI5l:pO/tW|d:a\E;9iq;^,Ÿ"=SR]z?8Sj]uZkvWNӡY懕5< j9x%Y$֪mI⃶ 983,:O<'Wz~\SqcYV`}1ĞײBhio3־YT']<gC'њߒگνgܺɾs SCy>Pk.1Y뀸 `9+Ov UVɲl'zI'?7xMnGXN9o}!ӥx'pK=MDd{3hg<ʞ$?f&|x u'=ٜg?H6xs<֞?D};Sy?q7蟖~Nz\Zn}# ya=!l~[ .teM#tt= )=;ӼYFGޅ'̧hx!凼fw eRbz~獙Og&vUW~1NY:NS>Y8#nOth$g2}i<Ȏ4n w5CNo&Le?(|NF69IL%72YaU=7oMy0aԞû1NhMi-w.$$$8ds?,IT1agw&Ch񆪵 tԻc1[U+KKwc8MqVoVy*ރcHU*ҩxJ)/U*+JVT+": Rb ULVYgTݪkSzCغSi] r*Chd THN 9)Qa  0٘Xe@q QjUUFhjߴ4*n]6pd2jXe &훨<-7f*AVT;*uPEPde_T+JơR+O`lJUF$$$6n͖ѩPB ;di;ʼ >l,>t0ɔ6O_ɱn =9>6srhS8G:' `B<1J|fIs ]tؓv@Gҝ9⧑'U'o<)~:֛~;l>l{qY\_mc3St7޿kbg-CӉ@wȝ#09ӊ>g=z0aQM'H9OwSӠ<ǃ;)ǿ?PcPs;G"9cx<?{1ۃt97;A{Ng:DLY?q'_?z}~4!v^H0Â!nu\v8 \]]]\pcP?N`Ohݏ ; '&:!GX~xt>A?hGwvL.zWr9OX+zN]㓏Fr\F&Y L&,+ 욙cSDt%YON7r:9RNx_=u'T#ߏˎg`#v=IrXz"d< ݇2ӑ>]܊yjOТ)ˏt;(uNlE94v)g'Ћ:)~wx;d6r=ێE't= f?,'l[Ȕ):9 @qYa OE]myϕWUne1y3l}H>6Æ;7q,T5Ď;+ +ŸSv4r䘼qUKM,A{g?~'}V~Xg*K!ПX4?FO =膠L=0s?{Dӧ<9::fuITN%#ʞU6=gLt" GH͂||wCNt@:Q܂?yQܤ,O卲j+ d $I' 6 G9c͜]ԲŖOXTFa=VGTq>kO398ٜ3"f;yOx?"|bsG㝸f~ߟ4TNJ=OQ=$>yCݞCy)|ߛG{_{oG*cJ7rߟ h.]cHO`?Fי-S♭1Wl)Êgty5g>K,T㾜;=O%\Xaqy|Yg웃<`ּ`5,H5c7I,ejf9iU2[3}>Ti9{+eeN{⫼X'U_C#nIS:@}3AHc/+4\eeɆ #Q鏗1, uHkc{]vW#>Q ^Al\||>< I/D?ΐ~WͦdHG^?=>2}C0gL<<`$j~tlt~! wƃLbR#"f %))IJOڟ٨aoTՃd2g?2{*O9%OT0`tO$q+noS&tR[d4䰌DU(;#';@)IJ' *[1>pV9w!Ӟg9s?yFD=sL?h;`'ᾝzî16(N>^_Yj5w`< /_UoÁns#}a8^l`QUDUdozUrg,za͞yZ0W9c4 S2awU.n^Zze.{xQ]]箽tl}"M~ %"ܓ U:ӖNӸ' _ѳ:ɼtsOzNtyw7cO&U5ӫEYZˢ֭U]jߩ.u~2wa'z,s!Oa?Ix$9{txz6ىwvusi>6~Оe^KVH9`D~2/&'Rv>qñѸ46p/V/Տ~WGū_P_>+/[Y{/sޯxD+.T/n-k@aL `iI'l6^qa9h'X/ѫl%0]Jk j[9Im(p]Tx+^xK^9f֭u{Ks.57  Ʌ?LM,𧘿Uߛ[vV

L0w;4Rlcͽ@Thi֣24wFI{/DY=gPŲܰYlOAFIxg~Gy<:$N|[ٮpT74`.z8O}  md:cnFc6';|i+d+4; DǪI9h3GM?{z_hWVzo7Ÿ ң˸`w1sC!ɷG6lBw)f:nk͂t$lO6uD kV%7H6AMr2s&df#Vn F&czLaB3+J!EVQmvB)NV K% 6F4D`sC"<ܪ*"̖"9WJPq(41hv'υQ ǥMh3Ơ96&9;xc]kT4 tN T&҂bFh(-{WpoYB&`zN1I6h $Q?r(2\ym>zh,J}<),F#Bc#|t@7c'k1?(u2#뎬@ښL)؛CCwT D P S^+D]<99 ̜:R) wbY&!z";RRrxAΓQ0< lvٝ"}Ѯ7$Dh't@9xG \d}x9A<~cC"#!k0b:k~Wz1 2d)L 2m 'Dwr5(qGD;|Wn\guLaUpwϩ93YE6{'n]񠛓|0< H$=}WŚ&: # ܽنqRj 7cXqb!!G HpBѻɉO+,i@FqdG&7];&*ROPSZ`&`؜{[#[5ώq:YX44d;+jfS'u+6u)"7\L6J{0bfuFf2],rN{O 6rw[ s+7 *v<$FÜN;3N㩸345&!p2w0;73G<9=0v£@3ӫr v vl( $L+ Ddr!%XETHa=B Mib=#WvzןtF1\GsUhLveOT쏒x.+ :1m 0^冝zo(9ϧ*oѵw f PMq7;2_%üLܪ_L8n$4-a"p S[nlfIgyÏmOOTO<%_Gq'-5)-}(|b 28g:s6sG0n d{M2e{^en2dڑ5rnj7 ɞXs' v5czs6s.I]u[+~4%2s XSuKւvnz7%\,+ &ef]V%?}+!q8unnjDO9·xN\7#mς^TJD礝s jc;VUxW(rx&L\W z>MJn^>Å)e>iNlvӸ0[aǕ=U1;h7Fǩ>\[n6G4nZzQ֝MA{%so<]362ϟe \Ǒ[mO=uc78gNr2ᘁ|c@X΃'tp9dōێ{>gemY\Sf;mGf{71ob5=_|4P)>DJ߀lS?Վ\O 9Vn:G#;3ͼ_988$C!!v 9 nj?t#tC gWG&ʱ@r4A$Sm DɷwI47eOꭷ}mgq6㷧Rq !COKir\1w伊oɵNb՞d!""@JQ ھ/.ďM避P/~c- r?,kb)V3U&KSSeCCy!O =c`G>Ǟ0= 惱72t^nMC4Iw}p#5D}v'^se;Z*Fe6OKs|os ޘ3^0!"PA}w7 / 002,zD:="*|8Ѵt6jK:'w~}NL:rsAgŧ.&QQҫ(ÄzGv{0mwyA;q8FzT7qT۞4t>-KE٦VUI6t6B{Rȕ?ꎠlK"b#9pb1lJZ|pis,[G/op>_I|h=-/@7a]=4s>>a@zofؼ7:,!ʜߊr/H:#n6LܜVz;rrIR[sF; ;gl<ӷY$2a\#ގhncp[g9À8F~`c c[US99Eμ44wͅx#FuF4͡ ÁX ? Gd$H$m_x'Or~0 t$ut/;ԥ7`;ljg>2hQjfgӠe*v*>c[ 9Ł ɷsCژlԝX@N:xs)$pVP%y~qLWTIDDIKdlL*Jem'EQsϭyѧ!c Rb؎33= ̙A,#P$$,RLa(F͒fRf,j" 4TPFcA)I334LR"%4j5UUUoOq<Nz{< O3YN|Y1#4{qܧGzYfiͤNQ9;n0b~%X2p,-]%I~Gi*h@(2$ОI$oۡZgS<r.9Цv{"桾ɮlL*TtJUERw|)&Цf݆Tjb@>jD!>3P*Vn wTَds>ϤwVw('C,u99cs3 ŸΌh b,&̝xqy2Z|@Қ=m<,+, 1CVb1)>N|h=)J{wAK>iFyr*\~pz<9OUx׋'p d$HiI"Ue2ui!T)BŕSʙ&On%,`юM*g3Ȩ{Y%1ۏ55dd\.#+r0F ŋR1DCvd,JR:ch`d=`G~NwA뇥i-7Dl9"~>1>Y5 !'wusQ!;I#zۚAi?Ǒ1ՌVekK.X'Upx!6nۨR7Yc wCu&FJR%L:L2```I1IQ))(LIJR*0P00)M,4&c@`R0T‘I> nFƆ#F dlRΔDF ٳf͘`00JTJd`Ĥ&q"R)Hm6misfLt糟8s)O眠;9?ʇ qr'%25tܦ)TmUrAD&BR)J)J()J(IJRR(RR2(sU<ȇt 6{4=e3w<(yϧjUJJdjdH"fB$ ɳfe!$I),%M~-Sqsst[*~'< O~c'Wf2Jgw?Y٧Y' pϟ6ڃs)'4oVAm,mDhՓpg;)0ry3OO7FB?49=@Dl w-ʲZ]j),弯Nu.ʛSS N]!Rӡ"ɚu()SDeD0Jij3dMRSPCeRhlY: M$+˺R?oɐM)IO`{=a*};_OϔMy'>7h7Dښi;tqMD6CeZՊ$$&QV%usS .m?4WOu$gՍ=ٝZuL֘mqXe&S W}fFGiCW>̯v:';Jy*oěD||7ؑǒ6fY#'b DﰟD?!, )O?`Ya_$pEMa=ēBoxn7'|d 4Km7`Ml1OHcKe,FɃ2*R0ąNyc8? LZnw-Xvc,3&cznǩ>iJ>)|ƛIC3bqMm ~G faHaU)etG\4:M0uz=e#0LHe=RR1t wGžj_=<YRyRm\H82>pO I" ЩYђ(ĖILŘ)()((3dRQV40r a ,Z.-4nٻÖe0٣CVZ)M#Jf42%0R)L4ȲYiJٷRmS*0lnٻRYe,)ddREñFL+VX`uaty9ZՆ[la˫G. ,&Gn?#~7 tjhA`hϭڶ{`l#Bccjd X" B¾k!*rk 0'2,#ݟvmzS 7;fVHwB'|3T;Q|cʔm9_RΕJi:SNjl|'V'e[&GOI& c4Mk5aja̫Rb\Bx}'oϤxӊg8i)NpOXO?MRS!=Yޭ6Xe1U[0(8"Vt”DUe G} Rie|ZTJhI+*bM3IIie*iIdh IFʼn6- Tj͐fA' N;g,d;-q8:G\xv{fkU&S+YR'4& oS{(f,46×{ ά`{|0L}Dux'h~9A݄N#ny'2N}dAg4@P?D<_0cȖp1 "rV^1r &aQz"xEb*(ㅽYW]V&6FHJgWc6˿噴Ul YL&Ue-Q֖dc)U6)M`c4U%)JS̽(&8N"rL;9 hMsCΈ $5l2Xvјt|p/Pㆰdfrpw 3̸Q‹,ܶ)˧NTa8r Jƪ~l'CՔf*EQkU?r3k9ם<=!5݉U璾10Njs7McnRf*hn ُLM\5}qv9J^- f 1k"ظX=WEۇnzL[c&XK`!Y"¦#(V/<+k߾:_a&iJퟆwgllʟ2kLMq=g[~یeyL D7$INTٟYJNGGSXGr{a#'|y~#O6;؃ʕC'Tolu>?iRx‡znTDclwe>G茲vwǞ≻FI6tZğy;w»y ů7FV*)>W>XhD4~HU?1f''Onǩ쐣1݉oR2ǫ~Xp憆q|r>C4Ja7Ea¼'a݋^̚2MY]elFFf*N@89ɎE_Y DNrF`d̬.dg4$#! G[mgf#;>E<;}#՟w|G.xD!_N>ypԍYfs4 g&=v  量? S}1Ԝ"44Yeebz-_8+b̑URLnGs'2m2QT<)K*RRY[TߍxmxC#zM&TTLUa154~lņ,FV h͆UfW32Bi6o ̶]N16i7[m"iUj&ʼnYjƔD)NB@2O|̢FdO9+gGeF FܓPYČ b@P;8$FIPqpbi L @"PK(([Y&S-Zj1KkmBdYSldmepXf"J 8JK$A3,t;FWSq Y| I%8DHRP`"%<PiM,ެeL2hƭF,F1c$ ї, ,drǒpʍFX̎X[#fGMF1qlZjXhXʵVYV֣Hle-+$nYeԕ-5,zR-Yar2 laAA,,I@@D.,[[Z#&.,YdeյőkJ]hhVRݑǝ ,XI٢D&7mmy1X]2.ܫw,YVLcdPOLGL'rOp~ X>'Hr#16N/C@֛4J$0ןڿؤcU h!BPӄ7S)5Y! TRh1UpR{"-P%iHNNKg%RbR$ӑ ,;;8FrYeX eYȑ'#ei4cHR1M,FYe'g&F1bKYfi#,ĉĈNK,c2FYei Uefe۬3,̳,+3,nݻ3uY?)9RpqIkc[ɡ9U:#֖GO(Nz6S##!v.ӯ^/9NM:޵iӜp,Ҳs />~hYE#HdKe=R6e5U\O|S#a(ޏ?d涩ktdO>@3q)OdD<ARaTX㍩5SI5MStOՏ26O]AyrI)S<_ȫDQg/XU[lXlq:*l#)"u.l$<Ox@s}膋 i>fvMpӗGltҧv4u%sr=g3ȇ^`NLs=N4gSyE94湼8RDMqz.,V?ɅagN~6{iוr"@VHs`cdd>iR !/`"$X@Ovt#%KTZ6aYK*t'"yhXkbneX({=x՛n)%Y)/E%$RRRKIީTa~Qw[ɘgƇ[VyRPndlkۜ(tVpLfܶH|ó)α/ˈ[YɧكZ[J A# C&+Jf)3+98&Ot7Fݼ6ecJ5)lֶ8=У2PO3$UckT0;4ЦA*aYUW6#O"d(`wg0}cM i6͹S 0 L Xd6(hFg)CE#hޯƯ_QF'M}@Ήf:p6̆8S&: ?DG~d% &,6L * ?=y-ͱ۶mPcscJ`NH 9̮8^smDӪ+XwLP`ӆ6ۢ*Fsifq\nmDAA Ẩ8;hZvI!8wsq 6ѻsDmkUZQM`ہ^b),"tNq`0 [Em9yVq-QKh06{ݑ^8N1*(br ^rsɘb^uht9Ì԰9)JsDĵV;^ %/8- Jsm-LpNYuy!+Z)J sJ, fE۷nR,Tll@p`n<‚zFmKZњ{#49r09 $HHm)E]tktBl,RR֡N`G39ؤ]BS`QJRL-)JkҔ FJHl`1L)&X*)X̐HA *M#mIQiFQHaky9ԗt F10p`DOu^DaP]R@$rhΗ#p@O>AwoEv$'}WV{oK!':*APr…@Cn,XZ,40 e ,ClTRXG=yO=cAh:K;;xI㤜g$u#OR;A?8q# DNH DHGi[$Gwkjj4 R"ʖIM_tG :s#&[Տ6ts95mQ[oHMSP՚ YГ :#؟:Aў[mg)MJ?oNdq9w#Ap6C)82}”5M ><'LdO0=ia{c㟤4MRjM܊QM]b> $7nHs橺3&oVaaJtD5$%߿_ԒIEUZYQ)~!)6fݟț?*S*Qm -<~~v4蜈$sbxhmhɊ]1F뎔+{Ӷڜ8fRJ)&)(Q JmmJ:crVɎ)na+zlwWՉÇ$bA(d'BW#0Ȳ Rrl'q'F&,m2i鱆;3gkG442%)1v]q06ٹJiNt& $]iD~Whkנà J<rg,966 _p# kѷ_勌JBc։)yGX-C6'^M5vUF6U?BŰ3w{vjm-]<9%fcmwVrvNYۇEMX9Դ %bgphAաrC0[خDړdR\CҌY=Oh)Cqx8GֆÜn >oN!?f x?zbh06{|0b /#_,}9/-jb2192Sqyq>8XVA ^ʨ^aR=/}s+2\fb;M#-v]kC<δV$C2"LMg9~l3 ZH\p8GܹO+ ?4T󆫢mpISK.I1dTU]GP?u'[|@):_ 27RNn~mjKVm*үfW~1ȕRUJJJRRHHFPI 34>u\Ś!vO4O4;w&i(IY(Dl;aj 3ōF*jRCQU;iՓO= `R;#s? #gJsX#(fƜ;"2ʦ"rbԙ RNoRzi( RLFCE 4/$G% z=AӐyQ]}m/2Y)aH  O^q8zv_+NGzǟhW$}^ZW}J`d2P ϖd*'YhKoEGl fVUOSMCBz#Ƣ~5bm@.dJ,W8^SkF|xdK&*ϴ2S~Ɂ4'5=H6 }AGH|w5x3 a?qm|7cnAu<9'{WG;snvތ69vF[le[9f)M9}DZIΰ(]r:f3Gz5֜^?=1nO7aӥz;Y}ҢI&avMUʕ}MK.?%EpD'6tFXzj:T"iq"l"Ƙx91ʚXY@aAىtqɵRZ.i,!eu3i%XZxhTL|f8'5i=LG?8𙍹5 ơjcP'gTW4!@RH!j!|ԍa %/1Âk^"/Bpc le? ~dg3F+$7I5*|Xc4Jxr4Jx7>,tlt0P` ͆pX?Bweߨ {$=y C8Ob2/LaM"u"$eQJ,sنΆh2cPɊ00e] ?5aXe,1L5IEHPX M͌CJ>|sDpF)ʟ <4j[ϧ @@3I? n̑!7Z!5M_D0^9'^Pog4ݙ)MLb2}Rǟ;GGO4Y[=eYbR3l,5-HhElmͺ!Lg絻 ɅJ$JQBnj)ci ^"QJ &P^lҿn2?,G): {ӣ:DjۜqGs-XRq[|Dj-NcwJE0,h猳(o䁧ij'y(&o61ϦOv)5MRYS4r3r,ىuܙ7S-y[_Nɵ9nh7lBFͶ@\VHGGF$bDO~@#a6FJi2jd[uʞXYПINiƣX'`" Z~u^ϟ?Mch*[H՟;w'f߁4ZiJoE6St#8pNvPaږ)[Y0F:*^PH(C/*we0gNB(v1&+',+S{z[C8ݶL.DjYe*,*5'%%+dq $RR(PA5H.P$sF=gF;bӦ΍.mmgcKl1M8; *44;C3&c׎gg0{&y=#P6Ln8 Ni)`4F uh~`?`tzN`ʦѵ]m?Coـ|&ӟpž;9^:*+=>JSϏ.cG794|A)Z 1!4I5fPkÆ8rU3m9s,9QA8p9[ZA)EkR´J%iJDPNqx,c,%k\JD%%u7Stsn4E-m9wGm9qmr傰`9iNKmXmcYJRۄN8s-PR”l*mS]Tcuכpj4ZJF)DpĖ+@R3$s1!kz=zz.H2NWzz 9!%wC\ )DBJQDܡQZsqRZ#+EY%5ARkV`(*"BImkc ͋Zs"ss`DVԭyk[ UG![hQ,[h\cvn$]{Oy>Q!0HLV)mbڨ`;oFyia &O,>=~3H5SIU N1? ÌxjGO7e>Ln1$1'; ƂMGN' 㽚LƂM&Qf Y-ҟyN}ygߞhɎ;mB}AjR} }S ntp 5fèN7S%fsfZIMd rf&Y>x5^=HĢTMa6<|h9F&!%& ~d`I[i38EcZ!MfB5Jȿ{;.KXѐ):H|kCz Vl yP̚jm<6e*|'.bLԞPy3aNvζޏB=O"28%JRH`õGkK-#_^[&HO%?4 $iziq6d'jI|ѿF~)!'`q7JW^UukؘWh|;[uWVz/Ap2y!5ңqS4?xIT؛m41"|4ZX*J5LߴakM/򧅠kjB!Z;M YZg&jmXL+ 'E5G05˜,pNy}H`jfˢXBw[=1$yC0ȁOjرe[*֒-%$k)Z6Zʾbpi;dM;ހ#9')䔿) ɸ[>mq0s*qV`s 4z0fg0y8{1:>Xtp{ qdJL97q6*, } )#ct d?fc푔#FYcJ?RNJb<|~I?rNuI6&#`l*-yo/㉓M lٛ% l#F)յlG4R*M%,j Лnz‡=VJ[dKMMO%g%e=~"FX-%H,,"TOۢ{hyqmpp VbOR6M10$E!(>=_M퍸9޸=nbfEDH0+>n~j4,L=J`b”2#( E) FbExl@Df<P p8-\%re߇m[jᇰ܍ԷbZ݆,F&ҖY5 >9)(D)G}+`/X`Vf!1"#MUAd{{bnw1,ڳ|\UTp<naNlcX;(YUURUJ#1g災6la؃m._9?>p~WnxQ5Xp##X#Ua&1ރN