summaryrefslogtreecommitdiff
path: root/classes/sourcepkg.bbclass
blob: 390d3684d46b7b73c1560be99552035f8de735b6 (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
DEPLOY_DIR_SRC ?= "${DEPLOY_DIR}/source"
EXCLUDE_FROM ?= ".pc autom4te.cache"

# used as part of a path. make sure it's set
DISTRO ?= "openembedded"

def get_src_tree(d):
	import bb
	import os, os.path

	workdir = bb.data.getVar('WORKDIR', d, 1)
	if not workdir:
		bb.error("WORKDIR not defined, unable to find source tree.")
		return

	s = bb.data.getVar('S', d, 0)
	if not s:
		bb.error("S not defined, unable to find source tree.")
		return

	s_tree_raw = s.split('/')[1]
	s_tree = bb.data.expand(s_tree_raw, d)

	src_tree_path = os.path.join(workdir, s_tree)
	try:
		os.listdir(src_tree_path)
	except OSError:
		bb.fatal("Expected to find source tree in '%s' which doesn't exist." % src_tree_path)
	bb.debug("Assuming source tree is '%s'" % src_tree_path)

	return s_tree

sourcepkg_do_create_orig_tgz(){

	mkdir -p ${DEPLOY_DIR_SRC}
	cd ${WORKDIR}
	for i in ${EXCLUDE_FROM}; do
		echo $i >> temp/exclude-from-file
	done

	src_tree=${@get_src_tree(d)}
	
	echo $src_tree
	oenote "Creating .orig.tar.gz in ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz"
	tar cvzf ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz --exclude-from temp/exclude-from-file $src_tree
	cp -pPR $src_tree $src_tree.orig
}

sourcepkg_do_archive_bb() {

	src_tree=${@get_src_tree(d)}
	dest=${WORKDIR}/$src_tree/${DISTRO}
	mkdir -p $dest

	cp ${FILE} $dest
}

python sourcepkg_do_dumpdata() {
	import os
	import os.path

	workdir = bb.data.getVar('WORKDIR', d, 1)
	distro = bb.data.getVar('DISTRO', d, 1)
	s_tree = get_src_tree(d)
	openembeddeddir = os.path.join(workdir, s_tree, distro)
	dumpfile = os.path.join(openembeddeddir, bb.data.expand("${P}-${PR}.showdata.dump",d))
	
	try:
		os.mkdir(openembeddeddir)
	except OSError:
		# dir exists
		pass

	bb.note("Dumping metadata into '%s'" % dumpfile)
	f = open(dumpfile, "w")
	# emit variables and shell functions
        bb.data.emit_env(f, d, True)
	# emit the metadata which isnt valid shell
	for e in d.keys():
		if bb.data.getVarFlag(e, 'python', d):
			f.write("\npython %s () {\n%s}\n" % (e, bb.data.getVar(e, d, 1)))
	f.close()
}

sourcepkg_do_create_diff_gz(){

	cd ${WORKDIR}
	for i in ${EXCLUDE_FROM}; do
		echo $i >> temp/exclude-from-file
	done


	src_tree=${@get_src_tree(d)}

	for i in `find . -maxdepth 1 -type f`; do
		mkdir -p $src_tree/${DISTRO}/files
		cp $i $src_tree/${DISTRO}/files
	done
	
	oenote "Creating .diff.gz in ${DEPLOY_DIR_SRC}/${P}-${PR}.diff.gz"
	LC_ALL=C TZ=UTC0 diff --exclude-from=temp/exclude-from-file -Naur $src_tree.orig $src_tree | gzip -c > ${DEPLOY_DIR_SRC}/${P}-${PR}.diff.gz
	rm -rf $src_tree.orig
}

EXPORT_FUNCTIONS do_create_orig_tgz do_archive_bb do_dumpdata do_create_diff_gz

addtask create_orig_tgz after do_unpack before do_patch
addtask archive_bb after do_patch before do_dumpdata
addtask dumpdata after archive_bb before do_create_diff_gz
addtask create_diff_gz after do_dump_data before do_configure

G'f0:fb{ . 12>>Eul_ ?#S jD羵 9pmW+[s6y1Sid㺃&Us>JCړys I+^UOjͲ ձX6]Ν<ÿui*Jz*ߝ3l?N|_v:NT/7ǣgoNk y?g,Ƽh7g0Q0ҲL \faT:-Aj EX&HxnIx9yiM E> %ÙJ~tS(3=V][QI;)b/^.`v"!x7ˤ#/x>rVeG' xJϊB(,8kmV΍J.\,WWlh U[fwz.eS|'۽j˧emwGgRX}&Z/;![h*RxF EaCl1wJv^ 4P=Na"p>, \0^D۔\4_xSctAWs |2**E0 !rISg6S]`țdCyYRT{QMh:VKEΙşFpI(څ}YkVj/۱5ׯ0f>aCUKLW VQSmEP-12z-BkKƿSy|ol>N^`F] UQ旹xuZ*譚,daR~0hш(PR*#]cRXvu|HJ1HӖ%OXn2 o~ ]]dZY|qgl3MbYScO0{nrY>NxvO騉[kSf1⁆7 :LAFz'ם}): S b(_B AASK}7_+p艂O;go Zd  ef7EK(F_r 3,=qA?^?qJyE  THﶎG_ XvQKBZ/w}=Š9T~J(fS`<xMpF0/\Z5! ^>HA\J i)S"&n= .|69p:9W!w&fIsjJ9+6h`TY+1",ļɃK4>Ψ'bZ.^(n0>g,R~ʣ?_nO3|Ǹib}& v1|_!qy\'4kD >/lUms"I:K0C(x]Zt҃=HgH dg|Gf._(/ =Ζǐ2afZ}"!`cw6NXo"=6}"k^Ku?_85˽Dر_q7..bs#%cL'X(8dP4@*DޫF%FcMOl)y[l$efkS=q>&&f4ݑnUY"v|"~EuP5fĖ#rx}9o;/=˖s `Mn pY~.!0`ǹ?}fE`S߼(k _xAØaA]k`C}Lh HNoPl}wb<2|Rd!ߞt@}<--)y+/&TeP'2Iak;P<>Czp3y|-a]W4A|^2-o'QéWQ6+TPI[lX\N潟.o1 9/01uRz) UsC=Y rz(ݑa^ЦӮ"Cr>p!y$:GsU_aIK=K6*^#p\|>rh=:ap'Ūl@%`Y??Y¢@z=oNw ٸ(tIQ'`ch%Ez|ߗO5qٕ~@PA, 8FsRDX/8DK]Ȏ/\4kp,"DDV;GT`!* ^붭E!~7@D_ѱO)P};=ѻ5}a  %"=p/`S`A)@()@wrEyU0%)!CR{e!]A26lju|SAq3>.ʈ SPCBz)3vP0DV8L y rזS4<|k(\oK F2NG9E郰`G ZBG$W8@H*%<A^^ ?%?!?I h?cM'PA'E.*PrP!UERjsڻޞ'amӻy DJmrxz̈́^U;PO|qET(P@Jh)AiDS T(D~|^ՊױaEdQۨjtmӈ.R )('|7 MDQ~.(J4i yQ6\ V A0IXABi(?d~}PG$<{B&l {<}pdˣ 0!"6uhz5o怂h^="ޫ)*&_=\AaVa?r zчʭ%!4,}܋D#BCUl$RqHPHGAB2۾{ΔhAJ_˖O0(pcG h D GF6~Ḭ I Y5=@sm&,cȏ. 8ž bh0h`ы}z8Ԏ.R 88fA%[OynwBn%#dMf1Ω漦PhdPߗ|*:<鉕9:S\WRcOc9ݽH8j%Nrbg;?pe|tJ Q4v48,:DNxKXwTi/>HQEAHvgqóScÍAQBҹx]T'F&hL;>!{ B"5YG2~PZjn"97g=Cq1Oz^EaD@rHYLNLT (B`I?ܤr[Hs 2|Z]֏׷Ζ6*4=EEcYg77 [S]%32KiE a523~./)=n!DLfMף&X͍7G,ck‹P6>N8iFy/@fm0WgD΂y:KIzh"v\Œzk>qWB'<ü|zgOkSͧăU ZJd jjh($ g2#@ЅU*RU%0@TLPD2J$m KT1/V1d5Na8f/cw@egw@-11BBkʣi!\`/cZ)(A/O{; ,S5KQfKja7PgMƆZ0QMGq?4Wxp6s-O0x/1ţz]fwa΃䁷B5.a-9 jTkWE&#v< v<:K0e.уtқBDKepQ&*| >tQ_F`Ѽ#s;hpܨe2T?O~|x 9 0 PPPs6nX33YBF a}'6&0fL\?#LJ;I^A HL$74(Wg e0hQДճ,ESӼ͑FexzE/9I$`GCx8:Vݪ(!*N+ÿCCG CmtkY3ΆD6K2Z7XmXRݽRFskS=[E4ܐGl O-0 n̉d-ѣ?JצdY H{~|C}(UbXT|q6{Ne W DF1ofO4 I2P0KL yv!Pt~R>>xAH*a{3@g@ ^2_ K/@ͳe /\s ?½x,m :JSOFgCKsp\}s{G#.=6 \1ke_kBId |̅6=xT 2QPznꠐuG71ϓr3Z'Z.!,ͣ_ b|KO&ݕ{?{go\Yh#G(fx7M{[?inȾX83nLMy* ^/]ZV,%V $|yߌ0~<^3nӤFyvy$r ?oΌ {_.2xEF}ۻ m(3 -j>21(!] wyAs 5Xht,\\ޝ RQ :CDGxmx1y&Z>gD KY-6I{0b_&(˚y(rzBI]Q#meRG|(5.lWdHmMhĹ૊\Eq,0vh9뛚Ρ΋E۴R(f[me@PxŌe|[I0D {o#6scmrgWn@I iFT>Ɍ9ag'g>  D- tSQv\~Iq|%+;s M ?:`\ LRBd6ѵΥpcc`hߜZ9 '-i2T{#@|AkVwyn @F@Ɂ;ŭi^A:!d4ρ'kA*Sz C/$ۆM>s/kl[ãѪ}F#!IE G+Qzaa^߫yS;x* J*,/fxIvIIS$*%2<CJԢ7$O~oiy3ǰ?qTZ[!6M_ SGß]~BQHvw\Ӈ7g~GD+ZT F! ߺ ; 䠢";#>1mQ$[ Is."yxuzĶw{.rs9U_~~h~?̠<.-ӗWVu3~;t Vú<@ zmӋr;Ù)Yx>g͚jA$I:~}W7E\CG3L /Q371amFQ]7!SLzxtrmC28vfCr*ADa18 (H~y4o4d<841;ϧ O$F?Mڮ?xe  `5pd]K6do ъ#lfj`-hI\'ަ݁wD3Ln0% !RC@$-%d{,NAUh0;O/V190swpE/3”<͹ntkCu[n_[]nXXv$Oe IBM7%wS;24 =5[|b.+ɐ?ވ `ev^?v&aX?[y㐐QH% DrO:f&rUx֝B@5}Ťp ry'tF.skl֝o29nM k{=Ok L:Bۗ'"SH * I=R LݲyUꋈvOFa4Ϸ(qYO Y./q?h,*ޭxtP7Ÿsc]Lsqx\*$SDٙ3fkru+% D&Q6G{$yb8:\z{L#mR.Dp8CSdݵw%柷6-Jj %r5;i(d| #๏`ƹFw (e]n#K7ϧ1`[>a7NXϧEhgl>6]|# rs6_cI|9۸,x(Dvdif]y&?PݨI#pw:ִK,gpC r\Mz; 1k6ɂnjYbL`B (Wn?=6IY$*HCPY@a:LTx,w1vx\qM` P0wn/@&CnTS};ONxzl=r;W;  _P+EGVU (zn~Ӫ;>mh'rdTӺ_SW6|}z\  D0T 7nժMq9ffX]$I*ZgG"f 0FAgCkvu>Vj,xwlE.*vCaZh /)}c9 |yAۓK=GT@QCفHO=i $S!痉oLY 5Ѻ4E18͟O0 y@6N=WNfl ޜێO[1`E@[Z[م^(?}v)EX0 !\yjPlI(վQ3euafx htŔs=v)/>V~E6JIAɱ?;_xW8rQq 'D軠6"VApg3rs08*z՞<ЩCC 6V>'jxi-+A`b|a0<쀝`;u=t\5*/~.zl 2dRV`ORY(UJ3Cf S٘Xgc|`~DnH\ vp,Ӫ 0m&@48G;iX"0IvaۏyDt_roL_k#=Ed'6''<'ɇèêm-)USU+GtbEICBW`tytT\<?qkx{P@ {_vZ@o{a{)O6;\u/.n2JTOhImCo&'sxc\>J\g"IHQ @J<=L2o9Jxlӊ>5 LHnڂ"+m8gnOh =L$&|2PGIUgd->g:u 8^a1 \8a9o&,P4*A]Kܔ੻"0;af`bfFu`e DI=2((h?c$l7>,2Lc|[zxɡQGY > !W(ȱy{~CԈQ: iMSKcl|l8z@fEo_Ӵt@7@mp;â8gBԂdžNmTj:V\VWC4`ڑʵ{Px8bCHf3*TpAݞ >^ޙy!d*B2&;{WlkfJx}+U&m0r<b$@>k*WAxB:Pb2^,b|Aٖ\4=PʃCÆYBPnߘx7kCzg1$sb(V[Dtv9WAg] ^E?~ 3 :4C ߬ͦoVrC9m*q\vp6sk'6JΠB/l;{ DF!x1XdeT|1 q1A9Cwzu|Y`@l'{LZwǷD9xJ'8ܳmߪn)037^Ě!'פyٰ#}R6goqhYΐ8g UZ_Ny1>鞳lhd~O`Q?߹Ip$|Zy40@u :2PcV|Stzkv@$uǁw4!XPT˶gM~~0PPPHEPU0KKztxmn1i\4\y9,6ޫE_uPW!&\w{iT^_XWp޼|Pe?b?{t"@'O;4s|U(xTOi!(:BcȪhh//24Zv[QkJ)j8}:2q¨)}G><*9B'p%~p=う/ۋt)(xI̲<)(:llޘ3#hPon"Is*<əv{h }1}.?(؄cƉWL0E)ۮ4j)Y&LRםU0yelxj Oۏ=n7Qly+skOߙ@nVIJ鉯H ;ljOƣGM3C͍h@CuwJغ ؎vgZbK2p2 Gbe[-Kk. ƩpŲ9_XCopHދxszzN)9{r|g"6Ɨ~Z!w"o)B=f)G]Di\4)EƵw^_ɓrbC^0M@(b+/{v<6YA|.3Y1j5؟K֛5P "rpoO&~-vv b'z(KGNj"'2ɍ ۙK5!mu)xsS;eu{}rlltWG7?L'29?PvQ;g%/%Cv(_c?4c0㷸M=_|iSL"ꑕ0G=DrE\%pl!ѪA-;{_>txȖ !9 .,S]@R/q{)/Vc>(zS@B{"}5,@tnmї˷!#Q|O'C>C"1QDGM-׫wZ' ːe5?vpa` زnCWUO԰ @}A٭EkT~9r貑?_NfBnK9~)$=,0upxn){ǃծn/,{zzƹu2АTF*e\2v $Tp*xK#; }~Zv1 `=n}o><'9K mPEK 홦H2cd7w $_Ev@cu-:O[^~]~%sg?F̸ns YzVTl@pPt| <9dj )v0{{5c.̓nȉ"P"T,eekYqmmyyS bj·w7;<Ӛ!0T%`F:C !s^O;nqJYX公1g?]_ugX&g^=?5{;)4N1˶1clYn䓾̬#մdV#1ћŽ\pT*ji8Hr ,$2bIF6^8`2ʃ]sOEF,P!G JBË?[4e=﫜A3;@)Y;";nx NtE`?k6oU4)˨&;˜ _ SQ<4> @r#>g?7i&h3J-ʍV݈xր6L Q$@ޫքi$Π#=[fiz7d2' :m|+"^lRO8Xjp!CYqJNOy}k6AFve-h۹_iȁdByut7  -S P $dϹ4{OCo lC<ܨ`;?DtW"pWZpE)/t0C(ۗG˃%icqfMNvNvUZme.?u~cԜ\_C,jR eb܃M GM+aϣ|Q x"L)@z fZ?AN'w8;a0m{ b mE}i`wRrmۯy[PFѫR%XAsĤR(琍lb,]֜1Jg(q lKWqz~xHzRu!]$XnI6O-%4 CCbf*.rvV濿3D"]dR Ӫr95p{Qs|722lmFU^ &ӿE+ cc-Q0'Feݾv9$WC?2&zdeX/ϩ.Dd5|$+G蘩rƒrn-s`5{w싐͆y׃__0>.D蠐'IP|~Ȍ{7X̗'c;S16U8t|9F$VΖ@ 0\_vx isP՘G8h{8Zip~cڡFLRglkU-4ӗt2Ercn )l^?"d^[jYZb~[_|1?;[I(#Veփ*Gx> X-(o1!al'5Υ[9msIU,¶7x⮜4 #Q^D\pN4殛pljMn<8l| wI$龛?D}s$$n92ϡ=kGE;ؚ4vXjRd db/)2KvatbR(g]tGv UL؅DI d7x=*XmxWOFJ00BP!mSt=92r1xޙ n0¥CoTxĥX:=HaiGL4(IIpsbF\b>KH3,oaLS9 #{ ^6 Q6 S:ab^Jw/Oذ nyg99afg_gס܆ߧ}SULruܘH%}Р0U7$pPLֺٝ_pQbkFǀĕBM)|{di4CcsK ?{T*FqC|7sva~,T(x0qʭ,BtG. 3׏c(e'7o$2@=Q{d.>U6`c,1\hoF~&~Ǜ((CJ<ԫD)^AD o=c6DD͓|Dt܅,%ydfFKT2>[bx|gڲ'_2&礭75xhūG E$&ج,9L3d6c# X# Cz~xOv4z#jip?ml0\0 A=U!j2s! Q凣g3)Ľ}ue-ѪK*!T%  3Ginު@A*ֆ8ޜ+g{7G YDҮ[:xyN$n+,:~mmIl)f)*Zsޡ.KprIwgvT#5eJ.NEI{\*)0VFI(M3eC *Ar4y((8d]ZNHsxqM('dTL0{y)"zЦIUX^?hj!JL1bЁr$"%0q Hhw6GC;C_ۣZ[6?0W)}cg!!)@8v 0:(Cd&D:G vC@"ZD00$(r]fi]LݺM:"y!UHw 1}x{tǓ^.s +b8 Fi 8*1@" n!>F)TQ###AAۗݪmkaӎPrFi6e*aR#9 ߹2["|ό0J϶H:%,:G]9Iw:3Z"^MΈV/H),pk$kp},P- ~i4Q:7Rv <*oSH8L%G[1#ފ8{(.AԳK/gx::Vk[p4a]v]vV]G ɸWw$3dc_6õ=ꙝ'mQ XkjLAVAb2$<"0 DYрR:Ъnޑ\14Qrt3%58c6Sz3~ ۜLgi0]>}YbA !(TȬCq< gRu=IxmR,]S(BhHM^N$\C#ˊ#R!dvYX Y ֗߷nO "ێ>7C3VڨbC`qmS'r[ mDIaqCc5gK@QJ\Dl8񶪐>izTZ*f] Ӈe煿w#~|ȣ,$dtJ GVp>)?ⅢeAn?!gǗ-<7` W=i2wQKѤXuCr"FJE,͏WǭYWs':$}4ϗ8"_ Wv}vL:4W>7-DBp~YZ^n^UqsԻ&/~X6:qR7qΧCF4/s<ě t}NK, 3aPÂ}<6r7"iXzzPREO8lYFSm3-8O3 Qܱ]<ۊnfkDxs30yB >욀@0)F}RAhd!e3ϭ{xNև*m!ݹxh dEķ[QQތw{%{ߪm3qk;4c8t:™ E&Wg>c4@TX x—d*YW6$0b>o;13*  f;,ؒ3l Uؘa(3h"HV< koD.T "lޖ*;6uz9(]ZdtUWBy mKGrCIi"~܋^m#9#U[{= ,aC0:!9~]L{;~ݝN Q5H9ª/rB(4PP$l/&JwMW;&Umird90p9ЭHm !~+ӛ=Eܼ$ﯦDEn;`[1zkIpqQ8p 5V(ӤҎwwcAPd9^&3U? 7dK䅇yd "ћ?xP` \`*WS@|KV xIAd\:nWm,v!k:C"|Ea$>ex V^nJ% zv)q4 MunĘQN&l2uW3\NUN" #B|6YÐQ N5Z0J()I@I$KV'0H$7p;ITSr&MFz22 ^8dV|oSqEc$'n![`WI JD_fCnxQ~[Ph K?<rU&3ұ0&TT8S VoߎۧvW}ÖUAEdYffV;X`|çpR+e 5vpP[KȀ1LU1 p6z2Mtl/@EvUqx儘E}9Enap6ڢHk^v׀uG@pҹN4hT%Ӄ(oQ¢,*۾G˗L#Ml>xaRAcWzȱHڞH !%qOj"بO=\}ϧM49՛@gy~/U:џMp#Jy5XQᧃ0QB=gD#ϔam%  L-?ѶǪ8Cd$}MYZtcm:l upR)!9HwR%F)!*i<_ D嚇pQ{@|L1q +?z5&1|b`:eNeEExNnh*' BI^>Dž`ɠ@1AfSjόAŘǩ^EŊ7Aq堸v)]{T\Z2r 5T0B3x,A%@a`u GXaɀ&޺o;bm$Xl,ZyqPRM i/fs G(xڥs hr>xZ?? `:ʘ3{1dP~zR"6*&;B%ԠIKfpL`V<(,}!@ͼgc@7/UWzye+o5+~wm$ϋ_OmްR3Ӄ?V} ˳Ɨyc^O|M) P'yU;nUTw$=4gMT`s7FX;iwj!xT :@ƻviOO8QX=g+i;!)F4^mxZgW] ^<30;?Ix{c#Uw,I<1nte 0p-1$b *H(BlSeTNǫm+۬625,K;wg4&sOpF%Fx8hqi#yyK CX)ֹmT,[ f/(\E8IIL_/SFFCXmq|B[HZRO lŻ6;hB;[enkhWqL;1 RuQl "48.W!72a%xL8m&ӡr0i-A$j!~=\X cKg߻(.智 M2  tFh?lT띕B~dldBai@6 (] d+&~/SRo,8kÍ;} Z͍\ErxF qe Cav>ZH2?E!18I!eWriZ c?]B'5;Koۈuþj pxA.kLOx|Q #c2,p;BΜIː%8D:YӋNΐ`F]9;v4Q~p9"Q9S.ۛڻښ >J>.\d5^D{X;$뒠q5tн\)5*!Uf2o;:K==[/30.l0%2xb(2G j:@ D5Rq>xqP6c`6N A˭]'h D@ƌ+G_, 60&$X,Ʌgd[¡. v ' HL!.xOu%\~<#!J\B{E^[_@vrM^祏:-{z* 75~ޯlwq4q|xo^Jo~dBG&-fɹ Ԫr* &h!UP՛i3}ULxvZ;y"u"oF5灏9 ,·vtRA&ali:Ϟl|;k6όݞY}:UF:vlAU_NXŞ -J ;WL"ψH8BkG K .y)e]tL-3oE |m~}B0sRR+nU=hRK8>n_F7_fpZNyU?}gGaxvݭLKbxLWg!ꎛP,!́nkݷCFQB3PRMO yߎ+ʡ ,\qGrG }ټvGW!0`ci$+ZPQ6Z2Ew =M?d7[yR|tp!/ČϷ2L Ablsa5 `~"!@N8zڂ̓ Ϙb V+% P v=n=D)2OQ 6NuQo{qpM' C(2868^ itz?5Қ&nYD6~V4[H[Rec.Gqe wdqJyѱQ$hэ1J;tfײ8T Y3LchkC29r|+F꥝z\~N r{2r-fTbd \hq!v[ni˾# oN,vi[H|~RG1(H51/ 4r}\-κ\<E퍑;8>,?XBCȴ: y }[i)g!x5]hRp"# B (KlQ'hgϪ q$x[c ~IN͓pR]|$ы+?Wu:6uWEI-ːHntӛxCU&g{F{qbl95e9 ;|Kc 5^¹g\KH9Pp!Crw)/U 7ju89o!mwx2G(3r [ S/\v(( Aȹ'v}>W=<tfvArB(fN%r@dCaY{uWO*] #,R-,?Iddhd`DƬFabH 1Cϯq.FA~K};њn8qxv:A hi$'|,6/'4儐_2APZnzN6hr8&y:@64E@C30z;+ 8|MfaOK٧cʷ\̆Y_lɷn2v#)fs$ D4:NIU*+{rۂGc6ҾGh;޾' gDݨ1> :H0g W% #&C2<0'7]{SCV.r֎B݁L+Bȣ!|5_JlHL{"cWNnuÝ_/ڑ=w: Gsie$@I& c^~1ecy.􇉋BBa˱]἞qyC~wG'B%پ2<"[(dhT*6-P,+(#uM3K Q!fs@_c 姹L\bxnjzxb%D 9 ^fʔ@~mkS tLKd6C"ݳ:*vy`TJY0U`a7K$η;jbhVkUJNWq#&Pe*R'wc-l'p (  .[1@D?\E\0>#m`yc/oX<,yS^4EXc<0wQ0P٘y1ƂbsS(TPjs " ZA{ØN UL?"w@z詧c"tۂNY_r8GqUc;$Q23ZV[@8s=4.٢{K%pAvU-~#1 g-b#UT2֎YQ;ö^O: @ZjN hU=~o7/ gډ~)8Cƍ7PWoFM(*DcPb#ZZLT.w^UX ,F=Eu41Xc15Tk(ђ2P|@ڤE!A)b aCK{uJ{ M*Y_N~V\9Mh0hwQ;g;YP gΪB$"JϷqc׆ԡël=٦F6 + )b [ %0VTE`;(<9Fi4F'fqoYb@jJ M%WU5XC+d\2lTIH6x{CcXhs[4 T;V%ˉ. :xNzQ6D&f'MC9vҼ- GK@Lpz'zu 1+1XR+[ ېeGg, HP2%&=\υuִ88jzHkMd!Zf8"NM7GitA#21^3AFA$&Rԋ<΄(5Ҩ#vIr q}&%{ӱ^!0k~ Sfga}RLЏ6nk;S6 fI*ND\I6[B_ PfVfD|9p?ܡθoI\`OE~1de''N "pEQ*SS0z_'&$=\c@|Q@Q)%~9)񬵰d]TNbMUGYNs[ÙVyŸ;Z/!GT2:/TU(rZI;Km1>mCcբ.IV6سsm2[1\9峤m" *W 3V)Cϱ^וs4PX⫇@GHp0kl6WuzD;b,f֒CLp /?faUiM!؃T Gz .{dRA|0aF@.9Oj#.9gjckgC3Qސm-hP3c}<2>sʘ?hK˷yn\v;i'㆕>nDm! >P~y}\xÚmچA4URX-Qxwb2 b.Z&GB(2SI0٠0H$l{R8Hq_^Xe9ekӃIVN޸̳e2}:&ڍ$P\)T:Sd$aDLD}cx glX{w(uڿa G 3_4J!"19~&H7q~IO #xB?dcă@6Q5Mj *d$CөPwnʱ$?5aṳfG?2m?'Myκ_S/' W{|;pOI,pL#;w䌴4rdA$Ao#q,L(vSf6cu](㦖y1 `Ԍ~I>D(pgI5WwQ)x{ yc=>UaWunNvi:x<ЬTx֧g0D΁ .4KkbRj0I;Œyvι6q D@hHX$pE '&Єz.\nBzQŒn/);7 o.rvF̂q5٫K)1* *5Q-4T,8RGH!vl8[.9*M*SGk:tRγhh1bBظH7&nz7#-JI$O{o$faՕcߚn.v"<'Λ575W5)ˉLw9; ݺٸ^wqqL"F o5gkۭI[o#N sE+.mF:E`+fMJHBCNuq3ǫ`TF:MSPjNv!)Mw\av14LBjo> γDk+<Ƽn93Tvc$}!n/S27.jE9_ zF7=cΝ&SE[VX(Nt03hE|h!u58;@p+I$ZZ:/*!8\/9`I)&ʃ^-KQ u"Y[0,ٜ cK0lhqy,.<>:p D0̨"[ӔQͅx*NP2q/cwJs&gc&oYU;-"6X;Iszlglr47:]9P^UhB#䛑26M *΍~y'(ݍA/lrcG $~oRx}F\pN1?X<꺼)8k} 8ww2B)Dg {vI5?FgZ[|Ti|gƯj3滜=2;>cXUxQ@'a_V=YxWY kֺ=WZɓ_j_=~[BvcZr#ӏ+3Lpf0W;k:ַ%5YdX!>sjUl ZCˑⳈ+<%5R, cXju4_(1E}Ac&= 'ԍ]'7i*Itk0=HxC/1R"K WW[d\C`sM8ERNuUD A(щJmn:J4E}q!2[yU rmH] !7NꮅJ/2'QO| ]S]ʢO7Fbg*]eNqaƚ8%N,p¢ #稭0`?)^EFۗB$ML}ϵ[y||r410:<@ a3>qz,7H^C->nl 5KG1A8EKľ+'*;Ŏٲ?W|mD{&s#>:"5Q_ynOR.̟Lݘf˃rD^~>{9Hw<շ/WӪiSuE)Š5 b(g~>9TX?AGRRgxo#?y򿮯kAڒ<"N*[`~s' /gm[4RZ@F Dj(pUҲ0TyEgI{0nN^GOI*dk-]詧<i=4Px.]~NgG}xdэߓc{j0_U#3͗!SV`/N }dzc_@i叟z*̨2~m)_LJs6fY3 FAۚ p ²1]r(HRѡZņGQLLfow,LeLPҋ>VL`@'́DLlfG+R<+ /  JPxk 5MbgZV Rs]Q/M2V$@O$Idԗ!CE/E41 h["*Z]Յl]A9> KhDzTHi(E7_J;/wG1_oj -0v$CpwxiZ)~ 5}@wA1ZtS](.VI=^ddd'ciaQX V Ku"> kON(}]21ޠ5楇yGfGԜntDH$NC[Ya#O7Zxw}r^g\m<cx2#LYf5r &Q(ó<8:u3f1A|OT_HVne8rF2Mbm7ڥ4HEwaݗNy3¶=0"c۬>9$6IFDj1h"XPntE_ӭ'XEx>:F*&Y㦄O/t&K͎Eb$l?d ]S۞Ši\Nmg^Q8~&m4^bRs@ߧ!.%(xm ̒ooX4E>V}U}Blc ?3ۮ=u"?2],ovC~7_64#|ɬ#JJ0"37DyEp4cGtG2r"|?@(0*}^[:~ܖ|Civ).x|:+kh4 X+{dqV[GAE (T(R˴>VUi4as38Ø[R#($\NqČq:O3-c91A&d(|bk9ܞ ]DSRT!rf b 0||Ǣ/FhW\ٔK' u#$nDj nUeɹΩs ̡z:ښzszfqS=XpłsCPΨxs6N5DV҃P/'FZ!.4=P.񁫳8 \7|38[:\W=NY0aaP#8qrC*"wo% 0ԩ)Q'^5 \`zW_"I$9aNO<7.;*tt2ȈP CI!=f#3-f| pbA0,:ߌ<*%39_sӎu˚4d]c(GZ7ۍz#2Ţ.:1^Df x2KCLhm6LM)yP}NDۢf#MPX|w'X5M_9}zw @3_wfY|䣞.Wv$i6Jե\OtkDj=n)u߽#R a?g)fʶ>7 HZN i!wALA`HT0@(8"$ßg,}1Cg"nN iٝrqrA Q pkq 1H L?:??3Kis?Om~_qw-߈ _U@ťăzdӌ[?{i}P$ ОL|_9*Tı QMM 5 ФH#TRJRTD!"R"LUI *MEQ^[~W!\EL.Pwpy )Xr7 Kֺ)Eo+]9ȗ˲lR=nrl61?BK$s8t&i0 hLc_kiCk%~烇qXhuLNˡ:thy򽿯R'˝rSJ($sQGNGRyoY2HEREcw⢊f(dy?q|u!B!fBd"#R_Ok(S똽'AhoPafU#tf**biAHcx *!ނ4LRx̻;~)Lf˾}7VxK3iB)\.jV-e+Bw7`@w˭?=roe - @SL;0֟eE@Sx b5n Ud؏<|zi۳~8|ytwPP~+G#)?W1#H!n~ ]`wE>aL{o1[P/?ng(߾PJuad<8 v?ɐ┯zRy>n΁-Q`m-c+_oo7 Ab B>'!A?qɷ/z^.{ڥf =pXFEa]?/Xql7x~<'KnpxH<Q軼}7#IY;: _ ߆cj r t'yOaLFEґ!GNh ŰӖOV7 wCe`< Qby~fy=:|_!pfK~A@ :R"|5Uw4vM)taP bonA/g!OOSepC*8|J"8ͳ xbCancYg{:yU6=ޏt I6Bq0<ռRsԱWMw nZ}Ck5'+ GdLم~Zȣ ?1APAU,$?x`V#羭0NC92 WYR-Ao1qʩ~ICy|D4wS8cuF.f /kZi5 }nPVlnr Qu>?Z>P0A&nwz~pg,`}O`X;LE'(P4\)[a4򇙐e bh \ycۃՈ'|{Z1a5ۂx> X5NyP[,'h\hld|ԓ;m{lP1t[|bhhDh'h8="*/߰r5 0n:1KӃCեљoۘv0":>V*a{vMELK%ͽ{b"0cQ-A(qc"p2!Tdrpuĵ z? mJݼ+' |{fRBRUʡ~ 9F/14R;J;G3,t>.L)3=e3X2-Z4~ӧO(a s$PX9:YL7ZBH>۽LѰax"%'MDs Iex@A!'saQmdHiP|G"X4DYx3`stkGVmdn:0pq1f66;Y0 #1udL3%Hc}wtPo+I@00zN3eoC R2ӶiUcJSr3N xSc?SǜnM2|x_ eo2Q 'L~a`LvK)Xs/g a~3wi ^JB2P`"O񳠤eh5pT) 29~8fi<;@Ø@xH$ 2"4|Dg, VJ%Jc~I=hR"1$EȰ{=oUk"PҐIZx[Q.Wf/b*t0:i7\ӧ.sqe^hYgxuP#{ۛtc25wRCXCG N ^mmh3o j15XQ4vmޫwCS)vk"8PcsW 8˴ת( >r#H^xiCeo׃TfT:NKdHMs[˜ClqtӁe2/+ O»wa, TW "*KabvKΪoM67mP3 9%]q>y|(L8FXR5D KYXCucNL"HDeٶr/* zhwK;ǵCܓP/D ]UL̆+:r LlcVt;CL2BM9d 'yu -WIE !\BsiߎU72=Y;1chz2s救և#y)Uc;i2=u( Yg6f0fpgL~~ 8l,֝Mn[otf|4U.e+W |{3P~srRmeS0~ nS@gq/**ySVx5*lnKv_Kl0-}32c<ā8K={-8|hd q.l@$ɘ:(56 1uFH.Z jʯ}KӠUS ,5BicFZlݙƊ/'Z@2DN/ E@? z>0PuIehG0U/@G*R`laT2OVOې~FC @ {҇Exgz od:2?hQf(b'5kᅮoPt YO%3V( -]M0\?? < O^ƦR{B$#-JaܰXOc!xonvD`"QB9!˒ގ-osJN\7[ɧ'b(Q÷%Aѷ}W[Νk+UL4}"j"`34z -a20U?NԜ!膈 6881#JnԣugIE#PpBD#aj6x: 7%U^~]8h10-4VXhmfO4ЕwDI<'wa KD(o+M?^?=-[8HOܪ|J2 23((}[ܝ_JˀրK|_eEOG _N`\tCw\9RoXz辻Mݐ< uWێdO*R#DaEO2iG hB.J")> /={ٝ>i"_ߘgv+)r|ψήGBOܽv'_^ܝ1kB ̏)D?0j|FAǐrm.=kn?NGHnKݔBE?x{I{H۬<_x:۹#`ɻJ=e)an$z_'/7P~^~v?'?76.nG{;#~^Wt CȠV~=;~N;?nlǡN#wy/ٰ`"}հzB$w}iy>iQӮ Upc}?ǧRP5ȟKc007i"y~Vćo8G<Eʤ\IJdn 6r\˓R vxǗD":AVK6^Y?KsK' 1zi_>rw+y3aⰬ~)y6{犎{o՘ DhiS>>c>4]鍽b*IَG|+l=.mJIH'梆tnί<-oW;;=vSz=dظqrNjx1!| ln n3w/8}y@T0?ekl5š3I_] dmx2 Ԑ_9[GFum!K L ]QRaXA++HDEOXc4)?͎@OE?GEGPj=}b[iPuW<;g>a9DizqVtIOdTrx 2B @ܛq=?"nN=##/ (h`4sOFm4s.mtw_ 9-t:bœ l=6 :gcl62VdKh.D@1qTp-YOs~m~gfP6JFK&cR(&T{b}@l"~p88)kSLZUgiD?ćb0g(_QC(^KAyqpV{??,Z<-^Q+Lgq:E>E}M$N djAP>83,>>T5Ie4+ ~4C1?h0(細k+ ȌTRI' l-m݇ʏMdiKR6aĘj?wjhVmzcG3w 3ALyIesrmUeSeנt[EuVoiMA0g͕Rƫ&EY%_}X0ƚV4 XG+XFᲢGްB=9DaAcDj ݡ1=>did"&: 62B>ΡAdLaq1PfUgpS[Cd|-X!Y0GVK "sA<-Y68}q 7vih o"5&X"-"cMbx2uaǢO7#x )N9cƬ$D~ _"<(m0;jRd"!gtラA_s"lͿ{#`EIBhF1:ĵDg>mzv ] 4himLIsi:1at0ÔAnO3>k)G.m!,x[i%1I2Jt^_]ޡAM.jSuqݺϺ?^Y49a bgT0coJdUԺbz~Ҽ~xK'ṨH9*Ot1r[㶬nфk"~R~̢-ŅXxx|棅uͩNռ>)84U!% +"aTcDj. %.?:ҩ 3.ˏ3!n^z7ݧ VvmmMHjdfP>SCHNE+و0vTө"+5)z2c^cTb%nS1a **mS'$-q?9oj6gU/d(# 0b#MѐF0ߖf`e0`>1{@xd`gg3>4&Ow쁟]UjQa+/}`0fb*z(,9y=]k|o7a@aE0Nk + %ؙ )4F/MNf`FȁDdyV NI I G {ANr6ٿٜʿ<aG{A/t>̪Fa{ 1;|>3ܩEV01)C!+F/\{q0@_)llTSSX[$] 8CЂ*J9H+e=7v/% f?6|L,Z;D s5]j*;ULX_doӼ |0 HNWbSًYjk9+_"(>ژ7vɖmGvX-~$ 'Ϯ#@b>lY|6)-)1E52[hH,A(J 8~8 X h0nF}u,fv*f*4d)9r/B/U*a|O# XޜɮB=b1, bو]s]åN#47!b߾ZaS;cMc~/E}<6?ʇnV rKnU8C"ϻ?.M"akwq3X@{O:? m_P b9~7̫LZRfI-TdEOm7i+nf&'r2P)4 `HпHH!S&Y(C_0SFcYkgj1`0)PT]=U9ޔ|R_6@Wnad)7F ^+Xgt^,'d#^[`A6졊E!Bpf%6$GIMlT; #463L (iDDǶha6|= X|z&zNfl#^JsPp\~Ꙍ{B:lhTM JfSCΧ'K-kI,z>=pHԲX+{We7+ͷV8WI!cҠZVsFm-?a C'.g,DxEN%j>S31,p8:90ڎ5Z_ɑς7(XBOƓFxg /g{v܏lg(." ka;X3`,! 0vcey7kle7s.+xlAF|eCxf&[o zge ]!wݦ饘) 5+97#^Yo1_woԏzǜ8REH1YÐ'ڃ |9?I>Kʃ-/.%jd)ĉy09ق˚g{N8i3WyMɌj9J0uXd0`g1Qக,1⥲Kzz?09PmxO=oL,?yǫUq`sxy3F =qze΅T=q.w=94t-k[pGkw=q%9˅e\_QԋYHQ v'$/%^p<'z>E, S`qe2SDh>Wmu: ݮX-=DqMs&043gvp>Hutj¥4sI v et\3lq5ͽ q-Z#j}sM^u%X0Z[Vϊ^P`AY9[GSg#dh/h<B]ŕq)L寙=-~ J3g棟ZWK1<7bd!Z VO-|ȇ7'N*cFa!K!tI-ӞuYTÂf,tO$shl[n܇tu8Czr;Kٔ jw̖^I}N : l (Ѵ(bDrMbLH0ipKO^^{YF}h:01h6M`DׄZy 'ᇣ3n.:55>gt'ͱ+r} '<^pb6Y\-}zsLy$_{/{r>a˟KXH w07jk:}FI?suC԰&rWGl XMwt >sޘ=ń e-2Ikd! ;oe\<3Vy6G9H-::BM?d#*R&{k 8jc ;Y-O8+8ouI D2knT$ =*q]n^DvlpEvrNWn^XMGraLٽT!k-(쥤ѕ-"3XJ9lCd0'8!Q =5 !iC7IX38&V[ZqkWR뜻cQpؓt3ߌ|<BL:̭nxlj{45a_/ZxNM4mҘ;$0+'x}Rd/G?i>|r,>ܰzÓ< ʱ;Wn^.HbN}'JX{40~D3WoG\Tr]Gp5 .a%͵h<l @^)v`Xa _EwZ|W Vm4%̳&1ՕTGHm`驔|~( @1.G* ͷ.uaa,P?Ȼ]=]Ryb}VVu݃E!EAZ8O_;EA0-Z:ypf/m;Ee!/1pl l]G 8:pk^CX#Ÿ>߈N3]jZH\9L`YnWN1b,ڎ֎BL 'W-ancF"TM1t] epo;;R#ݜpd] ao;tUJJ&"m֮V3<]kM5*\}Y/$gVp+vjqs9]Մbgd醪LVtl %煸뽾OH95У]{,1s&UH-i͖Gǩwf< ;2<|M^Wv&l< 'VOt3^H`> E^eY&vJ#ZOWw3ߵfU+7cp|^)}[%yNq ?^r!~e08LpՌOcÖC8;xtE`ocX=(dfk[0;>z]'e=P;>V\#)?[.U9WmꭂW` Ey "  ~_"{rɷ뻶aya.E;YVL;)l^/i1ElwtMYCzb=(N !R(1`r'fNz(m=MbgEDaY?{1D@ӂ)7A3&CiF q*q;n0ًD&h 0j!ݦ)Z+$;(3fa ƔgIZq?|u~8U_+G?}6W/?K}]dA\U3_)~^ǩ-Uk+weAp7gՇ(ْ͕{2pR&RP ?=l7%}aJ[_[[k'K;P -hG-Y>!א>.~o(*9 V!|nc"V!Tq:GNH_?2*[uŗP=~Fϐ6zGQ֊Op C*6"=O/kxS)Dm!>u`WOP3b7B/ѭe 2rNs\|h~ "6T $00D8 hq8}-8s "N@3b!a9}@XJ 8 yH;-d&-ں758ɺ.1X;BM>Q 6<>C8%?ߧ#Y Ξ+Qށ>p|xdt8DR\G(@vA @S~8deV<-v4 II VT;i XZHu JXu}/-㌘Q ضуMp ^kDD $=ˢvh_dɑ 8 Yjy}ЈH$8 % ;uuίyݿWIUɑڼ`vx+?AQRt;s|[<PHA#?t3pۊʻ9p+##\vw@r>o~w BTJRZ`1D:?A7cc´=çeY>98K5_?d NRX>AaٲYχ7_]֞=HTQ&qdsC$S!ܞ*D;2Z-jHVCb9HFT`HcivsQSҀ]mRU'y78Fḃ۶^w휄tٗP~dx [='OC]RJ=b߮)T|]ۣlkG98!EIhTGG϶C^Lt˴׋u `nV%Cv=ܦcn`&%!Q%8ec\]LHʇ"0z VBQps#*Ref.3ϠWFK.J,gG2PKz4ށ',6*Alr7|7q9|@0 V2w0uݽo.F03^8^_Yl"rw62_iTL0%[@5x qaσj& mlSz{]tS.?/1'c\_E,Rp#spƘCusqO inyqAڏȱ6`~sKa<-އtܐ:R^mkJD=r0lL8{NG 61ijڷNf@YQ~rnv> !Aigt<bEr6\D=Oň8QqXh,kΑKN8/V[9j8<]RijȫK MrF9N)qvտFSt="_pĹw]9no:[2@0 Bދ v'e ;%\4Ʌ>sA#&TBf/ٙ^p7śS`أH 3(%QN{mvqNv}~=87T~yt7f[Z;SP;@fmo=Y~y;x$ &__d2@)ܣJvDQ~kLlB6=AcM*9CQ.dFg)&r4Ȇb^z2٢n-Eu ؀P"DβqGGMbfZŲ)Dn9D@{=x܌SK^$s蛖IȞMQ4+ Blv::Cy/~^$P%4j@ H$AgEKdG- ~҉y]42sߖCȝۏ|N6yEQAd5 !q`@H%.!:혗⠥8K i2N*}_ JP]53PlMLXǾkD3Tro` ֗_Hfg\y:9 ݊3gGqʇBD*!l*N') (uǓ(q)